diff --git a/PROMS/AdjustBuildRevision/AdjustBuildRevision.sln b/PROMS/AdjustBuildRevision/AdjustBuildRevision.sln deleted file mode 100644 index aa7e3659..00000000 --- a/PROMS/AdjustBuildRevision/AdjustBuildRevision.sln +++ /dev/null @@ -1,36 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdjustBuildRevision", "AdjustBuildRevision.csproj", "{D1AB675E-828D-4781-BACD-8A2324CD84A5}" - ProjectSection(WebsiteProperties) = preProject - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.Debug = "False" - EndProjectSection -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 2 - SccProjectUniqueName0 = AdjustBuildRevision.csproj - SccLocalPath0 = . - SccLocalPath1 = . - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {D1AB675E-828D-4781-BACD-8A2324CD84A5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D1AB675E-828D-4781-BACD-8A2324CD84A5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D1AB675E-828D-4781-BACD-8A2324CD84A5}.Debug|x86.ActiveCfg = Debug|x86 - {D1AB675E-828D-4781-BACD-8A2324CD84A5}.Debug|x86.Build.0 = Debug|x86 - {D1AB675E-828D-4781-BACD-8A2324CD84A5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D1AB675E-828D-4781-BACD-8A2324CD84A5}.Release|Any CPU.Build.0 = Release|Any CPU - {D1AB675E-828D-4781-BACD-8A2324CD84A5}.Release|x86.ActiveCfg = Release|x86 - {D1AB675E-828D-4781-BACD-8A2324CD84A5}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/AnalyzeLinx.7z b/PROMS/AnalyzeLinx.7z deleted file mode 100644 index 38281b9c..00000000 Binary files a/PROMS/AnalyzeLinx.7z and /dev/null differ diff --git a/PROMS/AnalyzeLinx/AnalyzeLinx.sln b/PROMS/AnalyzeLinx/AnalyzeLinx.sln deleted file mode 100644 index dc636809..00000000 --- a/PROMS/AnalyzeLinx/AnalyzeLinx.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FindLinx", "FindLinx\FindLinx.csproj", "{48CD3831-84A5-45AB-BD36-213359779E21}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {48CD3831-84A5-45AB-BD36-213359779E21}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {48CD3831-84A5-45AB-BD36-213359779E21}.Debug|Any CPU.Build.0 = Debug|Any CPU - {48CD3831-84A5-45AB-BD36-213359779E21}.Release|Any CPU.ActiveCfg = Release|Any CPU - {48CD3831-84A5-45AB-BD36-213359779E21}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/AnalyzeLinx/FindLinx/FindLinx.csproj b/PROMS/AnalyzeLinx/FindLinx/FindLinx.csproj deleted file mode 100644 index 6f42311b..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/FindLinx.csproj +++ /dev/null @@ -1,78 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {48CD3831-84A5-45AB-BD36-213359779E21} - WinExe - Properties - FindLinx - FindLinx - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmFindLinx.cs - - - - - Designer - frmFindLinx.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - \ No newline at end of file diff --git a/PROMS/AnalyzeLinx/FindLinx/Program.cs b/PROMS/AnalyzeLinx/FindLinx/Program.cs deleted file mode 100644 index 75e57451..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace FindLinx -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmFindLinx()); - } - } -} \ No newline at end of file diff --git a/PROMS/AnalyzeLinx/FindLinx/Properties/AssemblyInfo.cs b/PROMS/AnalyzeLinx/FindLinx/Properties/AssemblyInfo.cs deleted file mode 100644 index b53f3eff..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("FindLinx")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("FindLinx")] -[assembly: AssemblyCopyright("Copyright © 2014")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("864d5e18-264c-4257-98d3-a50da715ca19")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.Designer.cs b/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.Designer.cs deleted file mode 100644 index 1c8b3d28..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.5477 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FindLinx.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FindLinx.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.resx b/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.resx deleted file mode 100644 index 25a61211..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.Designer.cs b/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.Designer.cs deleted file mode 100644 index baf82eb5..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.5477 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FindLinx.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.settings b/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.Designer.cs b/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.Designer.cs deleted file mode 100644 index e8ab7e92..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.Designer.cs +++ /dev/null @@ -1,153 +0,0 @@ -namespace FindLinx -{ - partial class frmFindLinx - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.chooseDBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.findLinxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.allDBsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.tbResults = new System.Windows.Forms.TextBox(); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.chooseDBToolStripMenuItem, - this.findLinxToolStripMenuItem, - this.allDBsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(642, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // chooseDBToolStripMenuItem - // - this.chooseDBToolStripMenuItem.Name = "chooseDBToolStripMenuItem"; - this.chooseDBToolStripMenuItem.Size = new System.Drawing.Size(77, 20); - this.chooseDBToolStripMenuItem.Text = "Choose DB"; - this.chooseDBToolStripMenuItem.Click += new System.EventHandler(this.chooseDBToolStripMenuItem_Click); - // - // findLinxToolStripMenuItem - // - this.findLinxToolStripMenuItem.Enabled = false; - this.findLinxToolStripMenuItem.Name = "findLinxToolStripMenuItem"; - this.findLinxToolStripMenuItem.Size = new System.Drawing.Size(63, 20); - this.findLinxToolStripMenuItem.Text = "FindLinx"; - this.findLinxToolStripMenuItem.Click += new System.EventHandler(this.findLinxToolStripMenuItem_Click); - // - // allDBsToolStripMenuItem - // - this.allDBsToolStripMenuItem.Name = "allDBsToolStripMenuItem"; - this.allDBsToolStripMenuItem.Size = new System.Drawing.Size(56, 20); - this.allDBsToolStripMenuItem.Text = "All DBs"; - this.allDBsToolStripMenuItem.Click += new System.EventHandler(this.allDBsToolStripMenuItem_Click); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 328); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(642, 22); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // tbResults - // - this.tbResults.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbResults.Location = new System.Drawing.Point(0, 24); - this.tbResults.Multiline = true; - this.tbResults.Name = "tbResults"; - this.tbResults.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbResults.Size = new System.Drawing.Size(642, 304); - this.tbResults.TabIndex = 2; - // - // frmFindLinx - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(642, 350); - this.Controls.Add(this.tbResults); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmFindLinx"; - this.Text = "Find Links"; - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem chooseDBToolStripMenuItem; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.ToolStripMenuItem findLinxToolStripMenuItem; - private System.Windows.Forms.TextBox tbResults; - private System.Windows.Forms.ToolStripMenuItem allDBsToolStripMenuItem; - } -} - diff --git a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.cs b/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.cs deleted file mode 100644 index 2ccd4052..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.cs +++ /dev/null @@ -1,378 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.Data.SqlClient; -using System.Text.RegularExpressions; - -namespace FindLinx -{ - public partial class frmFindLinx : Form - { - public frmFindLinx() - { - InitializeComponent(); - } - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - private static string _SelectedDatabase = null; - public static string SelectedDatabase - { - get { return frmFindLinx._SelectedDatabase; } - set - { - frmFindLinx._SelectedDatabase = value; - _ConnectionString = _MenuConnectionString.Replace("{MENU}", SelectedDatabase); - } - } - private static string _MenuConnectionString = @"Data Source=VOLIAN-SERVER;User Id=proms2010;password=proms2010;Initial Catalog={MENU}"; - private static string _ConnectionString = null; - private Dictionary _MyContents = null; - private void chooseDBToolStripMenuItem_Click(object sender, EventArgs e) - { - ChooseDatabase(); - findLinxToolStripMenuItem.Enabled = true; - LoadContents(); - ResetLinks(); - FindLinks(); - //ShowLinks(SelectedDatabase); - } - private void ChooseDatabase() - { - System.Windows.Forms.ContextMenuStrip cms = BuildDatabaseMenu(); - SelectedDatabase = null; - while (SelectedDatabase == null) - { - cms.Show(new System.Drawing.Point((System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - cms.Width) / 2, (System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - cms.Height) / 2)); - System.Windows.Forms.Application.DoEvents(); - } - } - private static System.Windows.Forms.ContextMenuStrip BuildDatabaseMenu() - { - System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip(); - cms.Items.Add("Choose Database"); - System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem; - tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink; - tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText); - tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold); - foreach (string name in DBNames) - cms.Items.Add(name, null, new EventHandler(Database_Click)); - return cms; - } - private static List _DBNames; - public static List DBNames - { - get - { - if (_DBNames == null) - _DBNames = GetDatabases(); - return _DBNames; - } - } - private static List GetDatabases() - { - List dbNames; - dbNames = new List(); - SelectedDatabase = "master"; - SqlConnection cn = new SqlConnection(_ConnectionString); - cn.Open(); - // SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn); - //SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id('[' + name + ']..Items') is null then 'Not PROMS' when object_id('[' + name + ']..Revisions') is not null then 'Approval' when object_id('[' + name + ']..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name not in ('master','model','msdb','tempdb') and name like 'VEPROMS%' order by name", cn); - da.SelectCommand.CommandTimeout = 300; // 300 sec timeout - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - } - catch (Exception ex) - { - System.Windows.Forms.MessageBox.Show(ex.GetType().Name, ex.Message); - throw (new Exception("Cannot Load Data List", ex)); - } - cn.Close(); - foreach (DataRow dr in ds.Tables[0].Rows) - dbNames.Add(dr["name"].ToString()); - return dbNames; - } - private static void Database_Click(object sender, EventArgs e) - { - System.Windows.Forms.ToolStripMenuItem tsmi = sender as System.Windows.Forms.ToolStripMenuItem; - if (tsmi != null) - { - SelectedDatabase = tsmi.Text; - } - } - private void findLinxToolStripMenuItem_Click(object sender, EventArgs e) - { - FindLinks(); - } - private Dictionary DicPrefix; - private Dictionary DicSuffix; - private void ResetLinks() - { - DicPrefix = new Dictionary(); - DicSuffix = new Dictionary(); - } - private void ShowLinks(string selectedDatabase) - { - tbResults.Clear(); - SortedList srtPrefixes = new SortedList(new DegreeComparer()); - foreach (string pre in DicPrefix.Keys) - { - srtPrefixes.Add(-DicPrefix[pre], pre); - } - tbResults.AppendText(string.Format("{0} Prefixes\r\n", selectedDatabase)); - foreach (string pre in srtPrefixes.Values) - { - tbResults.AppendText(string.Format("{0},'{1}'\r\n", DicPrefix[pre], pre)); - } - SortedList srtSuffixes = new SortedList(new DegreeComparer()); - foreach (string suf in DicSuffix.Keys) - { - srtSuffixes.Add(-DicSuffix[suf], suf); - } - tbResults.AppendText(string.Format("\r\n{0} Suffixes\r\n", selectedDatabase)); - foreach (string suf in srtSuffixes.Values) - { - tbResults.AppendText(string.Format("{0},'{1}'\r\n", DicSuffix[suf], suf)); - } - } - private void FindLinks() - { - // loop through contents - foreach (int ic in _MyContents.Keys)// for each content record - { - string Text = _MyContents[ic]; - // find all links - //string findLink = @""; // need to only process transitions (no ros) - string findLink = @""; // need to only process transitions (no ros) - MatchCollection ms = Regex.Matches(Text, findLink); - int ii = 0; - foreach (Match mlink in ms)// for each link - { - if (mlink.ToString().Contains("#Link:T")) - { - string key = string.Format("{0}.{1}.{2}", _SelectedDatabase, ic, ii); - if (key == "VEPROMS_BWD.16964.0") Console.WriteLine("Here"); - string oldval = OldTransitionValue(mlink.ToString()); - string newval = NewTransitionValue(mlink.ToString()); - //if (oldval != newval && (!(oldval == "" && newval.Contains("Prerequisite {Prereq")) && !oldval.Contains("{First Step")) && !oldval.Contains("{Page Num")) tbResults.AppendText(string.Format("'{0}','{1}','{2}'\r\n", _SelectedDatabase, oldval, newval)); - if (oldval != newval) tbResults.AppendText(string.Format("'{0}','{1}','{2}','{3}'\r\n", _SelectedDatabase, oldval, newval, mlink.ToString())); - ii++; // instance of transition - } - } - } - } - private string OldTransitionValue(string _TextAndLink) - { - Match m = Regex.Match(_TextAndLink, @""); - return m.Groups[3].ToString(); - } - private string NewTransitionValue(string _TextAndLink) - { - Match m = Regex.Match(_TextAndLink, @""); // get value string including formatting. - string mtxt = m.Groups[1].ToString(); - mtxt = Regex.Replace(mtxt, @"^(\\[^v \\]+)*\\v0", ""); // replace the rtf commands that occur prior to the value string - if (mtxt.StartsWith(" ")) mtxt = mtxt.Substring(1); - mtxt = Regex.Replace(mtxt, @"\\v(\\[^v \\]+)* $", ""); // replace the rtf commands that occur after to the value string - mtxt = Regex.Replace(mtxt, @"(\\ulnone|\\b0)+$", ""); - return mtxt; - } - private string GetValuePrefix(string Text, Match mlink, int lastlink) - { - throw new Exception("The method or operation is not implemented."); - } - private string SuffixPattern(string suffix) - { - string firstchar = ""; - suffix = suffix.Replace("\r", "{CR}"); - suffix = suffix.Replace("\n", "{LF}"); - if (Regex.IsMatch(suffix, @"^(\\(b0|b|ulnone|ul))+\\")) - { - firstchar = "{RTFCommand}"; - suffix = Regex.Replace(suffix, @"^(\\(b0|b|ulnone|ul))+", ""); - } - if (suffix == @"\v0 ") - return @"Pattern','" + firstchar + @"\v0{Space}"; - if (suffix == @"\v0") - return @"Pattern','" + firstchar + @"\v0"; - return _SelectedDatabase + "','" + suffix; - } - private string GetSuffix(string Text, Match mlink, int iEnd) - { - int iStart = mlink.Index + mlink.Length; - //int iEnd = (mlink.NextMatch() == null) ? Text.Length : mlink.NextMatch().Index; - string follows = Text.Substring(iStart,iEnd-iStart); - int iEndComment = follows.IndexOf("\\v0"); - if (follows.Length > 3 + iEndComment) - { - if (follows.Substring(iEndComment + 3, 1) == " ") - return follows.Substring(0, iEndComment + 4); - if (follows.Substring(iEndComment + 3, 1) == "\\") - return follows.Substring(0, iEndComment + 3); - return follows.Substring(0, iEndComment + 3); - } - return follows; - } - public class DegreeComparer : IComparer - { - #region IComparer Members - public int Compare(int x, int y) - { - if (x < y) - return -1; - else - return 1; - } - #endregion - } - private string PrefixPattern(string prefix) - { - string firstchar = ""; - if(prefix.StartsWith(" ")) - { - firstchar = "{Space}"; - prefix = prefix.Substring(1); - } - else if (prefix.StartsWith("\n")) - { - firstchar = "{Newline}"; - prefix = prefix.Substring(1); - } - else if (prefix.StartsWith("\xa0")) - { - firstchar = "{HardSpace}"; - prefix = prefix.Substring(1); - } - else if (Regex.IsMatch(prefix, @"^\\u[0-9]{1,4}\?")) - { - firstchar = "{Unicode}"; - prefix=Regex.Replace(prefix, @"^\\u[0-9]{1,4}\?",""); - } - else if (Regex.IsMatch(prefix, @"^\\'[0-9a-fA-F]{2}")) - { - firstchar = "{Hexcode}"; - prefix = Regex.Replace(prefix, @"^\\'[0-9a-fA-F]{2}", ""); - } - else if (Regex.IsMatch(prefix, @"^[:.()\[\]""*=<>]")) - { - firstchar = "{Punctuation}"; - prefix = Regex.Replace(prefix, @"^[:.()\[\]""*=<>]", ""); - } - else if (Regex.IsMatch(prefix, @"^\\[{}~]")) - { - firstchar = "{Special}"; - prefix = Regex.Replace(prefix, @"^\\[{}~]", ""); - } - else if (Regex.IsMatch(prefix, @"^\\(b0|b|ulnone|ul|line)\\")) - { - firstchar = "{RTFCommand}"; - prefix = Regex.Replace(prefix, @"^\\(b0|b|ulnone|ul|line)", ""); - } - if (prefix == @"\v ") - return @"Pattern','" + firstchar +@"\v "; - //if (prefix == @" \v ") - // return @"Pattern-{Space}\v "; - //if (prefix == "\xA0\\v ") - // return @"Pattern-{HardSpace}\v "; - //if (Regex.IsMatch(prefix, @"^\\u[0-9]{1,4}\?\\v $")) - // return @"Pattern-" + firstchar + @"{Unicode}\v "; - //if (Regex.IsMatch(prefix, @"^\\u[0-9]{1,4}\?.*\\v $")) - // return @"Pattern-" + firstchar + @"{Unicode}{Text}\v "; -// if (Regex.IsMatch(prefix, @"^\\[{}~]\\v $")) -// return @"Pattern-" + firstchar + @"{Special}\v "; -// if (Regex.IsMatch(prefix, @"^ ?[()""\[\]]\\v $")) -// return @"Pattern-" + firstchar + @"{Puctuation}\v "; - if (Regex.IsMatch(prefix, @"^ ?[-%A-Za-z0-9.,/()\[\]]+\\v $")) - return @"Pattern','" + firstchar + @"{Text}\v "; - //if (prefix == "\n\\v ") - // return @"Pattern-{Newline}\v "; - return SelectedDatabase + "','" + prefix; - } - private string GetPrefix(string Text, Match mlink, int lastlink) - { - string precedes = Text.Substring(lastlink, mlink.Index - lastlink); - if(mlink.Index - lastlink <= 3) - return precedes; - - if (precedes.EndsWith(@"\v ")) - { - //int indexSpace = Text.LastIndexOf(' ', mlink.Index - 4); - ////if (indexSpace > mlink.Index) indexSpace = 0; - //int indexCR = Text.LastIndexOf('\n', mlink.Index - 4); - ////if (indexCR > mlink.Index) indexCR = 0; - //if (indexCR >= 0 && indexCR > indexSpace) - // indexSpace = indexCR; - //int indexHS = Text.LastIndexOf('\xA0', mlink.Index - 4); - ////if (indexHS > mlink.Index) indexHS = 0; - //if (indexHS >= 0 && indexHS > indexSpace) - // indexSpace = indexHS; - int indexSpace = Text.LastIndexOfAny(" \n\xA0:.()[]\"<>*=".ToCharArray(), mlink.Index - 4); - int indexSlash = Text.LastIndexOf('\\', mlink.Index - 4); - if (indexSlash >= 0) - { - if (indexSlash > indexSpace) - return Text.Substring(indexSlash, mlink.Index - indexSlash); - } - if (indexSpace >= 0) - { - return Text.Substring(indexSpace, mlink.Index - indexSpace); - } - } - return precedes; - } - private void LoadContents() - { - SqlConnection cn = new SqlConnection(_ConnectionString); - cn.Open(); - //SqlDataAdapter da = new SqlDataAdapter("select ContentID,Text from Contents where ContentID in(select fromID from transitions union select contentid from rousages)", cn); - SqlDataAdapter da = new SqlDataAdapter("select ContentID,Text from Contents where ContentID in(select fromID from transitions)", cn); - da.SelectCommand.CommandTimeout = 300; // 300 sec timeout - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - _MyContents = new Dictionary(); - foreach (DataRow dr in ds.Tables[0].Rows) - { - _MyContents.Add((int)dr["ContentID"], dr["Text"].ToString()); - } - //MessageBox.Show(string.Format("{0} Content Records Found", ds.Tables[0].Rows.Count), "Contents Loaded", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - catch (Exception ex) - { - System.Windows.Forms.MessageBox.Show(ex.Message, ex.GetType().Name, MessageBoxButtons.OK, MessageBoxIcon.Error); - throw (new Exception("Cannot Load Data List", ex)); - } - cn.Close(); - } - - private void allDBsToolStripMenuItem_Click(object sender, EventArgs e) - { - DateTime tStart = DateTime.Now; - ResetLinks(); - foreach (string dbName in DBNames) - { - SelectedDatabase = dbName; - LoadContents(); - MyStatus = string.Format("{0} - {1} Contents", SelectedDatabase, _MyContents.Count); - FindLinks(); - } - //ShowLinks("All Databases"); - DateTime tEnd = DateTime.Now; - TimeSpan ts = TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks); - MyStatus = string.Format("{0:0.000} Seconds", ts.TotalSeconds); - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - } -} \ No newline at end of file diff --git a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.resx b/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.resx deleted file mode 100644 index 7de6988d..00000000 --- a/PROMS/AnalyzeLinx/FindLinx/frmFindLinx.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 132, 17 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/BarakahConvert.sln b/PROMS/BarakahConvert/BarakahConvert.sln deleted file mode 100644 index a7311777..00000000 --- a/PROMS/BarakahConvert/BarakahConvert.sln +++ /dev/null @@ -1,105 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.21005.1 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XMLConvert", "XMLConvert\XMLConvert.csproj", "{C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CPPConvert", "CPPConvert\CPPConvert.csproj", "{1153363A-3395-4BBA-A507-4FA69132CDFC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConvertAlarms", "ConvertAlarms\ConvertAlarms.csproj", "{8185CA5B-2403-450A-9989-C7E4A2A5D7A1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConvertLocalAlarms", "ConvertLocalAlarms\ConvertLocalAlarms.csproj", "{BF0EEE6A-5350-4CE7-8E28-73F1A3811870}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReadFile", "ReadFile\ReadFile.csproj", "{D83BC593-811C-4D32-81B2-9C6031AFDAF5}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 6 - SccLocalPath0 = . - SccProjectUniqueName1 = ConvertAlarms\\ConvertAlarms.csproj - SccLocalPath1 = . - SccProjectFilePathRelativizedFromConnection1 = ConvertAlarms\\ - SccProjectUniqueName2 = ConvertLocalAlarms\\ConvertLocalAlarms.csproj - SccLocalPath2 = . - SccProjectFilePathRelativizedFromConnection2 = ConvertLocalAlarms\\ - SccProjectUniqueName3 = CPPConvert\\CPPConvert.csproj - SccLocalPath3 = . - SccProjectFilePathRelativizedFromConnection3 = CPPConvert\\ - SccProjectUniqueName4 = ReadFile\\ReadFile.csproj - SccLocalPath4 = . - SccProjectFilePathRelativizedFromConnection4 = ReadFile\\ - SccProjectUniqueName5 = XMLConvert\\XMLConvert.csproj - SccLocalPath5 = . - SccProjectFilePathRelativizedFromConnection5 = XMLConvert\\ - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|x86.ActiveCfg = Debug|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Debug|x86.Build.0 = Debug|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Any CPU.Build.0 = Release|Any CPU - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|Mixed Platforms.Build.0 = Release|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|x86.ActiveCfg = Release|x86 - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF}.Release|x86.Build.0 = Release|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|x86.ActiveCfg = Debug|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Debug|x86.Build.0 = Debug|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Any CPU.Build.0 = Release|Any CPU - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|Mixed Platforms.Build.0 = Release|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|x86.ActiveCfg = Release|x86 - {1153363A-3395-4BBA-A507-4FA69132CDFC}.Release|x86.Build.0 = Release|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|x86.ActiveCfg = Debug|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Debug|x86.Build.0 = Debug|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Any CPU.Build.0 = Release|Any CPU - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Mixed Platforms.ActiveCfg = Release|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|Mixed Platforms.Build.0 = Release|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|x86.ActiveCfg = Release|x86 - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1}.Release|x86.Build.0 = Release|x86 - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Any CPU.Build.0 = Debug|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Debug|x86.ActiveCfg = Debug|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Any CPU.ActiveCfg = Release|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Any CPU.Build.0 = Release|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870}.Release|x86.ActiveCfg = Release|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Mixed Platforms.ActiveCfg = Debug|x86 - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|Mixed Platforms.Build.0 = Debug|x86 - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Debug|x86.ActiveCfg = Debug|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Any CPU.Build.0 = Release|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5}.Release|x86.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/BarakahConvert/CPPConvert/App.config b/PROMS/BarakahConvert/CPPConvert/App.config deleted file mode 100644 index bae5d6d8..00000000 --- a/PROMS/BarakahConvert/CPPConvert/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/PROMS/BarakahConvert/CPPConvert/CPPConvert.csproj b/PROMS/BarakahConvert/CPPConvert/CPPConvert.csproj deleted file mode 100644 index 8d0aa6f3..00000000 --- a/PROMS/BarakahConvert/CPPConvert/CPPConvert.csproj +++ /dev/null @@ -1,112 +0,0 @@ - - - - - Debug - AnyCPU - {1153363A-3395-4BBA-A507-4FA69132CDFC} - WinExe - Properties - CPPConvert - CPPConvert - v4.6.1 - 512 - - SAK - SAK - SAK - SAK - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - x86 - bin\x86\Debug\ - - - x86 - bin\x86\Release\ - - - - ..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll - - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\log4net.dll - - - - - - - - - - - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - - - Form - - - frmCPPConvert.cs - - - - - frmCPPConvert.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/CPPConvert/Program.cs b/PROMS/BarakahConvert/CPPConvert/Program.cs deleted file mode 100644 index a3e3366c..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace CPPConvert -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmCPPConvert()); - } - } -} diff --git a/PROMS/BarakahConvert/CPPConvert/Properties/AssemblyInfo.cs b/PROMS/BarakahConvert/CPPConvert/Properties/AssemblyInfo.cs deleted file mode 100644 index eeba6589..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CPPConvert")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("CPPConvert")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("1e1f432a-54d7-4c79-a5ed-c8c863ca75b0")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/BarakahConvert/CPPConvert/Properties/Resources.Designer.cs b/PROMS/BarakahConvert/CPPConvert/Properties/Resources.Designer.cs deleted file mode 100644 index bd2d72e4..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace CPPConvert.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("CPPConvert.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/CPPConvert/Properties/Resources.resx b/PROMS/BarakahConvert/CPPConvert/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/CPPConvert/Properties/Settings.Designer.cs b/PROMS/BarakahConvert/CPPConvert/Properties/Settings.Designer.cs deleted file mode 100644 index e7da2853..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace CPPConvert.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/BarakahConvert/CPPConvert/Properties/Settings.settings b/PROMS/BarakahConvert/CPPConvert/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/BarakahConvert/CPPConvert/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.Designer.cs b/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.Designer.cs deleted file mode 100644 index a3449e31..00000000 --- a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.Designer.cs +++ /dev/null @@ -1,236 +0,0 @@ -namespace CPPConvert -{ - partial class frmCPPConvert - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmCPPConvert)); - this.label1 = new System.Windows.Forms.Label(); - this.tbFile = new System.Windows.Forms.TextBox(); - this.tbResults = new System.Windows.Forms.TextBox(); - this.btnBrowse = new System.Windows.Forms.Button(); - this.tbDest = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.btnBrowseDest = new System.Windows.Forms.Button(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.processToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.allToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pb = new DevComponents.DotNetBar.Controls.ProgressBarX(); - this.testToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(14, 30); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(47, 13); - this.label1.TabIndex = 0; - this.label1.Text = "CPP File"; - // - // tbFile - // - this.tbFile.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbFile.Location = new System.Drawing.Point(83, 27); - this.tbFile.Name = "tbFile"; - this.tbFile.Size = new System.Drawing.Size(482, 20); - this.tbFile.TabIndex = 1; - this.tbFile.Text = "C:\\Development\\Proms\\Barakah\\SGTR\\1N2-OP-EOP-RC-0002 Rev00 - Steam Generator Tube" + - " Rupture (CPS-CPP).cpp"; - // - // tbResults - // - this.tbResults.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbResults.Location = new System.Drawing.Point(12, 124); - this.tbResults.Multiline = true; - this.tbResults.Name = "tbResults"; - this.tbResults.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.tbResults.Size = new System.Drawing.Size(637, 169); - this.tbResults.TabIndex = 3; - // - // btnBrowse - // - this.btnBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowse.Location = new System.Drawing.Point(571, 25); - this.btnBrowse.Name = "btnBrowse"; - this.btnBrowse.Size = new System.Drawing.Size(72, 23); - this.btnBrowse.TabIndex = 4; - this.btnBrowse.Text = "Browse..."; - this.btnBrowse.UseVisualStyleBackColor = true; - this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbDest - // - this.tbDest.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbDest.Location = new System.Drawing.Point(83, 53); - this.tbDest.Name = "tbDest"; - this.tbDest.Size = new System.Drawing.Size(482, 20); - this.tbDest.TabIndex = 5; - this.tbDest.Text = "C:\\Development\\Proms\\Barakah\\EOP CPPs\\Output"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(14, 53); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(60, 13); - this.label2.TabIndex = 6; - this.label2.Text = "Destination"; - // - // btnBrowseDest - // - this.btnBrowseDest.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowseDest.Location = new System.Drawing.Point(571, 50); - this.btnBrowseDest.Name = "btnBrowseDest"; - this.btnBrowseDest.Size = new System.Drawing.Size(72, 23); - this.btnBrowseDest.TabIndex = 7; - this.btnBrowseDest.Text = "Browse..."; - this.btnBrowseDest.UseVisualStyleBackColor = true; - this.btnBrowseDest.Click += new System.EventHandler(this.btnBrowseDest_Click); - // - // ofd - // - this.ofd.FileName = "openFileDialog1"; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(661, 24); - this.menuStrip1.TabIndex = 8; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.processToolStripMenuItem, - this.allToolStripMenuItem, - this.testToolStripMenuItem, - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // processToolStripMenuItem - // - this.processToolStripMenuItem.Name = "processToolStripMenuItem"; - this.processToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.processToolStripMenuItem.Text = "&Process"; - this.processToolStripMenuItem.Click += new System.EventHandler(this.processToolStripMenuItem_Click); - // - // allToolStripMenuItem - // - this.allToolStripMenuItem.Name = "allToolStripMenuItem"; - this.allToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.allToolStripMenuItem.Text = "&All"; - this.allToolStripMenuItem.Click += new System.EventHandler(this.allToolStripMenuItem_Click); - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // pb - // - this.pb.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - // - // - // - this.pb.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.pb.Location = new System.Drawing.Point(12, 91); - this.pb.Name = "pb"; - this.pb.Size = new System.Drawing.Size(637, 23); - this.pb.TabIndex = 9; - this.pb.Text = "progressBarX1"; - // - // testToolStripMenuItem - // - this.testToolStripMenuItem.Name = "testToolStripMenuItem"; - this.testToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.testToolStripMenuItem.Text = "&Test"; - this.testToolStripMenuItem.Click += new System.EventHandler(this.testToolStripMenuItem_Click); - // - // frmCPPConvert - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(661, 305); - this.Controls.Add(this.pb); - this.Controls.Add(this.btnBrowseDest); - this.Controls.Add(this.label2); - this.Controls.Add(this.tbDest); - this.Controls.Add(this.btnBrowse); - this.Controls.Add(this.tbResults); - this.Controls.Add(this.tbFile); - this.Controls.Add(this.label1); - this.Controls.Add(this.menuStrip1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmCPPConvert"; - this.Text = "Extract XML and Image Files"; - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbFile; - private System.Windows.Forms.TextBox tbResults; - private System.Windows.Forms.Button btnBrowse; - private System.Windows.Forms.TextBox tbDest; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button btnBrowseDest; - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem processToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private DevComponents.DotNetBar.Controls.ProgressBarX pb; - private System.Windows.Forms.ToolStripMenuItem allToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem testToolStripMenuItem; - } -} - diff --git a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.cs b/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.cs deleted file mode 100644 index 22c3281c..00000000 --- a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.cs +++ /dev/null @@ -1,310 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; - -namespace CPPConvert -{ - public partial class frmCPPConvert : Form - { - public frmCPPConvert() - { - InitializeComponent(); - } - private long _Offset; - private static long _lastPos = 0l; - private void ReadRecord(BinaryReader br) - { - long curPos = FS.Position; - int nxtPos = PathStartList[0]; - if (nxtPos - 4 != curPos) - { - Console.WriteLine("curpos, nxtpos, lastpos\t{0:X08}\t{1:X08}", curPos - _lastPos, nxtPos- _lastPos); - FS.Seek(nxtPos - 4, SeekOrigin.Begin); - } - PathStartList.RemoveAt(0); - _lastPos = FS.Position; - string filePath = ReadString(br); - Console.WriteLine(filePath.Substring(120,filePath.Length-120)); - string type = ReadString(br); - int pos = (int) FS.Position; - byte [] buf = ReadBuffer(br); - int size = buf.Length; - if (buf.Length > 4 && StartsWith(buf, " 0) - { - FS.Position = pos + buf.Length + 4 - misMatch; - size -= misMatch; - } - } - - //Console.WriteLine("filePath={0}\r\ntype={1}", filePath, type); - if(type.ToLower().Contains("procedure")) - { - tbResults.AppendText(string.Format("Extracted {0}\r\n",PartialName(filePath,type))); - SaveFile(filePath,type,buf,size); - } - } - private string PartialName(string filePath, string type) - { - int skipSlashes = 2 +type.Length - type.Replace("/", "").Length; - int start = filePath.Length; - while(skipSlashes-- > 0) - start = filePath.LastIndexOf('/', start-1); - return filePath.Substring(start+1); - } - private void SaveFile(string filePath, string type, byte[] buf,int size) - { - string fn = (tbDest.Text.EndsWith("/") ? tbDest.Text : tbDest.Text + "/") + PartialName(filePath, type); - BuildPath(fn); - FileStream fs = File.Create(fn); - BinaryWriter bw = new BinaryWriter(fs); - if (filePath.ToUpper().EndsWith(".PNG") && buf[4]==0xA) - { - bw.Write(buf, 0, 4); - bw.Write(Encoding.ASCII.GetBytes("\xD")); - bw.Write(buf, 4, size-4); - } - else - { - } - bw.Write(buf,0,size); - bw.Close(); - } - private void BuildPath(string fn) - { - FileInfo fi = new FileInfo(fn); - fi.Directory.Create(); - } - private string ReadString(BinaryReader br) - { - byte[] buffer = ReadBuffer(br); - return Encoding.BigEndianUnicode.GetString(buffer, 0, buffer.Length); - } - private byte[] ReadBuffer(BinaryReader br) - { - int size = ReadBytesToInt32(br); - if (size == -1) size = 0; - if(size > FS.Length || size < 0) - throw(new Exception(string.Format("Location {0:X08} has a buffer that is too big {1:X08}",FS.Position,size))); - byte[] buffer = new byte[size]; - br.Read(buffer, 0, size); - _Offset += size; - return buffer; - } - private int ReadBytesToInt32(BinaryReader br) - { - byte[] buffer = new byte[4]; - long off = Offset; - br.Read(buffer, 0, 4); - int i = BitConverter.ToInt32(buffer.Reverse().ToArray(), 0); - //if(i>255) Console.WriteLine("{0:X8} - {1:X8}", off,i); - _Offset += 4; - return i; - } - private void btnBrowse_Click(object sender, EventArgs e) - { - ofd.FileName = tbFile.Text; - if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) - tbFile.Text = ofd.FileName; - } - private void btnBrowseDest_Click(object sender, EventArgs e) - { - fbd.SelectedPath = tbDest.Text; - if (fbd.ShowDialog() == System.Windows.Forms.DialogResult.OK) - tbDest.Text = fbd.SelectedPath; - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - public long Offset - { - get - { - return FS.Seek(0, SeekOrigin.Current); - } - } - FileStream _FS; - public FileStream FS - { - get { return _FS; } - set { _FS = value; } - } - private List _PathStartList; - - public List PathStartList - { - get { return _PathStartList; } - set { _PathStartList = value; } - } - private List GetPathStartList(string findIt,FileStream fs) - { - List lst= new List(); - BinaryReader br = new BinaryReader(FS); - int buflen = (int) FS.Length; - byte [] buf =br.ReadBytes(buflen); - byte[] bFindIt = Encoding.BigEndianUnicode.GetBytes(findIt); - int findlen = bFindIt.Length; - pb.Text = "Looking for C:/"; - pb.Maximum = (int) fs.Length; - for (int i = 0; i < buflen - 4; i++) - { - if (buf[i] == bFindIt[0]) - { - int k=0; - for (; k < findlen; k++) - if (buf[k + i] != bFindIt[k]) - break; - if (k == findlen) lst.Add(i); - } - pb.Value = i; - } - pb.Text = "Done"; - br.Close(); - return lst; - } - -private bool Foundit(byte[] buf, int offset, byte [] bFindIt) -{ - for (int i = 0; i < bFindIt.Length; i++) - if (buf[i + offset] != (int)bFindIt[i]) - return false; - return true; -} - private void processToolStripMenuItem_Click(object sender, EventArgs e) - { - tbResults.Clear(); - ConvertCPP(tbFile.Text); - pb.Text = "All Done"; - } - - private void ConvertCPP(string fileName) - { - FS = File.OpenRead(fileName); - PathStartList = GetPathStartList("C:/", FS); - //Console.WriteLine("===> {0} Paths", PathStartList.Count); - FS = File.OpenRead(fileName); - BinaryReader br = new BinaryReader(FS); - try - { - _Offset = 0; - int nRecords = ReadBytesToInt32(br); - //Console.WriteLine("===> {0} Records", nRecords); - int i = 0; - pb.Text = "Splitting File"; - pb.Maximum = nRecords; - while (_Offset < FS.Length && nRecords-- > 0) - { - ReadRecord(br); - pb.Value = ++i; - } - } - catch (Exception ex) - { - tbResults.AppendText(string.Format("{0} - {1}-{2}\r\n{3}\r\n\r\n", fileName, ex.GetType().Name, ex.Message, ex.StackTrace)); - } - finally - { - br.Close(); - } - } - - private void allToolStripMenuItem_Click(object sender, EventArgs e) - { - tbResults.Clear(); - FileInfo[] myFiles = new FileInfo(tbFile.Text).Directory.GetFiles("*.cpp"); - foreach (FileInfo fi in myFiles) - ConvertCPP(fi.FullName); - pb.Text = "All Done"; - } - - private void testToolStripMenuItem_Click(object sender, EventArgs e) - { - FS = File.OpenRead(tbFile.Text); - PathStartList = GetPathStartList("C:/", FS); - FS = File.OpenRead(tbFile.Text); - BinaryReader br = new BinaryReader(FS); - int nRecords = ReadBytesToInt32(br); - int bytesRead = 4; - int countByThree = 0; - while (bytesRead < FS.Length) - { - if(countByThree % 3 == 0) - { - long curPos = FS.Position; - int nxtPos = PathStartList[0]; - if (nxtPos - 4 != curPos) - { - Console.WriteLine("curpos, nxtpos, lastpos\t{0:X08}\t{1:X08}", curPos - _lastPos, nxtPos - _lastPos); - FS.Seek(nxtPos - 4, SeekOrigin.Begin); - } - PathStartList.RemoveAt(0); - } - _lastPos = FS.Position; - long pos = FS.Position; - int size = ReadBytesToInt32(br); - bytesRead += 4; - byte[] buf = br.ReadBytes(size); - bytesRead += size; - StringBuilder sb = new StringBuilder(); - sb.Append(string.Format("{0:D4} {1:X08} {2:X08} ",countByThree ,pos,size)); - for (int i = 0; i < 120 && i < size; i++) - { - if(buf[i] < 0x20) - sb.Append('.'); - else - sb.Append((char) buf[i]); - } - Console.WriteLine(sb.ToString()); - if (StartsWith(buf, " 0) - { - FS.Position = pos + size + 4 - misMatch; - bytesRead -= misMatch; - } - } - countByThree++; - } - } - - private bool StartsWith(byte[] buf, string findIt) - { - byte[] bFindIt = Encoding.ASCII.GetBytes(findIt); - int findlen = bFindIt.Length; - int k=0; - for (; k < findlen; k++) - if (buf[k] != bFindIt[k]) - return false; - return true; - } - } -} diff --git a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.resx b/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.resx deleted file mode 100644 index d3024f8f..00000000 --- a/PROMS/BarakahConvert/CPPConvert/frmCPPConvert.resx +++ /dev/null @@ -1,7339 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 186, 17 - - - 256, 17 - - - - - AAABAAkAAAAAAAEAIAAoIAQAlgAAAICAAAABACAAKAgBAL4gBABgYAAAAQAgAKiUAADmKAUASEgAAAEA - IACIVAAAjr0FAEBAAAABACAAKEIAABYSBgAwMAAAAQAgAKglAAA+VAYAICAAAAEAIACoEAAA5nkGABgY - AAABACAAiAkAAI6KBgAQEAAAAQAgAGgEAAAWlAYAKAAAAAABAAAAAgAAAQAgAAAAAAAAIAQAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADU1NQE1NTUBNTU1ATU1NQE1NTUBNTU1ATY2NQE2NjYBNjY2ATY2NgE2NjYBNjY2ATc3 - NgE3NzYCNzc3Ajc3NwI3NzcDNzc3Azc3NwM4ODcDODg3Azg4NwM4ODgDODg4BDg4OAQ4ODgEODg4BDk5 - OAQ5OTgFOTk4BTk5OQU5OTkFOTk5Bjk5OQY5OTkGOTk5Bjo6OQc6OjkHOjo5Bzo6OQc6OjoHOjo6CDo6 - Ogg6OjoIOjo6CDo6Ogk7OzoJOzs6CTs7Ogk7OzoJOzs6CTs7Ogk7OzoKOzs7Cjs7Owo7OzsKOzs7Cjs7 - Owo7OzsKOzs7Cjs7Owo7OzsKOzs7Cjw8Owo8PDsKPDw7Cjw8Owo8PDsKPDw7Cjw8Owo8PDsKPDw7Cjw8 - Owo8PDsKOzs7Cjs7Owo7OzsKOzs7Cjs7Owo7OzsKOzs7Cjs7Owo7OzsKOzs7Cjs7Ogo7OzoJOzs6CTs7 - Ogk7OzoJOzs6CTs7Ogk6OjoIOjo6CDo6Ogg6OjoIOjo6CDo6Ogc6OjkHOjo5Bzo6OQc6OjkGOTk5Bjk5 - OQY5OTkGOTk5Bjk5OQU5OTgFOTk4BTk5OAQ4ODgEODg4BDg4OAQ4ODgEODg4BDg4OAM4ODcDODg3Azc3 - NwM3NzcDNzc3Azc3NwI3NzcCNzc2Ajc3NgI2NjYBNjY2ATY2NgE2NjYBNjY2ATY2NgE2NjUBNTU1ATU1 - NQE1NTUBNTU1ATU1NQE1NTUBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0 - NAE0NDQBNDQ0ATU1NAE1NTUBNTU1ATU1NQE1NTUBNTU1ATU1NQE2NjUBNjY2ATY2NgI2NjYCNjY2AjY2 - NgM3NzYDNzc2Azc3NwM3NzcDNzc3Azc3NwQ3NzcEODg3BDg4NwQ4ODcFODg4BTg4OAU4ODgFODg4Bjg4 - OAY5OTgGOTk4Bzk5OAc5OTkHOTk5Bzk5OQg5OTkIOTk5CDk5OQk6OjkJOjo5CTo6OQo6OjkKOjo6Cjo6 - Ogo6OjoLOjo6Czo6Ogs6OjoMOzs6DDs7Ogw7OzoMOzs6DDs7Ogw7OzoMOzs6DTs7Ow07OzsNOzs7DTs7 - Ow07OzsOOzs7Djs7Ow47OzsOOzs7Djs7Ow48PDsOPDw7Djw8Ow48PDsOPDw7Djw8Ow48PDsOPDw7Djw8 - Ow48PDsOPDw7Djs7Ow47OzsOOzs7Djs7Ow47OzsOOzs7Djs7Ow07OzsNOzs7DTs7Ow07OzoNOzs6DDs7 - Ogw7OzoMOzs6DDs7Ogw7OzoMOjo6Czo6Ogs6OjoLOjo6Cjo6Ogo6OjoKOjo5Cjo6OQk6OjkJOjo5CTk5 - OQg5OTkIOTk5CDk5OQc5OTkHOTk4Bzk5OAc5OTgHODg4Bjg4OAY4ODgFODg4BTg4OAU4ODgFODg3BDg4 - NwQ3NzcENzc3BDc3NwQ3NzcDNzc3Azc3NgM3NzYDNjY2AzY2NgI2NjYCNjY2AjY2NgE2NjYBNjY1ATU1 - NQE1NTUBNTU1ATU1NQE1NTUBNTU1ATU1NAE0NDQBNDQ0AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQBNDQ0ATQ0 - NAE0NDQBNDQ0ATQ0NAE1NTQBNTU1ATU1NQE1NTUBNTU1ATU1NQE1NTUCNjY1AjY2NgI2NjYDNjY2AzY2 - NgM2NjYDNzc2BDc3NgQ3NzcENzc3BDc3NwQ3NzcFNzc3BTg4NwY4ODcGODg3Bjg4OAc4ODgHODg4Bzg4 - OAg4ODgIOTk4CTk5OAk5OTgJOTk5Cjk5OQo5OTkKOTk5Cjk5OQs5OTkLOjo5DDo6OQw6OjkMOjo5DTo6 - Og06OjoOOjo6Djo6Og46OjoOOjo6Dzs7Og87OzoPOzs6Dzs7OhA7OzoQOzs6EDs7OxA7OzsROzs7ETs7 - OxE7OzsROzs7ETs7OxE7OzsSOzs7Ejs7OxI7OzsSPDw7Ejw8OxI8PDsSPDw7Ejw8OxI8PDsSPDw7Ejw8 - OxI8PDsSPDw7Ejw8OxI7OzsSOzs7Ejs7OxI7OzsROzs7ETs7OxE7OzsROzs7ETs7OxE7OzsQOzs6EDs7 - OhA7OzoQOzs6Dzs7Og87OzoPOzs6Dzo6Og46OjoOOjo6Djo6Og46OjoNOjo6DTo6OQw6OjkMOjo5DDo6 - OQw5OTkLOTk5Czk5OQo5OTkKOTk5Cjk5OAk5OTgJOTk4CTg4OAg4ODgIODg4CDg4OAc4ODgHODg4Bjg4 - NwY4ODcGNzc3BTc3NwU3NzcFNzc3BDc3NwQ3NzYENzc2BDY2NgM2NjYDNjY2AzY2NgM2NjYDNjY2AjY2 - NQI1NTUCNTU1ATU1NQE1NTUBNTU1ATU1NQE1NTQBNDQ0ATQ0NAE0NDQBNDQ0ATQ0NAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwEzMzMBNDQ0ATQ0 - NAE0NDQBNDQ0ATQ0NAE0NDQBNTU0ATU1NQE1NTUCNTU1AjU1NQI1NTUDNTU1AzY2NQM2NjYDNjY2AzY2 - NgQ2NjYENjY2BDc3NgU3NzYFNzc3BTc3NwY3NzcGNzc3Bzc3Nwc4ODcHODg3CDg4Nwg4ODgJODg4CTg4 - OAo4ODgKODg4Cjk5OAs5OTgLOTk4DDk5OQw5OTkNOTk5DTk5OQ45OTkOOjo5Djo6OQ86OjkPOjo5EDo6 - ORA6OjoQOjo6ETo6OhE6OjoROjo6Ejs7OhI7OzoTOzs6Ezs7OhM7OzoUOzs6FDs7OhQ7OzsUOzs7FDs7 - OxU7OzsVOzs7FTs7OxU7OzsVOzs7FTs7OxY7OzsWPDw7Fjw8OxY8PDsWPDw7Fjw8OxY8PDsWPDw7Fjw8 - OxY8PDsWPDw7Fjw8OxY8PDsWPDw7Fjs7OxY7OzsWOzs7FTs7OxU7OzsVOzs7FTs7OxU7OzsUOzs7FDs7 - OhQ7OzoUOzs6FDs7OhM7OzoTOzs6Ezs7OhI6OjoSOjo6Ejo6OhE6OjoROjo6EDo6OhA6OjkQOjo5Dzo6 - OQ86OjkOOTk5Djk5OQ45OTkNOTk5DTk5OQw5OTgMOTk4DDk5OAs4ODgKODg4Cjg4OAo4ODgJODg4CTg4 - OAg4ODcIODg3CDc3Nwc3NzcHNzc3Bjc3NwY3NzcGNzc2BTc3NgU2NjYENjY2BDY2NgQ2NjYENjY2AzY2 - NgM2NjUDNTU1AzU1NQI1NTUCNTU1AjU1NQE1NTUBNTU0ATQ0NAE0NDQBNDQ0ATQ0NAE0NDQBNDQ0ATMz - MwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzATMzMwEzMzMBMzMzATQ0 - NAE0NDQBNDQ0ATQ0NAE0NDQBNDQ0ATU1NAI1NTUCNTU1AzU1NQM1NTUDNTU1AzU1NQQ2NjUENjY2BDY2 - NgQ2NjYFNjY2BTY2NgY3NzYGNzc2Bzc3Nwc3NzcINzc3CDc3Nwk3NzcJODg3Cjg4Nwo4ODcKODg4Czg4 - OAw4ODgMODg4DTg4OA05OTgOOTk4Djk5OA85OTkPOTk5EDk5ORA5OTkROTk5ETo6ORI6OjkSOjo5Ezo6 - ORM6OjkUOjo6FDo6OhU6OjoVOjo6FTo6OhY7OzoWOzs6Fjs7Ohc7OzoXOzs6Fzs7Ohg7OzoYOzs7GDs7 - Oxk7OzsZOzs7GTs7Oxk7OzsZOzs7Gjs7Oxo7OzsaOzs7Gjw8Oxo8PDsaPDw7Gzw8Oxs8PDsbPDw7Gzw8 - Oxs8PDsbPDw7Gzw8Oxs8PDsbPDw7Gjw8Oxo7OzsaOzs7Gjs7Oxo7OzsZOzs7GTs7Oxk7OzsZOzs7GTs7 - Oxk7OzsYOzs6GDs7Ohc7OzoXOzs6Fzs7Ohc7OzoWOjo6Fjo6OhU6OjoVOjo6FTo6OhQ6OjoUOjo5Ezo6 - ORM6OjkTOjo5Ejk5ORE5OTkROTk5EDk5ORA5OTkPOTk5Dzk5OA85OTgOOTk4Djg4OA04ODgMODg4DDg4 - OAs4ODgLODg3Cjg4Nwo3NzcJNzc3CTc3Nwg3NzcINzc3Bzc3Ngc3NzYGNjY2BjY2NgY2NjYFNjY2BDY2 - NgQ2NjYENjY1BDU1NQM1NTUDNTU1AzU1NQM1NTUCNTU1AjU1NAI0NDQBNDQ0ATQ0NAE0NDQBNDQ0ATQ0 - NAEzMzMBMzMzATMzMwEzMzMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMBMzMzATMzMwEzMzMBMzMzATMz - MwE0NDQBNDQ0ATQ0NAE0NDQCNDQ0AjQ0NAI1NTQDNTU1AzU1NQM1NTUENTU1BDU1NQQ1NTUFNjY1BTY2 - NgY2NjYGNjY2BzY2Ngc2NjYINzc2CDc3Ngk3NzcJNzc3Cjc3Nwo3NzcLNzc3DDg4Nww4ODcNODg3Djg4 - OA44ODgPODg4Dzg4OBA4ODgQOTk4ETk5OBI5OTgSOTk5Ezk5ORQ5OTkUOTk5FTk5ORU6OjkWOjo5Fjo6 - ORc6OjkXOjo5GDo6Ohk6OjoZOjo6GTo6Oho6OjoaOzs6Gzs7Ohs7OzocOzs6HDs7Ohw7OzodOzs6HTs7 - Ox07OzseOzs7Hjs7Ox47OzseOzs7Hjs7Ox87OzsfOzs7Hzw8Ox88PDsfPDw7Hzw8OyA8PDsgPDw7IDw8 - OyA8PDsgPDw7IDw8OyA8PDsgPDw7Hzw8Ox88PDsfPDw7Hzs7Ox87OzsfOzs7Hjs7Ox47OzseOzs7Hjs7 - Ox47OzsdOzs7HTs7Oh07OzodOzs6HDs7Ohw7OzobOzs6Gzs7Ohs6OjoaOjo6Gjo6Ohk6OjoZOjo6GDo6 - ORc6OjkXOjo5Fzo6ORY6OjkVOTk5FTk5ORQ5OTkUOTk5Ezk5ORM5OTgSOTk4ETk5OBE4ODgQODg4Dzg4 - OA84ODgOODg4Djg4Nw04ODcMNzc3DDc3Nws3NzcKNzc3Cjc3Nwk3NzYJNzc2CDY2Ngg2NjYHNjY2BzY2 - NgY2NjYGNjY2BTY2NQU1NTUENTU1BDU1NQQ1NTUDNTU1AzU1NQM1NTQDNDQ0AjQ0NAI0NDQBNDQ0ATQ0 - NAE0NDQBMzMzATMzMwEzMzMBMzMzATMzMwEzMzMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEzMzMBMzMzATMzMwEzMzMBMzMzATMz - MwEzMzMBNDQ0AjQ0NAI0NDQCNDQ0AzQ0NAM0NDQDNTU0BDU1NQQ1NTUENTU1BTU1NQU1NTUGNTU1BjY2 - NQc2NjYINjY2CDY2Ngk2NjYJNjY2Cjc3Ngo3NzYLNzc3DDc3Nww3NzcNNzc3Djc3Nw84ODcPODg3EDg4 - NxE4ODgRODg4Ejg4OBM4ODgUODg4FDk5OBU5OTgWOTk4Fjk5ORc5OTkYOTk5GTk5ORk5OTkaOjo5Gjo6 - ORs6OjkcOjo5HDo6Oh06OjodOjo6Hjo6Oh46OjofOjo6Hzs7OiA7OzogOzs6ITs7OiE7OzoiOzs6Ijs7 - OyI7OzsiOzs7Izs7OyM7OzsjOzs7JDs7OyQ7OzskOzs7JDw8OyQ8PDslPDw7JTw8OyU8PDslPDw7JTw8 - OyU8PDslPDw7JTw8OyU8PDslPDw7JTw8OyU8PDslPDw7JTw8OyU7OzskOzs7JDs7OyQ7OzskOzs7Izs7 - OyM7OzsjOzs7Izs7OyI7OzoiOzs6Ijs7OiE7OzohOzs6IDs7OiA7OzofOjo6Hzo6Oh46OjoeOjo6Hjo6 - Oh06OjkcOjo5HDo6ORs6OjkbOjo5Gjk5ORk5OTkZOTk5GDk5ORc5OTkXOTk4Fjk5OBU5OTgUODg4FDg4 - OBM4ODgSODg4Ejg4OBE4ODcQODg3EDc3Nw83NzcONzc3Djc3Nw03NzcMNzc2Czc3Ngs2NjYKNjY2CTY2 - Ngk2NjYINjY2CDY2Ngc2NjUHNTU1BjU1NQU1NTUFNTU1BDU1NQQ1NTUENTU0AzQ0NAM0NDQDNDQ0AjQ0 - NAI0NDQCNDQ0ATMzMwEzMzMBMzMzATMzMwEzMzMBMzMzATMzMwEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMzMzATMzMwEzMzMBMzMzATMz - MwEzMzMCMzMzAjQ0NAM0NDQDNDQ0AzQ0NAQ0NDQENDQ0BDU1NAU1NTUFNTU1BjU1NQc1NTUHNTU1CDU1 - NQk2NjUJNjY2CjY2Ngo2NjYLNjY2DDY2Ng03NzYONzc2Djc3Nw83NzcQNzc3ETc3NxE3NzcTODg3Ezg4 - NxQ4ODcVODg4Fjg4OBY4ODgXODg4GDg4OBk5OTgaOTk4Gzk5OBs5OTkcOTk5HTk5OR45OTkfOTk5Hzo6 - OSA6OjkhOjo5ITo6OSI6OjojOjo6Izo6OiQ6OjokOjo6JTs7OiY7OzomOzs6Jzs7Oic7OzooOzs6KDs7 - Oig7OzspOzs7KTs7Oyo7OzsqOzs7Kjs7Oyo7OzsrOzs7Kzs7Oys8PDssPDw7LDw8Oyw8PDssPDw7LDw8 - Oyw8PDssPDw7LDw8Oyw8PDssPDw7LDw8Oyw8PDssPDw7LDw8Oyw8PDssPDw7Kzs7Oys7OzsrOzs7Kjs7 - Oyo7OzsqOzs7Kjs7Oyk7OzspOzs7KTs7Oig7OzooOzs6Jzs7Oic7OzomOzs6Jjo6OiU6OjolOjo6JDo6 - OiQ6OjojOjo6Ijo6OSI6OjkhOjo5IDo6OR85OTkfOTk5Hjk5OR05OTkdOTk5HDk5OBs5OTgaOTk4GTg4 - OBg4ODgYODg4Fzg4OBY4ODgVODg3FDg4NxM3NzcTNzc3Ejc3NxE3NzcQNzc3Dzc3Ng83NzYONjY2DTY2 - Ngw2NjYMNjY2CzY2Ngo2NjYJNjY1CTU1NQg1NTUHNTU1BzU1NQY1NTUFNTU1BTU1NAU0NDQENDQ0BDQ0 - NAM0NDQDNDQ0AzQ0NAIzMzMCMzMzAjMzMwEzMzMBMzMzATMzMwEzMzMBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATMzMwEzMzMBMzMzAjMz - MwIzMzMCMzMzAzMzMwM0NDQDNDQ0BDQ0NAQ0NDQFNDQ0BTQ0NAY1NTQHNTU1BzU1NQg1NTUJNTU1CTU1 - NQo1NTULNjY1DDY2Ng02NjYONjY2DzY2Ng82NjYQNzc2ETc3NhI3NzcTNzc3FDc3NxU3NzcWNzc3Fzg4 - Nxg4ODcZODg3Gjg4OBs4ODgcODg4HTg4OB44ODgfOTk4Hzk5OCA5OTghOTk5Ijk5OSM5OTkkOTk5JTk5 - OSY6OjkmOjo5Jzo6OSg6OjkpOjo6KTo6Oio6OjorOjo6Kzo6Oiw7OzotOzs6LTs7Oi07OzouOzs6Ljs7 - Oi87OzswOzs7MDs7OzA7OzsxOzs7MTs7OzI7OzsyOzs7Mjs7OzI8PDsyPDw7Mzw8OzM8PDszPDw7NDw8 - OzQ8PDs0PDw7NDw8OzQ8PDs0PDw7NDw8OzQ8PDs0PDw7NDw8OzM8PDszPDw7Mzw8OzM8PDsyOzs7Mjs7 - OzI7OzsyOzs7MTs7OzE7OzswOzs7MDs7OzA7OzsvOzs6Ljs7Oi47OzouOzs6LTs7Oi07OzosOjo6Kzo6 - Ois6OjoqOjo6KTo6Oik6OjkoOjo5Jzo6OSc6OjkmOTk5JTk5OSQ5OTkjOTk5Ijk5OSI5OTghOTk4IDk5 - OB84ODgeODg4HTg4OBw4ODgbODg4Gjg4Nxk4ODcYNzc3Fzc3NxY3NzcVNzc3FDc3NxM3NzcTNzc2EjY2 - NhE2NjYQNjY2DzY2Ng42NjYNNjY2DDY2NQs1NTUKNTU1CTU1NQk1NTUINTU1CDU1NQc1NTQGNDQ0BjQ0 - NAU0NDQENDQ0BDQ0NAQ0NDQDMzMzAzMzMwMzMzMCMzMzAjMzMwEzMzMBMzMzATIyMgEyMjIBMjIyATIy - MgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEzMzMBMzMzAjMz - MwMzMzMDMzMzAzMzMwMzMzMENDQ0BDQ0NAU0NDQGNDQ0BjQ0NAc0NDQINTU0CTU1NQk1NTUKNTU1CzU1 - NQw1NTUNNTU1DjY2NQ82NjYQNjY2ETY2NhI2NjYTNjY2FDc3NhU3NzYWNzc3Fzc3Nxg3NzcZNzc3Gzc3 - Nxw4ODcdODg3Hjg4Nx84ODggODg4ITg4OCI4ODgjOTk4JDk5OCU5OTgmOTk5Jzk5OSg5OTkpOTk5Kjk5 - OSs6OjkrOjo5LDo6OS06OjkuOjo6Lzo6OjA6OjowOjo6MTo6OjI7OzoyOzs6Mzs7OjQ7Ozo0Ozs6NTs7 - OjU7Ozs2Ozs7Njs7Ozc7Ozs3Ozs7Nzs7Ozg7Ozs4Ozs7OTs7Ozk8PDs5PDw7OTw8Ozo8PDs6PDw7Ojw8 - Ozo8PDs6PDw7Ojw8Ozo8PDs6PDw7Ojw8Ozo8PDs6PDw7Ojw8Ozo8PDs6PDw7Ojw8Ozo8PDs6PDw7OTw8 - Ozk7Ozs5Ozs7OTs7Ozg7Ozs4Ozs7Nzs7Ozc7Ozs3Ozs7Njs7OjU7Ozo1Ozs6NTs7OjQ7OzozOzs6Mzo6 - OjI6OjoyOjo6MDo6OjA6OjovOjo5Ljo6OS06OjktOjo5LDk5OSs5OTkqOTk5KTk5OSg5OTknOTk4Jjk5 - OCU5OTgkODg4Izg4OCI4ODghODg4IDg4OB84ODceODg3HTg4Nxw3NzcbNzc3Gjc3Nxk3NzcXNzc3Fjc3 - NhU2NjYUNjY2EzY2NhI2NjYRNjY2EDY2Ng82NjUONTU1DTU1NQw1NTULNTU1CjU1NQk1NTUJNTU0CDQ0 - NAc0NDQHNDQ0BjQ0NAU0NDQENDQ0BDMzMwQzMzMDMzMzAzMzMwMzMzMCMzMzAjMzMwEyMjIBMjIyATIy - MgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMzMzAjMz - MwMzMzMDMzMzBDMzMwQzMzMEMzMzBTQ0NAY0NDQHNDQ0CDQ0NAg0NDQJNDQ0CjU1NAs1NTUMNTU1DTU1 - NQ41NTUPNTU1EDU1NRE2NjUSNjY2EzY2NhQ2NjYWNjY2FzY2Nhg3NzYZNzc2Gzc3Nxw3NzcdNzc3Hjc3 - Nx83NzchODg3Ijg4NyM4ODgkODg4JTg4OCY4ODgoODg4KTk5OCo5OTgrOTk4LDk5OS05OTkuOTk5Lzk5 - OTA5OTkxOjo5Mjo6OTM6Ojk0Ojo5NTo6OjU6Ojo3Ojo6Nzo6Ojg6Ojo5Ozs6OTs7Ojo7Ozo6Ozs6Ozs7 - Ojw7Ozo8Ozs7PTs7Oz47Ozs+Ozs7Pjs7Oz87Ozs/Ozs7QDs7O0A8PDtAPDw7QDw8O0E8PDtBPDw7QTw8 - O0E8PDtBPDw7QTw8O0E8PDtBPDw7QTw8O0E8PDtBPDw7QTw8O0E8PDtBPDw7QTw8O0E8PDtBPDw7QTw8 - O0E8PDtAPDw7QDs7O0A7OztAOzs7Pzs7Oz47Ozs+Ozs7Pjs7Oz07Ozs8Ozs6PDs7Ojw7Ozo7Ozs6Ojs7 - Ojo7Ozo5Ojo6ODo6Ojc6Ojo3Ojo6Njo6OjU6Ojk0Ojo5Mzo6OTI6OjkyOTk5MDk5OTA5OTkuOTk5Ljk5 - OSw5OTgrOTk4Kjg4OCk4ODgoODg4Jzg4OCY4ODgkODg3Izg4NyI4ODchNzc3IDc3Nx83NzcdNzc3HDc3 - Nxs3NzYaNzc2GTY2Nhc2NjYWNjY2FTY2NhQ2NjYTNjY1EjU1NRA1NTUPNTU1DjU1NQ01NTUMNTU1CzU1 - NAo0NDQJNDQ0CDQ0NAg0NDQHNDQ0BjQ0NAUzMzMEMzMzBDMzMwQzMzMDMzMzAzMzMwMzMzMCMjIyAjIy - MgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjICMjIyAzMz - MwMzMzMDMzMzBDMzMwQzMzMFMzMzBjMzMwc0NDQINDQ0CDQ0NAk0NDQKNDQ0CzQ0NAw1NTQNNTU1DzU1 - NRA1NTURNTU1EjU1NRM1NTUVNjY1FjY2Nhc2NjYZNjY2GjY2Nhs2NjYdNzc2Hjc3NiA3NzchNzc3Ijc3 - NyM3NzclNzc3Jjg4Nyg4ODcpODg4Kjg4OCs4ODgtODg4Ljg4OC85OTgwOTk4Mjk5ODI5OTk0OTk5NTk5 - OTY5OTk3Ojo5ODo6OTk6Ojk6Ojo5Ozo6Ojw6Ojo8Ojo6PTo6Oj46Ojo/Ozs6QDs7OkE7OzpBOzs6Qjs7 - OkM7OzpDOzs7RDs7O0Q7OztFOzs7RTs7O0Y7OztGOzs7Rjw8O0c8PDtHPDw7SDw8O0g8PDtIPDw7SDw8 - O0g8PDtJPDw7STw8O0k8PDtJPDw7STw8O0k8PDtJPDw7STw8O0k8PDtJPDw7STw8O0k8PDtIPDw7SDw8 - O0g8PDtIPDw7SDw8O0c8PDtHOzs7Rjs7O0Y7OztGOzs7RTs7O0U7OztEOzs7RDs7O0M7OzpDOzs6Qjs7 - OkE7OzpBOzs6QDs7Oj86Ojo+Ojo6Pjo6Oj06Ojo8Ojo5Ozo6OTo6Ojk5Ojo5ODk5OTc5OTk2OTk5NTk5 - OTQ5OTkzOTk4Mjk5ODA5OTgwODg4Ljg4OC04ODgsODg4Kzg4Nyk4ODcoODg3Jzc3NyU3NzckNzc3Ijc3 - NyE3NzcgNzc2Hzc3Nh02NjYcNjY2GjY2Nhk2NjYYNjY2FjY2NRU1NTUUNTU1EzU1NRE1NTUQNTU1DzU1 - NQ41NTQNNDQ0DDQ0NAo0NDQJNDQ0CTQ0NAg0NDQHMzMzBjMzMwUzMzMFMzMzBDMzMwQzMzMDMzMzAzIy - MgMyMjICMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIy - MgMzMzMEMzMzBDMzMwUzMzMGMzMzBzMzMwgzMzMINDQ0CTQ0NAs0NDQMNDQ0DTQ0NA40NDQPNTU0EDU1 - NRI1NTUTNTU1FTU1NRY1NTUXNjY1GTY2NRs2NjYcNjY2HTY2Nh82NjYgNjY2Ijc3NiM3NzYlNzc3Jjc3 - Nyg3NzcpNzc3Kzg4Nyw4ODcuODg3Lzg4ODA4ODgyODg4Mzg4ODU5OTg2OTk4Nzk5ODg5OTg5OTk5Ojk5 - OTw5OTk9OTk5Pjo6OT86OjlAOjo5QTo6OUI6OjpDOjo6RDo6OkU6OjpGOjo6Rjs7Okc7OzpIOzs6STs7 - Okk7OzpKOzs7Sjs7O0s7OztMOzs7TDs7O007OztNOzs7TTw8O048PDtPPDw7Tzw8O088PDtPPDw7Tzw8 - O1A8PDtQPDw7UDw8O1E8PDtRPDw7UTw8O1E8PDtRPDw7UTw8O1E8PDtRPDw7UTw8O1E8PDtQPDw7UDw8 - O1A8PDtQPDw7Tzw8O088PDtPPDw7Tzw8O048PDtOOzs7TTs7O007OztMOzs7TDs7O0s7OztLOzs7Sjs7 - Oko7OzpJOzs6SDs7Okg7OzpHOjo6Rjo6OkU6OjpEOjo6Qzo6OkI6OjlBOjo5QDo6OT86Ojk+OTk5PTk5 - OTw5OTk7OTk5Ojk5ODg5OTg3OTk4Njg4ODU4ODg0ODg4Mjg4ODE4ODgwODg3Ljg4Ny03NzcrNzc3Kjc3 - Nyg3NzcnNzc3JTc3NiQ3NzYiNjY2ITY2Nh82NjYeNjY2HDY2Nhs2NjUZNTU1GDU1NRY1NTUVNTU1FDU1 - NRI1NTURNTU0EDQ0NA40NDQNNDQ0DDQ0NAs0NDQKNDQ0CTMzMwgzMzMHMzMzBjMzMwUzMzMFMzMzBDMz - MwMyMjIDMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyAzIy - MgQyMjIEMzMzBTMzMwYzMzMHMzMzCDMzMwkzMzMKMzMzCzQ0NAw0NDQONDQ0DzQ0NBA0NDQSNDQ0EzU1 - NBU1NTUWNTU1GDU1NRk1NTUbNTU1HDY2NR42NjYgNjY2IjY2NiM2NjYlNjY2JjY2Nig3NzYqNzc2LDc3 - Ny03NzcvNzc3MDc3NzI4ODc0ODg3NTg4NzY4ODg4ODg4OTg4ODs4ODg8OTk4Pjk5OD85OThAOTk5QTk5 - OUM5OTlEOTk5RTo6OUY6OjlHOjo5SDo6OUk6OjpKOjo6Szo6Okw6OjpNOjo6Tjs7Ok87OzpQOzs6UDs7 - OlE7OzpSOzs7Ujs7O1M7OztUOzs7VDs7O1U7OztVPDw7VTw8O1Y8PDtXPDw7Vzw8O1c8PDtYPDw7WDw8 - O1g8PDtYPDw7WDw8O1g8PDtZPDw7WTw8O1k8PDtZPDw7WTw8O1k8PDtZPDw7WTw8O1k8PDtZPDw7WDw8 - O1g8PDtYPDw7WDw8O1g8PDtYPDw7Vzw8O1c8PDtXPDw7Vjw8O1Y7OztVOzs7VTs7O1Q7OztUOzs7Uzs7 - O1M7OztSOzs6UTs7OlE7OzpQOzs6Tzs7Ok46OjpNOjo6TTo6Okw6OjpLOjo5Sjo6OUk6OjlHOjo5Rzk5 - OUU5OTlEOTk5Qzk5OUI5OThBOTk4Pzk5OD44ODg9ODg4Ozg4ODo4ODg4ODg4Nzg4NzY4ODc0Nzc3Mzc3 - NzE3NzcvNzc3Ljc3Nyw3NzYrNzc2KTY2Nic2NjYlNjY2JDY2NiI2NjYgNjY1HzY2NR01NTUbNTU1GjU1 - NRg1NTUXNTU1FTU1NBQ0NDQSNDQ0ETQ0NA80NDQONDQ0DTQ0NAwzMzMKMzMzCTMzMwgzMzMHMzMzBzMz - MwUzMzMFMjIyBDIyMgMyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAjIyMgMyMjIDMjIyBDIy - MgQyMjIFMjIyBjMzMwczMzMIMzMzCTMzMwozMzMLMzMzDTQ0Mw40NDQPNDQ0ETQ0NBI0NDQUNDQ0FjQ0 - NBc1NTQZNTU1GzU1NR01NTUfNTU1IDU1NSI2NjUkNjY2JjY2Nig2NjYqNjY2KzY2Ni02NjYvNzc2MTc3 - NzM3Nzc0Nzc3Njc3Nzg3Nzc5ODg3Ozg4Nz04ODg+ODg4QDg4OEE4ODhDODg4RTk5OEY5OThHOTk4SDk5 - OUo5OTlLOTk5TDk5OU06OjlPOjo5UDo6OVE6OjlSOjo6Uzo6OlQ6OjpVOjo6VTs7OlY7OzpXOzs6WDs7 - Olk7OzpZOzs7Wjs7O1s7OztbOzs7XDs7O108PDtdPDw7Xjw8O148PDtePDw7Xzw8O188PDtgPDw7YDw8 - O2A8PDtgPDw8YTw8PGE8PDxhPDw8YTw8PGE8PDxiPDw8Yjw8PGI8PDxiPDw8Yjw8PGI8PDxiPDw8YTw8 - PGE8PDxhPDw8YTw8O2A8PDtgPDw7YDw8O2A8PDtfPDw7Xzw8O148PDtePDw7Xjw8O107OztdOzs7XDs7 - O1w7OztbOzs7Wjs7O1k7OzpZOzs6WDs7Olc7OzpXOzs6Vjo6OlU6OjpUOjo6Uzo6OlI6OjlROjo5UDo6 - OU86OjlOOTk5TTk5OUw5OTlKOTk5STk5OEg5OThGOTk4RTg4OEM4ODhCODg4QDg4OD84ODc9ODg3PDg4 - Nzo3Nzc4Nzc3Njc3NzU3NzczNzc2MTc3NjA2NjYuNjY2LDY2Nio2NjYoNjY2JzY2NSU2NjUjNTU1ITU1 - NR81NTUdNTU1HDU1NRo1NTQYNDQ0FjQ0NBU0NDQTNDQ0ETQ0NBA0NDQPMzMzDTMzMwwzMzMKMzMzCTMz - MwgzMzMHMzMzBjIyMgUyMjIEMjIyBDIyMgMyMjIDMjIyAjIyMgIyMjIBMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIDMjIyBDIy - MgUyMjIGMjIyBzIyMggzMzMJMzMzCjMzMwszMzMNMzMzDjMzMw80NDMRNDQ0EzQ0NBU0NDQWNDQ0GDQ0 - NBo0NDQcNTU0HjU1NSA1NTUiNTU1JDU1NSY1NTUoNjY1KjY2Niw2NjYuNjY2MDY2NjI2NjY0Nzc2Njc3 - Njg3Nzc5Nzc3Ozc3Nz03Nzc/Nzc3QDg4N0I4ODdEODg4Rjg4OEc4ODhJODg4Sjk5OEw5OThNOTk4Tzk5 - OVA5OTlROTk5Ujk5OVQ6OjlVOjo5Vjo6OVc6OjlYOjo6WTo6Olo6OjpbOjo6XDs7Ol07OzpeOzs6Xjs7 - Ol87OzpgOzs7YTs7O2E7OztiOzs7Yzs7O2M8PDtkPDw7ZDw8O2U8PDtlPDw7ZTw8O2Y8PDtnPDw7Zzw8 - PGc8PDxnPDw8Zzw8PGg8PDxoPDw8aDw8PGk8PDxpPDw8aT09PGk9PTxpPT08aT09PGk8PDxpPDw8aTw8 - PGk8PDxpPDw8aDw8PGg8PDxoPDw8Zzw8PGc8PDxnPDw7Zzw8O2Y8PDtmPDw7ZTw8O2U8PDtlPDw7ZDw8 - O2M7OztjOzs7Yjs7O2I7OzthOzs7YDs7OmA7OzpfOzs6Xjs7Ol06OjpcOjo6Wzo6Ols6OjpZOjo6WTo6 - OVc6OjlWOjo5VTk5OVQ5OTlTOTk5Ujk5OVA5OThPOTk4Tjk5OEw4ODhLODg4STg4OEg4ODhGODg4RTg4 - N0M4ODdBNzc3Pzc3Nz03Nzc8Nzc3Ojc3Nzg3NzY2NjY2NTY2NjI2NjYwNjY2LjY2Niw2NjUqNjY1KTU1 - NSY1NTUkNTU1IjU1NSA1NTUfNTU0HTQ0NBo0NDQZNDQ0FzQ0NBU0NDQTNDQ0EjMzMxAzMzMOMzMzDTMz - MwwzMzMKMzMzCTMzMwgyMjIHMjIyBjIyMgUyMjIEMjIyBDIyMgMyMjIDMjIyAjIyMgEyMjIBMjIyATIy - MgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBDIy - MgUyMjIGMjIyBzIyMggyMjIJMzMzCjMzMwwzMzMOMzMzDzMzMxEzMzMTNDQzFDQ0NBY0NDQYNDQ0GjQ0 - NBw0NDQeNDQ0ITU1NSM1NTUlNTU1JzU1NSk1NTUsNTU1LTY2NTA2NjYyNjY2NDY2NjY2NjY4NjY2Ojc3 - Njw3NzY/Nzc3QTc3N0I3NzdENzc3Rjc3N0g4ODdKODg3Szg4OE04ODhPODg4UDg4OFI5OThTOTk4VTk5 - OFY5OTlXOTk5WTk5OVo5OTlbOjo5XDo6OV06OjleOjo5Xzo6OmA6OjphOjo6Yjo6OmM7OzpkOzs6ZTs7 - OmY7OzpnOzs7Zzs7O2g7OztpOzs7aTs7O2o8PDtqPDw7azw8O2w8PDtsPDw7bDw8O2w8PDxtPDw8bjw8 - PG48PDxuPDw8bjw8PG48PDxvPDw8bz09PG89PTxvPT08bz09PG89PTxvPT08bz09PG89PTxvPT08bz09 - PG89PTxvPT08bz09PG88PDxvPDw8bzw8PG48PDxuPDw8bjw8PG48PDxtPDw7bTw8O2w8PDtsPDw7bDw8 - O2s8PDtqPDw7ajs7O2o7OztpOzs7aDs7O2c7OzpnOzs6Zjs7OmU7OzpkOzs6Yzo6OmM6OjpiOjo6YTo6 - OmA6OjlfOjo5Xjo6OV06OjlbOTk5Wjk5OVk5OTlYOTk5Vjk5OFU5OThUOTk4Ujg4OFE4ODhPODg4TTg4 - OEw4ODdKODg3SDc3N0c3NzdFNzc3Qzc3N0E3Nzc/Nzc2PTc3Njs2NjY5NjY2NzY2NjU2NjYzNjY2MTY2 - NS41NTUsNTU1KjU1NSg1NTUmNTU1JDU1NCI0NDQfNDQ0HTQ0NBs0NDQZNDQ0FzQ0NBUzMzMTMzMzETMz - MxAzMzMOMzMzDTMzMwszMzMJMjIyCDIyMggyMjIGMjIyBTIyMgQyMjIEMjIyAzIyMgMyMjICMjIyAjIy - MgEyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBDIy - MgUyMjIGMjIyCDIyMgkyMjIKMjIyCzMzMw0zMzMPMzMzETMzMxIzMzMUMzMzFjQ0Mxg0NDQaNDQ0HTQ0 - NB80NDQhNDQ0JDU1NCY1NTUoNTU1KzU1NS01NTUvNTU1MjU1NTQ2NjU2NjY2OTY2Njs2NjY9NjY2PzY2 - NkE3NzZDNzc2Rjc3N0g3NzdKNzc3Szc3N004ODdPODg3UTg4OFM4ODhUODg4Vjg4OFc4ODhZOTk4Wzk5 - OFw5OTldOTk5Xzk5OWA5OTlhOjo5Yjo6OWM6OjllOjo5ZTo6Omc6OjpnOjo6aTo6Omo7OzpqOzs6azs7 - Omw7OzptOzs7bjs7O247OztvOzs7bzs7O3A8PDtxPDw7cTw8O3E8PDtyPDw7czw8O3M8PDxzPDw8dDw8 - PHQ8PDx1PDw8dTw8PHU9PTx1PT08dT09PHY9PTx2PT08dj09PHY9PTx2PT08dj09PHY9PTx2PT08dj09 - PHY9PTx2PT08dj09PHY9PTx2PT08dT09PHU9PTx1PDw8dTw8PHU8PDx0PDw8dDw8PHM8PDxzPDw7czw8 - O3I8PDtyPDw7cTw8O3E8PDtwOzs7bzs7O287OztuOzs7bjs7Om07OzpsOzs6bDs7Omo7OzpqOjo6aTo6 - Omg6OjpnOjo6Zjo6OWU6OjlkOjo5Yzk5OWE5OTlgOTk5Xzk5OV45OThcOTk4Wzk5OFk4ODhYODg4Vjg4 - OFU4ODhTODg3UTg4N1A3NzdONzc3TDc3N0o3NzdINzc3Rjc3NkQ3NzZCNjY2QDY2Nj42NjY7NjY2OTY2 - Njc2NjU1NTU1MjU1NTA1NTUuNTU1KzU1NSk1NTQnNDQ0JDQ0NCI0NDQgNDQ0HTQ0NBs0NDQZMzMzFjMz - MxUzMzMTMzMzETMzMw8zMzMOMzMzDDIyMgoyMjIJMjIyCDIyMgcyMjIGMjIyBTIyMgQyMjIDMjIyAzIy - MgIyMjICMjIyATIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIHMjIyCDIyMgkyMjIKMjIyDDIyMg4zMzMQMzMzETMzMxQzMzMWMzMzGDMzMxo0NDMcNDQ0HzQ0 - NCI0NDQkNDQ0JjQ0NCk1NTQrNTU1LjU1NTE1NTUzNTU1NjU1NTg1NTU6NjY1PTY2NkA2NjZCNjY2RDY2 - NkY2NjZINzc2Szc3N003NzdPNzc3UTc3N1M3NzdUODg3Vjg4N1g4ODhaODg4XDg4OF04ODhfOTk4YDk5 - OGI5OThjOTk5ZDk5OWY5OTlnOTk5aDo6OWk6OjlqOjo5bDo6Omw6OjpuOjo6bjo6Om87OzpwOzs6cTs7 - OnI7OzpzOzs6czs7O3Q7Ozt1Ozs7dTw8O3Y8PDt2PDw7dzw8O3g8PDt4PDw7eDw8PHk8PDx5PDw8ejw8 - PHo8PDx6PT08ej09PHs9PTx7PT08ez09PHs9PTx7PT08fD09PHw9PTx8PT08fD09PHw9PTx8PT08fD09 - PHw9PTx8PT08fD09PHw9PTx8PT08ez09PHs9PTx7PT08ez09PHs9PTx6PDw8ejw8PHo8PDx6PDw8eTw8 - PHk8PDt4PDw7eDw8O3g8PDt3PDw7djw8O3Y7Ozt2Ozs7dTs7O3Q7Ozt0Ozs6czs7OnI7OzpxOzs6cTo6 - OnA6OjpvOjo6bjo6Om06OjlsOjo5azo6OWo6OjlpOTk5Zzk5OWY5OTllOTk5Yzk5OGI5OThhODg4Xzg4 - OF44ODhcODg4Wjg4OFk4ODdXODg3VTc3N1M3NzdRNzc3UDc3N043NzZMNzc2STY2Nkc2NjZFNjY2QjY2 - NkA2NjY+NjY1PDU1NTk1NTU2NTU1NDU1NTI1NTUvNTU1LTQ0NCo0NDQnNDQ0JTQ0NCI0NDQgNDQ0HTQ0 - MxszMzMZMzMzFjMzMxQzMzMSMzMzEDMzMw4yMjINMjIyCzIyMgkyMjIIMjIyBzIyMgYyMjIFMjIyBDIy - MgMyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIHMjIyCDIyMgoyMjIMMjIyDTIyMg8yMjIRMzMzEzMzMxUzMzMYMzMzGjMzMxwzMzMfNDQzIjQ0 - NCQ0NDQoNDQ0KjQ0NC00NDQvNTU0MjU1NTU1NTU4NTU1OzU1NT01NTVANjY1QjY2NUU2NjZINjY2SjY2 - Nkw2NjZPNjY2UTc3NlM3NzdVNzc3Vzc3N1k3NzdbNzc3XTg4N144ODdgODg4Yjg4OGQ4ODhlODg4Zjk5 - OGg5OThqOTk5azk5OWw5OTltOTk5bzk5OXA6OjlxOjo5cjo6OXM6Ojp0Ojo6dTo6OnY7Ozp3Ozs6dzs7 - Ong7Ozp5Ozs7ejs7O3o7Ozt7Ozs7fDw8O3w8PDt9PDw7fTw8O308PDt+PDw7fzw8PH88PDx/PDw8gDw8 - PIA9PTyAPT08gT09PIE9PTyBPT08gT09PII9PTyCPT08gj09PII9PTyCPT08gj09PII9PT2CPT09gj09 - PYI9PT2CPT08gj09PII9PTyCPT08gj09PII9PTyCPT08gj09PIE9PTyBPT08gT09PIE9PTyAPT08gDw8 - PIA8PDx/PDw8fzw8PH88PDt+PDw7fjw8O308PDt9PDw7fDw8O3w7Ozt7Ozs7ezs7O3o7Ozp5Ozs6eDs7 - Onc7Ozp3Ojo6djo6OnU6Ojp0Ojo6czo6OXI6OjlxOjo5cDk5OW85OTluOTk5bDk5OWs5OThqOTk4aTk5 - OGc4ODhlODg4ZDg4OGM4ODhhODg3Xzg4N103NzdbNzc3Wjc3N1g3NzdWNzc3VDc3NlE2NjZPNjY2TTY2 - Nks2NjZINjY2RjY2NUM1NTVBNTU1PjU1NTs1NTU5NTU1NjU1NTM0NDQwNDQ0LjQ0NCs0NDQoNDQ0JjQ0 - NCM0NDMgMzMzHTMzMxszMzMZMzMzFjMzMxQzMzMRMjIyEDIyMg4yMjIMMjIyCjIyMgkyMjIIMjIyBjIy - MgUyMjIEMjIyBDIyMgMyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIIMjIyCTIyMgoyMjIMMjIyDjIyMhAyMjISMjIyFDMzMxczMzMZMzMzHDMzMx8zMzMiMzMzJDQ0 - Myc0NDQqNDQ0LjQ0NDE0NDQzNDQ0NjU1NDk1NTU8NTU1PzU1NUI1NTVFNTU1RzY2NUo2NjZNNjY2UDY2 - NlI2NjZUNjY2Vjc3Nlk3NzZbNzc3XTc3N183NzdhNzc3Yzg4N2U4ODdmODg4aDg4OGo4ODhrODg4bTk5 - OG45OThwOTk4cTk5OXM5OTl0OTk5dTk5OXY6Ojl3Ojo5eDo6OXk6Ojp6Ojo6ezo6Onw6Ojp9Ozs6fTs7 - On47Ozp/Ozs6fzs7O4A7OzuBOzs7gTw8O4I8PDuCPDw7gzw8O4M8PDuEPDw8hDw8PIU8PDyFPDw8hT09 - PIU9PTyGPT08hj09PIc9PTyHPT08hz09PIc9PTyHPT08hz09PYg9PT2IPT09iD09PYg9PT2IPT09iD09 - PYg9PT2IPT09iD09PYg9PT2IPT09iD09PYg9PT2IPT09hz09PIc9PTyHPT08hz09PIc9PTyHPT08hj09 - PIY9PTyGPDw8hTw8PIU8PDyFPDw8hDw8PIQ8PDuDPDw7gzw8O4M8PDuCPDw7gjs7O4E7OzuAOzs7gDs7 - On87Ozp+Ozs6fjs7On06Ojp8Ojo6ezo6Ono6Ojp5Ojo5eDo6OXg6Ojl2OTk5dTk5OXQ5OTlzOTk5cjk5 - OHA5OThvODg4bTg4OGw4ODhqODg4aTg4N2c4ODdlNzc3Yzc3N2I3NzdgNzc3Xjc3N1w3NzZaNjY2VzY2 - NlU2NjZTNjY2UDY2Nk42NjVLNTU1SDU1NUY1NTVDNTU1QDU1NT01NTU6NTU0NzQ0NDQ0NDQxNDQ0LjQ0 - NCw0NDQpNDQzJjMzMyIzMzMgMzMzHTMzMxszMzMYMzMzFTIyMhMyMjIRMjIyDzIyMg0yMjILMjIyCTIy - MggyMjIHMjIyBjIyMgQyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgIyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIIMjIyCTIyMgsyMjIMMjIyDjIyMhEyMjITMjIyFTIyMhgzMzMbMzMzHTMzMyEzMzMkMzMzJzMz - Myo0NDQtNDQ0MDQ0NDQ0NDQ3NDQ0OjQ0ND01NTRANTU1QzU1NUY1NTVJNTU1TDU1NU82NjVRNjY2VDY2 - Nlc2NjZZNjY2XDY2Nl43NzZgNzc2Yjc3N2Q3NzdmNzc3aDc3N2o4ODdrODg3bTg4OG84ODhxODg4cjg4 - OHM5OTh1OTk4djk5OXg5OTl5OTk5ejk5OXs6Ojl8Ojo5fTo6OX46Ojp/Ojo6gDo6OoA6OjqBOzs6gjs7 - OoM7OzqDOzs6hDs7O4U7OzuFOzs7hjw8O4Y8PDuHPDw7hzw8O4g8PDuIPDw8iDw8PIk8PDyJPDw8ij09 - PIo9PTyKPT08ij09PIs9PTyLPT08iz09PIw9PT2MPT09jD09PYw9PT2MPT09jD09PYw+Pj2MPj49jD4+ - PY0+Pj2NPj49jT4+PY0+Pj2NPj49jD09PYw9PT2MPT09jD09PYw9PT2MPT09jD09PYw9PTyLPT08iz09 - PIs9PTyLPT08ij09PIo9PTyKPDw8ijw8PIk8PDyJPDw8iDw8O4g8PDuHPDw7hzw8O4c8PDuGOzs7hTs7 - O4U7OzuEOzs6hDs7OoM7OzqCOzs6gjo6OoE6OjqAOjo6fzo6OX46Ojl9Ojo5fDk5OXs5OTl6OTk5eTk5 - OXg5OTh3OTk4dTk5OHQ4ODhzODg4cTg4OHA4ODhuODg3bDg4N2o3NzdpNzc3Zzc3N2U3NzdjNzc2YTc3 - Nl42NjZcNjY2WjY2Nlg2NjZVNjY2UzY2NU81NTVNNTU1SjU1NUc1NTVENTU1QTU1ND40NDQ7NDQ0ODQ0 - NDU0NDQxNDQ0LjQ0MyszMzMoMzMzJTMzMyIzMzMfMzMzHDMzMxkyMjIWMjIyFDIyMhIyMjIPMjIyDTIy - MgsyMjIJMjIyCDIyMgcyMjIGMjIyBDIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIIMjIyCTIyMgsyMjINMjIyDzIyMhEyMjIUMjIyFjIyMhkyMjIcMzMzHzMzMyIzMzMmMzMzKTMz - MywzMzMvNDQ0MjQ0NDY0NDQ6NDQ0PTQ0NEA0NDRDNTU0RzU1NUo1NTVNNTU1UDU1NVM1NTVWNjY1WDY2 - Nls2NjZeNjY2YDY2NmI2NjZlNzc2Zzc3N2k3NzdrNzc3bTc3N283NzdwODg3cjg4N3Q4ODh2ODg4dzg4 - OHg4ODh6OTk4ezk5OHw5OTl9OTk5fjk5OX85OTmAOjo5gTo6OYI6OjmDOjo6hDo6OoU6OjqGOzs6hjs7 - Ooc7OzqIOzs6iDs7O4k7OzuJOzs7ijw8O4o8PDuLPDw7jDw8O4w8PDuMPDw8jTw8PI08PDyNPT08jj09 - PI49PTyOPT08jj09PI89PTyPPT08jz09PY89PT2QPT09kD09PZA9PT2QPj49kD4+PZA+Pj2QPj49kD4+ - PZA+Pj2QPj49kD4+PZA+Pj2QPj49kD4+PZA+Pj2QPj49kD4+PZA+Pj2QPT09kD09PZA9PT2QPT09jz09 - PY89PTyPPT08jz09PI89PTyOPT08jj09PI48PDyNPDw8jTw8PI08PDyMPDw7jDw8O4w8PDuLPDw7izs7 - O4o7OzuKOzs7iTs7O4g7OzqIOzs6hzs7OoY6OjqGOjo6hTo6OoQ6OjqDOjo5gzo6OYI6OjmBOTk5gDk5 - OX85OTl+OTk5fDk5OHs5OTh6ODg4eTg4OHc4ODh2ODg4dTg4N3M4ODdxNzc3bzc3N203NzdsNzc3ajc3 - N2g3NzZlNjY2YzY2NmE2NjZfNjY2XDY2Nlk2NjVWNTU1VDU1NVE1NTVONTU1SzU1NUg1NTRENDQ0QTQ0 - ND40NDQ7NDQ0ODQ0NDQ0NDMwMzMzLTMzMyozMzMmMzMzIzMzMyAzMzMcMjIyGjIyMhcyMjIUMjIyEjIy - MhAyMjINMjIyCzIyMgoyMjIIMjIyBzIyMgYyMjIEMjIyBDIyMgMyMjICMjIyAjIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBTIy - MgYyMjIIMjIyCTIyMgsyMjINMjIyDzIyMhEyMjIUMjIyFzIyMhoyMjIdMjIyIDMzMyMzMzMnMzMzKjMz - My4zMzMxMzMzNTQ0NDg0NDQ8NDQ0QDQ0NEQ0NDRHNDQ0SjU1NU41NTVRNTU1VDU1NVc1NTVaNTU1XTY2 - NV82NjZiNjY2ZTY2Nmc2NjZpNzc2azc3Nm03NzdvNzc3cjc3N3M3Nzd1ODg3dzg4N3g4ODh6ODg4ezg4 - OH04ODh+OTk4fzk5OIA5OTiBOTk5gzk5OYQ5OTmFOjo5hTo6OYY6OjmHOjo6iDo6Ook6OjqKOjo6ijs7 - Oos7OzqMOzs6jDs7O407OzuNOzs7jjw8O448PDuOPDw7jzw8O488PDuQPDw8kDw8PJA8PDyRPT08kT09 - PJE9PTyRbW1srWxsbK1sbGuta2trrYyMjMiLi4vIioqKyIqKicmJiYnJj4+Oz5+fn+Senp7knZ2d5Jyc - nOScnJvkm5ub5JqamuSZmZnkmZmZ5JiYmOSXl5fkl5eX5JaWluSWlpbkkZGQ3YCAgMl/f3/Jf39/yH9/ - f8h/f3/Ia2trtGNjY61jY2OtY2NjrUhIR5g9PTyRPT08kT09PJE8PDyQPDw8kDw8PJA8PDuQPDw7jzw8 - O488PDuOOzs7jjs7O407OzuNOzs6jDs7Oow7OzqLOzs6ijo6Ooo6OjqJOjo6iDo6Oog6OjmHOjo5hjk5 - OYU5OTmEOTk5gzk5OYI5OTiBOTk4gDg4OH44ODh9ODg4fDg4OHo4ODh5ODg3dzc3N3Y3Nzd0Nzc3cjc3 - N3A3NzduNzc2bDY2Nmo2NjZoNjY2ZTY2NmM2NjZhNjY1XTU1NVs1NTVYNTU1VTU1NVI1NTVPNTU0SzQ0 - NEg0NDRFNDQ0QTQ0ND40NDQ6NDQzNjMzMzMzMzMvMzMzLDMzMygzMzMlMzMzITIyMh4yMjIbMjIyGDIy - MhUyMjISMjIyEDIyMg4yMjIMMjIyCjIyMggyMjIHMjIyBTIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIy - MgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAjIyMgMyMjIEMjIyBTIy - MgYyMjIHMjIyCTIyMgsyMjINMjIyDzIyMhEyMjIUMjIyFzIyMhoyMjIdMjIyITMzMiQzMzMoMzMzKzMz - MzAzMzM0MzMzNzMzMzs0NDQ/NDQ0QzQ0NEc0NDRKNDQ0TjQ0NFE1NTVUNTU1WDU1NVs1NTVeNTU1YTY2 - NWQ2NjVmNjY2aTY2Nms2NjZuNjY2cDc3NnI3NzZ0Nzc3djc3N3g3Nzd5Nzc3ezg4N3w4ODd+ODg4fzg4 - OIE4ODiCODg4gzk5OIQ5OTiFOTk5hzk5OYg5OTmIOTk5iTo6OYo6OjmLOjo5jDo6Oow6OjqNOjo6jjs7 - Oo47OzqPOzs6jzs7O5A7OzuQOzs7kTs7O5FLS0uYcnJxrXFxca2Xl5fIlpaWyaurq92wsLDkr6+v5MPD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+cnJzrmJiY5JmZmeSDg4PJg4ODyG5u - brRmZmWtU1NSnzw8O5E7OzuROzs7kTs7O5A7OzqQOzs6jzs7Oo47OzqOOjo6jTo6Oo06OjqMOjo5izo6 - OYo6OjmKOTk5iTk5OYg5OTmHOTk5hjk5OIU5OTiEODg4gzg4OIE4ODiAODg4fzg4N304ODd7Nzc3ejc3 - N3g3Nzd3Nzc3dTc3NnI2NjZwNjY2bjY2Nmw2NjZqNjY2ZzY2NWQ1NTViNTU1XzU1NVw1NTVZNTU1VjU1 - NFI0NDRPNDQ0SzQ0NEg0NDRENDQ0QTQ0NDwzMzM4MzMzNTMzMzEzMzMtMzMzKTMzMyUyMjIiMjIyHjIy - MhsyMjIYMjIyFTIyMhIyMjIQMjIyDjIyMgwyMjIKMjIyCDIyMgYyMjIFMjIyBDIyMgMyMjIDMjIyAjIy - MgEyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIEMjIyBDIy - MgYyMjIHMjIyCTIyMgoyMjINMjIyDzIyMhEyMjIUMjIyFzIyMhsyMjIeMjIyIjIyMiYzMzIpMzMzLTMz - MzEzMzM2MzMzOjMzMz40NDNCNDQ0RjQ0NEo0NDRONDQ0UjQ0NFU1NTRZNTU1XDU1NV81NTVjNTU1ZjU1 - NWk2NjVrNjY2bjY2NnA2NjZzNjY2dTY2Nnc3NzZ5Nzc3ezc3N3w3Nzd+Nzc3gDc3N4E4ODeDODg4hDg4 - OIU4ODiHODg4iDk5OIk5OTiKOTk4izk5OYs5OTmMOTk5jTo6OY46OjmPOjo5jzo6OpA6OjqROjo6kTs7 - OpJMTEuZdnZ2rYyMjLufn5/Jvb295Ly8vOTU1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/qKio8p+fn+SOjo7QiIiIyWhoZ65UVFOgOzs6kjo6OpE6OjqROjo6kDo6 - OpA6OjmPOjo5jjk5OY05OTmNOTk5jDk5OYs5OTiKOTk4iTg4OIg4ODiHODg4hjg4OIQ4ODeDODg3gjc3 - N4A3Nzd/Nzc3fTc3N3s3NzZ5Nzc2dzY2NnU2NjZzNjY2cTY2Nm82NjVsNTU1aTU1NWY1NTVkNTU1YTU1 - NV41NTRaNDQ0VjQ0NFM0NDRPNDQ0TDQ0NEg0NDRDMzMzPzMzMzszMzM3MzMzMzMzMy8zMzMrMjIyJzIy - MiMyMjIgMjIyHDIyMhkyMjIVMjIyEzIyMhAyMjIOMjIyCzIyMgkyMjIIMjIyBjIyMgUyMjIEMjIyAzIy - MgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIy - MgYyMjIHMjIyCDIyMgoyMjIMMjIyDzIyMhIyMjIUMjIyFzIyMhsyMjIeMjIyIzIyMicyMjIrMzMzLzMz - MzMzMzM3MzMzPDMzM0EzMzNFNDQzSTQ0NE00NDRRNDQ0VjQ0NFk0NDRdNTU0YDU1NWM1NTVnNTU1ajU1 - NW01NTVwNjY1cjY2NnU2NjZ3NjY2eTY2Nns2NjZ9Nzc2fzc3N4E3NzeCNzc3hDc3N4U4ODeHODg3iDg4 - OIk4ODiKODg4jDg4OIw5OTiNOTk4jjk5OY85OTmQOTk5kTk5OZE6OjmSOjo5kmxsbKeSkpK7r6+v0MjI - yOTb29v439/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+kpKTkmZmZ14SE - hMJqamquSEhHmTo6OZI6OjmROTk5kTk5OZA5OTmPOTk4jjk5OI05OTiNODg4jDg4OIs4ODiKODg3iDg4 - N4c3NzeGNzc3hDc3N4M3NzeBNzc3fzc3Nn42NjZ8NjY2ejY2Nng2NjZ2NjY2czY2NXA1NTVuNTU1azU1 - NWg1NTVlNTU1YTQ0NF40NDRaNDQ0VzQ0NFM0NDRPNDQ0SjMzM0YzMzNCMzMzPjMzMzkzMzM1MzMzMDIy - MiwyMjIoMjIyJDIyMiAyMjIcMjIyGTIyMhUyMjITMjIyEDIyMg4yMjILMjIyCTIyMggyMjIGMjIyBTIy - MgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgIyMjIDMjIyBDIy - MgUyMjIHMjIyCDIyMgoyMjIMMjIyDjIyMhEyMjIUMjIyFzIyMhsyMjIeMjIyIjIyMicyMjIrMjIyLzMz - MzQzMzM4MzMzPTMzM0IzMzNHMzMzSzQ0M080NDRTNDQ0VzQ0NFw0NDRgNDQ0YzU1NGc1NTVqNTU1bTU1 - NXA1NTVzNTU1djY2NXg2NjZ6NjY2fDY2Nn82NjaBNzc2gjc3NoQ3NzeFNzc3hzc3N4g3NzeKODg3izg4 - N4w4ODiNODg4jjg4OI85OTiQOTk4kTk5OJI5OTmSXl5eoJeXl7y3t7bQ0dHR5Ozs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf+0tLTypKSj3oeHh8Jra2uuOTk5kzk5OZI5OTiROTk4kDg4OJA4ODiPODg4jjg4 - OIw4ODeLODg3ijc3N4k3NzeINzc3hjc3N4U3NzaDNjY2gTY2Nn82NjZ9NjY2ezY2Nnk2NjV2NTU1dDU1 - NXE1NTVuNTU1azU1NWg1NTRkNDQ0YTQ0NF00NDRZNDQ0VTQ0NFAzMzNMMzMzSDMzM0QzMzM/MzMzOjMz - MzUzMzIxMjIyLDIyMigyMjIkMjIyIDIyMhwyMjIYMjIyFTIyMhIyMjIQMjIyDTIyMgoyMjIIMjIyBzIy - MgYyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIy - MgQyMjIGMjIyCDIyMgkyMjILMjIyDjIyMhAyMjIUMjIyFzIyMhoyMjIeMjIyIjIyMiYyMjIrMjIyMDIy - MjQzMzM5MzMzPjMzM0MzMzNIMzMzTTMzM1E0NDNVNDQ0WjQ0NF40NDRjNDQ0ZjQ0NGo1NTRtNTU1cDU1 - NXM1NTV2NTU1eTY2NXs2NjV+NjY2gDY2NoI2NjaENjY2hjc3Noc3NzeJNzc3ijc3N4s3NzeNNzc3jjg4 - N484ODiQODg4kTg4OJI4ODiTcXFwp6ioqMPS0tHe8PDw+PX19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw/+urq7kkpKSyW1tbK45OTiTODg4kjg4 - OJE4ODiQODg3jzg4N443NzeNNzc3jDc3N4s3NzeJNzc2hzc3NoY2NjaENjY2gzY2NoE2NjZ+NjY1fDU1 - NXo1NTV3NTU1dDU1NXE1NTVuNTU0azQ0NGc0NDRkNDQ0YDQ0NFw0NDRXNDQzUjMzM04zMzNKMzMzRTMz - M0AzMzM7MzMyNjIyMjEyMjItMjIyKDIyMiQyMjIfMjIyGzIyMhgyMjIVMjIyEjIyMg8yMjIMMjIyCjIy - MggyMjIGMjIyBTIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIy - MgQyMjIFMjIyBzIyMgkyMjIKMjIyDTIyMg8yMjISMjIyFjIyMhoyMjIdMjIyITIyMiUyMjIqMjIyLzIy - MjQyMjI5MzMzPjMzM0MzMzNIMzMzTjMzM1IzMzNXNDQ0XDQ0NGA0NDRkNDQ0aTQ0NGw0NDRwNTU1czU1 - NXY1NTV5NTU1fDU1NX42NjWBNjY2gzY2NoU2NjaGNjY2iDY2Noo3NzaLNzc3jTc3N443NzePNzc3kDg4 - N5E4ODeSX19foJycnLzV1dXe9/f3+P7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/7Gx - seSMjIzDYmJipzg4OJI4ODeSNzc3kTc3N5A3NzePNzc3jTc3Now3NzaKNjY2iTY2Noc2NjaFNjY2gzY2 - NYE1NTV/NTU1fTU1NXo1NTV3NTU1dDU1NHE0NDRtNDQ0ajQ0NGY0NDRiNDQ0XTQ0M1kzMzNUMzMzTzMz - M0szMzNFMzMzQDMzMjsyMjI2MjIyMTIyMiwyMjIoMjIyIjIyMh4yMjIbMjIyFzIyMhQyMjIRMjIyDjIy - MgsyMjIJMjIyCDIyMgYyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIy - MgMyMjIEMjIyBjIyMggyMjIJMjIyDDIyMg4yMjIRMjIyFDIyMhgyMjIcMjIyIDIyMiUyMjIpMjIyLjIy - MjQyMjI5MjIyPzMzM0QzMzNJMzMzTjMzM1QzMzNYMzMzXTQ0NGE0NDRmNDQ0ajQ0NG40NDRyNTU0dTU1 - NXg1NTV7NTU1fjU1NYE1NTWDNjY1hTY2Noc2NjaJNjY2izY2No03NzaONzc2jzc3N5A3NzeRNzc3km5u - bqe9vb3Q5OTk6/z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJ - yf/Kysr/y8vL/83Nzf/BwcHyp6en13p6erU3NzeTNzc3kjc3N5E3NzeQNzc2jjY2No02NjaMNjY2ijY2 - Nog2NjWGNjY1hDU1NYI1NTV/NTU1fTU1NXk1NTR2NDQ0czQ0NG80NDRsNDQ0aDQ0NGM0NDNeMzMzWjMz - M1UzMzNQMzMzSzMzM0UzMzNAMjIyOzIyMjYyMjIxMjIyLDIyMiYyMjIiMjIyHTIyMhoyMjIWMjIyEzIy - Mg8yMjINMjIyCjIyMggyMjIHMjIyBTIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIy - MgMyMjIEMjIyBTIyMgcyMjIJMjIyCzIyMg4yMjIQMjIyEzIyMhcyMjIbMjIyHzIyMiQyMjIoMjIyLTIy - MjMyMjI5MjIyPjIyMkQzMzNJMzMzTjMzM1QzMzNaMzMzXzMzM2M0NDRoNDQ0bDQ0NHA0NDR1NDQ0eDU1 - NHs1NTV+NTU1gTU1NYQ1NTWGNTU1iDY2NYo2NjaMNjY2jjY2No82NjaQNzc2kjc3NpNtbW2nurq60Onp - 6fL5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jI - yP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/y8vL+Kqqqtd6enq1Nzc3kzc3NpI2NjaRNjY2kDY2 - No42NjaMNjY2izY2NYk1NTWHNTU1hTU1NYI1NTV/NTU1fDQ0NHk0NDR2NDQ0cjQ0NG40NDRpNDQ0ZTMz - M2AzMzNbMzMzVzMzM1EzMzNLMzMzRjIyMkAyMjI7MjIyNTIyMjAyMjIqMjIyJTIyMiEyMjIcMjIyGTIy - MhUyMjIRMjIyDjIyMgwyMjIJMjIyCDIyMgYyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIy - MgMyMjIDMjIyBDIyMgYyMjIIMjIyCjIyMgwyMjIPMjIyEjIyMhUyMjIZMjIyHjIyMiIyMjInMjIyLDIy - MjIyMjI3MjIyPjIyMkQzMzJJMzMzTzMzM1QzMzNaMzMzYDMzM2U0NDNpNDQ0bjQ0NHI0NDR2NDQ0ejQ0 - NH41NTSBNTU1hDU1NYY1NTWINTU1izU1NY02NjWONjY2kDY2NpE2NjaTW1tboaKiocPl5eXy9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XF - xf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/8jIyPijo6PXX19fqDY2 - NpM2NjaSNjY2kDY2No82NjWNNTU1izU1NYk1NTWHNTU1hDU1NYI0NDR/NDQ0ezQ0NHg0NDR0NDQ0bzQ0 - NGszMzNmMzMzYTMzM1wzMzNXMzMzUDMzM0syMjJFMjIyQDIyMjoyMjI0MjIyLjIyMikyMjIkMjIyHzIy - MhsyMjIXMjIyEzIyMhAyMjINMjIyCjIyMgkyMjIHMjIyBTIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIy - MgIyMjIDMjIyBDIyMgUyMjIGMjIyCDIyMgsyMjIOMjIyEDIyMhQyMjIXMjIyGzIyMiEyMjImMjIyKjIy - MjAyMjI1MjIyOzIyMkIyMjJIMzMyTjMzM1MzMzNZMzMzXzMzM2UzMzNqNDQzbjQ0NHM0NDR3NDQ0ezQ0 - NH80NDSCNTU0hTU1NYg1NTWKNTU1jDU1NY42NjWQNjY2kjY2NpOHh4e1ycnJ3vHx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TE - xP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XF - xf+zs7Pye3t7vEFBQZo2NjaSNjY1kTU1NY81NTWNNTU1izU1NYg1NTWGNTU0gzQ0NIA0NDR9NDQ0eTQ0 - NHQ0NDRwMzMzazMzM2czMzNhMzMzXDMzM1UzMzNQMjIySjIyMkQyMjI+MjIyODIyMjEyMjIsMjIyJzIy - MiIyMjIdMjIyGTIyMhUyMjIRMjIyDjIyMgwyMjIJMjIyBzIyMgUyMjIEMjIyAzIyMgMyMjIBMjIyATIy - MgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIy - MgEyMjIDMjIyAzIyMgQyMjIGMjIyBzIyMgkyMjIMMjIyDzIyMhIyMjIVMjIyGTIyMh4yMjIjMjIyKDIy - Mi0yMjIzMjIyOTIyMj8yMjJGMjIyTDMzMlIzMzNYMzMzXjMzM2QzMzNqMzMzbzQ0M3M0NDR4NDQ0ezQ0 - NH80NDSDNDQ0hjU1NIk1NTWLNTU1jTU1NZA1NTWSSEhImp2dncPf39/y7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PD - w//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rK - yv/FxcX/wsLC/76+vv+0tLT4kJCQ105OTaE1NTWSNTU1kDU1NY41NTWMNTU1ijU1NIc0NDSENDQ0gTQ0 - NH00NDR5NDQ0dTMzM3AzMzNrMzMzZjMzM2AzMzNaMzMzVDIyMk4yMjJIMjIyQjIyMjwyMjI1MjIyLzIy - MioyMjIlMjIyIDIyMhsyMjIWMjIyEzIyMhAyMjINMjIyCjIyMggyMjIGMjIyBDIyMgMyMjIDMjIyAjIy - MgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjICMjIyAzIyMgMyMjIEMjIyBjIyMggyMjIKMjIyDTIyMhAyMjITMjIyFzIyMhsyMjIgMjIyJjIy - MisyMjIwMjIyNjIyMjwyMjJDMjIySjIyMlAzMzNWMzMzXDMzM2IzMzNoMzMzbjMzM3M0NDN4NDQ0fDQ0 - NIA0NDSDNDQ0hzQ0NIo1NTWMNTU1jzU1NZFHR0eZpqamyePj4/js7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LC - wv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83N - zf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+zs7P/jo6O10xMTKE1NTWRNTU1jzU1NY01NTSLNDQ0iDQ0 - NIU0NDSBNDQ0fTQ0NHkzMzN0MzMzcDMzM2szMzNlMzMzXjMzM1gyMjJSMjIyTDIyMkYyMjI/MjIyODIy - MjIyMjItMjIyJzIyMiIyMjIdMjIyGDIyMhQyMjIRMjIyDjIyMgsyMjIJMjIyBjIyMgUyMjIEMjIyAzIy - MgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjIBMjIyAjIyMgMyMjIEMjIyBTIyMgYyMjIIMjIyCzIyMg4yMjIRMjIyFDIyMhgyMjIdMjIyIjIy - MigyMjItMjIyMzIyMjkyMjI/MjIyRjIyMk4yMjJUMzMzWjMzM2AzMzNmMzMzbDMzM3IzMzN3NDQ0ezQ0 - NIA0NDSDNDQ0hzQ0NIs0NDSNNTU1j0dHR5ikpKTJ4ODg+Ojo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR - 0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/ioqK10tLS581NTWQNTU0jjQ0 - NIs0NDSINDQ0hTQ0NIE0NDR9NDQzeDMzM3QzMzNvMzMzaTMzM2IzMzNcMzMyVjIyMlAyMjJJMjIyQzIy - MjsyMjI1MjIyLzIyMikyMjIkMjIyHzIyMhoyMjIWMjIyEjIyMg8yMjIMMjIyCTIyMgcyMjIFMjIyBDIy - MgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgEyMjIBMjIyATIyMgIyMjIDMjIyBDIyMgUyMjIHMjIyCTIyMgwyMjIPMjIyEjIyMhYyMjIaMjIyHjIy - MiQyMjIqMjIyMDIyMjYyMjI8MjIyQzIyMkoyMjJRMjIyWDMzM14zMzNkMzMzajMzM3AzMzN2MzMzezQ0 - NH80NDSDNDQ0hzQ0NIo0NDSONTU0kI2Njbvd3d345eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT - 0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/gICAz0FB - QJg0NDSPNDQ0jDQ0NIk0NDSENDQ0gTQ0M3wzMzN4MzMzczMzM20zMzNmMzMzYDMzMloyMjJTMjIyTTIy - MkYyMjI+MjIyODIyMjIyMjIsMjIyJzIyMiEyMjIbMjIyFzIyMhMyMjIQMjIyDTIyMgoyMjIIMjIyBjIy - MgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIGMjIyBzIyMgoyMjIMMjIyEDIyMhMyMjIXMjIyGzIy - MiAyMjImMjIyLDIyMjIyMjI4MjIyPzIyMkYyMjJNMjIyVTIyMlszMzNiMzMzaDMzM24zMzN0MzMzejMz - M380NDSDNDQ0hzQ0NIo0NDSNZWVlpcTExOTi4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR - 0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Ki - ov+ampr4YmJiszQ0NI80NDSMNDQ0iDQ0NIQ0NDOAMzMzezMzM3YzMzNxMzMzajMzM2QzMzJdMjIyVzIy - MlAyMjJJMjIyQTIyMjsyMjI0MjIyLjIyMigyMjIjMjIyHTIyMhgyMjIUMjIyETIyMg4yMjILMjIyCDIy - MgYyMjIFMjIyBDIyMgMyMjICMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMjIyATIyMgEyMjIBMjIyAzIyMgMyMjIEMjIyBjIyMggyMjIKMjIyDTIyMhAyMjIUMjIyGDIy - MhwyMjIhMjIyJzIyMi4yMjI0MjIyOjIyMkEyMjJIMjIyTzIyMlcyMjJeMzMzZDMzM2szMzNwMzMzdjMz - M30zMzOBNDQ0hTQ0NIk0NDSMoKCgx9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ - 0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wl - pf+ioqL/np6e/5ubm/+Dg4PcPj4+lTQ0NIo0NDSGNDQzgjMzM34zMzN5MzMzczMzM2wzMzNmMzMyYDIy - MlkyMjJTMjIySzIyMkMyMjI9MjIyNjIyMjAyMjIqMjIyJDIyMh4yMjIZMjIyFTIyMhEyMjIOMjIyCzIy - MgkyMjIHMjIyBTIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIEMjIyBTIyMgYyMjIIMjIyCjIyMg0yMjIRMjIyFDIy - MhkyMjIdMjIyIjIyMigyMjIvMjIyNjIyMjwyMjJDMjIySjIyMlEyMjJZMjIyYDMzM2YzMzNtMzMzczMz - M3kzMzN/MzMzgzQ0NIdGRkaSwMDA493d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/P - z//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mp - qf+lpaX/oqKi/56env+bm5v/l5eX/5CQkPhXV1epNDQ0iDQ0M4QzMzOAMzMzezMzM3UzMzNvMzMzaTMz - MmIyMjJbMjIyVTIyMk0yMjJFMjIyPjIyMjgyMjIyMjIyKzIyMiUyMjIfMjIyGjIyMhYyMjISMjIyDzIy - MgwyMjIJMjIyBzIyMgUyMjIEMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgIyMjIDMjIyBDIyMgUyMjIGMjIyCTIyMgsyMjIOMjIyETIy - MhUyMjIZMjIyHjIyMiMyMjIpMjIyMDIyMjcyMjI+MjIyRDIyMksyMjJTMjIyWzIyMmIzMzNoMzMzbjMz - M3QzMzN6MzMzgDMzM4VlZWWf1NTU+Nvb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7 - u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87O - zv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ys - rP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/2tra700NDOGMzMzgjMzM30zMzN3MzMzcDMz - M2ozMzJkMjIyXTIyMlYyMjJPMjIyRzIyMkAyMjI5MjIyMjIyMiwyMjImMjIyIDIyMhsyMjIWMjIyEzIy - Mg8yMjIMMjIyCTIyMgcyMjIGMjIyBDIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIFMjIyBzIyMgkyMjILMjIyDjIy - MhIyMjIWMjIyGjIyMh8yMjIkMjIyKjIyMjEyMjI4MjIyPjIyMkUyMjJMMjIyVDIyMlwyMjJjMzMzajMz - M3AzMzN2MzMzezMzM4GKioqz0tLS+Nra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83N - zf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7Cw - sP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/dXV00jMzM4MzMzN+MzMzeDMz - M3IzMzNsMzMyZTIyMl4yMjJXMjIyUDIyMkgyMjJBMjIyOjIyMjMyMjItMjIyJzIyMiAyMjIcMjIyFzIy - MhMyMjIPMjIyDDIyMgkyMjIHMjIyBjIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIEMjIyBTIyMgcyMjIJMjIyCzIy - Mg4yMjISMjIyFjIyMhoyMjIfMjIyJDIyMioyMjIyMjIyODIyMj8yMjJGMjIyTTIyMlQyMjJdMjIyZDMz - M2ozMzNxMzMzdjMzM3yKioqx1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vL - y//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0 - tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif9ycnLQMzMzfzMz - M3kzMzNzMzMzbDMzMmYyMjJfMjIyWDIyMlEyMjJIMjIyQTIyMjoyMjI0MjIyLjIyMicyMjIhMjIyHDIy - MhcyMjIUMjIyEDIyMgwyMjIJMjIyBzIyMgYyMjIEMjIyAzIyMgMyMjIBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyBDIyMgUyMjIHMjIyCTIy - MgsyMjIOMjIyEjIyMhYyMjIbMjIyHzIyMiQyMjIrMjIyMjIyMjkyMjJAMjIyRjIyMk0yMjJVMjIyXTIy - MmQzMzNqMzMzcTMzM3dmZmaV1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rK - yv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3 - t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/2xs - bMczMzN6MzMzczMzM20zMzJmMjIyYDIyMlkyMjJRMjIySDIyMkEyMjI6MjIyNDIyMi4yMjInMjIyITIy - MhwyMjIXMjIyFDIyMhAyMjINMjIyCTIyMgcyMjIGMjIyBDIyMgMyMjIDMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIFMjIyBzIy - MgkyMjILMjIyDjIyMhIyMjIWMjIyGjIyMh8yMjIkMjIyKjIyMjIyMjI4MjIyPzIyMkYyMjJNMjIyVDIy - Ml0yMjJkMzMzajMzM3FHR0d/zc3N99TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJ - yf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7 - u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WF - hf+CgoL/WFhYojMzM3MzMzNsMzMyZjIyMl8yMjJYMjIyUTIyMkgyMjJBMjIyOjIyMjQyMjItMjIyJzIy - MiEyMjIcMjIyFzIyMhQyMjIQMjIyDDIyMgkyMjIHMjIyBjIyMgQyMjIDMjIyAzIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIEMjIyBTIy - MgcyMjIJMjIyCzIyMg4yMjISMjIyFjIyMhoyMjIfMjIyJDIyMioyMjIxMjIyODIyMj4yMjJFMjIyTDIy - MlQyMjJcMjIyYzMzM2ozMzNwu7u73NLS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jI - yP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+ - vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJ - if+FhYX/goKC/3x8fPZKSkqDMzMzbDMzMmUyMjJeMjIyVzIyMlAyMjJIMjIyQTIyMjoyMjIzMjIyLTIy - MicyMjIgMjIyGzIyMhcyMjITMjIyDzIyMgwyMjIJMjIyBzIyMgYyMjIEMjIyAzIyMgIyMjIBMjIyATIy - MgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgIyMjIDMjIyBDIy - MgUyMjIGMjIyCDIyMgoyMjIOMjIyETIyMhUyMjIZMjIyHjIyMiMyMjIpMjIyMDIyMjcyMjI9MjIyRDIy - MksyMjJTMjIyWzIyMmIzMzNoiYmJpNHR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XF - xf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LC - wv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42N - jf+JiYn/hYWF/4KCgv9+fn7/bGxsyTMzM2ozMzJkMjIyXTIyMlYyMjJPMjIyRjIyMkAyMjI5MjIyMjIy - MiwyMjImMjIyIDIyMhsyMjIWMjIyEzIyMg8yMjIMMjIyCTIyMgcyMjIGMjIyBDIyMgMyMjICMjIyATIy - MgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjICMjIyAzIy - MgQyMjIFMjIyBjIyMggyMjIKMjIyDTIyMhEyMjIUMjIyGTIyMh0yMjIiMjIyKDIyMi8yMjI2MjIyPDIy - MkMyMjJKMjIyUTIyMlkyMjJgMzMzZsXFxe3R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TE - xP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XF - xf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQ - kP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/9FRUV7MzMyYjIyMlsyMjJVMjIyTTIyMkUyMjI+MjIyODIy - MjIyMjIrMjIyJTIyMh8yMjIaMjIyFjIyMhIyMjIPMjIyDDIyMgkyMjIHMjIyBTIyMgQyMjIDMjIyAjIy - MgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIy - MgMyMjIDMjIyBDIyMgYyMjIIMjIyCjIyMg0yMjIQMjIyFDIyMhgyMjIcMjIyITIyMicyMjIuMjIyNDIy - MjoyMjJBMjIyRzIyMk8yMjJXMjIyXXp6eorPz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PD - w//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rK - yv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SU - lP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/Z2dnuzMzMl8yMjJZMjIyUjIyMksyMjJDMjIyPDIy - MjYyMjIwMjIyKjIyMiQyMjIeMjIyGTIyMhUyMjIRMjIyDjIyMgsyMjIIMjIyBjIyMgUyMjIEMjIyAzIy - MgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIy - MgEyMjICMjIyAzIyMgQyMjIGMjIyBzIyMgkyMjIMMjIyEDIyMhMyMjIXMjIyGzIyMiAyMjIlMjIyLDIy - MjIyMjI4MjIyPjIyMkUyMjJMMjIyVDIyMlqqqqq5z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LC - wv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83N - zf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eX - l/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3Nzc+szMzJcMjIyVjIyMk8yMjJIMjIyQTIy - MjoyMjI0MjIyLjIyMigyMjIiMjIyHDIyMhgyMjIUMjIyETIyMg4yMjILMjIyCDIyMgYyMjIEMjIyBDIy - MgMyMjICMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjIBMjIyAjIyMgMyMjIEMjIyBTIyMgcyMjIJMjIyCzIyMg8yMjISMjIyFjIyMhoyMjIeMjIyJDIy - MioyMjIvMjIyNjIyMjwyMjJCMjIySTIyMlEyMjJXvb281s/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR - 0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ub - m/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/RkZGbjIyMlMyMjJNMjIyRTIy - Mj4yMjI4MjIyMTIyMiwyMjImMjIyITIyMhsyMjIXMjIyEzIyMhAyMjINMjIyCjIyMggyMjIGMjIyBDIy - MgMyMjIDMjIyAjIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgEyMjIBMjIyATIyMgIyMjIDMjIyBDIyMgUyMjIGMjIyCDIyMgsyMjIOMjIyETIyMhQyMjIYMjIyHTIy - MiIyMjIoMjIyLTIyMjMyMjI5MjIyPzIyMkYyMjJOMjIyVM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT - 0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56e - nv+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/1RUU4AyMjJQMjIySTIy - MkIyMjI7MjIyNTIyMi8yMjIpMjIyJDIyMh8yMjIaMjIyFjIyMhIyMjIPMjIyDDIyMgkyMjIHMjIyBTIy - MgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBjIyMggyMjIKMjIyDTIyMhAyMjITMjIyFzIy - MhsyMjIgMjIyJjIyMisyMjIwMjIyNjIyMjwyMjJDMjIySjIyMlDOzs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR - 0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Ki - ov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/9UVFR9MjIyTDIy - MkYyMjI/MjIyODIyMjIyMjItMjIyJzIyMiIyMjIdMjIyGDIyMhQyMjIRMjIyDjIyMgsyMjIJMjIyBjIy - MgUyMjIEMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgMyMjIDMjIyBDIyMgYyMjIHMjIyCTIyMgwyMjIPMjIyEjIy - MhUyMjIZMjIyHTIyMiMyMjIoMjIyLTIyMjMyMjI5MjIyPzIyMkYyMjJMzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ - 0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wl - pf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/VVVVejIy - MkgyMjJCMjIyPDIyMjUyMjIvMjIyKjIyMiQyMjIgMjIyGzIyMhYyMjITMjIyEDIyMg0yMjIKMjIyCDIy - MgYyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIFMjIyBjIyMggyMjILMjIyDTIy - MhAyMjITMjIyFzIyMhsyMjIgMjIyJTIyMioyMjIvMjIyNTIyMjsyMjJCMjIyR87Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/P - z//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mp - qf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/1ZW - VnYyMjJDMjIyPjIyMjcyMjIxMjIyLDIyMicyMjIiMjIyHTIyMhkyMjIUMjIyETIyMg4yMjIMMjIyCTIy - MgcyMjIFMjIyBDIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIyMgYyMjIHMjIyCTIy - MgwyMjIPMjIyETIyMhUyMjIZMjIyHTIyMiIyMjInMjIyKzIyMjEyMjI2MjIyPTIyMkLOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7 - u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87O - zv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ys - rP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3 - d/9XV1dyMjIyPzIyMjkyMjIzMjIyLTIyMigyMjIjMjIyHzIyMhsyMjIWMjIyEzIyMg8yMjINMjIyCjIy - MggyMjIHMjIyBTIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIFMjIyBzIy - MgkyMjILMjIyDTIyMhAyMjITMjIyFjIyMhsyMjIfMjIyIzIyMigyMjItMjIyMjIyMjgyMjI+zs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83N - zf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7Cw - sP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7 - e/93d3f/WVlZbzIyMjoyMjI1MjIyLzIyMikyMjIlMjIyIDIyMhwyMjIYMjIyFDIyMhEyMjIOMjIyCzIy - MgkyMjIIMjIyBjIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIy - MgYyMjIIMjIyCTIyMgwyMjIOMjIyETIyMhQyMjIYMjIyHDIyMiAyMjIlMjIyKTIyMi4yMjI0MjIyOc7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vL - y//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0 - tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+ - fv97e3v/d3d3/1paWmsyMjI2MjIyMTIyMisyMjImMjIyIjIyMh0yMjIaMjIyFjIyMhMyMjIPMjIyDTIy - MgoyMjIIMjIyBzIyMgUyMjIEMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIy - MgQyMjIFMjIyBzIyMggyMjIKMjIyDTIyMg8yMjISMjIyFjIyMhkyMjIdMjIyITIyMiUyMjIqMjIyLzIy - MjTOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rK - yv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3 - t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KC - gv9+fn7/e3t7/3d3d/9bW1toMjIyMTIyMiwyMjIoMjIyIjIyMh4yMjIaMjIyFzIyMhQyMjIRMjIyDjIy - MgsyMjIJMjIyCDIyMgYyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyAjIy - MgMyMjIDMjIyBDIyMgYyMjIIMjIyCTIyMgsyMjIOMjIyEDIyMhQyMjIXMjIyGjIyMh4yMjIiMjIyJjIy - MisyMjIwzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJ - yf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7 - u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WF - hf+CgoL/fn5+/3t7e/93d3f/XV1dZDIyMiwyMjIoMjIyJDIyMh8yMjIbMjIyGDIyMhQyMjISMjIyDzIy - MgwyMjIKMjIyCDIyMgYyMjIFMjIyBDIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIy - MgEyMjICMjIyAzIyMgQyMjIFMjIyBjIyMggyMjIJMjIyCzIyMg4yMjIRMjIyFDIyMhcyMjIaMjIyHjIy - MiIyMjInMjIyKs7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jI - yP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+ - vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJ - if+FhYX/goKC/35+fv97e3v/d3d3/15eXmAyMjIoMjIyJDIyMh8yMjIbMjIyGDIyMhUyMjISMjIyDzIy - Mg0yMjIKMjIyCDIyMgcyMjIFMjIyBDIyMgMyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIyMgUyMjIHMjIyCDIyMgoyMjIMMjIyDzIyMhEyMjIUMjIyFzIy - MhoyMjIdMjIyIjIyMibOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XF - xf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LC - wv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42N - jf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/9gYGBcMjIyIzIyMh8yMjIcMjIyGDIyMhUyMjISMjIyDzIy - Mg0yMjILMjIyCTIyMgcyMjIGMjIyBDIyMgQyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIEMjIyBjIyMgcyMjIIMjIyCjIyMg0yMjIPMjIyETIy - MhQyMjIXMjIyGjIyMh4yMjIhzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/s7Kx/7GxsP+wsK//sK+u/6+urf+ura3/ra2s/62sq/+sq6v/q6uq/6uq - qf+qqan/qqmo/6mpqP+pqKf/qKin/6inpv+op6b/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TE - xP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XF - xf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQ - kP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/YmJiWTIyMh8yMjIcMjIyGDIyMhUyMjISMjIyDzIy - Mg0yMjILMjIyCTIyMggyMjIGMjIyBTIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgIyMjIDMjIyBDIyMgUyMjIGMjIyBzIyMgkyMjILMjIyDTIy - Mg8yMjIRMjIyFDIyMhcyMjIaMjIyHc7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//BwcD/wL++/7y7uv+4t7X/t7a0/7SysP+xr63/sa+t/7Gu - rP+uq6j/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/q6mm/6up - pv+rqaf/q6mn/6qop/+qqaf/q6mo/6qqqf+rqqn/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PD - w//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rK - yv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SU - lP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/2RkZFYyMjIbMjIyGDIyMhUyMjISMjIyEDIy - Mg4yMjILMjIyCTIyMggyMjIGMjIyBTIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBTIyMgYyMjIIMjIyCTIy - MgsyMjINMjIyDzIyMhEyMjIUMjIyFzIyMhrOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/83M - y//JyMf/wL69/727uf+1s7H/s7Gu/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqo/62rqf+urKr/r62s/7Cv - rf+xsK//s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LC - wv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83N - zf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eX - l/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/9lZWVTMjIyGDIyMhUyMjISMjIyDzIy - Mg0yMjIMMjIyCjIyMggyMjIHMjIyBTIyMgQyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIyMgQyMjIFMjIyBjIy - MggyMjIJMjIyCzIyMg0yMjIPMjIyETIyMhQyMjIWzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Li4v/W1dT/y8nI/8PBv/+5t7T/sK2q/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/r62r/7Gvrf+ysa//trW0/7i4t/+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR - 0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ub - m/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/Z2dnUTIyMhQyMjISMjIyEDIy - Mg0yMjILMjIyCjIyMggyMjIHMjIyBjIyMgQyMjIEMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIy - MgUyMjIGMjIyCDIyMgkyMjIKMjIyDDIyMg4yMjIRMjIyE87Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/7Ozs/9rZ2f/NzMr/vbq4/7WysP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/7Kvrf+1s7H/uLe2/7y8 - u//BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT - 0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56e - nv+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/2lpaU4yMjIRMjIyDzIy - Mg0yMjILMjIyCTIyMggyMjIHMjIyBTIyMgQyMjIEMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAzIy - MgMyMjIEMjIyBTIyMgYyMjIHMjIyCDIyMgoyMjILMjIyDjIyMg/Ozs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/7Ovr/9jX1f/KyMX/t7Sy/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/sK2q/7Oxr/+5uLb/v769/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR - 0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Ki - ov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/9ra2tMMjIyDjIy - MgwyMjIKMjIyCTIyMggyMjIGMjIyBTIyMgQyMjIEMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIy - MgIyMjIDMjIyAzIyMgQyMjIFMjIyBjIyMgcyMjIIMjIyCTIyMgsyMjINzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3/9PT0/93b - 2v/Jx8T/tLGu/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/tbOx/7y6uf/DwsH/y8vL/83Nzf/Ozs7/z8/P/9DQ - 0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wl - pf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/bGxsSjIy - MgwyMjIKMjIyCTIyMgcyMjIGMjIyBTIyMgQyMjIEMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIy - MgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIyMgUyMjIGMjIyBzIyMggyMjIJMjIyCs7Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6/+Tj4v/Ny8n/ure0/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7KvrP+5t7X/wsHA/83N - zf/Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mp - qf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/25u - bkgyMjIJMjIyCDIyMgcyMjIGMjIyBTIyMgQyMjIDMjIyAzIyMgMyMjICMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjIBMjIyATIyMgEyMjICMjIyAzIyMgMyMjIEMjIyBDIyMgUyMjIGMjIyCDIyMgnOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//Ly8v/e3Nv/yMXD/7azsP+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/t7Sy/8PBwP/Pzs7/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ys - rP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3 - d/9vb29GMjIyCDIyMgcyMjIGMjIyBTIyMgQyMjIDMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgEyMjIBMjIyATIyMgEyMjIBMjIyATIyMgIyMjIDMjIyAzIyMgQyMjIEMjIyBTIyMgYyMjIHzs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/4N/e/8zKyP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7e1s//Bv77/yMjI/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7Cw - sP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7 - e/93d3f/cHBwRTIyMgYyMjIFMjIyBDIyMgQyMjIDMjIyAzIyMgIyMjICMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgIyMjIDMjIyAzIyMgQyMjIFMjIyBc7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v/+jo6P/Pzcv/trSx/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+4trT/vby7/76+vv+7u7v/t7e3/7S0 - tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+ - fv97e3v/d3d3/3FxcUQyMjIFMjIyBDIyMgMyMjIDMjIyAzIyMgIyMjIBMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAjIyMgMyMjIDMjIyBDIy - MgTOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/29rZ/8LAvf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+0sq//t7a1/7a2 - tv+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KC - gv9+fn7/e3t7/3d3d/9ycnJDMjIyBDIyMgMyMjIDMjIyAjIyMgIyMjIBMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjIBMjIyATIyMgEyMjICMjIyAjIy - MgMyMjIDzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/W1dT/u7i2/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa//tLKw/7Cwr/+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WF - hf+CgoL/fn5+/3t7e/93d3f/c3NzQjIyMgMyMjIDMjIyAjIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgEyMjIBMjIyATIy - MgEyMjICMjIyA87Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/9TT0v+7ubb/tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//srCu/6qqqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJ - if+FhYX/goKC/35+fv97e3v/d3d3/3Nzc0IyMjICMjIyAjIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyATIy - MgEyMjIBMjIyATIyMgLOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/09LR/7u5t/+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/rayq/6Ojov+enp7/m5ub/5eXl/+UlJT/kJCQ/42N - jf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/90dHRBMjIyATIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgEyMjIBMjIyATIyMgEyMjIBzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//Z2Nj/wb+9/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+1srD/p6al/5ubm/+Xl5f/lJSU/5CQ - kP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dHR0QTIyMgEyMjIBMjIyATIyMgEyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMjIyATIyMgEyMjIBMjIyAc7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/Lysn/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+wrqz/m5qa/5SU - lP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3R0dEEyMjIBMjIyATIyMgEyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgHOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9XU - 1P+/vLr/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7az - sP+hoJ//kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/90dHRBMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/87M - y/+7uLX/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/6mnpf+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dHR0QDIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/8fF - w/+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/sa+s/4yLi/+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/8TD - wf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+xr6z/iYiI/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/8TC - wf+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7GvrP+FhYX/fn5+/3t7e/93d3f/dXV1QAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/8rJ - yP+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/raup/35+fv97e3v/d3d3/3V1 - dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/83M - zP+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+dnJr/e3t7/3d3 - d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//Bv7z/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP+9u7j/vbu5/727uf+8urj/vLq4/7q5t/+5uLf/uLe2/7i3 - tf+3trX/t7a0/7a1tP+2tbP/tbSz/7W0sv+0s7L/tLOx/7Sysf+zsrH/s7Kw/7OxsP+ysbD/srGv/7Kw - r/+xsK//sbCv/7Gwr/+3tbP/t7Wz/7e1s/+3tbP/uri2/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/4OC - gv93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/JyMf/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/7+9uv/CwL7/wb++/8TC - wf/DwsH/w8LB/8PCwv/CwcH/wcHA/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+traz/rq2t/7Cv - rv+0s7L/tbOy/7i3tf+6uLb/vLq4/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf+tq6n/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/wb68/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/8PAvv/HxML/y8nI/8zKyf/Qz87/0M/P/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//srKx/7W0s/+3trX/qras/523o/+dt6T/nbek/523 - pP+dt6T/t7u0/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/39/f/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzMvL/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//CwL3/ysjF/9PS0P/W1dT/2djY/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/5yqof+Oqpn/cqqH/2uqgv9WqnT/Vqp1/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/0CpZ/9arXf/Yq99/3yzjv+NtZn/prmq/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u/+bmZj/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMjFxP/Bvrv/wb67/8G+u//Ewb//wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+ - u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+ - u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//OzMr/2dfW/+Df - 3v/m5ub/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/4un - lf9wqIT/VKhz/z+oZv84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Wq14/3Sx - iP+Wt5//uLy2/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+ - u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+u//Bvrv/wb67/8G+ - u//Bvrv/xcPA/8G+u//Bvrv/rqyq/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADFw8H/wb+8/8G/vP/IxcP/zcvJ/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/ - vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/ - vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8XDwP/U0tH/4eDf/+3s7P/19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/5elnP91pof/U6dy/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf9SrHL/hbWU/7C8sf/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/ - vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/ - vP/Bv7z/xMK//87My//Bv7z/wb+8/8G/vP91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAxcPB/8LAvf/CwL3/ycfE/9fV1P/CwL3/wsC9/8LAvf/CwL3/wsC9/8LA - vf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LA - vf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/V09H/5OPi//Tz8v/+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+XpZz/Z6Z+/0aoaf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Uqxy/4a1lf+xvbH/wsC9/8LAvf/CwL3/wsC9/8LA - vf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LAvf/CwL3/wsC9/8LA - vf/CwL3/wsC9/8/Ny//Pzcv/wsC9/8LAvf/CwL3/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPAvv/DwL7/w8C+/8rHxP/b2tn/ysfE/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/HxMH/2NbV/+rp6P/8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/n6ai/3Wmh/9Mp27/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/2Owfv+YuaD/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/Y19b/0M7M/8PAvv/DwL7/w8C+/8PAvkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDwb7PxMG+/8TBvv/HxML/3NrZ/9bU0//Ewb7/xMG+/8TB - vv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TB - vv/Ewb7/y8jF/9rZ1//u7u3/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+Sp5r/Yad7/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/0mr - bf+PuJv/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TBvv/Ewb7/xMG+/8TB - vv/Ewb7/xMG+/8TBvv/Qzsz/3NrZ/8/Ny//Ewb7/xMG+/8TBvv/Dwb4wAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMK/n8TCv//Ewr//xMK//9va1//c29n/z87L/8TC - v//Ewr//xMK//8TCv//Ewr//xMK//8TCv//Ewr//xMK//8TCv//Ewr//xMK//8TCv//Ewr//xMK//8TC - v//W1dP/5eXk//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/4yolv9UqHP/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/0qrbf9+tZD/xMK//8TCv//Ewr//xMK//8TCv//Ewr//xMK//8TCv//Ewr//xMK//8TC - v//Ewr//xMK//8TCv//JyMT/29rX/9zb2f/KyMT/xMK//8TCv//Ewr/vAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMXDwFDFw8D/xcPA/8XDwP/U0tH/3Nva/9zb - 2v/KyMX/xcPA/8XDwP/Fw8D/xcPA/8XDwP/Fw8D/xcPA/8XDwP/Fw8D/xcPA/8XDwP/Fw8D/zszK/+Df - 3v/v7u7/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/jamX/1Soc/84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/0qrbf+QuZz/xcPA/8XDwP/Fw8D/xcPA/8XDwP/Fw8D/xcPA/8XD - wP/Fw8D/xcPA/8XDwP/IxML/2NfV/9zb2v/b2tj/xcPA/8XDwP/Fw8D/xcPAnwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAx8PB78fEwf/HxMH/y8nF/93c - 2v/d3Nr/3NrY/8vJxf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/S0c//4+Pi/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+Oqpj/Valz/zioYf84qGH/P6hl/1Soc/9bqHf/b6eE/2+ng/9vp4P/b6eD/26m - g/9hp3r/U6dy/z+oZf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/1Otc/+jvan/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/1tTS/93c2v/d3Nr/0tDO/8fEwf/HxMH/x8TB/8fDwUAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjEwYDIxML/yMTC/8jE - wv/Y1tX/3dzb/93c2//a2dj/zMnH/8jEwv/IxML/yMTC/8jEwv/IxML/yMTC/9TS0f/m5eX/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/6WsqP9jqX3/Rqhq/2OpfP9/qY7/mqig/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/kKWY/3Wmh/9NqG7/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/2Wxf/++wrv/yMTC/8jE - wv/IxML/yMTC/8jEwv/IxML/1dPS/93c2//d3Nv/3NvZ/8nHw//IxML/yMTC/8jEwb8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAycXCz8nF - w//JxcP/y8nH/9zb2v/e3Nv/3tzb/9zb2v/Nysj/ycXD/8nFw//JxcP/09LQ/+Pj4v/o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/4mslv9rqoL/lque/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/5mnnv9pqID/P6hl/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Qapn/4m4 - mP/JxcP/ycXD/8nFw//Kx8T/2dfV/97c2//e3Nv/3tzb/9LQzv/JxcP/ycXD/8nFw//IxcIwAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnF - wzDKx8P/ysfD/8rHw//Rz83/3t3b/97d2//e3dv/3dva/9HPzf/Qzsz/397e/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/5qooP9jqXz/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/WKt2/7O5sv/Ny8n/2tnX/97d2//e3dv/3t3b/9jW1P/Kx8P/ysfD/8rHw//Jx8OAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAysfEYMrIxP/KyMT/ysjE/9fV0//e3dz/3t3c/97d3P/g39//4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/46q - mP9GqGr/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf8/qGX/jrGa/87NzP/e3dz/3t3c/9rZ2P/LycX/ysjE/8rIxP/Kx8SfAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADLyMVwy8jF/8vIxf/LyMX/2NXU/97d3P/f3t7/4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/pKun/06pb/84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9jonr/trW1/9fV1P/Mysf/y8jF/8vIxf/LyMXPy8jFEAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvJxXDMycf/zcrI/9XU1P/d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ZKp+/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/0qla/+Yn5r/wL68/8zJx//MycfPy8nFEAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0c/NgNfX1v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf9kqn7/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Pqdk/4OYiv+sq6q/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1tbWMNjY2O/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/3usjf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/bZd8/4mJ - iWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1dXVMNbW1u/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//g62S/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf9gmHX/hoaGYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA09PTMNTU1O/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+ErpP/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/1Wbbv+CgoJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0dHRENLS0t/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/5Sw - nv9AqWb/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/U5lt/39/f0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0a/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/nLGk/0CpZv84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9BomXvOKhhEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz0DR0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+dsqX/QKln/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zio - Yv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zio - Yv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zio - Yv84qGL/OKhi/zioYv84qGL/OKhi/zioYv84qGL/OKhi/zioYs84qWIQAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPz8+/0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/56zpv9Aqmj/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zip - Y/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zip - Y/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zip - Y/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKljzzipYxAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs4wz8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/n7Sn/0Craf84qmT/OKpk/ziqZP84qmT/OKpk/ziq - ZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziq - ZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziq - ZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZP84qmSvAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4qmQQOKpkQDiq - ZEA4qmQQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7Oj8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+gtaj/QKtq/ziqZf84qmX/OKpl/ziq - Zf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziq - Zf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziq - Zf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziq - ZZ8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADirZhA4qmWfOKpl/ziq - Zf84qmX/OKpl7zirZjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozr/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/6G2qf9ArGv/OKtm/zir - Zv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zir - Zv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zir - Zv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zir - Zv84q2b/OKtmnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADirZ1A4q2bvOKtm/zir - Zv84q2b/OKtm/zirZv84q2bfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/obeq/0Ct - bP84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zis - Z/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zis - Z/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zisZ/84rGf/OKxn/zis - Z/84rGf/OKxn/zisZ/84rGeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADisZ484rGf/OKxn/zis - Z/84rGf/OKxn/zisZ/84rGf/OKxn/zisZzAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+iuKv/QK1u/zisaf84rGn/SLZ3/1C6fv84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zis - af84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zis - af84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGn/OKxp/zis - af84rGn/OKxp/zisaf84rGn/OKxp/zitaWAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN61pIDisac84rGn/OKxp/zis - af84rGn/OKxp/zisaf84rGn/OKxp/zisaf84rGlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/6O5rP83rWr/N61q/zetav9Pu3//T7t//zetav83rWr/N61q/zetav83rWr/N61q/zet - av83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zet - av83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zet - av83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61qMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN61qUDetau83rWr/N61q/zet - av83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61qQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/i7ee/zeua/83rmv/N65r/0+7gP9fxI//N65r/zeua/83rmv/N65r/zeu - a/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeu - a/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeu - a/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua+83rmsgAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3rmsQN65rnzeua/83rmv/N65r/zeu - a/83rmv/N65r/zeua/83rmv/N65r/zeua/83rmv/N65r/zeua0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf+LuJ//N65s/zeubP83rmz/W8KM/1/FkP83rmz/N65s/zeu - bP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeu - bP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeu - bP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65szzeubBAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3rmwwN65szzeubP83rmz/N65s/zeu - bP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmsQAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/4S4m/83r23/N69t/zevbf9fx5H/X8eQ/zev - bf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zev - bf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zev - bf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r22fAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3r21gN69t7zevbf83r23/N69t/zev - bf83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zevbf83r23/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/a7aN/zevbv83r27/N69u/2vN - nP9fx5H/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zev - bv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zev - bv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zev - bnAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADewbhA3r26fN69u/zevbv83r27/N69u/zev - bv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69uzwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf9rt47/N7Bv/zew - b/87snL/a82d/1/Hkv83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zew - b/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zew - b/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zew - b/83sG//N7BvMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADewbzA3sG/fN7Bv/zewb/83sG//N7Bv/zew - b/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb/83sG//N7Bv/zewb78AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/ucG9/1G0 - f/83sXD/N7Fw/0O3ev9z0qX/W8SQ/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zex - cP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zex - cP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zex - cP83sXD/N7Fw/zexcN83sXAQAAAAAAAAAAAAAAAAAAAAADexcHA3sXD/N7Fw/zexcP83sXD/N7Fw/zex - cP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sHCPAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LC - wv+6wr7/QLJ2/zexcf83sXH/R7p//3fVqf9Pvob/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zex - cf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zex - cf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zex - cf83sXH/N7Fx/zexcf83sXH/N7FxrwAAAAAAAAAAN7FxEDexca83sXH/N7Fx/zexcf83sXH/N7Fx/zex - cf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7FxgAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/w8PD/6rBtf9As3f/N7Jy/zeycv9TwYr/d9aq/0+/h/83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snJgN7JyMDeyct83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zey - cmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+vr67/rq2t/62t - rP+trKv/rKur/6urqv+rqqn/qqmp/6qpqP+pqaj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP/BwcH/wsLC/8PDw//ExMT/kL6m/zeyc/83snP/N7Jz/1/Jlv9z1Kf/Q7l9/zeyc/83snP/N7Jz/zey - c/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zey - c/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zey - c/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz7zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zey - c/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zeyc/83snP/N7Jz/zey - c/83snNAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8LBwf+/vr3/vr28/7i2 - tf+3tbT/trWz/7Kwrv+xr6z/sa6s/7CurP+uq6j/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+rqaf/q6mn/6upp/+rqaf/qqin/6qop/+qqaf/qqmo/6qpqP+rqqn/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf92u5j/N7N0/zezdP87tXf/a9Ch/2/Spf87tXf/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/V1dT/zMvK/8XEw/+/vrz/uri3/7a0sf+0sa//rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rqup/66s - qf+urKr/r62s/6+urf+wsK//srGx/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/1u4if83s3X/N7N1/0O6f/9z1Kn/Z86e/zez - df83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zez - df83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zez - df83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zez - df83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zez - df83s3X/N7N1/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/3dzc/9XU - 0//IxcT/wL68/7q3tf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/sK2r/7CurP+zsbD/tLOy/7e2tv+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP+/yMP/SbeA/ze0dv83tHb/T8GK/3fX - rf9XxZH/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0du8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/i4uH/1dTT/8nIxf+9u7j/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/7Gv - rP+0srD/t7a0/7q6uf/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/63Fuf83tHf/N7R3/ze0 - d/9fypn/d9eu/0e9hP83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0 - d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0 - d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0 - d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0d/83tHf/N7R3/ze0 - d/83tHf/N7R3/ze0d/83tHe/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//X19f/h4N//09LQ/8C+vP+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Oxrv+3tbP/vLu6/8LBwf/FxcX/yMjI/8nJyf/Kysr/isGm/ze1 - eP83tXj/O7d7/2/TqP9z1av/O7d7/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V3rwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//n5+f/n5uX/09HQ/768uv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/s7Cu/7m3tf+/vr3/x8XF/8vL - y/9cu43/N7Z5/ze2ef9Hvob/d9iv/2PNnv83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2 - ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2 - ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2 - ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2 - ef83tnn/N7Z5/ze2ef83tnn/N7Z5/ze2eYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/u7ez/3NrZ/8TCv/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+0sq//s7q0/z62fP82tnn/NrZ5/1rKmP922K//SsCK/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnlwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/6+rq/9LQ - zv+7uLb/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+LsZz/Nrd6/za3ev86uX7/btSq/3LWrf86uX7/Nrd6/za3ev82t3r/Nrd6/za3 - ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3 - ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3 - ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3 - ev82t3r/Nrd6/za3ev82t3r/Nrd6/za3ev82t3r/Nrd6QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz/+jn5v/Qzs3/uri1/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/121iv82t3v/Nrd7/0a/if922bH/Ys+g/za3e/82t3v/Nrd7/za3 - e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3 - e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3 - e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3 - e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//s7Oz/1tXU/7+8uv+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+rsKr/Prd//za4fP82uHz/Wsua/3bZsv9GwIr/Nrh8/za4 - fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4 - fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4 - fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4 - fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+Li4f/Kycf/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/4yznv82uH3/Nrh9/zq6gP9y16//btWr/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/3dzb/8K/vf+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/VreK/za5fv82uX7/TsWS/3ba - s/9Wypj/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5 - fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5 - fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5 - fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+vwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/X1tX/u7m2/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/6Wzqf82uX//Nrl//za5 - f/9m0qf/ctiw/zq7gv82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5 - f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5 - f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5 - f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f78AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/9jY1//Bv73/tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//draX/za6 - gP82uoD/RsGN/3batP9ezqD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uX+PAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//29va/8PBv/+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/66z - rf8+uoP/NrqA/za6gP9m0qf/dtq0/z6+h/82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqAgAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/zczL/7m2tP+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/hraf/za6gf82uoH/Pr6I/3batf9i0aX/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6 - gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6 - gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6 - gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6gf82uoH/NrqB/za6 - gVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/Z2dj/wL68/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf9Guoj/NruC/za7gv9ez6L/dtu2/0bDj/82u4L/NruC/za7gv82u4L/NruC/za7 - gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7 - gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7 - gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7 - gv82u4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/R0dD/ure0/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/h7eg/za7g/82u4P/QsGM/3bbtv9m06n/NruD/za7g/82u4P/NruD/za7 - g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7 - g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7 - g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7 - g/82u4P/NruCEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/My8r/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/9Gu4n/NryD/za8g/9m1Kn/dty2/0bEkP82vIP/NryD/za8 - g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8 - g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8 - g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8 - g/82vIP/NryD/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//R0dH/0tLS/9TU1P/Lysn/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/iLih/za8hP82vIT/RsSR/3bct/9m1Kr/NryE/za8 - hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8 - hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8 - hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8 - hP82vIT/NryE/za8hN8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/Pz8//0dHR/9LS0v/Kycj/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7G3sf8+vIj/Nr2F/za9hf9u2LH/dty4/0bE - kv82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYW/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/z8/P/9HR0f/JyMf/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/cLqa/za9hf82vYX/Usuc/3bc - uP9e0aX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2FnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/8/Pz//Ozs3/vLm3/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/6q4r/82vYb/Nr2G/z7B - jP923Ln/ctq2/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9 - hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9 - hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9 - hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//wL68/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/uri2/7q4 - tv+6uLb/ure1/7m3tf+3trT/trWz/7a0s/+1tLL/tbOy/7Szsf+0srH/s7Kw/7OxsP+zsbD/srGv/7Kw - r/+ysK//sbCu/7Gvrv+xr67/trOx/7azsf+2s7H/tbOx/7Wzsf+3tLL/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/T72Q/za+ - h/82vof/WtCj/0LDkP82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vodwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/yMfF/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vbq3/8C+u/+/vbv/wcC+/8HAvv/Bv77/wcHA/8C/v/+/vr7/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6mo - qP+sq6v/rayr/7Cvrv+zsbD/s7Kw/7i2s/+4trT/uri1/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/iruk/z6+ - iv82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6HQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8G+vf+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6 - t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6 - t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6 - t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/wr++/8PBv//Kycj/y8nI/87N - zf/Ozc3/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/sbCw/7Oysv+1tLP/t7a1/7m3 - tv+6uLb/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6 - t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+0urT/aLya/za+ - iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+ - iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+ - iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+iP82voj/Nr6I/za+ - iP82voj/Nr6I/za+iP82voj/Nr6I/z7Cjv82voj/Nr6I/za+iDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMy/+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/8LAvf/KyMX/0c/O/9bV1P/Z2Nj/3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/ubi3/7u5uP+8urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+ku6//T76R/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/0XHlf9BxJL/Nb+J/zW/if8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHxcT/vru4/767uP++u7j/v726/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767 - uP++u7j/xMK//9HPzv/Z2Nf/4ODf/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb28/769vP++vbv/vry6/767 - uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP++u7j/vru4/767uP+Kvab/Pr+M/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if9RzZ//Nb+J/zW/if81v4n/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMLA/768uf++vLn/w8G+/8rJxf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/ysjF/9nX - 1v/l5eT/8vHx//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/wsHA/8HAvv/Avrz/v7y6/768uf++vLn/vry5/768uf++vLn/vry5/7W8tv9gvpj/Nb+K/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/WdCl/zW/iv81v4r/Nb+KvwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLAvv+/vLn/v7y5/8XDwP/T0dD/v7y5/7+8 - uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8 - uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8uf+/vLn/v7y5/7+8uf+/vLn/x8TC/9vZ2P/r6un/+vr6//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/FxcT/w8LB/8HAvf+/vLn/v7y5/6W9sP9GwJD/NcCK/zXA - iv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXA - iv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXA - iv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/zXA - iv81wIr/NcCK/zXAiv81wIr/NcCK/zXAiv81wIr/NcCK/1nRpv81wIr/NcCK/zXAir8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/vbr/v726/7+9uv/Fw8H/2dnX/8LA - vv+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/v726/7+9 - uv+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/v726/9LQz//h4N//9fT0//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zMzL/4fDq/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/9l17D/NcCL/zXAi/81wIuAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwL27v8C9u//Avbv/xcLA/9rZ - 2P/U0tH/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//S0M7/4+Lh//X19f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/wcvH/2TEn/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/9FyJf/VdCk/zXAi/81wIv/NcCLgAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC+u4/Avrv/wL67/8C+ - u//Z19b/2tnY/8nHxP/Avrv/wL67/8C+u//Avrv/wL67/8C+u//Avrv/wL67/8C+u//Avrv/wL67/8C+ - u//Avrv/wL67/8C+u//Avrv/zszK/+Hg3//y8vL/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/pMi6/0jClP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/Uc6h/1XQpf81wYz/NcGM/zXB - jEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBvrwwwb68/8G+ - vP/Bvrz/0c/O/9rZ2P/Z19b/x8PB/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8TBv//W1NP/6+vr//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7 - u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/fsSq/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/13Uq/9FyZj/NcGM/zXB - jP81wYxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMK/ - vN/Cv7z/wr+8/8nFw//b2dj/29nY/9bU0//Dwb7/wr+8/8K/vP/Cv7z/wr+8/8K/vP/Cv7z/wr+8/8K/ - vP/Cv7z/ysjF/93c2//v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP+8xcL/WcKb/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf9p2bT/RcmZ/zXB - jf81wY3/NcGMEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADCv71AwsC9/8LAvf/CwL3/1dPS/9va2f/b2tn/19XU/8TBv//CwL3/wsC9/8LAvf/CwL3/wsC9/8LA - vf/Mysn/4N/f/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw/+gw7b/PsGR/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/dd69/zXB - jf81wY3/NcGN/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMPAva/DwL3/w8C9/8jFwv/b2tn/29rZ/9va2f/X1dT/x8PB/8PAvf/DwL3/w8C9/8zK - yP/e3dz/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv98w6n/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/Rcqa/3Xf - vv81wo7/NcKO/zXCjs8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADDwb4Qw8G+78PBvv/Dwb7/0M7M/9va2f/b2tn/29rZ/9rZ1//KyMX/yMXC/9zb - 2v/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/7jBvv9Pwpj/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/1HP - o/9p2rX/NcKO/zXCjv81wo6/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTBvjDEwb/vxMG//8TBv//T0dD/3NrZ/9za2f/c29n/3t3d/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/7fAvP9Pwpf/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv9d1az/Zdiy/zXCjv81wo7/NcKOnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMK/MMTCv+/Fwr//xcK//9bV0//c3Nr/3t7e/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv9YwZv/NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//adq2/1nTqv81wo//NcKP/zXCj4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFwsAwxcPA78XDwP/S0dD/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf+kv7X/NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/3Xfv/9V0af/NcKP/zXCj/81wo9gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvJx0DV1NP/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/nL+y/zXDj/81w4//NcOP/1HQ - pP9V0qf/Tc+h/0XLm/89yJX/NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXD - j/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXD - j/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXD - j/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXDj/81w4//NcOP/zXD - j/81w4//NcOP/0XLm/914L//Tc+h/zXDj/81w4//NcOPQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANbW1jDY2NjP2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/62/uP81w5D/NcOQ/zXD - kP81w5D/NcOQ/0XLnP9Nz6L/VdKo/2HXsP9h17D/Zdmz/13Wrf9V0qf/Tc+h/0XLm/89yJX/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP9R0KT/deC//0XLm/81w5D/NcOQ/zXDjyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANXV1TDW1tbv2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/i8Gu/z7D - k/81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP89yJb/Rcuc/1XSqP9Z1Kr/Zdmz/3He - vP9t3bn/Zdmz/13Wrf9V0qj/Tc+i/0XLnP89yJb/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/WdSq/3Xgv/89yJb/NcOQ/zXDkP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPT0xDU1NTv1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP+4wb7/hMKs/1nDnf81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/0XLnP9Nz6L/VdKo/2HXsP9p27b/deC//3Xgv/9t3bn/Zdmz/13Wrf9V0qj/Tc+i/0XL - nP89yJb/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/23duf914L//NcOQ/zXDkP81w5DvAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0RDS0tLP1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/7PFv/+ix7n/iMev/3bHqf9axZ//SMSX/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP89yJb/Rcuc/1XSqP9Z1Kr/Zdmz/3He - vP914L//deC//3Xgv/9x3rz/Zdmz/2HXsP9V0qj/UdCl/0XLnP9ByZn/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/0XLnP914L//adu2/zXDkP81w5D/NcOQvwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0dGP0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/qMy+/5/M - u/+Dy7D/Zsmk/1zHoP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/0XLnP9Nz6L/VdKo/2HXsP9p27b/deC//3Xgv/914L//deC//3Xgv/9x3rz/Zdmz/2HX - sP9V0qj/UdCl/0XLnP9ByZn/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/znFk/9p27b/deC//1XSqP81w5D/NcOQ/zXDkI8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPz89A0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/P - z//Q0ND/0dHR/9PT0//R0dH/zc3N/7bJwv+hxbj/hMKs/3HBpP9WwZv/RcKV/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP89yJb/Rcuc/1XSqP9Z1Kr/Zdmz/3He - vP914L//deC//3Xgv/914L//deC//3Xgv/9x3rz/Zdmz/2HXsP9V0qj/UdCl/0XLnP9ByZn/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/z3Ilv9p27b/deC//3HevP85xZP/NcOQ/zXDkP81w5AwAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz8/Pv9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7 - u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87O - zv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/kbSo/4ez - pP9vtpz/WLqX/1C7lP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/0XLnP9Nz6L/VdKo/2HXsP9p27b/deC//3Xgv/914L//deC//3Xgv/914L//deC//3Xg - v/9x3rz/Zdmz/2HXsP9V0qj/VdKo/2HXsP914L//deC//3HevP9ByZn/NcOQ/zXDkP81w5C/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7OIM/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Oz - s/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6am - pv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83N - zf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7Cw - sP+srKz/qamp/6Wlpf+ioqL/np6e/46gmf9+opX/aqiS/12tkP9LtY//QLyP/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP89yJb/Rcuc/1XSqP9Z1Kr/Zdmz/3He - vP914L//deC//3Xgv/914L//deC//3Xgv/914L//deC//2nbtv9ByZn/NcOQ/zXDkP81w5DvNcOQIAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zoDPz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vL - y//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0 - tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6en - p/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qq - qv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vL - y//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0 - tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/bpKF/2eT - hP9Yn4X/SquI/zXDkL81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/0XLnP9Nz6L/VdKo/2HXsP9l2bP/VdKo/0nNn/81w5D/NcOQ/zXDkP81w5D/NcOQUAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs6/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83N - zf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1 - tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6en - p/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mp - qf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4 - uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rK - yv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3 - t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KC - gv9+fn7/e3t7/3d3d/91dXUQAAAAADXDkCA1w5BANcOQcDXDkI81w5C/NcOQ3zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5DvNcOQMAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O78/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs - 7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87O - zv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2 - tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6io - qP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6io - qP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3 - t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJ - yf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7 - u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WF - hf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANcOQQDXD - kFA1w5CANcOQrzXDkL81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkO81w5CANcOQEAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u - 7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ - 0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4 - uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mp - qf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6en - p/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2 - tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jI - yP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+ - vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJ - if+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADXDkCA1w5BANcOQcDXDkIA1w5CANcOQgDXDkEAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw - 8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS - 0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5 - uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mp - qf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6am - pv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0 - tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XF - xf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LC - wv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42N - jf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz - 8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU - 1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6 - uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62trf+srKz/q6ur/6qq - qv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wl - pf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Oz - s/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TE - xP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XF - xf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQ - kP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X1 - 9f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9XV - 1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8 - vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66urv+tra3/rKys/6ur - q/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wl - pf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+vr/+wsLD/sbGx/7Ky - sv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PD - w//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rK - yv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SU - lP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f3 - 9//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d3f/b29v/2dnZ/9fX - 1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LCwv/AwMD/v7+//729 - vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+vr/+urq7/ra2t/6ys - rP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wlpf+kpKT/pKSk/6Sk - pP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66urv+vr6//sLCw/7Gx - sf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LC - wv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83N - zf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eX - l/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx - 8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6 - +v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ - 2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PDw//CwsL/wMDA/7+/ - v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7CwsP+vr6//rq6u/62t - rf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wlpf+lpaX/pKSk/6Sk - pP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62trf+urq7/r6+v/7Cw - sP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729vf++vr7/wMDA/8HB - wf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR - 0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ub - m/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw - 8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8 - /P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb - 2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XFxf/Dw8P/wsLC/8DA - wP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gxsf+wsLD/r6+v/66u - rv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wlpf+lpaX/paWl/6Sk - pP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ysrP+tra3/rq6u/6+v - r/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DA - wP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT - 0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56e - nv+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v - 7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7///////7+ - /v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj4//h4eH/39/f/93d - 3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fHx//FxcX/w8PD/8LC - wv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Kysv+xsbH/sLCw/6+v - r/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6ampv+lpaX/paWl/6Wl - pf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6urq/+srKz/ra2t/66u - rv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7u/+8vLz/vb29/76+ - vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR - 0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Ki - ov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t - 7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8/P/9/f3//v7+//// - ///+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl5f/j4+P/4eHh/9/f - 3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/Hx8f/xcXF/8PD - w//CwsL/wMDA/7+/v/+9vb3/vLy8/7q6uv+5ubn/uLi4/7a2tv+1tbX/tLS0/7Ozs/+ysrL/sbGx/7Cw - sP+vr6//rq6u/62trf+srKz/q6ur/6qqqv+pqan/qamp/6ioqP+np6f/p6en/6ampv+mpqb/paWl/6Wl - pf+lpaX/pKSk/6SkpP+kpKT/paWl/6Wlpf+mpqb/p6en/6ioqP+pqan/qqqq/6qqqv+rq6v/rKys/62t - rf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6uv+7u7v/vLy8/729 - vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ - 0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wl - pf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs - 7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7+//8/Pz//f39//7+ - /v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo6P/l5eX/4+Pj/+Hh - 4f/f39//3d3d/9vb2//Z2dn/19fX/9XV1f/U1NT/0tLS/9DQ0P/Ozs7/zc3N/8vLy//Jycn/x8fH/8XF - xf/Dw8P/wsLC/8DAwP+/v7//vb29/7y8vP+6urr/ubm5/7i4uP+2trb/tbW1/7S0tP+zs7P/srKy/7Gx - sf+wsLD/r6+v/66urv+tra3/rKys/6urq/+qqqr/qamp/6mpqf+oqKj/p6en/6enp/+mpqb/pqam/6Wl - pf+lpaX/paWl/6SkpP+kpKT/pKSk/6Wlpf+lpaX/pqam/6enp/+oqKj/qamp/6qqqv+qqqr/q6ur/6ys - rP+tra3/rq6u/6+vr/+wsLD/sbGx/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5uf+6urr/u7u7/7y8 - vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/P - z//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mp - qf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1 - dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6+v/7+/v//Pz8//39 - /f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq6v/o6Oj/5eXl/+Pj - 4//h4eH/39/f/93d3f/b29v/2dnZ/9fX1//V1dX/1NTU/9LS0v/Q0ND/zs7O/83Nzf/Ly8v/ycnJ/8fH - x//FxcX/w8PD/8LCwv/AwMD/v7+//729vf+8vLz/urq6/7m5uf+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+xsbH/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qqqq/6mpqf+pqan/qKio/6enp/+np6f/pqam/6am - pv+lpaX/paWl/6Wlpf+kpKT/pKSk/6SkpP+lpaX/paWl/6ampv+np6f/qKio/6mpqf+qqqr/qqqq/6ur - q/+srKz/ra2t/66urv+vr6//sLCw/7Gxsf+ysrL/s7Oz/7S0tP+2trb/t7e3/7i4uP+5ubn/urq6/7u7 - u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rKyv/Ly8v/zc3N/87O - zv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ys - rP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3 - d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo - 6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5+f/6+vr/+/v7//z8 - /P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/7u7u/+zs7P/q6ur/6Ojo/+Xl - 5f/j4+P/4eHh/9/f3//d3d3/29vb/9nZ2f/X19f/1dXV/9TU1P/S0tL/0NDQ/87Ozv/Nzc3/y8vL/8nJ - yf/Hx8f/wsHB/769vP+8vLv/ubi3/7a0s/+1tLL/tLOx/7CurP+wrqv/sK2r/6+tq/+vrav/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/rKmn/6upp/+rqab/q6mm/6uppv+pp6b/qaem/6mopv+qqKf/qKin/6moqP+pqaj/qqqq/6qq - qv+rq6v/rKys/62trf+urq7/r6+v/7CwsP+xsbH/srKy/7Ozs/+0tLT/tra2/7e3t/+4uLj/ubm5/7q6 - uv+7u7v/vLy8/729vf++vr7/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJyf/Kysr/y8vL/83N - zf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7u/+3t7f/tLS0/7Cw - sP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7 - e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn - 5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4+P/5+fn/+vr6//v7 - +//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/9/f3//X19f/z8/P/8PDw/+7u7v/s7Oz/6urq/+jo - 6P/l5eX/4+Pj/+Hh4f/f39//3d3d/9vb2//Z2dn/19fX/9PT0//Kysn/xMLB/769u/+5t7b/tbOw/7Sy - sP+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqo/62rqf+tq6n/rqyr/6+trP+wr67/sbCw/7Kysv+zs7P/tLS0/7a2tv+3t7f/uLi4/7m5 - uf+6urr/u7u7/7y8vP+9vb3/vr6+/8DAwP/BwcH/wsLC/8PDw//ExMT/xcXF/8jIyP/Jycn/ysrK/8vL - y//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0 - tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+ - fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl - 5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f39//4+Pj/+fn5//r6 - +v/7+/v//Pz8//39/f/+/v7///////7+/v/8/Pz/+vr6//f39//19fX/8/Pz//Dw8P/u7u7/7Ozs/+rq - 6v/o6Oj/5eXl/+Pj4//V1NP/zczL/8XEwv+8urj/trSx/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/r6yq/7Cuq/+ysa//s7Kw/7W1 - tP+4uLj/urq6/7u7u/+8vLz/vb29/76+vv/AwMD/wcHB/8LCwv/Dw8P/xMTE/8XFxf/IyMj/ycnJ/8rK - yv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LCwv++vr7/u7u7/7e3 - t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KC - gv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X19f/39/f/+Pj4//n5 - +f/6+vr/+/v7//z8/P/9/f3//v7+///////+/v7//Pz8//r6+v/39/f/9fX1//Pz8//w8PD/6urq/93c - 3P/NzMr/wb+9/7m3tP+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/7Guq/+ysK7/trSz/7m4t/+9vLz/wMDA/8HBwf/CwsL/w8PD/8TExP/FxcX/yMjI/8nJ - yf/Kysr/y8vL/83Nzf/Ozs7/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XFxf/CwsL/vr6+/7u7 - u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WF - hf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li - 4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T09P/19fX/9/f3//j4 - +P/5+fn/+vr6//v7+//8/Pz//f39//7+/v///////v7+//z8/P/6+vr/6urp/9jW1f/KyMX/uLaz/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7GurP+2s7H/ubi2/7++vf/ExMT/xcXF/8jI - yP/Jycn/ysrK/8vLy//Nzc3/zs7O/8/Pz//Q0ND/0dHR/9PT0//R0dH/zc3N/8rKyv/FxcX/wsLC/76+ - vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJ - if+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz8//09PT/9fX1//f3 - 9//4+Pj/+fn5//r6+v/7+/v//Pz8//39/f/+/v7/8fDv/93c2//Jx8T/trOw/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7a0 - sv+8u7n/wsLB/8rKyv/Ly8v/zc3N/87Ozv/Pz8//0NDQ/9HR0f/T09P/0dHR/83Nzf/Kysr/xcXF/8LC - wv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eXl/+UlJT/kJCQ/42N - jf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f - 3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw//Hx8f/z8/P/9PT0//X1 - 9f/39/f/+Pj4//n5+f/6+vr/9/f2/+Hg3//Pzcv/t7Sx/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/uri2/8G/vv/Kysr/z8/P/9DQ0P/R0dH/09PT/9HR0f/Nzc3/ysrK/8XF - xf/CwsL/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQ - kP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d - 3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/8/Pz//T0 - 9P/19fX/9/f3/+/v7//b2tj/xcPA/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7a0sf+/vrz/zMvL/9PT0//R0dH/zc3N/8rK - yv/FxcX/wsLC/76+vv+7u7v/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56env+bm5v/l5eX/5SU - lP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb - 2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+rq6v/s7Oz/7e3t/+/v7//w8PD/8fHx//Pz - 8//w8PD/2djX/8C+vP+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+4tbP/wL+9/8nI - yP/Kysr/xcXF/8LCwv++vr7/u7u7/7e3t/+0tLT/sLCw/6ysrP+pqan/paWl/6Kiov+enp7/m5ub/5eX - l/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra - 2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8PDw/9/e - 3f/Jx8T/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7WzsP+1s7D/tbOw/7Wz - sP+1s7D/ube0/769vP/BwcD/vr6+/7u7u/+3t7f/tLS0/7CwsP+srKz/qamp/6Wlpf+ioqL/np6e/5ub - m/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY - 2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/k5OT/5eXl/+fn5//o6Oj/6urq/+zs7P/m5uX/09HQ/727 - uP+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7m3tv+5ubj/t7e3/7S0tP+wsLD/rKys/6mpqf+lpaX/oqKi/56e - nv+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW - 1v/Y2Nj/2tra/9vb2//d3d3/39/f/+Dg4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+Tj4//Mysj/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e1s/+1tLP/sLCw/6ysrP+pqan/paWl/6Ki - ov+enp7/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU - 1P/W1tb/2NjY/9ra2v/b29v/3d3d/9/f3//g4OD/4uLi/+Tk5P/l5eX/29va/8TCwP+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7e0sv+xsK//qamp/6Wl - pf+ioqL/np6e/5ubm/+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7e/93d3f/dXV1QAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS - 0v/U1NT/1tbW/9jY2P/a2tr/29vb/93d3f/f39//4ODg/+Li4v/e3t7/ysnH/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7e0 - sv+qqan/oqKi/56env+bm5v/l5eX/5SUlP+QkJD/jY2N/4mJif+FhYX/goKC/35+fv97e3v/d3d3/3V1 - dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR - 0f/S0tL/1NTU/9bW1v/Y2Nj/2tra/9vb2//d3d3/39/f/97e3v/Ozcz/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7SysP+hoaH/m5ub/5eXl/+UlJT/kJCQ/42Njf+JiYn/hYWF/4KCgv9+fn7/e3t7/3d3 - d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/P - z//R0dH/0tLS/9TU1P/W1tb/2NjY/9ra2v/b29v/3d3d/9TT0v/Avbv/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/6upqP+Xl5f/lJSU/5CQkP+NjY3/iYmJ/4WFhf+CgoL/fn5+/3t7 - e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/Pz8//0dHR/9LS0v/U1NT/1tbW/9jY2P/a2tr/2dnZ/8nHxf+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/tbOw/5uamv+QkJD/jY2N/4mJif+FhYX/goKC/35+ - fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/z8/P/9HR0f/S0tL/1NTU/9bW1v/Y2Nj/1NTT/8LAvv+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+6uLX/oJ+e/42Njf+JiYn/hYWF/4KC - gv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/8/Pz//R0dH/0tLS/9TU1P/W1tb/0M/O/8C9u/++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf+op6X/iYmJ/4WF - hf+CgoL/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/Pz8//0dHR/9LS0v/U1NT/zs3M/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/6qp - p/+FhYX/goKC/35+fv97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/z8/P/9HR0f/S0tL/zczL/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/qqin/4KCgv9+fn7/e3t7/3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz//R0dH/zs3N/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP+lo6L/fn5+/3t7e/93d3f/dXV1QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz8//0NDP/8PAvv/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/5OSkf97e3v/d3d3/3V1dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/z8/P/8jFw//DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv+/vLr/f39//3d3d/91dXVAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8zLy//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//6OioP93d3f/dXV1QAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/IxcP/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XC - wP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/xcLA/8XCwP/FwsD/e3t7/3V1dUAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNzc3/x8PB/8fDwf/Hw8H/ycfE/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fD - wf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8fDwf/Hw8H/x8PB/8nHxP/Hw8H/x8PB/5mYlv91dXVAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy8rJ/8jFwv/IxcL/0M7L/9jW - 1P/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8rIxP/d3Nr/yMXC/8jFwv+ysa7/dXV1QAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvJyP/JxcP/ycXD/9PR - z//l5OT/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nF - w//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//JxcP/ycXD/8nFw//Y19X/3tzb/8nFw//JxcP/w8C+/3V1 - dUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADLycf/ysfE/8rH - xP/U0tD/8vLy/8/Nyv/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/6+rq/97d2//Kx8T/ysfE/8rH - xP91dXVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy8nF78vI - xf/LyMX/0tDO//Ly8v/j4uH/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vI - xf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/y8jF/8vIxf/LyMX/19XU//Ly8v/e3dz/y8jF/8vI - xf/LyMX/tbOxQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzJ - x7/Mycf/zMnH/8zJx//y8vL/8vLy/9XT0v/Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJ - x//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zMnH/8zJx//Mycf/zszJ/+3t7f/y8vL/1dPS/8zJ - x//Mycf/zMnH/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADNyshwzcrI/83KyP/Nysj/5ubl//Ly8v/t7e3/z83K/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/+Tj4v/y8vL/8vLy/8/N - yv/Nysj/zcrI/83KyM8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzsvJIM7Lyf/Oy8n/zsvJ/9va2P/y8vL/8vLy/+vr6v/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/97c2//y8vL/8vLy/+Tk - 4//Oy8n/zsvJ/87Lyf/Oy8lwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADPzMqvz8zK/8/Myv/PzMr/7u3t//Ly8v/y8vL/5eTj/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/9za2f/y8vL/8vLy//Ly - 8v/T0c//z8zK/8/Myv/PzMrvzszJEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAz83LINDNy//Qzcv/0M3L/9jX1f/y8vL/8vLy//Ly8v/p6ej/0tDN/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/97d3P/y8vL/8vLy//Ly - 8v/j4uH/0M3L/9DNy//Qzcv/z83LgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQzsyA0c7M/9HOzP/Rzsz/4+Lh//Ly8v/y8vL/8vLy/+zr - 6//V09H/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/+Xl5P/y8vL/8vLy//Ly - 8v/s6+v/09HO/9HOzP/Rzsz/0M7MzwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLPzb/Sz83/0s/N/9LPzf/s7Ov/8vLy//Ly - 8v/y8vL/8PDw/9za2f/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/1tTS/+zr6//y8vL/8vLy//Ly - 8v/w8PD/2NbU/9LPzf/Sz83/0s/N79LPzSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADS0M4Q09DOz9PQzv/T0M7/1dLQ/+zs - 6//y8vL/8vLy//Ly8v/y8vL/6Ofn/9XS0P/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/4N/e//Dw8P/y8vL/8vLy//Ly - 8v/w8PD/2dfV/9PQzv/T0M7/09DO/9LQzjAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANPRzxDU0c/P1NHP/9TR - z//W09H/7Ozr//Ly8v/y8vL/8vLy//Ly8v/w8PD/393c/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TR - z//U0c//1NHP/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9TRz//Z19b/6urp//Ly8v/y8vL/8vLy//Ly - 8v/w8PD/2tfW/9TRz//U0c//1NHP/9TRz2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NLQENXS - 0M/V0tD/1dLQ/9fU0v/p6Of/8vLy//Ly8v/y8vL/8vLy//Ly8v/r6ur/3NrZ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9jW1P/n5uX/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/u7u7/2tjW/9XS0P/V0tD/1dLQ79TS0DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADV09EQ1dPRn9bT0f/W09H/1tPR/+Tj4v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/r6ur/3dvZ/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/19XT/+Tj4v/w8PD/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/r6ur/19XT/9bT0f/W09H/1dPRz9XT0TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADW1NJw19TS/9fU0v/X1NL/3tza/+/u7v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/r6+r/3dza/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/a2Nb/6Ofm//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Dw - 8P/j4eD/19TS/9fU0v/X1NL/1tTSr9bU0hAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANfV0jDX1dPP2NXT/9jV0//Z19X/5eTj//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/v7u7/4eDe/9nX1f/Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/97c2//q6ej/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+zr - 6v/b2df/2NXT/9jV0//X1dPv19XSUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjW03DY1tTv2dbU/9nW1P/c2tj/7Ovr//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/w8PD/6Ojn/93b2f/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/c2tj/4+Lh/+/v7v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/7+/u/+Hf - 3f/Z1tT/2dbU/9nW1P/Y1tSf2NbTEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2dfUENnX1Z/a19X/2tfV/9rX - 1f/g3tz/7Ovr//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/7+/u/+bl4//d2tj/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/29nX/+Ph4P/s6+v/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/x8PD/5OPi/9rX - 1f/a19X/2tfV/9nX1b/Z19RAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2tjVINrY - 1p/b2Nb/29jW/9vY1v/h393/7Ozr//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+7t - 7f/o5+b/393b/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/93b - 2f/j4uD/6+rp//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+/v7//k4uH/3NrY/9vY - 1v/b2Nb/2tjW39rY1VAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA29nXINvZ15/c2df/3NnX/9zZ1//h4N7/6uno//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/v7+//6eno/+Lh3//d29n/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ - 1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//c2df/3NnX/9zZ1//h397/6Ofm/+7t - 7f/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/7ezr/+Tj4f/c2df/3NnX/9zZ - 1//b2de/29nXYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA3NrYINza2I/c2tjv3drY/93a2P/e3Nr/5uXj/+/v7//y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+7u7f/o6Of/4+Lg/97c2v/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/i4N//5uXj/+vr6v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Hx8P/q6ej/4d/d/93a2P/d2tj/3drY/9za - 2J/c2thAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN3b2WDd29m/3tvZ/97b2f/e29n/4+Hf/+vq - 6f/x8fD/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/7u7t/+rp - 6f/l5OL/4d/e/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/e29n/3tvZ/97b2f/e29n/3tvZ/+De3P/k4uH/6Ofm/+3s7P/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/7Ovq/+Xk4v/e29n/3tvZ/97b2f/d29nf3dvZgN3b - 2SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN7c2iDe3NqP3tza39/c - 2v/f3Nr/39za/+Xj4v/r6un/8fHx//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/7e3s/+no6P/n5uX/4+Lg/+De3P/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/4uDf/+bk4//o5+b/7e3s//Hx8f/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+zr6//m5eP/4N7c/9/c2v/f3Nr/3tza797c2p/e3NpAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADf3dsw393bj9/d29/g3dv/4N3b/+Dd2//k4+H/6uno/+/u7v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8fHx/+3t7P/q6ej/6ejn/+Ti - 4f/j4d//4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd - 2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd - 2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd - 2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4N3b/+Dd2//g3dv/4uDe/+Ti4f/n5uX/6ejn/+3t - 7P/u7u7/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Hx8f/r6un/5eTi/+Hf3P/g3dv/4N3b/9/d2+/f3duf393bUAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA4N7cMODe3HDg3tzP4N7c/+De3P/g3tz/4+Hf/+fm5P/s6+r/8PDv//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/x8fH/7u3t/+7t7f/p6Of/6ejn/+fm5P/l4+L/5ePi/+Hf3f/g3tz/4N7c/+De - 3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De - 3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De - 3P/g3tz/4N7c/+Xj4v/l4+L/5ePi/+no5//p6Of/7Ozr/+7t7f/w8O//8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Hx - 8f/t7Ov/6Ofm/+Ti4P/g3tz/4N7c/+De3P/g3tzf4N7cj+De3FAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOHf3RDh391Q4d/dn+Hf3d/h393/4d/d/+Hf - 3f/j4uD/6Obl/+vq6f/v7+7/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/w8O//7u3t/+7t7f/u7e3/7u3t/+rp6P/q6ej/6uno/+rp6P/q6ej/6uno/+rp6P/q6ej/6uno/+rp - 6P/q6ej/6uno/+rp6P/q6ej/6uno/+rp6P/q6ej/6uno/+rp6P/q6ej/7ezr/+7t7f/u7e3/7u3t/+/u - 7v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Dw7//t7Ov/6ejm/+Tj - 4f/h393/4d/d/+Hf3f/h393v4d/dr+Hf3XDh390gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4uDeIOLg - 3mDi4N6P4uDez+Lg3v/i4N7/4uDe/+Lg3v/m5eP/6ejn/+zr6//v7+7/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8PDw/+3s7P/q6ej/5uXj/+Ph3//i4N7/4uDe/+Lg - 3v/i4N7f4uDer+Lg3nDi4N4wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA4+HfQOPh34Dj4d+v4+Hf3+Th3//k4d//5OHf/+Th3//m5OP/6Ofl/+vq - 6f/u7ez/7+7u//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Dw8P/v7u7/6+rp/+no5v/n5uT/5OHf/+Th3//k4d//5OHf/+Ph3+/j4d+/4+HfgOPh - 31Dj4d8gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5OLgQOTi4HDk4uCP5OLgv+Ti - 4O/l4uD/5eLg/+Xi4P/l4uD/5ePh/+jm5f/p5+b/7Orp/+zr6v/v7u7/7+7u//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8O/v/+/u7v/t7Oz/7Orp/+vp - 6P/o5uX/5uTj/+Xi4P/l4uD/5eLg/+Xi4P/l4uD/5OLgv+Ti4J/k4uCA5OLgQOTi4BAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAOXj4UDl4+FQ5ePhgOXj4Z/l4+G/5ePh3+Xj4f/l4+H/5ePh/+Xj4f/l4+H/5ePh/+bk - 4v/p5+b/6efm/+no5//s6+r/7Ovq/+zr6v/t7ez/7+/u/+/v7v/v7+7/7+/u/+/v7v/x8PD/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy/+/v7v/v7+7/7+/u/+/v - 7v/v7+7/7u7t/+zr6v/s6+r/7Ovq/+rp6P/p5+b/6efm/+jm5P/l4+H/5ePh/+Xj4f/l4+H/5ePh/+Xj - 4f/l4+Hv5ePhv+Xj4a/l4+GA5ePhYOXj4UDl4+EQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5uTiEObk4kDm5OJA5uTicObk - 4oDm5OKA5uTiv+bk4r/m5OK/5uTi7+bk4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk - 4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk - 4v/m5OL/5uTi/+bk4v/m5OL/5uTi/+bk4v/m5OK/5uTiv+bk4r/m5OKP5uTigObk4oDm5OJA5uTiQObk - 4iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADn5eMQ5+XjQOfl40Dn5eNA5+XjQOfl - 40Dn5eNA5+XjQOfl42Dn5eOA5+XjgOfl44Dn5eOA5+XjgOfl44Dn5eNw5+XjQOfl40Dn5eNA5+XjQOfl - 40Dn5eNA5+XjQOfl4zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD/////////8AAAAAAAAAAAAAAAAAAAAAAH//////////////////8AAAAAAAAA - AAAAAAAAAAAAAAD/////////////////+AAAAAAAAAAAAAAAAAAAAAAAAB/////////////////gAAAA - AAAAAAAAAAAAAAAAAAAAB////////////////4AAAAAAAAAAAAAAAAAAAAAAAAAA///////////////+ - AAAAAAAAAAAAAAAAAAAAAAAAAAA///////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA////////// - ////wAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAA//// - /////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAB////////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AB////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////////4AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAD//////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////wAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP/////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////wAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA/////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////wAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAD////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH////////wAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////// - /4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/ - //////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH///////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAf//////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////wAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAD///////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////4AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAf//////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////+AAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////AAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAA//////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////wAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf///// - 4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH - /////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAA//////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAP/////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////AAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAD/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////wAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAA//////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////+AAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAP/////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////gAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf///// - 4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH - //////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAD//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//////gAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAA//////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////4AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////AAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAP//////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///////4AAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAH///////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf///////AAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////// - /8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/ - ///////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAP////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////8AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAP/////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////wAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///////////gAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAf///////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////////AAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAf///////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH////////////+A - AAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAP///////// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - //////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - B//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA////////// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAP//// - //////////gAAAAAAAAAAAAAAAAAAAAAAAAAAB///////////////AAAAAAAAAAAAAAAAAAAAAAAAAAA - H//////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA///////////////4AAAAAAAAAAAAAAAAAAAAA - AAAAAH///////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAf///////////////gAAAAAAAAAAAAAAA - AAAAAAAAAAD////////////////AAAAAAAAAAAAAAAAAAAAAAAAAA////////////////4AAAAAAAAAA - AAAAAAAAAAAAAAAB////////////////AAAAAAAAAAAAAAAAAAAAAAAAAAD///////////////4AAAAA - AAAAAAAAAAAAAAAAAAAAAH///////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////8 - AAAAAAAAAAAAAAAAAAAAAAAAAAAf//////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAA////////// - ////+AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - w/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAP///8B////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - Af///gH////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAA///8AP////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAB///AA////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAD//4AD////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAAH/+AAP////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAA////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAAA/+AAH////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/gAAf////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAD8AAB////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHgAAH////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAf////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - Af////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAP////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAD////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAA/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAP////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAH////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - B/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAf////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAD/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAA/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAP////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - H/////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAB/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/////////gAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAf////////+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/////////8AAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAP/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////gAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAD//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////+AAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAA//////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD////////// - gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///// - /////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - f/////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/////////+AAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAH/////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAD/////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAEAAAD//////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf4AAf/////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAB//gP//////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf///////// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - //////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - B//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf///////// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - //////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - B//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAA - AAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAA - AAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////w - AAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf///////// - ////8AAAAAAAAAAAAAAAAAAAAAAAAAAAB//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//// - //////////AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAA - B//////////////wAAAAAAAAAAAAAAAAAAAAAAAAAAAH//////////////AAAAAAAAAAAAAAAAAAAAAA - AAAAAAf/////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAAD//////////////wAAAAAAAAAAAAAAAA - AAAAAAAAAAAP//////////////AAAAAAAAAAAAAAAAAAAAAAAAAAAA//////////////+AAAAAAAAAAA - AAAAAAAAAAAAAAAAD//////////////4AAAAAAAAAAAAAAAAAAAAAAAAAAAf//////////////wAAAAA - AAAAAAAAAAAAAAAAAAAAAD///////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAP//////////////+ - AAAAAAAAAAAAAAAAAAAAAAAAAAB///////////////8AAAAAAAAAAAAAAAAAAAAAAAAAAP////////// - /////4AAAAAAAAAAAAAAAAAAAAAAAAAB////////////////wAAAAAAAAAAAAAAAAAAAAAAAAAP///// - ///////////wAAAAAAAAAAAAAAAAAAAAAAAAB/////////////////gAAAAAAAAAAAAAAAAAAAAAAAAf - /////////////////gAAAAAAAAAAAAAAAAAAAAAAAD//////////////////AAAAAAAAAAAAAAAAAAAA - AAAA///////////////////AAAAAAAAAAAAAAAAAAAAAAAP///////////////////AAAAAAAAAAAAAA - AAAAAAAAD////////////////////AAAAAAAAAAAAAAAAAAAAAA/////////////////////gAAAAAAA - AAAAAAAAAAAAAP/////////////////////gAAAAAAAAAAAAAAAAAAAH//////////////////////wA - AAAAAAAAAAAAAAAAAD///////////////////////4AAAAAAAAAAAAAAAAAB//////////////////// - ////8AAAAAAAAAAAAAAAAA//////////////////////////AAAAAAAAAAAAAAAA//////////////// - ///////////4AAAAAAAAAAAAAA/////////////////////////////AAAAAAAAAAAAB//////////// - //////////////////8AAAAAAAAAAH////////////////////////////////4AAAAAAAB///////// - ///////////////////////////wAAAP//////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - /////////////////////////////////////////////////////////////ygAAACAAAAAAAEAAAEA - IAAAAAAAAAgBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NTUBNTU1ATU1NQE2NjUBNjY2ATY2NgE2NjYCNjY2Ajc3 - NgM3NzcDNzc3Azc3NwQ4ODcEODg4BTg4OAY4ODgGOTk4Bzk5OAc5OTkIOTk5CDk5OQg6OjoJOjo6Cjs7 - Ogo7OzoKOzs6Cjs7Ogs7OzsLOzs7Czs7Oww7OzsMOzs7DDw8Oww8PDsMPDw7DDw8Oww8PDsMOzs7DDs7 - Oww7OzsMOzs7Czs7Ows7OzoLOzs6Cjs7Ogo6OjoKOjo6CTo6Ogk5OTkIOTk5CDk5OQc5OTgHOTk4Bjg4 - OAY4ODgFODg4BDg4NwQ3NzcDNzc3Azc3NwM3NzYCNjY2AjY2NgE2NjYBNjY1ATU1NQE1NTUBNTU1AQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NAE0NDQBNDQ0ATU1 - NAE1NTUBNTU1AjU1NQI2NjUDNjY2AzY2NgQ2NjYENzc2BTc3NwY3NzcHNzc3CDg4Nwg4ODgJOTk4Cjk5 - OQs5OTkLOTk5DDo6OQ06OjkOOjo6Dzo6Og86OjoQOzs6ETs7OhE7OzoSOzs7Ejs7OxM7OzsTOzs7Ezs7 - OxQ7OzsUPDw7FDw8OxQ8PDsUPDw7FDw8OxQ7OzsUOzs7Ezs7OxM7OzsTOzs7Ejs7OhI7OzoROzs6ETo6 - OhA6OjoPOjo6Dzo6OQ46OjkNOTk5DDk5OQw5OTkLOTk4Cjg4OAk4ODgJODg3CDc3Nwc3NzcGNzc3BTc3 - NgU2NjYENjY2AzY2NgM2NjUCNTU1AjU1NQE1NTUBNTU0ATQ0NAE0NDQBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADMzMwE0NDMBNDQ0ATQ0NAE0NDQCNDQ0AjU1NQM1NTUENTU1BDY2NQU2NjYGNjY2BzY2 - Ngg3NzcJNzc3Cjg4Nws4ODgNODg4Djg4OA85OTgQOTk5ETk5ORI5OTkTOjo5FDo6ORU6OjoWOjo6Fzo6 - Ohg7OzoZOzs6GTs7Oho7OzsbOzs7Gzs7Oxs7OzscOzs7HDw8Oxw8PDsdPDw7HTw8Ox08PDsdPDw7HDs7 - Oxw7OzscOzs7Gzs7Oxs7OzsbOzs6Gjs7Ohk7OzoZOjo6GDo6Ohc6OjoWOjo5FTo6ORU5OTkTOTk5Ejk5 - ORE5OTgQOTk4Dzg4OA44ODgNODg3DDc3Nwo3NzcJNzc2CDY2Ngc2NjYGNjY2BTU1NQQ1NTUENTU1AzU1 - NQI0NDQCNDQ0ATQ0NAE0NDQBNDQzATMzMwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzATMzMwEzMzMBMzMzATMzMwI0NDQCNDQ0AzQ0 - NAQ0NDQENTU0BjU1NQc1NTUINjY2CTY2Ngs3NzYMNzc3DTc3Nw83NzcRODg3Ejg4OBM4ODgVODg4Fzk5 - OBg5OTkaOTk5Gzk5ORw6OjkeOjo5Hzo6OiA6OjohOjo6Ijs7OiM7OzokOzs6JTs7OyY7OzsmOzs7Jzs7 - Oyc8PDsoPDw7KDw8Oyg8PDsoPDw7KDw8Oyg8PDsoPDw7KDs7Oyc7OzsnOzs7Jjs7OyY7OzolOzs6JDs7 - OiM7OzoiOjo6ITo6OiE6OjkfOjo5Hjo6OR05OTkbOTk5Gjk5OBk5OTgXODg4FTg4OBQ4ODcSNzc3ETc3 - Nw83NzcONzc2DDY2Ngs2NjYKNTU1CDU1NQc1NTUGNTU0BDQ0NAQ0NDQDNDQ0AjQ0NAIzMzMBMzMzATMz - MwEzMzMBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgEyMjIBMzMzATMzMwIzMzMCMzMzAzQ0MwQ0NDQFNDQ0BzQ0NAg1NTUKNTU1DDY2NQ42NjYQNjY2ETc3 - NhM3NzcVNzc3Fzc3Nxo4ODccODg4Hjg4OCA4ODghOTk4Izk5OSU5OTknOTk5KDo6OSo6OjksOjo6LTo6 - Oi47OzowOzs6MTs7OjI7OzszOzs7Mzs7OzQ7Ozs1Ozs7NTw8OzY8PDs2PDw7Nzw8Ozc8PDs3PDw7Nzw8 - OzY8PDs2PDw7Njs7OzU7Ozs1Ozs7NDs7OzM7OzoyOzs6MTs7OjA6OjovOjo6LTo6Oiw6OjkqOjo5KTk5 - OSc5OTklOTk4JDk5OCI4ODggODg4Hjg4Nxw3NzcaNzc3GDc3NxU3NzYUNjY2EjY2NhA2NjYONTU1DDU1 - NQo1NTUINDQ0BzQ0NAY0NDQENDQzAzMzMwMzMzMCMzMzATMzMwEyMjIBMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgIzMzICMzMzAzMzMwQzMzMGNDQzCDQ0 - NAk0NDQLNTU1DjU1NRA1NTUSNjY1FDY2Nhc2NjYZNzc2HDc3Nx83NzchNzc3JDg4NyY4ODgoODg4Kzk5 - OC05OTgvOTk5Mjk5OTQ6Ojk2Ojo5ODo6Ojk6Ojo7Ojo6PDs7Oj07Ozo/Ozs6QDs7O0E7OztCOzs7Qzs7 - O0M8PDtEPDw7RDw8O0U8PDtFPDw7RTw8O0U8PDtFPDw7RTw8O0Q8PDtEPDw7Qzs7O0M7OztCOzs7QTs7 - O0A7Ozo/Ozs6Pjs7Oj06Ojo7Ojo6Ojo6OTg6Ojk2OTk5NDk5OTI5OTkwOTk4LTg4OCs4ODgpODg3Jjg4 - NyQ3NzciNzc3Hzc3Nh02NjYaNjY2FzY2NhU1NTUSNTU1EDU1NQ41NTQMNDQ0CTQ0NAgzMzMGMzMzBDMz - MwQzMzMDMjIyAjIyMgEyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIy - MgEyMjICMjIyAzIyMgQzMzMGMzMzCDMzMwo0NDQNNDQ0DzQ0NBE1NTUUNTU1FzU1NRo2NjUeNjY2ITY2 - NiQ3NzYnNzc3Kjc3Ny04ODcwODg3Mzg4ODY4ODg5OTk4Ozk5OD05OTlAOTk5Qjo6OUQ6OjlGOjo6SDo6 - Oko7OzpLOzs6TTs7Ok47OztPOzs7UDs7O1E8PDtSPDw7Uzw8O1M8PDtUPDw7VDw8O1U8PDtVPDw7VTw8 - O1U8PDtUPDw7VDw8O1M8PDtTPDw7Ujs7O1E7OztQOzs7Tzs7O047OzpNOzs6TDo6Oko6OjpIOjo6Rzo6 - OUU6OjlCOTk5QDk5OT45OTg7ODg4OTg4ODY4ODg0ODg3MTc3Ny43NzcrNzc2KDY2NiQ2NjYhNjY2HjU1 - NRs1NTUYNTU1FTU1NBI0NDQPNDQ0DTQ0NAszMzMIMzMzBjMzMwUyMjIDMjIyAjIyMgIyMjIBMjIyATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjICMjIyAzIyMgQyMjIGMjIyCDMzMwozMzMNNDQzEDQ0 - NBM0NDQXNDQ0GjU1NR41NTUiNTU1JjY2Nio2NjYtNjY2MTc3NjU3Nzc4Nzc3PDg4Nz84ODhCODg4RTg4 - OEk5OThLOTk5Tjk5OVA6OjlTOjo5VTo6Olc6OjpYOzs6Wjs7Olw7OzpdOzs7Xjs7O2A8PDthPDw7YTw8 - O2I8PDtjPDw7Yzw8PGQ8PDxkPDw8ZTw8PGU8PDxlPDw8ZTw8PGU8PDxkPDw7Yzw8O2M8PDtiPDw7YTw8 - O2E7OztgOzs7Xzs7O107OzpcOzs6Wjo6Olk6OjpXOjo5VTo6OVM5OTlROTk5Tjk5OEw5OThJODg4Rjg4 - OEM4ODdANzc3PDc3Nzk3NzY1NjY2MjY2Ni42NjYqNjY1JjU1NSI1NTUeNTU0GzQ0NBc0NDQUNDQ0ETMz - Mw0zMzMLMzMzCDIyMgYyMjIEMjIyAzIyMgIyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyAjIy - MgMyMjIFMjIyBzIyMgkzMzMMMzMzEDMzMxM0NDMXNDQ0GzQ0NB80NDQkNTU1KTU1NS01NTUxNjY2NjY2 - Njo2NjY+Nzc2Qzc3N0Y3NzdKODg3Tjg4OFE4ODhUOTk4Vzk5OFo5OTldOTk5Xzo6OWE6OjljOjo6ZTo6 - Omc7OzppOzs6ajs7O2s7OzttPDw7bTw8O288PDtvPDw8cDw8PHE8PDxxPDw8cj09PHI9PTxyPT08cj09 - PHI9PTxyPT08cjw8PHI8PDxxPDw8cTw8PHA8PDtvPDw7bzw8O247OzttOzs7azs7Omo7OzppOzs6Zzo6 - OmY6OjpkOjo5Yjo6OV85OTldOTk5Wjk5OFg4ODhVODg4UTg4N043NzdLNzc3Rzc3N0M3NzY/NjY2OzY2 - Njc2NjUyNTU1LjU1NSk1NTQlNDQ0IDQ0NBw0NDQYMzMzEzMzMxAzMzMNMjIyCTIyMgcyMjIFMjIyBDIy - MgIyMjIBMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyATIyMgIyMjIEMjIyBjIyMggyMjILMjIyDjMzMxIzMzMXMzMzGzQ0 - MyA0NDQmNDQ0KjU1NDA1NTU1NTU1OjU1NT82NjZFNjY2STY2Nk03NzdSNzc3Vjc3N1k4ODddODg4YDg4 - OGM5OThmOTk5aDk5OWs6OjltOjo5bzo6OnE6OjpzOzs6dTs7OnY7Ozt4Ozs7eTw8O3k8PDt7PDw7ezw8 - PHw8PDx9PT08fT09PH49PTx+PT08fz09PH89PTx/PT08fz09PH89PTx/PT08fj09PH49PTx9PDw8fTw8 - PHw8PDt7PDw7ezw8O3o7Ozt5Ozs7eDs7Onc7Ozp1Ojo6czo6OnI6OjlwOjo5bjk5OWs5OTlpOTk4Zjg4 - OGQ4ODhgODg4XTg4N1o3NzdWNzc3Uzc3Nk42NjZKNjY2RTY2NUA1NTU7NTU1NjU1NTE0NDQrNDQ0JjQ0 - NCEzMzMcMzMzFzMzMxMyMjIPMjIyCzIyMggyMjIGMjIyBDIyMgMyMjICMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgEyMjICMjIyBDIy - MgYyMjIJMjIyDDIyMhAyMjIUMzMzGjMzMyAzMzMlNDQzKzQ0NDI0NDQ4NTU0PjU1NUQ1NTVJNjY1TzY2 - NlQ2NjZZNzc2XTc3N2E3NzdlODg3aDg4OGw4ODhvOTk4cjk5OHU5OTl3OTk5eTo6OXs6Ojp9Ojo6fzs7 - OoA7OzqBOzs7gzs7O4Q8PDuFPDw7hTw8PIY8PDyHPT08hz09PIg9PTyJPT08iT09PIk9PT2KPT09ij09 - PYo9PT2KPT09ij09PYo9PT2JPT08iT09PIk9PTyIPT08iDw8PIc8PDyHPDw7hjw8O4U8PDuEOzs7gzs7 - OoI7OzqAOjo6fzo6On06Ojl7Ojo5eTk5OXc5OTl1OTk4cjg4OHA4ODhtODg3aTc3N2Y3NzdiNzc2XjY2 - Nlk2NjZVNjY1UDU1NUo1NTVFNTU1PzQ0NDk0NDQzNDQ0LTMzMyYzMzMhMzMzGzIyMhUyMjIRMjIyDTIy - MgkyMjIHMjIyBDIyMgMyMjICMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyAjIyMgQyMjIGMjIyCTIyMg0yMjIRMjIyFjIyMhwzMzMiMzMzKTMz - MzA0NDQ3NDQ0PjQ0NEU1NTRMNTU1UjU1NVg2NjVdNjY2YjY2NmY3NzZrNzc3bzc3N3I4ODd2ODg4eTg4 - OHs5OTh+OTk5gDk5OYI6OjmEOjo5hjo6Ooc7OzqJOzs6ijs7O4s7OzuMPDw7jTw8O448PDyOPDw8j0lJ - SJZUVFOdXFxbpGNjY6tjY2OsampptG1tbbptbWy6bGxrumtra7pqamq6amppumhoaLheXl6sXl5eq1lZ - WKZQUE+eSUlImDw8PI88PDyOPDw7jjw8O407OzuMOzs7izs7Ooo7OzqJOjo6hzo6OoY6OjmFOTk5gzk5 - OYE5OTh+ODg4fDg4OHk4ODd2Nzc3czc3N283NzdsNjY2ZzY2NmM2NjZeNTU1WDU1NVM1NTVNNDQ0RjQ0 - ND80NDQ5MzMzMTMzMyozMzMkMjIyHTIyMhcyMjISMjIyDTIyMgoyMjIHMjIyBDIyMgIyMjIBMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgIyMjIDMjIyBjIy - MggyMjINMjIyETIyMhcyMjIdMjIyJTMzMywzMzM1MzMzPDQ0NEQ0NDRMNDQ0UzU1NVk1NTVgNTU1ZjY2 - NWs2NjZwNjY2dDc3Nng3Nzd7Nzc3fjg4N4E4ODiEODg4hjk5OIg5OTmKOTk5jDo6OY06OjqOPz8+kV5e - XaF0dHSzgYGBwZeXl9CoqKjctbW16bq6uvHCwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66u - rv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6GhofOcnJzqkpKS3oWF - hdJzc3PEaGhotVlZWKVBQUCTOjo6jzo6OY06OjmMOTk5ijk5OYk5OTiHODg4hDg4OII4ODd/Nzc3fDc3 - N3k2NjZ0NjY2cDY2Nmw1NTVmNTU1YTU1NVs0NDRUNDQ0TTQ0NEYzMzM9MzMzNjMzMy4yMjImMjIyHzIy - MhgyMjISMjIyDjIyMgkyMjIGMjIyBDIyMgIyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyAzIyMgUyMjIIMjIyDDIyMhEyMjIXMjIyHjIyMicyMjIvMzMzNzMz - M0EzMzNKNDQ0UjQ0NFo0NDRhNTU1aDU1NW41NTV0NjY2eDY2Nn02NjaANzc3gzc3N4Y4ODeJODg4izg4 - OI05OTiPQkJClHBwb6uMjIvBtLS02M/Pz+ze3t793Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LC - wv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wl - pf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+srKzumZmZ23x8 - fMdnZ2ewRUVFmDk5OI84ODiOODg4jDg4N4k3NzeHNzc3hDc3NoE2NjZ9NjY2eTY2NXQ1NTVvNTU1aTQ0 - NGI0NDRbNDQ0VDMzM0szMzNDMzMzOTIyMjAyMjIoMjIyIDIyMhgyMjISMjIyDTIyMggyMjIGMjIyAzIy - MgIyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgIyMjIEMjIyBzIy - MgoyMjIPMjIyFjIyMh0yMjIlMjIyLzIyMjkzMzNDMzMzTTMzM1Y0NDRfNDQ0ZzQ0NG41NTV0NTU1ejY2 - NX82NjaDNjY2hzc3Noo3NzeMNzc3j0FBQZR4eHivp6enzNzc2+f09PT98fHx/+3t7f/p6en/5OTk/+Dg - 4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7Cw - sP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ys - rP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/srKy6o2Njc9ra2uyQkJCljc3 - N483NzeNNzc2ijY2Noc2NjaENjY1fzU1NXs1NTV1NTU0bzQ0NGg0NDRhNDQzVzMzM04zMzNFMzMyOzIy - MjEyMjIoMjIyHjIyMhcyMjIRMjIyCzIyMgcyMjIEMjIyAjIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyAzIyMgUyMjIJMjIyDjIyMhMyMjIbMjIyJDIyMi0yMjI5MjIyRDMz - M04zMzNZMzMzYjQ0NGs0NDRzNTU0eTU1NX81NTWENjY1iDY2Now2NjaPREREloSEhLnHx8fd9fX1+v39 - /f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bG - xv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wl - pf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7 - u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Kysr7sLCw4nh4eL1HR0eaNjY2jzY2No02NjWJNTU1hTU1 - NYA1NTR6NDQ0dDQ0NG00NDNjMzMzWjMzM1AzMzNFMjIyOzIyMjAyMjIlMjIyHTIyMhUyMjIOMjIyCTIy - MgYyMjIDMjIyAjIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgIyMjIEMjIyBzIy - MgsyMjIRMjIyGDIyMiEyMjIrMjIyNjIyMkMzMzJOMzMzWTMzM2U0NDNuNDQ0djQ0NH41NTSENTU1iTU1 - NY02NjWQb29vrbi4uNjw8PD79/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk - 5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Ky - sv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qq - qv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83N - zf/Pz8//0tLS/83Nzf2kpKTfZmZmtDg4OJI1NTWONTU1ijU1NYU0NDR/NDQ0eDQ0NG8zMzNmMzMzXDMz - M1AyMjJEMjIyOTIyMi0yMjIjMjIyGjIyMhIyMjIMMjIyCDIyMgQyMjICMjIyATIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyAzIyMgUyMjIIMjIyDjIyMhQyMjIcMjIyJzIyMjEyMjI9MjIySzMz - MlczMzNjMzMzbjQ0M3c0NDR/NDQ0hjU1NIs5OTmRgYGBu9XV1ezv7+//8vLy//T09P/39/f/+fn5//v7 - +//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rK - yv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6am - pv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5 - uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ra2t83Fx - cMI6OjqUNTU1jDQ0NIc0NDSBNDQ0eTMzM28zMzNlMzMzWTIyMk0yMjJAMjIyMzIyMigyMjIeMjIyFTIy - Mg8yMjIJMjIyBTIyMgMyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIDMjIyBTIy - MgoyMjIQMjIyFzIyMiAyMjIrMjIyNzIyMkQyMjJSMzMzXzMzM2szMzN2NDQ0fzQ0NIY0NDSNeXl5ttTU - 1O/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np - 6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0 - tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mp - qf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rK - yv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6KiovVpaWm/Nzc3kDQ0NIg0NDSAMzMzeDMz - M24zMzNhMjIyVDIyMkcyMjI5MjIyLTIyMiIyMjIYMjIyETIyMgsyMjIGMjIyAzIyMgIyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgMyMjIGMjIyCzIyMhEyMjIZMjIyIzIyMjAyMjI8MjIySjIy - MlkzMzNmMzMzcjMzM300NDSGT09Pmrq6uuHj4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5 - +f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83N - zf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6en - p/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3 - t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5 - uf+ysrL/qqqq/6Ojo/+NjY3qSkpKozQ0NIczMzN+MzMzdDMzM2gyMjJbMjIyTTIyMj8yMjIyMjIyJjIy - MhsyMjISMjIyDDIyMgcyMjIEMjIyAjIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjICMjIyBDIy - MgcyMjIMMjIyEjIyMhsyMjIlMjIyMzIyMkAyMjJOMjIyXTMzM2ozMzN2MzMzgWxsbKzV1dX439/f/+Pj - 4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t - 7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3 - t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6en - p/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jI - yP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+UlJT9YWFhuzMz - M4MzMzN5MzMzbDIyMl8yMjJRMjIyQjIyMjUyMjIoMjIyHTIyMhQyMjINMjIyCDIyMgQyMjICMjIyARkZ - GQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABMjIyATIyMgIyMjIEMjIyCDIyMgwyMjIUMjIyHDIyMicyMjI0MjIyQjIy - MlAyMjJgMzMzbTMzM3iHh4e519fX/dzc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f3 - 9//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR - 0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mp - qf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1 - tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DA - wP+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/aGhoyTMzM3szMzNvMjIyYjIyMlQyMjJEMjIyNjIy - MioyMjIeMjIyFTIyMg0yMjIIMjIyBTIyMgIyMjIBGRkZAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEyMjIBMjIyAjIy - MgQyMjIIMjIyDDIyMhQyMjIcMjIyJzIyMjUyMjJCMjIyUDIyMmAzMzNta2troNXV1f/Z2dn/3Nzc/9/f - 3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx - 8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5 - uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wl - pf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf/AwMD/wsLC/8TE - xP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46O - jv+Hh4f/Xl5euDMzM28yMjJiMjIyVDIyMkQyMjI3MjIyKjIyMh4yMjIVMjIyDjIyMggyMjIFMjIyAzIy - MgEZGRkBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjICMjIyBDIyMgcyMjIMMjIyEzIyMhwyMjImMjIyNDIy - MkEyMjJPMjIyX0hISHnMzMz21dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T0 - 9P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU - 1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qq - qv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Ky - sv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fH - x//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/9/f3/8R0dHiDIyMmEyMjJTMjIyQzIy - MjYyMjIpMjIyHTIyMhQyMjINMjIyCDIyMgUyMjICMjIyARkZGQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgIyMjIEMjIyBzIyMgsyMjISMjIyGjIyMiQyMjIxMjIyPjIyMkwyMjJbkJCQt9HR0f/V1dX/2dnZ/9zc - 3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b2 - 9v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8 - vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6Sk - pP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LC - wv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qqqv+jo6P/nJyc/5WV - lf+Ojo7/h4eH/4CAgP9oaGjNMjIyXTIyMk8yMjJAMjIyNDIyMicyMjIcMjIyEzIyMg0yMjIHMjIyBDIy - MgIyMjIBGRkZAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgMyMjIGMjIyCjIyMhEyMjIYMjIyITIy - Mi0yMjI6MjIyRzIyMlXBwcHj0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly - 8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY - 2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ys - rP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7Cw - sP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/P - z//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3h4ePo3NzdcMjIySjIy - MjwyMjIvMjIyJDIyMhkyMjISMjIyDDIyMgcyMjIDMjIyAjIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgEyMjIBMjIyAzIyMgUyMjIJMjIyDzIyMhUyMjIeMjIyKTIyMjQyMjJBMjIyT87Ozv/R0dH/1dXV/9nZ - 2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7 - +//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/ - v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6Sk - pP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DA - wP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5yc - nP+VlZX/jo6O/4eHh/+AgID/eXl5/0NDQmYyMjJEMjIyNjIyMisyMjIgMjIyFzIyMhAyMjIKMjIyBTIy - MgMyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjICMjIyBDIyMgcyMjIMMjIyEjIy - MhoyMjIkMjIyLjIyMjoyMjJGzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v - 7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc - 3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66u - rv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66u - rv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS - 0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/Q0NDXjIy - MjwyMjIwMjIyJTIyMhwyMjITMjIyDTIyMggyMjIEMjIyAjIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgIyMjIDMjIyBjIyMgoyMjIPMjIyFTIyMh4yMjInMjIyMTIyMj3Ozs7/0dHR/9XV - 1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+ - /v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LC - wv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wl - pf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729 - vf/AwMD/wsLC/8TExP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Oj - o/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5ef9FRUVWMjIyNDIyMigyMjIfMjIyFzIyMhAyMjIKMjIyBzIy - MgQyMjICMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATIyMgMyMjIEMjIyCDIy - MgwyMjIRMjIyGDIyMiAyMjIpMjIyNM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs - 7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg - 4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7Cw - sP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ys - rP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/P - z//S0tL/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/+AgID/eXl5/0ZG - Rk4yMjIsMjIyIjIyMhoyMjITMjIyDTIyMggyMjIFMjIyAzIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMjIyAjIyMgMyMjIGMjIyCTIyMg0yMjIUMjIyGjIyMiIyMjIrzs7O/9HR - 0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39 - /f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bG - xv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wl - pf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7 - u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qq - qv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/R0dHRjIyMiMyMjIbMjIyFDIyMg8yMjIKMjIyBjIy - MgQyMjICMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMjIyAjIy - MgQyMjIHMjIyCjIyMg8yMjIUMjIyGjIyMiHOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np - 6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk - 5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLSz/7Gx - sf+wr6//rq2t/6ysq/+qqqr/qamo/6iop/+np6b/pqWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qq - qv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83N - zf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5 - ef9JSUk9MjIyGzIyMhUyMjIPMjIyCzIyMgcyMjIEMjIyAzIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIBMjIyAzIyMgUyMjIHMjIyCzIyMg8yMjIUMjIyGs7O - zv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7 - +//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/1dXV/8zLy//FxMP/vr28/7m4 - tv+1s7H/srCt/6+tqv+vrKn/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+sqab/rKmn/6upp/+rqaf/rKqo/6yrqv+uraz/sK+u/7Kysf+1tbX/t7e3/7m5 - uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ubm5/7Ky - sv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/+AgID/eXl5/0tLSzcyMjIVMjIyDzIyMgsyMjIIMjIyBTIy - MgMyMjICMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgEyMjICMjIyAzIyMgUyMjIHMjIyCjIyMg4yMjITzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm - 5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/w8PD/4N/f/9HP - zv/Fw8H/uri1/7Guq/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+tqqf/raqn/66rqP+vrav/srCu/7W0s/+6ubj/v7+//8LCwv/ExMT/yMjI/8rK - yv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CA - gP95eXn/TU1NMTIyMg8yMjILNTU1CDU1NQUyMjIDMjIyAjIyMgEyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjICMjIyAz4+PgVVVVUHMjIyCTIy - Mg3Ozs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5 - +f/7+/v/+/v7/+jn5v/S0c//wL27/7Guq/+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/srCt/7i2tf/Av77/yMjI/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5 - uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5ef9OTk4sMjIyCkNDQwdHR0cFNjY2AzIy - MgIyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgEyMjICQUFBA25ubgRwcHAGMjIyCc7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj - 4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/v7+//3NrZ/8TCwP+zsK3/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+xrqv/t7Wy/8G/vv/NzMz/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eH - h/+AgID/eXl5/1BQUCdVVVUHWVlZBUxMTAM4ODgCMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgFHR0cCfX19A5WV - lQSjo6MFzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+3t7f/a2dj/xMLA/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+3tbL/vry7/76+ - vv+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/b29vJWhoaARgYGADVFRUAjs7 - OwEyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyAVBQUAGRkZEBpqamArKysgPOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f - 3//j4+P/5ubm/+Tj4//Ny8r/t7Sx/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Gu/7Wzsv+ysbD/qqqq/6Ojo/+cnJz/lZWV/46O - jv+Hh4f/gICA/3l5ef9zc3MjcHBwAmhoaAFdXV0BPz8/AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAX19fAaqq - qgG6uroBwcHBAs7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/97e3v/Kycf/t7Sx/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+ysK3/paWk/5ycnP+VlZX/jo6O/4eHh/+AgID/eXl5/3d3dyF3d3cBcXFxAWlp - aQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMfHxwHKysoBzs7O/9HR0f/V1dX/2dnZ/9zc - 3P/Ozcz/uba0/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/qqin/5aW - lv+Ojo7/h4eH/4CAgP95eXn/e3t7IX5+fgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/W1dX/wr+9/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/sq+t/5SUk/+Hh4f/gICA/3l5ef9+fn4gAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/0NDP/727 - uP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/t7Wy/5KRkf+AgID/eXl5/4GBgSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/8/Pz/+9u7j/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4 - tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/u7i2/7u4tv+7uLb/ubaz/4uLiv95eXn/hYSEIAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/wsC9/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/7y6t/+8ubf/uri2/7q4tv+5t7X/ube1/7i2tP+4trT/uLaz/7e1s/+3tbP/t7Wz/7i2 - tP+6t7X/uri1/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726 - t/+9urf/vbq3/726t/+9urf/tbOw/3t6ev+JiIcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnIx/++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf/Bv7z/xMLA/8fFw//HxsX/x8bF/8bGxf/ExMP/wsHB/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7Cw - sP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6ioqP+sq6v/r66u/7Ky - sf+1tLP/uLe1/7e5tP+tua7/rbmu/7S6sv++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/mJeW/42M - jCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxcLB/8C9 - u//Bvrz/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Jx8X/0c/O/9fW1f/c29v/3t3d/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bG - xv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wl - pf+lpaX/pKSk/6SkpP+lpaX/kqea/3moi/9mqX//U6ly/0epav84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf9CqWj/U6xz/2ivgf+Es5P/orin/769uf/Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8G+vP+ysK7/kpGQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADDwb7/xcLA/8nHxf/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/ - vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/zs3K/97c2//q6un/8/Pz//Hx8f/t7e3/6enp/+Tk - 5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Ky - sv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Glov99pYv/X6Z5/z6nZf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Pqll/2mw - gf+Wt5//vb65/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Bv7z/wb+8/8G/vP/Fw8D/yMbD/8G/ - vP+WlZQgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPA - vvPGw8D/1dPS/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8XCv//T0dD/5OPi//f3 - 9v/9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rK - yv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/5Cm - mP9hp3r/Padk/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9Cqmj/d7OL/7a+tf/DwL7/w8C+/8PA - vv/DwL7/w8C+/8PAvv/DwL7/w8C+/9HPzv/Jx8T/w8C+/8C9uxwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMK/u8TCv//Z2Nb/zszK/8TCv//Ewr//xMK//8TC - v//Ewr//xMK//83Lyf/f3tz/8PDw//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np - 6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0 - tP+ysrL/sLCw/66urv+srKz/qqqq/4yol/9UqHL/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/PKhk/3Gyh/+3wLb/xMK//8TCv//Ewr//xMK//8TCv//Lycb/29rY/8bE - wP/Ewr/jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADIxcNbx8TB/9LPzf/c29r/zsvJ/8fEwf/HxMH/x8TB/9LPzv/j4+L/7+/v//Ly8v/09PT/9/f3//n5 - +f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83N - zf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/5irn/9jqXz/Yqh8/3in - if+Fp5L/iqaU/4mllP9/pY3/aqaA/0ynbf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/z6p - Zf+BtpL/xcO//8fEwf/HxMH/ysfF/9va2P/V09H/x8TB/8bDwH8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJxcK/ysfE/9rY1//d3Nr/0c7M/9DN - zP/g4N//6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t - 7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3 - t/+0tLT/srKy/7CwsP+lrqj/lque/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/5Sn - m/9dqHj/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9OrHD/p7ur/87Myf/c29n/3NrZ/8vI - xf/JxsPfvMK7DAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM/NyxjKyMTbzcvI/9zb2v/f3t7/4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f3 - 9//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR - 0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mp - qf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+IqZT/Pahk/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf85qGL/fbKQ/9LR0P/Pzcr/ysjE87fCtysAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHQzhzQzszf2tra/9/f - 3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx - 8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5 - uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wl - pf+np6f/qamp/6qqqv+aq6D/Q6ho/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/VqRy/66y - re+lv6w3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA1dXVU9nZ2fvc3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T0 - 9P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU - 1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qq - qv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+hrab/Sqlt/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/RaNn/3mWhG8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLS0kfV1dX72dnZ/9zc - 3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b2 - 9v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8 - vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6Sk - pP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+lr6n/Uapx/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/P6Rk/26Se2cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADS0tEQ0dHR69XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly - 8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY - 2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ys - rP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7Cw - sP+ssq7/Vat0/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OqZi+z6pZjsAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDPz3vR0dH/1dXV/9nZ - 2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7 - +//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/ - v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6Sk - pP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+vtLH/Vax2/zipY/84qWP/OKlj/zip - Y/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zipY/84qWP/OKlj/zip - Y/84qWP/OKlj/zipY/84qWP/OKlj8zupZi8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADerZhQ3q2YUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O09HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v - 7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc - 3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66u - rv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66u - rv+wsLD/srKy/7W1tf+xtrP/Vq14/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziq - Zf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl5zmq - aCcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADesaBQ4qmWnOKpl/ziq - Zfs3q2dDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV - 1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+ - /v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LC - wv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wl - pf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+zuLX/Vq97/zis - aP9CsnD/OKxo/zisaP84rGj/OKxo/zisaP84rGj/OKxo/zisaP84rGj/OKxo/zisaP84rGj/OKxo/zis - aP84rGj/OKxo/zisaP84rGj/OKxo/zisaP84rGj/OKxo3zisaRgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAA3rGo7OKxo4zisaP84rGj/OKxo/zisaJsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs - 7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg - 4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7Cw - sP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ys - rP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+1urf/TK93/z2xb/9NuX7/N61q/zetav83rWr/N61q/zet - av83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zetav83rWr/N61q/zet - av83rWr/N61qxzeuawgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3rmwEN61rezetavs3rWr/N61q/zet - av83rWr/N61qnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR - 0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39 - /f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bG - xv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wl - pf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7 - u/+wvLX/SrB4/0CzdP9VwIf/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeu - bP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65s/zeubP83rmz/N65snwAAAAAAAAAAAAAAAAAA - AAAAAAAAN69uGDeubLs3rmz/N65s/zeubP83rmz/N65s/zeubP83rmyDAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np - 6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk - 5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Ky - sv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qq - qv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf+rvbP/RLF2/0W3ev9Ywov/N69u/zev - bv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zev - bv83r27/N69u/zevbv83r27/N69vZwAAAAAAAAAAAAAAADewb0c3r27nN69u/zevbv83r27/N69u/zev - bv83r27/N69u/zevbmMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7 - +//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rK - yv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6am - pv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5 - uf+7u7v/vb29/8DAwP+hvq//ObFx/029g/9Wwov/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zex - cP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD3N7FxLzex - cQQ3sXGHN7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7Fw/zexcP83sXD/N7BwQwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm - 5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np - 6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0 - tP+ysrL/sLCw/66trf+srKv/qqqq/6mpqP+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mp - qf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv+PvaX/N7Jy/1jE - j/9Pv4f/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv83snL/N7Jy/zeycv83snLTN7Jywzeycv83snL/N7Jy/zeycv83snL/N7Jy/zey - cv83snL/N7Jy/zeycv82sXIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5 - +f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9fX1//Ozs3/xsbF/8HA - vv+8urn/t7Wz/7SysP+ysK3/r62q/6+sqv+tqqf/raqn/62qp/+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/62qp/+sqqf/rKqn/6ypp/+sqqf/rKqo/6yqqf+trKr/rq2s/7Cvr/+ysrL/tbW1/7e3 - t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP90u5f/OLN1/2TMm/9Eun//N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zez - dP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zezdP83s3T/N7N0/zaycwgAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj - 4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+Tk - 4//W1dP/yMbE/768uv+2s7D/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKr/sa+t/7OysP+3trT/u7q6/8DAwP/CwsL/xMTE/8bI - x/9ZuYn/Pbd7/2nPof87tnn/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0dv83tHb/N7R2/ze0 - dv83tHb/N7R2/ze0dv83tHbrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f3 - 9//5+fn/+/v7//z8/P/t7ez/19bV/8XDwP+0sa7/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK6r/7SysP+6uLf/wsHA/7nGwP9Atn3/Sr+I/2LMnP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1 - eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eP83tXj/N7V4/ze1eMsAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f - 3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9PT0/+De3f/Lycf/trOw/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sq+s/4u0nv82tnn/Xsub/0vBi/82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrZ5qwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/u7u7/3t3c/8fF - w/+0sa7/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/1+0i/86uX//atOn/zq5 - f/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3 - e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3v/Nrd7/za3e/82t3uPAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc - 3P/f39//4+Pj/+bm5v/l5eX/0c/O/7m3tP+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Oxrv+zsa7/s7Gu/7Ox - rv+zsa7/s7Gu/7Oxrv+zsa7/qbGq/z64gP9Mw4//XMyc/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4 - ff82uH3/Nrh9/za4ff82uH3/Nrh9/za4fW8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//g4N//zMvJ/7azsP+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//gbWb/za5 - f/9l0ab/Qb+I/za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5 - f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrl//za5f/82uX//Nrh+UwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ - 2f/c3Nz/0M/O/7m2tP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+0s6//TLmI/0TBjP9j0KX/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uoD/NrqA/za6 - gP82uoD/NrqA/za6gP82uoD/NrqA/za6gP82uYA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/1tbW/8LAvv+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0sf+3tLH/t7Sx/7e0 - sf+PtqL/NruC/2PRpv9Gw4//NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7 - gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za7gv82u4L/NruC/za6 - gRQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9LS - 0f+9u7j/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/9Ouoz/RsSQ/2bUqf82vIP/NryD/za8 - g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP/NryD/za8 - g/82vIP/NryD/za8g/82vIP/NryD/za8g/82vIP3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/Pz87/vbu5/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3tP+5t7T/ube0/7m3 - tP+5t7T/ube0/4a5of82vYX/a9av/0TDkP82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hdcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/8G/ - vf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+6uLX/uri1/7q3tf+4trT/uLaz/7e1s/+3tbL/t7Sy/7a0sv+2tLH/trOx/7i1 - s/+4tbP/uLWz/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4 - tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/u7i1/7u4tf+7uLX/tri0/zy9iP9Rypv/SMaU/za9 - hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9 - hv82vYb/Nr2G/za9hv82vYb/Nr2G/za9hv82vYb/Nr2GuwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJyMf/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vbq4/8G/vP/EwsD/xcPC/8bEw//FxMP/w8LC/8HBwf+/v7//vLy8/7m5uf+3t7f/tLS0/7Ky - sv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6ampv+qqan/rays/7Cv - rv+ysbD/tbSy/7i2tP+6t7X/u7m2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7q5tf95u5//OL6I/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+ - h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/za+h/82vof/Nr6H/zi/ - if82voebAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPB - v/+9urj/vbu4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/w8G//8zLyf/U09H/2NfW/9vb2//c3Nz/2NjY/9TU1P/R0dH/zc3N/8rK - yv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6am - pv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7q5 - uP+8urn/vbu6/727uf+9urj/vbq4/726uP+9urj/vbq4/726uP+wu7P/Wb2V/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/ - if81v4n/Nb+J/zW/if81v4n/Nb+J/zW/if9AxJH/OMCL/za/iX8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwL68/8G/vP/GxMH/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/8fFw//Y19X/5uXk//Dw8P/x8fH/7e3t/+np - 6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0 - tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mp - qf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwf/CwcD/wsG//8C+ - vP++vLn/l72r/z+/jf81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/0fI - l/81v4r/N8CKXwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC/vbrvwr+9/9LRz/+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/v726/7+9uv+/vbr/zMvI/+Df - 3v/z8vL//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83N - zf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6en - p/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3 - t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/yMrJ/3vEqP81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/NcCL/zXA - i/81wIv/NcCL/zXAi/81wIv/NcCL/zXAi/81wIv/Tcud/zXAi/83wIxAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC+u6/Avrv/19bV/8rHxf/Avrv/wL67/8C+ - u//Avrv/wL67/8C+u//GxML/29rY/+/u7v/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t - 7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3 - t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6en - p/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/7XH - wP9Vw5n/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP9SzqL/NcGM/zjCjiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAxMG/R8K/vP/OzMr/2djX/8jFw//Cv7z/wr+8/8K/vP/Mycj/4N/e/+/v7//y8vL/9PT0//f3 - 9//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR - 0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mp - qf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1 - tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv+Xw7P/PsGQ/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/1bQpf81wY3/O8OQBAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw8C9q8TBvv/Y19X/2tjX/8vJ - xv/KyMX/3dzc/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx - 8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5 - uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wl - pf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf++wL//cMKk/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv9Ax5b/Us+j/zXCjuMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADLyccMxMG/w8jFw//a2df/3t3d/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T0 - 9P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU - 1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qq - qv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Ky - sv+1tbX/t7e3/7m5uf+7u7v/vb29/2TBn/81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/0zMn/9Ky57/NcKOxwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzMsMysjGy9nZ - 2f/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b2 - 9v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8 - vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6Sk - pP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+uvrj/NcKP/zzF - lP9DyZn/O8WT/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/zXC - j/81wo//WdOq/0PJmf81wo+nAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANXU1FPZ2dnz3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly - 8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY - 2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ys - rP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7Cw - sP+ysrL/tbW1/7e3t/+5ubn/u7u7/7m9vP9Mwpj/NcOQ/znFk/9DyZr/S82g/03Oof9Pz6P/UNCj/1LQ - pf9LzaD/Q8ma/zvGlP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP9l2bP/O8aU/zjEkocAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADS0tI71dXV+9nZ - 2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7 - +//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/ - v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6Sk - pP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/77A - v/+YwrP/eMOo/2XFov9OxJr/OcOR/zXDkP81w5D/NcOQ/z/Il/9Iy57/UtCl/1nUqv9c1az/Xtau/1vU - rP9U0ab/TM2g/0TKm/88xpX/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXDkP81w5D/NcOQ/zXD - kP81w5D/OcWT/3Deu/81w5D/O8WUawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA0dHRENHR0ePV1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v - 7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc - 3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66u - rv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66u - rv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/uc3G/6PO - vv+LyrP/cMWm/1fCnP9BwpT/NcOQ/zXDkP81w5D/OcWT/0PJmv9NzqH/V9Kp/2HXsP9p2rb/a9u3/2TY - sv9c1az/VNGm/0zNoP9Eypv/PMaV/zXDkP81w5D/NcOQ/zfEkf9g1q//XdWt/zXDkP87xZQvAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADPz8930dHR/9XV - 1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+ - /v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LC - wv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wl - pf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729 - vf/AwMD/wsLC/8TExP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+qs7D/kq+l/3uv - nP9lsZX/VLSR/0S6j/83wY//NcOQ/zXDkP81w5D/P8iX/0jLnv9S0KX/W9Ss/2bZtP9w3bv/dN++/2zc - uP9l2bP/cN27/2TYsv84xJL/NcOQswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozs/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs - 7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg - 4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7Cw - sP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ys - rP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/P - z//S0tL/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/91iYL/ZY9//02q - iXM1w5CXNcOQvzXDkOc1w5D/NcOQ/zXDkP85xZP/Q8ma/0zNoP9CyZn/NcOQ/zXDkMc/x5cUAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O+9HR - 0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39 - /f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bG - xv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wl - pf+lpaX/pKSk/6SkpP+lpaX/p6en/6mpqf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7 - u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qq - qv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/aY+CIAAAAAAAAAAAAAAAAELFlxA9xpU0PcaVWznE - koc1w5CrNcOQvzXDkK88xpVbQMiYBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np - 6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk - 5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83Nzf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Ky - sv+wsLD/rq6u/6ysrP+qqqr/qamp/6enp/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qq - qv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83N - zf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5 - ef9uioAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7 - +//9/f3//v7+//v7+//29vb/8fHx/+3t7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rK - yv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6am - pv+lpaX/paWl/6SkpP+kpKT/paWl/6enp/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5 - uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jIyP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ubm5/7Ky - sv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/+AgID/eXl5/3CDfCAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm - 5v/p6en/7Ozs/+/v7//y8vL/9PT0//f39//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np - 6f/k5OT/4ODg/9zc3P/Y2Nj/1NTU/9HR0f/Nzc3/ysrK/8bGxv/CwsL/v7+//7y8vP+5ubn/t7e3/7S0 - tP+ysrL/sLCw/66urv+srKz/qqqq/6mpqf+np6f/pqam/6Wlpf+lpaX/pKSk/6SkpP+lpaX/p6en/6mp - qf+qqqr/rKys/66urv+wsLD/srKy/7W1tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rK - yv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DAwP+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CA - gP95eXn/d317IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5 - +f/7+/v//f39//7+/v/7+/v/9vb2//Hx8f/t7e3/6enp/+Tk5P/g4OD/3Nzc/9jY2P/U1NT/0dHR/83N - zf/Kysr/xsbG/8LCwv+/v7//vLy8/7m5uf+3t7f/tLS0/7Kysv+wsLD/rq6u/6ysrP+qqqr/qamp/6en - p/+mpqb/paWl/6Wlpf+kpKT/pKSk/6Wlpf+np6f/qamp/6qqqv+srKz/rq6u/7CwsP+ysrL/tbW1/7e3 - t/+5ubn/u7u7/729vf/AwMD/wsLC/8TExP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5 - uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5ef96enogAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj - 4//m5ub/6enp/+zs7P/v7+//8vLy//T09P/39/f/+fn5//v7+//9/f3//v7+//v7+//29vb/8fHx/+3t - 7f/p6en/5OTk/+Dg4P/c3Nz/2NjY/9TU1P/R0dH/zc3N/8rKyv/Gxsb/wsLC/7+/v/+8vLz/ubm5/7e3 - t/+0tLT/srKy/7CwsP+urq7/rKys/6qqqv+pqan/p6en/6ampv+lpaX/paWl/6SkpP+kpKT/paWl/6en - p/+pqan/qqqq/6ysrP+urq7/sLCw/7Kysv+1tbX/t7e3/7m5uf+7u7v/vb29/8DAwP/CwsL/xMTE/8jI - yP/Kysr/zc3N/8/Pz//S0tL/z8/P/8fHx//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eH - h/+AgID/eXl5/3p6eiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//f3 - 9//5+fn/+/v7//39/f/+/v7/+/v7//b29v/x8fH/7e3t/+np6f/k5OT/4ODg/9zc3P/Y2Nj/0dHR/8nI - x//CwcD/vby6/7i3tf+1s7H/srCu/7CurP+urKn/rqup/62qqP+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/raqn/6ypp/+sqab/rKmm/6uopv+rqab/qqmn/6upqP+rqqn/rKuq/66trf+wsK//srKy/7W1 - tf+3t7f/ubm5/7u7u/+9vb3/wMDA/8LCwv/ExMT/yMjI/8rKyv/Nzc3/z8/P/9LS0v/Pz8//x8fH/8DA - wP+5ubn/srKy/6qqqv+jo6P/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/enp6IAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f - 3//j4+P/5ubm/+np6f/s7Oz/7+/v//Ly8v/09PT/9/f3//n5+f/7+/v//f39//7+/v/7+/v/9vb2//Hx - 8f/o6Oj/2NfW/8zKyf/Avrz/t7Wz/7Ctqv+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6j/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66rqP+uq6n/sK2r/7Gvrf+0s7H/t7a2/7y7u//AwMD/wsLC/8TE - xP/IyMj/ysrK/83Nzf/Pz8//0tLS/8/Pz//Hx8f/wMDA/7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46O - jv+Hh4f/gICA/3l5ef96enogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ2f/c3Nz/39/f/+Pj4//m5ub/6enp/+zs7P/v7+//8vLy//T0 - 9P/39/f/+fn5//v7+//9/f3/8vLx/93c2v/Jx8X/ubaz/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7KvrP+2tLL/vLq5/8PDwv/Kysr/zc3N/8/Pz//S0tL/z8/P/8fH - x//AwMD/ubm5/7Kysv+qqqr/o6Oj/5ycnP+VlZX/jo6O/4eHh/+AgID/eXl5/3p6eiAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc - 3P/f39//4+Pj/+bm5v/p6en/7Ozs/+/v7//y8vL/9PT0//X19f/k5OL/z83L/7u4tf+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7KvrP+yr6z/sq+s/7Kv - rP+yr6z/sq+s/7Sxr/+8urj/xcTD/9DQ0P/Pz8//x8fH/8DAwP+5ubn/srKy/6qqqv+jo6P/nJyc/5WV - lf+Ojo7/h4eH/4CAgP95eXn/enp6IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV1f/Z2dn/3Nzc/9/f3//j4+P/5ubm/+np6f/s7Oz/7+/v/+Pi - 4f/My8n/t7Wy/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Sy - r/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Sy - r/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Sy - r/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tLKv/7Syr/+0sq//tbOw/7y7 - uf/BwL//v7+//7m5uf+ysrL/qqqq/6Ojo/+cnJz/lZWV/46Ojv+Hh4f/gICA/3l5ef96enogAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9nZ - 2f/c3Nz/39/f/+Pj4//m5ub/5+fn/9XU0v+/vbv/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7az - sf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+2s7H/trOx/7azsf+3tLL/t7a1/7Kysf+qqqr/o6Oj/5yc - nP+VlZX/jo6O/4eHh/+AgID/eXl5/3p6eiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR0f/V1dX/2dnZ/9zc3P/f39//4eHh/9DPzv+7uLb/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7Kwr/+kpKT/nJyc/5WVlf+Ojo7/h4eH/4CAgP95eXn/e3t7IAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0dHR/9XV - 1f/Z2dn/3Nzc/9TT0v+/vbv/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3 - tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7q3tf+6t7X/ure1/7m2 - tP+op6b/lZWV/46Ojv+Hh4f/gICA/3l5ef98fHwgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozv/R0dH/1dXV/9fX1//IxsX/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5 - t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+8ubf/vLm3/7y5t/+xr63/kpKS/4eHh/+AgID/eXl5/39+ - fiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7O/9HR - 0f/T0tL/w8G//768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768uf++vLn/vry5/768 - uf++vLn/vry5/768uf+5trT/j4+O/4CAgP95eXn/goGBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs7/0NDQ/8PBv//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9 - u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u//Avbv/wL27/8C9u/+7uLb/iIiI/3l5 - ef+GhYUgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7O - zv/HxcP/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/ - vf/Cv73/wr+9/8K/vf/Cv73/wr+9/8K/vf+1s7H/enp6/4qJiSAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMvK/8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TBv//Ewb//xMG//8TB - v/+WlZT/j46OIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADJx8b/ycbD/8zJxv/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fE - wf/HxMH/x8TB/8fEwf/HxMH/x8TB/8fEwf/IxML/zcrI/7a0sf+VlJMgAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMrHxf/Oy8n/29rY/8nGw//JxsP/ycbD/8nG - w//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nG - w//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nG - w//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nG - w//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nG - w//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/8nGw//JxsP/ycbD/9XT - 0f/T0c//yMTC/5mYlyAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAy8jG683KyP/u7u3/zcvI/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vI - xv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vI - xv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vI - xv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vI - xv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vI - xv/LyMb/y8jG/8vIxv/LyMb/y8jG/8vIxv/Mycb/6unp/9LQzv/LyMb/wr++EAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNysijzcrI/+np6P/m5eT/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83K - yP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/83KyP/Nysj/zcrI/+De - 3f/u7u7/zsvJ/83KyM8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANHPzTPPzMr/2dfV//Ly8v/j4uH/0M3L/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/M - yv/PzMr/z8zK/8/Myv/PzMr/z8zK/8/Myv/e3dz/8vLy/97c2//PzMr/z83LXwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLQzo/Rzsz/5OPi//Ly - 8v/o6Of/1NHP/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Sz83/5eTj//Ly - 8v/p6Oj/0s/N/9HOzLcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA19XTBNPQzqvU0c//6Ofm//Ly8v/v7+//3dva/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQzv/T0M7/09DO/9PQ - zv/T0M7/09DO/9PQzv/T0M7/2tjW/+3s7P/y8vL/6+rq/9XS0P/T0M7X19XUDAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2dfWBNXS - 0J/W09H/5eTj//Ly8v/y8vL/6urp/9za2P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS - 0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/1dLQ/9XS0P/V0tD/2dfV/+jn5v/y8vL/8vLy/+jn - 5//W1NL/1dLQu9nX1gwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANjW1GfX1NLz393c/+7u7v/y8vL/8vLy/+vq - 6v/f3dz/19XT/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU0v/X1NL/19TS/9fU - 0v/X1NL/3dvZ/+no6P/y8vL/8vLy//Dw8P/h397/19TS+9jW1H/b2dgEAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAN3b2hzY1tSn2tfV/+bk4//w8PD/8vLy//Ly8v/v7+7/5eTj/93a2P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/c2df/5OPi/+3t7P/y8vL/8vLy//Hx8f/n5uX/29jW/9nW - 1L/c2tgrAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADe3Nov29jWr93a - 2P/m5eT/8O/v//Ly8v/y8vL/8vLy/+7u7f/m5eT/4N7c/9vZ1//b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY - 1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9vY1v/b2Nb/29jW/9/d3P/m5OP/7Ozr//Ly - 8v/y8vL/8vLy//Dw8P/o5+b/3tvZ/9vY1sfe3NpLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4N7dK97c2pPd29nv5OLh/+zr6//x8fH/8vLy//Ly - 8v/y8vL/8fHw/+vr6v/m5eT/4uDe/97b2f/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a - 2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/93a2P/d2tj/3drY/97b - 2f/h393/5uTj/+vq6f/w8PD/8vLy//Ly8v/y8vL/8vLy/+3s7P/l5OL/3tvZ993a2Kfg3t03AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAOTi4Qji4N9b39zar+De3Pfn5eT/7Ozr//Hx8f/y8vL/8vLy//Ly8v/y8vL/8vLy/+7u - 7v/r6+r/6Ofm/+Xj4v/i4N//4N3b/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c2v/f3Nr/39za/9/c - 2v/f3Nr/4N3b/+Lg3v/l4+H/5+bl/+vq6f/u7u3/8fHx//Ly8v/y8vL/8vLy//Ly8v/x8fH/7ezr/+fm - 5f/h393739zau+Lg32Pk4uEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5eTjDOTi - 4U/g3tyX4d/d3+Xj4v/p6Of/7e3s//Hx8f/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8PDw/+7u - 7v/t7Ov/6+rq/+no5//o5+b/5+Xk/+fl5P/l4+L/5ePi/+Xj4v/l4+L/5ePi/+Xj4v/l4+L/5ePi/+Xj - 4v/l4+L/5uXk/+fl5P/o5+b/6ejn/+vq6v/s6+v/7u7t//Dw8P/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8fHx/+7u7f/q6ej/5eTi/+Hf3efg3tyj5OLhW+Xk4xQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5eTiIOXk4lfk4uCP4uDey+Xj - 4vfo5+X/6+rp/+3t7P/w7+//8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/y8vL/8vLy//Ly8v/y8vL/8PDw/+7t7P/r6un/6efm/+Xk4vvi4N7P4uDem+Xk4mPl5OIoAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOfl5Czn5eRT5+Xke+Xi4KPl4uDH5uTj5+jm - 5f/q6Of/6+rp/+zr6//t7Oz/7+7u/+/v7v/w8PD/8PDw//Hw8P/y8vL/8vLy//Ly8v/y8vL/8vLy//Ly - 8v/x8fH/8PDw//Dw8P/v7+7/7+7u/+3t7P/t7Ov/6+rp/+ro5//o5+X/5+Xj6+Xj4cvl4uCn5uPig+fl - 5Ffn5eQw6OfmBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6ujnBOjn5SDo5+U86OflT+jm5V/o5uV76Oblf+bk - 4pPm5OKf5uTin+bk4p/m5OK35uTiv+bk4r/m5OK75uTin+bk4p/m5OKf5uTim+jm5X/o5uV/6OblX+jn - 5VPo5+VA6OflIOno5wgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/////AAAAAAAAAAAP/////// - /+AAAAAAAAAAAAf///////+AAAAAAAAAAAAA///////8AAAAAAAAAAAAAD//////+AAAAAAAAAAAAAAP - /////+AAAAAAAAAAAAAAB//////AAAAAAAAAAAAAAAH/////AAAAAAAAAAAAAAAA/////gAAAAAAAAAA - AAAAAH////wAAAAAAAAAAAAAAAA////4AAAAAAAAAAAAAAAAH///+AAAAAAAAAAAAAAAAB////AAAAAA - AAAAAAAAAAAP///wAAAAAAAAAAAAAAAAB///4AAAAAAAAAAAAAAAAAf//+AAAAAAAAAAAAAAAAAH///A - AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAA - A///wAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAA - AAAAAAH//8AAAAAAAAAAAAAAAAAB///AAAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAP//8AAAAAA - AAAAAAAAAAAD///gAAAAAAAAAAAAAAAAA///4AAAAAAAAAAAAAAAAAf//+AAAAAAAAAAAAAAAAAH///w - AAAAAAAAAAAAAAAAD///8AAAAAAAAAAAAAAAAA////gAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAA - P////gAAAAAAAAAAAAAAAH////8AAAAAAAAAAAAAAAD/////gAAAAAAAAAAAAAAB/////8AAAAAAAAAA - AAAAA//////wAAAAAAAAAAAAAA///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAA - AAAAAAAAAB///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB////// - /AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAD///////AAAAAAAAAAAAAA/ - //////4AAAAAAAAAAAAAP//////+AAAAAAAAAAAAAH///////wAAAAAAAAAAAAD///////8AAAAAAAAA - AAAA///////+AAAAAAAAAAAAAH///////AAAAAAAAAAAAAA///////wAAAAAAAAAAAAAH/+f///8AAAA - AAAAAAAAAA/+D////AAAAAAAAAAAAAAH/A////wAAAAAAAAAAAAAA/AP///8AAAAAAAAAAAAAAPgD/// - /AAAAAAAAAAAAAABwA////wAAAAAAAAAAAAAAAAP///8AAAAAAAAAAAAAAAAD////AAAAAAAAAAAAAAA - AA////wAAAAAAAAAAAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAA - AAAAAAAf///8AAAAAAAAAAAAAAAAH////AAAAAAAAAAAAAAAAB////wAAAAAAAAAAAAAAAAf///8AAAA - AAAAAAAAAAAAH////AAAAAAAAAAAAAAAAD////wAAAAAAAAAAAAAAAA////8AAAAAAAAAAAAAAAAP/// - /AAAAAAAAAAAAAAAAD////wAAAAAAAAAAAAAAAA////8AAAAAAAAAAAAAAAAP////AAAAAAAAAAAAAAA - AD////wAAAAAAAAAAAAAAAA////8AAAAAAAAAAAAAAAAP////gAAAAAAAAAAAAAAAH////4AAAAAAAAA - AAAAAAB/////AAAAAAAAAAAAAAAAf////wAAAAAAAAAAAAAAAH////4AAAAAAAAAAAAAAAB////8AAAA - AAAAAAAAAAAAf////AAAAAAAAAAAAAAAAP////wAAAAAAAAAAAAAAAD////8AAAAAAAAAAAAABwB//// - /AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAAf - //////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAAf//////wAAAAAAAAA - AAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAA - AAAAAAAAAB///////AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB////// - /AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAAf - //////wAAAAAAAAAAAAAH//////8AAAAAAAAAAAAAB///////AAAAAAAAAAAAAA///////wAAAAAAAAA - AAAAP//////+AAAAAAAAAAAAAH///////gAAAAAAAAAAAAB///////8AAAAAAAAAAAAA////////wAAA - AAAAAAAAAf///////+AAAAAAAAAAAAf////////4AAAAAAAAAAAf/////////gAAAAAAAAAAf/////// - //+AAAAAAAAAAf//////////8AAAAAAAAA////////////8AAAAAAAD/////////////+AAAAAAP//// - ///////////gAAAH//////////////////////////////////////////////////8oAAAAYAAAAMAA - AAABACAAAAAAAICUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAANTU1ATU1NQE1NTUCNjY2AjY2NgM2NjYDNzc3BDc3NwU4ODcFODg4Bjg4OAc5OTgIOTk4CTk5 - OQk6OjoKOjo5Czs7Ogs7OzoLOjo6DDs7Oww7OzsNOjo6DTs7Ow08PDsNOzs6DTw8Ow07OzsNOjo6DTs7 - Ow07OzsMOjo5DDs7Ogs6OjkLOjo6Cjk5OQk5OTgJOTk5CDk5OAc4ODgGODg4BTg4NwU3NzYENzc3Azc3 - NgM2NjUCNjY2AjY2NQE1NTUBNTU1AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAANDQ0ATQ0NAE0NDQCNTU1AzU1NQM1NTUENjY2BTY2Ngc3NzYINzc3CTc3 - Nwo4ODgMODg4DTk5OQ45OTkPOTk4ETo6ORI6OjoTOjo5FDs7OhU7OzoWOjo6Fjs7Oxc7OzsXOzs6GDw8 - Oxg8PDsYOzs6GDw8Oxg7OzsYOjo6Fzs7Oxc7OzsWOjo6Fjs7OhU6OjkUOjo6Ezo6ORI5OTgROTk5Dzk5 - OQ44ODgNODg4DDg4Nwo3NzcJNzc3CDc3Ngc2NjYGNjY2BDU1NQM1NTQDNTU1AjQ0NAE0NDQBNDQ0AQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwEzMzMCMzMzAzQ0MwQ0NDQFNTU0BjU1 - NQg1NTUJNjY2CzY2Ng03NzYPNzc3ETc3NxM4ODcVODg4Fzg4OBk5OTgaOTk4HDk5OR45OTkfOjo5IDo6 - OSI6OjojOjo6Izo6OiQ6OjolOzs6JTs7OiY7OzomOzs6Jjs7OiY7OzomOzs6JTo6OiQ6OjokOjo6Izo6 - OSI6OjkgOTk5Hzk5OR45OTkcOTk4Gjg4OBk4ODgXODg3FTc3NxM3NzcRNzc2DzY2Ng02NjYLNTU1CTU1 - NQg1NTUGNDQ0BTQ0NAQzMzMDMzMzAjMzMwEzMzIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIBMzMzAjMz - MwMzMzMFNDQ0BjQ0NAg0NDQKNTU1DTY2NRA1NTUSNzc2FTc3Nxg3NzYbODg3Hjg4OCE4ODgjODg4Jjk5 - OSg5OTkqOTk5LTo6OS86OjoxOjo5Mjs7OjQ7Ozo1Ojo6Njs7Ozc7Ozs4Ozs6OTw8Ozk8PDs5Ozs6OTw8 - Ozk8PDs5Ozs6ODs7Ozg7Ozs2Ojo6NTs7OjQ6OjkzOjo6MTo6Oi85OTktOTk5Kzk5OSg4ODgmODg4Izg4 - OCE3NzceNzc3Gzc3Nxg2NjYVNjY2EzY2NhA1NTUNNTU1CjQ0NAk0NDMHNDQ0BTMzMwMyMjICMzMzATIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgIyMjIDMzMzBTMzMwczMzMJNDQ0DDQ0NA80NDQTNTU1FjY2NRo1NTUeNzc2Ijc3 - NyU3NzYpODg3LTg4ODA4ODg0ODg4Nzk5OTo5OTk8OTk5Pzo6OkE6OjpDOjo6RTs7Okc7OztIOzs6STs7 - O0s8PDtLOzs6TDw8O0w8PDtNOzs6TDw8O0w8PDtMOzs6Szs7O0s7OztKOjo6SDs7Okc6OjpFOjo6RDo6 - OkE5OTk/Ojo5PDk5OTo4ODg3ODg4NDg4ODE3NzctNzc3Kjc3NyY2NjYiNjY2HjY2Nho1NTUXNTU1EzU1 - NBA0NDMMNDQ0CjMzMwcyMjIFMzMyAzIyMgIxMTEBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQExMTEBMTExAzExMQUyMjIHMjIyCjMzMw0zMzMRMzMzFjQ0 - NBo0NDQfNTU1JDU1NSk2NjUuNjY2MzY2Njc3NzY8Nzc3QDg4N0Q4ODhIODg4Szk5OE45OTlROTk5VDo6 - OVY6OjlYOjo6Wjs7Olw7OzpdOzs6Xjs7O2A7OztgOzs7YTs7O2E8PDtiPDw7Yjs7O2I7OzthOzs7YDs7 - O2A7OzpfOzs6XTs7Olw6OjpaOjo6WDo6OVY5OTlUOTk5UTk5OE44ODhMODg4SDg4N0Q3NzdANzc3PDc3 - Njc2NjYzNjY1LjU1NSk1NTUlNDQ0HzQ0NBs0NDMWMzMzEjMzMw4yMjIKMjIyBzIyMgUxMTEDMTExATEx - MQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExATIyMgIxMTEDMjIyBjIy - MgkyMjIMMzMzETMzMxYzMzMcNDQ0IjQ0NCg0NDQuNTU1NTY2Njs2NjVANzc2Rjc3N0s3NzdQODg4VDg4 - OFg5OThcOTk4Xzk5OWI6OjllOjo5aDo6Omo7OzpsOzs6bjs7O288PDtxOzs7cjw8PHM8PDxzPDw7dD09 - PHQ9PTx0PDw7dD09PHQ8PDx0PDw7dDw8PHM8PDtyOzs7cTs7O3A7OzpuOzs6bDs7Omo6OjloOjo5Zjo6 - OWM5OThgOTk4XDg4OFk3NzdVODg3UDc3N0w2NjZHNjY2QTY2Njs1NTU2NTU1LzU1NCk0NDQjNDQ0HTMz - MxcyMjISMzMzDTIyMgkxMTEGMjIyBDIyMgIxMTEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMTExAjIyMgQxMTEHMjIyCjIyMg8yMjIVMzMzHDMzMyMzMzMqNDQ0MjU1NDo0NDRBNTU1SDY2 - Nk82NjVUNzc3Wjc3N183NzdkODg4aDg4OGw5OThvOTk4czo6OXU6Ojp4Ojo5ejs7Onw7Ozp+Ozs6fzw8 - O4A8PDuBPDw7gjw8PIM9PTyEPDw8hD09PIQ9PTyEPT08hD09PIQ9PTyEPDw8hDw8PIM8PDyCPDw7gTw8 - O4A7Ozt/Ozs7fjs7Onw6Ojp6Ojo6eDo6OXU5OThzOTk5cDg4OG04ODdpODg3ZDc3N2A2NjZbNjY2VTY2 - Nk81NTVJNTU1QjU1NTo0NDQzNDQ0KzMzMyQyMjIdMzMzFjIyMhAxMTELMjIyBzIyMgQxMTECMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQExMTECMTExBDExMQcxMTELMTExETExMRgyMjIfMjIyKTMz - MzEzMzM6NDQ0QzQ0NEw0NDRUNTU1WzY2NWI2NjZnNjY2bTc3N3E3Nzd2ODg3eTg4OH05OTh/OTk5gjk5 - OYU6OjmGOjo6iDs7Ooo7OzqLOzs7jDw8O41DQ0KRTk5NmFhYWKJZWVmkX19fq2FhYK5gYGCuX19frl9f - Xq5eXl2tVVVVpFRUVKJLS0uZQ0NCkjw8O407OzuMOzs6izs7Ooo6OjqIOjo5hjo6OYU5OTmDOTk4gDg4 - OH04ODd6Nzc3djc3N3I2NjZtNjY2aDY2NWI1NTVcNTU0VDQ0NE00NDREMzMzPDMzMzIyMjIqMjIyITIy - MhkxMTESMTExDDExMQcxMTEEMTExAjExMQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgEyMjIDMTExBjIy - MgsxMTERMjIyGTIyMiMyMjIsMzMzODMzM0MzMzNNNDQ0VzU1NWA1NTRnNjY1bjY2NnQ2NjZ5Nzc3fjc3 - N4I3NzeFODg4iDk5OIs5OTmNTk5NmGBgYKd4eHi2jo6Ox52dndawsLDku7u78MDAwPrAwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qWlpfqgoKDxl5eX5YiI - iNh8fHzJbW1suVhYV6hLS0uaOzs6jjk5OYs4ODiIODg4hjg4N4I3NzZ+Nzc2ejY2NnU1NTVvNTU1aDU1 - NWE0NDRYNDQ0TjMzM0QyMjI5MzMzLjIyMiQxMTEbMjIyEjIyMgwxMTEHMjIyBDIyMgIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyATIyMgIyMjIFMTExCjIyMhAxMTEZMjIyIzIyMi8yMjI7MzMzSTMzM1QzMzNfNDQ0aTU1 - NXE1NTV4NjY2fjY2NoM2NjaHNzc3i0FBQJJXV1efh4eGuq6urtLNzc3p3Nzc9t/f3/zc3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSk - pP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7e3t/2zs7P3qqqq7JSUlNZ0dHS8UVFQoT8/ - P5M3NzeLNzc3iDY2NoQ1NTV/NTU1eTU1NXI0NDRqNDQ0YDMzM1UzMzJKMzMzPTIyMjExMTElMjIyGjIy - MhIxMTELMjIyBjIyMgMxMTEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgQyMjIIMTExDjIyMhYxMTEhMjIyLjIy - MjwyMjJKMzMzWDMzM2QzMzNvNDQ0eDU1NYA1NTWGNjY2izk5OI9nZ2eoq6uqztzc3Or7+/v8+vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/8HBwf/ExMT+x8fH/ba2tuyWlpbSYmJirDo6OZA1NTWLNTU1hjU1NYE0NDR5NDQ0cDQ0 - M2YzMzNaMzMzTDIyMj4xMTEwMjIyIjIyMhgxMTEPMjIyCDIyMgQxMTECMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExAjEx - MQUxMTELMTExEzExMR0xMTEqMTExOjIyMkoyMjJZMzMyaDMzM3QzMzN+NDQ0hjU1NYxQUFCemZmZyN7e - 3vD29vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTE - xP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qio - qP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7ExMT+yMjI/svLy/7Pz8/+0dHR/sDA - wPSFhYXNTU1NojU1NY00NDSHNDQzfzMzM3UzMzNpMjIyWzIyMkwxMTE8MTExLDExMR8xMTEUMTExCzEx - MQYxMTEDMTExAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAxMTEBMjIyAzIyMgcyMjINMTExFzIyMiMxMTEyMjIyQzIyMlUyMjJkMzMzdDQ0 - M380NDOIU1NTn6WlpdLh4eH37+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi - 4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HB - wf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+srKy+YaGhtdMTEyjNDQ0ijQ0NIAzMzN1MzMzZzIy - MlcxMTFGMjIyNDIyMiUxMTEYMjIyDjIyMgcxMTEDMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEBMTExBDExMQgxMTEQMTExGjEx - MSkxMTE5MTExTDIyMl4yMjJuMzMzfjk5OYqJiYnC2tra9+fn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8 - /P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4 - uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+rKys/q+v - r/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7ExMT+yMjI/svLy/7Pz8/+0dHR/svLy/7BwcH+t7e3/q6u - rv6hoaH6bm5uyjk5OY4zMzN/MjIycTIyMmAxMTFPMTExOzExMSsxMTEcMTExETExMQkxMTEEMTExAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAxMTECMjIyBDIyMgkyMjIRMTExHTIyMiwxMTE+MjIyUTIyMmQyMjJ0SUlJkLOzs+De3t7+4+Pj/+fn - 5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSk - pP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zM - zP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/4ODg+lERESYMzMzdzIyMmYxMTFUMjIyQDIy - Mi8xMTEfMjIyEzIyMgoxMTEFMjIyAisrKwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZGQExMTECMjIyBTIyMgoyMjISMTExHjIyMi4xMTFAMjIyUzIy - MmZCQkKAwMDA6tra2v7e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KS - kv+BgYDwQEBAizIyMmkxMTFXMjIyQTIyMjAxMTEgMjIyFDIyMgoxMTEFMjIyAisrKwEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTECMTExBTEx - MQkxMTESMTExHTExMS0xMTE+MTExUjY2NmihoaHO1dXV/tra2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz - 8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTE - xP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qio - qP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7ExMT+yMjI/svLy/7Pz8/+0dHR/svL - y/7BwcH+t7e3/q6urv6kpKT+m5ub/pGRkf6IiIj+cHBw2zY2NmwxMTFVMTExQTExMS8xMTEfMTExEzEx - MQoxMTEFMTExAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAxMTEBMjIyBDIyMggyMjIQMTExGzIyMioxMTE7MjIyTlpaWoDPz8/91dXV/9ra - 2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi - 4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HB - wf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/0tL - S5AxMTFRMjIyPTIyMi0xMTEdMjIyEjIyMgoxMTEEMjIyAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEBMjIyAzIyMgcyMjIOMTExGDIy - MiUxMTE1MjIyRnx8e6DQ0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+v - r/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66u - rv+kpKT+m5ub/5KSkv+IiIj+fn5+/15eXbQxMTFJMjIyNzIyMicxMTEaMjIyDzIyMggxMTEEMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAxMTEBMTExAzExMQYxMTEMMTExFDExMR8xMTEtMTExPYCAgKTQ0ND+1dXV/tra2v7e3t7+4+Pj/ufn - 5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS - 0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSk - pP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7ExMT+yMjI/svL - y/7Pz8/+0dHR/svLy/7BwcH+t7e3/q6urv6kpKT+m5ub/pGRkf6IiIj+fn5+/mJiYrUxMTFAMTExLzEx - MSExMTEVMTExDTExMQYxMTEDMTExAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAjIyMgQyMjIJMTExDzIyMhgxMTEkMjIyMoCA - gJ7Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KS - kv+IiIj+fn5+/2NjY7AxMTE0MjIyJTIyMhoxMTEQMjIyCTIyMgUxMTECMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgMyMjIGMTExCzIyMhMxMTEcMjIyJ4CAgJfQ0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz - 8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTE - xP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qio - qP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vL - y//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/2RkZKsxMTEpMjIyHTIyMhQxMTEMMjIyBzIy - MgMxMTEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQIxMTEEMTExBzExMQ0xMTEUMTExHYCAgJHQ0ND+1dXV/tra - 2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh - 4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+sbGw/q+urv6srKz+qqqp/qio - qP6npqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHB - wf7ExMT+yMjI/svLy/7Pz8/+0dHR/svLy/7BwcH+t7e3/q6urv6kpKT+m5ub/pGRkf6IiIj+fn5+/mZm - ZqYxMTEeMTExFDExMQ0xMTEIMTExBDExMQIxMTEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjICMTExBDIy - MggxMTENMjIyFICAgIzQ0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/+/v7++vr6//Pz8//t7e3/5+fn/t3d3f/T09L/ysnI/sHAv/+7ubf/tbOx/rKvrf+vrKr/rquo/q2q - p/+tqqf/rKmm/q2qp/+tqqf/rKmm/q2qp/+tqqf/rKmm/q2qp/+sqab/rKmm/qypp/+sqqj+rKup/66t - q/+wr67+s7Oy/7e3tv+6urr+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66u - rv+kpKT+m5ub/5KSkv+IiIj+fn5+/2hoaKExMTEVMjIyDjIyMgkxMTEFMjIyAjIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMTExAjMzMwU/Pz8IMjIyDICAgIfQ0ND+1dXV/9ra2v/e3t7+4+Pj/+fn - 5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/5+fn+7Ovq/9jW1f/GxcP/uLaz/rKwrf+vrKn/rquo/q6r - qP+uq6j/rquo/q6rqP+uq6j/rquo/q6rqP+uq6j/rquo/q6rqP+uq6j/rquo/q6rqP+uq6j/rquo/q6r - qP+uq6j/rquo/q6rqP+uq6j+rquo/66rqP+uq6j+rquo/6+sqf+wrav+tLKw/7m4tv+/v77+x8bG/8vL - y//Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/2lpaZ4xMTENODg4CDs7 - OwUxMTEDMjIyATIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTExATU1NQJlZWUEVVVVB4CA - gITQ0ND+1dXV/tra2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/7y8vH+4N/d/svJx/67uLX+sK2q/rCt - qv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCt - qv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCtqv6wrar+sK2q/rCt - qv6wrar+sK2q/rCtqv6wrar+s7Ct/rm3tf7DwcD+z87O/svLy/7BwcH+t7e3/q6urv6kpKT+m5ub/pGR - kf6IiIj+fn5+/mtra5tGRkYIVVVVBEJCQgMxMTEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADc3NwF4eHgCm5ubBLq6uoLQ0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//q6un+3dzc/8jG - xP+1sq/+sq+s/7KvrP+yr6z+sq+s/7KvrP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKv - rP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKvrP+yr6z/sq+s/rKv - rP+yr6z+sq+s/7KvrP+yr6z+sq+s/7KvrP+yr6z+sq+s/7KvrP+yr6z+sq+s/7KvrP+yr6z+s7Ct/7m3 - tP+7urn+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/3R0dJlra2sEX19fAkpKSgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVlZUBsrKyAcTExIHQ0ND+1dXV/9ra - 2v/e3t7+4eHh/9XU0v++vLr+tbKv/7Sxrv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7/tLGu/rSx - rv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSx - rv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sx - rv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7+tLKv/7Cvrf+lpaX+m5ub/5KSkv+IiIj+fn5+/3Z2 - dph0dHQCa2trAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMvLy4DQ0ND+1dXV/tra2v7V1NT+v7y7/razsf62s7H+trOx/razsf62s7H+trOx/raz - sf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/raz - sf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/raz - sf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/razsf62s7H+trOx/raz - sf6zsK/+o6Kh/pKSkv6IiIj+fn5+/nd3d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3NzX/Q0ND+1NTU/8jGxf+5trP+uLWy/7i1 - sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1sv+4tbL/uLWy/ri1sv+4tbL/uLWy/ri1 - sv+4tbL/uLWy/ri1sv+4tbL/uLWy/ri1sv+4tbL/uLWy/ri1sv+4tbL/uLWy/ri1sv+4tbL/uLWy/ri1 - sv+4tbL/uLWy/ri1sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1 - sv+4tbL+uLWy/7i1sv+4tbL+uLWy/7i1sv+4tbL+uLWy/6mnpf+Lior+fn5+/3h4eJcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzM - y3/Q0ND+w8LA/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4 - tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4 - tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4tf+6uLX/ure1/rq4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4 - tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q4tf+6t7X+uri1/7q3 - tf+sqqf+gYGB/3p5eZcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvKyn/HxsT+vbq3/726t/+9urf+vbq3/726t/+9urf+vbq3/726 - t/+9urf+vbq3/726t/+9urf+vbq3/726t/+9urf/vbq3/r26t/+9urf/vbq3/r26t/+9urf/vbq3/r26 - t/+9urf/vLq3/ry5t/+7ubb/uri1/rq3tf+5t7X/uba0/ri2tP+4trP/uLWz/rq3tf+6uLX/vbq3/r26 - t/+9urf+vbq3/726t/+9urf+vbq3/726t/+9urf+vbq3/726t/+9urf+vbq3/726t/+9urf+vbq3/726 - t/+9urf+vbq3/726t/+9urf+vbq3/726t/+9urf+oZ+e/3t7e5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMnHxn+/vbv+vry5/r68 - uf6+vLn+vry5/r68uf6+vLn+vry5/r68uf6+vLn+vry5/r68uf6+vLn+vry5/r68uf6+vLn+wb68/sTC - wP7HxcP+ycjG/srJyP7JyMf+xsbG/sPDw/7AwL/+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qio - qP6mpqb+paWl/qSkpP6kpKT+paWl/qqpqf6prar+oLCl/puyov6XtJ/+kLWa/pG1m/6ctqL+o7en/q+5 - r/69u7j+vry5/r68uf6+vLn+vry5/r68uf6+vLn+vry5/r68uf6+vLn+vry5/r68uf6+vLn+vbq4/omI - h5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMbDwX/Cv7z+xMG//8G+u//Avrv+wb67/8G+u//Avrv+wb67/8G+u//Avrv+wb67/8K/ - vf/HxcL+09HP/9zb2v/j4uH/5OPj/uDg4P/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/p+kof+OpZb/cKaE/laodP9EqGn+Pqhk/zmo - Yv83p2D+OKhh/zioYf83p2D+O6hj/0GpZ/9Mq27+aq+C/5C2m/+yu7L+wL67/8G+u//Avrv+wb67/8G+ - u//Avrv+wb67/8G+u//Cv7z+xMG//56dm5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMXCwHjFwr/+z83L/8PAvf/DwL3+w8C9/8PA - vf/DwL3+w8C9/8PAvv/Mysj+3t3b//Dv7v/7+/v++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+Zpp7/bKaB/kqn - bP84qGH/N6dg/jioYf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zio - Yf9BqWf+Z7CA/6G6p//DwL3+w8C9/8PAvf/DwL3+w8C9/8PAvf/Mysj+x8XC/7q4tpUAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbE - wUHFwr/92NbU/srIxf7Fwr/+xcK//sXCv/7IxsT+2NfV/urq6v729vb++fn5/vz8/P7+/v7++fn5/vPz - 8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+v - r/6srKz+lamc/mOofP5Ep2n+Radp/kOnaP46p2L+N6dg/jenYP43p2D+N6dg/jenYP43p2D+N6dg/jen - YP43p2D+N6dg/jenYP43p2D+N6dg/jenYP43p2D+N6dg/jioYf5Zrnf+o7yo/sPCv/7Fwr/+xcK//sjG - w/7Y19X+xcPA/sTBv10AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMrIxQnIxcLC0M7M/9rZ1//Nycf+y8jG/9nX1v/o6Oj+7+/v//Pz - 8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTE - xP/AwMD/u7u7/ri4uP+0tLT/srKy/q2vrv+Rq5v/hamS/peonf+dpqH/nqWh/pykn/+VpJr/eaaJ/lCn - cP85qGH+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zio - Yf83p2D+PKhk/26yhf+3wLb+y8jG/9nX1v/T0c7+x8TB18HCvhIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNy8kpysjE6tfV - 0//d3Nv+4eHg/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi - 4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qSopv99qY3+O6hj/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zio - Yf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zioYf9HqWv+or+r/9bU0v/LyMX4t8K3PAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA0tDPR9bV1fje3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8 - /P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4 - uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+kKua/kSo - aP43p2D+N6dg/jenYP43p2D+N6dg/jenYP43p2D+N6dg/jenYP43p2D+N6dg/jenYP43p2D+N6dg/jen - YP43p2D+Oadh/nKohfuetaRiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADT09IR1dXVx9ra2v7e3t7+4+Pj/+fn - 5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSk - pP+kpKT/paWl/qioqP+qqqr+rKys/5etn/9HqWv+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zio - Yf83p2D+OKhh/zioYf83p2D+OKhh/zioYf83p2D+OKhh/zinYf9VnW/Vb6eDHAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANLR - 0QPR0dGg1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+hsKb+SKls/zio - Yf83p2H+OKhh/zioYf83p2H+OKhh/zioYf83p2H+OKhh/zioYf83p2H+OKhh/zioYf83p2H+OKhh/zio - Yf83p2H+RKJnwEurbwwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0THQ0ND41dXV/tra2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz - 8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTE - xP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qio - qP6qqqr+rKys/q+vr/6ysrL+pLOq/kyrcf43qWP+N6lj/jepY/43qWP+N6lj/jepY/43qWP+N6lj/jep - Y/43qWP+N6lj/jepY/43qWP+N6lj/jepY/43qWP+N6lj/jipZLA7qWgJAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAN6tnITeqZVI3q2cUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0HHQ0ND+1dXV/9ra - 2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi - 4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/6W2rP9NrXP+OKtn/zms - Z/83q2b+OKtm/zirZv83q2b+OKtm/zirZv83q2b+OKtm/zirZv83q2b+OKtm/zirZv83q2b+OKtm/zir - Zv04q2egN6xpBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADetagQ3rGhhOKtm7TirZv43q2eaAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+v - r/+ysrL+tbW1/7i4uP+puLD+RK9y/0a1d/86r23+N61q/zetav83rWr+N61q/zetav83rWr+N61q/zet - av83rWr+N61q/zetav83rWr+N61q/zetav83rWr+N61qfDeubAEAAAAAAAAAAAAAAAAAAAAAN65sETet - ap03rWr7N61q/zetav83rWq3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/tra2v7e3t7+4+Pj/ufn - 5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS - 0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSk - pP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+pLqu/kWxdf5QvYP+OrBw/jau - bP42rmz+Nq5s/jaubP42rmz+Nq5s/jaubP42rmz+Nq5s/jaubP42rmz+Nq5s/jaubP42rmz+Nq5s+jav - bVgAAAAAAAAAAAAAAAA2r241Nq5s2DaubP42rmz+Nq5s/jaubP42rmydAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ - 0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/5u8qv9Asnb+VsGK/zqycv82sG/+N7Bv/zewb/82sG/+N7Bv/zewb/82sG/+N7Bv/zew - b/82sG/+N7Bv/zewb/82sG/+N7Bv/zewb+k2sHArN7FxBjewcG82sG/wN7Bv/zewb/82sG/+N7Bv/zew - b/82r29+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz - 8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTE - xP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vrv+srKz/qqqp/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qio - qP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf+MvKP+P7Z5/1fEjv84snP+N7Fy/zex - cv82sXL+N7Fy/zexcv82sXL+N7Fy/zexcv82sXL+N7Fy/zexcv82sXL+N7Fy/zexcv82sXLGN7Fyqjex - cvw2sXL+N7Fy/zexcv82sXL+N7Fy/zexcv82sXFiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/tra - 2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/t/f - 3/7V1NT+y8vK/sPCwf69u7r+t7W0/rSxr/6xr6z+r6yp/q6rqP6tqqf+raqn/q2qp/6tqqf+raqn/q2q - p/6tqqf+raqn/q2qp/6tqqf+rKqn/qyqqP6sqqj+rayq/q+trP6xsK/+tLOz/re3t/67u7v+vr6+/sHB - wf7ExMT+dLuX/ke8gv5Two3+NrN0/jazdP42s3T+NrN0/jazdP42s3T+NrN0/jazdP42s3T+NrN0/jaz - dP42s3T+NrN0/jazdP42s3T+NrN0/jazdP42s3T+NrN0/jazdP42s3T+NrN0/jazdP42snRDAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/7+vr+7u7t/9va2f/JyMb/vLq3/rSxr/+xrqv/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+s - qf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn+r6yp/6+s - qf+vrKn+r6yp/7Ctqv+xr63+tbSy/7q5uP/AwL/+wMbD/1q5i/9UxJD+R72F/ze0d/82tHf+N7R3/ze0 - d/82tHf+N7R3/ze0d/82tHf+N7R3/ze0d/82tHf+N7R3/ze0d/82tHf+N7R3/ze0d/82tHf+N7R3/ze0 - d/82tHf+N7R3/ze0d/Y2s3UtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn - 5//r6+v+7+/v//Pz8//09PT+4+Lh/8/Ny/++u7n+sq+s/7Guq/+xrqv/sa6r/rGuq/+xrqv/sa6r/rGu - q/+xrqv/sa6r/rGuq/+xrqv/sa6r/rGuq/+xrqv/sa6r/rGuq/+xrqv/sa6r/rGuq/+xrqv/sa6r/rGu - q/+xrqv/sa6r/rGuq/+xrqv+sa6r/7Guq/+xrqv+sa6r/7Guq/+xrqv+sa6r/7Guq/+xrqv+tLKv/6K2 - qf9Atn7+Xsub/zq4ff82tnn+NrZ5/za2ef82tnn+NrZ5/za2ef82tnn+NrZ5/za2ef82tnn+NrZ5/za2 - ef82tnn+NrZ5/za2ef82tnn+NrZ5/za2ef82tnn+NrZ5/za2ees2tXgYAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P - z3/Q0ND+1dXV/tra2v7e3t7+4+Pj/ufn5/7q6ur+39/e/svJx/62s7H+sq+s/rKvrP6yr6z+sq+s/rKv - rP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKv - rP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKv - rP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP5/spj+Qb2F/lfIl/41t3v+Nbd7/jW3e/41t3v+Nbd7/jW3 - e/41t3v+Nbd7/jW3e/41t3v+Nbd7/jW3e/41t3v+Nbd7/jW3e/41t3v+Nbd7/jW3e/41t3v+Nbd7/jW3 - e+I1tnoFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4eHh/9XU0//Avrv+tbKv/7Sx - rv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSx - rv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7/tLGu/rSx - rv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+0sa7+tLGu/7Sxrv+ysa3+U7eJ/1TI - l/9Dv4n+Nrl+/za5fv81uH7+Nrl+/za5fv81uH7+Nrl+/za5fv81uH7+Nrl+/za5fv81uH7+Nrl+/za5 - fv81uH7+Nrl+/za5fv81uH7+Nrl+/za4fscAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/9ra - 2v/W1dT+v727/7azsP+1srD+tbKw/7WysP+1srD+tbKw/7WysP+1srD+tbKw/7WysP+1srD/tbKw/rWy - sP+1srD/tbKw/rWysP+1srD/tbKw/rWysP+1srD/tbKw/rWysP+1srD/tbKw/rWysP+1srD/tbKw/rWy - sP+1srD/tbKw/rWysP+1srD/tbKw/rWysP+1srD+tbKw/7WysP+1srD+tbKw/7WysP+1srD+tbKw/7Wy - sP+1srD+tbKw/7WysP+1srD+l7Sk/0C8hv9czZ/+NrqA/za6gP81uYD+NrqA/za6gP81uYD+NrqA/za6 - gP81uYD+NrqA/za6gP81uYD+NrqA/za6gP81uYD+NrqA/za6gP81uYD+NrqA/za5gKoAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM3NzX/Q0ND+1NTU/snHxv64tbL+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0 - sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0 - sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0 - sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/re0sf63tLH+t7Sx/mG4kv5Typr+RsOP/jW7 - gv41u4L+NbuC/jW7gv41u4L+NbuC/jW7gv41u4L+NbuC/jW7gv41u4L+NbuC/jW7gv41u4L+NbuC/jW7 - gv41u4L+NbuC/jW7gooAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzLy3/Q0ND+xcPB/7m2s/+4trP+ubaz/7m2 - s/+4trP+ubaz/7m2s/+4trP+ubaz/7m2s/+4trP+ubaz/7m2s/+5trP/uLaz/rm2s/+5trP/uLaz/rm2 - s/+5trP/uLaz/rm2s/+5trP/uLaz/rm2s/+5trP/uLaz/rm2s/+5trP/uLaz/rm2s/+5trP/uLaz/rm2 - s/+5trP/uLaz/rm2s/+4trP+ubaz/7m2s/+4trP+ubaz/7m2s/+4trP+ubaz/7m2s/+4trP+ubaz/7m2 - s/+4trP+ubaz/5y3qf89voj+YdGm/ze9hf81vIT+NryE/za8hP81vIT+NryE/za8hP81vIT+NryE/za8 - hP81vIT+NryE/za8hP81vIT+NryE/za8hP81vIT+NryE/za8g20AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMrK - yX/GxcT+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7T+uLa0/ri2 - s/63tbP+t7Wy/re0sv62tLL+uLWz/ri1s/66t7T+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/re3tP5Uu5D+V82g/jq/if41vYb+Nb2G/jW9 - hv41vYb+Nb2G/jW9hv41vYb+Nb2G/jW9hv41vYb+Nb2G/jW9hv41vYb+Nb2G/jW9hv41vYb+Nb2G/ja9 - hlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjGxn+9u7j+vLm2/7y5tv+8ubb+vLm2/7y5tv+8ubb+vLm2/7y5 - tv+8ubb+vLm2/7y5tv+8ubb+vLm2/7y5tv+8ubb/vbu4/sG/vf/EwsD/x8XD/sjGxf/Ix8X/xcXE/sLC - wv+/v7//u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/pqam/qqq - qv+uraz+sbCv/7Wzsv+3trT+uri2/7u5tv+8ubb+vLm2/7y5tv+8ubb+vLm2/7y5tv+8ubb+urm2/4q7 - pf8+vYr+Nb6H/zW+h/81vof+Nb6H/zW+h/81vof+Nb6H/zW+h/81vof+Nb6H/zW+h/81vof+Nb6H/zW+ - h/81vof+Nb6H/zW+h/83voj+OL+J/za+iC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTCwH++vLn+wL67/767 - uP+9u7j+vru4/767uP+9u7j+vru4/767uP+9u7j+vru4/768uf/Dwb7+zszK/9nX1v/g397/4+Li/uDf - 3//c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7urr+vb28/7++ - vf+/vbv+v7y6/767uP+1u7X+a72c/zi/iv80v4n+Nb+J/zW/if80v4n+Nb+J/zW/if80v4n+Nb+J/zW/ - if80v4n+Nb+J/zW/if80v4n+Nb+J/zW/if80v4n+Nb+J/zW/if9AxJL+Nb+J9zjAihsAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMG/vXbBvrz+y8nI/r+8uv6/vLr+v7y6/r+8uv6/vLr+v7y6/r+8uv7GxML+2tjX/uzr - 6v75+fn++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4 - uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+rKys/q+v - r/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7ExMT+yMfH/q7Fu/5Rv5T+NL+K/jS/iv40v4r+NL+K/jS/ - iv40v4r+NL+K/jS/iv40v4r+NL+K/jS/iv40v4r+NL+K/jS/iv40v4r+NL+K/jS/iv40v4r+NL+K/jS/ - iv5FyJf+NL+K4znBjREAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMLAvjnAvrv81dPS/8bDwf/Avrv+wL67/8C+ - u//Ewb/+09LQ/+jo5//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSk - pP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/DxMP+i8Wv/zzB - j/80wIz+NcGM/zXBjP80wIz+NcGM/zXBjP80wIz+NcGM/zXBjP80wIz+NcGM/zXBjP80wIz+NcGM/zXB - jP80wIz+NcGM/zXBjP80wIz+NcGM/zXBjP9Ly53+NcGMzDvDkAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbE - wgbDwL60zcvI/9fV1P/HxML+xcPA/9XT0v/n5ub+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/7bBvf9qwqL+NsGO/zXBjf80wY3+NcGN/zXBjf80wY3+NcGN/zXBjf80wY3+NcGN/zXB - jf80wY3+NcGN/zXBjf80wY3+NcGN/zXBjf80wY3+NcGN/zXBjf80wY3+NcGN/zbCjv9OzaD+NsKOtgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADJx8UexMK/3dPS0P7b2tn+4N/f/ufn5/7r6+v+7+/v/vPz - 8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTE - xP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qio - qP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+s766/lPBmf40wY7+NMGO/jTBjv40wY7+NMGO/jTB - jv40wY7+NMGO/jTBjv40wY7+NMGO/jTBjv40wY7+NMGO/jTBjv40wY7+NMGO/jTBjv40wY7+NMGO/jTB - jv40wY7+NMGO/jrEkv5QzqL+N8OQmQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz83MNNTT - 0vPe3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi - 4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qio - qP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+kb+u/zbD - kP9AyJj+QMiX/0DHl/88xpT+N8OQ/zXCj/80wo/+NcKP/zXCj/80wo/+NcKP/zXCj/80wo/+NcKP/zXC - j/80wo/+NcKP/zXCj/80wo/+NcKP/zXCj/80wo/+NcKP/0HImP9OzqL+OMOReQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADS0tEM1dXVxtra2v7e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+v - r/+ysrL+tbW1/7i4uP+7u7v+tL66/3HCpf9Kw5j+RMWX/z7Glf9AyJj+R8ud/0vNoP9NzqL+Ts+j/0vN - oP9Gy53+QMiY/zvGlP85xJP+NsOR/zXDkP80wo/+NcOQ/zXDkP80wo/+NcOQ/zXDkP80wo/+NcOQ/07O - ov9Gy5z+PMWVWwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0APR0dGa1dXV/tra2v7e3t7+4+Pj/ufn - 5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS - 0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qioqP6mpqb+paWl/qSk - pP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHBwf7CxMP+ucjC/q3K - v/6cy7n+hcqx/mrGpf5Swpr+PMKS/jrFlP5ByJj+Scyf/lDPpP5V0af+WdOr/l3Vrf5Z06r+UM+k/knM - nv5ByJn+OMSS/jTCj/40wo/+O8aU/mTYsv47xZT+PcaVLAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR - 0S3Q0ND41dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz - 8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+v - r/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4 - uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/6Gwq/+JrJ/+cKuW/12t - kf9Nso3+QbeN/zi/jvk6xZT+RMqb/07Oov9Y06n+Ytex/2bZtP9k2LP+Zdmz/0bLnP82w5CsAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0G7Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz - 8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTE - xP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qio - qP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vL - y//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+e4F//22EfJpKtpAtQ7yRVT7Bk3o2w5GiN8ORyjfE - keU6xZPuN8SS5jfEkZJAyJgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/tra - 2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz8/7t7e3+5+fn/uHh - 4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+vr/6srKz+qqqq/qio - qP6mpqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4uP67u7v+vr6+/sHB - wf7ExMT+yMjI/svLy/7Pz8/+0dHR/svLy/7BwcH+t7e3/q6urv6kpKT+m5ub/pGRkf6IiIj+fn5+/nR8 - eZcAAAAAAAAAAAAAAAAAAAAAAAAAAETJmgxCyZkeQsmZEQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8 - /P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4 - uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSkpP+kpKT/paWl/qioqP+qqqr+rKys/6+v - r/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66u - rv+kpKT+m5ub/5KSkv+IiIj+fn5+/3V5eJcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn - 5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uLi4v/c3Nz/19fX/tLS - 0v/Ozs7/ycnJ/sTExP/AwMD/u7u7/ri4uP+0tLT/srKy/q+vr/+srKz/qqqq/qioqP+mpqb/paWl/qSk - pP+kpKT/paWl/qioqP+qqqr+rKys/6+vr/+ysrL+tbW1/7i4uP+7u7v+vr6+/8HBwf/ExMT+yMjI/8zM - zP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/3d4d5cAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P - z3/Q0ND+1dXV/tra2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/729vb++fn5/vz8/P7+/v7++fn5/vPz - 8/7t7e3+5+fn/uHh4f7c3Nz+19fX/tLS0v7Ozs7+ycnJ/sTExP7AwMD+u7u7/ri4uP60tLT+srKy/q+v - r/6srKz+qqqq/qioqP6mpqb+paWl/qSkpP6kpKT+paWl/qioqP6qqqr+rKys/q+vr/6ysrL+tbW1/ri4 - uP67u7v+vr6+/sHBwf7ExMT+yMjI/svLy/7Pz8/+0dHR/svLy/7BwcH+t7e3/q6urv6kpKT+m5ub/pGR - kf6IiIj+fn5+/nd3d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz - 8//29vb++fn5//z8/P/+/v7++vr6//Pz8//t7e3/5+fn/uDg4P/W1tX/zczM/sXEw/++vLv/uLe1/rSy - sP+xr63/r62q/q6rqP+tqqj/raqn/q2qp/+tqqf/raqn/q2qp/+tqqf/rKmn/qyppv+rqab/q6mn/qup - p/+sqqj+rauq/6+trP+xsK/+tLSz/7i4t/+7u7v+vr6+/8HBwf/ExMT+yMjI/8zMzP/Pz8/+0dHR/8vL - y//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/3d3d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra - 2v/e3t7+4+Pj/+fn5//r6+v+7+/v//Pz8//29vb++fn5//z8/P/8/Pv+8fDw/97d3P/Ny8r/vry5/rWz - sP+yr6z/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+s - qf+vrKn/r6yp/q+sqf+vrKn/r6yp/q+sqf+vrKn+r6yp/6+sqf+vrKn+r62q/7Cuq/+ysK7+trSz/7u6 - uf/BwcD+yMfH/8zMzP/Pz8/+0dHR/8vLy//BwcH+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/3d3 - d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/tra2v7e3t7+4+Pj/ufn5/7r6+v+7+/v/vPz8/719fX+5+bl/tPR - z/7Bvrz+tLGu/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKv - rP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKv - rP6yr6z+sq+s/rKvrP6yr6z+sq+s/rKvrP6yr6z+trOx/r27uf7GxcT+0dDQ/svLy/7BwcH+t7e3/q6u - rv6kpKT+m5ub/pGRkf6IiIj+fn5+/nd3d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/Q0ND+1dXV/9ra2v/e3t7+4+Pj/+fn - 5//r6+v+4+Lh/8/OzP+6t7X+tLKv/7Syr/+0sq/+tLKv/7Syr/+0sq//tLKv/rSyr/+0sq//tLKv/rSy - r/+0sq//tLKv/rSyr/+0sq//tLKv/rSyr/+0sq//tLKv/rSyr/+0sq//tLKv/rSyr/+0sq//tLKv/rSy - r/+0sq//tLKv/rSyr/+0sq/+tLKv/7Syr/+0sq/+tLKv/7Syr/+0sq/+tLKv/7Syr/+0sq/+tLKv/7Sy - r/+0sq/+trSx/727uv+9vbz+t7e3/66urv+kpKT+m5ub/5KSkv+IiIj+fn5+/3d3d5cAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ - 0H/Q0ND+1dXV/9ra2v/e3t7+4uLi/9jX1//FwsH+uba0/7e0sv+3tLL+t7Sy/7e0sv+3tLL+t7Sy/7e0 - sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0 - sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0sv+3tLL/t7Sy/re0sv+3tLL+t7Sy/7e0sv+3tLL+t7Sy/7e0 - sv+3tLL+t7Sy/7e0sv+3tLL+t7Sy/7e0sv+3tLL+t7Sy/7e0sv+3tLL+t7Wz/7Gwr/+lpaX+m5ub/5KS - kv+IiIj+fn5+/3d3d5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz3/Q0ND+1dXV/tra2v7Y19f+xcPB/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3tf66t7X+ure1/rq3 - tf66t7X+ure1/rq3tf61s7H+oaGg/pGRkf6IiIj+fn5+/nh4eJcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozn/Q0ND+1dXV/83M - yv++u7n+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf/vLq3/ry6 - t/+8urf/vLq3/ry6t/+8urf/vLq3/ry6t/+8urf/vLq3/ry6t/+8urf/vLq3/ry6t/+8urf/vLq3/ry6 - t/+8urf/vLq3/ry6t/+8urf/vLq3/ry6t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6 - t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf+vLq3/7y6t/+8urf+vLm3/6impf+Kion+fn5+/3l5 - eZcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM3NzH/Q0ND+ycfG/7+9uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8 - uv+/vLr+v7y6/7+8uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8 - uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8uv+/vLr/v7y6/r+8uv+/vLr+v7y6/7+8 - uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8uv+/vLr+v7y6/7+8 - uv+/vLr+v7y6/7+8uv+rqaj+gICA/3p6epcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MzH/Kycj+wr+9/sK/vf7Cv73+wr+9/sK/ - vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/ - vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/ - vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/ - vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+wr+9/sK/vf7Cv73+oJ+d/nt7e5cAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3L - y3/Gw8H+xcLA/8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XB - v//Fwb//xcG//sXBv//Fwb//xcG//sXBv//Fwb//xcG//sXBv//Fwb//xcG//sXBv//Fwb//xcG//sXB - v//Fwb//xcG//sXBv//Fwb//xcG//sXBv//Fwb//xcG//sXBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XB - v//Fwb/+xcG//8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XBv//Fwb/+xcG//8XB - v//Fwb/+wr+9/4iIh5cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzKyX/LyMX+0M7M/8jFwv/IxML+yMXC/8jFwv/IxML+yMXC/8jF - wv/IxML+yMXC/8jFwv/IxML+yMXC/8jFwv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjF - wv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjFwv/IxcL/yMTC/sjF - wv/IxML+yMXC/8jFwv/IxML+yMXC/8jFwv/IxML+yMXC/8jFwv/IxML+yMXC/8jFwv/IxML+yMXC/8jF - wv/IxML+yMXC/8jFwv/IxML+yMXC/8jFwv/Mycf+z8zK/6GfnpcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3LyHTMysf+4+Lh/svI - xf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svI - xf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svI - xf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svI - xf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7LyMX+y8jF/svIxf7f3tz+0M7M/r68 - uo4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDNyzHNysj56ejn/9va2P/Nysj+zcrI/83KyP/Nysj+zcrI/83KyP/Nysj+zcrI/83K - yP/Nysj+zcrI/83KyP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3K - yP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3KyP/Nysj/zcrI/s3KyP/Nysj+zcrI/83K - yP/Nysj+zcrI/83KyP/Nysj+zcrI/83KyP/Nysj+zcrI/83KyP/Nysj+zcrI/83KyP/Nysj+zcrI/83K - yP/Nysj+zcrI/9jW1f/r6+v+zsvJ/s3KyE0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTS0ATRzsym2dfV/+/u7v/e3Nv+0c7M/9DN - y//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DNy//Qzcv/0M3L/tDNy//Qzcv/0M3L/tDN - y//Qzcv/0M3L/tDNy//Qzcv/0M3L/tDNy//Qzcv/0M3L/tDNy//Qzcv/0M3L/tDNy//Qzcv/0M3L/tDN - y//Qzcv/0M3L/tDNy//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DN - y//Qzcv+0M3L/9DNy//Qzcv+0M3L/9DNy//Qzcv+29nY/+7u7v/c2tj+0M7MwNLQzgoAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADX1NMU0tDOz+De3f7x8fH+5uXk/tbT0f7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQ - zv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQ - zv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQ - zv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tPQzv7T0M7+09DO/tTS0P7j4uH+8fHx/uLh - 4P7T0M7o1tTSIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2dfWF9bT0rbe3Nv+7+/v//Dv7//j4uH+2NXT/9XS - 0P/V0tD+1dLQ/9XS0P/V0tD+1dLQ/9XS0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS - 0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS - 0P/V0tD+1dLQ/9XS0P/V0tD+1dLQ/9XS0P/V0tD+1dLQ/9XS0P/V0tD+1dLQ/9XS0P/V0tD+1dLQ/9XS - 0P/X1dP+4eDe/+/u7v/w8PD+4d/e/9XT0cfZ19YhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAN3b - 2gva19Z129nX7eno5//x8fD+7+/v/+bl5P/d29n+2dbU/9jV0//Y1dP+2NXT/9jV0//Y1dP/2NXT/tjV - 0//Y1dP/2NXT/tjV0//Y1dP/2NXT/tjV0//Y1dP/2NXT/tjV0//Y1dP/2NXT/tjV0//Y1dP/2NXT/tjV - 0//Y1dP/2NXT/tjV0//Y1dP/2NXT/tjV0//Y1dP+2NXT/9jV0//Y1dP+2NXT/9jV0//Y1dP+2NXT/9jV - 0//Y1dP+2NXT/9jV0//Y1tT+3NrY/+Xk4//u7u7+8fHx/+rq6f/d2tny2dfVhd3b2hAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3tzbI9zZ15Pg3dz16urp/vHx8f7x8fH+7ezr/ubl - 5P7f3dv+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY - 1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY - 1v7b2Nb+29jW/tvY1v7b2Nb+29jW/tvY1v7b2Nb+39zb/uXj4v7s6+v+8fHx/vHx8f7r6+r+4d/d+NzZ - 2Kne3dsvAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADi4N4Y4N7cfODd3NPn5uX87u3t//Hx8f/x8fH+8PDw/+vq6v/m5eT/4uDf/uDd3P/e29n/3drY/t3a - 2P/d2tj/3drY/t3a2P/d2tj/3drY/t3a2P/d2tj/3drY/t3a2P/d2tj/3drY/t3a2P/d2tj/3drY/t3a - 2P/d2tj/3drY/t3a2P/d2tj+3drY/93a2P/d2tj+3tvZ/9/d2//i4N7+5uTj/+vq6f/v7+/+8vLy//Hx - 8f/u7u7+6Ofm/uHf3drf3NuK4uDfHwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOXk4wvj4uA54uDejOPi4NPo5+bz7ezs//Dw - 7//x8fH/8fHx/vDw8P/v7+//7Ozr/urp6P/o5uX/5uTj/uTi4P/i4N7/4d/d/uHf3f/h3t3/4d7c/uHe - 3P/h3tz/4d7c/uHe3P/h3tz/4d7c/uHf3f/h393/4uDe/uTi4P/l5OL+6Obl/+ro6P/s6+v+7+7u//Dw - 8P/x8fH+8fHx//Dw8P/t7ez+6Ofm9uTi4Nji4N6V4+LgQObk4w4AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAOfm5QTn5eQo5OLhX+Xj4pbl5OLP6Ofm+uzq6v7u7e3+8PDw/vHx8f7x8fH+8fHx/vHx - 8f7x8fH+8fHx/vDw8P7w7+/+7+/v/u/v7/7v7+/+7+/v/u/v7/7v7+/+8O/v/vDw8P7x8fH+8fHx/vHx - 8f7x8fH+8fHx/vHx8f7x8fH+7u7t/uzr6v7p5+b85eTi0+Tj4Z/k4uFm5uXkLejn5QYAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6ujnBujm - 5S/o5uVX5uTif+fl46Ho5uW96efm0urp6ODr6unv7Ovq/e3s7P/t7ez/7u3t/u/u7v/v7u7/7u7t/u/u - 7v/u7u3/7e3s/u3t7P/s6+v/6+rp7urp6OLp5+bT6OblwOfl46Tm5OKC5+XkW+jm5TTp5+YIAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA6+rpCevq6RDr6ukX6unoH+ro - 5yXp6OY36efmN+nn5j/p5+ZP6efmT+nn5kHp5+Y36ejmN+ro5ynq6egf6unoF+vq6RHr6ukJ6+rqAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAA - AAAAf//////4AAAAAAAAD//////gAAAAAAAAA/////8AAAAAAAAAAP////4AAAAAAAAAAD////gAAAAA - AAAAAB////AAAAAAAAAAAA///+AAAAAAAAAAAAf//8AAAAAAAAAAAAP//4AAAAAAAAAAAAP//4AAAAAA - AAAAAAH//4AAAAAAAAAAAAD//4AAAAAAAAAAAAD//wAAAAAAAAAAAAD//wAAAAAAAAAAAAD//wAAAAAA - AAAAAAB//gAAAAAAAAAAAAB//wAAAAAAAAAAAAD//wAAAAAAAAAAAAD//wAAAAAAAAAAAAD//wAAAAAA - AAAAAAD//4AAAAAAAAAAAAD//4AAAAAAAAAAAAH//8AAAAAAAAAAAAH//8AAAAAAAAAAAAP//+AAAAAA - AAAAAAP///AAAAAAAAAAAA////gAAAAAAAAAAB////wAAAAAAAAAAD////8AAAAAAAAAAP////8AAAAA - AAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAA - AAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////+AAAAAAAAAAf/////AAAAAAAAAA/////+AAAAA - AAAAAf////8AAAAAAAAAAP////8AAAAAAAAAAH/H//8AAAAAAAAAAD8H//8AAAAAAAAAAB4H//8AAAAA - AAAAABwH//8AAAAAAAAAAAAH//8AAAAAAAAAAAAH//8AAAAAAAAAAAAH//8AAAAAAAAAAAAH//8AAAAA - AAAAAAAH//8AAAAAAAAAAAAH//8AAAAAAAAAAAAP//8AAAAAAAAAAAAP//8AAAAAAAAAAAAP//8AAAAA - AAAAAAAP//8AAAAAAAAAAAAP//8AAAAAAAAAAAAP//8AAAAAAAAAAAAP//8AAAAAAAAAAAAP//8AAAAA - AAAAAAAP//8AAAAAAAAAAAAf//+AAAAAAAAAAAAf///AAAAAAAAAAAAf//+AAAAAAAAAAAAf//8AAAAA - AAAAAAAf//8AAAAAAAAAAAA///8AAAAAAAAAAAA///8AAAAAAAAAAPj///8AAAAAAAAAAP////8AAAAA - AAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAA - AAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAA - AAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAAAAAAAP////8AAAAA - AAAAAP////+AAAAAAAAAAf/////AAAAAAAAAA//////gAAAAAAAAB//////4AAAAAAAAH//////+AAAA - AAAAf///////gAAAAAAB////////8AAAAAAP/////////4AAAAH///////////4AAD////////////// - ////////KAAAAEgAAACQAAAAAQAgAAAAAABgVAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANTU0ATU1 - NQE1NTUCNjY2AzY2NgM3NzcENzc3BTg4NwY4ODgIOTk4CTk5OQo5OTkLOjo6DDs7Og07OzoNOzs7Djs7 - Ow87OzsPPDw7Dzw8Ow87OzsPOzs7Dzs7Ow47OzoOOzs6DTo6Ogw6OjkLOTk5Cjk5OAk5OTgIODg4Bzg4 - NwY3NzcENzc2BDY2NgM2NjUCNTU1ATU1NQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzATQ0MwE0NDQCNDQ0AzU1NQQ1NTUGNjY2CDY2 - Ngo3NzcMODg3Djg4OBA5OTgSOTk5FDo6ORY6OjkYOjo6GTs7Ohs7OzocOzs7HTs7Ox47OzsePDw7Hzw8 - Ox88PDseOzs7Hjs7Ox07OzocOzs6Gzo6Oho6OjoYOjo5Fjk5ORQ5OTgSODg4EDg4OA43NzcMNzc2CjY2 - Ngg2NjUGNTU1BTU1NQM0NDQCNDQ0ATMzMwEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIBMzMzAjMzMwQ0NDQGNDQ0CTU1NQw2NjYPNjY2Ezc3NxY3NzcaODg3Hjg4 - NyE5OTgkOTk5Jzk5OSo6OjotOjo5Lzs7OjE6OjoyOzs7NDs7OjU8PDs1PDw7Njs7OjY8PDs1Ozs6NTs7 - OzQ6OjozOzs6MTo6OS86OjotOTk5Kjk5OSg5OTgkODg4ITg4OB43NzcaNzc3FzY2NhM2NjYQNTU1DDU1 - NAk0NDQHMzMzBDMzMwMyMjIBMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgIyMjIEMzMzBzMzMws0NDQPNTU1FDU1NRk2NjYeNjY2JDc3Nyk3NzcuODg4Mzg4ODc5OTg8OTk5Pzo6 - OUM6OjpGOzs6SDs7Oks7OztMOzs7Tjw8O088PDtQPDw7UDw8O1A8PDtQPDw7Tzs7O047OztMOzs6Szs7 - Okk6OjpGOjo5Qzk5OT85OTk8ODg4ODg4ODM4ODcvNzc3KTc3NiQ2NjYfNTU1GjU1NRQ0NDQQNDQ0CzMz - MwgzMzMFMjIyAzIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQEyMjICMTExBDIyMgcyMjILMzMzETMz - Mxc0NDQeNTU1JjU1NS02NjY0NjY2Ozc3N0I3NzdIODg4Tjg4OFM5OTlXOjo5Wzo6OV46OjphOjo6ZDs7 - O2Y7OztoPDw7aTw8O2o8PDxrPDw8azw8O2s8PDxrPDw7ajw8O2o7OztoOzs7Zjs7OmQ7OzpiOjo5Xzo6 - OVs5OTlXODg4Uzg4OE43NzdINzc3QjY2Njw2NjY1NTU1LjU1NSY0NDQfMzMzGDMzMxEyMjIMMjIyBzEx - MQQyMjICMTExAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgIyMjIFMjIyCTIyMg8zMzMXMzMzHzQ0NCk0NDQzNTU1PDU1 - NUY2NjZONzc2Vjc3N1w4ODdjODg4aDk5OG05OTlxOjo5dDo6Onc7Ozp6Ozs7fDw8O348PDt/PDw8gDw8 - PIE9PTyCPT08gj09PII9PTyCPDw8gTw8PIA8PDt/PDw7fjs7O3w7Ozp6Ojo6dzo6OXU5OTlxOTk4bTg4 - OGg4ODdjNzc3XTc3Nlc2NjZPNjY1RzU1NT00NDQ0NDQ0KjMzMyAzMzMXMjIyDzIyMgkyMjIFMjIyAjIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyAjExMQUyMjIKMTExETIyMhsyMjImMzMzMjMzMz80NDRLNTU1VjU1NV82NjZoNjY2bzc3 - N3U4ODd6ODg4fzk5OII6OjmFOjo6iDo6OopERESRVVVUnlxcW6dnZ2awbm5ut3BwcLt1dXXCdHRzwnJy - ccJxcXDCa2tqvGdnZ7hgYF+xVlZVqFBQT55EREOSOzs6ijo6Oog6OjmGOTk4gzk5OH84ODd7Nzc3djc3 - NnA2NjZoNTU1YDU1NVY0NDRMMzMzQDMzMzQyMjInMjIyHDExMRIyMjIKMTExBTIyMgIyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyBDIy - MgkyMjIRMjIyHTIyMiszMzM6MzMzSjQ0NFg0NDRkNTU1bzY2NXg2NjZ/Nzc3hDc3N4lCQkKRXV1dooCA - gLmhoaHQt7e24snJyfPMzMz8yMjI/cPDw/6+vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6Sk - pP+lpaX/p6en/qmpqf2rq6v8qKio9Jubm+SIiIjRcXFxvFZWVqRAQECSODg3iTc3N4U2NjZ/NjY2eDU1 - NXA0NDRmNDQ0WTMzM0szMzM8MjIyLDIyMh4yMjISMjIyCjIyMgQyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjICMjIyBzIyMg4yMjIaMjIyKjIy - MjwzMzNPMzMzXzQ0NG41NTR6NTU1gzY2NolHR0aVhISEucHBwdrq6urz9PT0/uzs7P/l5eX/3d3d/9bW - 1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qq - qv+urq7/sbGx/7a2tv+5ubn/vb29/8HBwf66urr0oKCg3Hd3d7xGRkaYNjY2ijU1NYM1NTR7NDQ0bzMz - M2EzMzNQMjIyPjIyMiwyMjIcMjIyEDIyMgcyMjIDMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQEyMjIEMjIyCjExMRUyMjIlMTExOTIyMk4yMjJjMzMzdDQ0 - NIE4ODeMZ2dnrLi4uNvx8fH7+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPD - w/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2 - tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8/Pz/7Nzc39nJyc3lxcXLA3NzeNNDQ0gjMzM3UyMjJkMjIyUDEx - MTsyMjImMTExFjIyMgsyMjIEMTExAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIFMjIyDTIyMhsyMjIuMjIyRTIyMlwzMzNxNDQ0glpaWqO9vb3j6enp/fDw - 8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LC - wv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7W1tf6SkpLmUVFRqTQ0NIQzMzN0MjIyXjIyMkcyMjIwMjIyHTIy - Mg4yMjIGMjIyAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEx - MQIyMjIGMjIyEDExMR8yMjI0MTExTTIyMmY2NjZ9h4eHwNzc3Pzl5eX/6+vr//Dw8P719fX/+fn5/vz8 - /P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mp - qf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8/P - z/7Pz8//wsLC/ra2tv+pqan/m5ub/Wpqask1NTWAMjIyaDExMVAyMjI3MTExITIyMhEyMjIHMTExAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgIyMjIHMjIyEDIy - MiAyMjI3MjIyUDMzM2qOjo7B2dnZ/t/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs - 7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6Sk - pP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LCwv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2 - tv+pqan/nJyc/5CQkP5oaGjMNDQzbTIyMlMyMjI5MjIyIzIyMhIyMjIHMjIyAgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQIyMjIGMjIyEDExMR8yMjI0MTExTVxc - XIjS0tL92dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW - 1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qq - qv6urq7/sbGx/ra2tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8/Pz/7Pz8//wsLC/ra2tv+pqan/nJyc/pCQ - kP+Dg4P+TExLlDExMVAyMjI3MTExITIyMhEyMjIHMTExAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgEyMjIFMjIyDTIyMhsyMjIuMjIyRI6OjrTT09P/2dnZ/9/f - 3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PD - w/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2 - tv+5ubn/vb29/8LCwv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2tv+pqan/nJyc/5CQkP+Dg4P/Y2NjwzIy - MkcyMjIwMjIyHTIyMg4yMjIGMjIyAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADExMQEyMjIEMjIyCjExMRUyMjIlMTExOZOTk7rT09P+2dnZ/9/f3/7l5eX/6+vr//Dw - 8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0 - tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2tv+5ubn/vb29/sHB - wf/Gxsb+y8vL/8/Pz/7Pz8//wsLC/ra2tv+pqan/nJyc/pCQkP+Dg4P+aGhoxzExMTsyMjInMTExFjIy - MgsyMjIEMTExAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjICMjIyBzIyMg4yMjIaMjIyKpSUlLTT09P/2dnZ/9/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39 - /f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mp - qf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LCwv/Gxsb/y8vL/8/P - z//Pz8//wsLC/7a2tv+pqan/nJyc/5CQkP+Dg4P/ampqwjIyMiwyMjIcMjIyEDIyMgcyMjIDMjIyAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyBDIy - MgkyMjIRMjIyHZSUlK3T09P/2dnZ/9/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs - 7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0s/+wsLD/ra2s/6qpqf+np6f/paWl/6Sk - pP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LCwv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2 - tv+pqan/nJyc/5CQkP+Dg4P/a2trvTIyMh4yMjISMjIyCjIyMgQyMjIBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAjExMQUyMjIKMTExEZOT - k6jT09P+2dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+jo6P7a2tn/zMvK/8HA - vv66uLb/tLKv/rCuq/+uq6j+raqn/62qp/6tqqf/raqn/62qp/6tqqf/raqn/q2qp/+sqab+rKmn/6yq - qP6tq6n/r62s/rKxsP+3trb/vLy7/sHBwf/Gxsb+y8vL/8/Pz/7Pz8//wsLC/ra2tv+pqan/nJyc/pCQ - kP+Dg4P+bW1tuDExMRIzMzMKMjIyBTIyMgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgJEREQFQkJCCZSUlKTT09P/2dnZ/9/f - 3//l5eX/6+vr//Dw8P/19fX/9vb2/+jn5v/T0c//v7y6/7Owrv+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/sK2q/7Owrv+5uLb/w8LB/87Nzf/Pz8//wsLC/7a2tv+pqan/nJyc/5CQkP+Dg4P/b29vtTw8 - PAlFRUUFMzMzAjIyMgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQFTU1MCjo6OBLW1taHT09P+2dnZ/9/f3/7l5eX/6urq/9/e - 3v7KyMb/trSx/rKvrP+yr6z+sq+s/7KvrP6yr6z/sq+s/7KvrP6yr6z/sq+s/rKvrP+yr6z+sq+s/7Kv - rP6yr6z/sq+s/7KvrP6yr6z/sq+s/rKvrP+yr6z+sq+s/7KvrP6yr6z/sq+s/rKvrP+yr6z/sq+s/rKv - rP+yr6z+sq+s/7Owrf67ubf/vby7/rW1tf+pqan/nJyc/pCQkP+Dg4P+dHR0s2VlZQRVVVUCNDQ0AQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAs7OzAcjIyKDT09P/2dnZ/9/e3v/V1NP/v726/7Wyr/+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Syr/+trKv/nZ2d/5CQkP+Dg4P/d3d3snR0dAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM3NzZ/T09P+1dTU/8LAvv63tLL/t7Sy/7e0sf63tLL/t7Sx/re0sv+3tLH+t7Sy/7e0 - sf63tLL/t7Sy/7e0sf63tLL/t7Sx/re0sv+3tLH+t7Sy/7e0sf63tLL/t7Sy/7e0sf63tLL/t7Sx/re0 - sv+3tLH+t7Sy/7e0sf63tLL/t7Sx/re0sv+3tLL/t7Sx/re0sv+3tLH+t7Sy/7e0sf63tLL/t7Sx/re0 - sv+3tLL/sa+s/paWlf+Dg4P+eXl5sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3N - zJ/Nzcz/vbq4/7q3tP+6t7X/ure1/7q3tP+6t7X/ure0/7q3tf+6t7T/ure1/7q3tP+6t7X/ure1/7q3 - tP+6t7X/ure0/7q3tf+6t7T/ure1/7q3tP+6t7X/ure1/7q3tP+6t7X/ure0/7q3tf+6t7T/ure1/7q3 - tP+6t7X/ure0/7q3tf+6t7X/ure0/7q3tf+6t7T/ure1/7q3tP+6t7X/ure0/7q3tf+6t7X/ure0/7e1 - sv+QkI//enp6sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvKyZ/Avbv+vbq3/726 - t/69urf/vbq3/726t/69urf/vbq3/r26t/+9urf+vbq3/726t/69urf/vbq3/726t/69urj/vru5/r67 - uf+9u7j+u7m3/7m3tf63trT/trSz/7Wzsf60srD/s7Gw/rSysP+2tLL+uLa0/7q4tf68urf/vbq3/r26 - t/+9urf/vbq3/r26t/+9urf+vbq3/726t/69urf/vbq3/r26t/+9urf/vbq3/r26t/+3tbL+goKBsQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMXDwp/Avrv/wL26/8C9uv/Avbr/wL26/8C9 - uv/Avbr/wL26/8C9uv/Bvrz/x8XD/8/Ny//T0tH/1NPT/9PS0v/Pz8//ycnJ/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+dpaD/iaiU/3WpiP9mqn//Xqx6/1isdv9drXn/Z6+A/3qy - jP+Vtp7/srqx/7+9uv/Avbr/wL26/8C9uv/Avbr/wL26/8C9uv/Avrv/np2csQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTCv5vLycf/w8C9/8LAvf/CwL3/wsC9/8LAvf/Fw8D/1dPR/+fm - 5f/09PT/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mp - qf+lp6b/gKaO/1imdf8/p2X/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Pqll/12u - ef+Tt53/wL+7/8LAvf/CwL3/wsC9/8LAvf/Lycf/uLazsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMfEwWPNy8n+0M/M/8XDwP7Fw8D/zczJ/+Df3v7y8vL/+fn5/vz8/P/8/Pz+9PT0/+zs - 7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/qa2r/4Opkf5cp3j/WKd1/lSn - cv9Dp2j+OKhh/zenYP44qGH/N6dg/jioYf84qGH/N6dg/jioYf83p2D+OKhh/zenYP44qGH/S6tu/pS5 - n//Dwr7/xcPA/s7Myv/Pzcv+xMK/eQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzK - xwrKx8TN2NfV/9XT0f/d3Nv/6urq//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW - 1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/oKyl/6KppP+np6f/paWl/6SkpP+gpaH/haeS/0qo - bf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9fr3v/usW7/9nX - 1v/Ix8PbusG5EwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0M4e09LR6t/f - 3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPD - w/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6Sqpv5bqXf/N6dg/jio - Yf84qGH/N6dg/jioYf83p2D+OKhh/zenYP44qGH/N6dg/jioYf84qGH/Qadn/pKynPKdu6UvAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADU1NN/2dnZ/d/f3//l5eX/6+vr//Dw - 8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+prav/ZKt+/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zqnYv5gnnaQZ6+BAgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0TXT09P72dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8 - /P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mp - qf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sLGw/mmtgv84qGL/N6hi/jioYv83qGL+OKhi/zeo - Yv44qGL/N6hi/jioYv84qGL/N6hi/jioYv84qGL+PalmcgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAN6tmCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0I3T09P/2dnZ/9/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs - 7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6Sk - pP+lpaX/qKio/6qqqv+urq7/sbGx/7O1tP9ssIf/OKtm/zirZv84q2b/OKtm/zirZv84q2b/OKtm/zir - Zv84q2b/OKtm/zirZv84q2b/OKtm+TirZ2IAAAAAAAAAAAAAAAAAAAAAAAAAADesago3q2eMOKtm7zer - Z2EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P - z5/T09P+2dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW - 1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qq - qv6urq7/sbGx/ra2tv+3ubj/Z7KH/kS1dv85rmz+N61q/zetav43rWr/N61q/jetav83rWr/N61q/jet - av83rWr+N61q/zetavc3rWtBAAAAAAAAAAAAAAAANq5sJzetasY3rWr+N61q/zetaoYAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f - 3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PD - w/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2 - tv+5ubn/ub26/2C1h/9NvIH/ObBw/zevbv83r27/N69u/zevbv83r27/N69u/zevbv83r27/N69u/zev - bv83r27lN7BvITewcAI3sG9aN69u7jevbv83r27/N69u/zeubWoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f3//l5eX/6+vr//Dw - 8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2s/6qpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/7fA - u/9StoL/UcCJ/zexcv83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcf83sXH/N7Fxvzex - cpk3sXH8N7Fx/zexcf83sXH/N7Fx/zawcUwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P+2dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8 - /P/8/Pz+9PT0/+np6f7c29v/z83N/8PCwP67urj/trSy/rKvrf+wrar+rqup/66rqP6uq6j/rquo/66r - qP6uq6j/rquo/q2qqP+tqqj+raqo/62rqf6urKr/sK6t/rOysf+3t7b/vLy8/sHBwf+vwrn+S7qD/0/A - iv43s3X/NrN1/jezdf83s3X/NrN1/jezdf82s3X+N7N1/zazdf43s3X/NrN1/jezdf83s3X/NrN1/jez - df82s3X+N7N1/TaydC8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f3//l5eX/6+vr//Dw8P/19fX/9/f3/+rq6f/W1NP/wr+9/7Wy - sP+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sa6r/7SysP+7ubj/kLul/03Ai/9DvIP/NrV4/za1 - eP82tXj/NrV4/za1eP82tXj/NrV4/za1eP82tXj/NrV4/za1eP82tXj/NrV4/za1eP82tXj/NrV49Da0 - dxoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P - z5/T09P+2dnZ/9/f3/7l5eX/6urq/+Hg4P7Ny8n/uLaz/rKvrP+yr6z+sq+s/7KvrP6yr6z/sq+s/7Kv - rP6yr6z/sq+s/rKvrP+yr6z+sq+s/7KvrP6yr6z/sq+s/7KvrP6yr6z/sq+s/rKvrP+yr6z+sq+s/7Kv - rP6yr6z/sq+s/rKvrP+yr6z/sq+s/rKvrP+yr6z+sa+s/2O0jf5Vx5X/OLh9/ja3e/82t3v/Nbd7/ja3 - e/81t3v+Nrd7/zW3e/42t3v/Nbd7/ja3e/82t3v/Nbd7/ja3e/81t3v+Nrd76jW2egYAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f - 3//W1dT/wL67/7Wyr/+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/tLGu/7Sxrv+0sa7/tLGu/6iyqv9IvYn/TsWS/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5 - fv82uX7/Nrl+/za5fv82uX7/Nrl+/za5fv82uX7/Nrl+0QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7Ozp/T09P+1dXU/8LAvv62s7H/trOx/7az - sP62s7H/trOw/razsf+2s7D+trOx/7azsP62s7H/trOx/7azsP62s7H/trOw/razsf+2s7D+trOx/7az - sP62s7H/trOx/7azsP62s7H/trOw/razsf+2s7D+trOx/7azsP62s7H/trOw/razsf+2s7H/trOw/raz - sf+2s7D+trOx/7azsP59tpv/U8mZ/jq8hP82uoH/NbqB/ja6gf81uoH+NrqB/zW6gf42uoH/NbqB/ja6 - gf82uoH/NbqB/ja6gf81uoH+NrqBswAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MzJ/Ozs3/vLq3/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2 - s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2 - s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2s/+4trP/uLaz/7i2 - s/+wtrD/Sr6O/1TLnP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8hP82vIT/NryE/za8 - hP82vIT/NryDlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMrKyZ++u7n+u7i1/7u4tf67uLX/u7i1/7u4tf67uLX/u7i1/ru4tf+7uLX+u7i1/7u4 - tf67uLX/u7i1/7u4tf67uLX/vLm2/ry5t/+7ubf+uri2/7i2tP62tLP/tbOx/7SysP6zsa//s7Gv/rOx - r/+1s7H+t7Wy/7m2tP66t7X/u7i1/ru4tf+7uLX/u7i1/ru4tf+7uLX+u7i1/7u4tf67uLX/abuY/kvH - l/82vYb/Nb2G/ja9hv81vYb+Nr2G/zW9hv42vYb/Nb2G/ja9hv82vYb/Nb2G/ja9hv81vYb+Nr2GdwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMTC - wJ+9u7j/vbq3/726t/+9urf/vbq3/726t/+9urf/vbq3/726t/++u7n/xMG//8vKyP/Qz87/0tHR/9HR - 0P/Pz8//ycnJ/8PDw/++vb3/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6ur - q/+urq7/s7Ky/7e3tv+7ubj/vLu5/727uf+9urj/vbq3/7m6tv97vKH/OL6K/zW+iP81voj/Nb6I/zW+ - iP81voj/Nb6I/zW+iP81voj/Nb6I/zW+iP81voj/Nb6I/zW+iP87wY3/Nr+JWQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMG/vJrIxsT+v7y6/7+8 - uf6/vLn/v7y5/7+8uf7Avrv/0M7N/uTi4f/y8vH+8/Pz/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPD - w/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2 - tv+5ubn/vb29/sHBwf/FxMT+t8S9/1y/mP41v4r/NL+K/jW/iv81v4r/NL+K/jW/iv80v4r+Nb+K/zS/ - iv41v4r/NL+K/jW/iv81v4r/NL+K/jW/iv9AxZP+OMCMOwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMPAvVvKx8X/zMrI/8G+u//Bvrz/ycfF/93c - 2//y8vH/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8HB - wf+cxLX/Q8GS/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP81wYz/NcGM/zfCjv9Dx5f/OsOQGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjGxAfEwr/C1dTS/9DOzP/a2tn/6urq//Dw8P/19fX/+fn5//39 - /f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mp - qf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vL29/3vBp/84wY//NcGN/zXB - jf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/z/G - lf9Bx5bxPsWUDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzcsV0M/N4d/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs - 7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSk - pP+kpKT+qKio/6qqqv6urq7/sbGx/ra2tv+5ubn/n76y/jjDkf8+xpX+PcaV/zrEkv41wo//NMKP/jXC - j/81wo//NMKP/jXCj/80wo/+NcKP/zTCj/41wo//NMKP/jXCj/81wo//NMKP/krMn/87xZPZQceXBQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADT09N72dnZ/N/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW - 1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qq - qv+urq7/sbGx/7a2tv+5ubn/t727/3/Cqv9gxKD/Tcab/0XImf9Gypz/R8ud/0jMnv9KzaD/Ss2g/0XK - nP8/x5f/OMSS/zbDkf81w5D/NcOQ/zXDkP81w5D/NcOQ/1bSqP84xJK/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANHR0DTT09P52dnZ/9/f - 3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPD - w/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2 - tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8XOy/6zzcP/lcOy/ni8pP9fuZn/TbuU/kbClv9Hyp3+Ts6j/1LQ - pf5W0qj/VtKo/lXRqP9PzqP/VNGm/lLQpf45xZN4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0IvT09P/2dnZ/9/f3//l5eX/6+vr//Dw - 8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0 - tP+wsLD/ra2t/6mpqf+np6f/paWl/6SkpP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LC - wv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2tv+pqan/nJ2c/42SkP97iYT/ZI+Aw0S6kGc+wJGNOMSStDrF - lNxByZnvQMiY7jjEkpdByJkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P+2dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8 - /P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mp - qf6np6f/paWl/qSkpP+kpKT+qKio/6qqqv6urq7/sbGx/ra2tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8/P - z/7Pz8//wsLC/ra2tv+pqan/nJyc/pCQkP+Dg4P+dnt5sQAAAAAAAAAAAAAAAAAAAABFypsRQ8maEAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+zs - 7P/l5eX/3d3d/9bW1v/Q0ND/ysrK/8PDw/++vr7/uLi4/7S0tP+wsLD/ra2t/6mpqf+np6f/paWl/6Sk - pP+lpaX/qKio/6qqqv+urq7/sbGx/7a2tv+5ubn/vb29/8LCwv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2 - tv+pqan/nJyc/5CQkP+Dg4P/eHl5sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/P - z5/T09P+2dnZ/9/f3/7l5eX/6+vr//Dw8P719fX/+fn5/vz8/P/8/Pz+9PT0/+zs7P7k5OT/3d3d/9bW - 1v7Q0ND/ysrK/sPDw/+9vb3+uLi4/7S0tP6wsLD/ra2t/6mpqf6np6f/paWl/qSkpP+kpKT+qKio/6qq - qv6urq7/sbGx/ra2tv+5ubn/vb29/sHBwf/Gxsb+y8vL/8/Pz/7Pz8//wsLC/ra2tv+pqan/nJyc/pCQ - kP+Dg4P+eHh4sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f - 3//l5eX/6+vr//Dw8P/19fX/+fn5//39/f/8/Pz/9PT0/+rq6v/d3dz/0M/O/8TDwv+8u7n/trSy/7Kw - rv+wrav/rquo/62qqP+tqqf/raqn/62qp/+tqqf/raqn/62qp/+sqaf/rKqn/6yqqP+urKr/sK6t/7Oz - sv+4t7f/vby8/8LCwv/Gxsb/y8vL/8/Pz//Pz8//wsLC/7a2tv+pqan/nJyc/5CQkP+Dg4P/eHh4sQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f3//l5eX/6+vr//Dw - 8P/19fX/9/f3/+3s7P/Z2Nb/xcLA/7e0sv+xr6z/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+xrqv/sq+s/7Wz - sf+8u7n/xcXE/87Ozv/Pz8//wsLC/7a2tv+pqan/nJyc/5CQkP+Dg4P/eHh4sQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/Pz5/T09P+2dnZ/9/f3/7l5eX/6urq/+Tj4v7Qz83/vLm3/rSx - rv+0sa7+tLGu/7Sxrv60sa7/tLGu/7Sxrv60sa7/tLGu/rSxrv+0sa7+tLGu/7Sxrv60sa7/tLGu/7Sx - rv60sa7/tLGu/rSxrv+0sa7+tLGu/7Sxrv60sa7/tLGu/rSxrv+0sa7/tLGu/rSxrv+0sa7+tLGu/7a0 - sv6/vbz/v769/ra2tv+pqan/nJyc/pCQkP+Dg4P+eHh4sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM/Pz5/T09P/2dnZ/9/f3//Y2Nf/xMLA/7i1s/+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/uLWz/7e1 - s/+trKz/nZ2d/5CQkP+Dg4P/eHh4sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM/O - zp/T09P+1tbV/8fFw/67uLb/u7i2/7u4tv67uLb/u7i2/ru4tv+7uLb+u7i2/7u4tv67uLb/u7i2/7u4 - tv67uLb/u7i2/ru4tv+7uLb+u7i2/7u4tv67uLb/u7i2/7u4tv67uLb/u7i2/ru4tv+7uLb+u7i2/7u4 - tv67uLb/u7i2/ru4tv+7uLb/u7i2/ru4tv+7uLb+u7i2/7u4tv67uLb/u7i2/ru4tv+7uLb/srCv/pWV - lf+Dg4P+eXl5sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM7NzZ/Pz87/wr++/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7q4tf+Pjo7/enp6sQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM3MzJ/FwsD+wr+9/8K/vf7Cv73/wr+9/8K/ - vf7Cv73/wr+9/sK/vf/Cv73+wr+9/8K/vf7Cv73/wr+9/8K/vf7Cv73/wr+9/sK/vf/Cv73+wr+9/8K/ - vf7Cv73/wr+9/8K/vf7Cv73/wr+9/sK/vf/Cv73+wr+9/8K/vf7Cv73/wr+9/sK/vf/Cv73/wr+9/sK/ - vf/Cv73+wr+9/8K/vf7Cv73/wr+9/sK/vf/Cv73/wr+9/sK/vf+7uLb+gYGBsQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvJyJ/Kx8X/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bD - wf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bD - wf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bD - wf/Gw8H/xsPB/8bDwf/Gw8H/xsPB/8bDwf/Kx8T/oaCesQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMzKx5nb2df+zMnH/8rHxP7Kx8T/ysfE/8rHxP7Kx8T/ysfE/srHxP/Kx8T+ysfE/8rH - xP7Kx8T/ysfE/8rHxP7Kx8T/ysfE/srHxP/Kx8T+ysfE/8rHxP7Kx8T/ysfE/8rHxP7Kx8T/ysfE/srH - xP/Kx8T+ysfE/8rHxP7Kx8T/ysfE/srHxP/Kx8T/ysfE/srHxP/Kx8T+ysfE/8rHxP7Kx8T/ysfE/srH - xP/Kx8T/ysfE/svIxv/b2dj+vbq4rAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDN - y1LY1dT/5OPi/8/Myv/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/+Hg - 3//a2df/zsvJawAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANXT0gXS0M615eTj/ufm - 5v/U0dD/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HO - zP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/Rzsz/0c7M/9HOzP/T0M//5eTj/+fn5v/S0M7H1dPRCgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADZ19YN1tTSseXk4/7v7u7/4d/e/9bT - 0v7V0tD/1dLQ/tXS0P/V0tD+1dLQ/9XS0P7V0tD/1dLQ/9XS0P7V0tD/1dLQ/tXS0P/V0tD+1dLQ/9XS - 0P7V0tD/1dLQ/9XS0P7V0tD/1dLQ/tXS0P/V0tD+1dLQ/9XS0P7V0tD/1dLQ/tXS0P/V0tD/1dLQ/tXS - 0P/V0tD+1dLQ/9XS0P7V0tD/1tPR/t/e3f/u7e3/5+bl/tbU0sDa2NYXAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA3tzbBtvY12vg3t3q7ezs/+/u7v/l5OP/3drY/9nW - 1P/Y1dP/2dbU/9jV0//Z1tT/2dbU/9jV0//Z1tT/2NXT/9nW1P/Y1dP/2dbU/9jV0//Z1tT/2dbU/9jV - 0//Z1tT/2NXT/9nW1P/Y1dP/2dbU/9jV0//Z1tT/2NXT/9nW1P/Z1tT/2NXT/9nW1P/Y1dP/2dbU/9zZ - 2P/l4+L/7u7t/+7t7f/h397v2tjWed7c2wkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADh390T3tzae+Pi4ODs6+r/8fHx/u7t7f/n5uX+4uDf/97b - 2v7c2df/3NnX/9zZ1/7c2df/3NnX/tzZ1//c2df+3NnX/9zZ1/7c2df/3NnX/9zZ1/7c2df/3NnX/tzZ - 1//c2df+3NnX/9zZ1/7c2df/3NnX/tzZ1//c2df/3tvZ/uLg3v/n5uX+7ezs//Hx8f7s7Ov/5OLh59/d - 24Xh394cAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOXj4gjj4eBJ4+Hgnufm5ePs7Ov88PDw//Hx8P/v7+7/7Ovq/+nn - 5v/m5OP/5OLh/+Lg3v/h3t3/4N7c/+De3P/g3tz/4N7c/+De3P/g3tz/4N7c/+De3P/h3tz/4uDe/+Ti - 4P/m5OP/6Ofm/+vq6v/v7u7/8fDw//Dw8P/t7Ov86Obl5uPi4KXj4eBP5ePiDAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOjn5gbm5eQy5uTjaefl5KLp5+bP6+rp9e7t7P7v7+//8fDw/vLy - 8v/x8fH+8fHx//Dw8P7w8PD/8PDw//Dw8P7w8PD/8PDw/vHx8f/x8fH+8vLy//Hx8f7v7+//7u3t/uvq - 6fbp5+bS5+XkpeXk4nDm5eQ26OfmCQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADr6ukC6+rpBuno5yTp6OZE6OblYOjn5Xnp6OeN6ujnmuno - 56nq6eiq6unouurp6Lrq6eir6ejnqerp55zp6OeO6Ofmeujm5WLp6OZG6ejmJurp6Ajr6ukCAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//gAAAAAH//wAAAP/8AAAAAAA//wAAAP/wAAAAAAAP/wAAAP/g - AAAAAAAH/wAAAP+AAAAAAAAB/wAAAP8AAAAAAAAA/wAAAP8AAAAAAAAAfwAAAP4AAAAAAAAAfwAAAP4A - AAAAAAAAPwAAAPwAAAAAAAAAPwAAAPwAAAAAAAAAPwAAAPwAAAAAAAAAPwAAAPwAAAAAAAAAPwAAAPwA - AAAAAAAAPwAAAPwAAAAAAAAAPwAAAPwAAAAAAAAAPwAAAP4AAAAAAAAAPwAAAP4AAAAAAAAAfwAAAP8A - AAAAAAAA/wAAAP8AAAAAAAAA/wAAAP+AAAAAAAAB/wAAAP/gAAAAAAAH/wAAAP/wAAAAAAAP/wAAAP/w - AAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/w - AAAAAAAP/wAAAP/4AAAAAAAf/wAAAP/4AAAAAAAP/wAAAP/wAAAAAAAP9wAAAP/wAAAAAAAHwwAAAP/w - AAAAAAADgwAAAP/wAAAAAAAAAwAAAP/wAAAAAAAAAwAAAP/wAAAAAAAAAwAAAP/wAAAAAAAAAwAAAP/w - AAAAAAAAAwAAAP/wAAAAAAAABwAAAP/wAAAAAAAABwAAAP/wAAAAAAAABwAAAP/wAAAAAAAABwAAAP/w - AAAAAAAABwAAAP/wAAAAAAAABwAAAP/wAAAAAAAABwAAAP/wAAAAAAAABwAAAP/4AAAAAAAABwAAAP/4 - AAAAAAAADwAAAP/wAAAAAAAADwAAAP/wAAAAAAAADwAAAP/wAAAAAAAPPwAAAP/wAAAAAAAP/wAAAP/w - AAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/w - AAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/w - AAAAAAAP/wAAAP/wAAAAAAAP/wAAAP/4AAAAAAAf/wAAAP/8AAAAAAA//wAAAP//AAAAAAD//wAAAP// - wAAAAAP//wAAAP//+AAAAB///wAAAP///4AAAf///wAAAP///////////wAAACgAAABAAAAAgAAAAAEA - IAAAAAAAAEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NTQBNTU1ATY2NQI2NjYDNzc2BDc3NwU4ODcHODg4CDk5 - OAk5OTkLOTk5DDo6Og07OzoOOzs6Dzs7Ow87OzsQPDw7EDw8OxA7OzsQOzs7Dzs7Ow87OzoOOjo6DTo6 - Ogw5OTkLOTk4CTg4OAg4ODgHNzc3BTc3NwQ2NjYDNjY2AjU1NQE1NTUBAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzATMzMwE0NDQCNDQ0BDU1NQY2NjUINjY2Cjc3 - Nw04ODcPODg4Ejk5OBU5OTkXOjo5GTo6Ohw6OjodOzs6Hzs7OyA7OzshOzs7Ijw8OyM8PDsjOzs7Ijs7 - OyE7OzsgOzs6Hzo6Oh46OjocOjo5Gjk5ORc5OTgVODg4Ejg4Nw83NzcNNjY2CjY2Ngg1NTUGNTU0BDQ0 - NAI0NDQBMzMzAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyATMzMwMzMzMFNDQ0CDQ0 - NAw1NTUQNjY2FDc3Nhk3NzcdODg3Ijg4OCY5OTgqOTk5Ljo6OTI6Ojo1Ozs6Nzs7Ojk7Ozs7Ozs7PDw8 - Oz08PDs+PDw7Pjw8Oz07Ozs8Ozs7Ozs7Ojk7Ozo3Ojo6NTo6OTI5OTkuOTk4Kzg4OCY4ODciNzc3Hjc3 - Nhk2NjYUNTU1EDU1NQw0NDQIMzMzBTMzMwMyMjICMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyAzIy - MgUzMzMJMzMzDjQ0NBQ1NTUbNTU1IjY2Nik3NzYvNzc3Njg4Nzw4ODhCOTk4Rzk5OUs6OjlPOjo6Uzs7 - OlU7OztYOzs7Wjw8O1s8PDtcPDw7XTw8O108PDtcPDw7Wzs7O1o7OztYOzs6Vjo6OlM6OjpQOjo5TDk5 - OUc4ODhCODg4PTc3Nzc3NzYwNjY2KTU1NSI1NTUbNDQ0FTQ0NA8zMzMJMjIyBjIyMgMyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAyMjIBMjIyBDIyMgcyMjINMzMzFTQ0Mx40NDQnNTU1MTU1NTs2NjZENzc2TDc3N1M4ODhaOTk4YDk5 - OWU6OjlpOjo6bTs7OnA7OztyPDw7dTw8O3Y8PDx3PDw8eD09PHg9PTx4PDw8eDw8PHc8PDt2PDw7dTs7 - O3M7OzpwOjo6bTo6OWo5OTllOTk4YDg4OFo3NzdUNzc3TTY2NkQ2NjU7NTU1MjQ0NCg0NDQfMzMzFjIy - Mg4yMjIIMjIyBDIyMgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyBDIyMgkyMjIRMjIyGzMzMyc0NDM0NDQ0QTU1NU02NjVYNjY2Yjc3 - N2o4ODdxODg4djk5OHs5OTl/Ojo6gzs7OoU7OzuIPDw7iT8/P41KSkmUUFBPmlRUVKBVVVSiVFRTolNT - UqFNTU2aSEhIlT8/P408PDuKOzs7iDs7OoY6OjqDOjo5gDk5OXw4ODh3ODg3cTc3N2o2NjZiNjY1WTU1 - NU40NDRCNDQ0NjMzMykyMjIcMjIyEjIyMgkyMjIEMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyAzIyMggyMjIRMjIyHjIyMi4zMzM/NDQ0TzQ0 - NF01NTVqNjY1dDY2Nnw3NzeCODg3hzs7OoxbW1ugfX19uJWVlcuoqKjct7e36sDAwPbBwcH/u7u7/7W1 - tf+xsbH/ra2t/6mpqf+np6f/paWl/6SkpP+mpqb/pKSk95ycnOuPj4/egYGBzW5ubrlVVVWjPDw7jTg4 - OIg3NzeDNjY2fDY2NnQ1NTVrNDQ0XzQ0NFAzMzNAMjIyLzIyMh8yMjISMjIyCTIyMgQyMjIBAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAjIyMgYyMjIPMjIyHTIy - Mi8yMjJDMzMzVzQ0NGk0NDR3NTU1gTY2NolNTU2ZjY2NvsbGxt7w8PD47+/v/+bm5v/e3t7/1tbW/8/P - z//IyMj/wcHB/7u7u/+1tbX/sbGx/62trf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/7a2 - tv+6urr/v7+//76+vvmjo6LgfX18wEtLS5s2NjaJNTU1gjU1NHg0NDRqMzMzWTMzMkUyMjIxMjIyHjIy - MhAyMjIHMjIyAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIy - MgMyMjIKMjIyFjIyMikyMjJAMzMyWDMzM240NDR+NjY1inBwcLHCwsLh9fX1/vr6+v/+/v7/+Pj4/+/v - 7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6am - pv+qqqr/ra2t/7Gxsf+2trb/urq6/7+/v//Dw8P/ycnJ/87Ozv/Q0ND+pKSk5GNjY7U2NjaLNDQ0gDMz - M28zMzNaMjIyQjIyMisyMjIYMjIyCzIyMgMyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgEyMjIEMjIyDTIyMh0yMjIzMjIyTjMzM2gzMzN+XFxcpMXFxenq6ur/8PDw//b2 - 9v/6+vr//v7+//j4+P/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mp - qf+np6f/paWl/6SkpP+mpqb/qqqq/62trf+xsbH/tra2/7q6uv+/v7//w8PD/8nJyf/Ozs7/0NDQ/8PD - w/+1tbX/lpaW7FBQUKkzMzN/MzMzajIyMlEyMjI2MjIyHzIyMg4yMjIFMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyBjIyMg8yMjIhMjIyOjIyMlczMzNxf39/udzc - 3P3k5OT/6urq//Dw8P/29vb/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7 - u/+1tbX/sbGx/62trf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/v7+//8PD - w//Jycn/zs7O/9DQ0P/Dw8P/tbW1/6enp/+YmJj+Y2NiwTMzM3QyMjJZMjIyPDIyMiMyMjIRMjIyBjIy - MgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyATIyMgYyMjIQMjIyITIy - MjsyMjJXbGxsn9fX1//d3d3/5OTk/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW - 1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gx - sf+2trb/urq6/7+/v//Dw8P/ycnJ/87Ozv/Q0ND/w8PD/7W1tf+np6f/mZmZ/4qKiv9VVVWrMjIyWjIy - Mj0yMjIjMjIyETIyMgYyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgEyMjIFMjIyDjIyMh4yMjI2MjIyUb29vebX19f/3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4 - +P/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mpqf+np6f/paWl/6Sk - pP+mpqb/qqqq/62trf+xsbH/tra2/7q6uv+/v7//w8PD/8nJyf/Ozs7/0NDQ/8PDw/+1tbX/p6en/5mZ - mf+Kior/eHh48TMzM1UyMjI4MjIyIDIyMg8yMjIFMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIBMjIyBDIyMgsyMjIYMjIyLDIyMkTQ0ND/19fX/93d3f/k5OT/6urq//Dw - 8P/29vb/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7u/+1tbX/sbGx/62t - rf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/v7+//8PDw//Jycn/zs7O/9DQ - 0P/Dw8P/tbW1/6enp/+ZmZn/ioqK/3x8fP86OjpRMjIyLTIyMhkyMjIMMjIyBDIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgIyMjIHMjIyEDIyMh8yMjIz0NDQ/9fX - 1//d3d3/5OTk/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HB - wf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gxsf+2trb/urq6/7+/ - v//Dw8P/ycnJ/87Ozv/Q0ND/w8PD/7W1tf+np6f/mZmZ/4qKiv98fHz/Ozs7QTIyMiEyMjISMjIyCDIy - MgIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjIBMjIyBDIy - MgoyMjIUMjIyItDQ0P/X19f/3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4+P/v7+//5ubm/97e - 3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbD/ra2t/6mpqf+np6f/paWl/6SkpP+mpqb/qqqq/62t - rf+xsbH/tra2/7q6uv+/v7//w8PD/8nJyf/Ozs7/0NDQ/8PDw/+1tbX/p6en/5mZmf+Kior/fHx8/z09 - PTAyMjIVMjIyCjIyMgQyMjIBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgIyMjIFMjIyCzIyMhTQ0ND/19fX/93d3f/k5OT/6urq//Dw8P/29vb/+vr6//7+ - /v/4+Pj/6+vr/9jX1//JyMf/v727/7e1s/+ysK3/r6yp/62qqP+tqqf/raqn/62qp/+tqqf/raqn/62q - p/+tqqf/rKmn/6yqp/+tq6n/r62r/7KxsP+3trX/vb29/8PDw//Jycn/zs7O/9DQ0P/Dw8P/tbW1/6en - p/+ZmZn/ioqK/3x8fP8/Pz8jMjIyCzIyMgUyMjICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAlFRUQVBQUEJ0NDQ/9fX1//d3d3/5OTk/+rq - 6v/w8PD/9PPz/+Xk4//R0M7/vLq3/7Ctqv+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+s - qf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+vrKn/r6yp/6+sqf+zsK3/uri3/8XE - w//Pz8//w8PD/7W1tf+np6f/mZmZ/4qKiv98fHz/SUlJGUxMTAU0NDQCMjIyAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABpaWkBpKSkA9DQ - 0P/X19f/3d3d/+Tk5P/h4eD/zMrJ/7e0sf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/tLGu/7m3tf+0tLP/p6en/5mZmf+Kior/fHx8/25ubhNeXl4BNzc3AQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMPDwwHQ0ND/19fX/9nZ2f/GxML/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7az - sP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7azsP+2s7D/trOw/7Gvrf+cnJv/ioqK/3x8 - fP96enoRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/87NzP+7ubb/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7m2 - s/+5trP/t7Wy/5mYl/98fHz/g4OCEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMvLyv+9urf/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7u4 - tv+6uLX/ure1/7m3tP+5trT/ube0/7q4tf+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5 - tv+8ubb/vLm2/7y5tv+8ubb/vLm2/7y5tv+7uLb/jYyL/42MjBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADDwb//v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/xsPB/8zKyP/Ozcv/zs3M/8vK - yv/Gxsb/wMDA/7u7u/+1tbX/sbGx/62trf+pqan/p6en/6Wlpf+kpKT/oaaj/46rmP+ArpD/eLCL/3Kw - h/94sYv/hLOT/5q2ov+3u7X/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7Kwrv+bmZgQAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAxMG//MnGxP/CwL3/wsC9/8LAvf/CwL3/xsTC/9fW1P/q6ej/8/Pz/+/v - 7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gxsf+tra3/qamp/6Gno/95pon/U6dx/zmn - Yv84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/Oahi/1uueP+Otpr/v7+7/8LAvf/CwL3/wsC9/8fE - wv/Fw8D/sK+tDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMbDwMXV1NL/x8XC/8bDwP/Pzsv/4+Lh//X1 - 9f/6+vr//v7+//j4+P/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/qK2q/3+p - jv9ip3v/Yad6/1amc/89p2T/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/0eq - a/+PuJv/xcPA/8bEwf/V1NL/xsPA2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADNysg1z8zK9trZ - 1//e3d3/6urq//Dw8P/29vb/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7 - u/+1tbX/sbGx/6WtqP+pqan/p6en/6Wlpf+kpKT/oaaj/3Gohf85qGH/OKhh/zioYf84qGH/OKhh/zio - Yf84qGH/OKhh/zioYf84qGH/OKhh/1mud/++ysD/0M7L/LnCuUUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANTT0pLd3d3/5OTk/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW - 1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/iquW/zyo - ZP84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/P6dl/4SrkaUAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANLS0VDX19f+3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4 - +P/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mpqf+np6f/paWl/6Sk - pP+mpqb/qqqq/62trf+Ur57/P6hm/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zio - Yf85p2L/UaRwZwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NDT19fX/93d3f/k5OT/6urq//Dw - 8P/29vb/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7u/+1tbX/sbGx/62t - rf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/5qzpP8/qmn/OKpk/ziqZP84qmT/OKpk/ziq - ZP84qmT/OKpk/ziqZP84qmT/OKpk/ziqZPw6qWdPAAAAAAAAAAAAAAAAAAAAAAAAAAA3rGgFN6tmbjer - ZlQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/9fX - 1//d3d3/5OTk/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HB - wf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gxsf+2trb/nreo/0Cv - b/89r27/N6xp/zesaf83rGn/N6xp/zesaf83rGn/N6xp/zesaf83rGn/N6xp9zetajkAAAAAAAAAAAAA - AAA3rmsfN6xpxjesaf83rGnOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0P/X19f/3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4+P/v7+//5ubm/97e - 3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mpqf+np6f/paWl/6SkpP+mpqb/qqqq/62t - rf+xsbH/tra2/7q6uv+Yuqf/R7d7/z+zdP83r23/N69t/zevbf83r23/N69t/zevbf83r23/N69t/zev - bf83r23nN7BvGQAAAAA3r29RN69t7jevbf83r23/N65tuQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0ND/19fX/93d3f/k5OT/6urq//Dw8P/29vb/+vr6//7+ - /v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7u/+1tbX/sbGx/62trf+pqan/p6en/6Wl - pf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/v7+//4u7ov9MvYT/PbR2/zexcf83sXH/N7Fx/zex - cf83sXH/N7Fx/zexcf83sXH/N7Fx/zexcb43sXGTN7Fx/zexcf83sXH/N7Fx/zaxcZoAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/9fX1//d3d3/5OTk/+rq - 6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+3t7P/a2tn/zMrJ/8G/vf+5t7X/tLGv/7GurP+vrKn/rquo/66r - qP+uq6j/rquo/66rqP+uq6j/rauo/62qqP+tq6j/rqyq/7CurP+zsrD/t7e2/76+vv/Dw8P/cryX/1PD - jf84tHb/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zezdf83s3X/N7N1/zez - df82s3R8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ - 0P/X19f/3d3d/+Tk5P/q6ur/8PDw//X19f/o5+b/1NLR/7+9u/+xrqv/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ctqv+wrar/sK2q/7Ct - qv+wrqv/tLKv/7e5tv9SuIf/UMOP/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2ef82tnn/NrZ5/za2 - ef82tnn/NrZ5/za2ef82tnn/NrV4XQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADQ0ND/19fX/93d3f/k5OT/4+Li/87My/+4trP/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Ow - rf+zsK3/s7Ct/7Owrf+zsK3/s7Ct/7Owrf+zsK3/m7Gk/0vCjf9AvYX/Nrh8/za4fP82uHz/Nrh8/za4 - fP82uHz/Nrh8/za4fP82uHz/Nrh8/za4fP82uHz/Nrh8/za3ez8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/9fX1//Z2dn/xsXD/7WysP+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wy - r/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/+1sq//tbKv/7Wyr/9ttpT/U8iX/za5 - gP82uYD/NrmA/za5gP82uYD/NrmA/za5gP82uYD/NrmA/za5gP82uYD/NrmA/za5gP82uX4hAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0P/Ozs3/uri1/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/rbWu/0vCkf9Gw4//NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7g/82u4P/NruD/za7 - g/82u4P9NrqBBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADLysr/u7i2/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+5t7T/uba0/7i2s/+4tbP/t7Wy/7i2s/+5trT/ure0/7q3tP+6t7T/ure0/7q3 - tP+6t7T/ure0/7q3tP+6t7T/ure0/7q3tP9rupj/Usqc/za9hf82vYX/Nr2F/za9hf82vYX/Nr2F/za9 - hf82vYX/Nr2F/za9hf82vYX/Nr2F5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAwb+9/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/7y6t/+8urf/vLq3/8K/ - vf/Jx8X/zMrJ/8zLyv/Kycn/xsXF/8DAwP+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6en - p/+srKv/sLCv/7W0s/+5t7b/u7m3/7y6uP+8urf/vLq3/7y6t/+guq3/Rr2O/zW+iP81voj/Nb6I/zW+ - iP81voj/Nb6I/zW+iP81voj/Nb6I/zW+iP81voj/OL+K/ze/icYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMC+vPvFw8H/v7y5/7+8uf+/vLn/v7y5/8LA - vf/U0tD/5ubl//Lx8f/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mp - qf+np6f/paWl/6SkpP+mpqb/qqqq/62trf+xsbH/tra2/7q6uv+/v7//wsLC/8TEw/+Bv6X/N7+L/zW/ - iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/zW/iv81v4r/Nb+K/z/Ekv82wIunAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBv7y90tDP/8LA - vf/Bvrz/y8nH/+Df3//09PT/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7 - u/+1tbX/sbGx/62trf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/v7+//7jD - v/9fw53/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXB - jP9EyJj/N8GOiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAyMbELcrHxfDX1tT/3Nva/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW - 1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gx - sf+2trb/urq6/6e/tv9DwpP/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXCjv81wo7/NcKO/zXC - jv81wo7/NcKO/zXCjv81wo7/Ssue/zrEkWoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0M+H3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4 - +P/v7+//5ubm/97e3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mpqf+np6f/paWl/6Sk - pP+mpqb/qqqq/62trf+xsbH/tra2/7q6uv96wKb/O8WU/z/Hl/9ByJj/Q8mZ/z7Hlv82w5D/NcKP/zXC - j/81wo//NcKP/zXCj/81wo//NcKP/zXCj/81wo//NcKP/0/Oov88xZRLAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0dFL19fX/t3d3f/k5OT/6urq//Dw - 8P/29vb/+vr6//7+/v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7u/+1tbX/sbGx/62t - rf+pqan/p6en/6Wlpf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/vr++/6XDuP+Rx7P/fcit/2bH - pP9Txp7/SMqc/0nMnv9KzaD/Tc6h/07Oov9OzqL/Rsuc/z7Hl/82w5H/NcOQ/0HImf9NzqL/P8eWJgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ0dfX - 1//d3d3/5OTk/+rq6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HB - wf+7u7v/tbW1/7Gxsf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gxsf+2trb/urq6/7+/ - v//Dw8P/ycnJ/87Ozv/Q0ND/w8PD/7O1tf+Xq6P/e6WW/2Skjf9Rp4j/Pb6QwkHImOlKzaD/VNGn/1jT - qf9S0KX/OMSSowAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAANDQ0P7X19f/3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4+P/v7+//5ubm/97e - 3v/W1tb/z8/P/8jIyP/BwcH/u7u7/7W1tf+xsbH/ra2t/6mpqf+np6f/paWl/6SkpP+mpqb/qqqq/62t - rf+xsbH/tra2/7q6uv+/v7//w8PD/8nJyf/Ozs7/0NDQ/8PDw/+1tbX/p6en/5mZmf+Kior/fHx8/2Sa - iBAAAAAARMeZEUHImTg+x5ZaP8eXQkPJmgEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0ND/19fX/93d3f/k5OT/6urq//Dw8P/29vb/+vr6//7+ - /v/4+Pj/7+/v/+bm5v/e3t7/1tbW/8/Pz//IyMj/wcHB/7u7u/+1tbX/sbGx/62trf+pqan/p6en/6Wl - pf+kpKT/pqam/6qqqv+tra3/sbGx/7a2tv+6urr/v7+//8PDw//Jycn/zs7O/9DQ0P/Dw8P/tbW1/6en - p/+ZmZn/ioqK/3x8fP9wh38QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/9fX1//d3d3/5OTk/+rq - 6v/w8PD/9vb2//r6+v/+/v7/+Pj4/+/v7//m5ub/3t7e/9bW1v/Pz8//yMjI/8HBwf+7u7v/tbW1/7Gx - sf+tra3/qamp/6enp/+lpaX/pKSk/6ampv+qqqr/ra2t/7Gxsf+2trb/urq6/7+/v//Dw8P/ycnJ/87O - zv/Q0ND/w8PD/7W1tf+np6f/mZmZ/4qKiv98fHz/e3t7EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ - 0P/X19f/3d3d/+Tk5P/q6ur/8PDw//b29v/6+vr//v7+//j4+P/u7u7/3Nvb/8zLyv/CwL//uri2/7Sy - sP+xrqz/r6yp/66rqP+tqqf/raqn/62qp/+tqqf/raqn/62qp/+sqqf/raqo/66sqv+wrqz/s7Kx/7i3 - t/++vr7/w8PD/8nJyf/Ozs7/0NDQ/8PDw/+1tbX/p6en/5mZmf+Kior/fHx8/3t7exAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADQ0ND/19fX/93d3f/k5OT/6urq//Dw8P/19fX/6uno/9fV1P/CwL7/s7Ct/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Guq/+xrqv/sa6r/7Gu - q/+xrqv/sa6r/7Guq/+xrqv/sa6s/7Wzsf+9u7r/x8bG/9DQ0P/Dw8P/tbW1/6enp/+ZmZn/ioqK/3x8 - fP97e3sQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQ/9fX1//d3d3/5OTk/+Tk4//S0M//vLm3/7Wy - sP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+1srD/tbKw/7Wy - sP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+1srD/tbKw/7WysP+3tbP/u7q4/7W0 - tP+np6f/mZmZ/4qKiv98fHz/e3t7EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0P/X19f/2tra/8vJ - yP+6t7X/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/srCv/5ybm/+Kior/fHx8/319fRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADQ0ND/0NDP/8C+u/+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726 - uP+9urj/vbq4/726uP+9urj/vbq4/726uP+9urj/vbq4/726uP+6uLb/mJeX/3x8fP+Dg4MQAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzczM/8K/vf/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+ - vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8G+vP/Bvrz/wb68/8C9 - u/+Mi4v/j46NEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjGxf/HxMH/xsLA/8bCwP/GwsD/xsLA/8bC - wP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bC - wP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bCwP/GwsD/xsLA/8bC - wP/GwsD/xsLA/8bCwP/GwsD/t7Wz/56dnBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMycf62NbU/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rH - xP/Kx8T/ysfE/8rHxP/Kx8T/ysfE/8rHxP/Kx8T/1dPR/87Lyf+1s7IMAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAz8zKtebm5f/T0c//zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87L - yf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/zsvJ/87Lyf/Oy8n/0s/N/+fm5v/Oy8nLAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAANbU0iTX1NPq7ezs/9za2f/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LP - zf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/0s/N/9LPzf/Sz83/2tjX/+3s - 7P/Z1tX11dPRMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA2tjWKNrY1tbs7Ov/6urp/93b - 2f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT0f/W09H/1tPR/9bT - 0f/c2tj/6ejo/+3t7P/b2dje2tfWMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADf3dwH3NrYdePh4Ovu7u7/7u3t/+Xk4//e3Nr/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX1f/a19X/2tfV/9rX - 1f/a19X/3tva/+Xj4v/t7ez/7+7u/+Tj4fHd29mC393cCgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4eAK4d/eYuTi4cLq6en98PDw//Dw7//r6un/5+Xk/+Ph - 4P/g3tz/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b2f/e29n/3tvZ/97b - 2f/g3tz/4+Hf/+bl5P/q6en/7+/v//Dw8P/r6un+5ePix+Hf3Wvj4uANAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA5uXkFuXj - 4l3m5eOd6ejn1uzr6v3v7u7/8fHx//Hx8f/v7+//7u3t/+zs6//s6+r/6+rq/+vq6v/r6ur/6+rq/+vr - 6v/s7Ov/7u3t/+/v7//x8fH/8fHx/+/v7v/s6+v+6ejm2ubl5KLl4+Ji5+XkGwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADq6egL6ejnM+jm5Vrp5+Z66ejnlurp6Kvr6um+6+rpzOzq - 6c/s6+rd7Ovq3uzr6s/r6unO6+rpv+rp6Kzp6OeX6efmfOjm5Vzp5+Y26ejnDQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//4AAAAAf///8AAAAAAP///AAAAAAAP//4AAAAAA - Af//AAAAAAAA//4AAAAAAAB//AAAAAAAAD/8AAAAAAAAP/gAAAAAAAAf+AAAAAAAAB/4AAAAAAAAH/gA - AAAAAAAf+AAAAAAAAB/4AAAAAAAAH/wAAAAAAAA//AAAAAAAAD/+AAAAAAAAf/8AAAAAAAB//4AAAAAA - AP//wAAAAAAD///gAAAAAAP//+AAAAAAA///4AAAAAAD///gAAAAAAP//+AAAAAAB///4AAAAAAH///w - AAAAAA///+AAAAAAB///4AAAAAAD4//gAAAAAAHD/+AAAAAAAIP/4AAAAAAAA//gAAAAAAAD/+AAAAAA - AAP/4AAAAAAAA//gAAAAAAAD/+AAAAAAAAP/4AAAAAAAB//gAAAAAAAH/+AAAAAAAAf/4AAAAAAAB//g - AAAAAAAH//AAAAAAAAf/4AAAAAAAB//gAAAAAAAP/+AAAAAAAg//4AAAAAAD///gAAAAAAP//+AAAAAA - A///4AAAAAAD///gAAAAAAP//+AAAAAAA///4AAAAAAD///gAAAAAAP//+AAAAAAA///4AAAAAAD///g - AAAAAAf//+AAAAAAB///8AAAAAAP///4AAAAAB////4AAAAAf////8AAAAP//////AAAP/////////// - //8oAAAAMAAAAGAAAAABACAAAAAAAIAlAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQBNTU1AjY2NQM3NzYFNzc3Bzg4OAk5OTgLOTk5DTo6 - Og87OzoQOzs6ETs7OxI7OzsTPDw7Ezs7OxI7OzsROzs6EDo6Og85OTkNOTk4Czg4OAk3NzcHNzc2BTY2 - NgM1NTUCNTU0AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzAjMzMwQ0NDQHNTU1CzY2Ng83NzYUODg3GDg4 - OB05OTghOjo5JTo6OSk6OjorOzs7LTs7Oi87OzovPDw7Lzs7Oi87OzotOzs6Kzo6OSk5OTklOTk5Ijg4 - OB04ODcZNzc2FDY2Ng81NTULNDQ0BzQ0MwQzMzMCMjIyAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQEyMjIEMzMzCTMzMw80NDQXNTU1HzY2 - Nig3NzYwODg3ODg4OD85OTlFOjo5Sjo6Ok87OzpSOzs7VDs7O1Y8PDtXPDw7Vzs7O1Y7OztVOzs6Ujo6 - Ok86OjlLOTk5RTg4OEA4ODc5Nzc3MTY2Nig1NTUgNDQ0FzQ0Mw8zMzMJMjIyBDExMQEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAjIyMgYyMjIOMzMzGjQ0 - NCc1NTQ0NTU1QTY2Nk03NzdXODg4YDk5OGc6OjltOjo6cjs7OnY7Ozt4PDw7ejw8PHw9PTx8PT08fDw8 - PHw8PDt7PDw7eTs7OnY6OjpyOjo5bjk5OGg4ODhhNzc3WDY2Nk42NjVCNTU0NTQ0NCczMzMaMjIyDzIy - MgcyMjICAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTECMjIyBzEx - MRIyMjIiMzMzNTQ0NEg1NTRaNjY1aDY2NnM3Nzd8ODg4gj4+PopTU1OaaGhorHl5eLp/f3/GhoaGzoiI - h9OHh4fWhISE1n9/f9N6enrOcnJyxmxsa7teXl6tTk5Omz4+PYs4ODiDNzc3fDc3NnM2NjZpNTU1WjQ0 - NEozMzM2MjIyIzExMRMyMjIIMTExAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAw - MAExMTEFMjIyEDExMSMyMjI8MzMzVjQ0NGw1NTV8NjY2h2BgYKKbm5vGyMjI4t/f3/fe3t7+1dXV/8vL - y/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6wsLD+tra2/rW1tfijo6Pkg4ODx1lZ - WaQ3NzaINTU1fDQ0NG0zMzNYMjIyPjExMSQyMjIRMTExBTExMQEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAADIyMgIyMjIJMjIyGjIyMjYyMjJXMzMzdDw8PIuDg4O91tbW7fj4+P/9/f3/9/f3/+rq - 6v/f39//1dXV/8vLy//CwsL/urq6/7Ozs/+urq7/qamp/6ampv+kpKT/p6en/6urq/+wsLD/t7e3/7y8 - vP/CwsL/ysrK/9DQ0P+0tLTvbm5uwDo6Oo0zMzN1MjIyWTIyMjkyMjIcMjIyCjIyMgIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQMxMTENMjIyIzExMUUyMjJpWlpansnJye7p6en/8fHx/vj4 - +P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6ur - q/6wsLD+t7e3/7y8vP7CwsL/ysrK/tDQ0P7Gxsb/srKy/pSUlPBNTU2jMjIyazExMUcyMjIlMTExDjEx - MQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMQMxMTEOMjIyJjExMUlTU1OH0tLS+eHh - 4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/6Wl - pf6kpKT+p6en/6urq/6wsLD+t7e3/7y8vP7CwsL/ysrK/tDQ0P7Gxsb/srKy/p+fn/6Li4v7RkZGjzEx - MUwyMjIoMTExDzExMQMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgIyMjIMMjIyITIy - MkGdnZ3H2NjY/+Hh4f/p6en/8fHx//j4+P/9/f3/9/f3/+rq6v/f39//1dXV/8vLy//CwsL/urq6/7Oz - s/+urq7/qamp/6ampv+kpKT/p6en/6urq/+wsLD/t7e3/7y8vP/CwsL/ysrK/9DQ0P/Gxsb/srKy/6Cg - oP+NjY3/aWlp0DIyMkMyMjIjMjIyDTIyMgMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEx - MQExMTEHMjIyFzExMTCoqKjQ2NjY/+Hh4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vL - y/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6wsLD+t7e3/7y8vP7CwsL/ysrK/tDQ - 0P7Gxsb/srKy/p+fn/6NjY3/cHBw2TExMTIyMjIYMTExCDExMQIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAyMjIEMjIyDDIyMh2oqKjJ2NjY/+Hh4f/p6en/8fHx//j4+P/9/f3/9/f3/+rq - 6v/f39//1dXV/8vLy//CwsL/urq6/7Ozs/+ura3/qamp/6ampv+kpKT/p6en/6urq/+wsLD/t7e3/7y8 - vP/CwsL/ysrK/9DQ0P/Gxsb/srKy/6CgoP+NjY3/cnJy0zIyMh4yMjINMjIyBDIyMgEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxMTEBMjIyBTU1NQ2oqKjE2NjY/+Hh4f7p6en/8fHx/vj4 - +P78/Pz+7Ozr/9XU0/7Ew8H+uri2/7Owrv6vrKr+rquo/62qp/6tqqf+raqn/62qp/6tqqf+raqn/62q - qP6urKr+srCu/7e2tf6/v77/ycnJ/tDQ0P7Gxsb/srKy/p+fn/6NjY3/c3NzzzMzMw40NDQFMTExAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0AXNzcwS3t7fB2NjY/+Hh - 4f7p6en/4uHg/s7Myv66uLX+sa6r/7Guq/6xrqv+sa6r/7Guq/6xrqv+sa6r/7Guq/6xrqv+sa6r/7Gu - q/6xrqv+sa6r/7Guq/6xrqv+sa6r/7Guq/6xrqv/tLGv/r68uv7Av77/srKy/p+fn/6NjY3/d3d3zFlZ - WQQ8PDwBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALGx - sQHMzMy/2NjY/9XU0/7Avbv/tbKv/rWyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wy - r/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq//tbKv/rWyr/61sq//tLKv/qWl - pP6NjY3/enp6y3R0dAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADOzs6/x8XE/7m3tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2tP+5trT/uba0/7m2 - tP+5trT/uba0/7m2tP+mpaP/fHx8ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHxcS/vru4/727uP6+u7j/vbu4/r27uP69u7j+vru4/767 - uf7Bv7z+w8G//8LAv/6/vbz+u7q4/7e2tP60srH+sbCu/6+urP6vrqz+srGv/7G0r/6rtqz+prep/664 - rv65urX/vbu4/r27uP6+u7j/vbu4/r27uP6+u7j/mJeWywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADEwr+9xcPA/8K/vP7Cv7z/wr+8/svJ - xv7d3Nr+5+bl/+fm5v7f397+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/5Smm/5spoH+Tadu/zyo - ZP44qGH+OKhh/zioYf4/qWb/Wq13/oe1lf65vbf/wr+8/sK/vP7Ewr//ube0ygAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADHxcKC09HP/8jG - w//U0tD/6eno//j4+P/9/f3/9/f3/+rq6v/f39//1dXV/8vLy//CwsL/urq6/7Ozs/+mran/haiS/3Gn - hf9rpoH/Tqdv/zioYf84qGH/OKhh/zioYf84qGH/OKhh/zioYf9AqWb/hLaU/8PDv//T0c//xMO/kQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADPzswK0tHPyuDf3/7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Oz - s/6urq7+qamp/6Wlpf6kpKT+pqem/3ypjf47qGL+OKhh/zenYP44qGH/N6dg/jenYP44qGH/N6dg/lau - dv6svrDVn7ynDwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADS0dEt2NjY8eHh4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vL - y/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6LrZj+PKhj/zenYf44qGH/N6dh/jen - Yf44qGH/N6dh/jenYf4/pWT0Wql3OgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NCm2NjY/+Hh4f/p6en/8fHx//j4+P/9/f3/9/f3/+rq - 6v/f39//1dXV/8vLy//CwsL/urq6/7Ozs/+urq7/qamp/6ampv+kpKT/p6en/6urq/+wsLD/k7Kf/z2r - aP84qmX/OKpl/ziqZf84qmX/OKpl/ziqZf84qmX/OKpl6zmqaCsAAAAAAAAAAAAAAAA3rGkZN6tmmDer - ZysAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh4f7p6en/8fHx/vj4 - +P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6ur - q/6wsLD+t7e3/5O3ov5FtHf/OK5s/jeta/43rWv/N61r/jeta/43rWv/N61r/jeta903r20WAAAAADau - bUc3rWvlN61r/jeta1UAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh - 4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6ura3+qamp/6Wl - pf6kpKT+p6en/6urq/6wsLD+t7e3/7y8vP6Ku6H/SbuB/jexcf43sXD/NrFw/jaxcP43sXD/NrFw/jax - cP43sXG2NrFxhzaxcPs3sXD/NrFw/jawbzgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADQ0NC/2NjY/+Hh4f/p6en/8fHx//j4+P/8/Pz/7u3t/9bW1P/GxcP/u7m3/7WysP+xrqv/r6yp/66r - qP+uq6j/rquo/66rqP+uq6j/rquo/66sqf+vrav/s7Gv/7i3tv/Av7//db6a/0m+hf83s3b/N7N2/zez - dv83s3b/N7N2/zezdv83s3b/N7N2/zezdv83s3b/N7N2/DazdBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh4f7p6en/4+Li/tDOzf68urf+sq+s/7Guq/6xrqv+sa+s/7Gu - q/6xrqv+sa+s/7Guq/6xrqv+sa+s/7Guq/6xrqv+sa+s/7Guq/6xrqv+sa+s/7Guq/6xr6z/r7Gs/li8 - jv4/u4L/NrZ6/ja2ev42t3r/NrZ6/ja2ev42t3r/NrZ6/ja2ev42t3r/NrZ68ja1eQcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/9XU1P7Avrz/tbKv/rWyr/61sq/+tbKv/7Wy - r/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wyr/61sq/+tbKv/7Wy - r/61sq//tbKv/pS0ov5NxJH/Nbl//jW5f/42uX//Nbl//jW5f/42uX//Nbl//jW5f/42uX//Nbl/2wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs6/x8XE/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1 - sv+4tbL/uLWy/7i1sv+4tbL/uLWy/7i1sv9jvpf/RcOP/za7g/82u4P/NruD/za7g/82u4P/NruD/za7 - g/82u4P/NruDvQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFxMO/u7i2/7u4 - tf67uLb/u7i1/ru4tf67uLX+u7i2/7u5tv6+vLn+wb68/8C+vf6+vLr+uri3/7a1s/6zsbD+sK+t/66t - rP6uraz+sbCu/7Wzsf64trT+uri1/7u4tf67uLb/u7i1/ru4tf51u53/P8KO/jW9hv41vYf/Nb2G/jW9 - hv41vYf/Nb2G/jW9hv42vof/Nr6HnwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADBv7y8wsC9/768uf6+vLn/vry5/sfFwv7a2Nf+5eTj/+bm5f7e3t7+1dXV/8vLy/7CwsL+urq6/7Oz - s/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6wsLD+t7e2/7y8vP7BwL//vMG9/mm+nP41v4r/NL+K/jS/ - iv41v4r/NL+K/jS/iv41v4r/NL+K/jS/iv48w4//N8CLgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADDwL580M7M/8PBvv/Qzs3/5+fm//j4+P/9/f3/9/f3/+rq6v/f39//1dXV/8vL - y//CwsL/urq6/7Ozs/+urq7/qamp/6ampv+kpKT/p6en/6urq/+wsLD/t7e3/7y8vP+pwrn/TMKW/zXB - jP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP81wYz/NcGM/zXBjP9Bx5b/OcKPYgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMy8kHzs3Lwd/f3v7p6en/8fHx/vj4+P79/f3+9vb2/+rq - 6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6wsLD+t7e3/668 - t/4/w5T/OsSS/jfDkP41wo7/NMKO/jTCjv41wo7/NMKO/jTCjv41wo7/NMKO/jTCjv5Gypv/PMWURAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADR0NAq2NjY8OHh4f/p6en/8fHx//j4 - +P/9/f3/9/f3/+rq6v/f39//1dXV/8vLy//CwsL/urq6/7Ozs/+urq7/qamp/6ampv+kpKT/p6en/6ur - q/+wsLD/t7e3/7q8u/+PwrD/eser/2rKqP9VyaD/RMma/0TKm/9Gy53/SMue/0XKm/89xpb/NcOQ/zbD - kf9NzqH/P8eXIgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NCk2NjY/+Hh - 4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Ozs/6urq7+qamp/6Wl - pf6kpKT+p6en/6urq/6wsLD+t7e3/7y8vP7CwsL/ysrK/tDQ0P7Gxsb/r7Oy/o6mnf5xno7/WJ+F5EPA - lKBGyZzGTc6i60/Oo/Q9xpWTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADQ0NC/2NjY/+Hh4f7p6en/8fHx/vj4+P79/f3+9vb2/+rq6v7f39/+1dXV/8vLy/7CwsL+urq6/7Oz - s/6urq7+qamp/6Wlpf6kpKT+p6en/6urq/6wsLD+t7e3/7y8vP7CwsL/ysrK/tDQ0P7Gxsb/srKy/p+f - n/6NjY3/eXx7ywAAAAAAAAAARMmaA0LImQwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh4f/p6en/8fHx//j4+P/9/f3/9/f3/+rq6v/f39//1dXV/8vL - y//CwsL/urq6/7Ozs/+urq7/qamp/6ampv+kpKT/p6en/6urq/+wsLD/t7e3/7y8vP/CwsL/ysrK/9DQ - 0P/Gxsb/srKy/6CgoP+NjY3/e3t7ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh4f7p6en/8fHx/vj4+P78/Pz+7+/u/9jX - 1v7HxsT+vLq4/7WzsP6xrqz+r6yp/66rqP6uq6j+rquo/66rqP6tq6j+rauo/66rqf6vrav+s7Gw/7i3 - tv7AwL//ysrK/tDQ0P7Gxsb/srKy/p+fn/6NjY3/e3t7ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/+Hh4f7p6en/5eTk/tLR - z/6/vbr+tLGu/7Owrf6zsK3+s7Ct/7Owrf6zsK3+s7Ct/7Owrf6zsK3+s7Ct/7Owrf6zsK3+s7Ct/7Ow - rf6zsK3+s7Ct/7Owrf6zsK3/t7Sy/sC/vf7BwcD/srKy/p+fn/6NjY3/e3t7ywAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NC/2NjY/9fX - 1v/EwsD/uba0/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1 - s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/uLWz/7i1s/+4tbP/t7Sz/6alpP+NjY3/e3t7ywAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADPz8+/ysnI/767uf6+u7n/vru5/r67uf6+u7n+vru5/767uf6+u7n+vru5/767uf6+u7n+vru5/767 - uf6+u7n+vru5/767uf6+u7n+vru5/767uf6+u7n+vru5/767uf6+u7n/vru5/r67uf6+u7n/vru5/r67 - uf6npaT/fHx8ywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADKyci/w8C+/8PAvv7DwL7/w8C+/sPAvv7DwL7+w8C+/8PAvv7DwL7+w8C+/8PA - vv7DwL7+w8C+/8PAvv7DwL7+w8C+/8PAvv7DwL7+w8C+/8PAvv7DwL7+w8C+/8PAvv7DwL7/w8C+/sPA - vv7DwL7/w8C+/sPAvv7DwL7/mZiXywAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADMyse80s/N/8nGxP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nG - xP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nG - xP/JxsT/ycbE/8nGxP/JxsT/ycbE/8nGxP/Pzcv/wL27yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQzsx14+Lh/9LQzv7PzMr/z8zK/s/M - yv7PzMr+z8zK/8/Myv7PzMr+z8zK/8/Myv7PzMr+z8zK/8/Myv7PzMr+z8zK/8/Myv7PzMr+z8zK/8/M - yv7PzMr+z8zK/8/Myv7PzMr/z8zK/s/Myv7PzMr/z8zK/tHPzf7j4uH/z83LhQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADX1dQF2NbUp+no - 6P7f3dz/1dLQ/tTRz/7U0c/+1NHP/9TRz/7U0c/+1NHP/9TRz/7U0c/+1NHP/9TRz/7U0c/+1NHP/9TR - z/7U0c/+1NHP/9TRz/7U0c/+1NHP/9TRz/7U0c//1NHP/tTRz/7U0tD/3tza/uno6P7Z19W02NbVCAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA3dzaAt3b2WHl5OPh7Ozr/+Xj4v/d29n/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW - 1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/2dbU/9nW1P/Z1tT/3drZ/+Tj4v/s6+v/5uXk6N3b - 2Wne3NsEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADj4eAG4uHfVufl5LDr6+rx7u7t/+vq6f7n5uX+5OLh/+Lg - 3v7g3tz+393b/9/c2v7f3Nr+39za/9/c2v7f3dv+4N7c/+Lg3v7k4uH+5+Xk/+vq6f7u7e3/7Ovq8+fm - 5LTj4d9c4+LhBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADo5uUL5+blPejn - 5nTq6eih7Ovqx+3s6+Pu7e3z7+7u/u/u7v7v7+7+7+/u/+/u7v7v7u7+7u7t8+3s7OTs6+rJ6unoo+jn - 5nbn5uRB6OfmDQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAOvq6QLr6uoK6+rpEevq6Rvr6ekj6+rpJOvq6Rvr6ukS7OrqCuvq - 6QIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA/+AAAAf/AAD/gAAAAP8AAP4AAAAAfwAA/AAAAAA/AAD4AAAAAB8AAPAA - AAAADwAA8AAAAAAPAADwAAAAAA8AAPAAAAAADwAA8AAAAAAPAADwAAAAAA8AAPgAAAAADwAA+AAAAAAf - AAD8AAAAAD8AAP4AAAAAfwAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8A - AAAA/wAA/wAAAABxAAD/AAAAACEAAP8AAAAAAQAA/wAAAAABAAD/AAAAAAEAAP8AAAAAAwAA/wAAAAAD - AAD/AAAAAAMAAP8AAAAAAwAA/wAAAAADAAD/AAAAAAMAAP8AAAAAAwAA/wAAAAAHAAD/AAAAAM8AAP8A - AAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/AAD/AAAAAP8AAP8AAAAA/wAA/wAAAAD/ - AAD/AAAAAP8AAP+AAAAB/wAA/+AAAAf/AAD//AAAP/8AAP//4Af//wAAKAAAACAAAABAAAAAAQAgAAAA - AACAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzMzMCNTU1BDY2 - Ngc3NzcLODg4Dzk5ORM6OjoWOzs6GDs7Oxk7OzsZOzs7GDo6OhY5OTkTOTk4Dzg4Nws2NjYINTU1BDQ0 - NAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAyMjICMzMzCDQ0 - NBE1NTUcNzc2Jzg4NzE5OTg7Ojo5Qjs7Okc7OztLPDw7TTw8O007OztLOzs6SDo6OUI5OTk7ODg3Mjc3 - Nic2NjUcNDQ0ETMzMwgyMjIDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyBDIy - MhAzMzMkNDQ0OjY2NU43NzdeODg4azk5OXQ7Ozp6PDw8f0RERIdISEiNSEhHjUNDQ4c8PDx/Ozs6ezo6 - OXQ4ODhrNzc3XzY2Nk80NDQ7MzMzJTIyMhEyMjIFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIy - MgMyMjIRMjIyLzMzM1M1NTRwPDw7hHBwcKmdnZ3Jtra14MHBwfHCwsL8uLi4/6+vr/+oqKj/pKSk/6am - pv2ioqLxmJiY4YODg8pjY2OrOzs7hTU1NHEzMzNVMjIyMTIyMhIyMjIDAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAMjIyCDIyMiQyMjJUPT09g5WVlcnn5+f3/Pz8//Pz8//i4uL/0tLS/8TExP+4uLj/r6+v/6io - qP+kpKT/qKio/6+vr/+4uLj/wcHB/8zMzP/CwsL4eXl5yzs7OoYyMjJWMjIyJjIyMggAAAAAAAAAAAAA - AAAAAAAAAAAAABkZGQEyMjILMjIyLkBAQHDExMTt5+fn//Pz8//8/Pz/8/Pz/+Li4v/S0tL/xMTE/7i4 - uP+vr6//qKio/6SkpP+oqKj/r6+v/7i4uP/BwcH/zMzM/8rKyv+urq7/h4eH7zs7O3UyMjIwMjIyCx8f - HwEAAAAAAAAAAAAAAAAAAAAAAAAAADIyMggyMjImfHx8ntra2v/n5+f/8/Pz//z8/P/z8/P/4uLi/9LS - 0v/ExMT/uLi4/6+vr/+oqKj/pKSk/6ioqP+vr6//uLi4/8HBwf/MzMz/ysrK/66urv+RkZH/WFhYpTIy - MigyMjIJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMjIyAzIyMhOBgYGU2tra/+fn5//z8/P//Pz8//Pz - 8//i4uL/0tLS/8TExP+4uLj/r6+v/6ioqP+kpKT/qKio/6+vr/+4uLj/wcHB/8zMzP/Kysr/rq6u/5GR - kf9cXFycMjIyFDIyMgQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOTk5BYSEhIba2tr/5+fn//Ly - 8v/r6+r/1NLR/8C+vP+1s7D/sK2q/66rqP+uq6j/rquo/66rqP+uq6j/r6yq/7Kwrv+5t7b/xsXE/8nJ - yf+urq7/kZGR/2BgYI45OTkGMDAwAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwcHBgNnZ - 2f/Qz87/vLm3/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/trOx/7Cvrv+SkpL/eHh4iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADMzMt/wL68/7q4tf+6uLX/uri1/7q4tf+6uLX/uri1/7q4tf+6t7X/ube0/7m2tP+5t7T/uri1/7q4 - tf+6uLX/uri1/7q4tf+6uLX/uri1/7Kwrf+GhoWHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMXDwX7CwL3/wb67/8K/vP/Qzsz/2tjX/9fX1v/Pz8//xMTE/7i4uP+vr6//pqin/4Wl - kf9oqH//Wqt3/1asdf9jrn3/g7OS/7O7sv/Bvrv/wr+9/7GvrYcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAycbEPtHPzfzX1tX/7+/v//z8/P/z8/P/4uLi/9LS0v/ExMT/uLi4/6yv - rf+MqJb/gKWN/2Kne/84qGH/OKhh/zioYf84qGH/O6hj/3m0jf/KzMj+vsG7RwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0M8U2dnZ4+fn5//z8/P//Pz8//Pz8//i4uL/0tLS/8TE - xP+4uLj/r6+v/6ioqP+kpKT/qKio/4Kskf85qGL/OKhh/zioYf84qGH/OKhh/02obuhrroMZAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0HTa2tr/5+fn//Pz8//8/Pz/8/Pz/+Li - 4v/S0tL/xMTE/7i4uP+vr6//qKio/6SkpP+oqKj/r6+v/4uym/87rGn/N6tm/zerZv83q2b/N6tm/zir - Z9A3rGoOAAAAADetajo3q2ekAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQf9ra2v/n5+f/8/Pz//z8 - /P/z8/P/4uLi/9LS0v/ExMT/uLi4/6+vr/+oqKj/pKSk/6ioqP+vr6//uLi4/4q7of8/tXf/N7Bv/zew - b/83sG//N7Bv/zewcK83sHB5N7Bv+jawb9QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NB/2tra/+fn - 5//z8/P/7ezs/9XU0//CwL7/t7Sy/7GvrP+vrKn/r6yp/6+sqf+vrKn/r6yp/7Ctq/+zsa//ubi3/3S8 - mP89uHz/NrR3/za0d/82tHf/NrR3/za0d/82tHf/NrR2tgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ - 0H/Z2dn/0c/O/7y6t/+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sxrv+0sa7/tLGu/7Sx - rv+0sa7/rrGs/1O/j/82uH7/Nrh+/za4fv82uH7/Nrh+/za4fv82uH2XAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAzMvLf7+9u/+5trP/ubaz/7m2s/+5trP/ubaz/7m2s/+5trP/ubaz/7i1s/+3tbL/uLWz/7m2 - s/+5trP/ubaz/7m2s/+5trP/h7qj/0HBjf82vIT/NryE/za8hP82vIT/NryE/za8hHkAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADCwL5+v726/727uP++vLn/zcvJ/9jW1f/W1dT/z87O/8PDw/+4uLj/r6+v/6io - qP+kpKT/qaio/7GwsP+5uLf/vr28/6++tf9UvpT/Nb+J/zW/if81v4n/Nb+J/zW/if84wIv/N8CKWwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMXCwDrNy8n71NPS/+/u7v/8/Pz/8/Pz/+Li4v/S0tL/xMTE/7i4 - uP+vr6//qKio/6SkpP+oqKj/r6+v/7i4uP+YwLL/P8KR/zXBjf81wY3/NcGN/zXBjf81wY3/NcGN/z7F - lP87w5E8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAz87NEtjY2ODn5+f/8/Pz//z8/P/z8/P/4uLi/9LS - 0v/ExMT/uLi4/6+vr/+oqKj/pKSk/6ioqP+vr6//uLi4/4bCrP9kyKT/Tsec/z/Hlv9AyJj/QciZ/zvF - lP81w5D/RMqb/z3GlRwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADQ0NBz2tra/+fn5//z8/P//Pz8//Pz - 8//i4uL/0tLS/8TExP+4uLj/r6+v/6ioqP+kpKT/qKio/6+vr/+4uLj/wcHB/8zMzP/Kysr/qa+t/4Cb - kf9cn4e0SMSZfkvNoKRDyZp5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAANDQ0H/a2tr/5+fn//Pz - 8//8/Pz/8/Pz/+Li4v/S0tL/xMTE/7i4uP+vr6//qKio/6SkpP+oqKj/r6+v/7i4uP/BwcH/zMzM/8rK - yv+urq7/kZGR/3l/fIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA0NDQf9ra - 2v/n5+f/8/Pz/+7u7f/X1dT/w8G//7e1s/+yr6z/sK2q/6+sqf+vrKn/r6yp/6+sqf+wrav/s7Gv/7q5 - t//Hxsb/ysrK/66urv+RkZH/fHx8hwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADQ0NB/2dnZ/9PS0f/Avbz/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0sv+3tLL/t7Sy/7e0 - sv+3tLL/t7Sy/7e0sv+5t7X/srCv/5KSkv98fHyHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAM7NzX/Fw8H/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8 - uv+/vLr/v7y6/7+8uv+/vLr/v7y6/7+8uv+/vLr/tbKx/4aGhocAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAzMnIfsvJxv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jF - wv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/IxcL/yMXC/8jFwv/Kx8X/trSyhgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADRz802397d+dPQzv/Qzcv/0M3L/9DNy//Qzcv/0M3L/9DN - y//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0M3L/9DNy//Qzcv/0s/N/+De3fzQzsw/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADc2tlB5eTj1+Ti4f/c2dj/2NXT/9jV - 0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/2NXT/9jV0//Y1dP/3NnX/+Pi4f/m5OPc3dvZRgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADh394C5OPhSeno - 55zq6unc6ejn/ujn5v/m5eP/5ePi/+Xj4f/l4+H/5ePi/+bl4//o5+b/6ejn/urp6N7q6eie5ePiTOLg - 3wMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADp5+YP6ujnNevq6VDs6+pi7Ovqa+zr6mvs6+pj6+rpUOro5zbp5+YQAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD+AAB/+AAAH/AAAA/gAAAH4AAAB8AA - AAPgAAAH4AAAB/AAAAf4AAAf+AAAH/gAAB/4AAAf+AAAH/gAAAn4AAAB+AAAAfgAAAH4AAAB+AAAAfgA - AAH4AAAB+AAAA/gAAB/4AAAf+AAAH/gAAB/4AAAf+AAAH/wAAD/+AAB//+AH/ygAAAAYAAAAMAAAAAEA - IAAAAAAAYAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADIyMgM1NTUINzc3Djg4 - OBU6OjkaOzs6Hzs7OyE7OzohOzs6Hzo6ORs5OTgVNzc3DjY2NQgzMzMDAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAwMDADMjIyDTQ0NCA2NjU1Nzc3SDk5OFY6OjpgOzs7Zjw8O2k8PDtpOzs7Zjo6 - OmA5OTlXNzc3SDY2NjY0NDQhMjIyDjExMQMAAAAAAAAAAAAAAAAAAAAAAAAAAC0tLQIxMTETMjIyOjQ0 - NGJBQUCBdXV1qZSUk8agoKDZoKCg5JycnOqUlJTqjo6O5ImJidl+fn7HZmZlqj8/P4I0NDRjMzMzPDEx - MRQwMDACAAAAAAAAAAAAAAAAAAAAADExMQYyMjIuPDw8dJycnM3u7u76+vr6/+Xl5f7Q0ND/vr6+/7Cw - sP+np6f+paWl/66urv65ubn/xsbG/8bGxvt8fHzPOTk5dzExMTAyMjIHAAAAAAAAAAAAAAAAAAAAADEx - MQgyMjI0pqam0eXl5f719fX/+vr6/+Xl5f7Q0ND/vr6+/7CwsP+np6f+paWl/66urv65ubn/xsbG/8vL - y/6pqan/cnJy1jExMTYyMjIIAAAAAAAAAAAAAAAAAAAAADExMQMxMTEcwMDA5eXl5f709PT++vr6/uXl - 5f7Q0ND+vr6+/rCwsP6np6f+paWl/q6urv65ubn+xsbG/svLy/6pqan+f39/6jExMR0xMTEEAAAAAAAA - AAAAAAAAAAAAAAAAAABDQ0MGxMTE4OXl5f7m5uX/1dPS/7+9uv60sa7/sK2q/6+sqf+vrKn+r6yp/6+t - qv6zsK7/u7q4/8XEw/6pqan/gYGB5j8/PwYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAzs7N38LA - vv63tLL/t7Sx/7e0sf63tLH/t7Sx/7e0sf+3tLH+t7Sx/7e0sf63tLH/t7Sx/7e0sf6zsa//ioqK5QAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAw8G/3sC9uv7Cv73+0M7M/tHQzv7JyMf+vb28/rOy - sv6nq6f+hquT/nSuiP5xsIb+hLOT/q+6r/7Avbr+tbOw5AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAz83LldnY1/7z8vL/+vr6/+Xl5f7Q0ND/vr6+/6+wr/+Rp5n+gaaO/0qobP44qGH/OKhh/zqo - Yv51tIr/ucS5nQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NTUseXl5f719fX/+vr6/+Xl - 5f7Q0ND/vr6+/7CwsP+np6f+paWl/6WtqP5Rq3P/OKlj/zepY/44qWP/QqhpxjylZwoAAAAAN6tmLDan - ZAoAAAAAAAAAAAAAAAAAAAAA1NTU3+Xl5f719fX/+vr6/+Xl5f7Q0ND/vr6+/7CwsP+np6f+paWl/66u - rv6vuLP/VLaB/zevbv43r27/N69u/zevbqo3sG9yN69u+DaubCMAAAAAAAAAAAAAAAAAAAAA1NTU3+Xl - 5f7n5ub+1tTT/sC+vP61sq/+sa6r/rCtqv6wrar+sK2q/rCtq/6zsa/+pbes/ka6g/42tXj+NrV4/ja1 - eP42tXj+NrV4+zChaggAAAAAAAAAAAAAAAAAAAAAz8/O38G/vf62s7H/trOx/7azsP62s7H/trOx/7az - sf+2s7D+trOx/7azsP62s7H/trOx/3+7n/45vIT/NrqB/zW6gf42uoH/NrqB5QAAAAAAAAAAAAAAAAAA - AAAAAAAAwb+83r26t/6/vLn+zcvJ/s/Ozf7Ix8b+vby7/rKysf6rqqr+q6qp/rKxsP66ubf+vby6/nS8 - nv43v4r+Nb6I/jW+iP41voj+OL+KxwAAAAAAAAAAAAAAAAAAAAAAAAAAy8nHkdfW1f7y8vL/+vr6/+Xl - 5f7Q0ND/vr6+/7CwsP+np6f+paWl/66urv62ubj/XMOd/zXCjv41wY3/NcGN/zTBjf41wY3/P8aVqQAA - AAAAAAAAAAAAAAAAAAAAAAAA1NTUr+Xl5f719fX/+vr6/+Xl5f7Q0ND/vr6+/7CwsP+np6f+paWl/66u - rv65ubn/pcW6/5XKt/5xu6H/VrWT+EPGmNlCyZn3Q8mabQAAAAAAAAAAAAAAAAAAAAAAAAAA1NTU3+Xl - 5f709PT++vr6/uXl5f7Q0ND+vr6+/rCwsP6np6f+paWl/q6urv65ubn+xsbG/svLy/6pqan+g4SE5QAA - AAAyoXoDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1NTU3+Xl5f7o6Of/2NbV/8G/vf62s7H/sa+s/7Cu - q/+wrqv+sK2r/7GurP60srD/vby6/8bFxf6pqan/hISE5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA0NDP38bEwv67uLb/u7i2/7u4tv67uLb/u7i2/7u4tv+7uLb+u7i2/7u4tv67uLb/u7i2/7u4 - tv62tLL/i4qK5QAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy8jH3sbDwf7Gw8H+xsPB/sbD - wf7Gw8H+xsPB/sbDwf7Gw8H+xsPB/sbDwf7Gw8H+xsPB/sbDwf7Gw8H+u7m35AAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA2dfViNrY1/7Sz83/0c7M/9HOzP7Rzsz/0c7M/9HOzP/Rzsz+0c7M/9HO - zP7Rzsz/0c7M/9HOzP7a2Nb/2dfVkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAOHf - 3lLn5eTB5OLh++Hf3v7e3Nr/3drY/9zZ1//c2df+3drY/97c2v7h397/5OLh/Obl5MPi4N9Wy8nIAQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA393cEuno5kXs6+pr7ezrg+3s - 64/t7OuP7ezrg+zr6mzp6OdG4+LgEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD4AB8A4AAHAMAA - AwDAAAMAwAADAMAAAwDgAAcA8AAPAPAADwDwAA8A8AAEAPAAAADwAAAA8AABAPAAAQDwAAEA8AABAPAA - CwDwAA8A8AAPAPAADwDwAA8A+AAPAP4AfwAoAAAAEAAAACAAAAABACAAAAAAAEAEAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAMDAwBzY2NhM4ODgiOjo6LDs7OzI7OzsyOjo6LTg4OCI2NjYUMTExBwAA - AAAAAAAAAAAAAAAAAAAaGhoBMjIyFTQ0NEhGRkZ3cXFxon5+frp9fX3EdnZ2xHBwcLpjY2OjQ0NDdzQ0 - NEkyMjIWHh4eAQAAAAAAAAAAJSUlBTU1NUWfn5/O9PT0/evr6//Ly8v/s7Oz/6ampv+rq6v/vLy8/8nJ - yf16enrPNDQ0SCgoKAUAAAAAAAAAACMjIwNYWFhb4eHh//f39//r6+v/y8vL/7Ozs/+mpqb/q6ur/7y8 - vP/Ly8v/oKCg/0ZGRl8nJycDAAAAAAAAAAAAAAAAdHR0Q9va2v/T0tD/v726/7Owrv+xrqv/sa6r/7Gu - rP+1srD/vr27/6CgoP9YWFhHAAAAAAAAAAAAAAAAAAAAAIqJiD+/vbr/wr+8/8nHxv/CwL//t7W0/6eu - qP+OsZj/jLKX/6q3q/+8ubb/eXh3QwAAAAAAAAAAAAAAAAAAAACMiokU2tnY9/b29v/r6+v/y8vL/7Oz - s/+Wppz/camF/zioYf84qGH/crSJ+XaaghgAAAAAAAAAAAAAAAAAAAAAjo6OPeHh4f/39/f/6+vr/8vL - y/+zs7P/pqam/6urq/+CtJf/Oa9t/zeta/83rmyjN69tazeta14AAAAAAAAAAI6Ojj/b2tr/1NLR/8C9 - u/+0sa7/sa+s/7GurP+xr6z/tbOw/2y5lP82tnr/NrZ6/za2ev8xpm5TAAAAAAAAAACJiIc/vbu4/7+8 - uv/IxsT/wb++/7a0s/+vrqz/s7Gw/7q4tv+Ru6j/OL+J/zW9hv82vof/K5ZqNQAAAAAAAAAAiomIE9jX - 1/b29vb/6+vr/8vLy/+zs7P/pqam/6urq/+jvLP/ScSX/zrEkv85xJL/O8WT/yeEYhYAAAAAAAAAAI6O - jjzh4eH/9/f3/+vr6//Ly8v/s7Oz/6ampv+rq6v/vLy8/8vLy/+aop//W5yFbjmvhkcAAAAAAAAAAAAA - AACOjo4/29vb/9bU0//CwL7/trOx/7Owrv+zsK3/s7Cu/7e1s//Av73/oaCg/2NjY0MAAAAAAAAAAAAA - AAAAAAAAjIyLP8bDwf/DwL7/w8C+/8PAvv/DwL7/w8C+/8PAvv/DwL7/w8C+/8G/vf96enlDAAAAAAAA - AAAAAAAAAAAAAISDgg3d29rE2NXU/9TRz//U0c//1NHP/9TRz//U0c//1NHP/9jV1P/d29rHlpSTDwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMrJyDnp6Od66efmoOjn5rLo5+az6efmoeno53vPzsw6AAAAAAAA - AAAAAAAAAAAAAOAHAACAAQAAgAEAAIABAADAAwAAwAMAAMADAADAAAAAwAAAAMAAAADAAAAAwAEAAMAD - AADAAwAAwAMAAPAPAAA= - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertAlarms/App.config b/PROMS/BarakahConvert/ConvertAlarms/App.config deleted file mode 100644 index 21e3ff00..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/App.config +++ /dev/null @@ -1,36 +0,0 @@ - - - - -
- - - - - - - - - 1000, 600 - - - 0, 0 - - - - - - 250 - - - .\Sql2008Express - - - VEPROMS_Barakah - - - 0 - - - - diff --git a/PROMS/BarakahConvert/ConvertAlarms/ConvertAlarms.csproj b/PROMS/BarakahConvert/ConvertAlarms/ConvertAlarms.csproj deleted file mode 100644 index 12e0442d..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/ConvertAlarms.csproj +++ /dev/null @@ -1,145 +0,0 @@ - - - - - Debug - AnyCPU - {8185CA5B-2403-450A-9989-C7E4A2A5D7A1} - WinExe - Properties - ConvertAlarms - ConvertAlarms - v4.6.1 - 512 - - SAK - SAK - SAK - SAK - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - - - ..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll - - - False - ..\..\..\..\..\..\..\Program Files\DotNetBar for Windows Forms\DevComponents.DotNetBar2.dll - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS User Interface\bin\Debug\log4net.dll - - - - - - - - - - - - - - False - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\Volian.Base.Library.dll - - - ..\..\..\..\..\..\..\Development\Proms\Volian.Controls.Library\bin\Debug\Volian.Controls.Library.dll - - - - - Form - - - Form - - - frmConvertAlarms.cs - - - - - Form - - - frmConvertAlarms.cs - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - Designer - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertAlarms/ConvertTable.cs b/PROMS/BarakahConvert/ConvertAlarms/ConvertTable.cs deleted file mode 100644 index 2fe1e04e..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/ConvertTable.cs +++ /dev/null @@ -1,197 +0,0 @@ -using C1.Win.C1FlexGrid; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.Xml; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; - -namespace ConvertAlarms -{ - public partial class frmConvertAlarms - { - private static string GetTableText() - { - return _MyFlexGrid.GetSearchableText(); - } - private static void LoadTable2(XmlNode xn, StepLookup mySteps, int level) - { - XmlNode xn2 = xn.SelectSingleNode("tr/td/table"); - if (xn2 != null) xn = xn2; - VlnFlexGrid fg = _MyFlexGrid; - fg.Font = new Font("Arial", 11, FontStyle.Regular, GraphicsUnit.Point); - fg.Clear(); - fg.Rows.Count = 1; - fg.Cols.Count = 1; - int rows = 0; - fg.MergedRanges.Clear(); - foreach (XmlNode xr in xn.ChildNodes) - { - if (xr.Name == "tr") - { - ++rows; - AddTableRow(xr, fg, rows); - } - } - fg.MyBorders = new VlnBorders(GridLinePattern.Single, fg.Rows.Count, fg.Cols.Count); - fg.BringToFront(); - fg.Invalidate(); - Application.DoEvents(); - //ShowColumnWidths(fg); - fg.MakeRTFcells(false); - //ShowMergedCells(fg); - //ShowColumnWidths(fg); - //Well, Can I save the table - //using (Step step = MakeCSLAStep(mySteps, mySteps.Count, null, {TableContent}, 20008, E_FromType.Table)) - //{ - // Grid.MakeGrid(step.MyContent, fg.GetXMLData(), ""); - //} - } - public static VlnFlexGrid _MyFlexGrid = null; - private static void AddTableRow(XmlNode xr, VlnFlexGrid fg, int rows) - { - if (rows > fg.Rows.Count) - fg.Rows.Count = rows; - int cols = 0; - foreach (XmlNode xc in xr.ChildNodes) - { - ++cols; - //if (xc.InnerText.Contains("RC-V200")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerText.Contains("RC-V121")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerXml.Contains("AB 137") || xc.InnerXml.Contains("3013N01")) - // Console.WriteLine("here"); - CellRange cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - //Console.WriteLine("Check {0}", cr2); - while (cr2.c1 != cols - 1 || cr2.r1 != rows - 1) - { - cols++; - cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - } - AddMergedCells(fg, rows, cols, xc); - //ShowMergedCells(fg); - if (xc.Name == "td") - { - AddTableColumn(xc, fg, rows, cols); - } - } - } - - //private static void ShowColumnWidths(VlnFlexGrid fg) - //{ - // foreach (Column c in fg.Cols) - // Console.WriteLine("Width[{0}]={1}", c.Index, c.Width); - //} - private static void ShowMergedCells(VlnFlexGrid fg) - { - for (int r = 0; r < fg.Rows.Count; r++) - { - for (int c = 0; c < fg.Cols.Count; c++) - { - CellRange cr3 = GetMyMergedRange(fg, r, c); - if (fg.MergedRanges.Contains(cr3)) - Console.WriteLine("cr3 r={0},c={1},rng={2}", r, c, cr3); - } - } - } - private static int GetSpan(string span) - { - int retval = int.Parse("0" + (span ?? "")); - if (retval == 0) return 0; - return retval - 1; - } - private static string GetAttribute(XmlNode xc, string attName) - { - string retval = null; - XmlAttribute xa = xc.Attributes[attName]; - if (xa != null) - retval = xa.Value; - return retval; - } - private static void AddMergedCells(VlnFlexGrid fg, int rows, int cols, XmlNode xc) - { - string colspan = GetAttribute(xc, "colspan"); - string rowspan = GetAttribute(xc, "rowspan"); - if (colspan != null || rowspan != null) - { - //AddMergedRanges - int r1 = rows; - int c1 = cols; - int r2 = r1 + GetSpan(rowspan); - if (r2 > fg.Rows.Count) fg.Rows.Count = r2; - int c2 = c1 + GetSpan(colspan); - if (c2 > fg.Cols.Count) fg.Cols.Count = c2; - CellRange cr = new CellRange(); - cr.r1 = r1 - 1; - cr.r2 = r2 - 1; - cr.c1 = c1 - 1; - cr.c2 = c2 - 1; - fg.MergedRanges.Add(cr); - //Console.WriteLine("Merged {0}", cr); - } - } - - private static CellRange GetMyMergedRange(VlnFlexGrid fg, int r, int c) - { - foreach (CellRange cr in fg.MergedRanges) - { - if (cr.r1 <= r && cr.r2 >= r && cr.c1 <= c && cr.c2 >= c) - return cr; - } - return fg.GetMergedRange(r, c); - } - private static Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled); - private static void AddTableColumn(XmlNode xc, VlnFlexGrid fg, int rows, int cols) - { - //Console.WriteLine("Rows {0}, Cols {1}", rows, cols); - if (cols > fg.Cols.Count) - fg.Cols.Count = cols; - string width = GetAttribute(xc, "width"); - if (width != null && width != "" && regNumber.IsMatch(width)) - { - if (width.EndsWith("%")) - fg.Cols[cols - 1].Width = (int)(int.Parse(width.Replace("%", "")) * 96 * 6.5F / 100); - else - { - int w = int.Parse(width)*96/72; - //Console.WriteLine("w[{0}]={1}", cols - 1, w); - fg.Cols[cols - 1].Width = w; - } - } - StringBuilder sb = new StringBuilder(); - string prefix = ""; - foreach (XmlNode xn in xc.ChildNodes) - { - if (xn.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - if (xn.Name == "ul") - { - foreach (XmlNode xn2 in xn.ChildNodes) - { - if (xn2.Name == "li") - { - sb.Append(prefix + "*" + xn.InnerText); - } - if (xn2.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - } - } - } - if (width != null && width != "" && !regNumber.IsMatch(width)) - { - Console.WriteLine("width is not a number {0}, rows {1}, cols {2}, Text='{3}'", width, rows, cols, xc.OuterXml); - } - fg[rows - 1, cols - 1] = sb.ToString(); - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/Program.cs b/PROMS/BarakahConvert/ConvertAlarms/Program.cs deleted file mode 100644 index 8310498a..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace ConvertAlarms -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmConvertAlarms()); - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/Properties/AssemblyInfo.cs b/PROMS/BarakahConvert/ConvertAlarms/Properties/AssemblyInfo.cs deleted file mode 100644 index dac475e1..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ConvertAlarms")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ConvertAlarms")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("80225e3c-f32e-41b5-8b31-b8301eea4831")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.Designer.cs b/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.Designer.cs deleted file mode 100644 index 64b6e041..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ConvertAlarms.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ConvertAlarms.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.resx b/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.Designer.cs b/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.Designer.cs deleted file mode 100644 index ae4e7496..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.Designer.cs +++ /dev/null @@ -1,110 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ConvertAlarms.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("1000, 600")] - public global::System.Drawing.Size Size { - get { - return ((global::System.Drawing.Size)(this["Size"])); - } - set { - this["Size"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] - public global::System.Drawing.Point Location { - get { - return ((global::System.Drawing.Point)(this["Location"])); - } - set { - this["Location"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string FileName { - get { - return ((string)(this["FileName"])); - } - set { - this["FileName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("250")] - public int Split1 { - get { - return ((int)(this["Split1"])); - } - set { - this["Split1"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute(".\\Sql2008Express")] - public string SqlServer { - get { - return ((string)(this["SqlServer"])); - } - set { - this["SqlServer"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("VEPROMS_Barakah")] - public string Database { - get { - return ((string)(this["Database"])); - } - set { - this["Database"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int ProcedureSet { - get { - return ((int)(this["ProcedureSet"])); - } - set { - this["ProcedureSet"] = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.settings b/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.settings deleted file mode 100644 index 0db0a3a8..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/Settings.settings +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - 1000, 600 - - - 0, 0 - - - - - - 250 - - - .\Sql2008Express - - - VEPROMS_Barakah - - - 0 - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertAlarms/Properties/licenses.licx b/PROMS/BarakahConvert/ConvertAlarms/Properties/licenses.licx deleted file mode 100644 index c4eba94b..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/Properties/licenses.licx +++ /dev/null @@ -1 +0,0 @@ -C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da diff --git a/PROMS/BarakahConvert/ConvertAlarms/SaveProcedure.cs b/PROMS/BarakahConvert/ConvertAlarms/SaveProcedure.cs deleted file mode 100644 index 5ae74478..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/SaveProcedure.cs +++ /dev/null @@ -1,517 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using log4net; -using Volian.Controls.Library; -using C1.Win.C1FlexGrid; -using System.Data.SqlClient; - -namespace ConvertAlarms -{ - public partial class frmConvertAlarms : Form - { - //private void SaveProcedure(string text, string procNumber, string procTitle, int serialNo) - private static DocVersionInfo DVI; - private void SaveProcedure(string text, string procNumber, string procTitle, string fileName) - { - MatchCollection mc = Regex.Matches(text, "pNote"); - if (mc.Count > 1) Console.WriteLine("-------> {0} Notes", mc.Count); - // Add Procedure Number and Title - ItemInfo prev = null; - //if (serialNo == 999999) - prev = DVI.MyItem == null ? null : DVI.MyItem.LastSibling; //FindLocation(DVI.MyItem,procNumber); - //else - //{ - // prev = FindPrevious(dicSerialNo, serialNo); - //} - using (Procedure prc = Procedure.MakeProcedure(DVI, prev, procNumber, procTitle, 0)) - { - MyLookUp = DVI.DocVersionAssociations[0].MyROFst.GetROFSTLookup(DVI); - if (MyLookUp.GetROIDByAccPagID("ALR-" + procNumber, "SP", "IG") == null) - { - prc.MyContent.Config = MakeConfig("", - prcSerialNoValue, prcTitleValue, prcNumberValue, prcSourceValue, prcSetpointValue, FullName.Substring(0, 13), FullName.Substring(14)); - Annotation.MakeAnnotation(prc, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Missing Referenced Object " + procNumber , null); - } - else - prc.MyContent.Config = MakeConfig("", - FullName.Substring(0, 13), FullName.Substring(14)); - prc.MyContent.Config = prc.MyContent.Config.Replace("<",string.Format("<",RevisionNumber)); - Annotation.MakeAnnotation(prc, AnnotationType.GetByNameOrCreate("Conversion Info"), null, GetAnnotationText(fileName), null); - - ProcedureInfo prci = ProcedureInfo.Get(prc.ItemID); - // dicSerialNo.Add(serialNo, prci); - // Console.WriteLine("{0},{1}", serialNo, prci.ShortPath); - // Add Section - using (Section sec = Section.MakeSection(prci, null, null, "Procedure Content", 10006)) - { - sec.SectionConfig.Section_ColumnMode = SectionConfig.SectionColumnMode.One; - sec.SectionConfig.Section_Pagination = SectionConfig.SectionPagination.Separate; - sec.Save(); - SectionInfo seci = SectionInfo.Get(sec.ItemID); - // TODO: Add High Level Steps - // TODO: Add Substeps - MemoryStream ms = GetMemoryStream(text); - Queue qread = new Queue(); - using (StreamReader sr = new StreamReader(ms)) - fillQueue(qread, sr); - - Dictionary lookup = new Dictionary(); - lookup.Add(0, prci); - lookup.Add(1, seci); - int level = 2; - int type = 20001; - int lastLevel = 2; - int lastType = 0; - int lastIndent = 0; - int extra = 0; - string lastTab = ""; - int? DeQueueType = null; - E_FromType myFromType = E_FromType.Step; - Queue enQueue = null; - Queue deQueue = null; - int deQueueLevel = 0; - int deQueueLevelLast = 0; - bool wasFromQueue; - bool firstQueue = false; - ItemInfo deQueueItem = null; - bool saveDeQueueInfo = false; - bool isTable = false; - bool lastWasTable = false; - string tableText = null; - string tab = ""; - bool strangeBullet = false; - while (qread.Count > 0 || deQueue != null) - { - string lineText; - tableText = null; - if (deQueue != null) - { - wasFromQueue = true; - extra = 1; - lineText = deQueue.Dequeue().Trim(); - if (deQueue.Count == 0) - deQueue = null; - if (Regex.IsMatch(lineText, "(NOTE|CAUTION|WARNING)")) - { - Console.WriteLine("Level {0} Type = {1}", deQueueLevel, DeQueueType); - switch (lineText) - { - case "": - DeQueueType = 20007; - break; - case "": - DeQueueType = 20006; - break; - case "": - DeQueueType = 20020; - break; - } - firstQueue = true; - lineText = "\t" + deQueue.Dequeue(); - while (deQueue.Count > 0 && deQueue.Peek().ToString().Trim().StartsWith("\u2022") == false && !Regex.IsMatch(deQueue.Peek(), "<(NOTE|CAUTION|WARNING)>")) - lineText += " " + deQueue.Dequeue(); - myFromType = E_FromType.Note; - } - if (deQueue.Count == 0) - { - deQueue = null; - } - } - else - { - wasFromQueue = false; - DeQueueType = null; - extra = 0; - //if (NextLine != null) - //{ - // lineText = NextLine; - // NextLine = null; - //} - //else - //{ - lineText = qread.Dequeue().TrimEnd(" ".ToCharArray()); - while (lineText.Trim() == "" || lineText.Trim() == "" || lineText.Trim() == "") - { - if (enQueue == null) enQueue = new Queue(); - lineText = qread.Dequeue().Trim(); - //Console.WriteLine("======> {0},Count Before = {1} ", lineText.Trim(), enQueue.Count()); - while (lineText != "" && lineText != "" && lineText != "") - { - enQueue.Enqueue(lineText.Trim()); - lineText = qread.Dequeue().Trim(); - } - lineText = qread.Dequeue().Trim(); - //Console.WriteLine("======> {0},Count After = {1} ", lineText.Trim(), enQueue.Count()); - } - if (lineText == ">") lineText = lineText.Replace(">", ""); - else lineText = lineText.Replace("<", "<").Replace(">", ">"); - //} - HasSpecialCharacters(lineText); - if (lineText.StartsWith("")) - { - while (!lineText.Contains("
")) - { - lineText += " " + qread.Dequeue(); - lineText = Regex.Replace(lineText, ".*", ""); - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(lineText); - LoadTable2(xd.DocumentElement, null, 0); - - isTable = true; - if (!lastWasTable) level = lastLevel + 1; - else level = lastLevel; - type = 20008; - tableText = GetTableText(); - //StringBuilder sbxml= new StringBuilder(); - //using(StringWriter sw = new StringWriter(sbxml)) - // _MyFlexGrid.WriteXml(sw); - //using(StringReader sr= new StringReader(sbxml.ToString())) - // _MyFlexGrid.ReadXml(sr); - //Application.DoEvents(); - } - else lineText = Regex.Replace(lineText, "<[^<>]+>", ""); - } - if (lineText.Replace("\t", "").Replace(" ", "") != "") - { - lastLine = lineText; - Match m = Regex.Match(lineText, @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*|[A-Z]\.|\u2022|)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline); - if (m.Groups[4].Value != "") - { - tab = m.Groups[2].Value; - int indent = m.Groups[1].Value.Length; - if (isTable) - { - // do nothing - if (lastWasTable) - level = lastLevel; - else - level = 1 + lastLevel; - type = 20008; - myFromType = E_FromType.Table; - } - else if (indent == 0 && tab.EndsWith(".0")) // High Level Step - { - level = 2; - type = 20002; - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*\\.[1-9][0-9]*")) // Sub-Substep - { - level = 4; - type = 20001; - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*")) // Substep - { - level = 3; - type = 20001; - } - else if (Regex.IsMatch(tab, "[A-Z]\\.")) // Sub-Substep - { - level = 5; - type = 20001; - } - else if (tab == "") // Paragraph - { - level = lastLevel + 1; - type = 20024; - } - else if (tab == "\u2022")//bullet - { - if (firstQueue) - level = lastLevel + 1; - else if (lastTab == "\u2022") - level = lastLevel; - else - if (lastType == 20007 && lastTab == "") - level = lastLevel + 1; - else - { - level = indent + 3; - strangeBullet = true; - } - type = 20004; - if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]")) - type = 20011; - } - else if (tab == "\u25CB")//bullet - { - level = indent + 4; - type = 20004; - if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]")) - type = 20011; - } - //while (level < lastLevel) - // lookup.Remove(lastLevel--); - if (firstQueue && deQueueLevelLast > 0) level = deQueueLevelLast+1; - while (level < lookup.Count - 1) - lookup.Remove(lookup.Count - 1); - lastTab = tab; - lastLevel = level; - //lastIndent = indent; - lastWasTable = isTable; - deQueueLevelLast = deQueueLevel; - } - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - saveDeQueueInfo = true; - enQueue = null; - } - int newType = DeQueueType ?? (isTable ? 20008 : type); - lastType = newType; - - if (enQueue == null) - { - if (lookup.Count < level) - { - using (Step stp = (lookup[lookup.Count - 1] as StepInfo).Get()) - { - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, GetAnnotationText2(lineText), null); - } - } - else if (lookup.Count == level) - { - using (Step stp = Step.MakeStep(lookup[level - 1], null, null, tableText ?? m.Groups[4].Value, newType, myFromType)) - { - if (strangeBullet) - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null); - ItemInfo myItem = StepInfo.Get(stp.ItemID); - if (isTable) - { - Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), ""); - String footnote = GetFootNote(ms, qread); - if (footnote.Length > 0) - Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step); - } - isTable = false; - //Console.WriteLine("+++B tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level); - lookup.Add(level, myItem); - //Console.WriteLine("+++A tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level); - if (saveDeQueueInfo) - { - deQueueLevel = level; - deQueueItem = lookup[level]; - saveDeQueueInfo = false; - } - if (firstQueue) firstQueue = false; - } - } - else - { - int previousType = ((int)lookup[level].MyContent.Type); - if (firstQueue && DeQueueType != null) - { - previousType = (int) DeQueueType; - level = deQueueLevel + 1; - } - using (Step stp = Step.MakeStep(lookup[level - 1], lookup[level], null, tableText ?? m.Groups[4].Value, previousType, myFromType)) - { - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, string.Format("Type Change {0} to {1}", newType, ((int)lookup[level].MyContent.Type)), null); - if (strangeBullet) - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null); - strangeBullet = false; - ItemInfo myItem = StepInfo.Get(stp.ItemID); - if (isTable) - { - Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), ""); - String footnote = GetFootNote(ms, qread); - if (footnote.Length > 0) - Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step); - } - isTable = false; - //Console.WriteLine(">>> tab = {0}, Lookup.Count = {1}, Level = {2}", tab, lookup.Count, level); - lookup[level] = myItem; - if (saveDeQueueInfo) - { - deQueueLevel = level; - deQueueItem = lookup[level]; - saveDeQueueInfo = false; - } - if (firstQueue) firstQueue = false; - } - } - myFromType = E_FromType.Step; - if (deQueue == null && deQueueItem != null) - { - level = deQueueLevel; - while (level < lookup.Count) - lookup.Remove(lookup.Count - 1); - lookup[level] = deQueueItem; - deQueueItem = null; - DeQueueType = null; - } - } - //else - //{ - // enQueue.Enqueue(lineText); - //} - DeQueueType = null; - } - } - } - } - if (runOne) MessageBox.Show("Done", "Converted"); - } - private ItemInfo FindLocation(ItemInfo myItem, string procNumber) - { - while (myItem != null) - { - if (myItem.DisplayNumber.CompareTo(procNumber) >= 0) - return myItem.MyPrevious; - myItem = myItem.NextItem; - } - return myItem; - } - private string MakeConfig(string fmt, params string [] args) - { - string [] atts = new string[args.Length]; - args.CopyTo(atts,0); - for(int i=0; i",">"); - return string.Format(fmt, atts); - } - - private void fillQueue(Queue qread, StreamReader sr) - { - while(sr.Peek() > 0) - qread.Enqueue(sr.ReadLine()); - } - //private string _NextLine; - - //public string NextLine - //{ - // get { return _NextLine; } - // set { _NextLine = value; } - //} - private string GetFootNote(MemoryStream ms, Queue qRead) - { - string sep = ""; - StringBuilder sb = new StringBuilder(); - int lineCount = 0; - string lookingFor = null; - while(qRead.Count > 0) - { - // Read a line at a time - string str = qRead.Peek(); - if(lineCount == 0 && str.StartsWith("

")) - { - lookingFor = "

"; - str = str.Replace("

", ""); - } - lineCount++; - str = Regex.Replace(str, "<[^<>]+>", "").Trim(" \t".ToCharArray()).Replace(">", ""); - str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u9679?"); - //str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u7?"); - // If Text begins with number then - if (lookingFor != null) - { - if (str.Contains(lookingFor)) - { - sb.Append(sep + str.Replace(lookingFor, "")); - return sb.ToString(); - } - } - else if (Regex.IsMatch(str, "[0-9].*") || str.StartsWith("")) - return sb.ToString(); - //append string - if (sb.ToString() != "" && str != "") - sep = "\r\n"; - sb.Append(sep + str); - qRead.Dequeue();// Remove current line from queue - } - return sb.ToString(); - } - - private void ProcessChars(string str) - { - foreach (char c in str) - { - if (c < 0x20 || c > 0x7F) - Console.WriteLine("{0:X4}", (int)c); - } - } - public void ResetSpecial() - { - FoundSpecial = new List(); - } - List FoundSpecial = new List(); - private void HasSpecialCharacters(string lineText) - { - StringBuilder sb = new StringBuilder(); - foreach (char c in lineText) - { - if ((c < 0x20 || c > 0x7F) && !FoundSpecial.Contains(c)) - { - Console.WriteLine("*** Special Character {0:X4}", (int)c); - FoundSpecial.Add(c); - } - } - } - - private static string GetAnnotationText(string fileName) - { - return string.Format("FileName:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}" , - fileName,ShortName,FullName,ApSystem,PNSNo ,RelatedFunction); - } - private static string GetAnnotationText2(string lineText) - { - //return string.Format("LineText:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}", - // lineText, ShortName, FullName, apSystem, PNSNo, RelatedFunction); - return string.Format("LineText:{0}", - lineText); - } - } - public class StepLookup : SortedDictionary - { - public StepInfo this[int i] - { - get - { - if (this.ContainsKey(i.ToString())) return base[i.ToString()]; - return null; - } - set - { - if (i > this.Count) - throw new Exception("Gap in Stack"); - if (value == null) - throw new Exception("Null StepInfo"); - //if (value.MyHLS.Ordinal==5 && (value.IsNote || value.IsCaution )) - // Volian.Base.Library.vlnStackTrace.ShowStackLocal(2,5,"=====> Adding Caution or Note on Step 5 {0}",value); - if (this.ContainsKey(i.ToString())) - { - base[i.ToString()] = value; - while (this.ContainsKey((i + 1).ToString())) - base.Remove((base.Count - 1).ToString()); - } - else base.Add(i.ToString(), value); - //ListMySteps("Set ", this); - } - } - public void AddOne(StepInfo previousStep) - { - this[this.Count] = previousStep; - } - private static void ListMySteps(string str, StepLookup mySteps) - { - int i = 0; - foreach (string key in mySteps.Keys) - { - if (key != i.ToString()) - Console.WriteLine("{0} {1} {2} {3}", str, i, key, mySteps[key].DisplayText); - i++; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.Designer.cs b/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.Designer.cs deleted file mode 100644 index e892e41a..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.Designer.cs +++ /dev/null @@ -1,499 +0,0 @@ -namespace ConvertAlarms -{ - partial class frmConvertAlarms - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.panel1 = new System.Windows.Forms.Panel(); - this.label1 = new System.Windows.Forms.Label(); - this.tbFileName = new System.Windows.Forms.TextBox(); - this.panel2 = new System.Windows.Forms.Panel(); - this.btnRun = new System.Windows.Forms.Button(); - this.btnBrowse = new System.Windows.Forms.Button(); - this.btnAll = new System.Windows.Forms.Button(); - this.label2 = new System.Windows.Forms.Label(); - this.btnConvert = new System.Windows.Forms.Button(); - this.label7 = new System.Windows.Forms.Label(); - this.tbServer = new System.Windows.Forms.TextBox(); - this.cmbDatabase = new System.Windows.Forms.ComboBox(); - this.label4 = new System.Windows.Forms.Label(); - this.cmbDocVersion = new System.Windows.Forms.ComboBox(); - this.label6 = new System.Windows.Forms.Label(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.sc1 = new System.Windows.Forms.SplitContainer(); - this.tcXML = new System.Windows.Forms.TabControl(); - this.tpXML = new System.Windows.Forms.TabPage(); - this.tbXML = new System.Windows.Forms.TextBox(); - this.tpColorCoded = new System.Windows.Forms.TabPage(); - this.rtbXML = new System.Windows.Forms.RichTextBox(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tpHTML = new System.Windows.Forms.TabPage(); - this.wb = new System.Windows.Forms.WebBrowser(); - this.tpRaw = new System.Windows.Forms.TabPage(); - this.tbPROMS = new System.Windows.Forms.TextBox(); - this.tpStructure = new System.Windows.Forms.TabPage(); - this.tv = new System.Windows.Forms.TreeView(); - this.tpGrid = new System.Windows.Forms.TabPage(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tspb = new System.Windows.Forms.ToolStripProgressBar(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.tmr = new System.Windows.Forms.Timer(this.components); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.sc1)).BeginInit(); - this.sc1.Panel1.SuspendLayout(); - this.sc1.Panel2.SuspendLayout(); - this.sc1.SuspendLayout(); - this.tcXML.SuspendLayout(); - this.tpXML.SuspendLayout(); - this.tpColorCoded.SuspendLayout(); - this.tabControl1.SuspendLayout(); - this.tpHTML.SuspendLayout(); - this.tpRaw.SuspendLayout(); - this.tpStructure.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Controls.Add(this.label1); - this.panel1.Controls.Add(this.tbFileName); - this.panel1.Controls.Add(this.panel2); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(954, 88); - this.panel1.TabIndex = 0; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(23, 13); - this.label1.TabIndex = 1; - this.label1.Text = "File"; - // - // tbFileName - // - this.tbFileName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbFileName.Location = new System.Drawing.Point(56, 6); - this.tbFileName.Name = "tbFileName"; - this.tbFileName.Size = new System.Drawing.Size(692, 20); - this.tbFileName.TabIndex = 0; - this.tbFileName.Text = "H:\\Barakah Alarms\\1N2-OP-ARP-CS-0001_Rev_02_FINAL_Zipped_XML_20190804\\ARP-3442-10" + - "01 CS CNMT Spray HDR Block VLV V0001 TRBL.xml"; - // - // panel2 - // - this.panel2.Controls.Add(this.btnRun); - this.panel2.Controls.Add(this.btnBrowse); - this.panel2.Controls.Add(this.btnAll); - this.panel2.Controls.Add(this.label2); - this.panel2.Controls.Add(this.btnConvert); - this.panel2.Controls.Add(this.label7); - this.panel2.Controls.Add(this.tbServer); - this.panel2.Controls.Add(this.cmbDatabase); - this.panel2.Controls.Add(this.label4); - this.panel2.Controls.Add(this.cmbDocVersion); - this.panel2.Controls.Add(this.label6); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(0, 0); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(954, 88); - this.panel2.TabIndex = 9; - // - // btnRun - // - this.btnRun.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnRun.Location = new System.Drawing.Point(862, 3); - this.btnRun.Name = "btnRun"; - this.btnRun.Size = new System.Drawing.Size(37, 24); - this.btnRun.TabIndex = 13; - this.btnRun.Text = "Run"; - this.btnRun.UseVisualStyleBackColor = true; - this.btnRun.Click += new System.EventHandler(this.btnRun_Click); - // - // btnBrowse - // - this.btnBrowse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowse.Location = new System.Drawing.Point(758, 3); - this.btnBrowse.Name = "btnBrowse"; - this.btnBrowse.Size = new System.Drawing.Size(72, 24); - this.btnBrowse.TabIndex = 2; - this.btnBrowse.Text = "Browse..."; - this.btnBrowse.UseVisualStyleBackColor = true; - this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); - // - // btnAll - // - this.btnAll.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnAll.Location = new System.Drawing.Point(799, 44); - this.btnAll.Name = "btnAll"; - this.btnAll.Size = new System.Drawing.Size(37, 25); - this.btnAll.TabIndex = 12; - this.btnAll.Text = "All"; - this.btnAll.UseVisualStyleBackColor = true; - this.btnAll.Click += new System.EventHandler(this.btnAll_Click); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(396, 35); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(53, 13); - this.label2.TabIndex = 4; - this.label2.Text = "Database"; - // - // btnConvert - // - this.btnConvert.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnConvert.Location = new System.Drawing.Point(717, 44); - this.btnConvert.Name = "btnConvert"; - this.btnConvert.Size = new System.Drawing.Size(76, 28); - this.btnConvert.TabIndex = 11; - this.btnConvert.Text = "Convert"; - this.btnConvert.UseVisualStyleBackColor = true; - this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click); - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(12, 35); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(38, 13); - this.label7.TabIndex = 10; - this.label7.Text = "Server"; - // - // tbServer - // - this.tbServer.Location = new System.Drawing.Point(56, 32); - this.tbServer.Name = "tbServer"; - this.tbServer.Size = new System.Drawing.Size(329, 20); - this.tbServer.TabIndex = 9; - // - // cmbDatabase - // - this.cmbDatabase.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbDatabase.FormattingEnabled = true; - this.cmbDatabase.Location = new System.Drawing.Point(455, 32); - this.cmbDatabase.Name = "cmbDatabase"; - this.cmbDatabase.Size = new System.Drawing.Size(256, 21); - this.cmbDatabase.TabIndex = 8; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(11, 61); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(75, 13); - this.label4.TabIndex = 7; - this.label4.Text = "Procedure Set"; - // - // cmbDocVersion - // - this.cmbDocVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbDocVersion.FormattingEnabled = true; - this.cmbDocVersion.Location = new System.Drawing.Point(92, 58); - this.cmbDocVersion.Name = "cmbDocVersion"; - this.cmbDocVersion.Size = new System.Drawing.Size(619, 21); - this.cmbDocVersion.TabIndex = 6; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(12, 9); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(23, 13); - this.label6.TabIndex = 1; - this.label6.Text = "File"; - // - // sc1 - // - this.sc1.Dock = System.Windows.Forms.DockStyle.Fill; - this.sc1.Location = new System.Drawing.Point(0, 88); - this.sc1.Name = "sc1"; - // - // sc1.Panel1 - // - this.sc1.Panel1.Controls.Add(this.tcXML); - // - // sc1.Panel2 - // - this.sc1.Panel2.Controls.Add(this.tabControl1); - this.sc1.Size = new System.Drawing.Size(954, 392); - this.sc1.SplitterDistance = 372; - this.sc1.TabIndex = 1; - // - // tcXML - // - this.tcXML.Controls.Add(this.tpXML); - this.tcXML.Controls.Add(this.tpColorCoded); - this.tcXML.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcXML.Location = new System.Drawing.Point(0, 0); - this.tcXML.Name = "tcXML"; - this.tcXML.SelectedIndex = 0; - this.tcXML.Size = new System.Drawing.Size(372, 392); - this.tcXML.TabIndex = 2; - // - // tpXML - // - this.tpXML.Controls.Add(this.tbXML); - this.tpXML.Location = new System.Drawing.Point(4, 22); - this.tpXML.Name = "tpXML"; - this.tpXML.Padding = new System.Windows.Forms.Padding(3); - this.tpXML.Size = new System.Drawing.Size(364, 366); - this.tpXML.TabIndex = 1; - this.tpXML.Text = "XML"; - this.tpXML.UseVisualStyleBackColor = true; - // - // tbXML - // - this.tbXML.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbXML.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbXML.HideSelection = false; - this.tbXML.Location = new System.Drawing.Point(3, 3); - this.tbXML.Multiline = true; - this.tbXML.Name = "tbXML"; - this.tbXML.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbXML.Size = new System.Drawing.Size(358, 360); - this.tbXML.TabIndex = 0; - this.tbXML.TextChanged += new System.EventHandler(this.tbXML_TextChanged); - // - // tpColorCoded - // - this.tpColorCoded.Controls.Add(this.rtbXML); - this.tpColorCoded.Location = new System.Drawing.Point(4, 22); - this.tpColorCoded.Name = "tpColorCoded"; - this.tpColorCoded.Padding = new System.Windows.Forms.Padding(3); - this.tpColorCoded.Size = new System.Drawing.Size(364, 366); - this.tpColorCoded.TabIndex = 0; - this.tpColorCoded.Text = "Color Coded"; - this.tpColorCoded.UseVisualStyleBackColor = true; - // - // rtbXML - // - this.rtbXML.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtbXML.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rtbXML.Location = new System.Drawing.Point(3, 3); - this.rtbXML.Name = "rtbXML"; - this.rtbXML.Size = new System.Drawing.Size(358, 360); - this.rtbXML.TabIndex = 1; - this.rtbXML.Text = ""; - this.rtbXML.SelectionChanged += new System.EventHandler(this.rtbXML_SelectionChanged); - this.rtbXML.TextChanged += new System.EventHandler(this.rtbXML_TextChanged); - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tpHTML); - this.tabControl1.Controls.Add(this.tpRaw); - this.tabControl1.Controls.Add(this.tpStructure); - this.tabControl1.Controls.Add(this.tpGrid); - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl1.Location = new System.Drawing.Point(0, 0); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(578, 392); - this.tabControl1.TabIndex = 0; - // - // tpHTML - // - this.tpHTML.Controls.Add(this.wb); - this.tpHTML.Location = new System.Drawing.Point(4, 22); - this.tpHTML.Name = "tpHTML"; - this.tpHTML.Padding = new System.Windows.Forms.Padding(3); - this.tpHTML.Size = new System.Drawing.Size(570, 366); - this.tpHTML.TabIndex = 0; - this.tpHTML.Text = "HTML"; - this.tpHTML.UseVisualStyleBackColor = true; - // - // wb - // - this.wb.Dock = System.Windows.Forms.DockStyle.Fill; - this.wb.Location = new System.Drawing.Point(3, 3); - this.wb.MinimumSize = new System.Drawing.Size(20, 20); - this.wb.Name = "wb"; - this.wb.Size = new System.Drawing.Size(564, 360); - this.wb.TabIndex = 0; - // - // tpRaw - // - this.tpRaw.Controls.Add(this.tbPROMS); - this.tpRaw.Location = new System.Drawing.Point(4, 22); - this.tpRaw.Name = "tpRaw"; - this.tpRaw.Padding = new System.Windows.Forms.Padding(3); - this.tpRaw.Size = new System.Drawing.Size(570, 366); - this.tpRaw.TabIndex = 1; - this.tpRaw.Text = "Raw Text"; - this.tpRaw.UseVisualStyleBackColor = true; - // - // tbPROMS - // - this.tbPROMS.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbPROMS.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbPROMS.Location = new System.Drawing.Point(3, 3); - this.tbPROMS.Multiline = true; - this.tbPROMS.Name = "tbPROMS"; - this.tbPROMS.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbPROMS.Size = new System.Drawing.Size(564, 360); - this.tbPROMS.TabIndex = 0; - // - // tpStructure - // - this.tpStructure.Controls.Add(this.tv); - this.tpStructure.Location = new System.Drawing.Point(4, 22); - this.tpStructure.Name = "tpStructure"; - this.tpStructure.Size = new System.Drawing.Size(570, 366); - this.tpStructure.TabIndex = 2; - this.tpStructure.Text = "Structure"; - this.tpStructure.UseVisualStyleBackColor = true; - // - // tv - // - this.tv.Dock = System.Windows.Forms.DockStyle.Fill; - this.tv.Location = new System.Drawing.Point(0, 0); - this.tv.Name = "tv"; - this.tv.Size = new System.Drawing.Size(570, 366); - this.tv.TabIndex = 0; - // - // tpGrid - // - this.tpGrid.Location = new System.Drawing.Point(4, 22); - this.tpGrid.Name = "tpGrid"; - this.tpGrid.Size = new System.Drawing.Size(570, 366); - this.tpGrid.TabIndex = 3; - this.tpGrid.Text = "Grid"; - this.tpGrid.UseVisualStyleBackColor = true; - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tspb, - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 480); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(954, 22); - this.statusStrip1.TabIndex = 2; - this.statusStrip1.Text = "statusStrip1"; - this.statusStrip1.Click += new System.EventHandler(this.statusStrip1_Click); - // - // tspb - // - this.tspb.Name = "tspb"; - this.tspb.Size = new System.Drawing.Size(300, 16); - this.tspb.Visible = false; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - this.tsslStatus.Click += new System.EventHandler(this.tsslStatus_Click); - // - // tmr - // - this.tmr.Interval = 2000; - this.tmr.Tick += new System.EventHandler(this.tmr_Tick); - // - // frmConvertAlarms - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(954, 502); - this.Controls.Add(this.sc1); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Name = "frmConvertAlarms"; - this.Text = "Convert Alarms"; - this.Load += new System.EventHandler(this.frmConvertAlarms_Load); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.sc1.Panel1.ResumeLayout(false); - this.sc1.Panel2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.sc1)).EndInit(); - this.sc1.ResumeLayout(false); - this.tcXML.ResumeLayout(false); - this.tpXML.ResumeLayout(false); - this.tpXML.PerformLayout(); - this.tpColorCoded.ResumeLayout(false); - this.tabControl1.ResumeLayout(false); - this.tpHTML.ResumeLayout(false); - this.tpRaw.ResumeLayout(false); - this.tpRaw.PerformLayout(); - this.tpStructure.ResumeLayout(false); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnBrowse; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbFileName; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.SplitContainer sc1; - private System.Windows.Forms.TextBox tbXML; - private System.Windows.Forms.WebBrowser wb; - private System.Windows.Forms.TextBox tbPROMS; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.RichTextBox rtbXML; - private System.Windows.Forms.TabControl tcXML; - private System.Windows.Forms.TabPage tpXML; - private System.Windows.Forms.TabPage tpColorCoded; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tpHTML; - private System.Windows.Forms.TabPage tpRaw; - private System.Windows.Forms.TabPage tpStructure; - private System.Windows.Forms.TreeView tv; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.TextBox tbServer; - private System.Windows.Forms.ComboBox cmbDatabase; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.ComboBox cmbDocVersion; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Button btnConvert; - private System.Windows.Forms.Button btnAll; - private System.Windows.Forms.TabPage tpGrid; - private System.Windows.Forms.Button btnRun; - private System.Windows.Forms.ToolStripProgressBar tspb; - private System.Windows.Forms.Timer tmr; - } -} - diff --git a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.cs b/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.cs deleted file mode 100644 index 9991541f..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.cs +++ /dev/null @@ -1,886 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using log4net; -using Volian.Controls.Library; -using C1.Win.C1FlexGrid; -using System.Data.SqlClient; - -namespace ConvertAlarms -{ - public partial class frmConvertAlarms : Form - { - public frmConvertAlarms() - { - InitializeComponent(); - } - private void SetDatabaseConnection() - { - Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, cmbDatabase.SelectedText); - } - private void btnBrowse_Click(object sender, EventArgs e) - { - FileInfo fi = new FileInfo(tbFileName.Text); - ofd.InitialDirectory = fi.DirectoryName; - ofd.FileName = fi.Name; - if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - tbFileName.Text = ofd.FileName; - ProcessXML(); - } - } - private void ProcessXML() - { - string fileName = tbFileName.Text; - ProcessXmlFile(fileName); - } - private void ProcessXmlFile(string fileName) - { - UpdateHTML = false; - tbXML.Clear(); - UpdateHTML = true; - XmlDocument xDoc = new XmlDocument(); - xDoc.Load(fileName); - XmlElement xe1 = xDoc.DocumentElement; - XmlElement xe2 = xe1.ChildNodes[0] as XmlElement; - XmlElement xe3 = xe2.ChildNodes[0] as XmlElement; - XmlElement xe4 = (xe1.ChildNodes[1] as XmlElement).ChildNodes[0] as XmlElement; - RelatedFunction = xe3.Attributes["relatedFunction"].Value; - PNSNo = xe3.Attributes["PNSNo"].Value; - ShortName = xe3.Attributes["shortName"].Value; - FullName = xe3.Attributes["fullName"].Value; - RevisionNumber = xe3.Attributes["revisionNumber"].Value; - Priority = xe3.Attributes["priority"].Value; - Number = xe3.Attributes["number"].Value; - Responsibility = xe4.Attributes["implementor"].Value; - ApSystem = GetSystem(xe3); - XmlNode xn = xDoc.DocumentElement.LastChild.LastChild.LastChild; - string html = GetHtml(xn); - tbXML.Text = html; - } - private static string _RelatedFunction; - public static string RelatedFunction - { - get { return _RelatedFunction; } - set { _RelatedFunction = value; } - } - private static string _PNSNo; - public static string PNSNo - { - get { return _PNSNo; } - set { _PNSNo = value; } - } - private static string _fullName; - public static string FullName - { - get { return _fullName; } - set { _fullName = value; } - } - private static string _Number; - public static string Number - { - get { return frmConvertAlarms._Number; } - set { frmConvertAlarms._Number = value; } - } - private static string _RevisionNumber; - public static string RevisionNumber - { - get { return frmConvertAlarms._RevisionNumber; } - set { frmConvertAlarms._RevisionNumber = value; } - } - private static string _Priority; - public static string Priority - { - get { return frmConvertAlarms._Priority; } - set { frmConvertAlarms._Priority = value; } - } - private static string Responsibility; - public static string Responsibility1 - { - get { return frmConvertAlarms.Responsibility; } - set { frmConvertAlarms.Responsibility = value; } - } - private static string _shortName; - public static string ShortName - { - get { return _shortName; } - set { _shortName = value; } - } - private static string _system; - public static string ApSystem - { - get { return _system; } - set { _system = value; } - } - private static string _MyFileName; - - public static string MyFileName - { - get { return frmConvertAlarms._MyFileName; } - set { frmConvertAlarms._MyFileName = value; } - } - private static string GetHtml(XmlNode xn) - { - XmlNode pr = xn.PreviousSibling; - int i = 0; - string html = xn.Attributes["content"].Value; - //Console.WriteLine(@"{0} ""{1}""", i++, html); - if (xn != pr) - { - while (pr != null && pr.Name == "NoteInstruction") - { - string html2 = pr.Attributes["content"].Value; - //Console.WriteLine(@"{0} ""{1}""", i++, html2); - html = MergeHTML(html2, html); - //Console.WriteLine(@"{0} ""{1}""", -1, html); - pr = pr.PreviousSibling; - } - } - return html; - } - - private static string MergeHTML(string part1, string part2) - { - part1 = part1.Replace("]*>", "", RegexOptions.Singleline); - //part2 = part2.Substring(part2.IndexOf(""; - public string HtmlPrefix - { - get { return _HtmlPrefix; } - set { _HtmlPrefix = value; } - } - private string prcSerialNoFldName; - private string prcSerialNoValue; - private string prcTitleFldName; - private string prcTitleValue; - private string prcNumberFldName; - private string prcNumberValue; - private string prcSourceFldName; - private string prcSourceValue; - private string prcSetpointFldName; - private string prcSetpointValue; - - //private Regex myReg01 = new Regex("
", RegexOptions.Compiled); - //private Regex myReg02 = new Regex("
", RegexOptions.Compiled); - //private Regex myReg03 = new Regex("]+>", RegexOptions.Compiled); - //private Regex myReg04 = new Regex("", RegexOptions.Compiled); - //private Regex myReg05 = new Regex("

[ \r\n]+

]+>", RegexOptions.Compiled); - //private Regex myReg06 = new Regex("

]+>", RegexOptions.Compiled); - ////private Regex myReg07 = new Regex(@"
+(?=\w)", RegexOptions.Compiled); - //private Regex myReg08 = new Regex(@"
[ \r\n]*\t +", RegexOptions.Compiled); - //private Regex myReg09 = new Regex(@"
[ \t\r\n]+\[", RegexOptions.Compiled); - //private Regex myReg10 = new Regex("

", RegexOptions.Compiled); - //private Regex myReg11 = new Regex(@"] *\t{4,10}", RegexOptions.Compiled); - //private Regex myReg12 = new Regex("
\t+(?=None)", RegexOptions.Compiled); - //private Regex myReg13 = new Regex("
\t+(?![[\\u2022]|[1-9])", RegexOptions.Compiled); - //private Regex myReg14 = new Regex("
", RegexOptions.Compiled); - //private Regex myReg15 = new Regex("\t\t+", RegexOptions.Compiled); - //private Regex myReg16 = new Regex("\r\n +", RegexOptions.Compiled); - //private Regex myReg17 = new Regex("(\r\n){2,}", RegexOptions.Compiled); - //private Regex myReg18 = new Regex("
]+>", RegexOptions.Compiled); - ////private Regex myReg19 = new Regex("(?[^<>]*]*>[^<>]*]*>[^<>]*

(NOTE|CAUTION|WARNING)([^<>]+?)

[^<>]*[^<>]*[^<>]*
", RegexOptions.Compiled & RegexOptions.Singleline ); - //private Regex myReg22 = new Regex("\\.\\.\\.+", RegexOptions.Compiled); - private void XMLChanged(string xml) - { - Application.DoEvents(); - xml = "\n" + xml; - xml = xml.Replace(HtmlPrefix, ""); - //xml = myReg01.Replace(xml, "
"); - //xml = myReg02.Replace(xml, "
"); - //xml = myReg03.Replace(xml, "");// Remove Style Span start - //xml = myReg04.Replace(xml, "");// - //xml = myReg05.Replace(xml, "
\r\n"); - //xml = myReg06.Replace(xml, "
\r\n

"); - ////xml = myReg07.Replace(xml, " ");//New - //xml = myReg08.Replace(xml, " ");//New - //xml = myReg09.Replace(xml, @"\line ["); - //xml = myReg10.Replace(xml, "

"); - //xml = myReg11.Replace(xml, "]\r\n"); - //xml = myReg12.Replace(xml, "\r\n\t"); - //xml = myReg13.Replace(xml, " "); - //xml = myReg14.Replace(xml, "\r\n"); - //xml = myReg15.Replace(xml, " "); - //xml = myReg16.Replace(xml, "\r\n"); - //xml = myReg17.Replace(xml, "\r\n"); - //xml = myReg18.Replace(xml, ""); - ////xml = myReg19.Replace(xml, "{SPACE}"); - //xml = myReg20.Replace(xml, " "); - //xml = myReg21.Replace(xml, "

\r\n$1$2\r\n

"); - //xml = myReg22.Replace(xml, ""); //Remove multiple periods - xml = Regex.Replace(xml, "
", "
"); - xml = Regex.Replace(xml, "
", "
"); - xml = Regex.Replace(xml, "]+>", "");// Remove Style Span start - xml = Regex.Replace(xml, "", "");// - xml = Regex.Replace(xml, "

[ \r\n]+

]+>", "
\r\n"); - xml = Regex.Replace(xml, "

]+>", "
\r\n

"); -// xml = Regex.Replace(xml, @"
+(?=\w)", " ");//New - xml = Regex.Replace(xml, @"
[ \r\n]*\t (?! +[[\\u2022]| +[1-9]| +[A-Z][.])", " ");//New - //xml = Regex.Replace(xml, @"
[ \r\n]*\t +", " ");//New - xml = Regex.Replace(xml, @"
[ \t\r\n]+\[", @"\line ["); - xml = Regex.Replace(xml, "

", "

"); - xml = Regex.Replace(xml, @"] *\t{4,10}", "]\r\n"); - xml = Regex.Replace(xml, "
\t+(?=None)", "\r\n\t"); - xml = Regex.Replace(xml, "
\t+(?![[\\u2022]|[1-9]|[A-Z]\\.)", " "); - xml = Regex.Replace(xml, "
", "\r\n"); - xml = Regex.Replace(xml, "\t\t+", " "); - xml = Regex.Replace(xml, "\r\n +", "\r\n"); - xml = Regex.Replace(xml, "(\r\n){2,}", "\r\n"); - xml = Regex.Replace(xml, "
]+>", "
"); - //xml = Regex.Replace(xml, "(?[^<>]*]*>[^<>]*]*>[^<>]*

(NOTE|CAUTION|WARNING)([^<>]+?)

[^<>]*[^<>]*[^<>]*
", "\r\n$1$2\r\n", RegexOptions.Singleline); - xml = Regex.Replace(xml, "\\.\\.\\.+", ""); //Remove multiple periods - //xml = Regex.Replace(xml," - //xml = xml.Replace(">", ""); - Application.DoEvents(); - byte[] bytes = Encoding.UTF8.GetBytes(xml); - MemoryStream ms = new MemoryStream(); - ms.Write(bytes, 0, bytes.Length); - ms.Position = 0; - XmlDocument xDoc2 = new XmlDocument(); - xDoc2.Load(ms); - int iStart = 1; - XmlNode xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[0]; - if (!xn3.OuterXml.Contains("table")) - { - iStart = 2; - xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[1]; - } - prcSerialNoFldName = GetProcInfo(xn3, 0, 0, 0); - prcSerialNoValue = GetProcInfo(xn3, 0, 1, 0); - SerialNo = int.Parse(prcSerialNoValue); - prcTitleFldName = GetProcInfo(xn3, 1, 0, 0); - prcTitleValue = GetProcInfo(xn3, 1, 1, 0); - prcNumberFldName = GetProcInfo(xn3, 2, 0, 0); - prcNumberValue = GetProcInfo(xn3, 2, 1, 0); - prcSourceFldName = GetProcInfo(xn3, 3, 0, 0); - prcSourceValue = GetProcInfo(xn3, 3, 1, 0); - prcSetpointFldName = GetProcInfo(xn3, 4, 0, 0); - prcSetpointValue = GetProcInfo(xn3, 4, 1, 0); - Console.WriteLine("\"FromProcedures\"\t\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"\t\"{4}\"\t\"{5}\"\t\"{6}\"\t\"{7}\"\t\"{8}\"\t\"{9}\"\t\"{10}\"\t\"{11}\"\t\"{12}\"\t\"{13}\"\t\"{14}\"" - , PNSNo.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , ApSystem.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , FullName.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , ShortName.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , RelatedFunction.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , "Rev" + RevisionNumber.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , Priority.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , Number.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , prcNumberValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , prcSerialNoValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , prcSetpointValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , prcSourceValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , prcTitleValue.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , Responsibility.Replace("\r\n", ";CR;").Replace("\n", ";CR;").Replace("\r", ";CR;") - , MyFileName); - ProcNumber = prcNumberValue; - ProcTitle = prcTitleValue; - // Skip First Node - UpdateHTML = false; - tbPROMS.Clear(); - tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSerialNoFldName, prcSerialNoValue)); - tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcTitleFldName, prcTitleValue)); - tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcNumberFldName, prcNumberValue)); - tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSourceFldName, prcSourceValue)); - tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n", prcSetpointFldName, prcSetpointValue)); - StringBuilder sbAllText = new StringBuilder(); - for (int i = iStart; i < xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes.Count; i++) - { - XmlNode xn2 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[i]; - if (xn2.OuterXml != ">\r\n" && xn2.OuterXml != "

") - { - sbAllText.Append("\r\n" + xn2.OuterXml); - //Console.WriteLine("--{0}--|{1}|", i, IndentifySpecialCharacters(xn2.OuterXml)); - } - } - tbPROMS.AppendText(sbAllText.ToString().Replace(" ", "\xB7")); - //SaveTree(sbAllText.ToString(), prcNumberValue, prcTitleValue); - ProcTextAll = sbAllText.ToString(); - UpdateHTML = true; - } - String ProcTextAll; - int SerialNo; - String ProcNumber; - String ProcTitle; - TreeNode lastNode = null; - private void SaveTree(string text, string procNumber, string procTitle) - { - tv.Nodes.Clear(); - MemoryStream ms = GetMemoryStream(text); - using (TextReader tr = new StreamReader(ms)) - { - Dictionary lookup = new Dictionary(); - lookup.Add(0, tv.Nodes.Add(string.Format("{0} - {1}", procNumber, procTitle))); - int level = 0; - int lastLevel = 0; - int lastIndent = 0; - int extra = 0; - bool textContinued = false; - string lastTab = ""; - Queue enQueue = null; - Queue deQueue = null; - bool isTable = false; - while (tr.Peek() >= 0 || deQueue != null) - { - string lineText; - if (deQueue != null) - { - extra = 1; - lineText = deQueue.Dequeue(); - if (deQueue.Count == 0) - deQueue = null; - } - else - { - extra = 0; - lineText = tr.ReadLine(); - if (lineText.StartsWith("")) - { - while (!lineText.Contains("
")) - { - lineText += " " + tr.ReadLine(); - lineText = Regex.Replace(lineText, ".*", ""); - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(lineText); - LoadTable2(xd.DocumentElement, null, 0); - isTable = true; - //StringBuilder sbxml= new StringBuilder(); - //using(StringWriter sw = new StringWriter(sbxml)) - // _MyFlexGrid.WriteXml(sw); - //using(StringReader sr= new StringReader(sbxml.ToString())) - // _MyFlexGrid.ReadXml(sr); - //Application.DoEvents(); - } - else if (lineText == "NOTE" || lineText == "CAUTION" || lineText == "Warning") - enQueue = new Queue(); - } - lineText = Regex.Replace(lineText, "<[^<>]+>", ""); - textContinued = false; - if (lineText.Replace("\t", "") != "") - { - Match m = Regex.Match(lineText, @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|\u2022|\u25CB)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline); - string tab = m.Groups[2].Value; - int indent = m.Groups[1].Value.Length; - //if (lineText.Contains("THEN·GO·TO·1N2-OP-EOP-XX-0002")) - // Console.WriteLine("here"); - if (isTable) - { - // do nothing - } - if (indent == 0 && tab.EndsWith(".0")) // High Level Step - { - level = 1; - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - enQueue = null; - } - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*[.0-9]*")) // Substep - { - level = 2; - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - enQueue = null; - } - } - else if (tab == "") // Paragraph - { - if (Regex.IsMatch(lineText, "(NOTE|NOTES|CAUTION|CAUTIONS|WARNING|WARNINGS)")) - extra = 0; - else - { - lastNode.Text += " " + lineText.TrimStart("\r\n \t".ToCharArray()); - //Console.WriteLine("maybe continue '{0}'", lineText); - textContinued = true; - } - level = lastLevel + 1; - } - else if (tab == "\u2022")//bullet - level = indent + 2; - else if (tab == "\u25CB")//bullet - level = indent + 3; - if (level < lastLevel) - while (level < lastLevel) lookup.Remove(lastLevel--); - string txt = string.Format("{0}|{1}||{2}", m.Groups[1].Value, m.Groups[2].Value, m.Groups[4].Value); - if (txt == "|||") txt = lineText; - if (enQueue == null) - { - if (!textContinued && !isTable) - { - if (level > lookup.Count - extra) extra = 0; - //if (level + extra - 1 == lookup.Count) - // Console.WriteLine("Problems {0}, {1}", procNumber, txt); - else if (lookup.Count <= level) - lookup.Add(level + extra, lookup[level + extra - 1].Nodes.Add(txt)); - else - lookup[level + extra] = lookup[level + extra - 1].Nodes.Add(txt); - lastNode = lookup[level + extra]; - } - } - else - { - enQueue.Enqueue(lineText); - } - lastTab = tab; - lastLevel = level; - lastIndent = indent; - } - } - } - } - private ItemInfo FindPrevious(SortedDictionary dicSerialNo, int serialNo) - { - ItemInfo lastItem = null; - foreach (int serno in dicSerialNo.Keys) - { - if (serno > serialNo) - return lastItem; - lastItem = dicSerialNo[serno]; - } - return lastItem; - } - private bool runOne = true; - private static MemoryStream GetMemoryStream(string text) - { - byte[] bytes = Encoding.UTF8.GetBytes(text); - MemoryStream ms = new MemoryStream(bytes); - ms.Position = 0; - return ms; - } - private string GetProcInfo(XmlNode xn3, int p1, int p2, int p3) - { - if (xn3.OuterXml == "

") xn3 = xn3.NextSibling; - return xn3.ChildNodes[p1].ChildNodes[p2].ChildNodes[p3].ChildNodes[0].Value.Trim("\r\n ".ToCharArray()); - } - private bool _UpdateHTML = true; - public bool UpdateHTML - { - get { return _UpdateHTML; } - set { _UpdateHTML = value; } - } - private string IndentifySpecialCharacters(string xml) - { - StringBuilder sb = new StringBuilder(); - string txt = Regex.Replace(xml, "]+>", ""); - foreach (char c in txt) - { - if (((int)c) < 32 || ((int)c) > 256) - sb.Append(string.Format("[x{0:X4}]", (int)c)); - else - sb.Append(c == ' ' ? '\xb7' : c); - } - return sb.ToString(); - } - private void btnRun_Click(object sender, EventArgs e) - { - ProcessXML(); - } - Regex regColorCode = new Regex(@"(\<[^<>]+\>)([^<>]*)", RegexOptions.Singleline); - Regex regColorCodeText = new Regex("(\t*)([^\t]*)", RegexOptions.Singleline); - private void ColorCoded(string str) - { - rtbXML.Clear(); - Color fColor = Color.PaleTurquoise; - Color fNext = Color.PaleTurquoise; - foreach (Match m in regColorCode.Matches(str)) - { - string fmt = m.Groups[1].Value; - string txt = m.Groups[2].Value; - if (fmt.StartsWith("") - fNext = Color.PaleTurquoise; - else if (fmt == "
") - fColor = Color.PeachPuff; - else if (fmt == "

") - fColor = Color.LightPink; - AddToXML(fmt, fColor); - fColor = fNext; - foreach (Match mm in regColorCodeText.Matches(txt)) - { - string tabs = mm.Groups[1].Value; - string nontabs = mm.Groups[2].Value; - AddToXML(tabs, Color.Khaki); - AddToXML(nontabs, Color.Yellow); - } - } - } - - private void AddToXML(string txt, Color fColor) - { - if (txt == "") return; - rtbXML.SelectionStart = rtbXML.TextLength; - rtbXML.SelectionBackColor = fColor; - rtbXML.SelectedText = txt; - } - private void frmConvertAlarms_Load(object sender, EventArgs e) - { - LoadSettings(); - SetEventHandlers(); - _MyFlexGrid = new VlnFlexGrid(); - tpGrid.Controls.Add(_MyFlexGrid); - string str = AutoFolder; - if (str != null && str.Length > 5) - { - tmr.Enabled = true; - } - } - private void SetEventHandlers() - { - tbFileName.TextChanged += tbFileName_TextChanged; - Move += frmConvertAlarms_Move; - Resize += frmConvertAlarms_Resize; - sc1.SplitterMoved += sc1_SplitterMoved; - //sc2.SplitterMoved += sc2_SplitterMoved; - tbServer.TextChanged += tbServer_TextChanged; - cmbDatabase.TextChanged += cmbDatabase_TextChanged; - cmbDatabase.Click += cmbDatabase_Click; - cmbDocVersion.TextChanged += cmbDocVersion_TextChanged; - //BuildTableCombo(); - //BuildProcedureSetCombo(); - } - - void cmbDatabase_Click(object sender, EventArgs e) - { - Properties.Settings.Default.Database = cmbDatabase.Text; - Properties.Settings.Default.Save(); - BuildProcedureSetCombo(); - } - - private void BuildProcedureSetCombo() - { - DocVersionInfoList dvil = DocVersionInfoList.Get(); - cmbDocVersion.DataSource = dvil; - cmbDocVersion.DisplayMember = "SearchDVPath"; - cmbDocVersion.ValueMember = "VersionId"; - } - - private void cmbDocVersion_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.ProcedureSet = (int)cmbDocVersion.SelectedValue; - Properties.Settings.Default.Save(); - } - - private void cmbDatabase_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.Database = cmbDatabase.Text; - Properties.Settings.Default.Save(); - BuildProcedureSetCombo(); - } - - private void tbServer_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.SqlServer = tbServer.Text; - Properties.Settings.Default.Save(); - string db = cmbDatabase.Text; - try - { - BuildDatabaseCombo(); - } - catch (Exception ex) - { - tsslStatus.Text = ex.Message; - } - } - - private void BuildDatabaseCombo() - { - string tmp = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, "MASTER"); - SqlConnection cn = new SqlConnection(tmp); - cn.Open(); - // SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn); - //SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id('[' + name + ']..Items') is null then 'Not PROMS' when object_id('[' + name + ']..Revisions') is not null then 'Approval' when object_id('[' + name + ']..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - SqlDataAdapter da = new SqlDataAdapter("select name, 'Approval' functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - da.SelectCommand.CommandTimeout = 300; // 300 sec timeout - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - } - catch (Exception ex) - { - System.Windows.Forms.MessageBox.Show(ex.GetType().Name, ex.Message); - throw (new Exception("Cannot Load Data List", ex)); - } - cn.Close(); - //System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip(); - //cms.Items.Add("Choose Database"); - //System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem; - //tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink; - //tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText); - //tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold); - foreach (DataRow dr in ds.Tables[0].Rows) - { - if (dr["functionality"].ToString() == "Approval") - cmbDatabase.Items.Add(dr["name"].ToString()); - } - } - void frmConvertAlarms_Resize(object sender, EventArgs e) - { - Properties.Settings.Default.Size = Size; - Properties.Settings.Default.Save(); - } - void frmConvertAlarms_Move(object sender, EventArgs e) - { - Properties.Settings.Default.Location = Location; - Properties.Settings.Default.Save(); - } - void tbFileName_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.FileName = tbFileName.Text; - Properties.Settings.Default.Save(); - } - private void sc1_SplitterMoved(object sender, SplitterEventArgs e) - { - Properties.Settings.Default.Split1 = sc1.SplitterDistance; - Properties.Settings.Default.Save(); - } - private void LoadSettings() - { - Size = Properties.Settings.Default.Size; - Location = Properties.Settings.Default.Location; - if (Properties.Settings.Default.FileName != null && Properties.Settings.Default.FileName != "") - { - FileInfo fi = new FileInfo(Properties.Settings.Default.FileName); - tbFileName.Text = fi.FullName; - } - sc1.SplitterDistance = Properties.Settings.Default.Split1; - tbServer.Text = Properties.Settings.Default.SqlServer; - cmbDatabase.Text = Properties.Settings.Default.Database; - try - { - BuildDatabaseCombo(); - Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, cmbDatabase.Text); - BuildProcedureSetCombo(); - cmbDocVersion.SelectedValue = Properties.Settings.Default.ProcedureSet; - } - catch (Exception ex) - { - tsslStatus.Text = ex.Message; - } - } - - private void tsslStatus_Click(object sender, EventArgs e) - { - tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbXML.SelectedText)); - Clipboard.Clear(); - if (tbXML.SelectedText != "") - Clipboard.SetText(IndentifySpecialCharacters(tbXML.SelectedText)); - } - - private void rtbXML_SelectionChanged(object sender, EventArgs e) - { - } - private void tbXML_TextChanged(object sender, EventArgs e) - { - if (UpdateHTML) - { - if (AutoFolder == null) htmlChanged(tbXML.Text); - XMLChanged(tbXML.Text); - if (AutoFolder == null) ColorCoded(tbXML.Text); - } - } - private bool _UpdateTbXML = true; - - public bool UpdateTbXML - { - get { return _UpdateTbXML; } - set { _UpdateTbXML = value; } - } - private void rtbXML_TextChanged(object sender, EventArgs e) - { - //if (UpdateHTML) - //{ - // UpdateHTML = false; - // htmlChanged(rtbXML.Text); - // XMLChanged(rtbXML.Text); - // tbXML.Text = rtbXML.Text; - // UpdateHTML = true; - //} - } - private void btnConvert_Click(object sender, EventArgs e) - { - //SaveProcedure(ProcTextAll, ProcNumber, ProcTitle,999999); - DVI = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, tbFileName.Text); - } - string lastLine = ""; - SortedDictionary dicSerialNo; - int errorCount; - private void btnAll_Click(object sender, EventArgs e) - { - DVI = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - string fileName = tbFileName.Text; - ConvertFiles(fileName); - } - - private void ConvertFiles(string fileName) - { - Application.DoEvents(); - DateTime dtStart = DateTime.Now; - errorCount = 0; - dicSerialNo = new SortedDictionary(); - runOne = false; - // Get List of files - FileInfo fi = new FileInfo(fileName); - DirectoryInfo di = fi.Directory; - // Loop through list - FileInfo[] fs = di.GetFiles("*.xml"); - tspb.Visible = true; - tspb.Value = 0; - tspb.Maximum = fs.Length; - foreach (FileInfo f in fs) - { - //ResetSpecial(); - MyFileName = f.FullName; - tspb.Value++; - tsslStatus.Text = f.Name; - Application.DoEvents(); - // Process each file - try - { - ProcessXmlFile(f.FullName); - // Convert each file - //SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, SerialNo); - SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, f.Name); - } - catch (Exception ex) - { - ++errorCount; - Console.WriteLine("*** {0} - {1}\r\n*** Procedure {2}\r\n*** Text: {3}\r\n*** File Name:{4} ", - ex.GetType().Name, ex.Message, ProcNumber, lastLine, f.Name); - //break; - } - //break; one Procedure per set - } - runOne = true; - tspb.Visible = false; - tsslStatus.Text = "Done"; - //MessageBox.Show(string.Format( - // "{0} Errors\r\n{1} Procedures\r\n{2:F} Seconds", errorCount, - // fs.Length, - // TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalSeconds), - // "Done with this set", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - - private void statusStrip1_Click(object sender, EventArgs e) - { - if (rtbXML.SelectedText != "") - { - tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(rtbXML.SelectedText)); - Clipboard.Clear(); - Clipboard.SetText(IndentifySpecialCharacters(rtbXML.SelectedText)); - } - } - ROFSTLookup MyLookUp; - private void tmr_Tick(object sender, EventArgs e) - { - tmr.Enabled = false; - // If timer on the its ready to proccess - string str = AutoFolder; - if (str != null && str.Length > 5) - { - DirectoryInfo di = new DirectoryInfo(str); - FileInfo fi = di.GetFiles("*.xml")[0]; - DVI = GetDVI(fi.FullName); - ConvertFiles(fi.FullName); - } - this.Close(); - } - private static string _AutoFolder = null; - private static string AutoFolder - { - get - { - if (_AutoFolder == null) - { - _AutoFolder = System.Environment.CommandLine; - _AutoFolder = _AutoFolder.Substring(_AutoFolder.IndexOf(@".exe"" ") + 6).Trim(" \t\r\n".ToCharArray()); - } - if (_AutoFolder.Length < 1) - return null; - return _AutoFolder; - } - } - - private DocVersionInfo GetDVI(string fileName) - { - XmlDocument xd = new XmlDocument(); - xd.Load(fileName); - XmlElement xe = xd.DocumentElement; - while (xe.Name != "ident") - xe = xe.ChildNodes[0] as XmlElement; - string DVIFolderName = xe.Attributes["PNSNo"].Value; - if (cmbDocVersion.SelectedValue != null) - { - DocVersionInfo dvi = DocVersionInfo.Get((int)(cmbDocVersion.SelectedValue)); - int idnew; - ROFstInfo fst = dvi.DocVersionAssociations[0].MyROFst; - FolderInfo grandParent = dvi.ActiveParent.ActiveParent as FolderInfo; - // Create a folder - double myOrder = GetMyOrder(grandParent.SortedChildFolders, DVIFolderName); - using (Folder flder = Folder.MakeFolder(grandParent.Get(), null, DVIFolderName, fileName, GetSystem(xe), null, myOrder, null)) - { - flder.ManualOrder = 0; - flder.ManualOrder = myOrder; - //Console.WriteLine("myOrder = {0}, flder = {1}", myOrder, flder.ManualOrder); - flder.Save(); - // create a a DocVersion - using (DocVersion dv = DocVersion.MakeDocVersion(flder, "Working Draft", null, null, null, null)) - { - dv.DocVersionAssociations.Add(fst.Get()); - dv.Save(); - idnew = dv.VersionID; - } - } - return DocVersionInfo.Get(idnew); - } - return null; - } - private double GetMyOrder(Csla.SortedBindingList myList, string DVIFolderName) - { - double lastNum = 0; - // Console.WriteLine("--->>> FolderName {0} Insert Count {1}",DVIFolderName, myList.Count); - foreach (FolderInfo myFolder in myList) - { - // Console.WriteLine("--->>> FolderName {0} Insert Name {1} Insert Order {2}",DVIFolderName, myFolder.Name, myFolder.ManualOrder); - if (myFolder.Name.CompareTo(DVIFolderName) >= 0) - return (lastNum + (double) myFolder.ManualOrder) / 2.0; - lastNum = myFolder.ManualOrder ?? 1.0; - } - return lastNum + 1; - } - private string GetSystem(XmlElement xe) - { - XmlAttribute xa = xe.Attributes["system"]; - if (xa is XmlAttribute) return xa.Value; - return "N/A"; - } - } -} diff --git a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.resx b/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.resx deleted file mode 100644 index 09f332c3..00000000 --- a/PROMS/BarakahConvert/ConvertAlarms/frmConvertAlarms.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 87, 17 - - - 203, 3 - - - 25 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/App.config b/PROMS/BarakahConvert/ConvertLocalAlarms/App.config deleted file mode 100644 index f5aa8acd..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/App.config +++ /dev/null @@ -1,36 +0,0 @@ - - - - -
- - - - - - - - - 1000, 600 - - - 0, 0 - - - - - - 250 - - - .\Sql2008Express - - - VEPROMs_BARAKAH - - - 0 - - - - diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertLocalAlarms.csproj b/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertLocalAlarms.csproj deleted file mode 100644 index 5318977f..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertLocalAlarms.csproj +++ /dev/null @@ -1,143 +0,0 @@ - - - - - Debug - AnyCPU - {BF0EEE6A-5350-4CE7-8E28-73F1A3811870} - WinExe - Properties - ConvertLocalAlarms - ConvertLocalAlarms - v4.6.1 - 512 - - SAK - SAK - SAK - SAK - - - x86 - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - - - ..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll - - - False - ..\..\..\..\..\..\..\Program Files\DotNetBar for Windows Forms\DevComponents.DotNetBar2.dll - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\log4net.dll - - - - - - - - - - - - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\Volian.Base.Library.dll - - - ..\..\..\..\..\..\..\Development\Proms\Volian.Controls.Library\bin\Debug\Volian.Controls.Library.dll - - - - - Form - - - Form - - - frmConvertLocalAlarms.cs - - - - - Form - - - frmConvertLocalAlarms.cs - Designer - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertTable.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertTable.cs deleted file mode 100644 index 1995c754..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/ConvertTable.cs +++ /dev/null @@ -1,197 +0,0 @@ -using C1.Win.C1FlexGrid; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.Xml; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; - -namespace ConvertLocalAlarms -{ - public partial class frmConvertLocalAlarms - { - private static string GetTableText() - { - return _MyFlexGrid.GetSearchableText(); - } - private static void LoadTable2(XmlNode xn, StepLookup mySteps, int level) - { - XmlNode xn2 = xn.SelectSingleNode("tr/td/table"); - if (xn2 != null) xn = xn2; - VlnFlexGrid fg = _MyFlexGrid; - fg.Font = new Font("Arial", 11, FontStyle.Regular, GraphicsUnit.Point); - fg.Clear(); - fg.Rows.Count = 1; - fg.Cols.Count = 1; - int rows = 0; - fg.MergedRanges.Clear(); - foreach (XmlNode xr in xn.ChildNodes) - { - if (xr.Name == "tr") - { - ++rows; - AddTableRow(xr, fg, rows); - } - } - fg.MyBorders = new VlnBorders(GridLinePattern.Single, fg.Rows.Count, fg.Cols.Count); - fg.BringToFront(); - fg.Invalidate(); - Application.DoEvents(); - //ShowColumnWidths(fg); - fg.MakeRTFcells(false); - //ShowMergedCells(fg); - //ShowColumnWidths(fg); - //Well, Can I save the table - //using (Step step = MakeCSLAStep(mySteps, mySteps.Count, null, {TableContent}, 20008, E_FromType.Table)) - //{ - // Grid.MakeGrid(step.MyContent, fg.GetXMLData(), ""); - //} - } - public static VlnFlexGrid _MyFlexGrid = null; - private static void AddTableRow(XmlNode xr, VlnFlexGrid fg, int rows) - { - if (rows > fg.Rows.Count) - fg.Rows.Count = rows; - int cols = 0; - foreach (XmlNode xc in xr.ChildNodes) - { - ++cols; - //if (xc.InnerText.Contains("RC-V200")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerText.Contains("RC-V121")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerXml.Contains("AB 137") || xc.InnerXml.Contains("3013N01")) - // Console.WriteLine("here"); - CellRange cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - //Console.WriteLine("Check {0}", cr2); - while (cr2.c1 != cols - 1 || cr2.r1 != rows - 1) - { - cols++; - cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - } - AddMergedCells(fg, rows, cols, xc); - //ShowMergedCells(fg); - if (xc.Name == "td") - { - AddTableColumn(xc, fg, rows, cols); - } - } - } - - //private static void ShowColumnWidths(VlnFlexGrid fg) - //{ - // foreach (Column c in fg.Cols) - // Console.WriteLine("Width[{0}]={1}", c.Index, c.Width); - //} - private static void ShowMergedCells(VlnFlexGrid fg) - { - for (int r = 0; r < fg.Rows.Count; r++) - { - for (int c = 0; c < fg.Cols.Count; c++) - { - CellRange cr3 = GetMyMergedRange(fg, r, c); - if (fg.MergedRanges.Contains(cr3)) - Console.WriteLine("cr3 r={0},c={1},rng={2}", r, c, cr3); - } - } - } - private static int GetSpan(string span) - { - int retval = int.Parse("0" + (span ?? "")); - if (retval == 0) return 0; - return retval - 1; - } - private static string GetAttribute(XmlNode xc, string attName) - { - string retval = null; - XmlAttribute xa = xc.Attributes[attName]; - if (xa != null) - retval = xa.Value; - return retval; - } - private static void AddMergedCells(VlnFlexGrid fg, int rows, int cols, XmlNode xc) - { - string colspan = GetAttribute(xc, "colspan"); - string rowspan = GetAttribute(xc, "rowspan"); - if (colspan != null || rowspan != null) - { - //AddMergedRanges - int r1 = rows; - int c1 = cols; - int r2 = r1 + GetSpan(rowspan); - if (r2 > fg.Rows.Count) fg.Rows.Count = r2; - int c2 = c1 + GetSpan(colspan); - if (c2 > fg.Cols.Count) fg.Cols.Count = c2; - CellRange cr = new CellRange(); - cr.r1 = r1 - 1; - cr.r2 = r2 - 1; - cr.c1 = c1 - 1; - cr.c2 = c2 - 1; - fg.MergedRanges.Add(cr); - //Console.WriteLine("Merged {0}", cr); - } - } - - private static CellRange GetMyMergedRange(VlnFlexGrid fg, int r, int c) - { - foreach (CellRange cr in fg.MergedRanges) - { - if (cr.r1 <= r && cr.r2 >= r && cr.c1 <= c && cr.c2 >= c) - return cr; - } - return fg.GetMergedRange(r, c); - } - private static Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled); - private static void AddTableColumn(XmlNode xc, VlnFlexGrid fg, int rows, int cols) - { - //Console.WriteLine("Rows {0}, Cols {1}", rows, cols); - if (cols > fg.Cols.Count) - fg.Cols.Count = cols; - string width = GetAttribute(xc, "width"); - if (width != null && width != "" && regNumber.IsMatch(width)) - { - if (width.EndsWith("%")) - fg.Cols[cols - 1].Width = (int)(int.Parse(width.Replace("%", "")) * 96 * 6.5F / 100); - else - { - int w = int.Parse(width)*96/72; - //Console.WriteLine("w[{0}]={1}", cols - 1, w); - fg.Cols[cols - 1].Width = w; - } - } - StringBuilder sb = new StringBuilder(); - string prefix = ""; - foreach (XmlNode xn in xc.ChildNodes) - { - if (xn.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - if (xn.Name == "ul") - { - foreach (XmlNode xn2 in xn.ChildNodes) - { - if (xn2.Name == "li") - { - sb.Append(prefix + "*" + xn.InnerText); - } - if (xn2.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - } - } - } - if (width != null && width != "" && !regNumber.IsMatch(width)) - { - Console.WriteLine("width is not a number {0}, rows {1}, cols {2}, Text='{3}'", width, rows, cols, xc.OuterXml); - } - fg[rows - 1, cols - 1] = sb.ToString(); - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Program.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/Program.cs deleted file mode 100644 index e4c4055d..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace ConvertLocalAlarms -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmConvertLocalAlarms()); - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/AssemblyInfo.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/AssemblyInfo.cs deleted file mode 100644 index 8bc6ca37..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ConvertLocalAlarms")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ConvertLocalAlarms")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4fbb3402-5209-47ff-a6ba-e0da93ef51c4")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.Designer.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.Designer.cs deleted file mode 100644 index 1d521077..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ConvertLocalAlarms.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ConvertLocalAlarms.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.resx b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.Designer.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.Designer.cs deleted file mode 100644 index 3234b140..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.Designer.cs +++ /dev/null @@ -1,110 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ConvertLocalAlarms.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("1000, 600")] - public global::System.Drawing.Size Size { - get { - return ((global::System.Drawing.Size)(this["Size"])); - } - set { - this["Size"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] - public global::System.Drawing.Point Location { - get { - return ((global::System.Drawing.Point)(this["Location"])); - } - set { - this["Location"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string FileName { - get { - return ((string)(this["FileName"])); - } - set { - this["FileName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("250")] - public int Split1 { - get { - return ((int)(this["Split1"])); - } - set { - this["Split1"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute(".\\Sql2008Express")] - public string SqlServer { - get { - return ((string)(this["SqlServer"])); - } - set { - this["SqlServer"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("VEPROMs_BARAKAH")] - public string Database { - get { - return ((string)(this["Database"])); - } - set { - this["Database"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int ProcedureSet { - get { - return ((int)(this["ProcedureSet"])); - } - set { - this["ProcedureSet"] = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.settings b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.settings deleted file mode 100644 index 0d747011..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/Settings.settings +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - 1000, 600 - - - 0, 0 - - - - - - 250 - - - .\Sql2008Express - - - VEPROMs_BARAKAH - - - 0 - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/licenses.licx b/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/licenses.licx deleted file mode 100644 index c4eba94b..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/Properties/licenses.licx +++ /dev/null @@ -1 +0,0 @@ -C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/SaveProcedureLocal.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/SaveProcedureLocal.cs deleted file mode 100644 index a89851ce..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/SaveProcedureLocal.cs +++ /dev/null @@ -1,549 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using log4net; -using Volian.Controls.Library; -using C1.Win.C1FlexGrid; -using System.Data.SqlClient; - - -namespace ConvertLocalAlarms -{ - public partial class frmConvertLocalAlarms : Form - { - string lastLine = ""; - //private void SaveProcedure(string text, string procNumber, string procTitle, int serialNo) - private void SaveProcedure(string text, string procNumber, string procTitle, DocVersionInfo dvi) - { - Console.WriteLine("===> ARP: {0}, AppContext: {1}", dvi.MyFolder.Name, procNumber); - // Add Procedure Number and Title - ItemInfo prev = null; - //if (serialNo == 999999) - prev = dvi.MyItem == null ? null : dvi.MyItem.LastSibling; - //else - //{ - // prev = FindPrevious(dicSerialNo, serialNo); - //} - using (Procedure prc = Procedure.MakeProcedure(dvi, prev, procNumber, procTitle, 0)) - { - ProcedureInfo prci = ProcedureInfo.Get(prc.ItemID); - // dicSerialNo.Add(serialNo, prci); - // Console.WriteLine("{0},{1}", serialNo, prci.ShortPath); - // Add Section - using (Section sec = Section.MakeSection(prci, null, null, "Procedure Content", 10000)) - { - sec.SectionConfig.Section_ColumnMode = SectionConfig.SectionColumnMode.One; - sec.SectionConfig.Section_Pagination = SectionConfig.SectionPagination.Separate; - sec.Save(); - SectionInfo seci = SectionInfo.Get(sec.ItemID); - // TODO: Add High Level Steps - // TODO: Add Substeps - MemoryStream ms = GetMemoryStream(text); - Queue qRead = new Queue(); - using (StreamReader sr = new StreamReader(ms)) - fillQueue(qRead, sr); - Dictionary lookup = new Dictionary(); - lookup.Add(0, prci); - lookup.Add(1, seci); - int level = 2; - int type = 20001; - int lastLevel = 2; - int lastType = 0; - int lastIndent = 0; - int extra = 0; - string lastTab = ""; - int? DeQueueType = null; - E_FromType myFromType = E_FromType.Step; - Queue enQueue = null; - Queue deQueue = null; - int deQueueLevel = 0; - int deQueueLevelLast = 0; - bool wasFromQueue; - bool firstQueue = false; - ItemInfo deQueueItem = null; - bool saveDeQueueInfo = false; - bool isTable = false; - bool lastWasTable = false; - string tableText = null; - string tab = ""; - bool strangeBullet = false; - bool lastNoteHadBullet = false; - while (qRead.Count > 0 || deQueue != null) - { - string lineText; - tableText = null; - if (deQueue != null) - { - wasFromQueue = true; - extra = 1; - lineText = deQueue.Dequeue(); - if (deQueue.Count == 0) - deQueue = null; - if (lineText=="") - { - DeQueueType = 20007; - } - if (lineText=="") - { - DeQueueType = 20006; - } - if (lineText=="") - { - DeQueueType = 20020; - } - if (deQueue != null) - { - if (deQueue.Count > 0) - lineText = deQueue.Dequeue(); - if (deQueue.Count == 0) - deQueue = null; - } - if (lastNoteHadBullet && lineText.Contains("\u2022")) - DeQueueType = lastType; - } - else - { - wasFromQueue = false; - DeQueueType = null; - extra = 0; - string findend = ""; - while (Regex.IsMatch(qRead.Peek(), "<(NOTE|CAUTION|WARNING)>(.*)")) - { - if (enQueue == null) enQueue = new Queue(); - lineText = qRead.Dequeue(); - string sType = Regex.Replace(lineText, "^<(NOTE|CAUTION|WARNING)>(.*)$", "$1"); - lineText = Regex.Replace(lineText, "^<(NOTE|CAUTION|WARNING)>(.*)$", "$2"); - findend = string.Format("", sType); - enQueue.Enqueue(string.Format("<{0}>", sType)); - while (!lineText.Contains(findend)) - { - enQueue.Enqueue(lineText);//.Replace("\u2022","").Trim()); - lineText = qRead.Dequeue().Trim(); - } - lineText = lineText.Replace(findend, ""); - enQueue.Enqueue(lineText); //.Replace("\u2022", "").Trim()); - } - lineText = qRead.Dequeue().TrimEnd(" ".ToCharArray()); - //string append = qRead.Peek(); - //lineText = qRead.Dequeue().Trim(); - if (lineText == ">") lineText = lineText.Replace(">", ""); - else lineText = lineText.Replace("<", "<").Replace(">", ">"); - //} - HasSpecialCharacters(lineText); - if (lineText.StartsWith("")) - { - while (!lineText.Contains("
")) - { - lineText += " " + qRead.Dequeue(); - lineText = Regex.Replace(lineText, ".*", ""); - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(lineText); - LoadTable2(xd.DocumentElement, null, 0); - isTable = true; - if (!lastWasTable) level = lastLevel + 1; - else level = lastLevel; - type = 20008; - tableText = GetTableText(); - //StringBuilder sbxml= new StringBuilder(); - //using(StringWriter sw = new StringWriter(sbxml)) - // _MyFlexGrid.WriteXml(sw); - //using(StringReader sr= new StringReader(sbxml.ToString())) - // _MyFlexGrid.ReadXml(sr); - //Application.DoEvents(); - } - else lineText = Regex.Replace(lineText, "<[^<>]+>", ""); - } - if (lineText.Replace("\t", "").Replace(" ", "") != "") - lastLine = lineText; - Match m = Regex.Match(lineText.Replace('\xFFFD', '\x2022'), @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*|[A-Z]\.|\u2022|)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline); - if (m.Groups[4].Value != "") - { - tab = m.Groups[2].Value; - int indent = m.Groups[1].Value.Length; - if (isTable) - { - // do nothing - if (lastWasTable) - level = lastLevel; - else - level = 1 + lastLevel; - type = 20008; - myFromType = E_FromType.Table; - } - else if (indent == 0 && tab.EndsWith(".0")) // High Level Step - { - level = 2; - type = 20002; - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*\\.[1-9][0-9]*")) // Sub-Substep - { - level = 4; - type = 20001; - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*\\.[1-9][0-9]*")) // Substep - { - level = 3; - type = 20001; - } - else if (Regex.IsMatch(tab, "[A-Z]\\.")) // Sub-Substep - { - level = 5; - type = 20001; - } - else if (tab == "") // Paragraph - { - //Console.WriteLine("Type = 20024, deQueueuType= {0} Level = {1}", DeQueueType, level); - level = lastLevel + 1; - type = 20024; - } - else if (tab == "\u2022")//bullet - { - if (firstQueue) - level = lastLevel + 1; - else if (lastTab == "\u2022") - level = lastLevel; - else - if (lastType == 20007 && lastTab == "") - level = lastLevel + 1; - else - { - level = indent + 3; - strangeBullet = true; - } - type = 20004; - if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]")) - type = 20011; - } - else if (tab == "\u25CB")//bullet - { - level = indent + 4; - type = 20004; - if (Regex.IsMatch(m.Groups[4].Value, "^[0-9]")) - type = 20011; - } - //while (level < lastLevel) - // lookup.Remove(lastLevel--); - if (firstQueue && deQueueLevelLast > 0) level = deQueueLevelLast + 1; - while (level < lookup.Count - 1) - lookup.Remove(lookup.Count - 1); - lastTab = tab; - lastLevel = level; - //lastIndent = indent; - lastWasTable = isTable; - deQueueLevelLast = deQueueLevel; - } - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - saveDeQueueInfo = true; - enQueue = null; - } - int newType = DeQueueType ?? (isTable ? 20008 : type); - if (DeQueueType != null) - { - myFromType = E_FromType.Note; - level = 3; - if(deQueue!=null) - Console.WriteLine("Multiple NoteLines"); - if (tab == "\u2022") - lastNoteHadBullet = true; - } - lastType = newType; - if (enQueue == null) - { - if (lookup.Count < level) - { - using (Step stp = (lookup[lookup.Count - 1] as StepInfo).Get()) - { - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, GetAnnotationText2(lineText), null); - } - } - else if (lookup.Count == level) - { // Make new Step Type Child - using (Step stp = Step.MakeStep(lookup[level - 1], null, null, tableText ?? m.Groups[4].Value, newType, myFromType)) - { - if (strangeBullet) - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null); - ItemInfo myItem = StepInfo.Get(stp.ItemID); - if (isTable) - { - Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), ""); - String footnote = GetFootNote(ms, qRead); - if (footnote.Length > 0) // Make Table FootNote - Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step); - } - isTable = false; - lookup.Add(level, myItem); - //Console.WriteLine("+++B tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level); - //Console.WriteLine("+++A tab = {0}, Lookup.Count = {1}, Level = {2}",tab, lookup.Count, level); - if (saveDeQueueInfo) - { - deQueueLevel = level; - deQueueItem = lookup[level]; - saveDeQueueInfo = false; - } - if (firstQueue) firstQueue = false; - - } - } - else - { // MakeConfig Next Child - int previousType = ((int)lookup[level].MyContent.Type); - if (firstQueue && DeQueueType != null) - { - previousType = (int)DeQueueType; - level = deQueueLevel + 1; - } - using (Step stp = Step.MakeStep(lookup[level - 1], lookup[level], null, tableText ?? m.Groups[4].Value, previousType, myFromType)) - { - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, string.Format("Type Change {0} to {1}", newType, ((int)lookup[level].MyContent.Type)), null); - if (strangeBullet) - Annotation.MakeAnnotation(stp, AnnotationType.GetByNameOrCreate("Conversion Error"), null, "Strange Bullet", null); - strangeBullet = false; - ItemInfo myItem = StepInfo.Get(stp.ItemID); - if (isTable) - { - Grid.MakeGrid(stp.MyContent, _MyFlexGrid.GetXMLData(), ""); - String footnote = GetFootNote(ms, qRead); - if (footnote.Length > 0)// Make Table Footnote - Step.MakeStep(myItem, null, null, footnote, 20024, E_FromType.Step); - } - isTable = false; - //Console.WriteLine(">>> tab = {0}, Lookup.Count = {1}, Level = {2}", tab, lookup.Count, level); - lookup[level] = myItem; - if (saveDeQueueInfo) - { - deQueueLevel = level; - deQueueItem = lookup[level]; - saveDeQueueInfo = false; - } - if (firstQueue) firstQueue = false; - } - } - myFromType = E_FromType.Step; - if (deQueue == null && deQueueItem != null) - { - level = deQueueLevel; - while (level < lookup.Count) - lookup.Remove(lookup.Count - 1); - lookup[level] = deQueueItem; - deQueueItem = null; - DeQueueType = null; - } - } - //else - //{ - // enQueue.Enqueue(lineText); - //} - DeQueueType = null; - } - } - } - if (runOne) MessageBox.Show("Done", "Converted"); - } - - private ItemInfo FindLocation(ItemInfo myItem, string procNumber) - { - while (myItem != null) - { - if (myItem.DisplayNumber.CompareTo(procNumber) >= 0) - return myItem.MyPrevious; - myItem = myItem.NextItem; - } - return myItem; - } - private string MakeConfig(string fmt, params string [] args) - { - string [] atts = new string[args.Length]; - args.CopyTo(atts,0); - for(int i=0; i",">"); - return string.Format(fmt, atts); - } - private void fillQueue(Queue qread, StreamReader sr) - { - while(sr.Peek() > 0) - qread.Enqueue(sr.ReadLine()); - } - //public string NextLine - //{ - // get { return _NextLine; } - // set { _NextLine = value; } - //} - private string GetFootNote(MemoryStream ms, Queue qRead) - { - string sep = ""; - StringBuilder sb = new StringBuilder(); - while(qRead.Count > 0) - { - // Read a line at a time - string str = qRead.Peek(); - str = Regex.Replace(str, "<[^<>]+>", "").Trim(" \t".ToCharArray()).Replace(">", ""); - str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u9679?"); - //str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u7?"); - // If Text begins with number then - if(Regex.IsMatch(str,"[0-9].*") || str.StartsWith("")) - return sb.ToString(); - //append string - if (sb.ToString() != "" || str != "") - { - sep = "\r\n"; - } - sb.Append(sep + qRead.Dequeue()); - } - return sb.ToString(); - } - private void ProcessChars(string str) - { - foreach (char c in str) - { - if (c < 0x20 || c > 0x7F) - Console.WriteLine("{0:X4}", (int)c); - } - } - public void ResetSpecial() - { - FoundSpecial = new List(); - } - List FoundSpecial = new List(); - private void HasSpecialCharacters(string lineText) - { - StringBuilder sb = new StringBuilder(); - foreach (char c in lineText) - { - if ((c < 0x20 || c > 0x7F) && !FoundSpecial.Contains(c)) - { - Console.WriteLine("*** Special Character {0:X4}", (int)c); - FoundSpecial.Add(c); - } - } - } - - //private static string GetAnnotationText(string fileName) - //{ - // return string.Format("FileName:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}" , - // fileName,ShortName,FullName,ApSystem,PNSNo ,RelatedFunction); - //} - private static string GetAnnotationText2(string lineText) - { - //return string.Format("LineText:{0}\r\nShortName:{1}\r\nFullName:{2}\r\nSystem:{3}\r\nPNSNo:{4}\r\nRelatedFunction:{5}", - // lineText, ShortName, FullName, apSystem, PNSNo, RelatedFunction); - return string.Format("LineText:{0}", - lineText); - } - //private void fillQueue(Queue qread, StreamReader sr) - //{ - // while (sr.Peek() > 0) - // qread.Enqueue(sr.ReadLine()); - //} - //private string _NextLine; - - //public string NextLine - //{ - // get { return _NextLine; } - // set { _NextLine = value; } - //} - //private string GetFootNote(MemoryStream ms, Queue qRead) - //{ - // string sep = ""; - // StringBuilder sb = new StringBuilder(); - // while (qRead.Count > 0) - // { - // // Read a line at a time - // string str = qRead.Peek(); - // str = Regex.Replace(str, "<[^<>]+>", "").Trim(" \t".ToCharArray()).Replace(">", ""); - // str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u9679?"); - // //str = str.Replace('\x25CB', 'o').Replace("\u2022", "\\u7?"); - // // If Text begins with number then - // if (Regex.IsMatch(str, "[0-9].*") || str.StartsWith("
")) - // return sb.ToString(); - // //append string - // if (sb.ToString() != "" || str != "") - // { - // sep = "\r\n"; - // } - // sb.Append(sep + qRead.Dequeue()); - // } - // return sb.ToString(); - //} - - //private void ProcessChars(string str) - //{ - // foreach (char c in str) - // { - // if (c < 0x20 || c > 0x7F) - // Console.WriteLine("{0:X4}", (int)c); - // } - //} - //public void ResetSpecial() - //{ - // FoundSpecial = new List(); - //} - //List FoundSpecial = new List(); - //private void HasSpecialCharacters(string lineText) - //{ - // StringBuilder sb = new StringBuilder(); - // foreach (char c in lineText) - // { - // if ((c < 0x20 || c > 0x7F) && !FoundSpecial.Contains(c)) - // { - // Console.WriteLine("*** Special Character {0:X4}", (int)c); - // FoundSpecial.Add(c); - // } - // } - //} - } - public class StepLookup : SortedDictionary - { - public StepInfo this[int i] - { - get - { - if (this.ContainsKey(i.ToString())) return base[i.ToString()]; - return null; - } - set - { - if (i > this.Count) - throw new Exception("Gap in Stack"); - if (value == null) - throw new Exception("Null StepInfo"); - //if (value.MyHLS.Ordinal==5 && (value.IsNote || value.IsCaution )) - // Volian.Base.Library.vlnStackTrace.ShowStackLocal(2,5,"=====> Adding Caution or Note on Step 5 {0}",value); - if (this.ContainsKey(i.ToString())) - { - base[i.ToString()] = value; - while (this.ContainsKey((i + 1).ToString())) - base.Remove((base.Count - 1).ToString()); - } - else base.Add(i.ToString(), value); - //ListMySteps("Set ", this); - } - } - public void AddOne(StepInfo previousStep) - { - this[this.Count] = previousStep; - } - private static void ListMySteps(string str, StepLookup mySteps) - { - int i = 0; - foreach (string key in mySteps.Keys) - { - if (key != i.ToString()) - Console.WriteLine("{0} {1} {2} {3}", str, i, key, mySteps[key].DisplayText); - i++; - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.Designer.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.Designer.cs deleted file mode 100644 index 0a797783..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.Designer.cs +++ /dev/null @@ -1,406 +0,0 @@ -namespace ConvertLocalAlarms -{ - partial class frmConvertLocalAlarms - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.panel1 = new System.Windows.Forms.Panel(); - this.label1 = new System.Windows.Forms.Label(); - this.panel2 = new System.Windows.Forms.Panel(); - this.btn_All = new System.Windows.Forms.Button(); - this.btnConvert = new System.Windows.Forms.Button(); - this.label7 = new System.Windows.Forms.Label(); - this.tbServer = new System.Windows.Forms.TextBox(); - this.cmbDatabase = new System.Windows.Forms.ComboBox(); - this.label4 = new System.Windows.Forms.Label(); - this.cmbDocVersion = new System.Windows.Forms.ComboBox(); - this.label5 = new System.Windows.Forms.Label(); - this.btn_Run = new System.Windows.Forms.Button(); - this.btn_Browse = new System.Windows.Forms.Button(); - this.label6 = new System.Windows.Forms.Label(); - this.tbFileName = new System.Windows.Forms.TextBox(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.sc1 = new System.Windows.Forms.SplitContainer(); - this.tcXML = new System.Windows.Forms.TabControl(); - this.tpXML = new System.Windows.Forms.TabPage(); - this.tbPROMS = new System.Windows.Forms.TextBox(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tpStructure = new System.Windows.Forms.TabPage(); - this.tv = new System.Windows.Forms.TreeView(); - this.tpGrid = new System.Windows.Forms.TabPage(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.tmr = new System.Windows.Forms.Timer(this.components); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.sc1)).BeginInit(); - this.sc1.Panel1.SuspendLayout(); - this.sc1.Panel2.SuspendLayout(); - this.sc1.SuspendLayout(); - this.tcXML.SuspendLayout(); - this.tpXML.SuspendLayout(); - this.tabControl1.SuspendLayout(); - this.tpStructure.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Controls.Add(this.label1); - this.panel1.Controls.Add(this.panel2); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(954, 88); - this.panel1.TabIndex = 0; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(23, 13); - this.label1.TabIndex = 1; - this.label1.Text = "File"; - // - // panel2 - // - this.panel2.Controls.Add(this.btn_All); - this.panel2.Controls.Add(this.btnConvert); - this.panel2.Controls.Add(this.label7); - this.panel2.Controls.Add(this.tbServer); - this.panel2.Controls.Add(this.cmbDatabase); - this.panel2.Controls.Add(this.label4); - this.panel2.Controls.Add(this.cmbDocVersion); - this.panel2.Controls.Add(this.label5); - this.panel2.Controls.Add(this.btn_Run); - this.panel2.Controls.Add(this.btn_Browse); - this.panel2.Controls.Add(this.label6); - this.panel2.Controls.Add(this.tbFileName); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(0, 0); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(954, 88); - this.panel2.TabIndex = 9; - // - // btn_All - // - this.btn_All.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btn_All.Location = new System.Drawing.Point(862, 46); - this.btn_All.Name = "btn_All"; - this.btn_All.Size = new System.Drawing.Size(37, 25); - this.btn_All.TabIndex = 12; - this.btn_All.Text = "All"; - this.btn_All.UseVisualStyleBackColor = true; - this.btn_All.Click += new System.EventHandler(this.btnAll_Click); - // - // btnConvert - // - this.btnConvert.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnConvert.Location = new System.Drawing.Point(754, 46); - this.btnConvert.Name = "btnConvert"; - this.btnConvert.Size = new System.Drawing.Size(76, 28); - this.btnConvert.TabIndex = 11; - this.btnConvert.Text = "Convert"; - this.btnConvert.UseVisualStyleBackColor = true; - this.btnConvert.Click += new System.EventHandler(this.btnConvert_Click); - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(12, 35); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(38, 13); - this.label7.TabIndex = 10; - this.label7.Text = "Server"; - // - // tbServer - // - this.tbServer.Location = new System.Drawing.Point(56, 32); - this.tbServer.Name = "tbServer"; - this.tbServer.Size = new System.Drawing.Size(190, 20); - this.tbServer.TabIndex = 9; - // - // cmbDatabase - // - this.cmbDatabase.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbDatabase.FormattingEnabled = true; - this.cmbDatabase.Location = new System.Drawing.Point(331, 32); - this.cmbDatabase.Name = "cmbDatabase"; - this.cmbDatabase.Size = new System.Drawing.Size(417, 21); - this.cmbDatabase.TabIndex = 8; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(11, 61); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(75, 13); - this.label4.TabIndex = 7; - this.label4.Text = "Procedure Set"; - // - // cmbDocVersion - // - this.cmbDocVersion.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbDocVersion.FormattingEnabled = true; - this.cmbDocVersion.Location = new System.Drawing.Point(92, 58); - this.cmbDocVersion.Name = "cmbDocVersion"; - this.cmbDocVersion.Size = new System.Drawing.Size(656, 21); - this.cmbDocVersion.TabIndex = 6; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(259, 35); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(53, 13); - this.label5.TabIndex = 4; - this.label5.Text = "Database"; - // - // btn_Run - // - this.btn_Run.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btn_Run.Location = new System.Drawing.Point(905, 3); - this.btn_Run.Name = "btn_Run"; - this.btn_Run.Size = new System.Drawing.Size(37, 25); - this.btn_Run.TabIndex = 3; - this.btn_Run.Text = "Run"; - this.btn_Run.UseVisualStyleBackColor = true; - this.btn_Run.Click += new System.EventHandler(this.btnRun_Click); - // - // btn_Browse - // - this.btn_Browse.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btn_Browse.Location = new System.Drawing.Point(827, 3); - this.btn_Browse.Name = "btn_Browse"; - this.btn_Browse.Size = new System.Drawing.Size(72, 24); - this.btn_Browse.TabIndex = 2; - this.btn_Browse.Text = "Browse..."; - this.btn_Browse.UseVisualStyleBackColor = true; - this.btn_Browse.Click += new System.EventHandler(this.btnBrowse_Click); - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(12, 9); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(23, 13); - this.label6.TabIndex = 1; - this.label6.Text = "File"; - // - // tbFileName - // - this.tbFileName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbFileName.Location = new System.Drawing.Point(56, 6); - this.tbFileName.Name = "tbFileName"; - this.tbFileName.Size = new System.Drawing.Size(756, 20); - this.tbFileName.TabIndex = 0; - this.tbFileName.Text = "H:\\Barakah Alarms\\1N2-OP-ARP-CS-0001_Rev_02_FINAL_Zipped_XML_20190804\\ARP-3442-10" + - "01 CS CNMT Spray HDR Block VLV V0001 TRBL.xml"; - this.tbFileName.TextChanged += new System.EventHandler(this.tbFileName_TextChanged); - // - // ofd - // - this.ofd.Filter = "Text Files|*.txt"; - // - // sc1 - // - this.sc1.Dock = System.Windows.Forms.DockStyle.Fill; - this.sc1.Location = new System.Drawing.Point(0, 88); - this.sc1.Name = "sc1"; - // - // sc1.Panel1 - // - this.sc1.Panel1.Controls.Add(this.tcXML); - // - // sc1.Panel2 - // - this.sc1.Panel2.Controls.Add(this.tabControl1); - this.sc1.Size = new System.Drawing.Size(954, 392); - this.sc1.SplitterDistance = 372; - this.sc1.TabIndex = 1; - // - // tcXML - // - this.tcXML.Controls.Add(this.tpXML); - this.tcXML.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcXML.Location = new System.Drawing.Point(0, 0); - this.tcXML.Name = "tcXML"; - this.tcXML.SelectedIndex = 0; - this.tcXML.Size = new System.Drawing.Size(372, 392); - this.tcXML.TabIndex = 2; - // - // tpXML - // - this.tpXML.Controls.Add(this.tbPROMS); - this.tpXML.Location = new System.Drawing.Point(4, 22); - this.tpXML.Name = "tpXML"; - this.tpXML.Padding = new System.Windows.Forms.Padding(3); - this.tpXML.Size = new System.Drawing.Size(364, 366); - this.tpXML.TabIndex = 1; - this.tpXML.Text = "Raw"; - this.tpXML.UseVisualStyleBackColor = true; - // - // tbPROMS - // - this.tbPROMS.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbPROMS.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbPROMS.Location = new System.Drawing.Point(3, 3); - this.tbPROMS.Multiline = true; - this.tbPROMS.Name = "tbPROMS"; - this.tbPROMS.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbPROMS.Size = new System.Drawing.Size(358, 360); - this.tbPROMS.TabIndex = 1; - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tpStructure); - this.tabControl1.Controls.Add(this.tpGrid); - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl1.Location = new System.Drawing.Point(0, 0); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(578, 392); - this.tabControl1.TabIndex = 0; - // - // tpStructure - // - this.tpStructure.Controls.Add(this.tv); - this.tpStructure.Location = new System.Drawing.Point(4, 22); - this.tpStructure.Name = "tpStructure"; - this.tpStructure.Size = new System.Drawing.Size(570, 366); - this.tpStructure.TabIndex = 2; - this.tpStructure.Text = "Structure"; - this.tpStructure.UseVisualStyleBackColor = true; - // - // tv - // - this.tv.Dock = System.Windows.Forms.DockStyle.Fill; - this.tv.Location = new System.Drawing.Point(0, 0); - this.tv.Name = "tv"; - this.tv.Size = new System.Drawing.Size(570, 366); - this.tv.TabIndex = 0; - // - // tpGrid - // - this.tpGrid.Location = new System.Drawing.Point(4, 22); - this.tpGrid.Name = "tpGrid"; - this.tpGrid.Size = new System.Drawing.Size(570, 366); - this.tpGrid.TabIndex = 3; - this.tpGrid.Text = "Grid"; - this.tpGrid.UseVisualStyleBackColor = true; - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 480); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(954, 22); - this.statusStrip1.TabIndex = 2; - this.statusStrip1.Text = "statusStrip1"; - this.statusStrip1.ItemClicked += new System.Windows.Forms.ToolStripItemClickedEventHandler(this.statusStrip1_ItemClicked); - this.statusStrip1.Click += new System.EventHandler(this.tsslStatus_Click); - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - this.tsslStatus.Click += new System.EventHandler(this.tsslStatus_Click); - // - // tmr - // - this.tmr.Tick += new System.EventHandler(this.tmr_Tick); - // - // frmConvertLocalAlarms - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(954, 502); - this.Controls.Add(this.sc1); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Name = "frmConvertLocalAlarms"; - this.Text = "Convert Alarms"; - this.Load += new System.EventHandler(this.frmConvertAlarms_Load); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.sc1.Panel1.ResumeLayout(false); - this.sc1.Panel2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.sc1)).EndInit(); - this.sc1.ResumeLayout(false); - this.tcXML.ResumeLayout(false); - this.tpXML.ResumeLayout(false); - this.tpXML.PerformLayout(); - this.tabControl1.ResumeLayout(false); - this.tpStructure.ResumeLayout(false); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.SplitContainer sc1; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.TabControl tcXML; - private System.Windows.Forms.TabPage tpXML; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tpStructure; - private System.Windows.Forms.TreeView tv; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.TextBox tbServer; - private System.Windows.Forms.ComboBox cmbDatabase; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.ComboBox cmbDocVersion; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Button btn_Run; - private System.Windows.Forms.Button btn_Browse; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.TextBox tbFileName; - private System.Windows.Forms.Button btnConvert; - private System.Windows.Forms.Button btn_All; - private System.Windows.Forms.TabPage tpGrid; - private System.Windows.Forms.TextBox tbPROMS; - private System.Windows.Forms.Timer tmr; - } -} - diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.cs b/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.cs deleted file mode 100644 index 16a61091..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.cs +++ /dev/null @@ -1,727 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using System.Text.RegularExpressions; -using log4net; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; -using C1.Win.C1FlexGrid; -using System.Data.SqlClient; - -namespace ConvertLocalAlarms -{ - public partial class frmConvertLocalAlarms : Form - { - public frmConvertLocalAlarms() - { - InitializeComponent(); - } - private void SetDatabaseConnection() - { - Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True",tbServer.Text,cmbDatabase.SelectedText ); - } - private void btnBrowse_Click(object sender, EventArgs e) - { - FileInfo fi = new FileInfo(tbFileName.Text); - ofd.InitialDirectory = fi.DirectoryName; - ofd.FileName = fi.Name; - if (ofd.ShowDialog() == System.Windows.Forms.DialogResult.OK) - { - tbFileName.Text = ofd.FileName; - ProcessTxt(); - } - } - private void ProcessTxtFile(string fileName) - { - //FileInfo fi = new FileInfo(fileName); - //StreamReader sr = fi.OpenText(); - //ProcessHeader(sr); - //ProcTextAll = tbPROMS.Text = sr.ReadToEnd(); - //HasSpecialCharacters(ProcTextAll); - //sr.Close(); - //SaveTree(ProcTextAll, ProcNumber, ProcTitle); - FileInfo fi = new FileInfo(fileName); - FileStream sr = fi.OpenRead(); - byte[] buffer = new byte[fi.Length]; - sr.Read(buffer, 0, (int) fi.Length); - string str = Encoding.UTF7.GetString(buffer).Replace("\x95", "\u2022"); - ProcessHeader(str); - int headercount = str.IndexOf("Setpoint"); - headercount = str.IndexOf("\r\n", headercount); - ProcTextAll = tbPROMS.Text = str.Substring(headercount + 2); - sr.Close(); - SaveTree(ProcTextAll, ProcNumber, ProcTitle); - } - Regex regHeader = new Regex("([ A-Z.a-z]+) = '([^']+)'.*", RegexOptions.Compiled); - private void ProcessHeader(string str) - { - ProcNumber=""; - ProcTitle=""; - int offset = 0; - int linelength = 0; - for (int i = 0; i < 5; i++) - { - linelength = str.IndexOf("\r\n",offset)-offset; - string txt = str.Substring(offset,linelength); - offset += linelength + 2; - Match m = regHeader.Match(txt); - switch (i) - { - case 0: - break; - case 1: - if(m.Groups[1].Value == "Alarm") ProcTitle = m.Groups[2].Value; - break; - case 2: - if(m.Groups[1].Value == "AlarmID") ProcNumber = m.Groups[2].Value; - break; - case 3: - break; - case 4: - break; - } - } - } - private void ProcessTxt() - { - ProcessTxtFile(tbFileName.Text); - } - //private void ProcessXML() - //{ - // //string fileName = tbFileName.Text; - // //ProcessXmlFile(fileName); - //} - //private void ProcessXmlFile(string fileName) - //{ - // //UpdateHTML = false; - // //tbXML.Clear(); - // //UpdateHTML = true; - // //XmlDocument xDoc = new XmlDocument(); - // //xDoc.Load(fileName); - // //XmlNode xn = xDoc.DocumentElement.LastChild.LastChild.LastChild; - // //string html = GetHtml(xn); - // //tbXML.Text = html; - //} - //private static string GetHtml(XmlNode xn) - //{ - // XmlNode pr = xn.PreviousSibling; - // XmlAttribute xa; - // string html = xn.Attributes["content"].Value; - // while (pr != null && pr.Name == "NoteInstruction") - // { - // html = MergeHTML(pr.Attributes["content"].Value, html); - // pr = pr.PreviousSibling; - // } - // return html; - //} - - //private static string MergeHTML(string part1, string part2) - //{ - // part1 = part1.Replace(""; - //public string HtmlPrefix - //{ - // get { return _HtmlPrefix; } - // set { _HtmlPrefix = value; } - //} - //private void XMLChanged(string xml) - //{ - // Application.DoEvents(); - // xml = "\n" + xml; - // xml = xml.Replace(HtmlPrefix, ""); - // //xml = xml.Replace("\x09", "[Tab]"); - // //xml = xml.Replace("text-indent:0px;\">", "text-indent:0px;\">\r\n"); - // //xml = xml.Replace(" \x09", "\r\n "); - // //xml = xml.Replace("\x09", " "); - // xml = Regex.Replace(xml, "
", "
"); - // xml = Regex.Replace(xml, "
", "
"); - // xml = Regex.Replace(xml, "\\]+\\>", ""); - // xml = Regex.Replace(xml, "\\", ""); - // xml = Regex.Replace(xml, "\\[ \r\n]+\\

]+\\>", "
\r\n"); - // xml = Regex.Replace(xml, "\\

]+\\>", "
\r\n"); - // xml = Regex.Replace(xml, @"
[ \t\r\n]+\[", @"\line ["); - // xml = Regex.Replace(xml, "\\

", ""); - // xml = Regex.Replace(xml, @"\]\t{4,5}", "]\r\n"); - // xml = Regex.Replace(xml, "
\t+(?![[\\u2022])", " "); - // xml = Regex.Replace(xml, "
\t+(?![[\\u2022])", " "); - // xml = Regex.Replace(xml, "\t\t+", " "); - // xml = Regex.Replace(xml, "
", "\r\n"); - // xml = Regex.Replace(xml, "\r\n +", "\r\n"); - // xml = Regex.Replace(xml, "(\r\n){2,}", "\r\n"); - // //aml = Regex.Replace(xml," - // Application.DoEvents(); - // byte[] bytes = Encoding.UTF8.GetBytes(xml); - // MemoryStream ms = new MemoryStream(); - // ms.Write(bytes, 0, bytes.Length); - // ms.Position = 0; - // XmlDocument xDoc2 = new XmlDocument(); - // xDoc2.Load(ms); - // //FileInfo fi = new FileInfo("C:\\Temp\\Alarm.xml"); - // //StreamWriter sw = fi.CreateText(); - // //sw.Write(xml); - // //sw.Close(); - // //XmlDocument xDoc2 = new XmlDocument(); - // //// Lookfor special characters - // ////FindSpecialCharacters(xml); - // //xDoc2.Load(fi.FullName); - // XmlNode xn3 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[0]; - // string prcSerialNoFldName = GetProcInfo(xn3, 0, 0, 0); - // string prcSerialNoValue = GetProcInfo(xn3, 0, 1, 0); - // SerialNo = int.Parse(prcSerialNoValue); - // string prcTitleFldName = GetProcInfo(xn3, 1, 0, 0); - // string prcTitleValue = GetProcInfo(xn3, 1, 1, 0); - // string prcNumberFldName = GetProcInfo(xn3, 2, 0, 0); - // string prcNumberValue = GetProcInfo(xn3, 2, 1, 0); - // string prcSourceFldName = GetProcInfo(xn3, 3, 0, 0); - // string prcSourceValue = GetProcInfo(xn3, 3, 1, 0); - // string prcSetpointFldName = GetProcInfo(xn3, 4, 0, 0); - // string prcSetpointValue = GetProcInfo(xn3, 4, 1, 0); - // ProcNumber = prcNumberValue; - // ProcTitle = prcTitleValue; - // // Skip First Node - // UpdateHTML = false; - // tbPROMS.Clear(); - // tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcSerialNoFldName,prcSerialNoValue)); - // tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcTitleFldName,prcTitleValue)); - // tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcNumberFldName,prcNumberValue)); - // tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcSourceFldName,prcSourceValue)); - // tbPROMS.AppendText(string.Format("{0} = '{1}'\r\n",prcSetpointFldName,prcSetpointValue)); - // StringBuilder sbAllText = new StringBuilder(); - // for (int i = 1; i < xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes.Count; i++) - // { - // XmlNode xn2 = xDoc2.ChildNodes[1].ChildNodes[1].ChildNodes[i]; - // sbAllText.Append(xn2.OuterXml); - // } - // tbPROMS.AppendText(sbAllText.ToString().Replace(" ", "\xB7")); - // SaveTree(sbAllText.ToString(), prcNumberValue, prcTitleValue); - // ProcTextAll = sbAllText.ToString(); - // UpdateHTML = true; - //} - String ProcTextAll; - //int SerialNo; - String ProcNumber; - String ProcTitle; - private void SaveTree(string text, string procNumber, string procTitle) - { - tv.Nodes.Clear(); - MemoryStream ms = GetMemoryStream(text); - using (TextReader tr = new StreamReader(ms)) - { - Dictionary lookup = new Dictionary(); - lookup.Add(0, tv.Nodes.Add(string.Format("{0} - {1}", procNumber, procTitle))); - int level = 0; - int lastLevel = 0; - int lastIndent = 0; - int extra = 0; - string lastTab = ""; - Queue enQueue = null; - Queue deQueue = null; - while (tr.Peek() >= 0 || deQueue != null) - { - string lineText; - if (deQueue != null) - { - extra = 1; - lineText = deQueue.Dequeue(); - if (deQueue.Count == 0) - deQueue = null; - } - else - { - extra = 0; - lineText = tr.ReadLine(); - if (lineText == "NOTE") - enQueue = new Queue(); - if (lineText.StartsWith("")) - { - enQueue = new Queue(); - enQueue.Enqueue("NOTE"); - } - lineText = lineText.Replace("", ""); - } - // Strip XML Tags - lineText = Regex.Replace(lineText, "<[^<>]+>", ""); - if (lineText.Replace("\t", "") != "") - { - Match m = Regex.Match(lineText, @"^(\t*)([1-9][0-9]*\.0|[1-9][0-9]*\.[1-9][0-9]*|[1-9][0-9]*\.[1-9][0-9]*\.[1-9][0-9]*|\u2022)([\t ]+)([^\u2022]*)$", RegexOptions.Multiline); - string tab = m.Groups[2].Value; - int indent = m.Groups[1].Value.Length; - if (indent == 0 && tab.EndsWith(".0")) // High Level Step - { - level = 1; - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - enQueue = null; - } - } - else if (Regex.IsMatch(tab, "[1-9][0-9]*[.0-9]*")) // Substep - { - level = 1 + tab.Length - tab.Replace(".","").Length; - if (deQueue == null && enQueue != null) - { - deQueue = enQueue; - enQueue = null; - } - } - else if (tab == "") // Paragraph - { - if (Regex.IsMatch(lineText, "(NOTE|NOTES|CAUTION|CAUTIONS)")) extra = 0; - level = lastLevel + 1; - } - else if (tab == "\u2022")//bullet - level = indent + 2; - if (level < lastLevel) - while (level < lastLevel) lookup.Remove(lastLevel--); - string txt = string.Format("{0}|{1}||{2}", m.Groups[1].Value, m.Groups[2].Value, m.Groups[4].Value); - if (txt == "|||") txt = lineText; - if (enQueue == null) - { - if (level > lookup.Count - extra) extra = 0; - if(level + extra -1 == lookup.Count) - Console.WriteLine("Problems {0}, {1}",procNumber,txt); - else if (lookup.Count <= level) - lookup.Add(level + extra, lookup[level + extra - 1].Nodes.Add(txt)); - else - lookup[level + extra] = lookup[level + extra - 1].Nodes.Add(txt); - } - else - { - enQueue.Enqueue(lineText); - } - lastTab = tab; - lastLevel = level; - lastIndent = indent; - } - } - } - } - //private ItemInfo FindPrevious(SortedDictionary dicSerialNo, int serialNo) - //{ - // ItemInfo lastItem = null; - // foreach (int serno in dicSerialNo.Keys) - // { - // if (serno > serialNo) - // return lastItem; - // lastItem = dicSerialNo[serno]; - // } - // return lastItem; - //} - private bool runOne = true; - private static MemoryStream GetMemoryStream(string text) - { - byte[] bytes = Encoding.UTF8.GetBytes(text); - MemoryStream ms = new MemoryStream(bytes); - ms.Position = 0; - return ms; - } - //private string GetProcInfo(XmlNode xn3, int p1, int p2, int p3) - //{ - // return xn3.ChildNodes[p1].ChildNodes[p2].ChildNodes[p3].Value.Trim("\r\n ".ToCharArray()); - //} - //private bool _UpdateHTML = true; - //public bool UpdateHTML - //{ - // get { return _UpdateHTML; } - // set { _UpdateHTML = value; } - //} - private string IndentifySpecialCharacters(string txt) - { - StringBuilder sb = new StringBuilder(); - foreach (char c in txt) - { - if (((int)c) < 32 || ((int)c) > 256) - sb.Append(string.Format("[x{0:X4}]", (int)c)); - else - sb.Append(c == ' ' ? '\xb7' : c); - } - return sb.ToString(); - } - private void btnRun_Click(object sender, EventArgs e) - { - ProcessTxt(); - } - //Regex regColorCode = new Regex(@"(\<[^<>]+\>)([^<>]*)", RegexOptions.Singleline); - //Regex regColorCodeText = new Regex("(\t*)([^\t]*)", RegexOptions.Singleline); - //private void ColorCoded(string str) - //{ - // rtbXML.Clear(); - // Color fColor = Color.PaleTurquoise; - // Color fNext = Color.PaleTurquoise; - // foreach(Match m in regColorCode.Matches(str)) - // { - // string fmt = m.Groups[1].Value; - // string txt = m.Groups[2].Value; - // if (fmt.StartsWith("") - // fNext = Color.PaleTurquoise; - // else if (fmt == "
") - // fColor = Color.PeachPuff; - // else if (fmt == "

") - // fColor = Color.LightPink; - // AddToXML(fmt, fColor); - // fColor = fNext; - // foreach (Match mm in regColorCodeText.Matches(txt)) - // { - // string tabs = mm.Groups[1].Value; - // string nontabs = mm.Groups[2].Value; - // AddToXML(tabs, Color.Khaki); - // AddToXML(nontabs, Color.Yellow); - // } - // } - //} - - //private void AddToXML(string txt, Color fColor) - //{ - // if(txt=="") return; - // rtbXML.SelectionStart = rtbXML.TextLength; - // rtbXML.SelectionBackColor = fColor; - // rtbXML.SelectedText = txt; - //} - private double GetMyOrder(Csla.SortedBindingList myList, string DVIFolderName) - { - double lastNum = 0; - // Console.WriteLine("--->>> FolderName {0} Insert Count {1}",DVIFolderName, myList.Count); - foreach (FolderInfo myFolder in myList) - { - // Console.WriteLine("--->>> FolderName {0} Insert Name {1} Insert Order {2}",DVIFolderName, myFolder.Name, myFolder.ManualOrder); - if (myFolder.Name.CompareTo(DVIFolderName) >= 0) - return (lastNum + (double)myFolder.ManualOrder) / 2.0; - lastNum = myFolder.ManualOrder ?? 1.0; - } - return lastNum + 1; - } - private void tmr_Tick(object sender, EventArgs e) - { - tmr.Enabled = false; - // If timer on the its ready to proccess - int idnew = 0; - string str = AutoFolder; - if (str != null && str.Length > 5) - { - - DirectoryInfo di = new DirectoryInfo(str); - DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - VEPROMS.CSLA.Library.FolderInfo grandParent = dvi.ActiveParent.ActiveParent as FolderInfo; - using (VEPROMS.CSLA.Library.Folder flder = MakeFolder(str, grandParent)) - { - ROFstInfo fst = dvi.DocVersionAssociations[0].MyROFst; - flder.ManualOrder = 0; - double myOrder = GetMyOrder(grandParent.SortedChildFolders, str); flder.ManualOrder = myOrder; - //Console.WriteLine("myOrder = {0}, flder = {1}", myOrder, flder.ManualOrder); - flder.Save(); - // create a a DocVersion - - using (DocVersion dv = DocVersion.MakeDocVersion(flder, "Working Draft", null, null, null, null)) - { - dv.DocVersionAssociations.Add(fst.Get()); - dv.Save(); - idnew = dv.VersionID; - } - } - - ProcessFolder(di, DocVersionInfo.Get(idnew)); - } - this.Close(); - } - - private static Folder MakeFolder(string str, VEPROMS.CSLA.Library.FolderInfo grandParent) - { - int num = 0; - foreach(FolderInfo chld in grandParent.ChildFolders) - { - if(chld.Name.StartsWith(str)) - { - if(chld.Name.StartsWith(str + ".")) - { - string str2=chld.Name.Substring(str.Length+1); - num = Math.Max(int.Parse(str2)+1,num); - } - else num=1; - } - } - return Folder.MakeFolder(grandParent.Get(), null, str+(num==0?"":"." + num.ToString()), str, str.Substring(12, 2), null, 1, null); - } - - private static string _AutoFolder = null; - private static string AutoFolder - { - get - { - if (_AutoFolder == null) - { - _AutoFolder = System.Environment.CommandLine; - _AutoFolder = _AutoFolder.Substring(_AutoFolder.IndexOf(@".exe"" ") + 6).Trim(" \t\r\n".ToCharArray()); - } - if (_AutoFolder.Length < 1) - return null; - return _AutoFolder; - } - } - private void frmConvertAlarms_Load(object sender, EventArgs e) - { - _MyFlexGrid = new VlnFlexGrid(); - LoadSettings(); - SetEventHandlers(); - string str = AutoFolder; - if (str != null && str.Length > 5) - { - tmr.Enabled = true; - } - - } - private void SetEventHandlers() - { - tbFileName.TextChanged += tbFileName_TextChanged; - Move += frmConvertAlarms_Move; - Resize += frmConvertAlarms_Resize; - sc1.SplitterMoved += sc1_SplitterMoved; - //sc2.SplitterMoved += sc2_SplitterMoved; - tbServer.TextChanged+=tbServer_TextChanged; - cmbDatabase.TextChanged+=cmbDatabase_TextChanged; - cmbDatabase.Click += cmbDatabase_Click; - cmbDocVersion.TextChanged+=cmbDocVersion_TextChanged; - //BuildTableCombo(); - //BuildProcedureSetCombo(); - } - - void cmbDatabase_Click(object sender, EventArgs e) - { - Properties.Settings.Default.Database = cmbDatabase.Text; - Properties.Settings.Default.Save(); - BuildProcedureSetCombo(); - } - - private void BuildProcedureSetCombo() - { - DocVersionInfoList dvil = DocVersionInfoList.Get(); - cmbDocVersion.DataSource = dvil; - cmbDocVersion.DisplayMember = "SearchDVPath"; - cmbDocVersion.ValueMember = "VersionId"; - } - - private void cmbDocVersion_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.ProcedureSet = (int) cmbDocVersion.SelectedValue; - Properties.Settings.Default.Save(); - } - - private void cmbDatabase_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.Database = cmbDatabase.Text; - Properties.Settings.Default.Save(); - BuildProcedureSetCombo(); - } - - private void tbServer_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.SqlServer = tbServer.Text; - Properties.Settings.Default.Save(); - string db = cmbDatabase.Text; - try - { - BuildDatabaseCombo(); - } - catch (Exception ex) - { - tsslStatus.Text = ex.Message; - } - } - - private void BuildDatabaseCombo() - { - string tmp = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True",tbServer.Text,"MASTER"); - SqlConnection cn = new SqlConnection(tmp); - cn.Open(); - // SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn); - //SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id('[' + name + ']..Items') is null then 'Not PROMS' when object_id('[' + name + ']..Revisions') is not null then 'Approval' when object_id('[' + name + ']..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - SqlDataAdapter da = new SqlDataAdapter("select name, 'Approval' functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - da.SelectCommand.CommandTimeout = 300; // 300 sec timeout - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - } - catch (Exception ex) - { - System.Windows.Forms.MessageBox.Show(ex.GetType().Name, ex.Message); - throw (new Exception("Cannot Load Data List", ex)); - } - cn.Close(); - //System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip(); - //cms.Items.Add("Choose Database"); - //System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem; - //tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink; - //tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText); - //tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold); - foreach (DataRow dr in ds.Tables[0].Rows) - { - if (dr["functionality"].ToString() == "Approval") - cmbDatabase.Items.Add( dr["name"].ToString()); - } - } - void frmConvertAlarms_Resize(object sender, EventArgs e) - { - Properties.Settings.Default.Size = Size; - Properties.Settings.Default.Save(); - } - void frmConvertAlarms_Move(object sender, EventArgs e) - { - Properties.Settings.Default.Location = Location; - Properties.Settings.Default.Save(); - } - void tbFileName_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.FileName = tbFileName.Text; - Properties.Settings.Default.Save(); - } - private void sc1_SplitterMoved(object sender, SplitterEventArgs e) - { - Properties.Settings.Default.Split1 = sc1.SplitterDistance; - Properties.Settings.Default.Save(); - } - private void LoadSettings() - { - Size = Properties.Settings.Default.Size; - Location = Properties.Settings.Default.Location; - if (Properties.Settings.Default.FileName != null && Properties.Settings.Default.FileName != "") - { - FileInfo fi = new FileInfo(Properties.Settings.Default.FileName); - tbFileName.Text = fi.FullName; - } - sc1.SplitterDistance = Properties.Settings.Default.Split1; - tbServer.Text = Properties.Settings.Default.SqlServer; - cmbDatabase.Text = Properties.Settings.Default.Database; - try - { - BuildDatabaseCombo(); - Database.VEPROMS_Connection = string.Format("Data Source={0};Initial Catalog={1};Integrated Security=True", tbServer.Text, cmbDatabase.Text); - BuildProcedureSetCombo(); - cmbDocVersion.SelectedValue = Properties.Settings.Default.ProcedureSet; - } - catch (Exception ex) - { - tsslStatus.Text = ex.Message; - } - } - - private void tsslStatus_Click(object sender, EventArgs e) - { - } - - //private void rtbXML_SelectionChanged(object sender, EventArgs e) - //{ - //} - //private void tbXML_TextChanged(object sender, EventArgs e) - //{ - // if (UpdateHTML) - // { - // htmlChanged(tbXML.Text); - // XMLChanged(tbXML.Text); - // ColorCoded(tbXML.Text); - // } - //} - //private bool _UpdateTbXML = true; - - //public bool UpdateTbXML - //{ - // get { return _UpdateTbXML; } - // set { _UpdateTbXML = value; } - //} - //private void rtbXML_TextChanged(object sender, EventArgs e) - //{ - // //if (UpdateHTML) - // //{ - // // UpdateHTML = false; - // // htmlChanged(rtbXML.Text); - // // XMLChanged(rtbXML.Text); - // // tbXML.Text = rtbXML.Text; - // // UpdateHTML = true; - // //} - //} - private void btnConvert_Click(object sender, EventArgs e) - { - DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - try - { - SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi); - } - catch (Exception ex) - { - Console.WriteLine("Error: {0}.{1} {2} {3}",dvi.MyFolder.Name,ProcNumber, ex.GetType().Name, ex.Message); - } - } - //SortedDictionary dicSerialNo; - private void btnAll_Click(object sender, EventArgs e) - { - //dicSerialNo = new SortedDictionary(); - FileInfo fi = new FileInfo(tbFileName.Text); - DirectoryInfo di = fi.Directory; - // Loop through list - DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - ProcessFolder(di,dvi); - } - - private void ProcessFolder(DirectoryInfo di, DocVersionInfo dvi) - { - runOne = false; - // Get List of files - //DocVersionInfo dvi = DocVersionInfo.Get((int)cmbDocVersion.SelectedValue); - foreach (FileInfo f in di.GetFiles("*.txt")) - { - if (f.Name.StartsWith("AlarmData") == false && f.Name.Length > 14) - { - tsslStatus.Text = f.Name; - Application.DoEvents(); - // Process each file - try - { - ProcessTxtFile(f.FullName); - // Convert each file - //SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, SerialNo); - SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi); - } - catch (Exception ex) - { - Console.WriteLine("Error: {0}.{1} {2} {3}", di.Name, f.Name, ex.GetType().Name, ex.Message); - } - - //SaveProcedure(ProcTextAll, ProcNumber, ProcTitle, dvi); - } - } - runOne = true; - } - - private void statusStrip1_Click(object sender, EventArgs e) - { - if (tbPROMS.SelectedText != "") - { - tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbPROMS.SelectedText)); - Clipboard.Clear(); - Clipboard.SetText(IndentifySpecialCharacters(tbPROMS.SelectedText)); - } - } - - private void statusStrip1_ItemClicked(object sender, ToolStripItemClickedEventArgs e) - { - if (tbPROMS.SelectedText != "") - { - tsslStatus.Text = string.Format("Selection = '{0}'", IndentifySpecialCharacters(tbPROMS.SelectedText)); - Clipboard.Clear(); - Clipboard.SetText(IndentifySpecialCharacters(tbPROMS.SelectedText)); - } - } - } -} diff --git a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.resx b/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.resx deleted file mode 100644 index 09f332c3..00000000 --- a/PROMS/BarakahConvert/ConvertLocalAlarms/frmConvertLocalAlarms.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 87, 17 - - - 203, 3 - - - 25 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ReadFile/App.config b/PROMS/BarakahConvert/ReadFile/App.config deleted file mode 100644 index 8e156463..00000000 --- a/PROMS/BarakahConvert/ReadFile/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ReadFile/Form1.Designer.cs b/PROMS/BarakahConvert/ReadFile/Form1.Designer.cs deleted file mode 100644 index 757b87e5..00000000 --- a/PROMS/BarakahConvert/ReadFile/Form1.Designer.cs +++ /dev/null @@ -1,48 +0,0 @@ -namespace ReadFile -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.SuspendLayout(); - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(540, 262); - this.Name = "Form1"; - this.Text = "Form1"; - this.Load += new System.EventHandler(this.Form1_Load); - this.ResumeLayout(false); - - } - - #endregion - } -} - diff --git a/PROMS/BarakahConvert/ReadFile/Form1.cs b/PROMS/BarakahConvert/ReadFile/Form1.cs deleted file mode 100644 index 60524075..00000000 --- a/PROMS/BarakahConvert/ReadFile/Form1.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; - -namespace ReadFile -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - - private void Form1_Load(object sender, EventArgs e) - { - Test(); - } - public void Test() - { - // Use default replacement fallback for invalid encoding. - //UnicodeEncoding enc = new UnicodeEncoding(true, false, false); - UTF8Encoding enc = new UTF8Encoding(); - // Define a string with various Unicode characters. - string str1 = "AB YZ 19 DEGREE \xb0 BULLET \x95 \uD800\udc05 \u00e4"; - str1 += "Unicode characters. \u00a9 \u010C s \u0062\u0308"; - Console.WriteLine("Created original string...\n"); - - // Convert string to byte array. - byte[] bytes = enc.GetBytes(str1); - - FileStream fs = File.Create(@".\characters.bin"); - BinaryWriter bw = new BinaryWriter(fs); - bw.Write(bytes); - bw.Close(); - - // Read bytes from file. - FileStream fsIn = File.OpenRead(@".\characters.bin"); - BinaryReader br = new BinaryReader(fsIn); - - const int count = 10; // Number of bytes to read at a time. - byte[] bytesRead = new byte[10]; // Buffer (byte array). - int read; // Number of bytes actually read. - string str2 = String.Empty; // Decoded string. - - // Try using Encoding object for all operations. - do - { - read = br.Read(bytesRead, 0, count); - str2 += enc.GetString(bytesRead, 0, read); - } while (read == count); - br.Close(); - Console.WriteLine("Decoded string using UnicodeEncoding.GetString()..."); - CompareForEquality(str1, str2); - Console.WriteLine(); - - // Use Decoder for all operations. - fsIn = File.OpenRead(@".\characters.bin"); - br = new BinaryReader(fsIn); - Decoder decoder = enc.GetDecoder(); - char[] chars = new char[50]; - int index = 0; // Next character to write in array. - int written = 0; // Number of chars written to array. - do - { - read = br.Read(bytesRead, 0, count); - if (index + decoder.GetCharCount(bytesRead, 0, read) - 1 >= chars.Length) - Array.Resize(ref chars, chars.Length + 50); - - written = decoder.GetChars(bytesRead, 0, read, chars, index); - index += written; - } while (read == count); - br.Close(); - // Instantiate a string with the decoded characters. - string str3 = new String(chars, 0, index); - Console.WriteLine("Decoded string using UnicodeEncoding.Decoder.GetString()..."); - CompareForEquality(str1, str3); - } - - private static void CompareForEquality(string original, string decoded) - { - bool result = original.Equals(decoded); - Console.WriteLine("original = decoded: {0}", - original.Equals(decoded, StringComparison.Ordinal)); - if (!result) - { - Console.WriteLine("Code points in original string:{0}",original); - foreach (var ch in original) - Console.Write("{0} ", Convert.ToUInt16(ch).ToString("X4")); - Console.WriteLine(); - - Console.WriteLine("Code points in decoded string:{0}",decoded); - foreach (var ch in decoded) - Console.Write("{0} ", Convert.ToUInt16(ch).ToString("X4")); - Console.WriteLine(); - } - } - // The example displays the following output: - // Created original string... - // - // Decoded string using UnicodeEncoding.GetString()... - // original = decoded: False - // Code points in original string: - // 0041 0042 0020 0059 005A 0020 0031 0039 0020 D800 DC05 0020 00E4 0055 006E 0069 0063 006F - // 0064 0065 0020 0063 0068 0061 0072 0061 0063 0074 0065 0072 0073 002E 0020 00A9 0020 010C - // 0020 0073 0020 0062 0308 - // Code points in decoded string: - // 0041 0042 0020 0059 005A 0020 0031 0039 0020 FFFD FFFD 0020 00E4 0055 006E 0069 0063 006F - // 0064 0065 0020 0063 0068 0061 0072 0061 0063 0074 0065 0072 0073 002E 0020 00A9 0020 010C - // 0020 0073 0020 0062 0308 - // - // Decoded string using UnicodeEncoding.Decoder.GetString()... - // original = decoded: True - } -} diff --git a/PROMS/BarakahConvert/ReadFile/Form1.resx b/PROMS/BarakahConvert/ReadFile/Form1.resx deleted file mode 100644 index 1af7de15..00000000 --- a/PROMS/BarakahConvert/ReadFile/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ReadFile/Program.cs b/PROMS/BarakahConvert/ReadFile/Program.cs deleted file mode 100644 index 4e2ee27c..00000000 --- a/PROMS/BarakahConvert/ReadFile/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace ReadFile -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} diff --git a/PROMS/BarakahConvert/ReadFile/Properties/AssemblyInfo.cs b/PROMS/BarakahConvert/ReadFile/Properties/AssemblyInfo.cs deleted file mode 100644 index ef4671b9..00000000 --- a/PROMS/BarakahConvert/ReadFile/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ReadFile")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ReadFile")] -[assembly: AssemblyCopyright("Copyright © 2019")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d6efcdc1-06b8-4c4d-b126-515701db696b")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/BarakahConvert/ReadFile/Properties/Resources.Designer.cs b/PROMS/BarakahConvert/ReadFile/Properties/Resources.Designer.cs deleted file mode 100644 index 3bf3a133..00000000 --- a/PROMS/BarakahConvert/ReadFile/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ReadFile.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ReadFile.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/ReadFile/Properties/Resources.resx b/PROMS/BarakahConvert/ReadFile/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/BarakahConvert/ReadFile/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/ReadFile/Properties/Settings.Designer.cs b/PROMS/BarakahConvert/ReadFile/Properties/Settings.Designer.cs deleted file mode 100644 index cac34989..00000000 --- a/PROMS/BarakahConvert/ReadFile/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ReadFile.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/BarakahConvert/ReadFile/Properties/Settings.settings b/PROMS/BarakahConvert/ReadFile/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/BarakahConvert/ReadFile/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/BarakahConvert/ReadFile/ReadFile.csproj b/PROMS/BarakahConvert/ReadFile/ReadFile.csproj deleted file mode 100644 index 22a09db4..00000000 --- a/PROMS/BarakahConvert/ReadFile/ReadFile.csproj +++ /dev/null @@ -1,112 +0,0 @@ - - - - - Debug - AnyCPU - {D83BC593-811C-4D32-81B2-9C6031AFDAF5} - WinExe - Properties - ReadFile - ReadFile - v4.5 - 512 - SAK - SAK - SAK - SAK - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - - - - - - - - - - - - - - Form - - - Form1.cs - - - - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/XMLConvert/App.config b/PROMS/BarakahConvert/XMLConvert/App.config deleted file mode 100644 index bae5d6d8..00000000 --- a/PROMS/BarakahConvert/XMLConvert/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/PROMS/BarakahConvert/XMLConvert/ConvertTable.cs b/PROMS/BarakahConvert/XMLConvert/ConvertTable.cs deleted file mode 100644 index 269cbbe4..00000000 --- a/PROMS/BarakahConvert/XMLConvert/ConvertTable.cs +++ /dev/null @@ -1,172 +0,0 @@ -using C1.Win.C1FlexGrid; -using System; -using System.Collections.Generic; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Text.RegularExpressions; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.Xml; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; - -namespace XMLConvert -{ - public partial class frmConvertXML - { - private static void LoadTable2(XmlNode xn, StepLookup mySteps, int level) - { - XmlNode xn2 = xn.SelectSingleNode("tr/td/table"); - if (xn2 != null) xn = xn2; - VlnFlexGrid fg = _MyFlexGrid; - fg.Font = new Font("Arial", 11, FontStyle.Regular, GraphicsUnit.Point); - fg.Clear(); - fg.Rows.Count = 1; - fg.Cols.Count = 1; - int rows = 0; - fg.MergedRanges.Clear(); - foreach (XmlNode xr in xn.ChildNodes) - { - if (xr.Name == "tr") - { - ++rows; - AddTableRow(xr, fg, rows); - } - } - fg.MyBorders = new VlnBorders(GridLinePattern.Single, fg.Rows.Count, fg.Cols.Count); - fg.BringToFront(); - fg.Invalidate(); - Application.DoEvents(); - fg.MakeRTFcells(); - //Well, Can I save the table - using (Step step = MakeCSLAStep(mySteps, mySteps.Count, null, "table", 20008, E_FromType.Table)) - { - Grid.MakeGrid(step.MyContent, fg.GetXMLData(), ""); - } - } - public static VlnFlexGrid _MyFlexGrid = null; - private static void AddTableRow(XmlNode xr, VlnFlexGrid fg, int rows) - { - if (rows > fg.Rows.Count) - fg.Rows.Count = rows; - int cols = 0; - foreach (XmlNode xc in xr.ChildNodes) - { - ++cols; - //if (xc.InnerText.Contains("RC-V200")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerText.Contains("RC-V121")) - // Console.WriteLine(xc.InnerText); - //if (xc.InnerXml.Contains("AB 137") || xc.InnerXml.Contains("3013N01")) - // Console.WriteLine("here"); - CellRange cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - //Console.WriteLine("Check {0}", cr2); - while (cr2.c1 != cols - 1 || cr2.r1 != rows - 1) - { - cols++; - cr2 = GetMyMergedRange(fg, rows - 1, cols - 1); - } - AddMergedCells(fg, rows, cols, xc); - //ShowMergedCells(fg); - if (xc.Name == "td") - { - AddTableColumn(xc, fg, rows, cols); - } - } - } - private static void ShowMergedCells(VlnFlexGrid fg) - { - for (int r = 0; r < fg.Rows.Count; r++) - { - for (int c = 0; c < fg.Cols.Count; c++) - { - CellRange cr3 = GetMyMergedRange(fg, r, c); - if (fg.MergedRanges.Contains(cr3)) - Console.WriteLine("*** cr3 r={0},c={1},rng={2}", r, c, cr3); - } - } - } - private static int GetSpan(string span) - { - int retval = int.Parse("0" + (span ?? "")); - if (retval == 0) return 0; - return retval - 1; - } - private static void AddMergedCells(VlnFlexGrid fg, int rows, int cols, XmlNode xc) - { - string colspan = GetAttribute(xc, "colspan"); - string rowspan = GetAttribute(xc, "rowspan"); - if (colspan != null || rowspan != null) - { - //AddMergedRanges - int r1 = rows; - int c1 = cols; - int r2 = r1 + GetSpan(rowspan); - if (r2 > fg.Rows.Count) fg.Rows.Count = r2; - int c2 = c1 + GetSpan(colspan); - if (c2 > fg.Cols.Count) fg.Cols.Count = c2; - CellRange cr = new CellRange(); - cr.r1 = r1 - 1; - cr.r2 = r2 - 1; - cr.c1 = c1 - 1; - cr.c2 = c2 - 1; - fg.MergedRanges.Add(cr); - //Console.WriteLine("Merged {0}", cr); - } - } - - private static CellRange GetMyMergedRange(VlnFlexGrid fg, int r, int c) - { - foreach (CellRange cr in fg.MergedRanges) - { - if (cr.r1 <= r && cr.r2 >= r && cr.c1 <= c && cr.c2 >= c) - return cr; - } - return fg.GetMergedRange(r, c); - } - private static Regex regNumber = new Regex("^[0-9]+$", RegexOptions.Compiled); - private static void AddTableColumn(XmlNode xc, VlnFlexGrid fg, int rows, int cols) - { - //Console.WriteLine("Rows {0}, Cols {1}", rows, cols); - if (cols > fg.Cols.Count) - fg.Cols.Count = cols; - string width = GetAttribute(xc, "width"); - if (width != null && width != "" && regNumber.IsMatch(width)) - { - if (width.EndsWith("%")) - fg.Cols[cols - 1].Width = (int)(int.Parse(width.Replace("%", "")) * 96 * 6.5F / 100); - else - fg.Cols[cols - 1].Width = int.Parse(width) * 96 / 72; - } - StringBuilder sb = new StringBuilder(); - string prefix = ""; - foreach (XmlNode xn in xc.ChildNodes) - { - if (xn.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - if (xn.Name == "ul") - { - foreach (XmlNode xn2 in xn.ChildNodes) - { - if (xn2.Name == "li") - { - sb.Append(prefix + "*" + xn.InnerText); - } - if (xn2.Name == "p") - { - sb.Append(prefix + xn.InnerText); - } - } - } - } - if (width != null && width != "" && !regNumber.IsMatch(width)) - { - Console.WriteLine("*** width is not a number {0}, rows {1}, cols {2}, Text='{3}'", width, rows, cols, xc.OuterXml); - } - fg[rows - 1, cols - 1] = sb.ToString(); - } - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/Program.cs b/PROMS/BarakahConvert/XMLConvert/Program.cs deleted file mode 100644 index 523e77a9..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace XMLConvert -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmConvertXML()); - } - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/Properties/AssemblyInfo.cs b/PROMS/BarakahConvert/XMLConvert/Properties/AssemblyInfo.cs deleted file mode 100644 index 7d188a33..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("XMLConvert")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("XMLConvert")] -[assembly: AssemblyCopyright("Copyright © 2018")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("76909147-264a-4d49-84e9-6c6da792991a")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/BarakahConvert/XMLConvert/Properties/Resources.Designer.cs b/PROMS/BarakahConvert/XMLConvert/Properties/Resources.Designer.cs deleted file mode 100644 index 663b4e4e..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace XMLConvert.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XMLConvert.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/Properties/Resources.resx b/PROMS/BarakahConvert/XMLConvert/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/XMLConvert/Properties/Settings.Designer.cs b/PROMS/BarakahConvert/XMLConvert/Properties/Settings.Designer.cs deleted file mode 100644 index 9c05d34e..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace XMLConvert.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/Properties/Settings.settings b/PROMS/BarakahConvert/XMLConvert/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/BarakahConvert/XMLConvert/Properties/licenses.licx b/PROMS/BarakahConvert/XMLConvert/Properties/licenses.licx deleted file mode 100644 index c4eba94b..00000000 --- a/PROMS/BarakahConvert/XMLConvert/Properties/licenses.licx +++ /dev/null @@ -1 +0,0 @@ -C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20142.835, Culture=neutral, PublicKeyToken=79882d576c6336da diff --git a/PROMS/BarakahConvert/XMLConvert/SampleXML.cs b/PROMS/BarakahConvert/XMLConvert/SampleXML.cs deleted file mode 100644 index 982f4b18..00000000 --- a/PROMS/BarakahConvert/XMLConvert/SampleXML.cs +++ /dev/null @@ -1,319 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace XMLConvert -{ - public partial class frmConvertXML - { - private string xmlSample1 = @" - - <?xml version='1.0' encoding='utf-16'?> -<VlnBorders Rows='5' Columns='3'> - <VerticalLines Rows='5' Columns='4'> - <Lines> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - </Lines> - </VerticalLines> - <HorizontalLines Rows='6' Columns='3'> - <Lines> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - <GridLinePattern>Single</GridLinePattern> - </Lines> - </HorizontalLines> -</VlnBorders> - Volian Custom Borders - False - 0 - 96 - False - Black - 255, 255, 255 - Custom - Both - WithFocus - Solid - OwnerDraw - 255, 255, 255 - Custom - None - Default - Courier New, 12pt - 3, 3, 3, 3 - 0, 0 - 0, 0 - No - 0, 0, 0, 0 - NoControl - - - 3 - 0 - 125 - - - - 68 - - - 178 - - - 368 - - - - 5 - 0 - 25 - - - - 25 - - - 25 - - - 25 - - - 25 - - - 51 - - - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 PROC \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 PROC TITLE \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 FUNCTION \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 R-3 \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Restore CCW \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Cross-tie CCW from Unit Two \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 R-11 \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Restore RHR \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Repower RHR pump(s) from Unit Two \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 LS-2 \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Start-up AFW \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 Cross-tie AFW from Unit Two \par -} - - 16 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 LS-6 \par - \par - \par -} - - 48 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 RCS Make-up \par - With CVCS \par - Cross-tie \par -} - - 48 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}} -\viewkind4\uc1\pard\sl-240\slmult0\f0\fs24 CVCS Cross-tie For Level Control\par - \par -} - - 32 - - - - - - - - - - - - - - - - - - - - - - - - - -"; - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/XMLConvert.csproj b/PROMS/BarakahConvert/XMLConvert/XMLConvert.csproj deleted file mode 100644 index f94bacc9..00000000 --- a/PROMS/BarakahConvert/XMLConvert/XMLConvert.csproj +++ /dev/null @@ -1,141 +0,0 @@ - - - - - Debug - AnyCPU - {C621AE2E-6AFC-41C6-A3D4-F6CAA7ABF2CF} - WinExe - Properties - XMLConvert - XMLConvert - v4.6.1 - 512 - - SAK - SAK - SAK - SAK - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - MinimumRecommendedRules.ruleset - true - - - - - ..\..\..\..\..\..\..\Development\csla20cs\Csla\bin\Debug\Csla.dll - - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\log4net.dll - - - - - - - - - - - - - - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - False - ..\..\..\..\..\..\..\Development\Proms\VEPROMS.CSLA.Library\bin\Debug\Volian.Base.Library.dll - - - ..\..\..\..\..\..\..\Development\Proms\Volian.Controls.Library\bin\Debug\Volian.Controls.Library.dll - - - - - Form - - - Form - - - Form - - - frmConvertXML.cs - - - - - - frmConvertXML.cs - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.Designer.cs b/PROMS/BarakahConvert/XMLConvert/frmConvertXML.Designer.cs deleted file mode 100644 index be211577..00000000 --- a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.Designer.cs +++ /dev/null @@ -1,434 +0,0 @@ -namespace XMLConvert -{ - partial class frmConvertXML - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.label1 = new System.Windows.Forms.Label(); - this.tbFile = new System.Windows.Forms.TextBox(); - this.btnLoad = new System.Windows.Forms.Button(); - this.tbResults = new System.Windows.Forms.TextBox(); - this.btnFindNodeTypes = new System.Windows.Forms.Button(); - this.btnStructure = new System.Windows.Forms.Button(); - this.btnLoadContent = new System.Windows.Forms.Button(); - this.btnLoadProcedure = new System.Windows.Forms.Button(); - this.btnBrowse = new System.Windows.Forms.Button(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.pbSection = new DevComponents.DotNetBar.Controls.ProgressBarX(); - this.pbStep = new DevComponents.DotNetBar.Controls.ProgressBarX(); - this.btnAll = new System.Windows.Forms.Button(); - this.btnAllStructure = new System.Windows.Forms.Button(); - this.pbProcs = new DevComponents.DotNetBar.Controls.ProgressBarX(); - this.btnAllStructure2 = new System.Windows.Forms.Button(); - this.lblProcedure = new System.Windows.Forms.Label(); - this.lblSection = new System.Windows.Forms.Label(); - this.lblStep = new System.Windows.Forms.Label(); - this.btnAllContent = new System.Windows.Forms.Button(); - this.btnHTML = new System.Windows.Forms.Button(); - this.btnHTML2 = new System.Windows.Forms.Button(); - this.btnCandN = new System.Windows.Forms.Button(); - this.btnHTLM3 = new System.Windows.Forms.Button(); - this.btnAllContent2 = new System.Windows.Forms.Button(); - this.btnVerbs = new System.Windows.Forms.Button(); - this.btnFigures = new System.Windows.Forms.Button(); - this.btnTables = new System.Windows.Forms.Button(); - this.bntTable2 = new System.Windows.Forms.Button(); - this.btnStepOrNo = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(22, 19); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(48, 13); - this.label1.TabIndex = 0; - this.label1.Text = "XML File"; - // - // tbFile - // - this.tbFile.Location = new System.Drawing.Point(85, 17); - this.tbFile.Name = "tbFile"; - this.tbFile.Size = new System.Drawing.Size(578, 20); - this.tbFile.TabIndex = 1; - this.tbFile.Text = "C:\\Development\\Proms\\Barakah\\AOPRev1\\AOP CPP Batch 1\\XML\\procedure\\1N2-OP-AOP-MP-" + - "0001 Rev01 FINAL - Main Transformer Abnormal.xml"; - // - // btnLoad - // - this.btnLoad.Location = new System.Drawing.Point(12, 43); - this.btnLoad.Name = "btnLoad"; - this.btnLoad.Size = new System.Drawing.Size(58, 23); - this.btnLoad.TabIndex = 2; - this.btnLoad.Text = "Load"; - this.btnLoad.UseVisualStyleBackColor = true; - this.btnLoad.Click += new System.EventHandler(this.btnLoad_Click); - // - // tbResults - // - this.tbResults.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbResults.Location = new System.Drawing.Point(12, 183); - this.tbResults.Multiline = true; - this.tbResults.Name = "tbResults"; - this.tbResults.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.tbResults.Size = new System.Drawing.Size(726, 351); - this.tbResults.TabIndex = 3; - this.tbResults.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tbResults_KeyDown); - // - // btnFindNodeTypes - // - this.btnFindNodeTypes.Location = new System.Drawing.Point(76, 43); - this.btnFindNodeTypes.Name = "btnFindNodeTypes"; - this.btnFindNodeTypes.Size = new System.Drawing.Size(92, 23); - this.btnFindNodeTypes.TabIndex = 4; - this.btnFindNodeTypes.Text = "FindNodeTypes"; - this.btnFindNodeTypes.UseVisualStyleBackColor = true; - this.btnFindNodeTypes.Click += new System.EventHandler(this.btnFindNodeTypes_Click); - // - // btnStructure - // - this.btnStructure.Location = new System.Drawing.Point(174, 43); - this.btnStructure.Name = "btnStructure"; - this.btnStructure.Size = new System.Drawing.Size(59, 23); - this.btnStructure.TabIndex = 5; - this.btnStructure.Text = "Structure"; - this.btnStructure.UseVisualStyleBackColor = true; - this.btnStructure.Click += new System.EventHandler(this.btnStructure_Click); - // - // btnLoadContent - // - this.btnLoadContent.Location = new System.Drawing.Point(270, 43); - this.btnLoadContent.Name = "btnLoadContent"; - this.btnLoadContent.Size = new System.Drawing.Size(83, 23); - this.btnLoadContent.TabIndex = 6; - this.btnLoadContent.Text = "Load Content"; - this.btnLoadContent.UseVisualStyleBackColor = true; - this.btnLoadContent.Click += new System.EventHandler(this.btnLoadContent_Click); - // - // btnLoadProcedure - // - this.btnLoadProcedure.AccessibleDescription = "z"; - this.btnLoadProcedure.Location = new System.Drawing.Point(643, 43); - this.btnLoadProcedure.Name = "btnLoadProcedure"; - this.btnLoadProcedure.Size = new System.Drawing.Size(95, 23); - this.btnLoadProcedure.TabIndex = 7; - this.btnLoadProcedure.Text = "Load Procedure"; - this.btnLoadProcedure.UseVisualStyleBackColor = true; - this.btnLoadProcedure.Click += new System.EventHandler(this.btnLoadProcedure_Click); - // - // btnBrowse - // - this.btnBrowse.Location = new System.Drawing.Point(669, 14); - this.btnBrowse.Name = "btnBrowse"; - this.btnBrowse.Size = new System.Drawing.Size(75, 23); - this.btnBrowse.TabIndex = 8; - this.btnBrowse.Text = "Browse"; - this.btnBrowse.UseVisualStyleBackColor = true; - this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); - // - // ofd - // - this.ofd.FileName = "openFileDialog1"; - // - // pbSection - // - // - // - // - this.pbSection.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.pbSection.Location = new System.Drawing.Point(99, 141); - this.pbSection.Name = "pbSection"; - this.pbSection.Size = new System.Drawing.Size(639, 12); - this.pbSection.TabIndex = 9; - this.pbSection.Text = "progressBarX1"; - // - // pbStep - // - // - // - // - this.pbStep.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.pbStep.Location = new System.Drawing.Point(99, 159); - this.pbStep.Name = "pbStep"; - this.pbStep.Size = new System.Drawing.Size(639, 13); - this.pbStep.TabIndex = 10; - this.pbStep.Text = "progressBarX2"; - // - // btnAll - // - this.btnAll.Location = new System.Drawing.Point(705, 72); - this.btnAll.Name = "btnAll"; - this.btnAll.Size = new System.Drawing.Size(33, 23); - this.btnAll.TabIndex = 11; - this.btnAll.Text = "All"; - this.btnAll.UseVisualStyleBackColor = true; - this.btnAll.Click += new System.EventHandler(this.btnAll_Click); - // - // btnAllStructure - // - this.btnAllStructure.Location = new System.Drawing.Point(186, 72); - this.btnAllStructure.Name = "btnAllStructure"; - this.btnAllStructure.Size = new System.Drawing.Size(47, 23); - this.btnAllStructure.TabIndex = 12; - this.btnAllStructure.Text = "All Structure"; - this.btnAllStructure.UseVisualStyleBackColor = true; - this.btnAllStructure.Click += new System.EventHandler(this.btnAllStructure_Click); - // - // pbProcs - // - // - // - // - this.pbProcs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.pbProcs.Location = new System.Drawing.Point(99, 123); - this.pbProcs.Name = "pbProcs"; - this.pbProcs.Size = new System.Drawing.Size(639, 12); - this.pbProcs.TabIndex = 13; - this.pbProcs.Text = "progressBarX1"; - // - // btnAllStructure2 - // - this.btnAllStructure2.Location = new System.Drawing.Point(186, 94); - this.btnAllStructure2.Name = "btnAllStructure2"; - this.btnAllStructure2.Size = new System.Drawing.Size(47, 23); - this.btnAllStructure2.TabIndex = 14; - this.btnAllStructure2.Text = "All Structure"; - this.btnAllStructure2.UseVisualStyleBackColor = true; - this.btnAllStructure2.Click += new System.EventHandler(this.btnAllStructure2_Click); - // - // lblProcedure - // - this.lblProcedure.Location = new System.Drawing.Point(12, 123); - this.lblProcedure.Name = "lblProcedure"; - this.lblProcedure.Size = new System.Drawing.Size(86, 18); - this.lblProcedure.TabIndex = 15; - this.lblProcedure.Text = "Procedure"; - // - // lblSection - // - this.lblSection.Location = new System.Drawing.Point(12, 141); - this.lblSection.Name = "lblSection"; - this.lblSection.Size = new System.Drawing.Size(86, 18); - this.lblSection.TabIndex = 16; - this.lblSection.Text = "Section"; - // - // lblStep - // - this.lblStep.Location = new System.Drawing.Point(12, 160); - this.lblStep.Name = "lblStep"; - this.lblStep.Size = new System.Drawing.Size(86, 18); - this.lblStep.TabIndex = 17; - this.lblStep.Text = "Step"; - // - // btnAllContent - // - this.btnAllContent.Location = new System.Drawing.Point(270, 72); - this.btnAllContent.Name = "btnAllContent"; - this.btnAllContent.Size = new System.Drawing.Size(33, 23); - this.btnAllContent.TabIndex = 18; - this.btnAllContent.Text = "All"; - this.btnAllContent.UseVisualStyleBackColor = true; - this.btnAllContent.Click += new System.EventHandler(this.btnAllContent_Click); - // - // btnHTML - // - this.btnHTML.Location = new System.Drawing.Point(359, 43); - this.btnHTML.Name = "btnHTML"; - this.btnHTML.Size = new System.Drawing.Size(51, 23); - this.btnHTML.TabIndex = 19; - this.btnHTML.Text = "HTML"; - this.btnHTML.UseVisualStyleBackColor = true; - this.btnHTML.Click += new System.EventHandler(this.btnHTML_Click); - // - // btnHTML2 - // - this.btnHTML2.Location = new System.Drawing.Point(359, 72); - this.btnHTML2.Name = "btnHTML2"; - this.btnHTML2.Size = new System.Drawing.Size(51, 23); - this.btnHTML2.TabIndex = 20; - this.btnHTML2.Text = "HTML2"; - this.btnHTML2.UseVisualStyleBackColor = true; - this.btnHTML2.Click += new System.EventHandler(this.btnHTML2_Click); - // - // btnCandN - // - this.btnCandN.Location = new System.Drawing.Point(416, 43); - this.btnCandN.Name = "btnCandN"; - this.btnCandN.Size = new System.Drawing.Size(58, 23); - this.btnCandN.TabIndex = 21; - this.btnCandN.Text = "C and N"; - this.btnCandN.UseVisualStyleBackColor = true; - this.btnCandN.Click += new System.EventHandler(this.btnCandN_Click); - // - // btnHTLM3 - // - this.btnHTLM3.Location = new System.Drawing.Point(359, 94); - this.btnHTLM3.Name = "btnHTLM3"; - this.btnHTLM3.Size = new System.Drawing.Size(51, 23); - this.btnHTLM3.TabIndex = 22; - this.btnHTLM3.Text = "HTML3"; - this.btnHTLM3.UseVisualStyleBackColor = true; - this.btnHTLM3.Click += new System.EventHandler(this.btnHTLM3_Click); - // - // btnAllContent2 - // - this.btnAllContent2.Location = new System.Drawing.Point(270, 94); - this.btnAllContent2.Name = "btnAllContent2"; - this.btnAllContent2.Size = new System.Drawing.Size(33, 23); - this.btnAllContent2.TabIndex = 18; - this.btnAllContent2.Text = "All2"; - this.btnAllContent2.UseVisualStyleBackColor = true; - this.btnAllContent2.Click += new System.EventHandler(this.btnAllContent2_Click); - // - // btnVerbs - // - this.btnVerbs.Location = new System.Drawing.Point(416, 72); - this.btnVerbs.Name = "btnVerbs"; - this.btnVerbs.Size = new System.Drawing.Size(58, 23); - this.btnVerbs.TabIndex = 23; - this.btnVerbs.Text = "Verbs"; - this.btnVerbs.UseVisualStyleBackColor = true; - this.btnVerbs.Click += new System.EventHandler(this.btnVerbs_Click); - // - // btnFigures - // - this.btnFigures.Location = new System.Drawing.Point(416, 94); - this.btnFigures.Name = "btnFigures"; - this.btnFigures.Size = new System.Drawing.Size(58, 24); - this.btnFigures.TabIndex = 24; - this.btnFigures.Text = "Figures"; - this.btnFigures.UseVisualStyleBackColor = true; - this.btnFigures.Click += new System.EventHandler(this.btnFigures_Click); - // - // btnTables - // - this.btnTables.Location = new System.Drawing.Point(480, 72); - this.btnTables.Name = "btnTables"; - this.btnTables.Size = new System.Drawing.Size(65, 23); - this.btnTables.TabIndex = 25; - this.btnTables.Text = "Tables"; - this.btnTables.UseVisualStyleBackColor = true; - this.btnTables.Click += new System.EventHandler(this.btnTables_Click); - // - // bntTable2 - // - this.bntTable2.Location = new System.Drawing.Point(558, 72); - this.bntTable2.Name = "bntTable2"; - this.bntTable2.Size = new System.Drawing.Size(67, 22); - this.bntTable2.TabIndex = 26; - this.bntTable2.Text = "Table2"; - this.bntTable2.UseVisualStyleBackColor = true; - this.bntTable2.Click += new System.EventHandler(this.bntTable2_Click); - // - // btnStepOrNo - // - this.btnStepOrNo.Location = new System.Drawing.Point(480, 43); - this.btnStepOrNo.Name = "btnStepOrNo"; - this.btnStepOrNo.Size = new System.Drawing.Size(73, 23); - this.btnStepOrNo.TabIndex = 27; - this.btnStepOrNo.Text = "StepOrNot"; - this.btnStepOrNo.UseVisualStyleBackColor = true; - this.btnStepOrNo.Click += new System.EventHandler(this.btnStepOrNo_Click); - // - // frmConvertXML - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(750, 557); - this.Controls.Add(this.btnStepOrNo); - this.Controls.Add(this.bntTable2); - this.Controls.Add(this.btnTables); - this.Controls.Add(this.btnFigures); - this.Controls.Add(this.btnVerbs); - this.Controls.Add(this.btnHTLM3); - this.Controls.Add(this.btnCandN); - this.Controls.Add(this.btnHTML2); - this.Controls.Add(this.btnHTML); - this.Controls.Add(this.btnAllContent2); - this.Controls.Add(this.btnAllContent); - this.Controls.Add(this.lblStep); - this.Controls.Add(this.lblSection); - this.Controls.Add(this.lblProcedure); - this.Controls.Add(this.btnAllStructure2); - this.Controls.Add(this.pbProcs); - this.Controls.Add(this.btnAllStructure); - this.Controls.Add(this.btnAll); - this.Controls.Add(this.pbStep); - this.Controls.Add(this.pbSection); - this.Controls.Add(this.btnBrowse); - this.Controls.Add(this.btnLoadProcedure); - this.Controls.Add(this.btnLoadContent); - this.Controls.Add(this.btnStructure); - this.Controls.Add(this.btnFindNodeTypes); - this.Controls.Add(this.tbResults); - this.Controls.Add(this.btnLoad); - this.Controls.Add(this.tbFile); - this.Controls.Add(this.label1); - this.Name = "frmConvertXML"; - this.Text = "Form1"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbFile; - private System.Windows.Forms.Button btnLoad; - private System.Windows.Forms.TextBox tbResults; - private System.Windows.Forms.Button btnFindNodeTypes; - private System.Windows.Forms.Button btnStructure; - private System.Windows.Forms.Button btnLoadContent; - private System.Windows.Forms.Button btnLoadProcedure; - private System.Windows.Forms.Button btnBrowse; - private System.Windows.Forms.OpenFileDialog ofd; - private DevComponents.DotNetBar.Controls.ProgressBarX pbSection; - private DevComponents.DotNetBar.Controls.ProgressBarX pbStep; - private System.Windows.Forms.Button btnAll; - private System.Windows.Forms.Button btnAllStructure; - private DevComponents.DotNetBar.Controls.ProgressBarX pbProcs; - private System.Windows.Forms.Button btnAllStructure2; - private System.Windows.Forms.Label lblProcedure; - private System.Windows.Forms.Label lblSection; - private System.Windows.Forms.Label lblStep; - private System.Windows.Forms.Button btnAllContent; - private System.Windows.Forms.Button btnHTML; - private System.Windows.Forms.Button btnHTML2; - private System.Windows.Forms.Button btnCandN; - private System.Windows.Forms.Button btnHTLM3; - private System.Windows.Forms.Button btnAllContent2; - private System.Windows.Forms.Button btnVerbs; - private System.Windows.Forms.Button btnFigures; - private System.Windows.Forms.Button btnTables; - private System.Windows.Forms.Button bntTable2; - private System.Windows.Forms.Button btnStepOrNo; - } -} - diff --git a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.cs b/PROMS/BarakahConvert/XMLConvert/frmConvertXML.cs deleted file mode 100644 index 54ade877..00000000 --- a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.cs +++ /dev/null @@ -1,3377 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.Xml; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using log4net; -using System.IO; -using Volian.Controls.Library; -using C1.Win.C1FlexGrid; - - -namespace XMLConvert -{ - public partial class frmConvertXML : Form - { - public frmConvertXML() - { - InitializeComponent(); - Database.VEPROMS_Connection = - "Data Source=.\\SQL2008EXPRESS;Initial Catalog=VEPROMS_Barakah;Integrated Security=True"; - } - private XmlDocument _MyXMLDoc = new XmlDocument(); - public XmlDocument MyXMLDoc - { - get { return _MyXMLDoc; } - set { _MyXMLDoc = value; } - } - private void btnLoad_Click(object sender, EventArgs e) - { - LoadXml(tbFile.Text, "Document Loaded"); - } - private void LoadXml(string fileName, string status) - { - FileInfo fi = new FileInfo(fileName); - //Console.WriteLine(fi.FullName); - StreamReader sr = fi.OpenText(); - string buf = sr.ReadToEnd(); - sr.Close(); - buf = buf.Replace(" \x8", ""); - buf = buf.Replace(" \x7", ""); - MyXMLDoc.LoadXml(buf); - if (status != null) tbResults.Text = status; - } - private void btnFindNodeTypes_Click(object sender, EventArgs e) - { - LoadXml(tbFile.Text, "Document Loaded"); - tbResults.Text = "Finding Nodes\r\n"; - SortedList AllNodeTypes = new SortedList(); - FindAllNodeTypes(AllNodeTypes, MyXMLDoc.DocumentElement); - foreach (string key in AllNodeTypes.Keys) - tbResults.AppendText(string.Format("[{0}]{1}\r\n", key, Attributes(AllNodeTypes[key]))); - } - private string Attributes(XmlElement xe) - { - StringBuilder sb = new StringBuilder(); - string sep = "\r\n\t"; - foreach (XmlAttribute xa in xe.Attributes) - { - sb.Append(string.Format("{0}[{1}]", sep, xa.Name)); - //if (xa.Name == "content") - // sb.Append(string.Format ("\r\n\t\t{0}",xa.Value)); - } - return sb.ToString(); - } - private void FindAllNodeTypes(SortedList AllNodeTypes, XmlElement xmlElement) - { - if (!AllNodeTypes.ContainsKey(xmlElement.Name)) - AllNodeTypes.Add(xmlElement.Name, xmlElement); - foreach (XmlNode xe in xmlElement.ChildNodes) - { - if (xe is XmlElement) - FindAllNodeTypes(AllNodeTypes, xe as XmlElement); - } - } - private void btnStructure_Click(object sender, EventArgs e) - { - tbResults.Clear(); - Node.Reset(); - LoadStructure(tbFile.Text); - ShowStructure(); - } - private void LoadStructure(string fileName) - { - LoadXml(fileName, null); - Node.Add(MyXMLDoc.DocumentElement); - } - private void ShowStructure() - { - foreach (string key in Node.AllNodes.Keys) - { - Node nd = Node.AllNodes[key]; - tbResults.AppendText(string.Format("[{0}]{1}\r\n", key, (nd.HasText ? "\tText" : ""))); - if (nd.Children.Count > 0) - { - tbResults.AppendText(string.Format("\tChildren:\r\n")); - foreach (string child in nd.Children) - tbResults.AppendText(string.Format("\t\t{0}\r\n", child)); - } - if (nd.Attributes.Count > 0) - { - tbResults.AppendText(string.Format("\tAttributes:\r\n")); - foreach (string key1 in nd.Attributes.Keys) - { - Attribute attr = nd.Attributes[key1]; - if (key1 == "content") - tbResults.AppendText(string.Format("\t\t{0} Count={1}\r\n", attr.Name, attr.Count)); - else if (attr.MinValue == attr.MaxValue) - tbResults.AppendText(string.Format("\t\t{0} Count={1} All={2}\r\n", attr.Name, attr.Count, attr.MinValue)); - else - tbResults.AppendText(string.Format("\t\t{0} Count={1} Min={2} Max={3}\r\n", attr.Name, attr.Count, attr.MinValue, attr.MaxValue)); - } - } - } - } - private void ShowStructure2() - { - foreach (string key in Node.AllNodes.Keys) - { - Node nd = Node.AllNodes[key]; - bool hasContent = false; - tbResults.AppendText(string.Format("case \"{0}\":~", key)); - string prefix = "\tformat=\""; - foreach (string key1 in nd.Attributes.Keys) - { - if (key1 == "content") - hasContent = true; - else - { - tbResults.AppendText(string.Format("{0}{1}={{{1}}}\";", prefix, key1)); - prefix = " "; - } - if (hasContent) - tbResults.AppendText(string.Format(" {{content}}")); - } - tbResults.AppendText("\";~\tbreak;\r\n"); - } - } - private void btnLoadContent_Click(object sender, EventArgs e) - { - LoadXml(tbFile.Text, "Document Loaded"); - tbResults.Clear(); - ShowAllContent(MyXMLDoc.DocumentElement, 0); - } - private void ShowAllContent(XmlElement xe, int level) - { - ShowContent(xe, level); - foreach (XmlNode ch in xe.ChildNodes) - { - if (ch is XmlElement) - ShowAllContent(ch as XmlElement, level + 1); - } - } - Regex regFixAttributes = new Regex("(\\{[A-Za-z]+?\\})", RegexOptions.Compiled); - private void ShowContent(XmlElement xe, int level) - { - string format = "Not Defined"; - string prefix = " "; - switch (xe.Name) - { - case "ident": - format = "Procedure (LabelType-number)={labelType}-{number} fullName={fullName} PNSNo={PNSNo}"; - break; - case "type": - format = "Procedure Type: {procedureType}"; - break; - case "GrossStep": - format = "number={number} name={name}"; - break; - case "Step": - format = "{number} {name}"; - prefix = "S "; - break; - case "Contingency": - format = "{number} {name}"; - prefix = "C "; - break; - case "attrib": - case "procedure": - case "controllers": - case "row": - format = "";// No Content - break; - case "CautionInstruction": - case "NoteInstruction": - format = "number={number} {content}"; - break; - case "UnitaryInstruction": - case "BinaryInstruction": - format = "number={number} Left Target: {leftTarget} Link Target: {linkTarget} {content}"; - break; - case "JoinInstruction": - format = "Link Target: {linkTarget} JoinType: {joinType}"; - break; - case "UnitaryContingencyCallInstruction": - format = "number={number} Link Target: {linkTarget} Evaluation Type: {evaluationType} {content}"; - prefix = "U "; - break; - case "taskGroup": - format = "name={name} borderVisible={borderVisible}"; - break; - case "BoolVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "TextVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "ovationGraphic": - format = "title={title} Diagram Number: {diagramNumber}"; - break; - case "ovationGroupTrend": - format = "name={name} description={description}"; - break; - case "controller": - format = "controller - Unknown"; - break; - case "and": - format = "and id={id}"; - break; - case "BigOverview": - format = "BigOverview grossStep={grossStep} number={number} id={id}"; - break; - case "BovActionStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovCheckBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovIfStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} rightTarget={rightTarget} {content}"; - break; - case "BovMessageBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovProcedureLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepInLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepOutLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "descr": - case "esinfo": - case "esproj": - case "esprop": - case "private": - case "pwg": - case "pwt": - case "revbase": - case "systemtest": - format = ""; - break; - case "eq": - case "gt": - case "gte": - case "lt": - case "lte": - case "not": - case "or": - format = "id={id}"; - break; - case "fcase": - case "tcase": - format = "rst={rst}"; - break; - case "logic": - format = "id={id} number={number}"; - break; - case "ovationSingleTrend": - format = "description={description} number={number} id={id} name={name}"; - break; - case "prop": - format = "type={type} value={value} name={name}"; - break; - case "TextVarInputInstruction": - format = "taskDescription={taskDescription} varInputLabel={varinputLabel} number={number} {content}"; - break; - case "utest": - format = "tested={tested}"; - break; - case "var": - format = "var_type={var_type} id={id} name={name} number={number}"; - break; - case "const": - format = "var_type={var_type} id={id} value={value}"; - break; - } - tbResults.AppendText(string.Format("\r\n{0}{1}{2} ", prefix, "".PadRight(level, ' ').Replace(" ", "| "), xe.Name)); - tbResults.AppendText(ReplaceAllAttributes(format, xe, level, prefix)); - } - private string ReplaceAllAttributes(string format, XmlElement xe, int level, string prefix) - { - MatchCollection m; - while ((m = regFixAttributes.Matches(format)).Count > 0) - { - string part1 = format.Substring(0, m[0].Groups[1].Index); - string part3 = format.Substring(m[0].Groups[1].Index + m[0].Groups[1].Length); - string att = m[0].Groups[1].Value.Replace("{", "").Replace("}", ""); - XmlAttribute xa = xe.Attributes[att]; - //if (xa == null) - // Console.WriteLine(xe.OuterXml); - string part2; - if (xa != null) - part2 = xe.Attributes[att].Value; //GetAttribute(xe, att); - else - part2 = "null"; - if (part2 == string.Empty) part2 = "empty"; - if (att == "content") - { - string imageSrc = null; - if (part2.Contains(" src=")) - { - imageSrc = RegFindImage.Replace(part2, "$1"); - //Console.WriteLine(imageSrc); - } - part2 = FixHTML(part2, level); - if (imageSrc != null) part2 += "\n" + imageSrc; - part2 = part2.Replace("
", "
\n "); - part2 = part2.Replace("\n", string.Format("\r\n {0} ", "".PadRight(level).Replace(" ", "| "))); - } - format = part1 + part2 + part3; - } - return format; - } - private static Regex RegFixHTMLMulti = new Regex("<(p|li) [^>]*?>([^<>]*)", RegexOptions.Compiled | RegexOptions.Singleline); - private static Regex RegFixHTML = new Regex(".*<(p|li).*?>(.*).*", RegexOptions.Compiled | RegexOptions.Singleline); - private static Regex RegFixHTMLbody = new Regex(".*(.*).*", RegexOptions.Compiled | RegexOptions.Singleline); - private static Regex RegFindImage = new Regex(".*.*", RegexOptions.Compiled | RegexOptions.Singleline); - private string FixHTML(string html, int level) - { - html = cleanupHTML(html, level); - return html; - //Console.WriteLine(html); - MatchCollection mc = RegFixHTMLMulti.Matches(html); - if (mc.Count > 1) - { - StringBuilder sb = new StringBuilder(); - string sep = ""; - foreach (Match m in mc) - { - string str = RegFixHTML.Replace(m.Value, "$2"); - if (str != "") - sb.Append(sep + str); - sep = "\r\n"; - } - return StripSpan(sb.ToString()); - } - string newHTML = RegFixHTML.Replace(html, "$2"); - if (html != newHTML) return StripSpan(newHTML); - newHTML = RegFixHTMLbody.Replace(html, "$1"); - if (html != newHTML) return StripSpan(newHTML); - return StripSpan(html); - } - private static Regex RegStripSpan1 = new Regex("", RegexOptions.Compiled | RegexOptions.Singleline); - private static Regex RegStripSpan2 = new Regex("", RegexOptions.Compiled | RegexOptions.Singleline); - private string StripSpan(string html) - { - return RegStripSpan2.Replace(RegStripSpan1.Replace(html, ""), ""); - - } - private static Regex[] Cleanup = - { - new Regex("]*>", RegexOptions.Compiled ), - new Regex(" margin-top: ?[0-9]+px;", RegexOptions.Compiled ), - new Regex(" margin-bottom: ?[0-9]+px;", RegexOptions.Compiled ), - new Regex(" margin-right: ?[0-9]+px;", RegexOptions.Compiled ), - new Regex(" margin-left: ?[0-9]+px;", RegexOptions.Compiled ), - new Regex(" padding-top:0;", RegexOptions.Compiled ), - new Regex(" padding-bottom:0;", RegexOptions.Compiled ), - new Regex(" padding-right:0;", RegexOptions.Compiled ), - new Regex(" padding-left:0;", RegexOptions.Compiled ), - new Regex(" color:#000000;", RegexOptions.Compiled ), - new Regex("-qt-paragraph-type:empty;", RegexOptions.Compiled ), - new Regex(" text-indent: ?0px", RegexOptions.Compiled ), - new Regex(" -qt-block-indent: ?0;", RegexOptions.Compiled ), - new Regex(" font-family:'Arial';", RegexOptions.Compiled ), - new Regex(" font-family:'Gulim';", RegexOptions.Compiled ), - new Regex(" font-family:'A';", RegexOptions.Compiled ), - new Regex(" font-size:[0-9]+pt;", RegexOptions.Compiled ), - new Regex("style=\"(| |;)*\"", RegexOptions.Compiled ), - new Regex("]*>", RegexOptions.Compiled ), - new Regex("]*>[^<]*", RegexOptions.Compiled ), - new Regex("]*>", RegexOptions.Compiled ), - //new Regex("]*>", RegexOptions.Compiled ), - new Regex("]*>", RegexOptions.Compiled ), - new Regex("

", RegexOptions.Compiled ), - new Regex("]*>", RegexOptions.Compiled), - //new Regex("]*>NOTE

", RegexOptions.Compiled), - //new Regex("]*>CAUTION

", RegexOptions.Compiled), - new Regex("]*>

", RegexOptions.Compiled), - }; - private static Regex regexFixPFrontPadding = new Regex("]*> +", RegexOptions.Compiled); - private static Regex regexFixPRearPadding = new Regex(" +

", RegexOptions.Compiled); - private static Regex regexFixLiFrontPadding = new Regex("]*> +", RegexOptions.Compiled); - private static Regex regexFixLiRearPadding = new Regex(" +", RegexOptions.Compiled); - private static Regex removeExtraReturns = new Regex("\r?\n(\r?\n)+", RegexOptions.Compiled); - private static Regex RegFixMultipleULs = new Regex("[\r\n]*]+>", RegexOptions.Compiled | RegexOptions.Multiline); - private static Regex RegFixMultipleOLs = new Regex("[\r\n]*]+>", RegexOptions.Compiled | RegexOptions.Multiline); - private static RegexReplace[] MyRegExReplaceSpecialChars = { - new RegexReplace("oF","\\'b0F"),// Degree - new RegexReplace("oC","\\'b0C"),// Degree - new RegexReplace("\xB0","\\'b0"),// Degree - new RegexReplace("\xBA","\\'b0"),// Degree - new RegexReplace("\u02DA","\\'b0"),// Degree - new RegexReplace("\xB1","\\'b1"),// - new RegexReplace("\xB2","\\up3 2\\up0 "),// Square - new RegexReplace("\xD7","x"),// Times - new RegexReplace("\u2013","\\u8209?"), - new RegexReplace("\xB1","\\'B1"), - new RegexReplace("\xB7","\\u9679?"), - new RegexReplace("\u2022","\\u9679?"), - new RegexReplace("\u2022","*"), - new RegexReplace("\u25AA","\\u9679?"), - new RegexReplace("\xA0","\\u160?"), - new RegexReplace("\u2019","'"), - new RegexReplace("\u2018","'"), - new RegexReplace("\u201C","\""), - new RegexReplace("\u201D","\""), - new RegexReplace("\u0394","\\u916?"), - new RegexReplace("\uFF06","&"), - new RegexReplace("\u2265","\\u8805?"), - new RegexReplace("\u25CF","\\u9679?"), - new RegexReplace("\u33A0","cm\\up3 2\\up0 "), - new RegexReplace("\u2192","\\u8594?"), - new RegexReplace("\uF07F","\\u9633?"), - new RegexReplace("\\u2264","\\u8804?"), -/* - new RegexReplace("",""), -*/ - new RegexReplace(@">NOTE\\line<",">NOTE<"),// Note - line break - new RegexReplace(@">NOTES\\line<",">NOTES<"),// Note - line break - new RegexReplace(@">NOTE CONTINUED\\line<",">NOTE CONTINUED<"),// Note - line break - new RegexReplace(@"

[\r\n]*

THEN"," THEN")// Break - THEN - }; - private static string cleanupHTML(string html, int level) - { - //Console.WriteLine(html); - //Console.WriteLine("END {0}",level); - html = html.Replace("
", "\\line "); - //if (html.Contains("All Safety Function Status Check")) - // Console.WriteLine(html.Substring(html.IndexOf("All Safety Function Status Check") - 10, 20)); - - foreach (Regex clean in Cleanup) - { - html = clean.Replace(html, ""); - } - //if (html.Contains("All Safety Function Status Check")) - // Console.WriteLine(html.Substring(html.IndexOf("All Safety Function Status Check") - 10, 20)); - // TODO Remove Padding from Front - //html = regexFixPFrontPadding.Replace(html, "

"); - //if (html.Contains("All Safety Function Status Check")) - // Console.WriteLine(html.Substring(html.IndexOf("All Safety Function Status Check") - 10, 20)); - html = regexFixPRearPadding.Replace(html, "

"); - html = regexFixLiFrontPadding.Replace(html, "
  • "); - html = regexFixLiRearPadding.Replace(html, "
  • "); - html = removeExtraReturns.Replace(html, "\n"); - if (html.StartsWith("\r\n")) - html = html.Substring(2); - if (html.StartsWith("\n")) - html = html.Substring(1); - //if (html.Contains("IF the RCS has experienced cooldown rate greater than")) - // Console.WriteLine("Here"); - html = RegFixMultipleULs.Replace(html, ""); - html = RegFixMultipleOLs.Replace(html, ""); - //if( html.Contains("NOTE\\")) - // Console.WriteLine("Here"); - foreach (RegexReplace rr in MyRegExReplaceSpecialChars) - html = rr.DoReplace(html); - return html; - } - private void tbResults_KeyDown(object sender, KeyEventArgs e) - { - if (e.KeyCode == Keys.A && e.Control) - { - tbResults.SelectAll(); - e.Handled = true; - } - } - private void btnLoadProcedure_Click(object sender, EventArgs e) - { - if (_MyFlexGrid == null) - { - _MyFlexGrid = new VlnFlexGrid(); - this.Controls.Add(_MyFlexGrid); - _MyFlexGrid.Location = tbResults.Location; - _MyFlexGrid.Size = tbResults.Size; - _MyFlexGrid.BringToFront(); - _NodeProcessed = new List(); - } - XML2PROMSDB(tbFile.Text); - } - private static string _MyTablePrefix; - private static XmlNamespaceManager _NSMGR; - private void XML2PROMSDB(string filename) - { - try - { - LoadXml(filename, null); - FileInfo fi = new FileInfo(filename); - fi.Directory.CreateSubdirectory("TableHTMLs"); - _MyTablePrefix = fi.DirectoryName + "\\TableHTMLs"; - XmlNamespaceManager nsmgr = new XmlNamespaceManager(MyXMLDoc.NameTable); - nsmgr.AddNamespace("x", MyXMLDoc.DocumentElement.NamespaceURI); - _NSMGR = nsmgr; - XmlNode xn = GetProcedureIdentifier(nsmgr); - string procType = GetProcedureType(xn); - if (procType == "FRP") procType = "EOP"; - // Walk through structure Adding Items as you go - DocVersionInfoList dvil = DocVersionInfoList.Get(); - DocVersionInfo dvi = null; - foreach (DocVersionInfo dviC in dvil) - if (dviC.MyFolder.Name == procType) - dvi = dviC; - ProcedureInfo lastProc = GetLastProcedure(dvi); - //string ProcNum = GetProcedureNumber(lastProc, xn); - string ProcNum = GetProcedureNumber(lastProc, filename); - lblProcedure.Text = ProcNum; - Application.DoEvents(); - using (Procedure proc = Procedure.MakeProcedure(dvi, lastProc, ProcNum, xn.Attributes["fullName"].Value, 0)) - { - proc.Save(); - lastProc = ProcedureInfo.Get(proc.ItemID); - } - try - { - AddGrossStep(lastProc, nsmgr); - } - catch (Exception ex) - { - Console.WriteLine(lastProc.DisplayNumber + "\r\n\r\n" + ex.GetType().Name + "\r\n\r\n" + ex.Message + "\r\n\r\n" + ex.StackTrace); - MessageBox.Show(lastProc.DisplayNumber + "\r\n\r\n" + ex.Message + "\r\n\r\n" + ex.StackTrace, ex.GetType().Name, MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - catch (Exception ex) - { - tbResults.AppendText(string.Format("\r\n{0}\r\n{1} - {2}\r\n", filename, ex.GetType().Name, ex.Message)); - } - } - private static string GetProcedureType(XmlNode xn) - { - foreach (XmlNode xnc in xn.ParentNode.ChildNodes) - if (xnc.Name == "type") - return xnc.Attributes["procedureType"].Value; - return null; - } - private static string GetProcedureNumber(string filename) - { - FileInfo fi = new FileInfo(filename); - string fn = Regex.Replace(fi.Name.Replace(fi.Extension, ""), @"1N2-OP-([-0-9A-Z]+).+", "$1"); - return fn; - } - private static string GetProcedureNumber(ProcedureInfo lastProc, string filename) - { - string ProcNum = GetProcedureNumber(filename); - if (lastProc == null) - ;// ProcNum is correct - else if (lastProc.DisplayNumber == ProcNum) - ProcNum += " Rev 1"; - else if (lastProc.DisplayNumber.StartsWith(ProcNum)) - { - ProcNum = ProcNum + " Rev " + (1 + int.Parse(lastProc.DisplayNumber.Substring(ProcNum.Length + 5))).ToString(); - } - return ProcNum; - } - private static string GetProcedureNumber(ProcedureInfo lastProc, XmlNode xn) - { - string ProcNum = string.Format("{0}-{1}", GetProcedureType(xn), xn.Attributes["shortName"].Value); - if (lastProc == null) - ;// ProcNum is correct - else if (lastProc.DisplayNumber == ProcNum) - ProcNum += " Rev 1"; - else if (lastProc.DisplayNumber.StartsWith(ProcNum)) - { - ProcNum = ProcNum + " Rev " + (1 + int.Parse(lastProc.DisplayNumber.Substring(ProcNum.Length + 5))).ToString(); - } - return ProcNum; - } - private XmlNode GetProcedureIdentifier(XmlNamespaceManager nsmgr) - { - XmlNodeList xl = MyXMLDoc.DocumentElement.SelectNodes("//x:ident", nsmgr); - if (xl.Count != 1) - throw (new Exception("XML File Does not contain a Single Ident Node")); - XmlNode xn = xl[0]; - return xn; - } - private static ProcedureInfo GetLastProcedure(DocVersionInfo dvi) - { - ProcedureInfo lastProc = null; - if (dvi.Procedures != null) - foreach (ProcedureInfo oldProc in dvi.Procedures) - lastProc = oldProc; - return lastProc; - } - private void AddGrossStep(ProcedureInfo lastProc, XmlNamespaceManager nsmgr) - { - XmlNodeList xl = MyXMLDoc.SelectNodes("//x:GrossStep", nsmgr); - SectionInfo prevSection = null; - pbSection.Maximum = xl.Count; - pbSection.Value = 0; - foreach (XmlNode xn in xl) - { - lblSection.Text = "Sect " + xn.Attributes["number"].Value; - pbSection.Value++; - Application.DoEvents(); - string config = null; - int type = 10000; - string sectName = xn.Attributes["name"].Value; - switch (sectName) - { - case "Purpose": - case "Entry Conditions": - case "Exit Conditions": - type = 10001;// Purpose Symptoms and Entry Conditions - config = "
    "; - break; - default: - if (sectName.ToUpper().Contains("ACTION")) - type = 10000;// Procedure Steps - else - if (sectName.ToUpper().StartsWith("ATTACHMENT")) - { - type = 10008; - } - else if(HasContingency(xn)) - { - type = 10002;// Attachment with Column Header - // Two Column - } - else - { - type = 10008;// Attachment without Column Header - config = "
    "; - } - break; - } - using (Section sect = Section.MakeSection(lastProc, prevSection, FixSectionNumber(xn.Attributes["number"].Value), xn.Attributes["name"].Value, type)) - { - if (config != null) - sect.MyContent.Config = config; - sect.Save(); - prevSection = SectionInfo.Get(sect.ItemID); - AddStepChildren(nsmgr, prevSection, xn.SelectNodes("x:Step", nsmgr)); - } - } - } - private bool HasContingency(XmlNode xn) - { - XmlNodeList xl = xn.SelectNodes(".//x:Contingency", _NSMGR); - if (xl.Count == 0) xl = xn.SelectNodes(".//x:BinaryInstruction", _NSMGR); - //if (xl.Count > 0) - // Console.WriteLine("Found Contingency {0} {1} {2} {3}", _ProcNum,xn.Name ,GetAttribute( xn,"number"),GetAttribute( xn,"name")); - return xl.Count > 0; - } - private string FixSectionNumber(string num) - { - if (Regex.IsMatch(num, "[IVX]+")) - return num + "."; - return num; - } - private void AddStepChildren(XmlNamespaceManager nsmgr, SectionInfo prevSection, XmlNodeList xl) - { - if (xl.Count > 0) - { - if (prevSection.DisplayText.StartsWith("Attachment")) - AddAttachments(prevSection, xl, nsmgr); - else - switch (prevSection.DisplayText.ToUpper()) - { - case "PURPOSE": - case "ENTRY CONDITIONS": - case "EXIT CONDITIONS": - AddPSEC(prevSection, xl[0].ChildNodes); - break; - default: - if (AllSiblingsAreCautionsOrNotes(xl)) - AddPSEC(prevSection, xl[0].ChildNodes); - else - AddStep(prevSection, xl); - break; - } - } - } - private bool AllSiblingsAreCautionsOrNotes(XmlNodeList xl) - { - if (xl.Count > 1) return false; - return AllSiblingsAreCautionsOrNotes((xl[0] as XmlElement).ChildNodes[0] as XmlElement); - } - private void AddPSEC(SectionInfo prevSection, XmlNodeList xl) - { - SectionInfo keepPrevSection = prevSection; - //xl = (xl)[0].ChildNodes; - if (xl.Count == 0) return; - //TODO Need to add logic to save the first note as a step and the rest off of the first note - //TODO ChildNodes Can include xmlText as well as xmlElement nodes - //TODO Create list of children - XmlElement FirstNote = null; - XmlElement FirstCaution = null; - XmlElement FirstUnitary = null; - XmlElement FirstContingency = null; - int UnitaryCount = 0; - // List xl1 = new List(); - foreach (XmlNode xn in xl) - { - if (xn is XmlElement) - { - //Find First Child that is a Note - if (FirstNote == null || (xn.Name == "NoteInstruction" && FirstNote.Name != "NoteInstruction")) - FirstNote = xn as XmlElement; - if (FirstCaution == null || (xn.Name == "CautionInstruction" && FirstCaution.Name != "CautionInstruction")) - FirstCaution = xn as XmlElement; - if(FirstUnitary == null && (xn.Name == "UnitaryInstruction" || xn.Name == "UnitaryContingencyCallInstruction" - || xn.Name == "BinaryInstruction" || xn.Name == "Contingency")) - FirstUnitary = xn as XmlElement; - if (xn.Name == "UnitaryInstruction" || xn.Name == "UnitaryContingencyCallInstruction" - || xn.Name == "BinaryInstruction" || xn.Name == "Contingency") - UnitaryCount++; - if (FirstContingency == null && xn.Name == "Contingency") - FirstContingency = xn as XmlElement; - ////if (xn.OuterXml.Contains("ALL AAC")) - // Console.WriteLine("XN ALL AAC"); - } - } - FirstNote = FirstNote ?? FirstCaution; - if (FirstNote != null && FirstNote.Name == "UnitaryInstruction") - if (FirstCaution != null && FirstCaution.Name == "NoteInstruction") - Console.WriteLine("oopsie!"); - //Remove First Note from List - //xl1.Remove(FirstNote); - //TODO Add Remaining Children - StepLookup mySteps = new StepLookup(); - int level = -1; - if (FirstUnitary != null) - { - _LastStepText.Clear(); - while (FirstUnitary != null) - { - //XmlElement lastNote = FirstUnitary; - // Add Other Notes if they exist - prevSection = keepPrevSection; - level = -1; - if (FirstUnitary.Attributes["content"] != null) - { - AddContent(prevSection, mySteps, level, FirstUnitary, true, UnitaryCount); - //if (FirstUnitary.ChildNodes.Count > 0 && FirstUnitary.Name == "UnitaryInstruction") - if (FirstUnitary.Name == "UnitaryContingencyCallInstruction") - MyContingencies.Add((1 + MyContingencies.Count).ToString(), mySteps[mySteps.Count - 1].ItemID); - if (FirstUnitary.ChildNodes.Count > 0) - AddStepStucture(mySteps, mySteps.Count - 1, FirstUnitary, false); - //Console.WriteLine("\"Unitary\"\t\"{0}\"\t\"{1}\"", prevSection, mySteps[mySteps.Count - 1]); - if (FirstContingency != null) - { - ContingencyStep = mySteps[mySteps.Count -1]; - int lev1 = 1 + Math.Min(level + 1, mySteps.Count); - int inc = 1; - FirstContingency = FirstContingency.ChildNodes[0] as XmlElement; - while (FirstContingency != null) - { - AddStepStucture(mySteps, lev1, FirstContingency, true); - lev1 += inc; - mySteps[lev1 - 1] = mySteps[lev1 - 1]; - inc = 0; - FirstContingency = FirstContingency.NextSibling as XmlElement; - } - mySteps[lev1 - 2] = mySteps[lev1 - 2]; - } - if (mySteps.Count > 0) - { - level = 1; - prevSection = null; - } - else - { - //Console.WriteLine("No Steps"); - } - } - if (FirstNote != null && FirstNote.Name == "UnitaryInstruction") - Console.WriteLine("Should not be Unitary Instruction 1 \"{0}\" {1}", _StepLocation, _StepID); - AddNotesAndCautions(ref prevSection, FirstNote, mySteps, ref level); - FirstNote = null; - FirstUnitary = FirstUnitary.NextSibling as XmlElement; - if (FirstUnitary != null && FirstUnitary == FirstContingency) FirstUnitary = FirstUnitary.NextSibling as XmlElement; - while (FirstUnitary != null && (FirstUnitary.Name == "NoteInstruction" || FirstUnitary.Name == "CautionInstruction")) - { - if (FirstNote == null) FirstNote = FirstUnitary; - FirstUnitary = FirstUnitary.NextSibling as XmlElement; - if (FirstUnitary != null && FirstUnitary == FirstContingency) FirstUnitary = FirstUnitary.NextSibling as XmlElement; - break; - } - // if (FirstUnitary != null && FirstUnitary.Name == "Contingency") Console.WriteLine("Contingency"); - //if (FirstUnitary != null && FirstUnitary.Name == "BinaryInstruction") Console.WriteLine("Contingency"); - //if(FirstUnitary != null) - // Console.Write("{0}", mySteps[0]); - // if (FirstNote != null) Console.WriteLine("next"); - } - } - else - AddNotesAndCautions(ref prevSection, FirstNote, mySteps, ref level); - //TODO Add Cautions - } - - private static void AddNotesAndCautions(ref SectionInfo prevSection, XmlElement FirstNote, StepLookup mySteps, ref int level) - { - _LastStepText.Clear(); - while (FirstNote != null) - { - //XmlElement lastNote = FirstNote; - // Add Other Notes if they exist - if (FirstNote.Attributes["content"] != null) - { - XmlElement nextNote = FirstNote.NextSibling as XmlElement; - AddContent(prevSection, mySteps, level, FirstNote, true); - if (FirstNote.ChildNodes.Count > 0 && FirstNote.Name != "NoteInstruction" && FirstNote.Name != "CautionInstruction") - AddStepStucture(mySteps, level, FirstNote); - if (mySteps.Count > 0 && (nextNote == null || nextNote.Name != FirstNote.Name)) - { - level = 1; - prevSection = null; - } - else - { - //Console.WriteLine("No Steps"); - } - } - FirstNote = FirstNote.NextSibling as XmlElement; - if (FirstNote != null && FirstNote.Name != "NoteInstruction" && FirstNote.Name != "CautionInstruction") - break; - // if (FirstNote != null) Console.WriteLine("next"); - if (FirstNote != null && FirstNote.Name == "UnitaryInstruction") - Console.WriteLine("Should not be Unitary Instruction 2 \"{0}\" {1}",_StepLocation,_StepID); - - } - } - private static StepInfo _ContingencyStep = null; - public static StepInfo ContingencyStep - { - get { return _ContingencyStep; } - set { _ContingencyStep = value; } - } - private static string _LastName = ""; - private static List _NodeProcessed = null; - private static void AddContent(SectionInfo prevSection, StepLookup mySteps, int level, XmlNode xn, bool ignoreNote) - { - AddContent(prevSection, mySteps, level, xn, ignoreNote, 0); - } - private static string _StepLocation; - private static int _StepID; - private static Dictionary _LastStepText = new Dictionary(); - private static string _MyRawData = null; - private static string _MyRawType = null; - private static bool _MyRawCheck = true; - private static void AddContent(SectionInfo prevSection, StepLookup mySteps, int level, XmlNode xn, bool ignoreNote, int steps) - { - //if (!_NodeProcessed.Contains(xn)) - // _NodeProcessed.Add(xn); - //else - // Console.WriteLine("node Being Processed again"); - int nextLevel = 0; - int adjustLevel = 0; - //if (level >= mySteps.Count - 1) - //{ - // adjustLevel = level - mySteps.Count; - // Console.WriteLine("Level beyond Range"); - //} - string RNOGoTo = xn.Attributes["linkTarget"] == null ? "" : xn.Attributes["linkTarget"].Value; - int type = 20001; - if (prevSection != null && prevSection.IsSection ) type = 20002; - E_FromType frType = E_FromType.Step; - string xmlbase = xn.Attributes["content"].Value; - //if (xmlbase.Contains("qt-block-indent")) - // Console.WriteLine("Here Indent"); - //if (xmlbase.Contains("the affected SG has been isolated and the cooldown")) - // Console.WriteLine("Here 6"); - //if (xmlbase.Contains("unless misoperation")) - // Console.WriteLine("Here 1"); - //if (xmlbase.Contains("5. Natural")) - // Console.WriteLine("Here 5"); - - string xml = cleanupHTML(xmlbase, 0); - _MyRawData = xml; - _MyRawType = xn.Name; - if (xn.Name == "NoteInstruction" && xml != null && xml.Contains("NOTE")) - Console.WriteLine(xml); - //if (xml.Contains("SET CV-PIK-201, Letdown Backpressure Controller")) - // Console.WriteLine("Found it"); - //if (xml.Contains(""; - } - //if (xml.Contains("SPADES") || xml.Contains("CONFIRM the diagnosis of a SGTR by performing the following")) - // Console.WriteLine("HERE"); - if (prevSection == null) - { - if (xn.Name == "CautionInstruction") - { - type = 20006; - frType = E_FromType.Caution; - } - else if (xn.Name == "NoteInstruction" && (xml.Contains(">NOTE<") || xml.Contains(">NOTES<") || xml.Contains(">NOTE CONTINUED<"))) - { - type = 20007; - frType = E_FromType.Note; - } - else - { - if (ContingencyStep != null) - { - type = 20040; - frType = E_FromType.RNO; - } - else - { - type = 20001; - frType = E_FromType.Step; - } - } - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(xml); - //bool resetUL = true; - string lastNodeName = ""; - //_LastStepText.Clear(); - foreach (XmlNode xn2 in xd.DocumentElement.ChildNodes) - { - if (xn2.InnerText != "" && xn2.InnerText != "NOTE" && xn2.InnerText != "NOTES" && xn2.InnerText != "NOTE CONTINUED" && xn2.InnerText != "CAUTION" && xn2.InnerText != "WARNING") - { - - //if (xn2.InnerText.StartsWith("VERIFY the most affected SG 1")) - // Console.WriteLine("{0},{1}",mySteps,level); - StepText xn2Text = FixText(xn2); - //if (xn2Text.Text.Contains("indications should be used to aid in evaluating plant")) - // Console.WriteLine("Here"); - //if (xn2Text.Text.Contains("unless misoperation")) - // Console.WriteLine("Here 1"); - //if (xn2Text.Text.Contains("temperatures. SG water level is calibrated for normal")) - // Console.WriteLine("Here 4.5"); - //if (xn2Text.Text.StartsWith("Natural")) - // Console.WriteLine("Here 5.0"); - //if (xn2Text.Text.Contains("the affected SG has been isolated and the cooldown")) - // Console.WriteLine("Here 6.0"); - //if (xn2Text.Text.Contains("During all phases of the cooldown")) - // Console.WriteLine("Here 7.0"); - //if (xn2Text.Text.Contains("Minimize the number of cycles of pressurizer auxiliary spray")) - // Console.WriteLine("Here 8.0"); - //if (xn2Text.Text.Contains("Operators should be aware of the status of CCW supply to the")) - // Console.WriteLine("Here 18.0"); - //if (xn2Text.Text.Contains("To minimize the unmonitored release of radioactivity")) - // Console.WriteLine("Here 10.0"); - //if (xn2Text.Text.Contains("When indicated SG water level is excessively high")) - // Console.WriteLine("Here 11.0"); - //if (xn2Text.Text.Contains("When restarting RCPs, it is preferable to first start an RCP")) - // Console.WriteLine("Here 22.0"); - //if (xn2Text.Text.Contains("Allowing the secondary system to backflow to the primary system")) - // Console.WriteLine("Here 27.0"); - //if (xn2Text.Text.Contains("SG backflow for level control Backflow is a permissible operational")) - // Console.WriteLine("Here 27.a"); - //if (xn2Text.Text.Contains("SG backflow for depressurization and cooldown Back flow is")) - // Console.WriteLine("Here 27.b"); - //if (xn2Text.Text.Contains("At least one RCP must be operating before attempting")) - // Console.WriteLine("Here 27.b.*"); - //if (xn2Text.Text.Contains("Once the entire RCS has been successfully cooled to SDC entry")) - // Console.WriteLine("Here 28.0"); - //if (xn2Text.Text.Contains("Operation of the Containment Spray System ")) - // Console.WriteLine("Here 20.0"); - //if (xn2Text.Text.StartsWith("10.")) - // Console.WriteLine("Numbered Step"); - //if (xn2Text.Text.Contains("Cooling System Entry Conditions are satisfied") || - // xn2Text.Text.Contains("Recovery Guideline may be exited when ANY of the following") || - // xn2Text.Text.Contains("has accomplished its purpose by satisfying")) - // Console.WriteLine("Here"); - // Check against last - int lastLevel = level; - level = getMatchingLevel(_LastStepText, xn2Text,lastLevel); - if (level > 0 && type == 20002) - { - if (xn2Text.Tab == "") type = 20024; - else type = 20001; - } - //if (xn2Text.Tab == "*") - // type = 20004; - //else if (xn2Text.Tab == "" && level > 0) - // type = 20024; - //else - //type = 20001; - if (xn2Text.Text != "") - { - if (xn2.Name == "p") - { - //resetUL = true; - XmlNode pxn = PreviousNode(xn2, "p"); - StepText pxnText = FixText(pxn); - XmlNode nxn = NextNode(xn2, "p"); - StepText nxnText = FixText(nxn); - //ListMySteps("AddContent", mySteps); - bool levelIsOK = true;// level < 0 || level < mySteps.Count - 1; - if (xn2Text.Text != "AND" && xn2Text.Text != "OR") - { - if (pxnText != null && pxnText.Text == "OR") - using (Step step = MakeCSLAStep(mySteps, level, null, xn2Text.Text, 20005, E_FromType.Step)) { ;} - else if (pxnText != null && pxnText.Text == "AND") - using (Step step = MakeCSLAStep(mySteps, level, null, xn2Text.Text, 20019, E_FromType.Step)) { ;} - else if (nxnText != null && nxnText.Text == "OR" && NextNode(nxn, "p") != null && nxn.ParentNode.Name != "ul" && levelIsOK) - using (Step step = MakeCSLAStep(mySteps, level, null, xn2Text.Text, 20005, E_FromType.Step)) { ;} - else if (nxnText != null && nxnText.Text == "AND") - using (Step step = MakeCSLAStep(mySteps, level, null, xn2Text.Text, 20019, E_FromType.Step)) { ;} - else - { - if (level < 1 && prevSection != null) - { - if (type == 20007 || frType == E_FromType.Note) - Console.WriteLine("Here"); - int myType = 20002; - if (prevSection.MyContent.Type == 10001 && steps == 0) - myType = 20041; - if(level < 0)level++; - //Console.WriteLine("\"prevSection1\"\t\"{0}\"\t\"{1}\"\t{2}\t{3}", prevSection, mySteps[level], level, myType); - using (Step step = MakeNewStep(prevSection, mySteps[level], null, xn2Text.Text, myType, E_FromType.Step)) - { - //if (step.ItemID == 9408) - // Console.WriteLine("Here"); - step.Save(); - StepInfo si = mySteps[level] = StepInfo.Get(step.ItemID); - CheckHLS(si, "Case 1"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (step.ItemID >= 10079 && step.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - if ((nxnText == null || nxnText.Tab == "" || xn2Text.Tab == "") && (pxnText == null || pxnText.Tab == "" || xn2Text.Tab == "")) - { - prevSection = null; - nextLevel = level + 1; - } - } - } - else - { - switch (frType) - { - case E_FromType.Caution: - if (mySteps[0].Cautions != null && mySteps[0].Cautions.Count > 0) - mySteps[1] = StepInfo.Get(mySteps[0].Cautions[0].LastSibling.ItemID); - break; - case E_FromType.Note: - if (mySteps[0].Notes != null && mySteps[0].Notes.Count > 0) - mySteps[1] = StepInfo.Get(mySteps[0].Notes[0].LastSibling.ItemID); - break; - case E_FromType.RNO: - if (ContingencyStep != null) - { - //Console.WriteLine("BuildMySteps {0} type {1} frtype {2}", ContingencyStep,type,frType); - BuildMySteps(ContingencyStep, mySteps); - ContingencyStep = null; - } - else - { - type = 20024; - frType = E_FromType.Step; - } - level = mySteps.Count; - break; - case E_FromType.Step: - if (level > mySteps.Count) level = mySteps.Count; - if (level > 0 && mySteps[level - 1].Steps != null && mySteps[level - 1].Steps.Count > 0) - mySteps[level] = StepInfo.Get(mySteps[level - 1].Steps[0].LastSibling.ItemID); - break; - case E_FromType.SupInfo: - if (mySteps[level - 1].SupInfos != null && mySteps[level - 1].SupInfos.Count > 0) - mySteps[level] = StepInfo.Get(mySteps[level - 1].SupInfos[0].LastSibling.ItemID); - break; - case E_FromType.Table: - if (mySteps[level - 1].Tables != null && mySteps[level - 1].Tables.Count > 0) - mySteps[level] = StepInfo.Get(mySteps[level - 1].Tables[0].LastSibling.ItemID); - break; - default: - break; - } - switch (frType) - { - case E_FromType.Caution: - using (Step step = MakeNewStep(mySteps[0].MyHLS, GetFirstCaution(mySteps[0].MyHLS), null, xn2Text.Text, type, frType)) - { - step.Save(); - level = 1; - StepInfo si = mySteps[level] = StepInfo.Get(step.ItemID); - CheckHLS(si, "Case 2"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (step.ItemID >= 10079 && step.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - } - type = 20001; - break; - case E_FromType.Note: - using (Step step = MakeNewStep(mySteps[0].MyHLS, GetFirstNote(mySteps[0].MyHLS), null, xn2Text.Text, type, frType)) - { - step.Save(); - level = 1; - StepInfo si = mySteps[level] = StepInfo.Get(step.ItemID); - CheckHLS(si, "Case 3"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (step.ItemID >= 10079 && step.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - } - type = 20001; - break; - default: - //if (frType == E_FromType.RNO) - // Console.WriteLine("{0} {1} {2} {3}", mySteps[level - 1], mySteps[level], frType, xn2.InnerText.Trim(" ".ToCharArray())); - string originalText = null; - if (RNOGoTo != string.Empty && xn.Name != "UnitaryContingencyCallInstruction") - { - string xn2TextAfter = StripQuestion(xn2Text.Text); - if (xn2Text.Text != xn2TextAfter) - { - string removeWord = xn2Text.Text.Replace(xn2TextAfter, "").Replace("?", ""); - originalText = xn2Text.Text; - xn2Text.Text = xn2TextAfter; - } - } - if (originalText != null) - _MyRawCheck = false; - using (Step step = MakeCSLAStep(mySteps, level, null, xn2Text.Text, type, frType)) - { - if (frType == E_FromType.RNO) level++; - if (originalText != null) - Annotation.MakeAnnotation(step, AnnotationType.GetByNameOrCreate("Barakah Conversion1"), null, - string.Format("Original Text:\r\n\r\n{0}\r\n\r\nThis step may need edited.", originalText), null); - } - break; - } - } - if (RNOGoTo != string.Empty && xn.Name != "UnitaryContingencyCallInstruction") - { - //TODO Add Transitions - using (Step stepr = MakeCSLAStep(mySteps, level + 1, null, "Go to step " + RNOGoTo, 20040, E_FromType.RNO)) { ;} - if(level < 0) level = mySteps.Count - 1; - mySteps[level] = mySteps[level]; - } - _MyRawCheck = true; - } - } - } - else if (xn2.Name == "ul" || xn2.Name == "ol") - { - int lev = mySteps.Count - 1; - //if (resetUL) - // mySteps.Remove(lev + 1); - if (lastNodeName == "ul" || lastNodeName == "ol") - lev--; - //resetUL = false; - XmlNodeList xl1 = xn2.SelectNodes("li"); - foreach (XmlNode xn3 in xl1) - { - if (prevSection == null) - { - try - { - if(frType == E_FromType.Note && type == 20007) - using (Step step = MakeCSLAStep(mySteps, lev + 1, null, FixText(xn3).Text, type, frType)) { ;} - - else - using (Step step = MakeCSLAStep(mySteps, lev + 1, null, FixText(xn3).Text, mySteps[lev].DisplayText.ToUpper().StartsWith("ONE ") ? 20005 : 20004, E_FromType.Step)) { ;} - } - catch (Exception ex) - { - ListMySteps(string.Format("makeCSLAStep Crash Level= {0}\r\n\r\n", lev), mySteps); - throw ex; - } - } - else - { - int myType = 20002; - if (mySteps.Count > level) - { - level++; - } - else - Console.WriteLine("Change in Conversion"); - StepText xn3txt = FixText(xn3); - //if(xn3txt.Contains("The following actions are")) - //Console.WriteLine("\"prevSection2\"\t\"{0}\"\t\"{1}\"\t{2}\t{3}", prevSection, mySteps[level], level, myType); - using (Step step = MakeNewStep(prevSection, mySteps[level], null, xn3txt.Text, myType, E_FromType.Step)) - { - step.Save(); - StepInfo si = mySteps[level] = StepInfo.Get(step.ItemID); - CheckHLS(si, "Case 4"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (step.ItemID >= 10079 && step.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - prevSection = null; - lev = level; - } - } - } - } - else - { - if (xn2.Name == "table") - { - //Console.WriteLine("======================> Unprocessed table {0}", GetPath(xn)); - //if (xn2.OuterXml.Contains(@"\u916?") ) - // Console.WriteLine("Here"); - if (mySteps.Count == 0) - using (Step step = MakeNewStep(prevSection, mySteps[level], null, "\xA0 Empty High Level Step", 2, E_FromType.Step)) - { - step.Save(); - level = Math.Max(level, 0); - StepInfo si = mySteps[level] = StepInfo.Get(step.ItemID); - CheckHLS(si, "Case 5"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (step.ItemID >= 10079 && step.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - prevSection = null; - } - if (_MyTableFileName == null) - { - Console.WriteLine("xml='{0}'",xn2.OuterXml); - LoadTable2(xn2, mySteps, level); - } - } - } - } - lastNodeName = xn2.Name; - if(xn2Text.Text != "AND" && xn2Text.Text != "OR") - _LastStepText[level] = xn2Text; - level = Math.Max(level, nextLevel); - } - } - RemoveStepsAbove(mySteps, level); - } - private static Step MakeNewStep(ItemInfo parentInfo, ItemInfo previousInfo, string stepNumber, string stepTitle, int stepType, E_FromType fromType) - { - Step step = Step.MakeStep(parentInfo, previousInfo, stepNumber, stepTitle, stepType, fromType); - if (_MyRawData != null) - { - if (_MyRawCheck && (FixRawData(_MyRawData) != stepTitle)) - { - if (stepType != 20007 && _MyRawData.Contains(">NOTE")) - //Console.WriteLine("Here"); - Annotation.MakeAnnotation(step, AnnotationType.GetByNameOrCreate("Barakah Raw Data"), null, _MyRawType + ":\r\n" + FixRawData(_MyRawData), null); - } - if (_MyRawCheck && _MyRawData != null && _MyRawType == "BinaryInstruction" && _MyRawType == "Contingency") - Annotation.MakeAnnotation(step, AnnotationType.GetByNameOrCreate("Barakah Raw Data2"), null, _MyRawType + ":\r\n" + FixRawData(_MyRawData), null); - _MyRawData = null; - } - return step; - } - private static string FixRawData(string str) - { - str = str.Replace("

    ", "").Replace("

    ", "").Replace("
  • ", "\u25CF ").Replace("
  • ", "\r\n").Replace("", "") - .Replace("", "").Replace(@"\line", "").Replace("","").TrimStart(" \r\n\t".ToCharArray()) - .Replace(@"\u8209?", "\u2011").Replace(@"\u9679?", "\u25CF").Replace("
  • ", "\u25CF ").Replace("
  • ", "\u25CF "); - str = Regex.Replace(str, "]+>", ""); - str = Regex.Replace(str, "]+>", ""); - str = Regex.Replace(str, "[\r\n]+", "\r\n"); - return str; - } - private static void CheckHLS(StepInfo si, string str) - { - if (si.MyContent.Type == 20002 && si.ActiveParent is ItemInfo && (si.ActiveParent as ItemInfo).MyContent.Type == 20002) - Console.WriteLine("HLS Parent of HLS {0}",str); - } - private static Regex _regalpha = new Regex(@"[a-z][\.\)]"); - private static Regex _regALPHA = new Regex(@"[A-Z][\.\)]"); - private static Regex _regNumeric = new Regex(@"([0-9]+)[\.\)]"); - private static string NextTab(string tab) - { - Match m = _regalpha.Match(tab); - if (m.Success) - { - string retval = ((char)(tab[0] + 1)) + tab.Substring(1); - return retval; - } - m = _regALPHA.Match(tab); - if (m.Success) - { - string retval = ((char)(tab[0] + 1)) + tab.Substring(1); - return retval; - } - m = _regNumeric.Match(tab); - if (m.Success) - return ((int.Parse(m.Groups[1].Value)+1).ToString() + tab.Substring(m.Groups[1].Length)); - return tab; - } - private static Regex _RegFirst = new Regex(@"[1Aa][\.\)]", RegexOptions.Compiled); - private static bool IsFirstTab(string tab) - { - if (tab == "" || tab == "*") return true; - bool retval = _RegFirst.IsMatch(tab); - if(retval) return true; - return false; - } - private static int getMatchingLevel(Dictionary lastStepText, StepText xn2Text, int level) - { - //if (xn2Text.Text.Contains("All Safety Function Status Check")) - // Console.WriteLine("here"); - - if (lastStepText.Count == 0) return level; - int maxkey = 0; - int i = 0; - foreach (int key in lastStepText.Keys) // Look at exact match first - { - StepText st = lastStepText[key]; - if (NextTab(st.Tab) == xn2Text.Tab) - { - //if (st.Tab != "*" && st.Tab != "") - // Console.WriteLine("Here"); - if (st.Indent == xn2Text.Indent) - { - return key; - } - if(xn2Text.Tab != "" && Math.Abs(st.Indent - xn2Text.Indent) > 1) - Console.WriteLine("\"Wrong Indent\"\t\"{0}\"\t{1}\t{2}\t{3}\t\"{4}\"\t\"{5}\"\t\"{6}\"",_StepLocation,_StepID, st.Indent, xn2Text.Indent, st.Tab, xn2Text.Tab, xn2Text.Text); - } - if (key > maxkey) maxkey = key; - i++; - } - i = 0; - foreach (int key in lastStepText.Keys) //Look for an indent match - { - StepText st = lastStepText[key]; - if (st.Indent == xn2Text.Indent) - { - //Console.WriteLine("\"=\"\t{0}\t{1}\t{2}\t\"{3}\"\t\"{4}\"", i, st.Indent, xn2Text.Indent, st.Tab, xn2Text.Tab); - //Console.WriteLine("{0}\t\"{1}\"\t\"{2}\"", i, st.Tab, xn2Text.Tab); - if (NextTab(st.Tab) == xn2Text.Tab) - { - //if (st.Tab != "*" && st.Tab != "") - // Console.WriteLine("Here"); - return key; - } - if (IsFirstTab(xn2Text.Tab)) - return key + 1; - // Partial Indent Match - Console.WriteLine("\"Wrong Tab\"\t\"{0}\"\t{1}\t{2}\t{3}\t\"{4}\"\t\"{5}\"\t\"{6}\"", _StepLocation, _StepID, st.Indent, xn2Text.Indent, st.Tab, xn2Text.Tab, xn2Text.Text); - return key; - } - if (key > maxkey) maxkey = key; - i++; - } - i = 0; - foreach (int key in lastStepText.Keys) // Close Indent Match - { - StepText st = lastStepText[key]; - if (st.Indent + 1 == xn2Text.Indent) - { - //Console.WriteLine("\">\"\t{0}\t{1}\t{2}\t\"{3}\"\t\"{4}\"", i, st.Indent, xn2Text.Indent, st.Tab, xn2Text.Tab); - if (xn2Text.Tab == "") return i+1; - return key; - } - - if (st.Indent - 1 == xn2Text.Indent) - { - //Console.WriteLine("\"<\"\t{0}\t{1}\t{2}\t\"{3}\"\t\"{4}\"", i, st.Indent, xn2Text.Indent, st.Tab, xn2Text.Tab); - if (xn2Text.Tab == "") return i+1; - return key; - } - i++; - } - if (IsFirstTab(xn2Text.Tab)) - return maxkey+1; - Console.WriteLine("\"First Not First\"\t\"{0}\"\t{1}\t{2}\t{3}\t\"{4}\"\t\"{5}\"\t\"{6}\"", _StepLocation, _StepID, "", xn2Text.Indent, "", xn2Text.Tab, xn2Text.Text); - return maxkey + 1; - } - - private static string BuildHTMLLibDoc(XmlNode xn, string xmlbase) - { - XmlDocument xd1 = new XmlDocument(); - xmlbase = Regex.Replace(xmlbase, "]+>[\r\n]*", ""); - xmlbase = Regex.Replace(xmlbase, " style=\"\" style=\"", " style=\""); - string pat = " style=\\\"([^\"]+)\\\" style=\\\""; - xmlbase = Regex.Replace(xmlbase, pat, " style=\"$1"); - xmlbase = xmlbase.Replace(" src=\".", " src=\".."); - if (_MyTableFileName == _LastTableFileName) - { - FileInfo fi = new FileInfo(_LastName); - using (StreamReader tr = fi.OpenText()) - { - string lastContents = tr.ReadToEnd(); - // Merge two HTML documents - int endLocation = lastContents.IndexOf(""); - int startLocation = xmlbase.IndexOf(">", xmlbase.IndexOf(" 0) - foreach(XmlNode xc in xls) - if(xc is XmlAttribute) - result += int.Parse(xc.Value); - return result; -} - //private static void LoadTable(XmlNode xn, int level, int row, int col) - //{ - // //if(xn is XmlText) - // //Console.WriteLine("T {0}{1}", "".PadLeft(2*level), xn.InnerText); - // //else - // if(xn is XmlElement) - // foreach(XmlNode xc in xn.ChildNodes) - // { - // if (xc is XmlElement && xc.Name == "td") - // { - // col++; - // //Console.WriteLine("X {0}{1} CS {2} RS {3}", "".PadLeft(2 * level), xc.Name, GetAttribute(xc, "colspan"), GetAttribute(xc, "rowspan")); - // } - // else if (xc is XmlElement && xc.Name == "tr") - // { - // row++; - // //Console.WriteLine("X {0}{1}", "".PadLeft(2 * level), xc.Name); - // } - // else - // //Console.WriteLine("X {0}{1}({2},{3})", "".PadLeft(2 * level), xc.Name,row,col); - // if (xc is XmlElement && xc.Name == "table") - // LoadTable(xc, level + 1, 0, 0); - // else - // LoadTable(xc, level + 1, row, col); - // } - //} - private static string GetAttribute(XmlNode xc, string attName) - { - string retval = null; - XmlAttribute xa = xc.Attributes[attName]; - if (xa != null) - retval = xa.Value; - return retval; - } - private static string StripQuestion(string str) - { - string tmp = Regex.Replace(str, @"^(Is|Are|Has|Does|Did|Can|Do|Was|Were) (.+)\?$", "VERIFY $2"); - //if (tmp != str) - // tmp = tmp.Substring(0, 1).ToUpper() + tmp.Substring(1); - return tmp; - } - private static Regex _RegRemoveLineBreaks = new Regex(@"\\line +", RegexOptions.Compiled); - private static StepText FixText(XmlNode xn) - { - if (xn == null) return null; - string str = xn.InnerText; - //if (str.Contains("may be exited when ANY of the following conditions")) - // Console.WriteLine("here"); - // TODO Remove Tab Numbers - //str = Regex.Replace(xn.InnerText, "[A-Z0-9]+[.)] +", ""); - //str = str.Trim(" \t".ToCharArray()); - //str = Regex.Replace(str, " +", " "); - str = _RegRemoveLineBreaks.Replace(str, " "); - //if (str.Contains("The diagnosis of a SGTR is NOT confirmed")) - // Console.WriteLine("here"); - return new StepText(str); - //RHM return Regex.Replace(str, "^(NOTE|NOTE CONTINUED|CAUTION|WARNING)$", ""); - } - private static ItemInfo GetFirstNote(ItemInfo myItemInfo) - { - if (myItemInfo.Notes != null && myItemInfo.Notes.Count > 0) - return StepInfo.Get(myItemInfo.Notes[0].LastSibling.ItemID); - return null; - } - private static ItemInfo GetFirstCaution(ItemInfo myItemInfo) - { - if (myItemInfo.Cautions != null && myItemInfo.Cautions.Count > 0) - return StepInfo.Get(myItemInfo.Cautions[0].LastSibling.ItemID); - return null; - } - private static void BuildMySteps(StepInfo step, StepLookup mySteps) - { - if ((step.ActiveParent as ItemInfo).IsStep) - { - BuildMySteps(step.ActiveParent as StepInfo, mySteps); - mySteps.AddOne(step); - } - else - mySteps[0] = step; - } - private static void ListMySteps(string str, StepLookup mySteps) - { - int i = 0; - foreach (string key in mySteps.Keys) - { - //if (key != i.ToString()) - Console.WriteLine("{0} {1} {2} {3}", str, i, key, mySteps[key].ToString()); - i++; - } - } - public static Step MakeCSLAStep(StepLookup mySteps, int level, string stepNumber, string stepText, int stepType, E_FromType fromType) - { - if (mySteps.Count < level) - { - //Console.WriteLine("StepText + '{0}", stepText); - level = mySteps.Count; - //throw (new Exception("Error Making Step - null parent and previous")); - } - try - { - //if (mySteps.Count > 1 && mySteps[0].Ordinal == 5 && mySteps[level - 1].IsCautionOrNotePart) - // Console.WriteLine("Here"); - if (level < 1) level = 1; - if (stepType == 20002) - { - if (mySteps[level - 1] != null && mySteps[level - 1].MyContent.Type == 20002) - stepType = 20001; - else if (mySteps[level] != null && mySteps[level].MyContent.Type == 20002) - Console.WriteLine("Oops"); - } - else if (stepType == 20001) - { - if (mySteps[level] != null && mySteps[level].MyContent.Type == 20002) - stepType = 20002; - } - using (Step stp = MakeNewStep(mySteps[level - 1], mySteps[level], stepNumber, stepText, stepType, fromType)) - { - stp.Save(); - StepInfo si = mySteps[level] = StepInfo.Get(stp.ItemID); - CheckHLS(si, "Case 6"); - _StepLocation = si.ShortPath; - _StepID = si.ItemID; - //if (stp.ItemID >= 10079 && stp.ItemID <= 10089) - // Console.WriteLine("{0} - {1} - {2}", si.ItemID, si.DisplayText, si.ShortPath); - return stp; - } - } - catch (Exception ex) - { - throw (new Exception("Error Making Step")); - } - } - private static void RemoveStepsAbove(StepLookup mySteps, int level) - { - List removeList = new List(); - foreach (string key in mySteps.Keys) - if (int.Parse(key) > level) - removeList.Add(key); - foreach (string k in removeList) - mySteps.Remove(k); - //ListMySteps("RemoveStepsAbove", mySteps); - } - private static XmlNode NextNode(XmlNode xn2, string nodeName) - { - while (xn2 != null) - { - xn2 = xn2.NextSibling; - if (xn2 == null) return null; - if (xn2.Name == nodeName) return xn2; - } - return null; - } - private static XmlNode PreviousNode(XmlNode xn2, string nodeName) - { - while (xn2 != null) - { - xn2 = xn2.PreviousSibling; - if (xn2 == null) return null; - if (xn2.Name == nodeName) return xn2; - } - return null; - } - private void AddStep(SectionInfo prevSection, XmlNodeList xl) - { - StepLookup mySteps = new StepLookup(); - pbStep.Value = 0; - pbStep.Maximum = xl.Count; - foreach (XmlNode xn in xl) - { - pbStep.Value++; - Application.DoEvents(); - using (Step step = MakeNewStep(prevSection, mySteps[0], null, xn.Attributes["name"].Value, 20002, E_FromType.Step)) - { - //if (step.ItemID == 9408) - // Console.WriteLine("Here"); - //if (xn.Name == "UnitaryContingencyCallInstruction") - //{ - // string key = xn.Attributes["number"].Value; - // MyContingencies.Add((1 + MyContingencies.Count).ToString(), step.ItemID); - //} - MyContingencies.Clear(); - step.Save(); - mySteps[0] = StepInfo.Get(step.ItemID); - CheckHLS(mySteps[0], "Case 7"); - _StepLocation = mySteps[0].ShortPath; - _StepID = mySteps[0].ItemID; - lblStep.Text = "Step " + mySteps[0].Ordinal.ToString(); - Application.DoEvents(); - AddStepStucture(mySteps, 0, xn); - if (MyContingencies.Count > 0) Console.WriteLine("{0} Contingencies not processed", MyContingencies.Count); - } - } - } - private static Dictionary _MyContingencies = new Dictionary(); - public static Dictionary MyContingencies - { - get { return frmConvertXML._MyContingencies; } - set { frmConvertXML._MyContingencies = value; } - } - private static void AddStepStucture(StepLookup mySteps, int level, XmlNode xn) - { - AddStepStucture(mySteps, level, xn, true); - } - private static void AddStepStucture(StepLookup mySteps, int level, XmlNode xn, bool addContent) - { - //if (mySteps.Count > 0 && mySteps[0].ToString().StartsWith("5")) - //ListMySteps("AddStepStructure", mySteps); - if (xn.Name != "JoinInstruction" && xn.Attributes["content"] != null && xn.Attributes["content"].Value != "") - { - //if (xn.Attributes["content"].InnerText.Contains("the time of this procedure entry")) - // Console.WriteLine("here"); - if (level == -1 && xn.Name != "NoteInstruction" && xn.Name != "CautionInstruction") - level = 0; - if(addContent) - { - _LastStepText.Clear(); - AddContent(null, mySteps, level, xn, false); - } - if (level != mySteps.Count && xn.ParentNode.Name == "Contingency") - level = mySteps.Count; - if (xn.Name == "UnitaryContingencyCallInstruction") - { - if (level == 1) - { - string key = xn.Attributes["number"].Value; - MyContingencies.Add((1 + MyContingencies.Count).ToString(), mySteps[mySteps.Count - 1].ItemID); - //ListMyContingencies(string.Format("Parent Count={0} number={1} linkTarget={2}", MyContingencies.Count, key, xn.Attributes["linkTarget"].Value)); - } - } - } - string lastNodeName = ""; - foreach (XmlNode xn1 in xn.ChildNodes) - { - // ChildNodes can contain XmlText as well as XmlElement nodes - if (xn1 is XmlElement) - { - //if (mySteps.Count > 0 && mySteps[0].Ordinal==5) - // ListMySteps(string.Format("AddStepStructure {0}",xn1.Name), mySteps); - if (xn1.Name == "BoolVarInputItem" || xn1.Name == "TextVarInputItem") - level = mySteps.Count - 1; - //else - if (lastNodeName != xn1.Name && xn1.ParentNode.Name != "Contingency")// RHM 20181018 - RemoveStepsAbove(mySteps, level); - lastNodeName = xn1.Name; - if (xn1.Name == "JoinInstruction") - { - AddStepStucture(mySteps, level, xn1); - } - else if (xn1.Name == "UnitaryContingencyCallInstruction") - { - AddStepStucture(mySteps, level + 1, xn1); - string key = xn1.Attributes["number"].Value; - if (level != 0) - { - MyContingencies.Add((1 + MyContingencies.Count).ToString(), mySteps[level + 1].ItemID); - //ListMyContingencies(string.Format("Child count={0} number={1} linkTarget={2}", MyContingencies.Count, key, xn1.Attributes["linkTarget"].Value)); - } - } - else if (xn1.Name == "taskGroup") - { - XmlNodeList xl = xn1.SelectNodes(".//x:ovationGraphic",_NSMGR); - if (xl.Count > 0) - { - //Add CPSData annotation for Display - StringBuilder sb = new StringBuilder(); - sb.AppendFormat (""); - int i = 0; - foreach (XmlNode xnog in xl) - { - sb.AppendFormat("", ++i); - sb.AppendFormat("{0}", GetAttribute(xnog, "diagramNumber")); - sb.AppendFormat("{0}", GetAttribute(xnog, "title")); - sb.AppendFormat(""); - } - sb.AppendLine(""); - if (mySteps.Count > 0) - { - using (Item itm = mySteps[mySteps.Count - 1].Get()) - Annotation.MakeAnnotation(itm, AnnotationType.GetByNameOrCreate("CPS Data"), null, sb.ToString(), sb.ToString()); - } - } - if (xn1.Attributes["name"].Value != "") AddTaskGroup(mySteps, level + 1, xn1); - else AddStepStucture(mySteps, level, xn1); - } - else if (xn1.Name == "row") - { - AddStepStucture(mySteps, level, xn1); - } - else if (xn1.Name == "BoolVarInputItem") - { - AddBoolVar(mySteps, level, xn1); - } - else if (xn1.Name == "TextVarInputItem") - { - AddTextVar(mySteps, level+1, xn1); - } - else if (xn1.Name == "Contingency") - { - string key = xn1.Attributes["number"].Value; - //Console.WriteLine("Try to use contingency {0}", key); - if (_MyContingencies.Count > 0) - { - if (ContingencyStep != null) - Console.WriteLine("Not Processed"); - ContingencyStep = StepInfo.Get(MyContingencies[key]); - if (ContingencyStep == null) - { - Console.WriteLine("Could not find contingency"); - } - else - { - //Console.WriteLine("Contingency + {0}", ContingencyStep); - } - MyContingencies.Remove(key); - //ListMyContingencies(string.Format("Remove number {0}", key)); - AddStepStucture(mySteps, Math.Min(level + 1, mySteps.Count), xn1); - } - else - { - Console.WriteLine("No Contingencies left"); - } - } - else - { - if (xn1.Name == "NoteInstruction" || xn1.Name == "CautionInstruction") - { - StepLookup stack = CloneSteps(mySteps); - //if (mySteps.Count > 0 && mySteps[0].ToString().StartsWith("5")) - // ListMySteps("AddStepStructure Before ", mySteps); - mySteps[0] = mySteps[0]; - AddStepStucture(mySteps, 1, xn1); - foreach (string key in stack.Keys) - mySteps[key] = stack[key]; - //if (mySteps.Count > 0 && mySteps[0].ToString().StartsWith("5")) - // ListMySteps("AddStepStructure After", mySteps); - } - else - AddStepStucture(mySteps, Math.Min(level + 1, mySteps.Count), xn1); - } - } - } - //if (mySteps.Count > 0 && mySteps[0].ToString().StartsWith("5")) - // ListMySteps("AddStepStructure", mySteps); - } - private static StepLookup CloneSteps(StepLookup mySteps) - { - StepLookup sl = new StepLookup(); - foreach (string key in mySteps.Keys) - sl.Add(key, mySteps[key]); - return sl; - } - private static void ListMyContingencies(string name) - { - Console.WriteLine("contingencies - {0}", name); - foreach (string key in MyContingencies.Keys) - Console.WriteLine("{0}\t{1}", key, MyContingencies[key]); - } - private static void AddBoolVar(StepLookup mySteps, int level, XmlNode xn1) - { - if(xn1.Attributes["varInputReadOnly"].Value == "false") - using (Step step = MakeCSLAStep(mySteps, level, null, xn1.Attributes["varInputLabel"].Value + " True __ / False __", 20011, E_FromType.Step)) { ;} - else - using (Step step = MakeCSLAStep(mySteps, level, null, xn1.Attributes["varInputLabel"].Value, 20011, E_FromType.Step)) { ;} - } - private static void AddTextVar(StepLookup mySteps, int level, XmlNode xn1) - { - using (Step step = MakeCSLAStep(mySteps, level, null, xn1.Attributes["varInputLabel"].Value +" ____________", 20011, E_FromType.Step)) { ;} - } - private static void AddTaskGroup(StepLookup mySteps, int level, XmlNode xn1) - { - if (level > mySteps.Count) level = mySteps.Count; - using (Step step = MakeCSLAStep(mySteps, level, null, xn1.Attributes["name"].Value, 20024, E_FromType.Step)) { ;} - AddStepStucture(mySteps, level, xn1); - } - private void AddAttachments(SectionInfo parentSection, XmlNodeList xl, XmlNamespaceManager nsmgr) - { - SectionInfo prevSection = null; - foreach (XmlNode xn in xl) - { - string config = null; - int type ; - if(HasContingency(xn)) - { - type=10002; - } - else - { - type = 10008; - config ="
    "; - } - using (Section sect = Section.MakeSection(parentSection, prevSection, "Attachment " + xn.Attributes["number"].Value, xn.Attributes["name"].Value, type)) - { - if(config != null) - { - sect.MyContent.Config = config; - sect.Save(); - } - prevSection = SectionInfo.Get(sect.ItemID); - //AddStepChildren(nsmgr, prevSection, xn.ChildNodes); - //Console.WriteLine("{0} - {1}", prevSection.ShortPath, xn.OuterXml); - _MyTableFileName = parentSection.MyProcedure.DisplayNumber + "_" - + parentSection.DisplayNumber + prevSection.DisplayNumber; - //if (GetSectionStyle(xn) == "Free Form") - AddPSEC(prevSection, xn.ChildNodes); - //else - // AddStep(prevSection, xn.ChildNodes); - _MyTableFileName = null; - } - } - } - private static string _MyTableFileName; - private void btnBrowse_Click(object sender, EventArgs e) - { - ofd.FileName = tbFile.Text; - if (ofd.ShowDialog() == DialogResult.OK) - tbFile.Text = ofd.FileName; - } - private void btnAll_Click(object sender, EventArgs e) - { - if (_MyFlexGrid == null) - { - _MyFlexGrid = new VlnFlexGrid(); - this.Controls.Add(_MyFlexGrid); - _MyFlexGrid.Location = tbResults.Location; - _MyFlexGrid.Size = tbResults.Size; - _MyFlexGrid.BringToFront(); - - } - - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - _ProcNum = GetProcedureNumber(chld.FullName); - XML2PROMSDB(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - lblStep.Text = "Step"; - lblSection.Text = "Section"; - lblProcedure.Text = "Procedure"; - tbResults.AppendText("\r\n\r\n Done\r\n"); - } - private void btnAllStructure_Click(object sender, EventArgs e) - { - tbResults.Clear(); - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - LoadStructure(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.Clear(); - ShowStructure2(); - } - - private void btnAllStructure2_Click(object sender, EventArgs e) - { - tbResults.Clear(); - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - LoadStructure(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.Clear(); - ShowStructure(); - } - - private void btnAllContent_Click(object sender, EventArgs e) - { - tbResults.Text = ""; - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - FileInfo [] children = fi.Directory.GetFiles("*.xml"); - pbProcs.Maximum = children.Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in children) - { - if (!chld.Name.StartsWith("._")) - { - tbResults.AppendText("\r\n" + chld.FullName); - GetAllContents(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - } - tbResults.AppendText("\r\nDone"); - } - - private void GetAllContents(string fileName) - { - FileInfo fi = new FileInfo(fileName); - FileInfo fo = new FileInfo(fi.DirectoryName + "\\" + GetProcedureNumber(fileName) + ".txt"); - GetAllContents(fi, fo); - } - - private void GetAllContents(FileInfo fi, FileInfo fo) - { - StreamWriter sw = fo.CreateText(); - LoadXml(fi.FullName, "Document Loaded"); - ShowAllContent(MyXMLDoc.DocumentElement, 0, sw); - sw.Close(); - } - - private void ShowAllContent(XmlElement xe, int level, StreamWriter sw) - { - ShowContent(xe, level, sw); - foreach (XmlNode ch in xe.ChildNodes) - { - if (ch is XmlElement) - ShowAllContent(ch as XmlElement, level + 1, sw); - } - } - - private void ShowContent(XmlElement xe, int level, StreamWriter sw) - { - string format = "Not Defined"; - string prefix = " "; - switch (xe.Name) - { - case "ident": - format = "Procedure (LabelType-number)={labelType}-{number} fullName={fullName} PNSNo={PNSNo}"; - break; - case "type": - format = "Procedure Type: {procedureType}"; - break; - case "GrossStep": - format = "number={number} name={name}"; - break; - case "Step": - format = "{number} {name}"; - prefix = "S "; - break; - case "Contingency": - format = "{number} {name}"; - prefix = "C "; - break; - case "attrib": - case "procedure": - case "controllers": - case "row": - format = "";// No Content - break; - case "CautionInstruction": - case "NoteInstruction": - format = "number={number} {content}"; - break; - case "UnitaryInstruction": - case "BinaryInstruction": - format = "number={number} Left Target: {leftTarget} Link Target: {linkTarget} {content}"; - break; - case "JoinInstruction": - format = "Link Target: {linkTarget} JoinType: {joinType}"; - break; - case "UnitaryContingencyCallInstruction": - format = "number={number} Link Target: {linkTarget} Evaluation Type: {evaluationType} {content}"; - prefix = "U "; - break; - case "taskGroup": - format = "name={name} borderVisible={borderVisible}"; - break; - case "BoolVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "TextVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "ovationGraphic": - format = "title={title} Diagram Number: {diagramNumber}"; - break; - case "ovationGroupTrend": - format = "name={name} description={description}"; - break; - case "controller": - format = "controller - Unknown"; - break; - case "and": - format = "and id={id}"; - break; - case "BigOverview": - format = "BigOverview grossStep={grossStep} number={number} id={id}"; - break; - case "BovActionStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovCheckBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovIfStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} rightTarget={rightTarget} {content}"; - break; - case "BovMessageBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovProcedureLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepInLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepOutLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "descr": - case "esinfo": - case "esproj": - case "esprop": - case "private": - case "pwg": - case "pwt": - case "revbase": - case "systemtest": - format = ""; - break; - case "eq": - case "gt": - case "gte": - case "lt": - case "lte": - case "not": - case "or": - format = "id={id}"; - break; - case "fcase": - case "tcase": - format = "rst={rst}"; - break; - case "logic": - format = "id={id} number={number}"; - break; - case "ovationSingleTrend": - format = "description={description} number={number} id={id} name={name}"; - break; - case "prop": - format = "type={type} value={value} name={name}"; - break; - case "TextVarInputInstruction": - format = "taskDescription={taskDescription} varInputLabel={varinputLabel} number={number} {content}"; - break; - case "utest": - format = "tested={tested}"; - break; - case "var": - format = "var_type={var_type} id={id} name={name} number={number}"; - break; - case "const": - format = "var_type={var_type} id={id} value={value}"; - break; - } - sw.Write(string.Format("\r\n{0}{1}{2} ", prefix, "".PadRight(level, ' ').Replace(" ", "| "), xe.Name)); - sw.Write(ReplaceAllAttributes(format, xe, level, prefix)); - } - - private void btnHTML_Click(object sender, EventArgs e) - { - tbResults.Clear(); - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - LoadStructure3(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.Clear(); - ShowStructure(); - } - - private void LoadStructure3(string fileName) - { - LoadXml(fileName, null); - //Find Content Attributes - LoadStructure3(MyXMLDoc.DocumentElement); - } - private void LoadStructure3(XmlElement xe) - { - LoadStructure3Content(xe); - foreach (XmlNode xn in xe.ChildNodes) - { - if (xn is XmlElement) - LoadStructure3(xn as XmlElement); - } - } - - private void LoadStructure3Content(XmlElement xn) - { - if (xn.Attributes["content"] != null) - { - string xml = cleanupHTML(xn.Attributes["content"].Value, 0); - if (xml == string.Empty) return; - if (xml.Replace(" ", "") == xn.Name) return; - - if (!xml.Contains("<")) - { - Console.WriteLine("not XML '{0}'", xml); - xml = "

    " + xml + "

    "; - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(xml); - //xml = xml.Replace("", ""); - //vlnhtml myHTML = HtmlSerializer.StringDeserialize(xml); - Node.Add(xd.DocumentElement); - } - } - private Dictionary _DicHTMLStruct; - - public Dictionary DicHTMLStruct - { - get { return _DicHTMLStruct; } - set { _DicHTMLStruct = value; } - } - - private void btnHTML2_Click(object sender, EventArgs e) - { - DicHTMLStruct = new Dictionary(); - tbResults.Clear(); - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - LoadStructure4(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.Clear(); - ShowHtmlStructure(); - } - /// - /// Show Count for each structure - /// - private void ShowHtmlStructure() - { - tbResults.Text = ""; - foreach (string key in DicHTMLStruct.Keys) - tbResults.AppendText(string.Format("{0}\t\"{1}\"\r\n", DicHTMLStruct[key], key)); - } - private void LoadStructure4(string fileName) - { - LoadXml(fileName, null); - //Find Content Attributes - LoadStructure4(MyXMLDoc.DocumentElement); - } - private void LoadStructure4(XmlElement xe) - { - LoadStructure4Content(xe); - foreach (XmlNode xn in xe.ChildNodes) - { - if (xn is XmlElement) - LoadStructure4(xn as XmlElement); - } - } - - private void LoadStructure4Content(XmlElement xn) - { - if (xn.Attributes["content"] != null) - { - string xml = cleanupHTML(xn.Attributes["content"].Value, 0); - if (xml == string.Empty) return; - if (xml.Replace(" ", "") == xn.Name) return; - - if (!xml.Contains("<")) - { - //Console.WriteLine("not XML '{0}'", xml); - xml = "

    " + xml + "

    "; - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(xml); - XmlAttribute xa = xd.CreateAttribute("type"); - xa.Value = xn.Name; - xd.DocumentElement.Attributes.Append(xa); - if (xn.Attributes["number"] != null && xn.Attributes["number"].Value != string.Empty) - { - XmlAttribute xa1 = xd.CreateAttribute("number"); - xa1.Value = xn.Attributes["number"].Value; - if (Regex.IsMatch(xa1.Value, "[0-9]+")) xa1.Value = "#"; - xd.DocumentElement.Attributes.Append(xa1); - } - - //AddStructure(GetStructurePath(xd.DocumentElement).Replace("[br]-T","")); - AddStructure(GetStructurePath(xd.DocumentElement,true)); - } - } - private void AddStructure(string mystruct) - { - if (!DicHTMLStruct.ContainsKey(mystruct)) - DicHTMLStruct.Add(mystruct, 1); - else - DicHTMLStruct[mystruct]++; - } - private string GetStructurePath(XmlElement xe, bool removeDuplicates) - { - StringBuilder sb = new StringBuilder(); - sb.Append("[" + xe.Name); - if (xe.Name == "ul") - sb.Append(GetUlDetail(xe)); - //if (xe.Name == "html") - //{ - // sb.Append(" " + xe.Attributes["type"].Value); - // if (xe.Attributes["number"] != null && xe.Attributes["number"].Value != string.Empty) - // sb.Append(" " + xe.Attributes["number"].Value); - //} - if (xe.ChildNodes != null && xe.ChildNodes.Count > 0) - { - if (xe.Name != "table") - { - foreach (XmlNode xc in xe.ChildNodes) - { - if (xc is XmlElement) - sb.Append(GetStructurePath(xc as XmlElement, removeDuplicates)); - else if (xc is XmlText) - { - //Console.WriteLine(xc.Value); - Match ma = Regex.Match(xc.Value, "^ *(and|or|AND|OR) *$"); - Match mcn = Regex.Match(xc.Value, "^ *(CAUTION|NOTE|WARNING|CAUTIONS|NOTES|WARNINGS|NOTE CONTINUED) *$"); - Match m1 = Regex.Match(xc.Value, "^[0-9]+[\\.\\)] "); - Match m2 = Regex.Match(xc.Value, "^[A-Z][\\.\\)] "); - Match m3 = Regex.Match(xc.Value, "^[a-z][\\.\\)] "); - Match m4 = Regex.Match(xc.Value, "^[-\u2022\u25AA\u25CF]");// Bullets and Dashes - Match m5 = Regex.Match(xc.Value, "^[^#0-9\\t*(A-Za-z \u00A0\"<>\u2264\\[\uD558\u00B7\u0025\u002F\uF07F\uFF1C\uFF1E\u02C2\u02C3\u203B\u2265\u2267\u2460\u2461\u25AA\u25B2\u25BC\u25CF] "); - if (mcn.Value != string.Empty) - sb.Append("-T " + mcn.Value); - else if (ma.Value != string.Empty) - sb.Append("-T " + ma.Value); - else if (m1.Value != string.Empty) - sb.Append("-T " + m1.Value.Trim()); - else if (m2.Value != string.Empty) - sb.Append("-T " + m2.Value.Trim()); - else if (m3.Value != string.Empty) - sb.Append("-T " + m3.Value.Trim()); - else if (m4.Value != string.Empty) - sb.Append("-T {" + "Bullet " + ((int)(m4.Value[0])).ToString() + "}"); - else if (m5.Value != string.Empty) - sb.Append("-T {{" + ((int)(m5.Value[0])).ToString() + "}}"); - else sb.Append("-T"); - } - } - } - //else - //Console.WriteLine("here"); - } - sb.Append("]"); - RemoveRepeats(sb.ToString(),removeDuplicates); - return sb.ToString(); - } - private string GetUlDetail(XmlElement xe) - { - XmlAttribute xaType = xe.Attributes["type"]; - XmlAttribute xaStyle = xe.Attributes["style"]; - string type = string.Empty; - if (xaType != null) - type = " t" + xaType.Value; - string indent = string.Empty; - if (xaStyle != null) - indent = " i" + Regex.Replace(xaStyle.Value, "^.*-qt-list-indent: ([0-9]+).*$", "$1"); - return type + indent; - } - RegexReplace[] MyRegExReplaces = { - new RegexReplace("\\[p-T\\]","[Para]"), - new RegexReplace("\\[p-T OR\\]","[OR]"), - new RegexReplace("\\[p-T AND\\]","[AND]"), - new RegexReplace("\\[p-T NOTE\\]","[NOTE]"), - new RegexReplace("\\[p-T CAUTION\\]","[CAUTION]"), - new RegexReplace("\\[p-T WARNING\\]","[WARNING]"), - new RegexReplace("\\[p-T [0-9]+\\.\\]","[Seq1.]"), - new RegexReplace("\\[p-T [0-9]+\\)\\]","[Seq1)]"), - new RegexReplace("\\[p-T [A-Z]\\.\\]","[SeqA.]"), - new RegexReplace("\\[p-T [a-z]\\.\\]","[Seqa.]"), - new RegexReplace("\\[li-T\\]","[Li]"), - new RegexReplace(" tsquare i1","1"), - new RegexReplace(" tsquare i2","2"), - new RegexReplace(" tsquare i3","3"), - new RegexReplace(" tsquare i4","4"), - new RegexReplace("(\\[p\\])+","") - }; - RegexReplace[] MyRegExRepeats = { - new RegexReplace("(\\[Para\\])+","[Para]"), - new RegexReplace("(\\[OR\\])+","[OR]"), - new RegexReplace("(\\[AND\\])+","[AND]"), - new RegexReplace("(\\[NOTE\\])+","[NOTE]"), - new RegexReplace("(\\[CAUTION\\])+","[CAUTION]"), - new RegexReplace("(\\[WARNING\\])+","[WARNING]"), new RegexReplace("\\[p-T \\{\u2022\\}\\]","[Bullet]"), - new RegexReplace("(\\[Bullet\\])+","[Bullet]"), - new RegexReplace("(\\[Seq1\\.\\])+","[Seq1.]"), - new RegexReplace("(\\[Seq1\\)\\])+","[Seq1)]"), - new RegexReplace("(\\[SeqA\\.\\])+","[SeqA.]"), - new RegexReplace("(\\[Seqa\\.\\])+","[Seqa.]"), - new RegexReplace("(\\[Li\\])+","[Li]") -}; - private string RemoveRepeats(string str, bool removeDuplicates) - { - foreach (RegexReplace rr in MyRegExReplaces) - str = rr.DoReplace(str); - if (removeDuplicates) - foreach (RegexReplace rr in MyRegExRepeats) - str = rr.DoReplace(str); - return str; - } - private void btnCandN_Click(object sender, EventArgs e) - { - LoadXml(tbFile.Text, "Document Loaded"); - tbResults.Clear(); - FindCandN(MyXMLDoc.DocumentElement); - } - - private void FindCandN(XmlElement xe) - { - if ((xe.Name == "CautionInstruction" || xe.Name == "NoteInstruction") - && (xe.ParentNode as XmlElement).Name == "Step" && AllSiblingsAreCautionsOrNotes(xe)) - tbResults.AppendText(xe.Name - + "\t" + (xe.ParentNode as XmlElement).Attributes["name"].Value - + "\t" + (xe.ParentNode as XmlElement).Attributes["name"].Value - + "\t" + (xe.ParentNode.ParentNode as XmlElement).Attributes["name"].Value - + "\r\n"); - foreach (XmlNode xc in xe.ChildNodes) - if (xc is XmlElement) - FindCandN(xc as XmlElement); - } - private bool AllSiblingsAreCautionsOrNotes(XmlElement xe) - { - XmlElement xep = xe.ParentNode as XmlElement; - if (xep == null) return false; - foreach (XmlNode xc in xep.ChildNodes) - if (xc.Name != "CautionInstruction" && xc.Name != "NoteInstruction") - return false; - return true; - } - private void btnHTLM3_Click(object sender, EventArgs e) - { - MessageBox.Show("Not Implemented", "NA", MessageBoxButtons.OK, MessageBoxIcon.Hand); - } - private void btnAllContent2_Click(object sender, EventArgs e) - { - tbResults.Text = ""; - Node.Reset(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - tbResults.AppendText("\r\n" + chld.FullName); - GetAllContents2(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.AppendText("\r\nDone"); - } - private void GetAllContents2(string fileName) - { - FileInfo fi = new FileInfo(fileName); - FileInfo fo = new FileInfo(fi.DirectoryName + "\\" + GetProcedureNumber(fileName) + ".txt"); - GetAllContents2(fi, fo); - } - private void GetAllContents2(FileInfo fi, FileInfo fo) - { - StreamWriter sw = fo.CreateText(); - LoadXml(fi.FullName, "Document Loaded"); - ShowAllContent2(MyXMLDoc.DocumentElement, 0, sw); - sw.Close(); - } - private void ShowAllContent2(XmlElement xe, int level, StreamWriter sw) - { - ShowContent2(xe, level, sw); - foreach (XmlNode ch in xe.ChildNodes) - { - if (ch is XmlElement) - ShowAllContent2(ch as XmlElement, level + 1, sw); - } - } - private void ShowContent2(XmlElement xe, int level, StreamWriter sw) - { - string format = "Not Defined"; - string prefix = " "; - switch (xe.Name) - { - case "ident": - format = "Procedure (LabelType-number)={labelType}-{number} fullName={fullName} PNSNo={PNSNo}"; - break; - case "type": - format = "Procedure Type: {procedureType}"; - break; - case "GrossStep": - format = "number={number} name={name}"; - break; - case "Step": - format = "{number} {name}"; - prefix = "S "; - break; - case "Contingency": - format = "{number} {name}"; - prefix = "C "; - break; - case "attrib": - case "procedure": - case "controllers": - case "row": - format = "";// No Content - break; - case "CautionInstruction": - case "NoteInstruction": - format = "number={number} {content}"; - break; - case "UnitaryInstruction": - case "BinaryInstruction": - format = "number={number} Left Target: {leftTarget} Link Target: {linkTarget} {content}"; - break; - case "JoinInstruction": - format = "Link Target: {linkTarget} JoinType: {joinType}"; - break; - case "UnitaryContingencyCallInstruction": - format = "number={number} Link Target: {linkTarget} Evaluation Type: {evaluationType} {content}"; - prefix = "U "; - break; - case "taskGroup": - format = "name={name} borderVisible={borderVisible}"; - break; - case "BoolVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "TextVarInputItem": - format = "varInputLabel={varInputLabel} Data Point: {varInputDataPoint}"; - break; - case "ovationGraphic": - format = "title={title} Diagram Number: {diagramNumber}"; - break; - case "ovationGroupTrend": - format = "name={name} description={description}"; - break; - case "controller": - format = "controller - Unknown"; - break; - case "and": - format = "and id={id}"; - break; - case "BigOverview": - format = "BigOverview grossStep={grossStep} number={number} id={id}"; - break; - case "BovActionStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovCheckBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovIfStep": - format = "column={column} number={number} linkTarget={linkTarget} group={group} id={id} name={name} label={label} rightTarget={rightTarget} {content}"; - break; - case "BovMessageBox": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovProcedureLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepInLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "BovStepOutLink": - format = "column={column} linkTarget={linkTarget} group={group} id={id} name={name} label={label} {content}"; - break; - case "descr": - case "esinfo": - case "esproj": - case "esprop": - case "private": - case "pwg": - case "pwt": - case "revbase": - case "systemtest": - format = ""; - break; - case "eq": - case "gt": - case "gte": - case "lt": - case "lte": - case "not": - case "or": - format = "id={id}"; - break; - case "fcase": - case "tcase": - format = "rst={rst}"; - break; - case "logic": - format = "id={id} number={number}"; - break; - case "ovationSingleTrend": - format = "description={description} number={number} id={id} name={name}"; - break; - case "prop": - format = "type={type} value={value} name={name}"; - break; - case "TextVarInputInstruction": - format = "taskDescription={taskDescription} varInputLabel={varinputLabel} number={number} {content}"; - break; - case "utest": - format = "tested={tested}"; - break; - case "var": - format = "var_type={var_type} id={id} name={name} number={number}"; - break; - case "const": - format = "var_type={var_type} id={id} value={value}"; - break; - } - sw.Write(string.Format("\r\n{0}{1}{2} ", prefix, "".PadRight(level, ' ').Replace(" ", "| "), xe.Name)); - sw.Write(ReplaceAllAttributes2(format, xe, level, prefix)); - } - private string ReplaceAllAttributes2(string format, XmlElement xe, int level, string prefix) - { - MatchCollection m; - while ((m = regFixAttributes.Matches(format)).Count > 0) - { - string part1 = format.Substring(0, m[0].Groups[1].Index); - string part3 = format.Substring(m[0].Groups[1].Index + m[0].Groups[1].Length); - string att = m[0].Groups[1].Value.Replace("{", "").Replace("}", ""); - XmlAttribute xa = xe.Attributes[att]; - //if (xa == null) - // Console.WriteLine(xe.OuterXml); - string part2; - if (xa != null) - part2 = xe.Attributes[att].Value; //GetAttribute(xe, att); - else - part2 = "null"; - if (part2 == string.Empty) part2 = "empty"; - if (att == "content") - { - if (!part2.Contains("<")) - { - part2 = "

    " + part2 + "

    "; - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(cleanupHTML(part2,1)); - part2 = GetStructurePath(xd.DocumentElement,false); - part2 = part2.Replace("\n", string.Format("\r\n {0} ", "".PadRight(level).Replace(" ", "| "))); - } - format = part1 + part2 + part3; - } - return format; - } - Dictionary _VerbList; - private void btnVerbs_Click(object sender, EventArgs e) - { - _VerbList = new Dictionary(); - tbResults.Clear(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - FindVerbs(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - tbResults.Clear(); - ShowVerbs(); - } - - private void ShowVerbs() - { - foreach (string key in _VerbList.Keys) - tbResults.AppendText(string.Format("{0}\t\"{1}\"\r\n",_VerbList[key], key)); - } - - private void FindVerbs(string fileName) - { - LoadXml(fileName, null); - //Find Content Attributes - FindVerbs(MyXMLDoc.DocumentElement); - } - - private void FindVerbs(XmlElement xe) - { - FindVerbContent(xe); - foreach (XmlNode xn in xe.ChildNodes) - { - if (xn is XmlElement) - FindVerbs(xn as XmlElement); - } - } - Regex _regFindSpan = new Regex("([A-Z]+)", RegexOptions.Compiled); - private void FindVerbContent(XmlElement xn) - { - if (xn.Attributes["content"] != null) - { - string xml = xn.Attributes["content"].Value; - if (xml == string.Empty) return; - if (xml.Replace(" ", "") == xn.Name) return; - //if (xml.Contains("font-weight:600")) Console.WriteLine("here"); - MatchCollection mc = _regFindSpan.Matches(xml); - if (mc.Count == 0) return; - foreach (Match m in mc) - if (_VerbList.ContainsKey(m.Groups[1].Value)) - _VerbList[m.Groups[1].Value]++; - else - _VerbList.Add(m.Groups[1].Value,1); - } - } - private SortedDictionary _DicFigureUsage; - private void btnFigures_Click(object sender, EventArgs e) - { - _DicFigureUsage = new SortedDictionary(); - tbResults.Clear(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - // Loop through XML Files - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - FindImages(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - ShowFigures(); - } - - private void ShowFigures() - { - tbResults.AppendText("\r\n\r\n**** MultipleOccurences ****\r\n\r\n"); - foreach (string key in _DicFigureUsage.Keys) - if(_DicFigureUsage[key]>1) - tbResults.AppendText(string.Format("{0}\t{1}\r\n", _DicFigureUsage[key], key)); - } - private void FindImages(string fileName) - { - - LoadXml(fileName, null); - //Find Content Attributes - FindImages(MyXMLDoc.DocumentElement, GetProcedureNumber(fileName)); - } - - private void FindImages(XmlElement xe, string procname) - { - FindImageContent(xe, procname); - foreach (XmlNode xn in xe.ChildNodes) - { - if (xn is XmlElement) - FindImages(xn as XmlElement, procname); - } - } - //Regex _regFindImage = new Regex("", RegexOptions.Compiled); - private void FindImageContent(XmlElement xn, string procname) - { - if (xn.Attributes["content"] != null) - { - string xml = cleanupHTML(xn.Attributes["content"].Value, 0); - if (xml == string.Empty) return; - if (xml.Replace(" ", "") == xn.Name) return; - if (!xml.Contains(" siblings = new SortedDictionary(); - XmlNode xp = xn.PreviousSibling; - while (xp != null) - { - string key = xp.Name; - if (!siblings.ContainsKey(key)) - siblings.Add(key, ShortVersion(key)); - xp = xp.PreviousSibling; - } - XmlNode xx = xn.NextSibling; - while (xx != null) - { - string key = xx.Name; - if (!siblings.ContainsKey(key)) - siblings.Add(key, ShortVersion(key)); - xx = xx.NextSibling; - } - string results = ""; - foreach (string ky in siblings.Keys) - results += siblings[ky]; - if (results == "") return null; - return results; - } - - private static string ShortVersion(string key) - { - switch (key) - { - case "NoteInstruction": - return "N"; - case "CautionInstruction": - return "C"; - case "Contingency": - return "*"; - case "UnitaryInstruction": - return "U"; - case "BinaryInstruction": - return "B"; - case "JoinInstruction": - return "J"; - case "UnitaryContingencyCallInstruction": - return "R"; - default: - return string.Format("[{0}]", key); - } - } - - private void btnTables_Click(object sender, EventArgs e) - { - //Loop through content containing table(s) under td. - tbResults.Clear(); - FileInfo fi = new FileInfo(tbFile.Text); - pbProcs.Maximum = fi.Directory.GetFiles("*.xml").Count(); - pbProcs.Value = 0; - // Loop through XML Files - foreach (FileInfo chld in fi.Directory.GetFiles("*.xml")) - { - FindTables(chld.FullName); - pbProcs.Value++; - Application.DoEvents(); - } - ShowTables(); - } - - private void ShowTables() - { - //throw new NotImplementedException(); - } - - private void FindTables(string fileName) - { - LoadXml(fileName, null); - //Find Content Attributes - FindTables(MyXMLDoc.DocumentElement, GetProcedureNumber(fileName)); - } - private void FindTables(XmlElement xe, string procNum) - { - FindTableContent(xe, procNum); - foreach (XmlNode xn in xe.ChildNodes) - { - if (xn is XmlElement) - FindTables(xn as XmlElement, procNum); - } - } - - private void FindTableContent(XmlElement xn, string procNum) - { - if (xn.Attributes["content"] != null) - { - string xml = cleanupHTML(xn.Attributes["content"].Value, 0); - if (xml == string.Empty) return; - if (xml.Replace(" ", "") == xn.Name) return; - if (!xml.Contains("]+>[\r\n]*", ""); - xmlbase = Regex.Replace(xmlbase, " style=\"\" style=\"", " style=\""); - string pat = " style=\\\"([^\"]+)\\\" style=\\\""; - xmlbase = Regex.Replace(xmlbase, pat, " style=\"$1"); - - XmlDocument xd = new XmlDocument(); - //TODO 20180913 0644 Not XML - if (!xmlbase.Contains("<")) return false; - xd.LoadXml(xmlbase); - return FirstTextIsType1(xd.DocumentElement, typ); - } - private static bool FirstTextIsType1(XmlNode xn, string typ) - { - foreach (XmlNode xc in xn.ChildNodes) - { - if (xc is XmlText) - { - if ((xc as XmlText).Value.Contains(typ)) - return true; - return false; - } - if (xc.Name == "body" || xc.Name == "p" || xc.Name == "li" || xc.Name == "span") - return FirstTextIsType1(xc, typ); - } - return false; - } - private static string GetSectionStyle(XmlNode xn) - { - foreach (XmlNode xc in xn.ChildNodes) - if (xc.Name == "BinaryInstruction" || xc.Name == "Contingency " || xc.Name=="UnitaryContingencyCallInstruction" || countChildNodes(xc)>0) - if(xc.Name != "esinfo") return "Substeps"; - bool hasFreeForm = false; - bool hasSpecificNotes = false; - bool hasUnitary = false; - foreach (XmlNode xc in xn.ChildNodes) - { - if (xc.Name == "NoteInstruction" || xc.Name == "CautionInstruction") - { - if (FirstTextIsType(xc, "NOTE") || FirstTextIsType(xc, "CAUTION") || FirstTextIsType(xc, "WARNING")) - { - hasSpecificNotes = true; - } - else - hasFreeForm = true; - } - if (xc.Name == "UnitaryInstruction") - hasUnitary = true; - } - if (hasFreeForm) return "Free Form"; - if (hasUnitary) return "Step or Free Form"; - return hasSpecificNotes ? "Specific Notes" : "Unknown"; - } - - private static int countChildNodes(XmlNode xn) - { - if (xn.ChildNodes.Count == 0) return 0; - int retval = 0; - foreach (XmlNode xc in xn.ChildNodes) - { - if (xc.Name.EndsWith("Instruction") || xc.Name =="Contingency") retval++; - retval += countChildNodes(xc); - } - //if (retval > 0 && xn.Name == "NoteInstruction") Console.WriteLine("here"); - return retval; - } - - private object GetContainsImage(XmlNode xn) - { - if (xn.InnerXml.Contains("<img ")) return "Image"; - return ""; - } - - private object GetContainsTable(XmlNode xn) - { - if (xn.InnerXml.Contains("<table ")) return "Table"; - return ""; - } - } - public class RegexReplace - { - private string _Pattern; - public string Pattern - { - get { return _Pattern; } - set { _Pattern = value; } - } - private string _Replace; - public string Replace - { - get { return _Replace; } - set { _Replace = value; } - } - private Regex _RegEx; - public Regex RegEx - { - get - { - if (_RegEx == null) - _RegEx = new Regex(Pattern, RegexOptions.Compiled); - return _RegEx; - } - } - public RegexReplace(string pattern, string replace) - { - _Pattern = pattern; - _Replace = replace; - } - public string DoReplace(string str) - { - return RegEx.Replace(str, Replace); - } - } - public class StepLookup : SortedDictionary - { - public StepInfo this[int i] - { - get - { - if (this.ContainsKey(i.ToString())) return base[i.ToString()]; - return null; - } - set - { - if (i > this.Count) - throw new Exception("Gap in Stack"); - if (value == null) - throw new Exception("Null StepInfo"); - //if (value.MyHLS.Ordinal==5 && (value.IsNote || value.IsCaution )) - // Volian.Base.Library.vlnStackTrace.ShowStackLocal(2,5,"=====> Adding Caution or Note on Step 5 {0}",value); - if (this.ContainsKey(i.ToString())) - { - base[i.ToString()] = value; - while (this.ContainsKey((i + 1).ToString())) - base.Remove((base.Count - 1).ToString()); - } - else base.Add(i.ToString(), value); - //ListMySteps("Set ", this); - } - } - public void AddOne(StepInfo previousStep) - { - this[this.Count] = previousStep; - } - private static void ListMySteps(string str, StepLookup mySteps) - { - int i = 0; - foreach (string key in mySteps.Keys) - { - if (key != i.ToString()) - Console.WriteLine("{0} {1} {2} {3}", str, i, key, mySteps[key].DisplayText); - i++; - } - } - } - public class StepText - { - private string _OriginalText; - public string OriginalText - { - get { return _OriginalText; } - set { _OriginalText = value; } - } - private int _Indent=0; - public int Indent - { - get { return _Indent; } - set { _Indent = value; } - } - private string _Tab=string.Empty; - public string Tab - { - get { return _Tab; } - set { _Tab = value; } - } - private string _Text; - public string Text - { - get { return _Text; } - set { _Text = value; } - } - public StepText() - { - } - private static Regex reg_SplitText = new Regex(@"^(([\t ]*)([a-z1-9A-Z][0-9]*[\.\)](?= |[^S0-9])|\*|)( *))((?![0-9]+\.[0-9]+ )[0-9A-Za-z][^\r\n]*)"); - private static Regex reg_SplitText1 = new Regex(@"([\t ]*)([1-9][0-9]*\.[0-9]+(?= *(Manually )?[A-Z]))( *)([^\r\n]+)"); - public StepText(string str) - { - OriginalText = str; - //if (str.Contains("\\u9679?")) - // Console.WriteLine("here"); - if (str.Trim().StartsWith("T.S.")) - { - Tab = ""; - Indent = str.Length - str.TrimStart().Length; - Text = str.Substring(Indent); - } - //if (str.Contains("3.1") || str.Contains("1.1") || str.Contains("Line up the valves for manual operation")) - // Console.WriteLine("here"); - Match m = reg_SplitText.Match(str.Replace("\\u9679?", "*")); - if (m.Success) - { - Tab = m.Groups[3].Value; - Indent = m.Groups[2].Length + Tab.Length + m.Groups[4].Length; - Text = m.Groups[5].Value; - //if (Text.Contains("OR") || Text.Contains("AND")) - // Console.WriteLine("here"); - } - else - { - m = reg_SplitText1.Match(str.Replace("\\u9679?", "*")); - if (m.Success) - { - Tab = m.Groups[1].Value; - Indent = m.Groups[1].Length + Tab.Length + m.Groups[4].Length; - Text = m.Groups[5].Value; - } - else - { - Tab = ""; - Indent = str.Length - str.TrimStart().Length; - Text = str.Substring(Indent); - } - } - //if(Regex.IsMatch(Text,@"^[1-9a-zA-Z][.\)]")) - // Console.WriteLine(Text); - } - public override string ToString() - { - return string.Format("{0} {1} {2}",Indent,Tab,Text); - } - } - public class Node - { - private static SortedList _AllNodes = new SortedList(); - public static SortedList AllNodes - { - get { return Node._AllNodes; } - set { Node._AllNodes = value; } - } - public static void Reset() - { - _AllNodes = new SortedList(); - } - private string _Name; - public string Name - { - get { return _Name; } - set { _Name = value; } - } - private List _Children = new List(); - public List Children - { - get { return _Children; } - set { _Children = value; } - } - private Attributes _Attributes = new Attributes(); - public Attributes Attributes - { - get { return _Attributes; } - set { _Attributes = value; } - } - private bool _HasText = false; - public bool HasText - { - get { return _HasText; } - set { _HasText = value; } - } - public Node(XmlElement xe) - { - _AllNodes.Add(xe.Name, this); - } - public static void Add(XmlElement xe) - { - BuildList(xe); - } - private static void BuildList(XmlElement xe) - { - Node nd; - if (!_AllNodes.ContainsKey(xe.Name)) - nd = new Node(xe); - else - nd = _AllNodes[xe.Name]; - AdjustChildren(nd, xe.ChildNodes); - AdjustAttributes(nd, xe.Attributes); - foreach (XmlNode ch in xe.ChildNodes) - // ChildNodes can contain XmlText as well as XmlElement nodes - if (ch is XmlElement) - BuildList(ch as XmlElement); - } - private static void AdjustAttributes(Node nd, XmlAttributeCollection xmlAttributeCollection) - { - foreach (XmlAttribute xa in xmlAttributeCollection) - AdjustAttribute(nd, xa); - } - private static void AdjustAttribute(Node nd, XmlAttribute xa) - { - nd.Attributes.Add(xa); - } - private static void AdjustChildren(Node nd, XmlNodeList xmlNodeList) - { - foreach (XmlNode ne in xmlNodeList) - { - // XmlNodeList can contain XmlText as well as XmlElement nodes - if (ne is XmlElement) - { - if (!nd.Children.Contains((ne as XmlElement).Name)) - nd.Children.Add((ne as XmlElement).Name); - } - else if (ne is XmlText) - nd.HasText = true; - else - Console.WriteLine("Not Expected {0}", ne.GetType().FullName); - } - } - } - public class Attributes : Dictionary - { - public void Add(XmlAttribute xa) - { - if (!this.ContainsKey(xa.Name)) - base.Add(xa.Name, new Attribute(xa)); - else - { - Attribute att = this[xa.Name]; - att.Count++; - att.MinValue = string.Compare(att.MinValue, xa.Value) > 0 ? xa.Value : att.MinValue; - att.MaxValue = string.Compare(att.MinValue, xa.Value) < 0 ? xa.Value : att.MaxValue; - } - } - } - public class Attribute - { - public Attribute(XmlAttribute xa) - { - _Name = xa.Name; - _MinValue = xa.Value; - _MaxValue = xa.Value; - _Count = 1; - } - private string _Name; - public string Name - { - get { return _Name; } - set { _Name = value; } - } - private string _MinValue; - public string MinValue - { - get { return _MinValue; } - set { _MinValue = value; } - } - private string _MaxValue; - public string MaxValue - { - get { return _MaxValue; } - set { _MaxValue = value; } - } - private int _Count = 0; - public int Count - { - get { return _Count; } - set { _Count = value; } - } - } -} diff --git a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.resx b/PROMS/BarakahConvert/XMLConvert/frmConvertXML.resx deleted file mode 100644 index 216d3ddc..00000000 --- a/PROMS/BarakahConvert/XMLConvert/frmConvertXML.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 25 - - \ No newline at end of file diff --git a/PROMS/BarakahConvert/XMLConvert/vlnhtml.cs b/PROMS/BarakahConvert/XMLConvert/vlnhtml.cs deleted file mode 100644 index 41a9e014..00000000 --- a/PROMS/BarakahConvert/XMLConvert/vlnhtml.cs +++ /dev/null @@ -1,742 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Xml.Serialization; -using System.ComponentModel; -using System.Xml; -using System.Xml.Schema; -using System.IO; - -namespace XMLConvert -{ - /// - /// Root Node - /// - [XmlRoot("html")] - public class vlnhtml : VlnHtmlContainer - { - } - [TypeConverter(typeof(ExpandableObjectConverter))] - /// - /// Part - /// - public class VlnHtmlPart - { - #region ID - protected string _ID = string.Empty; - [System.ComponentModel.DefaultValueAttribute("")] - [XmlIgnore] - public string ID - { - get { return _ID; } - set { _ID = value; } - } - #endregion - //#region Parent and Containing Svg - //// ToDo: MyParent - //private SvgPartGrouping _MyParent; - //[XmlIgnore()] - //public SvgPartGrouping MyParent - //{ - // get { return _MyParent; } - // set { _MyParent = value; } - //} - //// ToDo: MySvg - //private Svg _MySvg; - //public Svg MySvg - //{ - // get { return _MySvg; } - // set { _MySvg = value; } - //} - //internal void SetParent(SvgPartGrouping myParent) - //{ - // _MyParent = myParent; - // _MySvg = myParent.MySvg == null? MyParent : myParent.MySvg; - //} - //#endregion - #region Dictionary of Parts - internal virtual void AddLookup(Dictionary lookUp) - { - if (_ID != string.Empty && !lookUp.ContainsKey(_ID)) - lookUp.Add(_ID, this); - } - #endregion - } - [Serializable()] - [TypeConverter(typeof(VlnHtmlPartsConverter))] - /// - /// Parts - /// - public class VlnHtmlParts : CollectionBase, ICustomTypeDescriptor - { - /// Notifies when the collection has been modified. - public event EventHandler OnItemsChanged; - - /// Notifies that an item has been added. - public event VlnHtmlPartHandler OnItemAdd; - - /// Notifies that items have been added. - public event VlnHtmlPartHandler OnItemsAdd; - - /// Notifies that an item has been removed. - public event VlnHtmlPartHandler OnItemRemove; - - /// - /// - /// Initializes a new instance of . - /// - /// - public VlnHtmlParts() - { - } - - /// - /// - /// Initializes a new instance of based on another . - /// - /// - /// - /// A from which the contents are copied - /// - public VlnHtmlParts(VlnHtmlParts value) - { - this.AddRange(value); - } - - /// - /// - /// Initializes a new instance of containing any array of objects. - /// - /// - /// - /// A array of objects with which to intialize the collection - /// - public VlnHtmlParts(VlnHtmlPart[] value) - { - this.AddRange(value); - } - - /// - /// Represents the entry at the specified index of the . - /// - /// The zero-based index of the entry to locate in the collection. - /// - /// The entry at the specified index of the collection. - /// - /// is outside the valid range of indexes for the collection. - public VlnHtmlPart this[int index] - { - get { return ((VlnHtmlPart)(List[index])); } - set { List[index] = value; } - } - //#region SetupInheritance - //internal void SetupInheritance(SvgInheritedSettings myParentsSettings) - //{ - // foreach (vlnhtmlpart vlnhtmlpart in List) - // vlnhtmlpart.SetupInheritance(myParentsSettings); - //} - //#endregion - #region Dictionary of Parts - internal void AddLookup(Dictionary lookUp) - { - foreach (VlnHtmlPart vlnhtmlpart in List) - vlnhtmlpart.AddLookup(lookUp); - } - #endregion - internal static void ShowException(Exception ex) - { - StringBuilder sb = new StringBuilder(); - string sep = ""; - for (Exception ex1 = ex; ex1 != null; ex1 = ex1.InnerException) - { - sb.Append(sep + string.Format("ShowException {0} - {1}", ex1.GetType().Name, ex1.Message)); - sep = "\r\n"; - } - Console.WriteLine(sb); - } - /// - /// Adds a with the specified value to the - /// . - /// - /// The to add. - /// - /// The index at which the new element was inserted. - /// - /// - public int Add(VlnHtmlPart value) - { - int ndx = List.Add(value); - if (OnItemAdd != null) { OnItemAdd(this, new vlnhtmlpartArgs(value)); } - if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); } - return ndx; - } - - /// - /// Copies the elements of an array to the end of the . - /// - /// - /// An array of type containing the objects to add to the collection. - /// - /// - /// None. - /// - /// - public void AddRange(VlnHtmlPart[] value) - { - for (int i = 0; i < value.Length; i++) - { - this.Add(value[i]); - } - if (OnItemsAdd != null) { OnItemsAdd(this, new vlnhtmlpartArgs(value)); } - if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); } - } - - /// - /// - /// Adds the contents of another to the end of the collection. - /// - /// - /// - /// A containing the objects to add to the collection. - /// - /// - /// None. - /// - /// - public void AddRange(VlnHtmlParts value) - { - for (int i = 0; i < value.Count; i++) - { - this.Add(value[i]); - } - if (OnItemsAdd != null) { OnItemsAdd(this, new vlnhtmlpartArgs(value)); } - if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); } - } - - /// - /// Gets a value indicating whether the - /// contains the specified . - /// - /// The to locate. - /// - /// if the is contained in the collection; - /// otherwise, . - /// - /// - public bool Contains(VlnHtmlPart value) - { - return List.Contains(value); - } - - /// - /// Copies the values to a one-dimensional instance at the - /// specified index. - /// - /// The one-dimensional that is the destination of the values copied from . - /// The index in where copying begins. - /// - /// None. - /// - /// is multidimensional. -or- The number of elements in the is greater than the available space between and the end of . - /// is . - /// is less than 's lowbound. - /// - public void CopyTo(VlnHtmlPart[] array, int index) - { - List.CopyTo(array, index); - } - - /// - /// Returns the index of a in - /// the . - /// - /// The to locate. - /// - /// The index of the of in the - /// , if found; otherwise, -1. - /// - /// - public int IndexOf(VlnHtmlPart value) - { - return List.IndexOf(value); - } - - /// - /// Inserts a into the at the specified index. - /// - /// The zero-based index where should be inserted. - /// The to insert. - /// None. - /// - public void Insert(int index, VlnHtmlPart value) - { - List.Insert(index, value); - if (OnItemAdd != null) { OnItemAdd(this, new vlnhtmlpartArgs(value)); } - if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); } - } - - /// - /// Removes a specific from the - /// . - /// - /// The to remove from the . - /// None. - /// is not found in the Collection. - public void Remove(VlnHtmlPart value) - { - List.Remove(value); - if (OnItemRemove != null) { OnItemRemove(this, new vlnhtmlpartArgs(value)); } - if (OnItemsChanged != null) { OnItemsChanged(value, EventArgs.Empty); } - } - #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(System.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(System.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.Count; i++) - { - // Create a property descriptor for the item and add to the property descriptor collection - vlnhtmlpartsPropertyDescriptor pd = new vlnhtmlpartsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - - /// Event arguments for the vlnhtmlparts collection class. - public class vlnhtmlpartArgs : EventArgs - { - private VlnHtmlParts t; - - /// Default constructor. - public vlnhtmlpartArgs() - { - t = new VlnHtmlParts(); - } - - /// Initializes with a vlnhtmlpart. - /// Data object. - public vlnhtmlpartArgs(VlnHtmlPart t) - : this() - { - this.t.Add(t); - } - - /// Initializes with a collection of vlnhtmlpart objects. - /// Collection of data. - public vlnhtmlpartArgs(VlnHtmlParts ts) - : this() - { - this.t.AddRange(ts); - } - - /// Initializes with an array of vlnhtmlpart objects. - /// Array of data. - public vlnhtmlpartArgs(VlnHtmlPart[] ts) - : this() - { - this.t.AddRange(ts); - } - - /// Gets or sets the data of this argument. - public VlnHtmlParts vlnhtmlparts - { - get { return t; } - set { t = value; } - } - } - - /// vlnhtmlparts event handler. - public delegate void VlnHtmlPartHandler(object sender, vlnhtmlpartArgs e); - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class vlnhtmlpartsPropertyDescriptor : vlnListPropertyDescriptor - { - private VlnHtmlPart Item { get { return (VlnHtmlPart)_Item; } } - public vlnhtmlpartsPropertyDescriptor(VlnHtmlParts collection, int index) : base(collection, index) { ;} - public override string DisplayName - { get { return Item.GetType().Name; } } - } - #endregion - [Serializable()] - public partial class vlnListPropertyDescriptor : PropertyDescriptor - { - protected object _Item = null; - public vlnListPropertyDescriptor(System.Collections.IList collection, int index) - : base("#" + index.ToString(), null) - { _Item = collection[index]; } - public override bool CanResetValue(object component) - { return true; } - public override Type ComponentType - { get { return _Item.GetType(); } } - public override object GetValue(object component) - { return _Item; } - public override bool IsReadOnly - { get { return false; } } - public override Type PropertyType - { get { return _Item.GetType(); } } - public override void ResetValue(object component) - { ;} - public override bool ShouldSerializeValue(object component) - { return true; } - public override void SetValue(object component, object value) - { /*_Item = value*/;} - //public override AttributeCollection Attributes - //{ get { return new AttributeCollection(null); } } - public override string DisplayName - { get { return _Item.ToString(); } } - public override string Description - { get { return _Item.ToString(); } } - public override string Name - { get { return _Item.ToString(); } } - - } // Class - #region Converter - internal class VlnHtmlPartsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is VlnHtmlParts) - { - // Return department and department role separated by comma. - return ((VlnHtmlParts)value).List.Count.ToString() + " SVG Drawing Parts"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion - /// SVGParts event handler. - //public delegate void VlnHtmlPartHandler(object sender, VlnHtmlPartArgs e); - //#region Property Descriptor - ///// - ///// Summary description for CollectionPropertyDescriptor. - ///// - //public partial class VlnHtmlPartsPropertyDescriptor : vlnListPropertyDescriptor - //{ - // private VlnHtmlPart Item { get { return (VlnHtmlPart)_Item; } } - // public VlnHtmlPartsPropertyDescriptor(VlnHtmlParts collection, int index) : base(collection, index) { ;} - // public override string DisplayName - // { get { return Item.GetType().Name; } } - //} - //#endregion - //[Serializable()] - //public partial class vlnListPropertyDescriptor : PropertyDescriptor - //{ - // protected object _Item = null; - // public vlnListPropertyDescriptor(System.Collections.IList collection, int index) - // : base("#" + index.ToString(), null) - // { _Item = collection[index]; } - // public override bool CanResetValue(object component) - // { return true; } - // public override Type ComponentType - // { get { return _Item.GetType(); } } - // public override object GetValue(object component) - // { return _Item; } - // public override bool IsReadOnly - // { get { return false; } } - // public override Type PropertyType - // { get { return _Item.GetType(); } } - // public override void ResetValue(object component) - // { ;} - // public override bool ShouldSerializeValue(object component) - // { return true; } - // public override void SetValue(object component, object value) - // { /*_Item = value*/;} - // //public override AttributeCollection Attributes - // //{ get { return new AttributeCollection(null); } } - // public override string DisplayName - // { get { return _Item.ToString(); } } - // public override string Description - // { get { return _Item.ToString(); } } - // public override string Name - // { get { return _Item.ToString(); } } - - //} // Class - //#region Converter - //internal class VlnHtmlPartsConverter : ExpandableObjectConverter - //{ - // public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - // { - // if (destType == typeof(string) && value is VlnHtmlParts) - // { - // // Return department and department role separated by comma. - // return ((VlnHtmlParts)value).List.Count.ToString() + " Vln Html Parts"; - // } - // return base.ConvertTo(context, culture, value, destType); - // } - //} - // } - //#endregion - } - - - /// - /// Hyperrlink - /// - public class vlnhtml_a - { - //url - } - public class vlnhtmlContent : VlnHtmlPart - { - string _text; - [XmlText] - public string Text - { - get { return _text; } - set { _text = value; } - } - string _style;// -qt-block-indent:1or2 - [XmlAttribute("style")] - public string Style - { - get { return _style; } - set { _style = value; } - } - string _align;// Center Right Justify - [XmlAttribute("align")] - public string Align - { - get { return _align; } - set { _align = value; } - } - } - /// - /// Paragraph - /// - public class vlnhtml_p : vlnhtmlContent - { - } - /// - /// Break - /// - public class vlnhtml_br : VlnHtmlPart - { - } - /// - /// Image - /// - public class vlnhtml_img : VlnHtmlPart - { - string _src;//filename and Path - [XmlAttribute("src")] - public string Src - { - get { return _src; } - set { _src = value; } - } - int _width; - [XmlAttribute("width")] - public int Width - { - get { return _width; } - set { _width = value; } - } - } - /// - /// Container - /// - public class VlnHtmlContainer : VlnHtmlPart - { - VlnHtmlParts _Children = new VlnHtmlParts(); - [XmlElement("ul", typeof(vlnhtml_ul))] - [XmlElement("ol", typeof(vlnhtml_ol))] - [XmlElement("li", typeof(vlnhtml_li))] - [XmlElement("p", typeof(vlnhtml_p))] - [XmlElement("a", typeof(vlnhtml_a))] - [XmlElement("br", typeof(vlnhtml_br))] - [XmlElement("img", typeof(vlnhtml_img))] - [XmlElement("table", typeof(vlnhtml_table))] - internal VlnHtmlParts Children - { - get - { - //if (_Children == null) - // _Children = new VlnHtmlParts(); - return _Children; - } - set { _Children = value; } - } - } - /// - /// Ordered List - /// - public class vlnhtml_ol : VlnHtmlContainer - { - string _style;// -qt-block-indent:1or2 - [XmlAttribute("style")] - public string Style - { - get { return _style; } - set { _style = value; } - } - } - /// - /// Unordered List - /// - public class vlnhtml_ul : VlnHtmlContainer - { - string _style;// -qt-block-indent:1or2 - [XmlAttribute("style")] - public string Style - { - get { return _style; } - set { _style = value; } - } - } - /// - /// List Item - /// - public class vlnhtml_li : vlnhtmlContent - { - } - /// - /// Table - /// - public class vlnhtml_table : VlnHtmlContainer - { - string _style;// -qt-block-indent:1or2 - [XmlAttribute("style")] - public string Style - { - get { return _style; } - set { _style = value; } - } - int _border;// - int _cellspacing; - int _cellpadding; - } - public class vlnhtml_tr : VlnHtmlContainer - { - } - public class vlnhtml_td : VlnHtmlContainer - { - } - public static class HtmlSerializer where T : class - { - public static string StringSerialize(T t) - { - string strOutput = string.Empty; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html"); - using (MemoryStream ms = new MemoryStream()) - { - xs.Serialize(new NonXsiTextWriter(ms, Encoding.UTF8), t); - //xs.Serialize(ms, t); - ms.Position = 0; - StreamReader sr = new StreamReader(ms); - strOutput = sr.ReadToEnd(); - ms.Close(); - } - return strOutput; - } - public static T StringDeserialize(string s) - { - T t; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html"); - UTF8Encoding enc = new UTF8Encoding(); - Byte[] arrBytData = enc.GetBytes(s); - using (MemoryStream ms = new MemoryStream(arrBytData)) - { - t = (T)xs.Deserialize(ms); - } - return t; - } - public static void WriteFile(T t, string fileName) - { - string strOutput = string.Empty; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html"); - using (FileStream fs = new FileStream(fileName, FileMode.Create)) - { - xs.Serialize(new NonXsiTextWriter(fs, Encoding.UTF8), t); - fs.Close(); - } - } - public static T ReadFile(string fileName) - { - T t; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.w3.org/2000/html"); - using (FileStream fs = new FileStream(fileName, FileMode.Open)) - { - t = (T)xs.Deserialize(fs); - } - return t; - } - } - public class NonXsiTextWriter : XmlTextWriter - { - public NonXsiTextWriter(TextWriter w) : base(w) { } - public NonXsiTextWriter(Stream w, Encoding encoding) - : base(w, encoding) - { - this.Formatting = Formatting.Indented; - } - public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { } - bool _skip = false; - public override void WriteStartAttribute(string prefix, string localName, string ns) - { - if ((prefix == "xmlns" && (localName == "xsd" || localName == "xsi")) || // Omits XSD and XSI declarations. - ns == XmlSchema.InstanceNamespace) // Omits all XSI attributes. - { - _skip = true; - return; - } - if (localName == "xlink_href") - base.WriteStartAttribute(prefix, "xlink:href", ns); - else - base.WriteStartAttribute(prefix, localName, ns); - } - public override void WriteString(string text) - { - if (_skip) return; - base.WriteString(text); - } - public override void WriteEndAttribute() - { - if (_skip) - { // Reset the flag, so we keep writing. - _skip = false; - return; - } - base.WriteEndAttribute(); - } - } -} diff --git a/PROMS/ClassLibrary1/ClassLibrary1.sln b/PROMS/ClassLibrary1/ClassLibrary1.sln deleted file mode 100644 index 4843d7e7..00000000 --- a/PROMS/ClassLibrary1/ClassLibrary1.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ClassLibrary1", "ClassLibrary1\ClassLibrary1.csproj", "{EEA3D698-C9BC-4A38-9D5F-B89CBC68B739}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {EEA3D698-C9BC-4A38-9D5F-B89CBC68B739}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EEA3D698-C9BC-4A38-9D5F-B89CBC68B739}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EEA3D698-C9BC-4A38-9D5F-B89CBC68B739}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EEA3D698-C9BC-4A38-9D5F-B89CBC68B739}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/ClassLibrary1/ClassLibrary1/Class1.cs b/PROMS/ClassLibrary1/ClassLibrary1/Class1.cs deleted file mode 100644 index 08281c64..00000000 --- a/PROMS/ClassLibrary1/ClassLibrary1/Class1.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; - -namespace ClassLibrary1 -{ - public class Class1 - { - } -} diff --git a/PROMS/ClassLibrary1/ClassLibrary1/ClassLibrary1.csproj b/PROMS/ClassLibrary1/ClassLibrary1/ClassLibrary1.csproj deleted file mode 100644 index bdbe22a3..00000000 --- a/PROMS/ClassLibrary1/ClassLibrary1/ClassLibrary1.csproj +++ /dev/null @@ -1,53 +0,0 @@ - - - - - Debug - AnyCPU - {EEA3D698-C9BC-4A38-9D5F-B89CBC68B739} - Library - Properties - ClassLibrary1 - ClassLibrary1 - v4.5 - 512 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ClassLibrary1/ClassLibrary1/Properties/AssemblyInfo.cs b/PROMS/ClassLibrary1/ClassLibrary1/Properties/AssemblyInfo.cs deleted file mode 100644 index a172f3c4..00000000 --- a/PROMS/ClassLibrary1/ClassLibrary1/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ClassLibrary1")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Windows User")] -[assembly: AssemblyProduct("ClassLibrary1")] -[assembly: AssemblyCopyright("Copyright © Windows User 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("1223b3df-00ea-4978-8df2-cb49ac67e751")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.exe.intermediate.manifest b/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.exe.intermediate.manifest deleted file mode 100644 index 9b3e3ba3..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.exe.intermediate.manifest +++ /dev/null @@ -1,3 +0,0 @@ - - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.res b/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.res deleted file mode 100644 index 61ec452b..00000000 Binary files a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/dsoframer.res and /dev/null differ diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/vc80.idb b/PROMS/DSOFramer/DSOFramer/Source2005/Demo/vc80.idb deleted file mode 100644 index f76d5265..00000000 Binary files a/PROMS/DSOFramer/DSOFramer/Source2005/Demo/vc80.idb and /dev/null differ diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframer.idl b/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframer.idl deleted file mode 100644 index d818958e..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframer.idl +++ /dev/null @@ -1,281 +0,0 @@ -/*************************************************************************** - * DSOFRAMER.IDL - DSO Framer ActiveX Control Type Library - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -/*************************************************************************** - * - * IMPORTANT: You should not attempt to modify this library unless you are - * sure you do not break binary compatibility, or you change all the GUIDs - * listed in version.h so as to build a completely new control. - * - ***************************************************************************/ -#include -#include "..\version.h" - -[ - uuid(DSOFRAMERCTL_TLIB), helpstring(DSOFRAMERCTL_FULLNAME), - version(DSOFRAMERCTL_VERSION), lcid(0x0000), control -] -library DSOFramer -{ - importlib("STDOLE2.TLB"); - - typedef enum dsoBorderStyle - { - dsoBorderNone = 0, - dsoBorderFlat, - dsoBorder3D, - dsoBorder3DThin - } dsoBorderStyle; - - typedef enum dsoShowDialogType - { - dsoDialogNew = 0, - dsoDialogOpen, - dsoDialogSave, - dsoDialogSaveCopy, - dsoDialogPrint, - dsoDialogPageSetup, - dsoDialogProperties - } dsoShowDialogType; - - typedef enum dsoFileCommandType - { - dsoFileNew = 0, - dsoFileOpen, - dsoFileClose, - dsoFileSave, - dsoFileSaveAs, - dsoFilePrint, - dsoFilePageSetup, - dsoFileProperties, - dsoFilePrintPreview - } dsoFileCommandType; - - - [ - uuid(DSOFRAMERCTL_INTERFACE), hidden, version(DSOFRAMERCTL_VERSION), - dual, oleautomation, odl - ] - interface _FramerControl : IDispatch - { - [id(0x00010001), helpstring("Activates the current document object.")] - HRESULT Activate(); - - [propget, id(0x00010002), helpstring("Returns the Automation interface of the document object.")] - HRESULT ActiveDocument([out,retval] IDispatch** ppdisp); - - [id(0x00010003), helpstring("Creates a new document based on the ProgId or Template file provided.")] - HRESULT CreateNew([in] BSTR ProgIdOrTemplate); - - [id(0x00010004), helpstring("Opens a document from a file, URL, or Automation object.")] - HRESULT Open([in] VARIANT Document, [in, optional] VARIANT ReadOnly, [in, optional] VARIANT ProgId, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword); - - [id(0x00010005), helpstring("Saves the document to specified location or its original location.")] - HRESULT Save([in, optional] VARIANT SaveAsDocument, [in, optional] VARIANT OverwriteExisting, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword); - - [id(0x00010008), hidden] - HRESULT _PrintOutOld([in, optional] VARIANT PromptToSelectPrinter); - - [id(0x00010009), helpstring("Closes the currently open document.")] - HRESULT Close(); - - [propput, id(0x0001000A), helpstring("Returns/sets the titlebar caption.")] - HRESULT Caption([in] BSTR bstr); - [propget, id(0x0001000A)] - HRESULT Caption([out,retval] BSTR* pbstr); - - [propput, id(0x0001000B), helpstring("Returns/sets whether the titlebar should be displayed.")] - HRESULT Titlebar([in] VARIANT_BOOL vbool); - [propget, id(0x0001000B)] - HRESULT Titlebar([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x0001000C), helpstring("Returns/sets whether toolbars should be displayed.")] - HRESULT Toolbars([in] VARIANT_BOOL vbool); - [propget, id(0x0001000C)] - HRESULT Toolbars([out,retval] VARIANT_BOOL* pbool); - - [propput, nonbrowsable, id(0x0001000D), helpstring("Returns/sets the controls modal state.")] - HRESULT ModalState([in] VARIANT_BOOL vbool); - [propget, nonbrowsable, id(0x0001000D)] - HRESULT ModalState([out,retval] VARIANT_BOOL* pbool); - - [id(0x0001000E), helpstring("Displays a modal dialog of the given type for user action.")] - HRESULT ShowDialog([in] dsoShowDialogType DlgType); - - [propput, id(0x0001000F), helpstring("Returns/sets whether a specific action item is enabled.")] - HRESULT EnableFileCommand([in] dsoFileCommandType Item, [in] VARIANT_BOOL vbool); - [propget, id(0x0001000F)] - HRESULT EnableFileCommand([in] dsoFileCommandType Item, [out,retval] VARIANT_BOOL* pbool); - - [propput, id(DISPID_BORDERSTYLE), helpstring("Returns/sets the border style for the control.")] - HRESULT BorderStyle([in] dsoBorderStyle style); - [propget, id(DISPID_BORDERSTYLE)] - HRESULT BorderStyle([out, retval] dsoBorderStyle* pstyle); - - [propput, id(DISPID_BORDERCOLOR), helpstring("Returns/sets the border color of the control.")] - HRESULT BorderColor([in] OLE_COLOR clr); - [propget, id(DISPID_BORDERCOLOR)] - HRESULT BorderColor([out,retval] OLE_COLOR* pclr); - - [propput, id(DISPID_BACKCOLOR), helpstring("Returns/sets the background color of the control.")] - HRESULT BackColor([in] OLE_COLOR clr); - [propget, id(DISPID_BACKCOLOR)] - HRESULT BackColor([out,retval] OLE_COLOR* pclr); - - [propput, id(DISPID_FORECOLOR), helpstring("Returns/sets the foreground color of the control.")] - HRESULT ForeColor([in]OLE_COLOR clr); - [propget, id(DISPID_FORECOLOR)] - HRESULT ForeColor([out,retval]OLE_COLOR* pclr); - - [propput, id(0x00010010), helpstring("Returns/sets the color of the titlebar.")] - HRESULT TitlebarColor([in] OLE_COLOR clr); - [propget, id(0x00010010)] - HRESULT TitlebarColor([out,retval] OLE_COLOR* pclr); - - [propput, id(0x00010011), helpstring("Returns/sets the color of text for the titlebar.")] - HRESULT TitlebarTextColor([in] OLE_COLOR clr); - [propget, id(0x00010011)] - HRESULT TitlebarTextColor([out,retval] OLE_COLOR* pclr); - - [id(0x00010012), helpstring("Calls IOleCommandTarget::Exec on embedded object.")] - HRESULT ExecOleCommand([in] LONG OLECMDID, [in, optional] VARIANT Options, [in, optional] VARIANT* vInParam, [in, out, optional] VARIANT* vInOutParam); - - [propput, id(0x00010013), helpstring("Returns/sets whether a menu bar should be displayed.")] - HRESULT Menubar([in] VARIANT_BOOL vbool); - [propget, id(0x00010013)] - HRESULT Menubar([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x00010014), helpstring("Returns/sets host application name (used in embedding).")] - HRESULT HostName([in] BSTR bstr); - [propget, id(0x00010014)] - HRESULT HostName([out,retval] BSTR* pbstr); - - [propget, id(0x00010015), helpstring("Returns full document path name for object.")] - HRESULT DocumentFullName([out,retval] BSTR* pbstr); - - [id(0x00010016), helpstring("Prints current document to specific printer with settings.")] - HRESULT PrintOut([in, optional] VARIANT PromptUser, [in, optional] VARIANT PrinterName, [in, optional] VARIANT Copies, - [in, optional] VARIANT FromPage, [in, optional] VARIANT ToPage, [in, optional] VARIANT OutputFile); - - [id(0x00010017), helpstring("Starts a print preview (if document supports it).")] - HRESULT PrintPreview(); - - [id(0x00010018), helpstring("Exits a current print preview.")] - HRESULT PrintPreviewExit(); - - [propget, id(0x00010019), helpstring("Returns True/False if file was open read-only, or has not been saved.")] - HRESULT IsReadOnly([out,retval] VARIANT_BOOL* pbool); - - [propget, id(0x0001001A), helpstring("Returns True/False if file has been altered or needs save.")] - HRESULT IsDirty([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x0001001B), helpstring("Sets lock on the current embed server to keep it running (document must be open first).")] - HRESULT LockServer([in] VARIANT_BOOL vbool); - [propget, id(0x0001001B)] - HRESULT LockServer([out,retval] VARIANT_BOOL* pvbool); - - [id(0x0001001C), nonbrowsable, helpstring("Gets the content of the body of the document (excluding headers/footers).")] - HRESULT GetDataObjectContent([in] VARIANT ClipFormatNameOrNumber, [out,retval] VARIANT *pvResults); - - [id(0x0001001D), nonbrowsable, helpstring("Sets the content of the body of the document.")] - HRESULT SetDataObjectContent([in] VARIANT ClipFormatNameOrNumber, [in] VARIANT DataByteArray); - - [propput, id(0x0001001E), helpstring("Allows host to set policy on activation behavior.")] - HRESULT ActivationPolicy([in] enum dsoActivationPolicy lPolicy); - [propget, id(0x0001001E)] - HRESULT ActivationPolicy([out,retval] enum dsoActivationPolicy *plPolicy); - - [propput, id(0x0001001F), helpstring("Allows host to set policy on use of the frame hook.")] - HRESULT FrameHookPolicy([in] enum dsoFrameHookPolicy lPolicy); - [propget, id(0x0001001F)] - HRESULT FrameHookPolicy([out,retval] enum dsoFrameHookPolicy *plPolicy); - - [propput, id(0x00010020), helpstring("Gets/sets whether control should try to handle menu accelerators or pass to host window.")] - HRESULT MenuAccelerators([in] VARIANT_BOOL vbool); - [propget, id(0x00010020)] - HRESULT MenuAccelerators([out,retval] VARIANT_BOOL* pvbool); - - [propput, nonbrowsable, id(0x00010021), helpstring("Gets/sets whether control events are raised.")] - HRESULT EventsEnabled([in] VARIANT_BOOL vbool); - [propget, nonbrowsable, id(0x00010021)] - HRESULT EventsEnabled([out,retval] VARIANT_BOOL* pvbool); - - [propget, id(0x00010022), helpstring("Returns just the document name (excluding path).")] - HRESULT DocumentName([out,retval] BSTR* pbstr); - }; - - [ - uuid(DSOFRAMERCTL_DISPEVTS), hidden - ] - dispinterface _DFramerCtlEvents - { - properties: - methods: - [id(DSOF_DISPID_FILECMD), helpstring("Called when File menu item is selected by user (may be canceled).")] - HRESULT OnFileCommand([in] dsoFileCommandType Item, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_DOCOPEN), helpstring("Called when document is opened or new document added.")] - HRESULT OnDocumentOpened([in] BSTR File, [in] IDispatch* Document); - - [id(DSOF_DISPID_DOCCLOSE), helpstring("Called when document is closed.")] - HRESULT OnDocumentClosed(); - - [id(DSOF_DISPID_ACTIVATE), helpstring("Called when component gains/loses activation.")] - HRESULT OnActivationChange([in] VARIANT_BOOL fGoingActive); - - [id(DSOF_DISPID_BDOCCLOSE), helpstring("Called before document is closed (may be canceled).")] - HRESULT BeforeDocumentClosed([in] IDispatch* Document, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_BDOCSAVE), helpstring("Called before document is saved (may be canceled).")] - HRESULT BeforeDocumentSaved([in] IDispatch* Document, [in] BSTR Location, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_ENDPREVIEW), helpstring("Called when print preview is closed.")] - HRESULT OnPrintPreviewExit(); - - [id(DSOF_DISPID_SAVECOMPLETE), helpstring("Called when save is successful.")] - HRESULT OnSaveCompleted([in] IDispatch* Document, [in] BSTR DocName, [in] BSTR FullFileLocation); - - }; - - [ - uuid(DSOFRAMERCTL_CLSID), - helpstring(DSOFRAMERCTL_SHORTNAME), control - ] - coclass FramerControl - { - [default] interface _FramerControl; - [default, source] dispinterface _DFramerCtlEvents; - }; - - - typedef enum dsoFrameHookPolicy - { - dsoNormalBehavior = 0, - dsoSetOnFirstOpen, - dsoResetNow, - dsoDisableHook = 0xFFFFFFFF - } dsoFrameHookPolicy; - - typedef enum dsoActivationPolicy - { - dsoDefaultBehavior = 0, - dsoKeepUIActiveOnAppDeactive = 0x01, - dsoCompDeactivateOnLostFocus = 0x02, - dsoIPDeactivateOnCompDeactive = 0x04 - } dsoActivationPolicy; - -}; - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.c b/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.c deleted file mode 100644 index 2de84f74..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.c +++ /dev/null @@ -1,88 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ - -/* link this file in with the server and any clients */ - - - /* File created by MIDL compiler version 6.00.0366 */ -/* at Tue Aug 25 13:23:33 2009 - */ -/* Compiler settings for .\Lib\dsoframer.idl: - Oicf, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -#ifdef __cplusplus -extern "C"{ -#endif - - -#include -#include - -#ifdef _MIDL_USE_GUIDDEF_ - -#ifndef INITGUID -#define INITGUID -#include -#undef INITGUID -#else -#include -#endif - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) - -#else // !_MIDL_USE_GUIDDEF_ - -#ifndef __IID_DEFINED__ -#define __IID_DEFINED__ - -typedef struct _IID -{ - unsigned long x; - unsigned short s1; - unsigned short s2; - unsigned char c[8]; -} IID; - -#endif // __IID_DEFINED__ - -#ifndef CLSID_DEFINED -#define CLSID_DEFINED -typedef IID CLSID; -#endif // CLSID_DEFINED - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} - -#endif !_MIDL_USE_GUIDDEF_ - -MIDL_DEFINE_GUID(IID, LIBID_DSOFramer,0x00460180,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(IID, IID__FramerControl,0x00460181,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(IID, DIID__DFramerCtlEvents,0x00460185,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(CLSID, CLSID_FramerControl,0x00460182,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#undef MIDL_DEFINE_GUID - -#ifdef __cplusplus -} -#endif - - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.h b/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.h deleted file mode 100644 index c58c2796..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Lib/dsoframerlib.h +++ /dev/null @@ -1,1601 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 6.00.0366 */ -/* at Tue Aug 25 13:23:33 2009 - */ -/* Compiler settings for .\Lib\dsoframer.idl: - Oicf, W1, Zp8, env=Win32 (32b run) - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -//@@MIDL_FILE_HEADING( ) - -#pragma warning( disable: 4049 ) /* more than 64k source lines */ - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 475 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif // __RPCNDR_H_VERSION__ - - -#ifndef __dsoframerlib_h__ -#define __dsoframerlib_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef ___FramerControl_FWD_DEFINED__ -#define ___FramerControl_FWD_DEFINED__ -typedef interface _FramerControl _FramerControl; -#endif /* ___FramerControl_FWD_DEFINED__ */ - - -#ifndef ___DFramerCtlEvents_FWD_DEFINED__ -#define ___DFramerCtlEvents_FWD_DEFINED__ -typedef interface _DFramerCtlEvents _DFramerCtlEvents; -#endif /* ___DFramerCtlEvents_FWD_DEFINED__ */ - - -#ifndef __FramerControl_FWD_DEFINED__ -#define __FramerControl_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class FramerControl FramerControl; -#else -typedef struct FramerControl FramerControl; -#endif /* __cplusplus */ - -#endif /* __FramerControl_FWD_DEFINED__ */ - - -#ifdef __cplusplus -extern "C"{ -#endif - -void * __RPC_USER MIDL_user_allocate(size_t); -void __RPC_USER MIDL_user_free( void * ); - - -#ifndef __DSOFramer_LIBRARY_DEFINED__ -#define __DSOFramer_LIBRARY_DEFINED__ - -/* library DSOFramer */ -/* [control][lcid][version][helpstring][uuid] */ - -typedef -enum dsoBorderStyle - { dsoBorderNone = 0, - dsoBorderFlat = dsoBorderNone + 1, - dsoBorder3D = dsoBorderFlat + 1, - dsoBorder3DThin = dsoBorder3D + 1 - } dsoBorderStyle; - -typedef -enum dsoShowDialogType - { dsoDialogNew = 0, - dsoDialogOpen = dsoDialogNew + 1, - dsoDialogSave = dsoDialogOpen + 1, - dsoDialogSaveCopy = dsoDialogSave + 1, - dsoDialogPrint = dsoDialogSaveCopy + 1, - dsoDialogPageSetup = dsoDialogPrint + 1, - dsoDialogProperties = dsoDialogPageSetup + 1 - } dsoShowDialogType; - -typedef -enum dsoFileCommandType - { dsoFileNew = 0, - dsoFileOpen = dsoFileNew + 1, - dsoFileClose = dsoFileOpen + 1, - dsoFileSave = dsoFileClose + 1, - dsoFileSaveAs = dsoFileSave + 1, - dsoFilePrint = dsoFileSaveAs + 1, - dsoFilePageSetup = dsoFilePrint + 1, - dsoFileProperties = dsoFilePageSetup + 1, - dsoFilePrintPreview = dsoFileProperties + 1 - } dsoFileCommandType; - -typedef -enum dsoFrameHookPolicy - { dsoNormalBehavior = 0, - dsoSetOnFirstOpen = dsoNormalBehavior + 1, - dsoResetNow = dsoSetOnFirstOpen + 1, - dsoDisableHook = 0xffffffff - } dsoFrameHookPolicy; - -typedef -enum dsoActivationPolicy - { dsoDefaultBehavior = 0, - dsoKeepUIActiveOnAppDeactive = 0x1, - dsoCompDeactivateOnLostFocus = 0x2, - dsoIPDeactivateOnCompDeactive = 0x4 - } dsoActivationPolicy; - - -DEFINE_GUID(LIBID_DSOFramer,0x00460180,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#ifndef ___FramerControl_INTERFACE_DEFINED__ -#define ___FramerControl_INTERFACE_DEFINED__ - -/* interface _FramerControl */ -/* [object][oleautomation][dual][version][hidden][uuid] */ - - -DEFINE_GUID(IID__FramerControl,0x00460181,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00460181-9E5E-11d5-B7C8-B8269041DD57") - _FramerControl : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate( void) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveDocument( - /* [retval][out] */ IDispatch **ppdisp) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateNew( - /* [in] */ BSTR ProgIdOrTemplate) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Open( - /* [in] */ VARIANT Document, - /* [optional][in] */ VARIANT ReadOnly, - /* [optional][in] */ VARIANT ProgId, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Save( - /* [optional][in] */ VARIANT SaveAsDocument, - /* [optional][in] */ VARIANT OverwriteExisting, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword) = 0; - - virtual /* [hidden][id] */ HRESULT STDMETHODCALLTYPE _PrintOutOld( - /* [optional][in] */ VARIANT PromptToSelectPrinter) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Close( void) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Caption( - /* [in] */ BSTR bstr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Caption( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Titlebar( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Titlebar( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Toolbars( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Toolbars( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE put_ModalState( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE get_ModalState( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowDialog( - /* [in] */ dsoShowDialogType DlgType) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_EnableFileCommand( - /* [in] */ dsoFileCommandType Item, - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_EnableFileCommand( - /* [in] */ dsoFileCommandType Item, - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BorderStyle( - /* [in] */ dsoBorderStyle style) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BorderStyle( - /* [retval][out] */ dsoBorderStyle *pstyle) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BorderColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BorderColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BackColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BackColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ForeColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ForeColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TitlebarColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_TitlebarColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TitlebarTextColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_TitlebarTextColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecOleCommand( - /* [in] */ LONG OLECMDID, - /* [optional][in] */ VARIANT Options, - /* [optional][in] */ VARIANT *vInParam, - /* [optional][out][in] */ VARIANT *vInOutParam) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Menubar( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Menubar( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_HostName( - /* [in] */ BSTR bstr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_HostName( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DocumentFullName( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintOut( - /* [optional][in] */ VARIANT PromptUser, - /* [optional][in] */ VARIANT PrinterName, - /* [optional][in] */ VARIANT Copies, - /* [optional][in] */ VARIANT FromPage, - /* [optional][in] */ VARIANT ToPage, - /* [optional][in] */ VARIANT OutputFile) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintPreview( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintPreviewExit( void) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsReadOnly( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsDirty( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LockServer( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_LockServer( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE GetDataObjectContent( - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [retval][out] */ VARIANT *pvResults) = 0; - - virtual /* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE SetDataObjectContent( - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [in] */ VARIANT DataByteArray) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ActivationPolicy( - /* [in] */ enum dsoActivationPolicy lPolicy) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ActivationPolicy( - /* [retval][out] */ enum dsoActivationPolicy *plPolicy) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FrameHookPolicy( - /* [in] */ enum dsoFrameHookPolicy lPolicy) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_FrameHookPolicy( - /* [retval][out] */ enum dsoFrameHookPolicy *plPolicy) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MenuAccelerators( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_MenuAccelerators( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE put_EventsEnabled( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE get_EventsEnabled( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DocumentName( - /* [retval][out] */ BSTR *pbstr) = 0; - - }; - -#else /* C style interface */ - - typedef struct _FramerControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - _FramerControl * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - _FramerControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - _FramerControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - _FramerControl * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - _FramerControl * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - _FramerControl * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - _FramerControl * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )( - _FramerControl * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveDocument )( - _FramerControl * This, - /* [retval][out] */ IDispatch **ppdisp); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateNew )( - _FramerControl * This, - /* [in] */ BSTR ProgIdOrTemplate); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Open )( - _FramerControl * This, - /* [in] */ VARIANT Document, - /* [optional][in] */ VARIANT ReadOnly, - /* [optional][in] */ VARIANT ProgId, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Save )( - _FramerControl * This, - /* [optional][in] */ VARIANT SaveAsDocument, - /* [optional][in] */ VARIANT OverwriteExisting, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - /* [hidden][id] */ HRESULT ( STDMETHODCALLTYPE *_PrintOutOld )( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptToSelectPrinter); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Close )( - _FramerControl * This); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Caption )( - _FramerControl * This, - /* [in] */ BSTR bstr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Caption )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Titlebar )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Titlebar )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Toolbars )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Toolbars )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][nonbrowsable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ModalState )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][nonbrowsable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ModalState )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShowDialog )( - _FramerControl * This, - /* [in] */ dsoShowDialogType DlgType); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnableFileCommand )( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnableFileCommand )( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderStyle )( - _FramerControl * This, - /* [in] */ dsoBorderStyle style); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderStyle )( - _FramerControl * This, - /* [retval][out] */ dsoBorderStyle *pstyle); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BackColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BackColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ForeColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ForeColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TitlebarColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TitlebarColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TitlebarTextColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TitlebarTextColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecOleCommand )( - _FramerControl * This, - /* [in] */ LONG OLECMDID, - /* [optional][in] */ VARIANT Options, - /* [optional][in] */ VARIANT *vInParam, - /* [optional][out][in] */ VARIANT *vInOutParam); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Menubar )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Menubar )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_HostName )( - _FramerControl * This, - /* [in] */ BSTR bstr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HostName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DocumentFullName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintOut )( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptUser, - /* [optional][in] */ VARIANT PrinterName, - /* [optional][in] */ VARIANT Copies, - /* [optional][in] */ VARIANT FromPage, - /* [optional][in] */ VARIANT ToPage, - /* [optional][in] */ VARIANT OutputFile); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintPreview )( - _FramerControl * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintPreviewExit )( - _FramerControl * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsReadOnly )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsDirty )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LockServer )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockServer )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][nonbrowsable][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataObjectContent )( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [retval][out] */ VARIANT *pvResults); - - /* [helpstring][nonbrowsable][id] */ HRESULT ( STDMETHODCALLTYPE *SetDataObjectContent )( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [in] */ VARIANT DataByteArray); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ActivationPolicy )( - _FramerControl * This, - /* [in] */ enum dsoActivationPolicy lPolicy); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActivationPolicy )( - _FramerControl * This, - /* [retval][out] */ enum dsoActivationPolicy *plPolicy); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FrameHookPolicy )( - _FramerControl * This, - /* [in] */ enum dsoFrameHookPolicy lPolicy); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FrameHookPolicy )( - _FramerControl * This, - /* [retval][out] */ enum dsoFrameHookPolicy *plPolicy); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MenuAccelerators )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MenuAccelerators )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][id][nonbrowsable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EventsEnabled )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][nonbrowsable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EventsEnabled )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DocumentName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - END_INTERFACE - } _FramerControlVtbl; - - interface _FramerControl - { - CONST_VTBL struct _FramerControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define _FramerControl_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define _FramerControl_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define _FramerControl_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define _FramerControl_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define _FramerControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define _FramerControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define _FramerControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - - -#define _FramerControl_Activate(This) \ - (This)->lpVtbl -> Activate(This) - -#define _FramerControl_get_ActiveDocument(This,ppdisp) \ - (This)->lpVtbl -> get_ActiveDocument(This,ppdisp) - -#define _FramerControl_CreateNew(This,ProgIdOrTemplate) \ - (This)->lpVtbl -> CreateNew(This,ProgIdOrTemplate) - -#define _FramerControl_Open(This,Document,ReadOnly,ProgId,WebUsername,WebPassword) \ - (This)->lpVtbl -> Open(This,Document,ReadOnly,ProgId,WebUsername,WebPassword) - -#define _FramerControl_Save(This,SaveAsDocument,OverwriteExisting,WebUsername,WebPassword) \ - (This)->lpVtbl -> Save(This,SaveAsDocument,OverwriteExisting,WebUsername,WebPassword) - -#define _FramerControl__PrintOutOld(This,PromptToSelectPrinter) \ - (This)->lpVtbl -> _PrintOutOld(This,PromptToSelectPrinter) - -#define _FramerControl_Close(This) \ - (This)->lpVtbl -> Close(This) - -#define _FramerControl_put_Caption(This,bstr) \ - (This)->lpVtbl -> put_Caption(This,bstr) - -#define _FramerControl_get_Caption(This,pbstr) \ - (This)->lpVtbl -> get_Caption(This,pbstr) - -#define _FramerControl_put_Titlebar(This,vbool) \ - (This)->lpVtbl -> put_Titlebar(This,vbool) - -#define _FramerControl_get_Titlebar(This,pbool) \ - (This)->lpVtbl -> get_Titlebar(This,pbool) - -#define _FramerControl_put_Toolbars(This,vbool) \ - (This)->lpVtbl -> put_Toolbars(This,vbool) - -#define _FramerControl_get_Toolbars(This,pbool) \ - (This)->lpVtbl -> get_Toolbars(This,pbool) - -#define _FramerControl_put_ModalState(This,vbool) \ - (This)->lpVtbl -> put_ModalState(This,vbool) - -#define _FramerControl_get_ModalState(This,pbool) \ - (This)->lpVtbl -> get_ModalState(This,pbool) - -#define _FramerControl_ShowDialog(This,DlgType) \ - (This)->lpVtbl -> ShowDialog(This,DlgType) - -#define _FramerControl_put_EnableFileCommand(This,Item,vbool) \ - (This)->lpVtbl -> put_EnableFileCommand(This,Item,vbool) - -#define _FramerControl_get_EnableFileCommand(This,Item,pbool) \ - (This)->lpVtbl -> get_EnableFileCommand(This,Item,pbool) - -#define _FramerControl_put_BorderStyle(This,style) \ - (This)->lpVtbl -> put_BorderStyle(This,style) - -#define _FramerControl_get_BorderStyle(This,pstyle) \ - (This)->lpVtbl -> get_BorderStyle(This,pstyle) - -#define _FramerControl_put_BorderColor(This,clr) \ - (This)->lpVtbl -> put_BorderColor(This,clr) - -#define _FramerControl_get_BorderColor(This,pclr) \ - (This)->lpVtbl -> get_BorderColor(This,pclr) - -#define _FramerControl_put_BackColor(This,clr) \ - (This)->lpVtbl -> put_BackColor(This,clr) - -#define _FramerControl_get_BackColor(This,pclr) \ - (This)->lpVtbl -> get_BackColor(This,pclr) - -#define _FramerControl_put_ForeColor(This,clr) \ - (This)->lpVtbl -> put_ForeColor(This,clr) - -#define _FramerControl_get_ForeColor(This,pclr) \ - (This)->lpVtbl -> get_ForeColor(This,pclr) - -#define _FramerControl_put_TitlebarColor(This,clr) \ - (This)->lpVtbl -> put_TitlebarColor(This,clr) - -#define _FramerControl_get_TitlebarColor(This,pclr) \ - (This)->lpVtbl -> get_TitlebarColor(This,pclr) - -#define _FramerControl_put_TitlebarTextColor(This,clr) \ - (This)->lpVtbl -> put_TitlebarTextColor(This,clr) - -#define _FramerControl_get_TitlebarTextColor(This,pclr) \ - (This)->lpVtbl -> get_TitlebarTextColor(This,pclr) - -#define _FramerControl_ExecOleCommand(This,OLECMDID,Options,vInParam,vInOutParam) \ - (This)->lpVtbl -> ExecOleCommand(This,OLECMDID,Options,vInParam,vInOutParam) - -#define _FramerControl_put_Menubar(This,vbool) \ - (This)->lpVtbl -> put_Menubar(This,vbool) - -#define _FramerControl_get_Menubar(This,pbool) \ - (This)->lpVtbl -> get_Menubar(This,pbool) - -#define _FramerControl_put_HostName(This,bstr) \ - (This)->lpVtbl -> put_HostName(This,bstr) - -#define _FramerControl_get_HostName(This,pbstr) \ - (This)->lpVtbl -> get_HostName(This,pbstr) - -#define _FramerControl_get_DocumentFullName(This,pbstr) \ - (This)->lpVtbl -> get_DocumentFullName(This,pbstr) - -#define _FramerControl_PrintOut(This,PromptUser,PrinterName,Copies,FromPage,ToPage,OutputFile) \ - (This)->lpVtbl -> PrintOut(This,PromptUser,PrinterName,Copies,FromPage,ToPage,OutputFile) - -#define _FramerControl_PrintPreview(This) \ - (This)->lpVtbl -> PrintPreview(This) - -#define _FramerControl_PrintPreviewExit(This) \ - (This)->lpVtbl -> PrintPreviewExit(This) - -#define _FramerControl_get_IsReadOnly(This,pbool) \ - (This)->lpVtbl -> get_IsReadOnly(This,pbool) - -#define _FramerControl_get_IsDirty(This,pbool) \ - (This)->lpVtbl -> get_IsDirty(This,pbool) - -#define _FramerControl_put_LockServer(This,vbool) \ - (This)->lpVtbl -> put_LockServer(This,vbool) - -#define _FramerControl_get_LockServer(This,pvbool) \ - (This)->lpVtbl -> get_LockServer(This,pvbool) - -#define _FramerControl_GetDataObjectContent(This,ClipFormatNameOrNumber,pvResults) \ - (This)->lpVtbl -> GetDataObjectContent(This,ClipFormatNameOrNumber,pvResults) - -#define _FramerControl_SetDataObjectContent(This,ClipFormatNameOrNumber,DataByteArray) \ - (This)->lpVtbl -> SetDataObjectContent(This,ClipFormatNameOrNumber,DataByteArray) - -#define _FramerControl_put_ActivationPolicy(This,lPolicy) \ - (This)->lpVtbl -> put_ActivationPolicy(This,lPolicy) - -#define _FramerControl_get_ActivationPolicy(This,plPolicy) \ - (This)->lpVtbl -> get_ActivationPolicy(This,plPolicy) - -#define _FramerControl_put_FrameHookPolicy(This,lPolicy) \ - (This)->lpVtbl -> put_FrameHookPolicy(This,lPolicy) - -#define _FramerControl_get_FrameHookPolicy(This,plPolicy) \ - (This)->lpVtbl -> get_FrameHookPolicy(This,plPolicy) - -#define _FramerControl_put_MenuAccelerators(This,vbool) \ - (This)->lpVtbl -> put_MenuAccelerators(This,vbool) - -#define _FramerControl_get_MenuAccelerators(This,pvbool) \ - (This)->lpVtbl -> get_MenuAccelerators(This,pvbool) - -#define _FramerControl_put_EventsEnabled(This,vbool) \ - (This)->lpVtbl -> put_EventsEnabled(This,vbool) - -#define _FramerControl_get_EventsEnabled(This,pvbool) \ - (This)->lpVtbl -> get_EventsEnabled(This,pvbool) - -#define _FramerControl_get_DocumentName(This,pbstr) \ - (This)->lpVtbl -> get_DocumentName(This,pbstr) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_Activate_Proxy( - _FramerControl * This); - - -void __RPC_STUB _FramerControl_Activate_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_ActiveDocument_Proxy( - _FramerControl * This, - /* [retval][out] */ IDispatch **ppdisp); - - -void __RPC_STUB _FramerControl_get_ActiveDocument_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_CreateNew_Proxy( - _FramerControl * This, - /* [in] */ BSTR ProgIdOrTemplate); - - -void __RPC_STUB _FramerControl_CreateNew_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_Open_Proxy( - _FramerControl * This, - /* [in] */ VARIANT Document, - /* [optional][in] */ VARIANT ReadOnly, - /* [optional][in] */ VARIANT ProgId, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - -void __RPC_STUB _FramerControl_Open_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_Save_Proxy( - _FramerControl * This, - /* [optional][in] */ VARIANT SaveAsDocument, - /* [optional][in] */ VARIANT OverwriteExisting, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - -void __RPC_STUB _FramerControl_Save_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [hidden][id] */ HRESULT STDMETHODCALLTYPE _FramerControl__PrintOutOld_Proxy( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptToSelectPrinter); - - -void __RPC_STUB _FramerControl__PrintOutOld_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_Close_Proxy( - _FramerControl * This); - - -void __RPC_STUB _FramerControl_Close_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_Caption_Proxy( - _FramerControl * This, - /* [in] */ BSTR bstr); - - -void __RPC_STUB _FramerControl_put_Caption_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_Caption_Proxy( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - -void __RPC_STUB _FramerControl_get_Caption_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_Titlebar_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_Titlebar_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_Titlebar_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_Titlebar_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_Toolbars_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_Toolbars_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_Toolbars_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_Toolbars_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_ModalState_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_ModalState_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_ModalState_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_ModalState_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_ShowDialog_Proxy( - _FramerControl * This, - /* [in] */ dsoShowDialogType DlgType); - - -void __RPC_STUB _FramerControl_ShowDialog_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_EnableFileCommand_Proxy( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_EnableFileCommand_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_EnableFileCommand_Proxy( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_EnableFileCommand_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_BorderStyle_Proxy( - _FramerControl * This, - /* [in] */ dsoBorderStyle style); - - -void __RPC_STUB _FramerControl_put_BorderStyle_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_BorderStyle_Proxy( - _FramerControl * This, - /* [retval][out] */ dsoBorderStyle *pstyle); - - -void __RPC_STUB _FramerControl_get_BorderStyle_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_BorderColor_Proxy( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - -void __RPC_STUB _FramerControl_put_BorderColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_BorderColor_Proxy( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - -void __RPC_STUB _FramerControl_get_BorderColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_BackColor_Proxy( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - -void __RPC_STUB _FramerControl_put_BackColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_BackColor_Proxy( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - -void __RPC_STUB _FramerControl_get_BackColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_ForeColor_Proxy( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - -void __RPC_STUB _FramerControl_put_ForeColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_ForeColor_Proxy( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - -void __RPC_STUB _FramerControl_get_ForeColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_TitlebarColor_Proxy( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - -void __RPC_STUB _FramerControl_put_TitlebarColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_TitlebarColor_Proxy( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - -void __RPC_STUB _FramerControl_get_TitlebarColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_TitlebarTextColor_Proxy( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - -void __RPC_STUB _FramerControl_put_TitlebarTextColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_TitlebarTextColor_Proxy( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - -void __RPC_STUB _FramerControl_get_TitlebarTextColor_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_ExecOleCommand_Proxy( - _FramerControl * This, - /* [in] */ LONG OLECMDID, - /* [optional][in] */ VARIANT Options, - /* [optional][in] */ VARIANT *vInParam, - /* [optional][out][in] */ VARIANT *vInOutParam); - - -void __RPC_STUB _FramerControl_ExecOleCommand_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_Menubar_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_Menubar_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_Menubar_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_Menubar_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_HostName_Proxy( - _FramerControl * This, - /* [in] */ BSTR bstr); - - -void __RPC_STUB _FramerControl_put_HostName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_HostName_Proxy( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - -void __RPC_STUB _FramerControl_get_HostName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_DocumentFullName_Proxy( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - -void __RPC_STUB _FramerControl_get_DocumentFullName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_PrintOut_Proxy( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptUser, - /* [optional][in] */ VARIANT PrinterName, - /* [optional][in] */ VARIANT Copies, - /* [optional][in] */ VARIANT FromPage, - /* [optional][in] */ VARIANT ToPage, - /* [optional][in] */ VARIANT OutputFile); - - -void __RPC_STUB _FramerControl_PrintOut_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_PrintPreview_Proxy( - _FramerControl * This); - - -void __RPC_STUB _FramerControl_PrintPreview_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_PrintPreviewExit_Proxy( - _FramerControl * This); - - -void __RPC_STUB _FramerControl_PrintPreviewExit_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_IsReadOnly_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_IsReadOnly_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_IsDirty_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - -void __RPC_STUB _FramerControl_get_IsDirty_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_LockServer_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_LockServer_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_LockServer_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - -void __RPC_STUB _FramerControl_get_LockServer_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_GetDataObjectContent_Proxy( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [retval][out] */ VARIANT *pvResults); - - -void __RPC_STUB _FramerControl_GetDataObjectContent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE _FramerControl_SetDataObjectContent_Proxy( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [in] */ VARIANT DataByteArray); - - -void __RPC_STUB _FramerControl_SetDataObjectContent_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_ActivationPolicy_Proxy( - _FramerControl * This, - /* [in] */ enum dsoActivationPolicy lPolicy); - - -void __RPC_STUB _FramerControl_put_ActivationPolicy_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_ActivationPolicy_Proxy( - _FramerControl * This, - /* [retval][out] */ enum dsoActivationPolicy *plPolicy); - - -void __RPC_STUB _FramerControl_get_ActivationPolicy_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_FrameHookPolicy_Proxy( - _FramerControl * This, - /* [in] */ enum dsoFrameHookPolicy lPolicy); - - -void __RPC_STUB _FramerControl_put_FrameHookPolicy_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_FrameHookPolicy_Proxy( - _FramerControl * This, - /* [retval][out] */ enum dsoFrameHookPolicy *plPolicy); - - -void __RPC_STUB _FramerControl_get_FrameHookPolicy_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_MenuAccelerators_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_MenuAccelerators_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_MenuAccelerators_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - -void __RPC_STUB _FramerControl_get_MenuAccelerators_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE _FramerControl_put_EventsEnabled_Proxy( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - -void __RPC_STUB _FramerControl_put_EventsEnabled_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_EventsEnabled_Proxy( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - -void __RPC_STUB _FramerControl_get_EventsEnabled_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - -/* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE _FramerControl_get_DocumentName_Proxy( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - -void __RPC_STUB _FramerControl_get_DocumentName_Stub( - IRpcStubBuffer *This, - IRpcChannelBuffer *_pRpcChannelBuffer, - PRPC_MESSAGE _pRpcMessage, - DWORD *_pdwStubPhase); - - - -#endif /* ___FramerControl_INTERFACE_DEFINED__ */ - - -#ifndef ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ -#define ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ - -/* dispinterface _DFramerCtlEvents */ -/* [hidden][uuid] */ - - -DEFINE_GUID(DIID__DFramerCtlEvents,0x00460185,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00460185-9E5E-11d5-B7C8-B8269041DD57") - _DFramerCtlEvents : public IDispatch - { - }; - -#else /* C style interface */ - - typedef struct _DFramerCtlEventsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - _DFramerCtlEvents * This, - /* [in] */ REFIID riid, - /* [iid_is][out] */ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - _DFramerCtlEvents * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - _DFramerCtlEvents * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - _DFramerCtlEvents * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - _DFramerCtlEvents * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - _DFramerCtlEvents * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - _DFramerCtlEvents * This, - /* [in] */ DISPID dispIdMember, - /* [in] */ REFIID riid, - /* [in] */ LCID lcid, - /* [in] */ WORD wFlags, - /* [out][in] */ DISPPARAMS *pDispParams, - /* [out] */ VARIANT *pVarResult, - /* [out] */ EXCEPINFO *pExcepInfo, - /* [out] */ UINT *puArgErr); - - END_INTERFACE - } _DFramerCtlEventsVtbl; - - interface _DFramerCtlEvents - { - CONST_VTBL struct _DFramerCtlEventsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define _DFramerCtlEvents_QueryInterface(This,riid,ppvObject) \ - (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) - -#define _DFramerCtlEvents_AddRef(This) \ - (This)->lpVtbl -> AddRef(This) - -#define _DFramerCtlEvents_Release(This) \ - (This)->lpVtbl -> Release(This) - - -#define _DFramerCtlEvents_GetTypeInfoCount(This,pctinfo) \ - (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) - -#define _DFramerCtlEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) - -#define _DFramerCtlEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) - -#define _DFramerCtlEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - -#endif /* ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ */ - - -DEFINE_GUID(CLSID_FramerControl,0x00460182,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#ifdef __cplusplus - -class DECLSPEC_UUID("00460182-9E5E-11d5-B7C8-B8269041DD57") -FramerControl; -#endif -#endif /* __DSOFramer_LIBRARY_DEFINED__ */ - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Res/dso.ico b/PROMS/DSOFramer/DSOFramer/Source2005/Res/dso.ico deleted file mode 100644 index 4dc671e5..00000000 Binary files a/PROMS/DSOFramer/DSOFramer/Source2005/Res/dso.ico and /dev/null differ diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Res/dsoframer.rc b/PROMS/DSOFramer/DSOFramer/Source2005/Res/dsoframer.rc deleted file mode 100644 index ef7828e4..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Res/dsoframer.rc +++ /dev/null @@ -1,154 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" -#include "..\version.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// TYPELIB -// -#ifdef _DEBUG -IDR_TYPELIB TYPELIB DISCARDABLE "..\\Debug\\dsoframer.tlb" -#else -IDR_TYPELIB TYPELIB DISCARDABLE "..\\Release\\dsoframer.tlb" -#endif // _DEBUG - -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION DSOFRAMERCTL_VERSION_MAJOR,DSOFRAMERCTL_VERSION_MINOR,DSOFRAMERCTL_VERSION_BUILD,0 - PRODUCTVERSION DSOFRAMERCTL_VERSION_MAJOR,DSOFRAMERCTL_VERSION_MINOR,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Comments", "UNSUPPORTED BY MICROSOFT\0" - VALUE "CompanyName", "Your Company\0" - VALUE "FileDescription", "Your Company's Office Framer Control Sample\0" - VALUE "FileVersion", DSOFRAMERCTL_VERSIONSTRFULL "\0" - VALUE "OriginalFilename", "dsoframer.ocx\0" - VALUE "ProductName", "DSOFRAMER\0" - VALUE "ProductVersion", DSOFRAMERCTL_VERSIONSTR "\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // !_MAC - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_TOOLBOX BITMAP DISCARDABLE "toolbox.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_SMALLOFFDOC ICON DISCARDABLE "dso.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - RES_DSO_E_UNKNOWN "An unknown problem has occurred." - RES_DSO_E_INVALIDPROGID "The ProgID/Template could not be found or is not associated with a COM server." - RES_DSO_E_INVALIDSERVER "The associated COM server does not support ActiveX Document embedding." - RES_DSO_E_COMMANDNOTSUPPORTED - "The command is not supported by the document server." - RES_DSO_E_DOCUMENTREADONLY - "Unable to perform action because document was opened in read-only mode." - RES_DSO_E_REQUIRESMSDAIPP - "The Microsoft Internet Publishing Provider is not installed, so the URL document cannot be open for write access." - RES_DSO_E_DOCUMENTNOTOPEN "No document is open to perform the operation requested." - RES_DSO_E_INMODALSTATE "Cannot access document when in modal condition." - RES_DSO_E_NOTBEENSAVED "Cannot Save file without a file path." - RES_DSO_E_FRAMEHOOKFAILED "Unable to set frame hook for the parent window." -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Res/resource.h b/PROMS/DSOFramer/DSOFramer/Source2005/Res/resource.h deleted file mode 100644 index b9060358..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/Res/resource.h +++ /dev/null @@ -1,39 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by dsoframer.rc -// -#define IDR_TYPELIB 1 -#define RES_DSO_E_UNKNOWN 1 -#define RES_DSO_E_INVALIDPROGID 2 -#define RES_DSO_E_INVALIDSERVER 3 -#define RES_DSO_E_COMMANDNOTSUPPORTED 4 -#define RES_DSO_E_DOCUMENTREADONLY 5 -#define RES_DSO_E_REQUIRESMSDAIPP 6 -#define RES_DSO_E_DOCUMENTNOTOPEN 7 -#define RES_DSO_E_INMODALSTATE 8 -#define RES_DSO_E_NOTBEENSAVED 9 -#define RES_DSO_E_FRAMEHOOKFAILED 10 -#define IDB_TOOLBOX 102 -#define IDB_TOOLBAR 103 -#define IDR_BINDMENU 104 -#define IDI_SMALLOFFDOC 105 -#define MNU_NEW 40001 -#define MNU_OPEN 40002 -#define MNU_CLOSE 40003 -#define MNU_SAVE 40004 -#define MNU_SAVEAS 40005 -#define MNU_PGSETUP 40006 -#define MNU_PRINT 40007 -#define MNU_PROPS 40008 -#define MNU_PRINTPV 40009 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 107 -#define _APS_NEXT_COMMAND_VALUE 40011 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/Res/toolbox.bmp b/PROMS/DSOFramer/DSOFramer/Source2005/Res/toolbox.bmp deleted file mode 100644 index e0e7d4d3..00000000 Binary files a/PROMS/DSOFramer/DSOFramer/Source2005/Res/toolbox.bmp and /dev/null differ diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/classfactory.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/classfactory.cpp deleted file mode 100644 index ad99d1a0..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/classfactory.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/*************************************************************************** - * CLASSFACTORY.CPP - * - * CDsoFramerClassFactory: The Class Factroy for the control. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory - IClassFactory Implementation -// -// This is a fairly simple CF. We don't provide support for licensing -// in this sample because it is just a sample. If licensing is important -// you should change the class to support IClassFactory2. -// - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::QueryInterface -// -STDMETHODIMP CDsoFramerClassFactory::QueryInterface(REFIID riid, void** ppv) -{ - ODS("CDsoFramerClassFactory::QueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - if ((IID_IUnknown == riid) || (IID_IClassFactory == riid)) - { - SAFE_SET_INTERFACE(*ppv, (IClassFactory*)this); - return S_OK; - } - - *ppv = NULL; - return E_NOINTERFACE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::AddRef -// -STDMETHODIMP_(ULONG) CDsoFramerClassFactory::AddRef(void) -{ - TRACE1("CDsoFramerClassFactory::AddRef - %d\n", m_cRef+1); - return ++m_cRef; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::Release -// -STDMETHODIMP_(ULONG) CDsoFramerClassFactory::Release(void) -{ - TRACE1("CDsoFramerClassFactory::Release - %d\n", m_cRef-1); - if (0 != --m_cRef) return m_cRef; - - ODS("CDsoFramerClassFactory delete\n"); - InterlockedDecrement((LPLONG)&v_cLocks); - delete this; - return 0; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::CreateInstance -// -// Creates an instance of our control. -// -STDMETHODIMP CDsoFramerClassFactory::CreateInstance(LPUNKNOWN punk, REFIID riid, void** ppv) -{ - HRESULT hr; - CDsoFramerControl* pocx; - IUnknown* pnkInternal; - - ODS("CDsoFramerClassFactory::CreateInstance\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); *ppv = NULL; - - // Aggregation requires you ask for (internal) IUnknown - if ((punk) && (riid != IID_IUnknown)) - return E_INVALIDARG; - - // Create a new instance of the control... - pocx = new CDsoFramerControl(punk); - CHECK_NULL_RETURN(pocx, E_OUTOFMEMORY); - - // Grab the internal IUnknown to use for the QI (you don't agg in CF:CreateInstance)... - pnkInternal = (IUnknown*)&(pocx->m_xInternalUnknown); - - // Initialize the control (windows, etc.) and QI for requested interface... - if (SUCCEEDED(hr = pocx->InitializeNewInstance()) && - SUCCEEDED(hr = pnkInternal->QueryInterface(riid, ppv))) - { - InterlockedIncrement((LPLONG)&v_cLocks); // on success, bump up the lock count... - } - else {delete pocx; *ppv = NULL;} // else cleanup the object - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::LockServer -// -// Keeps the server loaded in memory. -// -STDMETHODIMP CDsoFramerClassFactory::LockServer(BOOL fLock) -{ - TRACE1("CDsoFramerClassFactory::LockServer - %d\n", fLock); - if (fLock) InterlockedIncrement((LPLONG)&v_cLocks); - else InterlockedDecrement((LPLONG)&v_cLocks); - return S_OK; -} - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsofauto.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/dsofauto.cpp deleted file mode 100644 index a7268452..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsofauto.cpp +++ /dev/null @@ -1,1321 +0,0 @@ -/*************************************************************************** - * DSOFAUTO.CPP - * - * CDsoFramerControl: Automation interface for Binder Control - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - _FramerControl Implementation -// - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Activate -// -// Activate the current embedded document (i.e, forward focus). -// -STDMETHODIMP CDsoFramerControl::Activate() -{ - HRESULT hr; - ODS("CDsoFramerControl::Activate\n"); - - if (m_fInControlActivate) - return S_FALSE; - - // Don't allow recursion of this function or we could get stuck in - // loop trying to constantly grab focus. - m_fInControlActivate = TRUE; - - // All we need to do is grab focus. This will tell the host to - // UI activate our OCX, set focus to our window, and set this control - // as the active component with the hook manager. - hr = UIActivate(TRUE); - - // Invalidate windows to update painting... - if (SUCCEEDED(hr)) - InvalidateAllChildWindows(m_hwnd); - - m_fInControlActivate = FALSE; - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_ActiveDocument -// -// Returns the automation object currently embedded. -// -// Since we only support a single instance at a time, it might have been -// better to call this property Object or simply Document, but VB reserves -// the first name for use by the control extender, and IE reserves the second -// in its extender, so we decided on the "Office sounding" name. ;-) -// -STDMETHODIMP CDsoFramerControl::get_ActiveDocument(IDispatch** ppdisp) -{ - HRESULT hr = DSO_E_DOCUMENTNOTOPEN; - IUnknown* punk; - - ODS("CDsoFramerControl::get_ActiveDocument\n"); - CHECK_NULL_RETURN(ppdisp, E_POINTER); *ppdisp = NULL; - - // Get IDispatch from open document object. - if ((m_pDocObjFrame) && (punk = (IUnknown*)(m_pDocObjFrame->GetActiveObject()))) - { - // Cannot access object if in print preview.. - if (m_pDocObjFrame->InPrintPreview()) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Ask ip active object for IDispatch interface. If it is not supported on - // active object interface, try to get it from OLE object iface... - if (FAILED(hr = punk->QueryInterface(IID_IDispatch, (void**)ppdisp)) && - (punk = (IUnknown*)(m_pDocObjFrame->GetOleObject()))) - { - hr = punk->QueryInterface(IID_IDispatch, (void**)ppdisp); - } - ASSERT(SUCCEEDED(hr)); - } - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ExecOleCommand -// -// Allows caller to pass commands to embedded object via IOleCommandTarget and -// gives access to a few extra commands to extend functionality for certain object -// types (not all objects may support all commands). -// -STDMETHODIMP CDsoFramerControl::ExecOleCommand(LONG OLECMDID, VARIANT Options, VARIANT* vInParam, VARIANT* vInOutParam) -{ - HRESULT hr = E_INVALIDARG; - DWORD dwOptions = (DWORD)LONG_FROM_VARIANT(Options, 0); - - TRACE1("CDsoFramerControl::DoOleCommand(%d)\n", OLECMDID); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Handle some custom commands that don't need doc open to call... - switch (OLECMDID) - { - case OLECMDID_RESETFRAMEHOOK: - { - LONG lhwnd = (DWORD)LONG_FROM_VARIANT(*vInParam, 0); - return ResetFrameHook((HWND)lhwnd); - } - case OLECMDID_LOCKSERVER: - if (BOOL_FROM_VARIANT(Options, TRUE) == FALSE) - return put_LockServer(VARIANT_FALSE); - } - - // The rest require a doc object loaded first... - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - switch (OLECMDID) - { - case OLECMDID_GETDATAFORMAT: - // If requesting special data get... - hr = m_pDocObjFrame->HrGetDataFromObject(vInParam, vInOutParam); - break; - - case OLECMDID_SETDATAFORMAT: - // If requesting special data set... - hr = m_pDocObjFrame->HrSetDataInObject(vInParam, vInOutParam, BOOL_FROM_VARIANT(Options, TRUE)); - break; - - case OLECMDID_LOCKSERVER: // optional lock on server... - if (BOOL_FROM_VARIANT(Options, FALSE)) - hr = put_LockServer(VARIANT_TRUE); - break; - - case OLECMDID_NOTIFYACTIVE: - if (vInParam) // Force notify server that it should be active... - { - m_pDocObjFrame->OnNotifyAppActivate(BOOL_FROM_VARIANT(*vInParam, FALSE), 0); - hr = S_OK; - } - break; - - default: - // Do normal IOleCommandTarget call on object... - - // If options was not passed as long, but as bool, we expect the caller meant to - // specify if user should be prompted or not, so update the options to allow the - // assuption to still work as expected (this is for compatibility)... - if ((dwOptions == 0) && ((DsoPVarFromPVarRef(&Options)->vt & 0xFF) == VT_BOOL)) - dwOptions = (BOOL_FROM_VARIANT(Options, FALSE) ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DODEFAULT); - - // Ask object server to do the command... - hr = m_pDocObjFrame->DoOleCommand(OLECMDID, dwOptions, vInParam, vInOutParam); - } - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::CreateNew -// -// Creates a new document object based on the passed in ProgID or Template. -// ProgID should map to the "document" object, such as "Word.Document", -// "Excel.Sheet", "PowerPoint.Slide", etc. A Template name should be full -// path to the file, whether local, UNC, or HTTP path. No relative paths. -// -STDMETHODIMP CDsoFramerControl::CreateNew(BSTR ProgIdOrTemplate) -{ - HRESULT hr; - CLSID clsid; - HCURSOR hCur; - IStorage *pstgTemplate = NULL; - LPWSTR pwszTempFile = NULL; - - TRACE1("CDsoFramerControl::CreateNew(%S)\n", ProgIdOrTemplate); - - // Check the string to make sure a valid item is passed... - if (!(ProgIdOrTemplate) || (SysStringLen(ProgIdOrTemplate) < 4)) - return E_INVALIDARG; - -// Cannot create object if we are not activate yet, or if in modal condition... - if (!(m_fInPlaceActive) || (m_fModalState)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Make sure any open document is closed first... - if ((m_pDocObjFrame) && FAILED(hr = Close())) - return hr; - - // Make sure we are the active component for this process... - if (FAILED(hr = Activate())) return hr; - - // Let's make a doc frame for ourselves... - m_pDocObjFrame = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite); - if (!(m_pDocObjFrame)) return E_OUTOFMEMORY; - - // Start a wait operation to notify user... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - m_fInDocumentLoad = TRUE; - - // If the string passed looks like a URL, it is a web template. We need - // to download it to temp location and use for new object... - if (LooksLikeHTTP(ProgIdOrTemplate) && - GetTempPathForURLDownload(ProgIdOrTemplate, &pwszTempFile)) - { - // Ask URLMON to download the file... - if (FAILED(hr = URLDownloadFile(NULL, ProgIdOrTemplate, pwszTempFile))) - { - DsoMemFree(pwszTempFile); pwszTempFile = NULL; - goto error_out; - } - - // If that worked, switch out the name of the template to local file... - ProgIdOrTemplate = SysAllocString(pwszTempFile); - } - - // If the string is path to file, then it must be a template. It must be - // a storage file with CLSID associated with it, like any Office templates - // (.dot,.xlt,.pot,.vst,etc.), and path must be fully qualified... - if (LooksLikeUNC(ProgIdOrTemplate) || LooksLikeLocalFile(ProgIdOrTemplate)) - { - if ((hr = StgIsStorageFile(ProgIdOrTemplate)) != S_OK) - { - hr = (FAILED(hr) ? hr : STG_E_NOTFILEBASEDSTORAGE); - goto error_out; - } - - // Open the template for read access only... - hr = StgOpenStorage(ProgIdOrTemplate, NULL, - (STGM_READ | STGM_SHARE_DENY_WRITE | STGM_TRANSACTED), - NULL, 0, &pstgTemplate); - GOTO_ON_FAILURE(hr, error_out); - - // We get the CLSID from the template... - hr = ReadClassStg(pstgTemplate, &clsid); - if (FAILED(hr) || (clsid == GUID_NULL)) - { - hr = (FAILED(hr) ? hr : STG_E_OLDFORMAT); - goto error_out; - } - // Otherwise the string passed is assumed a ProgID... - } - else if (FAILED(CLSIDFromProgID(ProgIdOrTemplate, &clsid))) - { - hr = DSO_E_INVALIDPROGID; - goto error_out; - } - - // If we are here, we must have a valid CLSID for the object... - ASSERT(clsid != GUID_NULL); - - // If we had delayed the frame hook, we should set it up now... - if (!(m_pHookManager) && FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) {hr = DSO_E_FRAMEHOOKFAILED; goto error_out;} - } - - SEH_TRY - - // If we are loading a template, init the storage before the create... - if (pstgTemplate) - { - hr = m_pDocObjFrame->CreateDocObject(pstgTemplate); - } - else - { - // Create a new doc object and IP activate... - hr = m_pDocObjFrame->CreateDocObject(clsid); - } - - // If the call worked, we can activate it... - if (SUCCEEDED(hr)) - { - EnableDropFile(FALSE); - - if (!m_fShowToolbars) - m_pDocObjFrame->OnNotifyChangeToolState(FALSE); - - hr = m_pDocObjFrame->IPActivateView(); - } - - SEH_EXCEPT(hr) - - // Force a close if an error occurred... - if (FAILED(hr)) - { -error_out: - m_fFreezeEvents = TRUE; - Close(); - m_fFreezeEvents = FALSE; - hr = ProvideErrorInfo(hr); - } - else - { - - // Fire the OnDocumentOpened event... - VARIANT rgargs[2]; - rgargs[0].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[0].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = NULL; - - RaiseAutomationEvent(DSOF_DISPID_DOCOPEN, 2, rgargs); - VariantClear(&rgargs[0]); - - // Ensure we are active control... - Activate(); - - // Redraw the caption as needed... - RedrawCaption(); - } - - m_fInDocumentLoad = FALSE; - SetCursor(hCur); - - SAFE_RELEASE_INTERFACE(pstgTemplate); - - // Delete the temp file used in the URL download (if any)... - if (pwszTempFile) - { - FPerformShellOp(FO_DELETE, pwszTempFile, NULL); - DsoMemFree(pwszTempFile); - SysFreeString(ProgIdOrTemplate); - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Open -// -// Creates a document object based on a file or URL. This simulates an -// "open", but preserves the correct OLE embedding activation required -// by ActiveX Documents. Opening directly from a file is not recommended. -// We keep a lock on the original file (unless opened read-only) so the -// user cannot tell we don't have the file "open". -// -// The alternate ProgID allows us to open a file that is not associated -// with an DocObject server (like *.asp) with the server specified. Also -// the username/password are for web access (if Document is a URL). -// -STDMETHODIMP CDsoFramerControl::Open(VARIANT Document, VARIANT ReadOnly, VARIANT ProgId, VARIANT WebUsername, VARIANT WebPassword) -{ - HRESULT hr; - LPWSTR pwszDocument = LPWSTR_FROM_VARIANT(Document); - LPWSTR pwszAltProgId = LPWSTR_FROM_VARIANT(ProgId); - LPWSTR pwszUserName = LPWSTR_FROM_VARIANT(WebUsername); - LPWSTR pwszPassword = LPWSTR_FROM_VARIANT(WebPassword); - BOOL fOpenReadOnly = BOOL_FROM_VARIANT(ReadOnly, FALSE); - CLSID clsidAlt = GUID_NULL; - HCURSOR hCur; - IUnknown* punk = NULL; - - BIND_OPTS bopts = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, 0, 10000}; - - TRACE1("CDsoFramerControl::Open(%S)\n", pwszDocument); - - // We must have either a string (file path or URL) or an object to open from... - if (!(pwszDocument) || (*pwszDocument == L'\0')) - { - if (!(pwszDocument) && ((punk = PUNK_FROM_VARIANT(Document)) == NULL)) - return E_INVALIDARG; - } - - // If the user passed the ProgId, find the alternative CLSID for server... - if ((pwszAltProgId) && FAILED(CLSIDFromProgID(pwszAltProgId, &clsidAlt))) - return E_INVALIDARG; - -// Cannot create object if we are not activate yet, or if in modal condition... - if (!(m_fInPlaceActive) || (m_fModalState)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // OK. If here, all the parameters look good and it is time to try and open - // the document object. Start by closing any existing document first... - if ((m_pDocObjFrame) && FAILED(hr = Close())) - return hr; - - // Make sure we are the active component for this process... - if (FAILED(hr = Activate())) return hr; - - // Let's make a doc frame for ourselves... - if (!(m_pDocObjFrame = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite))) - return E_OUTOFMEMORY; - - // If we had delayed the frame hook, we should set it up now... - if (!(m_pHookManager) && FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) return ProvideErrorInfo(DSO_E_FRAMEHOOKFAILED); - } - - // Start a wait operation to notify user... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - m_fInDocumentLoad = TRUE; - - // Setup the bind options based on read-only flag.... - bopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | (fOpenReadOnly ? STGM_READ : STGM_READWRITE)); - - SEH_TRY - - // Normally user gives a string that is path to file... - if (pwszDocument) - { - // Check if we are opening from a URL, and load that way... - if (LooksLikeHTTP(pwszDocument)) - { - hr = m_pDocObjFrame->CreateFromURL(pwszDocument, clsidAlt, &bopts, pwszUserName, pwszPassword); - } - // Otherwise, check if it is a local file and open that... - else if (FFileExists(pwszDocument)) - { - hr = m_pDocObjFrame->CreateFromFile(pwszDocument, clsidAlt, &bopts); - } - else hr = E_INVALIDARG; - } - else if (punk) - { - // If we have an object to load from, try loading it direct... - hr = m_pDocObjFrame->CreateFromRunningObject(punk, NULL, &bopts); - } - else hr = E_UNEXPECTED; // Unhandled load type?? - - // If successful, we can activate the object... - if (SUCCEEDED(hr)) - { - EnableDropFile(FALSE); - - if (!m_fShowToolbars) - m_pDocObjFrame->OnNotifyChangeToolState(FALSE); - - hr = m_pDocObjFrame->IPActivateView(); - } - - SEH_EXCEPT(hr) - - // Force a close if an error occurred... - if (FAILED(hr)) - { - m_fFreezeEvents = TRUE; - Close(); - m_fFreezeEvents = FALSE; - hr = ProvideErrorInfo(hr); - } - else - { - // Fire the OnDocumentOpened event... - VARIANT rgargs[2]; - rgargs[0].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[0].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(pwszDocument); - - RaiseAutomationEvent(DSOF_DISPID_DOCOPEN, 2, rgargs); - VariantClear(&rgargs[1]); - VariantClear(&rgargs[0]); - - // Ensure we are active control... - Activate(); - - // Redraw the caption as needed... - RedrawCaption(); - } - - m_fInDocumentLoad = FALSE; - SetCursor(hCur); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Save -// -// Saves the current object. The optional SaveAs paramter lets the same -// function act as a SaveAs method. -// -STDMETHODIMP CDsoFramerControl::Save(VARIANT SaveAsDocument, VARIANT OverwriteExisting, VARIANT WebUsername, VARIANT WebPassword) -{ - HCURSOR hCur; - HRESULT hr = S_FALSE; - LPWSTR pwszDocument = LPWSTR_FROM_VARIANT(SaveAsDocument); - LPWSTR pwszUserName = LPWSTR_FROM_VARIANT(WebUsername); - LPWSTR pwszPassword = LPWSTR_FROM_VARIANT(WebPassword); - BOOL fOverwrite = BOOL_FROM_VARIANT(OverwriteExisting, FALSE); - - TRACE1("CDsoFramerControl::Save(%S)\n", pwszDocument); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // If user passed a value for SaveAs, it must be a valid string... - if (!(PARAM_IS_MISSING(&SaveAsDocument)) && - ((pwszDocument == NULL) || (*pwszDocument == L'\0'))) - return E_INVALIDARG; - - // Raise the BeforeDocumentSaved event to host... - if (m_dispEvents) - { - VARIANT rgargs[3]; VARIANT_BOOL vtboolCancel = VARIANT_FALSE; - rgargs[2].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[2].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(pwszDocument); - rgargs[0].vt = (VT_BOOL | VT_BYREF); rgargs[0].pboolVal = &vtboolCancel; - - RaiseAutomationEvent(DSOF_DISPID_BDOCSAVE, 3, rgargs); - VariantClear(&rgargs[2]); - VariantClear(&rgargs[1]); - - // Setting Cancel param will abort the save... - if (vtboolCancel != VARIANT_FALSE) - return E_ABORT; - } - - // Now do the save... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - SEH_TRY - - // Determine if they want to save to a URL... - if ((pwszDocument) && LooksLikeHTTP(pwszDocument)) - { - hr = m_pDocObjFrame->SaveToURL(pwszDocument, fOverwrite, pwszUserName, pwszPassword); - } - else if (pwszDocument) - { - // Save to file (local or UNC)... - hr = m_pDocObjFrame->SaveToFile(pwszDocument, fOverwrite); - } - else - { - // Save back to open location... - hr = m_pDocObjFrame->Save(); - } - - SEH_EXCEPT(hr) - - // If save was successful... - if (SUCCEEDED(hr)) - { - // Raise the SaveComplete event to host... - if (m_dispEvents) - { - VARIANT rgargs[3]; - rgargs[2].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[2].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(m_pDocObjFrame->GetSourceDocName()); - rgargs[0].vt = VT_BSTR; rgargs[0].bstrVal = SysAllocString(m_pDocObjFrame->GetSourceName()); - RaiseAutomationEvent(DSOF_DISPID_SAVECOMPLETE, 3, rgargs); - VariantClear(&rgargs[2]); - VariantClear(&rgargs[1]); - VariantClear(&rgargs[0]); - } - - // Redraw the caption as needed... - RedrawCaption(); - } - - SetCursor(hCur); - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Close -// -// Closes the current object. -// -STDMETHODIMP CDsoFramerControl::Close() -{ - ODS("CDsoFramerControl::Close\n"); - - CDsoDocObject* pdframe = m_pDocObjFrame; - if (pdframe) - { - // Fire the BeforeDocumentClosed event to give host chance to cancel... - VARIANT rgargs[2]; VARIANT_BOOL vtboolCancel = VARIANT_FALSE; - rgargs[1].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[1].pdispVal)); - rgargs[0].vt = (VT_BOOL | VT_BYREF); rgargs[0].pboolVal = &vtboolCancel; - - // Setting Cancel param should abort the close... - RaiseAutomationEvent(DSOF_DISPID_BDOCCLOSE, 2, rgargs); - VariantClear(&rgargs[1]); - - if (vtboolCancel != VARIANT_FALSE) - return E_ABORT; - - // If not canceled, clear the member variable then call close on doc frame... - m_pDocObjFrame = NULL; - - SEH_TRY - pdframe->Close(); - SEH_EXCEPT_NULL - delete pdframe; - - // Notify host that item is now closed... - RaiseAutomationEvent(DSOF_DISPID_DOCCLOSE, 0, NULL); - } - - // Redraw the caption as needed... - RedrawCaption(); - EnableDropFile(TRUE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Caption/get_Caption) -// -// Allows you to set a custom cation for the titlebar. -// -STDMETHODIMP CDsoFramerControl::put_Caption(BSTR bstr) -{ - // Free exsiting caption (if any) and save new one (always dirties control)... - SAFE_FREEBSTR(m_bstrCustomCaption); - - // Set the new one (if provided)... - if ((bstr) && (SysStringLen(bstr) > 0)) - m_bstrCustomCaption = SysAllocString(bstr); - - ViewChanged(); - m_fDirty = TRUE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Caption(BSTR* pbstr) -{ - if (pbstr) *pbstr = (m_bstrCustomCaption ? - SysAllocString(m_bstrCustomCaption) : - SysAllocString(L"Office Framer Control")); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Titlebar/get_Titlebar) -// -// True/False. Should we display the titlebar or not? -// -STDMETHODIMP CDsoFramerControl::put_Titlebar(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Titlebar(%d)\n", vbool); - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowTitlebar != (WORD)(BOOL)vbool) - { - m_fShowTitlebar = (BOOL)vbool; - m_fDirty = TRUE; - OnResize(); - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Titlebar(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Titlebar\n"); - if (pbool) *pbool = (m_fShowTitlebar ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Toolbars/get_Toolbars) -// -// True/False. Should we display toolbars or not? -// -STDMETHODIMP CDsoFramerControl::put_Toolbars(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Toolbars(%d)\n", vbool); - - // If the control is in modal state, we can't do things that - // will call the server directly, like toggle toolbars... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowToolbars != (WORD)(BOOL)vbool) - { - m_fShowToolbars = (BOOL)vbool; - m_fDirty = TRUE; - - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyChangeToolState(m_fShowToolbars); - - ViewChanged(); - OnResize(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Toolbars(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Toolbars\n"); - if (pbool) *pbool = (m_fShowToolbars ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_ModalState/get_ModalState) -// -// True/False. Disables the active object (if any) thereby setting it -// up to behave "modal". Any time a dialog or other blocking window -// on the same thread is called, the developer should set this to True -// to let the IP object know it should stay modal in the background. -// Set it back to False when the dialog is removed. -// -// Technically, this should be a counter to allow for nested modal states. -// However, we thought that might be confusing to some VB/Web developers -// and since this is only a sample, made it a Boolean property. -// -STDMETHODIMP CDsoFramerControl::put_ModalState(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_ModalState(%d)\n", vbool); - - // you can't force modal state change unless active... - if ((m_fNoInteractive) || (!m_fComponentActive)) - return ProvideErrorInfo(E_ACCESSDENIED); - - if (m_fModalState != (WORD)(BOOL)vbool) - UpdateModalState((vbool != VARIANT_FALSE), TRUE); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ModalState(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_ModalState\n"); - if (pbool) *pbool = ((m_fModalState) ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ShowDialog -// -// Uses IOleCommandTarget to get the embedded object to display one of -// these standard dialogs for the user. -// -STDMETHODIMP CDsoFramerControl::ShowDialog(dsoShowDialogType DlgType) -{ - HRESULT hr = E_ACCESSDENIED; - - TRACE1("CDsoFramerControl::ShowDialog(%d)\n", DlgType); - if ((DlgType < dsoFileNew) || (DlgType > dsoDialogProperties)) - return E_INVALIDARG; - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // The first three dialog types we handle... - if (DlgType < dsoDialogSaveCopy) - { - hr = DoDialogAction(DlgType); - } - // The others are provided by the server via IOleCommandTarget... - else if (m_pDocObjFrame) - { - DWORD dwOleCmd; - switch (DlgType) - { - case dsoDialogSaveCopy: dwOleCmd = OLECMDID_SAVECOPYAS; break; - case dsoDialogPageSetup: dwOleCmd = OLECMDID_PAGESETUP; break; - case dsoDialogProperties: dwOleCmd = OLECMDID_PROPERTIES; break; - default: dwOleCmd = OLECMDID_PRINT; - } - hr = m_pDocObjFrame->DoOleCommand(dwOleCmd, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - - return ProvideErrorInfo(hr); -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_EnableFileCommand/get_EnableFileCommand) -// -// True/False. This allows the developer to disable certain menu/toolbar -// items that are considered "file-level" -- New, Save, Print, etc. -// -// We use the Item parameter to set a bit flag which is used when -// displaying the menu to enable/disable the item. The OnFileCommand -// event will not fire for disabled commands. -// -STDMETHODIMP CDsoFramerControl::put_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL vbool) -{ - TRACE2("CDsoFramerControl::put_EnableFileCommand(%d, %d)\n", Item, vbool); - - if ((Item < dsoFileNew) || (Item > dsoFilePrintPreview)) - return E_INVALIDARG; - - // You cannot access menu when in a modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // We keep bit flags for menu state. Just set the bit and a update - // the embedded object as needed. User will see change next time menu is shown... - UINT code = (1 << Item); - if (vbool == 0) m_wFileMenuFlags &= ~(code); - else m_wFileMenuFlags |= code; - - if (m_pDocObjFrame) // This should update toolbar icon (if server supports it) - m_pDocObjFrame->DoOleCommand(OLECMDID_UPDATECOMMANDS, 0, NULL, NULL); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL* pbool) -{ - TRACE1("CDsoFramerControl::get_EnableFileCommand(%d)\n", Item); - - if ((Item < dsoFileNew) || (Item > dsoFilePrintPreview)) - return E_INVALIDARG; - - UINT code = (1 << Item); - if (pbool) *pbool = ((m_wFileMenuFlags & code) ? VARIANT_TRUE : VARIANT_FALSE); - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_BorderStyle/get_BorderStyle) -// -// Change the border style for the control. -// -STDMETHODIMP CDsoFramerControl::put_BorderStyle(dsoBorderStyle style) -{ - ODS("CDsoFramerControl::put_BorderStyle\n"); - - if ((style < dsoBorderNone) || (style > dsoBorder3DThin)) - return E_INVALIDARG; - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fBorderStyle != (DWORD)style) - { - m_fBorderStyle = style; - m_fDirty = TRUE; - OnResize(); - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BorderStyle(dsoBorderStyle* pstyle) -{ - ODS("CDsoFramerControl::get_BorderStyle\n"); - if (pstyle) *pstyle = (dsoBorderStyle)m_fBorderStyle; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// Control Color Properties... -// -// -STDMETHODIMP CDsoFramerControl::put_BorderColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_BorderColor\n"); - if (m_clrBorderColor != clr) - { - m_clrBorderColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BorderColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrBorderColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_BackColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_BackColor\n"); - if (m_clrBackColor != clr) - { - m_clrBackColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BackColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrBackColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_ForeColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_ForeColor\n"); - if (m_clrForeColor != clr) - { - m_clrForeColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ForeColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrForeColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_TitlebarColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_TitlebarColor\n"); - if (m_clrTBarColor != clr) - { - m_clrTBarColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_TitlebarColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrTBarColor; return S_OK;} - - -STDMETHODIMP CDsoFramerControl::put_TitlebarTextColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_TitlebarTextColor\n"); - if (m_clrTBarTextColor != clr) - { - m_clrTBarTextColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_TitlebarTextColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrTBarTextColor; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Menubar/get_Menubar) -// -// True/False. Should we display menu bar? -// -STDMETHODIMP CDsoFramerControl::put_Menubar(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Menubar(%d)\n", vbool); - - // If the control is in modal state, we can't do things that - // will call the server directly, like toggle menu bar... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowMenuBar != (WORD)(BOOL)vbool) - { - m_fShowMenuBar = (BOOL)vbool; - m_fDirty = TRUE; - ViewChanged(); - OnResize(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Menubar(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Menubar\n"); - if (pbool) *pbool = (m_fShowMenuBar ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_HostName/get_HostName) -// -// String setting used for host application name (used in embedding) -// -STDMETHODIMP CDsoFramerControl::put_HostName(BSTR bstr) -{ - TRACE1("CDsoFramerControl::put_HostName(%S)\n", bstr); - SAFE_FREESTRING(m_pwszHostName); - - if ((bstr) && (SysStringLen(bstr) > 0)) - m_pwszHostName = DsoCopyString(bstr); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_HostName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_HostName\n"); - if (pbstr) - *pbstr = SysAllocString((m_pwszHostName ? m_pwszHostName : L"DsoFramerControl")); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_DocumentFullName -// -// Gets FullName of embedded source file (where default save will save to). -// -STDMETHODIMP CDsoFramerControl::get_DocumentFullName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_DocumentFullName\n"); - CHECK_NULL_RETURN(pbstr, E_POINTER); - // Ask doc object site for the source name... - *pbstr = (m_pDocObjFrame) ? SysAllocString(m_pDocObjFrame->GetSourceName()) : NULL; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_DocumentName -// -// Gets just the file name of embedded source file. -// -STDMETHODIMP CDsoFramerControl::get_DocumentName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_DocumentName\n"); - CHECK_NULL_RETURN(pbstr, E_POINTER); - // Ask doc object site for the source doc name... - *pbstr = (m_pDocObjFrame) ? SysAllocString(m_pDocObjFrame->GetSourceDocName()) : NULL; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_IsReadOnly -// -// Returns if file open read-only. -// -STDMETHODIMP CDsoFramerControl::get_IsReadOnly(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_IsReadOnly\n"); - CHECK_NULL_RETURN(pbool, E_POINTER); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - *pbool = (m_pDocObjFrame->IsReadOnly() ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_IsDirty -// -// Returns TRUE if doc object says it has changes. -// -STDMETHODIMP CDsoFramerControl::get_IsDirty(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_IsDirty\n"); - CHECK_NULL_RETURN(pbool, E_POINTER); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - *pbool = (m_pDocObjFrame->IsDirty() ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::LockServer -// -// Allows host to temporarily lock the current document server running, -// so that when closing and reopening files using the same server doesn't -// suffer startup/shutdown penelty of the server going away between calls. -// -STDMETHODIMP CDsoFramerControl::put_LockServer(VARIANT_BOOL vbool) -{ - BOOL fLock = (vbool != VARIANT_FALSE); - TRACE1("CDsoFramerControl::put_LockServer(%d)\n", (DWORD)vbool); - - // We must have a server open to set a lock... - if ((fLock) && (m_pDocObjFrame == NULL)) - return ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN); - - return SetTempServerLock(fLock); -} - -STDMETHODIMP CDsoFramerControl::get_LockServer(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_LockServer\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (VARIANT_BOOL)((m_pServerLock) ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetDataObjectContent -// -// Allows caller to get data from document in clipboard format but without -// using the clipboard (instead it uses IDataObject). The server has to -// support the request format to return the data. Data is returned as byte array. -// -// NOTE: This only gets the document body content, not the entire document. If -// you want the entire document, use the Save method with temp filename to save to. -// -STDMETHODIMP CDsoFramerControl::GetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT *pvResults) -{ - ODS("CDsoFramerControl::GetDataObjectContent()\n"); - CHECK_NULL_RETURN(pvResults, E_POINTER); VariantInit(pvResults); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->HrGetDataFromObject(&ClipFormatNameOrNumber, pvResults); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetDataObjectContent -// -// Allows caller to set data into the document body (similar to a paste, but -// without using the clipboard). You must supply the format name or number and -// the data in a byte array format. -// -STDMETHODIMP CDsoFramerControl::SetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT DataByteArray) -{ - ODS("CDsoFramerControl::SetDataObjectContent()\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->HrSetDataInObject(&ClipFormatNameOrNumber, &DataByteArray, TRUE); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_ActivationPolicy -// -// Allows caller to set policy for how activation changes affect the embedded -// object. This is actually a bit flag, so user can OR settings. -// -STDMETHODIMP CDsoFramerControl::put_ActivationPolicy(dsoActivationPolicy lPolicy) -{ - TRACE1("CDsoFramerControl::put_ActivationPolicy(%d)\n", lPolicy); - if (m_pDocObjFrame) return E_ACCESSDENIED; - - if ((lPolicy < dsoDefaultBehavior) || (lPolicy > 0x0F)) - return E_INVALIDARG; - - m_lActivationPolicy = lPolicy; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ActivationPolicy(dsoActivationPolicy *plPolicy) -{if (plPolicy) *plPolicy = (dsoActivationPolicy)m_lActivationPolicy; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_FrameHookPolicy -// -// Allows caller to set policy for the frame hook. -// -STDMETHODIMP CDsoFramerControl::put_FrameHookPolicy(dsoFrameHookPolicy lPolicy) -{ - HRESULT hr = E_ACCESSDENIED; - TRACE1("CDsoFramerControl::put_FrameHookPolicy(%d)\n", lPolicy); - - switch (lPolicy) - { - case dsoDisableHook: - if (m_pHookManager) break; - // else fallthrough... - - case dsoNormalBehavior: - case dsoSetOnFirstOpen: - m_lHookPolicy = lPolicy; hr = S_OK; - break; - - case dsoResetNow: - if (!FRunningInDesignMode()) - hr = ResetFrameHook(0); - break; - - default: - hr = E_INVALIDARG; - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::get_FrameHookPolicy(dsoFrameHookPolicy *plPolicy) -{if (plPolicy) *plPolicy = (dsoFrameHookPolicy)m_lHookPolicy; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_MenuAccelerators -// -// Sets flag to determine if control should try to handle keys for menu -// shortcuts when the menus are displayed. -// -STDMETHODIMP CDsoFramerControl::put_MenuAccelerators(VARIANT_BOOL vbool) -{ - ODS("CDsoFramerControl::put_MenuAccelerators\n"); - m_fDisableMenuAccel = (vbool == VARIANT_FALSE); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_MenuAccelerators(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_MenuAccelerators\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (m_fDisableMenuAccel ? VARIANT_FALSE : VARIANT_TRUE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_EventsEnabled -// -// Sets flag to determine if events are frozen or not. -// -STDMETHODIMP CDsoFramerControl::put_EventsEnabled(VARIANT_BOOL vbool) -{ - ODS("CDsoFramerControl::put_EventsEnabled\n"); - m_fFreezeEvents = (vbool == VARIANT_FALSE); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_EventsEnabled(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_EventsEnabled\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (m_fFreezeEvents ? VARIANT_FALSE : VARIANT_TRUE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - IDispatch Implementation -// - -//////////////////////////////////////////////////////////////////////// -// Control's IDispatch Functions -// -// These are largely standard and just forward calls to the functions -// above. The only interesting thing here is the "hack" in Invoke to -// tell VB/IE that the control is always "Enabled". -// -STDMETHODIMP CDsoFramerControl::GetTypeInfoCount(UINT* pctinfo) -{if (pctinfo) *pctinfo = 1; return S_OK;} - -STDMETHODIMP CDsoFramerControl::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) -{ - HRESULT hr = S_OK; - - ODS("CDsoFramerControl::GetTypeInfo\n"); - CHECK_NULL_RETURN(ppTInfo, E_POINTER); *ppTInfo = NULL; - - // We only support default interface late bound... - CHECK_NULL_RETURN((iTInfo == 0), DISP_E_BADINDEX); - - // Load the type lib if we don't have the information already. - if (NULL == m_ptiDispType) - { - hr = DsoGetTypeInfoEx(LIBID_DSOFramer, 0, DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, - v_hModule, IID__FramerControl, &m_ptiDispType); - } - - // Return interface with ref count (if we have it, otherwise error)... - SAFE_SET_INTERFACE(*ppTInfo, m_ptiDispType); - return hr; -} - -STDMETHODIMP CDsoFramerControl::GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) -{ - HRESULT hr; - ITypeInfo *pti; - - ODS("CDsoFramerControl::GetIDsOfNames\n"); - CHECK_NULL_RETURN((IID_NULL == riid), DISP_E_UNKNOWNINTERFACE); - - // Get the type info for this dispinterface... - hr = GetTypeInfo(0, lcid, &pti); - RETURN_ON_FAILURE(hr); - - // Ask OLE to translate the name... - hr = pti->GetIDsOfNames(rgszNames, cNames, rgDispId); - pti->Release(); - return hr; -} - -STDMETHODIMP CDsoFramerControl::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) -{ - HRESULT hr; - ITypeInfo *pti;; - - // VB loves to check for this property (Enabled) during design time. - // We don't implement it for this control, but we'll return TRUE to - // to let it know if is enabled and don't bother with call to ITypeInfo... - if ((dispIdMember == DISPID_ENABLED) && (wFlags & DISPATCH_PROPERTYGET)) - { - if (pVarResult) // We are always enabled... - {pVarResult->vt = VT_BOOL; pVarResult->boolVal = VARIANT_TRUE; } - return S_OK; - } - - TRACE1("CDsoFramerControl::Invoke(dispid = %d)\n", dispIdMember); - CHECK_NULL_RETURN((IID_NULL == riid), DISP_E_UNKNOWNINTERFACE); - - // Get the type info for this dispinterface... - hr = GetTypeInfo(0, lcid, &pti); - RETURN_ON_FAILURE(hr); - - // Store pExcepInfo (to fill-in disp excepinfo if error occurs)... - m_pDispExcep = pExcepInfo; - - // Call the method using TypeInfo (OLE will call v-table method for us)... - hr = pti->Invoke((PVOID)this, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - - m_pDispExcep = NULL; // Don't need this anymore... - pti->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ProvideErrorInfo -// -// Fills in custom error information (as needed). -// -STDMETHODIMP CDsoFramerControl::ProvideErrorInfo(HRESULT hres) -{ - // Don't need to do anything on success... - if ((hres == S_OK) || SUCCEEDED(hres)) - return hres; - - // Fill in the error information as needed... - return DsoReportError(hres, NULL, m_pDispExcep); -} diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsofcontrol.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/dsofcontrol.cpp deleted file mode 100644 index 17bd4094..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsofcontrol.cpp +++ /dev/null @@ -1,4313 +0,0 @@ -/*************************************************************************** - * DSOFCONTROL.CPP - * - * CDsoFramerControl: The Base Control - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - The Main Control Class -// -// Serves as a base for the ActiveX Document site object which will do -// the actual embedding. -// -CDsoFramerControl::CDsoFramerControl(LPUNKNOWN punk) -{ - ODS("CDsoFramerControl::CDsoFramerControl\n"); - m_pOuterUnknown = ((punk) ? punk : (IUnknown*)&m_xInternalUnknown); -} - -CDsoFramerControl::~CDsoFramerControl(void) -{ - ODS("CDsoFramerControl::~CDsoFramerControl\n"); - - SAFE_RELEASE_INTERFACE(m_ptiDispType); - SAFE_RELEASE_INTERFACE(m_pClientSite); - SAFE_RELEASE_INTERFACE(m_pControlSite); - SAFE_RELEASE_INTERFACE(m_pInPlaceSite); - SAFE_RELEASE_INTERFACE(m_pInPlaceFrame); - SAFE_RELEASE_INTERFACE(m_pInPlaceUIWindow); - SAFE_RELEASE_INTERFACE(m_pViewAdviseSink); - SAFE_RELEASE_INTERFACE(m_pOleAdviseHolder); - SAFE_RELEASE_INTERFACE(m_pDataAdviseHolder); - SAFE_RELEASE_INTERFACE(m_dispEvents); - SAFE_RELEASE_INTERFACE(m_pOleStorage); - SAFE_FREESTRING(m_pwszHostName); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InitializeNewInstance -// -// Sets up the inital state for the control. Any other member variable -// not set here will be NULL/FALSE thanks to zero-init in MemAlloc. -// -STDMETHODIMP CDsoFramerControl::InitializeNewInstance() -{ - m_clrBorderColor = 0x80000010; // System Button Shadow Color - m_clrBackColor = 0x80000005; // System Window Background Color - m_clrForeColor = 0x80000008; // System Window Text Color - m_clrTBarColor = 0x8000000D; // System Highlight Color - m_clrTBarTextColor = 0x8000000E; // System Highlight Text Color - m_fBorderStyle = dsoBorderFlat; - m_fShowTitlebar = TRUE; - m_fShowToolbars = TRUE; - m_fShowMenuBar = TRUE; - m_wFileMenuFlags = 0xFFFF; // All items are "enabled" by default - m_Size.cx = 240; - m_Size.cy = 240; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InPlaceActivate -// -// Does all the work in-place activating and/or ui activating the -// control when asked to do so. Sets up the main control window, the -// needed interfaces, and (if not in design) subclasses the main top-level -// window we can monitor messages that must be forwarded to an ip active -// DocObject when we have one loaded. -// -STDMETHODIMP CDsoFramerControl::InPlaceActivate(LONG lVerb) -{ - HRESULT hr; - SIZEL sizel; - - TRACE1("CDsoFramerControl::InPlaceActivate - %d\n", lVerb); - - // if we don't have a client site, then there's not much to do. - if (!m_pClientSite) return S_OK; - - // get an InPlace site pointer. - if (NULL == m_pInPlaceSite) - { - hr = m_pClientSite->QueryInterface(IID_IOleInPlaceSite, (void **)&m_pInPlaceSite); - RETURN_ON_FAILURE(hr); - } - - // if we're not already active, go and do it. - if (!m_fInPlaceActive) - { - OLEINPLACEFRAMEINFO InPlaceFrameInfo; - RECT rcPos, rcClip; - - hr = m_pInPlaceSite->CanInPlaceActivate(); - if (hr != S_OK){ if (!FAILED(hr)) hr = E_FAIL; goto cleanup;} - - // if we are here, then we have permission to go in-place active. - // now, announce our intentions to actually go ahead and do this. - hr = m_pInPlaceSite->OnInPlaceActivate(); - GOTO_ON_FAILURE(hr, cleanup); - - // if we're here, we're ready to go in-place active. we just need - // to set up some flags, and then create the window [if we have one] - m_fInPlaceActive = TRUE; - - // we need to get some information about our location in the parent - // window, as well as some information about the parent - hr = m_pInPlaceSite->GetWindow(&m_hwndParent); - if (FAILED(hr) || !IsWindow(m_hwndParent)) - { - hr = OLE_E_INVALIDHWND; - goto cleanup; - } - - InPlaceFrameInfo.cb = sizeof(OLEINPLACEFRAMEINFO); - hr = m_pInPlaceSite->GetWindowContext(&m_pInPlaceFrame, &m_pInPlaceUIWindow, &rcPos, &rcClip, &InPlaceFrameInfo); - GOTO_ON_FAILURE(hr, cleanup); - - // make sure we'll display ourselves in the correct location with the correct size - sizel.cx = rcPos.right - rcPos.left; - sizel.cy = rcPos.bottom - rcPos.top; - m_Size = sizel; - - m_xOleInplaceObject.SetObjectRects(&rcPos, &rcClip); - - // finally, create our window if we have to! - if (NULL == m_hwnd) - { - WNDCLASS wndclass; - - EnterCriticalSection(&v_csecThreadSynch); - - // if class info has not yet been registered, need to do that now... - if (GetClassInfo(v_hModule, "DSOFramerOCXWnd", &wndclass) == 0) - { - memset(&wndclass, 0, sizeof(WNDCLASS)); - wndclass.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS; - wndclass.lpfnWndProc = CDsoFramerControl::ControlWindowProc; - wndclass.hInstance = v_hModule; - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.lpszClassName = "DSOFramerOCXWnd"; - RegisterClass(&wndclass); - } - - // create the window with the extent size and position... - m_hwnd = CreateWindowEx(0, "DSOFramerOCXWnd", NULL, - WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE, - rcPos.left, rcPos.top, m_Size.cx, m_Size.cy, - m_hwndParent, NULL, v_hModule, NULL); - - if (m_hwnd) SetWindowLong(m_hwnd, GWL_USERDATA, (LONG)this); - - LeaveCriticalSection(&v_csecThreadSynch); - - if (!m_hwnd) {hr = E_FAIL; goto cleanup;} - } - - // finally, tell the host of this - m_pClientSite->ShowObject(); - } - - // if we're not inplace visible yet, do so now. - if (!m_fInPlaceVisible) - SetInPlaceVisible(TRUE); - - - // if we were asked to UIActivate, and we currently are not, do so! - if ((lVerb == OLEIVERB_PRIMARY || - lVerb == OLEIVERB_UIACTIVATE) && (!m_fUIActive)) - { - // It is not typical to UI activate ocx during design mode, but if it happens and host - // has not customized the hook policy, let's switch to delay set so that we don't - // accidently hook the VS/VB IDE designer window. - if (FRunningInDesignMode() && (m_lHookPolicy == 0)) - m_lHookPolicy = dsoSetOnFirstOpen; - - // if we don't have it already, hook top-level parent window when we go - // ui active; this is needed to track WM_ACTIVATEAPP and other critical messages - // needed by ole docobjs.... - if ((m_pHookManager == NULL) && FUseFrameHook() && !FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) - { - ODS(" ** UIActivate FAILED (DSO_E_FRAMEHOOKFAILED)\n"); - return ProvideErrorInfo(DSO_E_FRAMEHOOKFAILED); - } - } - - // Now UI activate the control for the host. This implies taking focus and - // setting up the control as the current active object... - hr = UIActivate(FALSE); - - } - - // Setup drop file support (but only when there is no current embedding)... - if (m_pDocObjFrame == NULL) - EnableDropFile(TRUE); - - return S_OK; // be-de-be-de-be-de that's all folks! - -cleanup: - // something catastrophic happened [or, at least something bad]. - // die a horrible fiery mangled painful death... - TRACE1(" *** InPlaceActivate FAILED (hr=0x%X) ***\n", hr); - m_fInPlaceActive = FALSE; - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UIActivate -// -// Make sure our control is UI Active and set as ActiveObject for host. -// -STDMETHODIMP CDsoFramerControl::UIActivate(BOOL fForceUIActive) -{ - HRESULT hr = S_FALSE; - TRACE1("CDsoFramerControl::UIActivate(fForceUIActive=%d)\n", fForceUIActive); - - // We can't do anything if we aren't inplace active and visible! - if (!(m_fInPlaceActive) || !(m_fInPlaceVisible)) - return E_UNEXPECTED; - - // If we are not already UI active or are being asked to force it, do the call - if ((!(m_fUIActive) || (fForceUIActive)) && (m_pInPlaceSite)) - { - m_fUIActive = TRUE; - - // inform the container of our intent - hr = m_pInPlaceSite->OnUIActivate(); - - if (SUCCEEDED(hr) || (fForceUIActive)) - { - // take the focus [which is what UI Activation is all about !] - SetFocus(m_hwnd); - - // set ourselves up in the host. - if (m_pInPlaceFrame) - m_pInPlaceFrame->SetActiveObject((IOleInPlaceActiveObject*)&m_xOleInplaceActiveObject, NULL); - - if (m_pInPlaceUIWindow) - m_pInPlaceUIWindow->SetActiveObject((IOleInPlaceActiveObject*)&m_xOleInplaceActiveObject, NULL); - - // we have to explicitly say we don't wany any border space. - if (m_pInPlaceFrame) - m_pInPlaceFrame->SetBorderSpace(NULL); - - if (m_pInPlaceUIWindow) - m_pInPlaceUIWindow->SetBorderSpace(NULL); - - // Ensure docobj component state is active as well... - if (!m_fComponentActive) - { - // Tell manager we are the active component now... - if (m_pHookManager) m_pHookManager->SetActiveComponent(m_hwnd); - else OnComponentActivationChange(TRUE); - } - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::SetInPlaceVisible -// -// Make sure our control is visible or not (does not actually take ui -// focus, that should be done in InPlaceActivate). -// -STDMETHODIMP_(void) CDsoFramerControl::SetInPlaceVisible(BOOL fShow) -{ - BOOL fVisible; - m_fInPlaceVisible = fShow; - - // don't do anything if we don't have a window. otherwise, set it - if (m_hwnd) - { - fVisible = IsWindowVisible(m_hwnd); - - if (fVisible && !fShow) - ShowWindow(m_hwnd, SW_HIDE); - else if (!fVisible && fShow) - ShowWindow(m_hwnd, SW_SHOWNA); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDraw -// -// Drawing is largely limited to border and titlebar, except when in -// design mode. We don't do any background painting to avoid paint problems -// when we have an ui active DocObject. It should do any painting for us. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize) -{ - COLORREF clrBackground, clrForeground, clrBorder, clrT; - HBRUSH hbshBackground, hbshBorder; - HFONT hfontText, hfontOld; - HPALETTE hpal, hpalOld; - LOGFONT lfText = {-11,0,0,0,FW_NORMAL,0,0,0,0,0,0,0,FF_SWISS, "Tahoma"}; - RECT rc, rcT; - int iTxtMode, iMapMode; - - // Copy out the bounding rect... - CopyRect(&rc, prcBounds); - - // On 256 color systems, we may need a palette... - if ((GetDeviceCaps(hdcDraw, RASTERCAPS) & RC_PALETTE) && - ((GetDeviceCaps(hdcDraw, BITSPIXEL) * GetDeviceCaps(hdcDraw, PLANES)) == 8)) - { - hpal = CreateHalftonePalette(hdcDraw); - hpalOld = SelectPalette(hdcDraw, hpal, TRUE); - RealizePalette(hdcDraw); - } - else hpal = NULL; - - // Translate the OLE_COLOR values to a matching COLORREF in palette... - OleTranslateColor(m_clrBackColor, hpal, &clrBackground); - OleTranslateColor(m_clrForeColor, hpal, &clrForeground); - OleTranslateColor(m_clrBorderColor, hpal, &clrBorder); - - // Create the resources we need for drawing and setting up the DC... - hbshBackground = CreateSolidBrush(clrBackground); - hbshBorder = CreateSolidBrush(clrBorder); - - hfontText = CreateFontIndirect(&lfText); - hfontOld = (HFONT)SelectObject(hdcDraw, hfontText); - iTxtMode = SetBkMode(hdcDraw, TRANSPARENT); - iMapMode = SetMapMode(hdcDraw, MM_TEXT); - - // Based on the choosen border style, draw the border and deflate the - // drawing rect accordingly... - switch (m_fBorderStyle) - { - case 1: - { - HBRUSH hbT = GetSysColorBrush(COLOR_BTNFACE); - FrameRect(hdcDraw, &rc, hbshBorder); InflateRect(&rc, -1, -1); - FrameRect(hdcDraw, &rc, hbT); InflateRect(&rc, -1, -1); - FrameRect(hdcDraw, &rc, hbshBorder); InflateRect(&rc, -1, -1); - } - break; - - case 2: - DrawEdge(hdcDraw, &rc, EDGE_SUNKEN, BF_RECT); - InflateRect(&rc, -2, -2); - break; - - case 3: - DrawEdge(hdcDraw, &rc, BDR_SUNKENOUTER, BF_RECT); - InflateRect(&rc, -1, -1); - break; - - //default: no border... - } - - // Draw the titlebar if visible... - if (m_fShowTitlebar) - { - COLORREF clrTitlebar, clrTitlebarText; - HBRUSH hbshTitlebar, hbshT; - LPWSTR pwszDCaption = NULL; - LPWSTR pwszROCaption = NULL; - LPWSTR pwszCaption = ((m_bstrCustomCaption) ? - m_bstrCustomCaption : L"KB311765: Office Framer Control Sample"); - - CopyRect(&rcT, &rc); - rcT.bottom = rcT.top + 21; - - OleTranslateColor(m_clrTBarColor, hpal, &clrTitlebar); - OleTranslateColor(m_clrTBarTextColor, hpal, &clrTitlebarText); - - hbshTitlebar = CreateSolidBrush(clrTitlebar); - FillRect(hdcDraw, &rcT, hbshTitlebar); - - DrawIconEx(hdcDraw, rcT.left+2, rcT.top+2, v_icoOffDocIcon, 16, 16, 0, NULL, DI_NORMAL); - - clrT = SetTextColor(hdcDraw, clrTitlebarText); - rcT.left += 22; - - // If we have an embedded object, check to see if it is an open doc and - // append the name to the titlebar. Also append "Read-Only" string if file - // was open in read-only mode. - if (m_pDocObjFrame) - { - if ((pwszDCaption = (LPWSTR)m_pDocObjFrame->GetSourceDocName()) != NULL) - { - LPCWSTR pwszCat[2] = {L" - ", pwszDCaption}; - pwszDCaption = DsoCopyStringCatEx(pwszCaption, 2, pwszCat); - pwszCaption = pwszDCaption; - } - - if (m_pDocObjFrame->IsReadOnly()) - { - pwszROCaption = DsoCopyStringCat(pwszCaption, L" (Read-Only)"); - pwszCaption = pwszROCaption; - } - } - - // Draw out the custom titlebar caption in Unicode if on NT/XP OS, since - // a custom caption may have non-ANSI characters... - FDrawText(hdcDraw, pwszCaption, &rcT, DT_VCENTER|DT_SINGLELINE); - - // Cleanup temp strings... - if (pwszROCaption) DsoMemFree(pwszROCaption); - if (pwszDCaption) DsoMemFree(pwszDCaption); - - CopyRect(&rcT, &rc); - rcT.bottom = rcT.top + 21; - rcT.top = rcT.bottom - 1; - - hbshT = GetSysColorBrush(COLOR_BTNSHADOW); - FillRect(hdcDraw, &rcT, hbshT); - - SetTextColor(hdcDraw, clrT); - DeleteObject(hbshTitlebar); - } - - // Draw menu bar if visible... - if (m_fShowMenuBar) - { - GetSizeRectForMenuBar(prcBounds, &rcT); - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNFACE)); - - // When in design mode, we just draw placeholder... - if (FRunningInDesignMode()) - { - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "Menu Bar", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - else - { - HMENU hCurMenu; - CHAR szbuf[DSO_MAX_MENUNAME_LENGTH]; - UINT i, yTop, yBottom, xLast, xNext; - SIZE ptMItem; RECT rcMDraw; - BOOL fSelected; - DWORD dwDTFlags = (DT_SINGLELINE | DT_VCENTER); - - // Get the current menu and setup to draw the number of items in it... - if (hCurMenu = GetActivePopupMenu()) - { - yTop = rcT.top + 3; yBottom = rcT.bottom - 3; xLast = rcT.left + 2; - if (hCurMenu == m_hmenuFilePopup) - { m_cMenuItems = 1; } - else - { - if ((m_cMenuItems = (USHORT)GetMenuItemCount(hCurMenu)) > DSO_MAX_MENUITEMS) - m_cMenuItems = DSO_MAX_MENUITEMS; - } - - // If we are on an OS that supports it, hide the prefix when we are not UI active - // or if the host has disabled menu accelerators for this instance... - if (v_fWindows2KPlus && (!(m_fUIActive) || (m_fDisableMenuAccel))) - dwDTFlags |= DT_HIDEPREFIX; - - // For each item in the menu, get the menu name and draw it to the - // menu bar. We need to calculate the size taken by the font used and - // store the information in an array used by mouse move handler to - // determine which menu item the user is over... - for (i = 0; i < m_cMenuItems; i++) - { - szbuf[0] = '\0'; - if (i == 0) lstrcpy(szbuf, "&File"); - else GetMenuString(hCurMenu, i, szbuf, DSO_MAX_MENUNAME_LENGTH, MF_BYPOSITION); - - GetTextExtentPoint32(hdcDraw, szbuf, lstrlen(szbuf), &ptMItem); - xNext = (xLast + ptMItem.cx + 2); - if (xNext > (UINT)(rcT.right)){ m_cMenuItems = (USHORT)i; break; } - SetRect(&rcMDraw, xLast, yTop, xNext, yBottom); - - if (fOptimize) - CopyRect(&m_rgrcMenuItems[i], &rcMDraw); - - // If user is over this particular item, we draw it as selected... - fSelected = ((m_wSelMenuItem) && (i == (UINT)(m_wSelMenuItem - 1))); - if (fSelected) - { - FillRect(hdcDraw, &rcMDraw, GetSysColorBrush(COLOR_HIGHLIGHT)); - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_HIGHLIGHTTEXT)); - } - rcMDraw.left += 4; - DrawText(hdcDraw, szbuf, lstrlen(szbuf), &rcMDraw, dwDTFlags); - - if (fSelected) - SetTextColor(hdcDraw, clrT); - - xLast = xNext + 2; - } - } - } - rcT.top = rcT.bottom - 1; // Draw a line to separate menu from workspace... - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNSHADOW)); - } - - - // Fill in the background (but only if there is no active object)... - if (!m_pDocObjFrame) - { - GetSizeRectForDocument(prcBounds, &rcT); - FillRect(hdcDraw, &rcT, hbshBackground); - - // When in design mode, we do a little extra stuff to help the - // developer visualize some of the control settings (toolbars, - // foreground color, etc.)... - if (FRunningInDesignMode()) - { - if (m_fShowToolbars) - { - rcT.bottom = rcT.top + 25; - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNFACE)); - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "Toolbar Space", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - - GetSizeRectForDocument(prcBounds, &rcT); - rcT.top = rcT.top + 25; - } - - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "ActiveX Document Object", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - } - else if ((m_pDocObjFrame) && (!m_fAppActive || !m_fComponentActive) && (FDrawBitmapOnAppDeactive() || FIPDeactivateOnCompChange())) - { - // In the case we have more than one component, and this component is - // has an object but is not ui active we draw a bitmap representation - // of the obect to fill the area. This gives the user a sense the object - // is there but in background, and can click to reactivate... - GetSizeRectForDocument(prcBounds, &rcT); - - if (m_hbmDeactive) - { - HDC hdcT = CreateCompatibleDC(hdcDraw); - HBITMAP bmpOld = (HBITMAP)SelectObject(hdcT, m_hbmDeactive); - BITMAP bm; - - if (GetObject(m_hbmDeactive, sizeof(BITMAP), &bm)) - { - StretchBlt(hdcDraw, rcT.left, rcT.top, - (rcT.right - rcT.left), (rcT.bottom - rcT.top), - hdcT, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY); - } - else - { - BitBlt(hdcDraw, rcT.left, rcT.top, - (rcT.right - rcT.left), (rcT.bottom - rcT.top), hdcT, 0,0, SRCCOPY); - } - - SelectObject(hdcT, bmpOld); - DeleteDC(hdcT); - } - else if (!m_fInDocumentLoad) - { - FillRect(hdcDraw, &rcT, hbshBackground); - rcT.top = ((rc.bottom - rc.top) / 2); - clrT = SetTextColor(hdcDraw, clrForeground); - DrawText(hdcDraw, "Unable to display inactive document. Click here to reactivate the object.", -1, &rcT, DT_WORDBREAK | DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - } // else The docobj draws the rest... - - // Cleanup the hDC as required... - DeleteObject(hbshBackground); - DeleteObject(hbshBorder); - - SelectObject(hdcDraw, hfontOld); - DeleteObject(hfontText); - - if (hpal) - { - SelectPalette(hdcDraw, hpalOld, TRUE); - DeleteObject(hpal); - } - - SetBkMode(hdcDraw, iTxtMode); - SetMapMode(hdcDraw, iMapMode); - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDestroyWindow -// -// When the window closes make sure the object closes and release the -// subclass we have on the parent's top-level window. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDestroyWindow() -{ - ODS("CDsoFramerControl::OnDestroyWindow\n"); - - if (m_pDocObjFrame) - Close(); - - if (m_pHookManager) - { - m_pHookManager->DetachComponent(m_hwnd); - m_pHookManager = NULL; - } - - m_hwnd = NULL; - - if (m_pServerLock) - SetTempServerLock(FALSE); - - if (m_hbmDeactive) - { - DeleteObject(m_hbmDeactive); - m_hbmDeactive = NULL; - } - - if (m_hmenuFilePopup) - { - DestroyMenu(m_hmenuFilePopup); - m_hmenuFilePopup = NULL; - } - -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnResize -// -// Resize the window and notify the doc site. -// -STDMETHODIMP_(void) CDsoFramerControl::OnResize() -{ - RECT rcPlace; - ODS("CDsoFramerControl::OnResize\n"); - if (m_pDocObjFrame) - { - if (FChangeObjActiveOnFocusChange() && (!m_fUIActive)) - UIActivate(FALSE); - - GetSizeRectForDocument(NULL, &rcPlace); - m_pDocObjFrame->OnNotifySizeChange(&rcPlace); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnMouseMove -// -// We watch for mouse movement on menu bar (when visible). -// -STDMETHODIMP_(void) CDsoFramerControl::OnMouseMove(UINT x, UINT y) -{ - // TRACE2("CDsoFramerControl::OnMouseMove(%d, %d)\n", x, y); - // TRACE3(" fAppActive=%d, fUIActive=%d, fCompActive=%d\n", m_fAppActive, m_fUIActive, m_fComponentActive); - // TRACE2(" fModalState=%d, fNoInteractive=%d\n", m_fModalState, m_fNoInteractive); - - // When we are in mouse move, watch for menu selection. Only need to - // do this if bar is visible and we are not in modal state... - if ((m_fShowMenuBar) && (m_fComponentActive) && (m_fUIActive) && (m_fAppActive) && - (!m_fModalState) && (!m_fNoInteractive)) - { - UINT item; - POINT pt; pt.x = x; pt.y = y; - - // If we already have item selected, check to see if we are still - // over it. If so, we can exit now. If not, we sould unselect it. - if (m_wSelMenuItem) - { - item = m_wSelMenuItem - 1; - if (PtInRect(&m_rgrcMenuItems[item], pt)) - return; - - ReleaseCapture(); m_wSelMenuItem = 0; - InvalidateRect(m_hwnd, &m_rgrcMenuItems[item], FALSE); - } - - // Now loop through the menu items and see if mouse is over them. - // If it is, we set a mouse capture and draw item as selected... - for (item = 0; item < m_cMenuItems; item++) - { - if (PtInRect(&m_rgrcMenuItems[item], pt)) - { - SetCapture(m_hwnd); - m_wSelMenuItem = (USHORT)(item + 1); - InvalidateRect(m_hwnd, &m_rgrcMenuItems[item], FALSE); - break; - } - } - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnButtonDown -// -// We watch for mouse button down events when the titlebar is visible -// so we can drop down our popup menu if the user clicks around the -// area of the file icon. This is our workaround for menu merging. -// -STDMETHODIMP_(void) CDsoFramerControl::OnButtonDown(UINT x, UINT y) -{ - HMENU hCurMenu = NULL; - RECT rc; - - // Don't do anything if we are in modal state... - if (m_fModalState) return; - - // We don't handle commands when m_fNoInteractive is set, except for the - // condition where we are in print preview and want to display custom menu - // item to end the preview. Office apps have toolbar button to do this, but - // we will provide this option just in case user needs it to exit preview mode... - if (m_fNoInteractive) - { - if ((m_pDocObjFrame) && (m_pDocObjFrame->InPrintPreview())) - { - // If we don't have UI focus, take it... - if (!m_fUIActive) UIActivate(TRUE); - - // Create a temp popup menu. We do this on fly to save resources since - // this is only needed in rare cases... - if ((m_fShowTitlebar) && ((x < 22) && (y < 22))) - { - hCurMenu = CreatePopupMenu(); - if (hCurMenu) - { - // Add the command to the menu... - AppendMenu(hCurMenu, MF_STRING, MNU_PRINTPV, "E&xit Preview"); - // Display the menu... - GetSizeRectAfterTitlebar(NULL, &rc); - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&rc, 2); - TrackPopupMenu(hCurMenu, 0, rc.left, rc.top - 1, 0, m_hwnd, NULL); - // Cleanup... - DestroyMenu(hCurMenu); - hCurMenu = NULL; - } - } - } - - // Otherwise we do nothing when m_fNoInteractive == TRUE. - return; - } - - // We know we must be app active if user clicked on control... - if (!m_fAppActive) m_fAppActive = TRUE; - - // If we don't have UI focus, take it... - if (!m_fUIActive) UIActivate(TRUE); - - // If the caption is showing, we are not modal, and user clicked in the - // area around the office doc icon, show the popup menu... - if ((m_fShowTitlebar) && (!m_fShowMenuBar) && ((x < 22) && (y < 22))) - { - // This will get the File menu or the merged menu based on current state... - hCurMenu = GetActivePopupMenu(); - if (hCurMenu) - { - // We'll place it right below the titlebar just like sys menu... - GetSizeRectAfterTitlebar(NULL, &rc); - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&rc, 2); - TrackPopupMenu(hCurMenu, 0, rc.left, rc.top - 1, 0, m_hwnd, NULL); - } - } - else if ((m_fShowMenuBar) && (m_wSelMenuItem)) - { - POINT pt; - UINT item = m_wSelMenuItem - 1; - - // If we are over a visible menu bar item, find the right popup - // menu for the item using the selitem as an index... - if (item == 0) - { hCurMenu = m_hmenuFilePopup; } - else - { - hCurMenu = GetActivePopupMenu(); - if (hCurMenu) hCurMenu = GetSubMenu(hCurMenu, item); - } - - // Map the location to display the popup into screen points... - pt.x = m_rgrcMenuItems[item].left; - pt.y = m_rgrcMenuItems[item].bottom; - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&pt, 1); - - HWND hwndCurFocus = GetFocus(); - m_fInFocusChange = TRUE; - if (hwndCurFocus && (hwndCurFocus != m_hwnd)) - SetFocus(m_hwnd); - - // Display the menu... - TrackPopupMenu(hCurMenu, 0, pt.x, pt.y, 0, m_hwnd, NULL); - - if (hwndCurFocus && (hwndCurFocus != m_hwnd)) - SetFocus(hwndCurFocus); - m_fInFocusChange = FALSE; - - // When user clicks off, we will resolve the mouse location to - // our control coordinates and call mousemove to free/reset selection... - if (GetCursorPos(&pt)) - { - RECT rcMenu; GetSizeRectForMenuBar(NULL, &rcMenu); - MapWindowPoints(HWND_DESKTOP, m_hwnd, (POINT*)&pt, 1); - if (!PtInRect(&rcMenu, pt)) {pt.x = 0; pt.y = 0;} - } - else {pt.x = 0; pt.y = 0;} - OnMouseMove(pt.x, pt.y); - } - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnMenuMessage -// -// We should get these messages when we are displaying the popup menu. -// The "File" menu is ours, but the popup may have other menus copied -// from the merged menu set by the ui active docobject, so we need to -// forward those messages (as needed) to the right window handler. -// -// In addition, code is added to enable/disable File menu items based -// on flags set by developer in EnableFileCommand, and/or call the -// correct function if one of those commands was selected by user. -// -STDMETHODIMP_(void) CDsoFramerControl::OnMenuMessage(UINT msg, WPARAM wParam, LPARAM lParam) -{ - HMENU hmenu, hmenuMerged = NULL; - BOOL fAlwaysSendMessage = FALSE; - HWND hwndObjectMenu = NULL; - - if (m_pDocObjFrame) - { - hwndObjectMenu = m_pDocObjFrame->GetMenuHWND(); - hmenuMerged = m_pDocObjFrame->GetMergedMenu(); - } - - switch (msg) - { - case WM_INITMENU: m_fObjectMenu = FALSE; //fall through... - case WM_ENTERIDLE: fAlwaysSendMessage = TRUE; - break; - - case WM_MENUSELECT: - if ((lParam == 0) && (HIWORD(wParam) == 0xFFFF)) - fAlwaysSendMessage = TRUE; - break; - - case WM_INITMENUPOPUP: - hmenu = (HMENU)wParam; - m_fObjectMenu = ((hmenu != m_hmenuFilePopup) && (hmenu != hmenuMerged)); - - if ((!m_fObjectMenu) && (hmenu == m_hmenuFilePopup)) - { - EnableMenuItem(hmenu, MNU_NEW, MF_BYCOMMAND | ((m_wFileMenuFlags & 1) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_OPEN, MF_BYCOMMAND | ((m_wFileMenuFlags & 2) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_CLOSE, MF_BYCOMMAND | (((m_wFileMenuFlags & 4) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_SAVE, MF_BYCOMMAND | (((m_wFileMenuFlags & 8) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_SAVEAS, MF_BYCOMMAND | (((m_wFileMenuFlags & 16) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PGSETUP, MF_BYCOMMAND | (((m_wFileMenuFlags & 64) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PRINTPV, MF_BYCOMMAND | (((m_wFileMenuFlags & 256) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PRINT, MF_BYCOMMAND | (((m_wFileMenuFlags & 32) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PROPS, MF_BYCOMMAND | (((m_wFileMenuFlags & 128) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - } - break; - - case WM_COMMAND: - // We handle one special case for print preview exit, but otherwise - // we need to either forward to the merged menu handler (if enabled), - // or handle command through an asynchronous callback... - if ((m_fNoInteractive) && (LOWORD(wParam) == MNU_PRINTPV)) - { - PrintPreviewExit(); - } - else if ((m_fObjectMenu) && (hwndObjectMenu)) - { - PostMessage(hwndObjectMenu, msg, wParam, lParam); - } - else - { - DWORD dwCmd = 0; - switch ((int)LOWORD(wParam)) - { - case MNU_NEW: dwCmd = OLECMDID_NEW; break; - case MNU_OPEN: dwCmd = OLECMDID_OPEN; break; - case MNU_SAVE: dwCmd = OLECMDID_SAVE; break; - case MNU_SAVEAS: dwCmd = OLECMDID_SAVEAS; break; - case MNU_PGSETUP: dwCmd = OLECMDID_PAGESETUP; break; - case MNU_PRINT: dwCmd = OLECMDID_PRINT; break; - case MNU_PROPS: dwCmd = OLECMDID_PROPERTIES; break; - case MNU_PRINTPV: dwCmd = OLECMDID_PRINTPREVIEW; break; - } - PostMessage(m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, dwCmd, 0); - } - - return; // we just return - } - - if ((hwndObjectMenu) && ((m_fObjectMenu) || (fAlwaysSendMessage))) - SendMessage(hwndObjectMenu, msg, wParam, lParam); - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnToolbarAction -// -// Does an associated OLECMDID action and raises the OnFileCommand event -// for developer to override as needed. The name comes from the fact that -// most Office servers will call this (via IOleCommandTarget) when user -// clicks on a toolbar button for file-command item. It also serves for -// our menu commands to keep the code consistant. Both menu and toolbar -// call this method asynchronously (via PostMessage) to avoid blocking the -// remote docobject server. -// -STDMETHODIMP_(void) CDsoFramerControl::OnToolbarAction(DWORD cmd) -{ - ODS("CDsoFramerControl::OnToolbarAction\n"); - HRESULT hr = S_OK; - VARIANT_BOOL wCancelAction = VARIANT_FALSE; - VARIANT rgargs[2]; - VARIANT vtT = {0}; - - // We don't reenter if in a modal state already... - if (m_fModalState) return; - - // If not interactive, we cannot run command... - if (m_fNoInteractive) - { - // unless we are in preview, in which case we can force exit - // and then run command after preview completes... - if ((m_pDocObjFrame) && (m_pDocObjFrame->InPrintPreview())) - { - PrintPreviewExit(); - if (cmd != OLECMDID_PRINTPREVIEW) - PostMessage(m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, cmd, 0); - } - return; - } - - // We will do a default action by default, but give developer a chance - // to override in OnFileCommand event... - rgargs[0].vt = VT_BOOL|VT_BYREF; - rgargs[0].pboolVal = &wCancelAction; - - // Map the OLECMDID to one of our values... - rgargs[1].vt = VT_I4; - switch (cmd) - { - case OLECMDID_NEW: rgargs[1].lVal = dsoFileNew; break; - case OLECMDID_OPEN: rgargs[1].lVal = dsoFileOpen; break; - case OLECMDID_SAVE: rgargs[1].lVal = dsoFileSave; break; - case OLECMDID_SAVEAS: rgargs[1].lVal = dsoFileSaveAs; break; - case OLECMDID_PRINT: rgargs[1].lVal = dsoFilePrint; break; - case OLECMDID_PAGESETUP: rgargs[1].lVal = dsoFilePageSetup; break; - case OLECMDID_PROPERTIES: rgargs[1].lVal = dsoFileProperties; break; - case OLECMDID_PRINTPREVIEW: rgargs[1].lVal = dsoFilePrintPreview; break; - default: rgargs[1].lVal = dsoFileClose; - } - - // Only do action if item is enabled... - if ((1 << rgargs[1].lVal) & m_wFileMenuFlags) - { - // Let control developer handle the event first... - hr = RaiseAutomationEvent(DSOF_DISPID_FILECMD, 2, rgargs); - TRACE1("Disp event returned 0x%X \n", hr); - - // If the event was canceled (or event handler threw an - // unhandled error from user code), bail out now... - if ((wCancelAction) || (hr == DISP_E_EXCEPTION)) - return; - - // Do the action based on the event... - switch (rgargs[1].lVal) - { - case dsoFileClose: hr = Close(); break; - case dsoFilePrint: hr = ShowDialog(dsoDialogPrint); break; - case dsoFilePageSetup: hr = ShowDialog(dsoDialogPageSetup); break; - case dsoFileProperties: hr = ShowDialog(dsoDialogProperties); break; - case dsoFilePrintPreview: hr = PrintPreview(); break; - - case dsoFileSave: - hr = Save(vtT, vtT, vtT, vtT); - if ((hr != DSO_E_DOCUMENTREADONLY) && - (hr != DSO_E_NOTBEENSAVED)) - break; // fall through to SaveAs if file is read-only or never been saved... - - default: - hr = DoDialogAction( - (rgargs[1].lVal == dsoFileNew) ? dsoDialogNew : - (rgargs[1].lVal == dsoFileOpen) ? dsoDialogOpen : dsoDialogSave); - } - - // Display error information to user if we failed... - if (FAILED(hr) && (hr != E_ABORT)) - FAlertUser(hr, NULL); - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::FAlertUser -// -// Display an error alert to the user based on failed HRESULT. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::FAlertUser(HRESULT hr, LPWSTR pwsFileName) -{ - LPSTR pszError = NULL; - LPSTR pszTitle = NULL; - DWORD dwFlags = MB_ICONINFORMATION|MB_SETFOREGROUND; - - switch (hr) - { - case STG_E_ACCESSDENIED: - case STG_E_SHAREVIOLATION: - case STG_E_LOCKVIOLATION: - case MK_E_CANTOPENFILE: - case E_ACCESSDENIED: - pszError = "Unable to Open/Save the file selected due to security permissions or a share violation."; - pszTitle = "Access Denied"; - break; - - case DSO_E_DOCUMENTNOTOPEN: - pszError = "The operation could not be performed because no document is currently open."; - pszTitle = "Unable to Perform Command"; - break; - - case DSO_E_DOCUMENTREADONLY: - pszError = "The operation could not be performed because the document was opened read-only."; - pszTitle = "Unable to Update Document"; - break; - - case CO_E_MSI_ERROR: - case DSO_E_INVALIDSERVER: - case DSO_E_INVALIDPROGID: - case STG_E_NOTFILEBASEDSTORAGE: - pszError = "There is no ActiveX Document server currently registered or installed for the item selected. " - "It cannot be loaded into the control."; - pszTitle = "Unable to Insert Document"; - break; - - case DSO_E_INMODALSTATE: - MessageBeep(0); - return FALSE; // Unable to alert user if in a modal condition! - - case DSO_E_COMMANDNOTSUPPORTED: - pszError = "This operation could not be performed because the document server " - "does not support the command, or it is disabled when embedded."; - pszTitle = "Command Not Supported"; - break; - - case STG_E_TOOMANYOPENFILES: - pszError = "You can only open one document at a time. Please choose a single file to open."; - pszTitle = "Command Not Supported"; - break; - - case DSO_E_REQUIRESMSDAIPP: - pszError = "You cannot open/save to a web folder unless MDAC 2.5 is installed. The operation cannot be performed."; - pszTitle = "Unable to Gain Write Access for URL"; - break; - - default: - pszError = "The program encountered an error trying to perform the command. " - "If the problem persists, contact the program vendor for a possible solution."; - pszTitle = "Command Error"; - dwFlags = MB_ICONHAND|MB_SETFOREGROUND; - } - - MessageBox(m_hwnd, pszError, pszTitle, dwFlags); - return TRUE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::EnableDropFile -// -// Decide when to allow file drop for open. -// -STDMETHODIMP_(void) CDsoFramerControl::EnableDropFile(BOOL fEnable) -{ - TRACE1("CDsoFramerControl::EnableDropFile(%d)\n", fEnable); - DragAcceptFiles(m_hwnd, fEnable); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDropFile -// -// Open file dropped by user on the control. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDropFile(HDROP hdrpFile) -{ - DWORD cbItems; - CHAR szFileDrop[MAX_PATH]; - VARIANT vtFile; - - ODS("CDsoFramerControl::OnDropFile()\n"); - cbItems = DragQueryFile(hdrpFile, 0xFFFFFFFF, NULL, 0); - if (cbItems == 0) - return; - - if (cbItems > 1) - { - FAlertUser(STG_E_TOOMANYOPENFILES, NULL); - return; - } - - szFileDrop[0] = 0; - vtFile.vt = VT_BSTR; - - if (DragQueryFile(hdrpFile, 0, szFileDrop, MAX_PATH) && - (vtFile.bstrVal = DsoConvertToBSTR(szFileDrop))) - { - HRESULT hr; - VARIANT vtMissing; - vtMissing.vt = VT_ERROR; - vtMissing.scode = DISP_E_PARAMNOTFOUND; - - hr = Open(vtFile, vtMissing, vtMissing, vtMissing, vtMissing); - if (FAILED(hr)) FAlertUser(hr, vtFile.bstrVal); - - VariantClear(&vtFile); - } - - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnTimer -// -// Timer event fired. -// -STDMETHODIMP_(void) CDsoFramerControl::OnTimer(UINT id) -{ - // TRACE1("CDsoFramerControl::OnTimer(%d)\n", id); - switch (id) - { - case SYNCPAINT_TIMER_ID: - { - DWORD dwTick = GetTickCount(); - if ((dwTick - m_uiSyncPaint) > 300) - { - ODS("CDsoFramerControl::OnSyncPaint() Invalidate\n"); - KillTimer(m_hwnd, SYNCPAINT_TIMER_ID); - m_fSyncPaintTimer = FALSE; - InvalidateAllChildWindows(m_hwnd); - } - } - break; - } - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnSyncPaint -// -// Notifies redraw is needed b/c of external window movement. -// -STDMETHODIMP_(void) CDsoFramerControl::OnSyncPaint() -{ - // ODS("CDsoFramerControl::OnSyncPaint()\n"); - m_uiSyncPaint = GetTickCount(); - if ((!m_fSyncPaintTimer) && (!m_fAppActive)) - { - SetTimer(m_hwnd, SYNCPAINT_TIMER_ID, 50, NULL); - m_fSyncPaintTimer = TRUE; - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnForegroundCompChange -// -// Shows/Hide embedding when window goes foreground/background active. -// -STDMETHODIMP_(void) CDsoFramerControl::OnForegroundCompChange(BOOL fCompActive) -{ - ODS("CDsoFramerControl::OnForegroundCompChange\n"); - if (m_pDocObjFrame) - { - HWND hwndEmbed = m_pDocObjFrame->GetDocWindow(); - - if (fCompActive) - { - // Make sure embed window is visible when active... - if (!IsWindowVisible(hwndEmbed)) - ShowWindow(hwndEmbed, SW_SHOW); - - if (m_hbmDeactive) DeleteObject(m_hbmDeactive); - m_hbmDeactive = NULL; - } - else if ((FDrawBitmapOnAppDeactive() || FIPDeactivateOnCompChange()) && (m_hbmDeactive == NULL)) - { - // The default behavior on app deactive is to grap bitmap of active object before - // telling it we lost app activation. This allows us to draw the last state of the - // object while it is deactive. There is now an option to avoid this and keep object - // UI active while app deactive, but it may not work for all DocObj servers. - m_hbmDeactive = DsoGetBitmapFromWindow(hwndEmbed); - ShowWindow(hwndEmbed, SW_HIDE); - } - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnAppActivationChange -// -// Notifes embedded object when the host app gains/loses foreground status -// as the active application. This notification is critical to DocObjects since -// it is the primary means for the host and server to synch which top-level -// frame window (the host or the server's native main window) should be on the -// z-order stack for the shared thread input state. Thus allowing dialogs and tool -// windows to appear the correct order when displayed. -// -STDMETHODIMP_(void) CDsoFramerControl::OnAppActivationChange(BOOL fAppActive, DWORD dwThreadID) -{ - TRACE2("CDsoFramerControl::OnAppActivationChange(fAppActive=%d, tid=0x%X)\n", fAppActive, dwThreadID); - m_fAppActive = fAppActive; - - if ((m_pDocObjFrame) && (m_fComponentActive)) - { - // Create/Free bitmap for background appearance.. - OnForegroundCompChange(fAppActive); - - // Notify it that it should be app active ofr deactive... - m_pDocObjFrame->OnNotifyAppActivate(fAppActive, (dwThreadID ? dwThreadID : GetCurrentThreadId())); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnComponentActivationChange -// -// Handles showing/hiding doc object during activation state changes. -// This is needed to properly handle focus changes when more than one -// instance of the control is running on the same top-level window. -// -STDMETHODIMP_(void) CDsoFramerControl::OnComponentActivationChange(BOOL fActivate) -{ - TRACE1("CDsoFramerControl::OnComponentActivationChange(fActive=%d)\n", fActivate); - - if (fActivate) - { - // Set us active if we currently are not and raise activation change event... - if (!m_fComponentActive) - { - m_fComponentActive = TRUE; - OnForegroundCompChange(TRUE); - // Raise event to component host on state change... - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_ACTIVATION, (LPARAM)fActivate); - } - - // Notify the embedded object... - if (m_pDocObjFrame) - { - // Determine if we should restore from IP deactivation... - if (FIPDeactivateOnCompChange() && !(m_pDocObjFrame->IsIPActive())) - { - m_pDocObjFrame->IPActivateView(); - OnForegroundCompChange(TRUE); - } - } - } - else - { - - // Inform embedded object we lost activation... - if (m_pDocObjFrame) - { - // If we are in print preview, we need to exit in case other control will - // end up talking to same OLE server... - if (m_pDocObjFrame->InPrintPreview()) - { - PrintPreviewExit(); - UpdateWindow(m_hwnd); - } - - // Provide control host option to IP deactive view when another framer control - // takes primary focus. This helps certain resource problems if you a lot of controls - // all IP active at the same time. This should not normally be used. - if (FIPDeactivateOnCompChange() && m_pDocObjFrame->IsIPActive()) - { - OnForegroundCompChange(FALSE); - m_pDocObjFrame->IPDeactivateView(); - } - - } - - // Change the current activation state and raise event... - if (m_fComponentActive) - { - m_fComponentActive = FALSE; - OnForegroundCompChange(FALSE); - // Raise event to component host on state change... - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_ACTIVATION, (LPARAM)fActivate); - } - - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnCtrlFocusChange -// -// Checks if window (or one of its children) is getting or losing focus so -// that can notify both the host and embed server using OnUIFocusChange. -// -STDMETHODIMP_(void) CDsoFramerControl::OnCtrlFocusChange(BOOL fCtlGotFocus, HWND hFocusWnd) -{ - TRACE2("CDsoFramerControl::OnCtrlFocusChange(fCtlGotFocus=%d, hwndCurFocus=%x)\n", fCtlGotFocus, hFocusWnd); - if (!(m_fInFocusChange) && ((fCtlGotFocus) || !IsWindowChild(m_hwnd, hFocusWnd))) - { - OnUIFocusChange(fCtlGotFocus); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnUIFocusChange -// -// Selectively handle focus changes to make sure both host and ui -// active docobject are in synch. -// -STDMETHODIMP_(void) CDsoFramerControl::OnUIFocusChange(BOOL fUIActive) -{ - BOOL fFocusUpdated = FALSE; - TRACE1("CDsoFramerControl::OnUIFocusChange(fUIActive=%d)\n", fUIActive); - - // We shouldn't try to do focus change when modal... - if ((m_fModalState) || (m_fInFocusChange)) - { - ODS(" -- Got focus while modal or in change (do nothing) --\n"); - return; - } - - // When IP active, notify the control host of focus change... - if ((m_fInPlaceActive) && (m_pControlSite)) - { - - // Set flag to prevent recursion during focus changes... - m_fInFocusChange = TRUE; - - if (fUIActive) // If we got focus... - { - // Notify host we have focus (we only need - // to do this if we are not already UI Active)... - if (!(m_fHasFocus)) - { - ODS(" -- Tell host app we should have focus --\n"); - m_fHasFocus = (fFocusUpdated = TRUE); - m_pControlSite->OnFocus(TRUE); - } - - // Let the hook manager know that this control is the active object... - if (m_pHookManager) - m_pHookManager->SetActiveComponent(m_hwnd); - - // If so configured, force component to show up active... - if (FChangeObjActiveOnFocusChange()) - { - ODS(" -- Do component active on focus gain --\n"); - OnComponentActivationChange(TRUE); - } - - // If we have an active document, forward the focus... - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyControlFocus(TRUE); - - } - else // else we lost focus... - { - - // When we lose focus, only notify host if we lost to window - // that does not belong to us... - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyControlFocus(FALSE); - - // If so configured, force component loss on focus loss... - if (FChangeObjActiveOnFocusChange()) - { - ODS(" -- Do component deactive on focus loss --\n"); - OnComponentActivationChange(FALSE); - m_fActivateOnStatus = TRUE; - } - - // If we are UI active still, we need to tell host that we lost - // focus and are now UI deactive. - if (m_fHasFocus) - { - ODS(" -- Notify host of lost focus (ie, UI deactivate us) --\n"); - m_fHasFocus = FALSE; fFocusUpdated = TRUE; - m_pControlSite->OnFocus(FALSE); - } - } - - // Clear focus change flag... - m_fInFocusChange = FALSE; - - // Redraw menu bar in case of state change - if ((fFocusUpdated) && (m_fShowMenuBar)) - { - RECT rc; GetSizeRectForMenuBar(NULL, &rc); - InvalidateRect(m_hwnd, &rc, TRUE); - } - } - - return; -} -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UpdateModalState -// -// Called either by developer (ModalState property) or by the embedded -// DocObject to notify host (VB/IE) that we are modal. -// -STDMETHODIMP_(void) CDsoFramerControl::UpdateModalState(BOOL fModeless, BOOL fNotifyIPObject) -{ - TRACE2("CDsoFramerControl::UpdateModalState(AllowModeless=%d, NotifyIP=%d)\n", fModeless, fNotifyIPObject); - if (fModeless == (int)m_fModalState) - { - IOleInPlaceActiveObject* pipao; - - m_fModalState = !(fModeless); - ODS("Modal state changed\n"); - - // Excel doesn't like us to notify the host of changes in modality - // if it is the one who initialied the call. So, we check the - // NotifyIPObj flag and only notify host when the IPObj is not the caller... - if ((fNotifyIPObject) && (m_pInPlaceFrame)) - m_pInPlaceFrame->EnableModeless(fModeless); - - // Again, if IPObj is not the caller and we have Ipobj, let it know - // of the change in modal state... - if ((fNotifyIPObject) && (m_pDocObjFrame) && - (pipao = m_pDocObjFrame->GetActiveObject())) - pipao->EnableModeless(fModeless); - - // Post notification of return from modal... - if (fModeless) - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_RETURNFROMMODAL, (LPARAM)TRUE); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UpdateInteractiveState -// -// Called when interactivity changes (mostly due to print preview). -// -STDMETHODIMP_(void) CDsoFramerControl::UpdateInteractiveState(BOOL fActive) -{ - if (fActive) - { - m_fNoInteractive = FALSE; - if (m_fShowMenuPrev) put_Menubar(VARIANT_TRUE); - if (!m_fShowToolsPrev) put_Toolbars(VARIANT_FALSE); - - // Notify control host that preview mode has ended... - RaiseAutomationEvent(DSOF_DISPID_ENDPREVIEW, 0, NULL); - } - else - { - m_fShowMenuPrev = m_fShowMenuBar; - m_fShowToolsPrev = m_fShowToolbars; - if (m_fShowMenuBar) put_Menubar(VARIANT_FALSE); - if (!m_fShowToolbars) put_Toolbars(VARIANT_TRUE); - m_fNoInteractive = TRUE; - } - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnPaletteChanged -// -// This method is also called from the subclassed parent. Per docobject -// spec, a ui active object should get first chance of any palette updates. -// -STDMETHODIMP_(void) CDsoFramerControl::OnPaletteChanged(HWND hwndPalChg) -{ - ODS("CDsoFramerControl::OnPaletteChanged\n"); - if (m_pDocObjFrame) m_pDocObjFrame->OnNotifyPaletteChanged(hwndPalChg); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnSysCommandMenu -// -// Checks for menu shortcut keys when ui active. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::OnSysCommandMenu(CHAR ch) -{ - if (m_fUIActive) - { - TRACE1("CDsoFramerControl::OnSysCommandMenu(%d)\n", (DWORD)ch); - return TRUE; - } - return FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetActivePopupMenu -// -// Constructs our popup menu and returns the handle. The menu can be -// either the File menu by itself (no docobj is open) or the merged -// menu as a popup. -// -STDMETHODIMP_(HMENU) CDsoFramerControl::GetActivePopupMenu() -{ - HMENU hPopup, hMergedMenu, hServerMenu; - - // If we haven't made a File menu yet, make it. Here is where you might - // want to add custom items if you have other file-level commands you would - // the control to support. These are the basics... - if (!m_hmenuFilePopup) - { - m_hmenuFilePopup = CreatePopupMenu(); m_cMenuItems = 0; - if (!m_hmenuFilePopup) return NULL; - - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_NEW, "&New...\tCtrl+N"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_OPEN, "&Open...\tCtrl+O"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_CLOSE, "&Close"); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_SAVE, "&Save\tCtrl+S"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_SAVEAS, "Save &As..."); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PGSETUP, "Page Set&up..."); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PRINTPV, "Print Pre&view"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PRINT, "&Print..."); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PROPS, "Propert&ies"); - } - - // If we have a docobj and it has a merged menu, then lets return a - // merged menu between the docobj and our file menu... - if ((m_pDocObjFrame) && (m_pDocObjFrame->GetMenuHWND())) - { - // We only need to create the merged copy once. - if (!(hMergedMenu = m_pDocObjFrame->GetMergedMenu())) - { - hMergedMenu = CreatePopupMenu(); m_cMenuItems = 0; - if ((hMergedMenu) && (hServerMenu = (m_pDocObjFrame->GetActiveMenu()))) - { - CHAR szbuf[MAX_PATH]; - HMENU hT; - CHAR *pch; - - InsertMenu(hMergedMenu, 0, MF_BYPOSITION|MF_POPUP, (UINT)m_hmenuFilePopup, "&File"); - m_rgchMenuAccel[0] = 'f'; - - int cbMenuCnt = GetMenuItemCount(hServerMenu); - if (cbMenuCnt > DSO_MAX_MENUITEMS) cbMenuCnt = DSO_MAX_MENUITEMS; - - for (int i = 0; i < cbMenuCnt; i++) - { - hT = GetSubMenu(hServerMenu, i); - if (hT) - { - szbuf[0] = '\0'; - GetMenuString(hServerMenu, i, szbuf, MAX_PATH, MF_BYPOSITION); - InsertMenu(hMergedMenu, (i + 1), MF_BYPOSITION|MF_POPUP, (UINT)hT, szbuf); - - pch = szbuf; - while (*pch && (*pch++ != '&')) - ; - m_rgchMenuAccel[i + 1] = (CHAR)((*pch) ? ASCII_LOWERCASE(*pch) : 0xFF); - } - } - - if (cbMenuCnt < DSO_MAX_MENUITEMS) - m_rgchMenuAccel[cbMenuCnt + 1] = 0x00; - - m_pDocObjFrame->SetMergedMenu(hMergedMenu); - } - } - - hPopup = hMergedMenu; - } - else - { - hPopup = m_hmenuFilePopup; - m_rgchMenuAccel[0] = 'f'; - m_rgchMenuAccel[1] = 0; - } - - return hPopup; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::FRunningInDesignMode -// -// Determines if we are in design mode. Called when painting the control -// and when deciding whether to subclass the parent. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::FRunningInDesignMode() -{ - IDispatch *pdisp; - - // We must have a control site. - CHECK_NULL_RETURN(m_pClientSite, FALSE); - - // If we have done this before, we don't need to keep doing it unless - // the host has notified us of the state change (see our code in - // XOleControl::OnAmbientPropertyChange)... - if ((!m_fModeFlagValid) && - SUCCEEDED(m_pClientSite->QueryInterface(IID_IDispatch, (void **)&pdisp))) - { - VARIANT vtUserMode; - m_fDesignMode = FALSE; // assume run mode - - if (SUCCEEDED(DsoDispatchInvoke(pdisp, NULL, - DISPID_AMBIENT_USERMODE, DISPATCH_PROPERTYGET, 0, NULL, &vtUserMode))) - { - // UserMode is True when control is in Run mode, False when in design. - // We assume run mode, so we only care to set the flag if in design. - m_fDesignMode = !(BOOL_FROM_VARIANT(vtUserMode, TRUE)); - VariantClear(&vtUserMode); - } - - m_fModeFlagValid = TRUE; - // Release the IDispatch pointer... - pdisp->Release(); - } - - return m_fDesignMode; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InvalidateAllChildWindows -// -// Invalidate all child windows attached to the window passed. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::InvalidateAllChildWindows(HWND hwnd) -{ - ODS("CDsoFramerControl::InvalidateAllChildWindows()\n"); - return EnumChildWindows(hwnd, InvalidateAllChildWindowsCallback, 0); -} - -STDMETHODIMP_(BOOL) CDsoFramerControl::InvalidateAllChildWindowsCallback(HWND hwnd, LPARAM lParam) -{ - RECT rc; - GetClientRect(hwnd, &rc); - InvalidateRect(hwnd, &rc, TRUE); - return TRUE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::RaiseAutomationEvent -// -// Raises automation events to host application. -// -STDMETHODIMP CDsoFramerControl::RaiseAutomationEvent(DISPID did, ULONG cargs, VARIANT *pvtargs) -{ - HRESULT hr = ((m_fModalState) ? DISP_E_EXCEPTION : S_FALSE); - TRACE1("CDsoFramerControl::RaiseAutomationEvent(%d)\n", did); - - // We should only raise event if we have sink, not already in a event, and - // we are not in modal condition with respect to the remote server... - if ((m_dispEvents) && (!m_fFreezeEvents) && (!m_fModalState)) - { - m_fFreezeEvents = TRUE; - hr = DsoDispatchInvoke(m_dispEvents, NULL, did, 0, cargs, pvtargs, NULL); - m_fFreezeEvents = FALSE; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::DoDialogAction -// -// A very simple implementation of a New/Open/Save dialogs to serve as -// default actions in case developer does not override these "File" -// commands in OnFileCommand. -// -STDMETHODIMP CDsoFramerControl::DoDialogAction(dsoShowDialogType item) -{ - HRESULT hr = S_FALSE; - BSTR bstr; - BOOL fReadOnly; - VARIANT vT[3]; - - static const WCHAR v_wszFileFilter[] = - L"Microsoft Office Files\0*.doc;*.docx;*.docm;*.rtf;*.xls;*.xlsx;*.xlsm;*.csv;*.ppt;*.pptx;*.pptm;*.mpp;*.vsd;*.vdx\0" - L"Microsoft Word Files\0*.doc;*.docx;*.docm;*.rtf\0" - L"Microsoft Excel Files\0*.xls;*.xlsx;*.xlsm;*.csv\0" - L"Microsoft PowerPoint Files\0*.ppt;*.pptx;*.pptm\0" - L"Microsoft Project Files\0*.mpp\0" - L"Microsoft Visio Files\0*.vsd;*.vdx\0" - L"All Files (*.*)\0*.*\0\0"; - - // Switch on the action type... - switch (item) - { - case dsoDialogOpen: // Get file from user and call Open... - if (SUCCEEDED(DsoGetFileFromUser(m_hwnd, NULL, (OFN_FILEMUSTEXIST|OFN_EXPLORER), - v_wszFileFilter, 1, NULL, NULL, FALSE, &bstr, &fReadOnly))) - { - vT[0].vt = VT_BSTR; vT[0].bstrVal = bstr; - vT[1].vt = VT_BOOL; vT[1].boolVal = (fReadOnly ? VARIANT_TRUE : VARIANT_FALSE); - vT[2].vt = VT_ERROR; vT[2].scode = DISP_E_PARAMNOTFOUND; - - hr = Open(vT[0], vT[1], vT[2], vT[2], vT[2]); - SysFreeString(bstr); - } - break; - - case dsoDialogSave: // Get file from user and call Save... - { - LPWSTR pwszSaveType = NULL; - LPWSTR pwszDefExt = NULL; - - if (m_pDocObjFrame) - m_pDocObjFrame->GetDocumentTypeAndFileExtension(&pwszSaveType, &pwszDefExt); - - if (SUCCEEDED(DsoGetFileFromUser(m_hwnd, NULL, (OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_EXPLORER), - ((pwszSaveType) ? pwszSaveType : v_wszFileFilter), 1, pwszDefExt, NULL, TRUE, &bstr, NULL))) - { - vT[0].vt = VT_BSTR; vT[0].bstrVal = bstr; - vT[1].vt = VT_BOOL; vT[1].boolVal = VARIANT_TRUE; - vT[2].vt = VT_ERROR; vT[2].scode = DISP_E_PARAMNOTFOUND; - - hr = Save(vT[0], vT[1], vT[2], vT[2]); - SysFreeString(bstr); - } - - if (pwszSaveType) DsoMemFree(pwszSaveType); - if (pwszDefExt) DsoMemFree(pwszDefExt); - } - break; - - case dsoDialogNew: // Get either ProgID or File to create new object from... - if (SUCCEEDED(DsoGetOleInsertObjectFromUser(m_hwnd, L"Insert New Document Object", - (IOF_SELECTCREATENEW | IOF_DISABLELINK | IOF_DISABLEDISPLAYASICON | IOF_HIDECHANGEICON), - TRUE, FALSE, &bstr, NULL))) - { - hr = CreateNew(bstr); - SysFreeString(bstr); - } - break; - - default: MessageBeep(0); - } - - return hr; -} -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::SetTempServerLock -// -// Sets up lock of OLE server to make unload and new load of files faster -// and to avoid race conditions on reload of file. -// -STDMETHODIMP CDsoFramerControl::SetTempServerLock(BOOL fLock) -{ - HRESULT hr = S_FALSE; - TRACE1("CDsoFramerControl::SetTempServerLock(%d)\n", fLock); - - if (fLock) - { - CLSID *pclsid; - - // First get the the CLSID of the current loaded object... - pclsid = m_pDocObjFrame->GetServerCLSID(); - - // If we already have a lock, determine if user is asking us to lock - // the same server (we only lock once for a given server type)... - if (m_pServerLock) - { - if (*(m_pServerLock->GetServerCLSID()) == *pclsid) - return S_FALSE; - - // If the current document is from a different server, free the old lock... - hr = SetTempServerLock(FALSE); - ASSERT(SUCCEEDED(hr)); // Sanity check in debug... - } - - // To lock the server, just make a dummy OLE object and don't ever site it... - m_pServerLock = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite); - hr = ((m_pServerLock) ? m_pServerLock->CreateDocObject(*pclsid) : E_OUTOFMEMORY); - if (SUCCEEDED(hr)) - { - hr = m_pServerLock->SetRunningServerLock(TRUE); - - // If we lock Excel, it steals focus from this host to the lock object, so we - // need to take it back so the real object isn't mixed up state... - if (SUCCEEDED(hr) && (m_pServerLock->IsExcelObject()) && (m_fAppActive)) - { - OnAppActivationChange(TRUE, 0); - } - } - else - { - delete m_pServerLock; - m_pServerLock = NULL; - } - - } - else if (m_pServerLock) - { - SEH_TRY - hr = m_pServerLock->SetRunningServerLock(FALSE); - hr = m_pServerLock->Close(); - SEH_EXCEPT(hr) - - ASSERT(SUCCEEDED(hr)); // Sanity check in debug... - delete m_pServerLock; - m_pServerLock = NULL; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ResetFrameHook -// -// Allows host to reset the frame hook. -// -STDMETHODIMP CDsoFramerControl::ResetFrameHook(HWND hwndFrameWindow) -{ - DWORD dwProcessId; - TRACE1("CDsoFramerControl::ResetFrameHook(%d)\n", hwndFrameWindow); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Verify that hwnd passed is a valid window handle and belogs to same thread - // as the control for parenting purposes... - if ((hwndFrameWindow) && (!IsWindow(hwndFrameWindow) || - (GetWindowThreadProcessId(hwndFrameWindow, &dwProcessId), dwProcessId != GetCurrentProcessId()))) - return E_INVALIDARG; - - // We must have a window already created for this to work... - if ((m_hwnd == NULL) || !IsWindow(m_hwnd) || - (m_hwndParent == NULL) || !IsWindow(m_hwndParent)) - return E_ACCESSDENIED; - - // Detach from the current window (removing that hook if this is the last component)... - if (m_pHookManager) - { - HRESULT hr = m_pHookManager->DetachComponent(m_hwnd); - if (FAILED(hr)) return hr; - m_pHookManager = NULL; - } - - // Now attach to the new parent window (or reattach based on the parent from our window)... - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl((hwndFrameWindow ? hwndFrameWindow : m_hwndParent), m_hwnd); - if (m_pHookManager == NULL) return E_FAIL; - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::RaiseActivationEvent -// -// Called to raise component change event on activation switch. -// -STDMETHODIMP_(void) CDsoFramerControl::RaiseActivationEvent(BOOL fActive) -{ - VARIANT rgargs[1]; rgargs[0].vt = VT_BOOL; - rgargs[0].boolVal = (fActive ? VARIANT_TRUE : VARIANT_FALSE); - RaiseAutomationEvent(DSOF_DISPID_ACTIVATE, 1, rgargs); - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ControlWindowProc -// -// The window proc for our control. -// -STDMETHODIMP_(LRESULT) CDsoFramerControl::ControlWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoFramerControl* pCtl = (CDsoFramerControl*)GetWindowLong(hwnd, GWL_USERDATA); - if (pCtl) - { - switch (msg) - { - case WM_PAINT: - { - // call the OnDraw routine. - PAINTSTRUCT ps; - RECT rc; - HDC hdc; - hdc = BeginPaint(hwnd, &ps); - GetClientRect(hwnd, &rc); - pCtl->OnDraw(DVASPECT_CONTENT, hdc, (RECT*)&rc, NULL, NULL, TRUE); - EndPaint(hwnd, &ps); - } - break; - - case WM_SIZE: - pCtl->OnResize(); - break; - - case WM_DESTROY: - pCtl->OnDestroyWindow(); - SetWindowLong(hwnd, GWL_USERDATA, 0); - break; - - case WM_SETFOCUS: - case WM_KILLFOCUS: - pCtl->OnCtrlFocusChange((BOOL)(msg == WM_SETFOCUS), (HWND)wParam); - break; - - case WM_MOUSEMOVE: - pCtl->OnMouseMove(LOWORD(lParam), HIWORD(lParam)); - break; - - case WM_LBUTTONDOWN: - pCtl->OnButtonDown(LOWORD(lParam), HIWORD(lParam)); - break; - - case DSO_WM_ASYNCH_OLECOMMAND: - ODS(" -- Got DSO_WM_ASYNCH_OLECOMMAND -- \n"); - pCtl->OnToolbarAction((DWORD)wParam); - break; - - case DSO_WM_ASYNCH_STATECHANGE: - TRACE1(" -- Got DSO_WM_ASYNCH_STATECHANGE %d --\n", wParam); - { - BOOL fCondition = (lParam != 0); - switch (wParam) - { - case DSO_STATE_MODAL: - pCtl->UpdateModalState(fCondition, FALSE); - break; - case DSO_STATE_ACTIVATION: - pCtl->RaiseActivationEvent(fCondition); - break; - case DSO_STATE_INTERACTIVE: - pCtl->UpdateInteractiveState(fCondition); - break; - case DSO_STATE_RETURNFROMMODAL: - { - if ((pCtl->m_fModalState == FALSE) && - (pCtl->m_fAppActive)) - { - pCtl->OnUIFocusChange(TRUE); - } - } - break; - - default: - ODS(" -- Unknown State Change!! --\n"); - break; - } - } - break; - - case DSO_WM_HOOK_NOTIFY_COMPACTIVE: - pCtl->OnComponentActivationChange((BOOL)wParam); - wParam = lParam; lParam = 0; - // falls through with wParam swapped... - - case DSO_WM_HOOK_NOTIFY_APPACTIVATE: - pCtl->OnAppActivationChange((BOOL)wParam, (DWORD)lParam); - break; - - case DSO_WM_HOOK_NOTIFY_SYNCPAINT: - pCtl->OnSyncPaint(); - break; - - case DSO_WM_HOOK_NOTIFY_PALETTECHANGE: - pCtl->OnPaletteChanged((HWND)wParam); - break; - - case WM_ENABLE: - pCtl->OnWindowEnable((BOOL)wParam); - break; - - case WM_MENUSELECT: - case WM_DRAWITEM: - case WM_MEASUREITEM: - case WM_ENTERIDLE: - case WM_INITMENU: - case WM_INITMENUPOPUP: - case WM_COMMAND: - pCtl->OnMenuMessage(msg, wParam, lParam); - break; - - case WM_DROPFILES: - pCtl->OnDropFile((HDROP)wParam); - break; - - case WM_TIMER: - pCtl->OnTimer((UINT)wParam); - break; - - case WM_SYSCOMMAND: - if ((wParam & 0xFFF0) == SC_KEYMENU) - { - if (pCtl->m_xDsoDocObjectSite.SysMenuCommand((UINT)lParam) == S_OK) - { - ODS(" -- Eat SC_KeyMenu message --\n"); - return 1; - } - } - // fall through to defwinproc... - - default: - return DefWindowProc(hwnd, msg, wParam, lParam); - - } - - return (LRESULT)0; - } - - return DefWindowProc(hwnd, msg, wParam, lParam); -} - -//////////////////////////////////////////////////////////////////////// -// -// OCX Interfaces for CDsoFramerControl -// -// NOTE: The automation interfaces are implemented in dsofauto.cpp. -// The interfaces that follow are largely the interfaces used by the -// OCX host for normal control containment. -// - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XInternalUnknown -- Internal IUnknown interface -// !!! Controls lifetime of CDsoFramerControl !!! -// -// STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); -// STDMETHODIMP_(ULONG) AddRef(void); -// STDMETHODIMP_(ULONG) Release(void); -// -STDMETHODIMP CDsoFramerControl::XInternalUnknown::QueryInterface(REFIID riid, void** ppv) -{ - // ODS("CDsoFramerControl::InternalQueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - HRESULT hr = S_OK; - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - - if (IID_IUnknown == riid) - { - *ppv = (IUnknown*)this; - } - else if ((IID_IDispatch == riid) || (IID__FramerControl == riid)) - { - *ppv = (_FramerControl*)pThis; - } - else if (IID_IOleObject == riid) - { - *ppv = (IOleObject*)&(pThis->m_xOleObject); - } - else if (IID_IOleControl == riid) - { - *ppv = (IOleControl*)&(pThis->m_xOleControl); - } - else if (IID_IPersistPropertyBag == riid) - { - *ppv = (IPersistPropertyBag*)&(pThis->m_xPersistPropertyBag); - } - else if ((IID_IPersistStreamInit == riid) || (IID_IPersistStream == riid) || (IID_IPersist == riid)) - { - *ppv = (IPersistStreamInit*)&(pThis->m_xPersistStreamInit); - } - else if ((IID_IOleInPlaceObject == riid) || (IID_IOleWindow == riid)) - { - *ppv = (IOleInPlaceObject*)&(pThis->m_xOleInplaceObject); - } - else if (IID_IOleInPlaceActiveObject == riid) - { - *ppv = (IOleInPlaceActiveObject*)&(pThis->m_xOleInplaceActiveObject); - } - else if ((IID_IViewObjectEx == riid) || (IID_IViewObject == riid) || (IID_IViewObject2 == riid)) - { - *ppv = (IViewObjectEx*)&(pThis->m_xViewObjectEx); - } - else if (IID_IDataObject == riid) - { - *ppv = (IDataObject*)&(pThis->m_xDataObject); - } - else if (IID_ISupportErrorInfo == riid) - { - *ppv = (ISupportErrorInfo*)&(pThis->m_xSupportErrorInfo); - } - else if (IID_IProvideClassInfo == riid) - { - *ppv = (IProvideClassInfo*)&(pThis->m_xProvideClassInfo); - } - else if (IID_IConnectionPointContainer == riid) - { - *ppv = (IConnectionPointContainer*)&(pThis->m_xConnectionPointContainer); - } - else if (IID_IConnectionPoint == riid) - { - *ppv = (IConnectionPoint*)&(pThis->m_xConnectionPoint); - } - else if (IID_IEnumConnectionPoints == riid) - { - *ppv = (IEnumConnectionPoints*)&(pThis->m_xEnumConnectionPoints); - } - else if (IID_IPersistStorage == riid) - { - *ppv = (IPersistStorage*)&(pThis->m_xPersistStorage); - } - else if (IID_IObjectSafety == riid) - { - *ppv = (IObjectSafety*)&(pThis->m_xObjectSafety); - } - else if (IID_IOleCommandTarget == riid) - { - *ppv = (IOleCommandTarget*)&(pThis->m_xOleCommandTarget); - } - else if ((IID_IDsoDocObjectSite == riid) || (IID_IServiceProvider == riid)) - { - *ppv = (IDsoDocObjectSite*)&(pThis->m_xDsoDocObjectSite); - } - else - { - *ppv = NULL; - hr = E_NOINTERFACE; - } - - if (NULL != *ppv) // AddRef those interfaces we will return... - ((IUnknown*)(*ppv))->AddRef(); - - return hr; -} - -STDMETHODIMP_(ULONG) CDsoFramerControl::XInternalUnknown::AddRef(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - //TRACE1("CDsoFramerControl::InternalAddRef - %d\n", (pThis->m_cRef + 1)); - return ++(pThis->m_cRef); -} - -STDMETHODIMP_(ULONG) CDsoFramerControl::XInternalUnknown::Release(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - //TRACE1("CDsoFramerControl::InternalRelease - %d\n", (pThis->m_cRef - 1)); - if (0 != --(pThis->m_cRef)) return (pThis->m_cRef); - ODS("CDsoFramerControl delete\n"); - InterlockedDecrement((LPLONG)&v_cLocks); - delete pThis; return 0; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistStreamInit -- IPersistStreamInit Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP IsDirty(void); -// STDMETHODIMP Load(LPSTREAM pStm); -// STDMETHODIMP Save(LPSTREAM pStm, BOOL fClearDirty); -// STDMETHODIMP GetSizeMax(ULARGE_INTEGER* pcbSize); -// STDMETHODIMP InitNew(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistStreamInit) - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistStreamInit::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::IsDirty(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::IsDirty\n"); - return (pThis->m_fDirty) ? S_OK : S_FALSE; -} - - -#define STREAMHDR_SIGNATURE_OLD 0x1234ABCD // Signature to identify our format (avoid crashes!) -#define STREAMHDR_SIGNATURE_NEW 0xD501D501 // Signature to identify our format (avoid crashes!) - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::Load(LPSTREAM pStm) -{ - HRESULT hr; - DWORD dwSig, dwT; - - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::Load\n"); - - // look for our header structure, so we can verify stream validity. - hr = pStm->Read(&dwSig, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if ((dwSig != STREAMHDR_SIGNATURE_NEW) && - (dwSig != STREAMHDR_SIGNATURE_OLD)) - return E_UNEXPECTED; - - // we like the stream. let's go load in our two properties. - hr = pStm->Read(&(pThis->m_Size), sizeof(SIZEL), NULL); - RETURN_ON_FAILURE(hr); - - DsoHimetricToPixels(&(pThis->m_Size.cx), &(pThis->m_Size.cy)); - - hr = pStm->Read(&(pThis->m_clrBorderColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrBackColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrForeColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrTBarColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrTBarTextColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_fBorderStyle = LOBYTE(LOWORD(dwT)); - pThis->m_fShowMenuBar = HIBYTE(LOWORD(dwT)); - pThis->m_fShowToolbars = LOBYTE(HIWORD(dwT)); - pThis->m_fShowTitlebar = HIBYTE(HIWORD(dwT)); - - hr = pStm->Read(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if (dwT) - { - LPWSTR pwsz = (LPWSTR)DsoMemAlloc(dwT+2); - if (pwsz) - { - hr = pStm->Read(pwsz, dwT, NULL); - if (SUCCEEDED(hr)) - pThis->m_bstrCustomCaption = SysAllocString(pwsz); - } - DsoMemFree(pwsz); - } - - // Read in new properties for 1.3 version control... - if (dwSig == STREAMHDR_SIGNATURE_NEW) - { - DWORD dwValue; - - hr = pStm->Read(&dwValue, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_lActivationPolicy = LOWORD(dwValue); - pThis->m_lHookPolicy = HIWORD(dwValue); - - hr = pStm->Read(&dwValue, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_fDisableMenuAccel = LOBYTE(LOWORD(dwT)); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::Save(LPSTREAM pStm, BOOL fClearDirty) -{ - HRESULT hr; - DWORD dwT, dwSig = STREAMHDR_SIGNATURE_NEW; - SIZEL slSize; - - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::Save\n"); - - // first thing to do is write out our stream sig... - hr = pStm->Write(&dwSig, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - // the only properties we're currently persisting here are the size - // properties for this control. make sure we do that in HiMetric - slSize = pThis->m_Size; - DsoPixelsToHimetric(&(slSize.cx), &(slSize.cy)); - - hr = pStm->Write(&slSize, sizeof(SIZEL), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrBorderColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrBackColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrForeColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrTBarColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrTBarTextColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - dwT = (DWORD)MAKELONG( - MAKEWORD((BYTE)(pThis->m_fBorderStyle), (BYTE)(pThis->m_fShowMenuBar)), - MAKEWORD((BYTE)(pThis->m_fShowToolbars), (BYTE)(pThis->m_fShowTitlebar))); - - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - dwT = 0; - if (pThis->m_bstrCustomCaption) - dwT = SysStringByteLen(pThis->m_bstrCustomCaption); - - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if (dwT) - { - hr = pStm->Write(pThis->m_bstrCustomCaption, dwT, NULL); - RETURN_ON_FAILURE(hr); - } - - // Version 1.3 added properties... - dwT = (DWORD)MAKELONG((WORD)(pThis->m_lActivationPolicy), (WORD)(pThis->m_lHookPolicy)); - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - dwT = (DWORD)MAKELONG(MAKEWORD((BYTE)(pThis->m_fDisableMenuAccel), 0), 0); - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - // clear out dirty flag and notify that we're done with save. - if (fClearDirty) - pThis->m_fDirty = FALSE; - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnSave(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::GetSizeMax(ULARGE_INTEGER *pcbSize) -{ - ODS("CDsoFramerControl::XPersistStreamInit::GetSizeMax\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::InitNew(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::InitNew\n"); - // If we are new control, we are dirty by default... - pThis->m_fDirty = TRUE; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistPropertyBag -- IPersistPropertyBag Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP InitNew(); -// STDMETHODIMP Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog); -// STDMETHODIMP Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistPropertyBag) - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistPropertyBag::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::InitNew() -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::InitNew\n"); - return pThis->m_xPersistStreamInit.InitNew(); -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog) -{ - VARIANT v; - HRESULT hr; - SIZEL sl = {5000, 3000}; - - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::Load\n"); - - v.vt = VT_I4; - v.lVal = 0; - - hr = pPropBag->Read(L"_ExtentX", &v, pErrorLog); - if (SUCCEEDED(hr)){sl.cx = v.lVal;} - - v.lVal = 0; - hr = pPropBag->Read(L"_ExtentY", &v, pErrorLog); - if (SUCCEEDED(hr)){sl.cy = v.lVal;} - - DsoHimetricToPixels(&(sl.cx), &(sl.cy)); - pThis->m_Size = sl; - - hr = pPropBag->Read(L"Titlebar", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowTitlebar = v.boolVal;} - - hr = pPropBag->Read(L"Toolbars", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowToolbars = v.boolVal;} - - hr = pPropBag->Read(L"BorderStyle", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fBorderStyle = v.lVal;} - - hr = pPropBag->Read(L"BorderColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrBorderColor = v.lVal;} - - hr = pPropBag->Read(L"BackColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrBackColor = v.lVal;} - - hr = pPropBag->Read(L"ForeColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrForeColor = v.lVal;} - - hr = pPropBag->Read(L"TitlebarColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrTBarColor = v.lVal;} - - hr = pPropBag->Read(L"TitlebarTextColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrTBarTextColor = v.lVal;} - - hr = pPropBag->Read(L"Caption", &v, pErrorLog); - if (SUCCEEDED(hr)) - { - LPWSTR pwsz = LPWSTR_FROM_VARIANT(v); - if (pwsz) pThis->m_bstrCustomCaption = SysAllocString(pwsz); - VariantClear(&v); - } - - pThis->m_fShowMenuBar = FALSE; - hr = pPropBag->Read(L"Menubar", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowMenuBar = BOOL_FROM_VARIANT(v, FALSE);} - - hr = pPropBag->Read(L"ActivationPolicy", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_lActivationPolicy = LONG_FROM_VARIANT(v, 0);} - - hr = pPropBag->Read(L"FrameHookPolicy", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_lHookPolicy = LONG_FROM_VARIANT(v, 0);} - - hr = pPropBag->Read(L"MenuAccelerators", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fDisableMenuAccel = !BOOL_FROM_VARIANT(v, TRUE);} - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) -{ - HRESULT hr; - VARIANT v; - SIZEL sl; - - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::Save\n"); - - sl = pThis->m_Size; - DsoPixelsToHimetric(&(sl.cx), &(sl.cy)); - - v.vt = VT_I4; v.lVal = sl.cx; - hr = pPropBag->Write(L"_ExtentX", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = sl.cy; - hr = pPropBag->Write(L"_ExtentY", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrBorderColor; - hr = pPropBag->Write(L"BorderColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrBackColor; - hr = pPropBag->Write(L"BackColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrForeColor; - hr = pPropBag->Write(L"ForeColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrTBarColor; - hr = pPropBag->Write(L"TitlebarColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrTBarTextColor; - hr = pPropBag->Write(L"TitlebarTextColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_fBorderStyle; - hr = pPropBag->Write(L"BorderStyle", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_BOOL; v.boolVal = pThis->m_fShowTitlebar; - hr = pPropBag->Write(L"Titlebar", &v); - RETURN_ON_FAILURE(hr); - - v.boolVal = pThis->m_fShowToolbars; - hr = pPropBag->Write(L"Toolbars", &v); - RETURN_ON_FAILURE(hr); - - if (pThis->m_bstrCustomCaption) - { - v.vt = VT_BSTR; v.bstrVal = pThis->m_bstrCustomCaption; - hr = pPropBag->Write(L"Caption", &v); - RETURN_ON_FAILURE(hr); - } - - v.vt = VT_BOOL; v.boolVal = pThis->m_fShowMenuBar; - hr = pPropBag->Write(L"Menubar", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_I4; v.lVal = pThis->m_lActivationPolicy; - hr = pPropBag->Write(L"ActivationPolicy", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_I4; v.lVal = pThis->m_lHookPolicy; - hr = pPropBag->Write(L"FrameHookPolicy", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_BOOL; v.boolVal = !(pThis->m_fDisableMenuAccel); - hr = pPropBag->Write(L"MenuAccelerators", &v); - RETURN_ON_FAILURE(hr); - - // now clear the dirty flag and send out notification - // that we're done. - if (fClearDirty) - pThis->m_fDirty = FALSE; - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnSave(); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistStorage -- IPersistStorage Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP IsDirty(void); -// STDMETHODIMP InitNew(LPSTORAGE pStg); -// STDMETHODIMP Load(LPSTORAGE pStg); -// STDMETHODIMP Save(LPSTORAGE pStg, BOOL fSameAsLoad); -// STDMETHODIMP SaveCompleted(LPSTORAGE pStg); -// STDMETHODIMP HandsOffStorage(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistStorage) - -STDMETHODIMP CDsoFramerControl::XPersistStorage::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistStorage::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::IsDirty(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::IsDirty\n"); - return (pThis->m_fDirty) ? S_OK : S_FALSE; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::InitNew(LPSTORAGE pStg) -{ - HRESULT hr; - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::InitNew\n"); - - CHECK_NULL_RETURN(pStg, E_POINTER); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - - hr = pThis->m_xPersistStreamInit.InitNew(); - if (SUCCEEDED(hr)) - { SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); }; - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::Load(LPSTORAGE pStg) -{ - HRESULT hr; - IStream* pstm; - DWORD dwStmMode = (STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE); - - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::Load\n"); - - CHECK_NULL_RETURN(pStg, E_POINTER); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - - hr = pStg->OpenStream(L"DsoFrameCtlContents", 0, dwStmMode, 0, &pstm); - if (SUCCEEDED(hr) && (pstm)) - { - hr = pThis->m_xPersistStreamInit.Load(pstm); - if (SUCCEEDED(hr)) - { SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); }; - - pstm->Release(); - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::Save(LPSTORAGE pStg, BOOL fSameAsLoad) -{ - HRESULT hr; - IStream* pstm; - DWORD dwStmMode = (STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE); - - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::Save\n"); - - if (fSameAsLoad) - { - if ((pThis->m_pOleStorage == NULL) || - ((pStg) && (pStg != pThis->m_pOleStorage))) - { - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); - } - - CHECK_NULL_RETURN(pThis->m_pOleStorage, E_POINTER); - pStg = pThis->m_pOleStorage; - } - - CHECK_NULL_RETURN(pStg, E_POINTER); - - hr = pStg->OpenStream(L"DsoFrameCtlContents", 0, dwStmMode, 0, &pstm); - if (hr == STG_E_FILENOTFOUND) - hr = pStg->CreateStream(L"DsoFrameCtlContents", dwStmMode, 0, 0, &pstm); - - if (SUCCEEDED(hr) && (pstm)) - { - hr = pThis->m_xPersistStreamInit.Save(pstm, FALSE); - pstm->Release(); - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::SaveCompleted(LPSTORAGE pStg) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::SaveCompleted\n"); - pThis->m_fDirty = FALSE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::HandsOffStorage(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::HandsOffStorage\n"); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleObject -- IOleObject Implementation -// -// STDMETHODIMP SetClientSite(IOleClientSite *pClientSite); -// STDMETHODIMP GetClientSite(IOleClientSite **ppClientSite); -// STDMETHODIMP SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj); -// STDMETHODIMP Close(DWORD dwSaveOption); -// STDMETHODIMP SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk); -// STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk); -// STDMETHODIMP InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved); -// STDMETHODIMP GetClipboardData(DWORD dwReserved, IDataObject **ppDataObject); -// STDMETHODIMP DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect); -// STDMETHODIMP EnumVerbs(IEnumOleVerb **ppEnumOleVerb); -// STDMETHODIMP Update(); -// STDMETHODIMP IsUpToDate(); -// STDMETHODIMP GetUserClassID(CLSID *pClsid); -// STDMETHODIMP GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType); -// STDMETHODIMP SetExtent(DWORD dwDrawAspect, SIZEL *psizel); -// STDMETHODIMP GetExtent(DWORD dwDrawAspect, SIZEL *psizel); -// STDMETHODIMP Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection); -// STDMETHODIMP Unadvise(DWORD dwConnection); -// STDMETHODIMP EnumAdvise(IEnumSTATDATA **ppenumAdvise); -// STDMETHODIMP GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus); -// STDMETHODIMP SetColorScheme(LOGPALETTE *pLogpal); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleObject) - -STDMETHODIMP CDsoFramerControl::XOleObject::SetClientSite(IOleClientSite *pClientSite) -{ - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::SetClientSite\n"); - - SAFE_RELEASE_INTERFACE(pThis->m_pClientSite); - SAFE_RELEASE_INTERFACE(pThis->m_pControlSite); - - // store away the new client site - pThis->m_pClientSite = pClientSite; - - // if we've actually got one, then get some other interfaces we want to keep - // around, and keep a handle on it - if (pClientSite) - { - pClientSite->AddRef(); - pClientSite->QueryInterface(IID_IOleControlSite, (void **)&(pThis->m_pControlSite)); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetClientSite(IOleClientSite **ppClientSite) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::GetClientSite\n"); - if (ppClientSite) { SAFE_SET_INTERFACE(*ppClientSite, pThis->m_pClientSite); } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetHostNames(LPCOLESTR /*szContainerApp*/, LPCOLESTR /*szContainerObj*/) -{ - ODS("CDsoFramerControl::XOleObject::SetHostNames\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Close(DWORD dwSaveOption) -{ - HRESULT hr; - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Close\n"); - - if (pThis->m_fInPlaceActive) - { - hr = pThis->m_xOleInplaceObject.InPlaceDeactivate(); - RETURN_ON_FAILURE(hr); - } - - // handle the save flag. - if ((pThis->m_fDirty) && (pThis->m_pClientSite) && - (dwSaveOption == OLECLOSE_SAVEIFDIRTY || - dwSaveOption == OLECLOSE_PROMPTSAVE)) - { - pThis->m_pClientSite->SaveObject(); - } - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnClose(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk) -{ - ODS("CDsoFramerControl::XOleObject::SetMoniker\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk) -{ - ODS("CDsoFramerControl::XOleObject::GetMoniker\n"); - if (ppmk) *ppmk = NULL; - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved) -{ - ODS("CDsoFramerControl::XOleObject::InitFromData\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetClipboardData(DWORD /*dwReserved*/, IDataObject **ppDataObject) -{ - ODS("CDsoFramerControl::XOleObject::GetClipboardData\n"); - if (ppDataObject) *ppDataObject = NULL; - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::DoVerb\n"); - - switch (iVerb) - { - case OLEIVERB_PRIMARY: - case OLEIVERB_SHOW: - case OLEIVERB_INPLACEACTIVATE: - case OLEIVERB_UIACTIVATE: - return pThis->InPlaceActivate(iVerb); - - case OLEIVERB_HIDE: - pThis->m_xOleInplaceObject.UIDeactivate(); - if (pThis->m_fInPlaceVisible) - pThis->SetInPlaceVisible(FALSE); - return S_OK; - } - - return OLEOBJ_S_INVALIDVERB; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::EnumVerbs(IEnumOLEVERB **ppEnumOleVerb) -{ - ODS("CDsoFramerControl::XOleObject::EnumVerbs\n"); - return OleRegEnumVerbs(CLSID_FramerControl, ppEnumOleVerb); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Update() -{ - ODS("CDsoFramerControl::XOleObject::Update\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::IsUpToDate() -{ - ODS("CDsoFramerControl::XOleObject::IsUpToDate\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetUserClassID(CLSID *pClsid) -{ - ODS("CDsoFramerControl::XOleObject::GetUserClassID\n"); - if (pClsid) *pClsid = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType) -{ - ODS("CDsoFramerControl::XOleObject::GetUserType\n"); - return OleRegGetUserType(CLSID_FramerControl, dwFormOfType, pszUserType); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetExtent(DWORD dwDrawAspect, SIZEL *psizel) -{ - SIZEL sl; - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::SetExtent\n"); - - CHECK_NULL_RETURN(psizel, E_POINTER); - sl = *psizel; - - // we don't support any other aspects. - if (!(dwDrawAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - // change the units to pixels, and resize the control. - DsoHimetricToPixels(&(sl.cx), &(sl.cy)); - - // if the size already matches the extents, then don't do anything - // and don't mark the control dirty. - if (sl.cx != pThis->m_Size.cx || sl.cy != pThis->m_Size.cy) - { - pThis->m_Size = sl; - pThis->m_fDirty = TRUE; // changing size should dirty - - if (pThis->m_fInPlaceActive) - { - RECT rect; - - // Use OnPosRectChange for older OCX containters and Access - // who just refuses to get with the times (like me )... - GetWindowRect(pThis->m_hwnd, &rect); - MapWindowPoints(NULL, pThis->m_hwndParent, (LPPOINT)&rect, 2); - rect.right = rect.left + sl.cx; - rect.bottom = rect.top + sl.cy; - pThis->m_pInPlaceSite->OnPosRectChange(&rect); - - // Resize the window based on the new size... - SetWindowPos(pThis->m_hwnd, NULL, 0, 0, sl.cx, sl.cy, - SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); - } - else pThis->ViewChanged(); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetExtent(DWORD dwDrawAspect, SIZEL *psizel) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::GetExtent\n"); - - CHECK_NULL_RETURN(psizel, E_POINTER); - - if (!(dwDrawAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - *psizel = pThis->m_Size; - DsoPixelsToHimetric(&(psizel->cx), &(psizel->cy)); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Advise\n"); - - if (NULL == pThis->m_pOleAdviseHolder) - { - if (FAILED(CreateOleAdviseHolder(&(pThis->m_pOleAdviseHolder)))) - return E_FAIL; - } - return pThis->m_pOleAdviseHolder->Advise(pAdvSink, pdwConnection); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Unadvise(DWORD dwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Unadvise\n"); - - CHECK_NULL_RETURN(pThis->m_pOleAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pOleAdviseHolder->Unadvise(dwConnection); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::EnumAdvise(IEnumSTATDATA **ppenumAdvise) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::EnumAdvise\n"); - - CHECK_NULL_RETURN(ppenumAdvise, E_POINTER); - *ppenumAdvise = NULL; - - CHECK_NULL_RETURN(pThis->m_pOleAdviseHolder, E_FAIL); - return pThis->m_pOleAdviseHolder->EnumAdvise(ppenumAdvise); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus) -{ - ODS("CDsoFramerControl::XOleObject::GetMiscStatus\n"); - - if (dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; - - if (pdwStatus) - *pdwStatus = OLEMISC_SETCLIENTSITEFIRST | - OLEMISC_ACTIVATEWHENVISIBLE | - OLEMISC_RECOMPOSEONRESIZE | - OLEMISC_CANTLINKINSIDE | - OLEMISC_INSIDEOUT; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetColorScheme(LOGPALETTE *pLogpal) -{ - ODS("CDsoFramerControl::XOleObject::SetColorScheme\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleControl -- IOleControl Implementation -// -// STDMETHODIMP GetControlInfo(CONTROLINFO* pCI); -// STDMETHODIMP OnMnemonic(LPMSG pMsg); -// STDMETHODIMP OnAmbientPropertyChange(DISPID dispID); -// STDMETHODIMP FreezeEvents(BOOL bFreeze); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleControl) - -STDMETHODIMP CDsoFramerControl::XOleControl::GetControlInfo(CONTROLINFO* pCI) -{ - ODS("CDsoFramerControl::XOleControl::GetControlInfo\n"); - CHECK_NULL_RETURN(pCI, E_POINTER); - pCI->hAccel = NULL; pCI->cAccel = 0; pCI->dwFlags = 0; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleControl::OnMnemonic(LPMSG pMsg) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - ODS("CDsoFramerControl::XOleControl::OnMnemonic\n"); - return pThis->InPlaceActivate(OLEIVERB_UIACTIVATE); -} - -STDMETHODIMP CDsoFramerControl::XOleControl::OnAmbientPropertyChange(DISPID dispID) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - ODS("CDsoFramerControl::XOleControl::OnAmbientPropertyChange\n"); - - // We keep track of state changes in design/run modes... - if (dispID == DISPID_AMBIENT_USERMODE || dispID == DISPID_UNKNOWN) - pThis->m_fModeFlagValid = FALSE; - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleControl::FreezeEvents(BOOL bFreeze) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - TRACE1("CDsoFramerControl::XOleControl::FreezeEvents = %s\n", (bFreeze ? "TRUE" : "FALSE")); - pThis->m_fFreezeEvents = bFreeze; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleInplaceObject -- IOleInplaceObject Implementation -// -// STDMETHODIMP GetWindow(HWND *phwnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP InPlaceDeactivate(); -// STDMETHODIMP UIDeactivate(); -// STDMETHODIMP SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect); -// STDMETHODIMP ReactivateAndUndo(); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleInplaceObject) - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::GetWindow(HWND *phwnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::GetWindow\n"); - if (!(pThis->m_fInPlaceActive)) return E_FAIL; - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::ContextSensitiveHelp(BOOL /*fEnterMode*/) -{ - ODS("CDsoFramerControl::XOleInplaceObject::ContextSensitiveHelp\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::InPlaceDeactivate() -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::InPlaceDeactivate\n"); - - // if we're not in-place active yet, then this is easy. - if (!(pThis->m_fInPlaceActive)) - return S_OK; - - // transition from UIActive back to active - if (pThis->m_fUIActive) - UIDeactivate(); - - // tell the host we're going away - pThis->m_pInPlaceSite->OnInPlaceDeactivate(); - - pThis->m_fInPlaceActive = FALSE; - pThis->m_fInPlaceVisible = FALSE; - - // if we have a window, tell it to go away. - if (pThis->m_hwnd) - {DestroyWindow(pThis->m_hwnd); pThis->m_hwnd = NULL;} - - SAFE_RELEASE_INTERFACE(pThis->m_pInPlaceFrame); - SAFE_RELEASE_INTERFACE(pThis->m_pInPlaceUIWindow); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::UIDeactivate() -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::UIDeactivate\n"); - - // if we're not UIActive, not much to do. - if (!(pThis->m_fUIActive)) - return S_OK; - - pThis->m_fUIActive = FALSE; - - // notify frame windows, if appropriate, that we're no longer ui-active. - if (pThis->m_pInPlaceUIWindow) - pThis->m_pInPlaceUIWindow->SetActiveObject(NULL, NULL); - - if (pThis->m_pInPlaceFrame) - pThis->m_pInPlaceFrame->SetActiveObject(NULL, NULL); - - pThis->OnUIFocusChange(FALSE); - - // we don't need to explicitly release the focus here since somebody - // else grabbing the focus is what is likely to cause us to get lose it - pThis->m_pInPlaceSite->OnUIDeactivate(FALSE); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect) -{ - RECT rcIXect; - - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::SetObjectRects\n"); - - // move our window to the new location and handle clipping. - if (pThis->m_hwnd) - { - // if asked to clip the window, we'll use a clip region... - if ((lprcClipRect) && (IntersectRect(&rcIXect, lprcPosRect, lprcClipRect)) && - (!EqualRect(&rcIXect, lprcPosRect))) - { - OffsetRect(&rcIXect, -(lprcPosRect->left), -(lprcPosRect->top)); - SetWindowRgn(pThis->m_hwnd, CreateRectRgnIndirect(&rcIXect), TRUE); - pThis->m_fUsingWindowRgn = TRUE; - } - else if (pThis->m_fUsingWindowRgn) - { - SetWindowRgn(pThis->m_hwnd, NULL, TRUE); - pThis->m_fUsingWindowRgn = FALSE; - } - - // set our control's location, but don't change it's size at all - // [people for whom zooming is important should set that up here] - SetWindowPos(pThis->m_hwnd, NULL, lprcPosRect->left, lprcPosRect->top, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); - } - - // save out our current location. - pThis->m_rcLocation = *lprcPosRect; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::ReactivateAndUndo() -{ - ODS("CDsoFramerControl::XOleInplaceObject::ReactivateAndUndo\n"); - return E_NOTIMPL; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleInplaceActiveObject -- IOleInplaceActiveObject Implementation -// -// STDMETHODIMP GetWindow(HWND *phwnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP TranslateAccelerator(LPMSG lpmsg); -// STDMETHODIMP OnFrameWindowActivate(BOOL fActivate); -// STDMETHODIMP OnDocWindowActivate(BOOL fActivate); -// STDMETHODIMP ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow); -// STDMETHODIMP EnableModeless(BOOL fEnable); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleInplaceActiveObject) - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::GetWindow(HWND *phwnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - ODS("CDsoFramerControl::XOleInplaceActiveObject::GetWindow\n"); - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::ContextSensitiveHelp(BOOL /*fEnterMode*/) -{ - ODS("CDsoFramerControl::XOleInplaceActiveObject::ContextSensitiveHelp\n"); - return E_NOTIMPL; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator -// -// We handle certain keys as accelerators, but only if host does not -// implement it itself, and only when no document is open. The reason -// why is due to two factors: -// -// (1) When an out-of-proc AxDoc server is embedded and has focus, -// its thread (not ours) gets the accel keys. Word/PPT will treat -// these for us and contact us through IOleCommandTarget, so -// we don't want to handle them if AxDoc is handling them for us. -// -// (2) We cannot know if a given host uses the same accel keys for -// other tasks, and we don't want to impose ours on a host. By -// explicitly asking host to handle it first, we should be able -// to avoid any conflicts, and give developer a change to override -// our handler as needed. -// -static short _SpecialKeyState() -{ - BOOL bShift = (GetKeyState(VK_SHIFT) < 0); - BOOL bCtrl = (GetKeyState(VK_CONTROL) < 0); - BOOL bAlt = (GetKeyState(VK_MENU) < 0); - return (short)(bShift + (bCtrl << 1) + (bAlt << 2)); -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator(LPMSG lpmsg) -{ - HRESULT hr = S_FALSE; - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - CHECK_NULL_RETURN(lpmsg, E_POINTER); - TRACE2("CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator(msg=%d, wparam=%d)\n", lpmsg->message, lpmsg->wParam); - - // Forward it back to the site for processing on its side... - if (pThis->m_pControlSite) - { - hr = pThis->m_pControlSite->TranslateAccelerator(lpmsg, _SpecialKeyState()); - if (hr == S_OK) return S_OK; // If site handled it, nothing else we need to do.. - } - - if ((GetKeyState(VK_CONTROL) < 0) && (!(pThis->m_fModalState)) && - (lpmsg->message == WM_KEYUP) && (!(pThis->m_pDocObjFrame))) - { - TRACE1(" Handle Accelerator? (%d)\n", lpmsg->wParam); - switch (lpmsg->wParam) // Looking for Ctrl+N and Ctrl+O keys... - { - case 0x4E: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_NEW, 0); hr = S_OK; break; - case 0x4F: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_OPEN, 0); hr = S_OK; break; - case 0x53: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_SAVE, 0); hr = S_OK; break; - } - } - - // we didn't want it. - return hr; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::OnFrameWindowActivate(BOOL fActivate) -{ - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::OnFrameWindowActivate - %d\n", fActivate); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::OnDocWindowActivate(BOOL fActivate) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::OnDocWindowActivate - %d\n", fActivate); - - if (pThis->m_fUIActive && fActivate && pThis->m_pInPlaceFrame) - pThis->m_pInPlaceFrame->SetBorderSpace(NULL); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow) -{ - ODS("CDsoFramerControl::XOleInplaceActiveObject::ResizeBorder\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::EnableModeless(BOOL fEnable) -{ - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::EnableModeless(%d)\n", fEnable); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XViewObjectEx -- IViewObjectEx Implementation -// -// STDMETHODIMP Draw(DWORD dwAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, HDC hdcDraw, const LPRECTL lprcBounds, const LPRECTL lprcWBounds, BOOL(*)(DWORD)pfnContinue, DWORD dwContinue); -// STDMETHODIMP GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet); -// STDMETHODIMP Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze); -// STDMETHODIMP Unfreeze(DWORD dwFreeze); -// STDMETHODIMP SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdvSink); -// STDMETHODIMP GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdvSink); -// STDMETHODIMP GetExtent(DWORD dwAspect, DWORD lindex, DVTARGETDEVICE ptd, LPSIZEL lpsizel); -// STDMETHODIMP GetRect(DWORD dwAspect, LPRECTL pRect); -// STDMETHODIMP GetViewStatus(DWORD* pdwStatus); -// STDMETHODIMP QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult); -// STDMETHODIMP QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult); -// STDMETHODIMP GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ViewObjectEx) - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Draw(DWORD dwDrawAspect, LONG lIndex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDevice, HDC hdcDraw, LPCRECTL prcBounds, LPCRECTL prcWBounds, BOOL (__stdcall *pfnContinue)(DWORD dwContinue), DWORD dwContinue) -{ - RECT rc; - int iMode = 0; - POINT pVp = {0,0}; - POINT pW = {0,0}; - BOOL fOptimize = FALSE; - BOOL fMetafile = FALSE; - - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::Draw\n"); - - if (!((dwDrawAspect == DVASPECT_CONTENT) || - (dwDrawAspect == DVASPECT_OPAQUE))) - return DV_E_DVASPECT; - - SaveDC(hdcDraw); - - // first, have to do a little bit to support printing. - if (GetDeviceCaps(hdcDraw, TECHNOLOGY) == DT_METAFILE) - { - // We are dealing with a metafile. - fMetafile = TRUE; - } -/* - // check to see if we have any flags passed in the pvAspect parameter. - if (pvAspect && ((DVASPECTINFO *)pvAspect)->cb == sizeof(DVASPECTINFO)) - fOptimize = (((DVASPECTINFO *)pvAspect)->dwFlags & DVASPECTINFOFLAG_CANOPTIMIZE) ? TRUE : FALSE; -*/ - // Get the draw rect, if they didn't give us one, just copy over ours - memcpy(&rc, ((prcBounds) ? (RECT*)prcBounds : &(pThis->m_rcLocation)), sizeof(RECT)); - - if (!fMetafile) - { - LPtoDP(hdcDraw, (POINT*)&rc, 2); - SetViewportOrgEx(hdcDraw, 0, 0, &pVp); - SetWindowOrgEx(hdcDraw, 0, 0, &pW); - iMode = SetMapMode(hdcDraw, MM_TEXT); - } - - // prcWBounds is NULL and not used if we are not dealing with a metafile. - // For metafiles, we pass on rc as *prcBounds, we should also include prcWBounds - pThis->OnDraw(dwDrawAspect, hdcDraw, &rc, (RECT*)prcWBounds, hicTargetDevice, fOptimize); - - // clean up the DC when we're done with it, if appropriate. - if (!fMetafile) - { - SetViewportOrgEx(hdcDraw, pVp.x, pVp.y, NULL); - SetWindowOrgEx(hdcDraw, pW.x, pW.y, NULL); - SetMapMode(hdcDraw, iMode); - } - - RestoreDC(hdcDraw, -1); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetColorSet\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze) -{ - ODS("CDsoFramerControl::XViewObjectEx::Freeze\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Unfreeze(DWORD dwFreeze) -{ - ODS("CDsoFramerControl::XViewObjectEx::Unfreeze\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdviseSink) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::SetAdvise\n"); - - // if it's not a content aspect, we don't support it. - if (!(dwAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - // set up some flags [we gotta stash for GetAdvise ...] - pThis->m_fViewAdvisePrimeFirst = (advf & ADVF_PRIMEFIRST) ? TRUE : FALSE; - pThis->m_fViewAdviseOnlyOnce = (advf & ADVF_ONLYONCE) ? TRUE : FALSE; - - SAFE_RELEASE_INTERFACE(pThis->m_pViewAdviseSink); - SAFE_SET_INTERFACE(pThis->m_pViewAdviseSink, pAdviseSink); - - // prime them if they want it [we need to store this so they can get flags later] - if (pThis->m_fViewAdvisePrimeFirst) - pThis->ViewChanged(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdviseSink) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetAdvise\n"); - - if (pdwAspect) - *pdwAspect = DVASPECT_CONTENT; - - if (padvf) - { - *padvf = 0; - if (pThis->m_fViewAdviseOnlyOnce) *padvf |= ADVF_ONLYONCE; - if (pThis->m_fViewAdvisePrimeFirst) *padvf |= ADVF_PRIMEFIRST; - } - - if (ppAdviseSink) - { SAFE_SET_INTERFACE(*ppAdviseSink, pThis->m_pViewAdviseSink); } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE *ptd, LPSIZEL psizel) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetExtent\n"); - return pThis->m_xOleObject.GetExtent(dwDrawAspect, psizel); -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetRect(DWORD dwAspect, LPRECTL pRect) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetRect\n"); - - if (dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; - - if (pRect) - { - CopyRect((LPRECT)pRect, &(pThis->m_rcLocation)); - // Convert to himetric (according to docs, this is required) - DsoPixelsToHimetric(&(pRect->left), &(pRect->top)); - DsoPixelsToHimetric(&(pRect->right), &(pRect->bottom)); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetViewStatus(DWORD* pdwStatus) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetViewStatus\n"); - if (pdwStatus) *pdwStatus = VIEWSTATUS_OPAQUE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult) -{ - // ODS("CDsoFramerControl::XViewObjectEx::QueryHitPoint\n"); - if (dwAspect != DVASPECT_CONTENT) return DV_E_DVASPECT; - CHECK_NULL_RETURN(pHitResult, E_POINTER); - *pHitResult = PtInRect(pRectBounds, ptlLoc) ? HITRESULT_HIT : HITRESULT_OUTSIDE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult) -{ - RECT rc; - //ODS("CDsoFramerControl::XViewObjectEx::QueryHitRect\n"); - if (dwAspect != DVASPECT_CONTENT) return DV_E_DVASPECT; - *pHitResult = IntersectRect(&rc, pRectBounds, pRectLoc) ? HITRESULT_HIT : HITRESULT_OUTSIDE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetNaturalExtent\n"); - return E_NOTIMPL; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XDataObject -- IDataObject Implementation -// -// STDMETHODIMP Draw(DWORD dwAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, HDC hdcDraw, const LPRECTL lprcBounds, const LPRECTL lprcWBounds, BOOL(*)(DWORD)pfnContinue, DWORD dwContinue); -// STDMETHODIMP GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm); -// STDMETHODIMP GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm); -// STDMETHODIMP QueryGetData(FORMATETC *pfmtc); -// STDMETHODIMP GetCanonicalFormatEtc(FORMATETC *pfmtcIn, FORMATETC *pfmtcOut); -// STDMETHODIMP SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease); -// STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum); -// STDMETHODIMP DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection); -// STDMETHODIMP DUnadvise(DWORD dwConnection); -// STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppenum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, DataObject) - -STDMETHODIMP CDsoFramerControl::XDataObject::GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm) -{ - HRESULT hr; - HMETAFILE hwmf; - LPMETAFILEPICT pwmf; - HGLOBAL hmem; - SIZE sizeMetric; - RECT rc; - HDC hdc; - - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - TRACE2("CDsoFramerControl::XDataObject::GetData(%d,%d)\n", pfmtc->cfFormat, pfmtc->tymed); - CHECK_NULL_RETURN(pfmtc, E_POINTER); CHECK_NULL_RETURN(pstgm, E_POINTER); - - // Confirm data requested is a supportted type... - if (FAILED(hr = QueryGetData(pfmtc))) - return hr; - - // If caller wants a metafile of the current object, draw it... - hdc = CreateMetaFileW(NULL); - - sizeMetric.cx = pThis->m_Size.cx; - sizeMetric.cy = pThis->m_Size.cy; - - SetRect(&rc, 0, 0, sizeMetric.cx, sizeMetric.cy); - DsoPixelsToHimetric(&(sizeMetric.cx), &(sizeMetric.cy)); - sizeMetric.cy = -(sizeMetric.cy); - - SetMapMode(hdc, MM_ANISOTROPIC); - SetWindowOrgEx(hdc, 0, 0, NULL); - SetWindowExtEx(hdc, rc.right, rc.bottom, NULL); - - // Delegate to same IViewObject::Draw used by most containers for metafile... - hr = pThis->m_xViewObjectEx.Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, hdc, (RECTL*)&rc, NULL, NULL, 0); - ASSERT(SUCCEEDED(hr)); - - if ((hwmf = CloseMetaFile(hdc)) == NULL) - return E_UNEXPECTED; - - // Now allocate the transfer medium and set the metafile... - hmem = GlobalAlloc((GMEM_SHARE|GMEM_MOVEABLE), sizeof(METAFILEPICT)); - if (hmem == NULL) { DeleteMetaFile(hwmf); return STG_E_MEDIUMFULL; } - - pwmf = (LPMETAFILEPICT)GlobalLock(hmem); - if (pwmf) - { - pwmf->hMF = hwmf; - pwmf->mm = MM_ANISOTROPIC; - pwmf->xExt = sizeMetric.cx; - pwmf->yExt = sizeMetric.cy; - GlobalUnlock(hmem); - } - - pstgm->tymed = TYMED_MFPICT; - pstgm->hGlobal = hmem; - pstgm->pUnkForRelease = NULL; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm) -{ - ODS("CDsoFramerControl::XDataObject::GetDataHere\n"); - return DV_E_FORMATETC; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::QueryGetData(FORMATETC *pfmtc) -{ - TRACE2("CDsoFramerControl::XDataObject::QueryGetData(%d,%d)\n", pfmtc->cfFormat, pfmtc->tymed); - CHECK_NULL_RETURN(pfmtc, E_POINTER); - - if (pfmtc->cfFormat != CF_METAFILEPICT) - return DV_E_FORMATETC; // We only support WMF for IDataObj presentation. - - if (pfmtc->tymed != TYMED_MFPICT) - return DV_E_TYMED; // It better be in in right format... - - if (pfmtc->dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; // We only do content (not thumbnail or partial)... - - return S_OK; // If here, it looks fine to us... -} - -STDMETHODIMP CDsoFramerControl::XDataObject::GetCanonicalFormatEtc(FORMATETC *pfmtcIn, FORMATETC *pfmtcOut) -{ - ODS("CDsoFramerControl::XDataObject::GetCanonicalFormatEtc\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease) -{ - ODS("CDsoFramerControl::XDataObject::SetData\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum) -{ - ODS("CDsoFramerControl::XDataObject::EnumFormatEtc\n"); - return OleRegEnumFormatEtc(CLSID_FramerControl, dwDirection, ppenum); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::DAdvise\n"); - - // Create OLE Data advise holder to keep sink for us... - if ((NULL == pThis->m_pDataAdviseHolder) && - FAILED(CreateDataAdviseHolder(&(pThis->m_pDataAdviseHolder)))) - return E_FAIL; - - // Add this advise sink for the given format to the collection... - return pThis->m_pDataAdviseHolder->Advise((IDataObject*)&(pThis->m_xDataObject), pfmtc, advf, psink, pdwConnection); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::DUnadvise(DWORD dwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::DUnadvise\n"); - CHECK_NULL_RETURN(pThis->m_pDataAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pDataAdviseHolder->Unadvise(dwConnection); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::EnumDAdvise(IEnumSTATDATA **ppenum) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::EnumDAdvise\n"); - CHECK_NULL_RETURN(pThis->m_pDataAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pDataAdviseHolder->EnumAdvise(ppenum); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XProvideClassInfo -- IProvideClassInfo Implementation -// -// STDMETHODIMP GetClassInfo(ITypeInfo** ppTI); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ProvideClassInfo) - -STDMETHODIMP CDsoFramerControl::XProvideClassInfo::GetClassInfo(ITypeInfo** ppTI) -{ - ODS("CDsoFramerControl::XProvideClassInfo::GetClassInfo\n"); - return DsoGetTypeInfoEx(LIBID_DSOFramer, 0, - DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, v_hModule, CLSID_FramerControl, ppTI); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XConnectionPointContainer -- IConnectionPointContainer Implementation -// -// STDMETHODIMP EnumConnectionPoints(IEnumConnectionPoints **ppEnum); -// STDMETHODIMP FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ConnectionPointContainer) - -STDMETHODIMP CDsoFramerControl::XConnectionPointContainer::EnumConnectionPoints(IEnumConnectionPoints **ppEnum) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPointContainer); - ODS("CDsoFramerControl::XConnectionPointContainer::EnumConnectionPoints\n"); - if (ppEnum) { SAFE_SET_INTERFACE(*ppEnum, &(pThis->m_xEnumConnectionPoints)); }; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPointContainer::FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPointContainer); - ODS("CDsoFramerControl::XConnectionPointContainer::FindConnectionPoint\n"); - if (riid != DIID__DFramerCtlEvents) return CONNECT_E_NOCONNECTION; - if (ppCP) { SAFE_SET_INTERFACE(*ppCP, &(pThis->m_xConnectionPoint)); }; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XEnumConnectionPoints -- IEnumConnectionPoints Implementation -// -// STDMETHODIMP Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched); -// STDMETHODIMP Skip(ULONG cConnections); -// STDMETHODIMP Reset(void); -// STDMETHODIMP Clone(IEnumConnectionPoints **ppEnum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, EnumConnectionPoints) - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched) -{ - HRESULT hr = S_FALSE; - - METHOD_PROLOGUE(CDsoFramerControl, EnumConnectionPoints); - ODS("CDsoFramerControl::XEnumConnectionPoints::Next\n"); - - CHECK_NULL_RETURN(rgpcn, E_POINTER); - *rgpcn = NULL; - - CHECK_NULL_RETURN(pcFetched, E_POINTER); - *pcFetched = 0; - - if (pThis->m_fConCntDone) - pThis->m_fConCntDone = FALSE; - else - { - SAFE_SET_INTERFACE(*rgpcn, &(pThis->m_xConnectionPoint)); - *pcFetched = 1; - pThis->m_fConCntDone = TRUE; hr = S_OK; - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Skip(ULONG cConnections) -{return S_OK;} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Reset(void) -{return S_OK;} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Clone(IEnumConnectionPoints **ppEnum) -{if (ppEnum) *ppEnum = this; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XConnectionPoint -- IConnectionPoint Implementation -// -// STDMETHODIMP GetConnectionInterface(IID *pIID); -// STDMETHODIMP GetConnectionPointContainer(IConnectionPointContainer **ppCPC); -// STDMETHODIMP Advise(IUnknown *pUnk, DWORD *pdwCookie); -// STDMETHODIMP Unadvise(DWORD dwCookie); -// STDMETHODIMP EnumConnections(IEnumConnections **ppEnum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ConnectionPoint) - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::GetConnectionInterface(IID *pIID) -{ - ODS("CDsoFramerControl::XConnectionPoint::GetConnectionInterface\n"); - if (pIID) *pIID = DIID__DFramerCtlEvents; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::GetConnectionPointContainer(IConnectionPointContainer **ppCPC) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::GetConnectionPointContainer\n"); - if (ppCPC) { SAFE_SET_INTERFACE(*ppCPC, &(pThis->m_xConnectionPointContainer)); }; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::Advise(IUnknown *pUnk, DWORD *pdwCookie) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::Advise\n"); - - CHECK_NULL_RETURN(pUnk, E_POINTER); - CHECK_NULL_RETURN(pdwCookie, E_POINTER); - - SAFE_RELEASE_INTERFACE(pThis->m_dispEvents); - - // FIX: The COM Interop layer in .NET CLR returns a different RCW for IDispatch than for a specific - // dispinterface GUID, so for events to work in .NET WinForm applications, we should explicitly use - // the RCW for that dispinterface. Other event source clients may fail QI for this GUID, so if it - // does return an error, we will QI again for IDispatch. The event issue is change in behavior from - // how VB6 implemented event sinks, and how VB7/C# does them... - HRESULT hr = pUnk->QueryInterface(DIID__DFramerCtlEvents, (void**)&(pThis->m_dispEvents)); - if (FAILED(hr)) hr = pUnk->QueryInterface(IID_IDispatch, (void**)&(pThis->m_dispEvents)); - - if (SUCCEEDED(hr)) *pdwCookie = (DWORD)(pThis); - return hr; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::Unadvise(DWORD dwCookie) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::Unadvise\n"); - if (dwCookie == (DWORD)(pThis)) - { - SAFE_RELEASE_INTERFACE(pThis->m_dispEvents); - } - return (pThis->m_dispEvents == NULL) ? S_OK : CONNECT_E_NOCONNECTION; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::EnumConnections(IEnumConnections **ppEnum) -{if (ppEnum) *ppEnum = NULL; return E_NOTIMPL;} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleCommandTarget -- IOleCommandTarget Implementation -// -// STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); -// STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleCommandTarget) - -STDMETHODIMP CDsoFramerControl::XOleCommandTarget::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleCommandTarget); - //ODS("CDsoFramerControl::XOleCommandTarget::QueryStatus\n"); - if (pguidCmdGroup != NULL) - return OLECMDERR_E_UNKNOWNGROUP; - - if (prgCmds == NULL) - return E_INVALIDARG; - - for (int i = 0; i < (int)cCmds; i++) - { - switch (prgCmds[i].cmdID) - { - case OLECMDID_NEW: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 1) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_OPEN: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 2) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_SAVE: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 8) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_SAVEAS: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 16) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PRINT: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 32) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PAGESETUP: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 64) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PROPERTIES: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 128) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PRINTPREVIEW: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 256) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - default: prgCmds[i].cmdf = 0; - } - } - - if (pCmdText) - { - pCmdText->cmdtextf = MSOCMDTEXTF_NONE; - pCmdText->cwActual = 0; - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleCommandTarget::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleCommandTarget); - ODS("CDsoFramerControl::XOleCommandTarget::Exec\n"); - - if ((pguidCmdGroup != NULL) && (*pguidCmdGroup != GUID_NULL)) - return OLECMDERR_E_UNKNOWNGROUP; - - if (nCmdexecopt == MSOCMDEXECOPT_SHOWHELP) - return OLECMDERR_E_NOHELP; - - switch (nCmdID) - { - case OLECMDID_NEW: - case OLECMDID_OPEN: - case OLECMDID_SAVE: - case OLECMDID_SAVEAS: - case OLECMDID_PRINT: - case OLECMDID_PAGESETUP: - case OLECMDID_PROPERTIES: - case OLECMDID_PRINTPREVIEW: - PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, nCmdID, nCmdexecopt); - return S_OK; - } - - return OLECMDERR_E_NOTSUPPORTED; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XSupportErrorInfo -- ISupportErrorInfo Implementation -// -// STDMETHODIMP InterfaceSupportsErrorInfo(REFIID riid); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, SupportErrorInfo) - -STDMETHODIMP CDsoFramerControl::XSupportErrorInfo::InterfaceSupportsErrorInfo(REFIID riid) -{ - ODS("CDsoFramerControl::XSupportErrorInfo::InterfaceSupportsErrorInfo\n"); - return ((riid == IID__FramerControl) ? S_OK : E_FAIL); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XObjectSafety -- IObjectSafety Implementation -// -// STDMETHODIMP GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions); -// STDMETHODIMP SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ObjectSafety) - -STDMETHODIMP CDsoFramerControl::XObjectSafety::GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions) -{ - ODS("CDsoFramerControl::XObjectSafety::GetInterfaceSafetyOptions\n"); - CHECK_NULL_RETURN(pdwEnabledOptions, E_POINTER); - - if (pdwSupportedOptions) - *pdwSupportedOptions = (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACESAFE_FOR_UNTRUSTED_CALLER); - - // We are safe for initialization, but not necessarily for scripting. Since script - // can open documents with macros, and get access to Office OM via ActiveDocument, - // we cannot be "safe" for malicious script. But this allows the control to load - // without prompt (just not scripted without prompt)... - *pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XObjectSafety::SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions) -{ - ODS("CDsoFramerControl::XObjectSafety::SetInterfaceSafetyOptions\n"); - return ((((riid == IID_IPersist) || (riid == IID_IPersistPropertyBag)) && - (dwEnabledOptions == INTERFACESAFE_FOR_UNTRUSTED_DATA)) ? S_OK : E_FAIL); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XDsoDocObjectSite -- IDsoDocObjectSite Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP GetBorder(LPRECT prcBorder); -// STDMETHODIMP SetStatusText(LPCOLESTR pszText); -// STDMETHODIMP GetHostName(LPWSTR *ppwszHostName); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, DsoDocObjectSite) - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::QueryService(REFGUID guidService, REFIID riid, void **ppv) -{ - HRESULT hr = E_NOINTERFACE; - ODS("CDsoFramerControl::XDsoDocObjectSite::QueryService\n"); - - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - CHECK_NULL_RETURN(ppv, E_POINTER); - - // We will return control IDispatch for cross container automation... - if (guidService == SID_SContainerDispatch) - { - ODS(" -- Container Dispatch Given --\n"); - hr = pThis->QueryInterface(riid, ppv); - } - // TODO: Support IHlinkFrame services for cross hyperlinking inside control?? - - // If we don't handle the call, and our host has a provider, pass the call along to see - // if the top-level host offers the service requested (like hyperlinking to new web page)... - if (FAILED(hr) && (pThis->m_pClientSite)) - { - IServiceProvider *pprov = NULL; - if (SUCCEEDED(pThis->m_pClientSite->QueryInterface(IID_IServiceProvider, (void**)&pprov)) && (pprov)) - { - if (SUCCEEDED(hr = pprov->QueryService(guidService, riid, ppv))) - { ODS(" -- Service provided by top-level host --\n"); } - pprov->Release(); - } - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetWindow(HWND* phWnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetWindow\n"); - if (phWnd) *phWnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetBorder(LPRECT prcBorder) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetBorder\n"); - pThis->GetSizeRectForDocument(NULL, prcBorder); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetHostName(LPWSTR *ppwszHostName) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetHostName\n"); - if (ppwszHostName) *ppwszHostName = DsoCopyString(pThis->m_pwszHostName); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::SysMenuCommand(UINT uiCharCode) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - TRACE1("CDsoFramerControl::XDsoDocObjectSite::SysMenuCommand(%x)\n", uiCharCode); - - // If we are processing a sys menu command, see if it is a menu accel for our - // displayed menu, and if so we handle this with a fake click of the menu button... - if ((uiCharCode) && (pThis->m_fShowMenuBar) && !(pThis->m_fDisableMenuAccel)) - { - UINT i; - CHAR *pch; - - // Loop all the menu items and check against their accelerators... - for (i = 0; i < DSO_MAX_MENUITEMS; i++) - { - pch = &(pThis->m_rgchMenuAccel[0]); - if (*pch) - { - if ((*pch != 0xFF) && ((UINT)(*pch) == ASCII_LOWERCASE(uiCharCode))) - { - // Found one that match, so fake mouse move and button down/up to run click code... - ODS("-- Trigger Menu Accelerator --\n"); - - PostMessage(pThis->m_hwnd, WM_MOUSEMOVE, (WPARAM)0, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - PostMessage(pThis->m_hwnd, WM_LBUTTONDOWN, (WPARAM)MK_LBUTTON, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - PostMessage(pThis->m_hwnd, WM_LBUTTONUP, (WPARAM)0, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - // Return OK to caller to know to eat this message. - return S_OK; - } - } - else break; - } - } - - return S_FALSE; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::SetStatusText(LPCOLESTR pszText) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - - // If m_fActivateOnStatus flag is set, see if we are not UI active. If not, try to activate... - if ((pThis->m_fActivateOnStatus) && (pThis->m_fComponentActive) && (pThis->m_fAppActive) && - !(pThis->m_fUIActive) && !(pThis->m_fModalState)) - { - ODS(" -- ForceUIActiveFromSetStatusText --\n"); - pThis->m_fActivateOnStatus = FALSE; - pThis->Activate(); - } - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager -// -CDsoFrameHookManager* vgGlobalManager = NULL; - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager::RegisterFramerControl -// -// Creates a frame hook and registers it with the active manager. If -// this is the first time called, the global manager will be created -// now. The manager can handle up to DSOF_MAX_CONTROLS controls (10). -// -STDMETHODIMP_(CDsoFrameHookManager*) CDsoFrameHookManager::RegisterFramerControl(HWND hwndParent, HWND hwndControl) -{ - CDsoFrameHookManager* pManager = NULL; - ODS("CDsoFrameHookManager::RegisterFramerControl\n"); - CHECK_NULL_RETURN(hwndControl, NULL); - - EnterCriticalSection(&v_csecThreadSynch); - pManager = vgGlobalManager; - if (pManager == NULL) - pManager = (vgGlobalManager = new CDsoFrameHookManager()); - LeaveCriticalSection(&v_csecThreadSynch); - - if (pManager) - { - if (hwndParent == NULL) - hwndParent = hwndControl; - - if (FAILED(pManager->AddComponent(hwndParent, hwndControl))) - return NULL; - } - - return pManager; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager::AddComponent -// -// Register the component and create the actual frame hook (if needed). -// -STDMETHODIMP CDsoFrameHookManager::AddComponent(HWND hwndParent, HWND hwndControl) -{ - DWORD dwHostProcessID; - CDsoFrameWindowHook* phook; - HRESULT hr = E_OUTOFMEMORY; - HWND hwndNext, hwndHost = hwndParent; - ODS("CDsoFrameHookManager::AddComponent\n"); - - // Find the top-level window this control is sited on... - while (hwndNext = GetParent(hwndHost)) - hwndHost = hwndNext; - - // We have to get valid window that is in-thread for a subclass to work... - if (!IsWindow(hwndHost) || - (GetWindowThreadProcessId(hwndHost, &dwHostProcessID), - dwHostProcessID != GetCurrentProcessId())) - return E_ACCESSDENIED; - - // Next if we have room in the array, add the component to the list and - // hook its parent window so we get messages for it. - EnterCriticalSection(&v_csecThreadSynch); - if ((vgGlobalManager) && (m_cComponents < DSOF_MAX_CONTROLS)) - { - // Hook the host window for this control... - phook = CDsoFrameWindowHook::AttachToFrameWindow(hwndHost); - if (phook) - {// Add the component to the list if hooked... - m_pComponents[m_cComponents].hwndControl = hwndControl; - m_pComponents[m_cComponents].phookFrame = phook; - m_cComponents++; hr = S_OK; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - - if (SUCCEEDED(hr)) // Make sure item is the new active component - hr = SetActiveComponent(hwndControl); - - return hr; -} - -STDMETHODIMP CDsoFrameHookManager::DetachComponent(HWND hwndControl) -{ - DWORD dwIndex; - CHECK_NULL_RETURN(m_cComponents, E_FAIL); - - // Find this control in the list... - for (dwIndex = 0; dwIndex < m_cComponents; dwIndex++) - if (m_pComponents[dwIndex].hwndControl == hwndControl) break; - - if (dwIndex > m_cComponents) - return E_INVALIDARG; - - // If we found the index, remove the item and shift remaining - // items down the list. Change active index as needed... - EnterCriticalSection(&v_csecThreadSynch); - - m_pComponents[dwIndex].hwndControl = NULL; - m_pComponents[dwIndex].phookFrame->Detach(); - - // Compact the list... - while (++dwIndex < m_cComponents) - { - m_pComponents[dwIndex-1].hwndControl = m_pComponents[dwIndex].hwndControl; - m_pComponents[dwIndex-1].phookFrame = m_pComponents[dwIndex].phookFrame; - m_pComponents[dwIndex].hwndControl = NULL; - } - - // Decrement the count. If count still exists, forward activation - // to next component in the list... - if (--m_cComponents) - { - while (m_idxActive >= m_cComponents) - --m_idxActive; - - HWND hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)TRUE, (LPARAM)(m_fAppActive)); - } - else - { - vgGlobalManager = NULL; - // If this is the last control, we can remove the manger! - delete this; - } - - LeaveCriticalSection(&v_csecThreadSynch); - - return S_OK; -} - -STDMETHODIMP CDsoFrameHookManager::SetActiveComponent(HWND hwndControl) -{ - ODS(" -- CDsoFrameHookManager::SetActiveComponent -- \n"); - CHECK_NULL_RETURN(m_cComponents, E_FAIL); - DWORD dwIndex; - - // Find the index of the control... - for (dwIndex = 0; dwIndex < m_cComponents; dwIndex++) - if (m_pComponents[dwIndex].hwndControl == hwndControl) break; - - if (dwIndex > m_cComponents) - return E_INVALIDARG; - - // If it is not already the active item, notify old component it is - // losing activation, and notify new component that it is gaining... - EnterCriticalSection(&v_csecThreadSynch); - if (dwIndex != m_idxActive) - { - HWND hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)FALSE, (LPARAM)0); - - m_idxActive = dwIndex; - - hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)TRUE, (LPARAM)(m_fAppActive)); - } - LeaveCriticalSection(&v_csecThreadSynch); - - return S_OK; -} - -STDMETHODIMP CDsoFrameHookManager::OnComponentNotify(DWORD msg, WPARAM wParam, LPARAM lParam) -{ - TRACE3("CDsoFrameHookManager::OnComponentNotify(%d, %d, %d)\n", msg, wParam, lParam); - HWND hwndActiveComp = GetActiveComponentWindow(); - - // The manager needs to keep track of AppActive state... - if (msg == DSO_WM_HOOK_NOTIFY_APPACTIVATE) - { - EnterCriticalSection(&v_csecThreadSynch); - m_fAppActive = (BOOL)wParam; - LeaveCriticalSection(&v_csecThreadSynch); - } - - // Send the message to the active component - SendNotifyMessage(hwndActiveComp, msg, wParam, lParam); - return S_OK; -} - -STDMETHODIMP_(BOOL) CDsoFrameHookManager::SendNotifyMessage(HWND hwnd, DWORD msg, WPARAM wParam, LPARAM lParam) -{ - BOOL fResult; - - // Check if the caller is on the same thread as the active component. If so we can - // forward the message directly for processing. If not, we have to post and wait for - // that thread to process message at a later time... - if (GetWindowThreadProcessId(hwnd, NULL) == GetCurrentThreadId()) - { // Notify now... - fResult = (BOOL)SendMessage(hwnd, msg, wParam, lParam); - } - else - { // Notify later... - fResult = PostMessage(hwnd, msg, wParam, lParam); - } - - return fResult; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook -// -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::AttachToFrameWindow -// -// Creates the frame hook for the host window. -// -STDMETHODIMP_(CDsoFrameWindowHook*) CDsoFrameWindowHook::AttachToFrameWindow(HWND hwndParent) -{ - CDsoFrameWindowHook* phook = NULL; - BOOL fHookSuccess = FALSE; - - // We have to get valid window ... - if (!IsWindow(hwndParent)) - return NULL; - - EnterCriticalSection(&v_csecThreadSynch); - phook = CDsoFrameWindowHook::GetHookFromWindow(hwndParent); - if (phook) - { // Already have this window hooked, so just addref the count. - phook->AddRef(); - } - else - { // Need to create a new hook object for this window... - if ((phook = new CDsoFrameWindowHook())) - { - phook->m_hwndTopLevelHost = hwndParent; - phook->m_fHostUnicodeWindow = (v_fUnicodeAPI && IsWindowUnicode(hwndParent)); - - // Setup the subclass using Unicode or Ansi methods depending on window - // create state. Note if either property assoc or window subclass fail... - if (phook->m_fHostUnicodeWindow) - { - fHookSuccess = SetPropW(hwndParent, L"DSOFramerWndHook", (HANDLE)phook); - if (fHookSuccess) - { - phook->m_pfnOrigWndProc = (WNDPROC)SetWindowLongW(hwndParent, GWL_WNDPROC, (LONG)(WNDPROC)HostWindowProcHook); - fHookSuccess = (phook->m_pfnOrigWndProc != NULL); - } - } - else - { - fHookSuccess = SetPropA(hwndParent, "DSOFramerWndHook", (HANDLE)phook); - if (fHookSuccess) - { - phook->m_pfnOrigWndProc = (WNDPROC)SetWindowLongA(hwndParent, GWL_WNDPROC, (LONG)(WNDPROC)HostWindowProcHook); - fHookSuccess = (phook->m_pfnOrigWndProc != NULL); - } - } - - // If we failed the subclass, kill this object and return error... - if (!fHookSuccess) - { - delete phook; - phook = NULL; - } - else phook->m_cHookCount++; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - - return phook; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::Detach -// -// Removes the hook from the frame window if this is the last control -// to reference the hook. -// -STDMETHODIMP CDsoFrameWindowHook::Detach() -{ - // Only need to call this if item is attached. - EnterCriticalSection(&v_csecThreadSynch); - if (m_cHookCount) - { - if (--m_cHookCount == 0) - { // We can remove the hook! - if (m_fHostUnicodeWindow) - { - SetWindowLongW(m_hwndTopLevelHost, GWL_WNDPROC, (LONG)(m_pfnOrigWndProc)); - RemovePropW(m_hwndTopLevelHost, L"DSOFramerWndHook"); - } - else - { - SetWindowLongA(m_hwndTopLevelHost, GWL_WNDPROC, (LONG)(m_pfnOrigWndProc)); - RemovePropA(m_hwndTopLevelHost, "DSOFramerWndHook"); - } - m_hwndTopLevelHost = NULL; - - // we can kill this object now... - delete this; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::GetHookFromWindow -// -// Returns the hook control associated with this object. -// -STDMETHODIMP_(CDsoFrameWindowHook*) CDsoFrameWindowHook::GetHookFromWindow(HWND hwnd) -{ - CDsoFrameWindowHook* phook = (CDsoFrameWindowHook*)GetPropW(hwnd, L"DSOFramerWndHook"); - if (phook == NULL) phook = (CDsoFrameWindowHook*)GetPropA(hwnd, "DSOFramerWndHook"); - return phook; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::HostWindowProcHook -// -// The window proc for the subclassed host window. -// -STDMETHODIMP_(LRESULT) CDsoFrameWindowHook::HostWindowProcHook(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoFrameWindowHook* phook = CDsoFrameWindowHook::GetHookFromWindow(hwnd); - if (phook) // We better get our prop for this window! - { - // We handle the important ActiveDocument frame-level events like task - // window activation/deactivation, palette change notfication, and key/mouse - // focus notification on host app focus... - switch (msg) - { - case WM_ACTIVATEAPP: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_APPACTIVATE, wParam, lParam); - break; - - case WM_PALETTECHANGED: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_PALETTECHANGE, wParam, lParam); - break; - - case WM_SYNCPAINT: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_SYNCPAINT, wParam, lParam); - break; - - } - - // After processing, allow calls to fall through to host app. We need to call - // the appropriate handler for Unicode or non-Unicode windows... - if (phook->m_fHostUnicodeWindow) - return CallWindowProcW(phook->m_pfnOrigWndProc, hwnd, msg, wParam, lParam); - else - return CallWindowProcA(phook->m_pfnOrigWndProc, hwnd, msg, wParam, lParam); - } - - // Should not be reached, but just in case call default proc... - return (IsWindowUnicode(hwnd) ? - DefWindowProcW(hwnd, msg, wParam, lParam) : - DefWindowProcA(hwnd, msg, wParam, lParam)); -} \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.cpp deleted file mode 100644 index 34721835..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.cpp +++ /dev/null @@ -1,3253 +0,0 @@ -/*************************************************************************** - * DSOFDOCOBJ.CPP - * - * CDsoDocObject: ActiveX Document Single Instance Frame/Site Object - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject - The DocObject Site Class -// -// This class wraps the functionality for DocObject hosting. Right now -// we are setup for one active site at a time, but this could be changed -// to allow multiple sites (although only one could be UI active at any -// given time). -// -CDsoDocObject::CDsoDocObject() -{ - ODS("CDsoDocObject::CDsoDocObject\n"); - m_cRef = 1; - m_fDisplayTools = TRUE; -} - -CDsoDocObject::~CDsoDocObject(void) -{ - ODS("CDsoDocObject::~CDsoDocObject\n"); - if (m_pole) Close(); - if (m_hwnd) DestroyWindow(m_hwnd); - - SAFE_FREESTRING(m_pwszUsername); - SAFE_FREESTRING(m_pwszPassword); - SAFE_FREESTRING(m_pwszHostName); - - SAFE_RELEASE_INTERFACE(m_pstgroot); - SAFE_RELEASE_INTERFACE(m_punkIPPResource); - SAFE_RELEASE_INTERFACE(m_pcmdCtl); - SAFE_RELEASE_INTERFACE(m_psiteCtl); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateNewDocObject -// -// Static Creation Function. -// -STDMETHODIMP_(CDsoDocObject*) CDsoDocObject::CreateInstance(IDsoDocObjectSite* phost) -{ - ODS("CDsoDocObject::CreateInstance()\n"); - CDsoDocObject* pnew = new CDsoDocObject(); - if ((pnew) && FAILED(pnew->InitializeNewInstance(phost))) - { - pnew->Release(); - pnew = NULL; - } - return pnew; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::InitializeNewInstance -// -// Sets up new docobject class. We must a control site to attach this -// window to. It will call back to host for menu and IOleCommandTarget. -// -STDMETHODIMP CDsoDocObject::InitializeNewInstance(IDsoDocObjectSite* phost) -{ - HRESULT hr = E_UNEXPECTED; - WNDCLASS wndclass; - HWND hwndCtl; - - ODS("CDsoDocObject::InitializeNewInstance()\n"); - - // We need valid IDsoDocObjectSite... - if ((phost == NULL) || FAILED(phost->GetWindow(&hwndCtl))) - return hr; - - // As an AxDoc site, we need a valid parent window... - if ((!hwndCtl) || (!IsWindow(hwndCtl))) - return hr; - - // Create a temp storage for this docobj site (if one already exists, bomb out)... - if ((m_pstgroot) || FAILED(hr = StgCreateDocfile(NULL, STGM_TRANSACTED | STGM_READWRITE | - STGM_SHARE_EXCLUSIVE | STGM_CREATE | STGM_DELETEONRELEASE, 0, &m_pstgroot))) - return hr; - - // If our site window class has not been registered before, we should register it... - - // This is protected by a critical section just for fun. The fact we had to single - // instance the OCX because of the host hook makes having multiple instances conflict here - // very unlikely. However, that could change sometime, so better to be safe than sorry. - EnterCriticalSection(&v_csecThreadSynch); - - if (GetClassInfo(v_hModule, "DSOFramerDocWnd", &wndclass) == 0) - { - memset(&wndclass, 0, sizeof(WNDCLASS)); - wndclass.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS; - wndclass.lpfnWndProc = CDsoDocObject::FrameWindowProc; - wndclass.hInstance = v_hModule; - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.lpszClassName = "DSOFramerDocWnd"; - if (RegisterClass(&wndclass) == 0) - hr = E_WIN32_LASTERROR; - } - - LeaveCriticalSection(&v_csecThreadSynch); - if (FAILED(hr)) return hr; - - // Get the position RECT (and validate as needed)... - hr = phost->GetBorder(&m_rcViewRect); - if (FAILED(hr)) return hr; - - if (m_rcViewRect.top > m_rcViewRect.bottom) - {m_rcViewRect.top = 0; m_rcViewRect.bottom = 0;} - if (m_rcViewRect.left > m_rcViewRect.right) - {m_rcViewRect.left = 0; m_rcViewRect.right = 0;} - - // Create our site window at the give location (we are child of the control window)... - m_hwnd = CreateWindowEx(0, "DSOFramerDocWnd", NULL, WS_CHILD, - m_rcViewRect.left, m_rcViewRect.top, - (m_rcViewRect.right - m_rcViewRect.left), - (m_rcViewRect.bottom - m_rcViewRect.top), - hwndCtl, NULL, v_hModule, NULL); - - if (!m_hwnd) return E_OUTOFMEMORY; - SetWindowLong(m_hwnd, GWL_USERDATA, (LONG)this); - - // Save the control info for this object... - m_hwndCtl = hwndCtl; - (m_psiteCtl = phost)->AddRef(); - - m_psiteCtl->QueryInterface(IID_IOleCommandTarget, (void**)&m_pcmdCtl); - m_psiteCtl->GetHostName(&m_pwszHostName); - if (m_pwszHostName == NULL) - m_pwszHostName = DsoCopyString(L"DsoFramerControl"); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateDocObject (From CLSID) -// -// This does embedding of new object, or loads a copy from storage. -// To activate and show the object, you must call IPActivateView(). -// -STDMETHODIMP CDsoDocObject::CreateDocObject(REFCLSID rclsid) -{ - HRESULT hr; - CLSID clsid; - DWORD dwMiscStatus = 0; - IOleObject* pole = NULL; - IPersistStorage* pipstg = NULL; - BOOL fInitNew = (m_pstgfile == NULL); - - ODS("CDsoDocObject::CreateDocObject(CLSID)\n"); - ASSERT(!(m_pole)); - - // Don't load if an object has already been loaded... - if (m_pole) return E_UNEXPECTED; - - // It is possible that someone picked an older ProgId/CLSID that - // will AutoConvert on CoCreate, so fix up the storage with the - // new CLSID info. We we actually call CoCreate on the new CLSID... - if (fInitNew && SUCCEEDED(OleGetAutoConvert(rclsid, &clsid))) - { - OleDoAutoConvert(m_pstgfile, &clsid); - } - else clsid = rclsid; - - // First, check the server to make sure it is AxDoc server... - if (FAILED(hr = ValidateDocObjectServer(rclsid))) - return hr; - - // If we haven't loaded a storage, create a new one and remember to - // call InitNew (instead of Load) later on... - if (fInitNew && FAILED(hr = CreateObjectStorage(rclsid))) - return hr; - - // We are ready to create an instance. Call CoCreate to make an - // inproc handler and ask for IOleObject (all docobjs must support this)... - if (FAILED(hr = InstantiateDocObjectServer(clsid, &pole))) - return hr; - - // Do a quick check to see if server wants us to set client site before the load.. - hr = pole->GetMiscStatus(DVASPECT_CONTENT, &dwMiscStatus); - if (dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST) - hr = pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // Load up the bloody thing... - if (SUCCEEDED(hr = pole->QueryInterface(IID_IPersistStorage, (void**)&pipstg))) - { - // Remember to InitNew if this is a new storage... - hr = ((fInitNew) ? pipstg->InitNew(m_pstgfile) : pipstg->Load(m_pstgfile)); - pipstg->Release(); - } - - // Assuming all the above worked we should have an OLE Embeddable - // object and should finish the initialization (set object running)... - if (SUCCEEDED(hr)) - { - // Save the IOleObject* and do a disconnect on quit... - SAFE_SET_INTERFACE(m_pole, pole); - m_fDisconnectOnQuit = TRUE; - - // Keep server CLSID for this object - m_clsidObject = clsid; - - // Ensure server is running and locked... - EnsureOleServerRunning(TRUE); - - // If we didn't do so already, set our client site... - if (!(dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST)) - hr = m_pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // Set the host names for OLE embedding... - m_pole->SetHostNames(m_pwszHostName, m_pwszHostName); - - // Ask object to save (if dirty)... - if (IsDirty()) SaveObjectStorage(); - } - else - {// Be sure they disconnect from our site if we failed load... - pole->SetClientSite(NULL); - } - - // This will free the OLE server if anything above failed... - SAFE_RELEASE_INTERFACE(pole); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateDocObject (From IStorage*) -// -// This does embedding of new object, or loads a copy from storage. -// To activate and show the object, you must call IPActivateView(). -// -STDMETHODIMP CDsoDocObject::CreateDocObject(IStorage *pstg) -{ - HRESULT hr; - CLSID clsid; - - ODS("CDsoDocObject::CreateDocObject(IStorage*)\n"); - CHECK_NULL_RETURN(pstg, E_POINTER); - - // Read the clsid from the storage.. - if (FAILED(hr = ReadClassStg(pstg, &clsid))) - return hr; - - // Validate the server is AxDoc server... - if (FAILED(hr = ValidateDocObjectServer(clsid))) - return hr; - - // Create a new storage for this CLSID... - if (FAILED(hr = CreateObjectStorage(clsid))) - return hr; - - // Copy data into the new storage and commit the change... - hr = pstg->CopyTo(0, NULL, NULL, m_pstgfile); - if (SUCCEEDED(hr)) hr = m_pstgfile->Commit(STGC_OVERWRITE); - - // Then do normal create on existing storage made from copy... - return CreateDocObject(clsid); -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromFile -// -// Loads document into the framer control. The bind options determine if -// file should be loaded read-only or read-write. An alternate CLSID can -// be provided if the document type is not normally associated with a -// a DocObject server in OLE. -// -// To activate and show the object, you must call IPActivateView(). -// -// The code will attempt to open the file in one of three ways: -// -// 1.) Using IMoniker, we will attempt to open and load existing file -// via a passed moniker, similar to how IE loads files. -// -// 2.) Using IPersistFile, we will attempt to open via direct file path. -// -// 3.) Finally, if above two options don't work, we will try to open the -// storage, make a copy and load using IPersistStorage. This last way follows -// the (old) Binder behavior, and should *by spec* always work, but is a bit -// clunky since we open a copy, not the real file. -// -STDMETHODIMP CDsoDocObject::CreateFromFile(LPWSTR pwszFile, REFCLSID rclsid, LPBIND_OPTS pbndopts) -{ - HRESULT hr; - CLSID clsid; - CLSID clsidConv; - IOleObject *pole = NULL; - IBindCtx *pbctx = NULL; - IMoniker *pmkfile = NULL; - IStorage *pstg = NULL; - BOOL fLoadFromAltCLSID = (rclsid != GUID_NULL); - - // Sanity check of parameters... - if (!(pwszFile) || ((*pwszFile) == L'\0') || (pbndopts == NULL)) - return E_INVALIDARG; - - TRACE2("CDsoDocObject::CreateFromFile(%S, %x)\n", pwszFile, pbndopts->grfMode); - - // First. we'll try to find the associated CLSID for the given file, - // and then set it to the alternate if not found. If we don't have a - // CLSID by the end of this, because user didn't specify alternate - // and GetClassFile failed, then we error out... - if (FAILED(GetClassFile(pwszFile, &clsid)) && !(fLoadFromAltCLSID)) - return DSO_E_INVALIDSERVER; - - // We should try to load from alternate CLSID if provided one... - if (fLoadFromAltCLSID) clsid = rclsid; - - // We should also handle auto-convert to start "newest" server... - if (SUCCEEDED(OleGetAutoConvert(clsid, &clsidConv))) - clsid = clsidConv; - - // Validate that we have a DocObject server... - if ((clsid == GUID_NULL) || FAILED(ValidateDocObjectServer(clsid))) - return DSO_E_INVALIDSERVER; - - // Check for IE cache items since these are read-only as far as user is concerned... - if (FIsIECacheFile(pwszFile)) - { - pbndopts->grfMode &= ~(STGM_READWRITE); - pbndopts->grfMode &= ~(STGM_WRITE); - pbndopts->grfMode |= STGM_READ; - } - - // First, we try to bind by moniker (same as IE). We'll need a bind context - // and a file moniker for the orginal source... - if (SUCCEEDED(hr = CreateBindCtx(0, &pbctx))) - { - if (SUCCEEDED(hr = pbctx->SetBindOptions(pbndopts)) && - SUCCEEDED(hr = CreateFileMoniker(pwszFile, &pmkfile))) - { - - // Bind to the object moniker refers to... - hr = pmkfile->BindToObject(pbctx, NULL, IID_IOleObject, (void**)&pole); - - // If that failed, try to bind direct to file in new server... - if (FAILED(hr)) - { - IPersistFile *pipfile = NULL; - - if (SUCCEEDED(hr = InstantiateDocObjectServer(clsid, &pole)) && - SUCCEEDED(hr = pole->QueryInterface(IID_IPersistFile, (void**)&pipfile))) - { - hr = pipfile->Load(pwszFile, pbndopts->grfMode); - pipfile->Release(); - } - } - - // If either solution worked, setup the rest of the bind info... - if (SUCCEEDED(hr)) - { - // Save the IOleObject* and do a disconnect on quit... - SAFE_SET_INTERFACE(m_pole, pole); - m_fDisconnectOnQuit = TRUE; - - // Keep server CLSID for this object - m_clsidObject = clsid; - - // Keep the moniker and bind ctx... - SAFE_SET_INTERFACE(m_pmkSourceFile, pmkfile); - SAFE_SET_INTERFACE(m_pbctxSourceFile, pbctx); - - // Set out client site... - m_pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // We don't normally set host name for moniker bind, but MSWORD object - // requires it to IP activate it instead of link & show external... - if (IsWordObject()) - m_pole->SetHostNames(m_pwszHostName, m_pwszHostName); - - } - else pole->SetClientSite(NULL); - - // This will release the moniker if above failed... - pmkfile->Release(); - } - // This will release the bind ctx if above failed... - pbctx->Release(); - } - - // If binding by moniker failed, try the old fashion way of bind to OLE storage... - if (FAILED(hr)) - { - // Try to open file as OLE storage (native OLE DocFile)... - if (SUCCEEDED(hr = StgOpenStorage(pwszFile, NULL, pbndopts->grfMode, NULL, 0, &pstg))) - { - // Create our substorage, and copy the data over to it... - if (SUCCEEDED(hr = CreateObjectStorage(clsid)) && - SUCCEEDED(hr = pstg->CopyTo(0, NULL, NULL, m_pstgfile))) - { - m_pstgfile->Commit(STGC_OVERWRITE); - - // Then create the object from the storage copy... - if (SUCCEEDED(hr = CreateDocObject(clsid))) - { - SAFE_SET_INTERFACE(m_pstgSourceFile, pstg); - } - } - // This will release the storage if above failed... - pstg->Release(); - } - } - - // If all went well, we should save file name and whether it opened read-only... - if (SUCCEEDED(hr)) - { - m_pwszSourceFile = DsoCopyString(pwszFile); - m_idxSourceName = CalcDocNameIndex(m_pwszSourceFile); - m_fOpenReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - } - - // This will free the OLE server if anything above failed... - SAFE_RELEASE_INTERFACE(pole); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromURL -// -// Loads document from a URL resource. The document can be open read-only -// using URLMON in the same context as the host client (i.e., it can be -// treated as normal navigation in host if host supports URLMON, like IE). -// Or you can choose to open read-write, which will attempt to use the -// Microsoft Internet Publishing Provider (MSDAIPP) to author on the web. -// -// The default is to open read-only with URLMON. If client wants read-write, -// we will try MSDAIPP for DAV first, then MSDAIPP for FPSE/WSS/SPS. -// -STDMETHODIMP CDsoDocObject::CreateFromURL(LPWSTR pwszUrlFile, REFCLSID rclsid, LPBIND_OPTS pbndopts, LPWSTR pwszUserName, LPWSTR pwszPassword) -{ - HRESULT hr; - BOOL fReadOnly; - LPWSTR pwszTempFile; - IStream *pstmWebResource = NULL; - - // First, a sanity check on the parameters passed... - if ((pwszUrlFile == NULL) || (pbndopts == NULL)) - return E_INVALIDARG; - - TRACE2("CDsoDocObject::CreateFromURL(%S, %x)\n", pwszUrlFile, pbndopts->grfMode); - - // Get a temp path for the download... - if (!GetTempPathForURLDownload(pwszUrlFile, &pwszTempFile)) - return E_ACCESSDENIED; - - // Save out the user name and password (if provided) for IAuthenticate... - if (pwszUserName) - { - SAFE_FREESTRING(m_pwszUsername); - m_pwszUsername = DsoCopyString(pwszUserName); - - SAFE_FREESTRING(m_pwszPassword); - m_pwszPassword = DsoCopyString(pwszPassword); - } - - // Determine if they want to open read-only using URLMON or read-write using MSDAIPP... - fReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - - if (fReadOnly) // If using URLMON... - { - hr = URLDownloadFile((IUnknown*)&m_xAuthenticate, pwszUrlFile, pwszTempFile); - } - else // Otherwise we need access to MSDAIPP for writable stream... - { - hr = IPPDownloadWebResource(pwszUrlFile, pwszTempFile, &pstmWebResource); - } - - // If all goes well with the download, we can then open the temp file for write access to - // use as local file during the editing. Then we can save back on the stream if requested. - if (SUCCEEDED(hr)) - { - BIND_OPTS bopts = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, STGM_READWRITE|STGM_SHARE_EXCLUSIVE, 10000}; - hr = CreateFromFile(pwszTempFile, rclsid, &bopts); - if (SUCCEEDED(hr)) - { - m_fOpenReadOnly = fReadOnly; - if (!m_fOpenReadOnly) - { - m_pwszWebResource = DsoCopyString(pwszUrlFile); - SAFE_SET_INTERFACE(m_pstmWebResource, pstmWebResource); - } - } - } - - SAFE_RELEASE_INTERFACE(pstmWebResource); - DsoMemFree(pwszTempFile); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromRunningObject -// -// Grabs a pre-existing object (such as a running object) and attempts -// to embed it. If that fails, it will make a copy of the object and open -// the copy read-only. -// -STDMETHODIMP CDsoDocObject::CreateFromRunningObject(LPUNKNOWN punkObj, LPWSTR pwszObjectName, LPBIND_OPTS pbndopts) -{ - HRESULT hr; - IPersistStorage *prststg; - IOleObject *pole; - CLSID clsid; - BOOL fReadOnly; - - ODS("CDsoDocObject::CreateFromRunningObject()\n"); - CHECK_NULL_RETURN(punkObj, E_POINTER); - CHECK_NULL_RETURN(pbndopts, E_POINTER); - - // We only can support read-only since a running object is external, and in order - // to get a copy inplace active, we end up making a copy of the storage, which means - // this control will have a copy and not control the orginal source. Since the orginal - // can be locked and not available, we have to treat this as read-only. - fReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - - if (!fReadOnly) return STG_E_LOCKVIOLATION; - - // First, ensure the object passed supports embedding (i.e., we expect - // something like a Word.Document or Excel.Sheet object, not a Word.Application - // object or something else that is not a document type)... - hr = punkObj->QueryInterface(IID_IOleObject, (void**)&pole); - if (FAILED(hr)) return hr; - - // Ask the object to save its persistent state. We also collect its CLSID and - // validate that the object type supports DocObject embedding... - hr = pole->QueryInterface(IID_IPersistStorage, (void**)&prststg); - if (SUCCEEDED(hr)) - { - hr = prststg->GetClassID(&clsid); // Validate the object type... - if (FAILED(hr) || FAILED(ValidateDocObjectServer(clsid))) - { - hr = DSO_E_INVALIDSERVER; - } - else - { - // Create a matching storage for the object and save the current - // state of the file in our storage (this is our private copy)... - if (SUCCEEDED(hr = CreateObjectStorage(clsid)) && - SUCCEEDED(hr = prststg->Save(m_pstgfile, FALSE)) && - SUCCEEDED(hr = prststg->SaveCompleted(NULL))) - { - // At this point we have a read-only copy... - prststg->HandsOffStorage(); - m_fOpenReadOnly = TRUE; - - // Create the embedding... - hr = CreateDocObject(clsid); - } - } - - prststg->Release(); - } - - pole->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPActivateView -// -// Activates the object for inplace viewing. -// -STDMETHODIMP CDsoDocObject::IPActivateView() -{ - HRESULT hr = E_UNEXPECTED; - ODS("CDsoDocObject::IPActivateView()\n"); - ASSERT(m_pole); - - // Make sure the site window is made visible... - if (!IsWindowVisible(m_hwnd)) - ShowWindow(m_hwnd, SW_SHOW); - - // If we have an IOleDocument pointer, we can use the Show method for - // inplace activation... - if (m_pdocv) - { - hr = m_pdocv->Show(TRUE); - } - else if (m_pole) - { - // Try creating a document view and loading it... - hr = m_xOleDocumentSite.ActivateMe(NULL); - if (FAILED(hr)) // If that fails, go the old OLE route... - { - RECT rcView; GetClientRect(m_hwnd, &rcView); - - // First call IOleObject::DoVerb with OLEIVERB_INPLACEACTIVATE - // (or OLEIVERB_SHOW), and our view rect and IOleClientSite pointer... - hr = m_pole->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - - // If the server doesn't recognize IP verb, try OLEIVERB_SHOW instead... - if (hr == OLEOBJ_E_INVALIDVERB) - hr = m_pole->DoVerb(OLEIVERB_SHOW, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - - // There is an issue with Visio 2002 rejecting DoVerb when it is called while - // Visio is still loading up the main app window. OLE servers normally return RPC - // retry later error, which will spin us in the msg-filter, but Visio just rejects - // the call all together, which pops us out of the filter early. This causes the - // embed attempt to fail. So to workaround this, we will check for the condition, - // sleep a bit, and then try our own semi-msg-filter loop... - if ((hr == RPC_E_CALL_REJECTED) && IsVisioObject()) - { - DWORD dwLoopCnt = 0; - do - { - Sleep((200 * ++dwLoopCnt)); - hr = m_pole->DoVerb(OLEIVERB_SHOW, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - } - while ((hr == RPC_E_CALL_REJECTED) && (dwLoopCnt < 4)); - } - } - } - - // Go ahead and UI activate now... - if (SUCCEEDED(hr)) - hr = UIActivateView(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPDeactivateView -// -// Deactivates the object ready for close. -// -STDMETHODIMP CDsoDocObject::IPDeactivateView() -{ - HRESULT hr = S_OK; - ODS("CDsoDocObject::IPDeactivateView()\n"); - - // If we still have a UI active object, tell it to UI deactivate... - if (m_pipactive) - UIDeactivateView(); - - // Next hide the active object... - if (m_pdocv) - m_pdocv->Show(FALSE); - - // Notify object our intention to IP deactivate... - if (m_pipobj) - m_pipobj->InPlaceDeactivate(); - - // Close the object down and release pointers... - if (m_pdocv) - { - hr = m_pdocv->CloseView(0); - m_pdocv->SetInPlaceSite(NULL); - } - - SAFE_RELEASE_INTERFACE(m_pcmdt); - SAFE_RELEASE_INTERFACE(m_pdocv); - SAFE_RELEASE_INTERFACE(m_pipobj); - - // Hide the site window... - ShowWindow(m_hwnd, SW_HIDE); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::UIActivateView -// -// UI Activates the object (which should bring up toolbars and caret). -// -STDMETHODIMP CDsoDocObject::UIActivateView() -{ - HRESULT hr = S_FALSE; - ODS("CDsoDocObject::UIActivateView()\n"); - - if (m_pdocv) // Go UI active... - { - hr = m_pdocv->UIActivate(TRUE); - } - else if (m_pole) // We should never get here, but just in case pdocv is NULL, signal UI active the old way... - { - RECT rcView; GetClientRect(m_hwnd, &rcView); - m_pole->DoVerb(OLEIVERB_UIACTIVATE, NULL, (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - } - - // Forward focus to the IP object... - if (SUCCEEDED(hr) && (m_hwndIPObject)) - SetFocus(m_hwndIPObject); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::UIDeactivateView -// -// UI Deactivates the object (which should hide toolbars and caret). -// -STDMETHODIMP CDsoDocObject::UIDeactivateView() -{ - HRESULT hr = S_FALSE; - ODS("CDsoDocObject::UIDeactivateView()\n"); - if (m_pdocv) - hr = m_pdocv->UIActivate(FALSE); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IsDirty -// -// Determines if the file is dirty (by asking IPersistXXX::IsDirty). -// -STDMETHODIMP_(BOOL) CDsoDocObject::IsDirty() -{ - BOOL fDirty = TRUE; // Assume we are dirty unless object says we are not - IPersistStorage *pprststg; - IPersistFile *pprst; - - // Can't be dirty without object - CHECK_NULL_RETURN(m_pole, FALSE); - - // Ask object its dirty state... - if ((m_pmkSourceFile) && - SUCCEEDED(m_pole->QueryInterface(IID_IPersistFile, (void**)&pprst))) - { - fDirty = ((pprst->IsDirty() == S_FALSE) ? FALSE : TRUE); - pprst->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IPersistStorage, (void**)&pprststg))) - { - fDirty = ((pprststg->IsDirty() == S_FALSE) ? FALSE : TRUE); - pprststg->Release(); - } - - return fDirty; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::Save -// -// Does default save action for existing document (if it is not read-only). -// -// There are three types of loaded doc objects we can save: -// (1) Files obtained by URL write bind via MSDAIPP; -// (2) Files opened from local file source; and -// (3) Objects already running or files linked to via OLE moniker. -// -// This function determines which type we should do the save, and call -// the right code for that type. -// -STDMETHODIMP CDsoDocObject::Save() -{ - HRESULT hr = DSO_E_NOTBEENSAVED; - - // We can't do save default if file was open read-only, - // caller must do save with new file name... - if (!IsReadOnly()) - { - // If we have a URL (write-access) resource, do MSDAIPP save... - if (m_pstmWebResource) - { - hr = SaveToURL(NULL, TRUE, NULL, NULL); - } - // Else if it is local file, do a local save... - else if (m_pwszSourceFile) - { - hr = SaveToFile(NULL, TRUE); - } - } - - return hr; -} - -STDMETHODIMP CDsoDocObject::SaveToFile(LPWSTR pwszFile, BOOL fOverwriteFile) -{ - HRESULT hr = E_UNEXPECTED; - IStorage *pstg; - LPWSTR pwszFullName = NULL; - LPWSTR pwszRename = NULL; - BOOL fDoNormalSave = FALSE; - BOOL fDoOverwriteOps = FALSE; - BOOL fFileOpSuccess = FALSE; - - TRACE2("CDsoDocObject::SaveToFile(%S, %d)\n", ((pwszFile) ? pwszFile : L"[Default]"), fOverwriteFile); - CHECK_NULL_RETURN(m_pole, hr); - - // If they passed no file, use the default if current file is not read-only... - if (fDoNormalSave = (pwszFile == NULL)) - { - // File must be read-write for normal save... - if (IsReadOnly()) return DSO_E_DOCUMENTREADONLY; - - // If we are not moniker bound, we'll use the existing file path for ole save... - if (m_pwszSourceFile == NULL) return DSO_E_NOTBEENSAVED; - - pwszFile = (pwszFullName = DsoCopyString(m_pwszSourceFile)); - if (pwszFile == NULL) return E_OUTOFMEMORY; - } - else - { - // Make sure a file extension exists for string passed by caller... - if (ValidateFileExtension(pwszFile, &pwszFullName)) - pwszFile = pwszFullName; - } - - // See if we will be overwriting, and error unless given permission to do so... - if ((fDoOverwriteOps = FFileExists(pwszFile)) && !(fOverwriteFile)) - return STG_E_FILEALREADYEXISTS; - - // If we had a previous lock on storage, we have to free it... - SAFE_RELEASE_INTERFACE(m_pstgSourceFile); - - // If we are overwriting, we do a little Shell Operation here. This is done - // for two reasons: (1) it keeps the server from asking us to overwrite the - // file as it normally would in case of normal save; and (2) it lets us - // restore the original if the save fails... - if (fDoOverwriteOps) - { - pwszRename = DsoCopyStringCat(pwszFile, L".dstmp"); - fFileOpSuccess = ((pwszRename) && FPerformShellOp(FO_RENAME, pwszFile, pwszRename)); - } - - // Time to do the save to new file. - - // First we try to save by moniker using IPersistMoniker/IPersistFile. Check for defaut - // save to the current document. If to a new doc, create new moniker and save ... - if ((fDoNormalSave) && (m_pmkSourceFile)) - { - hr = SaveDocToMoniker(m_pmkSourceFile, m_pbctxSourceFile, TRUE); - } - else if (pwszFile) - { - // Create a new moniker for the save... - IMoniker *pnewmk = NULL; - if (SUCCEEDED(hr = CreateFileMoniker(pwszFile, &pnewmk))) - { - - // If current document is read-only, we want new one to be read-write... - if ((m_fOpenReadOnly) && (m_pbctxSourceFile)) - { - BIND_OPTS bndopts; bndopts.cbStruct = sizeof(BIND_OPTS); - if (SUCCEEDED(m_pbctxSourceFile->GetBindOptions(&bndopts))) - { - bndopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE); - hr = m_pbctxSourceFile->SetBindOptions(&bndopts); - } - } - else if (m_pbctxSourceFile == NULL) - { - // May need to create a new bind context if we haven't already... - if (SUCCEEDED(hr = CreateBindCtx(0, &m_pbctxSourceFile))) - { - BIND_OPTS bndopts; bndopts.cbStruct = sizeof(BIND_OPTS); - bndopts.grfFlags = BIND_MAYBOTHERUSER; - bndopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE); - bndopts.dwTickCountDeadline = 10000; - hr = m_pbctxSourceFile->SetBindOptions(&bndopts); - } - } - - // Do the save with moniker bind option and keep lock... - if (SUCCEEDED(hr = SaveDocToMoniker(pnewmk, m_pbctxSourceFile, TRUE))) - { - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_SET_INTERFACE(m_pmkSourceFile, pnewmk); - m_fOpenReadOnly = FALSE; // Should be read-write now... - } - - pnewmk->Release(); - } - } - - - // If we are not using moniker binding, or the save with new moniker failed, try to use - // a save copy approach and we will overwrite the file... - if (!(m_pmkSourceFile) || FAILED(hr)) - { - // Update the internal storage to the current doc state... - if (((m_pstgfile) || SUCCEEDED(hr = CreateObjectStorage(m_clsidObject))) && - SUCCEEDED(hr = SaveObjectStorage())) - { - // Ask for server to save to file in "Save Copy As" fashion. This produces a native - // OLE document file more similar to what happens in normal SaveAs dialog for BIFF file... - hr = SaveDocToFile(pwszFile, FALSE); - - // If that doesn't work, save out the storage as OLE storage and ... - if (FAILED(hr) && SUCCEEDED(hr = StgCreateDocfile(pwszFile, STGM_TRANSACTED | - STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE, 0, &pstg))) - { - WriteClassStg(pstg, m_clsidObject); - - if (SUCCEEDED(hr = m_pstgfile->CopyTo(0, NULL, NULL, pstg))) - hr = pstg->Commit(STGC_OVERWRITE); - - pstg->Release(); - } - } - - // If that worked, and we once had a moniker, we have to dump it now... - if (SUCCEEDED(hr) && (m_pmkSourceFile)) - { - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_RELEASE_INTERFACE(m_pbctxSourceFile); - } - } - - // If we made a copy to protect on overwrite, either restore or delete it as needed... - if ((fDoOverwriteOps) && (fFileOpSuccess) && (pwszRename)) - { - FPerformShellOp((FAILED(hr) ? FO_RENAME : FO_DELETE), pwszRename, pwszFile); - } - - // If this is an exisitng file save, or the operation failed, relock the - // the original file save source... - if ((m_pstgfile) && !(m_pmkSourceFile) && (m_pwszSourceFile) && - ((fDoNormalSave) || (FAILED(hr)))) - { - StgOpenStorage(m_pwszSourceFile, NULL, - ((m_pwszWebResource) ? - (STGM_READ | STGM_SHARE_DENY_WRITE) : - (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE)), - NULL, 0, &m_pstgSourceFile); - } - else if (SUCCEEDED(hr)) - { - // Otherwise if we succeeded, free any existing file info we have it and - // save the new file info for later re-saves (and lock)... - SAFE_FREESTRING(m_pwszSourceFile); - SAFE_FREESTRING(m_pwszWebResource); - SAFE_RELEASE_INTERFACE(m_pstmWebResource); - - // Save the name, and try to lock the file for editing... - if (m_pwszSourceFile = DsoCopyString(pwszFile)) - { - m_idxSourceName = CalcDocNameIndex(m_pwszSourceFile); - - if (!(m_pmkSourceFile) && (m_pstgfile)) - StgOpenStorage(m_pwszSourceFile, NULL, - (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE), NULL, 0, &m_pstgSourceFile); - } - } - - if (pwszRename) - DsoMemFree(pwszRename); - - if (pwszFullName) - DsoMemFree(pwszFullName); - - return hr; -} - -STDMETHODIMP CDsoDocObject::SaveToURL(LPWSTR pwszURL, BOOL fOverwriteFile, LPWSTR pwszUserName, LPWSTR pwszPassword) -{ - HRESULT hr = DSO_E_DOCUMENTREADONLY; - - // If we have no URL to save to and no previously open web stream, fail... - if ((!pwszURL) && (!m_pstmWebResource)) - return hr; - - // Save out the user name and password (if provided) for IAuthenticate... - if (pwszUserName) - { - SAFE_FREESTRING(m_pwszUsername); - m_pwszUsername = DsoCopyString(pwszUserName); - - SAFE_FREESTRING(m_pwszPassword); - m_pwszPassword = DsoCopyString(pwszPassword); - } - - if ((pwszURL) && (m_pwszWebResource) && - (DsoCompareStringsEx(pwszURL, -1, m_pwszWebResource, -1) == CSTR_EQUAL)) - pwszURL = NULL; - - if (pwszURL) - { - IStream *pstmT = NULL; - LPWSTR pwszFullUrl = NULL; - LPWSTR pwszTempFile; - - IStream *pstmBkupStm; - IStorage *pstgBkupStg; - LPWSTR pwszBkupFile, pwszBkupUrl; - UINT idxBkup; - - if (!GetTempPathForURLDownload(pwszURL, &pwszTempFile)) - return E_INVALIDARG; - - if (ValidateFileExtension(pwszURL, &pwszFullUrl)) - pwszURL = pwszFullUrl; - - // We are going to save out the current file info in case of - // an error we can restore it to do native saves back to open location... - pstmBkupStm = m_pstmWebResource; m_pstmWebResource = NULL; - pwszBkupUrl = m_pwszWebResource; m_pwszWebResource = NULL; - pwszBkupFile = m_pwszSourceFile; m_pwszSourceFile = NULL; - pstgBkupStg = m_pstgSourceFile; m_pstgSourceFile = NULL; - idxBkup = m_idxSourceName; m_idxSourceName = 0; - - // Save the object to a new (temp) file on the local drive... - if (SUCCEEDED(hr = SaveToFile(pwszTempFile, TRUE))) - { - // Then upload from that file... - hr = IPPUploadWebResource(pwszTempFile, &pstmT, pwszURL, fOverwriteFile); - } - - // If both calls succeed, we can free the old file/url location info - // and save the new information, otherwise restore the old info from backup... - if (SUCCEEDED(hr)) - { - SAFE_RELEASE_INTERFACE(pstgBkupStg); - - if ((pstmBkupStm) && (pwszBkupFile)) - FPerformShellOp(FO_DELETE, pwszBkupFile, NULL); - - SAFE_RELEASE_INTERFACE(pstmBkupStm); - SAFE_FREESTRING(pwszBkupUrl); - SAFE_FREESTRING(pwszBkupFile); - - m_pstmWebResource = pstmT; - m_pwszWebResource = DsoCopyString(pwszURL); - //m_pwszSourceFile already saved in SaveStorageToFile - //m_pstgSourceFile already saved in SaveStorageToFile - //m_idxSourceName already calced in SaveStorageToFile; - - } - else - { - if (m_pstgSourceFile) - m_pstgSourceFile->Release(); - - if (m_pwszSourceFile) - { - FPerformShellOp(FO_DELETE, m_pwszSourceFile, NULL); - DsoMemFree(m_pwszSourceFile); - } - - m_pstmWebResource = pstmBkupStm; - m_pwszWebResource = pwszBkupUrl; - m_pwszSourceFile = pwszBkupFile; - m_pstgSourceFile = pstgBkupStg; - m_idxSourceName = idxBkup; - } - - if (pwszFullUrl) - DsoMemFree(pwszFullUrl); - - DsoMemFree(pwszTempFile); - - } - else if ((m_pstmWebResource) && (m_pwszSourceFile)) - { - if (SUCCEEDED(hr = SaveToFile(NULL, TRUE))) - hr = IPPUploadWebResource(m_pwszSourceFile, &m_pstmWebResource, NULL, TRUE); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::DoOleCommand -// -// Calls IOleCommandTarget::Exec on the active object to do a specific -// command (like Print, SaveCopy, Zoom, etc.). -// -STDMETHODIMP CDsoDocObject::DoOleCommand(DWORD dwOleCmdId, DWORD dwOptions, VARIANT* vInParam, VARIANT* vInOutParam) -{ - HRESULT hr; - OLECMD cmd = {dwOleCmdId, 0}; - TRACE2("CDsoDocObject::DoOleCommand(cmd=%d, Opts=%d\n", dwOleCmdId, dwOptions); - - // Can't issue OLECOMMANDs when in print preview mode (object calls us)... - if (InPrintPreview()) return E_ACCESSDENIED; - - // The server must support IOleCommandTarget, the CmdID being requested, and - // the command should be enabled. If this is the case, do the command... - if ((m_pcmdt) && SUCCEEDED(m_pcmdt->QueryStatus(NULL, 1, &cmd, NULL)) && - ((cmd.cmdf & OLECMDF_SUPPORTED) && (cmd.cmdf & OLECMDF_ENABLED))) - { - TRACE1("QueryStatus say supported = 0x%X\n", cmd.cmdf); - - // Do the command asked by caller on default command group... - hr = m_pcmdt->Exec(NULL, cmd.cmdID, dwOptions, vInParam, vInOutParam); - TRACE1("DocObj_IOleCommandTarget::Exec() = 0x%X\n", hr); - - if ((dwOptions == OLECMDEXECOPT_PROMPTUSER)) - { - // Handle bug issue for PPT when printing using prompt... - if ((hr == E_INVALIDARG) && (cmd.cmdID == OLECMDID_PRINT) && IsPPTObject()) - { - ODS("Retry command for PPT\n"); - hr = m_pcmdt->Exec(NULL, cmd.cmdID, OLECMDEXECOPT_DODEFAULT, vInParam, vInOutParam); - TRACE1("DocObj_IOleCommandTarget::Exec() = 0x%X\n", hr); - } - - // If user canceled an Office dialog, that's OK... - if (hr == 0x80040103) - hr = S_FALSE; - } - } - else - { - TRACE1("Command Not supportted (%d)\n", cmd.cmdf); - hr = DSO_E_COMMANDNOTSUPPORTED; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::Close -// -// Close down the object and disconnect us from any handlers/proxies. -// -STDMETHODIMP CDsoDocObject::Close() -{ - HRESULT hr; - - ODS("CDsoDocObject::Close\n"); - m_fInClose = TRUE; - - // Make sure we are not in print preview before close... - if (InPrintPreview()) - ExitPrintPreview(TRUE); - - // Go ahead an IP deactivate the object... - hr = IPDeactivateView(); - - SAFE_RELEASE_INTERFACE(m_pprtprv); - SAFE_RELEASE_INTERFACE(m_pcmdt); - SAFE_RELEASE_INTERFACE(m_pdocv); - SAFE_RELEASE_INTERFACE(m_pipactive); - SAFE_RELEASE_INTERFACE(m_pipobj); - - // Release the OLE object and cleanup... - if (m_pole) - { - // Free running lock if we set it... - FreeRunningLock(); - - // Tell server to release our client site... - m_pole->SetClientSite(NULL); - - // Finally, close the object and release the pointer... - hr = m_pole->Close(OLECLOSE_NOSAVE); - - if (m_fDisconnectOnQuit) - CoDisconnectObject((IUnknown*)m_pole, 0); - - SAFE_RELEASE_INTERFACE(m_pole); - } - - SAFE_RELEASE_INTERFACE(m_pstgSourceFile); - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_RELEASE_INTERFACE(m_pbctxSourceFile); - - // Free any temp file we might have... - if ((m_pstmWebResource) && (m_pwszSourceFile)) - FPerformShellOp(FO_DELETE, m_pwszSourceFile, NULL); - - SAFE_RELEASE_INTERFACE(m_pstmWebResource); - SAFE_FREESTRING(m_pwszWebResource); - SAFE_FREESTRING(m_pwszSourceFile); - m_idxSourceName = 0; - - if (m_fDisconnectOnQuit) - { - CoDisconnectObject((IUnknown*)this, 0); - m_fDisconnectOnQuit = FALSE; - } - - SAFE_RELEASE_INTERFACE(m_pstmview); - SAFE_RELEASE_INTERFACE(m_pstgfile); - - ClearMergedMenu(); - m_fInClose = FALSE; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject Notification Functions - The OCX should call these to -// let the doc site update the object as needed. -// - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifySizeChange -// -// Resets the size of the site window and tells UI active object to -// resize as well. If we are UI active, we'll call ResizeBorder to -// re-negotiate toolspace (allow toolbars to shrink and grow), otherwise -// we'll just set the IP active view rect (minus any toolspace, which -// should be none since object is not UI active!). -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifySizeChange(LPRECT prc) -{ - RECT rc; - - SetRect(&rc, 0, 0, (prc->right - prc->left), (prc->bottom - prc->top)); - if (rc.right < 0) rc.right = 0; - if (rc.top < 0) rc.top = 0; - - // First, resize our frame site window tot he new size (don't change focus)... - if (m_hwnd) - { - m_rcViewRect = *prc; - - SetWindowPos(m_hwnd, NULL, m_rcViewRect.left, m_rcViewRect.top, - rc.right, rc.bottom, SWP_NOACTIVATE | SWP_NOZORDER); - - UpdateWindow(m_hwnd); - } - - // If we have an active object (i.e., Document is still UI active) we should - // tell it of the resize so it can re-negotiate border space... - if ((m_fObjectUIActive) && (m_pipactive)) - { - m_pipactive->ResizeBorder(&rc, (IOleInPlaceUIWindow*)&m_xOleInPlaceFrame, TRUE); - } - else if ((m_fObjectIPActive) && (m_pdocv)) - { - rc.left += m_bwToolSpace.left; rc.right -= m_bwToolSpace.right; - rc.top += m_bwToolSpace.top; rc.bottom -= m_bwToolSpace.bottom; - m_pdocv->SetRect(&rc); - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyAppActivate -// -// Notify doc object when the top-level frame window goes active and -// deactive so it can handle window focs and paiting correctly. Failure -// to not forward this notification leads to bad behavior. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyAppActivate(BOOL fActive, DWORD dwThreadID) -{ - // This is critical for DocObject servers, so forward these messages - // when the object is UI active... - if (m_pipactive) - { - // We should always tell obj server when our frame activates, but - // don't tell it to go deactive if the thread gaining focus is - // the server's since our frame may have lost focus because of - // a top-level modeless dialog (ex., the RefEdit dialog of Excel)... - if (!m_fObjectInModalCondition) - m_pipactive->OnFrameWindowActivate(fActive); - } - - m_fAppWindowActive = fActive; -} - -STDMETHODIMP_(void) CDsoDocObject::OnNotifyControlFocus(BOOL fGotFocus) -{ - HWND hwnd; - - // For UI Active DocObject server, we will tell them we gain/lose control focus... - if ((m_pipactive) && (!m_fObjectInModalCondition)) - { - // TODO: Normally we would notify object of loss of control focus (such as user - // moving focus from framer control to another text box or something on the same - // form), but this can cause PPT to drop its toolbar and XL to drop its formula - // bar, so we are skipping this call. We really should determine if it is needed - // for another host (like Visio or something?) but that is to do... - // - // m_pipactive->OnDocWindowActivate(fGotFocus); - - // We should forward the focus to the active window if window with the focus - // is not already one that is parented to us... - if ((fGotFocus) && !IsWindowChild(m_hwnd, GetFocus()) && - SUCCEEDED(m_pipactive->GetWindow(&hwnd))) - SetFocus(hwnd); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyPaletteChanged -// -// Give the object first chance at realizing a palette. Important on -// 256 color machines, but not so critical these days when everyone is -// running full 32-bit True Color graphic cards. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyPaletteChanged(HWND hwndPalChg) -{ - if ((m_fObjectUIActive) && (m_hwndUIActiveObj)) - SendMessage(m_hwndUIActiveObj, WM_PALETTECHANGED, (WPARAM)hwndPalChg, 0L); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyChangeToolState -// -// This should be called to get object to show/hide toolbars as needed. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyChangeToolState(BOOL fShowTools) -{ - // Can't change toolbar state in print preview (sorry)... - if (InPrintPreview()) return; - - // If we want to show/hide toolbars, we can do the following... - if (fShowTools != (BOOL)m_fDisplayTools) - { - OLECMD cmd; - cmd.cmdID = OLECMDID_HIDETOOLBARS; - - m_fDisplayTools = fShowTools; - - // Use IOleCommandTarget(OLECMDID_HIDETOOLBARS) to toggle on/off. We have - // to check that server supports it and if its state matches our own so - // when toggle, we do the correct thing by the user... - if ((m_pcmdt) && SUCCEEDED(m_pcmdt->QueryStatus(NULL, 1, &cmd, NULL)) && - ((cmd.cmdf & OLECMDF_SUPPORTED) || (cmd.cmdf & OLECMDF_ENABLED))) - { - if (((m_fDisplayTools) && ((cmd.cmdf & OLECMDF_LATCHED) == OLECMDF_LATCHED)) || - (!(m_fDisplayTools) && !((cmd.cmdf & OLECMDF_LATCHED) == OLECMDF_LATCHED))) - { - m_pcmdt->Exec(NULL, OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - else if (m_fDisplayTools && (IsWordObject() || IsPPTObject())) - { - // HACK: Word and PowerPoint 2007 do not report the correct latched state for the ribbon, - // so if we are trying to show the tools after hiding them, they will say they are already - // visible when the ribbon is not. This is an apparant trick they are using to force the - // ribbon visible in IE embed cases, but it is causing us problems. - m_pcmdt->Exec(NULL, OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - - // There can be focus issues when turning them off, so make sure - // the object is on top of the z-order... - if ((!m_fDisplayTools) && (m_hwndIPObject)) - BringWindowToTop(m_hwndIPObject); - - // If user toggles off the toolbar while the object is UI active, and - // we are not still in activation process, we need to explictly tell Office - // apps to also hide the "Web" toolbar. For Office, OLECMDID_HIDETOOLBARS puts - // the app into a "web view" which (in some apps) brings up the web toolbar. - // Since we intend to have no tools, we have to turn it off by code... - if ((m_fObjectUIActive) && (m_fObjectActivateComplete)) - TurnOffWebToolbar(!m_fDisplayTools); - - } - else if (m_pdocv) - { - // If we have a DocObj server, but no IOleCommandTarget, do things the hard - // way and resize. When server attempts to resize window it will have to - // re-negotiate BorderSpace and we fail there, so server "should" not - // display its tools (at least that is the idea!)... - RECT rc; GetClientRect(m_hwnd, &rc); - MapWindowPoints(m_hwnd, m_hwndCtl, (LPPOINT)&rc, 2); - OnNotifySizeChange(&rc); - } - } - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject Protected Functions -- Helpers -// - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::InstantiateDocObjectServer (protected) -// -// Startup OLE Document Object server and get IOleObject pointer. -// -STDMETHODIMP CDsoDocObject::InstantiateDocObjectServer(REFCLSID rclsid, IOleObject **ppole) -{ - HRESULT hr; - IUnknown *punk = NULL; - - ODS("CDsoDocObject::InstantiateDocObjectServer()\n"); - - // We perform custom create in order of local server then inproc server... - if (SUCCEEDED(hr = CoCreateInstance(rclsid, NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**)&punk)) || - SUCCEEDED(hr = CoCreateInstance(rclsid, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&punk))) - { - // Ask for IOleObject interface... - if (SUCCEEDED(hr = punk->QueryInterface(IID_IOleObject, (void**)ppole))) - { - // TODO: Add strong connection to remote server (IExternalConnection??)... - } - punk->Release(); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateObjectStorage (protected) -// -// Makes the internal IStorage to host the object and assigns the CLSID. -// -STDMETHODIMP CDsoDocObject::CreateObjectStorage(REFCLSID rclsid) -{ - HRESULT hr; - LPWSTR pwszName; - DWORD dwid; - CHAR szbuf[256]; - - if ((!m_pstgroot)) return E_UNEXPECTED; - - // Next, create a new object storage (with unique name) in our - // temp root storage "file" (this keeps an OLE integrity some servers - // need to function correctly instead of IP activating from file directly). - - // We make a fake object storage name... - dwid = ((rclsid.Data1)|GetTickCount()); - wsprintf(szbuf, "OLEDocument%X", dwid); - - if (!(pwszName = DsoConvertToLPWSTR(szbuf))) - return E_OUTOFMEMORY; - - // Create the sub-storage... - hr = m_pstgroot->CreateStorage(pwszName, - STGM_TRANSACTED | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &m_pstgfile); - - DsoMemFree(pwszName); - - if (FAILED(hr)) return hr; - - // We'll also create a stream for OLE view settings (non-critical)... - if (pwszName = DsoConvertToLPWSTR(szbuf)) - { - m_pstgroot->CreateStream(pwszName, - STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &m_pstmview); - DsoMemFree(pwszName); - } - - // Finally, write out the CLSID for the new substorage... - hr = WriteClassStg(m_pstgfile, rclsid); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveObjectStorage (protected) -// -// Saves the object back to the internal IStorage. Returns S_FALSE if -// there is no file storage for this document (it depends on how file -// was loaded). In most cases we should have one, and this copies data -// into the internal storage for save. -// -STDMETHODIMP CDsoDocObject::SaveObjectStorage() -{ - HRESULT hr = S_FALSE; - IPersistStorage *pipstg = NULL; - - // Got to have object to save state... - if (!m_pole) return E_UNEXPECTED; - - // If we have file storage, ask for IPersist and Save (commit changes)... - if ((m_pstgfile) && - SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistStorage, (void**)&pipstg))) - { - if (SUCCEEDED(hr = pipstg->Save(m_pstgfile, TRUE))) - hr = pipstg->SaveCompleted(NULL); - - hr = m_pstgfile->Commit(STGC_DEFAULT); - pipstg->Release(); - } - - // Go ahead and save the view state if view still active (non-critical)... - if ((m_pdocv) && (m_pstmview)) - { - m_pdocv->SaveViewState(m_pstmview); - m_pstmview->Commit(STGC_DEFAULT); - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveDocToMoniker (protected) -// -// Saves document to location spcified by the moniker passed. The server -// needs to support either IPersistMoniker or IPersistFile. This is used -// primarily when document was opened by moniker instead of storage. -// -STDMETHODIMP CDsoDocObject::SaveDocToMoniker(IMoniker *pmk, IBindCtx *pbc, BOOL fKeepLock) -{ - HRESULT hr = E_FAIL; - IPersistMoniker *prstmk; - LPOLESTR pwszFullName = NULL; - - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - CHECK_NULL_RETURN(pmk, E_POINTER); - - // Get IPersistMoniker interface and ask it to save context if it existing moniker... - if (SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistMoniker, (void**)&prstmk))) - { - hr = prstmk->Save(pmk, pbc, fKeepLock); - prstmk->Release(); - } - - // If that failed to work, switch to IPersistFile and use full path to the new file... - if (FAILED(hr) && SUCCEEDED(hr = pmk->GetDisplayName(pbc, NULL, &pwszFullName))) - { - hr = SaveDocToFile(pwszFullName, fKeepLock); - CoTaskMemFree(pwszFullName); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveDocToFile (protected) -// -// Saves document to location spcified by the path passed. The server -// needs to support either IPersistFile. -// -STDMETHODIMP CDsoDocObject::SaveDocToFile(LPWSTR pwszFullName, BOOL fKeepLock) -{ - HRESULT hr = E_FAIL; - IPersistFile *pipfile = NULL; - - BOOL fSameAsOpen = ((m_pwszSourceFile) && - DsoCompareStringsEx(pwszFullName, lstrlenW(pwszFullName), - m_pwszSourceFile, lstrlenW(m_pwszSourceFile)) == CSTR_EQUAL); - - if (SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistFile, (void**)&pipfile))) - { -#ifdef DSO_WORD12_PERSIST_BUG - LPOLESTR pwszWordCurFile = NULL; - // HACK: Word 2007 RTM has a bug in its IPersistFile::Save method which will cause it to save - // to the old file location and not the new one, so if the document being saved is a Word - // object and we are saving to a new file, then got to run this hack to copy the saved bits - // to the correct location... - if (IsWordObject()) - { - hr = pipfile->GetCurFile(&pwszWordCurFile); - if ((fSameAsOpen) && (pwszWordCurFile)) - { - // Check again if Word thinks the file is the same as we do... - fSameAsOpen = (DsoCompareStringsEx(pwszFullName, lstrlenW(pwszFullName), - pwszWordCurFile, lstrlenW(pwszWordCurFile)) == CSTR_EQUAL); - if (fSameAsOpen) - { // If it is the same file after all, we don't need to do the hack... - CoTaskMemFree(pwszWordCurFile); - pwszWordCurFile = NULL; - } - } - } -#endif - - // Do the save using file path or NULL if we are saving to current file... - //hr = pipfile->Save((fSameAsOpen ? NULL : pwszFullName), fKeepLock); - hr = pipfile->Save(pwszFullName, fKeepLock); - -#ifdef DSO_WORD12_PERSIST_BUG - // HACK: If we have the pwszWordCurFile, we'll assume Word 12 RTM might have saved this, and we - // need to check if Word saved to the right path or not. So check the paths, and if the new - // file is not there, copy the file Word saved to the new location... - if (pwszWordCurFile) - { - if (SUCCEEDED(hr) && !FFileExists(pwszFullName) && FFileExists(pwszWordCurFile)) - { - if (!FPerformShellOp(FO_COPY, pwszWordCurFile, pwszFullName)) - hr = E_ACCESSDENIED; - } - CoTaskMemFree(pwszWordCurFile); - } - // Hopefully, Word should have this fixed by Office 2007 SP1 and we can remove this hack! -#endif - pipfile->Release(); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ValidateDocObjectServer (protected) -// -// Quick validation check to see if CLSID is for DocObject server. -// -// Officially, the only way to determine if a server supports ActiveX -// Document embedding is to IP activate it and ask for IOleDocument, -// but that means going through the IP process just to fail if IOleDoc -// is not supported. Therefore, we are going to rely on the server's -// honesty in setting its reg keys to include the "DocObject" sub key -// under their CLSID. -// -// This is 99% accurate. For those servers that fail, too bad charlie! -// -STDMETHODIMP CDsoDocObject::ValidateDocObjectServer(REFCLSID rclsid) -{ - HRESULT hr = DSO_E_INVALIDSERVER; - CHAR szKeyCheck[256]; - LPSTR pszClsid; - HKEY hkey; - - // We don't handle MSHTML even though it is DocObject server. If you plan - // to view web pages in browser-like context, best to use WebBrowser control... - if (rclsid == CLSID_MSHTML_DOCUMENT) - return hr; - - // Convert the CLSID to a string and check for DocObject sub key... - if (pszClsid = DsoCLSIDtoLPSTR(rclsid)) - { - wsprintf(szKeyCheck, "CLSID\\%s\\DocObject", pszClsid); - - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, szKeyCheck, 0, KEY_READ, &hkey) == ERROR_SUCCESS) - { - hr = S_OK; - RegCloseKey(hkey); - } - - DsoMemFree(pszClsid); - } - else hr = E_OUTOFMEMORY; - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::GetDocumentTypeAndFileExtension -// -// Returns default file type and extension for a save of embedded object. -// -STDMETHODIMP_(BOOL) CDsoDocObject::GetDocumentTypeAndFileExtension(WCHAR** ppwszFileType, WCHAR** ppwszFileExt) -{ - DWORD dwType, dwSize; - LPWSTR pwszExt = NULL; - LPWSTR pwszType = NULL; - LPSTR pszType = NULL; - LPSTR pszClsid; - CHAR szkey[255]; - CHAR szbuf[255]; - HKEY hk; - - if ((ppwszFileType == NULL) && (ppwszFileExt == NULL)) - return FALSE; - - pszClsid = DsoCLSIDtoLPSTR(m_clsidObject); - if (!pszClsid) return FALSE; - - wsprintf(szkey, "CLSID\\%s\\DefaultExtension", pszClsid); - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, szkey, 0, KEY_READ, &hk) == ERROR_SUCCESS) - { - LPSTR pszT = szbuf; szbuf[0] = '\0'; dwSize = 255; - if (RegQueryValueEx(hk, NULL, 0, &dwType, (BYTE*)pszT, &dwSize) == ERROR_SUCCESS) - { - while (*(pszT++) && (*pszT != ',')) - (void)(0); - - if (*pszT == ',') - (pszType = pszT)++; - - *pszT = '\0'; - } - else lstrcpy(szbuf, ".ole"); - - RegCloseKey(hk); - } - else lstrcpy(szbuf, ".ole"); - - pwszExt = DsoConvertToLPWSTR(szbuf); - if (ppwszFileExt) *ppwszFileExt = pwszExt; - - if (ppwszFileType) - { - ULONG cb1, cb2; - LPWSTR pwszCombined; - CHAR szUnknownType[255]; - - if (!(*pszType)) - { - szUnknownType[0] = '\0'; - wsprintf(szUnknownType, "Native Document (*%s)", szbuf); - pszType = szUnknownType; - } - pwszType = DsoConvertToLPWSTR(pszType); - - cb1 = lstrlenW(pwszExt); - cb2 = lstrlenW(pwszType); - - pwszCombined = (LPWSTR)DsoMemAlloc(((cb1 + cb2 + 4) * sizeof(WCHAR))); - if (pwszCombined) - { - memcpy(&pwszCombined[0], pwszType,(cb2 * sizeof(WCHAR))); - pwszCombined[cb2] = L'\0'; - - pwszCombined[cb2 + 1] = L'*'; - memcpy(&pwszCombined[cb2 + 2], pwszExt, (cb1 * sizeof(WCHAR))); - pwszCombined[cb2 + 2 + cb1] = L'\0'; - pwszCombined[cb2 + 3 + cb1] = L'\0'; - - DsoMemFree(pwszType); - } - - *ppwszFileType = ((pwszCombined) ? pwszCombined : pwszType); - } - - if ((ppwszFileExt == NULL) && (pwszExt)) - DsoMemFree(pwszExt); - - DsoMemFree(pszClsid); - return (((ppwszFileExt) && (*ppwszFileExt)) || - ((ppwszFileType) && (*ppwszFileType))); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ValidateFileExtension (protected) -// -// Adds a default extension to save file path if user didn't provide -// one (uses CLSID and registry to determine default extension). -// -STDMETHODIMP_(BOOL) CDsoDocObject::ValidateFileExtension(WCHAR* pwszFile, WCHAR** ppwszOut) -{ - BOOL fHasExt = FALSE; - BOOL fChangedExt = FALSE; - LPWSTR pwszT; - LPWSTR pwszExt = NULL; - DWORD dw; - - if ((pwszFile) && (dw = lstrlenW(pwszFile)) && (ppwszOut)) - { - *ppwszOut = NULL; - - pwszT = (pwszFile + dw); - while ((pwszT != pwszFile) && - (*(--pwszT)) && ((*pwszT != L'\\') && (*pwszT != L'/'))) - { - if (*pwszT == L'.') fHasExt = TRUE; - } - - if (!(fHasExt) && GetDocumentTypeAndFileExtension(NULL, &pwszExt)) - { - *ppwszOut = DsoCopyStringCat(pwszFile, pwszExt); - fChangedExt = ((*ppwszOut) != NULL); - } - } - - return fChangedExt; -} - - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::EnsureOleServerRunning (protected) -// -// Verifies the DocObject server is running and is optionally locked -// while the embedding is taking place. -// -STDMETHODIMP CDsoDocObject::EnsureOleServerRunning(BOOL fLockRunning) -{ - HRESULT hr = S_FALSE; - IBindCtx *pbc; - IRunnableObject *pro; - IOleContainer *pocnt; - BIND_OPTS bnd = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, (STGM_READWRITE|STGM_SHARE_EXCLUSIVE), 10000}; - - TRACE1("CDsoDocObject::EnsureOleServerRunning(%d)\n", (DWORD)fLockRunning); - if (m_pole == NULL) return E_FAIL; - - // If we are already locked, don't need to do this again... - if (m_fLockedServerRunning) - return hr; - - // Create a bind ctx... - if (FAILED(CreateBindCtx(0, &pbc))) - return E_UNEXPECTED; - - // Setup default bind options for the run operation... - pbc->SetBindOptions(&bnd); - - // Get IRunnableObject and set server to run as OLE object. We check the - // running state first since this is proper OLE, but note that this is not - // returned from out-of-proc server, but the in-proc handler. Also note, we - // specify a timeout in case the object never starts, and "check" the object - // runs without IMessageFilter errors... - if (SUCCEEDED(m_pole->QueryInterface(IID_IRunnableObject, (void**)&pro))) - { - - // If the object is not currently running, let's run it... - if (!(pro->IsRunning())) - hr = pro->Run(pbc); - - // Set the object server as a contained object (i.e., OLE object)... - pro->SetContainedObject(TRUE); - - // Lock running if desired... - if (fLockRunning) - m_fLockedServerRunning = SUCCEEDED(pro->LockRunning(TRUE, TRUE)); - - pro->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IOleContainer, (void**)&pocnt))) - { - if (fLockRunning) - m_fLockedServerRunning = SUCCEEDED(pocnt->LockContainer(TRUE)); - - pocnt->Release(); - } - - pbc->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::FreeRunningLock (protected) -// -// Free any previous lock made by EnsureOleServerRunning. -// -STDMETHODIMP_(void) CDsoDocObject::FreeRunningLock() -{ - IRunnableObject *pro; - IOleContainer *pocnt; - - ODS("CDsoDocObject::FreeRunningLock(%d)\n"); - ASSERT(m_pole); - - // Don't do anything if we didn't lock the server... - if (m_fLockedServerRunning == FALSE) - return; - - // Get IRunnableObject and free lock... - if (SUCCEEDED(m_pole->QueryInterface(IID_IRunnableObject, (void**)&pro))) - { - pro->LockRunning(FALSE, TRUE); - pro->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IOleContainer, (void**)&pocnt))) - { - pocnt->LockContainer(FALSE); - pocnt->Release(); - } - - m_fLockedServerRunning = FALSE; - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SetRunningServerLock -// -// Sets an external lock on the running object server. -// -STDMETHODIMP CDsoDocObject::SetRunningServerLock(BOOL fLock) -{ - HRESULT hr; - TRACE1("CDsoDocObject::SetRunningServerLock(%d)\n", (DWORD)fLock); - - // Word doesn't obey normal running lock, but does have method to explicitly - // lock the server for mail, so we'll use that in the Word case... - if (IsWordObject()) - { - IClassFactory *pcf = NULL; - interface ifoo : public IUnknown - { - STDMETHOD(_uncall)() PURE; - STDMETHOD(lock)(BOOL f) PURE; - } *pi = NULL; - const GUID iidifoo = {0x0006729A, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; - - SEH_TRY - hr = CoGetClassObject(CLSID_WORD_DOCUMENT_DOC, CLSCTX_LOCAL_SERVER, NULL, IID_IClassFactory, (void**)&pcf); - if (SUCCEEDED(hr) && (pcf)) - { - hr = pcf->QueryInterface(iidifoo, (void**)&pi); - if (SUCCEEDED(hr) && (pi)) - { - hr = pi->lock(fLock); - pi->Release(); - } - pcf->Release(); - } - SEH_EXCEPT(hr) - } - else - { - if (fLock) - { - hr = EnsureOleServerRunning(TRUE); - } - else - { - hr = (FreeRunningLock(), S_OK); - } - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateIPPBindResource (protected) -// -// Returns an instance of MSDAIPP URL resource provider which is used by -// Office/Windows for Web Folders (DAV/FPSE server). -// -STDMETHODIMP_(IUnknown*) CDsoDocObject::CreateIPPBindResource() -{ - HRESULT hr; - IDBProperties* pdbprops = NULL; - IBindResource* pres = NULL; - DBPROPSET rdbpset; - DBPROP rdbp[4]; - BSTR bstrLock; - DWORD dw = 256; - CHAR szUserName[256]; - - if (FAILED(CoCreateInstance(CLSID_MSDAIPP_BINDER, NULL, - CLSCTX_INPROC, IID_IDBProperties, (void**)&pdbprops))) - return NULL; - - bstrLock = (GetUserName(szUserName, &dw) ? DsoConvertToBSTR(szUserName) : NULL); - - memset(rdbp, 0, sizeof(4 * sizeof(DBPROP))); - - rdbpset.cProperties = 4; - rdbpset.guidPropertySet = DBPROPSET_DBINIT; - rdbpset.rgProperties = rdbp; - - rdbp[0].dwPropertyID = DBPROP_INIT_BINDFLAGS; - rdbp[0].vValue.vt = VT_I4; - rdbp[0].vValue.lVal = DBBINDURLFLAG_OUTPUT; - - rdbp[1].dwPropertyID = DBPROP_INIT_LOCKOWNER; - rdbp[1].vValue.vt = VT_BSTR; - rdbp[1].vValue.bstrVal = bstrLock; - - rdbp[2].dwPropertyID = DBPROP_INIT_LCID; - rdbp[2].vValue.vt = VT_I4; - rdbp[2].vValue.lVal = GetThreadLocale(); - - rdbp[3].dwPropertyID = DBPROP_INIT_PROMPT; - rdbp[3].vValue.vt = VT_I2; - rdbp[3].vValue.iVal = DBPROMPT_COMPLETE; - - if (pdbprops->SetProperties(1, &rdbpset) == S_OK) - { -#ifdef DSO_MSDAIPP_USE_DAVONLY - BSTR bstrClsid = SysAllocString(L"{9FECD570-B9D4-11D1-9C78-0000F875AC61}"); - if (bstrClsid) - { - rdbpset.cProperties = 1; - rdbpset.guidPropertySet = DBPROPSET_MSDAIPP_INIT; - rdbpset.rgProperties = rdbp; - - rdbp[0].dwPropertyID = 6; // DBPROP_INIT_PROTOCOLPROVIDER; - rdbp[0].vValue.vt = VT_BSTR; - rdbp[0].vValue.bstrVal = bstrClsid; - - hr = pdbprops->SetProperties(1, &rdbpset); - SysFreeString(bstrClsid); - } -#endif - hr = pdbprops->QueryInterface(IIDX_IBindResource, (void**)&pres); - } - - SAFE_FREEBSTR(bstrLock); - pdbprops->Release(); - - return (IUnknown*)pres; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPPDownloadWebResource (protected) -// -// Downloads the file specified by the URL to the given temp file. Locks -// the web resource for editing if ppstmKeepForSave is requested. -// -STDMETHODIMP CDsoDocObject::IPPDownloadWebResource(LPWSTR pwszURL, LPWSTR pwszFile, IStream** ppstmKeepForSave) -{ - HRESULT hr = E_UNEXPECTED; - IStream *pstm = NULL; - IBindResource *pres = NULL; - BYTE *rgbBuf; - DWORD dwStatus, dwBindFlags; - ULONG cbRead, cbWritten; - HANDLE hFile; - - // Sanity check... - if ((pwszURL == NULL) || (pwszFile == NULL) || (ppstmKeepForSave == NULL)) - return E_INVALIDARG; - - // We need MSDAIPP for full write access... - if (!(m_punkIPPResource) && !(m_punkIPPResource = CreateIPPBindResource())) - return DSO_E_REQUIRESMSDAIPP; - - rgbBuf = new BYTE[10240]; //a 10-k buffer for reading - if (!rgbBuf) return E_OUTOFMEMORY; - - // Use IBindResource::Bind to open an IStream and copy out the date to - // the file given. This will then be used to load the object from the file... - if (SUCCEEDED(m_punkIPPResource->QueryInterface(IIDX_IBindResource, (void**)&pres))) - { - dwBindFlags = (DBBINDURLFLAG_READ | DBBINDURLFLAG_WRITE | DBBINDURLFLAG_OUTPUT | DBBINDURLFLAG_SHARE_DENY_WRITE); -callagain: - if (SUCCEEDED(hr = pres->Bind(NULL, pwszURL, dwBindFlags, DBGUIDX_STREAM, - IID_IStream, (IAuthenticate*)&m_xAuthenticate, NULL, &dwStatus, (IUnknown**)&pstm))) - { - LARGE_INTEGER lintStart; lintStart.QuadPart = 0; - hr = pstm->Seek(lintStart, STREAM_SEEK_SET, NULL); - - if (FOpenLocalFile(pwszFile, GENERIC_WRITE, 0, CREATE_ALWAYS, &hFile)) - { - while (SUCCEEDED(hr)) - { - if (FAILED(hr = pstm->Read((void*)rgbBuf, 10240, &cbRead)) || - (cbRead == 0)) - break; - - if (FALSE == WriteFile(hFile, rgbBuf, cbRead, &cbWritten, NULL)) - { - hr = E_WIN32_LASTERROR; - break; - } - } - - CloseHandle(hFile); - } - else hr = E_WIN32_LASTERROR; - - SAFE_SET_INTERFACE(*ppstmKeepForSave, pstm); - - pstm->Release(); - } - else if ((hr == DB_E_NOTSUPPORTED) && ((dwBindFlags & DBBINDURLFLAG_OUTPUT) == DBBINDURLFLAG_OUTPUT)) - { - // WEC4 does not support DBBINDURLFLAG_OUTPUT flag, but if we are using WEC - // we don't really need the flag since this is not an HTTP GET call. Flip the - // flag off and call the method again to connect to server... - dwBindFlags &= ~DBBINDURLFLAG_OUTPUT; - goto callagain; - } - - pres->Release(); - } - - // Map an OLEDB error to a common "file" error so a user - // (and VB/VBScript) would better understand... - if (FAILED(hr)) - { - switch (hr) - { - case DB_E_NOTFOUND: hr = STG_E_FILENOTFOUND; break; - case DB_E_READONLY: - case DB_E_RESOURCELOCKED: hr = STG_E_LOCKVIOLATION; break; - case DB_SEC_E_PERMISSIONDENIED: - case DB_SEC_E_SAFEMODE_DENIED: hr = E_ACCESSDENIED; break; - case DB_E_CANNOTCONNECT: - case DB_E_TIMEOUT: hr = E_VBA_NOREMOTESERVER; break; - case E_NOINTERFACE: hr = E_UNEXPECTED; break; - } - } - - delete [] rgbBuf; - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPPUploadWebResource (protected) -// -// Uploads the file to a URL. The code can be used two ways: -// -// 1.) If ppstmSave contains a pointer to an existing IStream*, then we -// just upload to the existing stream. This allows for normal "Save" -// on an open web resource. -// -// 2.) If ppstmSave is NULL (or contains a NULL IStream*), we create a new -// web resource at the location given by pwszURLSaveTo and save to its -// stream. If ppstmSave is passed, we return the new IStream* to the -// caller who can then use it to do the other type of save next time. -// -STDMETHODIMP CDsoDocObject::IPPUploadWebResource(LPWSTR pwszFile, IStream** ppstmSave, LPWSTR pwszURLSaveTo, BOOL fOverwriteFile) -{ - HRESULT hr = E_UNEXPECTED; - ICreateRow *pcrow = NULL; - IStream *pstm = NULL; - BYTE *rgbBuf; - HANDLE hFile; - BOOL fstmIn = FALSE; - ULONG cbRead, cbWritten; - DWORD dwStatus, dwBindFlags; - - // We need MSDAIPP for full write access... - if (!(m_punkIPPResource) && !(m_punkIPPResource = CreateIPPBindResource())) - return DSO_E_REQUIRESMSDAIPP; - - // Check if this a "Save" on existing IStream* and jump to loop... - if ((ppstmSave) && (fstmIn = (BOOL)(pstm = *ppstmSave))) - goto uploadfrominstm; - - // Check the URL string and ask for ICreateRow (to make new web resource)... - if (!(pwszURLSaveTo) || !LooksLikeHTTP(pwszURLSaveTo) || - FAILED(m_punkIPPResource->QueryInterface(IIDX_ICreateRow, (void**)&pcrow))) - return hr; - - dwBindFlags = ( DBBINDURLFLAG_READ | - DBBINDURLFLAG_WRITE | - DBBINDURLFLAG_SHARE_DENY_WRITE | - (fOverwriteFile ? DBBINDURLFLAG_OVERWRITE : 0)); - - if (SUCCEEDED(hr = pcrow->CreateRow(NULL, pwszURLSaveTo, dwBindFlags, DBGUIDX_STREAM, - IID_IStream, (IAuthenticate*)&m_xAuthenticate, NULL, &dwStatus, NULL, (IUnknown**)&pstm))) - { - - // Once we are here, we have a stream (either handed in or opened from above). - // We just loop through and read from the file to the stream... -uploadfrominstm: - if (rgbBuf = new BYTE[10240]) //a 10-k buffer for reading - { - if (FOpenLocalFile(pwszFile, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, &hFile)) - { - LARGE_INTEGER lintStart; lintStart.QuadPart = 0; - hr = pstm->Seek(lintStart, STREAM_SEEK_SET, NULL); - - while (SUCCEEDED(hr)) - { - if (FALSE == ReadFile(hFile, rgbBuf, 10240, &cbRead, NULL)) - { - hr = E_WIN32_LASTERROR; - break; - } - - if (0 == cbRead) break; - - if (FAILED(hr = pstm->Write((void*)rgbBuf, cbRead, &cbWritten))) - break; - } - - // Need to commit the changes to make it official... - if (SUCCEEDED(hr)) - hr = pstm->Commit(STGC_DEFAULT); - - CloseHandle(hFile); - } - else hr = E_WIN32_LASTERROR; - - delete [] rgbBuf; - } - else hr = E_OUTOFMEMORY; - - // If we are not using a passed in IStream (and therefore created one), we - // should AddRef and pass back (if caller asked us to)... - if (!fstmIn) - { - if (SUCCEEDED(hr) && (ppstmSave) && (!(*ppstmSave))) - { - SAFE_SET_INTERFACE(*ppstmSave, pstm); - } - pstm->Release(); - } - - } - - // Map an OLEDB error to a common "file" error so a user - // (and VB/VBScript) would better understand... - if (FAILED(hr)) - { - switch (hr) - { - case DB_E_RESOURCEEXISTS: hr = STG_E_FILEALREADYEXISTS; break; - case DB_E_NOTFOUND: hr = STG_E_PATHNOTFOUND; break; - case DB_E_READONLY: - case DB_E_RESOURCELOCKED: hr = STG_E_LOCKVIOLATION; break; - case DB_SEC_E_PERMISSIONDENIED: - case DB_SEC_E_SAFEMODE_DENIED: hr = E_ACCESSDENIED; break; - case DB_E_CANNOTCONNECT: - case DB_E_TIMEOUT: hr = E_VBA_NOREMOTESERVER; break; - case DB_E_OUTOFSPACE: hr = STG_E_MEDIUMFULL; break; - case E_NOINTERFACE: hr = E_UNEXPECTED; break; - } - } - - if (pcrow) - pcrow->Release(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::TurnOffWebToolbar (protected) -// -// This function "turns off" the Web toolbar used by Office apps to -// do in-site navigation. The problem is when toggling tools off the -// bar may still be visible, so we have to explicitly turn it off if -// we want a true "no tool" state. -// -// This should *only* be called when turnning off the bars after object -// if inplace active. The call to OLECMDID_HIDETOOLBARS should hide all -// the primay toolbars, so we are just catching those attached to the -// document collection itself that are not in primary set. -// -STDMETHODIMP_(void) CDsoDocObject::TurnOffWebToolbar(BOOL fTurnedOff) -{ - IDispatch *pdisp; - VARIANT vtT[5]; - - ODS("CDsoDocObject::TurnOffWebToolbar()\n"); - - // Can't change toolbar state in print preview... - if (InPrintPreview()) return; - - if ((m_pipactive) && - (SUCCEEDED(m_pipactive->QueryInterface(IID_IDispatch, (void**)&pdisp))) && (pdisp)) - { - // Get the commandbars on the document object.... - if (SUCCEEDED(DsoDispatchInvoke(pdisp, - L"CommandBars", 0, DISPATCH_PROPERTYGET, 0, NULL, &vtT[0]))) - { - // Turn off Web toolbar... - ASSERT(vtT[0].vt == VT_DISPATCH); - vtT[1].vt = VT_BSTR; vtT[1].bstrVal = SysAllocString(L"Web"); - - if (SUCCEEDED(DsoDispatchInvoke(vtT[0].pdispVal, - L"Item", 0, DISPATCH_PROPERTYGET, 1, &vtT[1], &vtT[2]))) - { - ASSERT(vtT[2].vt == VT_DISPATCH); - vtT[3].vt = VT_BOOL; vtT[3].boolVal = 0; - DsoDispatchInvoke(vtT[2].pdispVal, - L"Visible", 0, DISPATCH_PROPERTYPUT, 1, &vtT[3], &vtT[2]); - VariantClear(&vtT[2]); - } - - VariantClear(&vtT[1]); - - // Word 2002/2003 also displays Reviewing toolbar, so kill it too... - if (fTurnedOff && IsWordObject()) - { - ASSERT(vtT[0].vt == VT_DISPATCH); - vtT[1].vt = VT_BSTR; vtT[1].bstrVal = SysAllocString(L"Reviewing"); - - if (SUCCEEDED(DsoDispatchInvoke(vtT[0].pdispVal, - L"Item", 0, DISPATCH_PROPERTYGET, 1, &vtT[1], &vtT[2]))) - { - ASSERT(vtT[2].vt == VT_DISPATCH); - vtT[3].vt = VT_BOOL; vtT[3].boolVal = 0; - DsoDispatchInvoke(vtT[2].pdispVal, - L"Visible", 0, DISPATCH_PROPERTYPUT, 1, &vtT[3], &vtT[2]); - VariantClear(&vtT[2]); - } - - VariantClear(&vtT[1]); - } - - VariantClear(&vtT[0]); - } - - pdisp->Release(); - } - -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ClearMergedMenu (protected) -// -// Frees the merged menu set by host. -// -STDMETHODIMP_(void) CDsoDocObject::ClearMergedMenu() -{ - if (m_hMenuMerged) - { - int cbMenuCnt = GetMenuItemCount(m_hMenuMerged); - for (int i = cbMenuCnt; i >= 0; --i) - RemoveMenu(m_hMenuMerged, i, MF_BYPOSITION); - - DestroyMenu(m_hMenuMerged); - m_hMenuMerged = NULL; - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CalcDocNameIndex (protected) -// -// Calculates position of the name portion of the full path string. -// -STDMETHODIMP_(DWORD) CDsoDocObject::CalcDocNameIndex(LPCWSTR pwszPath) -{ - DWORD cblen, idx = 0; - if ((pwszPath) && ((cblen = lstrlenW(pwszPath)) > 1)) - { - for (idx = cblen; idx > 0; --idx) - { - if (pwszPath[idx] == L'\\') - break; - } - - if ((idx) && !(++idx < cblen)) - idx = 0; - } - return idx; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnDraw (protected) -// -// Site drawing (does nothing in this version). -// -STDMETHODIMP_(void) CDsoDocObject::OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize) -{ - // Don't have to draw anything, object does all this because we are - // always UI active. If we allowed for multiple objects and had some - // non-UI active, we would have to do some drawing, but that will not - // happen in this sample. -} - - -//////////////////////////////////////////////////////////////////////// -// -// ActiveX Document Site Interfaces -// - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject IUnknown Interface Methods -// -// STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); -// STDMETHODIMP_(ULONG) AddRef(void); -// STDMETHODIMP_(ULONG) Release(void); -// -STDMETHODIMP CDsoDocObject::QueryInterface(REFIID riid, void** ppv) -{ - ODS("CDsoDocObject::QueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - HRESULT hr = S_OK; - - if (IID_IUnknown == riid) - { - *ppv = (IUnknown*)this; - } - else if (IID_IOleClientSite == riid) - { - *ppv = (IOleClientSite*)&m_xOleClientSite; - } - else if ((IID_IOleInPlaceSite == riid) || (IID_IOleWindow == riid)) - { - *ppv = (IOleInPlaceSite*)&m_xOleInPlaceSite; - } - else if (IID_IOleDocumentSite == riid) - { - *ppv = (IOleDocumentSite*)&m_xOleDocumentSite; - } - else if ((IID_IOleInPlaceFrame == riid) || (IID_IOleInPlaceUIWindow == riid)) - { - *ppv = (IOleInPlaceFrame*)&m_xOleInPlaceFrame; - } - else if (IID_IOleCommandTarget == riid) - { - *ppv = (IOleCommandTarget*)&m_xOleCommandTarget; - } - else if (IIDX_IAuthenticate == riid) - { - *ppv = (IAuthenticate*)&m_xAuthenticate; - } - else if (IID_IServiceProvider == riid) - { - *ppv = (IServiceProvider*)&m_xServiceProvider; - } - else if (IID_IContinueCallback == riid) - { - *ppv = (IContinueCallback*)&m_xContinueCallback; - } - else if (IID_IOlePreviewCallback == riid) - { - *ppv = (IOlePreviewCallback*)&m_xPreviewCallback; - } - else - { - *ppv = NULL; - hr = E_NOINTERFACE; - } - - if (NULL != *ppv) - ((IUnknown*)(*ppv))->AddRef(); - - return hr; -} - -STDMETHODIMP_(ULONG) CDsoDocObject::AddRef(void) -{ - TRACE1("CDsoDocObject::AddRef - %d\n", m_cRef + 1); - return ++m_cRef; -} - -STDMETHODIMP_(ULONG) CDsoDocObject::Release(void) -{ - TRACE1("CDsoDocObject::Release - %d\n", m_cRef - 1); - return --m_cRef; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleClientSite -- IOleClientSite Implementation -// -// STDMETHODIMP SaveObject(void); -// STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhich, LPMONIKER* ppmk); -// STDMETHODIMP GetContainer(LPOLECONTAINER* ppContainer); -// STDMETHODIMP ShowObject(void); -// STDMETHODIMP OnShowWindow(BOOL fShow); -// STDMETHODIMP RequestNewObjectLayout(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleClientSite) - -STDMETHODIMP CDsoDocObject::XOleClientSite::SaveObject(void) -{ - ODS("CDsoDocObject::XOleClientSite::SaveObject\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk) -{ - HRESULT hr = OLE_E_CANT_GETMONIKER; - METHOD_PROLOGUE(CDsoDocObject, OleClientSite); - - TRACE2("CDsoDocObject::XOleClientSite::GetMoniker(%d, %d)\n", dwAssign, dwWhichMoniker); - CHECK_NULL_RETURN(ppmk, E_POINTER); - *ppmk = NULL; - - // Provide moniker for object opened by moniker... - switch(dwWhichMoniker) - { - case OLEWHICHMK_OBJREL: - case OLEWHICHMK_OBJFULL: - { - if (pThis->m_pmkSourceFile) - { - *ppmk = pThis->m_pmkSourceFile; - hr = S_OK; - } - else if (dwAssign == OLEGETMONIKER_FORCEASSIGN) - { - // TODO: Should we allow frce create of moniker if we don't start with it? - } - } - break; - } - - // Need to AddRef returned value to caller on success... - if ((hr == S_OK) && (*ppmk)) - ((IUnknown*)*ppmk)->AddRef(); - - return hr; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::GetContainer(IOleContainer** ppContainer) -{ - ODS("CDsoDocObject::XOleClientSite::GetContainer\n"); - if (ppContainer) *ppContainer = NULL; - return E_NOINTERFACE; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::ShowObject(void) -{ - ODS("CDsoDocObject::XOleClientSite::ShowObject\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::OnShowWindow(BOOL fShow) -{ - ODS("CDsoDocObject::XOleClientSite::OnShowWindow\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::RequestNewObjectLayout(void) -{ - ODS("CDsoDocObject::XOleClientSite::RequestNewObjectLayout\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleInPlaceSite -- IOleInPlaceSite Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP CanInPlaceActivate(void); -// STDMETHODIMP OnInPlaceActivate(void); -// STDMETHODIMP OnUIActivate(void); -// STDMETHODIMP GetWindowContext(LPOLEINPLACEFRAME* ppIIPFrame, LPOLEINPLACEUIWINDOW* ppIIPUIWindow, LPRECT prcPos, LPRECT prcClip, LPOLEINPLACEFRAMEINFO pFI); -// STDMETHODIMP Scroll(SIZE sz); -// STDMETHODIMP OnUIDeactivate(BOOL fUndoable); -// STDMETHODIMP OnInPlaceDeactivate(void); -// STDMETHODIMP DiscardUndoState(void); -// STDMETHODIMP DeactivateAndUndo(void); -// STDMETHODIMP OnPosRectChange(LPCRECT prcPos); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleInPlaceSite) - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::GetWindow(HWND* phwnd) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::GetWindow\n"); - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::ContextSensitiveHelp(BOOL fEnterMode) -{ - ODS("CDsoDocObject::XOleInPlaceSite::ContextSensitiveHelp\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::CanInPlaceActivate(void) -{ - ODS("CDsoDocObject::XOleInPlaceSite::CanInPlaceActivate\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnInPlaceActivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnInPlaceActivate\n"); - - if ((!pThis->m_pole) || - FAILED(pThis->m_pole->QueryInterface(IID_IOleInPlaceObject, (void **)&(pThis->m_pipobj)))) - return E_UNEXPECTED; - - pThis->m_fObjectIPActive = TRUE; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnUIActivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnUIActivate\n"); - pThis->m_fObjectUIActive = TRUE; - pThis->m_pipobj->GetWindow(&(pThis->m_hwndIPObject)); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::GetWindowContext(IOleInPlaceFrame** ppFrame, - IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::GetWindowContext\n"); - - if (ppFrame) - { SAFE_SET_INTERFACE(*ppFrame, &(pThis->m_xOleInPlaceFrame)); } - - if (ppDoc) - *ppDoc = NULL; - - if (lprcPosRect) - *lprcPosRect = pThis->m_rcViewRect; - - if (lprcClipRect) - *lprcClipRect = *lprcPosRect; - - memset(lpFrameInfo, 0, sizeof(OLEINPLACEFRAMEINFO)); - lpFrameInfo->cb = sizeof(OLEINPLACEFRAMEINFO); - lpFrameInfo->hwndFrame = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::Scroll(SIZE sz) -{ - ODS("CDsoDocObject::XOleInPlaceSite::Scroll\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnUIDeactivate(BOOL fUndoable) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnUIDeactivate\n"); - - pThis->m_fObjectUIActive = FALSE; - pThis->m_xOleInPlaceFrame.SetMenu(NULL, NULL, NULL); - SetFocus(pThis->m_hwnd); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnInPlaceDeactivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnInPlaceDeactivate\n"); - - pThis->m_fObjectIPActive = FALSE; - pThis->m_hwndIPObject = NULL; - SAFE_RELEASE_INTERFACE((pThis->m_pipobj)); - - pThis->m_fAttemptPptPreview = FALSE; - pThis->m_fObjectActivateComplete = FALSE; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::DiscardUndoState(void) -{ - ODS("CDsoDocObject::XOleInPlaceSite::DiscardUndoState\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::DeactivateAndUndo(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::DeactivateAndUndo\n"); - if (pThis->m_pipobj) pThis->m_pipobj->InPlaceDeactivate(); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnPosRectChange(LPCRECT lprcPosRect) -{ - ODS("CDsoDocObject::XOleInPlaceSite::OnPosRectChange\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleDocumentSite -- IOleDocumentSite Implementation -// -// STDMETHODIMP ActivateMe(IOleDocumentView* pView); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleDocumentSite) - -STDMETHODIMP CDsoDocObject::XOleDocumentSite::ActivateMe(IOleDocumentView* pView) -{ - METHOD_PROLOGUE(CDsoDocObject, OleDocumentSite); - ODS("CDsoDocObject::XOleDocumentSite::ActivateMe\n"); - - HRESULT hr = E_FAIL; - IOleDocument* pmsodoc; - - // If we're passed a NULL view pointer, then try to get one from - // the document object (the object within us). - if (pView) - { - // Make sure that the view has our client site - hr = pView->SetInPlaceSite((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite)); - - pView->AddRef(); // we will be keeping the object if successful.. - } - else if (pThis->m_pole) - { - // Create a new view from the OleDocument... - if (FAILED(pThis->m_pole->QueryInterface(IID_IOleDocument, (void **)&pmsodoc))) - return E_FAIL; - - hr = pmsodoc->CreateView((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite), - pThis->m_pstmview, 0, &pView); - - pmsodoc->Release(); - } - - // If we have the view, apply view state... - if (SUCCEEDED(hr) && (pThis->m_pstmview)) - hr = pView->ApplyViewState(pThis->m_pstmview); - - // If any of the above failed, release the view and return... - if (FAILED(hr)) - { - SAFE_RELEASE_INTERFACE(pView); - return hr; - } - - // keep the view pointer... - pThis->m_pdocv = pView; - - // Get a command target (if available)... - pView->QueryInterface(IID_IOleCommandTarget, (void**)&(pThis->m_pcmdt)); - - // Make sure that the view has our client site - pView->SetInPlaceSite((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite)); - - // This sets up toolbars and menus first - if (SUCCEEDED(hr = pView->UIActivate(TRUE))) - { - // Set the window size sensitive to new toolbars - pView->SetRect(&(pThis->m_rcViewRect)); - - // Makes it all active - pView->Show(TRUE); - - pThis->m_fAppWindowActive = TRUE; - pThis->m_fObjectActivateComplete = TRUE; - - // Toogle tools off if that's what user wants... - if (!(pThis->m_fDisplayTools)) - { - pThis->m_fDisplayTools = TRUE; - pThis->OnNotifyChangeToolState(FALSE); - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleInPlaceFrame -- IOleInPlaceFrame Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP GetBorder(LPRECT prcBorder); -// STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS pBW); -// STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS pBW); -// STDMETHODIMP SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj); -// STDMETHODIMP InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW); -// STDMETHODIMP SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj); -// STDMETHODIMP RemoveMenus(HMENU hMenu); -// STDMETHODIMP SetStatusText(LPCOLESTR pszText); -// STDMETHODIMP EnableModeless(BOOL fEnable); -// STDMETHODIMP TranslateAccelerator(LPMSG pMSG, WORD wID); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleInPlaceFrame) - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::GetWindow(HWND* phWnd) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::GetWindow\n"); - return pThis->m_xOleInPlaceSite.GetWindow(phWnd); -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::ContextSensitiveHelp(BOOL fEnterMode) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::ContextSensitiveHelp\n"); - return pThis->m_xOleInPlaceSite.ContextSensitiveHelp(fEnterMode); -} - - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::GetBorder(LPRECT prcBorder) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::GetBorder\n"); - CHECK_NULL_RETURN(prcBorder, E_POINTER); - - // If we don't allow Toolspace, and we are already active, give - // no space for tools (ie, hide toolabrs), otherwise give as much we can... - if (!(pThis->m_fDisplayTools) && (pThis->m_pipactive)) - SetRectEmpty(prcBorder); - else - GetClientRect(pThis->m_hwnd, prcBorder); - - TRACE_LPRECT("prcBorder", prcBorder); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::RequestBorderSpace(LPCBORDERWIDTHS pBW) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::RequestBorderSpace\n"); - CHECK_NULL_RETURN(pBW, E_POINTER); - TRACE_LPRECT("pBW", pBW); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetBorderSpace(LPCBORDERWIDTHS pBW) -{ - RECT rc; - - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetBorderSpace\n"); - - if (pBW){TRACE_LPRECT("pBW", pBW);} - - GetClientRect(pThis->m_hwnd, &rc); - SetRectEmpty((RECT*)&(pThis->m_bwToolSpace)); - - if (pBW) - { - pThis->m_bwToolSpace = *pBW; - rc.left += pBW->left; rc.right -= pBW->right; - rc.top += pBW->top; rc.bottom -= pBW->bottom; - } - - // Save the current view RECT (space minus tools)... - pThis->m_rcViewRect = rc; - - // Update the active document (if alive)... - if (pThis->m_pdocv) - pThis->m_pdocv->SetRect(&(pThis->m_rcViewRect)); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetActiveObject\n"); - - SAFE_RELEASE_INTERFACE((pThis->m_pipactive)); - pThis->m_hwndUIActiveObj = NULL; - pThis->m_dwObjectThreadID = 0; - - if (pIIPActiveObj) - { - SAFE_SET_INTERFACE(pThis->m_pipactive, pIIPActiveObj); - pIIPActiveObj->GetWindow(&(pThis->m_hwndUIActiveObj)); - pThis->m_dwObjectThreadID = GetWindowThreadProcessId(pThis->m_hwndUIActiveObj, NULL); - } - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::InsertMenus\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetMenu\n"); - - pThis->CheckForPPTPreviewChange(); - - // We really don't do anything here. We will merge the menu and set it - // later if the menubar is visible or user chooses dropdown from titlebar. - // All we do is stash current values or clear them depending on call. - if (hMenu) - { - pThis->m_hMenuActive = hMenu; - pThis->m_holeMenu = hOLEMenu; - pThis->m_hwndMenuObj = hWndObj; - - // Handle a special case where menu is being updated after initial set - // and not in close. In such a case we should force redraw control we - // are in so new menu changes are visible as soon as possible... - if ((!(pThis->m_fInClose)) && (pThis->m_hwndCtl)) - InvalidateRect(pThis->m_hwndCtl, NULL, FALSE); - } - else - { - pThis->m_hMenuActive = NULL; - pThis->m_holeMenu = NULL; - pThis->m_hwndMenuObj = NULL; - } - - // Regardless of call, make sure to cleanup a merged menu if - // one was previously created for the control... - pThis->ClearMergedMenu(); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::RemoveMenus(HMENU hMenu) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::RemoveMenus\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetStatusText(LPCOLESTR pszText) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetStatusText\n"); - if ((pszText) && (*pszText)){TRACE1(" Status Text = %S \n", pszText);} - return ((pThis->m_psiteCtl) ? pThis->m_psiteCtl->SetStatusText(pszText) : S_OK); -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::EnableModeless(BOOL fEnable) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - TRACE1("CDsoDocObject::XOleInPlaceFrame::EnableModeless(%d)\n", fEnable); - pThis->m_fObjectInModalCondition = !fEnable; - SendMessage(pThis->m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_MODAL, (LPARAM)fEnable); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::TranslateAccelerator(LPMSG pMSG, WORD wID) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::TranslateAccelerator\n"); - return S_FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleCommandTarget -- IOleCommandTarget Implementation -// -// STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); -// STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleCommandTarget) - -STDMETHODIMP CDsoDocObject::XOleCommandTarget::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText) -{ - HRESULT hr = OLECMDERR_E_UNKNOWNGROUP; - METHOD_PROLOGUE(CDsoDocObject, OleCommandTarget); - if (pThis->m_pcmdCtl) - hr = pThis->m_pcmdCtl->QueryStatus(pguidCmdGroup, cCmds, prgCmds, pCmdText); - return hr; -} - -STDMETHODIMP CDsoDocObject::XOleCommandTarget::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut) -{ - HRESULT hr = OLECMDERR_E_NOTSUPPORTED; - METHOD_PROLOGUE(CDsoDocObject, OleCommandTarget); - if (pThis->m_pcmdCtl) - hr = pThis->m_pcmdCtl->Exec(pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XServiceProvider -- IServiceProvider Implementation -// -// STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, ServiceProvider) - -STDMETHODIMP CDsoDocObject::XServiceProvider::QueryService(REFGUID guidService, REFIID riid, void **ppv) -{ - METHOD_PROLOGUE(CDsoDocObject, ServiceProvider); - ODS("CDsoDocObject::XServiceProvider::QueryService\n"); - - if (pThis->m_psiteCtl) // Forward to host control/container... - return pThis->m_psiteCtl->QueryService(guidService, riid, ppv); - - return E_NOINTERFACE; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XAuthenticate -- IAuthenticate Implementation -// -// STDMETHODIMP Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, Authenticate) - -STDMETHODIMP CDsoDocObject::XAuthenticate::Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword) -{ - METHOD_PROLOGUE(CDsoDocObject, Authenticate); - ODS("CDsoDocObject::XAuthenticate::Authenticate\n"); - if (phwnd) *phwnd = ((pThis->m_pwszUsername) ? (HWND)INVALID_HANDLE_VALUE : pThis->m_hwndCtl); - if (pszUsername) *pszUsername = DsoConvertToLPOLESTR(pThis->m_pwszUsername); - if (pszPassword) *pszPassword = DsoConvertToLPOLESTR(pThis->m_pwszPassword); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XContinueCallback -- IContinueCallback Implementation -// -// STDMETHODIMP FContinue(void); -// STDMETHODIMP FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, ContinueCallback) - -STDMETHODIMP CDsoDocObject::XContinueCallback::FContinue(void) -{ // We don't support asynchronous cancel of printing, but if you wanted to add - // such functionality, this is where you could do so... - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XContinueCallback::FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus) -{ - TRACE3("CDsoDocObject::XContinueCallback::FContinuePrinting(%d, %d, %S)\n", cPagesPrinted, nCurrentPage, pwszPrintStatus); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XPreviewCallback -- IPreviewCallback Implementation -// -// STDMETHODIMP Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, PreviewCallback) - -STDMETHODIMP CDsoDocObject::XPreviewCallback::Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus) -{ - METHOD_PROLOGUE(CDsoDocObject, PreviewCallback); - TRACE3("CDsoDocObject::XPreviewCallback::Notify(%d, %d, %S)\n", wStatus, nLastPage, pwszPreviewStatus); - - // The only notification we act on is when the preview is done... - if ((wStatus == NOTIFY_FORCECLOSEPREVIEW) || - (wStatus == NOTIFY_FINISHED) || - (wStatus == NOTIFY_UNABLETOPREVIEW)) - pThis->ExitPrintPreview(FALSE); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::HrGetDataFromObject -// -// Function designed to give indirect access to the content in an existing -// loaded object, in a clipboard format specified in vtType. In other words, -// a call to HrGetDataFromObject("Rich Text Format", [out] array) will get the -// content of the current document in RTF format and return it as a byte array -// vector in VB6-safe safearray. This array can be converted to a string for -// display or saved to database (etc.) without saving to disk. -// -// For this to work, the object embedded must support IDataObject and the clip -// format that you request. -// -STDMETHODIMP CDsoDocObject::HrGetDataFromObject(VARIANT *pvtType, VARIANT *pvtOutput) -{ - HRESULT hr; - IDataObject *pdo = NULL; - LPWSTR pwszTypeName; - LPSTR pszFormatName; - SAFEARRAY* psa; - VOID HUGEP* prawdata; - FORMATETC ftc; - STGMEDIUM stgm; - LONG cfType; - - if ((pvtType == NULL) || PARAM_IS_MISSING(pvtType) || - (pvtOutput == NULL) || PARAM_IS_MISSING(pvtOutput)) - return E_INVALIDARG; - - VariantClear(pvtOutput); - - // We take the name and find the right clipformat for the data type... - pwszTypeName = LPWSTR_FROM_VARIANT(*pvtType); - if ((pwszTypeName) && (pszFormatName = DsoConvertToMBCS(pwszTypeName))) - { - cfType = RegisterClipboardFormat(pszFormatName); - DsoMemFree(pszFormatName); - } - else cfType = LONG_FROM_VARIANT(*pvtType, 0); - CHECK_NULL_RETURN(cfType, E_INVALIDARG); - - // We must be able to get IDataObject for the transfer to work... - if ((m_pole == NULL) || - (FAILED(m_pole->GetClipboardData(0, &pdo)) && - FAILED(m_pole->QueryInterface(IID_IDataObject, (void**)&pdo)))) - return OLE_E_CANT_GETMONIKER; - - ASSERT(pdo); CHECK_NULL_RETURN(pdo, E_UNEXPECTED); - - // We are going to ask for HGLOBAL data format only. This is majority - // of the non-binary formats, which should be sufficient here... - memset(&ftc, 0, sizeof(ftc)); - ftc.cfFormat = (WORD)cfType; - ftc.dwAspect = DVASPECT_CONTENT; - ftc.lindex = -1; ftc.tymed = TYMED_HGLOBAL; - - memset(&stgm, 0, sizeof(stgm)); - stgm.tymed = TYMED_HGLOBAL; - - // Ask the object for the data... - if (SUCCEEDED(hr = pdo->QueryGetData(&ftc)) && - SUCCEEDED(hr = pdo->GetData(&ftc, &stgm))) - { - ULONG ulSize; - if ((stgm.tymed == TYMED_HGLOBAL) && (stgm.hGlobal) && - (ulSize = GlobalSize(stgm.hGlobal))) - { - LPVOID lpv = GlobalLock(stgm.hGlobal); - if (lpv) - { - // We will return data as safearray vector of VB6 Byte type... - psa = SafeArrayCreateVector(VT_UI1, 1, ulSize); - if (psa) - { - pvtOutput->vt = VT_ARRAY|VT_UI1; - pvtOutput->parray = psa; - prawdata = NULL; - - if (SUCCEEDED(SafeArrayAccessData(psa, &prawdata))) - { - memcpy(prawdata, lpv, ulSize); - SafeArrayUnaccessData(psa); - } - } - else hr = E_OUTOFMEMORY; - - GlobalUnlock(stgm.hGlobal); - } - else hr = E_ACCESSDENIED; - } - else hr = E_FAIL; - - ReleaseStgMedium(&stgm); - } - - pdo->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::HrSetDataInObject -// -// Function to take format type and either string or VB6-safe byte array -// as data and set it into the current object (that is, it will replace the -// current document content with this content). The fMbcsString flag determines -// if BSTR passed should be converted to MBCS format before being set. For example, -// if you previously got data as RTF (MBCS), then converted to Unicode BSTR and -// passed it back, it would need to be converted back to MBCS for the set to work. -// If the string data is binary, pass FALSE. If data is array, the param is ignored. -// -// The function sets the data using IDataObject::SetData. Note that some objects -// will allow you to get a format but not set it, so this may not work for a previously -// acquired data type. It is up to the host DocObject server, so test carefully before -// depending on this functionality. -// -STDMETHODIMP CDsoDocObject::HrSetDataInObject(VARIANT *pvtType, VARIANT *pvtInput, BOOL fMbcsString) -{ - HRESULT hr; - IDataObject *pdo = NULL; - LPWSTR pwszTypeName; - LPSTR pszFormatName; - SAFEARRAY* psa; - VOID HUGEP* prawdata; - FORMATETC ftc; - STGMEDIUM stgm; - LONG cfType; - ULONG ulSize; - BOOL fIsArrayData = FALSE; - BOOL fCleanupString = FALSE; - - if ((pvtType == NULL) || PARAM_IS_MISSING(pvtType) || - (pvtInput == NULL) || PARAM_IS_MISSING(pvtInput)) - return E_INVALIDARG; - - // Find the clipboard format for the given data type... - pwszTypeName = LPWSTR_FROM_VARIANT(*pvtType); - if ((pwszTypeName) && (pszFormatName = DsoConvertToMBCS(pwszTypeName))) - { - cfType = RegisterClipboardFormat(pszFormatName); - DsoMemFree(pszFormatName); - } - else cfType = LONG_FROM_VARIANT(*pvtType, 0); - CHECK_NULL_RETURN(cfType, E_INVALIDARG); - - // Depending on the type of data passed, and if we need to do any Unicode-to-MBCS - // conversion for the caller, set up the data size and data pointer we will use - // to create the global memory object we'll pass to the doc object server... - prawdata = LPWSTR_FROM_VARIANT(*pvtInput); - if (prawdata) - { - if (fMbcsString) - { - prawdata = (void*)DsoConvertToMBCS((BSTR)prawdata); - CHECK_NULL_RETURN(prawdata, E_OUTOFMEMORY); - fCleanupString = TRUE; - ulSize = lstrlen((LPSTR)prawdata); - } - else - ulSize = SysStringByteLen((BSTR)prawdata); - } - else - { - psa = PSARRAY_FROM_VARIANT(*pvtInput); - if (psa) - { - LONG lb, ub, elSize; - - if ((SafeArrayGetDim(psa) > 1) || - FAILED(SafeArrayGetLBound(psa, 1, &lb)) || (lb < 0) || - FAILED(SafeArrayGetUBound(psa, 1, &ub)) || (ub < lb) || - ((elSize = SafeArrayGetElemsize(psa)) < 1)) - return E_INVALIDARG; - - ulSize = (((ub + 1) - lb) * elSize); - fIsArrayData = TRUE; - if (FAILED(SafeArrayAccessData(psa, &prawdata))) - return E_ACCESSDENIED; - } - - CHECK_NULL_RETURN(prawdata, E_INVALIDARG); - } - - // We must have a server and it must support IDataObject... - if ((m_pole) && SUCCEEDED(m_pole->QueryInterface(IID_IDataObject, (void**)&pdo)) && (pdo)) - { - memset(&ftc, 0, sizeof(ftc)); - ftc.cfFormat = (WORD)cfType; - ftc.dwAspect = DVASPECT_CONTENT; - ftc.lindex = -1; ftc.tymed = TYMED_HGLOBAL; - - memset(&stgm, 0, sizeof(stgm)); - stgm.tymed = TYMED_HGLOBAL; - stgm.hGlobal = GlobalAlloc(GPTR, ulSize); - if (stgm.hGlobal) - { - LPVOID lpv = GlobalLock(stgm.hGlobal); - if ((lpv) && (ulSize)) - { - // Copy the data into transfer object... - memcpy(lpv, prawdata, ulSize); - GlobalUnlock(stgm.hGlobal); - - // Do the actual SetData call to transfer the data... - hr = pdo->SetData(&ftc, &stgm, TRUE); - } - else hr = E_UNEXPECTED; - - if (FAILED(hr)) - ReleaseStgMedium(&stgm); - } - else hr = E_OUTOFMEMORY; - - pdo->Release(); - } - else hr = OLE_E_CANT_GETMONIKER; - - if (fIsArrayData) - SafeArrayUnaccessData(psa); - - if (fCleanupString) - DsoMemFree(prawdata); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::FrameWindowProc -// -// Site window procedure. Not much to do here except forward focus. -// -STDMETHODIMP_(LRESULT) CDsoDocObject::FrameWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoDocObject* pbndr = (CDsoDocObject*)GetWindowLong(hwnd, GWL_USERDATA); - if (pbndr) - { - switch (msg) - { - case WM_PAINT: - { - PAINTSTRUCT ps; - RECT rc; GetClientRect(hwnd, &rc); - BeginPaint(hwnd, &ps); - pbndr->OnDraw(DVASPECT_CONTENT, ps.hdc, (RECT*)&rc, NULL, NULL, TRUE); - EndPaint(hwnd, &ps); - } - return 0; - - case WM_NCDESTROY: - SetWindowLong(hwnd, GWL_USERDATA, 0); - pbndr->m_hwnd = NULL; - break; - - case WM_SETFOCUS: - if (pbndr->m_hwndUIActiveObj) - SetFocus(pbndr->m_hwndUIActiveObj); - return 0; - - case WM_SYSCOMMAND: - if ((wParam & 0xFFF0) == SC_KEYMENU) - { - if ((pbndr->m_psiteCtl) && (pbndr->m_psiteCtl->SysMenuCommand((UINT)lParam) == S_OK)) - return 0; - } - break; - - case WM_ERASEBKGND: - return 1; - } - } - - return DefWindowProc(hwnd, msg, wParam, lParam); -} - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.h b/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.h deleted file mode 100644 index 504ddf05..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsofdocobj.h +++ /dev/null @@ -1,350 +0,0 @@ -/*************************************************************************** - * DSOFDOCOBJ.H - * - * DSOFramer: OLE DocObject Site component (used by the control) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_DSOFDOCOBJ_H -#define DS_DSOFDOCOBJ_H - -//////////////////////////////////////////////////////////////////// -// Declarations for Interfaces used in DocObject Containment -// -#include // Standard DocObjects (common to all AxDocs) -#include "ipprevw.h" // PrintPreview (for select Office apps) -#include "rbbinder.h" // Internet Publishing (for Web Folder write access) - -//////////////////////////////////////////////////////////////////////// -// Microsoft Office 97-2003 Document Object GUIDs -// -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOC, 0x00020906, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLS, 0x00020820, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_CHART_XLS, 0x00020821, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPT, 0x64818D10, 0x4F9B, 0x11CF, 0x86, 0xEA, 0x00, 0xAA, 0x00, 0xB9, 0x29, 0xE8); -DEFINE_GUID(CLSID_VISIO_DRAWING_VSD, 0x00021A13, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PROJECT_DOCUMENT_MPP, 0x74B78F3A, 0xC8C8, 0x11D1, 0xBE, 0x11, 0x00, 0xC0, 0x4F, 0xB6, 0xFA, 0xF1); -DEFINE_GUID(CLSID_MSHTML_DOCUMENT, 0x25336920, 0x03F9, 0x11CF, 0x8F, 0xD0, 0x00, 0xAA, 0x00, 0x68, 0x6F, 0x13); - -//////////////////////////////////////////////////////////////////////// -// Microsoft Office 2007 Document GUIDs -// -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOCX, 0xF4754C9B, 0x64F5, 0x4B40, 0x8A, 0xF4, 0x67, 0x97, 0x32, 0xAC, 0x06, 0x07); -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOCM, 0x18A06B6B, 0x2F3F, 0x4E2B, 0xA6, 0x11, 0x52, 0xBE, 0x63, 0x1B, 0x2D, 0x22); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSX, 0x00020830, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSM, 0x00020832, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSB, 0x00020833, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPTX, 0xCF4F55F4, 0x8F87, 0x4D47, 0x80, 0xBB, 0x58, 0x08, 0x16, 0x4B, 0xB3, 0xF8); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPTM, 0xDC020317, 0xE6E2, 0x4A62, 0xB9, 0xFA, 0xB3, 0xEF, 0xE1, 0x66, 0x26, 0xF4); - -//////////////////////////////////////////////////////////////////// -// IDsoDocObjectSite -- {444CA1F7-B405-4002-95C3-A455BC9F4F55} -// -// Implemented by control host for callbacks. Required interface. -// -interface IDsoDocObjectSite : public IServiceProvider -{ - STDMETHOD(GetWindow)(HWND* phWnd) PURE; - STDMETHOD(GetBorder)(LPRECT prcBorder) PURE; - STDMETHOD(SetStatusText)(LPCOLESTR pszText) PURE; - STDMETHOD(GetHostName)(LPWSTR *ppwszHostName) PURE; - STDMETHOD(SysMenuCommand)(UINT uiCharCode) PURE; -}; -DEFINE_GUID(IID_IDsoDocObjectSite, 0x444CA1F7, 0xB405, 0x4002, 0x95, 0xC3, 0xA4, 0x55, 0xBC, 0x9F, 0x4F, 0x55); - - -//////////////////////////////////////////////////////////////////// -// CDsoDocObject -- ActiveDocument Container Site Object -// -// The CDsoDocObject object handles all the DocObject embedding for the -// control and os fairly self-contained. Like the control it has its -// own window, but it merely acts as a parent for the embedded object -// window(s) which it activates. -// -// CDsoDocObject works by taking a file (or automation object) and -// copying out the OLE storage used for its persistent data. It then -// creates a new embedding based on the data. If a storage is not -// avaiable, it will attempt to oad the file directly, but the results -// are less predictable using this manner since DocObjects are embeddings -// and not links and this component has limited support for links. As a -// result, we will attempt to keep our own storage copy in most cases. -// -// You should note that this approach is different than one taken by the -// web browser control, which is basically a link container which will -// try to embed (ip activate) if allowed, but if not it opens the file -// externally and keeps the link. If CDsoDocObject cannot embed the object, -// it returns an error. It will not open the object external. -// -// Like the control, this object also uses nested classes for the OLE -// interfaces used in the embedding. They are easier to track and easier -// to debug if a specific interface is over/under released. Again this was -// a design decision to make the sample easier to break apart, but not required. -// -// Because the object is not tied to the top-level window, it constructs -// the OLE merged menu as a set of popup menus which the control then displays -// in whatever form it wants. You would need to customize this if you used -// the control in a host and wanted the menus to merge with the actual host -// menu bar (on the top-level window or form). -// -class CDsoDocObject : public IUnknown -{ -public: - CDsoDocObject(); - ~CDsoDocObject(); - - // Static Create Method (Host Provides Site Interface) - static STDMETHODIMP_(CDsoDocObject*) CreateInstance(IDsoDocObjectSite* phost); - - // IUnknown Implementation - STDMETHODIMP QueryInterface(REFIID riid, void** ppv); - STDMETHODIMP_(ULONG) AddRef(void); - STDMETHODIMP_(ULONG) Release(void); - - // IOleClientSite Implementation - BEGIN_INTERFACE_PART(OleClientSite, IOleClientSite) - STDMETHODIMP SaveObject(void); - STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk); - STDMETHODIMP GetContainer(IOleContainer** ppContainer); - STDMETHODIMP ShowObject(void); - STDMETHODIMP OnShowWindow(BOOL fShow); - STDMETHODIMP RequestNewObjectLayout(void); - END_INTERFACE_PART(OleClientSite) - - // IOleInPlaceSite Implementation - BEGIN_INTERFACE_PART(OleInPlaceSite, IOleInPlaceSite) - STDMETHODIMP GetWindow(HWND* phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP CanInPlaceActivate(void); - STDMETHODIMP OnInPlaceActivate(void); - STDMETHODIMP OnUIActivate(void); - STDMETHODIMP GetWindowContext(IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo); - STDMETHODIMP Scroll(SIZE sz); - STDMETHODIMP OnUIDeactivate(BOOL fUndoable); - STDMETHODIMP OnInPlaceDeactivate(void); - STDMETHODIMP DiscardUndoState(void); - STDMETHODIMP DeactivateAndUndo(void); - STDMETHODIMP OnPosRectChange(LPCRECT lprcPosRect); - END_INTERFACE_PART(OleInPlaceSite) - - // IOleDocumentSite Implementation - BEGIN_INTERFACE_PART(OleDocumentSite, IOleDocumentSite) - STDMETHODIMP ActivateMe(IOleDocumentView* pView); - END_INTERFACE_PART(OleDocumentSite) - - // IOleInPlaceFrame Implementation - BEGIN_INTERFACE_PART(OleInPlaceFrame, IOleInPlaceFrame) - STDMETHODIMP GetWindow(HWND* phWnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP GetBorder(LPRECT prcBorder); - STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS pBW); - STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS pBW); - STDMETHODIMP SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj); - STDMETHODIMP InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW); - STDMETHODIMP SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj); - STDMETHODIMP RemoveMenus(HMENU hMenu); - STDMETHODIMP SetStatusText(LPCOLESTR pszText); - STDMETHODIMP EnableModeless(BOOL fEnable); - STDMETHODIMP TranslateAccelerator(LPMSG pMSG, WORD wID); - END_INTERFACE_PART(OleInPlaceFrame) - - // IOleCommandTarget Implementation - BEGIN_INTERFACE_PART(OleCommandTarget , IOleCommandTarget) - STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); - STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); - END_INTERFACE_PART(OleCommandTarget) - - // IServiceProvider Implementation - BEGIN_INTERFACE_PART(ServiceProvider , IServiceProvider) - STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); - END_INTERFACE_PART(ServiceProvider) - - // IAuthenticate Implementation - BEGIN_INTERFACE_PART(Authenticate , IAuthenticate) - STDMETHODIMP Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword); - END_INTERFACE_PART(Authenticate) - - // IContinueCallback Implementation - BEGIN_INTERFACE_PART(ContinueCallback , IContinueCallback) - STDMETHODIMP FContinue(void); - STDMETHODIMP FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus); - END_INTERFACE_PART(ContinueCallback) - - // IOlePreviewCallback Implementation - BEGIN_INTERFACE_PART(PreviewCallback , IOlePreviewCallback) - STDMETHODIMP Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus); - END_INTERFACE_PART(PreviewCallback) - - // DocObject Class Methods IDsoDocObjectSite - STDMETHODIMP InitializeNewInstance(IDsoDocObjectSite* phost); - STDMETHODIMP CreateDocObject(REFCLSID rclsid); - STDMETHODIMP CreateDocObject(IStorage *pstg); - STDMETHODIMP CreateFromFile(LPWSTR pwszFile, REFCLSID rclsid, LPBIND_OPTS pbndopts); - STDMETHODIMP CreateFromURL(LPWSTR pwszUrlFile, REFCLSID rclsid, LPBIND_OPTS pbndopts, LPWSTR pwszUserName, LPWSTR pwszPassword); - STDMETHODIMP CreateFromRunningObject(LPUNKNOWN punkObj, LPWSTR pwszObjectName, LPBIND_OPTS pbndopts); - STDMETHODIMP IPActivateView(); - STDMETHODIMP IPDeactivateView(); - STDMETHODIMP UIActivateView(); - STDMETHODIMP UIDeactivateView(); - STDMETHODIMP_(BOOL) IsDirty(); - STDMETHODIMP Save(); - STDMETHODIMP SaveToFile(LPWSTR pwszFile, BOOL fOverwriteFile); - STDMETHODIMP SaveToURL(LPWSTR pwszURL, BOOL fOverwriteFile, LPWSTR pwszUserName, LPWSTR pwszPassword); - STDMETHODIMP PrintDocument(LPCWSTR pwszPrinter, LPCWSTR pwszOutput, UINT cCopies, UINT nFrom, UINT nTo, BOOL fPromptUser); - STDMETHODIMP StartPrintPreview(); - STDMETHODIMP ExitPrintPreview(BOOL fForceExit); - STDMETHODIMP DoOleCommand(DWORD dwOleCmdId, DWORD dwOptions, VARIANT* vInParam, VARIANT* vInOutParam); - STDMETHODIMP Close(); - - // Control should notify us on these conditions (so we can pass to IP object)... - STDMETHODIMP_(void) OnNotifySizeChange(LPRECT prc); - STDMETHODIMP_(void) OnNotifyAppActivate(BOOL fActive, DWORD dwThreadID); - STDMETHODIMP_(void) OnNotifyPaletteChanged(HWND hwndPalChg); - STDMETHODIMP_(void) OnNotifyChangeToolState(BOOL fShowTools); - STDMETHODIMP_(void) OnNotifyControlFocus(BOOL fGotFocus); - - STDMETHODIMP HrGetDataFromObject(VARIANT *pvtType, VARIANT *pvtOutput); - STDMETHODIMP HrSetDataInObject(VARIANT *pvtType, VARIANT *pvtInput, BOOL fMbcsString); - - STDMETHODIMP_(BOOL) GetDocumentTypeAndFileExtension(WCHAR** ppwszFileType, WCHAR** ppwszFileExt); - - // Inline accessors for control to get IP object info... - inline IOleInPlaceActiveObject* GetActiveObject(){return m_pipactive;} - inline IOleObject* GetOleObject(){return m_pole;} - inline HWND GetDocWindow(){return m_hwnd;} - inline HWND GetActiveWindow(){return m_hwndUIActiveObj;} - inline BOOL IsReadOnly(){return m_fOpenReadOnly;} - inline BOOL InPrintPreview(){return ((m_pprtprv != NULL) || (m_fInPptSlideShow));} - inline HWND GetMenuHWND(){return m_hwndMenuObj;} - inline HMENU GetActiveMenu(){return m_hMenuActive;} - inline HMENU GetMergedMenu(){return m_hMenuMerged;} - inline void SetMergedMenu(HMENU h){m_hMenuMerged = h;} - inline LPCWSTR GetSourceName(){return ((m_pwszWebResource) ? m_pwszWebResource : m_pwszSourceFile);} - inline LPCWSTR GetSourceDocName(){return ((m_pwszSourceFile) ? &m_pwszSourceFile[m_idxSourceName] : NULL);} - inline CLSID* GetServerCLSID(){return &m_clsidObject;} - inline BOOL IsIPActive(){return (m_pipobj != NULL);} - - BOOL IsWordObject() - {return ((m_clsidObject == CLSID_WORD_DOCUMENT_DOC) || - (m_clsidObject == CLSID_WORD_DOCUMENT_DOCX) || - (m_clsidObject == CLSID_WORD_DOCUMENT_DOCM)); - } - BOOL IsExcelObject() - {return ((m_clsidObject == CLSID_EXCEL_WORKBOOK_XLS) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSX) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSM) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSB) || - (m_clsidObject == CLSID_EXCEL_CHART_XLS)); - } - BOOL IsPPTObject() - {return ((m_clsidObject == CLSID_PPT_PRESENTATION_PPT) || - (m_clsidObject == CLSID_PPT_PRESENTATION_PPTX) || - (m_clsidObject == CLSID_PPT_PRESENTATION_PPTM)); - } - BOOL IsVisioObject() - {return (m_clsidObject == CLSID_VISIO_DRAWING_VSD);} - - STDMETHODIMP SetRunningServerLock(BOOL fLock); - -protected: - // Internal helper methods... - STDMETHODIMP InstantiateDocObjectServer(REFCLSID rclsid, IOleObject **ppole); - STDMETHODIMP CreateObjectStorage(REFCLSID rclsid); - STDMETHODIMP SaveObjectStorage(); - STDMETHODIMP SaveDocToMoniker(IMoniker *pmk, IBindCtx *pbc, BOOL fKeepLock); - STDMETHODIMP SaveDocToFile(LPWSTR pwszFullName, BOOL fKeepLock); - STDMETHODIMP ValidateDocObjectServer(REFCLSID rclsid); - STDMETHODIMP_(BOOL) ValidateFileExtension(WCHAR* pwszFile, WCHAR** ppwszOut); - - STDMETHODIMP_(void) OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize); - - STDMETHODIMP EnsureOleServerRunning(BOOL fLockRunning); - STDMETHODIMP_(void) FreeRunningLock(); - STDMETHODIMP_(void) TurnOffWebToolbar(BOOL fTurnedOff); - STDMETHODIMP_(void) ClearMergedMenu(); - STDMETHODIMP_(DWORD) CalcDocNameIndex(LPCWSTR pwszPath); - STDMETHODIMP_(void) CheckForPPTPreviewChange(); - - // These functions allow the component to access files in a Web Folder for - // write access using the Microsoft Provider for Internet Publishing (MSDAIPP), - // which is installed by Office and comes standard in Windows 2000/ME/XP/2003. The - // provider is not required to use the component, only if you wish to save to - // an FPSE or DAV Web Folder (URL). - STDMETHODIMP_(IUnknown*) CreateIPPBindResource(); - STDMETHODIMP IPPDownloadWebResource(LPWSTR pwszURL, LPWSTR pwszFile, IStream** ppstmKeepForSave); - STDMETHODIMP IPPUploadWebResource(LPWSTR pwszFile, IStream** ppstmSave, LPWSTR pwszURLSaveTo, BOOL fOverwriteFile); - - static STDMETHODIMP_(LRESULT) FrameWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - - // The private class variables... -private: - ULONG m_cRef; // Reference count - HWND m_hwnd; // our window - HWND m_hwndCtl; // The control's window - RECT m_rcViewRect; // Viewable area (set by host) - IDsoDocObjectSite *m_psiteCtl; // The control's site interface - IOleCommandTarget *m_pcmdCtl; // IOCT of host (for frame msgs) - - LPWSTR m_pwszHostName; // Ole Host Name for container - LPWSTR m_pwszSourceFile; // Path to Source File (on Open) - IMoniker *m_pmkSourceFile; // Moniker to original source file - IBindCtx *m_pbctxSourceFile; // Bind context used to original source file - IStorage *m_pstgSourceFile; // Original File Storage (if open/save file) - DWORD m_idxSourceName; // Index to doc name in m_pwszSourceFile - - CLSID m_clsidObject; // CLSID of the embedded object - IStorage *m_pstgroot; // Root temp storage - IStorage *m_pstgfile; // In-memory file storage - IStream *m_pstmview; // In-memory view info stream - - LPWSTR m_pwszWebResource; // The full URL to the web resource - IStream *m_pstmWebResource; // Original Download Stream (if open/save URL) - IUnknown *m_punkIPPResource; // MSDAIPP provider resource (for URL authoring) - LPWSTR m_pwszUsername; // Username and password used by MSDAIPP - LPWSTR m_pwszPassword; // for Authentication (see IAuthenticate) - - IOleObject *m_pole; // Embedded OLE Object (OLE) - IOleInPlaceObject *m_pipobj; // The IP object methods (OLE) - IOleInPlaceActiveObject *m_pipactive; // The UI Active object methods (OLE) - IOleDocumentView *m_pdocv; // MSO Document View (DocObj) - IOleCommandTarget *m_pcmdt; // MSO Command Target (DocObj) - IOleInplacePrintPreview *m_pprtprv; // MSO Print Preview (DocObj) - - HMENU m_hMenuActive; // The menu supplied by embedded object - HMENU m_hMenuMerged; // The merged menu (set by control host) - HOLEMENU m_holeMenu; // The OLE Menu Descriptor - HWND m_hwndMenuObj; // The window for menu commands - HWND m_hwndIPObject; // IP active object window - HWND m_hwndUIActiveObj; // UI Active object window - DWORD m_dwObjectThreadID; // Thread Id of UI server - BORDERWIDTHS m_bwToolSpace; // Toolspace... - - // Bitflags (state info)... - unsigned int m_fDisplayTools:1; - unsigned int m_fDisconnectOnQuit:1; - unsigned int m_fAppWindowActive:1; - unsigned int m_fOpenReadOnly:1; - unsigned int m_fObjectInModalCondition:1; - unsigned int m_fObjectIPActive:1; - unsigned int m_fObjectUIActive:1; - unsigned int m_fObjectActivateComplete:1; - unsigned int m_fLockedServerRunning:1; - unsigned int m_fLoadedFromAuto:1; - unsigned int m_fInClose:1; - unsigned int m_fAttemptPptPreview:1; - unsigned int m_fInPptSlideShow:1; - -}; - - -#endif //DS_DSOFDOCOBJ_H \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsofprint.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/dsofprint.cpp deleted file mode 100644 index 280cefa2..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsofprint.cpp +++ /dev/null @@ -1,419 +0,0 @@ -/*************************************************************************** - * DSOFPRINT.CPP - * - * CDsoDocObject: Print Code for CDsoDocObject object - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::_PrintOutOld -// -// Prints the current object by calling IOleCommandTarget for Print. -// -STDMETHODIMP CDsoFramerControl::_PrintOutOld(VARIANT PromptToSelectPrinter) -{ - DWORD dwOption = BOOL_FROM_VARIANT(PromptToSelectPrinter, FALSE) - ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DODEFAULT; - - TRACE1("CDsoFramerControl::_PrintOutOld(%d)\n", dwOption); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_pDocObjFrame->InPrintPreview())) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->DoOleCommand(OLECMDID_PRINT, dwOption, NULL, NULL); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintOut -// -// Prints document using either IPrint or IOleCommandTarget, depending -// on parameters passed. This offers a bit more control over printing if -// the doc object server supports IPrint interface. -// -STDMETHODIMP CDsoFramerControl::PrintOut(VARIANT PromptUser, VARIANT PrinterName, - VARIANT Copies, VARIANT FromPage, VARIANT ToPage, VARIANT OutputFile) -{ - HRESULT hr; - BOOL fPromptUser = BOOL_FROM_VARIANT(PromptUser, FALSE); - LPWSTR pwszPrinter = LPWSTR_FROM_VARIANT(PrinterName); - LPWSTR pwszOutput = LPWSTR_FROM_VARIANT(OutputFile); - LONG lCopies = LONG_FROM_VARIANT(Copies, 1); - LONG lFrom = LONG_FROM_VARIANT(FromPage, 0); - LONG lTo = LONG_FROM_VARIANT(ToPage, 0); - - TRACE3("CDsoFramerControl::PrintOut(%d, %S, %d)\n", fPromptUser, pwszPrinter, lCopies); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // First we do validation of all parameters passed to the function... - if ((pwszPrinter) && (*pwszPrinter == L'\0')) - return E_INVALIDARG; - - if ((pwszOutput) && (*pwszOutput == L'\0')) - return E_INVALIDARG; - - if ((lCopies < 1) || (lCopies > 200)) - return E_INVALIDARG; - - if (((lFrom != 0) || (lTo != 0)) && ((lFrom < 1) || (lTo < lFrom))) - return E_INVALIDARG; - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_pDocObjFrame->InPrintPreview())) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // If no printer name was provided, we can print to the default device - // using IOleCommandTarget with OLECMDID_PRINT... - if (pwszPrinter == NULL) - return _PrintOutOld(PromptUser); - - // Ask the embedded document to print itself to specific printer... - hr = m_pDocObjFrame->PrintDocument(pwszPrinter, pwszOutput, (UINT)lCopies, - (UINT)lFrom, (UINT)lTo, fPromptUser); - - // If call failed because interface doesn't exist, change error - // to let caller know it is because DocObj doesn't support this command... - if (FAILED(hr) && (hr == E_NOINTERFACE)) - hr = DSO_E_COMMANDNOTSUPPORTED; - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintPreview -// -// Asks embedded object to attempt a print preview (only Office docs do this). -// -STDMETHODIMP CDsoFramerControl::PrintPreview() -{ - HRESULT hr; - ODS("CDsoFramerControl::PrintPreview\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Try to set object into print preview mode... - hr = m_pDocObjFrame->StartPrintPreview(); - - // If call failed because interface doesn't exist, change error - // to let caller know it is because DocObj doesn't support this command... - if (FAILED(hr) && (hr == E_NOINTERFACE)) - hr = DSO_E_COMMANDNOTSUPPORTED; - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintPreviewExit -// -// Closes an active preview. -// -STDMETHODIMP CDsoFramerControl::PrintPreviewExit() -{ - ODS("CDsoFramerControl::PrintPreviewExit\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Try to set object out of print preview mode... - if (m_pDocObjFrame->InPrintPreview()) - m_pDocObjFrame->ExitPrintPreview(TRUE); - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::PrintDocument -// -// We can use the IPrint interface for an ActiveX Document object to -// selectively print object to a given printer. -// -STDMETHODIMP CDsoDocObject::PrintDocument(LPCWSTR pwszPrinter, LPCWSTR pwszOutput, UINT cCopies, UINT nFrom, UINT nTo, BOOL fPromptUser) -{ - HRESULT hr; - IPrint *print; - HANDLE hPrint; - DVTARGETDEVICE* ptd = NULL; - - ODS("CDsoDocObject::PrintDocument\n"); - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - - // First thing we need to do is ask object for IPrint. If it does not - // support it, we cannot continue. It is up to DocObj if this is allowed... - hr = m_pole->QueryInterface(IID_IPrint, (void**)&print); - RETURN_ON_FAILURE(hr); - - // Now setup printer settings into DEVMODE for IPrint. Open printer - // settings and gather default DEVMODE... - if (FOpenPrinter(pwszPrinter, &hPrint)) - { - LPDEVMODEW pdevMode = NULL; - LPWSTR pwszDefProcessor = NULL; - LPWSTR pwszDefDriver = NULL; - LPWSTR pwszDefPort = NULL; - LPWSTR pwszPort; - DWORD cbDevModeSize; - - if (FGetPrinterSettings(hPrint, &pwszDefProcessor, - &pwszDefDriver, &pwszDefPort, &pdevMode, &cbDevModeSize) && (pdevMode)) - { - DWORD cbPrintName, cbDeviceName, cbOutputName; - DWORD cbDVTargetSize; - - pdevMode->dmFields |= DM_COPIES; - pdevMode->dmCopies = (WORD)((cCopies) ? cCopies : 1); - - pwszPort = ((pwszOutput) ? (LPWSTR)pwszOutput : pwszDefPort); - - // We calculate the size we will need for the TARGETDEVICE structure... - cbPrintName = ((lstrlenW(pwszDefProcessor) + 1) * sizeof(WCHAR)); - cbDeviceName = ((lstrlenW(pwszDefDriver) + 1) * sizeof(WCHAR)); - cbOutputName = ((lstrlenW(pwszPort) + 1) * sizeof(WCHAR)); - - cbDVTargetSize = sizeof(DWORD) + sizeof(DEVNAMES) + cbPrintName + - cbDeviceName + cbOutputName + cbDevModeSize; - - // Allocate new target device using COM Task Allocator... - ptd = (DVTARGETDEVICE*)CoTaskMemAlloc(cbDVTargetSize); - if (ptd) - { - // Copy all the data in the DVT... - DWORD dwOffset = sizeof(DWORD) + sizeof(DEVNAMES); - ptd->tdSize = cbDVTargetSize; - - ptd->tdDriverNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszDefProcessor, cbPrintName); - dwOffset += cbPrintName; - - ptd->tdDeviceNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszDefDriver, cbDeviceName); - dwOffset += cbDeviceName; - - ptd->tdPortNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszPort, cbOutputName); - dwOffset += cbOutputName; - - ptd->tdExtDevmodeOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pdevMode, cbDevModeSize); - dwOffset += cbDevModeSize; - - ASSERT(dwOffset == cbDVTargetSize); - } - else hr = E_OUTOFMEMORY; - - // We're done with the devmode... - DsoMemFree(pdevMode); - } - else hr = E_WIN32_LASTERROR; - - SAFE_FREESTRING(pwszDefPort); - SAFE_FREESTRING(pwszDefDriver); - SAFE_FREESTRING(pwszDefProcessor); - ClosePrinter(hPrint); - } - else hr = E_WIN32_LASTERROR; - - // If we were successful in getting TARGETDEVICE struct, provide the page range - // for the print job and ask docobj server to print it... - if (SUCCEEDED(hr)) - { - PAGESET *ppgset; - DWORD cbPgRngSize = sizeof(PAGESET) + sizeof(PAGERANGE); - LONG cPages, cLastPage; - DWORD grfPrintFlags; - - // Setup the page range to print... - if ((ppgset = (PAGESET*)CoTaskMemAlloc(cbPgRngSize)) != NULL) - { - ppgset->cbStruct = cbPgRngSize; - ppgset->cPageRange = 1; - ppgset->fOddPages = TRUE; - ppgset->fEvenPages = TRUE; - ppgset->cPageRange = 1; - ppgset->rgPages[0].nFromPage = ((nFrom) ? nFrom : 1); - ppgset->rgPages[0].nToPage = ((nTo) ? nTo : PAGESET_TOLASTPAGE); - - // Give indication we are waiting (on the print)... - HCURSOR hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - SEH_TRY - - // Setup the initial page number (optional)... - print->SetInitialPageNum(ppgset->rgPages[0].nFromPage); - - grfPrintFlags = (PRINTFLAG_MAYBOTHERUSER | PRINTFLAG_RECOMPOSETODEVICE); - if (fPromptUser) grfPrintFlags |= PRINTFLAG_PROMPTUSER; - if (pwszOutput) grfPrintFlags |= PRINTFLAG_PRINTTOFILE; - - // Now ask server to print it using settings passed... - hr = print->Print(grfPrintFlags, &ptd, &ppgset, NULL, (IContinueCallback*)&m_xContinueCallback, - ppgset->rgPages[0].nFromPage, &cPages, &cLastPage); - - SEH_EXCEPT(hr) - - SetCursor(hCur); - - if (ppgset) - CoTaskMemFree(ppgset); - } - else hr = E_OUTOFMEMORY; - } - - // We are done... - if (ptd) CoTaskMemFree(ptd); - print->Release(); - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::StartPrintPreview -// -// Ask embedded object to go into print preview (if supportted). -// -STDMETHODIMP CDsoDocObject::StartPrintPreview() -{ - HRESULT hr; - IOleInplacePrintPreview *prev; - HCURSOR hCur; - - ODS("CDsoDocObject::StartPrintPreview\n"); - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - - // No need to do anything if already in preview... - if (InPrintPreview()) return S_FALSE; - - // Otherwise, ask document server if it supports preview... - hr = m_pole->QueryInterface(IID_IOleInplacePrintPreview, (void**)&prev); - if (SUCCEEDED(hr)) - { - // Tell user we waiting (switch to preview can be slow for very large docs)... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - // If it does, make sure it can go into preview mode... - hr = prev->QueryStatus(); - if (SUCCEEDED(hr)) - { - SEH_TRY - - if (m_hwndCtl) // Notify the control that preview started... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)FALSE); - - // We will allow application to bother user and switch printers... - hr = prev->StartPrintPreview( - (PREVIEWFLAG_MAYBOTHERUSER | PREVIEWFLAG_PROMPTUSER | PREVIEWFLAG_USERMAYCHANGEPRINTER), - NULL, (IOlePreviewCallback*)&m_xPreviewCallback, 1); - - SEH_EXCEPT(hr) - - // If the call succeeds, we keep hold of interface to close preview later - if (SUCCEEDED(hr)) - { - SAFE_SET_INTERFACE(m_pprtprv, prev); - } - else - { // Otherwise, notify the control that preview failed... - if (m_hwndCtl) - PostMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)TRUE); - } - } - - SetCursor(hCur); - prev->Release(); - } - else if (IsPPTObject() && (m_hwndUIActiveObj)) - { - // PowerPoint doesn't have print preview, but it does have slide show mode, so we can use this to - // toggle the viewing into slideshow... - if (PostMessage(m_hwndUIActiveObj, WM_KEYDOWN, VK_F5, 0x00000001) && - PostMessage(m_hwndUIActiveObj, WM_KEYUP, VK_F5, 0xC0000001)) - { - hr = S_OK; m_fAttemptPptPreview = TRUE; - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ExitPrintPreview -// -// Drop out of print preview and restore items as needed. -// -STDMETHODIMP CDsoDocObject::ExitPrintPreview(BOOL fForceExit) -{ - TRACE1("CDsoDocObject::ExitPrintPreview(fForceExit=%d)\n", (DWORD)fForceExit); - - // Need to be in preview to run this function... - if (!InPrintPreview()) return S_FALSE; - - // If the user closes the app or otherwise terminates the preview, we need - // to notify the ActiveDocument server to leave preview mode... - if (m_pprtprv) - { - if (fForceExit) // Tell docobj we want to end preview... - { - HRESULT hr = m_pprtprv->EndPrintPreview(TRUE); - ASSERT(SUCCEEDED(hr)); (void)hr; - } - } - else if (m_fInPptSlideShow) - { - if ((fForceExit) && (m_hwndUIActiveObj)) - { - // HACK: When it goes into slideshow, PPT 2007 changes the active window but - // doesn't call SetActiveObject to update us with new object and window handle. - // If we post VK_ESCAPE to the window handle we have, it can fail. It needs to go - // to the slideshow window that PPT failed to give us handle for. As workaround, - // setting focus to the UI window we have handle for will automatically forward - // to the right window, so we can use that trick to get the right window and - // make the call in a way that that should succeed regardless of PPT version... - SetFocus(m_hwndUIActiveObj); - PostMessage(GetFocus(), WM_KEYDOWN, VK_ESCAPE, 0x00000001); - PostMessage(GetFocus(), WM_KEYUP, VK_ESCAPE, 0xC0000001); - } - m_fAttemptPptPreview = FALSE; - m_fInPptSlideShow = FALSE; - } - - if (m_hwndCtl) // Notify the control that preview ended... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)TRUE); - - // Free our reference to preview interface... - SAFE_RELEASE_INTERFACE(m_pprtprv); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CheckForPPTPreviewChange -// -// Used to update control when PPT goes in/out of slideshow asynchronously. -// -STDMETHODIMP_(void) CDsoDocObject::CheckForPPTPreviewChange() -{ - if (m_fInPptSlideShow) - { - ExitPrintPreview(FALSE); - } - else if (m_fAttemptPptPreview) - { - m_fInPptSlideShow = TRUE; - m_fAttemptPptPreview = FALSE; - if (m_hwndCtl) // Notify the control that preview started... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)FALSE); - } -} \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.def b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.def deleted file mode 100644 index cb32e274..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.def +++ /dev/null @@ -1,6 +0,0 @@ -LIBRARY dsoframer.ocx -EXPORTS - DllGetClassObject PRIVATE - DllCanUnloadNow PRIVATE - DllRegisterServer PRIVATE - DllUnregisterServer PRIVATE \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.h b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.h deleted file mode 100644 index 59eb956a..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.h +++ /dev/null @@ -1,689 +0,0 @@ -/*************************************************************************** - * DSOFRAMER.H - * - * Developer Support Office ActiveX Document Framer Control Sample - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. - * - * You have a royalty-free right to use, modify, reproduce and distribute - * this sample application, and/or any modified version, in any way you - * find useful, provided that you agree that Microsoft has no warranty, - * obligations or liability for the code or information provided herein. - * - * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - * See the EULA.TXT file included in the KB download for full terms of use - * and restrictions. You should consult documentation on MSDN Library for - * possible updates or changes to behaviors or interfaces used in this sample. - * - ***************************************************************************/ -#ifndef DS_DSOFRAMER_H -#define DS_DSOFRAMER_H - -//////////////////////////////////////////////////////////////////// -// We compile at level 4 and disable some unnecessary warnings... -// -#pragma warning(push, 4) // Compile at level-4 warnings -#pragma warning(disable: 4100) // unreferenced formal parameter (in OLE this is common) -#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned -#pragma warning(disable: 4268) // const static/global data initialized with compiler generated default constructor -#pragma warning(disable: 4310) // cast truncates constant value -#pragma warning(disable: 4786) // identifier was truncated in the debug information - -//////////////////////////////////////////////////////////////////// -// Compile Options For Modified Behavior... -// -#define DSO_MSDAIPP_USE_DAVONLY // Default to WebDAV protocol for open by HTTP/HTTPS -#define DSO_WORD12_PERSIST_BUG // Perform workaround for IPersistFile bug in Word 2007 - -//////////////////////////////////////////////////////////////////// -// Needed include files (both standard and custom) -// -#include -#include -#include -#include -#include - -#include "version.h" -#include "utilities.h" -#include "dsofdocobj.h" -#include ".\lib\dsoframerlib.h" -#include ".\res\resource.h" - -//////////////////////////////////////////////////////////////////// -// Global Variables -// -extern HINSTANCE v_hModule; -extern CRITICAL_SECTION v_csecThreadSynch; -extern HICON v_icoOffDocIcon; -extern ULONG v_cLocks; -extern BOOL v_fUnicodeAPI; -extern BOOL v_fWindows2KPlus; - -//////////////////////////////////////////////////////////////////// -// Custom Errors - we support a very limited set of custom error messages -// -#define DSO_E_ERR_BASE 0x80041100 -#define DSO_E_UNKNOWN 0x80041101 // "An unknown problem has occurred." -#define DSO_E_INVALIDPROGID 0x80041102 // "The ProgID/Template could not be found or is not associated with a COM server." -#define DSO_E_INVALIDSERVER 0x80041103 // "The associated COM server does not support ActiveX Document embedding." -#define DSO_E_COMMANDNOTSUPPORTED 0x80041104 // "The command is not supported by the document server." -#define DSO_E_DOCUMENTREADONLY 0x80041105 // "Unable to perform action because document was opened in read-only mode." -#define DSO_E_REQUIRESMSDAIPP 0x80041106 // "The Microsoft Internet Publishing Provider is not installed, so the URL document cannot be open for write access." -#define DSO_E_DOCUMENTNOTOPEN 0x80041107 // "No document is open to perform the operation requested." -#define DSO_E_INMODALSTATE 0x80041108 // "Cannot access document when in modal condition." -#define DSO_E_NOTBEENSAVED 0x80041109 // "Cannot Save file without a file path." -#define DSO_E_FRAMEHOOKFAILED 0x8004110A // "Unable to set frame hook for the parent window." -#define DSO_E_ERR_MAX 0x8004110B - -//////////////////////////////////////////////////////////////////// -// Custom OLE Command IDs - we use for special tasks -// -#define OLECMDID_GETDATAFORMAT 0x7001 // 28673 -#define OLECMDID_SETDATAFORMAT 0x7002 // 28674 -#define OLECMDID_LOCKSERVER 0x7003 // 28675 -#define OLECMDID_RESETFRAMEHOOK 0x7009 // 28681 -#define OLECMDID_NOTIFYACTIVE 0x700A // 28682 - -//////////////////////////////////////////////////////////////////// -// Custom Window Messages (only apply to CDsoFramerControl window proc) -// -#define DSO_WM_ASYNCH_OLECOMMAND (WM_USER + 300) -#define DSO_WM_ASYNCH_STATECHANGE (WM_USER + 301) - -#define DSO_WM_HOOK_NOTIFY_COMPACTIVE (WM_USER + 400) -#define DSO_WM_HOOK_NOTIFY_APPACTIVATE (WM_USER + 401) -#define DSO_WM_HOOK_NOTIFY_FOCUSCHANGE (WM_USER + 402) -#define DSO_WM_HOOK_NOTIFY_SYNCPAINT (WM_USER + 403) -#define DSO_WM_HOOK_NOTIFY_PALETTECHANGE (WM_USER + 404) - -// State Flags for DSO_WM_ASYNCH_STATECHANGE: -#define DSO_STATE_MODAL 1 -#define DSO_STATE_ACTIVATION 2 -#define DSO_STATE_INTERACTIVE 3 -#define DSO_STATE_RETURNFROMMODAL 4 - - -//////////////////////////////////////////////////////////////////// -// Menu Bar Items -// -#define DSO_MAX_MENUITEMS 16 -#define DSO_MAX_MENUNAME_LENGTH 32 - -#ifndef DT_HIDEPREFIX -#define DT_HIDEPREFIX 0x00100000 -#define DT_PREFIXONLY 0x00200000 -#endif - -#define SYNCPAINT_TIMER_ID 4 - - -//////////////////////////////////////////////////////////////////// -// Control Class Factory -// -class CDsoFramerClassFactory : public IClassFactory -{ -public: - CDsoFramerClassFactory(): m_cRef(0){} - ~CDsoFramerClassFactory(void){} - - // IUnknown Implementation - STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); - STDMETHODIMP_(ULONG) AddRef(void); - STDMETHODIMP_(ULONG) Release(void); - - // IClassFactory Implementation - STDMETHODIMP CreateInstance(LPUNKNOWN punk, REFIID riid, void** ppv); - STDMETHODIMP LockServer(BOOL fLock); - -private: - ULONG m_cRef; // Reference count - -}; - -//////////////////////////////////////////////////////////////////// -// CDsoFramerControl -- Main Control (OCX) Object -// -// The CDsoFramerControl control is standard OLE control designed around -// the OCX94 specification. Because we plan on doing custom integration to -// act as both OLE object and OLE host, it does not use frameworks like ATL -// or MFC which would only complicate the nature of the sample. -// -// The control inherits from its automation interface, but uses nested -// classes for all OLE interfaces. This is not a requirement but does help -// to clearly seperate the tasks done by each interface and makes finding -// ref count problems easier to spot since each interface carries its own -// counter and will assert (in debug) if interface is over or under released. -// -// The control is basically a stage for the ActiveDocument embedding, and -// handles any external (user) commands. The task of actually acting as -// a DocObject host is done in the site object CDsoDocObject, which this -// class creates and uses for the embedding. -// -class CDsoFramerControl : public _FramerControl -{ -public: - CDsoFramerControl(LPUNKNOWN punk); - ~CDsoFramerControl(void); - - // IUnknown Implementation -- Always delgates to outer unknown... - STDMETHODIMP QueryInterface(REFIID riid, void ** ppv){return m_pOuterUnknown->QueryInterface(riid, ppv);} - STDMETHODIMP_(ULONG) AddRef(void){return m_pOuterUnknown->AddRef();} - STDMETHODIMP_(ULONG) Release(void){return m_pOuterUnknown->Release();} - - // IDispatch Implementation - STDMETHODIMP GetTypeInfoCount(UINT* pctinfo); - STDMETHODIMP GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo); - STDMETHODIMP GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId); - STDMETHODIMP Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr); - - // _FramerControl Implementation - STDMETHODIMP Activate(); - STDMETHODIMP get_ActiveDocument(IDispatch** ppdisp); - STDMETHODIMP CreateNew(BSTR ProgIdOrTemplate); - STDMETHODIMP Open(VARIANT Document, VARIANT ReadOnly, VARIANT ProgId, VARIANT WebUsername, VARIANT WebPassword); - STDMETHODIMP Save(VARIANT SaveAsDocument, VARIANT OverwriteExisting, VARIANT WebUsername, VARIANT WebPassword); - STDMETHODIMP _PrintOutOld(VARIANT PromptToSelectPrinter); - STDMETHODIMP Close(); - STDMETHODIMP put_Caption(BSTR bstr); - STDMETHODIMP get_Caption(BSTR* pbstr); - STDMETHODIMP put_Titlebar(VARIANT_BOOL vbool); - STDMETHODIMP get_Titlebar(VARIANT_BOOL* pbool); - STDMETHODIMP put_Toolbars(VARIANT_BOOL vbool); - STDMETHODIMP get_Toolbars(VARIANT_BOOL* pbool); - STDMETHODIMP put_ModalState(VARIANT_BOOL vbool); - STDMETHODIMP get_ModalState(VARIANT_BOOL* pbool); - STDMETHODIMP ShowDialog(dsoShowDialogType DlgType); - STDMETHODIMP put_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL vbool); - STDMETHODIMP get_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL* pbool); - STDMETHODIMP put_BorderStyle(dsoBorderStyle style); - STDMETHODIMP get_BorderStyle(dsoBorderStyle* pstyle); - STDMETHODIMP put_BorderColor(OLE_COLOR clr); - STDMETHODIMP get_BorderColor(OLE_COLOR* pclr); - STDMETHODIMP put_BackColor(OLE_COLOR clr); - STDMETHODIMP get_BackColor(OLE_COLOR* pclr); - STDMETHODIMP put_ForeColor(OLE_COLOR clr); - STDMETHODIMP get_ForeColor(OLE_COLOR* pclr); - STDMETHODIMP put_TitlebarColor(OLE_COLOR clr); - STDMETHODIMP get_TitlebarColor(OLE_COLOR* pclr); - STDMETHODIMP put_TitlebarTextColor(OLE_COLOR clr); - STDMETHODIMP get_TitlebarTextColor(OLE_COLOR* pclr); - STDMETHODIMP ExecOleCommand(LONG OLECMDID, VARIANT Options, VARIANT* vInParam, VARIANT* vInOutParam); - STDMETHODIMP put_Menubar(VARIANT_BOOL vbool); - STDMETHODIMP get_Menubar(VARIANT_BOOL* pbool); - STDMETHODIMP put_HostName(BSTR bstr); - STDMETHODIMP get_HostName(BSTR* pbstr); - STDMETHODIMP get_DocumentFullName(BSTR* pbstr); - STDMETHODIMP PrintOut(VARIANT PromptUser, VARIANT PrinterName, VARIANT Copies, VARIANT FromPage, VARIANT ToPage, VARIANT OutputFile); - STDMETHODIMP PrintPreview(); - STDMETHODIMP PrintPreviewExit(); - STDMETHODIMP get_IsReadOnly(VARIANT_BOOL* pbool); - STDMETHODIMP get_IsDirty(VARIANT_BOOL* pbool); - STDMETHODIMP put_LockServer(VARIANT_BOOL vbool); - STDMETHODIMP get_LockServer(VARIANT_BOOL* pvbool); - STDMETHODIMP GetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT *pvResults); - STDMETHODIMP SetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT DataByteArray); - STDMETHODIMP put_ActivationPolicy(dsoActivationPolicy lPolicy); - STDMETHODIMP get_ActivationPolicy(dsoActivationPolicy *plPolicy); - STDMETHODIMP put_FrameHookPolicy(dsoFrameHookPolicy lPolicy); - STDMETHODIMP get_FrameHookPolicy(dsoFrameHookPolicy *plPolicy); - STDMETHODIMP put_MenuAccelerators(VARIANT_BOOL vbool); - STDMETHODIMP get_MenuAccelerators(VARIANT_BOOL* pvbool); - STDMETHODIMP put_EventsEnabled(VARIANT_BOOL vbool); - STDMETHODIMP get_EventsEnabled(VARIANT_BOOL* pvbool); - STDMETHODIMP get_DocumentName(BSTR* pbstr); - - // IInternalUnknown Implementation - BEGIN_INTERFACE_PART(InternalUnknown, IUnknown) - END_INTERFACE_PART(InternalUnknown) - - // IPersistStreamInit Implementation - BEGIN_INTERFACE_PART(PersistStreamInit, IPersistStreamInit) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP IsDirty(void); - STDMETHODIMP Load(LPSTREAM pStm); - STDMETHODIMP Save(LPSTREAM pStm, BOOL fClearDirty); - STDMETHODIMP GetSizeMax(ULARGE_INTEGER* pcbSize); - STDMETHODIMP InitNew(void); - END_INTERFACE_PART(PersistStreamInit) - - // IPersistPropertyBag Implementation - BEGIN_INTERFACE_PART(PersistPropertyBag, IPersistPropertyBag) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP InitNew(void); - STDMETHODIMP Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog); - STDMETHODIMP Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties); - END_INTERFACE_PART(PersistPropertyBag) - - // IPersistStorage Implementation - BEGIN_INTERFACE_PART(PersistStorage, IPersistStorage) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP IsDirty(void); - STDMETHODIMP InitNew(LPSTORAGE pStg); - STDMETHODIMP Load(LPSTORAGE pStg); - STDMETHODIMP Save(LPSTORAGE pStg, BOOL fSameAsLoad); - STDMETHODIMP SaveCompleted(LPSTORAGE pStg); - STDMETHODIMP HandsOffStorage(void); - END_INTERFACE_PART(PersistStorage) - - // IOleObject Implementation - BEGIN_INTERFACE_PART(OleObject, IOleObject) - STDMETHODIMP SetClientSite(IOleClientSite *pClientSite); - STDMETHODIMP GetClientSite(IOleClientSite **ppClientSite); - STDMETHODIMP SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj); - STDMETHODIMP Close(DWORD dwSaveOption); - STDMETHODIMP SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk); - STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk); - STDMETHODIMP InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved); - STDMETHODIMP GetClipboardData(DWORD dwReserved, IDataObject **ppDataObject); - STDMETHODIMP DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect); - STDMETHODIMP EnumVerbs(IEnumOLEVERB **ppEnumOleVerb); - STDMETHODIMP Update(); - STDMETHODIMP IsUpToDate(); - STDMETHODIMP GetUserClassID(CLSID *pClsid); - STDMETHODIMP GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType); - STDMETHODIMP SetExtent(DWORD dwDrawAspect, SIZEL *psizel); - STDMETHODIMP GetExtent(DWORD dwDrawAspect, SIZEL *psizel); - STDMETHODIMP Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection); - STDMETHODIMP Unadvise(DWORD dwConnection); - STDMETHODIMP EnumAdvise(IEnumSTATDATA **ppenumAdvise); - STDMETHODIMP GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus); - STDMETHODIMP SetColorScheme(LOGPALETTE *pLogpal); - END_INTERFACE_PART(OleObject) - - // IOleControl Implementation - BEGIN_INTERFACE_PART(OleControl, IOleControl) - STDMETHODIMP GetControlInfo(CONTROLINFO* pCI); - STDMETHODIMP OnMnemonic(LPMSG pMsg); - STDMETHODIMP OnAmbientPropertyChange(DISPID dispID); - STDMETHODIMP FreezeEvents(BOOL bFreeze); - END_INTERFACE_PART(OleControl) - - // IOleInplaceObject Implementation - BEGIN_INTERFACE_PART(OleInplaceObject, IOleInPlaceObject) - STDMETHODIMP GetWindow(HWND *phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP InPlaceDeactivate(); - STDMETHODIMP UIDeactivate(); - STDMETHODIMP SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect); - STDMETHODIMP ReactivateAndUndo(); - END_INTERFACE_PART(OleInplaceObject) - - // IOleInplaceActiveObject Implementation - BEGIN_INTERFACE_PART(OleInplaceActiveObject, IOleInPlaceActiveObject) - STDMETHODIMP GetWindow(HWND *phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP TranslateAccelerator(LPMSG lpmsg); - STDMETHODIMP OnFrameWindowActivate(BOOL fActivate); - STDMETHODIMP OnDocWindowActivate(BOOL fActivate); - STDMETHODIMP ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow); - STDMETHODIMP EnableModeless(BOOL fEnable); - END_INTERFACE_PART(OleInplaceActiveObject) - - // IViewObjectEx Implementation - BEGIN_INTERFACE_PART(ViewObjectEx, IViewObjectEx) - STDMETHODIMP Draw(DWORD dwDrawAspect, LONG lIndex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDevice, HDC hdcDraw, LPCRECTL prcBounds, LPCRECTL prcWBounds, BOOL (__stdcall *pfnContinue)(DWORD dwContinue), DWORD dwContinue); - STDMETHODIMP GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet); - STDMETHODIMP Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze); - STDMETHODIMP Unfreeze(DWORD dwFreeze); - STDMETHODIMP SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdviseSink); - STDMETHODIMP GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdviseSink); - STDMETHODIMP GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE *ptd, LPSIZEL psizel); - STDMETHODIMP GetRect(DWORD dwAspect, LPRECTL pRect); - STDMETHODIMP GetViewStatus(DWORD* pdwStatus); - STDMETHODIMP QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult); - STDMETHODIMP QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult); - STDMETHODIMP GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel); - END_INTERFACE_PART(ViewObjectEx) - - // IDataObject Implementation - BEGIN_INTERFACE_PART(DataObject, IDataObject) - STDMETHODIMP GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm); - STDMETHODIMP GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm); - STDMETHODIMP QueryGetData(FORMATETC *pfmtc); - STDMETHODIMP GetCanonicalFormatEtc(FORMATETC * pfmtcIn, FORMATETC * pfmtcOut); - STDMETHODIMP SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease); - STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum); - STDMETHODIMP DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection); - STDMETHODIMP DUnadvise(DWORD dwConnection); - STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppenum); - END_INTERFACE_PART(DataObject) - - // IProvideClassInfo Implementation - BEGIN_INTERFACE_PART(ProvideClassInfo, IProvideClassInfo) - STDMETHODIMP GetClassInfo(ITypeInfo** ppTI); - END_INTERFACE_PART(ProvideClassInfo) - - // IConnectionPointContainer Implementation - BEGIN_INTERFACE_PART(ConnectionPointContainer, IConnectionPointContainer) - STDMETHODIMP EnumConnectionPoints(IEnumConnectionPoints **ppEnum); - STDMETHODIMP FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP); - END_INTERFACE_PART(ConnectionPointContainer) - - // IEnumConnectionPoints Implementation - BEGIN_INTERFACE_PART(EnumConnectionPoints, IEnumConnectionPoints) - STDMETHODIMP Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched); - STDMETHODIMP Skip(ULONG cConnections); - STDMETHODIMP Reset(void); - STDMETHODIMP Clone(IEnumConnectionPoints **ppEnum); - END_INTERFACE_PART(EnumConnectionPoints) - - // IConnectionPoint Implementation - BEGIN_INTERFACE_PART(ConnectionPoint, IConnectionPoint) - STDMETHODIMP GetConnectionInterface(IID *pIID); - STDMETHODIMP GetConnectionPointContainer(IConnectionPointContainer **ppCPC); - STDMETHODIMP Advise(IUnknown *pUnk, DWORD *pdwCookie); - STDMETHODIMP Unadvise(DWORD dwCookie); - STDMETHODIMP EnumConnections(IEnumConnections **ppEnum); - END_INTERFACE_PART(ConnectionPoint) - - // IOleCommandTarget Implementation - BEGIN_INTERFACE_PART(OleCommandTarget , IOleCommandTarget) - STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); - STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); - END_INTERFACE_PART(OleCommandTarget) - - // ISupportErrorInfo Implementation - BEGIN_INTERFACE_PART(SupportErrorInfo, ISupportErrorInfo) - STDMETHODIMP InterfaceSupportsErrorInfo(REFIID riid); - END_INTERFACE_PART(SupportErrorInfo) - - // IObjectSafety Implementation - BEGIN_INTERFACE_PART(ObjectSafety, IObjectSafety) - STDMETHODIMP GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions); - STDMETHODIMP SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions); - END_INTERFACE_PART(ObjectSafety) - - // IDsoDocObjectSite Implementation (for DocObject Callbacks to control) - BEGIN_INTERFACE_PART(DsoDocObjectSite, IDsoDocObjectSite) - STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); - STDMETHODIMP GetWindow(HWND* phWnd); - STDMETHODIMP GetBorder(LPRECT prcBorder); - STDMETHODIMP GetHostName(LPWSTR *ppwszHostName); - STDMETHODIMP SysMenuCommand(UINT uiCharCode); - STDMETHODIMP SetStatusText(LPCOLESTR pszText); - END_INTERFACE_PART(DsoDocObjectSite) - - STDMETHODIMP InitializeNewInstance(); - - STDMETHODIMP InPlaceActivate(LONG lVerb); - STDMETHODIMP UIActivate(BOOL fForceUIActive); - STDMETHODIMP_(void) SetInPlaceVisible(BOOL fShow); - STDMETHODIMP_(void) UpdateModalState(BOOL fModeless, BOOL fNotifyIPObject); - STDMETHODIMP_(void) UpdateInteractiveState(BOOL fActive); - STDMETHODIMP_(void) EnableDropFile(BOOL fEnable); - - STDMETHODIMP_(void) OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize); - STDMETHODIMP_(void) OnDestroyWindow(); - STDMETHODIMP_(void) OnResize(); - STDMETHODIMP_(void) OnMouseMove(UINT x, UINT y); - STDMETHODIMP_(void) OnButtonDown(UINT x, UINT y); - STDMETHODIMP_(void) OnMenuMessage(UINT msg, WPARAM wParam, LPARAM lParam); - STDMETHODIMP_(void) OnToolbarAction(DWORD cmd); - STDMETHODIMP_(void) OnDropFile(HDROP hdrpFile); - STDMETHODIMP_(void) OnTimer(UINT id); - - STDMETHODIMP_(void) OnForegroundCompChange(BOOL fCompActive); - STDMETHODIMP_(void) OnAppActivationChange(BOOL fActive, DWORD dwThreadID); - STDMETHODIMP_(void) OnComponentActivationChange(BOOL fActivate); - STDMETHODIMP_(void) OnCtrlFocusChange(BOOL fCtlGotFocus, HWND hFocusWnd); - STDMETHODIMP_(void) OnUIFocusChange(BOOL fUIActive); - - STDMETHODIMP_(void) OnPaletteChanged(HWND hwndPalChg); - STDMETHODIMP_(void) OnSyncPaint(); - STDMETHODIMP_(void) OnWindowEnable(BOOL fEnable){TRACE1("CDsoFramerControl::OnWindowEnable(%d)\n", fEnable);} - STDMETHODIMP_(BOOL) OnSysCommandMenu(CHAR ch); - - STDMETHODIMP_(HMENU) GetActivePopupMenu(); - STDMETHODIMP_(BOOL) FAlertUser(HRESULT hr, LPWSTR pwsFileName); - STDMETHODIMP_(BOOL) FRunningInDesignMode(); - STDMETHODIMP DoDialogAction(dsoShowDialogType item); - - STDMETHODIMP_(void) RaiseActivationEvent(BOOL fActive); - - STDMETHODIMP ProvideErrorInfo(HRESULT hres); - STDMETHODIMP RaiseAutomationEvent(DISPID did, ULONG cargs, VARIANT *pvtargs); - - STDMETHODIMP SetTempServerLock(BOOL fLock); - STDMETHODIMP ResetFrameHook(HWND hwndFrameWindow); - - // Some inline methods are provided for common tasks such as site notification - // or calculation of draw size based on user selection of tools and border style. - - void __fastcall ViewChanged() - { - if (m_pDataAdviseHolder) // Send data change notification. - m_pDataAdviseHolder->SendOnDataChange((IDataObject*)&m_xDataObject, NULL, 0); - - if (m_pViewAdviseSink) // Send the view change notification.... - { - m_pViewAdviseSink->OnViewChange(DVASPECT_CONTENT, -1); - if (m_fViewAdviseOnlyOnce) // If they asked to be advised once, kill the connection - m_xViewObjectEx.SetAdvise(DVASPECT_CONTENT, 0, NULL); - } - InvalidateRect(m_hwnd, NULL, TRUE); // Ensure a full repaint... - } - - void __fastcall GetSizeRectAfterBorder(LPRECT lprcx, LPRECT lprc) - { - if (lprcx) CopyRect(lprc, lprcx); - else SetRect(lprc, 0, 0, m_Size.cx, m_Size.cy); - if (m_fBorderStyle) InflateRect(lprc, -(4-m_fBorderStyle), -(4-m_fBorderStyle)); - } - - void __fastcall GetSizeRectAfterTitlebar(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterBorder(lprcx, lprc); - if (m_fShowTitlebar) lprc->top += 21; - } - - void __fastcall GetSizeRectForMenuBar(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterTitlebar(lprcx, lprc); - lprc->bottom = lprc->top + 24; - } - - void __fastcall GetSizeRectForDocument(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterTitlebar(lprcx, lprc); - if (m_fShowMenuBar) lprc->top += 24; - if (lprc->top > lprc->bottom) lprc->top = lprc->bottom; - } - - - void __fastcall RedrawCaption() - { - RECT rcT; - if ((m_hwnd) && (m_fShowTitlebar)) - { GetClientRect(m_hwnd, &rcT); rcT.bottom = 21; - InvalidateRect(m_hwnd, &rcT, FALSE); - } - if ((m_hwnd) && (m_fShowMenuBar)) - { GetSizeRectForMenuBar(NULL, &rcT); - InvalidateRect(m_hwnd, &rcT, FALSE); - } - } - - BOOL __fastcall FUseFrameHook(){return (m_lHookPolicy != dsoDisableHook);}; - BOOL __fastcall FDelayFrameHookSet(){return (m_lHookPolicy == dsoSetOnFirstOpen);}; - - BOOL __fastcall FDrawBitmapOnAppDeactive(){return (!(m_lActivationPolicy & dsoKeepUIActiveOnAppDeactive));} - BOOL __fastcall FChangeObjActiveOnFocusChange(){return (m_lActivationPolicy & dsoCompDeactivateOnLostFocus);}; - BOOL __fastcall FIPDeactivateOnCompChange(){return (m_lActivationPolicy & dsoIPDeactivateOnCompDeactive);}; - - // The control window proceedure is handled through static class method. - static STDMETHODIMP_(LRESULT) ControlWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - - // Force redaw of all child windows... - STDMETHODIMP_(BOOL) InvalidateAllChildWindows(HWND hwnd); - static STDMETHODIMP_(BOOL) InvalidateAllChildWindowsCallback(HWND hwnd, LPARAM lParam); - - // The variables for the control are kept private but accessible to the - // nested classes for each interface. -private: - - ULONG m_cRef; // Reference count - IUnknown *m_pOuterUnknown; // Outer IUnknown (points to m_xInternalUnknown if not agg) - ITypeInfo *m_ptiDispType; // ITypeInfo Pointer (IDispatch Impl) - EXCEPINFO *m_pDispExcep; // EXCEPINFO Pointer (IDispatch Impl) - - HWND m_hwnd; // our window - HWND m_hwndParent; // immediate parent window - SIZEL m_Size; // the size of this control - RECT m_rcLocation; // where we at - - IOleClientSite *m_pClientSite; // active client site of host containter - IOleControlSite *m_pControlSite; // control site - IOleInPlaceSite *m_pInPlaceSite; // inplace site - IOleInPlaceFrame *m_pInPlaceFrame; // inplace frame - IOleInPlaceUIWindow *m_pInPlaceUIWindow; // inplace ui window - - IAdviseSink *m_pViewAdviseSink; // advise sink for view (only 1 allowed) - IOleAdviseHolder *m_pOleAdviseHolder; // OLE advise holder (for oleobject sinks) - IDataAdviseHolder *m_pDataAdviseHolder; // OLE data advise holder (for dataobject sink) - IDispatch *m_dispEvents; // event sink (we only support 1 at a time) - IStorage *m_pOleStorage; // IStorage for OLE hosts. - - CDsoDocObject *m_pDocObjFrame; // The Embedding Class - CDsoDocObject *m_pServerLock; // Optional Server Lock for out-of-proc DocObject - - OLE_COLOR m_clrBorderColor; // Control Colors - OLE_COLOR m_clrBackColor; // " - OLE_COLOR m_clrForeColor; // " - OLE_COLOR m_clrTBarColor; // " - OLE_COLOR m_clrTBarTextColor; // " - - BSTR m_bstrCustomCaption; // A custom caption (if provided) - HMENU m_hmenuFilePopup; // The File menu popup - WORD m_wFileMenuFlags; // Bitflags of enabled file menu items. - WORD m_wSelMenuItem; // Which item (if any) is selected - WORD m_cMenuItems; // Count of items on menu bar - RECT m_rgrcMenuItems[DSO_MAX_MENUITEMS]; // Menu bar items - CHAR m_rgchMenuAccel[DSO_MAX_MENUITEMS]; // Menu bar accelerators - LPWSTR m_pwszHostName; // Custom name for SetHostNames - - class CDsoFrameHookManager* m_pHookManager; // Frame Window Hook Manager Class - LONG m_lHookPolicy; // Policy on how to use frame hook for this host. - LONG m_lActivationPolicy; // Policy on activation behavior for comp focus - HBITMAP m_hbmDeactive; // Bitmap used for IPDeactiveOnXXX policies - UINT m_uiSyncPaint; // Sync paint counter for draw issues with UIDeactivateOnXXX - - unsigned int m_fDirty:1; // does the control need to be resaved? - unsigned int m_fInPlaceActive:1; // are we in place active or not? - unsigned int m_fInPlaceVisible:1; // we are in place visible or not? - unsigned int m_fUIActive:1; // are we UI active or not. - unsigned int m_fHasFocus:1; // do we have current focus. - unsigned int m_fViewAdvisePrimeFirst: 1;// for IViewobject2::setadvise - unsigned int m_fViewAdviseOnlyOnce: 1; // for IViewobject2::setadvise - unsigned int m_fUsingWindowRgn:1; // for SetObjectRects and clipping - unsigned int m_fFreezeEvents:1; // should events be frozen? - unsigned int m_fDesignMode:1; // are we in design mode? - unsigned int m_fModeFlagValid:1; // has mode changed since last check? - unsigned int m_fBorderStyle:2; // the border style - unsigned int m_fShowTitlebar:1; // should we show titlebar? - unsigned int m_fShowToolbars:1; // should we show toolbars? - unsigned int m_fModalState:1; // are we modal? - unsigned int m_fObjectMenu:1; // are we over obj menu item? - unsigned int m_fConCntDone:1; // for enum connectpts - unsigned int m_fAppActive:1; // is the app active? - unsigned int m_fComponentActive:1; // is the component active? - unsigned int m_fShowMenuBar:1; // should we show menubar? - unsigned int m_fInDocumentLoad:1; // set when loading file - unsigned int m_fNoInteractive:1; // set when we don't allow interaction with docobj - unsigned int m_fShowMenuPrev:1; // were menus visible before loss of interactivity? - unsigned int m_fShowToolsPrev:1; // were toolbars visible before loss of interactivity? - unsigned int m_fSyncPaintTimer:1; // is syncpaint timer running? - unsigned int m_fInControlActivate:1; // is currently in activation call? - unsigned int m_fInFocusChange:1; // are we in a focus change? - unsigned int m_fActivateOnStatus:1; // we need to activate on change of status - unsigned int m_fDisableMenuAccel:1; // using menu accelerators - unsigned int m_fBkgrdPaintTimer:1; // using menu accelerators - -}; - - -//////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook -- Frame Window Hook Class -// -// Used by the control to allow for proper host notification of focus -// and activation events occurring at top-level window frame. Because -// this DocObject host is an OCX, we don't own these notifications and -// have to "steal" them from our parent using a subclass. -// -// IMPORTANT: Since the parent frame may exist on a separate thread, this -// class does nothing but the hook. The code to notify the active component -// is in a separate global class that is shared by all threads. -// -class CDsoFrameWindowHook -{ -public: - CDsoFrameWindowHook(){ODS("CDsoFrameWindowHook created\n");m_cHookCount=0;m_hwndTopLevelHost=NULL;m_pfnOrigWndProc=NULL;m_fHostUnicodeWindow=FALSE;} - ~CDsoFrameWindowHook(){ODS("CDsoFrameWindowHook deleted\n");} - - static STDMETHODIMP_(CDsoFrameWindowHook*) AttachToFrameWindow(HWND hwndParent); - STDMETHODIMP Detach(); - - static STDMETHODIMP_(CDsoFrameWindowHook*) GetHookFromWindow(HWND hwnd); - inline STDMETHODIMP_(void) AddRef(){InterlockedIncrement((LONG*)&m_cHookCount);} - - static STDMETHODIMP_(LRESULT) - HostWindowProcHook(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - -protected: - DWORD m_cHookCount; - HWND m_hwndTopLevelHost; // Top-level host window (hooked) - WNDPROC m_pfnOrigWndProc; - BOOL m_fHostUnicodeWindow; -}; - -// THE MAX NUMBER OF DSOFRAMER CONTROLS PER PROCESS -#define DSOF_MAX_CONTROLS 20 - -//////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager -- Hook Manager Class -// -// Used to keep track of which control is active and forward notifications -// to it using window messages (to cross thread boundaries). -// -class CDsoFrameHookManager -{ -public: - CDsoFrameHookManager(){ODS("CDsoFrameHookManager created\n"); m_fAppActive=TRUE; m_idxActive=DSOF_MAX_CONTROLS; m_cComponents=0;} - ~CDsoFrameHookManager(){ODS("CDsoFrameHookManager deleted\n");} - - static STDMETHODIMP_(CDsoFrameHookManager*) - RegisterFramerControl(HWND hwndParent, HWND hwndControl); - - STDMETHODIMP AddComponent(HWND hwndParent, HWND hwndControl); - STDMETHODIMP DetachComponent(HWND hwndControl); - STDMETHODIMP SetActiveComponent(HWND hwndControl); - STDMETHODIMP OnComponentNotify(DWORD msg, WPARAM wParam, LPARAM lParam); - - inline STDMETHODIMP_(HWND) - GetActiveComponentWindow(){return m_pComponents[m_idxActive].hwndControl;} - - inline STDMETHODIMP_(CDsoFrameWindowHook*) - GetActiveComponentFrame(){return m_pComponents[m_idxActive].phookFrame;} - - STDMETHODIMP_(BOOL) SendNotifyMessage(HWND hwnd, DWORD msg, WPARAM wParam, LPARAM lParam); - -protected: - BOOL m_fAppActive; - DWORD m_idxActive; - DWORD m_cComponents; - struct FHOOK_COMPONENTS - { - HWND hwndControl; - CDsoFrameWindowHook *phookFrame; - } m_pComponents[DSOF_MAX_CONTROLS]; -}; - -#endif //DS_DSOFRAMER_H \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln deleted file mode 100644 index 2c94c084..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln +++ /dev/null @@ -1,69 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsoframer", "dsoframer.vcproj", "{005801E1-A867-4CBB-995F-BA2EF4360BDF}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Any CPU.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.Build.0 = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.Build.0 = Release|Win32 - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Win32.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Win32.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Win32.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Win32.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Win32.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Win32.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Win32.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Win32.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln.bak b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln.bak deleted file mode 100644 index 02fbc1ed..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln.bak +++ /dev/null @@ -1,77 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsoframer", "dsoframer.vcproj", "{005801E1-A867-4CBB-995F-BA2EF4360BDF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleCSharp", "..\SampleCSharp\SampleCSharp.csproj", "{E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestC1DockingTab", "..\TestC1DockingTab\TestC1DockingTab.csproj", "{D066A5C4-72B8-45F8-A117-B967019F41AE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetBarDockable", "..\DotNetBarDockable\DotNetBarDockable.csproj", "{96DC8B48-A4E2-4826-A182-BE112B628B50}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetBarControl", "..\DotNetBarControl\DotNetBarControl.csproj", "{9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Any CPU.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.Build.0 = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.Build.0 = Release|Win32 - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Win32.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Win32.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Win32.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Win32.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Win32.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Win32.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Win32.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Win32.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln.old b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln.old deleted file mode 100644 index 2996d403..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.sln.old +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsoframer", "dsoframer.vcproj", "{005801E1-A867-4CBB-995F-BA2EF4360BDF}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.suo.old b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.suo.old deleted file mode 100644 index 5a6ce075..00000000 Binary files a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.suo.old and /dev/null differ diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj deleted file mode 100644 index e933b00d..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj +++ /dev/null @@ -1,470 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj.7.10.old b/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj.7.10.old deleted file mode 100644 index 3fa47abc..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/dsoframer.vcproj.7.10.old +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/ipprevw.h b/PROMS/DSOFramer/DSOFramer/Source2005/ipprevw.h deleted file mode 100644 index 22ace9fe..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/ipprevw.h +++ /dev/null @@ -1,88 +0,0 @@ -/*************************************************************************** - * IPPREVIEW.H - * - * DSOFramer: IOleInplacePrintPreview/IOlePreviewCallback - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef __IPPREVIEW_H -#define __IPPREVIEW_H - -//////////////////////////////////////////////////////////////////////// -// -// IOlePreviewCallback -// -// Implemented by host to receive notifaction messages -// from ip object while displaying a print preview. -// -DEFINE_GUID(IID_IOlePreviewCallback, 0xB722BCD5, 0x4E68, 0x101B, 0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70); - -#undef INTERFACE -#define INTERFACE IOlePreviewCallback -DECLARE_INTERFACE_(IOlePreviewCallback, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - // IUnknown methods - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - // IOlePreviewCallback methods - STDMETHOD(Notify)(THIS_ DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus) PURE; -}; - -#define NOTIFY_FINISHED 1 -#define NOTIFY_BUSY 2 -#define NOTIFY_IDLE 4 -#define NOTIFY_DISABLERESIZE 8 -#define NOTIFY_QUERYCLOSEPREVIEW 16 -#define NOTIFY_FORCECLOSEPREVIEW 32 -#define NOTIFY_UIACTIVE 64 -#define NOTIFY_UNABLETOPREVIEW 128 - -//////////////////////////////////////////////////////////////////////// -// -// IOleInplacePrintPreview -// -// Implemented by server to start/stop print preview. Hosts should -// call QueryStatus to make sure server is able to enter preview mode -// before calling StartPrintPreview. -// -DEFINE_GUID(IID_IOleInplacePrintPreview, 0xB722BCD4, 0x4E68, 0x101B, 0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70); - -#undef INTERFACE -#define INTERFACE IOleInplacePrintPreview -DECLARE_INTERFACE_(IOleInplacePrintPreview, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - // IUnknown methods - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - // IOleInplacePrintPreview methods - STDMETHOD(StartPrintPreview)(THIS_ DWORD grfFlags, DVTARGETDEVICE *ptd, IOlePreviewCallback *ppCallback, LONG nFirstPage) PURE; - STDMETHOD(EndPrintPreview)(THIS_ BOOL fForceClose) PURE; - STDMETHOD(QueryStatus)(THIS_ void) PURE; -}; - -#define PREVIEWFLAG_MAYBOTHERUSER 1 -#define PREVIEWFLAG_PROMPTUSER 2 -#define PREVIEWFLAG_USERMAYCHANGEPRINTER 4 -#define PREVIEWFLAG_RECOMPOSETODEVICE 8 - - -#endif //__IPPREVIEW_H diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/mainentry.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/mainentry.cpp deleted file mode 100644 index ef36e7e1..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/mainentry.cpp +++ /dev/null @@ -1,318 +0,0 @@ -/*************************************************************************** - * MAINENTRY.CPP - * - * Main DLL Entry and Required COM Entry Points. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#define INITGUID // Init the GUIDS for the control... -#include "dsoframer.h" - -HINSTANCE v_hModule = NULL; // DLL module handle -HANDLE v_hPrivateHeap = NULL; // Private Memory Heap -ULONG v_cLocks = 0; // Count of server locks -HICON v_icoOffDocIcon = NULL; // Small office icon (for caption bar) -BOOL v_fUnicodeAPI = FALSE; // Flag to determine if we should us Unicode API -BOOL v_fWindows2KPlus = FALSE; -CRITICAL_SECTION v_csecThreadSynch; - -//////////////////////////////////////////////////////////////////////// -// DllMain -- OCX Main Entry -// -// -extern "C" BOOL APIENTRY DllMain(HINSTANCE hDllHandle, DWORD dwReason, LPVOID /*lpReserved*/) -{ - switch (dwReason) - { - case DLL_PROCESS_ATTACH: - v_hModule = hDllHandle; - v_hPrivateHeap = HeapCreate(0, 0x1000, 0); - v_icoOffDocIcon = (HICON)LoadImage(hDllHandle, MAKEINTRESOURCE(IDI_SMALLOFFDOC), IMAGE_ICON, 16, 16, 0); - { - DWORD dwVersion = GetVersion(); - v_fUnicodeAPI = ((dwVersion & 0x80000000) == 0); - v_fWindows2KPlus = ((v_fUnicodeAPI) && (LOBYTE(LOWORD(dwVersion)) > 4)); - } - InitializeCriticalSection(&v_csecThreadSynch); - DisableThreadLibraryCalls(hDllHandle); - break; - - case DLL_PROCESS_DETACH: - if (v_icoOffDocIcon) DeleteObject(v_icoOffDocIcon); - if (v_hPrivateHeap) HeapDestroy(v_hPrivateHeap); - DeleteCriticalSection(&v_csecThreadSynch); - break; - } - return TRUE; -} - -#ifdef DSO_MIN_CRT_STARTUP -extern "C" BOOL APIENTRY _DllMainCRTStartup(HINSTANCE hDllHandle, DWORD dwReason, LPVOID lpReserved) -{return DllMain(hDllHandle, dwReason, lpReserved);} -#endif - -//////////////////////////////////////////////////////////////////////// -// Standard COM DLL Entry Points -// -// -//////////////////////////////////////////////////////////////////////// -// DllCanUnloadNow -// -// -STDAPI DllCanUnloadNow() -{ - return ((v_cLocks == 0) ? S_OK : S_FALSE); -} - -//////////////////////////////////////////////////////////////////////// -// DllGetClassObject -// -// Returns IClassFactory instance for FramerControl. We only support -// this one object for creation. -// -STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void** ppv) -{ - HRESULT hr; - CDsoFramerClassFactory* pcf; - - CHECK_NULL_RETURN(ppv, E_POINTER); - *ppv = NULL; - - // The only component we can create is the BinderControl... - if (rclsid != CLSID_FramerControl) - return CLASS_E_CLASSNOTAVAILABLE; - - // Create the needed class factory... - pcf = new CDsoFramerClassFactory(); - CHECK_NULL_RETURN(pcf, E_OUTOFMEMORY); - - // Get requested interface. - if (FAILED(hr = pcf->QueryInterface(riid, ppv))) - { - *ppv = NULL; delete pcf; - } - else InterlockedIncrement((LPLONG)&v_cLocks); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DllRegisterServer -// -// Registration of the OCX. -// -STDAPI DllRegisterServer() -{ - HRESULT hr = S_OK; - HKEY hk, hk2; - DWORD dwret; - CHAR szbuffer[256]; - LPWSTR pwszModule; - ITypeInfo* pti; - - // If we can't find the path to the DLL, we can't register... - if (!FGetModuleFileName(v_hModule, &pwszModule)) - return E_FAIL; - - // Setup the CLSID. This is the most important. If there is a critical failure, - // we will set HR = GetLastError and return... - if ((dwret = RegCreateKeyEx(HKEY_CLASSES_ROOT, - "CLSID\\"DSOFRAMERCTL_CLSIDSTR, 0, NULL, 0, KEY_WRITE, NULL, &hk, NULL)) != ERROR_SUCCESS) - { - DsoMemFree(pwszModule); - return HRESULT_FROM_WIN32(dwret); - } - - lstrcpy(szbuffer, DSOFRAMERCTL_SHORTNAME); - RegSetValueEx(hk, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - // Setup the InprocServer32 key... - dwret = RegCreateKeyEx(hk, "InprocServer32", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "Apartment"); - RegSetValueEx(hk2, "ThreadingModel", 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - // We call a wrapper function for this setting since the path should be - // stored in Unicode to handle non-ANSI file path names on some systems. - // This wrapper will convert the path to ANSI if we are running on Win9x. - // The rest of the Reg calls should be OK in ANSI since they do not - // contain non-ANSI/Unicode-specific characters... - if (!FSetRegKeyValue(hk2, pwszModule)) - hr = E_ACCESSDENIED; - - RegCloseKey(hk2); - - dwret = RegCreateKeyEx(hk, "ProgID", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_PROGID); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - } - else hr = HRESULT_FROM_WIN32(dwret); - - if (SUCCEEDED(hr)) - { - dwret = RegCreateKeyEx(hk, "Control", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - RegCloseKey(hk2); - } - else hr = HRESULT_FROM_WIN32(dwret); - } - - - // If we succeeded so far, andle the remaining (non-critical) reg keys... - if (SUCCEEDED(hr)) - { - dwret = RegCreateKeyEx(hk, "ToolboxBitmap32", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - LPWSTR pwszT = DsoCopyStringCat(pwszModule, L",102"); - if (pwszT) - { - FSetRegKeyValue(hk2, pwszT); - DsoMemFree(pwszT); - } - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "TypeLib", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_TLIBSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "Version", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_VERSIONSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "MiscStatus", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "131473"); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "DataFormats\\GetSet\\0", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "3,1,32,1"); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - } - - RegCloseKey(hk); - DsoMemFree(pwszModule); - - // This should catch any critical failures during setup of CLSID... - RETURN_ON_FAILURE(hr); - - // Setup the ProgID (non-critical)... - if (RegCreateKeyEx(HKEY_CLASSES_ROOT, DSOFRAMERCTL_PROGID, 0, - NULL, 0, KEY_WRITE, NULL, &hk, NULL) == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_FULLNAME); - RegSetValueEx(hk, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - if (RegCreateKeyEx(hk, "CLSID", 0, - NULL, 0, KEY_WRITE, NULL, &hk2, NULL) == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_CLSIDSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - RegCloseKey(hk); - } - - // Load the type info (this should register the lib once)... - hr = DsoGetTypeInfoEx(LIBID_DSOFramer, 0, - DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, v_hModule, CLSID_FramerControl, &pti); - if (SUCCEEDED(hr)) pti->Release(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// RegRecursiveDeleteKey -// -// Helper function called by DllUnregisterServer for nested key removal. -// -static HRESULT RegRecursiveDeleteKey(HKEY hkParent, LPCSTR pszSubKey) -{ - HRESULT hr = S_OK; - HKEY hk; - DWORD dwret, dwsize; - FILETIME time ; - CHAR szbuffer[512]; - - dwret = RegOpenKeyEx(hkParent, pszSubKey, 0, KEY_ALL_ACCESS, &hk); - if (dwret != ERROR_SUCCESS) - return HRESULT_FROM_WIN32(dwret); - - // Enumerate all of the decendents of this child... - dwsize = 510 ; - while (RegEnumKeyEx(hk, 0, szbuffer, &dwsize, NULL, NULL, NULL, &time) == ERROR_SUCCESS) - { - // If there are any sub-folders, delete them first (to make NT happy)... - hr = RegRecursiveDeleteKey(hk, szbuffer); - if (FAILED(hr)) break; - dwsize = 510; - } - - // Close the child... - RegCloseKey(hk); - - RETURN_ON_FAILURE(hr); - - // Delete this child. - dwret = RegDeleteKey(hkParent, pszSubKey); - if (dwret != ERROR_SUCCESS) - hr = HRESULT_FROM_WIN32(dwret); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DllUnregisterServer -// -// Removal code for the OCX. -// -STDAPI DllUnregisterServer() -{ - HRESULT hr; - hr = RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, "CLSID\\"DSOFRAMERCTL_CLSIDSTR); - if (SUCCEEDED(hr)) - { - RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, DSOFRAMERCTL_PROGID); - RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, "TypeLib\\"DSOFRAMERCTL_TLIBSTR); - } - - // This means the key does not exist (i.e., the DLL - // was alreay unregistered, so return OK)... - if (hr == 0x80070002) hr = S_OK; - - return hr; -} diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/rbbinder.h b/PROMS/DSOFramer/DSOFramer/Source2005/rbbinder.h deleted file mode 100644 index c312a2bb..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/rbbinder.h +++ /dev/null @@ -1,253 +0,0 @@ -/*************************************************************************** - * RBBINDER.H - * - * DSOFramer: Internet Publishing Provider (MSDAIPP) Compatible Header - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_RBBINDER_H -#define DS_RBBINDER_H - -//////////////////////////////////////////////////////////////////////// -// The Microsoft OLEDB Provider for Internet Publishing (MSDAIPP) is now -// standard with MDAC 2.5. However, it will run with MDAC 2.1, so this -// header will allow us to safely compile without 2.5. -// -#define OLEDBVER 0x0250 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#include // 2-byte structure packing - -#ifndef BEGIN_INTERFACE -#define BEGIN_INTERFACE -#endif - - -//////////////////////////////////////////////////////////////////////// -// MSDAIPP Specific GUIDs (not defined in OLEDB.H) -// -DEFINE_GUID(CLSID_MSDAIPP_DSO, 0xAF320921L, 0x9381, 0x11d1, 0x9C, 0x3C, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); -DEFINE_GUID(CLSID_MSDAIPP_BINDER, 0xE1D2BF40L, 0xA96B, 0x11d1, 0x9C, 0x6B, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); -DEFINE_GUID(DBPROPSET_MSDAIPP_INIT, 0x8F1033E3L, 0xB2CD, 0x11d1, 0x9C, 0x74, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); - - -//////////////////////////////////////////////////////////////////////// -// OLEDB Additional defines -- included for machines with MDAC 2.0/2.1 -// - -//////////////////////////////////////////////////////////////////////// -// OLEDB 2.5 GUIDS Redefined for use here; this is to avoid linker errors -// on machines that have different versions of MDAC libs. -// -DEFINE_GUID(IIDX_IBindResource, 0x0c733ab1L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_IDBBinderProperties, 0x0c733ab3L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_ICreateRow, 0x0c733ab2L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_IAuthenticate, 0x79eac9d0L, 0xbaf9, 0x11ce, 0x8c, 0x82, 0x00, 0xaa, 0x00, 0x4b, 0xa9, 0x0b); -DEFINE_GUID(DBGUIDX_STREAM, 0xc8b522f9L, 0x5cf3, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); - - -/////////////////////////////////////////////////////////////////////// -// MSDAIPP Binding Interfaces (all this should be standard in MDAC 2.5) -// -#ifndef __IBindResource_FWD_DEFINED__ -#define __IBindResource_FWD_DEFINED__ - -typedef interface IBindResource IBindResource; - -typedef DWORD DBBINDURLFLAG; -enum DBBINDURLFLAGENUM -{ - DBBINDURLFLAG_READ = 0x1L, - DBBINDURLFLAG_WRITE = 0x2L, - DBBINDURLFLAG_READWRITE = 0x3L, - DBBINDURLFLAG_SHARE_DENY_READ = 0x4L, - DBBINDURLFLAG_SHARE_DENY_WRITE = 0x8L, - DBBINDURLFLAG_SHARE_EXCLUSIVE = 0xcL, - DBBINDURLFLAG_SHARE_DENY_NONE = 0x10L, - DBBINDURLFLAG_ASYNCHRONOUS = 0x1000L, - DBBINDURLFLAG_COLLECTION = 0x2000L, - DBBINDURLFLAG_DELAYFETCHSTREAM = 0x4000L, - DBBINDURLFLAG_DELAYFETCHCOLUMNS = 0x8000L, - DBBINDURLFLAG_RECURSIVE = 0x400000L, - DBBINDURLFLAG_OUTPUT = 0x800000L, - DBBINDURLFLAG_WAITFORINIT = 0x1000000L, - DBBINDURLFLAG_OPENIFEXISTS = 0x2000000L, - DBBINDURLFLAG_OVERWRITE = 0x4000000L, - DBBINDURLFLAG_ISSTRUCTUREDDOCUMENT = 0x8000000L -}; - -typedef DWORD DBBINDURLSTATUS; -enum DBBINDURLSTATUSENUM -{ - DBBINDURLSTATUS_S_OK = 0L, - DBBINDURLSTATUS_S_DENYNOTSUPPORTED = 0x1L, - DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED = 0x4L, - DBBINDURLSTATUS_S_REDIRECTED = 0x8L -}; - -enum DBPROP_OLEDB25_RB -{ - DBPROP_INIT_BINDFLAGS = 0x10eL, - DBPROP_INIT_LOCKOWNER = 0x10fL -}; - -typedef ULONG DBCOUNTITEM; - -typedef struct tagDBIMPLICITSESSION - { - IUnknown __RPC_FAR *pUnkOuter; - IID __RPC_FAR *piid; - IUnknown __RPC_FAR *pSession; - } DBIMPLICITSESSION; - -#endif //__IBindResource_FWD_DEFINED__ - - -#ifndef __IBindResource_INTERFACE_DEFINED__ -#define __IBindResource_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IBindResource -DECLARE_INTERFACE_(IBindResource, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* IBindResource methods */ - STDMETHOD(Bind)(THIS_ - /* [in] */ IUnknown __RPC_FAR *pUnkOuter, - /* [in] */ LPCOLESTR pwszURL, - /* [in] */ DBBINDURLFLAG dwBindURLFlags, - /* [in] */ REFGUID rguid, - /* [in] */ REFIID riid, - /* [in] */ IAuthenticate __RPC_FAR *pAuthenticate, - /* [unique][out][in] */ DBIMPLICITSESSION __RPC_FAR *pImplSession, - /* [unique][out][in] */ DBBINDURLSTATUS __RPC_FAR *pdwBindStatus, - /* [iid_is][out] */ IUnknown __RPC_FAR *__RPC_FAR *ppUnk) PURE; -}; - -#endif //__IBindResource_INTERFACE_DEFINED__ - - - -#ifndef __ICreateRow_INTERFACE_DEFINED__ -#define __ICreateRow_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE ICreateRow -DECLARE_INTERFACE_(ICreateRow, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* ICreateRow methods */ - STDMETHOD(CreateRow)(THIS_ - /* [unique][in] */ IUnknown __RPC_FAR *pUnkOuter, - /* [in] */ LPCOLESTR pwszURL, - /* [in] */ DBBINDURLFLAG dwBindURLFlags, - /* [in] */ REFGUID rguid, - /* [in] */ REFIID riid, - /* [unique][in] */ IAuthenticate __RPC_FAR *pAuthenticate, - /* [unique][out][in] */ IUnknown __RPC_FAR *pImplSession, - /* [unique][out][in] */ DBBINDURLSTATUS __RPC_FAR *pdwBindStatus, - /* [out] */ LPOLESTR __RPC_FAR *ppwszNewURL, - /* [iid_is][out] */ IUnknown __RPC_FAR *__RPC_FAR *ppUnk) PURE; -}; - -#endif //__ICreateRow_INTERFACE_DEFINED__ - - -#ifndef __IDBBinderProperties_INTERFACE_DEFINED__ -#define __IDBBinderProperties_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IDBBinderProperties -DECLARE_INTERFACE_(IDBBinderProperties, IDBProperties) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IDBProperties methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - - STDMETHOD(GetProperties)(THIS_ ULONG cPropertyIDSets, const DBPROPIDSET __RPC_FAR rgPropertyIDSets[], ULONG __RPC_FAR *pcPropertySets, DBPROPSET __RPC_FAR *__RPC_FAR *prgPropertySets) PURE; - STDMETHOD(GetPropertyInfo)(THIS_ ULONG cPropertyIDSets, const DBPROPIDSET __RPC_FAR rgPropertyIDSets[], ULONG __RPC_FAR *pcPropertyInfoSets, DBPROPINFOSET __RPC_FAR *__RPC_FAR *prgPropertyInfoSets, OLECHAR __RPC_FAR *__RPC_FAR *ppDescBuffer) PURE; - STDMETHOD(SetProperties)(THIS_ ULONG cPropertySets, DBPROPSET __RPC_FAR rgPropertySets[]) PURE; -#endif - /* IDBBinderProperties methods */ - STDMETHOD(Reset)(THIS) PURE; -}; - -#endif //__IDBBinderProperties_INTERFACE_DEFINED__ - - -//////////////////////////////////////////////////////////////////////// -// IAuthenticate (borrowed from urlmon.h to avoid extra includes) -// -#ifndef __IAuthenticate_INTERFACE_DEFINED__ -#define __IAuthenticate_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IAuthenticate -DECLARE_INTERFACE_(IAuthenticate, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* IAuthenticate methods */ - STDMETHOD(Authenticate)(THIS_ HWND __RPC_FAR *phwnd, LPWSTR __RPC_FAR *pszUsername, LPWSTR __RPC_FAR *pszPassword) PURE; -}; - -#endif //__IAuthenticate_INTERFACE_DEFINED__ - -//OLEDB 2.1 Error values -#ifndef DB_E_READONLY -#define DB_E_READONLY ((HRESULT)0x80040E94L) -#define DB_E_RESOURCELOCKED ((HRESULT)0x80040E92L) -#define DB_E_CANNOTCONNECT ((HRESULT)0x80040E96L) -#define DB_E_TIMEOUT ((HRESULT)0x80040E97L) -#define DB_E_RESOURCEEXISTS ((HRESULT)0x80040E98L) -#define DB_E_OUTOFSPACE ((HRESULT)0x80040E9AL) -#endif - -//OLEDB 2.5 Error values -#ifndef DB_SEC_E_SAFEMODE_DENIED -#define DB_SEC_E_SAFEMODE_DENIED ((HRESULT)0x80040E9BL) -#endif - -#ifdef __cplusplus -} //extern "C" -#endif - -#endif // DS_RBBINDER_H - diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/utilities.cpp b/PROMS/DSOFramer/DSOFramer/Source2005/utilities.cpp deleted file mode 100644 index 9b34cdf1..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/utilities.cpp +++ /dev/null @@ -1,1359 +0,0 @@ -/*************************************************************************** - * UTILITIES.CPP - * - * Shared helper functions and routines. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// Core Utility Functions -// -//////////////////////////////////////////////////////////////////////// -// Heap Allocation (Private Heap) -// -extern HANDLE v_hPrivateHeap; -STDAPI_(LPVOID) DsoMemAlloc(DWORD cbSize) -{ - CHECK_NULL_RETURN(v_hPrivateHeap, NULL); - return HeapAlloc(v_hPrivateHeap, HEAP_ZERO_MEMORY, cbSize); -} - -STDAPI_(void) DsoMemFree(LPVOID ptr) -{ - if ((v_hPrivateHeap) && (ptr)) - HeapFree(v_hPrivateHeap, 0, ptr); -} - -void * _cdecl operator new(size_t size){ return DsoMemAlloc(size);} -void _cdecl operator delete(void *ptr){ DsoMemFree(ptr); } -int __cdecl _purecall(){__asm{int 3}; return 0;} - -//////////////////////////////////////////////////////////////////////// -// Global String Functions -// -//////////////////////////////////////////////////////////////////////// -// DsoConvertToUnicodeEx -// -STDAPI DsoConvertToUnicodeEx(LPCSTR pszMbcsString, DWORD cbMbcsLen, LPWSTR pwszUnicode, DWORD cbUniLen, UINT uiCodePage) -{ - DWORD cbRet; - UINT iCode = CP_ACP; - - if (IsValidCodePage(uiCodePage)) - iCode = uiCodePage; - - CHECK_NULL_RETURN(pwszUnicode, E_POINTER); - pwszUnicode[0] = L'\0'; - - CHECK_NULL_RETURN(pszMbcsString, E_POINTER); - CHECK_NULL_RETURN(cbMbcsLen, E_INVALIDARG); - CHECK_NULL_RETURN(cbUniLen, E_INVALIDARG); - - cbRet = MultiByteToWideChar(iCode, 0, pszMbcsString, cbMbcsLen, pwszUnicode, cbUniLen); - if (cbRet == 0) return E_WIN32_LASTERROR; - - pwszUnicode[cbRet] = L'\0'; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToMBCSEx -// -STDAPI DsoConvertToMBCSEx(LPCWSTR pwszUnicodeString, DWORD cbUniLen, LPSTR pszMbcsString, DWORD cbMbcsLen, UINT uiCodePage) -{ - DWORD cbRet; - UINT iCode = CP_ACP; - - if (IsValidCodePage(uiCodePage)) - iCode = uiCodePage; - - CHECK_NULL_RETURN(pszMbcsString, E_POINTER); - pszMbcsString[0] = L'\0'; - - CHECK_NULL_RETURN(pwszUnicodeString, E_POINTER); - CHECK_NULL_RETURN(cbMbcsLen, E_INVALIDARG); - CHECK_NULL_RETURN(cbUniLen, E_INVALIDARG); - - cbRet = WideCharToMultiByte(iCode, 0, pwszUnicodeString, -1, pszMbcsString, cbMbcsLen, NULL, NULL); - if (cbRet == 0) return E_WIN32_LASTERROR; - - pszMbcsString[cbRet] = '\0'; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToLPWSTR -// -// Takes a MBCS string and returns a LPWSTR allocated on private heap. -// -STDAPI_(LPWSTR) DsoConvertToLPWSTR(LPCSTR pszMbcsString) -{ - LPWSTR pwsz = NULL; - UINT cblen, cbnew; - - if ((pszMbcsString) && - ((cblen = lstrlen(pszMbcsString)) > 0)) - { - cbnew = ((cblen + 1) * sizeof(WCHAR)); - if ((pwsz = (LPWSTR)DsoMemAlloc(cbnew)) != NULL) - { - if (FAILED(DsoConvertToUnicodeEx(pszMbcsString, cblen, pwsz, cbnew, GetACP()))) - { - DsoMemFree(pwsz); - pwsz = NULL; - } - } - } - - return pwsz; -} -//////////////////////////////////////////////////////////////////////// -// DsoConvertToMBCS -// -// Takes a WCHAR string and returns a LPSTR on the private heap. -// -STDAPI_(LPSTR) DsoConvertToMBCS(LPCWSTR pwszUnicodeString) -{ - LPSTR psz = NULL; - UINT cblen, cbnew; - - if ((pwszUnicodeString) && - ((cblen = lstrlenW(pwszUnicodeString)) > 0)) - { - cbnew = ((cblen + 1) * sizeof(WCHAR)); - if ((psz = (LPSTR)DsoMemAlloc(cbnew)) != NULL) - { - if (FAILED(DsoConvertToMBCSEx(pwszUnicodeString, cblen, psz, cbnew, GetACP()))) - { - DsoMemFree(psz); psz = NULL; - } - } - } - - return psz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToBSTR -// -// Takes a MBCS string and returns a BSTR. NULL is returned if the -// function fails or the string is empty. -// -STDAPI_(BSTR) DsoConvertToBSTR(LPCSTR pszMbcsString) -{ - BSTR bstr = NULL; - LPWSTR pwsz = DsoConvertToLPWSTR(pszMbcsString); - if (pwsz) - { - bstr = SysAllocString(pwsz); - DsoMemFree(pwsz); - } - return bstr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToLPOLESTR -// -// Returns Unicode string in COM Task Memory (CoTaskMemAlloc). -// -STDAPI_(LPWSTR) DsoConvertToLPOLESTR(LPCWSTR pwszUnicodeString) -{ - LPWSTR pwsz; - UINT cblen; - - CHECK_NULL_RETURN(pwszUnicodeString, NULL); - cblen = lstrlenW(pwszUnicodeString); - - pwsz = (LPWSTR)CoTaskMemAlloc((cblen * sizeof(WCHAR)) + 2); - if (pwsz) - { - memcpy(pwsz, pwszUnicodeString, (cblen * sizeof(WCHAR))); - pwsz[cblen] = L'\0'; // Make sure it is NULL terminated. - } - - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyString -// -// Duplicates the string into private heap string. -// -STDAPI_(LPWSTR) DsoCopyString(LPCWSTR pwszString) -{ - LPWSTR pwsz; - UINT cblen; - - CHECK_NULL_RETURN(pwszString, NULL); - cblen = lstrlenW(pwszString); - - pwsz = (LPWSTR)DsoMemAlloc((cblen * sizeof(WCHAR)) + 2); - if (pwsz) - { - memcpy(pwsz, pwszString, (cblen * sizeof(WCHAR))); - pwsz[cblen] = L'\0'; // Make sure it is NULL terminated. - } - - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyStringCat -// -STDAPI_(LPWSTR) DsoCopyStringCat(LPCWSTR pwszString1, LPCWSTR pwszString2) -{return DsoCopyStringCatEx(pwszString1, 1, &pwszString2);} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyStringCatEx -// -// Duplicates the string into private heap string and appends one or more -// strings to the end (concatenation). -// -STDAPI_(LPWSTR) DsoCopyStringCatEx(LPCWSTR pwszBaseString, UINT cStrs, LPCWSTR *ppwszStrs) -{ - LPWSTR pwsz; - UINT i, cblenb, cblent; - UINT *pcblens; - - // We assume you have a base string to start with. If not, we return NULL... - if ((pwszBaseString == NULL) || - ((cblenb = lstrlenW(pwszBaseString)) < 1)) - return NULL; - - // If we have nothing to append, just do a plain copy... - if ((cStrs == 0) || (ppwszStrs == NULL)) - return DsoCopyString(pwszBaseString); - - // Determine the size of the final string by finding the lengths - // of each. We create an array of sizes to use later on... - cblent = cblenb; - pcblens = new UINT[cStrs]; - CHECK_NULL_RETURN(pcblens, NULL); - - for (i = 0; i < cStrs; i++) - { - pcblens[i] = lstrlenW(ppwszStrs[i]); - cblent += pcblens[i]; - } - - // If we have data to append, create the new string and append the - // data by copying them in place. We expect UTF-16 Unicode strings - // for this to work, but this should be normal... - if (cblent > cblenb) - { - pwsz = (LPWSTR)DsoMemAlloc(((cblent + 1) * sizeof(WCHAR))); - CHECK_NULL_RETURN(pwsz, NULL); - - memcpy(pwsz, pwszBaseString, (cblenb * sizeof(WCHAR))); - cblent = cblenb; - - for (i = 0; i < cStrs; i++) - { - memcpy((pwsz + cblent), ppwszStrs[i], (pcblens[i] * sizeof(WCHAR))); - cblent += pcblens[i]; - } - } - else pwsz = DsoCopyString(pwszBaseString); - - delete [] pcblens; - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCLSIDtoLPSTR -// -STDAPI_(LPSTR) DsoCLSIDtoLPSTR(REFCLSID clsid) -{ - LPSTR psz = NULL; - LPWSTR pwsz; - if (SUCCEEDED(StringFromCLSID(clsid, &pwsz))) - { - psz = DsoConvertToMBCS(pwsz); - CoTaskMemFree(pwsz); - } - return psz; -} - - -/////////////////////////////////////////////////////////////////////////////////// -// DsoCompareStringsEx -// -// Calls CompareString API using Unicode version (if available on OS). Otherwise, -// we have to thunk strings down to MBCS to compare. This is fairly inefficient for -// Win9x systems that don't handle Unicode, but hey...this is only a sample. -// -STDAPI_(UINT) DsoCompareStringsEx(LPCWSTR pwsz1, INT cch1, LPCWSTR pwsz2, INT cch2) -{ - UINT iret; - LCID lcid = GetThreadLocale(); - UINT cblen1, cblen2; - - // Check that valid parameters are passed and then contain somethimg... - if ((pwsz1 == NULL) || (cch1 == 0) || - ((cblen1 = ((cch1 > 0) ? cch1 : lstrlenW(pwsz1))) == 0)) - return CSTR_LESS_THAN; - - if ((pwsz2 == NULL) || (cch2 == 0) || - ((cblen2 = ((cch2 > 0) ? cch2 : lstrlenW(pwsz2))) == 0)) - return CSTR_GREATER_THAN; - - // If the string is of the same size, then we do quick compare to test for - // equality (this is slightly faster than calling the API, but only if we - // expect the calls to find an equal match)... - if (cblen1 == cblen2) - { - for (iret = 0; iret < cblen1; iret++) - { - if (pwsz1[iret] == pwsz2[iret]) - continue; - - if (((pwsz1[iret] >= 'A') && (pwsz1[iret] <= 'Z')) && - ((pwsz1[iret] + ('a' - 'A')) == pwsz2[iret])) - continue; - - if (((pwsz2[iret] >= 'A') && (pwsz2[iret] <= 'Z')) && - ((pwsz2[iret] + ('a' - 'A')) == pwsz1[iret])) - continue; - - break; // don't continue if we can't quickly match... - } - - // If we made it all the way, then they are equal... - if (iret == cblen1) - return CSTR_EQUAL; - } - - // Now ask the OS to check the strings and give us its read. (We prefer checking - // in Unicode since this is faster and we may have strings that can't be thunked - // down to the local ANSI code page)... - if (v_fUnicodeAPI) - { - iret = CompareStringW(lcid, NORM_IGNORECASE | NORM_IGNOREWIDTH, pwsz1, cblen1, pwsz2, cblen2); - } - else - { - // If we are on Win9x, we don't have much of choice (thunk the call)... - LPSTR psz1 = DsoConvertToMBCS(pwsz1); - LPSTR psz2 = DsoConvertToMBCS(pwsz2); - iret = CompareStringA(lcid, NORM_IGNORECASE, psz1, -1, psz2, -1); - DsoMemFree(psz2); - DsoMemFree(psz1); - } - - return iret; -} - - -//////////////////////////////////////////////////////////////////////// -// URL Helpers -// -//////////////////////////////////////////////////////////////////////// -// General Functions (checks to see if we can recognize type) -// -STDAPI_(BOOL) LooksLikeUNC(LPCWSTR pwsz) -{ - return ((pwsz) && (*pwsz == L'\\') && (*(pwsz + 1) == L'\\') && (*(pwsz + 2) != L'\\')); -} - -STDAPI_(BOOL) LooksLikeLocalFile(LPCWSTR pwsz) -{ - return ((pwsz) && - (((*pwsz > 64) && (*pwsz < 91)) || ((*pwsz > 96) && (*pwsz < 123))) && - (*(pwsz + 1) == L':') && (*(pwsz + 2) == L'\\')); -} - -STDAPI_(BOOL) LooksLikeHTTP(LPCWSTR pwsz) -{ - return ((pwsz) && ((*pwsz == L'H') || (*pwsz == L'h')) && - ((*(pwsz + 1) == L'T') || (*(pwsz + 1) == L't')) && - ((*(pwsz + 2) == L'T') || (*(pwsz + 2) == L't')) && - ((*(pwsz + 3) == L'P') || (*(pwsz + 3) == L'p')) && - ((*(pwsz + 4) == L':') || (((*(pwsz + 4) == L'S') || (*(pwsz + 4) == L's')) && (*(pwsz + 5) == L':')))); -} - -//////////////////////////////////////////////////////////////////////// -// GetTempPathForURLDownload -// -// Constructs a temp path for a downloaded file. Note we scan the URL -// to find the name of the file so we can use its exention for server -// association (in case it is a non-docfile -- like RTF) and also -// create our own subfolder to try and avoid name conflicts in temp -// folder itself. -// -STDAPI_(BOOL) GetTempPathForURLDownload(WCHAR* pwszURL, WCHAR** ppwszLocalFile) -{ - DWORD dw; - LPWSTR pwszTPath = NULL; - LPWSTR pwszTFile = NULL; - CHAR szTmpPath[MAX_PATH]; - - // Do a little parameter checking and find length of the URL... - if (!(pwszURL) || ((dw = lstrlenW(pwszURL)) < 6) || - !(LooksLikeHTTP(pwszURL)) || !(ppwszLocalFile)) - return FALSE; - - *ppwszLocalFile = NULL; - - if (GetTempPath(MAX_PATH, szTmpPath)) - { - DWORD dwtlen = lstrlen(szTmpPath); - if (dwtlen > 0 && szTmpPath[dwtlen-1] != '\\') - lstrcat(szTmpPath, "\\"); - - lstrcat(szTmpPath, "DsoFramer"); - - if (CreateDirectory(szTmpPath, NULL) || GetLastError() == ERROR_ALREADY_EXISTS) - { - lstrcat(szTmpPath, "\\"); - pwszTPath = DsoConvertToLPWSTR(szTmpPath); - } - } - - if (pwszTPath) - { - if (pwszTFile = DsoCopyString(pwszURL)) - { - LPWSTR pwszT = pwszTFile; - while (*(++pwszT)) - if (*pwszT == L'?'){*pwszT = L'\0'; break;} - - while (*(--pwszT)) - if (*pwszT == L'/'){++pwszT; break;} - - *ppwszLocalFile = DsoCopyStringCat(pwszTPath, pwszT); - - DsoMemFree(pwszTFile); - } - - DsoMemFree(pwszTPath); - } - - return (BOOL)(*ppwszLocalFile); -} - -//////////////////////////////////////////////////////////////////////// -// URLDownloadFile -// -// Does a simple URLMON download of file (no save back to server allowed), -// and no dependent files will be downloaded (just one temp file). -// -STDAPI URLDownloadFile(LPUNKNOWN punk, WCHAR* pwszURL, WCHAR* pwszLocalFile) -{ - typedef HRESULT (WINAPI *PFN_URLDTFW)(LPUNKNOWN, LPCWSTR, LPCWSTR, DWORD, LPUNKNOWN); - static PFN_URLDTFW pfnURLDownloadToFileW = NULL; - HMODULE hUrlmon; - - if (pfnURLDownloadToFileW == NULL) - { - if (hUrlmon = LoadLibrary("URLMON.DLL")) - pfnURLDownloadToFileW = (PFN_URLDTFW)GetProcAddress(hUrlmon, "URLDownloadToFileW"); - } - - if (pfnURLDownloadToFileW == NULL) - return E_UNEXPECTED; - - return pfnURLDownloadToFileW(punk, pwszURL, pwszLocalFile, 0, NULL); -} - - -//////////////////////////////////////////////////////////////////////// -// OLE Conversion Functions -// -#define HIMETRIC_PER_INCH 2540 // number HIMETRIC units per inch -#define PTS_PER_INCH 72 // number points (font size) per inch - -#define MAP_PIX_TO_LOGHIM(x,ppli) MulDiv(HIMETRIC_PER_INCH, (x), (ppli)) -#define MAP_LOGHIM_TO_PIX(x,ppli) MulDiv((ppli), (x), HIMETRIC_PER_INCH) - -//////////////////////////////////////////////////////////////////////// -// DsoHimetricToPixels -// -STDAPI_(void) DsoHimetricToPixels(LONG* px, LONG* py) -{ - HDC hdc = GetDC(NULL); - if (px) *px = MAP_LOGHIM_TO_PIX(*px, GetDeviceCaps(hdc, LOGPIXELSX)); - if (py) *py = MAP_LOGHIM_TO_PIX(*py, GetDeviceCaps(hdc, LOGPIXELSY)); - ReleaseDC(NULL, hdc); -} - -//////////////////////////////////////////////////////////////////////// -// DsoPixelsToHimetric -// -STDAPI_(void) DsoPixelsToHimetric(LONG* px, LONG* py) -{ - HDC hdc = GetDC(NULL); - if (px) *px = MAP_PIX_TO_LOGHIM(*px, GetDeviceCaps(hdc, LOGPIXELSX)); - if (py) *py = MAP_PIX_TO_LOGHIM(*py, GetDeviceCaps(hdc, LOGPIXELSY)); - ReleaseDC(NULL, hdc); -} - -//////////////////////////////////////////////////////////////////////// -// GDI Helper Functions -// -STDAPI_(HBITMAP) DsoGetBitmapFromWindow(HWND hwnd) -{ - HBITMAP hbmpold, hbmp = NULL; - HDC hdcWin, hdcMem; - RECT rc; - INT x, y; - - if (!GetWindowRect(hwnd, &rc)) - return NULL; - - x = (rc.right - rc.left); if (x < 0) x = 1; - y = (rc.bottom - rc.top); if (y < 0) y = 1; - - hdcWin = GetDC(hwnd); - hdcMem = CreateCompatibleDC(hdcWin); - - hbmp = CreateCompatibleBitmap(hdcWin, x, y); - hbmpold = (HBITMAP)SelectObject(hdcMem, hbmp); - - BitBlt(hdcMem, 0,0, x, y, hdcWin, 0,0, SRCCOPY); - - SelectObject(hdcMem, hbmpold); - DeleteDC(hdcMem); - ReleaseDC(hwnd, hdcWin); - - return hbmp; -} - -//////////////////////////////////////////////////////////////////////// -// Windows Helper Functions -// -STDAPI_(BOOL) IsWindowChild(HWND hwndParent, HWND hwndChild) -{ - HWND hwnd; - - if ((hwndChild == NULL) || !IsWindow(hwndChild)) - return FALSE; - - if (hwndParent == NULL) - return TRUE; - - if (!IsWindow(hwndParent)) - return FALSE; - - hwnd = hwndChild; - - while (hwnd = GetParent(hwnd)) - if (hwnd == hwndParent) - return TRUE; - - return FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// DsoGetTypeInfoEx -// -// Gets an ITypeInfo from the LIBID specified. Optionally can load and -// register the typelib from a module resource (if specified). Used to -// load our typelib on demand. -// -STDAPI DsoGetTypeInfoEx(REFGUID rlibid, LCID lcid, WORD wVerMaj, WORD wVerMin, HMODULE hResource, REFGUID rguid, ITypeInfo** ppti) -{ - HRESULT hr; - ITypeLib* ptlib; - - CHECK_NULL_RETURN(ppti, E_POINTER); - *ppti = NULL; - - // Try to pull information from the registry... - hr = LoadRegTypeLib(rlibid, wVerMaj, wVerMin, lcid, &ptlib); - - // If that failed, and we have a resource module to load from, - // try loading it from the module... - if (FAILED(hr) && (hResource)) - { - LPWSTR pwszPath; - if (FGetModuleFileName(hResource, &pwszPath)) - { - // Now, load the type library from module resource file... - hr = LoadTypeLib(pwszPath, &ptlib); - - // Register library to make things easier next time... - if (SUCCEEDED(hr)) - RegisterTypeLib(ptlib, pwszPath, NULL); - - DsoMemFree(pwszPath); - } - } - - // We have the typelib. Now get the requested typeinfo... - if (SUCCEEDED(hr)) - hr = ptlib->GetTypeInfoOfGuid(rguid, ppti); - - // Release the type library interface. - SAFE_RELEASE_INTERFACE(ptlib); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoDispatchInvoke -// -// Wrapper for IDispatch::Invoke calls to event sinks, or late bound call -// to embedded object to get ambient property. -// -STDAPI DsoDispatchInvoke(LPDISPATCH pdisp, LPOLESTR pwszname, DISPID dspid, WORD wflags, DWORD cargs, VARIANT* rgargs, VARIANT* pvtret) -{ - HRESULT hr = S_FALSE; - DISPID dspidPut = DISPID_PROPERTYPUT; - DISPPARAMS dspparm = {NULL, NULL, 0, 0}; - - CHECK_NULL_RETURN(pdisp, E_POINTER); - - dspparm.rgvarg = rgargs; - dspparm.cArgs = cargs; - - if ((wflags & DISPATCH_PROPERTYPUT) || (wflags & DISPATCH_PROPERTYPUTREF)) - { - dspparm.rgdispidNamedArgs = &dspidPut; - dspparm.cNamedArgs = 1; - } - - SEH_TRY - - if (pwszname) - hr = pdisp->GetIDsOfNames(IID_NULL, &pwszname, 1, LOCALE_USER_DEFAULT, &dspid); - - if (SUCCEEDED(hr)) - hr = pdisp->Invoke(dspid, IID_NULL, LOCALE_USER_DEFAULT, (WORD)(DISPATCH_METHOD | wflags), &dspparm, pvtret, NULL, NULL); - - SEH_EXCEPT(hr) - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoReportError -- Report Error for both ComThreadError and DispError. -// -STDAPI DsoReportError(HRESULT hr, LPWSTR pwszCustomMessage, EXCEPINFO* peiDispEx) -{ - BSTR bstrSource, bstrDescription; - ICreateErrorInfo* pcerrinfo; - IErrorInfo* perrinfo; - CHAR szError[MAX_PATH]; - UINT nID = 0; - - // Don't need to do anything unless this is an error. - if ((hr == S_OK) || SUCCEEDED(hr)) return hr; - - // Is this one of our custom errors (if so we will pull description from resource)... - if ((hr > DSO_E_ERR_BASE) && (hr < DSO_E_ERR_MAX)) - nID = (hr & 0xFF); - - // Set the source name... - bstrSource = SysAllocString(L"DsoFramerControl"); - - // Set the error description... - if (pwszCustomMessage) - { - bstrDescription = SysAllocString(pwszCustomMessage); - } - else if (((nID) && LoadString(v_hModule, nID, szError, sizeof(szError))) || - (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, hr, 0, szError, sizeof(szError), NULL))) - { - bstrDescription = DsoConvertToBSTR(szError); - } - else bstrDescription = NULL; - - // Set ErrorInfo so that vtable clients can get rich error information... - if (SUCCEEDED(CreateErrorInfo(&pcerrinfo))) - { - pcerrinfo->SetSource(bstrSource); - pcerrinfo->SetDescription(bstrDescription); - - if (SUCCEEDED(pcerrinfo->QueryInterface(IID_IErrorInfo, (void**) &perrinfo))) - { - SetErrorInfo(0, perrinfo); - perrinfo->Release(); - } - pcerrinfo->Release(); - } - - // Fill-in DispException Structure for late-boud clients... - if (peiDispEx) - { - peiDispEx->scode = hr; - peiDispEx->bstrSource = SysAllocString(bstrSource); - peiDispEx->bstrDescription = SysAllocString(bstrDescription); - } - - // Free temp strings... - SAFE_FREEBSTR(bstrDescription); - SAFE_FREEBSTR(bstrSource); - - // We always return error passed (so caller can chain this in return call). - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// Variant Type Helpers (Fast Access to Variant Data) -// -VARIANT* __fastcall DsoPVarFromPVarRef(VARIANT* px) -{return ((px->vt == (VT_VARIANT|VT_BYREF)) ? (px->pvarVal) : px);} - -BOOL __fastcall DsoIsVarParamMissing(VARIANT* px) -{return ((px->vt == VT_EMPTY) || ((px->vt & VT_ERROR) == VT_ERROR));} - -LPWSTR __fastcall DsoPVarWStrFromPVar(VARIANT* px) -{return ((px->vt == VT_BSTR) ? px->bstrVal : ((px->vt == (VT_BSTR|VT_BYREF)) ? *(px->pbstrVal) : NULL));} - -SAFEARRAY* __fastcall DsoPVarArrayFromPVar(VARIANT* px) -{return (((px->vt & (VT_BYREF|VT_ARRAY)) == (VT_BYREF|VT_ARRAY)) ? *(px->pparray) : (((px->vt & VT_ARRAY) == VT_ARRAY) ? px->parray : NULL));} - -IUnknown* __fastcall DsoPVarUnkFromPVar(VARIANT* px) -{return (((px->vt == VT_DISPATCH) || (px->vt == VT_UNKNOWN)) ? px->punkVal : (((px->vt == (VT_DISPATCH|VT_BYREF)) || (px->vt == (VT_UNKNOWN|VT_BYREF))) ? *(px->ppunkVal) : NULL));} - -SHORT __fastcall DsoPVarShortFromPVar(VARIANT* px, SHORT fdef) -{return (((px->vt & 0xFF) != VT_I2) ? fdef : ((px->vt & VT_BYREF) == VT_BYREF) ? *(px->piVal) : px->iVal);} - -LONG __fastcall DsoPVarLongFromPVar(VARIANT* px, LONG fdef) -{return (((px->vt & 0xFF) != VT_I4) ? (LONG)DsoPVarShortFromPVar(px, (SHORT)fdef) : ((px->vt & VT_BYREF) == VT_BYREF) ? *(px->plVal) : px->lVal);} - -BOOL __fastcall DsoPVarBoolFromPVar(VARIANT* px, BOOL fdef) -{return (((px->vt & 0xFF) != VT_BOOL) ? (BOOL)DsoPVarLongFromPVar(px, (LONG)fdef) : ((px->vt & VT_BYREF) == VT_BYREF) ? (BOOL)(*(px->pboolVal)) : (BOOL)(px->boolVal));} - - -//////////////////////////////////////////////////////////////////////// -// Win32 Unicode API wrappers -// -// This project is not compiled to Unicode in order for it to run on Win9x -// machines. However, in order to try to keep the code language/locale neutral -// we use these wrappers to call the Unicode API functions when supported, -// and thunk down strings to local code page if must run MBCS API. -// - -//////////////////////////////////////////////////////////////////////// -// FFileExists -// -// Returns TRUE if the given file exists. Does not handle URLs. -// -STDAPI_(BOOL) FFileExists(WCHAR* wzPath) -{ - DWORD dw = 0xFFFFFFFF; - if (v_fUnicodeAPI) - { - dw = GetFileAttributesW(wzPath); - } - else - { - LPSTR psz = DsoConvertToMBCS(wzPath); - if (psz) dw = GetFileAttributesA(psz); - DsoMemFree(psz); - } - return (dw != 0xFFFFFFFF); -} - -//////////////////////////////////////////////////////////////////////// -// FOpenLocalFile -// -// Returns TRUE if the file can be opened with the access required. -// Use the handle for ReadFile/WriteFile operations as normal. -// -STDAPI_(BOOL) FOpenLocalFile(WCHAR* wzFilePath, DWORD dwAccess, DWORD dwShareMode, DWORD dwCreate, HANDLE* phFile) -{ - CHECK_NULL_RETURN(phFile, FALSE); - *phFile = INVALID_HANDLE_VALUE; - if (v_fUnicodeAPI) - { - *phFile = CreateFileW(wzFilePath, dwAccess, dwShareMode, NULL, dwCreate, FILE_ATTRIBUTE_NORMAL, NULL); - } - else - { - LPSTR psz = DsoConvertToMBCS(wzFilePath); - if (psz) *phFile = CreateFileA(psz, dwAccess, dwShareMode, NULL, dwCreate, FILE_ATTRIBUTE_NORMAL, NULL); - DsoMemFree(psz); - } - return (*phFile != INVALID_HANDLE_VALUE); -} - - -//////////////////////////////////////////////////////////////////////// -// FPerformShellOp -// -// This function started as a wrapper for SHFileOperation, but that -// shell function had an enormous performance hit, especially on Win9x -// and NT4. To speed things up we removed the shell32 call and are -// using the kernel32 APIs instead. The only drawback is we can't -// handle multiple files, but that is not critical for this project. -// -STDAPI_(BOOL) FPerformShellOp(DWORD dwOp, WCHAR* wzFrom, WCHAR* wzTo) -{ - BOOL f = FALSE; - if (v_fUnicodeAPI) - { - switch (dwOp) - { - case FO_COPY: f = CopyFileW(wzFrom, wzTo, FALSE); break; - case FO_MOVE: - case FO_RENAME: f = MoveFileW(wzFrom, wzTo); break; - case FO_DELETE: f = DeleteFileW(wzFrom); break; - } - } - else - { - LPSTR pszFrom = DsoConvertToMBCS(wzFrom); - LPSTR pszTo = DsoConvertToMBCS(wzTo); - - switch (dwOp) - { - case FO_COPY: f = CopyFileA(pszFrom, pszTo, FALSE); break; - case FO_MOVE: - case FO_RENAME: f = MoveFileA(pszFrom, pszTo); break; - case FO_DELETE: f = DeleteFileA(pszFrom); break; - } - - if (pszFrom) DsoMemFree(pszFrom); - if (pszTo) DsoMemFree(pszTo); - } - - return f; -} - -//////////////////////////////////////////////////////////////////////// -// FGetModuleFileName -// -// Handles Unicode/ANSI paths from a module handle. -// -STDAPI_(BOOL) FGetModuleFileName(HMODULE hModule, WCHAR** wzFileName) -{ - LPWSTR pwsz; - DWORD dw; - - CHECK_NULL_RETURN(wzFileName, FALSE); - *wzFileName = NULL; - - pwsz = (LPWSTR)DsoMemAlloc((MAX_PATH * sizeof(WCHAR))); - CHECK_NULL_RETURN(pwsz, FALSE); - - if (v_fUnicodeAPI) - { - dw = GetModuleFileNameW(hModule, pwsz, MAX_PATH); - if (dw == 0) - { - DsoMemFree(pwsz); - return FALSE; - } - } - else - { - dw = GetModuleFileNameA(hModule, (LPSTR)pwsz, MAX_PATH); - if (dw == 0) - { - DsoMemFree(pwsz); - return FALSE; - } - - LPWSTR pwsz2 = DsoConvertToLPWSTR((LPSTR)pwsz); - if (pwsz2 == NULL) - { - DsoMemFree(pwsz); - return FALSE; - } - - DsoMemFree(pwsz); - pwsz = pwsz2; - } - - *wzFileName = pwsz; - return TRUE; -} - - -//////////////////////////////////////////////////////////////////////// -// FIsIECacheFile -// -// Determines if file came from IE Cache (treat as read-only). -// -STDAPI_(BOOL) FIsIECacheFile(LPWSTR pwszFile) -{ - BOOL fIsCacheFile = FALSE; - LPWSTR pwszTmpCache = NULL; - BYTE rgbuffer[MAX_PATH * sizeof(WCHAR)]; - HKEY hk; - - if (RegOpenKey(HKEY_CURRENT_USER, - "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", &hk) == ERROR_SUCCESS) - { - DWORD dwT, dwS; dwT = MAX_PATH; - memset(rgbuffer, 0, (MAX_PATH * sizeof(WCHAR))); - - if (v_fUnicodeAPI) - { - if ((RegQueryValueExA(hk, "Cache", 0, &dwT, rgbuffer, &dwS) == ERROR_SUCCESS) && - (dwT == REG_SZ) && (dwS > 1)) - pwszTmpCache = DsoConvertToLPWSTR((LPSTR)rgbuffer); - } - else - { - if ((RegQueryValueExW(hk, L"Cache", 0, &dwT, rgbuffer, &dwS) == ERROR_SUCCESS) && - (dwT == REG_SZ) && (dwS > 1)) - pwszTmpCache = DsoCopyString((LPWSTR)rgbuffer); - } - - RegCloseKey(hk); - - if (pwszTmpCache) - { - dwS = lstrlenW(pwszTmpCache); - dwT = lstrlenW(pwszFile); - fIsCacheFile = ((dwS < dwT) && - (DsoCompareStringsEx(pwszTmpCache, dwS, pwszFile, dwS) == CSTR_EQUAL)); - DsoMemFree(pwszTmpCache); - } - } - - return fIsCacheFile; -} - -//////////////////////////////////////////////////////////////////////// -// FDrawText -// -// This is used by the control for drawing the caption in the titlebar. -// Since a custom caption could contain Unicode characters only printable -// on Unicode OS, we should try to use the Unicode version when available. -// -STDAPI_(BOOL) FDrawText(HDC hdc, WCHAR* pwsz, LPRECT prc, UINT fmt) -{ - BOOL f; - if (v_fUnicodeAPI) - { - f = (BOOL)DrawTextW(hdc, pwsz, -1, prc, fmt); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwsz); - f = (BOOL)DrawTextA(hdc, psz, -1, prc, fmt); - DsoMemFree(psz); - } - return f; -} - - -//////////////////////////////////////////////////////////////////////// -// FSetRegKeyValue -// -// We use this for registration when dealing with the file path, since -// that path may have Unicode characters on some systems. Win9x boxes -// will have to be converted to ANSI. -// -STDAPI_(BOOL) FSetRegKeyValue(HKEY hk, WCHAR* pwsz) -{ - LONG lret; - if (v_fUnicodeAPI) - { - lret = RegSetValueExW(hk, NULL, 0, REG_SZ, (BYTE*)pwsz, (lstrlenW(pwsz) * sizeof(WCHAR))); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwsz); - lret = RegSetValueExA(hk, NULL, 0, REG_SZ, (BYTE*)psz, lstrlen(psz)); - DsoMemFree(psz); - } - return (lret == ERROR_SUCCESS); -} - -//////////////////////////////////////////////////////////////////////// -// FOpenPrinter -// -// Open the specified printer by name. -// -STDAPI_(BOOL) FOpenPrinter(LPCWSTR pwszPrinter, LPHANDLE phandle) -{ - BOOL fRet = FALSE; - DWORD dwLastError = 0; - if (v_fUnicodeAPI) - { - PRINTER_DEFAULTSW prtdef; - memset(&prtdef, 0, sizeof(PRINTER_DEFAULTSW)); - prtdef.DesiredAccess = PRINTER_ACCESS_USE; - fRet = OpenPrinterW((LPWSTR)pwszPrinter, phandle, &prtdef); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwszPrinter); - fRet = OpenPrinterA(psz, phandle, NULL); - if (!fRet) dwLastError = GetLastError(); - DsoMemFree(psz); - } - if (dwLastError) SetLastError(dwLastError); - return fRet; -} - -//////////////////////////////////////////////////////////////////////// -// FGetPrinterSettings -// -// Returns the default device, port name, and DEVMODE structure for the -// printer passed. Handles Unicode translation of DEVMODE if on Win9x. -// -STDAPI_(BOOL) FGetPrinterSettings(HANDLE hprinter, LPWSTR *ppwszProcessor, LPWSTR *ppwszDevice, LPWSTR *ppwszOutput, LPDEVMODEW *ppdvmode, DWORD *pcbSize) -{ - BOOL fRet = FALSE; - DWORD dwLastError = 0; - DWORD cbNeed, cbAlloc = 0; - - if ((ppwszProcessor == NULL) || (ppwszDevice == NULL) || (ppwszOutput == NULL) || - (ppdvmode == NULL) || (pcbSize == NULL)) - return FALSE; - - *ppwszProcessor = NULL; *ppwszDevice = NULL; *ppwszOutput = NULL; - *ppdvmode = NULL; *pcbSize = 0; - - if (v_fUnicodeAPI) // Use Unicode API if possible (much easier)... - { - GetPrinterW(hprinter, 2, NULL, 0, &cbAlloc); - PRINTER_INFO_2W *pinfo = (PRINTER_INFO_2W*)DsoMemAlloc(++cbAlloc); - if (pinfo) - { - fRet = GetPrinterW(hprinter, 2, (BYTE*)pinfo, cbAlloc, &cbNeed); - if (fRet) - { - *ppwszProcessor = DsoConvertToLPWSTR("winspool"); - *ppwszDevice = DsoCopyString(pinfo->pDriverName); - *ppwszOutput = DsoCopyString(pinfo->pPortName); - - if (pinfo->pDevMode) // If we have the devmode, just need to copy it... - { - DWORD cbData = (pinfo->pDevMode->dmSize) + (pinfo->pDevMode->dmDriverExtra); - *ppdvmode = (DEVMODEW*)DsoMemAlloc(cbData); - if (*ppdvmode) - { - memcpy(*ppdvmode, pinfo->pDevMode, cbData); - *pcbSize = cbData; - } - } - } - else dwLastError = GetLastError(); - - DsoMemFree(pinfo); - } - else dwLastError = ERROR_NOT_ENOUGH_MEMORY; - } - else - { - GetPrinterA(hprinter, 2, NULL, 0, &cbAlloc); - PRINTER_INFO_2A *pinfo = (PRINTER_INFO_2A*)DsoMemAlloc(++cbAlloc); - if (pinfo) - { - fRet = GetPrinterA(hprinter, 2, (BYTE*)pinfo, cbAlloc, &cbNeed); - if (fRet) - { - *ppwszProcessor = DsoConvertToLPWSTR("winspool"); - *ppwszDevice = DsoConvertToLPWSTR(pinfo->pDriverName); - *ppwszOutput = DsoConvertToLPWSTR(pinfo->pPortName); - - if (pinfo->pDevMode) // For Win9x API, we have to convert the DEVMODEA - { // into DEVMODEW so we have Unicode names for TARGETDEVICE... - DWORD cbData = sizeof(DEVMODEW) + - ((pinfo->pDevMode->dmSize > sizeof(DEVMODEA)) ? (pinfo->pDevMode->dmSize - sizeof(DEVMODEA)) : 0) + - pinfo->pDevMode->dmDriverExtra; - - *ppdvmode = (DEVMODEW*)DsoMemAlloc(cbData); - if (*ppdvmode) - { - DsoConvertToUnicodeEx( - (LPSTR)(pinfo->pDevMode->dmDeviceName), CCHDEVICENAME, - (LPWSTR)((*ppdvmode)->dmDeviceName), CCHDEVICENAME, 0); - - // The rest of the copy depends on the default size of the DEVMODE. - // Just check the size and convert the form name if it exists... - if (pinfo->pDevMode->dmSize <= FIELD_OFFSET(DEVMODEA, dmFormName)) - { - memcpy(&((*ppdvmode)->dmSpecVersion), - &(pinfo->pDevMode->dmSpecVersion), - pinfo->pDevMode->dmSize - CCHDEVICENAME); - } - else - { - memcpy(&((*ppdvmode)->dmSpecVersion), - &(pinfo->pDevMode->dmSpecVersion), - FIELD_OFFSET(DEVMODEA, dmFormName) - - FIELD_OFFSET(DEVMODEA, dmSpecVersion)); - - DsoConvertToUnicodeEx( - (LPSTR)(pinfo->pDevMode->dmFormName), CCHFORMNAME, - (LPWSTR)((*ppdvmode)->dmFormName), CCHFORMNAME, 0); - - if (pinfo->pDevMode->dmSize > FIELD_OFFSET(DEVMODEA, dmLogPixels)) - memcpy(&((*ppdvmode)->dmLogPixels), - &(pinfo->pDevMode->dmLogPixels), - pinfo->pDevMode->dmSize - FIELD_OFFSET(DEVMODEA, dmLogPixels)); - } - - (*ppdvmode)->dmSize = (WORD)((pinfo->pDevMode->dmSize > sizeof(DEVMODEA)) ? - (sizeof(DEVMODEW) + (pinfo->pDevMode->dmSize - sizeof(DEVMODEA))) : - sizeof(DEVMODEW)); - - memcpy((((BYTE*)(*ppdvmode)) + ((*ppdvmode)->dmSize)), - (((BYTE*)(pinfo->pDevMode)) + (pinfo->pDevMode->dmSize)), - pinfo->pDevMode->dmDriverExtra); - - *pcbSize = cbData; - } - } - } - else dwLastError = GetLastError(); - - DsoMemFree(pinfo); - } - else dwLastError = ERROR_NOT_ENOUGH_MEMORY; - } - if (dwLastError) SetLastError(dwLastError); - return fRet; -} - - -/////////////////////////////////////////////////////////////////////////////////// -// DsoGetFileFromUser -// -// Displays the Open/Save dialog using Unicode version if available. Returns the -// path as a unicode BSTR regardless of OS. -// -STDAPI DsoGetFileFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - LPCWSTR pwzFilter, DWORD dwFiltIdx, LPCWSTR pwszDefExt, LPCWSTR pwszCurrentItem, BOOL fShowSave, - BSTR *pbstrFile, BOOL *pfReadOnly) -{ - BYTE buffer[MAX_PATH * sizeof(WCHAR)]; - BOOL fSuccess; - DWORD dw; - - // Make sure they pass a *bstr... - CHECK_NULL_RETURN(pbstrFile, E_POINTER); - *pbstrFile = NULL; - - buffer[0] = 0; buffer[1] = 0; - - // See if we have Unicode function to call. If so, we use OPENFILENAMEW and - // get the file path in Unicode, returned as BSTR... - if (v_fUnicodeAPI) - { - OPENFILENAMEW ofnw; - memset(&ofnw, 0, sizeof(OPENFILENAMEW)); - ofnw.lStructSize = sizeof(OPENFILENAMEW); - ofnw.hwndOwner = hwndOwner; - ofnw.lpstrFilter = pwzFilter; - ofnw.nFilterIndex = dwFiltIdx; - ofnw.lpstrDefExt = pwszDefExt; - ofnw.lpstrTitle = pwzTitle; - ofnw.lpstrFile = (LPWSTR)&buffer[0]; - ofnw.nMaxFile = MAX_PATH; - ofnw.Flags = dwFlags; - - if (pwszCurrentItem) - { - dw = lstrlenW(pwszCurrentItem); - if ((dw) && (dw < MAX_PATH)) - { - memcpy(ofnw.lpstrFile, pwszCurrentItem, dw * sizeof(WCHAR)); - ofnw.lpstrFile[dw] = L'\0'; - } - } - - if (fShowSave) - fSuccess = GetSaveFileNameW(&ofnw); - else - fSuccess = GetOpenFileNameW(&ofnw); - - if (fSuccess) - { - *pbstrFile = SysAllocString((LPWSTR)&buffer[0]); - if (pfReadOnly) *pfReadOnly = (ofnw.Flags & OFN_READONLY); - } - } - else - { // If not, then we use OPENFILENAMEA and thunk down our params to - // the MBCS of the system, and then thunk back the Unicode for the return... - OPENFILENAMEA ofn; - memset(&ofn, 0, sizeof(OPENFILENAMEA)); - ofn.lStructSize = sizeof(OPENFILENAMEA); - ofn.hwndOwner = hwndOwner; - ofn.lpstrFilter = DsoConvertToMBCS(pwzFilter); - ofn.nFilterIndex = dwFiltIdx; - ofn.lpstrDefExt = DsoConvertToMBCS(pwszDefExt); - ofn.lpstrTitle = DsoConvertToMBCS(pwzTitle); - ofn.lpstrFile = (LPSTR)&buffer[0]; - ofn.nMaxFile = MAX_PATH; - ofn.Flags = dwFlags; - - if (pwszCurrentItem) - DsoConvertToMBCSEx(pwszCurrentItem, lstrlenW(pwszCurrentItem), (LPSTR)&buffer[0], MAX_PATH, GetACP()); - - if (fShowSave) - fSuccess = GetSaveFileNameA(&ofn); - else - fSuccess = GetOpenFileNameA(&ofn); - - - if (fSuccess) - { - *pbstrFile = DsoConvertToBSTR((LPCSTR)&buffer[0]); - if (pfReadOnly) *pfReadOnly = (ofn.Flags & OFN_READONLY); - } - - DsoMemFree((void*)(ofn.lpstrDefExt)); - DsoMemFree((void*)(ofn.lpstrFilter)); - DsoMemFree((void*)(ofn.lpstrTitle)); - } - - // If we got a string, then success. All other errors (even user cancel) should - // be treated as a general failure (feel free to change this for more full function). - return ((*pbstrFile == NULL) ? E_FAIL : S_OK); -} - -/////////////////////////////////////////////////////////////////////////////////// -// DsoGetOleInsertObjectFromUser -// -// Displays the OLE InsertObject dialog using Unicode version if available. -// -STDAPI DsoGetOleInsertObjectFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - BOOL fDocObjectOnly, BOOL fAllowControls, BSTR *pbstrResult, UINT *ptype) -{ - BYTE buffer[MAX_PATH * sizeof(WCHAR)]; - LPCLSID lpNewExcludeList = NULL; - int nNewExcludeCount = 0; - int nNewExcludeLen = 0; - - // Make sure they pass a *bstr... - CHECK_NULL_RETURN(pbstrResult, E_POINTER); - *pbstrResult = NULL; - - // To limit list to just those marked as DocObject servers, you have to enum - // the registry and create an exclude list for OLE dialog. Exclude all except - // those that are marked DocObject under their ProgID. - if (fDocObjectOnly) - { - HKEY hkCLSID; - HKEY hkItem; - HKEY hkDocObject; - DWORD dwIndex = 0; - CHAR szName[MAX_PATH+1]; - - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, "CLSID", 0, KEY_READ|KEY_ENUMERATE_SUB_KEYS, &hkCLSID) == ERROR_SUCCESS) - { - while (RegEnumKey(hkCLSID, dwIndex++, szName, MAX_PATH) == ERROR_SUCCESS) - { - if (RegOpenKeyEx(hkCLSID, szName, 0, KEY_READ, &hkItem) == ERROR_SUCCESS) - { - if ((RegOpenKeyEx(hkItem, "DocObject", 0, KEY_READ, &hkDocObject) != ERROR_SUCCESS)) - { - CLSID clsid; - LPWSTR pwszClsid = DsoConvertToLPWSTR(szName); - if ((pwszClsid) && SUCCEEDED(CLSIDFromString(pwszClsid, &clsid))) - { - if (lpNewExcludeList == NULL) - { - nNewExcludeCount = 0; - nNewExcludeLen = 16; - lpNewExcludeList = new CLSID[nNewExcludeLen]; - } - if (nNewExcludeCount == nNewExcludeLen) - { - LPCLSID lpOldList = lpNewExcludeList; - nNewExcludeLen <<= 2; - lpNewExcludeList = new CLSID[nNewExcludeLen]; - memcpy(lpNewExcludeList, lpOldList, sizeof(CLSID) * nNewExcludeCount); - delete [] lpOldList; - } - - lpNewExcludeList[nNewExcludeCount] = clsid; - nNewExcludeCount++; - } - SAFE_FREESTRING(pwszClsid); - RegCloseKey(hkDocObject); - } - - RegCloseKey(hkItem); - } - } - RegCloseKey(hkCLSID); - } - } - buffer[0] = 0; buffer[1] = 0; - - // See if we have Unicode function to call... - if (v_fUnicodeAPI) - { - OLEUIINSERTOBJECTW oidlg = {0}; - oidlg.cbStruct = sizeof(OLEUIINSERTOBJECTW); - oidlg.dwFlags = dwFlags; - oidlg.hWndOwner = hwndOwner; - oidlg.lpszCaption = pwzTitle; - oidlg.lpszFile = (LPWSTR)buffer; - oidlg.cchFile = MAX_PATH; - oidlg.lpClsidExclude = lpNewExcludeList; - oidlg.cClsidExclude = nNewExcludeCount; - - if (OleUIInsertObjectW(&oidlg) == OLEUI_OK) - { - if ((oidlg.dwFlags & IOF_SELECTCREATENEW) && (oidlg.clsid != GUID_NULL)) - { - LPOLESTR posz; - if (SUCCEEDED(ProgIDFromCLSID(oidlg.clsid, &posz))) - { - *pbstrResult = SysAllocString(posz); - CoTaskMemFree(posz); - } - if (ptype) *ptype = IOF_SELECTCREATENEW; - } - else if ((oidlg.dwFlags & IOF_SELECTCREATEFROMFILE) && (buffer[0] != 0)) - { - *pbstrResult = SysAllocString((LPWSTR)buffer); - if (ptype) *ptype = IOF_SELECTCREATEFROMFILE; - } - } - } - else - { - OLEUIINSERTOBJECTA oidlg = {0}; - oidlg.cbStruct = sizeof(OLEUIINSERTOBJECTA); - oidlg.dwFlags = dwFlags; - oidlg.hWndOwner = hwndOwner; - oidlg.lpszCaption = DsoConvertToMBCS(pwzTitle); - oidlg.lpszFile = (LPSTR)buffer; - oidlg.cchFile = MAX_PATH; - oidlg.lpClsidExclude = lpNewExcludeList; - oidlg.cClsidExclude = nNewExcludeCount; - - if (OleUIInsertObjectA(&oidlg) == OLEUI_OK) - { - if ((oidlg.dwFlags & IOF_SELECTCREATENEW) && (oidlg.clsid != GUID_NULL)) - { - LPOLESTR posz; - if (SUCCEEDED(ProgIDFromCLSID(oidlg.clsid, &posz))) - { - *pbstrResult = SysAllocString(posz); - CoTaskMemFree(posz); - } - if (ptype) *ptype = IOF_SELECTCREATENEW; - } - else if ((oidlg.dwFlags & IOF_SELECTCREATEFROMFILE) && (buffer[0] != 0)) - { - *pbstrResult = DsoConvertToBSTR((LPSTR)buffer); - if (ptype) *ptype = IOF_SELECTCREATEFROMFILE; - } - } - - DsoMemFree((void*)(oidlg.lpszCaption)); - } - - if (lpNewExcludeList) - delete [] lpNewExcludeList; - - // If we got a string, then success. All other errors (even user cancel) should - // be treated as a general failure (feel free to change this for more full function). - return ((*pbstrResult == NULL) ? E_FAIL : S_OK); -} diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/utilities.h b/PROMS/DSOFramer/DSOFramer/Source2005/utilities.h deleted file mode 100644 index b0da4dec..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/utilities.h +++ /dev/null @@ -1,242 +0,0 @@ -/*************************************************************************** - * UTILITIES.H - * - * DSOFramer: Common Utilities and Macros (Shared) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_UTILITIES_H -#define DS_UTILITIES_H - -#include -#include - -//////////////////////////////////////////////////////////////////////// -// Fixed Win32 Errors as HRESULTs -// -#define E_WIN32_BUFFERTOOSMALL 0x8007007A //HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) -#define E_WIN32_ACCESSVIOLATION 0x800701E7 //HRESULT_FROM_WIN32(ERROR_INVALID_ADDRESS) -#define E_WIN32_LASTERROR (0x80070000 | GetLastError()) // Assured Error with last Win32 code -#define E_VBA_NOREMOTESERVER 0x800A01CE - -//////////////////////////////////////////////////////////////////////// -// Heap Allocation -// -STDAPI_(LPVOID) DsoMemAlloc(DWORD cbSize); -STDAPI_(void) DsoMemFree(LPVOID ptr); - -// Override new/delete to use our task allocator -// (removing CRT dependency will improve code performance and size)... -void * _cdecl operator new(size_t size); -void _cdecl operator delete(void *ptr); - -//////////////////////////////////////////////////////////////////////// -// String Manipulation Functions -// -STDAPI DsoConvertToUnicodeEx(LPCSTR pszMbcsString, DWORD cbMbcsLen, LPWSTR pwszUnicode, DWORD cbUniLen, UINT uiCodePage); -STDAPI DsoConvertToMBCSEx(LPCWSTR pwszUnicodeString, DWORD cbUniLen, LPSTR pwszMbcsString, DWORD cbMbcsLen, UINT uiCodePage); - -STDAPI_(LPWSTR) DsoConvertToLPWSTR(LPCSTR pszMbcsString); -STDAPI_(BSTR) DsoConvertToBSTR(LPCSTR pszMbcsString); -STDAPI_(LPWSTR) DsoConvertToLPOLESTR(LPCWSTR pwszUnicodeString); -STDAPI_(LPSTR) DsoConvertToMBCS(LPCWSTR pwszUnicodeString); -STDAPI_(UINT) DsoCompareStringsEx(LPCWSTR pwsz1, INT cch1, LPCWSTR pwsz2, INT cch2); -STDAPI_(LPWSTR) DsoCopyString(LPCWSTR pwszString); -STDAPI_(LPWSTR) DsoCopyStringCat(LPCWSTR pwszString1, LPCWSTR pwszString2); -STDAPI_(LPWSTR) DsoCopyStringCatEx(LPCWSTR pwszBaseString, UINT cStrs, LPCWSTR *ppwszStrs); -STDAPI_(LPSTR) DsoCLSIDtoLPSTR(REFCLSID clsid); - -//////////////////////////////////////////////////////////////////////// -// URL Helpers -// -STDAPI_(BOOL) LooksLikeLocalFile(LPCWSTR pwsz); -STDAPI_(BOOL) LooksLikeUNC(LPCWSTR pwsz); -STDAPI_(BOOL) LooksLikeHTTP(LPCWSTR pwsz); -STDAPI_(BOOL) GetTempPathForURLDownload(WCHAR* pwszURL, WCHAR** ppwszLocalFile); -STDAPI URLDownloadFile(LPUNKNOWN punk, WCHAR* pwszURL, WCHAR* pwszLocalFile); - -//////////////////////////////////////////////////////////////////////// -// OLE Conversion Functions -// -STDAPI_(void) DsoHimetricToPixels(LONG* px, LONG* py); -STDAPI_(void) DsoPixelsToHimetric(LONG* px, LONG* py); - -//////////////////////////////////////////////////////////////////////// -// GDI Helper Functions -// -STDAPI_(HBITMAP) DsoGetBitmapFromWindow(HWND hwnd); - -//////////////////////////////////////////////////////////////////////// -// Windows Helper Functions -// -STDAPI_(BOOL) IsWindowChild(HWND hwndParent, HWND hwndChild); - -//////////////////////////////////////////////////////////////////////// -// OLE/Typelib Function Wrappers -// -STDAPI DsoGetTypeInfoEx(REFGUID rlibid, LCID lcid, WORD wVerMaj, WORD wVerMin, HMODULE hResource, REFGUID rguid, ITypeInfo** ppti); -STDAPI DsoDispatchInvoke(LPDISPATCH pdisp, LPOLESTR pwszname, DISPID dspid, WORD wflags, DWORD cargs, VARIANT* rgargs, VARIANT* pvtret); -STDAPI DsoReportError(HRESULT hr, LPWSTR pwszCustomMessage, EXCEPINFO* peiDispEx); - -//////////////////////////////////////////////////////////////////////// -// Unicode Win32 API wrappers (handles thunk down for Win9x) -// -STDAPI_(BOOL) FFileExists(WCHAR* wzPath); -STDAPI_(BOOL) FOpenLocalFile(WCHAR* wzFilePath, DWORD dwAccess, DWORD dwShareMode, DWORD dwCreate, HANDLE* phFile); -STDAPI_(BOOL) FPerformShellOp(DWORD dwOp, WCHAR* wzFrom, WCHAR* wzTo); -STDAPI_(BOOL) FGetModuleFileName(HMODULE hModule, WCHAR** wzFileName); -STDAPI_(BOOL) FIsIECacheFile(LPWSTR pwszFile); -STDAPI_(BOOL) FDrawText(HDC hdc, WCHAR* pwsz, LPRECT prc, UINT fmt); -STDAPI_(BOOL) FSetRegKeyValue(HKEY hk, WCHAR* pwsz); - -STDAPI_(BOOL) FOpenPrinter(LPCWSTR pwszPrinter, LPHANDLE phandle); -STDAPI_(BOOL) FGetPrinterSettings(HANDLE hprinter, LPWSTR *ppwszProcessor, LPWSTR *ppwszDevice, LPWSTR *ppwszOutput, LPDEVMODEW *ppdvmode, DWORD *pcbSize); - -STDAPI DsoGetFileFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - LPCWSTR pwzFilter, DWORD dwFiltIdx, LPCWSTR pwszDefExt, LPCWSTR pwszCurrentItem, BOOL fShowSave, - BSTR *pbstrFile, BOOL *pfReadOnly); - -STDAPI DsoGetOleInsertObjectFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - BOOL fDocObjectOnly, BOOL fAllowControls, BSTR *pbstrResult, UINT *ptype); - -//////////////////////////////////////////////////////////////////////// -// Common macros -- Used to make code more readable. -// -#define SEH_TRY __try { -#define SEH_EXCEPT(hr) } __except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION){hr = E_WIN32_ACCESSVIOLATION;} -#define SEH_EXCEPT_NULL } __except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION){} -#define SEH_START_FINALLY } __finally { -#define SEH_END_FINALLY } - -#define RETURN_ON_FAILURE(x) if (FAILED(x)) return (x) -#define GOTO_ON_FAILURE(x, lbl) if (FAILED(x)) goto lbl -#define CHECK_NULL_RETURN(v, e) if ((v) == NULL) return (e) - -#define SAFE_ADDREF_INTERFACE if (x) { (x)->AddRef(); } -#define SAFE_RELEASE_INTERFACE(x) if (x) { (x)->Release(); (x) = NULL; } -#define SAFE_SET_INTERFACE(x, y) if (((x) = (y)) != NULL) ((IUnknown*)(x))->AddRef() -#define SAFE_FREESTRING(s) if (s) { DsoMemFree(s); (s) = NULL; } -#define SAFE_FREEBSTR(s) if (s) { SysFreeString(s); (s) = NULL; } - -VARIANT* __fastcall DsoPVarFromPVarRef(VARIANT* px); -BOOL __fastcall DsoIsVarParamMissing(VARIANT* px); -LPWSTR __fastcall DsoPVarWStrFromPVar(VARIANT* px); -SAFEARRAY* __fastcall DsoPVarArrayFromPVar(VARIANT* px); -IUnknown* __fastcall DsoPVarUnkFromPVar(VARIANT* px); -SHORT __fastcall DsoPVarShortFromPVar(VARIANT* px, SHORT fdef); -LONG __fastcall DsoPVarLongFromPVar(VARIANT* px, LONG fdef); -BOOL __fastcall DsoPVarBoolFromPVar(VARIANT* px, BOOL fdef); - -#define PARAM_IS_MISSING(x) DsoIsVarParamMissing(DsoPVarFromPVarRef((x))) -#define LPWSTR_FROM_VARIANT(x) DsoPVarWStrFromPVar(DsoPVarFromPVarRef(&(x))) -#define LONG_FROM_VARIANT(x, y) DsoPVarLongFromPVar(DsoPVarFromPVarRef(&(x)), (y)) -#define BOOL_FROM_VARIANT(x, y) DsoPVarBoolFromPVar(DsoPVarFromPVarRef(&(x)), (y)) -#define PUNK_FROM_VARIANT(x) DsoPVarUnkFromPVar(DsoPVarFromPVarRef(&(x))) -#define PSARRAY_FROM_VARIANT(x) DsoPVarArrayFromPVar(DsoPVarFromPVarRef(&(x))) - -#define ASCII_UPPERCASE(x) ((((x) > 96) && ((x) < 123)) ? (x) - 32 : (x)) -#define ASCII_LOWERCASE(x) ((((x) > 64) && ((x) < 91)) ? (x) + 32 : (x)) - -//////////////////////////////////////////////////////////////////////// -// Debug macros -// -#ifdef _DEBUG - -#define ASSERT(x) if(!(x)) DebugBreak() -#define ODS(x) OutputDebugString(x) - -#define TRACE1(sz, arg1) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1)); \ - ODS(ach); } - -#define TRACE2(sz, arg1, arg2) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1), (arg2)); \ - ODS(ach); } - -#define TRACE3(sz, arg1, arg2, arg3) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1), (arg2), (arg3)); \ - ODS(ach); } - -#define TRACE_LPRECT(sz, lprc) { \ - CHAR ach[1024]; \ - wsprintf(ach, "RECT %s - left=%d, top=%d, right=%d, bottom=%d\n", \ - (sz), (lprc)->left, (lprc)->top, (lprc)->right, (lprc)->bottom); \ - ODS(ach); } - -#else // !defined(_DEBUG) - -#define ASSERT(x) -#define ODS(x) -#define TRACE1(sz, arg1) -#define TRACE2(sz, arg1, arg2) -#define TRACE3(sz, arg1, arg2, arg3) -#define TRACE_LPRECT(sz, lprc) - -#endif // (_DEBUG) - -//////////////////////////////////////////////////////////////////////// -// Macros for Nested COM Interfaces -// -#ifdef _DEBUG -#define DEFINE_REFCOUNT ULONG m_cRef; -#define IMPLEMENT_DEBUG_ADDREF m_cRef++; -#define IMPLEMENT_DEBUG_RELEASE(x) ASSERT(m_cRef > 0); m_cRef--; if (m_cRef == 0){ODS(" > I" #x " released\n");} -#define IMPLEMENT_DEBUG_REFSET m_cRef = 0; -#define IMPLEMENT_DEBUG_REFCHECK(x) ASSERT(m_cRef == 0); if (m_cRef != 0){ODS(" * I" #x " NOT released!!\n");} -#else -#define DEFINE_REFCOUNT -#define IMPLEMENT_DEBUG_ADDREF -#define IMPLEMENT_DEBUG_RELEASE(x) -#define IMPLEMENT_DEBUG_REFSET -#define IMPLEMENT_DEBUG_REFCHECK(x) -#endif /* !_DEBUG */ - -#define BEGIN_INTERFACE_PART(localClass, baseClass) \ -class X##localClass : public baseClass \ -{ public: X##localClass(){IMPLEMENT_DEBUG_REFSET} \ - ~X##localClass(){IMPLEMENT_DEBUG_REFCHECK(##localClass)} \ - STDMETHOD(QueryInterface)(REFIID iid, PVOID* ppvObj); \ - STDMETHOD_(ULONG, AddRef)(); \ - STDMETHOD_(ULONG, Release)(); \ - DEFINE_REFCOUNT - -#define END_INTERFACE_PART(localClass) \ -} m_x##localClass; \ -friend class X##localClass; - -#define METHOD_PROLOGUE(theClass, localClass) \ - theClass* pThis = \ - ((theClass*)(((BYTE*)this) - (size_t)&(((theClass*)0)->m_x##localClass))); - -#define IMPLEMENT_INTERFACE_UNKNOWN(theClass, localClass) \ - ULONG theClass::X##localClass::AddRef() { \ - METHOD_PROLOGUE(theClass, localClass) \ - IMPLEMENT_DEBUG_ADDREF \ - return pThis->AddRef(); \ - } \ - ULONG theClass::X##localClass::Release() { \ - METHOD_PROLOGUE(theClass, localClass) \ - IMPLEMENT_DEBUG_RELEASE(##localClass) \ - return pThis->Release(); \ - } \ - STDMETHODIMP theClass::X##localClass::QueryInterface(REFIID iid, void **ppvObj) { \ - METHOD_PROLOGUE(theClass, localClass) \ - return pThis->QueryInterface(iid, ppvObj); \ - } - - -#endif //DS_UTILITIES_H \ No newline at end of file diff --git a/PROMS/DSOFramer/DSOFramer/Source2005/version.h b/PROMS/DSOFramer/DSOFramer/Source2005/version.h deleted file mode 100644 index fcc71283..00000000 --- a/PROMS/DSOFramer/DSOFramer/Source2005/version.h +++ /dev/null @@ -1,59 +0,0 @@ -/*************************************************************************** - * VERSION.H - Contol version defines - * - * DSOFramer: Version Information Header (Shared) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -/*************************************************************************** - * - * IMPORTANT: If you modify this sample, you should change all of the values - * below to differentiate your control from this sample. - * - ***************************************************************************/ -#ifndef DS_VERSION_H -#define DS_VERSION_H - -#define DSOFRAMERCTL_VERSION 1.3 -#define DSOFRAMERCTL_VERSION_MAJOR 1 -#define DSOFRAMERCTL_VERSION_MINOR 3 -#define DSOFRAMERCTL_VERSION_BUILD 1323 -#define DSOFRAMERCTL_VERSIONSTR "1.3" -#define DSOFRAMERCTL_VERSIONSTRFULL "1.3.1323.1" - -#define DSOFRAMERCTL_FULLNAME "DSO ActiveX Document Framer Control" -#define DSOFRAMERCTL_SHORTNAME "DSO Framer Control Object" - -#define DSOFRAMERCTL_PROGID "DSOFramer.FramerControl" - -#define DSOFRAMERCTL_TLIB 00460180-9E5E-11d5-B7C8-B8269041DD57 -#define DSOFRAMERCTL_TLIBSTR "{00460180-9E5E-11d5-B7C8-B8269041DD57}" - -#define DSOFRAMERCTL_INTERFACE 00460181-9E5E-11d5-B7C8-B8269041DD57 - -#define DSOFRAMERCTL_CLSID 00460182-9E5E-11d5-B7C8-B8269041DD57 -#define DSOFRAMERCTL_CLSIDSTR "{00460182-9E5E-11d5-B7C8-B8269041DD57}" - -#define DSOFRAMERCTL_DISPEVTS 00460185-9E5E-11d5-B7C8-B8269041DD57 - -#define DSOF_DISPID_FILECMD 1 -#define DSOF_DISPID_DOCOPEN 2 -#define DSOF_DISPID_DOCCLOSE 3 -#define DSOF_DISPID_ACTIVATE 4 -#define DSOF_DISPID_BDOCCLOSE 5 -#define DSOF_DISPID_BDOCSAVE 6 -#define DSOF_DISPID_ENDPREVIEW 7 -#define DSOF_DISPID_SAVECOMPLETE 8 - -#endif //DS_VERSION_H diff --git a/PROMS/DSOFramer/Source2005/Lib/dsoframer.idl b/PROMS/DSOFramer/Source2005/Lib/dsoframer.idl deleted file mode 100644 index d818958e..00000000 --- a/PROMS/DSOFramer/Source2005/Lib/dsoframer.idl +++ /dev/null @@ -1,281 +0,0 @@ -/*************************************************************************** - * DSOFRAMER.IDL - DSO Framer ActiveX Control Type Library - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -/*************************************************************************** - * - * IMPORTANT: You should not attempt to modify this library unless you are - * sure you do not break binary compatibility, or you change all the GUIDs - * listed in version.h so as to build a completely new control. - * - ***************************************************************************/ -#include -#include "..\version.h" - -[ - uuid(DSOFRAMERCTL_TLIB), helpstring(DSOFRAMERCTL_FULLNAME), - version(DSOFRAMERCTL_VERSION), lcid(0x0000), control -] -library DSOFramer -{ - importlib("STDOLE2.TLB"); - - typedef enum dsoBorderStyle - { - dsoBorderNone = 0, - dsoBorderFlat, - dsoBorder3D, - dsoBorder3DThin - } dsoBorderStyle; - - typedef enum dsoShowDialogType - { - dsoDialogNew = 0, - dsoDialogOpen, - dsoDialogSave, - dsoDialogSaveCopy, - dsoDialogPrint, - dsoDialogPageSetup, - dsoDialogProperties - } dsoShowDialogType; - - typedef enum dsoFileCommandType - { - dsoFileNew = 0, - dsoFileOpen, - dsoFileClose, - dsoFileSave, - dsoFileSaveAs, - dsoFilePrint, - dsoFilePageSetup, - dsoFileProperties, - dsoFilePrintPreview - } dsoFileCommandType; - - - [ - uuid(DSOFRAMERCTL_INTERFACE), hidden, version(DSOFRAMERCTL_VERSION), - dual, oleautomation, odl - ] - interface _FramerControl : IDispatch - { - [id(0x00010001), helpstring("Activates the current document object.")] - HRESULT Activate(); - - [propget, id(0x00010002), helpstring("Returns the Automation interface of the document object.")] - HRESULT ActiveDocument([out,retval] IDispatch** ppdisp); - - [id(0x00010003), helpstring("Creates a new document based on the ProgId or Template file provided.")] - HRESULT CreateNew([in] BSTR ProgIdOrTemplate); - - [id(0x00010004), helpstring("Opens a document from a file, URL, or Automation object.")] - HRESULT Open([in] VARIANT Document, [in, optional] VARIANT ReadOnly, [in, optional] VARIANT ProgId, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword); - - [id(0x00010005), helpstring("Saves the document to specified location or its original location.")] - HRESULT Save([in, optional] VARIANT SaveAsDocument, [in, optional] VARIANT OverwriteExisting, [in, optional] VARIANT WebUsername, [in, optional] VARIANT WebPassword); - - [id(0x00010008), hidden] - HRESULT _PrintOutOld([in, optional] VARIANT PromptToSelectPrinter); - - [id(0x00010009), helpstring("Closes the currently open document.")] - HRESULT Close(); - - [propput, id(0x0001000A), helpstring("Returns/sets the titlebar caption.")] - HRESULT Caption([in] BSTR bstr); - [propget, id(0x0001000A)] - HRESULT Caption([out,retval] BSTR* pbstr); - - [propput, id(0x0001000B), helpstring("Returns/sets whether the titlebar should be displayed.")] - HRESULT Titlebar([in] VARIANT_BOOL vbool); - [propget, id(0x0001000B)] - HRESULT Titlebar([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x0001000C), helpstring("Returns/sets whether toolbars should be displayed.")] - HRESULT Toolbars([in] VARIANT_BOOL vbool); - [propget, id(0x0001000C)] - HRESULT Toolbars([out,retval] VARIANT_BOOL* pbool); - - [propput, nonbrowsable, id(0x0001000D), helpstring("Returns/sets the controls modal state.")] - HRESULT ModalState([in] VARIANT_BOOL vbool); - [propget, nonbrowsable, id(0x0001000D)] - HRESULT ModalState([out,retval] VARIANT_BOOL* pbool); - - [id(0x0001000E), helpstring("Displays a modal dialog of the given type for user action.")] - HRESULT ShowDialog([in] dsoShowDialogType DlgType); - - [propput, id(0x0001000F), helpstring("Returns/sets whether a specific action item is enabled.")] - HRESULT EnableFileCommand([in] dsoFileCommandType Item, [in] VARIANT_BOOL vbool); - [propget, id(0x0001000F)] - HRESULT EnableFileCommand([in] dsoFileCommandType Item, [out,retval] VARIANT_BOOL* pbool); - - [propput, id(DISPID_BORDERSTYLE), helpstring("Returns/sets the border style for the control.")] - HRESULT BorderStyle([in] dsoBorderStyle style); - [propget, id(DISPID_BORDERSTYLE)] - HRESULT BorderStyle([out, retval] dsoBorderStyle* pstyle); - - [propput, id(DISPID_BORDERCOLOR), helpstring("Returns/sets the border color of the control.")] - HRESULT BorderColor([in] OLE_COLOR clr); - [propget, id(DISPID_BORDERCOLOR)] - HRESULT BorderColor([out,retval] OLE_COLOR* pclr); - - [propput, id(DISPID_BACKCOLOR), helpstring("Returns/sets the background color of the control.")] - HRESULT BackColor([in] OLE_COLOR clr); - [propget, id(DISPID_BACKCOLOR)] - HRESULT BackColor([out,retval] OLE_COLOR* pclr); - - [propput, id(DISPID_FORECOLOR), helpstring("Returns/sets the foreground color of the control.")] - HRESULT ForeColor([in]OLE_COLOR clr); - [propget, id(DISPID_FORECOLOR)] - HRESULT ForeColor([out,retval]OLE_COLOR* pclr); - - [propput, id(0x00010010), helpstring("Returns/sets the color of the titlebar.")] - HRESULT TitlebarColor([in] OLE_COLOR clr); - [propget, id(0x00010010)] - HRESULT TitlebarColor([out,retval] OLE_COLOR* pclr); - - [propput, id(0x00010011), helpstring("Returns/sets the color of text for the titlebar.")] - HRESULT TitlebarTextColor([in] OLE_COLOR clr); - [propget, id(0x00010011)] - HRESULT TitlebarTextColor([out,retval] OLE_COLOR* pclr); - - [id(0x00010012), helpstring("Calls IOleCommandTarget::Exec on embedded object.")] - HRESULT ExecOleCommand([in] LONG OLECMDID, [in, optional] VARIANT Options, [in, optional] VARIANT* vInParam, [in, out, optional] VARIANT* vInOutParam); - - [propput, id(0x00010013), helpstring("Returns/sets whether a menu bar should be displayed.")] - HRESULT Menubar([in] VARIANT_BOOL vbool); - [propget, id(0x00010013)] - HRESULT Menubar([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x00010014), helpstring("Returns/sets host application name (used in embedding).")] - HRESULT HostName([in] BSTR bstr); - [propget, id(0x00010014)] - HRESULT HostName([out,retval] BSTR* pbstr); - - [propget, id(0x00010015), helpstring("Returns full document path name for object.")] - HRESULT DocumentFullName([out,retval] BSTR* pbstr); - - [id(0x00010016), helpstring("Prints current document to specific printer with settings.")] - HRESULT PrintOut([in, optional] VARIANT PromptUser, [in, optional] VARIANT PrinterName, [in, optional] VARIANT Copies, - [in, optional] VARIANT FromPage, [in, optional] VARIANT ToPage, [in, optional] VARIANT OutputFile); - - [id(0x00010017), helpstring("Starts a print preview (if document supports it).")] - HRESULT PrintPreview(); - - [id(0x00010018), helpstring("Exits a current print preview.")] - HRESULT PrintPreviewExit(); - - [propget, id(0x00010019), helpstring("Returns True/False if file was open read-only, or has not been saved.")] - HRESULT IsReadOnly([out,retval] VARIANT_BOOL* pbool); - - [propget, id(0x0001001A), helpstring("Returns True/False if file has been altered or needs save.")] - HRESULT IsDirty([out,retval] VARIANT_BOOL* pbool); - - [propput, id(0x0001001B), helpstring("Sets lock on the current embed server to keep it running (document must be open first).")] - HRESULT LockServer([in] VARIANT_BOOL vbool); - [propget, id(0x0001001B)] - HRESULT LockServer([out,retval] VARIANT_BOOL* pvbool); - - [id(0x0001001C), nonbrowsable, helpstring("Gets the content of the body of the document (excluding headers/footers).")] - HRESULT GetDataObjectContent([in] VARIANT ClipFormatNameOrNumber, [out,retval] VARIANT *pvResults); - - [id(0x0001001D), nonbrowsable, helpstring("Sets the content of the body of the document.")] - HRESULT SetDataObjectContent([in] VARIANT ClipFormatNameOrNumber, [in] VARIANT DataByteArray); - - [propput, id(0x0001001E), helpstring("Allows host to set policy on activation behavior.")] - HRESULT ActivationPolicy([in] enum dsoActivationPolicy lPolicy); - [propget, id(0x0001001E)] - HRESULT ActivationPolicy([out,retval] enum dsoActivationPolicy *plPolicy); - - [propput, id(0x0001001F), helpstring("Allows host to set policy on use of the frame hook.")] - HRESULT FrameHookPolicy([in] enum dsoFrameHookPolicy lPolicy); - [propget, id(0x0001001F)] - HRESULT FrameHookPolicy([out,retval] enum dsoFrameHookPolicy *plPolicy); - - [propput, id(0x00010020), helpstring("Gets/sets whether control should try to handle menu accelerators or pass to host window.")] - HRESULT MenuAccelerators([in] VARIANT_BOOL vbool); - [propget, id(0x00010020)] - HRESULT MenuAccelerators([out,retval] VARIANT_BOOL* pvbool); - - [propput, nonbrowsable, id(0x00010021), helpstring("Gets/sets whether control events are raised.")] - HRESULT EventsEnabled([in] VARIANT_BOOL vbool); - [propget, nonbrowsable, id(0x00010021)] - HRESULT EventsEnabled([out,retval] VARIANT_BOOL* pvbool); - - [propget, id(0x00010022), helpstring("Returns just the document name (excluding path).")] - HRESULT DocumentName([out,retval] BSTR* pbstr); - }; - - [ - uuid(DSOFRAMERCTL_DISPEVTS), hidden - ] - dispinterface _DFramerCtlEvents - { - properties: - methods: - [id(DSOF_DISPID_FILECMD), helpstring("Called when File menu item is selected by user (may be canceled).")] - HRESULT OnFileCommand([in] dsoFileCommandType Item, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_DOCOPEN), helpstring("Called when document is opened or new document added.")] - HRESULT OnDocumentOpened([in] BSTR File, [in] IDispatch* Document); - - [id(DSOF_DISPID_DOCCLOSE), helpstring("Called when document is closed.")] - HRESULT OnDocumentClosed(); - - [id(DSOF_DISPID_ACTIVATE), helpstring("Called when component gains/loses activation.")] - HRESULT OnActivationChange([in] VARIANT_BOOL fGoingActive); - - [id(DSOF_DISPID_BDOCCLOSE), helpstring("Called before document is closed (may be canceled).")] - HRESULT BeforeDocumentClosed([in] IDispatch* Document, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_BDOCSAVE), helpstring("Called before document is saved (may be canceled).")] - HRESULT BeforeDocumentSaved([in] IDispatch* Document, [in] BSTR Location, [in,out] VARIANT_BOOL* Cancel); - - [id(DSOF_DISPID_ENDPREVIEW), helpstring("Called when print preview is closed.")] - HRESULT OnPrintPreviewExit(); - - [id(DSOF_DISPID_SAVECOMPLETE), helpstring("Called when save is successful.")] - HRESULT OnSaveCompleted([in] IDispatch* Document, [in] BSTR DocName, [in] BSTR FullFileLocation); - - }; - - [ - uuid(DSOFRAMERCTL_CLSID), - helpstring(DSOFRAMERCTL_SHORTNAME), control - ] - coclass FramerControl - { - [default] interface _FramerControl; - [default, source] dispinterface _DFramerCtlEvents; - }; - - - typedef enum dsoFrameHookPolicy - { - dsoNormalBehavior = 0, - dsoSetOnFirstOpen, - dsoResetNow, - dsoDisableHook = 0xFFFFFFFF - } dsoFrameHookPolicy; - - typedef enum dsoActivationPolicy - { - dsoDefaultBehavior = 0, - dsoKeepUIActiveOnAppDeactive = 0x01, - dsoCompDeactivateOnLostFocus = 0x02, - dsoIPDeactivateOnCompDeactive = 0x04 - } dsoActivationPolicy; - -}; - diff --git a/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.c b/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.c deleted file mode 100644 index 20e9c1e1..00000000 --- a/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.c +++ /dev/null @@ -1,87 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the IIDs and CLSIDs */ - -/* link this file in with the server and any clients */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* at Mon Jan 18 22:14:07 2038 - */ -/* Compiler settings for Lib\dsoframer.idl: - Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -/* @@MIDL_FILE_HEADING( ) */ - - - -#ifdef __cplusplus -extern "C"{ -#endif - - -#include -#include - -#ifdef _MIDL_USE_GUIDDEF_ - -#ifndef INITGUID -#define INITGUID -#include -#undef INITGUID -#else -#include -#endif - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - DEFINE_GUID(name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) - -#else // !_MIDL_USE_GUIDDEF_ - -#ifndef __IID_DEFINED__ -#define __IID_DEFINED__ - -typedef struct _IID -{ - unsigned long x; - unsigned short s1; - unsigned short s2; - unsigned char c[8]; -} IID; - -#endif // __IID_DEFINED__ - -#ifndef CLSID_DEFINED -#define CLSID_DEFINED -typedef IID CLSID; -#endif // CLSID_DEFINED - -#define MIDL_DEFINE_GUID(type,name,l,w1,w2,b1,b2,b3,b4,b5,b6,b7,b8) \ - EXTERN_C __declspec(selectany) const type name = {l,w1,w2,{b1,b2,b3,b4,b5,b6,b7,b8}} - -#endif // !_MIDL_USE_GUIDDEF_ - -MIDL_DEFINE_GUID(IID, LIBID_DSOFramer,0x00460180,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(IID, IID__FramerControl,0x00460181,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(IID, DIID__DFramerCtlEvents,0x00460185,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - - -MIDL_DEFINE_GUID(CLSID, CLSID_FramerControl,0x00460182,0x9E5E,0x11d5,0xB7,0xC8,0xB8,0x26,0x90,0x41,0xDD,0x57); - -#undef MIDL_DEFINE_GUID - -#ifdef __cplusplus -} -#endif - - - diff --git a/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.h b/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.h deleted file mode 100644 index e7ba4ea1..00000000 --- a/PROMS/DSOFramer/Source2005/Lib/dsoframerlib.h +++ /dev/null @@ -1,971 +0,0 @@ - - -/* this ALWAYS GENERATED file contains the definitions for the interfaces */ - - - /* File created by MIDL compiler version 8.01.0622 */ -/* at Mon Jan 18 22:14:07 2038 - */ -/* Compiler settings for Lib\dsoframer.idl: - Oicf, W1, Zp8, env=Win32 (32b run), target_arch=X86 8.01.0622 - protocol : dce , ms_ext, c_ext, robust - error checks: allocation ref bounds_check enum stub_data - VC __declspec() decoration level: - __declspec(uuid()), __declspec(selectany), __declspec(novtable) - DECLSPEC_UUID(), MIDL_INTERFACE() -*/ -/* @@MIDL_FILE_HEADING( ) */ - - - -/* verify that the version is high enough to compile this file*/ -#ifndef __REQUIRED_RPCNDR_H_VERSION__ -#define __REQUIRED_RPCNDR_H_VERSION__ 500 -#endif - -#include "rpc.h" -#include "rpcndr.h" - -#ifndef __RPCNDR_H_VERSION__ -#error this stub requires an updated version of -#endif /* __RPCNDR_H_VERSION__ */ - - -#ifndef __dsoframerlib_h__ -#define __dsoframerlib_h__ - -#if defined(_MSC_VER) && (_MSC_VER >= 1020) -#pragma once -#endif - -/* Forward Declarations */ - -#ifndef ___FramerControl_FWD_DEFINED__ -#define ___FramerControl_FWD_DEFINED__ -typedef interface _FramerControl _FramerControl; - -#endif /* ___FramerControl_FWD_DEFINED__ */ - - -#ifndef ___DFramerCtlEvents_FWD_DEFINED__ -#define ___DFramerCtlEvents_FWD_DEFINED__ -typedef interface _DFramerCtlEvents _DFramerCtlEvents; - -#endif /* ___DFramerCtlEvents_FWD_DEFINED__ */ - - -#ifndef __FramerControl_FWD_DEFINED__ -#define __FramerControl_FWD_DEFINED__ - -#ifdef __cplusplus -typedef class FramerControl FramerControl; -#else -typedef struct FramerControl FramerControl; -#endif /* __cplusplus */ - -#endif /* __FramerControl_FWD_DEFINED__ */ - - -#ifdef __cplusplus -extern "C"{ -#endif - - -/* interface __MIDL_itf_dsoframer_0000_0000 */ -/* [local] */ - -#pragma external_header(push) -#pragma external_header(pop) - - -extern RPC_IF_HANDLE __MIDL_itf_dsoframer_0000_0000_v0_0_c_ifspec; -extern RPC_IF_HANDLE __MIDL_itf_dsoframer_0000_0000_v0_0_s_ifspec; - - -#ifndef __DSOFramer_LIBRARY_DEFINED__ -#define __DSOFramer_LIBRARY_DEFINED__ - -/* library DSOFramer */ -/* [control][lcid][version][helpstring][uuid] */ - -typedef -enum dsoBorderStyle - { - dsoBorderNone = 0, - dsoBorderFlat = ( dsoBorderNone + 1 ) , - dsoBorder3D = ( dsoBorderFlat + 1 ) , - dsoBorder3DThin = ( dsoBorder3D + 1 ) - } dsoBorderStyle; - -typedef -enum dsoShowDialogType - { - dsoDialogNew = 0, - dsoDialogOpen = ( dsoDialogNew + 1 ) , - dsoDialogSave = ( dsoDialogOpen + 1 ) , - dsoDialogSaveCopy = ( dsoDialogSave + 1 ) , - dsoDialogPrint = ( dsoDialogSaveCopy + 1 ) , - dsoDialogPageSetup = ( dsoDialogPrint + 1 ) , - dsoDialogProperties = ( dsoDialogPageSetup + 1 ) - } dsoShowDialogType; - -typedef -enum dsoFileCommandType - { - dsoFileNew = 0, - dsoFileOpen = ( dsoFileNew + 1 ) , - dsoFileClose = ( dsoFileOpen + 1 ) , - dsoFileSave = ( dsoFileClose + 1 ) , - dsoFileSaveAs = ( dsoFileSave + 1 ) , - dsoFilePrint = ( dsoFileSaveAs + 1 ) , - dsoFilePageSetup = ( dsoFilePrint + 1 ) , - dsoFileProperties = ( dsoFilePageSetup + 1 ) , - dsoFilePrintPreview = ( dsoFileProperties + 1 ) - } dsoFileCommandType; - -typedef -enum dsoFrameHookPolicy - { - dsoNormalBehavior = 0, - dsoSetOnFirstOpen = ( dsoNormalBehavior + 1 ) , - dsoResetNow = ( dsoSetOnFirstOpen + 1 ) , - dsoDisableHook = 0xffffffff - } dsoFrameHookPolicy; - -typedef -enum dsoActivationPolicy - { - dsoDefaultBehavior = 0, - dsoKeepUIActiveOnAppDeactive = 0x1, - dsoCompDeactivateOnLostFocus = 0x2, - dsoIPDeactivateOnCompDeactive = 0x4 - } dsoActivationPolicy; - - -EXTERN_C const IID LIBID_DSOFramer; - -#ifndef ___FramerControl_INTERFACE_DEFINED__ -#define ___FramerControl_INTERFACE_DEFINED__ - -/* interface _FramerControl */ -/* [object][oleautomation][dual][version][hidden][uuid] */ - - -EXTERN_C const IID IID__FramerControl; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00460181-9E5E-11d5-B7C8-B8269041DD57") - _FramerControl : public IDispatch - { - public: - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Activate( void) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_ActiveDocument( - /* [retval][out] */ IDispatch **ppdisp) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE CreateNew( - /* [in] */ BSTR ProgIdOrTemplate) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Open( - /* [in] */ VARIANT Document, - /* [optional][in] */ VARIANT ReadOnly, - /* [optional][in] */ VARIANT ProgId, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Save( - /* [optional][in] */ VARIANT SaveAsDocument, - /* [optional][in] */ VARIANT OverwriteExisting, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword) = 0; - - virtual /* [hidden][id] */ HRESULT STDMETHODCALLTYPE _PrintOutOld( - /* [optional][in] */ VARIANT PromptToSelectPrinter) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE Close( void) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Caption( - /* [in] */ BSTR bstr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Caption( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Titlebar( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Titlebar( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Toolbars( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Toolbars( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE put_ModalState( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE get_ModalState( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ShowDialog( - /* [in] */ dsoShowDialogType DlgType) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_EnableFileCommand( - /* [in] */ dsoFileCommandType Item, - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_EnableFileCommand( - /* [in] */ dsoFileCommandType Item, - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BorderStyle( - /* [in] */ dsoBorderStyle style) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BorderStyle( - /* [retval][out] */ dsoBorderStyle *pstyle) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BorderColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BorderColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_BackColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_BackColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ForeColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ForeColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TitlebarColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_TitlebarColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_TitlebarTextColor( - /* [in] */ /* external definition not present */ OLE_COLOR clr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_TitlebarTextColor( - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE ExecOleCommand( - /* [in] */ LONG OLECMDID, - /* [optional][in] */ VARIANT Options, - /* [optional][in] */ VARIANT *vInParam, - /* [optional][out][in] */ VARIANT *vInOutParam) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_Menubar( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_Menubar( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_HostName( - /* [in] */ BSTR bstr) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_HostName( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DocumentFullName( - /* [retval][out] */ BSTR *pbstr) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintOut( - /* [optional][in] */ VARIANT PromptUser, - /* [optional][in] */ VARIANT PrinterName, - /* [optional][in] */ VARIANT Copies, - /* [optional][in] */ VARIANT FromPage, - /* [optional][in] */ VARIANT ToPage, - /* [optional][in] */ VARIANT OutputFile) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintPreview( void) = 0; - - virtual /* [helpstring][id] */ HRESULT STDMETHODCALLTYPE PrintPreviewExit( void) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsReadOnly( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_IsDirty( - /* [retval][out] */ VARIANT_BOOL *pbool) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_LockServer( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_LockServer( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE GetDataObjectContent( - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [retval][out] */ VARIANT *pvResults) = 0; - - virtual /* [helpstring][nonbrowsable][id] */ HRESULT STDMETHODCALLTYPE SetDataObjectContent( - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [in] */ VARIANT DataByteArray) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_ActivationPolicy( - /* [in] */ enum dsoActivationPolicy lPolicy) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_ActivationPolicy( - /* [retval][out] */ enum dsoActivationPolicy *plPolicy) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_FrameHookPolicy( - /* [in] */ enum dsoFrameHookPolicy lPolicy) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_FrameHookPolicy( - /* [retval][out] */ enum dsoFrameHookPolicy *plPolicy) = 0; - - virtual /* [helpstring][id][propput] */ HRESULT STDMETHODCALLTYPE put_MenuAccelerators( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][propget] */ HRESULT STDMETHODCALLTYPE get_MenuAccelerators( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][id][nonbrowsable][propput] */ HRESULT STDMETHODCALLTYPE put_EventsEnabled( - /* [in] */ VARIANT_BOOL vbool) = 0; - - virtual /* [id][nonbrowsable][propget] */ HRESULT STDMETHODCALLTYPE get_EventsEnabled( - /* [retval][out] */ VARIANT_BOOL *pvbool) = 0; - - virtual /* [helpstring][id][propget] */ HRESULT STDMETHODCALLTYPE get_DocumentName( - /* [retval][out] */ BSTR *pbstr) = 0; - - }; - - -#else /* C style interface */ - - typedef struct _FramerControlVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - _FramerControl * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - _FramerControl * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - _FramerControl * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - _FramerControl * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - _FramerControl * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - _FramerControl * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - _FramerControl * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Activate )( - _FramerControl * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActiveDocument )( - _FramerControl * This, - /* [retval][out] */ IDispatch **ppdisp); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *CreateNew )( - _FramerControl * This, - /* [in] */ BSTR ProgIdOrTemplate); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Open )( - _FramerControl * This, - /* [in] */ VARIANT Document, - /* [optional][in] */ VARIANT ReadOnly, - /* [optional][in] */ VARIANT ProgId, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Save )( - _FramerControl * This, - /* [optional][in] */ VARIANT SaveAsDocument, - /* [optional][in] */ VARIANT OverwriteExisting, - /* [optional][in] */ VARIANT WebUsername, - /* [optional][in] */ VARIANT WebPassword); - - /* [hidden][id] */ HRESULT ( STDMETHODCALLTYPE *_PrintOutOld )( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptToSelectPrinter); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *Close )( - _FramerControl * This); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Caption )( - _FramerControl * This, - /* [in] */ BSTR bstr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Caption )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Titlebar )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Titlebar )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Toolbars )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Toolbars )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][nonbrowsable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ModalState )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][nonbrowsable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ModalState )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ShowDialog )( - _FramerControl * This, - /* [in] */ dsoShowDialogType DlgType); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EnableFileCommand )( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EnableFileCommand )( - _FramerControl * This, - /* [in] */ dsoFileCommandType Item, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderStyle )( - _FramerControl * This, - /* [in] */ dsoBorderStyle style); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderStyle )( - _FramerControl * This, - /* [retval][out] */ dsoBorderStyle *pstyle); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BorderColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BorderColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_BackColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_BackColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ForeColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ForeColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TitlebarColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TitlebarColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_TitlebarTextColor )( - _FramerControl * This, - /* [in] */ /* external definition not present */ OLE_COLOR clr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_TitlebarTextColor )( - _FramerControl * This, - /* [retval][out] */ /* external definition not present */ OLE_COLOR *pclr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *ExecOleCommand )( - _FramerControl * This, - /* [in] */ LONG OLECMDID, - /* [optional][in] */ VARIANT Options, - /* [optional][in] */ VARIANT *vInParam, - /* [optional][out][in] */ VARIANT *vInOutParam); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_Menubar )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_Menubar )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_HostName )( - _FramerControl * This, - /* [in] */ BSTR bstr); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_HostName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DocumentFullName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintOut )( - _FramerControl * This, - /* [optional][in] */ VARIANT PromptUser, - /* [optional][in] */ VARIANT PrinterName, - /* [optional][in] */ VARIANT Copies, - /* [optional][in] */ VARIANT FromPage, - /* [optional][in] */ VARIANT ToPage, - /* [optional][in] */ VARIANT OutputFile); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintPreview )( - _FramerControl * This); - - /* [helpstring][id] */ HRESULT ( STDMETHODCALLTYPE *PrintPreviewExit )( - _FramerControl * This); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsReadOnly )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_IsDirty )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pbool); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_LockServer )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_LockServer )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][nonbrowsable][id] */ HRESULT ( STDMETHODCALLTYPE *GetDataObjectContent )( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [retval][out] */ VARIANT *pvResults); - - /* [helpstring][nonbrowsable][id] */ HRESULT ( STDMETHODCALLTYPE *SetDataObjectContent )( - _FramerControl * This, - /* [in] */ VARIANT ClipFormatNameOrNumber, - /* [in] */ VARIANT DataByteArray); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_ActivationPolicy )( - _FramerControl * This, - /* [in] */ enum dsoActivationPolicy lPolicy); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_ActivationPolicy )( - _FramerControl * This, - /* [retval][out] */ enum dsoActivationPolicy *plPolicy); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_FrameHookPolicy )( - _FramerControl * This, - /* [in] */ enum dsoFrameHookPolicy lPolicy); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_FrameHookPolicy )( - _FramerControl * This, - /* [retval][out] */ enum dsoFrameHookPolicy *plPolicy); - - /* [helpstring][id][propput] */ HRESULT ( STDMETHODCALLTYPE *put_MenuAccelerators )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_MenuAccelerators )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][id][nonbrowsable][propput] */ HRESULT ( STDMETHODCALLTYPE *put_EventsEnabled )( - _FramerControl * This, - /* [in] */ VARIANT_BOOL vbool); - - /* [id][nonbrowsable][propget] */ HRESULT ( STDMETHODCALLTYPE *get_EventsEnabled )( - _FramerControl * This, - /* [retval][out] */ VARIANT_BOOL *pvbool); - - /* [helpstring][id][propget] */ HRESULT ( STDMETHODCALLTYPE *get_DocumentName )( - _FramerControl * This, - /* [retval][out] */ BSTR *pbstr); - - END_INTERFACE - } _FramerControlVtbl; - - interface _FramerControl - { - CONST_VTBL struct _FramerControlVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define _FramerControl_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define _FramerControl_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define _FramerControl_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define _FramerControl_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define _FramerControl_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define _FramerControl_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define _FramerControl_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - - -#define _FramerControl_Activate(This) \ - ( (This)->lpVtbl -> Activate(This) ) - -#define _FramerControl_get_ActiveDocument(This,ppdisp) \ - ( (This)->lpVtbl -> get_ActiveDocument(This,ppdisp) ) - -#define _FramerControl_CreateNew(This,ProgIdOrTemplate) \ - ( (This)->lpVtbl -> CreateNew(This,ProgIdOrTemplate) ) - -#define _FramerControl_Open(This,Document,ReadOnly,ProgId,WebUsername,WebPassword) \ - ( (This)->lpVtbl -> Open(This,Document,ReadOnly,ProgId,WebUsername,WebPassword) ) - -#define _FramerControl_Save(This,SaveAsDocument,OverwriteExisting,WebUsername,WebPassword) \ - ( (This)->lpVtbl -> Save(This,SaveAsDocument,OverwriteExisting,WebUsername,WebPassword) ) - -#define _FramerControl__PrintOutOld(This,PromptToSelectPrinter) \ - ( (This)->lpVtbl -> _PrintOutOld(This,PromptToSelectPrinter) ) - -#define _FramerControl_Close(This) \ - ( (This)->lpVtbl -> Close(This) ) - -#define _FramerControl_put_Caption(This,bstr) \ - ( (This)->lpVtbl -> put_Caption(This,bstr) ) - -#define _FramerControl_get_Caption(This,pbstr) \ - ( (This)->lpVtbl -> get_Caption(This,pbstr) ) - -#define _FramerControl_put_Titlebar(This,vbool) \ - ( (This)->lpVtbl -> put_Titlebar(This,vbool) ) - -#define _FramerControl_get_Titlebar(This,pbool) \ - ( (This)->lpVtbl -> get_Titlebar(This,pbool) ) - -#define _FramerControl_put_Toolbars(This,vbool) \ - ( (This)->lpVtbl -> put_Toolbars(This,vbool) ) - -#define _FramerControl_get_Toolbars(This,pbool) \ - ( (This)->lpVtbl -> get_Toolbars(This,pbool) ) - -#define _FramerControl_put_ModalState(This,vbool) \ - ( (This)->lpVtbl -> put_ModalState(This,vbool) ) - -#define _FramerControl_get_ModalState(This,pbool) \ - ( (This)->lpVtbl -> get_ModalState(This,pbool) ) - -#define _FramerControl_ShowDialog(This,DlgType) \ - ( (This)->lpVtbl -> ShowDialog(This,DlgType) ) - -#define _FramerControl_put_EnableFileCommand(This,Item,vbool) \ - ( (This)->lpVtbl -> put_EnableFileCommand(This,Item,vbool) ) - -#define _FramerControl_get_EnableFileCommand(This,Item,pbool) \ - ( (This)->lpVtbl -> get_EnableFileCommand(This,Item,pbool) ) - -#define _FramerControl_put_BorderStyle(This,style) \ - ( (This)->lpVtbl -> put_BorderStyle(This,style) ) - -#define _FramerControl_get_BorderStyle(This,pstyle) \ - ( (This)->lpVtbl -> get_BorderStyle(This,pstyle) ) - -#define _FramerControl_put_BorderColor(This,clr) \ - ( (This)->lpVtbl -> put_BorderColor(This,clr) ) - -#define _FramerControl_get_BorderColor(This,pclr) \ - ( (This)->lpVtbl -> get_BorderColor(This,pclr) ) - -#define _FramerControl_put_BackColor(This,clr) \ - ( (This)->lpVtbl -> put_BackColor(This,clr) ) - -#define _FramerControl_get_BackColor(This,pclr) \ - ( (This)->lpVtbl -> get_BackColor(This,pclr) ) - -#define _FramerControl_put_ForeColor(This,clr) \ - ( (This)->lpVtbl -> put_ForeColor(This,clr) ) - -#define _FramerControl_get_ForeColor(This,pclr) \ - ( (This)->lpVtbl -> get_ForeColor(This,pclr) ) - -#define _FramerControl_put_TitlebarColor(This,clr) \ - ( (This)->lpVtbl -> put_TitlebarColor(This,clr) ) - -#define _FramerControl_get_TitlebarColor(This,pclr) \ - ( (This)->lpVtbl -> get_TitlebarColor(This,pclr) ) - -#define _FramerControl_put_TitlebarTextColor(This,clr) \ - ( (This)->lpVtbl -> put_TitlebarTextColor(This,clr) ) - -#define _FramerControl_get_TitlebarTextColor(This,pclr) \ - ( (This)->lpVtbl -> get_TitlebarTextColor(This,pclr) ) - -#define _FramerControl_ExecOleCommand(This,OLECMDID,Options,vInParam,vInOutParam) \ - ( (This)->lpVtbl -> ExecOleCommand(This,OLECMDID,Options,vInParam,vInOutParam) ) - -#define _FramerControl_put_Menubar(This,vbool) \ - ( (This)->lpVtbl -> put_Menubar(This,vbool) ) - -#define _FramerControl_get_Menubar(This,pbool) \ - ( (This)->lpVtbl -> get_Menubar(This,pbool) ) - -#define _FramerControl_put_HostName(This,bstr) \ - ( (This)->lpVtbl -> put_HostName(This,bstr) ) - -#define _FramerControl_get_HostName(This,pbstr) \ - ( (This)->lpVtbl -> get_HostName(This,pbstr) ) - -#define _FramerControl_get_DocumentFullName(This,pbstr) \ - ( (This)->lpVtbl -> get_DocumentFullName(This,pbstr) ) - -#define _FramerControl_PrintOut(This,PromptUser,PrinterName,Copies,FromPage,ToPage,OutputFile) \ - ( (This)->lpVtbl -> PrintOut(This,PromptUser,PrinterName,Copies,FromPage,ToPage,OutputFile) ) - -#define _FramerControl_PrintPreview(This) \ - ( (This)->lpVtbl -> PrintPreview(This) ) - -#define _FramerControl_PrintPreviewExit(This) \ - ( (This)->lpVtbl -> PrintPreviewExit(This) ) - -#define _FramerControl_get_IsReadOnly(This,pbool) \ - ( (This)->lpVtbl -> get_IsReadOnly(This,pbool) ) - -#define _FramerControl_get_IsDirty(This,pbool) \ - ( (This)->lpVtbl -> get_IsDirty(This,pbool) ) - -#define _FramerControl_put_LockServer(This,vbool) \ - ( (This)->lpVtbl -> put_LockServer(This,vbool) ) - -#define _FramerControl_get_LockServer(This,pvbool) \ - ( (This)->lpVtbl -> get_LockServer(This,pvbool) ) - -#define _FramerControl_GetDataObjectContent(This,ClipFormatNameOrNumber,pvResults) \ - ( (This)->lpVtbl -> GetDataObjectContent(This,ClipFormatNameOrNumber,pvResults) ) - -#define _FramerControl_SetDataObjectContent(This,ClipFormatNameOrNumber,DataByteArray) \ - ( (This)->lpVtbl -> SetDataObjectContent(This,ClipFormatNameOrNumber,DataByteArray) ) - -#define _FramerControl_put_ActivationPolicy(This,lPolicy) \ - ( (This)->lpVtbl -> put_ActivationPolicy(This,lPolicy) ) - -#define _FramerControl_get_ActivationPolicy(This,plPolicy) \ - ( (This)->lpVtbl -> get_ActivationPolicy(This,plPolicy) ) - -#define _FramerControl_put_FrameHookPolicy(This,lPolicy) \ - ( (This)->lpVtbl -> put_FrameHookPolicy(This,lPolicy) ) - -#define _FramerControl_get_FrameHookPolicy(This,plPolicy) \ - ( (This)->lpVtbl -> get_FrameHookPolicy(This,plPolicy) ) - -#define _FramerControl_put_MenuAccelerators(This,vbool) \ - ( (This)->lpVtbl -> put_MenuAccelerators(This,vbool) ) - -#define _FramerControl_get_MenuAccelerators(This,pvbool) \ - ( (This)->lpVtbl -> get_MenuAccelerators(This,pvbool) ) - -#define _FramerControl_put_EventsEnabled(This,vbool) \ - ( (This)->lpVtbl -> put_EventsEnabled(This,vbool) ) - -#define _FramerControl_get_EventsEnabled(This,pvbool) \ - ( (This)->lpVtbl -> get_EventsEnabled(This,pvbool) ) - -#define _FramerControl_get_DocumentName(This,pbstr) \ - ( (This)->lpVtbl -> get_DocumentName(This,pbstr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - - - -#endif /* ___FramerControl_INTERFACE_DEFINED__ */ - - -#ifndef ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ -#define ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ - -/* dispinterface _DFramerCtlEvents */ -/* [hidden][uuid] */ - - -EXTERN_C const IID DIID__DFramerCtlEvents; - -#if defined(__cplusplus) && !defined(CINTERFACE) - - MIDL_INTERFACE("00460185-9E5E-11d5-B7C8-B8269041DD57") - _DFramerCtlEvents : public IDispatch - { - }; - -#else /* C style interface */ - - typedef struct _DFramerCtlEventsVtbl - { - BEGIN_INTERFACE - - HRESULT ( STDMETHODCALLTYPE *QueryInterface )( - _DFramerCtlEvents * This, - /* [in] */ REFIID riid, - /* [annotation][iid_is][out] */ - _COM_Outptr_ void **ppvObject); - - ULONG ( STDMETHODCALLTYPE *AddRef )( - _DFramerCtlEvents * This); - - ULONG ( STDMETHODCALLTYPE *Release )( - _DFramerCtlEvents * This); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfoCount )( - _DFramerCtlEvents * This, - /* [out] */ UINT *pctinfo); - - HRESULT ( STDMETHODCALLTYPE *GetTypeInfo )( - _DFramerCtlEvents * This, - /* [in] */ UINT iTInfo, - /* [in] */ LCID lcid, - /* [out] */ ITypeInfo **ppTInfo); - - HRESULT ( STDMETHODCALLTYPE *GetIDsOfNames )( - _DFramerCtlEvents * This, - /* [in] */ REFIID riid, - /* [size_is][in] */ LPOLESTR *rgszNames, - /* [range][in] */ UINT cNames, - /* [in] */ LCID lcid, - /* [size_is][out] */ DISPID *rgDispId); - - /* [local] */ HRESULT ( STDMETHODCALLTYPE *Invoke )( - _DFramerCtlEvents * This, - /* [annotation][in] */ - _In_ DISPID dispIdMember, - /* [annotation][in] */ - _In_ REFIID riid, - /* [annotation][in] */ - _In_ LCID lcid, - /* [annotation][in] */ - _In_ WORD wFlags, - /* [annotation][out][in] */ - _In_ DISPPARAMS *pDispParams, - /* [annotation][out] */ - _Out_opt_ VARIANT *pVarResult, - /* [annotation][out] */ - _Out_opt_ EXCEPINFO *pExcepInfo, - /* [annotation][out] */ - _Out_opt_ UINT *puArgErr); - - END_INTERFACE - } _DFramerCtlEventsVtbl; - - interface _DFramerCtlEvents - { - CONST_VTBL struct _DFramerCtlEventsVtbl *lpVtbl; - }; - - - -#ifdef COBJMACROS - - -#define _DFramerCtlEvents_QueryInterface(This,riid,ppvObject) \ - ( (This)->lpVtbl -> QueryInterface(This,riid,ppvObject) ) - -#define _DFramerCtlEvents_AddRef(This) \ - ( (This)->lpVtbl -> AddRef(This) ) - -#define _DFramerCtlEvents_Release(This) \ - ( (This)->lpVtbl -> Release(This) ) - - -#define _DFramerCtlEvents_GetTypeInfoCount(This,pctinfo) \ - ( (This)->lpVtbl -> GetTypeInfoCount(This,pctinfo) ) - -#define _DFramerCtlEvents_GetTypeInfo(This,iTInfo,lcid,ppTInfo) \ - ( (This)->lpVtbl -> GetTypeInfo(This,iTInfo,lcid,ppTInfo) ) - -#define _DFramerCtlEvents_GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) \ - ( (This)->lpVtbl -> GetIDsOfNames(This,riid,rgszNames,cNames,lcid,rgDispId) ) - -#define _DFramerCtlEvents_Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) \ - ( (This)->lpVtbl -> Invoke(This,dispIdMember,riid,lcid,wFlags,pDispParams,pVarResult,pExcepInfo,puArgErr) ) - -#endif /* COBJMACROS */ - - -#endif /* C style interface */ - - -#endif /* ___DFramerCtlEvents_DISPINTERFACE_DEFINED__ */ - - -EXTERN_C const CLSID CLSID_FramerControl; - -#ifdef __cplusplus - -class DECLSPEC_UUID("00460182-9E5E-11d5-B7C8-B8269041DD57") -FramerControl; -#endif -#endif /* __DSOFramer_LIBRARY_DEFINED__ */ - -/* Additional Prototypes for ALL interfaces */ - -/* end of Additional Prototypes */ - -#ifdef __cplusplus -} -#endif - -#endif - - diff --git a/PROMS/DSOFramer/Source2005/Res/Thumbs.db b/PROMS/DSOFramer/Source2005/Res/Thumbs.db deleted file mode 100644 index 06ff02e7..00000000 Binary files a/PROMS/DSOFramer/Source2005/Res/Thumbs.db and /dev/null differ diff --git a/PROMS/DSOFramer/Source2005/Res/dso.ico b/PROMS/DSOFramer/Source2005/Res/dso.ico deleted file mode 100644 index 4dc671e5..00000000 Binary files a/PROMS/DSOFramer/Source2005/Res/dso.ico and /dev/null differ diff --git a/PROMS/DSOFramer/Source2005/Res/dsoframer.rc b/PROMS/DSOFramer/Source2005/Res/dsoframer.rc deleted file mode 100644 index ef7828e4..00000000 --- a/PROMS/DSOFramer/Source2005/Res/dsoframer.rc +++ /dev/null @@ -1,154 +0,0 @@ -//Microsoft Developer Studio generated resource script. -// -#include "resource.h" -#include "..\version.h" - -#define APSTUDIO_READONLY_SYMBOLS -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 2 resource. -// -#include "afxres.h" - -///////////////////////////////////////////////////////////////////////////// -#undef APSTUDIO_READONLY_SYMBOLS - -///////////////////////////////////////////////////////////////////////////// -// English (U.S.) resources - -#if !defined(AFX_RESOURCE_DLL) || defined(AFX_TARG_ENU) -#ifdef _WIN32 -LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US -#pragma code_page(1252) -#endif //_WIN32 - -#ifdef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// TEXTINCLUDE -// - -1 TEXTINCLUDE DISCARDABLE -BEGIN - "resource.h\0" -END - -2 TEXTINCLUDE DISCARDABLE -BEGIN - "#include ""afxres.h""\r\n" - "\0" -END - -3 TEXTINCLUDE DISCARDABLE -BEGIN - "\r\n" - "\0" -END - -#endif // APSTUDIO_INVOKED - - -///////////////////////////////////////////////////////////////////////////// -// -// TYPELIB -// -#ifdef _DEBUG -IDR_TYPELIB TYPELIB DISCARDABLE "..\\Debug\\dsoframer.tlb" -#else -IDR_TYPELIB TYPELIB DISCARDABLE "..\\Release\\dsoframer.tlb" -#endif // _DEBUG - -#ifndef _MAC -///////////////////////////////////////////////////////////////////////////// -// -// Version -// - -VS_VERSION_INFO VERSIONINFO - FILEVERSION DSOFRAMERCTL_VERSION_MAJOR,DSOFRAMERCTL_VERSION_MINOR,DSOFRAMERCTL_VERSION_BUILD,0 - PRODUCTVERSION DSOFRAMERCTL_VERSION_MAJOR,DSOFRAMERCTL_VERSION_MINOR,0,0 - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS 0x1L -#else - FILEFLAGS 0x0L -#endif - FILEOS 0x40004L - FILETYPE 0x2L - FILESUBTYPE 0x0L -BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904b0" - BEGIN - VALUE "Comments", "UNSUPPORTED BY MICROSOFT\0" - VALUE "CompanyName", "Your Company\0" - VALUE "FileDescription", "Your Company's Office Framer Control Sample\0" - VALUE "FileVersion", DSOFRAMERCTL_VERSIONSTRFULL "\0" - VALUE "OriginalFilename", "dsoframer.ocx\0" - VALUE "ProductName", "DSOFRAMER\0" - VALUE "ProductVersion", DSOFRAMERCTL_VERSIONSTR "\0" - END - END - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1200 - END -END - -#endif // !_MAC - - -///////////////////////////////////////////////////////////////////////////// -// -// Bitmap -// - -IDB_TOOLBOX BITMAP DISCARDABLE "toolbox.bmp" - -///////////////////////////////////////////////////////////////////////////// -// -// Icon -// - -// Icon with lowest ID value placed first to ensure application icon -// remains consistent on all systems. -IDI_SMALLOFFDOC ICON DISCARDABLE "dso.ico" - -///////////////////////////////////////////////////////////////////////////// -// -// String Table -// - -STRINGTABLE DISCARDABLE -BEGIN - RES_DSO_E_UNKNOWN "An unknown problem has occurred." - RES_DSO_E_INVALIDPROGID "The ProgID/Template could not be found or is not associated with a COM server." - RES_DSO_E_INVALIDSERVER "The associated COM server does not support ActiveX Document embedding." - RES_DSO_E_COMMANDNOTSUPPORTED - "The command is not supported by the document server." - RES_DSO_E_DOCUMENTREADONLY - "Unable to perform action because document was opened in read-only mode." - RES_DSO_E_REQUIRESMSDAIPP - "The Microsoft Internet Publishing Provider is not installed, so the URL document cannot be open for write access." - RES_DSO_E_DOCUMENTNOTOPEN "No document is open to perform the operation requested." - RES_DSO_E_INMODALSTATE "Cannot access document when in modal condition." - RES_DSO_E_NOTBEENSAVED "Cannot Save file without a file path." - RES_DSO_E_FRAMEHOOKFAILED "Unable to set frame hook for the parent window." -END - -#endif // English (U.S.) resources -///////////////////////////////////////////////////////////////////////////// - - - -#ifndef APSTUDIO_INVOKED -///////////////////////////////////////////////////////////////////////////// -// -// Generated from the TEXTINCLUDE 3 resource. -// - - -///////////////////////////////////////////////////////////////////////////// -#endif // not APSTUDIO_INVOKED - diff --git a/PROMS/DSOFramer/Source2005/Res/resource.h b/PROMS/DSOFramer/Source2005/Res/resource.h deleted file mode 100644 index b9060358..00000000 --- a/PROMS/DSOFramer/Source2005/Res/resource.h +++ /dev/null @@ -1,39 +0,0 @@ -//{{NO_DEPENDENCIES}} -// Microsoft Developer Studio generated include file. -// Used by dsoframer.rc -// -#define IDR_TYPELIB 1 -#define RES_DSO_E_UNKNOWN 1 -#define RES_DSO_E_INVALIDPROGID 2 -#define RES_DSO_E_INVALIDSERVER 3 -#define RES_DSO_E_COMMANDNOTSUPPORTED 4 -#define RES_DSO_E_DOCUMENTREADONLY 5 -#define RES_DSO_E_REQUIRESMSDAIPP 6 -#define RES_DSO_E_DOCUMENTNOTOPEN 7 -#define RES_DSO_E_INMODALSTATE 8 -#define RES_DSO_E_NOTBEENSAVED 9 -#define RES_DSO_E_FRAMEHOOKFAILED 10 -#define IDB_TOOLBOX 102 -#define IDB_TOOLBAR 103 -#define IDR_BINDMENU 104 -#define IDI_SMALLOFFDOC 105 -#define MNU_NEW 40001 -#define MNU_OPEN 40002 -#define MNU_CLOSE 40003 -#define MNU_SAVE 40004 -#define MNU_SAVEAS 40005 -#define MNU_PGSETUP 40006 -#define MNU_PRINT 40007 -#define MNU_PROPS 40008 -#define MNU_PRINTPV 40009 - -// Next default values for new objects -// -#ifdef APSTUDIO_INVOKED -#ifndef APSTUDIO_READONLY_SYMBOLS -#define _APS_NEXT_RESOURCE_VALUE 107 -#define _APS_NEXT_COMMAND_VALUE 40011 -#define _APS_NEXT_CONTROL_VALUE 1000 -#define _APS_NEXT_SYMED_VALUE 101 -#endif -#endif diff --git a/PROMS/DSOFramer/Source2005/Res/toolbox.bmp b/PROMS/DSOFramer/Source2005/Res/toolbox.bmp deleted file mode 100644 index e0e7d4d3..00000000 Binary files a/PROMS/DSOFramer/Source2005/Res/toolbox.bmp and /dev/null differ diff --git a/PROMS/DSOFramer/Source2005/UpgradeLog.XML b/PROMS/DSOFramer/Source2005/UpgradeLog.XML deleted file mode 100644 index 126c1c78..00000000 --- a/PROMS/DSOFramer/Source2005/UpgradeLog.XML +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.css b/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.css deleted file mode 100644 index fae98af0..00000000 --- a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.css +++ /dev/null @@ -1,207 +0,0 @@ -BODY -{ - BACKGROUND-COLOR: white; - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 100%; - MARGIN-LEFT: 0px; - MARGIN-TOP: 0px -} -P -{ - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 70%; - LINE-HEIGHT: 12pt; - MARGIN-BOTTOM: 0px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 10px -} -.note -{ - BACKGROUND-COLOR: #ffffff; - COLOR: #336699; - FONT-FAMILY: "Verdana", sans-serif; - FONT-SIZE: 100%; - MARGIN-BOTTOM: 0px; - MARGIN-LEFT: 0px; - MARGIN-TOP: 0px; - PADDING-RIGHT: 10px -} -.infotable -{ - BACKGROUND-COLOR: #f0f0e0; - BORDER-BOTTOM: #ffffff 0px solid; - BORDER-COLLAPSE: collapse; - BORDER-LEFT: #ffffff 0px solid; - BORDER-RIGHT: #ffffff 0px solid; - BORDER-TOP: #ffffff 0px solid; - FONT-SIZE: 70%; - MARGIN-LEFT: 10px -} -.issuetable -{ - BACKGROUND-COLOR: #ffffe8; - BORDER-COLLAPSE: collapse; - COLOR: #000000; - FONT-SIZE: 100%; - MARGIN-BOTTOM: 10px; - MARGIN-LEFT: 13px; - MARGIN-TOP: 0px -} -.issuetitle -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px; - COLOR: #003366; - FONT-WEIGHT: normal -} -.header -{ - BACKGROUND-COLOR: #cecf9c; - BORDER-BOTTOM: #ffffff 1px solid; - BORDER-LEFT: #ffffff 1px solid; - BORDER-RIGHT: #ffffff 1px solid; - BORDER-TOP: #ffffff 1px solid; - COLOR: #000000; - FONT-WEIGHT: bold -} -.issuehdr -{ - BACKGROUND-COLOR: #E0EBF5; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px solid; - COLOR: #000000; - FONT-WEIGHT: normal -} -.issuenone -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: 0px; - BORDER-LEFT: 0px; - BORDER-RIGHT: 0px; - BORDER-TOP: 0px; - COLOR: #000000; - FONT-WEIGHT: normal -} -.content -{ - BACKGROUND-COLOR: #e7e7ce; - BORDER-BOTTOM: #ffffff 1px solid; - BORDER-LEFT: #ffffff 1px solid; - BORDER-RIGHT: #ffffff 1px solid; - BORDER-TOP: #ffffff 1px solid; - PADDING-LEFT: 3px -} -.issuecontent -{ - BACKGROUND-COLOR: #ffffff; - BORDER-BOTTOM: #dcdcdc 1px solid; - BORDER-TOP: #dcdcdc 1px solid; - PADDING-LEFT: 3px -} -A:link -{ - COLOR: #cc6633; - TEXT-DECORATION: underline -} -A:visited -{ - COLOR: #cc6633; -} -A:active -{ - COLOR: #cc6633; -} -A:hover -{ - COLOR: #cc3300; - TEXT-DECORATION: underline -} -H1 -{ - BACKGROUND-COLOR: #003366; - BORDER-BOTTOM: #336699 6px solid; - COLOR: #ffffff; - FONT-SIZE: 130%; - FONT-WEIGHT: normal; - MARGIN: 0em 0em 0em -20px; - PADDING-BOTTOM: 8px; - PADDING-LEFT: 30px; - PADDING-TOP: 16px -} -H2 -{ - COLOR: #000000; - FONT-SIZE: 80%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: 3px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 20px; - PADDING-LEFT: 0px -} -H3 -{ - COLOR: #000000; - FONT-SIZE: 80%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: -5px; - MARGIN-LEFT: 10px; - MARGIN-TOP: 20px -} -H4 -{ - COLOR: #000000; - FONT-SIZE: 70%; - FONT-WEIGHT: bold; - MARGIN-BOTTOM: 0px; - MARGIN-TOP: 15px; - PADDING-BOTTOM: 0px -} -UL -{ - COLOR: #000000; - FONT-SIZE: 70%; - LIST-STYLE: square; - MARGIN-BOTTOM: 0pt; - MARGIN-TOP: 0pt -} -OL -{ - COLOR: #000000; - FONT-SIZE: 70%; - LIST-STYLE: square; - MARGIN-BOTTOM: 0pt; - MARGIN-TOP: 0pt -} -LI -{ - LIST-STYLE: square; - MARGIN-LEFT: 0px -} -.expandable -{ - CURSOR: hand -} -.expanded -{ - color: black -} -.collapsed -{ - DISPLAY: none -} -.foot -{ -BACKGROUND-COLOR: #ffffff; -BORDER-BOTTOM: #cecf9c 1px solid; -BORDER-TOP: #cecf9c 2px solid -} -.settings -{ -MARGIN-LEFT: 25PX; -} -.help -{ -TEXT-ALIGN: right; -margin-right: 10px; -} diff --git a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.xslt b/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.xslt deleted file mode 100644 index 83f4304a..00000000 --- a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport.xslt +++ /dev/null @@ -1,232 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

    - Solution: - Project: - - - - - - - -

    - -
  • - - - - - - - - - - - - - - - - - - - - - - src - - - - - - - - - - - - -
    FilenameStatusErrorsWarnings
    - javascript:document.images[''].click()src - - - - Converted - - - - Converted - -
    - - files - - - 1 file - - - Converted:
    - Not converted -
    - - - - - - : - - - - - - - - - Conversion Report - <xsl:if test="Properties/Property[@Name='LogNumber']"> - <xsl:value-of select="Properties/Property[@Name='LogNumber']/@Value"/> - </xsl:if> - - - - -

    Conversion Report -

    - -

    - Time of Conversion:
    -

    - - - - - - - - - - - - - - - - - - - - - - - - -

    - - - - - -
    - Conversion Settings -

    - - -
    - diff --git a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Minus.gif b/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Minus.gif deleted file mode 100644 index 17751cb2..00000000 Binary files a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Minus.gif and /dev/null differ diff --git a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Plus.gif b/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Plus.gif deleted file mode 100644 index f6009ca3..00000000 Binary files a/PROMS/DSOFramer/Source2005/_UpgradeReport_Files/UpgradeReport_Plus.gif and /dev/null differ diff --git a/PROMS/DSOFramer/Source2005/classfactory.cpp b/PROMS/DSOFramer/Source2005/classfactory.cpp deleted file mode 100644 index ad99d1a0..00000000 --- a/PROMS/DSOFramer/Source2005/classfactory.cpp +++ /dev/null @@ -1,118 +0,0 @@ -/*************************************************************************** - * CLASSFACTORY.CPP - * - * CDsoFramerClassFactory: The Class Factroy for the control. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory - IClassFactory Implementation -// -// This is a fairly simple CF. We don't provide support for licensing -// in this sample because it is just a sample. If licensing is important -// you should change the class to support IClassFactory2. -// - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::QueryInterface -// -STDMETHODIMP CDsoFramerClassFactory::QueryInterface(REFIID riid, void** ppv) -{ - ODS("CDsoFramerClassFactory::QueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - if ((IID_IUnknown == riid) || (IID_IClassFactory == riid)) - { - SAFE_SET_INTERFACE(*ppv, (IClassFactory*)this); - return S_OK; - } - - *ppv = NULL; - return E_NOINTERFACE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::AddRef -// -STDMETHODIMP_(ULONG) CDsoFramerClassFactory::AddRef(void) -{ - TRACE1("CDsoFramerClassFactory::AddRef - %d\n", m_cRef+1); - return ++m_cRef; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::Release -// -STDMETHODIMP_(ULONG) CDsoFramerClassFactory::Release(void) -{ - TRACE1("CDsoFramerClassFactory::Release - %d\n", m_cRef-1); - if (0 != --m_cRef) return m_cRef; - - ODS("CDsoFramerClassFactory delete\n"); - InterlockedDecrement((LPLONG)&v_cLocks); - delete this; - return 0; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::CreateInstance -// -// Creates an instance of our control. -// -STDMETHODIMP CDsoFramerClassFactory::CreateInstance(LPUNKNOWN punk, REFIID riid, void** ppv) -{ - HRESULT hr; - CDsoFramerControl* pocx; - IUnknown* pnkInternal; - - ODS("CDsoFramerClassFactory::CreateInstance\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); *ppv = NULL; - - // Aggregation requires you ask for (internal) IUnknown - if ((punk) && (riid != IID_IUnknown)) - return E_INVALIDARG; - - // Create a new instance of the control... - pocx = new CDsoFramerControl(punk); - CHECK_NULL_RETURN(pocx, E_OUTOFMEMORY); - - // Grab the internal IUnknown to use for the QI (you don't agg in CF:CreateInstance)... - pnkInternal = (IUnknown*)&(pocx->m_xInternalUnknown); - - // Initialize the control (windows, etc.) and QI for requested interface... - if (SUCCEEDED(hr = pocx->InitializeNewInstance()) && - SUCCEEDED(hr = pnkInternal->QueryInterface(riid, ppv))) - { - InterlockedIncrement((LPLONG)&v_cLocks); // on success, bump up the lock count... - } - else {delete pocx; *ppv = NULL;} // else cleanup the object - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerClassFactory::LockServer -// -// Keeps the server loaded in memory. -// -STDMETHODIMP CDsoFramerClassFactory::LockServer(BOOL fLock) -{ - TRACE1("CDsoFramerClassFactory::LockServer - %d\n", fLock); - if (fLock) InterlockedIncrement((LPLONG)&v_cLocks); - else InterlockedDecrement((LPLONG)&v_cLocks); - return S_OK; -} - diff --git a/PROMS/DSOFramer/Source2005/dsofauto.cpp b/PROMS/DSOFramer/Source2005/dsofauto.cpp deleted file mode 100644 index a7268452..00000000 --- a/PROMS/DSOFramer/Source2005/dsofauto.cpp +++ /dev/null @@ -1,1321 +0,0 @@ -/*************************************************************************** - * DSOFAUTO.CPP - * - * CDsoFramerControl: Automation interface for Binder Control - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - _FramerControl Implementation -// - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Activate -// -// Activate the current embedded document (i.e, forward focus). -// -STDMETHODIMP CDsoFramerControl::Activate() -{ - HRESULT hr; - ODS("CDsoFramerControl::Activate\n"); - - if (m_fInControlActivate) - return S_FALSE; - - // Don't allow recursion of this function or we could get stuck in - // loop trying to constantly grab focus. - m_fInControlActivate = TRUE; - - // All we need to do is grab focus. This will tell the host to - // UI activate our OCX, set focus to our window, and set this control - // as the active component with the hook manager. - hr = UIActivate(TRUE); - - // Invalidate windows to update painting... - if (SUCCEEDED(hr)) - InvalidateAllChildWindows(m_hwnd); - - m_fInControlActivate = FALSE; - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_ActiveDocument -// -// Returns the automation object currently embedded. -// -// Since we only support a single instance at a time, it might have been -// better to call this property Object or simply Document, but VB reserves -// the first name for use by the control extender, and IE reserves the second -// in its extender, so we decided on the "Office sounding" name. ;-) -// -STDMETHODIMP CDsoFramerControl::get_ActiveDocument(IDispatch** ppdisp) -{ - HRESULT hr = DSO_E_DOCUMENTNOTOPEN; - IUnknown* punk; - - ODS("CDsoFramerControl::get_ActiveDocument\n"); - CHECK_NULL_RETURN(ppdisp, E_POINTER); *ppdisp = NULL; - - // Get IDispatch from open document object. - if ((m_pDocObjFrame) && (punk = (IUnknown*)(m_pDocObjFrame->GetActiveObject()))) - { - // Cannot access object if in print preview.. - if (m_pDocObjFrame->InPrintPreview()) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Ask ip active object for IDispatch interface. If it is not supported on - // active object interface, try to get it from OLE object iface... - if (FAILED(hr = punk->QueryInterface(IID_IDispatch, (void**)ppdisp)) && - (punk = (IUnknown*)(m_pDocObjFrame->GetOleObject()))) - { - hr = punk->QueryInterface(IID_IDispatch, (void**)ppdisp); - } - ASSERT(SUCCEEDED(hr)); - } - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ExecOleCommand -// -// Allows caller to pass commands to embedded object via IOleCommandTarget and -// gives access to a few extra commands to extend functionality for certain object -// types (not all objects may support all commands). -// -STDMETHODIMP CDsoFramerControl::ExecOleCommand(LONG OLECMDID, VARIANT Options, VARIANT* vInParam, VARIANT* vInOutParam) -{ - HRESULT hr = E_INVALIDARG; - DWORD dwOptions = (DWORD)LONG_FROM_VARIANT(Options, 0); - - TRACE1("CDsoFramerControl::DoOleCommand(%d)\n", OLECMDID); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Handle some custom commands that don't need doc open to call... - switch (OLECMDID) - { - case OLECMDID_RESETFRAMEHOOK: - { - LONG lhwnd = (DWORD)LONG_FROM_VARIANT(*vInParam, 0); - return ResetFrameHook((HWND)lhwnd); - } - case OLECMDID_LOCKSERVER: - if (BOOL_FROM_VARIANT(Options, TRUE) == FALSE) - return put_LockServer(VARIANT_FALSE); - } - - // The rest require a doc object loaded first... - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - switch (OLECMDID) - { - case OLECMDID_GETDATAFORMAT: - // If requesting special data get... - hr = m_pDocObjFrame->HrGetDataFromObject(vInParam, vInOutParam); - break; - - case OLECMDID_SETDATAFORMAT: - // If requesting special data set... - hr = m_pDocObjFrame->HrSetDataInObject(vInParam, vInOutParam, BOOL_FROM_VARIANT(Options, TRUE)); - break; - - case OLECMDID_LOCKSERVER: // optional lock on server... - if (BOOL_FROM_VARIANT(Options, FALSE)) - hr = put_LockServer(VARIANT_TRUE); - break; - - case OLECMDID_NOTIFYACTIVE: - if (vInParam) // Force notify server that it should be active... - { - m_pDocObjFrame->OnNotifyAppActivate(BOOL_FROM_VARIANT(*vInParam, FALSE), 0); - hr = S_OK; - } - break; - - default: - // Do normal IOleCommandTarget call on object... - - // If options was not passed as long, but as bool, we expect the caller meant to - // specify if user should be prompted or not, so update the options to allow the - // assuption to still work as expected (this is for compatibility)... - if ((dwOptions == 0) && ((DsoPVarFromPVarRef(&Options)->vt & 0xFF) == VT_BOOL)) - dwOptions = (BOOL_FROM_VARIANT(Options, FALSE) ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DODEFAULT); - - // Ask object server to do the command... - hr = m_pDocObjFrame->DoOleCommand(OLECMDID, dwOptions, vInParam, vInOutParam); - } - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::CreateNew -// -// Creates a new document object based on the passed in ProgID or Template. -// ProgID should map to the "document" object, such as "Word.Document", -// "Excel.Sheet", "PowerPoint.Slide", etc. A Template name should be full -// path to the file, whether local, UNC, or HTTP path. No relative paths. -// -STDMETHODIMP CDsoFramerControl::CreateNew(BSTR ProgIdOrTemplate) -{ - HRESULT hr; - CLSID clsid; - HCURSOR hCur; - IStorage *pstgTemplate = NULL; - LPWSTR pwszTempFile = NULL; - - TRACE1("CDsoFramerControl::CreateNew(%S)\n", ProgIdOrTemplate); - - // Check the string to make sure a valid item is passed... - if (!(ProgIdOrTemplate) || (SysStringLen(ProgIdOrTemplate) < 4)) - return E_INVALIDARG; - -// Cannot create object if we are not activate yet, or if in modal condition... - if (!(m_fInPlaceActive) || (m_fModalState)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Make sure any open document is closed first... - if ((m_pDocObjFrame) && FAILED(hr = Close())) - return hr; - - // Make sure we are the active component for this process... - if (FAILED(hr = Activate())) return hr; - - // Let's make a doc frame for ourselves... - m_pDocObjFrame = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite); - if (!(m_pDocObjFrame)) return E_OUTOFMEMORY; - - // Start a wait operation to notify user... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - m_fInDocumentLoad = TRUE; - - // If the string passed looks like a URL, it is a web template. We need - // to download it to temp location and use for new object... - if (LooksLikeHTTP(ProgIdOrTemplate) && - GetTempPathForURLDownload(ProgIdOrTemplate, &pwszTempFile)) - { - // Ask URLMON to download the file... - if (FAILED(hr = URLDownloadFile(NULL, ProgIdOrTemplate, pwszTempFile))) - { - DsoMemFree(pwszTempFile); pwszTempFile = NULL; - goto error_out; - } - - // If that worked, switch out the name of the template to local file... - ProgIdOrTemplate = SysAllocString(pwszTempFile); - } - - // If the string is path to file, then it must be a template. It must be - // a storage file with CLSID associated with it, like any Office templates - // (.dot,.xlt,.pot,.vst,etc.), and path must be fully qualified... - if (LooksLikeUNC(ProgIdOrTemplate) || LooksLikeLocalFile(ProgIdOrTemplate)) - { - if ((hr = StgIsStorageFile(ProgIdOrTemplate)) != S_OK) - { - hr = (FAILED(hr) ? hr : STG_E_NOTFILEBASEDSTORAGE); - goto error_out; - } - - // Open the template for read access only... - hr = StgOpenStorage(ProgIdOrTemplate, NULL, - (STGM_READ | STGM_SHARE_DENY_WRITE | STGM_TRANSACTED), - NULL, 0, &pstgTemplate); - GOTO_ON_FAILURE(hr, error_out); - - // We get the CLSID from the template... - hr = ReadClassStg(pstgTemplate, &clsid); - if (FAILED(hr) || (clsid == GUID_NULL)) - { - hr = (FAILED(hr) ? hr : STG_E_OLDFORMAT); - goto error_out; - } - // Otherwise the string passed is assumed a ProgID... - } - else if (FAILED(CLSIDFromProgID(ProgIdOrTemplate, &clsid))) - { - hr = DSO_E_INVALIDPROGID; - goto error_out; - } - - // If we are here, we must have a valid CLSID for the object... - ASSERT(clsid != GUID_NULL); - - // If we had delayed the frame hook, we should set it up now... - if (!(m_pHookManager) && FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) {hr = DSO_E_FRAMEHOOKFAILED; goto error_out;} - } - - SEH_TRY - - // If we are loading a template, init the storage before the create... - if (pstgTemplate) - { - hr = m_pDocObjFrame->CreateDocObject(pstgTemplate); - } - else - { - // Create a new doc object and IP activate... - hr = m_pDocObjFrame->CreateDocObject(clsid); - } - - // If the call worked, we can activate it... - if (SUCCEEDED(hr)) - { - EnableDropFile(FALSE); - - if (!m_fShowToolbars) - m_pDocObjFrame->OnNotifyChangeToolState(FALSE); - - hr = m_pDocObjFrame->IPActivateView(); - } - - SEH_EXCEPT(hr) - - // Force a close if an error occurred... - if (FAILED(hr)) - { -error_out: - m_fFreezeEvents = TRUE; - Close(); - m_fFreezeEvents = FALSE; - hr = ProvideErrorInfo(hr); - } - else - { - - // Fire the OnDocumentOpened event... - VARIANT rgargs[2]; - rgargs[0].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[0].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = NULL; - - RaiseAutomationEvent(DSOF_DISPID_DOCOPEN, 2, rgargs); - VariantClear(&rgargs[0]); - - // Ensure we are active control... - Activate(); - - // Redraw the caption as needed... - RedrawCaption(); - } - - m_fInDocumentLoad = FALSE; - SetCursor(hCur); - - SAFE_RELEASE_INTERFACE(pstgTemplate); - - // Delete the temp file used in the URL download (if any)... - if (pwszTempFile) - { - FPerformShellOp(FO_DELETE, pwszTempFile, NULL); - DsoMemFree(pwszTempFile); - SysFreeString(ProgIdOrTemplate); - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Open -// -// Creates a document object based on a file or URL. This simulates an -// "open", but preserves the correct OLE embedding activation required -// by ActiveX Documents. Opening directly from a file is not recommended. -// We keep a lock on the original file (unless opened read-only) so the -// user cannot tell we don't have the file "open". -// -// The alternate ProgID allows us to open a file that is not associated -// with an DocObject server (like *.asp) with the server specified. Also -// the username/password are for web access (if Document is a URL). -// -STDMETHODIMP CDsoFramerControl::Open(VARIANT Document, VARIANT ReadOnly, VARIANT ProgId, VARIANT WebUsername, VARIANT WebPassword) -{ - HRESULT hr; - LPWSTR pwszDocument = LPWSTR_FROM_VARIANT(Document); - LPWSTR pwszAltProgId = LPWSTR_FROM_VARIANT(ProgId); - LPWSTR pwszUserName = LPWSTR_FROM_VARIANT(WebUsername); - LPWSTR pwszPassword = LPWSTR_FROM_VARIANT(WebPassword); - BOOL fOpenReadOnly = BOOL_FROM_VARIANT(ReadOnly, FALSE); - CLSID clsidAlt = GUID_NULL; - HCURSOR hCur; - IUnknown* punk = NULL; - - BIND_OPTS bopts = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, 0, 10000}; - - TRACE1("CDsoFramerControl::Open(%S)\n", pwszDocument); - - // We must have either a string (file path or URL) or an object to open from... - if (!(pwszDocument) || (*pwszDocument == L'\0')) - { - if (!(pwszDocument) && ((punk = PUNK_FROM_VARIANT(Document)) == NULL)) - return E_INVALIDARG; - } - - // If the user passed the ProgId, find the alternative CLSID for server... - if ((pwszAltProgId) && FAILED(CLSIDFromProgID(pwszAltProgId, &clsidAlt))) - return E_INVALIDARG; - -// Cannot create object if we are not activate yet, or if in modal condition... - if (!(m_fInPlaceActive) || (m_fModalState)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // OK. If here, all the parameters look good and it is time to try and open - // the document object. Start by closing any existing document first... - if ((m_pDocObjFrame) && FAILED(hr = Close())) - return hr; - - // Make sure we are the active component for this process... - if (FAILED(hr = Activate())) return hr; - - // Let's make a doc frame for ourselves... - if (!(m_pDocObjFrame = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite))) - return E_OUTOFMEMORY; - - // If we had delayed the frame hook, we should set it up now... - if (!(m_pHookManager) && FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) return ProvideErrorInfo(DSO_E_FRAMEHOOKFAILED); - } - - // Start a wait operation to notify user... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - m_fInDocumentLoad = TRUE; - - // Setup the bind options based on read-only flag.... - bopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | (fOpenReadOnly ? STGM_READ : STGM_READWRITE)); - - SEH_TRY - - // Normally user gives a string that is path to file... - if (pwszDocument) - { - // Check if we are opening from a URL, and load that way... - if (LooksLikeHTTP(pwszDocument)) - { - hr = m_pDocObjFrame->CreateFromURL(pwszDocument, clsidAlt, &bopts, pwszUserName, pwszPassword); - } - // Otherwise, check if it is a local file and open that... - else if (FFileExists(pwszDocument)) - { - hr = m_pDocObjFrame->CreateFromFile(pwszDocument, clsidAlt, &bopts); - } - else hr = E_INVALIDARG; - } - else if (punk) - { - // If we have an object to load from, try loading it direct... - hr = m_pDocObjFrame->CreateFromRunningObject(punk, NULL, &bopts); - } - else hr = E_UNEXPECTED; // Unhandled load type?? - - // If successful, we can activate the object... - if (SUCCEEDED(hr)) - { - EnableDropFile(FALSE); - - if (!m_fShowToolbars) - m_pDocObjFrame->OnNotifyChangeToolState(FALSE); - - hr = m_pDocObjFrame->IPActivateView(); - } - - SEH_EXCEPT(hr) - - // Force a close if an error occurred... - if (FAILED(hr)) - { - m_fFreezeEvents = TRUE; - Close(); - m_fFreezeEvents = FALSE; - hr = ProvideErrorInfo(hr); - } - else - { - // Fire the OnDocumentOpened event... - VARIANT rgargs[2]; - rgargs[0].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[0].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(pwszDocument); - - RaiseAutomationEvent(DSOF_DISPID_DOCOPEN, 2, rgargs); - VariantClear(&rgargs[1]); - VariantClear(&rgargs[0]); - - // Ensure we are active control... - Activate(); - - // Redraw the caption as needed... - RedrawCaption(); - } - - m_fInDocumentLoad = FALSE; - SetCursor(hCur); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Save -// -// Saves the current object. The optional SaveAs paramter lets the same -// function act as a SaveAs method. -// -STDMETHODIMP CDsoFramerControl::Save(VARIANT SaveAsDocument, VARIANT OverwriteExisting, VARIANT WebUsername, VARIANT WebPassword) -{ - HCURSOR hCur; - HRESULT hr = S_FALSE; - LPWSTR pwszDocument = LPWSTR_FROM_VARIANT(SaveAsDocument); - LPWSTR pwszUserName = LPWSTR_FROM_VARIANT(WebUsername); - LPWSTR pwszPassword = LPWSTR_FROM_VARIANT(WebPassword); - BOOL fOverwrite = BOOL_FROM_VARIANT(OverwriteExisting, FALSE); - - TRACE1("CDsoFramerControl::Save(%S)\n", pwszDocument); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // If user passed a value for SaveAs, it must be a valid string... - if (!(PARAM_IS_MISSING(&SaveAsDocument)) && - ((pwszDocument == NULL) || (*pwszDocument == L'\0'))) - return E_INVALIDARG; - - // Raise the BeforeDocumentSaved event to host... - if (m_dispEvents) - { - VARIANT rgargs[3]; VARIANT_BOOL vtboolCancel = VARIANT_FALSE; - rgargs[2].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[2].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(pwszDocument); - rgargs[0].vt = (VT_BOOL | VT_BYREF); rgargs[0].pboolVal = &vtboolCancel; - - RaiseAutomationEvent(DSOF_DISPID_BDOCSAVE, 3, rgargs); - VariantClear(&rgargs[2]); - VariantClear(&rgargs[1]); - - // Setting Cancel param will abort the save... - if (vtboolCancel != VARIANT_FALSE) - return E_ABORT; - } - - // Now do the save... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - SEH_TRY - - // Determine if they want to save to a URL... - if ((pwszDocument) && LooksLikeHTTP(pwszDocument)) - { - hr = m_pDocObjFrame->SaveToURL(pwszDocument, fOverwrite, pwszUserName, pwszPassword); - } - else if (pwszDocument) - { - // Save to file (local or UNC)... - hr = m_pDocObjFrame->SaveToFile(pwszDocument, fOverwrite); - } - else - { - // Save back to open location... - hr = m_pDocObjFrame->Save(); - } - - SEH_EXCEPT(hr) - - // If save was successful... - if (SUCCEEDED(hr)) - { - // Raise the SaveComplete event to host... - if (m_dispEvents) - { - VARIANT rgargs[3]; - rgargs[2].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[2].pdispVal)); - rgargs[1].vt = VT_BSTR; rgargs[1].bstrVal = SysAllocString(m_pDocObjFrame->GetSourceDocName()); - rgargs[0].vt = VT_BSTR; rgargs[0].bstrVal = SysAllocString(m_pDocObjFrame->GetSourceName()); - RaiseAutomationEvent(DSOF_DISPID_SAVECOMPLETE, 3, rgargs); - VariantClear(&rgargs[2]); - VariantClear(&rgargs[1]); - VariantClear(&rgargs[0]); - } - - // Redraw the caption as needed... - RedrawCaption(); - } - - SetCursor(hCur); - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::Close -// -// Closes the current object. -// -STDMETHODIMP CDsoFramerControl::Close() -{ - ODS("CDsoFramerControl::Close\n"); - - CDsoDocObject* pdframe = m_pDocObjFrame; - if (pdframe) - { - // Fire the BeforeDocumentClosed event to give host chance to cancel... - VARIANT rgargs[2]; VARIANT_BOOL vtboolCancel = VARIANT_FALSE; - rgargs[1].vt = VT_DISPATCH; get_ActiveDocument(&(rgargs[1].pdispVal)); - rgargs[0].vt = (VT_BOOL | VT_BYREF); rgargs[0].pboolVal = &vtboolCancel; - - // Setting Cancel param should abort the close... - RaiseAutomationEvent(DSOF_DISPID_BDOCCLOSE, 2, rgargs); - VariantClear(&rgargs[1]); - - if (vtboolCancel != VARIANT_FALSE) - return E_ABORT; - - // If not canceled, clear the member variable then call close on doc frame... - m_pDocObjFrame = NULL; - - SEH_TRY - pdframe->Close(); - SEH_EXCEPT_NULL - delete pdframe; - - // Notify host that item is now closed... - RaiseAutomationEvent(DSOF_DISPID_DOCCLOSE, 0, NULL); - } - - // Redraw the caption as needed... - RedrawCaption(); - EnableDropFile(TRUE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Caption/get_Caption) -// -// Allows you to set a custom cation for the titlebar. -// -STDMETHODIMP CDsoFramerControl::put_Caption(BSTR bstr) -{ - // Free exsiting caption (if any) and save new one (always dirties control)... - SAFE_FREEBSTR(m_bstrCustomCaption); - - // Set the new one (if provided)... - if ((bstr) && (SysStringLen(bstr) > 0)) - m_bstrCustomCaption = SysAllocString(bstr); - - ViewChanged(); - m_fDirty = TRUE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Caption(BSTR* pbstr) -{ - if (pbstr) *pbstr = (m_bstrCustomCaption ? - SysAllocString(m_bstrCustomCaption) : - SysAllocString(L"Office Framer Control")); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Titlebar/get_Titlebar) -// -// True/False. Should we display the titlebar or not? -// -STDMETHODIMP CDsoFramerControl::put_Titlebar(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Titlebar(%d)\n", vbool); - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowTitlebar != (WORD)(BOOL)vbool) - { - m_fShowTitlebar = (BOOL)vbool; - m_fDirty = TRUE; - OnResize(); - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Titlebar(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Titlebar\n"); - if (pbool) *pbool = (m_fShowTitlebar ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Toolbars/get_Toolbars) -// -// True/False. Should we display toolbars or not? -// -STDMETHODIMP CDsoFramerControl::put_Toolbars(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Toolbars(%d)\n", vbool); - - // If the control is in modal state, we can't do things that - // will call the server directly, like toggle toolbars... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowToolbars != (WORD)(BOOL)vbool) - { - m_fShowToolbars = (BOOL)vbool; - m_fDirty = TRUE; - - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyChangeToolState(m_fShowToolbars); - - ViewChanged(); - OnResize(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Toolbars(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Toolbars\n"); - if (pbool) *pbool = (m_fShowToolbars ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_ModalState/get_ModalState) -// -// True/False. Disables the active object (if any) thereby setting it -// up to behave "modal". Any time a dialog or other blocking window -// on the same thread is called, the developer should set this to True -// to let the IP object know it should stay modal in the background. -// Set it back to False when the dialog is removed. -// -// Technically, this should be a counter to allow for nested modal states. -// However, we thought that might be confusing to some VB/Web developers -// and since this is only a sample, made it a Boolean property. -// -STDMETHODIMP CDsoFramerControl::put_ModalState(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_ModalState(%d)\n", vbool); - - // you can't force modal state change unless active... - if ((m_fNoInteractive) || (!m_fComponentActive)) - return ProvideErrorInfo(E_ACCESSDENIED); - - if (m_fModalState != (WORD)(BOOL)vbool) - UpdateModalState((vbool != VARIANT_FALSE), TRUE); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ModalState(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_ModalState\n"); - if (pbool) *pbool = ((m_fModalState) ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ShowDialog -// -// Uses IOleCommandTarget to get the embedded object to display one of -// these standard dialogs for the user. -// -STDMETHODIMP CDsoFramerControl::ShowDialog(dsoShowDialogType DlgType) -{ - HRESULT hr = E_ACCESSDENIED; - - TRACE1("CDsoFramerControl::ShowDialog(%d)\n", DlgType); - if ((DlgType < dsoFileNew) || (DlgType > dsoDialogProperties)) - return E_INVALIDARG; - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // The first three dialog types we handle... - if (DlgType < dsoDialogSaveCopy) - { - hr = DoDialogAction(DlgType); - } - // The others are provided by the server via IOleCommandTarget... - else if (m_pDocObjFrame) - { - DWORD dwOleCmd; - switch (DlgType) - { - case dsoDialogSaveCopy: dwOleCmd = OLECMDID_SAVECOPYAS; break; - case dsoDialogPageSetup: dwOleCmd = OLECMDID_PAGESETUP; break; - case dsoDialogProperties: dwOleCmd = OLECMDID_PROPERTIES; break; - default: dwOleCmd = OLECMDID_PRINT; - } - hr = m_pDocObjFrame->DoOleCommand(dwOleCmd, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - - return ProvideErrorInfo(hr); -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_EnableFileCommand/get_EnableFileCommand) -// -// True/False. This allows the developer to disable certain menu/toolbar -// items that are considered "file-level" -- New, Save, Print, etc. -// -// We use the Item parameter to set a bit flag which is used when -// displaying the menu to enable/disable the item. The OnFileCommand -// event will not fire for disabled commands. -// -STDMETHODIMP CDsoFramerControl::put_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL vbool) -{ - TRACE2("CDsoFramerControl::put_EnableFileCommand(%d, %d)\n", Item, vbool); - - if ((Item < dsoFileNew) || (Item > dsoFilePrintPreview)) - return E_INVALIDARG; - - // You cannot access menu when in a modal condition... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // We keep bit flags for menu state. Just set the bit and a update - // the embedded object as needed. User will see change next time menu is shown... - UINT code = (1 << Item); - if (vbool == 0) m_wFileMenuFlags &= ~(code); - else m_wFileMenuFlags |= code; - - if (m_pDocObjFrame) // This should update toolbar icon (if server supports it) - m_pDocObjFrame->DoOleCommand(OLECMDID_UPDATECOMMANDS, 0, NULL, NULL); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL* pbool) -{ - TRACE1("CDsoFramerControl::get_EnableFileCommand(%d)\n", Item); - - if ((Item < dsoFileNew) || (Item > dsoFilePrintPreview)) - return E_INVALIDARG; - - UINT code = (1 << Item); - if (pbool) *pbool = ((m_wFileMenuFlags & code) ? VARIANT_TRUE : VARIANT_FALSE); - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_BorderStyle/get_BorderStyle) -// -// Change the border style for the control. -// -STDMETHODIMP CDsoFramerControl::put_BorderStyle(dsoBorderStyle style) -{ - ODS("CDsoFramerControl::put_BorderStyle\n"); - - if ((style < dsoBorderNone) || (style > dsoBorder3DThin)) - return E_INVALIDARG; - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fBorderStyle != (DWORD)style) - { - m_fBorderStyle = style; - m_fDirty = TRUE; - OnResize(); - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BorderStyle(dsoBorderStyle* pstyle) -{ - ODS("CDsoFramerControl::get_BorderStyle\n"); - if (pstyle) *pstyle = (dsoBorderStyle)m_fBorderStyle; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// Control Color Properties... -// -// -STDMETHODIMP CDsoFramerControl::put_BorderColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_BorderColor\n"); - if (m_clrBorderColor != clr) - { - m_clrBorderColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BorderColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrBorderColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_BackColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_BackColor\n"); - if (m_clrBackColor != clr) - { - m_clrBackColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_BackColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrBackColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_ForeColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_ForeColor\n"); - if (m_clrForeColor != clr) - { - m_clrForeColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ForeColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrForeColor; return S_OK;} - -STDMETHODIMP CDsoFramerControl::put_TitlebarColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_TitlebarColor\n"); - if (m_clrTBarColor != clr) - { - m_clrTBarColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_TitlebarColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrTBarColor; return S_OK;} - - -STDMETHODIMP CDsoFramerControl::put_TitlebarTextColor(OLE_COLOR clr) -{ - ODS("CDsoFramerControl::put_TitlebarTextColor\n"); - if (m_clrTBarTextColor != clr) - { - m_clrTBarTextColor = clr; - m_fDirty = TRUE; - ViewChanged(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_TitlebarTextColor(OLE_COLOR* pclr) -{if (pclr) *pclr = m_clrTBarTextColor; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_Menubar/get_Menubar) -// -// True/False. Should we display menu bar? -// -STDMETHODIMP CDsoFramerControl::put_Menubar(VARIANT_BOOL vbool) -{ - TRACE1("CDsoFramerControl::put_Menubar(%d)\n", vbool); - - // If the control is in modal state, we can't do things that - // will call the server directly, like toggle menu bar... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - if (m_fShowMenuBar != (WORD)(BOOL)vbool) - { - m_fShowMenuBar = (BOOL)vbool; - m_fDirty = TRUE; - ViewChanged(); - OnResize(); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_Menubar(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_Menubar\n"); - if (pbool) *pbool = (m_fShowMenuBar ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::(put_HostName/get_HostName) -// -// String setting used for host application name (used in embedding) -// -STDMETHODIMP CDsoFramerControl::put_HostName(BSTR bstr) -{ - TRACE1("CDsoFramerControl::put_HostName(%S)\n", bstr); - SAFE_FREESTRING(m_pwszHostName); - - if ((bstr) && (SysStringLen(bstr) > 0)) - m_pwszHostName = DsoCopyString(bstr); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_HostName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_HostName\n"); - if (pbstr) - *pbstr = SysAllocString((m_pwszHostName ? m_pwszHostName : L"DsoFramerControl")); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_DocumentFullName -// -// Gets FullName of embedded source file (where default save will save to). -// -STDMETHODIMP CDsoFramerControl::get_DocumentFullName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_DocumentFullName\n"); - CHECK_NULL_RETURN(pbstr, E_POINTER); - // Ask doc object site for the source name... - *pbstr = (m_pDocObjFrame) ? SysAllocString(m_pDocObjFrame->GetSourceName()) : NULL; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_DocumentName -// -// Gets just the file name of embedded source file. -// -STDMETHODIMP CDsoFramerControl::get_DocumentName(BSTR* pbstr) -{ - ODS("CDsoFramerControl::get_DocumentName\n"); - CHECK_NULL_RETURN(pbstr, E_POINTER); - // Ask doc object site for the source doc name... - *pbstr = (m_pDocObjFrame) ? SysAllocString(m_pDocObjFrame->GetSourceDocName()) : NULL; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_IsReadOnly -// -// Returns if file open read-only. -// -STDMETHODIMP CDsoFramerControl::get_IsReadOnly(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_IsReadOnly\n"); - CHECK_NULL_RETURN(pbool, E_POINTER); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - *pbool = (m_pDocObjFrame->IsReadOnly() ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::get_IsDirty -// -// Returns TRUE if doc object says it has changes. -// -STDMETHODIMP CDsoFramerControl::get_IsDirty(VARIANT_BOOL* pbool) -{ - ODS("CDsoFramerControl::get_IsDirty\n"); - CHECK_NULL_RETURN(pbool, E_POINTER); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - *pbool = (m_pDocObjFrame->IsDirty() ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::LockServer -// -// Allows host to temporarily lock the current document server running, -// so that when closing and reopening files using the same server doesn't -// suffer startup/shutdown penelty of the server going away between calls. -// -STDMETHODIMP CDsoFramerControl::put_LockServer(VARIANT_BOOL vbool) -{ - BOOL fLock = (vbool != VARIANT_FALSE); - TRACE1("CDsoFramerControl::put_LockServer(%d)\n", (DWORD)vbool); - - // We must have a server open to set a lock... - if ((fLock) && (m_pDocObjFrame == NULL)) - return ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN); - - return SetTempServerLock(fLock); -} - -STDMETHODIMP CDsoFramerControl::get_LockServer(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_LockServer\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (VARIANT_BOOL)((m_pServerLock) ? VARIANT_TRUE : VARIANT_FALSE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetDataObjectContent -// -// Allows caller to get data from document in clipboard format but without -// using the clipboard (instead it uses IDataObject). The server has to -// support the request format to return the data. Data is returned as byte array. -// -// NOTE: This only gets the document body content, not the entire document. If -// you want the entire document, use the Save method with temp filename to save to. -// -STDMETHODIMP CDsoFramerControl::GetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT *pvResults) -{ - ODS("CDsoFramerControl::GetDataObjectContent()\n"); - CHECK_NULL_RETURN(pvResults, E_POINTER); VariantInit(pvResults); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->HrGetDataFromObject(&ClipFormatNameOrNumber, pvResults); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetDataObjectContent -// -// Allows caller to set data into the document body (similar to a paste, but -// without using the clipboard). You must supply the format name or number and -// the data in a byte array format. -// -STDMETHODIMP CDsoFramerControl::SetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT DataByteArray) -{ - ODS("CDsoFramerControl::SetDataObjectContent()\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->HrSetDataInObject(&ClipFormatNameOrNumber, &DataByteArray, TRUE); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_ActivationPolicy -// -// Allows caller to set policy for how activation changes affect the embedded -// object. This is actually a bit flag, so user can OR settings. -// -STDMETHODIMP CDsoFramerControl::put_ActivationPolicy(dsoActivationPolicy lPolicy) -{ - TRACE1("CDsoFramerControl::put_ActivationPolicy(%d)\n", lPolicy); - if (m_pDocObjFrame) return E_ACCESSDENIED; - - if ((lPolicy < dsoDefaultBehavior) || (lPolicy > 0x0F)) - return E_INVALIDARG; - - m_lActivationPolicy = lPolicy; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_ActivationPolicy(dsoActivationPolicy *plPolicy) -{if (plPolicy) *plPolicy = (dsoActivationPolicy)m_lActivationPolicy; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_FrameHookPolicy -// -// Allows caller to set policy for the frame hook. -// -STDMETHODIMP CDsoFramerControl::put_FrameHookPolicy(dsoFrameHookPolicy lPolicy) -{ - HRESULT hr = E_ACCESSDENIED; - TRACE1("CDsoFramerControl::put_FrameHookPolicy(%d)\n", lPolicy); - - switch (lPolicy) - { - case dsoDisableHook: - if (m_pHookManager) break; - // else fallthrough... - - case dsoNormalBehavior: - case dsoSetOnFirstOpen: - m_lHookPolicy = lPolicy; hr = S_OK; - break; - - case dsoResetNow: - if (!FRunningInDesignMode()) - hr = ResetFrameHook(0); - break; - - default: - hr = E_INVALIDARG; - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::get_FrameHookPolicy(dsoFrameHookPolicy *plPolicy) -{if (plPolicy) *plPolicy = (dsoFrameHookPolicy)m_lHookPolicy; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_MenuAccelerators -// -// Sets flag to determine if control should try to handle keys for menu -// shortcuts when the menus are displayed. -// -STDMETHODIMP CDsoFramerControl::put_MenuAccelerators(VARIANT_BOOL vbool) -{ - ODS("CDsoFramerControl::put_MenuAccelerators\n"); - m_fDisableMenuAccel = (vbool == VARIANT_FALSE); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_MenuAccelerators(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_MenuAccelerators\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (m_fDisableMenuAccel ? VARIANT_FALSE : VARIANT_TRUE); - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::put_EventsEnabled -// -// Sets flag to determine if events are frozen or not. -// -STDMETHODIMP CDsoFramerControl::put_EventsEnabled(VARIANT_BOOL vbool) -{ - ODS("CDsoFramerControl::put_EventsEnabled\n"); - m_fFreezeEvents = (vbool == VARIANT_FALSE); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::get_EventsEnabled(VARIANT_BOOL* pvbool) -{ - ODS("CDsoFramerControl::get_EventsEnabled\n"); - CHECK_NULL_RETURN(pvbool, E_POINTER); - *pvbool = (m_fFreezeEvents ? VARIANT_FALSE : VARIANT_TRUE); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - IDispatch Implementation -// - -//////////////////////////////////////////////////////////////////////// -// Control's IDispatch Functions -// -// These are largely standard and just forward calls to the functions -// above. The only interesting thing here is the "hack" in Invoke to -// tell VB/IE that the control is always "Enabled". -// -STDMETHODIMP CDsoFramerControl::GetTypeInfoCount(UINT* pctinfo) -{if (pctinfo) *pctinfo = 1; return S_OK;} - -STDMETHODIMP CDsoFramerControl::GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo) -{ - HRESULT hr = S_OK; - - ODS("CDsoFramerControl::GetTypeInfo\n"); - CHECK_NULL_RETURN(ppTInfo, E_POINTER); *ppTInfo = NULL; - - // We only support default interface late bound... - CHECK_NULL_RETURN((iTInfo == 0), DISP_E_BADINDEX); - - // Load the type lib if we don't have the information already. - if (NULL == m_ptiDispType) - { - hr = DsoGetTypeInfoEx(LIBID_DSOFramer, 0, DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, - v_hModule, IID__FramerControl, &m_ptiDispType); - } - - // Return interface with ref count (if we have it, otherwise error)... - SAFE_SET_INTERFACE(*ppTInfo, m_ptiDispType); - return hr; -} - -STDMETHODIMP CDsoFramerControl::GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId) -{ - HRESULT hr; - ITypeInfo *pti; - - ODS("CDsoFramerControl::GetIDsOfNames\n"); - CHECK_NULL_RETURN((IID_NULL == riid), DISP_E_UNKNOWNINTERFACE); - - // Get the type info for this dispinterface... - hr = GetTypeInfo(0, lcid, &pti); - RETURN_ON_FAILURE(hr); - - // Ask OLE to translate the name... - hr = pti->GetIDsOfNames(rgszNames, cNames, rgDispId); - pti->Release(); - return hr; -} - -STDMETHODIMP CDsoFramerControl::Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr) -{ - HRESULT hr; - ITypeInfo *pti;; - - // VB loves to check for this property (Enabled) during design time. - // We don't implement it for this control, but we'll return TRUE to - // to let it know if is enabled and don't bother with call to ITypeInfo... - if ((dispIdMember == DISPID_ENABLED) && (wFlags & DISPATCH_PROPERTYGET)) - { - if (pVarResult) // We are always enabled... - {pVarResult->vt = VT_BOOL; pVarResult->boolVal = VARIANT_TRUE; } - return S_OK; - } - - TRACE1("CDsoFramerControl::Invoke(dispid = %d)\n", dispIdMember); - CHECK_NULL_RETURN((IID_NULL == riid), DISP_E_UNKNOWNINTERFACE); - - // Get the type info for this dispinterface... - hr = GetTypeInfo(0, lcid, &pti); - RETURN_ON_FAILURE(hr); - - // Store pExcepInfo (to fill-in disp excepinfo if error occurs)... - m_pDispExcep = pExcepInfo; - - // Call the method using TypeInfo (OLE will call v-table method for us)... - hr = pti->Invoke((PVOID)this, dispIdMember, wFlags, pDispParams, pVarResult, pExcepInfo, puArgErr); - - m_pDispExcep = NULL; // Don't need this anymore... - pti->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ProvideErrorInfo -// -// Fills in custom error information (as needed). -// -STDMETHODIMP CDsoFramerControl::ProvideErrorInfo(HRESULT hres) -{ - // Don't need to do anything on success... - if ((hres == S_OK) || SUCCEEDED(hres)) - return hres; - - // Fill in the error information as needed... - return DsoReportError(hres, NULL, m_pDispExcep); -} diff --git a/PROMS/DSOFramer/Source2005/dsofcontrol.cpp b/PROMS/DSOFramer/Source2005/dsofcontrol.cpp deleted file mode 100644 index 17bd4094..00000000 --- a/PROMS/DSOFramer/Source2005/dsofcontrol.cpp +++ /dev/null @@ -1,4313 +0,0 @@ -/*************************************************************************** - * DSOFCONTROL.CPP - * - * CDsoFramerControl: The Base Control - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl - The Main Control Class -// -// Serves as a base for the ActiveX Document site object which will do -// the actual embedding. -// -CDsoFramerControl::CDsoFramerControl(LPUNKNOWN punk) -{ - ODS("CDsoFramerControl::CDsoFramerControl\n"); - m_pOuterUnknown = ((punk) ? punk : (IUnknown*)&m_xInternalUnknown); -} - -CDsoFramerControl::~CDsoFramerControl(void) -{ - ODS("CDsoFramerControl::~CDsoFramerControl\n"); - - SAFE_RELEASE_INTERFACE(m_ptiDispType); - SAFE_RELEASE_INTERFACE(m_pClientSite); - SAFE_RELEASE_INTERFACE(m_pControlSite); - SAFE_RELEASE_INTERFACE(m_pInPlaceSite); - SAFE_RELEASE_INTERFACE(m_pInPlaceFrame); - SAFE_RELEASE_INTERFACE(m_pInPlaceUIWindow); - SAFE_RELEASE_INTERFACE(m_pViewAdviseSink); - SAFE_RELEASE_INTERFACE(m_pOleAdviseHolder); - SAFE_RELEASE_INTERFACE(m_pDataAdviseHolder); - SAFE_RELEASE_INTERFACE(m_dispEvents); - SAFE_RELEASE_INTERFACE(m_pOleStorage); - SAFE_FREESTRING(m_pwszHostName); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InitializeNewInstance -// -// Sets up the inital state for the control. Any other member variable -// not set here will be NULL/FALSE thanks to zero-init in MemAlloc. -// -STDMETHODIMP CDsoFramerControl::InitializeNewInstance() -{ - m_clrBorderColor = 0x80000010; // System Button Shadow Color - m_clrBackColor = 0x80000005; // System Window Background Color - m_clrForeColor = 0x80000008; // System Window Text Color - m_clrTBarColor = 0x8000000D; // System Highlight Color - m_clrTBarTextColor = 0x8000000E; // System Highlight Text Color - m_fBorderStyle = dsoBorderFlat; - m_fShowTitlebar = TRUE; - m_fShowToolbars = TRUE; - m_fShowMenuBar = TRUE; - m_wFileMenuFlags = 0xFFFF; // All items are "enabled" by default - m_Size.cx = 240; - m_Size.cy = 240; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InPlaceActivate -// -// Does all the work in-place activating and/or ui activating the -// control when asked to do so. Sets up the main control window, the -// needed interfaces, and (if not in design) subclasses the main top-level -// window we can monitor messages that must be forwarded to an ip active -// DocObject when we have one loaded. -// -STDMETHODIMP CDsoFramerControl::InPlaceActivate(LONG lVerb) -{ - HRESULT hr; - SIZEL sizel; - - TRACE1("CDsoFramerControl::InPlaceActivate - %d\n", lVerb); - - // if we don't have a client site, then there's not much to do. - if (!m_pClientSite) return S_OK; - - // get an InPlace site pointer. - if (NULL == m_pInPlaceSite) - { - hr = m_pClientSite->QueryInterface(IID_IOleInPlaceSite, (void **)&m_pInPlaceSite); - RETURN_ON_FAILURE(hr); - } - - // if we're not already active, go and do it. - if (!m_fInPlaceActive) - { - OLEINPLACEFRAMEINFO InPlaceFrameInfo; - RECT rcPos, rcClip; - - hr = m_pInPlaceSite->CanInPlaceActivate(); - if (hr != S_OK){ if (!FAILED(hr)) hr = E_FAIL; goto cleanup;} - - // if we are here, then we have permission to go in-place active. - // now, announce our intentions to actually go ahead and do this. - hr = m_pInPlaceSite->OnInPlaceActivate(); - GOTO_ON_FAILURE(hr, cleanup); - - // if we're here, we're ready to go in-place active. we just need - // to set up some flags, and then create the window [if we have one] - m_fInPlaceActive = TRUE; - - // we need to get some information about our location in the parent - // window, as well as some information about the parent - hr = m_pInPlaceSite->GetWindow(&m_hwndParent); - if (FAILED(hr) || !IsWindow(m_hwndParent)) - { - hr = OLE_E_INVALIDHWND; - goto cleanup; - } - - InPlaceFrameInfo.cb = sizeof(OLEINPLACEFRAMEINFO); - hr = m_pInPlaceSite->GetWindowContext(&m_pInPlaceFrame, &m_pInPlaceUIWindow, &rcPos, &rcClip, &InPlaceFrameInfo); - GOTO_ON_FAILURE(hr, cleanup); - - // make sure we'll display ourselves in the correct location with the correct size - sizel.cx = rcPos.right - rcPos.left; - sizel.cy = rcPos.bottom - rcPos.top; - m_Size = sizel; - - m_xOleInplaceObject.SetObjectRects(&rcPos, &rcClip); - - // finally, create our window if we have to! - if (NULL == m_hwnd) - { - WNDCLASS wndclass; - - EnterCriticalSection(&v_csecThreadSynch); - - // if class info has not yet been registered, need to do that now... - if (GetClassInfo(v_hModule, "DSOFramerOCXWnd", &wndclass) == 0) - { - memset(&wndclass, 0, sizeof(WNDCLASS)); - wndclass.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS; - wndclass.lpfnWndProc = CDsoFramerControl::ControlWindowProc; - wndclass.hInstance = v_hModule; - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.lpszClassName = "DSOFramerOCXWnd"; - RegisterClass(&wndclass); - } - - // create the window with the extent size and position... - m_hwnd = CreateWindowEx(0, "DSOFramerOCXWnd", NULL, - WS_CHILD | WS_CLIPSIBLINGS | WS_VISIBLE, - rcPos.left, rcPos.top, m_Size.cx, m_Size.cy, - m_hwndParent, NULL, v_hModule, NULL); - - if (m_hwnd) SetWindowLong(m_hwnd, GWL_USERDATA, (LONG)this); - - LeaveCriticalSection(&v_csecThreadSynch); - - if (!m_hwnd) {hr = E_FAIL; goto cleanup;} - } - - // finally, tell the host of this - m_pClientSite->ShowObject(); - } - - // if we're not inplace visible yet, do so now. - if (!m_fInPlaceVisible) - SetInPlaceVisible(TRUE); - - - // if we were asked to UIActivate, and we currently are not, do so! - if ((lVerb == OLEIVERB_PRIMARY || - lVerb == OLEIVERB_UIACTIVATE) && (!m_fUIActive)) - { - // It is not typical to UI activate ocx during design mode, but if it happens and host - // has not customized the hook policy, let's switch to delay set so that we don't - // accidently hook the VS/VB IDE designer window. - if (FRunningInDesignMode() && (m_lHookPolicy == 0)) - m_lHookPolicy = dsoSetOnFirstOpen; - - // if we don't have it already, hook top-level parent window when we go - // ui active; this is needed to track WM_ACTIVATEAPP and other critical messages - // needed by ole docobjs.... - if ((m_pHookManager == NULL) && FUseFrameHook() && !FDelayFrameHookSet()) - { - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl(m_hwndParent, m_hwnd); - if (!m_pHookManager) - { - ODS(" ** UIActivate FAILED (DSO_E_FRAMEHOOKFAILED)\n"); - return ProvideErrorInfo(DSO_E_FRAMEHOOKFAILED); - } - } - - // Now UI activate the control for the host. This implies taking focus and - // setting up the control as the current active object... - hr = UIActivate(FALSE); - - } - - // Setup drop file support (but only when there is no current embedding)... - if (m_pDocObjFrame == NULL) - EnableDropFile(TRUE); - - return S_OK; // be-de-be-de-be-de that's all folks! - -cleanup: - // something catastrophic happened [or, at least something bad]. - // die a horrible fiery mangled painful death... - TRACE1(" *** InPlaceActivate FAILED (hr=0x%X) ***\n", hr); - m_fInPlaceActive = FALSE; - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UIActivate -// -// Make sure our control is UI Active and set as ActiveObject for host. -// -STDMETHODIMP CDsoFramerControl::UIActivate(BOOL fForceUIActive) -{ - HRESULT hr = S_FALSE; - TRACE1("CDsoFramerControl::UIActivate(fForceUIActive=%d)\n", fForceUIActive); - - // We can't do anything if we aren't inplace active and visible! - if (!(m_fInPlaceActive) || !(m_fInPlaceVisible)) - return E_UNEXPECTED; - - // If we are not already UI active or are being asked to force it, do the call - if ((!(m_fUIActive) || (fForceUIActive)) && (m_pInPlaceSite)) - { - m_fUIActive = TRUE; - - // inform the container of our intent - hr = m_pInPlaceSite->OnUIActivate(); - - if (SUCCEEDED(hr) || (fForceUIActive)) - { - // take the focus [which is what UI Activation is all about !] - SetFocus(m_hwnd); - - // set ourselves up in the host. - if (m_pInPlaceFrame) - m_pInPlaceFrame->SetActiveObject((IOleInPlaceActiveObject*)&m_xOleInplaceActiveObject, NULL); - - if (m_pInPlaceUIWindow) - m_pInPlaceUIWindow->SetActiveObject((IOleInPlaceActiveObject*)&m_xOleInplaceActiveObject, NULL); - - // we have to explicitly say we don't wany any border space. - if (m_pInPlaceFrame) - m_pInPlaceFrame->SetBorderSpace(NULL); - - if (m_pInPlaceUIWindow) - m_pInPlaceUIWindow->SetBorderSpace(NULL); - - // Ensure docobj component state is active as well... - if (!m_fComponentActive) - { - // Tell manager we are the active component now... - if (m_pHookManager) m_pHookManager->SetActiveComponent(m_hwnd); - else OnComponentActivationChange(TRUE); - } - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::SetInPlaceVisible -// -// Make sure our control is visible or not (does not actually take ui -// focus, that should be done in InPlaceActivate). -// -STDMETHODIMP_(void) CDsoFramerControl::SetInPlaceVisible(BOOL fShow) -{ - BOOL fVisible; - m_fInPlaceVisible = fShow; - - // don't do anything if we don't have a window. otherwise, set it - if (m_hwnd) - { - fVisible = IsWindowVisible(m_hwnd); - - if (fVisible && !fShow) - ShowWindow(m_hwnd, SW_HIDE); - else if (!fVisible && fShow) - ShowWindow(m_hwnd, SW_SHOWNA); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDraw -// -// Drawing is largely limited to border and titlebar, except when in -// design mode. We don't do any background painting to avoid paint problems -// when we have an ui active DocObject. It should do any painting for us. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize) -{ - COLORREF clrBackground, clrForeground, clrBorder, clrT; - HBRUSH hbshBackground, hbshBorder; - HFONT hfontText, hfontOld; - HPALETTE hpal, hpalOld; - LOGFONT lfText = {-11,0,0,0,FW_NORMAL,0,0,0,0,0,0,0,FF_SWISS, "Tahoma"}; - RECT rc, rcT; - int iTxtMode, iMapMode; - - // Copy out the bounding rect... - CopyRect(&rc, prcBounds); - - // On 256 color systems, we may need a palette... - if ((GetDeviceCaps(hdcDraw, RASTERCAPS) & RC_PALETTE) && - ((GetDeviceCaps(hdcDraw, BITSPIXEL) * GetDeviceCaps(hdcDraw, PLANES)) == 8)) - { - hpal = CreateHalftonePalette(hdcDraw); - hpalOld = SelectPalette(hdcDraw, hpal, TRUE); - RealizePalette(hdcDraw); - } - else hpal = NULL; - - // Translate the OLE_COLOR values to a matching COLORREF in palette... - OleTranslateColor(m_clrBackColor, hpal, &clrBackground); - OleTranslateColor(m_clrForeColor, hpal, &clrForeground); - OleTranslateColor(m_clrBorderColor, hpal, &clrBorder); - - // Create the resources we need for drawing and setting up the DC... - hbshBackground = CreateSolidBrush(clrBackground); - hbshBorder = CreateSolidBrush(clrBorder); - - hfontText = CreateFontIndirect(&lfText); - hfontOld = (HFONT)SelectObject(hdcDraw, hfontText); - iTxtMode = SetBkMode(hdcDraw, TRANSPARENT); - iMapMode = SetMapMode(hdcDraw, MM_TEXT); - - // Based on the choosen border style, draw the border and deflate the - // drawing rect accordingly... - switch (m_fBorderStyle) - { - case 1: - { - HBRUSH hbT = GetSysColorBrush(COLOR_BTNFACE); - FrameRect(hdcDraw, &rc, hbshBorder); InflateRect(&rc, -1, -1); - FrameRect(hdcDraw, &rc, hbT); InflateRect(&rc, -1, -1); - FrameRect(hdcDraw, &rc, hbshBorder); InflateRect(&rc, -1, -1); - } - break; - - case 2: - DrawEdge(hdcDraw, &rc, EDGE_SUNKEN, BF_RECT); - InflateRect(&rc, -2, -2); - break; - - case 3: - DrawEdge(hdcDraw, &rc, BDR_SUNKENOUTER, BF_RECT); - InflateRect(&rc, -1, -1); - break; - - //default: no border... - } - - // Draw the titlebar if visible... - if (m_fShowTitlebar) - { - COLORREF clrTitlebar, clrTitlebarText; - HBRUSH hbshTitlebar, hbshT; - LPWSTR pwszDCaption = NULL; - LPWSTR pwszROCaption = NULL; - LPWSTR pwszCaption = ((m_bstrCustomCaption) ? - m_bstrCustomCaption : L"KB311765: Office Framer Control Sample"); - - CopyRect(&rcT, &rc); - rcT.bottom = rcT.top + 21; - - OleTranslateColor(m_clrTBarColor, hpal, &clrTitlebar); - OleTranslateColor(m_clrTBarTextColor, hpal, &clrTitlebarText); - - hbshTitlebar = CreateSolidBrush(clrTitlebar); - FillRect(hdcDraw, &rcT, hbshTitlebar); - - DrawIconEx(hdcDraw, rcT.left+2, rcT.top+2, v_icoOffDocIcon, 16, 16, 0, NULL, DI_NORMAL); - - clrT = SetTextColor(hdcDraw, clrTitlebarText); - rcT.left += 22; - - // If we have an embedded object, check to see if it is an open doc and - // append the name to the titlebar. Also append "Read-Only" string if file - // was open in read-only mode. - if (m_pDocObjFrame) - { - if ((pwszDCaption = (LPWSTR)m_pDocObjFrame->GetSourceDocName()) != NULL) - { - LPCWSTR pwszCat[2] = {L" - ", pwszDCaption}; - pwszDCaption = DsoCopyStringCatEx(pwszCaption, 2, pwszCat); - pwszCaption = pwszDCaption; - } - - if (m_pDocObjFrame->IsReadOnly()) - { - pwszROCaption = DsoCopyStringCat(pwszCaption, L" (Read-Only)"); - pwszCaption = pwszROCaption; - } - } - - // Draw out the custom titlebar caption in Unicode if on NT/XP OS, since - // a custom caption may have non-ANSI characters... - FDrawText(hdcDraw, pwszCaption, &rcT, DT_VCENTER|DT_SINGLELINE); - - // Cleanup temp strings... - if (pwszROCaption) DsoMemFree(pwszROCaption); - if (pwszDCaption) DsoMemFree(pwszDCaption); - - CopyRect(&rcT, &rc); - rcT.bottom = rcT.top + 21; - rcT.top = rcT.bottom - 1; - - hbshT = GetSysColorBrush(COLOR_BTNSHADOW); - FillRect(hdcDraw, &rcT, hbshT); - - SetTextColor(hdcDraw, clrT); - DeleteObject(hbshTitlebar); - } - - // Draw menu bar if visible... - if (m_fShowMenuBar) - { - GetSizeRectForMenuBar(prcBounds, &rcT); - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNFACE)); - - // When in design mode, we just draw placeholder... - if (FRunningInDesignMode()) - { - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "Menu Bar", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - else - { - HMENU hCurMenu; - CHAR szbuf[DSO_MAX_MENUNAME_LENGTH]; - UINT i, yTop, yBottom, xLast, xNext; - SIZE ptMItem; RECT rcMDraw; - BOOL fSelected; - DWORD dwDTFlags = (DT_SINGLELINE | DT_VCENTER); - - // Get the current menu and setup to draw the number of items in it... - if (hCurMenu = GetActivePopupMenu()) - { - yTop = rcT.top + 3; yBottom = rcT.bottom - 3; xLast = rcT.left + 2; - if (hCurMenu == m_hmenuFilePopup) - { m_cMenuItems = 1; } - else - { - if ((m_cMenuItems = (USHORT)GetMenuItemCount(hCurMenu)) > DSO_MAX_MENUITEMS) - m_cMenuItems = DSO_MAX_MENUITEMS; - } - - // If we are on an OS that supports it, hide the prefix when we are not UI active - // or if the host has disabled menu accelerators for this instance... - if (v_fWindows2KPlus && (!(m_fUIActive) || (m_fDisableMenuAccel))) - dwDTFlags |= DT_HIDEPREFIX; - - // For each item in the menu, get the menu name and draw it to the - // menu bar. We need to calculate the size taken by the font used and - // store the information in an array used by mouse move handler to - // determine which menu item the user is over... - for (i = 0; i < m_cMenuItems; i++) - { - szbuf[0] = '\0'; - if (i == 0) lstrcpy(szbuf, "&File"); - else GetMenuString(hCurMenu, i, szbuf, DSO_MAX_MENUNAME_LENGTH, MF_BYPOSITION); - - GetTextExtentPoint32(hdcDraw, szbuf, lstrlen(szbuf), &ptMItem); - xNext = (xLast + ptMItem.cx + 2); - if (xNext > (UINT)(rcT.right)){ m_cMenuItems = (USHORT)i; break; } - SetRect(&rcMDraw, xLast, yTop, xNext, yBottom); - - if (fOptimize) - CopyRect(&m_rgrcMenuItems[i], &rcMDraw); - - // If user is over this particular item, we draw it as selected... - fSelected = ((m_wSelMenuItem) && (i == (UINT)(m_wSelMenuItem - 1))); - if (fSelected) - { - FillRect(hdcDraw, &rcMDraw, GetSysColorBrush(COLOR_HIGHLIGHT)); - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_HIGHLIGHTTEXT)); - } - rcMDraw.left += 4; - DrawText(hdcDraw, szbuf, lstrlen(szbuf), &rcMDraw, dwDTFlags); - - if (fSelected) - SetTextColor(hdcDraw, clrT); - - xLast = xNext + 2; - } - } - } - rcT.top = rcT.bottom - 1; // Draw a line to separate menu from workspace... - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNSHADOW)); - } - - - // Fill in the background (but only if there is no active object)... - if (!m_pDocObjFrame) - { - GetSizeRectForDocument(prcBounds, &rcT); - FillRect(hdcDraw, &rcT, hbshBackground); - - // When in design mode, we do a little extra stuff to help the - // developer visualize some of the control settings (toolbars, - // foreground color, etc.)... - if (FRunningInDesignMode()) - { - if (m_fShowToolbars) - { - rcT.bottom = rcT.top + 25; - FillRect(hdcDraw, &rcT, GetSysColorBrush(COLOR_BTNFACE)); - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "Toolbar Space", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - - GetSizeRectForDocument(prcBounds, &rcT); - rcT.top = rcT.top + 25; - } - - clrT = SetTextColor(hdcDraw, GetSysColor(COLOR_BTNSHADOW)); - DrawText(hdcDraw, "ActiveX Document Object", -1, &rcT, DT_SINGLELINE|DT_VCENTER|DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - } - else if ((m_pDocObjFrame) && (!m_fAppActive || !m_fComponentActive) && (FDrawBitmapOnAppDeactive() || FIPDeactivateOnCompChange())) - { - // In the case we have more than one component, and this component is - // has an object but is not ui active we draw a bitmap representation - // of the obect to fill the area. This gives the user a sense the object - // is there but in background, and can click to reactivate... - GetSizeRectForDocument(prcBounds, &rcT); - - if (m_hbmDeactive) - { - HDC hdcT = CreateCompatibleDC(hdcDraw); - HBITMAP bmpOld = (HBITMAP)SelectObject(hdcT, m_hbmDeactive); - BITMAP bm; - - if (GetObject(m_hbmDeactive, sizeof(BITMAP), &bm)) - { - StretchBlt(hdcDraw, rcT.left, rcT.top, - (rcT.right - rcT.left), (rcT.bottom - rcT.top), - hdcT, 0, 0, bm.bmWidth, bm.bmHeight, SRCCOPY); - } - else - { - BitBlt(hdcDraw, rcT.left, rcT.top, - (rcT.right - rcT.left), (rcT.bottom - rcT.top), hdcT, 0,0, SRCCOPY); - } - - SelectObject(hdcT, bmpOld); - DeleteDC(hdcT); - } - else if (!m_fInDocumentLoad) - { - FillRect(hdcDraw, &rcT, hbshBackground); - rcT.top = ((rc.bottom - rc.top) / 2); - clrT = SetTextColor(hdcDraw, clrForeground); - DrawText(hdcDraw, "Unable to display inactive document. Click here to reactivate the object.", -1, &rcT, DT_WORDBREAK | DT_CENTER); - SetTextColor(hdcDraw, clrT); - } - } // else The docobj draws the rest... - - // Cleanup the hDC as required... - DeleteObject(hbshBackground); - DeleteObject(hbshBorder); - - SelectObject(hdcDraw, hfontOld); - DeleteObject(hfontText); - - if (hpal) - { - SelectPalette(hdcDraw, hpalOld, TRUE); - DeleteObject(hpal); - } - - SetBkMode(hdcDraw, iTxtMode); - SetMapMode(hdcDraw, iMapMode); - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDestroyWindow -// -// When the window closes make sure the object closes and release the -// subclass we have on the parent's top-level window. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDestroyWindow() -{ - ODS("CDsoFramerControl::OnDestroyWindow\n"); - - if (m_pDocObjFrame) - Close(); - - if (m_pHookManager) - { - m_pHookManager->DetachComponent(m_hwnd); - m_pHookManager = NULL; - } - - m_hwnd = NULL; - - if (m_pServerLock) - SetTempServerLock(FALSE); - - if (m_hbmDeactive) - { - DeleteObject(m_hbmDeactive); - m_hbmDeactive = NULL; - } - - if (m_hmenuFilePopup) - { - DestroyMenu(m_hmenuFilePopup); - m_hmenuFilePopup = NULL; - } - -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnResize -// -// Resize the window and notify the doc site. -// -STDMETHODIMP_(void) CDsoFramerControl::OnResize() -{ - RECT rcPlace; - ODS("CDsoFramerControl::OnResize\n"); - if (m_pDocObjFrame) - { - if (FChangeObjActiveOnFocusChange() && (!m_fUIActive)) - UIActivate(FALSE); - - GetSizeRectForDocument(NULL, &rcPlace); - m_pDocObjFrame->OnNotifySizeChange(&rcPlace); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnMouseMove -// -// We watch for mouse movement on menu bar (when visible). -// -STDMETHODIMP_(void) CDsoFramerControl::OnMouseMove(UINT x, UINT y) -{ - // TRACE2("CDsoFramerControl::OnMouseMove(%d, %d)\n", x, y); - // TRACE3(" fAppActive=%d, fUIActive=%d, fCompActive=%d\n", m_fAppActive, m_fUIActive, m_fComponentActive); - // TRACE2(" fModalState=%d, fNoInteractive=%d\n", m_fModalState, m_fNoInteractive); - - // When we are in mouse move, watch for menu selection. Only need to - // do this if bar is visible and we are not in modal state... - if ((m_fShowMenuBar) && (m_fComponentActive) && (m_fUIActive) && (m_fAppActive) && - (!m_fModalState) && (!m_fNoInteractive)) - { - UINT item; - POINT pt; pt.x = x; pt.y = y; - - // If we already have item selected, check to see if we are still - // over it. If so, we can exit now. If not, we sould unselect it. - if (m_wSelMenuItem) - { - item = m_wSelMenuItem - 1; - if (PtInRect(&m_rgrcMenuItems[item], pt)) - return; - - ReleaseCapture(); m_wSelMenuItem = 0; - InvalidateRect(m_hwnd, &m_rgrcMenuItems[item], FALSE); - } - - // Now loop through the menu items and see if mouse is over them. - // If it is, we set a mouse capture and draw item as selected... - for (item = 0; item < m_cMenuItems; item++) - { - if (PtInRect(&m_rgrcMenuItems[item], pt)) - { - SetCapture(m_hwnd); - m_wSelMenuItem = (USHORT)(item + 1); - InvalidateRect(m_hwnd, &m_rgrcMenuItems[item], FALSE); - break; - } - } - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnButtonDown -// -// We watch for mouse button down events when the titlebar is visible -// so we can drop down our popup menu if the user clicks around the -// area of the file icon. This is our workaround for menu merging. -// -STDMETHODIMP_(void) CDsoFramerControl::OnButtonDown(UINT x, UINT y) -{ - HMENU hCurMenu = NULL; - RECT rc; - - // Don't do anything if we are in modal state... - if (m_fModalState) return; - - // We don't handle commands when m_fNoInteractive is set, except for the - // condition where we are in print preview and want to display custom menu - // item to end the preview. Office apps have toolbar button to do this, but - // we will provide this option just in case user needs it to exit preview mode... - if (m_fNoInteractive) - { - if ((m_pDocObjFrame) && (m_pDocObjFrame->InPrintPreview())) - { - // If we don't have UI focus, take it... - if (!m_fUIActive) UIActivate(TRUE); - - // Create a temp popup menu. We do this on fly to save resources since - // this is only needed in rare cases... - if ((m_fShowTitlebar) && ((x < 22) && (y < 22))) - { - hCurMenu = CreatePopupMenu(); - if (hCurMenu) - { - // Add the command to the menu... - AppendMenu(hCurMenu, MF_STRING, MNU_PRINTPV, "E&xit Preview"); - // Display the menu... - GetSizeRectAfterTitlebar(NULL, &rc); - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&rc, 2); - TrackPopupMenu(hCurMenu, 0, rc.left, rc.top - 1, 0, m_hwnd, NULL); - // Cleanup... - DestroyMenu(hCurMenu); - hCurMenu = NULL; - } - } - } - - // Otherwise we do nothing when m_fNoInteractive == TRUE. - return; - } - - // We know we must be app active if user clicked on control... - if (!m_fAppActive) m_fAppActive = TRUE; - - // If we don't have UI focus, take it... - if (!m_fUIActive) UIActivate(TRUE); - - // If the caption is showing, we are not modal, and user clicked in the - // area around the office doc icon, show the popup menu... - if ((m_fShowTitlebar) && (!m_fShowMenuBar) && ((x < 22) && (y < 22))) - { - // This will get the File menu or the merged menu based on current state... - hCurMenu = GetActivePopupMenu(); - if (hCurMenu) - { - // We'll place it right below the titlebar just like sys menu... - GetSizeRectAfterTitlebar(NULL, &rc); - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&rc, 2); - TrackPopupMenu(hCurMenu, 0, rc.left, rc.top - 1, 0, m_hwnd, NULL); - } - } - else if ((m_fShowMenuBar) && (m_wSelMenuItem)) - { - POINT pt; - UINT item = m_wSelMenuItem - 1; - - // If we are over a visible menu bar item, find the right popup - // menu for the item using the selitem as an index... - if (item == 0) - { hCurMenu = m_hmenuFilePopup; } - else - { - hCurMenu = GetActivePopupMenu(); - if (hCurMenu) hCurMenu = GetSubMenu(hCurMenu, item); - } - - // Map the location to display the popup into screen points... - pt.x = m_rgrcMenuItems[item].left; - pt.y = m_rgrcMenuItems[item].bottom; - MapWindowPoints(m_hwnd, HWND_DESKTOP, (POINT*)&pt, 1); - - HWND hwndCurFocus = GetFocus(); - m_fInFocusChange = TRUE; - if (hwndCurFocus && (hwndCurFocus != m_hwnd)) - SetFocus(m_hwnd); - - // Display the menu... - TrackPopupMenu(hCurMenu, 0, pt.x, pt.y, 0, m_hwnd, NULL); - - if (hwndCurFocus && (hwndCurFocus != m_hwnd)) - SetFocus(hwndCurFocus); - m_fInFocusChange = FALSE; - - // When user clicks off, we will resolve the mouse location to - // our control coordinates and call mousemove to free/reset selection... - if (GetCursorPos(&pt)) - { - RECT rcMenu; GetSizeRectForMenuBar(NULL, &rcMenu); - MapWindowPoints(HWND_DESKTOP, m_hwnd, (POINT*)&pt, 1); - if (!PtInRect(&rcMenu, pt)) {pt.x = 0; pt.y = 0;} - } - else {pt.x = 0; pt.y = 0;} - OnMouseMove(pt.x, pt.y); - } - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnMenuMessage -// -// We should get these messages when we are displaying the popup menu. -// The "File" menu is ours, but the popup may have other menus copied -// from the merged menu set by the ui active docobject, so we need to -// forward those messages (as needed) to the right window handler. -// -// In addition, code is added to enable/disable File menu items based -// on flags set by developer in EnableFileCommand, and/or call the -// correct function if one of those commands was selected by user. -// -STDMETHODIMP_(void) CDsoFramerControl::OnMenuMessage(UINT msg, WPARAM wParam, LPARAM lParam) -{ - HMENU hmenu, hmenuMerged = NULL; - BOOL fAlwaysSendMessage = FALSE; - HWND hwndObjectMenu = NULL; - - if (m_pDocObjFrame) - { - hwndObjectMenu = m_pDocObjFrame->GetMenuHWND(); - hmenuMerged = m_pDocObjFrame->GetMergedMenu(); - } - - switch (msg) - { - case WM_INITMENU: m_fObjectMenu = FALSE; //fall through... - case WM_ENTERIDLE: fAlwaysSendMessage = TRUE; - break; - - case WM_MENUSELECT: - if ((lParam == 0) && (HIWORD(wParam) == 0xFFFF)) - fAlwaysSendMessage = TRUE; - break; - - case WM_INITMENUPOPUP: - hmenu = (HMENU)wParam; - m_fObjectMenu = ((hmenu != m_hmenuFilePopup) && (hmenu != hmenuMerged)); - - if ((!m_fObjectMenu) && (hmenu == m_hmenuFilePopup)) - { - EnableMenuItem(hmenu, MNU_NEW, MF_BYCOMMAND | ((m_wFileMenuFlags & 1) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_OPEN, MF_BYCOMMAND | ((m_wFileMenuFlags & 2) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_CLOSE, MF_BYCOMMAND | (((m_wFileMenuFlags & 4) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_SAVE, MF_BYCOMMAND | (((m_wFileMenuFlags & 8) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_SAVEAS, MF_BYCOMMAND | (((m_wFileMenuFlags & 16) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PGSETUP, MF_BYCOMMAND | (((m_wFileMenuFlags & 64) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PRINTPV, MF_BYCOMMAND | (((m_wFileMenuFlags & 256) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PRINT, MF_BYCOMMAND | (((m_wFileMenuFlags & 32) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - EnableMenuItem(hmenu, MNU_PROPS, MF_BYCOMMAND | (((m_wFileMenuFlags & 128) && (m_pDocObjFrame)) ? MF_ENABLED : (MF_DISABLED | MF_GRAYED))); - } - break; - - case WM_COMMAND: - // We handle one special case for print preview exit, but otherwise - // we need to either forward to the merged menu handler (if enabled), - // or handle command through an asynchronous callback... - if ((m_fNoInteractive) && (LOWORD(wParam) == MNU_PRINTPV)) - { - PrintPreviewExit(); - } - else if ((m_fObjectMenu) && (hwndObjectMenu)) - { - PostMessage(hwndObjectMenu, msg, wParam, lParam); - } - else - { - DWORD dwCmd = 0; - switch ((int)LOWORD(wParam)) - { - case MNU_NEW: dwCmd = OLECMDID_NEW; break; - case MNU_OPEN: dwCmd = OLECMDID_OPEN; break; - case MNU_SAVE: dwCmd = OLECMDID_SAVE; break; - case MNU_SAVEAS: dwCmd = OLECMDID_SAVEAS; break; - case MNU_PGSETUP: dwCmd = OLECMDID_PAGESETUP; break; - case MNU_PRINT: dwCmd = OLECMDID_PRINT; break; - case MNU_PROPS: dwCmd = OLECMDID_PROPERTIES; break; - case MNU_PRINTPV: dwCmd = OLECMDID_PRINTPREVIEW; break; - } - PostMessage(m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, dwCmd, 0); - } - - return; // we just return - } - - if ((hwndObjectMenu) && ((m_fObjectMenu) || (fAlwaysSendMessage))) - SendMessage(hwndObjectMenu, msg, wParam, lParam); - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnToolbarAction -// -// Does an associated OLECMDID action and raises the OnFileCommand event -// for developer to override as needed. The name comes from the fact that -// most Office servers will call this (via IOleCommandTarget) when user -// clicks on a toolbar button for file-command item. It also serves for -// our menu commands to keep the code consistant. Both menu and toolbar -// call this method asynchronously (via PostMessage) to avoid blocking the -// remote docobject server. -// -STDMETHODIMP_(void) CDsoFramerControl::OnToolbarAction(DWORD cmd) -{ - ODS("CDsoFramerControl::OnToolbarAction\n"); - HRESULT hr = S_OK; - VARIANT_BOOL wCancelAction = VARIANT_FALSE; - VARIANT rgargs[2]; - VARIANT vtT = {0}; - - // We don't reenter if in a modal state already... - if (m_fModalState) return; - - // If not interactive, we cannot run command... - if (m_fNoInteractive) - { - // unless we are in preview, in which case we can force exit - // and then run command after preview completes... - if ((m_pDocObjFrame) && (m_pDocObjFrame->InPrintPreview())) - { - PrintPreviewExit(); - if (cmd != OLECMDID_PRINTPREVIEW) - PostMessage(m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, cmd, 0); - } - return; - } - - // We will do a default action by default, but give developer a chance - // to override in OnFileCommand event... - rgargs[0].vt = VT_BOOL|VT_BYREF; - rgargs[0].pboolVal = &wCancelAction; - - // Map the OLECMDID to one of our values... - rgargs[1].vt = VT_I4; - switch (cmd) - { - case OLECMDID_NEW: rgargs[1].lVal = dsoFileNew; break; - case OLECMDID_OPEN: rgargs[1].lVal = dsoFileOpen; break; - case OLECMDID_SAVE: rgargs[1].lVal = dsoFileSave; break; - case OLECMDID_SAVEAS: rgargs[1].lVal = dsoFileSaveAs; break; - case OLECMDID_PRINT: rgargs[1].lVal = dsoFilePrint; break; - case OLECMDID_PAGESETUP: rgargs[1].lVal = dsoFilePageSetup; break; - case OLECMDID_PROPERTIES: rgargs[1].lVal = dsoFileProperties; break; - case OLECMDID_PRINTPREVIEW: rgargs[1].lVal = dsoFilePrintPreview; break; - default: rgargs[1].lVal = dsoFileClose; - } - - // Only do action if item is enabled... - if ((1 << rgargs[1].lVal) & m_wFileMenuFlags) - { - // Let control developer handle the event first... - hr = RaiseAutomationEvent(DSOF_DISPID_FILECMD, 2, rgargs); - TRACE1("Disp event returned 0x%X \n", hr); - - // If the event was canceled (or event handler threw an - // unhandled error from user code), bail out now... - if ((wCancelAction) || (hr == DISP_E_EXCEPTION)) - return; - - // Do the action based on the event... - switch (rgargs[1].lVal) - { - case dsoFileClose: hr = Close(); break; - case dsoFilePrint: hr = ShowDialog(dsoDialogPrint); break; - case dsoFilePageSetup: hr = ShowDialog(dsoDialogPageSetup); break; - case dsoFileProperties: hr = ShowDialog(dsoDialogProperties); break; - case dsoFilePrintPreview: hr = PrintPreview(); break; - - case dsoFileSave: - hr = Save(vtT, vtT, vtT, vtT); - if ((hr != DSO_E_DOCUMENTREADONLY) && - (hr != DSO_E_NOTBEENSAVED)) - break; // fall through to SaveAs if file is read-only or never been saved... - - default: - hr = DoDialogAction( - (rgargs[1].lVal == dsoFileNew) ? dsoDialogNew : - (rgargs[1].lVal == dsoFileOpen) ? dsoDialogOpen : dsoDialogSave); - } - - // Display error information to user if we failed... - if (FAILED(hr) && (hr != E_ABORT)) - FAlertUser(hr, NULL); - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::FAlertUser -// -// Display an error alert to the user based on failed HRESULT. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::FAlertUser(HRESULT hr, LPWSTR pwsFileName) -{ - LPSTR pszError = NULL; - LPSTR pszTitle = NULL; - DWORD dwFlags = MB_ICONINFORMATION|MB_SETFOREGROUND; - - switch (hr) - { - case STG_E_ACCESSDENIED: - case STG_E_SHAREVIOLATION: - case STG_E_LOCKVIOLATION: - case MK_E_CANTOPENFILE: - case E_ACCESSDENIED: - pszError = "Unable to Open/Save the file selected due to security permissions or a share violation."; - pszTitle = "Access Denied"; - break; - - case DSO_E_DOCUMENTNOTOPEN: - pszError = "The operation could not be performed because no document is currently open."; - pszTitle = "Unable to Perform Command"; - break; - - case DSO_E_DOCUMENTREADONLY: - pszError = "The operation could not be performed because the document was opened read-only."; - pszTitle = "Unable to Update Document"; - break; - - case CO_E_MSI_ERROR: - case DSO_E_INVALIDSERVER: - case DSO_E_INVALIDPROGID: - case STG_E_NOTFILEBASEDSTORAGE: - pszError = "There is no ActiveX Document server currently registered or installed for the item selected. " - "It cannot be loaded into the control."; - pszTitle = "Unable to Insert Document"; - break; - - case DSO_E_INMODALSTATE: - MessageBeep(0); - return FALSE; // Unable to alert user if in a modal condition! - - case DSO_E_COMMANDNOTSUPPORTED: - pszError = "This operation could not be performed because the document server " - "does not support the command, or it is disabled when embedded."; - pszTitle = "Command Not Supported"; - break; - - case STG_E_TOOMANYOPENFILES: - pszError = "You can only open one document at a time. Please choose a single file to open."; - pszTitle = "Command Not Supported"; - break; - - case DSO_E_REQUIRESMSDAIPP: - pszError = "You cannot open/save to a web folder unless MDAC 2.5 is installed. The operation cannot be performed."; - pszTitle = "Unable to Gain Write Access for URL"; - break; - - default: - pszError = "The program encountered an error trying to perform the command. " - "If the problem persists, contact the program vendor for a possible solution."; - pszTitle = "Command Error"; - dwFlags = MB_ICONHAND|MB_SETFOREGROUND; - } - - MessageBox(m_hwnd, pszError, pszTitle, dwFlags); - return TRUE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::EnableDropFile -// -// Decide when to allow file drop for open. -// -STDMETHODIMP_(void) CDsoFramerControl::EnableDropFile(BOOL fEnable) -{ - TRACE1("CDsoFramerControl::EnableDropFile(%d)\n", fEnable); - DragAcceptFiles(m_hwnd, fEnable); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnDropFile -// -// Open file dropped by user on the control. -// -STDMETHODIMP_(void) CDsoFramerControl::OnDropFile(HDROP hdrpFile) -{ - DWORD cbItems; - CHAR szFileDrop[MAX_PATH]; - VARIANT vtFile; - - ODS("CDsoFramerControl::OnDropFile()\n"); - cbItems = DragQueryFile(hdrpFile, 0xFFFFFFFF, NULL, 0); - if (cbItems == 0) - return; - - if (cbItems > 1) - { - FAlertUser(STG_E_TOOMANYOPENFILES, NULL); - return; - } - - szFileDrop[0] = 0; - vtFile.vt = VT_BSTR; - - if (DragQueryFile(hdrpFile, 0, szFileDrop, MAX_PATH) && - (vtFile.bstrVal = DsoConvertToBSTR(szFileDrop))) - { - HRESULT hr; - VARIANT vtMissing; - vtMissing.vt = VT_ERROR; - vtMissing.scode = DISP_E_PARAMNOTFOUND; - - hr = Open(vtFile, vtMissing, vtMissing, vtMissing, vtMissing); - if (FAILED(hr)) FAlertUser(hr, vtFile.bstrVal); - - VariantClear(&vtFile); - } - - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnTimer -// -// Timer event fired. -// -STDMETHODIMP_(void) CDsoFramerControl::OnTimer(UINT id) -{ - // TRACE1("CDsoFramerControl::OnTimer(%d)\n", id); - switch (id) - { - case SYNCPAINT_TIMER_ID: - { - DWORD dwTick = GetTickCount(); - if ((dwTick - m_uiSyncPaint) > 300) - { - ODS("CDsoFramerControl::OnSyncPaint() Invalidate\n"); - KillTimer(m_hwnd, SYNCPAINT_TIMER_ID); - m_fSyncPaintTimer = FALSE; - InvalidateAllChildWindows(m_hwnd); - } - } - break; - } - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnSyncPaint -// -// Notifies redraw is needed b/c of external window movement. -// -STDMETHODIMP_(void) CDsoFramerControl::OnSyncPaint() -{ - // ODS("CDsoFramerControl::OnSyncPaint()\n"); - m_uiSyncPaint = GetTickCount(); - if ((!m_fSyncPaintTimer) && (!m_fAppActive)) - { - SetTimer(m_hwnd, SYNCPAINT_TIMER_ID, 50, NULL); - m_fSyncPaintTimer = TRUE; - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnForegroundCompChange -// -// Shows/Hide embedding when window goes foreground/background active. -// -STDMETHODIMP_(void) CDsoFramerControl::OnForegroundCompChange(BOOL fCompActive) -{ - ODS("CDsoFramerControl::OnForegroundCompChange\n"); - if (m_pDocObjFrame) - { - HWND hwndEmbed = m_pDocObjFrame->GetDocWindow(); - - if (fCompActive) - { - // Make sure embed window is visible when active... - if (!IsWindowVisible(hwndEmbed)) - ShowWindow(hwndEmbed, SW_SHOW); - - if (m_hbmDeactive) DeleteObject(m_hbmDeactive); - m_hbmDeactive = NULL; - } - else if ((FDrawBitmapOnAppDeactive() || FIPDeactivateOnCompChange()) && (m_hbmDeactive == NULL)) - { - // The default behavior on app deactive is to grap bitmap of active object before - // telling it we lost app activation. This allows us to draw the last state of the - // object while it is deactive. There is now an option to avoid this and keep object - // UI active while app deactive, but it may not work for all DocObj servers. - m_hbmDeactive = DsoGetBitmapFromWindow(hwndEmbed); - ShowWindow(hwndEmbed, SW_HIDE); - } - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnAppActivationChange -// -// Notifes embedded object when the host app gains/loses foreground status -// as the active application. This notification is critical to DocObjects since -// it is the primary means for the host and server to synch which top-level -// frame window (the host or the server's native main window) should be on the -// z-order stack for the shared thread input state. Thus allowing dialogs and tool -// windows to appear the correct order when displayed. -// -STDMETHODIMP_(void) CDsoFramerControl::OnAppActivationChange(BOOL fAppActive, DWORD dwThreadID) -{ - TRACE2("CDsoFramerControl::OnAppActivationChange(fAppActive=%d, tid=0x%X)\n", fAppActive, dwThreadID); - m_fAppActive = fAppActive; - - if ((m_pDocObjFrame) && (m_fComponentActive)) - { - // Create/Free bitmap for background appearance.. - OnForegroundCompChange(fAppActive); - - // Notify it that it should be app active ofr deactive... - m_pDocObjFrame->OnNotifyAppActivate(fAppActive, (dwThreadID ? dwThreadID : GetCurrentThreadId())); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnComponentActivationChange -// -// Handles showing/hiding doc object during activation state changes. -// This is needed to properly handle focus changes when more than one -// instance of the control is running on the same top-level window. -// -STDMETHODIMP_(void) CDsoFramerControl::OnComponentActivationChange(BOOL fActivate) -{ - TRACE1("CDsoFramerControl::OnComponentActivationChange(fActive=%d)\n", fActivate); - - if (fActivate) - { - // Set us active if we currently are not and raise activation change event... - if (!m_fComponentActive) - { - m_fComponentActive = TRUE; - OnForegroundCompChange(TRUE); - // Raise event to component host on state change... - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_ACTIVATION, (LPARAM)fActivate); - } - - // Notify the embedded object... - if (m_pDocObjFrame) - { - // Determine if we should restore from IP deactivation... - if (FIPDeactivateOnCompChange() && !(m_pDocObjFrame->IsIPActive())) - { - m_pDocObjFrame->IPActivateView(); - OnForegroundCompChange(TRUE); - } - } - } - else - { - - // Inform embedded object we lost activation... - if (m_pDocObjFrame) - { - // If we are in print preview, we need to exit in case other control will - // end up talking to same OLE server... - if (m_pDocObjFrame->InPrintPreview()) - { - PrintPreviewExit(); - UpdateWindow(m_hwnd); - } - - // Provide control host option to IP deactive view when another framer control - // takes primary focus. This helps certain resource problems if you a lot of controls - // all IP active at the same time. This should not normally be used. - if (FIPDeactivateOnCompChange() && m_pDocObjFrame->IsIPActive()) - { - OnForegroundCompChange(FALSE); - m_pDocObjFrame->IPDeactivateView(); - } - - } - - // Change the current activation state and raise event... - if (m_fComponentActive) - { - m_fComponentActive = FALSE; - OnForegroundCompChange(FALSE); - // Raise event to component host on state change... - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_ACTIVATION, (LPARAM)fActivate); - } - - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnCtrlFocusChange -// -// Checks if window (or one of its children) is getting or losing focus so -// that can notify both the host and embed server using OnUIFocusChange. -// -STDMETHODIMP_(void) CDsoFramerControl::OnCtrlFocusChange(BOOL fCtlGotFocus, HWND hFocusWnd) -{ - TRACE2("CDsoFramerControl::OnCtrlFocusChange(fCtlGotFocus=%d, hwndCurFocus=%x)\n", fCtlGotFocus, hFocusWnd); - if (!(m_fInFocusChange) && ((fCtlGotFocus) || !IsWindowChild(m_hwnd, hFocusWnd))) - { - OnUIFocusChange(fCtlGotFocus); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnUIFocusChange -// -// Selectively handle focus changes to make sure both host and ui -// active docobject are in synch. -// -STDMETHODIMP_(void) CDsoFramerControl::OnUIFocusChange(BOOL fUIActive) -{ - BOOL fFocusUpdated = FALSE; - TRACE1("CDsoFramerControl::OnUIFocusChange(fUIActive=%d)\n", fUIActive); - - // We shouldn't try to do focus change when modal... - if ((m_fModalState) || (m_fInFocusChange)) - { - ODS(" -- Got focus while modal or in change (do nothing) --\n"); - return; - } - - // When IP active, notify the control host of focus change... - if ((m_fInPlaceActive) && (m_pControlSite)) - { - - // Set flag to prevent recursion during focus changes... - m_fInFocusChange = TRUE; - - if (fUIActive) // If we got focus... - { - // Notify host we have focus (we only need - // to do this if we are not already UI Active)... - if (!(m_fHasFocus)) - { - ODS(" -- Tell host app we should have focus --\n"); - m_fHasFocus = (fFocusUpdated = TRUE); - m_pControlSite->OnFocus(TRUE); - } - - // Let the hook manager know that this control is the active object... - if (m_pHookManager) - m_pHookManager->SetActiveComponent(m_hwnd); - - // If so configured, force component to show up active... - if (FChangeObjActiveOnFocusChange()) - { - ODS(" -- Do component active on focus gain --\n"); - OnComponentActivationChange(TRUE); - } - - // If we have an active document, forward the focus... - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyControlFocus(TRUE); - - } - else // else we lost focus... - { - - // When we lose focus, only notify host if we lost to window - // that does not belong to us... - if (m_pDocObjFrame) - m_pDocObjFrame->OnNotifyControlFocus(FALSE); - - // If so configured, force component loss on focus loss... - if (FChangeObjActiveOnFocusChange()) - { - ODS(" -- Do component deactive on focus loss --\n"); - OnComponentActivationChange(FALSE); - m_fActivateOnStatus = TRUE; - } - - // If we are UI active still, we need to tell host that we lost - // focus and are now UI deactive. - if (m_fHasFocus) - { - ODS(" -- Notify host of lost focus (ie, UI deactivate us) --\n"); - m_fHasFocus = FALSE; fFocusUpdated = TRUE; - m_pControlSite->OnFocus(FALSE); - } - } - - // Clear focus change flag... - m_fInFocusChange = FALSE; - - // Redraw menu bar in case of state change - if ((fFocusUpdated) && (m_fShowMenuBar)) - { - RECT rc; GetSizeRectForMenuBar(NULL, &rc); - InvalidateRect(m_hwnd, &rc, TRUE); - } - } - - return; -} -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UpdateModalState -// -// Called either by developer (ModalState property) or by the embedded -// DocObject to notify host (VB/IE) that we are modal. -// -STDMETHODIMP_(void) CDsoFramerControl::UpdateModalState(BOOL fModeless, BOOL fNotifyIPObject) -{ - TRACE2("CDsoFramerControl::UpdateModalState(AllowModeless=%d, NotifyIP=%d)\n", fModeless, fNotifyIPObject); - if (fModeless == (int)m_fModalState) - { - IOleInPlaceActiveObject* pipao; - - m_fModalState = !(fModeless); - ODS("Modal state changed\n"); - - // Excel doesn't like us to notify the host of changes in modality - // if it is the one who initialied the call. So, we check the - // NotifyIPObj flag and only notify host when the IPObj is not the caller... - if ((fNotifyIPObject) && (m_pInPlaceFrame)) - m_pInPlaceFrame->EnableModeless(fModeless); - - // Again, if IPObj is not the caller and we have Ipobj, let it know - // of the change in modal state... - if ((fNotifyIPObject) && (m_pDocObjFrame) && - (pipao = m_pDocObjFrame->GetActiveObject())) - pipao->EnableModeless(fModeless); - - // Post notification of return from modal... - if (fModeless) - PostMessage(m_hwnd, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_RETURNFROMMODAL, (LPARAM)TRUE); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::UpdateInteractiveState -// -// Called when interactivity changes (mostly due to print preview). -// -STDMETHODIMP_(void) CDsoFramerControl::UpdateInteractiveState(BOOL fActive) -{ - if (fActive) - { - m_fNoInteractive = FALSE; - if (m_fShowMenuPrev) put_Menubar(VARIANT_TRUE); - if (!m_fShowToolsPrev) put_Toolbars(VARIANT_FALSE); - - // Notify control host that preview mode has ended... - RaiseAutomationEvent(DSOF_DISPID_ENDPREVIEW, 0, NULL); - } - else - { - m_fShowMenuPrev = m_fShowMenuBar; - m_fShowToolsPrev = m_fShowToolbars; - if (m_fShowMenuBar) put_Menubar(VARIANT_FALSE); - if (!m_fShowToolbars) put_Toolbars(VARIANT_TRUE); - m_fNoInteractive = TRUE; - } - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnPaletteChanged -// -// This method is also called from the subclassed parent. Per docobject -// spec, a ui active object should get first chance of any palette updates. -// -STDMETHODIMP_(void) CDsoFramerControl::OnPaletteChanged(HWND hwndPalChg) -{ - ODS("CDsoFramerControl::OnPaletteChanged\n"); - if (m_pDocObjFrame) m_pDocObjFrame->OnNotifyPaletteChanged(hwndPalChg); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::OnSysCommandMenu -// -// Checks for menu shortcut keys when ui active. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::OnSysCommandMenu(CHAR ch) -{ - if (m_fUIActive) - { - TRACE1("CDsoFramerControl::OnSysCommandMenu(%d)\n", (DWORD)ch); - return TRUE; - } - return FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::GetActivePopupMenu -// -// Constructs our popup menu and returns the handle. The menu can be -// either the File menu by itself (no docobj is open) or the merged -// menu as a popup. -// -STDMETHODIMP_(HMENU) CDsoFramerControl::GetActivePopupMenu() -{ - HMENU hPopup, hMergedMenu, hServerMenu; - - // If we haven't made a File menu yet, make it. Here is where you might - // want to add custom items if you have other file-level commands you would - // the control to support. These are the basics... - if (!m_hmenuFilePopup) - { - m_hmenuFilePopup = CreatePopupMenu(); m_cMenuItems = 0; - if (!m_hmenuFilePopup) return NULL; - - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_NEW, "&New...\tCtrl+N"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_OPEN, "&Open...\tCtrl+O"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_CLOSE, "&Close"); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_SAVE, "&Save\tCtrl+S"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_SAVEAS, "Save &As..."); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PGSETUP, "Page Set&up..."); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PRINTPV, "Print Pre&view"); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PRINT, "&Print..."); - AppendMenu(m_hmenuFilePopup, MF_SEPARATOR, 0, NULL); - AppendMenu(m_hmenuFilePopup, MF_STRING, MNU_PROPS, "Propert&ies"); - } - - // If we have a docobj and it has a merged menu, then lets return a - // merged menu between the docobj and our file menu... - if ((m_pDocObjFrame) && (m_pDocObjFrame->GetMenuHWND())) - { - // We only need to create the merged copy once. - if (!(hMergedMenu = m_pDocObjFrame->GetMergedMenu())) - { - hMergedMenu = CreatePopupMenu(); m_cMenuItems = 0; - if ((hMergedMenu) && (hServerMenu = (m_pDocObjFrame->GetActiveMenu()))) - { - CHAR szbuf[MAX_PATH]; - HMENU hT; - CHAR *pch; - - InsertMenu(hMergedMenu, 0, MF_BYPOSITION|MF_POPUP, (UINT)m_hmenuFilePopup, "&File"); - m_rgchMenuAccel[0] = 'f'; - - int cbMenuCnt = GetMenuItemCount(hServerMenu); - if (cbMenuCnt > DSO_MAX_MENUITEMS) cbMenuCnt = DSO_MAX_MENUITEMS; - - for (int i = 0; i < cbMenuCnt; i++) - { - hT = GetSubMenu(hServerMenu, i); - if (hT) - { - szbuf[0] = '\0'; - GetMenuString(hServerMenu, i, szbuf, MAX_PATH, MF_BYPOSITION); - InsertMenu(hMergedMenu, (i + 1), MF_BYPOSITION|MF_POPUP, (UINT)hT, szbuf); - - pch = szbuf; - while (*pch && (*pch++ != '&')) - ; - m_rgchMenuAccel[i + 1] = (CHAR)((*pch) ? ASCII_LOWERCASE(*pch) : 0xFF); - } - } - - if (cbMenuCnt < DSO_MAX_MENUITEMS) - m_rgchMenuAccel[cbMenuCnt + 1] = 0x00; - - m_pDocObjFrame->SetMergedMenu(hMergedMenu); - } - } - - hPopup = hMergedMenu; - } - else - { - hPopup = m_hmenuFilePopup; - m_rgchMenuAccel[0] = 'f'; - m_rgchMenuAccel[1] = 0; - } - - return hPopup; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::FRunningInDesignMode -// -// Determines if we are in design mode. Called when painting the control -// and when deciding whether to subclass the parent. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::FRunningInDesignMode() -{ - IDispatch *pdisp; - - // We must have a control site. - CHECK_NULL_RETURN(m_pClientSite, FALSE); - - // If we have done this before, we don't need to keep doing it unless - // the host has notified us of the state change (see our code in - // XOleControl::OnAmbientPropertyChange)... - if ((!m_fModeFlagValid) && - SUCCEEDED(m_pClientSite->QueryInterface(IID_IDispatch, (void **)&pdisp))) - { - VARIANT vtUserMode; - m_fDesignMode = FALSE; // assume run mode - - if (SUCCEEDED(DsoDispatchInvoke(pdisp, NULL, - DISPID_AMBIENT_USERMODE, DISPATCH_PROPERTYGET, 0, NULL, &vtUserMode))) - { - // UserMode is True when control is in Run mode, False when in design. - // We assume run mode, so we only care to set the flag if in design. - m_fDesignMode = !(BOOL_FROM_VARIANT(vtUserMode, TRUE)); - VariantClear(&vtUserMode); - } - - m_fModeFlagValid = TRUE; - // Release the IDispatch pointer... - pdisp->Release(); - } - - return m_fDesignMode; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::InvalidateAllChildWindows -// -// Invalidate all child windows attached to the window passed. -// -STDMETHODIMP_(BOOL) CDsoFramerControl::InvalidateAllChildWindows(HWND hwnd) -{ - ODS("CDsoFramerControl::InvalidateAllChildWindows()\n"); - return EnumChildWindows(hwnd, InvalidateAllChildWindowsCallback, 0); -} - -STDMETHODIMP_(BOOL) CDsoFramerControl::InvalidateAllChildWindowsCallback(HWND hwnd, LPARAM lParam) -{ - RECT rc; - GetClientRect(hwnd, &rc); - InvalidateRect(hwnd, &rc, TRUE); - return TRUE; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::RaiseAutomationEvent -// -// Raises automation events to host application. -// -STDMETHODIMP CDsoFramerControl::RaiseAutomationEvent(DISPID did, ULONG cargs, VARIANT *pvtargs) -{ - HRESULT hr = ((m_fModalState) ? DISP_E_EXCEPTION : S_FALSE); - TRACE1("CDsoFramerControl::RaiseAutomationEvent(%d)\n", did); - - // We should only raise event if we have sink, not already in a event, and - // we are not in modal condition with respect to the remote server... - if ((m_dispEvents) && (!m_fFreezeEvents) && (!m_fModalState)) - { - m_fFreezeEvents = TRUE; - hr = DsoDispatchInvoke(m_dispEvents, NULL, did, 0, cargs, pvtargs, NULL); - m_fFreezeEvents = FALSE; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::DoDialogAction -// -// A very simple implementation of a New/Open/Save dialogs to serve as -// default actions in case developer does not override these "File" -// commands in OnFileCommand. -// -STDMETHODIMP CDsoFramerControl::DoDialogAction(dsoShowDialogType item) -{ - HRESULT hr = S_FALSE; - BSTR bstr; - BOOL fReadOnly; - VARIANT vT[3]; - - static const WCHAR v_wszFileFilter[] = - L"Microsoft Office Files\0*.doc;*.docx;*.docm;*.rtf;*.xls;*.xlsx;*.xlsm;*.csv;*.ppt;*.pptx;*.pptm;*.mpp;*.vsd;*.vdx\0" - L"Microsoft Word Files\0*.doc;*.docx;*.docm;*.rtf\0" - L"Microsoft Excel Files\0*.xls;*.xlsx;*.xlsm;*.csv\0" - L"Microsoft PowerPoint Files\0*.ppt;*.pptx;*.pptm\0" - L"Microsoft Project Files\0*.mpp\0" - L"Microsoft Visio Files\0*.vsd;*.vdx\0" - L"All Files (*.*)\0*.*\0\0"; - - // Switch on the action type... - switch (item) - { - case dsoDialogOpen: // Get file from user and call Open... - if (SUCCEEDED(DsoGetFileFromUser(m_hwnd, NULL, (OFN_FILEMUSTEXIST|OFN_EXPLORER), - v_wszFileFilter, 1, NULL, NULL, FALSE, &bstr, &fReadOnly))) - { - vT[0].vt = VT_BSTR; vT[0].bstrVal = bstr; - vT[1].vt = VT_BOOL; vT[1].boolVal = (fReadOnly ? VARIANT_TRUE : VARIANT_FALSE); - vT[2].vt = VT_ERROR; vT[2].scode = DISP_E_PARAMNOTFOUND; - - hr = Open(vT[0], vT[1], vT[2], vT[2], vT[2]); - SysFreeString(bstr); - } - break; - - case dsoDialogSave: // Get file from user and call Save... - { - LPWSTR pwszSaveType = NULL; - LPWSTR pwszDefExt = NULL; - - if (m_pDocObjFrame) - m_pDocObjFrame->GetDocumentTypeAndFileExtension(&pwszSaveType, &pwszDefExt); - - if (SUCCEEDED(DsoGetFileFromUser(m_hwnd, NULL, (OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT|OFN_EXPLORER), - ((pwszSaveType) ? pwszSaveType : v_wszFileFilter), 1, pwszDefExt, NULL, TRUE, &bstr, NULL))) - { - vT[0].vt = VT_BSTR; vT[0].bstrVal = bstr; - vT[1].vt = VT_BOOL; vT[1].boolVal = VARIANT_TRUE; - vT[2].vt = VT_ERROR; vT[2].scode = DISP_E_PARAMNOTFOUND; - - hr = Save(vT[0], vT[1], vT[2], vT[2]); - SysFreeString(bstr); - } - - if (pwszSaveType) DsoMemFree(pwszSaveType); - if (pwszDefExt) DsoMemFree(pwszDefExt); - } - break; - - case dsoDialogNew: // Get either ProgID or File to create new object from... - if (SUCCEEDED(DsoGetOleInsertObjectFromUser(m_hwnd, L"Insert New Document Object", - (IOF_SELECTCREATENEW | IOF_DISABLELINK | IOF_DISABLEDISPLAYASICON | IOF_HIDECHANGEICON), - TRUE, FALSE, &bstr, NULL))) - { - hr = CreateNew(bstr); - SysFreeString(bstr); - } - break; - - default: MessageBeep(0); - } - - return hr; -} -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::SetTempServerLock -// -// Sets up lock of OLE server to make unload and new load of files faster -// and to avoid race conditions on reload of file. -// -STDMETHODIMP CDsoFramerControl::SetTempServerLock(BOOL fLock) -{ - HRESULT hr = S_FALSE; - TRACE1("CDsoFramerControl::SetTempServerLock(%d)\n", fLock); - - if (fLock) - { - CLSID *pclsid; - - // First get the the CLSID of the current loaded object... - pclsid = m_pDocObjFrame->GetServerCLSID(); - - // If we already have a lock, determine if user is asking us to lock - // the same server (we only lock once for a given server type)... - if (m_pServerLock) - { - if (*(m_pServerLock->GetServerCLSID()) == *pclsid) - return S_FALSE; - - // If the current document is from a different server, free the old lock... - hr = SetTempServerLock(FALSE); - ASSERT(SUCCEEDED(hr)); // Sanity check in debug... - } - - // To lock the server, just make a dummy OLE object and don't ever site it... - m_pServerLock = CDsoDocObject::CreateInstance((IDsoDocObjectSite*)&m_xDsoDocObjectSite); - hr = ((m_pServerLock) ? m_pServerLock->CreateDocObject(*pclsid) : E_OUTOFMEMORY); - if (SUCCEEDED(hr)) - { - hr = m_pServerLock->SetRunningServerLock(TRUE); - - // If we lock Excel, it steals focus from this host to the lock object, so we - // need to take it back so the real object isn't mixed up state... - if (SUCCEEDED(hr) && (m_pServerLock->IsExcelObject()) && (m_fAppActive)) - { - OnAppActivationChange(TRUE, 0); - } - } - else - { - delete m_pServerLock; - m_pServerLock = NULL; - } - - } - else if (m_pServerLock) - { - SEH_TRY - hr = m_pServerLock->SetRunningServerLock(FALSE); - hr = m_pServerLock->Close(); - SEH_EXCEPT(hr) - - ASSERT(SUCCEEDED(hr)); // Sanity check in debug... - delete m_pServerLock; - m_pServerLock = NULL; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ResetFrameHook -// -// Allows host to reset the frame hook. -// -STDMETHODIMP CDsoFramerControl::ResetFrameHook(HWND hwndFrameWindow) -{ - DWORD dwProcessId; - TRACE1("CDsoFramerControl::ResetFrameHook(%d)\n", hwndFrameWindow); - - // If the control is in modal state, we can't do anything... - if ((m_fModalState) || (m_fNoInteractive)) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Verify that hwnd passed is a valid window handle and belogs to same thread - // as the control for parenting purposes... - if ((hwndFrameWindow) && (!IsWindow(hwndFrameWindow) || - (GetWindowThreadProcessId(hwndFrameWindow, &dwProcessId), dwProcessId != GetCurrentProcessId()))) - return E_INVALIDARG; - - // We must have a window already created for this to work... - if ((m_hwnd == NULL) || !IsWindow(m_hwnd) || - (m_hwndParent == NULL) || !IsWindow(m_hwndParent)) - return E_ACCESSDENIED; - - // Detach from the current window (removing that hook if this is the last component)... - if (m_pHookManager) - { - HRESULT hr = m_pHookManager->DetachComponent(m_hwnd); - if (FAILED(hr)) return hr; - m_pHookManager = NULL; - } - - // Now attach to the new parent window (or reattach based on the parent from our window)... - m_pHookManager = CDsoFrameHookManager::RegisterFramerControl((hwndFrameWindow ? hwndFrameWindow : m_hwndParent), m_hwnd); - if (m_pHookManager == NULL) return E_FAIL; - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::RaiseActivationEvent -// -// Called to raise component change event on activation switch. -// -STDMETHODIMP_(void) CDsoFramerControl::RaiseActivationEvent(BOOL fActive) -{ - VARIANT rgargs[1]; rgargs[0].vt = VT_BOOL; - rgargs[0].boolVal = (fActive ? VARIANT_TRUE : VARIANT_FALSE); - RaiseAutomationEvent(DSOF_DISPID_ACTIVATE, 1, rgargs); - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::ControlWindowProc -// -// The window proc for our control. -// -STDMETHODIMP_(LRESULT) CDsoFramerControl::ControlWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoFramerControl* pCtl = (CDsoFramerControl*)GetWindowLong(hwnd, GWL_USERDATA); - if (pCtl) - { - switch (msg) - { - case WM_PAINT: - { - // call the OnDraw routine. - PAINTSTRUCT ps; - RECT rc; - HDC hdc; - hdc = BeginPaint(hwnd, &ps); - GetClientRect(hwnd, &rc); - pCtl->OnDraw(DVASPECT_CONTENT, hdc, (RECT*)&rc, NULL, NULL, TRUE); - EndPaint(hwnd, &ps); - } - break; - - case WM_SIZE: - pCtl->OnResize(); - break; - - case WM_DESTROY: - pCtl->OnDestroyWindow(); - SetWindowLong(hwnd, GWL_USERDATA, 0); - break; - - case WM_SETFOCUS: - case WM_KILLFOCUS: - pCtl->OnCtrlFocusChange((BOOL)(msg == WM_SETFOCUS), (HWND)wParam); - break; - - case WM_MOUSEMOVE: - pCtl->OnMouseMove(LOWORD(lParam), HIWORD(lParam)); - break; - - case WM_LBUTTONDOWN: - pCtl->OnButtonDown(LOWORD(lParam), HIWORD(lParam)); - break; - - case DSO_WM_ASYNCH_OLECOMMAND: - ODS(" -- Got DSO_WM_ASYNCH_OLECOMMAND -- \n"); - pCtl->OnToolbarAction((DWORD)wParam); - break; - - case DSO_WM_ASYNCH_STATECHANGE: - TRACE1(" -- Got DSO_WM_ASYNCH_STATECHANGE %d --\n", wParam); - { - BOOL fCondition = (lParam != 0); - switch (wParam) - { - case DSO_STATE_MODAL: - pCtl->UpdateModalState(fCondition, FALSE); - break; - case DSO_STATE_ACTIVATION: - pCtl->RaiseActivationEvent(fCondition); - break; - case DSO_STATE_INTERACTIVE: - pCtl->UpdateInteractiveState(fCondition); - break; - case DSO_STATE_RETURNFROMMODAL: - { - if ((pCtl->m_fModalState == FALSE) && - (pCtl->m_fAppActive)) - { - pCtl->OnUIFocusChange(TRUE); - } - } - break; - - default: - ODS(" -- Unknown State Change!! --\n"); - break; - } - } - break; - - case DSO_WM_HOOK_NOTIFY_COMPACTIVE: - pCtl->OnComponentActivationChange((BOOL)wParam); - wParam = lParam; lParam = 0; - // falls through with wParam swapped... - - case DSO_WM_HOOK_NOTIFY_APPACTIVATE: - pCtl->OnAppActivationChange((BOOL)wParam, (DWORD)lParam); - break; - - case DSO_WM_HOOK_NOTIFY_SYNCPAINT: - pCtl->OnSyncPaint(); - break; - - case DSO_WM_HOOK_NOTIFY_PALETTECHANGE: - pCtl->OnPaletteChanged((HWND)wParam); - break; - - case WM_ENABLE: - pCtl->OnWindowEnable((BOOL)wParam); - break; - - case WM_MENUSELECT: - case WM_DRAWITEM: - case WM_MEASUREITEM: - case WM_ENTERIDLE: - case WM_INITMENU: - case WM_INITMENUPOPUP: - case WM_COMMAND: - pCtl->OnMenuMessage(msg, wParam, lParam); - break; - - case WM_DROPFILES: - pCtl->OnDropFile((HDROP)wParam); - break; - - case WM_TIMER: - pCtl->OnTimer((UINT)wParam); - break; - - case WM_SYSCOMMAND: - if ((wParam & 0xFFF0) == SC_KEYMENU) - { - if (pCtl->m_xDsoDocObjectSite.SysMenuCommand((UINT)lParam) == S_OK) - { - ODS(" -- Eat SC_KeyMenu message --\n"); - return 1; - } - } - // fall through to defwinproc... - - default: - return DefWindowProc(hwnd, msg, wParam, lParam); - - } - - return (LRESULT)0; - } - - return DefWindowProc(hwnd, msg, wParam, lParam); -} - -//////////////////////////////////////////////////////////////////////// -// -// OCX Interfaces for CDsoFramerControl -// -// NOTE: The automation interfaces are implemented in dsofauto.cpp. -// The interfaces that follow are largely the interfaces used by the -// OCX host for normal control containment. -// - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XInternalUnknown -- Internal IUnknown interface -// !!! Controls lifetime of CDsoFramerControl !!! -// -// STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); -// STDMETHODIMP_(ULONG) AddRef(void); -// STDMETHODIMP_(ULONG) Release(void); -// -STDMETHODIMP CDsoFramerControl::XInternalUnknown::QueryInterface(REFIID riid, void** ppv) -{ - // ODS("CDsoFramerControl::InternalQueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - HRESULT hr = S_OK; - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - - if (IID_IUnknown == riid) - { - *ppv = (IUnknown*)this; - } - else if ((IID_IDispatch == riid) || (IID__FramerControl == riid)) - { - *ppv = (_FramerControl*)pThis; - } - else if (IID_IOleObject == riid) - { - *ppv = (IOleObject*)&(pThis->m_xOleObject); - } - else if (IID_IOleControl == riid) - { - *ppv = (IOleControl*)&(pThis->m_xOleControl); - } - else if (IID_IPersistPropertyBag == riid) - { - *ppv = (IPersistPropertyBag*)&(pThis->m_xPersistPropertyBag); - } - else if ((IID_IPersistStreamInit == riid) || (IID_IPersistStream == riid) || (IID_IPersist == riid)) - { - *ppv = (IPersistStreamInit*)&(pThis->m_xPersistStreamInit); - } - else if ((IID_IOleInPlaceObject == riid) || (IID_IOleWindow == riid)) - { - *ppv = (IOleInPlaceObject*)&(pThis->m_xOleInplaceObject); - } - else if (IID_IOleInPlaceActiveObject == riid) - { - *ppv = (IOleInPlaceActiveObject*)&(pThis->m_xOleInplaceActiveObject); - } - else if ((IID_IViewObjectEx == riid) || (IID_IViewObject == riid) || (IID_IViewObject2 == riid)) - { - *ppv = (IViewObjectEx*)&(pThis->m_xViewObjectEx); - } - else if (IID_IDataObject == riid) - { - *ppv = (IDataObject*)&(pThis->m_xDataObject); - } - else if (IID_ISupportErrorInfo == riid) - { - *ppv = (ISupportErrorInfo*)&(pThis->m_xSupportErrorInfo); - } - else if (IID_IProvideClassInfo == riid) - { - *ppv = (IProvideClassInfo*)&(pThis->m_xProvideClassInfo); - } - else if (IID_IConnectionPointContainer == riid) - { - *ppv = (IConnectionPointContainer*)&(pThis->m_xConnectionPointContainer); - } - else if (IID_IConnectionPoint == riid) - { - *ppv = (IConnectionPoint*)&(pThis->m_xConnectionPoint); - } - else if (IID_IEnumConnectionPoints == riid) - { - *ppv = (IEnumConnectionPoints*)&(pThis->m_xEnumConnectionPoints); - } - else if (IID_IPersistStorage == riid) - { - *ppv = (IPersistStorage*)&(pThis->m_xPersistStorage); - } - else if (IID_IObjectSafety == riid) - { - *ppv = (IObjectSafety*)&(pThis->m_xObjectSafety); - } - else if (IID_IOleCommandTarget == riid) - { - *ppv = (IOleCommandTarget*)&(pThis->m_xOleCommandTarget); - } - else if ((IID_IDsoDocObjectSite == riid) || (IID_IServiceProvider == riid)) - { - *ppv = (IDsoDocObjectSite*)&(pThis->m_xDsoDocObjectSite); - } - else - { - *ppv = NULL; - hr = E_NOINTERFACE; - } - - if (NULL != *ppv) // AddRef those interfaces we will return... - ((IUnknown*)(*ppv))->AddRef(); - - return hr; -} - -STDMETHODIMP_(ULONG) CDsoFramerControl::XInternalUnknown::AddRef(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - //TRACE1("CDsoFramerControl::InternalAddRef - %d\n", (pThis->m_cRef + 1)); - return ++(pThis->m_cRef); -} - -STDMETHODIMP_(ULONG) CDsoFramerControl::XInternalUnknown::Release(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, InternalUnknown); - //TRACE1("CDsoFramerControl::InternalRelease - %d\n", (pThis->m_cRef - 1)); - if (0 != --(pThis->m_cRef)) return (pThis->m_cRef); - ODS("CDsoFramerControl delete\n"); - InterlockedDecrement((LPLONG)&v_cLocks); - delete pThis; return 0; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistStreamInit -- IPersistStreamInit Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP IsDirty(void); -// STDMETHODIMP Load(LPSTREAM pStm); -// STDMETHODIMP Save(LPSTREAM pStm, BOOL fClearDirty); -// STDMETHODIMP GetSizeMax(ULARGE_INTEGER* pcbSize); -// STDMETHODIMP InitNew(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistStreamInit) - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistStreamInit::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::IsDirty(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::IsDirty\n"); - return (pThis->m_fDirty) ? S_OK : S_FALSE; -} - - -#define STREAMHDR_SIGNATURE_OLD 0x1234ABCD // Signature to identify our format (avoid crashes!) -#define STREAMHDR_SIGNATURE_NEW 0xD501D501 // Signature to identify our format (avoid crashes!) - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::Load(LPSTREAM pStm) -{ - HRESULT hr; - DWORD dwSig, dwT; - - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::Load\n"); - - // look for our header structure, so we can verify stream validity. - hr = pStm->Read(&dwSig, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if ((dwSig != STREAMHDR_SIGNATURE_NEW) && - (dwSig != STREAMHDR_SIGNATURE_OLD)) - return E_UNEXPECTED; - - // we like the stream. let's go load in our two properties. - hr = pStm->Read(&(pThis->m_Size), sizeof(SIZEL), NULL); - RETURN_ON_FAILURE(hr); - - DsoHimetricToPixels(&(pThis->m_Size.cx), &(pThis->m_Size.cy)); - - hr = pStm->Read(&(pThis->m_clrBorderColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrBackColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrForeColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrTBarColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&(pThis->m_clrTBarTextColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Read(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_fBorderStyle = LOBYTE(LOWORD(dwT)); - pThis->m_fShowMenuBar = HIBYTE(LOWORD(dwT)); - pThis->m_fShowToolbars = LOBYTE(HIWORD(dwT)); - pThis->m_fShowTitlebar = HIBYTE(HIWORD(dwT)); - - hr = pStm->Read(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if (dwT) - { - LPWSTR pwsz = (LPWSTR)DsoMemAlloc(dwT+2); - if (pwsz) - { - hr = pStm->Read(pwsz, dwT, NULL); - if (SUCCEEDED(hr)) - pThis->m_bstrCustomCaption = SysAllocString(pwsz); - } - DsoMemFree(pwsz); - } - - // Read in new properties for 1.3 version control... - if (dwSig == STREAMHDR_SIGNATURE_NEW) - { - DWORD dwValue; - - hr = pStm->Read(&dwValue, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_lActivationPolicy = LOWORD(dwValue); - pThis->m_lHookPolicy = HIWORD(dwValue); - - hr = pStm->Read(&dwValue, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - pThis->m_fDisableMenuAccel = LOBYTE(LOWORD(dwT)); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::Save(LPSTREAM pStm, BOOL fClearDirty) -{ - HRESULT hr; - DWORD dwT, dwSig = STREAMHDR_SIGNATURE_NEW; - SIZEL slSize; - - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::Save\n"); - - // first thing to do is write out our stream sig... - hr = pStm->Write(&dwSig, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - // the only properties we're currently persisting here are the size - // properties for this control. make sure we do that in HiMetric - slSize = pThis->m_Size; - DsoPixelsToHimetric(&(slSize.cx), &(slSize.cy)); - - hr = pStm->Write(&slSize, sizeof(SIZEL), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrBorderColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrBackColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrForeColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrTBarColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - hr = pStm->Write(&(pThis->m_clrTBarTextColor), sizeof(OLE_COLOR), NULL); - RETURN_ON_FAILURE(hr); - - dwT = (DWORD)MAKELONG( - MAKEWORD((BYTE)(pThis->m_fBorderStyle), (BYTE)(pThis->m_fShowMenuBar)), - MAKEWORD((BYTE)(pThis->m_fShowToolbars), (BYTE)(pThis->m_fShowTitlebar))); - - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - dwT = 0; - if (pThis->m_bstrCustomCaption) - dwT = SysStringByteLen(pThis->m_bstrCustomCaption); - - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - if (dwT) - { - hr = pStm->Write(pThis->m_bstrCustomCaption, dwT, NULL); - RETURN_ON_FAILURE(hr); - } - - // Version 1.3 added properties... - dwT = (DWORD)MAKELONG((WORD)(pThis->m_lActivationPolicy), (WORD)(pThis->m_lHookPolicy)); - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - dwT = (DWORD)MAKELONG(MAKEWORD((BYTE)(pThis->m_fDisableMenuAccel), 0), 0); - hr = pStm->Write(&dwT, sizeof(DWORD), NULL); - RETURN_ON_FAILURE(hr); - - // clear out dirty flag and notify that we're done with save. - if (fClearDirty) - pThis->m_fDirty = FALSE; - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnSave(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::GetSizeMax(ULARGE_INTEGER *pcbSize) -{ - ODS("CDsoFramerControl::XPersistStreamInit::GetSizeMax\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XPersistStreamInit::InitNew(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStreamInit); - ODS("CDsoFramerControl::XPersistStreamInit::InitNew\n"); - // If we are new control, we are dirty by default... - pThis->m_fDirty = TRUE; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistPropertyBag -- IPersistPropertyBag Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP InitNew(); -// STDMETHODIMP Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog); -// STDMETHODIMP Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistPropertyBag) - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistPropertyBag::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::InitNew() -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::InitNew\n"); - return pThis->m_xPersistStreamInit.InitNew(); -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog) -{ - VARIANT v; - HRESULT hr; - SIZEL sl = {5000, 3000}; - - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::Load\n"); - - v.vt = VT_I4; - v.lVal = 0; - - hr = pPropBag->Read(L"_ExtentX", &v, pErrorLog); - if (SUCCEEDED(hr)){sl.cx = v.lVal;} - - v.lVal = 0; - hr = pPropBag->Read(L"_ExtentY", &v, pErrorLog); - if (SUCCEEDED(hr)){sl.cy = v.lVal;} - - DsoHimetricToPixels(&(sl.cx), &(sl.cy)); - pThis->m_Size = sl; - - hr = pPropBag->Read(L"Titlebar", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowTitlebar = v.boolVal;} - - hr = pPropBag->Read(L"Toolbars", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowToolbars = v.boolVal;} - - hr = pPropBag->Read(L"BorderStyle", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fBorderStyle = v.lVal;} - - hr = pPropBag->Read(L"BorderColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrBorderColor = v.lVal;} - - hr = pPropBag->Read(L"BackColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrBackColor = v.lVal;} - - hr = pPropBag->Read(L"ForeColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrForeColor = v.lVal;} - - hr = pPropBag->Read(L"TitlebarColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrTBarColor = v.lVal;} - - hr = pPropBag->Read(L"TitlebarTextColor", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_clrTBarTextColor = v.lVal;} - - hr = pPropBag->Read(L"Caption", &v, pErrorLog); - if (SUCCEEDED(hr)) - { - LPWSTR pwsz = LPWSTR_FROM_VARIANT(v); - if (pwsz) pThis->m_bstrCustomCaption = SysAllocString(pwsz); - VariantClear(&v); - } - - pThis->m_fShowMenuBar = FALSE; - hr = pPropBag->Read(L"Menubar", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fShowMenuBar = BOOL_FROM_VARIANT(v, FALSE);} - - hr = pPropBag->Read(L"ActivationPolicy", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_lActivationPolicy = LONG_FROM_VARIANT(v, 0);} - - hr = pPropBag->Read(L"FrameHookPolicy", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_lHookPolicy = LONG_FROM_VARIANT(v, 0);} - - hr = pPropBag->Read(L"MenuAccelerators", &v, pErrorLog); - if (SUCCEEDED(hr)){pThis->m_fDisableMenuAccel = !BOOL_FROM_VARIANT(v, TRUE);} - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistPropertyBag::Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties) -{ - HRESULT hr; - VARIANT v; - SIZEL sl; - - METHOD_PROLOGUE(CDsoFramerControl, PersistPropertyBag); - ODS("CDsoFramerControl::XPersistPropertyBag::Save\n"); - - sl = pThis->m_Size; - DsoPixelsToHimetric(&(sl.cx), &(sl.cy)); - - v.vt = VT_I4; v.lVal = sl.cx; - hr = pPropBag->Write(L"_ExtentX", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = sl.cy; - hr = pPropBag->Write(L"_ExtentY", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrBorderColor; - hr = pPropBag->Write(L"BorderColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrBackColor; - hr = pPropBag->Write(L"BackColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrForeColor; - hr = pPropBag->Write(L"ForeColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrTBarColor; - hr = pPropBag->Write(L"TitlebarColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_clrTBarTextColor; - hr = pPropBag->Write(L"TitlebarTextColor", &v); - RETURN_ON_FAILURE(hr); - - v.lVal = pThis->m_fBorderStyle; - hr = pPropBag->Write(L"BorderStyle", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_BOOL; v.boolVal = pThis->m_fShowTitlebar; - hr = pPropBag->Write(L"Titlebar", &v); - RETURN_ON_FAILURE(hr); - - v.boolVal = pThis->m_fShowToolbars; - hr = pPropBag->Write(L"Toolbars", &v); - RETURN_ON_FAILURE(hr); - - if (pThis->m_bstrCustomCaption) - { - v.vt = VT_BSTR; v.bstrVal = pThis->m_bstrCustomCaption; - hr = pPropBag->Write(L"Caption", &v); - RETURN_ON_FAILURE(hr); - } - - v.vt = VT_BOOL; v.boolVal = pThis->m_fShowMenuBar; - hr = pPropBag->Write(L"Menubar", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_I4; v.lVal = pThis->m_lActivationPolicy; - hr = pPropBag->Write(L"ActivationPolicy", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_I4; v.lVal = pThis->m_lHookPolicy; - hr = pPropBag->Write(L"FrameHookPolicy", &v); - RETURN_ON_FAILURE(hr); - - v.vt = VT_BOOL; v.boolVal = !(pThis->m_fDisableMenuAccel); - hr = pPropBag->Write(L"MenuAccelerators", &v); - RETURN_ON_FAILURE(hr); - - // now clear the dirty flag and send out notification - // that we're done. - if (fClearDirty) - pThis->m_fDirty = FALSE; - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnSave(); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XPersistStorage -- IPersistStorage Implementation -// -// STDMETHODIMP GetClassID(CLSID *pClassID); -// STDMETHODIMP IsDirty(void); -// STDMETHODIMP InitNew(LPSTORAGE pStg); -// STDMETHODIMP Load(LPSTORAGE pStg); -// STDMETHODIMP Save(LPSTORAGE pStg, BOOL fSameAsLoad); -// STDMETHODIMP SaveCompleted(LPSTORAGE pStg); -// STDMETHODIMP HandsOffStorage(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, PersistStorage) - -STDMETHODIMP CDsoFramerControl::XPersistStorage::GetClassID(CLSID *pClassID) -{ - ODS("CDsoFramerControl::XPersistStorage::GetClassID\n"); - if (pClassID) *pClassID = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::IsDirty(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::IsDirty\n"); - return (pThis->m_fDirty) ? S_OK : S_FALSE; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::InitNew(LPSTORAGE pStg) -{ - HRESULT hr; - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::InitNew\n"); - - CHECK_NULL_RETURN(pStg, E_POINTER); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - - hr = pThis->m_xPersistStreamInit.InitNew(); - if (SUCCEEDED(hr)) - { SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); }; - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::Load(LPSTORAGE pStg) -{ - HRESULT hr; - IStream* pstm; - DWORD dwStmMode = (STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE); - - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::Load\n"); - - CHECK_NULL_RETURN(pStg, E_POINTER); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - - hr = pStg->OpenStream(L"DsoFrameCtlContents", 0, dwStmMode, 0, &pstm); - if (SUCCEEDED(hr) && (pstm)) - { - hr = pThis->m_xPersistStreamInit.Load(pstm); - if (SUCCEEDED(hr)) - { SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); }; - - pstm->Release(); - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::Save(LPSTORAGE pStg, BOOL fSameAsLoad) -{ - HRESULT hr; - IStream* pstm; - DWORD dwStmMode = (STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE); - - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::Save\n"); - - if (fSameAsLoad) - { - if ((pThis->m_pOleStorage == NULL) || - ((pStg) && (pStg != pThis->m_pOleStorage))) - { - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - SAFE_SET_INTERFACE(pThis->m_pOleStorage, pStg); - } - - CHECK_NULL_RETURN(pThis->m_pOleStorage, E_POINTER); - pStg = pThis->m_pOleStorage; - } - - CHECK_NULL_RETURN(pStg, E_POINTER); - - hr = pStg->OpenStream(L"DsoFrameCtlContents", 0, dwStmMode, 0, &pstm); - if (hr == STG_E_FILENOTFOUND) - hr = pStg->CreateStream(L"DsoFrameCtlContents", dwStmMode, 0, 0, &pstm); - - if (SUCCEEDED(hr) && (pstm)) - { - hr = pThis->m_xPersistStreamInit.Save(pstm, FALSE); - pstm->Release(); - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::SaveCompleted(LPSTORAGE pStg) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::SaveCompleted\n"); - pThis->m_fDirty = FALSE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XPersistStorage::HandsOffStorage(void) -{ - METHOD_PROLOGUE(CDsoFramerControl, PersistStorage); - ODS("CDsoFramerControl::XPersistStorage::HandsOffStorage\n"); - SAFE_RELEASE_INTERFACE(pThis->m_pOleStorage); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleObject -- IOleObject Implementation -// -// STDMETHODIMP SetClientSite(IOleClientSite *pClientSite); -// STDMETHODIMP GetClientSite(IOleClientSite **ppClientSite); -// STDMETHODIMP SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj); -// STDMETHODIMP Close(DWORD dwSaveOption); -// STDMETHODIMP SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk); -// STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk); -// STDMETHODIMP InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved); -// STDMETHODIMP GetClipboardData(DWORD dwReserved, IDataObject **ppDataObject); -// STDMETHODIMP DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect); -// STDMETHODIMP EnumVerbs(IEnumOleVerb **ppEnumOleVerb); -// STDMETHODIMP Update(); -// STDMETHODIMP IsUpToDate(); -// STDMETHODIMP GetUserClassID(CLSID *pClsid); -// STDMETHODIMP GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType); -// STDMETHODIMP SetExtent(DWORD dwDrawAspect, SIZEL *psizel); -// STDMETHODIMP GetExtent(DWORD dwDrawAspect, SIZEL *psizel); -// STDMETHODIMP Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection); -// STDMETHODIMP Unadvise(DWORD dwConnection); -// STDMETHODIMP EnumAdvise(IEnumSTATDATA **ppenumAdvise); -// STDMETHODIMP GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus); -// STDMETHODIMP SetColorScheme(LOGPALETTE *pLogpal); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleObject) - -STDMETHODIMP CDsoFramerControl::XOleObject::SetClientSite(IOleClientSite *pClientSite) -{ - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::SetClientSite\n"); - - SAFE_RELEASE_INTERFACE(pThis->m_pClientSite); - SAFE_RELEASE_INTERFACE(pThis->m_pControlSite); - - // store away the new client site - pThis->m_pClientSite = pClientSite; - - // if we've actually got one, then get some other interfaces we want to keep - // around, and keep a handle on it - if (pClientSite) - { - pClientSite->AddRef(); - pClientSite->QueryInterface(IID_IOleControlSite, (void **)&(pThis->m_pControlSite)); - } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetClientSite(IOleClientSite **ppClientSite) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::GetClientSite\n"); - if (ppClientSite) { SAFE_SET_INTERFACE(*ppClientSite, pThis->m_pClientSite); } - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetHostNames(LPCOLESTR /*szContainerApp*/, LPCOLESTR /*szContainerObj*/) -{ - ODS("CDsoFramerControl::XOleObject::SetHostNames\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Close(DWORD dwSaveOption) -{ - HRESULT hr; - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Close\n"); - - if (pThis->m_fInPlaceActive) - { - hr = pThis->m_xOleInplaceObject.InPlaceDeactivate(); - RETURN_ON_FAILURE(hr); - } - - // handle the save flag. - if ((pThis->m_fDirty) && (pThis->m_pClientSite) && - (dwSaveOption == OLECLOSE_SAVEIFDIRTY || - dwSaveOption == OLECLOSE_PROMPTSAVE)) - { - pThis->m_pClientSite->SaveObject(); - } - - if (pThis->m_pOleAdviseHolder) - pThis->m_pOleAdviseHolder->SendOnClose(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk) -{ - ODS("CDsoFramerControl::XOleObject::SetMoniker\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk) -{ - ODS("CDsoFramerControl::XOleObject::GetMoniker\n"); - if (ppmk) *ppmk = NULL; - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved) -{ - ODS("CDsoFramerControl::XOleObject::InitFromData\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetClipboardData(DWORD /*dwReserved*/, IDataObject **ppDataObject) -{ - ODS("CDsoFramerControl::XOleObject::GetClipboardData\n"); - if (ppDataObject) *ppDataObject = NULL; - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::DoVerb\n"); - - switch (iVerb) - { - case OLEIVERB_PRIMARY: - case OLEIVERB_SHOW: - case OLEIVERB_INPLACEACTIVATE: - case OLEIVERB_UIACTIVATE: - return pThis->InPlaceActivate(iVerb); - - case OLEIVERB_HIDE: - pThis->m_xOleInplaceObject.UIDeactivate(); - if (pThis->m_fInPlaceVisible) - pThis->SetInPlaceVisible(FALSE); - return S_OK; - } - - return OLEOBJ_S_INVALIDVERB; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::EnumVerbs(IEnumOLEVERB **ppEnumOleVerb) -{ - ODS("CDsoFramerControl::XOleObject::EnumVerbs\n"); - return OleRegEnumVerbs(CLSID_FramerControl, ppEnumOleVerb); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Update() -{ - ODS("CDsoFramerControl::XOleObject::Update\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::IsUpToDate() -{ - ODS("CDsoFramerControl::XOleObject::IsUpToDate\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetUserClassID(CLSID *pClsid) -{ - ODS("CDsoFramerControl::XOleObject::GetUserClassID\n"); - if (pClsid) *pClsid = CLSID_FramerControl; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType) -{ - ODS("CDsoFramerControl::XOleObject::GetUserType\n"); - return OleRegGetUserType(CLSID_FramerControl, dwFormOfType, pszUserType); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetExtent(DWORD dwDrawAspect, SIZEL *psizel) -{ - SIZEL sl; - - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::SetExtent\n"); - - CHECK_NULL_RETURN(psizel, E_POINTER); - sl = *psizel; - - // we don't support any other aspects. - if (!(dwDrawAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - // change the units to pixels, and resize the control. - DsoHimetricToPixels(&(sl.cx), &(sl.cy)); - - // if the size already matches the extents, then don't do anything - // and don't mark the control dirty. - if (sl.cx != pThis->m_Size.cx || sl.cy != pThis->m_Size.cy) - { - pThis->m_Size = sl; - pThis->m_fDirty = TRUE; // changing size should dirty - - if (pThis->m_fInPlaceActive) - { - RECT rect; - - // Use OnPosRectChange for older OCX containters and Access - // who just refuses to get with the times (like me )... - GetWindowRect(pThis->m_hwnd, &rect); - MapWindowPoints(NULL, pThis->m_hwndParent, (LPPOINT)&rect, 2); - rect.right = rect.left + sl.cx; - rect.bottom = rect.top + sl.cy; - pThis->m_pInPlaceSite->OnPosRectChange(&rect); - - // Resize the window based on the new size... - SetWindowPos(pThis->m_hwnd, NULL, 0, 0, sl.cx, sl.cy, - SWP_NOMOVE | SWP_NOZORDER | SWP_NOACTIVATE); - } - else pThis->ViewChanged(); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetExtent(DWORD dwDrawAspect, SIZEL *psizel) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::GetExtent\n"); - - CHECK_NULL_RETURN(psizel, E_POINTER); - - if (!(dwDrawAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - *psizel = pThis->m_Size; - DsoPixelsToHimetric(&(psizel->cx), &(psizel->cy)); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Advise\n"); - - if (NULL == pThis->m_pOleAdviseHolder) - { - if (FAILED(CreateOleAdviseHolder(&(pThis->m_pOleAdviseHolder)))) - return E_FAIL; - } - return pThis->m_pOleAdviseHolder->Advise(pAdvSink, pdwConnection); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::Unadvise(DWORD dwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::Unadvise\n"); - - CHECK_NULL_RETURN(pThis->m_pOleAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pOleAdviseHolder->Unadvise(dwConnection); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::EnumAdvise(IEnumSTATDATA **ppenumAdvise) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleObject); - ODS("CDsoFramerControl::XOleObject::EnumAdvise\n"); - - CHECK_NULL_RETURN(ppenumAdvise, E_POINTER); - *ppenumAdvise = NULL; - - CHECK_NULL_RETURN(pThis->m_pOleAdviseHolder, E_FAIL); - return pThis->m_pOleAdviseHolder->EnumAdvise(ppenumAdvise); -} - -STDMETHODIMP CDsoFramerControl::XOleObject::GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus) -{ - ODS("CDsoFramerControl::XOleObject::GetMiscStatus\n"); - - if (dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; - - if (pdwStatus) - *pdwStatus = OLEMISC_SETCLIENTSITEFIRST | - OLEMISC_ACTIVATEWHENVISIBLE | - OLEMISC_RECOMPOSEONRESIZE | - OLEMISC_CANTLINKINSIDE | - OLEMISC_INSIDEOUT; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleObject::SetColorScheme(LOGPALETTE *pLogpal) -{ - ODS("CDsoFramerControl::XOleObject::SetColorScheme\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleControl -- IOleControl Implementation -// -// STDMETHODIMP GetControlInfo(CONTROLINFO* pCI); -// STDMETHODIMP OnMnemonic(LPMSG pMsg); -// STDMETHODIMP OnAmbientPropertyChange(DISPID dispID); -// STDMETHODIMP FreezeEvents(BOOL bFreeze); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleControl) - -STDMETHODIMP CDsoFramerControl::XOleControl::GetControlInfo(CONTROLINFO* pCI) -{ - ODS("CDsoFramerControl::XOleControl::GetControlInfo\n"); - CHECK_NULL_RETURN(pCI, E_POINTER); - pCI->hAccel = NULL; pCI->cAccel = 0; pCI->dwFlags = 0; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleControl::OnMnemonic(LPMSG pMsg) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - ODS("CDsoFramerControl::XOleControl::OnMnemonic\n"); - return pThis->InPlaceActivate(OLEIVERB_UIACTIVATE); -} - -STDMETHODIMP CDsoFramerControl::XOleControl::OnAmbientPropertyChange(DISPID dispID) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - ODS("CDsoFramerControl::XOleControl::OnAmbientPropertyChange\n"); - - // We keep track of state changes in design/run modes... - if (dispID == DISPID_AMBIENT_USERMODE || dispID == DISPID_UNKNOWN) - pThis->m_fModeFlagValid = FALSE; - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleControl::FreezeEvents(BOOL bFreeze) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleControl); - TRACE1("CDsoFramerControl::XOleControl::FreezeEvents = %s\n", (bFreeze ? "TRUE" : "FALSE")); - pThis->m_fFreezeEvents = bFreeze; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleInplaceObject -- IOleInplaceObject Implementation -// -// STDMETHODIMP GetWindow(HWND *phwnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP InPlaceDeactivate(); -// STDMETHODIMP UIDeactivate(); -// STDMETHODIMP SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect); -// STDMETHODIMP ReactivateAndUndo(); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleInplaceObject) - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::GetWindow(HWND *phwnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::GetWindow\n"); - if (!(pThis->m_fInPlaceActive)) return E_FAIL; - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::ContextSensitiveHelp(BOOL /*fEnterMode*/) -{ - ODS("CDsoFramerControl::XOleInplaceObject::ContextSensitiveHelp\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::InPlaceDeactivate() -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::InPlaceDeactivate\n"); - - // if we're not in-place active yet, then this is easy. - if (!(pThis->m_fInPlaceActive)) - return S_OK; - - // transition from UIActive back to active - if (pThis->m_fUIActive) - UIDeactivate(); - - // tell the host we're going away - pThis->m_pInPlaceSite->OnInPlaceDeactivate(); - - pThis->m_fInPlaceActive = FALSE; - pThis->m_fInPlaceVisible = FALSE; - - // if we have a window, tell it to go away. - if (pThis->m_hwnd) - {DestroyWindow(pThis->m_hwnd); pThis->m_hwnd = NULL;} - - SAFE_RELEASE_INTERFACE(pThis->m_pInPlaceFrame); - SAFE_RELEASE_INTERFACE(pThis->m_pInPlaceUIWindow); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::UIDeactivate() -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::UIDeactivate\n"); - - // if we're not UIActive, not much to do. - if (!(pThis->m_fUIActive)) - return S_OK; - - pThis->m_fUIActive = FALSE; - - // notify frame windows, if appropriate, that we're no longer ui-active. - if (pThis->m_pInPlaceUIWindow) - pThis->m_pInPlaceUIWindow->SetActiveObject(NULL, NULL); - - if (pThis->m_pInPlaceFrame) - pThis->m_pInPlaceFrame->SetActiveObject(NULL, NULL); - - pThis->OnUIFocusChange(FALSE); - - // we don't need to explicitly release the focus here since somebody - // else grabbing the focus is what is likely to cause us to get lose it - pThis->m_pInPlaceSite->OnUIDeactivate(FALSE); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect) -{ - RECT rcIXect; - - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceObject); - ODS("CDsoFramerControl::XOleInplaceObject::SetObjectRects\n"); - - // move our window to the new location and handle clipping. - if (pThis->m_hwnd) - { - // if asked to clip the window, we'll use a clip region... - if ((lprcClipRect) && (IntersectRect(&rcIXect, lprcPosRect, lprcClipRect)) && - (!EqualRect(&rcIXect, lprcPosRect))) - { - OffsetRect(&rcIXect, -(lprcPosRect->left), -(lprcPosRect->top)); - SetWindowRgn(pThis->m_hwnd, CreateRectRgnIndirect(&rcIXect), TRUE); - pThis->m_fUsingWindowRgn = TRUE; - } - else if (pThis->m_fUsingWindowRgn) - { - SetWindowRgn(pThis->m_hwnd, NULL, TRUE); - pThis->m_fUsingWindowRgn = FALSE; - } - - // set our control's location, but don't change it's size at all - // [people for whom zooming is important should set that up here] - SetWindowPos(pThis->m_hwnd, NULL, lprcPosRect->left, lprcPosRect->top, 0, 0, SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE); - } - - // save out our current location. - pThis->m_rcLocation = *lprcPosRect; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceObject::ReactivateAndUndo() -{ - ODS("CDsoFramerControl::XOleInplaceObject::ReactivateAndUndo\n"); - return E_NOTIMPL; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleInplaceActiveObject -- IOleInplaceActiveObject Implementation -// -// STDMETHODIMP GetWindow(HWND *phwnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP TranslateAccelerator(LPMSG lpmsg); -// STDMETHODIMP OnFrameWindowActivate(BOOL fActivate); -// STDMETHODIMP OnDocWindowActivate(BOOL fActivate); -// STDMETHODIMP ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow); -// STDMETHODIMP EnableModeless(BOOL fEnable); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleInplaceActiveObject) - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::GetWindow(HWND *phwnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - ODS("CDsoFramerControl::XOleInplaceActiveObject::GetWindow\n"); - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::ContextSensitiveHelp(BOOL /*fEnterMode*/) -{ - ODS("CDsoFramerControl::XOleInplaceActiveObject::ContextSensitiveHelp\n"); - return E_NOTIMPL; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator -// -// We handle certain keys as accelerators, but only if host does not -// implement it itself, and only when no document is open. The reason -// why is due to two factors: -// -// (1) When an out-of-proc AxDoc server is embedded and has focus, -// its thread (not ours) gets the accel keys. Word/PPT will treat -// these for us and contact us through IOleCommandTarget, so -// we don't want to handle them if AxDoc is handling them for us. -// -// (2) We cannot know if a given host uses the same accel keys for -// other tasks, and we don't want to impose ours on a host. By -// explicitly asking host to handle it first, we should be able -// to avoid any conflicts, and give developer a change to override -// our handler as needed. -// -static short _SpecialKeyState() -{ - BOOL bShift = (GetKeyState(VK_SHIFT) < 0); - BOOL bCtrl = (GetKeyState(VK_CONTROL) < 0); - BOOL bAlt = (GetKeyState(VK_MENU) < 0); - return (short)(bShift + (bCtrl << 1) + (bAlt << 2)); -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator(LPMSG lpmsg) -{ - HRESULT hr = S_FALSE; - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - CHECK_NULL_RETURN(lpmsg, E_POINTER); - TRACE2("CDsoFramerControl::XOleInplaceActiveObject::TranslateAccelerator(msg=%d, wparam=%d)\n", lpmsg->message, lpmsg->wParam); - - // Forward it back to the site for processing on its side... - if (pThis->m_pControlSite) - { - hr = pThis->m_pControlSite->TranslateAccelerator(lpmsg, _SpecialKeyState()); - if (hr == S_OK) return S_OK; // If site handled it, nothing else we need to do.. - } - - if ((GetKeyState(VK_CONTROL) < 0) && (!(pThis->m_fModalState)) && - (lpmsg->message == WM_KEYUP) && (!(pThis->m_pDocObjFrame))) - { - TRACE1(" Handle Accelerator? (%d)\n", lpmsg->wParam); - switch (lpmsg->wParam) // Looking for Ctrl+N and Ctrl+O keys... - { - case 0x4E: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_NEW, 0); hr = S_OK; break; - case 0x4F: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_OPEN, 0); hr = S_OK; break; - case 0x53: PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, OLECMDID_SAVE, 0); hr = S_OK; break; - } - } - - // we didn't want it. - return hr; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::OnFrameWindowActivate(BOOL fActivate) -{ - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::OnFrameWindowActivate - %d\n", fActivate); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::OnDocWindowActivate(BOOL fActivate) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleInplaceActiveObject); - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::OnDocWindowActivate - %d\n", fActivate); - - if (pThis->m_fUIActive && fActivate && pThis->m_pInPlaceFrame) - pThis->m_pInPlaceFrame->SetBorderSpace(NULL); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow) -{ - ODS("CDsoFramerControl::XOleInplaceActiveObject::ResizeBorder\n"); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleInplaceActiveObject::EnableModeless(BOOL fEnable) -{ - TRACE1("CDsoFramerControl::XOleInplaceActiveObject::EnableModeless(%d)\n", fEnable); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XViewObjectEx -- IViewObjectEx Implementation -// -// STDMETHODIMP Draw(DWORD dwAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, HDC hdcDraw, const LPRECTL lprcBounds, const LPRECTL lprcWBounds, BOOL(*)(DWORD)pfnContinue, DWORD dwContinue); -// STDMETHODIMP GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet); -// STDMETHODIMP Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze); -// STDMETHODIMP Unfreeze(DWORD dwFreeze); -// STDMETHODIMP SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdvSink); -// STDMETHODIMP GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdvSink); -// STDMETHODIMP GetExtent(DWORD dwAspect, DWORD lindex, DVTARGETDEVICE ptd, LPSIZEL lpsizel); -// STDMETHODIMP GetRect(DWORD dwAspect, LPRECTL pRect); -// STDMETHODIMP GetViewStatus(DWORD* pdwStatus); -// STDMETHODIMP QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult); -// STDMETHODIMP QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult); -// STDMETHODIMP GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ViewObjectEx) - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Draw(DWORD dwDrawAspect, LONG lIndex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDevice, HDC hdcDraw, LPCRECTL prcBounds, LPCRECTL prcWBounds, BOOL (__stdcall *pfnContinue)(DWORD dwContinue), DWORD dwContinue) -{ - RECT rc; - int iMode = 0; - POINT pVp = {0,0}; - POINT pW = {0,0}; - BOOL fOptimize = FALSE; - BOOL fMetafile = FALSE; - - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::Draw\n"); - - if (!((dwDrawAspect == DVASPECT_CONTENT) || - (dwDrawAspect == DVASPECT_OPAQUE))) - return DV_E_DVASPECT; - - SaveDC(hdcDraw); - - // first, have to do a little bit to support printing. - if (GetDeviceCaps(hdcDraw, TECHNOLOGY) == DT_METAFILE) - { - // We are dealing with a metafile. - fMetafile = TRUE; - } -/* - // check to see if we have any flags passed in the pvAspect parameter. - if (pvAspect && ((DVASPECTINFO *)pvAspect)->cb == sizeof(DVASPECTINFO)) - fOptimize = (((DVASPECTINFO *)pvAspect)->dwFlags & DVASPECTINFOFLAG_CANOPTIMIZE) ? TRUE : FALSE; -*/ - // Get the draw rect, if they didn't give us one, just copy over ours - memcpy(&rc, ((prcBounds) ? (RECT*)prcBounds : &(pThis->m_rcLocation)), sizeof(RECT)); - - if (!fMetafile) - { - LPtoDP(hdcDraw, (POINT*)&rc, 2); - SetViewportOrgEx(hdcDraw, 0, 0, &pVp); - SetWindowOrgEx(hdcDraw, 0, 0, &pW); - iMode = SetMapMode(hdcDraw, MM_TEXT); - } - - // prcWBounds is NULL and not used if we are not dealing with a metafile. - // For metafiles, we pass on rc as *prcBounds, we should also include prcWBounds - pThis->OnDraw(dwDrawAspect, hdcDraw, &rc, (RECT*)prcWBounds, hicTargetDevice, fOptimize); - - // clean up the DC when we're done with it, if appropriate. - if (!fMetafile) - { - SetViewportOrgEx(hdcDraw, pVp.x, pVp.y, NULL); - SetWindowOrgEx(hdcDraw, pW.x, pW.y, NULL); - SetMapMode(hdcDraw, iMode); - } - - RestoreDC(hdcDraw, -1); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetColorSet\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze) -{ - ODS("CDsoFramerControl::XViewObjectEx::Freeze\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::Unfreeze(DWORD dwFreeze) -{ - ODS("CDsoFramerControl::XViewObjectEx::Unfreeze\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdviseSink) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::SetAdvise\n"); - - // if it's not a content aspect, we don't support it. - if (!(dwAspect & DVASPECT_CONTENT)) - return DV_E_DVASPECT; - - // set up some flags [we gotta stash for GetAdvise ...] - pThis->m_fViewAdvisePrimeFirst = (advf & ADVF_PRIMEFIRST) ? TRUE : FALSE; - pThis->m_fViewAdviseOnlyOnce = (advf & ADVF_ONLYONCE) ? TRUE : FALSE; - - SAFE_RELEASE_INTERFACE(pThis->m_pViewAdviseSink); - SAFE_SET_INTERFACE(pThis->m_pViewAdviseSink, pAdviseSink); - - // prime them if they want it [we need to store this so they can get flags later] - if (pThis->m_fViewAdvisePrimeFirst) - pThis->ViewChanged(); - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdviseSink) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetAdvise\n"); - - if (pdwAspect) - *pdwAspect = DVASPECT_CONTENT; - - if (padvf) - { - *padvf = 0; - if (pThis->m_fViewAdviseOnlyOnce) *padvf |= ADVF_ONLYONCE; - if (pThis->m_fViewAdvisePrimeFirst) *padvf |= ADVF_PRIMEFIRST; - } - - if (ppAdviseSink) - { SAFE_SET_INTERFACE(*ppAdviseSink, pThis->m_pViewAdviseSink); } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE *ptd, LPSIZEL psizel) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetExtent\n"); - return pThis->m_xOleObject.GetExtent(dwDrawAspect, psizel); -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetRect(DWORD dwAspect, LPRECTL pRect) -{ - METHOD_PROLOGUE(CDsoFramerControl, ViewObjectEx); - ODS("CDsoFramerControl::XViewObjectEx::GetRect\n"); - - if (dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; - - if (pRect) - { - CopyRect((LPRECT)pRect, &(pThis->m_rcLocation)); - // Convert to himetric (according to docs, this is required) - DsoPixelsToHimetric(&(pRect->left), &(pRect->top)); - DsoPixelsToHimetric(&(pRect->right), &(pRect->bottom)); - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetViewStatus(DWORD* pdwStatus) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetViewStatus\n"); - if (pdwStatus) *pdwStatus = VIEWSTATUS_OPAQUE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult) -{ - // ODS("CDsoFramerControl::XViewObjectEx::QueryHitPoint\n"); - if (dwAspect != DVASPECT_CONTENT) return DV_E_DVASPECT; - CHECK_NULL_RETURN(pHitResult, E_POINTER); - *pHitResult = PtInRect(pRectBounds, ptlLoc) ? HITRESULT_HIT : HITRESULT_OUTSIDE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult) -{ - RECT rc; - //ODS("CDsoFramerControl::XViewObjectEx::QueryHitRect\n"); - if (dwAspect != DVASPECT_CONTENT) return DV_E_DVASPECT; - *pHitResult = IntersectRect(&rc, pRectBounds, pRectLoc) ? HITRESULT_HIT : HITRESULT_OUTSIDE; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XViewObjectEx::GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel) -{ - ODS("CDsoFramerControl::XViewObjectEx::GetNaturalExtent\n"); - return E_NOTIMPL; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XDataObject -- IDataObject Implementation -// -// STDMETHODIMP Draw(DWORD dwAspect, LONG lindex, void *pvAspect, DVTARGETDEVICE * ptd, HDC hicTargetDev, HDC hdcDraw, const LPRECTL lprcBounds, const LPRECTL lprcWBounds, BOOL(*)(DWORD)pfnContinue, DWORD dwContinue); -// STDMETHODIMP GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm); -// STDMETHODIMP GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm); -// STDMETHODIMP QueryGetData(FORMATETC *pfmtc); -// STDMETHODIMP GetCanonicalFormatEtc(FORMATETC *pfmtcIn, FORMATETC *pfmtcOut); -// STDMETHODIMP SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease); -// STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum); -// STDMETHODIMP DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection); -// STDMETHODIMP DUnadvise(DWORD dwConnection); -// STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppenum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, DataObject) - -STDMETHODIMP CDsoFramerControl::XDataObject::GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm) -{ - HRESULT hr; - HMETAFILE hwmf; - LPMETAFILEPICT pwmf; - HGLOBAL hmem; - SIZE sizeMetric; - RECT rc; - HDC hdc; - - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - TRACE2("CDsoFramerControl::XDataObject::GetData(%d,%d)\n", pfmtc->cfFormat, pfmtc->tymed); - CHECK_NULL_RETURN(pfmtc, E_POINTER); CHECK_NULL_RETURN(pstgm, E_POINTER); - - // Confirm data requested is a supportted type... - if (FAILED(hr = QueryGetData(pfmtc))) - return hr; - - // If caller wants a metafile of the current object, draw it... - hdc = CreateMetaFileW(NULL); - - sizeMetric.cx = pThis->m_Size.cx; - sizeMetric.cy = pThis->m_Size.cy; - - SetRect(&rc, 0, 0, sizeMetric.cx, sizeMetric.cy); - DsoPixelsToHimetric(&(sizeMetric.cx), &(sizeMetric.cy)); - sizeMetric.cy = -(sizeMetric.cy); - - SetMapMode(hdc, MM_ANISOTROPIC); - SetWindowOrgEx(hdc, 0, 0, NULL); - SetWindowExtEx(hdc, rc.right, rc.bottom, NULL); - - // Delegate to same IViewObject::Draw used by most containers for metafile... - hr = pThis->m_xViewObjectEx.Draw(DVASPECT_CONTENT, -1, NULL, NULL, NULL, hdc, (RECTL*)&rc, NULL, NULL, 0); - ASSERT(SUCCEEDED(hr)); - - if ((hwmf = CloseMetaFile(hdc)) == NULL) - return E_UNEXPECTED; - - // Now allocate the transfer medium and set the metafile... - hmem = GlobalAlloc((GMEM_SHARE|GMEM_MOVEABLE), sizeof(METAFILEPICT)); - if (hmem == NULL) { DeleteMetaFile(hwmf); return STG_E_MEDIUMFULL; } - - pwmf = (LPMETAFILEPICT)GlobalLock(hmem); - if (pwmf) - { - pwmf->hMF = hwmf; - pwmf->mm = MM_ANISOTROPIC; - pwmf->xExt = sizeMetric.cx; - pwmf->yExt = sizeMetric.cy; - GlobalUnlock(hmem); - } - - pstgm->tymed = TYMED_MFPICT; - pstgm->hGlobal = hmem; - pstgm->pUnkForRelease = NULL; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm) -{ - ODS("CDsoFramerControl::XDataObject::GetDataHere\n"); - return DV_E_FORMATETC; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::QueryGetData(FORMATETC *pfmtc) -{ - TRACE2("CDsoFramerControl::XDataObject::QueryGetData(%d,%d)\n", pfmtc->cfFormat, pfmtc->tymed); - CHECK_NULL_RETURN(pfmtc, E_POINTER); - - if (pfmtc->cfFormat != CF_METAFILEPICT) - return DV_E_FORMATETC; // We only support WMF for IDataObj presentation. - - if (pfmtc->tymed != TYMED_MFPICT) - return DV_E_TYMED; // It better be in in right format... - - if (pfmtc->dwAspect != DVASPECT_CONTENT) - return DV_E_DVASPECT; // We only do content (not thumbnail or partial)... - - return S_OK; // If here, it looks fine to us... -} - -STDMETHODIMP CDsoFramerControl::XDataObject::GetCanonicalFormatEtc(FORMATETC *pfmtcIn, FORMATETC *pfmtcOut) -{ - ODS("CDsoFramerControl::XDataObject::GetCanonicalFormatEtc\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease) -{ - ODS("CDsoFramerControl::XDataObject::SetData\n"); - return E_NOTIMPL; -} - -STDMETHODIMP CDsoFramerControl::XDataObject::EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum) -{ - ODS("CDsoFramerControl::XDataObject::EnumFormatEtc\n"); - return OleRegEnumFormatEtc(CLSID_FramerControl, dwDirection, ppenum); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::DAdvise\n"); - - // Create OLE Data advise holder to keep sink for us... - if ((NULL == pThis->m_pDataAdviseHolder) && - FAILED(CreateDataAdviseHolder(&(pThis->m_pDataAdviseHolder)))) - return E_FAIL; - - // Add this advise sink for the given format to the collection... - return pThis->m_pDataAdviseHolder->Advise((IDataObject*)&(pThis->m_xDataObject), pfmtc, advf, psink, pdwConnection); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::DUnadvise(DWORD dwConnection) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::DUnadvise\n"); - CHECK_NULL_RETURN(pThis->m_pDataAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pDataAdviseHolder->Unadvise(dwConnection); -} - -STDMETHODIMP CDsoFramerControl::XDataObject::EnumDAdvise(IEnumSTATDATA **ppenum) -{ - METHOD_PROLOGUE(CDsoFramerControl, DataObject); - ODS("CDsoFramerControl::XDataObject::EnumDAdvise\n"); - CHECK_NULL_RETURN(pThis->m_pDataAdviseHolder, CONNECT_E_NOCONNECTION); - return pThis->m_pDataAdviseHolder->EnumAdvise(ppenum); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XProvideClassInfo -- IProvideClassInfo Implementation -// -// STDMETHODIMP GetClassInfo(ITypeInfo** ppTI); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ProvideClassInfo) - -STDMETHODIMP CDsoFramerControl::XProvideClassInfo::GetClassInfo(ITypeInfo** ppTI) -{ - ODS("CDsoFramerControl::XProvideClassInfo::GetClassInfo\n"); - return DsoGetTypeInfoEx(LIBID_DSOFramer, 0, - DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, v_hModule, CLSID_FramerControl, ppTI); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XConnectionPointContainer -- IConnectionPointContainer Implementation -// -// STDMETHODIMP EnumConnectionPoints(IEnumConnectionPoints **ppEnum); -// STDMETHODIMP FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ConnectionPointContainer) - -STDMETHODIMP CDsoFramerControl::XConnectionPointContainer::EnumConnectionPoints(IEnumConnectionPoints **ppEnum) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPointContainer); - ODS("CDsoFramerControl::XConnectionPointContainer::EnumConnectionPoints\n"); - if (ppEnum) { SAFE_SET_INTERFACE(*ppEnum, &(pThis->m_xEnumConnectionPoints)); }; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPointContainer::FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPointContainer); - ODS("CDsoFramerControl::XConnectionPointContainer::FindConnectionPoint\n"); - if (riid != DIID__DFramerCtlEvents) return CONNECT_E_NOCONNECTION; - if (ppCP) { SAFE_SET_INTERFACE(*ppCP, &(pThis->m_xConnectionPoint)); }; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XEnumConnectionPoints -- IEnumConnectionPoints Implementation -// -// STDMETHODIMP Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched); -// STDMETHODIMP Skip(ULONG cConnections); -// STDMETHODIMP Reset(void); -// STDMETHODIMP Clone(IEnumConnectionPoints **ppEnum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, EnumConnectionPoints) - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched) -{ - HRESULT hr = S_FALSE; - - METHOD_PROLOGUE(CDsoFramerControl, EnumConnectionPoints); - ODS("CDsoFramerControl::XEnumConnectionPoints::Next\n"); - - CHECK_NULL_RETURN(rgpcn, E_POINTER); - *rgpcn = NULL; - - CHECK_NULL_RETURN(pcFetched, E_POINTER); - *pcFetched = 0; - - if (pThis->m_fConCntDone) - pThis->m_fConCntDone = FALSE; - else - { - SAFE_SET_INTERFACE(*rgpcn, &(pThis->m_xConnectionPoint)); - *pcFetched = 1; - pThis->m_fConCntDone = TRUE; hr = S_OK; - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Skip(ULONG cConnections) -{return S_OK;} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Reset(void) -{return S_OK;} - -STDMETHODIMP CDsoFramerControl::XEnumConnectionPoints::Clone(IEnumConnectionPoints **ppEnum) -{if (ppEnum) *ppEnum = this; return S_OK;} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XConnectionPoint -- IConnectionPoint Implementation -// -// STDMETHODIMP GetConnectionInterface(IID *pIID); -// STDMETHODIMP GetConnectionPointContainer(IConnectionPointContainer **ppCPC); -// STDMETHODIMP Advise(IUnknown *pUnk, DWORD *pdwCookie); -// STDMETHODIMP Unadvise(DWORD dwCookie); -// STDMETHODIMP EnumConnections(IEnumConnections **ppEnum); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ConnectionPoint) - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::GetConnectionInterface(IID *pIID) -{ - ODS("CDsoFramerControl::XConnectionPoint::GetConnectionInterface\n"); - if (pIID) *pIID = DIID__DFramerCtlEvents; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::GetConnectionPointContainer(IConnectionPointContainer **ppCPC) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::GetConnectionPointContainer\n"); - if (ppCPC) { SAFE_SET_INTERFACE(*ppCPC, &(pThis->m_xConnectionPointContainer)); }; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::Advise(IUnknown *pUnk, DWORD *pdwCookie) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::Advise\n"); - - CHECK_NULL_RETURN(pUnk, E_POINTER); - CHECK_NULL_RETURN(pdwCookie, E_POINTER); - - SAFE_RELEASE_INTERFACE(pThis->m_dispEvents); - - // FIX: The COM Interop layer in .NET CLR returns a different RCW for IDispatch than for a specific - // dispinterface GUID, so for events to work in .NET WinForm applications, we should explicitly use - // the RCW for that dispinterface. Other event source clients may fail QI for this GUID, so if it - // does return an error, we will QI again for IDispatch. The event issue is change in behavior from - // how VB6 implemented event sinks, and how VB7/C# does them... - HRESULT hr = pUnk->QueryInterface(DIID__DFramerCtlEvents, (void**)&(pThis->m_dispEvents)); - if (FAILED(hr)) hr = pUnk->QueryInterface(IID_IDispatch, (void**)&(pThis->m_dispEvents)); - - if (SUCCEEDED(hr)) *pdwCookie = (DWORD)(pThis); - return hr; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::Unadvise(DWORD dwCookie) -{ - METHOD_PROLOGUE(CDsoFramerControl, ConnectionPoint); - ODS("CDsoFramerControl::XConnectionPoint::Unadvise\n"); - if (dwCookie == (DWORD)(pThis)) - { - SAFE_RELEASE_INTERFACE(pThis->m_dispEvents); - } - return (pThis->m_dispEvents == NULL) ? S_OK : CONNECT_E_NOCONNECTION; -} - -STDMETHODIMP CDsoFramerControl::XConnectionPoint::EnumConnections(IEnumConnections **ppEnum) -{if (ppEnum) *ppEnum = NULL; return E_NOTIMPL;} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XOleCommandTarget -- IOleCommandTarget Implementation -// -// STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); -// STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, OleCommandTarget) - -STDMETHODIMP CDsoFramerControl::XOleCommandTarget::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleCommandTarget); - //ODS("CDsoFramerControl::XOleCommandTarget::QueryStatus\n"); - if (pguidCmdGroup != NULL) - return OLECMDERR_E_UNKNOWNGROUP; - - if (prgCmds == NULL) - return E_INVALIDARG; - - for (int i = 0; i < (int)cCmds; i++) - { - switch (prgCmds[i].cmdID) - { - case OLECMDID_NEW: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 1) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_OPEN: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 2) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_SAVE: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 8) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_SAVEAS: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 16) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PRINT: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 32) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PAGESETUP: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 64) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PROPERTIES: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 128) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - case OLECMDID_PRINTPREVIEW: prgCmds[i].cmdf = (((pThis->m_wFileMenuFlags & 256) ? OLECMDF_ENABLED : 0) | OLECMDF_SUPPORTED); break; - default: prgCmds[i].cmdf = 0; - } - } - - if (pCmdText) - { - pCmdText->cmdtextf = MSOCMDTEXTF_NONE; - pCmdText->cwActual = 0; - } - - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XOleCommandTarget::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut) -{ - METHOD_PROLOGUE(CDsoFramerControl, OleCommandTarget); - ODS("CDsoFramerControl::XOleCommandTarget::Exec\n"); - - if ((pguidCmdGroup != NULL) && (*pguidCmdGroup != GUID_NULL)) - return OLECMDERR_E_UNKNOWNGROUP; - - if (nCmdexecopt == MSOCMDEXECOPT_SHOWHELP) - return OLECMDERR_E_NOHELP; - - switch (nCmdID) - { - case OLECMDID_NEW: - case OLECMDID_OPEN: - case OLECMDID_SAVE: - case OLECMDID_SAVEAS: - case OLECMDID_PRINT: - case OLECMDID_PAGESETUP: - case OLECMDID_PROPERTIES: - case OLECMDID_PRINTPREVIEW: - PostMessage(pThis->m_hwnd, DSO_WM_ASYNCH_OLECOMMAND, nCmdID, nCmdexecopt); - return S_OK; - } - - return OLECMDERR_E_NOTSUPPORTED; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XSupportErrorInfo -- ISupportErrorInfo Implementation -// -// STDMETHODIMP InterfaceSupportsErrorInfo(REFIID riid); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, SupportErrorInfo) - -STDMETHODIMP CDsoFramerControl::XSupportErrorInfo::InterfaceSupportsErrorInfo(REFIID riid) -{ - ODS("CDsoFramerControl::XSupportErrorInfo::InterfaceSupportsErrorInfo\n"); - return ((riid == IID__FramerControl) ? S_OK : E_FAIL); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XObjectSafety -- IObjectSafety Implementation -// -// STDMETHODIMP GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions); -// STDMETHODIMP SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, ObjectSafety) - -STDMETHODIMP CDsoFramerControl::XObjectSafety::GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions) -{ - ODS("CDsoFramerControl::XObjectSafety::GetInterfaceSafetyOptions\n"); - CHECK_NULL_RETURN(pdwEnabledOptions, E_POINTER); - - if (pdwSupportedOptions) - *pdwSupportedOptions = (INTERFACESAFE_FOR_UNTRUSTED_DATA|INTERFACESAFE_FOR_UNTRUSTED_CALLER); - - // We are safe for initialization, but not necessarily for scripting. Since script - // can open documents with macros, and get access to Office OM via ActiveDocument, - // we cannot be "safe" for malicious script. But this allows the control to load - // without prompt (just not scripted without prompt)... - *pdwEnabledOptions = INTERFACESAFE_FOR_UNTRUSTED_DATA; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XObjectSafety::SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions) -{ - ODS("CDsoFramerControl::XObjectSafety::SetInterfaceSafetyOptions\n"); - return ((((riid == IID_IPersist) || (riid == IID_IPersistPropertyBag)) && - (dwEnabledOptions == INTERFACESAFE_FOR_UNTRUSTED_DATA)) ? S_OK : E_FAIL); -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoFramerControl::XDsoDocObjectSite -- IDsoDocObjectSite Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP GetBorder(LPRECT prcBorder); -// STDMETHODIMP SetStatusText(LPCOLESTR pszText); -// STDMETHODIMP GetHostName(LPWSTR *ppwszHostName); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoFramerControl, DsoDocObjectSite) - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::QueryService(REFGUID guidService, REFIID riid, void **ppv) -{ - HRESULT hr = E_NOINTERFACE; - ODS("CDsoFramerControl::XDsoDocObjectSite::QueryService\n"); - - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - CHECK_NULL_RETURN(ppv, E_POINTER); - - // We will return control IDispatch for cross container automation... - if (guidService == SID_SContainerDispatch) - { - ODS(" -- Container Dispatch Given --\n"); - hr = pThis->QueryInterface(riid, ppv); - } - // TODO: Support IHlinkFrame services for cross hyperlinking inside control?? - - // If we don't handle the call, and our host has a provider, pass the call along to see - // if the top-level host offers the service requested (like hyperlinking to new web page)... - if (FAILED(hr) && (pThis->m_pClientSite)) - { - IServiceProvider *pprov = NULL; - if (SUCCEEDED(pThis->m_pClientSite->QueryInterface(IID_IServiceProvider, (void**)&pprov)) && (pprov)) - { - if (SUCCEEDED(hr = pprov->QueryService(guidService, riid, ppv))) - { ODS(" -- Service provided by top-level host --\n"); } - pprov->Release(); - } - } - - return hr; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetWindow(HWND* phWnd) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetWindow\n"); - if (phWnd) *phWnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetBorder(LPRECT prcBorder) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetBorder\n"); - pThis->GetSizeRectForDocument(NULL, prcBorder); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::GetHostName(LPWSTR *ppwszHostName) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - ODS("CDsoFramerControl::XDsoDocObjectSite::GetHostName\n"); - if (ppwszHostName) *ppwszHostName = DsoCopyString(pThis->m_pwszHostName); - return S_OK; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::SysMenuCommand(UINT uiCharCode) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - TRACE1("CDsoFramerControl::XDsoDocObjectSite::SysMenuCommand(%x)\n", uiCharCode); - - // If we are processing a sys menu command, see if it is a menu accel for our - // displayed menu, and if so we handle this with a fake click of the menu button... - if ((uiCharCode) && (pThis->m_fShowMenuBar) && !(pThis->m_fDisableMenuAccel)) - { - UINT i; - CHAR *pch; - - // Loop all the menu items and check against their accelerators... - for (i = 0; i < DSO_MAX_MENUITEMS; i++) - { - pch = &(pThis->m_rgchMenuAccel[0]); - if (*pch) - { - if ((*pch != 0xFF) && ((UINT)(*pch) == ASCII_LOWERCASE(uiCharCode))) - { - // Found one that match, so fake mouse move and button down/up to run click code... - ODS("-- Trigger Menu Accelerator --\n"); - - PostMessage(pThis->m_hwnd, WM_MOUSEMOVE, (WPARAM)0, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - PostMessage(pThis->m_hwnd, WM_LBUTTONDOWN, (WPARAM)MK_LBUTTON, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - PostMessage(pThis->m_hwnd, WM_LBUTTONUP, (WPARAM)0, - MAKELPARAM(pThis->m_rgrcMenuItems[i].left + 1, pThis->m_rgrcMenuItems[i].top + 1)); - - // Return OK to caller to know to eat this message. - return S_OK; - } - } - else break; - } - } - - return S_FALSE; -} - -STDMETHODIMP CDsoFramerControl::XDsoDocObjectSite::SetStatusText(LPCOLESTR pszText) -{ - METHOD_PROLOGUE(CDsoFramerControl, DsoDocObjectSite); - - // If m_fActivateOnStatus flag is set, see if we are not UI active. If not, try to activate... - if ((pThis->m_fActivateOnStatus) && (pThis->m_fComponentActive) && (pThis->m_fAppActive) && - !(pThis->m_fUIActive) && !(pThis->m_fModalState)) - { - ODS(" -- ForceUIActiveFromSetStatusText --\n"); - pThis->m_fActivateOnStatus = FALSE; - pThis->Activate(); - } - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager -// -CDsoFrameHookManager* vgGlobalManager = NULL; - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager::RegisterFramerControl -// -// Creates a frame hook and registers it with the active manager. If -// this is the first time called, the global manager will be created -// now. The manager can handle up to DSOF_MAX_CONTROLS controls (10). -// -STDMETHODIMP_(CDsoFrameHookManager*) CDsoFrameHookManager::RegisterFramerControl(HWND hwndParent, HWND hwndControl) -{ - CDsoFrameHookManager* pManager = NULL; - ODS("CDsoFrameHookManager::RegisterFramerControl\n"); - CHECK_NULL_RETURN(hwndControl, NULL); - - EnterCriticalSection(&v_csecThreadSynch); - pManager = vgGlobalManager; - if (pManager == NULL) - pManager = (vgGlobalManager = new CDsoFrameHookManager()); - LeaveCriticalSection(&v_csecThreadSynch); - - if (pManager) - { - if (hwndParent == NULL) - hwndParent = hwndControl; - - if (FAILED(pManager->AddComponent(hwndParent, hwndControl))) - return NULL; - } - - return pManager; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager::AddComponent -// -// Register the component and create the actual frame hook (if needed). -// -STDMETHODIMP CDsoFrameHookManager::AddComponent(HWND hwndParent, HWND hwndControl) -{ - DWORD dwHostProcessID; - CDsoFrameWindowHook* phook; - HRESULT hr = E_OUTOFMEMORY; - HWND hwndNext, hwndHost = hwndParent; - ODS("CDsoFrameHookManager::AddComponent\n"); - - // Find the top-level window this control is sited on... - while (hwndNext = GetParent(hwndHost)) - hwndHost = hwndNext; - - // We have to get valid window that is in-thread for a subclass to work... - if (!IsWindow(hwndHost) || - (GetWindowThreadProcessId(hwndHost, &dwHostProcessID), - dwHostProcessID != GetCurrentProcessId())) - return E_ACCESSDENIED; - - // Next if we have room in the array, add the component to the list and - // hook its parent window so we get messages for it. - EnterCriticalSection(&v_csecThreadSynch); - if ((vgGlobalManager) && (m_cComponents < DSOF_MAX_CONTROLS)) - { - // Hook the host window for this control... - phook = CDsoFrameWindowHook::AttachToFrameWindow(hwndHost); - if (phook) - {// Add the component to the list if hooked... - m_pComponents[m_cComponents].hwndControl = hwndControl; - m_pComponents[m_cComponents].phookFrame = phook; - m_cComponents++; hr = S_OK; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - - if (SUCCEEDED(hr)) // Make sure item is the new active component - hr = SetActiveComponent(hwndControl); - - return hr; -} - -STDMETHODIMP CDsoFrameHookManager::DetachComponent(HWND hwndControl) -{ - DWORD dwIndex; - CHECK_NULL_RETURN(m_cComponents, E_FAIL); - - // Find this control in the list... - for (dwIndex = 0; dwIndex < m_cComponents; dwIndex++) - if (m_pComponents[dwIndex].hwndControl == hwndControl) break; - - if (dwIndex > m_cComponents) - return E_INVALIDARG; - - // If we found the index, remove the item and shift remaining - // items down the list. Change active index as needed... - EnterCriticalSection(&v_csecThreadSynch); - - m_pComponents[dwIndex].hwndControl = NULL; - m_pComponents[dwIndex].phookFrame->Detach(); - - // Compact the list... - while (++dwIndex < m_cComponents) - { - m_pComponents[dwIndex-1].hwndControl = m_pComponents[dwIndex].hwndControl; - m_pComponents[dwIndex-1].phookFrame = m_pComponents[dwIndex].phookFrame; - m_pComponents[dwIndex].hwndControl = NULL; - } - - // Decrement the count. If count still exists, forward activation - // to next component in the list... - if (--m_cComponents) - { - while (m_idxActive >= m_cComponents) - --m_idxActive; - - HWND hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)TRUE, (LPARAM)(m_fAppActive)); - } - else - { - vgGlobalManager = NULL; - // If this is the last control, we can remove the manger! - delete this; - } - - LeaveCriticalSection(&v_csecThreadSynch); - - return S_OK; -} - -STDMETHODIMP CDsoFrameHookManager::SetActiveComponent(HWND hwndControl) -{ - ODS(" -- CDsoFrameHookManager::SetActiveComponent -- \n"); - CHECK_NULL_RETURN(m_cComponents, E_FAIL); - DWORD dwIndex; - - // Find the index of the control... - for (dwIndex = 0; dwIndex < m_cComponents; dwIndex++) - if (m_pComponents[dwIndex].hwndControl == hwndControl) break; - - if (dwIndex > m_cComponents) - return E_INVALIDARG; - - // If it is not already the active item, notify old component it is - // losing activation, and notify new component that it is gaining... - EnterCriticalSection(&v_csecThreadSynch); - if (dwIndex != m_idxActive) - { - HWND hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)FALSE, (LPARAM)0); - - m_idxActive = dwIndex; - - hwndActive = GetActiveComponentWindow(); - if (hwndActive) - SendNotifyMessage(hwndActive, DSO_WM_HOOK_NOTIFY_COMPACTIVE, (WPARAM)TRUE, (LPARAM)(m_fAppActive)); - } - LeaveCriticalSection(&v_csecThreadSynch); - - return S_OK; -} - -STDMETHODIMP CDsoFrameHookManager::OnComponentNotify(DWORD msg, WPARAM wParam, LPARAM lParam) -{ - TRACE3("CDsoFrameHookManager::OnComponentNotify(%d, %d, %d)\n", msg, wParam, lParam); - HWND hwndActiveComp = GetActiveComponentWindow(); - - // The manager needs to keep track of AppActive state... - if (msg == DSO_WM_HOOK_NOTIFY_APPACTIVATE) - { - EnterCriticalSection(&v_csecThreadSynch); - m_fAppActive = (BOOL)wParam; - LeaveCriticalSection(&v_csecThreadSynch); - } - - // Send the message to the active component - SendNotifyMessage(hwndActiveComp, msg, wParam, lParam); - return S_OK; -} - -STDMETHODIMP_(BOOL) CDsoFrameHookManager::SendNotifyMessage(HWND hwnd, DWORD msg, WPARAM wParam, LPARAM lParam) -{ - BOOL fResult; - - // Check if the caller is on the same thread as the active component. If so we can - // forward the message directly for processing. If not, we have to post and wait for - // that thread to process message at a later time... - if (GetWindowThreadProcessId(hwnd, NULL) == GetCurrentThreadId()) - { // Notify now... - fResult = (BOOL)SendMessage(hwnd, msg, wParam, lParam); - } - else - { // Notify later... - fResult = PostMessage(hwnd, msg, wParam, lParam); - } - - return fResult; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook -// -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::AttachToFrameWindow -// -// Creates the frame hook for the host window. -// -STDMETHODIMP_(CDsoFrameWindowHook*) CDsoFrameWindowHook::AttachToFrameWindow(HWND hwndParent) -{ - CDsoFrameWindowHook* phook = NULL; - BOOL fHookSuccess = FALSE; - - // We have to get valid window ... - if (!IsWindow(hwndParent)) - return NULL; - - EnterCriticalSection(&v_csecThreadSynch); - phook = CDsoFrameWindowHook::GetHookFromWindow(hwndParent); - if (phook) - { // Already have this window hooked, so just addref the count. - phook->AddRef(); - } - else - { // Need to create a new hook object for this window... - if ((phook = new CDsoFrameWindowHook())) - { - phook->m_hwndTopLevelHost = hwndParent; - phook->m_fHostUnicodeWindow = (v_fUnicodeAPI && IsWindowUnicode(hwndParent)); - - // Setup the subclass using Unicode or Ansi methods depending on window - // create state. Note if either property assoc or window subclass fail... - if (phook->m_fHostUnicodeWindow) - { - fHookSuccess = SetPropW(hwndParent, L"DSOFramerWndHook", (HANDLE)phook); - if (fHookSuccess) - { - phook->m_pfnOrigWndProc = (WNDPROC)SetWindowLongW(hwndParent, GWL_WNDPROC, (LONG)(WNDPROC)HostWindowProcHook); - fHookSuccess = (phook->m_pfnOrigWndProc != NULL); - } - } - else - { - fHookSuccess = SetPropA(hwndParent, "DSOFramerWndHook", (HANDLE)phook); - if (fHookSuccess) - { - phook->m_pfnOrigWndProc = (WNDPROC)SetWindowLongA(hwndParent, GWL_WNDPROC, (LONG)(WNDPROC)HostWindowProcHook); - fHookSuccess = (phook->m_pfnOrigWndProc != NULL); - } - } - - // If we failed the subclass, kill this object and return error... - if (!fHookSuccess) - { - delete phook; - phook = NULL; - } - else phook->m_cHookCount++; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - - return phook; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::Detach -// -// Removes the hook from the frame window if this is the last control -// to reference the hook. -// -STDMETHODIMP CDsoFrameWindowHook::Detach() -{ - // Only need to call this if item is attached. - EnterCriticalSection(&v_csecThreadSynch); - if (m_cHookCount) - { - if (--m_cHookCount == 0) - { // We can remove the hook! - if (m_fHostUnicodeWindow) - { - SetWindowLongW(m_hwndTopLevelHost, GWL_WNDPROC, (LONG)(m_pfnOrigWndProc)); - RemovePropW(m_hwndTopLevelHost, L"DSOFramerWndHook"); - } - else - { - SetWindowLongA(m_hwndTopLevelHost, GWL_WNDPROC, (LONG)(m_pfnOrigWndProc)); - RemovePropA(m_hwndTopLevelHost, "DSOFramerWndHook"); - } - m_hwndTopLevelHost = NULL; - - // we can kill this object now... - delete this; - } - } - LeaveCriticalSection(&v_csecThreadSynch); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::GetHookFromWindow -// -// Returns the hook control associated with this object. -// -STDMETHODIMP_(CDsoFrameWindowHook*) CDsoFrameWindowHook::GetHookFromWindow(HWND hwnd) -{ - CDsoFrameWindowHook* phook = (CDsoFrameWindowHook*)GetPropW(hwnd, L"DSOFramerWndHook"); - if (phook == NULL) phook = (CDsoFrameWindowHook*)GetPropA(hwnd, "DSOFramerWndHook"); - return phook; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook::HostWindowProcHook -// -// The window proc for the subclassed host window. -// -STDMETHODIMP_(LRESULT) CDsoFrameWindowHook::HostWindowProcHook(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoFrameWindowHook* phook = CDsoFrameWindowHook::GetHookFromWindow(hwnd); - if (phook) // We better get our prop for this window! - { - // We handle the important ActiveDocument frame-level events like task - // window activation/deactivation, palette change notfication, and key/mouse - // focus notification on host app focus... - switch (msg) - { - case WM_ACTIVATEAPP: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_APPACTIVATE, wParam, lParam); - break; - - case WM_PALETTECHANGED: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_PALETTECHANGE, wParam, lParam); - break; - - case WM_SYNCPAINT: - if (vgGlobalManager) - vgGlobalManager->OnComponentNotify(DSO_WM_HOOK_NOTIFY_SYNCPAINT, wParam, lParam); - break; - - } - - // After processing, allow calls to fall through to host app. We need to call - // the appropriate handler for Unicode or non-Unicode windows... - if (phook->m_fHostUnicodeWindow) - return CallWindowProcW(phook->m_pfnOrigWndProc, hwnd, msg, wParam, lParam); - else - return CallWindowProcA(phook->m_pfnOrigWndProc, hwnd, msg, wParam, lParam); - } - - // Should not be reached, but just in case call default proc... - return (IsWindowUnicode(hwnd) ? - DefWindowProcW(hwnd, msg, wParam, lParam) : - DefWindowProcA(hwnd, msg, wParam, lParam)); -} \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsofdocobj.cpp b/PROMS/DSOFramer/Source2005/dsofdocobj.cpp deleted file mode 100644 index 34721835..00000000 --- a/PROMS/DSOFramer/Source2005/dsofdocobj.cpp +++ /dev/null @@ -1,3253 +0,0 @@ -/*************************************************************************** - * DSOFDOCOBJ.CPP - * - * CDsoDocObject: ActiveX Document Single Instance Frame/Site Object - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject - The DocObject Site Class -// -// This class wraps the functionality for DocObject hosting. Right now -// we are setup for one active site at a time, but this could be changed -// to allow multiple sites (although only one could be UI active at any -// given time). -// -CDsoDocObject::CDsoDocObject() -{ - ODS("CDsoDocObject::CDsoDocObject\n"); - m_cRef = 1; - m_fDisplayTools = TRUE; -} - -CDsoDocObject::~CDsoDocObject(void) -{ - ODS("CDsoDocObject::~CDsoDocObject\n"); - if (m_pole) Close(); - if (m_hwnd) DestroyWindow(m_hwnd); - - SAFE_FREESTRING(m_pwszUsername); - SAFE_FREESTRING(m_pwszPassword); - SAFE_FREESTRING(m_pwszHostName); - - SAFE_RELEASE_INTERFACE(m_pstgroot); - SAFE_RELEASE_INTERFACE(m_punkIPPResource); - SAFE_RELEASE_INTERFACE(m_pcmdCtl); - SAFE_RELEASE_INTERFACE(m_psiteCtl); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateNewDocObject -// -// Static Creation Function. -// -STDMETHODIMP_(CDsoDocObject*) CDsoDocObject::CreateInstance(IDsoDocObjectSite* phost) -{ - ODS("CDsoDocObject::CreateInstance()\n"); - CDsoDocObject* pnew = new CDsoDocObject(); - if ((pnew) && FAILED(pnew->InitializeNewInstance(phost))) - { - pnew->Release(); - pnew = NULL; - } - return pnew; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::InitializeNewInstance -// -// Sets up new docobject class. We must a control site to attach this -// window to. It will call back to host for menu and IOleCommandTarget. -// -STDMETHODIMP CDsoDocObject::InitializeNewInstance(IDsoDocObjectSite* phost) -{ - HRESULT hr = E_UNEXPECTED; - WNDCLASS wndclass; - HWND hwndCtl; - - ODS("CDsoDocObject::InitializeNewInstance()\n"); - - // We need valid IDsoDocObjectSite... - if ((phost == NULL) || FAILED(phost->GetWindow(&hwndCtl))) - return hr; - - // As an AxDoc site, we need a valid parent window... - if ((!hwndCtl) || (!IsWindow(hwndCtl))) - return hr; - - // Create a temp storage for this docobj site (if one already exists, bomb out)... - if ((m_pstgroot) || FAILED(hr = StgCreateDocfile(NULL, STGM_TRANSACTED | STGM_READWRITE | - STGM_SHARE_EXCLUSIVE | STGM_CREATE | STGM_DELETEONRELEASE, 0, &m_pstgroot))) - return hr; - - // If our site window class has not been registered before, we should register it... - - // This is protected by a critical section just for fun. The fact we had to single - // instance the OCX because of the host hook makes having multiple instances conflict here - // very unlikely. However, that could change sometime, so better to be safe than sorry. - EnterCriticalSection(&v_csecThreadSynch); - - if (GetClassInfo(v_hModule, "DSOFramerDocWnd", &wndclass) == 0) - { - memset(&wndclass, 0, sizeof(WNDCLASS)); - wndclass.style = CS_VREDRAW | CS_HREDRAW | CS_DBLCLKS; - wndclass.lpfnWndProc = CDsoDocObject::FrameWindowProc; - wndclass.hInstance = v_hModule; - wndclass.hCursor = LoadCursor(NULL, IDC_ARROW); - wndclass.lpszClassName = "DSOFramerDocWnd"; - if (RegisterClass(&wndclass) == 0) - hr = E_WIN32_LASTERROR; - } - - LeaveCriticalSection(&v_csecThreadSynch); - if (FAILED(hr)) return hr; - - // Get the position RECT (and validate as needed)... - hr = phost->GetBorder(&m_rcViewRect); - if (FAILED(hr)) return hr; - - if (m_rcViewRect.top > m_rcViewRect.bottom) - {m_rcViewRect.top = 0; m_rcViewRect.bottom = 0;} - if (m_rcViewRect.left > m_rcViewRect.right) - {m_rcViewRect.left = 0; m_rcViewRect.right = 0;} - - // Create our site window at the give location (we are child of the control window)... - m_hwnd = CreateWindowEx(0, "DSOFramerDocWnd", NULL, WS_CHILD, - m_rcViewRect.left, m_rcViewRect.top, - (m_rcViewRect.right - m_rcViewRect.left), - (m_rcViewRect.bottom - m_rcViewRect.top), - hwndCtl, NULL, v_hModule, NULL); - - if (!m_hwnd) return E_OUTOFMEMORY; - SetWindowLong(m_hwnd, GWL_USERDATA, (LONG)this); - - // Save the control info for this object... - m_hwndCtl = hwndCtl; - (m_psiteCtl = phost)->AddRef(); - - m_psiteCtl->QueryInterface(IID_IOleCommandTarget, (void**)&m_pcmdCtl); - m_psiteCtl->GetHostName(&m_pwszHostName); - if (m_pwszHostName == NULL) - m_pwszHostName = DsoCopyString(L"DsoFramerControl"); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateDocObject (From CLSID) -// -// This does embedding of new object, or loads a copy from storage. -// To activate and show the object, you must call IPActivateView(). -// -STDMETHODIMP CDsoDocObject::CreateDocObject(REFCLSID rclsid) -{ - HRESULT hr; - CLSID clsid; - DWORD dwMiscStatus = 0; - IOleObject* pole = NULL; - IPersistStorage* pipstg = NULL; - BOOL fInitNew = (m_pstgfile == NULL); - - ODS("CDsoDocObject::CreateDocObject(CLSID)\n"); - ASSERT(!(m_pole)); - - // Don't load if an object has already been loaded... - if (m_pole) return E_UNEXPECTED; - - // It is possible that someone picked an older ProgId/CLSID that - // will AutoConvert on CoCreate, so fix up the storage with the - // new CLSID info. We we actually call CoCreate on the new CLSID... - if (fInitNew && SUCCEEDED(OleGetAutoConvert(rclsid, &clsid))) - { - OleDoAutoConvert(m_pstgfile, &clsid); - } - else clsid = rclsid; - - // First, check the server to make sure it is AxDoc server... - if (FAILED(hr = ValidateDocObjectServer(rclsid))) - return hr; - - // If we haven't loaded a storage, create a new one and remember to - // call InitNew (instead of Load) later on... - if (fInitNew && FAILED(hr = CreateObjectStorage(rclsid))) - return hr; - - // We are ready to create an instance. Call CoCreate to make an - // inproc handler and ask for IOleObject (all docobjs must support this)... - if (FAILED(hr = InstantiateDocObjectServer(clsid, &pole))) - return hr; - - // Do a quick check to see if server wants us to set client site before the load.. - hr = pole->GetMiscStatus(DVASPECT_CONTENT, &dwMiscStatus); - if (dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST) - hr = pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // Load up the bloody thing... - if (SUCCEEDED(hr = pole->QueryInterface(IID_IPersistStorage, (void**)&pipstg))) - { - // Remember to InitNew if this is a new storage... - hr = ((fInitNew) ? pipstg->InitNew(m_pstgfile) : pipstg->Load(m_pstgfile)); - pipstg->Release(); - } - - // Assuming all the above worked we should have an OLE Embeddable - // object and should finish the initialization (set object running)... - if (SUCCEEDED(hr)) - { - // Save the IOleObject* and do a disconnect on quit... - SAFE_SET_INTERFACE(m_pole, pole); - m_fDisconnectOnQuit = TRUE; - - // Keep server CLSID for this object - m_clsidObject = clsid; - - // Ensure server is running and locked... - EnsureOleServerRunning(TRUE); - - // If we didn't do so already, set our client site... - if (!(dwMiscStatus & OLEMISC_SETCLIENTSITEFIRST)) - hr = m_pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // Set the host names for OLE embedding... - m_pole->SetHostNames(m_pwszHostName, m_pwszHostName); - - // Ask object to save (if dirty)... - if (IsDirty()) SaveObjectStorage(); - } - else - {// Be sure they disconnect from our site if we failed load... - pole->SetClientSite(NULL); - } - - // This will free the OLE server if anything above failed... - SAFE_RELEASE_INTERFACE(pole); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateDocObject (From IStorage*) -// -// This does embedding of new object, or loads a copy from storage. -// To activate and show the object, you must call IPActivateView(). -// -STDMETHODIMP CDsoDocObject::CreateDocObject(IStorage *pstg) -{ - HRESULT hr; - CLSID clsid; - - ODS("CDsoDocObject::CreateDocObject(IStorage*)\n"); - CHECK_NULL_RETURN(pstg, E_POINTER); - - // Read the clsid from the storage.. - if (FAILED(hr = ReadClassStg(pstg, &clsid))) - return hr; - - // Validate the server is AxDoc server... - if (FAILED(hr = ValidateDocObjectServer(clsid))) - return hr; - - // Create a new storage for this CLSID... - if (FAILED(hr = CreateObjectStorage(clsid))) - return hr; - - // Copy data into the new storage and commit the change... - hr = pstg->CopyTo(0, NULL, NULL, m_pstgfile); - if (SUCCEEDED(hr)) hr = m_pstgfile->Commit(STGC_OVERWRITE); - - // Then do normal create on existing storage made from copy... - return CreateDocObject(clsid); -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromFile -// -// Loads document into the framer control. The bind options determine if -// file should be loaded read-only or read-write. An alternate CLSID can -// be provided if the document type is not normally associated with a -// a DocObject server in OLE. -// -// To activate and show the object, you must call IPActivateView(). -// -// The code will attempt to open the file in one of three ways: -// -// 1.) Using IMoniker, we will attempt to open and load existing file -// via a passed moniker, similar to how IE loads files. -// -// 2.) Using IPersistFile, we will attempt to open via direct file path. -// -// 3.) Finally, if above two options don't work, we will try to open the -// storage, make a copy and load using IPersistStorage. This last way follows -// the (old) Binder behavior, and should *by spec* always work, but is a bit -// clunky since we open a copy, not the real file. -// -STDMETHODIMP CDsoDocObject::CreateFromFile(LPWSTR pwszFile, REFCLSID rclsid, LPBIND_OPTS pbndopts) -{ - HRESULT hr; - CLSID clsid; - CLSID clsidConv; - IOleObject *pole = NULL; - IBindCtx *pbctx = NULL; - IMoniker *pmkfile = NULL; - IStorage *pstg = NULL; - BOOL fLoadFromAltCLSID = (rclsid != GUID_NULL); - - // Sanity check of parameters... - if (!(pwszFile) || ((*pwszFile) == L'\0') || (pbndopts == NULL)) - return E_INVALIDARG; - - TRACE2("CDsoDocObject::CreateFromFile(%S, %x)\n", pwszFile, pbndopts->grfMode); - - // First. we'll try to find the associated CLSID for the given file, - // and then set it to the alternate if not found. If we don't have a - // CLSID by the end of this, because user didn't specify alternate - // and GetClassFile failed, then we error out... - if (FAILED(GetClassFile(pwszFile, &clsid)) && !(fLoadFromAltCLSID)) - return DSO_E_INVALIDSERVER; - - // We should try to load from alternate CLSID if provided one... - if (fLoadFromAltCLSID) clsid = rclsid; - - // We should also handle auto-convert to start "newest" server... - if (SUCCEEDED(OleGetAutoConvert(clsid, &clsidConv))) - clsid = clsidConv; - - // Validate that we have a DocObject server... - if ((clsid == GUID_NULL) || FAILED(ValidateDocObjectServer(clsid))) - return DSO_E_INVALIDSERVER; - - // Check for IE cache items since these are read-only as far as user is concerned... - if (FIsIECacheFile(pwszFile)) - { - pbndopts->grfMode &= ~(STGM_READWRITE); - pbndopts->grfMode &= ~(STGM_WRITE); - pbndopts->grfMode |= STGM_READ; - } - - // First, we try to bind by moniker (same as IE). We'll need a bind context - // and a file moniker for the orginal source... - if (SUCCEEDED(hr = CreateBindCtx(0, &pbctx))) - { - if (SUCCEEDED(hr = pbctx->SetBindOptions(pbndopts)) && - SUCCEEDED(hr = CreateFileMoniker(pwszFile, &pmkfile))) - { - - // Bind to the object moniker refers to... - hr = pmkfile->BindToObject(pbctx, NULL, IID_IOleObject, (void**)&pole); - - // If that failed, try to bind direct to file in new server... - if (FAILED(hr)) - { - IPersistFile *pipfile = NULL; - - if (SUCCEEDED(hr = InstantiateDocObjectServer(clsid, &pole)) && - SUCCEEDED(hr = pole->QueryInterface(IID_IPersistFile, (void**)&pipfile))) - { - hr = pipfile->Load(pwszFile, pbndopts->grfMode); - pipfile->Release(); - } - } - - // If either solution worked, setup the rest of the bind info... - if (SUCCEEDED(hr)) - { - // Save the IOleObject* and do a disconnect on quit... - SAFE_SET_INTERFACE(m_pole, pole); - m_fDisconnectOnQuit = TRUE; - - // Keep server CLSID for this object - m_clsidObject = clsid; - - // Keep the moniker and bind ctx... - SAFE_SET_INTERFACE(m_pmkSourceFile, pmkfile); - SAFE_SET_INTERFACE(m_pbctxSourceFile, pbctx); - - // Set out client site... - m_pole->SetClientSite((IOleClientSite*)&m_xOleClientSite); - - // We don't normally set host name for moniker bind, but MSWORD object - // requires it to IP activate it instead of link & show external... - if (IsWordObject()) - m_pole->SetHostNames(m_pwszHostName, m_pwszHostName); - - } - else pole->SetClientSite(NULL); - - // This will release the moniker if above failed... - pmkfile->Release(); - } - // This will release the bind ctx if above failed... - pbctx->Release(); - } - - // If binding by moniker failed, try the old fashion way of bind to OLE storage... - if (FAILED(hr)) - { - // Try to open file as OLE storage (native OLE DocFile)... - if (SUCCEEDED(hr = StgOpenStorage(pwszFile, NULL, pbndopts->grfMode, NULL, 0, &pstg))) - { - // Create our substorage, and copy the data over to it... - if (SUCCEEDED(hr = CreateObjectStorage(clsid)) && - SUCCEEDED(hr = pstg->CopyTo(0, NULL, NULL, m_pstgfile))) - { - m_pstgfile->Commit(STGC_OVERWRITE); - - // Then create the object from the storage copy... - if (SUCCEEDED(hr = CreateDocObject(clsid))) - { - SAFE_SET_INTERFACE(m_pstgSourceFile, pstg); - } - } - // This will release the storage if above failed... - pstg->Release(); - } - } - - // If all went well, we should save file name and whether it opened read-only... - if (SUCCEEDED(hr)) - { - m_pwszSourceFile = DsoCopyString(pwszFile); - m_idxSourceName = CalcDocNameIndex(m_pwszSourceFile); - m_fOpenReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - } - - // This will free the OLE server if anything above failed... - SAFE_RELEASE_INTERFACE(pole); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromURL -// -// Loads document from a URL resource. The document can be open read-only -// using URLMON in the same context as the host client (i.e., it can be -// treated as normal navigation in host if host supports URLMON, like IE). -// Or you can choose to open read-write, which will attempt to use the -// Microsoft Internet Publishing Provider (MSDAIPP) to author on the web. -// -// The default is to open read-only with URLMON. If client wants read-write, -// we will try MSDAIPP for DAV first, then MSDAIPP for FPSE/WSS/SPS. -// -STDMETHODIMP CDsoDocObject::CreateFromURL(LPWSTR pwszUrlFile, REFCLSID rclsid, LPBIND_OPTS pbndopts, LPWSTR pwszUserName, LPWSTR pwszPassword) -{ - HRESULT hr; - BOOL fReadOnly; - LPWSTR pwszTempFile; - IStream *pstmWebResource = NULL; - - // First, a sanity check on the parameters passed... - if ((pwszUrlFile == NULL) || (pbndopts == NULL)) - return E_INVALIDARG; - - TRACE2("CDsoDocObject::CreateFromURL(%S, %x)\n", pwszUrlFile, pbndopts->grfMode); - - // Get a temp path for the download... - if (!GetTempPathForURLDownload(pwszUrlFile, &pwszTempFile)) - return E_ACCESSDENIED; - - // Save out the user name and password (if provided) for IAuthenticate... - if (pwszUserName) - { - SAFE_FREESTRING(m_pwszUsername); - m_pwszUsername = DsoCopyString(pwszUserName); - - SAFE_FREESTRING(m_pwszPassword); - m_pwszPassword = DsoCopyString(pwszPassword); - } - - // Determine if they want to open read-only using URLMON or read-write using MSDAIPP... - fReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - - if (fReadOnly) // If using URLMON... - { - hr = URLDownloadFile((IUnknown*)&m_xAuthenticate, pwszUrlFile, pwszTempFile); - } - else // Otherwise we need access to MSDAIPP for writable stream... - { - hr = IPPDownloadWebResource(pwszUrlFile, pwszTempFile, &pstmWebResource); - } - - // If all goes well with the download, we can then open the temp file for write access to - // use as local file during the editing. Then we can save back on the stream if requested. - if (SUCCEEDED(hr)) - { - BIND_OPTS bopts = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, STGM_READWRITE|STGM_SHARE_EXCLUSIVE, 10000}; - hr = CreateFromFile(pwszTempFile, rclsid, &bopts); - if (SUCCEEDED(hr)) - { - m_fOpenReadOnly = fReadOnly; - if (!m_fOpenReadOnly) - { - m_pwszWebResource = DsoCopyString(pwszUrlFile); - SAFE_SET_INTERFACE(m_pstmWebResource, pstmWebResource); - } - } - } - - SAFE_RELEASE_INTERFACE(pstmWebResource); - DsoMemFree(pwszTempFile); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateFromRunningObject -// -// Grabs a pre-existing object (such as a running object) and attempts -// to embed it. If that fails, it will make a copy of the object and open -// the copy read-only. -// -STDMETHODIMP CDsoDocObject::CreateFromRunningObject(LPUNKNOWN punkObj, LPWSTR pwszObjectName, LPBIND_OPTS pbndopts) -{ - HRESULT hr; - IPersistStorage *prststg; - IOleObject *pole; - CLSID clsid; - BOOL fReadOnly; - - ODS("CDsoDocObject::CreateFromRunningObject()\n"); - CHECK_NULL_RETURN(punkObj, E_POINTER); - CHECK_NULL_RETURN(pbndopts, E_POINTER); - - // We only can support read-only since a running object is external, and in order - // to get a copy inplace active, we end up making a copy of the storage, which means - // this control will have a copy and not control the orginal source. Since the orginal - // can be locked and not available, we have to treat this as read-only. - fReadOnly = ((pbndopts->grfMode & STGM_WRITE) == 0) && - ((pbndopts->grfMode & STGM_READWRITE) == 0); - - if (!fReadOnly) return STG_E_LOCKVIOLATION; - - // First, ensure the object passed supports embedding (i.e., we expect - // something like a Word.Document or Excel.Sheet object, not a Word.Application - // object or something else that is not a document type)... - hr = punkObj->QueryInterface(IID_IOleObject, (void**)&pole); - if (FAILED(hr)) return hr; - - // Ask the object to save its persistent state. We also collect its CLSID and - // validate that the object type supports DocObject embedding... - hr = pole->QueryInterface(IID_IPersistStorage, (void**)&prststg); - if (SUCCEEDED(hr)) - { - hr = prststg->GetClassID(&clsid); // Validate the object type... - if (FAILED(hr) || FAILED(ValidateDocObjectServer(clsid))) - { - hr = DSO_E_INVALIDSERVER; - } - else - { - // Create a matching storage for the object and save the current - // state of the file in our storage (this is our private copy)... - if (SUCCEEDED(hr = CreateObjectStorage(clsid)) && - SUCCEEDED(hr = prststg->Save(m_pstgfile, FALSE)) && - SUCCEEDED(hr = prststg->SaveCompleted(NULL))) - { - // At this point we have a read-only copy... - prststg->HandsOffStorage(); - m_fOpenReadOnly = TRUE; - - // Create the embedding... - hr = CreateDocObject(clsid); - } - } - - prststg->Release(); - } - - pole->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPActivateView -// -// Activates the object for inplace viewing. -// -STDMETHODIMP CDsoDocObject::IPActivateView() -{ - HRESULT hr = E_UNEXPECTED; - ODS("CDsoDocObject::IPActivateView()\n"); - ASSERT(m_pole); - - // Make sure the site window is made visible... - if (!IsWindowVisible(m_hwnd)) - ShowWindow(m_hwnd, SW_SHOW); - - // If we have an IOleDocument pointer, we can use the Show method for - // inplace activation... - if (m_pdocv) - { - hr = m_pdocv->Show(TRUE); - } - else if (m_pole) - { - // Try creating a document view and loading it... - hr = m_xOleDocumentSite.ActivateMe(NULL); - if (FAILED(hr)) // If that fails, go the old OLE route... - { - RECT rcView; GetClientRect(m_hwnd, &rcView); - - // First call IOleObject::DoVerb with OLEIVERB_INPLACEACTIVATE - // (or OLEIVERB_SHOW), and our view rect and IOleClientSite pointer... - hr = m_pole->DoVerb(OLEIVERB_INPLACEACTIVATE, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - - // If the server doesn't recognize IP verb, try OLEIVERB_SHOW instead... - if (hr == OLEOBJ_E_INVALIDVERB) - hr = m_pole->DoVerb(OLEIVERB_SHOW, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - - // There is an issue with Visio 2002 rejecting DoVerb when it is called while - // Visio is still loading up the main app window. OLE servers normally return RPC - // retry later error, which will spin us in the msg-filter, but Visio just rejects - // the call all together, which pops us out of the filter early. This causes the - // embed attempt to fail. So to workaround this, we will check for the condition, - // sleep a bit, and then try our own semi-msg-filter loop... - if ((hr == RPC_E_CALL_REJECTED) && IsVisioObject()) - { - DWORD dwLoopCnt = 0; - do - { - Sleep((200 * ++dwLoopCnt)); - hr = m_pole->DoVerb(OLEIVERB_SHOW, NULL, - (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - } - while ((hr == RPC_E_CALL_REJECTED) && (dwLoopCnt < 4)); - } - } - } - - // Go ahead and UI activate now... - if (SUCCEEDED(hr)) - hr = UIActivateView(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPDeactivateView -// -// Deactivates the object ready for close. -// -STDMETHODIMP CDsoDocObject::IPDeactivateView() -{ - HRESULT hr = S_OK; - ODS("CDsoDocObject::IPDeactivateView()\n"); - - // If we still have a UI active object, tell it to UI deactivate... - if (m_pipactive) - UIDeactivateView(); - - // Next hide the active object... - if (m_pdocv) - m_pdocv->Show(FALSE); - - // Notify object our intention to IP deactivate... - if (m_pipobj) - m_pipobj->InPlaceDeactivate(); - - // Close the object down and release pointers... - if (m_pdocv) - { - hr = m_pdocv->CloseView(0); - m_pdocv->SetInPlaceSite(NULL); - } - - SAFE_RELEASE_INTERFACE(m_pcmdt); - SAFE_RELEASE_INTERFACE(m_pdocv); - SAFE_RELEASE_INTERFACE(m_pipobj); - - // Hide the site window... - ShowWindow(m_hwnd, SW_HIDE); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::UIActivateView -// -// UI Activates the object (which should bring up toolbars and caret). -// -STDMETHODIMP CDsoDocObject::UIActivateView() -{ - HRESULT hr = S_FALSE; - ODS("CDsoDocObject::UIActivateView()\n"); - - if (m_pdocv) // Go UI active... - { - hr = m_pdocv->UIActivate(TRUE); - } - else if (m_pole) // We should never get here, but just in case pdocv is NULL, signal UI active the old way... - { - RECT rcView; GetClientRect(m_hwnd, &rcView); - m_pole->DoVerb(OLEIVERB_UIACTIVATE, NULL, (IOleClientSite*)&m_xOleClientSite, (UINT)-1, m_hwnd, &rcView); - } - - // Forward focus to the IP object... - if (SUCCEEDED(hr) && (m_hwndIPObject)) - SetFocus(m_hwndIPObject); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::UIDeactivateView -// -// UI Deactivates the object (which should hide toolbars and caret). -// -STDMETHODIMP CDsoDocObject::UIDeactivateView() -{ - HRESULT hr = S_FALSE; - ODS("CDsoDocObject::UIDeactivateView()\n"); - if (m_pdocv) - hr = m_pdocv->UIActivate(FALSE); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IsDirty -// -// Determines if the file is dirty (by asking IPersistXXX::IsDirty). -// -STDMETHODIMP_(BOOL) CDsoDocObject::IsDirty() -{ - BOOL fDirty = TRUE; // Assume we are dirty unless object says we are not - IPersistStorage *pprststg; - IPersistFile *pprst; - - // Can't be dirty without object - CHECK_NULL_RETURN(m_pole, FALSE); - - // Ask object its dirty state... - if ((m_pmkSourceFile) && - SUCCEEDED(m_pole->QueryInterface(IID_IPersistFile, (void**)&pprst))) - { - fDirty = ((pprst->IsDirty() == S_FALSE) ? FALSE : TRUE); - pprst->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IPersistStorage, (void**)&pprststg))) - { - fDirty = ((pprststg->IsDirty() == S_FALSE) ? FALSE : TRUE); - pprststg->Release(); - } - - return fDirty; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::Save -// -// Does default save action for existing document (if it is not read-only). -// -// There are three types of loaded doc objects we can save: -// (1) Files obtained by URL write bind via MSDAIPP; -// (2) Files opened from local file source; and -// (3) Objects already running or files linked to via OLE moniker. -// -// This function determines which type we should do the save, and call -// the right code for that type. -// -STDMETHODIMP CDsoDocObject::Save() -{ - HRESULT hr = DSO_E_NOTBEENSAVED; - - // We can't do save default if file was open read-only, - // caller must do save with new file name... - if (!IsReadOnly()) - { - // If we have a URL (write-access) resource, do MSDAIPP save... - if (m_pstmWebResource) - { - hr = SaveToURL(NULL, TRUE, NULL, NULL); - } - // Else if it is local file, do a local save... - else if (m_pwszSourceFile) - { - hr = SaveToFile(NULL, TRUE); - } - } - - return hr; -} - -STDMETHODIMP CDsoDocObject::SaveToFile(LPWSTR pwszFile, BOOL fOverwriteFile) -{ - HRESULT hr = E_UNEXPECTED; - IStorage *pstg; - LPWSTR pwszFullName = NULL; - LPWSTR pwszRename = NULL; - BOOL fDoNormalSave = FALSE; - BOOL fDoOverwriteOps = FALSE; - BOOL fFileOpSuccess = FALSE; - - TRACE2("CDsoDocObject::SaveToFile(%S, %d)\n", ((pwszFile) ? pwszFile : L"[Default]"), fOverwriteFile); - CHECK_NULL_RETURN(m_pole, hr); - - // If they passed no file, use the default if current file is not read-only... - if (fDoNormalSave = (pwszFile == NULL)) - { - // File must be read-write for normal save... - if (IsReadOnly()) return DSO_E_DOCUMENTREADONLY; - - // If we are not moniker bound, we'll use the existing file path for ole save... - if (m_pwszSourceFile == NULL) return DSO_E_NOTBEENSAVED; - - pwszFile = (pwszFullName = DsoCopyString(m_pwszSourceFile)); - if (pwszFile == NULL) return E_OUTOFMEMORY; - } - else - { - // Make sure a file extension exists for string passed by caller... - if (ValidateFileExtension(pwszFile, &pwszFullName)) - pwszFile = pwszFullName; - } - - // See if we will be overwriting, and error unless given permission to do so... - if ((fDoOverwriteOps = FFileExists(pwszFile)) && !(fOverwriteFile)) - return STG_E_FILEALREADYEXISTS; - - // If we had a previous lock on storage, we have to free it... - SAFE_RELEASE_INTERFACE(m_pstgSourceFile); - - // If we are overwriting, we do a little Shell Operation here. This is done - // for two reasons: (1) it keeps the server from asking us to overwrite the - // file as it normally would in case of normal save; and (2) it lets us - // restore the original if the save fails... - if (fDoOverwriteOps) - { - pwszRename = DsoCopyStringCat(pwszFile, L".dstmp"); - fFileOpSuccess = ((pwszRename) && FPerformShellOp(FO_RENAME, pwszFile, pwszRename)); - } - - // Time to do the save to new file. - - // First we try to save by moniker using IPersistMoniker/IPersistFile. Check for defaut - // save to the current document. If to a new doc, create new moniker and save ... - if ((fDoNormalSave) && (m_pmkSourceFile)) - { - hr = SaveDocToMoniker(m_pmkSourceFile, m_pbctxSourceFile, TRUE); - } - else if (pwszFile) - { - // Create a new moniker for the save... - IMoniker *pnewmk = NULL; - if (SUCCEEDED(hr = CreateFileMoniker(pwszFile, &pnewmk))) - { - - // If current document is read-only, we want new one to be read-write... - if ((m_fOpenReadOnly) && (m_pbctxSourceFile)) - { - BIND_OPTS bndopts; bndopts.cbStruct = sizeof(BIND_OPTS); - if (SUCCEEDED(m_pbctxSourceFile->GetBindOptions(&bndopts))) - { - bndopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE); - hr = m_pbctxSourceFile->SetBindOptions(&bndopts); - } - } - else if (m_pbctxSourceFile == NULL) - { - // May need to create a new bind context if we haven't already... - if (SUCCEEDED(hr = CreateBindCtx(0, &m_pbctxSourceFile))) - { - BIND_OPTS bndopts; bndopts.cbStruct = sizeof(BIND_OPTS); - bndopts.grfFlags = BIND_MAYBOTHERUSER; - bndopts.grfMode = (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE); - bndopts.dwTickCountDeadline = 10000; - hr = m_pbctxSourceFile->SetBindOptions(&bndopts); - } - } - - // Do the save with moniker bind option and keep lock... - if (SUCCEEDED(hr = SaveDocToMoniker(pnewmk, m_pbctxSourceFile, TRUE))) - { - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_SET_INTERFACE(m_pmkSourceFile, pnewmk); - m_fOpenReadOnly = FALSE; // Should be read-write now... - } - - pnewmk->Release(); - } - } - - - // If we are not using moniker binding, or the save with new moniker failed, try to use - // a save copy approach and we will overwrite the file... - if (!(m_pmkSourceFile) || FAILED(hr)) - { - // Update the internal storage to the current doc state... - if (((m_pstgfile) || SUCCEEDED(hr = CreateObjectStorage(m_clsidObject))) && - SUCCEEDED(hr = SaveObjectStorage())) - { - // Ask for server to save to file in "Save Copy As" fashion. This produces a native - // OLE document file more similar to what happens in normal SaveAs dialog for BIFF file... - hr = SaveDocToFile(pwszFile, FALSE); - - // If that doesn't work, save out the storage as OLE storage and ... - if (FAILED(hr) && SUCCEEDED(hr = StgCreateDocfile(pwszFile, STGM_TRANSACTED | - STGM_READWRITE | STGM_SHARE_EXCLUSIVE | STGM_CREATE, 0, &pstg))) - { - WriteClassStg(pstg, m_clsidObject); - - if (SUCCEEDED(hr = m_pstgfile->CopyTo(0, NULL, NULL, pstg))) - hr = pstg->Commit(STGC_OVERWRITE); - - pstg->Release(); - } - } - - // If that worked, and we once had a moniker, we have to dump it now... - if (SUCCEEDED(hr) && (m_pmkSourceFile)) - { - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_RELEASE_INTERFACE(m_pbctxSourceFile); - } - } - - // If we made a copy to protect on overwrite, either restore or delete it as needed... - if ((fDoOverwriteOps) && (fFileOpSuccess) && (pwszRename)) - { - FPerformShellOp((FAILED(hr) ? FO_RENAME : FO_DELETE), pwszRename, pwszFile); - } - - // If this is an exisitng file save, or the operation failed, relock the - // the original file save source... - if ((m_pstgfile) && !(m_pmkSourceFile) && (m_pwszSourceFile) && - ((fDoNormalSave) || (FAILED(hr)))) - { - StgOpenStorage(m_pwszSourceFile, NULL, - ((m_pwszWebResource) ? - (STGM_READ | STGM_SHARE_DENY_WRITE) : - (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE)), - NULL, 0, &m_pstgSourceFile); - } - else if (SUCCEEDED(hr)) - { - // Otherwise if we succeeded, free any existing file info we have it and - // save the new file info for later re-saves (and lock)... - SAFE_FREESTRING(m_pwszSourceFile); - SAFE_FREESTRING(m_pwszWebResource); - SAFE_RELEASE_INTERFACE(m_pstmWebResource); - - // Save the name, and try to lock the file for editing... - if (m_pwszSourceFile = DsoCopyString(pwszFile)) - { - m_idxSourceName = CalcDocNameIndex(m_pwszSourceFile); - - if (!(m_pmkSourceFile) && (m_pstgfile)) - StgOpenStorage(m_pwszSourceFile, NULL, - (STGM_TRANSACTED | STGM_SHARE_DENY_WRITE | STGM_READWRITE), NULL, 0, &m_pstgSourceFile); - } - } - - if (pwszRename) - DsoMemFree(pwszRename); - - if (pwszFullName) - DsoMemFree(pwszFullName); - - return hr; -} - -STDMETHODIMP CDsoDocObject::SaveToURL(LPWSTR pwszURL, BOOL fOverwriteFile, LPWSTR pwszUserName, LPWSTR pwszPassword) -{ - HRESULT hr = DSO_E_DOCUMENTREADONLY; - - // If we have no URL to save to and no previously open web stream, fail... - if ((!pwszURL) && (!m_pstmWebResource)) - return hr; - - // Save out the user name and password (if provided) for IAuthenticate... - if (pwszUserName) - { - SAFE_FREESTRING(m_pwszUsername); - m_pwszUsername = DsoCopyString(pwszUserName); - - SAFE_FREESTRING(m_pwszPassword); - m_pwszPassword = DsoCopyString(pwszPassword); - } - - if ((pwszURL) && (m_pwszWebResource) && - (DsoCompareStringsEx(pwszURL, -1, m_pwszWebResource, -1) == CSTR_EQUAL)) - pwszURL = NULL; - - if (pwszURL) - { - IStream *pstmT = NULL; - LPWSTR pwszFullUrl = NULL; - LPWSTR pwszTempFile; - - IStream *pstmBkupStm; - IStorage *pstgBkupStg; - LPWSTR pwszBkupFile, pwszBkupUrl; - UINT idxBkup; - - if (!GetTempPathForURLDownload(pwszURL, &pwszTempFile)) - return E_INVALIDARG; - - if (ValidateFileExtension(pwszURL, &pwszFullUrl)) - pwszURL = pwszFullUrl; - - // We are going to save out the current file info in case of - // an error we can restore it to do native saves back to open location... - pstmBkupStm = m_pstmWebResource; m_pstmWebResource = NULL; - pwszBkupUrl = m_pwszWebResource; m_pwszWebResource = NULL; - pwszBkupFile = m_pwszSourceFile; m_pwszSourceFile = NULL; - pstgBkupStg = m_pstgSourceFile; m_pstgSourceFile = NULL; - idxBkup = m_idxSourceName; m_idxSourceName = 0; - - // Save the object to a new (temp) file on the local drive... - if (SUCCEEDED(hr = SaveToFile(pwszTempFile, TRUE))) - { - // Then upload from that file... - hr = IPPUploadWebResource(pwszTempFile, &pstmT, pwszURL, fOverwriteFile); - } - - // If both calls succeed, we can free the old file/url location info - // and save the new information, otherwise restore the old info from backup... - if (SUCCEEDED(hr)) - { - SAFE_RELEASE_INTERFACE(pstgBkupStg); - - if ((pstmBkupStm) && (pwszBkupFile)) - FPerformShellOp(FO_DELETE, pwszBkupFile, NULL); - - SAFE_RELEASE_INTERFACE(pstmBkupStm); - SAFE_FREESTRING(pwszBkupUrl); - SAFE_FREESTRING(pwszBkupFile); - - m_pstmWebResource = pstmT; - m_pwszWebResource = DsoCopyString(pwszURL); - //m_pwszSourceFile already saved in SaveStorageToFile - //m_pstgSourceFile already saved in SaveStorageToFile - //m_idxSourceName already calced in SaveStorageToFile; - - } - else - { - if (m_pstgSourceFile) - m_pstgSourceFile->Release(); - - if (m_pwszSourceFile) - { - FPerformShellOp(FO_DELETE, m_pwszSourceFile, NULL); - DsoMemFree(m_pwszSourceFile); - } - - m_pstmWebResource = pstmBkupStm; - m_pwszWebResource = pwszBkupUrl; - m_pwszSourceFile = pwszBkupFile; - m_pstgSourceFile = pstgBkupStg; - m_idxSourceName = idxBkup; - } - - if (pwszFullUrl) - DsoMemFree(pwszFullUrl); - - DsoMemFree(pwszTempFile); - - } - else if ((m_pstmWebResource) && (m_pwszSourceFile)) - { - if (SUCCEEDED(hr = SaveToFile(NULL, TRUE))) - hr = IPPUploadWebResource(m_pwszSourceFile, &m_pstmWebResource, NULL, TRUE); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::DoOleCommand -// -// Calls IOleCommandTarget::Exec on the active object to do a specific -// command (like Print, SaveCopy, Zoom, etc.). -// -STDMETHODIMP CDsoDocObject::DoOleCommand(DWORD dwOleCmdId, DWORD dwOptions, VARIANT* vInParam, VARIANT* vInOutParam) -{ - HRESULT hr; - OLECMD cmd = {dwOleCmdId, 0}; - TRACE2("CDsoDocObject::DoOleCommand(cmd=%d, Opts=%d\n", dwOleCmdId, dwOptions); - - // Can't issue OLECOMMANDs when in print preview mode (object calls us)... - if (InPrintPreview()) return E_ACCESSDENIED; - - // The server must support IOleCommandTarget, the CmdID being requested, and - // the command should be enabled. If this is the case, do the command... - if ((m_pcmdt) && SUCCEEDED(m_pcmdt->QueryStatus(NULL, 1, &cmd, NULL)) && - ((cmd.cmdf & OLECMDF_SUPPORTED) && (cmd.cmdf & OLECMDF_ENABLED))) - { - TRACE1("QueryStatus say supported = 0x%X\n", cmd.cmdf); - - // Do the command asked by caller on default command group... - hr = m_pcmdt->Exec(NULL, cmd.cmdID, dwOptions, vInParam, vInOutParam); - TRACE1("DocObj_IOleCommandTarget::Exec() = 0x%X\n", hr); - - if ((dwOptions == OLECMDEXECOPT_PROMPTUSER)) - { - // Handle bug issue for PPT when printing using prompt... - if ((hr == E_INVALIDARG) && (cmd.cmdID == OLECMDID_PRINT) && IsPPTObject()) - { - ODS("Retry command for PPT\n"); - hr = m_pcmdt->Exec(NULL, cmd.cmdID, OLECMDEXECOPT_DODEFAULT, vInParam, vInOutParam); - TRACE1("DocObj_IOleCommandTarget::Exec() = 0x%X\n", hr); - } - - // If user canceled an Office dialog, that's OK... - if (hr == 0x80040103) - hr = S_FALSE; - } - } - else - { - TRACE1("Command Not supportted (%d)\n", cmd.cmdf); - hr = DSO_E_COMMANDNOTSUPPORTED; - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::Close -// -// Close down the object and disconnect us from any handlers/proxies. -// -STDMETHODIMP CDsoDocObject::Close() -{ - HRESULT hr; - - ODS("CDsoDocObject::Close\n"); - m_fInClose = TRUE; - - // Make sure we are not in print preview before close... - if (InPrintPreview()) - ExitPrintPreview(TRUE); - - // Go ahead an IP deactivate the object... - hr = IPDeactivateView(); - - SAFE_RELEASE_INTERFACE(m_pprtprv); - SAFE_RELEASE_INTERFACE(m_pcmdt); - SAFE_RELEASE_INTERFACE(m_pdocv); - SAFE_RELEASE_INTERFACE(m_pipactive); - SAFE_RELEASE_INTERFACE(m_pipobj); - - // Release the OLE object and cleanup... - if (m_pole) - { - // Free running lock if we set it... - FreeRunningLock(); - - // Tell server to release our client site... - m_pole->SetClientSite(NULL); - - // Finally, close the object and release the pointer... - hr = m_pole->Close(OLECLOSE_NOSAVE); - - if (m_fDisconnectOnQuit) - CoDisconnectObject((IUnknown*)m_pole, 0); - - SAFE_RELEASE_INTERFACE(m_pole); - } - - SAFE_RELEASE_INTERFACE(m_pstgSourceFile); - SAFE_RELEASE_INTERFACE(m_pmkSourceFile); - SAFE_RELEASE_INTERFACE(m_pbctxSourceFile); - - // Free any temp file we might have... - if ((m_pstmWebResource) && (m_pwszSourceFile)) - FPerformShellOp(FO_DELETE, m_pwszSourceFile, NULL); - - SAFE_RELEASE_INTERFACE(m_pstmWebResource); - SAFE_FREESTRING(m_pwszWebResource); - SAFE_FREESTRING(m_pwszSourceFile); - m_idxSourceName = 0; - - if (m_fDisconnectOnQuit) - { - CoDisconnectObject((IUnknown*)this, 0); - m_fDisconnectOnQuit = FALSE; - } - - SAFE_RELEASE_INTERFACE(m_pstmview); - SAFE_RELEASE_INTERFACE(m_pstgfile); - - ClearMergedMenu(); - m_fInClose = FALSE; - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject Notification Functions - The OCX should call these to -// let the doc site update the object as needed. -// - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifySizeChange -// -// Resets the size of the site window and tells UI active object to -// resize as well. If we are UI active, we'll call ResizeBorder to -// re-negotiate toolspace (allow toolbars to shrink and grow), otherwise -// we'll just set the IP active view rect (minus any toolspace, which -// should be none since object is not UI active!). -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifySizeChange(LPRECT prc) -{ - RECT rc; - - SetRect(&rc, 0, 0, (prc->right - prc->left), (prc->bottom - prc->top)); - if (rc.right < 0) rc.right = 0; - if (rc.top < 0) rc.top = 0; - - // First, resize our frame site window tot he new size (don't change focus)... - if (m_hwnd) - { - m_rcViewRect = *prc; - - SetWindowPos(m_hwnd, NULL, m_rcViewRect.left, m_rcViewRect.top, - rc.right, rc.bottom, SWP_NOACTIVATE | SWP_NOZORDER); - - UpdateWindow(m_hwnd); - } - - // If we have an active object (i.e., Document is still UI active) we should - // tell it of the resize so it can re-negotiate border space... - if ((m_fObjectUIActive) && (m_pipactive)) - { - m_pipactive->ResizeBorder(&rc, (IOleInPlaceUIWindow*)&m_xOleInPlaceFrame, TRUE); - } - else if ((m_fObjectIPActive) && (m_pdocv)) - { - rc.left += m_bwToolSpace.left; rc.right -= m_bwToolSpace.right; - rc.top += m_bwToolSpace.top; rc.bottom -= m_bwToolSpace.bottom; - m_pdocv->SetRect(&rc); - } - - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyAppActivate -// -// Notify doc object when the top-level frame window goes active and -// deactive so it can handle window focs and paiting correctly. Failure -// to not forward this notification leads to bad behavior. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyAppActivate(BOOL fActive, DWORD dwThreadID) -{ - // This is critical for DocObject servers, so forward these messages - // when the object is UI active... - if (m_pipactive) - { - // We should always tell obj server when our frame activates, but - // don't tell it to go deactive if the thread gaining focus is - // the server's since our frame may have lost focus because of - // a top-level modeless dialog (ex., the RefEdit dialog of Excel)... - if (!m_fObjectInModalCondition) - m_pipactive->OnFrameWindowActivate(fActive); - } - - m_fAppWindowActive = fActive; -} - -STDMETHODIMP_(void) CDsoDocObject::OnNotifyControlFocus(BOOL fGotFocus) -{ - HWND hwnd; - - // For UI Active DocObject server, we will tell them we gain/lose control focus... - if ((m_pipactive) && (!m_fObjectInModalCondition)) - { - // TODO: Normally we would notify object of loss of control focus (such as user - // moving focus from framer control to another text box or something on the same - // form), but this can cause PPT to drop its toolbar and XL to drop its formula - // bar, so we are skipping this call. We really should determine if it is needed - // for another host (like Visio or something?) but that is to do... - // - // m_pipactive->OnDocWindowActivate(fGotFocus); - - // We should forward the focus to the active window if window with the focus - // is not already one that is parented to us... - if ((fGotFocus) && !IsWindowChild(m_hwnd, GetFocus()) && - SUCCEEDED(m_pipactive->GetWindow(&hwnd))) - SetFocus(hwnd); - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyPaletteChanged -// -// Give the object first chance at realizing a palette. Important on -// 256 color machines, but not so critical these days when everyone is -// running full 32-bit True Color graphic cards. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyPaletteChanged(HWND hwndPalChg) -{ - if ((m_fObjectUIActive) && (m_hwndUIActiveObj)) - SendMessage(m_hwndUIActiveObj, WM_PALETTECHANGED, (WPARAM)hwndPalChg, 0L); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnNotifyChangeToolState -// -// This should be called to get object to show/hide toolbars as needed. -// -STDMETHODIMP_(void) CDsoDocObject::OnNotifyChangeToolState(BOOL fShowTools) -{ - // Can't change toolbar state in print preview (sorry)... - if (InPrintPreview()) return; - - // If we want to show/hide toolbars, we can do the following... - if (fShowTools != (BOOL)m_fDisplayTools) - { - OLECMD cmd; - cmd.cmdID = OLECMDID_HIDETOOLBARS; - - m_fDisplayTools = fShowTools; - - // Use IOleCommandTarget(OLECMDID_HIDETOOLBARS) to toggle on/off. We have - // to check that server supports it and if its state matches our own so - // when toggle, we do the correct thing by the user... - if ((m_pcmdt) && SUCCEEDED(m_pcmdt->QueryStatus(NULL, 1, &cmd, NULL)) && - ((cmd.cmdf & OLECMDF_SUPPORTED) || (cmd.cmdf & OLECMDF_ENABLED))) - { - if (((m_fDisplayTools) && ((cmd.cmdf & OLECMDF_LATCHED) == OLECMDF_LATCHED)) || - (!(m_fDisplayTools) && !((cmd.cmdf & OLECMDF_LATCHED) == OLECMDF_LATCHED))) - { - m_pcmdt->Exec(NULL, OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - else if (m_fDisplayTools && (IsWordObject() || IsPPTObject())) - { - // HACK: Word and PowerPoint 2007 do not report the correct latched state for the ribbon, - // so if we are trying to show the tools after hiding them, they will say they are already - // visible when the ribbon is not. This is an apparant trick they are using to force the - // ribbon visible in IE embed cases, but it is causing us problems. - m_pcmdt->Exec(NULL, OLECMDID_HIDETOOLBARS, OLECMDEXECOPT_PROMPTUSER, NULL, NULL); - } - - // There can be focus issues when turning them off, so make sure - // the object is on top of the z-order... - if ((!m_fDisplayTools) && (m_hwndIPObject)) - BringWindowToTop(m_hwndIPObject); - - // If user toggles off the toolbar while the object is UI active, and - // we are not still in activation process, we need to explictly tell Office - // apps to also hide the "Web" toolbar. For Office, OLECMDID_HIDETOOLBARS puts - // the app into a "web view" which (in some apps) brings up the web toolbar. - // Since we intend to have no tools, we have to turn it off by code... - if ((m_fObjectUIActive) && (m_fObjectActivateComplete)) - TurnOffWebToolbar(!m_fDisplayTools); - - } - else if (m_pdocv) - { - // If we have a DocObj server, but no IOleCommandTarget, do things the hard - // way and resize. When server attempts to resize window it will have to - // re-negotiate BorderSpace and we fail there, so server "should" not - // display its tools (at least that is the idea!)... - RECT rc; GetClientRect(m_hwnd, &rc); - MapWindowPoints(m_hwnd, m_hwndCtl, (LPPOINT)&rc, 2); - OnNotifySizeChange(&rc); - } - } - return; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject Protected Functions -- Helpers -// - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::InstantiateDocObjectServer (protected) -// -// Startup OLE Document Object server and get IOleObject pointer. -// -STDMETHODIMP CDsoDocObject::InstantiateDocObjectServer(REFCLSID rclsid, IOleObject **ppole) -{ - HRESULT hr; - IUnknown *punk = NULL; - - ODS("CDsoDocObject::InstantiateDocObjectServer()\n"); - - // We perform custom create in order of local server then inproc server... - if (SUCCEEDED(hr = CoCreateInstance(rclsid, NULL, CLSCTX_LOCAL_SERVER, IID_IUnknown, (void**)&punk)) || - SUCCEEDED(hr = CoCreateInstance(rclsid, NULL, CLSCTX_INPROC_SERVER, IID_IUnknown, (void**)&punk))) - { - // Ask for IOleObject interface... - if (SUCCEEDED(hr = punk->QueryInterface(IID_IOleObject, (void**)ppole))) - { - // TODO: Add strong connection to remote server (IExternalConnection??)... - } - punk->Release(); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateObjectStorage (protected) -// -// Makes the internal IStorage to host the object and assigns the CLSID. -// -STDMETHODIMP CDsoDocObject::CreateObjectStorage(REFCLSID rclsid) -{ - HRESULT hr; - LPWSTR pwszName; - DWORD dwid; - CHAR szbuf[256]; - - if ((!m_pstgroot)) return E_UNEXPECTED; - - // Next, create a new object storage (with unique name) in our - // temp root storage "file" (this keeps an OLE integrity some servers - // need to function correctly instead of IP activating from file directly). - - // We make a fake object storage name... - dwid = ((rclsid.Data1)|GetTickCount()); - wsprintf(szbuf, "OLEDocument%X", dwid); - - if (!(pwszName = DsoConvertToLPWSTR(szbuf))) - return E_OUTOFMEMORY; - - // Create the sub-storage... - hr = m_pstgroot->CreateStorage(pwszName, - STGM_TRANSACTED | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &m_pstgfile); - - DsoMemFree(pwszName); - - if (FAILED(hr)) return hr; - - // We'll also create a stream for OLE view settings (non-critical)... - if (pwszName = DsoConvertToLPWSTR(szbuf)) - { - m_pstgroot->CreateStream(pwszName, - STGM_DIRECT | STGM_READWRITE | STGM_SHARE_EXCLUSIVE, 0, 0, &m_pstmview); - DsoMemFree(pwszName); - } - - // Finally, write out the CLSID for the new substorage... - hr = WriteClassStg(m_pstgfile, rclsid); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveObjectStorage (protected) -// -// Saves the object back to the internal IStorage. Returns S_FALSE if -// there is no file storage for this document (it depends on how file -// was loaded). In most cases we should have one, and this copies data -// into the internal storage for save. -// -STDMETHODIMP CDsoDocObject::SaveObjectStorage() -{ - HRESULT hr = S_FALSE; - IPersistStorage *pipstg = NULL; - - // Got to have object to save state... - if (!m_pole) return E_UNEXPECTED; - - // If we have file storage, ask for IPersist and Save (commit changes)... - if ((m_pstgfile) && - SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistStorage, (void**)&pipstg))) - { - if (SUCCEEDED(hr = pipstg->Save(m_pstgfile, TRUE))) - hr = pipstg->SaveCompleted(NULL); - - hr = m_pstgfile->Commit(STGC_DEFAULT); - pipstg->Release(); - } - - // Go ahead and save the view state if view still active (non-critical)... - if ((m_pdocv) && (m_pstmview)) - { - m_pdocv->SaveViewState(m_pstmview); - m_pstmview->Commit(STGC_DEFAULT); - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveDocToMoniker (protected) -// -// Saves document to location spcified by the moniker passed. The server -// needs to support either IPersistMoniker or IPersistFile. This is used -// primarily when document was opened by moniker instead of storage. -// -STDMETHODIMP CDsoDocObject::SaveDocToMoniker(IMoniker *pmk, IBindCtx *pbc, BOOL fKeepLock) -{ - HRESULT hr = E_FAIL; - IPersistMoniker *prstmk; - LPOLESTR pwszFullName = NULL; - - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - CHECK_NULL_RETURN(pmk, E_POINTER); - - // Get IPersistMoniker interface and ask it to save context if it existing moniker... - if (SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistMoniker, (void**)&prstmk))) - { - hr = prstmk->Save(pmk, pbc, fKeepLock); - prstmk->Release(); - } - - // If that failed to work, switch to IPersistFile and use full path to the new file... - if (FAILED(hr) && SUCCEEDED(hr = pmk->GetDisplayName(pbc, NULL, &pwszFullName))) - { - hr = SaveDocToFile(pwszFullName, fKeepLock); - CoTaskMemFree(pwszFullName); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SaveDocToFile (protected) -// -// Saves document to location spcified by the path passed. The server -// needs to support either IPersistFile. -// -STDMETHODIMP CDsoDocObject::SaveDocToFile(LPWSTR pwszFullName, BOOL fKeepLock) -{ - HRESULT hr = E_FAIL; - IPersistFile *pipfile = NULL; - - BOOL fSameAsOpen = ((m_pwszSourceFile) && - DsoCompareStringsEx(pwszFullName, lstrlenW(pwszFullName), - m_pwszSourceFile, lstrlenW(m_pwszSourceFile)) == CSTR_EQUAL); - - if (SUCCEEDED(hr = m_pole->QueryInterface(IID_IPersistFile, (void**)&pipfile))) - { -#ifdef DSO_WORD12_PERSIST_BUG - LPOLESTR pwszWordCurFile = NULL; - // HACK: Word 2007 RTM has a bug in its IPersistFile::Save method which will cause it to save - // to the old file location and not the new one, so if the document being saved is a Word - // object and we are saving to a new file, then got to run this hack to copy the saved bits - // to the correct location... - if (IsWordObject()) - { - hr = pipfile->GetCurFile(&pwszWordCurFile); - if ((fSameAsOpen) && (pwszWordCurFile)) - { - // Check again if Word thinks the file is the same as we do... - fSameAsOpen = (DsoCompareStringsEx(pwszFullName, lstrlenW(pwszFullName), - pwszWordCurFile, lstrlenW(pwszWordCurFile)) == CSTR_EQUAL); - if (fSameAsOpen) - { // If it is the same file after all, we don't need to do the hack... - CoTaskMemFree(pwszWordCurFile); - pwszWordCurFile = NULL; - } - } - } -#endif - - // Do the save using file path or NULL if we are saving to current file... - //hr = pipfile->Save((fSameAsOpen ? NULL : pwszFullName), fKeepLock); - hr = pipfile->Save(pwszFullName, fKeepLock); - -#ifdef DSO_WORD12_PERSIST_BUG - // HACK: If we have the pwszWordCurFile, we'll assume Word 12 RTM might have saved this, and we - // need to check if Word saved to the right path or not. So check the paths, and if the new - // file is not there, copy the file Word saved to the new location... - if (pwszWordCurFile) - { - if (SUCCEEDED(hr) && !FFileExists(pwszFullName) && FFileExists(pwszWordCurFile)) - { - if (!FPerformShellOp(FO_COPY, pwszWordCurFile, pwszFullName)) - hr = E_ACCESSDENIED; - } - CoTaskMemFree(pwszWordCurFile); - } - // Hopefully, Word should have this fixed by Office 2007 SP1 and we can remove this hack! -#endif - pipfile->Release(); - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ValidateDocObjectServer (protected) -// -// Quick validation check to see if CLSID is for DocObject server. -// -// Officially, the only way to determine if a server supports ActiveX -// Document embedding is to IP activate it and ask for IOleDocument, -// but that means going through the IP process just to fail if IOleDoc -// is not supported. Therefore, we are going to rely on the server's -// honesty in setting its reg keys to include the "DocObject" sub key -// under their CLSID. -// -// This is 99% accurate. For those servers that fail, too bad charlie! -// -STDMETHODIMP CDsoDocObject::ValidateDocObjectServer(REFCLSID rclsid) -{ - HRESULT hr = DSO_E_INVALIDSERVER; - CHAR szKeyCheck[256]; - LPSTR pszClsid; - HKEY hkey; - - // We don't handle MSHTML even though it is DocObject server. If you plan - // to view web pages in browser-like context, best to use WebBrowser control... - if (rclsid == CLSID_MSHTML_DOCUMENT) - return hr; - - // Convert the CLSID to a string and check for DocObject sub key... - if (pszClsid = DsoCLSIDtoLPSTR(rclsid)) - { - wsprintf(szKeyCheck, "CLSID\\%s\\DocObject", pszClsid); - - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, szKeyCheck, 0, KEY_READ, &hkey) == ERROR_SUCCESS) - { - hr = S_OK; - RegCloseKey(hkey); - } - - DsoMemFree(pszClsid); - } - else hr = E_OUTOFMEMORY; - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::GetDocumentTypeAndFileExtension -// -// Returns default file type and extension for a save of embedded object. -// -STDMETHODIMP_(BOOL) CDsoDocObject::GetDocumentTypeAndFileExtension(WCHAR** ppwszFileType, WCHAR** ppwszFileExt) -{ - DWORD dwType, dwSize; - LPWSTR pwszExt = NULL; - LPWSTR pwszType = NULL; - LPSTR pszType = NULL; - LPSTR pszClsid; - CHAR szkey[255]; - CHAR szbuf[255]; - HKEY hk; - - if ((ppwszFileType == NULL) && (ppwszFileExt == NULL)) - return FALSE; - - pszClsid = DsoCLSIDtoLPSTR(m_clsidObject); - if (!pszClsid) return FALSE; - - wsprintf(szkey, "CLSID\\%s\\DefaultExtension", pszClsid); - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, szkey, 0, KEY_READ, &hk) == ERROR_SUCCESS) - { - LPSTR pszT = szbuf; szbuf[0] = '\0'; dwSize = 255; - if (RegQueryValueEx(hk, NULL, 0, &dwType, (BYTE*)pszT, &dwSize) == ERROR_SUCCESS) - { - while (*(pszT++) && (*pszT != ',')) - (void)(0); - - if (*pszT == ',') - (pszType = pszT)++; - - *pszT = '\0'; - } - else lstrcpy(szbuf, ".ole"); - - RegCloseKey(hk); - } - else lstrcpy(szbuf, ".ole"); - - pwszExt = DsoConvertToLPWSTR(szbuf); - if (ppwszFileExt) *ppwszFileExt = pwszExt; - - if (ppwszFileType) - { - ULONG cb1, cb2; - LPWSTR pwszCombined; - CHAR szUnknownType[255]; - - if (!(*pszType)) - { - szUnknownType[0] = '\0'; - wsprintf(szUnknownType, "Native Document (*%s)", szbuf); - pszType = szUnknownType; - } - pwszType = DsoConvertToLPWSTR(pszType); - - cb1 = lstrlenW(pwszExt); - cb2 = lstrlenW(pwszType); - - pwszCombined = (LPWSTR)DsoMemAlloc(((cb1 + cb2 + 4) * sizeof(WCHAR))); - if (pwszCombined) - { - memcpy(&pwszCombined[0], pwszType,(cb2 * sizeof(WCHAR))); - pwszCombined[cb2] = L'\0'; - - pwszCombined[cb2 + 1] = L'*'; - memcpy(&pwszCombined[cb2 + 2], pwszExt, (cb1 * sizeof(WCHAR))); - pwszCombined[cb2 + 2 + cb1] = L'\0'; - pwszCombined[cb2 + 3 + cb1] = L'\0'; - - DsoMemFree(pwszType); - } - - *ppwszFileType = ((pwszCombined) ? pwszCombined : pwszType); - } - - if ((ppwszFileExt == NULL) && (pwszExt)) - DsoMemFree(pwszExt); - - DsoMemFree(pszClsid); - return (((ppwszFileExt) && (*ppwszFileExt)) || - ((ppwszFileType) && (*ppwszFileType))); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ValidateFileExtension (protected) -// -// Adds a default extension to save file path if user didn't provide -// one (uses CLSID and registry to determine default extension). -// -STDMETHODIMP_(BOOL) CDsoDocObject::ValidateFileExtension(WCHAR* pwszFile, WCHAR** ppwszOut) -{ - BOOL fHasExt = FALSE; - BOOL fChangedExt = FALSE; - LPWSTR pwszT; - LPWSTR pwszExt = NULL; - DWORD dw; - - if ((pwszFile) && (dw = lstrlenW(pwszFile)) && (ppwszOut)) - { - *ppwszOut = NULL; - - pwszT = (pwszFile + dw); - while ((pwszT != pwszFile) && - (*(--pwszT)) && ((*pwszT != L'\\') && (*pwszT != L'/'))) - { - if (*pwszT == L'.') fHasExt = TRUE; - } - - if (!(fHasExt) && GetDocumentTypeAndFileExtension(NULL, &pwszExt)) - { - *ppwszOut = DsoCopyStringCat(pwszFile, pwszExt); - fChangedExt = ((*ppwszOut) != NULL); - } - } - - return fChangedExt; -} - - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::EnsureOleServerRunning (protected) -// -// Verifies the DocObject server is running and is optionally locked -// while the embedding is taking place. -// -STDMETHODIMP CDsoDocObject::EnsureOleServerRunning(BOOL fLockRunning) -{ - HRESULT hr = S_FALSE; - IBindCtx *pbc; - IRunnableObject *pro; - IOleContainer *pocnt; - BIND_OPTS bnd = {sizeof(BIND_OPTS), BIND_MAYBOTHERUSER, (STGM_READWRITE|STGM_SHARE_EXCLUSIVE), 10000}; - - TRACE1("CDsoDocObject::EnsureOleServerRunning(%d)\n", (DWORD)fLockRunning); - if (m_pole == NULL) return E_FAIL; - - // If we are already locked, don't need to do this again... - if (m_fLockedServerRunning) - return hr; - - // Create a bind ctx... - if (FAILED(CreateBindCtx(0, &pbc))) - return E_UNEXPECTED; - - // Setup default bind options for the run operation... - pbc->SetBindOptions(&bnd); - - // Get IRunnableObject and set server to run as OLE object. We check the - // running state first since this is proper OLE, but note that this is not - // returned from out-of-proc server, but the in-proc handler. Also note, we - // specify a timeout in case the object never starts, and "check" the object - // runs without IMessageFilter errors... - if (SUCCEEDED(m_pole->QueryInterface(IID_IRunnableObject, (void**)&pro))) - { - - // If the object is not currently running, let's run it... - if (!(pro->IsRunning())) - hr = pro->Run(pbc); - - // Set the object server as a contained object (i.e., OLE object)... - pro->SetContainedObject(TRUE); - - // Lock running if desired... - if (fLockRunning) - m_fLockedServerRunning = SUCCEEDED(pro->LockRunning(TRUE, TRUE)); - - pro->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IOleContainer, (void**)&pocnt))) - { - if (fLockRunning) - m_fLockedServerRunning = SUCCEEDED(pocnt->LockContainer(TRUE)); - - pocnt->Release(); - } - - pbc->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::FreeRunningLock (protected) -// -// Free any previous lock made by EnsureOleServerRunning. -// -STDMETHODIMP_(void) CDsoDocObject::FreeRunningLock() -{ - IRunnableObject *pro; - IOleContainer *pocnt; - - ODS("CDsoDocObject::FreeRunningLock(%d)\n"); - ASSERT(m_pole); - - // Don't do anything if we didn't lock the server... - if (m_fLockedServerRunning == FALSE) - return; - - // Get IRunnableObject and free lock... - if (SUCCEEDED(m_pole->QueryInterface(IID_IRunnableObject, (void**)&pro))) - { - pro->LockRunning(FALSE, TRUE); - pro->Release(); - } - else if (SUCCEEDED(m_pole->QueryInterface(IID_IOleContainer, (void**)&pocnt))) - { - pocnt->LockContainer(FALSE); - pocnt->Release(); - } - - m_fLockedServerRunning = FALSE; - return; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::SetRunningServerLock -// -// Sets an external lock on the running object server. -// -STDMETHODIMP CDsoDocObject::SetRunningServerLock(BOOL fLock) -{ - HRESULT hr; - TRACE1("CDsoDocObject::SetRunningServerLock(%d)\n", (DWORD)fLock); - - // Word doesn't obey normal running lock, but does have method to explicitly - // lock the server for mail, so we'll use that in the Word case... - if (IsWordObject()) - { - IClassFactory *pcf = NULL; - interface ifoo : public IUnknown - { - STDMETHOD(_uncall)() PURE; - STDMETHOD(lock)(BOOL f) PURE; - } *pi = NULL; - const GUID iidifoo = {0x0006729A, 0x0000, 0x0000, {0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46}}; - - SEH_TRY - hr = CoGetClassObject(CLSID_WORD_DOCUMENT_DOC, CLSCTX_LOCAL_SERVER, NULL, IID_IClassFactory, (void**)&pcf); - if (SUCCEEDED(hr) && (pcf)) - { - hr = pcf->QueryInterface(iidifoo, (void**)&pi); - if (SUCCEEDED(hr) && (pi)) - { - hr = pi->lock(fLock); - pi->Release(); - } - pcf->Release(); - } - SEH_EXCEPT(hr) - } - else - { - if (fLock) - { - hr = EnsureOleServerRunning(TRUE); - } - else - { - hr = (FreeRunningLock(), S_OK); - } - } - - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CreateIPPBindResource (protected) -// -// Returns an instance of MSDAIPP URL resource provider which is used by -// Office/Windows for Web Folders (DAV/FPSE server). -// -STDMETHODIMP_(IUnknown*) CDsoDocObject::CreateIPPBindResource() -{ - HRESULT hr; - IDBProperties* pdbprops = NULL; - IBindResource* pres = NULL; - DBPROPSET rdbpset; - DBPROP rdbp[4]; - BSTR bstrLock; - DWORD dw = 256; - CHAR szUserName[256]; - - if (FAILED(CoCreateInstance(CLSID_MSDAIPP_BINDER, NULL, - CLSCTX_INPROC, IID_IDBProperties, (void**)&pdbprops))) - return NULL; - - bstrLock = (GetUserName(szUserName, &dw) ? DsoConvertToBSTR(szUserName) : NULL); - - memset(rdbp, 0, sizeof(4 * sizeof(DBPROP))); - - rdbpset.cProperties = 4; - rdbpset.guidPropertySet = DBPROPSET_DBINIT; - rdbpset.rgProperties = rdbp; - - rdbp[0].dwPropertyID = DBPROP_INIT_BINDFLAGS; - rdbp[0].vValue.vt = VT_I4; - rdbp[0].vValue.lVal = DBBINDURLFLAG_OUTPUT; - - rdbp[1].dwPropertyID = DBPROP_INIT_LOCKOWNER; - rdbp[1].vValue.vt = VT_BSTR; - rdbp[1].vValue.bstrVal = bstrLock; - - rdbp[2].dwPropertyID = DBPROP_INIT_LCID; - rdbp[2].vValue.vt = VT_I4; - rdbp[2].vValue.lVal = GetThreadLocale(); - - rdbp[3].dwPropertyID = DBPROP_INIT_PROMPT; - rdbp[3].vValue.vt = VT_I2; - rdbp[3].vValue.iVal = DBPROMPT_COMPLETE; - - if (pdbprops->SetProperties(1, &rdbpset) == S_OK) - { -#ifdef DSO_MSDAIPP_USE_DAVONLY - BSTR bstrClsid = SysAllocString(L"{9FECD570-B9D4-11D1-9C78-0000F875AC61}"); - if (bstrClsid) - { - rdbpset.cProperties = 1; - rdbpset.guidPropertySet = DBPROPSET_MSDAIPP_INIT; - rdbpset.rgProperties = rdbp; - - rdbp[0].dwPropertyID = 6; // DBPROP_INIT_PROTOCOLPROVIDER; - rdbp[0].vValue.vt = VT_BSTR; - rdbp[0].vValue.bstrVal = bstrClsid; - - hr = pdbprops->SetProperties(1, &rdbpset); - SysFreeString(bstrClsid); - } -#endif - hr = pdbprops->QueryInterface(IIDX_IBindResource, (void**)&pres); - } - - SAFE_FREEBSTR(bstrLock); - pdbprops->Release(); - - return (IUnknown*)pres; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPPDownloadWebResource (protected) -// -// Downloads the file specified by the URL to the given temp file. Locks -// the web resource for editing if ppstmKeepForSave is requested. -// -STDMETHODIMP CDsoDocObject::IPPDownloadWebResource(LPWSTR pwszURL, LPWSTR pwszFile, IStream** ppstmKeepForSave) -{ - HRESULT hr = E_UNEXPECTED; - IStream *pstm = NULL; - IBindResource *pres = NULL; - BYTE *rgbBuf; - DWORD dwStatus, dwBindFlags; - ULONG cbRead, cbWritten; - HANDLE hFile; - - // Sanity check... - if ((pwszURL == NULL) || (pwszFile == NULL) || (ppstmKeepForSave == NULL)) - return E_INVALIDARG; - - // We need MSDAIPP for full write access... - if (!(m_punkIPPResource) && !(m_punkIPPResource = CreateIPPBindResource())) - return DSO_E_REQUIRESMSDAIPP; - - rgbBuf = new BYTE[10240]; //a 10-k buffer for reading - if (!rgbBuf) return E_OUTOFMEMORY; - - // Use IBindResource::Bind to open an IStream and copy out the date to - // the file given. This will then be used to load the object from the file... - if (SUCCEEDED(m_punkIPPResource->QueryInterface(IIDX_IBindResource, (void**)&pres))) - { - dwBindFlags = (DBBINDURLFLAG_READ | DBBINDURLFLAG_WRITE | DBBINDURLFLAG_OUTPUT | DBBINDURLFLAG_SHARE_DENY_WRITE); -callagain: - if (SUCCEEDED(hr = pres->Bind(NULL, pwszURL, dwBindFlags, DBGUIDX_STREAM, - IID_IStream, (IAuthenticate*)&m_xAuthenticate, NULL, &dwStatus, (IUnknown**)&pstm))) - { - LARGE_INTEGER lintStart; lintStart.QuadPart = 0; - hr = pstm->Seek(lintStart, STREAM_SEEK_SET, NULL); - - if (FOpenLocalFile(pwszFile, GENERIC_WRITE, 0, CREATE_ALWAYS, &hFile)) - { - while (SUCCEEDED(hr)) - { - if (FAILED(hr = pstm->Read((void*)rgbBuf, 10240, &cbRead)) || - (cbRead == 0)) - break; - - if (FALSE == WriteFile(hFile, rgbBuf, cbRead, &cbWritten, NULL)) - { - hr = E_WIN32_LASTERROR; - break; - } - } - - CloseHandle(hFile); - } - else hr = E_WIN32_LASTERROR; - - SAFE_SET_INTERFACE(*ppstmKeepForSave, pstm); - - pstm->Release(); - } - else if ((hr == DB_E_NOTSUPPORTED) && ((dwBindFlags & DBBINDURLFLAG_OUTPUT) == DBBINDURLFLAG_OUTPUT)) - { - // WEC4 does not support DBBINDURLFLAG_OUTPUT flag, but if we are using WEC - // we don't really need the flag since this is not an HTTP GET call. Flip the - // flag off and call the method again to connect to server... - dwBindFlags &= ~DBBINDURLFLAG_OUTPUT; - goto callagain; - } - - pres->Release(); - } - - // Map an OLEDB error to a common "file" error so a user - // (and VB/VBScript) would better understand... - if (FAILED(hr)) - { - switch (hr) - { - case DB_E_NOTFOUND: hr = STG_E_FILENOTFOUND; break; - case DB_E_READONLY: - case DB_E_RESOURCELOCKED: hr = STG_E_LOCKVIOLATION; break; - case DB_SEC_E_PERMISSIONDENIED: - case DB_SEC_E_SAFEMODE_DENIED: hr = E_ACCESSDENIED; break; - case DB_E_CANNOTCONNECT: - case DB_E_TIMEOUT: hr = E_VBA_NOREMOTESERVER; break; - case E_NOINTERFACE: hr = E_UNEXPECTED; break; - } - } - - delete [] rgbBuf; - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::IPPUploadWebResource (protected) -// -// Uploads the file to a URL. The code can be used two ways: -// -// 1.) If ppstmSave contains a pointer to an existing IStream*, then we -// just upload to the existing stream. This allows for normal "Save" -// on an open web resource. -// -// 2.) If ppstmSave is NULL (or contains a NULL IStream*), we create a new -// web resource at the location given by pwszURLSaveTo and save to its -// stream. If ppstmSave is passed, we return the new IStream* to the -// caller who can then use it to do the other type of save next time. -// -STDMETHODIMP CDsoDocObject::IPPUploadWebResource(LPWSTR pwszFile, IStream** ppstmSave, LPWSTR pwszURLSaveTo, BOOL fOverwriteFile) -{ - HRESULT hr = E_UNEXPECTED; - ICreateRow *pcrow = NULL; - IStream *pstm = NULL; - BYTE *rgbBuf; - HANDLE hFile; - BOOL fstmIn = FALSE; - ULONG cbRead, cbWritten; - DWORD dwStatus, dwBindFlags; - - // We need MSDAIPP for full write access... - if (!(m_punkIPPResource) && !(m_punkIPPResource = CreateIPPBindResource())) - return DSO_E_REQUIRESMSDAIPP; - - // Check if this a "Save" on existing IStream* and jump to loop... - if ((ppstmSave) && (fstmIn = (BOOL)(pstm = *ppstmSave))) - goto uploadfrominstm; - - // Check the URL string and ask for ICreateRow (to make new web resource)... - if (!(pwszURLSaveTo) || !LooksLikeHTTP(pwszURLSaveTo) || - FAILED(m_punkIPPResource->QueryInterface(IIDX_ICreateRow, (void**)&pcrow))) - return hr; - - dwBindFlags = ( DBBINDURLFLAG_READ | - DBBINDURLFLAG_WRITE | - DBBINDURLFLAG_SHARE_DENY_WRITE | - (fOverwriteFile ? DBBINDURLFLAG_OVERWRITE : 0)); - - if (SUCCEEDED(hr = pcrow->CreateRow(NULL, pwszURLSaveTo, dwBindFlags, DBGUIDX_STREAM, - IID_IStream, (IAuthenticate*)&m_xAuthenticate, NULL, &dwStatus, NULL, (IUnknown**)&pstm))) - { - - // Once we are here, we have a stream (either handed in or opened from above). - // We just loop through and read from the file to the stream... -uploadfrominstm: - if (rgbBuf = new BYTE[10240]) //a 10-k buffer for reading - { - if (FOpenLocalFile(pwszFile, GENERIC_READ, FILE_SHARE_READ, OPEN_EXISTING, &hFile)) - { - LARGE_INTEGER lintStart; lintStart.QuadPart = 0; - hr = pstm->Seek(lintStart, STREAM_SEEK_SET, NULL); - - while (SUCCEEDED(hr)) - { - if (FALSE == ReadFile(hFile, rgbBuf, 10240, &cbRead, NULL)) - { - hr = E_WIN32_LASTERROR; - break; - } - - if (0 == cbRead) break; - - if (FAILED(hr = pstm->Write((void*)rgbBuf, cbRead, &cbWritten))) - break; - } - - // Need to commit the changes to make it official... - if (SUCCEEDED(hr)) - hr = pstm->Commit(STGC_DEFAULT); - - CloseHandle(hFile); - } - else hr = E_WIN32_LASTERROR; - - delete [] rgbBuf; - } - else hr = E_OUTOFMEMORY; - - // If we are not using a passed in IStream (and therefore created one), we - // should AddRef and pass back (if caller asked us to)... - if (!fstmIn) - { - if (SUCCEEDED(hr) && (ppstmSave) && (!(*ppstmSave))) - { - SAFE_SET_INTERFACE(*ppstmSave, pstm); - } - pstm->Release(); - } - - } - - // Map an OLEDB error to a common "file" error so a user - // (and VB/VBScript) would better understand... - if (FAILED(hr)) - { - switch (hr) - { - case DB_E_RESOURCEEXISTS: hr = STG_E_FILEALREADYEXISTS; break; - case DB_E_NOTFOUND: hr = STG_E_PATHNOTFOUND; break; - case DB_E_READONLY: - case DB_E_RESOURCELOCKED: hr = STG_E_LOCKVIOLATION; break; - case DB_SEC_E_PERMISSIONDENIED: - case DB_SEC_E_SAFEMODE_DENIED: hr = E_ACCESSDENIED; break; - case DB_E_CANNOTCONNECT: - case DB_E_TIMEOUT: hr = E_VBA_NOREMOTESERVER; break; - case DB_E_OUTOFSPACE: hr = STG_E_MEDIUMFULL; break; - case E_NOINTERFACE: hr = E_UNEXPECTED; break; - } - } - - if (pcrow) - pcrow->Release(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::TurnOffWebToolbar (protected) -// -// This function "turns off" the Web toolbar used by Office apps to -// do in-site navigation. The problem is when toggling tools off the -// bar may still be visible, so we have to explicitly turn it off if -// we want a true "no tool" state. -// -// This should *only* be called when turnning off the bars after object -// if inplace active. The call to OLECMDID_HIDETOOLBARS should hide all -// the primay toolbars, so we are just catching those attached to the -// document collection itself that are not in primary set. -// -STDMETHODIMP_(void) CDsoDocObject::TurnOffWebToolbar(BOOL fTurnedOff) -{ - IDispatch *pdisp; - VARIANT vtT[5]; - - ODS("CDsoDocObject::TurnOffWebToolbar()\n"); - - // Can't change toolbar state in print preview... - if (InPrintPreview()) return; - - if ((m_pipactive) && - (SUCCEEDED(m_pipactive->QueryInterface(IID_IDispatch, (void**)&pdisp))) && (pdisp)) - { - // Get the commandbars on the document object.... - if (SUCCEEDED(DsoDispatchInvoke(pdisp, - L"CommandBars", 0, DISPATCH_PROPERTYGET, 0, NULL, &vtT[0]))) - { - // Turn off Web toolbar... - ASSERT(vtT[0].vt == VT_DISPATCH); - vtT[1].vt = VT_BSTR; vtT[1].bstrVal = SysAllocString(L"Web"); - - if (SUCCEEDED(DsoDispatchInvoke(vtT[0].pdispVal, - L"Item", 0, DISPATCH_PROPERTYGET, 1, &vtT[1], &vtT[2]))) - { - ASSERT(vtT[2].vt == VT_DISPATCH); - vtT[3].vt = VT_BOOL; vtT[3].boolVal = 0; - DsoDispatchInvoke(vtT[2].pdispVal, - L"Visible", 0, DISPATCH_PROPERTYPUT, 1, &vtT[3], &vtT[2]); - VariantClear(&vtT[2]); - } - - VariantClear(&vtT[1]); - - // Word 2002/2003 also displays Reviewing toolbar, so kill it too... - if (fTurnedOff && IsWordObject()) - { - ASSERT(vtT[0].vt == VT_DISPATCH); - vtT[1].vt = VT_BSTR; vtT[1].bstrVal = SysAllocString(L"Reviewing"); - - if (SUCCEEDED(DsoDispatchInvoke(vtT[0].pdispVal, - L"Item", 0, DISPATCH_PROPERTYGET, 1, &vtT[1], &vtT[2]))) - { - ASSERT(vtT[2].vt == VT_DISPATCH); - vtT[3].vt = VT_BOOL; vtT[3].boolVal = 0; - DsoDispatchInvoke(vtT[2].pdispVal, - L"Visible", 0, DISPATCH_PROPERTYPUT, 1, &vtT[3], &vtT[2]); - VariantClear(&vtT[2]); - } - - VariantClear(&vtT[1]); - } - - VariantClear(&vtT[0]); - } - - pdisp->Release(); - } - -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ClearMergedMenu (protected) -// -// Frees the merged menu set by host. -// -STDMETHODIMP_(void) CDsoDocObject::ClearMergedMenu() -{ - if (m_hMenuMerged) - { - int cbMenuCnt = GetMenuItemCount(m_hMenuMerged); - for (int i = cbMenuCnt; i >= 0; --i) - RemoveMenu(m_hMenuMerged, i, MF_BYPOSITION); - - DestroyMenu(m_hMenuMerged); - m_hMenuMerged = NULL; - } -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CalcDocNameIndex (protected) -// -// Calculates position of the name portion of the full path string. -// -STDMETHODIMP_(DWORD) CDsoDocObject::CalcDocNameIndex(LPCWSTR pwszPath) -{ - DWORD cblen, idx = 0; - if ((pwszPath) && ((cblen = lstrlenW(pwszPath)) > 1)) - { - for (idx = cblen; idx > 0; --idx) - { - if (pwszPath[idx] == L'\\') - break; - } - - if ((idx) && !(++idx < cblen)) - idx = 0; - } - return idx; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::OnDraw (protected) -// -// Site drawing (does nothing in this version). -// -STDMETHODIMP_(void) CDsoDocObject::OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize) -{ - // Don't have to draw anything, object does all this because we are - // always UI active. If we allowed for multiple objects and had some - // non-UI active, we would have to do some drawing, but that will not - // happen in this sample. -} - - -//////////////////////////////////////////////////////////////////////// -// -// ActiveX Document Site Interfaces -// - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject IUnknown Interface Methods -// -// STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); -// STDMETHODIMP_(ULONG) AddRef(void); -// STDMETHODIMP_(ULONG) Release(void); -// -STDMETHODIMP CDsoDocObject::QueryInterface(REFIID riid, void** ppv) -{ - ODS("CDsoDocObject::QueryInterface\n"); - CHECK_NULL_RETURN(ppv, E_POINTER); - - HRESULT hr = S_OK; - - if (IID_IUnknown == riid) - { - *ppv = (IUnknown*)this; - } - else if (IID_IOleClientSite == riid) - { - *ppv = (IOleClientSite*)&m_xOleClientSite; - } - else if ((IID_IOleInPlaceSite == riid) || (IID_IOleWindow == riid)) - { - *ppv = (IOleInPlaceSite*)&m_xOleInPlaceSite; - } - else if (IID_IOleDocumentSite == riid) - { - *ppv = (IOleDocumentSite*)&m_xOleDocumentSite; - } - else if ((IID_IOleInPlaceFrame == riid) || (IID_IOleInPlaceUIWindow == riid)) - { - *ppv = (IOleInPlaceFrame*)&m_xOleInPlaceFrame; - } - else if (IID_IOleCommandTarget == riid) - { - *ppv = (IOleCommandTarget*)&m_xOleCommandTarget; - } - else if (IIDX_IAuthenticate == riid) - { - *ppv = (IAuthenticate*)&m_xAuthenticate; - } - else if (IID_IServiceProvider == riid) - { - *ppv = (IServiceProvider*)&m_xServiceProvider; - } - else if (IID_IContinueCallback == riid) - { - *ppv = (IContinueCallback*)&m_xContinueCallback; - } - else if (IID_IOlePreviewCallback == riid) - { - *ppv = (IOlePreviewCallback*)&m_xPreviewCallback; - } - else - { - *ppv = NULL; - hr = E_NOINTERFACE; - } - - if (NULL != *ppv) - ((IUnknown*)(*ppv))->AddRef(); - - return hr; -} - -STDMETHODIMP_(ULONG) CDsoDocObject::AddRef(void) -{ - TRACE1("CDsoDocObject::AddRef - %d\n", m_cRef + 1); - return ++m_cRef; -} - -STDMETHODIMP_(ULONG) CDsoDocObject::Release(void) -{ - TRACE1("CDsoDocObject::Release - %d\n", m_cRef - 1); - return --m_cRef; -} - - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleClientSite -- IOleClientSite Implementation -// -// STDMETHODIMP SaveObject(void); -// STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhich, LPMONIKER* ppmk); -// STDMETHODIMP GetContainer(LPOLECONTAINER* ppContainer); -// STDMETHODIMP ShowObject(void); -// STDMETHODIMP OnShowWindow(BOOL fShow); -// STDMETHODIMP RequestNewObjectLayout(void); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleClientSite) - -STDMETHODIMP CDsoDocObject::XOleClientSite::SaveObject(void) -{ - ODS("CDsoDocObject::XOleClientSite::SaveObject\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk) -{ - HRESULT hr = OLE_E_CANT_GETMONIKER; - METHOD_PROLOGUE(CDsoDocObject, OleClientSite); - - TRACE2("CDsoDocObject::XOleClientSite::GetMoniker(%d, %d)\n", dwAssign, dwWhichMoniker); - CHECK_NULL_RETURN(ppmk, E_POINTER); - *ppmk = NULL; - - // Provide moniker for object opened by moniker... - switch(dwWhichMoniker) - { - case OLEWHICHMK_OBJREL: - case OLEWHICHMK_OBJFULL: - { - if (pThis->m_pmkSourceFile) - { - *ppmk = pThis->m_pmkSourceFile; - hr = S_OK; - } - else if (dwAssign == OLEGETMONIKER_FORCEASSIGN) - { - // TODO: Should we allow frce create of moniker if we don't start with it? - } - } - break; - } - - // Need to AddRef returned value to caller on success... - if ((hr == S_OK) && (*ppmk)) - ((IUnknown*)*ppmk)->AddRef(); - - return hr; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::GetContainer(IOleContainer** ppContainer) -{ - ODS("CDsoDocObject::XOleClientSite::GetContainer\n"); - if (ppContainer) *ppContainer = NULL; - return E_NOINTERFACE; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::ShowObject(void) -{ - ODS("CDsoDocObject::XOleClientSite::ShowObject\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::OnShowWindow(BOOL fShow) -{ - ODS("CDsoDocObject::XOleClientSite::OnShowWindow\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleClientSite::RequestNewObjectLayout(void) -{ - ODS("CDsoDocObject::XOleClientSite::RequestNewObjectLayout\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleInPlaceSite -- IOleInPlaceSite Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP CanInPlaceActivate(void); -// STDMETHODIMP OnInPlaceActivate(void); -// STDMETHODIMP OnUIActivate(void); -// STDMETHODIMP GetWindowContext(LPOLEINPLACEFRAME* ppIIPFrame, LPOLEINPLACEUIWINDOW* ppIIPUIWindow, LPRECT prcPos, LPRECT prcClip, LPOLEINPLACEFRAMEINFO pFI); -// STDMETHODIMP Scroll(SIZE sz); -// STDMETHODIMP OnUIDeactivate(BOOL fUndoable); -// STDMETHODIMP OnInPlaceDeactivate(void); -// STDMETHODIMP DiscardUndoState(void); -// STDMETHODIMP DeactivateAndUndo(void); -// STDMETHODIMP OnPosRectChange(LPCRECT prcPos); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleInPlaceSite) - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::GetWindow(HWND* phwnd) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::GetWindow\n"); - if (phwnd) *phwnd = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::ContextSensitiveHelp(BOOL fEnterMode) -{ - ODS("CDsoDocObject::XOleInPlaceSite::ContextSensitiveHelp\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::CanInPlaceActivate(void) -{ - ODS("CDsoDocObject::XOleInPlaceSite::CanInPlaceActivate\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnInPlaceActivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnInPlaceActivate\n"); - - if ((!pThis->m_pole) || - FAILED(pThis->m_pole->QueryInterface(IID_IOleInPlaceObject, (void **)&(pThis->m_pipobj)))) - return E_UNEXPECTED; - - pThis->m_fObjectIPActive = TRUE; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnUIActivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnUIActivate\n"); - pThis->m_fObjectUIActive = TRUE; - pThis->m_pipobj->GetWindow(&(pThis->m_hwndIPObject)); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::GetWindowContext(IOleInPlaceFrame** ppFrame, - IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::GetWindowContext\n"); - - if (ppFrame) - { SAFE_SET_INTERFACE(*ppFrame, &(pThis->m_xOleInPlaceFrame)); } - - if (ppDoc) - *ppDoc = NULL; - - if (lprcPosRect) - *lprcPosRect = pThis->m_rcViewRect; - - if (lprcClipRect) - *lprcClipRect = *lprcPosRect; - - memset(lpFrameInfo, 0, sizeof(OLEINPLACEFRAMEINFO)); - lpFrameInfo->cb = sizeof(OLEINPLACEFRAMEINFO); - lpFrameInfo->hwndFrame = pThis->m_hwnd; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::Scroll(SIZE sz) -{ - ODS("CDsoDocObject::XOleInPlaceSite::Scroll\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnUIDeactivate(BOOL fUndoable) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnUIDeactivate\n"); - - pThis->m_fObjectUIActive = FALSE; - pThis->m_xOleInPlaceFrame.SetMenu(NULL, NULL, NULL); - SetFocus(pThis->m_hwnd); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnInPlaceDeactivate(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::OnInPlaceDeactivate\n"); - - pThis->m_fObjectIPActive = FALSE; - pThis->m_hwndIPObject = NULL; - SAFE_RELEASE_INTERFACE((pThis->m_pipobj)); - - pThis->m_fAttemptPptPreview = FALSE; - pThis->m_fObjectActivateComplete = FALSE; - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::DiscardUndoState(void) -{ - ODS("CDsoDocObject::XOleInPlaceSite::DiscardUndoState\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::DeactivateAndUndo(void) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceSite); - ODS("CDsoDocObject::XOleInPlaceSite::DeactivateAndUndo\n"); - if (pThis->m_pipobj) pThis->m_pipobj->InPlaceDeactivate(); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceSite::OnPosRectChange(LPCRECT lprcPosRect) -{ - ODS("CDsoDocObject::XOleInPlaceSite::OnPosRectChange\n"); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleDocumentSite -- IOleDocumentSite Implementation -// -// STDMETHODIMP ActivateMe(IOleDocumentView* pView); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleDocumentSite) - -STDMETHODIMP CDsoDocObject::XOleDocumentSite::ActivateMe(IOleDocumentView* pView) -{ - METHOD_PROLOGUE(CDsoDocObject, OleDocumentSite); - ODS("CDsoDocObject::XOleDocumentSite::ActivateMe\n"); - - HRESULT hr = E_FAIL; - IOleDocument* pmsodoc; - - // If we're passed a NULL view pointer, then try to get one from - // the document object (the object within us). - if (pView) - { - // Make sure that the view has our client site - hr = pView->SetInPlaceSite((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite)); - - pView->AddRef(); // we will be keeping the object if successful.. - } - else if (pThis->m_pole) - { - // Create a new view from the OleDocument... - if (FAILED(pThis->m_pole->QueryInterface(IID_IOleDocument, (void **)&pmsodoc))) - return E_FAIL; - - hr = pmsodoc->CreateView((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite), - pThis->m_pstmview, 0, &pView); - - pmsodoc->Release(); - } - - // If we have the view, apply view state... - if (SUCCEEDED(hr) && (pThis->m_pstmview)) - hr = pView->ApplyViewState(pThis->m_pstmview); - - // If any of the above failed, release the view and return... - if (FAILED(hr)) - { - SAFE_RELEASE_INTERFACE(pView); - return hr; - } - - // keep the view pointer... - pThis->m_pdocv = pView; - - // Get a command target (if available)... - pView->QueryInterface(IID_IOleCommandTarget, (void**)&(pThis->m_pcmdt)); - - // Make sure that the view has our client site - pView->SetInPlaceSite((IOleInPlaceSite*)&(pThis->m_xOleInPlaceSite)); - - // This sets up toolbars and menus first - if (SUCCEEDED(hr = pView->UIActivate(TRUE))) - { - // Set the window size sensitive to new toolbars - pView->SetRect(&(pThis->m_rcViewRect)); - - // Makes it all active - pView->Show(TRUE); - - pThis->m_fAppWindowActive = TRUE; - pThis->m_fObjectActivateComplete = TRUE; - - // Toogle tools off if that's what user wants... - if (!(pThis->m_fDisplayTools)) - { - pThis->m_fDisplayTools = TRUE; - pThis->OnNotifyChangeToolState(FALSE); - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleInPlaceFrame -- IOleInPlaceFrame Implementation -// -// STDMETHODIMP GetWindow(HWND* phWnd); -// STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); -// STDMETHODIMP GetBorder(LPRECT prcBorder); -// STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS pBW); -// STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS pBW); -// STDMETHODIMP SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj); -// STDMETHODIMP InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW); -// STDMETHODIMP SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj); -// STDMETHODIMP RemoveMenus(HMENU hMenu); -// STDMETHODIMP SetStatusText(LPCOLESTR pszText); -// STDMETHODIMP EnableModeless(BOOL fEnable); -// STDMETHODIMP TranslateAccelerator(LPMSG pMSG, WORD wID); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleInPlaceFrame) - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::GetWindow(HWND* phWnd) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::GetWindow\n"); - return pThis->m_xOleInPlaceSite.GetWindow(phWnd); -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::ContextSensitiveHelp(BOOL fEnterMode) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::ContextSensitiveHelp\n"); - return pThis->m_xOleInPlaceSite.ContextSensitiveHelp(fEnterMode); -} - - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::GetBorder(LPRECT prcBorder) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::GetBorder\n"); - CHECK_NULL_RETURN(prcBorder, E_POINTER); - - // If we don't allow Toolspace, and we are already active, give - // no space for tools (ie, hide toolabrs), otherwise give as much we can... - if (!(pThis->m_fDisplayTools) && (pThis->m_pipactive)) - SetRectEmpty(prcBorder); - else - GetClientRect(pThis->m_hwnd, prcBorder); - - TRACE_LPRECT("prcBorder", prcBorder); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::RequestBorderSpace(LPCBORDERWIDTHS pBW) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::RequestBorderSpace\n"); - CHECK_NULL_RETURN(pBW, E_POINTER); - TRACE_LPRECT("pBW", pBW); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetBorderSpace(LPCBORDERWIDTHS pBW) -{ - RECT rc; - - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetBorderSpace\n"); - - if (pBW){TRACE_LPRECT("pBW", pBW);} - - GetClientRect(pThis->m_hwnd, &rc); - SetRectEmpty((RECT*)&(pThis->m_bwToolSpace)); - - if (pBW) - { - pThis->m_bwToolSpace = *pBW; - rc.left += pBW->left; rc.right -= pBW->right; - rc.top += pBW->top; rc.bottom -= pBW->bottom; - } - - // Save the current view RECT (space minus tools)... - pThis->m_rcViewRect = rc; - - // Update the active document (if alive)... - if (pThis->m_pdocv) - pThis->m_pdocv->SetRect(&(pThis->m_rcViewRect)); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetActiveObject\n"); - - SAFE_RELEASE_INTERFACE((pThis->m_pipactive)); - pThis->m_hwndUIActiveObj = NULL; - pThis->m_dwObjectThreadID = 0; - - if (pIIPActiveObj) - { - SAFE_SET_INTERFACE(pThis->m_pipactive, pIIPActiveObj); - pIIPActiveObj->GetWindow(&(pThis->m_hwndUIActiveObj)); - pThis->m_dwObjectThreadID = GetWindowThreadProcessId(pThis->m_hwndUIActiveObj, NULL); - } - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::InsertMenus\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetMenu\n"); - - pThis->CheckForPPTPreviewChange(); - - // We really don't do anything here. We will merge the menu and set it - // later if the menubar is visible or user chooses dropdown from titlebar. - // All we do is stash current values or clear them depending on call. - if (hMenu) - { - pThis->m_hMenuActive = hMenu; - pThis->m_holeMenu = hOLEMenu; - pThis->m_hwndMenuObj = hWndObj; - - // Handle a special case where menu is being updated after initial set - // and not in close. In such a case we should force redraw control we - // are in so new menu changes are visible as soon as possible... - if ((!(pThis->m_fInClose)) && (pThis->m_hwndCtl)) - InvalidateRect(pThis->m_hwndCtl, NULL, FALSE); - } - else - { - pThis->m_hMenuActive = NULL; - pThis->m_holeMenu = NULL; - pThis->m_hwndMenuObj = NULL; - } - - // Regardless of call, make sure to cleanup a merged menu if - // one was previously created for the control... - pThis->ClearMergedMenu(); - - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::RemoveMenus(HMENU hMenu) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::RemoveMenus\n"); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::SetStatusText(LPCOLESTR pszText) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - ODS("CDsoDocObject::XOleInPlaceFrame::SetStatusText\n"); - if ((pszText) && (*pszText)){TRACE1(" Status Text = %S \n", pszText);} - return ((pThis->m_psiteCtl) ? pThis->m_psiteCtl->SetStatusText(pszText) : S_OK); -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::EnableModeless(BOOL fEnable) -{ - METHOD_PROLOGUE(CDsoDocObject, OleInPlaceFrame); - TRACE1("CDsoDocObject::XOleInPlaceFrame::EnableModeless(%d)\n", fEnable); - pThis->m_fObjectInModalCondition = !fEnable; - SendMessage(pThis->m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_MODAL, (LPARAM)fEnable); - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XOleInPlaceFrame::TranslateAccelerator(LPMSG pMSG, WORD wID) -{ - ODS("CDsoDocObject::XOleInPlaceFrame::TranslateAccelerator\n"); - return S_FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XOleCommandTarget -- IOleCommandTarget Implementation -// -// STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); -// STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, OleCommandTarget) - -STDMETHODIMP CDsoDocObject::XOleCommandTarget::QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText) -{ - HRESULT hr = OLECMDERR_E_UNKNOWNGROUP; - METHOD_PROLOGUE(CDsoDocObject, OleCommandTarget); - if (pThis->m_pcmdCtl) - hr = pThis->m_pcmdCtl->QueryStatus(pguidCmdGroup, cCmds, prgCmds, pCmdText); - return hr; -} - -STDMETHODIMP CDsoDocObject::XOleCommandTarget::Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut) -{ - HRESULT hr = OLECMDERR_E_NOTSUPPORTED; - METHOD_PROLOGUE(CDsoDocObject, OleCommandTarget); - if (pThis->m_pcmdCtl) - hr = pThis->m_pcmdCtl->Exec(pguidCmdGroup, nCmdID, nCmdexecopt, pvaIn, pvaOut); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XServiceProvider -- IServiceProvider Implementation -// -// STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, ServiceProvider) - -STDMETHODIMP CDsoDocObject::XServiceProvider::QueryService(REFGUID guidService, REFIID riid, void **ppv) -{ - METHOD_PROLOGUE(CDsoDocObject, ServiceProvider); - ODS("CDsoDocObject::XServiceProvider::QueryService\n"); - - if (pThis->m_psiteCtl) // Forward to host control/container... - return pThis->m_psiteCtl->QueryService(guidService, riid, ppv); - - return E_NOINTERFACE; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XAuthenticate -- IAuthenticate Implementation -// -// STDMETHODIMP Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, Authenticate) - -STDMETHODIMP CDsoDocObject::XAuthenticate::Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword) -{ - METHOD_PROLOGUE(CDsoDocObject, Authenticate); - ODS("CDsoDocObject::XAuthenticate::Authenticate\n"); - if (phwnd) *phwnd = ((pThis->m_pwszUsername) ? (HWND)INVALID_HANDLE_VALUE : pThis->m_hwndCtl); - if (pszUsername) *pszUsername = DsoConvertToLPOLESTR(pThis->m_pwszUsername); - if (pszPassword) *pszPassword = DsoConvertToLPOLESTR(pThis->m_pwszPassword); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XContinueCallback -- IContinueCallback Implementation -// -// STDMETHODIMP FContinue(void); -// STDMETHODIMP FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, ContinueCallback) - -STDMETHODIMP CDsoDocObject::XContinueCallback::FContinue(void) -{ // We don't support asynchronous cancel of printing, but if you wanted to add - // such functionality, this is where you could do so... - return S_OK; -} - -STDMETHODIMP CDsoDocObject::XContinueCallback::FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus) -{ - TRACE3("CDsoDocObject::XContinueCallback::FContinuePrinting(%d, %d, %S)\n", cPagesPrinted, nCurrentPage, pwszPrintStatus); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::XPreviewCallback -- IPreviewCallback Implementation -// -// STDMETHODIMP Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus); -// -IMPLEMENT_INTERFACE_UNKNOWN(CDsoDocObject, PreviewCallback) - -STDMETHODIMP CDsoDocObject::XPreviewCallback::Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus) -{ - METHOD_PROLOGUE(CDsoDocObject, PreviewCallback); - TRACE3("CDsoDocObject::XPreviewCallback::Notify(%d, %d, %S)\n", wStatus, nLastPage, pwszPreviewStatus); - - // The only notification we act on is when the preview is done... - if ((wStatus == NOTIFY_FORCECLOSEPREVIEW) || - (wStatus == NOTIFY_FINISHED) || - (wStatus == NOTIFY_UNABLETOPREVIEW)) - pThis->ExitPrintPreview(FALSE); - - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::HrGetDataFromObject -// -// Function designed to give indirect access to the content in an existing -// loaded object, in a clipboard format specified in vtType. In other words, -// a call to HrGetDataFromObject("Rich Text Format", [out] array) will get the -// content of the current document in RTF format and return it as a byte array -// vector in VB6-safe safearray. This array can be converted to a string for -// display or saved to database (etc.) without saving to disk. -// -// For this to work, the object embedded must support IDataObject and the clip -// format that you request. -// -STDMETHODIMP CDsoDocObject::HrGetDataFromObject(VARIANT *pvtType, VARIANT *pvtOutput) -{ - HRESULT hr; - IDataObject *pdo = NULL; - LPWSTR pwszTypeName; - LPSTR pszFormatName; - SAFEARRAY* psa; - VOID HUGEP* prawdata; - FORMATETC ftc; - STGMEDIUM stgm; - LONG cfType; - - if ((pvtType == NULL) || PARAM_IS_MISSING(pvtType) || - (pvtOutput == NULL) || PARAM_IS_MISSING(pvtOutput)) - return E_INVALIDARG; - - VariantClear(pvtOutput); - - // We take the name and find the right clipformat for the data type... - pwszTypeName = LPWSTR_FROM_VARIANT(*pvtType); - if ((pwszTypeName) && (pszFormatName = DsoConvertToMBCS(pwszTypeName))) - { - cfType = RegisterClipboardFormat(pszFormatName); - DsoMemFree(pszFormatName); - } - else cfType = LONG_FROM_VARIANT(*pvtType, 0); - CHECK_NULL_RETURN(cfType, E_INVALIDARG); - - // We must be able to get IDataObject for the transfer to work... - if ((m_pole == NULL) || - (FAILED(m_pole->GetClipboardData(0, &pdo)) && - FAILED(m_pole->QueryInterface(IID_IDataObject, (void**)&pdo)))) - return OLE_E_CANT_GETMONIKER; - - ASSERT(pdo); CHECK_NULL_RETURN(pdo, E_UNEXPECTED); - - // We are going to ask for HGLOBAL data format only. This is majority - // of the non-binary formats, which should be sufficient here... - memset(&ftc, 0, sizeof(ftc)); - ftc.cfFormat = (WORD)cfType; - ftc.dwAspect = DVASPECT_CONTENT; - ftc.lindex = -1; ftc.tymed = TYMED_HGLOBAL; - - memset(&stgm, 0, sizeof(stgm)); - stgm.tymed = TYMED_HGLOBAL; - - // Ask the object for the data... - if (SUCCEEDED(hr = pdo->QueryGetData(&ftc)) && - SUCCEEDED(hr = pdo->GetData(&ftc, &stgm))) - { - ULONG ulSize; - if ((stgm.tymed == TYMED_HGLOBAL) && (stgm.hGlobal) && - (ulSize = GlobalSize(stgm.hGlobal))) - { - LPVOID lpv = GlobalLock(stgm.hGlobal); - if (lpv) - { - // We will return data as safearray vector of VB6 Byte type... - psa = SafeArrayCreateVector(VT_UI1, 1, ulSize); - if (psa) - { - pvtOutput->vt = VT_ARRAY|VT_UI1; - pvtOutput->parray = psa; - prawdata = NULL; - - if (SUCCEEDED(SafeArrayAccessData(psa, &prawdata))) - { - memcpy(prawdata, lpv, ulSize); - SafeArrayUnaccessData(psa); - } - } - else hr = E_OUTOFMEMORY; - - GlobalUnlock(stgm.hGlobal); - } - else hr = E_ACCESSDENIED; - } - else hr = E_FAIL; - - ReleaseStgMedium(&stgm); - } - - pdo->Release(); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// -// CDsoDocObject::HrSetDataInObject -// -// Function to take format type and either string or VB6-safe byte array -// as data and set it into the current object (that is, it will replace the -// current document content with this content). The fMbcsString flag determines -// if BSTR passed should be converted to MBCS format before being set. For example, -// if you previously got data as RTF (MBCS), then converted to Unicode BSTR and -// passed it back, it would need to be converted back to MBCS for the set to work. -// If the string data is binary, pass FALSE. If data is array, the param is ignored. -// -// The function sets the data using IDataObject::SetData. Note that some objects -// will allow you to get a format but not set it, so this may not work for a previously -// acquired data type. It is up to the host DocObject server, so test carefully before -// depending on this functionality. -// -STDMETHODIMP CDsoDocObject::HrSetDataInObject(VARIANT *pvtType, VARIANT *pvtInput, BOOL fMbcsString) -{ - HRESULT hr; - IDataObject *pdo = NULL; - LPWSTR pwszTypeName; - LPSTR pszFormatName; - SAFEARRAY* psa; - VOID HUGEP* prawdata; - FORMATETC ftc; - STGMEDIUM stgm; - LONG cfType; - ULONG ulSize; - BOOL fIsArrayData = FALSE; - BOOL fCleanupString = FALSE; - - if ((pvtType == NULL) || PARAM_IS_MISSING(pvtType) || - (pvtInput == NULL) || PARAM_IS_MISSING(pvtInput)) - return E_INVALIDARG; - - // Find the clipboard format for the given data type... - pwszTypeName = LPWSTR_FROM_VARIANT(*pvtType); - if ((pwszTypeName) && (pszFormatName = DsoConvertToMBCS(pwszTypeName))) - { - cfType = RegisterClipboardFormat(pszFormatName); - DsoMemFree(pszFormatName); - } - else cfType = LONG_FROM_VARIANT(*pvtType, 0); - CHECK_NULL_RETURN(cfType, E_INVALIDARG); - - // Depending on the type of data passed, and if we need to do any Unicode-to-MBCS - // conversion for the caller, set up the data size and data pointer we will use - // to create the global memory object we'll pass to the doc object server... - prawdata = LPWSTR_FROM_VARIANT(*pvtInput); - if (prawdata) - { - if (fMbcsString) - { - prawdata = (void*)DsoConvertToMBCS((BSTR)prawdata); - CHECK_NULL_RETURN(prawdata, E_OUTOFMEMORY); - fCleanupString = TRUE; - ulSize = lstrlen((LPSTR)prawdata); - } - else - ulSize = SysStringByteLen((BSTR)prawdata); - } - else - { - psa = PSARRAY_FROM_VARIANT(*pvtInput); - if (psa) - { - LONG lb, ub, elSize; - - if ((SafeArrayGetDim(psa) > 1) || - FAILED(SafeArrayGetLBound(psa, 1, &lb)) || (lb < 0) || - FAILED(SafeArrayGetUBound(psa, 1, &ub)) || (ub < lb) || - ((elSize = SafeArrayGetElemsize(psa)) < 1)) - return E_INVALIDARG; - - ulSize = (((ub + 1) - lb) * elSize); - fIsArrayData = TRUE; - if (FAILED(SafeArrayAccessData(psa, &prawdata))) - return E_ACCESSDENIED; - } - - CHECK_NULL_RETURN(prawdata, E_INVALIDARG); - } - - // We must have a server and it must support IDataObject... - if ((m_pole) && SUCCEEDED(m_pole->QueryInterface(IID_IDataObject, (void**)&pdo)) && (pdo)) - { - memset(&ftc, 0, sizeof(ftc)); - ftc.cfFormat = (WORD)cfType; - ftc.dwAspect = DVASPECT_CONTENT; - ftc.lindex = -1; ftc.tymed = TYMED_HGLOBAL; - - memset(&stgm, 0, sizeof(stgm)); - stgm.tymed = TYMED_HGLOBAL; - stgm.hGlobal = GlobalAlloc(GPTR, ulSize); - if (stgm.hGlobal) - { - LPVOID lpv = GlobalLock(stgm.hGlobal); - if ((lpv) && (ulSize)) - { - // Copy the data into transfer object... - memcpy(lpv, prawdata, ulSize); - GlobalUnlock(stgm.hGlobal); - - // Do the actual SetData call to transfer the data... - hr = pdo->SetData(&ftc, &stgm, TRUE); - } - else hr = E_UNEXPECTED; - - if (FAILED(hr)) - ReleaseStgMedium(&stgm); - } - else hr = E_OUTOFMEMORY; - - pdo->Release(); - } - else hr = OLE_E_CANT_GETMONIKER; - - if (fIsArrayData) - SafeArrayUnaccessData(psa); - - if (fCleanupString) - DsoMemFree(prawdata); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::FrameWindowProc -// -// Site window procedure. Not much to do here except forward focus. -// -STDMETHODIMP_(LRESULT) CDsoDocObject::FrameWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) -{ - CDsoDocObject* pbndr = (CDsoDocObject*)GetWindowLong(hwnd, GWL_USERDATA); - if (pbndr) - { - switch (msg) - { - case WM_PAINT: - { - PAINTSTRUCT ps; - RECT rc; GetClientRect(hwnd, &rc); - BeginPaint(hwnd, &ps); - pbndr->OnDraw(DVASPECT_CONTENT, ps.hdc, (RECT*)&rc, NULL, NULL, TRUE); - EndPaint(hwnd, &ps); - } - return 0; - - case WM_NCDESTROY: - SetWindowLong(hwnd, GWL_USERDATA, 0); - pbndr->m_hwnd = NULL; - break; - - case WM_SETFOCUS: - if (pbndr->m_hwndUIActiveObj) - SetFocus(pbndr->m_hwndUIActiveObj); - return 0; - - case WM_SYSCOMMAND: - if ((wParam & 0xFFF0) == SC_KEYMENU) - { - if ((pbndr->m_psiteCtl) && (pbndr->m_psiteCtl->SysMenuCommand((UINT)lParam) == S_OK)) - return 0; - } - break; - - case WM_ERASEBKGND: - return 1; - } - } - - return DefWindowProc(hwnd, msg, wParam, lParam); -} - - diff --git a/PROMS/DSOFramer/Source2005/dsofdocobj.h b/PROMS/DSOFramer/Source2005/dsofdocobj.h deleted file mode 100644 index 504ddf05..00000000 --- a/PROMS/DSOFramer/Source2005/dsofdocobj.h +++ /dev/null @@ -1,350 +0,0 @@ -/*************************************************************************** - * DSOFDOCOBJ.H - * - * DSOFramer: OLE DocObject Site component (used by the control) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_DSOFDOCOBJ_H -#define DS_DSOFDOCOBJ_H - -//////////////////////////////////////////////////////////////////// -// Declarations for Interfaces used in DocObject Containment -// -#include // Standard DocObjects (common to all AxDocs) -#include "ipprevw.h" // PrintPreview (for select Office apps) -#include "rbbinder.h" // Internet Publishing (for Web Folder write access) - -//////////////////////////////////////////////////////////////////////// -// Microsoft Office 97-2003 Document Object GUIDs -// -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOC, 0x00020906, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLS, 0x00020820, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_CHART_XLS, 0x00020821, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPT, 0x64818D10, 0x4F9B, 0x11CF, 0x86, 0xEA, 0x00, 0xAA, 0x00, 0xB9, 0x29, 0xE8); -DEFINE_GUID(CLSID_VISIO_DRAWING_VSD, 0x00021A13, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PROJECT_DOCUMENT_MPP, 0x74B78F3A, 0xC8C8, 0x11D1, 0xBE, 0x11, 0x00, 0xC0, 0x4F, 0xB6, 0xFA, 0xF1); -DEFINE_GUID(CLSID_MSHTML_DOCUMENT, 0x25336920, 0x03F9, 0x11CF, 0x8F, 0xD0, 0x00, 0xAA, 0x00, 0x68, 0x6F, 0x13); - -//////////////////////////////////////////////////////////////////////// -// Microsoft Office 2007 Document GUIDs -// -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOCX, 0xF4754C9B, 0x64F5, 0x4B40, 0x8A, 0xF4, 0x67, 0x97, 0x32, 0xAC, 0x06, 0x07); -DEFINE_GUID(CLSID_WORD_DOCUMENT_DOCM, 0x18A06B6B, 0x2F3F, 0x4E2B, 0xA6, 0x11, 0x52, 0xBE, 0x63, 0x1B, 0x2D, 0x22); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSX, 0x00020830, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSM, 0x00020832, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_EXCEL_WORKBOOK_XLSB, 0x00020833, 0x0000, 0x0000, 0xC0, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x46); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPTX, 0xCF4F55F4, 0x8F87, 0x4D47, 0x80, 0xBB, 0x58, 0x08, 0x16, 0x4B, 0xB3, 0xF8); -DEFINE_GUID(CLSID_PPT_PRESENTATION_PPTM, 0xDC020317, 0xE6E2, 0x4A62, 0xB9, 0xFA, 0xB3, 0xEF, 0xE1, 0x66, 0x26, 0xF4); - -//////////////////////////////////////////////////////////////////// -// IDsoDocObjectSite -- {444CA1F7-B405-4002-95C3-A455BC9F4F55} -// -// Implemented by control host for callbacks. Required interface. -// -interface IDsoDocObjectSite : public IServiceProvider -{ - STDMETHOD(GetWindow)(HWND* phWnd) PURE; - STDMETHOD(GetBorder)(LPRECT prcBorder) PURE; - STDMETHOD(SetStatusText)(LPCOLESTR pszText) PURE; - STDMETHOD(GetHostName)(LPWSTR *ppwszHostName) PURE; - STDMETHOD(SysMenuCommand)(UINT uiCharCode) PURE; -}; -DEFINE_GUID(IID_IDsoDocObjectSite, 0x444CA1F7, 0xB405, 0x4002, 0x95, 0xC3, 0xA4, 0x55, 0xBC, 0x9F, 0x4F, 0x55); - - -//////////////////////////////////////////////////////////////////// -// CDsoDocObject -- ActiveDocument Container Site Object -// -// The CDsoDocObject object handles all the DocObject embedding for the -// control and os fairly self-contained. Like the control it has its -// own window, but it merely acts as a parent for the embedded object -// window(s) which it activates. -// -// CDsoDocObject works by taking a file (or automation object) and -// copying out the OLE storage used for its persistent data. It then -// creates a new embedding based on the data. If a storage is not -// avaiable, it will attempt to oad the file directly, but the results -// are less predictable using this manner since DocObjects are embeddings -// and not links and this component has limited support for links. As a -// result, we will attempt to keep our own storage copy in most cases. -// -// You should note that this approach is different than one taken by the -// web browser control, which is basically a link container which will -// try to embed (ip activate) if allowed, but if not it opens the file -// externally and keeps the link. If CDsoDocObject cannot embed the object, -// it returns an error. It will not open the object external. -// -// Like the control, this object also uses nested classes for the OLE -// interfaces used in the embedding. They are easier to track and easier -// to debug if a specific interface is over/under released. Again this was -// a design decision to make the sample easier to break apart, but not required. -// -// Because the object is not tied to the top-level window, it constructs -// the OLE merged menu as a set of popup menus which the control then displays -// in whatever form it wants. You would need to customize this if you used -// the control in a host and wanted the menus to merge with the actual host -// menu bar (on the top-level window or form). -// -class CDsoDocObject : public IUnknown -{ -public: - CDsoDocObject(); - ~CDsoDocObject(); - - // Static Create Method (Host Provides Site Interface) - static STDMETHODIMP_(CDsoDocObject*) CreateInstance(IDsoDocObjectSite* phost); - - // IUnknown Implementation - STDMETHODIMP QueryInterface(REFIID riid, void** ppv); - STDMETHODIMP_(ULONG) AddRef(void); - STDMETHODIMP_(ULONG) Release(void); - - // IOleClientSite Implementation - BEGIN_INTERFACE_PART(OleClientSite, IOleClientSite) - STDMETHODIMP SaveObject(void); - STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker** ppmk); - STDMETHODIMP GetContainer(IOleContainer** ppContainer); - STDMETHODIMP ShowObject(void); - STDMETHODIMP OnShowWindow(BOOL fShow); - STDMETHODIMP RequestNewObjectLayout(void); - END_INTERFACE_PART(OleClientSite) - - // IOleInPlaceSite Implementation - BEGIN_INTERFACE_PART(OleInPlaceSite, IOleInPlaceSite) - STDMETHODIMP GetWindow(HWND* phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP CanInPlaceActivate(void); - STDMETHODIMP OnInPlaceActivate(void); - STDMETHODIMP OnUIActivate(void); - STDMETHODIMP GetWindowContext(IOleInPlaceFrame** ppFrame, IOleInPlaceUIWindow** ppDoc, LPRECT lprcPosRect, LPRECT lprcClipRect, LPOLEINPLACEFRAMEINFO lpFrameInfo); - STDMETHODIMP Scroll(SIZE sz); - STDMETHODIMP OnUIDeactivate(BOOL fUndoable); - STDMETHODIMP OnInPlaceDeactivate(void); - STDMETHODIMP DiscardUndoState(void); - STDMETHODIMP DeactivateAndUndo(void); - STDMETHODIMP OnPosRectChange(LPCRECT lprcPosRect); - END_INTERFACE_PART(OleInPlaceSite) - - // IOleDocumentSite Implementation - BEGIN_INTERFACE_PART(OleDocumentSite, IOleDocumentSite) - STDMETHODIMP ActivateMe(IOleDocumentView* pView); - END_INTERFACE_PART(OleDocumentSite) - - // IOleInPlaceFrame Implementation - BEGIN_INTERFACE_PART(OleInPlaceFrame, IOleInPlaceFrame) - STDMETHODIMP GetWindow(HWND* phWnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP GetBorder(LPRECT prcBorder); - STDMETHODIMP RequestBorderSpace(LPCBORDERWIDTHS pBW); - STDMETHODIMP SetBorderSpace(LPCBORDERWIDTHS pBW); - STDMETHODIMP SetActiveObject(LPOLEINPLACEACTIVEOBJECT pIIPActiveObj, LPCOLESTR pszObj); - STDMETHODIMP InsertMenus(HMENU hMenu, LPOLEMENUGROUPWIDTHS pMGW); - STDMETHODIMP SetMenu(HMENU hMenu, HOLEMENU hOLEMenu, HWND hWndObj); - STDMETHODIMP RemoveMenus(HMENU hMenu); - STDMETHODIMP SetStatusText(LPCOLESTR pszText); - STDMETHODIMP EnableModeless(BOOL fEnable); - STDMETHODIMP TranslateAccelerator(LPMSG pMSG, WORD wID); - END_INTERFACE_PART(OleInPlaceFrame) - - // IOleCommandTarget Implementation - BEGIN_INTERFACE_PART(OleCommandTarget , IOleCommandTarget) - STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); - STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); - END_INTERFACE_PART(OleCommandTarget) - - // IServiceProvider Implementation - BEGIN_INTERFACE_PART(ServiceProvider , IServiceProvider) - STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); - END_INTERFACE_PART(ServiceProvider) - - // IAuthenticate Implementation - BEGIN_INTERFACE_PART(Authenticate , IAuthenticate) - STDMETHODIMP Authenticate(HWND *phwnd, LPWSTR *pszUsername, LPWSTR *pszPassword); - END_INTERFACE_PART(Authenticate) - - // IContinueCallback Implementation - BEGIN_INTERFACE_PART(ContinueCallback , IContinueCallback) - STDMETHODIMP FContinue(void); - STDMETHODIMP FContinuePrinting(LONG cPagesPrinted, LONG nCurrentPage, LPOLESTR pwszPrintStatus); - END_INTERFACE_PART(ContinueCallback) - - // IOlePreviewCallback Implementation - BEGIN_INTERFACE_PART(PreviewCallback , IOlePreviewCallback) - STDMETHODIMP Notify(DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus); - END_INTERFACE_PART(PreviewCallback) - - // DocObject Class Methods IDsoDocObjectSite - STDMETHODIMP InitializeNewInstance(IDsoDocObjectSite* phost); - STDMETHODIMP CreateDocObject(REFCLSID rclsid); - STDMETHODIMP CreateDocObject(IStorage *pstg); - STDMETHODIMP CreateFromFile(LPWSTR pwszFile, REFCLSID rclsid, LPBIND_OPTS pbndopts); - STDMETHODIMP CreateFromURL(LPWSTR pwszUrlFile, REFCLSID rclsid, LPBIND_OPTS pbndopts, LPWSTR pwszUserName, LPWSTR pwszPassword); - STDMETHODIMP CreateFromRunningObject(LPUNKNOWN punkObj, LPWSTR pwszObjectName, LPBIND_OPTS pbndopts); - STDMETHODIMP IPActivateView(); - STDMETHODIMP IPDeactivateView(); - STDMETHODIMP UIActivateView(); - STDMETHODIMP UIDeactivateView(); - STDMETHODIMP_(BOOL) IsDirty(); - STDMETHODIMP Save(); - STDMETHODIMP SaveToFile(LPWSTR pwszFile, BOOL fOverwriteFile); - STDMETHODIMP SaveToURL(LPWSTR pwszURL, BOOL fOverwriteFile, LPWSTR pwszUserName, LPWSTR pwszPassword); - STDMETHODIMP PrintDocument(LPCWSTR pwszPrinter, LPCWSTR pwszOutput, UINT cCopies, UINT nFrom, UINT nTo, BOOL fPromptUser); - STDMETHODIMP StartPrintPreview(); - STDMETHODIMP ExitPrintPreview(BOOL fForceExit); - STDMETHODIMP DoOleCommand(DWORD dwOleCmdId, DWORD dwOptions, VARIANT* vInParam, VARIANT* vInOutParam); - STDMETHODIMP Close(); - - // Control should notify us on these conditions (so we can pass to IP object)... - STDMETHODIMP_(void) OnNotifySizeChange(LPRECT prc); - STDMETHODIMP_(void) OnNotifyAppActivate(BOOL fActive, DWORD dwThreadID); - STDMETHODIMP_(void) OnNotifyPaletteChanged(HWND hwndPalChg); - STDMETHODIMP_(void) OnNotifyChangeToolState(BOOL fShowTools); - STDMETHODIMP_(void) OnNotifyControlFocus(BOOL fGotFocus); - - STDMETHODIMP HrGetDataFromObject(VARIANT *pvtType, VARIANT *pvtOutput); - STDMETHODIMP HrSetDataInObject(VARIANT *pvtType, VARIANT *pvtInput, BOOL fMbcsString); - - STDMETHODIMP_(BOOL) GetDocumentTypeAndFileExtension(WCHAR** ppwszFileType, WCHAR** ppwszFileExt); - - // Inline accessors for control to get IP object info... - inline IOleInPlaceActiveObject* GetActiveObject(){return m_pipactive;} - inline IOleObject* GetOleObject(){return m_pole;} - inline HWND GetDocWindow(){return m_hwnd;} - inline HWND GetActiveWindow(){return m_hwndUIActiveObj;} - inline BOOL IsReadOnly(){return m_fOpenReadOnly;} - inline BOOL InPrintPreview(){return ((m_pprtprv != NULL) || (m_fInPptSlideShow));} - inline HWND GetMenuHWND(){return m_hwndMenuObj;} - inline HMENU GetActiveMenu(){return m_hMenuActive;} - inline HMENU GetMergedMenu(){return m_hMenuMerged;} - inline void SetMergedMenu(HMENU h){m_hMenuMerged = h;} - inline LPCWSTR GetSourceName(){return ((m_pwszWebResource) ? m_pwszWebResource : m_pwszSourceFile);} - inline LPCWSTR GetSourceDocName(){return ((m_pwszSourceFile) ? &m_pwszSourceFile[m_idxSourceName] : NULL);} - inline CLSID* GetServerCLSID(){return &m_clsidObject;} - inline BOOL IsIPActive(){return (m_pipobj != NULL);} - - BOOL IsWordObject() - {return ((m_clsidObject == CLSID_WORD_DOCUMENT_DOC) || - (m_clsidObject == CLSID_WORD_DOCUMENT_DOCX) || - (m_clsidObject == CLSID_WORD_DOCUMENT_DOCM)); - } - BOOL IsExcelObject() - {return ((m_clsidObject == CLSID_EXCEL_WORKBOOK_XLS) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSX) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSM) || - (m_clsidObject == CLSID_EXCEL_WORKBOOK_XLSB) || - (m_clsidObject == CLSID_EXCEL_CHART_XLS)); - } - BOOL IsPPTObject() - {return ((m_clsidObject == CLSID_PPT_PRESENTATION_PPT) || - (m_clsidObject == CLSID_PPT_PRESENTATION_PPTX) || - (m_clsidObject == CLSID_PPT_PRESENTATION_PPTM)); - } - BOOL IsVisioObject() - {return (m_clsidObject == CLSID_VISIO_DRAWING_VSD);} - - STDMETHODIMP SetRunningServerLock(BOOL fLock); - -protected: - // Internal helper methods... - STDMETHODIMP InstantiateDocObjectServer(REFCLSID rclsid, IOleObject **ppole); - STDMETHODIMP CreateObjectStorage(REFCLSID rclsid); - STDMETHODIMP SaveObjectStorage(); - STDMETHODIMP SaveDocToMoniker(IMoniker *pmk, IBindCtx *pbc, BOOL fKeepLock); - STDMETHODIMP SaveDocToFile(LPWSTR pwszFullName, BOOL fKeepLock); - STDMETHODIMP ValidateDocObjectServer(REFCLSID rclsid); - STDMETHODIMP_(BOOL) ValidateFileExtension(WCHAR* pwszFile, WCHAR** ppwszOut); - - STDMETHODIMP_(void) OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize); - - STDMETHODIMP EnsureOleServerRunning(BOOL fLockRunning); - STDMETHODIMP_(void) FreeRunningLock(); - STDMETHODIMP_(void) TurnOffWebToolbar(BOOL fTurnedOff); - STDMETHODIMP_(void) ClearMergedMenu(); - STDMETHODIMP_(DWORD) CalcDocNameIndex(LPCWSTR pwszPath); - STDMETHODIMP_(void) CheckForPPTPreviewChange(); - - // These functions allow the component to access files in a Web Folder for - // write access using the Microsoft Provider for Internet Publishing (MSDAIPP), - // which is installed by Office and comes standard in Windows 2000/ME/XP/2003. The - // provider is not required to use the component, only if you wish to save to - // an FPSE or DAV Web Folder (URL). - STDMETHODIMP_(IUnknown*) CreateIPPBindResource(); - STDMETHODIMP IPPDownloadWebResource(LPWSTR pwszURL, LPWSTR pwszFile, IStream** ppstmKeepForSave); - STDMETHODIMP IPPUploadWebResource(LPWSTR pwszFile, IStream** ppstmSave, LPWSTR pwszURLSaveTo, BOOL fOverwriteFile); - - static STDMETHODIMP_(LRESULT) FrameWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - - // The private class variables... -private: - ULONG m_cRef; // Reference count - HWND m_hwnd; // our window - HWND m_hwndCtl; // The control's window - RECT m_rcViewRect; // Viewable area (set by host) - IDsoDocObjectSite *m_psiteCtl; // The control's site interface - IOleCommandTarget *m_pcmdCtl; // IOCT of host (for frame msgs) - - LPWSTR m_pwszHostName; // Ole Host Name for container - LPWSTR m_pwszSourceFile; // Path to Source File (on Open) - IMoniker *m_pmkSourceFile; // Moniker to original source file - IBindCtx *m_pbctxSourceFile; // Bind context used to original source file - IStorage *m_pstgSourceFile; // Original File Storage (if open/save file) - DWORD m_idxSourceName; // Index to doc name in m_pwszSourceFile - - CLSID m_clsidObject; // CLSID of the embedded object - IStorage *m_pstgroot; // Root temp storage - IStorage *m_pstgfile; // In-memory file storage - IStream *m_pstmview; // In-memory view info stream - - LPWSTR m_pwszWebResource; // The full URL to the web resource - IStream *m_pstmWebResource; // Original Download Stream (if open/save URL) - IUnknown *m_punkIPPResource; // MSDAIPP provider resource (for URL authoring) - LPWSTR m_pwszUsername; // Username and password used by MSDAIPP - LPWSTR m_pwszPassword; // for Authentication (see IAuthenticate) - - IOleObject *m_pole; // Embedded OLE Object (OLE) - IOleInPlaceObject *m_pipobj; // The IP object methods (OLE) - IOleInPlaceActiveObject *m_pipactive; // The UI Active object methods (OLE) - IOleDocumentView *m_pdocv; // MSO Document View (DocObj) - IOleCommandTarget *m_pcmdt; // MSO Command Target (DocObj) - IOleInplacePrintPreview *m_pprtprv; // MSO Print Preview (DocObj) - - HMENU m_hMenuActive; // The menu supplied by embedded object - HMENU m_hMenuMerged; // The merged menu (set by control host) - HOLEMENU m_holeMenu; // The OLE Menu Descriptor - HWND m_hwndMenuObj; // The window for menu commands - HWND m_hwndIPObject; // IP active object window - HWND m_hwndUIActiveObj; // UI Active object window - DWORD m_dwObjectThreadID; // Thread Id of UI server - BORDERWIDTHS m_bwToolSpace; // Toolspace... - - // Bitflags (state info)... - unsigned int m_fDisplayTools:1; - unsigned int m_fDisconnectOnQuit:1; - unsigned int m_fAppWindowActive:1; - unsigned int m_fOpenReadOnly:1; - unsigned int m_fObjectInModalCondition:1; - unsigned int m_fObjectIPActive:1; - unsigned int m_fObjectUIActive:1; - unsigned int m_fObjectActivateComplete:1; - unsigned int m_fLockedServerRunning:1; - unsigned int m_fLoadedFromAuto:1; - unsigned int m_fInClose:1; - unsigned int m_fAttemptPptPreview:1; - unsigned int m_fInPptSlideShow:1; - -}; - - -#endif //DS_DSOFDOCOBJ_H \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsofprint.cpp b/PROMS/DSOFramer/Source2005/dsofprint.cpp deleted file mode 100644 index 280cefa2..00000000 --- a/PROMS/DSOFramer/Source2005/dsofprint.cpp +++ /dev/null @@ -1,419 +0,0 @@ -/*************************************************************************** - * DSOFPRINT.CPP - * - * CDsoDocObject: Print Code for CDsoDocObject object - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::_PrintOutOld -// -// Prints the current object by calling IOleCommandTarget for Print. -// -STDMETHODIMP CDsoFramerControl::_PrintOutOld(VARIANT PromptToSelectPrinter) -{ - DWORD dwOption = BOOL_FROM_VARIANT(PromptToSelectPrinter, FALSE) - ? OLECMDEXECOPT_PROMPTUSER : OLECMDEXECOPT_DODEFAULT; - - TRACE1("CDsoFramerControl::_PrintOutOld(%d)\n", dwOption); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_pDocObjFrame->InPrintPreview())) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - return m_pDocObjFrame->DoOleCommand(OLECMDID_PRINT, dwOption, NULL, NULL); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintOut -// -// Prints document using either IPrint or IOleCommandTarget, depending -// on parameters passed. This offers a bit more control over printing if -// the doc object server supports IPrint interface. -// -STDMETHODIMP CDsoFramerControl::PrintOut(VARIANT PromptUser, VARIANT PrinterName, - VARIANT Copies, VARIANT FromPage, VARIANT ToPage, VARIANT OutputFile) -{ - HRESULT hr; - BOOL fPromptUser = BOOL_FROM_VARIANT(PromptUser, FALSE); - LPWSTR pwszPrinter = LPWSTR_FROM_VARIANT(PrinterName); - LPWSTR pwszOutput = LPWSTR_FROM_VARIANT(OutputFile); - LONG lCopies = LONG_FROM_VARIANT(Copies, 1); - LONG lFrom = LONG_FROM_VARIANT(FromPage, 0); - LONG lTo = LONG_FROM_VARIANT(ToPage, 0); - - TRACE3("CDsoFramerControl::PrintOut(%d, %S, %d)\n", fPromptUser, pwszPrinter, lCopies); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // First we do validation of all parameters passed to the function... - if ((pwszPrinter) && (*pwszPrinter == L'\0')) - return E_INVALIDARG; - - if ((pwszOutput) && (*pwszOutput == L'\0')) - return E_INVALIDARG; - - if ((lCopies < 1) || (lCopies > 200)) - return E_INVALIDARG; - - if (((lFrom != 0) || (lTo != 0)) && ((lFrom < 1) || (lTo < lFrom))) - return E_INVALIDARG; - - // Cannot access object if in modal condition... - if ((m_fModalState) || (m_pDocObjFrame->InPrintPreview())) - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // If no printer name was provided, we can print to the default device - // using IOleCommandTarget with OLECMDID_PRINT... - if (pwszPrinter == NULL) - return _PrintOutOld(PromptUser); - - // Ask the embedded document to print itself to specific printer... - hr = m_pDocObjFrame->PrintDocument(pwszPrinter, pwszOutput, (UINT)lCopies, - (UINT)lFrom, (UINT)lTo, fPromptUser); - - // If call failed because interface doesn't exist, change error - // to let caller know it is because DocObj doesn't support this command... - if (FAILED(hr) && (hr == E_NOINTERFACE)) - hr = DSO_E_COMMANDNOTSUPPORTED; - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintPreview -// -// Asks embedded object to attempt a print preview (only Office docs do this). -// -STDMETHODIMP CDsoFramerControl::PrintPreview() -{ - HRESULT hr; - ODS("CDsoFramerControl::PrintPreview\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - if (m_fModalState) // Cannot access object if in modal condition... - return ProvideErrorInfo(DSO_E_INMODALSTATE); - - // Try to set object into print preview mode... - hr = m_pDocObjFrame->StartPrintPreview(); - - // If call failed because interface doesn't exist, change error - // to let caller know it is because DocObj doesn't support this command... - if (FAILED(hr) && (hr == E_NOINTERFACE)) - hr = DSO_E_COMMANDNOTSUPPORTED; - - return ProvideErrorInfo(hr); -} - -//////////////////////////////////////////////////////////////////////// -// CDsoFramerControl::PrintPreviewExit -// -// Closes an active preview. -// -STDMETHODIMP CDsoFramerControl::PrintPreviewExit() -{ - ODS("CDsoFramerControl::PrintPreviewExit\n"); - CHECK_NULL_RETURN(m_pDocObjFrame, ProvideErrorInfo(DSO_E_DOCUMENTNOTOPEN)); - - // Try to set object out of print preview mode... - if (m_pDocObjFrame->InPrintPreview()) - m_pDocObjFrame->ExitPrintPreview(TRUE); - - return S_OK; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::PrintDocument -// -// We can use the IPrint interface for an ActiveX Document object to -// selectively print object to a given printer. -// -STDMETHODIMP CDsoDocObject::PrintDocument(LPCWSTR pwszPrinter, LPCWSTR pwszOutput, UINT cCopies, UINT nFrom, UINT nTo, BOOL fPromptUser) -{ - HRESULT hr; - IPrint *print; - HANDLE hPrint; - DVTARGETDEVICE* ptd = NULL; - - ODS("CDsoDocObject::PrintDocument\n"); - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - - // First thing we need to do is ask object for IPrint. If it does not - // support it, we cannot continue. It is up to DocObj if this is allowed... - hr = m_pole->QueryInterface(IID_IPrint, (void**)&print); - RETURN_ON_FAILURE(hr); - - // Now setup printer settings into DEVMODE for IPrint. Open printer - // settings and gather default DEVMODE... - if (FOpenPrinter(pwszPrinter, &hPrint)) - { - LPDEVMODEW pdevMode = NULL; - LPWSTR pwszDefProcessor = NULL; - LPWSTR pwszDefDriver = NULL; - LPWSTR pwszDefPort = NULL; - LPWSTR pwszPort; - DWORD cbDevModeSize; - - if (FGetPrinterSettings(hPrint, &pwszDefProcessor, - &pwszDefDriver, &pwszDefPort, &pdevMode, &cbDevModeSize) && (pdevMode)) - { - DWORD cbPrintName, cbDeviceName, cbOutputName; - DWORD cbDVTargetSize; - - pdevMode->dmFields |= DM_COPIES; - pdevMode->dmCopies = (WORD)((cCopies) ? cCopies : 1); - - pwszPort = ((pwszOutput) ? (LPWSTR)pwszOutput : pwszDefPort); - - // We calculate the size we will need for the TARGETDEVICE structure... - cbPrintName = ((lstrlenW(pwszDefProcessor) + 1) * sizeof(WCHAR)); - cbDeviceName = ((lstrlenW(pwszDefDriver) + 1) * sizeof(WCHAR)); - cbOutputName = ((lstrlenW(pwszPort) + 1) * sizeof(WCHAR)); - - cbDVTargetSize = sizeof(DWORD) + sizeof(DEVNAMES) + cbPrintName + - cbDeviceName + cbOutputName + cbDevModeSize; - - // Allocate new target device using COM Task Allocator... - ptd = (DVTARGETDEVICE*)CoTaskMemAlloc(cbDVTargetSize); - if (ptd) - { - // Copy all the data in the DVT... - DWORD dwOffset = sizeof(DWORD) + sizeof(DEVNAMES); - ptd->tdSize = cbDVTargetSize; - - ptd->tdDriverNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszDefProcessor, cbPrintName); - dwOffset += cbPrintName; - - ptd->tdDeviceNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszDefDriver, cbDeviceName); - dwOffset += cbDeviceName; - - ptd->tdPortNameOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pwszPort, cbOutputName); - dwOffset += cbOutputName; - - ptd->tdExtDevmodeOffset = (WORD)dwOffset; - memcpy((BYTE*)(((BYTE*)ptd) + dwOffset), pdevMode, cbDevModeSize); - dwOffset += cbDevModeSize; - - ASSERT(dwOffset == cbDVTargetSize); - } - else hr = E_OUTOFMEMORY; - - // We're done with the devmode... - DsoMemFree(pdevMode); - } - else hr = E_WIN32_LASTERROR; - - SAFE_FREESTRING(pwszDefPort); - SAFE_FREESTRING(pwszDefDriver); - SAFE_FREESTRING(pwszDefProcessor); - ClosePrinter(hPrint); - } - else hr = E_WIN32_LASTERROR; - - // If we were successful in getting TARGETDEVICE struct, provide the page range - // for the print job and ask docobj server to print it... - if (SUCCEEDED(hr)) - { - PAGESET *ppgset; - DWORD cbPgRngSize = sizeof(PAGESET) + sizeof(PAGERANGE); - LONG cPages, cLastPage; - DWORD grfPrintFlags; - - // Setup the page range to print... - if ((ppgset = (PAGESET*)CoTaskMemAlloc(cbPgRngSize)) != NULL) - { - ppgset->cbStruct = cbPgRngSize; - ppgset->cPageRange = 1; - ppgset->fOddPages = TRUE; - ppgset->fEvenPages = TRUE; - ppgset->cPageRange = 1; - ppgset->rgPages[0].nFromPage = ((nFrom) ? nFrom : 1); - ppgset->rgPages[0].nToPage = ((nTo) ? nTo : PAGESET_TOLASTPAGE); - - // Give indication we are waiting (on the print)... - HCURSOR hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - SEH_TRY - - // Setup the initial page number (optional)... - print->SetInitialPageNum(ppgset->rgPages[0].nFromPage); - - grfPrintFlags = (PRINTFLAG_MAYBOTHERUSER | PRINTFLAG_RECOMPOSETODEVICE); - if (fPromptUser) grfPrintFlags |= PRINTFLAG_PROMPTUSER; - if (pwszOutput) grfPrintFlags |= PRINTFLAG_PRINTTOFILE; - - // Now ask server to print it using settings passed... - hr = print->Print(grfPrintFlags, &ptd, &ppgset, NULL, (IContinueCallback*)&m_xContinueCallback, - ppgset->rgPages[0].nFromPage, &cPages, &cLastPage); - - SEH_EXCEPT(hr) - - SetCursor(hCur); - - if (ppgset) - CoTaskMemFree(ppgset); - } - else hr = E_OUTOFMEMORY; - } - - // We are done... - if (ptd) CoTaskMemFree(ptd); - print->Release(); - return hr; -} - - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::StartPrintPreview -// -// Ask embedded object to go into print preview (if supportted). -// -STDMETHODIMP CDsoDocObject::StartPrintPreview() -{ - HRESULT hr; - IOleInplacePrintPreview *prev; - HCURSOR hCur; - - ODS("CDsoDocObject::StartPrintPreview\n"); - CHECK_NULL_RETURN(m_pole, E_UNEXPECTED); - - // No need to do anything if already in preview... - if (InPrintPreview()) return S_FALSE; - - // Otherwise, ask document server if it supports preview... - hr = m_pole->QueryInterface(IID_IOleInplacePrintPreview, (void**)&prev); - if (SUCCEEDED(hr)) - { - // Tell user we waiting (switch to preview can be slow for very large docs)... - hCur = SetCursor(LoadCursor(NULL, IDC_WAIT)); - - // If it does, make sure it can go into preview mode... - hr = prev->QueryStatus(); - if (SUCCEEDED(hr)) - { - SEH_TRY - - if (m_hwndCtl) // Notify the control that preview started... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)FALSE); - - // We will allow application to bother user and switch printers... - hr = prev->StartPrintPreview( - (PREVIEWFLAG_MAYBOTHERUSER | PREVIEWFLAG_PROMPTUSER | PREVIEWFLAG_USERMAYCHANGEPRINTER), - NULL, (IOlePreviewCallback*)&m_xPreviewCallback, 1); - - SEH_EXCEPT(hr) - - // If the call succeeds, we keep hold of interface to close preview later - if (SUCCEEDED(hr)) - { - SAFE_SET_INTERFACE(m_pprtprv, prev); - } - else - { // Otherwise, notify the control that preview failed... - if (m_hwndCtl) - PostMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)TRUE); - } - } - - SetCursor(hCur); - prev->Release(); - } - else if (IsPPTObject() && (m_hwndUIActiveObj)) - { - // PowerPoint doesn't have print preview, but it does have slide show mode, so we can use this to - // toggle the viewing into slideshow... - if (PostMessage(m_hwndUIActiveObj, WM_KEYDOWN, VK_F5, 0x00000001) && - PostMessage(m_hwndUIActiveObj, WM_KEYUP, VK_F5, 0xC0000001)) - { - hr = S_OK; m_fAttemptPptPreview = TRUE; - } - } - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::ExitPrintPreview -// -// Drop out of print preview and restore items as needed. -// -STDMETHODIMP CDsoDocObject::ExitPrintPreview(BOOL fForceExit) -{ - TRACE1("CDsoDocObject::ExitPrintPreview(fForceExit=%d)\n", (DWORD)fForceExit); - - // Need to be in preview to run this function... - if (!InPrintPreview()) return S_FALSE; - - // If the user closes the app or otherwise terminates the preview, we need - // to notify the ActiveDocument server to leave preview mode... - if (m_pprtprv) - { - if (fForceExit) // Tell docobj we want to end preview... - { - HRESULT hr = m_pprtprv->EndPrintPreview(TRUE); - ASSERT(SUCCEEDED(hr)); (void)hr; - } - } - else if (m_fInPptSlideShow) - { - if ((fForceExit) && (m_hwndUIActiveObj)) - { - // HACK: When it goes into slideshow, PPT 2007 changes the active window but - // doesn't call SetActiveObject to update us with new object and window handle. - // If we post VK_ESCAPE to the window handle we have, it can fail. It needs to go - // to the slideshow window that PPT failed to give us handle for. As workaround, - // setting focus to the UI window we have handle for will automatically forward - // to the right window, so we can use that trick to get the right window and - // make the call in a way that that should succeed regardless of PPT version... - SetFocus(m_hwndUIActiveObj); - PostMessage(GetFocus(), WM_KEYDOWN, VK_ESCAPE, 0x00000001); - PostMessage(GetFocus(), WM_KEYUP, VK_ESCAPE, 0xC0000001); - } - m_fAttemptPptPreview = FALSE; - m_fInPptSlideShow = FALSE; - } - - if (m_hwndCtl) // Notify the control that preview ended... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)TRUE); - - // Free our reference to preview interface... - SAFE_RELEASE_INTERFACE(m_pprtprv); - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// CDsoDocObject::CheckForPPTPreviewChange -// -// Used to update control when PPT goes in/out of slideshow asynchronously. -// -STDMETHODIMP_(void) CDsoDocObject::CheckForPPTPreviewChange() -{ - if (m_fInPptSlideShow) - { - ExitPrintPreview(FALSE); - } - else if (m_fAttemptPptPreview) - { - m_fInPptSlideShow = TRUE; - m_fAttemptPptPreview = FALSE; - if (m_hwndCtl) // Notify the control that preview started... - SendMessage(m_hwndCtl, DSO_WM_ASYNCH_STATECHANGE, DSO_STATE_INTERACTIVE, (LPARAM)FALSE); - } -} \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsoframer.def b/PROMS/DSOFramer/Source2005/dsoframer.def deleted file mode 100644 index cb32e274..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.def +++ /dev/null @@ -1,6 +0,0 @@ -LIBRARY dsoframer.ocx -EXPORTS - DllGetClassObject PRIVATE - DllCanUnloadNow PRIVATE - DllRegisterServer PRIVATE - DllUnregisterServer PRIVATE \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsoframer.dsp b/PROMS/DSOFramer/Source2005/dsoframer.dsp deleted file mode 100644 index 0a9d2843..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.dsp +++ /dev/null @@ -1,205 +0,0 @@ -# Microsoft Developer Studio Project File - Name="dsoframer" - Package Owner=<4> -# Microsoft Developer Studio Generated Build File, Format Version 6.00 -# ** DO NOT EDIT ** - -# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102 - -CFG=dsoframer - Win32 Release -!MESSAGE This is not a valid makefile. To build this project using NMAKE, -!MESSAGE use the Export Makefile command and run -!MESSAGE -!MESSAGE NMAKE /f "dsoframer.mak". -!MESSAGE -!MESSAGE You can specify a configuration when running NMAKE -!MESSAGE by defining the macro CFG on the command line. For example: -!MESSAGE -!MESSAGE NMAKE /f "dsoframer.mak" CFG="dsoframer - Win32 Release" -!MESSAGE -!MESSAGE Possible choices for configuration are: -!MESSAGE -!MESSAGE "dsoframer - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE "dsoframer - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library") -!MESSAGE - -# Begin Project -# PROP AllowPerConfigDependencies 0 -# PROP Scc_ProjName "" -# PROP Scc_LocalPath "" -CPP=cl.exe -MTL=midl.exe -RSC=rc.exe - -!IF "$(CFG)" == "dsoframer - Win32 Release" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 0 -# PROP BASE Output_Dir "Release" -# PROP BASE Intermediate_Dir "Release" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 0 -# PROP Output_Dir "Release" -# PROP Intermediate_Dir "Release" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /G5 /Gz /Zp4 /W3 /Zi /O1 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /FD /c -# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 -# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /o "NUL" /win32 -# ADD BASE RSC /l 0x409 /d "NDEBUG" -# ADD RSC /l 0x409 /d "NDEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /machine:I386 -# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib oledlg.lib winspool.lib shell32.lib urlmon.lib /nologo /base:"0x22000000" /version:1.2 /subsystem:windows /dll /map /debug /machine:I386 /out:"Release/dsoframer.ocx" /pdbtype:con /opt:nowin98 /merge:.rdata=.text -# SUBTRACT LINK32 /pdb:none -# Begin Custom Build - Performing registration -OutDir=.\Release -TargetPath=.\Release\dsoframer.ocx -InputPath=.\Release\dsoframer.ocx -SOURCE="$(InputPath)" - -"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - regsvr32 /s /c "$(TargetPath)" - echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" - -# End Custom Build - -!ELSEIF "$(CFG)" == "dsoframer - Win32 Debug" - -# PROP BASE Use_MFC 0 -# PROP BASE Use_Debug_Libraries 1 -# PROP BASE Output_Dir "Debug" -# PROP BASE Intermediate_Dir "Debug" -# PROP BASE Target_Dir "" -# PROP Use_MFC 0 -# PROP Use_Debug_Libraries 1 -# PROP Output_Dir "Debug" -# PROP Intermediate_Dir "Debug" -# PROP Ignore_Export_Lib 0 -# PROP Target_Dir "" -# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD CPP /nologo /G6 /Zp4 /W3 /Gm /Zi /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /YX /FD /c -# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 -# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /o "NUL" /win32 -# ADD BASE RSC /l 0x409 /d "_DEBUG" -# ADD RSC /l 0x409 /d "_DEBUG" -BSC32=bscmake.exe -# ADD BASE BSC32 /nologo -# ADD BSC32 /nologo -LINK32=link.exe -# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /dll /debug /machine:I386 /pdbtype:sept -# ADD LINK32 kernel32.lib user32.lib gdi32.lib advapi32.lib ole32.lib oleaut32.lib uuid.lib comdlg32.lib oledlg.lib winspool.lib shell32.lib urlmon.lib /nologo /base:"0x22000000" /version:1.2 /subsystem:windows /dll /map /debug /machine:I386 /out:"Debug/dsoframer.ocx" /pdbtype:con -# SUBTRACT LINK32 /pdb:none -# Begin Custom Build - Performing registration -OutDir=.\Debug -TargetPath=.\Debug\dsoframer.ocx -InputPath=.\Debug\dsoframer.ocx -SOURCE="$(InputPath)" - -"$(OutDir)\regsvr32.trg" : $(SOURCE) "$(INTDIR)" "$(OUTDIR)" - regsvr32 /s /c "$(TargetPath)" - echo regsvr32 exec. time > "$(OutDir)\regsvr32.trg" - -# End Custom Build - -!ENDIF - -# Begin Target - -# Name "dsoframer - Win32 Release" -# Name "dsoframer - Win32 Debug" -# Begin Group "Source Files" - -# PROP Default_Filter "c;cpp;rc;idl" -# Begin Source File - -SOURCE=.\classfactory.cpp -# End Source File -# Begin Source File - -SOURCE=.\dsofauto.cpp -# End Source File -# Begin Source File - -SOURCE=.\dsofcontrol.cpp -# End Source File -# Begin Source File - -SOURCE=.\dsofdocobj.cpp -# End Source File -# Begin Source File - -SOURCE=.\dsofprint.cpp -# End Source File -# Begin Source File - -SOURCE=.\lib\dsoframer.idl -# ADD MTL /h "lib/dsoframerlib.h" /iid "lib/dsoframerlib.c" -# End Source File -# Begin Source File - -SOURCE=.\res\dsoframer.rc -# End Source File -# Begin Source File - -SOURCE=.\mainentry.cpp - -!IF "$(CFG)" == "dsoframer - Win32 Release" - -# ADD CPP /D "DSO_MIN_CRT_STARTUP" - -!ELSEIF "$(CFG)" == "dsoframer - Win32 Debug" - -!ENDIF - -# End Source File -# Begin Source File - -SOURCE=.\utilities.cpp -# End Source File -# End Group -# Begin Group "Header Files" - -# PROP Default_Filter "h;def" -# Begin Source File - -SOURCE=.\dsofdocobj.h -# End Source File -# Begin Source File - -SOURCE=.\dsoframer.def -# End Source File -# Begin Source File - -SOURCE=.\dsoframer.h -# End Source File -# Begin Source File - -SOURCE=.\utilities.h -# End Source File -# Begin Source File - -SOURCE=.\version.h -# End Source File -# End Group -# Begin Group "Resources" - -# PROP Default_Filter "ico;cur;tlb;bmp" -# Begin Source File - -SOURCE=.\res\dso.ico -# End Source File -# Begin Source File - -SOURCE=.\lib\dsoframer.olb -# End Source File -# Begin Source File - -SOURCE=.\res\toolbox.bmp -# End Source File -# End Group -# End Target -# End Project diff --git a/PROMS/DSOFramer/Source2005/dsoframer.dsw b/PROMS/DSOFramer/Source2005/dsoframer.dsw deleted file mode 100644 index c64fc6a9..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.dsw +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Developer Studio Workspace File, Format Version 6.00 -# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE! - -############################################################################### - -Project: "dsoframer"=.\dsoframer.dsp - Package Owner=<4> - -Package=<5> -{{{ -}}} - -Package=<4> -{{{ -}}} - -############################################################################### - -Global: - -Package=<5> -{{{ -}}} - -Package=<3> -{{{ -}}} - -############################################################################### - diff --git a/PROMS/DSOFramer/Source2005/dsoframer.h b/PROMS/DSOFramer/Source2005/dsoframer.h deleted file mode 100644 index 59eb956a..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.h +++ /dev/null @@ -1,689 +0,0 @@ -/*************************************************************************** - * DSOFRAMER.H - * - * Developer Support Office ActiveX Document Framer Control Sample - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. - * - * You have a royalty-free right to use, modify, reproduce and distribute - * this sample application, and/or any modified version, in any way you - * find useful, provided that you agree that Microsoft has no warranty, - * obligations or liability for the code or information provided herein. - * - * THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - * See the EULA.TXT file included in the KB download for full terms of use - * and restrictions. You should consult documentation on MSDN Library for - * possible updates or changes to behaviors or interfaces used in this sample. - * - ***************************************************************************/ -#ifndef DS_DSOFRAMER_H -#define DS_DSOFRAMER_H - -//////////////////////////////////////////////////////////////////// -// We compile at level 4 and disable some unnecessary warnings... -// -#pragma warning(push, 4) // Compile at level-4 warnings -#pragma warning(disable: 4100) // unreferenced formal parameter (in OLE this is common) -#pragma warning(disable: 4146) // unary minus operator applied to unsigned type, result still unsigned -#pragma warning(disable: 4268) // const static/global data initialized with compiler generated default constructor -#pragma warning(disable: 4310) // cast truncates constant value -#pragma warning(disable: 4786) // identifier was truncated in the debug information - -//////////////////////////////////////////////////////////////////// -// Compile Options For Modified Behavior... -// -#define DSO_MSDAIPP_USE_DAVONLY // Default to WebDAV protocol for open by HTTP/HTTPS -#define DSO_WORD12_PERSIST_BUG // Perform workaround for IPersistFile bug in Word 2007 - -//////////////////////////////////////////////////////////////////// -// Needed include files (both standard and custom) -// -#include -#include -#include -#include -#include - -#include "version.h" -#include "utilities.h" -#include "dsofdocobj.h" -#include ".\lib\dsoframerlib.h" -#include ".\res\resource.h" - -//////////////////////////////////////////////////////////////////// -// Global Variables -// -extern HINSTANCE v_hModule; -extern CRITICAL_SECTION v_csecThreadSynch; -extern HICON v_icoOffDocIcon; -extern ULONG v_cLocks; -extern BOOL v_fUnicodeAPI; -extern BOOL v_fWindows2KPlus; - -//////////////////////////////////////////////////////////////////// -// Custom Errors - we support a very limited set of custom error messages -// -#define DSO_E_ERR_BASE 0x80041100 -#define DSO_E_UNKNOWN 0x80041101 // "An unknown problem has occurred." -#define DSO_E_INVALIDPROGID 0x80041102 // "The ProgID/Template could not be found or is not associated with a COM server." -#define DSO_E_INVALIDSERVER 0x80041103 // "The associated COM server does not support ActiveX Document embedding." -#define DSO_E_COMMANDNOTSUPPORTED 0x80041104 // "The command is not supported by the document server." -#define DSO_E_DOCUMENTREADONLY 0x80041105 // "Unable to perform action because document was opened in read-only mode." -#define DSO_E_REQUIRESMSDAIPP 0x80041106 // "The Microsoft Internet Publishing Provider is not installed, so the URL document cannot be open for write access." -#define DSO_E_DOCUMENTNOTOPEN 0x80041107 // "No document is open to perform the operation requested." -#define DSO_E_INMODALSTATE 0x80041108 // "Cannot access document when in modal condition." -#define DSO_E_NOTBEENSAVED 0x80041109 // "Cannot Save file without a file path." -#define DSO_E_FRAMEHOOKFAILED 0x8004110A // "Unable to set frame hook for the parent window." -#define DSO_E_ERR_MAX 0x8004110B - -//////////////////////////////////////////////////////////////////// -// Custom OLE Command IDs - we use for special tasks -// -#define OLECMDID_GETDATAFORMAT 0x7001 // 28673 -#define OLECMDID_SETDATAFORMAT 0x7002 // 28674 -#define OLECMDID_LOCKSERVER 0x7003 // 28675 -#define OLECMDID_RESETFRAMEHOOK 0x7009 // 28681 -#define OLECMDID_NOTIFYACTIVE 0x700A // 28682 - -//////////////////////////////////////////////////////////////////// -// Custom Window Messages (only apply to CDsoFramerControl window proc) -// -#define DSO_WM_ASYNCH_OLECOMMAND (WM_USER + 300) -#define DSO_WM_ASYNCH_STATECHANGE (WM_USER + 301) - -#define DSO_WM_HOOK_NOTIFY_COMPACTIVE (WM_USER + 400) -#define DSO_WM_HOOK_NOTIFY_APPACTIVATE (WM_USER + 401) -#define DSO_WM_HOOK_NOTIFY_FOCUSCHANGE (WM_USER + 402) -#define DSO_WM_HOOK_NOTIFY_SYNCPAINT (WM_USER + 403) -#define DSO_WM_HOOK_NOTIFY_PALETTECHANGE (WM_USER + 404) - -// State Flags for DSO_WM_ASYNCH_STATECHANGE: -#define DSO_STATE_MODAL 1 -#define DSO_STATE_ACTIVATION 2 -#define DSO_STATE_INTERACTIVE 3 -#define DSO_STATE_RETURNFROMMODAL 4 - - -//////////////////////////////////////////////////////////////////// -// Menu Bar Items -// -#define DSO_MAX_MENUITEMS 16 -#define DSO_MAX_MENUNAME_LENGTH 32 - -#ifndef DT_HIDEPREFIX -#define DT_HIDEPREFIX 0x00100000 -#define DT_PREFIXONLY 0x00200000 -#endif - -#define SYNCPAINT_TIMER_ID 4 - - -//////////////////////////////////////////////////////////////////// -// Control Class Factory -// -class CDsoFramerClassFactory : public IClassFactory -{ -public: - CDsoFramerClassFactory(): m_cRef(0){} - ~CDsoFramerClassFactory(void){} - - // IUnknown Implementation - STDMETHODIMP QueryInterface(REFIID riid, void ** ppv); - STDMETHODIMP_(ULONG) AddRef(void); - STDMETHODIMP_(ULONG) Release(void); - - // IClassFactory Implementation - STDMETHODIMP CreateInstance(LPUNKNOWN punk, REFIID riid, void** ppv); - STDMETHODIMP LockServer(BOOL fLock); - -private: - ULONG m_cRef; // Reference count - -}; - -//////////////////////////////////////////////////////////////////// -// CDsoFramerControl -- Main Control (OCX) Object -// -// The CDsoFramerControl control is standard OLE control designed around -// the OCX94 specification. Because we plan on doing custom integration to -// act as both OLE object and OLE host, it does not use frameworks like ATL -// or MFC which would only complicate the nature of the sample. -// -// The control inherits from its automation interface, but uses nested -// classes for all OLE interfaces. This is not a requirement but does help -// to clearly seperate the tasks done by each interface and makes finding -// ref count problems easier to spot since each interface carries its own -// counter and will assert (in debug) if interface is over or under released. -// -// The control is basically a stage for the ActiveDocument embedding, and -// handles any external (user) commands. The task of actually acting as -// a DocObject host is done in the site object CDsoDocObject, which this -// class creates and uses for the embedding. -// -class CDsoFramerControl : public _FramerControl -{ -public: - CDsoFramerControl(LPUNKNOWN punk); - ~CDsoFramerControl(void); - - // IUnknown Implementation -- Always delgates to outer unknown... - STDMETHODIMP QueryInterface(REFIID riid, void ** ppv){return m_pOuterUnknown->QueryInterface(riid, ppv);} - STDMETHODIMP_(ULONG) AddRef(void){return m_pOuterUnknown->AddRef();} - STDMETHODIMP_(ULONG) Release(void){return m_pOuterUnknown->Release();} - - // IDispatch Implementation - STDMETHODIMP GetTypeInfoCount(UINT* pctinfo); - STDMETHODIMP GetTypeInfo(UINT iTInfo, LCID lcid, ITypeInfo** ppTInfo); - STDMETHODIMP GetIDsOfNames(REFIID riid, LPOLESTR* rgszNames, UINT cNames, LCID lcid, DISPID* rgDispId); - STDMETHODIMP Invoke(DISPID dispIdMember, REFIID riid, LCID lcid, WORD wFlags, DISPPARAMS* pDispParams, VARIANT* pVarResult, EXCEPINFO* pExcepInfo, UINT* puArgErr); - - // _FramerControl Implementation - STDMETHODIMP Activate(); - STDMETHODIMP get_ActiveDocument(IDispatch** ppdisp); - STDMETHODIMP CreateNew(BSTR ProgIdOrTemplate); - STDMETHODIMP Open(VARIANT Document, VARIANT ReadOnly, VARIANT ProgId, VARIANT WebUsername, VARIANT WebPassword); - STDMETHODIMP Save(VARIANT SaveAsDocument, VARIANT OverwriteExisting, VARIANT WebUsername, VARIANT WebPassword); - STDMETHODIMP _PrintOutOld(VARIANT PromptToSelectPrinter); - STDMETHODIMP Close(); - STDMETHODIMP put_Caption(BSTR bstr); - STDMETHODIMP get_Caption(BSTR* pbstr); - STDMETHODIMP put_Titlebar(VARIANT_BOOL vbool); - STDMETHODIMP get_Titlebar(VARIANT_BOOL* pbool); - STDMETHODIMP put_Toolbars(VARIANT_BOOL vbool); - STDMETHODIMP get_Toolbars(VARIANT_BOOL* pbool); - STDMETHODIMP put_ModalState(VARIANT_BOOL vbool); - STDMETHODIMP get_ModalState(VARIANT_BOOL* pbool); - STDMETHODIMP ShowDialog(dsoShowDialogType DlgType); - STDMETHODIMP put_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL vbool); - STDMETHODIMP get_EnableFileCommand(dsoFileCommandType Item, VARIANT_BOOL* pbool); - STDMETHODIMP put_BorderStyle(dsoBorderStyle style); - STDMETHODIMP get_BorderStyle(dsoBorderStyle* pstyle); - STDMETHODIMP put_BorderColor(OLE_COLOR clr); - STDMETHODIMP get_BorderColor(OLE_COLOR* pclr); - STDMETHODIMP put_BackColor(OLE_COLOR clr); - STDMETHODIMP get_BackColor(OLE_COLOR* pclr); - STDMETHODIMP put_ForeColor(OLE_COLOR clr); - STDMETHODIMP get_ForeColor(OLE_COLOR* pclr); - STDMETHODIMP put_TitlebarColor(OLE_COLOR clr); - STDMETHODIMP get_TitlebarColor(OLE_COLOR* pclr); - STDMETHODIMP put_TitlebarTextColor(OLE_COLOR clr); - STDMETHODIMP get_TitlebarTextColor(OLE_COLOR* pclr); - STDMETHODIMP ExecOleCommand(LONG OLECMDID, VARIANT Options, VARIANT* vInParam, VARIANT* vInOutParam); - STDMETHODIMP put_Menubar(VARIANT_BOOL vbool); - STDMETHODIMP get_Menubar(VARIANT_BOOL* pbool); - STDMETHODIMP put_HostName(BSTR bstr); - STDMETHODIMP get_HostName(BSTR* pbstr); - STDMETHODIMP get_DocumentFullName(BSTR* pbstr); - STDMETHODIMP PrintOut(VARIANT PromptUser, VARIANT PrinterName, VARIANT Copies, VARIANT FromPage, VARIANT ToPage, VARIANT OutputFile); - STDMETHODIMP PrintPreview(); - STDMETHODIMP PrintPreviewExit(); - STDMETHODIMP get_IsReadOnly(VARIANT_BOOL* pbool); - STDMETHODIMP get_IsDirty(VARIANT_BOOL* pbool); - STDMETHODIMP put_LockServer(VARIANT_BOOL vbool); - STDMETHODIMP get_LockServer(VARIANT_BOOL* pvbool); - STDMETHODIMP GetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT *pvResults); - STDMETHODIMP SetDataObjectContent(VARIANT ClipFormatNameOrNumber, VARIANT DataByteArray); - STDMETHODIMP put_ActivationPolicy(dsoActivationPolicy lPolicy); - STDMETHODIMP get_ActivationPolicy(dsoActivationPolicy *plPolicy); - STDMETHODIMP put_FrameHookPolicy(dsoFrameHookPolicy lPolicy); - STDMETHODIMP get_FrameHookPolicy(dsoFrameHookPolicy *plPolicy); - STDMETHODIMP put_MenuAccelerators(VARIANT_BOOL vbool); - STDMETHODIMP get_MenuAccelerators(VARIANT_BOOL* pvbool); - STDMETHODIMP put_EventsEnabled(VARIANT_BOOL vbool); - STDMETHODIMP get_EventsEnabled(VARIANT_BOOL* pvbool); - STDMETHODIMP get_DocumentName(BSTR* pbstr); - - // IInternalUnknown Implementation - BEGIN_INTERFACE_PART(InternalUnknown, IUnknown) - END_INTERFACE_PART(InternalUnknown) - - // IPersistStreamInit Implementation - BEGIN_INTERFACE_PART(PersistStreamInit, IPersistStreamInit) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP IsDirty(void); - STDMETHODIMP Load(LPSTREAM pStm); - STDMETHODIMP Save(LPSTREAM pStm, BOOL fClearDirty); - STDMETHODIMP GetSizeMax(ULARGE_INTEGER* pcbSize); - STDMETHODIMP InitNew(void); - END_INTERFACE_PART(PersistStreamInit) - - // IPersistPropertyBag Implementation - BEGIN_INTERFACE_PART(PersistPropertyBag, IPersistPropertyBag) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP InitNew(void); - STDMETHODIMP Load(IPropertyBag* pPropBag, IErrorLog* pErrorLog); - STDMETHODIMP Save(IPropertyBag* pPropBag, BOOL fClearDirty, BOOL fSaveAllProperties); - END_INTERFACE_PART(PersistPropertyBag) - - // IPersistStorage Implementation - BEGIN_INTERFACE_PART(PersistStorage, IPersistStorage) - STDMETHODIMP GetClassID(CLSID *pClassID); - STDMETHODIMP IsDirty(void); - STDMETHODIMP InitNew(LPSTORAGE pStg); - STDMETHODIMP Load(LPSTORAGE pStg); - STDMETHODIMP Save(LPSTORAGE pStg, BOOL fSameAsLoad); - STDMETHODIMP SaveCompleted(LPSTORAGE pStg); - STDMETHODIMP HandsOffStorage(void); - END_INTERFACE_PART(PersistStorage) - - // IOleObject Implementation - BEGIN_INTERFACE_PART(OleObject, IOleObject) - STDMETHODIMP SetClientSite(IOleClientSite *pClientSite); - STDMETHODIMP GetClientSite(IOleClientSite **ppClientSite); - STDMETHODIMP SetHostNames(LPCOLESTR szContainerApp, LPCOLESTR szContainerObj); - STDMETHODIMP Close(DWORD dwSaveOption); - STDMETHODIMP SetMoniker(DWORD dwWhichMoniker, IMoniker *pmk); - STDMETHODIMP GetMoniker(DWORD dwAssign, DWORD dwWhichMoniker, IMoniker **ppmk); - STDMETHODIMP InitFromData(IDataObject *pDataObject, BOOL fCreation, DWORD dwReserved); - STDMETHODIMP GetClipboardData(DWORD dwReserved, IDataObject **ppDataObject); - STDMETHODIMP DoVerb(LONG iVerb, LPMSG lpmsg, IOleClientSite *pActiveSite, LONG lindex, HWND hwndParent, LPCRECT lprcPosRect); - STDMETHODIMP EnumVerbs(IEnumOLEVERB **ppEnumOleVerb); - STDMETHODIMP Update(); - STDMETHODIMP IsUpToDate(); - STDMETHODIMP GetUserClassID(CLSID *pClsid); - STDMETHODIMP GetUserType(DWORD dwFormOfType, LPOLESTR *pszUserType); - STDMETHODIMP SetExtent(DWORD dwDrawAspect, SIZEL *psizel); - STDMETHODIMP GetExtent(DWORD dwDrawAspect, SIZEL *psizel); - STDMETHODIMP Advise(IAdviseSink *pAdvSink, DWORD *pdwConnection); - STDMETHODIMP Unadvise(DWORD dwConnection); - STDMETHODIMP EnumAdvise(IEnumSTATDATA **ppenumAdvise); - STDMETHODIMP GetMiscStatus(DWORD dwAspect, DWORD *pdwStatus); - STDMETHODIMP SetColorScheme(LOGPALETTE *pLogpal); - END_INTERFACE_PART(OleObject) - - // IOleControl Implementation - BEGIN_INTERFACE_PART(OleControl, IOleControl) - STDMETHODIMP GetControlInfo(CONTROLINFO* pCI); - STDMETHODIMP OnMnemonic(LPMSG pMsg); - STDMETHODIMP OnAmbientPropertyChange(DISPID dispID); - STDMETHODIMP FreezeEvents(BOOL bFreeze); - END_INTERFACE_PART(OleControl) - - // IOleInplaceObject Implementation - BEGIN_INTERFACE_PART(OleInplaceObject, IOleInPlaceObject) - STDMETHODIMP GetWindow(HWND *phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP InPlaceDeactivate(); - STDMETHODIMP UIDeactivate(); - STDMETHODIMP SetObjectRects(LPCRECT lprcPosRect, LPCRECT lprcClipRect); - STDMETHODIMP ReactivateAndUndo(); - END_INTERFACE_PART(OleInplaceObject) - - // IOleInplaceActiveObject Implementation - BEGIN_INTERFACE_PART(OleInplaceActiveObject, IOleInPlaceActiveObject) - STDMETHODIMP GetWindow(HWND *phwnd); - STDMETHODIMP ContextSensitiveHelp(BOOL fEnterMode); - STDMETHODIMP TranslateAccelerator(LPMSG lpmsg); - STDMETHODIMP OnFrameWindowActivate(BOOL fActivate); - STDMETHODIMP OnDocWindowActivate(BOOL fActivate); - STDMETHODIMP ResizeBorder(LPCRECT prcBorder, IOleInPlaceUIWindow *pUIWindow, BOOL fFrameWindow); - STDMETHODIMP EnableModeless(BOOL fEnable); - END_INTERFACE_PART(OleInplaceActiveObject) - - // IViewObjectEx Implementation - BEGIN_INTERFACE_PART(ViewObjectEx, IViewObjectEx) - STDMETHODIMP Draw(DWORD dwDrawAspect, LONG lIndex, void *pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDevice, HDC hdcDraw, LPCRECTL prcBounds, LPCRECTL prcWBounds, BOOL (__stdcall *pfnContinue)(DWORD dwContinue), DWORD dwContinue); - STDMETHODIMP GetColorSet(DWORD dwAspect, LONG lindex, void* pvAspect, DVTARGETDEVICE *ptd, HDC hicTargetDev, LOGPALETTE** ppColorSet); - STDMETHODIMP Freeze(DWORD dwAspect, LONG lindex, void* pvAspect, DWORD* pdwFreeze); - STDMETHODIMP Unfreeze(DWORD dwFreeze); - STDMETHODIMP SetAdvise(DWORD dwAspect, DWORD advf, IAdviseSink* pAdviseSink); - STDMETHODIMP GetAdvise(DWORD* pdwAspect, DWORD* padvf, IAdviseSink** ppAdviseSink); - STDMETHODIMP GetExtent(DWORD dwDrawAspect, LONG lindex, DVTARGETDEVICE *ptd, LPSIZEL psizel); - STDMETHODIMP GetRect(DWORD dwAspect, LPRECTL pRect); - STDMETHODIMP GetViewStatus(DWORD* pdwStatus); - STDMETHODIMP QueryHitPoint(DWORD dwAspect, LPCRECT pRectBounds, POINT ptlLoc, LONG lCloseHint, DWORD *pHitResult); - STDMETHODIMP QueryHitRect(DWORD dwAspect, LPCRECT pRectBounds, LPCRECT pRectLoc, LONG lCloseHint, DWORD *pHitResult); - STDMETHODIMP GetNaturalExtent(DWORD dwAspect, LONG lindex, DVTARGETDEVICE *ptd, HDC hicTargetDev, DVEXTENTINFO *pExtentInfo, LPSIZEL pSizel); - END_INTERFACE_PART(ViewObjectEx) - - // IDataObject Implementation - BEGIN_INTERFACE_PART(DataObject, IDataObject) - STDMETHODIMP GetData(FORMATETC *pfmtc, STGMEDIUM *pstgm); - STDMETHODIMP GetDataHere(FORMATETC *pfmtc, STGMEDIUM *pstgm); - STDMETHODIMP QueryGetData(FORMATETC *pfmtc); - STDMETHODIMP GetCanonicalFormatEtc(FORMATETC * pfmtcIn, FORMATETC * pfmtcOut); - STDMETHODIMP SetData(FORMATETC *pfmtc, STGMEDIUM *pstgm, BOOL fRelease); - STDMETHODIMP EnumFormatEtc(DWORD dwDirection, IEnumFORMATETC **ppenum); - STDMETHODIMP DAdvise(FORMATETC *pfmtc, DWORD advf, IAdviseSink *psink, DWORD *pdwConnection); - STDMETHODIMP DUnadvise(DWORD dwConnection); - STDMETHODIMP EnumDAdvise(IEnumSTATDATA **ppenum); - END_INTERFACE_PART(DataObject) - - // IProvideClassInfo Implementation - BEGIN_INTERFACE_PART(ProvideClassInfo, IProvideClassInfo) - STDMETHODIMP GetClassInfo(ITypeInfo** ppTI); - END_INTERFACE_PART(ProvideClassInfo) - - // IConnectionPointContainer Implementation - BEGIN_INTERFACE_PART(ConnectionPointContainer, IConnectionPointContainer) - STDMETHODIMP EnumConnectionPoints(IEnumConnectionPoints **ppEnum); - STDMETHODIMP FindConnectionPoint(REFIID riid, IConnectionPoint **ppCP); - END_INTERFACE_PART(ConnectionPointContainer) - - // IEnumConnectionPoints Implementation - BEGIN_INTERFACE_PART(EnumConnectionPoints, IEnumConnectionPoints) - STDMETHODIMP Next(ULONG cConnections, IConnectionPoint **rgpcn, ULONG *pcFetched); - STDMETHODIMP Skip(ULONG cConnections); - STDMETHODIMP Reset(void); - STDMETHODIMP Clone(IEnumConnectionPoints **ppEnum); - END_INTERFACE_PART(EnumConnectionPoints) - - // IConnectionPoint Implementation - BEGIN_INTERFACE_PART(ConnectionPoint, IConnectionPoint) - STDMETHODIMP GetConnectionInterface(IID *pIID); - STDMETHODIMP GetConnectionPointContainer(IConnectionPointContainer **ppCPC); - STDMETHODIMP Advise(IUnknown *pUnk, DWORD *pdwCookie); - STDMETHODIMP Unadvise(DWORD dwCookie); - STDMETHODIMP EnumConnections(IEnumConnections **ppEnum); - END_INTERFACE_PART(ConnectionPoint) - - // IOleCommandTarget Implementation - BEGIN_INTERFACE_PART(OleCommandTarget , IOleCommandTarget) - STDMETHODIMP QueryStatus(const GUID *pguidCmdGroup, ULONG cCmds, OLECMD prgCmds[], OLECMDTEXT *pCmdText); - STDMETHODIMP Exec(const GUID *pguidCmdGroup, DWORD nCmdID, DWORD nCmdexecopt, VARIANTARG *pvaIn, VARIANTARG *pvaOut); - END_INTERFACE_PART(OleCommandTarget) - - // ISupportErrorInfo Implementation - BEGIN_INTERFACE_PART(SupportErrorInfo, ISupportErrorInfo) - STDMETHODIMP InterfaceSupportsErrorInfo(REFIID riid); - END_INTERFACE_PART(SupportErrorInfo) - - // IObjectSafety Implementation - BEGIN_INTERFACE_PART(ObjectSafety, IObjectSafety) - STDMETHODIMP GetInterfaceSafetyOptions(REFIID riid, DWORD *pdwSupportedOptions,DWORD *pdwEnabledOptions); - STDMETHODIMP SetInterfaceSafetyOptions(REFIID riid, DWORD dwOptionSetMask, DWORD dwEnabledOptions); - END_INTERFACE_PART(ObjectSafety) - - // IDsoDocObjectSite Implementation (for DocObject Callbacks to control) - BEGIN_INTERFACE_PART(DsoDocObjectSite, IDsoDocObjectSite) - STDMETHODIMP QueryService(REFGUID guidService, REFIID riid, void **ppv); - STDMETHODIMP GetWindow(HWND* phWnd); - STDMETHODIMP GetBorder(LPRECT prcBorder); - STDMETHODIMP GetHostName(LPWSTR *ppwszHostName); - STDMETHODIMP SysMenuCommand(UINT uiCharCode); - STDMETHODIMP SetStatusText(LPCOLESTR pszText); - END_INTERFACE_PART(DsoDocObjectSite) - - STDMETHODIMP InitializeNewInstance(); - - STDMETHODIMP InPlaceActivate(LONG lVerb); - STDMETHODIMP UIActivate(BOOL fForceUIActive); - STDMETHODIMP_(void) SetInPlaceVisible(BOOL fShow); - STDMETHODIMP_(void) UpdateModalState(BOOL fModeless, BOOL fNotifyIPObject); - STDMETHODIMP_(void) UpdateInteractiveState(BOOL fActive); - STDMETHODIMP_(void) EnableDropFile(BOOL fEnable); - - STDMETHODIMP_(void) OnDraw(DWORD dvAspect, HDC hdcDraw, LPRECT prcBounds, LPRECT prcWBounds, HDC hicTargetDev, BOOL fOptimize); - STDMETHODIMP_(void) OnDestroyWindow(); - STDMETHODIMP_(void) OnResize(); - STDMETHODIMP_(void) OnMouseMove(UINT x, UINT y); - STDMETHODIMP_(void) OnButtonDown(UINT x, UINT y); - STDMETHODIMP_(void) OnMenuMessage(UINT msg, WPARAM wParam, LPARAM lParam); - STDMETHODIMP_(void) OnToolbarAction(DWORD cmd); - STDMETHODIMP_(void) OnDropFile(HDROP hdrpFile); - STDMETHODIMP_(void) OnTimer(UINT id); - - STDMETHODIMP_(void) OnForegroundCompChange(BOOL fCompActive); - STDMETHODIMP_(void) OnAppActivationChange(BOOL fActive, DWORD dwThreadID); - STDMETHODIMP_(void) OnComponentActivationChange(BOOL fActivate); - STDMETHODIMP_(void) OnCtrlFocusChange(BOOL fCtlGotFocus, HWND hFocusWnd); - STDMETHODIMP_(void) OnUIFocusChange(BOOL fUIActive); - - STDMETHODIMP_(void) OnPaletteChanged(HWND hwndPalChg); - STDMETHODIMP_(void) OnSyncPaint(); - STDMETHODIMP_(void) OnWindowEnable(BOOL fEnable){TRACE1("CDsoFramerControl::OnWindowEnable(%d)\n", fEnable);} - STDMETHODIMP_(BOOL) OnSysCommandMenu(CHAR ch); - - STDMETHODIMP_(HMENU) GetActivePopupMenu(); - STDMETHODIMP_(BOOL) FAlertUser(HRESULT hr, LPWSTR pwsFileName); - STDMETHODIMP_(BOOL) FRunningInDesignMode(); - STDMETHODIMP DoDialogAction(dsoShowDialogType item); - - STDMETHODIMP_(void) RaiseActivationEvent(BOOL fActive); - - STDMETHODIMP ProvideErrorInfo(HRESULT hres); - STDMETHODIMP RaiseAutomationEvent(DISPID did, ULONG cargs, VARIANT *pvtargs); - - STDMETHODIMP SetTempServerLock(BOOL fLock); - STDMETHODIMP ResetFrameHook(HWND hwndFrameWindow); - - // Some inline methods are provided for common tasks such as site notification - // or calculation of draw size based on user selection of tools and border style. - - void __fastcall ViewChanged() - { - if (m_pDataAdviseHolder) // Send data change notification. - m_pDataAdviseHolder->SendOnDataChange((IDataObject*)&m_xDataObject, NULL, 0); - - if (m_pViewAdviseSink) // Send the view change notification.... - { - m_pViewAdviseSink->OnViewChange(DVASPECT_CONTENT, -1); - if (m_fViewAdviseOnlyOnce) // If they asked to be advised once, kill the connection - m_xViewObjectEx.SetAdvise(DVASPECT_CONTENT, 0, NULL); - } - InvalidateRect(m_hwnd, NULL, TRUE); // Ensure a full repaint... - } - - void __fastcall GetSizeRectAfterBorder(LPRECT lprcx, LPRECT lprc) - { - if (lprcx) CopyRect(lprc, lprcx); - else SetRect(lprc, 0, 0, m_Size.cx, m_Size.cy); - if (m_fBorderStyle) InflateRect(lprc, -(4-m_fBorderStyle), -(4-m_fBorderStyle)); - } - - void __fastcall GetSizeRectAfterTitlebar(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterBorder(lprcx, lprc); - if (m_fShowTitlebar) lprc->top += 21; - } - - void __fastcall GetSizeRectForMenuBar(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterTitlebar(lprcx, lprc); - lprc->bottom = lprc->top + 24; - } - - void __fastcall GetSizeRectForDocument(LPRECT lprcx, LPRECT lprc) - { - GetSizeRectAfterTitlebar(lprcx, lprc); - if (m_fShowMenuBar) lprc->top += 24; - if (lprc->top > lprc->bottom) lprc->top = lprc->bottom; - } - - - void __fastcall RedrawCaption() - { - RECT rcT; - if ((m_hwnd) && (m_fShowTitlebar)) - { GetClientRect(m_hwnd, &rcT); rcT.bottom = 21; - InvalidateRect(m_hwnd, &rcT, FALSE); - } - if ((m_hwnd) && (m_fShowMenuBar)) - { GetSizeRectForMenuBar(NULL, &rcT); - InvalidateRect(m_hwnd, &rcT, FALSE); - } - } - - BOOL __fastcall FUseFrameHook(){return (m_lHookPolicy != dsoDisableHook);}; - BOOL __fastcall FDelayFrameHookSet(){return (m_lHookPolicy == dsoSetOnFirstOpen);}; - - BOOL __fastcall FDrawBitmapOnAppDeactive(){return (!(m_lActivationPolicy & dsoKeepUIActiveOnAppDeactive));} - BOOL __fastcall FChangeObjActiveOnFocusChange(){return (m_lActivationPolicy & dsoCompDeactivateOnLostFocus);}; - BOOL __fastcall FIPDeactivateOnCompChange(){return (m_lActivationPolicy & dsoIPDeactivateOnCompDeactive);}; - - // The control window proceedure is handled through static class method. - static STDMETHODIMP_(LRESULT) ControlWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - - // Force redaw of all child windows... - STDMETHODIMP_(BOOL) InvalidateAllChildWindows(HWND hwnd); - static STDMETHODIMP_(BOOL) InvalidateAllChildWindowsCallback(HWND hwnd, LPARAM lParam); - - // The variables for the control are kept private but accessible to the - // nested classes for each interface. -private: - - ULONG m_cRef; // Reference count - IUnknown *m_pOuterUnknown; // Outer IUnknown (points to m_xInternalUnknown if not agg) - ITypeInfo *m_ptiDispType; // ITypeInfo Pointer (IDispatch Impl) - EXCEPINFO *m_pDispExcep; // EXCEPINFO Pointer (IDispatch Impl) - - HWND m_hwnd; // our window - HWND m_hwndParent; // immediate parent window - SIZEL m_Size; // the size of this control - RECT m_rcLocation; // where we at - - IOleClientSite *m_pClientSite; // active client site of host containter - IOleControlSite *m_pControlSite; // control site - IOleInPlaceSite *m_pInPlaceSite; // inplace site - IOleInPlaceFrame *m_pInPlaceFrame; // inplace frame - IOleInPlaceUIWindow *m_pInPlaceUIWindow; // inplace ui window - - IAdviseSink *m_pViewAdviseSink; // advise sink for view (only 1 allowed) - IOleAdviseHolder *m_pOleAdviseHolder; // OLE advise holder (for oleobject sinks) - IDataAdviseHolder *m_pDataAdviseHolder; // OLE data advise holder (for dataobject sink) - IDispatch *m_dispEvents; // event sink (we only support 1 at a time) - IStorage *m_pOleStorage; // IStorage for OLE hosts. - - CDsoDocObject *m_pDocObjFrame; // The Embedding Class - CDsoDocObject *m_pServerLock; // Optional Server Lock for out-of-proc DocObject - - OLE_COLOR m_clrBorderColor; // Control Colors - OLE_COLOR m_clrBackColor; // " - OLE_COLOR m_clrForeColor; // " - OLE_COLOR m_clrTBarColor; // " - OLE_COLOR m_clrTBarTextColor; // " - - BSTR m_bstrCustomCaption; // A custom caption (if provided) - HMENU m_hmenuFilePopup; // The File menu popup - WORD m_wFileMenuFlags; // Bitflags of enabled file menu items. - WORD m_wSelMenuItem; // Which item (if any) is selected - WORD m_cMenuItems; // Count of items on menu bar - RECT m_rgrcMenuItems[DSO_MAX_MENUITEMS]; // Menu bar items - CHAR m_rgchMenuAccel[DSO_MAX_MENUITEMS]; // Menu bar accelerators - LPWSTR m_pwszHostName; // Custom name for SetHostNames - - class CDsoFrameHookManager* m_pHookManager; // Frame Window Hook Manager Class - LONG m_lHookPolicy; // Policy on how to use frame hook for this host. - LONG m_lActivationPolicy; // Policy on activation behavior for comp focus - HBITMAP m_hbmDeactive; // Bitmap used for IPDeactiveOnXXX policies - UINT m_uiSyncPaint; // Sync paint counter for draw issues with UIDeactivateOnXXX - - unsigned int m_fDirty:1; // does the control need to be resaved? - unsigned int m_fInPlaceActive:1; // are we in place active or not? - unsigned int m_fInPlaceVisible:1; // we are in place visible or not? - unsigned int m_fUIActive:1; // are we UI active or not. - unsigned int m_fHasFocus:1; // do we have current focus. - unsigned int m_fViewAdvisePrimeFirst: 1;// for IViewobject2::setadvise - unsigned int m_fViewAdviseOnlyOnce: 1; // for IViewobject2::setadvise - unsigned int m_fUsingWindowRgn:1; // for SetObjectRects and clipping - unsigned int m_fFreezeEvents:1; // should events be frozen? - unsigned int m_fDesignMode:1; // are we in design mode? - unsigned int m_fModeFlagValid:1; // has mode changed since last check? - unsigned int m_fBorderStyle:2; // the border style - unsigned int m_fShowTitlebar:1; // should we show titlebar? - unsigned int m_fShowToolbars:1; // should we show toolbars? - unsigned int m_fModalState:1; // are we modal? - unsigned int m_fObjectMenu:1; // are we over obj menu item? - unsigned int m_fConCntDone:1; // for enum connectpts - unsigned int m_fAppActive:1; // is the app active? - unsigned int m_fComponentActive:1; // is the component active? - unsigned int m_fShowMenuBar:1; // should we show menubar? - unsigned int m_fInDocumentLoad:1; // set when loading file - unsigned int m_fNoInteractive:1; // set when we don't allow interaction with docobj - unsigned int m_fShowMenuPrev:1; // were menus visible before loss of interactivity? - unsigned int m_fShowToolsPrev:1; // were toolbars visible before loss of interactivity? - unsigned int m_fSyncPaintTimer:1; // is syncpaint timer running? - unsigned int m_fInControlActivate:1; // is currently in activation call? - unsigned int m_fInFocusChange:1; // are we in a focus change? - unsigned int m_fActivateOnStatus:1; // we need to activate on change of status - unsigned int m_fDisableMenuAccel:1; // using menu accelerators - unsigned int m_fBkgrdPaintTimer:1; // using menu accelerators - -}; - - -//////////////////////////////////////////////////////////////////// -// CDsoFrameWindowHook -- Frame Window Hook Class -// -// Used by the control to allow for proper host notification of focus -// and activation events occurring at top-level window frame. Because -// this DocObject host is an OCX, we don't own these notifications and -// have to "steal" them from our parent using a subclass. -// -// IMPORTANT: Since the parent frame may exist on a separate thread, this -// class does nothing but the hook. The code to notify the active component -// is in a separate global class that is shared by all threads. -// -class CDsoFrameWindowHook -{ -public: - CDsoFrameWindowHook(){ODS("CDsoFrameWindowHook created\n");m_cHookCount=0;m_hwndTopLevelHost=NULL;m_pfnOrigWndProc=NULL;m_fHostUnicodeWindow=FALSE;} - ~CDsoFrameWindowHook(){ODS("CDsoFrameWindowHook deleted\n");} - - static STDMETHODIMP_(CDsoFrameWindowHook*) AttachToFrameWindow(HWND hwndParent); - STDMETHODIMP Detach(); - - static STDMETHODIMP_(CDsoFrameWindowHook*) GetHookFromWindow(HWND hwnd); - inline STDMETHODIMP_(void) AddRef(){InterlockedIncrement((LONG*)&m_cHookCount);} - - static STDMETHODIMP_(LRESULT) - HostWindowProcHook(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); - -protected: - DWORD m_cHookCount; - HWND m_hwndTopLevelHost; // Top-level host window (hooked) - WNDPROC m_pfnOrigWndProc; - BOOL m_fHostUnicodeWindow; -}; - -// THE MAX NUMBER OF DSOFRAMER CONTROLS PER PROCESS -#define DSOF_MAX_CONTROLS 20 - -//////////////////////////////////////////////////////////////////// -// CDsoFrameHookManager -- Hook Manager Class -// -// Used to keep track of which control is active and forward notifications -// to it using window messages (to cross thread boundaries). -// -class CDsoFrameHookManager -{ -public: - CDsoFrameHookManager(){ODS("CDsoFrameHookManager created\n"); m_fAppActive=TRUE; m_idxActive=DSOF_MAX_CONTROLS; m_cComponents=0;} - ~CDsoFrameHookManager(){ODS("CDsoFrameHookManager deleted\n");} - - static STDMETHODIMP_(CDsoFrameHookManager*) - RegisterFramerControl(HWND hwndParent, HWND hwndControl); - - STDMETHODIMP AddComponent(HWND hwndParent, HWND hwndControl); - STDMETHODIMP DetachComponent(HWND hwndControl); - STDMETHODIMP SetActiveComponent(HWND hwndControl); - STDMETHODIMP OnComponentNotify(DWORD msg, WPARAM wParam, LPARAM lParam); - - inline STDMETHODIMP_(HWND) - GetActiveComponentWindow(){return m_pComponents[m_idxActive].hwndControl;} - - inline STDMETHODIMP_(CDsoFrameWindowHook*) - GetActiveComponentFrame(){return m_pComponents[m_idxActive].phookFrame;} - - STDMETHODIMP_(BOOL) SendNotifyMessage(HWND hwnd, DWORD msg, WPARAM wParam, LPARAM lParam); - -protected: - BOOL m_fAppActive; - DWORD m_idxActive; - DWORD m_cComponents; - struct FHOOK_COMPONENTS - { - HWND hwndControl; - CDsoFrameWindowHook *phookFrame; - } m_pComponents[DSOF_MAX_CONTROLS]; -}; - -#endif //DS_DSOFRAMER_H \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsoframer.sln b/PROMS/DSOFramer/Source2005/dsoframer.sln deleted file mode 100644 index 2c94c084..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.sln +++ /dev/null @@ -1,69 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsoframer", "dsoframer.vcproj", "{005801E1-A867-4CBB-995F-BA2EF4360BDF}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Any CPU.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.Build.0 = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.Build.0 = Release|Win32 - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Win32.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Win32.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Win32.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Win32.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Win32.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Win32.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Win32.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Win32.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/DSOFramer/Source2005/dsoframer.sln.bak b/PROMS/DSOFramer/Source2005/dsoframer.sln.bak deleted file mode 100644 index 02fbc1ed..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.sln.bak +++ /dev/null @@ -1,77 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsoframer", "dsoframer.vcproj", "{005801E1-A867-4CBB-995F-BA2EF4360BDF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SampleCSharp", "..\SampleCSharp\SampleCSharp.csproj", "{E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestC1DockingTab", "..\TestC1DockingTab\TestC1DockingTab.csproj", "{D066A5C4-72B8-45F8-A117-B967019F41AE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetBarDockable", "..\DotNetBarDockable\DotNetBarDockable.csproj", "{96DC8B48-A4E2-4826-A182-BE112B628B50}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DotNetBarControl", "..\DotNetBarControl\DotNetBarControl.csproj", "{9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Any CPU.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Mixed Platforms.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug|Win32.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Any CPU.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Mixed Platforms.Build.0 = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release|Win32.Build.0 = Release|Win32 - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Debug|Win32.ActiveCfg = Debug|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Any CPU.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {E7C7BC82-10A6-459B-8D48-9CE1C070E9FD}.Release|Win32.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Debug|Win32.ActiveCfg = Debug|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Any CPU.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D066A5C4-72B8-45F8-A117-B967019F41AE}.Release|Win32.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Any CPU.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Debug|Win32.ActiveCfg = Debug|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Any CPU.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {96DC8B48-A4E2-4826-A182-BE112B628B50}.Release|Win32.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Debug|Win32.ActiveCfg = Debug|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Any CPU.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {9939DC3D-AFB6-4B0D-813A-3EBE3FF7249D}.Release|Win32.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/DSOFramer/Source2005/dsoframer.sln.old b/PROMS/DSOFramer/Source2005/dsoframer.sln.old deleted file mode 100644 index 2996d403..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.sln.old +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "dsoframer", "dsoframer.vcproj", "{005801E1-A867-4CBB-995F-BA2EF4360BDF}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug.ActiveCfg = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Debug.Build.0 = Debug|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release.ActiveCfg = Release|Win32 - {005801E1-A867-4CBB-995F-BA2EF4360BDF}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/DSOFramer/Source2005/dsoframer.vcproj b/PROMS/DSOFramer/Source2005/dsoframer.vcproj deleted file mode 100644 index e933b00d..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.vcproj +++ /dev/null @@ -1,470 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/DSOFramer/Source2005/dsoframer.vcproj.7.10.old b/PROMS/DSOFramer/Source2005/dsoframer.vcproj.7.10.old deleted file mode 100644 index 3fa47abc..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.vcproj.7.10.old +++ /dev/null @@ -1,360 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/DSOFramer/Source2005/dsoframer.vcproj.RHMDESKTOP.Rich Mark.user b/PROMS/DSOFramer/Source2005/dsoframer.vcproj.RHMDESKTOP.Rich Mark.user deleted file mode 100644 index d2e6cf73..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.vcproj.RHMDESKTOP.Rich Mark.user +++ /dev/null @@ -1,65 +0,0 @@ - - - - - - - - - - - diff --git a/PROMS/DSOFramer/Source2005/dsoframer.vcxproj b/PROMS/DSOFramer/Source2005/dsoframer.vcxproj deleted file mode 100644 index 93db35ac..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.vcxproj +++ /dev/null @@ -1,235 +0,0 @@ - - - - - Debug - Win32 - - - Release - Win32 - - - - {005801E1-A867-4CBB-995F-BA2EF4360BDF} - 10.0.19041.0 - - - - DynamicLibrary - v142 - false - - - DynamicLibrary - v142 - false - - - - - - - - - - - - - - - <_ProjectFileVersion>12.0.30501.0 - - - .\Debug\ - .\Debug\ - false - - - .\Release\ - .\Release\ - false - - - - Performing registration - regsvr32 /s /c "$(TargetPath)" -echo regsvr32 exec. time > "$(OutDir)regsvr32.trg" - - $(OutDir)regsvr32.trg;%(Outputs) - - - _DEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Debug/dsoframer.tlb - - - - Disabled - WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) - MultiThreadedDebug - 4Bytes - - .\Debug/dsoframer.pch - .\Debug/ - .\Debug/ - .\Debug/ - Level3 - true - ProgramDatabase - - - _DEBUG;%(PreprocessorDefinitions) - 0x0409 - - - oledlg.lib;urlmon.lib;%(AdditionalDependencies) - Debug/dsoframer.ocx - 1.2 - true - .\dsoframer.def - true - .\Debug/dsoframer.pdb - true - .\Debug/dsoframer.map - Windows - - 0x22000000 - .\Debug/dsoframer.lib - MachineX86 - - - - - Performing registration - regsvr32 /s /c "$(TargetPath)" -echo regsvr32 exec. time > "$(OutDir)regsvr32.trg" - - $(OutDir)regsvr32.trg;%(Outputs) - - - NDEBUG;%(PreprocessorDefinitions) - true - true - Win32 - .\Release/dsoframer.tlb - - - - MinSpace - OnlyExplicitInline - Size - WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) - true - MultiThreaded - 4Bytes - true - .\Release/dsoframer.pch - .\Release/ - .\Release/ - .\Release/ - Level3 - true - ProgramDatabase - StdCall - - - NDEBUG;%(PreprocessorDefinitions) - 0x0409 - - - oledlg.lib;urlmon.lib;%(AdditionalDependencies) - Release/dsoframer.ocx - 1.2 - true - .\dsoframer.def - true - .\Release/dsoframer.pdb - true - .\Release/dsoframer.map - Windows - 0x22000000 - true - .\Release/dsoframer.lib - .rdata=.text - MachineX86 - - - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - Disabled - WIN32;_DEBUG;_WINDOWS - MinSpace - WIN32;NDEBUG;_WINDOWS - - - - - .\lib\dsoframerlib.h - - - .\lib\dsoframerlib.c - - - - - res;$(OUTDIR);%(AdditionalIncludeDirectories) - res;$(OUTDIR);%(AdditionalIncludeDirectories) - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/dsoframer.vcxproj.filters b/PROMS/DSOFramer/Source2005/dsoframer.vcxproj.filters deleted file mode 100644 index 6019d794..00000000 --- a/PROMS/DSOFramer/Source2005/dsoframer.vcxproj.filters +++ /dev/null @@ -1,80 +0,0 @@ - - - - - {bdfc3b0a-cabf-4124-953b-4729b929e053} - c;cpp;rc;idl - - - {6016a852-0b50-45a4-b42f-6da4fa81584f} - h;def - - - {10808205-29e0-458c-b830-e7849723134d} - ico;cur;tlb;bmp - - - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - Source Files - - - - - Source Files - - - - - Source Files - - - - - Header Files - - - Header Files - - - Header Files - - - Header Files - - - - - Header Files - - - Resources - - - - - Resources - - - Resources - - - \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/ipprevw.h b/PROMS/DSOFramer/Source2005/ipprevw.h deleted file mode 100644 index 22ace9fe..00000000 --- a/PROMS/DSOFramer/Source2005/ipprevw.h +++ /dev/null @@ -1,88 +0,0 @@ -/*************************************************************************** - * IPPREVIEW.H - * - * DSOFramer: IOleInplacePrintPreview/IOlePreviewCallback - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef __IPPREVIEW_H -#define __IPPREVIEW_H - -//////////////////////////////////////////////////////////////////////// -// -// IOlePreviewCallback -// -// Implemented by host to receive notifaction messages -// from ip object while displaying a print preview. -// -DEFINE_GUID(IID_IOlePreviewCallback, 0xB722BCD5, 0x4E68, 0x101B, 0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70); - -#undef INTERFACE -#define INTERFACE IOlePreviewCallback -DECLARE_INTERFACE_(IOlePreviewCallback, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - // IUnknown methods - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - // IOlePreviewCallback methods - STDMETHOD(Notify)(THIS_ DWORD wStatus, LONG nLastPage, LPOLESTR pwszPreviewStatus) PURE; -}; - -#define NOTIFY_FINISHED 1 -#define NOTIFY_BUSY 2 -#define NOTIFY_IDLE 4 -#define NOTIFY_DISABLERESIZE 8 -#define NOTIFY_QUERYCLOSEPREVIEW 16 -#define NOTIFY_FORCECLOSEPREVIEW 32 -#define NOTIFY_UIACTIVE 64 -#define NOTIFY_UNABLETOPREVIEW 128 - -//////////////////////////////////////////////////////////////////////// -// -// IOleInplacePrintPreview -// -// Implemented by server to start/stop print preview. Hosts should -// call QueryStatus to make sure server is able to enter preview mode -// before calling StartPrintPreview. -// -DEFINE_GUID(IID_IOleInplacePrintPreview, 0xB722BCD4, 0x4E68, 0x101B, 0xA2, 0xBC, 0x00, 0xAA, 0x00, 0x40, 0x47, 0x70); - -#undef INTERFACE -#define INTERFACE IOleInplacePrintPreview -DECLARE_INTERFACE_(IOleInplacePrintPreview, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - // IUnknown methods - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - // IOleInplacePrintPreview methods - STDMETHOD(StartPrintPreview)(THIS_ DWORD grfFlags, DVTARGETDEVICE *ptd, IOlePreviewCallback *ppCallback, LONG nFirstPage) PURE; - STDMETHOD(EndPrintPreview)(THIS_ BOOL fForceClose) PURE; - STDMETHOD(QueryStatus)(THIS_ void) PURE; -}; - -#define PREVIEWFLAG_MAYBOTHERUSER 1 -#define PREVIEWFLAG_PROMPTUSER 2 -#define PREVIEWFLAG_USERMAYCHANGEPRINTER 4 -#define PREVIEWFLAG_RECOMPOSETODEVICE 8 - - -#endif //__IPPREVIEW_H diff --git a/PROMS/DSOFramer/Source2005/mainentry.cpp b/PROMS/DSOFramer/Source2005/mainentry.cpp deleted file mode 100644 index ef36e7e1..00000000 --- a/PROMS/DSOFramer/Source2005/mainentry.cpp +++ /dev/null @@ -1,318 +0,0 @@ -/*************************************************************************** - * MAINENTRY.CPP - * - * Main DLL Entry and Required COM Entry Points. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#define INITGUID // Init the GUIDS for the control... -#include "dsoframer.h" - -HINSTANCE v_hModule = NULL; // DLL module handle -HANDLE v_hPrivateHeap = NULL; // Private Memory Heap -ULONG v_cLocks = 0; // Count of server locks -HICON v_icoOffDocIcon = NULL; // Small office icon (for caption bar) -BOOL v_fUnicodeAPI = FALSE; // Flag to determine if we should us Unicode API -BOOL v_fWindows2KPlus = FALSE; -CRITICAL_SECTION v_csecThreadSynch; - -//////////////////////////////////////////////////////////////////////// -// DllMain -- OCX Main Entry -// -// -extern "C" BOOL APIENTRY DllMain(HINSTANCE hDllHandle, DWORD dwReason, LPVOID /*lpReserved*/) -{ - switch (dwReason) - { - case DLL_PROCESS_ATTACH: - v_hModule = hDllHandle; - v_hPrivateHeap = HeapCreate(0, 0x1000, 0); - v_icoOffDocIcon = (HICON)LoadImage(hDllHandle, MAKEINTRESOURCE(IDI_SMALLOFFDOC), IMAGE_ICON, 16, 16, 0); - { - DWORD dwVersion = GetVersion(); - v_fUnicodeAPI = ((dwVersion & 0x80000000) == 0); - v_fWindows2KPlus = ((v_fUnicodeAPI) && (LOBYTE(LOWORD(dwVersion)) > 4)); - } - InitializeCriticalSection(&v_csecThreadSynch); - DisableThreadLibraryCalls(hDllHandle); - break; - - case DLL_PROCESS_DETACH: - if (v_icoOffDocIcon) DeleteObject(v_icoOffDocIcon); - if (v_hPrivateHeap) HeapDestroy(v_hPrivateHeap); - DeleteCriticalSection(&v_csecThreadSynch); - break; - } - return TRUE; -} - -#ifdef DSO_MIN_CRT_STARTUP -extern "C" BOOL APIENTRY _DllMainCRTStartup(HINSTANCE hDllHandle, DWORD dwReason, LPVOID lpReserved) -{return DllMain(hDllHandle, dwReason, lpReserved);} -#endif - -//////////////////////////////////////////////////////////////////////// -// Standard COM DLL Entry Points -// -// -//////////////////////////////////////////////////////////////////////// -// DllCanUnloadNow -// -// -STDAPI DllCanUnloadNow() -{ - return ((v_cLocks == 0) ? S_OK : S_FALSE); -} - -//////////////////////////////////////////////////////////////////////// -// DllGetClassObject -// -// Returns IClassFactory instance for FramerControl. We only support -// this one object for creation. -// -STDAPI DllGetClassObject(REFCLSID rclsid, REFIID riid, void** ppv) -{ - HRESULT hr; - CDsoFramerClassFactory* pcf; - - CHECK_NULL_RETURN(ppv, E_POINTER); - *ppv = NULL; - - // The only component we can create is the BinderControl... - if (rclsid != CLSID_FramerControl) - return CLASS_E_CLASSNOTAVAILABLE; - - // Create the needed class factory... - pcf = new CDsoFramerClassFactory(); - CHECK_NULL_RETURN(pcf, E_OUTOFMEMORY); - - // Get requested interface. - if (FAILED(hr = pcf->QueryInterface(riid, ppv))) - { - *ppv = NULL; delete pcf; - } - else InterlockedIncrement((LPLONG)&v_cLocks); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DllRegisterServer -// -// Registration of the OCX. -// -STDAPI DllRegisterServer() -{ - HRESULT hr = S_OK; - HKEY hk, hk2; - DWORD dwret; - CHAR szbuffer[256]; - LPWSTR pwszModule; - ITypeInfo* pti; - - // If we can't find the path to the DLL, we can't register... - if (!FGetModuleFileName(v_hModule, &pwszModule)) - return E_FAIL; - - // Setup the CLSID. This is the most important. If there is a critical failure, - // we will set HR = GetLastError and return... - if ((dwret = RegCreateKeyEx(HKEY_CLASSES_ROOT, - "CLSID\\"DSOFRAMERCTL_CLSIDSTR, 0, NULL, 0, KEY_WRITE, NULL, &hk, NULL)) != ERROR_SUCCESS) - { - DsoMemFree(pwszModule); - return HRESULT_FROM_WIN32(dwret); - } - - lstrcpy(szbuffer, DSOFRAMERCTL_SHORTNAME); - RegSetValueEx(hk, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - // Setup the InprocServer32 key... - dwret = RegCreateKeyEx(hk, "InprocServer32", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "Apartment"); - RegSetValueEx(hk2, "ThreadingModel", 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - // We call a wrapper function for this setting since the path should be - // stored in Unicode to handle non-ANSI file path names on some systems. - // This wrapper will convert the path to ANSI if we are running on Win9x. - // The rest of the Reg calls should be OK in ANSI since they do not - // contain non-ANSI/Unicode-specific characters... - if (!FSetRegKeyValue(hk2, pwszModule)) - hr = E_ACCESSDENIED; - - RegCloseKey(hk2); - - dwret = RegCreateKeyEx(hk, "ProgID", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_PROGID); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - } - else hr = HRESULT_FROM_WIN32(dwret); - - if (SUCCEEDED(hr)) - { - dwret = RegCreateKeyEx(hk, "Control", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - RegCloseKey(hk2); - } - else hr = HRESULT_FROM_WIN32(dwret); - } - - - // If we succeeded so far, andle the remaining (non-critical) reg keys... - if (SUCCEEDED(hr)) - { - dwret = RegCreateKeyEx(hk, "ToolboxBitmap32", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - LPWSTR pwszT = DsoCopyStringCat(pwszModule, L",102"); - if (pwszT) - { - FSetRegKeyValue(hk2, pwszT); - DsoMemFree(pwszT); - } - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "TypeLib", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_TLIBSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "Version", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_VERSIONSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "MiscStatus", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "131473"); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - - dwret = RegCreateKeyEx(hk, "DataFormats\\GetSet\\0", 0, NULL, 0, KEY_WRITE, NULL, &hk2, NULL); - if (dwret == ERROR_SUCCESS) - { - lstrcpy(szbuffer, "3,1,32,1"); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - } - - RegCloseKey(hk); - DsoMemFree(pwszModule); - - // This should catch any critical failures during setup of CLSID... - RETURN_ON_FAILURE(hr); - - // Setup the ProgID (non-critical)... - if (RegCreateKeyEx(HKEY_CLASSES_ROOT, DSOFRAMERCTL_PROGID, 0, - NULL, 0, KEY_WRITE, NULL, &hk, NULL) == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_FULLNAME); - RegSetValueEx(hk, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - - if (RegCreateKeyEx(hk, "CLSID", 0, - NULL, 0, KEY_WRITE, NULL, &hk2, NULL) == ERROR_SUCCESS) - { - lstrcpy(szbuffer, DSOFRAMERCTL_CLSIDSTR); - RegSetValueEx(hk2, NULL, 0, REG_SZ, (BYTE *)szbuffer, lstrlen(szbuffer)); - RegCloseKey(hk2); - } - RegCloseKey(hk); - } - - // Load the type info (this should register the lib once)... - hr = DsoGetTypeInfoEx(LIBID_DSOFramer, 0, - DSOFRAMERCTL_VERSION_MAJOR, DSOFRAMERCTL_VERSION_MINOR, v_hModule, CLSID_FramerControl, &pti); - if (SUCCEEDED(hr)) pti->Release(); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// RegRecursiveDeleteKey -// -// Helper function called by DllUnregisterServer for nested key removal. -// -static HRESULT RegRecursiveDeleteKey(HKEY hkParent, LPCSTR pszSubKey) -{ - HRESULT hr = S_OK; - HKEY hk; - DWORD dwret, dwsize; - FILETIME time ; - CHAR szbuffer[512]; - - dwret = RegOpenKeyEx(hkParent, pszSubKey, 0, KEY_ALL_ACCESS, &hk); - if (dwret != ERROR_SUCCESS) - return HRESULT_FROM_WIN32(dwret); - - // Enumerate all of the decendents of this child... - dwsize = 510 ; - while (RegEnumKeyEx(hk, 0, szbuffer, &dwsize, NULL, NULL, NULL, &time) == ERROR_SUCCESS) - { - // If there are any sub-folders, delete them first (to make NT happy)... - hr = RegRecursiveDeleteKey(hk, szbuffer); - if (FAILED(hr)) break; - dwsize = 510; - } - - // Close the child... - RegCloseKey(hk); - - RETURN_ON_FAILURE(hr); - - // Delete this child. - dwret = RegDeleteKey(hkParent, pszSubKey); - if (dwret != ERROR_SUCCESS) - hr = HRESULT_FROM_WIN32(dwret); - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DllUnregisterServer -// -// Removal code for the OCX. -// -STDAPI DllUnregisterServer() -{ - HRESULT hr; - hr = RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, "CLSID\\"DSOFRAMERCTL_CLSIDSTR); - if (SUCCEEDED(hr)) - { - RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, DSOFRAMERCTL_PROGID); - RegRecursiveDeleteKey(HKEY_CLASSES_ROOT, "TypeLib\\"DSOFRAMERCTL_TLIBSTR); - } - - // This means the key does not exist (i.e., the DLL - // was alreay unregistered, so return OK)... - if (hr == 0x80070002) hr = S_OK; - - return hr; -} diff --git a/PROMS/DSOFramer/Source2005/rbbinder.h b/PROMS/DSOFramer/Source2005/rbbinder.h deleted file mode 100644 index c312a2bb..00000000 --- a/PROMS/DSOFramer/Source2005/rbbinder.h +++ /dev/null @@ -1,253 +0,0 @@ -/*************************************************************************** - * RBBINDER.H - * - * DSOFramer: Internet Publishing Provider (MSDAIPP) Compatible Header - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_RBBINDER_H -#define DS_RBBINDER_H - -//////////////////////////////////////////////////////////////////////// -// The Microsoft OLEDB Provider for Internet Publishing (MSDAIPP) is now -// standard with MDAC 2.5. However, it will run with MDAC 2.1, so this -// header will allow us to safely compile without 2.5. -// -#define OLEDBVER 0x0250 - -#include -#include - -#ifdef __cplusplus -extern "C" { -#endif - -#include // 2-byte structure packing - -#ifndef BEGIN_INTERFACE -#define BEGIN_INTERFACE -#endif - - -//////////////////////////////////////////////////////////////////////// -// MSDAIPP Specific GUIDs (not defined in OLEDB.H) -// -DEFINE_GUID(CLSID_MSDAIPP_DSO, 0xAF320921L, 0x9381, 0x11d1, 0x9C, 0x3C, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); -DEFINE_GUID(CLSID_MSDAIPP_BINDER, 0xE1D2BF40L, 0xA96B, 0x11d1, 0x9C, 0x6B, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); -DEFINE_GUID(DBPROPSET_MSDAIPP_INIT, 0x8F1033E3L, 0xB2CD, 0x11d1, 0x9C, 0x74, 0x00, 0x00, 0xF8, 0x75, 0xAC, 0x61); - - -//////////////////////////////////////////////////////////////////////// -// OLEDB Additional defines -- included for machines with MDAC 2.0/2.1 -// - -//////////////////////////////////////////////////////////////////////// -// OLEDB 2.5 GUIDS Redefined for use here; this is to avoid linker errors -// on machines that have different versions of MDAC libs. -// -DEFINE_GUID(IIDX_IBindResource, 0x0c733ab1L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_IDBBinderProperties, 0x0c733ab3L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_ICreateRow, 0x0c733ab2L, 0x2a1c, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); -DEFINE_GUID(IIDX_IAuthenticate, 0x79eac9d0L, 0xbaf9, 0x11ce, 0x8c, 0x82, 0x00, 0xaa, 0x00, 0x4b, 0xa9, 0x0b); -DEFINE_GUID(DBGUIDX_STREAM, 0xc8b522f9L, 0x5cf3, 0x11ce, 0xad, 0xe5, 0x00, 0xaa, 0x00, 0x44, 0x77, 0x3d); - - -/////////////////////////////////////////////////////////////////////// -// MSDAIPP Binding Interfaces (all this should be standard in MDAC 2.5) -// -#ifndef __IBindResource_FWD_DEFINED__ -#define __IBindResource_FWD_DEFINED__ - -typedef interface IBindResource IBindResource; - -typedef DWORD DBBINDURLFLAG; -enum DBBINDURLFLAGENUM -{ - DBBINDURLFLAG_READ = 0x1L, - DBBINDURLFLAG_WRITE = 0x2L, - DBBINDURLFLAG_READWRITE = 0x3L, - DBBINDURLFLAG_SHARE_DENY_READ = 0x4L, - DBBINDURLFLAG_SHARE_DENY_WRITE = 0x8L, - DBBINDURLFLAG_SHARE_EXCLUSIVE = 0xcL, - DBBINDURLFLAG_SHARE_DENY_NONE = 0x10L, - DBBINDURLFLAG_ASYNCHRONOUS = 0x1000L, - DBBINDURLFLAG_COLLECTION = 0x2000L, - DBBINDURLFLAG_DELAYFETCHSTREAM = 0x4000L, - DBBINDURLFLAG_DELAYFETCHCOLUMNS = 0x8000L, - DBBINDURLFLAG_RECURSIVE = 0x400000L, - DBBINDURLFLAG_OUTPUT = 0x800000L, - DBBINDURLFLAG_WAITFORINIT = 0x1000000L, - DBBINDURLFLAG_OPENIFEXISTS = 0x2000000L, - DBBINDURLFLAG_OVERWRITE = 0x4000000L, - DBBINDURLFLAG_ISSTRUCTUREDDOCUMENT = 0x8000000L -}; - -typedef DWORD DBBINDURLSTATUS; -enum DBBINDURLSTATUSENUM -{ - DBBINDURLSTATUS_S_OK = 0L, - DBBINDURLSTATUS_S_DENYNOTSUPPORTED = 0x1L, - DBBINDURLSTATUS_S_DENYTYPENOTSUPPORTED = 0x4L, - DBBINDURLSTATUS_S_REDIRECTED = 0x8L -}; - -enum DBPROP_OLEDB25_RB -{ - DBPROP_INIT_BINDFLAGS = 0x10eL, - DBPROP_INIT_LOCKOWNER = 0x10fL -}; - -typedef ULONG DBCOUNTITEM; - -typedef struct tagDBIMPLICITSESSION - { - IUnknown __RPC_FAR *pUnkOuter; - IID __RPC_FAR *piid; - IUnknown __RPC_FAR *pSession; - } DBIMPLICITSESSION; - -#endif //__IBindResource_FWD_DEFINED__ - - -#ifndef __IBindResource_INTERFACE_DEFINED__ -#define __IBindResource_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IBindResource -DECLARE_INTERFACE_(IBindResource, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* IBindResource methods */ - STDMETHOD(Bind)(THIS_ - /* [in] */ IUnknown __RPC_FAR *pUnkOuter, - /* [in] */ LPCOLESTR pwszURL, - /* [in] */ DBBINDURLFLAG dwBindURLFlags, - /* [in] */ REFGUID rguid, - /* [in] */ REFIID riid, - /* [in] */ IAuthenticate __RPC_FAR *pAuthenticate, - /* [unique][out][in] */ DBIMPLICITSESSION __RPC_FAR *pImplSession, - /* [unique][out][in] */ DBBINDURLSTATUS __RPC_FAR *pdwBindStatus, - /* [iid_is][out] */ IUnknown __RPC_FAR *__RPC_FAR *ppUnk) PURE; -}; - -#endif //__IBindResource_INTERFACE_DEFINED__ - - - -#ifndef __ICreateRow_INTERFACE_DEFINED__ -#define __ICreateRow_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE ICreateRow -DECLARE_INTERFACE_(ICreateRow, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* ICreateRow methods */ - STDMETHOD(CreateRow)(THIS_ - /* [unique][in] */ IUnknown __RPC_FAR *pUnkOuter, - /* [in] */ LPCOLESTR pwszURL, - /* [in] */ DBBINDURLFLAG dwBindURLFlags, - /* [in] */ REFGUID rguid, - /* [in] */ REFIID riid, - /* [unique][in] */ IAuthenticate __RPC_FAR *pAuthenticate, - /* [unique][out][in] */ IUnknown __RPC_FAR *pImplSession, - /* [unique][out][in] */ DBBINDURLSTATUS __RPC_FAR *pdwBindStatus, - /* [out] */ LPOLESTR __RPC_FAR *ppwszNewURL, - /* [iid_is][out] */ IUnknown __RPC_FAR *__RPC_FAR *ppUnk) PURE; -}; - -#endif //__ICreateRow_INTERFACE_DEFINED__ - - -#ifndef __IDBBinderProperties_INTERFACE_DEFINED__ -#define __IDBBinderProperties_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IDBBinderProperties -DECLARE_INTERFACE_(IDBBinderProperties, IDBProperties) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IDBProperties methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; - - STDMETHOD(GetProperties)(THIS_ ULONG cPropertyIDSets, const DBPROPIDSET __RPC_FAR rgPropertyIDSets[], ULONG __RPC_FAR *pcPropertySets, DBPROPSET __RPC_FAR *__RPC_FAR *prgPropertySets) PURE; - STDMETHOD(GetPropertyInfo)(THIS_ ULONG cPropertyIDSets, const DBPROPIDSET __RPC_FAR rgPropertyIDSets[], ULONG __RPC_FAR *pcPropertyInfoSets, DBPROPINFOSET __RPC_FAR *__RPC_FAR *prgPropertyInfoSets, OLECHAR __RPC_FAR *__RPC_FAR *ppDescBuffer) PURE; - STDMETHOD(SetProperties)(THIS_ ULONG cPropertySets, DBPROPSET __RPC_FAR rgPropertySets[]) PURE; -#endif - /* IDBBinderProperties methods */ - STDMETHOD(Reset)(THIS) PURE; -}; - -#endif //__IDBBinderProperties_INTERFACE_DEFINED__ - - -//////////////////////////////////////////////////////////////////////// -// IAuthenticate (borrowed from urlmon.h to avoid extra includes) -// -#ifndef __IAuthenticate_INTERFACE_DEFINED__ -#define __IAuthenticate_INTERFACE_DEFINED__ - -#undef INTERFACE -#define INTERFACE IAuthenticate -DECLARE_INTERFACE_(IAuthenticate, IUnknown) -{ -BEGIN_INTERFACE -#ifndef NO_BASEINTERFACE_FUNCS - /* IUnknown methods */ - STDMETHOD(QueryInterface)(THIS_ REFIID riid, LPVOID *ppvObj) PURE; - STDMETHOD_(ULONG,AddRef)(THIS) PURE; - STDMETHOD_(ULONG,Release)(THIS) PURE; -#endif - /* IAuthenticate methods */ - STDMETHOD(Authenticate)(THIS_ HWND __RPC_FAR *phwnd, LPWSTR __RPC_FAR *pszUsername, LPWSTR __RPC_FAR *pszPassword) PURE; -}; - -#endif //__IAuthenticate_INTERFACE_DEFINED__ - -//OLEDB 2.1 Error values -#ifndef DB_E_READONLY -#define DB_E_READONLY ((HRESULT)0x80040E94L) -#define DB_E_RESOURCELOCKED ((HRESULT)0x80040E92L) -#define DB_E_CANNOTCONNECT ((HRESULT)0x80040E96L) -#define DB_E_TIMEOUT ((HRESULT)0x80040E97L) -#define DB_E_RESOURCEEXISTS ((HRESULT)0x80040E98L) -#define DB_E_OUTOFSPACE ((HRESULT)0x80040E9AL) -#endif - -//OLEDB 2.5 Error values -#ifndef DB_SEC_E_SAFEMODE_DENIED -#define DB_SEC_E_SAFEMODE_DENIED ((HRESULT)0x80040E9BL) -#endif - -#ifdef __cplusplus -} //extern "C" -#endif - -#endif // DS_RBBINDER_H - diff --git a/PROMS/DSOFramer/Source2005/utilities.cpp b/PROMS/DSOFramer/Source2005/utilities.cpp deleted file mode 100644 index 9b34cdf1..00000000 --- a/PROMS/DSOFramer/Source2005/utilities.cpp +++ /dev/null @@ -1,1359 +0,0 @@ -/*************************************************************************** - * UTILITIES.CPP - * - * Shared helper functions and routines. - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#include "dsoframer.h" - -//////////////////////////////////////////////////////////////////////// -// Core Utility Functions -// -//////////////////////////////////////////////////////////////////////// -// Heap Allocation (Private Heap) -// -extern HANDLE v_hPrivateHeap; -STDAPI_(LPVOID) DsoMemAlloc(DWORD cbSize) -{ - CHECK_NULL_RETURN(v_hPrivateHeap, NULL); - return HeapAlloc(v_hPrivateHeap, HEAP_ZERO_MEMORY, cbSize); -} - -STDAPI_(void) DsoMemFree(LPVOID ptr) -{ - if ((v_hPrivateHeap) && (ptr)) - HeapFree(v_hPrivateHeap, 0, ptr); -} - -void * _cdecl operator new(size_t size){ return DsoMemAlloc(size);} -void _cdecl operator delete(void *ptr){ DsoMemFree(ptr); } -int __cdecl _purecall(){__asm{int 3}; return 0;} - -//////////////////////////////////////////////////////////////////////// -// Global String Functions -// -//////////////////////////////////////////////////////////////////////// -// DsoConvertToUnicodeEx -// -STDAPI DsoConvertToUnicodeEx(LPCSTR pszMbcsString, DWORD cbMbcsLen, LPWSTR pwszUnicode, DWORD cbUniLen, UINT uiCodePage) -{ - DWORD cbRet; - UINT iCode = CP_ACP; - - if (IsValidCodePage(uiCodePage)) - iCode = uiCodePage; - - CHECK_NULL_RETURN(pwszUnicode, E_POINTER); - pwszUnicode[0] = L'\0'; - - CHECK_NULL_RETURN(pszMbcsString, E_POINTER); - CHECK_NULL_RETURN(cbMbcsLen, E_INVALIDARG); - CHECK_NULL_RETURN(cbUniLen, E_INVALIDARG); - - cbRet = MultiByteToWideChar(iCode, 0, pszMbcsString, cbMbcsLen, pwszUnicode, cbUniLen); - if (cbRet == 0) return E_WIN32_LASTERROR; - - pwszUnicode[cbRet] = L'\0'; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToMBCSEx -// -STDAPI DsoConvertToMBCSEx(LPCWSTR pwszUnicodeString, DWORD cbUniLen, LPSTR pszMbcsString, DWORD cbMbcsLen, UINT uiCodePage) -{ - DWORD cbRet; - UINT iCode = CP_ACP; - - if (IsValidCodePage(uiCodePage)) - iCode = uiCodePage; - - CHECK_NULL_RETURN(pszMbcsString, E_POINTER); - pszMbcsString[0] = L'\0'; - - CHECK_NULL_RETURN(pwszUnicodeString, E_POINTER); - CHECK_NULL_RETURN(cbMbcsLen, E_INVALIDARG); - CHECK_NULL_RETURN(cbUniLen, E_INVALIDARG); - - cbRet = WideCharToMultiByte(iCode, 0, pwszUnicodeString, -1, pszMbcsString, cbMbcsLen, NULL, NULL); - if (cbRet == 0) return E_WIN32_LASTERROR; - - pszMbcsString[cbRet] = '\0'; - return S_OK; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToLPWSTR -// -// Takes a MBCS string and returns a LPWSTR allocated on private heap. -// -STDAPI_(LPWSTR) DsoConvertToLPWSTR(LPCSTR pszMbcsString) -{ - LPWSTR pwsz = NULL; - UINT cblen, cbnew; - - if ((pszMbcsString) && - ((cblen = lstrlen(pszMbcsString)) > 0)) - { - cbnew = ((cblen + 1) * sizeof(WCHAR)); - if ((pwsz = (LPWSTR)DsoMemAlloc(cbnew)) != NULL) - { - if (FAILED(DsoConvertToUnicodeEx(pszMbcsString, cblen, pwsz, cbnew, GetACP()))) - { - DsoMemFree(pwsz); - pwsz = NULL; - } - } - } - - return pwsz; -} -//////////////////////////////////////////////////////////////////////// -// DsoConvertToMBCS -// -// Takes a WCHAR string and returns a LPSTR on the private heap. -// -STDAPI_(LPSTR) DsoConvertToMBCS(LPCWSTR pwszUnicodeString) -{ - LPSTR psz = NULL; - UINT cblen, cbnew; - - if ((pwszUnicodeString) && - ((cblen = lstrlenW(pwszUnicodeString)) > 0)) - { - cbnew = ((cblen + 1) * sizeof(WCHAR)); - if ((psz = (LPSTR)DsoMemAlloc(cbnew)) != NULL) - { - if (FAILED(DsoConvertToMBCSEx(pwszUnicodeString, cblen, psz, cbnew, GetACP()))) - { - DsoMemFree(psz); psz = NULL; - } - } - } - - return psz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToBSTR -// -// Takes a MBCS string and returns a BSTR. NULL is returned if the -// function fails or the string is empty. -// -STDAPI_(BSTR) DsoConvertToBSTR(LPCSTR pszMbcsString) -{ - BSTR bstr = NULL; - LPWSTR pwsz = DsoConvertToLPWSTR(pszMbcsString); - if (pwsz) - { - bstr = SysAllocString(pwsz); - DsoMemFree(pwsz); - } - return bstr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoConvertToLPOLESTR -// -// Returns Unicode string in COM Task Memory (CoTaskMemAlloc). -// -STDAPI_(LPWSTR) DsoConvertToLPOLESTR(LPCWSTR pwszUnicodeString) -{ - LPWSTR pwsz; - UINT cblen; - - CHECK_NULL_RETURN(pwszUnicodeString, NULL); - cblen = lstrlenW(pwszUnicodeString); - - pwsz = (LPWSTR)CoTaskMemAlloc((cblen * sizeof(WCHAR)) + 2); - if (pwsz) - { - memcpy(pwsz, pwszUnicodeString, (cblen * sizeof(WCHAR))); - pwsz[cblen] = L'\0'; // Make sure it is NULL terminated. - } - - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyString -// -// Duplicates the string into private heap string. -// -STDAPI_(LPWSTR) DsoCopyString(LPCWSTR pwszString) -{ - LPWSTR pwsz; - UINT cblen; - - CHECK_NULL_RETURN(pwszString, NULL); - cblen = lstrlenW(pwszString); - - pwsz = (LPWSTR)DsoMemAlloc((cblen * sizeof(WCHAR)) + 2); - if (pwsz) - { - memcpy(pwsz, pwszString, (cblen * sizeof(WCHAR))); - pwsz[cblen] = L'\0'; // Make sure it is NULL terminated. - } - - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyStringCat -// -STDAPI_(LPWSTR) DsoCopyStringCat(LPCWSTR pwszString1, LPCWSTR pwszString2) -{return DsoCopyStringCatEx(pwszString1, 1, &pwszString2);} - -//////////////////////////////////////////////////////////////////////// -// DsoCopyStringCatEx -// -// Duplicates the string into private heap string and appends one or more -// strings to the end (concatenation). -// -STDAPI_(LPWSTR) DsoCopyStringCatEx(LPCWSTR pwszBaseString, UINT cStrs, LPCWSTR *ppwszStrs) -{ - LPWSTR pwsz; - UINT i, cblenb, cblent; - UINT *pcblens; - - // We assume you have a base string to start with. If not, we return NULL... - if ((pwszBaseString == NULL) || - ((cblenb = lstrlenW(pwszBaseString)) < 1)) - return NULL; - - // If we have nothing to append, just do a plain copy... - if ((cStrs == 0) || (ppwszStrs == NULL)) - return DsoCopyString(pwszBaseString); - - // Determine the size of the final string by finding the lengths - // of each. We create an array of sizes to use later on... - cblent = cblenb; - pcblens = new UINT[cStrs]; - CHECK_NULL_RETURN(pcblens, NULL); - - for (i = 0; i < cStrs; i++) - { - pcblens[i] = lstrlenW(ppwszStrs[i]); - cblent += pcblens[i]; - } - - // If we have data to append, create the new string and append the - // data by copying them in place. We expect UTF-16 Unicode strings - // for this to work, but this should be normal... - if (cblent > cblenb) - { - pwsz = (LPWSTR)DsoMemAlloc(((cblent + 1) * sizeof(WCHAR))); - CHECK_NULL_RETURN(pwsz, NULL); - - memcpy(pwsz, pwszBaseString, (cblenb * sizeof(WCHAR))); - cblent = cblenb; - - for (i = 0; i < cStrs; i++) - { - memcpy((pwsz + cblent), ppwszStrs[i], (pcblens[i] * sizeof(WCHAR))); - cblent += pcblens[i]; - } - } - else pwsz = DsoCopyString(pwszBaseString); - - delete [] pcblens; - return pwsz; -} - -//////////////////////////////////////////////////////////////////////// -// DsoCLSIDtoLPSTR -// -STDAPI_(LPSTR) DsoCLSIDtoLPSTR(REFCLSID clsid) -{ - LPSTR psz = NULL; - LPWSTR pwsz; - if (SUCCEEDED(StringFromCLSID(clsid, &pwsz))) - { - psz = DsoConvertToMBCS(pwsz); - CoTaskMemFree(pwsz); - } - return psz; -} - - -/////////////////////////////////////////////////////////////////////////////////// -// DsoCompareStringsEx -// -// Calls CompareString API using Unicode version (if available on OS). Otherwise, -// we have to thunk strings down to MBCS to compare. This is fairly inefficient for -// Win9x systems that don't handle Unicode, but hey...this is only a sample. -// -STDAPI_(UINT) DsoCompareStringsEx(LPCWSTR pwsz1, INT cch1, LPCWSTR pwsz2, INT cch2) -{ - UINT iret; - LCID lcid = GetThreadLocale(); - UINT cblen1, cblen2; - - // Check that valid parameters are passed and then contain somethimg... - if ((pwsz1 == NULL) || (cch1 == 0) || - ((cblen1 = ((cch1 > 0) ? cch1 : lstrlenW(pwsz1))) == 0)) - return CSTR_LESS_THAN; - - if ((pwsz2 == NULL) || (cch2 == 0) || - ((cblen2 = ((cch2 > 0) ? cch2 : lstrlenW(pwsz2))) == 0)) - return CSTR_GREATER_THAN; - - // If the string is of the same size, then we do quick compare to test for - // equality (this is slightly faster than calling the API, but only if we - // expect the calls to find an equal match)... - if (cblen1 == cblen2) - { - for (iret = 0; iret < cblen1; iret++) - { - if (pwsz1[iret] == pwsz2[iret]) - continue; - - if (((pwsz1[iret] >= 'A') && (pwsz1[iret] <= 'Z')) && - ((pwsz1[iret] + ('a' - 'A')) == pwsz2[iret])) - continue; - - if (((pwsz2[iret] >= 'A') && (pwsz2[iret] <= 'Z')) && - ((pwsz2[iret] + ('a' - 'A')) == pwsz1[iret])) - continue; - - break; // don't continue if we can't quickly match... - } - - // If we made it all the way, then they are equal... - if (iret == cblen1) - return CSTR_EQUAL; - } - - // Now ask the OS to check the strings and give us its read. (We prefer checking - // in Unicode since this is faster and we may have strings that can't be thunked - // down to the local ANSI code page)... - if (v_fUnicodeAPI) - { - iret = CompareStringW(lcid, NORM_IGNORECASE | NORM_IGNOREWIDTH, pwsz1, cblen1, pwsz2, cblen2); - } - else - { - // If we are on Win9x, we don't have much of choice (thunk the call)... - LPSTR psz1 = DsoConvertToMBCS(pwsz1); - LPSTR psz2 = DsoConvertToMBCS(pwsz2); - iret = CompareStringA(lcid, NORM_IGNORECASE, psz1, -1, psz2, -1); - DsoMemFree(psz2); - DsoMemFree(psz1); - } - - return iret; -} - - -//////////////////////////////////////////////////////////////////////// -// URL Helpers -// -//////////////////////////////////////////////////////////////////////// -// General Functions (checks to see if we can recognize type) -// -STDAPI_(BOOL) LooksLikeUNC(LPCWSTR pwsz) -{ - return ((pwsz) && (*pwsz == L'\\') && (*(pwsz + 1) == L'\\') && (*(pwsz + 2) != L'\\')); -} - -STDAPI_(BOOL) LooksLikeLocalFile(LPCWSTR pwsz) -{ - return ((pwsz) && - (((*pwsz > 64) && (*pwsz < 91)) || ((*pwsz > 96) && (*pwsz < 123))) && - (*(pwsz + 1) == L':') && (*(pwsz + 2) == L'\\')); -} - -STDAPI_(BOOL) LooksLikeHTTP(LPCWSTR pwsz) -{ - return ((pwsz) && ((*pwsz == L'H') || (*pwsz == L'h')) && - ((*(pwsz + 1) == L'T') || (*(pwsz + 1) == L't')) && - ((*(pwsz + 2) == L'T') || (*(pwsz + 2) == L't')) && - ((*(pwsz + 3) == L'P') || (*(pwsz + 3) == L'p')) && - ((*(pwsz + 4) == L':') || (((*(pwsz + 4) == L'S') || (*(pwsz + 4) == L's')) && (*(pwsz + 5) == L':')))); -} - -//////////////////////////////////////////////////////////////////////// -// GetTempPathForURLDownload -// -// Constructs a temp path for a downloaded file. Note we scan the URL -// to find the name of the file so we can use its exention for server -// association (in case it is a non-docfile -- like RTF) and also -// create our own subfolder to try and avoid name conflicts in temp -// folder itself. -// -STDAPI_(BOOL) GetTempPathForURLDownload(WCHAR* pwszURL, WCHAR** ppwszLocalFile) -{ - DWORD dw; - LPWSTR pwszTPath = NULL; - LPWSTR pwszTFile = NULL; - CHAR szTmpPath[MAX_PATH]; - - // Do a little parameter checking and find length of the URL... - if (!(pwszURL) || ((dw = lstrlenW(pwszURL)) < 6) || - !(LooksLikeHTTP(pwszURL)) || !(ppwszLocalFile)) - return FALSE; - - *ppwszLocalFile = NULL; - - if (GetTempPath(MAX_PATH, szTmpPath)) - { - DWORD dwtlen = lstrlen(szTmpPath); - if (dwtlen > 0 && szTmpPath[dwtlen-1] != '\\') - lstrcat(szTmpPath, "\\"); - - lstrcat(szTmpPath, "DsoFramer"); - - if (CreateDirectory(szTmpPath, NULL) || GetLastError() == ERROR_ALREADY_EXISTS) - { - lstrcat(szTmpPath, "\\"); - pwszTPath = DsoConvertToLPWSTR(szTmpPath); - } - } - - if (pwszTPath) - { - if (pwszTFile = DsoCopyString(pwszURL)) - { - LPWSTR pwszT = pwszTFile; - while (*(++pwszT)) - if (*pwszT == L'?'){*pwszT = L'\0'; break;} - - while (*(--pwszT)) - if (*pwszT == L'/'){++pwszT; break;} - - *ppwszLocalFile = DsoCopyStringCat(pwszTPath, pwszT); - - DsoMemFree(pwszTFile); - } - - DsoMemFree(pwszTPath); - } - - return (BOOL)(*ppwszLocalFile); -} - -//////////////////////////////////////////////////////////////////////// -// URLDownloadFile -// -// Does a simple URLMON download of file (no save back to server allowed), -// and no dependent files will be downloaded (just one temp file). -// -STDAPI URLDownloadFile(LPUNKNOWN punk, WCHAR* pwszURL, WCHAR* pwszLocalFile) -{ - typedef HRESULT (WINAPI *PFN_URLDTFW)(LPUNKNOWN, LPCWSTR, LPCWSTR, DWORD, LPUNKNOWN); - static PFN_URLDTFW pfnURLDownloadToFileW = NULL; - HMODULE hUrlmon; - - if (pfnURLDownloadToFileW == NULL) - { - if (hUrlmon = LoadLibrary("URLMON.DLL")) - pfnURLDownloadToFileW = (PFN_URLDTFW)GetProcAddress(hUrlmon, "URLDownloadToFileW"); - } - - if (pfnURLDownloadToFileW == NULL) - return E_UNEXPECTED; - - return pfnURLDownloadToFileW(punk, pwszURL, pwszLocalFile, 0, NULL); -} - - -//////////////////////////////////////////////////////////////////////// -// OLE Conversion Functions -// -#define HIMETRIC_PER_INCH 2540 // number HIMETRIC units per inch -#define PTS_PER_INCH 72 // number points (font size) per inch - -#define MAP_PIX_TO_LOGHIM(x,ppli) MulDiv(HIMETRIC_PER_INCH, (x), (ppli)) -#define MAP_LOGHIM_TO_PIX(x,ppli) MulDiv((ppli), (x), HIMETRIC_PER_INCH) - -//////////////////////////////////////////////////////////////////////// -// DsoHimetricToPixels -// -STDAPI_(void) DsoHimetricToPixels(LONG* px, LONG* py) -{ - HDC hdc = GetDC(NULL); - if (px) *px = MAP_LOGHIM_TO_PIX(*px, GetDeviceCaps(hdc, LOGPIXELSX)); - if (py) *py = MAP_LOGHIM_TO_PIX(*py, GetDeviceCaps(hdc, LOGPIXELSY)); - ReleaseDC(NULL, hdc); -} - -//////////////////////////////////////////////////////////////////////// -// DsoPixelsToHimetric -// -STDAPI_(void) DsoPixelsToHimetric(LONG* px, LONG* py) -{ - HDC hdc = GetDC(NULL); - if (px) *px = MAP_PIX_TO_LOGHIM(*px, GetDeviceCaps(hdc, LOGPIXELSX)); - if (py) *py = MAP_PIX_TO_LOGHIM(*py, GetDeviceCaps(hdc, LOGPIXELSY)); - ReleaseDC(NULL, hdc); -} - -//////////////////////////////////////////////////////////////////////// -// GDI Helper Functions -// -STDAPI_(HBITMAP) DsoGetBitmapFromWindow(HWND hwnd) -{ - HBITMAP hbmpold, hbmp = NULL; - HDC hdcWin, hdcMem; - RECT rc; - INT x, y; - - if (!GetWindowRect(hwnd, &rc)) - return NULL; - - x = (rc.right - rc.left); if (x < 0) x = 1; - y = (rc.bottom - rc.top); if (y < 0) y = 1; - - hdcWin = GetDC(hwnd); - hdcMem = CreateCompatibleDC(hdcWin); - - hbmp = CreateCompatibleBitmap(hdcWin, x, y); - hbmpold = (HBITMAP)SelectObject(hdcMem, hbmp); - - BitBlt(hdcMem, 0,0, x, y, hdcWin, 0,0, SRCCOPY); - - SelectObject(hdcMem, hbmpold); - DeleteDC(hdcMem); - ReleaseDC(hwnd, hdcWin); - - return hbmp; -} - -//////////////////////////////////////////////////////////////////////// -// Windows Helper Functions -// -STDAPI_(BOOL) IsWindowChild(HWND hwndParent, HWND hwndChild) -{ - HWND hwnd; - - if ((hwndChild == NULL) || !IsWindow(hwndChild)) - return FALSE; - - if (hwndParent == NULL) - return TRUE; - - if (!IsWindow(hwndParent)) - return FALSE; - - hwnd = hwndChild; - - while (hwnd = GetParent(hwnd)) - if (hwnd == hwndParent) - return TRUE; - - return FALSE; -} - -//////////////////////////////////////////////////////////////////////// -// DsoGetTypeInfoEx -// -// Gets an ITypeInfo from the LIBID specified. Optionally can load and -// register the typelib from a module resource (if specified). Used to -// load our typelib on demand. -// -STDAPI DsoGetTypeInfoEx(REFGUID rlibid, LCID lcid, WORD wVerMaj, WORD wVerMin, HMODULE hResource, REFGUID rguid, ITypeInfo** ppti) -{ - HRESULT hr; - ITypeLib* ptlib; - - CHECK_NULL_RETURN(ppti, E_POINTER); - *ppti = NULL; - - // Try to pull information from the registry... - hr = LoadRegTypeLib(rlibid, wVerMaj, wVerMin, lcid, &ptlib); - - // If that failed, and we have a resource module to load from, - // try loading it from the module... - if (FAILED(hr) && (hResource)) - { - LPWSTR pwszPath; - if (FGetModuleFileName(hResource, &pwszPath)) - { - // Now, load the type library from module resource file... - hr = LoadTypeLib(pwszPath, &ptlib); - - // Register library to make things easier next time... - if (SUCCEEDED(hr)) - RegisterTypeLib(ptlib, pwszPath, NULL); - - DsoMemFree(pwszPath); - } - } - - // We have the typelib. Now get the requested typeinfo... - if (SUCCEEDED(hr)) - hr = ptlib->GetTypeInfoOfGuid(rguid, ppti); - - // Release the type library interface. - SAFE_RELEASE_INTERFACE(ptlib); - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoDispatchInvoke -// -// Wrapper for IDispatch::Invoke calls to event sinks, or late bound call -// to embedded object to get ambient property. -// -STDAPI DsoDispatchInvoke(LPDISPATCH pdisp, LPOLESTR pwszname, DISPID dspid, WORD wflags, DWORD cargs, VARIANT* rgargs, VARIANT* pvtret) -{ - HRESULT hr = S_FALSE; - DISPID dspidPut = DISPID_PROPERTYPUT; - DISPPARAMS dspparm = {NULL, NULL, 0, 0}; - - CHECK_NULL_RETURN(pdisp, E_POINTER); - - dspparm.rgvarg = rgargs; - dspparm.cArgs = cargs; - - if ((wflags & DISPATCH_PROPERTYPUT) || (wflags & DISPATCH_PROPERTYPUTREF)) - { - dspparm.rgdispidNamedArgs = &dspidPut; - dspparm.cNamedArgs = 1; - } - - SEH_TRY - - if (pwszname) - hr = pdisp->GetIDsOfNames(IID_NULL, &pwszname, 1, LOCALE_USER_DEFAULT, &dspid); - - if (SUCCEEDED(hr)) - hr = pdisp->Invoke(dspid, IID_NULL, LOCALE_USER_DEFAULT, (WORD)(DISPATCH_METHOD | wflags), &dspparm, pvtret, NULL, NULL); - - SEH_EXCEPT(hr) - - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// DsoReportError -- Report Error for both ComThreadError and DispError. -// -STDAPI DsoReportError(HRESULT hr, LPWSTR pwszCustomMessage, EXCEPINFO* peiDispEx) -{ - BSTR bstrSource, bstrDescription; - ICreateErrorInfo* pcerrinfo; - IErrorInfo* perrinfo; - CHAR szError[MAX_PATH]; - UINT nID = 0; - - // Don't need to do anything unless this is an error. - if ((hr == S_OK) || SUCCEEDED(hr)) return hr; - - // Is this one of our custom errors (if so we will pull description from resource)... - if ((hr > DSO_E_ERR_BASE) && (hr < DSO_E_ERR_MAX)) - nID = (hr & 0xFF); - - // Set the source name... - bstrSource = SysAllocString(L"DsoFramerControl"); - - // Set the error description... - if (pwszCustomMessage) - { - bstrDescription = SysAllocString(pwszCustomMessage); - } - else if (((nID) && LoadString(v_hModule, nID, szError, sizeof(szError))) || - (FormatMessage(FORMAT_MESSAGE_FROM_SYSTEM, NULL, hr, 0, szError, sizeof(szError), NULL))) - { - bstrDescription = DsoConvertToBSTR(szError); - } - else bstrDescription = NULL; - - // Set ErrorInfo so that vtable clients can get rich error information... - if (SUCCEEDED(CreateErrorInfo(&pcerrinfo))) - { - pcerrinfo->SetSource(bstrSource); - pcerrinfo->SetDescription(bstrDescription); - - if (SUCCEEDED(pcerrinfo->QueryInterface(IID_IErrorInfo, (void**) &perrinfo))) - { - SetErrorInfo(0, perrinfo); - perrinfo->Release(); - } - pcerrinfo->Release(); - } - - // Fill-in DispException Structure for late-boud clients... - if (peiDispEx) - { - peiDispEx->scode = hr; - peiDispEx->bstrSource = SysAllocString(bstrSource); - peiDispEx->bstrDescription = SysAllocString(bstrDescription); - } - - // Free temp strings... - SAFE_FREEBSTR(bstrDescription); - SAFE_FREEBSTR(bstrSource); - - // We always return error passed (so caller can chain this in return call). - return hr; -} - -//////////////////////////////////////////////////////////////////////// -// Variant Type Helpers (Fast Access to Variant Data) -// -VARIANT* __fastcall DsoPVarFromPVarRef(VARIANT* px) -{return ((px->vt == (VT_VARIANT|VT_BYREF)) ? (px->pvarVal) : px);} - -BOOL __fastcall DsoIsVarParamMissing(VARIANT* px) -{return ((px->vt == VT_EMPTY) || ((px->vt & VT_ERROR) == VT_ERROR));} - -LPWSTR __fastcall DsoPVarWStrFromPVar(VARIANT* px) -{return ((px->vt == VT_BSTR) ? px->bstrVal : ((px->vt == (VT_BSTR|VT_BYREF)) ? *(px->pbstrVal) : NULL));} - -SAFEARRAY* __fastcall DsoPVarArrayFromPVar(VARIANT* px) -{return (((px->vt & (VT_BYREF|VT_ARRAY)) == (VT_BYREF|VT_ARRAY)) ? *(px->pparray) : (((px->vt & VT_ARRAY) == VT_ARRAY) ? px->parray : NULL));} - -IUnknown* __fastcall DsoPVarUnkFromPVar(VARIANT* px) -{return (((px->vt == VT_DISPATCH) || (px->vt == VT_UNKNOWN)) ? px->punkVal : (((px->vt == (VT_DISPATCH|VT_BYREF)) || (px->vt == (VT_UNKNOWN|VT_BYREF))) ? *(px->ppunkVal) : NULL));} - -SHORT __fastcall DsoPVarShortFromPVar(VARIANT* px, SHORT fdef) -{return (((px->vt & 0xFF) != VT_I2) ? fdef : ((px->vt & VT_BYREF) == VT_BYREF) ? *(px->piVal) : px->iVal);} - -LONG __fastcall DsoPVarLongFromPVar(VARIANT* px, LONG fdef) -{return (((px->vt & 0xFF) != VT_I4) ? (LONG)DsoPVarShortFromPVar(px, (SHORT)fdef) : ((px->vt & VT_BYREF) == VT_BYREF) ? *(px->plVal) : px->lVal);} - -BOOL __fastcall DsoPVarBoolFromPVar(VARIANT* px, BOOL fdef) -{return (((px->vt & 0xFF) != VT_BOOL) ? (BOOL)DsoPVarLongFromPVar(px, (LONG)fdef) : ((px->vt & VT_BYREF) == VT_BYREF) ? (BOOL)(*(px->pboolVal)) : (BOOL)(px->boolVal));} - - -//////////////////////////////////////////////////////////////////////// -// Win32 Unicode API wrappers -// -// This project is not compiled to Unicode in order for it to run on Win9x -// machines. However, in order to try to keep the code language/locale neutral -// we use these wrappers to call the Unicode API functions when supported, -// and thunk down strings to local code page if must run MBCS API. -// - -//////////////////////////////////////////////////////////////////////// -// FFileExists -// -// Returns TRUE if the given file exists. Does not handle URLs. -// -STDAPI_(BOOL) FFileExists(WCHAR* wzPath) -{ - DWORD dw = 0xFFFFFFFF; - if (v_fUnicodeAPI) - { - dw = GetFileAttributesW(wzPath); - } - else - { - LPSTR psz = DsoConvertToMBCS(wzPath); - if (psz) dw = GetFileAttributesA(psz); - DsoMemFree(psz); - } - return (dw != 0xFFFFFFFF); -} - -//////////////////////////////////////////////////////////////////////// -// FOpenLocalFile -// -// Returns TRUE if the file can be opened with the access required. -// Use the handle for ReadFile/WriteFile operations as normal. -// -STDAPI_(BOOL) FOpenLocalFile(WCHAR* wzFilePath, DWORD dwAccess, DWORD dwShareMode, DWORD dwCreate, HANDLE* phFile) -{ - CHECK_NULL_RETURN(phFile, FALSE); - *phFile = INVALID_HANDLE_VALUE; - if (v_fUnicodeAPI) - { - *phFile = CreateFileW(wzFilePath, dwAccess, dwShareMode, NULL, dwCreate, FILE_ATTRIBUTE_NORMAL, NULL); - } - else - { - LPSTR psz = DsoConvertToMBCS(wzFilePath); - if (psz) *phFile = CreateFileA(psz, dwAccess, dwShareMode, NULL, dwCreate, FILE_ATTRIBUTE_NORMAL, NULL); - DsoMemFree(psz); - } - return (*phFile != INVALID_HANDLE_VALUE); -} - - -//////////////////////////////////////////////////////////////////////// -// FPerformShellOp -// -// This function started as a wrapper for SHFileOperation, but that -// shell function had an enormous performance hit, especially on Win9x -// and NT4. To speed things up we removed the shell32 call and are -// using the kernel32 APIs instead. The only drawback is we can't -// handle multiple files, but that is not critical for this project. -// -STDAPI_(BOOL) FPerformShellOp(DWORD dwOp, WCHAR* wzFrom, WCHAR* wzTo) -{ - BOOL f = FALSE; - if (v_fUnicodeAPI) - { - switch (dwOp) - { - case FO_COPY: f = CopyFileW(wzFrom, wzTo, FALSE); break; - case FO_MOVE: - case FO_RENAME: f = MoveFileW(wzFrom, wzTo); break; - case FO_DELETE: f = DeleteFileW(wzFrom); break; - } - } - else - { - LPSTR pszFrom = DsoConvertToMBCS(wzFrom); - LPSTR pszTo = DsoConvertToMBCS(wzTo); - - switch (dwOp) - { - case FO_COPY: f = CopyFileA(pszFrom, pszTo, FALSE); break; - case FO_MOVE: - case FO_RENAME: f = MoveFileA(pszFrom, pszTo); break; - case FO_DELETE: f = DeleteFileA(pszFrom); break; - } - - if (pszFrom) DsoMemFree(pszFrom); - if (pszTo) DsoMemFree(pszTo); - } - - return f; -} - -//////////////////////////////////////////////////////////////////////// -// FGetModuleFileName -// -// Handles Unicode/ANSI paths from a module handle. -// -STDAPI_(BOOL) FGetModuleFileName(HMODULE hModule, WCHAR** wzFileName) -{ - LPWSTR pwsz; - DWORD dw; - - CHECK_NULL_RETURN(wzFileName, FALSE); - *wzFileName = NULL; - - pwsz = (LPWSTR)DsoMemAlloc((MAX_PATH * sizeof(WCHAR))); - CHECK_NULL_RETURN(pwsz, FALSE); - - if (v_fUnicodeAPI) - { - dw = GetModuleFileNameW(hModule, pwsz, MAX_PATH); - if (dw == 0) - { - DsoMemFree(pwsz); - return FALSE; - } - } - else - { - dw = GetModuleFileNameA(hModule, (LPSTR)pwsz, MAX_PATH); - if (dw == 0) - { - DsoMemFree(pwsz); - return FALSE; - } - - LPWSTR pwsz2 = DsoConvertToLPWSTR((LPSTR)pwsz); - if (pwsz2 == NULL) - { - DsoMemFree(pwsz); - return FALSE; - } - - DsoMemFree(pwsz); - pwsz = pwsz2; - } - - *wzFileName = pwsz; - return TRUE; -} - - -//////////////////////////////////////////////////////////////////////// -// FIsIECacheFile -// -// Determines if file came from IE Cache (treat as read-only). -// -STDAPI_(BOOL) FIsIECacheFile(LPWSTR pwszFile) -{ - BOOL fIsCacheFile = FALSE; - LPWSTR pwszTmpCache = NULL; - BYTE rgbuffer[MAX_PATH * sizeof(WCHAR)]; - HKEY hk; - - if (RegOpenKey(HKEY_CURRENT_USER, - "Software\\Microsoft\\Windows\\CurrentVersion\\Explorer\\Shell Folders", &hk) == ERROR_SUCCESS) - { - DWORD dwT, dwS; dwT = MAX_PATH; - memset(rgbuffer, 0, (MAX_PATH * sizeof(WCHAR))); - - if (v_fUnicodeAPI) - { - if ((RegQueryValueExA(hk, "Cache", 0, &dwT, rgbuffer, &dwS) == ERROR_SUCCESS) && - (dwT == REG_SZ) && (dwS > 1)) - pwszTmpCache = DsoConvertToLPWSTR((LPSTR)rgbuffer); - } - else - { - if ((RegQueryValueExW(hk, L"Cache", 0, &dwT, rgbuffer, &dwS) == ERROR_SUCCESS) && - (dwT == REG_SZ) && (dwS > 1)) - pwszTmpCache = DsoCopyString((LPWSTR)rgbuffer); - } - - RegCloseKey(hk); - - if (pwszTmpCache) - { - dwS = lstrlenW(pwszTmpCache); - dwT = lstrlenW(pwszFile); - fIsCacheFile = ((dwS < dwT) && - (DsoCompareStringsEx(pwszTmpCache, dwS, pwszFile, dwS) == CSTR_EQUAL)); - DsoMemFree(pwszTmpCache); - } - } - - return fIsCacheFile; -} - -//////////////////////////////////////////////////////////////////////// -// FDrawText -// -// This is used by the control for drawing the caption in the titlebar. -// Since a custom caption could contain Unicode characters only printable -// on Unicode OS, we should try to use the Unicode version when available. -// -STDAPI_(BOOL) FDrawText(HDC hdc, WCHAR* pwsz, LPRECT prc, UINT fmt) -{ - BOOL f; - if (v_fUnicodeAPI) - { - f = (BOOL)DrawTextW(hdc, pwsz, -1, prc, fmt); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwsz); - f = (BOOL)DrawTextA(hdc, psz, -1, prc, fmt); - DsoMemFree(psz); - } - return f; -} - - -//////////////////////////////////////////////////////////////////////// -// FSetRegKeyValue -// -// We use this for registration when dealing with the file path, since -// that path may have Unicode characters on some systems. Win9x boxes -// will have to be converted to ANSI. -// -STDAPI_(BOOL) FSetRegKeyValue(HKEY hk, WCHAR* pwsz) -{ - LONG lret; - if (v_fUnicodeAPI) - { - lret = RegSetValueExW(hk, NULL, 0, REG_SZ, (BYTE*)pwsz, (lstrlenW(pwsz) * sizeof(WCHAR))); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwsz); - lret = RegSetValueExA(hk, NULL, 0, REG_SZ, (BYTE*)psz, lstrlen(psz)); - DsoMemFree(psz); - } - return (lret == ERROR_SUCCESS); -} - -//////////////////////////////////////////////////////////////////////// -// FOpenPrinter -// -// Open the specified printer by name. -// -STDAPI_(BOOL) FOpenPrinter(LPCWSTR pwszPrinter, LPHANDLE phandle) -{ - BOOL fRet = FALSE; - DWORD dwLastError = 0; - if (v_fUnicodeAPI) - { - PRINTER_DEFAULTSW prtdef; - memset(&prtdef, 0, sizeof(PRINTER_DEFAULTSW)); - prtdef.DesiredAccess = PRINTER_ACCESS_USE; - fRet = OpenPrinterW((LPWSTR)pwszPrinter, phandle, &prtdef); - } - else - { - LPSTR psz = DsoConvertToMBCS(pwszPrinter); - fRet = OpenPrinterA(psz, phandle, NULL); - if (!fRet) dwLastError = GetLastError(); - DsoMemFree(psz); - } - if (dwLastError) SetLastError(dwLastError); - return fRet; -} - -//////////////////////////////////////////////////////////////////////// -// FGetPrinterSettings -// -// Returns the default device, port name, and DEVMODE structure for the -// printer passed. Handles Unicode translation of DEVMODE if on Win9x. -// -STDAPI_(BOOL) FGetPrinterSettings(HANDLE hprinter, LPWSTR *ppwszProcessor, LPWSTR *ppwszDevice, LPWSTR *ppwszOutput, LPDEVMODEW *ppdvmode, DWORD *pcbSize) -{ - BOOL fRet = FALSE; - DWORD dwLastError = 0; - DWORD cbNeed, cbAlloc = 0; - - if ((ppwszProcessor == NULL) || (ppwszDevice == NULL) || (ppwszOutput == NULL) || - (ppdvmode == NULL) || (pcbSize == NULL)) - return FALSE; - - *ppwszProcessor = NULL; *ppwszDevice = NULL; *ppwszOutput = NULL; - *ppdvmode = NULL; *pcbSize = 0; - - if (v_fUnicodeAPI) // Use Unicode API if possible (much easier)... - { - GetPrinterW(hprinter, 2, NULL, 0, &cbAlloc); - PRINTER_INFO_2W *pinfo = (PRINTER_INFO_2W*)DsoMemAlloc(++cbAlloc); - if (pinfo) - { - fRet = GetPrinterW(hprinter, 2, (BYTE*)pinfo, cbAlloc, &cbNeed); - if (fRet) - { - *ppwszProcessor = DsoConvertToLPWSTR("winspool"); - *ppwszDevice = DsoCopyString(pinfo->pDriverName); - *ppwszOutput = DsoCopyString(pinfo->pPortName); - - if (pinfo->pDevMode) // If we have the devmode, just need to copy it... - { - DWORD cbData = (pinfo->pDevMode->dmSize) + (pinfo->pDevMode->dmDriverExtra); - *ppdvmode = (DEVMODEW*)DsoMemAlloc(cbData); - if (*ppdvmode) - { - memcpy(*ppdvmode, pinfo->pDevMode, cbData); - *pcbSize = cbData; - } - } - } - else dwLastError = GetLastError(); - - DsoMemFree(pinfo); - } - else dwLastError = ERROR_NOT_ENOUGH_MEMORY; - } - else - { - GetPrinterA(hprinter, 2, NULL, 0, &cbAlloc); - PRINTER_INFO_2A *pinfo = (PRINTER_INFO_2A*)DsoMemAlloc(++cbAlloc); - if (pinfo) - { - fRet = GetPrinterA(hprinter, 2, (BYTE*)pinfo, cbAlloc, &cbNeed); - if (fRet) - { - *ppwszProcessor = DsoConvertToLPWSTR("winspool"); - *ppwszDevice = DsoConvertToLPWSTR(pinfo->pDriverName); - *ppwszOutput = DsoConvertToLPWSTR(pinfo->pPortName); - - if (pinfo->pDevMode) // For Win9x API, we have to convert the DEVMODEA - { // into DEVMODEW so we have Unicode names for TARGETDEVICE... - DWORD cbData = sizeof(DEVMODEW) + - ((pinfo->pDevMode->dmSize > sizeof(DEVMODEA)) ? (pinfo->pDevMode->dmSize - sizeof(DEVMODEA)) : 0) + - pinfo->pDevMode->dmDriverExtra; - - *ppdvmode = (DEVMODEW*)DsoMemAlloc(cbData); - if (*ppdvmode) - { - DsoConvertToUnicodeEx( - (LPSTR)(pinfo->pDevMode->dmDeviceName), CCHDEVICENAME, - (LPWSTR)((*ppdvmode)->dmDeviceName), CCHDEVICENAME, 0); - - // The rest of the copy depends on the default size of the DEVMODE. - // Just check the size and convert the form name if it exists... - if (pinfo->pDevMode->dmSize <= FIELD_OFFSET(DEVMODEA, dmFormName)) - { - memcpy(&((*ppdvmode)->dmSpecVersion), - &(pinfo->pDevMode->dmSpecVersion), - pinfo->pDevMode->dmSize - CCHDEVICENAME); - } - else - { - memcpy(&((*ppdvmode)->dmSpecVersion), - &(pinfo->pDevMode->dmSpecVersion), - FIELD_OFFSET(DEVMODEA, dmFormName) - - FIELD_OFFSET(DEVMODEA, dmSpecVersion)); - - DsoConvertToUnicodeEx( - (LPSTR)(pinfo->pDevMode->dmFormName), CCHFORMNAME, - (LPWSTR)((*ppdvmode)->dmFormName), CCHFORMNAME, 0); - - if (pinfo->pDevMode->dmSize > FIELD_OFFSET(DEVMODEA, dmLogPixels)) - memcpy(&((*ppdvmode)->dmLogPixels), - &(pinfo->pDevMode->dmLogPixels), - pinfo->pDevMode->dmSize - FIELD_OFFSET(DEVMODEA, dmLogPixels)); - } - - (*ppdvmode)->dmSize = (WORD)((pinfo->pDevMode->dmSize > sizeof(DEVMODEA)) ? - (sizeof(DEVMODEW) + (pinfo->pDevMode->dmSize - sizeof(DEVMODEA))) : - sizeof(DEVMODEW)); - - memcpy((((BYTE*)(*ppdvmode)) + ((*ppdvmode)->dmSize)), - (((BYTE*)(pinfo->pDevMode)) + (pinfo->pDevMode->dmSize)), - pinfo->pDevMode->dmDriverExtra); - - *pcbSize = cbData; - } - } - } - else dwLastError = GetLastError(); - - DsoMemFree(pinfo); - } - else dwLastError = ERROR_NOT_ENOUGH_MEMORY; - } - if (dwLastError) SetLastError(dwLastError); - return fRet; -} - - -/////////////////////////////////////////////////////////////////////////////////// -// DsoGetFileFromUser -// -// Displays the Open/Save dialog using Unicode version if available. Returns the -// path as a unicode BSTR regardless of OS. -// -STDAPI DsoGetFileFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - LPCWSTR pwzFilter, DWORD dwFiltIdx, LPCWSTR pwszDefExt, LPCWSTR pwszCurrentItem, BOOL fShowSave, - BSTR *pbstrFile, BOOL *pfReadOnly) -{ - BYTE buffer[MAX_PATH * sizeof(WCHAR)]; - BOOL fSuccess; - DWORD dw; - - // Make sure they pass a *bstr... - CHECK_NULL_RETURN(pbstrFile, E_POINTER); - *pbstrFile = NULL; - - buffer[0] = 0; buffer[1] = 0; - - // See if we have Unicode function to call. If so, we use OPENFILENAMEW and - // get the file path in Unicode, returned as BSTR... - if (v_fUnicodeAPI) - { - OPENFILENAMEW ofnw; - memset(&ofnw, 0, sizeof(OPENFILENAMEW)); - ofnw.lStructSize = sizeof(OPENFILENAMEW); - ofnw.hwndOwner = hwndOwner; - ofnw.lpstrFilter = pwzFilter; - ofnw.nFilterIndex = dwFiltIdx; - ofnw.lpstrDefExt = pwszDefExt; - ofnw.lpstrTitle = pwzTitle; - ofnw.lpstrFile = (LPWSTR)&buffer[0]; - ofnw.nMaxFile = MAX_PATH; - ofnw.Flags = dwFlags; - - if (pwszCurrentItem) - { - dw = lstrlenW(pwszCurrentItem); - if ((dw) && (dw < MAX_PATH)) - { - memcpy(ofnw.lpstrFile, pwszCurrentItem, dw * sizeof(WCHAR)); - ofnw.lpstrFile[dw] = L'\0'; - } - } - - if (fShowSave) - fSuccess = GetSaveFileNameW(&ofnw); - else - fSuccess = GetOpenFileNameW(&ofnw); - - if (fSuccess) - { - *pbstrFile = SysAllocString((LPWSTR)&buffer[0]); - if (pfReadOnly) *pfReadOnly = (ofnw.Flags & OFN_READONLY); - } - } - else - { // If not, then we use OPENFILENAMEA and thunk down our params to - // the MBCS of the system, and then thunk back the Unicode for the return... - OPENFILENAMEA ofn; - memset(&ofn, 0, sizeof(OPENFILENAMEA)); - ofn.lStructSize = sizeof(OPENFILENAMEA); - ofn.hwndOwner = hwndOwner; - ofn.lpstrFilter = DsoConvertToMBCS(pwzFilter); - ofn.nFilterIndex = dwFiltIdx; - ofn.lpstrDefExt = DsoConvertToMBCS(pwszDefExt); - ofn.lpstrTitle = DsoConvertToMBCS(pwzTitle); - ofn.lpstrFile = (LPSTR)&buffer[0]; - ofn.nMaxFile = MAX_PATH; - ofn.Flags = dwFlags; - - if (pwszCurrentItem) - DsoConvertToMBCSEx(pwszCurrentItem, lstrlenW(pwszCurrentItem), (LPSTR)&buffer[0], MAX_PATH, GetACP()); - - if (fShowSave) - fSuccess = GetSaveFileNameA(&ofn); - else - fSuccess = GetOpenFileNameA(&ofn); - - - if (fSuccess) - { - *pbstrFile = DsoConvertToBSTR((LPCSTR)&buffer[0]); - if (pfReadOnly) *pfReadOnly = (ofn.Flags & OFN_READONLY); - } - - DsoMemFree((void*)(ofn.lpstrDefExt)); - DsoMemFree((void*)(ofn.lpstrFilter)); - DsoMemFree((void*)(ofn.lpstrTitle)); - } - - // If we got a string, then success. All other errors (even user cancel) should - // be treated as a general failure (feel free to change this for more full function). - return ((*pbstrFile == NULL) ? E_FAIL : S_OK); -} - -/////////////////////////////////////////////////////////////////////////////////// -// DsoGetOleInsertObjectFromUser -// -// Displays the OLE InsertObject dialog using Unicode version if available. -// -STDAPI DsoGetOleInsertObjectFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - BOOL fDocObjectOnly, BOOL fAllowControls, BSTR *pbstrResult, UINT *ptype) -{ - BYTE buffer[MAX_PATH * sizeof(WCHAR)]; - LPCLSID lpNewExcludeList = NULL; - int nNewExcludeCount = 0; - int nNewExcludeLen = 0; - - // Make sure they pass a *bstr... - CHECK_NULL_RETURN(pbstrResult, E_POINTER); - *pbstrResult = NULL; - - // To limit list to just those marked as DocObject servers, you have to enum - // the registry and create an exclude list for OLE dialog. Exclude all except - // those that are marked DocObject under their ProgID. - if (fDocObjectOnly) - { - HKEY hkCLSID; - HKEY hkItem; - HKEY hkDocObject; - DWORD dwIndex = 0; - CHAR szName[MAX_PATH+1]; - - if (RegOpenKeyEx(HKEY_CLASSES_ROOT, "CLSID", 0, KEY_READ|KEY_ENUMERATE_SUB_KEYS, &hkCLSID) == ERROR_SUCCESS) - { - while (RegEnumKey(hkCLSID, dwIndex++, szName, MAX_PATH) == ERROR_SUCCESS) - { - if (RegOpenKeyEx(hkCLSID, szName, 0, KEY_READ, &hkItem) == ERROR_SUCCESS) - { - if ((RegOpenKeyEx(hkItem, "DocObject", 0, KEY_READ, &hkDocObject) != ERROR_SUCCESS)) - { - CLSID clsid; - LPWSTR pwszClsid = DsoConvertToLPWSTR(szName); - if ((pwszClsid) && SUCCEEDED(CLSIDFromString(pwszClsid, &clsid))) - { - if (lpNewExcludeList == NULL) - { - nNewExcludeCount = 0; - nNewExcludeLen = 16; - lpNewExcludeList = new CLSID[nNewExcludeLen]; - } - if (nNewExcludeCount == nNewExcludeLen) - { - LPCLSID lpOldList = lpNewExcludeList; - nNewExcludeLen <<= 2; - lpNewExcludeList = new CLSID[nNewExcludeLen]; - memcpy(lpNewExcludeList, lpOldList, sizeof(CLSID) * nNewExcludeCount); - delete [] lpOldList; - } - - lpNewExcludeList[nNewExcludeCount] = clsid; - nNewExcludeCount++; - } - SAFE_FREESTRING(pwszClsid); - RegCloseKey(hkDocObject); - } - - RegCloseKey(hkItem); - } - } - RegCloseKey(hkCLSID); - } - } - buffer[0] = 0; buffer[1] = 0; - - // See if we have Unicode function to call... - if (v_fUnicodeAPI) - { - OLEUIINSERTOBJECTW oidlg = {0}; - oidlg.cbStruct = sizeof(OLEUIINSERTOBJECTW); - oidlg.dwFlags = dwFlags; - oidlg.hWndOwner = hwndOwner; - oidlg.lpszCaption = pwzTitle; - oidlg.lpszFile = (LPWSTR)buffer; - oidlg.cchFile = MAX_PATH; - oidlg.lpClsidExclude = lpNewExcludeList; - oidlg.cClsidExclude = nNewExcludeCount; - - if (OleUIInsertObjectW(&oidlg) == OLEUI_OK) - { - if ((oidlg.dwFlags & IOF_SELECTCREATENEW) && (oidlg.clsid != GUID_NULL)) - { - LPOLESTR posz; - if (SUCCEEDED(ProgIDFromCLSID(oidlg.clsid, &posz))) - { - *pbstrResult = SysAllocString(posz); - CoTaskMemFree(posz); - } - if (ptype) *ptype = IOF_SELECTCREATENEW; - } - else if ((oidlg.dwFlags & IOF_SELECTCREATEFROMFILE) && (buffer[0] != 0)) - { - *pbstrResult = SysAllocString((LPWSTR)buffer); - if (ptype) *ptype = IOF_SELECTCREATEFROMFILE; - } - } - } - else - { - OLEUIINSERTOBJECTA oidlg = {0}; - oidlg.cbStruct = sizeof(OLEUIINSERTOBJECTA); - oidlg.dwFlags = dwFlags; - oidlg.hWndOwner = hwndOwner; - oidlg.lpszCaption = DsoConvertToMBCS(pwzTitle); - oidlg.lpszFile = (LPSTR)buffer; - oidlg.cchFile = MAX_PATH; - oidlg.lpClsidExclude = lpNewExcludeList; - oidlg.cClsidExclude = nNewExcludeCount; - - if (OleUIInsertObjectA(&oidlg) == OLEUI_OK) - { - if ((oidlg.dwFlags & IOF_SELECTCREATENEW) && (oidlg.clsid != GUID_NULL)) - { - LPOLESTR posz; - if (SUCCEEDED(ProgIDFromCLSID(oidlg.clsid, &posz))) - { - *pbstrResult = SysAllocString(posz); - CoTaskMemFree(posz); - } - if (ptype) *ptype = IOF_SELECTCREATENEW; - } - else if ((oidlg.dwFlags & IOF_SELECTCREATEFROMFILE) && (buffer[0] != 0)) - { - *pbstrResult = DsoConvertToBSTR((LPSTR)buffer); - if (ptype) *ptype = IOF_SELECTCREATEFROMFILE; - } - } - - DsoMemFree((void*)(oidlg.lpszCaption)); - } - - if (lpNewExcludeList) - delete [] lpNewExcludeList; - - // If we got a string, then success. All other errors (even user cancel) should - // be treated as a general failure (feel free to change this for more full function). - return ((*pbstrResult == NULL) ? E_FAIL : S_OK); -} diff --git a/PROMS/DSOFramer/Source2005/utilities.h b/PROMS/DSOFramer/Source2005/utilities.h deleted file mode 100644 index b0da4dec..00000000 --- a/PROMS/DSOFramer/Source2005/utilities.h +++ /dev/null @@ -1,242 +0,0 @@ -/*************************************************************************** - * UTILITIES.H - * - * DSOFramer: Common Utilities and Macros (Shared) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -#ifndef DS_UTILITIES_H -#define DS_UTILITIES_H - -#include -#include - -//////////////////////////////////////////////////////////////////////// -// Fixed Win32 Errors as HRESULTs -// -#define E_WIN32_BUFFERTOOSMALL 0x8007007A //HRESULT_FROM_WIN32(ERROR_INSUFFICIENT_BUFFER) -#define E_WIN32_ACCESSVIOLATION 0x800701E7 //HRESULT_FROM_WIN32(ERROR_INVALID_ADDRESS) -#define E_WIN32_LASTERROR (0x80070000 | GetLastError()) // Assured Error with last Win32 code -#define E_VBA_NOREMOTESERVER 0x800A01CE - -//////////////////////////////////////////////////////////////////////// -// Heap Allocation -// -STDAPI_(LPVOID) DsoMemAlloc(DWORD cbSize); -STDAPI_(void) DsoMemFree(LPVOID ptr); - -// Override new/delete to use our task allocator -// (removing CRT dependency will improve code performance and size)... -void * _cdecl operator new(size_t size); -void _cdecl operator delete(void *ptr); - -//////////////////////////////////////////////////////////////////////// -// String Manipulation Functions -// -STDAPI DsoConvertToUnicodeEx(LPCSTR pszMbcsString, DWORD cbMbcsLen, LPWSTR pwszUnicode, DWORD cbUniLen, UINT uiCodePage); -STDAPI DsoConvertToMBCSEx(LPCWSTR pwszUnicodeString, DWORD cbUniLen, LPSTR pwszMbcsString, DWORD cbMbcsLen, UINT uiCodePage); - -STDAPI_(LPWSTR) DsoConvertToLPWSTR(LPCSTR pszMbcsString); -STDAPI_(BSTR) DsoConvertToBSTR(LPCSTR pszMbcsString); -STDAPI_(LPWSTR) DsoConvertToLPOLESTR(LPCWSTR pwszUnicodeString); -STDAPI_(LPSTR) DsoConvertToMBCS(LPCWSTR pwszUnicodeString); -STDAPI_(UINT) DsoCompareStringsEx(LPCWSTR pwsz1, INT cch1, LPCWSTR pwsz2, INT cch2); -STDAPI_(LPWSTR) DsoCopyString(LPCWSTR pwszString); -STDAPI_(LPWSTR) DsoCopyStringCat(LPCWSTR pwszString1, LPCWSTR pwszString2); -STDAPI_(LPWSTR) DsoCopyStringCatEx(LPCWSTR pwszBaseString, UINT cStrs, LPCWSTR *ppwszStrs); -STDAPI_(LPSTR) DsoCLSIDtoLPSTR(REFCLSID clsid); - -//////////////////////////////////////////////////////////////////////// -// URL Helpers -// -STDAPI_(BOOL) LooksLikeLocalFile(LPCWSTR pwsz); -STDAPI_(BOOL) LooksLikeUNC(LPCWSTR pwsz); -STDAPI_(BOOL) LooksLikeHTTP(LPCWSTR pwsz); -STDAPI_(BOOL) GetTempPathForURLDownload(WCHAR* pwszURL, WCHAR** ppwszLocalFile); -STDAPI URLDownloadFile(LPUNKNOWN punk, WCHAR* pwszURL, WCHAR* pwszLocalFile); - -//////////////////////////////////////////////////////////////////////// -// OLE Conversion Functions -// -STDAPI_(void) DsoHimetricToPixels(LONG* px, LONG* py); -STDAPI_(void) DsoPixelsToHimetric(LONG* px, LONG* py); - -//////////////////////////////////////////////////////////////////////// -// GDI Helper Functions -// -STDAPI_(HBITMAP) DsoGetBitmapFromWindow(HWND hwnd); - -//////////////////////////////////////////////////////////////////////// -// Windows Helper Functions -// -STDAPI_(BOOL) IsWindowChild(HWND hwndParent, HWND hwndChild); - -//////////////////////////////////////////////////////////////////////// -// OLE/Typelib Function Wrappers -// -STDAPI DsoGetTypeInfoEx(REFGUID rlibid, LCID lcid, WORD wVerMaj, WORD wVerMin, HMODULE hResource, REFGUID rguid, ITypeInfo** ppti); -STDAPI DsoDispatchInvoke(LPDISPATCH pdisp, LPOLESTR pwszname, DISPID dspid, WORD wflags, DWORD cargs, VARIANT* rgargs, VARIANT* pvtret); -STDAPI DsoReportError(HRESULT hr, LPWSTR pwszCustomMessage, EXCEPINFO* peiDispEx); - -//////////////////////////////////////////////////////////////////////// -// Unicode Win32 API wrappers (handles thunk down for Win9x) -// -STDAPI_(BOOL) FFileExists(WCHAR* wzPath); -STDAPI_(BOOL) FOpenLocalFile(WCHAR* wzFilePath, DWORD dwAccess, DWORD dwShareMode, DWORD dwCreate, HANDLE* phFile); -STDAPI_(BOOL) FPerformShellOp(DWORD dwOp, WCHAR* wzFrom, WCHAR* wzTo); -STDAPI_(BOOL) FGetModuleFileName(HMODULE hModule, WCHAR** wzFileName); -STDAPI_(BOOL) FIsIECacheFile(LPWSTR pwszFile); -STDAPI_(BOOL) FDrawText(HDC hdc, WCHAR* pwsz, LPRECT prc, UINT fmt); -STDAPI_(BOOL) FSetRegKeyValue(HKEY hk, WCHAR* pwsz); - -STDAPI_(BOOL) FOpenPrinter(LPCWSTR pwszPrinter, LPHANDLE phandle); -STDAPI_(BOOL) FGetPrinterSettings(HANDLE hprinter, LPWSTR *ppwszProcessor, LPWSTR *ppwszDevice, LPWSTR *ppwszOutput, LPDEVMODEW *ppdvmode, DWORD *pcbSize); - -STDAPI DsoGetFileFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - LPCWSTR pwzFilter, DWORD dwFiltIdx, LPCWSTR pwszDefExt, LPCWSTR pwszCurrentItem, BOOL fShowSave, - BSTR *pbstrFile, BOOL *pfReadOnly); - -STDAPI DsoGetOleInsertObjectFromUser(HWND hwndOwner, LPCWSTR pwzTitle, DWORD dwFlags, - BOOL fDocObjectOnly, BOOL fAllowControls, BSTR *pbstrResult, UINT *ptype); - -//////////////////////////////////////////////////////////////////////// -// Common macros -- Used to make code more readable. -// -#define SEH_TRY __try { -#define SEH_EXCEPT(hr) } __except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION){hr = E_WIN32_ACCESSVIOLATION;} -#define SEH_EXCEPT_NULL } __except(GetExceptionCode() == EXCEPTION_ACCESS_VIOLATION){} -#define SEH_START_FINALLY } __finally { -#define SEH_END_FINALLY } - -#define RETURN_ON_FAILURE(x) if (FAILED(x)) return (x) -#define GOTO_ON_FAILURE(x, lbl) if (FAILED(x)) goto lbl -#define CHECK_NULL_RETURN(v, e) if ((v) == NULL) return (e) - -#define SAFE_ADDREF_INTERFACE if (x) { (x)->AddRef(); } -#define SAFE_RELEASE_INTERFACE(x) if (x) { (x)->Release(); (x) = NULL; } -#define SAFE_SET_INTERFACE(x, y) if (((x) = (y)) != NULL) ((IUnknown*)(x))->AddRef() -#define SAFE_FREESTRING(s) if (s) { DsoMemFree(s); (s) = NULL; } -#define SAFE_FREEBSTR(s) if (s) { SysFreeString(s); (s) = NULL; } - -VARIANT* __fastcall DsoPVarFromPVarRef(VARIANT* px); -BOOL __fastcall DsoIsVarParamMissing(VARIANT* px); -LPWSTR __fastcall DsoPVarWStrFromPVar(VARIANT* px); -SAFEARRAY* __fastcall DsoPVarArrayFromPVar(VARIANT* px); -IUnknown* __fastcall DsoPVarUnkFromPVar(VARIANT* px); -SHORT __fastcall DsoPVarShortFromPVar(VARIANT* px, SHORT fdef); -LONG __fastcall DsoPVarLongFromPVar(VARIANT* px, LONG fdef); -BOOL __fastcall DsoPVarBoolFromPVar(VARIANT* px, BOOL fdef); - -#define PARAM_IS_MISSING(x) DsoIsVarParamMissing(DsoPVarFromPVarRef((x))) -#define LPWSTR_FROM_VARIANT(x) DsoPVarWStrFromPVar(DsoPVarFromPVarRef(&(x))) -#define LONG_FROM_VARIANT(x, y) DsoPVarLongFromPVar(DsoPVarFromPVarRef(&(x)), (y)) -#define BOOL_FROM_VARIANT(x, y) DsoPVarBoolFromPVar(DsoPVarFromPVarRef(&(x)), (y)) -#define PUNK_FROM_VARIANT(x) DsoPVarUnkFromPVar(DsoPVarFromPVarRef(&(x))) -#define PSARRAY_FROM_VARIANT(x) DsoPVarArrayFromPVar(DsoPVarFromPVarRef(&(x))) - -#define ASCII_UPPERCASE(x) ((((x) > 96) && ((x) < 123)) ? (x) - 32 : (x)) -#define ASCII_LOWERCASE(x) ((((x) > 64) && ((x) < 91)) ? (x) + 32 : (x)) - -//////////////////////////////////////////////////////////////////////// -// Debug macros -// -#ifdef _DEBUG - -#define ASSERT(x) if(!(x)) DebugBreak() -#define ODS(x) OutputDebugString(x) - -#define TRACE1(sz, arg1) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1)); \ - ODS(ach); } - -#define TRACE2(sz, arg1, arg2) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1), (arg2)); \ - ODS(ach); } - -#define TRACE3(sz, arg1, arg2, arg3) { \ - CHAR ach[1024]; \ - wsprintf(ach, (sz), (arg1), (arg2), (arg3)); \ - ODS(ach); } - -#define TRACE_LPRECT(sz, lprc) { \ - CHAR ach[1024]; \ - wsprintf(ach, "RECT %s - left=%d, top=%d, right=%d, bottom=%d\n", \ - (sz), (lprc)->left, (lprc)->top, (lprc)->right, (lprc)->bottom); \ - ODS(ach); } - -#else // !defined(_DEBUG) - -#define ASSERT(x) -#define ODS(x) -#define TRACE1(sz, arg1) -#define TRACE2(sz, arg1, arg2) -#define TRACE3(sz, arg1, arg2, arg3) -#define TRACE_LPRECT(sz, lprc) - -#endif // (_DEBUG) - -//////////////////////////////////////////////////////////////////////// -// Macros for Nested COM Interfaces -// -#ifdef _DEBUG -#define DEFINE_REFCOUNT ULONG m_cRef; -#define IMPLEMENT_DEBUG_ADDREF m_cRef++; -#define IMPLEMENT_DEBUG_RELEASE(x) ASSERT(m_cRef > 0); m_cRef--; if (m_cRef == 0){ODS(" > I" #x " released\n");} -#define IMPLEMENT_DEBUG_REFSET m_cRef = 0; -#define IMPLEMENT_DEBUG_REFCHECK(x) ASSERT(m_cRef == 0); if (m_cRef != 0){ODS(" * I" #x " NOT released!!\n");} -#else -#define DEFINE_REFCOUNT -#define IMPLEMENT_DEBUG_ADDREF -#define IMPLEMENT_DEBUG_RELEASE(x) -#define IMPLEMENT_DEBUG_REFSET -#define IMPLEMENT_DEBUG_REFCHECK(x) -#endif /* !_DEBUG */ - -#define BEGIN_INTERFACE_PART(localClass, baseClass) \ -class X##localClass : public baseClass \ -{ public: X##localClass(){IMPLEMENT_DEBUG_REFSET} \ - ~X##localClass(){IMPLEMENT_DEBUG_REFCHECK(##localClass)} \ - STDMETHOD(QueryInterface)(REFIID iid, PVOID* ppvObj); \ - STDMETHOD_(ULONG, AddRef)(); \ - STDMETHOD_(ULONG, Release)(); \ - DEFINE_REFCOUNT - -#define END_INTERFACE_PART(localClass) \ -} m_x##localClass; \ -friend class X##localClass; - -#define METHOD_PROLOGUE(theClass, localClass) \ - theClass* pThis = \ - ((theClass*)(((BYTE*)this) - (size_t)&(((theClass*)0)->m_x##localClass))); - -#define IMPLEMENT_INTERFACE_UNKNOWN(theClass, localClass) \ - ULONG theClass::X##localClass::AddRef() { \ - METHOD_PROLOGUE(theClass, localClass) \ - IMPLEMENT_DEBUG_ADDREF \ - return pThis->AddRef(); \ - } \ - ULONG theClass::X##localClass::Release() { \ - METHOD_PROLOGUE(theClass, localClass) \ - IMPLEMENT_DEBUG_RELEASE(##localClass) \ - return pThis->Release(); \ - } \ - STDMETHODIMP theClass::X##localClass::QueryInterface(REFIID iid, void **ppvObj) { \ - METHOD_PROLOGUE(theClass, localClass) \ - return pThis->QueryInterface(iid, ppvObj); \ - } - - -#endif //DS_UTILITIES_H \ No newline at end of file diff --git a/PROMS/DSOFramer/Source2005/version.h b/PROMS/DSOFramer/Source2005/version.h deleted file mode 100644 index fcc71283..00000000 --- a/PROMS/DSOFramer/Source2005/version.h +++ /dev/null @@ -1,59 +0,0 @@ -/*************************************************************************** - * VERSION.H - Contol version defines - * - * DSOFramer: Version Information Header (Shared) - * - * Copyright 1999-2004; Microsoft Corporation. All rights reserved. - * Written by Microsoft Developer Support Office Integration (PSS DSOI) - * - * This code is provided via KB 311765 as a sample. It is not a formal - * product and has not been tested with all containers or servers. Use it - * for educational purposes only. See the EULA.TXT file included in the - * KB download for full terms of use and restrictions. - * - * THIS CODE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, - * EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE. - * - ***************************************************************************/ -/*************************************************************************** - * - * IMPORTANT: If you modify this sample, you should change all of the values - * below to differentiate your control from this sample. - * - ***************************************************************************/ -#ifndef DS_VERSION_H -#define DS_VERSION_H - -#define DSOFRAMERCTL_VERSION 1.3 -#define DSOFRAMERCTL_VERSION_MAJOR 1 -#define DSOFRAMERCTL_VERSION_MINOR 3 -#define DSOFRAMERCTL_VERSION_BUILD 1323 -#define DSOFRAMERCTL_VERSIONSTR "1.3" -#define DSOFRAMERCTL_VERSIONSTRFULL "1.3.1323.1" - -#define DSOFRAMERCTL_FULLNAME "DSO ActiveX Document Framer Control" -#define DSOFRAMERCTL_SHORTNAME "DSO Framer Control Object" - -#define DSOFRAMERCTL_PROGID "DSOFramer.FramerControl" - -#define DSOFRAMERCTL_TLIB 00460180-9E5E-11d5-B7C8-B8269041DD57 -#define DSOFRAMERCTL_TLIBSTR "{00460180-9E5E-11d5-B7C8-B8269041DD57}" - -#define DSOFRAMERCTL_INTERFACE 00460181-9E5E-11d5-B7C8-B8269041DD57 - -#define DSOFRAMERCTL_CLSID 00460182-9E5E-11d5-B7C8-B8269041DD57 -#define DSOFRAMERCTL_CLSIDSTR "{00460182-9E5E-11d5-B7C8-B8269041DD57}" - -#define DSOFRAMERCTL_DISPEVTS 00460185-9E5E-11d5-B7C8-B8269041DD57 - -#define DSOF_DISPID_FILECMD 1 -#define DSOF_DISPID_DOCOPEN 2 -#define DSOF_DISPID_DOCCLOSE 3 -#define DSOF_DISPID_ACTIVATE 4 -#define DSOF_DISPID_BDOCCLOSE 5 -#define DSOF_DISPID_BDOCSAVE 6 -#define DSOF_DISPID_ENDPREVIEW 7 -#define DSOF_DISPID_SAVECOMPLETE 8 - -#endif //DS_VERSION_H diff --git a/PROMS/DataLoader/App.config b/PROMS/DataLoader/App.config deleted file mode 100644 index 55bfd659..00000000 --- a/PROMS/DataLoader/App.config +++ /dev/null @@ -1,178 +0,0 @@ - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Checked - - - Unchecked - - - Checked - - - - - - - - - - - - - - - Data Source=.\SQLEXPRESS;Initial Catalog={DBName};Integrated Security=True - - - VEPROMS - - - - - - - - - Unchecked - - - 0 - - - 1 - - - Checked - - - Checked - - - 0 - - - Phase1 - - - Phase2 - - - Phase3 - - - c:\development\fmtall - - - c:\development\genmacall - - - False - - - Phase4 - - - - - - 0 - - - -1 - - - False - - - False - - - False - - - 0 - - - - diff --git a/PROMS/DataLoader/App.config.org b/PROMS/DataLoader/App.config.org deleted file mode 100644 index 2f3501bd..00000000 --- a/PROMS/DataLoader/App.config.org +++ /dev/null @@ -1,177 +0,0 @@ - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Checked - - - Unchecked - - - Checked - - - - - - - - - - - - - - - Data Source=.\SQLEXPRESS;Initial Catalog={DBName};Integrated Security=True - - - VEPROMS - - - - - - - - - Unchecked - - - 0 - - - 1 - - - Checked - - - Checked - - - 0 - - - Phase1 - - - Phase2 - - - Phase3 - - - c:\development\fmtall - - - c:\development\genmacall - - - False - - - Phase4 - - - - - - 0 - - - -1 - - - False - - - False - - - False - - - - diff --git a/PROMS/DataLoader/Applicability.cs b/PROMS/DataLoader/Applicability.cs deleted file mode 100644 index a035ca6e..00000000 --- a/PROMS/DataLoader/Applicability.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; - -namespace DataLoader -{ - public partial class Loader - { - public Dictionary MyProcAPL; - private static Dictionary GetApple(string proc) - { - Dictionary procAPL = new Dictionary(); - FileInfo myFile = new FileInfo(proc); - FileStream fs = myFile.OpenRead(); - BinaryReader br = new BinaryReader(fs); - byte[] myBuff = new byte[myFile.Length]; - br.Read(myBuff, 0, (int)myFile.Length); - br.Close(); - fs.Close(); - int offset = 0; - while (offset < myBuff.Length) - { - string recnum = Encoding.Default.GetString(myBuff, offset, 8); - int applicability = BitConverter.ToInt32(myBuff, offset + 8); - string applicabilityToStr = string.Format("{0:X8}", applicability); - //4294967296 - if (!procAPL.ContainsKey(recnum)) - procAPL.Add(recnum, applicabilityToStr); - else - if (procAPL[recnum] != applicabilityToStr) - procAPL[recnum] = applicabilityToStr; - offset += 12; - } - return procAPL; - } - } -} diff --git a/PROMS/DataLoader/Applicability.cs.bak b/PROMS/DataLoader/Applicability.cs.bak deleted file mode 100644 index f64e87fe..00000000 --- a/PROMS/DataLoader/Applicability.cs.bak +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; - -namespace DataLoader -{ - public partial class Loader - { - public Dictionary MyProcAPL; - private static Dictionary GetApple(string proc) - { - Dictionary procAPL = new Dictionary(); - FileInfo myFile = new FileInfo(proc); - FileStream fs = myFile.OpenRead(); - BinaryReader br = new BinaryReader(fs); - byte[] myBuff = new byte[myFile.Length]; - br.Read(myBuff, 0, (int)myFile.Length); - br.Close(); - fs.Close(); - int offset = 0; - while (offset < myBuff.Length) - { - string recnum = Encoding.Default.GetString(myBuff, offset, 8); - //if ((myFile.Name.ToUpper() == "PROC000.APL" && (recnum == "00002491"))) - // System.Threading.Thread.Sleep(1000); - int applicability = BitConverter.ToInt32(myBuff, offset + 8); - string applicabilityToStr = string.Format("{0:X8}", applicability); - //4294967296 - if (!procAPL.ContainsKey(recnum)) - procAPL.Add(recnum, applicabilityToStr); - else - if (procAPL[recnum] != applicabilityToStr) - procAPL[recnum] = applicabilityToStr; - offset += 12; - } - return procAPL; - } - } -} diff --git a/PROMS/DataLoader/Approve.cs b/PROMS/DataLoader/Approve.cs deleted file mode 100644 index e96f9943..00000000 --- a/PROMS/DataLoader/Approve.cs +++ /dev/null @@ -1,516 +0,0 @@ -//using System; -using System.Collections.Generic; -using System.Text; -using VEPROMS.CSLA.Library; -using System.IO; -using System.Data.OleDb; -using System.Data; - -namespace DataLoader -{ - public partial class Loader - { - public bool BuildApprovedRevision() - { - if(!frmMain.RunScript("PROMSApproveApprove.sql", frmMain.DBName)) return false; - bool rv = false; - using (Stage myStage = GetApprovedStage()) - { - if (myStage == null) - return rv; - DocVersionInfoList dvil = DocVersionInfoList.Get(); - foreach (DocVersionInfo dvi in dvil) - { - if (dvi.Procedures.Count > 0) - { - if (!frmMain.MySettings.OnlyThisSet || frmMain.ProcedureSetPath.ToUpper() == dvi.MyFolder.Title.ToUpper()) - { - string approvedFolder = dvi.MyFolder.Title + @"\APPROVED"; - //B2012-094 fix - if (!Directory.Exists(approvedFolder)) frmMain.MyWarning = "**** " + dvi.MyFolder.Title + " Approved folder does not exist"; - else if (!File.Exists(approvedFolder + @"\SET.DBF")) frmMain.MyWarning = "**** " + dvi.MyFolder.Title + " Approved Set.dbf does not exist"; - else if (!File.Exists(approvedFolder + @"\USAGERO.DBF")) frmMain.MyWarning = "**** " + dvi.MyFolder.Title + " Approved UsageRO.dbf does not exist"; - else if (!Directory.Exists(approvedFolder + @"\PDFS")) frmMain.MyWarning = "**** " + dvi.MyFolder.Title + " Approved Pdfs folder does not exist"; - else if (Directory.GetFiles(approvedFolder + @"\PDFS","*.PDF").Length == 0) frmMain.MyWarning = "**** " + dvi.MyFolder.Title + " Approved Pdfs folder does not contain any pdf files"; - else rv |= BuildApprovedRevision(myStage, approvedFolder, dvi); - } - } - } - } - return rv; - } - - private static Stage GetApprovedStage() - { - StageInfoList sil = StageInfoList.Get(); - foreach (StageInfo si in sil) - { - if (si.Name.ToUpper() == "APPROVED") - return si.Get(); - } - return null; - } - private bool BuildApprovedRevision(Stage myStage, string approvedFolder, DocVersionInfo dvi) - { - bool rv = false; - if (dvi.MultiUnitCount <= 1) - { - ApprovedFolder af = new ApprovedFolder(approvedFolder); - foreach (ProcedureInfo pi in dvi.Procedures) - { - rv |= BuildApprovedRevision(myStage, af, pi, 0); - } - } - else - { - ApprovedFolder af = new ApprovedFolder(approvedFolder, dvi); - foreach (ProcedureInfo pi in dvi.Procedures) - { - for (int i = 1; i <= dvi.MultiUnitCount; i++) - rv |= BuildApprovedRevision(myStage, af, pi, i); - } - } - return rv; - } - private bool BuildApprovedRevision(Stage myStage, ApprovedFolder af, ProcedureInfo pi, int selectedSlave) - { - bool rv = false; - if (selectedSlave > 0) - pi.MyDocVersion.DocVersionConfig.SelectedSlave = selectedSlave; - frmMain.MyInfo = string.Format("Loading approved data for Procedure: {0}", pi.DisplayNumber); - // if working draft procedure does not exist in approved folder, don't bother processing - if (!af.EntryFromProc.ContainsKey(pi.DisplayNumber)) return rv; - using (Revision revision = CreateRevision(af, pi)) - { - System.DateTime dts = pi.DTS; - string userID = af.EntryFromProc[pi.DisplayNumber].UserID; - using (Version version = Version.MakeVersion(revision, myStage, GetPDF(af,pi), GetSummaryPDF(), dts, userID)) - { - using (Check check = Check.MakeCheck(revision, myStage, af.BuildConsistencyChecks(pi))) - { - rv |= true; - } - } - } - if(!rv) - frmMain.MyInfo = string.Format("Loading Procedure: {0} FAILED MISERABLY", pi.DisplayNumber); - return rv; - } - private byte[] GetSummaryPDF() - { - return null; - } - private byte[] GetPDF(ApprovedFolder af, ProcedureInfo pi) - { - string pdf = string.Format(@"{0}\PDFS\{1}.pdf", af.Path, pi.DisplayNumber); - FileInfo pdfFile = new FileInfo(pdf); - if (pdfFile.Exists) - { - FileStream fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - byte[] pdfBuf = new byte[pdfFile.Length]; - fs.Read(pdfBuf, 0, pdfBuf.Length); - fs.Close(); - return pdfBuf; - } - return null; - } - private Revision CreateRevision(ApprovedFolder af, ProcedureInfo pi) - { - int typeID = 1; //revision not tempmod - ProcInfo pinf = af.EntryFromProc[pi.DisplayNumber]; - string revisionNumber = pinf.Rev; - System.DateTime revisionDate = System.DateTime.Parse(pinf.RevDate ?? "1/1/1980"); - string notes = "Migration Of Current Approved Revision"; - RevisionConfig cfg = new RevisionConfig(); - cfg.History_StartDate = pinf.StartDateTime; - if (pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0) - cfg.Applicability_Index = pi.MyDocVersion.DocVersionConfig.SelectedSlave; - string config = cfg.ToString(); - System.DateTime dts = pi.DTS; - string userID = pinf.UserID; - return Revision.MakeRevision(pi.ItemID, typeID, revisionNumber, revisionDate, notes, config, dts, userID); - } - } - public partial class ApprovedFolder - { - private OleDbConnection _Connection; - public OleDbConnection Connection - { - get - { - if(_Connection == null) - _Connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _Path + ";Extended Properties=dBase III;Persist Security Info=False"); - return _Connection; - } - } - private string _Path; - public string Path - { - get { return _Path; } - set { _Path = value; } - } - private System.DateTime _ROFstDate = System.DateTime.MinValue; - public System.DateTime ROFstDate - { - get - { - if (_ROFstDate == System.DateTime.MinValue) - { - FileInfo fi = new FileInfo(string.Format(@"{0}\ro.fst",Path)); - if(fi.Exists) - _ROFstDate = fi.LastWriteTimeUtc; - } - return _ROFstDate; - } - } - - private Dictionary _ROValues = new Dictionary(); - private Dictionary _LibDocDates = new Dictionary(); - private Dictionary> _ProcROs = new Dictionary>(); - private Dictionary> _LibROs = new Dictionary>(); - private Dictionary> _LibDocs = new Dictionary>(); - - public string BuildConsistencyChecks(ProcedureInfo proc) - { - /* - - - - - - - - - */ - ConsistencyChecks cc = new ConsistencyChecks(); - cc.ItemID = proc.ItemID; - BuildROChecks(cc, proc); - BuildLibDocChecks(cc, proc); - return cc.ToString().Replace("OldDocDate=\"0001-01-01T00:00:00\"", ""); - } - - private void BuildLibDocChecks(ConsistencyChecks cc, ProcedureInfo proc) - { - if (_LibDocs.ContainsKey(proc.DisplayNumber)) - { - foreach (string libdoc in _LibDocs[proc.DisplayNumber]) - { - FileInfo fi = new FileInfo(string.Format(@"{0}\RTFFILES\{1}.LIB",Path,libdoc)); - if (fi.Exists) - { - //if (proc.MyDocVersion.VersionID > 1) - // System.Threading.Thread.Sleep(5000); - int docid = GetDocID(libdoc, proc.MyDocVersion.VersionID); - if (docid > 0) - cc.LibDocConsistency.AddLibDocCheck(docid, fi.LastWriteTimeUtc); - } - } - } - } - - private int GetDocID(string libdoc, int versionid) - { - DocumentInfo di = DocumentInfo.GetByLibDocName(libdoc, versionid); - return di.DocID; - } - - private void BuildROChecks(ConsistencyChecks cc, ProcedureInfo proc) - { - cc.ROConsistency.ROFstDate = ROFstDate; - if (_ProcROs.ContainsKey(proc.DisplayNumber)) - { - foreach (string roid in _ProcROs[proc.DisplayNumber]) - cc.ROConsistency.AddROCheck(FormatROID(roid), GetROValue(FormatROID(roid))); - } - //int cnt = cc.ROConsistency.MyROChecks.Length; - if (_LibDocs.ContainsKey(proc.DisplayNumber)) - { - foreach (string libdoc in _LibDocs[proc.DisplayNumber]) - { - if (_LibROs.ContainsKey(libdoc)) - { - foreach (string roid in _LibROs[libdoc]) - cc.ROConsistency.AddROCheck(FormatROID(roid), GetROValue(FormatROID(roid))); - } - } - } - } - - private string GetROValue(string roid) - { - if (!_ROValues.ContainsKey(roid)) - { - //if (roid.Contains("000128")) - // System.Console.WriteLine(); - //string ss = _Lookup.GetRoValue(roid); - //ss = ItemInfo.ConvertToDisplayText(ss); - //ss = ss.Replace('\n', ';'); - - _ROValues.Add(roid, PrepareForXML(ItemInfo.ConvertToDisplayText(_Lookup.GetRoValue(roid)))); - } - return _ROValues[roid]; - } - - private string PrepareForXML(string rovalue) - { - StringBuilder sb = new StringBuilder(); - foreach (char c in rovalue) - { - if (c < ' ') - sb.Append(string.Format(@"\x{0:X4}", (int)c)); - else - sb.Append(c); - } - return sb.ToString(); - } - private string FormatROID(string roid) - { - if (roid.Length == 16 && roid.EndsWith("0000")) - return roid.Substring(0, 12).ToUpper(); - return roid.ToUpper(); - } - - private Dictionary _EntryFromProc; - public Dictionary EntryFromProc - { - get - { - if (_EntryFromProc == null) - _EntryFromProc = FillEntryFromProc(); - return _EntryFromProc; - } - } - private Dictionary FillEntryFromProc() - { - Dictionary rv = new Dictionary(); - using (OleDbDataAdapter da = new OleDbDataAdapter("Select * from [set] where entry is not null", Connection)) - { - using (DataSet ds = new DataSet()) - { - da.Fill(ds); - foreach (DataRow dr in ds.Tables[0].Rows) - if (!rv.ContainsKey(dr["NUMBER"].ToString())) - rv.Add(dr["NUMBER"].ToString(), new ProcInfo(dr, Path)); - } - } - return rv; - } - private ROFSTLookup _Lookup; - public ApprovedFolder(string path) - { - _Path = path; - FillROs(); - FillLibDocs(); - _Lookup = new ROFSTLookup(string.Format(@"{0}\RO.FST", Path)); - } - public ApprovedFolder(string path, DocVersionInfo dvi) - { - _Path = path; - FillROs(); - FillLibDocs(); - _Lookup = new ROFSTLookup(string.Format(@"{0}\RO.FST", Path)); - _EntryFromProc = FillEntryFromProcMulti(dvi); - } - - private Dictionary FillEntryFromProcMulti(DocVersionInfo dvi) - { - Dictionary rv = new Dictionary(); - for (int i = 1; i <= dvi.MultiUnitCount; i++) - { - foreach (ProcedureInfo pi in dvi.Procedures) - { - pi.MyDocVersion.DocVersionConfig.SelectedSlave = i; - rv.Add(pi.DisplayNumber, new ProcInfo(pi, Path)); - } - } - return rv; - } - - private void FillLibDocs() - { - using (OleDbDataAdapter da = new OleDbDataAdapter("Select distinct FROMNUMBER, TONUMBER from [tran] where tonumber like 'DOC%'", Connection)) - { - using (DataSet ds = new DataSet()) - { - da.Fill(ds); - foreach (DataRow dr in ds.Tables[0].Rows) - { - string number = dr["FROMNUMBER"].ToString(); - string libdoc = dr["TONUMBER"].ToString(); - if (!_LibDocs.ContainsKey(number)) - _LibDocs.Add(number, new List()); - if (!_LibDocs[number].Contains(libdoc)) - _LibDocs[number].Add(libdoc); - } - } - } - } - - private void FillROs() - { - using (OleDbDataAdapter da = new OleDbDataAdapter("Select distinct NUMBER, ROID from [usagero]", Connection)) - { - using (DataSet ds = new DataSet()) - { - da.Fill(ds); - foreach (DataRow dr in ds.Tables[0].Rows) - { - string number = dr["NUMBER"].ToString(); - string roid = dr["ROID"].ToString(); - if (number.StartsWith("DOC")) - { - if (!_LibROs.ContainsKey(number)) - _LibROs.Add(number, new List()); - if (!_LibROs[number].Contains(roid)) - _LibROs[number].Add(roid); - } - else - { - if (!_ProcROs.ContainsKey(number)) - _ProcROs.Add(number, new List()); - if (!_ProcROs[number].Contains(roid)) - _ProcROs[number].Add(roid); - } - } - } - } - } - } - public partial class ProcInfo - { - private log4net.ILog log; - private string _Number; - public string Number - { - get { return _Number; } - set { _Number = value; } - } - private string _Entry; - public string Entry - { - get { return _Entry; } - set { _Entry = value; } - } - private string _UserID; - public string UserID - { - get { return _UserID; } - set { _UserID = value; } - } - private System.DateTime _StartDateTime; - public System.DateTime StartDateTime - { - get { return _StartDateTime; } - set { _StartDateTime = value; } - } - private string _Rev; - public string Rev - { - get { return _Rev; } - set { _Rev = value; } - } - private string _RevDate; - public string RevDate - { - get { return _RevDate; } - set { _RevDate = value; } - } - private string _ReviewDate; - public string ReviewDate - { - get { return _ReviewDate; } - set { _ReviewDate = value; } - } - public ProcInfo(ProcedureInfo pi, string afpath) - { - Number = pi.DisplayNumber; - Entry = pi.DisplayText; - UserID = pi.UserID; - StartDateTime = pi.DTS; - RevDate = pi.ProcedureConfig.Print_RevDate; - Rev = pi.ProcedureConfig.Print_Rev; - } - public ProcInfo(DataRow dr, string afpath) - { - Number = dr["NUMBER"].ToString(); - Entry = dr["ENTRY"].ToString(); - UserID = dr["INITIALS"].ToString(); - if (UserID == string.Empty) UserID = "UNKNOWN"; - //string date = GetDTS(dr["DATE"].ToString(), dr["TIME"].ToString()).ToString("MM/dd/yyyy HH:MM");//System.DateTime.Parse(dr["DATE"].ToString()).ToString("MM/dd/yyyy"); - //string time = dr["TIME"].ToString(); - //if (time.EndsWith(":")) - // date += " " + time.Substring(0, 2) + ":" + time.Substring(2, 2); - //else - // date += " " + time.Substring(0, 2) + ":" + time.Substring(3, 2); - //StartDateTime = System.DateTime.Parse(date); - StartDateTime = GetDTS(dr["DATE"].ToString(), dr["TIME"].ToString()); - RevDate = StartDateTime.ToString("MM/dd/yyyy"); - FixItems fis = new FixItems(new FileInfo(string.Format(@"{0}\{1}.fix", afpath, Entry))); - if (fis.Count > 0) - { - Rev = fis[0].Rev; - RevDate = fis[0].RevDate ?? GetDBFRevDate(afpath); - ReviewDate = fis[0].ReviewDate; - } - } - public System.DateTime GetDTS(string date, string time) - { - // Set the date/time stamp. If there is no 'date', set the date - // to 1/1/2000 (this can be changed!). If there is not 'time', - // set the time to 0:0:0 (midnight). - - System.DateTime dts = System.DateTime.Now; - string month = "01"; - string day = "01"; - string year = "2000"; - string hour = ""; - string minute = ""; - try - { - if (date != null && date != "") - { - int indx1 = date.IndexOf("/"); - month = date.Substring(0, indx1); - int indx2 = date.IndexOf("/", indx1 + 1); - day = date.Substring(indx1 + 1, indx2 - indx1 - 1); - year = date.Substring(indx2 + 1, 4); - } - if (time == null || time == "") - { - hour = "0"; - minute = "0"; - } - else - { - - hour = time.Substring(0, 2); - int indxc = time.IndexOfAny(":A-".ToCharArray()); - if (indxc == time.Length - 1) - minute = time.Substring(2, 2); - else - minute = time.Substring(indxc + 1, time.Length - indxc - 1); - } - dts = new System.DateTime(System.Convert.ToInt32(year), System.Convert.ToInt32(month), System.Convert.ToInt32(day), - System.Convert.ToInt32(hour), System.Convert.ToInt32(minute), 0); - } - catch (System.Exception ex) - { - log.ErrorFormat("Bad Date/Time {0} {1}. Set to NOW.", date, time); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - //frmMain.AddError(ex, "Bad Date/Time {0} {1}", date, time); - log.ErrorFormat(ex.StackTrace); - return dts; - } - return dts; - } - - private string GetDBFRevDate(string afpath) - { - FileInfo fi = new FileInfo(afpath + @"\" + Entry + ".dbf"); - if (fi.Exists) - return fi.LastWriteTime.ToShortDateString(); - return null; - } - } - -} diff --git a/PROMS/DataLoader/Approve.cs.bak b/PROMS/DataLoader/Approve.cs.bak deleted file mode 100644 index c12dee64..00000000 --- a/PROMS/DataLoader/Approve.cs.bak +++ /dev/null @@ -1,521 +0,0 @@ -//using System; -using System.Collections.Generic; -using System.Text; -using VEPROMS.CSLA.Library; -using System.IO; -using System.Data.OleDb; -using System.Data; - -namespace DataLoader -{ - public partial class Loader - { - public bool BuildApprovedRevision() - { - if(!frmMain.RunScript("PROMSApproveApprove.sql", frmMain.MySettings.DBName)) return false; - bool rv = false; - using (Stage myStage = GetApprovedStage()) - { - if (myStage == null) - return rv; - DocVersionInfoList dvil = DocVersionInfoList.Get(); - foreach (DocVersionInfo dvi in dvil) - { - if (dvi.Procedures.Count > 0) - { - if (!frmMain.MySettings.OnlyThisSet || frmMain.MySettings.ProcedureSetPath.ToUpper() == dvi.MyFolder.Title.ToUpper()) - { - string approvedFolder = dvi.MyFolder.Title + @"\APPROVED"; - //B2012-094 fix - if (!Directory.Exists(approvedFolder)) - frmMain.MyWarning = "**** " + dvi.MyFolder.Title + " Approved folder does not exist"; - else if (!File.Exists(approvedFolder + @"\SET.DBF")) - frmMain.MyWarning = "**** " + dvi.MyFolder.Title + " Approved Set.dbf does not exist"; - else if (!File.Exists(approvedFolder + @"\USAGERO.DBF")) - frmMain.MyWarning = "**** " + dvi.MyFolder.Title + " Approved UsageRO.dbf does not exist"; - else if (!Directory.Exists(approvedFolder + @"\PDFS")) - frmMain.MyWarning = "**** " + dvi.MyFolder.Title + " Approved Pdfs folder does not exist"; - else if (Directory.GetFiles(approvedFolder + @"\PDFS", "*.PDF").Length == 0) - frmMain.MyWarning = "**** " + dvi.MyFolder.Title + " Approved Pdfs folder does not contain any pdf files"; - else rv |= BuildApprovedRevision(myStage, approvedFolder, dvi); - } - } - } - } - return rv; - } - - private static Stage GetApprovedStage() - { - StageInfoList sil = StageInfoList.Get(); - foreach (StageInfo si in sil) - { - if (si.Name.ToUpper() == "APPROVED") - return si.Get(); - } - return null; - } - private bool BuildApprovedRevision(Stage myStage, string approvedFolder, DocVersionInfo dvi) - { - bool rv = false; - if (dvi.MultiUnitCount <= 1) - { - ApprovedFolder af = new ApprovedFolder(approvedFolder); - foreach (ProcedureInfo pi in dvi.Procedures) - { - rv |= BuildApprovedRevision(myStage, af, pi, 0); - } - } - else - { - ApprovedFolder af = new ApprovedFolder(approvedFolder, dvi); - foreach (ProcedureInfo pi in dvi.Procedures) - { - for (int i = 1; i <= dvi.MultiUnitCount; i++) - rv |= BuildApprovedRevision(myStage, af, pi, i); - } - } - return rv; - } - private bool BuildApprovedRevision(Stage myStage, ApprovedFolder af, ProcedureInfo pi, int selectedSlave) - { - bool rv = false; - if (selectedSlave > 0) - pi.MyDocVersion.DocVersionConfig.SelectedSlave = selectedSlave; - frmMain.MyInfo = string.Format("Loading approved data for Procedure: {0}", pi.DisplayNumber); - // if working draft procedure does not exist in approved folder, don't bother processing - if (!af.EntryFromProc.ContainsKey(pi.DisplayNumber)) return rv; - using (Revision revision = CreateRevision(af, pi)) - { - System.DateTime dts = pi.DTS; - string userID = af.EntryFromProc[pi.DisplayNumber].UserID; - using (Version version = Version.MakeVersion(revision, myStage, GetPDF(af,pi), GetSummaryPDF(), dts, userID)) - { - using (Check check = Check.MakeCheck(revision, myStage, af.BuildConsistencyChecks(pi))) - { - rv |= true; - } - } - } - if(!rv) - frmMain.MyInfo = string.Format("Loading Procedure: {0} FAILED MISERABLY", pi.DisplayNumber); - return rv; - } - private byte[] GetSummaryPDF() - { - return null; - } - private byte[] GetPDF(ApprovedFolder af, ProcedureInfo pi) - { - string pdf = string.Format(@"{0}\PDFS\{1}.pdf", af.Path, pi.DisplayNumber); - FileInfo pdfFile = new FileInfo(pdf); - if (pdfFile.Exists) - { - FileStream fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - byte[] pdfBuf = new byte[pdfFile.Length]; - fs.Read(pdfBuf, 0, pdfBuf.Length); - fs.Close(); - return pdfBuf; - } - return null; - } - private Revision CreateRevision(ApprovedFolder af, ProcedureInfo pi) - { - int typeID = 1; //revision not tempmod - ProcInfo pinf = af.EntryFromProc[pi.DisplayNumber]; - string revisionNumber = pinf.Rev; - System.DateTime revisionDate = System.DateTime.Parse(pinf.RevDate ?? "1/1/1980"); - string notes = "Migration Of Current Approved Revision"; - RevisionConfig cfg = new RevisionConfig(); - cfg.History_StartDate = pinf.StartDateTime; - if (pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0) - cfg.Applicability_Index = pi.MyDocVersion.DocVersionConfig.SelectedSlave; - string config = cfg.ToString(); - System.DateTime dts = pi.DTS; - string userID = pinf.UserID; - return Revision.MakeRevision(pi.ItemID, typeID, revisionNumber, revisionDate, notes, config, dts, userID); - } - } - public partial class ApprovedFolder - { - private OleDbConnection _Connection; - public OleDbConnection Connection - { - get - { - if(_Connection == null) - _Connection = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + _Path + ";Extended Properties=dBase III;Persist Security Info=False"); - return _Connection; - } - } - private string _Path; - public string Path - { - get { return _Path; } - set { _Path = value; } - } - private System.DateTime _ROFstDate = System.DateTime.MinValue; - public System.DateTime ROFstDate - { - get - { - if (_ROFstDate == System.DateTime.MinValue) - { - FileInfo fi = new FileInfo(string.Format(@"{0}\ro.fst",Path)); - if(fi.Exists) - _ROFstDate = fi.LastWriteTimeUtc; - } - return _ROFstDate; - } - } - - private Dictionary _ROValues = new Dictionary(); - private Dictionary _LibDocDates = new Dictionary(); - private Dictionary> _ProcROs = new Dictionary>(); - private Dictionary> _LibROs = new Dictionary>(); - private Dictionary> _LibDocs = new Dictionary>(); - - public string BuildConsistencyChecks(ProcedureInfo proc) - { - /* - - - - - - - - - */ - ConsistencyChecks cc = new ConsistencyChecks(); - cc.ItemID = proc.ItemID; - BuildROChecks(cc, proc); - BuildLibDocChecks(cc, proc); - return cc.ToString().Replace("OldDocDate=\"0001-01-01T00:00:00\"", ""); - } - - private void BuildLibDocChecks(ConsistencyChecks cc, ProcedureInfo proc) - { - if (_LibDocs.ContainsKey(proc.DisplayNumber)) - { - foreach (string libdoc in _LibDocs[proc.DisplayNumber]) - { - FileInfo fi = new FileInfo(string.Format(@"{0}\RTFFILES\{1}.LIB",Path,libdoc)); - if (fi.Exists) - { - //if (proc.MyDocVersion.VersionID > 1) - // System.Threading.Thread.Sleep(5000); - int docid = GetDocID(libdoc, proc.MyDocVersion.VersionID); - if (docid > 0) - cc.LibDocConsistency.AddLibDocCheck(docid, fi.LastWriteTimeUtc); - } - } - } - } - - private int GetDocID(string libdoc, int versionid) - { - DocumentInfo di = DocumentInfo.GetByLibDocName(libdoc, versionid); - return di.DocID; - } - - private void BuildROChecks(ConsistencyChecks cc, ProcedureInfo proc) - { - cc.ROConsistency.ROFstDate = ROFstDate; - if (_ProcROs.ContainsKey(proc.DisplayNumber)) - { - foreach (string roid in _ProcROs[proc.DisplayNumber]) - cc.ROConsistency.AddROCheck(FormatROID(roid), GetROValue(FormatROID(roid))); - } - //int cnt = cc.ROConsistency.MyROChecks.Length; - if (_LibDocs.ContainsKey(proc.DisplayNumber)) - { - foreach (string libdoc in _LibDocs[proc.DisplayNumber]) - { - if (_LibROs.ContainsKey(libdoc)) - { - foreach (string roid in _LibROs[libdoc]) - cc.ROConsistency.AddROCheck(FormatROID(roid), GetROValue(FormatROID(roid))); - } - } - } - } - - private string GetROValue(string roid) - { - if (!_ROValues.ContainsKey(roid)) - { - //if (roid.Contains("000128")) - // System.Console.WriteLine(); - //string ss = _Lookup.GetRoValue(roid); - //ss = ItemInfo.ConvertToDisplayText(ss); - //ss = ss.Replace('\n', ';'); - - _ROValues.Add(roid, PrepareForXML(ItemInfo.ConvertToDisplayText(_Lookup.GetRoValue(roid)))); - } - return _ROValues[roid]; - } - - private string PrepareForXML(string rovalue) - { - StringBuilder sb = new StringBuilder(); - foreach (char c in rovalue) - { - if (c < ' ') - sb.Append(string.Format(@"\x{0:X4}", (int)c)); - else - sb.Append(c); - } - return sb.ToString(); - } - private string FormatROID(string roid) - { - if (roid.Length == 16 && roid.EndsWith("0000")) - return roid.Substring(0, 12).ToUpper(); - return roid.ToUpper(); - } - - private Dictionary _EntryFromProc; - public Dictionary EntryFromProc - { - get - { - if (_EntryFromProc == null) - _EntryFromProc = FillEntryFromProc(); - return _EntryFromProc; - } - } - private Dictionary FillEntryFromProc() - { - Dictionary rv = new Dictionary(); - using (OleDbDataAdapter da = new OleDbDataAdapter("Select * from [set] where entry is not null", Connection)) - { - using (DataSet ds = new DataSet()) - { - da.Fill(ds); - foreach (DataRow dr in ds.Tables[0].Rows) - if (!rv.ContainsKey(dr["NUMBER"].ToString())) - rv.Add(dr["NUMBER"].ToString(), new ProcInfo(dr, Path)); - } - } - return rv; - } - private ROFSTLookup _Lookup; - public ApprovedFolder(string path) - { - _Path = path; - FillROs(); - FillLibDocs(); - _Lookup = new ROFSTLookup(string.Format(@"{0}\RO.FST", Path)); - } - public ApprovedFolder(string path, DocVersionInfo dvi) - { - _Path = path; - FillROs(); - FillLibDocs(); - _Lookup = new ROFSTLookup(string.Format(@"{0}\RO.FST", Path)); - _EntryFromProc = FillEntryFromProcMulti(dvi); - } - - private Dictionary FillEntryFromProcMulti(DocVersionInfo dvi) - { - Dictionary rv = new Dictionary(); - for (int i = 1; i <= dvi.MultiUnitCount; i++) - { - foreach (ProcedureInfo pi in dvi.Procedures) - { - pi.MyDocVersion.DocVersionConfig.SelectedSlave = i; - rv.Add(pi.DisplayNumber, new ProcInfo(pi, Path)); - } - } - return rv; - } - - private void FillLibDocs() - { - using (OleDbDataAdapter da = new OleDbDataAdapter("Select distinct FROMNUMBER, TONUMBER from [tran] where tonumber like 'DOC%'", Connection)) - { - using (DataSet ds = new DataSet()) - { - da.Fill(ds); - foreach (DataRow dr in ds.Tables[0].Rows) - { - string number = dr["FROMNUMBER"].ToString(); - string libdoc = dr["TONUMBER"].ToString(); - if (!_LibDocs.ContainsKey(number)) - _LibDocs.Add(number, new List()); - if (!_LibDocs[number].Contains(libdoc)) - _LibDocs[number].Add(libdoc); - } - } - } - } - - private void FillROs() - { - using (OleDbDataAdapter da = new OleDbDataAdapter("Select distinct NUMBER, ROID from [usagero]", Connection)) - { - using (DataSet ds = new DataSet()) - { - da.Fill(ds); - foreach (DataRow dr in ds.Tables[0].Rows) - { - string number = dr["NUMBER"].ToString(); - string roid = dr["ROID"].ToString(); - if (number.StartsWith("DOC")) - { - if (!_LibROs.ContainsKey(number)) - _LibROs.Add(number, new List()); - if (!_LibROs[number].Contains(roid)) - _LibROs[number].Add(roid); - } - else - { - if (!_ProcROs.ContainsKey(number)) - _ProcROs.Add(number, new List()); - if (!_ProcROs[number].Contains(roid)) - _ProcROs[number].Add(roid); - } - } - } - } - } - } - public partial class ProcInfo - { - private log4net.ILog log; - private string _Number; - public string Number - { - get { return _Number; } - set { _Number = value; } - } - private string _Entry; - public string Entry - { - get { return _Entry; } - set { _Entry = value; } - } - private string _UserID; - public string UserID - { - get { return _UserID; } - set { _UserID = value; } - } - private System.DateTime _StartDateTime; - public System.DateTime StartDateTime - { - get { return _StartDateTime; } - set { _StartDateTime = value; } - } - private string _Rev; - public string Rev - { - get { return _Rev; } - set { _Rev = value; } - } - private string _RevDate; - public string RevDate - { - get { return _RevDate; } - set { _RevDate = value; } - } - private string _ReviewDate; - public string ReviewDate - { - get { return _ReviewDate; } - set { _ReviewDate = value; } - } - public ProcInfo(ProcedureInfo pi, string afpath) - { - Number = pi.DisplayNumber; - Entry = pi.DisplayText; - UserID = pi.UserID; - StartDateTime = pi.DTS; - RevDate = pi.ProcedureConfig.Print_RevDate; - Rev = pi.ProcedureConfig.Print_Rev; - } - public ProcInfo(DataRow dr, string afpath) - { - Number = dr["NUMBER"].ToString(); - Entry = dr["ENTRY"].ToString(); - UserID = dr["INITIALS"].ToString(); - if (UserID == string.Empty) UserID = "UNKNOWN"; - //string date = GetDTS(dr["DATE"].ToString(), dr["TIME"].ToString()).ToString("MM/dd/yyyy HH:MM");//System.DateTime.Parse(dr["DATE"].ToString()).ToString("MM/dd/yyyy"); - //string time = dr["TIME"].ToString(); - //if (time.EndsWith(":")) - // date += " " + time.Substring(0, 2) + ":" + time.Substring(2, 2); - //else - // date += " " + time.Substring(0, 2) + ":" + time.Substring(3, 2); - //StartDateTime = System.DateTime.Parse(date); - StartDateTime = GetDTS(dr["DATE"].ToString(), dr["TIME"].ToString()); - RevDate = StartDateTime.ToString("MM/dd/yyyy"); - FixItems fis = new FixItems(new FileInfo(string.Format(@"{0}\{1}.fix", afpath, Entry))); - if (fis.Count > 0) - { - Rev = fis[0].Rev; - RevDate = fis[0].RevDate ?? GetDBFRevDate(afpath); - ReviewDate = fis[0].ReviewDate; - } - } - public System.DateTime GetDTS(string date, string time) - { - // Set the date/time stamp. If there is no 'date', set the date - // to 1/1/2000 (this can be changed!). If there is not 'time', - // set the time to 0:0:0 (midnight). - - System.DateTime dts = System.DateTime.Now; - string month = "01"; - string day = "01"; - string year = "2000"; - string hour = ""; - string minute = ""; - try - { - if (date != null && date != "") - { - int indx1 = date.IndexOf("/"); - month = date.Substring(0, indx1); - int indx2 = date.IndexOf("/", indx1 + 1); - day = date.Substring(indx1 + 1, indx2 - indx1 - 1); - year = date.Substring(indx2 + 1, 4); - } - if (time == null || time == "") - { - hour = "0"; - minute = "0"; - } - else - { - - hour = time.Substring(0, 2); - int indxc = time.IndexOfAny(":A-".ToCharArray()); - if (indxc == time.Length - 1) - minute = time.Substring(2, 2); - else - minute = time.Substring(indxc + 1, time.Length - indxc - 1); - } - dts = new System.DateTime(System.Convert.ToInt32(year), System.Convert.ToInt32(month), System.Convert.ToInt32(day), - System.Convert.ToInt32(hour), System.Convert.ToInt32(minute), 0); - } - catch (System.Exception ex) - { - log.ErrorFormat("Bad Date/Time {0} {1}. Set to NOW.", date, time); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - //frmMain.AddError(ex, "Bad Date/Time {0} {1}", date, time); - log.ErrorFormat(ex.StackTrace); - return dts; - } - return dts; - } - - private string GetDBFRevDate(string afpath) - { - FileInfo fi = new FileInfo(afpath + @"\" + Entry + ".dbf"); - if (fi.Exists) - return fi.LastWriteTime.ToShortDateString(); - return null; - } - } - -} diff --git a/PROMS/DataLoader/BuildVEPROMS.Sql b/PROMS/DataLoader/BuildVEPROMS.Sql deleted file mode 100644 index f687d469..00000000 --- a/PROMS/DataLoader/BuildVEPROMS.Sql +++ /dev/null @@ -1,1508 +0,0 @@ -USE [master] -GO -/****** Object: Database [{DBName}] Script Date: 01/06/2012 15:49:32 ******/ -IF EXISTS (SELECT name FROM sys.databases WHERE name = N'{DBName}') -BEGIN - PRINT 'Dropping existing database {DBName}' - ALTER DATABASE [{DBName}] SET SINGLE_USER WITH ROLLBACK IMMEDIATE - DROP DATABASE [{DBName}] -END -GO -/****** Object: Database [{DBName}] Script Date: 01/06/2012 15:02:52 ******/ -PRINT 'Creating Database {DBName} - {DBPath}\{DBName}.mdf' -GO -CREATE DATABASE [{DBName}] ON PRIMARY -( NAME = N'VEPROMS_Users', FILENAME = N'{DBPath}\{DBName}.mdf') - LOG ON -( NAME = N'VEPROMS_Users_log', FILENAME = N'{DBPath}\{DBName}_1.ldf') - COLLATE SQL_Latin1_General_CP1_CI_AS -GO -PRINT '{DBName} Created' -GO -EXEC dbo.sp_dbcmptlevel @dbname=N'{DBName}', @new_cmptlevel=90 -GO -PRINT '{sp_dbcmptlevel} Completed' -GO -IF (1 = FULLTEXTSERVICEPROPERTY('IsFullTextInstalled')) -begin -EXEC [{DBName}].[dbo].[sp_fulltext_database] @action = 'disable' -end -GO -ALTER DATABASE [{DBName}] SET ANSI_NULL_DEFAULT OFF -GO -ALTER DATABASE [{DBName}] SET ANSI_NULLS OFF -GO -ALTER DATABASE [{DBName}] SET ANSI_PADDING OFF -GO -ALTER DATABASE [{DBName}] SET ANSI_WARNINGS OFF -GO -ALTER DATABASE [{DBName}] SET ARITHABORT OFF -GO -ALTER DATABASE [{DBName}] SET AUTO_CLOSE OFF -GO -ALTER DATABASE [{DBName}] SET AUTO_CREATE_STATISTICS ON -GO -ALTER DATABASE [{DBName}] SET AUTO_SHRINK OFF -GO -ALTER DATABASE [{DBName}] SET AUTO_UPDATE_STATISTICS ON -GO -ALTER DATABASE [{DBName}] SET CURSOR_CLOSE_ON_COMMIT OFF -GO -ALTER DATABASE [{DBName}] SET CURSOR_DEFAULT GLOBAL -GO -ALTER DATABASE [{DBName}] SET CONCAT_NULL_YIELDS_NULL OFF -GO -ALTER DATABASE [{DBName}] SET NUMERIC_ROUNDABORT OFF -GO -ALTER DATABASE [{DBName}] SET QUOTED_IDENTIFIER OFF -GO -ALTER DATABASE [{DBName}] SET RECURSIVE_TRIGGERS OFF -GO -ALTER DATABASE [{DBName}] SET DISABLE_BROKER -GO -ALTER DATABASE [{DBName}] SET AUTO_UPDATE_STATISTICS_ASYNC OFF -GO -ALTER DATABASE [{DBName}] SET DATE_CORRELATION_OPTIMIZATION OFF -GO -ALTER DATABASE [{DBName}] SET TRUSTWORTHY OFF -GO -ALTER DATABASE [{DBName}] SET ALLOW_SNAPSHOT_ISOLATION OFF -GO -ALTER DATABASE [{DBName}] SET PARAMETERIZATION SIMPLE -GO -ALTER DATABASE [{DBName}] SET READ_WRITE -GO -ALTER DATABASE [{DBName}] SET RECOVERY SIMPLE -GO -ALTER DATABASE [{DBName}] SET MULTI_USER -GO -ALTER DATABASE [{DBName}] SET PAGE_VERIFY CHECKSUM -GO -ALTER DATABASE [{DBName}] SET DB_CHAINING OFF -GO -USE [{DBName}] -GO - - -/****** Object: Table [dbo].[Connections] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Connections]( - [DBID] [int] IDENTITY(1,1) NOT NULL, - [Name] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [Title] [nvarchar](510) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [ConnectionString] [nvarchar](510) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [ServerType] [int] NOT NULL CONSTRAINT [DF_Connections_ServerType] DEFAULT ((1)), - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Connections_DTS] DEFAULT (getdate()), - [UsrID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Connections_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Connections] PRIMARY KEY CLUSTERED -( - [DBID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE UNIQUE NONCLUSTERED INDEX [IX_Connections] ON [Connections] -( - [Name] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0 SQL Server' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Connections', @level2type=N'COLUMN',@level2name=N'ServerType' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Connections', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[RODbs] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [RODbs]( - [RODbID] [int] IDENTITY(1,1) NOT NULL, - [ROName] [nvarchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [FolderPath] [nvarchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [DBConnectionString] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_RODbs_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_RODbs_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_RODbs] PRIMARY KEY CLUSTERED -( - [RODbID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE UNIQUE NONCLUSTERED INDEX [IX_RODbs_FolderPath] ON [RODbs] -( - [FolderPath] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Hook for future - to allow the user to select multiple RO Databases assocaiated with on DocVersion' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'RODbs', @level2type=N'COLUMN',@level2name=N'ROName' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Path to the RO database' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'RODbs', @level2type=N'COLUMN',@level2name=N'FolderPath' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Connection String - Default could just be the full path and name of the database' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'RODbs', @level2type=N'COLUMN',@level2name=N'DBConnectionString' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'RODbs', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Locks] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Locks]( - [LockID] [int] IDENTITY(1,1) NOT NULL, - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Locks_UserID] DEFAULT (upper(suser_sname())), - [LockType] [tinyint] NOT NULL CONSTRAINT [DF_Locks_LockType] DEFAULT ((0)), - [LockItemID] [int] NOT NULL CONSTRAINT [DF_Locks_LockItemID] DEFAULT ((0)), - [Description] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Locks_DTS] DEFAULT (getdate()), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Locks] PRIMARY KEY CLUSTERED -( - [LockID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Locks', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Documents] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -SET ANSI_PADDING ON -GO -CREATE TABLE [Documents]( - [DocID] [int] IDENTITY(1,1) NOT NULL, - [LibTitle] [nvarchar](1024) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DocContent] [varbinary](max) NULL, - [DocAscii] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Documents_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Documents_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - [FileExtension] [nvarchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Documents_FileExtension] DEFAULT (N'.Doc'), - CONSTRAINT [PK_Documents] PRIMARY KEY CLUSTERED -( - [DocID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -SET ANSI_PADDING OFF -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Actual content of a Word Document (RTF, DOC or XML Format)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Documents', @level2type=N'COLUMN',@level2name=N'DocContent' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Used for searching' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Documents', @level2type=N'COLUMN',@level2name=N'DocAscii' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Documents', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Groups] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Groups]( - [GID] [int] IDENTITY(1,1) NOT NULL, - [GroupName] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [GroupType] [int] NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Groups_DTS] DEFAULT (getdate()), - [UsrID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Groups_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Groups] PRIMARY KEY CLUSTERED -( - [GID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE UNIQUE NONCLUSTERED INDEX [IX_Groups] ON [Groups] -( - [GroupName] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Groups', @level2type=N'COLUMN',@level2name=N'GID' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Groups', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Users] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Users]( - [UID] [int] IDENTITY(1,1) NOT NULL, - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Users_UserID] DEFAULT (upper(suser_sname())), - [FirstName] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [MiddleName] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [LastName] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [Suffix] [nvarchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [CourtesyTitle] [nvarchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [PhoneNumber] [nvarchar](30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [CFGName] [nvarchar](8) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [UserLogin] [nvarchar](10) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [UserName] [nvarchar](32) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Users_DTS] DEFAULT (getdate()), - [UsrID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Users_UserID1] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED -( - [UID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Users', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Formats] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Formats]( - [FormatID] [int] IDENTITY(1,1) NOT NULL, - [ParentID] [int] NOT NULL CONSTRAINT [DF_Formats_ParentID] DEFAULT ((1)), - [Name] [nvarchar](20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [Description] [nvarchar](250) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [Data] [xml] NOT NULL, - [GenMac] [xml] NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Formats_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Formats_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Formats] PRIMARY KEY CLUSTERED -( - [FormatID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE UNIQUE NONCLUSTERED INDEX [IX_Formats] ON [Formats] -( - [ParentID] ASC, - [Name] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_FormatsParentID] ON [Formats] -( - [ParentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Formats', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Sessions] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Sessions]( - [SessionID] [int] IDENTITY(1,1) NOT NULL, - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Sessions_UserID] DEFAULT (upper(suser_sname())), - [DTSDtart] [datetime] NOT NULL CONSTRAINT [DF_Sessions_DTSDtart] DEFAULT (getdate()), - [DTSEnd] [datetime] NULL, - [DTSActivity] [datetime] NULL, - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Sessions] PRIMARY KEY CLUSTERED -( - [SessionID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sessions', @level2type=N'COLUMN',@level2name=N'DTSDtart' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sessions', @level2type=N'COLUMN',@level2name=N'DTSEnd' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Sessions', @level2type=N'COLUMN',@level2name=N'DTSActivity' -GO -/****** Object: Table [dbo].[Branches] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Branches]( - [BranchID] [int] IDENTITY(1,1) NOT NULL, - [VersionID] [int] NOT NULL CONSTRAINT [DF_Branches_VersionID] DEFAULT ((0)), - [DateLimit] [datetime] NOT NULL CONSTRAINT [DF_Branches_DateLimit] DEFAULT (getdate()), - [BeforeType] [tinyint] NOT NULL CONSTRAINT [DF_Branches_BeforeType] DEFAULT ((0)), - [BeforeID] [int] NOT NULL CONSTRAINT [DF_Branches_BeforeID] DEFAULT ((0)), - [AfterType] [tinyint] NOT NULL CONSTRAINT [DF_Branches_AfterType] DEFAULT ((0)), - [AfterID] [int] NOT NULL CONSTRAINT [DF_Branches_AfterID] DEFAULT ((0)), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Branches] PRIMARY KEY CLUSTERED -( - [BranchID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Branches', @level2type=N'COLUMN',@level2name=N'DateLimit' -GO -/****** Object: Table [dbo].[AnnotationTypes] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [AnnotationTypes]( - [TypeID] [int] IDENTITY(1,1) NOT NULL, - [Name] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_AnnotationTypes_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_AnnotationTypes_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_AnnotationTypes] PRIMARY KEY CLUSTERED -( - [TypeID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE UNIQUE NONCLUSTERED INDEX [IX_AnnotationTypes_Name] ON [AnnotationTypes] -( - [Name] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'AnnotationTypes', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Owners] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Owners]( - [OwnerID] [int] IDENTITY(1,1) NOT NULL, - [SessionID] [int] NOT NULL CONSTRAINT [DF_Owners_SessionID] DEFAULT ((0)), - [OwnerType] [tinyint] NOT NULL CONSTRAINT [DF_Owners_OwnerType] DEFAULT ((0)), - [OwnerItemID] [int] NOT NULL CONSTRAINT [DF_Owners_OwnerItemID] DEFAULT ((0)), - [DTSStart] [datetime] NOT NULL CONSTRAINT [DF_Owners_DTSStart] DEFAULT (getdate()), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Owners] PRIMARY KEY CLUSTERED -( - [OwnerID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Owners', @level2type=N'COLUMN',@level2name=N'DTSStart' -GO -/****** Object: Table [dbo].[ApplicableStructures] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [ApplicableStructures]( - [StructureID] [int] NOT NULL, - [AppItems] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_ApplicableStructures_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_ApplicableStructures_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_ApplicableStructures] PRIMARY KEY CLUSTERED -( - [StructureID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'A series of characters - Y means Applicable, N means Not Applicable, Space means undecided' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ApplicableStructures', @level2type=N'COLUMN',@level2name=N'AppItems' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ApplicableStructures', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Roles] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Roles]( - [RID] [int] IDENTITY(1,1) NOT NULL, - [Name] [nvarchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [Title] [nvarchar](250) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Roles_DTS] DEFAULT (getdate()), - [UsrID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Roles_UsrID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Roles] PRIMARY KEY CLUSTERED -( - [RID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE UNIQUE NONCLUSTERED INDEX [IX_Roles] ON [Roles] -( - [Name] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Roles', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Associations] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Associations]( - [AssociationID] [int] IDENTITY(1,1) NOT NULL, - [VersionID] [int] NOT NULL, - [ROFstID] [int] NOT NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Associations_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Associations_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Associations_1] PRIMARY KEY CLUSTERED -( - [AssociationID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE UNIQUE NONCLUSTERED INDEX [IX_Associations_VersionID_ROFstID] ON [Associations] -( - [VersionID] ASC, - [ROFstID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Associations', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Folders] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Folders]( - [FolderID] [int] IDENTITY(1,1) NOT NULL, - [ParentID] [int] NOT NULL CONSTRAINT [DF_Folders_ParentID] DEFAULT ((1)), - [DBID] [int] NOT NULL CONSTRAINT [DF_DataSets_DBID] DEFAULT ((1)), - [Name] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [Title] [nvarchar](510) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [ShortName] [nvarchar](20) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [FormatID] [int] NULL, - [ManualOrder] [float] NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_DataSets_DTS] DEFAULT (getdate()), - [UsrID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_DataSets_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_DataSets] PRIMARY KEY CLUSTERED -( - [FolderID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_FoldersDBID] ON [Folders] -( - [DBID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_FoldersFormatID] ON [Folders] -( - [FormatID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_FoldersParentID] ON [Folders] -( - [ParentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE UNIQUE NONCLUSTERED INDEX [IX_UniqueChildFolders] ON [Folders] -( - [ParentID] ASC, - [Name] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Folders', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[DROUsages] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [DROUsages]( - [DROUsageID] [int] IDENTITY(1,1) NOT NULL, - [DocID] [int] NOT NULL CONSTRAINT [DF_Table_1_ContentID] DEFAULT ((0)), - [ROID] [nvarchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_DROUsages_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_DROUsages_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - [RODbID] [int] NOT NULL, - CONSTRAINT [PK_DROUsages] PRIMARY KEY CLUSTERED -( - [DROUsageID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DROUsages', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[ROImages] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -SET ANSI_PADDING ON -GO -CREATE TABLE [ROImages]( - [ImageID] [int] IDENTITY(1,1) NOT NULL, - [RODbID] [int] NOT NULL, - [FileName] [nvarchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [Content] [varbinary](max) NOT NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_ROImages_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_ROImages_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_ROImages] PRIMARY KEY CLUSTERED -( - [ImageID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -SET ANSI_PADDING OFF -GO -CREATE UNIQUE NONCLUSTERED INDEX [IX_ROImages_RODbID_FileName_DTS] ON [ROImages] -( - [RODbID] ASC, - [FileName] ASC, - [DTS] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ROImages', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[ROFsts] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -SET ANSI_PADDING ON -GO -CREATE TABLE [ROFsts]( - [ROFstID] [int] IDENTITY(1,1) NOT NULL, - [RODbID] [int] NOT NULL, - [ROLookup] [varbinary](max) NOT NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Table_1_DTS1] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_ROFsts_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_ROFsts] PRIMARY KEY CLUSTERED -( - [ROFstID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -SET ANSI_PADDING OFF -GO -CREATE UNIQUE NONCLUSTERED INDEX [IX_ROFsts] ON [ROFsts] -( - [RODbID] ASC, - [DTS] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'ROFsts', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[RoUsages] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [RoUsages]( - [ROUsageID] [int] IDENTITY(1,1) NOT NULL, - [ContentID] [int] NOT NULL CONSTRAINT [DF_RoUsages_StructureID] DEFAULT ((0)), - [ROID] [nvarchar](16) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_RoUsages_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_RoUsages_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - [RODbID] [int] NOT NULL, - CONSTRAINT [PK_RoUsages] PRIMARY KEY CLUSTERED -( - [ROUsageID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_RoUsagesContentID] ON [RoUsages] -( - [ContentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'RoUsages', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Figures] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Figures]( - [FigureID] [int] IDENTITY(1,1) NOT NULL, - [ROFstID] [int] NOT NULL, - [ImageID] [int] NOT NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Figures_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Figures_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Figures_1] PRIMARY KEY CLUSTERED -( - [FigureID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE UNIQUE NONCLUSTERED INDEX [IX_Figures_ROFstID_ImageID] ON [Figures] -( - [ROFstID] ASC, - [ImageID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Figures', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Entries] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Entries]( - [ContentID] [int] NOT NULL, - [DocID] [int] NOT NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Entries_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Entries_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Entries] PRIMARY KEY CLUSTERED -( - [ContentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_EntriesDocID] ON [Entries] -( - [DocID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Entries', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Pdfs] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -SET ANSI_PADDING ON -GO -CREATE TABLE [Pdfs]( - [DocID] [int] NOT NULL, - [DebugStatus] [int] NOT NULL, - [TopRow] [int] NOT NULL, - [PageLength] [int] NOT NULL, - [LeftMargin] [int] NOT NULL, - [PageWidth] [int] NOT NULL, - [PageCount] [float] NOT NULL, - [DocPdf] [varbinary](max) NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Pdfs_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Pdfs_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Pdfs] PRIMARY KEY CLUSTERED -( - [DocID] ASC, - [DebugStatus] ASC, - [TopRow] ASC, - [PageLength] ASC, - [LeftMargin] ASC, - [PageWidth] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -SET ANSI_PADDING OFF -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'> 0 for Debug' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Pdfs', @level2type=N'COLUMN',@level2name=N'DebugStatus' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Count of whole and partial pages' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Pdfs', @level2type=N'COLUMN',@level2name=N'PageCount' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Pdfs', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Memberships] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Memberships]( - [UGID] [int] IDENTITY(1,1) NOT NULL, - [UID] [int] NOT NULL, - [GID] [int] NOT NULL, - [StartDate] [datetime] NOT NULL CONSTRAINT [DF_UserGroups_StartDate] DEFAULT (getdate()), - [EndDate] [datetime] NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Memberships_DTS] DEFAULT (getdate()), - [UsrID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Memberships_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_UserGroups] PRIMARY KEY CLUSTERED -( - [UGID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_MembershipsGID] ON [Memberships] -( - [GID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_MembershipsUID] ON [Memberships] -( - [UID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Memberships', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Assignments] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Assignments]( - [AID] [int] IDENTITY(1,1) NOT NULL, - [GID] [int] NOT NULL, - [RID] [int] NOT NULL, - [FolderID] [int] NOT NULL, - [StartDate] [datetime] NOT NULL CONSTRAINT [DF_Assignments_StartDate] DEFAULT (getdate()), - [EndDate] [datetime] NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Assignments_DTS] DEFAULT (getdate()), - [UsrID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Assignments_UsrID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Assignments] PRIMARY KEY CLUSTERED -( - [AID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_AssignmentsFolderID] ON [Assignments] -( - [FolderID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_AssignmentsGID] ON [Assignments] -( - [GID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_AssignmentsRID] ON [Assignments] -( - [RID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Assignments', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Parts] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Parts]( - [ContentID] [int] NOT NULL, - [FromType] [int] NOT NULL, - [ItemID] [int] NOT NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Parts_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Parts_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Parts] PRIMARY KEY CLUSTERED -( - [ContentID] ASC, - [FromType] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_PartsItemID] ON [Parts] -( - [ItemID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Parts', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[DocVersions] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [DocVersions]( - [VersionID] [int] IDENTITY(1,1) NOT NULL, - [FolderID] [int] NOT NULL, - [VersionType] [int] NOT NULL CONSTRAINT [DF_Versions_VersionType] DEFAULT ((0)), - [Name] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [Title] [nvarchar](510) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [ItemID] [int] NULL, - [FormatID] [int] NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Versions_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Versions_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Versions] PRIMARY KEY CLUSTERED -( - [VersionID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_DocVersionsFolderID] ON [DocVersions] -( - [FolderID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_DocVersionsFormatID] ON [DocVersions] -( - [FormatID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_DocVersionsItemID] ON [DocVersions] -( - [ItemID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0 Working Draft, 1 Temporary, 128 Revision, 129 Approved (Greater than 127 - non editable)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DocVersions', @level2type=N'COLUMN',@level2name=N'VersionType' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'DocVersions', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Transitions] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Transitions]( - [TransitionID] [int] IDENTITY(1,1) NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [IsRange] [int] NOT NULL CONSTRAINT [DF_Transitions_IsRange] DEFAULT ((0)), - [TranType] [int] NOT NULL CONSTRAINT [DF_Transitions_TranType] DEFAULT ((0)), - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Transitions_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Transitions_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_TranUsages] PRIMARY KEY CLUSTERED -( - [TransitionID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_TransitionsFromID] ON [Transitions] -( - [FromID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_TransitionsRangeID] ON [Transitions] -( - [RangeID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_TransitionsToID] ON [Transitions] -( - [ToID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'StructureID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Transitions', @level2type=N'COLUMN',@level2name=N'ToID' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0 - Not a Range Transition, 1 - Range Transition, 2 - Range Transition - Extends to last Sibling' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Transitions', @level2type=N'COLUMN',@level2name=N'IsRange' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Transitions', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Annotations] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Annotations]( - [AnnotationID] [int] IDENTITY(1,1) NOT NULL, - [ItemID] [int] NOT NULL, - [TypeID] [int] NOT NULL, - [RtfText] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [SearchText] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Annotations_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Annotations_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Annotations] PRIMARY KEY CLUSTERED -( - [AnnotationID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_AnnotationsItemID] ON [Annotations] -( - [ItemID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_AnnotationsTypeID] ON [Annotations] -( - [TypeID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Annotations', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Contents] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Contents]( - [ContentID] [int] IDENTITY(1,1) NOT NULL, - [Number] [nvarchar](256) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [Text] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [Type] [int] NULL, - [FormatID] [int] NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Contents_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Contents_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Contents] PRIMARY KEY CLUSTERED -( - [ContentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_ContentsFormatID] ON [Contents] -( - [FormatID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'Increased from 30 to 256 to support RTF symbols' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Contents', @level2type=N'COLUMN',@level2name=N'Number' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0 - Procedure, 10000 - Section, 20000 Step' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Contents', @level2type=N'COLUMN',@level2name=N'Type' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Contents', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Items] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Items]( - [ItemID] [int] IDENTITY(1,1) NOT NULL, - [PreviousID] [int] NULL, - [ContentID] [int] NOT NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Items_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Items_UsrID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Items] PRIMARY KEY CLUSTERED -( - [ItemID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_ItemsContentID] ON [Items] -( - [ContentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_ItemsPreviousID] ON [Items] -( - [PreviousID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Items', @level2type=N'COLUMN',@level2name=N'DTS' -GO - -/****** Object: Table [dbo].[Scopes] Script Date: 01/06/2012 15:02:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Scopes]( - [ScopeID] [int] IDENTITY(1,1) NOT NULL, - [Name] [nvarchar](100) NOT NULL, - [Title] [nvarchar](510) NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Scopes_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Scopes_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Scopes] PRIMARY KEY CLUSTERED -( - [ScopeID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Scopes', @level2type=N'COLUMN',@level2name=N'DTS' -GO - -/****** Object: Table [dbo].[Applicabilities] Script Date: 01/06/2012 15:02:52 ******/ ---SET ANSI_NULLS ON ---GO ---SET QUOTED_IDENTIFIER ON ---GO ---CREATE TABLE [Applicabilities]( --- [ItemID] [int] NOT NULL, --- [ScopeID] [int] NOT NULL, --- [DTS] [datetime] NOT NULL CONSTRAINT [DF_Applicabilities_DTS] DEFAULT (getdate()), --- [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Applicabilities_UserID] DEFAULT (upper(suser_sname())), --- [LastChanged] [timestamp] NOT NULL, --- CONSTRAINT [PK_Applicabilities] PRIMARY KEY CLUSTERED ---( --- [ItemID] ASC, --- [ScopeID] ASC ---)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ---) ON [PRIMARY] ---GO ---EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Applicabilities', @level2type=N'COLUMN',@level2name=N'DTS' ---GO - -/****** Object: Table [dbo].[Details] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Details]( - [DetailID] [int] IDENTITY(1,1) NOT NULL, - [ContentID] [int] NOT NULL, - [ItemType] [int] NOT NULL, - [Text] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_StepTexts_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_StepTexts_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_StepTexts] PRIMARY KEY CLUSTERED -( - [DetailID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_DetailsContentID] ON [Details] -( - [ContentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Details', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[ZContents] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [ZContents]( - [ContentID] [int] NOT NULL, - [OldStepSequence] [nvarchar](32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_ZContents] PRIMARY KEY CLUSTERED -( - [ContentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -/****** Object: Table [dbo].[Grids] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Grids]( - [ContentID] [int] NOT NULL, - [Data] [xml] NOT NULL, - [Config] [xml] NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Grids_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Grids_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Grids] PRIMARY KEY CLUSTERED -( - [ContentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Grids', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[Images] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -SET ANSI_PADDING ON -GO -CREATE TABLE [Images]( - [ContentID] [int] NOT NULL, - [ImageType] [int] NOT NULL CONSTRAINT [DF_Images_ImageType] DEFAULT ((1)), - [FileName] [nvarchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [Data] [varbinary](max) NOT NULL, - [Config] [xml] NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Images_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Images_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Images] PRIMARY KEY CLUSTERED -( - [ContentID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -SET ANSI_PADDING OFF -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'1 - Figure, 2 - Video, 3 - Audio' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Images', @level2type=N'COLUMN',@level2name=N'ImageType' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Images', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: Table [dbo].[ZTransitions] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [ZTransitions]( - [TransitionID] [int] NOT NULL, - [oldto] [nvarchar](32) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_ZTransitions] PRIMARY KEY CLUSTERED -( - [TransitionID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -/****** Object: Table [dbo].[Permissions] Script Date: 01/06/2012 15:02:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE TABLE [Permissions]( - [PID] [int] IDENTITY(1,1) NOT NULL, - [RID] [int] NOT NULL, - [PermLevel] [int] NOT NULL, - [VersionType] [int] NOT NULL, - [PermValue] [int] NOT NULL, - [PermAD] [int] NOT NULL CONSTRAINT [DF_Permissions_PermAD] DEFAULT ((0)), - [StartDate] [datetime] NOT NULL CONSTRAINT [DF_Permissions_StartDate] DEFAULT (getdate()), - [EndDate] [datetime] NULL, - [Config] [nvarchar](max) COLLATE SQL_Latin1_General_CP1_CI_AS NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Permissions_DTS] DEFAULT (getdate()), - [UsrID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL CONSTRAINT [DF_Permissions_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Permissions] PRIMARY KEY CLUSTERED -( - [PID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -CREATE NONCLUSTERED INDEX [IX_PermissionsRID] ON [Permissions] -( - [RID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0 - None, 1 - Security, 2 - System, 3 - RO, 4 - Procdures, 5 - Sections, 6 - Steps, 7 - Comments' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Permissions', @level2type=N'COLUMN',@level2name=N'PermLevel' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0 - None, 1 - Working Draft, 2 - Approved, (3 - All)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Permissions', @level2type=N'COLUMN',@level2name=N'VersionType' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'1 - Read, 2 - Write, 4 - Create, 8 - Delete (15 - All)' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Permissions', @level2type=N'COLUMN',@level2name=N'PermValue' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0 - Allow, 1 - Deny' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Permissions', @level2type=N'COLUMN',@level2name=N'PermAD' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Permissions', @level2type=N'COLUMN',@level2name=N'DTS' -GO -/****** Object: ForeignKey [FK_Formats_ParentID] Script Date: 01/06/2012 15:02:52 ******/ -ALTER TABLE [Formats] WITH CHECK ADD CONSTRAINT [FK_Formats_ParentID] FOREIGN KEY([ParentID]) -REFERENCES [Formats] ([FormatID]) -GO -ALTER TABLE [Formats] CHECK CONSTRAINT [FK_Formats_ParentID] -GO -/****** Object: ForeignKey [FK_Associations_DocVersions] Script Date: 01/06/2012 15:02:52 ******/ -ALTER TABLE [Associations] WITH CHECK ADD CONSTRAINT [FK_Associations_DocVersions] FOREIGN KEY([VersionID]) -REFERENCES [DocVersions] ([VersionID]) -GO -ALTER TABLE [Associations] CHECK CONSTRAINT [FK_Associations_DocVersions] -GO -/****** Object: ForeignKey [FK_Associations_ROFsts] Script Date: 01/06/2012 15:02:52 ******/ -ALTER TABLE [Associations] WITH CHECK ADD CONSTRAINT [FK_Associations_ROFsts] FOREIGN KEY([ROFstID]) -REFERENCES [ROFsts] ([ROFstID]) -GO -ALTER TABLE [Associations] CHECK CONSTRAINT [FK_Associations_ROFsts] -GO -/****** Object: ForeignKey [FK__Folders__ParentID] Script Date: 01/06/2012 15:02:52 ******/ -ALTER TABLE [Folders] WITH CHECK ADD CONSTRAINT [FK__Folders__ParentID] FOREIGN KEY([ParentID]) -REFERENCES [Folders] ([FolderID]) -GO -ALTER TABLE [Folders] CHECK CONSTRAINT [FK__Folders__ParentID] -GO -/****** Object: ForeignKey [FK_Folders_Connections] Script Date: 01/06/2012 15:02:52 ******/ -ALTER TABLE [Folders] WITH CHECK ADD CONSTRAINT [FK_Folders_Connections] FOREIGN KEY([DBID]) -REFERENCES [Connections] ([DBID]) -GO -ALTER TABLE [Folders] CHECK CONSTRAINT [FK_Folders_Connections] -GO -/****** Object: ForeignKey [FK_Folders_Formats] Script Date: 01/06/2012 15:02:52 ******/ -ALTER TABLE [Folders] WITH CHECK ADD CONSTRAINT [FK_Folders_Formats] FOREIGN KEY([FormatID]) -REFERENCES [Formats] ([FormatID]) -GO -ALTER TABLE [Folders] CHECK CONSTRAINT [FK_Folders_Formats] -GO -/****** Object: ForeignKey [FK_DROUsages_Documents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [DROUsages] WITH CHECK ADD CONSTRAINT [FK_DROUsages_Documents] FOREIGN KEY([DocID]) -REFERENCES [Documents] ([DocID]) -GO -ALTER TABLE [DROUsages] CHECK CONSTRAINT [FK_DROUsages_Documents] -GO -/****** Object: ForeignKey [FK_DROUsages_RODbs] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [DROUsages] WITH CHECK ADD CONSTRAINT [FK_DROUsages_RODbs] FOREIGN KEY([RODbID]) -REFERENCES [RODbs] ([RODbID]) -GO -ALTER TABLE [DROUsages] CHECK CONSTRAINT [FK_DROUsages_RODbs] -GO -/****** Object: ForeignKey [FK_Figures_RODbs] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [ROImages] WITH CHECK ADD CONSTRAINT [FK_Figures_RODbs] FOREIGN KEY([RODbID]) -REFERENCES [RODbs] ([RODbID]) -GO -ALTER TABLE [ROImages] CHECK CONSTRAINT [FK_Figures_RODbs] -GO -/****** Object: ForeignKey [FK_ROFsts_RODbs] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [ROFsts] WITH CHECK ADD CONSTRAINT [FK_ROFsts_RODbs] FOREIGN KEY([RODbID]) -REFERENCES [RODbs] ([RODbID]) -GO -ALTER TABLE [ROFsts] CHECK CONSTRAINT [FK_ROFsts_RODbs] -GO -/****** Object: ForeignKey [FK_RoUsages_Contents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [RoUsages] WITH CHECK ADD CONSTRAINT [FK_RoUsages_Contents] FOREIGN KEY([ContentID]) -REFERENCES [Contents] ([ContentID]) -GO -ALTER TABLE [RoUsages] CHECK CONSTRAINT [FK_RoUsages_Contents] -GO -/****** Object: ForeignKey [FK_ROUsages_RODbs] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [RoUsages] WITH CHECK ADD CONSTRAINT [FK_ROUsages_RODbs] FOREIGN KEY([RODbID]) -REFERENCES [RODbs] ([RODbID]) -GO -ALTER TABLE [RoUsages] CHECK CONSTRAINT [FK_ROUsages_RODbs] -GO -/****** Object: ForeignKey [FK_Figures_ROFsts] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Figures] WITH CHECK ADD CONSTRAINT [FK_Figures_ROFsts] FOREIGN KEY([ROFstID]) -REFERENCES [ROFsts] ([ROFstID]) -GO -ALTER TABLE [Figures] CHECK CONSTRAINT [FK_Figures_ROFsts] -GO -/****** Object: ForeignKey [FK_Figures_ROImages] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Figures] WITH CHECK ADD CONSTRAINT [FK_Figures_ROImages] FOREIGN KEY([ImageID]) -REFERENCES [ROImages] ([ImageID]) -GO -ALTER TABLE [Figures] CHECK CONSTRAINT [FK_Figures_ROImages] -GO -/****** Object: ForeignKey [FK_Entries_Contents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Entries] WITH CHECK ADD CONSTRAINT [FK_Entries_Contents] FOREIGN KEY([ContentID]) -REFERENCES [Contents] ([ContentID]) -GO -ALTER TABLE [Entries] CHECK CONSTRAINT [FK_Entries_Contents] -GO -/****** Object: ForeignKey [FK_Entries_Documents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Entries] WITH CHECK ADD CONSTRAINT [FK_Entries_Documents] FOREIGN KEY([DocID]) -REFERENCES [Documents] ([DocID]) -GO -ALTER TABLE [Entries] CHECK CONSTRAINT [FK_Entries_Documents] -GO -/****** Object: ForeignKey [FK_Pdfs_Documents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Pdfs] WITH CHECK ADD CONSTRAINT [FK_Pdfs_Documents] FOREIGN KEY([DocID]) -REFERENCES [Documents] ([DocID]) -GO -ALTER TABLE [Pdfs] CHECK CONSTRAINT [FK_Pdfs_Documents] -GO -/****** Object: ForeignKey [FK_Memberships_Groups] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Memberships] WITH CHECK ADD CONSTRAINT [FK_Memberships_Groups] FOREIGN KEY([GID]) -REFERENCES [Groups] ([GID]) -GO -ALTER TABLE [Memberships] CHECK CONSTRAINT [FK_Memberships_Groups] -GO -/****** Object: ForeignKey [FK_Memberships_Users] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Memberships] WITH CHECK ADD CONSTRAINT [FK_Memberships_Users] FOREIGN KEY([UID]) -REFERENCES [Users] ([UID]) -GO -ALTER TABLE [Memberships] CHECK CONSTRAINT [FK_Memberships_Users] -GO -/****** Object: ForeignKey [FK_Assignments_Folders] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Assignments] WITH CHECK ADD CONSTRAINT [FK_Assignments_Folders] FOREIGN KEY([FolderID]) -REFERENCES [Folders] ([FolderID]) -GO -ALTER TABLE [Assignments] CHECK CONSTRAINT [FK_Assignments_Folders] -GO -/****** Object: ForeignKey [FK_Assignments_Groups] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Assignments] WITH CHECK ADD CONSTRAINT [FK_Assignments_Groups] FOREIGN KEY([GID]) -REFERENCES [Groups] ([GID]) -GO -ALTER TABLE [Assignments] CHECK CONSTRAINT [FK_Assignments_Groups] -GO -/****** Object: ForeignKey [FK_Assignments_Roles] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Assignments] WITH CHECK ADD CONSTRAINT [FK_Assignments_Roles] FOREIGN KEY([RID]) -REFERENCES [Roles] ([RID]) -GO -ALTER TABLE [Assignments] CHECK CONSTRAINT [FK_Assignments_Roles] -GO -/****** Object: ForeignKey [FK_Parts_Contents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Parts] WITH CHECK ADD CONSTRAINT [FK_Parts_Contents] FOREIGN KEY([ContentID]) -REFERENCES [Contents] ([ContentID]) -GO -ALTER TABLE [Parts] CHECK CONSTRAINT [FK_Parts_Contents] -GO -/****** Object: ForeignKey [FK_Parts_Items] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Parts] WITH CHECK ADD CONSTRAINT [FK_Parts_Items] FOREIGN KEY([ItemID]) -REFERENCES [Items] ([ItemID]) -GO -ALTER TABLE [Parts] CHECK CONSTRAINT [FK_Parts_Items] -GO -/****** Object: ForeignKey [FK_DocVersions_Formats] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [DocVersions] WITH CHECK ADD CONSTRAINT [FK_DocVersions_Formats] FOREIGN KEY([FormatID]) -REFERENCES [Formats] ([FormatID]) -GO -ALTER TABLE [DocVersions] CHECK CONSTRAINT [FK_DocVersions_Formats] -GO -/****** Object: ForeignKey [FK_DocVersions_Items] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [DocVersions] WITH CHECK ADD CONSTRAINT [FK_DocVersions_Items] FOREIGN KEY([ItemID]) -REFERENCES [Items] ([ItemID]) -GO -ALTER TABLE [DocVersions] CHECK CONSTRAINT [FK_DocVersions_Items] -GO -/****** Object: ForeignKey [FK_Versions_Folders] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [DocVersions] WITH CHECK ADD CONSTRAINT [FK_Versions_Folders] FOREIGN KEY([FolderID]) -REFERENCES [Folders] ([FolderID]) -GO -ALTER TABLE [DocVersions] CHECK CONSTRAINT [FK_Versions_Folders] -GO -/****** Object: ForeignKey [FK_TransitionsFromID_Contents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Transitions] WITH CHECK ADD CONSTRAINT [FK_TransitionsFromID_Contents] FOREIGN KEY([FromID]) -REFERENCES [Contents] ([ContentID]) -GO -ALTER TABLE [Transitions] CHECK CONSTRAINT [FK_TransitionsFromID_Contents] -GO -/****** Object: ForeignKey [FK_TransitionsRangeId_Items] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Transitions] WITH CHECK ADD CONSTRAINT [FK_TransitionsRangeId_Items] FOREIGN KEY([RangeID]) -REFERENCES [Items] ([ItemID]) -GO -ALTER TABLE [Transitions] CHECK CONSTRAINT [FK_TransitionsRangeId_Items] -GO -/****** Object: ForeignKey [FK_TransitionsToId_Items] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Transitions] WITH CHECK ADD CONSTRAINT [FK_TransitionsToId_Items] FOREIGN KEY([ToID]) -REFERENCES [Items] ([ItemID]) -GO -ALTER TABLE [Transitions] CHECK CONSTRAINT [FK_TransitionsToId_Items] -GO -/****** Object: ForeignKey [FK_Annotations_AnnotationTypes] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Annotations] WITH CHECK ADD CONSTRAINT [FK_Annotations_AnnotationTypes] FOREIGN KEY([TypeID]) -REFERENCES [AnnotationTypes] ([TypeID]) -GO -ALTER TABLE [Annotations] CHECK CONSTRAINT [FK_Annotations_AnnotationTypes] -GO -/****** Object: ForeignKey [FK_Annotations_Items] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Annotations] WITH CHECK ADD CONSTRAINT [FK_Annotations_Items] FOREIGN KEY([ItemID]) -REFERENCES [Items] ([ItemID]) -GO -ALTER TABLE [Annotations] CHECK CONSTRAINT [FK_Annotations_Items] -GO -/****** Object: ForeignKey [FK_Contents_Formats] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Contents] WITH CHECK ADD CONSTRAINT [FK_Contents_Formats] FOREIGN KEY([FormatID]) -REFERENCES [Formats] ([FormatID]) -GO -ALTER TABLE [Contents] CHECK CONSTRAINT [FK_Contents_Formats] -GO -/****** Object: ForeignKey [FK_Items_Contents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Items] WITH CHECK ADD CONSTRAINT [FK_Items_Contents] FOREIGN KEY([ContentID]) -REFERENCES [Contents] ([ContentID]) -GO -ALTER TABLE [Items] CHECK CONSTRAINT [FK_Items_Contents] -GO -/****** Object: ForeignKey [FK_Items_Items] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Items] WITH CHECK ADD CONSTRAINT [FK_Items_Items] FOREIGN KEY([PreviousID]) -REFERENCES [Items] ([ItemID]) -GO -ALTER TABLE [Items] CHECK CONSTRAINT [FK_Items_Items] -GO -/****** Object: ForeignKey [FK_Details_Contents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Details] WITH CHECK ADD CONSTRAINT [FK_Details_Contents] FOREIGN KEY([ContentID]) -REFERENCES [Contents] ([ContentID]) -GO -ALTER TABLE [Details] CHECK CONSTRAINT [FK_Details_Contents] -GO -/****** Object: ForeignKey [FK_ZContents_Contents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [ZContents] WITH CHECK ADD CONSTRAINT [FK_ZContents_Contents] FOREIGN KEY([ContentID]) -REFERENCES [Contents] ([ContentID]) -GO -ALTER TABLE [ZContents] CHECK CONSTRAINT [FK_ZContents_Contents] -GO -/****** Object: ForeignKey [FK_Grids_Contents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Grids] WITH CHECK ADD CONSTRAINT [FK_Grids_Contents] FOREIGN KEY([ContentID]) -REFERENCES [Contents] ([ContentID]) -GO -ALTER TABLE [Grids] CHECK CONSTRAINT [FK_Grids_Contents] -GO -/****** Object: ForeignKey [FK_Images_Contents] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Images] WITH CHECK ADD CONSTRAINT [FK_Images_Contents] FOREIGN KEY([ContentID]) -REFERENCES [Contents] ([ContentID]) -GO -ALTER TABLE [Images] CHECK CONSTRAINT [FK_Images_Contents] -GO -/****** Object: ForeignKey [FK_ZTransitions_Transitions] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [ZTransitions] WITH CHECK ADD CONSTRAINT [FK_ZTransitions_Transitions] FOREIGN KEY([TransitionID]) -REFERENCES [Transitions] ([TransitionID]) -GO -ALTER TABLE [ZTransitions] CHECK CONSTRAINT [FK_ZTransitions_Transitions] -GO -/****** Object: ForeignKey [FK_Permissions_Roles] Script Date: 01/06/2012 15:02:53 ******/ -ALTER TABLE [Permissions] WITH CHECK ADD CONSTRAINT [FK_Permissions_Roles] FOREIGN KEY([RID]) -REFERENCES [Roles] ([RID]) -GO -ALTER TABLE [Permissions] CHECK CONSTRAINT [FK_Permissions_Roles] -GO ---ALTER TABLE [dbo].[Applicabilities] WITH CHECK ADD CONSTRAINT [FK_Applicabilities_Items] FOREIGN KEY([ItemID]) ---REFERENCES [dbo].[Items] ([ItemID]) ---GO ---ALTER TABLE [dbo].[Applicabilities] CHECK CONSTRAINT [FK_Applicabilities_Items] ---GO ---ALTER TABLE [dbo].[Applicabilities] WITH CHECK ADD CONSTRAINT [FK_Applicabilities_Scopes] FOREIGN KEY([ScopeID]) ---REFERENCES [dbo].[Scopes] ([ScopeID]) ---GO ---ALTER TABLE [dbo].[Applicabilities] CHECK CONSTRAINT [FK_Applicabilities_Scopes] ---GO -/****** Object: View [dbo].[vDuplicates1] Script Date: 01/06/2012 15:02:55 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -CREATE view [vDuplicates1] as -SELECT Min(ContentID) MinID,Max(ContentID) MaxID,[Number],[Text],[Type],[FormatID],[Config],count(*) HowMany - FROM [Contents] -where contentid not in (select contentid from parts) -group by [Number],[Text],[Type],[FormatID],[Config] -having count(*) > 1 and type >= 20000 -GO -/****** Object: View [dbo].[vDuplicates2] Script Date: 01/06/2012 15:02:55 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -create view [vDuplicates2] as -SELECT Min(ContentID) MinID,Max(ContentID) MaxID,[Number],[Text],[Type],[FormatID],[Config],count(*) HowMany - FROM [Contents] -where contentid in (select contentid from parts) -group by [Number],[Text],[Type],[FormatID],[Config] -having count(*) > 1 and type >= 20000 -GO -/****** Object: Trigger [trigAddFolder] Script Date: 01/06/2012 15:02:56 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO --- ============================================= --- Author: --- Create date: --- Description: --- ============================================= -CREATE TRIGGER [trigAddFolder] - ON [Folders] - AFTER INSERT -AS -BEGIN - - SET NOCOUNT ON; - --select max(fld.ManualOrder) from folders fld join inserted ins on fld.ParentID = Ins.ParentID - --Select ROW_NUMBER() OVER(Partition by [ParentID] Order BY FolderID) + (select max(ManualOrder) from folders where ParentID = Inserted.ParentID) as RowNumber,* from Inserted - Update Fld set Fld.ManualOrder = Ins.RowNumber - From Folders Fld join - (Select ROW_NUMBER() OVER(Partition by [ParentID] Order BY FolderID) -+ (select isnull(max(ManualOrder),0) from folders where ParentID = -Inserted.ParentID) as RowNumber,* from Inserted) - Ins on Ins.FolderID = Fld.FolderID - Print 'Trigger Fired' -END -GO -INSERT INTO [Connections] ([Name]) VALUES ('Bozo') -INSERT INTO [Formats] ([Name],[Data]) VALUES ('Bozo',cast('' as xml)) -INSERT INTO [Folders] ([Name],[ShortName],[ManualOrder]) VALUES ('Bozo','Bozo',1) -INSERT INTO [DocVersions] ([FolderID],[Name]) VALUES (1,'Bozo') -INSERT INTO [Contents]([Number]) VALUES('Bozo') -INSERT INTO [Items] ([ContentID]) VALUES (1) -INSERT INTO [RODbs] ([ROName],[FolderPath],[DBConnectionString]) VALUES ('Bozo','Bozo','Bozo') -INSERT INTO [ROFsts] ([RODbID],[ROLookup]) VALUES(1,Cast('Bozo' as varbinary)) -Insert Into [Transitions] ([FromID],[ToID],[RangeID]) VALUES (1,1,1) -Insert Into [AnnotationTypes] ([Name]) VALUES ('Bozo') -Insert Into [Annotations] ([ItemID],[TypeID]) VALUES (1,1) -Insert Into [Groups] ([GroupName]) VALUES ('Bozo') -Insert Into [Details] ([ContentID],[ItemType],[Text]) VALUES (1,1,'Bozo') -Insert Into [Roles] ([Name],[Title]) VALUES ('Bozo','Bozo') -Insert Into [Permissions] ([RID],[PermLevel],[VersionType],[PermValue]) VALUES (1,1,1,1) -Insert Into [Scopes] ([Name]) VALUES ('Bozo') ---Insert Into [Applicabilities] ([ItemID],[ScopeID]) VALUES (1,1) -Insert Into [Associations] ([VersionID],[ROFstID]) VALUES (1,1) -INSERT INTO [Documents] ([LibTitle]) VALUES ('Bozo') -Insert Into [DROUsages] ([DocID],[ROID],[RODbID]) VALUES (1,'Bozo',1) -Insert Into [ROImages] ([RODbID],[FileName],[Content]) VALUES (1,'Bozo',cast ('Bozo' as varbinary)) -Insert Into [RoUsages] ([ContentID],[ROID],[RODbID]) VALUES (1,1,1) -Insert Into [Figures] ([ROFstID],[ImageID]) VALUES (1,1) -INSERT INTO [Users] ([UserID]) VALUES ('Bozo') -Insert Into [Memberships] ([UID],[GID]) VALUES (1,1) -Insert Into [Assignments] ([GID],[RID],[FolderID]) VALUES (1,1,1) -GO -sp_changedbowner sa -GO -USE MASTER -GO diff --git a/PROMS/DataLoader/ClassDiagram1.cd b/PROMS/DataLoader/ClassDiagram1.cd deleted file mode 100644 index 0519ecba..00000000 --- a/PROMS/DataLoader/ClassDiagram1.cd +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/DataLoader/ConfigInfo.cs b/PROMS/DataLoader/ConfigInfo.cs deleted file mode 100644 index 51fb8122..00000000 --- a/PROMS/DataLoader/ConfigInfo.cs +++ /dev/null @@ -1,145 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace DataLoader -{ - class ConfigInfo - { - private XmlDocument xmldoc; - public ConfigInfo(string xml) - { - xmldoc = new XmlDocument(); - if (xml == null) - xmldoc.LoadXml(""); - else - xmldoc.LoadXml(xml); - } - - public ConfigInfo(string xml, string ename, string aname, string avalue) - { - xmldoc = new XmlDocument(); - if (xml == null) - xmldoc.LoadXml(""); - else - xmldoc.LoadXml(xml); - AddItem(ename, aname.Replace(' ','_'), avalue); - } - public bool AddItem(string ename, string aname, string avalue) - { - if (aname != null && aname != "") - { - //if (xmldoc == null) - //{ - // xmldoc = new XmlDocument(); - // xmldoc.AppendChild(xmldoc.CreateElement("ConfigInfo")); - //} - // see if ename element exists, use it to add attributes, - // otherwise, create the element. - - XmlNode nxml = null; - XmlNodeList xl = xmldoc.DocumentElement.SelectNodes(string.Format("//{0}", ename)); - switch (xl.Count) - { - case 0: // No nodes found - nxml = xmldoc.DocumentElement.AppendChild(xmldoc.CreateElement(ename)); - break; - default: // Found the node - nxml = xl[0]; - if (nxml.GetType() != typeof(XmlElement)) - { - frmLoader._MyLog.ErrorFormat("Invalid xml element type when migrating config data - element = {0}, name = {1} , value = {2}", ename, aname, avalue); - return false; - } - break; - } - XmlAttribute xa = nxml.Attributes.Append(xmldoc.CreateAttribute(aname.Replace(' ', '_'))); - //added by jcb 20131216 - //aname = SanitizeXmlString(aname); - //XmlAttribute xa = nxml.Attributes.Append(xmldoc.CreateAttribute(aname)); - //end added by jcb 20131216 - xa.Value = avalue; - return true; - } - return false; - } - - //added by jcb 20131216 - public string SanitizeXmlString(string xml) - { - if (xml == null) - throw new ArgumentNullException("xml"); - xml = xml.Replace(' ', '_').Replace("/", "_fslash_").Replace("(", "_lparen_").Replace((char)0xA0, '_').Replace((char)0x20, '_').Replace(":", "_colon_"); - StringBuilder buffer = new StringBuilder(xml.Length); - foreach (char c in xml) - { - if (IsLegalXmlChar(c)) - buffer.Append(c); - } - return buffer.ToString(); - } - - /// - /// Whether a given character is allowed by XML 1.0. - /// - public bool IsLegalXmlChar(int character) - { - return - ( - character == 0x9 /* == '\t' == 9 */ || - character == 0xA /* == '\n' == 10 */ || - character == 0xD /* == '\r' == 13 */ || - (character >= 0x20 && character <= 0xD7FF) || - (character >= 0xE000 && character <= 0xFFFD) || - (character >= 0x10000 && character <= 0x10FFFF) - ); - } - //end added by jcb 20131216 - - public int ItemCount - { - get { return xmldoc.DocumentElement.ChildNodes.Count; } - } - - public override string ToString() - { - if (xmldoc != null) return xmldoc.InnerXml; - else return null; - } - public void AddSlaveNode(int index) - { - XmlElement slaves = xmldoc.SelectSingleNode("Config/Slaves") as XmlElement; - if (slaves == null) - { - slaves = xmldoc.CreateElement("Slaves"); - xmldoc.DocumentElement.AppendChild(slaves); - } - XmlElement slave = xmldoc.CreateElement("Slave"); - XmlAttribute xa = xmldoc.CreateAttribute("index"); - xa.InnerText = index.ToString(); - slave.Attributes.Append(xa); - slaves.AppendChild(slave); - } - public void AddSlaveItem(int index, string aname, string avalue) - { - string srch = "Config/Slaves/Slave[@index='" + index.ToString() + "']"; - XmlElement slave = xmldoc.SelectSingleNode(srch) as XmlElement; - if (slave != null) - { - XmlAttribute xa = xmldoc.CreateAttribute(aname); - xa.InnerText = avalue; - slave.Attributes.Append(xa); - } - } - } -} diff --git a/PROMS/DataLoader/ConfigInfo.cs.bak b/PROMS/DataLoader/ConfigInfo.cs.bak deleted file mode 100644 index 3685ece5..00000000 --- a/PROMS/DataLoader/ConfigInfo.cs.bak +++ /dev/null @@ -1,144 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace DataLoader -{ - class ConfigInfo - { - private XmlDocument xmldoc; - public ConfigInfo(string xml) - { - xmldoc = new XmlDocument(); - if (xml == null) - xmldoc.LoadXml(""); - else - xmldoc.LoadXml(xml); - } - - public ConfigInfo(string xml, string ename, string aname, string avalue) - { - xmldoc = new XmlDocument(); - if (xml == null) - xmldoc.LoadXml(""); - else - xmldoc.LoadXml(xml); - AddItem(ename, aname.Replace(' ','_'), avalue); - } - public bool AddItem(string ename, string aname, string avalue) - { - if (aname != null && aname != "") - { - //if (xmldoc == null) - //{ - // xmldoc = new XmlDocument(); - // xmldoc.AppendChild(xmldoc.CreateElement("ConfigInfo")); - //} - // see if ename element exists, use it to add attributes, - // otherwise, create the element. - - XmlNode nxml = null; - XmlNodeList xl = xmldoc.DocumentElement.SelectNodes(string.Format("//{0}", ename)); - switch (xl.Count) - { - case 0: // No nodes found - nxml = xmldoc.DocumentElement.AppendChild(xmldoc.CreateElement(ename)); - break; - default: // Found the node - nxml = xl[0]; - if (nxml.GetType() != typeof(XmlElement)) - { - frmLoader._MyLog.ErrorFormat("Invalid xml element type when migrating config data - element = {0}, name = {1} , value = {2}", ename, aname, avalue); - return false; - } - break; - } - //added by jcb 20131216 - aname = SanitizeXmlString(aname); - XmlAttribute xa = nxml.Attributes.Append(xmldoc.CreateAttribute(aname)); - //end added by jcb 20131216 - xa.Value = avalue; - return true; - } - return false; - } - - //added by jcb 20131216 - public string SanitizeXmlString(string xml) - { - if (xml == null) - throw new ArgumentNullException("xml"); - xml = xml.Replace(' ', '_').Replace("/", "_fslash_").Replace("(", "_lparen_").Replace((char)0xA0, '_').Replace((char)0x20, '_').Replace(":", "_colon_"); - StringBuilder buffer = new StringBuilder(xml.Length); - foreach (char c in xml) - { - if (IsLegalXmlChar(c)) - buffer.Append(c); - } - return buffer.ToString(); - } - - /// - /// Whether a given character is allowed by XML 1.0. - /// - public bool IsLegalXmlChar(int character) - { - return - ( - character == 0x9 /* == '\t' == 9 */ || - character == 0xA /* == '\n' == 10 */ || - character == 0xD /* == '\r' == 13 */ || - (character >= 0x20 && character <= 0xD7FF) || - (character >= 0xE000 && character <= 0xFFFD) || - (character >= 0x10000 && character <= 0x10FFFF) - ); - } - //end added by jcb 20131216 - - public int ItemCount - { - get { return xmldoc.DocumentElement.ChildNodes.Count; } - } - - public override string ToString() - { - if (xmldoc != null) return xmldoc.InnerXml; - else return null; - } - public void AddSlaveNode(int index) - { - XmlElement slaves = xmldoc.SelectSingleNode("Config/Slaves") as XmlElement; - if (slaves == null) - { - slaves = xmldoc.CreateElement("Slaves"); - xmldoc.DocumentElement.AppendChild(slaves); - } - XmlElement slave = xmldoc.CreateElement("Slave"); - XmlAttribute xa = xmldoc.CreateAttribute("index"); - xa.InnerText = index.ToString(); - slave.Attributes.Append(xa); - slaves.AppendChild(slave); - } - public void AddSlaveItem(int index, string aname, string avalue) - { - string srch = "Config/Slaves/Slave[@index='" + index.ToString() + "']"; - XmlElement slave = xmldoc.SelectSingleNode(srch) as XmlElement; - if (slave != null) - { - XmlAttribute xa = xmldoc.CreateAttribute(aname); - xa.InnerText = avalue; - slave.Attributes.Append(xa); - } - } - } -} diff --git a/PROMS/DataLoader/ConversionRTBProblems.cs b/PROMS/DataLoader/ConversionRTBProblems.cs deleted file mode 100644 index 7866460e..00000000 --- a/PROMS/DataLoader/ConversionRTBProblems.cs +++ /dev/null @@ -1,203 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; -using System.Xml.Serialization; -using System.Xml.Schema; -using System.IO; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - [XmlRoot("Proms2010Print")] - //[Serializable()] - public class ConversionRTBProblems - { - private RTBProblems _RTBProblems; - - public RTBProblems RTBProblems - { - get - { - if (_RTBProblems == null) _RTBProblems = new RTBProblems(); - return _RTBProblems; - } - set { _RTBProblems = value; } - } - public void Save(string fileName) - { - XmlSerializer.WriteFile(this, fileName); - } - public static ConversionRTBProblems LoadProblems(string fileName) - { - return XmlSerializer.ReadFile(fileName); - } - public void Add(int itemID, int contentID, string originalRTF, string oldRTF, string stepRTF, string newRTF, string stepPath) - { - _RTBProblems.Add(itemID, contentID, originalRTF, oldRTF, stepRTF, newRTF, stepPath); - } - //public void Add(int itemID, int contentID, string originalRTF, string oldRTF, string stepRTF, string newRTF, string stepPath, ItemInfo iteminfo) - //{ - // _RTBProblems.Add(itemID, contentID, originalRTF, oldRTF, stepRTF, newRTF, stepPath, iteminfo); - //} - } - public class RTBProblems : List - { - //public void Add(int itemID, int contentID, string originalRTF, string oldRTF, string stepRTF, string newRTF, string stepPath, ItemInfo iteminfo) - public void Add(int itemID, int contentID, string originalRTF, string oldRTF, string stepRTF, string newRTF, string stepPath) - { - base.Add(new RTBProblem(itemID, contentID, originalRTF, oldRTF, stepRTF, newRTF, stepPath)); - //base.Add(new RTBProblem(itemID, contentID, originalRTF, oldRTF, stepRTF, newRTF, stepPath, iteminfo)); - } - } - public class RTBProblem - { - public RTBProblem() - { - } - //public RTBProblem(int itemID, int contentID, string originalRTF, string oldRTF, string stepRTF, string newRTF, string stepPath, ItemInfo iteminfo) - public RTBProblem(int itemID, int contentID, string originalRTF, string oldRTF, string stepRTF, string newRTF, string stepPath) - { - _ItemID = itemID; - _ContentID = contentID; - _OldRTF = oldRTF; - _NewRTF = newRTF; - _StepPath = stepPath; - _OriginalRTF = originalRTF; - _StepRtf = stepRTF; - //_itemInfo = iteminfo; - } - private int _ItemID; - [XmlAttribute("ItemID")] - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private int _ContentID; - [XmlAttribute("ContentID")] - public int ContentID - { - get { return _ContentID; } - set { _ContentID = value; } - } - private string _OriginalRTF; - [XmlAttribute("OriginalRTF")] - public string OriginalRTF - { - get { return _OriginalRTF; } - set { _OriginalRTF = value; } - } - private string _OldRTF; - [XmlAttribute("OldRTF")] - public string OldRTF - { - get { return _OldRTF; } - set { _OldRTF = value; } - } - private string _StepRtf; - [XmlAttribute("StepRTF")] - public string StepRtf - { - get { return _StepRtf; } - set { _StepRtf = value; } - } - private string _NewRTF; - [XmlAttribute("NewRTF")] - public string NewRTF - { - get { return _NewRTF; } - set { _NewRTF = value; } - } - private string _StepPath; - [XmlAttribute("StepPath")] - public string StepPath - { - get { return _StepPath; } - set { _StepPath = value; } - } - private string _Comparison; - [XmlIgnore] - public string Comparison - { - get - { - if (_Comparison == null) - _Comparison = GetComparison(_OldRTF, _NewRTF); - return _Comparison; - } - } - private string _StripRTF; - [XmlIgnore] - public string StripRTF - { - get - { - if (_StripRTF == null) - _StripRTF = GetStrip(_StepRtf); - return _StripRTF; - } - set { _StripRTF = value; } - } - - //private ItemInfo _itemInfo; - //[XmlIgnore] - //public ItemInfo ItemInfo - //{ - // get { return _itemInfo; } - // set { _itemInfo = value; } - //} - - private string GetStrip(string _StepRtf) - { - string rttval = DisplayText.StaticStripRtfCommands(_StepRtf); - //string rttval = Volian.Controls.Library.DisplayText.StaticStripRtfCommands(_StepRtf, _itemInfo); - //return rttval.Replace(@"\u8209?", "-"); - return rttval; - } - private string GetComparison(string str1, string str2) - { - if (str1 == str2) return str1; - int endMatch = 0; - int l1 = str1.Length; - int l2 = str2.Length; - int min = l1 > l2 ? l2 : l1; - int startMatch = min; - for (int i = 0; i < min; i++) - if (str1[i] != str2[i]) - { - startMatch = i; - break; - } - min = min - startMatch; - endMatch = min; - for (int i = 1; i < min; i++) - if (str1[l1 - i] != str2[l2 - i]) - { - endMatch = i - 1; - break; - } - string prefix = str1.Substring(0, startMatch); - string part1 = str1.Substring(startMatch, l1 - (startMatch + endMatch)); - string part2 = str2.Substring(startMatch, l2 - (startMatch + endMatch)); - string suffix = str1.Substring(l1 - endMatch, endMatch); - return prefix + "\r\n<<<" + part1 + "|||" + part2 + ">>>\r\n" + suffix; - } - private ItemInfo _MyItem; - [XmlIgnore] - public ItemInfo MyItem - { - get - { - if (_MyItem == null) - _MyItem = ItemInfo.Get(_ItemID); - return _MyItem; - } - } - public override string ToString() - { - return MyItem.ToString(); - } - } - -} diff --git a/PROMS/DataLoader/CurSet.cs b/PROMS/DataLoader/CurSet.cs deleted file mode 100644 index efb380ad..00000000 --- a/PROMS/DataLoader/CurSet.cs +++ /dev/null @@ -1,127 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== - -using System; -using System.IO; -using System.Collections; -using System.Text; -using System.Windows.Forms; -using System.Xml; -using System.Xml.Serialization; -using VEPROMS.CSLA.Library; - -namespace Utils -{ - /// - /// Summary description for CurSet. - /// - public class CurSet - { - private int NUMCBTEXTYPE = 5; // number of changebar text types. - public string PathName; - private string DefaultPlantFmt; - - public CurSet(string pname) - { - PathName = pname; - DefaultPlantFmt = null; - } - - private string ReadTheString(BinaryReader bw, int maxlen) - { - StringBuilder retStr = new StringBuilder(maxlen+1); - // read a series of characters until a null is found. - char ac; - bool done = false; - while(done==false) - { - ac = bw.ReadChar(); - if (ac=='\0') - done=true; - else - retStr.Append(ac); - } - return retStr.ToString(); - } - - public FolderConfig Convert(FolderConfig cfg) - { - BinaryReader br; - ArrayList DefaultUserCBMsg = new ArrayList(2); - FileStream fs; - FileInfo fi = new FileInfo(PathName); - try - { - fs = fi.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite ); - br = new BinaryReader(fs,System.Text.ASCIIEncoding.ASCII); - } - catch (Exception e) - { - DataLoader.frmLoader._MyLog.ErrorFormat("Error migrating {0} Curset.dat, error = {1}", PathName, e.Message); - return cfg; - } - - try - { - sbyte tmpsbyte; - string tmpstring; - tmpsbyte=br.ReadSByte(); // DefaultDestination not used - - // the next byte has three settings embedded in it, the type of change - // bar (Print_ChangeBar), the change bar location and its text. - tmpsbyte= br.ReadSByte(); - cfg.Print_ChangeBar = (PrintChangeBar)((int)tmpsbyte > 2 ? 3 : (int)tmpsbyte); - if (tmpsbyte > 2) - { - cfg.Print_ChangeBarLoc = (PrintChangeBarLoc)((tmpsbyte - 3) / NUMCBTEXTYPE); - int ts = (tmpsbyte - 3) % NUMCBTEXTYPE; - cfg.Print_ChangeBarText = (PrintChangeBarText)((tmpsbyte - 3) % NUMCBTEXTYPE); - } - else - { - cfg.Print_ChangeBarLoc = PrintChangeBarLoc.WithText; - cfg.Print_ChangeBarText = PrintChangeBarText.DateChgID; - } - cfg.Print_NumCopies=br.ReadSByte(); - cfg.Print_Pagination=(PrintPagination) br.ReadSByte(); - tmpstring = ReadTheString(br,4); // DefaultPrinter not used - cfg.Format_Plant = ReadTheString(br,10); - DefaultPlantFmt = cfg.Format_Plant; - tmpstring = ReadTheString(br, 128); // DefaultDestFName not used - tmpsbyte = br.ReadSByte(); // DefaultPlotterType not used - tmpsbyte = br.ReadSByte(); // DefaultPlotterPort not used - tmpsbyte = br.ReadSByte(); // DefaultCIEType not used. - for (int i=0;i<8;i++) // DefPenColors[8] not used - tmpsbyte = br.ReadSByte(); - cfg.Print_Watermark = (PrintWatermark)br.ReadSByte(); - cfg.Print_UserCBMess1 = ReadTheString(br, 10); - cfg.Print_UserCBMess2 = ReadTheString(br, 10); - tmpsbyte = br.ReadSByte(); // DontPrintStatusTree not used - cfg.Print_UserFormat = ReadTheString(br, 10); - //tmpsbyte = br.ReadSByte(); - //cfg.Print_Duplex = tmpsbyte == 0 ? true : false; - if (cfg.Print_UserFormat.Trim() != string.Empty) - DefaultPlantFmt += " " + cfg.Print_UserFormat; - br.Close(); - } - catch(Exception e) - { - if(br!=null) br.Close(); - DataLoader.frmLoader._MyLog.ErrorFormat("Error migrating {0} Curset.dat, error = {1}", PathName, e.Message); - } - fs.Close(); - return cfg; - } - public string GetDefFmt() - { - return DefaultPlantFmt; - } - } -} diff --git a/PROMS/DataLoader/DataLoader.csproj b/PROMS/DataLoader/DataLoader.csproj deleted file mode 100644 index 920906d7..00000000 --- a/PROMS/DataLoader/DataLoader.csproj +++ /dev/null @@ -1,259 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE} - WinExe - Properties - DataLoader - DataLoader - SAK - SAK - SAK - SAK - v3.5 - - - - - 2.0 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - - - False - ..\csla20cs-2.1.4-070223\csla20cs\csla20cs\Csla\bin\Debug\Csla.dll - - - ..\..\Proms3rdPartyLibraries\Ionic\Ionic.Zip.dll - - - False - bin\Debug\log4net.dll - - - - - - - - - - - - - - - - - - - - - - Form - - - dlgExportImport.cs - - - - - - - - - Form - - - frmCntTkn.cs - - - Form - - - frmErrors.cs - - - Form - - - frmLoader.cs - - - Form - - - frmPG.cs - - - Form - - - GroupProp.cs - - - - - - - - - - - - - - - - dlgExportImport.cs - Designer - - - frmCntTkn.cs - Designer - - - frmErrors.cs - Designer - - - Designer - frmLoader.cs - - - frmPG.cs - Designer - - - Designer - GroupProp.cs - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - PreserveNewest - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - Component - - - RichTextBox41.cs - - - - - - - - - - - - - - - - - - - - - - - - {70F23722-19A3-4AC1-A900-55831C945786} - LBWordLibrary - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9} - Volian.Base.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - {62314B9C-DA84-4037-8B68-AA18C1F641F5} - Volian.Utils.Library - - - - - PreserveNewest - - - - - \ No newline at end of file diff --git a/PROMS/DataLoader/DataLoader.sln b/PROMS/DataLoader/DataLoader.sln deleted file mode 100644 index 496950ba..00000000 --- a/PROMS/DataLoader/DataLoader.sln +++ /dev/null @@ -1,153 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataLoader", "DataLoader.csproj", "{8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.Utils.Library", "..\Volian.Utils.Library\Volian.Utils.Library.csproj", "{62314B9C-DA84-4037-8B68-AA18C1F641F5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VEPROMS.CSLA.Library", "..\VEPROMS.CSLA.Library\VEPROMS.CSLA.Library.csproj", "{41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EPocalipse.IFilter", "..\EPocalipse.IFilter\EPocalipse.IFilter.csproj", "{400462CE-40B3-498F-B95A-B1D2AE679359}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "LBWordLibrary", "..\LBWordLibrary\LBWordLibrary.csproj", "{70F23722-19A3-4AC1-A900-55831C945786}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.Controls.Library", "..\Volian.Controls.Library\Volian.Controls.Library.csproj", "{8556527C-6615-487F-8AF7-22EBC3EF0268}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.Base.Library", "..\Volian.Base.Library\Volian.Base.Library.csproj", "{AEEE9FD1-6892-45E2-A67E-418C06D46FF9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XYPlots", "..\XYPlots\XYPlots.csproj", "{04E168D0-9CC7-43D9-A9F1-93E481EA86A3}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 7 - SccProjectUniqueName0 = ..\\Volian.Utils.Library\\Volian.Utils.Library.csproj - SccProjectName0 = \u0022$/PROMS/Volian.Utils.Library\u0022,\u0020DICAAAAA - SccLocalPath0 = ..\\Volian.Utils.Library - SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - SccProjectUniqueName1 = ..\\VEPROMS.CSLA.Library\\VEPROMS.CSLA.Library.csproj - SccProjectName1 = \u0022$/PROMS/VEPROMS.CSLA.Library\u0022,\u0020TPBAAAAA - SccLocalPath1 = ..\\VEPROMS.CSLA.Library - SccProvider1 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - SccProjectUniqueName2 = DataLoader.csproj - SccProjectName2 = \u0022$/PROMS/DataLoader\u0022,\u0020IIAAAAAA - SccLocalPath2 = . - SccProvider2 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - SccProjectUniqueName3 = ..\\Volian.Controls.Library\\Volian.Controls.Library.csproj - SccProjectName3 = \u0022$/PROMS/Volian.Controls.Library\u0022,\u0020TVBAAAAA - SccLocalPath3 = ..\\Volian.Controls.Library - SccProvider3 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - SccProjectUniqueName4 = ..\\LBWordLibrary\\LBWordLibrary.csproj - SccProjectName4 = \u0022$/PROMS/LBWordLibrary\u0022,\u0020QUDAAAAA - SccLocalPath4 = ..\\LBWordLibrary - SccProvider4 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - SccProjectUniqueName5 = ..\\Volian.Base.Library\\Volian.Base.Library.csproj - SccProjectName5 = \u0022$/PROMS/Volian.Base.Library\u0022,\u0020QJEAAAAA - SccLocalPath5 = ..\\Volian.Base.Library - SccProvider5 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - SccProjectUniqueName6 = ..\\XYPlots\\XYPlots.csproj - SccProjectName6 = \u0022$/PROMS/XYPlots\u0022,\u0020BRDAAAAA - SccLocalPath6 = ..\\XYPlots - SccProvider6 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Demo|Any CPU = Demo|Any CPU - Demo|x86 = Demo|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Debug|x86.ActiveCfg = Debug|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Demo|Any CPU.Build.0 = Debug|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Demo|x86.ActiveCfg = Debug|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Release|Any CPU.Build.0 = Release|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Release|x86.ActiveCfg = Release|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Debug|x86.ActiveCfg = Debug|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Demo|Any CPU.Build.0 = Debug|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Demo|x86.ActiveCfg = Debug|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Release|Any CPU.Build.0 = Release|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Release|x86.ActiveCfg = Release|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Debug|x86.ActiveCfg = Debug|x86 - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Debug|x86.Build.0 = Debug|x86 - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Demo|Any CPU.Build.0 = Demo|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Demo|x86.ActiveCfg = Demo|x86 - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Demo|x86.Build.0 = Demo|x86 - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Release|Any CPU.Build.0 = Release|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Release|x86.ActiveCfg = Release|x86 - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Release|x86.Build.0 = Release|x86 - {400462CE-40B3-498F-B95A-B1D2AE679359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {400462CE-40B3-498F-B95A-B1D2AE679359}.Debug|Any CPU.Build.0 = Debug|Any CPU - {400462CE-40B3-498F-B95A-B1D2AE679359}.Debug|x86.ActiveCfg = Debug|x86 - {400462CE-40B3-498F-B95A-B1D2AE679359}.Debug|x86.Build.0 = Debug|x86 - {400462CE-40B3-498F-B95A-B1D2AE679359}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {400462CE-40B3-498F-B95A-B1D2AE679359}.Demo|Any CPU.Build.0 = Demo|Any CPU - {400462CE-40B3-498F-B95A-B1D2AE679359}.Demo|x86.ActiveCfg = Demo|x86 - {400462CE-40B3-498F-B95A-B1D2AE679359}.Demo|x86.Build.0 = Demo|x86 - {400462CE-40B3-498F-B95A-B1D2AE679359}.Release|Any CPU.ActiveCfg = Release|Any CPU - {400462CE-40B3-498F-B95A-B1D2AE679359}.Release|Any CPU.Build.0 = Release|Any CPU - {400462CE-40B3-498F-B95A-B1D2AE679359}.Release|x86.ActiveCfg = Release|x86 - {400462CE-40B3-498F-B95A-B1D2AE679359}.Release|x86.Build.0 = Release|x86 - {70F23722-19A3-4AC1-A900-55831C945786}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {70F23722-19A3-4AC1-A900-55831C945786}.Debug|Any CPU.Build.0 = Debug|Any CPU - {70F23722-19A3-4AC1-A900-55831C945786}.Debug|x86.ActiveCfg = Debug|Any CPU - {70F23722-19A3-4AC1-A900-55831C945786}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {70F23722-19A3-4AC1-A900-55831C945786}.Demo|Any CPU.Build.0 = Debug|Any CPU - {70F23722-19A3-4AC1-A900-55831C945786}.Demo|x86.ActiveCfg = Debug|Any CPU - {70F23722-19A3-4AC1-A900-55831C945786}.Release|Any CPU.ActiveCfg = Release|Any CPU - {70F23722-19A3-4AC1-A900-55831C945786}.Release|Any CPU.Build.0 = Release|Any CPU - {70F23722-19A3-4AC1-A900-55831C945786}.Release|x86.ActiveCfg = Release|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Debug|x86.ActiveCfg = Debug|x86 - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Debug|x86.Build.0 = Debug|x86 - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Demo|Any CPU.Build.0 = Demo|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Demo|x86.ActiveCfg = Demo|x86 - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Demo|x86.Build.0 = Demo|x86 - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Release|Any CPU.Build.0 = Release|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Release|x86.ActiveCfg = Release|x86 - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Release|x86.Build.0 = Release|x86 - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}.Debug|x86.ActiveCfg = Debug|x86 - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}.Debug|x86.Build.0 = Debug|x86 - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}.Demo|Any CPU.ActiveCfg = Debug|x86 - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}.Demo|x86.ActiveCfg = Debug|x86 - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}.Demo|x86.Build.0 = Debug|x86 - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}.Release|Any CPU.Build.0 = Release|Any CPU - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}.Release|x86.ActiveCfg = Release|x86 - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9}.Release|x86.Build.0 = Release|x86 - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Debug|x86.ActiveCfg = Debug|x86 - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Debug|x86.Build.0 = Debug|x86 - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Demo|Any CPU.Build.0 = Demo|Any CPU - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Demo|x86.ActiveCfg = Demo|x86 - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Demo|x86.Build.0 = Demo|x86 - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Release|Any CPU.Build.0 = Release|Any CPU - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Release|x86.ActiveCfg = Release|x86 - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/DataLoader/DataLoaderGlitches.cs b/PROMS/DataLoader/DataLoaderGlitches.cs deleted file mode 100644 index a16b9705..00000000 --- a/PROMS/DataLoader/DataLoaderGlitches.cs +++ /dev/null @@ -1,213 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; -using System.Xml.Serialization; -using System.Xml.Schema; -using System.IO; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - [XmlRoot("DataLoaderGlitches")] - //[Serializable()] - public class DataLoaderGlitches - { - private Glitches _Glitches; - - public Glitches Glitches - { - get - { - if (_Glitches == null) _Glitches = new Glitches(); - return _Glitches; - } - set { _Glitches = value; } - } - public void Add(string cause, string originalText, string newText) - { - Glitches.Add(cause, originalText, newText); - } - public void Save(string fileName) - { - XmlSerializer.WriteFile(this, fileName); - } - public static DataLoaderGlitches LoadProblems(string fileName) - { - return XmlSerializer.ReadFile(fileName); - } - } - public class Glitches : List - { - public void Add(string cause, string originalText, string newText) - { - base.Add(new Glitch(cause, originalText, newText)); - } - } - public class Glitch - { - public Glitch() - { - } - public Glitch(string cause, string originalText, string newText) - { - _Cause = cause; - _OriginalText = originalText; - _NewText = newText; - } - private string _Cause; - [XmlAttribute("Cause")] - public string Cause - { - get { return _Cause; } - set { _Cause = value; } - } - private string _OriginalText; - [XmlAttribute("OriginalText")] - public string OriginalText - { - get { return _OriginalText; } - set { _OriginalText = value; } - } - private string _NewText; - [XmlAttribute("NewText")] - public string NewText - { - get { return _NewText; } - set { _NewText = value; } - } - private string _Comparison; - [XmlIgnore] - public string Comparison - { - get - { - if (_Comparison == null) - _Comparison = GetComparison(_OriginalText, _NewText); - return _Comparison; - } - } - private string GetComparison(string str1, string str2) - { - if(str1 == str2)return str1; - int endMatch = 0; - int l1 = str1.Length; - int l2 = str2.Length; - int min = l1 > l2 ? l2 : l1; - int startMatch = min; - for(int i = 0; i< min; i++) - if (str1[i] != str2[i]) - { - startMatch = i; - break; - } - for (int i = 1; i < min; i++) - if (str1[l1-i] != str2[l2-i]) - { - endMatch = i-1; - break; - } - string prefix = str1.Substring(0, startMatch); - string part1 = str1.Substring(startMatch, l1 - (startMatch + endMatch)); - string part2 = str2.Substring(startMatch, l2 - (startMatch + endMatch)); - string suffix = str1.Substring(l1 - endMatch, endMatch); - _Delta = "<<<" + part1 + "|||" + part2 + ">>>"; - return prefix + "\r\n<<<" + part1 + "|||" + part2 + ">>>\r\n" + suffix; - } - private string _Delta = null; - public override string ToString() - { - if (Comparison == null) { ;} // This gets the Comparsion and sets _Delta - return _Delta; - } - } - public static class XmlSerializer where T : class - { - public static string StringSerialize(T t) - { - string strOutput = string.Empty; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.volian.com"); - using (MemoryStream ms = new MemoryStream()) - { - xs.Serialize(new NonXsiTextWriter(ms, Encoding.UTF8), t); - //xs.Serialize(ms, t); - ms.Position = 0; - StreamReader sr = new StreamReader(ms); - strOutput = sr.ReadToEnd(); - ms.Close(); - } - return strOutput; - } - public static T StringDeserialize(string s) - { - T t; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.volian.com"); - UTF8Encoding enc = new UTF8Encoding(); - Byte[] arrBytData = enc.GetBytes(s); - using (MemoryStream ms = new MemoryStream(arrBytData)) - { - t = (T)xs.Deserialize(ms); - } - return t; - } - public static void WriteFile(T t, string fileName) - { - string strOutput = string.Empty; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.volian.com"); - using (FileStream fs = new FileStream(fileName, FileMode.Create)) - { - xs.Serialize(new NonXsiTextWriter(fs, Encoding.UTF8), t); - fs.Close(); - } - } - public static T ReadFile(string fileName) - { - T t; - XmlSerializer xs = new XmlSerializer(typeof(T), "http://www.volian.com"); - using (FileStream fs = new FileStream(fileName, FileMode.Open)) - { - t = (T)xs.Deserialize(fs); - } - return t; - } - } - public class NonXsiTextWriter : XmlTextWriter - { - public NonXsiTextWriter(TextWriter w) : base(w) { } - public NonXsiTextWriter(Stream w, Encoding encoding) - : base(w, encoding) - { - this.Formatting = Formatting.Indented; - } - public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { } - bool _skip = false; - public override void WriteStartAttribute(string prefix, string localName, string ns) - { - if ((prefix == "xmlns" && (localName == "xsd" || localName == "xsi")) || // Omits XSD and XSI declarations. - ns == XmlSchema.InstanceNamespace) // Omits all XSI attributes. - { - _skip = true; - return; - } - if (localName == "xlink_href") - base.WriteStartAttribute(prefix, "xlink:href", ns); - else - base.WriteStartAttribute(prefix, localName, ns); - } - public override void WriteString(string text) - { - if (_skip) return; - base.WriteString(text); - } - public override void WriteEndAttribute() - { - if (_skip) - { // Reset the flag, so we keep writing. - _skip = false; - return; - } - base.WriteEndAttribute(); - } - } - -} diff --git a/PROMS/DataLoader/DataLoaderSettings.cs b/PROMS/DataLoader/DataLoaderSettings.cs deleted file mode 100644 index 1a0bd2f1..00000000 --- a/PROMS/DataLoader/DataLoaderSettings.cs +++ /dev/null @@ -1,710 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using System.ComponentModel; -using System.Drawing.Design; -using System.Reflection; -using System.Data; -using System.Collections; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; -using System.Data.SqlClient; - -namespace DataLoader -{ - [Serializable] - class DataLoaderSettings:ICloneable - { - private static List _MyDataPaths = Loader.DataPaths; - #region Clone - public object Clone() - { - MemoryStream memoryStream = new MemoryStream(); - BinaryFormatter binaryFormatter = new BinaryFormatter(); - - binaryFormatter.Serialize(memoryStream, this); - memoryStream.Seek(0, SeekOrigin.Begin); - - return binaryFormatter.Deserialize(memoryStream); - } - #endregion - #region 16-Bit Executable - private string _VEPromsPath; // Folder - [Category("16-Bit Executable")] - [DisplayName("VEProms Exe Folder")] - [Description("Path to the VE-PROMS Executable Folder")] - [EditorAttribute(typeof(UIFolderEditor), typeof(System.Drawing.Design.UITypeEditor))] - public string VEPromsPath - { - get { return _VEPromsPath; } - set { _VEPromsPath = value; } - } - private string _VESamFile; // File - [Category("16-Bit Executable")] - [DisplayName("VEProms Security File")] - [Description("VE-PROMS Securty File (VESam)")] - [UIFilenameEditor.FileDialogFilterAttribute("VEProms Security File|vesam.opt")] - [EditorAttribute(typeof(UIFilenameEditor), typeof(System.Drawing.Design.UITypeEditor))] - public string VESamFile - { - get { return _VESamFile; } - set { _VESamFile = value; } - } - #endregion - #region 16-Bit Data - private string _ProcedureSetPath; // Folder - [Category("16-Bit Data")] - [DisplayName("Procedure Folder")] - [Description("Path to the Data Set being converted")] - [EditorAttribute(typeof(UIFolderEditor), typeof(System.Drawing.Design.UITypeEditor))] - public string ProcedureSetPath - { - get { return _ProcedureSetPath; } - set { _ProcedureSetPath = value; } - } - private bool _OnlyThisSet; // Boolean - [Category("16-Bit Data")] - [DisplayName("Only Process this Procedure Set")] - [Description("Only Convert the Selected Procedure Set")] - public bool OnlyThisSet - { - get { return _OnlyThisSet; } - set { _OnlyThisSet = value; } - } - private bool _LoadApproved; // Boolean - [Category("16-Bit Data")] - [DisplayName("Load approved data for this Procedure Set")] - [Description("Load approved PDFs (if they exist) and consistency checks for the Selected Procedure Set")] - public bool LoadApproved - { - get { return _LoadApproved; } - set { _LoadApproved = value; } - } - private string _ProcessOnlyInLocation; // Folder - [Category("16-Bit Data")] - [DisplayName("Process Only In Location")] - [Description("Limit to folder or group of folders (otherwise all plants will be processed)")] - [EditorAttribute(typeof(UIFolderEditor), typeof(System.Drawing.Design.UITypeEditor))] - public string ProcessOnlyInLocation - { - get { return _ProcessOnlyInLocation; } - set { _ProcessOnlyInLocation = value; } - } - #endregion - #region Format Data - private string _FormatFolder; // Folder - [Category("Format Data")] - [DisplayName("Format Folder")] - [Description("Location of XML Format Files.")] - [EditorAttribute(typeof(UIFolderEditor), typeof(System.Drawing.Design.UITypeEditor))] - public string FormatFolder - { - get { return _FormatFolder; } - set { _FormatFolder = value; } - } - private string _GenMacFolder; // Folder - [Category("Format Data")] - [DisplayName("GenMac Folder")] - [Description("Location of XML (SVG) GenMac Macro Files.")] - [EditorAttribute(typeof(UIFolderEditor), typeof(System.Drawing.Design.UITypeEditor))] - public string GenMacFolder - { - get { return _GenMacFolder; } - set { _GenMacFolder = value; } - } - #endregion - #region Backup Data - private string _BackupFileName; // String - [Category("Backup Data")] - [DisplayName("Backup File Name")] - [Description("Name of Backup File in the batch files created in the Log Folder")] - public string BackupFileName - { - get { return _BackupFileName; } - set { _BackupFileName = value; } - } - private string _BackupFolder; // Folder - [Category("Backup Data")] - [DisplayName("Backup Folder")] - [Description("Location of Backup Files created during each phase of the conversion process.")] - [EditorAttribute(typeof(UIFolderEditor), typeof(System.Drawing.Design.UITypeEditor))] - public string BackupFolder - { - get { return _BackupFolder; } - set { _BackupFolder = value; } - } - private string _Phase1Suffix; // String - [Category("Backup Data")] - [DisplayName("Phase 1 Suffix")] - [Description("Suffix to use for backup before Transitions are Fixed")] - public string Phase1Suffix - { - get { return _Phase1Suffix; } - set { _Phase1Suffix = value; } - } - private string _Phase2Suffix; // String - [Category("Backup Data")] - [DisplayName("Phase 2 Suffix")] - [Description("Suffix to use for backup before Change Manager Script")] - public string Phase2Suffix - { - get { return _Phase2Suffix; } - set { _Phase2Suffix = value; } - } - private string _Phase3Suffix; // String - [Category("Backup Data")] - [DisplayName("Phase 3 Suffix")] - [Description("Suffix to use for backup before Approval Script")] - public string Phase3Suffix - { - get { return _Phase3Suffix; } - set { _Phase3Suffix = value; } - } - private string _Phase4Suffix; // String - [Category("Backup Data")] - [DisplayName("Phase 4 Suffix")] - [Description("Suffix to use for backup before Loading Approved Data")] - public string Phase4Suffix - { - get { return _Phase4Suffix; } - set { _Phase4Suffix = value; } - } - #endregion - #region Process Log - private string _LogFilePath; // Folder - [Category("Process Log")] - [DisplayName("Log File Folder")] - [Description("Location of the Log Files")] - [EditorAttribute(typeof(UIFolderEditor), typeof(System.Drawing.Design.UITypeEditor))] - public string LogFilePath - { - get { return _LogFilePath; } - set { _LogFilePath = value; } - } - #endregion - #region Sql Database - private string _ConnectionString; // String - [Category("Sql Database")] - [DisplayName("SQL Connection String")] - [Description("Connection string for SQL")] - public string ConnectionString - { - get { return _ConnectionString; } - set { _ConnectionString = value; } - } - private string _DBName; // String - [Category("Sql Database")] - [DisplayName("Database Name")] - [Description("Name of the Database that will be created to contain the converted data.")] - public string DBName - { - get { return _DBName; } - set { _DBName = value; } - } - private string _DBPath; // Folder - [Category("Sql Database")] - [DisplayName("Database File Folder")] - [Description("Location of the Database files.")] - [EditorAttribute(typeof(UIFolderEditor), typeof(System.Drawing.Design.UITypeEditor))] - public string DBPath - { - get { return _DBPath; } - set { _DBPath = value; } - } - private bool _PurgeExistingData; - [Category("Sql Database")] - [DisplayName("Purge Existing Data")] - [Description("Should the data in the SQL database be purged (emptied) before adding this data.")] - public bool PurgeExistingData - { - get { return _PurgeExistingData; } - set { _PurgeExistingData = value; } - } - #endregion - //#region PDFs - //private string _PDFFolder; // Folder - //[Category("PDFs")] - //[DisplayName("PDF Folder")] - //[Description("Location for PDFs when printing.")] - //[EditorAttribute(typeof(UIFolderEditor), typeof(System.Drawing.Design.UITypeEditor))] - //public string PDFFolder - //{ - // get { return _PDFFolder; } - // set { _PDFFolder = value; } - //} - //#endregion - #region Debugging - private ExecutionMode _ExecutionMode; - [TypeConverter(typeof(EnumDescConverter))] - [DisplayName("Execution Mode")] - [Category("Debugging")] - [Description("Mode for Conversion")] - public ExecutionMode ExecutionMode - { - get { return _ExecutionMode; } - set { _ExecutionMode = value; } - } - private bool _CheckRTF; - [DisplayName("Check RTF")] - [Category("Debugging")] - [Description("This makes the Fix Transtion Code work Differently. Not sure what it does.")] - public bool CheckRTF - { - get { return _CheckRTF; } - set { _CheckRTF = value; } - } - private int _Skip; // Skip specified procedures during load. - [DisplayName("Skip First n Procedures")] - [Category("Debugging")] - [Description("Skip the specified number of procedures during conversion to get to a problem quicker.")] - public int Skip - { - get { return _Skip; } - set { _Skip = value; } - } - private int _HowMany=0; // Skip specified procedures during load. - [DisplayName("How Many Procedures should be converted")] - [Category("Debugging")] - [Description("Only process part of the set.")] - public int HowMany - { - get { return _HowMany; } - set { _HowMany = value; } - } - #endregion - #region Accessory Pages - private AccPageConversion _ConvertTo; - [TypeConverter(typeof(EnumDescConverter))] - [DisplayName("Convert To")] - [Category("Accessory Pages")] - [Description("Format to which the Accessory Page converted")] - public AccPageConversion ConvertTo - { - get { return _ConvertTo; } - set { _ConvertTo = value; } - } - private bool _RedPDFs; // Boolean - [Category("Accessory Pages")] - [DisplayName("Print MSWord PDFs in Red")] - [Description("Creates Word PDFs in Debug Mode so that Debug printing will not require Word to print again.")] - public bool RedPDFs - { - get { return _RedPDFs; } - set { _RedPDFs = value; } - } - #endregion - #region RO Update - private ROUpdateMode _WhatROsToConvert = 0; - [Category("RO Update")] - [DisplayName("What ROs To Convert")] - [Description("Select which ROs should be converted.")] - public ROUpdateMode WhatROsToConvert - { - get { return _WhatROsToConvert; } - set { _WhatROsToConvert = value; } - } - private int _SelectedROFst = -1; - [Category("RO Update")] - [DisplayName("Selected ROFst")] - [Description("Enter which ROFstID is the basis for the original text (-1 = None).")] - public int SelectedROFst - { - get { return _SelectedROFst; } - set { _SelectedROFst = value; } - } - private bool _AnnotateWhenConvertingToText; - [Category("RO Update")] - [DisplayName("Annotate When Converting To Text")] - [Description("Should the step have annotation when the ro data has been converted to text.")] - public bool AnnotateWhenConvertingToText - { - get { return _AnnotateWhenConvertingToText; } - set { _AnnotateWhenConvertingToText = value; } - } - private bool _AnnotateWhenShowingMissingRO; - [Category("RO Update")] - [DisplayName("Annotate When Showing Missing RO")] - [Description("Should the step have annotation when the ro data is missing and is being displayed as a question mark.")] - public bool AnnotateWhenShowingMissingRO - { - get { return _AnnotateWhenShowingMissingRO; } - set { _AnnotateWhenShowingMissingRO = value; } - } - private bool _AnnotateWhenShowingDifferentRO; - [Category("RO Update")] - [DisplayName("Annotate When Showing Different RO")] - [Description("Should the step have annotation when the ro data is different.")] - public bool AnnotateWhenShowingDifferentRO - { - get { return _AnnotateWhenShowingDifferentRO; } - set { _AnnotateWhenShowingDifferentRO = value; } - } - #endregion - [Browsable(false)] - public string ValidityCheck - { - get - { - StringBuilder sb = new StringBuilder(); - string ErrorPrefix = "Settings are not valid\r\n"; - // VEPromsPath = has to be non-blank - if ((VEPromsPath ?? "") == "" || !Directory.Exists(VEPromsPath)) - { - sb.Append(ErrorPrefix + "VEProms Exe Folder must point to an existing folder\r\n"); - ErrorPrefix = ""; - } - // VESamFile = has to be non-blank - if ((VESamFile ?? "") == "" || !File.Exists(VESamFile)) - { - sb.Append(ErrorPrefix + "VEProms Security File must point to an existing file\r\n"); - ErrorPrefix = ""; - } - // ProcedureSetPath = If OnlyThisSet is checked, then has to be non-blank - if (OnlyThisSet) - { - if ((ProcedureSetPath ?? "") == "" || !Directory.Exists(ProcedureSetPath)) - { - sb.Append(ErrorPrefix + "Procedure Folder must point to an existing folder\r\n"); - ErrorPrefix = ""; - } - else - { - if (!InDataPaths(ProcedureSetPath)) - { - sb.Append(ErrorPrefix + string.Format("Procedure Folder not in DataPath from Config File '{0}' \r\n", DataLoaderSettings._MyDataPaths[0])); - ErrorPrefix = ""; - } - else if (!File.Exists(ProcedureSetPath + @"\set.dbf")) - { - sb.Append(ErrorPrefix + "Procedure Folder must point to an existing procedure data folder\r\n"); - ErrorPrefix = ""; - } - } - } - else - { - if ((ProcedureSetPath ?? "") == "" || !Directory.Exists(ProcedureSetPath)) - { - sb.Append(ErrorPrefix + "Procedure Folder must point to an existing folder\r\n"); - ErrorPrefix = ""; - } - else - { - if (!InDataPaths(ProcedureSetPath)) - { - sb.Append(ErrorPrefix + string.Format("Procedure Folder not in DataPath from Config File '{0}' \r\n", DataLoaderSettings._MyDataPaths[0])); - ErrorPrefix = ""; - } - } - } - //added by jcb 20121127 - //check is ProcedureSetPath contains ProcessOnlyInLocation - if (ProcedureSetPath != null && ProcedureSetPath.StartsWith(ProcessOnlyInLocation ?? "") == false) - { - sb.Append(ErrorPrefix + "Check Process Only In Location value is pointing to similar directory as Procedure Set Path\r\n"); - ErrorPrefix = ""; - } - //end added by jcb 20121127 - // BackupFileName = Has to be non-blank - if ((BackupFileName ?? "") == "") - { - sb.Append(ErrorPrefix + "Backup File Name must not be blank\r\n"); - ErrorPrefix = ""; - } - if ((Phase1Suffix ?? "") == "") - { - sb.Append(ErrorPrefix + "Phase 1 Suffix must not be blank\r\n"); - ErrorPrefix = ""; - } - if ((Phase2Suffix ?? "") == "") - { - sb.Append(ErrorPrefix + "Phase 2 Suffix must not be blank\r\n"); - ErrorPrefix = ""; - } - if ((Phase3Suffix ?? "") == "") - { - sb.Append(ErrorPrefix + "Phase 3 Suffix must not be blank\r\n"); - ErrorPrefix = ""; - } - // BackupFolder = Has to be non-blank - if (OnlyThisSet && (BackupFolder ?? "") == "" || !Directory.Exists(BackupFolder)) - { - sb.Append(ErrorPrefix + "Backup Folder must point to an existing folder\r\n"); - ErrorPrefix = ""; - } - // FormatFolder = Has to be non-blank - if (OnlyThisSet && (FormatFolder ?? "") == "" || !Directory.Exists(FormatFolder)) - { - sb.Append(ErrorPrefix + "Format Folder must point to an existing folder\r\n"); - ErrorPrefix = ""; - } - // GenMacFolder = Has to be non-blank - if (OnlyThisSet && (GenMacFolder ?? "") == "" || !Directory.Exists(GenMacFolder)) - { - sb.Append(ErrorPrefix + "GenMac Folder must point to an existing folder\r\n"); - ErrorPrefix = ""; - } - // LogFilePath = Has to be non-blank - if (OnlyThisSet && (LogFilePath ?? "") == "" || !Directory.Exists(LogFilePath)) - { - sb.Append(ErrorPrefix + "Log File Folder must point to an existing folder\r\n"); - ErrorPrefix = ""; - } - // ConnectionString = Has to be non-blank - if ((ConnectionString ?? "") == "") - { - sb.Append(ErrorPrefix + "SQL Connection String must be a valid connection string\r\n"); - ErrorPrefix = ""; - } - else - { - // Validate ConnectionString - string checkConnectionString = ValidateConnectionString("Master"); - if (checkConnectionString != "") - { - sb.Append(ErrorPrefix + "SQL Connection String must be a valid connection string\r\n"); - sb.Append(checkConnectionString); - ErrorPrefix = ""; - } - } - // DBName = Has to be non-blank - if ((DBName ?? "") == "") - { - sb.Append(ErrorPrefix + "SQL Database Name must be a valid database name\r\n"); - ErrorPrefix = ""; - } - // DBPath = if null check to see if DBName DB has Path, if it does then set DBPath - if ((DBPath ?? "") == "" || !Directory.Exists(DBPath)) - { - string filePath = GetDBFileName(); - if (filePath != null) - { - FileInfo fi = new FileInfo(filePath); - DBPath = fi.DirectoryName; - } - else - { - sb.Append(ErrorPrefix + "SQL Database Path must point to an existing folder\r\n"); - ErrorPrefix = ""; - } - } - // PDFFolder = if not set, then don't set PDFFolder in DocVersion.Config - //if (ExecutionMode == ExecutionMode.Debug && ((PDFFolder ?? "") == "" || !Directory.Exists(PDFFolder))) - //{ - // sb.Append(ErrorPrefix + "PDF Folder must point to an existing folder in debug mode\r\n"); - // ErrorPrefix = ""; - //} - // Skip = Any NUmber - // PurgeExistingData = N/A - // OnlyThisSet = N/A - // CheckRTF = N/A - // ConvertTo = N/A - // RedPDFs = N/A - return sb.ToString(); - } - } - private bool InDataPaths(string ProcedureSetPath) - { - foreach (string dp in _MyDataPaths) - if (ProcedureSetPath.ToUpper().StartsWith(dp.ToUpper())) return true; - return false; - } - private string ValidateConnectionString(string dbName) - { - if(!ConnectionString.Contains("{DBName}")) - return " Needs to have a {DBName} token for the Initial Catalog"; - string cnstr = ConnectionString.Replace("{DBName}", dbName); - try - { - SqlConnection cn = new SqlConnection(cnstr); - cn.Open(); - cn.Close(); - } - catch (Exception ex) - { - StringBuilder sb = new StringBuilder(); - while (ex != null) - { - sb.Append(string.Format(" {0}-{1}",ex.GetType().Name,ex.Message)); - ex = ex.InnerException; - } - return sb.ToString(); - } - return ""; - } - private string GetDBFileName() - { - string filename = null; - SqlConnection cn = new SqlConnection(ConnectionString.Replace("{DBName}","Master")); - cn.Open(); - string cmd = string.Format("Select FileName from sysdatabases where Name = '{0}'",DBName); - SqlDataAdapter da = new SqlDataAdapter(cmd,cn); - DataSet ds = new DataSet(); - da.Fill(ds); - if (ds.Tables.Count == 1 && ds.Tables[0].Rows.Count == 1) - filename = ds.Tables[0].Rows[0][0].ToString(); - cn.Close(); - return filename; - } - } - public enum AccPageConversion : int - { - [Description("Don't Convert")] DoNotConvert=0, - [Description("MS Word")] MSWord = 1, - [Description("Rich Text Format")] RichTextFormat = 2 - } - public enum ExecutionMode : int - { - [Description("Debug")] Debug = 0, - [Description("Production")] Production = 1, - } - public enum ROUpdateMode : int - { - [Description("None")] - None = 0, - [Description("Missing")] - Missing = 1, - [Description("All")] - All = 2, - } - - public class EnumDescConverter : System.ComponentModel.EnumConverter - { - protected System.Type myVal; - - /// - /// Gets Enum Value's Description Attribute - /// - /// The value you want the description attribute for - /// The description, if any, else it's .ToString() - public static string GetEnumDescription(Enum value) - { - //Console.WriteLine("{0}", value); - FieldInfo fi = value.GetType().GetField(value.ToString()); - DescriptionAttribute[] attributes = - (DescriptionAttribute[])fi.GetCustomAttributes( - typeof(DescriptionAttribute), false); - //Console.WriteLine("{0},{1},{2}", value.ToString(), attributes.Length, (attributes.Length > 0) ? attributes[0].Description : value.ToString()); - return (attributes.Length > 0) ? attributes[0].Description : value.ToString(); - } - - /// - /// Gets the description for certaing named value in an Enumeration - /// - /// The type of the Enumeration - /// The name of the Enumeration value - /// The description, if any, else the passed name - public static string GetEnumDescription(System.Type value, string name) - { - FieldInfo fi = value.GetField(name); - DescriptionAttribute[] attributes = - (DescriptionAttribute[])fi.GetCustomAttributes( - typeof(DescriptionAttribute), false); - return (attributes.Length > 0) ? attributes[0].Description : name; - } - - /// - /// Gets the value of an Enum, based on it's Description Attribute or named value - /// - /// The Enum type - /// The description or name of the element - /// The value, or the passed in description, if it was not found - public static object GetEnumValue(System.Type value, string description) - { - FieldInfo[] fis = value.GetFields(); - foreach (FieldInfo fi in fis) - { - DescriptionAttribute[] attributes = - (DescriptionAttribute[])fi.GetCustomAttributes( - typeof(DescriptionAttribute), false); - if (attributes.Length > 0) - { - if (attributes[0].Description == description) - { - return fi.GetValue(fi.Name); - } - } - if (fi.Name == description) - { - return fi.GetValue(fi.Name); - } - } - return description; - } - - public EnumDescConverter(System.Type type) - : base(type.GetType()) - { - myVal = type; - } - - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) - { - if (value is Enum && destinationType == typeof(string)) - { - return EnumDescConverter.GetEnumDescription((Enum)value); - } - if (value is string && destinationType == typeof(string)) - { - return EnumDescConverter.GetEnumDescription(myVal, (string)value); - } - return base.ConvertTo(context, culture, value, destinationType); - } - - public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) - { - if (value is string) - { - return EnumDescConverter.GetEnumValue(myVal, (string)value); - } - if (value is Enum) - { - return EnumDescConverter.GetEnumDescription((Enum)value); - } - return base.ConvertFrom(context, culture, value); - } - public override bool GetPropertiesSupported(ITypeDescriptorContext context) - { - return false; - } - - public override TypeConverter.StandardValuesCollection GetStandardValues(ITypeDescriptorContext context) - { - ArrayList values = new ArrayList(); - FieldInfo[] fis = myVal.GetFields(); - foreach (FieldInfo fi in fis) - { - DescriptionAttribute[] attributes = (DescriptionAttribute[])fi.GetCustomAttributes( - typeof(DescriptionAttribute), false); - //if (attributes.Length > 0) - if (fi.Name != "value__") - values.Add(fi.GetValue(fi.Name)); - } - return new TypeConverter.StandardValuesCollection(values); - } - public static string GetEnumKeyDescription(Enum value) - { - FieldInfo fi = value.GetType().GetField(value.ToString()); - DescriptionAttribute[] attributes = - (DescriptionAttribute[])fi.GetCustomAttributes( - typeof(DescriptionAttribute), false); - return (attributes.Length > 0) ? attributes[0].Description : value.ToString(); - } - - public static DataTable GetEnumAsDataTable(System.Type EnumType) - { - DataTable DTEnum = new DataTable(); - DTEnum.Columns.Add(new DataColumn("EnumID", typeof(Int32))); - DTEnum.Columns.Add(new DataColumn("Enum", typeof(string))); - DTEnum.Columns.Add(new DataColumn("Description", typeof(string))); - foreach (int i in Enum.GetValues(EnumType)) - { - System.Enum fooItem = (System.Enum)Enum.ToObject(EnumType, i); - DTEnum.Rows.Add(new object[] { i, fooItem.ToString(), GetEnumKeyDescription(fooItem) }); - } - return DTEnum; - } - } - -} diff --git a/PROMS/DataLoader/DocVersions.cs b/PROMS/DataLoader/DocVersions.cs deleted file mode 100644 index f3f86914..00000000 --- a/PROMS/DataLoader/DocVersions.cs +++ /dev/null @@ -1,178 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class Loader - { - public TimeSpan MigrateDocVersion(DocVersion docver) - { - return MigrateDocVersion(docver, true); - } - - private OutsideTransition _OutTran; - public int MultiUnitCount = 0; - public Dictionary Old2NewApple; - public Dictionary New2OldApple; - - public TimeSpan MigrateDocVersion(DocVersion docver, bool convertProcedures) - { - long lTime = DateTime.Now.Ticks; - string pth = docver.Title; - // if the Title is empty, return because this docversion has already been migrated. - bool appending = false; - if (frmMain.Automatic && !frmMain.PurgeExistingData) - { - pth = frmMain.ProcedureSetPath; - appending = true; - } - if (pth == null || pth == "" || pth == "Title") return TimeSpan.FromTicks(0); - MultiUnitCount = docver.DocVersionConfig.Unit_Count; - if (MultiUnitCount > 0) - { - Old2NewApple = new Dictionary(); - New2OldApple = new Dictionary(); - for (int i = 1; i <= MultiUnitCount; i++) - { - docver.DocVersionConfig.SelectedSlave = i; - int oldindex = int.Parse(docver.DocVersionConfig.Old_Index); - Old2NewApple.Add(oldindex, i); - New2OldApple.Add(i, oldindex); - } - } - if (!File.Exists(pth + @"\set.dbf") || !File.Exists(pth + @"\curset.dat")) return TimeSpan.FromTicks(0); - // Open connection - OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pth + ";Extended Properties=dBase III;Persist Security Info=False"); - if (convertProcedures) - { - // JSJ 02/10/2010 - Remove all the .INF files before proceeding to convert. - // The INF files contain a path to a corresponding NDX file - had data with bat NDX path - DeleteINFFiles(pth); - _OutTran = new OutsideTransition(cn); - frmMain.AddInfo("Before MigrateROFST{0}\r\n{1}", GC.GetTotalMemory(true), VEPROMS.CSLA.Library.CSLACache.UsageAll); - //if(!appending) - MigrateROFST(pth, docver); - GC.Collect(); - frmMain.AddInfo("After MigrateROFST{0}\r\n{1}", GC.GetTotalMemory(true), VEPROMS.CSLA.Library.CSLACache.UsageAll); - // Migrate library documents - //if(!appending) - MigrateLibDocs(cn, pth, appending); - - // if migrating bge, save the 'unit' number. This unit number is used in pagelist items and is - // based on the path/directory name of the procedure set. - if (true) // somehow check for BGE - { - SetDocVersionUnitConfig(pth, docver); - } - - - // Initialize Dictionaries - dicTrans_ItemDone = new Dictionary(); - dicTrans_ItemIds = new Dictionary(); - dicTrans_MigrationErrors = new Dictionary>(); - - // Create a 'dummy' content record. This will be used for any transitions 'to' - // that don't exist when dbf is processed. At end, use this to see if there - // are missing transitions. - TransDummyCont = Content.MakeContent(null, "DUMMY CONTENT FOR TRANSITION MIGRATION", null, null, null); - } - // Process Procedures - Item itm = null; - if (convertProcedures || docver.VersionType == (int)VEPROMS.CSLA.Library.VersionTypeEnum.WorkingDraft || docver.VersionType == (int)VEPROMS.CSLA.Library.VersionTypeEnum.Approved) - { - ResetApplesToOranges(); - itm = MigrateProcedures(cn, pth, docver, convertProcedures, docver.MyDocVersionInfo.ActiveFormat); - } - // Show any Missing Transtitons (i.e. Transitions which have not been processed) - lTime = DateTime.Now.Ticks - lTime; - if (convertProcedures) - { - ShowMissingTransitions(docver); - //frmMain.Status = string.Format("{0}\r\nConversion completed in {1} seconds.", pth, TimeSpan.FromTicks(lTime).TotalSeconds); - TimeSpan ts = TimeSpan.FromTicks(lTime); - frmMain.Status = string.Format("{0}\r\nConversion completion time: {1:D2}:{2:D2}:{3:D2}.{4} ({5} Total Seconds)", pth, ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds, ts.TotalSeconds); - log.InfoFormat("Completed Migration of {0}", pth); - - //MessageBox.Show("Completed Migration of " + pth); //jsj commented out to let it run through - if (rofstinfo != null) rofstinfo.GetROFSTLookup(DocVersionInfo.Get(docver.VersionID)).Close(); - dicTrans_ItemDone.Clear(); - dicTrans_ItemDone = null; - } - else - frmMain.Status = string.Format("{0}\r\nDone.", pth); - cn.Close(); - if (itm != null) - { - docver.MyItem = itm; - if (convertProcedures) docver.Title = ""; // clearing this tell us this docver (path) was converted? - if (!docver.IsSavable) ErrorRpt.ErrorReport(docver); - //if(frmMain.MySettings.ExecutionMode == ExecutionMode.Debug) - // docver.DocVersionConfig.Print_PDFLocation = frmMain.MySettings.PDFFolder; - docver.Save(); - } - return TimeSpan.FromTicks(lTime); - } - - private void SetDocVersionUnitConfig(string pth, DocVersion docver) - { - // the following 'rules' were taken from 16bit code, in pagelist.c, to define the unit number. - - string unitNum = "0"; - string testPath = pth.ToUpper(); - - // back up further if this is a tmpchg or approved directory. - int lastPart = pth.LastIndexOf(@"\"); - if (lastPart != -1) - { - testPath = testPath.Substring(testPath.LastIndexOf(@"\")); - if (testPath.Contains("TMPCHG") || testPath.Contains("APPROVED")) - testPath = testPath.Substring(testPath.LastIndexOf(@"\", lastPart)); - } - if (testPath.IndexOf("PROCS2") > -1 || testPath.IndexOf("2.PRC") > -1) - unitNum = "2"; - else if (testPath.IndexOf("PROCS") > -1 || testPath.IndexOf("1.PRC") > -1) - unitNum = "1"; - else if (testPath.IndexOf("3.PRC") > -1) - unitNum = "3"; - else if (testPath.IndexOf("4.PRC") > -1) - unitNum = "4"; - - docver.DocVersionConfig.Print_UnitNumberForPageList = unitNum; - docver.Save(); - } - private void DeleteINFFiles(string pth) - { - DirectoryInfo di = new DirectoryInfo(pth); - FileInfo [] myFiles = di.GetFiles("*.INF"); - foreach (FileInfo myFile in myFiles) - myFile.Delete(); - } - private VEPROMS.CSLA.Library.VersionTypeEnum DocVersionType(string s) - { - if (s.EndsWith("approved")) return VEPROMS.CSLA.Library.VersionTypeEnum.Approved; - if (s.EndsWith("chgsht")) return VEPROMS.CSLA.Library.VersionTypeEnum.Revision; - if (s.EndsWith("tmpchg")) return VEPROMS.CSLA.Library.VersionTypeEnum.Temporary; - return VEPROMS.CSLA.Library.VersionTypeEnum.WorkingDraft; - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/DocVersions.cs.bak b/PROMS/DataLoader/DocVersions.cs.bak deleted file mode 100644 index 996562a8..00000000 --- a/PROMS/DataLoader/DocVersions.cs.bak +++ /dev/null @@ -1,127 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class Loader - { - public TimeSpan MigrateDocVersion(DocVersion docver) - { - return MigrateDocVersion(docver, true); - } - - private OutsideTransition _OutTran; - public int MultiUnitCount = 0; - public Dictionary Old2NewApple; - public Dictionary New2OldApple; - - public TimeSpan MigrateDocVersion(DocVersion docver, bool convertProcedures) - { - long lTime = DateTime.Now.Ticks; - string pth = docver.Title; - MultiUnitCount = docver.DocVersionConfig.Unit_Count; - if (MultiUnitCount > 0) - { - Old2NewApple = new Dictionary(); - New2OldApple = new Dictionary(); - for (int i = 1; i <= MultiUnitCount; i++) - { - docver.DocVersionConfig.SelectedSlave = i; - int oldindex = int.Parse(docver.DocVersionConfig.Old_Index); - Old2NewApple.Add(oldindex, i); - New2OldApple.Add(i, oldindex); - } - } - if (!File.Exists(pth + @"\set.dbf") || !File.Exists(pth + @"\curset.dat")) return new TimeSpan(); // Open connection - OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pth + ";Extended Properties=dBase III;Persist Security Info=False"); - if (convertProcedures) - { - // JSJ 02/10/2010 - Remove all the .INF files before proceeding to convert. - // The INF files contain a path to a corresponding NDX file - had data with bat NDX path - DeleteINFFiles(pth); - _OutTran = new OutsideTransition(cn); - frmMain.AddInfo("Before MigrateROFST{0}\r\n{1}", GC.GetTotalMemory(true), VEPROMS.CSLA.Library.CSLACache.UsageAll); - MigrateROFST(pth, docver); - GC.Collect(); - frmMain.AddInfo("After MigrateROFST{0}\r\n{1}", GC.GetTotalMemory(true), VEPROMS.CSLA.Library.CSLACache.UsageAll); - // Migrate library documents - MigrateLibDocs(cn, pth); - // Initialize Dictionaries - dicTrans_ItemDone = new Dictionary(); - dicTrans_ItemIds = new Dictionary(); - dicTrans_MigrationErrors = new Dictionary>(); - - // Create a 'dummy' content record. This will be used for any transitions 'to' - // that don't exist when dbf is processed. At end, use this to see if there - // are missing transitions. - TransDummyCont = Content.MakeContent(null, "DUMMY CONTENT FOR TRANSITION MIGRATION", null, null, null); - } - // Process Procedures - Item itm = null; - if (convertProcedures || docver.VersionType == (int)VEPROMS.CSLA.Library.VersionTypeEnum.WorkingDraft || docver.VersionType == (int)VEPROMS.CSLA.Library.VersionTypeEnum.Approved) - itm = MigrateProcedures(cn, pth, docver, convertProcedures, docver.MyDocVersionInfo.ActiveFormat); - // Show any Missing Transtitons (i.e. Transitions which have not been processed) - lTime = DateTime.Now.Ticks - lTime; - if (convertProcedures) - { - ShowMissingTransitions(docver); - //frmMain.Status = string.Format("{0}\r\nConversion completed in {1} seconds.", pth, TimeSpan.FromTicks(lTime).TotalSeconds); - TimeSpan ts = TimeSpan.FromTicks(lTime); - frmMain.Status = string.Format("{0}\r\nConversion completion time: {1:D2}:{2:D2}:{3:D2}.{4} ({5} Total Seconds)", pth, ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds, ts.TotalSeconds); - log.InfoFormat("Completed Migration of {0}", pth); - - //MessageBox.Show("Completed Migration of " + pth); //jsj commented out to let it run through - if (rofstinfo != null) rofstinfo.ROFSTLookup.Close(); - dicTrans_ItemDone.Clear(); - dicTrans_ItemDone = null; - } - else - frmMain.Status = string.Format("{0}\r\nDone.", pth); - cn.Close(); - if (itm != null) - { - docver.MyItem = itm; - if (convertProcedures) docver.Title = ""; // clearing this tell us this docver (path) was converted? - if (!docver.IsSavable) ErrorRpt.ErrorReport(docver); - if(frmMain.MySettings.ExecutionMode == ExecutionMode.Debug) - docver.DocVersionConfig.Print_PDFLocation = frmMain.MySettings.PDFFolder; - docver.Save(); - } - return TimeSpan.FromTicks(lTime); - } - private void DeleteINFFiles(string pth) - { - DirectoryInfo di = new DirectoryInfo(pth); - FileInfo [] myFiles = di.GetFiles("*.INF"); - foreach (FileInfo myFile in myFiles) - myFile.Delete(); - } - private VEPROMS.CSLA.Library.VersionTypeEnum DocVersionType(string s) - { - if (s.EndsWith("approved")) return VEPROMS.CSLA.Library.VersionTypeEnum.Approved; - if (s.EndsWith("chgsht")) return VEPROMS.CSLA.Library.VersionTypeEnum.Revision; - if (s.EndsWith("tmpchg")) return VEPROMS.CSLA.Library.VersionTypeEnum.Temporary; - return VEPROMS.CSLA.Library.VersionTypeEnum.WorkingDraft; - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/Documents.cs b/PROMS/DataLoader/Documents.cs deleted file mode 100644 index 0e4b366e..00000000 --- a/PROMS/DataLoader/Documents.cs +++ /dev/null @@ -1,368 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using System.Text.RegularExpressions; -using Volian.MSWord; -using VEPROMS.CSLA.Library; -using System.Threading; - -namespace DataLoader -{ - public partial class Loader - { - private void SaveSectionDocument(string fname, string stpseq, string stype, ref int cid, string sectName, bool isLandscape) - { - int docid = SaveWordDoc(fname, stype, sectName, isLandscape); - switch (docid) - { - case 0: - // could add the following back in - but many of these may be put out in the log, and - // don't supply any pertinent info. - //log.InfoFormat("Timing problem for save of word document, will retry. oldstepsequence = {0}", stpseq); - break; - case -1: - log.ErrorFormat("Could not complete save of word document, oldstepsequence = {0}", stpseq); - break; - default: - cid = docid; - break; - } - } - - private int SaveWordDoc(string fname, string title, string stype, bool isLandscape, ConfigInfo ci, string sectName, DateTime dtsutc) - { - int docid = 0; - if (System.IO.File.Exists(fname)) - { - FileInfo myFile = new FileInfo(fname); - GC.Collect(); - frmMain.AddInfo("Processing {0} {1}", fname, GC.GetTotalMemory(true)); - //string tmpName = @"C:\Temp\DataLoader\" + myFile.Name.Replace(".", "_") + ".RTF"; - string tmpName = Path.GetTempFileName(); - string temppath = Path.GetTempFileName(); - if (frmMain.MySettings.ExecutionMode == ExecutionMode.Production || - frmMain.MySettings.ConvertTo == AccPageConversion.MSWord) - { - FileInfo tmpFile = new FileInfo(tmpName); - if (tmpFile.Exists) - tmpFile.Delete(); - myFile.CopyTo(tmpName); - LoadAndSaveRichTextBox41(tmpName); - WordDocument wd = new WordDocument(tmpName, stype, temppath, isLandscape); - Thread myThread = new Thread(wd.GetAsciiFromWord); - myThread.Start(); - myThread.Join(30000); // Wait 30 seconds to time-out - if (myThread.ThreadState == System.Threading.ThreadState.Running) - { - WordDoc.KillWordApps(); - Thread.Sleep(1000);// Give the process a second to shutdown - frmMain.AddError("Could not open file '{0}'", fname); - docid = SaveDoc(fname, title, ci, "", dtsutc); // Save the original file - } - else - { - if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Printing", "Length", string.Format("{0:0.0000}", wd.DocLen)); - docid = SaveDoc(temppath, title, ci, wd.ASCII, dtsutc); - DeleteFile(temppath); - DeleteFile(tmpName); - } - } - else - { - if (frmMain.MySettings.ConvertTo == AccPageConversion.RichTextFormat) - docid = SaveDoc(fname, title, ci, "", dtsutc); // Need to get Ascii Text from RTF - } - } - else - frmMain.AddError("Missing rtf file: {0}", fname); - return docid; - } - private RichTextBox _MyRichTextBox = null; - public RichTextBox MyRichTextBox - { - get - { - if (_MyRichTextBox == null) - _MyRichTextBox = new RichTextBox(); - return _MyRichTextBox; - } - } - private void LoadAndSaveRichTextBox(string tmpName) - { - string rtf = LoadFileRaw(tmpName); - // Parse for margins because the RTB will remove them - rtf = rtf.Replace("\x95", @"\bullet "); - Match match = Regex.Match(rtf, @"((\\marg[^\\]+)+)", RegexOptions.Singleline); - //rtf = rtf.Replace("\\sectd", ""); - //rtf = rtf.Replace("\\sbkpage", ""); - //rtf = rtf.Replace("\\sect", "\\page"); - rtf = Regex.Replace(rtf, @"\\ri[0-9]*(?=[ \\{])", ""); - rtf = Regex.Replace(rtf, @"\\sectd(?=[ \\{])", ""); - rtf = Regex.Replace(rtf, @"\\sbkpage(?=[ \\{])", ""); - rtf = Regex.Replace(rtf, @"\\sect(?=[ \\{])", @"\page"); - rtf = Regex.Replace(rtf, @"\\par(?=[ \\{])", @" <>\par"); - MyRichTextBox.Rtf = rtf; // Allow the RichTextBox to parse the RTF - rtf = MyRichTextBox.Rtf; // Get the RTF back from the RichTextBox - // Add the margins to the RTB output - rtf = Regex.Replace(rtf, @"( |\r\n)<>\\par(?=[\r \\{])", @"\par"); - rtf = Regex.Replace(rtf, @" <>\\f. \\", @"\par\"); - rtf = Regex.Replace(rtf, @" <>", @"\par"); - rtf = Regex.Replace(rtf, @"\\ansi(?=[ \\{])", @"\ansi" + match.Value); - //rtf = rtf.Replace(@"\ansi\", @"\ansi\" + match.Value); - // Save the modified rtf to the temporary file - SaveFile(rtf, tmpName); - } - private RichTextBox41 _MyRichTextBox41 = null; - public RichTextBox41 MyRichTextBox41 - { - get - { - if (_MyRichTextBox41 == null) - _MyRichTextBox41 = new RichTextBox41(); - return _MyRichTextBox41; - } - } - //private void LoadAndSaveRichTextBox41(string tmpName) - //{ - // string rtf = LoadFileRaw(tmpName); - // // Parse for margins because the RTB will remove them - // rtf = rtf.Replace("\x95", @"\bullet "); - // Match match = Regex.Match(rtf, @"((\\marg[^\\]+)+)", RegexOptions.Singleline); - // rtf = Regex.Replace(rtf, @"(? 0) - Application.DoEvents(); - } - else - { - WordDoc.KillWordApps(); - Application.DoEvents(); - while (WordDoc.WordProcesses.Length > 0) - Application.DoEvents(); - } - } - catch (Exception ex) - { - Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); - } - } - private static void DeleteFile(string fName) - { - if (File.Exists(fName)) - File.Delete(fName); - } - private string LoadFileRaw(string fName) - { - try - { - FileInfo file = new FileInfo(fName); - byte[] myBytes = new byte[file.Length]; - using (FileStream fs = file.OpenRead()) - { - fs.Read(myBytes, 0, (int)file.Length); - fs.Close(); - } - StringBuilder sb = new StringBuilder(); - foreach (byte byt in myBytes) - { - int iByte = (int)byt; - sb.Append((char)byt); - } - return sb.ToString(); - } - catch (Exception ex) - { - Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); - Application.DoEvents(); - return LoadFileRaw(fName); - } - } - private void SaveFile(string str, string fName) - { - FileInfo file = new FileInfo(fName); - using (StreamWriter sw = file.CreateText()) - { - sw.Write(str); - sw.Close(); - } - } - private int SaveWordDoc(string temppath, string stype, string sectName, bool isLandscape) - { - ConfigInfo ci = new ConfigInfo(null); - ci.AddItem("Edit", "Initialized", "true"); - FileInfo myFile = new FileInfo(temppath); - ci.AddItem("History", "OriginalFileName", myFile.Name); - return SaveWordDoc(temppath, String.Empty, stype, isLandscape, ci, sectName, myFile.LastWriteTimeUtc); - } - private int SaveTheDoc(string temppath, string title, ConfigInfo ci, string ascii, DateTime dtsutc) - { - try - { - FileStream fs = File.Open(temppath, FileMode.Open, FileAccess.Read, FileShare.None); - long len = fs.Length + 1; - byte[] ByteArray = new byte[len]; - int nBytesRead = fs.Read(ByteArray, 0, (int)len); - fs.Close(); - string t1 = (title == null || title == "") ? null : title; - using (Document doc = Document.MakeDocument(t1, ByteArray, null, ci == null ? null : ci.ToString(), dtsutc, "Migration", ".Doc")) - { - FileInfo tmpFile = new FileInfo(temppath); - string docfile = temppath.Substring(0, temppath.LastIndexOf(".")) + @".doc"; - if (File.Exists(docfile)) File.Delete(docfile); - FileInfo doctmpFile = tmpFile.CopyTo(docfile); - doc.DocAscii = ascii; - doc.Save(); - File.Delete(docfile); - return doc.DocID; - } - } - // for an io exception, keep trying - catch (IOException exio) - { - Console.WriteLine("IO: {0} - {1}", exio.GetType().Name, exio.Message); - frmMain.AddError(exio, "SaveTheDoc('{0}','{1}')", temppath, title); - Wait(2); - return 0; - } - catch (Exception ex) - { - log.Error("Save Word Doc"); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - frmMain.AddError(ex, "SaveTheDoc('{0}','{1}')", temppath, title); - return -1; - } - - } - private int SaveDoc(string temppath, string title, ConfigInfo ci, string ascii, DateTime dtsutc) - { - int done = 0; - int ntry = 0; - while (done == 0 && ntry < 4) - { - ntry++; - done = SaveTheDoc(temppath, title, ci, ascii, dtsutc); - } - return done; - } - } -} diff --git a/PROMS/DataLoader/ErrorReport.cs b/PROMS/DataLoader/ErrorReport.cs deleted file mode 100644 index 38726b04..00000000 --- a/PROMS/DataLoader/ErrorReport.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Csla.Validation; - -namespace DataLoader -{ - public static class ErrorRpt - { - public static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - public static void ErrorReport(IVEHasBrokenRules mybr) - { - string smess = mybr.GetType().Name; - IVEHasBrokenRules hbr = mybr.HasBrokenRules; - if (hbr == null) smess += "\n Unknown Error"; - else - { - smess += "\n In object" + hbr.GetType().Name; - foreach (BrokenRule br in hbr.BrokenRules) - { - smess += "\n" + br.Property + " - " + br.Description; - } - } - //MessageBox.Show(smess); - _MyLog.Error(smess); - } - } -} diff --git a/PROMS/DataLoader/FixItem.cs b/PROMS/DataLoader/FixItem.cs deleted file mode 100644 index 0888b2da..00000000 --- a/PROMS/DataLoader/FixItem.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; - -namespace DataLoader -{ - public class FixItems : List - { - public FixItems(FileInfo myFile):base() - { - if (!myFile.Exists) - return; - FileStream fs = myFile.OpenRead(); - int len = (int) myFile.Length; - byte [] buffer = new byte[len]; - fs.Read(buffer, 0, len); - int offset = 0; - while(offset < len) - { - int lFixItem = (int)(buffer[offset]); - Add(new FixItem(buffer,offset)); - offset += lFixItem + 1; - } - } - } - public class FixItem - { - public FixItem(byte[] buffer, int offset) - { - int lFixItem = (int)(buffer[offset]); - _Section = (char)(buffer[offset + 1]); - _Step = (int)(buffer[offset + 2]); - string str = System.Text.Encoding.GetEncoding(1251).GetString(buffer, offset + 3, lFixItem - 2); - if (str.Contains(" ")) - { - int index = str.IndexOf(" "); - _Sequence = str.Substring(0, index); - _Rev = str.Substring(index + 1); - } - else - _Sequence = str; - } - private char _Section; - public char Section - { - get { return _Section; } - set { _Section = value; } - } - private int _Step; - public int Step - { - get { return _Step; } - set { _Step = value; } - } - private string _Sequence; - public string Sequence - { - get { return _Sequence; } - set { _Sequence = value; } - } - private string _Rev; - public string Rev - { - get { return _Rev; } - set { _Rev = value; } - } - private string _RevDate; - public string RevDate - { - get { return _RevDate; } - set { _RevDate = value; } - } - private string _ReviewDate; - public string ReviewDate - { - get { return _ReviewDate; } - set { _ReviewDate = value; } - } - } -} diff --git a/PROMS/DataLoader/FolderTreeNode.cs b/PROMS/DataLoader/FolderTreeNode.cs deleted file mode 100644 index 92775a14..00000000 --- a/PROMS/DataLoader/FolderTreeNode.cs +++ /dev/null @@ -1,110 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Collections.Generic; -using System.Text; -using VEPROMS.CSLA.Library; -using Csla; -using System.Windows.Forms; - -namespace DataLoader -{ - public class FolderTreeNode : TreeNode - { - FolderTreeNode(string s) : base(s) - { - this.Name="ID:" + s; - } - FolderTreeNode(FolderInfo folderinfo) - : base(folderinfo.Name) - { - _folderinfo = folderinfo; - this.Name = "ID:" + folderinfo.FolderID.ToString(); - } - private FolderInfo _folderinfo; - public FolderInfo FolderInfo - { - get { return _folderinfo; } - set - { - _folderinfo = value; - } - } - private Dictionary _findTree = null; - private Dictionary FindTree - { - get { return _findTree; } - set { _findTree = value; } - } - public FolderTreeNode FindTreeNode(int folderID) - { - if (_findTree != null) return _findTree[folderID]; - return null; - } - public static FolderTreeNode BuildTreeList() - { - FolderTreeNode root = null; - FolderInfoList fil = FolderInfoList.Get(); - Dictionary dicMissing = new Dictionary(); - Dictionary dicExists = new Dictionary(); - foreach (FolderInfo fi in fil) - { - FolderTreeNode ftp = null; - if (dicExists.ContainsKey(fi.ParentID)) - { - ftp = dicExists[fi.ParentID]; - // dicNeedToLoad.Remove(ftp); - } - else - { - if (fi.ParentID != 0) - { - ftp = new FolderTreeNode(fi.ParentID.ToString()); - dicMissing.Add(fi.ParentID, ftp); - dicExists.Add(fi.ParentID, ftp); - if (fi.FolderDocVersionCount > 0) - { - TreeNode tn = new TreeNode("dummy"); - tn.Tag = "dummy"; - ftp.Nodes.Add(tn); - } - } - } - FolderTreeNode ft = null; - if (dicMissing.ContainsKey(fi.FolderID)) - { - ft = dicMissing[fi.FolderID]; - ft.FolderInfo = fi; - dicMissing.Remove(fi.FolderID); - } - else - { - ft = new FolderTreeNode(fi); - if (fi.FolderDocVersionCount > 0) - { - TreeNode tn = new TreeNode("dummy"); - tn.Tag = "dummy"; - ft.Nodes.Add(tn); - } - dicExists.Add(fi.FolderID, ft); - //dicNeedToLoad.Add(ft); - } - ft.Tag = fi; - if (fi.ParentID == 0) - root = ft; - else - ftp.Nodes.Add(ft); - } - root.FindTree = dicExists; - return root; - } - } -} - diff --git a/PROMS/DataLoader/Formats.cs b/PROMS/DataLoader/Formats.cs deleted file mode 100644 index 1a0c13bf..00000000 --- a/PROMS/DataLoader/Formats.cs +++ /dev/null @@ -1,250 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.Xml.XPath; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class Loader - { - //public string _FmtAllPath; - //public string _GenmacAllPath; - //private FormatInfoList _AllFormats; - - //public FormatInfoList AllFormats - //{ - // get - // { - // if (_AllFormats == null) - // _AllFormats = FormatInfoList.Get(); - // return _AllFormats; - // } - //} - //private Dictionary _LookupFormats; - //public Dictionary LookupFormats - //{ - // get - // { - // if (_LookupFormats == null) - // { - // _LookupFormats = new Dictionary(); - // foreach (FormatInfo myFormat in AllFormats) - // { - // _LookupFormats.Add(myFormat.Name, myFormat.FormatID); - // } - // } - // return _LookupFormats; - // } - //} - //private Format AddFormatToDB(Format parent, string format, bool issub, DateTime Dts, string Userid) - //{ - // string fmtdata = null; - // string genmacdata = null; - // XmlDocument xd = null; - - // //string path = "c:\\development\\fmtall\\" + format + "all.xml"; - // string path = _FmtAllPath + "\\" + format + "all.xml"; - // if (File.Exists(path)) - // { - // try - // { - // StreamReader srf = new StreamReader(path); - // xd = new XmlDocument(); - // xd.Load(srf); - // //xd.Load(path); - // fmtdata = xd.OuterXml; - // } - // catch (Exception ex) - // { - // frmMain.AddError(ex, "AddFormatToDB('{0}','{1}')", parent.Name, path); - // return null; - // } - // } - - // // Do we need genmac - only if non-subformat - // if (!issub) - // { - // //path = "c:\\development\\genmacall\\" + format + ".svg"; - // path = _GenmacAllPath + "\\" + format + ".svg"; - // if (File.Exists(path)) - // { - // try - // { - // StreamReader sr = new StreamReader(path); - // XmlDocument xdg = new XmlDocument(); - // xdg.Load(sr); - // //xdg.Load(path); - // genmacdata = xdg.OuterXml; - // } - // catch (Exception ex) - // { - // frmMain.AddError(ex, "AddFormatToDB('{0}','{1}')", parent.Name, path); - // return null; - // } - // } - // } - // // Get the name & then create the record. - // if (Userid == null || Userid == "") Userid = "Migration"; - - // string nmattr = "Default"; - - // // use xpath to get name. - // if (parent != null) - // { - // XmlNode nmnode = xd.SelectSingleNode("//FormatData"); - // if (nmnode is XmlElement) - // { - // XmlElement xm = (XmlElement)nmnode; - // nmattr = xm.GetAttribute("Name"); - // } - // } - // // use the format name if base or non sub. If it's a sub, remove the "_". - // string fname = issub ? format.Replace("_", "") : format; - // Format rec = null; - // try - // { - // if (!LookupFormats.ContainsKey(fname)) - // { - // rec = Format.MakeFormat(parent, fname, nmattr, fmtdata, genmacdata, Dts, Userid); - // } - // else - // { - // rec = Format.Get(LookupFormats[fname]); - // rec.Data = fmtdata; - // rec.GenMac = genmacdata; - // rec = rec.Save(); - // } - // } - // catch (Exception ex) - // { - // frmMain.AddError(ex, "AddFormatToDB-make format('{0}','{1}')", parent.Name, path); - // } - // return rec; - //} - //public void LoadAllFormats() - //{ - // Format basefmt = null; - // Format parent = null; - - - // // Load base format. - // basefmt = AddFormatToDB(null, "base", false, DateTime.Now, "Migration"); - // if (basefmt == null) return; - // // now loop through all files... If there is an _ in the name, it's a subformat - // // (for example, AEP_00.xml) skip it in main loop, it's handled for each format. - // DirectoryInfo di = new DirectoryInfo(_FmtAllPath); //(@"c:\development\fmtall"); - // FileInfo[] fis = di.GetFiles("*.xml"); - - // foreach (FileInfo fi in fis) - // { - // //if (fi.Name.ToUpper() == "WCN2ALL.XML"|| fi.Name.ToUpper() == "OHLPALL.XML") - // //{ - // bool issub = (fi.Name.IndexOf("_") > 0) ? true : false; - // if (!issub && fi.Name.ToLower() != "baseall.xml") - // { - // string fmtname = fi.Name.Substring(0, fi.Name.Length - 7); - // // remove the all.xml part of the filename. - // try - // { - // parent = AddFormatToDB(basefmt, fmtname, issub, DateTime.Now, "Migration"); - // if (parent != null) - // { - // // now see if there are any subformats associated with this, if so - // // add them here... - // DirectoryInfo sdi = new DirectoryInfo(_FmtAllPath); //("c:\\development\\fmtall"); - // FileInfo[] sfis = di.GetFiles(fmtname + "_*.xml"); - // foreach (FileInfo sfi in sfis) - // { - // string nm = sfi.Name.Substring(0, sfi.Name.Length - 7); - // //Console.WriteLine("Processing {0}", sfi.Name); - // frmMain.Status = string.Format("Processing Format {0}", sfi.Name); - // try - // { - // AddFormatToDB(parent, nm, true, DateTime.Now, "Migration"); - // } - // catch (Exception ex) - // { - // frmMain.AddError(ex, "LoadAllFormats() '{0}'", sfi.Name); - // //Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); - // } - // } - // } - // } - // catch (Exception ex) - // { - // frmMain.AddError(ex, "LoadAllFormats() '{0}'", fi.Name); - // //Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); - // } - // } - // //} - // } - //} - public FormatInfo GetFormat(string format) - { - Format parent = null; - Format rec = null; - - // get base - Format baseparent = Format.Get(1); - - // if there is no format - what should be done? maybe nothing. - if (format == null || format == "") return null; - - try - { - if (format.IndexOf(' ') > -1) // will have spaces if it's a user format - { - string part1 = format.Substring(0, format.IndexOf(' ')); - string part2 = null; - try - { - part2 = format.Substring(format.LastIndexOf(' ') + 1, 2); - } - catch - { - } - format = part1 + part2; - - // get the parent format's id (for example, AEP for AEP00). - parent = Format.GetByParentID_Name(baseparent.FormatID, part1); - } - else - parent = baseparent; - - // see if the format has been added, if not go get it. - rec = Format.GetByParentID_Name(parent.FormatID, format); - // JSJ - 02/04/10 this fixes cases where a subformat is no longer available, - // default to the parent format - if (rec == null) - rec = parent; - } - catch (Exception ex) - { - log.ErrorFormat("Error getting xml version of format {0}", ex.Message); - frmMain.AddError(ex, "GetFormat('{0}')", format); - } - FormatInfo recInfo = FormatInfo.Get(rec.FormatID); - return recInfo; - } - - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/Formats.cs.org b/PROMS/DataLoader/Formats.cs.org deleted file mode 100644 index 552d14e8..00000000 --- a/PROMS/DataLoader/Formats.cs.org +++ /dev/null @@ -1,199 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.Xml.XPath; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class Loader - { - - private Format AddFormatToDB(Format parent, string format, bool issub, DateTime Dts, string Userid) - { - string fmtdata = null; - string genmacdata = null; - XmlDocument xd = null; - - string path = "c:\\development\\fmtall\\" + format + "all.xml"; - if (File.Exists(path)) - { - try - { - StreamReader srf = new StreamReader(path); - xd = new XmlDocument(); - xd.Load(srf); - //xd.Load(path); - fmtdata = xd.OuterXml; - } - catch(Exception ex) - { - frmMain.AddError(ex, "AddFormatToDB('{0}','{1}')", parent.Name, path); - return null; - } - } - - // Do we need genmac - only if non-subformat - if (!issub) - { - path = "c:\\development\\genmacall\\" + format + ".svg"; - if (File.Exists(path)) - { - try - { - StreamReader sr = new StreamReader(path); - XmlDocument xdg = new XmlDocument(); - xdg.Load(sr); - //xdg.Load(path); - genmacdata = xdg.OuterXml; - } - catch (Exception ex) - { - frmMain.AddError(ex, "AddFormatToDB('{0}','{1}')", parent.Name, path); - return null; - } - } - } - // Get the name & then create the record. - if (Userid == null || Userid == "") Userid = "Migration"; - - string nmattr = "Default"; - - // use xpath to get name. - if (parent != null) - { - XmlNode nmnode = xd.SelectSingleNode("//FormatData"); - if (nmnode is XmlElement) - { - XmlElement xm = (XmlElement)nmnode; - nmattr = xm.GetAttribute("Name"); - } - } - // use the format name if base or non sub. If it's a sub, remove the "_". - string fname = issub ? format.Replace("_", "") : format; - Format rec = null; - try - { - rec = Format.MakeFormat(parent, fname, nmattr, fmtdata, genmacdata, Dts, Userid); - } - catch (Exception ex) - { - frmMain.AddError(ex, "AddFormatToDB-make format('{0}','{1}')", parent.Name, path); - } - return rec; - } - public void LoadAllFormats() - { - Format basefmt = null; - Format parent = null; - - // Load base format. - basefmt = AddFormatToDB(null, "base", false, DateTime.Now, "Migration"); - if (basefmt == null) return; - // now loop through all files... If there is an _ in the name, it's a subformat - // (for example, AEP_00.xml) skip it in main loop, it's handled for each format. - DirectoryInfo di = new DirectoryInfo(@"c:\development\fmtall"); - FileInfo[] fis = di.GetFiles("*.xml"); - - foreach (FileInfo fi in fis) - { - bool issub = (fi.Name.IndexOf("_") > 0) ? true : false; - if (!issub && fi.Name.ToLower() != "baseall.xml") - { - string fmtname = fi.Name.Substring(0, fi.Name.Length - 7); - // remove the all.xml part of the filename. - try - { - parent = AddFormatToDB(basefmt, fmtname, issub, DateTime.Now, "Migration"); - if (parent != null) - { - // now see if there are any subformats associated with this, if so - // add them here... - DirectoryInfo sdi = new DirectoryInfo("c:\\development\\fmtall"); - FileInfo[] sfis = di.GetFiles(fmtname + "_*.xml"); - foreach (FileInfo sfi in sfis) - { - string nm = sfi.Name.Substring(0, sfi.Name.Length - 7); - //Console.WriteLine("Processing {0}", sfi.Name); - frmMain.Status = string.Format("Processing Format {0}", sfi.Name); - try - { - AddFormatToDB(parent, nm, true, DateTime.Now, "Migration"); - } - catch (Exception ex) - { - frmMain.AddError(ex, "LoadAllFormats() '{0}'", sfi.Name); - //Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); - } - } - } - } - catch (Exception ex) - { - frmMain.AddError(ex, "LoadAllFormats() '{0}'", fi.Name); - //Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); - } - } - } - } - public FormatInfo GetFormat(string format) - { - Format parent = null; - Format rec = null; - - // get base - Format baseparent = Format.Get(1); - - // if there is no format - what should be done? maybe nothing. - if (format == null || format == "") return null; - - try - { - if (format.IndexOf(' ') > -1) // will have spaces if it's a user format - { - string part1 = format.Substring(0, format.IndexOf(' ')); - string part2 = format.Substring(format.LastIndexOf(' ') + 1, 2); - format = part1 + part2; - - // get the parent format's id (for example, AEP for AEP00). - parent = Format.GetByParentID_Name(baseparent.FormatID, part1); - } - else - parent = baseparent; - - // see if the format has been added, if not go get it. - rec = Format.GetByParentID_Name(parent.FormatID, format); - // JSJ - 02/04/10 this fixes cases where a subformat is no longer available, - // default to the parent format - if (rec == null) - rec = parent; - } - catch (Exception ex) - { - log.ErrorFormat("Error getting xml version of format {0}", ex.Message); - frmMain.AddError(ex, "GetFormat('{0}')", format); - } - FormatInfo recInfo = FormatInfo.Get(rec.FormatID); - return recInfo; - } - - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/GroupProp.Designer.cs b/PROMS/DataLoader/GroupProp.Designer.cs deleted file mode 100644 index 87548d7f..00000000 --- a/PROMS/DataLoader/GroupProp.Designer.cs +++ /dev/null @@ -1,110 +0,0 @@ -namespace DataLoader -{ - partial class GroupProp - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.lbGroups = new System.Windows.Forms.ListBox(); - this.pg = new System.Windows.Forms.PropertyGrid(); - this.btnSave = new System.Windows.Forms.Button(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.SuspendLayout(); - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 0); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.lbGroups); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.pg); - this.splitContainer1.Panel2.Controls.Add(this.btnSave); - this.splitContainer1.Size = new System.Drawing.Size(629, 290); - this.splitContainer1.SplitterDistance = 209; - this.splitContainer1.TabIndex = 0; - // - // lbGroups - // - this.lbGroups.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbGroups.FormattingEnabled = true; - this.lbGroups.Location = new System.Drawing.Point(0, 0); - this.lbGroups.Name = "lbGroups"; - this.lbGroups.Size = new System.Drawing.Size(209, 290); - this.lbGroups.TabIndex = 0; - this.lbGroups.Click += new System.EventHandler(this.lbGroups_Click); - // - // pg - // - this.pg.Dock = System.Windows.Forms.DockStyle.Fill; - this.pg.Location = new System.Drawing.Point(0, 23); - this.pg.Name = "pg"; - this.pg.Size = new System.Drawing.Size(416, 267); - this.pg.TabIndex = 0; - // - // btnSave - // - this.btnSave.Dock = System.Windows.Forms.DockStyle.Top; - this.btnSave.Location = new System.Drawing.Point(0, 0); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(416, 23); - this.btnSave.TabIndex = 1; - this.btnSave.Text = "Save"; - this.btnSave.UseVisualStyleBackColor = true; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // GroupProp - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(629, 290); - this.Controls.Add(this.splitContainer1); - this.Name = "GroupProp"; - this.Text = "GroupProp"; - this.Load += new System.EventHandler(this.GroupProp_Load); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.ListBox lbGroups; - private System.Windows.Forms.PropertyGrid pg; - private System.Windows.Forms.Button btnSave; - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/GroupProp.cs b/PROMS/DataLoader/GroupProp.cs deleted file mode 100644 index 3b467dc3..00000000 --- a/PROMS/DataLoader/GroupProp.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using Csla; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class GroupProp : Form - { - GroupInfoList glst; - Group grp; - public GroupProp() - { - InitializeComponent(); - } - private void GroupProp_Load(object sender, EventArgs e) - { - lbGroups.Dock = DockStyle.Fill; - glst = GroupInfoList.Get(); - lbGroups.DataSource = glst; - lbGroups.DisplayMember = "GroupName"; - lbGroups.ValueMember = "GID"; - SetGroup(); - } - private void lbGroups_Click(object sender, EventArgs e) - { - SetGroup(); - Console.WriteLine("Group ID = {0}", lbGroups.SelectedValue); - } - private void SetGroup() - { - grp = glst[lbGroups.SelectedIndex].Get(); - pg.SelectedObject = grp; - } - private void btnSave_Click(object sender, EventArgs e) - { - if (!grp.IsSavable) ErrorRpt.ErrorReport(grp); - grp.Save(); - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/GroupProp.resx b/PROMS/DataLoader/GroupProp.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/DataLoader/GroupProp.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/DataLoader/LibDoc.cs b/PROMS/DataLoader/LibDoc.cs deleted file mode 100644 index 0bfb131a..00000000 --- a/PROMS/DataLoader/LibDoc.cs +++ /dev/null @@ -1,137 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using Volian.MSWord; -using vlnObjectLibrary; -using vlnServerLibrary; -using Org.Mentalis.Files; - -namespace DataLoader -{ - public partial class Loader - { - - private void MigrateLibDocs(OleDbConnection cn, string pth, bool appending) - { - // MessageBox.Show("Before LibDocs"); - frmMain.AddInfo("Before MigrateLibDocs{0}\r\n{1}", GC.GetTotalMemory(true), VEPROMS.CSLA.Library.CSLACache.UsageAll); - // Get all of the library documents - the first list has the entire list of files - // found within the rtffiles folder, the second list contains usages from the 'tran' - // file. During processing for procedures/sections occurs, the used library documents - // will be migrated. After that, any remaining library documents will be added to - // the section table without a reference from the structuretbl. - Dictionary dicLibDocSect = new Dictionary(); - VEPROMS.CSLA.Library.DocumentInfoList docList = VEPROMS.CSLA.Library.DocumentInfoList.Get(); - frmMain.UpdateLabelsLibDocs(0, 0); - if (Directory.Exists(pth + "\\rtffiles")) - { - DirectoryInfo di = new DirectoryInfo(pth + "\\RTFFILES"); - FileInfo[] fis = di.GetFiles("DOC_*.LIB"); - frmMain.UpdateLabelsSetProc(fis.Length); - foreach (FileInfo fi in fis) - { - string fName = fi.Name.Substring(0, 8).ToUpper(); - frmMain.UpdateLabelsLibDocs(1, 0); - if (appending) - { - foreach (VEPROMS.CSLA.Library.DocumentInfo docInfo in docList) - { - if(docInfo.Config.Contains(string.Format("\"{0}.LIB\"", fName))) - dicLibDocSect[fName] = docInfo.DocID; - } - } - else - dicLibDocSect[fName] = MigrateLibDoc(fi); - } - } - dicLibDocRef = new Dictionary(); - OleDbDataAdapter da_doc = new OleDbDataAdapter("select [FROMNUMBER], [FROMSEQUEN], [TONUMBER] from [tran] where [TONUMBER] LIKE 'doc_%' or [TONUMBER] like 'DOC_%'", cn); - DataSet ds_doc = new DataSet(); - da_doc.Fill(ds_doc); - frmMain.UpdateLabelsSetSect(ds_doc.Tables[0].Rows.Count); - foreach (DataRow dr_doc in ds_doc.Tables[0].Rows) - { - frmMain.UpdateLabelsLibDocs(0, 1); - string key = dr_doc["FROMNUMBER"].ToString().PadRight(20) + TextConvert.ConvertSeq(dr_doc["FROMSEQUEN"].ToString()).PadRight(10); - if (!dicLibDocSect.ContainsKey(dr_doc["TONUMBER"].ToString().ToUpper())) - log.ErrorFormat("Error setting library document references: {0}", dr_doc["TONUMBER"].ToString().ToUpper()); - else - dicLibDocRef[key] = dicLibDocSect[dr_doc["TONUMBER"].ToString().ToUpper()]; - } - da_doc.Dispose(); - frmMain.AddInfo("After MigrateLibDocs{0}\r\n{1}", GC.GetTotalMemory(true), VEPROMS.CSLA.Library.CSLACache.UsageAll); - // MessageBox.Show("After LibDocs"); - } - private int MigrateLibDoc(FileInfo fi) - { - ConfigInfo ci = new ConfigInfo(null); - string title = null; // for docname, remove the '.lib', i.e. substring(0,8) - ci.AddItem("Edit", "Initialized", "true"); - ci.AddItem("History", "OriginalFileName", fi.Name); - string tmpRtfFileName = GetLibDocData(fi, ci, ref title); - int Docid = SaveWordDoc(tmpRtfFileName, title, null, false, ci, string.Empty,fi.LastWriteTimeUtc); - File.Delete(tmpRtfFileName); - return Docid; - } - private string LoadFromLib(BinaryReader br) - { - int nchar = br.ReadInt16(); - if (nchar > 0) - { - string tmp = new string(br.ReadChars(nchar)); - return tmp.Substring(0, tmp.Length - 1); // remove null at end. - } - return null; - } - private string GetLibDocData(FileInfo fi, ConfigInfo ci, ref string title) - { - title = null; - // get the number, title, etc from the file. - // use the path to open the file & read the title & comment - DateTime dts = fi.LastWriteTimeUtc; - FileStream fs = fi.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - BinaryReader br = new BinaryReader(fs, System.Text.ASCIIEncoding.ASCII); - string tmpRtfFileName = Path.GetTempFileName(); - FileStream tmpfile = new FileStream(tmpRtfFileName, FileMode.Create); - BinaryWriter bw = new BinaryWriter(tmpfile, System.Text.Encoding.ASCII); - int cntPage = br.ReadInt16(); - if (cntPage != -1) - { // Not End of File - ci.AddItem("Section", "NumPages", cntPage.ToString()); - string ldtitle = LoadFromLib(br); - if (ldtitle != null && ldtitle != "") title = ldtitle; - ci.AddItem("LibDoc", "Comment", LoadFromLib(br)); - long l = br.BaseStream.Length - br.BaseStream.Position; - byte[] buf = new byte[l]; - br.Read(buf, 0, (int)l); - bw.Write(buf, 0, (int)l); - br.Close(); - fs.Close(); - bw.Close(); - tmpfile.Close(); - WaitMS(wms); // give it some time to close the tempfile before adding section - File.SetLastWriteTimeUtc(tmpRtfFileName, dts); - } - return tmpRtfFileName; - } - } - -} \ No newline at end of file diff --git a/PROMS/DataLoader/LibDoc.cs.bak b/PROMS/DataLoader/LibDoc.cs.bak deleted file mode 100644 index 1b37f99d..00000000 --- a/PROMS/DataLoader/LibDoc.cs.bak +++ /dev/null @@ -1,122 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using Volian.MSWord; -using vlnObjectLibrary; -using vlnServerLibrary; -using Org.Mentalis.Files; - -namespace DataLoader -{ - public partial class Loader - { - - private void MigrateLibDocs(OleDbConnection cn, string pth) - { - // Get all of the library documents - the first list has the entire list of files - // found within the rtffiles folder, the second list contains usages from the 'tran' - // file. During processing for procedures/sections occurs, the used library documents - // will be migrated. After that, any remaining library documents will be added to - // the section table without a reference from the structuretbl. - Dictionary dicLibDocSect = new Dictionary(); - frmMain.UpdateLabelsLibDocs(0, 0); - if (Directory.Exists(pth + "\\rtffiles")) - { - DirectoryInfo di = new DirectoryInfo(pth + "\\RTFFILES"); - FileInfo[] fis = di.GetFiles("DOC_*.LIB"); - frmMain.UpdateLabelsSetProc(fis.Length); - foreach (FileInfo fi in fis) - { - frmMain.UpdateLabelsLibDocs(1, 0); - dicLibDocSect[fi.Name.Substring(0, 8).ToUpper()] = MigrateLibDoc(fi); - } - } - dicLibDocRef = new Dictionary(); - OleDbDataAdapter da_doc = new OleDbDataAdapter("select [FROMNUMBER], [FROMSEQUEN], [TONUMBER] from [tran] where [TONUMBER] LIKE 'doc_%' or [TONUMBER] like 'DOC_%'", cn); - DataSet ds_doc = new DataSet(); - da_doc.Fill(ds_doc); - frmMain.UpdateLabelsSetSect(ds_doc.Tables[0].Rows.Count); - foreach (DataRow dr_doc in ds_doc.Tables[0].Rows) - { - frmMain.UpdateLabelsLibDocs(0, 1); - string key = dr_doc["FROMNUMBER"].ToString().PadRight(20) + dr_doc["FROMSEQUEN"].ToString().PadRight(10); - if (!dicLibDocSect.ContainsKey(dr_doc["TONUMBER"].ToString().ToUpper())) - log.ErrorFormat("Error setting library document references: {0}", dr_doc["TONUMBER"].ToString().ToUpper()); - else - dicLibDocRef[key] = dicLibDocSect[dr_doc["TONUMBER"].ToString().ToUpper()]; - } - da_doc.Dispose(); - } - private int MigrateLibDoc(FileInfo fi) - { - ConfigInfo ci = new ConfigInfo(null); - string title = null; // for docname, remove the '.lib', i.e. substring(0,8) - DateTime dts = DateTime.Now; - ci.AddItem("Edit", "Initialized", "true"); - string tmpRtfFileName = GetLibDocData(fi, ci, ref title); - int Docid = SaveWordDoc(tmpRtfFileName, title, null, ci, string.Empty); - File.Delete(tmpRtfFileName); - return Docid; - } - private string LoadFromLib(BinaryReader br) - { - int nchar = br.ReadInt16(); - if (nchar > 0) - { - string tmp = new string(br.ReadChars(nchar)); - return tmp.Substring(0, tmp.Length - 1); // remove null at end. - } - return null; - } - private string GetLibDocData(FileInfo fi, ConfigInfo ci, ref string title) - { - title = null; - // get the number, title, etc from the file. - // use the path to open the file & read the title & comment - DateTime dts = fi.LastWriteTimeUtc; - FileStream fs = fi.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - BinaryReader br = new BinaryReader(fs, System.Text.ASCIIEncoding.ASCII); - string tmpRtfFileName = Path.GetTempFileName(); - FileStream tmpfile = new FileStream(tmpRtfFileName, FileMode.Create); - BinaryWriter bw = new BinaryWriter(tmpfile, System.Text.Encoding.ASCII); - int cntPage = br.ReadInt16(); - if (cntPage != -1) - { // Not End of File - ci.AddItem("Section", "NumPages", cntPage.ToString()); - string ldtitle = LoadFromLib(br); - if (ldtitle != null && ldtitle != "") title = ldtitle; - ci.AddItem("LibDoc", "Comment", LoadFromLib(br)); - long l = br.BaseStream.Length - br.BaseStream.Position; - byte[] buf = new byte[l]; - br.Read(buf, 0, (int)l); - bw.Write(buf, 0, (int)l); - br.Close(); - fs.Close(); - bw.Close(); - tmpfile.Close(); - WaitMS(wms); // give it some time to close the tempfile before adding section - File.SetLastWriteTimeUtc(tmpRtfFileName, dts); - } - return tmpRtfFileName; - } - } - -} \ No newline at end of file diff --git a/PROMS/DataLoader/LoadConfig.cs b/PROMS/DataLoader/LoadConfig.cs deleted file mode 100644 index 2b371cdd..00000000 --- a/PROMS/DataLoader/LoadConfig.cs +++ /dev/null @@ -1,243 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - -namespace Config -{ - public class ConfigFile - { - #region Log4Net - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region MigrateStrings - // the following lists are used for storing the element and attribute names - // for migrating of ini & cfg files. The names stored in these lists are - // those that should be migrated. If not in this list, the data (either element - // or attribute name) is prefaced with a 'z'. At some point in the future, those - // names with a 'z' will be removed. - public List listIni_EleName = new List(); - public List listIni_AttrName = new List(); - private void SetIniEleName() - { - // veproms.ini - listIni_EleName.Add("graphics"); - listIni_EleName.Add("color"); - listIni_EleName.Add("print"); - listIni_EleName.Add("startup"); - listIni_EleName.Add("data integrity"); - listIni_EleName.Add("wordprocessor"); - listIni_EleName.Add("procedurelisttabstops"); - - // proc.ini - listIni_EleName.Add("rodefaults"); - listIni_EleName.Add("display"); - listIni_EleName.Add("backgrounddefaults"); - listIni_EleName.Add("unit"); - listIni_EleName.Add("applicability"); - listIni_EleName.Add("procedureset"); - - // roapp.ini - listIni_EleName.Add("roapp"); - - // .cfg - listIni_EleName.Add("spelldictionary"); - // listIni_EleName.Add("wordprocessor"); - already in here. - } - - private void SetIniAttrName() - { - //veproms.ini - listIni_AttrName.Add("defaultext"); - listIni_AttrName.Add("ro"); - listIni_AttrName.Add("editbackground"); - listIni_AttrName.Add("black"); - listIni_AttrName.Add("blue"); - listIni_AttrName.Add("green"); - listIni_AttrName.Add("cyan"); - listIni_AttrName.Add("red"); - listIni_AttrName.Add("magenta"); - listIni_AttrName.Add("brown"); - listIni_AttrName.Add("lightgray"); - listIni_AttrName.Add("darkgray"); - listIni_AttrName.Add("ligthblue"); - listIni_AttrName.Add("lightgreen"); - listIni_AttrName.Add("lightcyan"); - listIni_AttrName.Add("lightred"); - listIni_AttrName.Add("lightmagenta"); - listIni_AttrName.Add("yellow"); - listIni_AttrName.Add("white"); - listIni_AttrName.Add("underlinewidth"); - listIni_AttrName.Add("verticalOffset"); - listIni_AttrName.Add("strokewidth"); - listIni_AttrName.Add("strokewidthbold"); - listIni_AttrName.Add("messageboxtitle"); - listIni_AttrName.Add("messagefile"); - listIni_AttrName.Add("enableindexcheck"); - listIni_AttrName.Add("wordwrap"); - listIni_AttrName.Add("procedurenumbertab"); - listIni_AttrName.Add("proceduretitletab"); - - // proc.ini - listIni_AttrName.Add("setpoint"); - listIni_AttrName.Add("graphics"); - listIni_AttrName.Add("ropath"); - listIni_AttrName.Add("display"); - listIni_AttrName.Add("sectiontitle"); - listIni_AttrName.Add("sectionnumber"); - listIni_AttrName.Add("number"); - listIni_AttrName.Add("othernumber"); - listIni_AttrName.Add("name"); - listIni_AttrName.Add("othername"); - listIni_AttrName.Add("text"); - listIni_AttrName.Add("othertext"); - listIni_AttrName.Add("id"); - listIni_AttrName.Add("otherid"); - listIni_AttrName.Add("procedurenumber"); - listIni_AttrName.Add("masterdir"); - - - // roapp.ini - listIni_AttrName.Add("extention"); // NOTE MIS-SPELLING was in 16-bit program! - - // .cfg - listIni_AttrName.Add("custom"); - listIni_AttrName.Add("page"); - listIni_AttrName.Add("toolbar"); - listIni_AttrName.Add("paragraph"); - listIni_AttrName.Add("ruler"); - listIni_AttrName.Add("userphone1"); - listIni_AttrName.Add("userphone2"); - listIni_AttrName.Add("userloc1"); - listIni_AttrName.Add("userloc2"); - } - #endregion - #region LoadDataCode - public ConfigFile() - { - } - public void LoadUsrCfg(User user, string vepromspath) - { - string cfgpath = vepromspath + "\\config"; - if (!Directory.Exists(cfgpath)) - { - log.Info("No user cfgs found in config directory - did not migrate any user cfgs"); - return; - } - DirectoryInfo di = new DirectoryInfo(cfgpath); - FileInfo[] fis = di.GetFiles("*.cfg"); - - foreach (FileInfo fi in fis) - { - string cfgname = fi.Name.Substring(0, fi.Name.IndexOf(".")); - if (cfgname.ToUpper() == user.UserID.ToUpper()) - { - // Get Users table fields by reading the cfg file into a buffer & looking - // for the UserNetworkId and UserName fields. - StreamReader myReader = new StreamReader(fi.FullName); - string sLine; - string UserLogin = null; - string UserName = null; - int indx = -1; - while ((sLine = myReader.ReadLine()) != null && (UserLogin == null || UserName == null)) - { - if (sLine.Length > 0 && sLine.Substring(0, 1) != ";") - { - if ((indx = sLine.ToLower().IndexOf("usernetworkid")) >= 0) - { - indx = sLine.IndexOf("=", indx + 13); - UserLogin = sLine.Substring(indx + 1, sLine.Length - indx - 1).Trim(); - } - else if ((indx = sLine.ToLower().IndexOf("username")) >= 0) - { - indx = sLine.IndexOf("=", indx + 8); - UserName = sLine.Substring(indx + 1, sLine.Length - indx - 1).Trim(); - } - } - } - myReader.Close(); - - // get the xml to set the config field - XmlDocument d = IniToXml(fi.FullName); - user.Config = d == null ? null : d.InnerXml; - user.UserLogin = UserLogin; - user.UserName = UserName; - user.CFGName = cfgname; - break; - } - } - } - - public XmlDocument LoadSystemIni(string vepromspath) - { - string inipath = vepromspath + "\\veproms.ini"; - if (!File.Exists(inipath)) - { - log.InfoFormat("Did not migrate {0} - file not found", inipath); - return null; - } - XmlDocument d = IniToXml(inipath); - // see if default image file extension was set, if not make it TIF - XmlNode gr = d.SelectSingleNode("//Graphics"); - XmlNode ext = null; - if (gr != null) ext = gr.SelectSingleNode("@defaultext"); - if (ext == null) - { - // if the graphics node doesn't exist, make it. - if (gr == null) - { - gr = d.CreateElement("Graphics"); - d.DocumentElement.AppendChild(gr); - } - XmlAttribute xa = d.CreateAttribute("defaultext"); - xa.Value = "TIF"; - gr.Attributes.Append(xa); - } - return d; - } - - public XmlDocument LoadRoAppIni(string ropath) - { - string inipath = ropath + "\\roapp.ini"; - // not an error if it does not exist - just return null. - if (!File.Exists(inipath)) return null; - - XmlDocument d = IniToXml(inipath); - - return d; - } - - public XmlDocument IniToXml(string path) - { - FileInfo fi = new FileInfo(path); - if (fi.Exists) - { - PrivateProfile ppCfg; - if (listIni_AttrName == null || listIni_AttrName.Count == 0) SetIniAttrName(); - if (listIni_EleName == null || listIni_EleName.Count == 0) SetIniEleName(); - ppCfg = new PrivateProfile(path, listIni_EleName, listIni_AttrName); - return ppCfg.XML(); - } - return null; - } - #endregion - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/LoadTreeDB.cs b/PROMS/DataLoader/LoadTreeDB.cs deleted file mode 100644 index fd7f9b43..00000000 --- a/PROMS/DataLoader/LoadTreeDB.cs +++ /dev/null @@ -1,392 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; -using vlnObjectLibrary; -using vlnServerLibrary; -using Org.Mentalis.Files; -using Config; -using Utils; - -namespace DataLoader -{ - public partial class Loader - { - private static List _DataPaths = null; - public static List DataPaths - { - get - { - if (_DataPaths == null) - { - _DataPaths = new List(); - string sCfg = Environment.GetEnvironmentVariable("veconfig"); - IniReader cfg = new IniReader(sCfg); - // Get DataPath - string sDP = cfg.ReadString("menu", "DataPath"); - // Split DataPath into directories - // Get the current list of folders so that if it already exists, just get the 'Folder', otherwise - // make it. It was done this way because there was no way to get the Folder given a name/Title. - foreach (string s1 in sDP.Split(";".ToCharArray())) - { - if (s1.Length > 0) - { - string[] s2 = s1.Split(",".ToCharArray()); - _DataPaths.Add( s2[0]); - } - } - } - return Loader._DataPaths; - } - } - public List vlnDataPathFolders() // was vlnDataPath - { - List dpf = new List(); - // Get path to config file - string sCfg = Environment.GetEnvironmentVariable("veconfig"); - IniReader cfg = new IniReader(sCfg); - // Get DataPath - string sDP = cfg.ReadString("menu", "DataPath"); - // Split DataPath into directories - - // Get the current list of folders so that if it already exists, just get the 'Folder', otherwise - // make it. It was done this way because there was no way to get the Folder given a name/Title. - FolderInfoList fil = FolderInfoList.Get(); - - foreach (string s1 in sDP.Split(";".ToCharArray())) - { - if (s1.Length > 0) - { - string[] s2 = s1.Split(",".ToCharArray()); - Folder fld = GetFolderFromName(s2[1], s2[0], fil); - if (fld == null) - fld = Folder.MakeFolder(sysFolder, dbConn, s2[1], s2[0], FolderName(s2[0]), null, null, DateTime.Now, "Migration"); - dpf.Add(fld); - } - } - return dpf; - } - private Folder GetFolderFromName(string name, string title, FolderInfoList fil) - { - Folder fld = null; - foreach (FolderInfo fi in fil) - { - string fi_Title = fi.Title.TrimEnd('\\'); - //if (fi.Name.ToUpper() == name.ToUpper() && fi.Title.ToUpper() == title.ToUpper()) - if (fi.Name.ToUpper() == name.ToUpper() && fi_Title.ToUpper() == title.ToUpper()) - { - fld = Folder.Get(fi.FolderID); - return fld; - } - } - return null; - } - private string FolderName(string Path) - { - int ind = Path.LastIndexOf("\\"); - if (ind == Path.Length-1 || ind < 0) return Path; - return Path.Substring(ind + 1); - } - private DocVersion GetDocVersionFromName(Folder fld, string f) - { - DocVersion dv = null; - DocVersionInfoList dvil = DocVersionInfoList.GetByFolderID(fld.FolderID); - foreach (DocVersionInfo dvi in dvil) - { - if (dvi.Name.ToUpper() == f.ToUpper()) - { - dv = DocVersion.Get(dvi.VersionID); - return dv; - } - } - return null; - } - private object cslaObject(vlnObject vb, Connection dbConn, Object parfld, TreeNode tn) - { - switch (vb.Type) - { - case "plant": - case "set": - // if folder exists... get the Folder object, otherwise create it. - FolderInfoList fil = FolderInfoList.Get(); - Folder fld = GetFolderFromName(vb.Title, vb.Path, fil); - if (fld==null) fld = Folder.MakeFolder((Folder)parfld, dbConn, vb.Title, vb.Path, FolderName(vb.Path), null, null, DateTime.Now, "Migration"); - tn.Tag = fld; - return (object) fld; - case "version": - // see if version exists for the input folder, parfld. - DocVersion v = GetDocVersionFromName((Folder)parfld, vb.Title); - if (v == null) - { - ConfigFile cfg = new ConfigFile(); - - XmlDocument d = cfg.IniToXml(vb.Path + "\\proc.ini"); - AddSlaveUnits(d, vb.Path); - if (frmMain.ProcessFailed) - return null; - //DocVersionConfig fld_cfg = new DocVersionConfig(d == null ? "" : d.InnerXml); - FolderConfig fld_cfg = (d==null)?null:new FolderConfig(d.InnerXml); - // translate curset.dat into xml & add to d (somehow). - string csfile = string.Format("{0}\\curset.dat",vb.Path); - string defPlantFmt = null; - if (File.Exists(csfile)) - { - CurSet cs = new CurSet(csfile); - try - { - if (fld_cfg == null) fld_cfg = new FolderConfig(); - fld_cfg = cs.Convert(fld_cfg); - defPlantFmt = cs.GetDefFmt(); - } - catch (Exception ex) - { - log.ErrorFormat("error in convert curset.dat, ex = {0}", ex.Message); - frmMain.AddError(ex, "error in convert curset.dat"); - } - } - // *** RHM 20120613 - Fix - // *** This was naming the DocVersion to the folder name - //string titlepath = vb.Path + "\\" + "Title"; - //FileInfo fi = new FileInfo(titlepath); - //string thetitle = vb.Title; - //if (File.Exists(titlepath)) - //{ - // StreamReader myReader = new StreamReader(titlepath); - // thetitle = myReader.ReadLine(); - // myReader.Close(); - //} - Folder tmpfld = (Folder)parfld; - FormatInfo format = null; - if (defPlantFmt != null && defPlantFmt != "") - { - format = GetFormat(defPlantFmt); - } - else - format = FormatInfo.Get(1); - - using(Format fmt = format.Get()) - v = DocVersion.MakeDocVersion(tmpfld, (int)DocVersionType(vb.Path.ToLower()), vb.Title, vb.Path.ToLower(), null, fmt, fld_cfg == null ? null : fld_cfg.ToString(), DateTime.Now, "Migration"); - } - tn.Tag = v; - MigrateDocVersion(v, false); - return (object)v; - } - return 0; - } - - private void AddSlaveUnits(XmlDocument d, string path) - { - string masterDir = GetMasterDir(d); - if (masterDir == null) - { - //not a master slave procedure set - return; - } - DirectoryInfo master = new DirectoryInfo(path); - if (master.Name.ToUpper() != masterDir.ToUpper()) return; - List names = GetUnitNames(d); - if (names == null) - { - frmMain.ProcessFailed = true; - MessageBox.Show("Could not find Unit names in slave proc.ini files"); - frmMain.MyError = "Could not find Unit names in slave proc.ini files"; - return; - } - DirectoryInfo[] slaves = master.Parent.GetDirectories(masterDir.ToUpper().Replace(".PRC",".SL*")); - XmlDocument units = new XmlDocument(); - units.LoadXml(""); - int idx = 0; - foreach (DirectoryInfo slave in slaves) - { - FileInfo[] inis = slave.GetFiles("proc.ini"); - if (inis.Length > 0) - { - FileInfo ini = inis[0]; - ConfigFile cfg = new ConfigFile(); - XmlDocument xSlave = cfg.IniToXml(ini.FullName); - xSlave.LoadXml(xSlave.OuterXml.Replace(" GetUnitNames(XmlDocument d) - { - XmlNode zapp = GetXMLNode(d, "Unit");// d.SelectSingleNode("//Unit"); - if (zapp == null) return null; - XmlNode zmstr = GetXMLAttribute(zapp, "Name");// zapp.Attributes.GetNamedItem("Name"); - if (zmstr == null) return null; - string[] names = zmstr.InnerText.Split(",".ToCharArray()); - return new List(names); - } - - private static string GetMasterDir(XmlDocument d) - { - XmlNode zapp = GetXMLNode(d, "Applicability");// d.SelectSingleNode("//Applicability"); - if (zapp == null) return null; - XmlNode zmstr = GetXMLAttribute(zapp, "MasterDir");// zapp.Attributes.GetNamedItem("MasterDir"); - if (zmstr == null) return null; - return zmstr.InnerText; - } - private string _OnlyThisFolder; - public string OnlyThisFolder - { - get - { - if (_OnlyThisFolder == null) - { - if (frmMain.MySettings.OnlyThisSet || frmMain.Automatic) - { - DirectoryInfo dir = new DirectoryInfo(frmMain.ProcedureSetPath); - if (frmMain.Automatic) - _OnlyThisFolder = dir.FullName.ToUpper(); - else - _OnlyThisFolder = dir.Parent.FullName.ToUpper(); - } - else if ((frmMain.MySettings.ProcessOnlyInLocation ?? "") != "") - _OnlyThisFolder = frmMain.MySettings.ProcessOnlyInLocation.ToUpper(); - else - _OnlyThisFolder = ""; - } - return _OnlyThisFolder; - } - } - private bool IsInSelectedPlantData(Object parent) - { - if (OnlyThisFolder == "") - return true; - Folder fld = parent as Folder; - if (fld == null) - return true; - if (fld.MyParent.MyParent != null) - return true; - if (fld.Title.ToUpper() == OnlyThisFolder) - return true; - return false; - } - private void MigrateChildren(vlnObject vb, vlnServer vs, Connection dbConn, Object parent, TreeNode tn) - { - if (vb.Type != "version") - { - vb.LoadChildren(vs.GetChildren(vb.ToString())); - List lv = vb.Children; - if (vb.Children.Count == 0) - frmMain.AddError("No children found for {0}", vb.Path); - foreach (vlnObject vbc in lv) - { - if (vbc.Path.ToUpper().StartsWith(OnlyThisFolder) || OnlyThisFolder.StartsWith(vbc.Path.ToUpper())) - { - TreeNode tnc = tn.Nodes.Add(vbc.Title); - object idc = cslaObject(vbc, dbConn, parent, tnc); - if (frmMain.ProcessFailed) - return; - frmMain.Status = "Loading " + vbc.Title; - MigrateChildren(vbc, vs, dbConn, idc, tnc); - frmMain.ChildrenProcessed++; - } - } - } - frmMain.Status = " "; - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/LoadTreeDB.cs.bak b/PROMS/DataLoader/LoadTreeDB.cs.bak deleted file mode 100644 index c58ba470..00000000 --- a/PROMS/DataLoader/LoadTreeDB.cs.bak +++ /dev/null @@ -1,284 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; -using vlnObjectLibrary; -using vlnServerLibrary; -using Org.Mentalis.Files; -using Config; -using Utils; - -namespace DataLoader -{ - public partial class Loader - { - private List vlnDataPathFolders() // was vlnDataPath - { - List dpf = new List(); - // Get path to config file - string sCfg = Environment.GetEnvironmentVariable("veconfig"); - IniReader cfg = new IniReader(sCfg); - // Get DataPath - string sDP = cfg.ReadString("menu", "DataPath"); - // Split DataPath into directories - - // Get the current list of folders so that if it already exists, just get the 'Folder', otherwise - // make it. It was done this way because there was no way to get the Folder given a name/Title. - FolderInfoList fil = FolderInfoList.Get(); - - foreach (string s1 in sDP.Split(";".ToCharArray())) - { - if (s1.Length > 0) - { - string[] s2 = s1.Split(",".ToCharArray()); - Folder fld = GetFolderFromName(s2[1], s2[0], fil); - if (fld == null) - fld = Folder.MakeFolder(sysFolder, dbConn, s2[1], s2[0], FolderName(s2[0]), null, null, DateTime.Now, "Migration"); - dpf.Add(fld); - } - } - return dpf; - } - private Folder GetFolderFromName(string name, string title, FolderInfoList fil) - { - Folder fld = null; - foreach (FolderInfo fi in fil) - { - if (fi.Name.ToUpper() == name.ToUpper() && fi.Title.ToUpper() == title.ToUpper()) - { - fld = Folder.Get(fi.FolderID); - return fld; - } - } - return null; - } - private string FolderName(string Path) - { - int ind = Path.LastIndexOf("\\"); - if (ind == Path.Length-1 || ind < 0) return Path; - return Path.Substring(ind + 1); - } - private DocVersion GetDocVersionFromName(Folder fld, string f) - { - DocVersion dv = null; - DocVersionInfoList dvil = DocVersionInfoList.GetByFolderID(fld.FolderID); - foreach (DocVersionInfo dvi in dvil) - { - if (dvi.Name.ToUpper() == f.ToUpper()) - { - dv = DocVersion.Get(dvi.VersionID); - return dv; - } - } - return null; - } - private object cslaObject(vlnObject vb, Connection dbConn, Object parfld, TreeNode tn) - { - switch (vb.Type) - { - case "plant": - case "set": - // if folder exists... get the Folder object, otherwise create it. - FolderInfoList fil = FolderInfoList.Get(); - Folder fld = GetFolderFromName(vb.Title, vb.Path, fil); - if (fld==null) fld = Folder.MakeFolder((Folder)parfld, dbConn, vb.Title, vb.Path, FolderName(vb.Path), null, null, DateTime.Now, "Migration"); - tn.Tag = fld; - return (object) fld; - case "version": - // see if version exists for the input folder, parfld. - DocVersion v = GetDocVersionFromName((Folder)parfld, vb.Title); - if (v == null) - { - ConfigFile cfg = new ConfigFile(); - - XmlDocument d = cfg.IniToXml(vb.Path + "\\proc.ini"); - AddSlaveUnits(d, vb.Path); - //DocVersionConfig fld_cfg = new DocVersionConfig(d == null ? "" : d.InnerXml); - FolderConfig fld_cfg = (d==null)?null:new FolderConfig(d.InnerXml); - // translate curset.dat into xml & add to d (somehow). - string csfile = string.Format("{0}\\curset.dat",vb.Path); - string defPlantFmt = null; - if (File.Exists(csfile)) - { - CurSet cs = new CurSet(csfile); - try - { - if (fld_cfg == null) fld_cfg = new FolderConfig(); - fld_cfg = cs.Convert(fld_cfg); - defPlantFmt = cs.GetDefFmt(); - } - catch (Exception ex) - { - log.ErrorFormat("error in convert curset.dat, ex = {0}", ex.Message); - frmMain.AddError(ex, "error in convert curset.dat"); - } - } - // *** RHM 20120613 - Fix - // *** This was naming the DocVersion to the folder name - //string titlepath = vb.Path + "\\" + "Title"; - //FileInfo fi = new FileInfo(titlepath); - //string thetitle = vb.Title; - //if (File.Exists(titlepath)) - //{ - // StreamReader myReader = new StreamReader(titlepath); - // thetitle = myReader.ReadLine(); - // myReader.Close(); - //} - Folder tmpfld = (Folder)parfld; - FormatInfo format = null; - if (defPlantFmt != null && defPlantFmt != "") - { - format = GetFormat(defPlantFmt); - } - else - format = FormatInfo.Get(1); - - using(Format fmt = format.Get()) - v = DocVersion.MakeDocVersion(tmpfld, (int)DocVersionType(vb.Path.ToLower()), vb.Title, vb.Path.ToLower(), null, fmt, fld_cfg == null ? null : fld_cfg.ToString(), DateTime.Now, "Migration"); - } - tn.Tag = v; - MigrateDocVersion(v, false); - return (object)v; - } - return 0; - } - - private void AddSlaveUnits(XmlDocument d, string path) - { - string masterDir = GetMasterDir(d); - if (masterDir == null) return; - DirectoryInfo master = new DirectoryInfo(path); - if (master.Name.ToUpper() != masterDir.ToUpper()) return; - List names = GetUnitNames(d); - DirectoryInfo[] slaves = master.Parent.GetDirectories(masterDir.ToUpper().Replace(".PRC",".SL*")); - XmlDocument units = new XmlDocument(); - units.LoadXml(""); - int idx = 0; - foreach (DirectoryInfo slave in slaves) - { - FileInfo[] inis = slave.GetFiles("proc.ini"); - if (inis.Length > 0) - { - FileInfo ini = inis[0]; - ConfigFile cfg = new ConfigFile(); - XmlDocument xSlave = cfg.IniToXml(ini.FullName); - xSlave.LoadXml(xSlave.OuterXml.Replace(" GetUnitNames(XmlDocument d) - { - XmlNode zapp = d.SelectSingleNode("//Unit"); - if (zapp == null) return null; - XmlNode zmstr = zapp.Attributes.GetNamedItem("Name"); - if (zmstr == null) return null; - string[] names = zmstr.InnerText.Split(",".ToCharArray()); - return new List(names); - } - - private static string GetMasterDir(XmlDocument d) - { - XmlNode zapp = d.SelectSingleNode("//Applicability"); - if (zapp == null) return null; - XmlNode zmstr = zapp.Attributes.GetNamedItem("MasterDir"); - if (zmstr == null) return null; - return zmstr.InnerText; - } - private string _OnlyThisFolder; - public string OnlyThisFolder - { - get - { - if (_OnlyThisFolder == null) - { - if (frmMain.MySettings.OnlyThisSet) - { - DirectoryInfo dir = new DirectoryInfo(frmMain.MySettings.ProcedureSetPath); - _OnlyThisFolder = dir.Parent.FullName.ToUpper(); - } - else - _OnlyThisFolder = ""; - } - return _OnlyThisFolder; - } - } - private bool IsInSelectedPlantData(Object parent) - { - if (OnlyThisFolder == "") - return true; - Folder fld = parent as Folder; - if (fld == null) - return true; - if (fld.MyParent.MyParent != null) - return true; - if (fld.Title.ToUpper() == OnlyThisFolder) - return true; - return false; - } - private void MigrateChildren(vlnObject vb, vlnServer vs, Connection dbConn, Object parent, TreeNode tn) - { - if (vb.Type != "version") - { - vb.LoadChildren(vs.GetChildren(vb.ToString())); - List lv = vb.Children; - foreach (vlnObject vbc in lv) - { - if (vbc.Path.ToUpper().StartsWith(OnlyThisFolder) || OnlyThisFolder.StartsWith(vbc.Path.ToUpper())) - { - TreeNode tnc = tn.Nodes.Add(vbc.Title); - object idc = cslaObject(vbc, dbConn, parent, tnc); - frmMain.Status = "Loading " + vbc.Title; - MigrateChildren(vbc, vs, dbConn, idc, tnc); - } - } - } - frmMain.Status = " "; - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/LoadTreeNh.cs b/PROMS/DataLoader/LoadTreeNh.cs deleted file mode 100644 index b76e5b01..00000000 --- a/PROMS/DataLoader/LoadTreeNh.cs +++ /dev/null @@ -1,43 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class Loader - { - public bool LoadChildren(FolderInfo fld, TreeNode tn) - { - tn.Nodes.Clear(); - bool bLoaded = true; - foreach (DocVersionInfo fdv in fld.FolderDocVersions) - { - TreeNode tnc = tn.Nodes.Add(fdv.Title); - tnc.Tag = fdv; - tnc.Checked = fdv.ItemID != 0; - bLoaded &= tnc.Checked; - } - return bLoaded; - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/Loader.cs b/PROMS/DataLoader/Loader.cs deleted file mode 100644 index 6b068d6b..00000000 --- a/PROMS/DataLoader/Loader.cs +++ /dev/null @@ -1,282 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using Volian.MSWord; -using vlnObjectLibrary; -using vlnServerLibrary; -using VEPROMS.CSLA.Library; -using Config; -using Volian.Base.Library; - -namespace DataLoader -{ - public partial class Loader - { - #region ClassProperties - private int wms = 500; - private static int EDDATA = 0x01; - private static int PH = 0x02; - private static int TOC = 0x04; - private static int AUTOIND = 0x08; - private static int PLACEKEEPER = 0x40; - private static int PHONELIST = 0x10; - - private static int STP_MULT_CHGID = 1; - private static int STP_LNK_SEQ = 2; - private static int STP_OVR_TAB = 3; - - private string ProcFileName; - private string ProcNumber; - private ROFstInfo rofstinfo; - private RODb rodb; - private int EditSectId; - private Dictionary dicLibDocRef; - - // have a few variables for storing the database id record & the system record. - public Connection dbConn; - public Folder sysFolder; - public AnnotationType CommentType; // this holds the annotationtype of comment for future use - public AnnotationType MigrationErrorType; // this holds the annotationtype of Migration Error for future use - public AnnotationType VerificationRequiredType; // Using this to flag table to grid conversions - public Document MissingDocument = null; // make a document if there is a missing rtf file - // any missing will use this. - private Content TransDummyCont; - // the following two dictionaries are used to handle migration of the - // transitions... dicTrans_ItemDone gets an entry for procnumber, sequence - // number and the new item id as a step or section is created (transitions - // can go to steps or sections). When a transition is encountered, check this - // dictionary to see if the step or section was migrated & use the item - // for the step or section if it was migrated. When a transition is migrated where - // the 'to' has not been migrated yet, check if an entry exists in dicTrans_ItemIds, - // if so, use the item listed here. If no entry exists in dicTrans_ItemIds, create - // an item table record and use the id as part of the 'to', and add an entry to - // dicTrans_ItemIds to flag that the record was already created. As migrating sections - // and steps, check this dicTrans_ItemIds to see if the item record has already - // been create, if so use it and remove it from the dicTrans_ItemIds dictionary, - // otherwise, create a new item record. - private Dictionary dicTrans_ItemDone; - private Dictionary dicTrans_ItemIds; - private Dictionary> dicTrans_MigrationErrors; - private Dictionary dicOldStepSequence; - private Dictionary dicNeedToLoad; - private Dictionary dicSetfileEntries; - - private log4net.ILog log; - #endregion - private frmLoader frmMain; - public Loader(log4net.ILog lg, frmLoader fm) - { - dicNeedToLoad = new Dictionary(); - log = lg; - frmMain = fm; - } - public bool LoadFolders(string vepromspath) - { - try - { - //_FmtAllPath = frmMain.MySettings.FormatFolder; - //_GenmacAllPath = frmMain.MySettings.GenMacFolder; - vlnServer.XMLControlPath = Application.StartupPath + "\\vlncontrol.xml"; - frmMain.Status = "Make Connection"; - // make the initial database connection record, annotation types & top - // system folder. - dbConn = Connection.MakeConnection("Default", "Default", frmMain.MySettings.ConnectionString.Replace("{DBName}",frmMain.DBName), 1, null, DateTime.Now, "Migration"); - ConfigFile cfg = new ConfigFile(); - - frmMain.Status = "Add AnnotationTypes"; - CommentType = AnnotationType.MakeAnnotationType("Comment", null); - MigrationErrorType = AnnotationType.MakeAnnotationType("Migration Error", null); - - AnnotationType at = AnnotationType.MakeAnnotationType("Reference", null); - at = AnnotationType.MakeAnnotationType("Action Items", null); - //at = AnnotationType.MakeAnnotationType("Verification Required", null); - VerificationRequiredType = AnnotationType.MakeAnnotationType("Verification Required", null); - at = AnnotationType.MakeAnnotationType("Volian Comment", null); - - frmMain.Status = "Load veproms.ini"; - XmlDocument d = cfg.LoadSystemIni(vepromspath); - - frmMain.Status = "Load All Formats"; - //LoadAllFormats(); - //Format.UpdateFormats(_FmtAllPath, _GenmacAllPath); - - Format.UpdateFormats(frmMain.MySettings.FormatFolder, frmMain.MySettings.GenMacFolder); - - //Format baseFormat = Format.Get(1); - //sysFolder = Folder.MakeFolder(null, dbConn, "VEPROMS", "VEPROMS", "VEPROMS", baseFormat, d.InnerXml, DateTime.Now, "Migration"); - using (Format baseFormat = Format.Get(1)) - { - sysFolder = Folder.MakeFolder(null, dbConn, "VEPROMS", "VEPROMS", "VEPROMS", baseFormat, d.InnerXml, DateTime.Now, "Migration"); - } - - // This is to test the vln Libraries - List lfldr = vlnDataPathFolders(); - - List dp2 = new List(); - if (frmMain.createEmptyPROMS) return true; - foreach (Folder fldr in lfldr) - { - TreeNode tn = frmMain.TV.Nodes.Add(fldr.Name); - tn.Tag = fldr; - vlnObject vb = new vlnObject(null, "datapath", fldr.Name, fldr.Title); - dp2.Add(vb); - vlnServer vs = new vlnServer(); - frmMain.Status = "Loading " + fldr.Name; - MigrateChildren(vb, vs, dbConn, fldr, tn); - if (frmMain.ProcessFailed) - return false; - tn.Expand(); - } - } - catch (Exception ex) - { - log.Error("Error in LoadFolders", ex); -// log.ErrorFormat("Could not load data, error = {0}", ex.Message); - //return false; - throw new Exception("Error in LoadFolders", ex); - } - return true; - } - public bool LoadFoldersIntoExisting(string s) - { - try - { - frmMain.Status = "Getting Connection"; - // get the connection and annotations from the existing database. - dbConn = Connection.GetByName("Default"); - //dbConn = Connection.MakeConnection("Default", "Default", frmMain.MySettings.ConnectionString.Replace("{DBName}",frmMain.DBName), 1, null, DateTime.Now, "Migration"); - - frmMain.Status = "Getting AnnotationTypes"; - CommentType = AnnotationType.GetByName("Comment"); // .MakeAnnotationType("Comment", null); - MigrationErrorType = AnnotationType.GetByName("Migration Error"); - if(MigrationErrorType == null) - MigrationErrorType = AnnotationType.MakeAnnotationType("Migration Error", null); - VerificationRequiredType = AnnotationType.GetByName("Verification Required"); - - List lfldr = vlnDataPathFolders(); // get plant level list. - - List dp2 = new List(); - foreach (Folder fldr in lfldr) - { - TreeNode tn = frmMain.TV.Nodes.Add(fldr.Name); - tn.Tag = fldr; - vlnObject vb = new vlnObject(null, "datapath", fldr.Name, fldr.Title); - dp2.Add(vb); - vlnServer vs = new vlnServer(); - frmMain.Status = "Loading " + fldr.Name; - MigrateChildren(vb, vs, dbConn, fldr, tn); - if (frmMain.ProcessFailed) - return false; - tn.Expand(); - } - } - catch (Exception ex) - { - log.ErrorFormat("Could not load data, error = {0}", ex.Message); - //return false; - throw new Exception("Error in LoadFolders", ex); - } - return true; - } - public void ClearData() - { - int ra = PurgeDataCommand.Execute(); - //Database.PurgeData(); - } - public static string MakeDate(string src) - { - if (src.Trim() == "") return null; - int[] DateOffset ={ 4, 5, 47, 6, 7, 47, 0, 1, 2, 3 }; // 47 = '/' - StringBuilder datebuff = new StringBuilder(10); - for (int i = 0; i < DateOffset.Length; i++) - { - if (DateOffset[i] < 9) - datebuff.Append(src[DateOffset[i]]); - else - datebuff.Append(System.Convert.ToChar(DateOffset[i])); - } - return datebuff.ToString(); - } - public DateTime GetDTS(string date, string time) - { - // Set the date/time stamp. If there is no 'date', set the date - // to 1/1/2000 (this can be changed!). If there is not 'time', - // set the time to 0:0:0 (midnight). - - DateTime dts = DateTime.Now; - string month = "01"; - string day = "01"; - string year = "2000"; - string hour = ""; - string minute = ""; - try - { - if (date != null && date != "") - { - int indx1 = date.IndexOf("/"); - month = date.Substring(0, indx1); - int indx2 = date.IndexOf("/", indx1 + 1); - day = date.Substring(indx1 + 1, indx2 - indx1 - 1); - year = date.Substring(indx2 + 1, 4); - } - if (time == null || time == "") - { - hour = "0"; - minute = "0"; - } - else - { - - hour = time.Substring(0, 2); - int indxc = time.IndexOfAny(":A-".ToCharArray()); - if (indxc == time.Length - 1) - minute = time.Substring(2, 2); - else - minute = time.Substring(indxc + 1, time.Length - indxc - 1); - } - dts = new DateTime(System.Convert.ToInt32(year), System.Convert.ToInt32(month), System.Convert.ToInt32(day), - System.Convert.ToInt32(hour), System.Convert.ToInt32(minute), 0); - } - catch (Exception ex) - { - log.ErrorFormat("Bad Date/Time {0} {1}. Set to NOW.", date, time); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - frmMain.AddError(ex, "Bad Date/Time {0} {1}", date, time); - //log.ErrorFormat(ex.StackTrace); - return dts; - } - return dts; - } - - public bool LoadSecurity(string VeSamPath, string VePromsPath) - { - Security sec = new Security(VeSamPath, VePromsPath); - return sec.Migrate(); - } - private static void WaitMS(int n) - { - DateTime dtw = DateTime.Now.AddMilliseconds(n); - while (DateTime.Now < dtw) - { - Application.DoEvents(); - } - } - private static void Wait(int n) - { - DateTime dtw = DateTime.Now.AddSeconds(n); - while (DateTime.Now < dtw) - { - Application.DoEvents(); - } - } - } -} diff --git a/PROMS/DataLoader/Loader.cs.bak b/PROMS/DataLoader/Loader.cs.bak deleted file mode 100644 index 87808268..00000000 --- a/PROMS/DataLoader/Loader.cs.bak +++ /dev/null @@ -1,280 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using Volian.MSWord; -using vlnObjectLibrary; -using vlnServerLibrary; -using VEPROMS.CSLA.Library; -using Config; -using Volian.Base.Library; - -namespace DataLoader -{ - public partial class Loader - { - #region ClassProperties - private int wms = 500; - private static int EDDATA = 0x01; - private static int PH = 0x02; - private static int TOC = 0x04; - private static int AUTOIND = 0x08; - private static int AUTOGEN = 0x40; - - private static int STP_MULT_CHGID = 1; - private static int STP_LNK_SEQ = 2; - private static int STP_OVR_TAB = 3; - - private string ProcFileName; - private string ProcNumber; - private ROFstInfo rofstinfo; - private RODb rodb; - private int EditSectId; - private Dictionary dicLibDocRef; - - // have a few variables for storing the database id record & the system record. - public Connection dbConn; - public Folder sysFolder; - public AnnotationType CommentType; // this holds the annotationtype of comment for future use - public AnnotationType MigrationErrorType; // this holds the annotationtype of Migration Error for future use - public AnnotationType VerificationRequiredType; // Using this to flag table to grid conversions - public Document MissingDocument = null; // make a document if there is a missing rtf file - // any missing will use this. - private Content TransDummyCont; - // the following two dictionaries are used to handle migration of the - // transitions... dicTrans_ItemDone gets an entry for procnumber, sequence - // number and the new item id as a step or section is created (transitions - // can go to steps or sections). When a transition is encountered, check this - // dictionary to see if the step or section was migrated & use the item - // for the step or section if it was migrated. When a transition is migrated where - // the 'to' has not been migrated yet, check if an entry exists in dicTrans_ItemIds, - // if so, use the item listed here. If no entry exists in dicTrans_ItemIds, create - // an item table record and use the id as part of the 'to', and add an entry to - // dicTrans_ItemIds to flag that the record was already created. As migrating sections - // and steps, check this dicTrans_ItemIds to see if the item record has already - // been create, if so use it and remove it from the dicTrans_ItemIds dictionary, - // otherwise, create a new item record. - private Dictionary dicTrans_ItemDone; - private Dictionary dicTrans_ItemIds; - private Dictionary> dicTrans_MigrationErrors; - private Dictionary dicOldStepSequence; - private Dictionary dicNeedToLoad; - private Dictionary dicSetfileEntries; - - private log4net.ILog log; - #endregion - private frmLoader frmMain; - public Loader(log4net.ILog lg, frmLoader fm) - { - dicNeedToLoad = new Dictionary(); - log = lg; - frmMain = fm; - } - public bool LoadFolders(string vepromspath) - { - try - { - //_FmtAllPath = frmMain.MySettings.FormatFolder; - //_GenmacAllPath = frmMain.MySettings.GenMacFolder; - frmMain.Status = "Make Connection"; - // make the initial database connection record, annotation types & top - // system folder. - dbConn = Connection.MakeConnection("Default", "Default", frmMain.MySettings.ConnectionString.Replace("{DBName}",frmMain.MySettings.DBName), 1, null, DateTime.Now, "Migration"); - ConfigFile cfg = new ConfigFile(); - - frmMain.Status = "Add AnnotationTypes"; - CommentType = AnnotationType.MakeAnnotationType("Comment", null); - MigrationErrorType = AnnotationType.MakeAnnotationType("Migration Error", null); - - AnnotationType at = AnnotationType.MakeAnnotationType("Reference", null); - at = AnnotationType.MakeAnnotationType("Action Items", null); - //at = AnnotationType.MakeAnnotationType("Verification Required", null); - VerificationRequiredType = AnnotationType.MakeAnnotationType("Verification Required", null); - at = AnnotationType.MakeAnnotationType("Volian Comment", null); - - frmMain.Status = "Load veproms.ini"; - XmlDocument d = cfg.LoadSystemIni(vepromspath); - - frmMain.Status = "Load All Formats"; - //LoadAllFormats(); - //Format.UpdateFormats(_FmtAllPath, _GenmacAllPath); - - Format.UpdateFormats(frmMain.MySettings.FormatFolder, frmMain.MySettings.GenMacFolder); - - //Format baseFormat = Format.Get(1); - //sysFolder = Folder.MakeFolder(null, dbConn, "VEPROMS", "VEPROMS", "VEPROMS", baseFormat, d.InnerXml, DateTime.Now, "Migration"); - using (Format baseFormat = Format.Get(1)) - { - sysFolder = Folder.MakeFolder(null, dbConn, "VEPROMS", "VEPROMS", "VEPROMS", baseFormat, d.InnerXml, DateTime.Now, "Migration"); - } - - // This is to test the vln Libraries - List lfldr = vlnDataPathFolders(); - - List dp2 = new List(); - if (frmMain.createEmptyPROMS) return true; - foreach (Folder fldr in lfldr) - { - TreeNode tn = frmMain.TV.Nodes.Add(fldr.Name); - tn.Tag = fldr; - vlnObject vb = new vlnObject(null, "datapath", fldr.Name, fldr.Title); - dp2.Add(vb); - vlnServer vs = new vlnServer(); - frmMain.Status = "Loading " + fldr.Name; - MigrateChildren(vb, vs, dbConn, fldr, tn); - if (frmMain.ProcessFailed) - return false; - tn.Expand(); - } - } - catch (Exception ex) - { - log.Error("Error in LoadFolders", ex); -// log.ErrorFormat("Could not load data, error = {0}", ex.Message); - //return false; - throw new Exception("Error in LoadFolders", ex); - } - return true; - } - public bool LoadFoldersIntoExisting(string s) - { - try - { - frmMain.Status = "Getting Connection"; - // get the connection and annotations from the existing database. - dbConn = Connection.GetByName("Default"); - //dbConn = Connection.MakeConnection("Default", "Default", frmMain.MySettings.ConnectionString.Replace("{DBName}",frmMain.MySettings.DBName), 1, null, DateTime.Now, "Migration"); - - frmMain.Status = "Getting AnnotationTypes"; - CommentType = AnnotationType.GetByName("Comment"); // .MakeAnnotationType("Comment", null); - MigrationErrorType = AnnotationType.GetByName("Migration Error"); - if(MigrationErrorType == null) - MigrationErrorType = AnnotationType.MakeAnnotationType("Migration Error", null); - VerificationRequiredType = AnnotationType.GetByName("Verification Required"); - - List lfldr = vlnDataPathFolders(); // get plant level list. - - List dp2 = new List(); - foreach (Folder fldr in lfldr) - { - TreeNode tn = frmMain.TV.Nodes.Add(fldr.Name); - tn.Tag = fldr; - vlnObject vb = new vlnObject(null, "datapath", fldr.Name, fldr.Title); - dp2.Add(vb); - vlnServer vs = new vlnServer(); - frmMain.Status = "Loading " + fldr.Name; - MigrateChildren(vb, vs, dbConn, fldr, tn); - if (frmMain.ProcessFailed) - return false; - tn.Expand(); - } - } - catch (Exception ex) - { - log.ErrorFormat("Could not load data, error = {0}", ex.Message); - //return false; - throw new Exception("Error in LoadFolders", ex); - } - return true; - } - public void ClearData() - { - int ra = PurgeDataCommand.Execute(); - //Database.PurgeData(); - } - public static string MakeDate(string src) - { - if (src.Trim() == "") return null; - int[] DateOffset ={ 4, 5, 47, 6, 7, 47, 0, 1, 2, 3 }; // 47 = '/' - StringBuilder datebuff = new StringBuilder(10); - for (int i = 0; i < DateOffset.Length; i++) - { - if (DateOffset[i] < 9) - datebuff.Append(src[DateOffset[i]]); - else - datebuff.Append(System.Convert.ToChar(DateOffset[i])); - } - return datebuff.ToString(); - } - public DateTime GetDTS(string date, string time) - { - // Set the date/time stamp. If there is no 'date', set the date - // to 1/1/2000 (this can be changed!). If there is not 'time', - // set the time to 0:0:0 (midnight). - - DateTime dts = DateTime.Now; - string month = "01"; - string day = "01"; - string year = "2000"; - string hour = ""; - string minute = ""; - try - { - if (date != null && date != "") - { - int indx1 = date.IndexOf("/"); - month = date.Substring(0, indx1); - int indx2 = date.IndexOf("/", indx1 + 1); - day = date.Substring(indx1 + 1, indx2 - indx1 - 1); - year = date.Substring(indx2 + 1, 4); - } - if (time == null || time == "") - { - hour = "0"; - minute = "0"; - } - else - { - - hour = time.Substring(0, 2); - int indxc = time.IndexOfAny(":A-".ToCharArray()); - if (indxc == time.Length - 1) - minute = time.Substring(2, 2); - else - minute = time.Substring(indxc + 1, time.Length - indxc - 1); - } - dts = new DateTime(System.Convert.ToInt32(year), System.Convert.ToInt32(month), System.Convert.ToInt32(day), - System.Convert.ToInt32(hour), System.Convert.ToInt32(minute), 0); - } - catch (Exception ex) - { - log.ErrorFormat("Bad Date/Time {0} {1}. Set to NOW.", date, time); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - frmMain.AddError(ex, "Bad Date/Time {0} {1}", date, time); - //log.ErrorFormat(ex.StackTrace); - return dts; - } - return dts; - } - - public bool LoadSecurity(string VeSamPath, string VePromsPath) - { - Security sec = new Security(VeSamPath, VePromsPath); - return sec.Migrate(); - } - private static void WaitMS(int n) - { - DateTime dtw = DateTime.Now.AddMilliseconds(n); - while (DateTime.Now < dtw) - { - Application.DoEvents(); - } - } - private static void Wait(int n) - { - DateTime dtw = DateTime.Now.AddSeconds(n); - while (DateTime.Now < dtw) - { - Application.DoEvents(); - } - } - } -} diff --git a/PROMS/DataLoader/OutsideTransition.cs b/PROMS/DataLoader/OutsideTransition.cs deleted file mode 100644 index ec7b0227..00000000 --- a/PROMS/DataLoader/OutsideTransition.cs +++ /dev/null @@ -1,327 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.OleDb; -//using System.Collections.Specialized; -//using System.Collections.Generic; -//using System.Xml; -//using System.IO; -//using System.Text; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - class OutsideTransition - { - private OleDbConnection _DbConnect; - - public OleDbConnection DbConnect - { - get { return _DbConnect; } - set { _DbConnect = value; } - } - - private Dictionary _TranLookup; - - public OutsideTransition(OleDbConnection cn) - { - _DbConnect = cn; - _TranLookup = new Dictionary(); - } - - private List _MigrationErrors; - public ItemInfo GetItem(string key, List migrationErrors) - { - _MigrationErrors = migrationErrors; - if (!_TranLookup.ContainsKey(key)) - _TranLookup.Add(key, Find(key)); - return _TranLookup[key]; - } - - private ItemInfo Find(string key) - { - string setid = key.Substring(0, 8); - string procid = key.Substring(8, 8); - string path = GetPath(setid);// Get set path from XTSETID - string proc = GetProc(setid, procid);// Get procedure number from XTPROCID - return Find(path,proc);// Return ItemInfo based upon path and procedure number - } - - private ItemInfo Find(string path, string proc) - { - return OTLookup.Find(path, proc,_MigrationErrors); - } - - private string GetProc(string setid, string procid) - { - string retval = null; - string xtproccmd = "SELECT * FROM [xtprocid] WHERE [SETID]='" + setid + "' AND [PROCID]='" + procid + "'"; - using (OleDbDataAdapter da = new OleDbDataAdapter(xtproccmd, _DbConnect)) - { - try - { - DataSet ds = new DataSet(); - da.Fill(ds); - DataTable dt = ds.Tables[0]; - dt.CaseSensitive = true; - DataRow dr = dt.Rows[0]; // there should be only one entry! - retval = dr["Procnum"].ToString(); // this should be the procedure number! - ds.Dispose(); - } - catch (Exception ex) - { - return "";//ex.GetType().Name + " " + ex.Message; - } - } - return retval; - } - - private string GetPath(string setid) - { - try - { - string xtsetcmd = "SELECT * FROM [xtsetid] WHERE [SETID]='" + setid + "'"; - OleDbDataAdapter da = new OleDbDataAdapter(xtsetcmd, _DbConnect); - DataSet ds = new DataSet(); - da.Fill(ds); - DataTable dt = ds.Tables[0]; - dt.CaseSensitive = true; - DataRow dr = dt.Rows[0]; // there should be only one entry! - // if there are more than one entry use the first legitimate entry - // for NSP we found multiple "FIRST RECORD"s in numerious XTSETID.DBF files - if (dt.Rows.Count > 1) - { - int irow = 0; - while (irow < dt.Rows.Count-1 && dt.Rows[irow]["PLANTTITLE"].ToString() == "FIRST RECORD") irow++; - dr = dt.Rows[irow]; - } - string retval = dr["Path"].ToString(); - da.Dispose(); - ds.Dispose(); - return retval; // dr["Path"].ToString(); // this should be the path to the proc set! - } - catch (Exception ex) - { - return "";//ex.GetType().Name + " " + ex.Message; - } - } - - private string GetTitle(string setid, string procid) - { - try - { - - string xtproccmd = "SELECT * FROM [xtprocid] WHERE [SETID]='" + setid + "' AND [PROCID]='" + procid + "'"; - OleDbDataAdapter da = new OleDbDataAdapter(xtproccmd, _DbConnect); - DataSet ds = new DataSet(); - da.Fill(ds); - DataTable dt = ds.Tables[0]; - dt.CaseSensitive = true; - DataRow dr = dt.Rows[0]; // there should be only one entry! - string retval = dr["Proctitle"].ToString(); - da.Dispose(); - ds.Dispose(); - return retval; // dr["Proctitle"].ToString(); // this should be the procedure number! - } - catch (Exception ex) - { - return "";//ex.GetType().Name + " " + ex.Message; - } - } - - public string GetDescription(string key) - { - string setid = key.Substring(0, 8); - string procid = key.Substring(8, 8); - string path = GetPath(setid);// Get set path from XTSETID - string proc = GetProc(setid, procid);// Get procedure number from XTPROCID - string title = GetTitle(setid, procid);// Get procedure title from XTPROCID - return string.Format("{0}, {1} in folder {2}",proc,title,path); - } - public string GetTransitionText(string key) - { - string setid = key.Substring(0, 8); - string procid = key.Substring(8, 8); - string proc = GetProc(setid, procid);// Get procedure number from XTPROCID - string title = GetTitle(setid, procid);// Get procedure title from XTPROCID - proc = proc.Replace("-", @"\u8209?"); // in proc number, replace dash and spaces with - proc = proc.Replace(" ", @"\u160?"); // nonbreak unicode dash & hardspace. - title = title.Replace("-", @"\u8209?"); // in title, just do the hardspace. - return string.Format("{0}, {1}", proc, title); - } - //private string ProcessOutSideTrans(OleDbConnection cn, string thekey, string pth) - //{ - // string xtransstring = null; - // DataTable dt = null; - // DataSet ds = null; - // OleDbDataAdapter da = null; - - // DataTable dt2 = null; - // DataSet ds2 = null; - // OleDbDataAdapter da2 = null; - - // string tosetid = thekey.Substring(0, 8); - // string toprocid = thekey.Substring(8, 8); - - // /// Get the path to the procedure set from the SETID - // string xtsetcmd = "SELECT * FROM [xtsetid] WHERE [SETID]='" + tosetid + "'"; - // string xtproccmd = "SELECT * FROM [xtprocid] WHERE [SETID]='" + tosetid + "' AND [PROCID]='" + toprocid + "'"; - - // da = new OleDbDataAdapter(xtsetcmd, cn); - // da2 = new OleDbDataAdapter(xtproccmd, cn); - - // // get xtsetid records. - // ds = new DataSet(); - // try - // { - // da.Fill(ds); - // dt = ds.Tables[0]; - // dt.CaseSensitive = true; - // } - // catch (Exception ex) - // { - // log.Error("Error getting XTSETID"); - // log.ErrorFormat("to number = {0}", thekey); - // log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - // //return textm; - // } - // DataRow dr = dt.Rows[0]; // there should be only one entry! - // string setpth = dr["Path"].ToString(); // this should be the path to the proc set! - - // // get xtprocid records - // ds2 = new DataSet(); - // try - // { - // da2.Fill(ds2); - // dt2 = ds2.Tables[0]; - // dt2.CaseSensitive = true; - // } - // catch (Exception ex) - // { - // log.Error("Error getting XTPROCID"); - // log.ErrorFormat("to number = {0}", thekey); - // log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - // //return textm; - // } - // DataRow dr2 = dt2.Rows[0]; // there should be only one entry! - // string procnum = dr2["Procnum"].ToString(); // this should be the procedure number! - - // xtransstring = setpth + "\\" + procnum; // ex: VEHLP\PROCS\0POP05-EO00 - - // //if (pathsAreEqual(setpth, pth)) - // //{ - // // // Outside Transiton is to this procedure set (not really outsde) - // // // need to find the item id that references the proc number and title - // // // - find the setpth in the doc.version - // //} - // //else - // //return thekey; // is a true outside transition - - // return xtransstring; - //} - } - - internal static class OTLookup - { - public static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private static Dictionary _Lookup = null; - static List _MigrationErrors; - public static ItemInfo Find(string path, string procnum, List migrationErrors) - { - _MigrationErrors = migrationErrors; - string key = string.Format(@"{0}\{1}",path,procnum); - if (_Lookup == null) - _Lookup = new Dictionary(); - if (!_Lookup.ContainsKey(key)) - _Lookup.Add(key, FindItem(path, procnum)); - return _Lookup[key]; - } - - private static DocVersionInfoList _DocVersions = null; - private static ItemInfo FindItem(string path, string procnum) - { - if (_DocVersions == null) - _DocVersions = DocVersionInfoList.Get(); - DocVersionInfo dvi = ExactMatch(path); - if (dvi == null) dvi = PartialMatch(path); - if (dvi != null) return FindItem(dvi, procnum); - return null; - } - - private static ItemInfo FindItem(DocVersionInfo dvi, string procnum) - { - foreach (ItemInfo itm in dvi.Procedures) - if (itm.DisplayNumber == procnum) - return itm; - return null; - } - - private static DocVersionInfo PartialMatch(string path) - { - string partial = GetPartial(path); - if (partial != null) - { - foreach (DocVersionInfo dvi in _DocVersions) - { - if (dvi.MyFolder.Title.ToUpper().EndsWith(partial.ToUpper())) - return dvi; - } - if (path.ToUpper().EndsWith("ABBYPROC")) - return PartialMatch(path + ".prc"); - } - // if we cannot find a match using two folders, simple use one - partial = GetPartial2(path); - if (partial != null) - { - DocVersionInfo match = null; - foreach (DocVersionInfo dvi in _DocVersions) - { - if (dvi.MyFolder.Title.ToUpper().EndsWith(partial.ToUpper())) - { - if (match == null) - match = dvi; - else - { - _MyLog.WarnFormat("Duplicate external paths found for path '{0}'", path); - _MigrationErrors.Add(string.Format("Duplicate external paths found for path '{0}'", path)); - } - - } - } - } - return null; - } - private static string GetPartial(string path) - { - //Console.WriteLine(string.Format("GetPartial path = {0}",path)); - if (path.Contains("\\")) - { - string[] parts = path.Split("\\".ToCharArray()); - return "\\" + parts[parts.Length - 2] + "\\" + parts[parts.Length - 1]; - } - else - return null; - } - private static string GetPartial2(string path) - { - //Console.WriteLine(string.Format("GetPartial path = {0}",path)); - if (path.Contains("\\")) - { - string[] parts = path.Split("\\".ToCharArray()); - return "\\" + parts[parts.Length - 1]; - } - else - return null; - } - private static DocVersionInfo ExactMatch(string path) - { - foreach (DocVersionInfo dvi in _DocVersions) - if (dvi.MyFolder.Title.ToUpper().EndsWith(path.ToUpper())) - return dvi; - if (path.ToUpper().EndsWith("ABBYPROC")) - return ExactMatch(path + ".prc"); - return null; - } - } -} diff --git a/PROMS/DataLoader/PROMS2010.SQL b/PROMS/DataLoader/PROMS2010.SQL deleted file mode 100644 index 9b5dac04..00000000 --- a/PROMS/DataLoader/PROMS2010.SQL +++ /dev/null @@ -1,18751 +0,0 @@ -if db_name() in('master','model','msdn','tempdb') -begin - DECLARE @ErrorMsg varchar(255) - SET @ErrorMsg = 'Don''t add these procedures and functions to ' + db_name() - PRINT '==========================================================================' - PRINT '' - PRINT @ErrorMsg - PRINT '' - PRINT 'You probably want to be in the VEPROMS database' - PRINT '' - PRINT '==========================================================================' - RAISERROR (@ErrorMsg, 20, -1) with log - RETURN -end -print 'Adding procedures and functions to ' + db_name() -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/****** Object: Table [dbo].[DeleteLog] Script Date: 03/29/2011 17:26:23 ******/ -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[DeleteLog]') AND type in (N'U')) -DROP TABLE [dbo].[DeleteLog] -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE TABLE [dbo].[DeleteLog]( - [DeleteID] [int] IDENTITY(1,1) NOT NULL, - [SPID] [int] NOT NULL CONSTRAINT [DF_DeleteLog_SPID] DEFAULT (@@spid), - [UserID] [nvarchar](100) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_DeleteLog_DTS] DEFAULT (getdate()), - CONSTRAINT [PK_DeleteLog] PRIMARY KEY CLUSTERED -( - [DeleteID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO - --- Display the status of Table creation -IF (@@Error = 0) PRINT 'Table Creation: DeleteLog Succeeded' -ELSE PRINT 'Table Creation: DeleteLog Error on Creation' -GO - -/****** Object: StoredProcedure [vlnErrorHandler] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vlnErrorHandler]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vlnErrorHandler]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vlnErrorHandler] - (@ExpectedCount int=-1 - ,@MessageFormat nvarchar(512)=N'Expected RowCount (%d) not met (%d)') -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @ErrorMessage NVARCHAR(4000), @ErrorNumber INT, @ErrorSeverity INT, @ErrorState INT, @ErrorProcedure NVARCHAR(126) - , @ErrorLine INT, @RowCount INT; - SELECT @ErrorMessage = ERROR_MESSAGE(), @ErrorSeverity = ERROR_SEVERITY(), @ErrorState = ERROR_STATE(),@ErrorNumber = ERROR_NUMBER() - , @ErrorLine = ERROR_LINE(), @ErrorProcedure = ERROR_PROCEDURE(), @RowCount = @@RowCount; - IF @ErrorNumber > 0 - BEGIN - IF @ErrorProcedure = OBJECT_NAME(@@PROCID) -- If the Procedure is the current procedure just pass the error message - RAISERROR (@ErrorMessage, @ErrorSeverity, @ErrorState) - ELSE -- Add in the procedure name and line as well as the error number - RAISERROR (N'%s[%d] - (%d) %s', @ErrorSeverity, @ErrorState, @ErrorProcedure, @ErrorLine, @ErrorNumber, @ErrorMessage) - END - ELSE IF @ExpectedCount <> -1 AND @ExpectedCount <> @RowCount - RAISERROR (@MessageFormat, 16, 1, @ExpectedCount, @RowCount) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vlnErrorHandler Succeeded' -ELSE PRINT 'Procedure Creation: vlnErrorHandler Error on Creation' -GO - -/****** Object: StoredProcedure [addAnnotation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addAnnotation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addAnnotation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addAnnotation] - -( - @ItemID int, - @TypeID int, - @RtfText nvarchar(MAX)=null, - @SearchText nvarchar(MAX)=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newAnnotationID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Annotations] - ( - [ItemID], - [TypeID], - [RtfText], - [SearchText], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @ItemID, - @TypeID, - @RtfText, - @SearchText, - @Config, - @DTS, - @UserID - ) - SELECT @newAnnotationID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Annotations] WHERE [AnnotationID]=@newAnnotationID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addAnnotation Succeeded' -ELSE PRINT 'Procedure Creation: addAnnotation Error on Creation' -GO - -/****** Object: StoredProcedure [addAnnotationType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addAnnotationType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addAnnotationType]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addAnnotationType] - -( - @Name nvarchar(100), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newTypeID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [AnnotationTypes] - ( - [Name], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @Name, - @Config, - @DTS, - @UserID - ) - SELECT @newTypeID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [AnnotationTypes] WHERE [TypeID]=@newTypeID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addAnnotationType Succeeded' -ELSE PRINT 'Procedure Creation: addAnnotationType Error on Creation' -GO - -/****** Object: StoredProcedure [addAssignment] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addAssignment]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addAssignment]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addAssignment] - -( - @GID int, - @RID int, - @FolderID int, - @StartDate datetime, - @EndDate datetime=null, - @DTS datetime, - @UsrID nvarchar(100), - @newAID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Assignments] - ( - [GID], - [RID], - [FolderID], - [StartDate], - [EndDate], - [DTS], - [UsrID] - ) - VALUES - ( - @GID, - @RID, - @FolderID, - @StartDate, - @EndDate, - @DTS, - @UsrID - ) - SELECT @newAID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Assignments] WHERE [AID]=@newAID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addAssignment Succeeded' -ELSE PRINT 'Procedure Creation: addAssignment Error on Creation' -GO - -/****** Object: StoredProcedure [addAssociation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addAssociation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addAssociation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addAssociation] - -( - @VersionID int, - @ROFstID int, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newAssociationID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Associations] - ( - [VersionID], - [ROFstID], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @VersionID, - @ROFstID, - @Config, - @DTS, - @UserID - ) - SELECT @newAssociationID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Associations] WHERE [AssociationID]=@newAssociationID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addAssociation Succeeded' -ELSE PRINT 'Procedure Creation: addAssociation Error on Creation' -GO - -/****** Object: StoredProcedure [addConnection] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addConnection]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addConnection]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addConnection] - -( - @Name nvarchar(100)=null, - @Title nvarchar(510)=null, - @ConnectionString nvarchar(510)=null, - @ServerType int, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @newDBID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Connections] - ( - [Name], - [Title], - [ConnectionString], - [ServerType], - [Config], - [DTS], - [UsrID] - ) - VALUES - ( - @Name, - @Title, - @ConnectionString, - @ServerType, - @Config, - @DTS, - @UsrID - ) - SELECT @newDBID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Connections] WHERE [DBID]=@newDBID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addConnection Succeeded' -ELSE PRINT 'Procedure Creation: addConnection Error on Creation' -GO - -/****** Object: StoredProcedure [addContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addContent]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addContent] - -( - @Number nvarchar(256)=null, - @Text nvarchar(MAX)=null, - @Type int=null, - @FormatID int=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newContentID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Contents] - ( - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @Number, - @Text, - @Type, - @FormatID, - @Config, - @DTS, - @UserID - ) - SELECT @newContentID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Contents] WHERE [ContentID]=@newContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addContent Succeeded' -ELSE PRINT 'Procedure Creation: addContent Error on Creation' -GO - -/****** Object: StoredProcedure [addDetail] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addDetail]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addDetail]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addDetail] - -( - @ContentID int, - @ItemType int, - @Text nvarchar(MAX), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newDetailID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Details] - ( - [ContentID], - [ItemType], - [Text], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @ContentID, - @ItemType, - @Text, - @Config, - @DTS, - @UserID - ) - SELECT @newDetailID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Details] WHERE [DetailID]=@newDetailID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addDetail Succeeded' -ELSE PRINT 'Procedure Creation: addDetail Error on Creation' -GO - -/****** Object: StoredProcedure [addDocument] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addDocument]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addDocument]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addDocument] - -( - @LibTitle nvarchar(1024)=null, - @DocContent varbinary(MAX)=null, - @DocAscii nvarchar(MAX)=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @FileExtension nvarchar(10), - @newDocID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Documents] - ( - [LibTitle], - [DocContent], - [DocAscii], - [Config], - [DTS], - [UserID], - [FileExtension] - ) - VALUES - ( - @LibTitle, - @DocContent, - @DocAscii, - @Config, - @DTS, - @UserID, - @FileExtension - ) - SELECT @newDocID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Documents] WHERE [DocID]=@newDocID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addDocument Succeeded' -ELSE PRINT 'Procedure Creation: addDocument Error on Creation' -GO - -/****** Object: StoredProcedure [addDocVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addDocVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addDocVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addDocVersion] - -( - @FolderID int, - @VersionType int, - @Name nvarchar(100), - @Title nvarchar(510)=null, - @ItemID int=null, - @FormatID int=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newVersionID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [DocVersions] - ( - [FolderID], - [VersionType], - [Name], - [Title], - [ItemID], - [FormatID], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @FolderID, - @VersionType, - @Name, - @Title, - @ItemID, - @FormatID, - @Config, - @DTS, - @UserID - ) - SELECT @newVersionID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [DocVersions] WHERE [VersionID]=@newVersionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addDocVersion Succeeded' -ELSE PRINT 'Procedure Creation: addDocVersion Error on Creation' -GO - -/****** Object: StoredProcedure [addDROUsage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addDROUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addDROUsage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addDROUsage] - -( - @DocID int, - @ROID nvarchar(16), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @RODbID int, - @newDROUsageID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [DROUsages] - ( - [DocID], - [ROID], - [Config], - [DTS], - [UserID], - [RODbID] - ) - VALUES - ( - @DocID, - @ROID, - @Config, - @DTS, - @UserID, - @RODbID - ) - SELECT @newDROUsageID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [DROUsages] WHERE [DROUsageID]=@newDROUsageID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addDROUsage Succeeded' -ELSE PRINT 'Procedure Creation: addDROUsage Error on Creation' -GO - -/****** Object: StoredProcedure [addEntry] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addEntry]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addEntry]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addEntry] - -( - @ContentID int, - @DocID int, - @DTS datetime, - @UserID nvarchar(100), - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Entries] - ( - [ContentID], - [DocID], - [DTS], - [UserID] - ) - VALUES - ( - @ContentID, - @DocID, - @DTS, - @UserID - ) - - SELECT @newLastChanged=[LastChanged] - FROM [Entries] WHERE [ContentID]=@ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addEntry Succeeded' -ELSE PRINT 'Procedure Creation: addEntry Error on Creation' -GO - -/****** Object: StoredProcedure [addFigure] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addFigure]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addFigure]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addFigure] - -( - @ROFstID int, - @ImageID int, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newFigureID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Figures] - ( - [ROFstID], - [ImageID], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @ROFstID, - @ImageID, - @Config, - @DTS, - @UserID - ) - SELECT @newFigureID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Figures] WHERE [FigureID]=@newFigureID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addFigure Succeeded' -ELSE PRINT 'Procedure Creation: addFigure Error on Creation' -GO - -/****** Object: StoredProcedure [addFiguresByROFstIDandImageIDs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addFiguresByROFstIDandImageIDs]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addFiguresByROFstIDandImageIDs]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addFiguresByROFstIDandImageIDs] -( - @ROFstID int, - @ImageIDs varchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Figures] - ( [ROFstID] - ,[ImageID] - ,[Config] - ,[DTS] - ,[UserID] - ) - select distinct FF.ROFstID, II.ID ImageID, '' Config, FF.DTS, FF.UserID from ROFsts FF - , vefn_SplitInt(@ImageIDs,',') II - where ROFstID=@ROFstID - - SELECT [FigureID] - ,[ROFstID] - ,[ImageID] - ,[Config] - ,[DTS] - ,[UserID] - ,[LastChanged] - FROM [Figures] - WHERE [ROFstID]=@ROFstID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addFiguresByROFstIDandImageIDs Succeeded' -ELSE PRINT 'Procedure Creation: addFiguresByROFstIDandImageIDs Error on Creation' -GO - -/****** Object: StoredProcedure [addFolder] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addFolder]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addFolder]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addFolder] - -( - @ParentID int, - @DBID int, - @Name nvarchar(100), - @Title nvarchar(510)=null, - @ShortName nvarchar(20), - @FormatID int=null, - @ManualOrder float=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @newFolderID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Folders] - ( - [ParentID], - [DBID], - [Name], - [Title], - [ShortName], - [FormatID], - [ManualOrder], - [Config], - [DTS], - [UsrID] - ) - VALUES - ( - @ParentID, - @DBID, - @Name, - @Title, - @ShortName, - @FormatID, - @ManualOrder, - @Config, - @DTS, - @UsrID - ) - SELECT @newFolderID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Folders] WHERE [FolderID]=@newFolderID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addFolder Succeeded' -ELSE PRINT 'Procedure Creation: addFolder Error on Creation' -GO - -/****** Object: StoredProcedure [addFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addFormat]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addFormat] - -( - @ParentID int, - @Name nvarchar(20), - @Description nvarchar(250)=null, - @Data xml, - @GenMac xml=null, - @DTS datetime, - @UserID nvarchar(100), - @newFormatID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Formats] - ( - [ParentID], - [Name], - [Description], - [Data], - [GenMac], - [DTS], - [UserID] - ) - VALUES - ( - @ParentID, - @Name, - @Description, - @Data, - @GenMac, - @DTS, - @UserID - ) - SELECT @newFormatID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Formats] WHERE [FormatID]=@newFormatID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addFormat Succeeded' -ELSE PRINT 'Procedure Creation: addFormat Error on Creation' -GO - -/****** Object: StoredProcedure [addGrid] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addGrid]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addGrid]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addGrid] - -( - @ContentID int, - @Data xml, - @Config xml=null, - @DTS datetime, - @UserID nvarchar(100), - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Grids] - ( - [ContentID], - [Data], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @ContentID, - @Data, - @Config, - @DTS, - @UserID - ) - - SELECT @newLastChanged=[LastChanged] - FROM [Grids] WHERE [ContentID]=@ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addGrid Succeeded' -ELSE PRINT 'Procedure Creation: addGrid Error on Creation' -GO - -/****** Object: StoredProcedure [addGroup] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addGroup]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addGroup]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addGroup] - -( - @GroupName nvarchar(50), - @GroupType int=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @newGID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Groups] - ( - [GroupName], - [GroupType], - [Config], - [DTS], - [UsrID] - ) - VALUES - ( - @GroupName, - @GroupType, - @Config, - @DTS, - @UsrID - ) - SELECT @newGID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Groups] WHERE [GID]=@newGID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addGroup Succeeded' -ELSE PRINT 'Procedure Creation: addGroup Error on Creation' -GO - -/****** Object: StoredProcedure [addImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addImage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addImage] - -( - @ContentID int, - @ImageType int, - @FileName nvarchar(255), - @Data varbinary(MAX), - @Config xml=null, - @DTS datetime, - @UserID nvarchar(100), - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Images] - ( - [ContentID], - [ImageType], - [FileName], - [Data], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @ContentID, - @ImageType, - @FileName, - @Data, - @Config, - @DTS, - @UserID - ) - - SELECT @newLastChanged=[LastChanged] - FROM [Images] WHERE [ContentID]=@ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addImage Succeeded' -ELSE PRINT 'Procedure Creation: addImage Error on Creation' -GO - -/****** Object: StoredProcedure [addItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addItem] - -( - @PreviousID int=null, - @ContentID int, - @DTS datetime, - @UserID nvarchar(100), - @newItemID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Items] - ( - [PreviousID], - [ContentID], - [DTS], - [UserID] - ) - VALUES - ( - @PreviousID, - @ContentID, - @DTS, - @UserID - ) - SELECT @newItemID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Items] WHERE [ItemID]=@newItemID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addItem Succeeded' -ELSE PRINT 'Procedure Creation: addItem Error on Creation' -GO ---HERE -/****** Object: StoredProcedure [addPart] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addPart]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addPart]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addPart] - -( - @ContentID int, - @FromType int, - @ItemID int, - @DTS datetime, - @UserID nvarchar(100), - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Parts] - ( - [ContentID], - [FromType], - [ItemID], - [DTS], - [UserID] - ) - VALUES - ( - @ContentID, - @FromType, - @ItemID, - @DTS, - @UserID - ) - - SELECT @newLastChanged=[LastChanged] - FROM [Parts] WHERE [ContentID]=@ContentID AND [FromType]=@FromType - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addPart Succeeded' -ELSE PRINT 'Procedure Creation: addPart Error on Creation' -GO - -/****** Object: StoredProcedure [updatePart] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updatePart]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updatePart]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updatePart] - -( - @ContentID int, - @FromType int, - @ItemID int, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Parts] - SET - [ItemID]=@ItemID, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [ContentID]=@ContentID AND [FromType]=@FromType AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Parts] WHERE [ContentID]=@ContentID AND [FromType]=@FromType) - RAISERROR('Part record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Part has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Parts] WHERE [ContentID]=@ContentID AND [FromType]=@FromType - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updatePart Succeeded' -ELSE PRINT 'Procedure Creation: updatePart Error on Creation' -GO - -/****** Object: StoredProcedure [getItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItem] - -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ItemID], - [PreviousID], - [ContentID], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[Items].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[Items].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[Items].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[Items].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[Items].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[Items].[ItemID]) [Transition_ToIDCount] - FROM [Items] - WHERE [ItemID]=@ItemID - - SELECT - [Annotations].[AnnotationID], - [Annotations].[ItemID], - [Annotations].[TypeID], - [Annotations].[RtfText], - [Annotations].[SearchText], - [Annotations].[Config], - [Annotations].[DTS], - [Annotations].[UserID], - [Annotations].[LastChanged], - [AnnotationTypes].[Name] [AnnotationType_Name], - [AnnotationTypes].[Config] [AnnotationType_Config], - [AnnotationTypes].[DTS] [AnnotationType_DTS], - [AnnotationTypes].[UserID] [AnnotationType_UserID] - FROM [Annotations] - JOIN [AnnotationTypes] ON - [AnnotationTypes].[TypeID]=[Annotations].[TypeID] - WHERE - [Annotations].[ItemID]=@ItemID - - - SELECT - [DocVersions].[VersionID], - [DocVersions].[FolderID], - [DocVersions].[VersionType], - [DocVersions].[Name], - [DocVersions].[Title], - [DocVersions].[ItemID], - [DocVersions].[FormatID], - [DocVersions].[Config], - [DocVersions].[DTS], - [DocVersions].[UserID], - [DocVersions].[LastChanged], - [Folders].[ParentID] [Folder_ParentID], - [Folders].[DBID] [Folder_DBID], - [Folders].[Name] [Folder_Name], - [Folders].[Title] [Folder_Title], - [Folders].[ShortName] [Folder_ShortName], - [Folders].[FormatID] [Folder_FormatID], - [Folders].[ManualOrder] [Folder_ManualOrder], - [Folders].[Config] [Folder_Config], - [Folders].[DTS] [Folder_DTS], - [Folders].[UsrID] [Folder_UsrID] - FROM [DocVersions] - JOIN [Folders] ON - [Folders].[FolderID]=[DocVersions].[FolderID] - WHERE - [DocVersions].[ItemID]=@ItemID - - - SELECT - [Parts].[ContentID], - [Parts].[FromType], - [Parts].[ItemID], - [Parts].[DTS], - [Parts].[UserID], - [Parts].[LastChanged], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [Parts] - JOIN [Contents] ON - [Contents].[ContentID]=[Parts].[ContentID] - WHERE - [Parts].[ItemID]=@ItemID - - - SELECT - [Transitions].[TransitionID], - [Transitions].[FromID], - [Transitions].[ToID], - [Transitions].[RangeID], - [Transitions].[IsRange], - [Transitions].[TranType], - [Transitions].[Config], - [Transitions].[DTS], - [Transitions].[UserID], - [Transitions].[LastChanged], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [Transitions] - JOIN [Contents] ON - [Contents].[ContentID]=[Transitions].[FromID] - WHERE - [Transitions].[RangeID]=@ItemID - - - SELECT - [Transitions].[TransitionID], - [Transitions].[FromID], - [Transitions].[ToID], - [Transitions].[RangeID], - [Transitions].[IsRange], - [Transitions].[TranType], - [Transitions].[Config], - [Transitions].[DTS], - [Transitions].[UserID], - [Transitions].[LastChanged], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [Transitions] - JOIN [Contents] ON - [Contents].[ContentID]=[Transitions].[FromID] - WHERE - [Transitions].[ToID]=@ItemID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItem Succeeded' -ELSE PRINT 'Procedure Creation: getItem Error on Creation' -GO - ---HERE - -/****** Object: StoredProcedure [addItemChild] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addItemChild]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addItemChild]; -GO - ---http://www.code-magazine.com/articleprint.aspx?quickid=0305111&page=4&printmode=true ---http://aleemkhan.wordpress.com/2006/07/21/t-sql-error-handling-pattern-for-nested-transactions-and-stored-procedures/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addItemChild] -( - @ItemID int=null, @Number nvarchar(30)=null, @Text nvarchar(MAX)=null, @FormatID int=null, @Config nvarchar(MAX)=null, - @FromType int=null, @Type int=null, @DTS datetime, @UserID nvarchar(100), @newItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @ChildID int, @ContentID int, @ParentContentID int, @LastChanged timestamp - , @newLastChanged timestamp, @Error int, @Rowcount int, @ChildDeleted int - SELECT @ChildID = pp.[ItemID],@ParentContentID = ii.ContentID, @LastChanged = pp.LastChanged - FROM [ITEMS] ii - LEFT JOIN [PARTS] pp on pp.ContentID=ii.ContentID and pp.FromType=@FromType - WHERE ii.[ItemID]=@ItemID - IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[tblParts]') AND OBJECTPROPERTY(id,N'IsTable') = 1) - BEGIN - SELECT @ChildDeleted = pp.[ItemID],@ParentContentID = ii.ContentID, @LastChanged = pp.LastChanged - FROM [ITEMS] ii - LEFT JOIN [tblPARTS] pp on pp.ContentID=ii.ContentID and pp.FromType=@FromType - WHERE ii.[ItemID]=@ItemID and pp.DeleteStatus > 0 - END - EXECUTE AddContent @Number, @Text, @Type, @FormatID, @Config, @DTS, @UserID, @ContentID output, @newLastChanged output - EXECUTE AddItem null, @ContentID, @DTS, @UserID , @newItemID output, @newLastChanged output - IF @ChildID is null -- No existing child - Add Parts record - BEGIN - IF @ChildDeleted is not null - BEGIN --- INSERT INTO [PartAudits] ([ContentID],[FromType],[ItemID],[DTS],[UserID],[DeleteStatus]) --- SELECT [ContentID],[FromType],[ItemID],[DTS],[UserID],[DeleteStatus] FROM [tblParts] --- WHERE ItemID = @ChildDeleted - DELETE FROM [tblParts] WHERE ItemID = @ChildDeleted - END - EXECUTE AddPart @ParentContentID, @FromType, @newItemID, @DTS, @UserID, @newLastChanged output - END - ELSE -- Update existing Parts record - BEGIN - EXECUTE UpdatePart @ParentContentID, @FromType, @newItemID, @DTS, @UserID, @LastChanged, @newLastChanged output - UPDATE [Items] SET [PreviousID]=@newItemID WHERE [ItemID]=@ChildID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@newItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TT.ToID = @ChildID OR TT.RangeID = @ChildID - -- Update transitions that pointed to @ItemID to point to @newItemID - Update TRANSITIONS - Set ToID = CASE ToID WHEN @ChildID THEN @newItemID ELSE ToID END, - RangeID = CASE RangeID WHEN @ChildID THEN @newItemID ELSE RangeID END - WHERE ToID = @ChildID OR RangeID = @ChildID - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - -- I don't expect to see any transitions that point to @ChildID. They should have changed in - -- the update above to point to @newItemID. This is here for consistency with the other insert - -- stored procedures - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@ChildID,@newItemID) OR RangeID IN(@ChildID,@newItemID)) - -- Transition Text gets updated in ItemInsertExt.cs - END - IF( @@TRANCOUNT > 0 ) COMMIT - PRINT 'Child Added ' + ltrim(str(@newItemID)) - EXECUTE GetItem @newItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addItemChild Succeeded' -ELSE PRINT 'Procedure Creation: addItemChild Error on Creation' -GO - -/****** Object: StoredProcedure [addItemSiblingAfter] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addItemSiblingAfter]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addItemSiblingAfter]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addItemSiblingAfter] -( - @ItemID int=null, @Number nvarchar(30)=null, @Text nvarchar(MAX)=null, @FormatID int=null, @Config nvarchar(MAX)=null, - @Type int=null, @DTS datetime, @UserID nvarchar(100), @newItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @NextID int, @ContentID int, @newLastChanged timestamp, @NewType int - SELECT @NewType=ISNULL(@Type,[Type]) - FROM [ITEMS] II JOIN [CONTENTS] CC ON II.[ContentID]=CC.[ContentID] - WHERE [ItemID]=@ItemID - SELECT @NextID = [ItemID] - FROM [ITEMS] - WHERE [PreviousID]=@ItemID - EXECUTE AddContent @Number, @Text, @NewType, @FormatID, @Config, @DTS, @UserID, @ContentID output, @newLastChanged output - EXECUTE AddItem @ItemID, @ContentID, @DTS, @UserID , @newItemID output, @newLastChanged output - UPDATE [ITEMS] SET [PreviousID]=@newItemID, [DTS]=@DTS, [UserID]=@UserID where [ItemID]=@NextID -- Should be UpdateItem - -- Get a list of Transitions which need to change children of @ItemID that point to @NextID - DECLARE @NextStepTransitions TABLE - ( - [TransitionID] int PRIMARY KEY, - [FromID] [int], - [ToID] [int], - [RangeID] [int], - [TranType] [int], - [Config] [nvarchar](max) - ) - Insert into @NextStepTransitions select * from vefn_NextStepTransitions(@NextID,@ItemID) - IF (SELECT COUNT(*) from @NextStepTransitions) > 0 -- Next Step Transitions - BEGIN - -- Update all transitions in the list to point to @newItemID - Update TT - Set TT.ToID = CASE TT.ToID WHEN @NextID THEN @newItemID ELSE TT.ToID END, - TT.RangeID = CASE TT.RangeID WHEN @NextID THEN @newItemID ELSE TT.RangeID END - From TRANSITIONS TT - JOIN @NextStepTransitions NS ON NS.TransitionID = TT.TransitionID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,NS.TransitionID,NS.TranType,NS.ToID,NS.RangeID,@NextID,@newItemID) - From CONTENTS CC - JOIN @NextStepTransitions NS ON NS.FromID = CC.ContentID - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Next Step Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@newItemID) OR RangeID IN(@newItemID)) - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@NextID) OR RangeID IN(@NextID)) - -- Transition Text gets updated in ItemInsertExt.cs - IF( @@TRANCOUNT > 0 ) COMMIT - EXECUTE GetItem @newItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addItemSiblingAfter Succeeded' -ELSE PRINT 'Procedure Creation: addItemSiblingAfter Error on Creation' -GO - -/****** Object: StoredProcedure [addItemSiblingBefore] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addItemSiblingBefore]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addItemSiblingBefore]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addItemSiblingBefore] -( - @ItemID int=null, @Number nvarchar(30)=null, @Text nvarchar(MAX)=null, @FormatID int=null, @Config nvarchar(MAX)=null, - @Type int=null, @DTS datetime, @UserID nvarchar(100), @newItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @PreviousID int, @ContentID int, @newLastChanged timestamp, @NewType int - SELECT @PreviousID = [PreviousID], @NewType=ISNULL(@Type,[Type]) - FROM [ITEMS] II - JOIN [CONTENTS] CC ON CC.[ContentID]=II.[CONTENTID] - WHERE [ItemID]=@ItemID - EXECUTE AddContent @Number, @Text, @NewType, @FormatID, @Config, @DTS, @UserID, @ContentID output, @newLastChanged output - EXECUTE AddItem @PreviousID, @ContentID, @DTS, @UserID , @newItemID output, @newLastChanged output - UPDATE [ITEMS] SET [PreviousID]=@newItemID where [ItemID]=@ItemID -- Should be UpdateItem - UPDATE [PARTS] SET [ItemID]=@newItemID where [ItemID]=@ItemID -- Should be UpdatePart - IF @PreviousID is null -- The step is replacing the first step - BEGIN - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@newItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TT.ToID = @ItemID OR TT.RangeID = @ItemID - -- Update transitions that pointed to @ItemID to point to @newItemID - Update TRANSITIONS - Set ToID = CASE ToID WHEN @ItemID THEN @newItemID ELSE ToID END, - RangeID = CASE RangeID WHEN @ItemID THEN @newItemID ELSE RangeID END - WHERE ToID = @ItemID OR RangeID = @ItemID - END - ELSE -- Check for Transitions that point to the Next Step - BEGIN - -- Get a list of Transitions which need to change children of @ItemID that point to @NextID - DECLARE @NextStepTransitions TABLE - ( - [TransitionID] int PRIMARY KEY, - [FromID] [int], - [ToID] [int], - [RangeID] [int], - [TranType] [int], - [Config] [nvarchar](max) - ) - Insert into @NextStepTransitions select * from vefn_NextStepTransitions(@ItemID,@PreviousID) - IF (SELECT COUNT(*) from @NextStepTransitions) > 0 -- Next Step Transitions - BEGIN - -- Update all transitions in the list to point to @newItemID - Update TT - Set TT.ToID = CASE TT.ToID WHEN @ItemID THEN @newItemID ELSE TT.ToID END, - TT.RangeID = CASE TT.RangeID WHEN @ItemID THEN @newItemID ELSE TT.RangeID END - From TRANSITIONS TT - JOIN @NextStepTransitions NS ON NS.TransitionID = TT.TransitionID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,NS.TransitionID,NS.TranType,NS.ToID,NS.RangeID,@ItemID,@newItemID) - From CONTENTS CC - JOIN @NextStepTransitions NS ON NS.FromID = CC.ContentID - END - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@ItemID,@newItemID) OR RangeID IN(@ItemID,@newItemID)) - -- Transition Text gets updated in ItemInsertExt.cs - IF( @@TRANCOUNT > 0 ) COMMIT - PRINT 'Sibling Added Before ' + ltrim(str(@newItemID)) - EXECUTE GetItem @newItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addItemSiblingBefore Succeeded' -ELSE PRINT 'Procedure Creation: addItemSiblingBefore Error on Creation' -GO - -/****** Object: StoredProcedure [addMembership] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addMembership]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addMembership]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addMembership] - -( - @UID int, - @GID int, - @StartDate datetime, - @EndDate datetime=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @newUGID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Memberships] - ( - [UID], - [GID], - [StartDate], - [EndDate], - [Config], - [DTS], - [UsrID] - ) - VALUES - ( - @UID, - @GID, - @StartDate, - @EndDate, - @Config, - @DTS, - @UsrID - ) - SELECT @newUGID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Memberships] WHERE [UGID]=@newUGID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addMembership Succeeded' -ELSE PRINT 'Procedure Creation: addMembership Error on Creation' -GO - -/****** Object: StoredProcedure [addPdf] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addPdf]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addPdf]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addPdf] - -( - @DocID int, - @DebugStatus int, - @TopRow int, - @PageLength int, - @LeftMargin int, - @PageWidth int, - @PageCount float, - @DocPdf varbinary(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Pdfs] - ( - [DocID], - [DebugStatus], - [TopRow], - [PageLength], - [LeftMargin], - [PageWidth], - [PageCount], - [DocPdf], - [DTS], - [UserID] - ) - VALUES - ( - @DocID, - @DebugStatus, - @TopRow, - @PageLength, - @LeftMargin, - @PageWidth, - @PageCount, - @DocPdf, - @DTS, - @UserID - ) - - SELECT @newLastChanged=[LastChanged] - FROM [Pdfs] WHERE [DocID]=@DocID AND [DebugStatus]=@DebugStatus AND [TopRow]=@TopRow AND [PageLength]=@PageLength AND [LeftMargin]=@LeftMargin AND [PageWidth]=@PageWidth - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addPdf Succeeded' -ELSE PRINT 'Procedure Creation: addPdf Error on Creation' -GO - -/****** Object: StoredProcedure [addPermission] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addPermission]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addPermission]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addPermission] - -( - @RID int, - @PermLevel int, - @VersionType int, - @PermValue int, - @PermAD int, - @StartDate datetime, - @EndDate datetime=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @newPID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Permissions] - ( - [RID], - [PermLevel], - [VersionType], - [PermValue], - [PermAD], - [StartDate], - [EndDate], - [Config], - [DTS], - [UsrID] - ) - VALUES - ( - @RID, - @PermLevel, - @VersionType, - @PermValue, - @PermAD, - @StartDate, - @EndDate, - @Config, - @DTS, - @UsrID - ) - SELECT @newPID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Permissions] WHERE [PID]=@newPID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addPermission Succeeded' -ELSE PRINT 'Procedure Creation: addPermission Error on Creation' -GO - -/****** Object: StoredProcedure [addRODb] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addRODb]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addRODb]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addRODb] - -( - @ROName nvarchar(255), - @FolderPath nvarchar(255), - @DBConnectionString nvarchar(MAX), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newRODbID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [RODbs] - ( - [ROName], - [FolderPath], - [DBConnectionString], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @ROName, - @FolderPath, - @DBConnectionString, - @Config, - @DTS, - @UserID - ) - SELECT @newRODbID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [RODbs] WHERE [RODbID]=@newRODbID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addRODb Succeeded' -ELSE PRINT 'Procedure Creation: addRODb Error on Creation' -GO - -/****** Object: StoredProcedure [addROFst] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addROFst]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addROFst]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addROFst] - -( - @RODbID int, - @ROLookup varbinary(MAX), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newROFstID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [ROFsts] - ( - [RODbID], - [ROLookup], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @RODbID, - @ROLookup, - @Config, - @DTS, - @UserID - ) - SELECT @newROFstID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [ROFsts] WHERE [ROFstID]=@newROFstID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addROFst Succeeded' -ELSE PRINT 'Procedure Creation: addROFst Error on Creation' -GO - -/****** Object: StoredProcedure [addROImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addROImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addROImage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addROImage] - -( - @RODbID int, - @FileName nvarchar(255), - @Content varbinary(MAX), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newImageID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [ROImages] - ( - [RODbID], - [FileName], - [Content], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @RODbID, - @FileName, - @Content, - @Config, - @DTS, - @UserID - ) - SELECT @newImageID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [ROImages] WHERE [ImageID]=@newImageID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addROImage Succeeded' -ELSE PRINT 'Procedure Creation: addROImage Error on Creation' -GO - -/****** Object: StoredProcedure [addRole] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addRole]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addRole]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addRole] - -( - @Name nvarchar(50), - @Title nvarchar(250), - @DTS datetime, - @UsrID nvarchar(100), - @newRID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Roles] - ( - [Name], - [Title], - [DTS], - [UsrID] - ) - VALUES - ( - @Name, - @Title, - @DTS, - @UsrID - ) - SELECT @newRID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Roles] WHERE [RID]=@newRID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addRole Succeeded' -ELSE PRINT 'Procedure Creation: addRole Error on Creation' -GO - -/****** Object: StoredProcedure [addRoUsage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addRoUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addRoUsage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addRoUsage] - -( - @ContentID int, - @ROID nvarchar(16), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @RODbID int, - @newROUsageID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [RoUsages] - ( - [ContentID], - [ROID], - [Config], - [DTS], - [UserID], - [RODbID] - ) - VALUES - ( - @ContentID, - @ROID, - @Config, - @DTS, - @UserID, - @RODbID - ) - SELECT @newROUsageID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [RoUsages] WHERE [ROUsageID]=@newROUsageID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addRoUsage Succeeded' -ELSE PRINT 'Procedure Creation: addRoUsage Error on Creation' -GO - -/****** Object: StoredProcedure [addTransition] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addTransition]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addTransition]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addTransition] - -( - @FromID int, - @ToID int, - @RangeID int, - @IsRange int, - @TranType int, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newTransitionID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Transitions] - ( - [FromID], - [ToID], - [RangeID], - [IsRange], - [TranType], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @FromID, - @ToID, - @RangeID, - @IsRange, - @TranType, - @Config, - @DTS, - @UserID - ) - SELECT @newTransitionID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Transitions] WHERE [TransitionID]=@newTransitionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addTransition Succeeded' -ELSE PRINT 'Procedure Creation: addTransition Error on Creation' -GO - -/****** Object: StoredProcedure [addUser] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addUser]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addUser]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addUser] - -( - @UserID nvarchar(100), - @FirstName nvarchar(50)=null, - @MiddleName nvarchar(50)=null, - @LastName nvarchar(50)=null, - @Suffix nvarchar(10)=null, - @CourtesyTitle nvarchar(10)=null, - @PhoneNumber nvarchar(30)=null, - @CFGName nvarchar(8)=null, - @UserLogin nvarchar(10)=null, - @UserName nvarchar(32)=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @newUID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Users] - ( - [UserID], - [FirstName], - [MiddleName], - [LastName], - [Suffix], - [CourtesyTitle], - [PhoneNumber], - [CFGName], - [UserLogin], - [UserName], - [Config], - [DTS], - [UsrID] - ) - VALUES - ( - @UserID, - @FirstName, - @MiddleName, - @LastName, - @Suffix, - @CourtesyTitle, - @PhoneNumber, - @CFGName, - @UserLogin, - @UserName, - @Config, - @DTS, - @UsrID - ) - SELECT @newUID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Users] WHERE [UID]=@newUID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addUser Succeeded' -ELSE PRINT 'Procedure Creation: addUser Error on Creation' -GO - -/****** Object: StoredProcedure [addZContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addZContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addZContent]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addZContent] - -( - @ContentID int, - @OldStepSequence nvarchar(32), - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [ZContents] - ( - [ContentID], - [OldStepSequence] - ) - VALUES - ( - @ContentID, - @OldStepSequence - ) - - SELECT @newLastChanged=[LastChanged] - FROM [ZContents] WHERE [ContentID]=@ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addZContent Succeeded' -ELSE PRINT 'Procedure Creation: addZContent Error on Creation' -GO - -/****** Object: StoredProcedure [addZTransition] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addZTransition]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addZTransition]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addZTransition] - -( - @TransitionID int, - @Oldto nvarchar(32), - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [ZTransitions] - ( - [TransitionID], - [oldto] - ) - VALUES - ( - @TransitionID, - @Oldto - ) - - SELECT @newLastChanged=[LastChanged] - FROM [ZTransitions] WHERE [TransitionID]=@TransitionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addZTransition Succeeded' -ELSE PRINT 'Procedure Creation: addZTransition Error on Creation' -GO - -/****** Object: StoredProcedure [CopyItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[CopyItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [CopyItemAndChildren]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[CopyItemAndChildren] -( - @StartItemID INT, - @DestFormatID INT, - @UserID NVARCHAR(100), - @NewStartItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - ---+-----------------------------------------------------------------+ --- BEGIN TRANSACTION to make these changes temporary ---+-----------------------------------------------------------------+ - BEGIN TRANSACTION - -DECLARE @Children AS TABLE -( - ItemID INT PRIMARY KEY, - NewItemID INT, - ContentID INT, - NewContentID INT, - FormatID INT, - NewFormatID INT -) -DECLARE @NewDocuments AS TABLE -( - DocID INT PRIMARY KEY, - NewDocID INT -) --- Locals -DECLARE @DTS DATETIME -- DTS of all New Items -SET @DTS = GETDATE() -- Get the current Date and Time --- Get a list of all of the Items to be copied based upon StartItemID and EndItemID --- If the StartItemID = EndItemID then it is a single item and it's children -INSERT INTO @Children SELECT ItemID,ItemID,ContentID,ContentID,FormatID,FormatID FROM vefn_ChildItemsRange(@StartItemID,@StartItemID,null) --- <<< Copy Contents >>> --- Create new content rows to match the existing rows. Set the type to the Current ContentID temporarily --- so that the new content rows can be associated with the existing content rows. -INSERT INTO Contents - ([Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID]) - select [Number],[Text],[ContentID],[FormatID],[Config],@DTS,@UserID - from Contents where ContentID in(Select ContentID from @Children) --- Update the @Children with the NewConentIDs -UPDATE NN set NN.NewContentID = CC.ContentID -From Contents CC -Join @Children NN on NN.ContentID = CC.Type AND CC.DTS = @DTS and CC.UserID = @UserID --- Reset the Type column in the Contents table with the Type column from the original Records. -UPDATE CC set CC.Type = CC2.Type -From Contents CC -Join @Children NN on NN.NewContentID = CC.ContentID -Join Contents CC2 on NN.ContentID = CC2.ContentID --- Contents are done - -- SELECT * From Contents where DTS = @DTS and UserID = @UserID --- <<< Copy Grids >>> -INSERT INTO [Grids]([ContentID],[Data],[Config],[DTS],[UserID]) - SELECT NN.[NewContentID],[Data],[Config],@DTS,@UserID - FROM [Grids] GG Join @Children NN on GG.ContentID = NN.ContentID --- <<< Copy Images >>> -INSERT INTO [Images]([ContentID],[ImageType],[FileName],[Data],[Config],[DTS],[UserID]) - SELECT NN.[NewContentID],[ImageType],[FileName],[Data],[Config],@DTS,@UserID - FROM [Images] II Join @Children NN on II.ContentID = NN.ContentID --- Create new item rows based upon the current item rows and the @Children table, with the NewContentIDs -INSERT INTO [Items] ([PreviousID],[ContentID],[DTS],[UserID]) - SELECT II.[PreviousID], -- Leave the PreviousID as is for now - NN.NewContentID, @DTS, @UserID - from @Children NN - join Items II on II.ContentID = NN.ContentID --- Update the @Children with the NewItemIDs -UPDATE NN set NN.NewItemID = II.ItemID -From Items II -Join @Children NN on NN.NewContentID = II.ContentID AND II.DTS = @DTS and II.UserID = @UserID -DECLARE @NewItemID int -SELECT @NewItemID = NewItemID - FROM @Children - WHERE ItemID = @StartItemID -UPDATE NN SET NN.[NewFormatID] = CC.[FormatID] - FROM @Children NN - Join vefn_ChildItemsRange(@NewItemID,@NewItemID,@DestFormatID) CC - ON NN.NewItemID = CC.ItemID --- The @Children table is now complete - --SELECT * From @Children --- Update the PreviousID in the new Item rows, to the new ItemIDs based upon the old ItemIDs -Update II Set II.[PreviousID] = NN.NewItemID -from Items II -Join @Children NN on NN.ItemID = II.PreviousID AND II.DTS = @DTS and II.UserID = @UserID --- Get the new ItemIDs based upon the old ItemIDs -SELECT @NewStartItemID = NewItemID from @Children where ItemID = @StartItemID ---SELECT @NewEndItemID = NewItemID from @Children where ItemID = @EndItemID --- Set the PreviousID for the starting Item to null temporarily. --- This will be adjusted based upon where the step is inserted. -Update Items Set PreviousID = null where ItemID = @NewStartItemID --- Items are done - --SELECT * From Items where DTS = @DTS and UserID = @UserID --- <<< Copy Parts >>> -INSERT INTO [Parts] ([ContentID],[FromType],[ItemID],[DTS],[UserID]) -Select NNF.NewContentID,[FromType],NNT.NewItemID, @DTS, @UserID from Parts PP -JOIN @Children NNF on PP.ContentID = NNF.ContentID -JOIN @Children NNT on PP.ItemID = NNT.ItemID --- Parts are done - -- SELECT * From Parts where DTS = @DTS and UserID = @UserID --- <<< Copy Annotations >>> -INSERT INTO [Annotations] ([ItemID],[TypeID],[RtfText],[SearchText],[Config],[DTS],[UserID]) - Select NewItemID, TypeID, RtfText, SearchText, Config, @DTS, @UserID - from Annotations AA Join @Children NN on AA.ItemID = NN.ItemID --- Annotations are done - -- SELECT * From Annotations where DTS = @DTS and UserID = @UserID --- <<< Copy Documents and Entries>>> --- logic to create Entries for Library Documents -INSERT INTO [Entries] ([ContentID],[DocID],[DTS],[UserID]) - SELECT NN.[NewContentID],EE.[DocID],@DTS,@UserID - FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID - JOIN [Documents] DD on EE.[DocID] = DD.[DocID] and Isnull(LibTitle,'') <> '' --- Logic to create new documents for any documents used that do not have libtitles -INSERT INTO [Documents] ([LibTitle],[DocContent],[DocAscii],[Config],[DTS],[UserID],[FileExtension]) - OUTPUT CAST(INSERTED.[LibTitle] as INT),INSERTED.[DocID] INTO @NewDocuments - SELECT str(DD.[DocID]),[DocContent],[DocAscii],[Config],@DTS,@UserID,[FileExtension] - FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID - JOIN [Documents] DD on EE.[DocID] = DD.[DocID] and Isnull(LibTitle,'') = '' -UPDATE DD SET LibTitle = '' - FROM Documents DD JOIN @NewDocuments ND on DD.[DocID] = ND.[NewDocID] - where DTS = @DTS and UserID = @UserID --- Documents are Done - -- SELECT * From Documents where DTS = @DTS and UserID = @UserID --- Logic to create entries for these newly created documents -INSERT INTO [Entries] ([ContentID],[DocID],[DTS],[UserID]) - SELECT NN.[NewContentID],ND.[NewDocID],@DTS,@UserID - FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID - JOIN @NewDocuments ND on EE.[DocID] = ND.[DocID] --- Logic to Create DROUsages for these newly created documents -INSERT INTO [DROUsages] ([DocID],[ROID],[Config],[DTS],[UserID],[RODbID]) - SELECT ND.[NewDocID],[ROID],[Config],@DTS,@UserID,[RODbID] - FROM [DROUsages] RR - JOIN @NewDocuments ND on RR.[DocID] = ND.[DocID] - --- Entries are done - -- SELECT * From Entries EE JOIN Documents DD on ee.DocID = DD.DocID where EE.DTS = @DTS and EE.UserID = @UserID --- <<< Copy RoUsages >>> -INSERT INTO [RoUsages] ([ContentID],[ROID],[Config],[DTS],[UserID],[RODbID]) - SELECT NN.[NewContentID],CAST([ROUsageID] as nvarchar(16)),[Config],@DTS,@UserID,[RODbID] - FROM [RoUsages] RR Join @Children NN on RR.ContentID = NN.ContentID --- Update content records for newly copied records to use correct RO usage ids in the RO tags -DECLARE @RowsAffected int -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN - UPDATE CC SET [TEXT] = C2.NewText - FROM CONTENTS CC - JOIN (SELECT C1.ContentID, .dbo.vefn_FixROText(C1.Text, CAST([ROID] as int), [ROUsageID]) NewText - FROM CONTENTS C1 - JOIN @Children NN on C1.ContentID = NN.NewContentID - JOIN RoUsages RO on NN.NewContentID = RO.ContentID) C2 ON CC.ContentID = C2.ContentID - WHERE [TEXT] <> C2.NewText - SET @RowsAffected = @@RowCount -END --- Update grid records for newly copied records to use correct RO usage ids in the RO tags -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN - UPDATE GG SET [Data] = G2.NewData - FROM GRIDS GG - JOIN (SELECT G1.ContentID, .dbo.vefn_FixROData(G1.Data, CAST([ROID] as int), [ROUsageID]) NewData - FROM GRIDS G1 - JOIN @Children NN on G1.ContentID = NN.NewContentID - JOIN RoUsages RO on NN.NewContentID = RO.ContentID) G2 ON GG.ContentID = G2.ContentID - WHERE Cast([Data] as varchar(max)) <> cast(G2.NewData as varchar(max)) - SET @RowsAffected = @@RowCount -END -UPDATE RON SET [ROID] = ROO.[ROID] - FROM RoUsages RON - JOIN @Children NN on RON.ContentID = NN.NewContentID - JOIN RoUsages ROO on CAST(RON.ROID as int) = ROO.RoUsageID - --- RoUsages are done - -- SELECT * From RoUsages where DTS = @DTS and UserID = @UserID - --- <<< Copy Transtions >>> --- Note that the inserted record has the 'TranType' field set to old transitionid. This is done --- so that the next step can replace the old transitionid with the new transitionid in the --- content record's transition tokens. The TranType gets reset after the content records are --- updated. --- Also note that the 'toid/rangeid' may need converted to newly copied ids or may not. If it's --- not a range, then it always is converted to new, if there is a new. If it's a range, both --- the toid & the rangeid must be new in order for the conversion to be correct. You cannot --- have part of the range pointing to the new and part of the range pointing to the original --- locations. - -INSERT INTO .[dbo].[Transitions] ([FromID],[ToID],[RangeID],[IsRange],[TranType],[Config],[DTS],[UserID]) - SELECT NNF.[NewContentID], - -- if both toid & range are null, use the original toid & rangeid - CASE WHEN NNT.[NewItemID] is null or NNR.[NewItemID] is null THEN [ToID] ELSE NNT.[NewItemID] END, - CASE WHEN NNT.[NewItemID] is null or NNR.[NewItemID] is null THEN [RangeID] ELSE NNR.[NewItemID] END, - [IsRange],[TransitionID],[Config],@DTS,@UserID - FROM .[dbo].[Transitions] TT - JOIN @Children NNF on TT.[FromID] = NNF.[ContentID] - LEFT JOIN @Children NNT on TT.[ToID] = NNT.[ItemID] - LEFT JOIN @Children NNR on TT.[RangeID] = NNR.[ItemID] --- -- Update content records for newly copied records to use correct TransitionIDs in the Transition tags -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN -UPDATE CC SET [TEXT] = C2.NewText - FROM CONTENTS CC - JOIN (SELECT C1.ContentID, .dbo.vefn_FixTransitionTextForCopy(C1.Text, TRO.TransitionID, TRO.TranType, TRO.[ToID], TRO.[RangeID],TR.[TransitionID], TR.[ToID], TR.[RangeID], .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)) NewText - FROM CONTENTS C1 - JOIN @Children NN on C1.ContentID = NN.NewContentID - JOIN Transitions TR on NN.NewContentID = TR.FromID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID) C2 ON CC.ContentID = C2.ContentID - WHERE [TEXT] <> C2.NewText - SET @RowsAffected = @@RowCount -END --- -- Update grid records for newly copied records to use correct TransitionIDs in the Transition tags -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN -UPDATE GG SET [DATA] = G2.NewData - FROM GRIDS GG - JOIN (SELECT G1.ContentID, .dbo.vefn_FixTransitionDataForCopy(G1.Data, TRO.TransitionID, TRO.TranType, TRO.[ToID], TRO.[RangeID],TR.[TransitionID], TR.[ToID], TR.[RangeID], .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)) NewData - FROM GRIDS G1 - JOIN @Children NN on G1.ContentID = NN.NewContentID - JOIN Transitions TR on NN.NewContentID = TR.FromID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID) G2 ON GG.ContentID = G2.ContentID - WHERE Cast([DATA] as varchar(max)) <> CAST(G2.NewData as varchar(max)) - SET @RowsAffected = @@RowCount -END --- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition whose transition format changes -INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT NN.NewItemID, @typeID,'Verify Transition Format',@UserID - FROM Transitions TR - JOIN @Children NN on TR.FromID = NN.NewContentID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID - WHERE .dbo.vefn_CompareTranFormat(NN.FormatID, NN.NewFormatID, TRO.TranType) <> 0 -UPDATE TR SET TR.[TranType] = .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType) - FROM Transitions TR - JOIN @Children NN on TR.FromID = NN.NewContentID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID --- Transitions are done - -- SELECT * From Transitions where DTS = @DTS and UserID = @UserID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: CopyItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: CopyItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [deleteAllPdfs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteAllPdfs]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteAllPdfs]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteAllPdfs] - -( - @DocID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Pdfs] - WHERE [DocID] = @DocID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteAllPdfs Succeeded' -ELSE PRINT 'Procedure Creation: deleteAllPdfs Error on Creation' -GO - -/****** Object: StoredProcedure [deleteAnnotation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteAnnotation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteAnnotation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteAnnotation] - -( - @AnnotationID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Annotations] - WHERE [AnnotationID] = @AnnotationID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteAnnotation Succeeded' -ELSE PRINT 'Procedure Creation: deleteAnnotation Error on Creation' -GO - -/****** Object: StoredProcedure [deleteAnnotationType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteAnnotationType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteAnnotationType]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteAnnotationType] - -( - @TypeID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Annotations] - WHERE [TypeID]=@TypeID - DELETE [AnnotationTypes] - WHERE [TypeID] = @TypeID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteAnnotationType Succeeded' -ELSE PRINT 'Procedure Creation: deleteAnnotationType Error on Creation' -GO - -/****** Object: StoredProcedure [deleteAssignment] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteAssignment]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteAssignment]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteAssignment] - -( - @AID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Assignments] - WHERE [AID] = @AID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteAssignment Succeeded' -ELSE PRINT 'Procedure Creation: deleteAssignment Error on Creation' -GO - -/****** Object: StoredProcedure [deleteAssociation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteAssociation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteAssociation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteAssociation] - -( - @AssociationID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Associations] - WHERE [AssociationID] = @AssociationID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteAssociation Succeeded' -ELSE PRINT 'Procedure Creation: deleteAssociation Error on Creation' -GO - -/****** Object: StoredProcedure [deleteConnection] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteConnection]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteConnection]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteConnection] - -( - @DBID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Folders] - WHERE [DBID]=@DBID - DELETE [Connections] - WHERE [DBID] = @DBID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteConnection Succeeded' -ELSE PRINT 'Procedure Creation: deleteConnection Error on Creation' -GO - -/****** Object: StoredProcedure [deleteContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteContent]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteContent] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Details] - WHERE [ContentID]=@ContentID - DELETE [Entries] - WHERE [ContentID]=@ContentID - DELETE [Grids] - WHERE [ContentID]=@ContentID - DELETE [Images] - WHERE [ContentID]=@ContentID - DELETE [Items] - WHERE [ContentID]=@ContentID - DELETE [Parts] - WHERE [ContentID]=@ContentID - DELETE [RoUsages] - WHERE [ContentID]=@ContentID - DELETE [Transitions] - WHERE [FromID]=@ContentID - DELETE [ZContents] - WHERE [ContentID]=@ContentID - DELETE [Contents] - WHERE [ContentID] = @ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteContent Succeeded' -ELSE PRINT 'Procedure Creation: deleteContent Error on Creation' -GO - -/****** Object: StoredProcedure [deleteDetail] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteDetail]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteDetail]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteDetail] - -( - @DetailID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Details] - WHERE [DetailID] = @DetailID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteDetail Succeeded' -ELSE PRINT 'Procedure Creation: deleteDetail Error on Creation' -GO - -/****** Object: StoredProcedure [deleteDocument] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteDocument]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteDocument]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteDocument] - -( - @DocID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [DROUsages] - WHERE [DocID]=@DocID - DELETE [Entries] - WHERE [DocID]=@DocID - DELETE [Pdfs] - WHERE [DocID]=@DocID - DELETE [Documents] - WHERE [DocID] = @DocID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteDocument Succeeded' -ELSE PRINT 'Procedure Creation: deleteDocument Error on Creation' -GO - -/****** Object: StoredProcedure [deleteDocVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteDocVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteDocVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteDocVersion] - -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Associations] - WHERE [VersionID]=@VersionID - DELETE [DocVersions] - WHERE [VersionID] = @VersionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteDocVersion Succeeded' -ELSE PRINT 'Procedure Creation: deleteDocVersion Error on Creation' -GO - -/****** Object: StoredProcedure [deleteDROUsage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteDROUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteDROUsage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteDROUsage] - -( - @DROUsageID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [DROUsages] - WHERE [DROUsageID] = @DROUsageID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteDROUsage Succeeded' -ELSE PRINT 'Procedure Creation: deleteDROUsage Error on Creation' -GO - -/****** Object: StoredProcedure [deleteEntry] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteEntry]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteEntry]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteEntry] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Entries] - WHERE [ContentID] = @ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteEntry Succeeded' -ELSE PRINT 'Procedure Creation: deleteEntry Error on Creation' -GO - -/****** Object: StoredProcedure [deleteFigure] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteFigure]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteFigure]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteFigure] - -( - @FigureID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Figures] - WHERE [FigureID] = @FigureID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteFigure Succeeded' -ELSE PRINT 'Procedure Creation: deleteFigure Error on Creation' -GO - -/****** Object: StoredProcedure [deleteFolder] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteFolder]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteFolder]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteFolder] - -( - @FolderID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Assignments] - WHERE [FolderID]=@FolderID - DELETE [DocVersions] - WHERE [FolderID]=@FolderID - DELETE [Folders] - WHERE [FolderID] = @FolderID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteFolder Succeeded' -ELSE PRINT 'Procedure Creation: deleteFolder Error on Creation' -GO - -/****** Object: StoredProcedure [deleteFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteFormat]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteFormat] - -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Contents] - WHERE [FormatID]=@FormatID - DELETE [DocVersions] - WHERE [FormatID]=@FormatID - DELETE [Folders] - WHERE [FormatID]=@FormatID - DELETE [Formats] - WHERE [FormatID] = @FormatID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteFormat Succeeded' -ELSE PRINT 'Procedure Creation: deleteFormat Error on Creation' -GO - -/****** Object: StoredProcedure [deleteGrid] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteGrid]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteGrid]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteGrid] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Grids] - WHERE [ContentID] = @ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteGrid Succeeded' -ELSE PRINT 'Procedure Creation: deleteGrid Error on Creation' -GO - -/****** Object: StoredProcedure [deleteGroup] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteGroup]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteGroup]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteGroup] - -( - @GID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Assignments] - WHERE [GID]=@GID - DELETE [Memberships] - WHERE [GID]=@GID - DELETE [Groups] - WHERE [GID] = @GID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteGroup Succeeded' -ELSE PRINT 'Procedure Creation: deleteGroup Error on Creation' -GO - -/****** Object: StoredProcedure [deleteImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteImage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteImage] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Images] - WHERE [ContentID] = @ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteImage Succeeded' -ELSE PRINT 'Procedure Creation: deleteImage Error on Creation' -GO - -/****** Object: StoredProcedure [deleteItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteItem] - -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Annotations] - WHERE [ItemID]=@ItemID - DELETE [DocVersions] - WHERE [ItemID]=@ItemID - DELETE [Parts] - WHERE [ItemID]=@ItemID - DELETE [Transitions] - WHERE [RangeID]=@ItemID - DELETE [Transitions] - WHERE [ToID]=@ItemID - DELETE [Items] - WHERE [ItemID] = @ItemID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteItem Succeeded' -ELSE PRINT 'Procedure Creation: deleteItem Error on Creation' -GO - -/****** Object: StoredProcedure [DeleteItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DeleteItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [DeleteItemAndChildren]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[DeleteItemAndChildren] -( - @ItemID int, - @UserID AS VARCHAR(100) -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - declare @DeleteID int - DECLARE @ContentID AS INT - DECLARE @NextItemID AS INT - DECLARE @PreviousItemID AS INT - DECLARE @ExternalChildCount AS INT - DECLARE @ExternalCount AS INT - DECLARE @Path AS VARCHAR(MAX) - DECLARE @Children AS TABLE - ( - ItemID INT PRIMARY KEY, - ContentID INT - ) - DECLARE @ExternalTrans TABLE - ( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL - ) - SET NOCOUNT ON - SELECT @ContentID = ContentID, @PreviousItemID = PreviousID FROM Items WHERE ItemID = @ItemID - SELECT @NextItemID = ItemID FROM Items WHERE PreviousID = @ItemID - SELECT @ExternalCount = count(*) FROM vefn_FindExternalTransitions(@ItemID) - SELECT @ExternalChildCount = count(*) FROM vefn_FindExternalChildTransitions(@ItemID) - SET @Path = [dbo].[ve_GetShortPath](@ItemID) - - IF @ExternalCount > 0 AND @NextItemID is null - BEGIN - RAISERROR ('###Cannot Delete Item###Step %d has External Transitions and has no next step - (%s)',16,1,@ItemID,@Path) - RETURN - END - - IF @ExternalChildCount > 0 - BEGIN - RAISERROR ('###Cannot Delete Item###Step %d has External Transitions to it''s children - (%s)',16,1,@ItemID,@Path) - RETURN - END - --deletelog - INSERT INTO DeleteLog (UserID) values (@UserID) - Select @DeleteID = SCOPE_IDENTITY() - --end deletelog - -- Get list of Children - INSERT INTO @Children SELECT * FROM vefn_ChildItems(@ItemID) - -- UPDATE PreviousID in Items WHERE ItemID = @NextItemID - UPDATE Items SET PreviousID = @PreviousItemID WHERE ItemID=@NextItemID - -- UPDATE DocVersion - UPDATE DocVersions SET ItemID=@NextItemID where ItemID = @ItemID - -- UPDATE Parts - IF @NextItemID is not NULL -- Remove Part Record - BEGIN - UPDATE PARTS SET ItemID = @NextItemID where ItemID=@ItemID - END - ELSE - BEGIN - DELETE FROM Parts WHERE ItemID=@ItemID - END - -- Get external transitions that point to the specified Item - -- These will need to be adjusted to point to the next Item. - INSERT INTO @ExternalTrans SELECT * FROM vefn_FindExternalTransitions(@ItemID); - DECLARE @typeID int -- AnnotationType - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add 'Verification Required' annotions for transtions that point to different step - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where ItemID in (SELECT FromItemID FROM @ExternalTrans) - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@NextItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TransitionID in(Select TransitionID from @ExternalTrans) - -- Update transitions that point to @ItemID to Point to @NextItemID - UPDATE TRANSITIONS - SET ToID = case when ToID = @ItemID then @NextItemID else ToID END, - RangeID = case when RangeID = @ItemID then @NextItemID else RangeID END - WHERE TransitionID in(Select TransitionID from @ExternalTrans) - -- Delete Annotations for @ItemID and children - DELETE from Annotations where ItemID in(Select ItemID from @Children) - -- Delete Details associated with @ContentID and children - DELETE from Details where ContentID in(Select ContentID from @Children) - -- Delete Grids associated with @ContentID and children - DELETE from Grids where ContentID in(Select ContentID from @Children) - -- Delete Images associated with @ContentID and children - DELETE from Images where ContentID in(Select ContentID from @Children) - -- Delete Entries associated with @ContentID and children - DELETE from Entries where ContentID in(Select ContentID from @Children) - -- Delete ROUsages associated with @ContentID and children - DELETE from RoUsages where ContentID in(Select ContentID from @Children) - -- Delete ZTransitions records associated with @ContentID and children - DELETE FROM ZTransitions where TransitionID - in(SELECT TransitionID from Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID) - -- Delete Transitions associated with @ContentID and children - DELETE FROM Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID - -- Delete Parts associated with @ContentID and children - DELETE from Parts where ContentID in(Select ContentID from @Children) - -- Delete ZContents associated with @ContentID and children - DELETE from ZContents where ContentID in(Select ContentID from @Children) - -- Disconnect Items from Each Other - DELETE from Items where ItemID in(Select ItemID from @Children) and PreviousID Is Not Null - -- Disconnect Items to be deleted from each other - Update Items set PreviousID = null where ItemID in (Select ItemID from @Children) and PreviousID Is Not Null - -- Delete Item Records - DELETE from Items where ItemID in(Select ItemID from @Children) - -- DELETE Contents - DELETE from Contents where ContentID in(Select ContentID from @Children) - --purge deletelog - DELETE from DeleteLog where DeleteID = @DeleteID - --end purge deletelog - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: DeleteItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: DeleteItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [DeleteItemAndChildrenTest] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DeleteItemAndChildrenTest]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [DeleteItemAndChildrenTest]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[DeleteItemAndChildrenTest] -( - @ItemID int, - @UserID AS VARCHAR(100) -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @ContentID AS INT - DECLARE @NextItemID AS INT - DECLARE @PreviousItemID AS INT - DECLARE @ExternalChildCount AS INT - DECLARE @ExternalCount AS INT - DECLARE @Path AS VARCHAR(MAX) - DECLARE @Children AS TABLE - ( - ItemID INT PRIMARY KEY, - ContentID INT - ) - DECLARE @ExternalTrans TABLE - ( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL - ) - SET NOCOUNT ON - SELECT @ContentID = ContentID, @PreviousItemID = PreviousID FROM Items WHERE ItemID = @ItemID - SELECT @NextItemID = ItemID FROM Items WHERE PreviousID = @ItemID - SELECT @ExternalCount = count(*) FROM vefn_FindExternalTransitions(@ItemID) - SELECT @ExternalChildCount = count(*) FROM vefn_FindExternalChildTransitions(@ItemID) - SET @Path = [dbo].[ve_GetShortPath](@ItemID) - - IF @ExternalCount > 0 AND @NextItemID is null - BEGIN - PRINT '--->Cannot delete step ' + @Path + '.' + char(13) + '<===> It has External Transitions and has no next step' - SELECT dbo.ve_GetShortPath(FromItemID) FromPath, - dbo.ve_GetShortPath(ToID) ToPath FROM vefn_FindExternalTransitions(@ItemID) - WHERE NOT EXISTS (SELECT * FROM Items WHERE PreviousID = @ItemID) - RETURN - END - - IF @ExternalChildCount > 0 - BEGIN - PRINT '---> Cannot delete step ' + @Path + '.' + char(13) + '<===> It has External Transitions to it''s children' - SELECT dbo.ve_GetShortPath(FromItemID) FromPath, - dbo.ve_GetShortPath(ToID) ToPath FROM vefn_FindExternalChildTransitions(@ItemID) - RETURN - END - - PRINT '@Path = ''' + @Path + '''' - PRINT '@ItemID = ' + cast(@ItemID as varchar(10)) - PRINT '@ContentID = ' + isnull(cast(@ContentID as varchar(10)),'{NULL}') - PRINT '@NextItemID = ' + isnull(cast(@NextItemID as varchar(10)),'{NULL}') - PRINT '@PreviousItemID = ' + isnull(cast(@PreviousItemID as varchar(10)),'{NULL}') - PRINT '@ExternalCount = ' + isnull(cast(@ExternalCount as varchar(10)),'{NULL}') - PRINT '@ExternalChildCount = ' + isnull(cast(@ExternalChildCount as varchar(10)),'{NULL}') - - PRINT '---' + char(13) +'Preparing to delete step ' + @Path+ char(13) + '---' - -- Get list of Children - INSERT INTO @Children SELECT * FROM vefn_ChildItems(@ItemID) - PRINT 'Children' - SELECT ItemID, [dbo].[ve_GetShortPath](ItemID) ItemPath, ContentID,[dbo].[ve_GetShortPathFromContentID](ContentID) ContentPath FROM @Children - - -- UPDATE PreviousID in Items WHERE ItemID = @NextItemID - PRINT 'UPDATE Items Next' - SELECT ItemID, [dbo].[ve_GetShortPath](@NextItemID) PathOfNextItem,[dbo].[ve_GetShortPath](PreviousID) PathOfDeletedItem, [dbo].[ve_GetShortPath](@PreviousItemID) NewPreviousPath - FROM Items WHERE ItemID=@NextItemID - -- UPDATE DocVersion - PRINT 'UPDATE DocVersions ItemID' - SELECT [dbo].[ve_GetShortPath](ItemID) MyPath, [dbo].[ve_GetShortPath](@NextItemID) NewPath - FROM DocVersions WHERE ItemID=@ItemID - SELECT VersionID, [dbo].[ve_GetShortPath](@NextItemID) NewPath - FROM DocVersions WHERE ItemID=@ItemID - -- UPDATE Parts - IF @NextItemID is not NULL -- Remove Part Record - BEGIN - PRINT 'UPDATE Parts' - SELECT ItemID,@NextItemID,[dbo].[ve_GetShortPath](ItemID) ItemPath, [dbo].[ve_GetShortPath](@NextItemID) NewItemPath - FROM Parts WHERE ItemID=@ItemID - END - ELSE - BEGIN - PRINT 'DELETE Parts' - SELECT ContentID,FromType,[dbo].[ve_GetShortPath](ItemID) ItemPath FROM Parts WHERE ItemID=@ItemID - END - -- Get external transitions that point to the specified Item - -- These will need to be adjusted to point to the next Item. - INSERT INTO @ExternalTrans SELECT * FROM vefn_FindExternalTransitions(@ItemID); - DECLARE @typeID int -- AnnotationType - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - PRINT 'ADD Verification Required' - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Get list of External Transitions - - PRINT 'UPDATE Transitions - ADD Annotations' - SELECT [dbo].[ve_GetShortPathFromContentID](FromID)FromPath - ,[dbo].[ve_GetShortPath](ToID) ToPath - ,case when ToID = @ItemID then [dbo].[ve_GetShortPath](@NextItemID) else [dbo].[ve_GetShortPath](ToID) END NewToPath - ,[dbo].[ve_GetShortPath](RangeID) RangePath - ,case when RangeID = @ItemID then [dbo].[ve_GetShortPath](@NextItemID) else [dbo].[ve_GetShortPath](RangeID) END NewRangePath - FROM Transitions - WHERE TransitionID IN(Select TransitionID from @ExternalTrans) - -- Delete Annotations for @ItemID and children - PRINT 'DELETE Annotations' - SELECT AnnotationID, [dbo].[ve_GetShortPath](ItemID) ItemPath from Annotations where ItemID in(Select ItemID from @Children) - -- Delete Details associated with @ContentID and children - PRINT 'DELETE Details' - SELECT [dbo].[ve_GetShortPathFromContentID](ContentID) ContentPath from Details where ContentID in(Select ContentID from @Children) - -- Delete Entries associated with @ContentID and children - PRINT 'DELETE Entries' - SELECT ContentID, [dbo].[ve_GetShortPathFromContentID](ContentID) ContentPath from Entries where ContentID in(Select ContentID from @Children) - -- Delete ROUsages associated with @ContentID and children - PRINT 'DELETE ROUsages' - SELECT ROUsageID, [dbo].[ve_GetShortPathFromContentID](ContentID) ContentPath from RoUsages where ContentID in(Select ContentID from @Children) - -- Delete Transitions associated with @ContentID and children - PRINT 'DELETE Transitions' - SELECT TransitionID, [dbo].[ve_GetShortPathFromContentID](FromID)FromPath ,[dbo].[ve_GetShortPath](ToID) ToPath - ,[dbo].[ve_GetShortPath](RangeID) RangePath FROM Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID - -- Delete Parts associated with @ContentID and children - PRINT 'DELETE Parts' - SELECT ContentID, FromType,[dbo].[ve_GetShortPathFromContentID](ContentID) ContentPath from Parts where ContentID in(Select ContentID from @Children) - -- Delete ZContents associated with @ContentID and children - PRINT 'DELETE XContents' - SELECT ContentID,[dbo].[ve_GetShortPathFromContentID](ContentID) ContentPath from ZContents where ContentID in(Select ContentID from @Children) - -- Disconnect Items from Each Other - PRINT 'DISCONNECT Items from each other' - SELECT ItemID, [dbo].[ve_GetShortPath](ItemID) ItemPath, [dbo].[ve_GetShortPath](PreviousID) PreviousPath from Items where ItemID in(Select ItemID from @Children) and PreviousID Is Not Null - -- Delete Item Records - PRINT 'DELETE Items' - SELECT ItemID, [dbo].[ve_GetShortPath](ItemID) ItemPath from Items where ItemID in(Select ItemID from @Children) - -- DELETE Contents - PRINT 'DELETE Contents' - SELECT ContentID, [dbo].[ve_GetShortPathFromContentID](ContentID) ContentPath from Contents where ContentID in(Select ContentID from @Children) - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: DeleteItemAndChildrenTest Succeeded' -ELSE PRINT 'Procedure Creation: DeleteItemAndChildrenTest Error on Creation' -GO - -/****** Object: StoredProcedure [deleteMembership] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteMembership]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteMembership]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteMembership] - -( - @UGID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Memberships] - WHERE [UGID] = @UGID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteMembership Succeeded' -ELSE PRINT 'Procedure Creation: deleteMembership Error on Creation' -GO - -/****** Object: StoredProcedure [deletePart] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deletePart]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deletePart]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deletePart] - -( - @ContentID int, - @FromType int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Parts] - WHERE [ContentID] = @ContentID AND [FromType] = @FromType - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deletePart Succeeded' -ELSE PRINT 'Procedure Creation: deletePart Error on Creation' -GO - -/****** Object: StoredProcedure [deletePdf] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deletePdf]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deletePdf]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deletePdf] - -( - @DocID int, - @DebugStatus int, - @TopRow int, - @PageLength int, - @LeftMargin int, - @PageWidth int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Pdfs] - WHERE [DocID] = @DocID AND [DebugStatus] = @DebugStatus AND [TopRow] = @TopRow AND [PageLength] = @PageLength AND [LeftMargin] = @LeftMargin AND [PageWidth] = @PageWidth - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deletePdf Succeeded' -ELSE PRINT 'Procedure Creation: deletePdf Error on Creation' -GO - -/****** Object: StoredProcedure [deletePermission] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deletePermission]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deletePermission]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deletePermission] - -( - @PID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Permissions] - WHERE [PID] = @PID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deletePermission Succeeded' -ELSE PRINT 'Procedure Creation: deletePermission Error on Creation' -GO - -/****** Object: StoredProcedure [deleteRODb] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteRODb]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteRODb]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteRODb] - -( - @RODbID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [DROUsages] - WHERE [RODbID]=@RODbID - DELETE [ROFsts] - WHERE [RODbID]=@RODbID - DELETE [ROImages] - WHERE [RODbID]=@RODbID - DELETE [RoUsages] - WHERE [RODbID]=@RODbID - DELETE [RODbs] - WHERE [RODbID] = @RODbID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteRODb Succeeded' -ELSE PRINT 'Procedure Creation: deleteRODb Error on Creation' -GO - -/****** Object: StoredProcedure [deleteROFst] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteROFst]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteROFst]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteROFst] - -( - @ROFstID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Associations] - WHERE [ROFstID]=@ROFstID - DELETE [Figures] - WHERE [ROFstID]=@ROFstID - DELETE [ROFsts] - WHERE [ROFstID] = @ROFstID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteROFst Succeeded' -ELSE PRINT 'Procedure Creation: deleteROFst Error on Creation' -GO - -/****** Object: StoredProcedure [deleteROImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteROImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteROImage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteROImage] - -( - @ImageID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Figures] - WHERE [ImageID]=@ImageID - DELETE [ROImages] - WHERE [ImageID] = @ImageID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteROImage Succeeded' -ELSE PRINT 'Procedure Creation: deleteROImage Error on Creation' -GO - -/****** Object: StoredProcedure [deleteRole] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteRole]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteRole]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteRole] - -( - @RID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Assignments] - WHERE [RID]=@RID - DELETE [Permissions] - WHERE [RID]=@RID - DELETE [Roles] - WHERE [RID] = @RID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteRole Succeeded' -ELSE PRINT 'Procedure Creation: deleteRole Error on Creation' -GO - -/****** Object: StoredProcedure [deleteRoUsage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteRoUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteRoUsage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteRoUsage] - -( - @ROUsageID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [RoUsages] - WHERE [ROUsageID] = @ROUsageID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteRoUsage Succeeded' -ELSE PRINT 'Procedure Creation: deleteRoUsage Error on Creation' -GO - -/****** Object: StoredProcedure [deleteTransition] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteTransition]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteTransition]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteTransition] - -( - @TransitionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [ZTransitions] - WHERE [TransitionID]=@TransitionID - DELETE [Transitions] - WHERE [TransitionID] = @TransitionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteTransition Succeeded' -ELSE PRINT 'Procedure Creation: deleteTransition Error on Creation' -GO - -/****** Object: StoredProcedure [deleteUser] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteUser]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteUser]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteUser] - -( - @UID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Memberships] - WHERE [UID]=@UID - DELETE [Users] - WHERE [UID] = @UID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteUser Succeeded' -ELSE PRINT 'Procedure Creation: deleteUser Error on Creation' -GO - -/****** Object: StoredProcedure [deleteZContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteZContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteZContent]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteZContent] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [ZContents] - WHERE [ContentID] = @ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteZContent Succeeded' -ELSE PRINT 'Procedure Creation: deleteZContent Error on Creation' -GO - -/****** Object: StoredProcedure [deleteZTransition] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteZTransition]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteZTransition]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteZTransition] - -( - @TransitionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [ZTransitions] - WHERE [TransitionID] = @TransitionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteZTransition Succeeded' -ELSE PRINT 'Procedure Creation: deleteZTransition Error on Creation' -GO - -/****** Object: StoredProcedure [existsAnnotation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsAnnotation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsAnnotation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsAnnotation] - -( - @AnnotationID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Annotations] WHERE [AnnotationID]=@AnnotationID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsAnnotation Succeeded' -ELSE PRINT 'Procedure Creation: existsAnnotation Error on Creation' -GO - -/****** Object: StoredProcedure [existsAnnotationType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsAnnotationType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsAnnotationType]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsAnnotationType] - -( - @TypeID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [AnnotationTypes] WHERE [TypeID]=@TypeID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsAnnotationType Succeeded' -ELSE PRINT 'Procedure Creation: existsAnnotationType Error on Creation' -GO - -/****** Object: StoredProcedure [existsAssignment] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsAssignment]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsAssignment]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsAssignment] - -( - @AID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Assignments] WHERE [AID]=@AID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsAssignment Succeeded' -ELSE PRINT 'Procedure Creation: existsAssignment Error on Creation' -GO - -/****** Object: StoredProcedure [existsAssociation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsAssociation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsAssociation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsAssociation] - -( - @AssociationID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Associations] WHERE [AssociationID]=@AssociationID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsAssociation Succeeded' -ELSE PRINT 'Procedure Creation: existsAssociation Error on Creation' -GO - -/****** Object: StoredProcedure [existsConnection] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsConnection]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsConnection]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsConnection] - -( - @DBID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Connections] WHERE [DBID]=@DBID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsConnection Succeeded' -ELSE PRINT 'Procedure Creation: existsConnection Error on Creation' -GO - -/****** Object: StoredProcedure [existsContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsContent]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsContent] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Contents] WHERE [ContentID]=@ContentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsContent Succeeded' -ELSE PRINT 'Procedure Creation: existsContent Error on Creation' -GO - -/****** Object: StoredProcedure [existsDetail] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsDetail]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsDetail]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsDetail] - -( - @DetailID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Details] WHERE [DetailID]=@DetailID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsDetail Succeeded' -ELSE PRINT 'Procedure Creation: existsDetail Error on Creation' -GO - -/****** Object: StoredProcedure [existsDocument] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsDocument]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsDocument]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsDocument] - -( - @DocID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Documents] WHERE [DocID]=@DocID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsDocument Succeeded' -ELSE PRINT 'Procedure Creation: existsDocument Error on Creation' -GO - -/****** Object: StoredProcedure [existsDocVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsDocVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsDocVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsDocVersion] - -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [DocVersions] WHERE [VersionID]=@VersionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsDocVersion Succeeded' -ELSE PRINT 'Procedure Creation: existsDocVersion Error on Creation' -GO - -/****** Object: StoredProcedure [existsDROUsage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsDROUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsDROUsage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsDROUsage] - -( - @DROUsageID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [DROUsages] WHERE [DROUsageID]=@DROUsageID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsDROUsage Succeeded' -ELSE PRINT 'Procedure Creation: existsDROUsage Error on Creation' -GO - -/****** Object: StoredProcedure [existsEntry] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsEntry]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsEntry]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsEntry] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Entries] WHERE [ContentID]=@ContentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsEntry Succeeded' -ELSE PRINT 'Procedure Creation: existsEntry Error on Creation' -GO - -/****** Object: StoredProcedure [existsFigure] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsFigure]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsFigure]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsFigure] - -( - @FigureID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Figures] WHERE [FigureID]=@FigureID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsFigure Succeeded' -ELSE PRINT 'Procedure Creation: existsFigure Error on Creation' -GO - -/****** Object: StoredProcedure [existsFolder] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsFolder]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsFolder]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsFolder] - -( - @FolderID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Folders] WHERE [FolderID]=@FolderID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsFolder Succeeded' -ELSE PRINT 'Procedure Creation: existsFolder Error on Creation' -GO - -/****** Object: StoredProcedure [existsFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsFormat]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsFormat] - -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Formats] WHERE [FormatID]=@FormatID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsFormat Succeeded' -ELSE PRINT 'Procedure Creation: existsFormat Error on Creation' -GO - -/****** Object: StoredProcedure [existsGrid] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsGrid]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsGrid]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsGrid] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Grids] WHERE [ContentID]=@ContentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsGrid Succeeded' -ELSE PRINT 'Procedure Creation: existsGrid Error on Creation' -GO - -/****** Object: StoredProcedure [existsGroup] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsGroup]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsGroup]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsGroup] - -( - @GID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Groups] WHERE [GID]=@GID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsGroup Succeeded' -ELSE PRINT 'Procedure Creation: existsGroup Error on Creation' -GO - -/****** Object: StoredProcedure [existsImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsImage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsImage] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Images] WHERE [ContentID]=@ContentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsImage Succeeded' -ELSE PRINT 'Procedure Creation: existsImage Error on Creation' -GO - -/****** Object: StoredProcedure [existsItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsItem] - -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Items] WHERE [ItemID]=@ItemID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsItem Succeeded' -ELSE PRINT 'Procedure Creation: existsItem Error on Creation' -GO - -/****** Object: StoredProcedure [existsMembership] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsMembership]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsMembership]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsMembership] - -( - @UGID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Memberships] WHERE [UGID]=@UGID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsMembership Succeeded' -ELSE PRINT 'Procedure Creation: existsMembership Error on Creation' -GO - -/****** Object: StoredProcedure [existsPart] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsPart]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsPart]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsPart] - -( - @ContentID int, - @FromType int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Parts] WHERE [ContentID]=@ContentID AND [FromType]=@FromType - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsPart Succeeded' -ELSE PRINT 'Procedure Creation: existsPart Error on Creation' -GO - -/****** Object: StoredProcedure [existsPdf] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsPdf]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsPdf]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsPdf] - -( - @DocID int, - @DebugStatus int, - @TopRow int, - @PageLength int, - @LeftMargin int, - @PageWidth int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Pdfs] WHERE [DocID]=@DocID AND [DebugStatus]=@DebugStatus AND [TopRow]=@TopRow AND [PageLength]=@PageLength AND [LeftMargin]=@LeftMargin AND [PageWidth]=@PageWidth - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsPdf Succeeded' -ELSE PRINT 'Procedure Creation: existsPdf Error on Creation' -GO - -/****** Object: StoredProcedure [existsPermission] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsPermission]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsPermission]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsPermission] - -( - @PID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Permissions] WHERE [PID]=@PID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsPermission Succeeded' -ELSE PRINT 'Procedure Creation: existsPermission Error on Creation' -GO - -/****** Object: StoredProcedure [existsRODb] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsRODb]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsRODb]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsRODb] - -( - @RODbID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [RODbs] WHERE [RODbID]=@RODbID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsRODb Succeeded' -ELSE PRINT 'Procedure Creation: existsRODb Error on Creation' -GO - -/****** Object: StoredProcedure [existsROFst] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsROFst]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsROFst]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsROFst] - -( - @ROFstID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [ROFsts] WHERE [ROFstID]=@ROFstID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsROFst Succeeded' -ELSE PRINT 'Procedure Creation: existsROFst Error on Creation' -GO - -/****** Object: StoredProcedure [existsROImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsROImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsROImage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsROImage] - -( - @ImageID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [ROImages] WHERE [ImageID]=@ImageID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsROImage Succeeded' -ELSE PRINT 'Procedure Creation: existsROImage Error on Creation' -GO - -/****** Object: StoredProcedure [existsRole] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsRole]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsRole]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsRole] - -( - @RID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Roles] WHERE [RID]=@RID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsRole Succeeded' -ELSE PRINT 'Procedure Creation: existsRole Error on Creation' -GO - -/****** Object: StoredProcedure [existsRoUsage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsRoUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsRoUsage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsRoUsage] - -( - @ROUsageID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [RoUsages] WHERE [ROUsageID]=@ROUsageID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsRoUsage Succeeded' -ELSE PRINT 'Procedure Creation: existsRoUsage Error on Creation' -GO - -/****** Object: StoredProcedure [existsTransition] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsTransition]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsTransition]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsTransition] - -( - @TransitionID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Transitions] WHERE [TransitionID]=@TransitionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsTransition Succeeded' -ELSE PRINT 'Procedure Creation: existsTransition Error on Creation' -GO - -/****** Object: StoredProcedure [existsUser] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsUser]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsUser]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsUser] - -( - @UID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Users] WHERE [UID]=@UID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsUser Succeeded' -ELSE PRINT 'Procedure Creation: existsUser Error on Creation' -GO - -/****** Object: StoredProcedure [existsZContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsZContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsZContent]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsZContent] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [ZContents] WHERE [ContentID]=@ContentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsZContent Succeeded' -ELSE PRINT 'Procedure Creation: existsZContent Error on Creation' -GO - -/****** Object: StoredProcedure [existsZTransition] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsZTransition]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsZTransition]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsZTransition] - -( - @TransitionID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [ZTransitions] WHERE [TransitionID]=@TransitionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsZTransition Succeeded' -ELSE PRINT 'Procedure Creation: existsZTransition Error on Creation' -GO - -/****** Object: StoredProcedure [FindText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[FindText]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [FindText]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create FUNCTION [dbo].[FindText](@LookFor varchar(255)) -RETURNS @Results TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -BEGIN - insert into @Results - select itemid,ii.contentid - from items ii - join contents cc on ii.contentid = cc.contentid - where text like @LookFor - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: FindText Succeeded' -ELSE PRINT 'TableFunction Creation: FindText Error on Creation' -GO - -/****** Object: StoredProcedure [getAffectedDRoUsages] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAffectedDRoUsages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAffectedDRoUsages]; -GO - -/* -getAffectedDROUsages 1, '00010000019c0000', 'KBR Test', 'Changed', 'KBR' -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAffectedDRoUsages] -( - @RODbID int, - @ROID nvarchar(16), - @RODesc nvarchar(MAX), - @Command nvarchar(10), - @UserID nvarchar(100) -) -WITH EXECUTE AS OWNER -AS - BEGIN - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - -- Add "Verification Required" Annotation for each ROUsage - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Referenced Object (' + @RODesc + ') ' + @Command,@UserID - FROM Items where CONTENTID in (SELECT ContentID - FROM DROUsages DR - JOIN Entries EE on EE.DocID = DR.DocID - where RODbID = @RODbID AND ROID = @ROID) - END - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [DRoUsages] - JOIN [Documents] ON - [Documents].[DocID]=[DROUsages].[DocID] - WHERE - [DRoUsages].[RODbID]=@RODbID AND [DRoUsages].[ROID]=@ROID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAffectedDRoUsages Succeeded' -ELSE PRINT 'Procedure Creation: getAffectedDRoUsages Error on Creation' -GO - -/****** Object: StoredProcedure [getAffectedRoUsages] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAffectedRoUsages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAffectedRoUsages]; -GO - -/* -getAffectedROUsages 1, '00010000019c0000', 'KBR Test', 'Changed', 'KBR' -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAffectedRoUsages] - -( - @RODbID int, - @ROID nvarchar(16), - @RODesc nvarchar(MAX), - @Command nvarchar(10), - @UserID nvarchar(100) -) -WITH EXECUTE AS OWNER -AS - BEGIN - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - -- Add "Verification Required" Annotation for each ROUsage - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Referenced Object (' + @RODesc + ') ' + @Command,@UserID - FROM Items where CONTENTID in (SELECT ContentID FROM ROUSAGES - where RODbID = @RODbID AND ROID = @ROID) - END - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [RoUsages] - JOIN [Contents] ON - [Contents].[ContentID]=[RoUsages].[ContentID] - WHERE - [RoUsages].[RODbID]=@RODbID AND [RoUsages].[ROID]=@ROID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAffectedRoUsages Succeeded' -ELSE PRINT 'Procedure Creation: getAffectedRoUsages Error on Creation' -GO - -/****** Object: StoredProcedure [getAffectedTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAffectedTransitions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAffectedTransitions]; -GO - -/* -exec getAffectedTransitions 2102 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAffectedTransitions] -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - SELECT - TT.[TransitionID], - [FromID], - [ToID], - [RangeID], - [IsRange], - [TranType], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=TT.[TransitionID]) [ZTransitionCount] - FROM [Transitions] TT join vefn_FindAffectedTransitions(@ItemID) TTZ on TTZ.TransitionID = TT.TransitionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAffectedTransitions Succeeded' -ELSE PRINT 'Procedure Creation: getAffectedTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAnnotation] - -( - @AnnotationID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [AnnotationID], - [ItemID], - [TypeID], - [RtfText], - [SearchText], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Annotations] - WHERE [AnnotationID]=@AnnotationID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotation Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotation Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotations] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotations]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotations]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAnnotations] - -WITH EXECUTE AS OWNER -AS - SELECT - [AnnotationID], - [ItemID], - [TypeID], - [RtfText], - [SearchText], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Annotations] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotations Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotations Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotationsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationsByItemID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAnnotationsByItemID] - -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Annotations].[AnnotationID], - [Annotations].[ItemID], - [Annotations].[TypeID], - [Annotations].[RtfText], - [Annotations].[SearchText], - [Annotations].[Config], - [Annotations].[DTS], - [Annotations].[UserID], - [Annotations].[LastChanged], - [AnnotationTypes].[Name] [AnnotationType_Name], - [AnnotationTypes].[Config] [AnnotationType_Config], - [AnnotationTypes].[DTS] [AnnotationType_DTS], - [AnnotationTypes].[UserID] [AnnotationType_UserID] - FROM [Annotations] - JOIN [AnnotationTypes] ON - [AnnotationTypes].[TypeID]=[Annotations].[TypeID] - WHERE - [Annotations].[ItemID]=@ItemID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationsByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotationsByTypeID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationsByTypeID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationsByTypeID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAnnotationsByTypeID] - -( - @TypeID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Annotations].[AnnotationID], - [Annotations].[ItemID], - [Annotations].[TypeID], - [Annotations].[RtfText], - [Annotations].[SearchText], - [Annotations].[Config], - [Annotations].[DTS], - [Annotations].[UserID], - [Annotations].[LastChanged], - [Items].[PreviousID] [Item_PreviousID], - [Items].[ContentID] [Item_ContentID], - [Items].[DTS] [Item_DTS], - [Items].[UserID] [Item_UserID] - FROM [Annotations] - JOIN [Items] ON - [Items].[ItemID]=[Annotations].[ItemID] - WHERE - [Annotations].[TypeID]=@TypeID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationsByTypeID Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationsByTypeID Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotationType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationType]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAnnotationType] - -( - @TypeID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [TypeID], - [Name], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount] - FROM [AnnotationTypes] - WHERE [TypeID]=@TypeID - - SELECT - [Annotations].[AnnotationID], - [Annotations].[ItemID], - [Annotations].[TypeID], - [Annotations].[RtfText], - [Annotations].[SearchText], - [Annotations].[Config], - [Annotations].[DTS], - [Annotations].[UserID], - [Annotations].[LastChanged], - [Items].[PreviousID] [Item_PreviousID], - [Items].[ContentID] [Item_ContentID], - [Items].[DTS] [Item_DTS], - [Items].[UserID] [Item_UserID] - FROM [Annotations] - JOIN [Items] ON - [Items].[ItemID]=[Annotations].[ItemID] - WHERE - [Annotations].[TypeID]=@TypeID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationType Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationType Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotationTypeByName] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationTypeByName]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationTypeByName]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAnnotationTypeByName] -( - @Name nvarchar(100) -) -WITH EXECUTE AS OWNER -AS - SELECT - [TypeID], - [Name], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount] - FROM [AnnotationTypes] - WHERE [Name]=@Name - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationTypeByName Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationTypeByName Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotationTypes] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationTypes]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationTypes]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAnnotationTypes] - -WITH EXECUTE AS OWNER -AS - SELECT - [TypeID], - [Name], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[TypeID]=[AnnotationTypes].[TypeID]) [AnnotationCount] - FROM [AnnotationTypes] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationTypes Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationTypes Error on Creation' -GO - -/****** Object: StoredProcedure [getAssignment] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAssignment]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAssignment]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAssignment] - -( - @AID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [AID], - [GID], - [RID], - [FolderID], - [StartDate], - [EndDate], - [DTS], - [UsrID], - [LastChanged] - FROM [Assignments] - WHERE [AID]=@AID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAssignment Succeeded' -ELSE PRINT 'Procedure Creation: getAssignment Error on Creation' -GO - -/****** Object: StoredProcedure [getAssignments] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAssignments]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAssignments]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAssignments] - -WITH EXECUTE AS OWNER -AS - SELECT - [AID], - [GID], - [RID], - [FolderID], - [StartDate], - [EndDate], - [DTS], - [UsrID], - [LastChanged] - FROM [Assignments] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAssignments Succeeded' -ELSE PRINT 'Procedure Creation: getAssignments Error on Creation' -GO - -/****** Object: StoredProcedure [getAssignmentsByFolderID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAssignmentsByFolderID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAssignmentsByFolderID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAssignmentsByFolderID] - -( - @FolderID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Assignments].[AID], - [Assignments].[GID], - [Assignments].[RID], - [Assignments].[FolderID], - [Assignments].[StartDate], - [Assignments].[EndDate], - [Assignments].[DTS], - [Assignments].[UsrID], - [Assignments].[LastChanged], - [Groups].[GroupName] [Group_GroupName], - [Groups].[GroupType] [Group_GroupType], - [Groups].[Config] [Group_Config], - [Groups].[DTS] [Group_DTS], - [Groups].[UsrID] [Group_UsrID], - [Roles].[Name] [Role_Name], - [Roles].[Title] [Role_Title], - [Roles].[DTS] [Role_DTS], - [Roles].[UsrID] [Role_UsrID] - FROM [Assignments] - JOIN [Groups] ON - [Groups].[GID]=[Assignments].[GID] - JOIN [Roles] ON - [Roles].[RID]=[Assignments].[RID] - WHERE - [Assignments].[FolderID]=@FolderID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAssignmentsByFolderID Succeeded' -ELSE PRINT 'Procedure Creation: getAssignmentsByFolderID Error on Creation' -GO - -/****** Object: StoredProcedure [getAssignmentsByGID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAssignmentsByGID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAssignmentsByGID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAssignmentsByGID] - -( - @GID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Assignments].[AID], - [Assignments].[GID], - [Assignments].[RID], - [Assignments].[FolderID], - [Assignments].[StartDate], - [Assignments].[EndDate], - [Assignments].[DTS], - [Assignments].[UsrID], - [Assignments].[LastChanged], - [Folders].[ParentID] [Folder_ParentID], - [Folders].[DBID] [Folder_DBID], - [Folders].[Name] [Folder_Name], - [Folders].[Title] [Folder_Title], - [Folders].[ShortName] [Folder_ShortName], - [Folders].[FormatID] [Folder_FormatID], - [Folders].[ManualOrder] [Folder_ManualOrder], - [Folders].[Config] [Folder_Config], - [Folders].[DTS] [Folder_DTS], - [Folders].[UsrID] [Folder_UsrID], - [Roles].[Name] [Role_Name], - [Roles].[Title] [Role_Title], - [Roles].[DTS] [Role_DTS], - [Roles].[UsrID] [Role_UsrID] - FROM [Assignments] - JOIN [Folders] ON - [Folders].[FolderID]=[Assignments].[FolderID] - JOIN [Roles] ON - [Roles].[RID]=[Assignments].[RID] - WHERE - [Assignments].[GID]=@GID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAssignmentsByGID Succeeded' -ELSE PRINT 'Procedure Creation: getAssignmentsByGID Error on Creation' -GO - -/****** Object: StoredProcedure [getAssignmentsByRID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAssignmentsByRID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAssignmentsByRID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAssignmentsByRID] - -( - @RID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Assignments].[AID], - [Assignments].[GID], - [Assignments].[RID], - [Assignments].[FolderID], - [Assignments].[StartDate], - [Assignments].[EndDate], - [Assignments].[DTS], - [Assignments].[UsrID], - [Assignments].[LastChanged], - [Folders].[ParentID] [Folder_ParentID], - [Folders].[DBID] [Folder_DBID], - [Folders].[Name] [Folder_Name], - [Folders].[Title] [Folder_Title], - [Folders].[ShortName] [Folder_ShortName], - [Folders].[FormatID] [Folder_FormatID], - [Folders].[ManualOrder] [Folder_ManualOrder], - [Folders].[Config] [Folder_Config], - [Folders].[DTS] [Folder_DTS], - [Folders].[UsrID] [Folder_UsrID], - [Groups].[GroupName] [Group_GroupName], - [Groups].[GroupType] [Group_GroupType], - [Groups].[Config] [Group_Config], - [Groups].[DTS] [Group_DTS], - [Groups].[UsrID] [Group_UsrID] - FROM [Assignments] - JOIN [Folders] ON - [Folders].[FolderID]=[Assignments].[FolderID] - JOIN [Groups] ON - [Groups].[GID]=[Assignments].[GID] - WHERE - [Assignments].[RID]=@RID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAssignmentsByRID Succeeded' -ELSE PRINT 'Procedure Creation: getAssignmentsByRID Error on Creation' -GO - -/****** Object: StoredProcedure [getAssociation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAssociation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAssociation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAssociation] - -( - @AssociationID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [AssociationID], - [VersionID], - [ROFstID], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Associations] - WHERE [AssociationID]=@AssociationID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAssociation Succeeded' -ELSE PRINT 'Procedure Creation: getAssociation Error on Creation' -GO - -/****** Object: StoredProcedure [getAssociationByVersionID_ROFstID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAssociationByVersionID_ROFstID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAssociationByVersionID_ROFstID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAssociationByVersionID_ROFstID] -( - @VersionID int, - @ROFstID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [AssociationID], - [VersionID], - [ROFstID], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Associations] - WHERE [VersionID]=@VersionID AND [ROFstID]=@ROFstID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAssociationByVersionID_ROFstID Succeeded' -ELSE PRINT 'Procedure Creation: getAssociationByVersionID_ROFstID Error on Creation' -GO - -/****** Object: StoredProcedure [getAssociations] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAssociations]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAssociations]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAssociations] - -WITH EXECUTE AS OWNER -AS - SELECT - [AssociationID], - [VersionID], - [ROFstID], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Associations] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAssociations Succeeded' -ELSE PRINT 'Procedure Creation: getAssociations Error on Creation' -GO - -/****** Object: StoredProcedure [getAssociationsByROFstID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAssociationsByROFstID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAssociationsByROFstID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAssociationsByROFstID] - -( - @ROFstID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Associations].[AssociationID], - [Associations].[VersionID], - [Associations].[ROFstID], - [Associations].[Config], - [Associations].[DTS], - [Associations].[UserID], - [Associations].[LastChanged], - [DocVersions].[FolderID] [DocVersion_FolderID], - [DocVersions].[VersionType] [DocVersion_VersionType], - [DocVersions].[Name] [DocVersion_Name], - [DocVersions].[Title] [DocVersion_Title], - [DocVersions].[ItemID] [DocVersion_ItemID], - [DocVersions].[FormatID] [DocVersion_FormatID], - [DocVersions].[Config] [DocVersion_Config], - [DocVersions].[DTS] [DocVersion_DTS], - [DocVersions].[UserID] [DocVersion_UserID] - FROM [Associations] - JOIN [DocVersions] ON - [DocVersions].[VersionID]=[Associations].[VersionID] - WHERE - [Associations].[ROFstID]=@ROFstID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAssociationsByROFstID Succeeded' -ELSE PRINT 'Procedure Creation: getAssociationsByROFstID Error on Creation' -GO - -/****** Object: StoredProcedure [getAssociationsByVersionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAssociationsByVersionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAssociationsByVersionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAssociationsByVersionID] - -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Associations].[AssociationID], - [Associations].[VersionID], - [Associations].[ROFstID], - [Associations].[Config], - [Associations].[DTS], - [Associations].[UserID], - [Associations].[LastChanged], - [ROFsts].[RODbID] [ROFst_RODbID], - [ROFsts].[ROLookup] [ROFst_ROLookup], - [ROFsts].[Config] [ROFst_Config], - [ROFsts].[DTS] [ROFst_DTS], - [ROFsts].[UserID] [ROFst_UserID] - FROM [Associations] - JOIN [ROFsts] ON - [ROFsts].[ROFstID]=[Associations].[ROFstID] - WHERE - [Associations].[VersionID]=@VersionID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAssociationsByVersionID Succeeded' -ELSE PRINT 'Procedure Creation: getAssociationsByVersionID Error on Creation' -GO - -/****** Object: StoredProcedure [getChildFolders] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getChildFolders]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getChildFolders]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getChildFolders] - -( - @ParentID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FolderID], - [ParentID], - [DBID], - [Name], - [Title], - [ShortName], - [FormatID], - [ManualOrder], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[FolderID]=[Folders].[FolderID]) [AssignmentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FolderID]=[Folders].[FolderID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] [Children] WHERE [Children].[ParentID]=[Folders].[FolderID]) [ChildCount] - FROM [Folders] WHERE [ParentID]=@ParentID AND [FolderID]<>@ParentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getChildFolders Succeeded' -ELSE PRINT 'Procedure Creation: getChildFolders Error on Creation' -GO - -/****** Object: StoredProcedure [getChildFormats] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getChildFormats]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getChildFormats]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getChildFormats] - -( - @ParentID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FormatID], - [ParentID], - [Name], - [Description], - [Data], - [GenMac], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] - FROM [Formats] WHERE [ParentID]=@ParentID AND [FormatID]<>@ParentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getChildFormats Succeeded' -ELSE PRINT 'Procedure Creation: getChildFormats Error on Creation' -GO - -/****** Object: StoredProcedure [getConnection] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getConnection]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getConnection]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getConnection] - -( - @DBID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [DBID], - [Name], - [Title], - [ConnectionString], - [ServerType], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[DBID]=[Connections].[DBID]) [FolderCount] - FROM [Connections] - WHERE [DBID]=@DBID - - SELECT - [Folders].[FolderID], - [Folders].[ParentID], - [Folders].[DBID], - [Folders].[Name], - [Folders].[Title], - [Folders].[ShortName], - [Folders].[FormatID], - [Folders].[ManualOrder], - [Folders].[Config], - [Folders].[DTS], - [Folders].[UsrID], - [Folders].[LastChanged] - FROM [Folders] - WHERE - [Folders].[DBID]=@DBID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getConnection Succeeded' -ELSE PRINT 'Procedure Creation: getConnection Error on Creation' -GO - -/****** Object: StoredProcedure [getConnectionByName] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getConnectionByName]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getConnectionByName]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getConnectionByName] -( - @Name nvarchar(100) -) -WITH EXECUTE AS OWNER -AS - SELECT - [DBID], - [Name], - [Title], - [ConnectionString], - [ServerType], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[DBID]=[Connections].[DBID]) [FolderCount] - FROM [Connections] - WHERE [Name]=@Name - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getConnectionByName Succeeded' -ELSE PRINT 'Procedure Creation: getConnectionByName Error on Creation' -GO - -/****** Object: StoredProcedure [getConnections] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getConnections]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getConnections]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getConnections] - -WITH EXECUTE AS OWNER -AS - SELECT - [DBID], - [Name], - [Title], - [ConnectionString], - [ServerType], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[DBID]=[Connections].[DBID]) [FolderCount] - FROM [Connections] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getConnections Succeeded' -ELSE PRINT 'Procedure Creation: getConnections Error on Creation' -GO - -/****** Object: StoredProcedure [getContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContent]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContent] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM [Contents] - WHERE [ContentID]=@ContentID - - SELECT - [Details].[DetailID], - [Details].[ContentID], - [Details].[ItemType], - [Details].[Text], - [Details].[Config], - [Details].[DTS], - [Details].[UserID], - [Details].[LastChanged] - FROM [Details] - WHERE - [Details].[ContentID]=@ContentID - - - SELECT - [Entries].[ContentID], - [Entries].[DocID], - [Entries].[DTS], - [Entries].[UserID], - [Entries].[LastChanged], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [Entries] - JOIN [Documents] ON - [Documents].[DocID]=[Entries].[DocID] - WHERE - [Entries].[ContentID]=@ContentID - - - SELECT - [Grids].[ContentID], - [Grids].[Data], - [Grids].[Config], - [Grids].[DTS], - [Grids].[UserID], - [Grids].[LastChanged] - FROM [Grids] - WHERE - [Grids].[ContentID]=@ContentID - - - SELECT - [Images].[ContentID], - [Images].[ImageType], - [Images].[FileName], - [Images].[Data], - [Images].[Config], - [Images].[DTS], - [Images].[UserID], - [Images].[LastChanged] - FROM [Images] - WHERE - [Images].[ContentID]=@ContentID - - - SELECT - [Items].[ItemID], - [Items].[PreviousID], - [Items].[ContentID], - [Items].[DTS], - [Items].[UserID], - [Items].[LastChanged] - FROM [Items] - WHERE - [Items].[ContentID]=@ContentID - - - SELECT - [Parts].[ContentID], - [Parts].[FromType], - [Parts].[ItemID], - [Parts].[DTS], - [Parts].[UserID], - [Parts].[LastChanged], - [Items].[PreviousID] [Item_PreviousID], - [Items].[ContentID] [Item_ContentID], - [Items].[DTS] [Item_DTS], - [Items].[UserID] [Item_UserID] - FROM [Parts] - JOIN [Items] ON - [Items].[ItemID]=[Parts].[ItemID] - WHERE - [Parts].[ContentID]=@ContentID - - - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [RODbs].[ROName] [RODb_ROName], - [RODbs].[FolderPath] [RODb_FolderPath], - [RODbs].[DBConnectionString] [RODb_DBConnectionString], - [RODbs].[Config] [RODb_Config], - [RODbs].[DTS] [RODb_DTS], - [RODbs].[UserID] [RODb_UserID] - FROM [RoUsages] - JOIN [RODbs] ON - [RODbs].[RODbID]=[RoUsages].[RODbID] - WHERE - [RoUsages].[ContentID]=@ContentID - - - SELECT - [Transitions].[TransitionID], - [Transitions].[FromID], - [Transitions].[ToID], - [Transitions].[RangeID], - [Transitions].[IsRange], - [Transitions].[TranType], - [Transitions].[Config], - [Transitions].[DTS], - [Transitions].[UserID], - [Transitions].[LastChanged], - [Items_RangeID].[PreviousID] [Item_RangeID_PreviousID], - [Items_RangeID].[ContentID] [Item_RangeID_ContentID], - [Items_RangeID].[DTS] [Item_RangeID_DTS], - [Items_RangeID].[UserID] [Item_RangeID_UserID], - [Items_ToID].[PreviousID] [Item_ToID_PreviousID], - [Items_ToID].[ContentID] [Item_ToID_ContentID], - [Items_ToID].[DTS] [Item_ToID_DTS], - [Items_ToID].[UserID] [Item_ToID_UserID] - FROM [Transitions] - JOIN [Items] [Items_RangeID] ON - [Items_RangeID].[ItemID]=[Transitions].[RangeID] - JOIN [Items] [Items_ToID] ON - [Items_ToID].[ItemID]=[Transitions].[ToID] - WHERE - [Transitions].[FromID]=@ContentID - - - SELECT - [ZContents].[ContentID], - [ZContents].[OldStepSequence], - [ZContents].[LastChanged] - FROM [ZContents] - WHERE - [ZContents].[ContentID]=@ContentID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContent Succeeded' -ELSE PRINT 'Procedure Creation: getContent Error on Creation' -GO - -/****** Object: StoredProcedure [getContentAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ContentAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAudit Succeeded' -ELSE PRINT 'Procedure Creation: getContentAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getContentAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ContentAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAudits Succeeded' -ELSE PRINT 'Procedure Creation: getContentAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getContentAuditsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsByContentID] -( - @ContentID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ContentAudits] - WHERE ContentID = @ContentID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getContents] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContents]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContents]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContents] - -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM [Contents] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContents Succeeded' -ELSE PRINT 'Procedure Creation: getContents Error on Creation' -GO - -/****** Object: StoredProcedure [getContentsByFormatID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentsByFormatID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentsByFormatID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentsByFormatID] - -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Contents].[ContentID], - [Contents].[Number], - [Contents].[Text], - [Contents].[Type], - [Contents].[FormatID], - [Contents].[Config], - [Contents].[DTS], - [Contents].[UserID], - [Contents].[LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM [Contents] - WHERE - [Contents].[FormatID]=@FormatID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentsByFormatID Succeeded' -ELSE PRINT 'Procedure Creation: getContentsByFormatID Error on Creation' -GO - -/****** Object: StoredProcedure [getDetail] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDetail]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDetail]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDetail] - -( - @DetailID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [DetailID], - [ContentID], - [ItemType], - [Text], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Details] - WHERE [DetailID]=@DetailID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDetail Succeeded' -ELSE PRINT 'Procedure Creation: getDetail Error on Creation' -GO - -/****** Object: StoredProcedure [getDetails] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDetails]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDetails]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDetails] - -WITH EXECUTE AS OWNER -AS - SELECT - [DetailID], - [ContentID], - [ItemType], - [Text], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Details] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDetails Succeeded' -ELSE PRINT 'Procedure Creation: getDetails Error on Creation' -GO - -/****** Object: StoredProcedure [getDetailsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDetailsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDetailsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDetailsByContentID] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Details].[DetailID], - [Details].[ContentID], - [Details].[ItemType], - [Details].[Text], - [Details].[Config], - [Details].[DTS], - [Details].[UserID], - [Details].[LastChanged] - FROM [Details] - WHERE - [Details].[ContentID]=@ContentID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDetailsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getDetailsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getDocument] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocument]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocument]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocument] - -( - @DocID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [DocID], - [LibTitle], - [DocContent], - [DocAscii], - [Config], - [DTS], - [UserID], - [LastChanged], - [FileExtension], - (SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[DocID]=[Documents].[DocID]) [DROUsageCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[DocID]=[Documents].[DocID]) [EntryCount], - (SELECT COUNT(*) FROM [Pdfs] WHERE [Pdfs].[DocID]=[Documents].[DocID]) [PdfCount] - FROM [Documents] - WHERE [DocID]=@DocID - - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [RODbs].[ROName] [RODb_ROName], - [RODbs].[FolderPath] [RODb_FolderPath], - [RODbs].[DBConnectionString] [RODb_DBConnectionString], - [RODbs].[Config] [RODb_Config], - [RODbs].[DTS] [RODb_DTS], - [RODbs].[UserID] [RODb_UserID] - FROM [DROUsages] - JOIN [RODbs] ON - [RODbs].[RODbID]=[DROUsages].[RODbID] - WHERE - [DROUsages].[DocID]=@DocID - - - SELECT - [Entries].[ContentID], - [Entries].[DocID], - [Entries].[DTS], - [Entries].[UserID], - [Entries].[LastChanged], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [Entries] - JOIN [Contents] ON - [Contents].[ContentID]=[Entries].[ContentID] - WHERE - [Entries].[DocID]=@DocID - - - SELECT - [Pdfs].[DocID], - [Pdfs].[DebugStatus], - [Pdfs].[TopRow], - [Pdfs].[PageLength], - [Pdfs].[LeftMargin], - [Pdfs].[PageWidth], - [Pdfs].[PageCount], - [Pdfs].[DocPdf], - [Pdfs].[DTS], - [Pdfs].[UserID], - [Pdfs].[LastChanged] - FROM [Pdfs] - WHERE - [Pdfs].[DocID]=@DocID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocument Succeeded' -ELSE PRINT 'Procedure Creation: getDocument Error on Creation' -GO - -/****** Object: StoredProcedure [getDocumentAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocumentAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocumentAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocumentAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [DocID], - [LibTitle], - [DocContent], - [DocAscii], - [Config], - [DTS], - [UserID], - [FileExtension], - [DeleteStatus] - FROM [DocumentAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocumentAudit Succeeded' -ELSE PRINT 'Procedure Creation: getDocumentAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getDocumentAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocumentAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocumentAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocumentAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [DocID], - [LibTitle], - [DocContent], - [DocAscii], - [Config], - [DTS], - [UserID], - [FileExtension], - [DeleteStatus] - FROM [DocumentAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocumentAudits Succeeded' -ELSE PRINT 'Procedure Creation: getDocumentAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getDocumentAuditsByDocID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocumentAuditsByDocID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocumentAuditsByDocID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocumentAuditsByDocID] -( - @DocID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [DocID], - [LibTitle], - [DocContent], - [DocAscii], - [Config], - [DTS], - [UserID], - [FileExtension], - [DeleteStatus] - FROM [DocumentAudits] - WHERE DocID = @DocID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocumentAuditsByDocID Succeeded' -ELSE PRINT 'Procedure Creation: getDocumentAuditsByDocID Error on Creation' -GO - -/****** Object: StoredProcedure [getDocuments] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocuments]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocuments]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocuments] - -WITH EXECUTE AS OWNER -AS - SELECT - [DocID], - [LibTitle], - [DocContent], - [DocAscii], - [Config], - [DTS], - [UserID], - [LastChanged], - [FileExtension], - (SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[DocID]=[Documents].[DocID]) [DROUsageCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[DocID]=[Documents].[DocID]) [EntryCount], - (SELECT COUNT(*) FROM [Pdfs] WHERE [Pdfs].[DocID]=[Documents].[DocID]) [PdfCount] - FROM [Documents] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocuments Succeeded' -ELSE PRINT 'Procedure Creation: getDocuments Error on Creation' -GO - -/****** Object: StoredProcedure [getDocVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocVersion] - -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [VersionID], - [FolderID], - [VersionType], - [Name], - [Title], - [ItemID], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[VersionID]=[DocVersions].[VersionID]) [AssociationCount] - FROM [DocVersions] - WHERE [VersionID]=@VersionID - - SELECT - [Associations].[AssociationID], - [Associations].[VersionID], - [Associations].[ROFstID], - [Associations].[Config], - [Associations].[DTS], - [Associations].[UserID], - [Associations].[LastChanged], - [ROFsts].[RODbID] [ROFst_RODbID], - [ROFsts].[ROLookup] [ROFst_ROLookup], - [ROFsts].[Config] [ROFst_Config], - [ROFsts].[DTS] [ROFst_DTS], - [ROFsts].[UserID] [ROFst_UserID] - FROM [Associations] - JOIN [ROFsts] ON - [ROFsts].[ROFstID]=[Associations].[ROFstID] - WHERE - [Associations].[VersionID]=@VersionID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocVersion Succeeded' -ELSE PRINT 'Procedure Creation: getDocVersion Error on Creation' -GO - -/****** Object: StoredProcedure [getDocVersions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocVersions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocVersions] - -WITH EXECUTE AS OWNER -AS - SELECT - [VersionID], - [FolderID], - [VersionType], - [Name], - [Title], - [ItemID], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[VersionID]=[DocVersions].[VersionID]) [AssociationCount] - FROM [DocVersions] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocVersions Succeeded' -ELSE PRINT 'Procedure Creation: getDocVersions Error on Creation' -GO - -/****** Object: StoredProcedure [getDocVersionsByFolderID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocVersionsByFolderID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocVersionsByFolderID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocVersionsByFolderID] - -( - @FolderID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [DocVersions].[VersionID], - [DocVersions].[FolderID], - [DocVersions].[VersionType], - [DocVersions].[Name], - [DocVersions].[Title], - [DocVersions].[ItemID], - [DocVersions].[FormatID], - [DocVersions].[Config], - [DocVersions].[DTS], - [DocVersions].[UserID], - [DocVersions].[LastChanged], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[VersionID]=[DocVersions].[VersionID]) [AssociationCount] - FROM [DocVersions] - WHERE - [DocVersions].[FolderID]=@FolderID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocVersionsByFolderID Succeeded' -ELSE PRINT 'Procedure Creation: getDocVersionsByFolderID Error on Creation' -GO - -/****** Object: StoredProcedure [getDocVersionsByFormatID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocVersionsByFormatID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocVersionsByFormatID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocVersionsByFormatID] - -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [DocVersions].[VersionID], - [DocVersions].[FolderID], - [DocVersions].[VersionType], - [DocVersions].[Name], - [DocVersions].[Title], - [DocVersions].[ItemID], - [DocVersions].[FormatID], - [DocVersions].[Config], - [DocVersions].[DTS], - [DocVersions].[UserID], - [DocVersions].[LastChanged], - [Folders].[ParentID] [Folder_ParentID], - [Folders].[DBID] [Folder_DBID], - [Folders].[Name] [Folder_Name], - [Folders].[Title] [Folder_Title], - [Folders].[ShortName] [Folder_ShortName], - [Folders].[FormatID] [Folder_FormatID], - [Folders].[ManualOrder] [Folder_ManualOrder], - [Folders].[Config] [Folder_Config], - [Folders].[DTS] [Folder_DTS], - [Folders].[UsrID] [Folder_UsrID], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[VersionID]=[DocVersions].[VersionID]) [AssociationCount] - FROM [DocVersions] - JOIN [Folders] ON - [Folders].[FolderID]=[DocVersions].[FolderID] - WHERE - [DocVersions].[FormatID]=@FormatID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocVersionsByFormatID Succeeded' -ELSE PRINT 'Procedure Creation: getDocVersionsByFormatID Error on Creation' -GO - -/****** Object: StoredProcedure [getDocVersionsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocVersionsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocVersionsByItemID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocVersionsByItemID] - -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [DocVersions].[VersionID], - [DocVersions].[FolderID], - [DocVersions].[VersionType], - [DocVersions].[Name], - [DocVersions].[Title], - [DocVersions].[ItemID], - [DocVersions].[FormatID], - [DocVersions].[Config], - [DocVersions].[DTS], - [DocVersions].[UserID], - [DocVersions].[LastChanged], - [Folders].[ParentID] [Folder_ParentID], - [Folders].[DBID] [Folder_DBID], - [Folders].[Name] [Folder_Name], - [Folders].[Title] [Folder_Title], - [Folders].[ShortName] [Folder_ShortName], - [Folders].[FormatID] [Folder_FormatID], - [Folders].[ManualOrder] [Folder_ManualOrder], - [Folders].[Config] [Folder_Config], - [Folders].[DTS] [Folder_DTS], - [Folders].[UsrID] [Folder_UsrID], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[VersionID]=[DocVersions].[VersionID]) [AssociationCount] - FROM [DocVersions] - JOIN [Folders] ON - [Folders].[FolderID]=[DocVersions].[FolderID] - WHERE - [DocVersions].[ItemID]=@ItemID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocVersionsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getDocVersionsByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getDROUsage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDROUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDROUsage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDROUsage] - -( - @DROUsageID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [DROUsageID], - [DocID], - [ROID], - [Config], - [DTS], - [UserID], - [LastChanged], - [RODbID] - FROM [DROUsages] - WHERE [DROUsageID]=@DROUsageID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDROUsage Succeeded' -ELSE PRINT 'Procedure Creation: getDROUsage Error on Creation' -GO - -/****** Object: StoredProcedure [getDROUsages] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDROUsages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDROUsages]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDROUsages] - -WITH EXECUTE AS OWNER -AS - SELECT - [DROUsageID], - [DocID], - [ROID], - [Config], - [DTS], - [UserID], - [LastChanged], - [RODbID] - FROM [DROUsages] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDROUsages Succeeded' -ELSE PRINT 'Procedure Creation: getDROUsages Error on Creation' -GO - -/****** Object: StoredProcedure [getDROUsagesByDocID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDROUsagesByDocID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDROUsagesByDocID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDROUsagesByDocID] - -( - @DocID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [RODbs].[ROName] [RODb_ROName], - [RODbs].[FolderPath] [RODb_FolderPath], - [RODbs].[DBConnectionString] [RODb_DBConnectionString], - [RODbs].[Config] [RODb_Config], - [RODbs].[DTS] [RODb_DTS], - [RODbs].[UserID] [RODb_UserID] - FROM [DROUsages] - JOIN [RODbs] ON - [RODbs].[RODbID]=[DROUsages].[RODbID] - WHERE - [DROUsages].[DocID]=@DocID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDROUsagesByDocID Succeeded' -ELSE PRINT 'Procedure Creation: getDROUsagesByDocID Error on Creation' -GO - -/****** Object: StoredProcedure [getDROUsagesByRODbID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDROUsagesByRODbID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDROUsagesByRODbID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDROUsagesByRODbID] - -( - @RODbID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [DROUsages] - JOIN [Documents] ON - [Documents].[DocID]=[DROUsages].[DocID] - WHERE - [DROUsages].[RODbID]=@RODbID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDROUsagesByRODbID Succeeded' -ELSE PRINT 'Procedure Creation: getDROUsagesByRODbID Error on Creation' -GO - -/****** Object: StoredProcedure [getDRoUsagesByROIDs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDRoUsagesByROIDs]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDRoUsagesByROIDs]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDRoUsagesByROIDs] -( - @ROIDs nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [DRoUsages] - JOIN vefn_SplitROSearch(@ROIDs) SS - ON [DRoUsages].RODBID = SS.[RODBID] and [DRoUsages].[ROID] like SS.[ROID] + '%' - JOIN [Documents] ON - [Documents].[DocID]=[DROUsages].[DocID] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDRoUsagesByROIDs Succeeded' -ELSE PRINT 'Procedure Creation: getDRoUsagesByROIDs Error on Creation' -GO - -/****** Object: StoredProcedure [getEntries] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getEntries]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getEntries]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getEntries] - -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [DocID], - [DTS], - [UserID], - [LastChanged] - FROM [Entries] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getEntries Succeeded' -ELSE PRINT 'Procedure Creation: getEntries Error on Creation' -GO - -/****** Object: StoredProcedure [getEntriesByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getEntriesByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getEntriesByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getEntriesByContentID] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Entries].[ContentID], - [Entries].[DocID], - [Entries].[DTS], - [Entries].[UserID], - [Entries].[LastChanged], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [Entries] - JOIN [Documents] ON - [Documents].[DocID]=[Entries].[DocID] - WHERE - [Entries].[ContentID]=@ContentID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getEntriesByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getEntriesByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getEntriesByDocID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getEntriesByDocID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getEntriesByDocID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getEntriesByDocID] - -( - @DocID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Entries].[ContentID], - [Entries].[DocID], - [Entries].[DTS], - [Entries].[UserID], - [Entries].[LastChanged], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [Entries] - JOIN [Contents] ON - [Contents].[ContentID]=[Entries].[ContentID] - WHERE - [Entries].[DocID]=@DocID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getEntriesByDocID Succeeded' -ELSE PRINT 'Procedure Creation: getEntriesByDocID Error on Creation' -GO - -/****** Object: StoredProcedure [getEntry] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getEntry]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getEntry]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getEntry] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [DocID], - [DTS], - [UserID], - [LastChanged] - FROM [Entries] - WHERE [ContentID]=@ContentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getEntry Succeeded' -ELSE PRINT 'Procedure Creation: getEntry Error on Creation' -GO - -/****** Object: StoredProcedure [getEntryAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getEntryAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getEntryAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getEntryAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [DocID], - [DTS], - [UserID], - [DeleteStatus] - FROM [EntryAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getEntryAudit Succeeded' -ELSE PRINT 'Procedure Creation: getEntryAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getEntryAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getEntryAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getEntryAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getEntryAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [DocID], - [DTS], - [UserID], - [DeleteStatus] - FROM [EntryAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getEntryAudits Succeeded' -ELSE PRINT 'Procedure Creation: getEntryAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getEntryAuditsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getEntryAuditsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getEntryAuditsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getEntryAuditsByContentID] -( - @ContentID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [DocID], - [DTS], - [UserID], - [DeleteStatus] - FROM [EntryAudits] - WHERE ContentID = @ContentID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getEntryAuditsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getEntryAuditsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getExternalTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getExternalTransitions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getExternalTransitions]; -GO - -/* -exec getExternalTransitions 4984 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getExternalTransitions] -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - SELECT - TT.[TransitionID], - TT.[FromID], - TT.[ToID], - TT.[RangeID], - TT.[IsRange], - TT.[TranType], - TT.[Config], - TT.[DTS], - TT.[UserID], - TT.[LastChanged], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=TT.[TransitionID]) [ZTransitionCount] - from transitions tt - join items ii on tt.FromID = ii.ContentID - where TT.ToID = @ItemID AND TT.FromID not in(select ContentID from vefn_childItems(@ItemID)) - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getExternalTransitions Succeeded' -ELSE PRINT 'Procedure Creation: getExternalTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [getExternalTransitionsToChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getExternalTransitionsToChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getExternalTransitionsToChildren]; -GO - -/* -exec getExternalTransitionsToChildren 9392 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getExternalTransitionsToChildren] -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - SELECT - TT.[TransitionID], - TT.[FromID], - TT.[ToID], - TT.[RangeID], - TT.[IsRange], - TT.[TranType], - TT.[Config], - TT.[DTS], - TT.[UserID], - TT.[LastChanged], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=TT.[TransitionID]) [ZTransitionCount] - FROM vefn_childItems(@ItemID) II - JOIN Transitions TT on TT.ToID = II.ItemID AND TT.ToID <> @ItemID - where TT.FromID not in(select ContentID from vefn_childItems(@ItemID)) - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getExternalTransitionsToChildren Succeeded' -ELSE PRINT 'Procedure Creation: getExternalTransitionsToChildren Error on Creation' -GO - -/****** Object: StoredProcedure [getFigure] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFigure]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFigure]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFigure] - -( - @FigureID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FigureID], - [ROFstID], - [ImageID], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Figures] - WHERE [FigureID]=@FigureID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFigure Succeeded' -ELSE PRINT 'Procedure Creation: getFigure Error on Creation' -GO - -/****** Object: StoredProcedure [getFigureByROFstID_ImageID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFigureByROFstID_ImageID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFigureByROFstID_ImageID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFigureByROFstID_ImageID] -( - @ROFstID int, - @ImageID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FigureID], - [ROFstID], - [ImageID], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Figures] - WHERE [ROFstID]=@ROFstID AND [ImageID]=@ImageID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFigureByROFstID_ImageID Succeeded' -ELSE PRINT 'Procedure Creation: getFigureByROFstID_ImageID Error on Creation' -GO - -/****** Object: StoredProcedure [getFigures] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFigures]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFigures]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFigures] - -WITH EXECUTE AS OWNER -AS - SELECT - [FigureID], - [ROFstID], - [ImageID], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Figures] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFigures Succeeded' -ELSE PRINT 'Procedure Creation: getFigures Error on Creation' -GO - -/****** Object: StoredProcedure [getFiguresByImageID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFiguresByImageID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFiguresByImageID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFiguresByImageID] - -( - @ImageID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Figures].[FigureID], - [Figures].[ROFstID], - [Figures].[ImageID], - [Figures].[Config], - [Figures].[DTS], - [Figures].[UserID], - [Figures].[LastChanged], - [ROFsts].[RODbID] [ROFst_RODbID], - [ROFsts].[ROLookup] [ROFst_ROLookup], - [ROFsts].[Config] [ROFst_Config], - [ROFsts].[DTS] [ROFst_DTS], - [ROFsts].[UserID] [ROFst_UserID] - FROM [Figures] - JOIN [ROFsts] ON - [ROFsts].[ROFstID]=[Figures].[ROFstID] - WHERE - [Figures].[ImageID]=@ImageID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFiguresByImageID Succeeded' -ELSE PRINT 'Procedure Creation: getFiguresByImageID Error on Creation' -GO - -/****** Object: StoredProcedure [getFiguresByROFstID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFiguresByROFstID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFiguresByROFstID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFiguresByROFstID] - -( - @ROFstID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Figures].[FigureID], - [Figures].[ROFstID], - [Figures].[ImageID], - [Figures].[Config], - [Figures].[DTS], - [Figures].[UserID], - [Figures].[LastChanged], - [ROImages].[RODbID] [ROImage_RODbID], - [ROImages].[FileName] [ROImage_FileName], - [ROImages].[Content] [ROImage_Content], - [ROImages].[Config] [ROImage_Config], - [ROImages].[DTS] [ROImage_DTS], - [ROImages].[UserID] [ROImage_UserID] - FROM [Figures] - JOIN [ROImages] ON - [ROImages].[ImageID]=[Figures].[ImageID] - WHERE - [Figures].[ROFstID]=@ROFstID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFiguresByROFstID Succeeded' -ELSE PRINT 'Procedure Creation: getFiguresByROFstID Error on Creation' -GO - -/****** Object: StoredProcedure [getFolder] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFolder]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFolder]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFolder] - -( - @FolderID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FolderID], - [ParentID], - [DBID], - [Name], - [Title], - [ShortName], - [FormatID], - [ManualOrder], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[FolderID]=[Folders].[FolderID]) [AssignmentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FolderID]=[Folders].[FolderID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] [Children] WHERE [Children].[ParentID]=[Folders].[FolderID]) [ChildCount] - FROM [Folders] - WHERE [FolderID]=@FolderID - - SELECT - [Assignments].[AID], - [Assignments].[GID], - [Assignments].[RID], - [Assignments].[FolderID], - [Assignments].[StartDate], - [Assignments].[EndDate], - [Assignments].[DTS], - [Assignments].[UsrID], - [Assignments].[LastChanged], - [Groups].[GroupName] [Group_GroupName], - [Groups].[GroupType] [Group_GroupType], - [Groups].[Config] [Group_Config], - [Groups].[DTS] [Group_DTS], - [Groups].[UsrID] [Group_UsrID], - [Roles].[Name] [Role_Name], - [Roles].[Title] [Role_Title], - [Roles].[DTS] [Role_DTS], - [Roles].[UsrID] [Role_UsrID] - FROM [Assignments] - JOIN [Groups] ON - [Groups].[GID]=[Assignments].[GID] - JOIN [Roles] ON - [Roles].[RID]=[Assignments].[RID] - WHERE - [Assignments].[FolderID]=@FolderID - - - SELECT - [DocVersions].[VersionID], - [DocVersions].[FolderID], - [DocVersions].[VersionType], - [DocVersions].[Name], - [DocVersions].[Title], - [DocVersions].[ItemID], - [DocVersions].[FormatID], - [DocVersions].[Config], - [DocVersions].[DTS], - [DocVersions].[UserID], - [DocVersions].[LastChanged] - FROM [DocVersions] - WHERE - [DocVersions].[FolderID]=@FolderID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFolder Succeeded' -ELSE PRINT 'Procedure Creation: getFolder Error on Creation' -GO - -/****** Object: StoredProcedure [getFolderByParentID_Name] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFolderByParentID_Name]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFolderByParentID_Name]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFolderByParentID_Name] -( - @ParentID int, - @Name nvarchar(100) -) -WITH EXECUTE AS OWNER -AS - SELECT - [FolderID], - [ParentID], - [DBID], - [Name], - [Title], - [ShortName], - [FormatID], - [ManualOrder], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[FolderID]=[Folders].[FolderID]) [AssignmentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FolderID]=[Folders].[FolderID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] [Children] WHERE [Children].[ParentID]=[Folders].[FolderID]) [ChildCount] - FROM [Folders] - WHERE [ParentID]=@ParentID AND [Name]=@Name - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFolderByParentID_Name Succeeded' -ELSE PRINT 'Procedure Creation: getFolderByParentID_Name Error on Creation' -GO - -/****** Object: StoredProcedure [getFolders] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFolders]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFolders]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFolders] - -WITH EXECUTE AS OWNER -AS - SELECT - [FolderID], - [ParentID], - [DBID], - [Name], - [Title], - [ShortName], - [FormatID], - [ManualOrder], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[FolderID]=[Folders].[FolderID]) [AssignmentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FolderID]=[Folders].[FolderID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] [Children] WHERE [Children].[ParentID]=[Folders].[FolderID]) [ChildCount] - FROM [Folders] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFolders Succeeded' -ELSE PRINT 'Procedure Creation: getFolders Error on Creation' -GO - -/****** Object: StoredProcedure [getFoldersByDBID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFoldersByDBID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFoldersByDBID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFoldersByDBID] - -( - @DBID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Folders].[FolderID], - [Folders].[ParentID], - [Folders].[DBID], - [Folders].[Name], - [Folders].[Title], - [Folders].[ShortName], - [Folders].[FormatID], - [Folders].[ManualOrder], - [Folders].[Config], - [Folders].[DTS], - [Folders].[UsrID], - [Folders].[LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[FolderID]=[Folders].[FolderID]) [AssignmentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FolderID]=[Folders].[FolderID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] [Children] WHERE [Children].[ParentID]=[Folders].[FolderID]) [ChildCount] - FROM [Folders] - WHERE - [Folders].[DBID]=@DBID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFoldersByDBID Succeeded' -ELSE PRINT 'Procedure Creation: getFoldersByDBID Error on Creation' -GO - -/****** Object: StoredProcedure [getFoldersByFormatID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFoldersByFormatID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFoldersByFormatID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFoldersByFormatID] - -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Folders].[FolderID], - [Folders].[ParentID], - [Folders].[DBID], - [Folders].[Name], - [Folders].[Title], - [Folders].[ShortName], - [Folders].[FormatID], - [Folders].[ManualOrder], - [Folders].[Config], - [Folders].[DTS], - [Folders].[UsrID], - [Folders].[LastChanged], - [Connections].[Name] [Connection_Name], - [Connections].[Title] [Connection_Title], - [Connections].[ConnectionString] [Connection_ConnectionString], - [Connections].[ServerType] [Connection_ServerType], - [Connections].[Config] [Connection_Config], - [Connections].[DTS] [Connection_DTS], - [Connections].[UsrID] [Connection_UsrID], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[FolderID]=[Folders].[FolderID]) [AssignmentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FolderID]=[Folders].[FolderID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] [Children] WHERE [Children].[ParentID]=[Folders].[FolderID]) [ChildCount] - FROM [Folders] - JOIN [Connections] ON - [Connections].[DBID]=[Folders].[DBID] - WHERE - [Folders].[FormatID]=@FormatID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFoldersByFormatID Succeeded' -ELSE PRINT 'Procedure Creation: getFoldersByFormatID Error on Creation' -GO - -/****** Object: StoredProcedure [getFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFormat]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFormat] - -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FormatID], - [ParentID], - [Name], - [Description], - [Data], - [GenMac], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] - FROM [Formats] - WHERE [FormatID]=@FormatID - - SELECT - [Contents].[ContentID], - [Contents].[Number], - [Contents].[Text], - [Contents].[Type], - [Contents].[FormatID], - [Contents].[Config], - [Contents].[DTS], - [Contents].[UserID], - [Contents].[LastChanged] - FROM [Contents] - WHERE - [Contents].[FormatID]=@FormatID - - - SELECT - [DocVersions].[VersionID], - [DocVersions].[FolderID], - [DocVersions].[VersionType], - [DocVersions].[Name], - [DocVersions].[Title], - [DocVersions].[ItemID], - [DocVersions].[FormatID], - [DocVersions].[Config], - [DocVersions].[DTS], - [DocVersions].[UserID], - [DocVersions].[LastChanged], - [Folders].[ParentID] [Folder_ParentID], - [Folders].[DBID] [Folder_DBID], - [Folders].[Name] [Folder_Name], - [Folders].[Title] [Folder_Title], - [Folders].[ShortName] [Folder_ShortName], - [Folders].[FormatID] [Folder_FormatID], - [Folders].[ManualOrder] [Folder_ManualOrder], - [Folders].[Config] [Folder_Config], - [Folders].[DTS] [Folder_DTS], - [Folders].[UsrID] [Folder_UsrID] - FROM [DocVersions] - JOIN [Folders] ON - [Folders].[FolderID]=[DocVersions].[FolderID] - WHERE - [DocVersions].[FormatID]=@FormatID - - - SELECT - [Folders].[FolderID], - [Folders].[ParentID], - [Folders].[DBID], - [Folders].[Name], - [Folders].[Title], - [Folders].[ShortName], - [Folders].[FormatID], - [Folders].[ManualOrder], - [Folders].[Config], - [Folders].[DTS], - [Folders].[UsrID], - [Folders].[LastChanged], - [Connections].[Name] [Connection_Name], - [Connections].[Title] [Connection_Title], - [Connections].[ConnectionString] [Connection_ConnectionString], - [Connections].[ServerType] [Connection_ServerType], - [Connections].[Config] [Connection_Config], - [Connections].[DTS] [Connection_DTS], - [Connections].[UsrID] [Connection_UsrID] - FROM [Folders] - JOIN [Connections] ON - [Connections].[DBID]=[Folders].[DBID] - WHERE - [Folders].[FormatID]=@FormatID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFormat Succeeded' -ELSE PRINT 'Procedure Creation: getFormat Error on Creation' -GO - -/****** Object: StoredProcedure [getJustFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getJustFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getJustFormat]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getJustFormat] - -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FormatID], - [ParentID], - [Name], - [Description], - [Data], - [GenMac], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] - FROM [Formats] - WHERE [FormatID]=@FormatID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getJustFormat Succeeded' -ELSE PRINT 'Procedure Creation: getJustFormat Error on Creation' -GO - -/****** Object: StoredProcedure [getFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFormatByName]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFormatByName]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFormatByName] - -( - @Name varchar(255) -) -WITH EXECUTE AS OWNER -AS - DECLARE @FormatID INT - Set @FormatID = (select FormatID from Formats where Name = @Name) - SELECT - [FormatID], - [ParentID], - [Name], - [Description], - [Data], - [GenMac], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] - FROM [Formats] - WHERE [FormatID]=@FormatID - - SELECT - [Contents].[ContentID], - [Contents].[Number], - [Contents].[Text], - [Contents].[Type], - [Contents].[FormatID], - [Contents].[Config], - [Contents].[DTS], - [Contents].[UserID], - [Contents].[LastChanged] - FROM [Contents] - WHERE - [Contents].[FormatID]=@FormatID - - - SELECT - [DocVersions].[VersionID], - [DocVersions].[FolderID], - [DocVersions].[VersionType], - [DocVersions].[Name], - [DocVersions].[Title], - [DocVersions].[ItemID], - [DocVersions].[FormatID], - [DocVersions].[Config], - [DocVersions].[DTS], - [DocVersions].[UserID], - [DocVersions].[LastChanged], - [Folders].[ParentID] [Folder_ParentID], - [Folders].[DBID] [Folder_DBID], - [Folders].[Name] [Folder_Name], - [Folders].[Title] [Folder_Title], - [Folders].[ShortName] [Folder_ShortName], - [Folders].[FormatID] [Folder_FormatID], - [Folders].[ManualOrder] [Folder_ManualOrder], - [Folders].[Config] [Folder_Config], - [Folders].[DTS] [Folder_DTS], - [Folders].[UsrID] [Folder_UsrID] - FROM [DocVersions] - JOIN [Folders] ON - [Folders].[FolderID]=[DocVersions].[FolderID] - WHERE - [DocVersions].[FormatID]=@FormatID - - - SELECT - [Folders].[FolderID], - [Folders].[ParentID], - [Folders].[DBID], - [Folders].[Name], - [Folders].[Title], - [Folders].[ShortName], - [Folders].[FormatID], - [Folders].[ManualOrder], - [Folders].[Config], - [Folders].[DTS], - [Folders].[UsrID], - [Folders].[LastChanged], - [Connections].[Name] [Connection_Name], - [Connections].[Title] [Connection_Title], - [Connections].[ConnectionString] [Connection_ConnectionString], - [Connections].[ServerType] [Connection_ServerType], - [Connections].[Config] [Connection_Config], - [Connections].[DTS] [Connection_DTS], - [Connections].[UsrID] [Connection_UsrID] - FROM [Folders] - JOIN [Connections] ON - [Connections].[DBID]=[Folders].[DBID] - WHERE - [Folders].[FormatID]=@FormatID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFormat Succeeded' -ELSE PRINT 'Procedure Creation: getFormat Error on Creation' -GO - -/****** Object: StoredProcedure [getFormatByParentID_Name] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFormatByParentID_Name]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFormatByParentID_Name]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFormatByParentID_Name] -( - @ParentID int, - @Name nvarchar(20) -) -WITH EXECUTE AS OWNER -AS - SELECT - [FormatID], - [ParentID], - [Name], - [Description], - [Data], - [GenMac], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] - FROM [Formats] - WHERE [ParentID]=@ParentID AND [Name]=@Name - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFormatByParentID_Name Succeeded' -ELSE PRINT 'Procedure Creation: getFormatByParentID_Name Error on Creation' -GO - -/****** Object: StoredProcedure [getFormats] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFormats]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFormats]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFormats] - -WITH EXECUTE AS OWNER -AS - SELECT - [FormatID], - [ParentID], - [Name], - [Description], - [Data], - [GenMac], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] - FROM [Formats] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFormats Succeeded' -ELSE PRINT 'Procedure Creation: getFormats Error on Creation' -GO - -/****** Object: StoredProcedure [getGrid] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGrid]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGrid]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGrid] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [Data], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Grids] - WHERE [ContentID]=@ContentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGrid Succeeded' -ELSE PRINT 'Procedure Creation: getGrid Error on Creation' -GO - -/****** Object: StoredProcedure [getGridAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGridAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGridAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGridAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [GridAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGridAudit Succeeded' -ELSE PRINT 'Procedure Creation: getGridAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getGridAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGridAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGridAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGridAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [GridAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGridAudits Succeeded' -ELSE PRINT 'Procedure Creation: getGridAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getGridAuditsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGridAuditsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGridAuditsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGridAuditsByContentID] -( - @ContentID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [GridAudits] - WHERE ContentID = @ContentID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGridAuditsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getGridAuditsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getGrids] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGrids]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGrids]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGrids] - -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [Data], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Grids] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGrids Succeeded' -ELSE PRINT 'Procedure Creation: getGrids Error on Creation' -GO - -/****** Object: StoredProcedure [getGridsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGridsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGridsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGridsByContentID] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Grids].[ContentID], - [Grids].[Data], - [Grids].[Config], - [Grids].[DTS], - [Grids].[UserID], - [Grids].[LastChanged] - FROM [Grids] - WHERE - [Grids].[ContentID]=@ContentID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGridsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getGridsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getGroup] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGroup]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGroup]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGroup] - -( - @GID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [GID], - [GroupName], - [GroupType], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[GID]=[Groups].[GID]) [AssignmentCount], - (SELECT COUNT(*) FROM [Memberships] WHERE [Memberships].[GID]=[Groups].[GID]) [MembershipCount] - FROM [Groups] - WHERE [GID]=@GID - - SELECT - [Assignments].[AID], - [Assignments].[GID], - [Assignments].[RID], - [Assignments].[FolderID], - [Assignments].[StartDate], - [Assignments].[EndDate], - [Assignments].[DTS], - [Assignments].[UsrID], - [Assignments].[LastChanged], - [Folders].[ParentID] [Folder_ParentID], - [Folders].[DBID] [Folder_DBID], - [Folders].[Name] [Folder_Name], - [Folders].[Title] [Folder_Title], - [Folders].[ShortName] [Folder_ShortName], - [Folders].[FormatID] [Folder_FormatID], - [Folders].[ManualOrder] [Folder_ManualOrder], - [Folders].[Config] [Folder_Config], - [Folders].[DTS] [Folder_DTS], - [Folders].[UsrID] [Folder_UsrID], - [Roles].[Name] [Role_Name], - [Roles].[Title] [Role_Title], - [Roles].[DTS] [Role_DTS], - [Roles].[UsrID] [Role_UsrID] - FROM [Assignments] - JOIN [Folders] ON - [Folders].[FolderID]=[Assignments].[FolderID] - JOIN [Roles] ON - [Roles].[RID]=[Assignments].[RID] - WHERE - [Assignments].[GID]=@GID - - - SELECT - [Memberships].[UGID], - [Memberships].[UID], - [Memberships].[GID], - [Memberships].[StartDate], - [Memberships].[EndDate], - [Memberships].[Config], - [Memberships].[DTS], - [Memberships].[UsrID], - [Memberships].[LastChanged], - [Users].[UserID] [User_UserID], - [Users].[FirstName] [User_FirstName], - [Users].[MiddleName] [User_MiddleName], - [Users].[LastName] [User_LastName], - [Users].[Suffix] [User_Suffix], - [Users].[CourtesyTitle] [User_CourtesyTitle], - [Users].[PhoneNumber] [User_PhoneNumber], - [Users].[CFGName] [User_CFGName], - [Users].[UserLogin] [User_UserLogin], - [Users].[UserName] [User_UserName], - [Users].[Config] [User_Config], - [Users].[DTS] [User_DTS], - [Users].[UsrID] [User_UsrID] - FROM [Memberships] - JOIN [Users] ON - [Users].[UID]=[Memberships].[UID] - WHERE - [Memberships].[GID]=@GID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGroup Succeeded' -ELSE PRINT 'Procedure Creation: getGroup Error on Creation' -GO - -/****** Object: StoredProcedure [getGroupByGroupName] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGroupByGroupName]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGroupByGroupName]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGroupByGroupName] -( - @GroupName nvarchar(50) -) -WITH EXECUTE AS OWNER -AS - SELECT - [GID], - [GroupName], - [GroupType], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[GID]=[Groups].[GID]) [AssignmentCount], - (SELECT COUNT(*) FROM [Memberships] WHERE [Memberships].[GID]=[Groups].[GID]) [MembershipCount] - FROM [Groups] - WHERE [GroupName]=@GroupName - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGroupByGroupName Succeeded' -ELSE PRINT 'Procedure Creation: getGroupByGroupName Error on Creation' -GO - -/****** Object: StoredProcedure [getGroups] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGroups]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGroups]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGroups] - -WITH EXECUTE AS OWNER -AS - SELECT - [GID], - [GroupName], - [GroupType], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[GID]=[Groups].[GID]) [AssignmentCount], - (SELECT COUNT(*) FROM [Memberships] WHERE [Memberships].[GID]=[Groups].[GID]) [MembershipCount] - FROM [Groups] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGroups Succeeded' -ELSE PRINT 'Procedure Creation: getGroups Error on Creation' -GO - -/****** Object: StoredProcedure [getImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getImage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getImage] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [ImageType], - [FileName], - [Data], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Images] - WHERE [ContentID]=@ContentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getImage Succeeded' -ELSE PRINT 'Procedure Creation: getImage Error on Creation' -GO - -/****** Object: StoredProcedure [getImageAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getImageAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getImageAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getImageAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [ImageType], - [FileName], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ImageAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getImageAudit Succeeded' -ELSE PRINT 'Procedure Creation: getImageAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getImageAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getImageAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getImageAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getImageAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [ImageType], - [FileName], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ImageAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getImageAudits Succeeded' -ELSE PRINT 'Procedure Creation: getImageAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getImageAuditsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getImageAuditsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getImageAuditsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getImageAuditsByContentID] -( - @ContentID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [ImageType], - [FileName], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ImageAudits] - WHERE ContentID = @ContentID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getImageAuditsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getImageAuditsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getImages] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getImages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getImages]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getImages] - -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [ImageType], - [FileName], - [Data], - [Config], - [DTS], - [UserID], - [LastChanged] - FROM [Images] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getImages Succeeded' -ELSE PRINT 'Procedure Creation: getImages Error on Creation' -GO - -/****** Object: StoredProcedure [getImagesByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getImagesByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getImagesByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getImagesByContentID] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Images].[ContentID], - [Images].[ImageType], - [Images].[FileName], - [Images].[Data], - [Images].[Config], - [Images].[DTS], - [Images].[UserID], - [Images].[LastChanged] - FROM [Images] - WHERE - [Images].[ContentID]=@ContentID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getImagesByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getImagesByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemAndChildren]; -GO - --- getItemAndChildren 111 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemAndChildren] (@ItemID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged] from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: getItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [getItemAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ItemID], - [PreviousID], - [ContentID], - [DTS], - [UserID], - [DeleteStatus] - FROM [ItemAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemAudit Succeeded' -ELSE PRINT 'Procedure Creation: getItemAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getItemAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ItemID], - [PreviousID], - [ContentID], - [DTS], - [UserID], - [DeleteStatus] - FROM [ItemAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemAudits Succeeded' -ELSE PRINT 'Procedure Creation: getItemAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getItemNextAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemNextAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemNextAndChildren]; -GO - --- getItemNextAndChildren 111 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemNextAndChildren] (@ItemID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged] from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemNextAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: getItemNextAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [getItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItems]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItems]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItems] - -WITH EXECUTE AS OWNER -AS - SELECT - [ItemID], - [PreviousID], - [ContentID], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[Items].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[Items].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[Items].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[Items].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[Items].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[Items].[ItemID]) [Transition_ToIDCount] - FROM [Items] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItems Succeeded' -ELSE PRINT 'Procedure Creation: getItems Error on Creation' -GO - -/****** Object: StoredProcedure [getItemsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemsByContentID] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Items].[ItemID], - [Items].[PreviousID], - [Items].[ContentID], - [Items].[DTS], - [Items].[UserID], - [Items].[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[Items].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[Items].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[Items].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[Items].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[Items].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[Items].[ItemID]) [Transition_ToIDCount] - FROM [Items] - WHERE - [Items].[ContentID]=@ContentID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getItemsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getItemsByPartType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemsByPartType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemsByPartType]; -GO - -/* samples: - getItemsByPartType 7 // tables - getItemsByPartType 1 // procedure - getItemsByPartType 2 // section - getItemsByPartType 3 // Cautions - getItemsByPartType 4 // Notes - getItemsByPartType 5 // RNOs - getItemsByPartType 6 // Steps - */ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemsByPartType](@FromType int) - -WITH EXECUTE AS OWNER -AS - SELECT - ii.[ItemID], - [PreviousID], - ii.[ContentID], - ii.[DTS], - ii.[UserID], - ii.[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ii.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ii.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ii.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ii.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ii.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ii.[ItemID]) [Transition_ToIDCount] - FROM [Items] ii - JOIN [Parts] pp on pp.ItemID = ii.ItemID - WHERE pp.Fromtype = @FromType - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemsByPartType Succeeded' -ELSE PRINT 'Procedure Creation: getItemsByPartType Error on Creation' -GO - -/****** Object: StoredProcedure [getItemsByPartTypeAndContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemsByPartTypeAndContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemsByPartTypeAndContent]; -GO - -/* samples: - getItemsByPartTypeAndContent 7 // tables - getItemsByPartTypeAndContent 1 // procedure - getItemsByPartTypeAndContent 2 // section - getItemsByPartTypeAndContent 3 // Cautions - getItemsByPartTypeAndContent 4 // Notes - getItemsByPartTypeAndContent 5 // RNOs - getItemsByPartTypeAndContent 6 // Steps - */ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemsByPartTypeAndContent](@FromType int) - -WITH EXECUTE AS OWNER -AS - SELECT - ii.[ItemID], - [PreviousID], - ii.[ContentID], - ii.[DTS], - ii.[UserID], - ii.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ii.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ii.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ii.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ii.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ii.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ii.[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - FROM [Items] ii - JOIN [Parts] pp on pp.ItemID = ii.ItemID - JOIN [Contents] C on C.ContentID = ii.ContentID - WHERE pp.Fromtype = @FromType - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemsByPartTypeAndContent Succeeded' -ELSE PRINT 'Procedure Creation: getItemsByPartTypeAndContent Error on Creation' -GO - -/****** Object: StoredProcedure [getJustRODb] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getJustRODb]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getJustRODb]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getJustRODb] - -( - @RODbID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [RODbID], - [ROName], - [FolderPath], - [DBConnectionString], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[RODbID]=[RODbs].[RODbID]) [DROUsageCount], - (SELECT COUNT(*) FROM [ROFsts] WHERE [ROFsts].[RODbID]=[RODbs].[RODbID]) [ROFstCount], - (SELECT COUNT(*) FROM [ROImages] WHERE [ROImages].[RODbID]=[RODbs].[RODbID]) [ROImageCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[RODbID]=[RODbs].[RODbID]) [RoUsageCount] - FROM [RODbs] - WHERE [RODbID]=@RODbID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getJustRODb Succeeded' -ELSE PRINT 'Procedure Creation: getJustRODb Error on Creation' -GO - -/****** Object: StoredProcedure [getJustROFst] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getJustROFst]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getJustROFst]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getJustROFst] -( - @ROFstID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ROFstID], - [RODbID], - [ROLookup], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] - FROM [ROFsts] - WHERE [ROFstID]=@ROFstID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getJustROFst Succeeded' -ELSE PRINT 'Procedure Creation: getJustROFst Error on Creation' -GO - -/****** Object: StoredProcedure [getLibraryDocuments] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getLibraryDocuments]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getLibraryDocuments]; -GO - ---getLibraryDocuments -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getLibraryDocuments] - -WITH EXECUTE AS OWNER -AS -SELECT -[DocID], -[LibTitle], -[DocContent], -[DocAscii], -[FileExtension], -[Config], -[DTS], -[UserID], -[LastChanged], -(SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[DocID]=[Documents].[DocID]) [DROUsageCount], -(SELECT COUNT(*) FROM [Entries] WHERE [Entries].[DocID]=[Documents].[DocID]) [EntryCount], -(SELECT COUNT(*) FROM [Pdfs] WHERE [Pdfs].[DocID]=[Documents].[DocID]) [PdfCount] -FROM [Documents] where [LibTitle] <> '' order by [LibTitle] -RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getLibraryDocuments Succeeded' -ELSE PRINT 'Procedure Creation: getLibraryDocuments Error on Creation' -GO - -/****** Object: StoredProcedure [getMembership] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getMembership]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getMembership]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getMembership] - -( - @UGID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [UGID], - [UID], - [GID], - [StartDate], - [EndDate], - [Config], - [DTS], - [UsrID], - [LastChanged] - FROM [Memberships] - WHERE [UGID]=@UGID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getMembership Succeeded' -ELSE PRINT 'Procedure Creation: getMembership Error on Creation' -GO - -/****** Object: StoredProcedure [getMemberships] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getMemberships]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getMemberships]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getMemberships] - -WITH EXECUTE AS OWNER -AS - SELECT - [UGID], - [UID], - [GID], - [StartDate], - [EndDate], - [Config], - [DTS], - [UsrID], - [LastChanged] - FROM [Memberships] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getMemberships Succeeded' -ELSE PRINT 'Procedure Creation: getMemberships Error on Creation' -GO - -/****** Object: StoredProcedure [getMembershipsByGID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getMembershipsByGID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getMembershipsByGID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getMembershipsByGID] - -( - @GID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Memberships].[UGID], - [Memberships].[UID], - [Memberships].[GID], - [Memberships].[StartDate], - [Memberships].[EndDate], - [Memberships].[Config], - [Memberships].[DTS], - [Memberships].[UsrID], - [Memberships].[LastChanged], - [Users].[UserID] [User_UserID], - [Users].[FirstName] [User_FirstName], - [Users].[MiddleName] [User_MiddleName], - [Users].[LastName] [User_LastName], - [Users].[Suffix] [User_Suffix], - [Users].[CourtesyTitle] [User_CourtesyTitle], - [Users].[PhoneNumber] [User_PhoneNumber], - [Users].[CFGName] [User_CFGName], - [Users].[UserLogin] [User_UserLogin], - [Users].[UserName] [User_UserName], - [Users].[Config] [User_Config], - [Users].[DTS] [User_DTS], - [Users].[UsrID] [User_UsrID] - FROM [Memberships] - JOIN [Users] ON - [Users].[UID]=[Memberships].[UID] - WHERE - [Memberships].[GID]=@GID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getMembershipsByGID Succeeded' -ELSE PRINT 'Procedure Creation: getMembershipsByGID Error on Creation' -GO - -/****** Object: StoredProcedure [getMembershipsByUID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getMembershipsByUID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getMembershipsByUID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getMembershipsByUID] - -( - @UID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Memberships].[UGID], - [Memberships].[UID], - [Memberships].[GID], - [Memberships].[StartDate], - [Memberships].[EndDate], - [Memberships].[Config], - [Memberships].[DTS], - [Memberships].[UsrID], - [Memberships].[LastChanged], - [Groups].[GroupName] [Group_GroupName], - [Groups].[GroupType] [Group_GroupType], - [Groups].[Config] [Group_Config], - [Groups].[DTS] [Group_DTS], - [Groups].[UsrID] [Group_UsrID] - FROM [Memberships] - JOIN [Groups] ON - [Groups].[GID]=[Memberships].[GID] - WHERE - [Memberships].[UID]=@UID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getMembershipsByUID Succeeded' -ELSE PRINT 'Procedure Creation: getMembershipsByUID Error on Creation' -GO - -/****** Object: StoredProcedure [getNextItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getNextItems]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getNextItems]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getNextItems] - -( - @PreviousID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ItemID], - [PreviousID], - [ContentID], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[Items].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[Items].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[Items].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[Items].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[Items].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[Items].[ItemID]) [Transition_ToIDCount] - FROM [Items] WHERE [PreviousID]=@PreviousID AND [ItemID]<>@PreviousID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getNextItems Succeeded' -ELSE PRINT 'Procedure Creation: getNextItems Error on Creation' -GO - -/****** Object: StoredProcedure [getParentFolder] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getParentFolder]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getParentFolder]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getParentFolder] -( - @ParentID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FolderID], - [ParentID], - [DBID], - [Name], - [Title], - [ShortName], - [FormatID], - [ManualOrder], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[FolderID]=[Folders].[FolderID]) [AssignmentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FolderID]=[Folders].[FolderID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] [Children] WHERE [Children].[ParentID]=[Folders].[FolderID]) [ChildCount] - FROM [Folders] - WHERE - [FolderID]=@ParentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getParentFolder Succeeded' -ELSE PRINT 'Procedure Creation: getParentFolder Error on Creation' -GO - -/****** Object: StoredProcedure [getParentFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getParentFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getParentFormat]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getParentFormat] -( - @ParentID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FormatID], - [ParentID], - [Name], - [Description], - [Data], - [GenMac], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] - FROM [Formats] - WHERE - [FormatID]=@ParentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getParentFormat Succeeded' -ELSE PRINT 'Procedure Creation: getParentFormat Error on Creation' -GO - -/****** Object: StoredProcedure [getPart] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPart]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPart]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPart] - -( - @ContentID int, - @FromType int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [FromType], - [ItemID], - [DTS], - [UserID], - [LastChanged] - FROM [Parts] - WHERE [ContentID]=@ContentID AND [FromType]=@FromType - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPart Succeeded' -ELSE PRINT 'Procedure Creation: getPart Error on Creation' -GO - -/****** Object: StoredProcedure [getPartAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPartAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPartAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPartAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [FromType], - [ItemID], - [DTS], - [UserID], - [DeleteStatus] - FROM [PartAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPartAudit Succeeded' -ELSE PRINT 'Procedure Creation: getPartAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getPartAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPartAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPartAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPartAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [FromType], - [ItemID], - [DTS], - [UserID], - [DeleteStatus] - FROM [PartAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPartAudits Succeeded' -ELSE PRINT 'Procedure Creation: getPartAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getPartAuditsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPartAuditsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPartAuditsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPartAuditsByContentID] -( - @ContentID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [FromType], - [ItemID], - [DTS], - [UserID], - [DeleteStatus] - FROM [PartAudits] - WHERE ContentID = @ContentID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPartAuditsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getPartAuditsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getParts] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getParts]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getParts]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getParts] - -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [FromType], - [ItemID], - [DTS], - [UserID], - [LastChanged] - FROM [Parts] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getParts Succeeded' -ELSE PRINT 'Procedure Creation: getParts Error on Creation' -GO - -/****** Object: StoredProcedure [getPartsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPartsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPartsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPartsByContentID] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Parts].[ContentID], - [Parts].[FromType], - [Parts].[ItemID], - [Parts].[DTS], - [Parts].[UserID], - [Parts].[LastChanged], - [Items].[PreviousID] [Item_PreviousID], - [Items].[ContentID] [Item_ContentID], - [Items].[DTS] [Item_DTS], - [Items].[UserID] [Item_UserID] - FROM [Parts] - JOIN [Items] ON - [Items].[ItemID]=[Parts].[ItemID] - WHERE - [Parts].[ContentID]=@ContentID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPartsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getPartsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getPartsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPartsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPartsByItemID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPartsByItemID] - -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Parts].[ContentID], - [Parts].[FromType], - [Parts].[ItemID], - [Parts].[DTS], - [Parts].[UserID], - [Parts].[LastChanged], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [Parts] - JOIN [Contents] ON - [Contents].[ContentID]=[Parts].[ContentID] - WHERE - [Parts].[ItemID]=@ItemID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPartsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getPartsByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getPastedAffectedTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPastedAffectedTransitions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPastedAffectedTransitions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPastedAffectedTransitions] -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - -SELECT - TT.[TransitionID], - [FromID], - [ToID], - [RangeID], - [IsRange], - [TranType], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=TT.[TransitionID]) [ZTransitionCount] -FROM [Transitions] TT join vefn_ChildItems(@ItemID) CC on CC.ContentID = TT.FromID -RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPastedAffectedTransitions Succeeded' -ELSE PRINT 'Procedure Creation: getPastedAffectedTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [getPdf] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPdf]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPdf]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPdf] - -( - @DocID int, - @DebugStatus int, - @TopRow int, - @PageLength int, - @LeftMargin int, - @PageWidth int -) -WITH EXECUTE AS OWNER -AS - SELECT - [DocID], - [DebugStatus], - [TopRow], - [PageLength], - [LeftMargin], - [PageWidth], - [PageCount], - [DocPdf], - [DTS], - [UserID], - [LastChanged] - FROM [Pdfs] - WHERE [DocID]=@DocID AND [DebugStatus]=@DebugStatus AND [TopRow]=@TopRow AND [PageLength]=@PageLength AND [LeftMargin]=@LeftMargin AND [PageWidth]=@PageWidth - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPdf Succeeded' -ELSE PRINT 'Procedure Creation: getPdf Error on Creation' -GO - -/****** Object: StoredProcedure [getPdfs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPdfs]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPdfs]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPdfs] - -WITH EXECUTE AS OWNER -AS - SELECT - [DocID], - [DebugStatus], - [TopRow], - [PageLength], - [LeftMargin], - [PageWidth], - [PageCount], - [DocPdf], - [DTS], - [UserID], - [LastChanged] - FROM [Pdfs] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPdfs Succeeded' -ELSE PRINT 'Procedure Creation: getPdfs Error on Creation' -GO - -/****** Object: StoredProcedure [getPdfsByDocID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPdfsByDocID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPdfsByDocID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPdfsByDocID] - -( - @DocID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Pdfs].[DocID], - [Pdfs].[DebugStatus], - [Pdfs].[TopRow], - [Pdfs].[PageLength], - [Pdfs].[LeftMargin], - [Pdfs].[PageWidth], - [Pdfs].[PageCount], - [Pdfs].[DocPdf], - [Pdfs].[DTS], - [Pdfs].[UserID], - [Pdfs].[LastChanged] - FROM [Pdfs] - WHERE - [Pdfs].[DocID]=@DocID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPdfsByDocID Succeeded' -ELSE PRINT 'Procedure Creation: getPdfsByDocID Error on Creation' -GO - -/****** Object: StoredProcedure [getPermission] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPermission]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPermission]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPermission] - -( - @PID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [PID], - [RID], - [PermLevel], - [VersionType], - [PermValue], - [PermAD], - [StartDate], - [EndDate], - [Config], - [DTS], - [UsrID], - [LastChanged] - FROM [Permissions] - WHERE [PID]=@PID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPermission Succeeded' -ELSE PRINT 'Procedure Creation: getPermission Error on Creation' -GO - -/****** Object: StoredProcedure [getPermissions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPermissions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPermissions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPermissions] - -WITH EXECUTE AS OWNER -AS - SELECT - [PID], - [RID], - [PermLevel], - [VersionType], - [PermValue], - [PermAD], - [StartDate], - [EndDate], - [Config], - [DTS], - [UsrID], - [LastChanged] - FROM [Permissions] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPermissions Succeeded' -ELSE PRINT 'Procedure Creation: getPermissions Error on Creation' -GO - -/****** Object: StoredProcedure [getPermissionsByRID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPermissionsByRID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPermissionsByRID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPermissionsByRID] - -( - @RID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Permissions].[PID], - [Permissions].[RID], - [Permissions].[PermLevel], - [Permissions].[VersionType], - [Permissions].[PermValue], - [Permissions].[PermAD], - [Permissions].[StartDate], - [Permissions].[EndDate], - [Permissions].[Config], - [Permissions].[DTS], - [Permissions].[UsrID], - [Permissions].[LastChanged] - FROM [Permissions] - WHERE - [Permissions].[RID]=@RID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPermissionsByRID Succeeded' -ELSE PRINT 'Procedure Creation: getPermissionsByRID Error on Creation' -GO - -/****** Object: StoredProcedure [getPreviousItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPreviousItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPreviousItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPreviousItem] -( - @PreviousID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ItemID], - [PreviousID], - [ContentID], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[Items].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[Items].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[Items].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[Items].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[Items].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[Items].[ItemID]) [Transition_ToIDCount] - FROM [Items] - WHERE - [ItemID]=@PreviousID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPreviousItem Succeeded' -ELSE PRINT 'Procedure Creation: getPreviousItem Error on Creation' -GO - -/****** Object: StoredProcedure [getRODb] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRODb]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRODb]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRODb] - -( - @RODbID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [RODbID], - [ROName], - [FolderPath], - [DBConnectionString], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[RODbID]=[RODbs].[RODbID]) [DROUsageCount], - (SELECT COUNT(*) FROM [ROFsts] WHERE [ROFsts].[RODbID]=[RODbs].[RODbID]) [ROFstCount], - (SELECT COUNT(*) FROM [ROImages] WHERE [ROImages].[RODbID]=[RODbs].[RODbID]) [ROImageCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[RODbID]=[RODbs].[RODbID]) [RoUsageCount] - FROM [RODbs] - WHERE [RODbID]=@RODbID - - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [DROUsages] - JOIN [Documents] ON - [Documents].[DocID]=[DROUsages].[DocID] - WHERE - [DROUsages].[RODbID]=@RODbID - - - SELECT - [ROFsts].[ROFstID], - [ROFsts].[RODbID], - [ROFsts].[ROLookup], - [ROFsts].[Config], - [ROFsts].[DTS], - [ROFsts].[UserID], - [ROFsts].[LastChanged] - FROM [ROFsts] - WHERE - [ROFsts].[RODbID]=@RODbID - - - SELECT - [ROImages].[ImageID], - [ROImages].[RODbID], - [ROImages].[FileName], - [ROImages].[Content], - [ROImages].[Config], - [ROImages].[DTS], - [ROImages].[UserID], - [ROImages].[LastChanged] - FROM [ROImages] - WHERE - [ROImages].[RODbID]=@RODbID - - - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [RoUsages] - JOIN [Contents] ON - [Contents].[ContentID]=[RoUsages].[ContentID] - WHERE - [RoUsages].[RODbID]=@RODbID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRODb Succeeded' -ELSE PRINT 'Procedure Creation: getRODb Error on Creation' -GO - -/****** Object: StoredProcedure [getRODbByFolderPath] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRODbByFolderPath]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRODbByFolderPath]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRODbByFolderPath] -( - @FolderPath nvarchar(255) -) -WITH EXECUTE AS OWNER -AS - SELECT - [RODbID], - [ROName], - [FolderPath], - [DBConnectionString], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[RODbID]=[RODbs].[RODbID]) [DROUsageCount], - (SELECT COUNT(*) FROM [ROFsts] WHERE [ROFsts].[RODbID]=[RODbs].[RODbID]) [ROFstCount], - (SELECT COUNT(*) FROM [ROImages] WHERE [ROImages].[RODbID]=[RODbs].[RODbID]) [ROImageCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[RODbID]=[RODbs].[RODbID]) [RoUsageCount] - FROM [RODbs] - WHERE [FolderPath]=@FolderPath - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRODbByFolderPath Succeeded' -ELSE PRINT 'Procedure Creation: getRODbByFolderPath Error on Creation' -GO - -/****** Object: StoredProcedure [getRODbs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRODbs]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRODbs]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRODbs] - -WITH EXECUTE AS OWNER -AS - SELECT - [RODbID], - [ROName], - [FolderPath], - [DBConnectionString], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[RODbID]=[RODbs].[RODbID]) [DROUsageCount], - (SELECT COUNT(*) FROM [ROFsts] WHERE [ROFsts].[RODbID]=[RODbs].[RODbID]) [ROFstCount], - (SELECT COUNT(*) FROM [ROImages] WHERE [ROImages].[RODbID]=[RODbs].[RODbID]) [ROImageCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[RODbID]=[RODbs].[RODbID]) [RoUsageCount] - FROM [RODbs] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRODbs Succeeded' -ELSE PRINT 'Procedure Creation: getRODbs Error on Creation' -GO - -/****** Object: StoredProcedure [getROFst] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getROFst]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getROFst]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getROFst] - -( - @ROFstID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ROFstID], - [RODbID], - [ROLookup], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] - FROM [ROFsts] - WHERE [ROFstID]=@ROFstID - - SELECT - [Associations].[AssociationID], - [Associations].[VersionID], - [Associations].[ROFstID], - [Associations].[Config], - [Associations].[DTS], - [Associations].[UserID], - [Associations].[LastChanged], - [DocVersions].[FolderID] [DocVersion_FolderID], - [DocVersions].[VersionType] [DocVersion_VersionType], - [DocVersions].[Name] [DocVersion_Name], - [DocVersions].[Title] [DocVersion_Title], - [DocVersions].[ItemID] [DocVersion_ItemID], - [DocVersions].[FormatID] [DocVersion_FormatID], - [DocVersions].[Config] [DocVersion_Config], - [DocVersions].[DTS] [DocVersion_DTS], - [DocVersions].[UserID] [DocVersion_UserID] - FROM [Associations] - JOIN [DocVersions] ON - [DocVersions].[VersionID]=[Associations].[VersionID] - WHERE - [Associations].[ROFstID]=@ROFstID - - - SELECT - [Figures].[FigureID], - [Figures].[ROFstID], - [Figures].[ImageID], - [Figures].[Config], - [Figures].[DTS], - [Figures].[UserID], - [Figures].[LastChanged], - [ROImages].[RODbID] [ROImage_RODbID], - [ROImages].[FileName] [ROImage_FileName], - [ROImages].[Content] [ROImage_Content], - [ROImages].[Config] [ROImage_Config], - [ROImages].[DTS] [ROImage_DTS], - [ROImages].[UserID] [ROImage_UserID] - FROM [Figures] - JOIN [ROImages] ON - [ROImages].[ImageID]=[Figures].[ImageID] - WHERE - [Figures].[ROFstID]=@ROFstID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getROFst Succeeded' -ELSE PRINT 'Procedure Creation: getROFst Error on Creation' -GO - -/****** Object: StoredProcedure [getROFstByRODbID_DTS] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getROFstByRODbID_DTS]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getROFstByRODbID_DTS]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getROFstByRODbID_DTS] -( - @RODbID int, - @DTS datetime -) -WITH EXECUTE AS OWNER -AS - SELECT - [ROFstID], - [RODbID], - [ROLookup], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] - FROM [ROFsts] - WHERE [RODbID]=@RODbID AND [DTS]=@DTS - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getROFstByRODbID_DTS Succeeded' -ELSE PRINT 'Procedure Creation: getROFstByRODbID_DTS Error on Creation' -GO - -/****** Object: StoredProcedure [getRoFstBySize] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoFstBySize]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoFstBySize]; -GO - -/* -getRoFstBySize 1,74928 - */ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create PROCEDURE [dbo].[getRoFstBySize] -( - @RODbID int, - @Len int -) -WITH EXECUTE AS OWNER -AS -select - [ROFstID], - [RODbID], - [ROLookup], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] -from [ROFsts] -where len(rolookup) = @len and [RODbID] = @RODbID -RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoFstBySize Succeeded' -ELSE PRINT 'Procedure Creation: getRoFstBySize Error on Creation' -GO - -/****** Object: StoredProcedure [getROFsts] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getROFsts]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getROFsts]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getROFsts] - -WITH EXECUTE AS OWNER -AS - SELECT - [ROFstID], - [RODbID], - [ROLookup], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] - FROM [ROFsts] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getROFsts Succeeded' -ELSE PRINT 'Procedure Creation: getROFsts Error on Creation' -GO - -/****** Object: StoredProcedure [getROFstsByRODbID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getROFstsByRODbID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getROFstsByRODbID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getROFstsByRODbID] - -( - @RODbID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [ROFsts].[ROFstID], - [ROFsts].[RODbID], - [ROFsts].[ROLookup], - [ROFsts].[Config], - [ROFsts].[DTS], - [ROFsts].[UserID], - [ROFsts].[LastChanged], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] - FROM [ROFsts] - WHERE - [ROFsts].[RODbID]=@RODbID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getROFstsByRODbID Succeeded' -ELSE PRINT 'Procedure Creation: getROFstsByRODbID Error on Creation' -GO - -/****** Object: StoredProcedure [getROImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getROImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getROImage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getROImage] - -( - @ImageID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ImageID], - [RODbID], - [FileName], - [Content], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ImageID]=[ROImages].[ImageID]) [FigureCount] - FROM [ROImages] - WHERE [ImageID]=@ImageID - - SELECT - [Figures].[FigureID], - [Figures].[ROFstID], - [Figures].[ImageID], - [Figures].[Config], - [Figures].[DTS], - [Figures].[UserID], - [Figures].[LastChanged], - [ROFsts].[RODbID] [ROFst_RODbID], - [ROFsts].[ROLookup] [ROFst_ROLookup], - [ROFsts].[Config] [ROFst_Config], - [ROFsts].[DTS] [ROFst_DTS], - [ROFsts].[UserID] [ROFst_UserID] - FROM [Figures] - JOIN [ROFsts] ON - [ROFsts].[ROFstID]=[Figures].[ROFstID] - WHERE - [Figures].[ImageID]=@ImageID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getROImage Succeeded' -ELSE PRINT 'Procedure Creation: getROImage Error on Creation' -GO - -/****** Object: StoredProcedure [getROImageByRODbID_FileName_DTS] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getROImageByRODbID_FileName_DTS]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getROImageByRODbID_FileName_DTS]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getROImageByRODbID_FileName_DTS] -( - @RODbID int, - @FileName nvarchar(255), - @DTS datetime -) -WITH EXECUTE AS OWNER -AS - SELECT - [ImageID], - [RODbID], - [FileName], - [Content], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ImageID]=[ROImages].[ImageID]) [FigureCount] - FROM [ROImages] - WHERE [RODbID]=@RODbID AND [FileName]=@FileName AND [DTS]=@DTS - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getROImageByRODbID_FileName_DTS Succeeded' -ELSE PRINT 'Procedure Creation: getROImageByRODbID_FileName_DTS Error on Creation' -GO - -/****** Object: StoredProcedure [getROImageByROFstID_FileName] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getROImageByROFstID_FileName]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getROImageByROFstID_FileName]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getROImageByROFstID_FileName] - -( - @ROFstID int, - @FileName nvarchar(255) -) -WITH EXECUTE AS OWNER -AS - - SELECT - [ImageID], - [RODbID], - [FileName], - [Content], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ImageID]=[ROImages].[ImageID]) [FigureCount] - FROM [ROImages] - --JOIN [Figures] ON - -- [Figures].[ImageID]=[ROImages].[ImageID] - WHERE - [ImageID] in (select ImageID from Figures where ROFstID=@ROFstID) AND - [ROImages].[FileName]=@FileName - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getROImageByROFstID_FileName Succeeded' -ELSE PRINT 'Procedure Creation: getROImageByROFstID_FileName Error on Creation' -GO - -/****** Object: StoredProcedure [getROImages] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getROImages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getROImages]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getROImages] - -WITH EXECUTE AS OWNER -AS - SELECT - [ImageID], - [RODbID], - [FileName], - [Content], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ImageID]=[ROImages].[ImageID]) [FigureCount] - FROM [ROImages] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getROImages Succeeded' -ELSE PRINT 'Procedure Creation: getROImages Error on Creation' -GO - -/****** Object: StoredProcedure [getROImagesByRODbID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getROImagesByRODbID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getROImagesByRODbID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getROImagesByRODbID] - -( - @RODbID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [ROImages].[ImageID], - [ROImages].[RODbID], - [ROImages].[FileName], - [ROImages].[Content], - [ROImages].[Config], - [ROImages].[DTS], - [ROImages].[UserID], - [ROImages].[LastChanged], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ImageID]=[ROImages].[ImageID]) [FigureCount] - FROM [ROImages] - WHERE - [ROImages].[RODbID]=@RODbID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getROImagesByRODbID Succeeded' -ELSE PRINT 'Procedure Creation: getROImagesByRODbID Error on Creation' -GO - -/****** Object: StoredProcedure [getROImagesByRODbIDNoData] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getROImagesByRODbIDNoData]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getROImagesByRODbIDNoData]; -GO - -/* -This is used to quickly retrieve ROImages without their data for the ROFst Update process -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create PROCEDURE [dbo].[getROImagesByRODbIDNoData] -( - @RODbID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [ROImages].[ImageID], - [ROImages].[RODbID], - [ROImages].[FileName], - null [Content], - [ROImages].[Config], - [ROImages].[DTS], - [ROImages].[UserID], - [ROImages].[LastChanged], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ImageID]=[ROImages].[ImageID]) [FigureCount] - FROM [ROImages] - WHERE - [ROImages].[RODbID]=@RODbID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getROImagesByRODbIDNoData Succeeded' -ELSE PRINT 'Procedure Creation: getROImagesByRODbIDNoData Error on Creation' -GO - -/****** Object: StoredProcedure [getRole] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRole]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRole]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRole] - -( - @RID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [RID], - [Name], - [Title], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[RID]=[Roles].[RID]) [AssignmentCount], - (SELECT COUNT(*) FROM [Permissions] WHERE [Permissions].[RID]=[Roles].[RID]) [PermissionCount] - FROM [Roles] - WHERE [RID]=@RID - - SELECT - [Assignments].[AID], - [Assignments].[GID], - [Assignments].[RID], - [Assignments].[FolderID], - [Assignments].[StartDate], - [Assignments].[EndDate], - [Assignments].[DTS], - [Assignments].[UsrID], - [Assignments].[LastChanged], - [Folders].[ParentID] [Folder_ParentID], - [Folders].[DBID] [Folder_DBID], - [Folders].[Name] [Folder_Name], - [Folders].[Title] [Folder_Title], - [Folders].[ShortName] [Folder_ShortName], - [Folders].[FormatID] [Folder_FormatID], - [Folders].[ManualOrder] [Folder_ManualOrder], - [Folders].[Config] [Folder_Config], - [Folders].[DTS] [Folder_DTS], - [Folders].[UsrID] [Folder_UsrID], - [Groups].[GroupName] [Group_GroupName], - [Groups].[GroupType] [Group_GroupType], - [Groups].[Config] [Group_Config], - [Groups].[DTS] [Group_DTS], - [Groups].[UsrID] [Group_UsrID] - FROM [Assignments] - JOIN [Folders] ON - [Folders].[FolderID]=[Assignments].[FolderID] - JOIN [Groups] ON - [Groups].[GID]=[Assignments].[GID] - WHERE - [Assignments].[RID]=@RID - - - SELECT - [Permissions].[PID], - [Permissions].[RID], - [Permissions].[PermLevel], - [Permissions].[VersionType], - [Permissions].[PermValue], - [Permissions].[PermAD], - [Permissions].[StartDate], - [Permissions].[EndDate], - [Permissions].[Config], - [Permissions].[DTS], - [Permissions].[UsrID], - [Permissions].[LastChanged] - FROM [Permissions] - WHERE - [Permissions].[RID]=@RID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRole Succeeded' -ELSE PRINT 'Procedure Creation: getRole Error on Creation' -GO - -/****** Object: StoredProcedure [getRoleByName] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoleByName]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoleByName]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRoleByName] -( - @Name nvarchar(50) -) -WITH EXECUTE AS OWNER -AS - SELECT - [RID], - [Name], - [Title], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[RID]=[Roles].[RID]) [AssignmentCount], - (SELECT COUNT(*) FROM [Permissions] WHERE [Permissions].[RID]=[Roles].[RID]) [PermissionCount] - FROM [Roles] - WHERE [Name]=@Name - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoleByName Succeeded' -ELSE PRINT 'Procedure Creation: getRoleByName Error on Creation' -GO - -/****** Object: StoredProcedure [getRoles] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoles]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoles]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRoles] - -WITH EXECUTE AS OWNER -AS - SELECT - [RID], - [Name], - [Title], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[RID]=[Roles].[RID]) [AssignmentCount], - (SELECT COUNT(*) FROM [Permissions] WHERE [Permissions].[RID]=[Roles].[RID]) [PermissionCount] - FROM [Roles] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoles Succeeded' -ELSE PRINT 'Procedure Creation: getRoles Error on Creation' -GO - -/****** Object: StoredProcedure [getRoUsage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoUsage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRoUsage] - -( - @ROUsageID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ROUsageID], - [ContentID], - [ROID], - [Config], - [DTS], - [UserID], - [LastChanged], - [RODbID] - FROM [RoUsages] - WHERE [ROUsageID]=@ROUsageID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoUsage Succeeded' -ELSE PRINT 'Procedure Creation: getRoUsage Error on Creation' -GO - -/****** Object: StoredProcedure [getRoUsages] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoUsages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoUsages]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRoUsages] - -WITH EXECUTE AS OWNER -AS - SELECT - [ROUsageID], - [ContentID], - [ROID], - [Config], - [DTS], - [UserID], - [LastChanged], - [RODbID] - FROM [RoUsages] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoUsages Succeeded' -ELSE PRINT 'Procedure Creation: getRoUsages Error on Creation' -GO - -/****** Object: StoredProcedure [getRoUsagesByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoUsagesByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoUsagesByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRoUsagesByContentID] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [RODbs].[ROName] [RODb_ROName], - [RODbs].[FolderPath] [RODb_FolderPath], - [RODbs].[DBConnectionString] [RODb_DBConnectionString], - [RODbs].[Config] [RODb_Config], - [RODbs].[DTS] [RODb_DTS], - [RODbs].[UserID] [RODb_UserID] - FROM [RoUsages] - JOIN [RODbs] ON - [RODbs].[RODbID]=[RoUsages].[RODbID] - WHERE - [RoUsages].[ContentID]=@ContentID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoUsagesByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getRoUsagesByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getRoUsagesByRODbID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoUsagesByRODbID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoUsagesByRODbID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRoUsagesByRODbID] - -( - @RODbID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [RoUsages] - JOIN [Contents] ON - [Contents].[ContentID]=[RoUsages].[ContentID] - WHERE - [RoUsages].[RODbID]=@RODbID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoUsagesByRODbID Succeeded' -ELSE PRINT 'Procedure Creation: getRoUsagesByRODbID Error on Creation' -GO - -/****** Object: StoredProcedure [getRoUsagesByROIDs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoUsagesByROIDs]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoUsagesByROIDs]; -GO - -/* -findRoUsagesByROIDs 1,'1:000100000406,000200000229,00020000022A,00020000022B,0002000005F7,0002000005F9,0002000005FA,0002000005FB,000200000623,000200000626,000200000155,00020000018C,00020000018D,00020000022F,000200000230,00020000019E,000200000677,000200000678,000200000684,000D000000CA0042,000D000000CA0043,000D0000064A0042,000D000006600042,000D000006600043,000D000006670042,000D000006670043,000D000006680042,000D000006680043,000D0000067D0041,000D0000067D0042,000D0000067D0043,000D000006850042,000D000006850043,000D000009140042,000D000009140043,000D00000A320042,000D00000A360042,000D00000A500042,000D00000A500043,000D00000A630042,000D00000A630043,0010000022400041,0010000022400042,0010000022400043,001000002AE60042,001000002AE60043,001000003D8B0042,001000003D8B0043,001000003D8C0042,001000003D8C0043,0010000058AB0042,0010000058AB0043,0010000086550042,0010000086550043,001000009B550041,001000009B550042,001000009C1C0041,001000009C1C0042,001000009C1D0041,001000009C1D0042,001000009C1E0041,001000009C1E0042,001000009C1F0041,001000009C1F0042,001000009C200041,001000009C200042,001000009C210041,001000009C210042,001000009C220041,001000009C220042,001000009C230041,001000009C230042,001000009C240041,001000009C240042,001000009C250041,001000009C250042,001000009C260041,001000009C260042,00100000546E0042,00100000546E0043,001000009B900041,001000009B900042,001000009B910041,001000009B910042,001000009B920041,001000009B920042,001000009B930041,001000009B930042,001000009B940041,001000009B940042,001000009B950041,001000009B950042,001000009B960041,001000009B960042,001000009B970041,001000009B970042,001000009B980041,001000009B980042,001000009B990041,001000009B990042,001000009C270041,001000009C270042,001000009C280041,001000009C280042,001000009C290041,001000009C290042,001000009C2A0041,001000009C2A0042,001000009C2B0041,001000009C2B0042,001000009C2C0041,001000009C2C0042,00110000027E0042,00110000027E0043,00150000216A,001500002367,00150000236C,0015000029B7,001500000392,00150000039E,0015000021C7,0015000021E6,001500002261,001500002265,001500002266,001500002297,001500002754,001500002756,0015000004F4,001500002766,001500002546,001500002643,001500002645,001500002646,00150000266A,00150000266B,00150000266C,00150000266D,00150000266E,00150000266F,001500002670,001500002671,0015000026AA,001500000720' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRoUsagesByROIDs] -( - @ROIDs nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [RoUsages] - JOIN vefn_SplitROSearch(@ROIDs) SS - ON [RoUsages].RODBID = SS.[RODBID] and [RoUsages].[ROID] like SS.[ROID] + '%' - JOIN [Contents] ON - [Contents].[ContentID]=[RoUsages].[ContentID] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoUsagesByROIDs Succeeded' -ELSE PRINT 'Procedure Creation: getRoUsagesByROIDs Error on Creation' -GO - -/****** Object: StoredProcedure [getTopFolder] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTopFolder]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTopFolder]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getTopFolder] -WITH EXECUTE AS OWNER -AS - SELECT - [FolderID], - [ParentID], - [DBID], - [Name], - [Title], - [ShortName], - [FormatID], - [ManualOrder], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Assignments] WHERE [Assignments].[FolderID]=[Folders].[FolderID]) [AssignmentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FolderID]=[Folders].[FolderID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] [Children] WHERE [Children].[ParentID]=[Folders].[FolderID]) [ChildCount] - FROM [Folders] - WHERE [FolderID]=[ParentID] - - SELECT - [Assignments].[AID], - [Assignments].[GID], - [Assignments].[RID], - [Assignments].[FolderID], - [Assignments].[StartDate], - [Assignments].[EndDate], - [Assignments].[DTS], - [Assignments].[UsrID], - [Assignments].[LastChanged], - [Groups].[GroupName] [Group_GroupName], - [Groups].[GroupType] [Group_GroupType], - [Groups].[Config] [Group_Config], - [Groups].[DTS] [Group_DTS], - [Groups].[UsrID] [Group_UsrID], - [Roles].[Name] [Role_Name], - [Roles].[Title] [Role_Title], - [Roles].[DTS] [Role_DTS], - [Roles].[UsrID] [Role_UsrID] - FROM [Assignments] - JOIN [Groups] ON - [Groups].[GID]=[Assignments].[GID] - JOIN [Roles] ON - [Roles].[RID]=[Assignments].[RID] - WHERE - [Assignments].[FolderID]=(Select [FolderID] from [Folders] where [FolderID]=[ParentID]) - - - SELECT - [DocVersions].[VersionID], - [DocVersions].[FolderID], - [DocVersions].[VersionType], - [DocVersions].[Name], - [DocVersions].[Title], - [DocVersions].[ItemID], - [DocVersions].[FormatID], - [DocVersions].[Config], - [DocVersions].[DTS], - [DocVersions].[UserID], - [DocVersions].[LastChanged] - FROM [DocVersions] - WHERE - [DocVersions].[FolderID]=(Select [FolderID] from [Folders] where [FolderID]=[ParentID]) - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTopFolder Succeeded' -ELSE PRINT 'Procedure Creation: getTopFolder Error on Creation' -GO - -/****** Object: StoredProcedure [getTransition] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTransition]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTransition]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getTransition] - -( - @TransitionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [TransitionID], - [FromID], - [ToID], - [RangeID], - [IsRange], - [TranType], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=[Transitions].[TransitionID]) [ZTransitionCount] - FROM [Transitions] - WHERE [TransitionID]=@TransitionID - - SELECT - [ZTransitions].[TransitionID], - [ZTransitions].[oldto], - [ZTransitions].[LastChanged] - FROM [ZTransitions] - WHERE - [ZTransitions].[TransitionID]=@TransitionID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTransition Succeeded' -ELSE PRINT 'Procedure Creation: getTransition Error on Creation' -GO - -/****** Object: StoredProcedure [getTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTransitions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTransitions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getTransitions] - -WITH EXECUTE AS OWNER -AS - SELECT - [TransitionID], - [FromID], - [ToID], - [RangeID], - [IsRange], - [TranType], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=[Transitions].[TransitionID]) [ZTransitionCount] - FROM [Transitions] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTransitions Succeeded' -ELSE PRINT 'Procedure Creation: getTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [getTransitionsByFromID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTransitionsByFromID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTransitionsByFromID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getTransitionsByFromID] - -( - @FromID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Transitions].[TransitionID], - [Transitions].[FromID], - [Transitions].[ToID], - [Transitions].[RangeID], - [Transitions].[IsRange], - [Transitions].[TranType], - [Transitions].[Config], - [Transitions].[DTS], - [Transitions].[UserID], - [Transitions].[LastChanged], - [Items_RangeID].[PreviousID] [Item_RangeID_PreviousID], - [Items_RangeID].[ContentID] [Item_RangeID_ContentID], - [Items_RangeID].[DTS] [Item_RangeID_DTS], - [Items_RangeID].[UserID] [Item_RangeID_UserID], - [Items_ToID].[PreviousID] [Item_ToID_PreviousID], - [Items_ToID].[ContentID] [Item_ToID_ContentID], - [Items_ToID].[DTS] [Item_ToID_DTS], - [Items_ToID].[UserID] [Item_ToID_UserID], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=[Transitions].[TransitionID]) [ZTransitionCount] - FROM [Transitions] - JOIN [Items] [Items_RangeID] ON - [Items_RangeID].[ItemID]=[Transitions].[RangeID] - JOIN [Items] [Items_ToID] ON - [Items_ToID].[ItemID]=[Transitions].[ToID] - WHERE - [Transitions].[FromID]=@FromID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTransitionsByFromID Succeeded' -ELSE PRINT 'Procedure Creation: getTransitionsByFromID Error on Creation' -GO - -/****** Object: StoredProcedure [getTransitionsByRangeID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTransitionsByRangeID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTransitionsByRangeID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getTransitionsByRangeID] - -( - @RangeID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Transitions].[TransitionID], - [Transitions].[FromID], - [Transitions].[ToID], - [Transitions].[RangeID], - [Transitions].[IsRange], - [Transitions].[TranType], - [Transitions].[Config], - [Transitions].[DTS], - [Transitions].[UserID], - [Transitions].[LastChanged], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=[Transitions].[TransitionID]) [ZTransitionCount] - FROM [Transitions] - JOIN [Contents] ON - [Contents].[ContentID]=[Transitions].[FromID] - WHERE - [Transitions].[RangeID]=@RangeID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTransitionsByRangeID Succeeded' -ELSE PRINT 'Procedure Creation: getTransitionsByRangeID Error on Creation' -GO - -/****** Object: StoredProcedure [getTransitionsByToID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTransitionsByToID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTransitionsByToID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getTransitionsByToID] - -( - @ToID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Transitions].[TransitionID], - [Transitions].[FromID], - [Transitions].[ToID], - [Transitions].[RangeID], - [Transitions].[IsRange], - [Transitions].[TranType], - [Transitions].[Config], - [Transitions].[DTS], - [Transitions].[UserID], - [Transitions].[LastChanged], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=[Transitions].[TransitionID]) [ZTransitionCount] - FROM [Transitions] - JOIN [Contents] ON - [Contents].[ContentID]=[Transitions].[FromID] - WHERE - [Transitions].[ToID]=@ToID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTransitionsByToID Succeeded' -ELSE PRINT 'Procedure Creation: getTransitionsByToID Error on Creation' -GO - -/****** Object: StoredProcedure [getUser] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getUser]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getUser]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getUser] - -( - @UID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [UID], - [UserID], - [FirstName], - [MiddleName], - [LastName], - [Suffix], - [CourtesyTitle], - [PhoneNumber], - [CFGName], - [UserLogin], - [UserName], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Memberships] WHERE [Memberships].[UID]=[Users].[UID]) [MembershipCount] - FROM [Users] - WHERE [UID]=@UID - - SELECT - [Memberships].[UGID], - [Memberships].[UID], - [Memberships].[GID], - [Memberships].[StartDate], - [Memberships].[EndDate], - [Memberships].[Config], - [Memberships].[DTS], - [Memberships].[UsrID], - [Memberships].[LastChanged], - [Groups].[GroupName] [Group_GroupName], - [Groups].[GroupType] [Group_GroupType], - [Groups].[Config] [Group_Config], - [Groups].[DTS] [Group_DTS], - [Groups].[UsrID] [Group_UsrID] - FROM [Memberships] - JOIN [Groups] ON - [Groups].[GID]=[Memberships].[GID] - WHERE - [Memberships].[UID]=@UID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getUser Succeeded' -ELSE PRINT 'Procedure Creation: getUser Error on Creation' -GO - -/****** Object: StoredProcedure [getUsers] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getUsers]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getUsers]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getUsers] - -WITH EXECUTE AS OWNER -AS - SELECT - [UID], - [UserID], - [FirstName], - [MiddleName], - [LastName], - [Suffix], - [CourtesyTitle], - [PhoneNumber], - [CFGName], - [UserLogin], - [UserName], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Memberships] WHERE [Memberships].[UID]=[Users].[UID]) [MembershipCount] - FROM [Users] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getUsers Succeeded' -ELSE PRINT 'Procedure Creation: getUsers Error on Creation' -GO - -/****** Object: StoredProcedure [getZContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getZContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getZContent]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getZContent] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [OldStepSequence], - [LastChanged] - FROM [ZContents] - WHERE [ContentID]=@ContentID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getZContent Succeeded' -ELSE PRINT 'Procedure Creation: getZContent Error on Creation' -GO - -/****** Object: StoredProcedure [getZContents] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getZContents]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getZContents]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getZContents] - -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [OldStepSequence], - [LastChanged] - FROM [ZContents] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getZContents Succeeded' -ELSE PRINT 'Procedure Creation: getZContents Error on Creation' -GO - -/****** Object: StoredProcedure [getZContentsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getZContentsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getZContentsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getZContentsByContentID] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [ZContents].[ContentID], - [ZContents].[OldStepSequence], - [ZContents].[LastChanged] - FROM [ZContents] - WHERE - [ZContents].[ContentID]=@ContentID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getZContentsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getZContentsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getZTransition] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getZTransition]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getZTransition]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getZTransition] - -( - @TransitionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [TransitionID], - [oldto], - [LastChanged] - FROM [ZTransitions] - WHERE [TransitionID]=@TransitionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getZTransition Succeeded' -ELSE PRINT 'Procedure Creation: getZTransition Error on Creation' -GO - -/****** Object: StoredProcedure [getZTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getZTransitions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getZTransitions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getZTransitions] - -WITH EXECUTE AS OWNER -AS - SELECT - [TransitionID], - [oldto], - [LastChanged] - FROM [ZTransitions] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getZTransitions Succeeded' -ELSE PRINT 'Procedure Creation: getZTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [getZTransitionsByTransitionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getZTransitionsByTransitionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getZTransitionsByTransitionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getZTransitionsByTransitionID] - -( - @TransitionID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [ZTransitions].[TransitionID], - [ZTransitions].[oldto], - [ZTransitions].[LastChanged] - FROM [ZTransitions] - WHERE - [ZTransitions].[TransitionID]=@TransitionID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getZTransitionsByTransitionID Succeeded' -ELSE PRINT 'Procedure Creation: getZTransitionsByTransitionID Error on Creation' -GO - -/****** Object: StoredProcedure [PasteItemReplace] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemReplace]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [PasteItemReplace]; -GO - --- ItemID is item to replace --- StartItemID is item to copy -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[PasteItemReplace] -( - @ItemID int=null, @StartItemID int=null, - @Type int=null, @DTS datetime, @UserID nvarchar(100), - @NewItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @ContentID AS INT - DECLARE @NextItemID AS INT - DECLARE @PreviousItemID AS INT - DECLARE @ExternalChildCount AS INT - DECLARE @ExternalCount AS INT - DECLARE @Path AS VARCHAR(MAX) - DECLARE @Children AS TABLE - ( - ItemID INT PRIMARY KEY, - ContentID INT - ) - - -- First check if the replaced item can be deleted, i.e. it doesn't have transitions - -- pointing to it or children. - - DECLARE @ExternalTrans TABLE - ( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL - ) - SET NOCOUNT ON - SELECT @ContentID = ContentID, @PreviousItemID = PreviousID FROM Items WHERE ItemID = @ItemID - SELECT @NextItemID = ItemID FROM Items WHERE PreviousID = @ItemID - --SELECT @ExternalCount = count(*) FROM vefn_FindExternalTransitions(@ItemID) - SELECT @ExternalChildCount = count(*) FROM vefn_FindExternalChildTransitions(@ItemID) - SET @Path = [dbo].[ve_GetShortPath](@ItemID) - - --IF @ExternalCount > 0 AND @NextItemID is null - --BEGIN - -- RAISERROR ('###Cannot Delete Item###Step %d has External Transitions and has no next step - (%s)',16,1,@ItemID,@Path) - -- RETURN - --END - - IF @ExternalChildCount > 0 - BEGIN - RAISERROR ('###Cannot Delete Item###Step %d has External Transitions to it''s children - (%s)',16,1,@ItemID,@Path) - RETURN - END - - -- Copy the item, 'NewItemID' represents the new item(s) - -- DestFormatID is the formatid for the destination parent's format - DECLARE @DestFormatID int - SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - - -- Adjust the next/previous to point to the new item - - DECLARE @PreviousID int - SELECT @PreviousID = [PreviousID] - FROM [ITEMS] II - WHERE [ItemID]=@ItemID - UPDATE [ITEMS] SET [PreviousID]=@PreviousID where [ItemID]=@NewItemID - UPDATE [CONTENTS] SET [Type]=@Type - FROM [CONTENTS] CC JOIN [ITEMS] ii ON CC.[ContentID]=II.[ContentID] - WHERE [ItemID]=@NewItemID - UPDATE [ITEMS] SET [PreviousID]=@NewItemID where [PreviousID]=@ItemID - UPDATE [PARTS] SET [ItemID]=@NewItemID where [ItemID]=@ItemID - - -- UPDATE DocVersion if this was a procedure - UPDATE DocVersions SET ItemID=@NewItemID where ItemID = @ItemID - - -- If there were 'external transitions' that pointed to the original - -- top replaced step, adjust them to point to the new top. - INSERT INTO @ExternalTrans SELECT * FROM vefn_FindExternalTransitions(@ItemID) - IF (SELECT COUNT(*) from @ExternalTrans) > 0 - BEGIN - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@NewItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TransitionID in(Select TransitionID from @ExternalTrans) - -- Update transitions that point to @ItemID to Point to @NextItemID - UPDATE TRANSITIONS - SET ToID = case when ToID = @ItemID then @NewItemID else ToID END, - RangeID = case when RangeID = @ItemID then @NewItemID else RangeID END - WHERE TransitionID in(Select TransitionID from @ExternalTrans) - - DECLARE @typeID int -- AnnotationType - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add 'Verification Required' annotions for transtions that pointed to top step - -- and need to point to - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Replaced Step Transition Destination',@UserID - FROM Items where ItemID in (SELECT FromItemID FROM @ExternalTrans) - - END - -- Remove the old one - - -- Get list of Children - INSERT INTO @Children SELECT * FROM vefn_ChildItems(@ItemID) - -- Delete Annotations for @ItemID and children - DELETE from Annotations where ItemID in(Select ItemID from @Children) - -- Delete Details associated with @ContentID and children - DELETE from Details where ContentID in(Select ContentID from @Children) - -- Delete Grids associated with @ContentID and children - DELETE from Grids where ContentID in(Select ContentID from @Children) - -- Delete Images associated with @ContentID and children - DELETE from Images where ContentID in(Select ContentID from @Children) - -- Delete Entries associated with @ContentID and children - DELETE from Entries where ContentID in(Select ContentID from @Children) - -- Delete ROUsages associated with @ContentID and children - DELETE from RoUsages where ContentID in(Select ContentID from @Children) - -- Delete ZTransitions records associated with @ContentID and children - DELETE FROM ZTransitions where TransitionID - in(SELECT TransitionID from Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID) - -- Delete Transitions associated with @ContentID and children - DELETE FROM Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID - -- Delete Parts associated with @ContentID and children - DELETE from Parts where ContentID in(Select ContentID from @Children) - -- Delete ZContents associated with @ContentID and children - DELETE from ZContents where ContentID in(Select ContentID from @Children) - -- Disconnect Items from Each Other - DELETE from Items where ItemID in(Select ItemID from @Children) and PreviousID Is Not Null - -- Disconnect Items to be deleted from each other - Update Items set PreviousID = null where ItemID in (Select ItemID from @Children) and PreviousID Is Not Null - -- Delete Item Records - DELETE from Items where ItemID in(Select ItemID from @Children) - -- DELETE Contents - DELETE from Contents where ContentID in(Select ContentID from @Children) - IF( @@TRANCOUNT > 0 ) COMMIT - EXECUTE GetItem @NewItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteItemReplace Succeeded' -ELSE PRINT 'Procedure Creation: PasteItemReplace Error on Creation' -GO - -/****** Object: StoredProcedure [PasteItemSiblingAfter] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemSiblingAfter]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [PasteItemSiblingAfter]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[PasteItemSiblingAfter] -( - @ItemID int=null, @StartItemID int=null, -- ItemID is destination, StartItemID is top of copy - @Type int=null, @DTS datetime, @UserID nvarchar(100), - @NewItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - -- First make a copy of the input StartItemID - -- DestFormatID is the formatid for the destination parent's format - DECLARE @DestFormatID int - SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - -- Adjust previous field - DECLARE @NextID int - SELECT @NextID = [ItemID] - FROM [ITEMS] - WHERE [PreviousID]=@ItemID - IF @NextID is not null -- step after the copy point. Adjust it's previous to point to the new step - BEGIN - UPDATE [ITEMS] SET [PreviousID]=@NewItemID, [DTS]=@DTS, [UserID]=@UserID where [ItemID]=@NextID - END - UPDATE [ITEMS] SET [PreviousID]=@ItemID where [ItemID]=@NewItemID - UPDATE [CONTENTS] SET [Type]=@Type - FROM [CONTENTS] CC JOIN [ITEMS] ii ON CC.[ContentID]=II.[ContentID] - WHERE [ItemID]=@NewItemID - - - -- Check for Transitions that point to the Next Step - BEGIN - -- Get a list of Transitions which need to change children of @ItemID that point to @NextID - DECLARE @NextStepTransitions TABLE - ( - [TransitionID] int PRIMARY KEY, - [FromID] [int], - [ToID] [int], - [RangeID] [int], - [TranType] [int], - [Config] [nvarchar](max) - ) - Insert into @NextStepTransitions select * from vefn_NextStepTransitions(@NextID,@ItemID) - IF (SELECT COUNT(*) from @NextStepTransitions) > 0 -- Next Step Transitions - BEGIN - -- Update all transitions in the list to point to @newItemID - Update TT - Set TT.ToID = CASE TT.ToID WHEN @NextID THEN @NewItemID ELSE TT.ToID END, - TT.RangeID = CASE TT.RangeID WHEN @NextID THEN @NewItemID ELSE TT.RangeID END - From TRANSITIONS TT - JOIN @NextStepTransitions NS ON NS.TransitionID = TT.TransitionID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,NS.TransitionID,NS.TranType,NS.ToID,NS.RangeID,@NextID,@NewItemID) - From CONTENTS CC - JOIN @NextStepTransitions NS ON NS.FromID = CC.ContentID - END - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Next Step Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@newItemID) OR RangeID IN(@newItemID)) - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@NextID) OR RangeID IN(@NextID)) - -- Transition Text gets updated in ItemInsertExt.cs - - IF( @@TRANCOUNT > 0 ) COMMIT - EXECUTE GetItem @NewItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteItemSiblingAfter Succeeded' -ELSE PRINT 'Procedure Creation: PasteItemSiblingAfter Error on Creation' -GO - -/****** Object: StoredProcedure [PasteItemSiblingBefore] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemSiblingBefore]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [PasteItemSiblingBefore]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[PasteItemSiblingBefore] -( - @ItemID int=null, @StartItemID int=null, - @Type int=null, @DTS datetime, @UserID nvarchar(100), - @NewItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - -- First make a copy of the input CopyStartID - -- DestFormatID is the formatid for the destination parent's format - DECLARE @DestFormatID int - SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - -- First adjust previous fields, may also have to do parts, if before first one in list. - DECLARE @PreviousID int, @ContentID int, @newLastChanged timestamp, @NewType int - SELECT @PreviousID = [PreviousID], @NewType=ISNULL(@Type,[Type]) - FROM [ITEMS] II - JOIN [CONTENTS] CC ON CC.[ContentID]=II.[CONTENTID] - WHERE [ItemID]=@ItemID - UPDATE [ITEMS] SET [PreviousID]=@NewItemID where [ItemID]=@ItemID - UPDATE [ITEMS] SET [PreviousID]=@PreviousID where [ItemID]=@NewItemID - UPDATE [CONTENTS] SET [Type]=@Type - FROM [CONTENTS] CC JOIN [ITEMS] ii ON CC.[ContentID]=II.[ContentID] - WHERE [ItemID]=@NewItemID - UPDATE [PARTS] SET [ItemID]=@NewItemID where [ItemID]=@ItemID - UPDATE [DOCVERSIONS] SET [ItemID] = @NewItemID where [ItemID]=@ItemID - - IF @PreviousID is null -- The step is replacing the first step - BEGIN - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@NewItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TT.ToID = @ItemID OR TT.RangeID = @ItemID - -- Update transitions that pointed to @ItemID to point to @newItemID - Update TRANSITIONS - Set ToID = CASE ToID WHEN @ItemID THEN @NewItemID ELSE ToID END, - RangeID = CASE RangeID WHEN @ItemID THEN @NewItemID ELSE RangeID END - WHERE ToID = @ItemID OR RangeID = @ItemID - END - ELSE -- Check for Transitions that point to the Next Step - BEGIN - -- Get a list of Transitions which need to change children of @ItemID that point to @NextID - DECLARE @NextStepTransitions TABLE - ( - [TransitionID] int PRIMARY KEY, - [FromID] [int], - [ToID] [int], - [RangeID] [int], - [TranType] [int], - [Config] [nvarchar](max) - ) - Insert into @NextStepTransitions select * from vefn_NextStepTransitions(@ItemID,@PreviousID) - IF (SELECT COUNT(*) from @NextStepTransitions) > 0 -- Next Step Transitions - BEGIN - -- Update all transitions in the list to point to @newItemID - Update TT - Set TT.ToID = CASE TT.ToID WHEN @ItemID THEN @NewItemID ELSE TT.ToID END, - TT.RangeID = CASE TT.RangeID WHEN @ItemID THEN @NewItemID ELSE TT.RangeID END - From TRANSITIONS TT - JOIN @NextStepTransitions NS ON NS.TransitionID = TT.TransitionID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,NS.TransitionID,NS.TranType,NS.ToID,NS.RangeID,@ItemID,@NewItemID) - From CONTENTS CC - JOIN @NextStepTransitions NS ON NS.FromID = CC.ContentID - END - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@ItemID,@NewItemID) OR RangeID IN(@ItemID,@NewItemID)) - -- Transition Text gets updated in ItemInsertExt.cs - IF( @@TRANCOUNT > 0 ) COMMIT - EXECUTE GetItem @NewItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteItemSiblingBefore Succeeded' -ELSE PRINT 'Procedure Creation: PasteItemSiblingBefore Error on Creation' -GO - -/****** Object: StoredProcedure [purgeData] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[purgeData]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [purgeData]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[purgeData] - -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - delete from [Annotations] - dbcc checkident([Annotations],reseed,0) - delete from [AnnotationTypes] - dbcc checkident([AnnotationTypes],reseed,0) - delete from [Assignments] - dbcc checkident([Assignments],reseed,0) - delete from [Associations] - dbcc checkident([Associations],reseed,0) - delete from [Details] - dbcc checkident([Details],reseed,0) - delete from [DocVersions] - dbcc checkident([DocVersions],reseed,0) - delete from [DROUsages] - dbcc checkident([DROUsages],reseed,0) - delete from [Entries] - delete from [Figures] - dbcc checkident([Figures],reseed,0) - delete from [Folders] - dbcc checkident([Folders],reseed,0) - delete from [Grids] - delete from [Images] - delete from [Memberships] - dbcc checkident([Memberships],reseed,0) - delete from [Parts] - delete from [Pdfs] - delete from [Permissions] - dbcc checkident([Permissions],reseed,0) - delete from [ROFsts] - dbcc checkident([ROFsts],reseed,0) - delete from [ROImages] - dbcc checkident([ROImages],reseed,0) - delete from [Roles] - dbcc checkident([Roles],reseed,0) - delete from [RoUsages] - dbcc checkident([RoUsages],reseed,0) - delete from [Users] - dbcc checkident([Users],reseed,0) - delete from [ZContents] - delete from [ZTransitions] - delete from [Connections] - dbcc checkident([Connections],reseed,0) - delete from [Documents] - dbcc checkident([Documents],reseed,0) - delete from [Groups] - dbcc checkident([Groups],reseed,0) - delete from [RODbs] - dbcc checkident([RODbs],reseed,0) - delete from [Transitions] - dbcc checkident([Transitions],reseed,0) - delete from [Items] - dbcc checkident([Items],reseed,0) - delete from [Contents] - dbcc checkident([Contents],reseed,0) - delete from [Formats] - dbcc checkident([Formats],reseed,0) - delete from [Scopes] - dbcc checkident([Scopes],reseed,0) - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: purgeData Succeeded' -ELSE PRINT 'Procedure Creation: purgeData Error on Creation' -GO - -/****** Object: StoredProcedure [Standardize] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[Standardize]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [Standardize]; -GO - -/* -Standardize '%engineering evaluation%' -Standardize '%preferred running order%' -Standardize '%provide normal spray%' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[Standardize] -( - @LookFor varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @ContentID INT - SET @Contentid = (select min(ContentID) FROM FindText(@LookFor)) - UPDATE Items SET ContentID = @ContentID WHERE ItemID in(SELECT ItemID FROM FindText(@LookFor)) -IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: Standardize Succeeded' -ELSE PRINT 'Procedure Creation: Standardize Error on Creation' -GO - -/****** Object: StoredProcedure [updateAnnotation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateAnnotation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateAnnotation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateAnnotation] - -( - @AnnotationID int, - @ItemID int, - @TypeID int, - @RtfText nvarchar(MAX)=null, - @SearchText nvarchar(MAX)=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Annotations] - SET - [ItemID]=@ItemID, - [TypeID]=@TypeID, - [RtfText]=@RtfText, - [SearchText]=@SearchText, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [AnnotationID]=@AnnotationID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Annotations] WHERE [AnnotationID]=@AnnotationID) - RAISERROR('Annotation record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Annotation has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Annotations] WHERE [AnnotationID]=@AnnotationID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateAnnotation Succeeded' -ELSE PRINT 'Procedure Creation: updateAnnotation Error on Creation' -GO - -/****** Object: StoredProcedure [updateAnnotationType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateAnnotationType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateAnnotationType]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateAnnotationType] - -( - @TypeID int, - @Name nvarchar(100), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [AnnotationTypes] - SET - [Name]=@Name, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [TypeID]=@TypeID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [AnnotationTypes] WHERE [TypeID]=@TypeID) - RAISERROR('AnnotationType record has been deleted by another user', 16, 1) - ELSE - RAISERROR('AnnotationType has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [AnnotationTypes] WHERE [TypeID]=@TypeID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateAnnotationType Succeeded' -ELSE PRINT 'Procedure Creation: updateAnnotationType Error on Creation' -GO - -/****** Object: StoredProcedure [updateAssignment] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateAssignment]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateAssignment]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateAssignment] - -( - @AID int, - @GID int, - @RID int, - @FolderID int, - @StartDate datetime, - @EndDate datetime=null, - @DTS datetime, - @UsrID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Assignments] - SET - [GID]=@GID, - [RID]=@RID, - [FolderID]=@FolderID, - [StartDate]=@StartDate, - [EndDate]=@EndDate, - [DTS]=@DTS, - [UsrID]=@UsrID - WHERE [AID]=@AID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Assignments] WHERE [AID]=@AID) - RAISERROR('Assignment record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Assignment has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Assignments] WHERE [AID]=@AID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateAssignment Succeeded' -ELSE PRINT 'Procedure Creation: updateAssignment Error on Creation' -GO - -/****** Object: StoredProcedure [updateAssociation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateAssociation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateAssociation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateAssociation] - -( - @AssociationID int, - @VersionID int, - @ROFstID int, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Associations] - SET - [VersionID]=@VersionID, - [ROFstID]=@ROFstID, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [AssociationID]=@AssociationID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Associations] WHERE [AssociationID]=@AssociationID) - RAISERROR('Association record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Association has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Associations] WHERE [AssociationID]=@AssociationID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateAssociation Succeeded' -ELSE PRINT 'Procedure Creation: updateAssociation Error on Creation' -GO - -/****** Object: StoredProcedure [updateConnection] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateConnection]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateConnection]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateConnection] - -( - @DBID int, - @Name nvarchar(100)=null, - @Title nvarchar(510)=null, - @ConnectionString nvarchar(510)=null, - @ServerType int, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Connections] - SET - [Name]=@Name, - [Title]=@Title, - [ConnectionString]=@ConnectionString, - [ServerType]=@ServerType, - [Config]=@Config, - [DTS]=@DTS, - [UsrID]=@UsrID - WHERE [DBID]=@DBID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Connections] WHERE [DBID]=@DBID) - RAISERROR('Connection record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Connection has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Connections] WHERE [DBID]=@DBID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateConnection Succeeded' -ELSE PRINT 'Procedure Creation: updateConnection Error on Creation' -GO - -/****** Object: StoredProcedure [updateContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateContent]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateContent] - -( - @ContentID int, - @Number nvarchar(256)=null, - @Text nvarchar(MAX)=null, - @Type int=null, - @FormatID int=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Contents] - SET - [Number]=@Number, - [Text]=@Text, - [Type]=@Type, - [FormatID]=@FormatID, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [ContentID]=@ContentID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Contents] WHERE [ContentID]=@ContentID) - RAISERROR('Content record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Content has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Contents] WHERE [ContentID]=@ContentID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateContent Succeeded' -ELSE PRINT 'Procedure Creation: updateContent Error on Creation' -GO - -/****** Object: StoredProcedure [updateDetail] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateDetail]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateDetail]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateDetail] - -( - @DetailID int, - @ContentID int, - @ItemType int, - @Text nvarchar(MAX), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Details] - SET - [ContentID]=@ContentID, - [ItemType]=@ItemType, - [Text]=@Text, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [DetailID]=@DetailID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Details] WHERE [DetailID]=@DetailID) - RAISERROR('Detail record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Detail has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Details] WHERE [DetailID]=@DetailID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateDetail Succeeded' -ELSE PRINT 'Procedure Creation: updateDetail Error on Creation' -GO - -/****** Object: StoredProcedure [updateDocument] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateDocument]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateDocument]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateDocument] - -( - @DocID int, - @LibTitle nvarchar(1024)=null, - @DocContent varbinary(MAX)=null, - @DocAscii nvarchar(MAX)=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @FileExtension nvarchar(10), - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Documents] - SET - [LibTitle]=@LibTitle, - [DocContent]=@DocContent, - [DocAscii]=@DocAscii, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID, - [FileExtension]=@FileExtension - WHERE [DocID]=@DocID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Documents] WHERE [DocID]=@DocID) - RAISERROR('Document record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Document has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Documents] WHERE [DocID]=@DocID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateDocument Succeeded' -ELSE PRINT 'Procedure Creation: updateDocument Error on Creation' -GO - -/****** Object: StoredProcedure [updateDocVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateDocVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateDocVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateDocVersion] - -( - @VersionID int, - @FolderID int, - @VersionType int, - @Name nvarchar(100), - @Title nvarchar(510)=null, - @ItemID int=null, - @FormatID int=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [DocVersions] - SET - [FolderID]=@FolderID, - [VersionType]=@VersionType, - [Name]=@Name, - [Title]=@Title, - [ItemID]=@ItemID, - [FormatID]=@FormatID, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [VersionID]=@VersionID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [DocVersions] WHERE [VersionID]=@VersionID) - RAISERROR('DocVersion record has been deleted by another user', 16, 1) - ELSE - RAISERROR('DocVersion has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [DocVersions] WHERE [VersionID]=@VersionID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateDocVersion Succeeded' -ELSE PRINT 'Procedure Creation: updateDocVersion Error on Creation' -GO - -/****** Object: StoredProcedure [updateDROUsage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateDROUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateDROUsage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateDROUsage] - -( - @DROUsageID int, - @DocID int, - @ROID nvarchar(16), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @RODbID int, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [DROUsages] - SET - [DocID]=@DocID, - [ROID]=@ROID, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID, - [RODbID]=@RODbID - WHERE [DROUsageID]=@DROUsageID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [DROUsages] WHERE [DROUsageID]=@DROUsageID) - RAISERROR('DROUsage record has been deleted by another user', 16, 1) - ELSE - RAISERROR('DROUsage has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [DROUsages] WHERE [DROUsageID]=@DROUsageID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateDROUsage Succeeded' -ELSE PRINT 'Procedure Creation: updateDROUsage Error on Creation' -GO - -/****** Object: StoredProcedure [updateEntry] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateEntry]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateEntry]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateEntry] - -( - @ContentID int, - @DocID int, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Entries] - SET - [DocID]=@DocID, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [ContentID]=@ContentID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Entries] WHERE [ContentID]=@ContentID) - RAISERROR('Entry record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Entry has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Entries] WHERE [ContentID]=@ContentID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateEntry Succeeded' -ELSE PRINT 'Procedure Creation: updateEntry Error on Creation' -GO - -/****** Object: StoredProcedure [updateFigure] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateFigure]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateFigure]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateFigure] - -( - @FigureID int, - @ROFstID int, - @ImageID int, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Figures] - SET - [ROFstID]=@ROFstID, - [ImageID]=@ImageID, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [FigureID]=@FigureID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Figures] WHERE [FigureID]=@FigureID) - RAISERROR('Figure record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Figure has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Figures] WHERE [FigureID]=@FigureID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateFigure Succeeded' -ELSE PRINT 'Procedure Creation: updateFigure Error on Creation' -GO - -/****** Object: StoredProcedure [updateFolder] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateFolder]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateFolder]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateFolder] - -( - @FolderID int, - @ParentID int, - @DBID int, - @Name nvarchar(100), - @Title nvarchar(510)=null, - @ShortName nvarchar(20), - @FormatID int=null, - @ManualOrder float=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Folders] - SET - [ParentID]=@ParentID, - [DBID]=@DBID, - [Name]=@Name, - [Title]=@Title, - [ShortName]=@ShortName, - [FormatID]=@FormatID, - [ManualOrder]=@ManualOrder, - [Config]=@Config, - [DTS]=@DTS, - [UsrID]=@UsrID - WHERE [FolderID]=@FolderID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Folders] WHERE [FolderID]=@FolderID) - RAISERROR('Folder record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Folder has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Folders] WHERE [FolderID]=@FolderID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateFolder Succeeded' -ELSE PRINT 'Procedure Creation: updateFolder Error on Creation' -GO - -/****** Object: StoredProcedure [updateFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateFormat]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateFormat] - -( - @FormatID int, - @ParentID int, - @Name nvarchar(20), - @Description nvarchar(250)=null, - @Data xml, - @GenMac xml=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Formats] - SET - [ParentID]=@ParentID, - [Name]=@Name, - [Description]=@Description, - [Data]=@Data, - [GenMac]=@GenMac, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [FormatID]=@FormatID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Formats] WHERE [FormatID]=@FormatID) - RAISERROR('Format record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Format has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Formats] WHERE [FormatID]=@FormatID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateFormat Succeeded' -ELSE PRINT 'Procedure Creation: updateFormat Error on Creation' -GO - -/****** Object: StoredProcedure [updateGrid] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateGrid]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateGrid]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateGrid] - -( - @ContentID int, - @Data xml, - @Config xml=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Grids] - SET - [Data]=@Data, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [ContentID]=@ContentID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Grids] WHERE [ContentID]=@ContentID) - RAISERROR('Grid record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Grid has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Grids] WHERE [ContentID]=@ContentID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateGrid Succeeded' -ELSE PRINT 'Procedure Creation: updateGrid Error on Creation' -GO - -/****** Object: StoredProcedure [updateGroup] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateGroup]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateGroup]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateGroup] - -( - @GID int, - @GroupName nvarchar(50), - @GroupType int=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Groups] - SET - [GroupName]=@GroupName, - [GroupType]=@GroupType, - [Config]=@Config, - [DTS]=@DTS, - [UsrID]=@UsrID - WHERE [GID]=@GID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Groups] WHERE [GID]=@GID) - RAISERROR('Group record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Group has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Groups] WHERE [GID]=@GID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateGroup Succeeded' -ELSE PRINT 'Procedure Creation: updateGroup Error on Creation' -GO - -/****** Object: StoredProcedure [updateImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateImage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateImage] - -( - @ContentID int, - @ImageType int, - @FileName nvarchar(255), - @Data varbinary(MAX), - @Config xml=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Images] - SET - [ImageType]=@ImageType, - [FileName]=@FileName, - [Data]=@Data, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [ContentID]=@ContentID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Images] WHERE [ContentID]=@ContentID) - RAISERROR('Image record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Image has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Images] WHERE [ContentID]=@ContentID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateImage Succeeded' -ELSE PRINT 'Procedure Creation: updateImage Error on Creation' -GO - -/****** Object: StoredProcedure [updateItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateItem] - -( - @ItemID int, - @PreviousID int=null, - @ContentID int, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Items] - SET - [PreviousID]=@PreviousID, - [ContentID]=@ContentID, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [ItemID]=@ItemID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Items] WHERE [ItemID]=@ItemID) - RAISERROR('Item record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Item has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Items] WHERE [ItemID]=@ItemID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateItem Succeeded' -ELSE PRINT 'Procedure Creation: updateItem Error on Creation' -GO - -/****** Object: StoredProcedure [updateMembership] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateMembership]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateMembership]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateMembership] - -( - @UGID int, - @UID int, - @GID int, - @StartDate datetime, - @EndDate datetime=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Memberships] - SET - [UID]=@UID, - [GID]=@GID, - [StartDate]=@StartDate, - [EndDate]=@EndDate, - [Config]=@Config, - [DTS]=@DTS, - [UsrID]=@UsrID - WHERE [UGID]=@UGID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Memberships] WHERE [UGID]=@UGID) - RAISERROR('Membership record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Membership has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Memberships] WHERE [UGID]=@UGID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateMembership Succeeded' -ELSE PRINT 'Procedure Creation: updateMembership Error on Creation' -GO - -/****** Object: StoredProcedure [updatePdf] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updatePdf]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updatePdf]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updatePdf] - -( - @DocID int, - @DebugStatus int, - @TopRow int, - @PageLength int, - @LeftMargin int, - @PageWidth int, - @PageCount float, - @DocPdf varbinary(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Pdfs] - SET - [PageCount]=@PageCount, - [DocPdf]=@DocPdf, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [DocID]=@DocID AND [DebugStatus]=@DebugStatus AND [TopRow]=@TopRow AND [PageLength]=@PageLength AND [LeftMargin]=@LeftMargin AND [PageWidth]=@PageWidth AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Pdfs] WHERE [DocID]=@DocID AND [DebugStatus]=@DebugStatus AND [TopRow]=@TopRow AND [PageLength]=@PageLength AND [LeftMargin]=@LeftMargin AND [PageWidth]=@PageWidth) - RAISERROR('Pdf record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Pdf has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Pdfs] WHERE [DocID]=@DocID AND [DebugStatus]=@DebugStatus AND [TopRow]=@TopRow AND [PageLength]=@PageLength AND [LeftMargin]=@LeftMargin AND [PageWidth]=@PageWidth - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updatePdf Succeeded' -ELSE PRINT 'Procedure Creation: updatePdf Error on Creation' -GO - -/****** Object: StoredProcedure [updatePermission] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updatePermission]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updatePermission]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updatePermission] - -( - @PID int, - @RID int, - @PermLevel int, - @VersionType int, - @PermValue int, - @PermAD int, - @StartDate datetime, - @EndDate datetime=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Permissions] - SET - [RID]=@RID, - [PermLevel]=@PermLevel, - [VersionType]=@VersionType, - [PermValue]=@PermValue, - [PermAD]=@PermAD, - [StartDate]=@StartDate, - [EndDate]=@EndDate, - [Config]=@Config, - [DTS]=@DTS, - [UsrID]=@UsrID - WHERE [PID]=@PID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Permissions] WHERE [PID]=@PID) - RAISERROR('Permission record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Permission has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Permissions] WHERE [PID]=@PID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updatePermission Succeeded' -ELSE PRINT 'Procedure Creation: updatePermission Error on Creation' -GO - -/****** Object: StoredProcedure [updateRODb] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateRODb]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateRODb]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateRODb] - -( - @RODbID int, - @ROName nvarchar(255), - @FolderPath nvarchar(255), - @DBConnectionString nvarchar(MAX), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [RODbs] - SET - [ROName]=@ROName, - [FolderPath]=@FolderPath, - [DBConnectionString]=@DBConnectionString, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [RODbID]=@RODbID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [RODbs] WHERE [RODbID]=@RODbID) - RAISERROR('RODb record has been deleted by another user', 16, 1) - ELSE - RAISERROR('RODb has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [RODbs] WHERE [RODbID]=@RODbID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateRODb Succeeded' -ELSE PRINT 'Procedure Creation: updateRODb Error on Creation' -GO - -/****** Object: StoredProcedure [updateROFst] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateROFst]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateROFst]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateROFst] - -( - @ROFstID int, - @RODbID int, - @ROLookup varbinary(MAX), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [ROFsts] - SET - [RODbID]=@RODbID, - [ROLookup]=@ROLookup, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [ROFstID]=@ROFstID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [ROFsts] WHERE [ROFstID]=@ROFstID) - RAISERROR('ROFst record has been deleted by another user', 16, 1) - ELSE - RAISERROR('ROFst has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [ROFsts] WHERE [ROFstID]=@ROFstID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateROFst Succeeded' -ELSE PRINT 'Procedure Creation: updateROFst Error on Creation' -GO - -/****** Object: StoredProcedure [updateROImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateROImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateROImage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateROImage] - -( - @ImageID int, - @RODbID int, - @FileName nvarchar(255), - @Content varbinary(MAX), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [ROImages] - SET - [RODbID]=@RODbID, - [FileName]=@FileName, - [Content]=@Content, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [ImageID]=@ImageID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [ROImages] WHERE [ImageID]=@ImageID) - RAISERROR('ROImage record has been deleted by another user', 16, 1) - ELSE - RAISERROR('ROImage has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [ROImages] WHERE [ImageID]=@ImageID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateROImage Succeeded' -ELSE PRINT 'Procedure Creation: updateROImage Error on Creation' -GO - -/****** Object: StoredProcedure [updateRole] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateRole]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateRole]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateRole] - -( - @RID int, - @Name nvarchar(50), - @Title nvarchar(250), - @DTS datetime, - @UsrID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Roles] - SET - [Name]=@Name, - [Title]=@Title, - [DTS]=@DTS, - [UsrID]=@UsrID - WHERE [RID]=@RID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Roles] WHERE [RID]=@RID) - RAISERROR('Role record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Role has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Roles] WHERE [RID]=@RID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateRole Succeeded' -ELSE PRINT 'Procedure Creation: updateRole Error on Creation' -GO - -/****** Object: StoredProcedure [updateRoUsage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateRoUsage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateRoUsage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateRoUsage] - -( - @ROUsageID int, - @ContentID int, - @ROID nvarchar(16), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @RODbID int, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [RoUsages] - SET - [ContentID]=@ContentID, - [ROID]=@ROID, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID, - [RODbID]=@RODbID - WHERE [ROUsageID]=@ROUsageID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [RoUsages] WHERE [ROUsageID]=@ROUsageID) - RAISERROR('RoUsage record has been deleted by another user', 16, 1) - ELSE - RAISERROR('RoUsage has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [RoUsages] WHERE [ROUsageID]=@ROUsageID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateRoUsage Succeeded' -ELSE PRINT 'Procedure Creation: updateRoUsage Error on Creation' -GO - -/****** Object: StoredProcedure [updateTransition] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateTransition]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateTransition]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateTransition] - -( - @TransitionID int, - @FromID int, - @ToID int, - @RangeID int, - @IsRange int, - @TranType int, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Transitions] - SET - [FromID]=@FromID, - [ToID]=@ToID, - [RangeID]=@RangeID, - [IsRange]=@IsRange, - [TranType]=@TranType, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [TransitionID]=@TransitionID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Transitions] WHERE [TransitionID]=@TransitionID) - RAISERROR('Transition record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Transition has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Transitions] WHERE [TransitionID]=@TransitionID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateTransition Succeeded' -ELSE PRINT 'Procedure Creation: updateTransition Error on Creation' -GO - -/****** Object: StoredProcedure [updateUser] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateUser]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateUser]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateUser] - -( - @UID int, - @UserID nvarchar(100), - @FirstName nvarchar(50)=null, - @MiddleName nvarchar(50)=null, - @LastName nvarchar(50)=null, - @Suffix nvarchar(10)=null, - @CourtesyTitle nvarchar(10)=null, - @PhoneNumber nvarchar(30)=null, - @CFGName nvarchar(8)=null, - @UserLogin nvarchar(10)=null, - @UserName nvarchar(32)=null, - @Config nvarchar(MAX)=null, - @DTS datetime, - @UsrID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Users] - SET - [UserID]=@UserID, - [FirstName]=@FirstName, - [MiddleName]=@MiddleName, - [LastName]=@LastName, - [Suffix]=@Suffix, - [CourtesyTitle]=@CourtesyTitle, - [PhoneNumber]=@PhoneNumber, - [CFGName]=@CFGName, - [UserLogin]=@UserLogin, - [UserName]=@UserName, - [Config]=@Config, - [DTS]=@DTS, - [UsrID]=@UsrID - WHERE [UID]=@UID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Users] WHERE [UID]=@UID) - RAISERROR('User record has been deleted by another user', 16, 1) - ELSE - RAISERROR('User has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Users] WHERE [UID]=@UID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateUser Succeeded' -ELSE PRINT 'Procedure Creation: updateUser Error on Creation' -GO - -/****** Object: StoredProcedure [updateZContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateZContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateZContent]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateZContent] - -( - @ContentID int, - @OldStepSequence nvarchar(32), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [ZContents] - SET - [OldStepSequence]=@OldStepSequence - WHERE [ContentID]=@ContentID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [ZContents] WHERE [ContentID]=@ContentID) - RAISERROR('ZContent record has been deleted by another user', 16, 1) - ELSE - RAISERROR('ZContent has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [ZContents] WHERE [ContentID]=@ContentID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateZContent Succeeded' -ELSE PRINT 'Procedure Creation: updateZContent Error on Creation' -GO - -/****** Object: StoredProcedure [updateZTransition] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateZTransition]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateZTransition]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateZTransition] - -( - @TransitionID int, - @Oldto nvarchar(32), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [ZTransitions] - SET - [oldto]=@Oldto - WHERE [TransitionID]=@TransitionID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [ZTransitions] WHERE [TransitionID]=@TransitionID) - RAISERROR('ZTransition record has been deleted by another user', 16, 1) - ELSE - RAISERROR('ZTransition has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [ZTransitions] WHERE [TransitionID]=@TransitionID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateZTransition Succeeded' -ELSE PRINT 'Procedure Creation: updateZTransition Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetChildCount] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetChildCount]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetChildCount]; -GO - -/* --- Select Procedures with Children -select ItemID, dbo.ve_GetChildCount(ItemID) ChildCount from [Items] II -Join [Contents] CC on II.ContentID = CC.ContentID and CC.Type = 0 and CC.ContentID in (Select ContentID from Parts) -order dbo.ve_GetChildCount(ItemID) desc -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetChildCount] (@ItemID int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN -declare @Count int; -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -Select @Count = Count(*) from Itemz -OPTION (MAXRECURSION 10000) -return @Count END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetChildCount Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetChildCount Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetFolderPath] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetFolderPath]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetFolderPath]; -GO - -/* - -Select VersionID,Name,dbo.ve_GetFolderPath(VersionID) from DocVersions order by VersionID - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetFolderPath] (@VersionID int) RETURNS varchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN -declare @Path varchar(MAX); -with Folderz(Level, FolderID, Path) as ( - Select 1 Level, FolderID,CAST(Name as varchar(MAX)) - from DocVersions I - where VersionID = @VersionID - Union All --- - Select FS.ParentID - (Select ParentID from Folders where FolderID = FS.ParentID), ParentID, CAST(Name + char(7) + Path as varchar(MAX)) - from Folders FS - join Folderz FZ on FS.FolderID = FZ.FolderID - where FS.FolderID <> FS.ParentID -) -select @Path = path From Folderz where Level = 0 -return @Path -END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetFolderPath Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetFolderPath Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetNextTranCount] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetNextTranCount]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetNextTranCount]; -GO - -/* -select dbo.ve_GetNextTranCount(251) NextTrans -select *, dbo.ve_GetNextTranCount(ItemID) NextTrans from vefn_AllHighLevelSteps() -Order By dbo.ve_GetNextTranCount(ItemID) DESC - - Select count(*) from Transitions TT - join contents CC on TT.FromID = CC.ContentID - where FromID in (Select ContentID from vefn_ChildItems(247)) - AND (ToID = 251 or RangeID = 251) - -declare @ItemID int; -set @ItemID=251 - - declare @Count int; - declare @PreviousID as int - select @PreviousID = PreviousID from items where ItemID = @ItemID - Print @PreviousID - if @PreviousID is not null - BEGIN - Select @Count = count(*) from vefn_ChildItems(247) - --Select @Count = count(*) from Transitions TT - --join contents CC on TT.FromID = CC.ContentID - --where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) - --AND (ToID = @ItemID or RangeID = @ItemID) - END - --ELSE - --set @Count=0 - Print 'I''m here' - Print @Count - - Select * from vefn_ChildItems(247) - -*/ - - - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetNextTranCount] (@ItemID int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN - declare @Count int; - declare @PreviousID as int - select @PreviousID = PreviousID from items where ItemID = @ItemID - if @PreviousID is not null - BEGIN - Select @Count = count(*) from Transitions TT - join contents CC on TT.FromID = CC.ContentID - where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) - AND (ToID = @ItemID or RangeID = @ItemID) - END - ELSE - set @Count=0 - return @Count -END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetNextTranCount Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetNextTranCount Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetParts] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetParts]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetParts]; -GO - ---select .dbo.ve_GetParts(756,6) - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetParts] (@ContentID int,@FromType int) -RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN -declare @retval varchar(max) -begin -with ContentZ(AllContents,PreviousID,HasChildren) as ( - Select cast(II.ContentID as varchar(max)) AllContents,II.ItemID PreviousID, case when Exists(select ItemID from Items where PreviousID = II.ItemID) then 1 else 0 end HasChildren - from Items II join Parts PP on II.ItemID=PP.ItemID - where PP.ContentID=@ContentID and PP.FromType = @FromType - Union All --- - Select ZZ.AllContents + '.' + cast(II.ContentID as varchar(max)) AllContents,II.ItemID PreviousID, case when Exists(select ItemID from Items where PreviousID = II.ItemID) then 1 else 0 end HasChildren - from Items II - Join ContentZ ZZ on II.PreviousID = ZZ.PreviousID -) -Select @retval = AllContents from ContentZ where HasChildren=0 -OPTION (MAXRECURSION 1000) -end -return @retval -end -/* -ALTER FUNCTION [dbo].[ve_GetPath] (@StructID int) -RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN --- declare @STructID int ---set @StructID=11 -declare @Path varchar(max); -with Struct(FromType,FromID,Item,PPath,Path) as ( - Select FromType,FromID,0 Item,Cast('' as varchar(max)) PPath , - Cast(case FromType - when 1 then 'PRC.000' when 2 then '.SEC.000' - when 3 then '.CAU.000' when 4 then '.NOT.000' - when 5 then '.RNO' when 7 then '.TAB' - else '.000' end as varchar(max)) Path - from Structures - where StructureID=@StructID - Union All --- Child - Select A.FromType,A.FromID,0 as Item,Path, - Cast(case A.FromType - when 1 then 'PRC.000' when 2 then '.SEC.000' - when 3 then '.CAU.000' when 4 then '.NOT.000' - when 5 then '.RNO' when 7 then '.TAB' - else '.000' end + Path as varchar(max)) Path - from Structures A - Join Struct C on C.FromID=A.StructureID - where C.FromType <> 0 - Union All --- Sibling - Select A.FromType,A.FromID,Item + 1 Item,PPath, - case A.FromType - when 1 then 'PRC.' when 2 then '.SEC.' - when 3 then '.CAU.' when 4 then '.NOT.' - when 5 then '.RNO.' when 7 then '.TAB.' - else '.' end + right('000' + cast(Item + 1 as varchar(3)),3) + PPath Path - from Structures A - Join Struct C on C.FromID=A.StructureID - where C.FromType = 0 -) ---select * from Struct OPTION (MAXRECURSION 1000) -Select @Path = Path from Struct where FromID=0 OPTION (MAXRECURSION 1000) ---print @path -return @Path -END; -*/ -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetParts Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetParts Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetPath] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetPath]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetPath]; -GO - -/* -select ItemID, CC.Type, dbo.ve_GetPath(ItemID) -from Items II join Contents CC on II.ContentID = CC.ContentID -where ItemID in(111,265,266,267) -*/ --- drop function ve_GetPath -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetPath] (@ItemID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN --- declare @STructID int ---set @StructID=11 -declare @Path varchar(max); -with Itemz(ItemCount,ItemID,PreviousID,FromType,CType,Number,Text,PPath, Path) as ( - Select 1,ItemID,PreviousID,0,C.Type/10000,C.Number,C.Text, - Cast(Case when C.Type < 20000 then '`' + C.Number +'`' + C.Text else '' end as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then '`' + C.Number +'`' + C.Text else '1' end as nvarchar(max)) Path - from Items I - join Contents C on I.ContentID = C.ContentID - where ItemID=@ItemID - Union All --- siblings - Select ItemCount+1,I.PreviousID,II.PreviousID,0,C.Type/10000,Z.Number,Z.Text,PPath,cast(ItemCount + 1 as nvarchar(3)) + PPath - from Items I - join Contents C on I.ContentID = C.ContentID - Join Items II on II.ItemID = I.PreviousID - Join Itemz Z on I.ItemID=Z.ItemID - where I.PreviousID != 0 - Union All --- children - select 1,I.ItemID,I.PreviousID,P.FromType,C.Type/10000,C.Number,C.Text, - case C.Type/10000 - when 0 then '`' + C.Number +'`' + C.Text - when 1 then '`' + C.Number +'`' + C.Text +'`' + cast(ItemCount + 0 as varchar(3)) - else - case P.FromType - when 1 then 'PRC`' + cast(ItemCount + 0 as varchar(3)) - when 2 then '`SEC`' + cast(ItemCount + 0 as varchar(3)) - when 3 then '`Caution`' + cast(ItemCount + 0 as varchar(3)) - when 4 then '`Note`' + cast(ItemCount + 0 as varchar(3)) - when 5 then '`RNO`' - when 7 then '`Table`' - else '`' + cast(ItemCount + 0 as varchar(3)) - end end + PPath PPath, - --'1' + - case C.Type/10000 - when 0 then '`' + C.Number +'`' + C.Text - when 1 then '`' + C.Number +'`' + C.Text +'`' + cast(ItemCount + 0 as varchar(3)) - else - case P.FromType - when 1 then 'PRC`' + cast(ItemCount + 0 as varchar(3)) - when 2 then '`SEC`' + cast(ItemCount + 0 as varchar(3)) - when 3 then '`Caution`' + cast(ItemCount + 0 as varchar(3)) - when 4 then '`Note`' + cast(ItemCount + 0 as varchar(3)) - when 5 then '`RNO' - when 7 then '`Table' - else '`' + cast(ItemCount + 0 as varchar(3)) - end end + PPath Path - - from Parts P - join Items I on I.ContentID = P.ContentID - join Contents C on I.ContentID = C.ContentID - join Itemz Z on P.ItemID=Z.ItemID -) -select @Path = path From Itemz where ItemCount=1 and CType=0 -OPTION (MAXRECURSION 10000) -return @Path -END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetPath Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetPath Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetPathFromContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetPathFromContentID]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetPathFromContentID]; -GO - -/* -select top 5 -[dbo].[ve_GetPathFromContentID](FromID)FromPath -,[dbo].[ve_GetPath](ToID) ToPath -,[dbo].[ve_GetPath](RangeID) RangePath - from transitions -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetPathFromContentID] (@ContentID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @ItemID int; - select top 1 @ItemID=ItemID from Items where ContentID = @ContentID; - return DBO.ve_GetPath(@ItemID) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetPathFromContentID Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetPathFromContentID Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetShortPart] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetShortPart]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetShortPart]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create FUNCTION [dbo].[ve_GetShortPart] (@Number varchar(max),@Title varchar(max)) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN - if(isnull(@Number,'') = '') return @Title - return @Number -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetShortPart Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetShortPart Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetShortPath] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetShortPath]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetShortPath]; -GO - -/* -select ItemID, CC.Type, dbo.ve_GetPath(ItemID) -from Items II join Contents CC on II.ContentID = CC.ContentID -where ItemID in(111,265,266,267) -*/ --- drop function ve_GetPath -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetShortPath] (@ItemID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN --- declare @STructID int ---set @StructID=11 -declare @Path varchar(max); -with Itemz(ItemCount,ItemID,PreviousID,FromType,CType,Number,Text,PPath, Path) as ( - Select 1,ItemID,PreviousID,0,C.Type/10000,C.Number,C.Text, - Cast(Case when C.Type < 20000 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) else '' end as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) else '1' end as nvarchar(max)) Path - from Items I - join Contents C on I.ContentID = C.ContentID - where ItemID=@ItemID - Union All --- siblings - Select ItemCount+1,I.PreviousID,II.PreviousID,0,C.Type/10000,Z.Number,Z.Text,PPath,cast(ItemCount + 1 as nvarchar(3)) + PPath - from Items I - join Contents C on I.ContentID = C.ContentID - Join Items II on II.ItemID = I.PreviousID - Join Itemz Z on I.ItemID=Z.ItemID - where I.PreviousID != 0 - Union All --- children - select 1,I.ItemID,I.PreviousID,P.FromType,C.Type/10000,C.Number,C.Text, - case C.Type/10000 - when 0 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) - when 1 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) +'`' + cast(ItemCount + 0 as varchar(3)) - else - case P.FromType - when 1 then 'PRC`' + cast(ItemCount + 0 as varchar(3)) - when 2 then '`SEC`' + cast(ItemCount + 0 as varchar(3)) - when 3 then '`Caution`' + cast(ItemCount + 0 as varchar(3)) - when 4 then '`Note`' + cast(ItemCount + 0 as varchar(3)) - when 5 then '`RNO`' - when 7 then '`Table`' - else '`' + cast(ItemCount + 0 as varchar(3)) - end end + PPath PPath, - --'1' + - case C.Type/10000 - when 0 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) - when 1 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) +'`' + cast(ItemCount + 0 as varchar(3)) - else - case P.FromType - when 1 then 'PRC`' + cast(ItemCount + 0 as varchar(3)) - when 2 then '`SEC`' + cast(ItemCount + 0 as varchar(3)) - when 3 then '`Caution`' + cast(ItemCount + 0 as varchar(3)) - when 4 then '`Note`' + cast(ItemCount + 0 as varchar(3)) - when 5 then '`RNO' - when 7 then '`Table' - else '`' + cast(ItemCount + 0 as varchar(3)) - end end + PPath Path - - from Parts P - join Items I on I.ContentID = P.ContentID - join Contents C on I.ContentID = C.ContentID - join Itemz Z on P.ItemID=Z.ItemID -) -select @Path = path From Itemz where ItemCount=1 and CType=0 -OPTION (MAXRECURSION 10000) -return REPLACE(@Path,'\u8209?','-') -END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetShortPath Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetShortPath Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetShortPathFromContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetShortPathFromContentID]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetShortPathFromContentID]; -GO - -/* -select top 5 -[dbo].[ve_GetShortPathFromContentID](FromID)FromPath -,[dbo].[ve_GetShortPath](ToID) ToPath -,[dbo].[ve_GetShortPath](RangeID) RangePath - from transitions -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetShortPathFromContentID] (@ContentID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @ItemID int; - select top 1 @ItemID=ItemID from Items where ContentID = @ContentID; - return DBO.ve_GetShortPath(@ItemID) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetShortPathFromContentID Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetShortPathFromContentID Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetSiblingCount] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetSiblingCount]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetSiblingCount]; -GO - -/* -select top 5 CC.Number,CC.Text,Type,ItemID, dbo.ve_GetSiblingCount(ItemID) HLStepCount -from Contents CC -Join Parts PP on PP.ContentID = CC.ContentID -where CC.Type >= 10000 and CC.Type < 20000 -order by dbo.ve_GetSiblingCount(ItemID) desc - -select top 5 CC.Number,CC.Text,Type,ItemID, dbo.ve_GetSiblingCount(ItemID) SectionCount -from Contents CC -Join Parts PP on PP.ContentID = CC.ContentID -where CC.Type < 10000 -order by dbo.ve_GetSiblingCount(ItemID) desc - -select top 5 CC.Text,Type,ItemID, dbo.ve_GetSiblingCount(ItemID) SubStepCount -from Contents CC -Join Parts PP on PP.ContentID = CC.ContentID -where CC.Type >= 20000 -order by dbo.ve_GetSiblingCount(ItemID) desc - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetSiblingCount] (@ItemID int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN -declare @Count int; -with Itemz([Direction], [ItemID], [PreviousID]) as ( - Select 0 Direction,[ItemID], [PreviousID] - FROM [Items] - where [ItemID]=@ItemID --- Siblings Previous -Union All - select -1 Direction,I.[ItemID], I.[PreviousID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.Direction <= 0 --- Siblings Next -Union All - select 1 Direction,I.[ItemID], I.[PreviousID] - from Itemz Z - join Items I on I.ItemID = Z.PreviousID - where Z.Direction >= 0 -) -Select @Count = Count(*) from Itemz -OPTION (MAXRECURSION 10000) -return @Count END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetSiblingCount Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetSiblingCount Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_AllHighLevelSteps] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_AllHighLevelSteps]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_AllHighLevelSteps]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_AllHighLevelSteps]() -RETURNS @HighLevelStepTransitions TABLE -( - ParentID int - ,ItemID int PRIMARY KEY - ,Ordinal int - ,Path varchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM (select II.ItemID ParentID, PP.ItemID, PreviousID, II.ContentID, II.DTS, II.UserID, II.LastChanged from Items II -Join Contents CC on II.ContentID = CC.ContentID -Join Parts PP on PP.ContentID = II.ContentID and FromType = 6 -where CC.Type = 10000) TT --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - --where Z.[Level] > 0 -) -Insert into @HighLevelStepTransitions -select [ParentID],ItemID,Ordinal,dbo.ve_GetPath([ItemID]) Path -from Itemz -Order by ParentID,ItemID -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_AllHighLevelSteps Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_AllHighLevelSteps Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_AllHighLevelStepTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_AllHighLevelStepTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_AllHighLevelStepTransitions]; -GO - -/* -select * from vefn_AllHighLevelStepTransitions() -where ExternalTransitions > 0 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_AllHighLevelStepTransitions]() -RETURNS @HighLevelStepTransitions TABLE -( - ParentID int - ,ItemID int PRIMARY KEY - ,Ordinal int - ,Path varchar(max) - ,TransCount int - ,ExternalTransitions int - ,ExternalChildTransitions int - ,InternalTransitions int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM (select II.ItemID ParentID, PP.ItemID, PreviousID, II.ContentID, II.DTS, II.UserID, II.LastChanged from Items II -Join Contents CC on II.ContentID = CC.ContentID -Join Parts PP on PP.ContentID = II.ContentID and FromType = 6 -where CC.Type = 10000) TT --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - --where Z.[Level] > 0 -) -Insert into @HighLevelStepTransitions -select [ParentID],ItemID,Ordinal,dbo.ve_GetShortPath([ItemID]) Path,(Select Count(*) from Transitions where ToID=ItemID OR RangeID=ItemID ) TransCount -,(Select count(*) from vefn_FindExternalTransitions(ItemID)) ExternalTransitions -,(Select count(*) from vefn_FindExternalChildTransitions(ItemID)) ExternalChildTransitions -,(Select count(*) from vefn_FindInternalTransitions(ItemID)) InternalTransitions -from Itemz -where (Select Count(*) from Transitions where ToID=ItemID OR RangeID=ItemID ) > 0 -OR(Select count(*) from vefn_FindExternalTransitions(ItemID)) > 0 -OR(Select count(*) from vefn_FindInternalTransitions(ItemID)) > 0 -Order by ParentID,ItemID -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_AllHighLevelStepTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_AllHighLevelStepTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_AllSections] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_AllSections]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_AllSections]; -GO - --- Select .dbo.vefn_AllSections(10001) MyTypeSection, .dbo.vlnfn_AllSections(20001) MyTypeStep, .dbo.vlnfn_AllSections(5) MyTypeProc -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_AllSections](@type int) -RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN - IF(@type < 20000 and @type >= 10000) - RETURN 10000 - RETURN @type -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_AllSections Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_AllSections Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_AnnotationTypeSplit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_AnnotationTypeSplit]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_AnnotationTypeSplit]; -GO - -/* -select * from vefn_AnnotationTypeSplit('1,4') -select * from vefn_AnnotationTypeSplit(null) -select * from vefn_AnnotationTypeSplit('') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_AnnotationTypeSplit](@AnnotationTypeList varchar(MAX)) -RETURNS @IDs TABLE -( - TypeID int PRIMARY KEY, - Name varchar(100) -) -WITH EXECUTE AS OWNER -AS -BEGIN -IF(isnull(@AnnotationTypeList,'') = '') - Insert into @IDs - Select TypeID, Name - from AnnotationTypes -else - Insert into @IDs - Select TypeID,NAME - from AnnotationTypes - where TypeID in(select ID from vefn_SplitInt(@AnnotationTypeList,',')) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_AnnotationTypeSplit Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_AnnotationTypeSplit Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_ChildItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChildItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChildItems]; -GO - -/* -declare @PreviousID as int -declare @ItemID as int -set @ItemID = 450 -select @PreviousID = PreviousID from items where ItemID = @ItemID - -Select * from Items where ItemID = @ItemID - -select * from Transitions -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -select CC.Text from Transitions TT -join contents CC on TT.FromID = CC.ContentID -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ChildItems](@ItemID int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ItemID], [ContentID]) as ( - Select 0 [Level], [ItemID], [ContentID] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] , I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children select ItemID, ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ChildItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ChildItems Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_ChildItemsRange] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChildItemsRange]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChildItemsRange]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ChildItemsRange](@StartItemID int, @EndItemID int, @DestFormat int) -RETURNS @Children TABLE -( -ItemID int PRIMARY KEY, -ContentID int, -FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @FormatID int -SELECT @FormatID = isnull(@DestFormat,.dbo.vefn_GetInheritedFormat(@StartItemID,1)) -BEGIN -with Itemz([Level], [ItemID], [ContentID], [FormatID], [FoundEnd]) as ( -Select 0 [Level], [ItemID], I.[ContentID], IsNull(C.[FormatID], @FormatID), case [ItemID] when @EndItemID then 1 else 0 end [FoundEnd] -FROM [Items] I -JOIN [Contents] C on I.ContentID = C.ContentID -where [ItemID]=@StartItemID -Union All --- Children -select [Level] + 1, I.[ItemID], I.[ContentID], IsNull(C.[FormatID], Z.[FormatID]), case I.[ItemID] when @EndItemID then 1 else 0 end [FoundEnd] -from Itemz Z -join Parts P on P.ContentID = Z.ContentID -join Items I on I.ItemID = P.ItemID -JOIN [Contents] C on I.ContentID = C.ContentID --- Siblings -Union All -select [Level] , I.[ItemID], I.[ContentID], IsNull(C.[FormatID], Z.[FormatID]), case I.[ItemID] when @EndItemID then 1 else 0 end [FoundEnd] -from Itemz Z -join Items I on I.PreviousID = Z.ItemID -JOIN [Contents] C on I.ContentID = C.ContentID -where FoundEnd = 0 -) -insert into @Children select ItemID, ContentID, FormatID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ChildItemsRange Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ChildItemsRange Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_ChildrenItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChildrenItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChildrenItems]; -GO - -/* -select * from Transitions -where (ToID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) OR (RangeID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) -AND NOT (FromID in(Select ContentID From dbo.vefn_ChildrenItems(185,184))) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ChildrenItems](@ItemID int, @ParentID int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children select ItemID, ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ChildrenItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ChildrenItems Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_CompareTranFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CompareTranFormat]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_CompareTranFormat]; -GO - -/* - Determines if two transition formats are same string. - returns 0 if identical, 1 if similar (range for range, item for item), 2 if totally different -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_CompareTranFormat] (@FormatID int, @NewFormatID int, @TranType int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN - -- - IF @FormatID = @NewFormatID - RETURN 0 -- Exactly the same format file - DECLARE @TransFormat varchar(max) - DECLARE @NewTransFormat varchar(max) - SET @TransFormat = isnull(.dbo.vefn_GetTransFormat(@FormatID, @TranType),'') - SET @NewTransFormat = isnull(.dbo.vefn_GetTransFormat(@NewFormatID, @TranType),'') - RETURN CASE - WHEN @TransFormat = @NewTransFormat THEN 0 -- transition formats are identical - WHEN @TransFormat LIKE '%{Last Step}%' THEN - CASE - WHEN @NewTransFormat LIKE '%{Last Step}%' THEN 1 -- both ranges, but different format - ELSE 2 -- totally different format, not even same type (was single, changed to range) - END - ELSE - CASE - WHEN @NewTransFormat LIKE '%{Last Step}%' THEN 2 -- totally different format, not even same type (was range, changed to single) - ELSE 1 -- both single, but different format - END - END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_CompareTranFormat Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_CompareTranFormat Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_DocVersionSplit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_DocVersionSplit]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_DocVersionSplit]; -GO - -/* -select * from vefn_DocVersionSplit('1,4') -select * from vefn_DocVersionSplit(null) -select * from vefn_DocVersionSplit('') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_DocVersionSplit](@DocVersionList varchar(MAX)) -RETURNS @IDs TABLE -( - VersionID int PRIMARY KEY, - ItemID int, - DVPath varchar(MAX) -) -WITH EXECUTE AS OWNER -AS -BEGIN -IF(isnull(@DocVersionList,'') = '') - Insert into @IDs - Select VersionID, ItemID, dbo.ve_GetFolderPath(VersionID) - from DocVersions where ItemID is not null -else - Insert into @IDs - Select ID, ItemID, dbo.ve_GetFolderPath(VersionID) - from vefn_SplitInt(@DocVersionList,',') as T - join DocVersions DV on VersionID = T.ID -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_DocVersionSplit Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_DocVersionSplit Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_DVContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_DVContent]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_DVContent]; -GO - -/* -select contentID from vefn_DVContent('1') -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_DVContent](@DocVersionList varchar(MAX)) -RETURNS @DVContents TABLE -( - ContentID int PRIMARY KEY -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID] in (select [ItemID] from vefn_DocVersionSplit(@DocVersionList)) -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -insert into @DVContents select distinct ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_DVContent Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_DVContent Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindAffectedTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindAffectedTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindAffectedTransitions]; -GO - -/* -select top 1 * from items order by itemid desc -Select -FromID,.dbo.ve_GetPathFromContentID(FromID) ContentPath -,ToID,dbo.ve_GetPath(ToID) ToPath -,RangeID,dbo.ve_GetPath(RangeID) RangePath -,cc.Text -from vefn_FindAffectedTransitions(2102) ttz -join transitions tt on ttz.TransitionID = tt.TransitionID ---join items ii on ii.ItemID = tt.fromID -join contents cc on tt.FromID = cc.contentid -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindAffectedTransitions](@ItemID int) -RETURNS @Transitions TABLE -( - TransitionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- All Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - --where Z.[Level] > 0 -- This would limit the siblings to the siblings of the children and not the initial ItemID -) -, Itemz2([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID --- All Siblings -Union All - select [Level] ,Z.[Ordinal] -1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz2 Z - join Items I on Z.PreviousID = I.ItemID - --where Z.[Level] > 0 -- This would limit the siblings to the siblings of the children and not the initial ItemID -) -insert into @Transitions -select TransitionID from Transitions TT -where (ToID in(select ItemID from Itemz) OR RangeID in(select ItemID from Itemz)) -UNION -select TransitionID from Transitions TT -JOIN Itemz2 on ToID=ItemID and RangeID=ItemID and IsRange = 2 -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindAffectedTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindAffectedTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindContentText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindContentText]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindContentText]; -GO - -/* -SELECT * From vefn_FindContentText('1','%RCP%') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindContentText]( -@DocVersionList nvarchar(MAX) -,@SearchString varchar(MAX)) -RETURNS @FoundContents TABLE -( - ContentID int PRIMARY KEY - ,Type int - ,Text varchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -IF(ISNULL(@DocVersionList,'')='') - BEGIN - INSERT INTO @FoundContents -- Do a case insensitive search - select ContentID,Type,Text from contents - where [Text] like @SearchString Collate SQL_Latin1_General_CP1_CI_AS - END -ELSE - BEGIN - INSERT INTO @FoundContents -- Do a case insensitive search - select ContentID,Type,Text from contents - where [ContentID] in (select [ContentID] from vefn_DVContent(@DocVersionList)) - AND [Text] like @SearchString Collate SQL_Latin1_General_CP1_CI_AS - END - -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindContentText Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindContentText Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindExternalChildTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindExternalChildTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindExternalChildTransitions]; -GO - -/* -Select * from vefn_FindExternalChildTransitions(185) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindExternalChildTransitions](@ItemID int) -RETURNS @Children TABLE -( - FromItemID int, - ToID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children -select ItemID [FromItemID], case when TT.ToID in(select ItemID from Itemz) then TT.ToID else TT.RangeID end [ToID] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from Itemz where Level > 0) OR RangeID in(select ItemID from Itemz where Level > 0)) -AND FromID not in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindExternalChildTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindExternalChildTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindExternalTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindExternalTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindExternalTransitions]; -GO - -/* -Select * from vefn_FindExternalTransitions(185) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindExternalTransitions](@ItemID int) -RETURNS @Children TABLE -( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children -select ItemID [FromItemID], TT.[TransitionID], TT.[FromID], TT.[ToID], TT.[RangeID], TT.[Config] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from Itemz) OR RangeID in(select ItemID from Itemz)) -AND FromID not in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindExternalTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindExternalTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindInternalTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindInternalTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindInternalTransitions]; -GO - -/* -Select * from vefn_FindInternalTransitions(185) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindInternalTransitions](@ItemID int) -RETURNS @Children TABLE -( - FromItemID int, - ToID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children -select ItemID [FromItemID], case when TT.ToID in(select ItemID from Itemz) then TT.ToID else TT.RangeID end [ToID] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from Itemz) OR RangeID in(select ItemID from Itemz)) -AND FromID in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindInternalTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindInternalTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindInternalTransitionsForCopy] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindInternalTransitionsForCopy]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindInternalTransitionsForCopy]; -GO - -/* -Select * from vefn_FindInternalTransitionsForCopy(10277) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindInternalTransitionsForCopy](@ItemID int) -RETURNS @Transitions TABLE -( - TransitionID int, - FromID int, - TranType int, - ToID int, - RangeID int, - OldTransition int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Transitions -select TransitionID, FromID, TT.TranType, TT.ToID, TT.RangeID, CAST(TT.Config as int) --case when TT.ToID in(select ItemID from Itemz) then TT.ToID else TT.RangeID end [ToID] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from Itemz) OR RangeID in(select ItemID from Itemz)) -AND FromID in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindInternalTransitionsForCopy Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindInternalTransitionsForCopy Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindText]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindText]; -GO - -/* -SELECT * From vefn_FindText('1','turbine-driven',0,0,0,1,'') -SELECT * From vefn_FindText('1','turbine\u8209?driven',0,0,0,0,'') -SELECT * From vefn_FindText('1','trip',0,0,0,0,'') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindText]( -@DocVersionList nvarchar(MAX) -,@SearchString varchar(MAX) -,@CaseSensitive as int -,@IncludeLinks as int -,@IncludeRtfFormatting as int -,@IncludeSpecialCharacters as int -,@StepTypeList varchar(MAX)) -RETURNS @FoundContents TABLE -( - ContentID int PRIMARY KEY -) -WITH EXECUTE AS OWNER -AS -BEGIN -Set @SearchString = .dbo.vefn_FixSearchString(@SearchString) -IF isnull(@SearchString,'')='' - BEGIN - insert into @FoundContents - select C.ContentID from (select * from Contents where ContentID in(select ContentID from vefn_DVContent(@DocVersionList))) C - where(dbo.vefn_AllSections(C.Type)>=10000) - or - (dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - END -ELSE - Declare @SearchStringx nvarchar(200) --kbr - set @SearchStringx = replace(@SearchString,'-','\u8209?') --kbr - IF @CaseSensitive = 0 -- Not Case Sensitive - BEGIN - insert into @FoundContents - select C.ContentID from vefn_FindContentText(@DocVersionList,@SearchStringx) C - where - (.dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchStringx Collate SQL_Latin1_General_CP1_CI_AS) - AND ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - UNION - select C.ContentID from (select * from Contents where ContentID in(select ContentID from vefn_DVContent(@DocVersionList))) C - join Entries E on C.ContentID = E.ContentID - join Documents D on E.DocID = D.DocID - where - (D.DocAscii like @SearchString Collate SQL_Latin1_General_CP1_CI_AS) - AND - ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - END - ELSE - BEGIN - IF @CaseSensitive = 1 -- Case Sensitive - BEGIN - insert into @FoundContents - select C.ContentID from vefn_FindContentText(@DocVersionList,@SearchStringx) C - where - (.dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchStringx Collate SQL_Latin1_General_CP1_CS_AS) - AND ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - UNION - select C.ContentID from (select * from Contents where ContentID in(select ContentID from vefn_DVContent(@DocVersionList))) C - join Entries E on C.ContentID = E.ContentID - join Documents D on E.DocID = D.DocID - where - (D.DocAscii like @SearchString Collate SQL_Latin1_General_CP1_CS_AS) - AND - ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - END -END -RETURN -END - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindText Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindText Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FirstLink] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FirstLink]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FirstLink]; -GO - -/* -select .dbo.vefn_FirstLink('asdasdadsasd' + char(21) + 'asdasdasd\vasdasdasd', 2) -select .dbo.vefn_FirstLink('asdasdadsasd' + char(21) + 'asdasdasd\vasdasdasd', 1) -select .dbo.vefn_FirstLink('asdasdadsasd' + char(21) + 'asdasdasd\vasdasdasd', 0) -*/ - --- This is only used for testing by vefn_RemoveExtraText -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FirstLink](@text nvarchar(MAX),@includeLink int) -RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @index int -SET @index = 0 -if(@includeLink = 2) - RETURN 0 -if(@includeLink = 1) - return CHARINDEX('\v' , @text) -DECLARE @index2 int -SET @index = PATINDEX('%[' + nchar(9574)+nchar(9516)+nchar(21) + ']%',@text) -return @index -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_FirstLink Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_FirstLink Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FixROData] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixROData]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixROData]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create FUNCTION [dbo].[vefn_FixROData] -(@data XML,@ROUsageID int,@NewROUsageID int) -RETURNS XML -WITH EXECUTE AS OWNER -AS -BEGIN - -- Build Search String and Replace String - DECLARE @lookFor varchar(MAX) - DECLARE @replaceWith varchar(MAX) - SET @lookFor = '#Link:ReferencedObject:' + ltrim(str(@ROUsageID)) + ' ' - SET @replaceWith = '#Link:ReferencedObject:' + ltrim(str(@NewROUsageID)) + ' ' - return CAST(replace(CAST(@data AS VarChar(max)),@lookFor,@replaceWith) AS XML) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_FixROData Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_FixROData Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FixROText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixROText]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixROText]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FixROText] -(@Text varchar(MAX),@ROUsageID int,@NewROUsageID int) -RETURNS varchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN - -- Build Search String and Replace String - DECLARE @lookFor varchar(MAX) - DECLARE @replaceWith varchar(MAX) - SET @lookFor = '#Link:ReferencedObject:' + ltrim(str(@ROUsageID)) + ' ' - SET @replaceWith = '#Link:ReferencedObject:' + ltrim(str(@NewROUsageID)) + ' ' - return replace(@text,@lookFor,@replaceWith) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_FixROText Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_FixROText Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FixSearchString] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixSearchString]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixSearchString]; -GO - -/* -select ID,ss,.dbo.vefn_FixSearchString(ss) -from ( -select 1 ID,'*' ss union -select 2 ID,'50%' ss union -select 3 ID,'IF*' ss union -select 4 ID,'*then:' ss union -select 5 ID,'530`F' ss union -select 6 ID,'check' ss union -select 7 ID,'RCP*Cooling' ss union -select 8 ID,'14%[34%]' ss union -select 9 ID,'\*' ss union -select 10 ID,'\?' ss union -select 11 ID,'_' ss union -select 12 ID,'[' ss union -select 13 ID,']' ss union -select 14 ID,'%' ss union -select 15 ID,'_' ss union -select 16 ID,'-' ss -) tt order by ID -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FixSearchString](@SearchString nvarchar(MAX)) -RETURNS nvarchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN - -- This code adds % at the beginning and end if the beginning and end - -- of the search string if it does not have % at the beginning or end - Set @SearchString = replace(@SearchString,'[','[[]') - Set @SearchString = replace(@SearchString,'_','[_]') - Set @SearchString = replace(@SearchString,'%','[%]') - Set @SearchString = replace(@SearchString,'*','%') - Set @SearchString = replace(@SearchString,'?','_') - Set @SearchString = replace(@SearchString,'\%','*') - Set @SearchString = replace(@SearchString,'\_','?') - --Set @SearchString = replace(@SearchString,'-','[-'+nchar(8209)+']') - IF(@SearchString like '[%]%') RETURN @SearchString - IF(@SearchString like '%[%]') RETURN @SearchString -RETURN '%' + @SearchString + '%' -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_FixSearchString Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_FixSearchString Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FixTransitionDataForCopy] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixTransitionDataForCopy]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixTransitionDataForCopy]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FixTransitionDataForCopy] -(@data XML,@TransitionID int,@TranType int,@OldToID int,@OldRangeID int, @NewID int, @NewToID int, @NewRangeID int, @NewTranType int) -RETURNS XML -WITH EXECUTE AS OWNER -AS -BEGIN - - -- Build Search String and Replace String - DECLARE @offset int - DECLARE @lookFor varchar(MAX) - DECLARE @replaceWith varchar(MAX) - DECLARE @text varchar(MAX) - SET @text = Cast(@data as varchar(max)) - SET @lookFor = '#Link:Transition:' + ltrim(str(@TranType)) + ' ' + ltrim(str(@TransitionID)) - SET @offset = CHARINDEX(@lookFor,@text) - if(@offset = 0) - BEGIN - - SET @lookFor = '#Link:TransitionRange:' + ltrim(str(@TranType)) + ' ' + ltrim(str(@TransitionID)) - SET @offset = CHARINDEX(@lookFor,@text) - SET @replaceWith = '#Link:TransitionRange:' + ltrim(str(@NewTranType)) + ' ' + ltrim(str(@NewID)) - + ' ' + ltrim(str(@NewToID)) + ' ' + ltrim(str(@NewRangeID)) - SET @lookFor = @lookFor + ' ' + ltrim(str(@OldToID)) + ' ' + ltrim(str(@OldRangeID)) - END - ELSE - BEGIN - SET @replaceWith = '#Link:Transition:' + ltrim(str(@NewTranType)) + ' ' + ltrim(str(@NewID)) - + ' ' + ltrim(str(@NewToID)) - SET @lookFor = @lookFor + ' ' + ltrim(str(@OldToID)) - END - return Cast(replace(@text,@lookFor,@replaceWith) as XML) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_FixTransitionDataForCopy Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_FixTransitionDataForCopy Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FixTransitionText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixTransitionText]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixTransitionText]; -GO - -/* -select top 5 * from contents order by contentid desc - -DECLARE @Text1 varchar(MAX),@Text2 varchar(MAX),@Text3 varchar(MAX),@Text4 varchar(MAX) -SET @Text1='\v \v0 PERFORM the following:' -SET @Text2='\v \v0 PERFORM the following:' -SET @Text3='\v \v0 PERFORM the following:' -SET @Text4='\v \v0 IF reactor will NOT trip, THEN:' - -Select @Text1 Before, dbo.vefn_FixTransitionText(@Text1,58,4,270,285,270,999) [After] -Union Select @Text2 Before, dbo.vefn_FixTransitionText(@Text2,58,2,265,270,270,999) [After] -Union Select @Text3 Before, dbo.vefn_FixTransitionText(@Text3,58,2,270,270,270,999) [After] -Union Select @Text4 Before, dbo.vefn_FixTransitionText(@Text4,8,1,270,270,270,999) [After] -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FixTransitionText] -(@Text varchar(MAX),@TransitionID int,@TranType int,@OldToID int,@OldRangeID int,@OldID int,@NewID int) -RETURNS varchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN - -- Build Search String and Replace String - DECLARE @offset int - DECLARE @lookFor varchar(MAX) - DECLARE @replaceWith varchar(MAX) - SET @lookFor = '#Link:Transition:' + ltrim(str(@TranType)) + ' ' + ltrim(str(@TransitionID)) - SET @offset = CHARINDEX(@lookFor,@Text) - if(@offset = 0) - BEGIN - - SET @lookFor = '#Link:TransitionRange:' + ltrim(str(@TranType)) + ' ' + ltrim(str(@TransitionID)) - SET @offset = CHARINDEX(@lookFor,@Text) - SET @replaceWith = @lookFor - + ' ' + ltrim(str(case @OldToID when @OldID then @NewID else @OldToID end)) - + ' ' + ltrim(str(case @OldRangeID when @OldID then @NewID else @OldRangeID end)) - SET @lookFor = @lookFor + ' ' + ltrim(str(@OldToID)) + ' ' + ltrim(str(@OldRangeID)) - END - ELSE - BEGIN - SET @replaceWith = @lookFor - + ' ' + ltrim(str(case @OldToID when @OldID then @NewID else @OldToID end)) - SET @lookFor = @lookFor + ' ' + ltrim(str(@OldToID)) - END - return replace(@text,@lookFor,@replaceWith) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_FixTransitionText Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_FixTransitionText Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FixTransitionTextForCopy] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixTransitionTextForCopy]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixTransitionTextForCopy]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FixTransitionTextForCopy] -(@Text varchar(MAX),@TransitionID int,@TranType int,@OldToID int,@OldRangeID int, @NewID int, @NewToID int, @NewRangeID int, @NewTranType int) -RETURNS varchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN - - -- Build Search String and Replace String - DECLARE @offset int - DECLARE @lookFor varchar(MAX) - DECLARE @replaceWith varchar(MAX) - SET @lookFor = '#Link:Transition:' + ltrim(str(@TranType)) + ' ' + ltrim(str(@TransitionID)) - SET @offset = CHARINDEX(@lookFor,@Text) - if(@offset = 0) - BEGIN - - SET @lookFor = '#Link:TransitionRange:' + ltrim(str(@TranType)) + ' ' + ltrim(str(@TransitionID)) - SET @offset = CHARINDEX(@lookFor,@Text) - SET @replaceWith = '#Link:TransitionRange:' + ltrim(str(@NewTranType)) + ' ' + ltrim(str(@NewID)) - + ' ' + ltrim(str(@NewToID)) + ' ' + ltrim(str(@NewRangeID)) - SET @lookFor = @lookFor + ' ' + ltrim(str(@OldToID)) + ' ' + ltrim(str(@OldRangeID)) - END - ELSE - BEGIN - SET @replaceWith = '#Link:Transition:' + ltrim(str(@NewTranType)) + ' ' + ltrim(str(@NewID)) - + ' ' + ltrim(str(@NewToID)) - SET @lookFor = @lookFor + ' ' + ltrim(str(@OldToID)) - END - return replace(@text,@lookFor,@replaceWith) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_FixTransitionTextForCopy Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_FixTransitionTextForCopy Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetDocumentPageLength] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetDocumentPageLength]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetDocumentPageLength]; -GO - -/* -print .dbo.[vefn_GetDocumentPageLength](1) -select DocID, .dbo.[vefn_GetDocumentPageLength](DocID) PageLength from Documents -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetDocumentPageLength] (@DocID int) RETURNS float -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @PageLength float -SET @PageLength = (select top 1 v.value('.', 'nvarchar(100)') [Length] -from (select DocID, cast (Config as xml) ConfigXML from Documents) T1 -CROSS APPLY ConfigXML.nodes('//@Length') TempXML(v) -WHERE DocID = @DocID) -return @PageLength -END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_GetDocumentPageLength Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_GetDocumentPageLength Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetFormatField] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetFormatField]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetFormatField]; -GO - -/* -Select * from vefn_GetFormatField('Font') -Select * from vefn_GetFormatField('PSADJBNGROW') -Select * from vefn_GetFormatField('SectionTitle') -Select * from vefn_GetFormatField('PrintNoTitle') -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetFormatField](@find varchar(255)) -RETURNS @FormatFields TABLE -( - FormatID int - ,Name varchar(20) - ,Description varchar(250) - ,Path varchar(max) - ,Value varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - INSERT INTO @FormatFields - Select FormatID, Name, Description, - case when v9.exist('.') is null THEN '' ELSE v9.value('local-name(.)','varchar(max)') + '/' END + - case when v8.exist('.') is null THEN '' ELSE v8.value('local-name(.)','varchar(max)') + '/' END + - case when v7.exist('.') is null THEN '' ELSE v7.value('local-name(.)','varchar(max)') + '/' END + - case when v6.exist('.') is null THEN '' ELSE v6.value('local-name(.)','varchar(max)') + '/' END + - case when v5.exist('.') is null THEN '' ELSE v5.value('local-name(.)','varchar(max)') + '/' END + - case when v4.exist('.') is null THEN '' ELSE v4.value('local-name(.)','varchar(max)') + '/' END + - case when v3.exist('.') is null THEN '' ELSE v3.value('local-name(.)','varchar(max)') + '/' END + - case when v2.exist('.') is null THEN '' ELSE v2.value('local-name(.)','varchar(max)') + '/' END + - case when v1.exist('.') is null THEN '' ELSE v1.value('local-name(.)','varchar(max)') + '/' END + - + '@' + v.value('local-name(.)','varchar(max)') Path - , v.value('.', 'varchar(255)') Value - FROM Formats - CROSS APPLY Data.nodes('//*/@*') TempXML(v) - OUTER APPLY v.nodes('..') TempXML1(v1) - OUTER APPLY v1.nodes('..') TempXML2(v2) - OUTER APPLY v2.nodes('..') TempXML3(v3) - OUTER APPLY v3.nodes('..') TempXML4(v4) - OUTER APPLY v4.nodes('..') TempXML5(v5) - OUTER APPLY v5.nodes('..') TempXML6(v6) - OUTER APPLY v6.nodes('..') TempXML7(v7) - OUTER APPLY v7.nodes('..') TempXML8(v8) - OUTER APPLY v8.nodes('..') TempXML9(v9) - where v.value('local-name(.)', 'varchar(255)') like '%' + @find + '%' - OR v.value('.', 'varchar(255)') like '%' + @find + '%' - UNION - Select FormatID, Name, Description, - case when v9.exist('.') is null THEN '' ELSE v9.value('local-name(.)','varchar(max)') + '/' END + - case when v8.exist('.') is null THEN '' ELSE v8.value('local-name(.)','varchar(max)') + '/' END + - case when v7.exist('.') is null THEN '' ELSE v7.value('local-name(.)','varchar(max)') + '/' END + - case when v6.exist('.') is null THEN '' ELSE v6.value('local-name(.)','varchar(max)') + '/' END + - case when v5.exist('.') is null THEN '' ELSE v5.value('local-name(.)','varchar(max)') + '/' END + - case when v4.exist('.') is null THEN '' ELSE v4.value('local-name(.)','varchar(max)') + '/' END + - case when v3.exist('.') is null THEN '' ELSE v3.value('local-name(.)','varchar(max)') + '/' END + - case when v2.exist('.') is null THEN '' ELSE v2.value('local-name(.)','varchar(max)') + '/' END + - case when v1.exist('.') is null THEN '' ELSE v1.value('local-name(.)','varchar(max)') + '/' END + - + v.value('local-name(.)','varchar(max)') Path - , '{node}' - FROM Formats - CROSS APPLY Data.nodes('//*') TempXML(v) - OUTER APPLY v.nodes('..') TempXML1(v1) - OUTER APPLY v1.nodes('..') TempXML2(v2) - OUTER APPLY v2.nodes('..') TempXML3(v3) - OUTER APPLY v3.nodes('..') TempXML4(v4) - OUTER APPLY v4.nodes('..') TempXML5(v5) - OUTER APPLY v5.nodes('..') TempXML6(v6) - OUTER APPLY v6.nodes('..') TempXML7(v7) - OUTER APPLY v7.nodes('..') TempXML8(v8) - OUTER APPLY v8.nodes('..') TempXML9(v9) - where v.value('local-name(.)', 'varchar(255)') like '%' + @find + '%' - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetFormatField Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetFormatField Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetFormatFieldByStepType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetFormatFieldByStepType]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetFormatFieldByStepType]; -GO - -/* -Select * from vefn_GetFormatFieldByStepType('Font') -Select * from vefn_GetFormatFieldByStepType('PSADJBNGROW') -Select * from vefn_GetFormatFieldByStepType('SectionTitle') -Select * from vefn_GetFormatFieldByStepType('PrintNoTitle') -Select * from vefn_GetFormatFieldByStepType('Off') where name ='AEP' - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetFormatFieldByStepType](@find varchar(255)) -RETURNS @FormatFields TABLE -( - FormatID int - ,Name varchar(20) - ,Description varchar(250) - ,Path varchar(max) - ,StepType varchar(255) - ,Value varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - INSERT INTO @FormatFields - Select FormatID, Name, Description, - case when v9.exist('.') is null THEN '' ELSE v9.value('local-name(.)','varchar(max)') + '/' END + - case when v8.exist('.') is null THEN '' ELSE v8.value('local-name(.)','varchar(max)') + '/' END + - case when v7.exist('.') is null THEN '' ELSE v7.value('local-name(.)','varchar(max)') + '/' END + - case when v6.exist('.') is null THEN '' ELSE v6.value('local-name(.)','varchar(max)') + '/' END + - case when v5.exist('.') is null THEN '' ELSE v5.value('local-name(.)','varchar(max)') + '/' END + - case when v4.exist('.') is null THEN '' ELSE v4.value('local-name(.)','varchar(max)') + '/' END + - case when v3.exist('.') is null THEN '' ELSE v3.value('local-name(.)','varchar(max)') + '/' END + - case when v2.exist('.') is null THEN '' ELSE v2.value('local-name(.)','varchar(max)') + '/' END + - case when v1.exist('.') is null THEN '' ELSE v1.value('local-name(.)','varchar(max)') + '/' END + - .dbo.vefn_XmlPath(v1.query('.')) + - + '@' + v.value('local-name(.)','varchar(max)') Path - , coalesce(v.value('../@Type','varchar(255)'),v.value('../../@Type','varchar(255)'),v.value('../../../@Type','varchar(255)')) StepType - , v.value('.', 'varchar(255)') Value - FROM Formats - CROSS APPLY Data.nodes('//*/@*') TempXML(v) - OUTER APPLY v.nodes('..') TempXML1(v1) - OUTER APPLY v1.nodes('..') TempXML2(v2) - OUTER APPLY v2.nodes('..') TempXML3(v3) - OUTER APPLY v3.nodes('..') TempXML4(v4) - OUTER APPLY v4.nodes('..') TempXML5(v5) - OUTER APPLY v5.nodes('..') TempXML6(v6) - OUTER APPLY v6.nodes('..') TempXML7(v7) - OUTER APPLY v7.nodes('..') TempXML8(v8) - OUTER APPLY v8.nodes('..') TempXML9(v9) - where v.value('local-name(.)', 'varchar(255)') like '%' + @find + '%' - OR v.value('.', 'varchar(255)') like '%' + @find + '%' - UNION ALL - Select FormatID, Name, Description, - case when v9.exist('.') is null THEN '' ELSE v9.value('local-name(.)','varchar(max)') + '/' END + - case when v8.exist('.') is null THEN '' ELSE v8.value('local-name(.)','varchar(max)') + '/' END + - case when v7.exist('.') is null THEN '' ELSE v7.value('local-name(.)','varchar(max)') + '/' END + - case when v6.exist('.') is null THEN '' ELSE v6.value('local-name(.)','varchar(max)') + '/' END + - case when v5.exist('.') is null THEN '' ELSE v5.value('local-name(.)','varchar(max)') + '/' END + - case when v4.exist('.') is null THEN '' ELSE v4.value('local-name(.)','varchar(max)') + '/' END + - case when v3.exist('.') is null THEN '' ELSE v3.value('local-name(.)','varchar(max)') + '/' END + - case when v2.exist('.') is null THEN '' ELSE v2.value('local-name(.)','varchar(max)') + '/' END + - case when v1.exist('.') is null THEN '' ELSE v1.value('local-name(.)','varchar(max)') + coalesce('[' + v1.value('@Index','varchar(255)')+']','') + '/' END + - + v.value('local-name(.)','varchar(max)') Path - , coalesce(v.value('../@Type','varchar(255)'),v.value('../../@Type','varchar(255)'),v.value('../../../@Type','varchar(255)')) StepType - , '{node}' - FROM Formats - CROSS APPLY Data.nodes('//*') TempXML(v) - OUTER APPLY v.nodes('..') TempXML1(v1) - OUTER APPLY v1.nodes('..') TempXML2(v2) - OUTER APPLY v2.nodes('..') TempXML3(v3) - OUTER APPLY v3.nodes('..') TempXML4(v4) - OUTER APPLY v4.nodes('..') TempXML5(v5) - OUTER APPLY v5.nodes('..') TempXML6(v6) - OUTER APPLY v6.nodes('..') TempXML7(v7) - OUTER APPLY v7.nodes('..') TempXML8(v8) - OUTER APPLY v8.nodes('..') TempXML9(v9) - where v.value('local-name(.)', 'varchar(255)') like '%' + @find + '%' - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetFormatFieldByStepType Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetFormatFieldByStepType Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetFormatFieldByStepType2] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetFormatFieldByStepType2]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetFormatFieldByStepType2]; -GO - -/* -Select * from vefn_GetFormatFieldByStepType2('Font') -Select * from vefn_GetFormatFieldByStepType2('PSADJBNGROW') -Select * from vefn_GetFormatFieldByStepType2('SectionTitle') -Select * from vefn_GetFormatFieldByStepType2('PrintNoTitle') -Select * from vefn_GetFormatFieldByStepType2('Off') - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetFormatFieldByStepType2](@find varchar(255)) -RETURNS @FormatFields TABLE -( - FormatID int - ,Name varchar(20) - ,Description varchar(250) - ,Path varchar(max) - ,StepType varchar(255) - ,Indx varchar(255) - ,Value varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - INSERT INTO @FormatFields - Select FormatID, Name, Description, - .dbo.vefn_XmlPath(v9.query('.')) + - .dbo.vefn_XmlPath(v8.query('.')) + - .dbo.vefn_XmlPath(v7.query('.')) + - .dbo.vefn_XmlPath(v6.query('.')) + - .dbo.vefn_XmlPath(v5.query('.')) + - .dbo.vefn_XmlPath(v4.query('.')) + - .dbo.vefn_XmlPath(v3.query('.')) + - .dbo.vefn_XmlPath(v2.query('.')) + - .dbo.vefn_XmlPath(v1.query('.')) + - + '@' + v.value('local-name(.)','varchar(max)') Path - , coalesce(v.value('../@Type','varchar(255)'),v.value('../../@Type','varchar(255)'),v.value('../../../@Type','varchar(255)')) StepType - , coalesce(v1.value('@Index','varchar(255)'),v2.value('@Index','varchar(255)'),v3.value('@Index','varchar(255)')) Indx - , v.value('.', 'varchar(255)') Value - FROM Formats - CROSS APPLY Data.nodes('//*/@*') TempXML(v) - OUTER APPLY v.nodes('..') TempXML1(v1) - OUTER APPLY v1.nodes('..') TempXML2(v2) - OUTER APPLY v2.nodes('..') TempXML3(v3) - OUTER APPLY v3.nodes('..') TempXML4(v4) - OUTER APPLY v4.nodes('..') TempXML5(v5) - OUTER APPLY v5.nodes('..') TempXML6(v6) - OUTER APPLY v6.nodes('..') TempXML7(v7) - OUTER APPLY v7.nodes('..') TempXML8(v8) - OUTER APPLY v8.nodes('..') TempXML9(v9) - where v.value('local-name(.)', 'varchar(255)') like '%' + @find + '%' - OR v.value('.', 'varchar(255)') like '%' + @find + '%' - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetFormatFieldByStepType2 Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetFormatFieldByStepType2 Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetFormatFieldNoValue] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetFormatFieldNoValue]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetFormatFieldNoValue]; -GO - -/* -Select * from vefn_GetFormatFieldNoValue('Font') -Select * from vefn_GetFormatFieldNoValue('PSADJBNGROW') -Select * from vefn_GetFormatFieldNoValue('SectionTitle') -Select * from vefn_GetFormatFieldNoValue('PrintNoTitle') -Select * from vefn_GetFormatFieldNoValue('Off') -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetFormatFieldNoValue](@find varchar(255)) -RETURNS @FormatFields TABLE -( - FormatID int - ,Name varchar(20) - ,Description varchar(250) - ,Path varchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN - INSERT INTO @FormatFields - Select FormatID, Name, Description, - case when v9.exist('.') is null THEN '' ELSE v9.value('local-name(.)','varchar(max)') + '/' END + - case when v8.exist('.') is null THEN '' ELSE v8.value('local-name(.)','varchar(max)') + '/' END + - case when v7.exist('.') is null THEN '' ELSE v7.value('local-name(.)','varchar(max)') + '/' END + - case when v6.exist('.') is null THEN '' ELSE v6.value('local-name(.)','varchar(max)') + '/' END + - case when v5.exist('.') is null THEN '' ELSE v5.value('local-name(.)','varchar(max)') + '/' END + - case when v4.exist('.') is null THEN '' ELSE v4.value('local-name(.)','varchar(max)') + '/' END + - case when v3.exist('.') is null THEN '' ELSE v3.value('local-name(.)','varchar(max)') + '/' END + - case when v2.exist('.') is null THEN '' ELSE v2.value('local-name(.)','varchar(max)') + '/' END + - case when v1.exist('.') is null THEN '' ELSE v1.value('local-name(.)','varchar(max)') + '/' END + - + '@' + v.value('local-name(.)','varchar(max)') Path - FROM Formats - CROSS APPLY Data.nodes('//*/@*') TempXML(v) - OUTER APPLY v.nodes('..') TempXML1(v1) - OUTER APPLY v1.nodes('..') TempXML2(v2) - OUTER APPLY v2.nodes('..') TempXML3(v3) - OUTER APPLY v3.nodes('..') TempXML4(v4) - OUTER APPLY v4.nodes('..') TempXML5(v5) - OUTER APPLY v5.nodes('..') TempXML6(v6) - OUTER APPLY v6.nodes('..') TempXML7(v7) - OUTER APPLY v7.nodes('..') TempXML8(v8) - OUTER APPLY v8.nodes('..') TempXML9(v9) - where v.value('local-name(.)', 'varchar(255)') like '%' + @find + '%' - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetFormatFieldNoValue Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetFormatFieldNoValue Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetFormatValues] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetFormatValues]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetFormatValues]; -GO - -/* - -SELECT * from vefn_GetFormatValues('WidSAdjByLevel') -SELECT * from vefn_GetFormatValues('MatchProcNumber') -SELECT * from vefn_GetFormatValues('TofCPositionAdj') - -*/ - - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetFormatValues](@FieldName as varchar(255)) -RETURNS @AllValues TABLE -( - FormatID int, - Name varchar(100), - ParentNode XML, - Node XML, - FieldValue varchar(MAX) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @NodeName as varchar(255) - set @NodeName = (Select distinct v.value('local-name(..)', 'varchar(255)') MyName - FROM Formats CROSS APPLY Data.nodes('(*//@*[local-name()=sql:variable("@FieldName")])') TempXML(v)) - Insert into @AllValues - Select FormatID, Name, v.query('..') ParentNode, v.query('.') Node, - v.value('(./@*[local-name()=sql:variable("@FieldName")])[1]','varchar(255)') FieldValue - FROM Formats CROSS APPLY Data.nodes('(//*[local-name()=sql:variable("@NodeName")])') TempXML(v) - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetFormatValues Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetFormatValues Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetGenMacMacros] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetGenMacMacros]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetGenMacMacros]; -GO - -/* -Select * from vefn_GetGenMacMacros() -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetGenMacMacros]() -RETURNS @GenMacMacros TABLE -( - FormatID int - ,Name varchar(20) - ,Description varchar(250) - ,MacroName varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - INSERT INTO @GenMacMacros - Select FormatID, Name, Description,v.value('@id','varchar(20)') MacroName - FROM Formats CROSS APPLY GenMac.nodes('//g') TempXML(v) - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetGenMacMacros Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetGenMacMacros Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetInheritedFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetInheritedFormat]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetInheritedFormat]; -GO - -/* Samples -Select TranType, .dbo.vefn_GetInheritedFormat(355) TransFormat - from(Select 1 TranType UNION Select 2 TranType UNION Select 3 TranType UNION - Select 4 TranType UNION Select 5 TranType UNION Select 6 TranType UNION - Select 7 TranType UNION Select 8 TranType UNION Select 9 TranType UNION Select 10 TranType) TT - -Select top 25 ItemID, TranType, .dbo.vefn_GetInheritedFormat(ItemID) TransFormat - From Transitions TR - Join Items II on II.ContentID = TR.FromID - -*/ -/* - local is a 'boolean' (0=false, 1=true) to state whether to look at the item itself or - only its parent -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetInheritedFormat] (@ItemID int, @local int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @FormatID as int - -- First get the Active Format - begin - with Itemz([Level], [PreviousID], [ItemID], [ParentID], [FolderID], [FormatID]) as ( - Select 0 [Level], [PreviousID], [ItemID], null, null, - case when @local = 1 then (Select FormatID from Contents CC where [CC].[ContentID] = [II].[ContentID]) - else null end FormatID - FROM [Items] II - where [ItemID]=@ItemID - Union All - -- Parent Item - select [Level] + 1, I.[PreviousID], I.[ItemID], null, null, C.FormatID - from Itemz Z - join Parts P on P.ItemID = Z.ItemID - join Items I on I.ContentID = P.ContentID - join Contents C on C.ContentID = P.ContentID - where Z.FormatID is null - -- Siblings Item - Union All - select [Level] , I.[PreviousID] , I.[ItemID], null, null, Z.FormatID - from Itemz Z - join Items I on Z.PreviousID = I.ItemID - where Z.FormatID is null - Union All - -- DocVersion From Item - select [Level] + 1, null, null, DV.FolderID, null, DV.FormatID - from Itemz Z - join DocVersions DV on DV.ItemID = Z.ItemID - where Z.FormatID is null - Union All - -- Folders - select [Level] + 1, null, null, FF.ParentID, FF.FolderID, FF.FormatID - from Itemz Z - join Folders FF on FF.FolderID = Z.ParentID and FF.ParentID <> FF.FolderID - where Z.FormatID is null - ) - Select @FormatID = FormatID from Itemz ZZ Where FormatID is not null - OPTION (MAXRECURSION 10000) - RETURN @FormatID - END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_GetInheritedFormat Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_GetInheritedFormat Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetNewTranType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetNewTranType]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetNewTranType]; -GO - -/* Samples - -SELECT .dbo.[vefn_GetNewTranType] (1, 2, 6) -SELECT .dbo.[vefn_GetNewTranType] (1, 2, 7) -SELECT .dbo.[vefn_GetNewTranType] (27, 29, 10) -SELECT .dbo.[vefn_GetNewTranType] (29, 27, 10) -SELECT .dbo.[vefn_GetNewTranType] (27, 31, 10) ---SELECT .dbo.[vefn_GetNewTranType] (29, 27, 10) - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetNewTranType] (@FormatID int, @NewFormatID int, @TranType int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN - -- - IF @FormatID = @NewFormatID - RETURN @TranType - DECLARE @TransFormat varchar(max) - DECLARE @NewTransFormat varchar(max) - SET @TransFormat = isnull(.dbo.vefn_GetTransFormat(@FormatID, @TranType),'') - SET @NewTransFormat = isnull(.dbo.vefn_GetTransFormat(@NewFormatID, @TranType),'') - RETURN CASE - WHEN @TransFormat = @NewTransFormat THEN @TranType - WHEN @TransFormat LIKE '%{Last Step}%' THEN - CASE - WHEN @NewTransFormat LIKE '%{Last Step}%' THEN @TranType - ELSE 3 -- This is a default 'range' type, all transition formats have it! - END - ELSE - CASE - WHEN @NewTransFormat LIKE '%{Last Step}%' THEN 0 - ELSE @TranType -- This is a default 'single' type, all transition formats have it! - END - END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_GetNewTranType Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_GetNewTranType Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetNullFormatValues] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetNullFormatValues]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetNullFormatValues]; -GO - -/* - -SELECT * from vefn_GetNullFormatValues('WidSAdjByLevel') -SELECT * from vefn_GetNullFormatValues('MatchProcNumber') -SELECT * from vefn_GetNullFormatValues('TofCPositionAdj') - -*/ - - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetNullFormatValues](@FieldName as varchar(255)) -RETURNS @NullValues TABLE -( - FormatID int, - Name varchar(100), - ParentNode XML, - Node XML -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @NodeName as varchar(255) - set @NodeName = (Select distinct v.value('local-name(..)', 'varchar(255)') MyName - FROM Formats CROSS APPLY Data.nodes('(*//@*[local-name()=sql:variable("@FieldName")])') TempXML(v)) - Insert into @NullValues - Select FormatID, Name, ParentNode, Node FROM ( - Select FormatID, Name, v.query('..') ParentNode, v.query('.') Node, - v.value('(./@*[local-name()=sql:variable("@FieldName")])[1]','varchar(255)') FieldValue - FROM Formats CROSS APPLY Data.nodes('(//*[local-name()=sql:variable("@NodeName")])') TempXML(v) - ) t1 WHERE FieldValue is null - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetNullFormatValues Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetNullFormatValues Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetTokens] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetTokens]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetTokens]; -GO - -/* -select * from vefn_GetTokens('abc{Header1}def{Header2}ghi') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetTokens](@text varchar(64)) -RETURNS @Tokens TABLE -( - Token varchar(64) -) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @index int -SET @index = -1 -WHILE (LEN(@text) > 0) - BEGIN - SET @index = CHARINDEX('{' , @text) - IF @index = 0 - BREAK - DECLARE @index2 int - SET @index2 = CHARINDEX('}' , @text) - if @index2 = 0 - BREAK - INSERT INTO @Tokens VALUES (substring(@text, @index,1+@index2-@index)) - SET @text = RIGHT(@text, (LEN(@text) - @index2)) - END - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetTokens Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetTokens Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetTransFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetTransFormat]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetTransFormat]; -GO - -/* Samples -select .dbo.vefn_GetTransFormat(1,6) -select .dbo.vefn_GetTransFormat(1,1) -select .dbo.vefn_GetTransFormat(1,2) -select .dbo.vefn_GetTransFormat(1,3) - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetTransFormat] (@FormatID int, @TranType int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN - - -- Walk up the Formats (inheritance) looking for the TransFormat - Declare @TransFormat as varchar(MAX) - BEGIN - with Formatz([MyOrder],[FormatID],[ParentID],[Data]) as ( - Select 0,FormatID, ParentID, Data From Formats where FormatID=@FormatID - Union All - Select [MyOrder]+1,FF.FormatID, FF.ParentID, FF.Data From Formats FF - Join Formatz ZZ on ZZ.ParentID=FF.FormatID - Where ZZ.FormatID <> ZZ.ParentID) - Select Top 1 @TransFormat=v.value('./@TransFormat', 'varchar(MAX)') - FROM Formatz - CROSS APPLY Data.nodes('//TransTypes') TempXML(v) - where v.value('./@TransType', 'int')=@TranType - order by [MyOrder] - END - return @TransFormat -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_GetTransFormat Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_GetTransFormat Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_HighLevelStepTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_HighLevelStepTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_HighLevelStepTransitions]; -GO - -/* -select * from vefn_HighLevelStepTransitions(105,104) -where TransCount > 0 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_HighLevelStepTransitions](@ItemID int, @ParentID int) -RETURNS @HighLevelStepTransitions TABLE -( - ParentID int - ,ItemID int PRIMARY KEY - ,Path varchar(max) - ,TransCount int - ,ExternalTransitions int - ,InternalTransitions int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - --where Z.[Level] > 0 -) -Insert into @HighLevelStepTransitions -select [ParentID],ItemID,dbo.ve_GetPath([ItemID]) ,(Select Count(*) from Transitions where ToID=ItemID OR RangeID=ItemID ) TransCount -,(Select count(*) from vefn_FindExternalTransitions(ItemID)) ExternalTransitions -,(Select count(*) from vefn_FindInternalTransitions(ItemID)) InternalTransitions -from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_HighLevelStepTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_HighLevelStepTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_NextStepTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_NextStepTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_NextStepTransitions]; -GO - -/* -select * from vefn_NextStepTransitions(450,443) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_NextStepTransitions](@ItemID int, @PreviousID int) -RETURNS @Transitions TABLE -( - [TransitionID] int PRIMARY KEY, - [FromID] [int], - [ToID] [int], - [RangeID] [int], - [TranType] [int], - [Config] [nvarchar](max) -) -WITH EXECUTE AS OWNER -AS -BEGIN - INSERT INTO @Transitions - SELECT [TransitionID],[FromID],[ToID],[RangeID],[TranType],[Config] - FROM [Transitions] where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) - AND (ToID = @ItemID OR RangeID = @ItemID) - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_NextStepTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_NextStepTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_RemoveExtraText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_RemoveExtraText]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_RemoveExtraText]; -GO - -/* -select text, .dbo.vefn_RemoveExtraText(text,2,0,0) StrippedText from Contents where ContentID=373 -select text, .dbo.vefn_RemoveExtraText(text,1,0,0) StrippedText from Contents where ContentID=373 -select text, .dbo.vefn_RemoveExtraText(text,0,0,0) StrippedText ,.dbo.vefn_FirstLink(text,0), PATINDEX('%[' + nchar(9516) + nchar(9574) + char(21) + ']%' , text) from Contents where ContentID=373 -select .dbo.vefn_RemoveExtraText('\b Bold\b0',0,0,0) -select .dbo.vefn_RemoveExtraText('\b Bold\b0',0,1,0) -select .dbo.vefn_RemoveExtraText('A\u1?B\u12?C\u123?D\u1234?E',0,0,0) -select .dbo.vefn_RemoveExtraText('A\u1?B\u12?C\u123?D\u1234?E',0,0,1) -*/ - - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_RemoveExtraText](@text nvarchar(MAX),@includeLink int, @includeRtfFormatting int , @includeSpecialCharacters int) -RETURNS varchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @index int -DECLARE @index2 int --- Strip Links -IF @includeLink = 0 -- Remove Links - SET @text = [dbo].[vefn_RemoveRange](@text,'') -IF @includeLink < 2 -- Remove Comments - SET @text = [dbo].[vefn_RemoveRange](@text,'\v' ,'\v0') -if(@includeRtfFormatting=0) - -- Remove Rtf Formatting - BEGIN - SET @text = Replace(@text, '\b0 ', ''); - SET @text = Replace(@text, '\b ', ''); - SET @text = Replace(@text, '\ul0 ', ''); - SET @text = Replace(@text, '\ul ', ''); - SET @text = Replace(@text, '\i0 ', ''); - SET @text = Replace(@text, '\i ', ''); - SET @text = Replace(@text, '\super ', ''); - SET @text = Replace(@text, '\sub ', ''); - SET @text = Replace(@text, '\nosupersub ', ''); - SET @text = Replace(@text, '\b0', ''); - SET @text = Replace(@text, '\b', ''); - SET @text = Replace(@text, '\ul0', ''); - SET @text = Replace(@text, '\ul', ''); - SET @text = Replace(@text, '\i0', ''); - SET @text = Replace(@text, '\i', ''); - SET @text = Replace(@text, '\super', ''); - SET @text = Replace(@text, '\sub', ''); - SET @text = Replace(@text, '\nosupersub', ''); - END -if(@includeSpecialCharacters=0) - -- Remove Special Characters - BEGIN - SET @index = PATINDEX('%\u[0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+4,len(@text)) - SET @index = PATINDEX('%\u[0-9]?%',@text) - END - SET @index = PATINDEX('%\u[0-9][0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+5,len(@text)) - SET @index = PATINDEX('%\u[0-9][0-9]?%',@text) - END - SET @index = PATINDEX('%\u[0-9][0-9][0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+6,len(@text)) - SET @index = PATINDEX('%\u[0-9][0-9][0-9]?%',@text) - END - SET @index = PATINDEX('%\u[0-9][0-9][0-9][0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+7,len(@text)) - SET @index = PATINDEX('%\u[0-9][0-9][0-9][0-9]?%',@text) - END - SET @index = PATINDEX('%\''[0-9A-Fa-f][0-9A-Fa-f]%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+4,len(@text)) - SET @index = PATINDEX('%\''[0-9A-Fa-f][0-9A-Fa-f]%',@text) - END - - END -RETURN @text -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_RemoveExtraText Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_RemoveExtraText Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_RemoveRange] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_RemoveRange]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_RemoveRange]; -GO - -/* -SELECT ContentID, text, [dbo].[vefn_RemoveRange](text,'') StrippedText -from contents -where contentid in (select top 25 ContentID from contents where text like '%[[]END>%') - -select top 25 * from contents where text like '%[[]END>%' - -SELECT ContentID, [dbo].[vefn_RemoveRange](text,'') StrippedText -from contents -where contentid =189 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_RemoveRange](@text nvarchar(MAX),@startToken nvarchar(MAX), @endToken nvarchar(MAX)) -RETURNS varchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @index int - DECLARE @index2 int - DECLARE @lenStartToken int - DECLARE @lenEndToken int - SET @lenStartToken = len(@startToken) - SET @lenEndToken = len(@endToken) - SET @index = CHARINDEX(@startToken , @text) - while (@index != 0) - BEGIN - SET @index2 = CHARINDEX(@endToken , @text, @index + @lenStartToken) - SET @text = substring(@text,1,@index-1) + substring(@text,@index2+@lenEndToken,len(@text)) - SET @index = CHARINDEX(@startToken , @text) - END - RETURN @text -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_RemoveRange Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_RemoveRange Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_SectionFormats] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SectionFormats]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SectionFormats]; -GO - ---select FormatID ---,10000 + v.value('../@Index', 'int') [SectionType] ---,[Name] ---,v.value('../@Name', 'varchar(255)') [SectionFormatName] ---,v.value('@TopRow', 'int') TopRow ---,v.value('@PageLength', 'int') PageLength ---,v.value('@FooterLength', 'int') FooterLength ---,v.value('@LeftMargin', 'int') LeftMargin ---,v.value('@PageWidth', 'int') PageWidth ---from Formats ---CROSS APPLY Data.nodes('//DocStyle/Layout') TempXML(v) - -/* - -select * from vefn_SectionFormats() where Name = 'OHLP' - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SectionFormats]() -RETURNS @SectionFormats TABLE -( - [FormatID] int - ,[SectionType] int - ,[Name] nvarchar(20) - ,[SectionFormatName] nvarchar(max) - ,[TopRow] int - ,[PageLength] int - ,[FooterLength] int - ,[LeftMargin] int - ,[PageWidth] int -) -WITH EXECUTE AS OWNER -AS -BEGIN -Insert into @SectionFormats -select FormatID -,10000 + v.value('../@Index', 'int') [SectionType] -,[Name] -,v.value('../@Name', 'varchar(255)') [SectionFormatName] -,v.value('@TopRow', 'int') TopRow -,v.value('@PageLength', 'int') PageLength -,v.value('@FooterLength', 'int') FooterLength -,v.value('@LeftMargin', 'int') LeftMargin -,v.value('@PageWidth', 'int') PageWidth -from Formats -CROSS APPLY Data.nodes('//DocStyle/Layout') TempXML(v) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SectionFormats Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SectionFormats Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_SiblingAndChildrenItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SiblingAndChildrenItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SiblingAndChildrenItems]; -GO - -/* -select * from vefn_SiblingAndChildrenItems('3') II -join -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SiblingAndChildrenItems](@DocVersionList varchar(MAX),@UnitPrefix varchar(MAX)) -RETURNS @SiblingAndChildren TABLE -( - [ItemID] int PRIMARY KEY - , [DVPath] nvarchar(max) - , [Path] nvarchar(max) - , [Level] int - , [FromType] int - , [Ordinal] int - , [ParentID] int - , [PreviousID] int - , [ContentID] int - , [DTS] datetime - , [UserID] nvarchar(100) - , [pContentID] int - , [pDTS] datetime - , [pUserID] nvarchar(100) - , [IsRNO] int - --- , [PPath] nvarchar(max) --- , [POrdinalPath] nvarchar(max) - , [OrdinalPath] nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -BEGIN -with Itemz([ItemID], [DVPath], [Level], [ParentID], [Ordinal], [PreviousID], [FromType], [ContentID], [DTS], [UserID],[pContentID], - [pDTS],[pUserID],PPath, [Path], [IsRNO], [POrdinalPath], [OrdinalPath]) as ( - Select [I].[ItemID], DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], - Cast('' as nvarchar(max)) [PPath], - Cast(Case when C.Type < 20000 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text else '1' end as nvarchar(max)) [Path], - 0 IsRNO, Cast('' as nvarchar(max)) [POrdinalPath], Cast('0001' as nvarchar(max)) [OrdinalPath] - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select I.[ItemID], DVPath, [Level] + 1,Z.ItemID,0, I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID], - P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text -- Procedure - when 1 then @Delim + C.Number + @DelimNumber + C.Text -- Section - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(3)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-00001' - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select I.[ItemID], DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID] - ,null,null,null, - PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text -- Procedure - when 1 then @Delim + C.Number + @DelimNumber + C.Text -- Section - else case when Path like '%.%' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(3)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('00000' + cast(Z.[Ordinal] + 2 as varchar(5)), 5) - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 - -) -insert into @SiblingAndChildren -select I.[ItemID], [DvPath], [Path], I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID], - [pContentID],[pDTS],[pUserID],[IsRNO]/*,[PPath],[POrdinalPath]*/,[OrdinalPath] - from ItemZ I -OPTION (MAXRECURSION 10000) -END -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SiblingAndChildrenItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SiblingAndChildrenItems Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_SiblingChildrenItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SiblingChildrenItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SiblingChildrenItems]; -GO - -/* -select * from Transitions -where (ToID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) OR (RangeID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) -AND NOT (FromID in(Select ContentID From dbo.vefn_ChildrenItems(185,184))) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SiblingChildrenItems](@ItemID int) -RETURNS @SiblingChildren TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 as [pContentID],[DTS] As [pDTS], [UserID] As [pUserID], [LastChanged] As [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] as [pContentID],P.[DTS] As [pDTS],P.[UserID] As [pUserID],P.[LastChanged] As [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -insert into @SiblingChildren select ItemID, ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SiblingChildrenItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SiblingChildrenItems Error on Creation' -GO - -/****** Object: Table Function [vefn_SiblingItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SiblingItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SiblingItems]; -GO - -/* -select * from Transitions -where (ToID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) OR (RangeID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) -AND NOT (FromID in(Select ContentID From dbo.vefn_ChildrenItems(185,184))) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SiblingItems](@ItemID int, @ParentID int) -RETURNS @Siblings TABLE -( - ItemID int PRIMARY KEY, - ContentID int, - Ordinal int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -insert into @Siblings select ItemID, ContentID, Ordinal from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SiblingItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SiblingItems Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_SplitInt] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SplitInt]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SplitInt]; -GO - ---select * from DocVersions where VersionID in(select * from vefn_SplitInt('1,2,4',',')) ---select Type, Count(*) from Contents where Type in(select * from vefn_SplitInt('20001,20002,20004',',')) group by Type -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SplitInt](@text varchar(MAX), @delimiter varchar(20) = ',') -RETURNS @IDs TABLE -( - ID int PRIMARY KEY -) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @index int -SET @index = -1 -WHILE (LEN(@text) > 0) - BEGIN - SET @index = CHARINDEX(@delimiter , @text) - IF (@index = 0) AND (LEN(@text) > 0) - BEGIN - INSERT INTO @IDs VALUES (CAST(@text AS INT )) - BREAK - END - IF (@index > 1) - BEGIN - INSERT INTO @IDs VALUES (CAST(LEFT(@text, @index - 1) AS INT)) - SET @text = RIGHT(@text, (LEN(@text) - @index)) - END - ELSE - SET @text = RIGHT(@text, (LEN(@text) - @index)) - END - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SplitInt Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SplitInt Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_SplitROSearch] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SplitROSearch]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SplitROSearch]; -GO - -/* -select * from vefn_SplitROSearch(null) -select * from vefn_SplitROSearch('') -select * from vefn_SplitROSearch('1') -select * from vefn_SplitROSearch('1:0001') -select * from vefn_SplitROSearch('1:0001000019C') -select * from vefn_SplitROSearch('1:0001000019C,0001000019D') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SplitROSearch](@text varchar(MAX)='') -RETURNS @ROIDSearch TABLE -( - RODBID int, - ROID varchar(16) - --,CONSTRAINT ROIDSearchPK PRIMARY KEY(RODBID, ROID) -) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @index int -IF(isnull(@text,'') = '') -BEGIN - Insert into @ROIDSearch - Select RODBID, '' - from RODbs - RETURN -END -SET @index = CHARINDEX(':' , @text) -DECLARE @RODBID int -IF (@index = 0) AND (LEN(@text) > 0) - BEGIN - SET @RODBID = CAST(@text AS INT) - INSERT INTO @ROIDSearch VALUES (@RODBID,'') - SET @Text='' - END -ELSE - BEGIN - SET @RODBID = CAST(LEFT(@text, @index - 1) AS INT) - SET @text = RIGHT(@text, (LEN(@text) - @index)) - SET @index = -1 - END -SET @text = RIGHT(@text, (LEN(@text) - @index)) -WHILE (LEN(@text) > 0) - BEGIN - SET @index = CHARINDEX(',' , @text) - IF (@index = 0) AND (LEN(@text) > 0) - BEGIN - INSERT INTO @ROIDSearch VALUES (@RODBID,@text) - BREAK - END - IF (@index > 1) - BEGIN - INSERT INTO @ROIDSearch VALUES (@RODBID,LEFT(@text, @index - 1)) - SET @text = RIGHT(@text, (LEN(@text) - @index)) - END - ELSE - SET @text = RIGHT(@text, (LEN(@text) - @index)) - END - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SplitROSearch Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SplitROSearch Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_XmlPath] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_XmlPath]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_XmlPath]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_XmlPath] (@xml XML) RETURNS varchar(255) -WITH EXECUTE AS OWNER -AS -BEGIN - return case when @xml.exist('*[1]') is null THEN '' ELSE @xml.value('local-name(*[1])','varchar(max)') + - coalesce('[' + @xml.value('*[1]/@Type','varchar(255)')+']','[' + @xml.value('*[1]/@Index','varchar(255)')+']','') + '/' END -END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_XmlPath Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_XmlPath Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_CleanUpItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_CleanUpItems]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_CleanUpItems]; -GO - -/* -select *, .dbo.ve_GetParts(ContentID,6) SubSteps from items -where contentid in(select contentid from contents where text like 'DISPATCH operator to open breaker%') - - -select * from items -where itemid in(298,299,436,440) - -select itemid from items -where previousid is null and itemid not in (select itemid from parts) - ---select * from contents where text like 'foldout cip%' - -select count(*) from parts -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE procedure [dbo].[vesp_CleanUpItems] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - BEGIN -with Itemz(ItemID) as( -select itemid from items -where previousid is null -and itemid not in(1) -and itemid not in (select itemid from parts) -UNION ALL -select ii.itemid from items ii join itemz zz on zz.itemid = ii.previousid -) -delete from items where itemid in (select itemid from itemz) -OPTION (MAXRECURSION 10000) - END - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_CleanUpItems Succeeded' -ELSE PRINT 'Procedure Creation: vesp_CleanUpItems Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetFormatFields] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetFormatFields]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetFormatFields]; -GO - -/* -vesp_GetFormatFields 'PrintNoTitle' -vesp_GetFormatFields 'Sep' -vesp_GetFormatFields 'TabFormat' -vesp_GetFormatFields 'ShowSectionTitles' -vesp_GetFormatFields 'Caution' -vesp_GetFormatFields 'Ident' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetFormatFields] -( - @find varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @pivotlist varchar(max) - select @pivotlist = stuff((select distinct ',[' + [Name] + ']' from vefn_GetFormatField(@find) - order by ',[' + [Name] + ']' for xml path('')),1,1,'') - DECLARE @query VARCHAR(max) - SET @query = 'SELECT * FROM (Select Name,''Format Description'' Path,'''' Value, Description From Formats) T1 PIVOT ( Max(Description) FOR [Name] IN (' + @pivotlist + ') ) As Pivot2' - EXECUTE(@query) - SET @query = 'SELECT * FROM (Select Name,''FormatID'' Path,'''' Value, FormatID From Formats) T1 PIVOT ( Max(FormatID) FOR [Name] IN (' + @pivotlist + ') ) As Pivot2' - EXECUTE(@query) - SET @query = 'SELECT * FROM (Select Name,Path,Value From vefn_GetFormatField(''' + @find + ''')) T1 PIVOT ( Count(Name) FOR [Name] IN (' + @pivotlist + ') ) AS Pivot1 ORDER BY PATH,VALUE' - print @Query - EXECUTE(@query) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetFormatFields Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetFormatFields Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetFormatFieldsAll] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetFormatFieldsAll]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetFormatFieldsAll]; -GO - -/* -vesp_GetFormatFieldsAll 'PrintNoTitle' -vesp_GetFormatFieldsAll 'Sep' -vesp_GetFormatFieldsAll 'TabFormat' -vesp_GetFormatFieldsAll 'ShowSectionTitles' -vesp_GetFormatFieldsAll 'Caution' -vesp_GetFormatFieldsAll 'Ident' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetFormatFieldsAll] -( - @find varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @pivotlist varchar(max) - select @pivotlist = stuff((select distinct ',[' + [Name] + ']' from Formats - order by ',[' + [Name] + ']' for xml path('')),1,1,'') - DECLARE @query VARCHAR(max) - SET @query = 'SELECT * FROM (Select Name,Path,Value From vefn_GetFormatField(''' + @find + ''')) T1 PIVOT ( Count(Name) FOR [Name] IN (' + @pivotlist + ') ) AS Pivot1 ORDER BY PATH,VALUE' - print @Query - EXECUTE(@query) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetFormatFieldsAll Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetFormatFieldsAll Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetFormatFieldsByStepType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetFormatFieldsByStepType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetFormatFieldsByStepType]; -GO - -/* -vesp_GetFormatFieldsByStepType 'PrintNoTitle' -vesp_GetFormatFieldsByStepType 'Sep' -vesp_GetFormatFieldsByStepType 'TabFormat' -vesp_GetFormatFieldsByStepType 'ShowSectionTitles' -vesp_GetFormatFieldsByStepType 'Caution' -vesp_GetFormatFieldsByStepType 'Ident' -vesp_GetFormatFieldsByStepType 'Off' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetFormatFieldsByStepType] -( - @find varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @pivotlist varchar(max) - select @pivotlist = stuff((select distinct ',[' + [Name] + ']' from vefn_GetFormatField(@find) - order by ',[' + [Name] + ']' for xml path('')),1,1,'') - DECLARE @query VARCHAR(max) - SET @query = 'SELECT * FROM (Select Name,''Format Description'' Path,'''' StepType, '''' Value, Description From Formats) T1 PIVOT ( Max(Description) FOR [Name] IN (' + @pivotlist + ') ) As Pivot2' - EXECUTE(@query) - SET @query = 'SELECT * FROM (Select Name,''FormatID'' Path, '''' StepType,'''' Value, FormatID From Formats) T1 PIVOT ( Max(FormatID) FOR [Name] IN (' + @pivotlist + ') ) As Pivot2' - EXECUTE(@query) - SET @query = 'SELECT * FROM (Select Name,Path,StepType,Value From vefn_GetFormatFieldByStepType(''' + @find + ''')) T1 PIVOT ( Count(Name) FOR [Name] IN (' + @pivotlist + ') ) AS Pivot1 ORDER BY PATH,StepType,VALUE' - print @Query - EXECUTE(@query) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetFormatFieldsByStepType Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetFormatFieldsByStepType Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetFormatFieldsByStepType2] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetFormatFieldsByStepType2]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetFormatFieldsByStepType2]; -GO - -/* -vesp_GetFormatFieldsByStepType2 'PrintNoTitle' -vesp_GetFormatFieldsByStepType2 'Sep' -vesp_GetFormatFieldsByStepType2 'TabFormat' -vesp_GetFormatFieldsByStepType2 'ShowSectionTitles' -vesp_GetFormatFieldsByStepType2 'Caution' -vesp_GetFormatFieldsByStepType2 'Ident' -vesp_GetFormatFieldsByStepType2 'Off' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create PROCEDURE [dbo].[vesp_GetFormatFieldsByStepType2] -( - @find varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @pivotlist varchar(max) - select @pivotlist = stuff((select distinct ',[' + [Name] + ']' from vefn_GetFormatFieldByStepType2(@find) - order by ',[' + [Name] + ']' for xml path('')),1,1,'') - DECLARE @query VARCHAR(max) - SET @query = 'SELECT * FROM (Select Name,''Format Description'' Path,'''' StepType, '''' Value, Description From Formats) T1 PIVOT ( Max(Description) FOR [Name] IN (' + @pivotlist + ') ) As Pivot2' - EXECUTE(@query) - SET @query = 'SELECT * FROM (Select Name,''FormatID'' Path, '''' StepType,'''' Value, FormatID From Formats) T1 PIVOT ( Max(FormatID) FOR [Name] IN (' + @pivotlist + ') ) As Pivot2' - EXECUTE(@query) - SET @query = 'SELECT * FROM (Select Name,Path,StepType,Value From vefn_GetFormatFieldByStepType2(''' + @find + ''')) T1 PIVOT ( Count(Name) FOR [Name] IN (' + @pivotlist + ') ) AS Pivot1 ORDER BY PATH,StepType,VALUE' - print @Query - EXECUTE(@query) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetFormatFieldsByStepType2 Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetFormatFieldsByStepType2 Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetFormatFieldsNoValue] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetFormatFieldsNoValue]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetFormatFieldsNoValue]; -GO - -/* -vesp_GetFormatFieldsNoValue 'PrintNoTitle' -vesp_GetFormatFieldsNoValue 'Sep' -vesp_GetFormatFieldsNoValue 'TabFormat' -vesp_GetFormatFieldsNoValue 'ShowSectionTitles' -vesp_GetFormatFieldsNoValue 'Caution' -vesp_GetFormatFieldsNoValue 'Ident' -vesp_GetFormatFieldsNoValue 'Off' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetFormatFieldsNoValue] -( - @find varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @pivotlist varchar(max) - select @pivotlist = stuff((select distinct ',[' + [Name] + ']' from vefn_GetFormatField(@find) - order by ',[' + [Name] + ']' for xml path('')),1,1,'') - DECLARE @query VARCHAR(max) - SET @query = 'SELECT * FROM (Select Name,''Format Description'' Path, Description From Formats) T1 PIVOT ( Max(Description) FOR [Name] IN (' + @pivotlist + ') ) As Pivot2' - EXECUTE(@query) - SET @query = 'SELECT * FROM (Select Name,''FormatID'' Path, FormatID From Formats) T1 PIVOT ( Max(FormatID) FOR [Name] IN (' + @pivotlist + ') ) As Pivot2' - EXECUTE(@query) - SET @query = 'SELECT * FROM (Select Name,Path From vefn_GetFormatFieldNoValue(''' + @find + ''')) T1 PIVOT ( Count(Name) FOR [Name] IN (' + @pivotlist + ') ) AS Pivot1 ORDER BY PATH' - print @Query - EXECUTE(@query) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetFormatFieldsNoValue Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetFormatFieldsNoValue Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetFormatGroupFields] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetFormatGroupFields]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetFormatGroupFields]; -GO - -/* -vesp_GetFormatGroupFields 'PrintNoTitle' -vesp_GetFormatGroupFields 'Sep' -vesp_GetFormatGroupFields 'TabFormat' -vesp_GetFormatGroupFields 'ShowSectionTitles' -vesp_GetFormatGroupFields 'Caution' -vesp_GetFormatGroupFields 'Ident' -vesp_GetFormatGroupFields 'SectionTitleLen' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetFormatGroupFields] -( - @find varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @pivotlist varchar(max) - select @pivotlist = stuff((select distinct ',[' + substring([Name],1,3) + ']' from vefn_GetFormatField(@find) - order by ',[' + substring([Name],1,3) + ']' for xml path('')),1,1,'') - DECLARE @query VARCHAR(max) - SET @query = 'SELECT * FROM (Select substring([Name],1,3) FormatGroup,Path,Value From vefn_GetFormatField(''' + @find + ''')) T1 PIVOT ( Count(FormatGroup) FOR FormatGroup IN (' + @pivotlist + ') ) AS Pivot1 ORDER BY PATH,VALUE' - print @Query - EXECUTE(@query) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetFormatGroupFields Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetFormatGroupFields Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetFormatGroupFieldsByStepType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetFormatGroupFieldsByStepType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetFormatGroupFieldsByStepType]; -GO - -/* -vesp_GetFormatGroupFieldsByStepType 'PrintNoTitle' -vesp_GetFormatGroupFieldsByStepType 'Sep' -vesp_GetFormatGroupFieldsByStepType 'TabFormat' -vesp_GetFormatGroupFieldsByStepType 'ShowSectionTitles' -vesp_GetFormatGroupFieldsByStepType 'Caution' -vesp_GetFormatGroupFieldsByStepType 'Ident' -vesp_GetFormatGroupFieldsByStepType 'SectionTitleLen' -vesp_GetFormatGroupFieldsByStepType 'Off' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetFormatGroupFieldsByStepType] -( - @find varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @pivotlist varchar(max) - select @pivotlist = stuff((select distinct ',[' + substring([Name],1,3) + ']' from vefn_GetFormatField(@find) - order by ',[' + substring([Name],1,3) + ']' for xml path('')),1,1,'') - DECLARE @query VARCHAR(max) - SET @query = 'SELECT * FROM (Select substring([Name],1,3) FormatGroup,Path,StepType,Value From vefn_GetFormatFieldByStepType(''' + @find + ''')) T1 PIVOT ( Count(FormatGroup) FOR FormatGroup IN (' + @pivotlist + ') ) AS Pivot1 ORDER BY PATH, StepType,VALUE' - print @Query - EXECUTE(@query) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetFormatGroupFieldsByStepType Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetFormatGroupFieldsByStepType Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetFormatGroupFieldsNoValues] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetFormatGroupFieldsNoValues]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetFormatGroupFieldsNoValues]; -GO - -/* -vesp_GetFormatGroupFieldsNoValues 'PrintNoTitle' -vesp_GetFormatGroupFieldsNoValues 'Sep' -vesp_GetFormatGroupFieldsNoValues 'TabFormat' -vesp_GetFormatGroupFieldsNoValues 'ShowSectionTitles' -vesp_GetFormatGroupFieldsNoValues 'Caution' -vesp_GetFormatGroupFieldsNoValues 'Ident' -vesp_GetFormatGroupFieldsNoValues 'SectionTitleLen' -vesp_GetFormatGroupFieldsNoValues 'Off' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetFormatGroupFieldsNoValues] -( - @find varchar(255) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @pivotlist varchar(max) - select @pivotlist = stuff((select distinct ',[' + substring([Name],1,3) + ']' from vefn_GetFormatFieldNoValue(@find) - order by ',[' + substring([Name],1,3) + ']' for xml path('')),1,1,'') - DECLARE @query VARCHAR(max) - SET @query = 'SELECT * FROM (Select substring([Name],1,3) FormatGroup,Path From vefn_GetFormatFieldNoValue(''' + @find + ''')) T1 PIVOT ( Count(FormatGroup) FOR FormatGroup IN (' + @pivotlist + ') ) AS Pivot1 ORDER BY PATH' - print @Query - EXECUTE(@query) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetFormatGroupFieldsNoValues Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetFormatGroupFieldsNoValues Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetGenMacMacros] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetGenMacMacros]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetGenMacMacros]; -GO - -/* -vesp_GetGenMacMacros -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetGenMacMacros] -WITH EXECUTE AS OWNER -AS -BEGIN - declare @pivotlist varchar(max) - select @pivotlist = stuff((select distinct ',[' + [Name] + ']' from vefn_GetGenMacMacros() - order by ',[' + [Name] + ']' for xml path('')),1,1,'') - DECLARE @query VARCHAR(max) - SET @query = 'SELECT * FROM (Select Name,''Format Description'' Path, Description From Formats) T1 PIVOT ( Max(Description) FOR [Name] IN (' + @pivotlist + ') ) As Pivot2' - EXECUTE(@query) - SET @query = 'SELECT * FROM (Select Name,''FormatID'' Path, FormatID From Formats) T1 PIVOT ( Max(FormatID) FOR [Name] IN (' + @pivotlist + ') ) As Pivot2' - EXECUTE(@query) - SET @query = 'SELECT * FROM (Select Name,MacroName From vefn_GetGenMacMacros()) T1 PIVOT ( Count(Name) FOR [Name] IN (' + @pivotlist + ') ) AS Pivot1 ORDER BY MacroName' - print @Query - EXECUTE(@query) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetGenMacMacros Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetGenMacMacros Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListChildren]; -GO - --- vesp_ListChildren 17 --- drop procedure [getItemAndChildren] -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListChildren] (@ItemID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListChildren Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListContentPath] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListContentPath]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListContentPath]; -GO - --- vesp_ListContentPath 148 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create PROCEDURE [dbo].[vesp_ListContentPath] - ( - @ContentID int - ) -WITH EXECUTE AS OWNER -AS -BEGIN -with ContentZ(BaseID,ContentID,ItemID,Number,Text,Item,Level,PreviousID) as ( - Select II.ItemID,CC.ContentID,II.ItemID,CC.Number,CC.Text,1,1,II.PreviousID - from Items II join Contents CC on CC.ContentID=II.ContentID where @ContentID=II.ContentID - Union All --- - Select BaseID,CC.ContentID,II.ItemID,CC.Number,CC.Text,ZZ.Item+1,ZZ.Level,II.PreviousID - FROM ContentZ ZZ - Join Items II on II.ItemID = ZZ.PreviousID - Join Contents CC on II.ContentID = CC.ContentID - where ZZ.PreviousID is not null - Union All - Select BaseID,CC.ContentID,II.ItemID,CC.Number,CC.Text,1,ZZ.Level+1,II.PreviousID - FROM ContentZ ZZ - Join Parts PP on ZZ.ItemID = PP.ItemID - Join Contents CC on PP.ContentID = CC.ContentID - Join Items II on II.ContentID = CC.ContentID - where ZZ.PreviousID is null --and ZZ.ItemID in(717,715,711,662) -) -Select ZZ.BaseID,ZZ.Level,MaxItem,ZZ.Number,ZZ.Text from ContentZ ZZ -join (select BaseID, Level, max(item) MaxItem from ContentZ group by BaseID,Level) T1 on T1.BaseID=ZZ.BaseID and T1.Level = ZZ.Level -where Item=1 -order by ZZ.BaseID,ZZ.Level Desc, Item Desc -OPTION (MAXRECURSION 10000) -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListContentPath Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListContentPath Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListContentsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListContentsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListContentsByItemID]; -GO - ---vesp_ListContentsByItemID 1 - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListContentsByItemID] -( -@ItemID int = 0 -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz(ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged]) as ( - Select ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged] - from Items - where ItemID=@ItemID - Union All --- - Select C.ItemID,C.PreviousID,C.ContentID,C.[DTS],C.[UserID],C.[LastChanged] - from Items C - Join Itemz Z on C.PreviousID=Z.ItemID -) - SELECT - cc.[ContentID], - cc.[Number], - cc.[Text], - cc.[Type], - cc.[FormatID], - cc.[Config], - cc.[DTS], - cc.[UserID], - cc.[LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=cc.[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=cc.[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=cc.[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=cc.[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=cc.[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=cc.[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=cc.[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=cc.[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=cc.[ContentID]) [ZContentCount] - FROM [Contents] cc - join itemz zz on cc.contentid=zz.contentid -OPTION (MAXRECURSION 1000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListContentsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListContentsByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemAndChildren]; -GO - --- vesp_ListItemAndChildren 1,0 --- drop procedure [vesp_ListItemAndChildren] -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemAndChildren] (@ItemID int, @ParentID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItems]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItems]; -GO - ---vesp_ListItems 1 - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItems] -( -@ItemID int = 0 -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz(ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged]) as ( - Select ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged] - from Items - where ItemID=@ItemID - Union All --- - Select C.ItemID,C.PreviousID,C.ContentID,C.[DTS],C.[UserID],C.[LastChanged] - from Items C - Join Itemz Z on C.PreviousID=Z.ItemID -) -Select ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[Itemz].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[Itemz].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[Itemz].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[Itemz].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[Itemz].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[Itemz].[ItemID]) [Transition_ToIDCount] -from Itemz -OPTION (MAXRECURSION 1000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItems Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItems Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListItemsAndContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsAndContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsAndContent]; -GO - ---vesp_ListItemsAndContent 1 - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsAndContent] -( -@ItemID int = 0 -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz(ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged]) as ( - Select ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged] - from Items - where ItemID=@ItemID - Union All --- - Select I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged] - from Items I - Join Itemz Z on I.PreviousID=Z.ItemID -) -Select I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] -from Itemz I Join Contents C on I.ContentID = C.ContentID -OPTION (MAXRECURSION 1000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsAndContent Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsAndContent Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListTables] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListTables]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListTables]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create procedure [dbo].[vesp_ListTables] -WITH EXECUTE AS OWNER -AS -begin -select o.name TableName,c.name ColumnName, -case c.xtype - when 56 then 'int' - when 231 then 'nvarchar(' + case c.length when -1 then 'Max' else cast(c.length/2 as varchar(10)) end + ')' - when 165 then 'varbinary(' + case c.length when -1 then 'Max' else cast(c.length as varchar(10)) end + ')' - when 239 then 'nchar(' + case c.length when -1 then 'Max' else cast(c.length/2 as varchar(10)) end + ')' - when 175 then 'char(' + case c.length when -1 then 'Max' else cast(c.length as varchar(10)) end + ')' - when 61 then 'datetime' - when 104 then 'bit' - when 48 then 'TinyInt' - when 189 then 'timestamp' - else '???' + cast(c.xtype as varchar(10)) end ItemType, - case when c.isnullable=1 then 'Yes' else '' end AllowNulls, - case when c.colstat=1 then 'Identity' else dc.definition end DefaultValue -from sysobjects o -join syscolumns c on o.id=c.id -left join sysconstraints cn on o.id=cn.id and c.colid=cn.colid -left join sys.default_constraints dc on dc.object_id = cn.constid -where o.xtype='U' -order by o.name,c.colid -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListTables Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListTables Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListTables2] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListTables2]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListTables2]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create procedure [dbo].[vesp_ListTables2] -WITH EXECUTE AS OWNER -AS -begin -select o.name TableName,c.name ColumnName, -case c.xtype - when 56 then 'int' - when 231 then 'nvarchar' - when 165 then 'varbinary' - when 239 then 'nchar' - when 175 then 'char' - when 61 then 'datetime' - when 104 then 'bit' - when 48 then 'TinyInt' - when 189 then 'timestamp' - else '???' + cast(c.xtype as varchar(10)) end ItemType, -case c.xtype - when 56 then '0' - when 231 then case c.length when -1 then 'Max' else cast(c.length/2 as varchar(10)) end - when 165 then case c.length when -1 then 'Max' else cast(c.length/2 as varchar(10)) end - when 239 then case c.length when -1 then 'Max' else cast(c.length/2 as varchar(10)) end - when 175 then case c.length when -1 then 'Max' else cast(c.length/2 as varchar(10)) end - when 61 then '0' - when 104 then '0' - when 48 then '0' - when 189 then '0' - else '0' end ItemSize, - - case when c.isnullable=1 then 'Yes' else '' end AllowNulls, - case when c.colstat=1 then 'Identity' else dc.definition end DefaultValue -from sysobjects o -join syscolumns c on o.id=c.id -left join sysconstraints cn on o.id=cn.id and c.colid=cn.colid -left join sys.default_constraints dc on dc.object_id = cn.constid -where o.xtype='U' -order by o.name,c.colid -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListTables2 Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListTables2 Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListTables3] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListTables3]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListTables3]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE procedure [dbo].[vesp_ListTables3] -WITH EXECUTE AS OWNER -AS -begin -select o.name TableName,c.name ColumnName, -case c.system_type_id - when 56 then 'int' - when 231 then 'nvarchar' - when 165 then 'varbinary' - when 167 then 'varchar' - when 239 then 'nchar' - when 175 then 'char' - when 61 then 'datetime' - when 104 then 'bit' - when 48 then 'TinyInt' - when 189 then 'timestamp' - else '???' + cast(c.system_type_id as varchar(10)) end ItemType, -case c.system_type_id - when 56 then '0' - when 231 then case c.max_length when -1 then 'Max' else cast(c.max_length/2 as varchar(10)) end - when 165 then case c.max_length when -1 then 'Max' else cast(c.max_length as varchar(10)) end - when 167 then case c.max_length when -1 then 'Max' else cast(c.max_length as varchar(10)) end - when 239 then case c.max_length when -1 then 'Max' else cast(c.max_length/2 as varchar(10)) end - when 175 then case c.max_length when -1 then 'Max' else cast(c.max_length as varchar(10)) end - when 61 then '0' - when 104 then '0' - when 48 then '0' - when 189 then '0' - else '0' end ItemSize, - - case when c.is_nullable=1 then 'Yes' else '' end AllowNulls, - case when c.is_identity=1 then 'Identity' else dc.definition end DefaultValue, - x.value Description -from sys.objects o -join sys.columns c on o.object_id=c.object_id -left join sysconstraints cn on o.object_id=cn.id and c.column_id=cn.colid -left join sys.default_constraints dc on dc.object_id = cn.constid -left join sys.extended_properties x on x.major_id = o.OBJECT_ID AND x.minor_id=c.column_id AND x.Name='MS_Description' -where o.type='U' -order by o.name,c.column_id -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListTables3 Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListTables3 Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ResetFolderManualOrder] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ResetFolderManualOrder]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ResetFolderManualOrder]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ResetFolderManualOrder] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION -update fld - set Fld.ManualOrder =Fld.MyRow -from (Select ROW_NUMBER() OVER(Partition by ParentID Order BY FolderID) MyRow,* from folders ) fld - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ResetFolderManualOrder Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ResetFolderManualOrder Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SearchAnnotationItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchAnnotationItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SearchAnnotationItemAndChildren]; -GO - -/* -exec vesp_SearchAnnotationItemAndChildren Null,Null,'1',Null,0,"3-" -exec vesp_SearchAnnotationItemAndChildren Null,Null,'2',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'3',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'4',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'5',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'',Null,0 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchAnnotationItemAndChildren] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), @AnnotationTypeList varchar(MAX), @SearchString nvarchar(MAX), @CaseSensitive as int, @UnitPrefix nvarchar(MAX)) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -Set @SearchString = .dbo.vefn_FixSearchString(@SearchString) -begin -with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - when 1 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(3)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001' - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - when 1 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - else case when Path like '%.%' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(3)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4) - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) -select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged],AnnotationID SearchAnnotationID, SearchText, TT.Name AnnotationType, - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - left join Entries E on C.ContentID = E.ContentID - left join Documents D on E.DocID = D.DocID - join Annotations A on A.ItemID = I.ItemID - join vefn_AnnotationTypeSplit(@AnnotationTypeList) TT on TT.TypeID=A.TypeID -where - (isnull(@SearchString,'')='' - OR (@CaseSensitive = 1 AND A.SearchText like @SearchString Collate SQL_Latin1_General_CP1_CS_AS) - OR (@CaseSensitive = 0 AND A.SearchText like @SearchString Collate SQL_Latin1_General_CP1_CI_AS)) - AND - ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - or - (@StepTypeList like '%20040%' AND IsRNO = -1))) - order by DvPath,OrdinalPath -OPTION (MAXRECURSION 10000) -END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchAnnotationItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchAnnotationItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SearchItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SearchItemAndChildren]; -GO - -/* -exec vesp_SearchItemAndChildren '1,2,4','20007','#Link:Transition',1,0,0,0 -exec vesp_SearchItemAndChildren '1,2,4','20007','#Link:Transition',1,1,0,0 -exec vesp_SearchItemAndChildren '1,2,4','20007','#Link:Transition',1,2,0,0 -exec vesp_SearchItemAndChildren '4','','#Link:Refer',1,2,0,0 -exec vesp_SearchItemAndChildren '4','','200`F',0,1,0,0 -exec vesp_SearchItemAndChildren '4','10000','',0,0,0,0 -exec vesp_SearchItemAndChildren '4','','[0-9]`F',0,1,0,0 -exec vesp_SearchItemAndChildren '','','RCP',0,0,0,0 -exec vesp_SearchItemAndChildren '','','%',0,0,0,0 -exec vesp_SearchItemAndChildren '','20040','',0,0,0,0 -exec vesp_SearchItemAndChildren '','10000','XYZZY',0,0,0,0 -exec vesp_SearchItemAndChildren '','10000','XYZZY',1,0,0,0 -exec vesp_SearchItemAndChildren '','','%IF%',0,0,0,0 -exec vesp_SearchItemAndChildren '','','%IF%',1,0,0,0 -exec vesp_SearchItemAndChildren '','','%47%',1,0,0,0 -exec vesp_SearchItemAndChildren '','','%47%',1,0,0,1 -exec vesp_SearchItemAndChildren '','','condenser not av',0,0,0,0 -exec vesp_SearchItemAndChildren '','','(SG OR LHSI) AND DISPATCH',2,0,0,0 -exec vesp_SearchItemAndChildren '','','DISPATCH NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildren '','','PORV NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildren '','','CHECK NORMAL',0,0,0,0 -exec vesp_SearchItemAndChildren '','','turbine-driven',0,0,0,0 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchItemAndChildren] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), -@SearchString varchar(MAX), @CaseSensitive as int, @IncludeLinks as int, @IncludeRtfFormatting as int, @IncludeSpecialCharacters as int, @UnitPrefix as varchar(MAX)) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -Set @SearchString = .dbo.vefn_FixSearchString(@SearchString) -begin -with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - when 1 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(3)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001' - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - when 1 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - else case when Path like '%.%' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(3)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4) - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) -select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - left join Entries E on C.ContentID = E.ContentID - left join Documents D on E.DocID = D.DocID - where - (isnull(@SearchString,'')='' - OR (@CaseSensitive = 1 AND .dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchString Collate SQL_Latin1_General_CP1_CS_AS) - OR (@CaseSensitive = 0 AND .dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchString Collate SQL_Latin1_General_CP1_CI_AS) - OR (@CaseSensitive = 1 AND D.DocAscii like @SearchString Collate SQL_Latin1_General_CP1_CS_AS) - OR (@CaseSensitive = 0 AND D.DocAscii like @SearchString Collate SQL_Latin1_General_CP1_CI_AS) - ) - AND - ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - or - (@StepTypeList like '%20040%' AND IsRNO = -1))) - order by DvPath,OrdinalPath -OPTION (MAXRECURSION 10000) -END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SearchItemAndChildrenNew] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchItemAndChildrenNew]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SearchItemAndChildrenNew]; -GO - -/* -exec vesp_SearchItemAndChildrenNew '1,2,4','20007','#Link:Transition',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '1,2,4','20007','#Link:Transition',1,1,0,0 -exec vesp_SearchItemAndChildrenNew '1,2,4','20007','#Link:Transition',1,2,0,0 -exec vesp_SearchItemAndChildrenNew '4','','#Link:Refer',1,2,0,0 -exec vesp_SearchItemAndChildrenNew '4','','200`F',0,1,0,0 -exec vesp_SearchItemAndChildrenNew '4','10000','',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '4','','[0-9]`F',0,1,0,0 -exec vesp_SearchItemAndChildrenNew '1','','"RCP"',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','"RCP"',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','20040','',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','10000','XYZZY',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','10000','XYZZY',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%IF%',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%IF%',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%47%',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%47%',1,0,0,1 -exec vesp_SearchItemAndChildrenNew '','','condenser not av',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','(SG OR LHSI) AND DISPATCH',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','DISPATCH NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','PORV NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','CHECK NORMAL',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','(Resolved Transition Text)',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%turbine-driven%',0,0,0,0 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchItemAndChildrenNew] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), -@SearchString varchar(MAX), @CaseSensitive as int, @IncludeLinks as int, @IncludeRtfFormatting as int, @IncludeSpecialCharacters as int, @UnitPrefix as varchar(MAX)) -WITH EXECUTE AS OWNER -AS -select ZZ.DvPath, ZZ.Path, ZZ.[Level],ZZ.[FromType],ZZ.[Ordinal], ZZ.[ParentID], ZZ.[ItemID],ZZ.[PreviousID],ZZ.[ContentID],ZZ.[DTS],ZZ.[UserID] - ,II.[LastChanged] - ,CC.[Number],CC.[Text],CC.[Type],CC.[FormatID],CC.[Config],CC.[DTS] [cDTS],CC.[UserID] [cUserID] - ,CC.[LastChanged] [cLastChanged], - PP.[ContentID] [pContentID], PP.[DTS] [pDTS],PP.[UserID] [pUserID], PP.[LastChanged] [pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ZZ.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ZZ.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ZZ.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ZZ.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ZZ.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ZZ.[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=CC.[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=CC.[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=CC.[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=CC.[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=CC.[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=CC.[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=CC.[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=CC.[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=CC.[ContentID]) [ZContentCount] -from vefn_SiblingAndChildrenItems(@DocVersionList, @UnitPrefix) ZZ - Join Items II on ZZ.ItemID=II.ItemID - Left Join Parts PP on ZZ.PContentID=PP.ContentID and ZZ.FromType = PP.FromType - Join Contents CC on CC.ContentID=ZZ.ContentID -where ZZ.ContentID in (select ContentID from vefn_FindText(@DocVersionList,@SearchString,@CaseSensitive,@IncludeLinks,@IncludeRtfFormatting,@IncludeSpecialCharacters,@StepTypeList)) - order by DvPath,OrdinalPath -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchItemAndChildrenNew Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchItemAndChildrenNew Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SearchROItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchROItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SearchROItemAndChildren]; -GO - -/* -exec vesp_SearchROItemAndChildren '1,2,4','20007','1:00010000019C,0001000002AE' -exec vesp_SearchROItemAndChildren '1,2,4','','1:00010000019C,0001000002AE' -exec vesp_SearchROItemAndChildren '1,2,4','20007','1:0001' -exec vesp_SearchROItemAndChildren '1,2,4','20006','1' -exec vesp_SearchROItemAndChildren '1,2,4','20006','' -exec vesp_SearchROItemAndChildren '1,2,4',Null,Null -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchROItemAndChildren] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), @ROSearchString varchar(MAX), @UnitPrefix as varchar(MAX)) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -begin -with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath - - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - --Path + case when Z.FromType < 3 then @Delim else @DelimStep end + case C.Type/10000 - Path + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - when 1 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(3)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001' - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - when 1 then @Delim + @UnitPrefix + C.Number + @DelimNumber + C.Text - else case when Path like '%.%' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(3)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4) - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) -select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - left join Entries E on C.ContentID = E.ContentID - left join Documents D on E.DocID = D.DocID - where - I.ContentID in(select ContentID from ROUsages RU - join vefn_SplitROSearch(@ROSearchString) RR - ON RR.RODBID = RU.RODBID and - RU.ROID like RR.ROID + '%' Collate SQL_Latin1_General_CP1_CI_AS -UNION -select Distinct ContentID from Entries EE - Join DROUsages RU on RU.DocID = EE.DocID - join vefn_SplitROSearch(@ROSearchString) RR - ON RR.RODBID = RU.RODBID and - RU.ROID = RR.ROID) - AND - ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - or - (@StepTypeList like '%20040%' AND IsRNO = -1))) - order by DvPath,OrdinalPath -OPTION (MAXRECURSION 10000) -END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchROItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchROItemAndChildren Error on Creation' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranFrom]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranFrom]; -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranFrom] Script Date: 10/03/2012 10:06:38 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranFrom] -WITH EXECUTE AS OWNER -AS -begin - -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=I.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=I.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=I.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=I.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=I.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=I.[ItemID]) [Transition_ToIDCount] -from Items I -join Transitions T on I.ContentID = T.FromID -END -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranFrom Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranFrom Error on Creation' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranTo]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranTo]; -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranTo] Script Date: 10/03/2012 10:08:03 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranTo] -WITH EXECUTE AS OWNER -AS -begin -with Itemz(ItemID, ContentID, PreviousID, [Type]) as ( - Select Distinct ItemID, C.ContentID, PreviousID, C.Type - FROM [Items] I - Join Contents C on C.ContentID = I.ContentID - JOIN Transitions T on t.ToID = I.ItemID or t.RangeID = I.ItemID - --where [ItemID]=@ItemID -Union ALL --- Parent - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Parts P on P.ItemID = Z.ItemID - join Items I on I.ContentID = P.ContentID - Join Contents C on C.ContentID = I.ContentID --- Previous -Union ALL - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Items I on Z.PreviousID = I.ItemID - Join Contents C on C.ContentID = I.ContentID - where Z.Type >= 10000 -) -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=Z.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=Z.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=Z.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=Z.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=Z.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=Z.[ItemID]) [Transition_ToIDCount] -from Itemz Z join Items I on I.ItemID = Z.ItemID -OPTION (MAXRECURSION 1000) -END -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranTo Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranTo Error on Creation' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranFromAndContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranFromAndContent]; -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranFromAndContent] Script Date: 10/03/2012 10:52:31 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranFromAndContent] -WITH EXECUTE AS OWNER -AS -begin - -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] -from Items I Join Contents C on I.ContentID = C.ContentID -join Transitions T on I.ContentID = T.FromID -END -GO -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranFromAndContent Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranFromAndContent Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranToAndContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranToAndContent]; -GO -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranToAndContent] Script Date: 10/03/2012 10:08:17 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranToAndContent] -WITH EXECUTE AS OWNER -AS -begin -with Itemz(ItemID, ContentID, PreviousID, [Type]) as ( - Select Distinct ItemID, C.ContentID, PreviousID, C.Type - FROM [Items] I - Join Contents C on C.ContentID = I.ContentID - JOIN Transitions T on t.ToID = I.ItemID or t.RangeID = I.ItemID - --where [ItemID]=@ItemID -Union ALL --- Parent - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Parts P on P.ItemID = Z.ItemID - join Items I on I.ContentID = P.ContentID - Join Contents C on C.ContentID = I.ContentID --- Previous -Union ALL - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Items I on Z.PreviousID = I.ItemID - Join Contents C on C.ContentID = I.ContentID - where Z.Type >= 10000 -) -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] -from Itemz Z -Join Items I on Z.ItemID = I.ItemID -Join Contents C on I.ContentID = C.ContentID -OPTION (MAXRECURSION 1000) -END -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranToAndContent Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranToAndContent Error on Creation' -GO -/****** Object: StoredProcedure [vesp_TurnChangeManagerOFF] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_TurnChangeManagerOFF]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_TurnChangeManagerOFF]; -GO -/****** Object: StoredProcedure [dbo].[vesp_TurnChangeManagerOFF] Script Date: 03/20/2012 16:02:54 ******/ -/* -exec vesp_TurnChangeManagerOFF -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_TurnChangeManagerOFF] WITH EXECUTE AS OWNER AS -BEGIN - PRINT 'NOTHING TO DO' -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_TurnChangeManagerOFF Succeeded' -ELSE PRINT 'Procedure Creation: vesp_TurnChangeManagerOFF Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_TurnChangeManagerON] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_TurnChangeManagerON]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_TurnChangeManagerON]; -GO -/****** Object: StoredProcedure [dbo].[vesp_TurnChangeManagerON] Script Date: 03/20/2012 16:02:54 ******/ -/* -exec vesp_TurnChangeManagerON -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_TurnChangeManagerON] WITH EXECUTE AS OWNER AS -BEGIN - PRINT 'NOTHING TO DO' -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_TurnChangeManagerON Succeeded' -ELSE PRINT 'Procedure Creation: vesp_TurnChangeManagerON Error on Creation' -GO diff --git a/PROMS/DataLoader/PROMSApproveApprove.sql b/PROMS/DataLoader/PROMSApproveApprove.sql deleted file mode 100644 index 69e39ebb..00000000 Binary files a/PROMS/DataLoader/PROMSApproveApprove.sql and /dev/null differ diff --git a/PROMS/DataLoader/PROMSFixes.Sql b/PROMS/DataLoader/PROMSFixes.Sql deleted file mode 100644 index dc4a33b0..00000000 --- a/PROMS/DataLoader/PROMSFixes.Sql +++ /dev/null @@ -1,21997 +0,0 @@ - - -Set NoCount On; - -If (db_name() in('master','model','msdn','tempdb')) -begin - DECLARE @ErrorMsg varchar(255) - SET @ErrorMsg = 'Don''t add these procedures and functions to ' + db_name() - PRINT '==========================================================================' - PRINT '' - PRINT @ErrorMsg - PRINT '' - PRINT 'You probably want to be in the VEPROMS database' - PRINT '' - PRINT '==========================================================================' - RAISERROR (@ErrorMsg, 20, -1) with log - RETURN -end -print 'Adding procedures and functions to ' + db_name() - - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemReplace]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [PasteItemReplace]; -GO -/****** Object: StoredProcedure [dbo].[PasteItemReplace] Script Date: 03/20/2012 16:02:54 ******/ -/* -declare @NewItemID int -declare @dts datetime -set @newitemid = 0 -set @dts = getdate() -exec PasteItemReplace 398,397,20014,@dts,'bodine',@NewItemID output -*/ --- ItemID is item to replace --- StartItemID is item to copy -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[PasteItemReplace] -( - @ItemID int=null, @StartItemID int=null, - @Type int=null, @DTS datetime, @UserID nvarchar(100), - @NewItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @ContentID AS INT - DECLARE @NextItemID AS INT - DECLARE @PreviousItemID AS INT - DECLARE @ExternalChildCount AS INT - DECLARE @ExternalCount AS INT - DECLARE @Path AS VARCHAR(MAX) - DECLARE @Children AS TABLE - ( - ItemID INT PRIMARY KEY, - ContentID INT - ) - - if exists (select * from tblitems where itemid = @ItemID and DeleteStatus !=0) - BEGIN - RAISERROR ('###Cannot Paste Step###This current step has been deleted in another session',16,1) - RETURN - END - -- First check if the replaced item can be deleted, i.e. it doesn't have transitions - -- pointing to it or children. - - DECLARE @ExternalTrans TABLE - ( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL - ) - SET NOCOUNT ON - DECLARE @DeleteID int - INSERT INTO DeleteLog (UserID) VALUES (@UserID) - SELECT @DeleteID = SCOPE_IDENTITY() - SELECT @ContentID = ContentID, @PreviousItemID = PreviousID FROM Items WHERE ItemID = @ItemID - SELECT @NextItemID = ItemID FROM Items WHERE PreviousID = @ItemID - --SELECT @ExternalCount = count(*) FROM vefn_FindExternalTransitions(@ItemID) - SELECT @ExternalChildCount = count(*) FROM vefn_FindExternalChildTransitions(@ItemID) - SET @Path = [dbo].[ve_GetShortPath](@ItemID) - - --IF @ExternalCount > 0 AND @NextItemID is null - --BEGIN - -- RAISERROR ('###Cannot Delete Item###Step %d has External Transitions and has no next step - (%s)',16,1,@ItemID,@Path) - -- RETURN - --END - - IF @ExternalChildCount > 0 - BEGIN - RAISERROR ('###Cannot Delete Item###Step %d has External Transitions to it''s children - (%s)',16,1,@ItemID,@Path) - RETURN - END - - -- Copy the item, 'NewItemID' represents the new item(s) - -- DestFormatID is the formatid for the destination parent's format - DECLARE @DestFormatID int - SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - - -- Adjust the next/previous to point to the new item - - DECLARE @PreviousID int - SELECT @PreviousID = [PreviousID] - FROM [ITEMS] II - WHERE [ItemID]=@ItemID - UPDATE [ITEMS] SET [PreviousID]=@PreviousID where [ItemID]=@NewItemID - UPDATE [CONTENTS] SET [Type]=@Type - FROM [CONTENTS] CC JOIN [ITEMS] ii ON CC.[ContentID]=II.[ContentID] - WHERE [ItemID]=@NewItemID - UPDATE [ITEMS] SET [PreviousID]=@NewItemID where [PreviousID]=@ItemID - UPDATE [PARTS] SET [ItemID]=@NewItemID where [ItemID]=@ItemID - - -- UPDATE DocVersion if this was a procedure - UPDATE DocVersions SET ItemID=@NewItemID where ItemID = @ItemID - - -- If there were 'external transitions' that pointed to the original - -- top replaced step, adjust them to point to the new top. - INSERT INTO @ExternalTrans SELECT * FROM vefn_FindExternalTransitions(@ItemID) - OPTION (MAXRECURSION 10000) - IF (SELECT COUNT(*) from @ExternalTrans) > 0 - BEGIN - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@NewItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TransitionID in(Select TransitionID from @ExternalTrans) - -- Update transitions that point to @ItemID to Point to @NextItemID - UPDATE TRANSITIONS - SET ToID = case when ToID = @ItemID then @NewItemID else ToID END, - RangeID = case when RangeID = @ItemID then @NewItemID else RangeID END - WHERE TransitionID in(Select TransitionID from @ExternalTrans) - - DECLARE @typeID int -- AnnotationType - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add 'Verification Required' annotions for transtions that pointed to top step - -- and need to point to - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Replaced Step Transition Destination',@UserID - FROM Items where ItemID in (SELECT FromItemID FROM @ExternalTrans) - - END - -- Remove the old one - - -- Get list of Children - INSERT INTO @Children SELECT * FROM vefn_ChildItems(@ItemID) - -- Delete Annotations for @ItemID and children - DELETE from Annotations where ItemID in(Select ItemID from @Children) - -- Delete Details associated with @ContentID and children - DELETE from Details where ContentID in(Select ContentID from @Children) - -- Delete Grids associated with @ContentID and children - DELETE from Grids where ContentID in(Select ContentID from @Children) - -- Delete Images associated with @ContentID and children - DELETE from Images where ContentID in(Select ContentID from @Children) - -- Delete Entries associated with @ContentID and children - DELETE from Entries where ContentID in(Select ContentID from @Children) - -- Delete ROUsages associated with @ContentID and children - DELETE from RoUsages where ContentID in(Select ContentID from @Children) - -- Delete ZTransitions records associated with @ContentID and children - DELETE FROM ZTransitions where TransitionID - in(SELECT TransitionID from Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID) - -- Delete Transitions associated with @ContentID and children - DELETE FROM Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID - -- Delete Parts associated with @ContentID and children - DELETE from Parts where ContentID in(Select ContentID from @Children) - -- Delete ZContents associated with @ContentID and children - DELETE from ZContents where ContentID in(Select ContentID from @Children) - -- Disconnect Items from Each Other - DELETE from Items where ItemID in(Select ItemID from @Children) and PreviousID Is Not Null - -- Disconnect Items to be deleted from each other - Update Items set PreviousID = null where ItemID in (Select ItemID from @Children) and PreviousID Is Not Null - -- Delete Item Records - DELETE from Items where ItemID in(Select ItemID from @Children) - -- DELETE Contents - DELETE from Contents where ContentID in(Select ContentID from @Children) ---delete from itemaudits where itemid = @newitemid -delete from itemaudits where itemid in (select itemid from vefn_ChildItems(@newitemid)) ---delete from contentaudits where contentid = (select contentid from items where itemid = @newitemid) -delete from contentaudits where contentid in (select contentid from vefn_ChildItems(@newitemid)) - DELETE from DeleteLog where DeleteID = @DeleteID - IF( @@TRANCOUNT > 0 ) COMMIT - EXECUTE GetItem @NewItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteItemReplace Succeeded' -ELSE PRINT 'Procedure Creation: PasteItemReplace Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChronologyReport]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChronologyReport]; -/****** Object: UserDefinedFunction [dbo].[vefn_ChronologyReport] Script Date: 03/20/2012 17:50:44 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -select * from vefn_chronologyreport(2) where type > 0 order by contentid,auditid -*/ -/****** Object: UserDefinedFunction [dbo].[vefn_ChronologyReport] Script Date: 05/18/2011 11:20:48 ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_ChronologyReport](@ProcItemID int, @DTS datetime) -returns @Report table -( -src int, -AuditID bigint, -ContentID int, -Number nvarchar(512), -Text nvarchar(max), -Type int, -FormatID int, -Config nvarchar(max), -DTS datetime, -UserID nvarchar(200), -DeleteStatus int, -ActionDTS datetime, -ItemDTS datetime, -LastAuditID int, -DeletedAuditID int -) -WITH EXECUTE AS OWNER -AS -BEGIN ---added rhm/jcb 20121218i -declare @tmpTable table -( - icontentid int primary key -) -insert into @tmpTable select icontentid from vefn_tblchilditems(@ProcItemID,@ProcItemID,1) ---added jcb 20111122 ---declare @dts datetime ---set @dts = (select dts from items where itemid = @ProcItemID ) ---set @dts = (SELECT .[dbo].[vefn_GetPreviousRevisionDTSByItemID] (@ProcItemID)) ---end added jcb 20111122 - insert into @Report - SELECT -1 src, - [AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid - where Number is not null ---added jcb 20111028_1827 -and ca.contentid != (select contentid from items where itemid = @procitemid) -and ca.contentid in (select icontentid from @tmpTable) ---end added jcb 20111028_1827 ---added jcb 20111122 ---and ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > (select dts from items where itemid = @ProcItemID )) -and ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > @dts) ---and ca.dts > (select dts from items where itemid = @ProcItemID ) -and ca.dts > @dts ---end added jcb 20111122 --- UNION --- SELECT ---2 src, --- cast(ident_current('contentaudits') + 1 as bigint) auditid ----- (select max(auditid) + 1 from contentaudits) [AuditID] ----- 0 [AuditID] --- ,ca.[ContentID] --- ,[Number] --- ,[Text] --- ,[Type] --- ,[FormatID] --- ,[Config] --- ,ca.[DTS] cadts --- ,ca.[UserID] --- ,ca.[DeleteStatus] --- ,ActionDTS --- ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS ---,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID ---,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID --- FROM tblContents ca ----- inner join tblitems ti on ca.contentid = ti.contentid ---WHERE ca.DeleteStatus = 0 AND -----added jcb 20111028_1827 ---ca.contentid != (select contentid from items where itemid = @procitemid) and -----end added jcb 20111028_1827 -----ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > (select dts from items where itemid = @ProcItemID )) -----added jcb 20111122 -----ca.ContentID in (SELECT [ContentID] FROM Contents where dts > (select dts from items where itemid = @ProcItemID )) ---ca.ContentID in (SELECT [ContentID] FROM Contents where dts > @dts) -----end added jcb 20111122 -----order by ca.DTS,ActionDTS - UNION - SELECT -3 src, - cast(ident_current('contentaudits') + 1 as bigint) auditid --- (select max(auditid) + 1 from contentaudits) [AuditID] --- 0 [AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM tblContents ca --- inner join tblitems ti on ca.contentid = ti.contentid -WHERE ca.DeleteStatus = 0 AND ---added jcb 20111028_1827 -ca.contentid != (select contentid from items where itemid = @procitemid) -and ca.contentid in (select icontentid from @tmpTable) ---end added jcb 20111028_1827 ---added jcb 20111122 ---ca.dts > (select dts from items where itemid = @ProcItemID ) -and (ca.dts > @dts or ca.actiondts > @dts) ---end added jcb 20111122 - UNION - SELECT distinct -5 src, --- cast(ident_current('contentaudits') + 1 as bigint) auditid --- (select max(auditid) + 1 from contentaudits) [AuditID] - ca.[AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid -WHERE ca.DeleteStatus > 0 ---added jcb 20111028_1827 - --ca.contentid != (select contentid from items where itemid = @procitemid) and ---end added jcb 20111028_1827 ---added jcb 20111122 ---ca.dts > (select dts from items where itemid = @ProcItemID ) -and ca.contentid in (select icontentid from @tmpTable) -and (ca.dts > @dts or ca.actiondts > @dts) ---end added jcb 20111122 -order by ca.DTS,ActionDTS - - insert into @Report - SELECT -4 src, - ca.[AuditID] - ,ca.[ContentID] - ,ca.[Number] - ,ca.[Text] - ,ca.[Type] - ,ca.[FormatID] - ,ca.[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ca.ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid - inner join @Report rpt on ca.contentid = rpt.contentid and ca.auditid = rpt.lastauditid -where ca.auditid not in (select auditid from @report) -and rpt.lastauditid is not null -and ca.contentid in (select icontentid from @tmpTable) - return -end -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_ChronologyReport Succeeded' -ELSE PRINT 'Function: vefn_ChronologyReport Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemSiblingAfter]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [PasteItemSiblingAfter]; -GO -/****** Object: StoredProcedure [dbo].[PasteItemSiblingAfter] Script Date: 03/21/2012 15:25:31 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[PasteItemSiblingAfter] -( - @ItemID int=null, @StartItemID int=null, -- ItemID is destination, StartItemID is top of copy - @Type int=null, @DTS datetime, @UserID nvarchar(100), - @NewItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - if exists (select * from tblitems where itemid = @ItemID and DeleteStatus !=0) - BEGIN - RAISERROR ('###Cannot Paste Step###This current step has been deleted in another session',16,1) - RETURN - END - -- First make a copy of the input StartItemID - -- DestFormatID is the formatid for the destination parent's format - DECLARE @DestFormatID int - SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - -- Adjust previous field - DECLARE @NextID int - SELECT @NextID = [ItemID] - FROM [ITEMS] - WHERE [PreviousID]=@ItemID - IF @NextID is not null -- step after the copy point. Adjust it's previous to point to the new step - BEGIN - UPDATE [ITEMS] SET [PreviousID]=@NewItemID, [DTS]=@DTS, [UserID]=@UserID where [ItemID]=@NextID - END - UPDATE [ITEMS] SET [PreviousID]=@ItemID where [ItemID]=@NewItemID - UPDATE [CONTENTS] SET [Type]=@Type - FROM [CONTENTS] CC JOIN [ITEMS] ii ON CC.[ContentID]=II.[ContentID] - WHERE [ItemID]=@NewItemID - - - -- Check for Transitions that point to the Next Step - BEGIN - -- Get a list of Transitions which need to change children of @ItemID that point to @NextID - DECLARE @NextStepTransitions TABLE - ( - [TransitionID] int PRIMARY KEY, - [FromID] [int], - [ToID] [int], - [RangeID] [int], - [TranType] [int], - [Config] [nvarchar](max) - ) - Insert into @NextStepTransitions select * from vefn_NextStepTransitions(@NextID,@ItemID) - OPTION (MAXRECURSION 10000) - IF (SELECT COUNT(*) from @NextStepTransitions) > 0 -- Next Step Transitions - BEGIN - -- Update all transitions in the list to point to @newItemID - Update TT - Set TT.ToID = CASE TT.ToID WHEN @NextID THEN @NewItemID ELSE TT.ToID END, - TT.RangeID = CASE TT.RangeID WHEN @NextID THEN @NewItemID ELSE TT.RangeID END - From TRANSITIONS TT - JOIN @NextStepTransitions NS ON NS.TransitionID = TT.TransitionID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,NS.TransitionID,NS.TranType,NS.ToID,NS.RangeID,@NextID,@NewItemID) - From CONTENTS CC - JOIN @NextStepTransitions NS ON NS.FromID = CC.ContentID - END - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Next Step Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@newItemID) OR RangeID IN(@newItemID)) - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@NextID) OR RangeID IN(@NextID)) - -- Transition Text gets updated in ItemInsertExt.cs - -delete from itemaudits where itemid in (select itemid from vefn_ChildItems(@newitemid)) -delete from contentaudits where contentid in (select contentid from vefn_ChildItems(@newitemid)) - IF( @@TRANCOUNT > 0 ) COMMIT - EXECUTE GetItem @NewItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteItemSiblingAfter Succeeded' -ELSE PRINT 'Procedure Creation: PasteItemSiblingAfter Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemSiblingBefore]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [PasteItemSiblingBefore]; -GO -/****** Object: StoredProcedure [dbo].[PasteItemSiblingBefore] Script Date: 03/21/2012 15:26:23 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[PasteItemSiblingBefore] -( - @ItemID int=null, @StartItemID int=null, - @Type int=null, @DTS datetime, @UserID nvarchar(100), - @NewItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - if exists (select * from tblitems where itemid = @ItemID and DeleteStatus !=0) - BEGIN - RAISERROR ('###Cannot Paste Step###This current step has been deleted in another session',16,1) - RETURN - END - -- First make a copy of the input CopyStartID - -- DestFormatID is the formatid for the destination parent's format - DECLARE @DestFormatID int - SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - -- First adjust previous fields, may also have to do parts, if before first one in list. - DECLARE @PreviousID int, @ContentID int, @newLastChanged timestamp, @NewType int - SELECT @PreviousID = [PreviousID], @NewType=ISNULL(@Type,[Type]) - FROM [ITEMS] II - JOIN [CONTENTS] CC ON CC.[ContentID]=II.[CONTENTID] - WHERE [ItemID]=@ItemID - UPDATE [ITEMS] SET [PreviousID]=@NewItemID where [ItemID]=@ItemID - UPDATE [ITEMS] SET [PreviousID]=@PreviousID where [ItemID]=@NewItemID - UPDATE [CONTENTS] SET [Type]=@Type - FROM [CONTENTS] CC JOIN [ITEMS] ii ON CC.[ContentID]=II.[ContentID] - WHERE [ItemID]=@NewItemID - UPDATE [PARTS] SET [ItemID]=@NewItemID where [ItemID]=@ItemID - UPDATE [DOCVERSIONS] SET [ItemID] = @NewItemID where [ItemID]=@ItemID - - IF @PreviousID is null -- The step is replacing the first step - BEGIN - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@NewItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TT.ToID = @ItemID OR TT.RangeID = @ItemID - -- Update transitions that pointed to @ItemID to point to @newItemID - Update TRANSITIONS - Set ToID = CASE ToID WHEN @ItemID THEN @NewItemID ELSE ToID END, - RangeID = CASE RangeID WHEN @ItemID THEN @NewItemID ELSE RangeID END - WHERE ToID = @ItemID OR RangeID = @ItemID - END - ELSE -- Check for Transitions that point to the Next Step - BEGIN - -- Get a list of Transitions which need to change children of @ItemID that point to @NextID - DECLARE @NextStepTransitions TABLE - ( - [TransitionID] int PRIMARY KEY, - [FromID] [int], - [ToID] [int], - [RangeID] [int], - [TranType] [int], - [Config] [nvarchar](max) - ) - Insert into @NextStepTransitions select * from vefn_NextStepTransitions(@ItemID,@PreviousID) - OPTION (MAXRECURSION 10000) - IF (SELECT COUNT(*) from @NextStepTransitions) > 0 -- Next Step Transitions - BEGIN - -- Update all transitions in the list to point to @newItemID - Update TT - Set TT.ToID = CASE TT.ToID WHEN @ItemID THEN @NewItemID ELSE TT.ToID END, - TT.RangeID = CASE TT.RangeID WHEN @ItemID THEN @NewItemID ELSE TT.RangeID END - From TRANSITIONS TT - JOIN @NextStepTransitions NS ON NS.TransitionID = TT.TransitionID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,NS.TransitionID,NS.TranType,NS.ToID,NS.RangeID,@ItemID,@NewItemID) - From CONTENTS CC - JOIN @NextStepTransitions NS ON NS.FromID = CC.ContentID - END - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@ItemID,@NewItemID) OR RangeID IN(@ItemID,@NewItemID)) - -- Transition Text gets updated in ItemInsertExt.cs -delete from itemaudits where itemid in (select itemid from vefn_ChildItems(@newitemid)) -delete from contentaudits where contentid in (select contentid from vefn_ChildItems(@newitemid)) - IF( @@TRANCOUNT > 0 ) COMMIT - EXECUTE GetItem @NewItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteItemSiblingBefore Succeeded' -ELSE PRINT 'Procedure Creation: PasteItemSiblingBefore Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetMyChronology]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetMyChronology]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetMyChronology] Script Date: 11/07/2012 18:09:17 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetMyChronology](@ProcItemID int, @ItemID int, @IncludeDeletedChildren int, @DTS datetime) -RETURNS @Chrono TABLE -( -[AuditID] bigint, -[ContentID] int, -[Number] nvarchar(max), -[Text] nvarchar(max), -[Type] int, -[FormatID] int, -[Config] nvarchar(max), -[DTS] datetime, -[UserID] nvarchar(max), -[DeleteStatus] int, -[ActionDTS] datetime, -[ActionWhat] nvarchar(max), -[ActionWhen] datetime, -[Path] nvarchar(max), -ItemID int, -TypeName nvarchar(max), -ordinalpath nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -insert into @Chrono -select distinct [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath - from - ( - select - case - when lastauditid is null then 'Added' - when r.deletestatus > 0 then 'Deleted' - when lastauditid = -1 then 'Changed' - when DeletedAuditID is not null then 'Restored' --- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' - else 'Changed' - end actionwhat -,actiondts actionwhen --- ,case --- when lastauditid is null then dts --- when r.deletestatus > 0 then ActionDTS --- when lastauditid = -1 then dts --- when DeletedAuditID is not null then ActionDTS --- else dts --- end actionwhen -,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName - ,* - from vefn_tblchilditems (@ProcItemID,@ItemID,@IncludeDeletedChildren) t - inner join vefn_chronologyreport(@ProcItemID,@DTS) r - on t.icontentid = r.contentid --- where ActionDTS > procdts or dts > procdts - ) ah - order by OrdinalPath, contentid,auditid--actionwhen - RETURN -END -go -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetMyChronology] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetMyChronology] Error on Creation' -go - -/****** Object: StoredProcedure [dbo].[getContentAuditsChronologyByItemID] Script Date: 03/21/2012 15:58:26 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsChronologyByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [getContentAuditsChronologyByItemID]; -GO -/****** Object: StoredProcedure [getContentAuditsChronologyByItemID] ******/ -/* -getContentAuditsChronologyByItemID 10154,10154,0 -getContentAuditsChronologyByItemID 42,42,0 -getContentAuditsChronologyByItemID 9,9,0 -getContentAuditsChronologyByItemID 146,146,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsChronologyByItemID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin - select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) --- select distinct [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end -go --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [getContentAuditsChronologyByItemID] Succeeded' -ELSE PRINT 'StoredProcedure [getContentAuditsChronologyByItemID] Error on Creation' -go - -/****** Object: StoredProcedure [getContentAuditsSummaryByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsSummaryByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsSummaryByItemID]; -GO - -/****** Object: StoredProcedure [getContentAuditsSummaryByItemID] ******/ -/* -getContentAuditsSummaryByItemID 146,146,0 -getContentAuditsSummaryByItemID 42,42,0 -getContentAuditsSummaryByItemID 9,9,0 -getContentAuditsSummaryByItemID 146,146,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsSummaryByItemID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin -DECLARE @Chrono TABLE -( -[AuditID] bigint, -[ContentID] int, -[Number] nvarchar(max), -[Text] nvarchar(max), -[Type] int, -[FormatID] int, -[Config] nvarchar(max), -[DTS] datetime, -[UserID] nvarchar(max), -[DeleteStatus] int, -[ActionDTS] datetime, -[ActionWhat] nvarchar(max), -[ActionWhen] datetime, -[Path] nvarchar(max), -ItemID int, -TypeName nvarchar(max), -ordinalpath nvarchar(max) -) -insert into @Chrono -select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) -select * from @Chrono -where AuditID is null OR AuditID in (select min(auditID) from @Chrono group by contentid UNION select max(auditID) from @Chrono group by contentid) -order by OrdinalPath, contentid,auditid ---select z.* from ---( ---select contentid,min(auditid) auditid from ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) x ---group by contentid ---) y ---inner join ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) z on y.contentid = z.contentid and y.auditid = z.auditid ---union ---select z.* from ---( ---select contentid,max(auditid) auditid from ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) x ---group by contentid ---) y ---inner join ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) z on y.contentid = z.contentid and y.auditid = z.auditid --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsSummaryByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsSummaryByItemID Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixSearchString]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixSearchString]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_FixSearchString] Script Date: 03/26/2012 09:31:13 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -select ID,ss,.dbo.vefn_FixSearchString(ss) -from ( -select 1 ID,'*' ss union -select 2 ID,'50%' ss union -select 3 ID,'IF*' ss union -select 4 ID,'*then:' ss union -select 5 ID,'530`F' ss union -select 6 ID,'check' ss union -select 7 ID,'RCP*Cooling' ss union -select 8 ID,'14%[34%]' ss union -select 9 ID,'\*' ss union -select 10 ID,'\?' ss union -select 11 ID,'_' ss union -select 12 ID,'[' ss union -select 13 ID,']' ss union -select 14 ID,'%' ss union -select 15 ID,'_' ss union -select 16 ID,'-' ss union -select 17 ID,'%' ss union -select 18 ID,'C* - *' ss union -select 19 ID,'' ss union -select 20 ID,null ss -) tt order by ID -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FixSearchString](@SearchString nvarchar(MAX)) -RETURNS nvarchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN - -- This code adds % at the beginning and end if the beginning and end - -- of the search string if it does not have % at the beginning or end - Set @SearchString = replace(@SearchString,'[','[[]') - Set @SearchString = replace(@SearchString,'_','[_]') - Set @SearchString = replace(@SearchString,'%','[%]') - Set @SearchString = replace(@SearchString,'*','%') - Set @SearchString = replace(@SearchString,'?','_') - Set @SearchString = replace(@SearchString,'\%','*') - Set @SearchString = replace(@SearchString,'\_','?') - Set @SearchString = replace(@SearchString,'-','\u8209?') - Set @SearchString = replace(@SearchString,'\''A9','\u169?') -- copyright symbol - Set @SearchString = replace(@SearchString,'\''AE','\u174?') -- Register symbol - Set @SearchString = replace(@SearchString,'\\line ','\line ') -- newline - Set @SearchString = replace(@SearchString,'\\','\u9586?') -- use a double backslash to search for a backslash - IF(@SearchString like '[%]%') RETURN @SearchString - IF(@SearchString like '%[%]') RETURN @SearchString - Set @SearchString = replace('%' + @SearchString + '%','%%','%') - RETURN @SearchString -END -GO --- Display the status -IF (@@Error = 0) PRINT 'ScalerFunction [vefn_FixSearchString] Succeeded' -ELSE PRINT 'ScalerFunction [vefn_FixSearchString] Error on Creation' -go - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[restoreDeletedItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [restoreDeletedItem]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -restoreDeletedItem 10133,1,10130,2 -select dbo.ve_GetPartContentID(10133) -select dbo.ve_GetPartFromType(10133) -select itemid from parts where contentid = 10126 and fromtype = 6 -SELECT ItemID FROM PartAudits WHERE DeleteStatus = 1 - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[restoreDeletedItem] -( - @ItemID int, - @DeleteID int, - @CurrentID int, - @Level int -) - -WITH EXECUTE AS OWNER -AS - DECLARE @PreviousID int - declare @oldPreviousID int - DECLARE @NextID int - DECLARE @ContentID int - declare @fromtype int - IF @Level = 0 BEGIN - SET @NextID = @CurrentID - SELECT @PreviousID = PreviousID FROM Items WHERE ItemID = @CurrentID - END - IF @Level = 1 BEGIN - SELECT @NextID = ItemID FROM Items WHERE PreviousID = @CurrentID - SET @PreviousID = @CurrentID - END - SELECT @ContentID = dbo.[ve_GetPartContentID](@ItemID) - select @fromtype = dbo.[ve_GetPartFromType](@ItemID) - select @oldPreviousID = isnull(PreviousID,0) from tblItems where ItemID = @ItemID - if @level = 2 begin - select @NextID = itemid from parts where contentid = @contentid and fromtype = @fromtype - end - --restore parts from step being restored - UPDATE tblParts SET DeleteStatus = 0 WHERE ItemID IN (SELECT ItemID FROM PartAudits WHERE DeleteStatus = @DeleteID) ---print 'oldpreviousid: ' + cast(@oldpreviousid as varchar(10)) ---print 'currentid: ' + cast(@currentid as varchar(10)) - --restore of children in different order - if(@oldPreviousID != @CurrentID and @Level = 2) begin - update tblparts set deletestatus = 0, itemid = @itemid where contentid = @contentid and fromtype = @fromtype ---print 'special code' - end - UPDATE tblContents SET DeleteStatus = 0, ActionDTS = getdate() WHERE ContentID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblItems SET DeleteStatus = 0,PreviousID = CASE WHEN ItemID = @ItemID THEN @PreviousID ELSE PreviousID END - WHERE ItemID IN (SELECT ItemID FROM ItemAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblGrids SET DeleteStatus = 0 WHERE ContentID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblImages SET DeleteStatus = 0 WHERE ContentID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblEntries SET DeleteStatus = 0 WHERE DocID IN (SELECT DocID FROM EntryAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblAnnotations SET DeleteStatus = 0, ActionDTS = getdate() WHERE deletestatus = @deleteid -- ItemID in (SELECT ItemID FROM ItemAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblROUsages SET DeleteStatus = 0 WHERE deletestatus = @deleteid --ContentID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblTransitions SET DeleteStatus = 0 WHERE deletestatus = @deleteid --FromID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - IF @NextID IS NOT NULL BEGIN - UPDATE Items SET PreviousID = @ItemID WHERE ItemID = @NextID - UPDATE DocVersions SET ItemID = @ItemID WHERE ItemID = @NextID - IF @ContentID IS NOT NULL BEGIN - UPDATE Parts SET ItemID = @ItemID WHERE ItemID = @NextID and ContentID = @ContentID ---print 'old code' - END - END ---else --- begin ---update parts set itemid = @itemid where contentid = @contentid and fromtype = @fromtype --- end -RETURN -go --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: restoreDeletedItem Succeeded' -ELSE PRINT 'Procedure Creation: restoreDeletedItem Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_GetLastDelim] Script Date: 03/28/2012 17:58:48 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetLastDelim]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetLastDelim]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select .dbo.vefn_GetLastDelim(bozo) delim,bozo -from -( -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using Backfill' bozo union -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using BackfillProcedure Steps' bozo union -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using BackfillProcedure Steps1' bozo union -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using BackfillProcedure Steps1.1' bozo union -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using BackfillProcedure Steps1.1.RNO..1' bozo union -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using BackfillProcedure Steps1.1.RNO..1.3' bozo -) ah -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetLastDelim](@SearchString nvarchar(MAX)) -RETURNS nvarchar(1) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @patstr nvarchar(7) - set @patstr = '%[' + char(7) + char(17) + '.]%' - declare @patidx bigint - set @patidx = patindex(@patstr,Reverse(@SearchString)) - if @patidx = 0 return ' ' - return substring(@SearchString,1 + len(@SearchString) - @patidx,1) -END -GO -IF (@@Error = 0) PRINT 'ScalerFunction [vefn_GetLastDelim] Succeeded' -ELSE PRINT 'ScalerFunction [vefn_GetLastDelim] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_tblChildItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_tblChildItems]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_tblChildItems] Script Date: 03/28/2012 17:43:20 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -declare @PreviousID as int -declare @ItemID as int -set @ItemID = 450 -select @PreviousID = PreviousID from items where ItemID = @ItemID - -Select * from Items where ItemID = @ItemID - -select * from Transitions -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -select CC.Text from Transitions TT -join contents CC on TT.FromID = CC.ContentID -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_tblChildItems](@ProcItemID int, @ItemID int, @IncludeDeletedChildren int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - IContentID int, - IDeleteStatus int, - ProcDTS datetime, - Path nvarchar(max), - OrdinalPath nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @path nvarchar(max) - declare @ppath nvarchar(max) - declare @ordinalpath nvarchar(max) - declare @pordinalpath nvarchar(max) - declare @ordinal int - declare @pitemid int - select @path = path,@ordinalpath = ordinalpath,@ordinal = ordinal,@pitemid = parentid from vefn_ProcedureByProcID(@ProcItemID) where itemid = @ItemID - if @pitemid = 0 begin - set @pordinalpath = '' - set @ppath = '' - end - else begin - select @ppath = path,@pordinalpath = ordinalpath from vefn_ProcedureByProcID(@ProcItemID) where itemid = @pitemID - end - declare @procdts datetime - select @procdts = dts from items where itemid = @ProcItemID - Declare @Delim char(1) - Set @Delim=char(7) - Declare @DelimNumber char(1) - Set @DelimNumber=char(17) - Declare @DelimStep char(1) - Set @DelimStep='.' - begin - with Itemz([Level], [ItemID], [ContentID], DeleteStatus, ProcDTS, PPath, [Path], [POrdinalPath], [OrdinalPath], [FromType], [Ordinal]) as ( - Select 0 [Level], [ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - @ppath [PPath], - @path [Path], - @pordinalpath [POrdinalPath], - @ordinalpath [OrdinalPath], - 0 [FromType],@ordinal [Ordinal] - FROM [tblItems] I - --inner join tblContents C on C.ContentID=I.ContentID - where I.[ItemID]=@ItemID - Union All - -- Children - select [Level] + 1, I.[ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - when 8 then @DelimStep + 'SupInfo' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(4)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(4)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(4)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(4)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - when 8 then @DelimStep +'SupInfo' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + - case when I.deletestatus != 0 then 'Old ' else '' end + cast(1 as varchar(4)) - end end Path, - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-00001', - P.[FromType],0 - from Itemz Z - join tblParts P on P.ContentID = Z.ContentID - join tblItems I on I.ItemID = P.ItemID - inner join tblContents C on C.ContentID=I.ContentID - where @IncludeDeletedChildren = 1 or z.DeleteStatus = 0 - Union All - -- Children2 - select [Level] + 1, I.[ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - when 8 then @DelimStep + 'SupInfo' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(4)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(4)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(4)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(4)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - when 8 then @DelimStep +'SupInfo' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + - case when I.deletestatus != 0 then 'Old ' else '' end + cast(1 as varchar(4)) - end end Path, - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-00001', - P.[FromType],0 - from Itemz Z - join PartAudits P on P.ContentID = Z.ContentID - join tblItems I on I.ItemID = P.ItemID and i.PreviousID is null - inner join tblContents C on C.ContentID=I.ContentID - where @IncludeDeletedChildren = 1 or z.DeleteStatus >= 0 - -- Siblings - Union All - select [Level] , I.[ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + - case when I.deletestatus != 0 then 'Old ' else '' end + cast(Ordinal + 2 as varchar(4)) - end Path, - POrdinalPath, - POrdinalPath + right('00000' + cast(Z.[Ordinal] + 2 as varchar(5)), 5), - FromType,Z.[Ordinal] +1 - from Itemz Z - join tblItems I on I.PreviousID = Z.ItemID - inner join tblContents C on C.ContentID=I.ContentID - where Z.[Level] > 0 - ) - insert into @Children select distinct ItemID, ContentID, DeleteStatus, ProcDTS, Path, OrdinalPath from Itemz - OPTION (MAXRECURSION 10000) - END - RETURN -end -go -IF (@@Error = 0) PRINT 'TableFunction [vefn_tblChildItems] Succeeded' -ELSE PRINT 'TableFunction [vefn_tblChildItems] Error on Creation' -go - -/****** Object: StoredProcedure [dbo].[getAnnotationAuditsChronologyByItemID] Script Date: 04/02/2012 15:57:32 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationAuditsChronologyByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [getAnnotationAuditsChronologyByItemID]; -GO -/****** Object: StoredProcedure [getAnnotationAuditsChronologyByItemID] ******/ -/* -getAnnotationAuditsChronologyByItemID 13,13 -getAnnotationAuditsChronologyByItemID 30,8570 -getAnnotationAuditsChronologyByItemID 30,8513 -getAnnotationAuditsChronologyByItemID 30,8505 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE procedure [dbo].[getAnnotationAuditsChronologyByItemID] -( - @ProcItemID int, - @ItemID int, - @DTS datetime -) -WITH EXECUTE AS OWNER -AS -begin --- declare @dts datetime --- set @dts = (select dts from items where itemid = @procitemid) - declare @tci table - ( - ItemID int, - IContentID int, - IDeleteStatus int, - ProcDTS datetime, - Path nvarchar(max), - OrdinalPath nvarchar(max) - ) - insert into @tci - select * from vefn_tblchilditems(@ProcItemID,@ItemID,0) - select - case - when lastauditid is null and dts > itemdts then 'Added' - when deletestatus > 0 then 'Deleted' - when lastauditid = deletedauditid then 'Restored' - else 'Changed' - end ActionWhat - ,case - when lastauditid is null and dts > itemdts then dts - when deletestatus > 0 then ActionDTS - when lastauditid = deletedauditid then ActionDTS - else dts - end ActionWhen - ,* - from - ( - select - cast(ident_current('annotationaudits') + 1 as bigint) auditid - -- (select max(auditid) + 1 from annotationaudits) auditid - -- 0 auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,0 deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from tblannotations aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - where aa.deletestatus = 0 - union - select - aa.auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,aa.deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid ) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from annotationaudits aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - ) ah - where itemid in (select itemid from @tci) - and dts > @dts - --(select dts from versions where versionid = (select max(versionid) from revisions rr inner join versions vv on rr.revisionid = vv.revisionid - --inner join stages ss on vv.stageid = ss.stageid where itemid = @procitemid and ss.isapproved = 1)) - order by ordinalpath,annotationid,auditid--actionwhen -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationAuditsChronologyByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationAuditsChronologyByItemID Error on Creation' -GO - - - - - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[ve_GetFolderPath]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [dbo].[ve_GetFolderPath]; - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -========================================================================================================== - Author: Rich Mark - Create Date: 01/01/2012 - Description: Returns the Folder Path for a specified Document Version using recursion - 08/20/2021 Jake Ropar: Reformatted and added With Execute as Owner statement - - Parameters: @VersionID Document Version ID - - Examples: Select VersionID,Name,dbo.ve_GetFolderPath(VersionID) from DocVersions order by VersionID; -========================================================================================================== - */ -Create Function [dbo].[ve_GetFolderPath] (@VersionID int) -Returns VarChar(Max) -With Execute as Owner -as -Begin - - Declare @Path VarChar(Max); - - With zFolders ([Level], FolderID, [Path]) - as ( - - Select 1 as 'Level', - dv.FolderID as 'FolderID', - Cast(dv.[Name] as VarChar(Max)) as 'Path' - From DocVersions dv with (NoLock) - Where dv.VersionID = @VersionID - - Union All - - Select f.ParentID - (Select ParentID from Folders where FolderID = f.ParentID) as 'Level', - f.ParentID as 'FolderID', - Cast(f.[Name] + char(7) + zf.[Path] as VarChar(Max)) as 'Path' - From Folders f with (NoLock) - inner join zFolders zf on f.FolderID = zf.FolderID - Where f.FolderID <> f.ParentID - - ) - Select @Path = zf.[Path] - From zFolders zf - Where zf.[Level] = 0; - - return @Path; - -End -Go - - -IF (@@Error = 0) PRINT 'Function: [vefn_GetUnitPrefix] Succeeded' -ELSE PRINT 'Function: [vefn_GetUnitPrefix] Error on Creation' -GO - - - - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[vefn_GetUnitPrefix]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [dbo].[vefn_GetUnitPrefix]; -GO - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -========================================================================================================== - Author: Rich Mark - Create Date: 01/01/2012 - Description: Returns the Unit Prefix from the specified Xml Configuration Data - 08/20/2021 Jake Ropar: Reformatted and added With Execute as Owner statement - - Parameters: @Config Xml Configuration Data - - Examples: Select 'DocVersions' Type, VersionID, Config, .dbo.vefn_GetUnitPrefix(config) UnitPrefix from DocVersions - UNION select 'Blank' Type, 0 VersionID, '' Config, .dbo.vefn_GetUnitPrefix('') UnitPrefix - UNION select 'Null' Type, 0 VersionID, null Config, .dbo.vefn_GetUnitPrefix(null) UnitPrefix - UNION select 'XML with' Type, 0 VersionID, '' Config, .dbo.vefn_GetUnitPrefix('') UnitPrefix - UNION select 'XML without' Type, 0 VersionID, '' Config, .dbo.vefn_GetUnitPrefix('') UnitPrefix - UNION select 'XML empty' Type, 0 VersionID, '' Config, .dbo.vefn_GetUnitPrefix('') UnitPrefix -========================================================================================================== - */ -Create Function [dbo].[vefn_GetUnitPrefix](@Config varchar(MAX)) -Returns VarChar(Max) -With Execute as Owner -as -Begin - - Declare @Xml xml; - Declare @UnitPrefix VarChar(Max); - - Set @Xml = Cast(@Config as xml) - - Set @UnitPrefix = (Select Replace(v.value('@ProcedureNumber', 'nvarchar(100)'),'#','') as 'UnitPrefix' From @XML.nodes('//Unit') as tmpXml(v)) - - Return IsNull(@UnitPrefix,''); - -End -Go - -IF (@@Error = 0) PRINT 'Function: [vefn_GetUnitPrefix] Succeeded' -ELSE PRINT 'Function: [vefn_GetUnitPrefix] Error on Creation' -GO - - - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[vefn_DocVersionSplit]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [dbo].[vefn_DocVersionSplit]; - -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -========================================================================================================== - Author: Rich Mark - Create Date: 01/01/2012 - Description: Returns a table of document version info from a comma delimited list of specified document version IDs - 08/20/2021 Jake Ropar: Add with (NoLock) statements to prevent table locking - - Parameters: @DocVersionList Comma delimited list of document version IDs (pass '' or null to retrieve all versions) - - Examples: select * from vefn_DocVersionSplit('1,4'); - select * from vefn_DocVersionSplit(null); - select * from vefn_DocVersionSplit(''); -========================================================================================================== - */ -Create Function [dbo].[vefn_DocVersionSplit](@DocVersionList varchar(MAX)) -Returns @IDs Table -( - VersionID Int Primary Key, - ItemID Int, - DVPath VarChar(Max), - UnitPrefix VarChar(MAX) -) -With Execute as Owner -as -Begin - - If(IsNull(@DocVersionList,'') = '') - Insert into @IDs - Select dv.VersionID, dv.ItemID, dbo.ve_GetFolderPath(dv.VersionID), dbo.vefn_GetUnitPrefix(dv.Config) - From DocVersions dv with (NoLock) Where dv.ItemID is not null; - Else - Insert into @IDs - Select t.ID, dv.ItemID, dbo.ve_GetFolderPath(dv.VersionID), .dbo.vefn_GetUnitPrefix(dv.config) - From dbo.vefn_SplitInt(@DocVersionList,',') as t - inner join DocVersions dv with (NoLock) on dv.VersionID = t.ID; - - Return; - -End -Go - -IF (@@Error = 0) PRINT 'Function: [vefn_DocVersionSplit] Succeeded' -ELSE PRINT 'Function: [vefn_DocVersionSplit] Error on Creation' -GO - - - - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[vefn_SiblingAndChildrenItemsNewByWord]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [dbo].[vefn_SiblingAndChildrenItemsNewByWord]; -GO - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -========================================================================================================== - Author: Rich Mark - Create Date: 01/01/2021 - Description: Returns all items mathcing the specified search critera, filtered by a list of specified document versions - 08/20/2021 Jake Ropar: Add with (NoLock) and Option (Recompile) statements to eliminate UI locking and improve performace - - Parameters: @DocVersionList Comma delimited list of document version IDs used to filter search results (pass '' or null to include all versions) - @UnitPrefix The unit prefix to use when building the item path - @SearchString Search string criteria - @SearchStringx Alternate search string criteria - @StepTypeList Comma delimited list of of step types used to filter search results (pass '' or null to include all step type sections) - - Examples: select Text from vefn_SiblingAndChildrenItemsNewByWord('194','','%[^a-z]red[^a-z]%', '%[^a-z]red[^a-z]%',''); - select Text from vefn_SiblingAndChildrenItemsNewByWord('194','','%[^a-zA-Z]step 25[^0-9a-zA-Z.vbpi:\\-]%','%[^a-zA-Z]step 25[^0-9a-zA-Z.vbpi:\\-]%',''); -========================================================================================================== - */ -Create Function [dbo].[vefn_SiblingAndChildrenItemsNewByWord](@DocVersionList VarChar(Max), @UnitPrefix VarChar(Max), @SearchString VarChar(Max), - @SearchStringx VarChar(Max), @StepTypeList VarChar(Max), - @includeLinks int, @includeRtfFormatting int , @includeSpecialCharacters int) -Returns @SiblingAndChildren Table -( - ILastChanged VarBinary(8), - ItemID int Primary Key, - DVPath nVarChar(Max), - [Path] nVarChar(Max), - FromType Int, - Ordinal Int, - ParentID Int, - PreviousID Int, - ContentID Int, - DTS DateTime, - UserID nVarChar(100), - pContentID Int, - pDTS DateTime, - pUserID nVarChar(100), - IsRNO Int, - [Text] nVarChar(Max), - DocAscii nVarChar(Max), - Number nVarChar(256), - CType Int, - CFormatID Int, - CConfig nVarChar(Max), - CDTS DateTime, - CUserID nVarChar(100), - CLastChanged VarBinary(8), - PLastChanged VarBinary(8) -) -With Execute as Owner -as -Begin - - -- Declare Local Variables - Declare @Delim Char(1); - Declare @DelimNumber Char(1); - Declare @DelimStep Char(1); - declare @TextPrefix nVarChar(1); - declare @TextSuffix nVarChar(1); - - -- Set Default Values - Set @Delim = Char(7); - Set @DelimNumber = Char(17); - Set @DelimStep = '.'; - Set @TextPrefix = ''; - Set @TextSuffix = ''; - - -- Check Input Parameters - If (@SearchString Like '[%]%') Set @TextPrefix = '~'; - if (@SearchString Like '%[%]') Set @TextSuffix = '~'; - - - With zItems (ILastChanged, ItemID, VersionID, [Path], FromType, Ordinal, ParentID, PreviousID, ContentID, DTS, UserID, pContentID, - pDTS, pUserID, IsRNO, [Text], Number, PPath, CType, CFormatID, CConfig, CDTS, CUserID, CLastChanged, PLastChanged) - as ( - - -- Parent Records - Select Cast(i.LastChanged as varbinary(8)) as 'ILastChanged', - i.ItemID as 'ItemID', - dv.VersionID as 'VersionID', - Cast((Case When (c.[Type] < 20000) Then @Delim + @UnitPrefix + IsNull(c.Number,'') + @DelimNumber + IsNull(c.[Text],'') Else '1' End) as nVarChar(Max)) as 'Path', - 0 as 'FromType', - 0 as 'Ordinal', - 0 as 'ParentID', - i.PreviousID as 'PreviousID', - i.ContentID as 'ContentID', - i.DTS as 'DTS', - i.UserID as 'UserID', - 0 as 'pContentID', - i.DTS as 'pDTS', - i.UserID as 'pUserID', - 0 as 'IsRNO', - c.[Text] as 'Text', - c.Number as 'Number', - Cast('' as nVarChar(Max)) as 'PPath', - c.Type as 'CType', - c.FormatID as 'CFormatID', - c.Config as 'CConfig', - c.DTS as 'CDTS', - c.UserID as 'CUserID', - Cast(c.LastChanged as VarBinary(8)) as 'CLastChanged', - Cast(0 as VarBinary(8)) as 'PLastChanged' - From Items i with (NoLock) - join Contents c with (NoLock) on c.ContentID = i.ContentID - join dbo.vefn_DocVersionSplit(@DocVersionList) dv on i.ItemID = dv.ItemID - - Union All - - -- Children Records - Select Cast(i.LastChanged as varbinary(8)) as 'ILastChanged', - i.ItemID as 'ItemID', - zi.VersionID as 'VersionID', - zi.Path + - Case (c.[Type]/10000) - When 0 Then @Delim + @UnitPrefix + IsNull(c.Number,'') + @DelimNumber + IsNull(c.Text,'') -- Procedure - When 1 Then @Delim + IsNull(c.Number,'') + @DelimNumber + IsNull(c.Text,'') -- Section - Else Case (p.FromType) - When 3 Then @DelimStep +'Caution' + @DelimStep + Cast(1 as varchar(4)) - When 4 Then @DelimStep +'Note' + @DelimStep + Cast(1 as varchar(4)) - When 5 Then @DelimStep +'RNO' + @DelimStep - When 7 Then @DelimStep +'Table' + @DelimStep + Cast(1 as varchar(4)) - When 8 Then @DelimStep +'SupInfo' + @DelimStep - Else Case When (zi.FromType < 3) Then @Delim Else @DelimStep End + Cast(1 as varchar(4)) - End - End as 'Path', - p.FromType as 'FromType', - 0 as 'Ordinal', - zi.ItemID as 'ParentID', - i.PreviousID as 'PreviousID', - i.ContentID as 'ContentID', - i.DTS as 'DTS', - i.UserID as 'UserID', - p.ContentID as 'pContentID', - p.DTS as 'pDTS', - p.UserID as 'pUserID', - Case When (p.FromType = 5) Then -1 Else 0 End as 'IsRNO', - c.Text as 'Text', - c.Number as 'Number', - zi.Path + - Case (c.[Type]/10000) - When 2 Then Case(p.FromType) - When 3 Then @DelimStep + 'Caution' - When 4 Then @DelimStep + 'Note' - When 8 Then @DelimStep + 'SupInfo' - Else '' End - Else '' - End as 'PPath', - c.[Type] as 'CType', - c.FormatID as 'CFormatID', - c.Config as 'CConfig', - c.DTS as 'CDTS', - c.UserID as 'CUserID', - Cast(c.LastChanged as varbinary(8)) as 'CLastChanged', - Cast(p.LastChanged as varbinary(8)) as 'PLastChanged' - From zItems zi - join Parts p with (NoLock) on p.ContentID = zi.ContentID - join Items i with (NoLock) on i.ItemID = p.ItemID - join Contents c with (NoLock) on c.ContentID = i.ContentID - - Union All - - -- Sibling Records - Select Cast(i.LastChanged as varbinary(8)) as 'ILastChanged', - i.ItemID as 'ItemID', - zi.VersionID as 'VersionID', - zi.PPath + - Case (c.[Type]/10000) - When 0 Then @Delim + @UnitPrefix + IsNull(c.Number,'') + @DelimNumber + IsNull(c.Text,'') -- Procedure - When 1 Then @Delim + IsNull(c.Number,'') + @DelimNumber + IsNull(c.Text,'') -- Section - Else Case When (dbo.vefn_GetLastDelim(zi.Path) = '.') Then @DelimStep Else @Delim End + Cast(zi.Ordinal + 2 as varchar(4)) - End as 'Path', - zi.FromType as 'FromType', - zi.Ordinal + 1 as 'Ordinal', - zi.ParentID as 'ParentID', - i.PreviousID as 'PreviousID', - i.ContentID as 'ContentID', - i.DTS as 'DTS', - i.UserID as 'UserID', - Null as 'pContentID', - Null as 'pDTS', - Null as 'pUserID', - 0 as 'IsRNO', - c.[text] as 'Text', - c.Number as 'Number', - zi.PPath as 'PPath', - c.[Type] as 'CType', - c.FormatID as 'CFormatID', - c.Config as 'CConfig', - c.DTS as 'CDTS', - c.UserID as 'CUserID', - Cast(c.LastChanged as varbinary(8)) as 'CLastChanged', - Cast(0 as varbinary(8)) as 'PLastChanged' - From zItems zi - join Items i with (NoLock) on i.PreviousID = zi.ItemID - join Contents c with (NoLock) on c.ContentID = i.ContentID - - ) - Insert Into @SiblingAndChildren - Select zi.ILastChanged, - zi.ItemID, - dv.DVPath, - zi.Path, - zi.FromType, - zi.Ordinal, - zi.ParentID, - zi.PreviousID, - zi.ContentID, - zi.DTS, - zi.UserID, - zi.pContentID, - zi.pDTS, - zi.pUserID, - zi.IsRNO, - zi.Text, - d.DocAscii, - zi.Number, - zi.CType, - zi.CFormatID, - zi.CConfig, - zi.DTS, - zi.CUserID, - zi.CLastChanged, - zi.PLastChanged - From zItems zi - join dbo.vefn_DocVersionSplit(@DocVersionList) dv on dv.VersionID = zi.VersionID - left join Entries e with (NoLock) on e.ContentID = zi.ContentID - left join Documents d with (NoLock) on d.DocID = e.DocID - -- B2022-082: use the vefn_RemoveExtraText to get rid of rtf commands before comparing text - Where (dbo.vefn_RemoveExtraText(@TextPrefix + zi.[Text] + @TextSuffix, @includeLinks, @includeRtfFormatting, @includeSpecialCharacters) - like @SearchString Or Replace(d.DocAscii, nChar(176), '\''B0') like @SearchString - Or dbo.vefn_RemoveExtraText(@TextPrefix + zi.[Text] + @TextSuffix, @includeLinks, @includeRtfFormatting, @includeSpecialCharacters) - like @SearchStringx Or Replace(d.DocAscii, nChar(176), '\''B0') like @SearchStringx) - And (IsNull(@StepTypeList,'') = '' or (dbo.vefn_AllSections(zi.CType) in (Select ID from dbo.vefn_SplitInt(@StepTypeList,',')))) - Option (Recompile, MaxRecursion 10000); - - Return; -End -Go - -IF (@@Error = 0) PRINT 'Function: vefn_SiblingAndChildrenItems Succeeded' -ELSE PRINT 'Function: vefn_SiblingAndChildrenItems Error on Creation' -GO - - - - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[FindAnnotations]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [FindAnnotations]; - -/****** Object: UserDefinedFunction [dbo].[FindAnnotations] Script Date: 09/28/2012 11:06:59 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select * from [FindAnnotations]('12','',0,'') -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[FindAnnotations](@AnnotationTypeList varchar(MAX), @SearchString varchar(MAX), @CaseSensitive int, @StepTypeList varchar(MAX)) -RETURNS @Results TABLE -( - AnnotationID int Primary Key -) -WITH EXECUTE AS OWNER -BEGIN - insert into @Results - select Distinct A.AnnotationID from Items I - join Contents C on I.ContentID = C.ContentID - left Join Parts P on P.ItemID = I.ItemID - join Annotations A on A.ItemID = I.ItemID - join vefn_AnnotationTypeSplit(@AnnotationTypeList) TT on TT.TypeID=A.TypeID -where - (isnull(@SearchString,'')='' - OR (@CaseSensitive = 1 AND A.SearchText like @SearchString Collate SQL_Latin1_General_CP1_CS_AS) - OR (@CaseSensitive = 0 AND A.SearchText like @SearchString Collate SQL_Latin1_General_CP1_CI_AS)) - AND - ((isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - or - (@StepTypeList like '%20040%' AND isnull(P.FromType,0) = 5))) - - RETURN -END -GO -IF (@@Error = 0) PRINT 'Function: FindAnnotations Succeeded' -ELSE PRINT 'Function: FindAnnotations Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchAnnotationItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [vesp_SearchAnnotationItemAndChildren]; -GO -/* -exec vesp_SearchAnnotationItemAndChildren Null,Null,'1',Null,0,"3-" -exec vesp_SearchAnnotationItemAndChildren Null,Null,'2',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'3',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'4',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'5',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'',Null,0 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchAnnotationItemAndChildren] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), @AnnotationTypeList varchar(MAX), @SearchString nvarchar(MAX), @CaseSensitive as int, @UnitPrefix nvarchar(MAX)) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -Set @SearchString = .dbo.vefn_FixSearchString(@SearchString) -begin -with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath, UnitPrefix) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath, UnitPrefix - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - when 8 then @DelimStep + 'SupInfo' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(4)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(4)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(4)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(4)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - when 8 then @DelimStep +'SupInfo' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(4)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001', UnitPrefix - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(4)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4), UnitPrefix - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) -select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged],AnnotationID SearchAnnotationID, SearchText, TT.Name AnnotationType, - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - left join Entries E on C.ContentID = E.ContentID - left join Documents D on E.DocID = D.DocID - join Annotations A on A.ItemID = I.ItemID - join vefn_AnnotationTypeSplit(@AnnotationTypeList) TT on TT.TypeID=A.TypeID -where - A.AnnotationID in(select AnnotationID from [FindAnnotations](@AnnotationTypeList, @SearchString, @CaseSensitive, @StepTypeList)) - order by DvPath,OrdinalPath -OPTION (MAXRECURSION 10000) -END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchAnnotationItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchAnnotationItemAndChildren Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [vesp_SearchItemAndChildren]; -GO -/* -exec vesp_SearchItemAndChildren '1,2,4','20007','#Link:Transition',1,0,0,0 -exec vesp_SearchItemAndChildren '1,2,4','20007','#Link:Transition',1,1,0,0 -exec vesp_SearchItemAndChildren '1,2,4','20007','#Link:Transition',1,2,0,0 -exec vesp_SearchItemAndChildren '4','','#Link:Refer',1,2,0,0 -exec vesp_SearchItemAndChildren '4','','200`F',0,1,0,0 -exec vesp_SearchItemAndChildren '4','10000','',0,0,0,0 -exec vesp_SearchItemAndChildren '4','','[0-9]`F',0,1,0,0 -exec vesp_SearchItemAndChildren '','','RCP',0,0,0,0 -exec vesp_SearchItemAndChildren '','','%',0,0,0,0 -exec vesp_SearchItemAndChildren '','20040','',0,0,0,0 -exec vesp_SearchItemAndChildren '','10000','XYZZY',0,0,0,0 -exec vesp_SearchItemAndChildren '','10000','XYZZY',1,0,0,0 -exec vesp_SearchItemAndChildren '','','%IF%',0,0,0,0 -exec vesp_SearchItemAndChildren '','','%IF%',1,0,0,0 -exec vesp_SearchItemAndChildren '','','%47%',1,0,0,0 -exec vesp_SearchItemAndChildren '','','%47%',1,0,0,1 -exec vesp_SearchItemAndChildren '','','condenser not av',0,0,0,0 -exec vesp_SearchItemAndChildren '','','(SG OR LHSI) AND DISPATCH',2,0,0,0 -exec vesp_SearchItemAndChildren '','','DISPATCH NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildren '','','PORV NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildren '','','CHECK NORMAL',0,0,0,0 -exec vesp_SearchItemAndChildren '','','turbine-driven',0,0,0,0 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchItemAndChildren] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), -@SearchString varchar(MAX), @CaseSensitive as int, @IncludeLinks as int, @IncludeRtfFormatting as int, @IncludeSpecialCharacters as int, @UnitPrefix as varchar(MAX)) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -Set @SearchString = .dbo.vefn_FixSearchString(@SearchString) -begin -with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath, UnitPrefix) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath, UnitPrefix - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - when 8 then @DelimStep + 'SupInfo' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(4)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(4)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(4)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(4)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - when 8 then @DelimStep +'SupInfo' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(4)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001', UnitPrefix - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(4)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4), UnitPrefix - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) -select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - left join Entries E on C.ContentID = E.ContentID - left join Documents D on E.DocID = D.DocID - where - (isnull(@SearchString,'')='' - OR (@CaseSensitive = 1 AND .dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchString Collate SQL_Latin1_General_CP1_CS_AS) - OR (@CaseSensitive = 0 AND .dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchString Collate SQL_Latin1_General_CP1_CI_AS) - OR (@CaseSensitive = 1 AND Replace(D.DocAscii,nchar(176),'\''B0') like @SearchString Collate SQL_Latin1_General_CP1_CS_AS) - OR (@CaseSensitive = 0 AND Replace(D.DocAscii,nchar(176),'\''B0') like @SearchString Collate SQL_Latin1_General_CP1_CI_AS) - ) - AND - ((isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - or - (@StepTypeList like '%20040%' AND IsRNO = -1))) - order by DvPath,OrdinalPath -OPTION (MAXRECURSION 10000) -END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SearchItemAndChildrenNew] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchItemAndChildrenNew]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [vesp_SearchItemAndChildrenNew]; -GO - -/* -exec vesp_SearchItemAndChildrenNew '1,2,4','20007','#Link:Transition',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '1,2,4','20007','#Link:Transition',1,1,0,0 -exec vesp_SearchItemAndChildrenNew '1,2,4','20007','#Link:Transition',1,2,0,0 -exec vesp_SearchItemAndChildrenNew '4','','#Link:Refer',1,2,0,0 -exec vesp_SearchItemAndChildrenNew '4','','200`F',0,1,0,0 -exec vesp_SearchItemAndChildrenNew '4','10000','',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '4','','[0-9]`F',0,1,0,0 -exec vesp_SearchItemAndChildrenNew '1','','"RCP"',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','"RCP"',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','20040','',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','10000','XYZZY',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','10000','XYZZY',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%IF%',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%IF%',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%47%',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%47%',1,0,0,1 -exec vesp_SearchItemAndChildrenNew '','','condenser not av',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','(SG OR LHSI) AND DISPATCH',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','DISPATCH NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','PORV NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','CHECK NORMAL',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','(Resolved Transition Text)',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%turbine-driven%',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '37','','rcp',0,0,0,0,'3-' -- Wolf Creek sample -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2019 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchItemAndChildrenNew] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), -@SearchString varchar(MAX), @CaseSensitive as int, @IncludeLinks as int, @IncludeRtfFormatting as int, @IncludeSpecialCharacters as int, @UnitPrefix as varchar(MAX)) -WITH EXECUTE AS OWNER -AS -Set @SearchString = .dbo.vefn_FixSearchString(@SearchString) -Declare @SearchStringx nvarchar(200) --kbr -set @SearchStringx = replace(@SearchString,'\u8209?','-') --JSJ B2016-209 not finding dashes in Word sections (FixSearchString converts '-' to '\u8209?') -if (@IncludeLinks + @IncludeRtfFormatting + @IncludeSpecialCharacters = 0) -begin -if (@CaseSensitive = 0) -Begin - select ZZ.DvPath, ZZ.Path, ZZ.[FromType],ZZ.[Ordinal], ZZ.[ParentID], ZZ.[ItemID],ZZ.[PreviousID],ZZ.[ContentID],ZZ.[DTS],ZZ.[UserID] - ,ZZ.[ILastChanged] - ,ZZ.[Number],ZZ.[Text],ZZ.[CType] [Type],ZZ.[CFormatID] [FormatID],ZZ.[CConfig] [Config],ZZ.[CDTS] ,ZZ.[CUserID] - ,ZZ.[cLastChanged], - zz.[pContentID], ZZ.[pDTS],ZZ.[pUserID], ZZ.[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ZZ.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ZZ.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ZZ.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ZZ.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ZZ.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ZZ.[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=ZZ.[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=ZZ.[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=ZZ.[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=ZZ.[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=ZZ.[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=ZZ.[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=ZZ.[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=ZZ.[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=ZZ.[ContentID]) [ZContentCount] -from vefn_SiblingAndChildrenItemsNew(@DocVersionList, @UnitPrefix, @SearchString, @SearchStringx,@StepTypeList) ZZ - --Join Items II on ZZ.ItemID=II.ItemID - --Left Join Parts PP on ZZ.PContentID=PP.ContentID and ZZ.FromType = PP.FromType - --Join Contents CC on CC.ContentID=ZZ.ContentID ---where ZZ.Text like @SearchString or zz.text like @SearchStringx-- ZZ.ContentID in (select ContentID from vefn_FindText(@DocVersionList,@SearchString,@CaseSensitive,@IncludeLinks,@IncludeRtfFormatting,@IncludeSpecialCharacters,@StepTypeList)) - order by DvPath - end - else - begin - select ZZ.DvPath, ZZ.Path, ZZ.[FromType],ZZ.[Ordinal], ZZ.[ParentID], ZZ.[ItemID],ZZ.[PreviousID],ZZ.[ContentID],ZZ.[DTS],ZZ.[UserID] - ,ZZ.[ILastChanged] - ,ZZ.[Number],ZZ.[Text],ZZ.[CType] [Type],ZZ.[CFormatID] [FormatID],ZZ.[CConfig] [Config],ZZ.[CDTS] ,ZZ.[CUserID] - ,ZZ.[cLastChanged], - zz.[pContentID], ZZ.[pDTS],ZZ.[pUserID], ZZ.[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ZZ.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ZZ.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ZZ.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ZZ.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ZZ.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ZZ.[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=ZZ.[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=ZZ.[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=ZZ.[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=ZZ.[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=ZZ.[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=ZZ.[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=ZZ.[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=ZZ.[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=ZZ.[ContentID]) [ZContentCount] -from vefn_SiblingAndChildrenItemsNew(@DocVersionList, @UnitPrefix, @SearchString, @SearchStringx,@StepTypeList) ZZ - --Join Items II on ZZ.ItemID=II.ItemID - --Left Join Parts PP on ZZ.PContentID=PP.ContentID and ZZ.FromType = PP.FromType - --Join Contents CC on CC.ContentID=ZZ.ContentID ---where ZZ.Text like @SearchString or zz.text like @SearchStringx-- ZZ.ContentID in (select ContentID from vefn_FindText(@DocVersionList,@SearchString,@CaseSensitive,@IncludeLinks,@IncludeRtfFormatting,@IncludeSpecialCharacters,@StepTypeList)) -where zz.text Collate SQL_Latin1_General_CP1_CS_AS like @SearchString or -zz.text Collate SQL_Latin1_General_CP1_CS_AS like @SearchStringx or --- docascii are the word sections -Replace(zz.DocAscii,nchar(176),'\''B0') Collate SQL_Latin1_General_CP1_CS_AS like @SearchString or -Replace(zz.DocAscii,nchar(176),'\''B0') Collate SQL_Latin1_General_CP1_CS_AS like @SearchStringx - order by DvPath - end - end -- no links - else -begin -- include linked text -if (@CaseSensitive = 0) -Begin - select ZZ.DvPath, ZZ.Path, ZZ.[FromType],ZZ.[Ordinal], ZZ.[ParentID], ZZ.[ItemID],ZZ.[PreviousID],ZZ.[ContentID],ZZ.[DTS],ZZ.[UserID] - ,ZZ.[ILastChanged] - ,ZZ.[Number],ZZ.[Text],ZZ.[CType] [Type],ZZ.[CFormatID] [FormatID],ZZ.[CConfig] [Config],ZZ.[CDTS] ,ZZ.[CUserID] - ,ZZ.[cLastChanged], - zz.[pContentID], ZZ.[pDTS],ZZ.[pUserID], ZZ.[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ZZ.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ZZ.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ZZ.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ZZ.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ZZ.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ZZ.[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=ZZ.[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=ZZ.[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=ZZ.[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=ZZ.[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=ZZ.[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=ZZ.[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=ZZ.[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=ZZ.[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=ZZ.[ContentID]) [ZContentCount] -from vefn_SiblingAndChildrenItemsNew(@DocVersionList, @UnitPrefix, @SearchString, @SearchStringx,@StepTypeList) ZZ - --Join Items II on ZZ.ItemID=II.ItemID - --Left Join Parts PP on ZZ.PContentID=PP.ContentID and ZZ.FromType = PP.FromType - --Join Contents CC on CC.ContentID=ZZ.ContentID ---where ZZ.Text like @SearchString or zz.text like @SearchStringx-- ZZ.ContentID in (select ContentID from vefn_FindText(@DocVersionList,@SearchString,@CaseSensitive,@IncludeLinks,@IncludeRtfFormatting,@IncludeSpecialCharacters,@StepTypeList)) -where .dbo.vefn_RemoveExtraText(zz.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) Collate SQL_Latin1_General_CP1_CI_AS like @SearchString or -.dbo.vefn_RemoveExtraText(zz.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) Collate SQL_Latin1_General_CP1_CI_AS like @SearchStringx or --- docascii are the word sections -Replace(zz.DocAscii,nchar(176),'\''B0') Collate SQL_Latin1_General_CP1_CI_AS like @SearchString or -Replace(zz.DocAscii,nchar(176),'\''B0') Collate SQL_Latin1_General_CP1_CI_AS like @SearchStringx - order by DvPath - end - else -- case sensitive - begin - select ZZ.DvPath, ZZ.Path, ZZ.[FromType],ZZ.[Ordinal], ZZ.[ParentID], ZZ.[ItemID],ZZ.[PreviousID],ZZ.[ContentID],ZZ.[DTS],ZZ.[UserID] - ,ZZ.[ILastChanged] - ,ZZ.[Number],ZZ.[Text],ZZ.[CType] [Type],ZZ.[CFormatID] [FormatID],ZZ.[CConfig] [Config],ZZ.[CDTS] ,ZZ.[CUserID] - ,ZZ.[cLastChanged], - zz.[pContentID], ZZ.[pDTS],ZZ.[pUserID], ZZ.[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ZZ.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ZZ.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ZZ.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ZZ.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ZZ.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ZZ.[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=ZZ.[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=ZZ.[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=ZZ.[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=ZZ.[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=ZZ.[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=ZZ.[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=ZZ.[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=ZZ.[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=ZZ.[ContentID]) [ZContentCount] -from vefn_SiblingAndChildrenItemsNew(@DocVersionList, @UnitPrefix, @SearchString, @SearchStringx,@StepTypeList) ZZ - --Join Items II on ZZ.ItemID=II.ItemID - --Left Join Parts PP on ZZ.PContentID=PP.ContentID and ZZ.FromType = PP.FromType - --Join Contents CC on CC.ContentID=ZZ.ContentID ---where ZZ.Text like @SearchString or zz.text like @SearchStringx-- ZZ.ContentID in (select ContentID from vefn_FindText(@DocVersionList,@SearchString,@CaseSensitive,@IncludeLinks,@IncludeRtfFormatting,@IncludeSpecialCharacters,@StepTypeList)) --- -where .dbo.vefn_RemoveExtraText(replace(zz.Text,'\''b0', '\''B0'),@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) Collate SQL_Latin1_General_CP1_CS_AS like replace(@SearchString,'\''b0', '\''B0') or -.dbo.vefn_RemoveExtraText(replace(zz.Text,'\''b0', '\''B0'),@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) Collate SQL_Latin1_General_CP1_CS_AS like replace(@SearchStringx,'\''b0', '\''B0') or --- docascii are the word sections -Replace(zz.DocAscii,nchar(176),'\''B0') Collate SQL_Latin1_General_CP1_CS_AS like @SearchString or -Replace(zz.DocAscii,nchar(176),'\''B0') Collate SQL_Latin1_General_CP1_CS_AS like @SearchStringx - order by DvPath - end - end -- include links - GO -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchItemAndChildrenNew Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchItemAndChildrenNew Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[tr_tblItems_Update]') AND OBJECTPROPERTY(id,N'IsTrigger') = 1) - DROP TRIGGER [tr_tblItems_Update]; - - /****** Object: Trigger [dbo].[tr_tblItems_Update] Script Date: 04/25/2012 14:09:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/****** Object: Trigger [tr_tblItems_Update] ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE trigger [dbo].[tr_tblItems_Update] on [dbo].[tblItems] for update as - begin - if exists (select * from inserted) - begin - if update(PreviousID) or update(ContentID) or update(UserID) or update(DeleteStatus) - begin - insert into ItemAudits(ItemID,PreviousID,ContentID,DTS,UserID,DeleteStatus) - select dd.ItemID,dd.PreviousID,dd.ContentID,dd.DTS,dd.UserID,dd.DeleteStatus from deleted dd - inner join inserted ii on dd.ItemID = ii.ItemID - where dd.deletestatus = 0 or ii.deletestatus != 0 - end - end - end -GO --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Trigger alteration: tr_tblItems_Update Succeeded' -ELSE PRINT 'Trigger alteration: tr_tblItems_Update Error on Alteration' -GO - -/****** Object: StoredProcedure [vesp_GetROUsagesByProcedure] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetROUsagesByProcedure]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetROUsagesByProcedure]; -GO - -/* -exec vesp_GetROUsagesByProcedure '1,2,4','20007','1:00010000019C,0001000002AE' -exec vesp_GetROUsagesByProcedure '1,2,4','','1:00010000019C,0001000002AE' -exec vesp_GetROUsagesByProcedure '1,2,4','20007','1:0001' -exec vesp_GetROUsagesByProcedure '1,2,4','20006','1' -exec vesp_GetROUsagesByProcedure '1,2,4','20006','' -exec vesp_GetROUsagesByProcedure '1,2,4',Null,Null -exec vesp_GetROUsagesByProcedure '1','','1:000700000124','' -exec vesp_GetROUsagesByProcedure '','','1:0007000001C9,000700000124', '' -exec vesp_SearchROItemAndChildren '1','','1:000700000124','' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetROUsagesByProcedure] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), @ROSearchString varchar(MAX), @UnitPrefix as varchar(MAX)) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -begin -with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath, FoundROID) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath, null - - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - when 8 then @DelimStep + 'SupInfo' - else '' end - else '' end - PPath, - --Path + case when Z.FromType < 3 then @Delim else @DelimStep end + case C.Type/10000 - Path + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(4)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(4)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(4)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(4)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - when 8 then @DelimStep +'SupInfo' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(4)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001', - null - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(4)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4), - null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) -select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount], - RRU.ROID FoundROID - from ItemZ I - join Contents C on C.ContentID = I.ContentID -join (select contentid, ru.roid from ROusages RU -join vefn_SplitROSearch(@ROSearchString) RR on case when len(RU.ROID) = 12 then RU.ROID +'0000' else RU.ROID end - like RR.roid + '%' -union -select contentid, du.roid from DROusages DU -join entries ee on DU.DOCID = EE.DOCID -join vefn_SplitROSearch(@ROSearchString) RR on case when len(DU.ROID) = 12 then DU.ROID +'0000' else DU.ROID end like RR.roid + '%') RRU on RRU.ContentID = I.ContentID - AND - ((isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - or - (@StepTypeList like '%20040%' AND IsRNO = -1))) - order by DvPath,OrdinalPath /*having foundroid in ( select roid from vefn_SplitROSearch(@ROSearchString))*/ -OPTION (MAXRECURSION 10000) -END -END -GO -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetROUsagesByProcedure Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetROUsagesByProcedure Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[FindRoUsages]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [FindRoUsages]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -Declare @ROSearchString varchar(MAX) -set @ROSearchString='1:000200000089' -select * from FindRoUsages('1:000200000089') -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create FUNCTION [dbo].[FindRoUsages](@ROSearchString varchar(Max)) -RETURNS @Results TABLE -( - ContentID int Primary Key -) -WITH EXECUTE AS OWNER -BEGIN - insert into @Results - select ContentID from ROUsages RU - join vefn_SplitROSearch(@ROSearchString) RR - ON RR.RODBID = RU.RODBID and - RU.ROID like RR.ROID + '%' Collate SQL_Latin1_General_CP1_CI_AS - UNION - select ContentID from Entries EE - Join DROUsages RU on RU.DocID = EE.DocID - join vefn_SplitROSearch(@ROSearchString) RR - ON RR.RODBID = RU.RODBID and - case when len(RU.ROID) = 12 then RU.ROID +'0000' else RU.ROID end like RR.ROID + '%' Collate SQL_Latin1_General_CP1_CI_AS - RETURN -END -GO - -IF (@@Error = 0) PRINT 'Function: FindRoUsages Succeeded' -ELSE PRINT 'Function: FindRoUsages Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchROItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [vesp_SearchROItemAndChildren]; - -GO -/****** Object: StoredProcedure [dbo].[vesp_SearchROItemAndChildren] Script Date: 09/28/2012 09:02:50 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -exec vesp_SearchROItemAndChildren '1,2,4','20007','1:00010000019C,0001000002AE','' -exec vesp_SearchROItemAndChildren '1,2,4','','1:00010000019C,0001000002AE','' -exec vesp_SearchROItemAndChildren '1,2,4','20007','1:0001','' -exec vesp_SearchROItemAndChildren '1,2,4','20006','1','' -exec vesp_SearchROItemAndChildren '1,2,4','20006','','' -exec vesp_SearchROItemAndChildren '',Null,Null,'XXX-','' -exec vesp_SearchROItemAndChildren '1','','1:000200000089','' -exec vesp_SearchROItemAndChildren '1','','1:00010000019c','' -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchROItemAndChildren] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), @ROSearchString varchar(MAX), @UnitPrefix as varchar(MAX)) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -begin -with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath, UnitPrefix) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath, UnitPrefix - - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - when 8 then @DelimStep + 'SupInfo' - else '' end - else '' end - PPath, - --Path + case when Z.FromType < 3 then @Delim else @DelimStep end + case C.Type/10000 - Path + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(4)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(4)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(4)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(4)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - when 8 then @DelimStep +'SupInfo' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(4)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001', UnitPrefix - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(4)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4), UnitPrefix - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) -select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - left join Entries E on C.ContentID = E.ContentID - left join Documents D on E.DocID = D.DocID - where - I.ContentID in(select ContentID from FindROUsages(@ROSearchString)) - AND - ((isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - or - (@StepTypeList like '%20040%' AND IsRNO = -1))) - order by DvPath,OrdinalPath -OPTION (MAXRECURSION 10000) -END -END -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchROItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchROItemAndChildren Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranFrom]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranFrom]; -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranFrom] Script Date: 10/03/2012 10:06:38 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranFrom] -WITH EXECUTE AS OWNER -AS -begin - -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=I.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=I.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=I.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=I.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=I.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=I.[ItemID]) [Transition_ToIDCount] -from Items I -join Transitions T on I.ContentID = T.FromID -END -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranFrom Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranFrom Error on Creation' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranTo]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranTo]; -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranTo] Script Date: 10/03/2012 10:08:03 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranTo] -WITH EXECUTE AS OWNER -AS -begin -with Itemz(ItemID, ContentID, PreviousID, [Type]) as ( - Select Distinct ItemID, C.ContentID, PreviousID, C.Type - FROM [Items] I - Join Contents C on C.ContentID = I.ContentID - JOIN Transitions T on t.ToID = I.ItemID or t.RangeID = I.ItemID - --where [ItemID]=@ItemID -Union ALL --- Parent - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Parts P on P.ItemID = Z.ItemID - join Items I on I.ContentID = P.ContentID - Join Contents C on C.ContentID = I.ContentID --- Previous -Union ALL - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Items I on Z.PreviousID = I.ItemID - Join Contents C on C.ContentID = I.ContentID - where Z.Type >= 10000 -) -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=Z.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=Z.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=Z.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=Z.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=Z.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=Z.[ItemID]) [Transition_ToIDCount] -from Itemz Z join Items I on I.ItemID = Z.ItemID -OPTION (MAXRECURSION 10000) -END -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranTo Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranTo Error on Creation' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranFromAndContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranFromAndContent]; -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranFromAndContent] Script Date: 10/03/2012 10:52:31 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranFromAndContent] -WITH EXECUTE AS OWNER -AS -begin - -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] -from Items I Join Contents C on I.ContentID = C.ContentID -join Transitions T on I.ContentID = T.FromID -END -GO -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranFromAndContent Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranFromAndContent Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranToAndContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranToAndContent]; -GO -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranToAndContent] Script Date: 10/03/2012 10:08:17 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranToAndContent] -WITH EXECUTE AS OWNER -AS -begin -with Itemz(ItemID, ContentID, PreviousID, [Type]) as ( - Select Distinct ItemID, C.ContentID, PreviousID, C.Type - FROM [Items] I - Join Contents C on C.ContentID = I.ContentID - JOIN Transitions T on t.ToID = I.ItemID or t.RangeID = I.ItemID - --where [ItemID]=@ItemID -Union ALL --- Parent - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Parts P on P.ItemID = Z.ItemID - join Items I on I.ContentID = P.ContentID - Join Contents C on C.ContentID = I.ContentID --- Previous -Union ALL - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Items I on Z.PreviousID = I.ItemID - Join Contents C on C.ContentID = I.ContentID - where Z.Type >= 10000 -) -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] -from Itemz Z -Join Items I on Z.ItemID = I.ItemID -Join Contents C on I.ContentID = C.ContentID -OPTION (MAXRECURSION 10000) -END -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranToAndContent Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranToAndContent Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_SiblingAndChildrenItemsByProc] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SiblingAndChildrenItemsByProc]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SiblingAndChildrenItemsByProc]; -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_tblChildItems] Script Date: 05/18/2011 11:20:48 ******/ -/* -select * from vefn_SiblingAndChildrenItemsByProc(30) II -join -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SiblingAndChildrenItemsByProc](@ProcID int) -RETURNS @SiblingAndChildren TABLE -( - [ItemID] int PRIMARY KEY - , [DVPath] nvarchar(max) - , [Path] nvarchar(max) - , [Level] int - , [FromType] int - , [Ordinal] int - , [ParentID] int - , [PreviousID] int - , [ContentID] int - , [DTS] datetime - , [UserID] nvarchar(100) - , [pContentID] int - , [pDTS] datetime - , [pUserID] nvarchar(100) - , [IsRNO] int - --- , [PPath] nvarchar(max) --- , [POrdinalPath] nvarchar(max) - , [OrdinalPath] nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -BEGIN -with Itemz([ItemID], [DVPath], [Level], [ParentID], [Ordinal], [PreviousID], [FromType], [ContentID], [DTS], [UserID],[pContentID], - [pDTS],[pUserID],PPath, [Path], [IsRNO], [POrdinalPath], [OrdinalPath]) as ( - Select [I].[ItemID], '' DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], - Cast('' as nvarchar(max)) [PPath], - Cast(Case when C.Type < 20000 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) [Path], - 0 IsRNO, Cast('' as nvarchar(max)) [POrdinalPath], Cast('0001' as nvarchar(max)) [OrdinalPath] - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - WHERE I.[ItemID] = @ProcID -Union All --- Children - select I.[ItemID], DVPath, [Level] + 1,Z.ItemID,0, I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID], - P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - when 8 then @DelimStep + 'SupInfo' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(4)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(4)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(4)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(4)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - when 8 then @DelimStep +'SupInfo' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(4)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-00001' - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select I.[ItemID], DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID] - ,null,null,null, - PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' THEN @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(4)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('00000' + cast(Z.[Ordinal] + 2 as varchar(5)), 5) - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 - -) -insert into @SiblingAndChildren -select I.[ItemID], [DvPath], [Path], I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID], - [pContentID],[pDTS],[pUserID],[IsRNO]/*,[PPath],[POrdinalPath]*/,[OrdinalPath] - from ItemZ I -OPTION (MAXRECURSION 10000) -END -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SiblingAndChildrenItemsByProc Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SiblingAndChildrenItemsByProc Error on Creation' -GO - - -/****** Object: StoredProcedure [vefn_RemoveRange] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_RemoveRange]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_RemoveRange]; -GO - -/* -SELECT ContentID, text, [dbo].[vefn_RemoveRange](text,'') StrippedText -from contents -where contentid in (select top 25 ContentID from contents where text like '%[[]END>%') - -select top 25 * from contents where text like '%[[]END>%' - -SELECT ContentID, [dbo].[vefn_RemoveRange](text,'') StrippedText -from contents -where contentid =189 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_RemoveRange](@text nvarchar(MAX),@startToken nvarchar(MAX), @endToken nvarchar(MAX)) -RETURNS varchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @index int - DECLARE @index2 int - DECLARE @lenStartToken int - DECLARE @lenEndToken int - DECLARE @lastIndex int - SET @lenStartToken = len(@startToken) - SET @lenEndToken = len(@endToken) - SET @index = CHARINDEX(@startToken , @text) - SET @lastIndex = -1 - while (@index != 0) - BEGIN - SET @index2 = CHARINDEX(@endToken , @text, @index + @lenStartToken) - if (@index2>0) - SET @text = substring(@text,1,@index-1) + substring(@text,@index2+@lenEndToken,len(@text)) - SET @lastIndex = @index - SET @index = CHARINDEX(@startToken , @text) - if (@index = @lastIndex) SET @index = 0 - END - RETURN @text -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_RemoveRange Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_RemoveRange Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetPath] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetPath]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetPath]; -GO - -/* -select ItemID, CC.Type, dbo.ve_GetPath(ItemID) -from Items II join Contents CC on II.ContentID = CC.ContentID -where ItemID in(111,265,266,267) -*/ --- drop function ve_GetPath -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetPath] (@ItemID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN --- declare @STructID int ---set @StructID=11 -declare @Path varchar(max); -with Itemz(ItemCount,ItemID,PreviousID,FromType,CType,Number,Text,PPath, Path) as ( - Select 1,ItemID,PreviousID,0,C.Type/10000,C.Number,C.Text, - Cast(Case when C.Type < 20000 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') else '' end as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') else '1' end as nvarchar(max)) Path - from Items I - join Contents C on I.ContentID = C.ContentID - where ItemID=@ItemID - Union All --- siblings - Select ItemCount+1,I.PreviousID,II.PreviousID,0,C.Type/10000,Z.Number,Z.Text,PPath,cast(ItemCount + 1 as nvarchar(4)) + PPath - from Items I - join Contents C on I.ContentID = C.ContentID - Join Items II on II.ItemID = I.PreviousID - Join Itemz Z on I.ItemID=Z.ItemID - where I.PreviousID != 0 - Union All --- children - select 1,I.ItemID,I.PreviousID,P.FromType,C.Type/10000,C.Number,C.Text, - case C.Type/10000 - when 0 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') - when 1 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') +'`' + cast(ItemCount + 0 as varchar(4)) - else - case P.FromType - when 1 then 'PRC`' + cast(ItemCount + 0 as varchar(4)) - when 2 then '`SEC`' + cast(ItemCount + 0 as varchar(4)) - when 3 then '`Caution`' + cast(ItemCount + 0 as varchar(4)) - when 4 then '`Note`' + cast(ItemCount + 0 as varchar(4)) - when 5 then '`RNO`' - when 7 then '`Table`' - when 8 then '`SupInfo`' - else '`' + cast(ItemCount + 0 as varchar(4)) - end end + PPath PPath, - --'1' + - case C.Type/10000 - when 0 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') - when 1 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') +'`' + cast(ItemCount + 0 as varchar(4)) - else - case P.FromType - when 1 then 'PRC`' + cast(ItemCount + 0 as varchar(4)) - when 2 then '`SEC`' + cast(ItemCount + 0 as varchar(4)) - when 3 then '`Caution`' + cast(ItemCount + 0 as varchar(4)) - when 4 then '`Note`' + cast(ItemCount + 0 as varchar(4)) - when 5 then '`RNO' - when 7 then '`Table' - when 8 then '`SupInfo' - else '`' + cast(ItemCount + 0 as varchar(4)) - end end + PPath Path - - from Parts P - join Items I on I.ContentID = P.ContentID - join Contents C on I.ContentID = C.ContentID - join Itemz Z on P.ItemID=Z.ItemID -) -select @Path = path From Itemz where ItemCount=1 and CType=0 -OPTION (MAXRECURSION 10000) -return @Path -END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetPath Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetPath Error on Creation' -GO - - -/****** Object: StoredProcedure [vefn_ProcedureByProcID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ProcedureByProcID]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ProcedureByProcID]; -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_ProcedureByProcID] Script Date: 05/18/2011 11:20:48 ******/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create FUNCTION [dbo].[vefn_ProcedureByProcID](@ProcID int) -RETURNS @SiblingAndChildren TABLE -( - [ItemID] int PRIMARY KEY - , [DVPath] nvarchar(max) - , [Path] nvarchar(max) - , [Level] int - , [FromType] int - , [Ordinal] int - , [ParentID] int - , [PreviousID] int - , [ContentID] int - , [DTS] datetime - , [UserID] nvarchar(100) - , [pContentID] int - , [pDTS] datetime - , [pUserID] nvarchar(100) - , [IsRNO] int - --- , [PPath] nvarchar(max) --- , [POrdinalPath] nvarchar(max) - , [OrdinalPath] nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -BEGIN -insert into @SiblingAndChildren - Select -[I].[ItemID] -, '' DVPath -, Cast(Case when C.Type < 20000 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) [Path] -,0 [Level] -,0 [FromType] -, 0 [Ordinal] -, 0 [ParentID] -, [PreviousID] -,[I].[ContentID] -,[I].[DTS] -,[I].[UserID] - ,0 [pContentID] -,[I].[DTS] [pDTS] -, [I].[UserID] [pUserID] -,0 IsRNO - , Cast('0001' as nvarchar(max)) [OrdinalPath] - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - WHERE I.[ItemID] = @ProcID -END -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ProcedureByProcID Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ProcedureByProcID Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindContentText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindContentText]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindContentText]; -GO - -/* -SELECT * From vefn_FindContentText('1','%RCP%') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindContentText]( -@DocVersionList nvarchar(MAX) -,@SearchString varchar(MAX) -,@IncludeLinks as int -,@IncludeRtfFormatting as int -,@IncludeSpecialCharacters as int) -RETURNS @FoundContents TABLE -( - ContentID int PRIMARY KEY - ,Type int - ,Text varchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @Dashes varchar(25) -set @Dashes = '\u8209?' -if(@SearchString not like '%\u8209?%') -BEGIN -set @Dashes='-' -END -IF(ISNULL(@DocVersionList,'')='') - BEGIN - INSERT INTO @FoundContents -- Do a case insensitive search - select ContentID,Type,Text from contents - where replace(.dbo.vefn_RemoveExtraText(Replace([Text],'-','\u8209?'),@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters),'\u8209?',@Dashes) like @SearchString Collate SQL_Latin1_General_CP1_CI_AS - --where .dbo.vefn_RemoveExtraText(Replace(Replace([Text],'-','\u8209?'),'\','\u9586?'),@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchString Collate SQL_Latin1_General_CP1_CI_AS --- where Replace([Text],'-','\u8209?') like @SearchString Collate SQL_Latin1_General_CP1_CI_AS - --where Replace(Replace([Text],'-','\u8209?'),'\u160?',' ') like @SearchString Collate SQL_Latin1_General_CP1_CI_AS - END -ELSE - BEGIN - INSERT INTO @FoundContents -- Do a case insensitive search - select ContentID,Type,Text from contents - where [ContentID] in (select [ContentID] from vefn_DVContent(@DocVersionList)) - -- bug fix B2014-056 and B2014-102 now use vefn_RemoveExtraText which fixes searching for hard spaces and finding procedure text when it is bolded (or italics or underlined etc) - AND Replace(.dbo.vefn_RemoveExtraText(Replace([Text],'-','\u8209?'),@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters),'\u8209?',@Dashes) like @SearchString Collate SQL_Latin1_General_CP1_CI_AS - --AND .dbo.vefn_RemoveExtraText(Replace(Replace([Text],'-','\u8209?'),'\','\u9586?'),@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchString Collate SQL_Latin1_General_CP1_CI_AS - --AND Replace([Text],'-','\u8209?') like @SearchString Collate SQL_Latin1_General_CP1_CI_AS - --AND Replace(Replace([Text],'-','\u8209?'),'\u160?',' ') like @SearchString Collate SQL_Latin1_General_CP1_CI_AS - END - -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindContentText Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindContentText Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindText]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindText]; -GO - -/* -SELECT * From vefn_FindText('8','Dog',1,0,0,1,'') -SELECT * From vefn_FindText('1','turbine\u8209?driven',0,0,0,0,'') -SELECT * From vefn_FindText('1','trip',0,0,0,0,'') -select * from vefn_FindText('1','',0,0,0,1,'20010,20008') -select * from vefn_FindText('1',null,0,0,0,1,'20010,20008') -select * from vefn_FindText('1',' ',0,0,0,1,'20010,20008') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindText]( -@DocVersionList nvarchar(MAX) -,@SearchString varchar(MAX) -,@CaseSensitive as int -,@IncludeLinks as int -,@IncludeRtfFormatting as int -,@IncludeSpecialCharacters as int -,@StepTypeList varchar(MAX)) -RETURNS @FoundContents TABLE -( - ContentID int PRIMARY KEY -) -WITH EXECUTE AS OWNER -AS -BEGIN -Set @SearchString = .dbo.vefn_FixSearchString(@SearchString) -IF isnull(@SearchString,'%')='%' - BEGIN - insert into @FoundContents - select C.ContentID from (select * from Contents where ContentID in(select ContentID from vefn_DVContent(@DocVersionList))) C - where(isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or (dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - END -ELSE - BEGIN - Declare @SearchStringx nvarchar(200) --kbr - --set @SearchStringx = replace(@SearchString,'-','\u8209?') --kbr - --set @SearchStringx = replace(replace(@SearchString,'-','\u8209?'),'\','\u9586?') --kbr - set @SearchStringx = replace(@SearchString,'\u8209?','-') --JSJ B2016-209 not finding dashes in Word sections (FixSearchString converts '-' to '\u8209?') - IF @CaseSensitive = 0 -- Not Case Sensitive - BEGIN - insert into @FoundContents - select C.ContentID from vefn_FindContentText(@DocVersionList,@SearchString,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) C - where - (.dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchString Collate SQL_Latin1_General_CP1_CI_AS) - AND ((isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - UNION -- B2016-209 to find dashes in word sections - select C.ContentID from vefn_FindContentText(@DocVersionList,@SearchStringx,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) C - where - (.dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchStringx Collate SQL_Latin1_General_CP1_CI_AS) - AND ((isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - UNION - select C.ContentID from (select * from Contents where ContentID in(select ContentID from vefn_DVContent(@DocVersionList))) C - join Entries E on C.ContentID = E.ContentID - join Documents D on E.DocID = D.DocID - where - (Replace(D.DocAscii,nchar(176),'\''B0') like @SearchString OR Replace(D.DocAscii,nchar(176),'\''B0') like @SearchStringx Collate SQL_Latin1_General_CP1_CI_AS) - AND - ((isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - END - ELSE - BEGIN - IF @CaseSensitive = 1 -- Case Sensitive - BEGIN - insert into @FoundContents - select C.ContentID from vefn_FindContentText(@DocVersionList,@SearchString,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) C - where - -- B2019-023 moved placement of Collate SQL_Latin1_CP1_CS_AS to before each like statement to enable case sensitive in Word sections - (.dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) Collate SQL_Latin1_General_CP1_CS_AS like @SearchString) - AND ((isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - UNION - select C.ContentID from vefn_FindContentText(@DocVersionList,@SearchStringx,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) C - where - (.dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) Collate SQL_Latin1_General_CP1_CS_AS like @SearchStringx) - AND ((isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - - UNION -- B2016-209 to find dashes in word sections - select C.ContentID from (select * from Contents where ContentID in(select ContentID from vefn_DVContent(@DocVersionList))) C - join Entries E on C.ContentID = E.ContentID - join Documents D on E.DocID = D.DocID - where - (Replace(D.DocAscii,nchar(176),'\''B0') Collate SQL_Latin1_General_CP1_CS_AS like @SearchString OR Replace(D.DocAscii,nchar(176),'\''B0') Collate SQL_Latin1_General_CP1_CS_AS like @SearchStringx) - AND - ((isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - END - END -END -RETURN -END - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindText Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindText Error on Creation' -GO - --- THIS IS STUFF THAT WE FIXED IN PROMS2010.SQL AND PUT IN HERE ALSO -/****** Object: StoredProcedure [getItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemAndChildren]; -GO - --- getItemAndChildren 111 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemAndChildren] (@ItemID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged] from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: getItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [getItemNextAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemNextAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemNextAndChildren]; -GO - --- getItemNextAndChildren 111 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemNextAndChildren] (@ItemID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged] from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemNextAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: getItemNextAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetSiblingCount] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetSiblingCount]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetSiblingCount]; -GO - -/* -select top 5 CC.Number,CC.Text,Type,ItemID, dbo.ve_GetSiblingCount(ItemID) HLStepCount -from Contents CC -Join Parts PP on PP.ContentID = CC.ContentID -where CC.Type >= 10000 and CC.Type < 20000 -order by dbo.ve_GetSiblingCount(ItemID) desc - -select top 5 CC.Number,CC.Text,Type,ItemID, dbo.ve_GetSiblingCount(ItemID) SectionCount -from Contents CC -Join Parts PP on PP.ContentID = CC.ContentID -where CC.Type < 10000 -order by dbo.ve_GetSiblingCount(ItemID) desc - -select top 5 CC.Text,Type,ItemID, dbo.ve_GetSiblingCount(ItemID) SubStepCount -from Contents CC -Join Parts PP on PP.ContentID = CC.ContentID -where CC.Type >= 20000 -order by dbo.ve_GetSiblingCount(ItemID) desc - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetSiblingCount] (@ItemID int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN -declare @Count int; -with Itemz([Direction], [ItemID], [PreviousID]) as ( - Select 0 Direction,[ItemID], [PreviousID] - FROM [Items] - where [ItemID]=@ItemID --- Siblings Previous -Union All - select -1 Direction,I.[ItemID], I.[PreviousID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.Direction <= 0 --- Siblings Next -Union All - select 1 Direction,I.[ItemID], I.[PreviousID] - from Itemz Z - join Items I on I.ItemID = Z.PreviousID - where Z.Direction >= 0 -) -Select @Count = Count(*) from Itemz -OPTION (MAXRECURSION 10000) -return @Count END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetSiblingCount Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetSiblingCount Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_AllHighLevelSteps] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_AllHighLevelSteps]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_AllHighLevelSteps]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_AllHighLevelSteps]() -RETURNS @HighLevelStepTransitions TABLE -( - ParentID int - ,ItemID int PRIMARY KEY - ,Ordinal int - ,Path varchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM (select II.ItemID ParentID, PP.ItemID, PreviousID, II.ContentID, II.DTS, II.UserID, II.LastChanged from Items II -Join Contents CC on II.ContentID = CC.ContentID -Join Parts PP on PP.ContentID = II.ContentID and FromType = 6 -where CC.Type = 10000) TT --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - --where Z.[Level] > 0 -) -Insert into @HighLevelStepTransitions -select [ParentID],ItemID,Ordinal,dbo.ve_GetPath([ItemID]) Path -from Itemz -Order by ParentID,ItemID -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_AllHighLevelSteps Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_AllHighLevelSteps Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_AllHighLevelStepTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_AllHighLevelStepTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_AllHighLevelStepTransitions]; -GO - -/* -select * from vefn_AllHighLevelStepTransitions() -where ExternalTransitions > 0 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_AllHighLevelStepTransitions]() -RETURNS @HighLevelStepTransitions TABLE -( - ParentID int - ,ItemID int PRIMARY KEY - ,Ordinal int - ,Path varchar(max) - ,TransCount int - ,ExternalTransitions int - ,ExternalChildTransitions int - ,InternalTransitions int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM (select II.ItemID ParentID, PP.ItemID, PreviousID, II.ContentID, II.DTS, II.UserID, II.LastChanged from Items II -Join Contents CC on II.ContentID = CC.ContentID -Join Parts PP on PP.ContentID = II.ContentID and FromType = 6 -where CC.Type = 10000) TT --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - --where Z.[Level] > 0 -) -Insert into @HighLevelStepTransitions -select [ParentID],ItemID,Ordinal,dbo.ve_GetShortPath([ItemID]) Path,(Select Count(*) from Transitions where ToID=ItemID OR RangeID=ItemID ) TransCount -,(Select count(*) from vefn_FindExternalTransitions(ItemID)) ExternalTransitions -,(Select count(*) from vefn_FindExternalChildTransitions(ItemID)) ExternalChildTransitions -,(Select count(*) from vefn_FindInternalTransitions(ItemID)) InternalTransitions -from Itemz -where (Select Count(*) from Transitions where ToID=ItemID OR RangeID=ItemID ) > 0 -OR(Select count(*) from vefn_FindExternalTransitions(ItemID)) > 0 -OR(Select count(*) from vefn_FindInternalTransitions(ItemID)) > 0 -Order by ParentID,ItemID -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_AllHighLevelStepTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_AllHighLevelStepTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_ChildItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChildItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChildItems]; -GO - -/* -declare @PreviousID as int -declare @ItemID as int -set @ItemID = 450 -select @PreviousID = PreviousID from items where ItemID = @ItemID - -Select * from Items where ItemID = @ItemID - -select * from Transitions -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -select CC.Text from Transitions TT -join contents CC on TT.FromID = CC.ContentID -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ChildItems](@ItemID int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ItemID], [ContentID]) as ( - Select 0 [Level], [ItemID], [ContentID] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] , I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children select ItemID, ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ChildItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ChildItems Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_ChildItemsRange] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChildItemsRange]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChildItemsRange]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ChildItemsRange](@StartItemID int, @EndItemID int, @DestFormat int) -RETURNS @Children TABLE -( -ItemID int PRIMARY KEY, -ContentID int, -FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @FormatID int -SELECT @FormatID = isnull(@DestFormat,.dbo.vefn_GetInheritedFormat(@StartItemID,1)) -BEGIN -with Itemz([Level], [ItemID], [ContentID], [FormatID], [FoundEnd]) as ( -Select 0 [Level], [ItemID], I.[ContentID], IsNull(C.[FormatID], @FormatID), case [ItemID] when @EndItemID then 1 else 0 end [FoundEnd] -FROM [Items] I -JOIN [Contents] C on I.ContentID = C.ContentID -where [ItemID]=@StartItemID -Union All --- Children -select [Level] + 1, I.[ItemID], I.[ContentID], IsNull(C.[FormatID], Z.[FormatID]), case I.[ItemID] when @EndItemID then 1 else 0 end [FoundEnd] -from Itemz Z -join Parts P on P.ContentID = Z.ContentID -join Items I on I.ItemID = P.ItemID -JOIN [Contents] C on I.ContentID = C.ContentID --- Siblings -Union All -select [Level] , I.[ItemID], I.[ContentID], IsNull(C.[FormatID], Z.[FormatID]), case I.[ItemID] when @EndItemID then 1 else 0 end [FoundEnd] -from Itemz Z -join Items I on I.PreviousID = Z.ItemID -JOIN [Contents] C on I.ContentID = C.ContentID -where FoundEnd = 0 -) -insert into @Children select ItemID, ContentID, FormatID from Itemz -OPTION (MAXRECURSION 10000) - -END -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ChildItemsRange Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ChildItemsRange Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_ChildrenItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChildrenItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChildrenItems]; -GO - -/* -select * from Transitions -where (ToID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) OR (RangeID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) -AND NOT (FromID in(Select ContentID From dbo.vefn_ChildrenItems(185,184))) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ChildrenItems](@ItemID int, @ParentID int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children select ItemID, ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ChildrenItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ChildrenItems Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindAffectedTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindAffectedTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindAffectedTransitions]; -GO - -/* -select top 1 * from items order by itemid desc -Select -FromID,.dbo.ve_GetPathFromContentID(FromID) ContentPath -,ToID,dbo.ve_GetPath(ToID) ToPath -,RangeID,dbo.ve_GetPath(RangeID) RangePath -,cc.Text -from vefn_FindAffectedTransitions(2102) ttz -join transitions tt on ttz.TransitionID = tt.TransitionID ---join items ii on ii.ItemID = tt.fromID -join contents cc on tt.FromID = cc.contentid -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindAffectedTransitions](@ItemID int) -RETURNS @Transitions TABLE -( - TransitionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -declare @Type int -select @Type = CC.Type from Contents CC Join Items II ON II.ContentID = CC.ContentID Where ItemID = @ItemID -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- All Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where @Type >= 20000 OR Z.[Level] > 0 -- This would limit the siblings to the siblings of the children and not the initial ItemID -) -, Itemz2([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID --- All Siblings -Union All - select [Level] ,Z.[Ordinal] -1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz2 Z - join Items I on Z.PreviousID = I.ItemID - where @Type >= 20000 OR Z.[Level] > 0 -- This would limit the siblings to the siblings of the children and not the initial ItemID -) -insert into @Transitions -select TransitionID from Transitions TT -where (ToID in(select ItemID from Itemz) OR RangeID in(select ItemID from Itemz)) -UNION -select TransitionID from Transitions TT -JOIN Itemz2 on ToID=ItemID and RangeID=ItemID and IsRange = 2 -OPTION (MAXRECURSION 10000) -END -RETURN -END - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindAffectedTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindAffectedTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindExternalChildTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindExternalChildTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindExternalChildTransitions]; -GO - -/* -Select * from vefn_FindExternalChildTransitions(185) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindExternalChildTransitions](@ItemID int) -RETURNS @Children TABLE -( - FromItemID int, - ToID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @ChildList AS TABLE - ( - ItemID INT PRIMARY KEY, - ContentID INT, - Level INT - ) -INSERT INTO @ChildList SELECT * FROM vefn_ChildItemz(@ItemID) -insert into @Children -select ItemID [FromItemID], case when TT.ToID in(select ItemID from @ChildList) then TT.ToID else TT.RangeID end [ToID] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from @ChildList where Level > 0) OR RangeID in(select ItemID from @ChildList where Level > 0)) -AND FromID not in(Select ContentID from @ChildList) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindExternalChildTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindExternalChildTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindExternalTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindExternalTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindExternalTransitions]; -GO - -/* -Select * from vefn_FindExternalTransitions(185) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindExternalTransitions](@ItemID int) -RETURNS @Children TABLE -( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL -) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @ChildList AS TABLE - ( - ItemID INT PRIMARY KEY, - ContentID INT, - Level INT - ) -INSERT INTO @ChildList SELECT * FROM vefn_ChildItemz(@ItemID) -insert into @Children -select ItemID [FromItemID], TT.[TransitionID], TT.[FromID], TT.[ToID], TT.[RangeID], TT.[Config] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from @ChildList) OR RangeID in(select ItemID from @ChildList)) -AND FromID not in(Select ContentID from @ChildList) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindExternalTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindExternalTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_ChildItemz] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChildItemz]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChildItemz]; -GO - -/* -Select * from vefn_ChildItemz(185) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2015 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ChildItemz](@ItemID int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - ContentID int, - Level int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ItemID], [ContentID]) as ( - Select 0 [Level], [ItemID], [ContentID] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] , I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children select ItemID, ContentID, Level from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ChildItemz Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ChildItemz Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindInternalTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindInternalTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindInternalTransitions]; -GO - -/* -Select * from vefn_FindInternalTransitions(185) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindInternalTransitions](@ItemID int) -RETURNS @Children TABLE -( - FromItemID int, - ToID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children -select ItemID [FromItemID], case when TT.ToID in(select ItemID from Itemz) then TT.ToID else TT.RangeID end [ToID] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from Itemz) OR RangeID in(select ItemID from Itemz)) -AND FromID in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindInternalTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindInternalTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindInternalTransitionsForCopy] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindInternalTransitionsForCopy]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindInternalTransitionsForCopy]; -GO - -/* -Select * from vefn_FindInternalTransitionsForCopy(10277) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindInternalTransitionsForCopy](@ItemID int) -RETURNS @Transitions TABLE -( - TransitionID int, - FromID int, - TranType int, - ToID int, - RangeID int, - OldTransition int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Transitions -select TransitionID, FromID, TT.TranType, TT.ToID, TT.RangeID, CAST(TT.Config as int) --case when TT.ToID in(select ItemID from Itemz) then TT.ToID else TT.RangeID end [ToID] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from Itemz) OR RangeID in(select ItemID from Itemz)) -AND FromID in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindInternalTransitionsForCopy Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindInternalTransitionsForCopy Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetInheritedFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetInheritedFormat]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetInheritedFormat]; -GO - -/* Samples -Select TranType, .dbo.vefn_GetInheritedFormat(355) TransFormat - from(Select 1 TranType UNION Select 2 TranType UNION Select 3 TranType UNION - Select 4 TranType UNION Select 5 TranType UNION Select 6 TranType UNION - Select 7 TranType UNION Select 8 TranType UNION Select 9 TranType UNION Select 10 TranType) TT - -Select top 25 ItemID, TranType, .dbo.vefn_GetInheritedFormat(ItemID) TransFormat - From Transitions TR - Join Items II on II.ContentID = TR.FromID - -*/ -/* - local is a 'boolean' (0=false, 1=true) to state whether to look at the item itself or - only its parent -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetInheritedFormat] (@ItemID int, @local int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @FormatID as int - -- First get the Active Format - begin - with Itemz([Level], [PreviousID], [ItemID], [ParentID], [FolderID], [FormatID]) as ( - Select 0 [Level], [PreviousID], [ItemID], null, null, - case when @local = 1 then (Select FormatID from Contents CC where [CC].[ContentID] = [II].[ContentID]) - else null end FormatID - FROM [Items] II - where [ItemID]=@ItemID - Union All - -- Parent Item - select [Level] + 1, I.[PreviousID], I.[ItemID], null, null, C.FormatID - from Itemz Z - join Parts P on P.ItemID = Z.ItemID - join Items I on I.ContentID = P.ContentID - join Contents C on C.ContentID = P.ContentID - where Z.FormatID is null - -- Siblings Item - Union All - select [Level] , I.[PreviousID] , I.[ItemID], null, null, Z.FormatID - from Itemz Z - join Items I on Z.PreviousID = I.ItemID - where Z.FormatID is null - Union All - -- DocVersion From Item - select [Level] + 1, null, null, DV.FolderID, null, DV.FormatID - from Itemz Z - join DocVersions DV on DV.ItemID = Z.ItemID - where Z.FormatID is null - Union All - -- Folders - select [Level] + 1, null, null, FF.ParentID, FF.FolderID, FF.FormatID - from Itemz Z - join Folders FF on FF.FolderID = Z.ParentID and FF.ParentID <> FF.FolderID - where Z.FormatID is null - ) - Select @FormatID = FormatID from Itemz ZZ Where FormatID is not null - OPTION (MAXRECURSION 10000) - END - RETURN @FormatID -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_GetInheritedFormat Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_GetInheritedFormat Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_HighLevelStepTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_HighLevelStepTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_HighLevelStepTransitions]; -GO - -/* -select * from vefn_HighLevelStepTransitions(105,104) -where TransCount > 0 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_HighLevelStepTransitions](@ItemID int, @ParentID int) -RETURNS @HighLevelStepTransitions TABLE -( - ParentID int - ,ItemID int PRIMARY KEY - ,Path varchar(max) - ,TransCount int - ,ExternalTransitions int - ,InternalTransitions int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - --where Z.[Level] > 0 -) -Insert into @HighLevelStepTransitions -select [ParentID],ItemID,dbo.ve_GetPath([ItemID]) ,(Select Count(*) from Transitions where ToID=ItemID OR RangeID=ItemID ) TransCount -,(Select count(*) from vefn_FindExternalTransitions(ItemID)) ExternalTransitions -,(Select count(*) from vefn_FindInternalTransitions(ItemID)) InternalTransitions -from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_HighLevelStepTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_HighLevelStepTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_SiblingChildrenItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SiblingChildrenItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SiblingChildrenItems]; -GO - -/* -select * from Transitions -where (ToID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) OR (RangeID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) -AND NOT (FromID in(Select ContentID From dbo.vefn_ChildrenItems(185,184))) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SiblingChildrenItems](@ItemID int) -RETURNS @SiblingChildren TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 as [pContentID],[DTS] As [pDTS], [UserID] As [pUserID], [LastChanged] As [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] as [pContentID],P.[DTS] As [pDTS],P.[UserID] As [pUserID],P.[LastChanged] As [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -insert into @SiblingChildren select ItemID, ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SiblingChildrenItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SiblingChildrenItems Error on Creation' -GO - -/****** Object: Table Function [vefn_SiblingItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SiblingItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SiblingItems]; -GO - -/* -select * from Transitions -where (ToID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) OR (RangeID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) -AND NOT (FromID in(Select ContentID From dbo.vefn_ChildrenItems(185,184))) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SiblingItems](@ItemID int, @ParentID int) -RETURNS @Siblings TABLE -( - ItemID int PRIMARY KEY, - ContentID int, - Ordinal int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -insert into @Siblings select ItemID, ContentID, Ordinal from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SiblingItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SiblingItems Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_CleanUpItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_CleanUpItems]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_CleanUpItems]; -GO - -/* -select *, .dbo.ve_GetParts(ContentID,6) SubSteps from items -where contentid in(select contentid from contents where text like 'DISPATCH operator to open breaker%') - - -select * from items -where itemid in(298,299,436,440) - -select itemid from items -where previousid is null and itemid not in (select itemid from parts) - ---select * from contents where text like 'foldout cip%' - -select count(*) from parts -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE procedure [dbo].[vesp_CleanUpItems] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - BEGIN -with Itemz(ItemID) as( -select itemid from items -where previousid is null -and itemid not in(1) -and itemid not in (select itemid from parts) -UNION ALL -select ii.itemid from items ii join itemz zz on zz.itemid = ii.previousid -) -delete from items where itemid in (select itemid from itemz) -OPTION (MAXRECURSION 10000) - END - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_CleanUpItems Succeeded' -ELSE PRINT 'Procedure Creation: vesp_CleanUpItems Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListChildren]; -GO - --- vesp_ListChildren 17 --- drop procedure [getItemAndChildren] -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListChildren] (@ItemID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListChildren Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListContentPath] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListContentPath]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListContentPath]; -GO - --- vesp_ListContentPath 148 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create PROCEDURE [dbo].[vesp_ListContentPath] - ( - @ContentID int - ) -WITH EXECUTE AS OWNER -AS -BEGIN -with ContentZ(BaseID,ContentID,ItemID,Number,Text,Item,Level,PreviousID) as ( - Select II.ItemID,CC.ContentID,II.ItemID,CC.Number,CC.Text,1,1,II.PreviousID - from Items II join Contents CC on CC.ContentID=II.ContentID where @ContentID=II.ContentID - Union All --- - Select BaseID,CC.ContentID,II.ItemID,CC.Number,CC.Text,ZZ.Item+1,ZZ.Level,II.PreviousID - FROM ContentZ ZZ - Join Items II on II.ItemID = ZZ.PreviousID - Join Contents CC on II.ContentID = CC.ContentID - where ZZ.PreviousID is not null - Union All - Select BaseID,CC.ContentID,II.ItemID,CC.Number,CC.Text,1,ZZ.Level+1,II.PreviousID - FROM ContentZ ZZ - Join Parts PP on ZZ.ItemID = PP.ItemID - Join Contents CC on PP.ContentID = CC.ContentID - Join Items II on II.ContentID = CC.ContentID - where ZZ.PreviousID is null --and ZZ.ItemID in(717,715,711,662) -) -Select ZZ.BaseID,ZZ.Level,MaxItem,ZZ.Number,ZZ.Text from ContentZ ZZ -join (select BaseID, Level, max(item) MaxItem from ContentZ group by BaseID,Level) T1 on T1.BaseID=ZZ.BaseID and T1.Level = ZZ.Level -where Item=1 -order by ZZ.BaseID,ZZ.Level Desc, Item Desc -OPTION (MAXRECURSION 10000) -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListContentPath Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListContentPath Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemAndChildren]; -GO - --- vesp_ListItemAndChildren 1,0 --- drop procedure [vesp_ListItemAndChildren] -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemAndChildren] (@ItemID int, @ParentID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemAndChildren Error on Creation' -GO - --- THIS IS STUFF THAT WE FIXED IN PROMStoCM.SQL AND PUT IN HERE ALSO -/****** Object: StoredProcedure [getItemAuditsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemAuditsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemAuditsByItemID]; -GO - -/* -getitemauditsbyitemid 10183 - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemAuditsByItemID] -( - @ItemID int -) - -WITH EXECUTE AS OWNER -AS -/* - with Itemz([AuditType],[Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 'root' [AuditType], 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]= @ItemID - Union All - -- Children - select 'chld' [AuditType], [Level] + 2,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - -- Siblings - Union All - select 'sibl' [AuditType], [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 - ) -*/ - -select * from -( - --get deleted previous item - select 0 Level,ia.*,dbo.[ve_GetPartType](@ItemID) ItemType from - itemaudits ia - inner join itemaudits iaa on ia.itemid = iaa.previousid - where iaa.itemid = @ItemID - and ia.itemid not in (select itemid from items where itemid = ia.itemid) - and ia.deletestatus in (select max(deletestatus) from itemaudits where itemid = ia.itemid) - union - --get deleted next item -/* - select 1 Level,ia.*,@itemtype ItemType from itemaudits ia - where ia.previousid = @ItemID - and ia.itemid not in (select itemid from items where itemid = ia.itemid) - and ia.deletestatus in (select max(deletestatus) from itemaudits where itemid = ia.itemid) -*/ - select 1 Level, - ia.[AuditID], - ia.[ItemID], - ia.[PreviousID], - ia.[ContentID], - ia.[DTS], - ia.[UserID], - ti.[DeleteStatus] -,dbo.[ve_GetPartType](@ItemID) ItemType - from itemaudits ia - inner join tblitems ti on ia.itemid = ti.itemid - where ia.previousid = @ItemID - and ti.deletestatus > 0 -and ia.dts = ti.dts - union - --get chillins - select 2 Level,ia.*, -case -when pa.fromtype = 1 then 'Procedure' -when pa.fromtype = 2 then 'Section' -when pa.fromtype = 3 then 'Caution' -when pa.fromtype = 4 then 'Note' -when pa.fromtype = 5 then 'RNO' -when pa.fromtype = 6 then 'Step' -when pa.fromtype = 7 then 'Table' -else 'Unknown' -end itemtype - from itemaudits ia - inner join partaudits pa on ia.itemid = pa.itemid - inner join items ii on pa.contentid = ii.contentid - where ii.itemid = @ItemID - and ia.itemid not in (select itemid from items where itemid = ia.itemid) - and ia.deletestatus in (select max(deletestatus) from itemaudits where itemid = ia.itemid) -) ia -order by deletestatus desc -OPTION (MAXRECURSION 10000) ---select * from itemz order by parentid,ordinal - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemAuditsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getItemAuditsByItemID Error on Creation' -GO - --- THIS IS STUFF THAT WE FIXED IN PROMStoAPPR.SQL AND PUT IN HERE ALSO -/****** Object: StoredProcedure [vefn_FindExternalFromTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindExternalFromTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindExternalFromTransitions]; -GO - -/* -Select * from vefn_FindExternalFromTransitions(185) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create FUNCTION [dbo].[vefn_FindExternalFromTransitions](@ItemID int) -RETURNS @Children TABLE -( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children -select ItemID [FromItemID], TT.[TransitionID], TT.[FromID], TT.[ToID], TT.[RangeID], TT.[Config] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID not in(select ItemID from Itemz) OR RangeID not in(select ItemID from Itemz)) -AND FromID in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindExternalFromTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindExternalFromTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getAnnotationAuditsChronologyByItemIDandUnitID] Script Date: 10/10/2012 14:45:33 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationAuditsChronologyByItemIDandUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationAuditsChronologyByItemIDandUnitID]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/****** Object: StoredProcedure [getAnnotationAuditsChronologyByItemIDandUnitID] ******/ -/* -getAnnotationAuditsChronologyByItemIDandUnitID 13,13,1 -getAnnotationAuditsChronologyByItemIDandUnitID 30,8570,1 -getAnnotationAuditsChronologyByItemIDandUnitID 1,1,1 -getAnnotationAuditsChronologyByItemIDandUnitID 30,8505,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create procedure [dbo].[getAnnotationAuditsChronologyByItemIDandUnitID] -( - @ProcItemID int, - @ItemID int, - @UnitID int, - @DTS datetime -) -WITH EXECUTE AS OWNER -AS -begin --- declare @dts datetime --- set @dts = (select dts from items where itemid = @procitemid) - declare @tci table - ( - ItemID int, - IContentID int, - IDeleteStatus int, - ProcDTS datetime, - Path nvarchar(max), - OrdinalPath nvarchar(max) - ) - insert into @tci - select * from vefn_tblchilditems(@ProcItemID,@ItemID,0) - select - case - when lastauditid is null and dts > itemdts then 'Added' - when deletestatus > 0 then 'Deleted' - when lastauditid = deletedauditid then 'Restored' - else 'Changed' - end ActionWhat - ,case - when lastauditid is null and dts > itemdts then dts - when deletestatus > 0 then ActionDTS - when lastauditid = deletedauditid then ActionDTS - else dts - end ActionWhen - ,* - from - ( - select - cast(ident_current('annotationaudits') + 1 as bigint) auditid - -- (select max(auditid) + 1 from annotationaudits) auditid - -- 0 auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,0 deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from tblannotations aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - where aa.deletestatus = 0 - union - select - aa.auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,aa.deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid ) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from annotationaudits aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - ) ah - where itemid in (select itemid from vefn_tblchilditems (@procitemid,@itemid,0)) - and dts > @dts - and (dbo.ve_GetItemDerivedApplicability(ItemID) = '-1' or ',' + dbo.ve_GetItemDerivedApplicability(ItemID) + ',' like '%,' + cast(@UnitID as varchar(10)) + ',%') - --(select dts from versions where versionid = (select max(versionid) from revisions rr inner join versions vv on rr.revisionid = vv.revisionid - --inner join stages ss on vv.stageid = ss.stageid where itemid = @procitemid and ss.isapproved = 1)) - order by ordinalpath,annotationid,auditid--actionwhen -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationAuditsChronologyByItemIDandUnitID Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationAuditsChronologyByItemIDandUnitID Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getContentAuditsChronologyByItemIDandUnitID] Script Date: 10/10/2012 12:48:39 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsChronologyByItemIDandUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsChronologyByItemIDandUnitID]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/****** Object: StoredProcedure [getContentAuditsChronologyByItemIDandUnitID] ******/ -/* -getContentAuditsChronologyByItemIDandUnitID 10154,10154,0,1 -getContentAuditsChronologyByItemIDandUnitID 42,42,0,1 -getContentAuditsChronologyByItemIDandUnitID 1,1,0,1 -getContentAuditsChronologyByItemIDandUnitID 146,146,1,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsChronologyByItemIDandUnitID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @UnitID int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin - select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) --- select distinct [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah - where dbo.ve_GetItemDerivedApplicability(ItemID) = '-1' or ',' + dbo.ve_GetItemDerivedApplicability(ItemID) + ',' like '%,' + cast(@UnitID as varchar(10)) + ',%' --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsChronologyByItemIDandUnitID Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsChronologyByItemIDandUnitID Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getContentAuditsSummaryByItemIDandUnitID] Script Date: 10/10/2012 12:56:01 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsSummaryByItemIDandUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsSummaryByItemIDandUnitID]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/****** Object: StoredProcedure [getContentAuditsSummaryByItemIDandUnitID] ******/ -/* -getContentAuditsSummaryByItemIDandUnitID 146,146,0,1 -getContentAuditsSummaryByItemIDandUnitID 42,42,0,1 -getContentAuditsSummaryByItemIDandUnitID 1,1,0,1 -getContentAuditsSummaryByItemIDandUnitID 146,146,1,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create PROCEDURE [dbo].[getContentAuditsSummaryByItemIDandUnitID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @UnitID int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin - DECLARE @ProcId Int - Set @ProcID = @ProcedureItemID - DECLARE @Apples TABLE - ( - ProcID int, - ItemId int, - ContentID int Primary Key, - Apple nvarchar(255), - DerApple nvarchar(255) - ) ---Build Applicabilty table for the specified Procedure ID - BEGIN - with Itemz([Level],[Apple],[DerApple],[ParApple],[ItemID], [ContentID]) as - (Select 0 - ,xMasterSlave.value('@Applicability','nvarchar(255)') Apple - ,IsNull(xMasterSlave.value('@Applicability','nvarchar(255)'),dbo.ve_getItemDerivedApplicability(@ProcID)) DerApple - ,cast(dbo.ve_getItemDerivedApplicability(@ProcID) as nvarchar(255)) ParApple - ,[II].[ItemID], [II].[ContentID] - FROM [Items] II - JOIN (Select ContentID, cast(config as XML) xConfig FROM Contents) CC ON II.ContentID = CC.ContentID - outer apply xConfig.nodes('//MasterSlave') tMasterSlave(xMasterSlave) - Where II.[ItemID] = @ProcID - Union All - -- Children - select ZZ.Level + 1 Level - ,xMasterSlave.value('@Applicability','nvarchar(255)') Apple - ,IsNull(xMasterSlave.value('@Applicability','nvarchar(255)'),ZZ.DerApple) DerApple - ,ZZ.DerApple ParApple - , II.[ItemID], II.[ContentID] - from Itemz ZZ - join Parts PP on PP.ContentID = ZZ.ContentID - join Items II on II.ItemID = PP.ItemID - JOIN (Select ContentID, cast(config as XML) xConfig FROM Contents) CC ON II.ContentID = CC.ContentID - outer apply xConfig.nodes('//MasterSlave') tMasterSlave(xMasterSlave) - Union All - -- Siblings - select ZZ.Level - ,xMasterSlave.value('@Applicability','nvarchar(255)') Apple - ,IsNull(xMasterSlave.value('@Applicability','nvarchar(255)'),ZZ.ParApple) DerApple - ,ZZ.ParApple - , II.[ItemID], II.[ContentID] - from Itemz ZZ - join Items II on II.PreviousID = ZZ.ItemID - JOIN (Select ContentID, cast(config as XML) xConfig FROM Contents) CC ON II.ContentID = CC.ContentID - outer apply xConfig.nodes('//MasterSlave') tMasterSlave(xMasterSlave) - Where Level >= 1 - ) - insert into @Apples - select @ProcID ProcID, ItemID, ContentID, Apple, DerApple--, [ItemID], [ContentID] - from ItemZ II - OPTION (MAXRECURSION 10000) -END - - -DECLARE @Chrono TABLE -( -[AuditID] bigint, -[ContentID] int, -[Number] nvarchar(max), -[Text] nvarchar(max), -[Type] int, -[FormatID] int, -[Config] nvarchar(max), -[DTS] datetime, -[UserID] nvarchar(max), -[DeleteStatus] int, -[ActionDTS] datetime, -[ActionWhat] nvarchar(max), -[ActionWhen] datetime, -[Path] nvarchar(max), -ItemID int, -TypeName nvarchar(max), -ordinalpath nvarchar(max) -) - --- Use the Applicability Table to limit Items included in the list of changes -insert into @Chrono -select Distinct VC.* from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) VC -Left JOIN @Apples AA ON AA.ContentID = VC.ContentID -Where aa.ContentID is null or AA.DerApple = '-1' or ',' + AA.DerApple + ',' like '%,' + cast(@UnitID as varchar(10)) + ',%' - -Declare @Audits TABLE -( -AuditID int primary key -) --- Create a Unique list of Minimum and Maximum AuditIDs for Each ContentID -insert into @Audits -select min(auditID) from @Chrono group by contentid UNION select max(auditID) from @Chrono group by contentid --- Return the List Of Changes with the first Audit Record and the Last Audit Record -select * from @Chrono -where AuditID is null OR AuditID in (select AuditID from @Audits) -order by OrdinalPath, contentid,auditid - - RETURN -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsSummaryByItemIDandUnitID Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsSummaryByItemIDandUnitID Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getCurrentRevisionByItemIDandUnitID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[getCurrentRevisionByItemIDandUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [dbo].[getCurrentRevisionByItemIDandUnitID]; -GO - -/****** Object: StoredProcedure [dbo].[getCurrentRevisionByItemIDandUnitID] Script Date: 06/22/2012 16:58:12 ******/ -/* -getCurrentRevisionByItemID 41 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getCurrentRevisionByItemIDandUnitID] -( - @ItemID int, - @UnitID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [Revisions].[RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] -inner join -( -select top 1 revisionid,mxvid from -( -select rr.revisionid,max(vv.versionid) mxvid -from items ii -inner join revisions rr on ii.itemid = rr.itemid -inner join versions vv on rr.revisionid = vv.revisionid -inner join stages ss on vv.stageid = ss.stageid -cross apply rr.config.nodes('Config/Applicability') t1(r1) -where ss.isapproved = 1 -and ii.itemid = @ItemID -and r1.value('@Index','int') = @UnitID -group by rr.revisionid -union -select null,null -) ds -order by mxvid desc -) rr on [Revisions].revisionid = rr.revisionid --- WHERE [ItemID] = @ItemID --- ORDER BY [RevisionID] DESC - RETURN -GO -IF (@@Error = 0) PRINT 'StoredProcedure [getCurrentRevisionByItemIDandUnitID] Succeeded' -ELSE PRINT 'StoredProcedure [getCurrentRevisionByItemIDandUnitID] Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getDocumentByLibDoc] Script Date: 01/30/2012 14:08:10 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocumentByLibDoc]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocumentByLibDoc]; -GO - --- [dbo].[getDocumentByLibDoc] 'DOC_0000',4 --- [dbo].[getDocumentByLibDoc] 'DOC_0000',3 --- [dbo].[getDocumentByLibDoc] 'DOC_0000',2 --- [dbo].[getDocumentByLibDoc] 'DOC_0000',1 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocumentByLibDoc] - -( - @LibDoc varchar(12), - @VersionID int -) -WITH EXECUTE AS OWNER -AS - DECLARE @DocID int - select @DocID = docid - from - ( - select - distinct ah.docid,.dbo.vefn_GetVersionIDByItemID(ii.itemid) versionid - from - ( - select dd.docid,ofn.value('@OriginalFileName','varchar(20)') origfilename,dts - from (select docid,cast(config as xml) xconfig,dts from documents) dd - cross apply xconfig.nodes('//History') t1(ofn) - ) ah - inner join entries ee on ah.docid = ee.docid - inner join items ii on ee.contentid = ii.itemid - where origfilename = @LibDoc + '.LIB' - ) ah - where versionid = @VersionID - --- from (select docid,cast(config as xml) xconfig from documents) ah --- cross apply xconfig.nodes('//Config/History') t1(roc) --- where roc.value('@OriginalFileName','varchar(12)') = @LibDoc + '.LIB' - - SELECT - [DocID], - [LibTitle], - [DocContent], - [DocAscii], - [Config], - [DTS], - [UserID], - [LastChanged], - [FileExtension], - (SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[DocID]=[Documents].[DocID]) [DROUsageCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[DocID]=[Documents].[DocID]) [EntryCount], - (SELECT COUNT(*) FROM [Pdfs] WHERE [Pdfs].[DocID]=[Documents].[DocID]) [PdfCount] - FROM [Documents] - WHERE [DocID]=@DocID - - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [RODbs].[ROName] [RODb_ROName], - [RODbs].[FolderPath] [RODb_FolderPath], - [RODbs].[DBConnectionString] [RODb_DBConnectionString], - [RODbs].[Config] [RODb_Config], - [RODbs].[DTS] [RODb_DTS], - [RODbs].[UserID] [RODb_UserID] - FROM [DROUsages] - JOIN [RODbs] ON - [RODbs].[RODbID]=[DROUsages].[RODbID] - WHERE - [DROUsages].[DocID]=@DocID - - - SELECT - [Entries].[ContentID], - [Entries].[DocID], - [Entries].[DTS], - [Entries].[UserID], - [Entries].[LastChanged], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [Entries] - JOIN [Contents] ON - [Contents].[ContentID]=[Entries].[ContentID] - WHERE - [Entries].[DocID]=@DocID - - - SELECT - [Pdfs].[DocID], - [Pdfs].[DebugStatus], - [Pdfs].[TopRow], - [Pdfs].[PageLength], - [Pdfs].[LeftMargin], - [Pdfs].[PageWidth], - [Pdfs].[PageCount], - [Pdfs].[DocPdf], - [Pdfs].[DTS], - [Pdfs].[UserID], - [Pdfs].[LastChanged] - FROM [Pdfs] - WHERE - [Pdfs].[DocID]=@DocID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocumentByLibDoc Succeeded' -ELSE PRINT 'Procedure Creation: getDocumentByLibDoc Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getRevisionByItemIDandRevisionNumberAndUnitID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[getRevisionByItemIDandRevisionNumberAndUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [dbo].[getRevisionByItemIDandRevisionNumberAndUnitID]; -GO - -/****** Object: StoredProcedure [dbo].[getRevisionByItemIDandRevisionNumberAndUnitID] Script Date: 06/25/2012 23:05:17 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRevisionByItemIDandRevisionNumberAndUnitID] - -( - @ItemID int, - @RevisionNumber nvarchar(50), - @UnitID int -) -WITH EXECUTE AS OWNER -AS -declare @RevisionID int -set @RevisionID = (select revisionid from revisions rr cross apply rr.config.nodes('//Applicability') t1(r1) where itemid = @itemid and revisionnumber = @RevisionNumber and r1.value('@Index','int') = @UnitID) - SELECT - [RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] - WHERE [RevisionID]=@RevisionID - - SELECT - [Checks].[CheckID], - [Checks].[RevisionID], - [Checks].[StageID], - [Checks].[ConsistencyChecks], - [Checks].[DTS], - [Checks].[UserID], - [Checks].[LastChanged], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Checks] - JOIN [Stages] ON - [Stages].[StageID]=[Checks].[StageID] - WHERE - [Checks].[RevisionID]=@RevisionID - - - SELECT - [Versions].[VersionID], - [Versions].[RevisionID], - [Versions].[StageID], - [Versions].[DTS], - [Versions].[UserID], - [Versions].[LastChanged], - [Versions].[PDF], - [Versions].[SummaryPDF], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Versions] - JOIN [Stages] ON - [Stages].[StageID]=[Versions].[StageID] - WHERE - [Versions].[RevisionID]=@RevisionID - - RETURN -GO -IF (@@Error = 0) PRINT 'StoredProcedure [getRevisionByItemIDandRevisionNumberAndUnitID] Succeeded' -ELSE PRINT 'StoredProcedure [getRevisionByItemIDandRevisionNumberAndUnitID] Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getRevisionsByItemIDandUnitID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[getRevisionsByItemIDandUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [dbo].[getRevisionsByItemIDandUnitID]; -GO - -/****** Object: StoredProcedure [dbo].[getRevisionsByItemIDandUnitID] Script Date: 06/26/2012 16:22:32 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRevisionsByItemIDandUnitID] -( - @ItemID int, - @UnitID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] -cross apply config.nodes('//Applicability') t1(r1) - WHERE [ItemID] = @ItemID -and r1.value('@Index','int') = @UnitID -and (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) > 0 - ORDER BY [RevisionID] DESC - RETURN -GO -IF (@@Error = 0) PRINT 'StoredProcedure [getRevisionsByItemIDandUnitID] Succeeded' -ELSE PRINT 'StoredProcedure [getRevisionsByItemIDandUnitID] Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_GetItemApplicability] Script Date: 03/28/2012 17:58:48 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetItemApplicability]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetItemApplicability]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetItemApplicability] (@ItemID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @apple varchar(max) - select @apple = r2.value('@Applicability','varchar(max)') - from - ( - select itemid,cast(config as xml) xconfig from items ii join contents cc on ii.contentid = cc.contentid - ) t1 - outer apply xconfig.nodes('//MasterSlave') t2(r2) - where itemid = @ItemID - return @apple -END -GO -IF (@@Error = 0) PRINT 'ScalerFunction [vefn_GetItemApplicability] Succeeded' -ELSE PRINT 'ScalerFunction [vefn_GetItemApplicability] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ParentItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ParentItems]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_ParentItems] Script Date: 10/12/2012 16:12:01 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -select * from [dbo].[vefn_ParentItems](212) -select * from [dbo].[vefn_ParentItems](48) -select * from [dbo].[vefn_ParentItems](49) -select * from [dbo].[vefn_ParentItems](50) -select * from [dbo].[vefn_ParentItems](51) -select * from [dbo].[vefn_ParentItems](52) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ParentItems](@ItemID int) -RETURNS @Parents TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Relationship], [ItemID], [ContentID], [PreviousID]) as ( - Select 1 [Relationship], [ItemID], [ContentID], [PreviousID] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Parents - select 2 [Relationship], I.[ItemID], I.[ContentID], I.[PreviousID] - from Itemz Z - join Parts P on P.ItemID = Z.ItemID - join Items I on I.ContentID = P.ContentID --- Siblings -Union All - select 0 [Relationship] , I.[ItemID], I.[ContentID], I.[PreviousID] - from Itemz Z - join Items I on Z.PreviousID = I.ItemID -) -insert into @Parents select ItemID, ContentID from Itemz where Relationship > 0 -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_ParentItems Succeeded' -ELSE PRINT 'Function: vefn_ParentItems Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetItemDerivedApplicability]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetItemDerivedApplicability]; -GO - -/****** Object: UserDefinedFunction [dbo].[ve_GetItemDerivedApplicability] Script Date: 10/13/2012 00:57:34 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select [dbo].[ve_GetItemDerivedApplicability](48) -select [dbo].[ve_GetItemDerivedApplicability](49) -select [dbo].[ve_GetItemDerivedApplicability](50) -select [dbo].[ve_GetItemDerivedApplicability](51) -select [dbo].[ve_GetItemDerivedApplicability](52) ---Prairie Island -select [dbo].[ve_GetItemDerivedApplicability](29544) [ParentChild] -select [dbo].[ve_GetItemDerivedApplicability](123816) [ParentChild] -select [dbo].[ve_GetItemDerivedApplicability](125916) [ParentChild] -select [dbo].[ve_GetItemDerivedApplicability](26955) [NonParentChild] -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetItemDerivedApplicability] (@ItemID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @apple varchar(max) - select @apple = dbo.ve_getitemapplicability(@ItemID) - if @apple is null - begin - declare @ParentID int - select @ParentID = dbo.ve_getparentitem(@ItemID) - if @parentid is not null - set @apple = dbo.ve_GetItemDerivedApplicability(@ParentID) - else - begin - select @apple = coalesce(@apple + ',','') + r2.value('@index','varchar(max)') from - (select cast(config as xml) xconfig from docversions - where versionid = dbo.vefn_GetVersionIDByItemID(@ItemID)) ah - cross apply xconfig.nodes('//Slave') t2(r2) - if(@apple is null) -- Non PC P/C Item - BEGIN -- Get maximum Applicabilty - declare @n int - select @n=max(xSlave.value('@index','int')) from ( - select versionID, Cast(config as xml) xConfig from DocVersions) t1 - cross apply xconfig.nodes('//Slave') tSlave(xSlave) - if(@n is not null) - begin -- Build a list based upon the maximum - with cte(ii) as (select 1 ii union all select ii+1 from cte where ii < @n) - select @apple = coalesce(@apple+',','') + cast(ii as varchar(max)) from cte - end - if(@apple is null)Set @Apple='' - END - end - end - return @apple -END -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: ve_GetItemDerivedApplicability Succeeded' -ELSE PRINT 'Function: ve_GetItemDerivedApplicability Error on Creation' -GO -------- - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetItemAppliedApplicability]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetItemAppliedApplicability]; -GO - -/****** Object: UserDefinedFunction [dbo].[ve_GetItemAppliedApplicability] Script Date: 09/17/2018 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select [dbo].[ve_GetItemAppliedApplicability](48) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2018 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetItemAppliedApplicability] (@ItemID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @apple varchar(max) - select @apple = dbo.ve_getitemapplicability(@ItemID) - if(@apple is null)Set @Apple='' - /*** - begin - declare @ParentID int - select @ParentID = dbo.ve_getparentitem(@ItemID) - if @parentid is not null - set @apple = dbo.ve_GetItemDerivedApplicability(@ParentID) - else - begin - select @apple = coalesce(@apple + ',','') + r2.value('@index','varchar(max)') from - (select cast(config as xml) xconfig from docversions - where versionid = dbo.vefn_GetVersionIDByItemID(@ItemID)) ah - cross apply xconfig.nodes('//Slave') t2(r2) - if(@apple is null) -- Non PC P/C Item - BEGIN -- Get maximum Applicabilty - declare @n int - select @n=max(xSlave.value('@index','int')) from ( - select versionID, Cast(config as xml) xConfig from DocVersions) t1 - cross apply xconfig.nodes('//Slave') tSlave(xSlave) - if(@n is not null) - begin -- Build a list based upon the maximum - with cte(ii) as (select 1 ii union all select ii+1 from cte where ii < @n) - select @apple = coalesce(@apple+',','') + cast(ii as varchar(max)) from cte - end - if(@apple is null)Set @Apple='' - END - end - end - ***/ - return @apple -END -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: ve_GetItemDerivedApplicability Succeeded' -ELSE PRINT 'Function: ve_GetItemDerivedApplicability Error on Creation' -GO - -------- -/****** Object: UserDefinedFunction [dbo].[vefn_GetParentItem] Script Date: 03/28/2012 17:58:48 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetParentItem]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetParentItem]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetParentItem] (@ItemID int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @ParentID int; -WITH Itemz([ItemID],[IsFound]) as -( -select ii.itemid,0 from items ii where ii.itemid = @ItemID -union all -select ii.previousid,0 from items ii -join itemz zz on ii.itemid = zz.itemid -where ii.previousid is not null -and zz.isfound = 0 -union all -select ii.itemid,1 -from parts pp -join itemz zz on pp.itemid = zz.itemid -join items ii on ii.contentid = pp.contentid -) -select top 1 @ParentID = itemid from itemz -where isfound = 1 OPTION (MAXRECURSION 10000) -RETURN @ParentID -END -GO - -IF (@@Error = 0) PRINT 'ScalerFunction [vefn_GetParentItem] Succeeded' -ELSE PRINT 'ScalerFunction [vefn_GetParentItem] Error on Creation' -go - -/****** Object: UserDefinedFunction [dbo].[vefn_CanTransitionBeCreated] Script Date: 10/14/2012 02:03:30 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CanTransitionBeCreated]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_CanTransitionBeCreated]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select dbo.vefn_CanTransitionBeCreated(49,51) -select dbo.vefn_CanTransitionBeCreated(51,49) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_CanTransitionBeCreated](@fromID int, @toID int) RETURNS int -AS BEGIN - declare @rv int - declare @tCount int - declare @uCount int - set @rv = 0 - select @tCount = count(*) from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@toID),',') - select @uCount = count(*) from - ( - select * from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@fromID),',') - union - select * from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@toID),',') - ) ah - if (@tCount = 0) or (@tCount >= @uCount) begin - set @rv = 1 - end - return @rv -END -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_CanTransitionBeCreated Succeeded' -ELSE PRINT 'Function: vefn_CanTransitionBeCreated Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_GetVersionIDByItemID] Script Date: 02/03/2012 16:48:32 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionIDByItemID]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetVersionIDByItemID]; -GO - -/* -select dbo.vefn_GetVersionIDByItemID(41) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create function [dbo].[vefn_GetVersionIDByItemID] -(@ItemID int) -returns int -as begin - declare @VersionID int; - with itemz - ( - itemid,previousid,versionid - ) as - ( - select itemid,previousid,null - from items ii - join contents cc on ii.contentid = cc.contentid - where itemid = @ItemID - --siblins - union all - select ii.itemid,ii.previousid,null - from items ii - join contents cc on ii.contentid = cc.contentid - join itemz zz on zz.previousid = ii.itemid - where zz.versionid is null - --chillins - union all - select ii.itemid,ii.previousid,null - from parts pp - join items ii on ii.contentid = pp.contentid - join contents cc on ii.contentid = cc.contentid - join itemz zz on zz.itemid = pp.itemid - where zz.versionid is null - --docversions - union all - select 0,0,dv.versionid - from docversions dv - join itemz zz on dv.itemid = zz.itemid - where zz.versionid is null - ) - select @VersionID = versionid from itemz zz - where versionid is not null - OPTION (MAXRECURSION 10000) - return @VersionID -end -GO --- Display the status of Func creation -IF (@@Error = 0) PRINT 'Function Creation: vefn_GetVersionIDByItemID Succeeded' -ELSE PRINT 'Function Creation: vefn_GetVersionIDByItemID Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_WillTransitionBeValidFrom] Script Date: 10/16/2012 18:17:37 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_WillTransitionBeValidFrom]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_WillTransitionBeValidFrom]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select dbo.vefn_WillTransitionBeValidFrom(194,'2') -select dbo.vefn_WillTransitionBeValidFrom(216,'2') -select dbo.vefn_WillTransitionBeValidFrom(246,'2') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_WillTransitionBeValidFrom](@toID int, @newAppl varchar(max)) RETURNS int -AS BEGIN - declare @rv int - declare @tCount int - declare @uCount int - set @rv = 0 - select @tCount = count(*) from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@toID),',') - select @uCount = count(*) from - ( - select * from vefn_SplitInt(@newAppl,',') - union - select * from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@toID),',') - ) ah - if @tCount >= @uCount begin - set @rv = 1 - end - return @rv -END -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_WillTransitionBeValidFrom Succeeded' -ELSE PRINT 'Function: vefn_WillTransitionBeValidFrom Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_WillTransitionBeValidTo] Script Date: 10/16/2012 18:20:23 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_WillTransitionBeValidTo]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_WillTransitionBeValidTo]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select dbo.vefn_WillTransitionBeValidTo(10617,'2') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_WillTransitionBeValidTo](@toID int, @newAppl varchar(max)) RETURNS int -AS BEGIN - declare @rv int - declare @tCount int - declare @uCount int - set @rv = 0 - select @tCount = count(*) from vefn_SplitInt(@newAppl,',') - select @uCount = count(*) from - ( - select * from vefn_SplitInt(@newAppl,',') - union - select * from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@toID),',') - ) ah - if @tCount >= @uCount begin - set @rv = 1 - end - return @rv -END -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_WillTransitionBeValidTo Succeeded' -ELSE PRINT 'Function: vefn_WillTransitionBeValidTo Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[vesp_CanTransitionBeCreated] Script Date: 10/15/2012 14:37:32 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_CanTransitionBeCreated]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_CanTransitionBeCreated]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -exec vesp_CanTransitionBeCreated 46,180 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_CanTransitionBeCreated] -( - @fromItemID int, - @toItemID int -) -AS BEGIN - select dbo.vefn_CanTransitionBeCreated(@fromItemID,@toItemID) Status, - dbo.ve_GetItemDerivedApplicability(@fromItemID) fromAppl, - dbo.ve_GetItemDerivedApplicability(@toItemID) toAppl, - dbo.ve_GetShortPath(@fromItemID) fromStep, - dbo.ve_GetShortPath(@toItemID) toStep -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_CanTransitionBeCreated Succeeded' -ELSE PRINT 'Procedure Creation: vesp_CanTransitionBeCreated Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[vesp_ListItemAndChildrenByUnit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[vesp_ListItemAndChildrenByUnit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [dbo].[vesp_ListItemAndChildrenByUnit]; -GO - -/****** Object: StoredProcedure [dbo].[vesp_ListItemAndChildrenByUnit] Script Date: 05/02/2012 23:16:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - --- vesp_ListItemAndChildrenByUnit 29546,0,'8' --- drop procedure [vesp_ListItemAndChildren] -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemAndChildrenByUnit] (@ItemID int, @ParentID int, @UnitID varchar(max)) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([apple],[Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 1 [apple],0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select case when s1.value('@Applicability','varchar(max)') is null or ',' + s1.value('@Applicability','varchar(max)') + ',' like '%,' + @UnitID + ',%' then 1 else 0 end apple -,[Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join (select ContentID,cast(Config as xml) xConfig from Contents) C on C.ContentID = I.ContentID - outer apply C.xConfig.nodes('//MasterSlave') m1(s1) -where Z.[Apple] = 1 --- Siblings -Union All - select case when s1.value('@Applicability','varchar(max)') is null or ',' + s1.value('@Applicability','varchar(max)') + ',' like '%,' + @UnitID + ',%' then 1 else 0 end apple -,[Level] ,Z.[ParentID], -case when Z.[Apple] = 1 then Z.[Ordinal] +1 else Z.[Ordinal] end, I.[ItemID], -case when Z.[Apple] = 1 then I.[PreviousID] else Z.[PreviousID] end, [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join (select ContentID,cast(Config as xml) xConfig from Contents) C on C.ContentID = I.ContentID - outer apply C.xConfig.nodes('//MasterSlave') m1(s1) - where Z.[Level] > 0 -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - CASE WHEN I.ItemID IN (SELECT ParentID FROM ItemZ WHERE apple = 1) THEN (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) ELSE 0 END [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID -where i.apple = 1 - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Procedure Creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemAndChildrenByUnit Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemAndChildrenByUnit Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[vesp_WillTransitionsBeValid] Script Date: 10/15/2012 14:37:32 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_WillTransitionsBeValid]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_WillTransitionsBeValid]; -GO -/* -dbo.vesp_WillTransitionsBeValid 10616,'2' -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [DBO].[vesp_WillTransitionsBeValid] -( - @ItemID int, - @NewAppl varchar(max) -) -WITH EXECUTE AS OWNER -AS BEGIN - select *, dbo.ve_GetShortPath(@ItemID) SrcStep, dbo.ve_GetShortPath(myitemid) TgtStep - from - ( - select tt.toid MyItemID, dbo.vefn_WillTransitionBeValidFrom(tt.toid,@NewAppl) Valid, @NewAppl SrcAppl, dbo.ve_GetItemDerivedApplicability(tt.toid) TgtAppl - from transitions tt - inner join items ii on tt.fromid = ii.contentid - where fromid in (select contentid from dbo.vefn_childitems(@ItemID)) - union - select ii.itemid MyItemID, dbo.vefn_WillTransitionBeValidTo(ii.itemid,@NewAppl) Valid, dbo.ve_GetItemDerivedApplicability(ii.itemid) SrcAppl, @NewAppl TgtAppl - from transitions tt - inner join items ii on tt.fromid = ii.contentid - where toid in (select itemid from dbo.vefn_childitems(@ItemID)) - ) ah - where Valid = 0 -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_WillTransitionsBeValid Succeeded' -ELSE PRINT 'Procedure Creation: vesp_WillTransitionsBeValid Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[vefn_NextCount] Script Date: 02/05/2013 11:58:00 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_NextCount]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP Function [vefn_NextCount]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create FUNCTION [dbo].[vefn_NextCount](@ItemID int) -RETURNS Int -WITH EXECUTE AS OWNER -AS -BEGIN -declare @Count int; -with Itemz([NextCnt], [ItemID], [PreviousID]) as ( - Select 0 [NextCnt], [ItemID], [PreviousID] - FROM [Items] - where [ItemID]=@ItemID --- Siblings -Union All - select Z.[NextCnt] +1, I.[ItemID], I.[PreviousID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -Select @Count = Count(*) from Itemz -OPTION (MAXRECURSION 10000) -RETURN @Count -END -GO -IF (@@Error = 0) PRINT 'Function Creation: vefn_NextCount Succeeded' -ELSE PRINT 'Function Creation: vefn_NextCount Error on Creation' -GO -/****** Object: StoredProcedure [vesp_ListItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItems]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItems]; -GO - ---vesp_ListItems 1 - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItems] -( -@ItemID int = 0 -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz(knt, ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged]) as ( - Select 0 knt, ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged] - from Items - where ItemID=@ItemID - Union All --- - Select Z.knt + 1,C.ItemID,C.PreviousID,C.ContentID,C.[DTS],C.[UserID],C.[LastChanged] - from Items C - Join Itemz Z on C.PreviousID=Z.ItemID -) -Select ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[Itemz].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[Itemz].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[Itemz].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[Itemz].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[Itemz].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[Itemz].[ItemID]) [Transition_ToIDCount] -from Itemz order by knt -OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItems Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItems Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListItemsAndContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsAndContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsAndContent]; -GO - ---vesp_ListItemsAndContent 1 - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsAndContent] -( -@ItemID int = 0 -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz(knt, ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged]) as ( - Select 0 knt, ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged] - from Items - where ItemID=@ItemID - Union All --- - Select z.knt + 1, I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged] - from Items I - Join Itemz Z on I.PreviousID=Z.ItemID -) -Select I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] -from Itemz I Join Contents C on I.ContentID = C.ContentID Order by knt -OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsAndContent Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsAndContent Error on Creation' -GO -/****** Object: StoredProcedure [vesp_SortProcedures] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SortProcedures]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SortProcedures]; -GO - -/* -select versionid, ff.folderid, ff.name,itemid -from docversions dv -join folders ff on dv.folderid=ff.folderid - -Westinghouse Data -exec vesp_SortProcedures 1 -- Abnormal Procedures ---exec vesp_SortProcedures 4 -- Emergency Operating Procedures - Rev 2 -exec vesp_SortProcedures 5 -- System Operating Procedures -exec vesp_SortProcedures 6 -- Maintenance, Test, Inspection, Surveillance Procedures ---exec vesp_SortProcedures 7 -- Severe Accident Management Guidelines ---exec vesp_SortProcedures 8 -- Emergency Response Guidelines -exec vesp_SortProcedures 9 -- General Operating Procedures -exec vesp_SortProcedures 11 -- Post 72-Hour Procedures 103811 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SortProcedures]( @VersionID int ) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @TopID int - select @TopID = ItemID from DocVersions where versionID = @VersionID - DECLARE @Procs TABLE - ( - ItemID int PRIMARY KEY, - ProcNum nvarchar(255) - ) - DECLARE @Organize TABLE - ( - ItemID int PRIMARY KEY, - NewPreviousID int - ) - DECLARE @NewTopID as int - INSERT INTO @Procs select ZZ.ItemID, isnull(Replace(CC.Number,'\u8209?','-'),'') + ':' + substring('0000000000000000' + cast(ItemID as varchar(16)), 1+ len( cast(ItemID as varchar(16))), 16) ProcNum from vefn_SiblingItems(@TopID,0) ZZ Join Contents CC on CC.ContentID = ZZ.ContentID - --INSERT INTO @Procs select ZZ.ItemID, isnull(Replace(Replace(CC.Number,'\u8209?','-'),'\','\u9586?'),'') + ':' + substring('0000000000000000' + cast(ItemID as varchar(16)), 1+ len( cast(ItemID as varchar(16))), 16) ProcNum from vefn_SiblingItems(@TopID,0) ZZ Join Contents CC on CC.ContentID = ZZ.ContentID - --select * from @Procs order by ProcNum + cast(ItemID as nvarchar(max)) - select top 1 @NewTopID = ItemID from @Procs order by ProcNum - INSERT INTO @Organize - select ItemID, (select top 1 ItemID from @Procs P2 where P1.ProcNum > P2.ProcNum order by P2.ProcNum DESC ) NewPreviousID - from @Procs P1 order by isnull(ProcNum,'') + cast(ItemID as nvarchar(max)) - --select * from @Organize - Update DocVersions Set ItemID = @NewTopID where versionID = @VersionID - Update II Set II.PreviousID = ZZ.NewPreviousID - from Items II join @Organize ZZ On II.ItemID = ZZ.ItemID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SortProcedures Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SortProcedures Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_RemoveExtraText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_RemoveExtraText]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_RemoveExtraText]; -GO - -/* -select text, .dbo.vefn_RemoveExtraText(text,2,0,0) StrippedText from Contents where ContentID=373 -select text, .dbo.vefn_RemoveExtraText(text,1,0,0) StrippedText from Contents where ContentID=373 -select text, .dbo.vefn_RemoveExtraText(text,0,0,0) StrippedText ,.dbo.vefn_FirstLink(text,0), PATINDEX('%[' + nchar(9516) + nchar(9574) + char(21) + ']%' , text) from Contents where ContentID=373 -select .dbo.vefn_RemoveExtraText('\b Bold\b0',0,0,0) -select .dbo.vefn_RemoveExtraText('\b Bold\b0',0,1,0) -select .dbo.vefn_RemoveExtraText('A\u1?B\u12?C\u123?D\u1234?E',0,0,0) -select .dbo.vefn_RemoveExtraText('A\u1?B\u12?C\u123?D\u1234?E',0,0,1) -*/ - - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_RemoveExtraText](@text nvarchar(MAX),@includeLink int, @includeRtfFormatting int , @includeSpecialCharacters int) -RETURNS varchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @index int -DECLARE @index2 int --- Replace Hard Hyphen with Hyphen -SET @text = replace(@text,'\u8209?','-') ---SET @text = replace(replace(@text,'\u8209?','-'),'\u9586?','\') --- Replace Hard Space with Space --- commenting out the bottom two lines will fix the global search for hard space bug (B2014-056) ---SET @text = replace(@text,'\u160?',' ') ---set @text = replace(@text,nchar(160),' ') --- Strip Links -IF @includeLink = 0 -- Remove Links - SET @text = [dbo].[vefn_RemoveRange](@text,'') -IF @includeLink < 2 -- Remove Comments - SET @text = [dbo].[vefn_RemoveRange](@text,'\v' ,'\v0') -if(@includeRtfFormatting=0) - -- Remove Rtf Formatting - BEGIN - -- B2022-082: underline/bold of word removes space between 2 words so was not finding cases - SET @text = Replace(@text, '\ulnone\b0 ', ''); - SET @text = Replace(@text, '\b0\ulnone ', ''); - SET @text = Replace(@text, '\b0 ', ''); - SET @text = Replace(@text, '\b ', ''); - SET @text = Replace(@text, '\ulnone ', ''); - SET @text = Replace(@text, '\ul0 ', ''); - SET @text = Replace(@text, '\ul ', ''); - SET @text = Replace(@text, '\i0 ', ''); - SET @text = Replace(@text, '\i ', ''); - SET @text = Replace(@text, '\super ', ''); - SET @text = Replace(@text, '\sub ', ''); - SET @text = Replace(@text, '\nosupersub ', ''); - SET @text = Replace(@text, '\up2 ', ''); - SET @text = Replace(@text, '\up0 ', ''); - SET @text = Replace(@text, '\up3 ', ''); - SET @text = Replace(@text, '\dn2 ', ''); - SET @text = Replace(@text, '\dn3 ', ''); - SET @text = Replace(@text, '\b0', ''); - SET @text = Replace(@text, '\b', ''); - SET @text = Replace(@text, '\ul0', ''); - SET @text = Replace(@text, '\ul', ''); - SET @text = Replace(@text, '\i0', ''); - SET @text = Replace(@text, '\i', ''); - SET @text = Replace(@text, '\super', ''); - SET @text = Replace(@text, '\sub', ''); - SET @text = Replace(@text, '\nosupersub', ''); - SET @text = Replace(@text, '\up2', ''); - SET @text = Replace(@text, '\up0', ''); - SET @text = Replace(@text, '\up3', ''); - SET @text = Replace(@text, '\dn2', ''); - SET @text = Replace(@text, '\dn3', ''); - END -if(@includeSpecialCharacters=0) - -- Remove Special Characters - BEGIN - SET @index = PATINDEX('%\u[0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+4,len(@text)) - SET @index = PATINDEX('%\u[0-9]?%',@text) - END - SET @index = PATINDEX('%\u[0-9][0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+5,len(@text)) - SET @index = PATINDEX('%\u[0-9][0-9]?%',@text) - END - SET @index = PATINDEX('%\u[0-9][0-9][0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+6,len(@text)) - SET @index = PATINDEX('%\u[0-9][0-9][0-9]?%',@text) - END - SET @index = PATINDEX('%\u[0-9][0-9][0-9][0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+7,len(@text)) - SET @index = PATINDEX('%\u[0-9][0-9][0-9][0-9]?%',@text) - END - SET @index = PATINDEX('%\''[0-9A-Fa-f][0-9A-Fa-f]%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+4,len(@text)) - SET @index = PATINDEX('%\''[0-9A-Fa-f][0-9A-Fa-f]%',@text) - END - - END - -- Replace Hyphen with Hard Hyphen -SET @text = replace(@text,'-','\u8209?') ---SET @text = replace(replace(@text,'-','\u8209?'),'\','\u9586?') - -RETURN @text -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_RemoveExtraText Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_RemoveExtraText Error on Creation' -GO - - -/****** Object: Table Function [vefn_FindSpecialChars] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindSpecialChars]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindSpecialChars]; -GO - -/* - -select * from vefn_FindSpecialChars('\u160?\ulnone \u8209?') - -select MIN(ContentID) MinContentID,Count(*) HowMany,UChar SpecialChar from Contents -cross apply vefn_FindSpecialChars(text) SC -where text like '%\u[0-9]%' -group by UChar - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindSpecialChars](@text varchar(MAX)) -RETURNS @SpecialChars TABLE -( - uchar varchar(10) -) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @index1 int - DECLARE @index2 int - SET @index1 = -1 - SET @index1 = PATINDEX('%\u[0-9]%' , @text) - WHILE (@index1 > 0) - BEGIN - SET @index2 = CHARINDEX('?' , @text, @index1 + 3) - if @index2 > 0 - BEGIN - INSERT INTO @SpecialChars VALUES (substring(@text,@index1,1 + @index2-@index1)) - SET @Text = substring(@text,@index2 + 1,len(@text)) - END - SET @index1 = PATINDEX('%\u[0-9]%' , @text) - END - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindSpecialChars Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindSpecialChars Error on Creation' -GO - -/****** Object: Table Function [vefn_FindSpecialChars2] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindSpecialChars2]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindSpecialChars2]; -GO - -/* - -select * from vefn_FindSpecialChars2(nchar(255) + nchar(8209) + nchar(160)) - -select MIN(ContentID) MinContentID,Count(*) HowMany,UChar SpecialChar from Contents -cross apply vefn_FindSpecialChars2(text) SC -group by UChar - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindSpecialChars2](@text nvarchar(MAX)) -RETURNS @SpecialChars TABLE -( - uchar int -) -WITH EXECUTE AS OWNER -AS -BEGIN - WHILE (len(@text) > 0) - BEGIN - if(unicode(@text) > 127) - INSERT INTO @SpecialChars VALUES (unicode(@text)) - SET @Text = substring(@text,2,len(@text)) - END - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindSpecialChars2 Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindSpecialChars2 Error on Creation' -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[MoveItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [MoveItem]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[MoveItem](@ItemID int, @Index int) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @ItemsChanged TABLE - ( - ItemID int Primary Key - ) - DECLARE @Siblings TABLE - ( - ItemID int PRIMARY KEY, - Ordinal int - ) - DECLARE @OldPreviousID int - SELECT @OldPreviousID = PreviousID FROM [Items] where ItemID = @ItemID - DECLARE @OldNextID int - SELECT @OldNextID = ItemID FROM [Items] where PreviousID = @ItemID - insert into @Siblings select * from vefn_AllSiblingItems(@ItemID) - DECLARE @NewNextID int - SELECT @NewNextID = ItemID from @Siblings where Ordinal = @index - DECLARE @NewPreviousID int - SELECT @NewPreviousID = ItemID from @Siblings where Ordinal = @index -1 - --PRINT '****************************************************************' - --PRINT '@ItemID = ' + isnull(Cast( @ItemID as varchar(20)),'{null}') - --PRINT '@OldPreviousID = ' + isnull(Cast( @OldPreviousID as varchar(20)),'{null}') - --PRINT '@OldNextID = ' + isnull(Cast( @OldNextID as varchar(20)),'{null}') - --PRINT '@NewPreviousID = ' + isnull(Cast( @NewPreviousID as varchar(20)),'{null}') - --PRINT '@NewNextID = ' + isnull(Cast( @NewNextID as varchar(20)),'{null}') - Update Items set PreviousID = @NewPreviousID where ItemID = @ItemID - Insert INTO @ItemsChanged Select @ItemID - IF @OldNextID is not Null - BEGIN - Update Items set PreviousID = @OldPreviousID where ItemID = @OldNextID - Insert INTO @ItemsChanged Select @OldNextID - END - IF @NewNextID is not Null - BEGIN - Update Items set PreviousID = @ItemID where ItemID = @NewNextID - Insert INTO @ItemsChanged Select @NewNextID - END - IF @OldPreviousID is null - BEGIN - Update Parts set ItemID = @OldNextID where ItemID = @ItemID - Update DocVersions set ItemID = @OldNextID where ItemID = @ItemID - END - IF @NewPreviousID is null - BEGIN - Update Parts set ItemID = @ItemID where ItemID = @NewNextID - Update DocVersions set ItemID = @ItemID where ItemID = @NewNextID - END - SELECT - ii.[ItemID], - [PreviousID], - ii.[ContentID], - ii.[DTS], - ii.[UserID], - ii.[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ii.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ii.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ii.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ii.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ii.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ii.[ItemID]) [Transition_ToIDCount] - FROM [Items] ii - WHERE ItemID in (Select ItemID from @ItemsChanged) - IF( @@TRANCOUNT > 0 ) - BEGIN - PRINT 'COMMIT' - COMMIT - END -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) - BEGIN - PRINT 'ROLLBACK' - ROLLBACK -- Only rollback if top level - END - ELSE IF( @@TRANCOUNT > 1 ) - BEGIN - PRINT 'COMMIT' - COMMIT -- Otherwise commit. Top level will rollback - END - EXEC vlnErrorHandler -END CATCH -GO -IF (@@Error = 0) PRINT 'Procedure Creation: MoveItem Succeeded' -ELSE PRINT 'Procedure Creation: MoveItem Error on Creation' -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_AllSiblingItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_AllSiblingItems]; -GO -/* -DECLARE @ItemID int -select @ItemID = ItemID from DocVersions where VersionID = 1 -Select * from vefn_AllSiblingItems(@ItemID) order by Ordinal -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_AllSiblingItems](@ItemID int) -RETURNS @Siblings TABLE -( - ItemID int, - Ordinal int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([ItemID], [PreviousID], [Ordinal]) as ( - Select [ItemID], [PreviousID], case when [PreviousID] is null then 0 else -1 end - FROM [Items] - where [ItemID]=@ItemID --- Previous Siblings -Union All - select I.[ItemID], I.[PreviousID] ,case when I.[PreviousID] is null then 0 else Z.[Ordinal] -1 end - from Itemz Z - join Items I on I.ItemID = Z.PreviousID - where Z.Ordinal < 0 --- Next Siblings -Union All - select I.[ItemID], I.[PreviousID] ,Z.[Ordinal] +1 - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.Ordinal >= 0 -) -insert into @Siblings select ItemID, Ordinal from Itemz Where Ordinal >= 0 -OPTION (MAXRECURSION 10000) -RETURN -END - -GO -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_AllSiblingItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_AllSiblingItems Error on Creation' -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_JustSiblingItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_JustSiblingItems]; -GO -/* -DECLARE @ItemID int -select @ItemID = ItemID from DocVersions where VersionID = 1 -Select * from vefn_JustSiblingItems(@ItemID) order by Ordinal - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_JustSiblingItems](@FirstItemID int) -RETURNS @Siblings TABLE -( - ItemID int PRIMARY KEY, - Ordinal int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([ItemID],[Ordinal]) as ( - Select [ItemID],0 - FROM [Items] - where [ItemID]=@FirstItemID --- Siblings -Union All - select I.[ItemID],Z.[Ordinal] +1 - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -insert into @Siblings select ItemID, Ordinal from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_JustSiblingItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_JustSiblingItems Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ResetFolderManualOrder] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ResetFolderManualOrder]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ResetFolderManualOrder]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ResetFolderManualOrder] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION -update fld - set Fld.ManualOrder =Fld.MyRow -from (Select ROW_NUMBER() OVER(Partition by ParentID Order BY FolderID) MyRow,* from folders ) fld - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ResetFolderManualOrder Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ResetFolderManualOrder Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ResetFolderManualOrderAlphabetical] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ResetFolderManualOrderAlphabetical]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ResetFolderManualOrderAlphabetical]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ResetFolderManualOrderAlphabetical] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION -update fld - set Fld.ManualOrder =Fld.MyRow -from (Select case when FolderID <> ParentID then ROW_NUMBER() OVER(Partition by ParentID Order BY Name) else 0 end MyRow,* from folders) fld - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ResetFolderManualOrderAlphabetical Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ResetFolderManualOrderAlphabetical Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[tr_Documents_Delete]') AND OBJECTPROPERTY(id,N'IsTrigger') = 1) - DROP TRIGGER [tr_Documents_Delete]; - - /****** Object: Trigger [dbo].[tr_Documents_Delete] Script Date: 03/28/2013 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/****** Object: Trigger [tr_Documents_Delete] ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE trigger [dbo].[tr_Documents_Delete] on [dbo].[Documents] instead of delete as - begin - update ii set DeleteStatus = Isnull((select max(DeleteID) from DeleteLog where SPID = @@spid),-1), DTS = getdate(), - UserID = IsNull((select top 1 UserID from DeleteLog where SPID = @@spid order by deleteid desc),ii.UserID) - from tblDocuments ii inner join deleted dd on dd.DocID = ii.DocID - insert into DocumentAudits(DocID,LibTitle,DocContent,DocAscii,Config,DTS,UserID,FileExtension,DeleteStatus) - select ii.DocID,ii.LibTitle,ii.DocContent,ii.DocAscii,ii.Config,ii.DTS,ii.UserID,ii.FileExtension,ii.DeleteStatus - from tblDocuments ii inner join deleted dd on dd.DocID = ii.DocID - where ii.DeleteStatus != 0 - end -GO --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Trigger alteration: tr_Documents_Delete Succeeded' -ELSE PRINT 'Trigger alteration: tr_Documents_Delete Error on Alteration' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionItems]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetVersionItems] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -Select * from vefn_GetVersionItems('') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetVersionItems](@DocVersionList varchar(MAX)) -RETURNS @VersionItems TABLE -( - VersionID int, - ItemID int, - ContentID int primary key -) -WITH EXECUTE AS OWNER -AS -BEGIN - BEGIN - with Itemz([VersionID], [ItemID], [ContentID]) as - (Select DV.VersionID, [I].[ItemID], [I].[ContentID] - FROM [Items] I - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] - Union All - -- Children - select Z.VersionID, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - Union All - -- Siblings - select Z.VersionID, I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - ) - insert into @VersionItems - select VersionID, [ItemID], [ContentID] - from ItemZ I - --Select * From rousages RU Where RU.ContentID in (Select ContentID from ItemZ) - OPTION (MAXRECURSION 10000) - END -RETURN -END - -go -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetVersionItems] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetVersionItems] Error on Creation' - -/****** Object: StoredProcedure [getAffectedRoUsages] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAffectedRoUsages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAffectedRoUsages]; -GO - -/* -getAffectedROUsages 1, '00010000019c0000', 'KBR Test', 'Changed', 'KBR' -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAffectedRoUsages] -( - @RODbID int, - @ROID nvarchar(16), - @RODesc nvarchar(MAX), - @Command nvarchar(10), - @UserID nvarchar(100), - @VersionList nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - BEGIN - DECLARE @JustThisVersion TABLE - ( - ContentID int primary key - ) - Insert INTO @JustThisVersion - SELECT Distinct ContentID From vefn_GetVersionItems(@VersionList) - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - -- Add "Verification Required" Annotation for each ROUsage - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Referenced Object (' + @RODesc + ') ' + @Command,@UserID - FROM Items where CONTENTID in (SELECT ContentID FROM ROUSAGES - where RODbID = @RODbID AND ROID = @ROID AND ContentID in (select ContentID from @JustThisVersion)) - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [RoUsages] - JOIN [Contents] ON - [Contents].[ContentID]=[RoUsages].[ContentID] - WHERE - [RoUsages].[RODbID]=@RODbID AND [RoUsages].[ROID]=@ROID - AND [Contents].ContentID in (select ContentID from @JustThisVersion) -END -RETURN - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAffectedRoUsages Succeeded' -ELSE PRINT 'Procedure Creation: getAffectedRoUsages Error on Creation' -GO - -/****** Object: StoredProcedure [getAffectedDRoUsages] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAffectedDRoUsages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAffectedDRoUsages]; -GO - -/* -getAffectedDROUsages 1, '00010000019c0000', 'KBR Test', 'Changed', 'KBR','' -getAffectedDROUsages 1, '000300003D8E', 'KBR Test', 'Changed', 'KBR','' - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAffectedDRoUsages] -( - @RODbID int, - @ROID nvarchar(16), - @RODesc nvarchar(MAX), - @Command nvarchar(10), - @UserID nvarchar(100), - @VersionList nvarchar(max) -) -WITH EXECUTE AS OWNER -AS - BEGIN - DECLARE @JustThisVersion TABLE - ( - ContentID int primary key - ) - Insert INTO @JustThisVersion - SELECT Distinct ContentID From vefn_GetVersionItems(@VersionList) - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - DECLARE @DRoUsages TABLE - ( - DRoUsageID int primary key - ) - Insert INTO @DRoUsages - select DRoUsageID from DRoUsages where ROID like substring(@ROID,1,12) + '%' AND dbo.vefn_CompareROIDS(ROID,@ROID) > 0 - - -- Add "Verification Required" Annotation for each ROUsage - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Referenced Object (' + @RODesc + ') ' + @Command,@UserID - FROM Items where CONTENTID in (SELECT ContentID - FROM (select dr.* from DRoUsages dr join @DRoUsages dd on dr.DRoUsageid = dd.DRoUsageid) DR - JOIN Entries EE on EE.DocID = DR.DocID - where RODbID = @RODbID AND ContentID in (select ContentID from @JustThisVersion)) - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [DRoUsages] - JOIN [Documents] ON - [Documents].[DocID]=[DROUsages].[DocID] - WHERE - [DRoUsages].[DRoUsageID] in (select DRoUsageid from @DRoUsages) - AND [Documents].[DocID] in (select EE.DocID from Entries EE where ContentID in (select ContentID from @JustThisVersion)) - RETURN - END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAffectedDRoUsages Succeeded' -ELSE PRINT 'Procedure Creation: getAffectedDRoUsages Error on Creation' -GO - -/****** Object: StoredProcedure [deleteAnnotationType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteAnnotationType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteAnnotationType]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteAnnotationType] - -( - @TypeID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [tblAnnotations] - WHERE [TypeID]=@TypeID - DELETE [AnnotationTypes] - WHERE [TypeID] = @TypeID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteAnnotationType Succeeded' -ELSE PRINT 'Procedure Creation: deleteAnnotationType Error on Creation' -GO - -/****** Object: StoredProcedure [getJustFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getJustFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getJustFormat]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getJustFormat] - -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FormatID], - [ParentID], - [Name], - [Description], - [Data], - [GenMac], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] - FROM [Formats] - WHERE [FormatID]=@FormatID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getJustFormat Succeeded' -ELSE PRINT 'Procedure Creation: getJustFormat Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_TurnChangeManagerOFF] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_TurnChangeManagerOFF]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_TurnChangeManagerOFF]; -GO -/****** Object: StoredProcedure [dbo].[vesp_TurnChangeManagerOFF] Script Date: 03/20/2012 16:02:54 ******/ -/* -exec vesp_TurnChangeManagerOFF -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_TurnChangeManagerOFF] WITH EXECUTE AS OWNER AS -BEGIN - DECLARE @cmd VARCHAR(MAX) - SET @cmd = 'DISABLE TRIGGER tr_Annotations_Delete ON Annotations' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Contents_Delete ON Contents' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Documents_Delete ON Documents' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Entries_Delete ON Entries' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_GridAudits_insert ON GridAudits' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Grids_Delete ON Grids' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Images_Delete ON Images' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Items_Delete ON Items' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Parts_Delete ON Parts' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_ROUsages_Delete ON ROUsages' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblAnnotations_Update ON tblAnnotations' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblContents_Update ON tblContents' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblDocuments_Update ON tblDocuments' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblEntries_Update ON tblEntries' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblGrids_Update ON tblGrids' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblImages_Update ON tblImages' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblItems_Update ON tblItems' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblParts_Update ON tblParts' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblROUsages_Update ON tblROUsages' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblTransitions_Update ON tblTransitions' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Transitions_Delete ON Transitions' - EXEC (@cmd) - PRINT '***** Change Manager has been turned OFF *****' -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_TurnChangeManagerOFF Succeeded' -ELSE PRINT 'Procedure Creation: vesp_TurnChangeManagerOFF Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_TurnChangeManagerON] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_TurnChangeManagerON]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_TurnChangeManagerON]; -GO -/****** Object: StoredProcedure [dbo].[vesp_TurnChangeManagerON] Script Date: 03/20/2012 16:02:54 ******/ -/* -exec vesp_TurnChangeManagerON -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_TurnChangeManagerON] WITH EXECUTE AS OWNER AS -BEGIN - DECLARE @cmd VARCHAR(MAX) - SET @cmd = 'ENABLE TRIGGER tr_Annotations_Delete ON Annotations' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Contents_Delete ON Contents' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Documents_Delete ON Documents' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Entries_Delete ON Entries' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_GridAudits_insert ON GridAudits' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Grids_Delete ON Grids' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Images_Delete ON Images' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Items_Delete ON Items' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Parts_Delete ON Parts' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_ROUsages_Delete ON ROUsages' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblAnnotations_Update ON tblAnnotations' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblContents_Update ON tblContents' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblDocuments_Update ON tblDocuments' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblEntries_Update ON tblEntries' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblGrids_Update ON tblGrids' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblImages_Update ON tblImages' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblItems_Update ON tblItems' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblParts_Update ON tblParts' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblROUsages_Update ON tblROUsages' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblTransitions_Update ON tblTransitions' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Transitions_Delete ON Transitions' - EXEC (@cmd) - PRINT '***** Change Manager has been turned ON *****' -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_TurnChangeManagerON Succeeded' -ELSE PRINT 'Procedure Creation: vesp_TurnChangeManagerON Error on Creation' -GO -/****** Object: TableFunction [vefn_FindROUsageIDs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindROUsageIDs]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindROUsageIDs]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindROUsageIDs](@ContentAuditID int) -RETURNS @IDs TABLE -( - ROUsageID int PRIMARY KEY, - ROUsageAction char(3) -) -WITH EXECUTE AS OWNER -AS -BEGIN - - DECLARE @ContentID int - DECLARE @text varchar(max) - SELECT @ContentID = ContentID,@text = Text FROM ContentAudits WHERE AuditID = @ContentAuditID - DECLARE @index1 int - DECLARE @index2 int - DECLARE @tid varchar(max) - DECLARE @trid int - WHILE (LEN(@text) > 0) - BEGIN - SET @index1 = CHARINDEX('#Link:ReferencedObject' , @text) - IF (@index1 > 0) - BEGIN - SET @text = RIGHT(@text, (LEN(@text) - (22 + @index1))) - SET @index1 = CHARINDEX(' ', @text) - SET @tid = LTRIM(LEFT(@text, @index1)) - SET @trid = CAST(@tid AS INT) - IF EXISTS (SELECT ROUsageID FROM tblROUsages WHERE ROUsageID = @trid AND DeleteStatus < 0) - INSERT INTO @IDs VALUES (@trid, 'ADD') - ELSE - INSERT INTO @IDs VALUES (@trid, NULL) - END - ELSE - SET @text = '' - END - INSERT INTO @IDs SELECT tt.ROUsageID,'DEL' FROM tblROUsages tt LEFT JOIN @IDs ti ON tt.ROUsageID = ti.ROUsageID WHERE tt.ContentID = @ContentID - AND ti.ROUsageID IS NULL - DELETE FROM @IDs WHERE ROUsageAction IS NULL - RETURN -END -GO --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindROUsageIDs Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindROUsageIDs Error on Creation' -GO -/****** Object: TableFunction [vefn_GetVersionFormatItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionFormatItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionFormatItems]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetVersionFormatItems](@DocVersionList varchar(MAX)) -RETURNS @VersionItems TABLE -( - VersionID int, - ItemID int, - ContentID int primary key, - FormatID int, - ParentFormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - BEGIN - with Itemz([VersionID], [ItemID], [ContentID], [FormatID], [ParentFormatID]) as - (Select DV.VersionID, [I].[ItemID], [I].[ContentID], - isnull(C.[FormatID],isnull(DV2.[FormatID],isnull(F.[FormatID],P.[FormatID]))), - isnull(DV2.[FormatID],isnull(F.[FormatID],P.[FormatID])) - FROM [Items] I - JOIN vefn_DocVersionSplit(@DocVersionList) DV ON I.[ItemID] = DV.[ItemID] - join docversions DV2 on DV.[VersionID] = DV2.[VersionID] - join folders F on DV2.[FolderID] = F.[FolderID] - join folders P on P.[FolderID] = F.[ParentID] - join Contents C on I.ContentID = C.ContentID - - Union All - -- Children - select Z.VersionID, I.[ItemID], I.[ContentID], isnull(C.[FormatID],Z.[FormatID]), Z.[FormatID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on I.ContentID = C.ContentID - Union All - -- Siblings - select Z.VersionID, I.[ItemID], I.[ContentID], isnull(C.[FormatID],Z.[ParentFormatID]), Z.[ParentFormatID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on I.ContentID = C.ContentID - ) - insert into @VersionItems - select VersionID, [ItemID], [ContentID], [FormatID], [ParentFormatID] - from ItemZ I - --Select * From rousages RU Where RU.ContentID in (Select ContentID from ItemZ) - OPTION (MAXRECURSION 10000) - END -RETURN -END -GO --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetVersionFormatItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetVersionFormatItems Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDRoUsagesByROIDsAndVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDRoUsagesByROIDsAndVersions]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDRoUsagesByROIDsAndVersions] -( - @ROIDs nvarchar(MAX), - @Versions nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [DRoUsages] - JOIN vefn_SplitROSearch(@ROIDs) SS - ON [DRoUsages].RODBID = SS.[RODBID] and [DRoUsages].[ROID] like SS.[ROID] + '%' - JOIN [Documents] ON - [Documents].[DocID]=[DROUsages].[DocID] - Where [Documents].[DocID] in - (Select Distinct [DocID] from [ENTRIES] - JOIN [VEFN_GetVersionItems](@Versions) VV ON [Entries].ContentID = VV.ContentID) - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDRoUsagesByROIDsAndVersions Succeeded' -ELSE PRINT 'Procedure Creation: getDRoUsagesByROIDsAndVersions Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoUsagesByROIDsAndVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoUsagesByROIDsAndVersions]; -GO - -CREATE PROCEDURE [dbo].[getRoUsagesByROIDsAndVersions] -( - @ROIDs nvarchar(MAX), - @Versions nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [RoUsages] - JOIN vefn_SplitROSearch(@ROIDs) SS - ON [RoUsages].RODBID = SS.[RODBID] and [RoUsages].[ROID] like SS.[ROID] + '%' - JOIN [Contents] ON - [Contents].[ContentID]=[RoUsages].[ContentID] - JOIN [VEFN_GetVersionItems](@Versions) VV ON [Contents].ContentID = VV.ContentID - RETURN -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoUsagesByROIDsAndVersions Succeeded' -ELSE PRINT 'Procedure Creation: getRoUsagesByROIDsAndVersions Error on Creation' -GO - -/****** Object: TableFunction [vefn_GetROTokens] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetROTokens]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetROTokens]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION [dbo].[vefn_GetROTokens](@text varchar(MAX)) -RETURNS @Tokens TABLE -( - Token varchar(MAX) -) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @index int -SET @index = -1 -DECLARE @indexb int -DECLARE @indexc int -DECLARE @indexd int -DECLARE @indexNext int -DECLARE @indexReturn int -WHILE (LEN(@text) > 0) - BEGIN - SET @index = PATINDEX('%<[A-Z]-%' , @text) - SET @indexb = PATINDEX('%<[A-Z][A-Z0-9]-%' , @text) - if((@index=0 and @indexb>0) or (@indexb > 0 and @index > @indexb)) - SET @index = @indexb - SET @indexc = PATINDEX('%<[A-Z][A-Z][A-Z0-9]-%' , @text) - if((@index=0 and @indexc>0) or (@indexc > 0 and @index > @indexc)) - SET @index = @indexc - SET @indexd = PATINDEX('%<[A-Z][A-Z][A-Z][A-Z0-9]-%' , @text) - if((@index=0 and @indexd>0) or (@indexd > 0 and @index > @indexd)) - SET @index = @indexd - IF @index = 0 - BREAK - SET @indexNext = @index + CHARINDEX('<' , substring(@text,@index+1,len(@text))) - IF @IndexNext=@index - SET @IndexNext = len(@text)+ 3 - SET @indexReturn = @index + CHARINDEX(char(13) , substring(@text,@index+1,len(@text))) - IF @IndexReturn=@index - SET @IndexReturn = len(@text)+3 - DECLARE @index2 int - SET @index2 = @index + CHARINDEX('>' , substring(@text,@index,len(@text))) - if @index2 = @index - BREAK - if(@index2 > @indexNext or @index2 > @indexReturn) - SET @text = RIGHT(@text, (LEN(@text) - @index)) - else - BEGIN - INSERT INTO @Tokens VALUES (substring(@text, @index,@index2-@index)) - if(len(@text) > @index2) - SET @text = substring(@text, @index2 , len(@text)) - else - SET @Text = '' - END - END - RETURN -END -GO --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetROTokens Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetROTokens Error on Creation' -GO - -/****** Object: TableFunction [vefn_GetVersionNames] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionNames]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionNames]; -GO - --- --- select * from vefn_GetVersionNames() --- - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION [dbo].[vefn_GetVersionNames]() -RETURNS @Versions TABLE -( - VersionID int primary Key, - GrandParentName nvarchar(100), - ParentName nvarchar(100), - FolderName nvarchar(100) -) -WITH EXECUTE AS OWNER -AS -BEGIN - INSERT INTO @Versions - select versionid,gf.name GrandParentName, pf.name ParentName, ff.name FolderName - from docversions dv - Join folders ff on ff.FolderID = DV.FolderID - Join folders pf on pf.FolderID = ff.parentID - Join folders gf on gf.FolderID = pf.parentid - RETURN -END -GO --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetVersionNames Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetVersionNames Error on Creation' -GO - - - - --- =========================================== End of Functions and Procedures - --- Turn off Auto Close and Auto Shrink -declare @CMD varchar(max) -set @CMD = 'ALTER DATABASE [' + db_name() +'] SET AUTO_CLOSE OFF' -exec(@CMD) -GO -declare @CMD varchar(max) -set @CMD = 'ALTER DATABASE [' + db_name() +'] SET AUTO_SHRINK OFF' -exec(@CMD) -GO - ---added by JCB for Security and MultiUser support ---ALTER TABLE Sessions add MachineName and ProcessID columns if they do not exist -IF COL_LENGTH('Sessions','MachineName') IS NULL - ALTER TABLE Sessions ADD [MachineName] [nvarchar](100) NOT NULL,[ProcessID] [int] NOT NULL; -GO ---ALTER TABLE Sessions change DTSActivity column to not null -ALTER TABLE sessions ALTER COLUMN [DTSActivity] [datetime] NOT NULL -GO ---ALTER TABLE Sessions set DTSActivity column default value to getdate() -IF OBJECT_ID('DF_Sessions_DTSActivity', 'D') IS NULL - ALTER TABLE sessions ADD CONSTRAINT [DF_Sessions_DTSActivity] DEFAULT (getdate()) for [DTSActivity]; -GO - -/****** Object: StoredProcedure [purgeData] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[purgeData]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [purgeData]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[purgeData] - -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - delete from [AnnotationAudits] - dbcc checkident([AnnotationAudits],reseed,0) - delete from [Applicabilities] - dbcc checkident([Applicabilities],reseed,0) - delete from [ApplicableStructures] - delete from [Assignments] - dbcc checkident([Assignments],reseed,0) - delete from [Associations] - dbcc checkident([Associations],reseed,0) - delete from [Checks] - dbcc checkident([Checks],reseed,0) - delete from [ContentAudits] - dbcc checkident([ContentAudits],reseed,0) - delete from [DeleteLog] - dbcc checkident([DeleteLog],reseed,0) - delete from [Details] - dbcc checkident([Details],reseed,0) - delete from [DocumentAudits] - dbcc checkident([DocumentAudits],reseed,0) - delete from [DocVersions] - dbcc checkident([DocVersions],reseed,0) - delete from [DROUsages] - dbcc checkident([DROUsages],reseed,0) - delete from [EntryAudits] - dbcc checkident([EntryAudits],reseed,0) - delete from [Figures] - dbcc checkident([Figures],reseed,0) - delete from [Folders] - dbcc checkident([Folders],reseed,0) - delete from [GridAudits] - dbcc checkident([GridAudits],reseed,0) - delete from [ImageAudits] - dbcc checkident([ImageAudits],reseed,0) - delete from [ItemAudits] - dbcc checkident([ItemAudits],reseed,0) - delete from [Memberships] - dbcc checkident([Memberships],reseed,0) - delete from [PartAudits] - dbcc checkident([PartAudits],reseed,0) - delete from [Pdfs] - delete from [Permissions] - dbcc checkident([Permissions],reseed,0) - delete from [ROFsts] - dbcc checkident([ROFsts],reseed,0) - delete from [ROImages] - dbcc checkident([ROImages],reseed,0) - delete from [Roles] - dbcc checkident([Roles],reseed,0) - delete from [ROUsageAudits] - dbcc checkident([ROUsageAudits],reseed,0) - delete from [tblAnnotations] - dbcc checkident([tblAnnotations],reseed,0) - delete from [tblEntries] - delete from [tblGrids] - delete from [tblImages] - delete from [tblParts] - delete from [tblROUsages] - dbcc checkident([tblROUsages],reseed,0) - delete from [TransitionAudits] - dbcc checkident([TransitionAudits],reseed,0) - delete from [Users] - dbcc checkident([Users],reseed,0) - delete from [Versions] - dbcc checkident([Versions],reseed,0) - delete from [ZContents] - delete from [ZTransitions] - delete from [AnnotationTypes] - dbcc checkident([AnnotationTypes],reseed,0) - delete from [Connections] - dbcc checkident([Connections],reseed,0) - delete from [Groups] - dbcc checkident([Groups],reseed,0) - delete from [Revisions] - dbcc checkident([Revisions],reseed,0) - delete from [RODbs] - dbcc checkident([RODbs],reseed,0) - delete from [Stages] - dbcc checkident([Stages],reseed,0) - delete from [tblDocuments] - dbcc checkident([tblDocuments],reseed,0) - delete from [tblTransitions] - dbcc checkident([tblTransitions],reseed,0) - delete from [tblItems] - dbcc checkident([tblItems],reseed,0) - delete from [tblContents] - dbcc checkident([tblContents],reseed,0) - delete from [Formats] - dbcc checkident([Formats],reseed,0) - delete from [Sessions] - dbcc checkident([Sessions],reseed,0) - delete from [Owners] - dbcc checkident([Owners],reseed,0) - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: purgeData Succeeded' -ELSE PRINT 'Procedure Creation: purgeData Error on Creation' -GO - -/****** Object: StoredProcedure [getSessions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getSessions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getSessions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getSessions] - -WITH EXECUTE AS OWNER -AS - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID], - (select convert(bigint,max(lastchanged)) from contents) LastContentChange - FROM [Sessions] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getSessions Succeeded' -ELSE PRINT 'Procedure Creation: getSessions Error on Creation' -GO - -/****** Object: StoredProcedure [updateSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateSession]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateSession] - -( - @SessionID int, - @UserID nvarchar(100), - @DTSDtart datetime, - @DTSEnd datetime=null, - @DTSActivity datetime, - @LastChanged timestamp, - @MachineName nvarchar(100), - @ProcessID int, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Sessions] - SET - [UserID]=@UserID, - [DTSDtart]=@DTSDtart, - [DTSEnd]=@DTSEnd, - [DTSActivity]=@DTSActivity, - [MachineName]=@MachineName, - [ProcessID]=@ProcessID - WHERE [SessionID]=@SessionID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Sessions] WHERE [SessionID]=@SessionID) - RAISERROR('Session record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Session has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Sessions] WHERE [SessionID]=@SessionID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateSession Succeeded' -ELSE PRINT 'Procedure Creation: updateSession Error on Creation' -GO - -/****** Object: StoredProcedure [addSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addSession]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addSession] - -( - @UserID nvarchar(100), - @DTSDtart datetime, - @DTSEnd datetime=null, - @DTSActivity datetime, - @MachineName nvarchar(100), - @ProcessID int, - @newSessionID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Sessions] - ( - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [MachineName], - [ProcessID] - ) - VALUES - ( - @UserID, - @DTSDtart, - @DTSEnd, - @DTSActivity, - @MachineName, - @ProcessID - ) - SELECT @newSessionID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Sessions] WHERE [SessionID]=@newSessionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addSession Succeeded' -ELSE PRINT 'Procedure Creation: addSession Error on Creation' -GO - -/****** Object: StoredProcedure [deleteSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteSession]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteSession] - -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Sessions] - WHERE [SessionID] = @SessionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteSession Succeeded' -ELSE PRINT 'Procedure Creation: deleteSession Error on Creation' -GO - -/****** Object: StoredProcedure [getSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getSession]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getSession] - -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID], - (select convert(bigint,max(lastchanged)) from contents) LastContentChange - FROM [Sessions] - WHERE [SessionID]=@SessionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getSession Succeeded' -ELSE PRINT 'Procedure Creation: getSession Error on Creation' -GO - -/****** Object: StoredProcedure [existsSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsSession]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsSession] - -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Sessions] WHERE [SessionID]=@SessionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsSession Succeeded' -ELSE PRINT 'Procedure Creation: existsSession Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionCleanup] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionBegin]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionBegin]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SessionBegin] - -( - @UserID nvarchar(100), - @MachineName nvarchar(100), - @ProcessID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - -- Cleanup Old Records before checking for Owner Records - --delete old closed sessions - DELETE FROM Sessions WHERE UserID = @UserID and DTSEnd is not null - --delete old owners from inactive sessions - DELETE FROM Owners WHERE SessionID in (SELECT SessionID FROM Sessions WHERE UserID = @UserID and DTSEnd is null and DTSActivity < DATEADD(minute, -5, getdate())) - DELETE FROM Owners WHERE SessionID in (SELECT SessionID FROM Sessions WHERE DTSEnd is null and DTSActivity < DATEADD(minute, -15, getdate())) - --delete inactive sessions where last activity is before 15 minutes ago - DELETE FROM Sessions WHERE UserID = @UserID and DTSEnd is null and DTSActivity < DATEADD(minute, -5, getdate()) - DELETE FROM Sessions WHERE DTSEnd is null and DTSActivity < DATEADD(minute, -15, getdate()) - DELETE FROM Owners WHERE SessionID not in (SELECT SessionID FROM Sessions) - DECLARE @oCount int - SELECT @oCount = count(*) FROM Owners WHERE OwnerType = 4 - IF @oCount > 0 BEGIN - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID], - (select convert(bigint,max(lastchanged)) from contents) LastContentChange - FROM [Sessions] - WHERE [SessionID]=0 - END - ELSE BEGIN - INSERT INTO [Sessions]([UserID],[MachineName],[ProcessID]) - VALUES (@UserID, @MachineName, @ProcessID) - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID], - (select convert(bigint,max(lastchanged)) from contents) LastContentChange - FROM [Sessions] - WHERE [SessionID]=SCOPE_IDENTITY() - IF( @@TRANCOUNT > 0 ) COMMIT - END -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionBegin Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionBegin Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionPing] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionPing]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionPing]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SessionPing] -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - --update active session dtsactivity value - UPDATE Sessions SET DTSActivity = getdate() WHERE SessionID = @SessionID -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionPing Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionPing Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionPing] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionEnd]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionEnd]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SessionEnd] -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - --delete unclosed owners for session being closed - DELETE FROM Owners WHERE SessionID = @SessionID - --update active session dtsend value - UPDATE Sessions SET DTSEnd = getdate() WHERE SessionID = @SessionID -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionEnd Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionEnd Error on Creation' -GO - -/****** Object: StoredProcedure [getOwners] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwners]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwners]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwners] - -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - [LastChanged] - FROM [Owners] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwners Succeeded' -ELSE PRINT 'Procedure Creation: getOwners Error on Creation' -GO - -/****** Object: StoredProcedure [getOwnersBySessionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwnersBySessionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwnersBySessionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwnersBySessionID] -( - @SessionID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - [LastChanged] - FROM [Owners] - WHERE [SessionID] = @SessionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwnersBySessionID Succeeded' -ELSE PRINT 'Procedure Creation: getOwnersBySessionID Error on Creation' -GO - -/****** Object: StoredProcedure [updateOwner] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateOwner]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateOwner]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateOwner] - -( - @OwnerID int, - @SessionID int, - @OwnerType tinyint, - @OwnerItemID int, - @DTSStart datetime, - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Owners] - SET - [SessionID]=@SessionID, - [OwnerType]=@OwnerType, - [OwnerItemID]=@OwnerItemID, - [DTSStart]=@DTSStart - WHERE [OwnerID]=@OwnerID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Owners] WHERE [OwnerID]=@OwnerID) - RAISERROR('Owner record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Owner has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Owners] WHERE [OwnerID]=@OwnerID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateOwner Succeeded' -ELSE PRINT 'Procedure Creation: updateOwner Error on Creation' -GO - -/****** Object: StoredProcedure [addOwner] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addOwner]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addOwner]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addOwner] - -( - @SessionID int, - @OwnerType tinyint, - @OwnerItemID int, - @DTSStart datetime, - @newOwnerID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Owners] - ( - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart] - ) - VALUES - ( - @SessionID, - @OwnerType, - @OwnerItemID, - @DTSStart - ) - SELECT @newOwnerID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Owners] WHERE [OwnerID]=@newOwnerID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addOwner Succeeded' -ELSE PRINT 'Procedure Creation: addOwner Error on Creation' -GO - -/****** Object: StoredProcedure [deleteOwner] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteOwner]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteOwner]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteOwner] - -( - @OwnerID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Owners] - WHERE [OwnerID] = @OwnerID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteOwner Succeeded' -ELSE PRINT 'Procedure Creation: deleteOwner Error on Creation' -GO - -/****** Object: StoredProcedure [getOwner] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwner]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwner]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwner] - -( - @OwnerID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - [LastChanged] - FROM [Owners] - WHERE [OwnerID]=@OwnerID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwner Succeeded' -ELSE PRINT 'Procedure Creation: getOwner Error on Creation' -GO - -/****** Object: StoredProcedure [existsOwner] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsOwner]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsOwner]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsOwner] - -( - @OwnerID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Owners] WHERE [OwnerID]=@OwnerID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsOwner Succeeded' -ELSE PRINT 'Procedure Creation: existsOwner Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionCanCheckOutItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionCanCheckOutItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionCanCheckOutItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -exec dbo.vesp_SessionCanCheckOutItem 17012,0 -exec dbo.vesp_SessionCanCheckOutItem 17066,0 -exec dbo.vesp_SessionCanCheckOutItem 17119,0 -exec dbo.vesp_SessionCanCheckOutItem 554,1 -exec dbo.vesp_SessionCanCheckOutItem 13,2 -exec dbo.vesp_SessionCanCheckOutItem 8,2 -exec dbo.vesp_SessionCanCheckOutItem 2,2 -exec dbo.vesp_SessionCanCheckOutItem 9,3 -*/ -CREATE PROCEDURE [dbo].[vesp_SessionCanCheckOutItem] -( - @ObjectID int, - @ObjectType int -) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @CheckOuts TABLE - ( - SessionID int - ) - --look to see if anyone else has a session. if they do, then cannot check out - DECLARE @sCount int - SELECT @sCount = count(*) FROM Sessions - IF @ObjectType = 4 BEGIN - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID], - (select convert(bigint,max(lastchanged)) from contents) LastContentChange - FROM [Sessions] - WHERE DTSEnd IS NULL - END - ELSE - BEGIN - DECLARE @ObjectAndEnhancedIDs Table - ( - ObjectID int - ) - IF @ObjectType = 0 BEGIN - INSERT INTO @ObjectAndEnhancedIDs - select ItemID from vefn_GetEnhancedProcedures(@ObjectID) - END - ELSE IF @ObjectType = 2 BEGIN - INSERT INTO @ObjectAndEnhancedIDs - select VersionID from vefn_GetEnhancedDocVersions(@ObjectID) - END - ELSE IF @ObjectType = 3 BEGIN - INSERT INTO @ObjectAndEnhancedIDs - select FolderID from vefn_GetEnhancedFolders(@ObjectID) - END - ELSE BEGIN - INSERT INTO @ObjectAndEnhancedIDs select @ObjectID - END - INSERT INTO @CheckOuts SELECT DISTINCT SessionID FROM Owners - WHERE OwnerItemID in (select ObjectID from @ObjectAndEnhancedIDs) AND OwnerType = @ObjectType - IF @ObjectType = 2 - BEGIN - with ItemZ (VersionID,ItemID,PreviousID,SessionID) - as( - --> Procedure Owners - select null,II.ItemID, PreviousID, SessionID - from Owners OO - Join Items II on OO.OwnerItemID= II.ItemID - Where OO.OwnerType=0 - UNION ALL --> Document Owners - select null,II.ItemID, PreviousID, SessionID - from Owners OO - Join Entries EE ON OO.OwnerItemID = EE.DocID - Join Items II on EE.ContentID= II.ContentID - Where OO.OwnerType=1 - UNION ALL --> Previous Owners - Select null, ii.ItemID, ii.PreviousID,ZZ.SessionID From ItemZ ZZ - Join Items II ON II.ItemID = ZZ.PreviousID - Where ZZ.VersionID IS NULL and ZZ.PreviousID IS NOT NULL - UNION ALL -- Parts Owners - Select null, II.ItemID, II.PreviousID, ZZ.SessionID - from ItemZ ZZ - Join Parts PP ON PP.ItemID = ZZ.ItemID - Join Items II ON II.ContentID = PP.ContentID - Where ZZ.VersionID IS NULL - UNION ALL -- Version Owners - Select DV.VersionID,null,null,ZZ.SessionID From ItemZ ZZ - Join DocVersions DV ON ZZ.ItemID = DV.ItemID - Where ZZ.VersionID IS NULL AND ZZ.PreviousID IS NULL - ) - --Select Distinct 'Phase 2b' Result, * from Itemz - INSERT INTO @CheckOuts - Select DIstinct SessionID from ItemZ - where VersionID in(select ObjectID FROM @ObjectAndEnhancedIDs) - OPTION (MAXRECURSION 10000) -- B2017-144 Crash on Maximum Recursion - END - --look to see if object type is folder that no part of folder passed is checked out - IF @ObjectType = 3 BEGIN - with ItemZ (VersionID,ItemID,PreviousID,SessionID) - as( - --> Procedure Owners - select null,II.ItemID, PreviousID, SessionID - from Owners OO - Join Items II on OO.OwnerItemID= II.ItemID - Where OO.OwnerType=0 - UNION ALL --> Document Owners - select null,II.ItemID, PreviousID, SessionID - from Owners OO - Join Entries EE ON OO.OwnerItemID = EE.DocID - Join Items II on EE.ContentID= II.ContentID - Where OO.OwnerType=1 - UNION ALL --> Previous Owners - Select null, ii.ItemID, ii.PreviousID,ZZ.SessionID From ItemZ ZZ - Join Items II ON II.ItemID = ZZ.PreviousID - Where ZZ.VersionID IS NULL and ZZ.PreviousID IS NOT NULL - UNION ALL -- Parts Owners - Select null, II.ItemID, II.PreviousID, ZZ.SessionID - from ItemZ ZZ - Join Parts PP ON PP.ItemID = ZZ.ItemID - Join Items II ON II.ContentID = PP.ContentID - Where ZZ.VersionID IS NULL - UNION ALL -- Version Owners - Select DV.VersionID,null,null,ZZ.SessionID From ItemZ ZZ - Join DocVersions DV ON ZZ.ItemID = DV.ItemID - Where ZZ.VersionID IS NULL AND ZZ.PreviousID IS NULL - ) - --Select Distinct 'Phase 2b' Result, * from Itemz - INSERT INTO @CheckOuts - Select DIstinct SessionID from ItemZ - where VersionID in(select ObjectID FROM @ObjectAndEnhancedIDs) - OPTION (MAXRECURSION 10000) -- B2017-144 Crash on Maximum Recursion - END - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID], - (select convert(bigint,max(lastchanged)) from contents) LastContentChange - FROM [Sessions] - WHERE [SessionID] IN (SELECT SessionID FROM @CheckOuts) - END -END -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionCanCheckOutItem Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionCanCheckOutItem Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionCheckOutItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionCheckOutItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionCheckOutItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SessionCheckOutItem] -( - @SessionID int, - @ItemID int, - @ItemType int, - @OwnerID int OUTPUT -) -WITH EXECUTE AS OWNER -AS -BEGIN - INSERT INTO Owners (SessionID, OwnerItemID, OwnerType) VALUES (@SessionID, @ItemID, @ItemType) - SELECT @OwnerID = SCOPE_IDENTITY() -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionCheckOutItem Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionCheckOutItem Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionCheckInItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionCheckInItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionCheckInItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SessionCheckInItem] -( - @OwnerID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - DELETE FROM Owners WHERE OwnerID = @OwnerID -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionCheckInItem Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionCheckInItem Error on Creation' -GO - -/****** Object: StoredProcedure [getOwnerByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwnerByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwnerByItemID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwnerByItemID] - -( - @ItemID int, - @ItemType int -) -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - [LastChanged] - FROM [Owners] - WHERE [OwnerItemID]=@ItemID AND [OwnerType]=@ItemType - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwnerByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getOwnerByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getOwnerBySessionIDandVersionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwnerBySessionIDandVersionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwnerBySessionIDandVersionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwnerBySessionIDandVersionID] - -( - @SessionID int, - @VersionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - [LastChanged] - FROM [Owners] oo - INNER JOIN - ( - SELECT 0 ObjectType,ItemID ObjectID FROM dbo.vefn_GetVersionItems(@VersionID) - UNION - SELECT 1 ObjectType,ee.DocID ObjectID FROM dbo.vefn_GetVersionItems(@VersionID) vi - INNER JOIN Contents cc ON vi.ContentID = cc.ContentID - INNER JOIN Entries ee ON vi.ContentID = ee.ContentID - UNION - SELECT 2 ObjectType, @VersionID ObjectID - ) tt ON oo.OwnerType = tt.ObjectType and oo.OwnerItemID = tt.ObjectID - WHERE [SessionID] = @SessionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwnerBySessionIDandVersionID Succeeded' -ELSE PRINT 'Procedure Creation: getOwnerBySessionIDandVersionID Error on Creation' -GO - -/****** Object: StoredProcedure [getUserByUserID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getUserByUserID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getUserByUserID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getUserByUserID] - -( - @UserID varchar(100) -) -WITH EXECUTE AS OWNER -AS - SELECT - [UID], - [UserID], - [FirstName], - [MiddleName], - [LastName], - [Suffix], - [CourtesyTitle], - [PhoneNumber], - [CFGName], - [UserLogin], - [UserName], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Memberships] WHERE [Memberships].[UID]=[Users].[UID]) [MembershipCount] - FROM [Users] - WHERE [UserID]=@UserID - - SELECT - [Memberships].[UGID], - [Memberships].[UID], - [Memberships].[GID], - [Memberships].[StartDate], - [Memberships].[EndDate], - [Memberships].[Config], - [Memberships].[DTS], - [Memberships].[UsrID], - [Memberships].[LastChanged], - [Groups].[GroupName] [Group_GroupName], - [Groups].[GroupType] [Group_GroupType], - [Groups].[Config] [Group_Config], - [Groups].[DTS] [Group_DTS], - [Groups].[UsrID] [Group_UsrID] - FROM [Memberships] - JOIN [Groups] ON - [Groups].[GID]=[Memberships].[GID] - JOIN [Users] ON [Memberships].[UID] = [Users].[UID] - WHERE - [Users].[UserID]=@UserID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getUserByUserID Succeeded' -ELSE PRINT 'Procedure Creation: getUserByUserID Error on Creation' -GO - ---need to check to see if security is already defined. if not then do this stuff -declare @aCount int -select @aCount = count(*) from assignments -if @aCount = 0 -begin ---clean up security related tables - EXEC sp_executesql N' - delete from [Assignments]' - EXEC sp_executesql N' - dbcc checkident([Assignments],reseed,0)' - EXEC sp_executesql N' - delete from [Memberships]' - EXEC sp_executesql N' - dbcc checkident([Memberships],reseed,0)' - EXEC sp_executesql N' - delete from [Permissions]' - EXEC sp_executesql N' - dbcc checkident([Permissions],reseed,0)' - EXEC sp_executesql N' - delete from [Roles]' - EXEC sp_executesql N' - dbcc checkident([Roles],reseed,0)' - EXEC sp_executesql N' - delete from [Users]' - EXEC sp_executesql N' - dbcc checkident([Users],reseed,0)' - EXEC sp_executesql N' - delete from [Groups]' - EXEC sp_executesql N' - dbcc checkident([Groups],reseed,0)' - - --define Roles - EXEC sp_executesql N' - insert into Roles (Name,Title,DTS,UsrID) values - (''Administrator'',''Manage Generic Data;Manage Security;Edit RO Values,Create FST,Update RO Values;Update Formats;PROMS Settings;Create/Update/Delete Folders,DocVersions,Procedures,Sections,Steps,All Annotations'',getdate(),''VEPROMS'')' - EXEC sp_executesql N' - insert into Roles (Name,Title,DTS,UsrID) values - (''Set Administrator'',''Edit RO Values,Create FST,Update RO Values;Create/Update/Delete Folders,DocVersions,Procedures,Sections,Steps,All Set Annotations'',getdate(),''VEPROMS'')' - EXEC sp_executesql N' - insert into Roles (Name,Title,DTS,UsrID) values - (''Writer'',''Create/Update/Delete Procedures,Sections,Steps,All Set Annotations'',getdate(),''VEPROMS'')' - EXEC sp_executesql N' - insert into Roles (Name,Title,DTS,UsrID) values - (''Reviewer'',''Create/Update/Delete User Annotations'',getdate(),''VEPROMS'')' - EXEC sp_executesql N' - insert into Roles (Name,Title,DTS,UsrID) values - (''RO Editor'',''Edit RO Values,Create FST'',getdate(),''VEPROMS'')' - - --define Permissions for Roles - EXEC sp_executesql N' - declare @rid int; - select @rid = rid from roles where name = ''Administrator''; - insert into permissions (rid,permlevel,versiontype,permvalue,permad,startdate,dts,usrid) values - (@rid,1,3,15,0,getdate(),getdate(),''VEPROMS'')' - EXEC sp_executesql N' - declare @rid int; - select @rid = rid from roles where name = ''Set Administrator''; - insert into permissions (rid,permlevel,versiontype,permvalue,permad,startdate,dts,usrid) values - (@rid,2,3,15,0,getdate(),getdate(),''VEPROMS'')' - EXEC sp_executesql N' - declare @rid int; - select @rid = rid from roles where name = ''Writer''; - insert into permissions (rid,permlevel,versiontype,permvalue,permad,startdate,dts,usrid) values - (@rid,4,3,15,0,getdate(),getdate(),''VEPROMS'')' - EXEC sp_executesql N' - declare @rid int; - select @rid = rid from roles where name = ''Reviewer''; - insert into permissions (rid,permlevel,versiontype,permvalue,permad,startdate,dts,usrid) values - (@rid,7,3,15,0,getdate(),getdate(),''VEPROMS'')' - EXEC sp_executesql N' - declare @rid int; - select @rid = rid from roles where name = ''RO Editor''; - insert into permissions (rid,permlevel,versiontype,permvalue,permad,startdate,dts,usrid) values - (@rid,3,3,15,0,getdate(),getdate(),''VEPROMS'')' - - --define adminstrator Group - EXEC sp_executesql N' - insert into groups (groupname,dts,usrid) - select name + ''s'',getdate(),''VEPROMS'' from roles where name = ''Administrator''' - - --define administrator Assignment - EXEC sp_executesql N' - insert into assignments (gid,rid,folderid,startdate,dts,usrid) - select gg.gid,rr.rid,1,getdate(),getdate(),''VEPROMS'' from roles rr inner join groups gg on rr.name + ''s'' = gg.groupname' - EXEC sp_executesql N' - print ''MultiUser and Security Created''' -end -else begin - EXEC sp_executesql N' - print ''MultiUser and Security Exists''' -end -GO - ---added jcb 1st round fixes multiuser and security testting ---ALTER TABLE Groups change GroupName column to 100 characters -ALTER TABLE groups ALTER COLUMN [GroupName] [nvarchar](100) NOT NULL -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ResetSecurity]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ResetSecurity]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ResetSecurity] -AS -BEGIN - DELETE FROM [Memberships] - DELETE FROM [Assignments] WHERE [AID] != 1 - DELETE FROM [Groups] WHERE [GID] != 1 - DELETE FROM [Users] - DECLARE @gid VARCHAR(10) - SELECT @gid = x1.value('@Group','varchar(10)') - FROM - ( - SELECT folderid,CAST(config as xml) xconfig FROM folders ff WHERE ff.folderid = 1 - ) ah - CROSS APPLY xconfig.nodes('//Security') t1(x1) - UPDATE folders SET config = replace(config,'Security Group="' + @gid + '"','Security Group="1"') WHERE folderid = 1 -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ResetSecurity Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ResetSecurity Error on Creation' -GO - -/****** Object: StoredProcedure [getRevisionsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRevisionsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRevisionsByItemID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRevisionsByItemID] -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] - WHERE [ItemID] = @ItemID -and (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) > 0 - ORDER BY [RevisionID] DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRevisionsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getRevisionsByItemID Error on Creation' -GO -/****** Object: StoredProcedure [getRoUsagesForDocVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoUsagesForDocVersion]') AND OBJECTPROPERTY - -(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoUsagesForDocVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRoUsagesForDocVersion] -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ROUsageID], - rr.[ContentID], - [ROID], - [Config], - [DTS], - [UserID], - [LastChanged], - [RODbID] - FROM [RoUsages] rr - INNER JOIN vefn_getversionitems(@VersionID) vi on rr.contentid = vi.contentid - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoUsagesForDocVersion Succeeded' -ELSE PRINT 'Procedure Creation: getRoUsagesForDocVersion Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListTables3] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListTables3]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListTables3]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE procedure [dbo].[vesp_ListTables3] -WITH EXECUTE AS OWNER -AS -begin -select o.name TableName,c.name ColumnName, -case c.system_type_id - when 56 then 'int' - when 231 then 'nvarchar' - when 165 then 'varbinary' - when 167 then 'varchar' - when 239 then 'nchar' - when 175 then 'char' - when 61 then 'datetime' - when 104 then 'bit' - when 48 then 'TinyInt' - when 127 then 'BigInt' - when 241 then 'Xml' - when 62 then 'float' - when 189 then 'timestamp' - else '???' + cast(c.system_type_id as varchar(10)) end ItemType, -case c.system_type_id - when 56 then '0' - when 231 then case c.max_length when -1 then 'Max' else cast(c.max_length/2 as varchar(10)) end - when 165 then case c.max_length when -1 then 'Max' else cast(c.max_length as varchar(10)) end - when 167 then case c.max_length when -1 then 'Max' else cast(c.max_length as varchar(10)) end - when 239 then case c.max_length when -1 then 'Max' else cast(c.max_length/2 as varchar(10)) end - when 175 then case c.max_length when -1 then 'Max' else cast(c.max_length as varchar(10)) end - when 61 then '0' - when 104 then '0' - when 48 then '0' - when 189 then '0' - else '0' end ItemSize, - - case when c.is_nullable=1 then 'Yes' else '' end AllowNulls, - case when c.is_identity=1 then 'Identity' else dc.definition end DefaultValue, - x.value Description -from sys.objects o -join sys.columns c on o.object_id=c.object_id -left join sysconstraints cn on o.object_id=cn.id and c.column_id=cn.colid -left join sys.default_constraints dc on dc.object_id = cn.constid -left join sys.extended_properties x on x.major_id = o.OBJECT_ID AND x.minor_id=c.column_id AND x.Name='MS_Description' -where o.type='U' -order by o.name,c.column_id -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListTables3 Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListTables3 Error on Creation' -GO - -/****** Object: StoredProcedure [getOwnersByVersionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwnersByVersionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwnersByVersionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwnersByVersionID] -( - @VersionID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - oo.[LastChanged] - FROM [Owners] oo - JOIN vefn_GetVersionItems(@VersionID) vi ON oo.OwnerItemID = vi.ItemID - WHERE oo.OwnerType = 0 - UNION - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - oo.[LastChanged] - FROM [Owners] oo - JOIN [Entries] ee on oo.OwnerItemID = ee.DocID - JOIN vefn_GetVersionItems(@VersionID) vi on ee.ContentID = vi.ContentID - WHERE oo.OwnerType = 1 - UNION - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - oo.[LastChanged] - FROM [Owners] oo - WHERE oo.OwnerType = 2 - AND oo.OwnerItemID = @VersionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwnersByVersionID Succeeded' -ELSE PRINT 'Procedure Creation: getOwnersByVersionID Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CompareROIDs]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_CompareROIDs]; -/****** Object: UserDefinedFunction [dbo].[vefn_CompareROIDs] Script Date: 07/21/2014 17:50:44 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create function [DBO].[vefn_CompareROIDs] (@roid1 varchar(16), @roid2 varchar(16)) -returns int -as begin - declare @len1 int - declare @len2 int - if @roid1 = @roid2 - return 1 - set @len1 = len(@roid1) - set @len2 = len(@roid2) - if @len1 = @len2 - begin - if @len1 = 16 and substring(@roid1,13,4) = '0000' and substring(@roid2,13,4) = '0041' - return 2 - if @len1 = 16 and substring(@roid2,13,4) = '0000' and substring(@roid1,13,4) = '0041' - return 3 - return 0 - end - if substring(@roid1,1,12) = substring(@roid2,1,12) - return 4 - return 0 -end -GO --- Display the status of ScalarFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_CompareROIDs Succeeded' -ELSE PRINT 'Function: vefn_CompareROIDs Error on Creation' -GO - -/****** Object: Index [IX_tblContentsForCopy] Script Date: 8/26/2014 8:55:16 PM ******/ -IF NOT EXISTS (SELECT * FROM dbo.sysindexes WHERE name = 'IX_tblContentsForCopy') -BEGIN -CREATE NONCLUSTERED INDEX [IX_tblContentsForCopy] ON [dbo].[tblContents] -( - [DTS] ASC, - [UserID] ASC, - [Type] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -END -GO - -/****** Object: Index [IX_tblItemsForCopy1] Script Date: 8/27/2014 5:26:31 PM ******/ -IF NOT EXISTS (SELECT * FROM dbo.sysindexes WHERE name = 'IX_tblItemsForCopy1') -BEGIN -CREATE NONCLUSTERED INDEX [IX_tblItemsForCopy1] ON [dbo].[tblItems] -( - [ContentID] ASC, - [DTS] ASC, - [UserID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -END -GO - -/****** Object: Index [IX_tblItemsForCopy2] Script Date: 8/27/2014 5:26:37 PM ******/ -IF NOT EXISTS (SELECT * FROM dbo.sysindexes WHERE name = 'IX_tblItemsForCopy2') -BEGIN -CREATE NONCLUSTERED INDEX [IX_tblItemsForCopy2] ON [dbo].[tblItems] -( - [PreviousID] ASC, - [DTS] ASC, - [UserID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -END -GO - -/****** Object: Index [IX_contentsLastChanged] Script Date: 3/21/2017 11:24:00 AM ******/ -IF EXISTS (SELECT * FROM dbo.sysIndexes WHERE name like 'IX_contentsLastChanged') - DROP INDEX [IX_ContentsLastChanged] ON [dbo].[tblContents]; -GO -CREATE NONCLUSTERED INDEX [IX_contentsLastChanged] ON [dbo].[tblContents] -( - [DeleteStatus] ASC, - [LastChanged] DESC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -PRINT 'Added IX_contentsLastChanged Index. Speeds up session queries' -GO - -/****** Object: StoredProcedure [CopyItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[CopyItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [CopyItemAndChildren]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[CopyItemAndChildren] -( - @StartItemID INT, - @DestFormatID INT, - @UserID NVARCHAR(100), - @NewStartItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - ---+-----------------------------------------------------------------+ ---& BEGIN TRANSACTION to make these changes temporary & ---+-----------------------------------------------------------------+ - BEGIN TRANSACTION - if exists (select * from tblitems where itemid = @StartItemID and DeleteStatus !=0) - BEGIN - RAISERROR ('###Cannot Paste Step###This step has been deleted',16,1) - RETURN - END -DECLARE @Children AS TABLE -( - ItemID INT PRIMARY KEY, - NewItemID INT, - ContentID INT, - NewContentID INT, - FormatID INT, - NewFormatID INT -) -DECLARE @NewDocuments AS TABLE -( - DocID INT PRIMARY KEY, - NewDocID INT -) --- Locals -DECLARE @DTS DATETIME -- DTS of all New Items -DECLARE @StartContentID INT -Select @StartContentID = ContentID from Items where ItemID = @StartItemID -SET @DTS = GETDATE() -- Get the current Date and Time --- Get a list of all of the Items to be copied based upon StartItemID and EndItemID --- If the StartItemID = EndItemID then it is a single item and it's children -INSERT INTO @Children SELECT ItemID,ItemID,ContentID,ContentID,FormatID,FormatID FROM vefn_ChildItemsRange(@StartItemID,@StartItemID,null) --- <<< Copy Contents >>> --- Create new content rows to match the existing rows. Set the type to the Current ContentID temporarily --- so that the new content rows can be associated with the existing content rows. -INSERT INTO Contents - ([Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID]) - select CASE when [ContentID] = @StartContentID and [Type]<20000 then 'Copy Of ' + [Number] else [Number] end, - [Text],[ContentID],[FormatID],[Config],@DTS,@UserID - from Contents where ContentID in(Select ContentID from @Children) --- Update the @Children with the NewConentIDs ---print 'A ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -UPDATE NN set NN.NewContentID = CC.ContentID -From Contents CC -Join @Children NN on NN.ContentID = CC.Type AND CC.DTS = @DTS and CC.UserID = @UserID --- Reset the Type column in the Contents table with the Type column from the original Records. ---print 'B ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -DECLARE @SourceType INT -Select @SourceType = Type from Contents where ContentID = @StartContentID -if @SourceType = 0 - BEGIN - UPDATE CC set CC.Type = CC2.Type, CC.DTS = CC2.DTS, CC.UserID = CC2.UserID - From Contents CC - Join @Children NN on NN.NewContentID = CC.ContentID - Join Contents CC2 on NN.ContentID = CC2.ContentID - END -else - BEGIN -UPDATE CC set CC.Type = CC2.Type -From Contents CC -Join @Children NN on NN.NewContentID = CC.ContentID -Join Contents CC2 on NN.ContentID = CC2.ContentID - END ---print 'B1 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Contents are done - -- SELECT * From Contents where DTS = @DTS and UserID = @UserID --- <<< Copy Grids >>> -INSERT INTO [Grids]([ContentID],[Data],[Config],[DTS],[UserID]) - SELECT NN.[NewContentID],[Data],[Config],@DTS,@UserID - FROM [Grids] GG Join @Children NN on GG.ContentID = NN.ContentID --- <<< Copy Images >>> ---print 'B2 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -INSERT INTO [Images]([ContentID],[ImageType],[FileName],[Data],[Config],[DTS],[UserID]) - SELECT NN.[NewContentID],[ImageType],[FileName],[Data],[Config],@DTS,@UserID - FROM [Images] II Join @Children NN on II.ContentID = NN.ContentID --- Create new item rows based upon the current item rows and the @Children table, with the NewContentIDs ---print 'B3 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -INSERT INTO [Items] ([PreviousID],[ContentID],[DTS],[UserID]) - SELECT II.[PreviousID], -- Leave the PreviousID as is for now - NN.NewContentID, @DTS, @UserID - from @Children NN - join Items II on II.ContentID = NN.ContentID --- Update the @Children with the NewItemIDs ---print 'B4 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -UPDATE NN set NN.NewItemID = II.ItemID -From Items II -Join @Children NN on NN.NewContentID = II.ContentID AND II.DTS = @DTS and II.UserID = @UserID -DECLARE @NewItemID int -SELECT @NewItemID = NewItemID - FROM @Children - WHERE ItemID = @StartItemID ---print 'B5 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -UPDATE NN SET NN.[NewFormatID] = CC.[FormatID] - FROM @Children NN - Join vefn_ChildItemsRange(@NewItemID,@NewItemID,@DestFormatID) CC - ON NN.NewItemID = CC.ItemID --- The @Children table is now complete - --SELECT * From @Children --- Update the PreviousID in the new Item rows, to the new ItemIDs based upon the old ItemIDs ---print 'B6 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -Update II Set II.[PreviousID] = NN.NewItemID -from Items II -Join @Children NN on NN.ItemID = II.PreviousID AND II.DTS = @DTS and II.UserID = @UserID --- Get the new ItemIDs based upon the old ItemIDs -SELECT @NewStartItemID = NewItemID from @Children where ItemID = @StartItemID ---SELECT @NewEndItemID = NewItemID from @Children where ItemID = @EndItemID --- Set the PreviousID for the starting Item to null temporarily. --- This will be adjusted based upon where the step is inserted. ---print 'B7 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -Update Items Set PreviousID = null where ItemID = @NewStartItemID -if @SourceType = 0 - BEGIN - UPDATE II SET II.DTS = II2.DTS, II.UserID = II2.UserID - From Items II - Join @Children NN on NN.NewItemID = II.ItemID - Join Items II2 on NN.ItemID = II2.ItemID - WHERE NN.ItemID = @StartItemID - END ---print 'C ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Items are done - --SELECT * From Items where DTS = @DTS and UserID = @UserID --- <<< Copy Parts >>> -INSERT INTO [Parts] ([ContentID],[FromType],[ItemID],[DTS],[UserID]) -Select NNF.NewContentID,[FromType],NNT.NewItemID, @DTS, @UserID from Parts PP -JOIN @Children NNF on PP.ContentID = NNF.ContentID -JOIN @Children NNT on PP.ItemID = NNT.ItemID ---print 'D ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Parts are done - -- SELECT * From Parts where DTS = @DTS and UserID = @UserID --- <<< Copy Annotations >>> -INSERT INTO [Annotations] ([ItemID],[TypeID],[RtfText],[SearchText],[Config],[DTS],[UserID]) - Select NewItemID, TypeID, RtfText, SearchText, Config, @DTS, @UserID - from Annotations AA Join @Children NN on AA.ItemID = NN.ItemID ---print 'E ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Annotations are done - -- SELECT * From Annotations where DTS = @DTS and UserID = @UserID --- <<< Copy Documents and Entries>>> --- logic to create Entries for Library Documents -INSERT INTO [Entries] ([ContentID],[DocID],[DTS],[UserID]) - SELECT NN.[NewContentID],EE.[DocID],@DTS,@UserID - FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID - JOIN [Documents] DD on EE.[DocID] = DD.[DocID] and Isnull(LibTitle,'') <> '' --- Logic to create new documents for any documents used that do not have libtitles -INSERT INTO [Documents] ([LibTitle],[DocContent],[DocAscii],[Config],[DTS],[UserID],[FileExtension]) - OUTPUT CAST(INSERTED.[LibTitle] as INT),INSERTED.[DocID] INTO @NewDocuments - SELECT str(DD.[DocID]),[DocContent],[DocAscii],[Config],@DTS,@UserID,[FileExtension] - FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID - JOIN [Documents] DD on EE.[DocID] = DD.[DocID] and Isnull(LibTitle,'') = '' -UPDATE DD SET LibTitle = '' - FROM Documents DD JOIN @NewDocuments ND on DD.[DocID] = ND.[NewDocID] - where DTS = @DTS and UserID = @UserID ---print 'F ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Documents are Done - -- SELECT * From Documents where DTS = @DTS and UserID = @UserID --- Logic to create entries for these newly created documents -INSERT INTO [Entries] ([ContentID],[DocID],[DTS],[UserID]) - SELECT NN.[NewContentID],ND.[NewDocID],@DTS,@UserID - FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID - JOIN @NewDocuments ND on EE.[DocID] = ND.[DocID] --- Logic to Create DROUsages for these newly created documents -INSERT INTO [DROUsages] ([DocID],[ROID],[Config],[DTS],[UserID],[RODbID]) - SELECT ND.[NewDocID],[ROID],[Config],@DTS,@UserID,[RODbID] - FROM [DROUsages] RR - JOIN @NewDocuments ND on RR.[DocID] = ND.[DocID] - ---print 'G ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Entries are done - -- SELECT * From Entries EE JOIN Documents DD on ee.DocID = DD.DocID where EE.DTS = @DTS and EE.UserID = @UserID --- <<< Copy RoUsages >>> -INSERT INTO [RoUsages] ([ContentID],[ROID],[Config],[DTS],[UserID],[RODbID]) - SELECT NN.[NewContentID],CAST([ROUsageID] as nvarchar(16)),[Config],@DTS,@UserID,[RODbID] - FROM [RoUsages] RR Join @Children NN on RR.ContentID = NN.ContentID --- Update content records for newly copied records to use correct RO usage ids in the RO tags -DECLARE @RowsAffected int -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN - UPDATE CC SET [TEXT] = C2.NewText - FROM CONTENTS CC - JOIN (SELECT C1.ContentID, .dbo.vefn_FixROText(C1.Text, CAST([ROID] as int), [ROUsageID]) NewText - FROM CONTENTS C1 - JOIN @Children NN on C1.ContentID = NN.NewContentID - JOIN RoUsages RO on NN.NewContentID = RO.ContentID where Len([ROID]) < 12) C2 ON CC.ContentID = C2.ContentID - WHERE [TEXT] <> C2.NewText - SET @RowsAffected = @@RowCount -END --- Update grid records for newly copied records to use correct RO usage ids in the RO tags -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN - UPDATE GG SET [Data] = G2.NewData - FROM GRIDS GG - JOIN (SELECT G1.ContentID, .dbo.vefn_FixROData(G1.Data, CAST([ROID] as int), [ROUsageID]) NewData - FROM GRIDS G1 - JOIN @Children NN on G1.ContentID = NN.NewContentID - JOIN RoUsages RO on NN.NewContentID = RO.ContentID where Len([ROID]) < 12) G2 ON GG.ContentID = G2.ContentID - WHERE Cast([Data] as nvarchar(max)) <> cast(G2.NewData as nvarchar(max)) - SET @RowsAffected = @@RowCount -END -UPDATE RON SET [ROID] = ROO.[ROID] - FROM RoUsages RON - JOIN @Children NN on RON.ContentID = NN.NewContentID - JOIN RoUsages ROO on CAST(RON.ROID as int) = ROO.RoUsageID - where Len(RON.[ROID]) < 12 ---print 'H ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- RoUsages are done - -- SELECT * From RoUsages where DTS = @DTS and UserID = @UserID - --- <<< Copy Transtions >>> --- Note that the inserted record has the 'TranType' field set to old transitionid. This is done --- so that the next step can replace the old transitionid with the new transitionid in the --- content record's transition tokens. The TranType gets reset after the content records are --- updated. --- Also note that the 'toid/rangeid' may need converted to newly copied ids or may not. If it's --- not a range, then it always is converted to new, if there is a new. If it's a range, both --- the toid & the rangeid must be new in order for the conversion to be correct. You cannot --- have part of the range pointing to the new and part of the range pointing to the original --- locations. - -INSERT INTO .[dbo].[Transitions] ([FromID],[ToID],[RangeID],[IsRange],[TranType],[Config],[DTS],[UserID]) - SELECT NNF.[NewContentID], - -- if both toid & range are null, use the original toid & rangeid - CASE WHEN NNT.[NewItemID] is null or NNR.[NewItemID] is null THEN [ToID] ELSE NNT.[NewItemID] END, - CASE WHEN NNT.[NewItemID] is null or NNR.[NewItemID] is null THEN [RangeID] ELSE NNR.[NewItemID] END, - [IsRange],[TransitionID],[Config],@DTS,@UserID - FROM .[dbo].[Transitions] TT - JOIN @Children NNF on TT.[FromID] = NNF.[ContentID] - LEFT JOIN @Children NNT on TT.[ToID] = NNT.[ItemID] - LEFT JOIN @Children NNR on TT.[RangeID] = NNR.[ItemID] ---print 'H1 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- -- Update content records for newly copied records to use correct TransitionIDs in the Transition tags -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN -UPDATE CC SET [TEXT] = C2.NewText - FROM CONTENTS CC - JOIN (SELECT C1.ContentID, .dbo.vefn_FixTransitionTextForCopy(C1.Text, TRO.TransitionID, TRO.TranType, TRO.[ToID], TRO.[RangeID],TR.[TransitionID], TR.[ToID], TR.[RangeID], .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)) NewText - FROM CONTENTS C1 - JOIN @Children NN on C1.ContentID = NN.NewContentID - JOIN Transitions TR on NN.NewContentID = TR.FromID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID) C2 ON CC.ContentID = C2.ContentID - WHERE [TEXT] <> C2.NewText - SET @RowsAffected = @@RowCount -END ---print 'H2 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) ---set nocount off --- -- Update grid records for newly copied records to use correct TransitionIDs in the Transition tags -declare @grids table -( -contentid int primary key, -data xml -) -insert into @grids select gg.contentid,gg.data from GRIDS GG - where gg.contentid in (select nn.newcontentid from - @Children NN - JOIN Transitions TR on NN.NewContentID = TR.FromID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID) ---print 'H2.1 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) ---select * from @grids -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN -UPDATE GG SET [DATA] = G2.NewData - FROM @GRIDS GG - JOIN (SELECT G1.ContentID, .dbo.vefn_FixTransitionDataForCopy(G1.Data, TRO.TransitionID, TRO.TranType, TRO.[ToID], TRO.[RangeID],TR.[TransitionID], TR.[ToID], TR.[RangeID], .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)) NewData - FROM @GRIDS G1 - JOIN @Children NN on G1.ContentID = NN.NewContentID - JOIN Transitions TR on NN.NewContentID = TR.FromID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID) G2 ON GG.ContentID = G2.ContentID - WHERE Cast([DATA] as nvarchar(max)) <> CAST(G2.NewData as nvarchar(max)) - SET @RowsAffected = @@RowCount -END ---print 'H2.2 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -update GG set data = g1.data from Grids gg join @grids g1 on gg.contentid = g1.contentid ---print 'H3 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) ---set nocount on --- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition whose transition format changes -INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT NN.NewItemID, @typeID,'Verify Transition Format',@UserID - FROM Transitions TR - JOIN @Children NN on TR.FromID = NN.NewContentID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID - WHERE .dbo.vefn_CompareTranFormat(NN.FormatID, NN.NewFormatID, TRO.TranType) <> 0 ---print 'H4 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -UPDATE TR SET TR.[TranType] = .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType) - FROM Transitions TR - JOIN @Children NN on TR.FromID = NN.NewContentID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID ---print 'H5 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Transitions are done - -- SELECT * From Transitions where DTS = @DTS and UserID = @UserID ---print 'Z ' + cast(datediff(s,@dts,getdate()) as varchar(100)) ---foldouts fixing code -if exists (select * from contents where contentid in (select newcontentid from @children) and config like '%FloatingFoldout%') -begin - --insert into #mytemp - select cc.contentid,xsteps.value('@FloatingFoldout','int') oldfoldoutid,(select newitemid - from @children - where itemid = xsteps.value('@FloatingFoldout','int')) newfoldoutid,xconfig - into #mytemp - from (select *,cast(config as xml) xconfig from contents where contentid in (select newcontentid from @children)) cc - cross apply xconfig.nodes('Config/Step') tsteps(xsteps) - --build @cmd string - declare @cmd nvarchar(max) - declare cmds cursor for - select distinct 'update #mytemp set xconfig.modify(''replace value of (Config/Step/@FloatingFoldout)[1] with "' - + cast(newfoldoutid as varchar(10)) - + '"'') where xconfig.value(''(Config/Step/@FloatingFoldout)[1]'',''int'') = ' - + cast(oldfoldoutid as varchar(10)) - from #mytemp - --execute cursor over rows - open cmds - fetch next from cmds into @cmd - while @@fetch_status = 0 - begin - exec sp_executesql @cmd - fetch next from cmds into @cmd - end - close cmds - deallocate cmds - --actually update contents - update cc set config = cast(xconfig as varchar(max)) from contents cc join #mytemp mt on cc.contentid = mt.contentid - --get rid of #mytemp - drop table #mytemp -end ---end foldouts fixing code ---section start -DECLARE @NewContentID int -Select @NewContentID = NewContentID from @Children where ItemID = @StartItemID -DECLARE @Config varchar(max) -DECLARE @XConfig xml -select @Config = config from contents where contentid = @NewContentID -select @XConfig = cast(@Config as xml) -if @Config like '%SectionStart%' begin - DECLARE @SectionStart int - select @SectionStart = xproc.value('@SectionStart','int') from @xconfig.nodes('Config/Procedure') tproc(xproc) - DECLARE @NewSectionStart int - select @NewSectionStart = newitemid from @children where itemid = @SectionStart - DECLARE @cmd2 nvarchar(max) - set @cmd2 = ' - declare @XConfig xml; - set @XConfig = cast(''' + @Config + ''' as xml); - set @XConfig.modify(''replace value of (Config/Procedure/@SectionStart)[1] with "' + cast(@NewSectionStart as nvarchar(10)) + '"''); - update contents set config = cast(@XConfig as varchar(max)) where contentid = ' + cast(@NewContentID as nvarchar(10)) + ';' - exec sp_executesql @cmd2 -end ---end section start - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -go --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: CopyItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: CopyItemAndChildren Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_removeUnUsedFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_removeUnUsedFormat]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2021 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_removeUnUsedFormat] -( - @Name nvarchar(100) -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - declare @tbl Table( - removeid int) - declare @baseid int - insert into @tbl select formatid from formats where name like @name - - -- get the format id of the base format - select @baseid = formatid from formats where name = 'base' - - -- assign deleted format with the base format - update folders set FormatID = @baseid where FormatID in (select removeid from @tbl) - update DocVersions set FormatID = @baseid where FormatID in (select removeid from @tbl) - update tblContents set FormatID = @baseid where FormatID in (select removeid from @tbl) - -- delete the contentAudits records that use the deleted format - delete ContentAudits where FormatID in (select removeid from @tbl) - -- delete the record out of formats - delete Formats where FormatID in (select removeid from @tbl) - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY - -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of remove format -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_removeUnUsedFormat] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_removeUnUsedFormat] Error on Creation' -go - - --- remove un-used formats -exec vesp_removeUnUsedFormat 'WPS%' -exec vesp_removeUnUsedFormat 'WPB%' -exec vesp_removeUnUsedFormat 'VCBEPP%' -exec vesp_removeUnUsedFormat 'BNPPdev%' -exec vesp_removeUnUsedFormat 'BNPPgop%' -exec vesp_removeUnUsedFormat 'BNPPckl%' - -PRINT 'Kewaunee, Point Beach, un-used Summer, Barakah Deviation, Barakah GOP (sample), Barakah Checklist formats removed' -GO - -/****** Object: StoredProcedure [CopyItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DeleteItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [DeleteItemAndChildren]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[DeleteItemAndChildren] -( - @ItemID int, - @UserID AS VARCHAR(100) -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - declare @DeleteID int - DECLARE @ContentID AS INT - DECLARE @NextItemID AS INT - DECLARE @PreviousItemID AS INT - DECLARE @ExternalChildCount AS INT - DECLARE @ExternalCount AS INT - DECLARE @ItemType AS INT - DECLARE @Path AS VARCHAR(MAX) - DECLARE @Children AS TABLE - ( - ItemID INT PRIMARY KEY, - ContentID INT - ) - DECLARE @ExternalTrans TABLE - ( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL - ) - SET NOCOUNT ON - SELECT @ContentID = ContentID, @PreviousItemID = PreviousID FROM Items WHERE ItemID = @ItemID - SELECT @NextItemID = ItemID FROM Items WHERE PreviousID = @ItemID - SET @Path = [dbo].[ve_GetShortPath](@ItemID) - - SELECT @ExternalCount = count(*) FROM vefn_FindExternalTransitions(@ItemID) where rangeid = toid or toid = @ItemID - IF @ExternalCount > 0 AND @NextItemID is null - BEGIN - RAISERROR ('###Cannot Delete Item###Step %d has External Transitions and has no next step - (%s)',16,1,@ItemID,@Path) - RETURN - END - - IF @ExternalCount > 0 AND @ItemType < 10000 - BEGIN - RAISERROR ('###Cannot Delete Item###Procedure %d has External Transitions to Procedure - (%s)',16,1,@ItemID,@Path) - RETURN - END - - SELECT @ExternalChildCount = count(*) FROM vefn_FindExternalChildTransitions(@ItemID) - SELECT @ItemType = Type FROM Contents Where ContentID = @ContentID - -- Check to see if External Transitions point to the current item - IF @ExternalChildCount > 0 - BEGIN - RAISERROR ('###Cannot Delete Item###Step %d has External Transitions to it''s children - (%s)',16,1,@ItemID,@Path) - RETURN - END - --deletelog - INSERT INTO DeleteLog (UserID) values (@UserID) - Select @DeleteID = SCOPE_IDENTITY() - --end deletelog - -- Get list of Children - INSERT INTO @Children SELECT * FROM vefn_ChildItems(@ItemID) - -- UPDATE PreviousID in Items WHERE ItemID = @NextItemID - UPDATE Items SET PreviousID = @PreviousItemID WHERE ItemID=@NextItemID - -- UPDATE DocVersion - UPDATE DocVersions SET ItemID=@NextItemID where ItemID = @ItemID - -- UPDATE Parts - IF @NextItemID is not NULL -- Remove Part Record - BEGIN - UPDATE PARTS SET ItemID = @NextItemID where ItemID=@ItemID - END - ELSE - BEGIN - DELETE FROM Parts WHERE ItemID=@ItemID - END - -- Get external transitions that point to the specified Item - -- These will need to be adjusted to point to the next Item. - INSERT INTO @ExternalTrans SELECT * FROM vefn_FindExternalTransitions(@ItemID); - DECLARE @typeID int -- AnnotationType - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add 'Verification Required' annotions for transtions that point to different step - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where ItemID in (SELECT FromItemID FROM @ExternalTrans) - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@NextItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID != @ItemID or RangeID = ToID) - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@PreviousItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID = @ItemID and RangeID != ToID) - -- Update transitions that point to @ItemID to Point to @NextItemID - UPDATE TRANSITIONS - SET ToID = case when ToID = @ItemID then @NextItemID else ToID END, - RangeID = case when RangeID = @ItemID then @NextItemID else RangeID END - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID != @ItemID or RangeID = ToID) - UPDATE TRANSITIONS - SET ToID = case when ToID = @ItemID then @NextItemID else ToID END, - RangeID = case when RangeID = @ItemID then @PreviousItemID else RangeID END - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID = @ItemID and RangeID != ToID) - -- Delete Annotations for @ItemID and children - DELETE from Annotations where ItemID in(Select ItemID from @Children) - -- Delete Details associated with @ContentID and children - DELETE from Details where ContentID in(Select ContentID from @Children) - -- Delete Grids associated with @ContentID and children - DELETE from Grids where ContentID in(Select ContentID from @Children) - -- Delete Images associated with @ContentID and children - DELETE from Images where ContentID in(Select ContentID from @Children) - -- Delete Entries associated with @ContentID and children - DELETE from Entries where ContentID in(Select ContentID from @Children) - -- Delete ROUsages associated with @ContentID and children - DELETE from RoUsages where ContentID in(Select ContentID from @Children) - -- Delete ZTransitions records associated with @ContentID and children - DELETE FROM ZTransitions where TransitionID - in(SELECT TransitionID from Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID) - -- Delete Transitions associated with @ContentID and children - DELETE FROM Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID - -- Delete Parts associated with @ContentID and children - DELETE from Parts where ContentID in(Select ContentID from @Children) - -- Delete ZContents associated with @ContentID and children - DELETE from ZContents where ContentID in(Select ContentID from @Children) - -- Disconnect Items from Each Other - DELETE from Items where ItemID in(Select ItemID from @Children) and PreviousID Is Not Null - -- Disconnect Items to be deleted from each other - Update Items set PreviousID = null where ItemID in (Select ItemID from @Children) and PreviousID Is Not Null - -- Delete Item Records - DELETE from Items where ItemID in(Select ItemID from @Children) - -- Remove Previously deleted transitions - DELETE from tblTransitions where deletestatus = -1 and FromID in(SELECT ContentID FROM @Children) - -- Remove Previously deleted rousages - DELETE from tblrousages where deletestatus = -1 and contentID in(SELECT ContentID FROM @Children) - -- DELETE Contents - DELETE from Contents where ContentID in(Select ContentID from @Children) - --purge deletelog - DELETE from DeleteLog where DeleteID = @DeleteID - --end purge deletelog - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: DeleteItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: DeleteItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FixTransitionDataForCopy] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixTransitionDataForCopy]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixTransitionDataForCopy]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FixTransitionDataForCopy] -(@data XML,@TransitionID int,@TranType int,@OldToID int,@OldRangeID int, @NewID int, @NewToID int, @NewRangeID int, @NewTranType int) -RETURNS XML -WITH EXECUTE AS OWNER -AS -BEGIN - - -- Build Search String and Replace String - DECLARE @offset int - DECLARE @lookFor nvarchar(MAX) - DECLARE @replaceWith nvarchar(MAX) - DECLARE @text nvarchar(MAX) - SET @text = Cast(@data as nvarchar(max)) - SET @lookFor = '#Link:Transition:' + ltrim(str(@TranType)) + ' ' + ltrim(str(@TransitionID)) - SET @offset = CHARINDEX(@lookFor,@text) - if(@offset = 0) - BEGIN - - SET @lookFor = '#Link:TransitionRange:' + ltrim(str(@TranType)) + ' ' + ltrim(str(@TransitionID)) - SET @offset = CHARINDEX(@lookFor,@text) - SET @replaceWith = '#Link:TransitionRange:' + ltrim(str(@NewTranType)) + ' ' + ltrim(str(@NewID)) - + ' ' + ltrim(str(@NewToID)) + ' ' + ltrim(str(@NewRangeID)) - SET @lookFor = @lookFor + ' ' + ltrim(str(@OldToID)) + ' ' + ltrim(str(@OldRangeID)) - END - ELSE - BEGIN - SET @replaceWith = '#Link:Transition:' + ltrim(str(@NewTranType)) + ' ' + ltrim(str(@NewID)) - + ' ' + ltrim(str(@NewToID)) - SET @lookFor = @lookFor + ' ' + ltrim(str(@OldToID)) - END - return Cast(replace(@text,@lookFor,@replaceWith) as XML) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_FixTransitionDataForCopy Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_FixTransitionDataForCopy Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FixROData] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixROData]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixROData]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create FUNCTION [dbo].[vefn_FixROData] -(@data XML,@ROUsageID int,@NewROUsageID int) -RETURNS XML -WITH EXECUTE AS OWNER -AS -BEGIN - -- Build Search String and Replace String - DECLARE @lookFor varchar(MAX) - DECLARE @replaceWith varchar(MAX) - SET @lookFor = '#Link:ReferencedObject:' + ltrim(str(@ROUsageID)) + ' ' - SET @replaceWith = '#Link:ReferencedObject:' + ltrim(str(@NewROUsageID)) + ' ' - return CAST(replace(CAST(@data AS NVarChar(max)),@lookFor,@replaceWith) AS XML) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_FixROData Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_FixROData Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_GetVersionProcedureItems] Script Date: 1/5/2015 3:58:49 PM ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionProcedureItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionProcedureItems]; -GO -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO - -/* -Select * from vefn_GetVersionProcedureItems('') where procid = 63589 -Select * from vefn_GetVersionProcedureItems('1') where procid = 63589 -Select * from vefn_GetVersionProcedureItems('4') where procid = 63589 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetVersionProcedureItems](@DocVersionList varchar(MAX)) -RETURNS @VersionItems TABLE -( - VersionID int, - ProcID int, - ItemID int primary key, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - BEGIN - with Itemz([VersionID], ProcID, [ItemID], [ContentID]) as - (Select DV.VersionID, DV.ItemID ProcID, [I].[ItemID], [I].[ContentID] - FROM [Items] I - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] - Union All - -- Children - select Z.VersionID, Z.ProcID, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - Union All - -- Siblings - select Z.VersionID, case when z.ProcID = z.ItemID then I.ItemID else Z.ProcID end ProcID, I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - ) - insert into @VersionItems - select VersionID, ProcID, [ItemID], [ContentID] - from ItemZ I - --Select * From rousages RU Where RU.ContentID in (Select ContentID from ItemZ) - OPTION (MAXRECURSION 10000) - END -RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction vefn_GetVersionProcedureItems Succeeded' -ELSE PRINT 'TableFunction vefn_GetVersionProcedureItems Error on Creation' - -/****** Object: StoredProcedure [getTransitionSearchResults] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchTransitions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [dbo].[vesp_SearchTransitions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/****** Object: StoredProcedure [dbo].[vesp_SearchTransitions] Script Date: 1/7/2015 6:15:17 PM ******/ -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO -/* -exec vesp_searchtransitions '1,2,4,6,7,11,12',6,'' -*/ - -CREATE PROCEDURE [dbo].[vesp_SearchTransitions] -( - @DocVersionList varchar(max), - @TranType int, - @TranCategory varchar(20), - -- added stepTypeList to fix bug B2015-055 - allows transition search in specified step elements - @StepTypeList varchar(MAX) -) -WITH EXECUTE AS OWNER -AS -BEGIN - Declare @Delim char(1) - Set @Delim=char(7) - Declare @DelimNumber char(1) - Set @DelimNumber=char(17) - Declare @DelimStep char(1) - Set @DelimStep='.' - declare @itmp table - ( - vid int, - pid int, - iid int primary key, - cid int - ) - declare @ctmp table - ( - vid int, - pid int, - iid int, - cid int primary key - ) - declare @ttmp table - ( - itemid int, - dvpath varchar(max), - UnitPrefix varchar(MAX) - ) - insert into @itmp select * from vefn_getversionprocedureitems(@DocVersionList) - insert into @ctmp select * from @itmp - if @TranType = -1 and @TranCategory = '' begin - insert into @ttmp - select ii.ItemID,dv.DVPath,dv.UnitPrefix - from vefn_DocVersionSplit(@DocVersionList) dv - join @ctmp ct on dv.VersionID = ct.vid - join Items ii on ct.cid = ii.ContentID - join Transitions tt on ii.ContentID = tt.FromID - end else if @TranType > -1 and @TranCategory = '' begin - insert into @ttmp - select ii.ItemID,dv.DVPath,dv.UnitPrefix - from vefn_DocVersionSplit(@DocVersionList) dv - join @ctmp ct on dv.VersionID = ct.vid - join Items ii on ct.cid = ii.ContentID - join Transitions tt on ii.ContentID = tt.FromID - where tt.TranType = @TranType - end else if @TranType = -1 and @TranCategory != '' begin - insert into @ttmp - select ii.ItemID,dv.DVPath,dv.UnitPrefix - from vefn_DocVersionSplit(@DocVersionList) dv - join @ctmp ct on dv.VersionID = ct.vid - join Items ii on ct.cid = ii.ContentID - join Transitions tt on ii.ContentID = tt.FromID - join @itmp it on tt.ToID = it.iid - where case when it.vid = ct.vid then case when it.pid = ct.pid then 'Internal' else 'External' end else 'Outside' end = @TranCategory - end else begin - insert into @ttmp - select ii.ItemID,dv.DVPath,dv.UnitPrefix - from vefn_DocVersionSplit(@DocVersionList) dv - join @ctmp ct on dv.VersionID = ct.vid - join Items ii on ct.cid = ii.ContentID - join Transitions tt on ii.ContentID = tt.FromID - join @itmp it on tt.ToID = it.iid - where tt.TranType = @TranType and case when it.vid = ct.vid then case when it.pid = ct.pid then 'Internal' else 'External' end else 'Outside' end = @TranCategory - end - BEGIN - with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath, UnitPrefix) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath, UnitPrefix - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] - Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - when 8 then @DelimStep + 'SupInfo' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(4)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(4)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(4)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(4)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - when 8 then @DelimStep +'SupInfo' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(4)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001', UnitPrefix - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID - Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(4)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4), UnitPrefix - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - ) - SELECT - tt.dvpath,Z.Path, - I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - FROM Itemz Z - join [Items] I on Z.ItemID = I.ItemID - join @ttmp tt on I.ItemID = tt.itemid - join Contents C on C.ContentID = I.ContentID - left join Parts P on i.ItemID = P.ItemID - -- Where clase added for bug fix B2015-055 to allow transition search within selected step elements - Where - ((isnull(@StepTypeList,'') = '' /*and dbo.vefn_AllSections(C.Type)>=10000*/) - or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - OPTION (MAXRECURSION 10000) - RETURN - END -END -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchTransitions Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchTransitions Error on Creation' -GO - -/****** Object: TableFunction [vefn_GetVersionFormatSections] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionFormatSections]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionFormatSections]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetVersionFormatSections](@DocVersionList varchar(MAX)) -RETURNS @VersionItems TABLE -( - VersionID int, - ItemID int, - ContentID int primary key, - FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - BEGIN - with Itemz([VersionID], [ItemID], [ContentID], [FormatID], [ParentFormatID]) as - (Select DV.VersionID, [I].[ItemID], [I].[ContentID], - isnull(C.[FormatID],isnull(DV2.[FormatID],isnull(F.[FormatID],P.[FormatID]))), - isnull(DV2.[FormatID],isnull(F.[FormatID],P.[FormatID])) - FROM [Items] I - JOIN vefn_DocVersionSplit(@DocVersionList) DV ON I.[ItemID] = DV.[ItemID] - join docversions DV2 on DV.[VersionID] = DV2.[VersionID] - join folders F on DV2.[FolderID] = F.[FolderID] - join folders P on P.[FolderID] = F.[ParentID] - join Contents C on I.ContentID = C.ContentID - - Union All - -- Children - select Z.VersionID, I.[ItemID], I.[ContentID], isnull(C.[FormatID],Z.[FormatID]), Z.[FormatID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on I.ContentID = C.ContentID - where c.Type < 20000 - Union All - -- Siblings - select Z.VersionID, I.[ItemID], I.[ContentID], isnull(C.[FormatID],Z.[ParentFormatID]), Z.[ParentFormatID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on I.ContentID = C.ContentID - ) - insert into @VersionItems - select VersionID, [ItemID], [ContentID], [FormatID] - from ItemZ I - --Select * From rousages RU Where RU.ContentID in (Select ContentID from ItemZ) - OPTION (MAXRECURSION 10000) - END -RETURN -END -GO --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetVersionFormatSections Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetVersionFormatSections Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetFormatVersions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetFormatVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [dbo].[vesp_GetFormatVersions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/****** Object: StoredProcedure [dbo].[vesp_GetFormatVersions] Script Date: 1/7/2015 6:15:17 PM ******/ -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO -CREATE PROCEDURE [dbo].[vesp_GetFormatVersions] -WITH EXECUTE AS OWNER -AS -BEGIN - select ff.Name + ' - ' + ff.Description Title,vfi.FormatID,vn.VersionID - from vefn_GetVersionNames() vn - join vefn_GetVersionFormatSections('') vfi on vn.VersionID = vfi.VersionID - join Formats ff on vfi.FormatID = ff.FormatID - group by ff.Name + ' - ' + ff.Description,vfi.formatid,vn.VersionID - return -END -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetFormatVersions Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetFormatVersions Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetTranTypesByFormatID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetTranTypesByFormatID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [dbo].[vesp_GetTranTypesByFormatID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/****** Object: StoredProcedure [dbo].[vesp_GetTranTypesByFormatID] Script Date: 1/7/2015 6:15:17 PM ******/ -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO -/* -vesp_GetTranTypesByFormatID 102 -*/ -CREATE PROCEDURE [dbo].[vesp_GetTranTypesByFormatID] -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @t1 table - ( - formatid int, - transindex int, - transmenu varchar(max) - ) - declare @t2 table - ( - transindex int, - formatid int - ) - insert into @t1 - select ff.formatid,r1.value('@Index','int') transindex, r1.value('@TransMenu','varchar(max)') transmenu - from Formats ff - cross apply ff.Data.nodes('//TransTypes') t1(r1) - where ff.FormatID = @FormatID - union - select ff.formatid,r1.value('@Index','int') transindex, r1.value('@TransMenu','varchar(max)') transmenu - from Formats ff - cross apply ff.Data.nodes('//TransTypes') t1(r1) - where ff.FormatID = 1 - insert into @t2 - select transindex,max(formatid) formatid from @t1 group by transindex - select t1.transindex,t1.transmenu - from @t1 t1 - join @t2 t2 on t1.formatid = t2.formatid and t1.transindex = t2.transindex - order by t1.transindex - RETURN -END -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetTranTypesByFormatID Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetTranTypesByFormatID Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetTransitionReportData] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetTransitionReportData]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [dbo].[vesp_GetTransitionReportData]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/****** Object: StoredProcedure [dbo].[vesp_GetTransitionReportData] Script Date: 1/7/2015 6:15:17 PM ******/ -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO -/* -vesp_GetTransitionReportData 5, 6078 -*/ -CREATE PROCEDURE [dbo].[vesp_GetTransitionReportData] -( - @VersionID int, - @ProcedureID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @itmp table - ( - vid int, - pid int, - iid int primary key, - cid int - ) - declare @ctmp table - ( - vid int, - pid int, - iid int, - cid int primary key - ) - declare @ttmp table - ( - tid int primary key - ) - insert into @itmp select * from vefn_getversionprocedureitems('') - insert into @ctmp select * from @itmp - insert into @ttmp - select tt.TransitionID from Transitions tt join @ctmp ct on tt.FromID = ct.cid join @itmp it on tt.ToID = it.iid - where ct.pid = @ProcedureID or it.pid = @ProcedureID - --internal - select 1 level,tt.*, - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=tt.[TransitionID]) [ZTransitionCount] - from Transitions tt - join @ttmp tp on tt.TransitionID = tp.tid - join @ctmp ct on tt.FromID = ct.cid - join @itmp it on tt.ToID = it.iid - where ct.vid = it.vid and ct.pid = @ProcedureID and it.pid = @ProcedureID - --external from - union - select 2 level,tt.*, - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=tt.[TransitionID]) [ZTransitionCount] - from Transitions tt - join @ttmp tp on tt.TransitionID = tp.tid - join @ctmp ct on tt.FromID = ct.cid - join @itmp it on tt.ToID = it.iid - where ct.vid = it.vid and ct.pid = @ProcedureID and it.pid != @ProcedureID - --external to - union - select 3 level,tt.*, - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=tt.[TransitionID]) [ZTransitionCount] - from Transitions tt - join @ttmp tp on tt.TransitionID = tp.tid - join @ctmp ct on tt.FromID = ct.cid - join @itmp it on tt.ToID = it.iid - where ct.vid = it.vid and ct.pid != @ProcedureID and it.pid = @ProcedureID - --outside from - union - select 4 level,tt.*, - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=tt.[TransitionID]) [ZTransitionCount] - from Transitions tt - join @ttmp tp on tt.TransitionID = tp.tid - join @ctmp ct on tt.FromID = ct.cid - join @itmp it on tt.ToID = it.iid - where ct.vid != it.vid and ct.pid = @ProcedureID-- and ii.ItemID not in (select iid from @itmp) - --outside to - union - select 5 level,tt.*, - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=tt.[TransitionID]) [ZTransitionCount] - from Transitions tt - join @ttmp tp on tt.TransitionID = tp.tid - join @itmp it on tt.ToID = it.iid - join @ctmp ct on tt.FromID = ct.cid - where ct.vid != it.vid and it.pid = @ProcedureID --and ii.ContentID not in (select cid from @ctmp) - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetTransitionReportData Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetTransitionReportData Error on Creation' -GO - - -/****** Object: StoredProcedure [PasteItemChild] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemChild]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [PasteItemChild]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2015 - Volian Enterprises, Inc. All rights reserved. - -Copies & Pastes into a level above the copied item, for example copied item is step pasted into a section. - -Example test: - -declare @NewItemID int -declare @dts datetime -set @newitemid = 0 -set @dts = getdate() -exec PasteItemChild 1493,484,20041,2,@dts,'KATHY',@NewItemID output - -*****************************************************************************/ - -CREATE PROCEDURE [dbo].[PasteItemChild] -( - @ItemID int=null, @StartItemID int=null, -- ItemID is destination, StartItemID is top of copy - @Type int=null, @FromType int=null, @DTS datetime, @UserID nvarchar(100), -- Type is step/section type for content record, fromtype is for parts - @NewItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - if exists (select * from tblitems where itemid = @ItemID and DeleteStatus !=0) - BEGIN - RAISERROR ('###Cannot Paste Step###This current step has been deleted in another session',16,1) - RETURN - END - -- First make a copy of the input StartItemID - -- DestFormatID is the formatid for the destination parent's format - DECLARE @DestFormatID int - SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - -- print 'testing PasteItemChild 1 ' + cast(dbo.ve_GetTransitionErrorCount() as varchar(20)) - DECLARE @ChildID int, @ContentID int, @ParentContentID int, @LastChanged timestamp - , @newLastChanged timestamp, @Error int, @Rowcount int, @ChildDeleted int - SELECT @ChildID = pp.[ItemID],@ParentContentID = ii.ContentID, @LastChanged = pp.LastChanged - FROM [ITEMS] ii - LEFT JOIN [PARTS] pp on pp.ContentID=ii.ContentID and pp.FromType=@FromType - WHERE ii.[ItemID]=@ItemID - IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[tblParts]') AND OBJECTPROPERTY(id,N'IsTable') = 1) - BEGIN - SELECT @ChildDeleted = pp.[ItemID],@ParentContentID = ii.ContentID, @LastChanged = pp.LastChanged - FROM [ITEMS] ii - LEFT JOIN [tblPARTS] pp on pp.ContentID=ii.ContentID and pp.FromType=@FromType - WHERE ii.[ItemID]=@ItemID and pp.DeleteStatus > 0 - END - -- No existing child - Add Parts record. Note that don't need to update any transition records if no existing children - IF @ChildID is null - BEGIN - IF @ChildDeleted is not null - DELETE FROM [tblParts] WHERE ItemID = @ChildDeleted - EXECUTE AddPart @ParentContentID, @FromType, @newItemID, @DTS, @UserID, @newLastChanged output - END - ELSE -- Children exist: Update existing Parts record and adjust transition records that may have pointed to 1st child. - BEGIN - EXECUTE UpdatePart @ParentContentID, @FromType, @newItemID, @DTS, @UserID, @LastChanged, @newLastChanged output - UPDATE [Items] SET [PreviousID]=@newItemID WHERE [ItemID]=@ChildID - - -- Update content records for the transitions, this only fixes the link portion. Code fixes the text. - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ChildID,@newItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TT.ToID = @ChildID OR TT.RangeID = @ChildID - -- Update transitions that pointed to @ItemID to point to @newItemID - Update TRANSITIONS - Set ToID = CASE ToID WHEN @ChildID THEN @newItemID ELSE ToID END, - RangeID = CASE RangeID WHEN @ChildID THEN @newItemID ELSE RangeID END - WHERE ToID = @ChildID OR RangeID = @ChildID - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - -- I don't expect to see any transitions that point to @ChildID. They should have changed in - -- the update above to point to @newItemID. This is here for consistency with the other insert - -- stored procedures - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@ChildID,@newItemID) OR RangeID IN(@ChildID,@newItemID)) - -- Transition Text gets updated in ItemInsertExt.cs - IF( @@TRANCOUNT > 0 ) COMMIT - PRINT 'Child Added ' + ltrim(str(@newItemID)) - EXECUTE GetItem @newItemID - delete from itemaudits where itemid in (select itemid from vefn_ChildItems(@newitemid)) - delete from contentaudits where contentid in (select contentid from vefn_ChildItems(@newitemid)) -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteItemChild Succeeded' -ELSE PRINT 'Procedure Creation: PasteItemChild Error on Creation' -GO - - -/****** Object: StoredProcedure [PasteDocVersionChild] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteDocVersionChild]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [PasteDocVersionChild]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2014 - Volian Enterprises, Inc. All rights reserved. - -Copies & Pastes into a docversion that does NOT have any existing procedures. - -Example test: - -declare @NewItemID int -declare @dts datetime -set @newitemid = 0 -set @dts = getdate() -exec PasteDocVersionChild 5,30,@dts,'KATHY',@NewItemID output - -*****************************************************************************/ -CREATE PROCEDURE [dbo].[PasteDocVersionChild] -( - @VersionID int=null, @StartItemID int=null, -- VersionID is destination (docversion), StartItemID is top of copy (i.e. procedure) - @DTS datetime, @UserID nvarchar(100), - @ThisVersionID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - if not exists (select * from DocVersions where versionid = @VersionID) - BEGIN - RAISERROR ('###Cannot Paste Procedure###This document version has been deleted in another session',16,1) - RETURN - END - -- First make a copy of the input StartItemID (Procedure) - -- DestFormatID is the formatid for the destination parent's format - DECLARE @NewItemID int - DECLARE @DestFormatID int - SET @ThisVersionID = @VersionID - SET @DestFormatID = .dbo.vefn_GetDocVersionInheritedFormat(@VersionID) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - UPDATE [DOCVERSIONS] SET [ItemID] = @NewItemID where [VersionID]=@VersionID - IF( @@TRANCOUNT > 0 ) COMMIT - PRINT 'Child Added ' + ltrim(str(@newItemID)) - EXECUTE GetDocVersion @ThisVersionID - delete from itemaudits where itemid in (select itemid from vefn_ChildItems(@newitemid)) - delete from contentaudits where contentid in (select contentid from vefn_ChildItems(@newitemid)) -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteDocVersionChild Succeeded' -ELSE PRINT 'Procedure Creation: PasteDocVersionChild Error on Creation' -GO - - -/****** Object: StoredProcedure [vefn_GetDocVersionInheritedFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetDocVersionInheritedFormat]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetDocVersionInheritedFormat]; -GO - -CREATE FUNCTION [dbo].[vefn_GetDocVersionInheritedFormat] (@VersionID int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @FormatID as int - -- First get format for the input doc version - begin - with Itemz([Level], [VersionID], [FolderID], [ParentID], [FormatID]) as ( - -- DocVersion From Item - select 0 [Level], DV.VersionID, DV.FolderID, null, DV.FormatID - from DocVersions DV - where [VersionID] = @VersionID - Union All - -- Folders - select [Level] + 1, null, FF.ParentID, FF.FolderID, FF.FormatID - from Itemz Z - join Folders FF on FF.FolderID = Z.ParentID and FF.ParentID <> FF.FolderID - where Z.FormatID is null - ) - Select @FormatID = FormatID from Itemz ZZ Where FormatID is not null - OPTION (MAXRECURSION 10000) - END - RETURN @FormatID -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_GetDocVersionInheritedFormat Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_GetDocVersionInheritedFormat Error on Creation' -GO - -/*********the following funcion is for debugging copy/paste where transition text in content records does not get updated */ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetTransitionErrorCount]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetTransitionErrorCount]; -/****** Object: UserDefinedFunction [dbo].[vefn_ChronologyReport] Script Date: 03/20/2012 17:50:44 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select dbo.ve_GetTransitionErrorCount () -print 'testing ' + cast(dbo.ve_GetTransitionErrorCount() as varchar(20)) -*/ - -CREATE FUNCTION [dbo].[ve_GetTransitionErrorCount] () RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @Count int -select @Count = count(*) from ( -select dbo.ve_GetShortPathFromContentId(contentid) location, * from ( -select contentid, text, tt.*, -case when text like '%'+ case when tt.toid = tt.rangeid and tt.IsRange = 0 -then -'#Link:Transition:' + cast(TranType as nvarchar(2)) + -' ' + cast(TransitionID as nvarchar(10)) + ' ' + cast(ToID as nvarchar(10)) + '%' -else -'#Link:TransitionRange:' + cast(TranType as nvarchar(2)) + -' ' + cast(TransitionID as nvarchar(10)) + ' ' + cast(ToID as nvarchar(10)) + ' ' + cast(RangeID as nvarchar(10))+ '%' -end then 'matches' else 'different' end ContentMatchesTrans, -case when text like '%'+ -'#Link:TransitionRange:' + cast(TranType as nvarchar(2)) + -' ' + cast(TransitionID as nvarchar(10)) + ' ' + cast(ToID as nvarchar(10)) + ' ' + cast(RangeID as nvarchar(10))+ '%' -then 'matches' else 'different' end ContentMatchesRangeTrans -from Contents cc -join transitions tt on tt.fromid = cc.contentid) mm -where ContentMatchesTrans = 'different') mm -return @Count -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetTransitionErrorCount Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetTransitionErrorCount Error on Creation' -GO - ---added by JCB for storing procedure xml for approved version ---ALTER TABLE Versions add ApprovedXML if it does not exist -IF COL_LENGTH('Versions','ApprovedXML') IS NULL - ALTER TABLE Versions ADD [ApprovedXML] [NVARCHAR](MAX) NULL; -GO - -/****** Object: StoredProcedure [addVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addVersion] - -( - @RevisionID int, - @StageID int, - @PDF varbinary(MAX)=null, - @SummaryPDF varbinary(MAX)=null, - @ApprovedXML nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(200), - @newVersionID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Versions] - ( - [RevisionID], - [StageID], - [PDF], - [SummaryPDF], - [ApprovedXML], - [DTS], - [UserID] - ) - VALUES - ( - @RevisionID, - @StageID, - @PDF, - @SummaryPDF, - @ApprovedXML, - @DTS, - @UserID - ) - SELECT @newVersionID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Versions] WHERE [VersionID]=@newVersionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addVersion Succeeded' -ELSE PRINT 'Procedure Creation: addVersion Error on Creation' -GO - -/****** Object: StoredProcedure [getVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersion] - -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [VersionID], - [RevisionID], - [StageID], - [PDF], - [SummaryPDF], - [ApprovedXML], - [DTS], - [UserID], - [LastChanged] - FROM [Versions] - WHERE [VersionID]=@VersionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersion Succeeded' -ELSE PRINT 'Procedure Creation: getVersion Error on Creation' -GO - -/****** Object: StoredProcedure [getVersions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersions] - -WITH EXECUTE AS OWNER -AS - SELECT - [VersionID], - [RevisionID], - [StageID], - [PDF], - [SummaryPDF], - [ApprovedXML], - [DTS], - [UserID], - [LastChanged] - FROM [Versions] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersions Succeeded' -ELSE PRINT 'Procedure Creation: getVersions Error on Creation' -GO - -/****** Object: StoredProcedure [getVersionsByRevisionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersionsByRevisionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersionsByRevisionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersionsByRevisionID] - -( - @RevisionID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Versions].[VersionID], - [Versions].[RevisionID], - [Versions].[StageID], - [Versions].[PDF], - [Versions].[SummaryPDF], - [Versions].[ApprovedXML], - [Versions].[DTS], - [Versions].[UserID], - [Versions].[LastChanged], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Versions] - JOIN [Stages] ON - [Stages].[StageID]=[Versions].[StageID] - WHERE - [Versions].[RevisionID]=@RevisionID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersionsByRevisionID Succeeded' -ELSE PRINT 'Procedure Creation: getVersionsByRevisionID Error on Creation' -GO - -/****** Object: StoredProcedure [getVersionsByStageID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersionsByStageID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersionsByStageID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersionsByStageID] - -( - @StageID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Versions].[VersionID], - [Versions].[RevisionID], - [Versions].[StageID], - [Versions].[PDF], - [Versions].[SummaryPDF], - [Versions].[ApprovedXML], - [Versions].[DTS], - [Versions].[UserID], - [Versions].[LastChanged], - [Revisions].[ItemID] [Revision_ItemID], - [Revisions].[TypeID] [Revision_TypeID], - [Revisions].[RevisionNumber] [Revision_RevisionNumber], - [Revisions].[RevisionDate] [Revision_RevisionDate], - [Revisions].[Notes] [Revision_Notes], - [Revisions].[Config] [Revision_Config], - [Revisions].[DTS] [Revision_DTS], - [Revisions].[UserID] [Revision_UserID] - FROM [Versions] - JOIN [Revisions] ON - [Revisions].[RevisionID]=[Versions].[RevisionID] - WHERE - [Versions].[StageID]=@StageID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersionsByStageID Succeeded' -ELSE PRINT 'Procedure Creation: getVersionsByStageID Error on Creation' -GO - -/****** Object: StoredProcedure [updateVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateVersion] - -( - @VersionID int, - @RevisionID int, - @StageID int, - @PDF varbinary(MAX)=null, - @SummaryPDF varbinary(MAX)=null, - @ApprovedXML nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(200), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Versions] - SET - [RevisionID]=@RevisionID, - [StageID]=@StageID, - [PDF]=@PDF, - [SummaryPDF]=@SummaryPDF, - [ApprovedXML]=@ApprovedXML, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [VersionID]=@VersionID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Versions] WHERE [VersionID]=@VersionID) - RAISERROR('Version record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Version has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Versions] WHERE [VersionID]=@VersionID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateVersion Succeeded' -ELSE PRINT 'Procedure Creation: updateVersion Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetDisconnectedItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetDisconnectedItems]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetDisconnectedItems] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - --- select * from vefn_GetDisconnectedItems() - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION [dbo].[vefn_GetDisconnectedItems]() -RETURNS @DiscItems TABLE -( - ItemID int primary Key, - ContentID int, - UNIQUE (ContentID) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @UsedItems Table - ( itemid int primary key, contentid int) - insert into @UsedItems - Select ItemID, ContentID from vefn_GetVersiontblItems('') - insert into @DiscItems - select itemid,ii.contentid from ( - Select ItemID,ii.ContentID from tblItems II - where ItemID not in(select ItemID from @UsedItems)) ii - Join Contents CC ON CC.ContentID = II.ContentID - And CC.Type is not null - UNION - Select ItemId, ContentID from vefn_GetZeroFromType() - RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetDisconnectedItems] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetDisconnectedItems] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_TransitionsToDisconnected]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_TransitionsToDisconnected]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_TransitionsToDisconnected] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - --- select * from vefn_TransitionsToDisconnected('1') - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION dbo.vefn_TransitionsToDisconnected(@DocVersionList nvarchar(MAX)) -RETURNS @Transitions TABLE -( - [TransitionID] int primary key - ,[FromID] int - ,[ToID] int - ,[RangeID] int - ,[IsRange] int - ,[TranType] int - ,[Config] nvarchar(max) - ,[DTS] datetime - ,[UserID] nvarchar(100) - ,UNIQUE(FromID,TransitionID) - ,UNIQUE(ToID,TransitionID) -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @Transitions - select [TransitionID],[FromID],[ToID],[RangeID],[IsRange],[TranType],[Config],[DTS],[UserID] - from Transitions tt - join vefn_GetVersionItems(@DocVersionList) vi on tt.FromID = vi.ContentID - join vefn_GetDisconnectedItems() di on tt.ToID = di.ItemID - RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_TransitionsToDisconnected] Succeeded' -ELSE PRINT 'TableFunction [vefn_TransitionsToDisconnected] Error on Creation' -GO - -/****** Object: StoredProcedure [getTransitionsToDisconnected] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTransitionsToDisconnected]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTransitionsToDisconnected]; -GO - -/* -exec getTransitionsToDisconnected -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getTransitionsToDisconnected] -( - @DocVersionList nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - SELECT - TT.[TransitionID], - TT.[FromID], - TT.[ToID], - TT.[RangeID], - TT.[IsRange], - TT.[TranType], - TT.[Config], - TT.[DTS], - TT.[UserID], - TT.[LastChanged], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=TT.[TransitionID]) [ZTransitionCount] - from transitions tt - join vefn_TransitionsToDisconnected(@DocVersionList) td on tt.TransitionID = td.TransitionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTransitionsToDisconnected Succeeded' -ELSE PRINT 'Procedure Creation: getTransitionsToDisconnected Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetNonEditableItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetNonEditableItems]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetNonEditableItems] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - --- select * from vefn_GetNonEditableItems() - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION [DBO].[vefn_GetNonEditableItems]() -RETURNS @NonEditItems TABLE -( - ItemID int primary Key, - ContentID int, - UNIQUE (ContentID) -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @NonEditItems - select ii.ItemID,ah.ContentID - from - ( - select cast(Config as xml) xconfig,ContentID from Contents where ContentID in - ( - select p1.ContentID from Parts p1 - join Parts p2 on p1.ContentID = p2.ContentID - where p1.FromType = 2 and p2.FromType = 6 - ) - and Config like '%edit%' - ) ah - cross apply xconfig.nodes('//SubSection') tSubsection(xSubsection) - join Items ii on ah.ContentID = ii.ContentID - where isnull(xSubsection.value('@Edit','varchar(1)'),'N') = 'N' - RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetNonEditableItems] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetNonEditableItems] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_TransitionsToNonEditable]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_TransitionsToNonEditable]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_TransitionsToNonEditable] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - --- select * from vefn_TransitionsToNonEditable('1') - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION dbo.vefn_TransitionsToNonEditable(@DocVersionList nvarchar(MAX)) -RETURNS @Transitions TABLE -( - [TransitionID] int primary key - ,[FromID] int - ,[ToID] int - ,[RangeID] int - ,[IsRange] int - ,[TranType] int - ,[Config] nvarchar(max) - ,[DTS] datetime - ,[UserID] nvarchar(100) - ,UNIQUE(FromID,TransitionID) - ,UNIQUE(ToID,TransitionID) -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @Transitions - select [TransitionID],[FromID],[ToID],[RangeID],[IsRange],[TranType],[Config],[DTS],[UserID] - from Transitions tt - join vefn_GetVersionItems(@DocVersionList) vi on tt.FromID = vi.ContentID - join vefn_GetNonEditableItems() di on tt.ToID in (select ItemID from vefn_StepChildItems(di.ItemID)) - RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_TransitionsToNonEditable] Succeeded' -ELSE PRINT 'TableFunction [vefn_TransitionsToNonEditable] Error on Creation' -GO - -/****** Object: StoredProcedure [getTransitionsToNonEditable] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTransitionsToNonEditable]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTransitionsToNonEditable]; -GO - -/* -exec getTransitionsToNonEditable '8' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getTransitionsToNonEditable] -( - @DocVersionList nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - SELECT - TT.[TransitionID], - TT.[FromID], - TT.[ToID], - TT.[RangeID], - TT.[IsRange], - TT.[TranType], - TT.[Config], - TT.[DTS], - TT.[UserID], - TT.[LastChanged], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=TT.[TransitionID]) [ZTransitionCount] - from transitions tt - join vefn_TransitionsToNonEditable(@DocVersionList) td on tt.TransitionID = td.TransitionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTransitionsToNonEditable Succeeded' -ELSE PRINT 'Procedure Creation: getTransitionsToNonEditable Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_StepChildItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_StepChildItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_StepChildItems]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_StepChildItems](@ItemID int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ItemID], [ContentID]) as ( - Select 0 [Level], [ItemID], [ContentID] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID and (Z.Level > 0 or p.FromType = 6) - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] , I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children select ItemID, ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_StepChildItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_StepChildItems Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getJustStage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [getJustStage]; -GO -/****** Object: StoredProcedure [dbo].[getJustStage] ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create PROCEDURE [dbo].[getJustStage] -( - @StageID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [StageID], - [Name], - [Description], - [IsApproved], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[StageID]=[Stages].[StageID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[StageID]=[Stages].[StageID]) [VersionCount] - FROM [Stages] - WHERE [StageID]=@StageID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getJustStage Succeeded' -ELSE PRINT 'Procedure Creation: getJustStage Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_DeletePDFs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_DeletePDFs]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_DeletePDFs]; -GO - -/* -exec vesp_DeletePDFs -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_DeletePDFs] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE FROM [Pdfs] - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_DeletePDFs Succeeded' -ELSE PRINT 'Procedure Creation: vesp_DeletePDFs Error on Creation' -GO - -/****** Object: StoredProcedure [getROImageByRODbID_FileName] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getROImagesByRODbID_FileName]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getROImagesByRODbID_FileName]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getROImagesByRODbID_FileName] -( - @RODbID int, - @FileName nvarchar(255) -) -WITH EXECUTE AS OWNER -AS - SELECT - [ImageID], - [RODbID], - [FileName], - [Content], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ImageID]=[ROImages].[ImageID]) [FigureCount] - FROM [ROImages] - WHERE [RODbID]=@RODbID AND [FileName]=@FileName Order By [DTS] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getROImagesByRODbID_FileName Succeeded' -ELSE PRINT 'Procedure Creation: getROImagesByRODbID_FileName Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetDisconnectedItemsCount] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetDisconnectedItemsCount]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetDisconnectedItemsCount]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetDisconnectedItemsCount] -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) HowMany FROM vefn_GetDisconnectedItems() - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetDisconnectedItemsCount Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetDisconnectedItemsCount Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetNonEditableItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetNonEditableItems]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE vesp_GetNonEditableItems; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetNonEditableItems] -WITH EXECUTE AS OWNER -AS - SELECT - I.[ItemID], - I.[PreviousID], - I.[ContentID], - I.[DTS], - I.[UserID], - I.[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount] - FROM [Items] I - JOIN vefn_GetNonEditableItems() NE on I.ItemID = NE.ItemID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetNonEditableItems Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetNonEditableItems Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetDatabaseSessions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetDatabaseSessions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE vesp_GetDatabaseSessions; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetDatabaseSessions] -WITH EXECUTE AS OWNER -AS - select t1.SessionID,t1.UserID,t1.MachineName,t1.OwnerTypeName,t1.HowMany,t1.Status, - t2.FolderName,t2.GrandParentName,t2.ParentName,t2.ItemPath,t2.DTSStart from - ( - select ss.SessionID,UserID,MachineName,ISNULL(OwnerType,0) OwnerType,ISNULL(OwnerTypeName,'Nothing') OwnerTypeName,ISNULL(HowMany,0) HowMany, - case when DATEDIFF(SECOND,DTSActivity,GETDATE()) > 60 then 'IN-ACTIVE (' + CAST(DATEDIFF(SECOND,DTSActivity,GETDATE()) as varchar(10)) + ' Seconds)' else 'Active' end Status - from Sessions ss - left join - (select SessionID,OwnerType,case OwnerType when 0 then 'Procedure' when 1 then 'Document' when 2 then 'Working Draft' else 'Database' end OwnerTypeName,count(*) HowMany from Owners group by SessionID,OwnerType) oo on ss.SessionID = oo.SessionID - where ss.DTSEnd is null - ) t1 - left join - ( - select oo.SessionID,oo.OwnerID,oo.DTSStart,oo.OwnerType, - dbo.ve_GetShortPath(oo.OwnerItemID) ItemPath, - vn.FolderName,vn.GrandParentName,vn.ParentName - from Owners oo - join vefn_GetVersionItems('') vi on oo.OwnerItemID = vi.ItemID - join vefn_GetVersionNames() vn on vi.VersionID = vn.VersionID - where oo.OwnerType = 0 - union - select distinct oo.SessionID,oo.OwnerID,oo.DTSStart,oo.OwnerType, - case when isnull(LibTitle,'') = '' then dbo.ve_getshortpathfromcontentid(ee.contentid) else 'Library Document: ' + LibTitle end ItemPath, - vn.FolderName,vn.GrandParentName,vn.ParentName - from Owners oo - join Documents dd on oo.OwnerItemID = dd.DocID - join Entries ee on oo.OwnerItemID = ee.DocID - join vefn_GetVersionItems('') vi on ee.ContentID = vi.ContentID - join vefn_GetVersionNames() vn on vi.VersionID = vn.VersionID - where oo.OwnerType = 1 - union - select oo.SessionID,oo.OwnerID,oo.DTSStart,oo.OwnerType, - dv.Name ItemPath,vn.FolderName,vn.GrandParentName,vn.ParentName - from Owners oo - join DocVersions dv on oo.OwnerItemID = dv.VersionID - join vefn_GetVersionNames() vn on dv.VersionID = vn.VersionID - where oo.OwnerType = 2 - ) t2 on t1.SessionID = t2.SessionID and t1.OwnerType = t2.OwnerType - order by t1.SessionID,t1.OwnerType - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetDatabaseSessions Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetDatabaseSessions Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListContentsAfterLastChanged] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListContentsAfterLastChanged]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE vesp_ListContentsAfterLastChanged; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListContentsAfterLastChanged] -( - @LastChanged timestamp -) -WITH EXECUTE AS OWNER -AS -BEGIN - SELECT - cc.[ContentID], - cc.[Number], - cc.[Text], - cc.[Type], - cc.[FormatID], - cc.[Config], - cc.[DTS], - cc.[UserID], - cc.[LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=cc.[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=cc.[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=cc.[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=cc.[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=cc.[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=cc.[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=cc.[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=cc.[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=cc.[ContentID]) [ZContentCount] - FROM [Contents] cc - WHERE cc.LastChanged > @LastChanged - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListContentsAfterLastChanged Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListContentsAfterLastChanged Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListContentsAfterLastChanged2] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListContentsAfterLastChanged2]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE vesp_ListContentsAfterLastChanged2; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListContentsAfterLastChanged2] -( - @LastChanged bigint, - @UserID nvarchar(100) -) -WITH EXECUTE AS OWNER -AS -BEGIN - SELECT - cc.[ContentID], - CONVERT(bigint,cc.[LastChanged]) LastContentChange - FROM [Contents] cc - WHERE CONVERT(bigint,cc.LastChanged) > @LastChanged --- AND cc.UserID != @UserID - ORDER BY LastChanged - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListContentsAfterLastChanged2 Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListContentsAfterLastChanged2 Error on Creation' -GO - -/****** Object: StoredProcedure[getOwnerBySessionIDandFolderID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwnerBySessionIDandFolderID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE getOwnerBySessionIDandFolderID; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2015 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwnerBySessionIDandFolderID] -( - @SessionID int, - @FolderID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @VersionID int - SELECT @VersionID = VersionID from DocVersions WHERE FolderID = @FolderID - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - [LastChanged] - FROM [Owners] oo - INNER JOIN - ( - -- 0 is procedures - SELECT 0 ObjectType,ItemID ObjectID FROM dbo.vefn_GetVersionItems(@VersionID) - UNION - -- 1 is documents - SELECT 1 ObjectType,ee.DocID ObjectID FROM dbo.vefn_GetVersionItems(@VersionID) vi - INNER JOIN Contents cc ON vi.ContentID = cc.ContentID - INNER JOIN Entries ee ON vi.ContentID = ee.ContentID - UNION - -- 2 is DocVersions - SELECT 2 ObjectType, @VersionID ObjectID - UNION - -- 3 is Folders - SELECT 3 ObjectType, @FolderID ObjectID - ) tt ON oo.OwnerType = tt.ObjectType and oo.OwnerItemID = tt.ObjectID - WHERE [SessionID] = @SessionID - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwnerBySessionIDandFolderID Succeeded' -ELSE PRINT 'Procedure Creation: getOwnerBySessionIDandFolderID Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListItemsAfterLastChanged] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsAfterLastChanged]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE vesp_ListItemsAfterLastChanged; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsAfterLastChanged] -( - @LastChanged bigint, - @UserID nvarchar(100) -) -WITH EXECUTE AS OWNER -AS -BEGIN - SELECT - isnull(dbo.ve_GetParentItem(ii.[ItemID]),0) ParentID,MAX(CONVERT(bigint,ii.[LastChanged])) LastItemChange - FROM [Items] ii - WHERE CONVERT(bigint,ii.LastChanged) > @LastChanged --- AND cc.UserID != @UserID - GROUP BY dbo.ve_GetParentItem(ii.[ItemID]) - ORDER BY MAX(CONVERT(bigint,ii.[LastChanged])) - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsAfterLastChanged Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsAfterLastChanged Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetShortPath] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetShortPath]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetShortPath]; -GO - -/* -select ItemID, CC.Type, dbo.ve_GetPath(ItemID) -from Items II join Contents CC on II.ContentID = CC.ContentID -where ItemID in(111,265,266,267) -*/ --- drop function ve_GetPath -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetShortPath] (@ItemID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN --- declare @STructID int ---set @StructID=11 -declare @Path varchar(max); -with Itemz(ItemCount,ItemID,PreviousID,FromType,CType,Number,Text,PPath, Path) as ( - Select 1,ItemID,PreviousID,0,C.Type/10000,C.Number,C.Text, - Cast(Case when C.Type < 20000 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) else '' end as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) else '1' end as nvarchar(max)) Path - from Items I - join Contents C on I.ContentID = C.ContentID - where ItemID=@ItemID - Union All --- siblings - Select ItemCount+1,I.PreviousID,II.PreviousID,0,C.Type/10000,Z.Number,Z.Text,PPath,cast(ItemCount + 1 as nvarchar(4)) + PPath - from Items I - join Contents C on I.ContentID = C.ContentID - Join Items II on II.ItemID = I.PreviousID - Join Itemz Z on I.ItemID=Z.ItemID - where I.PreviousID != 0 - Union All --- children - select 1,I.ItemID,I.PreviousID,P.FromType,C.Type/10000,C.Number,C.Text, - case C.Type/10000 - when 0 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) - when 1 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) +'`' + cast(ItemCount + 0 as varchar(4)) - else - case P.FromType - when 1 then 'PRC`' + cast(ItemCount + 0 as varchar(4)) - when 2 then '`SEC`' + cast(ItemCount + 0 as varchar(4)) - when 3 then '`Caution`' + cast(ItemCount + 0 as varchar(4)) - when 4 then '`Note`' + cast(ItemCount + 0 as varchar(4)) - when 5 then '`RNO`' - when 7 then '`Table`' - when 8 then '`SupInfo`' - else '`' + cast(ItemCount + 0 as varchar(4)) - end end + PPath PPath, - --'1' + - case C.Type/10000 - when 0 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) - when 1 then '`' + [dbo].[ve_GetShortPart](C.Number,C.Text) +'`' + cast(ItemCount + 0 as varchar(4)) - else - case P.FromType - when 1 then 'PRC`' + cast(ItemCount + 0 as varchar(4)) - when 2 then '`SEC`' + cast(ItemCount + 0 as varchar(4)) - when 3 then '`Caution`' + cast(ItemCount + 0 as varchar(4)) - when 4 then '`Note`' + cast(ItemCount + 0 as varchar(4)) - when 5 then '`RNO' - when 7 then '`Table' - when 8 then '`SupInfo' - else '`' + cast(ItemCount + 0 as varchar(4)) - end end + PPath Path - - from Parts P - join Items I on I.ContentID = P.ContentID - join Contents C on I.ContentID = C.ContentID - join Itemz Z on P.ItemID=Z.ItemID -) -select @Path = path From Itemz where ItemCount=1 and CType=0 -OPTION (MAXRECURSION 10000) -return REPLACE(REPLACE(@Path,'\u8209?','-'),'u9586?','\\') -END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetShortPath Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetShortPath Error on Creation' -GO -/****** Object: StoredProcedure [addROImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addROImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE addROImage; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addROImage] - -( - @RODbID int, - @FileName nvarchar(255), - @Content varbinary(MAX), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newImageID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - IF exists(select * from ROImages where @rodbid = rodbid and @FileName=FileName and @DTS = DTS) - BEGIN - select @newImageID = ImageID from ROImages where @rodbid = rodbid and @FileName=FileName and @DTS = DTS - END - ELSE - BEGIN - INSERT INTO [ROImages] - ( - [RODbID], - [FileName], - [Content], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @RODbID, - @FileName, - @Content, - @Config, - @DTS, - @UserID - ) - SELECT @newImageID= SCOPE_IDENTITY() - END - SELECT @newLastChanged=[LastChanged] - FROM [ROImages] WHERE [ImageID]=@newImageID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -IF (@@Error = 0) PRINT 'Procedure Creation: addROImage Succeeded' -ELSE PRINT 'Procedure Creation: addROImage Error on Creation' -GO -PRINT '20150808 Improved performance for delete procedure' - -/****** Object: UserDefinedFunction [dbo].[vefn_GetEnhancedFolders] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetEnhancedFolders]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetEnhancedFolders]; -GO - -/* -select * from vefn_GetEnhancedFolders(11) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION dbo.[vefn_GetEnhancedFolders](@FolderID as int) -RETURNS @AllValues TABLE -( - FolderID int PRIMARY KEY, - [Type] int, - [Name] varchar(100), - VersionID int -) - -WITH EXECUTE AS OWNER -AS -BEGIN - -INSERT INTO @AllValues -select DISTINCT ddenh.folderid, xxEnhanced.value('@Type', 'int') xxType, xxEnhanced.value('@Name', 'varchar(20)') xxName, - xxEnhanced.value('@VersionID', 'int') xxVersionID from - (select *, cast(config as xml) xconfig from docversions) dv - cross apply xconfig.nodes('//Enhanced') tEnhanced(xEnhanced) - join (select *, cast(config as xml) xconfig from docversions) - denh on xEnhanced.value('@VersionID', 'int') = denh.VersionID - cross apply denh.xconfig.nodes('//Enhanced') ttEnhanced(xxEnhanced) - join (select *, cast(config as xml) xconfig from docversions) - ddenh on xxEnhanced.value('@VersionID', 'int') = ddenh.VersionID - where denh.FolderID = @FolderID or dv.folderid = @FolderID - - RETURN -END -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetEnhancedFolders Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetEnhancedFolders Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_GetEnhancedDocVersions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetEnhancedDocVersions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetEnhancedDocVersions]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select * from vefn_GetEnhancedDocVersions(6) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION dbo.[vefn_GetEnhancedDocVersions](@VersionID as int) -RETURNS @AllValues TABLE -( - VersionID int PRIMARY KEY, - [Type] int, - [Name] varchar(100), - FolderID int -) - -WITH EXECUTE AS OWNER -AS -BEGIN - -INSERT INTO @AllValues -select DISTINCT xxEnhanced.value('@VersionID', 'int') xxVersionID, xxEnhanced.value('@Type', 'int') xxType, - xxEnhanced.value('@Name', 'varchar(20)') xxName, ddenh.folderid from - (select *, cast(config as xml) xconfig from docversions) dv - cross apply xconfig.nodes('//Enhanced') tEnhanced(xEnhanced) - join (select *, cast(config as xml) xconfig from docversions) - denh on xEnhanced.value('@VersionID', 'int') = denh.VersionID - cross apply denh.xconfig.nodes('//Enhanced') ttEnhanced(xxEnhanced) - join (select *, cast(config as xml) xconfig from docversions) - ddenh on xxEnhanced.value('@VersionID', 'int') = ddenh.VersionID - where denh.VersionID = @VersionID or dv.VersionID = @VersionID - - RETURN -END -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetEnhancedDocVersions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetEnhancedDocVersions Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_GetEnhancedProcedures] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetEnhancedProcedures]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION vefn_GetEnhancedProcedures; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION dbo.[vefn_GetEnhancedProcedures](@ItemID int) -RETURNS @VersionItems TABLE -( - VersionID int, - ItemID int primary key, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - with ItemZ(ItemId, EnhID, Level) as - (Select ItemID,xEnhanced.value('@ItemID','int') EnhID, 0 from Items II Join (Select ContentID, cast(config as xml) xconfig From Contents) - CC On CC.ContentID = II.ContentID outer apply xconfig.nodes('//Enhanced') tEnhanced(xEnhanced) Where ItemID = @ItemID - Union ALL - Select II.ItemID,xEnhanced.value('@ItemID','int') EnhID, ZZ.Level+1 from Items II Join ItemZ ZZ on ZZ.EnhID = II.ItemID - Join (Select ContentID, cast(config as xml) xconfig From Contents) CC On CC.ContentID = II.ContentID - outer apply xconfig.nodes('//Enhanced') tEnhanced(xEnhanced) Where zz.Level < 2) - INSERT INTO @VersionItems - Select distinct dbo.vefn_GetVersionIDByItemID(ZZ.ItemID) VersionID, ZZ.ItemID, II.ContentID from ItemZ ZZ Join Items II on II.ItemID = ZZ.ItemID - OPTION (MAXRECURSION 10000) - RETURN -END -GO - --- Display the status -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetEnhancedProcedures Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetEnhancedProcedures Error on Creation' -GO - -PRINT '20160106 Enhanced Documents' - -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionTblItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionTblItems]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetVersionTblItems] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -Select * from vefn_GetVersionTblItems('') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetVersionTblItems](@DocVersionList varchar(MAX)) -RETURNS @VersionItems TABLE -( - VersionID int, - ItemID int, - ContentID int primary key -) -WITH EXECUTE AS OWNER -AS -BEGIN - BEGIN - with Itemz([VersionID], [ItemID], [ContentID]) as - (Select DV.VersionID, [I].[ItemID], [I].[ContentID] - FROM [tblItems] I - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] - Union All - -- Children - select Z.VersionID, I.[ItemID], I.[ContentID] - from Itemz Z - join tblParts P on P.ContentID = Z.ContentID - join tblItems I on I.ItemID = P.ItemID - Union All - -- Siblings - select Z.VersionID, I.[ItemID], I.[ContentID] - from Itemz Z - join tblItems I on I.PreviousID = Z.ItemID - ) - insert into @VersionItems - select VersionID, [ItemID], [ContentID] - from ItemZ I - --Select * From rousages RU Where RU.ContentID in (Select ContentID from ItemZ) - OPTION (MAXRECURSION 10000) - END -RETURN -END - -go -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetVersionTblItems] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetVersionTblItems] Error on Creation' - -GO -/****** Object: StoredProcedure [addROImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_PurgeDisconnectedData]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE vesp_PurgeDisconnectedData; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_PurgeDisconnectedData] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - delete from tblParts where FromType=0 - declare @UsedItems Table - ( itemid int primary key, contentID int ) - insert into @UsedItems - Select ItemID, ContentID from vefn_GetVersiontblItems('') - - select 'Working Drafts' Query, FolderName,Dv.* from DocVersions DV - JOIN VEFN_GetVersionNames() VN ON DV.VersionID = VN.VersionID - - declare @DiscItems Table - ( itemid int primary key, ContentID int) - insert into @DiscItems - Select ItemID, II.ContentID from tblItems II - Join tblContents CC ON CC.ContentID = II.ContentID - where ItemID not in(select ItemID from @UsedItems) - And CC.Type is not null - - delete from [Checks] where RevisionID in (select RevisionID from Revisions where ItemID in (select itemid from @DiscItems)) - delete from [Versions] where RevisionID in (select RevisionID from Revisions where ItemID in (select itemid from @DiscItems)) - delete from [Revisions] where ItemID in (select itemid from @DiscItems) - delete from [AnnotationAudits] where ItemID in (select itemid from @DiscItems) - delete from [ItemAudits] where ItemID in (select itemid from @DiscItems) - delete from [tblParts] where ItemID in (select itemid from @DiscItems) - delete from [DocVersions] where ItemID in (select itemid from @DiscItems) - delete from [PartAudits] where ItemID in (select itemid from @DiscItems) - delete from [tblAnnotations] where ItemID in (select itemid from @DiscItems) - - delete from [Details] where contentID in (select contentid from @DiscItems) - delete from [ZContents] where contentID in (select contentid from @DiscItems) - delete from [tblGrids] where contentID in (select contentid from @DiscItems) - delete from [tblImages] where contentID in (select contentid from @DiscItems) - delete from [ContentAudits] where contentID in (select contentid from @DiscItems) - delete from [tblROUsages] where contentID in (select contentid from @DiscItems) - delete from [EntryAudits] where contentID in (select contentid from @DiscItems) - delete from [tblEntries] where contentID in (select contentid from @DiscItems) - delete from [GridAudits] where contentID in (select contentid from @DiscItems) - delete from [ImageAudits] where contentID in (select contentid from @DiscItems) - delete from [ItemAudits] where contentID in (select contentid from @DiscItems) - delete from [tblParts] where contentID in (select contentid from @DiscItems) - delete from [PartAudits] where contentID in (select contentid from @DiscItems) - delete from [ROUsageAudits] where contentID in (select contentid from @DiscItems) - delete from [ztransitions] where transitionid in(select transitionid from [tblTransitions] where fromid in (select contentid from @DiscItems)) - delete from [ztransitions] where transitionid in(select transitionid from [tblTransitions] where toid in (select itemid from @DiscItems)) - delete from [ztransitions] where transitionid in(select transitionid from [tblTransitions] where rangeid in (select itemid from @DiscItems)) - delete from [tblTransitions] where fromid in (select contentid from @DiscItems) - delete from [tblTransitions] where toid in (select itemid from @DiscItems) - delete from [tblTransitions] where rangeid in (select itemid from @DiscItems) - delete from [tblItems] where PreviousID in (select itemid from @DiscItems) - delete from [tblItems] where ItemID in (select itemid from @DiscItems) - delete from [tblItems] where contentID in (select contentid from @DiscItems) - delete from [tblContents] where contentID in (select contentid from @DiscItems) - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_PurgeDisconnectedData Succeeded' -ELSE PRINT 'Procedure Creation: vesp_PurgeDisconnectedData Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'ClearCBOverrideForProcedure') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE ClearCBOverrideForProcedure; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE PROCEDURE [dbo].ClearCBOverrideForProcedure -( - @ItemID int=null -) -WITH EXECUTE AS OWNER -AS -begin -DECLARE @CBConfigs TABLE -( -[ContentID] int, -xConfig xml -) -insert into @CBConfigs select ContentID, cast(Config as xml) xConfig -from Contents where config like '%CBOverride%' and contentid in (select icontentid from vefn_tblchilditems(@ItemID,@ItemID,0)) - -Update @CBConfigs Set xConfig.modify('delete //@CBOverride') From @CBConfigs -Update @CBConfigs Set xConfig.modify('delete //Step[not(node())and not(./@*)]') From @CBConfigs - -UPDATE CC SET config = cast(xconfig as varchar(max)) -FROM CONTENTS CC -Join @CBConfigs CB on cc.contentid = cb.contentid -where cc.contentid in (select contentid from @CBConfigs) - -SELECT - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM [Contents] - where contentid in (select contentid from @CBConfigs) -end -go - --- Display the status of ClearCBOverrideForProcedure -IF (@@Error = 0) PRINT 'StoredProcedure [ClearCBOverrideForProcedure] Succeeded' -ELSE PRINT 'StoredProcedure [ClearCBOverrideForProcedure] Error on Creation' -go -PRINT '20160126 Improved performance for checkouts' -PRINT '20160226 11:00 SQL Code Version ' - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_PurgeEnhanced]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_PurgeEnhanced]; -GO -/* -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_PurgeEnhanced] - -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - declare @Enh TABLE - ( - ID int, - xConfig xml - ) - insert into @Enh - SELECT VersionID,xConfig FROM (Select cast(config as xml) xconfig,* from DocVersions) t1 - Cross Apply xconfig.nodes('//Enhanced[1]') tEnhanced(xEnhanced) - - Update @Enh Set xConfig.modify('delete //Enhanced') From @Enh - Update DV Set Config = cast(xconfig as varchar(max)) From Docversions DV - Join @Enh EE ON EE.ID = DV.VersionID - - --select * from @Enh - - delete from @enh - - insert into @enh - SELECT ContentID,xConfig FROM (Select cast(config as xml) xconfig,* from Contents) t1 - Cross Apply xconfig.nodes('//Enhanced[1]') tEnhanced(xEnhanced) - - Update @Enh Set xConfig.modify('delete //Enhanced') From @Enh - Update CC Set Config = cast(xconfig as varchar(max)) From Contents CC - Join @Enh EE ON EE.ID = CC.ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_PurgeEnhanced] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_PurgeEnhanced] Error on Creation' -go - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ConvertEnhancedDocVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ConvertEnhancedDocVersions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ConvertEnhancedDocVersions] -( - @svid int, - @enhvid int, - @enhid int, - @enhttl varchar(255), - @enhx int, - @enhtok varchar(1) -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION ---print 'BGDV-1' -update docversions set config = replace(config,'>', - '>') - where VersionID =@svid ---print 'BGDV-2' -update docversions set config = replace(config,'>', - '>') - where VersionID =@enhvid - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_ConvertEnhancedDocVersions] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_ConvertEnhancedDocVersions] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ConvertEnhancedItems]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ConvertEnhancedItems]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ConvertEnhancedItems] -( - @svid int, - @bvid int, - @dvid int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION -declare @EnhItems TABLE -( - ItemID int, - ContentID int, - SrcConfig1 varchar(255), - SrcConfig2 varchar(255), - ProcName varchar(8), - RecID varchar(8), - BGItemID int, - BGContentID int, - BGConfig varchar(255), - DVItemID int, - DVContentID int, - DVConfig varchar(255) -) --- Procedures -Insert into @EnhItems -select VI.ItemID, VI.ContentID - ,case when vibg.itemid is null then '' else '' end - ,case when vidv.itemid is null then '' else '' end - , VI.ProcName,null RecID -, VIBG.ItemID BGItemID, VIBG.ContentID BGContentID, case when vibg.itemid is null then '' else '' end -, VIDV.ItemID DVItemID, VIDV.ContentID DVContentID, case when vidv.itemid is null then '' else '' end -from vefn_GetOldEnhancedProcs(@svid) VI -Left Join vefn_GetOldEnhancedProcs(@bvid) VIBG ON VI.ProcName = VIBG.ProcName -Left Join vefn_GetOldEnhancedProcs(@dvid) VIDV ON VI.ProcName = VIDV.ProcName -WHERE VIBG.ItemID is not null or VIDV.ItemID is not null ---Sections and Steps -Insert into @EnhItems -select VI.ItemID, VI.ContentID - ,case when vibg.itemid is null then '' else '' end - ,case when vidv.itemid is null then '' else '' end - , VI.ProcName,VI.RecID -, VIBG.ItemID BGItemID, VIBG.ContentID BGContentID, case when vibg.itemid is null then '' else '' end -, VIDV.ItemID DVItemID, VIDV.ContentID DVContentID, case when vidv.itemid is null then '' else '' end -from vefn_GetOldEnhancedItems(@svid) VI -Left Join vefn_GetOldEnhancedItems(@bvid) VIBG ON VI.ProcName = VIBG.ProcName AND '0L' + substring(VI.RecID,3,6) = VIBG.RecID -Left Join vefn_GetOldEnhancedItems(@dvid) VIDV ON VI.ProcName = VIDV.ProcName AND '0L' + substring(VI.RecID,3,6) = VIDV.RecID -WHERE VIBG.ItemID is not null or VIDV.ItemID is not null - ---select * from @EnhItems - -Declare @EnhEach Table -( - ContentID int primary key, - Change1 varchar(255), - Change2 varchar(255) -) -insert into @EnhEach -Select EI.ContentID,EI.SrcConfig1,EI.srcConfig2 -from @EnhItems EI -Join Contents CC ON CC.ContentID = EI.ContentID - -insert into @EnhEach -Select EI.bgContentID,EI.BGConfig,null -from @EnhItems EI -Join Contents CC ON CC.ContentID = EI.bgContentID - -insert into @EnhEach -Select EI.dvContentID,EI.DVConfig,null -from @EnhItems EI -Join Contents CC ON CC.ContentID = EI.dvContentID - -Update CC -Set Config = cast(cast(Replace(Replace(Config,'>' + Change1 +'' + isnull(Change2,'') +' 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_ConvertEnhancedItems] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_ConvertEnhancedItems] Error on Creation' -go - - --- ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetEnhancedLinks]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetEnhancedLinks]; -GO - - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetEnhancedLinks]() -RETURNS @Enhanced TABLE -( - svid int, - bvid int, - dvid int -) -WITH EXECUTE AS OWNER -AS -BEGIN -declare @tbl table -( - FolderName varchar(255), - VersionID int, - ItemID int, - ContentID int, - ProcName varchar(10), - LinkType varchar(4), - RecID int, - ShortName varchar(20) -) - - -insert into @tbl -select vn.FolderName,VI.VersionID, VI.ItemID, t1.ContentID, ProcName, case substring(RecIDText,2,1) when '0' then 'None' when 'L' then 'Link' else substring(RecIDText,2,1) end LinkType -, cast(substring(RecIDText,3,6) as int) RecID, ff.ShortName -from (select cc.Contentid - -, xHistory.value('@ProcName','varchar(20)') ProcName, xHistory.value('@RecID','varchar(20)') RecIDText -from (select *, cast(config as xml) xconfig from contents) cc -cross apply xconfig.nodes('//History') tHistory(xHistory)) t1 -Join vefn_getversionItems('') vi on t1.contentID = vi.contentID -JOIN VEFN_GetVersionNames() VN ON VI.VersionID = VN.VersionID -JOIN DocVersions DV ON VI.VersionID = DV.VersionID -Join Folders FF ON FF.FolderID = DV.FolderID - - - -DECLARE @LinkCounts TABLE -( - EnhancedID int, - LinkFolder varchar(255), - LinkShortName varchar(20), - SourceID int, - SourceFolder varchar(255), - SourceShortName varchar(20), - HowMany int, - AllLinks int -) -insert into @LinkCounts -select t3.*,t4.HowMany AllLinks from (select t1.versionID EnhancedID, t1.FolderName LinkFolder, t1.ShortName LinkShortName, t2.VersionID SourceID, t2.FolderName SourceFolder, T2.ShortName SourceShortName, Count(*) HowMany from -(select * from @tbl where LinkType = 'Link') t1 -join (select * from @tbl where LinkType != 'Link') t2 on t1.ProcName = t2.ProcName and T1.RecID = T2.RecID -group by t1.versionID, t1.FolderName, T1.ShortName, t2.versionID, t2.FolderName, t2.ShortName) t3 -Join -(select FolderName LinkFolder, 'All' SourceFolder, count(*) HowMany from @tbl where LinkType = 'Link' -group by FolderName) t4 on t3.LinkFolder = t4.linkfolder -Order By LinkFolder, T3.HowMany Desc - ---print '---3---' ---select * from @LinkCounts -declare @LinkSummary TABLE -( - EnhancedID int, - LinkFolder varchar(255), - LinkShortName varchar(25), - SourceID int, - SourceFolder varchar(255), - SourceShortName varchar(25), - HowMany int, - AllLinks int, - RowNo int -) -begin -WITH TOP3 AS ( - SELECT *, ROW_NUMBER() - over ( - PARTITION BY [EnhancedID] - order by [HowMany] DESC - ) AS RowNo - FROM @LinkCounts -) -insert into @linkSummary -SELECT * FROM TOP3 WHERE RowNo <= 1 -end - -declare @myXML xml -set @myXML=cast(' - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -' as xml) -declare @linktbl TABLE -( -Plant VARCHAR(25), -LinkType VARCHAR(25), -FolderFrom VARCHAR(25), -FolderTo VARCHAR(25) -) -insert into @linktbl -select -xLink.value('@Plant','varchar(25)') Plant -,xLink.value('@Type','varchar(25)') LinkType -,xLink.value('@From','varchar(25)') FolderFrom -,xLink.value('@To','varchar(25)') FolderTo -from @myxml.nodes('//Link') tLink(xLink) - -declare @LnkPaths table -( - Plant VarChar(20), - FolderFrom Varchar(20), - Background Varchar(20), - Deviation Varchar(20) -) -Insert into @LnkPaths -select distinct plant,FolderFrom -, (select min(FolderTo) from @linktbl lt1 - where lt1.plant=lt.plant and lt1.folderfrom = lt.folderfrom - and lt1.linktype='bck.lnk') Background -, (select min(FolderTo) from @linktbl lt1 -where lt1.plant=lt.plant and lt1.folderfrom = lt.folderfrom and lt1.linktype='dvt.lnk') Deviation - from @linktbl lt -where LinkType in('BCK.LNK','DVT.LNK') - -insert into @Enhanced -select isnull(SourceID,0) svid,isnull(BackgroundID,0) bvid,isnull(DeviationID,0) dvid from (select Plant -,T1.SourceID,FolderFrom -,isnull(BackgroundID,LS1.EnhancedID) BackgroundID,BackGround -,isnull(DeviationID, LS2.EnhancedID) DeviationID, Deviation - from (select distinct Plant, -(select Min(VersionID) from DocVersions dv Join Folders ff on dv.folderid = ff.folderid where ShortName = FolderFrom and ff.title like '%' + plant + '%') SourceID, -FolderFrom, -(select Min(VersionID) from DocVersions dv Join Folders ff on dv.folderid = ff.folderid where ShortName = Background and ff.title like '%' + plant + '%') BackgroundID, -Background, -(select Min(VersionID) from DocVersions dv Join Folders ff on dv.folderid = ff.folderid where ShortName = Deviation and ff.title like '%' + plant + '%') DeviationID, -Deviation - from - @LnkPaths where Plant IN(Select Distinct Plant from @LnkPaths LP -Join Folders FF ON FF.Title Like '%' + Plant + '%')) T1 -left Join @LinkSummary LS1 ON T1.SourceID = LS1.SourceID AND LS1.LinkShortName like '%.BCK' -left Join @LinkSummary LS2 ON T1.SourceID = LS2.SourceID AND LS2.LinkShortName like '%.DVT' -Where T1.SourceID is not null) T2 -where BackgroundID is not null or DeviationID is not null -Return -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetEnhancedLinks] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetEnhancedLinks] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetOldEnhancedProcs]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetOldEnhancedProcs]; -GO -/* - --- Byron -USE VEPROMS_BYR -select VI.ItemID, VI.ContentID, VI.ProcName -, VIBG.ItemID BGItemID, VIBG.ContentID BGContentID -, VIDV.ItemID DVItemID, VIDV.ContentID DVContentID -from vefn_GetOldEnhancedProcs(6) VI -Left Join vefn_GetOldEnhancedProcs(8) VIBG ON VI.ProcName = VIBG.ProcName -Left Join vefn_GetOldEnhancedProcs(9) VIDV ON VI.ProcName = VIDV.ProcName -USE MASTER - --- Catawba -USE VEPROMS_CNS -select VI.ItemID, VI.ContentID, VI.ProcName -, VIBG.ItemID BGItemID, VIBG.ContentID BGContentID -, VIDV.ItemID DVItemID, VIDV.ContentID DVContentID -from vefn_GetOldEnhancedProcs(7) VI -Left Join vefn_GetOldEnhancedProcs(12) VIBG ON VI.ProcName = VIBG.ProcName -Left Join vefn_GetOldEnhancedProcs(0) VIDV ON VI.ProcName = VIDV.ProcName -USE MASTER - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetOldEnhancedProcs](@VersionID as int) -RETURNS @Enhanced TABLE -( - ItemID int, - ContentID int, - ProcName varchar(8) -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @Enhanced - select ItemID,ContentID,ProcName From ( - select ItemID,CC.ContentID - ,xHistory.value('@ProcName','varchar(8)') ProcName - ,row_Number() over(partition by xHistory.value('@ProcName','varchar(8)') order by ItemID) RowOrder - from (select ContentID, cast(config as xml) xConfig from Contents where Type = 0 ) CC - Cross Apply xConfig.nodes('//History') tHistory(xHistory) - JOIN VEFN_GETVERSIONITEMS(cast(@VersionID as varchar(12))) VI ON VI.CONTENTID = CC.CONTENTID - --JOIN VEFN_GetVersionNames() VN ON VI.VersionID = VN.VersionID - )T1 Where rowOrder = 1 -Return -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetOldEnhancedProcs] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetOldEnhancedProcs] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetOldEnhancedItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetOldEnhancedItems]; -GO -/* - -select count(*) from vefn_GetOldEnhancedItems(6) -select count(*) from vefn_GetOldEnhancedItems(8) where RecID like '0l%' -select count(*) from vefn_GetOldEnhancedItems(9) where RecID like '0l%' - - --- Byron -USE VEPROMS_BYR -select VI.ItemID, VI.ContentID, VI.ProcName,VI.RecID -, VIBG.ItemID BGItemID, VIBG.ContentID BGContentID -, VIDV.ItemID DVItemID, VIDV.ContentID DVContentID -from vefn_GetOldEnhancedItems(6) VI -Left Join vefn_GetOldEnhancedItems(8) VIBG ON VI.ProcName = VIBG.ProcName AND '0L' + substring(VI.RecID,3,6) = VIBG.RecID -Left Join vefn_GetOldEnhancedItems(9) VIDV ON VI.ProcName = VIDV.ProcName AND '0L' + substring(VI.RecID,3,6) = VIDV.RecID -WHERE VIBG.ItemID is not null or VIDV.ItemID is not null -USE MASTER - --- Catawba -USE VEPROMS_CNS -select VI.ItemID, VI.ContentID, VI.ProcName, VI.RecID -, VIBG.ItemID BGItemID, VIBG.ContentID BGContentID -, VIDV.ItemID DVItemID, VIDV.ContentID DVContentID -from vefn_GetOldEnhancedItems(7) VI -Left Join vefn_GetOldEnhancedItems(12) VIBG ON VI.ProcName = VIBG.ProcName AND '0L' + substring(VI.RecID,3,6) = VIBG.RecID -Left Join vefn_GetOldEnhancedItems(0) VIDV ON VI.ProcName = VIDV.ProcName AND '0L' + substring(VI.RecID,3,6) = VIDV.RecID -WHERE VIBG.ItemID is not null --or VIDV.ItemID is not null -USE MASTER - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetOldEnhancedItems](@VersionID as int) -RETURNS @Enhanced TABLE -( - ItemID int, - ContentID int, - ProcName varchar(8), - RecID varchar(8), - Primary Key (ProcName,RecID) -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @Enhanced - select ItemID, ContentID,ProcName,RecID From ( - select VI.ItemID, CC.ContentID - ,xHistory.value('@ProcName','varchar(8)') ProcName - ,xHistory.value('@RecID','varchar(8)') RecID - ,row_Number() over(partition by xHistory.value('@ProcName','varchar(8)'), xHistory.value('@RecID','varchar(8)') order by VI.ItemID) RowOrder - from (select ContentID, cast(config as xml) xConfig from Contents where Type != 0 ) CC - Cross Apply xConfig.nodes('//History') tHistory(xHistory) - JOIN VEFN_GETVERSIONPROCEDUREITEMS(cast(@VersionID as varchar(12))) VI ON VI.CONTENTID = CC.CONTENTID - --Where ProcID in(select ItemID from vefn_GetOldEnhancedProcs(@VersionID)) - JOIN vefn_GetOldEnhancedProcs(@VersionID) vep on vi.ProcID = VEP.ItemID AND xHistory.value('@ProcName','varchar(8)')= vep.ProcName - --JOIN VEFN_GetVersionNames() VN ON VI.VersionID = VN.VersionID - )T1 Where rowOrder = 1 -Return -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetOldEnhancedItems] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetOldEnhancedItems] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ConvertEnhanced]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ConvertEnhanced]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ConvertEnhanced] -( - @svid int, - @bvid int, - @dvid int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - IF( @svid != 0 AND @bvid != 0) -- Background DocVersions - exec vesp_ConvertEnhancedDocVersions @svid,@bvid,1,'Background',6,'B' - IF( @svid != 0 AND @dvid != 0) -- Deviation DocVersions - exec vesp_ConvertEnhancedDocVersions @svid,@dvid,2,'Deviation',20,'D' - IF( @svid != 0 AND ( @bvid != 0 OR @dvid != 0)) -- Enhanced Items - exec vesp_ConvertEnhancedItems @svid, @bvid, @dvid - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_ConvertEnhanced] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_ConvertEnhanced] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ConvertAllEnhanced]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ConvertAllEnhanced]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ConvertAllEnhanced] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - declare @svid int - declare @bvid int - declare @dvid int - declare @source varchar(255) - declare @background varchar(255) - declare @deviation varchar(255) - Exec vesp_PurgeEnhanced - Print 'Purge Enhanced' - declare enh cursor for select * from vefn_GetEnhancedLinks() - open enh - fetch next from enh into @svid,@bvid,@dvid - while @@fetch_status = 0 - begin - SELECT @SOURCE = FOLDERNAME FROM vefn_GetVersionNames() where VersionID = @svid - SELECT @Background = FOLDERNAME FROM vefn_GetVersionNames() where VersionID = @bvid - SELECT @Deviation = FOLDERNAME FROM vefn_GetVersionNames() where VersionID = @dvid - Print 'Converting ' + @Source + ' => ' + isnull(@Background,'N/A') + ' => ' + isnull(@Deviation, 'N/A') - Exec vesp_ConvertEnhanced @svid,@bvid,@dvid - fetch next from enh into @svid,@bvid,@dvid - end - close enh - deallocate enh - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_ConvertAllEnhanced] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_ConvertAllEnhanced] Error on Creation' -go -PRINT 'Added Enhanced Document Conversion Code' - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetNewEnhancedData]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetNewEnhancedData]; -GO -/* -select * from vefn_GetNewEnhancedData(28825) -*/ -/****** Object: Table Function [vefn_GetNewEnhancedData] ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetNewEnhancedData]( @ItemID int, @EnhType int) -RETURNS @OldEnhancedData TABLE -( - ItemID int, - ContentID int, - EItemID int, - EType int -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @OldEnhancedData -select ii.ItemId,cc.ContentID - , xEnhanced.value('@ItemID','int') EItemID - , xEnhanced.value('@Type','int') EType from (Select *, cast(config as xml) xConfig from contents) CC -Join Items II ON II.ContentID = CC.ContentID -cross Apply xConfig.nodes('//Enhanced[@Type=sql:variable("@EnhType")]') tEnhanced(xEnhanced) -where ItemID = @ItemID -return -END -GO - -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetNewEnhancedData] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetNewEnhancedData] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetOldEnhancedData]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetOldEnhancedData]; -GO -/* -select * from vefn_GetOldEnhancedData(28825) -*/ -/****** Object: Table Function [vefn_GetOldEnhancedData] ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetOldEnhancedData]( @ItemID int) -RETURNS @OldEnhancedData TABLE -( - ItemID int, - ContentID int, - ProcName nvarchar(10), - RecID nvarchar(10) -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @OldEnhancedData -select ii.ItemId,cc.ContentID - , xHistory.value('@ProcName','nvarchar(10)') ProcName - , xHistory.value('@RecID','nvarchar(10)') RecID from (Select *, cast(config as xml) xConfig from contents) CC -Join Items II ON II.ContentID = CC.ContentID -cross Apply xConfig.nodes('//History') tHistory(xHistory) -where ItemID = @ItemID -return -END -GO - -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetOldEnhancedData] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetOldEnhancedData] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetEnhancedItemsAndChildren]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetEnhancedItemsAndChildren]; -GO -/****** Object: Table Function [vefn_GetEnhancedItemsAndChildren] *****/ -/* -select * from vefn_GetEnhancedItemsAndChildren(17013,1) -select * from vefn_GetEnhancedItemsAndChildren(17067,0) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetEnhancedItemsAndChildren](@ProcID int,@EnhType int) -RETURNS @VersionItems TABLE -( - [Level] int, - [FromType] int, - [Ordinal] int, - [ParentID] int, - [ItemID] int primary key, - [PreviousID] int, - [ContentID] int, - [Number] varchar(250), - [Text] NVARCHAR(MAX), - [Type] INT, - [FormatID] int, - [EItemID] int, - [EType] int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]=@ProcID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - --join (select * from Items where ContentID Not in(Select ContentID from entries)) I on I.ItemID = P.ItemID - where p.fromtype in(2,3,4) -- Sections, Cautions, Notes - or (z.FromType = 2 and p.FromType=6) -- High Level Step --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @versionitems -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID], C.[Number],C.[Text],C.[Type] -, C.[FormatID] -, xEnhanced.value('@ItemID','int') EItemID -, xEnhanced.value('@Type','int') EType from ItemZ I - join (select * , cast(config as xml) xConfig from Contents) C on C.ContentID = I.ContentID - -- sql:variable("@EnhType") allows a variable to be used in a xPath query to limit - -- the results to Enhanced Nodes that have type = - outer apply xConfig.nodes('//Enhanced[@Type=sql:variable("@EnhType")]') tEnhanced(xEnhanced) - where I.ContentID not in (select contentid from entries) - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) - RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetEnhancedItemsAndChildren] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetEnhancedItemsAndChildren] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetEnhancedIssues]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetEnhancedIssues]; -GO -/****** Object: Table Function [vefn_GetEnhancedIssues] ******/ -/* -select * from vefn_getEnhancedIssues1(17066) -select * from vefn_getEnhancedIssues1(17067) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION [dbo].[vefn_GetEnhancedIssues]( @EnhancedID int) -RETURNS @EnhancedIssues TABLE -( - SourceID int, - [sNumber] varchar(250), - [sText] NVARCHAR(MAX), - [sType] INT, - [sProcName] NVARCHAR(10), - [sRecID] NVARCHAR(10), - EnhanceID int, - [eNumber] varchar(250), - [eeText] NVARCHAR(MAX), - [eType] INT, - [eProcName] NVARCHAR(10), - [eRecID] NVARCHAR(10), - Status varchar(10) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @SourceID as int - select @SourceID = xEnhanced.value('@ItemID','int') from (select cast(config as xml) xConfig from contents - where contentID in(select ContentID from Items where ItemID = @EnhancedID)) CC - cross apply xConfig.nodes('//Enhanced') tEnhanced(xEnhanced) - declare @Type int - select @Type = xEnhanced.value('@Type','int') from (select cast(config as xml) xConfig from contents - where contentID in(select ContentID from Items where ItemID = @SourceID)) CC - cross apply xConfig.nodes('//Enhanced') tEnhanced(xEnhanced) where xEnhanced.value('@ItemID','int') = @EnhancedID - Insert into @EnhancedIssues - select vcs.ItemID SourceID, vcs.[Number] sNumber, vcs.[Text] sText, vcs.[Type] sType,sod.ProcName sProcName,sod.RecID sRecID - , vce.ItemID EnhancedID, vce.[Number] eNumber, vce.[Text] eText, vce.[Type] eType,eod.ProcName sProcName ,eod.RecID eRecID - , case - when ISNULL(eod.RecID,'00') like '0L%' and vcs.itemid is null then 'Delete' - when vcs.itemid is null then 'Unlinked' - when vce.itemid is null then 'Insert' - when ISNULL(vcs.text,'') != isnull(vce.Text,'') then 'Different' - else 'Same' end Status - from vefn_GetEnhancedItemsAndChildren(@SourceID,@Type) vcs - full Join vefn_GetEnhancedItemsAndChildren(@EnhancedID,0) vce on vcs.EItemID = vce.ItemID - outer apply vefn_GetOldEnhancedData(vcs.ItemID) sod - outer apply vefn_GetOldEnhancedData(vce.ItemID) eod - RETURN -END -GO - -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetEnhancedIssues] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetEnhancedIssues] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetEnhancedIssueCount]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetEnhancedIssueCount]; -GO -/****** Object: Table Function [vefn_GetEnhancedIssueCount] ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetEnhancedIssueCount]( @EnhancedID int) -RETURNS @EnhancedIssueCount TABLE -( - Deleted int, - Inserted int, - Changed int, - Same int, - Unlinked int -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @EnhancedIssueCount - select sum(case Status when 'Delete' then 1 else 0 end) Deleted - , sum(case Status when 'Insert' then 1 else 0 end) Inserted - , sum(case Status when 'Different' then 1 else 0 end) Changed - , sum(case Status when 'Same' then 1 else 0 end) Same - , sum(case Status when 'Unlinked' then 1 else 0 end) Unlinked - from vefn_GetEnhancedIssues(@EnhancedID) - RETURN -END -GO - -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetEnhancedIssueCount] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetEnhancedIssueCount] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetEnhancedDocuments]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetEnhancedDocuments]; -GO -/****** Object: Table Function [vefn_GetEnhancedDocuments] ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - - -CREATE FUNCTION [dbo].[vefn_GetEnhancedDocuments]() -RETURNS @EnhancedDocuments TABLE -( - VersionID int, - FolderName varchar(250), - ItemID int, - ProcNum varchar(250), - ProcName varchar(1000), - EnhType int, - EnhItemID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -insert into @EnhancedDocuments -select VN.VersionID,VN.FolderName, VI.ItemID -, replace(cc.Number,'\u8209?','-') ProcNum, replace(cc.Text,'\u8209?','-') ProcName ---, replace(replace(cc.Number,'\u8209?','-'),'\u9586?','\') ProcNum, replace(replace(cc.Text,'\u8209?','-'),'\u9586?','\') ProcName -, xEnhanced.value('@Type','int') EnhType, xenhanced.value('@ItemID','int') EnhItemID ---, xEnhanced.query('.') qEnhanced -from (select *, cast(config as xml) xconfig from Contents Where config like '%Enhanced%' and Type =0) CC -JOIN VEFN_GetVersionItems('') VI ON VI.ContentID = CC.ContentID -JOIN VEFN_GetVersionNames() VN ON VI.VersionID = VN.VersionID -cross apply xconfig.nodes('//Enhanced') tEnhanced(xEnhanced) -where xEnhanced.value('@Type','int') > 0 -return -END -GO - -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetEnhancedDocuments] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetEnhancedDocuments] Error on Creation' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListUnlinkedItems]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListUnlinkedItems]; -GO -/* Sample -vesp_ListUnlinkedItems 28825,1 -vesp_ListUnlinkedItems 28827,1 -vesp_ListUnlinkedItems 29245,1 -vesp_ListUnlinkedItems 12217,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListUnlinkedItems] -( - @ItemID int, - @EnhType int -) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @EItemID int - set @EItemID = (select top 1 VIS.EItemID from vefn_AllSiblingItems(@ItemID)--Find All Siblings - outer apply vefn_GetNewEnhancedData(ItemID,@EnhType) VIS -- That are Linked - where EitemID is not null) - - if @EItemID is null - BEGIN - select @EItemID = epp.ItemID - from (select * from Parts where ItemID in(select itemID from vefn_AllSiblingItems(@ItemID)))SPP -- FindParent - JOIN ITEMS SII ON sPP.ContentID = sII.ContentID -- Get Parent Content ID - outer apply vefn_GetNewEnhancedData(SII.ItemID,@EnhType) VIS -- Get Enhanced ID for Parent - JOIN ITEMS EII ON VIS.EItemID = EII.ItemID -- Get Enhanced Parent Content ID - JOIN PARTS EPP ON EPP.ContentID = EII.ContentID and SPP.FromType = epp.FromType -- Get first Child - END - if @EItemID is null - BEGIN - select @EItemID = DV2.ItemID from (select *,cast(config as xml) xconfig from DocVersions - where ItemID in(select itemID from vefn_AllSiblingItems(@ItemID))) SDV -- Source DocVersion - cross apply (select * from vefn_GetEnhancedDocVersions(SDV.VersionID) where @EnhType = Type) EDV -- Enhanced DocVersion - Join DocVersions DV2 ON DV2.VersionID = EDV.VersionID -- First Procedure - END - Select ItemID,PreviousID,II.ContentID,II.[DTS],II.[UserID],II.[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[II].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[II].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[II].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[II].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[II].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[II].[ItemID]) [Transition_ToIDCount] - from Items II - Left Join Entries EE ON II.ContentID = EE.ContentID - where ItemID In (select SIB.ItemID from vefn_AllSiblingItems(@EItemID) SIB - outer apply vefn_GetNewEnhancedData(ItemID,0) VIE - Where VIE.EItemID is null) - and EE.ContentID is null -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_ListUnlinkedItems] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_ListUnlinkedItems] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsToRefresh]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsToRefresh]; -GO -/* Sample -vesp_ListItemsToRefresh 17078 -vesp_ListItemsToRefresh 17066 -vesp_ListItemsToRefresh 17083 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsToRefresh] -( - @ProcID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - Select ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[II].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[II].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[II].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[II].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[II].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[II].[ItemID]) [Transition_ToIDCount] - from Items II where ItemID In (select EnhanceID from vefn_GetEnhancedIssues(@ProcID) - where Status ='Different') -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_ListItemsToRefresh] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_ListItemsToRefresh] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_PurgeEnhancedItemsAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_PurgeEnhancedItemsAndChildren]; -GO -/* -vesp_PurgeEnhancedItemsAndChildren 43092 -- caution -vesp_PurgeEnhancedItemsAndChildren 43090 -- step/caution -vesp_PurgeEnhancedItemsAndChildren 43089 -- section -vesp_PurgeEnhancedItemsAndChildren 17067 -- procedure -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_PurgeEnhancedItemsAndChildren](@EnhanceID int) - -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - declare @SourceID int - select @SourceID=EItemID from VEFN_GetNewEnhancedData(@EnhanceID,0) - DECLARE @EnhType int - select @EnhType = xEnhanced.value('@Type','int') - from (select *, cast(config as xml) xConfig from Contents where ContentID in (Select ContentID from ITEMS where ItemID = @SourceID)) CC - cross apply xconfig.nodes('//Enhanced[@ItemID=sql:variable("@EnhanceID")]') tEnhanced(xEnhanced) - declare @Enh1 TABLE - ( - ID int, - xConfig xml - ) - insert into @Enh1 - select CC.ContentID, CC.xConfig from (select *, cast(config as xml) xConfig from Contents) CC - JOIN vefn_ChildItems(@SourceID) VCI ON VCI.ContentID = CC.ContentID - cross apply VEFN_GetNewEnhancedData(VCI.itemid,@EnhType) VEN - - Update @Enh1 Set xConfig.modify('delete //Enhanced[@Type=sql:variable("@EnhType")]') From @Enh1 - - - declare @Enh2 TABLE - ( - ID int, - xConfig xml - ) - insert into @Enh2 - select CC.ContentID, CC.xConfig from (select *, cast(config as xml) xConfig from Contents) CC - JOIN vefn_ChildItems(@EnhanceID) VCI ON VCI.ContentID = CC.ContentID - cross apply VEFN_GetNewEnhancedData(VCI.itemid,0) VEN - set @EnhType=0 - Update @Enh2 Set xConfig.modify('delete //Enhanced[@Type=sql:variable("@EnhType")]') From @Enh2 - - Update CC Set Config = cast(xconfig as varchar(max)) From Contents CC - Join @Enh1 EE ON EE.ID = CC.ContentID - Update CC Set Config = cast(xconfig as varchar(max)) From Contents CC - Join @Enh2 EE ON EE.ID = CC.ContentID - - SELECT [ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM [Contents] where ContentID in (Select ID From @Enh1 UNION Select ID From @Enh2) - - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_PurgeEnhancedItemsAndChildren] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_PurgeEnhancedItemsAndChildren] Error on Creation' -go - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetNonEnhancedDocVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetNonEnhancedDocVersions]; -GO -CREATE PROCEDURE [dbo].[vesp_GetNonEnhancedDocVersions] - -WITH EXECUTE AS OWNER -AS -BEGIN -SELECT - [VersionID], - [FolderID], - [VersionType], - [Name], - [Title], - [ItemID], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Associations] WHERE [Associations].[VersionID]=dv.[VersionID]) [AssociationCount] - FROM (select *, cast(config as xml) xconfig from [DocVersions] ) dv - outer apply xconfig.nodes('//Enhanced') tEnhanced(xEnhanced) - Where xEnhanced is null -return -END -GO - -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_GetNonEnhancedDocVersions] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_GetNonEnhancedDocVersions] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_PurgeEnhancedDocVersionsAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_PurgeEnhancedDocVersionsAndChildren]; -GO -/* -vesp_PurgeEnhancedDocVersionsAndChildren 8 -- Background -vesp_PurgeEnhancedDocVersionsAndChildren 9 -- Deviation -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_PurgeEnhancedDocVersionsAndChildren](@EnhanceID int) -- @EnhanceID -- Enhanced VersionID -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - declare @SourceID int -- Source VersionID - select @SourceID = xEnhanced.value('@VersionID','int') from (select *, cast(config as xml) xconfig from DocVersions) DV - cross apply xconfig.nodes('//Enhanced') tEnhanced(xEnhanced) - where VersionID = @EnhanceID - DECLARE @EnhType int - select @EnhType = xEnhanced.value('@Type','int') - from (select *, cast(config as xml) xConfig from DocVersions where VersionID = @SourceID) DV - cross apply xconfig.nodes('//Enhanced[@VersionID=sql:variable("@EnhanceID")]') tEnhanced(xEnhanced) - -- Fix DocVersion Records - declare @Enh TABLE - ( - ID int, - xConfig xml - ) - insert into @Enh - select DV.VersionID,DV.xConfig - from (select *, cast(config as xml) xConfig from DocVersions where VersionID in(@SourceID,@EnhanceID)) DV - Update @Enh Set xConfig.modify('delete //Enhanced[@Type=sql:variable("@EnhType")]') From @Enh - Update @Enh Set xConfig.modify('delete //Enhanced[@Type="0"]') From @Enh - declare @Enh1 TABLE - ( - ID int, - xConfig xml - ) - insert into @Enh1 -- Links to Enhanced from Source - select CC.ContentID, xConfig from (select *, cast(config as xml) xConfig from Contents) CC - JOIN VEFN_GetVersionItems(cast(@SourceID as varchar(25))) VI ON VI.ContentID = CC.ContentID - cross apply VEFN_GetNewEnhancedData(VI.itemid,@EnhType) VEN - Update @Enh1 Set xConfig.modify('delete //Enhanced[@Type=sql:variable("@EnhType")]') From @Enh1 - - declare @Enh2 TABLE - ( - ID int, - xConfig xml - ) - insert into @Enh2 -- Links to Enhanced from Source - select CC.ContentID, xConfig from (select *, cast(config as xml) xConfig from Contents) CC - JOIN VEFN_GetVersionItems(cast(@EnhanceID as varchar(25))) VI ON VI.ContentID = CC.ContentID - cross apply VEFN_GetNewEnhancedData(VI.itemid,0) VEN - set @EnhType=0 - Update @Enh2 Set xConfig.modify('delete //Enhanced[@Type=sql:variable("@EnhType")]') From @Enh2 - - Update DV Set Config = cast(xConfig as varchar(max)) From DocVersions DV -- Remove Links from DocVersions - Join @Enh EE ON EE.ID = DV.VersionID - Update CC Set Config = cast(xconfig as varchar(max)) From Contents CC -- Remove Links from Source - Join @Enh1 EE ON EE.ID = CC.ContentID - Update CC Set Config = cast(xconfig as varchar(max)) From Contents CC -- Remove Links from Enhanced - Join @Enh2 EE ON EE.ID = CC.ContentID - - SELECT [ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM [Contents] where ContentID in (Select ID From @Enh1 UNION Select ID From @Enh2) - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_PurgeEnhancedDocVersionsAndChildren] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_PurgeEnhancedDocVersionsAndChildren] Error on Creation' -go - --- AddToPromsFixes_Convert16to32 -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetOldEnhancedProcItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetOldEnhancedProcItems]; -GO -/* - -select * from vefn_GetOldEnhancedProcItems(17012) -select * from vefn_GetOldEnhancedProcItems(17066) - -select * from vefn_GetOldEnhancedProcItems(17012) VE -join vefn_GetOldEnhancedProcItems(17066) VS on ve.Procname = vs.ProcName and substring(VE.RecID,3,8) = substring(VS.RecID,3,8) - -select * from vefn_GetOldEnhancedProcItems(17014) -select * from vefn_GetOldEnhancedProcItems(17015) -select * from vefn_GetOldEnhancedProcItems(17029) -select * from vefn_GetOldEnhancedProcItems(17033) -select * from vefn_GetOldEnhancedProcItems(17045) -select * from vefn_GetOldEnhancedProcItems(99043) - - - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetOldEnhancedProcItems](@ItemID as int) -RETURNS @Enhanced TABLE -( - ItemID int, - ContentID int, - ProcName varchar(255), - RecID varchar(10) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @ProcNum varchar(255) - select @ProcNum = replace(Number,'\u8209?','-') from contents CC - --select @ProcNum = replace(replace(Number,'\u8209?','-'),'\u9586?','\') from contents CC - join Items II on II.ContentID = CC.ContentID - Where ItemID = @ItemID - Begin - with Itemz([FromType], [Level], [ItemID], [ContentID]) as ( - Select 1 [FromType], 0 [Level], [ItemID], [ContentID] - FROM [Items] - where [ItemID]=@ItemID - Union All -- Children - select P.FromType, [Level] + 1, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - where Z.FromType <= 2 - or P.FromType in (3,4) - Union All -- Siblings - select Z.FromType, [Level] , I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 - ) - Insert into @Enhanced - select ItemID,ContentID,ProcName,RecID from ( select II.ItemID,II.ContentID - , isnull(xHistory.value('@ProcName','varchar(255)'),@ProcNum) ProcName - , xHistory.value('@RecID','varchar(255)') RecID - , Row_Number() over (partition by isnull(xHistory.value('@ProcName','varchar(255)'),@ProcNum) - , xHistory.value('@RecID','varchar(255)') order by ItemID) RowOrder - from Itemz II - Join (select *, Cast(config as xml) xConfig from Contents) CC ON CC.ContentID = II.ContentID - Cross Apply xConfig.nodes('//History') tHistory(xHistory) - ) T1 - where RowOrder = 1 - OPTION (MAXRECURSION 10000) - END - RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetOldEnhancedProcItems] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetOldEnhancedProcItems] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_Get16to32EnhancedProcItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_Get16to32EnhancedProcItems]; -GO -/* - -select * from vefn_Get16to32EnhancedProcItems(17012,17066,1) - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_Get16to32EnhancedProcItems](@SourceID int, @EnhanceID int, @EnhType int) -RETURNS @EnhItems TABLE -( - SrcItemID int, - SrcContentID int, - SrcConfig varchar(255), - ProcName varchar(255), - RecID varchar(8), - EnhItemID int, - EnhContentID int, - EnhConfig varchar(255), - EnhProcName varchar(255), - EnhRecID varchar(8) -) -BEGIN -Insert into @EnhItems-- Procedures -select @SourceID SrcItemID, (select ContentID from Items Where ItemID = @SourceID) SrcContentID - ,'' SrcConfig - ,isnull(VSO.ProcName,replace(CCS.Number,'\u8209?','-')) SrcProcName, null SrcRecID - --,isnull(VSO.ProcName,replace(replace(CCS.Number,'\u8209?','-'),'\u9586?','\')) SrcProcName, null SrcRecID - ,@EnhanceID EnhItemID, (select ContentID from Items Where ItemID = @EnhanceID) EnhContentID - ,'' EnhConfig - ,isnull(VEO.ProcName ,replace(CCE.Number,'\u8209?','-')) EnhProcNam, null EnhRecID - --,isnull(VEO.ProcName ,replace(replace(CCE.Number,'\u8209?','-'),'\u9586?','\')) EnhProcNam, null EnhRecID -From vefn_GetOldEnhancedData(@SourceID) VSO -cross apply vefn_GetOldEnhancedData(@EnhanceID) VEO -JOIN Contents CCS ON VSO.ContentID = CCs.ContentID -JOIN Contents CCE ON VEO.ContentID = CCE.ContentID - -Insert into @EnhItems--Sections and Steps -select VS.ItemID, VS.ContentID - ,'' SrcConfig - ,VS.ProcName SrcProcName, VS.RecID RecID - ,VE.ItemID EnhItemID, VE.ContentID EnhContentID - ,'' EnhConfig - ,VE.ProcName EnhProcName, VE.RecID EnhRecID - from vefn_GetOldEnhancedProcItems(@SourceID) VS -join vefn_GetOldEnhancedProcItems(@EnhanceID) VE on ve.Procname = vs.ProcName and substring(VE.RecID,2,8) = 'L' + substring(VS.RecID,3,8) ---select * from @EnhItems -RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_Get16to32EnhancedProcItem] Succeeded' -ELSE PRINT 'TableFunction [vefn_Get16to32EnhancedProcItem] Error on Creation' -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_Get16BitEnhancedContents]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_Get16BitEnhancedContents]; -GO -/* - -vesp_Get16BitEnhancedContents 17012,17066,1 - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_Get16BitEnhancedContents](@SourceID int, @EnhanceID int, @EnhType int) -- @EnhanceID -- Enhanced VersionID -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @EnhItems TABLE - ( - SrcItemID int, - SrcContentID int, - SrcConfig varchar(255), - ProcName varchar(255), - RecID varchar(8), - EnhItemID int, - EnhContentID int, - EnhConfig varchar(255), - EnhProcName varchar(255), - EnhRecID varchar(8) - ) - Insert into @EnhItems - select * from vefn_Get16to32EnhancedProcItems(@SourceID,@EnhanceID,@EnhType) - - SELECT [ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM [Contents] where ContentID in (Select SrcContentID from @EnhItems union Select EnhContentID from @EnhItems) - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_Get16BitEnhancedContents] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_Get16BitEnhancedContents] Error on Creation' -go - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_Convert16to32EnhancedContents]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_Convert16to32EnhancedContents]; -GO -/* - -vesp_Convert16to32EnhancedContents 17012,17066,1 - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_Convert16to32EnhancedContents](@SourceID int, @EnhanceID int, @EnhType int) -- @EnhanceID -- Enhanced VersionID -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @EnhItems TABLE - ( - SrcItemID int, - SrcContentID int, - SrcConfig varchar(255), - ProcName varchar(255), - RecID varchar(8), - EnhItemID int, - EnhContentID int, - EnhConfig varchar(255), - EnhProcName varchar(255), - EnhRecID varchar(8) - ) - Insert into @EnhItems - select * from vefn_Get16to32EnhancedProcItems(@SourceID,@EnhanceID,@EnhType) - - Update CC - Set Config = cast(cast(Replace(Config,'>' + SrcConfig +'' + EnhConfig +' 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_Convert16to32EnhancedContents] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_Convert16to32EnhancedContents] Error on Creation' -go - -PRINT 'Enhanced Document Synchronization code.' - -/****** Object: StoredProcedure [vesp_GetUnusedRoFstsCount] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetUnusedRoFstsCount]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetUnusedRoFstsCount]; -GO - -/* -exec vesp_GetUnusedRoFstsCount -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetUnusedRoFstsCount] -WITH EXECUTE AS OWNER -AS - Select COUNT(*) HowMany From ROFSTS where ROFstID not in(Select ROFSTID from Associations) - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetUnusedRoFstsCount Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetUnusedRoFstsCount Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetUnusedRoFstsCount] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetUnusedFiguresCount]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetUnusedFiguresCount]; -GO - -/* -exec vesp_GetUnusedFiguresCount -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetUnusedFiguresCount] -WITH EXECUTE AS OWNER -AS - Select COUNT(*) HowMany from Figures where ROFstID not in(Select ROFSTID from Associations) - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetUnusedFiguresCount Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetUnusedFiguresCount Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_RemoveUnusedRoFstsAndFigures]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_RemoveUnusedRoFstsAndFigures]; -GO -/* -vesp_RemoveUnusedRoFstsAndFigures -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_RemoveUnusedRoFstsAndFigures] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - Delete From Figures where ROFstID not in(Select ROFSTID from Associations) - Delete From ROFSTS where ROFstID not in(Select ROFSTID from Associations) - IF (@@TRANCOUNT > 0) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_RemoveUnusedRoFstsAndFigures] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_RemoveUnusedRoFstsAndFigures] Error on Creation' -go - - -/****** Object: StoredProcedure [vesp_GetUnusedROAssociationsCount] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetUnusedROAssociationsCount]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetUnusedROAssociationsCount]; -GO - -/* -exec vesp_GetUnusedROAssociationsCount -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetUnusedROAssociationsCount] -WITH EXECUTE AS OWNER -AS - --SELECT COUNT(*) HowMany FROM vefn_GetDisconnectedItems() -begin - with cte as ( - Select *, Row_Number() over (partition by VersionID order by associationID ) MyRank from Associations - ) - select count(*) HowMany from CTE where MyRank > 1 -end -RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetUnusedROAssociationsCount Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetUnusedROAssociationsCount Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_CleanUpROAssociations] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_CleanUpROAssociations]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_CleanUpROAssociations]; -GO -/* -vesp_CleanUpROAssociations -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2016 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_CleanUpROAssociations] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - BEGIN - with cte as ( - Select *, Row_Number() over (partition by VersionID order by associationID ) MyRank from Associations - ) - delete CTE where MyRank > 1 - END -IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_CleanUpROAssociations] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_CleanUpROAssociations] Error on Creation' -go - -/****** Object: StoredProcedure [addPdf] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addPdf]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addPdf]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addPdf] - -( - @DocID int, - @DebugStatus int, - @TopRow int, - @PageLength int, - @LeftMargin int, - @PageWidth int, - @PageCount float, - @DocPdf varbinary(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - IF not exists(select * FROM [Pdfs] WHERE [DocID]=@DocID AND [DebugStatus]=@DebugStatus AND [TopRow]=@TopRow AND [PageLength]=@PageLength AND [LeftMargin]=@LeftMargin AND [PageWidth]=@PageWidth) - BEGIN - INSERT INTO [Pdfs] - ( - [DocID], - [DebugStatus], - [TopRow], - [PageLength], - [LeftMargin], - [PageWidth], - [PageCount], - [DocPdf], - [DTS], - [UserID] - ) - VALUES - ( - @DocID, - @DebugStatus, - @TopRow, - @PageLength, - @LeftMargin, - @PageWidth, - @PageCount, - @DocPdf, - @DTS, - @UserID - ) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Pdfs] WHERE [DocID]=@DocID AND [DebugStatus]=@DebugStatus AND [TopRow]=@TopRow AND [PageLength]=@PageLength AND [LeftMargin]=@LeftMargin AND [PageWidth]=@PageWidth - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addPdf Succeeded' -ELSE PRINT 'Procedure Creation: addPdf Error on Creation' -GO -/****** Object: Index [IX_itemsLastChanged] Script Date: 3/21/2017 11:24:00 AM ******/ -IF EXISTS (SELECT * FROM dbo.sysIndexes WHERE name like 'IX_ItemsLastChanged') - DROP INDEX [IX_ItemsLastChanged] ON [dbo].[tblItems]; -GO -CREATE NONCLUSTERED INDEX [IX_ItemsLastChanged] ON [dbo].[tblItems] -( - [DeleteStatus] ASC, - [LastChanged] DESC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO -PRINT 'Added IX_ItemsLastChanged Index. Speeds up session queries' -GO - -/****** Object: StoredProcedure [getJustROImage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getJustROImage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getJustROImage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE PROCEDURE [dbo].[getJustROImage] - -( - @ImageID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ImageID], - [RODbID], - [FileName], - [Content], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Figures] WHERE [Figures].[ImageID]=[ROImages].[ImageID]) [FigureCount] - FROM [ROImages] - WHERE [ImageID]=@ImageID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getJustROImage Succeeded' -ELSE PRINT 'Procedure Creation: getJustROImage Error on Creation' -GO -/****** Object: StoredProcedure [deleteAllDocVersionPdfs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteAllDocVersionPdfs]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteAllDocVersionPdfs]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteAllDocVersionPdfs] - -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Pdfs] - WHERE [DocID] IN(select EE.DocID from vefn_GetVersionItems(cast(@VersionID as varchar(20))) VI - Join Entries EE ON EE.ContentID= VI.ContentID) - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteAllDocVersionPdfs Succeeded' -ELSE PRINT 'Procedure Creation: deleteAllDocVersionPdfs Error on Creation' -GO -/****** Object: StoredProcedure [addFiguresByROFstIDandImageIDs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addFiguresByROFstIDandImageIDs]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addFiguresByROFstIDandImageIDs]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addFiguresByROFstIDandImageIDs] -( - @ROFstID int, - @ImageIDs varchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Figures] - ( [ROFstID] - ,[ImageID] - ,[Config] - ,[DTS] - ,[UserID] - ) - select distinct FF.ROFstID, II.ID ImageID, '' Config, FF.DTS, FF.UserID from ROFsts FF - , vefn_SplitInt(@ImageIDs,',') II - where ROFstID=@ROFstID and II.ID not in (select ImageID from Figures where ROFstID = @ROFstID) - - SELECT [FigureID] - ,[ROFstID] - ,[ImageID] - ,[Config] - ,[DTS] - ,[UserID] - ,[LastChanged] - FROM [Figures] - WHERE [ROFstID]=@ROFstID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addFiguresByROFstIDandImageIDs Succeeded' -ELSE PRINT 'Procedure Creation: addFiguresByROFstIDandImageIDs Error on Creation' -GO - - -/****** Object: StoredProcedure [vesp_FixHyphens] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_FixHyphens]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_FixHyphens]; -GO - -/* -exec vesp_DeletePDFs -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_FixHyphens] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - Update Contents set Text = Replace(Replace(Replace(Replace(Replace(Replace(Replace(Text,'\emdash','\u8209?'),'\endash','\u8209?'),'\u8213?','\u8209?'),'\u8212?','\u8209?'),'\u8211?','\u8209?'),'\u8210?','\u8209?'),'\u8208?','\u8209?') - where Text Like '%\u8208?%' or Text Like '%\u8210?%' or Text Like '%\u8211?%' or Text Like '%\u8212?%' or Text Like '%\u8213?%' or Text Like '%\endash%' or Text Like '%\emdash%' - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_FixHyphens Succeeded' -ELSE PRINT 'Procedure Creation: vesp_FixHyphens Error on Creation' -GO - -/****** Object: StoredProcedure [getUsers] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getUsers]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getUsers]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getUsers] - -WITH EXECUTE AS OWNER -AS - SELECT - [UID], - [UserID], - [FirstName], - [MiddleName], - [LastName], - [Suffix], - [CourtesyTitle], - [PhoneNumber], - [CFGName], - [UserLogin], - [UserName], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Memberships] WHERE [Memberships].[UID]=[Users].[UID]) [MembershipCount] - FROM [Users] ORDER BY UserID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getUsers Succeeded' -ELSE PRINT 'Procedure Creation: getUsers Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetZeroFromType]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetZeroFromType]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetZeroFromType] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -Select * from vefn_GetZeroFromType() -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetZeroFromType]() -RETURNS @DiscItems TABLE -( - ItemID int primary Key, - ContentID int, - UNIQUE (ContentID) -) -WITH EXECUTE AS OWNER -AS -BEGIN -with ItemZ (BaseID, ItemID, ContentID) as -(Select PP.ContentID BaseID, II.ItemID, II.ContentID from Items II -Join Parts PP ON PP.ItemID = II.ItemID -where FromType = 0 -Union All - -- Children - select z.BaseID, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - Union All - -- Siblings - select z.BaseID, I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - ) - --select *, dbo.ve_GetShortPath(ItemID) Location from ItemZ - insert into @DiscItems - Select ItemID, ContentID from ItemZ - RETURN -END - -go -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetZeroFromType] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetZeroFromType] Error on Creation' - -GO - --- B2017-227 Added code to support Export/Import of Enhanced Documents - - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/****** Object: Trigger [tr_tblContents_Update] ******/ -ALTER trigger [dbo].[tr_tblContents_Update] on [dbo].[tblContents] for update as - begin - if exists (select * from inserted) - begin - if update(Number) or update(Text) or update(Type) or update(FormatID) or update(DeleteStatus) - begin - insert into ContentAudits(ContentID,Number,Text,Type,FormatID,Config,DTS,UserID,DeleteStatus,ActionDTS) - select dd.ContentID,dd.Number,dd.Text,dd.Type,dd.FormatID,dd.Config,dd.DTS,dd.UserID,dd.DeleteStatus,dd.ActionDTS - from deleted dd - inner join inserted ii on dd.ContentID = ii.ContentID - where dd.Text not like '%' --- Insert Export Node into the Source and Enhanced DocVersion records -Update DV set Config = Replace(Cast(xConfig as nvarchar(max)),'',@ExportNode + '') -from DocVersions DV -Join @DV DV2 on DV2.VersionID = DV.VersionID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_BuildDocVersionExport] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_BuildDocVersionExport] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'vesp_BuildContentsExport') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_BuildContentsExport]; -GO -/* -select Count(*) AuditsBefore from ContentAudits -select top 5 CC.ContentID, xExport.query('.') qExport from (select *, Cast(config as xml) xconfig from Contents) CC -cross apply xconfig.nodes('//Export') tExport(xExport) -EXEC [vesp_BuildContentsExport] 13 -select Count(*) AuditsAfter from ContentAudits -select top 5 CC.ContentID, xExport.query('.') qExport from (select *, Cast(config as xml) xconfig from Contents) CC -cross apply xconfig.nodes('//Export') tExport(xExport) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - --- Add Unique IDs for Each Enhanced Link in the Contents records - -CREATE PROCEDURE [dbo].[vesp_BuildContentsExport](@SourceID int) - -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - -- Update the DocVersion Records as the Content records are being saved with the Export node - Exec vesp_BuildDocVersionExport @SourceID - -- Create a list of Source and Enhanced VersionIDs - declare @VersionList varchar(max) -select @VersionList = Coalesce(@VersionList+',','') + cast(VersionId as varchar(10)) from ( -select VersionID from DocVersions DV -where VersionID = @SourceID -Union -select VersionID from (Select *, Cast(config as xml) xConfig from DocVersions) DV -cross apply xConfig.nodes('//Enhanced[@VersionID=sql:variable("@SourceID")]') tEnhanced(xEnhanced)) T1 --- Temporary table of ContentID and config as XML for record in the Specified DocVersion VersionIDs that have Export Nodes -Declare @Config TABLE -( - ContentID int, - xConfig xml -) --- Build the temporary table -Insert into @Config -select CC.ContentID, xconfig from (select *, cast(config as xml) xConfig from Contents) CC -JOIN VEFN_GetVersionItems(@VersionList) VI ON VI.ContentID = CC.ContentID -cross Apply xConfig.nodes('//Export') tExport(xExport) --- Delete the existing Export nodes so that the new nodes can be added. -update @Config Set xConfig.modify('delete //Export') From @Config --- Update the Config field in the Content records with the old Export node removed. -update CC set Config = cast(xConfig as NVarchar(max)) from Contents CC -join @Config C1 ON C1.ContentID = CC.ContentID --- Temporary table with new link nodes -Declare @NewLinkData TABLE -( - ContentID int, - EContentID int, - ItemLink int, - LinkNode nvarchar(250) -) --- The following code build the Export node based upon Dense_Rank() which is similar to a record count --- only it is based upon the Source ItemID and returns a unique integer value -insert into @NewLinkData -select distinct t1.ContentID, II.ContentID EContentID -, DENSE_RANK() Over (Order by t1.ItemID) ItemLink -, '' LinkNode -From ( -select ItemID, vi.VersionID, VI.ContentID, xEnhanced.query('.') qEnhanced -,xEnhanced.value('@Type','int') EType -,xEnhanced.value('@ItemID','int') EItemID -from (Select *, cast(config as xml) xconfig from Contents where config Like '%Enhanced%') CC -JOIN VEFN_GetVersionItems(cast(@SourceID as nvarchar(10))) VI ON VI.ContentID = CC.ContentID -cross Apply xConfig.nodes('//Enhanced') tEnhanced(xEnhanced)) T1 -JOIN Items II ON II.ItemID = EItemID -Where EType!=0 --- Add the Export Node created in the temprorary table for the Source document -Update CC -set Config = Replace(Config,'',LinkNode + '') -From tblContents CC -Join @NewLinkData LD ON LD.ContentID = CC.ContentID --- Add the Export Node created in the tempoary table for the Enhanced document -Update CC -set Config = Replace(Config,'',LinkNode + '') -From tblContents CC -Join @NewLinkData LD ON LD.EContentID = CC.ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_BuildContentsExport] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_BuildContentsExport] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'vesp_BuildContentsEnhanced') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_BuildContentsEnhanced]; -GO -/* -select Count(*) AuditsBefore from ContentAudits -select top 5 CC.ContentID, xEnhanced.query('.') qEnhanced from (select *, Cast(config as xml) xconfig from Contents) CC -cross apply xconfig.nodes('//Enhanced') tEnhanced(xEnhanced) -EXEC [vesp_BuildContentsEnhanced] 17 -select Count(*) AuditsAfter from ContentAudits -select top 5 CC.ContentID, xEnhanced.query('.') qEnhanced from (select *, Cast(config as xml) xconfig from Contents) CC -cross apply xconfig.nodes('//Enhanced') tEnhanced(xEnhanced) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2017 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - --- Create Enahnced Nodes for an Enahnced document and its related Source document - -CREATE PROCEDURE [dbo].[vesp_BuildContentsEnhanced](@EnhancedID int) - -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - declare @SourceID int -- Source VersionID - -- Get SourceID from EnhancedID - select @SourceID = xEnhanced.value('@VersionID','int') from (select *, cast(config as xml) xconfig from DocVersions) DV - cross apply xconfig.nodes('//Enhanced') tEnhanced(xEnhanced) - where VersionID = @EnhancedID - - DECLARE @EnhType int - -- Get the Enhanced Type from the DocVersion record - select @EnhType = xEnhanced.value('@Type','int') - from (select *, cast(config as xml) xConfig from DocVersions where VersionID = @SourceID) DV - cross apply xconfig.nodes('//Enhanced[@VersionID=sql:variable("@EnhancedID")]') tEnhanced(xEnhanced) - -- Fix DocVersion Records - -- Temporary Table used to delete old Enhanced Nodes in the source document - declare @Enh1 TABLE - ( - ID int, - xConfig xml - ) - insert into @Enh1 -- Links to Enhanced from Source - select CC.ContentID, xConfig from (select *, cast(config as xml) xConfig from Contents) CC - JOIN VEFN_GetVersionItems(cast(@SourceID as varchar(25))) VI ON VI.ContentID = CC.ContentID - cross apply VEFN_GetNewEnhancedData(VI.itemid,@EnhType) VEN - -- delete the Enhanced node from the config - Update @Enh1 Set xConfig.modify('delete //Enhanced[@Type=sql:variable("@EnhType")]') From @Enh1 - -- Update the content record removing the Enhanced node from config - Update CC Set Config = cast(xconfig as varchar(max)) From Contents CC -- Remove Links from Source - Join @Enh1 EE ON EE.ID = CC.ContentID - -- Temporary Table used to delete old Enhanced Nodes in the enhanced document - declare @Enh2 TABLE - ( - ID int, - xConfig xml - ) - insert into @Enh2 -- Links to Source from Enhanced - select CC.ContentID, xConfig from (select *, cast(config as xml) xConfig from Contents) CC - JOIN VEFN_GetVersionItems(cast(@EnhancedID as varchar(25))) VI ON VI.ContentID = CC.ContentID - cross apply VEFN_GetNewEnhancedData(VI.itemid,0) VEN - --set @EnhType=0 - -- delete the Enhanced node from the config - Update @Enh2 Set xConfig.modify('delete //Enhanced[@Type=0]') From @Enh2 - -- Update the content record removing the Enhanced node from config - Update CC Set Config = cast(xconfig as varchar(max)) From Contents CC -- Remove Links from Enhanced - Join @Enh2 EE ON EE.ID = CC.ContentID --- Temporary Table used to store the Export LinkID with the ContentID and the ItemID for the Source Document -declare @Source TABLE -( -Type int, -ContentID int, -ItemID int, -LinkID int primary Key -) --- Build the table based upon the Export Nodes in the Source document -insert into @Source -Select @EnhType dvType, CC.ContentID, vi.ItemID, xExport.value('@LinkID','int') LinkID -from (select *, cast(config as xml) xConfig from Contents) CC -JOIN VEFN_GetVersionItems(cast(@SourceID as varchar(10))) VI ON VI.ContentID = CC.ContentID -Join (select *, cast(config as xml)xdvConfig from DocVersions) DV ON VI.VersionID= DV.VersionID -cross apply xConfig.nodes('//Export') tExport(xExport) ---cross apply xDVConfig.nodes('//Enhanced') tdvEnhanced(xdvEnhanced) --- Temporary Table used to store the Export LinkID with the ContentID and the ItemID for the Enhanced Document -declare @Enhanced TABLE -( -Type int, -ContentID int, -ItemID int, -LinkID int primary key -) --- Build the table based upon the Export Nodes in the Enhanced document -insert into @Enhanced -Select xdvEnhanced.value('@Type','int') dvType, CC.ContentID, vi.ItemID, xExport.value('@LinkID','int') LinkID -from (select *, cast(config as xml) xConfig from Contents) CC -JOIN VEFN_GetVersionItems(cast(@EnhancedID as varchar(10))) VI ON VI.ContentID = CC.ContentID -Join (select *, cast(config as xml)xdvConfig from DocVersions) DV ON VI.VersionID= DV.VersionID -cross apply xConfig.nodes('//Export') tExport(xExport) -cross apply xDVConfig.nodes('//Enhanced') tdvEnhanced(xdvEnhanced) --- Temporary Table of ContentIDs and New Enhanced Node Text -declare @Links TABLE -( -ContentID int primary key, -LinkText nvarchar(250) -) ---Build the temporary table with the new enhanced Nodes -insert into @links -select SS.ContentID, '' EnhancedNode from @Source SS -join @Enhanced EE on EE.LinkID = SS.LinkID -UNION -select EE.ContentID, '' EnhancedNode from @Source SS -join @Enhanced EE on EE.LinkID = SS.LinkID --- Update content records insering the Enhanced Nodes from the temporary table. -Update CC -set Config = Replace(Config,'',LinkText + '') -From Contents CC -Join @Links LD ON LD.ContentID = CC.ContentID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_BuildContentsEnhanced] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_BuildContentsEnhanced] Error on Creation' -go - ----The following Formats/Config column was added for User Control of Format (UCF), but needed to be added before existing procedures. ---- Added for additional config column on formats to store UCF data. Also modified existing queries to get UCF Data for Formats ---- Note that vefn_GetVersionFormatItems was also modified as part of this work to return the parentformatId -IF NOT EXISTS(SELECT * - FROM INFORMATION_SCHEMA.COLUMNS - WHERE TABLE_NAME = 'Formats' - AND COLUMN_NAME = 'Config') -ALTER TABLE Formats ADD Config nvarchar(MAX) NULL; -go --- Display the status -IF (@@Error = 0) PRINT 'Altered table [Formats] Succeeded' -ELSE PRINT 'Altered table [Formats] Error on Alter' -go - -/****** Object: StoredProcedure [getChildFormats] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getChildFormats]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getChildFormats]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2018 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getChildFormats] - -( - @ParentID int -) -WITH EXECUTE AS OWNER -AS - with formatz([FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged]) as - (select [FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged] - FROM [dbo].[Formats] fs where DATALENGTH(fs.Data) > 5 - union all -- Child formats - select fs.[FormatID], fs.[ParentID], fs.[Name], fs.[Description], fz.[Data], fs.[Config], fz.[GenMac], fs.[DTS], fs.[UserID], fs.[LastChanged] - from formats fs - join formatz fz on fz.FormatID = fs.ParentID - where DATALENGTH(fs.Data) = 5) -- the DATALENGTH(fs.Data) = 5 is how to check for empty xml (Data's type is xml) - select * from ( - select *, - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formatz].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formatz].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formatz].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formatz].[FormatID]) [ChildCount] from Formatz) T1 - WHERE [ParentID]=@ParentID AND [FormatID]<>@ParentID AND (Description not like '%(Unused)%' or (ContentCount + DocVersionCount + FolderCount + ChildCount > 0)) - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getChildFormats Succeeded' -ELSE PRINT 'Procedure Creation: getChildFormats Error on Creation' -GO -/****** Object: StoredProcedure [getFormats] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFormats]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFormats]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2018 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getFormats] - -WITH EXECUTE AS OWNER -AS -BEGIN - with formatz([FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged]) as - (select [FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged] - FROM [dbo].[Formats] fs where DATALENGTH(fs.Data) > 5 - union all -- Child formats - select fs.[FormatID], fs.[ParentID], fs.[Name], fs.[Description], fz.[Data], fs.[Config], fz.[GenMac], fs.[DTS], fs.[UserID], fs.[LastChanged] - from formats fs - join formatz fz on fz.FormatID = fs.ParentID - where DATALENGTH(fs.Data) = 5) -- the DATALENGTH(fs.Data) = 5 is how to check for empty xml (Data's type is xml) - select * from ( - select *, - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formatz].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formatz].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formatz].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formatz].[FormatID]) [ChildCount] from Formatz) t1 - where Description not like '%(Unused)%' or (ContentCount + DocVersionCount + FolderCount + ChildCount > 0) -END -RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getFormats Succeeded' -ELSE PRINT 'Procedure Creation: getFormats Error on Creation' -GO - -/****** Object: StoredProcedure [getAllFormats] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAllFormats]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAllFormats]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2018 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAllFormats] - -WITH EXECUTE AS OWNER -AS - SELECT * From (SELECT - [FormatID], - [ParentID], - [Name], - [Description], - [Data], - [Config], - [GenMac], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] - FROM [Formats] ) T1 - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAllFormats Succeeded' -ELSE PRINT 'Procedure Creation: getAllFormats Error on Creation' -GO ------ -/****** Object: StoredProcedure [vesp_SearchSepcifiedApplicability] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchSepcifiedApplicability]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [vesp_SearchSepcifiedApplicability]; -GO - -/* -exec vesp_SearchSepcifiedApplicability '16','','',0,0,0,0,'','3' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2018 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchSepcifiedApplicability] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), -@SearchString varchar(MAX), @CaseSensitive as int, @IncludeLinks as int, @IncludeRtfFormatting as int, @IncludeSpecialCharacters as int, @UnitPrefix as varchar(MAX), @ApplicSetting varchar(MAX)) -WITH EXECUTE AS OWNER -AS -select ZZ.DvPath, ZZ.Path, ZZ.[Level],ZZ.[FromType],ZZ.[Ordinal], ZZ.[ParentID], ZZ.[ItemID],ZZ.[PreviousID],ZZ.[ContentID],ZZ.[DTS],ZZ.[UserID] - ,II.[LastChanged] - ,CC.[Number],CC.[Text],CC.[Type],CC.[FormatID],CC.[Config],CC.[DTS] [cDTS],CC.[UserID] [cUserID] - ,CC.[LastChanged] [cLastChanged], - PP.[ContentID] [pContentID], PP.[DTS] [pDTS],PP.[UserID] [pUserID], PP.[LastChanged] [pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ZZ.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ZZ.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ZZ.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ZZ.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ZZ.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ZZ.[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=CC.[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=CC.[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=CC.[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=CC.[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=CC.[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=CC.[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=CC.[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=CC.[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=CC.[ContentID]) [ZContentCount] -from vefn_SiblingAndChildrenItems(@DocVersionList, @UnitPrefix) ZZ - Join Items II on ZZ.ItemID=II.ItemID - Left Join Parts PP on ZZ.PContentID=PP.ContentID and ZZ.FromType = PP.FromType - Join Contents CC on CC.ContentID=ZZ.ContentID -where ZZ.ContentID in (select ContentID from vefn_FindSpecificApplicUsage(@DocVersionList, @ApplicSetting)) - order by DvPath,OrdinalPath - GO -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchSepcifiedApplicability Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchSepcifiedApplicability Error on Creation' -GO ------ -/****** Object: StoredProcedure [vefn_FindSpecificApplicUsage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindSpecificApplicUsage]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindSpecificApplicUsage]; -GO - -/* -exec vefn_FindSpecificApplicUsage '16','3' -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2018 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindSpecificApplicUsage]( -@DocVersionList nvarchar(MAX) -,@ApplicSetting varchar(MAX)) -RETURNS @FoundContents TABLE -( - ContentID int PRIMARY KEY -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @FoundContents - select C.ContentID from (select * from Contents where ContentID in(select ContentID from vefn_DVContent(@DocVersionList))) C - join - items ii - on ii.ContentID = C.ContentID - where ','+ dbo.ve_GetItemAppliedApplicability(ii.ItemID ) + ',' like '%,' + @ApplicSetting + ',%' -RETURN -END - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vefn_FindSpecificApplicUsage Succeeded' -ELSE PRINT 'Procedure Creation: vefn_FindSpecificApplicUsage Error on Creation' -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2018 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - ----- ************************* UCF Changes ************************************* - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addFormat]; -GO -CREATE PROCEDURE [dbo].[addFormat] - -( - @ParentID int, - @Name nvarchar(100), - @Description nvarchar(250)=null, - @Data xml, - @Config nvarchar(MAX)=null, - @GenMac xml=null, - @DTS datetime, - @UserID nvarchar(100), - @newFormatID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Formats] - ( - [ParentID], - [Name], - [Description], - [Data], - [Config], - [GenMac], - [DTS], - [UserID] - ) - VALUES - ( - @ParentID, - @Name, - @Description, - @Data, - @Config, - @GenMac, - @DTS, - @UserID - ) - SELECT @newFormatID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Formats] WHERE [FormatID]=@newFormatID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [addFormat] Succeeded' -ELSE PRINT 'StoredProcedure [addFormat] Error on Creation' -go -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateFormat]; -GO -CREATE PROCEDURE [dbo].[updateFormat] - -( - @FormatID int, - @ParentID int, - @Name nvarchar(100), - @Description nvarchar(250)=null, - @Data xml, - @Config nvarchar(MAX), - @GenMac xml=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Formats] - SET - [ParentID]=@ParentID, - [Name]=@Name, - [Description]=@Description, - [Data]=@Data, - [Config]=@Config, - [GenMac]=@GenMac, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [FormatID]=@FormatID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Formats] WHERE [FormatID]=@FormatID) - RAISERROR('Format record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Format has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Formats] WHERE [FormatID]=@FormatID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [updateFormat] Succeeded' -ELSE PRINT 'StoredProcedure [updateFormat] Error on Creation' -go - -ALTER TABLE Formats ALTER COLUMN Data Xml NULL -IF (@@Error = 0) PRINT 'Alter Table Formats Succeeded' -ELSE PRINT 'Alter Table Formats Error on Alter' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFormatListUsed]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFormatListUsed]; -GO -CREATE PROCEDURE [dbo].[getFormatListUsed] -WITH EXECUTE AS OWNER -AS -BEGIN -with formatz([FormatID], [ParentID],[Name],[Description],[Data],[GenMac],[DTS],[UserID],[Config]) as -(select [FormatID], [ParentID],[Name],[Description],[Data],[GenMac],[DTS],[UserID],[Config] -FROM [dbo].[Formats] where formatid in -((select formatid from folders union -select formatid from docversions union -select formatid from contents) -) and name != 'base' --and DATALENGTH(Data) > 5 -union all -- Child formats -select fs.[FormatID], fs.[ParentID], fs.[Name], fs.[Description], fz.[Data], fz.[GenMac], fs.[DTS], fs.[UserID], fs.[Config] -from formats fs -join formatz fz on fz.FormatID = fs.ParentID ---where fs.Data is null) -where fs.Data is not null and DATALENGTH(fs.Data) = 5) -- the DATALENGTH(fs.Data) = 5 is how to check for empty xml (Data's type is xml) -select *, - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] from Formats - where formatid in (select distinct formatid from formatz) -END -RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [getFormatListUsed] Succeeded' -ELSE PRINT 'StoredProcedure [getFormatListUsed] Error on Creation' -go - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFormat]; -GO -CREATE PROCEDURE [dbo].[getFormat] -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - with formatz([FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged]) as - (select [FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged] - FROM [dbo].[Formats] fs where DATALENGTH(fs.Data) > 5 - union all -- Child formats - select fs.[FormatID], fs.[ParentID], fs.[Name], fs.[Description], fz.[Data], fs.[Config], fz.[GenMac], fs.[DTS], fs.[UserID], fs.[LastChanged] - from formats fs - join formatz fz on fz.FormatID = fs.ParentID - where DATALENGTH(fs.Data) = 5) -- the DATALENGTH(fs.Data) = 5 is how to check for empty xml (Data's type is xml) - select *, - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formatz].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formatz].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formatz].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formatz].[FormatID]) [ChildCount] from Formatz - WHERE [FormatID]=@FormatID -END - - SELECT - [Contents].[ContentID], - [Contents].[Number], - [Contents].[Text], - [Contents].[Type], - [Contents].[FormatID], - [Contents].[Config], - [Contents].[DTS], - [Contents].[UserID], - [Contents].[LastChanged] - FROM [Contents] - WHERE - [Contents].[FormatID]=@FormatID - - - SELECT - [DocVersions].[VersionID], - [DocVersions].[FolderID], - [DocVersions].[VersionType], - [DocVersions].[Name], - [DocVersions].[Title], - [DocVersions].[ItemID], - [DocVersions].[FormatID], - [DocVersions].[Config], - [DocVersions].[DTS], - [DocVersions].[UserID], - [DocVersions].[LastChanged], - [Folders].[ParentID] [Folder_ParentID], - [Folders].[DBID] [Folder_DBID], - [Folders].[Name] [Folder_Name], - [Folders].[Title] [Folder_Title], - [Folders].[ShortName] [Folder_ShortName], - [Folders].[FormatID] [Folder_FormatID], - [Folders].[ManualOrder] [Folder_ManualOrder], - [Folders].[Config] [Folder_Config], - [Folders].[DTS] [Folder_DTS], - [Folders].[UsrID] [Folder_UsrID] - FROM [DocVersions] - JOIN [Folders] ON - [Folders].[FolderID]=[DocVersions].[FolderID] - WHERE - [DocVersions].[FormatID]=@FormatID - - - SELECT - [Folders].[FolderID], - [Folders].[ParentID], - [Folders].[DBID], - [Folders].[Name], - [Folders].[Title], - [Folders].[ShortName], - [Folders].[FormatID], - [Folders].[ManualOrder], - [Folders].[Config], - [Folders].[DTS], - [Folders].[UsrID], - [Folders].[LastChanged], - [Connections].[Name] [Connection_Name], - [Connections].[Title] [Connection_Title], - [Connections].[ConnectionString] [Connection_ConnectionString], - [Connections].[ServerType] [Connection_ServerType], - [Connections].[Config] [Connection_Config], - [Connections].[DTS] [Connection_DTS], - [Connections].[UsrID] [Connection_UsrID] - FROM [Folders] - JOIN [Connections] ON - [Connections].[DBID]=[Folders].[DBID] - WHERE - [Folders].[FormatID]=@FormatID -RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [getFormat] Succeeded' -ELSE PRINT 'StoredProcedure [getFormat] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFormatByName]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFormatByName]; -GO -CREATE PROCEDURE [dbo].[getFormatByName] -( - @Name varchar(255) -) -WITH EXECUTE AS OWNER -AS - DECLARE @FormatID INT - Set @FormatID = (select FormatID from Formats where Name = @Name) - BEGIN - with formatz([FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged]) as - (select [FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged] - FROM [dbo].[Formats] fs where DATALENGTH(fs.Data) > 5 - union all -- Child formats - select fs.[FormatID], fs.[ParentID], fs.[Name], fs.[Description], fz.[Data], fs.[Config], fz.[GenMac], fs.[DTS], fs.[UserID], fs.[LastChanged] - from formats fs - join formatz fz on fz.FormatID = fs.ParentID - where DATALENGTH(fs.Data) = 5) -- the DATALENGTH(fs.Data) = 5 is how to check for empty xml (Data's type is xml) - select *, - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formatz].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formatz].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formatz].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formatz].[FormatID]) [ChildCount] from Formatz - WHERE [FormatID]=@FormatID - END - - SELECT - [Contents].[ContentID], - [Contents].[Number], - [Contents].[Text], - [Contents].[Type], - [Contents].[FormatID], - [Contents].[Config], - [Contents].[DTS], - [Contents].[UserID], - [Contents].[LastChanged] - FROM [Contents] - WHERE - [Contents].[FormatID]=@FormatID - - - SELECT - [DocVersions].[VersionID], - [DocVersions].[FolderID], - [DocVersions].[VersionType], - [DocVersions].[Name], - [DocVersions].[Title], - [DocVersions].[ItemID], - [DocVersions].[FormatID], - [DocVersions].[Config], - [DocVersions].[DTS], - [DocVersions].[UserID], - [DocVersions].[LastChanged], - [Folders].[ParentID] [Folder_ParentID], - [Folders].[DBID] [Folder_DBID], - [Folders].[Name] [Folder_Name], - [Folders].[Title] [Folder_Title], - [Folders].[ShortName] [Folder_ShortName], - [Folders].[FormatID] [Folder_FormatID], - [Folders].[ManualOrder] [Folder_ManualOrder], - [Folders].[Config] [Folder_Config], - [Folders].[DTS] [Folder_DTS], - [Folders].[UsrID] [Folder_UsrID] - FROM [DocVersions] - JOIN [Folders] ON - [Folders].[FolderID]=[DocVersions].[FolderID] - WHERE - [DocVersions].[FormatID]=@FormatID - - - SELECT - [Folders].[FolderID], - [Folders].[ParentID], - [Folders].[DBID], - [Folders].[Name], - [Folders].[Title], - [Folders].[ShortName], - [Folders].[FormatID], - [Folders].[ManualOrder], - [Folders].[Config], - [Folders].[DTS], - [Folders].[UsrID], - [Folders].[LastChanged], - [Connections].[Name] [Connection_Name], - [Connections].[Title] [Connection_Title], - [Connections].[ConnectionString] [Connection_ConnectionString], - [Connections].[ServerType] [Connection_ServerType], - [Connections].[Config] [Connection_Config], - [Connections].[DTS] [Connection_DTS], - [Connections].[UsrID] [Connection_UsrID] - FROM [Folders] - JOIN [Connections] ON - [Connections].[DBID]=[Folders].[DBID] - WHERE - [Folders].[FormatID]=@FormatID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [getFormatByName] Succeeded' -ELSE PRINT 'StoredProcedure [getFormatByName] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFormatByParentID_Name]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFormatByParentID_Name]; -GO -CREATE PROCEDURE [dbo].[getFormatByParentID_Name] -( - @ParentID int, - @Name nvarchar(20) -) -WITH EXECUTE AS OWNER -AS - BEGIN - with formatz([FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged]) as - (select [FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged] - FROM [dbo].[Formats] fs where DATALENGTH(fs.Data) > 5 - union all -- Child formats - select fs.[FormatID], fs.[ParentID], fs.[Name], fs.[Description], fz.[Data], fs.[Config], fz.[GenMac], fs.[DTS], fs.[UserID], fs.[LastChanged] - from formats fs - join formatz fz on fz.FormatID = fs.ParentID - where DATALENGTH(fs.Data) = 5) -- the DATALENGTH(fs.Data) = 5 is how to check for empty xml (Data's type is xml) - select *, - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formatz].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formatz].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formatz].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formatz].[FormatID]) [ChildCount] from Formatz - WHERE [ParentID]=@ParentID AND [Name]=@Name - END - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [getFormatByParentID_Name] Succeeded' -ELSE PRINT 'StoredProcedure [getFormatByParentID_Name] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getParentFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getParentFormat]; -GO -CREATE PROCEDURE [dbo].[getParentFormat] -( - @ParentID int -) -WITH EXECUTE AS OWNER -AS - BEGIN - with formatz([FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged]) as - (select [FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged] - FROM [dbo].[Formats] fs where DATALENGTH(fs.Data) > 5 - union all -- Child formats - select fs.[FormatID], fs.[ParentID], fs.[Name], fs.[Description], fz.[Data], fs.[Config], fz.[GenMac], fs.[DTS], fs.[UserID], fs.[LastChanged] - from formats fs - join formatz fz on fz.FormatID = fs.ParentID - where DATALENGTH(fs.Data) = 5) -- the DATALENGTH(fs.Data) = 5 is how to check for empty xml (Data's type is xml) - select *, - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formatz].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formatz].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formatz].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formatz].[FormatID]) [ChildCount] from Formatz - WHERE [FormatID]=@ParentID - END - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [getParentFormat] Succeeded' -ELSE PRINT 'StoredProcedure [getParentFormat] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getJustFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getJustFormat]; -GO -CREATE PROCEDURE [dbo].[getJustFormat] - -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS - with formatz([FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged]) as - (select [FormatID], [ParentID],[Name],[Description],[Data],[Config],[GenMac],[DTS],[UserID],[LastChanged] - FROM [dbo].[Formats] fs where DATALENGTH(fs.Data) > 5 - union all -- Child formats - select fs.[FormatID], fs.[ParentID], fs.[Name], fs.[Description], fz.[Data], fs.[Config], fz.[GenMac], fs.[DTS], fs.[UserID], fs.[LastChanged] - from formats fs - join formatz fz on fz.FormatID = fs.ParentID - where DATALENGTH(fs.Data) = 5) -- the DATALENGTH(fs.Data) = 5 is how to check for empty xml (Data's type is xml) - select *, - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formatz].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formatz].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formatz].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formatz].[FormatID]) [ChildCount] from Formatz - WHERE [FormatID]=@FormatID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [getJustFormat] Succeeded' -ELSE PRINT 'StoredProcedure [getJustFormat] Error on Creation' -go - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getFormatNoUCF]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getFormatNoUCF]; -GO -CREATE PROCEDURE [dbo].[getFormatNoUCF] -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FormatID], - [ParentID], - [Name], - [Description], - [Data], - [Config], - [GenMac], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] - FROM [Formats] - WHERE [FormatID]=@FormatID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [getFormatNoUCF] Succeeded' -ELSE PRINT 'StoredProcedure [getFormatNoUCF] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetItemsMatchingFormatItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetItemsMatchingFormatItems]; -GO -CREATE FUNCTION [dbo].[vefn_GetItemsMatchingFormatItems](@ItemID int, @OldFormatID int, @NewFormatID int) -RETURNS @Items TABLE -( - ItemID int, - ContentID int primary key, - FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - BEGIN - -- recursive, walk through content, items and parts table to find children - -- ('with' makes it recursive, which is called cte, common table expressions, in sql) - with Itemz([ItemID], [ContentID], [FormatID], [Level]) as - (Select [I].[ItemID], [I].[ContentID], - C.[FormatID], 0 - FROM [Items] I - join Contents C on I.ContentID = C.ContentID - where I.ItemID = @ItemID and (C.FormatID is null or C.FormatID = @OldFormatID or C.FormatID = @NewFormatID) - Union All - -- Children : get sections off procedures and subsections off sections - select I.[ItemID], I.[ContentID], C.[FormatID], Z.[Level]+1 - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on I.ContentID = C.ContentID - where C.Type < 20000 and (C.FormatID is null or C.FormatID = @OldFormatID or C.FormatID = @NewFormatID) and (Z.[FormatID] is null or Z.[FormatID] = @OldFormatID or Z.FormatID = @NewFormatID) - Union All - -- Siblings : get remaining items (procedure and section) - select I.[ItemID], I.[ContentID], C.[FormatID], Z.[Level] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on I.ContentID = C.ContentID - where C.Type < 20000 and Z.[Level] > 0 - ) - insert into @Items - select [ItemID], [ContentID], [FormatID] - from ItemZ I - where ([FormatID] = @OldFormatID or [FormatID] = @NewFormatID) and [ItemID] != @ItemID - OPTION (MAXRECURSION 10000) - END -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vefn_GetItemsMatchingFormatItems] Succeeded' -ELSE PRINT 'StoredProcedure [vefn_GetItemsMatchingFormatItems] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionMatchingFormatItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionMatchingFormatItems]; -GO -CREATE FUNCTION [dbo].[vefn_GetVersionMatchingFormatItems](@DocVersionList varchar(MAX), @OldFormatID int, @NewFormatID int) -RETURNS @VersionItems TABLE -( - VersionID int, - ItemID int, - ContentID int primary key, - FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - BEGIN - -- recursive, walk through content, items and parts table to find children - -- ('with' makes it recursive, which is called cte, common table expressions, in sql) - with Itemz([VersionID], [ItemID], [ContentID], [FormatID]) as - (Select DV.VersionID, [I].[ItemID], [I].[ContentID], C.[FormatID] - FROM [Items] I - JOIN vefn_DocVersionSplit(@DocVersionList) DV ON I.[ItemID] = DV.[ItemID] -- get first procedure for each doc version in list - join docversions DV2 on DV.[VersionID] = DV2.[VersionID] - join Contents C on I.ContentID = C.ContentID - where (C.FormatID is null or C.FormatID = @OldFormatID or C.FormatID = @NewFormatID) - Union All - -- Children : get sections off procedures and subsections off sections - select Z.VersionID, I.[ItemID], I.[ContentID], C.[FormatID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on I.ContentID = C.ContentID - where C.Type < 20000 and (C.FormatID is null or C.FormatID = @OldFormatID or C.FormatID = @NewFormatID) and (Z.[FormatID] is null or Z.[FormatID] = @OldFormatID or Z.FormatID = @NewFormatID) - Union All - -- Siblings : get remaining items (procedure and section) - select Z.VersionID, I.[ItemID], I.[ContentID], C.[FormatID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on I.ContentID = C.ContentID - where C.Type < 20000 - ) - insert into @VersionItems - select VersionID, [ItemID], [ContentID], [FormatID] - from ItemZ I - where [FormatID] = @OldFormatID or [FormatID] = @NewFormatID - OPTION (MAXRECURSION 10000) - END -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vefn_GetVersionMatchingFormatItems] Succeeded' -ELSE PRINT 'StoredProcedure [vefn_GetVersionMatchingFormatItems] Error on Creation' -go - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetFolderMatchingFormatItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetFolderMatchingFormatItems]; -GO -CREATE FUNCTION [dbo].[vefn_GetFolderMatchingFormatItems](@FolderID int, @OldFormatID int, @NewFormatID int) -RETURNS @VersionItems TABLE -( - VersionID int, - ItemID int, - ContentID int primary key, - FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @DocVersionList NVARCHAR(MAX) -- get list of docversions for a folder: - BEGIN - With Folderz([FolderID]) as - ( - select FF.FolderID from Folders FF - Where FF.FolderID = @FolderID - UNION ALL - select FF.FolderID from Folders FF - Join Folderz ZZ on FF.ParentID = ZZ.FolderID - Where FF.FolderID != @FolderID and (FF.FormatID is null or FF.FormatID = @OldFormatID or FF.FormatID = @NewFormatID) - ) - select @DocVersionList = coalesce(@DocVersionList+',','')+cast(VersionId as varchar(255)) - from Folderz ZZ - Left Join DocVersions DV ON DV.FolderID = ZZ.FolderID - where VersionID is not null and (DV.FormatID is null or DV.FormatID = @OldFormatID or DV.FormatID = @NewFormatID) - order by versionID - OPTION (MAXRECURSION 10000) -END - BEGIN - -- recursive, walk through content, items and parts table to find children - -- ('with' makes it recursive, which is called cte, common table expressions, in sql) - with Itemz([VersionID], [ItemID], [ContentID], [FormatID]) as - ( - Select DV.VersionID, [I].[ItemID], [I].[ContentID], C.[FormatID] - FROM [Items] I - JOIN vefn_DocVersionSplit(@DocVersionList) DV ON I.[ItemID] = DV.[ItemID] -- get first procedure for each doc version in list - join docversions DV2 on DV.[VersionID] = DV2.[VersionID] - join Contents C on I.ContentID = C.ContentID - where (C.FormatID is null or C.FormatID = @OldFormatID or C.FormatID = @NewFormatID) - Union All - -- Children : get sections off procedures and subsections off sections - select Z.VersionID, I.[ItemID], I.[ContentID], C.[FormatID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on I.ContentID = C.ContentID - where C.Type < 20000 and (C.FormatID is null or C.FormatID = @OldFormatID or C.FormatID = @NewFormatID) and (Z.[FormatID] is null or Z.[FormatID] = @OldFormatID or Z.FormatID = @NewFormatID) - Union All - -- Siblings : get remaining items (procedure and section) - select Z.VersionID, I.[ItemID], I.[ContentID], C.[FormatID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on I.ContentID = C.ContentID - where C.Type < 20000 - ) - insert into @VersionItems - select VersionID, [ItemID], [ContentID], [FormatID] - from ItemZ I - where [FormatID] = @OldFormatID or [FormatID] = @NewFormatID - OPTION (MAXRECURSION 10000) - END -RETURN -END -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vefn_GetFolderMatchingFormatItems] Succeeded' -ELSE PRINT 'StoredProcedure [vefn_GetFolderMatchingFormatItems] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ClearOverrideFormatsByFolder]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ClearOverrideFormatsByFolder]; -GO -CREATE PROCEDURE [dbo].[vesp_ClearOverrideFormatsByFolder](@FolderID int, @FormatID int, @NewFormatID int) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @ClearedContents TABLE -( - ContentID int -) -DECLARE @ClearedFolders TABLE -( - FolderID int -) -DECLARE @ClearedDocVersions TABLE -( - VersionID int -) - -insert into @ClearedContents -select cc.ContentID from (select contentid from contents where formatid is not null) cc -join vefn_GetFolderMatchingFormatItems(@FolderID, @FormatID, @NewFormatID) vi on vi.ContentID = cc.ContentID - --- update any folders & docversions that are using that formatid to clear them, i.e. so they inherit. To do this --- get lists of folders & docversions that have non-null format ids that should be null. - -BEGIN -With Folderz([FolderID], [FormatID]) as - ( - select FF.FolderID, FF.FormatID from Folders FF - Where FF.FolderID = @FolderID - UNION ALL - select FF.FolderID, FF.FormatID from Folders FF - Join Folderz ZZ on FF.ParentID = ZZ.FolderID - Where FF.FolderID != @FolderID and (FF.FormatID is null or FF.FormatID = @FormatID or FF.FormatID = @NewFormatID) - ) - insert into @ClearedFolders - select ZZ.FolderID - from Folderz ZZ - where ZZ.FormatID is not null and ZZ.FolderID != @FolderID -- don't include folder passed in, only do children (folder is done in code) - OPTION (MAXRECURSION 10000) -END - -BEGIN -With Folderz([FolderID]) as - ( - select FF.FolderID from Folders FF - Where FF.FolderID = @FolderID - UNION ALL - select FF.FolderID from Folders FF - Join Folderz ZZ on FF.ParentID = ZZ.FolderID - Where FF.FolderID != @FolderID and (FF.FormatID is null or FF.FormatID = @FormatID or FF.FormatID = @NewFormatID) - ) - insert into @ClearedDocVersions - select DV.VersionID - from Folderz ZZ - Left Join DocVersions DV ON DV.FolderID = ZZ.FolderID - where VersionID is not null and DV.FormatID is not null and (DV.FormatID = @FormatID or DV.FormatID = @NewFormatID) - OPTION (MAXRECURSION 10000) -END -update Folders set formatid = null where FolderID in (select FolderID from @ClearedFolders) -update DocVersions set formatid = null where VersionID in (select VersionID from @ClearedDocVersions) - --- now update all of the contents that were found -update contents set formatid = null where contentID in (select contentid from @ClearedContents) - -select [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM contents where contentid in (select ContentID from @ClearedContents) -RETURN -END - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ClearOverrideFormatsByFolder Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ClearOverrideFormatsByFolder Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ClearOverrideFormatsByDocVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ClearOverrideFormatsByDocVersion]; -GO -CREATE PROCEDURE [dbo].[vesp_ClearOverrideFormatsByDocVersion](@DocVersionList varchar(MAX), @FormatID int, @NewFormatID int) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @ClearedContents TABLE -( - ContentID int -) -insert into @ClearedContents -select cc.ContentID from (select contentid from contents where formatid is not null) cc -join vefn_GetVersionMatchingFormatItems(@DocVersionList, @FormatID, @NewFormatID) vi on vi.ContentID = cc.ContentID ---where vi.FormatID = @FormatID --and vi.ParentFormatID = @FormatID -update contents set formatid = null where contentID in (select contentid from @ClearedContents) - -select [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM contents where contentid in (select ContentID from @ClearedContents) -RETURN -END - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ClearOverrideFormatsByDocVersion Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ClearOverrideFormatsByDocVersion Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ClearOverrideFormatsByItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ClearOverrideFormatsByItem]; -GO -CREATE PROCEDURE [dbo].[vesp_ClearOverrideFormatsByItem](@ItemID int, @FormatID int, @NewFormatID int) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @ClearedContents TABLE -( - ContentID int - -) --- to test with the Ginna database: --- vesp_ClearOverrideFormatsByItem 36421, 205 -insert into @ClearedContents -select cc.ContentID from (select contentid, FormatID from contents where formatid is not null) cc -join vefn_GetItemsMatchingFormatItems(@ItemID, @FormatID, @NewFormatID) ci on ci.ContentID = cc.ContentID -update contents set formatid = null where contentID in (select contentid from @ClearedContents) - -select [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM contents where contentid in (select ContentID from @ClearedContents) -RETURN -END - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ClearOverrideFormatsByItem Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ClearOverrideFormatsByItem Error on Creation' -GO - -IF COL_LENGTH('Formats','Name') = 40 -ALTER TABLE [Formats] ALTER COLUMN [Name] [NVARCHAR](100) NOT NULL -IF (@@Error = 0) PRINT 'Alter Table Formats Succeeded' -ELSE PRINT 'Alter Table Formats Error on Alter' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_UpdateVersionFormatForUCF]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE vesp_UpdateVersionFormatForUCF; -GO -CREATE PROCEDURE [dbo].vesp_UpdateVersionFormatForUCF -( - @VersionList nvarchar(MAX), - @OldFormatID int, - @NewFormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @ClearedContents TABLE -( - ContentID int -) --- save the content ids that will have there format changed so that these can be returned to the application --- for a refresh. -insert into @ClearedContents -select contentid from contents where formatID=@OldFormatID and ContentID in (select distinct ContentID from vefn_GetVersionItems(@VersionList) ) - --- reset the oldformat to the newformat. This is used when during an import of procedure(s) in the case where --- all procedures in a set that use the oldformat should be set to the newformat (UCF formats) -UPDATE [Contents] - SET FormatID=@NewFormatID - WHERE FormatID=@OldFormatID AND ContentID in (select distinct ContentID from vefn_GetVersionItems(@VersionList) ) - -select [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM contents where contentid in (select ContentID from @ClearedContents) -END -RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_UpdateVersionFormatForUCF Succeeded' -ELSE PRINT 'Procedure Creation: vesp_UpdateVersionFormatForUCF Error on Creation' -GO - -/****** Object: Table Function [vefn_SiblingAndChildrenItemsNew] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SiblingAndChildrenItemsNew]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SiblingAndChildrenItemsNew]; -GO -/* -select * from vefn_SiblingAndChildrenItemsNew('37','3-', '%rcp%','%rcp%','') where Text like '%rcp%' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2019 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create FUNCTION [dbo].[vefn_SiblingAndChildrenItemsNew](@DocVersionList varchar(MAX),@UnitPrefix varchar(MAX),@SearchString varchar(MAX),@SearchStringx varchar(MAX), @StepTypeList varchar(MAX)) -RETURNS @SiblingAndChildren TABLE -( - [ILastChanged] varbinary(8) - , [ItemID] int PRIMARY KEY - , [DVPath] nvarchar(max) - , [Path] nvarchar(max) - , [FromType] int - , [Ordinal] int - , [ParentID] int - , [PreviousID] int - , [ContentID] int - , [DTS] datetime - , [UserID] nvarchar(100) - , [pContentID] int - , [pDTS] datetime - , [pUserID] nvarchar(100) - , [IsRNO] int - , Text nvarchar(max) - , DocAscii nvarchar(max) - , Number nvarchar(256) - , CType int - , CFormatID int - , CConfig nvarchar(max) - , CDTS datetime - , CUserID nvarchar(100) - , CLastChanged varbinary(8) - , PLastChanged varbinary(8) -) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -BEGIN -with Itemz([ILastChanged], [ItemID], VersionID,[Path], [FromType],[Ordinal], [ParentID], [PreviousID], [ContentID], [DTS], [UserID],[pContentID], - [pDTS],[pUserID],[IsRNO], Text, Number, PPath, CType, CFormatID, CConfig, CDTS, CUserID, CLastChanged, PLastChanged) as ( - Select Cast(I.LastChanged as varbinary(8)) ILastChanged,[I].[ItemID], VersionID, - Cast(Case when C.Type < 20000 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) [Path] - , 0 [FromType], 0 [Ordinal], 0 [ParentID], [PreviousID],[I].[ContentID],[I].[DTS],[I].[UserID] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID],0 IsRNO, C.Text, C.Number, - Cast('' as nvarchar(max)) [PPath], C.Type CType, C.FormatID CFormatID, C.Config CConfig, C.Dts CDTS,C.UserID CUSERID, - Cast(C.LastChanged as varbinary(8)) CLastChanged, Cast(0 as varbinary(8)) PLastChanged - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select Cast(I.LastChanged as varbinary(8)) ILastChanged,I.[ItemID], VersionID, - Path + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') -- Procedure - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') -- Section - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(4)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(4)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(4)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(4)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep + cast(1 as varchar(4)) - when 8 then @DelimStep +'SupInfo' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(4)) - end end Path, - P.[FromType],0 [Ordinal], Z.ItemID [ParentID],I.[PreviousID], I.[ContentID],I.[DTS],I.[UserID], - P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID], - case when P.FromType = 5 then -1 else 0 end IsRNO, - C.Text,c.Number, - Path + case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - when 8 then @DelimStep + 'SupInfo' - else '' end - else '' end [PPath], C.Type CType, C.FormatID CFormatID, C.Config CConfig, C.Dts CDTS,C.UserID CUSERID, - Cast(C.LastChanged as varbinary(8)) CLastChanged, Cast(P.LastChanged as varbinary(8)) PLastChanged - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID - Union All --- Siblings - select Cast(I.LastChanged as varbinary(8)) ILastChanged,I.[ItemID], VersionID, PPath + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') -- Procedure - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') -- Section - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(4)) - end Path, - [FromType],Z.[Ordinal] +1,Z.[ParentID], I.[PreviousID], I.[ContentID],I.[DTS],I.[UserID] - ,null,null,null, - 0 IsRNO, - C.Text, C.Number, - PPath, C.Type CType, C.FormatID CFormatID, C.Config CConfig, C.Dts CDTS,C.UserID CUSERID, - Cast(C.LastChanged as varbinary(8)) CLastChanged, Cast(0 as varbinary(8)) PLastChanged - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) - -insert into @SiblingAndChildren -select ZZ.ILastChanged,ZZ.[ItemID], dvpath, [Path],[FromType],[Ordinal], [ParentID], [PreviousID],ZZ.[ContentID],ZZ.[DTS],ZZ.[UserID], - [pContentID],[pDTS],[pUserID],[IsRNO],Text,DocAscii, Number, CType, CFormatID, CConfig, CDTS, CUserID, CLastChanged, PLastChanged - From Itemz ZZ - join vefn_DocVersionSplit(@DocVersionList) DV ON DV.VersionID=zz.VersionID - Left Join Entries EE ON EE.ContentID=ZZ.ContentID - Left Join Documents DD ON DD.DocID = ee.DocID - where (text like @SearchString OR Replace(DD.DocAscii,nchar(176),'\''B0') like @SearchString or text like @SearchStringx OR - Replace(DD.DocAscii,nchar(176),'\''B0') like @SearchStringx ) - and (isnull(@StepTypeList,'') = '' or (dbo.vefn_AllSections(CType) in (Select ID from vefn_SplitInt(@StepTypeList,',')))) - OPTION (MAXRECURSION 10000) -END -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SiblingAndChildrenItemsNew Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SiblingAndChildrenItemsNew Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addItemChild]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addItemChild]; -GO -CREATE PROCEDURE [dbo].[addItemChild] -( - @ItemID int=null, @Number nvarchar(256)=null, @Text nvarchar(MAX)=null, @FormatID int=null, @Config nvarchar(MAX)=null, - @FromType int=null, @Type int=null, @DTS datetime, @UserID nvarchar(100), @newItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @ChildID int, @ContentID int, @ParentContentID int, @LastChanged timestamp - , @newLastChanged timestamp, @Error int, @Rowcount int, @ChildDeleted int - SELECT @ChildID = pp.[ItemID],@ParentContentID = ii.ContentID, @LastChanged = pp.LastChanged - FROM [ITEMS] ii - LEFT JOIN [PARTS] pp on pp.ContentID=ii.ContentID and pp.FromType=@FromType - WHERE ii.[ItemID]=@ItemID - IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[tblParts]') AND OBJECTPROPERTY(id,N'IsTable') = 1) - BEGIN - SELECT @ChildDeleted = pp.[ItemID],@ParentContentID = ii.ContentID, @LastChanged = pp.LastChanged - FROM [ITEMS] ii - LEFT JOIN [tblPARTS] pp on pp.ContentID=ii.ContentID and pp.FromType=@FromType - WHERE ii.[ItemID]=@ItemID and pp.DeleteStatus > 0 - END - EXECUTE AddContent @Number, @Text, @Type, @FormatID, @Config, @DTS, @UserID, @ContentID output, @newLastChanged output - EXECUTE AddItem null, @ContentID, @DTS, @UserID , @newItemID output, @newLastChanged output - IF @ChildID is null -- No existing child - Add Parts record - BEGIN - IF @ChildDeleted is not null - BEGIN --- INSERT INTO [PartAudits] ([ContentID],[FromType],[ItemID],[DTS],[UserID],[DeleteStatus]) --- SELECT [ContentID],[FromType],[ItemID],[DTS],[UserID],[DeleteStatus] FROM [tblParts] --- WHERE ItemID = @ChildDeleted - DELETE FROM [tblParts] WHERE ItemID = @ChildDeleted - END - EXECUTE AddPart @ParentContentID, @FromType, @newItemID, @DTS, @UserID, @newLastChanged output - END - ELSE -- Update existing Parts record - BEGIN - EXECUTE UpdatePart @ParentContentID, @FromType, @newItemID, @DTS, @UserID, @LastChanged, @newLastChanged output - UPDATE [Items] SET [PreviousID]=@newItemID WHERE [ItemID]=@ChildID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@newItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TT.ToID = @ChildID OR TT.RangeID = @ChildID - -- Update transitions that pointed to @ItemID to point to @newItemID - Update TRANSITIONS - Set ToID = CASE ToID WHEN @ChildID THEN @newItemID ELSE ToID END, - RangeID = CASE RangeID WHEN @ChildID THEN @newItemID ELSE RangeID END - WHERE ToID = @ChildID OR RangeID = @ChildID - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - -- I don't expect to see any transitions that point to @ChildID. They should have changed in - -- the update above to point to @newItemID. This is here for consistency with the other insert - -- stored procedures - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@ChildID,@newItemID) OR RangeID IN(@ChildID,@newItemID)) - -- Transition Text gets updated in ItemInsertExt.cs - END - IF( @@TRANCOUNT > 0 ) COMMIT - PRINT 'Child Added ' + ltrim(str(@newItemID)) - EXECUTE GetItem @newItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addItemChild Succeeded' -ELSE PRINT 'Procedure Creation: addItemChild Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addItemSiblingAfter]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addItemSiblingAfter]; -GO -CREATE PROCEDURE [dbo].[addItemSiblingAfter] -( - @ItemID int=null, @Number nvarchar(256)=null, @Text nvarchar(MAX)=null, @FormatID int=null, @Config nvarchar(MAX)=null, - @Type int=null, @DTS datetime, @UserID nvarchar(100), @newItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @NextID int, @ContentID int, @newLastChanged timestamp, @NewType int - SELECT @NewType=ISNULL(@Type,[Type]) - FROM [ITEMS] II JOIN [CONTENTS] CC ON II.[ContentID]=CC.[ContentID] - WHERE [ItemID]=@ItemID - SELECT @NextID = [ItemID] - FROM [ITEMS] - WHERE [PreviousID]=@ItemID - EXECUTE AddContent @Number, @Text, @NewType, @FormatID, @Config, @DTS, @UserID, @ContentID output, @newLastChanged output - EXECUTE AddItem @ItemID, @ContentID, @DTS, @UserID , @newItemID output, @newLastChanged output - UPDATE [ITEMS] SET [PreviousID]=@newItemID, [DTS]=@DTS, [UserID]=@UserID where [ItemID]=@NextID -- Should be UpdateItem - -- Get a list of Transitions which need to change children of @ItemID that point to @NextID - DECLARE @NextStepTransitions TABLE - ( - [TransitionID] int PRIMARY KEY, - [FromID] [int], - [ToID] [int], - [RangeID] [int], - [TranType] [int], - [Config] [nvarchar](max) - ) - Insert into @NextStepTransitions select * from vefn_NextStepTransitions(@NextID,@ItemID) - IF (SELECT COUNT(*) from @NextStepTransitions) > 0 -- Next Step Transitions - BEGIN - -- Update all transitions in the list to point to @newItemID - Update TT - Set TT.ToID = CASE TT.ToID WHEN @NextID THEN @newItemID ELSE TT.ToID END, - TT.RangeID = CASE TT.RangeID WHEN @NextID THEN @newItemID ELSE TT.RangeID END - From TRANSITIONS TT - JOIN @NextStepTransitions NS ON NS.TransitionID = TT.TransitionID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,NS.TransitionID,NS.TranType,NS.ToID,NS.RangeID,@NextID,@newItemID) - From CONTENTS CC - JOIN @NextStepTransitions NS ON NS.FromID = CC.ContentID - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Next Step Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@newItemID) OR RangeID IN(@newItemID)) - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@NextID) OR RangeID IN(@NextID)) - -- Transition Text gets updated in ItemInsertExt.cs - IF( @@TRANCOUNT > 0 ) COMMIT - EXECUTE GetItem @newItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addItemSiblingAfter Succeeded' -ELSE PRINT 'Procedure Creation: addItemSiblingAfter Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addItemSiblingBefore]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addItemSiblingBefore]; -GO -CREATE PROCEDURE [dbo].[addItemSiblingBefore] -( - @ItemID int=null, @Number nvarchar(256)=null, @Text nvarchar(MAX)=null, @FormatID int=null, @Config nvarchar(MAX)=null, - @Type int=null, @DTS datetime, @UserID nvarchar(100), @newItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @PreviousID int, @ContentID int, @newLastChanged timestamp, @NewType int - SELECT @PreviousID = [PreviousID], @NewType=ISNULL(@Type,[Type]) - FROM [ITEMS] II - JOIN [CONTENTS] CC ON CC.[ContentID]=II.[CONTENTID] - WHERE [ItemID]=@ItemID - EXECUTE AddContent @Number, @Text, @NewType, @FormatID, @Config, @DTS, @UserID, @ContentID output, @newLastChanged output - EXECUTE AddItem @PreviousID, @ContentID, @DTS, @UserID , @newItemID output, @newLastChanged output - UPDATE [ITEMS] SET [PreviousID]=@newItemID where [ItemID]=@ItemID -- Should be UpdateItem - UPDATE [PARTS] SET [ItemID]=@newItemID where [ItemID]=@ItemID -- Should be UpdatePart - IF @PreviousID is null -- The step is replacing the first step - BEGIN - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@newItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TT.ToID = @ItemID OR TT.RangeID = @ItemID - -- Update transitions that pointed to @ItemID to point to @newItemID - Update TRANSITIONS - Set ToID = CASE ToID WHEN @ItemID THEN @newItemID ELSE ToID END, - RangeID = CASE RangeID WHEN @ItemID THEN @newItemID ELSE RangeID END - WHERE ToID = @ItemID OR RangeID = @ItemID - END - ELSE -- Check for Transitions that point to the Next Step - BEGIN - -- Get a list of Transitions which need to change children of @ItemID that point to @NextID - DECLARE @NextStepTransitions TABLE - ( - [TransitionID] int PRIMARY KEY, - [FromID] [int], - [ToID] [int], - [RangeID] [int], - [TranType] [int], - [Config] [nvarchar](max) - ) - Insert into @NextStepTransitions select * from vefn_NextStepTransitions(@ItemID,@PreviousID) - IF (SELECT COUNT(*) from @NextStepTransitions) > 0 -- Next Step Transitions - BEGIN - -- Update all transitions in the list to point to @newItemID - Update TT - Set TT.ToID = CASE TT.ToID WHEN @ItemID THEN @newItemID ELSE TT.ToID END, - TT.RangeID = CASE TT.RangeID WHEN @ItemID THEN @newItemID ELSE TT.RangeID END - From TRANSITIONS TT - JOIN @NextStepTransitions NS ON NS.TransitionID = TT.TransitionID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,NS.TransitionID,NS.TranType,NS.ToID,NS.RangeID,@ItemID,@newItemID) - From CONTENTS CC - JOIN @NextStepTransitions NS ON NS.FromID = CC.ContentID - END - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@ItemID,@newItemID) OR RangeID IN(@ItemID,@newItemID)) - -- Transition Text gets updated in ItemInsertExt.cs - IF( @@TRANCOUNT > 0 ) COMMIT - PRINT 'Sibling Added Before ' + ltrim(str(@newItemID)) - EXECUTE GetItem @newItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addItemSiblingBefore Succeeded' -ELSE PRINT 'Procedure Creation: addItemSiblingBefore Error on Creation' -GO - -/*************** May 2020 - Modifications to search queries to allow for 'ByWord'. To do this a sql prefix and suffix were added -* If search string's adjacent character is text '[^a-zA-Z]' (for example 'red' prefix is next to 'r', suffix is next to 'd') -* If search string's adjacent character is numeric '[^0-9a-zA-Z.vbpi:\\-]' (for example 10%, prefix is next to '1') -*/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixSearchStringByWord]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) -DROP FUNCTION [vefn_FixSearchStringByWord]; -GO - -/* -select .dbo.vefn_FixSearchStringByWord('0%', '[^0-9A-Z.vbpi:\\-]', '') -select .dbo.vefn_FixSearchStringByWord('step 25', '[^a-z]', '[^0-9A-Z.vbpi:\\-]') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FixSearchStringByWord](@SearchString nvarchar(MAX), @Prefix nvarchar(64), @Suffix nvarchar(64)) -RETURNS nvarchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN - -- This code adds % at the beginning and end if the beginning and end - -- of the search string if it does not have % at the beginning or end - Set @SearchString = replace(@SearchString,'[','[[]') - Set @SearchString = replace(@SearchString,'_','[_]') - Set @SearchString = replace(@SearchString,'%','[%]') - Set @SearchString = replace(@SearchString,'*','%') - Set @SearchString = replace(@SearchString,'?','_') - Set @SearchString = replace(@SearchString,'\%','*') - Set @SearchString = replace(@SearchString,'\_','?') - Set @SearchString = replace(@SearchString,'-','\u8209?') - Set @SearchString = replace(@SearchString,'\''A9','\u169?') -- copyright symbol - Set @SearchString = replace(@SearchString,'\''AE','\u174?') -- Register symbol - Set @SearchString = replace(@SearchString,'\\line ','\line ') -- newline - Set @SearchString = replace(@SearchString,'\\','\u9586?') -- use a double backslash to search for a backslash - IF(@SearchString like '[%]%') RETURN '%' + @Prefix + SubString(@SearchString,2,len(@SearchString)) -- beginning of text - IF(@SearchString like '%[%]') RETURN SubString(@SearchString, 0, len(@SearchString)-1) + @Suffix + '%' -- end of text - Set @SearchString = replace('%' + @Prefix + @SearchString + @Suffix + '%','%%','%') - RETURN @SearchString -END -GO --- Display the status -IF (@@Error = 0) PRINT 'ScalerFunction [vefn_FixSearchStringByWord] Succeeded' -ELSE PRINT 'ScalerFunction [vefn_FixSearchStringByWord] Error on Creation' -go - - - - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[vesp_SearchItemAndChildrenNewByWord]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP Procedure [dbo].[vesp_SearchItemAndChildrenNewByWord]; -GO - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -========================================================================================================== - Author: Rich Mark - Create Date: 01/01/2020 - Description: Returns all items mathcing the specified search critera, filtered by a list of specified Document Versions and Step Types - 08/20/2021 Jake Ropar: Add with (NoLock) and Option (Recompile) statements to eliminate UI locking and improve performace, also changed all - Select (*) statements to Select (1) for performace reasons - - Parameters: @DocVersionList Comma delimited list of document version IDs used to filter search results (pass '' or null to include all versions) - @StepTypeList Comma delimited list of of step types used to filter search results (pass '' or null to include all step type sections) - @SearchString Search string criteria - @CaseSensitive Indicator for Case Sensitive Search (0 = False, 1 = True) - @IncludeLinks Indicator to include Links in results (0 = False, 1 = True) - @IncludeRtfFormatting Indicator to include RTF Formatting in results (0 = False, 1 = True) - @IncludeSpecialCharacters Indicator to include Special Characters in results (0 = False, 1 = True) - @UnitPrefix Specified Unit Prefix if any - @ByWordPrefix Word Prefix for the specified search string criteria - @ByWordSuffix Word Suffix for the specified search string criteria - - - Examples: exec vesp_SearchItemAndChildrenNewByWord '194','','red',0,0,0,0,'','[^a-z]','[^a-z]'; - exec vesp_SearchItemAndChildrenNewByWord '194','','0%',0,0,0,0,'','[^0-9A-Z.vbpi:\\-]',''; - exec vesp_SearchItemAndChildrenNewByWord '194','','10%',0,0,0,0,'','[^0-9A-Z.vbpi:\\-]',''; - exec vesp_SearchItemAndChildrenNewByWord '194','','25%',0,0,0,0,'','[^0-9A-Z.vbpi:\\-]','[^0-9A-Z.vbpi:\\-]'; - exec vesp_SearchItemAndChildrenNewByWord '194','','25%',0,0,0,0,'','','[^0-9A-Z.vbpi:\\-]'; - exec vesp_SearchItemAndChildrenNewByWord '194','','25%',0,0,0,0,'','[^0-9A-Z.vbpi:\\-]',''; - exec vesp_SearchItemAndChildrenNewByWord '194','','step 25',0,0,0,1,'','[^a-zA-Z]','[^0-9a-zA-Z.vbpi:\\-]'; - exec vesp_SearchItemAndChildrenNewByWord '194','','25',0,0,0,0,'','',''; -========================================================================================================== - */ -Create Procedure [dbo].[vesp_SearchItemAndChildrenNewByWord] (@DocVersionList VarChar(Max), @StepTypeList VarChar(Max), @SearchString VarChar(Max), @CaseSensitive Int, - @IncludeLinks Int, @IncludeRtfFormatting Int, @IncludeSpecialCharacters Int, @UnitPrefix VarChar(Max), - @ByWordPrefix VarChar(64), @ByWordSuffix VarChar(64)) -With Execute As Owner -As -Begin - - Set NoCount On; - - -- Declare Local Variables - Declare @TextPrefix nVarChar(1); - Declare @TextSuffix nVarChar(1); - Declare @SearchStringx nVarChar(200); - - -- Set Default Values - Set @TextPrefix = ''; - Set @TextSuffix = ''; - - Set @SearchString = dbo.vefn_FixSearchStringByWord(@SearchString, @ByWordPrefix, @ByWordSuffix); - If (@SearchString like '[%]%') Set @TextPrefix = '~'; - If (@SearchString like '%[%]') Set @TextSuffix = '~'; - Set @SearchStringx = Replace(@SearchString,'\u8209?','-') -- [John Jenko] B2016-209: not finding dashes in Word sections (FixSearchString converts '-' to '\u8209?') - - - If (@IncludeLinks + @IncludeRtfFormatting + @IncludeSpecialCharacters = 0) - Begin - - If (@CaseSensitive = 0) - Begin - - --Select 'Case #1: No Links/RtfFormatting/SpecialCharacters & Not Case Sensitive'; - - Select z.DvPath as 'DvPath', - z.[Path] as 'Path', - z.FromType as 'FromType', - z.Ordinal as 'Ordinal', - z.ParentID as 'ParentID', - z.ItemID as 'ItemID', - z.PreviousID as 'PreviousID', - z.ContentID as 'ContentID', - z.DTS as 'DTS', - z.UserID as 'UserID', - z.ILastChanged as 'ILastChanged', - z.Number as 'Number', - z.[Text] as 'Text', - z.CType as 'Type', - z.CFormatID as 'FormatID', - z.CConfig as 'Config', - z.CDTS as 'CDTS', - z.CUserID as 'CUserID', - z.CLastChanged as 'cLastChanged', - z.pContentID as 'pContentID', - z.pDTS as 'pDTS', - z.pUserID as 'pUserID', - z.PLastChanged as 'pLastChanged', - (Select Count(1) From Annotations a with (NoLock) Where a.ItemID = z.ItemID) as 'AnnotationCount', - (Select Count(1) From DocVersions dv with (NoLock) Where dv.ItemID = z.ItemID) as 'DocVersionCount', - (Select Count(1) From Items i with (NoLock) Where i.PreviousID = z.ItemID) as 'NextCount', - (Select Count(1) From Parts p with (NoLock) Where p.ItemID = z.ItemID) as 'PartCount', - (Select Count(1) From Transitions t with (NoLock) Where t.RangeID = z.ItemID) as 'Transition_RangeIDCount', - (Select Count(1) From Transitions t with (NoLock) Where t.ToID = z.ItemID) as 'Transition_ToIDCount', - (Select Count(1) From Details d with (NoLock) Where d.ContentID = z.ContentID) as 'DetailCount', - (Select Count(1) From Entries e with (NoLock) Where e.ContentID = z.ContentID) as 'EntryCount', - (Select Count(1) From Grids g with (NoLock) Where g.ContentID = z.ContentID) as 'GridCount', - (Select Count(1) From Images i with (NoLock) Where i.ContentID = z.ContentID) as 'ImageCount', - (Select Count(1) From Items i with (NoLock) Where i.ContentID = z.ContentID) as 'ItemCount', - (Select Count(1) From Parts p with (NoLock) Where p.ContentID = z.ContentID) as 'cPartCount', - (Select Count(1) From RoUsages ru with (NoLock) Where ru.ContentID = z.ContentID) as 'RoUsageCount', - (Select Count(1) From Transitions t with (NoLock) Where t.FromID = z.ContentID) as 'TransitionCount', - (Select Count(1) From ZContents zc with (NoLock) Where zc.ContentID = z.ContentID) as 'ZContentCount' - From dbo.vefn_SiblingAndChildrenItemsNewByWord(@DocVersionList, @UnitPrefix, @SearchString, @SearchStringx, @StepTypeList, @includeLinks, @includeRtfFormatting, @includeSpecialCharacters) z - Order By z.DvPath Asc - Option (Recompile); - - End - Else - Begin - - --Select 'Case #2: No Links/RtfFormatting/SpecialCharacters & Case Sensitive'; - - Select z.DvPath as 'DvPath', - z.[Path] as 'Path', - z.FromType as 'FromType', - z.Ordinal as 'Ordinal', - z.ParentID as 'ParentID', - z.ItemID as 'ItemID', - z.PreviousID as 'PreviousID', - z.ContentID as 'ContentID', - z.DTS as 'DTS', - z.UserID as 'UserID', - z.ILastChanged as 'ILastChanged', - z.Number as 'Number', - z.[Text] as 'Text', - z.CType as 'Type', - z.CFormatID as 'FormatID', - z.CConfig as 'Config', - z.CDTS as 'CDTS', - z.CUserID as 'CUserID', - z.CLastChanged as 'cLastChanged', - z.pContentID as 'pContentID', - z.pDTS as 'pDTS', - z.pUserID as 'pUserID', - z.PLastChanged as 'pLastChanged', - (Select Count(1) From Annotations a with (NoLock) Where a.ItemID = z.ItemID) as 'AnnotationCount', - (Select Count(1) From DocVersions dv with (NoLock) Where dv.ItemID = z.ItemID) as 'DocVersionCount', - (Select Count(1) From Items i with (NoLock) Where i.PreviousID = z.ItemID) as 'NextCount', - (Select Count(1) From Parts p with (NoLock) Where p.ItemID = z.ItemID) as 'PartCount', - (Select Count(1) From Transitions t with (NoLock) Where t.RangeID = z.ItemID) as 'Transition_RangeIDCount', - (Select Count(1) From Transitions t with (NoLock) Where t.ToID = z.ItemID) as 'Transition_ToIDCount', - (Select Count(1) From Details d with (NoLock) Where d.ContentID = z.ContentID) as 'DetailCount', - (Select Count(1) From Entries e with (NoLock) Where e.ContentID = z.ContentID) as 'EntryCount', - (Select Count(1) From Grids g with (NoLock) Where g.ContentID = z.ContentID) as 'GridCount', - (Select Count(1) From Images i with (NoLock) Where i.ContentID = z.ContentID) as 'ImageCount', - (Select Count(1) From Items i with (NoLock) Where i.ContentID = z.ContentID) as 'ItemCount', - (Select Count(1) From Parts p with (NoLock) Where p.ContentID = z.ContentID) as 'cPartCount', - (Select Count(1) From RoUsages ru with (NoLock) Where ru.ContentID = z.ContentID) as 'RoUsageCount', - (Select Count(1) From Transitions t with (NoLock) Where t.FromID = z.ContentID) as 'TransitionCount', - (Select Count(1) From ZContents zc with (NoLock) Where zc.ContentID = z.ContentID) as 'ZContentCount' - From dbo.vefn_SiblingAndChildrenItemsNewByWord(@DocVersionList, @UnitPrefix, @SearchString, @SearchStringx, @StepTypeList, @includeLinks, @includeRtfFormatting, @includeSpecialCharacters) z - Where (@TextPrefix + z.Text + @TextSuffix Collate SQL_Latin1_General_CP1_CS_AS like @SearchString - or @TextPrefix + z.Text + @TextSuffix Collate SQL_Latin1_General_CP1_CS_AS like @SearchStringx - or Replace(z.DocAscii,nChar(176),'\''B0') Collate SQL_Latin1_General_CP1_CS_AS like @SearchString - or Replace(z.DocAscii,nChar(176),'\''B0') Collate SQL_Latin1_General_CP1_CS_AS like @SearchStringx) - Order By z.DvPath Asc - Option (Recompile); - - End - - End -- no links - - Else - - Begin -- include linked text - - If (@CaseSensitive = 0) - Begin - - --Select 'Case #3: Include Links/RtfFormatting/SpecialCharacters & Not Case Sensitive'; - - Select z.DvPath as 'DvPath', - z.[Path] as 'Path', - z.FromType as 'FromType', - z.Ordinal as 'Ordinal', - z.ParentID as 'ParentID', - z.ItemID as 'ItemID', - z.PreviousID as 'PreviousID', - z.ContentID as 'ContentID', - z.DTS as 'DTS', - z.UserID as 'UserID', - z.ILastChanged as 'ILastChanged', - z.Number as 'Number', - z.[Text] as 'Text', - z.CType as 'Type', - z.CFormatID as 'FormatID', - z.CConfig as 'Config', - z.CDTS as 'CDTS', - z.CUserID as 'CUserID', - z.CLastChanged as 'cLastChanged', - z.pContentID as 'pContentID', - z.pDTS as 'pDTS', - z.pUserID as 'pUserID', - z.PLastChanged as 'pLastChanged', - (Select Count(1) From Annotations a with (NoLock) Where a.ItemID = z.ItemID) as 'AnnotationCount', - (Select Count(1) From DocVersions dv with (NoLock) Where dv.ItemID = z.ItemID) as 'DocVersionCount', - (Select Count(1) From Items i with (NoLock) Where i.PreviousID = z.ItemID) as 'NextCount', - (Select Count(1) From Parts p with (NoLock) Where p.ItemID = z.ItemID) as 'PartCount', - (Select Count(1) From Transitions t with (NoLock) Where t.RangeID = z.ItemID) as 'Transition_RangeIDCount', - (Select Count(1) From Transitions t with (NoLock) Where t.ToID = z.ItemID) as 'Transition_ToIDCount', - (Select Count(1) From Details d with (NoLock) Where d.ContentID = z.ContentID) as 'DetailCount', - (Select Count(1) From Entries e with (NoLock) Where e.ContentID = z.ContentID) as 'EntryCount', - (Select Count(1) From Grids g with (NoLock) Where g.ContentID = z.ContentID) as 'GridCount', - (Select Count(1) From Images i with (NoLock) Where i.ContentID = z.ContentID) as 'ImageCount', - (Select Count(1) From Items i with (NoLock) Where i.ContentID = z.ContentID) as 'ItemCount', - (Select Count(1) From Parts p with (NoLock) Where p.ContentID = z.ContentID) as 'cPartCount', - (Select Count(1) From RoUsages ru with (NoLock) Where ru.ContentID = z.ContentID) as 'RoUsageCount', - (Select Count(1) From Transitions t with (NoLock) Where t.FromID = z.ContentID) as 'TransitionCount', - (Select Count(1) From ZContents zc with (NoLock) Where zc.ContentID = z.ContentID) as 'ZContentCount' - From dbo.vefn_SiblingAndChildrenItemsNewByWord(@DocVersionList, @UnitPrefix, @SearchString, @SearchStringx, @StepTypeList, @includeLinks, @includeRtfFormatting, @includeSpecialCharacters) z - Where (dbo.vefn_RemoveExtraText(@TextPrefix + z.Text + @TextSuffix, @IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) Collate SQL_Latin1_General_CP1_CI_AS like @SearchString - Or dbo.vefn_RemoveExtraText(@TextPrefix + z.Text + @TextSuffix, @IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) Collate SQL_Latin1_General_CP1_CI_AS like @SearchStringx - Or Replace(z.DocAscii, nChar(176), '\''B0') Collate SQL_Latin1_General_CP1_CI_AS like @SearchString - Or Replace(z.DocAscii, nChar(176), '\''B0') Collate SQL_Latin1_General_CP1_CI_AS like @SearchStringx) - Order By z.DvPath Asc - Option (Recompile); - - End - - Else -- case sensitive - - Begin - - --Select 'Case #4: Include Links/RtfFormatting/SpecialCharacters & Case Sensitive'; - - Select z.DvPath as 'DvPath', - z.[Path] as 'Path', - z.FromType as 'FromType', - z.Ordinal as 'Ordinal', - z.ParentID as 'ParentID', - z.ItemID as 'ItemID', - z.PreviousID as 'PreviousID', - z.ContentID as 'ContentID', - z.DTS as 'DTS', - z.UserID as 'UserID', - z.ILastChanged as 'ILastChanged', - z.Number as 'Number', - z.[Text] as 'Text', - z.CType as 'Type', - z.CFormatID as 'FormatID', - z.CConfig as 'Config', - z.CDTS as 'CDTS', - z.CUserID as 'CUserID', - z.CLastChanged as 'cLastChanged', - z.pContentID as 'pContentID', - z.pDTS as 'pDTS', - z.pUserID as 'pUserID', - z.PLastChanged as 'pLastChanged', - (Select Count(1) From Annotations a with (NoLock) Where a.ItemID = z.ItemID) as 'AnnotationCount', - (Select Count(1) From DocVersions dv with (NoLock) Where dv.ItemID = z.ItemID) as 'DocVersionCount', - (Select Count(1) From Items i with (NoLock) Where i.PreviousID = z.ItemID) as 'NextCount', - (Select Count(1) From Parts p with (NoLock) Where p.ItemID = z.ItemID) as 'PartCount', - (Select Count(1) From Transitions t with (NoLock) Where t.RangeID = z.ItemID) as 'Transition_RangeIDCount', - (Select Count(1) From Transitions t with (NoLock) Where t.ToID = z.ItemID) as 'Transition_ToIDCount', - (Select Count(1) From Details d with (NoLock) Where d.ContentID = z.ContentID) as 'DetailCount', - (Select Count(1) From Entries e with (NoLock) Where e.ContentID = z.ContentID) as 'EntryCount', - (Select Count(1) From Grids g with (NoLock) Where g.ContentID = z.ContentID) as 'GridCount', - (Select Count(1) From Images i with (NoLock) Where i.ContentID = z.ContentID) as 'ImageCount', - (Select Count(1) From Items i with (NoLock) Where i.ContentID = z.ContentID) as 'ItemCount', - (Select Count(1) From Parts p with (NoLock) Where p.ContentID = z.ContentID) as 'cPartCount', - (Select Count(1) From RoUsages ru with (NoLock) Where ru.ContentID = z.ContentID) as 'RoUsageCount', - (Select Count(1) From Transitions t with (NoLock) Where t.FromID = z.ContentID) as 'TransitionCount', - (Select Count(1) From ZContents zc with (NoLock) Where zc.ContentID = z.ContentID) as 'ZContentCount' - From dbo.vefn_SiblingAndChildrenItemsNewByWord(@DocVersionList, @UnitPrefix, @SearchString, @SearchStringx, @StepTypeList, @includeLinks, @includeRtfFormatting, @includeSpecialCharacters) z - Where (dbo.vefn_RemoveExtraText(Replace(@TextPrefix + z.Text + @TextSuffix,'\''b0', '\''B0'), @IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) Collate SQL_Latin1_General_CP1_CS_AS like Replace(@SearchString,'\''b0', '\''B0') - Or dbo.vefn_RemoveExtraText(Replace(@TextPrefix + z.Text + @TextSuffix,'\''b0', '\''B0'), @IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) Collate SQL_Latin1_General_CP1_CS_AS like Replace(@SearchStringx,'\''b0', '\''B0') - Or Replace(z.DocAscii,nChar(176),'\''B0') Collate SQL_Latin1_General_CP1_CS_AS like @SearchString - Or Replace(z.DocAscii,nChar(176),'\''B0') Collate SQL_Latin1_General_CP1_CS_AS like @SearchStringx) - Order By z.DvPath Asc - Option (Recompile); - - End - - End -- include links - -End -Go - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchItemAndChildrenNewByWord Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchItemAndChildrenNewByWord Error on Creation' -GO - - - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DeleteItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [DeleteItemAndChildren]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[DeleteItemAndChildren] -( - @ItemID int, - @UserID AS VARCHAR(100) -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - declare @DeleteID int - DECLARE @ContentID AS INT - DECLARE @NextItemID AS INT - DECLARE @PreviousItemID AS INT - DECLARE @ExternalChildCount AS INT - DECLARE @ExternalCount AS INT - DECLARE @ItemType AS INT - DECLARE @Path AS VARCHAR(MAX) - DECLARE @Children AS TABLE - ( - ItemID INT PRIMARY KEY, - ContentID INT - ) - DECLARE @ExternalTrans TABLE - ( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL - ) - SET NOCOUNT ON - SELECT @ContentID = ContentID, @PreviousItemID = PreviousID FROM Items WHERE ItemID = @ItemID - SELECT @NextItemID = ItemID FROM Items WHERE PreviousID = @ItemID - SELECT @ItemType = Type FROM Contents Where ContentID = @ContentID - SET @Path = [dbo].[ve_GetShortPath](@ItemID) - - SELECT @ExternalCount = count(*) FROM vefn_FindExternalTransitions(@ItemID) where rangeid = toid or toid = @ItemID - IF @ExternalCount > 0 AND @NextItemID is null - BEGIN - RAISERROR ('###Cannot Delete Item###Step %d has External Transitions and has no next step - (%s)',16,1,@ItemID,@Path) - RETURN - END - - IF @ExternalCount > 0 AND @ItemType < 10000 - BEGIN - RAISERROR ('###Cannot Delete Item###Procedure %d has External Transitions to Procedure - (%s)',16,1,@ItemID,@Path) - RETURN - END - IF @ExternalCount > 0 AND @ItemType < 20000 -- B2020-091 (was not checking for sections) - BEGIN - RAISERROR ('###Cannot Delete Item###Procedure %d has External Transitions to Section - (%s)',16,1,@ItemID,@Path) - RETURN - END - SELECT @ExternalChildCount = count(*) FROM vefn_FindExternalChildTransitions(@ItemID) - - -- Check to see if External Transitions point to the current item - IF @ExternalChildCount > 0 - BEGIN - RAISERROR ('###Cannot Delete Item###Step %d has External Transitions to it''s children - (%s)',16,1,@ItemID,@Path) - RETURN - END - --deletelog - INSERT INTO DeleteLog (UserID) values (@UserID) - Select @DeleteID = SCOPE_IDENTITY() - --end deletelog - -- Get list of Children - INSERT INTO @Children SELECT * FROM vefn_ChildItems(@ItemID) - -- UPDATE PreviousID in Items WHERE ItemID = @NextItemID - UPDATE Items SET PreviousID = @PreviousItemID WHERE ItemID=@NextItemID - -- UPDATE DocVersion - UPDATE DocVersions SET ItemID=@NextItemID where ItemID = @ItemID - -- UPDATE Parts - IF @NextItemID is not NULL -- Remove Part Record - BEGIN - UPDATE PARTS SET ItemID = @NextItemID where ItemID=@ItemID - END - ELSE - BEGIN - DELETE FROM Parts WHERE ItemID=@ItemID - END - -- Get external transitions that point to the specified Item - -- These will need to be adjusted to point to the next Item. - INSERT INTO @ExternalTrans SELECT * FROM vefn_FindExternalTransitions(@ItemID); - DECLARE @typeID int -- AnnotationType - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add 'Verification Required' annotions for transtions that point to different step - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where ItemID in (SELECT FromItemID FROM @ExternalTrans) - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@NextItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID != @ItemID or RangeID = ToID) - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@PreviousItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID = @ItemID and RangeID != ToID) - -- Update transitions that point to @ItemID to Point to @NextItemID - UPDATE TRANSITIONS - SET ToID = case when ToID = @ItemID then @NextItemID else ToID END, - RangeID = case when RangeID = @ItemID then @NextItemID else RangeID END - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID != @ItemID or RangeID = ToID) - UPDATE TRANSITIONS - SET ToID = case when ToID = @ItemID then @NextItemID else ToID END, - RangeID = case when RangeID = @ItemID then @PreviousItemID else RangeID END - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID = @ItemID and RangeID != ToID) - -- Delete Annotations for @ItemID and children - DELETE from Annotations where ItemID in(Select ItemID from @Children) - -- Delete Details associated with @ContentID and children - DELETE from Details where ContentID in(Select ContentID from @Children) - -- Delete Grids associated with @ContentID and children - DELETE from Grids where ContentID in(Select ContentID from @Children) - -- Delete Images associated with @ContentID and children - DELETE from Images where ContentID in(Select ContentID from @Children) - -- Delete Entries associated with @ContentID and children - DELETE from Entries where ContentID in(Select ContentID from @Children) - -- Delete ROUsages associated with @ContentID and children - DELETE from RoUsages where ContentID in(Select ContentID from @Children) - -- Delete ZTransitions records associated with @ContentID and children - DELETE FROM ZTransitions where TransitionID - in(SELECT TransitionID from Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID) - -- Delete Transitions associated with @ContentID and children - DELETE FROM Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID - -- Delete Parts associated with @ContentID and children - DELETE from Parts where ContentID in(Select ContentID from @Children) - -- Delete ZContents associated with @ContentID and children - DELETE from ZContents where ContentID in(Select ContentID from @Children) - -- Disconnect Items from Each Other - DELETE from Items where ItemID in(Select ItemID from @Children) and PreviousID Is Not Null - -- Disconnect Items to be deleted from each other - Update Items set PreviousID = null where ItemID in (Select ItemID from @Children) and PreviousID Is Not Null - -- Delete Item Records - DELETE from Items where ItemID in(Select ItemID from @Children) - -- Remove Previously deleted transitions - DELETE from tblTransitions where deletestatus = -1 and FromID in(SELECT ContentID FROM @Children) - -- Remove Previously deleted rousages - DELETE from tblrousages where deletestatus = -1 and contentID in(SELECT ContentID FROM @Children) - -- DELETE Contents - DELETE from Contents where ContentID in(Select ContentID from @Children) - --purge deletelog - DELETE from DeleteLog where DeleteID = @DeleteID - --end purge deletelog - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH - GO -IF (@@Error = 0) PRINT 'Procedure Creation: [DeleteItemAndChildren] Succeeded' -ELSE PRINT 'Procedure Creation: [DeleteItemAndChildren] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionCanCheckOutItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [vesp_SessionCanCheckOutItem]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -exec dbo.vesp_SessionCanCheckOutItem 1,2 -exec dbo.vesp_SessionCanCheckOutItem 21,3 -*/ -CREATE PROCEDURE [dbo].[vesp_SessionCanCheckOutItem] -( - @ObjectID int, - @ObjectType int -) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @CheckOuts TABLE - ( - SessionID int - ) - --look to see if anyone else has a session. if they do, then cannot check out - DECLARE @sCount int - SELECT @sCount = count(*) FROM Sessions - IF @ObjectType = 4 BEGIN - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID], - (select convert(bigint,max(lastchanged)) from contents) LastContentChange - FROM [Sessions] - WHERE DTSEnd IS NULL - END - ELSE - BEGIN - DECLARE @ObjectAndEnhancedIDs Table - ( - ObjectID int - ) - IF @ObjectType = 0 BEGIN - INSERT INTO @ObjectAndEnhancedIDs - select ItemID from vefn_GetEnhancedProcedures(@ObjectID) - END - ELSE IF @ObjectType = 2 BEGIN - INSERT INTO @ObjectAndEnhancedIDs - select VersionID from vefn_GetEnhancedDocVersions(@ObjectID) - INSERT INTO @ObjectAndEnhancedIDs -- B2020-094: Check current docversion - select VersionID from DocVersions where VersionId = @ObjectID - END - ELSE IF @ObjectType = 3 BEGIN - INSERT INTO @ObjectAndEnhancedIDs - select FolderID from vefn_GetEnhancedFolders(@ObjectID) - INSERT INTO @ObjectAndEnhancedIDs -- B2020-094: Check current folder - select FolderID from Folders where FolderID = @ObjectID - END - ELSE BEGIN - INSERT INTO @ObjectAndEnhancedIDs select @ObjectID - END - INSERT INTO @CheckOuts SELECT DISTINCT SessionID FROM Owners - WHERE OwnerItemID in (select ObjectID from @ObjectAndEnhancedIDs) AND OwnerType = @ObjectType - IF @ObjectType = 2 - BEGIN - with ItemZ (VersionID,ItemID,PreviousID,SessionID) - as( - --> Procedure Owners - select null,II.ItemID, PreviousID, SessionID - from Owners OO - Join Items II on OO.OwnerItemID= II.ItemID - Where OO.OwnerType=0 - UNION ALL --> Document Owners - select null,II.ItemID, PreviousID, SessionID - from Owners OO - Join Entries EE ON OO.OwnerItemID = EE.DocID - Join Items II on EE.ContentID= II.ContentID - Where OO.OwnerType=1 - UNION ALL --> Previous Owners - Select null, ii.ItemID, ii.PreviousID,ZZ.SessionID From ItemZ ZZ - Join Items II ON II.ItemID = ZZ.PreviousID - Where ZZ.VersionID IS NULL and ZZ.PreviousID IS NOT NULL - UNION ALL -- Parts Owners - Select null, II.ItemID, II.PreviousID, ZZ.SessionID - from ItemZ ZZ - Join Parts PP ON PP.ItemID = ZZ.ItemID - Join Items II ON II.ContentID = PP.ContentID - Where ZZ.VersionID IS NULL - UNION ALL -- Version Owners - Select DV.VersionID,null,null,ZZ.SessionID From ItemZ ZZ - Join DocVersions DV ON ZZ.ItemID = DV.ItemID - Where ZZ.VersionID IS NULL AND ZZ.PreviousID IS NULL - ) - --Select Distinct 'Phase 2b' Result, * from Itemz - INSERT INTO @CheckOuts - Select DIstinct SessionID from ItemZ - where VersionID in(select ObjectID FROM @ObjectAndEnhancedIDs) - OPTION (MAXRECURSION 10000) -- B2017-144 Crash on Maximum Recursion - END - --look to see if object type is folder that no part of folder passed is checked out - IF @ObjectType = 3 BEGIN - with ItemZ (VersionID,ItemID,PreviousID,SessionID) - as( - --> Procedure Owners - select null,II.ItemID, PreviousID, SessionID - from Owners OO - Join Items II on OO.OwnerItemID= II.ItemID - Where OO.OwnerType=0 - UNION ALL --> Document Owners - select null,II.ItemID, PreviousID, SessionID - from Owners OO - Join Entries EE ON OO.OwnerItemID = EE.DocID - Join Items II on EE.ContentID= II.ContentID - Where OO.OwnerType=1 - UNION ALL --> Previous Owners - Select null, ii.ItemID, ii.PreviousID,ZZ.SessionID From ItemZ ZZ - Join Items II ON II.ItemID = ZZ.PreviousID - Where ZZ.VersionID IS NULL and ZZ.PreviousID IS NOT NULL - UNION ALL -- Parts Owners - Select null, II.ItemID, II.PreviousID, ZZ.SessionID - from ItemZ ZZ - Join Parts PP ON PP.ItemID = ZZ.ItemID - Join Items II ON II.ContentID = PP.ContentID - Where ZZ.VersionID IS NULL - UNION ALL -- Version Owners - Select DV.VersionID,null,null,ZZ.SessionID From ItemZ ZZ - Join DocVersions DV ON ZZ.ItemID = DV.ItemID - Where ZZ.VersionID IS NULL AND ZZ.PreviousID IS NULL - ) - --Select Distinct 'Phase 2b' Result, * from Itemz - INSERT INTO @CheckOuts - Select DIstinct SessionID from ItemZ - where VersionID in(select ObjectID FROM @ObjectAndEnhancedIDs) - OPTION (MAXRECURSION 10000) -- B2017-144 Crash on Maximum Recursion - END - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID], - (select convert(bigint,max(lastchanged)) from contents) LastContentChange - FROM [Sessions] - WHERE [SessionID] IN (SELECT SessionID FROM @CheckOuts) - END -END -GO -IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_SessionCanCheckOutItem] Succeeded' -ELSE PRINT 'Procedure Creation: [vesp_SessionCanCheckOutItem] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CheckAllXML]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) -DROP FUNCTION [vefn_CheckAllXML]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2021 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_CheckAllXML](@DocVersionID int) -returns xml -begin ---temp table for sibling itemid - declare @tItems table (ItemID int) - insert into @tItems - select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0) ---temp table for max checkid - declare @tChecks table (CheckID int) - insert into @tChecks - select max(cc.checkid) checkid from checks cc - inner join stages ss on cc.stageid = ss.stageid - inner join revisions rr on cc.revisionid = rr.revisionid - inner join @tItems ii on rr.itemid = ii.itemid -- B2021-025: get only items in procedures in this docversion - where ss.isapproved = 1 group by rr.itemid ---temp table for multi valued roids - declare @mvROIDS table (ROID varchar(max)) - insert into @mvROIDS - select roid from (select distinct r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue - from checks cc join @tchecks tc on cc.checkid = tc.checkid cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1)) t1 group by roid having count(*) > 1 ---temp table for multi valued transitionids - declare @mvTransitions table (TransitionID int) - insert into @mvTransitions - select transitionid from (select distinct r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue - from checks cc cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1)) t1 group by transitionid having count(*) > 1 ---temp table for multi valued docids - declare @mvLibDocs table (DocID int) - insert into @mvLibDocs - select docid from (select distinct r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate - from checks cc cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1)) t1 group by docid having count(*) > 1 ---temp table for roids - declare @tROIDS table (ItemID int,ROID varchar(max),ROValue varchar(max),CheckID int) - insert into @tROIDS - select rr.itemid,r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue, cc.checkid - from checks cc inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1) ---temp table for transitions - declare @tTransitions table (ItemID int,TransitionID int,TransitionValue varchar(max),CheckID int) - insert into @tTransitions - select rr.itemid,r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue,cc.checkid - from checks cc inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1) ---temp table for libdocs - declare @tLibDocs table (ItemID int, DocID int, DocDate datetime,CheckID int) - insert into @tLibDocs - select rr.itemid,r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate,cc.checkid - from checks cc inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1) - ---get all inconsitencies accross set - declare @ChkXML xml - set @ChkXML = - ( - select - (--ro inconsistencies accross set - select ROCheck.ItemID,ROCheck.ROID,ROCheck.ROValue from @tROIDS ROCheck - inner join @tChecks tc on ROCheck.checkid = tc.checkid - inner join @tItems ti on ROCheck.itemid = ti.itemid - inner join @mvROIDS mv on ROCheck.roid = mv.roid - order by ROCheck.itemid - for xml auto,root('ROChecks'),type - ), - (--transition inconsistencies accross set - select TransitionCheck.ItemID,TransitionCheck.TransitionID,TransitionCheck.TransitionValue from @tTransitions TransitionCheck - inner join @tChecks tc on TransitionCheck.checkid = tc.checkid - inner join @tItems ti on TransitionCheck.itemid = ti.itemid - inner join @mvTransitions mv on TransitionCheck.TransitionID = mv.TransitionID - order by TransitionCheck.itemid - for xml auto,root('TransitionChecks'),type - ), - (--libdoc inconsistencies accross set - select LibDocCheck.ItemID,LibDocCheck.DocID,LibDocCheck.DocDate from @tLibDocs LibDocCheck - inner join @tChecks tc on LibDocCheck.checkid = tc.checkid - inner join @tItems ti on LibDocCheck.itemid = ti.itemid - inner join @mvLibDocs mv on LibDocCheck.docid = mv.docid - order by LibDocCheck.itemid - for xml auto,root('LibDocChecks'),type - ) - for xml path(''),ROOT ('ConsistencyChecks'),type - ) - return @ChkXML -end -GO -IF (@@Error = 0) PRINT 'ScalarFunction Creation: [vefn_CheckAllXML] Succeeded' -ELSE PRINT 'ScalarFunction Creation: [vefn_CheckAllXML] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsChronologyByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [getContentAuditsChronologyByItemID]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2021 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsChronologyByItemID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin - select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) - order by OrdinalPath, contentid,auditid -- B2021-031: Grouping/ordering in Chronology Report not always correct --- select distinct [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end -GO -IF (@@Error = 0) PRINT 'Procedure Creation: [getContentAuditsChronologyByItemID] Succeeded' -ELSE PRINT 'Procedure Creation: [getContentAuditsChronologyByItemID] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChronologyReport]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChronologyReport]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2021 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_ChronologyReport](@ProcItemID int, @DTS datetime) -returns @Report table -( -src int, -AuditID bigint, -ContentID int, -Number nvarchar(512), -Text nvarchar(max), -Type int, -FormatID int, -Config nvarchar(max), -DTS datetime, -UserID nvarchar(200), -DeleteStatus int, -ActionDTS datetime, -ItemDTS datetime, -LastAuditID int, -DeletedAuditID int -) -WITH EXECUTE AS OWNER -AS -BEGIN ---added rhm/jcb 20121218i -declare @tmpTable table -( - icontentid int primary key -) -insert into @tmpTable select icontentid from vefn_tblchilditems(@ProcItemID,@ProcItemID,1) ---added jcb 20111122 ---declare @dts datetime ---set @dts = (select dts from items where itemid = @ProcItemID ) ---set @dts = (SELECT .[dbo].[vefn_GetPreviousRevisionDTSByItemID] (@ProcItemID)) ---end added jcb 20111122 - insert into @Report - SELECT -1 src, - [AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid - where Number is not null ---added jcb 20111028_1827 -and ca.contentid != (select contentid from items where itemid = @procitemid) -and ca.contentid in (select icontentid from @tmpTable) ---end added jcb 20111028_1827 ---added jcb 20111122 ---and ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > (select dts from items where itemid = @ProcItemID )) -and ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > @dts) ---and ca.dts > (select dts from items where itemid = @ProcItemID ) -and ca.dts > @dts ---end added jcb 20111122 --- UNION --- SELECT ---2 src, --- cast(ident_current('contentaudits') + 1 as bigint) auditid ----- (select max(auditid) + 1 from contentaudits) [AuditID] ----- 0 [AuditID] --- ,ca.[ContentID] --- ,[Number] --- ,[Text] --- ,[Type] --- ,[FormatID] --- ,[Config] --- ,ca.[DTS] cadts --- ,ca.[UserID] --- ,ca.[DeleteStatus] --- ,ActionDTS --- ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS ---,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID ---,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID --- FROM tblContents ca ----- inner join tblitems ti on ca.contentid = ti.contentid ---WHERE ca.DeleteStatus = 0 AND -----added jcb 20111028_1827 ---ca.contentid != (select contentid from items where itemid = @procitemid) and -----end added jcb 20111028_1827 -----ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > (select dts from items where itemid = @ProcItemID )) -----added jcb 20111122 -----ca.ContentID in (SELECT [ContentID] FROM Contents where dts > (select dts from items where itemid = @ProcItemID )) ---ca.ContentID in (SELECT [ContentID] FROM Contents where dts > @dts) -----end added jcb 20111122 -----order by ca.DTS,ActionDTS - UNION - SELECT -3 src, - cast(ident_current('contentaudits') + 1 as bigint) auditid --- (select max(auditid) + 1 from contentaudits) [AuditID] --- 0 [AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM tblContents ca --- inner join tblitems ti on ca.contentid = ti.contentid -WHERE ca.DeleteStatus = 0 --AND ---added jcb 20111028_1827 ---ca.contentid != (select contentid from items where itemid = @procitemid) -- B2020-156: Procedure not listed in change reports -and ca.contentid in (select icontentid from @tmpTable) ---end added jcb 20111028_1827 ---added jcb 20111122 ---ca.dts > (select dts from items where itemid = @ProcItemID ) -and (ca.dts > @dts or ca.actiondts > @dts) ---end added jcb 20111122 - UNION - SELECT distinct -5 src, --- cast(ident_current('contentaudits') + 1 as bigint) auditid --- (select max(auditid) + 1 from contentaudits) [AuditID] - ca.[AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid -WHERE ca.DeleteStatus > 0 ---added jcb 20111028_1827 - --ca.contentid != (select contentid from items where itemid = @procitemid) and ---end added jcb 20111028_1827 ---added jcb 20111122 ---ca.dts > (select dts from items where itemid = @ProcItemID ) -and ca.contentid in (select icontentid from @tmpTable) -and (ca.dts > @dts or ca.actiondts > @dts) ---end added jcb 20111122 -order by ca.DTS,ActionDTS - - insert into @Report - SELECT -4 src, - ca.[AuditID] - ,ca.[ContentID] - ,ca.[Number] - ,ca.[Text] - ,ca.[Type] - ,ca.[FormatID] - ,ca.[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ca.ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid - inner join @Report rpt on ca.contentid = rpt.contentid and ca.auditid = rpt.lastauditid -where ca.auditid not in (select auditid from @report) -and rpt.lastauditid is not null -and ca.contentid in (select icontentid from @tmpTable) - return -end -go -IF (@@Error = 0) PRINT 'TableFunction [vefn_ChronologyReport] Succeeded' -ELSE PRINT 'TableFunction [vefn_ChronologyReport] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CheckAllXML]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) -DROP FUNCTION [vefn_CheckAllXML]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2021 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_CheckAllXML](@DocVersionID int) -returns xml -begin ---temp table for sibling itemid - declare @tItems table (ItemID int) - insert into @tItems - select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0) ---temp table for max checkid - declare @tChecks table (CheckID int) - insert into @tChecks - select max(cc.checkid) checkid from checks cc - inner join stages ss on cc.stageid = ss.stageid - inner join revisions rr on cc.revisionid = rr.revisionid - inner join @tItems ii on rr.itemid = ii.itemid -- B2021-025: get only items in procedures in this docversion - where ss.isapproved = 1 group by rr.itemid ---temp table for multi valued roids - declare @mvROIDS table (ROID varchar(max)) - insert into @mvROIDS - select roid from (select distinct r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue - from checks cc join @tchecks tc on cc.checkid = tc.checkid cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1)) t1 group by roid having count(*) > 1 ---temp table for multi valued transitionids - declare @mvTransitions table (TransitionID int) - insert into @mvTransitions - select transitionid from (select distinct r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue - from checks cc cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1) - join @tChecks tc on tc.CheckID=cc.CheckID -- B2021-037 transition part of approval inconsistencies report - ) t1 group by transitionid having count(*) > 1 ---temp table for multi valued docids - declare @mvLibDocs table (DocID int) - insert into @mvLibDocs - select docid from (select distinct r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate - from checks cc cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1)) t1 group by docid having count(*) > 1 ---temp table for roids - declare @tROIDS table (ItemID int,ROID varchar(max),ROValue varchar(max),CheckID int) - insert into @tROIDS - select rr.itemid,r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue, cc.checkid - from checks cc inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1) ---temp table for transitions - declare @tTransitions table (ItemID int,TransitionID int,TransitionValue varchar(max),CheckID int) - insert into @tTransitions - select rr.itemid,r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue,cc.checkid - from checks cc inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1) ---temp table for libdocs - declare @tLibDocs table (ItemID int, DocID int, DocDate datetime,CheckID int) - insert into @tLibDocs - select rr.itemid,r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate,cc.checkid - from checks cc inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1) - ---get all inconsitencies accross set - declare @ChkXML xml - set @ChkXML = - ( - select - (--ro inconsistencies accross set - select ROCheck.ItemID,ROCheck.ROID,ROCheck.ROValue from @tROIDS ROCheck - inner join @tChecks tc on ROCheck.checkid = tc.checkid - inner join @tItems ti on ROCheck.itemid = ti.itemid - inner join @mvROIDS mv on ROCheck.roid = mv.roid - order by ROCheck.itemid - for xml auto,root('ROChecks'),type - ), - (--transition inconsistencies accross set - select TransitionCheck.ItemID,TransitionCheck.TransitionID,TransitionCheck.TransitionValue from @tTransitions TransitionCheck - inner join @tChecks tc on TransitionCheck.checkid = tc.checkid - inner join @tItems ti on TransitionCheck.itemid = ti.itemid - inner join @mvTransitions mv on TransitionCheck.TransitionID = mv.TransitionID - order by TransitionCheck.itemid - for xml auto,root('TransitionChecks'),type - ), - (--libdoc inconsistencies accross set - select LibDocCheck.ItemID,LibDocCheck.DocID,LibDocCheck.DocDate from @tLibDocs LibDocCheck - inner join @tChecks tc on LibDocCheck.checkid = tc.checkid - inner join @tItems ti on LibDocCheck.itemid = ti.itemid - inner join @mvLibDocs mv on LibDocCheck.docid = mv.docid - order by LibDocCheck.itemid - for xml auto,root('LibDocChecks'),type - ) - for xml path(''),ROOT ('ConsistencyChecks'),type - ) - return @ChkXML -end -GO -IF (@@Error = 0) PRINT 'ScalarFunction Creation: [vefn_CheckAllXML] Succeeded' -ELSE PRINT 'ScalarFunction Creation: [vefn_CheckAllXML] Error on Creation' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAssociationsByVersionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [getAssociationsByVersionID]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2022 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAssociationsByVersionID] -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS -begin - SELECT - [Associations].[AssociationID], - [Associations].[VersionID], - [Associations].[ROFstID], - [Associations].[Config], - [Associations].[DTS], - [Associations].[UserID], - [Associations].[LastChanged] - -- B2022-010 - -- the following was slowing down getting associations - -- which slowed down opening Search and any other time we got this information - -- note that the ROFst information is not needed - --, - --[ROFsts].[RODbID] [ROFst_RODbID], - --[ROFsts].[ROLookup] [ROFst_ROLookup], - --[ROFsts].[Config] [ROFst_Config], - --[ROFsts].[DTS] [ROFst_DTS], - --[ROFsts].[UserID] [ROFst_UserID] - FROM [Associations] - JOIN [ROFsts] ON - [ROFsts].[ROFstID]=[Associations].[ROFstID] - WHERE - [Associations].[VersionID]=@VersionID - - RETURN -end -GO -IF (@@Error = 0) PRINT 'Procedure Creation: [getAssociationsByVersionID] Succeeded' -ELSE PRINT 'Procedure Creation: [getAssociationsByVersionID] Error on Creation' -GO - - - - -If Exists(Select * From sys.views Where Name = N'vwSysInfo_IndexFragmentation') - Drop View [dbo].[vwSysInfo_IndexFragmentation]; -Go - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -========================================================================================================== - Author: Jake Ropar - Create Date: 08/23/2021 - Description: (System Info) Master View for Table Index Fragmentation -========================================================================================================== -*/ -Create View [dbo].[vwSysInfo_IndexFragmentation] -As - - Select s.[name] as 'SchemaName', - t.[name] as 'TableName', - i.[name] as 'IndexName', - i.is_primary_key as 'IsPrimaryKey', - i.fill_factor as 'FillFactor', - ips.[avg_fragmentation_in_percent] as 'AvgFragmentation', - ips.[page_count] as 'PageCount', - ips.index_level as 'IndexLevel', - ips.index_depth as 'IndexDepth', - Case When (ips.[avg_fragmentation_in_percent] > 30) Then 'Rebuild' - When (ips.[avg_fragmentation_in_percent] > 5) Then 'Reorganize' - Else 'None' - End as 'SuggestedAction' - From sys.[dm_db_index_physical_stats] (DB_ID(), NULL, NULL, NULL, NULL) as ips - inner join sys.[tables] t With (NoLock) on t.[object_id] = ips.[object_id] - inner join sys.[schemas] s With (NoLock) on t.[schema_id] = s.[schema_id] - inner join sys.[indexes] i With (NoLock) on i.[object_id] = ips.[object_id] And i.[index_id] = ips.[index_id] - Where ips.[database_id] = DB_ID() - and not i.[name] is null; - -Go - -IF (@@Error = 0) PRINT 'View Creation: [vwSysInfo_IndexFragmentation] Succeeded' -ELSE PRINT 'View Creation: [vwSysInfo_IndexFragmentation] Error on Creation' -GO - - - -If Exists(Select * From sys.views Where Name = N'vwSysInfo_UserTables') - Drop View [dbo].[vwSysInfo_UserTables]; -Go - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -========================================================================================================== - Author: Jake Ropar - Create Date: 08/23/2021 - Description: (System Info) Master View for User Tables with Columns -========================================================================================================== -*/ -Create View [dbo].[vwSysInfo_UserTables] -As - - Select OBJECT_SCHEMA_NAME(t.[object_id],DB_ID()) as 'SchemaName', - t.[name] as 'TableName', - ac.[name] as 'ColumnName', - ac.[column_id]as 'ColumnOrder', - ty.[name] as 'DataType', - ac.[max_length] as 'MaxLength', - ac.[precision] as 'Precision', - ac.[scale] as 'Scale', - ac.[is_nullable] as 'IsNullable', - ac.[is_ansi_padded] as 'IsAnsiPadded', - ac.[is_identity] as 'IsIdentity', - object_definition(ac.[default_object_id]) as 'DefaultValue' - From sys.[tables] t With (NoLock) - inner join sys.[all_columns] ac With (NoLock) on t.[object_id] = ac.[object_id] - inner join sys.[types] ty With (NoLock) on ac.[system_type_id] = ty.[system_type_id] and ac.[user_type_id] = ty.[user_type_id] - Where t.[is_ms_shipped] = 0; -- Indicates if table is from Microsoft or User Created - -GO - -IF (@@Error = 0) PRINT 'View Creation: [vwSysInfo_UserTables] Succeeded' -ELSE PRINT 'View Creation: [vwSysInfo_UserTables] Error on Creation' -GO - - - - -IF EXISTS (Select * From dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[vesp_UtilityCheckIndexes]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP Procedure [dbo].[vesp_UtilityCheckIndexes]; -GO - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -========================================================================================================== - Author: Jake Ropar - Create Date: 08/23/2021 - Description: Rebuild / Reorganize all Indexes in the database based on their current average fragmentation - Note** @LowerFragCutoff value should always be less than the @UpperFragCutoff value, - if not then @@LowerFragCutoff value witll be automatically set to the @UpperFragCutoff value - - Parameters: @UpperFragCutoff Fragmentation Cutoff Value for Rebuild vs Reorganize (30.0 Recommended) - @LowerFragCutoff Average Fragmentation Cutoff Value for Initial Index Selection (10.0 Recommended) - @IsPrint Print the Commands Indicator (1 = Print Commands, 0 = Dont Print Commands) - @IsExecute Execute the Commands Indicator (1 = Execute Commands, 0 = Dont Execute Commands) - -Examples: exec [dbo].[vesp_UtilityCheckIndexes] null, null, null, null; -- Use default values and only execute the commands - exec [dbo].[vesp_UtilityCheckIndexes] null, null, 1, 0; -- Use the Upper Cutoff and Lower Cutoff default values and only print the commands - exec [dbo].[vesp_UtilityCheckIndexes] null, null, 0, 1; -- Use the Upper Cutoff and Lower Cutoff default values and only execute the commands - exec [dbo].[vesp_UtilityCheckIndexes] 30.0, null, 1, 0; -- Override Upper Cutoff, use the Lower Cutoff default value and print and execute the commands -========================================================================================================== - */ -Create Procedure [dbo].[vesp_UtilityCheckIndexes] (@UpperFragCutoff float = null, @LowerFragCutoff float = null, - @IsPrint Bit = null, @IsExecute Bit = null) -With Execute As Owner -As -Begin - - Set NoCount On; - - -- Declare Local Variables - Declare @ObjectID int; - Declare @IndexID int; - Declare @PartitionCount bigint; - Declare @SchemaName nvarchar(130); - Declare @ObjectName nvarchar(130); - Declare @IndexName nvarchar(130); - Declare @PartitionNum bigint; - Declare @IndexAvgFrag float; - Declare @Command nvarchar(4000); - - -- Set Default Values - If (@UpperFragCutoff is null) Set @UpperFragCutoff = 10.0; - If (@LowerFragCutoff is null) Set @LowerFragCutoff = 2.0; - If (@IsPrint is null) Set @IsPrint = 0; - If (@IsExecute is null) Set @IsExecute = 1; - - -- Check if Lower Cutoff is greater than Upper Cutoff - If (@LowerFragCutoff > @UpperFragCutoff) Set @LowerFragCutoff = @UpperFragCutoff; - - - -- Conditionally select tables and indexes from the sys.dm_db_index_physical_stats function - -- and convert object and index IDs to names. - - Select object_id as 'ObjectID', - index_id as 'IndexID', - partition_number as 'PartitionNum', - avg_fragmentation_in_percent as 'AvgFrag' - Into #work_to_do - From sys.dm_db_index_physical_stats (DB_ID(), NULL, NULL , NULL, 'LIMITED') - Where avg_fragmentation_in_percent > @LowerFragCutoff AND index_id > 0; - - -- Declare the cursor for the list of partitions to be processed. - Declare cursor_Partitions Cursor For - Select ObjectID, IndexID, PartitionNum, AvgFrag - From #work_to_do; - - -- Open the cursor. - Open cursor_Partitions; - - -- Loop through the partitions. - While (1=1) - - Begin; - - Fetch Next From cursor_Partitions Into @ObjectID, @IndexID, @PartitionNum, @IndexAvgFrag; - - IF (@@FETCH_STATUS < 0) Break; - - Select @ObjectName = QUOTENAME(o.name), @SchemaName = QUOTENAME(s.name) - From sys.objects as o - join sys.schemas as s on s.schema_id = o.schema_id - Where o.object_id = @ObjectID; - - Select @IndexName = QUOTENAME(name) - From sys.indexes - Where object_id = @ObjectID AND index_id = @IndexID; - - Select @PartitionCount = Count(*) - From sys.partitions - Where object_id = @ObjectID AND index_id = @IndexID; - - Set @Command = ''; - - -- Determine whether to rebuild or reorganize - IF (@IndexAvgFrag < @UpperFragCutoff) - Set @Command = N'ALTER INDEX ' + @IndexName + N' ON ' + @SchemaName + N'.' + @ObjectName + N' REORGANIZE;'; - - IF (@IndexAvgFrag >= @UpperFragCutoff) - Set @Command = N'ALTER INDEX ' + @IndexName + N' ON ' + @SchemaName + N'.' + @ObjectName + N' REBUILD;'; - - IF (@PartitionCount > 1) - Set @Command = @Command + N' PARTITION=' + Cast(@PartitionNum AS nvarchar(10)); - - -- Print command if enabled - If (@IsPrint = 1) Print @Command; - - -- Execute command if enabled - If (@IsExecute = 1) Exec (@Command); - - End; - - -- Close and deallocate the cursor - Close cursor_Partitions; - Deallocate cursor_Partitions; - - -- Drop the temporary table - Drop Table #work_to_do; - - Return; -End -Go - -IF (@@Error = 0) PRINT 'StoredProcedure Creation: [vesp_UtilityCheckIndexes] Succeeded' -ELSE PRINT 'StoredProcedure Creation: [vesp_UtilityCheckIndexes] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblEntriesDeleteStatusDocID') - Drop Index [IX_tblEntriesDeleteStatusDocID] on [dbo].[tblEntries] -Go - -CREATE NONCLUSTERED INDEX [IX_tblEntriesDeleteStatusDocID] -ON [dbo].[tblEntries] ([DeleteStatus] ASC) -INCLUDE ([DocID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblEntriesDeleteStatusDocID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblEntriesDeleteStatusDocID] Error on Creation' -GO - - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblAnnotationsDeleteStatusAnnotationID') - Drop Index [IX_tblAnnotationsDeleteStatusAnnotationID] on [dbo].[tblAnnotations] -Go - -CREATE NONCLUSTERED INDEX [IX_tblAnnotationsDeleteStatusAnnotationID] -ON [dbo].[tblAnnotations] ([DeleteStatus] ASC) -INCLUDE ([AnnotationID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblAnnotationsDeleteStatusAnnotationID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblAnnotationsDeleteStatusAnnotationID] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblContentsDeleteStatusContentID') - Drop Index [IX_tblContentsDeleteStatusContentID] on [dbo].[tblContents] -Go - -CREATE NONCLUSTERED INDEX [IX_tblContentsDeleteStatusContentID] -ON [dbo].[tblContents] ([DeleteStatus] ASC) -INCLUDE ([ContentID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblContentsDeleteStatusContentID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblContentsDeleteStatusContentID] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblDocumentsDeleteStatusDocID') - Drop Index [IX_tblDocumentsDeleteStatusDocID] on [dbo].[tblDocuments] -Go - -CREATE NONCLUSTERED INDEX [IX_tblDocumentsDeleteStatusDocID] -ON [dbo].[tblDocuments] ([DeleteStatus] ASC) -INCLUDE ([DocID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblDocumentsDeleteStatusDocID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblDocumentsDeleteStatusDocID] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblGridsDeleteStatusContentID') - Drop Index [IX_tblGridsDeleteStatusContentID] on [dbo].[tblGrids] -Go - -CREATE NONCLUSTERED INDEX [IX_tblGridsDeleteStatusContentID] -ON [dbo].[tblGrids] ([DeleteStatus] ASC) -INCLUDE ([ContentID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblGridsDeleteStatusContentID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblGridsDeleteStatusContentID] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblImagesDeleteStatusContentID') - Drop Index [IX_tblImagesDeleteStatusContentID] on [dbo].[tblImages] -Go - -CREATE NONCLUSTERED INDEX [IX_tblImagesDeleteStatusContentID] -ON [dbo].[tblImages] ([DeleteStatus] ASC) -INCLUDE ([ContentID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblImagesDeleteStatusContentID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblImagesDeleteStatusContentID] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblItemsDeleteStatusItemID') - Drop Index [IX_tblItemsDeleteStatusItemID] on [dbo].[tblItems] -Go - -CREATE NONCLUSTERED INDEX [IX_tblItemsDeleteStatusItemID] -ON [dbo].[tblItems] ([DeleteStatus] ASC) -INCLUDE ([ContentID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblItemsDeleteStatusItemID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblItemsDeleteStatusItemID] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblPartsDeleteStatusItemIDContentID') - Drop Index [IX_tblPartsDeleteStatusItemIDContentID] on [dbo].[tblParts] -Go - -CREATE NONCLUSTERED INDEX [IX_tblPartsDeleteStatusItemIDContentID] -ON [dbo].[tblParts] ([DeleteStatus] ASC) -INCLUDE ([ItemID], [ContentID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblPartsDeleteStatusItemIDContentID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblPartsDeleteStatusItemIDContentID] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblPartsDeleteStatusItemID') - Drop Index [IX_tblPartsDeleteStatusItemID] on [dbo].[tblParts] -Go - -CREATE NONCLUSTERED INDEX [IX_tblPartsDeleteStatusItemID] -ON [dbo].[tblParts] ([DeleteStatus] ASC) -INCLUDE ([ItemID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblPartsDeleteStatusItemID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblPartsDeleteStatusItemID] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblPartsDeleteStatusContentID') - Drop Index [IX_tblPartsDeleteStatusContentID] on [dbo].[tblParts] -Go - -CREATE NONCLUSTERED INDEX [IX_tblPartsDeleteStatusContentID] -ON [dbo].[tblParts] ([DeleteStatus] ASC) -INCLUDE ([ContentID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblPartsDeleteStatusContentID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblPartsDeleteStatusContentID] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblROUsagesDeleteStatusContentID') - Drop Index [IX_tblROUsagesDeleteStatusContentID] on [dbo].[tblROUsages] -Go - -CREATE NONCLUSTERED INDEX [IX_tblROUsagesDeleteStatusContentID] -ON [dbo].[tblROUsages] ([DeleteStatus] ASC) -INCLUDE ([ContentID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblROUsagesDeleteStatusContentID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblROUsagesDeleteStatusContentID] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblROUsagesDeleteStatusRODbID') - Drop Index [IX_tblROUsagesDeleteStatusRODbID] on [dbo].[tblROUsages] -Go - -CREATE NONCLUSTERED INDEX [IX_tblROUsagesDeleteStatusRODbID] -ON [dbo].[tblROUsages] ([DeleteStatus] ASC) -INCLUDE (RODbID) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblROUsagesDeleteStatusRODbID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblROUsagesDeleteStatusRODbID] Error on Creation' -GO - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblTransitionsDeleteStatusTransitionID') - Drop Index [IX_tblTransitionsDeleteStatusTransitionID] on [dbo].[tblTransitions] -Go - -CREATE NONCLUSTERED INDEX [IX_tblTransitionsDeleteStatusTransitionID] -ON [dbo].[tblTransitions] ([DeleteStatus] ASC) -INCLUDE (TransitionID) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblTransitionsDeleteStatusTransitionID] Succeeded' -ELSE PRINT 'Index Creation:[IX_tblTransitionsDeleteStatusTransitionID] Error on Creation' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGridIds]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [getGridIds]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2022 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGridIds] -WITH EXECUTE AS OWNER -AS -begin - SELECT - [ContentID] - FROM [Grids] - RETURN -end -GO -IF (@@Error = 0) PRINT 'Procedure Creation: [getGridIds] Succeeded' -ELSE PRINT 'Procedure Creation: [getGridIds] Error on Creation' -GO - - - -/* -========================================================================================================== - Begin: B2022-026 RO Memory reduction coding (Jakes Merge) [Version 2.0] - Notes** If you need to rollback to the previous version for some reason and undo the changes - for v2.0 then run the corresponding "PROMSRollback (v2.0).sql" file -========================================================================================================== -*/ - /* - ---------------------------------------------------------------------------------- - Tables: - ---------------------------------------------------------------------------------- - [RofstHeader] - [RofstDatabase] - [RofstChild] - [RofstDefaultValue] - - ---------------------------------------------------------------------------------- - Indexes: - ---------------------------------------------------------------------------------- - [IX_RofstID_Roid] on [dbo].[RofstChild] - [IX_RofstID_DbiID_ParentID] on [dbo].[RofstChild] - - */ - - -- If RofstHeader and other tables already exist then don't drop and recreate them - IF Not Exists(SELECT * FROM sys.objects Where name = 'RofstHeader' AND type in (N'U')) - Begin -- Rofst Tables - - SET ANSI_NULLS ON - SET QUOTED_IDENTIFIER ON - - /****** Object: Table [dbo].[RofstChild] Script Date: 6/6/2022 11:18:32 AM ******/ - CREATE TABLE [dbo].[RofstChild]( - [RofstChildID] [int] IDENTITY(1,1) NOT NULL, - [RofstID] [int] NOT NULL, - [dbiID] [int] NOT NULL, - [ID] [int] NOT NULL, - [ParentID] [int] NOT NULL, - [type] [int] NOT NULL, - [title] [varchar](max) NOT NULL, - [roid] [varchar](50) NOT NULL, - [appid] [varchar](max) NULL, - [value] [varchar](max) NULL, - CONSTRAINT [PK_RofstChild] PRIMARY KEY CLUSTERED - ( - [RofstChildID] ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] - ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] - - IF (@@Error = 0) PRINT 'Table Creation: [RofstChild] Succeeded' - ELSE PRINT 'Table Creation: [RofstChild] Error on Creation' - - - /****** Object: Table [dbo].[RofstDatabase] Script Date: 6/6/2022 11:18:32 AM ******/ - CREATE TABLE [dbo].[RofstDatabase]( - [RofstID] [int] NOT NULL, - [dbiID] [int] NOT NULL, - [dbiType] [int] NOT NULL, - [dbiAW] [int] NOT NULL, - [dbiTitle] [varchar](max) NOT NULL, - [dbiAP] [varchar](max) NOT NULL, - [ID] [int] NOT NULL, - [ParentID] [int] NOT NULL, - CONSTRAINT [PK_RofstDatabase_1] PRIMARY KEY CLUSTERED - ( - [RofstID] ASC, - [dbiID] ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] - ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] - - IF (@@Error = 0) PRINT 'Table Creation: [RofstDatabase] Succeeded' - ELSE PRINT 'Table Creation: [RofstDatabase] Error on Creation' - - - /****** Object: Table [dbo].[RofstDefaultValue] Script Date: 6/6/2022 11:18:32 AM ******/ - CREATE TABLE [dbo].[RofstDefaultValue]( - [RofstID] [int] NOT NULL, - [roid] [varchar](50) NOT NULL, - [value] [varchar](max) NOT NULL, - [AccPageID] [varchar](max) NULL, - CONSTRAINT [PK_RofstDefaultValue] PRIMARY KEY CLUSTERED - ( - [RofstID] ASC, - [roid] ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] - ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] - - IF (@@Error = 0) PRINT 'Table Creation: [RofstDefaultValue] Succeeded' - ELSE PRINT 'Table Creation: [RofstDefaultValue] Error on Creation' - - - /****** Object: Table [dbo].[RofstHeader] Script Date: 6/6/2022 11:18:32 AM ******/ - CREATE TABLE [dbo].[RofstHeader]( - [RofstID] [int] NOT NULL, - [hSize] [int] NOT NULL, - [hMonth] [int] NOT NULL, - [hDay] [int] NOT NULL, - [hcYear] [int] NOT NULL, - [hcMonth] [int] NOT NULL, - [hcDay] [int] NOT NULL, - [hcHour] [int] NOT NULL, - [hcMin] [int] NOT NULL, - [hcSec] [int] NOT NULL, - [hcHund] [int] NOT NULL, - [CreateUserID] [varchar](50) NOT NULL, - [CreateDate] [datetime] NOT NULL, - [LoadedDate] [datetime] NULL, - CONSTRAINT [PK_RofstHeader] PRIMARY KEY CLUSTERED - ( - [RofstID] ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] - ) ON [PRIMARY] - - IF (@@Error = 0) PRINT 'Table Creation: [RofstHeader] Succeeded' - ELSE PRINT 'Table Creation: [RofstHeader] Error on Creation' - - - /****** Object: Index [IX_RofstID_DbiID_ParentID] Script Date: 6/6/2022 11:18:32 AM ******/ - CREATE NONCLUSTERED INDEX [IX_RofstID_DbiID_ParentID] ON [dbo].[RofstChild] - ( - [RofstID] ASC, - [dbiID] ASC, - [ParentID] ASC - ) - INCLUDE([ID],[type],[title],[roid],[appid],[value]) WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] - - IF (@@Error = 0) PRINT 'Index Creation: [IX_RofstID_DbiID_ParentID] Succeeded' - ELSE PRINT 'Index Creation: [IX_RofstID_DbiID_ParentID] Error on Creation' - - - /****** Object: Index [IX_RofstID_Roid] Script Date: 6/6/2022 11:18:32 AM ******/ - CREATE NONCLUSTERED INDEX [IX_RofstID_Roid] ON [dbo].[RofstChild] - ( - [RofstID] ASC, - [roid] ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] - - IF (@@Error = 0) PRINT 'Index Creation: [IX_RofstID_Roid] Succeeded' - ELSE PRINT 'Index Creation: [IX_RofstID_Roid] Error on Creation' - - - ALTER TABLE [dbo].[RofstDatabase] ADD CONSTRAINT [DF_RofstDatabase_ParentID] DEFAULT ((0)) FOR [ParentID] - - ALTER TABLE [dbo].[RofstHeader] ADD CONSTRAINT [DF_RofstHeader_CreateUserID] DEFAULT ('SYSTEM') FOR [CreateUserID] - - ALTER TABLE [dbo].[RofstHeader] ADD CONSTRAINT [DF_RofstHeader_CreateDate] DEFAULT (getdate()) FOR [CreateDate] - - ALTER TABLE [dbo].[RofstChild] WITH CHECK ADD CONSTRAINT [FK_RofstChild_RofstDatabase] FOREIGN KEY([RofstID], [dbiID]) - REFERENCES [dbo].[RofstDatabase] ([RofstID], [dbiID]) - ON DELETE CASCADE - - ALTER TABLE [dbo].[RofstChild] CHECK CONSTRAINT [FK_RofstChild_RofstDatabase] - - ALTER TABLE [dbo].[RofstDatabase] WITH CHECK ADD CONSTRAINT [FK_RofstDatabase_RofstHeader] FOREIGN KEY([RofstID]) - REFERENCES [dbo].[RofstHeader] ([RofstID]) - ON DELETE CASCADE - - ALTER TABLE [dbo].[RofstDatabase] CHECK CONSTRAINT [FK_RofstDatabase_RofstHeader] - - ALTER TABLE [dbo].[RofstDefaultValue] WITH CHECK ADD CONSTRAINT [FK_RofstDefaultValue_RofstHeader] FOREIGN KEY([RofstID]) - REFERENCES [dbo].[RofstHeader] ([RofstID]) - ON DELETE CASCADE - - ALTER TABLE [dbo].[RofstDefaultValue] CHECK CONSTRAINT [FK_RofstDefaultValue_RofstHeader] - - ALTER TABLE [dbo].[RofstHeader] WITH CHECK ADD CONSTRAINT [FK_RofstHeader_ROFsts] FOREIGN KEY([RofstID]) - REFERENCES [dbo].[ROFsts] ([ROFstID]) - ON DELETE CASCADE - - ALTER TABLE [dbo].[RofstHeader] CHECK CONSTRAINT [FK_RofstHeader_ROFsts] - - IF (@@Error = 0) PRINT 'Table/FK Constraints: Succeeded' - ELSE PRINT 'Table/FK Constraints: Error on Creation' - - End -- Rofst Tables - Go - - - /* - ---------------------------------------------------------------------------------- - Functions: - ---------------------------------------------------------------------------------- - [dbo].[vefn_Clean] - [dbo].[vefn_ParseStringListToTable] - [dbo].[vefn_NumOfOccurrences] - [dbo].[vefn_RofstDataReplaceVars] - [dbo].[vefn_RofstDataReplaceApplTagsWithDefaults] - [dbo].[vefn_RofstDataGetLoadStatus] - */ - - /****** Object: UserDefinedFunction [dbo].[vefn_Clean] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vefn_Clean' AND type in (N'FN')) - DROP FUNCTION [dbo].[vefn_Clean] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - -- ========================================================================================== - -- Author: Jake Ropar - -- Create Date: 4/21/2022 - -- Description: Cleans (Trim) the string value passed - -- Optional: Truncate is string is passed a specified max length - -- Optional: Convert any null values to an empty string or leave as null - -- ========================================================================================== - - Create Function [dbo].[vefn_Clean] ( @Value VarChar(Max), @ConvertNulls bit = 0, @MaxLength Int = null ) - Returns VarChar(Max) - As - Begin - - Declare @RetVal VarChar(Max); - - If (Len(IsNull(@Value,'')) > 0) - Begin - - Set @RetVal = LTrim(RTrim(@Value)); - If (Not @MaxLength is null And Len(@RetVal) > @MaxLength) Set @RetVal = Left(@RetVal, @MaxLength); - - End - - If (@ConvertNulls = 1) - Set @RetVal = IsNull(@RetVal, ''); - - Return @RetVal; - - End - GO - - IF (@@Error = 0) PRINT 'Function Creation: [vefn_Clean] Succeeded' - ELSE PRINT 'Function Creation: [vefn_Clean] Error on Creation' - GO - - - - /****** Object: UserDefinedFunction [dbo].[vefn_ParseStringListToTable] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vefn_ParseStringListToTable' AND type in (N'TF')) - DROP FUNCTION [dbo].[vefn_ParseStringListToTable] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - -- ========================================================================================== - -- Author: Jake Ropar - -- Create Date: 3/26/2018 - -- Description: Splits a delimited list of strings into a table of string values - -- ========================================================================================== - - Create Function [dbo].[vefn_ParseStringListToTable] ( @List VarChar(Max), @Delimeter VarChar(1) = null ) - Returns @RetVal Table (ListPosition Int Identity(1,1) Not Null, ListValue VarChar(Max) Not Null) - With Execute As Owner - As - Begin - - Declare @Position Int; - Declare @TextPosition Int; - Declare @Length smallint; - Declare @String VarChar(Max); - Declare @TempString VarChar(Max); - Declare @LeftOver VarChar(Max); - - Set @TextPosition = 1; - Set @LeftOver = ''; - Set @Delimeter = IsNull(@Delimeter, ','); - - If (DataLength(@List) = 1) - Insert @RetVal (ListValue) Values (Cast(@List as VarChar(Max))); - Else - Begin - While (@TextPosition <= DataLength(@List) / 2) - Begin - - Set @Length = (4000 - DataLength(@LeftOver) / 2); - Set @TempString = LTrim(@LeftOver + Substring(@List, @TextPosition, @Length)); - Set @TextPosition = @TextPosition + @Length; - Set @Position = CharIndex(@Delimeter, @TempString); - - While (@Position > 0) - Begin - - Set @String = Substring(@TempString, 1, @Position - 1); - - Insert @RetVal (ListValue) Values (Cast(@String as VarChar(Max))); - - Set @TempString = LTrim(Substring(@TempString, @Position + 1, Len(@TempString))); - Set @Position = CharIndex(@Delimeter, @TempString); - - End - - Set @LeftOver = @TempString; - End - End - - If (LTrim(RTrim(@LeftOver)) <> '') - Insert @RetVal (ListValue) Values (Cast(@LeftOver as VarChar(Max))); - - Return; - End - GO - - IF (@@Error = 0) PRINT 'Function Creation: [vefn_ParseStringListToTable] Succeeded' - ELSE PRINT 'Function Creation: [vefn_ParseStringListToTable] Error on Creation' - GO - - - - /****** Object: UserDefinedFunction [dbo].[vefn_NumOfOccurrences] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vefn_NumOfOccurrences' AND type in (N'FN')) - DROP FUNCTION [dbo].[vefn_NumOfOccurrences] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - -- ========================================================================================== - -- Author: Jake Ropar - -- Create Date: 3/1/2022 - -- Description: Returns the number of occurences of a specific value in a specified string - -- ========================================================================================== - - CREATE FUNCTION [dbo].[vefn_NumOfOccurrences](@Text VarChar(Max), @Value VarChar(Max)) Returns Int - WITH EXECUTE AS OWNER - AS - BEGIN - - Declare @ValueCount Int; - - If (Len(@Value) = 0) - Set @ValueCount = 0; - Else - Set @ValueCount = (Len(@Text) - Len(Replace(@Text, @Value, ''))) / Len(@Value); - - Return @ValueCount; - - END - GO - - IF (@@Error = 0) PRINT 'Function Creation: [vefn_NumOfOccurrences] Succeeded' - ELSE PRINT 'Function Creation: [vefn_NumOfOccurrences] Error on Creation' - GO - - - - /****** Object: UserDefinedFunction [dbo].[vefn_RofstDataReplaceVars] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceVars' AND type in (N'FN')) - DROP FUNCTION [dbo].[vefn_RofstDataReplaceVars] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - -- ========================================================================================== - -- Author: Jake Ropar - -- Create Date: 3/25/2022 - -- Description: Replaces Any Variables and returns the rest of the value string - -- ========================================================================================== - - CREATE FUNCTION [dbo].[vefn_RofstDataReplaceVars](@Values VarChar(Max)) Returns VarChar(Max) - WITH EXECUTE AS OWNER - AS - BEGIN - - Declare @RetVal VarChar(Max) = ''; - Declare @EqualsIndex Int; - Declare @EndIndex Int; - Declare @NameValPairStartIndex Int; - Declare @NameValPairEndIndex Int; - - Declare @VarPair VarChar(Max); - Declare @VarName VarChar(Max); - Declare @VarValue VarChar(Max); - - -- Replace Any "" Tags with the Default Value first - Select @RetVal = dbo.vefn_RofstDataReplaceApplTagsWithDefaults(@Values); - - If (PatIndex('%{{A%', @RetVal) > 0) - Set @EndIndex = PatIndex('%{{A%', @RetVal); - Else - Set @EndIndex = Len(@RetVal) -1; - - Set @NameValPairStartIndex = PatIndex('%{%', @RetVal); - Set @NameValPairEndIndex = PatIndex('%}%', @RetVal); - - While(@NameValPairStartIndex > 0 And @NameValPairStartIndex < @EndIndex) - Begin - - -- Get Name Value Pair [ex. {EGS=1214}] - Set @VarPair = SubString(@RetVal, @NameValPairStartIndex, (@NameValPairEndIndex - @NameValPairStartIndex) + 1); - - -- Remove Name Value Pair From Return Val - Set @RetVal = Replace(@RetVal, @VarPair, ''); - - -- Get Variable Name and Value - Set @EqualsIndex = PatIndex('%=%', @VarPair); - - If (@EqualsIndex > 0) - Begin - Set @VarName = SubString(@VarPair, 2, @EqualsIndex - 2); - Set @VarValue = SubString(@VarPair, @EqualsIndex + 1, Len(@VarPair) - @EqualsIndex - 1); - Set @VarName = Concat('{', @VarName, '}'); - - -- Replace All Occurences - Set @RetVal = Replace(@RetVal, @VarName, @VarValue); - End - - -- Get Updated Index Values - If (PatIndex('%{{A%', @RetVal) > 0) - Set @EndIndex = PatIndex('%{{A%', @RetVal); - Else - Set @EndIndex = Len(@RetVal) -1; - - Set @NameValPairStartIndex = PatIndex('%{%', @RetVal); - Set @NameValPairEndIndex = PatIndex('%}%', @RetVal); - - End -- End While(@ReplaceVarEndTagIndex > 0) - - Return @RetVal; - - END - GO - - IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Succeeded' - ELSE PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Error on Creation' - GO - - - - /****** Object: UserDefinedFunction [dbo].[vefn_RofstDataReplaceApplTagsWithDefaults] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceApplTagsWithDefaults' AND type in (N'FN')) - DROP FUNCTION [dbo].[vefn_RofstDataReplaceApplTagsWithDefaults] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - -- ========================================================================================== - -- Author: Jake Ropar - -- Create Date: 3/25/2022 - -- Description: Replaces any "" tags with the default value - -- ========================================================================================== - - CREATE FUNCTION [dbo].[vefn_RofstDataReplaceApplTagsWithDefaults](@Values VarChar(Max)) Returns VarChar(Max) - WITH EXECUTE AS OWNER - AS - BEGIN - - Declare @RetVal VarChar(Max) = ''; - Declare @DefaultValue VarChar(Max) = ''; - - Declare @StartTagIndex Int; - Declare @EndTagIndex Int; - Declare @StartTagValue VarChar(Max); - - Set @RetVal = @Values; - Set @StartTagIndex = PatIndex('%%', @RetVal); - - While (@StartTagIndex > 0) - Begin - - Set @StartTagValue = SubString(@RetVal, @StartTagIndex, (@EndTagIndex - @StartTagIndex) + 5); - Set @DefaultValue = Replace(@StartTagValue, '%', @DefaultValue); - - Set @DefaultValue = RTrim(SubString(@DefaultValue, 0, @EndTagIndex)); - Set @RetVal = Replace(@RetVal, @StartTagValue, @DefaultValue); - - Set @StartTagIndex = PatIndex('%%', @RetVal); - - End -- While (@StartTagIndex > 0) - - Return @RetVal; - - END - GO - - IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataReplaceApplTagsWithDefaults] Succeeded' - ELSE PRINT 'Function Creation: [vefn_RofstDataReplaceApplTagsWithDefaults] Error on Creation' - GO - - - - - /****** Object: UserDefinedFunction [dbo].[vefn_RofstDataGetLoadStatus] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataGetLoadStatus' AND type in (N'FN')) - DROP FUNCTION [dbo].[vefn_RofstDataGetLoadStatus] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - -- ========================================================================================== - -- Author: Jake Ropar - -- Create Date: 05/20/2022 - -- Description: Gets the current load status for a Rofst Binary - -- ========================================================================================== - - CREATE FUNCTION [dbo].[vefn_RofstDataGetLoadStatus](@RofstID Int) Returns Int - WITH EXECUTE AS OWNER - AS - BEGIN - - Declare @RofstHeaderStatusID Int; - Declare @NumOfRecordsStart Int; - Declare @NumOfRecordsEnd Int; - Declare @CreateDate DateTime; - Declare @LoadedDate DateTime; - - -- Set Default Values - Set @RofstHeaderStatusID = 0; -- [Unknown] - Set @NumOfRecordsStart = -1; - Set @NumOfRecordsEnd = -1; - - -- Get RofstHeader Data - Select @CreateDate = CreateDate, @LoadedDate = LoadedDate - From RofstHeader with (NoLock) - Where RofstID = @RofstID; - - -- Check Current Status of RofstHeader/Data - If (@CreateDate is null) - Begin - Set @RofstHeaderStatusID = 1; -- [Not Loaded] - End - Else If (Not @LoadedDate is null) - Begin - Set @RofstHeaderStatusID = 3; -- [Load Complete] - End - Else If (@LoadedDate is null) - Begin - - -- Check if the record count for Rofst Default Values is still increasing - --Declare @cnt Int = 4000000; - Declare @cnt Int = 2000000; - - Select @NumOfRecordsStart = Count(1) From vwRofstData_RofstDefaultValues Where RofstID = @RofstID; - - While (@cnt > 0) - Set @cnt = @Cnt -1; - - Select @NumOfRecordsEnd = Count(1) From vwRofstData_RofstDefaultValues Where RofstID = @RofstID; - - If (@NumOfRecordsStart < @NumOfRecordsEnd) - Set @RofstHeaderStatusID = 2; -- [In Progress] - Else - Set @RofstHeaderStatusID = 4; -- [Load Failed] - End - Else - Begin - Set @RofstHeaderStatusID = 0; -- [Unknown] - End - - - Return @RofstHeaderStatusID; - - END - GO - - IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataGetLoadStatus] Succeeded' - ELSE PRINT 'Function Creation: [vefn_RofstDataGetLoadStatus] Error on Creation' - GO - - - /* - ---------------------------------------------------------------------------------- - Views: - ---------------------------------------------------------------------------------- - [dbo].[vwRofstData_RofstChildren] - [dbo].[vwRofstData_RofstDatabases] - [dbo].[vwRofstData_RofstDefaultValues] - [dbo].[vwRofstData_RofstHeaders] - [dbo].[vwRofstData_RofstHeaderStatuses] - */ - - /****** Object: View [dbo].[vwRofstData_RofstChildren] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstChildren' AND type in (N'V')) - DROP VIEW [dbo].[vwRofstData_RofstChildren] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2024 - Description: (RofstData) Master View for RofstChildren (RoChild & Groups) - ========================================================================================================== - */ - Create View [dbo].[vwRofstData_RofstChildren] - As - - Select rc.RofstChildID as 'RofstChildID', - rd.RofstID as 'RofstID', - -- RoDatabase Info - rd.dbiID as 'dbiID', - rd.dbiType as 'dbiType', - rd.dbiAW as 'dbiAW', - rd.dbiTitle as 'dbiTitle', - rd.dbiAP as 'dbiAP', - -- RoChild Info - rc.ID as 'ID', - rc.ParentID as 'ParentID', - rc.[type] as 'type', - Case When (rc.[type] = 1) Then 'Single Line Text' -- Fixed Length Text - When (rc.[type] = 2) Then 'Table' - When (rc.[type] = 3) Then 'Multiple Line Text' - When (rc.[type] = 4) Then 'X/Y Plot' - When (rc.[type] = 8) Then 'Image' - Else 'Unknown' End as 'TypeDescription', - rc.title as 'title', - rc.roid as 'roid', - rc.appid as 'appid', - rc.[value] as 'value', - Case When (Not rc.[value] is null) Then rd.dbiAP + '-' + rc.appid Else null End as 'AccPageID' - From RofstChild rc With (NoLock) - inner join RofstDatabase rd With (NoLock) on rc.RofstID = rd.RofstID and rc.dbiID = rd.dbiID; - - GO - - IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstChildren] Succeeded' - ELSE PRINT 'View Creation: [vwRofstData_RofstChildren] Error on Creation' - GO - - - /****** Object: View [dbo].[vwRofstData_RofstDatabases] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstDatabases' AND type in (N'V')) - DROP VIEW [dbo].[vwRofstData_RofstDatabases] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2024 - Description: (RofstData) Master View for RofstDatabases - ========================================================================================================== - */ - Create View [dbo].[vwRofstData_RofstDatabases] - As - - Select rd.RofstID as 'RofstID', - rd.dbiID as 'dbiID', - rd.dbiType as 'dbiType', - rd.dbiAW as 'dbiAW', - rd.dbiTitle as 'dbiTitle', - rd.dbiAP as 'dbiAP', - rd.ID as 'ID', - rd.ParentID as 'ParentID' - From RofstDatabase rd With (NoLock) - - - GO - - IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstDatabases] Succeeded' - ELSE PRINT 'View Creation: [vwRofstData_RofstDatabases] Error on Creation' - GO - - - /****** Object: View [dbo].[vwRofstData_RofstDefaultValues] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstDefaultValues' AND type in (N'V')) - DROP VIEW [dbo].[vwRofstData_RofstDefaultValues] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2024 - Description: (RofstData) Master View for Rofst Roid Default Values - ========================================================================================================== - */ - Create View [dbo].[vwRofstData_RofstDefaultValues] - As - - Select rdv.RofstID as 'RofstID', - rdv.roid as 'roid', - rdv.[value] as 'value', - rdv.AccPageID as 'AccPageID' - From RofstDefaultValue rdv With (NoLock) - - GO - - IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstDefaultValues] Succeeded' - ELSE PRINT 'View Creation: [vwRofstData_RofstDefaultValues] Error on Creation' - GO - - /****** Object: View [dbo].[vwRofstData_RofstHeaderStatuses] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstHeaderStatuses' AND type in (N'V')) - DROP VIEW [dbo].[vwRofstData_RofstHeaderStatuses] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 05/20/2022 - Description: (RofstData) Master View for RofstHeader Statuses - (0) Unknown (1) Not Loaded (2) In Progress (3) Load Complete (4) Load Failed - ========================================================================================================== - */ - Create View [dbo].[vwRofstData_RofstHeaderStatuses] - As - - Select '0' as 'RofstHeaderStatusID', 'Unknown' as 'RofstHeaderStatus' - Union All - Select '1' as 'RofstHeaderStatusID', 'Not Loaded' as 'RofstHeaderStatus' - Union All - Select '2' as 'RofstHeaderStatusID', 'In Progress' as 'RofstHeaderStatus' - Union All - Select '3' as 'RofstHeaderStatusID', 'Load Complete' as 'RofstHeaderStatus' - Union All - Select '4' as 'RofstHeaderStatusID', 'Load Failed' as 'RofstHeaderStatus' - - GO - - IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstHeaderStatuses] Succeeded' - ELSE PRINT 'View Creation: [vwRofstData_RofstHeaderStatuses] Error on Creation' - GO - - - /****** Object: View [dbo].[vwRofstData_RofstHeaders] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstHeaders' AND type in (N'V')) - DROP VIEW [dbo].[vwRofstData_RofstHeaders] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2024 - Description: (RofstData) Master View for RofstHeaders - ========================================================================================================== - */ - Create View [dbo].[vwRofstData_RofstHeaders] - As - - Select rh.RofstID as 'RofstID', - hs.RofstHeaderStatusID as 'RofstHeaderStatusID', - hs.RofstHeaderStatus as 'RofstHeaderStatus', - rh.hSize as 'hSize', - rh.hMonth as 'hMonth', - rh.hDay as 'hDay', - rh.hcYear as 'hcYear', - rh.hcMonth as 'hcMonth', - rh.hcDay as 'hcDay', - rh.hcHour as 'hcHour', - rh.hcMin as 'hcMin', - rh.hcSec as 'hcSec', - rh.hcHund as 'hcHund', - rh.LoadedDate as 'LoadedDate', - rh.CreateUserID as 'CreateUserID', - rh.CreateDate as 'CreateDate' - From RofstHeader rh With (NoLock) - inner join vwRofstData_RofstHeaderStatuses hs on hs.RofstHeaderStatusID = dbo.vefn_RofstDataGetLoadStatus(rh.RofstID) - - GO - - IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstHeaders] Succeeded' - ELSE PRINT 'View Creation: [vwRofstData_RofstHeaders] Error on Creation' - GO - - - - - - /* - ---------------------------------------------------------------------------------- - Stored Procs: (Update Existing) - ---------------------------------------------------------------------------------- - [dbo].[updateROFst] - [dbo].[getROImage] - [dbo].[getROFstsByRODbID] - [dbo].[getROFsts] - [dbo].[getRoFstBySize] - [dbo].[getROFstByRODbID_DTS] - [dbo].[getROFst] - [dbo].[getRODb] - [dbo].[getJustROFst] - [dbo].[getFiguresByImageID] - [dbo].[getDocVersion] - */ - - - /****** Object: StoredProcedure [dbo].[updateROFst] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'updateROFst' AND type in (N'P')) - DROP PROCEDURE [dbo].[updateROFst] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: - Create Date: - Description: - ========================================================================================================== - */ - CREATE PROCEDURE [dbo].[updateROFst] - ( - @ROFstID int, - @RODbID int, - @ROLookup varbinary(MAX), - @Config nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output - ) - WITH EXECUTE AS OWNER - AS - BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [ROFsts] - SET - [RODbID]=@RODbID, - --[ROLookup]=@ROLookup, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [ROFstID]=@ROFstID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [ROFsts] WHERE [ROFstID]=@ROFstID) - RAISERROR('ROFst record has been deleted by another user', 16, 1) - ELSE - RAISERROR('ROFst has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [ROFsts] WHERE [ROFstID]=@ROFstID - - IF( @@TRANCOUNT > 0 ) COMMIT - END TRY - BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler - END CATCH - - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [updateROFst] Succeeded' - ELSE PRINT 'Procedure Creation: [updateROFst] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[getROImage] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'getROImage' AND type in (N'P')) - DROP PROCEDURE [dbo].[getROImage] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: - Create Date: - Description: - ========================================================================================================== - */ - CREATE PROCEDURE [dbo].[getROImage] - ( - @ImageID int - ) - WITH EXECUTE AS OWNER - AS - SELECT - [ImageID], - [RODbID], - [FileName], - [Content], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(1) FROM [Figures] WHERE [Figures].[ImageID]=[ROImages].[ImageID]) [FigureCount] - FROM [ROImages] - WHERE [ImageID]=@ImageID - - SELECT - [Figures].[FigureID], - [Figures].[ROFstID], - [Figures].[ImageID], - [Figures].[Config], - [Figures].[DTS], - [Figures].[UserID], - [Figures].[LastChanged], - [ROFsts].[RODbID] [ROFst_RODbID], - --[ROFsts].[ROLookup] [ROFst_ROLookup], - null as [ROFst_ROLookup], - [ROFsts].[Config] [ROFst_Config], - [ROFsts].[DTS] [ROFst_DTS], - [ROFsts].[UserID] [ROFst_UserID] - FROM [Figures] - JOIN [ROFsts] ON - [ROFsts].[ROFstID]=[Figures].[ROFstID] - WHERE - [Figures].[ImageID]=@ImageID - - RETURN - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [getROImage] Succeeded' - ELSE PRINT 'Procedure Creation: [getROImage] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[getROFstsByRODbID] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'getROFstsByRODbID' AND type in (N'P')) - DROP PROCEDURE [dbo].[getROFstsByRODbID] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: - Create Date: - Description: - ========================================================================================================== - */ - CREATE PROCEDURE [dbo].[getROFstsByRODbID] - ( - @RODbID int - ) - WITH EXECUTE AS OWNER - AS - - SELECT - [ROFsts].[ROFstID], - [ROFsts].[RODbID], - --[ROFsts].[ROLookup], - null as [ROLookup], - [ROFsts].[Config], - [ROFsts].[DTS], - [ROFsts].[UserID], - [ROFsts].[LastChanged], - (SELECT COUNT(1) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT COUNT(1) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] - FROM [ROFsts] - WHERE - [ROFsts].[RODbID]=@RODbID - - RETURN - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [getROFstsByRODbID] Succeeded' - ELSE PRINT 'Procedure Creation: [getROFstsByRODbID] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[getROFsts] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'getROFsts' AND type in (N'P')) - DROP PROCEDURE [dbo].[getROFsts] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: - Create Date: - Description: - ========================================================================================================== - */ - CREATE PROCEDURE [dbo].[getROFsts] - - WITH EXECUTE AS OWNER - AS - SELECT - [ROFstID], - [RODbID], - --[ROLookup], - null as [ROLookup], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT Count(1) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT Count(1) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] - FROM [ROFsts] - - RETURN - - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [getROFsts] Succeeded' - ELSE PRINT 'Procedure Creation: [getROFsts] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[getRoFstBySize] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'getRoFstBySize' AND type in (N'P')) - DROP PROCEDURE [dbo].[getRoFstBySize] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - Create PROCEDURE [dbo].[getRoFstBySize] - ( - @RODbID int, - @Len int - ) - WITH EXECUTE AS OWNER - AS - - select [ROFstID], - [RODbID], - --[ROLookup], - null as [ROLookup], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT Count(1) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT Count(1) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] - from [ROFsts] - where len(rolookup) = @len and [RODbID] = @RODbID - - RETURN - - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [getRoFstBySize] Succeeded' - ELSE PRINT 'Procedure Creation: [getRoFstBySize] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[getROFstByRODbID_DTS] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'getROFstByRODbID_DTS' AND type in (N'P')) - DROP PROCEDURE [dbo].[getROFstByRODbID_DTS] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: - Create Date: - Description: - ========================================================================================================== - */ - CREATE PROCEDURE [dbo].[getROFstByRODbID_DTS] - ( - @RODbID int, - @DTS datetime - ) - WITH EXECUTE AS OWNER - AS - SELECT - [ROFstID], - [RODbID], - --[ROLookup], - null as [ROLookup], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT Count(1) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT Count(1) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] - FROM [ROFsts] - WHERE [RODbID]=@RODbID AND [DTS]=@DTS - - RETURN - - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [getROFstByRODbID_DTS] Succeeded' - ELSE PRINT 'Procedure Creation: [getROFstByRODbID_DTS] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[getROFst] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'getROFst' AND type in (N'P')) - DROP PROCEDURE [dbo].[getROFst] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: - Create Date: - Description: - ========================================================================================================== - */ - CREATE PROCEDURE [dbo].[getROFst] - - ( - @ROFstID int - ) - WITH EXECUTE AS OWNER - AS - SELECT - [ROFstID], - [RODbID], - -- [ROLookup], - null as [ROLookup], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT Count(1) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT Count(1) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] - FROM [ROFsts] - WHERE [ROFstID]=@ROFstID - - SELECT - [Associations].[AssociationID], - [Associations].[VersionID], - [Associations].[ROFstID], - [Associations].[Config], - [Associations].[DTS], - [Associations].[UserID], - [Associations].[LastChanged], - [DocVersions].[FolderID] [DocVersion_FolderID], - [DocVersions].[VersionType] [DocVersion_VersionType], - [DocVersions].[Name] [DocVersion_Name], - [DocVersions].[Title] [DocVersion_Title], - [DocVersions].[ItemID] [DocVersion_ItemID], - [DocVersions].[FormatID] [DocVersion_FormatID], - [DocVersions].[Config] [DocVersion_Config], - [DocVersions].[DTS] [DocVersion_DTS], - [DocVersions].[UserID] [DocVersion_UserID] - FROM [Associations] - JOIN [DocVersions] ON - [DocVersions].[VersionID]=[Associations].[VersionID] - WHERE - [Associations].[ROFstID]=@ROFstID - - - SELECT - [Figures].[FigureID], - [Figures].[ROFstID], - [Figures].[ImageID], - [Figures].[Config], - [Figures].[DTS], - [Figures].[UserID], - [Figures].[LastChanged], - [ROImages].[RODbID] [ROImage_RODbID], - [ROImages].[FileName] [ROImage_FileName], - [ROImages].[Content] [ROImage_Content], - [ROImages].[Config] [ROImage_Config], - [ROImages].[DTS] [ROImage_DTS], - [ROImages].[UserID] [ROImage_UserID] - FROM [Figures] - JOIN [ROImages] ON - [ROImages].[ImageID]=[Figures].[ImageID] - WHERE - [Figures].[ROFstID]=@ROFstID - - RETURN - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [getROFst] Succeeded' - ELSE PRINT 'Procedure Creation: [getROFst] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[getRODb] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'getRODb' AND type in (N'P')) - DROP PROCEDURE [dbo].[getRODb] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: - Create Date: - Description: - ========================================================================================================== - */ - CREATE PROCEDURE [dbo].[getRODb] - ( - @RODbID int - ) - WITH EXECUTE AS OWNER - AS - SELECT - [RODbID], - [ROName], - [FolderPath], - [DBConnectionString], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT Count(1) FROM [DROUsages] WHERE [DROUsages].[RODbID]=[RODbs].[RODbID]) [DROUsageCount], - (SELECT Count(1) FROM [ROFsts] WHERE [ROFsts].[RODbID]=[RODbs].[RODbID]) [ROFstCount], - (SELECT Count(1) FROM [ROImages] WHERE [ROImages].[RODbID]=[RODbs].[RODbID]) [ROImageCount], - (SELECT Count(1) FROM [RoUsages] WHERE [RoUsages].[RODbID]=[RODbs].[RODbID]) [RoUsageCount] - FROM [RODbs] - WHERE [RODbID]=@RODbID - - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [DROUsages] - JOIN [Documents] ON - [Documents].[DocID]=[DROUsages].[DocID] - WHERE - [DROUsages].[RODbID]=@RODbID - - - SELECT - [ROFsts].[ROFstID], - [ROFsts].[RODbID], - --[ROFsts].[ROLookup], - null as [ROLookup], - [ROFsts].[Config], - [ROFsts].[DTS], - [ROFsts].[UserID], - [ROFsts].[LastChanged] - FROM [ROFsts] - WHERE - [ROFsts].[RODbID]=@RODbID - - - SELECT - [ROImages].[ImageID], - [ROImages].[RODbID], - [ROImages].[FileName], - [ROImages].[Content], - [ROImages].[Config], - [ROImages].[DTS], - [ROImages].[UserID], - [ROImages].[LastChanged] - FROM [ROImages] - WHERE - [ROImages].[RODbID]=@RODbID - - - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [RoUsages] - JOIN [Contents] ON - [Contents].[ContentID]=[RoUsages].[ContentID] - WHERE - [RoUsages].[RODbID]=@RODbID - - RETURN - - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [getRODb] Succeeded' - ELSE PRINT 'Procedure Creation: [getRODb] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[getJustROFst] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'getJustROFst' AND type in (N'P')) - DROP PROCEDURE [dbo].[getJustROFst] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: - Create Date: - Description: - ========================================================================================================== - */ - CREATE PROCEDURE [dbo].[getJustROFst] - ( - @ROFstID int - ) - WITH EXECUTE AS OWNER - AS - SELECT - [ROFstID], - [RODbID], - --[ROLookup], - null as [ROLookup], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT Count(1) FROM [Associations] WHERE [Associations].[ROFstID]=[ROFsts].[ROFstID]) [AssociationCount], - (SELECT Count(1) FROM [Figures] WHERE [Figures].[ROFstID]=[ROFsts].[ROFstID]) [FigureCount] - FROM [ROFsts] - WHERE [ROFstID]=@ROFstID - - RETURN - - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [getJustROFst] Succeeded' - ELSE PRINT 'Procedure Creation: [getJustROFst] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[getFiguresByImageID] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'getFiguresByImageID' AND type in (N'P')) - DROP PROCEDURE [dbo].[getFiguresByImageID] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: - Create Date: - Description: - ========================================================================================================== - */ - CREATE PROCEDURE [dbo].[getFiguresByImageID] - ( - @ImageID int - ) - WITH EXECUTE AS OWNER - AS - - SELECT - [Figures].[FigureID], - [Figures].[ROFstID], - [Figures].[ImageID], - [Figures].[Config], - [Figures].[DTS], - [Figures].[UserID], - [Figures].[LastChanged], - [ROFsts].[RODbID] [ROFst_RODbID], - --[ROFsts].[ROLookup] [ROFst_ROLookup], - null as [ROFst_ROLookup], - [ROFsts].[Config] [ROFst_Config], - [ROFsts].[DTS] [ROFst_DTS], - [ROFsts].[UserID] [ROFst_UserID] - FROM [Figures] - JOIN [ROFsts] ON - [ROFsts].[ROFstID]=[Figures].[ROFstID] - WHERE - [Figures].[ImageID]=@ImageID - - RETURN - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [getFiguresByImageID] Succeeded' - ELSE PRINT 'Procedure Creation: [getFiguresByImageID] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[getDocVersion] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'getDocVersion' AND type in (N'P')) - DROP PROCEDURE [dbo].[getDocVersion] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: - Create Date: - Description: - ========================================================================================================== - */ - CREATE PROCEDURE [dbo].[getDocVersion] - ( - @VersionID int - ) - WITH EXECUTE AS OWNER - AS - SELECT - [VersionID], - [FolderID], - [VersionType], - [Name], - [Title], - [ItemID], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(1) FROM [Associations] WHERE [Associations].[VersionID]=[DocVersions].[VersionID]) [AssociationCount] - FROM [DocVersions] - WHERE [VersionID]=@VersionID - - SELECT - [Associations].[AssociationID], - [Associations].[VersionID], - [Associations].[ROFstID], - [Associations].[Config], - [Associations].[DTS], - [Associations].[UserID], - [Associations].[LastChanged], - [ROFsts].[RODbID] [ROFst_RODbID], - --[ROFsts].[ROLookup] [ROFst_ROLookup], - null as [ROFst_ROLookup], - [ROFsts].[Config] [ROFst_Config], - [ROFsts].[DTS] [ROFst_DTS], - [ROFsts].[UserID] [ROFst_UserID] - FROM [Associations] - JOIN [ROFsts] ON - [ROFsts].[ROFstID]=[Associations].[ROFstID] - WHERE - [Associations].[VersionID]=@VersionID - - RETURN - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [getDocVersion] Succeeded' - ELSE PRINT 'Procedure Creation: [getDocVersion] Error on Creation' - GO - - - - /* - ---------------------------------------------------------------------------------- - Stored Procs: (Create New) - ---------------------------------------------------------------------------------- - [dbo].[vesp_RofstHeaderInsert] - [dbo].[vesp_RofstHeaderFinalizeLoad] - [dbo].[vesp_RofstDataSearch] - [dbo].[vesp_RofstDataGetValueDifferences] - [dbo].[vesp_RofstDataGetRofstByID] - [dbo].[vesp_RofstDataGetHeaderRofstByID] - [dbo].[vesp_RofstDataGetDatabases] - [dbo].[vesp_RofstDataGetDatabaseByID] - [dbo].[vesp_RofstDataGetChildrenByType] - [dbo].[vesp_RofstDataGetChildrenByRoid] - [dbo].[vesp_RofstDataGetChildrenByRofstID] - [dbo].[vesp_RofstDataGetChildrenByID] - [dbo].[vesp_RofstDataGetChildByRoid] - [dbo].[vesp_RofstDataGetChildByID] - [dbo].[vesp_RofstDataGetChildByAccPageID] - [dbo].[vesp_RofstDatabaseInsert] - [dbo].[vesp_RofstChildInsert] - */ - - - /****** Object: StoredProcedure [dbo].[vesp_RofstHeaderInsert] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstHeaderInsert' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstHeaderInsert] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Inserts New Rofst Header Record - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstHeaderInsert] - ( - @RofstID Int, - @hSize Int, - @hMonth Int, - @hDay Int, - @hcYear Int, - @hcMonth Int, - @hcDay Int, - @hcHour Int, - @hcMin Int, - @hcSec Int, - @hcHund Int, - @UserID VarChar(50) - ) - With Execute as Owner - As - Begin - - -- Clear Existing Values (If Any) - Delete From RofstHeader Where RofstID = @RofstID; - - -- Create RofstHeader records and Set LoadedDate to null - Insert Into RofstHeader (RofstID, hSize, hMonth, hDay, hcYear, hcMonth, hcDay, hcHour, hcMin, hcSec, hcHund, LoadedDate, CreateUserID, CreateDate) - Values (@RofstID, @hSize, @hMonth, @hDay, @hcYear, @hcMonth, @hcDay, @hcHour, @hcMin, @hcSec, @hcHund, null, @UserID, GetDate()); - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstHeaderInsert] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstHeaderInsert] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstHeaderFinalizeLoad] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstHeaderFinalizeLoad' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstHeaderFinalizeLoad] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Finalizes Rofst Header Record / Updates LoadedDate if Success - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstHeaderFinalizeLoad] - ( - @RofstID Int - ) - With Execute as Owner - As - Begin - - -- Set LoadedDate on RofstHeader - Update RofstHeader - Set LoadedDate = GetDate() - Where RofstID = @RofstID; - - -- Rebuild/Reorganize Indexes - Exec [dbo].[vesp_UtilityCheckIndexes] 20.0, 5.0, 0, 1; - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstHeaderFinalizeLoad] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstHeaderFinalizeLoad] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataSearch] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataSearch' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataSearch] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: RO Default Value Search - - @SearchTypeID => (1) Starts With (2) Ends With (3) Contains (4) Exact Match - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataSearch] - ( - @RofstID int, - @Value VarChar(Max) = null, - @SearchTypeID Int = 1, -- Starts With - @MaxNumOfRecords Int = null - ) - With Execute as Owner - As - Begin - - -- Remove any leading/trailing white spaces - Set @Value = dbo.vefn_Clean( @Value, 0, null ); - - -- Escape any % signs in the search value - Set @Value = Replace( @Value, '%', '[%]' ); - - -- Format search value - If (Len(@Value) = 0) Set @Value = null; - - -- Create Temp Results Table - Create Table #SearchResults - (roid VarChar(50) Not Null, [value] VarChar(Max), RowNum Int Not Null Primary Key); - - -- Select roids/values based on search criteria - Insert Into #SearchResults (roid, [value], RowNum) - Select rdv.roid, - rdv.[value], - Row_Number() Over (Order By rdv.[value] Asc, rdv.roid Asc) as 'RowNum' - From vwRofstData_RofstDefaultValues rdv - Where rdv.RofstID = @RofstID - And ((@Value is null) - Or (@SearchTypeID = 1 And rdv.[value] like @Value + '%') -- Starts With - Or (@SearchTypeID = 2 And rdv.[value] like '%' + @Value) -- Ends With - Or (@SearchTypeID = 3 And rdv.[value] like '%' + @Value + '%') -- Contains - Or (@SearchTypeID = 4 And rdv.[value] = @Value)) -- Exact Match - Order By rdv.[value] Asc, rdv.roid Asc - Option (Recompile); - - -- Return the specified number of results - Select sr.roid, sr.[value] - From #SearchResults sr - Where (@MaxNumOfRecords is null Or sr.RowNum <= @MaxNumOfRecords) - Order By sr.RowNum Asc; - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataSearch] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataSearch] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetValueDifferences] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetValueDifferences' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetValueDifferences] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets Value Differences between (2) Rofst (Ro.fst) Files - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetValueDifferences] - ( - @OriginalRofstID Int, - @CurrentRofstID Int - ) - With Execute as Owner - As - Begin - - Declare @Differences Table (OriginalRoid VarChar(25), OriginalValue VarChar(Max), - CurrentRoid VarChar(25), CurrentValue VarChar(Max)); - - - With OriginalRofst as - ( - Select rc.roid, rc.[value] - From vwRofstData_RofstChildren rc - Where rc.RofstID = @OriginalRofstID - And Not rc.[value] is null - - ), CurrentRofst as ( - - Select rc.roid, rc.[value] - From vwRofstData_RofstChildren rc - Where rc.RofstID = @CurrentRofstID - And Not rc.[value] is null - ) - Insert Into @Differences (OriginalRoid, OriginalValue, CurrentRoid, CurrentValue) - Select o.roid, o.[value], c.roid, c.[value] - From OriginalRofst o - left outer join CurrentRofst c on c.roid = o.roid - Where o.[value] <> c.[value]; - - - Select OriginalRoid as 'Roid', - Case When (CurrentValue is null) Then 1 Else 0 End as 'IsDeleted', - Case When (Not CurrentValue is null) Then 1 Else 0 End as 'IsModified' - From @Differences; - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetValueDifferences] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetValueDifferences] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetRofstByID] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetRofstByID' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetRofstByID] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets Rofsts Info by ID - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetRofstByID] - ( - @RofstID int, - @IncludeRoLookup Bit - ) - With Execute as Owner - As - Begin - - Select r.ROFstID, - r.RODbID, - Case (@IncludeRoLookup) When 1 Then r.ROLookup Else null End as 'ROLookup', - r.DTS, - r.UserID, - r.LastChanged - From ROFsts r with (NoLock) - Where r.RofstID = @RofstID; - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetRofstByID] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetRofstByID] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetHeaderRofstByID] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetHeaderRofstByID' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetHeaderRofstByID] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets Rofst Header Info by ID - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetHeaderRofstByID] - ( - @RofstID int - ) - With Execute as Owner - As - Begin - - Select rh.RofstID as 'RofstID', - rh.RofstHeaderStatusID as 'RofstHeaderStatusID', - rh.RofstHeaderStatus as 'RofstHeaderStatus', - rh.hSize as 'hSize', - rh.hMonth as 'hMonth', - rh.hDay as 'hDay', - rh.hcYear as 'hcYear', - rh.hcMonth as 'hcMonth', - rh.hcDay as 'hcDay', - rh.hcHour as 'hcHour', - rh.hcMin as 'hcMin', - rh.hcSec as 'hcSec', - rh.hcHund as 'hcHund', - rh.LoadedDate as 'LoadedDate', - rh.CreateUserID as 'CreateUserID', - rh.CreateDate as 'CreateDate' - From vwRofstData_RofstHeaders rh - Where rh.RofstID = @RofstID; - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetHeaderRofstByID] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetHeaderRofstByID] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetDatabases] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetDatabases' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetDatabases] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets all Rofst Databases for a specified Rofst File - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetDatabases] - ( - @RofstID int - ) - With Execute as Owner - As - Begin - - Select rd.RofstID, - rd.dbiID, - rd.dbiType, - rd.dbiAW, - rd.dbiTitle, - rd.dbiAP, - rd.ID, - rd.ParentID - From vwRofstData_RofstDatabases rd - Where rd.RofstID = @RofstID - Order By rd.dbiID Asc; - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetDatabases] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetDatabases] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetDatabaseByID] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetDatabaseByID' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetDatabaseByID] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets Rofst Database Info by ID - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetDatabaseByID] - ( - @RofstID int, - @dbiID int - ) - With Execute as Owner - As - Begin - - Select rd.RofstID, - rd.dbiID, - rd.dbiType, - rd.dbiAW, - rd.dbiTitle, - rd.dbiAP, - rd.ID, - rd.ParentID - From vwRofstData_RofstDatabases rd - Where rd.RofstID = @RofstID - And rd.dbiID = @dbiID; - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetDatabaseByID] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetDatabaseByID] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildrenByType] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildrenByType' AND type in (N'P')) - DROP PROCEDURE[dbo].[vesp_RofstDataGetChildrenByType] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets Rofst Children Info by Type - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetChildrenByType] - ( - @RofstID int, - @ValueTypes VarChar(Max) - ) - With Execute as Owner - As - Begin - - -- Remove any leading/trailing white spaces - Set @ValueTypes = dbo.vefn_Clean( @ValueTypes, 0, null ); - - -- Format search value - If (Len(@ValueTypes) = 0) Set @ValueTypes = null; - - With ValueTypes as - ( - Select Cast(x.ListValue as Int) as 'ListValue' - From dbo.vefn_ParseStringListToTable(@ValueTypes, ',') as x - ) - Select rc.ROFstID, - rc.dbiID, - rc.ID, - rc.ParentID, - rc.[type], - rc.title, - rc.roid, - rc.appid, - rc.[value], - rc.AccPageID - From vwRofstData_RofstChildren rc - Left outer join ValueTypes vt on vt.ListValue = rc.[type] - Where rc.RofstID = @RofstID - And Not rc.[value] is null - And (@ValueTypes is null Or Not vt.ListValue is null) - Option (Recompile); - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildrenByType] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildrenByType] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildrenByRoid] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildrenByRoid' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetChildrenByRoid] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets Rofst Children (RoChild) Info by Roid - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetChildrenByRoid] - ( - @RofstID int, - @Roid VarChar(50) - ) - With Execute as Owner - As - Begin - - With RoParent as - ( - Select RofstID, dbiID, ID, [type], title, roid - From vwRofstData_RofstChildren - Where RofstID = @RofstID And roid = @Roid - ) - Select rc.RofstID, - rc.dbiID, - -- Ro Parent Info - rp.[type] as 'ParentType', - rp.title as 'ParentTitle', - rp.roid as 'ParentRoid', - -- Ro Child Info - rc.ID, - rc.ParentID, - rc.[type], - rc.title, - rc.roid, - rc.appid, - rc.[value], - rc.AccPageID - From RoParent rp - inner join vwRofstData_RofstChildren rc on rc.RofstID = rp.RofstID and rc.dbiID = rp.dbiID and rc.ParentID = rp.ID - Order By rc.ID Asc; - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildrenByRoid] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildrenByRoid] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildrenByRofstID] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildrenByRofstID' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetChildrenByRofstID] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets All Rofst Children Info by Rofst ID - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetChildrenByRofstID] - ( - @RofstID int - ) - With Execute as Owner - As - Begin - - Select rc.RofstID, - rc.dbiID, - rc.ID, - rc.ParentID, - rc.[type], - rc.title, - rc.roid, - rc.appid, - rc.[value], - rc.AccPageID - From vwRofstData_RofstChildren rc - Where rc.RofstID = @RofstID - And Not rc.[value] is null - Order By rc.dbiID Asc, rc.[type] Asc, rc.roid Asc; - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildrenByRofstID] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildrenByRofstID] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildrenByID] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildrenByID' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetChildrenByID] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets Rofst Children Info by DbiID and Object ID - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetChildrenByID] - ( - @RofstID int, - @DbiID int, - @ID Int - ) - With Execute as Owner - As - Begin - - - Select rc.RofstID, - rc.dbiID, - rc.ID, - rc.ParentID, - rc.[type], - rc.title, - rc.roid, - rc.appid, - rc.[value], - rc.AccPageID - From vwRofstData_RofstChildren rc - Where rc.RofstID = @RofstID - And rc.dbiID = @DbiID - And rc.ParentID = @ID - Order By rc.ID Asc; - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildrenByID] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildrenByID] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildByRoid] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByRoid' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByRoid] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets Rofst Child Info by Roid - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetChildByRoid] - ( - @RofstID int, - @Roid VarChar(50) - ) - With Execute as Owner - As - Begin - - Select rc.ROFstID, - rc.dbiID, - rc.ID, - rc.ParentID, - rc.[type], - rc.title, - rc.roid, - rc.appid, - rc.[value], - rc.AccPageID - From vwRofstData_RofstChildren rc - Where rc.RofstID = @RofstID - And rc.roid = @Roid; - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildByRoid] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildByRoid] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildByID] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByID' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByID] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets Rofst Child Info by dbiID and Object ID - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetChildByID] - ( - @RofstID int, - @DbiID int, - @ID Int - ) - With Execute as Owner - As - Begin - - Select rc.RofstID, - rc.dbiID, - rc.ID, - rc.ParentID, - rc.[type], - rc.title, - rc.roid, - rc.appid, - rc.[value], - rc.AccPageID - From vwRofstData_RofstChildren rc - Where rc.RofstID = @RofstID - And rc.dbiID = @DbiID - And rc.ID = @ID; - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildByID] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildByID] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildByAccPageID] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByAccPageID' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByAccPageID] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Gets Rofst Child Info by AccPageID - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetChildByAccPageID] - ( - @RofstID int, - @AccPageID VarChar(50) - ) - With Execute as Owner - As - Begin - - Select rc.ROFstID, - rc.dbiID, - rc.ID, - rc.ParentID, - rc.[type], - rc.title, - rc.roid, - rc.appid, - rc.[value], - rc.AccPageID - From vwRofstData_RofstChildren rc - Where rc.RofstID = @RofstID - And rc.AccPageID = @AccPageID; - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildByAccPageID] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildByAccPageID] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDatabaseInsert] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDatabaseInsert' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDatabaseInsert] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Inserts New Rofst Database Record - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDatabaseInsert] - ( - @RofstID Int, - @dbiID Int, - @dbiType Int, - @dbiAW Int, - @dbiTitle VarChar(Max), - @dbiAP VarChar(Max), - @ID Int, - @ParentID Int - ) - With Execute as Owner - As - Begin - - - Insert Into RofstDatabase (RofstID, dbiID, dbiType, dbiAW, dbiTitle, dbiAP, ID, ParentID) - Values (@RofstID, @dbiID, @dbiType, @dbiAW, @dbiTitle, @dbiAP, @ID, @ParentID ); - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDatabaseInsert] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDatabaseInsert] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstChildInsert] Script Date: 06/23/2022 ******/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstChildInsert' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstChildInsert] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/23/2022 - Description: Inserts New Rofst Child Record / Default Values - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstChildInsert] - ( - @RofstID Int, - @ID Int, - @ParentID Int, - @dbiID Int, - @type Int, - @title VarChar(Max), - @roid VarChar(50), - @appid VarChar(Max) = null, - @value VarChar(Max) = null - ) - With Execute as Owner - As - Begin - - Declare @AccPageID VarChar(Max) = null; - Declare @DefaultValues VarChar(Max); - - - -- Create Rofst Child/Group Record - Insert Into RofstChild (RofstID, ID, ParentID, dbiID, [type], title, roid, appid, [value]) - Values (@RofstID, @ID, @ParentID, @dbiID, @type, @title, @roid, @appid, @value); - - - -- Check for appid, if exists, then insert the default value for each return type if multi-value - If (Len(@appid) > 0) - Begin - - -- Get Accessory Page ID - Select @AccPageID = Concat(d.dbiAP, '-', @appid) - From RofstDatabase d with (NoLock) - Where d.RofstID = @RofstID And d.dbiID = @dbiID; - - -- Insert Rofst Default Value (Parent RoChild) [roid = 12] - Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID) - Values (@RofstID, @roid, Replace(@title, '\u160?', ' '), @AccPageID); - - -- Insert Rofst Default Value(s) (Children RoChild) [roid = 16] (Do Not Insert Duplicates) - Select @DefaultValues = Replace(dbo.vefn_RofstDataReplaceVars(@value), '{', ''); - - With ChildrenValues as - ( - Select (x.ListPosition + 40) as 'OffsetIndex', - Case When (PatIndex('%=%', x.ListValue) > 0) Then Right(x.ListValue, Len(x.ListValue)-PatIndex('%=%', x.ListValue)) Else x.ListValue End as 'DefaultValue' - From [dbo].[vefn_ParseStringListToTable](@DefaultValues, '}') x - Where Len(x.ListValue) > 0 - ) - Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID) - Select @RofstID as 'RofstID', - Concat(@roid, Cast(Format(Min(OffsetIndex), 'D4') as VarChar(4))) as 'roid', - DefaultValue as 'value', - null as 'AccPageID' - From ChildrenValues - Group By DefaultValue - Order By Min(OffsetIndex) Asc - - End -- (Len(@appid) > 0) - - - Return; - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstChildInsert] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstChildInsert] Error on Creation' - GO - - -/* -========================================================================================================== - End: B2022-026 RO Memory reduction coding (Jakes Merge) [Version 2.0] -========================================================================================================== -*/ - -/* -========================================================================================================== - Start: B2022-083: Support Conditional RO Values (v2.1) -========================================================================================================== -*/ - -/* - ---------------------------------------------------------------------------------- - Tables: - ---------------------------------------------------------------------------------- - [RofstExtension] [Created] - */ - - -- If RofstExtension table already exists then don't drop and recreate it - IF Not Exists(SELECT * FROM sys.objects Where name = 'RofstExtension' AND type in (N'U')) - Begin - - SET ANSI_NULLS ON - SET QUOTED_IDENTIFIER ON - - CREATE TABLE [dbo].[RofstExtension]( - [Offset] [int] NOT NULL, - [RoidExt] [varchar](4) NOT NULL, - [AccPageExt] [varchar](5) NOT NULL, - CONSTRAINT [PK_RofstExtension] PRIMARY KEY CLUSTERED - ( - [Offset] ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] - ) ON [PRIMARY] - - IF (@@Error = 0) PRINT 'Table Creation: [RofstExtension] Succeeded' - ELSE PRINT 'Table Creation: [RofstExtension] Error on Creation' - - IF (@@Error = 0) - Begin - - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (1,'0041','A'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (2,'0042','B'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (3,'0043','C'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (4,'0044','D'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (5,'0045','E'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (6,'0046','F'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (7,'0047','G'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (8,'0048','H'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (9,'0049','I'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (10,'004A','J'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (11,'004B','K'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (12,'004C','L'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (13,'004D','M'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (14,'004E','N'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (15,'004F','O'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (16,'0050','P'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (17,'0051','Q'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (18,'0052','R'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (19,'0053','S'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (20,'0054','T'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (21,'0055','U'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (22,'0056','V'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (23,'0057','W'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (24,'0058','X'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (25,'0059','Y'); - Insert Into RofstExtension (Offset, RoidExt, AccPageExt) Values (26,'005A','Z'); - - End - - End - Go - - - - /* - ---------------------------------------------------------------------------------- - Functions: - ---------------------------------------------------------------------------------- - [dbo].[vefn_RofstDataCleanUnitInfoTags] [Created] - [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults] [Created] - [dbo].[vefn_RofstDataReplaceVars] [Modified] - */ - - /****** Object: UserDefinedFunction [dbo].[vefn_RofstDataCleanUnitInfoTags] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataCleanUnitInfoTags' AND type in (N'FN')) - DROP FUNCTION [dbo].[vefn_RofstDataCleanUnitInfoTags] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - -- ========================================================================================== - -- Author: Jake Ropar - -- Create Date: 06/21/2022 - -- Description: Removes any legacy legacy unit info variables and fixes older applicability tags - -- ========================================================================================== - - CREATE FUNCTION [dbo].[vefn_RofstDataCleanUnitInfoTags](@Values VarChar(Max), @RemoveUnitInfoVars bit = 0) Returns VarChar(Max) - WITH EXECUTE AS OWNER - AS - BEGIN - - Declare @RetVal VarChar(Max) = ''; - - Set @RetVal = dbo.vefn_Clean(@Values, 1, null); - - If (Len(@RetVal) > 0) - Begin - - -- Make Sure all tag/var instances are upper case & Remove any internal spaces - Set @RetVal = Replace(@RetVal, 'U-OTHER TEXT', 'U-OTHERTEXT'); - Set @RetVal = Replace(@RetVal, 'U-OTHER NUMBER', 'U-OTHERNUMBER'); - Set @RetVal = Replace(@RetVal, 'U-OTHER NAME', 'U-OTHERNAME'); - Set @RetVal = Replace(@RetVal, 'U-OTHER ID', 'U-OTHERID'); - Set @RetVal = Replace(@RetVal, '', ''); - - If (@RemoveUnitInfoVars > 0) - Begin - - -- Remove any Unit Info Variables - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - - End - - End - - Return @RetVal; - - END - Go - - IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataCleanUnitInfoTags] Succeeded' - ELSE PRINT 'Function Creation: [vefn_RofstDataCleanUnitInfoTags] Error on Creation' - GO - - - /****** Object: UserDefinedFunction [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceLegacyTagsWithDefaults' AND type in (N'FN')) - DROP FUNCTION [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - -- ========================================================================================== - -- Author: Jake Ropar - -- Create Date: 06/21/2022 - -- Description: Replaces any legacy applicability tags with the default value - -- ========================================================================================== - - CREATE FUNCTION [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults](@Values VarChar(Max)) Returns VarChar(Max) - WITH EXECUTE AS OWNER - AS - BEGIN - - Declare @RetVal VarChar(Max) = ''; - Declare @DefaultValue VarChar(Max) = ''; - - Declare @StartTagIndex Int; - Declare @EndTagIndex Int; - Declare @StartTagValue VarChar(Max); - Declare @StartValIndex Int; - Declare @EndValIndex Int; - - Declare @TagName VarChar(Max); - Declare @LegacyTagNames VarChar(Max) = 'U-ID,U-NUMBER,U-NAME,U-TEXT,U-OTHERID,U-OTHERNUMBER,U-OTHERNAME,U-OTHERTEXT'; - - -- Make Sure all tag instances are upper case & Remove any internal spaces - Set @RetVal = dbo.vefn_RofstDataCleanUnitInfoTags(@Values, 0); - - - Declare LegacyTags_Cursor Cursor Fast_Forward For - Select '{' + x.ListValue + '{' as 'TagName' - From [dbo].[vefn_ParseStringListToTable](@LegacyTagNames, ',') x - - Open LegacyTags_Cursor - - Fetch Next From LegacyTags_Cursor Into @TagName - - While (@@FETCH_STATUS = 0) - Begin - - -- Get Start/End Index of Tag - Set @StartTagIndex = PatIndex('%' + @TagName + '%', @RetVal); - Set @EndTagIndex = PatIndex('%}}%', @RetVal); - - While (@StartTagIndex > 0) - Begin - - Set @StartTagValue = SubString(@RetVal, @StartTagIndex, (@EndTagIndex - @StartTagIndex) + 2); - - Set @StartValIndex = PatIndex('%=%', @StartTagValue); - Set @EndValIndex = PatIndex('%}%', @StartTagValue); - - Set @DefaultValue = SubString(@StartTagValue, @StartValIndex + 1, (@EndValIndex - @StartValIndex) - 1); - Set @RetVal = Replace(@RetVal, @StartTagValue, @DefaultValue); - - Set @StartTagIndex = PatIndex('%' + @TagName + '%', @RetVal); - Set @EndTagIndex = PatIndex('%}}%', @RetVal); - - End -- While (@StartTagIndex > 0) - - - Fetch Next From LegacyTags_Cursor Into @TagName - End - - Close LegacyTags_Cursor; - Deallocate LegacyTags_Cursor; - - - Return @RetVal; - - END - Go - - IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataReplaceLegacyTagsWithDefaults] Succeeded' - ELSE PRINT 'Function Creation: [vefn_RofstDataReplaceLegacyTagsWithDefaults] Error on Creation' - GO - - - /****** Object: UserDefinedFunction [dbo].[vefn_RofstDataReplaceVars] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceVars' AND type in (N'FN')) - DROP FUNCTION [dbo].[vefn_RofstDataReplaceVars] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - -- ========================================================================================== - -- Author: Jake Ropar - -- Create Date: 3/25/2022 - -- Description: Replaces Any Variables and returns the rest of the value string - -- ========================================================================================== - - CREATE FUNCTION [dbo].[vefn_RofstDataReplaceVars](@Values VarChar(Max)) Returns VarChar(Max) - WITH EXECUTE AS OWNER - AS - BEGIN - - Declare @RetVal VarChar(Max) = ''; - Declare @EqualsIndex Int; - Declare @EndIndex Int; - Declare @NameValPairStartIndex Int; - Declare @NameValPairEndIndex Int; - - Declare @VarPair VarChar(Max); - Declare @VarName VarChar(Max); - Declare @VarValue VarChar(Max); - - -- Replace Any "" Tags with the Default Value first - Select @RetVal = dbo.vefn_RofstDataReplaceApplTagsWithDefaults(@Values); - - -- Replace Any Legacy Applicability Tags with the Default Value second - Select @RetVal = dbo.vefn_RofstDataReplaceLegacyTagsWithDefaults(@RetVal); - - - If (PatIndex('%{{A%', @RetVal) > 0) - Set @EndIndex = PatIndex('%{{A%', @RetVal); - Else - Set @EndIndex = Len(@RetVal) -1; - - Set @NameValPairStartIndex = PatIndex('%{%', @RetVal); - Set @NameValPairEndIndex = PatIndex('%}%', @RetVal); - - While(@NameValPairStartIndex > 0 And @NameValPairStartIndex < @EndIndex) - Begin - - -- Get Name Value Pair [ex. {EGS=1214}] - Set @VarPair = SubString(@RetVal, @NameValPairStartIndex, (@NameValPairEndIndex - @NameValPairStartIndex) + 1); - - -- Remove Name Value Pair From Return Val - Set @RetVal = Replace(@RetVal, @VarPair, ''); - - -- Get Variable Name and Value - Set @EqualsIndex = PatIndex('%=%', @VarPair); - - If (@EqualsIndex > 0) - Begin - Set @VarName = SubString(@VarPair, 2, @EqualsIndex - 2); - Set @VarValue = SubString(@VarPair, @EqualsIndex + 1, Len(@VarPair) - @EqualsIndex - 1); - Set @VarName = Concat('{', @VarName, '}'); - - -- Replace All Occurences - Set @RetVal = Replace(@RetVal, @VarName, @VarValue); - End - - -- Get Updated Index Values - If (PatIndex('%{{A%', @RetVal) > 0) - Set @EndIndex = PatIndex('%{{A%', @RetVal); - Else - Set @EndIndex = Len(@RetVal) -1; - - Set @NameValPairStartIndex = PatIndex('%{%', @RetVal); - Set @NameValPairEndIndex = PatIndex('%}%', @RetVal); - - End -- End While(@ReplaceVarEndTagIndex > 0) - - Return @RetVal; - - END - Go - - IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Succeeded' - ELSE PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Error on Creation' - GO - - - - /* - ---------------------------------------------------------------------------------- - Views: - ---------------------------------------------------------------------------------- - [dbo].[vwRofstData_RofstExtensions] [Created] - [dbo].[vwRofstData_RofstValueTypes] [Created] - [dbo].[vwRofstData_RofstBaseRoids] [Created] - [dbo].[vwRofstData_RofstChildren] [Modified] - */ - - /****** Object: View [dbo].[vwRofstData_RofstExtensions] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstExtensions' AND type in (N'V')) - DROP VIEW [dbo].[vwRofstData_RofstExtensions] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/21/2024 - Description: (RofstData) Master View for RofstExtensions - ========================================================================================================== - */ - Create View [dbo].[vwRofstData_RofstExtensions] - As - - Select re.Offset as 'Offset', - re.RoidExt as 'RoidExt', - re.AccPageExt as 'AccPageExt' - From RofstExtension re With (NoLock) - - GO - - IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstExtensions] Succeeded' - ELSE PRINT 'View Creation: [vwRofstData_RofstExtensions] Error on Creation' - GO - - - - /****** Object: View [dbo].[vwRofstData_RofstValueTypes] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstValueTypes' AND type in (N'V')) - DROP VIEW [dbo].[vwRofstData_RofstValueTypes] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/21/2022 - Description: (RofstData) Master View for Rofst Value Types - (0) Unknown (1) Single Line Text (2) Table (3) Multiple Line Text (4) X/Y Plot (8) Image - ========================================================================================================== - */ - Create View [dbo].[vwRofstData_RofstValueTypes] - As - - Select '0' as 'TypeID', 'Unknown' as 'TypeDescription' - - Union All - - Select '1' as 'TypeID', 'Single Line Text' as 'TypeDescription' -- Fixed Length Text - - Union All - - Select '2' as 'TypeID', 'Table' as 'TypeDescription' - - Union All - - Select '3' as 'TypeID', 'Multiple Line Text' as 'TypeDescription' - - Union All - - Select '4' as 'TypeID', 'X/Y Plot' as 'TypeDescription' - - Union All - - Select '8' as 'TypeID', 'Image' as 'TypeDescription' - - GO - - IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstValueTypes] Succeeded' - ELSE PRINT 'View Creation: [vwRofstData_RofstValueTypes] Error on Creation' - GO - - - - /****** Object: View [dbo].[vwRofstData_RofstBaseRoids] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstBaseRoids' AND type in (N'V')) - DROP VIEW [dbo].[vwRofstData_RofstBaseRoids] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2024 - Description: (RofstData) Master View for Rofst Base Roid / AccPageID Values - ========================================================================================================== - */ - Create View [dbo].[vwRofstData_RofstBaseRoids] - As - - Select RofstID as 'RofstID', - Left(roid, 12) as 'BaseRoid', - Left(AccPageID, (Len(AccPageID)-2)) as 'BaseAccPageID' - From vwRofstData_RofstDefaultValues - Where AccPageID like '%.A'; - - GO - - IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstBaseRoids] Succeeded' - ELSE PRINT 'View Creation: [vwRofstData_RofstBaseRoids] Error on Creation' - GO - - - /****** Object: View [dbo].[vwRofstData_RofstChildren] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vwRofstData_RofstChildren' AND type in (N'V')) - DROP VIEW [dbo].[vwRofstData_RofstChildren] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2024 - Description: (RofstData) Master View for RofstChildren (RoChild & Groups) - ========================================================================================================== - */ - Create View [dbo].[vwRofstData_RofstChildren] - As - - Select rc.RofstChildID as 'RofstChildID', - rd.RofstID as 'RofstID', - -- RoDatabase Info - rd.dbiID as 'dbiID', - rd.dbiType as 'dbiType', - rd.dbiAW as 'dbiAW', - rd.dbiTitle as 'dbiTitle', - rd.dbiAP as 'dbiAP', - -- RoChild Info - rc.ID as 'ID', - rc.ParentID as 'ParentID', - rc.[type] as 'type', - IsNull(vt.TypeDescription, 'Unknown') as 'TypeDescription', - rc.title as 'title', - rc.roid as 'roid', - rc.appid as 'appid', - rc.[value] as 'value', - Case When (Not rc.[value] is null) Then rd.dbiAP + '-' + rc.appid Else null End as 'AccPageID' - From RofstChild rc With (NoLock) - inner join RofstDatabase rd With (NoLock) on rc.RofstID = rd.RofstID and rc.dbiID = rd.dbiID - left outer join vwRofstData_RofstValueTypes vt on vt.TypeID = rc.[type]; - - GO - - IF (@@Error = 0) PRINT 'View Creation: [vwRofstData_RofstChildren] Succeeded' - ELSE PRINT 'View Creation: [vwRofstData_RofstChildren] Error on Creation' - GO - - - - /* - ---------------------------------------------------------------------------------- - Stored Procs: - ---------------------------------------------------------------------------------- - [dbo].[vesp_RofstDataGetChildByID] [Deleted] - [dbo].[vesp_RofstDataGetExtensions] [Created] - [dbo].[vesp_RofstChildInsert] [Modified] - [dbo].[vesp_RofstDataSearch] [Modified] - [dbo].[vesp_RofstDataGetChildByAccPageID] [Modified] - [dbo].[vesp_RofstDataGetChildByRoid] [Modified] - */ - - - /****** Object: StoredProcedure [dbo].[vesp_RofstHeaderInsert] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByID' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByID] - GO - - IF (@@Error = 0) PRINT 'Procedure Deletion: [vesp_RofstDataGetChildByID] Succeeded' - ELSE PRINT 'Procedure Deletion: [vesp_RofstDataGetChildByID] Error on Creation' - GO - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetExtensions] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetExtensions' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetExtensions] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 06/21/2022 - Description: Gets the Ro Lookup Extensions - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetExtensions] - With Execute as Owner - As - Begin - - Select re.Offset, - re.RoidExt, - re.AccPageExt - From vwRofstData_RofstExtensions re - Order By re.Offset Asc; - - - Return; - End - - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetExtensions] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetExtensions] Error on Creation' - GO - - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstChildInsert] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstChildInsert' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstChildInsert] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2022 - Description: - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstChildInsert] - ( - @RofstID Int, - @ID Int, - @ParentID Int, - @dbiID Int, - @type Int, - @title VarChar(Max), - @roid VarChar(50), - @appid VarChar(Max) = null, - @value VarChar(Max) = null - ) - With Execute as Owner - As - Begin - - Declare @BaseAccPageID VarChar(Max) = null; - Declare @DefaultValues VarChar(Max); - - - -- Create Rofst Child/Group Record --> [Roid = (12) Digits] - Insert Into RofstChild (RofstID, ID, ParentID, dbiID, [type], title, roid, appid, [value]) - Values (@RofstID, @ID, @ParentID, @dbiID, @type, @title, @roid, @appid, @value); - - - -- Check for appid, if exists, then insert the default value for each return type if multi-value - If (Len(@appid) > 0) - Begin - - -- Get Accessory Page ID - Select @BaseAccPageID = dbo.vefn_RofstDataCleanUnitInfoTags(Concat(d.dbiAP, '-', @appid), 1) - From RofstDatabase d with (NoLock) - Where d.RofstID = @RofstID And d.dbiID = @dbiID; - - -- Insert Rofst Default Value(s) (Children RoChild) --> [Roid = (16) Digits] - Select @DefaultValues = Replace(dbo.vefn_RofstDataReplaceVars(@value), '{', ''); - - With ChildrenValues as - ( - Select x.ListPosition as 'OffsetIndex', - Case When (PatIndex('%=%', x.ListValue) > 0) Then Right(x.ListValue, Len(x.ListValue)-PatIndex('%=%', x.ListValue)) Else x.ListValue End as 'DefaultValue' - From [dbo].[vefn_ParseStringListToTable](@DefaultValues, '}') x - Where Len(x.ListValue) > 0 - ) - Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID) - Select @RofstID as 'RofstID', - Concat(@roid, re.RoidExt) as 'roid', - Case When (Len(RTrim(LTrim(cv.DefaultValue))) > 0 ) Then dbo.vefn_RofstDataCleanUnitInfoTags(cv.DefaultValue, 0) Else '[TBD]' End as 'value', - Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID' - From ChildrenValues cv - inner join vwRofstData_RofstExtensions re on re.Offset = cv.OffsetIndex - Order By cv.OffsetIndex Asc - - - End -- (Len(@appid) > 0) - - - Return; - - End - Go - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstChildInsert] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstChildInsert] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataSearch] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataSearch' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataSearch] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2022 - Description: RO Default Value Search - - @SearchTypeID => (1) Starts With (2) Ends With (3) Contains (4) Exact Match - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataSearch] - ( - @RofstID int, - @Value VarChar(Max) = null, - @SearchTypeID Int = 1, -- Starts With - @OnlyRoid16 Bit = 1, -- Return Only Roid16 Records - @MaxNumOfRecords Int = null - ) - With Execute as Owner - As - Begin - - -- Remove any leading/trailing white spaces - Set @Value = dbo.vefn_Clean( @Value, 0, null ); - - -- Escape any % signs in the search value - Set @Value = Replace( @Value, '%', '[%]' ); - - -- Format search value - If (Len(@Value) = 0) Set @Value = null; - - -- Create Temp Results Table - Create Table #SearchResults (roid VarChar(50) Not Null, [value] VarChar(Max), RowNum Int Not Null Primary Key); - - -- Select roids/values based on search criteria - Insert Into #SearchResults (roid, [value], RowNum) - Select rdv.roid, - rdv.[value], - Row_Number() Over (Order By rdv.[value] Asc, rdv.roid Asc) as 'RowNum' - From vwRofstData_RofstDefaultValues rdv - Where rdv.RofstID = @RofstID - And (@OnlyRoid16 = 0 Or Len(rdv.roid) = 16) - And ((@Value is null) - Or (@SearchTypeID = 1 And rdv.[value] like @Value + '%') -- Starts With - Or (@SearchTypeID = 2 And rdv.[value] like '%' + @Value) -- Ends With - Or (@SearchTypeID = 3 And rdv.[value] like '%' + @Value + '%') -- Contains - Or (@SearchTypeID = 4 And rdv.[value] = @Value)) -- Exact Match - Order By rdv.[value] Asc, rdv.roid Asc - Option (Recompile); - - -- Return the specified number of results - Select sr.roid, sr.[value] - From #SearchResults sr - Where (@MaxNumOfRecords is null Or sr.RowNum <= @MaxNumOfRecords) - Order By sr.RowNum Asc; - - Return; - End - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataSearch] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataSearch] Error on Creation' - GO - - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildByAccPageID] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByAccPageID' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByAccPageID] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2022 - Description: Check if the AccPageID passed in has a specific Return Value Type Extension (.A, .B, .C, etc.) - If so, then strip off the return value specific extension to get the BaseAccPageID for the lookup. - Use the BaseAccPageID to lookup the BaseRoid, then use the Roid to lookup the Ro Child Object - - Note** Using the AccPageID to first lookup the roid, then using the roid to lookup the data is - significantly faster than directly looking up the data using the AccPageID because of the indexes - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetChildByAccPageID] - ( - @RofstID int, - @AccPageID VarChar(50) - ) - With Execute as Owner - As - Begin - - Declare @BaseAccPageID VarChar(Max); - Declare @Roid VarChar(Max); - - If (PatIndex('%.[A-Z]', @AccPageID) > 0) - Set @BaseAccPageID = Left(@AccPageID, Len(@AccPageID)-2); - Else - Set @BaseAccPageID = @AccPageID; - - -- First use the AccPageID to get the BaseRoid - Select @Roid = rb.BaseRoid - From vwRofstData_RofstBaseRoids rb - Where rb.RofstID = @RofstID - And rb.BaseAccPageID = @BaseAccPageID; - - -- Then use the Roid to lookup the Ro Child Object - Select rc.ROFstID, - rc.dbiID, - rc.ID, - rc.ParentID, - rc.[type], - rc.title, - rc.roid, - rc.appid, - rc.[value], - rc.AccPageID - From vwRofstData_RofstChildren rc - Where rc.RofstID = @RofstID - And rc.roid = @Roid; - - Return; - End - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildByAccPageID] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildByAccPageID] Error on Creation' - GO - - - /****** Object: StoredProcedure [dbo].[vesp_RofstDataGetChildByRoid] ***********************/ - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstDataGetChildByRoid' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstDataGetChildByRoid] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2022 - Description: The data in the Rofst Children table currently only goes down to the (12) digit roid level. - To look up a specific return type value (16) digit roid for a RO object, you first have to - load the base RO object by its (12) digit roid in code, and then look for the specific - return value in the RO objects children collection because the values for any - multiple/variable return type formats can vary at runtime, based on your current selected - DocVersion and the Selected Slave (Unit) / OtherChild Override. - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstDataGetChildByRoid] - ( - @RofstID int, - @Roid VarChar(50) - ) - With Execute as Owner - As - Begin - - -- Only use the first (12) characters to lookup an RoChild by its roid - -- If its a (16) digit roid, then use its last (4) characters [roidExt ==> specific to a return type value] - -- to select the specified return value format type in the code once all of the children Ro Return types have - -- been loaded into memory in the code - - Set @Roid = Left(@Roid + '00000000', 12); - - Select rc.ROFstID, - rc.dbiID, - rc.ID, - rc.ParentID, - rc.[type], - rc.title, - rc.roid, - rc.appid, - rc.[value], - rc.AccPageID - From vwRofstData_RofstChildren rc - Where rc.RofstID = @RofstID - And rc.roid = @Roid; - - Return; - End - - GO - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildByRoid] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildByRoid] Error on Creation' - GO - - - - -- Delete All Existing Rofst Table Data - Delete From RofstHeader; - - -/* -========================================================================================================== - End: B2022-083: Support Conditional RO Values (v2.1) -========================================================================================================== -*/ - -/* -========================================================================================================== - Start: B2022-049 Unlink single procedure for enhanced (if data got corrupted) -========================================================================================================== -*/ -If Exists(SELECT * FROM sys.objects Where name = 'vesp_PurgeProcLinkedItemsAndChildren' AND type in (N'P')) -DROP PROCEDURE [dbo].[vesp_PurgeProcLinkedItemsAndChildren] -GO - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2022 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -Create PROCEDURE [dbo].[vesp_PurgeProcLinkedItemsAndChildren](@EnhanceID int, @EnhType int) - -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - -- Only unlink for the input procedure number & its children. Do not follow the links, i.e. source or enhanced. This - -- can be used for removing link information if the links between the 2, source & enhanced, get corrupted. - declare @Enh1 TABLE - ( - ID int, - xConfig xml - ) - insert into @Enh1 - select CC.ContentID, CC.xConfig from (select *, cast(config as xml) xConfig from Contents) CC - JOIN vefn_ChildItems(@EnhanceID) VCI ON VCI.ContentID = CC.ContentID - cross apply VEFN_GetNewEnhancedData(VCI.itemid,@EnhType) VEN - - Update @Enh1 Set xConfig.modify('delete //Enhanced[@Type=sql:variable("@EnhType")]') From @Enh1 - - Update CC Set Config = cast(xconfig as varchar(max)) From Contents CC - Join @Enh1 EE ON EE.ID = CC.ContentID - - - SELECT [ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[LastChanged], - (SELECT COUNT(1) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(1) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(1) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(1) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(1) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(1) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(1) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(1) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(1) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM [Contents] where ContentID in (Select ID From @Enh1) - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_PurgeProcLinkedItemsAndChildren] Succeeded' -ELSE PRINT 'Procedure Creation: [vesp_PurgeProcLinkedItemsAndChildren] Error on Creation' -GO - -/* -========================================================================================================== - End: B2022-049 Unlink single procedure for enhanced (if data got corrupted) [Version 2.xx] -========================================================================================================== -*/ - - -/* -========================================================================================================== - Start: B2022-088: [JPR] Find Doc Ro button not working in Word Sections - B2022-098: [JPR] ROs not being resolved in Word Sections -========================================================================================================== -*/ - -IF EXISTS (Select * From dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[vesp_RofstDataGetChildByAccPageID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP Procedure [dbo].[vesp_RofstDataGetChildByAccPageID]; -GO - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2022 - Description: Check if the AccPageID passed in has a specific Return Value Type Extension (.A, .B, .C, etc.) - If so, then strip off the return value specific extension to get the BaseAccPageID for the lookup. - Use the BaseAccPageID to lookup the BaseRoid, then use the Roid to lookup the Ro Child Object - - Note** Using the AccPageID to first lookup the roid, then using the roid to lookup the data is - significantly faster than directly looking up the data using the AccPageID because of the indexes -========================================================================================================== - */ -Create Procedure [dbo].[vesp_RofstDataGetChildByAccPageID] -( - @RofstID int, - @AccPageID VarChar(50) -) -With Execute as Owner -As -Begin - - Declare @BaseAccPageID VarChar(Max); - Declare @BaseRoid VarChar(Max); - - -- Check if AccPageID has a valid extension - If ((PatIndex('%.[A-Z]', @AccPageID) > 0) And ((Select Count(1) From vwRofstData_RofstBaseRoids Where BaseAccPageID = @AccPageID) <= 0)) - Set @BaseAccPageID = Left(@AccPageID, Len(@AccPageID)-2); - Else - Set @BaseAccPageID = @AccPageID; - - -- Use the AccPageID to get the BaseRoid - Select @BaseRoid = rb.BaseRoid - From vwRofstData_RofstBaseRoids rb - Where rb.RofstID = @RofstID - And rb.BaseAccPageID = @BaseAccPageID; - - -- Then use the BaseRoid to lookup the Ro Child Object - Select rc.ROFstID, - rc.dbiID, - rc.ID, - rc.ParentID, - rc.[type], - rc.title, - rc.roid, - rc.appid, - rc.[value], - rc.AccPageID - From vwRofstData_RofstChildren rc - Where rc.RofstID = @RofstID - And rc.roid = @BaseRoid; - - Return; -End -GO - - -IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetChildByAccPageID] Succeeded' -ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetChildByAccPageID] Error on Creation' -GO - - - - -IF EXISTS (Select * From dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[vesp_RofstDataGetBaseAccPageKeys]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP Procedure [dbo].[vesp_RofstDataGetBaseAccPageKeys]; -GO - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/*****************************************************************************? - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -========================================================================================================== - Author: Jake Ropar - Create Date: 08/11/2022 - Description: Gets all the Base AccPageKeys that end with a "." period followed by an Alpha Character (A through Z) -========================================================================================================== - */ -Create Procedure [dbo].[vesp_RofstDataGetBaseAccPageKeys] -( - @RofstID int -) -With Execute as Owner -As -Begin - - Select BaseAccPageID - From vwRofstData_RofstBaseRoids - Where BaseAccPageID like '%.[A-Z]'; - - Return; -End -GO - - -IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstDataGetBaseAccPageKeys] Succeeded' -ELSE PRINT 'Procedure Creation: [vesp_RofstDataGetBaseAccPageKeys] Error on Creation' -GO - - - - - -If Exists(Select * From sys.objects Where type = 'FN' And object_id = OBJECT_ID('[dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults]')) - Drop Function [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults]; - - - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - --- ========================================================================================== --- Author: Jake Ropar --- Create Date: 06/21/2022 --- Description: Replaces any legacy applicability tags with the default value --- ========================================================================================== - -CREATE FUNCTION [dbo].[vefn_RofstDataReplaceLegacyTagsWithDefaults](@Values VarChar(Max)) Returns VarChar(Max) -WITH EXECUTE AS OWNER -AS -BEGIN - - Declare @RetVal VarChar(Max) = ''; - Declare @DefaultValue VarChar(Max) = ''; - - Declare @StartTagIndex Int; - Declare @EndTagIndex Int; - Declare @StartTagValue VarChar(Max); - Declare @StartValIndex Int; - Declare @EndValIndex Int; - - Declare @TagName VarChar(Max); - Declare @LegacyTagNames VarChar(Max) = 'U-ID,U-NUMBER,U-NAME,U-TEXT,U-OTHERID,U-OTHERNUMBER,U-OTHERNAME,U-OTHERTEXT'; - - -- Make Sure all tag instances are upper case & Remove any internal spaces - Set @RetVal = dbo.vefn_RofstDataCleanUnitInfoTags(@Values, 0); - - -- Remove any instances of double "}" that have a spaces between them ex: "} }" - Set @RetVal = Replace(@RetVal, '} }', '}}'); - - Declare LegacyTags_Cursor Cursor Fast_Forward For - Select '{' + x.ListValue + '{' as 'TagName' - From [dbo].[vefn_ParseStringListToTable](@LegacyTagNames, ',') x - - Open LegacyTags_Cursor - - Fetch Next From LegacyTags_Cursor Into @TagName - - While (@@FETCH_STATUS = 0) - Begin - - -- Get Start/End Index of Tag - Set @StartTagIndex = PatIndex('%' + @TagName + '%', @RetVal); - Set @EndTagIndex = PatIndex('%}}%', @RetVal); - - While (@StartTagIndex > 0) - Begin - - Set @StartTagValue = SubString(@RetVal, @StartTagIndex, (@EndTagIndex - @StartTagIndex) + 2); - - Set @StartValIndex = PatIndex('%=%', @StartTagValue); - Set @EndValIndex = PatIndex('%}%', @StartTagValue); - - Set @DefaultValue = SubString(@StartTagValue, @StartValIndex + 1, (@EndValIndex - @StartValIndex) - 1); - Set @RetVal = Replace(@RetVal, @StartTagValue, @DefaultValue); - - Set @StartTagIndex = PatIndex('%' + @TagName + '%', @RetVal); - Set @EndTagIndex = PatIndex('%}}%', @RetVal); - - End -- While (@StartTagIndex > 0) - - - Fetch Next From LegacyTags_Cursor Into @TagName - End - - Close LegacyTags_Cursor; - Deallocate LegacyTags_Cursor; - - - Return @RetVal; - -END -Go - - -IF (@@Error = 0) PRINT 'Procedure Creation: [vefn_RofstDataReplaceLegacyTagsWithDefaults] Succeeded' -ELSE PRINT 'Procedure Creation: [vefn_RofstDataReplaceLegacyTagsWithDefaults] Error on Creation' -GO - - - -/* -========================================================================================================== - End: B2022-088: [JPR] Find Doc Ro button not working in Word Sections - B2022-098: [JPR] ROs not being resolved in Word Sections -========================================================================================================== -*/ - -/* -========================================================================================================== - Start: B2022-104: SearchReferenced Objects in PROMS is not finding any results -========================================================================================================== -*/ - - -If Exists (Select * From sys.Indexes Where Name = N'IX_tblROUsagesRODbIDDeleteStatusContentID') - Drop Index [IX_tblROUsagesRODbIDDeleteStatusContentID] on [dbo].[tblROUsages] -Go - -CREATE NONCLUSTERED INDEX [IX_tblROUsagesRODbIDDeleteStatusContentID] -ON [dbo].[tblROUsages] ([RODbID],[DeleteStatus]) -INCLUDE ([ContentID],[ROID]) -WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO - - -IF (@@Error = 0) PRINT 'Index Creation: [IX_tblROUsagesRODbIDDeleteStatusContentID] Succeeded' -ELSE PRINT 'Index Creation: [IX_tblROUsagesRODbIDDeleteStatusContentID] Error on Creation' -GO - - - - -If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataFormatRoidKey' AND type in (N'FN')) -DROP FUNCTION [dbo].[vefn_RofstDataFormatRoidKey] -GO - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - --- ========================================================================================== --- Author: Jake Ropar --- Create Date: 08/19/2022 --- Description: Cleans/Formats the specified roid key, with its return value ext if applicable --- ========================================================================================== - -Create Function [dbo].[vefn_RofstDataFormatRoidKey](@Roid VarChar(25), @Check16Digits bit = 0) Returns VarChar(Max) -With Execute As Owner -Begin - - Declare @RoidKey VarChar(Max) = ''; - - -- Trim Start/End and Replace Any Nulls with Empty Spaces ('') - Set @RoidKey = dbo.vefn_Clean(@Roid, 1, null); - - -- Check if Roid is Null/Empty - If (Len(@RoidKey) > 0) - Begin - - -- Roid Cleanup / Consistency Checks - Set @RoidKey = Upper(@RoidKey); -- Force Upper Case - Set @RoidKey = Replace(@RoidKey, '', ''); -- Replace Any Abbreviated Unit Info Tags - Set @RoidKey = Replace(@RoidKey, ' ', ''); -- Remove Any Internal Spaces - - -- Check if Roid is a Unit Info Tag or RO Child - If (Not @RoidKey like '= 1) Set @RoidKey = Left(@RoidKey, 12) + '0041'; - - -- Check Roid Extension (If Any) and Fix Default Extension ifusing the old format "0000" - If (Len(@RoidKey) = 16 And Right(@RoidKey, 4) = '0000') Set @RoidKey = Left(@RoidKey, 12) + '0041'; - - End - - End - - Return @RoidKey; - -End -Go - - -IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataFormatRoidKey] Succeeded' -ELSE PRINT 'Function Creation: [vefn_RofstDataFormatRoidKey] Error on Creation' -GO - - - - -If Exists(Select * From sys.objects Where type = 'TF' And object_id = OBJECT_ID('[dbo].[FindRoUsages]')) -Drop Function [dbo].[FindRoUsages]; -Go - -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - --- ========================================================================================== --- Author: Rich Mark --- Create Date: 01/01/2018 --- Description: Returns the ContentIDs for any Procedure/WordSections that are currently --- using any RO values in the @ROSearchString --- --- Modified: [2022.08.19 - Jake Ropar] --- Moved the logic for the Roid case statements into a new function [dbo].[vefn_RofstDataFormatRoidKey]. --- This standard roid formatting logic can now be utilized by any other objects in the database --- like (Views/Procs/FUnctions/etc.) to ensure consistency when comparing roids. --- I also added additional logic to support any (16) digit roids that are still using the older default --- roid ext of "0000" instead of the new standard format "0041". --- --- Examples: 1) Declare @ROSearchString VarChar(Max) = '1:000200000089'; Select * From FindRoUsages(ROSearchString); --- 2) Select * From FindRoUsages('1:000200000089'); --- ========================================================================================== - -Create Function [dbo].[FindRoUsages](@ROSearchString VarChar(Max)) -Returns @Results Table -( - ContentID int Primary Key -) -With Execute as Owner -Begin - - Insert Into @Results - - Select ru.ContentID as 'ContentID' - From ROUsages ru with (NoLock) - inner join vefn_SplitROSearch(@ROSearchString) rr on rr.RODbID = ru.RODbID - And dbo.vefn_RofstDataFormatRoidKey(ru.Roid, 1) like rr.Roid + '%' Collate SQL_Latin1_General_CP1_CI_AS - - Union - - Select e.ContentID as 'ContentID' - From Entries e with (NoLock) - inner join DROUsages ru with (NoLock) on ru.DocID = e.DocID - inner join vefn_SplitROSearch(@ROSearchString) rr on rr.RODbID = ru.RODbID - And dbo.vefn_RofstDataFormatRoidKey(ru.Roid, 1) like rr.Roid + '%' Collate SQL_Latin1_General_CP1_CI_AS - - Option (Recompile); - - Return; -End -Go - -IF (@@Error = 0) PRINT 'Function Creation: [FindRoUsages] Succeeded' -ELSE PRINT 'Function Creation: [FindRoUsages] Error on Creation' -GO - - -/* -========================================================================================================== - End: B2022-104: SearchReferenced Objects in PROMS is not finding any results -========================================================================================================== -*/ - -/* -========================================================================================================== - Begin: B2022-121: RO values containing curly braces around values that are NOT multi return values do not resolved in Word Sections. -========================================================================================================== -*/ - - -IF EXISTS (Select * From dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[vesp_RofstChildInsert]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP Procedure [dbo].[vesp_RofstChildInsert]; -GO - -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO - - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2022 - Description: Inserts the RO Child object and associated return values -========================================================================================================== - */ -Create Procedure [dbo].[vesp_RofstChildInsert] -( - @RofstID Int, - @ID Int, - @ParentID Int, - @dbiID Int, - @type Int, - @title VarChar(Max), - @roid VarChar(50), - @appid VarChar(Max) = null, - @value VarChar(Max) = null -) -With Execute as Owner -As -Begin - - Declare @BaseAccPageID VarChar(Max) = null; - Declare @DefaultValues VarChar(Max); - - Declare @RoidExt VarChar(Max); - Declare @AccPageExt VarChar(Max); - - - -- Create Rofst Child/Group Record --> [Roid = (12) Digits] - Insert Into RofstChild (RofstID, ID, ParentID, dbiID, [type], title, roid, appid, [value]) - Values (@RofstID, @ID, @ParentID, @dbiID, @type, @title, @roid, @appid, @value); - - - -- Check for appid, if exists, then insert the default value for each return type if multi-value - If (Len(@appid) > 0) - Begin - - -- Get Accessory Page ID - Select @BaseAccPageID = dbo.vefn_RofstDataCleanUnitInfoTags(Concat(d.dbiAP, '-', @appid), 1) - From RofstDatabase d with (NoLock) - Where d.RofstID = @RofstID And d.dbiID = @dbiID; - - Select @DefaultValues = dbo.vefn_RofstDataReplaceVars(@value); - - If (PatIndex('%=%', @DefaultValues) > 0) - Begin - - -- Insert Rofst Default Values (Multi-Values) --> [Roid = (16) Digits] - Select @DefaultValues = Replace(@DefaultValues, '{', ''); - - With ChildrenValues as - ( - Select x.ListPosition as 'OffsetIndex', - Case When (PatIndex('%=%', x.ListValue) > 0) Then Right(x.ListValue, Len(x.ListValue)-PatIndex('%=%', x.ListValue)) Else x.ListValue End as 'DefaultValue' - From [dbo].[vefn_ParseStringListToTable](@DefaultValues, '}') x - Where Len(x.ListValue) > 0 - ) - Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID) - Select @RofstID as 'RofstID', - Concat(@roid, re.RoidExt) as 'roid', - Case When (Len(RTrim(LTrim(cv.DefaultValue))) > 0 ) Then dbo.vefn_RofstDataCleanUnitInfoTags(cv.DefaultValue, 0) Else '[TBD]' End as 'value', - Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID' - From ChildrenValues cv - inner join vwRofstData_RofstExtensions re on re.Offset = cv.OffsetIndex - Order By cv.OffsetIndex Asc - - End - Else - Begin - - -- Insert Rofst Default Value (Single Value) --> [Roid = (16) Digits] - Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID) - Select @RofstID as 'RofstID', - Concat(@roid, re.RoidExt) as 'roid', - Case When (Len(RTrim(LTrim(@DefaultValues))) > 0 ) Then dbo.vefn_RofstDataCleanUnitInfoTags(@DefaultValues, 0) Else '[TBD]' End as 'value', - Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID' - From vwRofstData_RofstExtensions re - Where re.Offset = 1; - - End - - End -- (Len(@appid) > 0) - - - Return; - -End -Go - -IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstChildInsert] Succeeded' -ELSE PRINT 'Procedure Creation: [vesp_RofstChildInsert] Error on Creation' -GO - - - - - -If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceVars' AND type in (N'FN')) -DROP FUNCTION [dbo].[vefn_RofstDataReplaceVars] -GO - -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ --- ========================================================================================== --- Author: Jake Ropar --- Create Date: 3/25/2022 --- Description: Replaces Any Variables and returns the rest of the value string --- ========================================================================================== - -CREATE FUNCTION [dbo].[vefn_RofstDataReplaceVars](@Values VarChar(Max)) Returns VarChar(Max) -WITH EXECUTE AS OWNER -AS -BEGIN - - Declare @RetVal VarChar(Max) = ''; - Declare @EqualsIndex Int; - Declare @EndIndex Int; - Declare @NameValPairStartIndex Int; - Declare @NameValPairEndIndex Int; - - Declare @VarPair VarChar(Max); - Declare @VarName VarChar(Max); - Declare @VarValue VarChar(Max); - - -- Replace Any "" Tags with the Default Value first - Select @RetVal = dbo.vefn_RofstDataReplaceApplTagsWithDefaults(@Values); - - -- Replace Any Legacy Applicability Tags with the Default Value second - Select @RetVal = dbo.vefn_RofstDataReplaceLegacyTagsWithDefaults(@RetVal); - - If (PatIndex('%=%', @RetVal) > 0) - Begin - - If (PatIndex('%{{A%', @RetVal) > 0) - Set @EndIndex = PatIndex('%{{A%', @RetVal); - Else - Set @EndIndex = Len(@RetVal) -1; - - Set @NameValPairStartIndex = PatIndex('%{%', @RetVal); - Set @NameValPairEndIndex = PatIndex('%}%', @RetVal); - - While(@NameValPairStartIndex > 0 And @NameValPairStartIndex < @EndIndex) - Begin - - -- Get Name Value Pair [ex. {EGS=1214}] - Set @VarPair = SubString(@RetVal, @NameValPairStartIndex, (@NameValPairEndIndex - @NameValPairStartIndex) + 1); - - -- Remove Name Value Pair From Return Val - Set @RetVal = Replace(@RetVal, @VarPair, ''); - - -- Get Variable Name and Value - Set @EqualsIndex = PatIndex('%=%', @VarPair); - - If (@EqualsIndex > 0) - Begin - Set @VarName = SubString(@VarPair, 2, @EqualsIndex - 2); - Set @VarValue = SubString(@VarPair, @EqualsIndex + 1, Len(@VarPair) - @EqualsIndex - 1); - Set @VarName = Concat('{', @VarName, '}'); - - -- Replace All Occurences - Set @RetVal = Replace(@RetVal, @VarName, @VarValue); - End - - -- Get Updated Index Values - If (PatIndex('%{{A%', @RetVal) > 0) - Set @EndIndex = PatIndex('%{{A%', @RetVal); - Else - Set @EndIndex = Len(@RetVal) -1; - - Set @NameValPairStartIndex = PatIndex('%{%', @RetVal); - Set @NameValPairEndIndex = PatIndex('%}%', @RetVal); - - End -- End While(@ReplaceVarEndTagIndex > 0) - - End - - Return @RetVal; - -END -GO - -IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Succeeded' -ELSE PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Error on Creation' -GO - - -/* -========================================================================================================== - End: B2022-121: RO values containing curly braces around values that are NOT multi return values do not resolved in Word Sections. -========================================================================================================== -*/ - - -/* -========================================================================================================== - Begin: B2022-124: [JPR] Blank RO Values (All Spaces) printing as ? -========================================================================================================== -*/ - - - If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataReplaceVars' AND type in (N'FN')) - DROP FUNCTION [dbo].[vefn_RofstDataReplaceVars] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - -- ========================================================================================== - -- Author: Jake Ropar - -- Create Date: 3/25/2022 - -- Description: Replaces Any Variables and returns the rest of the value string - -- ========================================================================================== - - CREATE FUNCTION [dbo].[vefn_RofstDataReplaceVars](@Values VarChar(Max)) Returns VarChar(Max) - WITH EXECUTE AS OWNER - AS - BEGIN - - Declare @RetVal VarChar(Max) = ''; - Declare @EqualsIndex Int; - Declare @EndIndex Int; - Declare @NameValPairStartIndex Int; - Declare @NameValPairEndIndex Int; - - Declare @VarPair VarChar(Max); - Declare @VarName VarChar(Max); - Declare @VarValue VarChar(Max); - - -- Replace Any "" Tags with the Default Value first - Select @RetVal = dbo.vefn_RofstDataReplaceApplTagsWithDefaults(@Values); - - -- Replace Any Legacy Applicability Tags with the Default Value second - Select @RetVal = dbo.vefn_RofstDataReplaceLegacyTagsWithDefaults(@RetVal); - - If (PatIndex('%=%', @RetVal) > 0) - Begin - - If (PatIndex('%{{A%', @RetVal) > 0) - Set @EndIndex = PatIndex('%{{A%', @RetVal); - Else - Set @EndIndex = DataLength(@RetVal) -1; - - Set @NameValPairStartIndex = PatIndex('%{%', @RetVal); - Set @NameValPairEndIndex = PatIndex('%}%', @RetVal); - - While(@NameValPairStartIndex > 0 And @NameValPairStartIndex < @EndIndex) - Begin - - -- Get Name Value Pair [ex. {EGS=1214}] - Set @VarPair = SubString(@RetVal, @NameValPairStartIndex, (@NameValPairEndIndex - @NameValPairStartIndex) + 1); - - -- Remove Name Value Pair From Return Val - Set @RetVal = Replace(@RetVal, @VarPair, ''); - - -- Get Variable Name and Value - Set @EqualsIndex = PatIndex('%=%', @VarPair); - - If (@EqualsIndex > 0) - Begin - Set @VarName = SubString(@VarPair, 2, @EqualsIndex - 2); - Set @VarValue = SubString(@VarPair, @EqualsIndex + 1, Len(@VarPair) - @EqualsIndex - 1); - Set @VarName = Concat('{', @VarName, '}'); - - -- Replace All Occurences - Set @RetVal = Replace(@RetVal, @VarName, @VarValue); - End - - -- Get Updated Index Values - If (PatIndex('%{{A%', @RetVal) > 0) - Set @EndIndex = PatIndex('%{{A%', @RetVal); - Else - Set @EndIndex = Len(@RetVal) -1; - - Set @NameValPairStartIndex = PatIndex('%{%', @RetVal); - Set @NameValPairEndIndex = PatIndex('%}%', @RetVal); - - End -- End While(@ReplaceVarEndTagIndex > 0) - - End - - Return @RetVal; - - END - GO - - - - IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Succeeded' - ELSE PRINT 'Function Creation: [vefn_RofstDataReplaceVars] Error on Creation' - GO - - - - - If Exists(SELECT * FROM sys.objects Where name = 'vefn_RofstDataCleanUnitInfoTags' AND type in (N'FN')) - DROP FUNCTION [dbo].[vefn_RofstDataCleanUnitInfoTags] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - -- ========================================================================================== - -- Author: Jake Ropar - -- Create Date: 06/21/2022 - -- Description: Removes any legacy legacy unit info variables and fixes older applicability tags - -- ========================================================================================== - - CREATE FUNCTION [dbo].[vefn_RofstDataCleanUnitInfoTags](@Values VarChar(Max), @RemoveUnitInfoVars bit = 0) Returns VarChar(Max) - WITH EXECUTE AS OWNER - AS - BEGIN - - Declare @RetVal VarChar(Max) = @Values; - - If (Len(@RetVal) > 0) - Begin - - Set @RetVal = dbo.vefn_Clean(@Values, 1, null); - - -- Make Sure all tag/var instances are upper case & Remove any internal spaces - Set @RetVal = Replace(@RetVal, 'U-OTHER TEXT', 'U-OTHERTEXT'); - Set @RetVal = Replace(@RetVal, 'U-OTHER NUMBER', 'U-OTHERNUMBER'); - Set @RetVal = Replace(@RetVal, 'U-OTHER NAME', 'U-OTHERNAME'); - Set @RetVal = Replace(@RetVal, 'U-OTHER ID', 'U-OTHERID'); - Set @RetVal = Replace(@RetVal, '', ''); - - If (@RemoveUnitInfoVars > 0) - Begin - - -- Remove any Unit Info Variables - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - Set @RetVal = Replace(@RetVal, '', ''); - - End - - End - - Return @RetVal; - - END - Go - - - IF (@@Error = 0) PRINT 'Function Creation: [vefn_RofstDataCleanUnitInfoTags] Succeeded' - ELSE PRINT 'Function Creation: [vefn_RofstDataCleanUnitInfoTags] Error on Creation' - GO - - - - If Exists(SELECT * FROM sys.objects Where name = 'vesp_RofstChildInsert' AND type in (N'P')) - DROP PROCEDURE [dbo].[vesp_RofstChildInsert] - GO - - SET ANSI_NULLS ON - GO - SET QUOTED_IDENTIFIER ON - GO - - /***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2020 - Volian Enterprises, Inc. All rights reserved. - *****************************************************************************/ - /* - ========================================================================================================== - Author: Jake Ropar - Create Date: 03/24/2022 - Description: Inserts the RO Child object and associated return values - ========================================================================================================== - */ - Create Procedure [dbo].[vesp_RofstChildInsert] - ( - @RofstID Int, - @ID Int, - @ParentID Int, - @dbiID Int, - @type Int, - @title VarChar(Max), - @roid VarChar(50), - @appid VarChar(Max) = null, - @value VarChar(Max) = null, - @missingDefaultValue VarChar(Max) = null - ) - With Execute as Owner - As - Begin - - Declare @BaseAccPageID VarChar(Max) = null; - Declare @DefaultValues VarChar(Max); - - Declare @RoidExt VarChar(Max); - Declare @AccPageExt VarChar(Max); - - -- Default missing value if Null (Null values not allowed for the [value] field in the RofstDefaultValue table - if (DataLength(IsNull(@missingDefaultValue, '')) <= 0) - Set @missingDefaultValue = '[TBD]'; - - -- Create Rofst Child/Group Record --> [Roid = (12) Digits] - Insert Into RofstChild (RofstID, ID, ParentID, dbiID, [type], title, roid, appid, [value]) - Values (@RofstID, @ID, @ParentID, @dbiID, @type, @title, @roid, @appid, @value); - - - -- Check for appid, if exists, then insert the default value for each return type if multi-value - If (Len(@appid) > 0) - Begin - - -- Get Accessory Page ID - Select @BaseAccPageID = dbo.vefn_RofstDataCleanUnitInfoTags(Concat(d.dbiAP, '-', @appid), 1) - From RofstDatabase d with (NoLock) - Where d.RofstID = @RofstID And d.dbiID = @dbiID; - - Select @DefaultValues = dbo.vefn_RofstDataReplaceVars(@value); - - If (PatIndex('%=%', @DefaultValues) > 0) - Begin - - -- Insert Rofst Default Values (Multi-Values) --> [Roid = (16) Digits] - Select @DefaultValues = Replace(@DefaultValues, '{', ''); - - With ChildrenValues as - ( - Select x.ListPosition as 'OffsetIndex', - Case When (PatIndex('%=%', x.ListValue) > 0) Then Right(x.ListValue, Len(x.ListValue)-PatIndex('%=%', x.ListValue)) Else x.ListValue End as 'DefaultValue' - From [dbo].[vefn_ParseStringListToTable](@DefaultValues, '}') x - Where Len(x.ListValue) > 0 - ) - Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID) - Select @RofstID as 'RofstID', - Concat(@roid, re.RoidExt) as 'roid', - Case When (DataLength(cv.DefaultValue) > 0) Then dbo.vefn_RofstDataCleanUnitInfoTags(cv.DefaultValue, 0) Else @missingDefaultValue End as 'value', - Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID' - From ChildrenValues cv - inner join vwRofstData_RofstExtensions re on re.Offset = cv.OffsetIndex - Order By cv.OffsetIndex Asc - - End - Else - Begin - - -- Insert Rofst Default Value (Single Value) --> [Roid = (16) Digits] - Insert Into RofstDefaultValue (RofstID, roid, [value], AccPageID) - Select @RofstID as 'RofstID', - Concat(@roid, re.RoidExt) as 'roid', - Case When (DataLength(@DefaultValues) > 0) Then dbo.vefn_RofstDataCleanUnitInfoTags(@DefaultValues, 0) Else @missingDefaultValue End as 'value', - Concat(@BaseAccPageID, '.', re.AccPageExt) as 'AccPageID' - From vwRofstData_RofstExtensions re - Where re.Offset = 1; - - End - - End -- (Len(@appid) > 0) - - - Return; - - End - Go - - - - IF (@@Error = 0) PRINT 'Procedure Creation: [vesp_RofstChildInsert] Succeeded' - ELSE PRINT 'Procedure Creation: [vesp_RofstChildInsert] Error on Creation' - GO - - - -/* -========================================================================================================== - End: B2022-124: [JPR] Blank RO Values (All Spaces) printing as ? -========================================================================================================== -*/ - - ------------------------------------------------------------------------------ -/* - --------------------------------------------------------------------------- - | ADD New Code Before this Block | - | Change Date and Description | - --------------------------------------------------------------------------- -*/ ------------------------------------------------------------------------------ --- Rebuild / Reorganize All Indexes -exec [dbo].[vesp_UtilityCheckIndexes]; - -IF (@@Error = 0) PRINT 'Running vesp_UtilityCheckIndexes Succeeded' -ELSE PRINT 'Running vesp_UtilityCheckIndexes Failed to Execute' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetSQLCodeRevision]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetSQLCodeRevision]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2022 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetSQLCodeRevision] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - -- Change information in the next line when you are done - set nocount on - DECLARE @RevDate varchar(255) - DECLARE @RevDescription varchar(255) - - set @RevDate = '10/03/2022 2:00 PM' - set @RevDescription = 'B2022-124: [JPR] Blank RO Values (All Spaces) printing as ?' - - Select cast(@RevDate as datetime) RevDate, @RevDescription RevDescription - PRINT 'SQL Code Revision ' + @RevDate + ' - ' + @RevDescription - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [vesp_GetSQLCodeRevision] Succeeded' -ELSE PRINT 'StoredProcedure [vesp_GetSQLCodeRevision] Error on Creation' -go - -Exec vesp_GetSQLCodeRevision; diff --git a/PROMS/DataLoader/PROMSFixes.Sql.bak b/PROMS/DataLoader/PROMSFixes.Sql.bak deleted file mode 100644 index 0747fc48..00000000 --- a/PROMS/DataLoader/PROMSFixes.Sql.bak +++ /dev/null @@ -1,10400 +0,0 @@ -if db_name() in('master','model','msdn','tempdb') -begin - DECLARE @ErrorMsg varchar(255) - SET @ErrorMsg = 'Don''t add these procedures and functions to ' + db_name() - PRINT '==========================================================================' - PRINT '' - PRINT @ErrorMsg - PRINT '' - PRINT 'You probably want to be in the VEPROMS database' - PRINT '' - PRINT '==========================================================================' - RAISERROR (@ErrorMsg, 20, -1) with log - RETURN -end -print 'Adding procedures and functions to ' + db_name() - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemReplace]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [PasteItemReplace]; -GO -/****** Object: StoredProcedure [dbo].[PasteItemReplace] Script Date: 03/20/2012 16:02:54 ******/ -/* -declare @NewItemID int -declare @dts datetime -set @newitemid = 0 -set @dts = getdate() -exec PasteItemReplace 398,397,20014,@dts,'bodine',@NewItemID output -*/ --- ItemID is item to replace --- StartItemID is item to copy -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[PasteItemReplace] -( - @ItemID int=null, @StartItemID int=null, - @Type int=null, @DTS datetime, @UserID nvarchar(100), - @NewItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @ContentID AS INT - DECLARE @NextItemID AS INT - DECLARE @PreviousItemID AS INT - DECLARE @ExternalChildCount AS INT - DECLARE @ExternalCount AS INT - DECLARE @Path AS VARCHAR(MAX) - DECLARE @Children AS TABLE - ( - ItemID INT PRIMARY KEY, - ContentID INT - ) - - if exists (select * from tblitems where itemid = @ItemID and DeleteStatus !=0) - BEGIN - RAISERROR ('###Cannot Paste Step###This current step has been deleted in another session',16,1) - RETURN - END - -- First check if the replaced item can be deleted, i.e. it doesn't have transitions - -- pointing to it or children. - - DECLARE @ExternalTrans TABLE - ( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL - ) - SET NOCOUNT ON - DECLARE @DeleteID int - INSERT INTO DeleteLog (UserID) VALUES (@UserID) - SELECT @DeleteID = SCOPE_IDENTITY() - SELECT @ContentID = ContentID, @PreviousItemID = PreviousID FROM Items WHERE ItemID = @ItemID - SELECT @NextItemID = ItemID FROM Items WHERE PreviousID = @ItemID - --SELECT @ExternalCount = count(*) FROM vefn_FindExternalTransitions(@ItemID) - SELECT @ExternalChildCount = count(*) FROM vefn_FindExternalChildTransitions(@ItemID) - SET @Path = [dbo].[ve_GetShortPath](@ItemID) - - --IF @ExternalCount > 0 AND @NextItemID is null - --BEGIN - -- RAISERROR ('###Cannot Delete Item###Step %d has External Transitions and has no next step - (%s)',16,1,@ItemID,@Path) - -- RETURN - --END - - IF @ExternalChildCount > 0 - BEGIN - RAISERROR ('###Cannot Delete Item###Step %d has External Transitions to it''s children - (%s)',16,1,@ItemID,@Path) - RETURN - END - - -- Copy the item, 'NewItemID' represents the new item(s) - -- DestFormatID is the formatid for the destination parent's format - DECLARE @DestFormatID int - SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - - -- Adjust the next/previous to point to the new item - - DECLARE @PreviousID int - SELECT @PreviousID = [PreviousID] - FROM [ITEMS] II - WHERE [ItemID]=@ItemID - UPDATE [ITEMS] SET [PreviousID]=@PreviousID where [ItemID]=@NewItemID - UPDATE [CONTENTS] SET [Type]=@Type - FROM [CONTENTS] CC JOIN [ITEMS] ii ON CC.[ContentID]=II.[ContentID] - WHERE [ItemID]=@NewItemID - UPDATE [ITEMS] SET [PreviousID]=@NewItemID where [PreviousID]=@ItemID - UPDATE [PARTS] SET [ItemID]=@NewItemID where [ItemID]=@ItemID - - -- UPDATE DocVersion if this was a procedure - UPDATE DocVersions SET ItemID=@NewItemID where ItemID = @ItemID - - -- If there were 'external transitions' that pointed to the original - -- top replaced step, adjust them to point to the new top. - INSERT INTO @ExternalTrans SELECT * FROM vefn_FindExternalTransitions(@ItemID) - OPTION (MAXRECURSION 10000) - IF (SELECT COUNT(*) from @ExternalTrans) > 0 - BEGIN - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@NewItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TransitionID in(Select TransitionID from @ExternalTrans) - -- Update transitions that point to @ItemID to Point to @NextItemID - UPDATE TRANSITIONS - SET ToID = case when ToID = @ItemID then @NewItemID else ToID END, - RangeID = case when RangeID = @ItemID then @NewItemID else RangeID END - WHERE TransitionID in(Select TransitionID from @ExternalTrans) - - DECLARE @typeID int -- AnnotationType - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add 'Verification Required' annotions for transtions that pointed to top step - -- and need to point to - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Replaced Step Transition Destination',@UserID - FROM Items where ItemID in (SELECT FromItemID FROM @ExternalTrans) - - END - -- Remove the old one - - -- Get list of Children - INSERT INTO @Children SELECT * FROM vefn_ChildItems(@ItemID) - -- Delete Annotations for @ItemID and children - DELETE from Annotations where ItemID in(Select ItemID from @Children) - -- Delete Details associated with @ContentID and children - DELETE from Details where ContentID in(Select ContentID from @Children) - -- Delete Grids associated with @ContentID and children - DELETE from Grids where ContentID in(Select ContentID from @Children) - -- Delete Images associated with @ContentID and children - DELETE from Images where ContentID in(Select ContentID from @Children) - -- Delete Entries associated with @ContentID and children - DELETE from Entries where ContentID in(Select ContentID from @Children) - -- Delete ROUsages associated with @ContentID and children - DELETE from RoUsages where ContentID in(Select ContentID from @Children) - -- Delete ZTransitions records associated with @ContentID and children - DELETE FROM ZTransitions where TransitionID - in(SELECT TransitionID from Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID) - -- Delete Transitions associated with @ContentID and children - DELETE FROM Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID - -- Delete Parts associated with @ContentID and children - DELETE from Parts where ContentID in(Select ContentID from @Children) - -- Delete ZContents associated with @ContentID and children - DELETE from ZContents where ContentID in(Select ContentID from @Children) - -- Disconnect Items from Each Other - DELETE from Items where ItemID in(Select ItemID from @Children) and PreviousID Is Not Null - -- Disconnect Items to be deleted from each other - Update Items set PreviousID = null where ItemID in (Select ItemID from @Children) and PreviousID Is Not Null - -- Delete Item Records - DELETE from Items where ItemID in(Select ItemID from @Children) - -- DELETE Contents - DELETE from Contents where ContentID in(Select ContentID from @Children) ---delete from itemaudits where itemid = @newitemid -delete from itemaudits where itemid in (select itemid from vefn_ChildItems(@newitemid)) ---delete from contentaudits where contentid = (select contentid from items where itemid = @newitemid) -delete from contentaudits where contentid in (select contentid from vefn_ChildItems(@newitemid)) - DELETE from DeleteLog where DeleteID = @DeleteID - IF( @@TRANCOUNT > 0 ) COMMIT - EXECUTE GetItem @NewItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteItemReplace Succeeded' -ELSE PRINT 'Procedure Creation: PasteItemReplace Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChronologyReport]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChronologyReport]; -/****** Object: UserDefinedFunction [dbo].[vefn_ChronologyReport] Script Date: 03/20/2012 17:50:44 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -select * from vefn_chronologyreport(2) where type > 0 order by contentid,auditid -*/ -/****** Object: UserDefinedFunction [dbo].[vefn_ChronologyReport] Script Date: 05/18/2011 11:20:48 ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_ChronologyReport](@ProcItemID int, @DTS datetime) -returns @Report table -( -src int, -AuditID bigint, -ContentID int, -Number nvarchar(512), -Text nvarchar(max), -Type int, -FormatID int, -Config nvarchar(max), -DTS datetime, -UserID nvarchar(200), -DeleteStatus int, -ActionDTS datetime, -ItemDTS datetime, -LastAuditID int, -DeletedAuditID int -) -WITH EXECUTE AS OWNER -AS -BEGIN ---added rhm/jcb 20121218i -declare @tmpTable table -( - icontentid int primary key -) -insert into @tmpTable select icontentid from vefn_tblchilditems(@ProcItemID,@ProcItemID,1) ---added jcb 20111122 ---declare @dts datetime ---set @dts = (select dts from items where itemid = @ProcItemID ) ---set @dts = (SELECT .[dbo].[vefn_GetPreviousRevisionDTSByItemID] (@ProcItemID)) ---end added jcb 20111122 - insert into @Report - SELECT -1 src, - [AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid - where Number is not null ---added jcb 20111028_1827 -and ca.contentid != (select contentid from items where itemid = @procitemid) -and ca.contentid in (select icontentid from @tmpTable) ---end added jcb 20111028_1827 ---added jcb 20111122 ---and ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > (select dts from items where itemid = @ProcItemID )) -and ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > @dts) ---and ca.dts > (select dts from items where itemid = @ProcItemID ) -and ca.dts > @dts ---end added jcb 20111122 --- UNION --- SELECT ---2 src, --- cast(ident_current('contentaudits') + 1 as bigint) auditid ----- (select max(auditid) + 1 from contentaudits) [AuditID] ----- 0 [AuditID] --- ,ca.[ContentID] --- ,[Number] --- ,[Text] --- ,[Type] --- ,[FormatID] --- ,[Config] --- ,ca.[DTS] cadts --- ,ca.[UserID] --- ,ca.[DeleteStatus] --- ,ActionDTS --- ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS ---,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID ---,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID --- FROM tblContents ca ----- inner join tblitems ti on ca.contentid = ti.contentid ---WHERE ca.DeleteStatus = 0 AND -----added jcb 20111028_1827 ---ca.contentid != (select contentid from items where itemid = @procitemid) and -----end added jcb 20111028_1827 -----ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > (select dts from items where itemid = @ProcItemID )) -----added jcb 20111122 -----ca.ContentID in (SELECT [ContentID] FROM Contents where dts > (select dts from items where itemid = @ProcItemID )) ---ca.ContentID in (SELECT [ContentID] FROM Contents where dts > @dts) -----end added jcb 20111122 -----order by ca.DTS,ActionDTS - UNION - SELECT -3 src, - cast(ident_current('contentaudits') + 1 as bigint) auditid --- (select max(auditid) + 1 from contentaudits) [AuditID] --- 0 [AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM tblContents ca --- inner join tblitems ti on ca.contentid = ti.contentid -WHERE ca.DeleteStatus = 0 AND ---added jcb 20111028_1827 -ca.contentid != (select contentid from items where itemid = @procitemid) -and ca.contentid in (select icontentid from @tmpTable) ---end added jcb 20111028_1827 ---added jcb 20111122 ---ca.dts > (select dts from items where itemid = @ProcItemID ) -and (ca.dts > @dts or ca.actiondts > @dts) ---end added jcb 20111122 - UNION - SELECT distinct -5 src, --- cast(ident_current('contentaudits') + 1 as bigint) auditid --- (select max(auditid) + 1 from contentaudits) [AuditID] - ca.[AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid -WHERE ca.DeleteStatus > 0 ---added jcb 20111028_1827 - --ca.contentid != (select contentid from items where itemid = @procitemid) and ---end added jcb 20111028_1827 ---added jcb 20111122 ---ca.dts > (select dts from items where itemid = @ProcItemID ) -and ca.contentid in (select icontentid from @tmpTable) -and (ca.dts > @dts or ca.actiondts > @dts) ---end added jcb 20111122 -order by ca.DTS,ActionDTS - - insert into @Report - SELECT -4 src, - ca.[AuditID] - ,ca.[ContentID] - ,ca.[Number] - ,ca.[Text] - ,ca.[Type] - ,ca.[FormatID] - ,ca.[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ca.ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid - inner join @Report rpt on ca.contentid = rpt.contentid and ca.auditid = rpt.lastauditid -where ca.auditid not in (select auditid from @report) -and rpt.lastauditid is not null -and ca.contentid in (select icontentid from @tmpTable) - return -end -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_ChronologyReport Succeeded' -ELSE PRINT 'Function: vefn_ChronologyReport Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemSiblingAfter]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [PasteItemSiblingAfter]; -GO -/****** Object: StoredProcedure [dbo].[PasteItemSiblingAfter] Script Date: 03/21/2012 15:25:31 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[PasteItemSiblingAfter] -( - @ItemID int=null, @StartItemID int=null, -- ItemID is destination, StartItemID is top of copy - @Type int=null, @DTS datetime, @UserID nvarchar(100), - @NewItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - if exists (select * from tblitems where itemid = @ItemID and DeleteStatus !=0) - BEGIN - RAISERROR ('###Cannot Paste Step###This current step has been deleted in another session',16,1) - RETURN - END - -- First make a copy of the input StartItemID - -- DestFormatID is the formatid for the destination parent's format - DECLARE @DestFormatID int - SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - -- Adjust previous field - DECLARE @NextID int - SELECT @NextID = [ItemID] - FROM [ITEMS] - WHERE [PreviousID]=@ItemID - IF @NextID is not null -- step after the copy point. Adjust it's previous to point to the new step - BEGIN - UPDATE [ITEMS] SET [PreviousID]=@NewItemID, [DTS]=@DTS, [UserID]=@UserID where [ItemID]=@NextID - END - UPDATE [ITEMS] SET [PreviousID]=@ItemID where [ItemID]=@NewItemID - UPDATE [CONTENTS] SET [Type]=@Type - FROM [CONTENTS] CC JOIN [ITEMS] ii ON CC.[ContentID]=II.[ContentID] - WHERE [ItemID]=@NewItemID - - - -- Check for Transitions that point to the Next Step - BEGIN - -- Get a list of Transitions which need to change children of @ItemID that point to @NextID - DECLARE @NextStepTransitions TABLE - ( - [TransitionID] int PRIMARY KEY, - [FromID] [int], - [ToID] [int], - [RangeID] [int], - [TranType] [int], - [Config] [nvarchar](max) - ) - Insert into @NextStepTransitions select * from vefn_NextStepTransitions(@NextID,@ItemID) - OPTION (MAXRECURSION 10000) - IF (SELECT COUNT(*) from @NextStepTransitions) > 0 -- Next Step Transitions - BEGIN - -- Update all transitions in the list to point to @newItemID - Update TT - Set TT.ToID = CASE TT.ToID WHEN @NextID THEN @NewItemID ELSE TT.ToID END, - TT.RangeID = CASE TT.RangeID WHEN @NextID THEN @NewItemID ELSE TT.RangeID END - From TRANSITIONS TT - JOIN @NextStepTransitions NS ON NS.TransitionID = TT.TransitionID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,NS.TransitionID,NS.TranType,NS.ToID,NS.RangeID,@NextID,@NewItemID) - From CONTENTS CC - JOIN @NextStepTransitions NS ON NS.FromID = CC.ContentID - END - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Next Step Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@newItemID) OR RangeID IN(@newItemID)) - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@NextID) OR RangeID IN(@NextID)) - -- Transition Text gets updated in ItemInsertExt.cs - -delete from itemaudits where itemid in (select itemid from vefn_ChildItems(@newitemid)) -delete from contentaudits where contentid in (select contentid from vefn_ChildItems(@newitemid)) - IF( @@TRANCOUNT > 0 ) COMMIT - EXECUTE GetItem @NewItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteItemSiblingAfter Succeeded' -ELSE PRINT 'Procedure Creation: PasteItemSiblingAfter Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemSiblingBefore]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [PasteItemSiblingBefore]; -GO -/****** Object: StoredProcedure [dbo].[PasteItemSiblingBefore] Script Date: 03/21/2012 15:26:23 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[PasteItemSiblingBefore] -( - @ItemID int=null, @StartItemID int=null, - @Type int=null, @DTS datetime, @UserID nvarchar(100), - @NewItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - if exists (select * from tblitems where itemid = @ItemID and DeleteStatus !=0) - BEGIN - RAISERROR ('###Cannot Paste Step###This current step has been deleted in another session',16,1) - RETURN - END - -- First make a copy of the input CopyStartID - -- DestFormatID is the formatid for the destination parent's format - DECLARE @DestFormatID int - SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - -- First adjust previous fields, may also have to do parts, if before first one in list. - DECLARE @PreviousID int, @ContentID int, @newLastChanged timestamp, @NewType int - SELECT @PreviousID = [PreviousID], @NewType=ISNULL(@Type,[Type]) - FROM [ITEMS] II - JOIN [CONTENTS] CC ON CC.[ContentID]=II.[CONTENTID] - WHERE [ItemID]=@ItemID - UPDATE [ITEMS] SET [PreviousID]=@NewItemID where [ItemID]=@ItemID - UPDATE [ITEMS] SET [PreviousID]=@PreviousID where [ItemID]=@NewItemID - UPDATE [CONTENTS] SET [Type]=@Type - FROM [CONTENTS] CC JOIN [ITEMS] ii ON CC.[ContentID]=II.[ContentID] - WHERE [ItemID]=@NewItemID - UPDATE [PARTS] SET [ItemID]=@NewItemID where [ItemID]=@ItemID - UPDATE [DOCVERSIONS] SET [ItemID] = @NewItemID where [ItemID]=@ItemID - - IF @PreviousID is null -- The step is replacing the first step - BEGIN - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@NewItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TT.ToID = @ItemID OR TT.RangeID = @ItemID - -- Update transitions that pointed to @ItemID to point to @newItemID - Update TRANSITIONS - Set ToID = CASE ToID WHEN @ItemID THEN @NewItemID ELSE ToID END, - RangeID = CASE RangeID WHEN @ItemID THEN @NewItemID ELSE RangeID END - WHERE ToID = @ItemID OR RangeID = @ItemID - END - ELSE -- Check for Transitions that point to the Next Step - BEGIN - -- Get a list of Transitions which need to change children of @ItemID that point to @NextID - DECLARE @NextStepTransitions TABLE - ( - [TransitionID] int PRIMARY KEY, - [FromID] [int], - [ToID] [int], - [RangeID] [int], - [TranType] [int], - [Config] [nvarchar](max) - ) - Insert into @NextStepTransitions select * from vefn_NextStepTransitions(@ItemID,@PreviousID) - OPTION (MAXRECURSION 10000) - IF (SELECT COUNT(*) from @NextStepTransitions) > 0 -- Next Step Transitions - BEGIN - -- Update all transitions in the list to point to @newItemID - Update TT - Set TT.ToID = CASE TT.ToID WHEN @ItemID THEN @NewItemID ELSE TT.ToID END, - TT.RangeID = CASE TT.RangeID WHEN @ItemID THEN @NewItemID ELSE TT.RangeID END - From TRANSITIONS TT - JOIN @NextStepTransitions NS ON NS.TransitionID = TT.TransitionID - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,NS.TransitionID,NS.TranType,NS.ToID,NS.RangeID,@ItemID,@NewItemID) - From CONTENTS CC - JOIN @NextStepTransitions NS ON NS.FromID = CC.ContentID - END - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@ItemID,@NewItemID) OR RangeID IN(@ItemID,@NewItemID)) - -- Transition Text gets updated in ItemInsertExt.cs -delete from itemaudits where itemid in (select itemid from vefn_ChildItems(@newitemid)) -delete from contentaudits where contentid in (select contentid from vefn_ChildItems(@newitemid)) - IF( @@TRANCOUNT > 0 ) COMMIT - EXECUTE GetItem @NewItemID -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteItemSiblingBefore Succeeded' -ELSE PRINT 'Procedure Creation: PasteItemSiblingBefore Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetMyChronology]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetMyChronology]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetMyChronology] Script Date: 11/07/2012 18:09:17 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetMyChronology](@ProcItemID int, @ItemID int, @IncludeDeletedChildren int, @DTS datetime) -RETURNS @Chrono TABLE -( -[AuditID] bigint, -[ContentID] int, -[Number] nvarchar(max), -[Text] nvarchar(max), -[Type] int, -[FormatID] int, -[Config] nvarchar(max), -[DTS] datetime, -[UserID] nvarchar(max), -[DeleteStatus] int, -[ActionDTS] datetime, -[ActionWhat] nvarchar(max), -[ActionWhen] datetime, -[Path] nvarchar(max), -ItemID int, -TypeName nvarchar(max), -ordinalpath nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -insert into @Chrono -select distinct [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath - from - ( - select - case - when lastauditid is null then 'Added' - when r.deletestatus > 0 then 'Deleted' - when lastauditid = -1 then 'Changed' - when DeletedAuditID is not null then 'Restored' --- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' - else 'Changed' - end actionwhat -,actiondts actionwhen --- ,case --- when lastauditid is null then dts --- when r.deletestatus > 0 then ActionDTS --- when lastauditid = -1 then dts --- when DeletedAuditID is not null then ActionDTS --- else dts --- end actionwhen -,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName - ,* - from vefn_tblchilditems (@ProcItemID,@ItemID,@IncludeDeletedChildren) t - inner join vefn_chronologyreport(@ProcItemID,@DTS) r - on t.icontentid = r.contentid --- where ActionDTS > procdts or dts > procdts - ) ah - order by OrdinalPath, contentid,auditid--actionwhen - RETURN -END -go -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetMyChronology] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetMyChronology] Error on Creation' -go - -/****** Object: StoredProcedure [dbo].[getContentAuditsChronologyByItemID] Script Date: 03/21/2012 15:58:26 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsChronologyByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [getContentAuditsChronologyByItemID]; -GO -/****** Object: StoredProcedure [getContentAuditsChronologyByItemID] ******/ -/* -getContentAuditsChronologyByItemID 10154,10154,0 -getContentAuditsChronologyByItemID 42,42,0 -getContentAuditsChronologyByItemID 9,9,0 -getContentAuditsChronologyByItemID 146,146,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsChronologyByItemID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin - select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) --- select distinct [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end -go --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [getContentAuditsChronologyByItemID] Succeeded' -ELSE PRINT 'StoredProcedure [getContentAuditsChronologyByItemID] Error on Creation' -go - -/****** Object: StoredProcedure [getContentAuditsSummaryByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsSummaryByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsSummaryByItemID]; -GO - -/****** Object: StoredProcedure [getContentAuditsSummaryByItemID] ******/ -/* -getContentAuditsSummaryByItemID 146,146,0 -getContentAuditsSummaryByItemID 42,42,0 -getContentAuditsSummaryByItemID 9,9,0 -getContentAuditsSummaryByItemID 146,146,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsSummaryByItemID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin -DECLARE @Chrono TABLE -( -[AuditID] bigint, -[ContentID] int, -[Number] nvarchar(max), -[Text] nvarchar(max), -[Type] int, -[FormatID] int, -[Config] nvarchar(max), -[DTS] datetime, -[UserID] nvarchar(max), -[DeleteStatus] int, -[ActionDTS] datetime, -[ActionWhat] nvarchar(max), -[ActionWhen] datetime, -[Path] nvarchar(max), -ItemID int, -TypeName nvarchar(max), -ordinalpath nvarchar(max) -) -insert into @Chrono -select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) -select * from @Chrono -where AuditID is null OR AuditID in (select min(auditID) from @Chrono group by contentid UNION select max(auditID) from @Chrono group by contentid) -order by OrdinalPath, contentid,auditid ---select z.* from ---( ---select contentid,min(auditid) auditid from ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) x ---group by contentid ---) y ---inner join ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) z on y.contentid = z.contentid and y.auditid = z.auditid ---union ---select z.* from ---( ---select contentid,max(auditid) auditid from ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) x ---group by contentid ---) y ---inner join ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) z on y.contentid = z.contentid and y.auditid = z.auditid --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsSummaryByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsSummaryByItemID Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixSearchString]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixSearchString]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_FixSearchString] Script Date: 03/26/2012 09:31:13 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -select ID,ss,.dbo.vefn_FixSearchString(ss) -from ( -select 1 ID,'*' ss union -select 2 ID,'50%' ss union -select 3 ID,'IF*' ss union -select 4 ID,'*then:' ss union -select 5 ID,'530`F' ss union -select 6 ID,'check' ss union -select 7 ID,'RCP*Cooling' ss union -select 8 ID,'14%[34%]' ss union -select 9 ID,'\*' ss union -select 10 ID,'\?' ss union -select 11 ID,'_' ss union -select 12 ID,'[' ss union -select 13 ID,']' ss union -select 14 ID,'%' ss union -select 15 ID,'_' ss union -select 16 ID,'-' ss union -select 17 ID,'%' ss union -select 18 ID,'C* - *' ss union -select 19 ID,'' ss union -select 20 ID,null ss -) tt order by ID -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FixSearchString](@SearchString nvarchar(MAX)) -RETURNS nvarchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN - -- This code adds % at the beginning and end if the beginning and end - -- of the search string if it does not have % at the beginning or end - Set @SearchString = replace(@SearchString,'[','[[]') - Set @SearchString = replace(@SearchString,'_','[_]') - Set @SearchString = replace(@SearchString,'%','[%]') - Set @SearchString = replace(@SearchString,'*','%') - Set @SearchString = replace(@SearchString,'?','_') - Set @SearchString = replace(@SearchString,'\%','*') - Set @SearchString = replace(@SearchString,'\_','?') - Set @SearchString = replace(@SearchString,'-','\u8209?') - IF(@SearchString like '[%]%') RETURN @SearchString - IF(@SearchString like '%[%]') RETURN @SearchString - Set @SearchString = replace('%' + @SearchString + '%','%%','%') - RETURN @SearchString -END -GO --- Display the status -IF (@@Error = 0) PRINT 'ScalerFunction [vefn_FixSearchString] Succeeded' -ELSE PRINT 'ScalerFunction [vefn_FixSearchString] Error on Creation' -go - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[restoreDeletedItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [restoreDeletedItem]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -restoreDeletedItem 10133,1,10130,2 -select dbo.ve_GetPartContentID(10133) -select dbo.ve_GetPartFromType(10133) -select itemid from parts where contentid = 10126 and fromtype = 6 -SELECT ItemID FROM PartAudits WHERE DeleteStatus = 1 - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[restoreDeletedItem] -( - @ItemID int, - @DeleteID int, - @CurrentID int, - @Level int -) - -WITH EXECUTE AS OWNER -AS - DECLARE @PreviousID int - declare @oldPreviousID int - DECLARE @NextID int - DECLARE @ContentID int - declare @fromtype int - IF @Level = 0 BEGIN - SET @NextID = @CurrentID - SELECT @PreviousID = PreviousID FROM Items WHERE ItemID = @CurrentID - END - IF @Level = 1 BEGIN - SELECT @NextID = ItemID FROM Items WHERE PreviousID = @CurrentID - SET @PreviousID = @CurrentID - END - SELECT @ContentID = dbo.[ve_GetPartContentID](@ItemID) - select @fromtype = dbo.[ve_GetPartFromType](@ItemID) - select @oldPreviousID = isnull(PreviousID,0) from tblItems where ItemID = @ItemID - if @level = 2 begin - select @NextID = itemid from parts where contentid = @contentid and fromtype = @fromtype - end - --restore parts from step being restored - UPDATE tblParts SET DeleteStatus = 0 WHERE ItemID IN (SELECT ItemID FROM PartAudits WHERE DeleteStatus = @DeleteID) ---print 'oldpreviousid: ' + cast(@oldpreviousid as varchar(10)) ---print 'currentid: ' + cast(@currentid as varchar(10)) - --restore of children in different order - if(@oldPreviousID != @CurrentID and @Level = 2) begin - update tblparts set deletestatus = 0, itemid = @itemid where contentid = @contentid and fromtype = @fromtype ---print 'special code' - end - UPDATE tblContents SET DeleteStatus = 0, ActionDTS = getdate() WHERE ContentID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblItems SET DeleteStatus = 0,PreviousID = CASE WHEN ItemID = @ItemID THEN @PreviousID ELSE PreviousID END - WHERE ItemID IN (SELECT ItemID FROM ItemAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblGrids SET DeleteStatus = 0 WHERE ContentID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblEntries SET DeleteStatus = 0 WHERE DocID IN (SELECT DocID FROM EntryAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblAnnotations SET DeleteStatus = 0, ActionDTS = getdate() WHERE deletestatus = @deleteid -- ItemID in (SELECT ItemID FROM ItemAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblROUsages SET DeleteStatus = 0 WHERE deletestatus = @deleteid --ContentID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblTransitions SET DeleteStatus = 0 WHERE deletestatus = @deleteid --FromID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - IF @NextID IS NOT NULL BEGIN - UPDATE Items SET PreviousID = @ItemID WHERE ItemID = @NextID - UPDATE DocVersions SET ItemID = @ItemID WHERE ItemID = @NextID - IF @ContentID IS NOT NULL BEGIN - UPDATE Parts SET ItemID = @ItemID WHERE ItemID = @NextID and ContentID = @ContentID ---print 'old code' - END - END ---else --- begin ---update parts set itemid = @itemid where contentid = @contentid and fromtype = @fromtype --- end -RETURN -go --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: restoreDeletedItem Succeeded' -ELSE PRINT 'Procedure Creation: restoreDeletedItem Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_GetLastDelim] Script Date: 03/28/2012 17:58:48 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetLastDelim]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetLastDelim]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select .dbo.vefn_GetLastDelim(bozo) delim,bozo -from -( -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using Backfill' bozo union -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using BackfillProcedure Steps' bozo union -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using BackfillProcedure Steps1' bozo union -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using BackfillProcedure Steps1.1' bozo union -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using BackfillProcedure Steps1.1.RNO..1' bozo union -select 'ES\u8209?3.1Post\u8209?SGTR Cooldown Using BackfillProcedure Steps1.1.RNO..1.3' bozo -) ah -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetLastDelim](@SearchString nvarchar(MAX)) -RETURNS nvarchar(1) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @patstr nvarchar(7) - set @patstr = '%[' + char(7) + char(17) + '.]%' - declare @patidx bigint - set @patidx = patindex(@patstr,Reverse(@SearchString)) - if @patidx = 0 return ' ' - return substring(@SearchString,1 + len(@SearchString) - @patidx,1) -END -GO -IF (@@Error = 0) PRINT 'ScalerFunction [vefn_GetLastDelim] Succeeded' -ELSE PRINT 'ScalerFunction [vefn_GetLastDelim] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_tblChildItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_tblChildItems]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_tblChildItems] Script Date: 03/28/2012 17:43:20 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -declare @PreviousID as int -declare @ItemID as int -set @ItemID = 450 -select @PreviousID = PreviousID from items where ItemID = @ItemID - -Select * from Items where ItemID = @ItemID - -select * from Transitions -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -select CC.Text from Transitions TT -join contents CC on TT.FromID = CC.ContentID -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_tblChildItems](@ProcItemID int, @ItemID int, @IncludeDeletedChildren int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - IContentID int, - IDeleteStatus int, - ProcDTS datetime, - Path nvarchar(max), - OrdinalPath nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @path nvarchar(max) - declare @ppath nvarchar(max) - declare @ordinalpath nvarchar(max) - declare @pordinalpath nvarchar(max) - declare @ordinal int - declare @pitemid int - select @path = path,@ordinalpath = ordinalpath,@ordinal = ordinal,@pitemid = parentid from vefn_ProcedureByProcID(@ProcItemID) where itemid = @ItemID - if @pitemid = 0 begin - set @pordinalpath = '' - set @ppath = '' - end - else begin - select @ppath = path,@pordinalpath = ordinalpath from vefn_ProcedureByProcID(@ProcItemID) where itemid = @pitemID - end - declare @procdts datetime - select @procdts = dts from items where itemid = @ProcItemID - Declare @Delim char(1) - Set @Delim=char(7) - Declare @DelimNumber char(1) - Set @DelimNumber=char(17) - Declare @DelimStep char(1) - Set @DelimStep='.' - begin - with Itemz([Level], [ItemID], [ContentID], DeleteStatus, ProcDTS, PPath, [Path], [POrdinalPath], [OrdinalPath], [FromType], [Ordinal]) as ( - Select 0 [Level], [ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - @ppath [PPath], - @path [Path], - @pordinalpath [POrdinalPath], - @ordinalpath [OrdinalPath], - 0 [FromType],@ordinal [Ordinal] - FROM [tblItems] I - --inner join tblContents C on C.ContentID=I.ContentID - where I.[ItemID]=@ItemID - Union All - -- Children - select [Level] + 1, I.[ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + - case when I.deletestatus != 0 then 'Old ' else '' end + cast(1 as varchar(3)) - end end Path, - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-00001', - P.[FromType],0 - from Itemz Z - join tblParts P on P.ContentID = Z.ContentID - join tblItems I on I.ItemID = P.ItemID - inner join tblContents C on C.ContentID=I.ContentID - where @IncludeDeletedChildren = 1 or z.DeleteStatus = 0 - Union All - -- Children2 - select [Level] + 1, I.[ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + - case when I.deletestatus != 0 then 'Old ' else '' end + cast(1 as varchar(3)) - end end Path, - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-00001', - P.[FromType],0 - from Itemz Z - join PartAudits P on P.ContentID = Z.ContentID - join tblItems I on I.ItemID = P.ItemID and i.PreviousID is null - inner join tblContents C on C.ContentID=I.ContentID - where @IncludeDeletedChildren = 1 or z.DeleteStatus >= 0 - -- Siblings - Union All - select [Level] , I.[ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + - case when I.deletestatus != 0 then 'Old ' else '' end + cast(Ordinal + 2 as varchar(3)) - end Path, - POrdinalPath, - POrdinalPath + right('00000' + cast(Z.[Ordinal] + 2 as varchar(5)), 5), - FromType,Z.[Ordinal] +1 - from Itemz Z - join tblItems I on I.PreviousID = Z.ItemID - inner join tblContents C on C.ContentID=I.ContentID - where Z.[Level] > 0 - ) - insert into @Children select distinct ItemID, ContentID, DeleteStatus, ProcDTS, Path, OrdinalPath from Itemz - OPTION (MAXRECURSION 10000) - END - RETURN -end -go -IF (@@Error = 0) PRINT 'TableFunction [vefn_tblChildItems] Succeeded' -ELSE PRINT 'TableFunction [vefn_tblChildItems] Error on Creation' -go - -/****** Object: StoredProcedure [dbo].[getAnnotationAuditsChronologyByItemID] Script Date: 04/02/2012 15:57:32 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationAuditsChronologyByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [getAnnotationAuditsChronologyByItemID]; -GO -/****** Object: StoredProcedure [getAnnotationAuditsChronologyByItemID] ******/ -/* -getAnnotationAuditsChronologyByItemID 13,13 -getAnnotationAuditsChronologyByItemID 30,8570 -getAnnotationAuditsChronologyByItemID 30,8513 -getAnnotationAuditsChronologyByItemID 30,8505 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE procedure [dbo].[getAnnotationAuditsChronologyByItemID] -( - @ProcItemID int, - @ItemID int, - @DTS datetime -) -WITH EXECUTE AS OWNER -AS -begin --- declare @dts datetime --- set @dts = (select dts from items where itemid = @procitemid) - declare @tci table - ( - ItemID int, - IContentID int, - IDeleteStatus int, - ProcDTS datetime, - Path nvarchar(max), - OrdinalPath nvarchar(max) - ) - insert into @tci - select * from vefn_tblchilditems(@ProcItemID,@ItemID,0) - select - case - when lastauditid is null and dts > itemdts then 'Added' - when deletestatus > 0 then 'Deleted' - when lastauditid = deletedauditid then 'Restored' - else 'Changed' - end ActionWhat - ,case - when lastauditid is null and dts > itemdts then dts - when deletestatus > 0 then ActionDTS - when lastauditid = deletedauditid then ActionDTS - else dts - end ActionWhen - ,* - from - ( - select - cast(ident_current('annotationaudits') + 1 as bigint) auditid - -- (select max(auditid) + 1 from annotationaudits) auditid - -- 0 auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,0 deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from tblannotations aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - where aa.deletestatus = 0 - union - select - aa.auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,aa.deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid ) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from annotationaudits aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - ) ah - where itemid in (select itemid from @tci) - and dts > @dts - --(select dts from versions where versionid = (select max(versionid) from revisions rr inner join versions vv on rr.revisionid = vv.revisionid - --inner join stages ss on vv.stageid = ss.stageid where itemid = @procitemid and ss.isapproved = 1)) - order by ordinalpath,annotationid,auditid--actionwhen -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationAuditsChronologyByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationAuditsChronologyByItemID Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetUnitPrefix]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetUnitPrefix]; -GO -/* -select 'DocVersions' Type, VersionID, Config, .dbo.vefn_GetUnitPrefix(config) UnitPrefix from DocVersions -UNION select 'Blank' Type, 0 VersionID, '' Config, .dbo.vefn_GetUnitPrefix('') UnitPrefix -UNION select 'Null' Type, 0 VersionID, null Config, .dbo.vefn_GetUnitPrefix(null) UnitPrefix -UNION select 'XML with' Type, 0 VersionID, '' Config, .dbo.vefn_GetUnitPrefix('') UnitPrefix -UNION select 'XML without' Type, 0 VersionID, '' Config, .dbo.vefn_GetUnitPrefix('') UnitPrefix -UNION select 'XML empty' Type, 0 VersionID, '' Config, .dbo.vefn_GetUnitPrefix('') UnitPrefix -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_GetUnitPrefix](@config varchar(MAX)) -returns varchar(MAX) -begin - declare @Xml xml - set @Xml = cast(@config as xml) - declare @UnitPrefix varchar(MAX) - set @UnitPrefix = (select Replace(v.value('@ProcedureNumber', 'nvarchar(100)'),'#','') UnitPrefix from @XML.nodes('//Unit') as tmpXml(v)) - return isnull(@UnitPrefix,'') -end - -GO -IF (@@Error = 0) PRINT 'Function: vefn_GetUnitPrefix Succeeded' -ELSE PRINT 'Function: vefn_GetUnitPrefix Error on Creation' -GO - - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_DocVersionSplit]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_DocVersionSplit]; -GO -/* -select * from vefn_DocVersionSplit('1,4') -select * from vefn_DocVersionSplit(null) -select * from vefn_DocVersionSplit('') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_DocVersionSplit](@DocVersionList varchar(MAX)) -RETURNS @IDs TABLE -( - VersionID int PRIMARY KEY, - ItemID int, - DVPath varchar(MAX), - UnitPrefix varchar(MAX) -) -WITH EXECUTE AS OWNER -AS -BEGIN -IF(isnull(@DocVersionList,'') = '') - Insert into @IDs - Select VersionID, ItemID, dbo.ve_GetFolderPath(VersionID), .dbo.vefn_GetUnitPrefix(config) - from DocVersions where ItemID is not null -else - Insert into @IDs - Select ID, ItemID, dbo.ve_GetFolderPath(VersionID), .dbo.vefn_GetUnitPrefix(config) - from vefn_SplitInt(@DocVersionList,',') as T - join DocVersions DV on VersionID = T.ID -RETURN -END - -GO - -IF (@@Error = 0) PRINT 'Function: [vefn_DocVersionSplit] Succeeded' -ELSE PRINT 'Function: [vefn_DocVersionSplit] Error on Creation' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SiblingAndChildrenItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SiblingAndChildrenItems]; -GO - -/* -select * from vefn_SiblingAndChildrenItems('','3-') -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SiblingAndChildrenItems](@DocVersionList varchar(MAX),@UnitPrefix varchar(MAX)) -RETURNS @SiblingAndChildren TABLE -( - [ItemID] int PRIMARY KEY - , [DVPath] nvarchar(max) - , [Path] nvarchar(max) - , [Level] int - , [FromType] int - , [Ordinal] int - , [ParentID] int - , [PreviousID] int - , [ContentID] int - , [DTS] datetime - , [UserID] nvarchar(100) - , [pContentID] int - , [pDTS] datetime - , [pUserID] nvarchar(100) - , [IsRNO] int - --- , [PPath] nvarchar(max) --- , [POrdinalPath] nvarchar(max) - , [OrdinalPath] nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -BEGIN -with Itemz([ItemID], [DVPath], [Level], [ParentID], [Ordinal], [PreviousID], [FromType], [ContentID], [DTS], [UserID],[pContentID], - [pDTS],[pUserID],PPath, [Path], [IsRNO], [POrdinalPath], [OrdinalPath], [UnitPrefix]) as ( - Select [I].[ItemID], DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], - Cast('' as nvarchar(max)) [PPath], - Cast(Case when C.Type < 20000 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) [Path], - 0 IsRNO, Cast('' as nvarchar(max)) [POrdinalPath], Cast('0001' as nvarchar(max)) [OrdinalPath], UnitPrefix - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select I.[ItemID], DVPath, [Level] + 1,Z.ItemID,0, I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID], - P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') -- Procedure - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') -- Section - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(3)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-00001', UnitPrefix - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select I.[ItemID], DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID] - ,null,null,null, - PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') -- Procedure - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') -- Section - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(3)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('00000' + cast(Z.[Ordinal] + 2 as varchar(5)), 5), UnitPrefix - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 - -) -insert into @SiblingAndChildren -select I.[ItemID], [DvPath], [Path], I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID], - [pContentID],[pDTS],[pUserID],[IsRNO]/*,[PPath],[POrdinalPath]*/,[OrdinalPath] - from ItemZ I -OPTION (MAXRECURSION 10000) -END -RETURN -END -GO - -IF (@@Error = 0) PRINT 'Function: vefn_SiblingAndChildrenItems Succeeded' -ELSE PRINT 'Function: vefn_SiblingAndChildrenItems Error on Creation' -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[FindAnnotations]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [FindAnnotations]; - -/****** Object: UserDefinedFunction [dbo].[FindAnnotations] Script Date: 09/28/2012 11:06:59 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select * from [FindAnnotations]('12','',0,'') -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[FindAnnotations](@AnnotationTypeList varchar(MAX), @SearchString varchar(MAX), @CaseSensitive int, @StepTypeList varchar(MAX)) -RETURNS @Results TABLE -( - AnnotationID int Primary Key -) -WITH EXECUTE AS OWNER -BEGIN - insert into @Results - select Distinct A.AnnotationID from Items I - join Contents C on I.ContentID = C.ContentID - left Join Parts P on P.ItemID = I.ItemID - join Annotations A on A.ItemID = I.ItemID - join vefn_AnnotationTypeSplit(@AnnotationTypeList) TT on TT.TypeID=A.TypeID -where - (isnull(@SearchString,'')='' - OR (@CaseSensitive = 1 AND A.SearchText like @SearchString Collate SQL_Latin1_General_CP1_CS_AS) - OR (@CaseSensitive = 0 AND A.SearchText like @SearchString Collate SQL_Latin1_General_CP1_CI_AS)) - AND - ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - or - (@StepTypeList like '%20040%' AND isnull(P.FromType,0) = 5))) - - RETURN -END -GO -IF (@@Error = 0) PRINT 'Function: FindAnnotations Succeeded' -ELSE PRINT 'Function: FindAnnotations Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchAnnotationItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [vesp_SearchAnnotationItemAndChildren]; -GO -/* -exec vesp_SearchAnnotationItemAndChildren Null,Null,'1',Null,0,"3-" -exec vesp_SearchAnnotationItemAndChildren Null,Null,'2',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'3',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'4',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'5',Null,0 -exec vesp_SearchAnnotationItemAndChildren Null,Null,'',Null,0 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchAnnotationItemAndChildren] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), @AnnotationTypeList varchar(MAX), @SearchString nvarchar(MAX), @CaseSensitive as int, @UnitPrefix nvarchar(MAX)) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -Set @SearchString = .dbo.vefn_FixSearchString(@SearchString) -begin -with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath, UnitPrefix) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath, UnitPrefix - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(3)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001', UnitPrefix - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(3)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4), UnitPrefix - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) -select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged],AnnotationID SearchAnnotationID, SearchText, TT.Name AnnotationType, - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - left join Entries E on C.ContentID = E.ContentID - left join Documents D on E.DocID = D.DocID - join Annotations A on A.ItemID = I.ItemID - join vefn_AnnotationTypeSplit(@AnnotationTypeList) TT on TT.TypeID=A.TypeID -where - A.AnnotationID in(select AnnotationID from [FindAnnotations](@AnnotationTypeList, @SearchString, @CaseSensitive, @StepTypeList)) - order by DvPath,OrdinalPath -OPTION (MAXRECURSION 10000) -END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchAnnotationItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchAnnotationItemAndChildren Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [vesp_SearchItemAndChildren]; -GO -/* -exec vesp_SearchItemAndChildren '1,2,4','20007','#Link:Transition',1,0,0,0 -exec vesp_SearchItemAndChildren '1,2,4','20007','#Link:Transition',1,1,0,0 -exec vesp_SearchItemAndChildren '1,2,4','20007','#Link:Transition',1,2,0,0 -exec vesp_SearchItemAndChildren '4','','#Link:Refer',1,2,0,0 -exec vesp_SearchItemAndChildren '4','','200`F',0,1,0,0 -exec vesp_SearchItemAndChildren '4','10000','',0,0,0,0 -exec vesp_SearchItemAndChildren '4','','[0-9]`F',0,1,0,0 -exec vesp_SearchItemAndChildren '','','RCP',0,0,0,0 -exec vesp_SearchItemAndChildren '','','%',0,0,0,0 -exec vesp_SearchItemAndChildren '','20040','',0,0,0,0 -exec vesp_SearchItemAndChildren '','10000','XYZZY',0,0,0,0 -exec vesp_SearchItemAndChildren '','10000','XYZZY',1,0,0,0 -exec vesp_SearchItemAndChildren '','','%IF%',0,0,0,0 -exec vesp_SearchItemAndChildren '','','%IF%',1,0,0,0 -exec vesp_SearchItemAndChildren '','','%47%',1,0,0,0 -exec vesp_SearchItemAndChildren '','','%47%',1,0,0,1 -exec vesp_SearchItemAndChildren '','','condenser not av',0,0,0,0 -exec vesp_SearchItemAndChildren '','','(SG OR LHSI) AND DISPATCH',2,0,0,0 -exec vesp_SearchItemAndChildren '','','DISPATCH NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildren '','','PORV NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildren '','','CHECK NORMAL',0,0,0,0 -exec vesp_SearchItemAndChildren '','','turbine-driven',0,0,0,0 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchItemAndChildren] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), -@SearchString varchar(MAX), @CaseSensitive as int, @IncludeLinks as int, @IncludeRtfFormatting as int, @IncludeSpecialCharacters as int, @UnitPrefix as varchar(MAX)) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -Set @SearchString = .dbo.vefn_FixSearchString(@SearchString) -begin -with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath, UnitPrefix) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath, UnitPrefix - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(3)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001', UnitPrefix - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(3)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4), UnitPrefix - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) -select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - left join Entries E on C.ContentID = E.ContentID - left join Documents D on E.DocID = D.DocID - where - (isnull(@SearchString,'')='' - OR (@CaseSensitive = 1 AND .dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchString Collate SQL_Latin1_General_CP1_CS_AS) - OR (@CaseSensitive = 0 AND .dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchString Collate SQL_Latin1_General_CP1_CI_AS) - OR (@CaseSensitive = 1 AND D.DocAscii like @SearchString Collate SQL_Latin1_General_CP1_CS_AS) - OR (@CaseSensitive = 0 AND D.DocAscii like @SearchString Collate SQL_Latin1_General_CP1_CI_AS) - ) - AND - ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - or - (@StepTypeList like '%20040%' AND IsRNO = -1))) - order by DvPath,OrdinalPath -OPTION (MAXRECURSION 10000) -END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SearchItemAndChildrenNew] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchItemAndChildrenNew]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [vesp_SearchItemAndChildrenNew]; -GO - -/* -exec vesp_SearchItemAndChildrenNew '1,2,4','20007','#Link:Transition',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '1,2,4','20007','#Link:Transition',1,1,0,0 -exec vesp_SearchItemAndChildrenNew '1,2,4','20007','#Link:Transition',1,2,0,0 -exec vesp_SearchItemAndChildrenNew '4','','#Link:Refer',1,2,0,0 -exec vesp_SearchItemAndChildrenNew '4','','200`F',0,1,0,0 -exec vesp_SearchItemAndChildrenNew '4','10000','',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '4','','[0-9]`F',0,1,0,0 -exec vesp_SearchItemAndChildrenNew '1','','"RCP"',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','"RCP"',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','20040','',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','10000','XYZZY',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','10000','XYZZY',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%IF%',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%IF%',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%47%',1,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%47%',1,0,0,1 -exec vesp_SearchItemAndChildrenNew '','','condenser not av',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','(SG OR LHSI) AND DISPATCH',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','DISPATCH NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','PORV NEAR SG',2,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','CHECK NORMAL',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','(Resolved Transition Text)',0,0,0,0 -exec vesp_SearchItemAndChildrenNew '','','%turbine-driven%',0,0,0,0 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchItemAndChildrenNew] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), -@SearchString varchar(MAX), @CaseSensitive as int, @IncludeLinks as int, @IncludeRtfFormatting as int, @IncludeSpecialCharacters as int, @UnitPrefix as varchar(MAX)) -WITH EXECUTE AS OWNER -AS -select ZZ.DvPath, ZZ.Path, ZZ.[Level],ZZ.[FromType],ZZ.[Ordinal], ZZ.[ParentID], ZZ.[ItemID],ZZ.[PreviousID],ZZ.[ContentID],ZZ.[DTS],ZZ.[UserID] - ,II.[LastChanged] - ,CC.[Number],CC.[Text],CC.[Type],CC.[FormatID],CC.[Config],CC.[DTS] [cDTS],CC.[UserID] [cUserID] - ,CC.[LastChanged] [cLastChanged], - PP.[ContentID] [pContentID], PP.[DTS] [pDTS],PP.[UserID] [pUserID], PP.[LastChanged] [pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ZZ.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ZZ.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ZZ.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ZZ.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ZZ.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ZZ.[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=CC.[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=CC.[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=CC.[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=CC.[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=CC.[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=CC.[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=CC.[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=CC.[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=CC.[ContentID]) [ZContentCount] -from vefn_SiblingAndChildrenItems(@DocVersionList, @UnitPrefix) ZZ - Join Items II on ZZ.ItemID=II.ItemID - Left Join Parts PP on ZZ.PContentID=PP.ContentID and ZZ.FromType = PP.FromType - Join Contents CC on CC.ContentID=ZZ.ContentID -where ZZ.ContentID in (select ContentID from vefn_FindText(@DocVersionList,@SearchString,@CaseSensitive,@IncludeLinks,@IncludeRtfFormatting,@IncludeSpecialCharacters,@StepTypeList)) - order by DvPath,OrdinalPath - GO -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchItemAndChildrenNew Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchItemAndChildrenNew Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[tr_tblItems_Update]') AND OBJECTPROPERTY(id,N'IsTrigger') = 1) - DROP TRIGGER [tr_tblItems_Update]; - - /****** Object: Trigger [dbo].[tr_tblItems_Update] Script Date: 04/25/2012 14:09:52 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/****** Object: Trigger [tr_tblItems_Update] ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE trigger [dbo].[tr_tblItems_Update] on [dbo].[tblItems] for update as - begin - if exists (select * from inserted) - begin - if update(PreviousID) or update(ContentID) or update(UserID) or update(DeleteStatus) - begin - insert into ItemAudits(ItemID,PreviousID,ContentID,DTS,UserID,DeleteStatus) - select dd.ItemID,dd.PreviousID,dd.ContentID,dd.DTS,dd.UserID,dd.DeleteStatus from deleted dd - inner join inserted ii on dd.ItemID = ii.ItemID - where dd.deletestatus = 0 or ii.deletestatus != 0 - end - end - end -GO --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Trigger alteration: tr_tblItems_Update Succeeded' -ELSE PRINT 'Trigger alteration: tr_tblItems_Update Error on Alteration' -GO - -/****** Object: StoredProcedure [vesp_GetROUsagesByProcedure] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetROUsagesByProcedure]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetROUsagesByProcedure]; -GO - -/* -exec vesp_GetROUsagesByProcedure '1,2,4','20007','1:00010000019C,0001000002AE' -exec vesp_GetROUsagesByProcedure '1,2,4','','1:00010000019C,0001000002AE' -exec vesp_GetROUsagesByProcedure '1,2,4','20007','1:0001' -exec vesp_GetROUsagesByProcedure '1,2,4','20006','1' -exec vesp_GetROUsagesByProcedure '1,2,4','20006','' -exec vesp_GetROUsagesByProcedure '1,2,4',Null,Null -exec vesp_GetROUsagesByProcedure '1','','1:000700000124','' -exec vesp_GetROUsagesByProcedure '','','1:0007000001C9,000700000124', '' -exec vesp_SearchROItemAndChildren '1','','1:000700000124','' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetROUsagesByProcedure] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), @ROSearchString varchar(MAX), @UnitPrefix as varchar(MAX)) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -begin -with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath, FoundROID) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath, null - - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - --Path + case when Z.FromType < 3 then @Delim else @DelimStep end + case C.Type/10000 - Path + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(3)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001', - null - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + @UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(3)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4), - null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) -select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount], - RRU.ROID FoundROID - from ItemZ I - join Contents C on C.ContentID = I.ContentID -join (select contentid, ru.roid from ROusages RU -join vefn_SplitROSearch(@ROSearchString) RR on case when len(RU.ROID) = 12 then RU.ROID +'0000' else RU.ROID end - like RR.roid + '%' -union -select contentid, du.roid from DROusages DU -join entries ee on DU.DOCID = EE.DOCID -join vefn_SplitROSearch(@ROSearchString) RR on case when len(DU.ROID) = 12 then DU.ROID +'0000' else DU.ROID end like RR.roid + '%') RRU on RRU.ContentID = I.ContentID - AND - ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - or - (@StepTypeList like '%20040%' AND IsRNO = -1))) - order by DvPath,OrdinalPath /*having foundroid in ( select roid from vefn_SplitROSearch(@ROSearchString))*/ -OPTION (MAXRECURSION 10000) -END -END -GO -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetROUsagesByProcedure Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetROUsagesByProcedure Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[FindRoUsages]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [FindRoUsages]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -Declare @ROSearchString varchar(MAX) -set @ROSearchString='1:000200000089' -select * from FindRoUsages('1:000200000089') -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create FUNCTION [dbo].[FindRoUsages](@ROSearchString varchar(Max)) -RETURNS @Results TABLE -( - ContentID int Primary Key -) -WITH EXECUTE AS OWNER -BEGIN - insert into @Results - select ContentID from ROUsages RU - join vefn_SplitROSearch(@ROSearchString) RR - ON RR.RODBID = RU.RODBID and - RU.ROID like RR.ROID + '%' Collate SQL_Latin1_General_CP1_CI_AS - UNION - select ContentID from Entries EE - Join DROUsages RU on RU.DocID = EE.DocID - join vefn_SplitROSearch(@ROSearchString) RR - ON RR.RODBID = RU.RODBID and - case when len(RU.ROID) = 12 then RU.ROID +'0000' else RU.ROID end like RR.ROID + '%' Collate SQL_Latin1_General_CP1_CI_AS - RETURN -END -GO - -IF (@@Error = 0) PRINT 'Function: FindRoUsages Succeeded' -ELSE PRINT 'Function: FindRoUsages Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchROItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [vesp_SearchROItemAndChildren]; - -GO -/****** Object: StoredProcedure [dbo].[vesp_SearchROItemAndChildren] Script Date: 09/28/2012 09:02:50 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -exec vesp_SearchROItemAndChildren '1,2,4','20007','1:00010000019C,0001000002AE','' -exec vesp_SearchROItemAndChildren '1,2,4','','1:00010000019C,0001000002AE','' -exec vesp_SearchROItemAndChildren '1,2,4','20007','1:0001','' -exec vesp_SearchROItemAndChildren '1,2,4','20006','1','' -exec vesp_SearchROItemAndChildren '1,2,4','20006','','' -exec vesp_SearchROItemAndChildren '',Null,Null,'XXX-','' -exec vesp_SearchROItemAndChildren '1','','1:000200000089','' -exec vesp_SearchROItemAndChildren '1','','1:00010000019c','' -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SearchROItemAndChildren] (@DocVersionList varchar(MAX), @StepTypeList varchar(MAX), @ROSearchString varchar(MAX), @UnitPrefix as varchar(MAX)) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -begin -with Itemz(DVPath, [Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], - [pDTS],[pUserID],[pLastChanged],PPath, Path, IsRNO, POrdinalPath, OrdinalPath, UnitPrefix) as ( - Select DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [I].[ItemID], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID],[I].[LastChanged] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], [I].[LastChanged] [pLastChanged], - Cast('' as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) Path, - 0 IsRNO, Cast('' as nvarchar(max)) POrdinalPath, Cast('0001' as nvarchar(max)) OrdinalPath, UnitPrefix - - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] -Union All --- Children - select DVPath, [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - --Path + case when Z.FromType < 3 then @Delim else @DelimStep end + case C.Type/10000 - Path + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(3)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('0000' + Cast(P.FromType as varchar(4)), 4) + '-0001', UnitPrefix - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - ,PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + UnitPrefix + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(3)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('0000' + cast(Z.[Ordinal] + 2 as varchar(4)), 4), UnitPrefix - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 -) -select DvPath, Path, I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - left join Entries E on C.ContentID = E.ContentID - left join Documents D on E.DocID = D.DocID - where - I.ContentID in(select ContentID from FindROUsages(@ROSearchString)) - AND - ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or - ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - or - (@StepTypeList like '%20040%' AND IsRNO = -1))) - order by DvPath,OrdinalPath -OPTION (MAXRECURSION 10000) -END -END -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchROItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchROItemAndChildren Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranFrom]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranFrom]; -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranFrom] Script Date: 10/03/2012 10:06:38 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranFrom] -WITH EXECUTE AS OWNER -AS -begin - -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=I.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=I.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=I.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=I.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=I.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=I.[ItemID]) [Transition_ToIDCount] -from Items I -join Transitions T on I.ContentID = T.FromID -END -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranFrom Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranFrom Error on Creation' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranTo]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranTo]; -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranTo] Script Date: 10/03/2012 10:08:03 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranTo] -WITH EXECUTE AS OWNER -AS -begin -with Itemz(ItemID, ContentID, PreviousID, [Type]) as ( - Select Distinct ItemID, C.ContentID, PreviousID, C.Type - FROM [Items] I - Join Contents C on C.ContentID = I.ContentID - JOIN Transitions T on t.ToID = I.ItemID or t.RangeID = I.ItemID - --where [ItemID]=@ItemID -Union ALL --- Parent - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Parts P on P.ItemID = Z.ItemID - join Items I on I.ContentID = P.ContentID - Join Contents C on C.ContentID = I.ContentID --- Previous -Union ALL - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Items I on Z.PreviousID = I.ItemID - Join Contents C on C.ContentID = I.ContentID - where Z.Type >= 10000 -) -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=Z.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=Z.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=Z.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=Z.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=Z.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=Z.[ItemID]) [Transition_ToIDCount] -from Itemz Z join Items I on I.ItemID = Z.ItemID -OPTION (MAXRECURSION 10000) -END -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranTo Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranTo Error on Creation' -GO - - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranFromAndContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranFromAndContent]; -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranFromAndContent] Script Date: 10/03/2012 10:52:31 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranFromAndContent] -WITH EXECUTE AS OWNER -AS -begin - -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] -from Items I Join Contents C on I.ContentID = C.ContentID -join Transitions T on I.ContentID = T.FromID -END -GO -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranFromAndContent Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranFromAndContent Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsTranToAndContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsTranToAndContent]; -GO -GO -/****** Object: StoredProcedure [dbo].[vesp_ListItemsTranToAndContent] Script Date: 10/03/2012 10:08:17 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsTranToAndContent] -WITH EXECUTE AS OWNER -AS -begin -with Itemz(ItemID, ContentID, PreviousID, [Type]) as ( - Select Distinct ItemID, C.ContentID, PreviousID, C.Type - FROM [Items] I - Join Contents C on C.ContentID = I.ContentID - JOIN Transitions T on t.ToID = I.ItemID or t.RangeID = I.ItemID - --where [ItemID]=@ItemID -Union ALL --- Parent - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Parts P on P.ItemID = Z.ItemID - join Items I on I.ContentID = P.ContentID - Join Contents C on C.ContentID = I.ContentID --- Previous -Union ALL - select I.ItemID,I.ContentID, I.PreviousID, C.Type - from Itemz Z - join Items I on Z.PreviousID = I.ItemID - Join Contents C on C.ContentID = I.ContentID - where Z.Type >= 10000 -) -Select distinct I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] -from Itemz Z -Join Items I on Z.ItemID = I.ItemID -Join Contents C on I.ContentID = C.ContentID -OPTION (MAXRECURSION 10000) -END -GO - -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsTranToAndContent Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsTranToAndContent Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_SiblingAndChildrenItemsByProc] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SiblingAndChildrenItemsByProc]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SiblingAndChildrenItemsByProc]; -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_tblChildItems] Script Date: 05/18/2011 11:20:48 ******/ -/* -select * from vefn_SiblingAndChildrenItemsByProc(30) II -join -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SiblingAndChildrenItemsByProc](@ProcID int) -RETURNS @SiblingAndChildren TABLE -( - [ItemID] int PRIMARY KEY - , [DVPath] nvarchar(max) - , [Path] nvarchar(max) - , [Level] int - , [FromType] int - , [Ordinal] int - , [ParentID] int - , [PreviousID] int - , [ContentID] int - , [DTS] datetime - , [UserID] nvarchar(100) - , [pContentID] int - , [pDTS] datetime - , [pUserID] nvarchar(100) - , [IsRNO] int - --- , [PPath] nvarchar(max) --- , [POrdinalPath] nvarchar(max) - , [OrdinalPath] nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -BEGIN -with Itemz([ItemID], [DVPath], [Level], [ParentID], [Ordinal], [PreviousID], [FromType], [ContentID], [DTS], [UserID],[pContentID], - [pDTS],[pUserID],PPath, [Path], [IsRNO], [POrdinalPath], [OrdinalPath]) as ( - Select [I].[ItemID], '' DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], - Cast('' as nvarchar(max)) [PPath], - Cast(Case when C.Type < 20000 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) [Path], - 0 IsRNO, Cast('' as nvarchar(max)) [POrdinalPath], Cast('0001' as nvarchar(max)) [OrdinalPath] - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - WHERE I.[ItemID] = @ProcID -Union All --- Children - select I.[ItemID], DVPath, [Level] + 1,Z.ItemID,0, I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID], - P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(3)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-00001' - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select I.[ItemID], DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID] - ,null,null,null, - PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - when 1 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') - else case when .dbo.vefn_GetLastDelim(Path) = '.' THEN @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(3)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('00000' + cast(Z.[Ordinal] + 2 as varchar(5)), 5) - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 - -) -insert into @SiblingAndChildren -select I.[ItemID], [DvPath], [Path], I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID], - [pContentID],[pDTS],[pUserID],[IsRNO]/*,[PPath],[POrdinalPath]*/,[OrdinalPath] - from ItemZ I -OPTION (MAXRECURSION 10000) -END -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SiblingAndChildrenItemsByProc Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SiblingAndChildrenItemsByProc Error on Creation' -GO - - -/****** Object: StoredProcedure [vefn_RemoveRange] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_RemoveRange]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_RemoveRange]; -GO - -/* -SELECT ContentID, text, [dbo].[vefn_RemoveRange](text,'') StrippedText -from contents -where contentid in (select top 25 ContentID from contents where text like '%[[]END>%') - -select top 25 * from contents where text like '%[[]END>%' - -SELECT ContentID, [dbo].[vefn_RemoveRange](text,'') StrippedText -from contents -where contentid =189 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_RemoveRange](@text nvarchar(MAX),@startToken nvarchar(MAX), @endToken nvarchar(MAX)) -RETURNS varchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @index int - DECLARE @index2 int - DECLARE @lenStartToken int - DECLARE @lenEndToken int - DECLARE @lastIndex int - SET @lenStartToken = len(@startToken) - SET @lenEndToken = len(@endToken) - SET @index = CHARINDEX(@startToken , @text) - SET @lastIndex = -1 - while (@index != 0) - BEGIN - SET @index2 = CHARINDEX(@endToken , @text, @index + @lenStartToken) - if (@index2>0) - SET @text = substring(@text,1,@index-1) + substring(@text,@index2+@lenEndToken,len(@text)) - SET @lastIndex = @index - SET @index = CHARINDEX(@startToken , @text) - if (@index = @lastIndex) SET @index = 0 - END - RETURN @text -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_RemoveRange Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_RemoveRange Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetPath] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetPath]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetPath]; -GO - -/* -select ItemID, CC.Type, dbo.ve_GetPath(ItemID) -from Items II join Contents CC on II.ContentID = CC.ContentID -where ItemID in(111,265,266,267) -*/ --- drop function ve_GetPath -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetPath] (@ItemID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN --- declare @STructID int ---set @StructID=11 -declare @Path varchar(max); -with Itemz(ItemCount,ItemID,PreviousID,FromType,CType,Number,Text,PPath, Path) as ( - Select 1,ItemID,PreviousID,0,C.Type/10000,C.Number,C.Text, - Cast(Case when C.Type < 20000 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') else '' end as nvarchar(max)) PPath, - Cast(Case when C.Type < 20000 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') else '1' end as nvarchar(max)) Path - from Items I - join Contents C on I.ContentID = C.ContentID - where ItemID=@ItemID - Union All --- siblings - Select ItemCount+1,I.PreviousID,II.PreviousID,0,C.Type/10000,Z.Number,Z.Text,PPath,cast(ItemCount + 1 as nvarchar(3)) + PPath - from Items I - join Contents C on I.ContentID = C.ContentID - Join Items II on II.ItemID = I.PreviousID - Join Itemz Z on I.ItemID=Z.ItemID - where I.PreviousID != 0 - Union All --- children - select 1,I.ItemID,I.PreviousID,P.FromType,C.Type/10000,C.Number,C.Text, - case C.Type/10000 - when 0 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') - when 1 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') +'`' + cast(ItemCount + 0 as varchar(3)) - else - case P.FromType - when 1 then 'PRC`' + cast(ItemCount + 0 as varchar(3)) - when 2 then '`SEC`' + cast(ItemCount + 0 as varchar(3)) - when 3 then '`Caution`' + cast(ItemCount + 0 as varchar(3)) - when 4 then '`Note`' + cast(ItemCount + 0 as varchar(3)) - when 5 then '`RNO`' - when 7 then '`Table`' - else '`' + cast(ItemCount + 0 as varchar(3)) - end end + PPath PPath, - --'1' + - case C.Type/10000 - when 0 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') - when 1 then '`' + Isnull(C.Number,'') +'`' + Isnull(C.Text,'') +'`' + cast(ItemCount + 0 as varchar(3)) - else - case P.FromType - when 1 then 'PRC`' + cast(ItemCount + 0 as varchar(3)) - when 2 then '`SEC`' + cast(ItemCount + 0 as varchar(3)) - when 3 then '`Caution`' + cast(ItemCount + 0 as varchar(3)) - when 4 then '`Note`' + cast(ItemCount + 0 as varchar(3)) - when 5 then '`RNO' - when 7 then '`Table' - else '`' + cast(ItemCount + 0 as varchar(3)) - end end + PPath Path - - from Parts P - join Items I on I.ContentID = P.ContentID - join Contents C on I.ContentID = C.ContentID - join Itemz Z on P.ItemID=Z.ItemID -) -select @Path = path From Itemz where ItemCount=1 and CType=0 -OPTION (MAXRECURSION 10000) -return @Path -END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetPath Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetPath Error on Creation' -GO - - -/****** Object: StoredProcedure [vefn_ProcedureByProcID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ProcedureByProcID]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ProcedureByProcID]; -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_ProcedureByProcID] Script Date: 05/18/2011 11:20:48 ******/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create FUNCTION [dbo].[vefn_ProcedureByProcID](@ProcID int) -RETURNS @SiblingAndChildren TABLE -( - [ItemID] int PRIMARY KEY - , [DVPath] nvarchar(max) - , [Path] nvarchar(max) - , [Level] int - , [FromType] int - , [Ordinal] int - , [ParentID] int - , [PreviousID] int - , [ContentID] int - , [DTS] datetime - , [UserID] nvarchar(100) - , [pContentID] int - , [pDTS] datetime - , [pUserID] nvarchar(100) - , [IsRNO] int - --- , [PPath] nvarchar(max) --- , [POrdinalPath] nvarchar(max) - , [OrdinalPath] nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -BEGIN -insert into @SiblingAndChildren - Select -[I].[ItemID] -, '' DVPath -, Cast(Case when C.Type < 20000 then @Delim + Isnull(C.Number,'') + @DelimNumber + Isnull(C.Text,'') else '1' end as nvarchar(max)) [Path] -,0 [Level] -,0 [FromType] -, 0 [Ordinal] -, 0 [ParentID] -, [PreviousID] -,[I].[ContentID] -,[I].[DTS] -,[I].[UserID] - ,0 [pContentID] -,[I].[DTS] [pDTS] -, [I].[UserID] [pUserID] -,0 IsRNO - , Cast('0001' as nvarchar(max)) [OrdinalPath] - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - WHERE I.[ItemID] = @ProcID -END -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ProcedureByProcID Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ProcedureByProcID Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindText]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindText]; -GO - -/* -SELECT * From vefn_FindText('1','turbine-driven',0,0,0,1,'') -SELECT * From vefn_FindText('1','turbine\u8209?driven',0,0,0,0,'') -SELECT * From vefn_FindText('1','trip',0,0,0,0,'') -select * from vefn_FindText('1','',0,0,0,1,'20010,20008') -select * from vefn_FindText('1',null,0,0,0,1,'20010,20008') -select * from vefn_FindText('1',' ',0,0,0,1,'20010,20008') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindText]( -@DocVersionList nvarchar(MAX) -,@SearchString varchar(MAX) -,@CaseSensitive as int -,@IncludeLinks as int -,@IncludeRtfFormatting as int -,@IncludeSpecialCharacters as int -,@StepTypeList varchar(MAX)) -RETURNS @FoundContents TABLE -( - ContentID int PRIMARY KEY -) -WITH EXECUTE AS OWNER -AS -BEGIN -Set @SearchString = .dbo.vefn_FixSearchString(@SearchString) -IF isnull(@SearchString,'%')='%' - BEGIN - insert into @FoundContents - select C.ContentID from (select * from Contents where ContentID in(select ContentID from vefn_DVContent(@DocVersionList))) C - where(isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or (dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))) - END -ELSE - BEGIN - Declare @SearchStringx nvarchar(200) --kbr - set @SearchStringx = replace(@SearchString,'-','\u8209?') --kbr - IF @CaseSensitive = 0 -- Not Case Sensitive - BEGIN - insert into @FoundContents - select C.ContentID from vefn_FindContentText(@DocVersionList,@SearchStringx) C - where - (.dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchStringx Collate SQL_Latin1_General_CP1_CI_AS) - AND ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - UNION - select C.ContentID from (select * from Contents where ContentID in(select ContentID from vefn_DVContent(@DocVersionList))) C - join Entries E on C.ContentID = E.ContentID - join Documents D on E.DocID = D.DocID - where - (D.DocAscii like @SearchString Collate SQL_Latin1_General_CP1_CI_AS) - AND - ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - END - ELSE - BEGIN - IF @CaseSensitive = 1 -- Case Sensitive - BEGIN - insert into @FoundContents - select C.ContentID from vefn_FindContentText(@DocVersionList,@SearchStringx) C - where - (.dbo.vefn_RemoveExtraText(C.Text,@IncludeLinks, @IncludeRtfFormatting, @IncludeSpecialCharacters) like @SearchStringx Collate SQL_Latin1_General_CP1_CS_AS) - AND ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - UNION - select C.ContentID from (select * from Contents where ContentID in(select ContentID from vefn_DVContent(@DocVersionList))) C - join Entries E on C.ContentID = E.ContentID - join Documents D on E.DocID = D.DocID - where - (D.DocAscii like @SearchString Collate SQL_Latin1_General_CP1_CS_AS) - AND - ((isnull(@StepTypeList,'') = '' and dbo.vefn_AllSections(C.Type)>=10000) - or ((dbo.vefn_AllSections(C.Type) in (Select ID from vefn_SplitInt(@StepTypeList,','))))) - END - END -END -RETURN -END - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindText Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindText Error on Creation' -GO - --- THIS IS STUFF THAT WE FIXED IN PROMS2010.SQL AND PUT IN HERE ALSO -/****** Object: StoredProcedure [getItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemAndChildren]; -GO - --- getItemAndChildren 111 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemAndChildren] (@ItemID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged] from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: getItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [getItemNextAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemNextAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemNextAndChildren]; -GO - --- getItemNextAndChildren 111 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemNextAndChildren] (@ItemID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged] from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemNextAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: getItemNextAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [ve_GetSiblingCount] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetSiblingCount]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetSiblingCount]; -GO - -/* -select top 5 CC.Number,CC.Text,Type,ItemID, dbo.ve_GetSiblingCount(ItemID) HLStepCount -from Contents CC -Join Parts PP on PP.ContentID = CC.ContentID -where CC.Type >= 10000 and CC.Type < 20000 -order by dbo.ve_GetSiblingCount(ItemID) desc - -select top 5 CC.Number,CC.Text,Type,ItemID, dbo.ve_GetSiblingCount(ItemID) SectionCount -from Contents CC -Join Parts PP on PP.ContentID = CC.ContentID -where CC.Type < 10000 -order by dbo.ve_GetSiblingCount(ItemID) desc - -select top 5 CC.Text,Type,ItemID, dbo.ve_GetSiblingCount(ItemID) SubStepCount -from Contents CC -Join Parts PP on PP.ContentID = CC.ContentID -where CC.Type >= 20000 -order by dbo.ve_GetSiblingCount(ItemID) desc - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetSiblingCount] (@ItemID int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN -declare @Count int; -with Itemz([Direction], [ItemID], [PreviousID]) as ( - Select 0 Direction,[ItemID], [PreviousID] - FROM [Items] - where [ItemID]=@ItemID --- Siblings Previous -Union All - select -1 Direction,I.[ItemID], I.[PreviousID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.Direction <= 0 --- Siblings Next -Union All - select 1 Direction,I.[ItemID], I.[PreviousID] - from Itemz Z - join Items I on I.ItemID = Z.PreviousID - where Z.Direction >= 0 -) -Select @Count = Count(*) from Itemz -OPTION (MAXRECURSION 10000) -return @Count END; -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetSiblingCount Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetSiblingCount Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_AllHighLevelSteps] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_AllHighLevelSteps]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_AllHighLevelSteps]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_AllHighLevelSteps]() -RETURNS @HighLevelStepTransitions TABLE -( - ParentID int - ,ItemID int PRIMARY KEY - ,Ordinal int - ,Path varchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM (select II.ItemID ParentID, PP.ItemID, PreviousID, II.ContentID, II.DTS, II.UserID, II.LastChanged from Items II -Join Contents CC on II.ContentID = CC.ContentID -Join Parts PP on PP.ContentID = II.ContentID and FromType = 6 -where CC.Type = 10000) TT --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - --where Z.[Level] > 0 -) -Insert into @HighLevelStepTransitions -select [ParentID],ItemID,Ordinal,dbo.ve_GetPath([ItemID]) Path -from Itemz -Order by ParentID,ItemID -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_AllHighLevelSteps Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_AllHighLevelSteps Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_AllHighLevelStepTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_AllHighLevelStepTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_AllHighLevelStepTransitions]; -GO - -/* -select * from vefn_AllHighLevelStepTransitions() -where ExternalTransitions > 0 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_AllHighLevelStepTransitions]() -RETURNS @HighLevelStepTransitions TABLE -( - ParentID int - ,ItemID int PRIMARY KEY - ,Ordinal int - ,Path varchar(max) - ,TransCount int - ,ExternalTransitions int - ,ExternalChildTransitions int - ,InternalTransitions int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM (select II.ItemID ParentID, PP.ItemID, PreviousID, II.ContentID, II.DTS, II.UserID, II.LastChanged from Items II -Join Contents CC on II.ContentID = CC.ContentID -Join Parts PP on PP.ContentID = II.ContentID and FromType = 6 -where CC.Type = 10000) TT --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - --where Z.[Level] > 0 -) -Insert into @HighLevelStepTransitions -select [ParentID],ItemID,Ordinal,dbo.ve_GetShortPath([ItemID]) Path,(Select Count(*) from Transitions where ToID=ItemID OR RangeID=ItemID ) TransCount -,(Select count(*) from vefn_FindExternalTransitions(ItemID)) ExternalTransitions -,(Select count(*) from vefn_FindExternalChildTransitions(ItemID)) ExternalChildTransitions -,(Select count(*) from vefn_FindInternalTransitions(ItemID)) InternalTransitions -from Itemz -where (Select Count(*) from Transitions where ToID=ItemID OR RangeID=ItemID ) > 0 -OR(Select count(*) from vefn_FindExternalTransitions(ItemID)) > 0 -OR(Select count(*) from vefn_FindInternalTransitions(ItemID)) > 0 -Order by ParentID,ItemID -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_AllHighLevelStepTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_AllHighLevelStepTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_ChildItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChildItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChildItems]; -GO - -/* -declare @PreviousID as int -declare @ItemID as int -set @ItemID = 450 -select @PreviousID = PreviousID from items where ItemID = @ItemID - -Select * from Items where ItemID = @ItemID - -select * from Transitions -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -select CC.Text from Transitions TT -join contents CC on TT.FromID = CC.ContentID -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ChildItems](@ItemID int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ItemID], [ContentID]) as ( - Select 0 [Level], [ItemID], [ContentID] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] , I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children select ItemID, ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ChildItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ChildItems Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_ChildItemsRange] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChildItemsRange]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChildItemsRange]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ChildItemsRange](@StartItemID int, @EndItemID int, @DestFormat int) -RETURNS @Children TABLE -( -ItemID int PRIMARY KEY, -ContentID int, -FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @FormatID int -SELECT @FormatID = isnull(@DestFormat,.dbo.vefn_GetInheritedFormat(@StartItemID,1)) -BEGIN -with Itemz([Level], [ItemID], [ContentID], [FormatID], [FoundEnd]) as ( -Select 0 [Level], [ItemID], I.[ContentID], IsNull(C.[FormatID], @FormatID), case [ItemID] when @EndItemID then 1 else 0 end [FoundEnd] -FROM [Items] I -JOIN [Contents] C on I.ContentID = C.ContentID -where [ItemID]=@StartItemID -Union All --- Children -select [Level] + 1, I.[ItemID], I.[ContentID], IsNull(C.[FormatID], Z.[FormatID]), case I.[ItemID] when @EndItemID then 1 else 0 end [FoundEnd] -from Itemz Z -join Parts P on P.ContentID = Z.ContentID -join Items I on I.ItemID = P.ItemID -JOIN [Contents] C on I.ContentID = C.ContentID --- Siblings -Union All -select [Level] , I.[ItemID], I.[ContentID], IsNull(C.[FormatID], Z.[FormatID]), case I.[ItemID] when @EndItemID then 1 else 0 end [FoundEnd] -from Itemz Z -join Items I on I.PreviousID = Z.ItemID -JOIN [Contents] C on I.ContentID = C.ContentID -where FoundEnd = 0 -) -insert into @Children select ItemID, ContentID, FormatID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ChildItemsRange Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ChildItemsRange Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_ChildrenItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChildrenItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChildrenItems]; -GO - -/* -select * from Transitions -where (ToID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) OR (RangeID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) -AND NOT (FromID in(Select ContentID From dbo.vefn_ChildrenItems(185,184))) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ChildrenItems](@ItemID int, @ParentID int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children select ItemID, ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_ChildrenItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_ChildrenItems Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindAffectedTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindAffectedTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindAffectedTransitions]; -GO - -/* -select top 1 * from items order by itemid desc -Select -FromID,.dbo.ve_GetPathFromContentID(FromID) ContentPath -,ToID,dbo.ve_GetPath(ToID) ToPath -,RangeID,dbo.ve_GetPath(RangeID) RangePath -,cc.Text -from vefn_FindAffectedTransitions(2102) ttz -join transitions tt on ttz.TransitionID = tt.TransitionID ---join items ii on ii.ItemID = tt.fromID -join contents cc on tt.FromID = cc.contentid -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindAffectedTransitions](@ItemID int) -RETURNS @Transitions TABLE -( - TransitionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -declare @Type int -select @Type = CC.Type from Contents CC Join Items II ON II.ContentID = CC.ContentID Where ItemID = @ItemID -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- All Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where @Type >= 20000 OR Z.[Level] > 0 -- This would limit the siblings to the siblings of the children and not the initial ItemID -) -, Itemz2([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID --- All Siblings -Union All - select [Level] ,Z.[Ordinal] -1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz2 Z - join Items I on Z.PreviousID = I.ItemID - where @Type >= 20000 OR Z.[Level] > 0 -- This would limit the siblings to the siblings of the children and not the initial ItemID -) -insert into @Transitions -select TransitionID from Transitions TT -where (ToID in(select ItemID from Itemz) OR RangeID in(select ItemID from Itemz)) -UNION -select TransitionID from Transitions TT -JOIN Itemz2 on ToID=ItemID and RangeID=ItemID and IsRange = 2 -OPTION (MAXRECURSION 10000) -RETURN -END -END - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindAffectedTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindAffectedTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindExternalChildTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindExternalChildTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindExternalChildTransitions]; -GO - -/* -Select * from vefn_FindExternalChildTransitions(185) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindExternalChildTransitions](@ItemID int) -RETURNS @Children TABLE -( - FromItemID int, - ToID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children -select ItemID [FromItemID], case when TT.ToID in(select ItemID from Itemz) then TT.ToID else TT.RangeID end [ToID] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from Itemz where Level > 0) OR RangeID in(select ItemID from Itemz where Level > 0)) -AND FromID not in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindExternalChildTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindExternalChildTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindExternalTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindExternalTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindExternalTransitions]; -GO - -/* -Select * from vefn_FindExternalTransitions(185) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindExternalTransitions](@ItemID int) -RETURNS @Children TABLE -( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children -select ItemID [FromItemID], TT.[TransitionID], TT.[FromID], TT.[ToID], TT.[RangeID], TT.[Config] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from Itemz) OR RangeID in(select ItemID from Itemz)) -AND FromID not in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindExternalTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindExternalTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindInternalTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindInternalTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindInternalTransitions]; -GO - -/* -Select * from vefn_FindInternalTransitions(185) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindInternalTransitions](@ItemID int) -RETURNS @Children TABLE -( - FromItemID int, - ToID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children -select ItemID [FromItemID], case when TT.ToID in(select ItemID from Itemz) then TT.ToID else TT.RangeID end [ToID] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from Itemz) OR RangeID in(select ItemID from Itemz)) -AND FromID in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindInternalTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindInternalTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindInternalTransitionsForCopy] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindInternalTransitionsForCopy]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindInternalTransitionsForCopy]; -GO - -/* -Select * from vefn_FindInternalTransitionsForCopy(10277) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindInternalTransitionsForCopy](@ItemID int) -RETURNS @Transitions TABLE -( - TransitionID int, - FromID int, - TranType int, - ToID int, - RangeID int, - OldTransition int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Transitions -select TransitionID, FromID, TT.TranType, TT.ToID, TT.RangeID, CAST(TT.Config as int) --case when TT.ToID in(select ItemID from Itemz) then TT.ToID else TT.RangeID end [ToID] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID in(select ItemID from Itemz) OR RangeID in(select ItemID from Itemz)) -AND FromID in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindInternalTransitionsForCopy Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindInternalTransitionsForCopy Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetInheritedFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetInheritedFormat]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetInheritedFormat]; -GO - -/* Samples -Select TranType, .dbo.vefn_GetInheritedFormat(355) TransFormat - from(Select 1 TranType UNION Select 2 TranType UNION Select 3 TranType UNION - Select 4 TranType UNION Select 5 TranType UNION Select 6 TranType UNION - Select 7 TranType UNION Select 8 TranType UNION Select 9 TranType UNION Select 10 TranType) TT - -Select top 25 ItemID, TranType, .dbo.vefn_GetInheritedFormat(ItemID) TransFormat - From Transitions TR - Join Items II on II.ContentID = TR.FromID - -*/ -/* - local is a 'boolean' (0=false, 1=true) to state whether to look at the item itself or - only its parent -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetInheritedFormat] (@ItemID int, @local int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @FormatID as int - -- First get the Active Format - begin - with Itemz([Level], [PreviousID], [ItemID], [ParentID], [FolderID], [FormatID]) as ( - Select 0 [Level], [PreviousID], [ItemID], null, null, - case when @local = 1 then (Select FormatID from Contents CC where [CC].[ContentID] = [II].[ContentID]) - else null end FormatID - FROM [Items] II - where [ItemID]=@ItemID - Union All - -- Parent Item - select [Level] + 1, I.[PreviousID], I.[ItemID], null, null, C.FormatID - from Itemz Z - join Parts P on P.ItemID = Z.ItemID - join Items I on I.ContentID = P.ContentID - join Contents C on C.ContentID = P.ContentID - where Z.FormatID is null - -- Siblings Item - Union All - select [Level] , I.[PreviousID] , I.[ItemID], null, null, Z.FormatID - from Itemz Z - join Items I on Z.PreviousID = I.ItemID - where Z.FormatID is null - Union All - -- DocVersion From Item - select [Level] + 1, null, null, DV.FolderID, null, DV.FormatID - from Itemz Z - join DocVersions DV on DV.ItemID = Z.ItemID - where Z.FormatID is null - Union All - -- Folders - select [Level] + 1, null, null, FF.ParentID, FF.FolderID, FF.FormatID - from Itemz Z - join Folders FF on FF.FolderID = Z.ParentID and FF.ParentID <> FF.FolderID - where Z.FormatID is null - ) - Select @FormatID = FormatID from Itemz ZZ Where FormatID is not null - OPTION (MAXRECURSION 10000) - RETURN @FormatID - END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_GetInheritedFormat Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_GetInheritedFormat Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_HighLevelStepTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_HighLevelStepTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_HighLevelStepTransitions]; -GO - -/* -select * from vefn_HighLevelStepTransitions(105,104) -where TransCount > 0 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_HighLevelStepTransitions](@ItemID int, @ParentID int) -RETURNS @HighLevelStepTransitions TABLE -( - ParentID int - ,ItemID int PRIMARY KEY - ,Path varchar(max) - ,TransCount int - ,ExternalTransitions int - ,InternalTransitions int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - --where Z.[Level] > 0 -) -Insert into @HighLevelStepTransitions -select [ParentID],ItemID,dbo.ve_GetPath([ItemID]) ,(Select Count(*) from Transitions where ToID=ItemID OR RangeID=ItemID ) TransCount -,(Select count(*) from vefn_FindExternalTransitions(ItemID)) ExternalTransitions -,(Select count(*) from vefn_FindInternalTransitions(ItemID)) InternalTransitions -from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_HighLevelStepTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_HighLevelStepTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_SiblingChildrenItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SiblingChildrenItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SiblingChildrenItems]; -GO - -/* -select * from Transitions -where (ToID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) OR (RangeID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) -AND NOT (FromID in(Select ContentID From dbo.vefn_ChildrenItems(185,184))) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SiblingChildrenItems](@ItemID int) -RETURNS @SiblingChildren TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 as [pContentID],[DTS] As [pDTS], [UserID] As [pUserID], [LastChanged] As [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] as [pContentID],P.[DTS] As [pDTS],P.[UserID] As [pUserID],P.[LastChanged] As [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -insert into @SiblingChildren select ItemID, ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SiblingChildrenItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SiblingChildrenItems Error on Creation' -GO - -/****** Object: Table Function [vefn_SiblingItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_SiblingItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_SiblingItems]; -GO - -/* -select * from Transitions -where (ToID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) OR (RangeID in(select ItemID From dbo.vefn_ChildrenItems(185,184))) -AND NOT (FromID in(Select ContentID From dbo.vefn_ChildrenItems(185,184))) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SiblingItems](@ItemID int, @ParentID int) -RETURNS @Siblings TABLE -( - ItemID int PRIMARY KEY, - ContentID int, - Ordinal int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -insert into @Siblings select ItemID, ContentID, Ordinal from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_SiblingItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_SiblingItems Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_CleanUpItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_CleanUpItems]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_CleanUpItems]; -GO - -/* -select *, .dbo.ve_GetParts(ContentID,6) SubSteps from items -where contentid in(select contentid from contents where text like 'DISPATCH operator to open breaker%') - - -select * from items -where itemid in(298,299,436,440) - -select itemid from items -where previousid is null and itemid not in (select itemid from parts) - ---select * from contents where text like 'foldout cip%' - -select count(*) from parts -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE procedure [dbo].[vesp_CleanUpItems] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - BEGIN -with Itemz(ItemID) as( -select itemid from items -where previousid is null -and itemid not in(1) -and itemid not in (select itemid from parts) -UNION ALL -select ii.itemid from items ii join itemz zz on zz.itemid = ii.previousid -) -delete from items where itemid in (select itemid from itemz) -OPTION (MAXRECURSION 10000) - END - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_CleanUpItems Succeeded' -ELSE PRINT 'Procedure Creation: vesp_CleanUpItems Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListChildren]; -GO - --- vesp_ListChildren 17 --- drop procedure [getItemAndChildren] -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListChildren] (@ItemID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListChildren Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListContentPath] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListContentPath]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListContentPath]; -GO - --- vesp_ListContentPath 148 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create PROCEDURE [dbo].[vesp_ListContentPath] - ( - @ContentID int - ) -WITH EXECUTE AS OWNER -AS -BEGIN -with ContentZ(BaseID,ContentID,ItemID,Number,Text,Item,Level,PreviousID) as ( - Select II.ItemID,CC.ContentID,II.ItemID,CC.Number,CC.Text,1,1,II.PreviousID - from Items II join Contents CC on CC.ContentID=II.ContentID where @ContentID=II.ContentID - Union All --- - Select BaseID,CC.ContentID,II.ItemID,CC.Number,CC.Text,ZZ.Item+1,ZZ.Level,II.PreviousID - FROM ContentZ ZZ - Join Items II on II.ItemID = ZZ.PreviousID - Join Contents CC on II.ContentID = CC.ContentID - where ZZ.PreviousID is not null - Union All - Select BaseID,CC.ContentID,II.ItemID,CC.Number,CC.Text,1,ZZ.Level+1,II.PreviousID - FROM ContentZ ZZ - Join Parts PP on ZZ.ItemID = PP.ItemID - Join Contents CC on PP.ContentID = CC.ContentID - Join Items II on II.ContentID = CC.ContentID - where ZZ.PreviousID is null --and ZZ.ItemID in(717,715,711,662) -) -Select ZZ.BaseID,ZZ.Level,MaxItem,ZZ.Number,ZZ.Text from ContentZ ZZ -join (select BaseID, Level, max(item) MaxItem from ContentZ group by BaseID,Level) T1 on T1.BaseID=ZZ.BaseID and T1.Level = ZZ.Level -where Item=1 -order by ZZ.BaseID,ZZ.Level Desc, Item Desc -OPTION (MAXRECURSION 10000) -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListContentPath Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListContentPath Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemAndChildren]; -GO - --- vesp_ListItemAndChildren 1,0 --- drop procedure [vesp_ListItemAndChildren] -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemAndChildren] (@ItemID int, @ParentID int) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemAndChildren Error on Creation' -GO - --- THIS IS STUFF THAT WE FIXED IN PROMStoCM.SQL AND PUT IN HERE ALSO -/****** Object: StoredProcedure [getItemAuditsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemAuditsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemAuditsByItemID]; -GO - -/* -getitemauditsbyitemid 10183 - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemAuditsByItemID] -( - @ItemID int -) - -WITH EXECUTE AS OWNER -AS -/* - with Itemz([AuditType],[Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 'root' [AuditType], 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]= @ItemID - Union All - -- Children - select 'chld' [AuditType], [Level] + 2,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - -- Siblings - Union All - select 'sibl' [AuditType], [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 - ) -*/ - -select * from -( - --get deleted previous item - select 0 Level,ia.*,dbo.[ve_GetPartType](@ItemID) ItemType from - itemaudits ia - inner join itemaudits iaa on ia.itemid = iaa.previousid - where iaa.itemid = @ItemID - and ia.itemid not in (select itemid from items where itemid = ia.itemid) - and ia.deletestatus in (select max(deletestatus) from itemaudits where itemid = ia.itemid) - union - --get deleted next item -/* - select 1 Level,ia.*,@itemtype ItemType from itemaudits ia - where ia.previousid = @ItemID - and ia.itemid not in (select itemid from items where itemid = ia.itemid) - and ia.deletestatus in (select max(deletestatus) from itemaudits where itemid = ia.itemid) -*/ - select 1 Level, - ia.[AuditID], - ia.[ItemID], - ia.[PreviousID], - ia.[ContentID], - ia.[DTS], - ia.[UserID], - ti.[DeleteStatus] -,dbo.[ve_GetPartType](@ItemID) ItemType - from itemaudits ia - inner join tblitems ti on ia.itemid = ti.itemid - where ia.previousid = @ItemID - and ti.deletestatus > 0 -and ia.dts = ti.dts - union - --get chillins - select 2 Level,ia.*, -case -when pa.fromtype = 1 then 'Procedure' -when pa.fromtype = 2 then 'Section' -when pa.fromtype = 3 then 'Caution' -when pa.fromtype = 4 then 'Note' -when pa.fromtype = 5 then 'RNO' -when pa.fromtype = 6 then 'Step' -when pa.fromtype = 7 then 'Table' -else 'Unknown' -end itemtype - from itemaudits ia - inner join partaudits pa on ia.itemid = pa.itemid - inner join items ii on pa.contentid = ii.contentid - where ii.itemid = @ItemID - and ia.itemid not in (select itemid from items where itemid = ia.itemid) - and ia.deletestatus in (select max(deletestatus) from itemaudits where itemid = ia.itemid) -) ia -order by deletestatus desc -OPTION (MAXRECURSION 10000) ---select * from itemz order by parentid,ordinal - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemAuditsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getItemAuditsByItemID Error on Creation' -GO - --- THIS IS STUFF THAT WE FIXED IN PROMStoAPPR.SQL AND PUT IN HERE ALSO -/****** Object: StoredProcedure [vefn_FindExternalFromTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindExternalFromTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindExternalFromTransitions]; -GO - -/* -Select * from vefn_FindExternalFromTransitions(185) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create FUNCTION [dbo].[vefn_FindExternalFromTransitions](@ItemID int) -RETURNS @Children TABLE -( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children -select ItemID [FromItemID], TT.[TransitionID], TT.[FromID], TT.[ToID], TT.[RangeID], TT.[Config] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID not in(select ItemID from Itemz) OR RangeID not in(select ItemID from Itemz)) -AND FromID in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindExternalFromTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindExternalFromTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getAnnotationAuditsChronologyByItemIDandUnitID] Script Date: 10/10/2012 14:45:33 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationAuditsChronologyByItemIDandUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationAuditsChronologyByItemIDandUnitID]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/****** Object: StoredProcedure [getAnnotationAuditsChronologyByItemIDandUnitID] ******/ -/* -getAnnotationAuditsChronologyByItemIDandUnitID 13,13,1 -getAnnotationAuditsChronologyByItemIDandUnitID 30,8570,1 -getAnnotationAuditsChronologyByItemIDandUnitID 1,1,1 -getAnnotationAuditsChronologyByItemIDandUnitID 30,8505,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create procedure [dbo].[getAnnotationAuditsChronologyByItemIDandUnitID] -( - @ProcItemID int, - @ItemID int, - @UnitID int, - @DTS datetime -) -WITH EXECUTE AS OWNER -AS -begin --- declare @dts datetime --- set @dts = (select dts from items where itemid = @procitemid) - declare @tci table - ( - ItemID int, - IContentID int, - IDeleteStatus int, - ProcDTS datetime, - Path nvarchar(max), - OrdinalPath nvarchar(max) - ) - insert into @tci - select * from vefn_tblchilditems(@ProcItemID,@ItemID,0) - select - case - when lastauditid is null and dts > itemdts then 'Added' - when deletestatus > 0 then 'Deleted' - when lastauditid = deletedauditid then 'Restored' - else 'Changed' - end ActionWhat - ,case - when lastauditid is null and dts > itemdts then dts - when deletestatus > 0 then ActionDTS - when lastauditid = deletedauditid then ActionDTS - else dts - end ActionWhen - ,* - from - ( - select - cast(ident_current('annotationaudits') + 1 as bigint) auditid - -- (select max(auditid) + 1 from annotationaudits) auditid - -- 0 auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,0 deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from tblannotations aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - where aa.deletestatus = 0 - union - select - aa.auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,aa.deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid ) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from annotationaudits aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - ) ah - where itemid in (select itemid from vefn_tblchilditems (@procitemid,@itemid,0)) - and dts > @dts - and (dbo.ve_GetItemDerivedApplicability(ItemID) = '-1' or ',' + dbo.ve_GetItemDerivedApplicability(ItemID) + ',' like '%,' + cast(@UnitID as varchar(10)) + ',%') - --(select dts from versions where versionid = (select max(versionid) from revisions rr inner join versions vv on rr.revisionid = vv.revisionid - --inner join stages ss on vv.stageid = ss.stageid where itemid = @procitemid and ss.isapproved = 1)) - order by ordinalpath,annotationid,auditid--actionwhen -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationAuditsChronologyByItemIDandUnitID Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationAuditsChronologyByItemIDandUnitID Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getContentAuditsChronologyByItemIDandUnitID] Script Date: 10/10/2012 12:48:39 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsChronologyByItemIDandUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsChronologyByItemIDandUnitID]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/****** Object: StoredProcedure [getContentAuditsChronologyByItemIDandUnitID] ******/ -/* -getContentAuditsChronologyByItemIDandUnitID 10154,10154,0,1 -getContentAuditsChronologyByItemIDandUnitID 42,42,0,1 -getContentAuditsChronologyByItemIDandUnitID 1,1,0,1 -getContentAuditsChronologyByItemIDandUnitID 146,146,1,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsChronologyByItemIDandUnitID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @UnitID int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin - select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) --- select distinct [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah - where dbo.ve_GetItemDerivedApplicability(ItemID) = '-1' or ',' + dbo.ve_GetItemDerivedApplicability(ItemID) + ',' like '%,' + cast(@UnitID as varchar(10)) + ',%' --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsChronologyByItemIDandUnitID Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsChronologyByItemIDandUnitID Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getContentAuditsSummaryByItemIDandUnitID] Script Date: 10/10/2012 12:56:01 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsSummaryByItemIDandUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsSummaryByItemIDandUnitID]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/****** Object: StoredProcedure [getContentAuditsSummaryByItemIDandUnitID] ******/ -/* -getContentAuditsSummaryByItemIDandUnitID 146,146,0,1 -getContentAuditsSummaryByItemIDandUnitID 42,42,0,1 -getContentAuditsSummaryByItemIDandUnitID 1,1,0,1 -getContentAuditsSummaryByItemIDandUnitID 146,146,1,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create PROCEDURE [dbo].[getContentAuditsSummaryByItemIDandUnitID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @UnitID int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin - -DECLARE @Chrono TABLE -( -[AuditID] bigint, -[ContentID] int, -[Number] nvarchar(max), -[Text] nvarchar(max), -[Type] int, -[FormatID] int, -[Config] nvarchar(max), -[DTS] datetime, -[UserID] nvarchar(max), -[DeleteStatus] int, -[ActionDTS] datetime, -[ActionWhat] nvarchar(max), -[ActionWhen] datetime, -[Path] nvarchar(max), -ItemID int, -TypeName nvarchar(max), -ordinalpath nvarchar(max) -) -insert into @Chrono -select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) -where dbo.ve_GetItemDerivedApplicability(ItemID) = '-1' or ',' + dbo.ve_GetItemDerivedApplicability(ItemID) + ',' like '%,' + cast(@UnitID as varchar(10)) + ',%' -select * from @Chrono -where AuditID is null OR AuditID in (select min(auditID) from @Chrono group by contentid UNION select max(auditID) from @Chrono group by contentid) -order by OrdinalPath, contentid,auditid - ---select xyz.* from ---( ---select z.* from ---( ---select contentid,min(auditid) auditid from ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where dbo.ve_GetItemApplicability(ItemID) = '-1' or ',' + dbo.ve_GetItemApplicability(ItemID) + ',' like '%,' + cast(@UnitID as varchar(10)) + ',%' ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) x ---group by contentid ---) y ---inner join ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,appl,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName ---,dbo.ve_GetItemApplicability(ItemID) appl --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where dbo.ve_GetItemApplicability(ItemID) = '-1' or ',' + dbo.ve_GetItemApplicability(ItemID) + ',' like '%,' + cast(@UnitID as varchar(10)) + ',%' ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) z on y.contentid = z.contentid and y.auditid = z.auditid ---union ---select z.* from ---( ---select contentid,max(auditid) auditid from ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where dbo.ve_GetItemApplicability(ItemID) = '-1' or ',' + dbo.ve_GetItemApplicability(ItemID) + ',' like '%,' + cast(@UnitID as varchar(10)) + ',%' ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) x ---group by contentid ---) y ---inner join ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,appl,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName ---,dbo.ve_GetItemApplicability(ItemID) appl --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where dbo.ve_GetItemApplicability(ItemID) = '-1' or ',' + dbo.ve_GetItemApplicability(ItemID) + ',' like '%,' + cast(@UnitID as varchar(10)) + ',%' ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) z on y.contentid = z.contentid and y.auditid = z.auditid ---) xyz --- where appl = '-1' or ',' + appl + ',' like '%,' + cast(@UnitID as varchar(10)) + ',%' --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsSummaryByItemIDandUnitID Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsSummaryByItemIDandUnitID Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getCurrentRevisionByItemIDandUnitID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[getCurrentRevisionByItemIDandUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [dbo].[getCurrentRevisionByItemIDandUnitID]; -GO - -/****** Object: StoredProcedure [dbo].[getCurrentRevisionByItemIDandUnitID] Script Date: 06/22/2012 16:58:12 ******/ -/* -getCurrentRevisionByItemID 41 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getCurrentRevisionByItemIDandUnitID] -( - @ItemID int, - @UnitID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [Revisions].[RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] -inner join -( -select top 1 revisionid,mxvid from -( -select rr.revisionid,max(vv.versionid) mxvid -from items ii -inner join revisions rr on ii.itemid = rr.itemid -inner join versions vv on rr.revisionid = vv.revisionid -inner join stages ss on vv.stageid = ss.stageid -cross apply rr.config.nodes('Config/Applicability') t1(r1) -where ss.isapproved = 1 -and ii.itemid = @ItemID -and r1.value('@Index','int') = @UnitID -group by rr.revisionid -union -select null,null -) ds -order by mxvid desc -) rr on [Revisions].revisionid = rr.revisionid --- WHERE [ItemID] = @ItemID --- ORDER BY [RevisionID] DESC - RETURN -GO -IF (@@Error = 0) PRINT 'StoredProcedure [getCurrentRevisionByItemIDandUnitID] Succeeded' -ELSE PRINT 'StoredProcedure [getCurrentRevisionByItemIDandUnitID] Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getDocumentByLibDoc] Script Date: 01/30/2012 14:08:10 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocumentByLibDoc]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocumentByLibDoc]; -GO - --- [dbo].[getDocumentByLibDoc] 'DOC_0000',4 --- [dbo].[getDocumentByLibDoc] 'DOC_0000',3 --- [dbo].[getDocumentByLibDoc] 'DOC_0000',2 --- [dbo].[getDocumentByLibDoc] 'DOC_0000',1 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocumentByLibDoc] - -( - @LibDoc varchar(12), - @VersionID int -) -WITH EXECUTE AS OWNER -AS - DECLARE @DocID int - select @DocID = docid - from - ( - select - distinct ah.docid,.dbo.vefn_GetVersionIDByItemID(ii.itemid) versionid - from - ( - select dd.docid,ofn.value('@OriginalFileName','varchar(20)') origfilename,dts - from (select docid,cast(config as xml) xconfig,dts from documents) dd - cross apply xconfig.nodes('//History') t1(ofn) - ) ah - inner join entries ee on ah.docid = ee.docid - inner join items ii on ee.contentid = ii.itemid - where origfilename = @LibDoc + '.LIB' - ) ah - where versionid = @VersionID - --- from (select docid,cast(config as xml) xconfig from documents) ah --- cross apply xconfig.nodes('//Config/History') t1(roc) --- where roc.value('@OriginalFileName','varchar(12)') = @LibDoc + '.LIB' - - SELECT - [DocID], - [LibTitle], - [DocContent], - [DocAscii], - [Config], - [DTS], - [UserID], - [LastChanged], - [FileExtension], - (SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[DocID]=[Documents].[DocID]) [DROUsageCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[DocID]=[Documents].[DocID]) [EntryCount], - (SELECT COUNT(*) FROM [Pdfs] WHERE [Pdfs].[DocID]=[Documents].[DocID]) [PdfCount] - FROM [Documents] - WHERE [DocID]=@DocID - - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [RODbs].[ROName] [RODb_ROName], - [RODbs].[FolderPath] [RODb_FolderPath], - [RODbs].[DBConnectionString] [RODb_DBConnectionString], - [RODbs].[Config] [RODb_Config], - [RODbs].[DTS] [RODb_DTS], - [RODbs].[UserID] [RODb_UserID] - FROM [DROUsages] - JOIN [RODbs] ON - [RODbs].[RODbID]=[DROUsages].[RODbID] - WHERE - [DROUsages].[DocID]=@DocID - - - SELECT - [Entries].[ContentID], - [Entries].[DocID], - [Entries].[DTS], - [Entries].[UserID], - [Entries].[LastChanged], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [Entries] - JOIN [Contents] ON - [Contents].[ContentID]=[Entries].[ContentID] - WHERE - [Entries].[DocID]=@DocID - - - SELECT - [Pdfs].[DocID], - [Pdfs].[DebugStatus], - [Pdfs].[TopRow], - [Pdfs].[PageLength], - [Pdfs].[LeftMargin], - [Pdfs].[PageWidth], - [Pdfs].[PageCount], - [Pdfs].[DocPdf], - [Pdfs].[DTS], - [Pdfs].[UserID], - [Pdfs].[LastChanged] - FROM [Pdfs] - WHERE - [Pdfs].[DocID]=@DocID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocumentByLibDoc Succeeded' -ELSE PRINT 'Procedure Creation: getDocumentByLibDoc Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getRevisionByItemIDandRevisionNumberAndUnitID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[getRevisionByItemIDandRevisionNumberAndUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [dbo].[getRevisionByItemIDandRevisionNumberAndUnitID]; -GO - -/****** Object: StoredProcedure [dbo].[getRevisionByItemIDandRevisionNumberAndUnitID] Script Date: 06/25/2012 23:05:17 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRevisionByItemIDandRevisionNumberAndUnitID] - -( - @ItemID int, - @RevisionNumber nvarchar(50), - @UnitID int -) -WITH EXECUTE AS OWNER -AS -declare @RevisionID int -set @RevisionID = (select revisionid from revisions rr cross apply rr.config.nodes('//Applicability') t1(r1) where itemid = @itemid and revisionnumber = @RevisionNumber and r1.value('@Index','int') = @UnitID) - SELECT - [RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] - WHERE [RevisionID]=@RevisionID - - SELECT - [Checks].[CheckID], - [Checks].[RevisionID], - [Checks].[StageID], - [Checks].[ConsistencyChecks], - [Checks].[DTS], - [Checks].[UserID], - [Checks].[LastChanged], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Checks] - JOIN [Stages] ON - [Stages].[StageID]=[Checks].[StageID] - WHERE - [Checks].[RevisionID]=@RevisionID - - - SELECT - [Versions].[VersionID], - [Versions].[RevisionID], - [Versions].[StageID], - [Versions].[DTS], - [Versions].[UserID], - [Versions].[LastChanged], - [Versions].[PDF], - [Versions].[SummaryPDF], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Versions] - JOIN [Stages] ON - [Stages].[StageID]=[Versions].[StageID] - WHERE - [Versions].[RevisionID]=@RevisionID - - RETURN -GO -IF (@@Error = 0) PRINT 'StoredProcedure [getRevisionByItemIDandRevisionNumberAndUnitID] Succeeded' -ELSE PRINT 'StoredProcedure [getRevisionByItemIDandRevisionNumberAndUnitID] Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[getRevisionsByItemIDandUnitID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[getRevisionsByItemIDandUnitID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [dbo].[getRevisionsByItemIDandUnitID]; -GO - -/****** Object: StoredProcedure [dbo].[getRevisionsByItemIDandUnitID] Script Date: 06/26/2012 16:22:32 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRevisionsByItemIDandUnitID] -( - @ItemID int, - @UnitID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] -cross apply config.nodes('//Applicability') t1(r1) - WHERE [ItemID] = @ItemID -and r1.value('@Index','int') = @UnitID -and (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) > 0 - ORDER BY [RevisionID] DESC - RETURN -GO -IF (@@Error = 0) PRINT 'StoredProcedure [getRevisionsByItemIDandUnitID] Succeeded' -ELSE PRINT 'StoredProcedure [getRevisionsByItemIDandUnitID] Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_GetItemApplicability] Script Date: 03/28/2012 17:58:48 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetItemApplicability]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetItemApplicability]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetItemApplicability] (@ItemID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @apple varchar(max) - select @apple = r2.value('@Applicability','varchar(max)') - from - ( - select itemid,cast(config as xml) xconfig from items ii join contents cc on ii.contentid = cc.contentid - ) t1 - outer apply xconfig.nodes('//MasterSlave') t2(r2) - where itemid = @ItemID - return @apple -END -GO -IF (@@Error = 0) PRINT 'ScalerFunction [vefn_GetItemApplicability] Succeeded' -ELSE PRINT 'ScalerFunction [vefn_GetItemApplicability] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ParentItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ParentItems]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_ParentItems] Script Date: 10/12/2012 16:12:01 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -select * from [dbo].[vefn_ParentItems](212) -select * from [dbo].[vefn_ParentItems](48) -select * from [dbo].[vefn_ParentItems](49) -select * from [dbo].[vefn_ParentItems](50) -select * from [dbo].[vefn_ParentItems](51) -select * from [dbo].[vefn_ParentItems](52) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_ParentItems](@ItemID int) -RETURNS @Parents TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Relationship], [ItemID], [ContentID], [PreviousID]) as ( - Select 1 [Relationship], [ItemID], [ContentID], [PreviousID] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Parents - select 2 [Relationship], I.[ItemID], I.[ContentID], I.[PreviousID] - from Itemz Z - join Parts P on P.ItemID = Z.ItemID - join Items I on I.ContentID = P.ContentID --- Siblings -Union All - select 0 [Relationship] , I.[ItemID], I.[ContentID], I.[PreviousID] - from Itemz Z - join Items I on Z.PreviousID = I.ItemID -) -insert into @Parents select ItemID, ContentID from Itemz where Relationship > 0 -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_ParentItems Succeeded' -ELSE PRINT 'Function: vefn_ParentItems Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetItemDerivedApplicability]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetItemDerivedApplicability]; -GO - -/****** Object: UserDefinedFunction [dbo].[ve_GetItemDerivedApplicability] Script Date: 10/13/2012 00:57:34 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select [dbo].[ve_GetItemDerivedApplicability](48) -select [dbo].[ve_GetItemDerivedApplicability](49) -select [dbo].[ve_GetItemDerivedApplicability](50) -select [dbo].[ve_GetItemDerivedApplicability](51) -select [dbo].[ve_GetItemDerivedApplicability](52) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetItemDerivedApplicability] (@ItemID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @apple varchar(max) - select @apple = dbo.ve_getitemapplicability(@ItemID) - if @apple is null - begin - declare @ParentID int - select @ParentID = dbo.ve_getparentitem(@ItemID) - if @parentid is not null - set @apple = dbo.ve_GetItemDerivedApplicability(@ParentID) - else - begin - set @apple = '' - select @apple = coalesce(@apple + ',','') + r2.value('@index','varchar(max)') from - (select cast(config as xml) xconfig from docversions - where versionid = dbo.vefn_GetVersionIDByItemID(@ItemID)) ah - cross apply xconfig.nodes('//Slave') t2(r2) - set @apple = substring(@apple,2,len(@apple)) - end - end - return @apple -END -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: ve_GetItemDerivedApplicability Succeeded' -ELSE PRINT 'Function: ve_GetItemDerivedApplicability Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_GetParentItem] Script Date: 03/28/2012 17:58:48 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetParentItem]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetParentItem]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetParentItem] (@ItemID int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @ParentID int; -WITH Itemz([ItemID],[IsFound]) as -( -select ii.itemid,0 from items ii where ii.itemid = @ItemID -union all -select ii.previousid,0 from items ii -join itemz zz on ii.itemid = zz.itemid -where ii.previousid is not null -and zz.isfound = 0 -union all -select ii.itemid,1 -from parts pp -join itemz zz on pp.itemid = zz.itemid -join items ii on ii.contentid = pp.contentid -) -select top 1 @ParentID = itemid from itemz -where isfound = 1 OPTION (MAXRECURSION 10000) -RETURN @ParentID -END -GO - -IF (@@Error = 0) PRINT 'ScalerFunction [vefn_GetParentItem] Succeeded' -ELSE PRINT 'ScalerFunction [vefn_GetParentItem] Error on Creation' -go - -/****** Object: UserDefinedFunction [dbo].[vefn_CanTransitionBeCreated] Script Date: 10/14/2012 02:03:30 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CanTransitionBeCreated]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_CanTransitionBeCreated]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select dbo.vefn_CanTransitionBeCreated(49,51) -select dbo.vefn_CanTransitionBeCreated(51,49) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_CanTransitionBeCreated](@fromID int, @toID int) RETURNS int -AS BEGIN - declare @rv int - declare @tCount int - declare @uCount int - set @rv = 0 - select @tCount = count(*) from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@toID),',') - select @uCount = count(*) from - ( - select * from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@fromID),',') - union - select * from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@toID),',') - ) ah - if (@tCount = 0) or (@tCount >= @uCount) begin - set @rv = 1 - end - return @rv -END -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_CanTransitionBeCreated Succeeded' -ELSE PRINT 'Function: vefn_CanTransitionBeCreated Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_GetVersionIDByItemID] Script Date: 02/03/2012 16:48:32 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionIDByItemID]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetVersionIDByItemID]; -GO - -/* -select dbo.vefn_GetVersionIDByItemID(41) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create function [dbo].[vefn_GetVersionIDByItemID] -(@ItemID int) -returns int -as begin - declare @VersionID int; - with itemz - ( - itemid,previousid,versionid - ) as - ( - select itemid,previousid,null - from items ii - join contents cc on ii.contentid = cc.contentid - where itemid = @ItemID - --siblins - union all - select ii.itemid,ii.previousid,null - from items ii - join contents cc on ii.contentid = cc.contentid - join itemz zz on zz.previousid = ii.itemid - where zz.versionid is null - --chillins - union all - select ii.itemid,ii.previousid,null - from parts pp - join items ii on ii.contentid = pp.contentid - join contents cc on ii.contentid = cc.contentid - join itemz zz on zz.itemid = pp.itemid - where zz.versionid is null - --docversions - union all - select 0,0,dv.versionid - from docversions dv - join itemz zz on dv.itemid = zz.itemid - where zz.versionid is null - ) - select @VersionID = versionid from itemz zz - where versionid is not null - OPTION (MAXRECURSION 10000) - return @VersionID -end -GO --- Display the status of Func creation -IF (@@Error = 0) PRINT 'Function Creation: vefn_GetVersionIDByItemID Succeeded' -ELSE PRINT 'Function Creation: vefn_GetVersionIDByItemID Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_WillTransitionBeValidFrom] Script Date: 10/16/2012 18:17:37 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_WillTransitionBeValidFrom]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_WillTransitionBeValidFrom]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select dbo.vefn_WillTransitionBeValidFrom(194,'2') -select dbo.vefn_WillTransitionBeValidFrom(216,'2') -select dbo.vefn_WillTransitionBeValidFrom(246,'2') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_WillTransitionBeValidFrom](@toID int, @newAppl varchar(max)) RETURNS int -AS BEGIN - declare @rv int - declare @tCount int - declare @uCount int - set @rv = 0 - select @tCount = count(*) from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@toID),',') - select @uCount = count(*) from - ( - select * from vefn_SplitInt(@newAppl,',') - union - select * from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@toID),',') - ) ah - if @tCount >= @uCount begin - set @rv = 1 - end - return @rv -END -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_WillTransitionBeValidFrom Succeeded' -ELSE PRINT 'Function: vefn_WillTransitionBeValidFrom Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_WillTransitionBeValidTo] Script Date: 10/16/2012 18:20:23 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_WillTransitionBeValidTo]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_WillTransitionBeValidTo]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select dbo.vefn_WillTransitionBeValidTo(10617,'2') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_WillTransitionBeValidTo](@toID int, @newAppl varchar(max)) RETURNS int -AS BEGIN - declare @rv int - declare @tCount int - declare @uCount int - set @rv = 0 - select @tCount = count(*) from vefn_SplitInt(@newAppl,',') - select @uCount = count(*) from - ( - select * from vefn_SplitInt(@newAppl,',') - union - select * from vefn_SplitInt([dbo].[ve_GetItemDerivedApplicability](@toID),',') - ) ah - if @tCount >= @uCount begin - set @rv = 1 - end - return @rv -END -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_WillTransitionBeValidTo Succeeded' -ELSE PRINT 'Function: vefn_WillTransitionBeValidTo Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[vesp_CanTransitionBeCreated] Script Date: 10/15/2012 14:37:32 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_CanTransitionBeCreated]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_CanTransitionBeCreated]; -GO -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -exec vesp_CanTransitionBeCreated 46,180 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_CanTransitionBeCreated] -( - @fromItemID int, - @toItemID int -) -AS BEGIN - select dbo.vefn_CanTransitionBeCreated(@fromItemID,@toItemID) Status, - dbo.ve_GetItemDerivedApplicability(@fromItemID) fromAppl, - dbo.ve_GetItemDerivedApplicability(@toItemID) toAppl, - dbo.ve_GetShortPath(@fromItemID) fromStep, - dbo.ve_GetShortPath(@toItemID) toStep -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_CanTransitionBeCreated Succeeded' -ELSE PRINT 'Procedure Creation: vesp_CanTransitionBeCreated Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[vesp_ListItemAndChildrenByUnit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[dbo].[vesp_ListItemAndChildrenByUnit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [dbo].[vesp_ListItemAndChildrenByUnit]; -GO - -/****** Object: StoredProcedure [dbo].[vesp_ListItemAndChildrenByUnit] Script Date: 05/02/2012 23:16:53 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - --- vesp_ListItemAndChildrenByUnit 29546,0,'8' --- drop procedure [vesp_ListItemAndChildren] -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemAndChildrenByUnit] (@ItemID int, @ParentID int, @UnitID varchar(max)) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([apple],[Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 1 [apple],0 [Level], @ParentID [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select case when s1.value('@Applicability','varchar(max)') is null or ',' + s1.value('@Applicability','varchar(max)') + ',' like '%,' + @UnitID + ',%' then 1 else 0 end apple -,[Level] + 1,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join (select ContentID,cast(Config as xml) xConfig from Contents) C on C.ContentID = I.ContentID - outer apply C.xConfig.nodes('//MasterSlave') m1(s1) -where Z.[Apple] = 1 --- Siblings -Union All - select case when s1.value('@Applicability','varchar(max)') is null or ',' + s1.value('@Applicability','varchar(max)') + ',' like '%,' + @UnitID + ',%' then 1 else 0 end apple -,[Level] ,Z.[ParentID], -case when Z.[Apple] = 1 then Z.[Ordinal] +1 else Z.[Ordinal] end, I.[ItemID], -case when Z.[Apple] = 1 then I.[PreviousID] else Z.[PreviousID] end, [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join (select ContentID,cast(Config as xml) xConfig from Contents) C on C.ContentID = I.ContentID - outer apply C.xConfig.nodes('//MasterSlave') m1(s1) - where Z.[Level] > 0 -) -select I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - [pContentID],[pDTS],[pUserID],[pLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - CASE WHEN I.ItemID IN (SELECT ParentID FROM ItemZ WHERE apple = 1) THEN (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) ELSE 0 END [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - from ItemZ I - join Contents C on C.ContentID = I.ContentID -where i.apple = 1 - order by I.[Level] , I.[FromType], I.[Ordinal] - OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Procedure Creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemAndChildrenByUnit Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemAndChildrenByUnit Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[vesp_WillTransitionsBeValid] Script Date: 10/15/2012 14:37:32 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_WillTransitionsBeValid]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_WillTransitionsBeValid]; -GO -/* -dbo.vesp_WillTransitionsBeValid 10616,'2' -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE vesp_WillTransitionsBeValid -( - @ItemID int, - @NewAppl varchar(max) -) -AS BEGIN - select *, dbo.ve_GetShortPath(@ItemID) SrcStep, dbo.ve_GetShortPath(myitemid) TgtStep - from - ( - select tt.toid MyItemID, dbo.vefn_WillTransitionBeValidFrom(tt.toid,@NewAppl) Valid, @NewAppl SrcAppl, dbo.ve_GetItemDerivedApplicability(tt.toid) TgtAppl - from transitions tt - inner join items ii on tt.fromid = ii.contentid - where fromid in (select contentid from dbo.vefn_childitems(@ItemID)) - union - select ii.itemid MyItemID, dbo.vefn_WillTransitionBeValidTo(ii.itemid,@NewAppl) Valid, dbo.ve_GetItemDerivedApplicability(ii.itemid) SrcAppl, @NewAppl TgtAppl - from transitions tt - inner join items ii on tt.fromid = ii.contentid - where toid in (select itemid from dbo.vefn_childitems(@ItemID)) - ) ah - where Valid = 0 -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_WillTransitionsBeValid Succeeded' -ELSE PRINT 'Procedure Creation: vesp_WillTransitionsBeValid Error on Creation' -GO - -/****** Object: StoredProcedure [dbo].[vefn_NextCount] Script Date: 02/05/2013 11:58:00 ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_NextCount]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP Function [vefn_NextCount]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create FUNCTION [dbo].[vefn_NextCount](@ItemID int) -RETURNS Int -WITH EXECUTE AS OWNER -AS -BEGIN -declare @Count int; -with Itemz([NextCnt], [ItemID], [PreviousID]) as ( - Select 0 [NextCnt], [ItemID], [PreviousID] - FROM [Items] - where [ItemID]=@ItemID --- Siblings -Union All - select Z.[NextCnt] +1, I.[ItemID], I.[PreviousID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -Select @Count = Count(*) from Itemz -OPTION (MAXRECURSION 10000) -RETURN @Count -END -GO -IF (@@Error = 0) PRINT 'Function Creation: vefn_NextCount Succeeded' -ELSE PRINT 'Function Creation: vefn_NextCount Error on Creation' -GO -/****** Object: StoredProcedure [vesp_ListItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItems]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItems]; -GO - ---vesp_ListItems 1 - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItems] -( -@ItemID int = 0 -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz(knt, ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged]) as ( - Select 0 knt, ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged] - from Items - where ItemID=@ItemID - Union All --- - Select Z.knt + 1,C.ItemID,C.PreviousID,C.ContentID,C.[DTS],C.[UserID],C.[LastChanged] - from Items C - Join Itemz Z on C.PreviousID=Z.ItemID -) -Select ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[Itemz].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[Itemz].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[Itemz].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[Itemz].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[Itemz].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[Itemz].[ItemID]) [Transition_ToIDCount] -from Itemz order by knt -OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItems Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItems Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListItemsAndContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListItemsAndContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListItemsAndContent]; -GO - ---vesp_ListItemsAndContent 1 - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ListItemsAndContent] -( -@ItemID int = 0 -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz(knt, ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged]) as ( - Select 0 knt, ItemID,PreviousID,ContentID,[DTS],[UserID],[LastChanged] - from Items - where ItemID=@ItemID - Union All --- - Select z.knt + 1, I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged] - from Items I - Join Itemz Z on I.PreviousID=Z.ItemID -) -Select I.ItemID,I.PreviousID,I.ContentID,I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Children] WHERE [Children].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] -from Itemz I Join Contents C on I.ContentID = C.ContentID Order by knt -OPTION (MAXRECURSION 10000) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListItemsAndContent Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListItemsAndContent Error on Creation' -GO -/****** Object: StoredProcedure [vesp_SortProcedures] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SortProcedures]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SortProcedures]; -GO - -/* -select versionid, ff.folderid, ff.name,itemid -from docversions dv -join folders ff on dv.folderid=ff.folderid - -Westinghouse Data -exec vesp_SortProcedures 1 -- Abnormal Procedures ---exec vesp_SortProcedures 4 -- Emergency Operating Procedures - Rev 2 -exec vesp_SortProcedures 5 -- System Operating Procedures -exec vesp_SortProcedures 6 -- Maintenance, Test, Inspection, Surveillance Procedures ---exec vesp_SortProcedures 7 -- Severe Accident Management Guidelines ---exec vesp_SortProcedures 8 -- Emergency Response Guidelines -exec vesp_SortProcedures 9 -- General Operating Procedures -exec vesp_SortProcedures 11 -- Post 72-Hour Procedures 103811 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SortProcedures]( @VersionID int ) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @TopID int - select @TopID = ItemID from DocVersions where versionID = @VersionID - DECLARE @Procs TABLE - ( - ItemID int PRIMARY KEY, - ProcNum nvarchar(255) - ) - DECLARE @Organize TABLE - ( - ItemID int PRIMARY KEY, - NewPreviousID int - ) - DECLARE @NewTopID as int - INSERT INTO @Procs select ZZ.ItemID, isnull(Replace(CC.Number,'\u8209?','-'),'') + ':' + substring('0000000000000000' + cast(ItemID as varchar(16)), 1+ len( cast(ItemID as varchar(16))), 16) ProcNum from vefn_SiblingItems(@TopID,0) ZZ Join Contents CC on CC.ContentID = ZZ.ContentID - --select * from @Procs order by ProcNum + cast(ItemID as nvarchar(max)) - select top 1 @NewTopID = ItemID from @Procs order by ProcNum - INSERT INTO @Organize - select ItemID, (select top 1 ItemID from @Procs P2 where P1.ProcNum > P2.ProcNum order by P2.ProcNum DESC ) NewPreviousID - from @Procs P1 order by isnull(ProcNum,'') + cast(ItemID as nvarchar(max)) - --select * from @Organize - Update DocVersions Set ItemID = @NewTopID where versionID = @VersionID - Update II Set II.PreviousID = ZZ.NewPreviousID - from Items II join @Organize ZZ On II.ItemID = ZZ.ItemID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SortProcedures Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SortProcedures Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_RemoveExtraText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_RemoveExtraText]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_RemoveExtraText]; -GO - -/* -select text, .dbo.vefn_RemoveExtraText(text,2,0,0) StrippedText from Contents where ContentID=373 -select text, .dbo.vefn_RemoveExtraText(text,1,0,0) StrippedText from Contents where ContentID=373 -select text, .dbo.vefn_RemoveExtraText(text,0,0,0) StrippedText ,.dbo.vefn_FirstLink(text,0), PATINDEX('%[' + nchar(9516) + nchar(9574) + char(21) + ']%' , text) from Contents where ContentID=373 -select .dbo.vefn_RemoveExtraText('\b Bold\b0',0,0,0) -select .dbo.vefn_RemoveExtraText('\b Bold\b0',0,1,0) -select .dbo.vefn_RemoveExtraText('A\u1?B\u12?C\u123?D\u1234?E',0,0,0) -select .dbo.vefn_RemoveExtraText('A\u1?B\u12?C\u123?D\u1234?E',0,0,1) -*/ - - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_RemoveExtraText](@text nvarchar(MAX),@includeLink int, @includeRtfFormatting int , @includeSpecialCharacters int) -RETURNS varchar(MAX) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @index int -DECLARE @index2 int --- Replace Hard Hyphen with Hyphen -SET @text = replace(@text,'\u8209?','-') --- Replace Hard Space with Space -SET @text = replace(@text,'\u160?',' ') -set @text = replace(@text,nchar(160),' ') --- Strip Links -IF @includeLink = 0 -- Remove Links - SET @text = [dbo].[vefn_RemoveRange](@text,'') -IF @includeLink < 2 -- Remove Comments - SET @text = [dbo].[vefn_RemoveRange](@text,'\v' ,'\v0') -if(@includeRtfFormatting=0) - -- Remove Rtf Formatting - BEGIN - SET @text = Replace(@text, '\b0 ', ''); - SET @text = Replace(@text, '\b ', ''); - SET @text = Replace(@text, '\ulnone ', ''); - SET @text = Replace(@text, '\ul0 ', ''); - SET @text = Replace(@text, '\ul ', ''); - SET @text = Replace(@text, '\i0 ', ''); - SET @text = Replace(@text, '\i ', ''); - SET @text = Replace(@text, '\super ', ''); - SET @text = Replace(@text, '\sub ', ''); - SET @text = Replace(@text, '\nosupersub ', ''); - SET @text = Replace(@text, '\b0', ''); - SET @text = Replace(@text, '\b', ''); - SET @text = Replace(@text, '\ul0', ''); - SET @text = Replace(@text, '\ul', ''); - SET @text = Replace(@text, '\i0', ''); - SET @text = Replace(@text, '\i', ''); - SET @text = Replace(@text, '\super', ''); - SET @text = Replace(@text, '\sub', ''); - SET @text = Replace(@text, '\nosupersub', ''); - END -if(@includeSpecialCharacters=0) - -- Remove Special Characters - BEGIN - SET @index = PATINDEX('%\u[0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+4,len(@text)) - SET @index = PATINDEX('%\u[0-9]?%',@text) - END - SET @index = PATINDEX('%\u[0-9][0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+5,len(@text)) - SET @index = PATINDEX('%\u[0-9][0-9]?%',@text) - END - SET @index = PATINDEX('%\u[0-9][0-9][0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+6,len(@text)) - SET @index = PATINDEX('%\u[0-9][0-9][0-9]?%',@text) - END - SET @index = PATINDEX('%\u[0-9][0-9][0-9][0-9]?%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+7,len(@text)) - SET @index = PATINDEX('%\u[0-9][0-9][0-9][0-9]?%',@text) - END - SET @index = PATINDEX('%\''[0-9A-Fa-f][0-9A-Fa-f]%',@text) - while(@index != 0) - BEGIN - SET @text = substring(@text,1,@index-1) + substring(@text,@index+4,len(@text)) - SET @index = PATINDEX('%\''[0-9A-Fa-f][0-9A-Fa-f]%',@text) - END - - END - -- Replace Hyphen with Hard Hyphen -SET @text = replace(@text,'-','\u8209?') - -RETURN @text -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_RemoveExtraText Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_RemoveExtraText Error on Creation' -GO - - -/****** Object: Table Function [vefn_FindSpecialChars] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindSpecialChars]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindSpecialChars]; -GO - -/* - -select * from vefn_FindSpecialChars('\u160?\ulnone \u8209?') - -select MIN(ContentID) MinContentID,Count(*) HowMany,UChar SpecialChar from Contents -cross apply vefn_FindSpecialChars(text) SC -where text like '%\u[0-9]%' -group by UChar - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindSpecialChars](@text varchar(MAX)) -RETURNS @SpecialChars TABLE -( - uchar varchar(10) -) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @index1 int - DECLARE @index2 int - SET @index1 = -1 - SET @index1 = PATINDEX('%\u[0-9]%' , @text) - WHILE (@index1 > 0) - BEGIN - SET @index2 = CHARINDEX('?' , @text, @index1 + 3) - if @index2 > 0 - BEGIN - INSERT INTO @SpecialChars VALUES (substring(@text,@index1,1 + @index2-@index1)) - SET @Text = substring(@text,@index2 + 1,len(@text)) - END - SET @index1 = PATINDEX('%\u[0-9]%' , @text) - END - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindSpecialChars Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindSpecialChars Error on Creation' -GO - -/****** Object: Table Function [vefn_FindSpecialChars2] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindSpecialChars2]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindSpecialChars2]; -GO - -/* - -select * from vefn_FindSpecialChars2(nchar(255) + nchar(8209) + nchar(160)) - -select MIN(ContentID) MinContentID,Count(*) HowMany,UChar SpecialChar from Contents -cross apply vefn_FindSpecialChars2(text) SC -group by UChar - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindSpecialChars2](@text nvarchar(MAX)) -RETURNS @SpecialChars TABLE -( - uchar int -) -WITH EXECUTE AS OWNER -AS -BEGIN - WHILE (len(@text) > 0) - BEGIN - if(unicode(@text) > 127) - INSERT INTO @SpecialChars VALUES (unicode(@text)) - SET @Text = substring(@text,2,len(@text)) - END - RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindSpecialChars2 Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindSpecialChars2 Error on Creation' -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[MoveItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [MoveItem]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[MoveItem](@ItemID int, @Index int) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DECLARE @ItemsChanged TABLE - ( - ItemID int Primary Key - ) - DECLARE @Siblings TABLE - ( - ItemID int PRIMARY KEY, - Ordinal int - ) - DECLARE @OldPreviousID int - SELECT @OldPreviousID = PreviousID FROM [Items] where ItemID = @ItemID - DECLARE @OldNextID int - SELECT @OldNextID = ItemID FROM [Items] where PreviousID = @ItemID - insert into @Siblings select * from vefn_AllSiblingItems(@ItemID) - DECLARE @NewNextID int - SELECT @NewNextID = ItemID from @Siblings where Ordinal = @index - DECLARE @NewPreviousID int - SELECT @NewPreviousID = ItemID from @Siblings where Ordinal = @index -1 - --PRINT '****************************************************************' - --PRINT '@ItemID = ' + isnull(Cast( @ItemID as varchar(20)),'{null}') - --PRINT '@OldPreviousID = ' + isnull(Cast( @OldPreviousID as varchar(20)),'{null}') - --PRINT '@OldNextID = ' + isnull(Cast( @OldNextID as varchar(20)),'{null}') - --PRINT '@NewPreviousID = ' + isnull(Cast( @NewPreviousID as varchar(20)),'{null}') - --PRINT '@NewNextID = ' + isnull(Cast( @NewNextID as varchar(20)),'{null}') - Update Items set PreviousID = @NewPreviousID where ItemID = @ItemID - Insert INTO @ItemsChanged Select @ItemID - IF @OldNextID is not Null - BEGIN - Update Items set PreviousID = @OldPreviousID where ItemID = @OldNextID - Insert INTO @ItemsChanged Select @OldNextID - END - IF @NewNextID is not Null - BEGIN - Update Items set PreviousID = @ItemID where ItemID = @NewNextID - Insert INTO @ItemsChanged Select @NewNextID - END - IF @OldPreviousID is null - BEGIN - Update Parts set ItemID = @OldNextID where ItemID = @ItemID - Update DocVersions set ItemID = @OldNextID where ItemID = @ItemID - END - IF @NewPreviousID is null - BEGIN - Update Parts set ItemID = @ItemID where ItemID = @NewNextID - Update DocVersions set ItemID = @ItemID where ItemID = @NewNextID - END - SELECT - ii.[ItemID], - [PreviousID], - ii.[ContentID], - ii.[DTS], - ii.[UserID], - ii.[LastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ii.[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ii.[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ii.[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ii.[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ii.[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ii.[ItemID]) [Transition_ToIDCount] - FROM [Items] ii - WHERE ItemID in (Select ItemID from @ItemsChanged) - IF( @@TRANCOUNT > 0 ) - BEGIN - PRINT 'COMMIT' - COMMIT - END -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) - BEGIN - PRINT 'ROLLBACK' - ROLLBACK -- Only rollback if top level - END - ELSE IF( @@TRANCOUNT > 1 ) - BEGIN - PRINT 'COMMIT' - COMMIT -- Otherwise commit. Top level will rollback - END - EXEC vlnErrorHandler -END CATCH -GO -IF (@@Error = 0) PRINT 'Procedure Creation: MoveItem Succeeded' -ELSE PRINT 'Procedure Creation: MoveItem Error on Creation' -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_AllSiblingItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_AllSiblingItems]; -GO -/* -DECLARE @ItemID int -select @ItemID = ItemID from DocVersions where VersionID = 1 -Select * from vefn_AllSiblingItems(@ItemID) order by Ordinal -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_AllSiblingItems](@ItemID int) -RETURNS @Siblings TABLE -( - ItemID int, - Ordinal int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([ItemID], [PreviousID], [Ordinal]) as ( - Select [ItemID], [PreviousID], case when [PreviousID] is null then 0 else -1 end - FROM [Items] - where [ItemID]=@ItemID --- Previous Siblings -Union All - select I.[ItemID], I.[PreviousID] ,case when I.[PreviousID] is null then 0 else Z.[Ordinal] -1 end - from Itemz Z - join Items I on I.ItemID = Z.PreviousID - where Z.Ordinal < 0 --- Next Siblings -Union All - select I.[ItemID], I.[PreviousID] ,Z.[Ordinal] +1 - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.Ordinal >= 0 -) -insert into @Siblings select ItemID, Ordinal from Itemz Where Ordinal >= 0 -OPTION (MAXRECURSION 10000) -RETURN -END - -GO -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_AllSiblingItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_AllSiblingItems Error on Creation' -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_JustSiblingItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_JustSiblingItems]; -GO -/* -DECLARE @ItemID int -select @ItemID = ItemID from DocVersions where VersionID = 1 -Select * from vefn_JustSiblingItems(@ItemID) order by Ordinal - -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_JustSiblingItems](@FirstItemID int) -RETURNS @Siblings TABLE -( - ItemID int PRIMARY KEY, - Ordinal int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([ItemID],[Ordinal]) as ( - Select [ItemID],0 - FROM [Items] - where [ItemID]=@FirstItemID --- Siblings -Union All - select I.[ItemID],Z.[Ordinal] +1 - from Itemz Z - join Items I on I.PreviousID = Z.ItemID -) -insert into @Siblings select ItemID, Ordinal from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_JustSiblingItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_JustSiblingItems Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindContentText] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindContentText]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindContentText]; -GO - -/* -SELECT * From vefn_FindContentText('1','%RCP%') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindContentText]( -@DocVersionList nvarchar(MAX) -,@SearchString varchar(MAX)) -RETURNS @FoundContents TABLE -( - ContentID int PRIMARY KEY - ,Type int - ,Text varchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -IF(ISNULL(@DocVersionList,'')='') - BEGIN - INSERT INTO @FoundContents -- Do a case insensitive search - select ContentID,Type,Text from contents - where Replace(Replace([Text],'-','\u8209?'),'\u160?',' ') like @SearchString Collate SQL_Latin1_General_CP1_CI_AS - END -ELSE - BEGIN - INSERT INTO @FoundContents -- Do a case insensitive search - select ContentID,Type,Text from contents - where [ContentID] in (select [ContentID] from vefn_DVContent(@DocVersionList)) - AND Replace(Replace([Text],'-','\u8209?'),'\u160?',' ') like @SearchString Collate SQL_Latin1_General_CP1_CI_AS - END - -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindContentText Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindContentText Error on Creation' -GO -/****** Object: StoredProcedure [vesp_ResetFolderManualOrder] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ResetFolderManualOrder]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ResetFolderManualOrder]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ResetFolderManualOrder] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION -update fld - set Fld.ManualOrder =Fld.MyRow -from (Select ROW_NUMBER() OVER(Partition by ParentID Order BY FolderID) MyRow,* from folders ) fld - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ResetFolderManualOrder Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ResetFolderManualOrder Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ResetFolderManualOrderAlphabetical] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ResetFolderManualOrderAlphabetical]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ResetFolderManualOrderAlphabetical]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ResetFolderManualOrderAlphabetical] -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION -update fld - set Fld.ManualOrder =Fld.MyRow -from (Select case when FolderID <> ParentID then ROW_NUMBER() OVER(Partition by ParentID Order BY Name) else 0 end MyRow,* from folders) fld - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ResetFolderManualOrderAlphabetical Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ResetFolderManualOrderAlphabetical Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[tr_Documents_Delete]') AND OBJECTPROPERTY(id,N'IsTrigger') = 1) - DROP TRIGGER [tr_Documents_Delete]; - - /****** Object: Trigger [dbo].[tr_Documents_Delete] Script Date: 03/28/2013 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/****** Object: Trigger [tr_Documents_Delete] ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE trigger [dbo].[tr_Documents_Delete] on [dbo].[Documents] instead of delete as - begin - update ii set DeleteStatus = Isnull((select max(DeleteID) from DeleteLog where SPID = @@spid),-1), DTS = getdate(), - UserID = IsNull((select top 1 UserID from DeleteLog where SPID = @@spid order by deleteid desc),ii.UserID) - from tblDocuments ii inner join deleted dd on dd.DocID = ii.DocID - insert into DocumentAudits(DocID,LibTitle,DocContent,DocAscii,Config,DTS,UserID,FileExtension,DeleteStatus) - select ii.DocID,ii.LibTitle,ii.DocContent,ii.DocAscii,ii.Config,ii.DTS,ii.UserID,ii.FileExtension,ii.DeleteStatus - from tblDocuments ii inner join deleted dd on dd.DocID = ii.DocID - where ii.DeleteStatus != 0 - end -GO --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Trigger alteration: tr_Documents_Delete Succeeded' -ELSE PRINT 'Trigger alteration: tr_Documents_Delete Error on Alteration' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionItems]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetVersionItems] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -Select * from vefn_GetVersionItems('') -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetVersionItems](@DocVersionList varchar(MAX)) -RETURNS @VersionItems TABLE -( - VersionID int, - ItemID int, - ContentID int primary key -) -WITH EXECUTE AS OWNER -AS -BEGIN - BEGIN - with Itemz([VersionID], [ItemID], [ContentID]) as - (Select DV.VersionID, [I].[ItemID], [I].[ContentID] - FROM [Items] I - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] - Union All - -- Children - select Z.VersionID, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - Union All - -- Siblings - select Z.VersionID, I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - ) - insert into @VersionItems - select VersionID, [ItemID], [ContentID] - from ItemZ I - --Select * From rousages RU Where RU.ContentID in (Select ContentID from ItemZ) - OPTION (MAXRECURSION 10000) - END -RETURN -END - -go -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetVersionItems] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetVersionItems] Error on Creation' - -/****** Object: StoredProcedure [getAffectedRoUsages] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAffectedRoUsages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAffectedRoUsages]; -GO - -/* -getAffectedROUsages 1, '00010000019c0000', 'KBR Test', 'Changed', 'KBR' -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAffectedRoUsages] -( - @RODbID int, - @ROID nvarchar(16), - @RODesc nvarchar(MAX), - @Command nvarchar(10), - @UserID nvarchar(100), - @VersionList nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - BEGIN - DECLARE @JustThisVersion TABLE - ( - ContentID int primary key - ) - Insert INTO @JustThisVersion - SELECT Distinct ContentID From vefn_GetVersionItems(@VersionList) - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - -- Add "Verification Required" Annotation for each ROUsage - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Referenced Object (' + @RODesc + ') ' + @Command,@UserID - FROM Items where CONTENTID in (SELECT ContentID FROM ROUSAGES - where RODbID = @RODbID AND ROID = @ROID AND ContentID in (select ContentID from @JustThisVersion)) - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [RoUsages] - JOIN [Contents] ON - [Contents].[ContentID]=[RoUsages].[ContentID] - WHERE - [RoUsages].[RODbID]=@RODbID AND [RoUsages].[ROID]=@ROID - AND [Contents].ContentID in (select ContentID from @JustThisVersion) -END -RETURN - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAffectedRoUsages Succeeded' -ELSE PRINT 'Procedure Creation: getAffectedRoUsages Error on Creation' -GO - -/****** Object: StoredProcedure [getAffectedDRoUsages] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAffectedDRoUsages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAffectedDRoUsages]; -GO - -/* -getAffectedDROUsages 1, '00010000019c0000', 'KBR Test', 'Changed', 'KBR','' -getAffectedDROUsages 1, '000300003D8E', 'KBR Test', 'Changed', 'KBR','' - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAffectedDRoUsages] -( - @RODbID int, - @ROID nvarchar(16), - @RODesc nvarchar(MAX), - @Command nvarchar(10), - @UserID nvarchar(100), - @VersionList nvarchar(max) -) -WITH EXECUTE AS OWNER -AS - BEGIN - DECLARE @JustThisVersion TABLE - ( - ContentID int primary key - ) - Insert INTO @JustThisVersion - SELECT Distinct ContentID From vefn_GetVersionItems(@VersionList) - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - DECLARE @DRoUsages TABLE - ( - DRoUsageID int primary key - ) - Insert INTO @DRoUsages - select DRoUsageID from DRoUsages where ROID like substring(@ROID,1,12) + '%' AND dbo.vefn_CompareROIDS(ROID,@ROID) > 0 - - -- Add "Verification Required" Annotation for each ROUsage - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Referenced Object (' + @RODesc + ') ' + @Command,@UserID - FROM Items where CONTENTID in (SELECT ContentID - FROM (select dr.* from DRoUsages dr join @DRoUsages dd on dr.DRoUsageid = dd.DRoUsageid) DR - JOIN Entries EE on EE.DocID = DR.DocID - where RODbID = @RODbID AND ContentID in (select ContentID from @JustThisVersion)) - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [DRoUsages] - JOIN [Documents] ON - [Documents].[DocID]=[DROUsages].[DocID] - WHERE - [DRoUsages].[DRoUsageID] in (select DRoUsageid from @DRoUsages) - AND [Documents].[DocID] in (select EE.DocID from Entries EE where ContentID in (select ContentID from @JustThisVersion)) - RETURN - END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAffectedDRoUsages Succeeded' -ELSE PRINT 'Procedure Creation: getAffectedDRoUsages Error on Creation' -GO - -/****** Object: StoredProcedure [deleteAnnotationType] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteAnnotationType]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteAnnotationType]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteAnnotationType] - -( - @TypeID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [tblAnnotations] - WHERE [TypeID]=@TypeID - DELETE [AnnotationTypes] - WHERE [TypeID] = @TypeID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteAnnotationType Succeeded' -ELSE PRINT 'Procedure Creation: deleteAnnotationType Error on Creation' -GO - -/****** Object: StoredProcedure [getJustFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getJustFormat]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getJustFormat]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getJustFormat] - -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [FormatID], - [ParentID], - [Name], - [Description], - [Data], - [GenMac], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Contents] WHERE [Contents].[FormatID]=[Formats].[FormatID]) [ContentCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[FormatID]=[Formats].[FormatID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Folders] WHERE [Folders].[FormatID]=[Formats].[FormatID]) [FolderCount], - (SELECT COUNT(*) FROM [Formats] [Children] WHERE [Children].[ParentID]=[Formats].[FormatID]) [ChildCount] - FROM [Formats] - WHERE [FormatID]=@FormatID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getJustFormat Succeeded' -ELSE PRINT 'Procedure Creation: getJustFormat Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_TurnChangeManagerOFF] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_TurnChangeManagerOFF]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_TurnChangeManagerOFF]; -GO -/****** Object: StoredProcedure [dbo].[vesp_TurnChangeManagerOFF] Script Date: 03/20/2012 16:02:54 ******/ -/* -exec vesp_TurnChangeManagerOFF -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_TurnChangeManagerOFF] WITH EXECUTE AS OWNER AS -BEGIN - DECLARE @cmd VARCHAR(MAX) - SET @cmd = 'DISABLE TRIGGER tr_Annotations_Delete ON Annotations' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Contents_Delete ON Contents' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Documents_Delete ON Documents' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Entries_Delete ON Entries' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_GridAudits_insert ON GridAudits' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Grids_Delete ON Grids' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Images_Delete ON Images' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Items_Delete ON Items' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Parts_Delete ON Parts' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_ROUsages_Delete ON ROUsages' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblAnnotations_Update ON tblAnnotations' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblContents_Update ON tblContents' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblDocuments_Update ON tblDocuments' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblEntries_Update ON tblEntries' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblGrids_Update ON tblGrids' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblImages_Update ON tblImages' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblItems_Update ON tblItems' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblParts_Update ON tblParts' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblROUsages_Update ON tblROUsages' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_tblTransitions_Update ON tblTransitions' - EXEC (@cmd) - SET @cmd = 'DISABLE TRIGGER tr_Transitions_Delete ON Transitions' - EXEC (@cmd) - PRINT '***** Change Manager has been turned OFF *****' -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_TurnChangeManagerOFF Succeeded' -ELSE PRINT 'Procedure Creation: vesp_TurnChangeManagerOFF Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_TurnChangeManagerON] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_TurnChangeManagerON]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_TurnChangeManagerON]; -GO -/****** Object: StoredProcedure [dbo].[vesp_TurnChangeManagerON] Script Date: 03/20/2012 16:02:54 ******/ -/* -exec vesp_TurnChangeManagerON -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_TurnChangeManagerON] WITH EXECUTE AS OWNER AS -BEGIN - DECLARE @cmd VARCHAR(MAX) - SET @cmd = 'ENABLE TRIGGER tr_Annotations_Delete ON Annotations' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Contents_Delete ON Contents' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Documents_Delete ON Documents' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Entries_Delete ON Entries' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_GridAudits_insert ON GridAudits' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Grids_Delete ON Grids' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Images_Delete ON Images' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Items_Delete ON Items' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Parts_Delete ON Parts' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_ROUsages_Delete ON ROUsages' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblAnnotations_Update ON tblAnnotations' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblContents_Update ON tblContents' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblDocuments_Update ON tblDocuments' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblEntries_Update ON tblEntries' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblGrids_Update ON tblGrids' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblImages_Update ON tblImages' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblItems_Update ON tblItems' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblParts_Update ON tblParts' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblROUsages_Update ON tblROUsages' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_tblTransitions_Update ON tblTransitions' - EXEC (@cmd) - SET @cmd = 'ENABLE TRIGGER tr_Transitions_Delete ON Transitions' - EXEC (@cmd) - PRINT '***** Change Manager has been turned ON *****' -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_TurnChangeManagerON Succeeded' -ELSE PRINT 'Procedure Creation: vesp_TurnChangeManagerON Error on Creation' -GO -/****** Object: TableFunction [vefn_FindROUsageIDs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindROUsageIDs]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindROUsageIDs]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindROUsageIDs](@ContentAuditID int) -RETURNS @IDs TABLE -( - ROUsageID int PRIMARY KEY, - ROUsageAction char(3) -) -WITH EXECUTE AS OWNER -AS -BEGIN - - DECLARE @ContentID int - DECLARE @text varchar(max) - SELECT @ContentID = ContentID,@text = Text FROM ContentAudits WHERE AuditID = @ContentAuditID - DECLARE @index1 int - DECLARE @index2 int - DECLARE @tid varchar(max) - DECLARE @trid int - WHILE (LEN(@text) > 0) - BEGIN - SET @index1 = CHARINDEX('#Link:ReferencedObject' , @text) - IF (@index1 > 0) - BEGIN - SET @text = RIGHT(@text, (LEN(@text) - (22 + @index1))) - SET @index1 = CHARINDEX(' ', @text) - SET @tid = LTRIM(LEFT(@text, @index1)) - SET @trid = CAST(@tid AS INT) - IF EXISTS (SELECT ROUsageID FROM tblROUsages WHERE ROUsageID = @trid AND DeleteStatus < 0) - INSERT INTO @IDs VALUES (@trid, 'ADD') - ELSE - INSERT INTO @IDs VALUES (@trid, NULL) - END - ELSE - SET @text = '' - END - INSERT INTO @IDs SELECT tt.ROUsageID,'DEL' FROM tblROUsages tt LEFT JOIN @IDs ti ON tt.ROUsageID = ti.ROUsageID WHERE tt.ContentID = @ContentID - AND ti.ROUsageID IS NULL - DELETE FROM @IDs WHERE ROUsageAction IS NULL - RETURN -END -GO --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindROUsageIDs Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindROUsageIDs Error on Creation' -GO -/****** Object: TableFunction [vefn_GetVersionFormatItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionFormatItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionFormatItems]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetVersionFormatItems](@DocVersionList varchar(MAX)) -RETURNS @VersionItems TABLE -( - VersionID int, - ItemID int, - ContentID int primary key, - FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - BEGIN - with Itemz([VersionID], [ItemID], [ContentID], [FormatID], [ParentFormatID]) as - (Select DV.VersionID, [I].[ItemID], [I].[ContentID], - isnull(C.[FormatID],isnull(DV2.[FormatID],isnull(F.[FormatID],P.[FormatID]))), - isnull(DV2.[FormatID],isnull(F.[FormatID],P.[FormatID])) - FROM [Items] I - JOIN vefn_DocVersionSplit(@DocVersionList) DV ON I.[ItemID] = DV.[ItemID] - join docversions DV2 on DV.[VersionID] = DV2.[VersionID] - join folders F on DV2.[FolderID] = F.[FolderID] - join folders P on P.[FolderID] = F.[ParentID] - join Contents C on I.ContentID = C.ContentID - - Union All - -- Children - select Z.VersionID, I.[ItemID], I.[ContentID], isnull(C.[FormatID],Z.[FormatID]), Z.[FormatID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on I.ContentID = C.ContentID - Union All - -- Siblings - select Z.VersionID, I.[ItemID], I.[ContentID], isnull(C.[FormatID],Z.[ParentFormatID]), Z.[ParentFormatID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on I.ContentID = C.ContentID - ) - insert into @VersionItems - select VersionID, [ItemID], [ContentID], [FormatID] - from ItemZ I - --Select * From rousages RU Where RU.ContentID in (Select ContentID from ItemZ) - OPTION (MAXRECURSION 10000) - END -RETURN -END -GO --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetVersionFormatItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetVersionFormatItems Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDRoUsagesByROIDsAndVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDRoUsagesByROIDsAndVersions]; -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDRoUsagesByROIDsAndVersions] -( - @ROIDs nvarchar(MAX), - @Versions nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - SELECT - [DROUsages].[DROUsageID], - [DROUsages].[DocID], - [DROUsages].[ROID], - [DROUsages].[Config], - [DROUsages].[DTS], - [DROUsages].[UserID], - [DROUsages].[LastChanged], - [DROUsages].[RODbID], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [DRoUsages] - JOIN vefn_SplitROSearch(@ROIDs) SS - ON [DRoUsages].RODBID = SS.[RODBID] and [DRoUsages].[ROID] like SS.[ROID] + '%' - JOIN [Documents] ON - [Documents].[DocID]=[DROUsages].[DocID] - Where [Documents].[DocID] in - (Select Distinct [DocID] from [ENTRIES] - JOIN [VEFN_GetVersionItems](@Versions) VV ON [Entries].ContentID = VV.ContentID) - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDRoUsagesByROIDsAndVersions Succeeded' -ELSE PRINT 'Procedure Creation: getDRoUsagesByROIDsAndVersions Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoUsagesByROIDsAndVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoUsagesByROIDsAndVersions]; -GO - -CREATE PROCEDURE [dbo].[getRoUsagesByROIDsAndVersions] -( - @ROIDs nvarchar(MAX), - @Versions nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [Contents].[Number] [Content_Number], - [Contents].[Text] [Content_Text], - [Contents].[Type] [Content_Type], - [Contents].[FormatID] [Content_FormatID], - [Contents].[Config] [Content_Config], - [Contents].[DTS] [Content_DTS], - [Contents].[UserID] [Content_UserID] - FROM [RoUsages] - JOIN vefn_SplitROSearch(@ROIDs) SS - ON [RoUsages].RODBID = SS.[RODBID] and [RoUsages].[ROID] like SS.[ROID] + '%' - JOIN [Contents] ON - [Contents].[ContentID]=[RoUsages].[ContentID] - JOIN [VEFN_GetVersionItems](@Versions) VV ON [Contents].ContentID = VV.ContentID - RETURN -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoUsagesByROIDsAndVersions Succeeded' -ELSE PRINT 'Procedure Creation: getRoUsagesByROIDsAndVersions Error on Creation' -GO - -/****** Object: TableFunction [vefn_GetROTokens] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetROTokens]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetROTokens]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION [dbo].[vefn_GetROTokens](@text varchar(MAX)) -RETURNS @Tokens TABLE -( - Token varchar(MAX) -) -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @index int -SET @index = -1 -DECLARE @indexb int -DECLARE @indexc int -DECLARE @indexd int -DECLARE @indexNext int -DECLARE @indexReturn int -WHILE (LEN(@text) > 0) - BEGIN - SET @index = PATINDEX('%<[A-Z]-%' , @text) - SET @indexb = PATINDEX('%<[A-Z][A-Z0-9]-%' , @text) - if((@index=0 and @indexb>0) or (@indexb > 0 and @index > @indexb)) - SET @index = @indexb - SET @indexc = PATINDEX('%<[A-Z][A-Z][A-Z0-9]-%' , @text) - if((@index=0 and @indexc>0) or (@indexc > 0 and @index > @indexc)) - SET @index = @indexc - SET @indexd = PATINDEX('%<[A-Z][A-Z][A-Z][A-Z0-9]-%' , @text) - if((@index=0 and @indexd>0) or (@indexd > 0 and @index > @indexd)) - SET @index = @indexd - IF @index = 0 - BREAK - SET @indexNext = @index + CHARINDEX('<' , substring(@text,@index+1,len(@text))) - IF @IndexNext=@index - SET @IndexNext = len(@text)+ 3 - SET @indexReturn = @index + CHARINDEX(char(13) , substring(@text,@index+1,len(@text))) - IF @IndexReturn=@index - SET @IndexReturn = len(@text)+3 - DECLARE @index2 int - SET @index2 = @index + CHARINDEX('>' , substring(@text,@index,len(@text))) - if @index2 = @index - BREAK - if(@index2 > @indexNext or @index2 > @indexReturn) - SET @text = RIGHT(@text, (LEN(@text) - @index)) - else - BEGIN - INSERT INTO @Tokens VALUES (substring(@text, @index,@index2-@index)) - if(len(@text) > @index2) - SET @text = substring(@text, @index2 , len(@text)) - else - SET @Text = '' - END - END - RETURN -END -GO --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetROTokens Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetROTokens Error on Creation' -GO - -/****** Object: TableFunction [vefn_GetVersionNames] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionNames]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionNames]; -GO - --- --- select * from vefn_GetVersionNames() --- - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION [dbo].[vefn_GetVersionNames]() -RETURNS @Versions TABLE -( - VersionID int primary Key, - GrandParentName nvarchar(100), - ParentName nvarchar(100), - FolderName nvarchar(100) -) -WITH EXECUTE AS OWNER -AS -BEGIN - INSERT INTO @Versions - select versionid,gf.name GrandParentName, pf.name ParentName, ff.name FolderName - from docversions dv - Join folders ff on ff.FolderID = DV.FolderID - Join folders pf on pf.FolderID = ff.parentID - Join folders gf on gf.FolderID = pf.parentid - RETURN -END -GO --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetVersionNames Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetVersionNames Error on Creation' -GO - - - - --- =========================================== End of Functions and Procedures - --- Turn off Auto Close and Auto Shrink -declare @CMD varchar(max) -set @CMD = 'ALTER DATABASE [' + db_name() +'] SET AUTO_CLOSE OFF' -exec(@CMD) -GO -declare @CMD varchar(max) -set @CMD = 'ALTER DATABASE [' + db_name() +'] SET AUTO_SHRINK OFF' -exec(@CMD) -GO - ---added by JCB for Security and MultiUser support ---ALTER TABLE Sessions add MachineName and ProcessID columns if they do not exist -IF COL_LENGTH('Sessions','MachineName') IS NULL - ALTER TABLE Sessions ADD [MachineName] [nvarchar](100) NOT NULL,[ProcessID] [int] NOT NULL; -GO ---ALTER TABLE Sessions change DTSActivity column to not null -ALTER TABLE sessions ALTER COLUMN [DTSActivity] [datetime] NOT NULL -GO ---ALTER TABLE Sessions set DTSActivity column default value to getdate() -IF OBJECT_ID('DF_Sessions_DTSActivity', 'D') IS NULL - ALTER TABLE sessions ADD CONSTRAINT [DF_Sessions_DTSActivity] DEFAULT (getdate()) for [DTSActivity]; -GO - -/****** Object: StoredProcedure [purgeData] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[purgeData]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [purgeData]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[purgeData] - -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - delete from [AnnotationAudits] - dbcc checkident([AnnotationAudits],reseed,0) - delete from [Applicabilities] - dbcc checkident([Applicabilities],reseed,0) - delete from [ApplicableStructures] - delete from [Assignments] - dbcc checkident([Assignments],reseed,0) - delete from [Associations] - dbcc checkident([Associations],reseed,0) - delete from [Checks] - dbcc checkident([Checks],reseed,0) - delete from [ContentAudits] - dbcc checkident([ContentAudits],reseed,0) - delete from [DeleteLog] - dbcc checkident([DeleteLog],reseed,0) - delete from [Details] - dbcc checkident([Details],reseed,0) - delete from [DocumentAudits] - dbcc checkident([DocumentAudits],reseed,0) - delete from [DocVersions] - dbcc checkident([DocVersions],reseed,0) - delete from [DROUsages] - dbcc checkident([DROUsages],reseed,0) - delete from [EntryAudits] - dbcc checkident([EntryAudits],reseed,0) - delete from [Figures] - dbcc checkident([Figures],reseed,0) - delete from [Folders] - dbcc checkident([Folders],reseed,0) - delete from [GridAudits] - dbcc checkident([GridAudits],reseed,0) - delete from [ImageAudits] - dbcc checkident([ImageAudits],reseed,0) - delete from [ItemAudits] - dbcc checkident([ItemAudits],reseed,0) - delete from [Memberships] - dbcc checkident([Memberships],reseed,0) - delete from [PartAudits] - dbcc checkident([PartAudits],reseed,0) - delete from [Pdfs] - delete from [Permissions] - dbcc checkident([Permissions],reseed,0) - delete from [ROFsts] - dbcc checkident([ROFsts],reseed,0) - delete from [ROImages] - dbcc checkident([ROImages],reseed,0) - delete from [Roles] - dbcc checkident([Roles],reseed,0) - delete from [ROUsageAudits] - dbcc checkident([ROUsageAudits],reseed,0) - delete from [tblAnnotations] - dbcc checkident([tblAnnotations],reseed,0) - delete from [tblEntries] - delete from [tblGrids] - delete from [tblImages] - delete from [tblParts] - delete from [tblROUsages] - dbcc checkident([tblROUsages],reseed,0) - delete from [TransitionAudits] - dbcc checkident([TransitionAudits],reseed,0) - delete from [Users] - dbcc checkident([Users],reseed,0) - delete from [Versions] - dbcc checkident([Versions],reseed,0) - delete from [ZContents] - delete from [ZTransitions] - delete from [AnnotationTypes] - dbcc checkident([AnnotationTypes],reseed,0) - delete from [Connections] - dbcc checkident([Connections],reseed,0) - delete from [Groups] - dbcc checkident([Groups],reseed,0) - delete from [Revisions] - dbcc checkident([Revisions],reseed,0) - delete from [RODbs] - dbcc checkident([RODbs],reseed,0) - delete from [Stages] - dbcc checkident([Stages],reseed,0) - delete from [tblDocuments] - dbcc checkident([tblDocuments],reseed,0) - delete from [tblTransitions] - dbcc checkident([tblTransitions],reseed,0) - delete from [tblItems] - dbcc checkident([tblItems],reseed,0) - delete from [tblContents] - dbcc checkident([tblContents],reseed,0) - delete from [Formats] - dbcc checkident([Formats],reseed,0) - delete from [Sessions] - dbcc checkident([Sessions],reseed,0) - delete from [Owners] - dbcc checkident([Owners],reseed,0) - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: purgeData Succeeded' -ELSE PRINT 'Procedure Creation: purgeData Error on Creation' -GO - -/****** Object: StoredProcedure [getSessions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getSessions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getSessions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getSessions] - -WITH EXECUTE AS OWNER -AS - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID] - FROM [Sessions] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getSessions Succeeded' -ELSE PRINT 'Procedure Creation: getSessions Error on Creation' -GO - -/****** Object: StoredProcedure [updateSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateSession]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateSession] - -( - @SessionID int, - @UserID nvarchar(100), - @DTSDtart datetime, - @DTSEnd datetime=null, - @DTSActivity datetime, - @LastChanged timestamp, - @MachineName nvarchar(100), - @ProcessID int, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Sessions] - SET - [UserID]=@UserID, - [DTSDtart]=@DTSDtart, - [DTSEnd]=@DTSEnd, - [DTSActivity]=@DTSActivity, - [MachineName]=@MachineName, - [ProcessID]=@ProcessID - WHERE [SessionID]=@SessionID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Sessions] WHERE [SessionID]=@SessionID) - RAISERROR('Session record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Session has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Sessions] WHERE [SessionID]=@SessionID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateSession Succeeded' -ELSE PRINT 'Procedure Creation: updateSession Error on Creation' -GO - -/****** Object: StoredProcedure [addSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addSession]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addSession] - -( - @UserID nvarchar(100), - @DTSDtart datetime, - @DTSEnd datetime=null, - @DTSActivity datetime, - @MachineName nvarchar(100), - @ProcessID int, - @newSessionID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Sessions] - ( - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [MachineName], - [ProcessID] - ) - VALUES - ( - @UserID, - @DTSDtart, - @DTSEnd, - @DTSActivity, - @MachineName, - @ProcessID - ) - SELECT @newSessionID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Sessions] WHERE [SessionID]=@newSessionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addSession Succeeded' -ELSE PRINT 'Procedure Creation: addSession Error on Creation' -GO - -/****** Object: StoredProcedure [deleteSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteSession]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteSession] - -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Sessions] - WHERE [SessionID] = @SessionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteSession Succeeded' -ELSE PRINT 'Procedure Creation: deleteSession Error on Creation' -GO - -/****** Object: StoredProcedure [getSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getSession]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getSession] - -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID] - FROM [Sessions] - WHERE [SessionID]=@SessionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getSession Succeeded' -ELSE PRINT 'Procedure Creation: getSession Error on Creation' -GO - -/****** Object: StoredProcedure [existsSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsSession]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsSession] - -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Sessions] WHERE [SessionID]=@SessionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsSession Succeeded' -ELSE PRINT 'Procedure Creation: existsSession Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionCleanup] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionBegin]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionBegin]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SessionBegin] - -( - @UserID nvarchar(100), - @MachineName nvarchar(100), - @ProcessID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - DECLARE @oCount int - SELECT @oCount = count(*) FROM Owners WHERE OwnerType = 3 - IF @oCount > 0 BEGIN - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID] - FROM [Sessions] - WHERE [SessionID]=0 - END - ELSE BEGIN - BEGIN TRANSACTION - --delete old closed sessions - DELETE FROM Sessions WHERE UserID = @UserID and DTSEnd is not null - --delete old owners from inactive sessions - DELETE FROM Owners WHERE SessionID in (SELECT SessionID FROM Sessions WHERE UserID = @UserID and DTSEnd is null and DTSActivity < DATEADD(minute, -5, getdate())) - DELETE FROM Owners WHERE SessionID in (SELECT SessionID FROM Sessions WHERE DTSEnd is null and DTSActivity < DATEADD(minute, -15, getdate())) - --delete inactive sessions where last activity is before 15 minutes ago - DELETE FROM Sessions WHERE UserID = @UserID and DTSEnd is null and DTSActivity < DATEADD(minute, -5, getdate()) - DELETE FROM Sessions WHERE DTSEnd is null and DTSActivity < DATEADD(minute, -15, getdate()) - DELETE FROM Owners WHERE SessionID not in (SELECT SessionID FROM Sessions) - INSERT INTO [Sessions]([UserID],[MachineName],[ProcessID]) - VALUES (@UserID, @MachineName, @ProcessID) - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID] - FROM [Sessions] - WHERE [SessionID]=SCOPE_IDENTITY() - IF( @@TRANCOUNT > 0 ) COMMIT - END -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionBegin Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionBegin Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionPing] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionPing]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionPing]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE vesp_SessionPing -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - --update active session dtsactivity value - UPDATE Sessions SET DTSActivity = getdate() WHERE SessionID = @SessionID -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionPing Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionPing Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionPing] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionEnd]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionEnd]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE vesp_SessionEnd -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - --delete unclosed owners for session being closed - DELETE FROM Owners WHERE SessionID = @SessionID - --update active session dtsend value - UPDATE Sessions SET DTSEnd = getdate() WHERE SessionID = @SessionID -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionEnd Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionEnd Error on Creation' -GO - -/****** Object: StoredProcedure [getOwners] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwners]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwners]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwners] - -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - [LastChanged] - FROM [Owners] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwners Succeeded' -ELSE PRINT 'Procedure Creation: getOwners Error on Creation' -GO - -/****** Object: StoredProcedure [getOwnersBySessionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwnersBySessionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwnersBySessionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwnersBySessionID] -( - @SessionID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - [LastChanged] - FROM [Owners] - WHERE [SessionID] = @SessionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwnersBySessionID Succeeded' -ELSE PRINT 'Procedure Creation: getOwnersBySessionID Error on Creation' -GO - -/****** Object: StoredProcedure [updateOwner] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateOwner]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateOwner]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateOwner] - -( - @OwnerID int, - @SessionID int, - @OwnerType tinyint, - @OwnerItemID int, - @DTSStart datetime, - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Owners] - SET - [SessionID]=@SessionID, - [OwnerType]=@OwnerType, - [OwnerItemID]=@OwnerItemID, - [DTSStart]=@DTSStart - WHERE [OwnerID]=@OwnerID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Owners] WHERE [OwnerID]=@OwnerID) - RAISERROR('Owner record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Owner has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Owners] WHERE [OwnerID]=@OwnerID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateOwner Succeeded' -ELSE PRINT 'Procedure Creation: updateOwner Error on Creation' -GO - -/****** Object: StoredProcedure [addOwner] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addOwner]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addOwner]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addOwner] - -( - @SessionID int, - @OwnerType tinyint, - @OwnerItemID int, - @DTSStart datetime, - @newOwnerID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Owners] - ( - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart] - ) - VALUES - ( - @SessionID, - @OwnerType, - @OwnerItemID, - @DTSStart - ) - SELECT @newOwnerID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Owners] WHERE [OwnerID]=@newOwnerID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addOwner Succeeded' -ELSE PRINT 'Procedure Creation: addOwner Error on Creation' -GO - -/****** Object: StoredProcedure [deleteOwner] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteOwner]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteOwner]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteOwner] - -( - @OwnerID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Owners] - WHERE [OwnerID] = @OwnerID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteOwner Succeeded' -ELSE PRINT 'Procedure Creation: deleteOwner Error on Creation' -GO - -/****** Object: StoredProcedure [getOwner] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwner]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwner]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwner] - -( - @OwnerID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - [LastChanged] - FROM [Owners] - WHERE [OwnerID]=@OwnerID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwner Succeeded' -ELSE PRINT 'Procedure Creation: getOwner Error on Creation' -GO - -/****** Object: StoredProcedure [existsOwner] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsOwner]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsOwner]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsOwner] - -( - @OwnerID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Owners] WHERE [OwnerID]=@OwnerID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsOwner Succeeded' -ELSE PRINT 'Procedure Creation: existsOwner Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionCanCheckOutItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionCanCheckOutItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionCanCheckOutItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/* -exec dbo.vesp_SessionCanCheckOutItem 25915,0 -exec dbo.vesp_SessionCanCheckOutItem 554,1 -exec dbo.vesp_SessionCanCheckOutItem 13,2 -*/ -CREATE PROCEDURE [dbo].[vesp_SessionCanCheckOutItem] -( - @ObjectID int, - @ObjectType int -) -WITH EXECUTE AS OWNER -AS -BEGIN - DECLARE @CheckOuts TABLE - ( - SessionID int - ) - --look to see if anyone else has a session. if they do, then cannot check out - DECLARE @sCount int - SELECT @sCount = count(*) FROM Sessions - IF @ObjectType = 3 BEGIN - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID] - FROM [Sessions] - WHERE DTSEnd IS NULL - END ELSE BEGIN - --look to see if object is already checked out in owner table as passed object type - INSERT INTO @CheckOuts SELECT DISTINCT SessionID FROM Owners WHERE OwnerItemID = @ObjectID AND OwnerType = @ObjectType - --look to see if object is part of a checked out docversion as passed object type - DECLARE @VersionIDList varchar(max) - SELECT @VersionIDList = COALESCE(@VersionIDList + ',','') + CAST(OwnerItemID as varchar(4)) FROM Owners WHERE OwnerType = 2 - IF ISNULL(@VersionIDList,'') != '' AND @ObjectType = 0 BEGIN --procedure - INSERT INTO @CheckOuts - SELECT ss.SessionID FROM dbo.vefn_GetVersionItems(@VersionIDList) vi - INNER JOIN Contents cc ON vi.ContentID = cc.ContentID - INNER JOIN Owners oo ON vi.VersionID = oo.OwnerItemID - INNER JOIN Sessions ss ON oo.SessionID = ss.SessionID - WHERE cc.Type = 0 AND vi.ItemID = @ObjectID - END - IF ISNULL(@VersionIDList,'') != '' AND @ObjectType = 1 BEGIN --document - INSERT INTO @CheckOuts - SELECT ss.SessionID FROM dbo.vefn_GetVersionItems(@VersionIDList) vi - INNER JOIN Contents cc ON vi.ContentID = cc.ContentID - INNER JOIN Entries ee ON vi.ContentID = ee.ContentID - INNER JOIN Owners oo ON vi.VersionID = oo.OwneritemID - INNER JOIN Sessions ss ON oo.SessionID = ss.SessionID - WHERE ee.DocID = @ObjectID - END - --look to see if object type is docversion that no part of docversion passed is checked out - IF @ObjectType = 2 BEGIN - --see what procedures maybe checked out - INSERT INTO @CheckOuts - SELECT ss.SessionID FROM dbo.vefn_GetVersiONItems(@ObjectID) vi - INNER JOIN Contents cc ON vi.ContentID = cc.ContentID - INNER JOIN Owners oo ON vi.ItemID = oo.OwnerItemID - INNER JOIN Sessions ss ON oo.SessionID = ss.SessionID - WHERE cc.Type = 0 - --see what documents maybe checked out - INSERT INTO @CheckOuts - SELECT ss.SessionID FROM dbo.vefn_GetVersiONItems(@ObjectID) vi - INNER JOIN Contents cc ON vi.ContentID = cc.ContentID - INNER JOIN Entries ee ON vi.ContentID = ee.ContentID - INNER JOIN Owners oo ON ee.DocID = oo.OwnerItemID - INNER JOIN Sessions ss ON oo.SessionID = ss.SessionID - END - - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID] - FROM [Sessions] - WHERE [SessionID] IN (SELECT SessionID FROM @CheckOuts) - END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionCanCheckOutItem Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionCanCheckOutItem Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionCheckOutItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionCheckOutItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionCheckOutItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SessionCheckOutItem] -( - @SessionID int, - @ItemID int, - @ItemType int, - @OwnerID int OUTPUT -) -WITH EXECUTE AS OWNER -AS -BEGIN - INSERT INTO Owners (SessionID, OwnerItemID, OwnerType) VALUES (@SessionID, @ItemID, @ItemType) - SELECT @OwnerID = SCOPE_IDENTITY() -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionCheckOutItem Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionCheckOutItem Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_SessionCheckInItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SessionCheckInItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_SessionCheckInItem]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_SessionCheckInItem] -( - @OwnerID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - DELETE FROM Owners WHERE OwnerID = @OwnerID -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SessionCheckInItem Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SessionCheckInItem Error on Creation' -GO - -/****** Object: StoredProcedure [getOwnerByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwnerByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwnerByItemID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwnerByItemID] - -( - @ItemID int, - @ItemType int -) -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - [LastChanged] - FROM [Owners] - WHERE [OwnerItemID]=@ItemID AND [OwnerType]=@ItemType - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwnerByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getOwnerByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getOwnerBySessionIDandVersionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwnerBySessionIDandVersionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwnerBySessionIDandVersionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwnerBySessionIDandVersionID] - -( - @SessionID int, - @VersionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - [LastChanged] - FROM [Owners] oo - INNER JOIN - ( - SELECT 0 ObjectType,ItemID ObjectID FROM dbo.vefn_GetVersionItems(@VersionID) - UNION - SELECT 1 ObjectType,ee.DocID ObjectID FROM dbo.vefn_GetVersionItems(@VersionID) vi - INNER JOIN Contents cc ON vi.ContentID = cc.ContentID - INNER JOIN Entries ee ON vi.ContentID = ee.ContentID - UNION - SELECT 2 ObjectType, @VersionID ObjectID - ) tt ON oo.OwnerType = tt.ObjectType and oo.OwnerItemID = tt.ObjectID - WHERE [SessionID] = @SessionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwnerBySessionIDandVersionID Succeeded' -ELSE PRINT 'Procedure Creation: getOwnerBySessionIDandVersionID Error on Creation' -GO - -/****** Object: StoredProcedure [getUserByUserID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getUserByUserID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getUserByUserID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getUserByUserID] - -( - @UserID varchar(100) -) -WITH EXECUTE AS OWNER -AS - SELECT - [UID], - [UserID], - [FirstName], - [MiddleName], - [LastName], - [Suffix], - [CourtesyTitle], - [PhoneNumber], - [CFGName], - [UserLogin], - [UserName], - [Config], - [DTS], - [UsrID], - [LastChanged], - (SELECT COUNT(*) FROM [Memberships] WHERE [Memberships].[UID]=[Users].[UID]) [MembershipCount] - FROM [Users] - WHERE [UserID]=@UserID - - SELECT - [Memberships].[UGID], - [Memberships].[UID], - [Memberships].[GID], - [Memberships].[StartDate], - [Memberships].[EndDate], - [Memberships].[Config], - [Memberships].[DTS], - [Memberships].[UsrID], - [Memberships].[LastChanged], - [Groups].[GroupName] [Group_GroupName], - [Groups].[GroupType] [Group_GroupType], - [Groups].[Config] [Group_Config], - [Groups].[DTS] [Group_DTS], - [Groups].[UsrID] [Group_UsrID] - FROM [Memberships] - JOIN [Groups] ON - [Groups].[GID]=[Memberships].[GID] - JOIN [Users] ON [Memberships].[UID] = [Users].[UID] - WHERE - [Users].[UserID]=@UserID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getUserByUserID Succeeded' -ELSE PRINT 'Procedure Creation: getUserByUserID Error on Creation' -GO - ---need to check to see if security is already defined. if not then do this stuff -declare @aCount int -select @aCount = count(*) from assignments -if @aCount = 0 -begin ---clean up security related tables - EXEC sp_executesql N' - delete from [Assignments]' - EXEC sp_executesql N' - dbcc checkident([Assignments],reseed,0)' - EXEC sp_executesql N' - delete from [Memberships]' - EXEC sp_executesql N' - dbcc checkident([Memberships],reseed,0)' - EXEC sp_executesql N' - delete from [Permissions]' - EXEC sp_executesql N' - dbcc checkident([Permissions],reseed,0)' - EXEC sp_executesql N' - delete from [Roles]' - EXEC sp_executesql N' - dbcc checkident([Roles],reseed,0)' - EXEC sp_executesql N' - delete from [Users]' - EXEC sp_executesql N' - dbcc checkident([Users],reseed,0)' - EXEC sp_executesql N' - delete from [Groups]' - EXEC sp_executesql N' - dbcc checkident([Groups],reseed,0)' - - --define Roles - EXEC sp_executesql N' - insert into Roles (Name,Title,DTS,UsrID) values - (''Administrator'',''Manage Generic Data;Manage Security;Edit RO Values,Create FST,Update RO Values;Update Formats;PROMS Settings;Create/Update/Delete Folders,DocVersions,Procedures,Sections,Steps,All Annotations'',getdate(),''VEPROMS'')' - EXEC sp_executesql N' - insert into Roles (Name,Title,DTS,UsrID) values - (''Set Administrator'',''Edit RO Values,Create FST,Update RO Values;Create/Update/Delete Folders,DocVersions,Procedures,Sections,Steps,All Set Annotations'',getdate(),''VEPROMS'')' - EXEC sp_executesql N' - insert into Roles (Name,Title,DTS,UsrID) values - (''Writer'',''Create/Update/Delete Procedures,Sections,Steps,All Set Annotations'',getdate(),''VEPROMS'')' - EXEC sp_executesql N' - insert into Roles (Name,Title,DTS,UsrID) values - (''Reviewer'',''Create/Update/Delete User Annotations'',getdate(),''VEPROMS'')' - EXEC sp_executesql N' - insert into Roles (Name,Title,DTS,UsrID) values - (''RO Editor'',''Edit RO Values,Create FST'',getdate(),''VEPROMS'')' - - --define Permissions for Roles - EXEC sp_executesql N' - declare @rid int; - select @rid = rid from roles where name = ''Administrator''; - insert into permissions (rid,permlevel,versiontype,permvalue,permad,startdate,dts,usrid) values - (@rid,1,3,15,0,getdate(),getdate(),''VEPROMS'')' - EXEC sp_executesql N' - declare @rid int; - select @rid = rid from roles where name = ''Set Administrator''; - insert into permissions (rid,permlevel,versiontype,permvalue,permad,startdate,dts,usrid) values - (@rid,2,3,15,0,getdate(),getdate(),''VEPROMS'')' - EXEC sp_executesql N' - declare @rid int; - select @rid = rid from roles where name = ''Writer''; - insert into permissions (rid,permlevel,versiontype,permvalue,permad,startdate,dts,usrid) values - (@rid,4,3,15,0,getdate(),getdate(),''VEPROMS'')' - EXEC sp_executesql N' - declare @rid int; - select @rid = rid from roles where name = ''Reviewer''; - insert into permissions (rid,permlevel,versiontype,permvalue,permad,startdate,dts,usrid) values - (@rid,7,3,15,0,getdate(),getdate(),''VEPROMS'')' - EXEC sp_executesql N' - declare @rid int; - select @rid = rid from roles where name = ''RO Editor''; - insert into permissions (rid,permlevel,versiontype,permvalue,permad,startdate,dts,usrid) values - (@rid,3,3,15,0,getdate(),getdate(),''VEPROMS'')' - - --define adminstrator Group - EXEC sp_executesql N' - insert into groups (groupname,dts,usrid) - select name + ''s'',getdate(),''VEPROMS'' from roles where name = ''Administrator''' - - --define administrator Assignment - EXEC sp_executesql N' - insert into assignments (gid,rid,folderid,startdate,dts,usrid) - select gg.gid,rr.rid,1,getdate(),getdate(),''VEPROMS'' from roles rr inner join groups gg on rr.name + ''s'' = gg.groupname' - EXEC sp_executesql N' - print ''MultiUser and Security Created''' -end -else begin - EXEC sp_executesql N' - print ''MultiUser and Security Exists''' -end -GO - ---added jcb 1st round fixes multiuser and security testting ---ALTER TABLE Groups change GroupName column to 100 characters -ALTER TABLE groups ALTER COLUMN [GroupName] [nvarchar](100) NOT NULL -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ResetSecurity]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ResetSecurity]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_ResetSecurity] -AS -BEGIN - DELETE FROM [Memberships] - DELETE FROM [Assignments] WHERE [AID] != 1 - DELETE FROM [Groups] WHERE [GID] != 1 - DELETE FROM [Users] - DECLARE @gid VARCHAR(10) - SELECT @gid = x1.value('@Group','varchar(10)') - FROM - ( - SELECT folderid,CAST(config as xml) xconfig FROM folders ff WHERE ff.folderid = 1 - ) ah - CROSS APPLY xconfig.nodes('//Security') t1(x1) - UPDATE folders SET config = replace(config,'Security Group="' + @gid + '"','Security Group="1"') WHERE folderid = 1 -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ResetSecurity Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ResetSecurity Error on Creation' -GO - -/****** Object: StoredProcedure [getRevisionsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRevisionsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRevisionsByItemID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRevisionsByItemID] -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] - WHERE [ItemID] = @ItemID -and (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) > 0 - ORDER BY [RevisionID] DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRevisionsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getRevisionsByItemID Error on Creation' -GO -/****** Object: StoredProcedure [getRoUsagesForDocVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoUsagesForDocVersion]') AND OBJECTPROPERTY - -(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoUsagesForDocVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRoUsagesForDocVersion] -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ROUsageID], - rr.[ContentID], - [ROID], - [Config], - [DTS], - [UserID], - [LastChanged], - [RODbID] - FROM [RoUsages] rr - INNER JOIN vefn_getversionitems(@VersionID) vi on rr.contentid = vi.contentid - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoUsagesForDocVersion Succeeded' -ELSE PRINT 'Procedure Creation: getRoUsagesForDocVersion Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_ListTables3] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_ListTables3]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_ListTables3]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE procedure [dbo].[vesp_ListTables3] -WITH EXECUTE AS OWNER -AS -begin -select o.name TableName,c.name ColumnName, -case c.system_type_id - when 56 then 'int' - when 231 then 'nvarchar' - when 165 then 'varbinary' - when 167 then 'varchar' - when 239 then 'nchar' - when 175 then 'char' - when 61 then 'datetime' - when 104 then 'bit' - when 48 then 'TinyInt' - when 127 then 'BigInt' - when 241 then 'Xml' - when 62 then 'float' - when 189 then 'timestamp' - else '???' + cast(c.system_type_id as varchar(10)) end ItemType, -case c.system_type_id - when 56 then '0' - when 231 then case c.max_length when -1 then 'Max' else cast(c.max_length/2 as varchar(10)) end - when 165 then case c.max_length when -1 then 'Max' else cast(c.max_length as varchar(10)) end - when 167 then case c.max_length when -1 then 'Max' else cast(c.max_length as varchar(10)) end - when 239 then case c.max_length when -1 then 'Max' else cast(c.max_length/2 as varchar(10)) end - when 175 then case c.max_length when -1 then 'Max' else cast(c.max_length as varchar(10)) end - when 61 then '0' - when 104 then '0' - when 48 then '0' - when 189 then '0' - else '0' end ItemSize, - - case when c.is_nullable=1 then 'Yes' else '' end AllowNulls, - case when c.is_identity=1 then 'Identity' else dc.definition end DefaultValue, - x.value Description -from sys.objects o -join sys.columns c on o.object_id=c.object_id -left join sysconstraints cn on o.object_id=cn.id and c.column_id=cn.colid -left join sys.default_constraints dc on dc.object_id = cn.constid -left join sys.extended_properties x on x.major_id = o.OBJECT_ID AND x.minor_id=c.column_id AND x.Name='MS_Description' -where o.type='U' -order by o.name,c.column_id -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_ListTables3 Succeeded' -ELSE PRINT 'Procedure Creation: vesp_ListTables3 Error on Creation' -GO - -/****** Object: StoredProcedure [getOwnersByVersionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getOwnersByVersionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getOwnersByVersionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getOwnersByVersionID] -( - @VersionID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - oo.[LastChanged] - FROM [Owners] oo - JOIN vefn_GetVersionItems(@VersionID) vi ON oo.OwnerItemID = vi.ItemID - WHERE oo.OwnerType = 0 - UNION - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - oo.[LastChanged] - FROM [Owners] oo - JOIN [Entries] ee on oo.OwnerItemID = ee.DocID - JOIN vefn_GetVersionItems(@VersionID) vi on ee.ContentID = vi.ContentID - WHERE oo.OwnerType = 1 - UNION - SELECT - [OwnerID], - [SessionID], - [OwnerType], - [OwnerItemID], - [DTSStart], - oo.[LastChanged] - FROM [Owners] oo - WHERE oo.OwnerType = 2 - AND oo.OwnerItemID = @VersionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getOwnersByVersionID Succeeded' -ELSE PRINT 'Procedure Creation: getOwnersByVersionID Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CompareROIDs]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_CompareROIDs]; -/****** Object: UserDefinedFunction [dbo].[vefn_CompareROIDs] Script Date: 07/21/2014 17:50:44 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -create function vefn_CompareROIDs (@roid1 varchar(16), @roid2 varchar(16)) -returns int -as begin - declare @len1 int - declare @len2 int - if @roid1 = @roid2 - return 1 - set @len1 = len(@roid1) - set @len2 = len(@roid2) - if @len1 = @len2 - begin - if @len1 = 16 and substring(@roid1,13,4) = '0000' and substring(@roid2,13,4) = '0041' - return 2 - if @len1 = 16 and substring(@roid2,13,4) = '0000' and substring(@roid1,13,4) = '0041' - return 3 - return 0 - end - if substring(@roid1,1,12) = substring(@roid2,1,12) - return 4 - return 0 -end -GO --- Display the status of ScalarFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_CompareROIDs Succeeded' -ELSE PRINT 'Function: vefn_CompareROIDs Error on Creation' -GO - -/****** Object: Index [IX_tblContentsForCopy] Script Date: 8/26/2014 8:55:16 PM ******/ -IF NOT EXISTS (SELECT * FROM dbo.sysindexes WHERE name = 'IX_tblContentsForCopy') -BEGIN -CREATE NONCLUSTERED INDEX [IX_tblContentsForCopy] ON [dbo].[tblContents] -( - [DTS] ASC, - [UserID] ASC, - [Type] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -END -GO - -/****** Object: Index [IX_tblItemsForCopy1] Script Date: 8/27/2014 5:26:31 PM ******/ -IF NOT EXISTS (SELECT * FROM dbo.sysindexes WHERE name = 'IX_tblItemsForCopy1') -BEGIN -CREATE NONCLUSTERED INDEX [IX_tblItemsForCopy1] ON [dbo].[tblItems] -( - [ContentID] ASC, - [DTS] ASC, - [UserID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -END -GO - -/****** Object: Index [IX_tblItemsForCopy2] Script Date: 8/27/2014 5:26:37 PM ******/ -IF NOT EXISTS (SELECT * FROM dbo.sysindexes WHERE name = 'IX_tblItemsForCopy2') -BEGIN -CREATE NONCLUSTERED INDEX [IX_tblItemsForCopy2] ON [dbo].[tblItems] -( - [PreviousID] ASC, - [DTS] ASC, - [UserID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -END -GO - -/****** Object: StoredProcedure [CopyItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[CopyItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [CopyItemAndChildren]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[CopyItemAndChildren] -( - @StartItemID INT, - @DestFormatID INT, - @UserID NVARCHAR(100), - @NewStartItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - ---+-----------------------------------------------------------------+ --- BEGIN TRANSACTION to make these changes temporary ---+-----------------------------------------------------------------+ - BEGIN TRANSACTION - if exists (select * from tblitems where itemid = @StartItemID and DeleteStatus !=0) - BEGIN - RAISERROR ('###Cannot Paste Step###This step has been deleted',16,1) - RETURN - END -DECLARE @Children AS TABLE -( - ItemID INT PRIMARY KEY, - NewItemID INT, - ContentID INT, - NewContentID INT, - FormatID INT, - NewFormatID INT -) -DECLARE @NewDocuments AS TABLE -( - DocID INT PRIMARY KEY, - NewDocID INT -) --- Locals -DECLARE @DTS DATETIME -- DTS of all New Items -DECLARE @StartContentID INT -Select @StartContentID = ContentID from Items where ItemID = @StartItemID -SET @DTS = GETDATE() -- Get the current Date and Time --- Get a list of all of the Items to be copied based upon StartItemID and EndItemID --- If the StartItemID = EndItemID then it is a single item and it's children -INSERT INTO @Children SELECT ItemID,ItemID,ContentID,ContentID,FormatID,FormatID FROM vefn_ChildItemsRange(@StartItemID,@StartItemID,null) --- <<< Copy Contents >>> --- Create new content rows to match the existing rows. Set the type to the Current ContentID temporarily --- so that the new content rows can be associated with the existing content rows. -INSERT INTO Contents - ([Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID]) - select CASE when [ContentID] = @StartContentID and [Type]<20000 then 'Copy Of ' + [Number] else [Number] end, - [Text],[ContentID],[FormatID],[Config],@DTS,@UserID - from Contents where ContentID in(Select ContentID from @Children) --- Update the @Children with the NewConentIDs ---print 'A ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -UPDATE NN set NN.NewContentID = CC.ContentID -From Contents CC -Join @Children NN on NN.ContentID = CC.Type AND CC.DTS = @DTS and CC.UserID = @UserID --- Reset the Type column in the Contents table with the Type column from the original Records. ---print 'B ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -DECLARE @SourceType INT -Select @SourceType = Type from Contents where ContentID = @StartContentID -if @SourceType = 0 - BEGIN - UPDATE CC set CC.Type = CC2.Type, CC.DTS = CC2.DTS, CC.UserID = CC2.UserID - From Contents CC - Join @Children NN on NN.NewContentID = CC.ContentID - Join Contents CC2 on NN.ContentID = CC2.ContentID - END -else - BEGIN -UPDATE CC set CC.Type = CC2.Type -From Contents CC -Join @Children NN on NN.NewContentID = CC.ContentID -Join Contents CC2 on NN.ContentID = CC2.ContentID - END ---print 'B1 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Contents are done - -- SELECT * From Contents where DTS = @DTS and UserID = @UserID --- <<< Copy Grids >>> -INSERT INTO [Grids]([ContentID],[Data],[Config],[DTS],[UserID]) - SELECT NN.[NewContentID],[Data],[Config],@DTS,@UserID - FROM [Grids] GG Join @Children NN on GG.ContentID = NN.ContentID --- <<< Copy Images >>> ---print 'B2 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -INSERT INTO [Images]([ContentID],[ImageType],[FileName],[Data],[Config],[DTS],[UserID]) - SELECT NN.[NewContentID],[ImageType],[FileName],[Data],[Config],@DTS,@UserID - FROM [Images] II Join @Children NN on II.ContentID = NN.ContentID --- Create new item rows based upon the current item rows and the @Children table, with the NewContentIDs ---print 'B3 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -INSERT INTO [Items] ([PreviousID],[ContentID],[DTS],[UserID]) - SELECT II.[PreviousID], -- Leave the PreviousID as is for now - NN.NewContentID, @DTS, @UserID - from @Children NN - join Items II on II.ContentID = NN.ContentID --- Update the @Children with the NewItemIDs ---print 'B4 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -UPDATE NN set NN.NewItemID = II.ItemID -From Items II -Join @Children NN on NN.NewContentID = II.ContentID AND II.DTS = @DTS and II.UserID = @UserID -DECLARE @NewItemID int -SELECT @NewItemID = NewItemID - FROM @Children - WHERE ItemID = @StartItemID ---print 'B5 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -UPDATE NN SET NN.[NewFormatID] = CC.[FormatID] - FROM @Children NN - Join vefn_ChildItemsRange(@NewItemID,@NewItemID,@DestFormatID) CC - ON NN.NewItemID = CC.ItemID --- The @Children table is now complete - --SELECT * From @Children --- Update the PreviousID in the new Item rows, to the new ItemIDs based upon the old ItemIDs ---print 'B6 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -Update II Set II.[PreviousID] = NN.NewItemID -from Items II -Join @Children NN on NN.ItemID = II.PreviousID AND II.DTS = @DTS and II.UserID = @UserID --- Get the new ItemIDs based upon the old ItemIDs -SELECT @NewStartItemID = NewItemID from @Children where ItemID = @StartItemID ---SELECT @NewEndItemID = NewItemID from @Children where ItemID = @EndItemID --- Set the PreviousID for the starting Item to null temporarily. --- This will be adjusted based upon where the step is inserted. ---print 'B7 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -Update Items Set PreviousID = null where ItemID = @NewStartItemID -if @SourceType = 0 - BEGIN - UPDATE II SET II.DTS = II2.DTS, II.UserID = II2.UserID - From Items II - Join @Children NN on NN.NewItemID = II.ItemID - Join Items II2 on NN.ItemID = II2.ItemID - WHERE NN.ItemID = @StartItemID - END ---print 'C ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Items are done - --SELECT * From Items where DTS = @DTS and UserID = @UserID --- <<< Copy Parts >>> -INSERT INTO [Parts] ([ContentID],[FromType],[ItemID],[DTS],[UserID]) -Select NNF.NewContentID,[FromType],NNT.NewItemID, @DTS, @UserID from Parts PP -JOIN @Children NNF on PP.ContentID = NNF.ContentID -JOIN @Children NNT on PP.ItemID = NNT.ItemID ---print 'D ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Parts are done - -- SELECT * From Parts where DTS = @DTS and UserID = @UserID --- <<< Copy Annotations >>> -INSERT INTO [Annotations] ([ItemID],[TypeID],[RtfText],[SearchText],[Config],[DTS],[UserID]) - Select NewItemID, TypeID, RtfText, SearchText, Config, @DTS, @UserID - from Annotations AA Join @Children NN on AA.ItemID = NN.ItemID ---print 'E ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Annotations are done - -- SELECT * From Annotations where DTS = @DTS and UserID = @UserID --- <<< Copy Documents and Entries>>> --- logic to create Entries for Library Documents -INSERT INTO [Entries] ([ContentID],[DocID],[DTS],[UserID]) - SELECT NN.[NewContentID],EE.[DocID],@DTS,@UserID - FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID - JOIN [Documents] DD on EE.[DocID] = DD.[DocID] and Isnull(LibTitle,'') <> '' --- Logic to create new documents for any documents used that do not have libtitles -INSERT INTO [Documents] ([LibTitle],[DocContent],[DocAscii],[Config],[DTS],[UserID],[FileExtension]) - OUTPUT CAST(INSERTED.[LibTitle] as INT),INSERTED.[DocID] INTO @NewDocuments - SELECT str(DD.[DocID]),[DocContent],[DocAscii],[Config],@DTS,@UserID,[FileExtension] - FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID - JOIN [Documents] DD on EE.[DocID] = DD.[DocID] and Isnull(LibTitle,'') = '' -UPDATE DD SET LibTitle = '' - FROM Documents DD JOIN @NewDocuments ND on DD.[DocID] = ND.[NewDocID] - where DTS = @DTS and UserID = @UserID ---print 'F ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Documents are Done - -- SELECT * From Documents where DTS = @DTS and UserID = @UserID --- Logic to create entries for these newly created documents -INSERT INTO [Entries] ([ContentID],[DocID],[DTS],[UserID]) - SELECT NN.[NewContentID],ND.[NewDocID],@DTS,@UserID - FROM [Entries] EE JOIN @Children NN on NN.ContentID = EE.ContentID - JOIN @NewDocuments ND on EE.[DocID] = ND.[DocID] --- Logic to Create DROUsages for these newly created documents -INSERT INTO [DROUsages] ([DocID],[ROID],[Config],[DTS],[UserID],[RODbID]) - SELECT ND.[NewDocID],[ROID],[Config],@DTS,@UserID,[RODbID] - FROM [DROUsages] RR - JOIN @NewDocuments ND on RR.[DocID] = ND.[DocID] - ---print 'G ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Entries are done - -- SELECT * From Entries EE JOIN Documents DD on ee.DocID = DD.DocID where EE.DTS = @DTS and EE.UserID = @UserID --- <<< Copy RoUsages >>> -INSERT INTO [RoUsages] ([ContentID],[ROID],[Config],[DTS],[UserID],[RODbID]) - SELECT NN.[NewContentID],CAST([ROUsageID] as nvarchar(16)),[Config],@DTS,@UserID,[RODbID] - FROM [RoUsages] RR Join @Children NN on RR.ContentID = NN.ContentID --- Update content records for newly copied records to use correct RO usage ids in the RO tags -DECLARE @RowsAffected int -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN - UPDATE CC SET [TEXT] = C2.NewText - FROM CONTENTS CC - JOIN (SELECT C1.ContentID, .dbo.vefn_FixROText(C1.Text, CAST([ROID] as int), [ROUsageID]) NewText - FROM CONTENTS C1 - JOIN @Children NN on C1.ContentID = NN.NewContentID - JOIN RoUsages RO on NN.NewContentID = RO.ContentID where Len([ROID]) < 12) C2 ON CC.ContentID = C2.ContentID - WHERE [TEXT] <> C2.NewText - SET @RowsAffected = @@RowCount -END --- Update grid records for newly copied records to use correct RO usage ids in the RO tags -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN - UPDATE GG SET [Data] = G2.NewData - FROM GRIDS GG - JOIN (SELECT G1.ContentID, .dbo.vefn_FixROData(G1.Data, CAST([ROID] as int), [ROUsageID]) NewData - FROM GRIDS G1 - JOIN @Children NN on G1.ContentID = NN.NewContentID - JOIN RoUsages RO on NN.NewContentID = RO.ContentID where Len([ROID]) < 12) G2 ON GG.ContentID = G2.ContentID - WHERE Cast([Data] as nvarchar(max)) <> cast(G2.NewData as nvarchar(max)) - SET @RowsAffected = @@RowCount -END -UPDATE RON SET [ROID] = ROO.[ROID] - FROM RoUsages RON - JOIN @Children NN on RON.ContentID = NN.NewContentID - JOIN RoUsages ROO on CAST(RON.ROID as int) = ROO.RoUsageID - where Len(RON.[ROID]) < 12 ---print 'H ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- RoUsages are done - -- SELECT * From RoUsages where DTS = @DTS and UserID = @UserID - --- <<< Copy Transtions >>> --- Note that the inserted record has the 'TranType' field set to old transitionid. This is done --- so that the next step can replace the old transitionid with the new transitionid in the --- content record's transition tokens. The TranType gets reset after the content records are --- updated. --- Also note that the 'toid/rangeid' may need converted to newly copied ids or may not. If it's --- not a range, then it always is converted to new, if there is a new. If it's a range, both --- the toid & the rangeid must be new in order for the conversion to be correct. You cannot --- have part of the range pointing to the new and part of the range pointing to the original --- locations. - -INSERT INTO .[dbo].[Transitions] ([FromID],[ToID],[RangeID],[IsRange],[TranType],[Config],[DTS],[UserID]) - SELECT NNF.[NewContentID], - -- if both toid & range are null, use the original toid & rangeid - CASE WHEN NNT.[NewItemID] is null or NNR.[NewItemID] is null THEN [ToID] ELSE NNT.[NewItemID] END, - CASE WHEN NNT.[NewItemID] is null or NNR.[NewItemID] is null THEN [RangeID] ELSE NNR.[NewItemID] END, - [IsRange],[TransitionID],[Config],@DTS,@UserID - FROM .[dbo].[Transitions] TT - JOIN @Children NNF on TT.[FromID] = NNF.[ContentID] - LEFT JOIN @Children NNT on TT.[ToID] = NNT.[ItemID] - LEFT JOIN @Children NNR on TT.[RangeID] = NNR.[ItemID] ---print 'H1 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- -- Update content records for newly copied records to use correct TransitionIDs in the Transition tags -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN -UPDATE CC SET [TEXT] = C2.NewText - FROM CONTENTS CC - JOIN (SELECT C1.ContentID, .dbo.vefn_FixTransitionTextForCopy(C1.Text, TRO.TransitionID, TRO.TranType, TRO.[ToID], TRO.[RangeID],TR.[TransitionID], TR.[ToID], TR.[RangeID], .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)) NewText - FROM CONTENTS C1 - JOIN @Children NN on C1.ContentID = NN.NewContentID - JOIN Transitions TR on NN.NewContentID = TR.FromID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID) C2 ON CC.ContentID = C2.ContentID - WHERE [TEXT] <> C2.NewText - SET @RowsAffected = @@RowCount -END ---print 'H2 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) ---set nocount off --- -- Update grid records for newly copied records to use correct TransitionIDs in the Transition tags -declare @grids table -( -contentid int primary key, -data xml -) -insert into @grids select gg.contentid,gg.data from GRIDS GG - where gg.contentid in (select nn.newcontentid from - @Children NN - JOIN Transitions TR on NN.NewContentID = TR.FromID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID) ---print 'H2.1 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) ---select * from @grids -SET @RowsAffected=1 -WHILE @RowsAffected > 0 -BEGIN -UPDATE GG SET [DATA] = G2.NewData - FROM @GRIDS GG - JOIN (SELECT G1.ContentID, .dbo.vefn_FixTransitionDataForCopy(G1.Data, TRO.TransitionID, TRO.TranType, TRO.[ToID], TRO.[RangeID],TR.[TransitionID], TR.[ToID], TR.[RangeID], .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType)) NewData - FROM @GRIDS G1 - JOIN @Children NN on G1.ContentID = NN.NewContentID - JOIN Transitions TR on NN.NewContentID = TR.FromID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID) G2 ON GG.ContentID = G2.ContentID - WHERE Cast([DATA] as nvarchar(max)) <> CAST(G2.NewData as nvarchar(max)) - SET @RowsAffected = @@RowCount -END ---print 'H2.2 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -update GG set data = g1.data from Grids gg join @grids g1 on gg.contentid = g1.contentid ---print 'H3 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) ---set nocount on --- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition whose transition format changes -INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT NN.NewItemID, @typeID,'Verify Transition Format',@UserID - FROM Transitions TR - JOIN @Children NN on TR.FromID = NN.NewContentID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID - WHERE .dbo.vefn_CompareTranFormat(NN.FormatID, NN.NewFormatID, TRO.TranType) <> 0 ---print 'H4 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) -UPDATE TR SET TR.[TranType] = .dbo.vefn_GetNewTranType(NN.FormatID, NN.NewFormatID, TRO.TranType) - FROM Transitions TR - JOIN @Children NN on TR.FromID = NN.NewContentID - JOIN Transitions TRO on TR.TranType = TRO.TransitionID ---print 'H5 ' + cast(datediff(s,@dts,getdate()) as varchar(100)) --- Transitions are done - -- SELECT * From Transitions where DTS = @DTS and UserID = @UserID ---print 'Z ' + cast(datediff(s,@dts,getdate()) as varchar(100)) ---foldouts fixing code -if exists (select * from contents where contentid in (select newcontentid from @children) and config like '%FloatingFoldout%') -begin - --insert into #mytemp - select cc.contentid,xsteps.value('@FloatingFoldout','int') oldfoldoutid,(select newitemid - from @children - where itemid = xsteps.value('@FloatingFoldout','int')) newfoldoutid,xconfig - into #mytemp - from (select *,cast(config as xml) xconfig from contents where contentid in (select newcontentid from @children)) cc - cross apply xconfig.nodes('Config/Step') tsteps(xsteps) - --build @cmd string - declare @cmd nvarchar(max) - declare cmds cursor for - select distinct 'update #mytemp set xconfig.modify(''replace value of (Config/Step/@FloatingFoldout)[1] with "' - + cast(newfoldoutid as varchar(10)) - + '"'') where xconfig.value(''(Config/Step/@FloatingFoldout)[1]'',''int'') = ' - + cast(oldfoldoutid as varchar(10)) - from #mytemp - --execute cursor over rows - open cmds - fetch next from cmds into @cmd - while @@fetch_status = 0 - begin - exec sp_executesql @cmd - fetch next from cmds into @cmd - end - close cmds - deallocate cmds - --actually update contents - update cc set config = cast(xconfig as varchar(max)) from contents cc join #mytemp mt on cc.contentid = mt.contentid - --get rid of #mytemp - drop table #mytemp -end ---end foldouts fixing code ---section start -DECLARE @NewContentID int -Select @NewContentID = NewContentID from @Children where ItemID = @StartItemID -DECLARE @Config varchar(max) -DECLARE @XConfig xml -select @Config = config from contents where contentid = @NewContentID -select @XConfig = cast(@Config as xml) -if @Config like '%SectionStart%' begin - DECLARE @SectionStart int - select @SectionStart = xproc.value('@SectionStart','int') from @xconfig.nodes('Config/Procedure') tproc(xproc) - DECLARE @NewSectionStart int - select @NewSectionStart = newitemid from @children where itemid = @SectionStart - DECLARE @cmd2 nvarchar(max) - set @cmd2 = ' - declare @XConfig xml; - set @XConfig = cast(''' + @Config + ''' as xml); - set @XConfig.modify(''replace value of (Config/Procedure/@SectionStart)[1] with "' + cast(@NewSectionStart as nvarchar(10)) + '"''); - update contents set config = cast(@XConfig as varchar(max)) where contentid = ' + cast(@NewContentID as nvarchar(10)) + ';' - exec sp_executesql @cmd2 -end ---end section start - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -go --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: CopyItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: CopyItemAndChildren Error on Creation' -GO -Delete From Formats where name like 'WPS%' -PRINT 'Kewaunee formats removed' -GO - -/****** Object: StoredProcedure [CopyItemAndChildren] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[DeleteItemAndChildren]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [DeleteItemAndChildren]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[DeleteItemAndChildren] -( - @ItemID int, - @UserID AS VARCHAR(100) -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - declare @DeleteID int - DECLARE @ContentID AS INT - DECLARE @NextItemID AS INT - DECLARE @PreviousItemID AS INT - DECLARE @ExternalChildCount AS INT - DECLARE @ExternalCount AS INT - DECLARE @Path AS VARCHAR(MAX) - DECLARE @Children AS TABLE - ( - ItemID INT PRIMARY KEY, - ContentID INT - ) - DECLARE @ExternalTrans TABLE - ( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL - ) - SET NOCOUNT ON - SELECT @ContentID = ContentID, @PreviousItemID = PreviousID FROM Items WHERE ItemID = @ItemID - SELECT @NextItemID = ItemID FROM Items WHERE PreviousID = @ItemID - SELECT @ExternalCount = count(*) FROM vefn_FindExternalTransitions(@ItemID) where rangeid = toid or toid = @ItemID - SELECT @ExternalChildCount = count(*) FROM vefn_FindExternalChildTransitions(@ItemID) - SET @Path = [dbo].[ve_GetShortPath](@ItemID) - - IF @ExternalCount > 0 AND @NextItemID is null - BEGIN - RAISERROR ('###Cannot Delete Item###Step %d has External Transitions and has no next step - (%s)',16,1,@ItemID,@Path) - RETURN - END - - IF @ExternalChildCount > 0 - BEGIN - RAISERROR ('###Cannot Delete Item###Step %d has External Transitions to it''s children - (%s)',16,1,@ItemID,@Path) - RETURN - END - --deletelog - INSERT INTO DeleteLog (UserID) values (@UserID) - Select @DeleteID = SCOPE_IDENTITY() - --end deletelog - -- Get list of Children - INSERT INTO @Children SELECT * FROM vefn_ChildItems(@ItemID) - -- UPDATE PreviousID in Items WHERE ItemID = @NextItemID - UPDATE Items SET PreviousID = @PreviousItemID WHERE ItemID=@NextItemID - -- UPDATE DocVersion - UPDATE DocVersions SET ItemID=@NextItemID where ItemID = @ItemID - -- UPDATE Parts - IF @NextItemID is not NULL -- Remove Part Record - BEGIN - UPDATE PARTS SET ItemID = @NextItemID where ItemID=@ItemID - END - ELSE - BEGIN - DELETE FROM Parts WHERE ItemID=@ItemID - END - -- Get external transitions that point to the specified Item - -- These will need to be adjusted to point to the next Item. - INSERT INTO @ExternalTrans SELECT * FROM vefn_FindExternalTransitions(@ItemID); - DECLARE @typeID int -- AnnotationType - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add 'Verification Required' annotions for transtions that point to different step - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where ItemID in (SELECT FromItemID FROM @ExternalTrans) - -- Update content records for the transitions - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@NextItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID != @ItemID or RangeID = ToID) - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ItemID,@PreviousItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID = @ItemID and RangeID != ToID) - -- Update transitions that point to @ItemID to Point to @NextItemID - UPDATE TRANSITIONS - SET ToID = case when ToID = @ItemID then @NextItemID else ToID END, - RangeID = case when RangeID = @ItemID then @NextItemID else RangeID END - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID != @ItemID or RangeID = ToID) - UPDATE TRANSITIONS - SET ToID = case when ToID = @ItemID then @NextItemID else ToID END, - RangeID = case when RangeID = @ItemID then @PreviousItemID else RangeID END - WHERE TransitionID in(Select TransitionID from @ExternalTrans where RangeID = @ItemID and RangeID != ToID) - -- Delete Annotations for @ItemID and children - DELETE from Annotations where ItemID in(Select ItemID from @Children) - -- Delete Details associated with @ContentID and children - DELETE from Details where ContentID in(Select ContentID from @Children) - -- Delete Grids associated with @ContentID and children - DELETE from Grids where ContentID in(Select ContentID from @Children) - -- Delete Images associated with @ContentID and children - DELETE from Images where ContentID in(Select ContentID from @Children) - -- Delete Entries associated with @ContentID and children - DELETE from Entries where ContentID in(Select ContentID from @Children) - -- Delete ROUsages associated with @ContentID and children - DELETE from RoUsages where ContentID in(Select ContentID from @Children) - -- Delete ZTransitions records associated with @ContentID and children - DELETE FROM ZTransitions where TransitionID - in(SELECT TransitionID from Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID) - -- Delete Transitions associated with @ContentID and children - DELETE FROM Transitions where FromID in(SELECT ContentID FROM @Children) or FromID = @ContentID - -- Delete Parts associated with @ContentID and children - DELETE from Parts where ContentID in(Select ContentID from @Children) - -- Delete ZContents associated with @ContentID and children - DELETE from ZContents where ContentID in(Select ContentID from @Children) - -- Disconnect Items from Each Other - DELETE from Items where ItemID in(Select ItemID from @Children) and PreviousID Is Not Null - -- Disconnect Items to be deleted from each other - Update Items set PreviousID = null where ItemID in (Select ItemID from @Children) and PreviousID Is Not Null - -- Delete Item Records - DELETE from Items where ItemID in(Select ItemID from @Children) - -- DELETE Contents - DELETE from Contents where ContentID in(Select ContentID from @Children) - --purge deletelog - DELETE from DeleteLog where DeleteID = @DeleteID - --end purge deletelog - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: DeleteItemAndChildren Succeeded' -ELSE PRINT 'Procedure Creation: DeleteItemAndChildren Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FixTransitionDataForCopy] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixTransitionDataForCopy]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixTransitionDataForCopy]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FixTransitionDataForCopy] -(@data XML,@TransitionID int,@TranType int,@OldToID int,@OldRangeID int, @NewID int, @NewToID int, @NewRangeID int, @NewTranType int) -RETURNS XML -WITH EXECUTE AS OWNER -AS -BEGIN - - -- Build Search String and Replace String - DECLARE @offset int - DECLARE @lookFor nvarchar(MAX) - DECLARE @replaceWith nvarchar(MAX) - DECLARE @text nvarchar(MAX) - SET @text = Cast(@data as nvarchar(max)) - SET @lookFor = '#Link:Transition:' + ltrim(str(@TranType)) + ' ' + ltrim(str(@TransitionID)) - SET @offset = CHARINDEX(@lookFor,@text) - if(@offset = 0) - BEGIN - - SET @lookFor = '#Link:TransitionRange:' + ltrim(str(@TranType)) + ' ' + ltrim(str(@TransitionID)) - SET @offset = CHARINDEX(@lookFor,@text) - SET @replaceWith = '#Link:TransitionRange:' + ltrim(str(@NewTranType)) + ' ' + ltrim(str(@NewID)) - + ' ' + ltrim(str(@NewToID)) + ' ' + ltrim(str(@NewRangeID)) - SET @lookFor = @lookFor + ' ' + ltrim(str(@OldToID)) + ' ' + ltrim(str(@OldRangeID)) - END - ELSE - BEGIN - SET @replaceWith = '#Link:Transition:' + ltrim(str(@NewTranType)) + ' ' + ltrim(str(@NewID)) - + ' ' + ltrim(str(@NewToID)) - SET @lookFor = @lookFor + ' ' + ltrim(str(@OldToID)) - END - return Cast(replace(@text,@lookFor,@replaceWith) as XML) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_FixTransitionDataForCopy Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_FixTransitionDataForCopy Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FixROData] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FixROData]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_FixROData]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create FUNCTION [dbo].[vefn_FixROData] -(@data XML,@ROUsageID int,@NewROUsageID int) -RETURNS XML -WITH EXECUTE AS OWNER -AS -BEGIN - -- Build Search String and Replace String - DECLARE @lookFor varchar(MAX) - DECLARE @replaceWith varchar(MAX) - SET @lookFor = '#Link:ReferencedObject:' + ltrim(str(@ROUsageID)) + ' ' - SET @replaceWith = '#Link:ReferencedObject:' + ltrim(str(@NewROUsageID)) + ' ' - return CAST(replace(CAST(@data AS NVarChar(max)),@lookFor,@replaceWith) AS XML) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_FixROData Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_FixROData Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_GetVersionProcedureItems] Script Date: 1/5/2015 3:58:49 PM ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionProcedureItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionProcedureItems]; -GO -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO - -/* -Select * from vefn_GetVersionProcedureItems('') where procid = 63589 -Select * from vefn_GetVersionProcedureItems('1') where procid = 63589 -Select * from vefn_GetVersionProcedureItems('4') where procid = 63589 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetVersionProcedureItems](@DocVersionList varchar(MAX)) -RETURNS @VersionItems TABLE -( - VersionID int, - ProcID int, - ItemID int primary key, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - BEGIN - with Itemz([VersionID], ProcID, [ItemID], [ContentID]) as - (Select DV.VersionID, DV.ItemID ProcID, [I].[ItemID], [I].[ContentID] - FROM [Items] I - JOIN vefn_DocVersionSplit(@DocVersionList) DV - ON I.[ItemID] = DV.[ItemID] - Union All - -- Children - select Z.VersionID, Z.ProcID, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - Union All - -- Siblings - select Z.VersionID, case when z.ProcID = z.ItemID then I.ItemID else Z.ProcID end ProcID, I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - ) - insert into @VersionItems - select VersionID, ProcID, [ItemID], [ContentID] - from ItemZ I - --Select * From rousages RU Where RU.ContentID in (Select ContentID from ItemZ) - OPTION (MAXRECURSION 10000) - END -RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction vefn_GetVersionProcedureItems Succeeded' -ELSE PRINT 'TableFunction vefn_GetVersionProcedureItems Error on Creation' - -/****** Object: StoredProcedure [getTransitionSearchResults] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_SearchTransitions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [dbo].[vesp_SearchTransitions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/****** Object: StoredProcedure [dbo].[vesp_SearchTransitions] Script Date: 1/7/2015 6:15:17 PM ******/ -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO - -CREATE PROCEDURE [dbo].[vesp_SearchTransitions] -( - @DocVersionList varchar(max), - @TranType int, - @TranCategory varchar(20) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @itmp table - ( - vid int, - pid int, - iid int primary key, - cid int - ) - declare @ctmp table - ( - vid int, - pid int, - iid int, - cid int primary key - ) - declare @ttmp table - ( - itemid int, - dvpath varchar(max) - ) - insert into @itmp select * from vefn_getversionprocedureitems(@DocVersionList) - insert into @ctmp select * from @itmp - if @TranType = -1 and @TranCategory = '' begin - insert into @ttmp - select ii.ItemID,dv.DVPath - from vefn_DocVersionSplit(@DocVersionList) dv - join @ctmp ct on dv.VersionID = ct.vid - join Items ii on ct.cid = ii.ContentID - join Transitions tt on ii.ContentID = tt.FromID - end else if @TranType > -1 and @TranCategory = '' begin - insert into @ttmp - select ii.ItemID,dv.DVPath - from vefn_DocVersionSplit(@DocVersionList) dv - join @ctmp ct on dv.VersionID = ct.vid - join Items ii on ct.cid = ii.ContentID - join Transitions tt on ii.ContentID = tt.FromID - where tt.TranType = @TranType - end else if @TranType = -1 and @TranCategory != '' begin - insert into @ttmp - select ii.ItemID,dv.DVPath - from vefn_DocVersionSplit(@DocVersionList) dv - join @ctmp ct on dv.VersionID = ct.vid - join Items ii on ct.cid = ii.ContentID - join Transitions tt on ii.ContentID = tt.FromID - join @itmp it on tt.ToID = it.iid - where case when it.vid = ct.vid then case when it.pid = ct.pid then 'Internal' else 'External' end else 'Outside' end = @TranCategory - end else begin - insert into @ttmp - select ii.ItemID,dv.DVPath - from vefn_DocVersionSplit(@DocVersionList) dv - join @ctmp ct on dv.VersionID = ct.vid - join Items ii on ct.cid = ii.ContentID - join Transitions tt on ii.ContentID = tt.FromID - join @itmp it on tt.ToID = it.iid - where tt.TranType = @TranType and case when it.vid = ct.vid then case when it.pid = ct.pid then 'Internal' else 'External' end else 'Outside' end = @TranCategory - end - SELECT - tt.dvpath,I.[ItemID],I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged], - C.[Number],C.[Text],C.[Type],C.[FormatID],C.[Config],C.[DTS] [cDTS],C.[UserID] [cUserID],C.[LastChanged] [cLastChanged], - (SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=[I].[ItemID]) [AnnotationCount], - (SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=[I].[ItemID]) [DocVersionCount], - (SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=[I].[ItemID]) [NextCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=[I].[ItemID]) [PartCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=[I].[ItemID]) [Transition_RangeIDCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=[I].[ItemID]) [Transition_ToIDCount], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[C].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[C].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[C].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[C].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[C].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[C].[ContentID]) [cPartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[C].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[C].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[C].[ContentID]) [ZContentCount] - FROM [Items] I - join @ttmp tt on I.ItemID = tt.itemid - join Contents C on C.ContentID = I.ContentID - RETURN -END -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_SearchTransitions Succeeded' -ELSE PRINT 'Procedure Creation: vesp_SearchTransitions Error on Creation' -GO - -/****** Object: TableFunction [vefn_GetVersionFormatSections] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetVersionFormatSections]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetVersionFormatSections]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetVersionFormatSections](@DocVersionList varchar(MAX)) -RETURNS @VersionItems TABLE -( - VersionID int, - ItemID int, - ContentID int primary key, - FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - BEGIN - with Itemz([VersionID], [ItemID], [ContentID], [FormatID], [ParentFormatID]) as - (Select DV.VersionID, [I].[ItemID], [I].[ContentID], - isnull(C.[FormatID],isnull(DV2.[FormatID],isnull(F.[FormatID],P.[FormatID]))), - isnull(DV2.[FormatID],isnull(F.[FormatID],P.[FormatID])) - FROM [Items] I - JOIN vefn_DocVersionSplit(@DocVersionList) DV ON I.[ItemID] = DV.[ItemID] - join docversions DV2 on DV.[VersionID] = DV2.[VersionID] - join folders F on DV2.[FolderID] = F.[FolderID] - join folders P on P.[FolderID] = F.[ParentID] - join Contents C on I.ContentID = C.ContentID - - Union All - -- Children - select Z.VersionID, I.[ItemID], I.[ContentID], isnull(C.[FormatID],Z.[FormatID]), Z.[FormatID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on I.ContentID = C.ContentID - where c.Type < 20000 - Union All - -- Siblings - select Z.VersionID, I.[ItemID], I.[ContentID], isnull(C.[FormatID],Z.[ParentFormatID]), Z.[ParentFormatID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on I.ContentID = C.ContentID - ) - insert into @VersionItems - select VersionID, [ItemID], [ContentID], [FormatID] - from ItemZ I - --Select * From rousages RU Where RU.ContentID in (Select ContentID from ItemZ) - OPTION (MAXRECURSION 10000) - END -RETURN -END -GO --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_GetVersionFormatSections Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_GetVersionFormatSections Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetFormatVersions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetFormatVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [dbo].[vesp_GetFormatVersions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/****** Object: StoredProcedure [dbo].[vesp_GetFormatVersions] Script Date: 1/7/2015 6:15:17 PM ******/ -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO -CREATE PROCEDURE vesp_GetFormatVersions -WITH EXECUTE AS OWNER -AS -BEGIN - select ff.Name + ' - ' + ff.Description Title,vfi.FormatID,vn.VersionID - from vefn_GetVersionNames() vn - join vefn_GetVersionFormatSections('') vfi on vn.VersionID = vfi.VersionID - join Formats ff on vfi.FormatID = ff.FormatID - group by ff.Name + ' - ' + ff.Description,vfi.formatid,vn.VersionID - return -END -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetFormatVersions Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetFormatVersions Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetTranTypesByFormatID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetTranTypesByFormatID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [dbo].[vesp_GetTranTypesByFormatID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/****** Object: StoredProcedure [dbo].[vesp_GetTranTypesByFormatID] Script Date: 1/7/2015 6:15:17 PM ******/ -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO -/* -vesp_GetTranTypesByFormatID 102 -*/ -CREATE PROCEDURE vesp_GetTranTypesByFormatID -( - @FormatID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @t1 table - ( - formatid int, - transindex int, - transmenu varchar(max) - ) - declare @t2 table - ( - transindex int, - formatid int - ) - insert into @t1 - select ff.formatid,r1.value('@Index','int') transindex, r1.value('@TransMenu','varchar(max)') transmenu - from Formats ff - cross apply ff.Data.nodes('//TransTypes') t1(r1) - where ff.FormatID = @FormatID - union - select ff.formatid,r1.value('@Index','int') transindex, r1.value('@TransMenu','varchar(max)') transmenu - from Formats ff - cross apply ff.Data.nodes('//TransTypes') t1(r1) - where ff.FormatID = 1 - insert into @t2 - select transindex,max(formatid) formatid from @t1 group by transindex - select t1.transindex,t1.transmenu - from @t1 t1 - join @t2 t2 on t1.formatid = t2.formatid and t1.transindex = t2.transindex - order by t1.transindex - RETURN -END -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetTranTypesByFormatID Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetTranTypesByFormatID Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetTransitionReportData] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetTransitionReportData]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [dbo].[vesp_GetTransitionReportData]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -/****** Object: StoredProcedure [dbo].[vesp_GetTransitionReportData] Script Date: 1/7/2015 6:15:17 PM ******/ -SET ANSI_NULLS ON -GO - -SET QUOTED_IDENTIFIER ON -GO -/* -vesp_GetTransitionReportData 1,1 -*/ -CREATE PROCEDURE vesp_GetTransitionReportData -( - @VersionID int, - @ProcedureID int -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @itmp table - ( - vid int, - pid int, - iid int primary key, - cid int - ) - declare @ctmp table - ( - vid int, - pid int, - iid int, - cid int primary key - ) - declare @ttmp table - ( - tid int primary key - ) - insert into @itmp select * from vefn_getversionprocedureitems(@VersionID) - insert into @ctmp select * from @itmp - insert into @ttmp select tt.TransitionID from Transitions tt join @ctmp ct on tt.FromID = ct.cid join @itmp it on tt.ToID = it.iid - --internal - select 1 level,tt.*, - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=tt.[TransitionID]) [ZTransitionCount] - from Transitions tt - join @ttmp tp on tt.TransitionID = tp.tid - join @ctmp ct on tt.FromID = ct.cid - join @itmp it on tt.ToID = it.iid - where ct.vid = it.vid and ct.pid = @ProcedureID and it.pid = @ProcedureID - --external from - union - select 2 level,tt.*, - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=tt.[TransitionID]) [ZTransitionCount] - from Transitions tt - join @ttmp tp on tt.TransitionID = tp.tid - join @ctmp ct on tt.FromID = ct.cid - join @itmp it on tt.ToID = it.iid - where ct.pid = @ProcedureID and it.pid != @ProcedureID - --external to - union - select 3 level,tt.*, - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=tt.[TransitionID]) [ZTransitionCount] - from Transitions tt - join @ttmp tp on tt.TransitionID = tp.tid - join @ctmp ct on tt.FromID = ct.cid - join @itmp it on tt.ToID = it.iid - where ct.pid != @ProcedureID and it.pid = @ProcedureID - --outside from - union - select 4 level,tt.*, - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=tt.[TransitionID]) [ZTransitionCount] - from Transitions tt - join @ttmp tp on tt.TransitionID = tp.tid - join @ctmp ct on tt.FromID = ct.cid - join Items ii on tt.ToID = ii.ItemID - where ct.pid = @ProcedureID and ii.ItemID not in (select iid from @itmp) - --outside to - union - select 5 level,tt.*, - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=tt.[TransitionID]) [ZTransitionCount] - from Transitions tt - join @ttmp tp on tt.TransitionID = tp.tid - join @itmp it on tt.ToID = it.iid - join Items ii on tt.FromID = ii.ContentID - where it.pid = @ProcedureID and ii.ContentID not in (select cid from @ctmp) - RETURN -END -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetTransitionReportData Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetTransitionReportData Error on Creation' -GO - - -/****** Object: StoredProcedure [PasteItemChild] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteItemChild]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [PasteItemChild]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2015 - Volian Enterprises, Inc. All rights reserved. - -Copies & Pastes into a level above the copied item, for example copied item is step pasted into a section. - -Example test: - -declare @NewItemID int -declare @dts datetime -set @newitemid = 0 -set @dts = getdate() -exec PasteItemChild 1493,484,20041,2,@dts,'KATHY',@NewItemID output - -*****************************************************************************/ - -CREATE PROCEDURE [dbo].[PasteItemChild] -( - @ItemID int=null, @StartItemID int=null, -- ItemID is destination, StartItemID is top of copy - @Type int=null, @FromType int=null, @DTS datetime, @UserID nvarchar(100), -- Type is step/section type for content record, fromtype is for parts - @NewItemID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - if exists (select * from tblitems where itemid = @ItemID and DeleteStatus !=0) - BEGIN - RAISERROR ('###Cannot Paste Step###This current step has been deleted in another session',16,1) - RETURN - END - -- First make a copy of the input StartItemID - -- DestFormatID is the formatid for the destination parent's format - DECLARE @DestFormatID int - SET @DestFormatID = .dbo.vefn_GetInheritedFormat(@ItemID, 0) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - -- print 'testing PasteItemChild 1 ' + cast(dbo.ve_GetTransitionErrorCount() as varchar(20)) - DECLARE @ChildID int, @ContentID int, @ParentContentID int, @LastChanged timestamp - , @newLastChanged timestamp, @Error int, @Rowcount int, @ChildDeleted int - SELECT @ChildID = pp.[ItemID],@ParentContentID = ii.ContentID, @LastChanged = pp.LastChanged - FROM [ITEMS] ii - LEFT JOIN [PARTS] pp on pp.ContentID=ii.ContentID and pp.FromType=@FromType - WHERE ii.[ItemID]=@ItemID - IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[tblParts]') AND OBJECTPROPERTY(id,N'IsTable') = 1) - BEGIN - SELECT @ChildDeleted = pp.[ItemID],@ParentContentID = ii.ContentID, @LastChanged = pp.LastChanged - FROM [ITEMS] ii - LEFT JOIN [tblPARTS] pp on pp.ContentID=ii.ContentID and pp.FromType=@FromType - WHERE ii.[ItemID]=@ItemID and pp.DeleteStatus > 0 - END - -- No existing child - Add Parts record. Note that don't need to update any transition records if no existing children - IF @ChildID is null - BEGIN - IF @ChildDeleted is not null - DELETE FROM [tblParts] WHERE ItemID = @ChildDeleted - EXECUTE AddPart @ParentContentID, @FromType, @newItemID, @DTS, @UserID, @newLastChanged output - END - ELSE -- Children exist: Update existing Parts record and adjust transition records that may have pointed to 1st child. - BEGIN - EXECUTE UpdatePart @ParentContentID, @FromType, @newItemID, @DTS, @UserID, @LastChanged, @newLastChanged output - UPDATE [Items] SET [PreviousID]=@newItemID WHERE [ItemID]=@ChildID - - -- Update content records for the transitions, this only fixes the link portion. Code fixes the text. - Update CC - Set Text = DBO.vefn_FixTransitionText(Text,TT.TransitionID,TT.TranType,TT.ToID,TT.RangeID,@ChildID,@newItemID) - From CONTENTS CC - JOIN Transitions TT ON TT.FromID = CC.ContentID - WHERE TT.ToID = @ChildID OR TT.RangeID = @ChildID - -- Update transitions that pointed to @ItemID to point to @newItemID - Update TRANSITIONS - Set ToID = CASE ToID WHEN @ChildID THEN @newItemID ELSE ToID END, - RangeID = CASE RangeID WHEN @ChildID THEN @newItemID ELSE RangeID END - WHERE ToID = @ChildID OR RangeID = @ChildID - END - -- Add 'Verification Required' AnnotationType - DECLARE @typeID int - SELECT @typeID = TypeID from AnnotationTypes where Name = 'Verification Required' - IF(@typeID IS NULL) - BEGIN - INSERT INTO [AnnotationTypes] ([Name],[UserID]) VALUES ('Verification Required','Volian') - SELECT @typeID = SCOPE_IDENTITY() - END - -- Add "Verification Required" Annotation for each Transition that points to @newItemID or @NextID - -- I don't expect to see any transitions that point to @ChildID. They should have changed in - -- the update above to point to @newItemID. This is here for consistency with the other insert - -- stored procedures - INSERT INTO [Annotations] ([ItemID],[TypeID],[SearchText],[UserID]) - SELECT ItemID, @typeID,'Verify Transition Destination',@UserID - FROM Items where CONTENTID in (SELECT FromID FROM TRANSITIONS - where ToID IN(@ChildID,@newItemID) OR RangeID IN(@ChildID,@newItemID)) - -- Transition Text gets updated in ItemInsertExt.cs - IF( @@TRANCOUNT > 0 ) COMMIT - PRINT 'Child Added ' + ltrim(str(@newItemID)) - EXECUTE GetItem @newItemID - delete from itemaudits where itemid in (select itemid from vefn_ChildItems(@newitemid)) - delete from contentaudits where contentid in (select contentid from vefn_ChildItems(@newitemid)) -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteItemChild Succeeded' -ELSE PRINT 'Procedure Creation: PasteItemChild Error on Creation' -GO - - -/****** Object: StoredProcedure [PasteDocVersionChild] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[PasteDocVersionChild]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [PasteDocVersionChild]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2014 - Volian Enterprises, Inc. All rights reserved. - -Copies & Pastes into a docversion that does NOT have any existing procedures. - -Example test: - -declare @NewItemID int -declare @dts datetime -set @newitemid = 0 -set @dts = getdate() -exec PasteDocVersionChild 5,30,@dts,'KATHY',@NewItemID output - -*****************************************************************************/ -CREATE PROCEDURE [dbo].[PasteDocVersionChild] -( - @VersionID int=null, @StartItemID int=null, -- VersionID is destination (docversion), StartItemID is top of copy (i.e. procedure) - @DTS datetime, @UserID nvarchar(100), - @ThisVersionID int output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - if not exists (select * from DocVersions where versionid = @VersionID) - BEGIN - RAISERROR ('###Cannot Paste Procedure###This document version has been deleted in another session',16,1) - RETURN - END - -- First make a copy of the input StartItemID (Procedure) - -- DestFormatID is the formatid for the destination parent's format - DECLARE @NewItemID int - DECLARE @DestFormatID int - SET @ThisVersionID = @VersionID - SET @DestFormatID = .dbo.vefn_GetDocVersionInheritedFormat(@VersionID) - EXECUTE CopyItemAndChildren @StartItemID, @DestFormatID, @UserID, @NewItemID OUTPUT - UPDATE [DOCVERSIONS] SET [ItemID] = @NewItemID where [VersionID]=@VersionID - IF( @@TRANCOUNT > 0 ) COMMIT - PRINT 'Child Added ' + ltrim(str(@newItemID)) - EXECUTE GetDocVersion @ThisVersionID - delete from itemaudits where itemid in (select itemid from vefn_ChildItems(@newitemid)) - delete from contentaudits where contentid in (select contentid from vefn_ChildItems(@newitemid)) -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: PasteDocVersionChild Succeeded' -ELSE PRINT 'Procedure Creation: PasteDocVersionChild Error on Creation' -GO - - -/****** Object: StoredProcedure [vefn_GetDocVersionInheritedFormat] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetDocVersionInheritedFormat]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetDocVersionInheritedFormat]; -GO - -CREATE FUNCTION [dbo].[vefn_GetDocVersionInheritedFormat] (@VersionID int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @FormatID as int - -- First get format for the input doc version - begin - with Itemz([Level], [VersionID], [FolderID], [ParentID], [FormatID]) as ( - -- DocVersion From Item - select 0 [Level], DV.VersionID, DV.FolderID, null, DV.FormatID - from DocVersions DV - where [VersionID] = @VersionID - Union All - -- Folders - select [Level] + 1, null, FF.ParentID, FF.FolderID, FF.FormatID - from Itemz Z - join Folders FF on FF.FolderID = Z.ParentID and FF.ParentID <> FF.FolderID - where Z.FormatID is null - ) - Select @FormatID = FormatID from Itemz ZZ Where FormatID is not null - OPTION (MAXRECURSION 10000) - RETURN @FormatID - END -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_GetDocVersionInheritedFormat Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_GetDocVersionInheritedFormat Error on Creation' -GO - -/*********the following funcion is for debugging copy/paste where transition text in content records does not get updated */ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[ve_GetTransitionErrorCount]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [ve_GetTransitionErrorCount]; -/****** Object: UserDefinedFunction [dbo].[vefn_ChronologyReport] Script Date: 03/20/2012 17:50:44 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/* -select dbo.ve_GetTransitionErrorCount () -print 'testing ' + cast(dbo.ve_GetTransitionErrorCount() as varchar(20)) -*/ - -CREATE FUNCTION [dbo].[ve_GetTransitionErrorCount] () RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN -DECLARE @Count int -select @Count = count(*) from ( -select dbo.ve_GetShortPathFromContentId(contentid) location, * from ( -select contentid, text, tt.*, -case when text like '%'+ case when tt.toid = tt.rangeid and tt.IsRange = 0 -then -'#Link:Transition:' + cast(TranType as nvarchar(2)) + -' ' + cast(TransitionID as nvarchar(10)) + ' ' + cast(ToID as nvarchar(10)) + '%' -else -'#Link:TransitionRange:' + cast(TranType as nvarchar(2)) + -' ' + cast(TransitionID as nvarchar(10)) + ' ' + cast(ToID as nvarchar(10)) + ' ' + cast(RangeID as nvarchar(10))+ '%' -end then 'matches' else 'different' end ContentMatchesTrans, -case when text like '%'+ -'#Link:TransitionRange:' + cast(TranType as nvarchar(2)) + -' ' + cast(TransitionID as nvarchar(10)) + ' ' + cast(ToID as nvarchar(10)) + ' ' + cast(RangeID as nvarchar(10))+ '%' -then 'matches' else 'different' end ContentMatchesRangeTrans -from Contents cc -join transitions tt on tt.fromid = cc.contentid) mm -where ContentMatchesTrans = 'different') mm -return @Count -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: ve_GetTransitionErrorCount Succeeded' -ELSE PRINT 'ScalarFunction Creation: ve_GetTransitionErrorCount Error on Creation' -GO - ---added by JCB for storing procedure xml for approved version ---ALTER TABLE Versions add ApprovedXML if it does not exist -IF COL_LENGTH('Versions','ApprovedXML') IS NULL - ALTER TABLE Versions ADD [ApprovedXML] [NVARCHAR](MAX) NULL; -GO - -/****** Object: StoredProcedure [addVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addVersion] - -( - @RevisionID int, - @StageID int, - @PDF varbinary(MAX)=null, - @SummaryPDF varbinary(MAX)=null, - @ApprovedXML nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(200), - @newVersionID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Versions] - ( - [RevisionID], - [StageID], - [PDF], - [SummaryPDF], - [ApprovedXML], - [DTS], - [UserID] - ) - VALUES - ( - @RevisionID, - @StageID, - @PDF, - @SummaryPDF, - @ApprovedXML, - @DTS, - @UserID - ) - SELECT @newVersionID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Versions] WHERE [VersionID]=@newVersionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addVersion Succeeded' -ELSE PRINT 'Procedure Creation: addVersion Error on Creation' -GO - -/****** Object: StoredProcedure [getVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersion] - -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [VersionID], - [RevisionID], - [StageID], - [PDF], - [SummaryPDF], - [ApprovedXML], - [DTS], - [UserID], - [LastChanged] - FROM [Versions] - WHERE [VersionID]=@VersionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersion Succeeded' -ELSE PRINT 'Procedure Creation: getVersion Error on Creation' -GO - -/****** Object: StoredProcedure [getVersions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersions] - -WITH EXECUTE AS OWNER -AS - SELECT - [VersionID], - [RevisionID], - [StageID], - [PDF], - [SummaryPDF], - [ApprovedXML], - [DTS], - [UserID], - [LastChanged] - FROM [Versions] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersions Succeeded' -ELSE PRINT 'Procedure Creation: getVersions Error on Creation' -GO - -/****** Object: StoredProcedure [getVersionsByRevisionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersionsByRevisionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersionsByRevisionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersionsByRevisionID] - -( - @RevisionID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Versions].[VersionID], - [Versions].[RevisionID], - [Versions].[StageID], - [Versions].[PDF], - [Versions].[SummaryPDF], - [Versions].[ApprovedXML], - [Versions].[DTS], - [Versions].[UserID], - [Versions].[LastChanged], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Versions] - JOIN [Stages] ON - [Stages].[StageID]=[Versions].[StageID] - WHERE - [Versions].[RevisionID]=@RevisionID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersionsByRevisionID Succeeded' -ELSE PRINT 'Procedure Creation: getVersionsByRevisionID Error on Creation' -GO - -/****** Object: StoredProcedure [getVersionsByStageID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersionsByStageID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersionsByStageID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersionsByStageID] - -( - @StageID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Versions].[VersionID], - [Versions].[RevisionID], - [Versions].[StageID], - [Versions].[PDF], - [Versions].[SummaryPDF], - [Versions].[ApprovedXML], - [Versions].[DTS], - [Versions].[UserID], - [Versions].[LastChanged], - [Revisions].[ItemID] [Revision_ItemID], - [Revisions].[TypeID] [Revision_TypeID], - [Revisions].[RevisionNumber] [Revision_RevisionNumber], - [Revisions].[RevisionDate] [Revision_RevisionDate], - [Revisions].[Notes] [Revision_Notes], - [Revisions].[Config] [Revision_Config], - [Revisions].[DTS] [Revision_DTS], - [Revisions].[UserID] [Revision_UserID] - FROM [Versions] - JOIN [Revisions] ON - [Revisions].[RevisionID]=[Versions].[RevisionID] - WHERE - [Versions].[StageID]=@StageID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersionsByStageID Succeeded' -ELSE PRINT 'Procedure Creation: getVersionsByStageID Error on Creation' -GO - -/****** Object: StoredProcedure [updateVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateVersion] - -( - @VersionID int, - @RevisionID int, - @StageID int, - @PDF varbinary(MAX)=null, - @SummaryPDF varbinary(MAX)=null, - @ApprovedXML nvarchar(MAX)=null, - @DTS datetime, - @UserID nvarchar(200), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Versions] - SET - [RevisionID]=@RevisionID, - [StageID]=@StageID, - [PDF]=@PDF, - [SummaryPDF]=@SummaryPDF, - [ApprovedXML]=@ApprovedXML, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [VersionID]=@VersionID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Versions] WHERE [VersionID]=@VersionID) - RAISERROR('Version record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Version has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Versions] WHERE [VersionID]=@VersionID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateVersion Succeeded' -ELSE PRINT 'Procedure Creation: updateVersion Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetDisconnectedItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetDisconnectedItems]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetDisconnectedItems] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - --- select * from vefn_GetDisconnectedItems() - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION [dbo].[vefn_GetDisconnectedItems]() -RETURNS @DiscItems TABLE -( - ItemID int primary Key, - ContentID int, - UNIQUE (ContentID) -) -WITH EXECUTE AS OWNER -AS -BEGIN - declare @UsedItems Table - ( itemid int primary key, contentid int) - insert into @UsedItems - Select ItemID, ContentID from vefn_GetVersionItems('') - insert into @DiscItems - select itemid,ii.contentid from ( - Select ItemID,ii.ContentID from Items II - where ItemID not in(select ItemID from @UsedItems)) ii - Join Contents CC ON CC.ContentID = II.ContentID - And CC.Type is not null - RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetDisconnectedItems] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetDisconnectedItems] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_TransitionsToDisconnected]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_TransitionsToDisconnected]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_TransitionsToDisconnected] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - --- select * from vefn_TransitionsToDisconnected('1') - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION dbo.vefn_TransitionsToDisconnected(@DocVersionList nvarchar(MAX)) -RETURNS @Transitions TABLE -( - [TransitionID] int primary key - ,[FromID] int - ,[ToID] int - ,[RangeID] int - ,[IsRange] int - ,[TranType] int - ,[Config] nvarchar(max) - ,[DTS] datetime - ,[UserID] nvarchar(100) - ,UNIQUE(FromID,TransitionID) - ,UNIQUE(ToID,TransitionID) -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @Transitions - select [TransitionID],[FromID],[ToID],[RangeID],[IsRange],[TranType],[Config],[DTS],[UserID] - from Transitions tt - join vefn_GetVersionItems(@DocVersionList) vi on tt.FromID = vi.ContentID - join vefn_GetDisconnectedItems() di on tt.ToID = di.ItemID - RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_TransitionsToDisconnected] Succeeded' -ELSE PRINT 'TableFunction [vefn_TransitionsToDisconnected] Error on Creation' -GO - -/****** Object: StoredProcedure [getTransitionsToDisconnected] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTransitionsToDisconnected]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTransitionsToDisconnected]; -GO - -/* -exec getTransitionsToDisconnected -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getTransitionsToDisconnected] -( - @DocVersionList nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - SELECT - TT.[TransitionID], - TT.[FromID], - TT.[ToID], - TT.[RangeID], - TT.[IsRange], - TT.[TranType], - TT.[Config], - TT.[DTS], - TT.[UserID], - TT.[LastChanged], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=TT.[TransitionID]) [ZTransitionCount] - from transitions tt - join vefn_TransitionsToDisconnected(@DocVersionList) td on tt.TransitionID = td.TransitionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTransitionsToDisconnected Succeeded' -ELSE PRINT 'Procedure Creation: getTransitionsToDisconnected Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetNonEditableItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetNonEditableItems]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetNonEditableItems] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - --- select * from vefn_GetNonEditableItems() - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION vefn_GetNonEditableItems() -RETURNS @NonEditItems TABLE -( - ItemID int primary Key, - ContentID int, - UNIQUE (ContentID) -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @NonEditItems - select ii.ItemID,ah.ContentID - from - ( - select cast(Config as xml) xconfig,ContentID from Contents where ContentID in - ( - select p1.ContentID from Parts p1 - join Parts p2 on p1.ContentID = p2.ContentID - where p1.FromType = 2 and p2.FromType = 6 - ) - and Config like '%edit%' - ) ah - cross apply xconfig.nodes('//SubSection') tSubsection(xSubsection) - join Items ii on ah.ContentID = ii.ContentID - where isnull(xSubsection.value('@Edit','varchar(1)'),'N') = 'N' - RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetNonEditableItems] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetNonEditableItems] Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_TransitionsToNonEditable]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_TransitionsToNonEditable]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_TransitionsToNonEditable] ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - --- select * from vefn_TransitionsToNonEditable('1') - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2013 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ - -CREATE FUNCTION dbo.vefn_TransitionsToNonEditable(@DocVersionList nvarchar(MAX)) -RETURNS @Transitions TABLE -( - [TransitionID] int primary key - ,[FromID] int - ,[ToID] int - ,[RangeID] int - ,[IsRange] int - ,[TranType] int - ,[Config] nvarchar(max) - ,[DTS] datetime - ,[UserID] nvarchar(100) - ,UNIQUE(FromID,TransitionID) - ,UNIQUE(ToID,TransitionID) -) -WITH EXECUTE AS OWNER -AS -BEGIN - insert into @Transitions - select [TransitionID],[FromID],[ToID],[RangeID],[IsRange],[TranType],[Config],[DTS],[UserID] - from Transitions tt - join vefn_GetVersionItems(@DocVersionList) vi on tt.FromID = vi.ContentID - join vefn_GetNonEditableItems() di on tt.ToID in (select ItemID from vefn_StepChildItems(di.ItemID)) - RETURN -END -GO -IF (@@Error = 0) PRINT 'TableFunction [vefn_TransitionsToNonEditable] Succeeded' -ELSE PRINT 'TableFunction [vefn_TransitionsToNonEditable] Error on Creation' -GO - -/****** Object: StoredProcedure [getTransitionsToNonEditable] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTransitionsToNonEditable]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTransitionsToNonEditable]; -GO - -/* -exec getTransitionsToNonEditable '8' -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getTransitionsToNonEditable] -( - @DocVersionList nvarchar(MAX) -) -WITH EXECUTE AS OWNER -AS - SELECT - TT.[TransitionID], - TT.[FromID], - TT.[ToID], - TT.[RangeID], - TT.[IsRange], - TT.[TranType], - TT.[Config], - TT.[DTS], - TT.[UserID], - TT.[LastChanged], - (SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=TT.[TransitionID]) [ZTransitionCount] - from transitions tt - join vefn_TransitionsToNonEditable(@DocVersionList) td on tt.TransitionID = td.TransitionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTransitionsToNonEditable Succeeded' -ELSE PRINT 'Procedure Creation: getTransitionsToNonEditable Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_StepChildItems] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_StepChildItems]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_StepChildItems]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_StepChildItems](@ItemID int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - ContentID int -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [ItemID], [ContentID]) as ( - Select 0 [Level], [ItemID], [ContentID] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1, I.[ItemID], I.[ContentID] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID and (Z.Level > 0 or p.FromType = 6) - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] , I.[ItemID], I.[ContentID] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children select ItemID, ContentID from Itemz -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_StepChildItems Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_StepChildItems Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getJustStage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [getJustStage]; -GO -/****** Object: StoredProcedure [dbo].[getJustStage] ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -Create PROCEDURE [dbo].[getJustStage] -( - @StageID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [StageID], - [Name], - [Description], - [IsApproved], - [DTS], - [UserID], - [LastChanged] - --(SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[RODbID]=[RODbs].[RODbID]) [DROUsageCount], - --(SELECT COUNT(*) FROM [ROFsts] WHERE [ROFsts].[RODbID]=[RODbs].[RODbID]) [ROFstCount], - --(SELECT COUNT(*) FROM [ROImages] WHERE [ROImages].[RODbID]=[RODbs].[RODbID]) [ROImageCount], - --(SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[RODbID]=[RODbs].[RODbID]) [RoUsageCount] - FROM [Stages] - WHERE [StageID]=@StageID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getJustStage Succeeded' -ELSE PRINT 'Procedure Creation: getJustStage Error on Creation' -GO \ No newline at end of file diff --git a/PROMS/DataLoader/PROMStoAPPR.sql b/PROMS/DataLoader/PROMStoAPPR.sql deleted file mode 100644 index 34ce8a68..00000000 --- a/PROMS/DataLoader/PROMStoAPPR.sql +++ /dev/null @@ -1,3372 +0,0 @@ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[Checks]') AND OBJECTPROPERTY(id,N'IsTable') = 1) -ALTER TABLE [dbo].[Checks] DROP CONSTRAINT [FK_Checks_Revisions] -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[Versions]') AND OBJECTPROPERTY(id,N'IsTable') = 1) -ALTER TABLE [dbo].[Versions] DROP CONSTRAINT [FK_Versions_Stages] -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[Versions]') AND OBJECTPROPERTY(id,N'IsTable') = 1) -ALTER TABLE [dbo].[Versions] DROP CONSTRAINT [FK_Versions_Revisions] -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[Checks]') AND OBJECTPROPERTY(id,N'IsTable') = 1) -ALTER TABLE [dbo].[Checks] DROP CONSTRAINT [FK_Checks_Stages] -GO - -/****** Object: Table [dbo].[Stages] Script Date: 10/21/2011 15:04:48 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[Stages]') AND OBJECTPROPERTY(id,N'IsTable') = 1) - DROP TABLE [Stages]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE TABLE [dbo].[Stages]( - [StageID] [int] IDENTITY(1,1) NOT NULL, - [Name] [nvarchar](50) NOT NULL, - [Description] [nvarchar](200) NULL, - [IsApproved] [int] NOT NULL CONSTRAINT [DF_Stages_IsApproved] DEFAULT ((0)), - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Stages_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) NOT NULL CONSTRAINT [DF_Stages_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Stages] PRIMARY KEY CLUSTERED -( - [StageID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] - -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Stages', @level2type=N'COLUMN',@level2name=N'DTS' - --- Display the status of Table creation -IF (@@Error = 0) PRINT 'Table Creation: Stages Succeeded' -ELSE PRINT 'Table Creation: Stages Error on Creation' -GO - -/****** Object: Table [dbo].[Revisions] Script Date: 10/21/2011 15:06:44 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[Revisions]') AND OBJECTPROPERTY(id,N'IsTable') = 1) - DROP TABLE [Revisions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE TABLE [dbo].[Revisions]( - [RevisionID] [int] IDENTITY(1,1) NOT NULL, - [ItemID] [int] NOT NULL, - [TypeID] [int] NOT NULL CONSTRAINT [DF_Revisions_TypeID] DEFAULT ((1)), - [RevisionNumber] [nvarchar](50) NULL, - [RevisionDate] [datetime] NULL, - [Notes] [nvarchar](max) NULL, - [Config] [xml] NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Revisions_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) NOT NULL CONSTRAINT [DF_Revisions_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Revisions] PRIMARY KEY CLUSTERED -( - [RevisionID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Revisions', @level2type=N'COLUMN',@level2name=N'RevisionDate' -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Revisions', @level2type=N'COLUMN',@level2name=N'DTS' -GO - --- Display the status of Table creation -IF (@@Error = 0) PRINT 'Table Creation: Revisions Succeeded' -ELSE PRINT 'Table Creation: Revisions Error on Creation' -GO - -/****** Object: Table [dbo].[Checks] Script Date: 10/21/2011 15:07:45 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[Checks]') AND OBJECTPROPERTY(id,N'IsTable') = 1) - DROP TABLE [Checks]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE TABLE [dbo].[Checks]( - [CheckID] [int] IDENTITY(1,1) NOT NULL, - [RevisionID] [int] NOT NULL, - [StageID] [int] NOT NULL, - [ConsistencyChecks] [xml] NULL, - [DTS] [datetime] NOT NULL CONSTRAINT [DF_Checks_DTS] DEFAULT (getdate()), - [UserID] [nvarchar](100) NOT NULL CONSTRAINT [DF_Checks_UserID] DEFAULT (upper(suser_sname())), - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Checks] PRIMARY KEY CLUSTERED -( - [CheckID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Checks', @level2type=N'COLUMN',@level2name=N'DTS' -GO - -ALTER TABLE [dbo].[Checks] WITH CHECK ADD CONSTRAINT [FK_Checks_Revisions] FOREIGN KEY([RevisionID]) -REFERENCES [dbo].[Revisions] ([RevisionID]) -GO -ALTER TABLE [dbo].[Checks] CHECK CONSTRAINT [FK_Checks_Revisions] -GO -ALTER TABLE [dbo].[Checks] WITH CHECK ADD CONSTRAINT [FK_Checks_Stages] FOREIGN KEY([StageID]) -REFERENCES [dbo].[Stages] ([StageID]) -GO -ALTER TABLE [dbo].[Checks] CHECK CONSTRAINT [FK_Checks_Stages] - --- Display the status of Table creation -IF (@@Error = 0) PRINT 'Table Creation: Checks Succeeded' -ELSE PRINT 'Table Creation: Checks Error on Creation' -GO - -/****** Object: Table [dbo].[Versions] Script Date: 10/21/2011 15:09:15 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -SET ANSI_PADDING ON -GO -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[Versions]') AND OBJECTPROPERTY(id,N'IsTable') = 1) - DROP TABLE [Versions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE TABLE [dbo].[Versions]( - [VersionID] [int] IDENTITY(1,1) NOT NULL, - [RevisionID] [int] NOT NULL, - [StageID] [int] NOT NULL, - [PDF] [varbinary](max) NULL, - [SummaryPDF] [varbinary](max) NULL, - [DTS] [datetime] NOT NULL, - [UserID] [nvarchar](200) NOT NULL, - [LastChanged] [timestamp] NOT NULL, - CONSTRAINT [PK_Version] PRIMARY KEY CLUSTERED -( - [VersionID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -) ON [PRIMARY] -GO -SET ANSI_PADDING OFF -GO -EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'{datetime}' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Versions', @level2type=N'COLUMN',@level2name=N'DTS' -GO - -ALTER TABLE [dbo].[Versions] WITH CHECK ADD CONSTRAINT [FK_Versions_Revisions] FOREIGN KEY([RevisionID]) -REFERENCES [dbo].[Revisions] ([RevisionID]) -GO -ALTER TABLE [dbo].[Versions] CHECK CONSTRAINT [FK_Versions_Revisions] -GO -ALTER TABLE [dbo].[Versions] WITH CHECK ADD CONSTRAINT [FK_Versions_Stages] FOREIGN KEY([StageID]) -REFERENCES [dbo].[Stages] ([StageID]) -GO -ALTER TABLE [dbo].[Versions] CHECK CONSTRAINT [FK_Versions_Stages] - --- Display the status of Table creation -IF (@@Error = 0) PRINT 'Table Creation: Versions Succeeded' -ELSE PRINT 'Table Creation: Versions Error on Creation' -GO - - ---put in stage data -INSERT INTO [dbo].[Stages] ([Name],[Description],[IsApproved],[DTS],[UserID]) VALUES ('Input to review','',0,getdate(),'VOLIAN\BODINE') -GO -INSERT INTO [dbo].[Stages] ([Name],[Description],[IsApproved],[DTS],[UserID]) VALUES ('Initial review','',0,getdate(),'VOLIAN\BODINE') -GO -INSERT INTO [dbo].[Stages] ([Name],[Description],[IsApproved],[DTS],[UserID]) VALUES ('Final review','',0,getdate(),'VOLIAN\BODINE') -GO -INSERT INTO [dbo].[Stages] ([Name],[Description],[IsApproved],[DTS],[UserID]) VALUES ('Verification','',0,getdate(),'VOLIAN\BODINE') -GO -INSERT INTO [dbo].[Stages] ([Name],[Description],[IsApproved],[DTS],[UserID]) VALUES ('Validation','',0,getdate(),'VOLIAN\BODINE') -GO -INSERT INTO [dbo].[Stages] ([Name],[Description],[IsApproved],[DTS],[UserID]) VALUES ('Issued','',1,getdate(),'VOLIAN\BODINE') -GO -INSERT INTO [dbo].[Stages] ([Name],[Description],[IsApproved],[DTS],[UserID]) VALUES ('Published','',1,getdate(),'VOLIAN\BODINE') -GO -INSERT INTO [dbo].[Stages] ([Name],[Description],[IsApproved],[DTS],[UserID]) VALUES ('Approved','',1,getdate(),'VOLIAN\BODINE') -GO ---end put in stage data - -/****** Object: StoredProcedure [addCheck] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addCheck]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addCheck]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addCheck] - -( - @RevisionID int, - @StageID int, - @ConsistencyChecks xml=null, - @DTS datetime, - @UserID nvarchar(100), - @newCheckID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Checks] - ( - [RevisionID], - [StageID], - [ConsistencyChecks], - [DTS], - [UserID] - ) - VALUES - ( - @RevisionID, - @StageID, - @ConsistencyChecks, - @DTS, - @UserID - ) - SELECT @newCheckID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Checks] WHERE [CheckID]=@newCheckID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addCheck Succeeded' -ELSE PRINT 'Procedure Creation: addCheck Error on Creation' -GO - -/****** Object: StoredProcedure [addRevision] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addRevision]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addRevision]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addRevision] - -( - @ItemID int, - @TypeID int, - @RevisionNumber nvarchar(50)=null, - @RevisionDate datetime=null, - @Notes nvarchar(MAX)=null, - @Config xml=null, - @DTS datetime, - @UserID nvarchar(100), - @newRevisionID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Revisions] - ( - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID] - ) - VALUES - ( - @ItemID, - @TypeID, - @RevisionNumber, - @RevisionDate, - @Notes, - @Config, - @DTS, - @UserID - ) - SELECT @newRevisionID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Revisions] WHERE [RevisionID]=@newRevisionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addRevision Succeeded' -ELSE PRINT 'Procedure Creation: addRevision Error on Creation' -GO - -/****** Object: StoredProcedure [addStage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addStage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addStage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addStage] - -( - @Name nvarchar(50), - @Description nvarchar(200)=null, - @IsApproved int, - @DTS datetime, - @UserID nvarchar(100), - @newStageID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Stages] - ( - [Name], - [Description], - [IsApproved], - [DTS], - [UserID] - ) - VALUES - ( - @Name, - @Description, - @IsApproved, - @DTS, - @UserID - ) - SELECT @newStageID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Stages] WHERE [StageID]=@newStageID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addStage Succeeded' -ELSE PRINT 'Procedure Creation: addStage Error on Creation' -GO - -/****** Object: StoredProcedure [addVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[addVersion] - -( - @RevisionID int, - @StageID int, - @PDF varbinary(MAX)=null, - @SummaryPDF varbinary(MAX)=null, - @DTS datetime, - @UserID nvarchar(200), - @newVersionID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Versions] - ( - [RevisionID], - [StageID], - [PDF], - [SummaryPDF], - [DTS], - [UserID] - ) - VALUES - ( - @RevisionID, - @StageID, - @PDF, - @SummaryPDF, - @DTS, - @UserID - ) - SELECT @newVersionID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Versions] WHERE [VersionID]=@newVersionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addVersion Succeeded' -ELSE PRINT 'Procedure Creation: addVersion Error on Creation' -GO - -/****** Object: StoredProcedure [deleteCheck] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteCheck]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteCheck]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteCheck] - -( - @CheckID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Checks] - WHERE [CheckID] = @CheckID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteCheck Succeeded' -ELSE PRINT 'Procedure Creation: deleteCheck Error on Creation' -GO - -/****** Object: StoredProcedure [deleteRevision] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteRevision]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteRevision]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteRevision] - -( - @RevisionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Checks] - WHERE [RevisionID]=@RevisionID - DELETE [Versions] - WHERE [RevisionID]=@RevisionID - DELETE [Revisions] - WHERE [RevisionID] = @RevisionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteRevision Succeeded' -ELSE PRINT 'Procedure Creation: deleteRevision Error on Creation' -GO - -/****** Object: StoredProcedure [deleteStage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteStage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteStage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteStage] - -( - @StageID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Checks] - WHERE [StageID]=@StageID - DELETE [Versions] - WHERE [StageID]=@StageID - DELETE [Stages] - WHERE [StageID] = @StageID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteStage Succeeded' -ELSE PRINT 'Procedure Creation: deleteStage Error on Creation' -GO - -/****** Object: StoredProcedure [deleteVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteVersion] - -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Versions] - WHERE [VersionID] = @VersionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteVersion Succeeded' -ELSE PRINT 'Procedure Creation: deleteVersion Error on Creation' -GO - -/****** Object: StoredProcedure [existsCheck] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsCheck]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsCheck]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsCheck] - -( - @CheckID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Checks] WHERE [CheckID]=@CheckID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsCheck Succeeded' -ELSE PRINT 'Procedure Creation: existsCheck Error on Creation' -GO - -/****** Object: StoredProcedure [existsRevision] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsRevision]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsRevision]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsRevision] - -( - @RevisionID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Revisions] WHERE [RevisionID]=@RevisionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsRevision Succeeded' -ELSE PRINT 'Procedure Creation: existsRevision Error on Creation' -GO - -/****** Object: StoredProcedure [existsStage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsStage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsStage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsStage] - -( - @StageID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Stages] WHERE [StageID]=@StageID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsStage Succeeded' -ELSE PRINT 'Procedure Creation: existsStage Error on Creation' -GO - -/****** Object: StoredProcedure [existsVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[existsVersion] - -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Versions] WHERE [VersionID]=@VersionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsVersion Succeeded' -ELSE PRINT 'Procedure Creation: existsVersion Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotationAuditsChronologyByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationAuditsChronologyByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationAuditsChronologyByItemID]; -GO - -/****** Object: StoredProcedure [getAnnotationAuditsChronologyByItemID] ******/ -/* -getAnnotationAuditsChronologyByItemID 3,1230 -getAnnotationAuditsChronologyByItemID 30,8570 -getAnnotationAuditsChronologyByItemID 30,8513 -getAnnotationAuditsChronologyByItemID 30,8505 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE procedure [dbo].[getAnnotationAuditsChronologyByItemID] -( - @ProcItemID int, - @ItemID int, - @DTS datetime -) -WITH EXECUTE AS OWNER -AS -begin --- declare @dts datetime --- set @dts = (select dts from items where itemid = @procitemid) - declare @tci table - ( - ItemID int, - IContentID int, - IDeleteStatus int, - ProcDTS datetime, - Path nvarchar(max), - OrdinalPath nvarchar(max) - ) - insert into @tci - select * from vefn_tblchilditems(@ProcItemID,@ItemID,0) - select - case - when lastauditid is null and dts > itemdts then 'Added' - when deletestatus > 0 then 'Deleted' - when lastauditid = deletedauditid then 'Restored' - else 'Changed' - end ActionWhat - ,case - when lastauditid is null and dts > itemdts then dts - when deletestatus > 0 then ActionDTS - when lastauditid = deletedauditid then ActionDTS - else dts - end ActionWhen - ,* - from - ( - select - cast(ident_current('annotationaudits') + 1 as bigint) auditid - -- (select max(auditid) + 1 from annotationaudits) auditid - -- 0 auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,0 deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from tblannotations aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - where aa.deletestatus = 0 - union - select - aa.auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,aa.deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid ) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from annotationaudits aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - ) ah - where itemid in (select itemid from @tci) - and dts > @dts - --(select dts from versions where versionid = (select max(versionid) from revisions rr inner join versions vv on rr.revisionid = vv.revisionid - --inner join stages ss on vv.stageid = ss.stageid where itemid = @procitemid and ss.isapproved = 1)) - order by ordinalpath,annotationid,auditid--actionwhen -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationAuditsChronologyByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationAuditsChronologyByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getCheck] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getCheck]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getCheck]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getCheck] - -( - @CheckID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [CheckID], - [RevisionID], - [StageID], - [ConsistencyChecks], - [DTS], - [UserID], - [LastChanged] - FROM [Checks] - WHERE [CheckID]=@CheckID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getCheck Succeeded' -ELSE PRINT 'Procedure Creation: getCheck Error on Creation' -GO - -/****** Object: StoredProcedure [getChecks] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getChecks]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getChecks]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getChecks] - -WITH EXECUTE AS OWNER -AS - SELECT - [CheckID], - [RevisionID], - [StageID], - [ConsistencyChecks], - [DTS], - [UserID], - [LastChanged] - FROM [Checks] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getChecks Succeeded' -ELSE PRINT 'Procedure Creation: getChecks Error on Creation' -GO - -/****** Object: StoredProcedure [getChecksByRevisionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getChecksByRevisionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getChecksByRevisionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getChecksByRevisionID] - -( - @RevisionID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Checks].[CheckID], - [Checks].[RevisionID], - [Checks].[StageID], - [Checks].[ConsistencyChecks], - [Checks].[DTS], - [Checks].[UserID], - [Checks].[LastChanged], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Checks] - JOIN [Stages] ON - [Stages].[StageID]=[Checks].[StageID] - WHERE - [Checks].[RevisionID]=@RevisionID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getChecksByRevisionID Succeeded' -ELSE PRINT 'Procedure Creation: getChecksByRevisionID Error on Creation' -GO - -/****** Object: StoredProcedure [getChecksByStageID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getChecksByStageID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getChecksByStageID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getChecksByStageID] - -( - @StageID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Checks].[CheckID], - [Checks].[RevisionID], - [Checks].[StageID], - [Checks].[ConsistencyChecks], - [Checks].[DTS], - [Checks].[UserID], - [Checks].[LastChanged], - [Revisions].[ItemID] [Revision_ItemID], - [Revisions].[TypeID] [Revision_TypeID], - [Revisions].[RevisionNumber] [Revision_RevisionNumber], - [Revisions].[RevisionDate] [Revision_RevisionDate], - [Revisions].[Notes] [Revision_Notes], - [Revisions].[Config] [Revision_Config], - [Revisions].[DTS] [Revision_DTS], - [Revisions].[UserID] [Revision_UserID] - FROM [Checks] - JOIN [Revisions] ON - [Revisions].[RevisionID]=[Checks].[RevisionID] - WHERE - [Checks].[StageID]=@StageID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getChecksByStageID Succeeded' -ELSE PRINT 'Procedure Creation: getChecksByStageID Error on Creation' -GO - -/****** Object: StoredProcedure [getContentAuditsByContentIDandDTS] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsByContentIDandDTS]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsByContentIDandDTS]; -GO - -/* -declare @dts datetime -set @dts = (select dts from items where itemid = 41) -print @dts -exec .dbo.getContentAuditsByContentIDandDTS 9701,@dts -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsByContentIDandDTS] -( - @ContentID int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -declare @audits table -( - [AuditID] [bigint], - [ContentID] [int], - [Number] [nvarchar](512), - [Text] [nvarchar](max), - [Type] [int], - [FormatID] [int], - [Config] [nvarchar](max), - [DTS] [datetime], - [UserID] [nvarchar](200), - [DeleteStatus] [int], - [ActionWhat] [nvarchar](max) -) -insert into @audits - SELECT - [AuditID], - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [DeleteStatus], - case when auditid = (select min(auditid) from contentaudits where contentid = @ContentID) then 'Original' - when deletestatus > 0 then 'Deleted' - else 'Changed' end ActionWhat - FROM [ContentAudits] - WHERE ContentID = @ContentID -and DTS > @DTS -insert into @audits - SELECT - [AuditID], - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [DeleteStatus], -'Original' ActionWhat --- case when auditid = (select min(auditid) from contentaudits where contentid = @ContentID) then 'Original' --- when deletestatus > 0 then 'Deleted' --- else 'Changed' end ActionWhat - FROM [ContentAudits] - WHERE ContentID = @ContentID -and auditid = (select max(auditid) from contentaudits where contentid = @contentid and auditid not in (select auditid from @audits)) -and number is not null -select * from @audits - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsByContentIDandDTS Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsByContentIDandDTS Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetMyChronology]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetMyChronology]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetMyChronology] Script Date: 11/07/2012 18:09:17 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetMyChronology](@ProcItemID int, @ItemID int, @IncludeDeletedChildren int, @DTS datetime) -RETURNS @Chrono TABLE -( -[AuditID] bigint, -[ContentID] int, -[Number] nvarchar(max), -[Text] nvarchar(max), -[Type] int, -[FormatID] int, -[Config] nvarchar(max), -[DTS] datetime, -[UserID] nvarchar(max), -[DeleteStatus] int, -[ActionDTS] datetime, -[ActionWhat] nvarchar(max), -[ActionWhen] datetime, -[Path] nvarchar(max), -ItemID int, -TypeName nvarchar(max), -ordinalpath nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -insert into @Chrono -select distinct [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath - from - ( - select - case - when lastauditid is null then 'Added' - when r.deletestatus > 0 then 'Deleted' - when lastauditid = -1 then 'Changed' - when DeletedAuditID is not null then 'Restored' --- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' - else 'Changed' - end actionwhat -,actiondts actionwhen --- ,case --- when lastauditid is null then dts --- when r.deletestatus > 0 then ActionDTS --- when lastauditid = -1 then dts --- when DeletedAuditID is not null then ActionDTS --- else dts --- end actionwhen -,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName - ,* - from vefn_tblchilditems (@ProcItemID,@ItemID,@IncludeDeletedChildren) t - inner join vefn_chronologyreport(@ProcItemID,@DTS) r - on t.icontentid = r.contentid --- where ActionDTS > procdts or dts > procdts - ) ah - order by OrdinalPath, contentid,auditid--actionwhen - RETURN -END -go -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetMyChronology] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetMyChronology] Error on Creation' -go - -/****** Object: StoredProcedure [getContentAuditsChronologyByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsChronologyByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsChronologyByItemID]; -GO - -/****** Object: StoredProcedure [getContentAuditsChronologyByItemID] ******/ -/* -getContentAuditsChronologyByItemID 146,146,0 -getContentAuditsChronologyByItemID 42,42,0 -getContentAuditsChronologyByItemID 9,9,0 -getContentAuditsChronologyByItemID 146,146,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsChronologyByItemID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin - select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) --- select distinct [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsChronologyByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsChronologyByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getContentAuditsSummaryByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsSummaryByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsSummaryByItemID]; -GO - -/****** Object: StoredProcedure [getContentAuditsSummaryByItemID] ******/ -/* -getContentAuditsSummaryByItemID 146,146,0 -getContentAuditsSummaryByItemID 42,42,0 -getContentAuditsSummaryByItemID 9,9,0 -getContentAuditsSummaryByItemID 146,146,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsSummaryByItemID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin -DECLARE @Chrono TABLE -( -[AuditID] bigint, -[ContentID] int, -[Number] nvarchar(max), -[Text] nvarchar(max), -[Type] int, -[FormatID] int, -[Config] nvarchar(max), -[DTS] datetime, -[UserID] nvarchar(max), -[DeleteStatus] int, -[ActionDTS] datetime, -[ActionWhat] nvarchar(max), -[ActionWhen] datetime, -[Path] nvarchar(max), -ItemID int, -TypeName nvarchar(max), -ordinalpath nvarchar(max) -) -insert into @Chrono -select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) -select * from @Chrono -where AuditID is null OR AuditID in (select min(auditID) from @Chrono group by contentid UNION select max(auditID) from @Chrono group by contentid) -order by OrdinalPath, contentid,auditid ---select z.* from ---( ---select contentid,min(auditid) auditid from ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) x ---group by contentid ---) y ---inner join ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) z on y.contentid = z.contentid and y.auditid = z.auditid ---union ---select z.* from ---( ---select contentid,max(auditid) auditid from ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) x ---group by contentid ---) y ---inner join ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) z on y.contentid = z.contentid and y.auditid = z.auditid --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsSummaryByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsSummaryByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getCurrentRevisionByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getCurrentRevisionByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getCurrentRevisionByItemID]; -GO - -/* -getCurrentRevisionByItemID 41 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create PROCEDURE [dbo].[getCurrentRevisionByItemID] -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [Revisions].[RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] -inner join -( -select top 1 revisionid,mxvid from -( -select rr.revisionid,max(vv.versionid) mxvid -from items ii -inner join revisions rr on ii.itemid = rr.itemid -inner join versions vv on rr.revisionid = vv.revisionid -inner join stages ss on vv.stageid = ss.stageid -where ss.isapproved = 1 -and ii.itemid = @ItemID -group by rr.revisionid -union -select null,null -) ds -order by mxvid desc -) rr on [Revisions].revisionid = rr.revisionid --- WHERE [ItemID] = @ItemID --- ORDER BY [RevisionID] DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getCurrentRevisionByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getCurrentRevisionByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getLibDocsForProc] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getLibDocsForProc]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getLibDocsForProc]; -GO - -/* -getLibDocsForProc 10 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getLibDocsForProc] -( - @ItemID int -) - -WITH EXECUTE AS OWNER -AS -SELECT dd.[DocID] - ,[LibTitle] - ,[DocContent] - ,[DocAscii] - ,[Config] - ,dd.[DTS] - ,dd.[UserID] - ,dd.[LastChanged] - ,[FileExtension], - (SELECT COUNT(*) FROM [DROUsages] WHERE [DROUsages].[DocID]=[dd].[DocID]) [DROUsageCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[DocID]=[dd].[DocID]) [EntryCount], - (SELECT COUNT(*) FROM [Pdfs] WHERE [Pdfs].[DocID]=[dd].[DocID]) [PdfCount] - - FROM [Documents] dd - INNER JOIN [Entries] ee on dd.docid = ee.docid - INNER JOIN vefn_ChildItems(@ItemID) cc on cc.contentid = ee.contentid - RETURN - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getLibDocsForProc Succeeded' -ELSE PRINT 'Procedure Creation: getLibDocsForProc Error on Creation' -GO - -/****** Object: StoredProcedure [getPreviousRevisionByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPreviousRevisionByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPreviousRevisionByItemID]; -GO - -/* -getPreviousRevisionByItemID(41) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create PROCEDURE [dbo].[getPreviousRevisionByItemID] -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [Revisions].[RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] -inner join -( -select top 1 revisionid,mxvid from -( -select top 2 revisionid,mxvid from -( -select rr.revisionid,max(vv.versionid) mxvid -from items ii -inner join revisions rr on ii.itemid = rr.itemid -inner join versions vv on rr.revisionid = vv.revisionid -inner join stages ss on vv.stageid = ss.stageid -where ss.isapproved = 1 -and ii.itemid = @ItemID -group by rr.revisionid -union -select null,null -) ds -order by mxvid desc -) ah -order by revisionid -) rr on [Revisions].revisionid = rr.revisionid --- WHERE [ItemID] = @ItemID --- ORDER BY [RevisionID] DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPreviousRevisionByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getPreviousRevisionByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getRevision] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRevision]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRevision]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRevision] - -( - @RevisionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] - WHERE [RevisionID]=@RevisionID - - SELECT - [Checks].[CheckID], - [Checks].[RevisionID], - [Checks].[StageID], - [Checks].[ConsistencyChecks], - [Checks].[DTS], - [Checks].[UserID], - [Checks].[LastChanged], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Checks] - JOIN [Stages] ON - [Stages].[StageID]=[Checks].[StageID] - WHERE - [Checks].[RevisionID]=@RevisionID - - - SELECT - [Versions].[VersionID], - [Versions].[RevisionID], - [Versions].[StageID], - [Versions].[PDF], - [Versions].[SummaryPDF], - [Versions].[DTS], - [Versions].[UserID], - [Versions].[LastChanged], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Versions] - JOIN [Stages] ON - [Stages].[StageID]=[Versions].[StageID] - WHERE - [Versions].[RevisionID]=@RevisionID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRevision Succeeded' -ELSE PRINT 'Procedure Creation: getRevision Error on Creation' -GO - -/****** Object: StoredProcedure [getRevisionByItemIDandRevisionNumber] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRevisionByItemIDandRevisionNumber]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRevisionByItemIDandRevisionNumber]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRevisionByItemIDandRevisionNumber] - -( - @ItemID int, - @RevisionNumber nvarchar(50) -) -WITH EXECUTE AS OWNER -AS -declare @RevisionID int -set @RevisionID = (select revisionid from revisions where itemid = @itemid and revisionnumber = @RevisionNumber) - SELECT - [RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] - WHERE [RevisionID]=@RevisionID - - SELECT - [Checks].[CheckID], - [Checks].[RevisionID], - [Checks].[StageID], - [Checks].[ConsistencyChecks], - [Checks].[DTS], - [Checks].[UserID], - [Checks].[LastChanged], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Checks] - JOIN [Stages] ON - [Stages].[StageID]=[Checks].[StageID] - WHERE - [Checks].[RevisionID]=@RevisionID - - - SELECT - [Versions].[VersionID], - [Versions].[RevisionID], - [Versions].[StageID], - [Versions].[DTS], - [Versions].[UserID], - [Versions].[LastChanged], - [Versions].[PDF], - [Versions].[SummaryPDF], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Versions] - JOIN [Stages] ON - [Stages].[StageID]=[Versions].[StageID] - WHERE - [Versions].[RevisionID]=@RevisionID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber Succeeded' -ELSE PRINT 'Procedure Creation: getRevisionByItemIDandRevisionNumber Error on Creation' -GO - -/****** Object: StoredProcedure [getRevisions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRevisions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRevisions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRevisions] - -WITH EXECUTE AS OWNER -AS - SELECT - [RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRevisions Succeeded' -ELSE PRINT 'Procedure Creation: getRevisions Error on Creation' -GO - -/****** Object: StoredProcedure [getRevisionsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRevisionsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRevisionsByItemID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getRevisionsByItemID] -( - @ItemID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [RevisionID], - [ItemID], - [TypeID], - [RevisionNumber], - [RevisionDate], - [Notes], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[RevisionID]=[Revisions].[RevisionID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[RevisionID]=[Revisions].[RevisionID]) [VersionCount] - FROM [Revisions] - WHERE [ItemID] = @ItemID - ORDER BY [RevisionID] DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRevisionsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getRevisionsByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getRoUsagesForProc] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getRoUsagesForProc]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getRoUsagesForProc]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create PROCEDURE [dbo].[getRoUsagesForProc] -( - @ItemID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [ROUsageID], - rr.[ContentID], - [ROID], - [Config], - [DTS], - [UserID], - [LastChanged], - [RODbID] - FROM [RoUsages] rr - INNER JOIN vefn_ChildItems(@ItemID) cc on cc.contentid = rr.contentid - RETURN - -/****** Object: UserDefinedFunction [dbo].[vefn_CheckXML] Script Date: 10/25/2011 18:36:53 ******/ -SET ANSI_NULLS ON -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getRoUsagesForProc Succeeded' -ELSE PRINT 'Procedure Creation: getRoUsagesForProc Error on Creation' -GO - -/****** Object: StoredProcedure [getRoUsagesForProc] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDROUsagesForProc]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDROUsagesForProc]; -GO - ---[dbo].[getDROUsagesForProc] 2 -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDROUsagesForProc] -( - @ItemID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [DROUsageID], - rr.[DocID], - [ROID], - [Config], - rr.[DTS], - rr.[UserID], - rr.[LastChanged], - [RODbID] - FROM [DROUsages] rr - INNER JOIN Entries ee on rr.docid = ee.docid - INNER JOIN vefn_ChildItems(@ItemID) cc on cc.contentid = ee.contentid - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDROUsagesForProc Succeeded' -ELSE PRINT 'Procedure Creation: getDROUsagesForProc Error on Creation' -GO - -/****** Object: StoredProcedure [getStage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getStage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getStage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getStage] - -( - @StageID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [StageID], - [Name], - [Description], - [IsApproved], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[StageID]=[Stages].[StageID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[StageID]=[Stages].[StageID]) [VersionCount] - FROM [Stages] - WHERE [StageID]=@StageID - - SELECT - [Checks].[CheckID], - [Checks].[RevisionID], - [Checks].[StageID], - [Checks].[ConsistencyChecks], - [Checks].[DTS], - [Checks].[UserID], - [Checks].[LastChanged], - [Revisions].[ItemID] [Revision_ItemID], - [Revisions].[TypeID] [Revision_TypeID], - [Revisions].[RevisionNumber] [Revision_RevisionNumber], - [Revisions].[RevisionDate] [Revision_RevisionDate], - [Revisions].[Notes] [Revision_Notes], - [Revisions].[Config] [Revision_Config], - [Revisions].[DTS] [Revision_DTS], - [Revisions].[UserID] [Revision_UserID] - FROM [Checks] - JOIN [Revisions] ON - [Revisions].[RevisionID]=[Checks].[RevisionID] - WHERE - [Checks].[StageID]=@StageID - - - SELECT - [Versions].[VersionID], - [Versions].[RevisionID], - [Versions].[StageID], - [Versions].[PDF], - [Versions].[SummaryPDF], - [Versions].[DTS], - [Versions].[UserID], - [Versions].[LastChanged], - [Revisions].[ItemID] [Revision_ItemID], - [Revisions].[TypeID] [Revision_TypeID], - [Revisions].[RevisionNumber] [Revision_RevisionNumber], - [Revisions].[RevisionDate] [Revision_RevisionDate], - [Revisions].[Notes] [Revision_Notes], - [Revisions].[Config] [Revision_Config], - [Revisions].[DTS] [Revision_DTS], - [Revisions].[UserID] [Revision_UserID] - FROM [Versions] - JOIN [Revisions] ON - [Revisions].[RevisionID]=[Versions].[RevisionID] - WHERE - [Versions].[StageID]=@StageID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getStage Succeeded' -ELSE PRINT 'Procedure Creation: getStage Error on Creation' -GO - -/****** Object: StoredProcedure [getStages] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getStages]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getStages]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getStages] - -WITH EXECUTE AS OWNER -AS - SELECT - [StageID], - [Name], - [Description], - [IsApproved], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Checks] WHERE [Checks].[StageID]=[Stages].[StageID]) [CheckCount], - (SELECT COUNT(*) FROM [Versions] WHERE [Versions].[StageID]=[Stages].[StageID]) [VersionCount] - FROM [Stages] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getStages Succeeded' -ELSE PRINT 'Procedure Creation: getStages Error on Creation' -GO - -/****** Object: StoredProcedure [getTransitionsFromProc] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTransitionsFromProc]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTransitionsFromProc]; -GO - -/* -getTransitionsFromProc 10 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create PROCEDURE [dbo].[getTransitionsFromProc] -( - @ItemID int -) - -WITH EXECUTE AS OWNER -AS -SELECT tt.[TransitionID] - ,[FromID] - ,[ToID] - ,[RangeID] - ,[IsRange] - ,[TranType] - ,tt.[Config] - ,tt.[DTS] - ,tt.[UserID] - ,tt.[LastChanged] - ,(SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=[tt].[TransitionID]) [ZTransitionCount] -,cc.text ContentText - FROM [Transitions] tt -inner join contents cc on tt.fromid = cc.contentid - WHERE transitionid in (select transitionid from vefn_FindExternalFromTransitions(@ItemID)) - RETURN - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTransitionsFromProc Succeeded' -ELSE PRINT 'Procedure Creation: getTransitionsFromProc Error on Creation' -GO - -/****** Object: StoredProcedure [getTransitionsToProc] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getTransitionsToProc]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getTransitionsToProc]; -GO - -/* -getTransitionsToProc 10 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getTransitionsToProc] -( - @ItemID int -) - -WITH EXECUTE AS OWNER -AS -SELECT tt.[TransitionID] - ,[FromID] - ,[ToID] - ,[RangeID] - ,[IsRange] - ,[TranType] - ,tt.[Config] - ,tt.[DTS] - ,tt.[UserID] - ,tt.[LastChanged] - ,(SELECT COUNT(*) FROM [ZTransitions] WHERE [ZTransitions].[TransitionID]=[tt].[TransitionID]) [ZTransitionCount] -,cc.text ContentText - FROM [Transitions] tt -inner join contents cc on tt.fromid = cc.contentid - WHERE transitionid in (select transitionid from vefn_FindExternalTransitions(@ItemID)) - RETURN - -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getTransitionsToProc Succeeded' -ELSE PRINT 'Procedure Creation: getTransitionsToProc Error on Creation' -GO - -/****** Object: StoredProcedure [getVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersion] - -( - @VersionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [VersionID], - [RevisionID], - [StageID], - [PDF], - [SummaryPDF], - [DTS], - [UserID], - [LastChanged] - FROM [Versions] - WHERE [VersionID]=@VersionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersion Succeeded' -ELSE PRINT 'Procedure Creation: getVersion Error on Creation' -GO - -/****** Object: StoredProcedure [getVersions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersions]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersions] - -WITH EXECUTE AS OWNER -AS - SELECT - [VersionID], - [RevisionID], - [StageID], - [PDF], - [SummaryPDF], - [DTS], - [UserID], - [LastChanged] - FROM [Versions] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersions Succeeded' -ELSE PRINT 'Procedure Creation: getVersions Error on Creation' -GO - -/****** Object: StoredProcedure [getVersionsByRevisionID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersionsByRevisionID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersionsByRevisionID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersionsByRevisionID] - -( - @RevisionID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Versions].[VersionID], - [Versions].[RevisionID], - [Versions].[StageID], - [Versions].[PDF], - [Versions].[SummaryPDF], - [Versions].[DTS], - [Versions].[UserID], - [Versions].[LastChanged], - [Stages].[Name] [Stage_Name], - [Stages].[Description] [Stage_Description], - [Stages].[IsApproved] [Stage_IsApproved], - [Stages].[DTS] [Stage_DTS], - [Stages].[UserID] [Stage_UserID] - FROM [Versions] - JOIN [Stages] ON - [Stages].[StageID]=[Versions].[StageID] - WHERE - [Versions].[RevisionID]=@RevisionID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersionsByRevisionID Succeeded' -ELSE PRINT 'Procedure Creation: getVersionsByRevisionID Error on Creation' -GO - -/****** Object: StoredProcedure [getVersionsByStageID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getVersionsByStageID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getVersionsByStageID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getVersionsByStageID] - -( - @StageID int -) -WITH EXECUTE AS OWNER -AS - - SELECT - [Versions].[VersionID], - [Versions].[RevisionID], - [Versions].[StageID], - [Versions].[PDF], - [Versions].[SummaryPDF], - [Versions].[DTS], - [Versions].[UserID], - [Versions].[LastChanged], - [Revisions].[ItemID] [Revision_ItemID], - [Revisions].[TypeID] [Revision_TypeID], - [Revisions].[RevisionNumber] [Revision_RevisionNumber], - [Revisions].[RevisionDate] [Revision_RevisionDate], - [Revisions].[Notes] [Revision_Notes], - [Revisions].[Config] [Revision_Config], - [Revisions].[DTS] [Revision_DTS], - [Revisions].[UserID] [Revision_UserID] - FROM [Versions] - JOIN [Revisions] ON - [Revisions].[RevisionID]=[Versions].[RevisionID] - WHERE - [Versions].[StageID]=@StageID - - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getVersionsByStageID Succeeded' -ELSE PRINT 'Procedure Creation: getVersionsByStageID Error on Creation' -GO - -/****** Object: StoredProcedure [updateCheck] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateCheck]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateCheck]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateCheck] - -( - @CheckID int, - @RevisionID int, - @StageID int, - @ConsistencyChecks xml=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Checks] - SET - [RevisionID]=@RevisionID, - [StageID]=@StageID, - [ConsistencyChecks]=@ConsistencyChecks, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [CheckID]=@CheckID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Checks] WHERE [CheckID]=@CheckID) - RAISERROR('Check record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Check has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Checks] WHERE [CheckID]=@CheckID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateCheck Succeeded' -ELSE PRINT 'Procedure Creation: updateCheck Error on Creation' -GO - -/****** Object: StoredProcedure [updateRevision] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateRevision]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateRevision]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateRevision] - -( - @RevisionID int, - @ItemID int, - @TypeID int, - @RevisionNumber nvarchar(50)=null, - @RevisionDate datetime=null, - @Notes nvarchar(MAX)=null, - @Config xml=null, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Revisions] - SET - [ItemID]=@ItemID, - [TypeID]=@TypeID, - [RevisionNumber]=@RevisionNumber, - [RevisionDate]=@RevisionDate, - [Notes]=@Notes, - [Config]=@Config, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [RevisionID]=@RevisionID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Revisions] WHERE [RevisionID]=@RevisionID) - RAISERROR('Revision record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Revision has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Revisions] WHERE [RevisionID]=@RevisionID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateRevision Succeeded' -ELSE PRINT 'Procedure Creation: updateRevision Error on Creation' -GO - -/****** Object: StoredProcedure [updateStage] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateStage]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateStage]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateStage] - -( - @StageID int, - @Name nvarchar(50), - @Description nvarchar(200)=null, - @IsApproved int, - @DTS datetime, - @UserID nvarchar(100), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Stages] - SET - [Name]=@Name, - [Description]=@Description, - [IsApproved]=@IsApproved, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [StageID]=@StageID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Stages] WHERE [StageID]=@StageID) - RAISERROR('Stage record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Stage has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Stages] WHERE [StageID]=@StageID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateStage Succeeded' -ELSE PRINT 'Procedure Creation: updateStage Error on Creation' -GO - -/****** Object: StoredProcedure [updateVersion] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateVersion]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateVersion]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[updateVersion] - -( - @VersionID int, - @RevisionID int, - @StageID int, - @PDF varbinary(MAX)=null, - @SummaryPDF varbinary(MAX)=null, - @DTS datetime, - @UserID nvarchar(200), - @LastChanged timestamp, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Versions] - SET - [RevisionID]=@RevisionID, - [StageID]=@StageID, - [PDF]=@PDF, - [SummaryPDF]=@SummaryPDF, - [DTS]=@DTS, - [UserID]=@UserID - WHERE [VersionID]=@VersionID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Versions] WHERE [VersionID]=@VersionID) - RAISERROR('Version record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Version has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Versions] WHERE [VersionID]=@VersionID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateVersion Succeeded' -ELSE PRINT 'Procedure Creation: updateVersion Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_CheckAllXML] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CheckAllXML]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_CheckAllXML]; -GO - -/* -select [dbo].[vefn_CheckAllXML](1) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_CheckAllXML](@DocVersionID int) -returns xml -begin ---temp table for max checkid - declare @tChecks table (CheckID int) - insert into @tChecks - select max(cc.checkid) checkid from checks cc inner join stages ss on cc.stageid = ss.stageid - inner join revisions rr on cc.revisionid = rr.revisionid where ss.isapproved = 1 group by rr.itemid ---temp table for sibling itemid - declare @tItems table (ItemID int) - insert into @tItems - select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0) ---temp table for multi valued roids - declare @mvROIDS table (ROID varchar(max)) - insert into @mvROIDS - select roid from (select distinct r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue - from checks cc cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1)) t1 group by roid having count(*) > 1 ---temp table for multi valued transitionids - declare @mvTransitions table (TransitionID int) - insert into @mvTransitions - select transitionid from (select distinct r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue - from checks cc cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1)) t1 group by transitionid having count(*) > 1 ---temp table for multi valued docids - declare @mvLibDocs table (DocID int) - insert into @mvLibDocs - select docid from (select distinct r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate - from checks cc cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1)) t1 group by docid having count(*) > 1 ---temp table for roids - declare @tROIDS table (ItemID int,ROID varchar(max),ROValue varchar(max),CheckID int) - insert into @tROIDS - select rr.itemid,r1.value('@ROID','varchar(max)') roid,r1.value('@ROValue','varchar(max)') rovalue, cc.checkid - from checks cc inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//ROCheck') t1(r1) ---temp table for transitions - declare @tTransitions table (ItemID int,TransitionID int,TransitionValue varchar(max),CheckID int) - insert into @tTransitions - select rr.itemid,r1.value('@TransitionID','int') transitionid,r1.value('@TransitionValue','varchar(max)') transitionvalue,cc.checkid - from checks cc inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//TransitionCheck') t1(r1) ---temp table for libdocs - declare @tLibDocs table (ItemID int, DocID int, DocDate datetime,CheckID int) - insert into @tLibDocs - select rr.itemid,r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') docdate,cc.checkid - from checks cc inner join revisions rr on cc.revisionid = rr.revisionid - cross apply cc.consistencychecks.nodes('//LibDocCheck') t1(r1) - ---get all inconsitencies accross set - declare @ChkXML xml - set @ChkXML = - ( - select - (--ro inconsistencies accross set - select ROCheck.ItemID,ROCheck.ROID,ROCheck.ROValue from @tROIDS ROCheck - inner join @tChecks tc on ROCheck.checkid = tc.checkid - inner join @tItems ti on ROCheck.itemid = ti.itemid - inner join @mvROIDS mv on ROCheck.roid = mv.roid - order by ROCheck.itemid - for xml auto,root('ROChecks'),type - ), - (--transition inconsistencies accross set - select TransitionCheck.ItemID,TransitionCheck.TransitionID,TransitionCheck.TransitionValue from @tTransitions TransitionCheck - inner join @tChecks tc on TransitionCheck.checkid = tc.checkid - inner join @tItems ti on TransitionCheck.itemid = ti.itemid - inner join @mvTransitions mv on TransitionCheck.TransitionID = mv.TransitionID - order by TransitionCheck.itemid - for xml auto,root('TransitionChecks'),type - ), - (--libdoc inconsistencies accross set - select LibDocCheck.ItemID,LibDocCheck.DocID,LibDocCheck.DocDate from @tLibDocs LibDocCheck - inner join @tChecks tc on LibDocCheck.checkid = tc.checkid - inner join @tItems ti on LibDocCheck.itemid = ti.itemid - inner join @mvLibDocs mv on LibDocCheck.docid = mv.docid - order by LibDocCheck.itemid - for xml auto,root('LibDocChecks'),type - ) - for xml path(''),ROOT ('ConsistencyChecks'),type - ) - return @ChkXML -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_CheckAllXML Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_CheckAllXML Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_CheckAllXMLByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CheckAllXMLByItemID]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_CheckAllXMLByItemID]; -GO - -/* -declare @myxml xml -set @myxml = (select dbo.vefn_checkallxml(1)) -select dbo.vefn_checkallxmlbyitemid(1,@myxml) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_CheckAllXMLByItemID](@ItemID int,@MyXml xml) -returns xml -begin - declare @ChkXML xml - declare @ROCheck table - ( - ItemID int, - ROID varchar(max), - ROValue varchar(max) - ) - insert into @ROCheck - select r2.value('@ItemID','int'),r2.value('@ROID','varchar(max)'),r2.value('@ROValue','varchar(max)') - from @MyXml.nodes('//ROCheck') t2(r2) ---jcb - declare @TransitionCheck table - ( - ItemID int, - TransitionID int, - TransitionValue varchar(max) - ) - insert into @TransitionCheck - select r2.value('@ItemID','int'),r2.value('@TransitionID','int'),r2.value('@TransitionValue','varchar(max)') - from @MyXml.nodes('//TransitionCheck') t2(r2) ---end jcb - declare @LibDocCheck table - ( - ItemID int, - DocID int, - DocDate datetime - ) - insert into @LibDocCheck - select r2.value('@ItemID','int'),r2.value('@DocID','int'),r2.value('@DocDate','datetime') - from @MyXml.nodes('//LibDocCheck') t2(r2) - set @ChkXML = - ( - select - (select * from @ROCheck ROCheck where itemid = @ItemID for xml auto, root('ROChecks'),type), - (select * from @TransitionCheck TransitionCheck where itemid = @ItemID for xml auto, root('TransitionChecks'),type), - (select * from @LibDocCheck LibDocCheck where itemid = @ItemID for xml auto, root('LibDocChecks'),type) - for xml path(''),ROOT ('ConsistencyChecks'),type - ) - return @ChkXML -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_CheckAllXMLByItemID Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_CheckAllXMLByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_CheckXML] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_CheckXML]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_CheckXML]; -GO - -/* -declare @NewXML xml -select @NewXML = consistencychecks from checks where checkid = 48 -set @NewXML = cast(replace(cast(@NewXML as varchar(max)),'2011-08-24T11:20:57.027','2011-12-25T00:00:00.000') as xml) -set @NewXML = cast(replace(cast(@NewXML as varchar(max)),'88%','88.12345%') as xml) -set @NewXML = cast(replace(cast(@NewXML as varchar(max)),'="6%','="6.12345%') as xml) -set @NewXML = cast(replace(cast(@NewXML as varchar(max)),'23%','23.12345%') as xml) -set @NewXML = cast(replace(cast(@NewXML as varchar(max)),'90%','90.12345%') as xml) -set @NewXML = cast(replace(cast(@NewXML as varchar(max)),', Step 13',', Step 14') as xml)r -declare @OldXML xml -select @OldXML = consistencychecks from checks where checkid = 1 ---select .dbo.vefn_CheckXML(@NewXML, @OldXML) -select ii.*,ss.*,.dbo.vefn_CheckXML(@NewXML, consistencychecks) chkxml from checks cc -inner join revisions rr on cc.revisionid = rr.revisionid -inner join items ii on rr.itemid = ii.itemid -inner join stages ss on cc.stageid = ss.stageid -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_CheckXML](@NewXML xml, @OldXML xml) -returns xml -begin -declare @ChkXML xml -set @ChkXML = -( -select -( -select * from -( - select ah.ROID,OldROValue,ROValue from - ( - select r1.value('@ROID','varchar(20)') roid,r1.value('@ROValue','varchar(max)') oldrovalue - from @OldXML.nodes('//ROCheck') as t1(r1) - ) ah - inner join - ( - select distinct r2.value('@ROID','varchar(20)') roid,r2.value('@ROValue','varchar(max)') rovalue - from @NewXML.nodes('//ROCheck') as t2(r2) - ) ds - on ah.roid = ds.roid - and oldrovalue != rovalue -) ROCheck -for xml auto,root('ROChecks'),type -) - , - ( -select * from -( - select ah.TransitionID,OldTransitionValue,TransitionValue from - ( - select r1.value('@TransitionID','int') TransitionID,r1.value('@TransitionValue','varchar(max)') OldTransitionValue - from @OldXML.nodes('//TransitionCheck') as t1(r1) - ) ah - inner join - ( - select distinct r2.value('@TransitionID','int') TransitionID,r2.value('@TransitionValue','varchar(max)') TransitionValue - from @NewXML.nodes('//TransitionCheck') as t2(r2) - ) ds - on ah.TransitionID = ds.TransitionID - and OldTransitionValue != TransitionValue -) TransitionCheck - for xml auto,root('TransitionChecks'),type -) - , - ( -select * from -( - select ah.DocID,OldDocDate,DocDate from - ( - select r1.value('@DocID','int') docid,r1.value('@DocDate','datetime') olddocdate - from @OldXML.nodes('//LibDocCheck') as t1(r1) - ) ah - inner join - ( - select distinct r2.value('@DocID','int') docid,r2.value('@DocDate','datetime') docdate - from @NewXML.nodes('//LibDocCheck') as t2(r2) - ) ds - on ah.docid = ds.docid - and olddocdate != docdate -) LibDocCheck - for xml auto,root('LibDocChecks'),type -) -for xml path(''),ROOT ('ConsistencyChecks'),type -) -return @ChkXML -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_CheckXML Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_CheckXML Error on Creation' -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChronologyReport]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChronologyReport]; -/****** Object: UserDefinedFunction [dbo].[vefn_ChronologyReport] Script Date: 03/20/2012 17:50:44 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -select * from vefn_chronologyreport(2) where type > 0 order by contentid,auditid -*/ -/****** Object: UserDefinedFunction [dbo].[vefn_ChronologyReport] Script Date: 05/18/2011 11:20:48 ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_ChronologyReport](@ProcItemID int, @DTS datetime) -returns @Report table -( -src int, -AuditID bigint, -ContentID int, -Number nvarchar(512), -Text nvarchar(max), -Type int, -FormatID int, -Config nvarchar(max), -DTS datetime, -UserID nvarchar(200), -DeleteStatus int, -ActionDTS datetime, -ItemDTS datetime, -LastAuditID int, -DeletedAuditID int -) -WITH EXECUTE AS OWNER -AS -BEGIN ---added rhm/jcb 20121218i -declare @tmpTable table -( - icontentid int primary key -) -insert into @tmpTable select icontentid from vefn_tblchilditems(@ProcItemID,@ProcItemID,1) ---added jcb 20111122 ---declare @dts datetime ---set @dts = (select dts from items where itemid = @ProcItemID ) ---set @dts = (SELECT .[dbo].[vefn_GetPreviousRevisionDTSByItemID] (@ProcItemID)) ---end added jcb 20111122 - insert into @Report - SELECT -1 src, - [AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid - where Number is not null ---added jcb 20111028_1827 -and ca.contentid != (select contentid from items where itemid = @procitemid) -and ca.contentid in (select icontentid from @tmpTable) ---end added jcb 20111028_1827 ---added jcb 20111122 ---and ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > (select dts from items where itemid = @ProcItemID )) -and ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > @dts) ---and ca.dts > (select dts from items where itemid = @ProcItemID ) -and ca.dts > @dts ---end added jcb 20111122 --- UNION --- SELECT ---2 src, --- cast(ident_current('contentaudits') + 1 as bigint) auditid ----- (select max(auditid) + 1 from contentaudits) [AuditID] ----- 0 [AuditID] --- ,ca.[ContentID] --- ,[Number] --- ,[Text] --- ,[Type] --- ,[FormatID] --- ,[Config] --- ,ca.[DTS] cadts --- ,ca.[UserID] --- ,ca.[DeleteStatus] --- ,ActionDTS --- ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS ---,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID ---,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID --- FROM tblContents ca ----- inner join tblitems ti on ca.contentid = ti.contentid ---WHERE ca.DeleteStatus = 0 AND -----added jcb 20111028_1827 ---ca.contentid != (select contentid from items where itemid = @procitemid) and -----end added jcb 20111028_1827 -----ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > (select dts from items where itemid = @ProcItemID )) -----added jcb 20111122 -----ca.ContentID in (SELECT [ContentID] FROM Contents where dts > (select dts from items where itemid = @ProcItemID )) ---ca.ContentID in (SELECT [ContentID] FROM Contents where dts > @dts) -----end added jcb 20111122 -----order by ca.DTS,ActionDTS - UNION - SELECT -3 src, - cast(ident_current('contentaudits') + 1 as bigint) auditid --- (select max(auditid) + 1 from contentaudits) [AuditID] --- 0 [AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM tblContents ca --- inner join tblitems ti on ca.contentid = ti.contentid -WHERE ca.DeleteStatus = 0 AND ---added jcb 20111028_1827 -ca.contentid != (select contentid from items where itemid = @procitemid) -and ca.contentid in (select icontentid from @tmpTable) ---end added jcb 20111028_1827 ---added jcb 20111122 ---ca.dts > (select dts from items where itemid = @ProcItemID ) -and (ca.dts > @dts or ca.actiondts > @dts) ---end added jcb 20111122 - UNION - SELECT distinct -5 src, --- cast(ident_current('contentaudits') + 1 as bigint) auditid --- (select max(auditid) + 1 from contentaudits) [AuditID] - ca.[AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid -WHERE ca.DeleteStatus > 0 ---added jcb 20111028_1827 - --ca.contentid != (select contentid from items where itemid = @procitemid) and ---end added jcb 20111028_1827 ---added jcb 20111122 ---ca.dts > (select dts from items where itemid = @ProcItemID ) -and ca.contentid in (select icontentid from @tmpTable) -and (ca.dts > @dts or ca.actiondts > @dts) ---end added jcb 20111122 -order by ca.DTS,ActionDTS - - insert into @Report - SELECT -4 src, - ca.[AuditID] - ,ca.[ContentID] - ,ca.[Number] - ,ca.[Text] - ,ca.[Type] - ,ca.[FormatID] - ,ca.[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ca.ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid - inner join @Report rpt on ca.contentid = rpt.contentid and ca.auditid = rpt.lastauditid -where ca.auditid not in (select auditid from @report) -and rpt.lastauditid is not null -and ca.contentid in (select icontentid from @tmpTable) - return -end -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_ChronologyReport Succeeded' -ELSE PRINT 'Function: vefn_ChronologyReport Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_FindExternalFromTransitions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindExternalFromTransitions]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindExternalFromTransitions]; -GO - -/* -Select * from vefn_FindExternalFromTransitions(185) -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create FUNCTION [dbo].[vefn_FindExternalFromTransitions](@ItemID int) -RETURNS @Children TABLE -( - [FromItemID] int, - [TransitionID] [int] NOT NULL, - [FromID] [int] NOT NULL, - [ToID] [int] NOT NULL, - [RangeID] [int] NOT NULL, - [Config] [nvarchar](max) NULL -) -WITH EXECUTE AS OWNER -AS -BEGIN -with Itemz([Level], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged],[pContentID], [pDTS],[pUserID],[pLastChanged]) as ( - Select 0 [Level], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - ,0 [pContentID],[DTS] [pDTS], [UserID] [pUserID], [LastChanged] [pLastChanged] - FROM [Items] - where [ItemID]=@ItemID -Union All --- Children - select [Level] + 1,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID],P.[LastChanged] [pLastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID --- Siblings -Union All - select [Level] ,Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - ,null,null,null,null - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 -) -insert into @Children -select ItemID [FromItemID], TT.[TransitionID], TT.[FromID], TT.[ToID], TT.[RangeID], TT.[Config] - from Transitions TT - join Items II on II.ContentID=TT.FromID -where (ToID not in(select ItemID from Itemz) OR RangeID not in(select ItemID from Itemz)) -AND FromID in(Select ContentID from ItemZ) -OPTION (MAXRECURSION 10000) -RETURN -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindExternalFromTransitions Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindExternalFromTransitions Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetFormatIDByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetFormatIDByItemID]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetFormatIDByItemID]; -GO - -/* -select dbo.vefn_GetFormatIDByItemID(41) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_GetFormatIDByItemID] -(@ItemID int) -returns int -as begin - declare @FormatID int; - with itemz - ( - itemid,previousid,formatid,folderid,parentid - ) as - ( - select itemid,previousid,formatid,null,null - from items ii - join contents cc on ii.contentid = cc.contentid - where itemid = @ItemID - --siblins - union all - select ii.itemid,ii.previousid,cc.formatid,null,null - from items ii - join contents cc on ii.contentid = cc.contentid - join itemz zz on zz.previousid = ii.itemid - where zz.formatid is null - --chillins - union all - select ii.itemid,ii.previousid,cc.formatid,null,null - from parts pp - join items ii on ii.contentid = pp.contentid - join contents cc on ii.contentid = cc.contentid - join itemz zz on zz.itemid = pp.itemid - where zz.formatid is null - --docversions - union all - select 0,0,dv.formatid,0,dv.folderid - from docversions dv - join itemz zz on dv.itemid = zz.itemid - where zz.formatid is null - --folders - union all - select 0,0,ff.formatid,ff.folderid,ff.parentid - from folders ff - join itemz zz on ff.folderid = zz.parentid - where zz.folderid != zz.parentid - and zz.formatid is null - ) - select @FormatID = formatid from itemz zz - where formatid is not null - OPTION (MAXRECURSION 10000) - return @FormatID -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_GetFormatIDByItemID Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_GetFormatIDByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetPreviousRevisionDTSByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetPreviousRevisionDTSByItemID]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetPreviousRevisionDTSByItemID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_GetPreviousRevisionDTSByItemID](@ItemID int) -returns datetime -WITH EXECUTE AS OWNER -AS -begin - declare @dts datetime - SELECT - @dts = [RevisionDate] - FROM [Revisions] - inner join - ( - select top 1 revisionid,mxvid from - ( - select top 2 revisionid,mxvid from - ( - select rr.revisionid,max(vv.versionid) mxvid - from items ii - inner join revisions rr on ii.itemid = rr.itemid - inner join versions vv on rr.revisionid = vv.revisionid - inner join stages ss on vv.stageid = ss.stageid - where ss.isapproved = 1 - and ii.itemid = @ItemID - group by rr.revisionid - union - select null,null - ) ds - order by mxvid desc - ) ah - order by revisionid - ) rr on [Revisions].revisionid = rr.revisionid - -- WHERE [ItemID] = @ItemID - -- ORDER BY [RevisionID] DESC - return @dts -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_GetPreviousRevisionDTSByItemID Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_GetPreviousRevisionDTSByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [vefn_GetStepTypeNameByItemIDandTypeID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetStepTypeNameByItemIDandTypeID]') AND OBJECTPROPERTY(id,N'IsScalarFunction') = 1) - DROP FUNCTION [vefn_GetStepTypeNameByItemIDandTypeID]; -GO - -/* -select dbo.vefn_GetStepTypeNameByItemIDandTypeID(9830,20005) -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_GetStepTypeNameByItemIDandTypeID](@ItemID int, @TypeID int) -returns varchar(max) -as begin - declare @typename varchar(max) - select @typename = r1.value('@Type','varchar(max)') - from items ii - inner join formats ff on 1=1 - cross apply ff.data.nodes('//Step') t1(r1) - where ii.itemid = @ItemID - and ff.formatid = (select dbo.vefn_GetFormatIDByItemID(@ItemID)) - and r1.value('@Index','int') = @TypeID - 20000 - return @typename -end -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'ScalarFunction Creation: vefn_GetStepTypeNameByItemIDandTypeID Succeeded' -ELSE PRINT 'ScalarFunction Creation: vefn_GetStepTypeNameByItemIDandTypeID Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetAllConsistencyIssues] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetAllConsistencyIssues]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetAllConsistencyIssues]; -GO - -/* -[dbo].[vesp_GetAllConsistencyIssues] 1 - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetAllConsistencyIssues] -( - @DocVersionID int -) -AS BEGIN - declare @myxml xml - set @myxml = (select dbo.vefn_checkallxml(@DocVersionID)) - DECLARE @Items TABLE - ( - ItemID int PRIMARY KEY - ) - INSERT INTO @Items - select r1.value('@ItemID','int') itemid - from @myxml.nodes('//ROCheck') t1(r1) - union - select r1.value('@ItemID','int') itemid - from @myxml.nodes('//TransitionCheck') t1(r1) - union - select r1.value('@ItemID','int') itemid - from @myxml.nodes('//LibDocCheck') t1(r1) - SELECT - ii.[ItemID] - ,ii.[PreviousID] - ,ii.[ContentID] - ,ii.[DTS] - ,ii.[UserID] - ,ii.[LastChanged] - ,CC.[Number] - ,CC.[Text] - ,CC.[Type] - ,CC.[FormatID] - ,CC.[Config] - ,CC.[DTS] [cDTS] - ,CC.[UserID] [cUserID] - ,CC.[LastChanged] [cLastChanged] - ,(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ii.[ItemID]) [AnnotationCount] - ,(SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ii.[ItemID]) [DocVersionCount] - ,(SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ii.[ItemID]) [NextCount] - ,(SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ii.[ItemID]) [PartCount] - ,(SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ii.[ItemID]) [Transition_RangeIDCount] - ,(SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ii.[ItemID]) [Transition_ToIDCount] - ,(SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=CC.[ContentID]) [DetailCount] - ,(SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=CC.[ContentID]) [EntryCount] - ,(SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=CC.[ContentID]) [GridCount] - ,(SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=CC.[ContentID]) [ImageCount] - ,(SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=CC.[ContentID]) [ItemCount] - ,(SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=CC.[ContentID]) [cPartCount] - ,(SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=CC.[ContentID]) [RoUsageCount] - ,(SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=CC.[ContentID]) [TransitionCount] - ,(SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=CC.[ContentID]) [ZContentCount] - ,(select dbo.vefn_CheckAllXMLByItemID(ii.itemid,@myxml)) ChkXml - FROM [Items] ii - INNER JOIN [Contents] cc ON ii.[ContentID] = cc.[ContentID] - where ii.ItemID in (select ItemID from @Items) --- order by ii.itemid -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetAllConsistencyIssues Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetAllConsistencyIssues Error on Creation' -GO - -/****** Object: StoredProcedure [vesp_GetConsistencyCheckProcedures] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vesp_GetConsistencyCheckProcedures]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [vesp_GetConsistencyCheckProcedures]; -GO - -/* -declare @myxml xml -select @myxml = consistencychecks from checks where checkid = 2 -declare @docversionid int -set @docversionid = 1 -exec vesp_GetConsistencyCheckProcedures @docversionid, @myxml -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[vesp_GetConsistencyCheckProcedures] -( - @DocVersionID int, - @MyXml xml -) -AS BEGIN ---to be removed --- set @myxml = cast(replace(cast(@myxml as varchar(max)),'2011-08-24T11:20:57.027','2011-12-25T00:00:00.000') as xml) --- set @myxml = cast(replace(cast(@myxml as varchar(max)),'88%','88.12345%') as xml) --- set @myxml = cast(replace(cast(@myxml as varchar(max)),'="6%','="6.12345%') as xml) --- set @myxml = cast(replace(cast(@myxml as varchar(max)),'23%','23.12345%') as xml) --- set @myxml = cast(replace(cast(@myxml as varchar(max)),'90%','90.12345%') as xml) --- set @myxml = cast(replace(cast(@myxml as varchar(max)),', Step 13',', Step 14') as xml) ---end to be removed - DECLARE @Items TABLE - ( - ID int identity(1,1), - ItemID int - ) - INSERT INTO @Items (itemid) - select roc.value('@ItemID','int') itemid - from @myxml.nodes('//ConsistencyChecks') t1(roc) - declare @LatestApproved TABLE - ( - ItemID int PRIMARY KEY, - CheckID int - ) - insert into @LatestApproved - select rr.itemid,max(checkid) checkid - from revisions rr - inner join checks cc on rr.revisionid = cc.revisionid - inner join stages ss on cc.stageid = ss.stageid - where ss.isapproved = 1 - and rr.itemid in - (select itemid from vefn_siblingitems((select itemid from docversions where versionid = @docversionid),0)) - group by rr.itemid - - SELECT - ii.[ItemID] - ,ii.[PreviousID] - ,ii.[ContentID] - ,ii.[DTS] - ,ii.[UserID] - ,ii.[LastChanged] - ,CC.[Number] - ,CC.[Text] - ,CC.[Type] - ,CC.[FormatID] - ,CC.[Config] - ,CC.[DTS] [cDTS] - ,CC.[UserID] [cUserID] - ,CC.[LastChanged] [cLastChanged] - ,(SELECT COUNT(*) FROM [Annotations] WHERE [Annotations].[ItemID]=ii.[ItemID]) [AnnotationCount] - ,(SELECT COUNT(*) FROM [DocVersions] WHERE [DocVersions].[ItemID]=ii.[ItemID]) [DocVersionCount] - ,(SELECT COUNT(*) FROM [Items] [Next] WHERE [Next].[PreviousID]=ii.[ItemID]) [NextCount] - ,(SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ItemID]=ii.[ItemID]) [PartCount] - ,(SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[RangeID]=ii.[ItemID]) [Transition_RangeIDCount] - ,(SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[ToID]=ii.[ItemID]) [Transition_ToIDCount] - ,(SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=CC.[ContentID]) [DetailCount] - ,(SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=CC.[ContentID]) [EntryCount] - ,(SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=CC.[ContentID]) [GridCount] - ,(SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=CC.[ContentID]) [ImageCount] - ,(SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=CC.[ContentID]) [ItemCount] - ,(SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=CC.[ContentID]) [cPartCount] - ,(SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=CC.[ContentID]) [RoUsageCount] - ,(SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=CC.[ContentID]) [TransitionCount] - ,(SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=CC.[ContentID]) [ZContentCount] - ,ribeye.ChkXml - FROM [Items] ii - INNER JOIN [Contents] cc ON ii.[ContentID] = cc.[ContentID] - inner join - ( - select la.itemid,.dbo.vefn_checkxml(@myxml,cc.consistencychecks) chkxml - from checks cc - inner join @LatestApproved la on cc.checkid = la.checkid - ) ribeye on ii.itemid = ribeye.itemid -left join @items iii on ii.itemid = iii.itemid - where chkxml.exist('//ROChecks') | chkxml.exist('//TransitionChecks') | chkxml.exist('//LibDocChecks') > 0 or - ii.ItemID in (select ItemID from @Items) - order by isnull(iii.id,999999) -END -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: vesp_GetConsistencyCheckProcedures Succeeded' -ELSE PRINT 'Procedure Creation: vesp_GetConsistencyCheckProcedures Error on Creation' -GO - -/****** Object: StoredProcedure [purgeData] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[purgeData]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [purgeData]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[purgeData] - -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - delete from [AnnotationAudits] - dbcc checkident([AnnotationAudits],reseed,0) - delete from [Applicabilities] - dbcc checkident([Applicabilities],reseed,0) - delete from [ApplicableStructures] - delete from [Assignments] - dbcc checkident([Assignments],reseed,0) - delete from [Associations] - dbcc checkident([Associations],reseed,0) - delete from [Checks] - dbcc checkident([Checks],reseed,0) - delete from [ContentAudits] - dbcc checkident([ContentAudits],reseed,0) - delete from [DeleteLog] - dbcc checkident([DeleteLog],reseed,0) - delete from [Details] - dbcc checkident([Details],reseed,0) - delete from [DocumentAudits] - dbcc checkident([DocumentAudits],reseed,0) - delete from [DocVersions] - dbcc checkident([DocVersions],reseed,0) - delete from [DROUsages] - dbcc checkident([DROUsages],reseed,0) - delete from [EntryAudits] - dbcc checkident([EntryAudits],reseed,0) - delete from [Figures] - dbcc checkident([Figures],reseed,0) - delete from [Folders] - dbcc checkident([Folders],reseed,0) - delete from [GridAudits] - dbcc checkident([GridAudits],reseed,0) - delete from [ImageAudits] - dbcc checkident([ImageAudits],reseed,0) - delete from [ItemAudits] - dbcc checkident([ItemAudits],reseed,0) - delete from [Memberships] - dbcc checkident([Memberships],reseed,0) - delete from [PartAudits] - dbcc checkident([PartAudits],reseed,0) - delete from [Pdfs] - delete from [Permissions] - dbcc checkident([Permissions],reseed,0) - delete from [ROFsts] - dbcc checkident([ROFsts],reseed,0) - delete from [ROImages] - dbcc checkident([ROImages],reseed,0) - delete from [Roles] - dbcc checkident([Roles],reseed,0) - delete from [ROUsageAudits] - dbcc checkident([ROUsageAudits],reseed,0) - delete from [tblAnnotations] - dbcc checkident([tblAnnotations],reseed,0) - delete from [tblEntries] - delete from [tblGrids] - delete from [tblImages] - delete from [tblParts] - delete from [tblROUsages] - dbcc checkident([tblROUsages],reseed,0) - delete from [TransitionAudits] - dbcc checkident([TransitionAudits],reseed,0) - delete from [Users] - dbcc checkident([Users],reseed,0) - delete from [Versions] - dbcc checkident([Versions],reseed,0) - delete from [ZContents] - delete from [ZTransitions] - delete from [AnnotationTypes] - dbcc checkident([AnnotationTypes],reseed,0) - delete from [Connections] - dbcc checkident([Connections],reseed,0) - delete from [Groups] - dbcc checkident([Groups],reseed,0) - delete from [Revisions] - dbcc checkident([Revisions],reseed,0) - delete from [RODbs] - dbcc checkident([RODbs],reseed,0) - delete from [Stages] - dbcc checkident([Stages],reseed,0) - delete from [tblDocuments] - dbcc checkident([tblDocuments],reseed,0) - delete from [tblTransitions] - dbcc checkident([tblTransitions],reseed,0) - delete from [tblItems] - dbcc checkident([tblItems],reseed,0) - delete from [tblContents] - dbcc checkident([tblContents],reseed,0) - delete from [Formats] - dbcc checkident([Formats],reseed,0) - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: purgeData Succeeded' -ELSE PRINT 'Procedure Creation: purgeData Error on Creation' -GO diff --git a/PROMS/DataLoader/PROMStoCM.sql b/PROMS/DataLoader/PROMStoCM.sql deleted file mode 100644 index b0713187..00000000 --- a/PROMS/DataLoader/PROMStoCM.sql +++ /dev/null @@ -1,3236 +0,0 @@ -/****** Object: StoredProcedure [dbo].[jcbAuditConfig] Script Date: 03/29/2011 17:32:35 ******/ -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[jcbAuditConfig]') AND type in (N'P', N'PC')) -DROP PROCEDURE [dbo].[jcbAuditConfig] -GO - -/****** Object: StoredProcedure [dbo].[jcbAuditConfig] Script Date: 03/29/2011 17:33:30 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create procedure [dbo].[jcbAuditConfig] -@tablename varchar(max) -as begin ---print 'table name: ' + @tablename - declare @cmd varchar(max) - set @cmd = '' - - --new table name variable - declare @newtablename varchar(max) - set @newtablename = 'tbl' + @tablename ---print 'new table name: ' + @newtablename - - --rename table - set @cmd = 'sp_rename ' + '''' + @tablename + '''' + ',' + '''' + @newtablename + '''' ---print 'rename table: ' + @cmd - exec (@cmd) - set @cmd = '' - - --add column DeleteStatus - set @cmd = 'alter table ' + @newtablename + ' add DeleteStatus int not null constraint DF_' + @newtablename + '_DeleteStatus default ((0))' ---print 'add column deletestatus: ' + @cmd - exec (@cmd) - set @cmd = '' - - --create index on deletestatus - set @cmd = 'CREATE NONCLUSTERED INDEX IX_' + @newtablename + 'DeleteStatus ON ' + @newtablename + ' - ( - [DeleteStatus] ASC - )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] - ' - exec (@cmd) - set @cmd = '' - - --primary key variable - declare @primarykey varchar(max) - select @primarykey = coalesce(@primarykey + ' and ','') + - 'dd.' + c.name + ' = ' + 'ii.' + c.name - from sysindexes i - inner join sysobjects o ON i.id = o.id - inner join sysobjects pk ON i.name = pk.name and pk.parent_obj = i.id and pk.xtype = 'PK' - inner join sysindexkeys ik on i.id = ik.id and i.indid = ik.indid - inner join syscolumns c ON ik.id = c.id and ik.colid = c.colid - where o.name = @newtablename - order by ik.keyno ---print 'primary key: ' + @primarykey - - --shadow table name variable - declare @shadowtablename varchar(max) - if substring(@tablename,len(@tablename)-2,3) = 'ies' - set @shadowtablename = replace(@tablename,'ies','y') + 'Audits' - else - set @shadowtablename = substring(@tablename,1,len(@tablename)-1) + 'Audits' ---print 'shadow table name: ' + @shadowtablename - - --create base shadow table - set @cmd = 'create table ' + @shadowtablename + '(AuditID bigint identity (1,1) not null CONSTRAINT [PK_' + @shadowtablename + '] PRIMARY KEY CLUSTERED ([AuditID] ASC))' ---print 'create shadow table: ' + @cmd - exec (@cmd) - set @cmd = '' - - --temp variables for cursor - declare @columnname varchar(max) - declare @columntype varchar(max) - declare @columnlength smallint - declare @columnnullable int - declare @columncollation sysname - declare @columnprecision tinyint - declare @columnscale tinyint - - --separator variable - declare @sep varchar(max) - set @sep = '' - - --table columns variable - declare @tablecolumns varchar(max) - set @tablecolumns = '' - - --ii table columns variable - declare @iitablecolumns varchar(max) - set @iitablecolumns = '' - - --dd table columns variable - declare @ddtablecolumns varchar(max) - set @ddtablecolumns = '' - - --view columns variable - declare @viewcolumns varchar(max) - set @viewcolumns = '' - - --trigger columns variable - declare @trigcolumns varchar(max) - set @trigcolumns = '' - - --cursor for getting columns - declare tc cursor read_only for - select c.name,t.name typename,c.length,c.isnullable,c.collation,c.xprec,c.xscale - from sysobjects o - inner join syscolumns c on o.id = c.id - inner join systypes t on c.xtype = t.xtype - where 1=1 - and o.name = @newtablename - and t.name != 'sysname' - order by c.colorder - - --alter shadow table command - set @cmd = 'alter table ' + @shadowtablename + ' add ' ---print 'alter shadow table start: ' + @cmd - - open tc - fetch next from tc - into @columnname,@columntype,@columnlength,@columnnullable,@columncollation,@columnprecision,@columnscale - while @@fetch_status = 0 - begin - if @columntype not in ('text','ntext','image') - begin - if @columntype not in ('timestamp') - begin - set @cmd = @cmd + @sep + @columnname + ' ' + @columntype - if @columntype in ('binary','char','nchar','nvarchar','varbinary','varchar') - begin - if @columnlength = -1 - set @cmd = @cmd + '(max)' - else - set @cmd = @cmd + '(' + cast(@columnlength as varchar(10)) + ')' - end - if @columntype in ('decimal','numeric') - set @cmd = @cmd + '(' + cast(@columnprecision as varchar(10)) + ',' + cast(@columnscale as varchar(10)) + ')' - if @columntype in ('char','nchar','nvarchar','varchar') - set @cmd = @cmd + ' collate ' + @columncollation + ' ' - if @columnnullable = 0 - set @cmd = @cmd + ' not' - set @cmd = @cmd + ' null' - set @tablecolumns = @tablecolumns + @sep + @columnname - set @iitablecolumns = @iitablecolumns + @sep + 'ii.' + @columnname - set @ddtablecolumns = @ddtablecolumns + @sep + 'dd.' + @columnname - end - if @columnname <> 'DeleteStatus' - begin - set @viewcolumns = @viewcolumns + @sep + @columnname - if @columntype not in ('timestamp') - begin - set @trigcolumns = @trigcolumns + @sep + @columnname - end - end - set @sep = ',' - end - fetch next from tc - into @columnname,@columntype,@columnlength,@columnnullable,@columncollation,@columnprecision,@columnscale - end - close tc - deallocate tc - - --modify shadow table ---print 'modify shadow table: ' + @cmd - exec (@cmd) - set @cmd = '' - - --add extended property for shadow table dts - set @cmd = 'sys.sp_addextendedproperty @name=N''MS_Description'', @value=N''{datetime}'' , @level0type=N''SCHEMA'',@level0name=N''dbo'', @level1type=N''TABLE'',@level1name=N''' + @shadowtablename + ''', @level2type=N''COLUMN'',@level2name=N''DTS''' - exec (@cmd) - set @cmd = '' - - --add original indexes to shadowtable - --variables for cursor - declare @indexcolumnname varchar(max) - declare ic cursor for - select - c.name columnname - from sysindexes i - inner join sysobjects o ON i.id = o.id - inner join sysindexkeys ik on i.id = ik.id and i.indid = ik.indid - inner join syscolumns c ON ik.id = c.id and ik.colid = c.colid - where o.name = @newtablename - - open ic - fetch next from ic into @indexcolumnname - while @@fetch_status = 0 - begin - set @cmd = 'CREATE NONCLUSTERED INDEX IX_' + @shadowtablename + @indexcolumnname + ' on ' + @shadowtablename + ' - (' + @indexcolumnname + ') - WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]' - exec (@cmd) - set @cmd = '' - fetch next from ic into @indexcolumnname - end - close ic - deallocate ic - - --create view - set @cmd = 'create view ' + @tablename + ' as select ' + @viewcolumns + ' from ' + @newtablename + ' where DeleteStatus = 0' ---print 'create view: ' + @cmd - exec (@cmd) - set @cmd = '' - - --create update trigger on table - set @cmd = 'create trigger tr_' + @newtablename + '_Update on ' + @newtablename + - ' for update as - begin - if exists (select * from inserted) - begin - insert into ' + @shadowtablename + '(' + @tablecolumns + ') - select ' + @ddtablecolumns + ' from deleted dd - inner join inserted ii on ' + @primarykey + ' - end - end' ---print 'table trigger update: ' + @cmd - exec (@cmd) - set @cmd = '' - - --create delete trigger on view - set @cmd = 'create trigger tr_' + @tablename + '_Delete on ' + @tablename + - ' instead of delete as - begin - update ii set DeleteStatus = (select max(DeleteID) from DeleteLog where SPID = @@spid), DTS = getdate(), - UserID = (select top 1 UserID from DeleteLog where SPID = @@spid order by deleteid desc) - from ' + @newtablename + ' ii inner join deleted dd on ' + @primarykey + ' - insert into ' + @shadowtablename + '(' + @tablecolumns + ') - select ' + @iitablecolumns + ' - from ' + @newtablename + ' ii inner join deleted dd on ' + @primarykey + ' - where ii.DeleteStatus > 0 - end' ---print 'view trigger delete: ' + @cmd - exec (@cmd) - set @cmd = '' -end -GO -jcbAuditConfig 'Annotations' -go -jcbAuditConfig 'Contents' -go -jcbAuditConfig 'Documents' -go -jcbAuditConfig 'Entries' -go -jcbAuditConfig 'Grids' -go -jcbAuditConfig 'Images' -go -jcbAuditConfig 'Items' -go -jcbAuditConfig 'Parts' -go ---new stuff -jcbAuditConfig 'ROUsages' -go -jcbAuditConfig 'Transitions' -go - -/****** Object: Alter Table: contentaudits ******/ ---alter table contentaudits add ActionDTS datetime, ActionType varchar(100) -alter table contentaudits add ActionDTS datetime -go --- Display the status of alter table -IF (@@Error = 0) PRINT 'Alter Table: contentaudits Succeeded' -ELSE PRINT 'Alter Table: contentaudits Error on Creation' -GO - -/****** Object: Alter Table: tblcontents ******/ ---alter table tblcontents add ActionDTS datetime, ActionType varchar(100) -alter table tblcontents add ActionDTS datetime -go --- Display the status of alter table -IF (@@Error = 0) PRINT 'Alter Table: tblcontents Succeeded' -ELSE PRINT 'Alter Table: tblcontents Error on Creation' -GO - -/****** Object: Alter Table: annotationaudits ******/ ---alter table annotationaudits add ActionDTS datetime, ActionType varchar(100) -alter table annotationaudits add ActionDTS datetime -go --- Display the status of alter table -IF (@@Error = 0) PRINT 'Alter Table: annotationaudits Succeeded' -ELSE PRINT 'Alter Table: annotationaudits Error on Creation' -GO - -/****** Object: Alter Table: tblAnnotations ******/ ---alter table tblAnnotations add ActionDTS datetime, ActionType varchar(100) -alter table tblAnnotations add ActionDTS datetime -go --- Display the status of alter table -IF (@@Error = 0) PRINT 'Alter Table: tblAnnotations Succeeded' -ELSE PRINT 'Alter Table: tblAnnotations Error on Creation' -GO - -/****** Object: Alter Table: gridaudits ******/ -alter table gridaudits add ContentAuditID bigint NOT NULL CONSTRAINT [DF_GridAudits_ContentAuditID] DEFAULT ((0)) -go --- Display the status of alter table -IF (@@Error = 0) PRINT 'Alter Table: gridaudits Succeeded' -ELSE PRINT 'Alter Table: gridaudits Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[ve_GetPartType] Script Date: 05/18/2011 11:20:48 ******/ -/* -select ItemID, dbo.[ve_GetPartType](ItemID) -from Items II -where ItemID in(10181,10182,10183) -*/ --- drop function ve_GetPath -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create FUNCTION [dbo].[ve_GetPartType] (@ItemID int) RETURNS varchar(max) -WITH EXECUTE AS OWNER -AS -BEGIN --- declare @STructID int ---set @StructID=11 -declare @PartType varchar(max); -with Itemz(ItemID,PreviousID,PartType) as ( - Select ItemID,PreviousID,cast(null as varchar(max)) - from Items I - where ItemID=@ItemID - Union All --- siblings - Select Z.PreviousID,II.PreviousID,cast(null as varchar(max)) - from Items II - Join Itemz Z on II.ItemID = Z.PreviousID - where Z.PreviousID != 0 - and Z.PartType is null - Union All --- children - select Z.ItemID,Z.PreviousID, - cast(case P.FromType - when 1 then 'Procedure' - when 2 then 'Section' - when 3 then 'Caution' - when 4 then 'Note' - when 5 then 'RNO' - when 6 then 'Step' - when 7 then 'Table' - else 'Unknown' - end as varchar(max)) PartType - from Parts P - join Itemz Z on P.ItemID=Z.ItemID - where Z.PartType is null -) -select @PartType = PartType From Itemz where PartType is not null -OPTION (MAXRECURSION 10000) -return @PartType -END; -GO --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Function: ve_GetPartType Succeeded' -ELSE PRINT 'Function: ve_GetPartType Error on Creation' -go - -/****** Object: UserDefinedFunction [dbo].[ve_GetPartContentID] Script Date: 05/18/2011 11:20:48 ******/ -/* -select ItemID, dbo.[ve_GetPartContentID](ItemID) -from ItemAudits II -where ii.ItemID in(10181,10182,10183) -*/ --- drop function ve_GetPath -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[ve_GetPartContentID] (@ItemID int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN --- declare @STructID int ---set @StructID=11 -declare @ContentID int; -with Itemz(ItemID,PreviousID,ContentID,path) as ( - Select ItemID,PreviousID,cast(null as int),'.' + cast(itemid as varchar(max)) + '.' - from ItemAudits I - where ItemID=@ItemID -and i.deletestatus > 0 - Union All --- siblings - Select Z.PreviousID,II.PreviousID,cast(null as int),z.path + '.' + cast(z.previousid as varchar(max)) + '.' - from Items II - Join Itemz Z on II.ItemID = Z.PreviousID - where Z.PreviousID != 0 - and Z.ContentID is null - Union All --- siblings - Select Z.PreviousID,II.PreviousID,cast(null as int),z.path + '.' + cast(z.previousid as varchar(max)) + '.' - from ItemAudits II - Join Itemz Z on II.ItemID = Z.PreviousID - where Z.PreviousID != 0 - and Z.ContentID is null -and ii.deletestatus > 0 -and z.path not like '%.' + cast(z.previousid as varchar(max)) + '.%' - Union All --- children - select Z.ItemID,Z.PreviousID, -P.Contentid,z.path + '.' + cast(Z.ItemID as varchar(max)) + '.' - from Parts P - join Itemz Z on P.ItemID=Z.ItemID - where Z.ContentID is null - Union All --- children - select Z.ItemID,Z.PreviousID, -P.Contentid,z.path + '.' + cast(Z.ItemID as varchar(max)) + '.' - from PartAudits P - join Itemz Z on P.ItemID=Z.ItemID - where Z.ContentID is null -) -select @ContentID = min(ContentID) From Itemz where ContentID is not null -OPTION (MAXRECURSION 10000) -return @ContentID -END; -GO --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Function: ve_GetPartContentID Succeeded' -ELSE PRINT 'Function: ve_GetPartContentID Error on Creation' -go - -/****** Object: UserDefinedFunction [dbo].[ve_GetPartFromType] Script Date: 05/18/2011 11:20:48 ******/ -/* -select ItemID, dbo.[ve_GetPartFromType](ItemID) -from ItemAudits II -where ii.ItemID in(10181,10182,10183) -*/ --- drop function ve_GetPath -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create FUNCTION [dbo].[ve_GetPartFromType] (@ItemID int) RETURNS int -WITH EXECUTE AS OWNER -AS -BEGIN --- declare @STructID int ---set @StructID=11 -declare @FromType int; -with Itemz(ItemID,PreviousID,FromType,path) as ( - Select ItemID,PreviousID,cast(null as int),'.' + cast(itemid as varchar(max)) + '.' - from ItemAudits I - where ItemID=@ItemID -and i.deletestatus > 0 - Union All --- siblings - Select Z.PreviousID,II.PreviousID,cast(null as int),z.path + '.' + cast(z.previousid as varchar(max)) + '.' - from Items II - Join Itemz Z on II.ItemID = Z.PreviousID - where Z.PreviousID != 0 - and Z.FromType is null - Union All --- siblings - Select Z.PreviousID,II.PreviousID,cast(null as int),z.path + '.' + cast(z.previousid as varchar(max)) + '.' - from ItemAudits II - Join Itemz Z on II.ItemID = Z.PreviousID - where Z.PreviousID != 0 - and Z.FromType is null -and ii.deletestatus > 0 -and z.path not like '%.' + cast(z.previousid as varchar(max)) + '.%' - Union All --- children - select Z.ItemID,Z.PreviousID, -P.FromType,z.path + '.' + cast(Z.ItemID as varchar(max)) + '.' - from Parts P - join Itemz Z on P.ItemID=Z.ItemID - where Z.FromType is null - Union All --- children - select Z.ItemID,Z.PreviousID, -P.FromType,z.path + '.' + cast(Z.ItemID as varchar(max)) + '.' - from PartAudits P - join Itemz Z on P.ItemID=Z.ItemID - where Z.FromType is null -) -select @FromType = min(FromType) From Itemz where FromType is not null -OPTION (MAXRECURSION 10000) -return @FromType -END; -GO --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Function: ve_GetPartFromType Succeeded' -ELSE PRINT 'Function: ve_GetPartFromType Error on Creation' -go - - -/****** Object: StoredProcedure [getAnnotationAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAnnotationAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [AnnotationID], - [ItemID], - [TypeID], - [RtfText], - [SearchText], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [AnnotationAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationAudits Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotationAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAnnotationAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [AnnotationID], - [ItemID], - [TypeID], - [RtfText], - [SearchText], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [AnnotationAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationAudit Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotationAuditsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationAuditsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationAuditsByItemID]; -GO - -/* -exec getannotationauditsbyitemid 894 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAnnotationAuditsByItemID] -( - @ItemID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [AnnotationID], - [ItemID], - [TypeID], - [RtfText], - [SearchText], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [AnnotationAudits] - WHERE ItemID = @ItemID - AND AnnotationID NOT IN (SELECT AnnotationID FROM Annotations) - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationAuditsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationAuditsByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotationAuditsByAnnotationID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getAnnotationAuditsByAnnotationID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getAnnotationAuditsByAnnotationID]; -GO - -/* -exec getannotationauditsbyannotationid 53 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getAnnotationAuditsByAnnotationID] -( - @AnnotationID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [AnnotationID], - [ItemID], - [TypeID], - [RtfText], - [SearchText], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [AnnotationAudits] - WHERE AnnotationID = @AnnotationID - AND DeleteStatus = 0 - --AND AnnotationID IN (SELECT AnnotationID FROM Annotations) - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getAnnotationAuditsByAnnotationID Succeeded' -ELSE PRINT 'Procedure Creation: getAnnotationAuditsByAnnotationID Error on Creation' -GO - -/****** Object: StoredProcedure [getContentAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ContentAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAudits Succeeded' -ELSE PRINT 'Procedure Creation: getContentAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getContentAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ContentAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAudit Succeeded' -ELSE PRINT 'Procedure Creation: getContentAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getContentAuditsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsByContentID] -( - @ContentID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ContentAudits] - WHERE ContentID = @ContentID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getContentAuditsByDeleteStatus] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsByDeleteStatus]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getContentAuditsByDeleteStatus]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsByDeleteStatus] -( - @DeleteStatus int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ContentAudits] - WHERE DeleteStatus = @DeleteStatus - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getContentAuditsByDeleteStatus Succeeded' -ELSE PRINT 'Procedure Creation: getContentAuditsByDeleteStatus Error on Creation' -GO - -/****** Object: StoredProcedure [getDocumentAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocumentAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocumentAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocumentAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [DocID], - [LibTitle], - [DocContent], - [DocAscii], - [Config], - [DTS], - [UserID], - [FileExtension], - [DeleteStatus] - FROM [DocumentAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocumentAudits Succeeded' -ELSE PRINT 'Procedure Creation: getDocumentAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getDocumentAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocumentAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocumentAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocumentAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [DocID], - [LibTitle], - [DocContent], - [DocAscii], - [Config], - [DTS], - [UserID], - [FileExtension], - [DeleteStatus] - FROM [DocumentAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocumentAudit Succeeded' -ELSE PRINT 'Procedure Creation: getDocumentAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getDocumentAuditsByDocID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getDocumentAuditsByDocID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getDocumentAuditsByDocID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getDocumentAuditsByDocID] -( - @DocID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [DocID], - [LibTitle], - [DocContent], - [DocAscii], - [Config], - [DTS], - [UserID], - [FileExtension], - [DeleteStatus] - FROM [DocumentAudits] - WHERE DocID = @DocID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getDocumentAuditsByDocID Succeeded' -ELSE PRINT 'Procedure Creation: getDocumentAuditsByDocID Error on Creation' -GO - -/****** Object: StoredProcedure [getEntryAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getEntryAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getEntryAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getEntryAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [DocID], - [DTS], - [UserID], - [DeleteStatus] - FROM [EntryAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getEntryAudits Succeeded' -ELSE PRINT 'Procedure Creation: getEntryAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getEntryAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getEntryAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getEntryAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getEntryAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [DocID], - [DTS], - [UserID], - [DeleteStatus] - FROM [EntryAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getEntryAudit Succeeded' -ELSE PRINT 'Procedure Creation: getEntryAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getEntryAuditsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getEntryAuditsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getEntryAuditsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getEntryAuditsByContentID] -( - @ContentID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [DocID], - [DTS], - [UserID], - [DeleteStatus] - FROM [EntryAudits] - WHERE ContentID = @ContentID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getEntryAuditsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getEntryAuditsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getGridAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGridAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGridAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGridAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus], - [ContentAuditID] - FROM [GridAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGridAudits Succeeded' -ELSE PRINT 'Procedure Creation: getGridAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getGridAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGridAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGridAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGridAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus], - [ContentAuditID] - FROM [GridAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGridAudit Succeeded' -ELSE PRINT 'Procedure Creation: getGridAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getGridAuditsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getGridAuditsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getGridAuditsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getGridAuditsByContentID] -( - @ContentID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus], - [ContentAuditID] - FROM [GridAudits] - WHERE ContentID = @ContentID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getGridAuditsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getGridAuditsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getImageAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getImageAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getImageAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getImageAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [ImageType], - [FileName], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ImageAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getImageAudits Succeeded' -ELSE PRINT 'Procedure Creation: getImageAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getImageAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getImageAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getImageAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getImageAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [ImageType], - [FileName], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ImageAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getImageAudit Succeeded' -ELSE PRINT 'Procedure Creation: getImageAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getImageAuditsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getImageAuditsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getImageAuditsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getImageAuditsByContentID] -( - @ContentID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [ImageType], - [FileName], - [Data], - [Config], - [DTS], - [UserID], - [DeleteStatus] - FROM [ImageAudits] - WHERE ContentID = @ContentID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getImageAuditsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getImageAuditsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getItemAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ItemID], - [PreviousID], - [ContentID], - [DTS], - [UserID], - [DeleteStatus] - FROM [ItemAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemAudits Succeeded' -ELSE PRINT 'Procedure Creation: getItemAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getItemAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ItemID], - [PreviousID], - [ContentID], - [DTS], - [UserID], - [DeleteStatus] - FROM [ItemAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemAudit Succeeded' -ELSE PRINT 'Procedure Creation: getItemAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getItemAuditsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getItemAuditsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getItemAuditsByItemID]; -GO - -/* -getitemauditsbyitemid 10183 - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getItemAuditsByItemID] -( - @ItemID int -) - -WITH EXECUTE AS OWNER -AS -/* - with Itemz([AuditType],[Level], [ParentID], [Ordinal], [ItemID], [PreviousID], [FromType], [ContentID], [DTS], [UserID], [LastChanged]) as ( - Select 'root' [AuditType], 0 [Level], 0 [ParentID], 0 [Ordinal], [ItemID], [PreviousID],0 [FromType],[ContentID],[DTS],[UserID],[LastChanged] - FROM [Items] - where [ItemID]= @ItemID - Union All - -- Children - select 'chld' [AuditType], [Level] + 2,Z.ItemID,0, I.[ItemID], I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - -- Siblings - Union All - select 'sibl' [AuditType], [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[ItemID], I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID],I.[LastChanged] - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - where Z.[Level] > 0 - ) -*/ - -select * from -( - --get deleted previous item - select 0 Level,ia.*,dbo.[ve_GetPartType](@ItemID) ItemType from - itemaudits ia - inner join itemaudits iaa on ia.itemid = iaa.previousid - where iaa.itemid = @ItemID - and ia.itemid not in (select itemid from items where itemid = ia.itemid) - and ia.deletestatus in (select max(deletestatus) from itemaudits where itemid = ia.itemid) - union - --get deleted next item -/* - select 1 Level,ia.*,@itemtype ItemType from itemaudits ia - where ia.previousid = @ItemID - and ia.itemid not in (select itemid from items where itemid = ia.itemid) - and ia.deletestatus in (select max(deletestatus) from itemaudits where itemid = ia.itemid) -*/ - select 1 Level, - ia.[AuditID], - ia.[ItemID], - ia.[PreviousID], - ia.[ContentID], - ia.[DTS], - ia.[UserID], - ti.[DeleteStatus] -,dbo.[ve_GetPartType](@ItemID) ItemType - from itemaudits ia - inner join tblitems ti on ia.itemid = ti.itemid - where ia.previousid = @ItemID - and ti.deletestatus > 0 -and ia.dts = ti.dts - union - --get chillins - select 2 Level,ia.*, -case -when pa.fromtype = 1 then 'Procedure' -when pa.fromtype = 2 then 'Section' -when pa.fromtype = 3 then 'Caution' -when pa.fromtype = 4 then 'Note' -when pa.fromtype = 5 then 'RNO' -when pa.fromtype = 6 then 'Step' -when pa.fromtype = 7 then 'Table' -else 'Unknown' -end itemtype - from itemaudits ia - inner join partaudits pa on ia.itemid = pa.itemid - inner join items ii on pa.contentid = ii.contentid - where ii.itemid = @ItemID - and ia.itemid not in (select itemid from items where itemid = ia.itemid) - and ia.deletestatus in (select max(deletestatus) from itemaudits where itemid = ia.itemid) -) ia -order by deletestatus desc -OPTION (MAXRECURSION 10000) ---select * from itemz order by parentid,ordinal - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getItemAuditsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getItemAuditsByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [restoreDeletedItem] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[restoreDeletedItem]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [restoreDeletedItem]; -GO -/* -restoreDeletedItem 2274,1,1940,2 -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[restoreDeletedItem] -( - @ItemID int, - @DeleteID int, - @CurrentID int, - @Level int -) - -WITH EXECUTE AS OWNER -AS - DECLARE @PreviousID int - DECLARE @NextID int - DECLARE @ContentID int -declare @fromtype int - IF @Level = 0 - BEGIN - SET @NextID = @CurrentID - SELECT @PreviousID = PreviousID FROM Items WHERE ItemID = @CurrentID - END - IF @Level = 1 - BEGIN - SELECT @NextID = ItemID FROM Items WHERE PreviousID = @CurrentID - SET @PreviousID = @CurrentID - END - SELECT @ContentID = dbo.[ve_GetPartContentID](@ItemID) -select @fromtype = dbo.[ve_GetPartFromType](@ItemID) -if @level = 2 -begin - select @NextID = itemid from parts where contentid = @contentid and fromtype = @fromtype -end - UPDATE tblParts SET DeleteStatus = 0 WHERE ItemID IN (SELECT ItemID FROM PartAudits WHERE DeleteStatus = @DeleteID) -update tblparts set deletestatus = 0 where contentid = @contentid and fromtype = @fromtype - UPDATE tblContents SET DeleteStatus = 0, ActionDTS = getdate() WHERE ContentID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblItems SET DeleteStatus = 0,PreviousID = CASE WHEN ItemID = @ItemID THEN @PreviousID ELSE PreviousID END - WHERE ItemID IN (SELECT ItemID FROM ItemAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblGrids SET DeleteStatus = 0 WHERE ContentID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblEntries SET DeleteStatus = 0 WHERE DocID IN (SELECT DocID FROM EntryAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblAnnotations SET DeleteStatus = 0, ActionDTS = getdate() WHERE deletestatus = @deleteid -- ItemID in (SELECT ItemID FROM ItemAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblROUsages SET DeleteStatus = 0 WHERE deletestatus = @deleteid --ContentID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - UPDATE tblTransitions SET DeleteStatus = 0 WHERE deletestatus = @deleteid --FromID IN (SELECT ContentID FROM ContentAudits WHERE DeleteStatus = @DeleteID) - IF @NextID IS NOT NULL - BEGIN - UPDATE Items SET PreviousID = @ItemID WHERE ItemID = @NextID - IF @ContentID IS NOT NULL - BEGIN - UPDATE Parts SET ItemID = @ItemID WHERE ItemID = @NextID and ContentID = @ContentID - END - END ---else --- begin ---update parts set itemid = @itemid where contentid = @contentid and fromtype = @fromtype --- end - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: restoreDeletedItem Succeeded' -ELSE PRINT 'Procedure Creation: restoreDeletedItem Error on Creation' -GO - -/****** Object: StoredProcedure [restoreDeletedAnnotation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[restoreDeletedAnnotation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [restoreDeletedAnnotation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[restoreDeletedAnnotation] -( - @AnnotationID int -) - -WITH EXECUTE AS OWNER -AS - UPDATE tblAnnotations SET DeleteStatus = 0, ActionDTS = getdate() WHERE DeleteStatus = (SELECT DeleteStatus FROM tblAnnotations WHERE AnnotationID = @AnnotationID) - RETURN -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: restoreDeletedAnnotation Succeeded' -ELSE PRINT 'Procedure Creation: restoreDeletedAnnotation Error on Creation' -GO - -/****** Object: StoredProcedure [getPartAudits] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPartAudits]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPartAudits]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPartAudits] - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [FromType], - [ItemID], - [DTS], - [UserID], - [DeleteStatus] - FROM [PartAudits] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPartAudits Succeeded' -ELSE PRINT 'Procedure Creation: getPartAudits Error on Creation' -GO - -/****** Object: StoredProcedure [getPartAudit] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPartAudit]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPartAudit]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPartAudit] - -( - @AuditID bigint -) -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [FromType], - [ItemID], - [DTS], - [UserID], - [DeleteStatus] - FROM [PartAudits] - WHERE [AuditID]=@AuditID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPartAudit Succeeded' -ELSE PRINT 'Procedure Creation: getPartAudit Error on Creation' -GO - -/****** Object: StoredProcedure [getPartAuditsByContentID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPartAuditsByContentID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPartAuditsByContentID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPartAuditsByContentID] -( - @ContentID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [FromType], - [ItemID], - [DTS], - [UserID], - [DeleteStatus] - FROM [PartAudits] - WHERE ContentID = @ContentID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPartAuditsByContentID Succeeded' -ELSE PRINT 'Procedure Creation: getPartAuditsByContentID Error on Creation' -GO - -/****** Object: StoredProcedure [getPartAuditsByItemID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPartAuditsByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPartAuditsByItemID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPartAuditsByItemID] -( - @ItemID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [FromType], - [ItemID], - [DTS], - [UserID], - [DeleteStatus] - FROM [PartAudits] - WHERE ItemID = @ItemID - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPartAuditsByItemID Succeeded' -ELSE PRINT 'Procedure Creation: getPartAuditsByItemID Error on Creation' -GO - -/****** Object: StoredProcedure [getPartAuditsByDeleteStatus] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getPartAuditsByDeleteStatus]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getPartAuditsByDeleteStatus]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getPartAuditsByDeleteStatus] -( - @DeleteStatus int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [FromType], - [ItemID], - [DTS], - [UserID], - [DeleteStatus] - FROM [PartAudits] - WHERE DeleteStatus = @DeleteStatus - ORDER BY AuditID DESC - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getPartAuditsByDeleteStatus Succeeded' -ELSE PRINT 'Procedure Creation: getPartAuditsByDeleteStatus Error on Creation' -GO - -/****** Object: Trigger [tr_tblContents_Update] ******/ -ALTER trigger [dbo].[tr_tblContents_Update] on [dbo].[tblContents] for update as - begin - if exists (select * from inserted) - begin - if update(Number) or update(Text) or update(Type) or update(FormatID) or update(Config) or update(DeleteStatus) - begin - insert into ContentAudits(ContentID,Number,Text,Type,FormatID,Config,DTS,UserID,DeleteStatus,ActionDTS) - select dd.ContentID,dd.Number,dd.Text,dd.Type,dd.FormatID,dd.Config,dd.DTS,dd.UserID,dd.DeleteStatus,dd.ActionDTS - from deleted dd - inner join inserted ii on dd.ContentID = ii.ContentID - where dd.Text not like '% 0 - end -GO - --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Trigger Ateration: tr_ROUsages_Delete Succeeded' -ELSE PRINT 'Trigger Ateration: tr_ROUsages_Delete Error on Creation' -GO - -/****** Object: StoredProcedure [restoreChangedAnnotation] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[restoreChangedAnnotation]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [restoreChangedAnnotation]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[restoreChangedAnnotation] -( - @AuditID int -) - -WITH EXECUTE AS OWNER -AS - DECLARE @AnnotationID int - DECLARE @RtfText nvarchar(max) - DECLARE @SearchText nvarchar(max) - DECLARE @Config nvarchar(max) - DECLARE @DTS datetime - SELECT @AnnotationID = AnnotationID,@RtfText = RtfText,@SearchText = SearchText,@Config = Config,@DTS = DTS - FROM AnnotationAudits WHERE AuditID = @AuditID - UPDATE tblAnnotations SET RtfText = @RtfText,SearchText = @SearchText,Config = @Config,DTS = @DTS WHERE AnnotationID = @AnnotationID - RETURN -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: restoreChangedAnnotation Succeeded' -ELSE PRINT 'Procedure Creation: restoreChangedAnnotation Error on Creation' -GO - -/****** Object: TableFunction [vefn_FindTransitionIDs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindTransitionIDs]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindTransitionIDs]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindTransitionIDs](@ContentAuditID int) -RETURNS @IDs TABLE -( - TransitionID int PRIMARY KEY, - TransitionAction char(3) -) -WITH EXECUTE AS OWNER -AS -BEGIN - - DECLARE @ContentID int - DECLARE @text varchar(max) - SELECT @ContentID = ContentID,@text = Text FROM ContentAudits WHERE AuditID = @ContentAuditID - DECLARE @index1 int - DECLARE @index2 int - DECLARE @tid varchar(max) - DECLARE @trid int - WHILE (LEN(@text) > 0) - BEGIN - SET @index1 = CHARINDEX('#Link:Transition' , @text) - IF (@index1 > 0) - BEGIN - SET @text = RIGHT(@text, (LEN(@text) - @index1)) - SET @index1 = CHARINDEX(' ', @text) - SET @text = RIGHT(@text, (LEN(@text) - @index1)) - SET @index2 = CHARINDEX(' ', @text) - SET @tid = LTRIM(LEFT(@text, @index2)) - SET @text = RIGHT(@text, (len(@text) - @index2)) - SET @trid = CAST(@tid AS INT) - IF EXISTS (SELECT TransitionID FROM tblTransitions WHERE TransitionID = @trid AND DeleteStatus < 0) - INSERT INTO @IDs VALUES (@trid, 'ADD') - ELSE - INSERT INTO @IDs VALUES (@trid, NULL) - END - ELSE - SET @text = '' - END - INSERT INTO @IDs SELECT tt.TransitionID,'DEL' FROM tblTransitions tt LEFT JOIN @IDs ti ON tt.TransitionID = ti.TransitionID WHERE tt.FromID = @ContentID - AND ti.TransitionID IS NULL - DELETE FROM @IDs WHERE TransitionAction IS NULL - RETURN -END -GO - --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindTransitionIDs Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindTransitionIDs Error on Creation' -GO - -/****** Object: TableFunction [vefn_FindROUsageIDs] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_FindROUsageIDs]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_FindROUsageIDs]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_FindROUsageIDs](@ContentAuditID int) -RETURNS @IDs TABLE -( - ROUsageID int PRIMARY KEY, - ROUsageAction char(3) -) -WITH EXECUTE AS OWNER -AS -BEGIN - - DECLARE @ContentID int - DECLARE @text varchar(max) - SELECT @ContentID = ContentID,@text = Text FROM ContentAudits WHERE AuditID = @ContentAuditID - DECLARE @index1 int - DECLARE @index2 int - DECLARE @tid varchar(max) - DECLARE @trid int - WHILE (LEN(@text) > 0) - BEGIN - SET @index1 = CHARINDEX('#Link:Transition' , @text) - IF (@index1 > 0) - BEGIN - SET @text = RIGHT(@text, (LEN(@text) - @index1)) - SET @index1 = CHARINDEX(' ', @text) - SET @text = RIGHT(@text, (LEN(@text) - @index1)) - SET @index2 = CHARINDEX(' ', @text) - SET @tid = LTRIM(LEFT(@text, @index2)) - SET @text = RIGHT(@text, (len(@text) - @index2)) - SET @trid = CAST(@tid AS INT) - IF EXISTS (SELECT ROUsageID FROM tblROUsages WHERE ROUsageID = @trid AND DeleteStatus < 0) - INSERT INTO @IDs VALUES (@trid, 'ADD') - ELSE - INSERT INTO @IDs VALUES (@trid, NULL) - END - ELSE - SET @text = '' - END - INSERT INTO @IDs SELECT tt.ROUsageID,'DEL' FROM tblROUsages tt LEFT JOIN @IDs ti ON tt.ROUsageID = ti.ROUsageID WHERE tt.ContentID = @ContentID - AND ti.ROUsageID IS NULL - DELETE FROM @IDs WHERE ROUsageAction IS NULL - RETURN -END -GO - --- Display the status of func creation -IF (@@Error = 0) PRINT 'TableFunction Creation: vefn_FindROUsageIDs Succeeded' -ELSE PRINT 'TableFunction Creation: vefn_FindROUsageIDs Error on Creation' -GO - -/****** Object: StoredProcedure [restoreChangedContent] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[restoreChangedContent]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [restoreChangedContent]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[restoreChangedContent] -( - @AuditID int -) - -WITH EXECUTE AS OWNER -AS - DECLARE @ContentID int - DECLARE @Number nvarchar(256) - DECLARE @Text nvarchar(max) - DECLARE @Type int - DECLARE @FormatID int - DECLARE @Config nvarchar(max) - DECLARE @DTS datetime - DECLARE @Data xml - DECLARE @ConfigX xml - SELECT @Contentid = Contentid,@Number = Number,@Text = Text,@Type = Type,@FormatID = FormatID,@Config = Config,@DTS = DTS - FROM ContentAudits WHERE AuditID = @AuditID --- SELECT @Data = Data,@ConfigX = Config FROM GridAudits WHERE ContentID = @ContentID and DTS = @DTS - SELECT @Data = Data,@ConfigX = Config FROM GridAudits WHERE ContentID = @ContentID and ContentAuditID = @AuditID - UPDATE tblContents SET Number = @Number,Text = @Text,Type = @Type,FormatID = @FormatID,Config = @Config,DTS = @DTS, ActionDTS = getdate() - WHERE ContentID = @ContentID - UPDATE tblGrids SET Data = @Data,Config = @ConfigX WHERE ContentID = @ContentID ---transitions -update tblTransitions set deletestatus = 0 where transitionid in (select transitionid from vefn_FindTransitionIDs(@AuditID) where TransitionAction = 'ADD') -delete from transitions where transitionid in (select transitionid from vefn_FindTransitionIDs(@AuditID) where TransitionAction = 'DEL') ---transitions end ---rousages -update tblROUsages set deletestatus = 0 where rousageid in (select rousageid from vefn_FindROUsageIDs(@AuditID) where rousageaction = 'ADD') -delete from rousages where rousageid in (select rousageid from vefn_FindROUsageIDs(@AuditID) where rousageaction = 'DEL') ---rousages end - RETURN -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: restoreChangedContent Succeeded' -ELSE PRINT 'Procedure Creation: restoreChangedContent Error on Creation' -GO - -/****** Object: Trigger [tr_tblAnnotations_Update] ******/ -ALTER trigger [dbo].[tr_tblAnnotations_Update] on [dbo].[tblAnnotations] for update as - begin - if exists (select * from inserted) - begin - insert into AnnotationAudits(AnnotationID,ItemID,TypeID,RtfText,SearchText,Config,DTS,UserID,DeleteStatus,ActionDTS) - select dd.AnnotationID,dd.ItemID,dd.TypeID,dd.RtfText,dd.SearchText,dd.Config,dd.DTS,dd.UserID,dd.DeleteStatus,dd.ActionDTS - from deleted dd - inner join inserted ii on dd.AnnotationID = ii.AnnotationID - where (select count(*) from annotationaudits where annotationid = dd.annotationid and dts = dd.dts and ActionDTS = dd.ActionDTS) = 0 - end - end -GO - --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Trigger Ateration: tr_tblAnnotations_Update Succeeded' -ELSE PRINT 'Trigger Ateration: tr_tblAnnotations_Update Error on Creation' -GO - -/****** Object: StoredProcedure [deleteAnnotationWithUserID] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteAnnotationWithUserID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteAnnotationWithUserID]; -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[deleteAnnotationWithUserID] - -( - @AnnotationID int, - @UserID varchar(200) -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION ---delete log add - DECLARE @DeleteID int - INSERT INTO DeleteLog (UserID) VALUES (@UserID) - SELECT @DeleteID = SCOPE_IDENTITY() ---end delete log add - DELETE [Annotations] - WHERE [AnnotationID] = @AnnotationID ---delete log purge - DELETE from DeleteLog where DeleteID = @DeleteID ---end delete log purge - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO - --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteAnnotationWithUserID Succeeded' -ELSE PRINT 'Procedure Creation: deleteAnnotationWithUserID Error on Creation' -GO - -/****** Object: Trigger [tr_Annotations_Delete] ******/ -ALTER trigger [dbo].[tr_Annotations_Delete] on [dbo].[Annotations] instead of delete as - begin - update ii set DeleteStatus = (select max(DeleteID) from DeleteLog where SPID = @@spid),ActionDTS = getdate() ---DTS = getdate(), -,DTS = dd.dts, - UserID = (select top 1 UserID from DeleteLog where SPID = @@spid order by deleteid desc) - from tblAnnotations ii inner join deleted dd on dd.AnnotationID = ii.AnnotationID - insert into AnnotationAudits(AnnotationID,ItemID,TypeID,RtfText,SearchText,Config,DTS,UserID,DeleteStatus,ActionDTS) - select ii.AnnotationID,ii.ItemID,ii.TypeID,ii.RtfText,ii.SearchText,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS - from tblAnnotations ii inner join deleted dd on dd.AnnotationID = ii.AnnotationID - where ii.DeleteStatus > 0 - end -GO - --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Trigger Ateration: tr_Annotations_Delete Succeeded' -ELSE PRINT 'Trigger Ateration: tr_Annotations_Delete Error on Creation' -GO - -/****** Object: Trigger [tr_tblItems_Update] ******/ -ALTER trigger [dbo].[tr_tblItems_Update] on [dbo].[tblItems] for update as - begin - if exists (select * from inserted) - begin - insert into ItemAudits(ItemID,PreviousID,ContentID,DTS,UserID,DeleteStatus) - select dd.ItemID,dd.PreviousID,dd.ContentID,dd.DTS,dd.UserID,dd.DeleteStatus from deleted dd - inner join inserted ii on dd.ItemID = ii.ItemID - where dd.deletestatus = 0 or ii.deletestatus != 0 - end - end -GO - --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Trigger Ateration: tr_tblItems_Update Succeeded' -ELSE PRINT 'Trigger Ateration: tr_tblItems_Update Error on Creation' -GO - -/****** Object: Trigger [tr_Contents_Delete] ******/ -ALTER trigger [dbo].[tr_Contents_Delete] on [dbo].[Contents] instead of delete as - begin - update ii set DeleteStatus = (select max(DeleteID) from DeleteLog where SPID = @@spid), ActionDTS = getdate(), - UserID = (select top 1 UserID from DeleteLog where SPID = @@spid order by deleteid desc) - from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID - insert into ContentAudits(ContentID,Number,Text,Type,FormatID,Config,DTS,UserID,DeleteStatus,ActionDTS) - select ii.ContentID,ii.Number,ii.Text,ii.Type,ii.FormatID,ii.Config,ii.DTS,ii.UserID,ii.DeleteStatus,ii.ActionDTS - from tblContents ii inner join deleted dd on dd.ContentID = ii.ContentID - where ii.DeleteStatus > 0 - update ga set ga.contentauditid = (select max(auditid) from contentaudits where contentid = ga.contentid and deletestatus = ga.deletestatus) - from gridaudits ga join deleted dd on ga.contentid = dd.contentid where ga.contentauditid = 0 - end -go - --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Trigger Ateration: tr_Contents_Delete Succeeded' -ELSE PRINT 'Trigger Ateration: tr_Contents_Delete Error on Creation' -GO - -/****** Object: UserDefinedFunction [dbo].[vefn_tblChildItems] Script Date: 05/18/2011 11:20:48 ******/ -/* -select * from vefn_SiblingAndChildrenItemsByProc(30) II -join -*/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_SiblingAndChildrenItemsByProc](@ProcID int) -RETURNS @SiblingAndChildren TABLE -( - [ItemID] int PRIMARY KEY - , [DVPath] nvarchar(max) - , [Path] nvarchar(max) - , [Level] int - , [FromType] int - , [Ordinal] int - , [ParentID] int - , [PreviousID] int - , [ContentID] int - , [DTS] datetime - , [UserID] nvarchar(100) - , [pContentID] int - , [pDTS] datetime - , [pUserID] nvarchar(100) - , [IsRNO] int - --- , [PPath] nvarchar(max) --- , [POrdinalPath] nvarchar(max) - , [OrdinalPath] nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -BEGIN -with Itemz([ItemID], [DVPath], [Level], [ParentID], [Ordinal], [PreviousID], [FromType], [ContentID], [DTS], [UserID],[pContentID], - [pDTS],[pUserID],PPath, [Path], [IsRNO], [POrdinalPath], [OrdinalPath]) as ( - Select [I].[ItemID], '' DVPath, 0 [Level], 0 [ParentID], 0 [Ordinal], [PreviousID],0 [FromType],[I].[ContentID],[I].[DTS],[I].[UserID] - ,0 [pContentID],[I].[DTS] [pDTS], [I].[UserID] [pUserID], - Cast('' as nvarchar(max)) [PPath], - Cast(Case when C.Type < 20000 then @Delim + C.Number + @DelimNumber + C.Text else '1' end as nvarchar(max)) [Path], - 0 IsRNO, Cast('' as nvarchar(max)) [POrdinalPath], Cast('0001' as nvarchar(max)) [OrdinalPath] - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - WHERE I.[ItemID] = @ProcID -Union All --- Children - select I.[ItemID], DVPath, [Level] + 1,Z.ItemID,0, I.[PreviousID], P.[FromType],I.[ContentID],I.[DTS],I.[UserID], - P.[ContentID] [pContentID],P.[DTS] [pDTS],P.[UserID] [pUserID] - ,PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim +C.Number + @DelimNumber + C.Text - when 1 then @Delim +C.Number + @DelimNumber + C.Text - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + cast(1 as varchar(3)) - end end Path, - case when P.FromType = 5 then -1 else 0 end IsRNO, - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-00001' - from Itemz Z - join Parts P on P.ContentID = Z.ContentID - join Items I on I.ItemID = P.ItemID - join Contents C on C.ContentID = I.ContentID -Union All --- Siblings - select I.[ItemID], DVPath, [Level] ,Z.[ParentID],Z.[Ordinal] +1, I.[PreviousID], [FromType],I.[ContentID],I.[DTS],I.[UserID] - ,null,null,null, - PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + C.Number + @DelimNumber + C.Text - when 1 then @Delim + C.Number + @DelimNumber + C.Text - else case when Path like '%.%' then @DelimStep else @Delim end + cast(Ordinal + 2 as varchar(3)) - end Path, 0, - POrdinalPath, - POrdinalPath + right('00000' + cast(Z.[Ordinal] + 2 as varchar(5)), 5) - from Itemz Z - join Items I on I.PreviousID = Z.ItemID - join Contents C on C.ContentID = I.ContentID - --where Z.[Level] > 0 - -) -insert into @SiblingAndChildren -select I.[ItemID], [DvPath], [Path], I.[Level],I.[FromType],I.[Ordinal], I.[ParentID], I.[PreviousID],I.[ContentID],I.[DTS],I.[UserID], - [pContentID],[pDTS],[pUserID],[IsRNO]/*,[PPath],[POrdinalPath]*/,[OrdinalPath] - from ItemZ I -OPTION (MAXRECURSION 10000) -END -RETURN -END -GO --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Function: vefn_SiblingAndChildrenItemsByProc Succeeded' -ELSE PRINT 'Function: vefn_SiblingAndChildrenItemsByProc Error on Creation' - -go - -/****** Object: UserDefinedFunction [dbo].[vefn_ProcedureByProcID] Script Date: 05/18/2011 11:20:48 ******/ - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create FUNCTION [dbo].[vefn_ProcedureByProcID](@ProcID int) -RETURNS @SiblingAndChildren TABLE -( - [ItemID] int PRIMARY KEY - , [DVPath] nvarchar(max) - , [Path] nvarchar(max) - , [Level] int - , [FromType] int - , [Ordinal] int - , [ParentID] int - , [PreviousID] int - , [ContentID] int - , [DTS] datetime - , [UserID] nvarchar(100) - , [pContentID] int - , [pDTS] datetime - , [pUserID] nvarchar(100) - , [IsRNO] int - --- , [PPath] nvarchar(max) --- , [POrdinalPath] nvarchar(max) - , [OrdinalPath] nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -BEGIN -insert into @SiblingAndChildren - Select -[I].[ItemID] -, '' DVPath -, Cast(Case when C.Type < 20000 then @Delim + C.Number + @DelimNumber + C.Text else '1' end as nvarchar(max)) [Path] -,0 [Level] -,0 [FromType] -, 0 [Ordinal] -, 0 [ParentID] -, [PreviousID] -,[I].[ContentID] -,[I].[DTS] -,[I].[UserID] - ,0 [pContentID] -,[I].[DTS] [pDTS] -, [I].[UserID] [pUserID] -,0 IsRNO - , Cast('0001' as nvarchar(max)) [OrdinalPath] - FROM [Items] I - Join Contents C on C.ContentID=I.ContentID - WHERE I.[ItemID] = @ProcID -END -RETURN -END -go --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Function: vefn_ProcedureByProcID Succeeded' -ELSE PRINT 'Function: vefn_ProcedureByProcID Error on Creation' - -go - - -/****** Object: UserDefinedFunction [dbo].[vefn_tblChildItems] Script Date: 05/18/2011 11:20:48 ******/ - -/* -declare @PreviousID as int -declare @ItemID as int -set @ItemID = 450 -select @PreviousID = PreviousID from items where ItemID = @ItemID - -Select * from Items where ItemID = @ItemID - -select * from Transitions -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -select CC.Text from Transitions TT -join contents CC on TT.FromID = CC.ContentID -where FromID in (Select ContentID from vefn_ChildItems(@PreviousID)) -AND (ToID = @ItemID or RangeID = @ItemID) - -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_tblChildItems](@ProcItemID int, @ItemID int, @IncludeDeletedChildren int) -RETURNS @Children TABLE -( - ItemID int PRIMARY KEY, - IContentID int, - IDeleteStatus int, - ProcDTS datetime, - Path nvarchar(max), - OrdinalPath nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -declare @path nvarchar(max) -declare @ppath nvarchar(max) -declare @ordinalpath nvarchar(max) -declare @pordinalpath nvarchar(max) -declare @ordinal int -declare @pitemid int -select @path = path,@ordinalpath = ordinalpath,@ordinal = ordinal,@pitemid = parentid from vefn_ProcedureByProcID(@ProcItemID) where itemid = @ItemID -if @pitemid = 0 begin - set @pordinalpath = '' - set @ppath = '' -end -else begin - select @ppath = path,@pordinalpath = ordinalpath from vefn_ProcedureByProcID(@ProcItemID) where itemid = @pitemID -end -declare @procdts datetime -select @procdts = dts from items where itemid = @ProcItemID -Declare @Delim char(1) -Set @Delim=char(7) -Declare @DelimNumber char(1) -Set @DelimNumber=char(17) -Declare @DelimStep char(1) -Set @DelimStep='.' -begin -with Itemz([Level], [ItemID], [ContentID], DeleteStatus, ProcDTS, PPath, [Path], [POrdinalPath], [OrdinalPath], [FromType], [Ordinal]) as ( - Select 0 [Level], [ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - @ppath [PPath], - @path [Path], - @pordinalpath [POrdinalPath], - @ordinalpath [OrdinalPath], -0 [FromType],@ordinal [Ordinal] - FROM [tblItems] I ---inner join tblContents C on C.ContentID=I.ContentID - where I.[ItemID]=@ItemID -Union All --- Children - select [Level] + 1, I.[ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim +C.Number + @DelimNumber + C.Text - when 1 then @Delim +C.Number + @DelimNumber + C.Text - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + -case when I.deletestatus != 0 then 'Old ' else '' end + cast(1 as varchar(3)) - end end Path, - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-00001', -P.[FromType],0 - from Itemz Z - join tblParts P on P.ContentID = Z.ContentID - join tblItems I on I.ItemID = P.ItemID -inner join tblContents C on C.ContentID=I.ContentID - where @IncludeDeletedChildren = 1 or z.DeleteStatus = 0 -Union All --- Children2 - select [Level] + 1, I.[ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - PATH + --'' - case C.Type/10000 - when 2 then - case P.FromType - when 3 then @DelimStep + 'Caution' - when 4 then @DelimStep + 'Note' - else '' end - else '' end - PPath, - Path + case C.Type/10000 - when 0 then @Delim +C.Number + @DelimNumber + C.Text - when 1 then @Delim +C.Number + @DelimNumber + C.Text - else - case P.FromType - --when 1 then 'PRC' + @Delim + cast(1 as varchar(3)) - --when 2 then 'SEC' + @Delim + cast(1 as varchar(3)) - when 3 then @DelimStep +'Caution' + @DelimStep + cast(1 as varchar(3)) - when 4 then @DelimStep +'Note' + @DelimStep + cast(1 as varchar(3)) - when 5 then @DelimStep +'RNO' + @DelimStep - when 7 then @DelimStep +'Table' + @DelimStep - else case when Z.FromType < 3 then @Delim else @DelimStep end + -case when I.deletestatus != 0 then 'Old ' else '' end + cast(1 as varchar(3)) - end end Path, - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-' , - OrdinalPath + '.' + Right('000' + Cast(P.FromType as varchar(4)), 4) + '-00001', -P.[FromType],0 - from Itemz Z - join PartAudits P on P.ContentID = Z.ContentID - join tblItems I on I.ItemID = P.ItemID and i.PreviousID is null -inner join tblContents C on C.ContentID=I.ContentID - where @IncludeDeletedChildren = 1 or z.DeleteStatus >= 0 --- Siblings -Union All - select [Level] , I.[ItemID], I.[ContentID], I.DeleteStatus, @procdts procdts, - PPath, - --'1' + - PPath + case C.Type/10000 - when 0 then @Delim + C.Number + @DelimNumber + C.Text - when 1 then @Delim + C.Number + @DelimNumber + C.Text - else case when Path like '%.%' then @DelimStep else @Delim end + -case when I.deletestatus != 0 then 'Old ' else '' end + cast(Ordinal + 2 as varchar(3)) - end Path, - POrdinalPath, - POrdinalPath + right('00000' + cast(Z.[Ordinal] + 2 as varchar(5)), 5), -FromType,Z.[Ordinal] +1 - from Itemz Z - join tblItems I on I.PreviousID = Z.ItemID -inner join tblContents C on C.ContentID=I.ContentID - where Z.[Level] > 0 -) -insert into @Children select distinct ItemID, ContentID, DeleteStatus, ProcDTS, Path, OrdinalPath from Itemz -RETURN -END -end - -go --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Function: vefn_tblChildItems Succeeded' -ELSE PRINT 'Function: vefn_tblChildItems Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_GetMyChronology]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_GetMyChronology]; -GO -/****** Object: UserDefinedFunction [dbo].[vefn_GetMyChronology] Script Date: 11/07/2012 18:09:17 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE FUNCTION [dbo].[vefn_GetMyChronology](@ProcItemID int, @ItemID int, @IncludeDeletedChildren int, @DTS datetime) -RETURNS @Chrono TABLE -( -[AuditID] bigint, -[ContentID] int, -[Number] nvarchar(max), -[Text] nvarchar(max), -[Type] int, -[FormatID] int, -[Config] nvarchar(max), -[DTS] datetime, -[UserID] nvarchar(max), -[DeleteStatus] int, -[ActionDTS] datetime, -[ActionWhat] nvarchar(max), -[ActionWhen] datetime, -[Path] nvarchar(max), -ItemID int, -TypeName nvarchar(max), -ordinalpath nvarchar(max) -) -WITH EXECUTE AS OWNER -AS -BEGIN -insert into @Chrono -select distinct [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath - from - ( - select - case - when lastauditid is null then 'Added' - when r.deletestatus > 0 then 'Deleted' - when lastauditid = -1 then 'Changed' - when DeletedAuditID is not null then 'Restored' --- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' - else 'Changed' - end actionwhat -,actiondts actionwhen --- ,case --- when lastauditid is null then dts --- when r.deletestatus > 0 then ActionDTS --- when lastauditid = -1 then dts --- when DeletedAuditID is not null then ActionDTS --- else dts --- end actionwhen -,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName - ,* - from vefn_tblchilditems (@ProcItemID,@ItemID,@IncludeDeletedChildren) t - inner join vefn_chronologyreport(@ProcItemID,@DTS) r - on t.icontentid = r.contentid --- where ActionDTS > procdts or dts > procdts - ) ah - order by OrdinalPath, contentid,auditid--actionwhen - RETURN -END -go -IF (@@Error = 0) PRINT 'TableFunction [vefn_GetMyChronology] Succeeded' -ELSE PRINT 'TableFunction [vefn_GetMyChronology] Error on Creation' -go - -/****** Object: StoredProcedure [dbo].[getContentAuditsChronologyByItemID] Script Date: 03/21/2012 15:58:26 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getContentAuditsChronologyByItemID]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) -DROP PROCEDURE [getContentAuditsChronologyByItemID]; -GO -/****** Object: StoredProcedure [getContentAuditsChronologyByItemID] ******/ -/* -getContentAuditsChronologyByItemID 10154,10154,0 -getContentAuditsChronologyByItemID 42,42,0 -getContentAuditsChronologyByItemID 9,9,0 -getContentAuditsChronologyByItemID 146,146,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE PROCEDURE [dbo].[getContentAuditsChronologyByItemID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin - select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) --- select distinct [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end -go --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'StoredProcedure [getContentAuditsChronologyByItemID] Succeeded' -ELSE PRINT 'StoredProcedure [getContentAuditsChronologyByItemID] Error on Creation' -go - -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[vefn_ChronologyReport]') AND OBJECTPROPERTY(id,N'IsTableFunction') = 1) - DROP FUNCTION [vefn_ChronologyReport]; -/****** Object: UserDefinedFunction [dbo].[vefn_ChronologyReport] Script Date: 03/20/2012 17:50:44 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -/* -select * from vefn_chronologyreport(2) where type > 0 order by contentid,auditid -*/ -/****** Object: UserDefinedFunction [dbo].[vefn_ChronologyReport] Script Date: 05/18/2011 11:20:48 ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE function [dbo].[vefn_ChronologyReport](@ProcItemID int, @DTS datetime) -returns @Report table -( -src int, -AuditID bigint, -ContentID int, -Number nvarchar(512), -Text nvarchar(max), -Type int, -FormatID int, -Config nvarchar(max), -DTS datetime, -UserID nvarchar(200), -DeleteStatus int, -ActionDTS datetime, -ItemDTS datetime, -LastAuditID int, -DeletedAuditID int -) -WITH EXECUTE AS OWNER -AS -BEGIN ---added rhm/jcb 20121218i -declare @tmpTable table -( - icontentid int primary key -) -insert into @tmpTable select icontentid from vefn_tblchilditems(@ProcItemID,@ProcItemID,1) ---added jcb 20111122 ---declare @dts datetime ---set @dts = (select dts from items where itemid = @ProcItemID ) ---set @dts = (SELECT .[dbo].[vefn_GetPreviousRevisionDTSByItemID] (@ProcItemID)) ---end added jcb 20111122 - insert into @Report - SELECT -1 src, - [AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid - where Number is not null ---added jcb 20111028_1827 -and ca.contentid != (select contentid from items where itemid = @procitemid) -and ca.contentid in (select icontentid from @tmpTable) ---end added jcb 20111028_1827 ---added jcb 20111122 ---and ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > (select dts from items where itemid = @ProcItemID )) -and ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > @dts) ---and ca.dts > (select dts from items where itemid = @ProcItemID ) -and ca.dts > @dts ---end added jcb 20111122 --- UNION --- SELECT ---2 src, --- cast(ident_current('contentaudits') + 1 as bigint) auditid ----- (select max(auditid) + 1 from contentaudits) [AuditID] ----- 0 [AuditID] --- ,ca.[ContentID] --- ,[Number] --- ,[Text] --- ,[Type] --- ,[FormatID] --- ,[Config] --- ,ca.[DTS] cadts --- ,ca.[UserID] --- ,ca.[DeleteStatus] --- ,ActionDTS --- ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS ---,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID ---,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID --- FROM tblContents ca ----- inner join tblitems ti on ca.contentid = ti.contentid ---WHERE ca.DeleteStatus = 0 AND -----added jcb 20111028_1827 ---ca.contentid != (select contentid from items where itemid = @procitemid) and -----end added jcb 20111028_1827 -----ca.ContentID in (SELECT [ContentID] FROM ContentAudits where dts > (select dts from items where itemid = @ProcItemID )) -----added jcb 20111122 -----ca.ContentID in (SELECT [ContentID] FROM Contents where dts > (select dts from items where itemid = @ProcItemID )) ---ca.ContentID in (SELECT [ContentID] FROM Contents where dts > @dts) -----end added jcb 20111122 -----order by ca.DTS,ActionDTS - UNION - SELECT -3 src, - cast(ident_current('contentaudits') + 1 as bigint) auditid --- (select max(auditid) + 1 from contentaudits) [AuditID] --- 0 [AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM tblContents ca --- inner join tblitems ti on ca.contentid = ti.contentid -WHERE ca.DeleteStatus = 0 AND ---added jcb 20111028_1827 -ca.contentid != (select contentid from items where itemid = @procitemid) -and ca.contentid in (select icontentid from @tmpTable) ---end added jcb 20111028_1827 ---added jcb 20111122 ---ca.dts > (select dts from items where itemid = @ProcItemID ) -and (ca.dts > @dts or ca.actiondts > @dts) ---end added jcb 20111122 - UNION - SELECT distinct -5 src, --- cast(ident_current('contentaudits') + 1 as bigint) auditid --- (select max(auditid) + 1 from contentaudits) [AuditID] - ca.[AuditID] - ,ca.[ContentID] - ,[Number] - ,[Text] - ,[Type] - ,[FormatID] - ,[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid -WHERE ca.DeleteStatus > 0 ---added jcb 20111028_1827 - --ca.contentid != (select contentid from items where itemid = @procitemid) and ---end added jcb 20111028_1827 ---added jcb 20111122 ---ca.dts > (select dts from items where itemid = @ProcItemID ) -and ca.contentid in (select icontentid from @tmpTable) -and (ca.dts > @dts or ca.actiondts > @dts) ---end added jcb 20111122 -order by ca.DTS,ActionDTS - - insert into @Report - SELECT -4 src, - ca.[AuditID] - ,ca.[ContentID] - ,ca.[Number] - ,ca.[Text] - ,ca.[Type] - ,ca.[FormatID] - ,ca.[Config] - ,ca.[DTS] cadts - ,ca.[UserID] - ,ca.[DeleteStatus] - ,ca.ActionDTS - ,(select min(dts) from itemaudits where contentid = ca.contentid) ItemDTS -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null) LastAuditID -,(select max(auditid) from contentaudits where ca.contentid = contentid and ca.auditid > auditid and number is not null and deletestatus > 0 and ca.dts = dts) DeletedAuditID - FROM ContentAudits ca --- inner join tblitems ti on ca.contentid = ti.contentid - inner join @Report rpt on ca.contentid = rpt.contentid and ca.auditid = rpt.lastauditid -where ca.auditid not in (select auditid from @report) -and rpt.lastauditid is not null -and ca.contentid in (select icontentid from @tmpTable) - return -end -GO --- Display the status of TableFunction creation -IF (@@Error = 0) PRINT 'Function: vefn_ChronologyReport Succeeded' -ELSE PRINT 'Function: vefn_ChronologyReport Error on Creation' -GO - -/****** Object: StoredProcedure [getAnnotationAuditsChronologyByItemID] ******/ -/* -getAnnotationAuditsChronologyByItemID 30,30 -getAnnotationAuditsChronologyByItemID 30,8570 -getAnnotationAuditsChronologyByItemID 30,8513 -getAnnotationAuditsChronologyByItemID 30,8505 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create procedure [dbo].[getAnnotationAuditsChronologyByItemID] -( - @ProcItemID int, - @ItemID int, - @DTS datetime -) -WITH EXECUTE AS OWNER -AS -begin --- declare @dts datetime --- set @dts = (select dts from items where itemid = @procitemid) - declare @tci table - ( - ItemID int, - IContentID int, - IDeleteStatus int, - ProcDTS datetime, - Path nvarchar(max), - OrdinalPath nvarchar(max) - ) - insert into @tci - select * from vefn_tblchilditems(@ProcItemID,@ItemID,0) - select - case - when lastauditid is null and dts > itemdts then 'Added' - when deletestatus > 0 then 'Deleted' - when lastauditid = deletedauditid then 'Restored' - else 'Changed' - end ActionWhat - ,case - when lastauditid is null and dts > itemdts then dts - when deletestatus > 0 then ActionDTS - when lastauditid = deletedauditid then ActionDTS - else dts - end ActionWhen - ,* - from - ( - select - cast(ident_current('annotationaudits') + 1 as bigint) auditid - -- (select max(auditid) + 1 from annotationaudits) auditid - -- 0 auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,0 deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from tblannotations aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - where aa.deletestatus = 0 - union - select - aa.auditid - ,aa.annotationid - ,aa.itemid - ,aa.typeid - ,aa.rtftext - ,aa.searchtext - ,aa.config - ,aa.dts - ,aa.userid - ,aa.deletestatus - ,aa.ActionDTS - ,ii.contentid icontentid - ,(select min(dts) from tblitems where itemid = ii.itemid) ItemDTS - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid ) LastAuditID - ,(select max(auditid) from annotationaudits where annotationid = aa.annotationid and itemid = ii.itemid and aa.auditid > auditid and deletestatus > 0 and aa.dts = dts) DeletedAuditID -,tci.ordinalpath - from annotationaudits aa - inner join items ii on aa.itemid = ii.itemid -join @tci tci on tci.itemid = ii.itemid - ) ah - where itemid in (select itemid from @tci) - and dts > @dts - --(select dts from versions where versionid = (select max(versionid) from revisions rr inner join versions vv on rr.revisionid = vv.revisionid - --inner join stages ss on vv.stageid = ss.stageid where itemid = @procitemid and ss.isapproved = 1)) - order by ordinalpath,annotationid,auditid--actionwhen -end -go --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'StoredProcedure [getAnnotationAuditsChronologyByItemID] Succeeded' -ELSE PRINT 'StoredProcedure [getAnnotationAuditsChronologyByItemID] Error on Creation' -go - - -/****** Object: Trigger [dbo].[tr_GridAudits_insert] Script Date: 06/06/2011 16:58:07 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create trigger [dbo].[tr_GridAudits_insert] -on [dbo].[GridAudits] -after INSERT -AS -begin - update ga set ga.contentauditid = (select isnull(max(auditid),0) from contentaudits where contentid = ii.contentid) - from inserted ii - inner join gridaudits ga on ii.auditid = ga.auditid -end -go --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'Trigger Creation: tr_GridAudits_insert Succeeded' -ELSE PRINT 'Trigger Creation: tr_GridAudits_insert Error on Creation' -GO - - -/****** Object: Index [IX_GridAuditsContentAuditID] Script Date: 06/08/2011 11:13:09 ******/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -CREATE NONCLUSTERED INDEX [IX_GridAuditsContentAuditID] ON [dbo].[GridAudits] -( - [ContentAuditID] ASC -)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, IGNORE_DUP_KEY = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] -GO --- Display the status of index creation -IF (@@Error = 0) PRINT 'Index Creation: IX_GridAuditsContentAuditID Succeeded' -ELSE PRINT 'Index Creation: IX_GridAuditsContentAuditID Error on Creation' -GO - -/****** Object: StoredProcedure [getContentAuditsSummaryByItemID] ******/ -/* -getContentAuditsSummaryByItemID 146,146,0 -getContentAuditsSummaryByItemID 30,30,0 -getContentAuditsSummaryByItemID 9,9,0 -getContentAuditsSummaryByItemID 146,146,1 -*/ -/***************************************************************************** - Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - Copyright 2012 - Volian Enterprises, Inc. All rights reserved. -*****************************************************************************/ -create PROCEDURE [dbo].[getContentAuditsSummaryByItemID] -( - @ProcedureItemID int, - @SelectedItemID int, - @IncludeDeletedChildren int, - @DTS datetime -) - -WITH EXECUTE AS OWNER -AS -begin -DECLARE @Chrono TABLE -( -[AuditID] bigint, -[ContentID] int, -[Number] nvarchar(max), -[Text] nvarchar(max), -[Type] int, -[FormatID] int, -[Config] nvarchar(max), -[DTS] datetime, -[UserID] nvarchar(max), -[DeleteStatus] int, -[ActionDTS] datetime, -[ActionWhat] nvarchar(max), -[ActionWhen] datetime, -[Path] nvarchar(max), -ItemID int, -TypeName nvarchar(max), -ordinalpath nvarchar(max) -) -insert into @Chrono -select * from vefn_GetMyChronology(@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren,@DTS) -select * from @Chrono -where AuditID is null OR AuditID in (select min(auditID) from @Chrono group by contentid UNION select max(auditID) from @Chrono group by contentid) -order by OrdinalPath, contentid,auditid ---select z.* from ---( ---select contentid,min(auditid) auditid from ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) x ---group by contentid ---) y ---inner join ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) z on y.contentid = z.contentid and y.auditid = z.auditid ---union ---select z.* from ---( ---select contentid,max(auditid) auditid from ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) x ---group by contentid ---) y ---inner join ---( --- select [AuditID],[ContentID],[Number],[Text],[Type],[FormatID],[Config],[DTS],[UserID],[DeleteStatus],[ActionDTS],[ActionWhat],[ActionWhen],[Path],ItemID,TypeName,ordinalpath --- from --- ( --- select --- case --- when lastauditid is null then 'Added' --- when r.deletestatus > 0 then 'Deleted' --- when lastauditid = -1 then 'Changed' --- when DeletedAuditID is not null then 'Restored' ----- when DeletedAuditID is not null and lastauditid = deletedauditid then 'Restored' --- else 'Changed' --- end actionwhat ---,actiondts actionwhen ----- ,case ----- when lastauditid is null then dts ----- when r.deletestatus > 0 then ActionDTS ----- when lastauditid = -1 then dts ----- when DeletedAuditID is not null then ActionDTS ----- else dts ----- end actionwhen ---,(select dbo.vefn_GetStepTypeNameByItemIDandTypeID(t.itemid,r.type)) TypeName --- ,* --- from vefn_tblchilditems (@ProcedureItemID,@SelectedItemID,@IncludeDeletedChildren) t --- inner join vefn_chronologyreport(@ProcedureItemID) r --- on t.icontentid = r.contentid ----- where ActionDTS > procdts or dts > procdts --- ) ah ---) z on y.contentid = z.contentid and y.auditid = z.auditid --- order by OrdinalPath, contentid,auditid--actionwhen - RETURN -end --- Display the status of Trigger alter -IF (@@Error = 0) PRINT 'StoredProcedure [getAnnotationAuditsSummaryByItemID] Succeeded' -ELSE PRINT 'StoredProcedure [getAnnotationAuditsSummaryByItemID] Error on Creation' -go - - -ALTER PROCEDURE [dbo].[getContentAuditsByContentID] -( - @ContentID int -) - -WITH EXECUTE AS OWNER -AS - SELECT - [AuditID], - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [DeleteStatus], - case when auditid = (select min(auditid) from contentaudits where contentid = @ContentID) then 'Original' - when deletestatus > 0 then 'Deleted' - else 'Changed' end ActionWhat - FROM [ContentAudits] - WHERE ContentID = @ContentID - ORDER BY AuditID DESC - RETURN -go - ---NEW STUFF 1 -GO -/****** Object: StoredProcedure [dbo].[getContent] Script Date: 07/07/2011 15:46:16 ******/ -SET ANSI_NULLS ON -GO -SET QUOTED_IDENTIFIER ON -GO - -ALTER PROCEDURE [dbo].[getContent] - -( - @ContentID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [ContentID], - [Number], - [Text], - [Type], - [FormatID], - [Config], - [DTS], - [UserID], - [LastChanged], - (SELECT COUNT(*) FROM [Details] WHERE [Details].[ContentID]=[Contents].[ContentID]) [DetailCount], - (SELECT COUNT(*) FROM [Entries] WHERE [Entries].[ContentID]=[Contents].[ContentID]) [EntryCount], - (SELECT COUNT(*) FROM [Grids] WHERE [Grids].[ContentID]=[Contents].[ContentID]) [GridCount], - (SELECT COUNT(*) FROM [Images] WHERE [Images].[ContentID]=[Contents].[ContentID]) [ImageCount], - (SELECT COUNT(*) FROM [Items] WHERE [Items].[ContentID]=[Contents].[ContentID]) [ItemCount], - (SELECT COUNT(*) FROM [Parts] WHERE [Parts].[ContentID]=[Contents].[ContentID]) [PartCount], - (SELECT COUNT(*) FROM [RoUsages] WHERE [RoUsages].[ContentID]=[Contents].[ContentID]) [RoUsageCount], - (SELECT COUNT(*) FROM [Transitions] WHERE [Transitions].[FromID]=[Contents].[ContentID]) [TransitionCount], - (SELECT COUNT(*) FROM [ZContents] WHERE [ZContents].[ContentID]=[Contents].[ContentID]) [ZContentCount] - FROM [Contents] - WHERE [ContentID]=@ContentID - - SELECT - [Details].[DetailID], - [Details].[ContentID], - [Details].[ItemType], - [Details].[Text], - [Details].[Config], - [Details].[DTS], - [Details].[UserID], - [Details].[LastChanged] - FROM [Details] - WHERE - [Details].[ContentID]=@ContentID - - - SELECT - [Entries].[ContentID], - [Entries].[DocID], - [Entries].[DTS], - [Entries].[UserID], - [Entries].[LastChanged], - [Documents].[LibTitle] [Document_LibTitle], - [Documents].[DocContent] [Document_DocContent], - [Documents].[DocAscii] [Document_DocAscii], - [Documents].[Config] [Document_Config], - [Documents].[DTS] [Document_DTS], - [Documents].[UserID] [Document_UserID], - [Documents].[FileExtension] [Document_FileExtension] - FROM [Entries] - JOIN [Documents] ON - [Documents].[DocID]=[Entries].[DocID] - WHERE - [Entries].[ContentID]=@ContentID - - - SELECT - [Grids].[ContentID], - [Grids].[Data], - [Grids].[Config], - [Grids].[DTS], - [Grids].[UserID], - [Grids].[LastChanged] - FROM [Grids] - WHERE - [Grids].[ContentID]=@ContentID - - - SELECT - [Images].[ContentID], - [Images].[ImageType], - [Images].[FileName], - [Images].[Data], - [Images].[Config], - [Images].[DTS], - [Images].[UserID], - [Images].[LastChanged] - FROM [Images] - WHERE - [Images].[ContentID]=@ContentID - - - SELECT - [Items].[ItemID], - [Items].[PreviousID], - [Items].[ContentID], - [Items].[DTS], - [Items].[UserID], - [Items].[LastChanged] - FROM [Items] - WHERE - [Items].[ContentID]=@ContentID - - - SELECT - [Parts].[ContentID], - [Parts].[FromType], - [Parts].[ItemID], - [Parts].[DTS], - [Parts].[UserID], - [Parts].[LastChanged], - [Items].[PreviousID] [Item_PreviousID], - [Items].[ContentID] [Item_ContentID], - [Items].[DTS] [Item_DTS], - [Items].[UserID] [Item_UserID] - FROM [Parts] - JOIN [Items] ON - [Items].[ItemID]=[Parts].[ItemID] - WHERE - [Parts].[ContentID]=@ContentID - - - SELECT - [RoUsages].[ROUsageID], - [RoUsages].[ContentID], - [RoUsages].[ROID], - [RoUsages].[Config], - [RoUsages].[DTS], - [RoUsages].[UserID], - [RoUsages].[LastChanged], - [RoUsages].[RODbID], - [RODbs].[ROName] [RODb_ROName], - [RODbs].[FolderPath] [RODb_FolderPath], - [RODbs].[DBConnectionString] [RODb_DBConnectionString], - [RODbs].[Config] [RODb_Config], - [RODbs].[DTS] [RODb_DTS], - [RODbs].[UserID] [RODb_UserID] - FROM [RoUsages] - JOIN [RODbs] ON - [RODbs].[RODbID]=[RoUsages].[RODbID] - WHERE - [RoUsages].[ContentID]=@ContentID - - - SELECT - [Transitions].[TransitionID], - [Transitions].[FromID], - [Transitions].[ToID], - [Transitions].[RangeID], - [Transitions].[IsRange], - [Transitions].[TranType], - [Transitions].[Config], - [Transitions].[DTS], - [Transitions].[UserID], - [Transitions].[LastChanged], - [Items_RangeID].[PreviousID] [Item_RangeID_PreviousID], - [Items_RangeID].[ContentID] [Item_RangeID_ContentID], - [Items_RangeID].[DTS] [Item_RangeID_DTS], - [Items_RangeID].[UserID] [Item_RangeID_UserID], - [Items_ToID].[PreviousID] [Item_ToID_PreviousID], - [Items_ToID].[ContentID] [Item_ToID_ContentID], - [Items_ToID].[DTS] [Item_ToID_DTS], - [Items_ToID].[UserID] [Item_ToID_UserID] - FROM [Transitions] - LEFT JOIN [Items] [Items_RangeID] ON - [Items_RangeID].[ItemID]=[Transitions].[RangeID] - LEFT JOIN [Items] [Items_ToID] ON - [Items_ToID].[ItemID]=[Transitions].[ToID] - WHERE - [Transitions].[FromID]=@ContentID - - - SELECT - [ZContents].[ContentID], - [ZContents].[OldStepSequence], - [ZContents].[LastChanged] - FROM [ZContents] - WHERE - [ZContents].[ContentID]=@ContentID - - RETURN -GO - - diff --git a/PROMS/DataLoader/PrivateProfile.cs b/PROMS/DataLoader/PrivateProfile.cs deleted file mode 100644 index 14c090a0..00000000 --- a/PROMS/DataLoader/PrivateProfile.cs +++ /dev/null @@ -1,285 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== - -using System; -using System.IO; -using System.Xml; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Drawing; -using VEPROMS.CSLA.Library; - -namespace Config -{ - /// - /// PrivateProfile opens a private profile string and stores it's contents in an xml document. - /// - public class PrivateProfile - { - #region Log4Net - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - - private string ppName; - private XmlDocument ppXml; - private List attr; - private List ele; - - private XmlNode AddNode(XmlNode xParent, string sName, string sValue ) - { - XmlNode nd=AddNode(xParent,sName); - nd.Value=sValue; - return nd; - } - private XmlNode AddNode(XmlNode xParent, string sName) - { - XmlNode nd; - // Add a node - string tsName = sName.Replace(' ', '_').Replace("applicability", "Applicability").Replace("unit", "Unit"); - nd=xParent.OwnerDocument.CreateNode(System.Xml.XmlNodeType.Element,tsName,""); - xParent.AppendChild(nd); - return nd; - } - private void AddAttribute(XmlNode xParent, string sName, string sValue) - { - XmlNode xa = xParent.Attributes.GetNamedItem(sName); - // bug fix. 09/15/03 - // If there was a space after an equal sign, that space character - // was becomming part of the value string (reading the user.CFG file). - // This was giving us a "Must have semi-colon" error message. - // We now strip spaces before and after any Attribute that is written. - sValue = sValue.Trim(' '); - sName = sName.Replace(' ', '_'); - sName = sName.Replace("\\", "_slash_"); - sName = sName.Replace("/", "_fslash_"); - - if (xParent.Name == "color") - { - string[] parts = sValue.Split(",".ToCharArray()); - sValue = ColorConfig.FindKnownColor(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2])).ToString(); - } - // Add an attribute - if (sValue == "") - { - if (xa != null) - { - xParent.Attributes.RemoveNamedItem(sName); - } - } - else - { - if (xa == null) - { - xa = xParent.OwnerDocument.CreateNode(System.Xml.XmlNodeType.Attribute, sName, ""); - xParent.Attributes.SetNamedItem(xa); - } - xa.Value = sValue; - } - - } - private XmlNode AddSection(XmlNode xParent, string sSection) - { - // get the name. If it's not in the 'migrated elements' list, then - // preface the name with a 'z'. - string elename = sSection.Substring(1, sSection.IndexOf("]") - 1); - while(elename.IndexOf(' ')>-1) elename = elename.Remove(elename.IndexOf(' '),1); - if (!ele.Contains(elename.ToLower())) elename = 'z' + elename; - elename = elename.Replace("\\", "_slash_"); - // Add a section [name] - XmlNode nd = AddNode(xParent, elename); - //AddAttribute(nd,"name",sSection.Substring(1,sSection.IndexOf("]")-1)); - return nd; - } - private XmlNode AddSection_UC(XmlNode xParent, string sSection ) - { - // Add a section [name] - string name_uc = sSection.Substring(1,sSection.IndexOf("]")-1).ToUpper() + "__UC"; - XmlNode nd =AddNode(xParent,name_uc); - // AddAttribute(nd,"name",name_uc); - return nd; - } - private void AddComment(XmlNode xParent, string sComment) - { - - if(xParent.ChildNodes.Count > 0) - { - XmlNode ndlast=xParent.ChildNodes.Item(xParent.ChildNodes.Count-1); - if(ndlast.Name=="comment") - { - XmlNode xa = ndlast.Attributes.GetNamedItem("text"); - xa.Value=xa.Value + "\r\n" + sComment; - return; - } - } - // Add a comment text - XmlNode nd =AddNode(xParent,"comment"); - AddAttribute(nd,"text",sComment); - } - private void AddLine(XmlNode xParent, string sLine) - { - // Add a comment text - XmlNode nd =AddNode(xParent,"line"); - AddAttribute(nd,"text",sLine); - } - private void AddParam(XmlNode xParent, string sParam) - { - int i = sParam.IndexOf("="); - // get the name. If it's not in the 'migrated attribute' list, then - // preface the name with a 'z'. - string attrname = sParam.Substring(0, i); - while (attrname.IndexOf(' ') > -1) attrname = attrname.Remove(attrname.IndexOf(' '), 1); - if (!attr.Contains(attrname.ToLower())) attrname = 'z' + attrname; - string sValue=sParam.Substring(i+1); - string sName = attrname.Trim(' '); - sName = sName.Replace("id", "ID").Replace("name", "Name").Replace("number", "Number").Replace("text", "Text").Replace("other", "Other").Replace("masterdir","MasterDir"); - AddAttribute(xParent, sName, sValue); - } - private void AddParam_UC(XmlNode xParent, string sParam) - { - int i = sParam.IndexOf("="); - // add a param name=value - string sName=sParam.Substring(0,i); - string sValue=sParam.Substring(i+1); - //XmlNode nd =AddNode(xParent,"paramUC"); - sName = sName.Trim(' '); - AddAttribute(xParent, sName, sValue); - //AddAttribute(nd,"name",sName.ToUpper()+"__UC"); - //AddAttribute(nd,"value",sValue); - } - private void LoadXML() - { - string sLine; - ppXml.LoadXml("");// initialize ppXml - XmlNode xmlTop=ppXml.DocumentElement; - XmlNode xmlNd=ppXml.DocumentElement; - //XmlNode xmlNd_UC=ppXml.DocumentElement; - StreamReader myReader = new StreamReader(ppName);// Open file - while( (sLine = myReader.ReadLine())!= null)// read line-by-line - { - // add structure - try - { - if (sLine.Length > 0) - { - switch (sLine.Substring(0, 1)) - { - case "[": - xmlNd = AddSection(xmlTop, sLine); - //xmlNd_UC=AddSection_UC(xmlTop, sLine); - break; - case ";": - //AddComment(xmlNd, sLine); - break; - default: - if (sLine.IndexOf("=") >= 0) - { - AddParam(xmlNd, sLine); - //AddParam_UC(xmlNd_UC, sLine); - } - else - { - //AddLine(xmlNd, sLine); - } - break; - } - } - } - catch (Exception ex) - { - log.ErrorFormat("error parsing .INI file: {0} - Directory: {1}", ex.Message,ppName); - } - } - myReader.Close(); - } - public PrivateProfile(string sFileName, List listIni_EleName, List listIni_AttrName) - { - ppName=sFileName; - ppXml= new XmlDocument(); - attr = listIni_AttrName; - ele = listIni_EleName; - LoadXML(); - } - ~PrivateProfile() - { - // Clean-up - // - } - public string PrettyNode(XmlNode nd,int level) - { - string retval=""; - string prefix=new string(' ',level*2); - if(nd.ChildNodes.Count > 0) - { - retval = prefix + "<" + nd.Name; - for(int i=0;i"; - for(int i=0;i"; - } - else - { - retval = prefix + "<" + nd.Name; - for(int i=0;i"; - } - return retval; - } - public string PrettyXML() - { - return PrettyNode(ppXml.DocumentElement,0); - } - public XmlDocument XML() - { - // return XML Document - return ppXml; - } - public override string ToString() - { - // return string - return ""; - } - public void Save() - { - SaveAs(ppName); - } - public void SaveAs(string sName) - { - } - public string Attr(string sPath) - { - string retval=""; - XmlNode xn = ppXml.SelectSingleNode(sPath); - if(xn != null) - { - string quots = xn.Value; - if (quots.Substring(0,1)=="\"" && quots.Substring(quots.Length-1,1)=="\"") - retval = quots.Substring(1,quots.Length-2); - else - retval=xn.Value; - } - return retval; - } - - public string Attr(string sSection, string sParameter) - { - string findstr = "/ini/sectionUC[@name='" + sSection.ToUpper() + "__UC']/paramUC[@name='" + sParameter.ToUpper() + "__UC']/@value"; - return Attr(findstr); - } - } -} diff --git a/PROMS/DataLoader/PrivateProfile.cs.bak b/PROMS/DataLoader/PrivateProfile.cs.bak deleted file mode 100644 index 206849d5..00000000 --- a/PROMS/DataLoader/PrivateProfile.cs.bak +++ /dev/null @@ -1,284 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== - -using System; -using System.IO; -using System.Xml; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Drawing; -using VEPROMS.CSLA.Library; - -namespace Config -{ - /// - /// PrivateProfile opens a private profile string and stores it's contents in an xml document. - /// - public class PrivateProfile - { - #region Log4Net - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - - private string ppName; - private XmlDocument ppXml; - private List attr; - private List ele; - - private XmlNode AddNode(XmlNode xParent, string sName, string sValue ) - { - XmlNode nd=AddNode(xParent,sName); - nd.Value=sValue; - return nd; - } - private XmlNode AddNode(XmlNode xParent, string sName) - { - XmlNode nd; - // Add a node - string tsName = sName.Replace(' ', '_').Replace("applicability", "Applicability").Replace("unit", "Unit"); - nd=xParent.OwnerDocument.CreateNode(System.Xml.XmlNodeType.Element,tsName,""); - xParent.AppendChild(nd); - return nd; - } - private void AddAttribute(XmlNode xParent, string sName, string sValue) - { - XmlNode xa = xParent.Attributes.GetNamedItem(sName); - // bug fix. 09/15/03 - // If there was a space after an equal sign, that space character - // was becomming part of the value string (reading the user.CFG file). - // This was giving us a "Must have semi-colon" error message. - // We now strip spaces before and after any Attribute that is written. - sValue = sValue.Trim(' '); - sName = sName.Replace(' ', '_'); - sName = sName.Replace("\\", "_slash_"); - sName = sName.Replace("/", "_fslash_"); - if (xParent.Name == "color") - { - string[] parts = sValue.Split(",".ToCharArray()); - sValue = ColorConfig.FindKnownColor(int.Parse(parts[0]), int.Parse(parts[1]), int.Parse(parts[2])).ToString(); - } - // Add an attribute - if (sValue == "") - { - if (xa != null) - { - xParent.Attributes.RemoveNamedItem(sName); - } - } - else - { - if (xa == null) - { - xa = xParent.OwnerDocument.CreateNode(System.Xml.XmlNodeType.Attribute, sName, ""); - xParent.Attributes.SetNamedItem(xa); - } - xa.Value = sValue; - } - - } - private XmlNode AddSection(XmlNode xParent, string sSection) - { - // get the name. If it's not in the 'migrated elements' list, then - // preface the name with a 'z'. - string elename = sSection.Substring(1, sSection.IndexOf("]") - 1); - while(elename.IndexOf(' ')>-1) elename = elename.Remove(elename.IndexOf(' '),1); - if (!ele.Contains(elename.ToLower())) elename = 'z' + elename; - elename = elename.Replace("\\", "_slash_"); - // Add a section [name] - XmlNode nd = AddNode(xParent, elename); - //AddAttribute(nd,"name",sSection.Substring(1,sSection.IndexOf("]")-1)); - return nd; - } - private XmlNode AddSection_UC(XmlNode xParent, string sSection ) - { - // Add a section [name] - string name_uc = sSection.Substring(1,sSection.IndexOf("]")-1).ToUpper() + "__UC"; - XmlNode nd =AddNode(xParent,name_uc); - // AddAttribute(nd,"name",name_uc); - return nd; - } - private void AddComment(XmlNode xParent, string sComment) - { - - if(xParent.ChildNodes.Count > 0) - { - XmlNode ndlast=xParent.ChildNodes.Item(xParent.ChildNodes.Count-1); - if(ndlast.Name=="comment") - { - XmlNode xa = ndlast.Attributes.GetNamedItem("text"); - xa.Value=xa.Value + "\r\n" + sComment; - return; - } - } - // Add a comment text - XmlNode nd =AddNode(xParent,"comment"); - AddAttribute(nd,"text",sComment); - } - private void AddLine(XmlNode xParent, string sLine) - { - // Add a comment text - XmlNode nd =AddNode(xParent,"line"); - AddAttribute(nd,"text",sLine); - } - private void AddParam(XmlNode xParent, string sParam) - { - int i = sParam.IndexOf("="); - // get the name. If it's not in the 'migrated attribute' list, then - // preface the name with a 'z'. - string attrname = sParam.Substring(0, i); - while (attrname.IndexOf(' ') > -1) attrname = attrname.Remove(attrname.IndexOf(' '), 1); - if (!attr.Contains(attrname.ToLower())) attrname = 'z' + attrname; - string sValue=sParam.Substring(i+1); - string sName = attrname.Trim(' '); - sName = sName.Replace("id", "ID").Replace("name", "Name").Replace("number", "Number").Replace("text", "Text").Replace("other", "Other").Replace("masterdir","MasterDir"); - AddAttribute(xParent, sName, sValue); - } - private void AddParam_UC(XmlNode xParent, string sParam) - { - int i = sParam.IndexOf("="); - // add a param name=value - string sName=sParam.Substring(0,i); - string sValue=sParam.Substring(i+1); - //XmlNode nd =AddNode(xParent,"paramUC"); - sName = sName.Trim(' '); - AddAttribute(xParent, sName, sValue); - //AddAttribute(nd,"name",sName.ToUpper()+"__UC"); - //AddAttribute(nd,"value",sValue); - } - private void LoadXML() - { - string sLine; - ppXml.LoadXml("");// initialize ppXml - XmlNode xmlTop=ppXml.DocumentElement; - XmlNode xmlNd=ppXml.DocumentElement; - //XmlNode xmlNd_UC=ppXml.DocumentElement; - StreamReader myReader = new StreamReader(ppName);// Open file - while( (sLine = myReader.ReadLine())!= null)// read line-by-line - { - // add structure - try - { - if (sLine.Length > 0) - { - switch (sLine.Substring(0, 1)) - { - case "[": - xmlNd = AddSection(xmlTop, sLine); - //xmlNd_UC=AddSection_UC(xmlTop, sLine); - break; - case ";": - //AddComment(xmlNd, sLine); - break; - default: - if (sLine.IndexOf("=") >= 0) - { - AddParam(xmlNd, sLine); - //AddParam_UC(xmlNd_UC, sLine); - } - else - { - //AddLine(xmlNd, sLine); - } - break; - } - } - } - catch (Exception ex) - { - log.Error("error parsing .INI file:", ex); - } - } - myReader.Close(); - } - public PrivateProfile(string sFileName, List listIni_EleName, List listIni_AttrName) - { - ppName=sFileName; - ppXml= new XmlDocument(); - attr = listIni_AttrName; - ele = listIni_EleName; - LoadXML(); - } - ~PrivateProfile() - { - // Clean-up - // - } - public string PrettyNode(XmlNode nd,int level) - { - string retval=""; - string prefix=new string(' ',level*2); - if(nd.ChildNodes.Count > 0) - { - retval = prefix + "<" + nd.Name; - for(int i=0;i"; - for(int i=0;i"; - } - else - { - retval = prefix + "<" + nd.Name; - for(int i=0;i"; - } - return retval; - } - public string PrettyXML() - { - return PrettyNode(ppXml.DocumentElement,0); - } - public XmlDocument XML() - { - // return XML Document - return ppXml; - } - public override string ToString() - { - // return string - return ""; - } - public void Save() - { - SaveAs(ppName); - } - public void SaveAs(string sName) - { - } - public string Attr(string sPath) - { - string retval=""; - XmlNode xn = ppXml.SelectSingleNode(sPath); - if(xn != null) - { - string quots = xn.Value; - if (quots.Substring(0,1)=="\"" && quots.Substring(quots.Length-1,1)=="\"") - retval = quots.Substring(1,quots.Length-2); - else - retval=xn.Value; - } - return retval; - } - - public string Attr(string sSection, string sParameter) - { - string findstr = "/ini/sectionUC[@name='" + sSection.ToUpper() + "__UC']/paramUC[@name='" + sParameter.ToUpper() + "__UC']/@value"; - return Attr(findstr); - } - } -} diff --git a/PROMS/DataLoader/Procedures.cs b/PROMS/DataLoader/Procedures.cs deleted file mode 100644 index 002295ae..00000000 --- a/PROMS/DataLoader/Procedures.cs +++ /dev/null @@ -1,605 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class Loader - { - #region Log4Net - public static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - //public static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - public static int HandleCount - { - get { return System.Diagnostics.Process.GetCurrentProcess().HandleCount; } - } - private bool RunWithDB2K = false; - private Item MigrateProcedure(OleDbConnection cn, DataRow dr, Item FromItem, string pth, DocVersion docver, bool convertProcedures, FormatInfo activeFormat) - { - dicOldStepSequence = new Dictionary(); - Stack SubSectLevels = new Stack(); // levels of subsections - ProcFileName = dr["Entry"].ToString(); - ProcNumber = dr["Number"].ToString(); - frmMain.Status = "Processing Procedure " + ProcNumber + " - " + ProcFileName; - GC.Collect(); - frmMain.AddInfo("Processing Procedure {0} {1}", ProcNumber, GC.GetTotalMemory(true)); - //frmMain.MyInfo = CSLACache.UsageNotFinalized; - - - DateTime dts = GetDTS(dr["Date"].ToString(), dr["Time"].ToString()); - string userid = dr["initials"].ToString().Trim(); - if (userid == null || userid == "") userid = "Migration"; - - ConfigInfo ci = null; - string tstr = dr["Proccode"].ToString(); - if (tstr != null && tstr != "") - { - ci = new ConfigInfo(null); - ci.AddItem("Procedure", "ProcCode", tstr); - } - //load revdate - string tstr2 = dts.ToString("MM/dd/yyyy"); - if (tstr2 != null && tstr2 != "") - { - if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Procedure", "RevDate", tstr2); - } - if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("History", "ProcName", ProcFileName.ToUpper()); - - // Load in format data, i.e. default number of columns: - string tstr1 = dr["Format"].ToString(); - if (tstr1 != null && tstr1 != "") - { - switch (tstr1) - { - case "1": - case "2": - case "3": - case "4": - if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Format", "Columns", tstr1); - break; - default: - break; - } - } - // try to load in fix file data: - FileInfo fi = new FileInfo(pth + @"\" + ProcFileName + @".fix"); - if (fi.Exists) - { - FixItems fixItems = new FixItems(fi); - if (fixItems.Count > 0) - { - if (ci == null) ci = new ConfigInfo(null); - if (fixItems[0].Rev != null && fixItems[0].Rev != "") ci.AddItem("Procedure", "Rev", fixItems[0].Rev); - if (fixItems[0].RevDate != null && fixItems[0].RevDate != "") ci.AddItem("Procedure", "RevDate", fixItems[0].RevDate); - if (fixItems[0].ReviewDate != null && fixItems[0].ReviewDate != "") ci.AddItem("Procedure", "ReviewDate", fixItems[0].ReviewDate); - } - } - fi = new FileInfo(pth + @"\" + ProcFileName + @".apl"); - if (fi.Exists) - { - MyProcAPL = GetApple(fi.FullName); - } - // check that there is a "Series" column, i.e. the 10th column, some datasets - // may not have it, for example vetuec\master.sl1 - if (dr.ItemArray.Length > 10) - { - tstr = dr["Series"].ToString(); - if (tstr != null && tstr != "") - { - if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Procedure", "Series", tstr); - } - } - if (docver.DocVersionConfig.Unit_Count > 1) - { - for (int i = 1; i <= docver.DocVersionConfig.Unit_Count; i++) - { - ci.AddSlaveNode(i); - docver.DocVersionConfig.SelectedSlave = i; - string un = ".SL" + docver.DocVersionConfig.Old_Index; - - string mupth = pth.Replace(".prc", un); - fi = new FileInfo(mupth + @"\" + ProcFileName + @".fix"); - if (fi.Exists) - { - FixItems fixItems = new FixItems(fi); - if (fixItems.Count > 0) - { - if (fixItems[0].Rev != null && fixItems[0].Rev != "") - ci.AddSlaveItem(i, "Rev", fixItems[0].Rev); - else - ci.AddSlaveItem(i, "Rev", ""); - if (fixItems[0].RevDate != null && fixItems[0].RevDate != "") - ci.AddSlaveItem(i, "RevDate", fixItems[0].RevDate); - else - ci.AddSlaveItem(i, "RevDate", ""); - if (fixItems[0].ReviewDate != null && fixItems[0].ReviewDate != "") - ci.AddSlaveItem(i, "ReviewDate", fixItems[0].ReviewDate); - else - ci.AddSlaveItem(i, "ReviewDate", ""); - } - } - else - { - ci.AddSlaveItem(i, "Rev", ""); - ci.AddSlaveItem(i, "RevDate", ""); - ci.AddSlaveItem(i, "ReviewDate", ""); - } - } - } - DataSet ds = new DataSet(); - DataTable dt = null; - - // check that file exists, i.e. if proc file doesn't exist but has entry in set - // file, flag error, but continue. - string fname = pth + "\\" + dr["entry"] + ".dbf"; - if (File.Exists(fname)) - { - // if the dbt is bad, fix it. - DbtOk(dr["entry"].ToString(), pth); - // See if there is PSI and if so, add it to the xml. - OleDbDataAdapter dapsi = new OleDbDataAdapter("select * from [" + dr["entry"] + "] where [STEP] is null", cn); - int handleBefore = HandleCount; - TryToLoadDataSet(ds, fname, dapsi); - int handleAfter = HandleCount; - if (!RunWithDB2K && handleAfter - handleBefore > 10) - { - string msg = "It appears that handles are being created and not cleared."; - if (dB2KInstalled()) - { - msg += "\r\n\r\nThis is most likely because dB2K is installed." + - "\r\n\r\nUninstall dB2K and run again."; - if (MessageBox.Show(msg + "\r\n\r\nDo you want to continue?", "Run with dB2K", - MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - RunWithDB2K = true; - } - else - { - msg += "\r\n\r\nCall Volian for support."; - } - if (!RunWithDB2K) throw new Exception(msg); - } - dt = ds.Tables[0]; - - if (dt.Rows.Count > 0) - { - DataRow drpsi = dt.Rows[0]; - string psistr = drpsi["TEXTM"].ToString(); - try - { - if (psistr != null && psistr != "") - { - StringReader strrd = new StringReader(psistr); - - string sLine; - if (ci == null) ci = new ConfigInfo(null); - while ((sLine = strrd.ReadLine()) != null) - { - int indx = sLine.IndexOf(' '); - string nm = null; - string vl = null; - if (indx < 0) - nm = sLine; - else - { - nm = sLine.Substring(0, indx); - string tmpPsi = sLine.Substring(indx + 1, sLine.Length - indx - 1); - if (tmpPsi.Length > 0) tmpPsi = TextConvert.ConvertText(tmpPsi); - vl = tmpPsi; - } - ci.AddItem("PSI", nm, vl == null ? null : vl); - } - } - } - catch(Exception ex) - { - log.Warn("Failure during PSI", ex); - } - } - dapsi.Dispose(); - } - else // log an error - { - log.ErrorFormat("Missing DBF: {0}", fname); - } - - // Note, for now the data from the format field will be saved. Later, xpath, ?? - EditSectId = 0; - - // See if no caret convert... - //FormatInfo docverFormat = docver.MyDocVersionInfo.ActiveFormat; - bool do_cvt = activeFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta;//docverFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta; - // pass in a 0 on MakeContent for type of procedure, i.e. procedure = 0 (on type field) - - // can we save itm.ItemID in a dictionary of outside trans? ex: otrans("vehlp\procs\0POP05-EO00",itm.ItemID)? - Content cont = null; - Item itm = null; - string dicNumber = dr["Number"].ToString(); - string number = TextConvert.ConvertText(dr["Number"].ToString()); - frmMain.UpdateLabels(1, 0, 0); - //Console.WriteLine("number {0}", number); - //Console.WriteLine("Item Key {0} List {1}", Item.CacheCountPrimaryKey, Item.CacheCountList); - //Console.WriteLine("ItemInfo Key {0} List {1}", ItemInfo.CacheCountPrimaryKey, ItemInfo.CacheCountList); - DocVersionInfo dvi = DocVersionInfo.Get(docver.VersionID); - dvi.ResetProcedures(); // need this to clear out Procedures so that they are retrieved (resolves a caching problem) - foreach (ItemInfo ii in dvi.Procedures) - { - if (ii.MyContent.Number == number) - { - //Console.WriteLine(number); - itm = ii.Get(); - cont = ii.MyContent.Get(); - break; - } - } - if (!convertProcedures || (docver.VersionType != (int)VEPROMS.CSLA.Library.VersionTypeEnum.WorkingDraft && docver.VersionType != (int)VEPROMS.CSLA.Library.VersionTypeEnum.Approved)) - { - // if this procedure already exists for this docversion, just use it. - if (itm == null && cont == null) - { - cont = Content.New(number, TextConvert.ConvertText(dr["Title"].ToString(), do_cvt), 0, null, ci == null ? null : ci.ToString(), dts, userid); - itm = Item.MakeItem(FromItem, cont, dts, userid); - } - } - if (convertProcedures /* && number == "001\\u8209?007"/* && number == "0POP05-EO-EC00"*/) - { - OleDbDataAdapter da = new OleDbDataAdapter("select * from [" + dr["entry"] + "] where sequence like ' %' and [STEP] is not null", cn); - try - { - dicTrans_ItemDone[dicNumber] = itm; // will be null if only doing procs & no sections, etc. - LoadSection(ds, da, dr["entry"].ToString()); - da.SelectCommand.CommandText = "select * from [" + dr["entry"] + "] where step not like ' ' and sequence not like ' %'"; - da.Fill(ds, "Steps"); - dt = ds.Tables["Steps"]; - dt.CaseSensitive = true; - ds.Tables["Steps"].CaseSensitive = true; - dt.Columns.Add("CStep", System.Type.GetType("System.String")); - dt.Columns.Add("CSequence", System.Type.GetType("System.String")); - // set the cstep & csequence - couldn't do it in the add because it needed a sql function - foreach (DataRow drw in ds.Tables["Steps"].Rows) - { - drw["CStep"] = TextConvert.ConvertSeq(drw["Step"].ToString()); - drw["CSequence"] = TextConvert.ConvertSeq(drw["Sequence"].ToString()); - } - dt.Columns.Add("StepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CStep,2,1),'System.Char'),'System.Int32')-48"); - dt.Columns.Add("Level", System.Type.GetType("System.Int32"), "Len(CSequence)"); - dt.Columns.Add("SubStepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CSequence,Len(CSequence),1),'System.Char'),'System.Int32')-48"); - } - catch (Exception ex) - { - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - log.Error(ex.StackTrace); - frmMain.AddError(ex, "MigrateProcedure - {0}", ProcFileName); - } - da.Dispose(); - // dicSecCount is dictionary to track number of subsections for the parent at a level - // dicSecID is the parent at that level - Dictionary dicSecCount = new Dictionary(); - Dictionary dicSecParentItem = new Dictionary(); - frmMain.pbSectMaximum = ds.Tables["Sections"].Rows.Count; - frmMain.pbSectValue = 0; - - DataTable dtsect = ds.Tables["Sections"]; - dtsect.CaseSensitive = true; - DataView dv = new DataView(dtsect, "", "locb", DataViewRowState.CurrentRows); - Item SectItm = null; - int level = 0; - bool addpart = true; - Item parentitem = itm; - //if (ProcNumber == "001-002") - // Console.WriteLine("proc 001-002"); - foreach (DataRowView drw in dv) - { - //if (ProcNumber == "016-001") //"017-001") //"082-002AB") - // Console.WriteLine("016-001"); //("017-001"); //"082-002AB"); - - // If there is a '~' in step[1] and the sequence number is blank, the this record - // is a multiline section title. Skip it from processing the section. This record - // will get read in the section code to get the section title. - string sequence = drw["CSequence"].ToString().PadRight(10); - string step = drw["CStep"].ToString(); - if (step[1]=='~' && sequence[1]==' ') break; - bool hasSubSects = (sequence[5] != ' ' && sequence[5] != '0'); - SectItm = MigrateSection(parentitem, ProcNumber, cn, drw, ds.Tables["Steps"], SectItm, hasSubSects, pth, docver, activeFormat, addpart ? cont : null); - addpart = false; - // if no children, add first child (cont) - //if (addpart) - //{ - // // ContentsParts.Add can use 'fromtype', item - fromtype here = 2, section - // cont.ContentParts.Add(2, SectItm); - // if (cont.MyZContent.OldStepSequence == null || cont.MyZContent.OldStepSequence == "") cont.MyZContent.OldStepSequence = ProcNumber; - // if (!cont.IsSavable) ErrorRpt.ErrorReport(cont); - // cont.Save(); - // addpart = false; - //} - //FrType = 0; - //Console.WriteLine("'before',{0},{1},{2},{3}", SectItm == null ? "" : SectItm.DisplayNumber, parentitem.DisplayNumber, level, dicSecCount.Count > 0 ? dicSecCount[level] : 0); - dicSecParentItem[level] = SectItm; - int subSecs = drw["Sequence"].ToString().PadRight(12, ' ')[5] - 48; - if (level > 0) - { - dicSecCount[level]--; // decrements number of sections to process - } - if (subSecs > 0) - { - dicSecCount[++level] = subSecs; - cont = SectItm.MyContent; - parentitem = SectItm; - addpart = true; - SectItm = null; // no previous sibling for the first child node. - } - if (level > 0) - { - while (level > 0 && dicSecCount[level] == 0) - { - // shift up a level, i.e. give me the parent for the previous level - dicSecCount.Remove(level); - SectItm = dicSecParentItem[--level]; - if (level > 0) - parentitem = dicSecParentItem[level - 1]; - else - parentitem = itm; - } - } - //Console.WriteLine("'after',{0},{1},{2},{3}", SectItm == null ? "" : SectItm.DisplayNumber, parentitem.DisplayNumber, level, dicSecCount.Count > 0 ? dicSecCount[level] : 0); - } - dv.Dispose(); - //foreach (Item secItm in dicSecParentItem.Values) - // secItm.Dispose(); - // need section start - if (EditSectId != 0) - { - if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Procedure", "SectionStart", string.Format("{0}", EditSectId)); - itm.MyContent.Config = (ci == null) ? null : ci.ToString(); - if (!itm.IsSavable) ErrorRpt.ErrorReport(itm); - itm.Save(); - } - } - ds.Dispose(); - - // if there are any floating foldouts & associated steps, set config on steps for foldout association. - // the free the lists for the next procedure: - if (FoldoutStpSeq != null && FoldoutStpSeq.Count>0) - { - string cmd = "SELECT * FROM [tran] WHERE [FROMNUMBER]='" + ProcNumber.Replace("'", "''") + "' AND [TYPE] ='R'"; - OleDbDataAdapter da = new OleDbDataAdapter(cmd, cn); - // get transition records for this step. - ds = new DataSet(); - try - { - da.Fill(ds); - DataTable dtt = ds.Tables[0]; - dtt.CaseSensitive = true; - Dictionary stpFoldSeq = new Dictionary(); - foreach (DataRow drt in dtt.Rows) - { - // get from/to seq, subtract off '0' to get stepnumber. - // The 'oldto' field stores which foldout section these steps go - // to. However, if reset, the 'oldto' may not contain a reference - // to a foldout, i.e. may contain 'junk' data. Only add the - // reference to the dictionary if it's a foldout. - int fromStep = TextConvert.ConvertSeq(drt["FROMSEQUEN"].ToString())[1] - '0'; - int toStep = TextConvert.ConvertSeq(drt["TOSEQUENCE"].ToString())[1] - '0'; - string foldSeq = drt["OLDTO"].ToString().Substring(0, 2); - if (foldSeq[1] == 'F') - { - for (int istp = fromStep; istp <= toStep; istp++) - stpFoldSeq.Add(istp, foldSeq); - } - } - ds.Dispose(); - da.Dispose(); - // now read in the HLS's and set their config to the appropriate foldout. - // stpFoldSeq contains 16 bit step to foldout associations, i.e. an integer step - // number (ordinal) and string sequence of foldout. - // FloatingFoldoutHLS contains each 16bit ordinal step number (all steps, whether - // they have a foldout or not) and the associated itemid in 32bit - // FoldoutStpSeq contains all foldouts, i.e. the string representing the sequence - // number if 16bit and the resulting 32bit itemid. - foreach (KeyValuePair kvp in stpFoldSeq) - { - int hlsItemId = FloatingFoldoutHLS[kvp.Key-1]; // -1 for indexes starting at 0 (not 1) - using (Item itmF = Item.Get(hlsItemId)) - { - // be sure that the dictionaries contain the key. - // Some data may be 'corrupt' and not have the appropriate linkages - // to floating foldouts. - if (FoldoutStpSeq.ContainsKey(kvp.Value)) - { - int fldItemId = FoldoutStpSeq[kvp.Value]; - ConfigInfo ciFold = new ConfigInfo(itmF.MyContent.Config); - ciFold.AddItem("Step", "FloatingFoldout", fldItemId.ToString()); - itmF.MyContent.Config = ciFold.ToString(); - itmF.Save(); - } - } - } - } - catch (Exception ex) - { - frmMain.AddError(ex, "Error resolving Floating Foldout Data '{0}'", ProcNumber); - log.Error("Error resolving Floating Foldout Data"); - log.ErrorFormat("from number = {0}", ProcNumber); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - ds.Dispose(); - da.Dispose(); - } - } - if (FoldoutStpSeq!=null) FoldoutStpSeq.Clear(); - if (FloatingFoldoutHLS!=null) FloatingFoldoutHLS.Clear(); - //Console.WriteLine("End MigrateProcedure number {0}", number); - //Console.WriteLine("End MigrateProcedure Item Key {0} List {1}", Item.CacheCountPrimaryKey, Item.CacheCountList); - //Console.WriteLine("End MigrateProcedure ItemInfo Key {0} List {1}", ItemInfo.CacheCountPrimaryKey, ItemInfo.CacheCountList); - return itm; - } - - private static void TryToLoadDataSet(DataSet ds, string fname, OleDbDataAdapter dapsi) - { - try - { - dapsi.Fill(ds); - } - catch (Exception ex) - { - FileInfo fi; - switch (ex.Message) - { - case "Index file not found.":// then delete inf file - fi = new FileInfo(fname.ToLower().Replace(".dbf",".inf")); - fi.Delete(); - TryToLoadDataSet(ds, fname, dapsi); // Try again - break; - case "External table is not in the expected format.": // then pad dbt file with 128 zeros. - fi = new FileInfo(fname.ToLower().Replace(".dbf", ".dbt")); - FileStream fs = fi.OpenWrite(); - fs.Position = fs.Length; - byte[] buf = new byte[128]; - for (int i = 0; i < 128; i++) buf[i] = 0; - fs.Write(buf, 0, 128); - fs.Close(); - TryToLoadDataSet(ds, fname, dapsi); // Try again - break; - default: // Unrecognized error - Console.WriteLine(ex.Message); - //Application.Exit(); - throw new Exception("Error in MigrateProcedure: " + fname, ex); - } - } - } - private bool dB2KInstalled() - { - Microsoft.Win32.RegistryKey key = Microsoft.Win32.Registry.LocalMachine.OpenSubKey(@"software\dBase\dB2K"); - bool retval = key != null; - if(key != null)key.Close(); - return retval; - } - - // check for duplicate SET file data - jsj 2/11/10 - private bool OKtoProcessDBF(DataRow dr, string pth) - { - string pfn = dr["Entry"].ToString(); - string pn = dr["Number"].ToString(); - FileInfo fi = new FileInfo(pth + "\\" + pfn + ".dbf"); - if (!fi.Exists) - { - _MyLog.WarnFormat("Data file does not exist {0}", fi.FullName); - frmMain.AddError("Data file does not exist {0}", fi.FullName); - return false; - } - if (!dicSetfileEntries.ContainsValue(pfn) && !dicSetfileEntries.ContainsKey(pn)) - { - dicSetfileEntries.Add(pn, pfn); - return true; - } - return false; - } - private Item MigrateProcedures(OleDbConnection cn, string pth, DocVersion docver, bool convertProcedures, FormatInfo activeFormat) - { - - Item FirstItm = docver.MyItem;// null; - // Loop through Set File for each Procedure - try - { - OleDbDataAdapter da = new OleDbDataAdapter("Select * from [set] where entry is not null", cn); - DataSet ds = new DataSet(); - da.Fill(ds); - Item FrItm = null; - if (FirstItm != null) - FrItm = ItemInfo.Get(FirstItm.ItemID).LastSibling.Get(); - frmMain.pbProcMaximum = ds.Tables[0].Rows.Count; - frmMain.UpdateLabels(0, 0, 0); - dicSetfileEntries = new Dictionary(); // used to check for duplicate SET file info - jsj 2/11/10 - int i = 0; - frmMain.ShowSections = convertProcedures; - foreach (DataRow dr in ds.Tables[0].Rows) - { - i++; - if (i > frmMain.SkipProcedures && (frmMain.HowManyProcedures == 0|| i <= (frmMain.SkipProcedures + frmMain.HowManyProcedures) )) - { - if (OKtoProcessDBF(dr, pth)) // look for duplicate SET file info - jsj 2/11/10 - { - List cacheContentInfo = ContentInfo.CacheList; - List cacheItemInfo = ItemInfo.CacheList; - List cacheEntryInfo = EntryInfo.CacheList; - List cachePdfInfo = PdfInfo.CacheList; - List cacheDocVersionInfo = DocVersionInfo.CacheList; - List cachePartInfo = PartInfo.CacheList; - frmMain.pbStepValue = 0;//Reset Step Count - FrItm = MigrateProcedure(cn, dr, FrItm, pth, docver, convertProcedures, activeFormat); - if (FirstItm == null) FirstItm = FrItm; - //frmMain.MyInfo = string.Format("Before Restore {0}", GC.GetTotalMemory(true)); - ContentInfo.RestoreCacheList(cacheContentInfo); - PartInfo.RestoreCacheList(cachePartInfo); - ItemInfo.RestoreCacheList(cacheItemInfo); - EntryInfo.RestoreCacheList(cacheEntryInfo); - PdfInfo.RestoreCacheList(cachePdfInfo); - DocVersionInfo.RestoreCacheList(cacheDocVersionInfo); - //frmMain.MyInfo = string.Format("After Restore {0}", GC.GetTotalMemory(true)); - } - } - //GC.Collect(); - } - ds.Dispose(); - da.Dispose(); - } - catch (Exception ex) - { - _MyLog.ErrorFormat("MigrateProcedures - {0} - {1}\r\n\r\n{2}", pth,ex.Message, ex.InnerException); - //throw new Exception("Error in MigrateProcedures: " + pth, ex); - } - frmMain.MyInfo = CSLACache.UsageAll; - frmMain.AddInfo(Content.MyStack); - frmMain.AddInfo(ContentInfo.MyStack); - frmMain.AddInfo(DocVersionInfo.MyStack); - return FirstItm; - } - private void DbtOk(string fname, string pth) - { - string dbtname = pth + "\\" + fname + ".dbt"; - if (File.Exists(dbtname)) - { - // check if dbt is at least 512, if not append 508 bytes. This is to fix - // a problem where dbts were created with only 4 bytes in the 16-bit code. - // if only 4 bytes, ado.net gives an "External table not in expected format" - // error - FileInfo fi = new FileInfo(dbtname); - if (fi.Length < 512) - { - FileStream fs = new FileStream(dbtname, FileMode.Open, FileAccess.Write, FileShare.ReadWrite); - BinaryWriter bw = new BinaryWriter(fs); - bw.Seek(0, SeekOrigin.End); - byte[] wrBytes = new byte[512 - fi.Length]; - for (int i = 0; i < 512 - fi.Length; i++) wrBytes[i] = 0; - wrBytes[4] = 0x02; - bw.Write(wrBytes); - bw.Close(); - } - fi = null; - } - } - } -} diff --git a/PROMS/DataLoader/Procedures.cs.bak b/PROMS/DataLoader/Procedures.cs.bak deleted file mode 100644 index bba624f5..00000000 --- a/PROMS/DataLoader/Procedures.cs.bak +++ /dev/null @@ -1,294 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class Loader - { - #region Log4Net - public static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - //public static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - private Item MigrateProcedure(OleDbConnection cn, DataRow dr, Item FromItem, string pth, DocVersion docver, bool convertProcedures) - { - dicOldStepSequence = new Dictionary(); - Stack SubSectLevels = new Stack(); // levels of subsections - ProcFileName = dr["Entry"].ToString(); - ProcNumber = dr["Number"].ToString(); - DateTime dts = GetDTS(dr["Date"].ToString(), dr["Time"].ToString()); - string userid = dr["initials"].ToString().Trim(); - if (userid == null || userid == "") userid = "Migration"; - - ConfigInfo ci = null; - string tstr = dr["Proccode"].ToString(); - if (tstr != null && tstr != "") - { - ci = new ConfigInfo(null); - ci.AddItem("Procedure", "ProcCode", tstr); - } - - // check that there is a "Series" column, i.e. the 10th column, some datasets - // may not have it, for example vetuec\master.sl1 - if (dr.ItemArray.Length > 10) - { - tstr = dr["Series"].ToString(); - if (tstr != null && tstr != "") - { - if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Procedure", "Series", tstr); - } - } - - DataSet ds = new DataSet(); - DataTable dt = null; - - // check that file exists, i.e. if proc file doesn't exist but has entry in set - // file, flag error, but continue. - //string fname = frmMain.tbSourceText +"\\"+ dr["entry"] + ".dbf"; - string fname = pth + "\\" + dr["entry"] + ".dbf"; - if (File.Exists(fname)) - { - // if the dbt is bad, fix it. - DbtOk(dr["entry"].ToString(),pth); - // See if there is PSI and if so, add it to the xml. - OleDbDataAdapter dapsi = new OleDbDataAdapter("select * from [" + dr["entry"] + "] where [STEP] is null", cn); - try - { - dapsi.Fill(ds); - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - Application.Exit(); - } - dt = ds.Tables[0]; - - if (dt.Rows.Count > 0) - { - DataRow drpsi = dt.Rows[0]; - string psistr = drpsi["TEXTM"].ToString(); - if (psistr != null && psistr != "") - { - StringReader strrd = new StringReader(psistr); - - string sLine; - if (ci == null) ci = new ConfigInfo(null); - while ((sLine = strrd.ReadLine()) != null) - { - int indx = sLine.IndexOf(' '); - string nm = null; - string vl = null; - if (indx < 0) - nm = sLine; - else - { - nm = sLine.Substring(0, indx); - vl = sLine.Substring(indx + 1, sLine.Length - indx - 1); - } - ci.AddItem("PSI", nm, vl == null ? null : vl); - } - } - } - dapsi.Dispose(); - } - else // log an error - { - log.ErrorFormat("Missing DBF: {0}", fname); - } - - // Note, for now the data from the format field will be saved. Later, xpath, ?? - EditSectId = 0; - - // See if no caret convert... - FormatInfo docverFormat = docver.MyDocVersionInfo.ActiveFormat; - bool do_cvt = docverFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta; - // pass in a 0 on MakeContent for type of procedure, i.e. procedure = 0 (on type field) - - // can we save itm.ItemID in a dictionary of outside trans? ex: otrans("vehlp\procs\0POP05-EO00",itm.ItemID)? - Content cont = null; - Item itm =null; - string number = TextConvert.ConvertText(dr["Number"].ToString()); - frmMain.UpdateLabels(1, 0, 0); - if (!convertProcedures || docver.VersionType != (int)VEPROMS.CSLA.Library.VersionTypeEnum.WorkingDraft) - { - cont = Content.New(number, TextConvert.ConvertText(dr["Title"].ToString(),do_cvt), 0, null, ci == null ? null : ci.ToString(), dts, userid); - itm = Item.MakeItem(FromItem, cont, dts, userid); - } - else - { - DocVersionInfo dvi = DocVersionInfo.Get(docver.VersionID); - foreach(ItemInfo ii in dvi.Procedures){ - if (ii.MyContent.Number == number) - { - Console.WriteLine(number); - itm = ii.Get(); - cont = ii.MyContent.Get(); - } - } - } - if (convertProcedures /*&& number == "0POP05\\u8209?EO\\u8209?ES32"*/) //0POP05\u8209?EO\u8209?ES32 - { - OleDbDataAdapter da = new OleDbDataAdapter("select * from [" + dr["entry"] + "] where sequence like ' %'", cn); - try - { - LoadSection(ds, da, dr["entry"].ToString()); - da.SelectCommand.CommandText = "select * from [" + dr["entry"] + "] where step not like ' ' and step not like '%~'"; - da.Fill(ds, "Steps"); - dt = ds.Tables["Steps"]; - dt.CaseSensitive = true; - ds.Tables["Steps"].CaseSensitive = true; - dt.Columns.Add("CStep", System.Type.GetType("System.String")); - dt.Columns.Add("CSequence", System.Type.GetType("System.String")); - // set the cstep & csequence - couldn't do it in the add because it needed a sql function - foreach (DataRow drw in ds.Tables["Steps"].Rows) - { - drw["CStep"] = TextConvert.ConvertSeq(drw["Step"].ToString()); - drw["CSequence"] = TextConvert.ConvertSeq(drw["Sequence"].ToString()); - } - dt.Columns.Add("StepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CStep,2,1),'System.Char'),'System.Int32')-48"); - dt.Columns.Add("Level", System.Type.GetType("System.Int32"), "Len(CSequence)"); - dt.Columns.Add("SubStepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CSequence,Len(CSequence),1),'System.Char'),'System.Int32')-48"); - } - catch (Exception ex) - { - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - log.Error(ex.StackTrace); - } - da.Dispose(); - - // dicSecCount is dictionary to track number of subsections for the parent at a level - // dicSecID is the parent at that level - Dictionary dicSecCount = new Dictionary(); - Dictionary dicSecParentItem = new Dictionary(); - frmMain.pbSectMaximum = ds.Tables["Sections"].Rows.Count; - frmMain.pbSectValue = 0; - - DataTable dtsect = ds.Tables["Sections"]; - dtsect.CaseSensitive = true; - DataView dv = new DataView(dtsect, "", "locb", DataViewRowState.CurrentRows); - Item SectItm = null; - int level = 0; - bool addpart = true; - Item parentitem = itm; - foreach (DataRowView drw in dv) - { - SectItm = MigrateSection(parentitem, ProcNumber, cn, drw, ds.Tables["Steps"], SectItm, dicSecCount.Count > 0 ? true : false, pth, docver); - // if no children, add first child (cont) - if (addpart) - { - // ContentsParts.Add can use 'fromtype', item - fromtype here = 2, section - cont.ContentParts.Add(2, SectItm); - if (cont.MyZContent.OldStepSequence == null || cont.MyZContent.OldStepSequence == "") cont.MyZContent.OldStepSequence = ProcNumber; - if (!cont.IsSavable) ErrorRpt.ErrorReport(cont); - cont.Save(); - addpart = false; - } - //FrType = 0; - dicSecParentItem[level] = SectItm; - if (level > 0) - { - if ((dicSecCount[level]) == 1) - // shift up a level, i.e. give me the parent for the previous level - SectItm = dicSecParentItem[--level]; - else - dicSecCount[level]--; // decrements number of sections to process - } - // get number of subsections for this section - int subSecs = drw["Sequence"].ToString().PadRight(12, ' ')[5] - 48; - if (subSecs > 0) - { - dicSecCount[++level] = subSecs; - cont = SectItm.MyContent; - parentitem = SectItm; - addpart = true; - SectItm = null; // no previous sibling for the first child node. - } - } - // need section start - if (EditSectId != 0) - { - if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Procedure", "SectionStart", string.Format("{0}", EditSectId)); - itm.MyContent.Config = (ci == null) ? null : ci.ToString(); - if (!itm.IsSavable) ErrorRpt.ErrorReport(itm); - itm.Save(); - } - } - ds.Dispose(); - return itm; - } - private Item MigrateProcedures(OleDbConnection cn, string pth, DocVersion docver, bool convertProcedures) - { - Item FirstItm = null; - // Loop through Set File for each Procedure - int whereami = 0; - try - { - OleDbDataAdapter da = new OleDbDataAdapter("Select * from [set] where entry is not null", cn); - DataSet ds = new DataSet(); - da.Fill(ds); - Item FrItm = null; - frmMain.pbProcMaximum = ds.Tables[0].Rows.Count; - frmMain.UpdateLabels(0, 0, 0); - - foreach (DataRow dr in ds.Tables[0].Rows) - { - FrItm = MigrateProcedure(cn, dr, FrItm, pth, docver, convertProcedures); - if (FirstItm == null) FirstItm = FrItm; - } - da.Dispose(); - } - catch (Exception ex) - { - Console.WriteLine("End of MigrateProcedures - ex = {0}", ex.Message); - _MyLog.ErrorFormat("MigrateProcedures - {0} - {1}\r\n\r\n{2}", pth,ex.Message, ex.InnerException); - } - return FirstItm; - } - private void DbtOk(string fname, string pth) - { - //string dbtname = frmMain.tbSourceText + "\\" + fname + ".dbt"; - string dbtname = pth + "\\" + fname + ".dbt"; - if (File.Exists(dbtname)) - { - // check if dbt is at least 512, if not append 508 bytes. This is to fix - // a problem where dbts were created with only 4 bytes in the 16-bit code. - // if only 4 bytes, ado.net gives an "External table not in expected format" - // error - FileInfo fi = new FileInfo(dbtname); - if (fi.Length < 512) - { - FileStream fs = new FileStream(dbtname, FileMode.Open, FileAccess.Write, FileShare.ReadWrite); - BinaryWriter bw = new BinaryWriter(fs); - bw.Seek(0, SeekOrigin.End); - byte[] wrBytes = new byte[512 - fi.Length]; - for (int i = 0; i < 512 - fi.Length; i++) wrBytes[i] = 0; - wrBytes[4] = 0x02; - bw.Write(wrBytes); - bw.Close(); - } - fi = null; - } - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/Program.cs b/PROMS/DataLoader/Program.cs deleted file mode 100644 index 5ba04ba7..00000000 --- a/PROMS/DataLoader/Program.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - - -namespace DataLoader -{ - static class Program - { - // - //The main entry point for the application. - // - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmLoader()); - } - } -} diff --git a/PROMS/DataLoader/Properties/AssemblyInfo.cs b/PROMS/DataLoader/Properties/AssemblyInfo.cs deleted file mode 100644 index ee29bd60..00000000 --- a/PROMS/DataLoader/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DataLoader")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Volian Enterprises, Inc.")] -[assembly: AssemblyProduct("DataLoader")] -[assembly: AssemblyCopyright("Copyright © Volian Enterprises, Inc. 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("bcf6964e-0a2b-4e99-8dde-2dd62366294c")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/DataLoader/Properties/Resources.Designer.cs b/PROMS/DataLoader/Properties/Resources.Designer.cs deleted file mode 100644 index bae8975a..00000000 --- a/PROMS/DataLoader/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.832 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace DataLoader.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("DataLoader.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/DataLoader/Properties/Resources.resx b/PROMS/DataLoader/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/DataLoader/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/DataLoader/Properties/Settings.Designer.cs b/PROMS/DataLoader/Properties/Settings.Designer.cs deleted file mode 100644 index 5897d349..00000000 --- a/PROMS/DataLoader/Properties/Settings.Designer.cs +++ /dev/null @@ -1,422 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.5485 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace DataLoader.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string VeSamFilename { - get { - return ((string)(this["VeSamFilename"])); - } - set { - this["VeSamFilename"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string DbfPathname { - get { - return ((string)(this["DbfPathname"])); - } - set { - this["DbfPathname"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Checked")] - public global::System.Windows.Forms.CheckState LoadWordDoc { - get { - return ((global::System.Windows.Forms.CheckState)(this["LoadWordDoc"])); - } - set { - this["LoadWordDoc"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Unchecked")] - public global::System.Windows.Forms.CheckState LoadRTFDoc { - get { - return ((global::System.Windows.Forms.CheckState)(this["LoadRTFDoc"])); - } - set { - this["LoadRTFDoc"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Checked")] - public global::System.Windows.Forms.CheckState PurgeData { - get { - return ((global::System.Windows.Forms.CheckState)(this["PurgeData"])); - } - set { - this["PurgeData"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string VePromsFilename { - get { - return ((string)(this["VePromsFilename"])); - } - set { - this["VePromsFilename"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string LogFileLoc { - get { - return ((string)(this["LogFileLoc"])); - } - set { - this["LogFileLoc"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string BackupFileName { - get { - return ((string)(this["BackupFileName"])); - } - set { - this["BackupFileName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string BackupFolder { - get { - return ((string)(this["BackupFolder"])); - } - set { - this["BackupFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Data Source=.\\SQLEXPRESS;Initial Catalog={DBName};Integrated Security=True")] - public string ConnectionString { - get { - return ((string)(this["ConnectionString"])); - } - set { - this["ConnectionString"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("VEPROMS")] - public string DBName { - get { - return ((string)(this["DBName"])); - } - set { - this["DBName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string DBPath { - get { - return ((string)(this["DBPath"])); - } - set { - this["DBPath"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string PDFFolder { - get { - return ((string)(this["PDFFolder"])); - } - set { - this["PDFFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Unchecked")] - public global::System.Windows.Forms.CheckState CheckRTF { - get { - return ((global::System.Windows.Forms.CheckState)(this["CheckRTF"])); - } - set { - this["CheckRTF"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int Skip { - get { - return ((int)(this["Skip"])); - } - set { - this["Skip"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("1")] - public int ConvertTo { - get { - return ((int)(this["ConvertTo"])); - } - set { - this["ConvertTo"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Checked")] - public global::System.Windows.Forms.CheckState RedPDFs { - get { - return ((global::System.Windows.Forms.CheckState)(this["RedPDFs"])); - } - set { - this["RedPDFs"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Checked")] - public global::System.Windows.Forms.CheckState OnlyThisSet { - get { - return ((global::System.Windows.Forms.CheckState)(this["OnlyThisSet"])); - } - set { - this["OnlyThisSet"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int ExecutionMode { - get { - return ((int)(this["ExecutionMode"])); - } - set { - this["ExecutionMode"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Phase1")] - public string Phase1 { - get { - return ((string)(this["Phase1"])); - } - set { - this["Phase1"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Phase2")] - public string Phase2 { - get { - return ((string)(this["Phase2"])); - } - set { - this["Phase2"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Phase3")] - public string Phase3 { - get { - return ((string)(this["Phase3"])); - } - set { - this["Phase3"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("c:\\development\\fmtall")] - public string FormatFolder { - get { - return ((string)(this["FormatFolder"])); - } - set { - this["FormatFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("c:\\development\\genmacall")] - public string GenMacFolder { - get { - return ((string)(this["GenMacFolder"])); - } - set { - this["GenMacFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("False")] - public bool LoadApproved { - get { - return ((bool)(this["LoadApproved"])); - } - set { - this["LoadApproved"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Phase4")] - public string Phase4 { - get { - return ((string)(this["Phase4"])); - } - set { - this["Phase4"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string ProcessOnlyInLocation { - get { - return ((string)(this["ProcessOnlyInLocation"])); - } - set { - this["ProcessOnlyInLocation"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int WhatROsToConvert { - get { - return ((int)(this["WhatROsToConvert"])); - } - set { - this["WhatROsToConvert"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("-1")] - public int SelectedROFst { - get { - return ((int)(this["SelectedROFst"])); - } - set { - this["SelectedROFst"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("False")] - public bool AnnotateWhenConvertingToText { - get { - return ((bool)(this["AnnotateWhenConvertingToText"])); - } - set { - this["AnnotateWhenConvertingToText"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("False")] - public bool AnnotateWhenShowingMissingRO { - get { - return ((bool)(this["AnnotateWhenShowingMissingRO"])); - } - set { - this["AnnotateWhenShowingMissingRO"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("False")] - public bool AnnotateWhenShowingDifferentRO { - get { - return ((bool)(this["AnnotateWhenShowingDifferentRO"])); - } - set { - this["AnnotateWhenShowingDifferentRO"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int HowMany { - get { - return ((int)(this["HowMany"])); - } - set { - this["HowMany"] = value; - } - } - } -} diff --git a/PROMS/DataLoader/Properties/Settings.Designer.cs.org b/PROMS/DataLoader/Properties/Settings.Designer.cs.org deleted file mode 100644 index 564d3ec5..00000000 --- a/PROMS/DataLoader/Properties/Settings.Designer.cs.org +++ /dev/null @@ -1,314 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4216 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace DataLoader.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string VeSamFilename { - get { - return ((string)(this["VeSamFilename"])); - } - set { - this["VeSamFilename"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string DbfPathname { - get { - return ((string)(this["DbfPathname"])); - } - set { - this["DbfPathname"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Checked")] - public global::System.Windows.Forms.CheckState LoadWordDoc { - get { - return ((global::System.Windows.Forms.CheckState)(this["LoadWordDoc"])); - } - set { - this["LoadWordDoc"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Unchecked")] - public global::System.Windows.Forms.CheckState LoadRTFDoc { - get { - return ((global::System.Windows.Forms.CheckState)(this["LoadRTFDoc"])); - } - set { - this["LoadRTFDoc"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Checked")] - public global::System.Windows.Forms.CheckState PurgeData { - get { - return ((global::System.Windows.Forms.CheckState)(this["PurgeData"])); - } - set { - this["PurgeData"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string VePromsFilename { - get { - return ((string)(this["VePromsFilename"])); - } - set { - this["VePromsFilename"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string LogFileLoc { - get { - return ((string)(this["LogFileLoc"])); - } - set { - this["LogFileLoc"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string BackupFileName { - get { - return ((string)(this["BackupFileName"])); - } - set { - this["BackupFileName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string BackupFolder { - get { - return ((string)(this["BackupFolder"])); - } - set { - this["BackupFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Data Source=.\\SQLEXPRESS;Initial Catalog={DBName};Integrated Security=True")] - public string ConnectionString { - get { - return ((string)(this["ConnectionString"])); - } - set { - this["ConnectionString"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("VEPROMS")] - public string DBName { - get { - return ((string)(this["DBName"])); - } - set { - this["DBName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string DBPath { - get { - return ((string)(this["DBPath"])); - } - set { - this["DBPath"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string PDFFolder { - get { - return ((string)(this["PDFFolder"])); - } - set { - this["PDFFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Unchecked")] - public global::System.Windows.Forms.CheckState CheckRTF { - get { - return ((global::System.Windows.Forms.CheckState)(this["CheckRTF"])); - } - set { - this["CheckRTF"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int Skip { - get { - return ((int)(this["Skip"])); - } - set { - this["Skip"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("1")] - public int ConvertTo { - get { - return ((int)(this["ConvertTo"])); - } - set { - this["ConvertTo"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Checked")] - public global::System.Windows.Forms.CheckState RedPDFs { - get { - return ((global::System.Windows.Forms.CheckState)(this["RedPDFs"])); - } - set { - this["RedPDFs"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Checked")] - public global::System.Windows.Forms.CheckState OnlyThisSet { - get { - return ((global::System.Windows.Forms.CheckState)(this["OnlyThisSet"])); - } - set { - this["OnlyThisSet"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0")] - public int ExecutionMode { - get { - return ((int)(this["ExecutionMode"])); - } - set { - this["ExecutionMode"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Phase1")] - public string Phase1 { - get { - return ((string)(this["Phase1"])); - } - set { - this["Phase1"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Phase2")] - public string Phase2 { - get { - return ((string)(this["Phase2"])); - } - set { - this["Phase2"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Phase3")] - public string Phase3 { - get { - return ((string)(this["Phase3"])); - } - set { - this["Phase3"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("c:\\development\\fmtall")] - public string FormatFolder { - get { - return ((string)(this["FormatFolder"])); - } - set { - this["FormatFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("c:\\development\\genmacall")] - public string GenMacFolder { - get { - return ((string)(this["GenMacFolder"])); - } - set { - this["GenMacFolder"] = value; - } - } - } -} diff --git a/PROMS/DataLoader/Properties/Settings.settings b/PROMS/DataLoader/Properties/Settings.settings deleted file mode 100644 index 24ea2b23..00000000 --- a/PROMS/DataLoader/Properties/Settings.settings +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - Checked - - - Unchecked - - - Checked - - - - - - - - - - - - - - - Data Source=.\SQLEXPRESS;Initial Catalog={DBName};Integrated Security=True - - - VEPROMS - - - - - - - - - Unchecked - - - 0 - - - 1 - - - Checked - - - Checked - - - 0 - - - Phase1 - - - Phase2 - - - Phase3 - - - c:\development\fmtall - - - c:\development\genmacall - - - False - - - Phase4 - - - - - - 0 - - - -1 - - - False - - - False - - - False - - - 0 - - - \ No newline at end of file diff --git a/PROMS/DataLoader/Properties/licenses.licx b/PROMS/DataLoader/Properties/licenses.licx deleted file mode 100644 index d4ec2296..00000000 --- a/PROMS/DataLoader/Properties/licenses.licx +++ /dev/null @@ -1 +0,0 @@ -C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.6.20101.528, Culture=neutral, PublicKeyToken=79882d576c6336da diff --git a/PROMS/DataLoader/ROFixer.cs b/PROMS/DataLoader/ROFixer.cs deleted file mode 100644 index be437fcf..00000000 --- a/PROMS/DataLoader/ROFixer.cs +++ /dev/null @@ -1,290 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using VEPROMS.CSLA.Library; -using System.Windows.Forms; - -namespace DataLoader -{ - public delegate void ROFixerEvent(object sender, ROFixerEventArgs args); - public class ROFixerEventArgs - { - private string _MyStatus; - - public string MyStatus - { - get { return _MyStatus; } - set { _MyStatus = value; } - } - public ROFixerEventArgs(string myStatus) - { - _MyStatus = myStatus; - } - } - class ROFixer - { - public static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - public event ROFixerEvent StatusChanged; - private void OnStatusChanged(object sender, ROFixerEventArgs args) - { - if (StatusChanged != null) - StatusChanged(sender, args); - } - private string _Status; - - public string Status - { - get { return _Status; } - set - { - _Status = value; - OnStatusChanged(this, new ROFixerEventArgs(_Status)); - } - } - private int _ErrorCount = 0; - - public int ErrorCount - { - get { return _ErrorCount; } - set { _ErrorCount = value; } - } - private string _LogPath; - private frmLoader frmMain; - public ROFixer(string logpath, frmLoader myfrmMain) - { - _LogPath = logpath; - frmMain = myfrmMain; - } - public TimeSpan Process() - { - DateTime tstart = DateTime.Now; - ProcessROs(); - return DateTime.Now - tstart; - } - public TimeSpan Process(DocVersionInfo dvi) - { - DateTime tstart = DateTime.Now; - ProcessROs(dvi); - return DateTime.Now - tstart; - } - public TimeSpan Process(ProcedureInfo pi) - { - DateTime tstart = DateTime.Now; - ProcessROs(pi); - return DateTime.Now - tstart; - } - private void ProcessROs() - { - Status = "Getting List..."; - RoUsageInfoList myRoUsages = RoUsageInfoList.Get(); - DoProcessROs(myRoUsages); - } - //private void ProcessROs(FolderInfo fi) - //{ - // Status = "Getting List..."; - // RoUsageInfoList myRoUsages = RoUsageInfoList.GetByFolder(fi); - // DoProcessROs(myRoUsages); - //} - private void ProcessROs(DocVersionInfo dvi) - { - Status = "Getting List..."; - RoUsageInfoList myRoUsages = RoUsageInfoList.GetByDocVersion(dvi); - DoProcessROs(myRoUsages); - } - private void ProcessROs(ProcedureInfo pi) - { - Status = "Getting List..."; - RoUsageInfoList myRoUsages = RoUsageInfoList.GetByProcedure(pi); - DoProcessROs(myRoUsages); - } - private AnnotationType _VolianCommentType = null; // Using this to flag ro value issues with byron to braidwood - public AnnotationType VolianCommentType - { - get - { - if (_VolianCommentType == null) - _VolianCommentType = AnnotationType.GetByName("Volian Comment"); - if (_VolianCommentType == null) - _VolianCommentType = AnnotationType.MakeAnnotationType("Volian Comment",null); - return _VolianCommentType; - } - } - private void DoProcessROs(RoUsageInfoList myRoUsages) - { - int changeCount = 0; - // get list of content records - List myContentList = new List(); - Dictionary roFstLookups = new Dictionary(); - Dictionary oldRoFstLookups = null; - ROFstInfo oldRoFst = null; - if (frmMain.MySettings.SelectedROFst > 0) - { - oldRoFst = ROFstInfo.Get(frmMain.MySettings.SelectedROFst); - oldRoFstLookups = new Dictionary(); - } - foreach (RoUsageInfo rou in myRoUsages) - { - if (!myContentList.Contains(rou.ContentID)) - { - myContentList.Add(rou.ContentID); - } - } - int i = 0; - foreach (int cid in myContentList) - { - Status = string.Format("Processing {0} of {1} steps", ++i, myContentList.Count); - ContentInfo myContentInfo = ContentInfo.Get(cid); - DocVersionInfo dvi = myContentInfo.ContentItems[0].MyProcedure.MyDocVersion; - int versionId = dvi.VersionID; - ROFstInfo myRoFst = dvi.DocVersionAssociations[0].MyROFst; - if (!roFstLookups.ContainsKey(versionId)) - { - roFstLookups.Add(versionId, myRoFst.GetROFSTLookup(dvi)); - } - ROFSTLookup myLookup = roFstLookups[versionId]; - if (oldRoFstLookups != null && !oldRoFstLookups.ContainsKey(versionId)) - { - oldRoFstLookups.Add(versionId, oldRoFst.GetROFSTLookup(dvi)); - } - ROFSTLookup oldLookup = null; - if(oldRoFstLookups != null) - oldLookup = oldRoFstLookups[versionId]; - using (Content ctmp = myContentInfo.Get()) - { - ItemInfo ii = myContentInfo.ContentItems[0]; - foreach (RoUsageInfo ru in myContentInfo.ContentRoUsages) - { - string sameMsg = string.Empty; - bool theSame = false; - if (oldLookup != null) - theSame = CheckIfTheSame(ii, ru.ROID, myLookup, oldLookup, dvi, ref sameMsg); - ROFSTLookup.rochild rocc = myLookup.GetRoChild12(ru.ROID); - if (rocc.value == null) - rocc = myLookup.GetRoChild(ru.ROID); - int myType = rocc.type; - string myValue = myLookup.GetTranslatedRoValue(ru.ROID, ii.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); - myValue = myValue.Replace(@"\up2 \u8209?", @"\up2\u8209?");// Remove space between superscript command and non-breaking hyphen - string fileNameOnly = null; - if (myType == 8 && myValue.Contains("\n")) - { - fileNameOnly = myValue.Split("\n".ToCharArray())[0]; - myValue = myValue.Replace("\n", "");// Remove newlines in Figure data - } - string textB4 = ctmp.Text; - myRoFst.ROTableUpdate += new ROFstInfoROTableUpdateEvent(myRoFst_ROTableUpdate); - string oldval; - switch (frmMain.MySettings.WhatROsToConvert) - { - case ROUpdateMode.None: - oldval = ctmp.FixContentText(ru, myValue, myType, myRoFst, fileNameOnly,""); - if(myValue == "?" && frmMain.MySettings.AnnotateWhenShowingMissingRO) - Annotation.MakeAnnotation(ctmp.ContentItems[0].MyItem, VolianCommentType, "", string.Format("RO value ({0}) missing", ItemInfo.ConvertToDisplayText(oldval)), null); - else if (ctmp.Text != textB4 && frmMain.MySettings.AnnotateWhenShowingDifferentRO) - Annotation.MakeAnnotation(ctmp.ContentItems[0].MyItem, VolianCommentType, "", string.Format("Old RO value ({0}) different than new RO value({1})", ItemInfo.ConvertToDisplayText(oldval), ItemInfo.ConvertToDisplayText(myValue)), null); - break; - case ROUpdateMode.All: - oldval = ctmp.ConvertROToText(ru, myValue, myType, myRoFst); - if (frmMain.MySettings.AnnotateWhenConvertingToText) - Annotation.MakeAnnotation(ctmp.ContentItems[0].MyItem, VolianCommentType, "", string.Format("RO value ({0}) converted to text", ItemInfo.ConvertToDisplayText(oldval)), null); - break; - default: - if (myValue == "?") - { - oldval = ctmp.ConvertROToText(ru, myValue, myType, myRoFst); - if (frmMain.MySettings.AnnotateWhenConvertingToText) - Annotation.MakeAnnotation(ctmp.ContentItems[0].MyItem, VolianCommentType, "", string.Format("RO value ({0}) converted to text" + sameMsg, ItemInfo.ConvertToDisplayText(oldval)), null); - } - else - { - oldval = ctmp.FixContentText(ru, myValue, myType, myRoFst, fileNameOnly,""); - if (ctmp.Text != textB4 && frmMain.MySettings.AnnotateWhenShowingDifferentRO) - Annotation.MakeAnnotation(ctmp.ContentItems[0].MyItem, VolianCommentType, "", string.Format("Old RO value ({0}) different than new RO value({1})" + sameMsg, ItemInfo.ConvertToDisplayText(oldval), ItemInfo.ConvertToDisplayText(myValue)), null); - } - break; - } - myRoFst.ROTableUpdate -= new ROFstInfoROTableUpdateEvent(myRoFst_ROTableUpdate); - if (ctmp.Text != textB4) - { - changeCount++; - //Console.WriteLine("'{0}', '{1}', '{2}', '{3}'", replace(oldval, @"\u8209?", "-"), replace(myValue, @"\u8209?", "-"), ru.ROID, rocc.appid); - frmMain.AddInfo("'{0}','{1}','{2}','{3}','R{4}','{5}','{6}'", ii.MyDocVersion.MyFolder.Name, ii.ShortPath, - (oldval ?? "").Replace(@"\u8209?", "-").Replace("'", "''"), myValue.Replace(@"\u8209?", "-").Replace("'", "''"), ru.ROID, myLookup.GetAccPageID(ru.ROID), sameMsg); - } - else if (sameMsg != string.Empty && sameMsg != ", Exact Match") - { - frmMain.AddInfo("'{0}','{1}','{2}','{3}','R{4}','{5}','{6}'", ii.MyDocVersion.MyFolder.Name, ii.ShortPath, - (oldval ?? "").Replace(@"\u8209?", "-").Replace("'", "''"), myValue.Replace(@"\u8209?", "-").Replace("'", "''"), ru.ROID, myLookup.GetAccPageID(ru.ROID), sameMsg); - } - } - if (ctmp.IsDirty) - { - //ctmp.DTS = DateTime.Now; - ctmp.Save(); - ContentInfo.Refresh(ctmp); - } - } - } - frmMain.AddInfo("{0} RO Values Updated", changeCount); - MessageBox.Show(String.Format("{0} RO Values Updated", changeCount), "RO Value Update Complete", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - - private bool CheckIfTheSame(ItemInfo ii, string roid, ROFSTLookup myLookup, ROFSTLookup oldLookup, DocVersionInfo dvi, ref string sameMsg) - { - /* - ROFSTLookup.rochild rocc = myLookup.GetRoChild12(ru.ROID); - if (rocc.value == null) - rocc = myLookup.GetRoChild(ru.ROID); - int myType = rocc.type; - */ - ROFSTLookup.rochild roc = myLookup.GetRoChild12(roid); - if (roc.value == null) roc = myLookup.GetRoChild(roid); - ROFSTLookup.rochild oroc = oldLookup.GetRoChild12(roid); - if (oroc.value == null) oroc = oldLookup.GetRoChild(roid); - string myValue = myLookup.GetTranslatedRoValue(roid, ii.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); - myValue = myValue.Replace(@"\up2 \u8209?", @"\up2\u8209?");// Remove space between superscript command and non-breaking hyphen - string oldValue = oldLookup.GetTranslatedRoValue(roid, ii.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); - oldValue = oldValue.Replace(@"\up2 \u8209?", @"\up2\u8209?");// Remove space between superscript command and non-breaking hyphen - string myAccPageID = myLookup.GetAccPageID(roid); - string oldAccPageID = oldLookup.GetAccPageID(roid); - if (myValue == oldValue && roc.type == oroc.type && ((myAccPageID ?? "null") == (oldAccPageID ?? "null"))) - { - sameMsg = ", Exact Match"; - return true; - } - if (myValue != oldValue && roc.type == oroc.type && ((myAccPageID ?? "null") == (oldAccPageID ?? "null"))) - { - sameMsg = ", Different Value, Same RO"; - return false; - } - if ((myAccPageID ?? "null") != (oldAccPageID ?? "null")) - { - ROFSTLookup.rochild? myroc = myLookup.GetROChildByAccPageID(oldAccPageID, dvi.DocVersionConfig.RODefaults_setpointprefix, dvi.DocVersionConfig.RODefaults_graphicsprefix); - if (myroc != null) - { - string myValueNew = myLookup.GetTranslatedRoValue(((ROFSTLookup.rochild)myroc).roid, ii.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); - if(myValueNew == oldValue) - sameMsg = ", Same Value, Different RO"; - else - sameMsg = ", Different Value, Different RO"; - } - else - sameMsg = ", Missing RO"; - return false; - } - sameMsg = ", Unknown"; - - //if (myLookup.GetAccPageID(roid) == oldLookup.GetAccPageID(roid)) - //{ - // sameMsg = string.Format("ROID: {0}, AccPageID: {1}, OldAccPageID: {2}", roid, myLookup.GetAccPageID(roid), oldLookup.GetAccPageID(roid)); - // return false; - //} - //sameMsg = "Values and AccPageIDs are different for ROID: " + roid; - return false; - } - - private List myRoFst_ROTableUpdate(object sender, ROFstInfoROTableUpdateEventArgs args) - { - return Volian.Controls.Library.VlnFlexGrid.ROTableUpdate(sender,args); - } - } -} diff --git a/PROMS/DataLoader/ROFixer.cs.bak b/PROMS/DataLoader/ROFixer.cs.bak deleted file mode 100644 index f5622e33..00000000 --- a/PROMS/DataLoader/ROFixer.cs.bak +++ /dev/null @@ -1,290 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using VEPROMS.CSLA.Library; -using System.Windows.Forms; - -namespace DataLoader -{ - public delegate void ROFixerEvent(object sender, ROFixerEventArgs args); - public class ROFixerEventArgs - { - private string _MyStatus; - - public string MyStatus - { - get { return _MyStatus; } - set { _MyStatus = value; } - } - public ROFixerEventArgs(string myStatus) - { - _MyStatus = myStatus; - } - } - class ROFixer - { - public static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - public event ROFixerEvent StatusChanged; - private void OnStatusChanged(object sender, ROFixerEventArgs args) - { - if (StatusChanged != null) - StatusChanged(sender, args); - } - private string _Status; - - public string Status - { - get { return _Status; } - set - { - _Status = value; - OnStatusChanged(this, new ROFixerEventArgs(_Status)); - } - } - private int _ErrorCount = 0; - - public int ErrorCount - { - get { return _ErrorCount; } - set { _ErrorCount = value; } - } - private string _LogPath; - private frmLoader frmMain; - public ROFixer(string logpath, frmLoader myfrmMain) - { - _LogPath = logpath; - frmMain = myfrmMain; - } - public TimeSpan Process() - { - DateTime tstart = DateTime.Now; - ProcessROs(); - return DateTime.Now - tstart; - } - public TimeSpan Process(DocVersionInfo dvi) - { - DateTime tstart = DateTime.Now; - ProcessROs(dvi); - return DateTime.Now - tstart; - } - public TimeSpan Process(ProcedureInfo pi) - { - DateTime tstart = DateTime.Now; - ProcessROs(pi); - return DateTime.Now - tstart; - } - private void ProcessROs() - { - Status = "Getting List..."; - RoUsageInfoList myRoUsages = RoUsageInfoList.Get(); - DoProcessROs(myRoUsages); - } - //private void ProcessROs(FolderInfo fi) - //{ - // Status = "Getting List..."; - // RoUsageInfoList myRoUsages = RoUsageInfoList.GetByFolder(fi); - // DoProcessROs(myRoUsages); - //} - private void ProcessROs(DocVersionInfo dvi) - { - Status = "Getting List..."; - RoUsageInfoList myRoUsages = RoUsageInfoList.GetByDocVersion(dvi); - DoProcessROs(myRoUsages); - } - private void ProcessROs(ProcedureInfo pi) - { - Status = "Getting List..."; - RoUsageInfoList myRoUsages = RoUsageInfoList.GetByProcedure(pi); - DoProcessROs(myRoUsages); - } - private AnnotationType _VolianCommentType = null; // Using this to flag ro value issues with byron to braidwood - public AnnotationType VolianCommentType - { - get - { - if (_VolianCommentType == null) - _VolianCommentType = AnnotationType.GetByName("Volian Comment"); - if (_VolianCommentType == null) - _VolianCommentType = AnnotationType.MakeAnnotationType("Volian Comment",null); - return _VolianCommentType; - } - } - private void DoProcessROs(RoUsageInfoList myRoUsages) - { - int changeCount = 0; - // get list of content records - List myContentList = new List(); - Dictionary roFstLookups = new Dictionary(); - Dictionary oldRoFstLookups = null; - ROFstInfo oldRoFst = null; - if (frmMain.MySettings.SelectedROFst > 0) - { - oldRoFst = ROFstInfo.Get(frmMain.MySettings.SelectedROFst); - oldRoFstLookups = new Dictionary(); - } - foreach (RoUsageInfo rou in myRoUsages) - { - if (!myContentList.Contains(rou.ContentID)) - { - myContentList.Add(rou.ContentID); - } - } - int i = 0; - foreach (int cid in myContentList) - { - Status = string.Format("Processing {0} of {1} steps", ++i, myContentList.Count); - ContentInfo myContentInfo = ContentInfo.Get(cid); - DocVersionInfo dvi = myContentInfo.ContentItems[0].MyProcedure.MyDocVersion; - int versionId = dvi.VersionID; - ROFstInfo myRoFst = dvi.DocVersionAssociations[0].MyROFst; - if (!roFstLookups.ContainsKey(versionId)) - { - roFstLookups.Add(versionId, myRoFst.GetROFSTLookup(dvi)); - } - ROFSTLookup myLookup = roFstLookups[versionId]; - if (oldRoFstLookups != null && !oldRoFstLookups.ContainsKey(versionId)) - { - oldRoFstLookups.Add(versionId, oldRoFst.GetROFSTLookup(dvi)); - } - ROFSTLookup oldLookup = null; - if(oldRoFstLookups != null) - oldLookup = oldRoFstLookups[versionId]; - using (Content ctmp = myContentInfo.Get()) - { - ItemInfo ii = myContentInfo.ContentItems[0]; - foreach (RoUsageInfo ru in myContentInfo.ContentRoUsages) - { - string sameMsg = string.Empty; - bool theSame = false; - //if (oldLookup != null) - // theSame = CheckIfTheSame(ii, ru.ROID, myLookup, oldLookup, dvi, ref sameMsg); - ROFSTLookup.rochild rocc = myLookup.GetRoChild12(ru.ROID); - if (rocc.value == null) - rocc = myLookup.GetRoChild(ru.ROID); - int myType = rocc.type; - string myValue = myLookup.GetTranslatedRoValue(ru.ROID, ii.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); - myValue = myValue.Replace(@"\up2 \u8209?", @"\up2\u8209?");// Remove space between superscript command and non-breaking hyphen - string fileNameOnly = null; - if (myType == 8 && myValue.Contains("\n")) - { - fileNameOnly = myValue.Split("\n".ToCharArray())[0]; - myValue = myValue.Replace("\n", "");// Remove newlines in Figure data - } - string textB4 = ctmp.Text; - myRoFst.ROTableUpdate += new ROFstInfoROTableUpdateEvent(myRoFst_ROTableUpdate); - string oldval; - switch (frmMain.MySettings.WhatROsToConvert) - { - case ROUpdateMode.None: - oldval = ctmp.FixContentText(ru, myValue, myType, myRoFst, fileNameOnly); - if(myValue == "?" && frmMain.MySettings.AnnotateWhenShowingMissingRO) - Annotation.MakeAnnotation(ctmp.ContentItems[0].MyItem, VolianCommentType, "", string.Format("RO value ({0}) missing", ItemInfo.ConvertToDisplayText(oldval)), null); - else if (ctmp.Text != textB4 && frmMain.MySettings.AnnotateWhenShowingDifferentRO) - Annotation.MakeAnnotation(ctmp.ContentItems[0].MyItem, VolianCommentType, "", string.Format("Old RO value ({0}) different than new RO value({1})", ItemInfo.ConvertToDisplayText(oldval), ItemInfo.ConvertToDisplayText(myValue)), null); - break; - case ROUpdateMode.All: - oldval = ctmp.ConvertROToText(ru, myValue, myType, myRoFst); - if (frmMain.MySettings.AnnotateWhenConvertingToText) - Annotation.MakeAnnotation(ctmp.ContentItems[0].MyItem, VolianCommentType, "", string.Format("RO value ({0}) converted to text", ItemInfo.ConvertToDisplayText(oldval)), null); - break; - default: - if (myValue == "?") - { - oldval = ctmp.ConvertROToText(ru, myValue, myType, myRoFst); - if (frmMain.MySettings.AnnotateWhenConvertingToText) - Annotation.MakeAnnotation(ctmp.ContentItems[0].MyItem, VolianCommentType, "", string.Format("RO value ({0}) converted to text" + sameMsg, ItemInfo.ConvertToDisplayText(oldval)), null); - } - else - { - oldval = ctmp.FixContentText(ru, myValue, myType, myRoFst, fileNameOnly); - if (ctmp.Text != textB4 && frmMain.MySettings.AnnotateWhenShowingDifferentRO) - Annotation.MakeAnnotation(ctmp.ContentItems[0].MyItem, VolianCommentType, "", string.Format("Old RO value ({0}) different than new RO value({1})" + sameMsg, ItemInfo.ConvertToDisplayText(oldval), ItemInfo.ConvertToDisplayText(myValue)), null); - } - break; - } - myRoFst.ROTableUpdate -= new ROFstInfoROTableUpdateEvent(myRoFst_ROTableUpdate); - if (ctmp.Text != textB4) - { - changeCount++; - //Console.WriteLine("'{0}', '{1}', '{2}', '{3}'", replace(oldval, @"\u8209?", "-"), replace(myValue, @"\u8209?", "-"), ru.ROID, rocc.appid); - frmMain.AddInfo("'{0}','{1}','{2}','{3}','R{4}','{5}','{6}'", ii.MyDocVersion.MyFolder.Name, ii.ShortPath, - (oldval ?? "").Replace(@"\u8209?", "-").Replace("'", "''"), myValue.Replace(@"\u8209?", "-").Replace("'", "''"), ru.ROID, myLookup.GetAccPageID(ru.ROID), sameMsg); - } - else if (sameMsg != string.Empty && sameMsg != ", Exact Match") - { - frmMain.AddInfo("'{0}','{1}','{2}','{3}','R{4}','{5}','{6}'", ii.MyDocVersion.MyFolder.Name, ii.ShortPath, - (oldval ?? "").Replace(@"\u8209?", "-").Replace("'", "''"), myValue.Replace(@"\u8209?", "-").Replace("'", "''"), ru.ROID, myLookup.GetAccPageID(ru.ROID), sameMsg); - } - } - if (ctmp.IsDirty) - { - //ctmp.DTS = DateTime.Now; - ctmp.Save(); - ContentInfo.Refresh(ctmp); - } - } - } - frmMain.AddInfo("{0} RO Values Updated", changeCount); - MessageBox.Show(String.Format("{0} RO Values Updated", changeCount), "RO Value Update Complete", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - - private bool CheckIfTheSame(ItemInfo ii, string roid, ROFSTLookup myLookup, ROFSTLookup oldLookup, DocVersionInfo dvi, ref string sameMsg) - { - /* - ROFSTLookup.rochild rocc = myLookup.GetRoChild12(ru.ROID); - if (rocc.value == null) - rocc = myLookup.GetRoChild(ru.ROID); - int myType = rocc.type; - */ - ROFSTLookup.rochild roc = myLookup.GetRoChild12(roid); - if (roc.value == null) roc = myLookup.GetRoChild(roid); - ROFSTLookup.rochild oroc = oldLookup.GetRoChild12(roid); - if (oroc.value == null) oroc = oldLookup.GetRoChild(roid); - string myValue = myLookup.GetTranslatedRoValue(roid, ii.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); - myValue = myValue.Replace(@"\up2 \u8209?", @"\up2\u8209?");// Remove space between superscript command and non-breaking hyphen - string oldValue = oldLookup.GetTranslatedRoValue(roid, ii.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); - oldValue = oldValue.Replace(@"\up2 \u8209?", @"\up2\u8209?");// Remove space between superscript command and non-breaking hyphen - string myAccPageID = myLookup.GetAccPageID(roid); - string oldAccPageID = oldLookup.GetAccPageID(roid); - if (myValue == oldValue && roc.type == oroc.type && ((myAccPageID ?? "null") == (oldAccPageID ?? "null"))) - { - sameMsg = ", Exact Match"; - return true; - } - if (myValue != oldValue && roc.type == oroc.type && ((myAccPageID ?? "null") == (oldAccPageID ?? "null"))) - { - sameMsg = ", Different Value, Same RO"; - return false; - } - if ((myAccPageID ?? "null") != (oldAccPageID ?? "null")) - { - ROFSTLookup.rochild? myroc = myLookup.GetROChildByAccPageID(oldAccPageID, dvi.DocVersionConfig.RODefaults_setpointprefix), dvi.DocVersionConfig.RODefaults_graphicsprefix); - if (myroc != null) - { - string myValueNew = myLookup.GetTranslatedRoValue(((ROFSTLookup.rochild)myroc).roid, ii.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); - if(myValueNew == oldValue) - sameMsg = ", Same Value, Different RO"; - else - sameMsg = ", Different Value, Different RO"; - } - else - sameMsg = ", Missing RO"; - return false; - } - sameMsg = ", Unknown"; - - //if (myLookup.GetAccPageID(roid) == oldLookup.GetAccPageID(roid)) - //{ - // sameMsg = string.Format("ROID: {0}, AccPageID: {1}, OldAccPageID: {2}", roid, myLookup.GetAccPageID(roid), oldLookup.GetAccPageID(roid)); - // return false; - //} - //sameMsg = "Values and AccPageIDs are different for ROID: " + roid; - return false; - } - - private List myRoFst_ROTableUpdate(object sender, ROFstInfoROTableUpdateEventArgs args) - { - return Volian.Controls.Library.VlnFlexGrid.ROTableUpdate(sender,args); - } - } -} diff --git a/PROMS/DataLoader/RefObjs.cs b/PROMS/DataLoader/RefObjs.cs deleted file mode 100644 index aa7845d2..00000000 --- a/PROMS/DataLoader/RefObjs.cs +++ /dev/null @@ -1,140 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class Loader - { - private List InvalidROs = new List(); - private string MigrateRos(OleDbConnection cn, string textm, string seqcvt, Content content, DocVersion docver, bool conv_caret,ref int rotype) - { - StringBuilder rotxt = new StringBuilder(); - int instance = 0; - int beg = 0; - DataTable dt = null; - DataSet ds = null; - OleDbDataAdapter da = null; - - string cmd = "SELECT * FROM USAGERO WHERE [NUMBER]='" + ProcNumber.Replace("'", "''") + "' AND [SEQUENCE] ='" + seqcvt + "' ORDER BY [INSTANCE]"; - da = new OleDbDataAdapter(cmd, cn); - // get usage records for the ROID. - ds = new DataSet(); - try - { - da.Fill(ds); - dt = ds.Tables[0]; - dt.CaseSensitive = true; - } - catch (Exception ex) - { - frmMain.AddError(ex, "migrateRos"); - log.Error("Error getting RO Usages"); - log.ErrorFormat("proc number = {0}, oldstepsequence = {1}",ProcNumber, seqcvt); - do - { - log.ErrorFormat("{0} - {1}", ex.GetType().Name, ex.Message); - ex = ex.InnerException; - } while (ex != null); - ds.Dispose(); - da.Dispose(); - return textm; - } - char[] chrrotrn = { '\x15', '\x3a6' }; - int tok = textm.IndexOfAny(chrrotrn); - while (tok > -1) - { - // found a token, add the roid & value into the string and - // add an ro usage for it. - rotxt.Append(textm.Substring(beg, tok - beg)); - if (instance < dt.Rows.Count) - { - DataRow dr = dt.Rows[instance]; - string ROID = dr["ROID"].ToString(); - RoUsage ro = RoUsage.MakeRoUsage(content, ROID, null, DateTime.Now, "Migration", rodb); - try - { - ROFSTLookup mylookup = rofstinfo.GetROFSTLookup(DocVersionInfo.Get(docver.VersionID)); - ROFSTLookup.rochild myro = mylookup.GetRoChild12(ROID.ToUpper()); - rotype = Math.Max(rotype, myro.type); - string roval = mylookup.GetTranslatedRoValue(ROID.ToUpper(), conv_caret); - if (textm[tok] == '\x3a6' && roval.IndexOf('\n')>-1) // figure - just get image name - { - roval = roval.Substring(0, roval.IndexOf('\n')); - } - roval = roval.Replace("{", @"\{"); - roval = roval.Replace("}", @"\}"); - // add an annotation stating "Invalid Unit RO 'ROID'. Need an Item for this, so just add - // it to a list of 'invalid ros' so that calling method can add annotations to the Item. - if (roval == "?") - { - if (ROID.StartsWith("FFFF")) - InvalidROs.Add(string.Format("Invalid Unit RO '{0}'", ROID.Substring(0, 12))); - else - InvalidROs.Add(string.Format("Invalid RO '{0}'", ROID.Substring(0, 12))); - } - //if (roval.Contains("\r") || roval.Contains("\n")) - // Console.WriteLine("RO has new Lines"); - //string results = string.Format(@"\v \v0 ", - // rofstinfo.ROFSTLookup.GetRoValue(ROID.Substring(0, 12).ToUpper()), ro.ROUsageID, ROID, rodb.RODbID); - // RHM 20100308 - string results = string.Format(@"\v \v0 ", - // RHM 20100308 - roval.Replace("\r\n","\\par\r\n"), ro.ROUsageID, ROID, rodb.RODbID); - string results = string.Format(@"\v \v0 ", - roval, ro.ROUsageID, ROID, rodb.RODbID); - rotxt.Append(results); - } - catch (Exception ex) - { - - frmMain.AddError(ex, "MigrateRos '{0}' '{1}' {2}", ProcNumber, seqcvt, instance); - log.Error("Error setting RO data in text field"); - log.ErrorFormat("Error Message = {0}", ex.Message); - log.ErrorFormat("proc number = {0}, oldstepsequence = {1}, instance = {2}", ProcNumber, seqcvt, instance); - } - instance++; - } - else - { - rotxt.Append("?"); - InvalidROs.Add("The ? in the step text represents an RO that was not connected to the ro database."); - log.Error("Error setting RO data in text field"); - log.ErrorFormat("proc number = {0}, oldstepsequence = {1}, instance = {2}", ProcNumber, seqcvt, instance); - } - beg = tok + 1; - if (beg > textm.Length) - { - tok = -1; - da.Dispose(); - } - else - tok = textm.IndexOf('\x15', beg); // there would only be one figure - only check for ro after 1st time - } - if (beg <= textm.Length - 1) - rotxt.Append(textm.Substring(beg, textm.Length - beg)); - - ds.Dispose(); - da.Dispose(); - return rotxt.ToString(); - } - } - -} \ No newline at end of file diff --git a/PROMS/DataLoader/RichTextBox41.Designer.cs b/PROMS/DataLoader/RichTextBox41.Designer.cs deleted file mode 100644 index 644e8174..00000000 --- a/PROMS/DataLoader/RichTextBox41.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace DataLoader -{ - partial class RichTextBox41 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} diff --git a/PROMS/DataLoader/RichTextBox41.cs b/PROMS/DataLoader/RichTextBox41.cs deleted file mode 100644 index 1f89b715..00000000 --- a/PROMS/DataLoader/RichTextBox41.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; -using System.Windows.Forms; -using System.Runtime.InteropServices; - -namespace DataLoader -{ - public partial class RichTextBox41 : RichTextBox - { - [DllImport("kernel32.dll", CharSet = CharSet.Auto)] - static extern IntPtr LoadLibrary(string lpFileName); - protected override CreateParams CreateParams - { - get - { - CreateParams prams = base.CreateParams; - if (LoadLibrary("msftedit.dll") != IntPtr.Zero) - { - //prams.ExStyle |= 0x020; // transparent - prams.ClassName = "RICHEDIT50W"; - } - return prams; - } - } - public RichTextBox41() - { - InitializeComponent(); - } - public RichTextBox41(IContainer container) - { - container.Add(this); - - InitializeComponent(); - } - } -} diff --git a/PROMS/DataLoader/RoFst.cs b/PROMS/DataLoader/RoFst.cs deleted file mode 100644 index c78c99b7..00000000 --- a/PROMS/DataLoader/RoFst.cs +++ /dev/null @@ -1,235 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Xml; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using Config; - -namespace DataLoader -{ - public partial class Loader - { - public void MigrateROFST(string fstPath, DocVersion docver) - { - //if (!File.Exists(fstPath + @"\ro.fst")) - //{ - // log.ErrorFormat("RO FST Does not exist: {0}", fstPath); - // return; - //} - // get the proc.ini value for the ropath. If it doesn't exist, use "..\" - ConfigFile cfg = new ConfigFile(); - XmlDocument d = cfg.IniToXml(fstPath + @"\proc.ini"); - string roDbpath = null; - string sp_prefix = null; - string img_prefix = null; - if (d != null) - { - XmlElement xml = d.DocumentElement; - XmlNode rodef = xml.SelectSingleNode("//RODefaults"); - XmlElement ele = rodef as XmlElement; - //string tmp = null; - if (ele != null) - { - roDbpath = ele.GetAttribute("ROPATH"); - sp_prefix = ele.GetAttribute("Setpoint"); - img_prefix = ele.GetAttribute("Graphics"); - } - } - DirectoryInfo di2 = new DirectoryInfo(fstPath); - roDbpath = roDbpath ?? ""; - if (roDbpath == "") - roDbpath = @"..\ro"; - if (roDbpath.StartsWith(@"..\")) - { - while (roDbpath.StartsWith(@"..\")) - { - di2 = di2.Parent; - roDbpath = roDbpath.Substring(3); - } - DirectoryInfo[] dis = di2.GetDirectories(roDbpath); - if (dis.Length > 0) roDbpath = dis[0].FullName; - } - //if (roDbpath == null || roDbpath == "") - // roDbpath = fstPath.Substring(0, fstPath.LastIndexOf('\\')) + @"\ro"; - - // first see if this rodb has been migrated (another dataset may have migrated it) - DirectoryInfo di = new DirectoryInfo(roDbpath); - rodb = RODb.GetByFolderPath(di.FullName); - if (rodb == null) - { - - // There may be more than 1 'ro' as the 'ROName' field (ROName is derived from the ropath). - // Get new name be incrementing, if so. - string newname = NewROName(di.Name); - // If there is default graphic file extension data in the roapp.ini, use this as config - // data for the rodb, otherwise set it to 'cstring' for now. - cfg = new ConfigFile(); - d = cfg.LoadRoAppIni(roDbpath); - rodb = RODb.MakeRODb(di.Name, di.FullName, "cstring", d==null?null:d.InnerXml); - } - - // now see if the same ro.fst has been migrated. To determine this check if a record - // exists for the rodb and with the same dts as the file. - FileInfo fi = new FileInfo(fstPath + @"\ro.fst"); - if (!fi.Exists) - fi = new FileInfo(roDbpath + @"\ro.fst"); - - ROFst rofst = ROFst.GetByRODbID_DTS(rodb.RODbID, fi.LastWriteTimeUtc); - if (rofst == null) // if not already in our database, then add it. - { - // Next read in the rofst & make the rofst record. - FileStream fsIn = new FileStream(fi.FullName, FileMode.Open, FileAccess.Read, FileShare.Read); - // Create an instance of StreamReader that can read characters from the FileStream. - BinaryReader r = new BinaryReader(fsIn); - byte[] ab = r.ReadBytes((int)fsIn.Length); - //r.Close(); - fsIn.Close(); - // get the date time stamp, need to create the record with the file's dts. - rofst = ROFst.MakeROFst(rodb, ab, null, fi.LastWriteTimeUtc, "Migration"); - } - // Next hook the rofst to the docversion using the associations table. - bool appending = false; - if (docver.DocVersionAssociationCount == 0) - { - DocVersionAssociation dva = docver.DocVersionAssociations.Add(rofst); - AssociationConfig assoc_cfg = new AssociationConfig(); - assoc_cfg.RODefaults_graphicsprefix = img_prefix; - assoc_cfg.RODefaults_setpointprefix = sp_prefix; - dva.Config = assoc_cfg.ToString(); - docver.Save(); - rofst.Dispose(); - } - else - appending = true; - rofstinfo = ROFstInfo.Get(rofst.ROFstID); // refresh the info record! - - // Now load any images in... type 8: // Intergrated Graphics RO type - ROFSTLookup mylookup = rofstinfo.GetROFSTLookup(DocVersionInfo.Get(docver.VersionID)); - if (!appending && mylookup != null) - { - for (int i = 0; i < mylookup.myHdr.myDbs.Length; i++) - { - // walk through the rofst 'database' searching for - // all nodes that are integrated graphics, i.e. type 8. - if (mylookup.myHdr.myDbs[i].children != null) - MigrateRoFstGraphics(roDbpath, mylookup.myHdr.myDbs[i].children, rodb); - } - } - ROImageInfo.FlagImagesZipped(); - } - - private string NewROName(string roName) - { - string retval = roName; - int iSuffix = -1; - RODbInfoList rodblist = RODbInfoList.Get(); - - foreach (RODbInfo rdi in rodblist) - { - if (rdi.ROName.StartsWith(roName)) - { - if (rdi.ROName == roName) - iSuffix = 0; - else if (Regex.IsMatch(rdi.ROName, roName + "[_][0-9]+")) - { - int ii = int.Parse(rdi.ROName.Substring(1 + roName.Length)); - if (ii > iSuffix) iSuffix = ii; - } - } - } - if (iSuffix >= 0) - retval = string.Format("{0}_{1}", roName, iSuffix + 1); - return retval; - } - private void MigrateRoFstGraphics(string rodbpath, ROFSTLookup.rochild[] rochild, RODb rodb) - { - for (int i = 0; i < rochild.Length; i++) - { - if (rochild[i].type == 8) AddGraphic(rodbpath, rochild[i].value, rodb); - if (rochild[i].children != null) MigrateRoFstGraphics(rodbpath, rochild[i].children, rodb); - } - } - private void AddGraphic(string rodbpath, string p, RODb rodb) - { - if (p == null) return; - string imgname = p.Substring(0, p.IndexOf('\n')); - int thedot = imgname.LastIndexOf('.'); - string fname = imgname; - if (thedot == -1 || (thedot != (imgname.Length - 4))) - { - RODbConfig roDbCfg = new RODbConfig(rodb.Config); - fname += string.Format(".{0}", roDbCfg.GetDefaultGraphicExtension()); - } - - string imgfile = rodbpath + @"\" + fname; - if (File.Exists(imgfile)) - { - FileInfo fi = new FileInfo(imgfile); - frmMain.Status = "Processing Image " + fname; - // if the roimage record exists, don't create a new one... - //Console.WriteLine("ROImage Key {0} List {1} ID {2}", ROImage.CacheCountPrimaryKey, ROImage.CacheCountList, ROImage.CacheCountByRODbID); - //Console.WriteLine("ROImageInfo Key {0} List {1}", ROImageInfo.CacheCountPrimaryKey, ROImageInfo.CacheCountList); - //Console.WriteLine("ROFst Key {0} List {1} ID {2}", ROFst.CacheCountPrimaryKey, ROFst.CacheCountList, ROFst.CacheCountByRODbID_DTS); - //Console.WriteLine("ROFstInfo Key {0} List {1}", ROFstInfo.CacheCountPrimaryKey, ROFstInfo.CacheCountList); - frmMain.AddInfo("Adding RO Image {0}", imgname); - //using (roImg = ROImage.GetByRODbID_FileName_DTS(rodb.RODbID, imgname, fi.LastWriteTimeUtc)) - //{ - ROImage roImg = null; - roImg = GetImageFromAvailable(rodb.RODbID, imgname, fi.LastWriteTimeUtc); - if (roImg == null) - { - roImg = ROImage.GetByRODbID_FileName_DTS(rodb.RODbID, imgname, fi.LastWriteTimeUtc); - if (roImg == null) - { - using (FileStream fsIn = new FileStream(imgfile, FileMode.Open, FileAccess.Read, FileShare.Read)) - { - // Create an instance of StreamReader that can read characters from the FileStream. - BinaryReader r = new BinaryReader(fsIn); - byte[] ab = r.ReadBytes((int)fsIn.Length); - r.Close(); - fsIn.Close(); - ConfigInfo ci = new ConfigInfo(null); - ci.AddItem("Image", "Size", ab.Length.ToString()); - roImg = ROImage.MakeROImage(rodb, imgname, ROImageInfo.Compress(ab), ci.ToString(), fi.LastWriteTimeUtc, "Migration"); - } - } - AddToAvailable(roImg, rodb.RODbID, imgname, fi.LastWriteTimeUtc); - } - // see if it's already linked to the current rofst.. - //Figure figure = Figure.GetByROFstID_ImageID(rofstinfo.ROFstID, roImg.ImageID); - using (Figure figure = Figure.GetByROFstID_ImageID(rofstinfo.ROFstID, roImg.ImageID)) - { - if (figure != null) return; - //using (ROFst rofst = rofstinfo.Get()) - ROFst rofst = rofstinfo.Get(); // Use the cached ROFST rather than creating and disposing - //figure = Figure.MakeFigure(rofst, roImg, null); - using (Figure tfig = Figure.MakeFigure(rofst, roImg, null)) ; - } - //roImg.Dispose(); - } - else - frmMain.AddError("Cannot Find Image File {0}", imgfile); - } - - private void AddToAvailable(ROImage roImg, int dbid, string imgname, DateTime dateTime) - { - string key = AvailableKey(dbid, imgname, dateTime); - _AvaiableROImages.Add(key, roImg); - } - - private string AvailableKey(int dbid, string imgname, DateTime dateTime) - { - return string.Format("{0}|{1}|{2}", dbid, imgname, dateTime.ToString("yyyyMMdd HHmmss")); - } - - private ROImage GetImageFromAvailable(int dbid, string imgname, DateTime dateTime) - { - string key = AvailableKey(dbid, imgname, dateTime); - if (_AvaiableROImages.ContainsKey(key)) return _AvaiableROImages[key]; - return null; - } - private Dictionary _AvaiableROImages = new Dictionary(); - } -} diff --git a/PROMS/DataLoader/SQLScriptRunner.cs b/PROMS/DataLoader/SQLScriptRunner.cs deleted file mode 100644 index 5e57f4c1..00000000 --- a/PROMS/DataLoader/SQLScriptRunner.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.Sql; -using System.Data.SqlClient; -// Add .Net Reference Microsoft.SqlServer.ConnectionInfo -using Microsoft.SqlServer.Management.Common; -// Add .Net Reference Microsoft.SqlServer.Smo -using Microsoft.SqlServer.Management.Smo; - -namespace DataLoader -{ - public delegate void SQLScriptRunnerEvent(object sender, SqlInfoMessageEventArgs args); - public class SQLScriptRunner - { - public event SQLScriptRunnerEvent InfoMessage; - public void OnInfoMessage(object sender, SqlInfoMessageEventArgs args) - { - if (InfoMessage != null) InfoMessage(sender, args); - } - private string _Script; - public string Script - { - get { return _Script; } - set { _Script = value; } - } - private string _ConnectionString; - public string ConnectionString - { - get { return _ConnectionString; } - set { _ConnectionString = value; } - } - public SQLScriptRunner(string script, string connectionString) - { - _Script = script; - _ConnectionString = connectionString; - } - public SQLScriptRunner(string dbName, string backupFolder, string connectionString, DateTime dateTime, string suffix) - { - _Script = string.Format("Backup database [{0}] to disk = '{1}\\{0}_{2}{3}.BAK'\r\n" + - "GO\r\nPRINT '{0} backed up to {1}\\{0}_{2}{3}.BAK'", - dbName, backupFolder, dateTime.ToString("yyyyMMdd_HHmm"),suffix); - _ConnectionString = connectionString; - } - public void Run() - { - SqlConnection cn = new SqlConnection(ConnectionString); - cn.Open(); - cn.InfoMessage += new SqlInfoMessageEventHandler(cn_InfoMessage); - Server srv = new Server(new ServerConnection(cn)); - srv.ConnectionContext.ExecuteNonQuery(Script); - cn.Close(); - } - void cn_InfoMessage(object sender, SqlInfoMessageEventArgs e) - { - OnInfoMessage(sender, e); - } - } -} diff --git a/PROMS/DataLoader/SecObj.cs b/PROMS/DataLoader/SecObj.cs deleted file mode 100644 index a7e272fd..00000000 --- a/PROMS/DataLoader/SecObj.cs +++ /dev/null @@ -1,924 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== - -using System; -using System.IO; -using System.Collections; -using System.Collections.Generic; -using System.Collections.Specialized; -using System.Windows.Forms; -using System.Text; -using VEPROMS.CSLA.Library; -using Config; - -namespace DataLoader -{ - /// - /// Summary description for Security. - /// - /// - #region OldVeSamClasses - // do a temp plant - we may keep this for loading in data. It will be migrated - // to a folders record. - #region Options - public class PlantOptions - { - private UInt16 _id; - private UInt32 _plopts; - public List poList = new List(); - - public UInt16 Id - { - get {return _id;} - set {if (_id != value) _id = value;} - } - - public UInt32 Options - { - get {return _plopts;} - set {if (_plopts != value) _plopts = value;} - } - } - public class ProcOptions - { - private UInt16 _id; - private UInt16 _selected; - public UInt32 [] Options = new UInt32[4]; - - public UInt16 Id - { - get {return _id;} - set {if (_id != value)_id = value;} - } - public UInt16 Selected - { - get {return _selected;} - set {if (_selected != value)_selected = value;} - } - } - #endregion - #region OldFolders - public class Plant - { - private string _name; - private string _path; - private UInt16 _id; - public Dictionary psDic = new Dictionary(); - - public string Name - { - get {return _name;} - set - { - if (value == null) value = string.Empty; - if (_name != value) _name = value; - } - } - public string Path - { - get {return _path;} - set - { - if (value == null) value = string.Empty; - if (_path != value)_path = value; - } - } - public UInt16 Id - { - get {return _id;} - set {if (_id != value) _id = value;} - } - - public Plant() { } - public Plant(string nm, string pth, UInt16 idn) - { - _name = nm; - _path = pth; - _id = idn; - } - } - - public class ProcSet - { - private string _name; - private string _path; - private UInt16 _id; - public string Name - { - get {return _name;} - set - { - if (value == null) value = string.Empty; - if (_name != value)_name = value; - } - } - public string Path - { - get {return _path;} - set - { - if (value == null) value = string.Empty; - if (_path != value)_path = value; - } - } - public UInt16 Id - { - get {return _id;} - set {if (_id != value) _id = value;} - } - public ProcSet() { } - - public ProcSet(string nm, string pth, UInt16 idn) - { - _name = nm; - _path = pth; - _id = idn; - } - } - #endregion - #region OldUser - // The OldUser class stores data from the vesam input. The User class migrates - // and saves data to the new sql database. - public class OldUser - { - private UInt32 _systemopts; - private string _username; - private bool _blockaccessflag = false; - public List PlantOpts = new List(); - - public UInt32 SystemOpts - { - get { return _systemopts; } - set { if (_systemopts != value) _systemopts = value; } - } - public string UserName - { - get { return _username; } - set - { - if (value == null) value = string.Empty; - if (_username != value) _username = value; - } - } - - public bool BlockAccessFlag - { - get { return _blockaccessflag; } - set { if (_blockaccessflag != value) _blockaccessflag = value; } - } - - public bool PermissionToManageFlag - { - get { return (_systemopts & VESamOpt.DOCMAINT)==0?false:true; } - //set { if (_permissiontomanageflag != value) _permissiontomanageflag = value; } - } - - public bool SystemAdminFlag - { - get { return (_systemopts & VESamOpt.SYSADMIN)==0 ? false:true; } - //set { if (_systemadminflag != value) _systemadminflag = value; } - } - - public bool PermissionToLockFlag - { - get { return (_systemopts & VESamOpt.LOCKSYSTEM)==0 ? false:true; } - //set { if (_permissiontolockflag != value) _permissiontolockflag = value; } - } - - public bool RoEditorFlag - { - get { return (_systemopts & VESamOpt.ROEDITOR) == 0 ? false : true; } - } - - public OldUser(string nm) - { - _username = nm; - } - } - #endregion - #region VESam - public class VESamOpt - { - #region Log4Net - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - public const long VIEW = 0x00000001L; - public const long PRINT = 0x00000002L; - public const long PRINTDRAFT = 0x00000004L; - public const long PRINTCHANGES = 0x00000008L; - public const long EDIT = 0x00000010L; - public const long SEARCH = 0x00000020L; - public const long STANDARDSTEPS = 0x00000040L; - public const long APPROVE = 0x00000080L; - public const long APPROVESINGLE = 0x00000100L; - public const long LIBRARYDOCS = 0x00000200L; - public const long ADDMODDEL = 0x00000400L; - public const long CLEAN = 0x00000800L; - public const long LOCKPROC = 0x00001000L; - public const long LOCKSET = 0x00000001L; - public const long UCF = 0x00000002L; - public const long LOCKSYSTEM = 0x00000001L; - public const long DOCMAINT = 0x00000002L; - public const long ROEDITOR = 0x00000004L; - public const long SYSADMIN = 0x00000008L; - - public const int SUPERUSER = 1000; - public const long SUPERACCESS = 0xFFFFFFFFL; - - private bool _blockAccess; - public int userid = -1; - public string initials; - private const string samoptname = "vesam.opt"; - public FileStream fs; - public BinaryReader bw; - public bool isDemoMode = false; - List plntList = new List(); - List userList = new List(); - Dictionary plntDic = new Dictionary(); - - public bool BlockAccess - { - get { return _blockAccess; } - set { if (_blockAccess != value) _blockAccess = value; } - } - - public bool OpenFile(string oname) - { - try - { - fs = new FileStream(oname, FileMode.Open, FileAccess.Read, FileShare.Read, 1, false); - bw = new BinaryReader(fs); - return true; - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Security File"); - return false; - } - } - - public void CloseFile() - { - bw.Close(); - fs.Close(); - bw = null; - fs = null; - } - public Dictionary LoadPlants() - { - UInt16 ui16; - UInt32 ui32; - - try - { - byte x; - - // read past some header stuff. - for (int jj = 0; jj < 8; jj++) x = bw.ReadByte(); - - long nxtPl = bw.ReadUInt32(); - uint nmPlant = bw.ReadUInt16(); - ui16 = bw.ReadUInt16(); - - // not needed here, but need to read past this... - long nxtUs = bw.ReadUInt32(); - uint nmUser = bw.ReadUInt16(); - ui16 = bw.ReadUInt16(); - long nxtGr = bw.ReadUInt32(); - uint nmGrp = bw.ReadUInt16(); - ui16 = bw.ReadUInt16(); - - BlockAccess = bw.ReadUInt16()==0?false:true; - - string pname, ppth; - for (int i = 0; i < nmPlant; i++) - { - if (nxtPl == 0xFFFFFFFEL) - { - log.Error("Reading in VESAM options file - cannot find next plant in list"); - break; - } - fs.Seek(nxtPl, SeekOrigin.Begin); - nxtPl = bw.ReadUInt32(); - - Plant pl = new Plant(); - pl.Id = bw.ReadUInt16(); - ui16 = bw.ReadUInt16(); - - byte[] stmp = new byte[256]; - stmp = bw.ReadBytes(ui16); - pname = Encoding.ASCII.GetString(stmp, 0, ui16); - pl.Name = pname; - ui16 = bw.ReadUInt16(); - stmp = bw.ReadBytes(ui16); - ppth = Encoding.ASCII.GetString(stmp, 0, ui16); - pl.Path = ppth; - - // read in any sets within this plant. - UInt16 nmPrcDr = bw.ReadUInt16(); - ui32 = bw.ReadUInt32(); - UInt32 nxtPr = bw.ReadUInt32(); - - for (int j = 0; j < nmPrcDr; j++) - { - ProcSet ps = new ProcSet(); - ps.Id = bw.ReadUInt16(); - ui16 = bw.ReadUInt16(); - stmp = bw.ReadBytes(ui16); - pname = Encoding.ASCII.GetString(stmp, 0, ui16); - ps.Name = pname; - ui16 = bw.ReadUInt16(); - stmp = bw.ReadBytes(ui16); - ppth = Encoding.ASCII.GetString(stmp, 0, ui16); - ps.Path = ppth; - ui32 = bw.ReadUInt32(); - if (nxtPr == 0xFFFFFFFDL && j + 1 < nmPrcDr) - { - log.ErrorFormat("Loading vesam.opt - procedure sets for {0}", ps.Name); - return null; - } - try - { - pl.psDic.Add(ps.Id, ps); - } - catch (Exception ex) - { - log.ErrorFormat("Adding to set dictionary - {0}. Error: {1}" + ps.Path, ex.Message); - } - if (nxtPr != 0xFFFFFFFDL) - { - fs.Seek(nxtPr, SeekOrigin.Begin); - nxtPr = bw.ReadUInt32(); - } - } - try - { - if (!plntDic.ContainsKey(pl.Id))plntDic.Add(pl.Id, pl); - } - catch (Exception ex) - { - log.ErrorFormat("Adding to plant dictionary - {0}. Error: {1}", pl.Path, ex.Message); - } - } - } - catch (Exception ex) - { - log.ErrorFormat("Loading plants from vesam.opt: {0}", ex.Message); - return null; - } - return plntDic; - } - public List LoadUserList() - { - UInt16 ui16; - UInt32 ui32; - try - { - byte x; - - fs.Seek(0, SeekOrigin.Begin); - // read past some header stuff. - for (int jj = 0; jj < 8; jj++) x = bw.ReadByte(); - long nxtPl = bw.ReadUInt32(); - uint nmPlant = bw.ReadUInt16(); - ui16 = bw.ReadUInt16(); - - // get info in header for users - long nxtUs = bw.ReadUInt32(); - uint nmUser = bw.ReadUInt16(); - ui16 = bw.ReadUInt16(); - long nxtGr = bw.ReadUInt32(); - uint nmGrp = bw.ReadUInt16(); - ui16 = bw.ReadUInt16(); - - bool localblockAccess = bw.ReadUInt16()==0?false:true; - // Now read in all of the user information - UInt16 uid; - string fName, fPass; - for (int i = 0; i < nmUser; i++) - { - if (nxtUs == 0xFFFFFFFCL && i + 1 < nmUser) - { - log.Error("Loading vesam.opt - reading in user list."); - return null; - } - - fs.Seek((long)nxtUs, SeekOrigin.Begin); - nxtUs = bw.ReadUInt32(); - uid = bw.ReadUInt16(); - ui16 = bw.ReadUInt16(); // user's group? - - byte[] test = new byte[10]; - test = bw.ReadBytes(10); - - // get ve-proms (vesam) username & password - fName = Encoding.ASCII.GetString(test, 0, 10); - int indx = fName.IndexOf("\0"); - string fNameTrim = fName.Substring(0, indx); - test = bw.ReadBytes(10); - fPass = Encoding.ASCII.GetString(test, 0, 10); - indx = fPass.IndexOf("\0"); - string fPassTrim = fPass.Substring(0, indx); - OldUser usr = new OldUser(fNameTrim); - usr.SystemOpts = bw.ReadUInt32(); - usr.BlockAccessFlag = localblockAccess; - ui32 = bw.ReadUInt32(); - - // now get plant & proc set options. - nmPlant = bw.ReadUInt16(); - for (int j = 0; j < nmPlant; j++) - { - PlantOptions plO = new PlantOptions(); - plO.Id = bw.ReadUInt16(); - plO.Options = bw.ReadUInt32(); - ui32 = bw.ReadUInt32(); - UInt16 nmPrcDr = bw.ReadUInt16(); - for (int k = 0; k < nmPrcDr; k++) - { - ProcOptions prO = new ProcOptions(); - prO.Id = bw.ReadUInt16(); - prO.Selected = bw.ReadUInt16(); - for (int kk = 0; kk < 4; kk++) prO.Options[kk] = bw.ReadUInt32(); - plO.poList.Add(prO); - } - usr.PlantOpts.Add(plO); - } - userList.Add(usr); - } - } - catch (Exception ex) - { - log.ErrorFormat("Error Loading (old) User info from vesam.opt: {0}", ex.Message); - return null ; - } - return userList; - } - } - #endregion - #endregion - - #region SecurityMigration - public class Security - { - #region Log4Net - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - Dictionary plntDic = new Dictionary(); - List userList = new List(); - private string _VePromsPath = null; - private string optfilename; - private string[] prflags ={ "Vfw", "Prnt", "Prnt Drft", "Prnt Chgs", "Edit", "Srch", "St Stp", "App", "App Sel", "Lib", "AMD", "Clean", "Lock" }; - private string[] sysflags ={ "NetworkLock", "SysMaint", "ROEditor", "SysAdmin" }; - #region NewMig - public Security(string pathname, string vepromspath) - { - if (File.Exists(pathname) == false) - { - MessageBox.Show("Could not locate the Security Options file:\n\n" + pathname, "Security Access Error"); - optfilename = null; - return; - } - _VePromsPath = vepromspath; - optfilename = pathname; - } - public bool Migrate() - { - VESamOpt vso = new VESamOpt(); - bool suc = vso.OpenFile(optfilename); - if (!suc) return false; - plntDic = vso.LoadPlants(); - if (plntDic == null) return false; - suc = VerifyFolders(plntDic); - if (!suc) return suc; - userList = vso.LoadUserList(); - if (userList == null) return false; - vso.CloseFile(); - vso = null; - log.Info("Original vesam.opt loaded successfully - next step is to migrate security information to new database"); - //WriteOutSummary(plntDic, userList); - suc = TranslateToNew(vso, plntDic, userList); - log.Info("Migrated vesam successfully"); - return suc ; - } - #endregion - #region WriteVESamSummary - private void WriteOutSummary(Dictionary plntDic, List userList) - { - foreach (OldUser usr in userList) - { - log.InfoFormat("User = {0}", usr.UserName); - - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < 4; i++) - { - if ((usr.SystemOpts & (1L << i)) != 0) sb.Append(sysflags[i] + " "); - } - if (sb.Length > 0) log.InfoFormat(" System Options = {0}", sb.ToString()); - - // for now, don't worry about system options. - // for each plant, list any permissions of the plant or its proc sets. If - // none set, nothing will be listed. - foreach (PlantOptions po in usr.PlantOpts) - { - bool plntout = false; - Plant pl = (Plant)plntDic[po.Id]; - if (po.Options != 0) - { - plntout = true; - log.InfoFormat(" Plant = {0}. Options = {1}", pl.Name, po.Options); - } - foreach (ProcOptions psO in po.poList) - { - ProcSet ps = (ProcSet)pl.psDic[psO.Id]; - if (psO.Options[0] != 0 || psO.Options[1] != 0 || psO.Options[2] != 0 || psO.Options[3] != 0) - { - if (!plntout) log.InfoFormat(" Plant = {0}.", pl.Name); - log.InfoFormat(" Procedure Set = {0}", ps.Name); - sb.Length = 0; - int nm = 0; - for (int i1 = 0; i1 < 4; i1++) - { - for (int j1 = 0; j1 < 16; j1++) - { - if ((psO.Options[i1] & (1L << j1)) != 0) sb.Append(prflags[nm] + " "); - nm++; - } - } - if (sb.Length > 0) log.InfoFormat(" {0}", sb.ToString()); - } - } - } - } - - } - #endregion - #region MigrateCode - private string[] defaultRole ={ "Administrator", "User Administrator", "RO Manager", "Writer", "Reviewer", "Guest" }; - private string[] defaultRoleTitle = { "Manages Data - Backups, Approval etc.", "Maintains User Security", "Maintains Referenced Objects", "Can Edit", "Can potentially add comments", "Read-Only access to approved procedures" }; - // defaultPermData sets the permission data (Permissions table) - columns are - // PermLevel, VersionType, PermValue (Note for vesam migration, PermAD is always allow, i.e. 0) - private int[,] defaultPermData = { - {2, 3, 15}, // Administrator - {1, 3, 15}, // User Administrator - {3, 3, 15}, // RO Manager - {5, 1, 15}, // Writer - {7, 3, 15}, // Reviewer - {2, 2, 1}}; // Guest - - private int[] accessLevelSetup = { -1, 5, 4, 3, 0, 0, 2, 1 }; - private int[] accessLevelTrans; - - private Dictionary AddDefaultRoles() - { - Dictionary rdic = new Dictionary(); - try - { - accessLevelTrans = new int[accessLevelSetup.Length]; - for (int i = 0; i < 6; i++) - { - Role role = Role.New(); - role.Name = defaultRole[i]; - role.Title = defaultRoleTitle[i]; - if (!role.IsSavable) ErrorRpt.ErrorReport(role); - role.Save(); - Permission perm = Permission.New(); - perm.MyRole = role; - perm.PermLevel = defaultPermData[i, 0]; - perm.VersionType = defaultPermData[i, 1]; - perm.PermValue = defaultPermData[i, 2]; - if (!perm.IsSavable) ErrorRpt.ErrorReport(perm); - perm.Save(); - rdic.Add(role.RID, role); - for (int j = 1; j < accessLevelSetup.Length; j++) - { - if (accessLevelSetup[j] == i) accessLevelTrans[j] = role.RID; - } - } - - } - catch (Exception ex) - { - log.ErrorFormat("Error setting default roles & permissions: {0}", ex.Message); - return null; - } - return rdic; - } - - public bool VerifyFolders(Dictionary dicPlants) - { - try - { - // For each folder from vesam, see if there is a matching folder already - // migrated... - - FolderInfoList fil = FolderInfoList.Get(); - // add the titles to a dictionary for quick checking - List folderlist = new List(); - foreach (FolderInfo fi in fil) - { - folderlist.Add(fi.Title.ToUpper()); - } - - foreach (ushort u in dicPlants.Keys) - { - Plant pl = dicPlants[u]; - bool foundplant = false; - if (folderlist.Contains(pl.Path.ToUpper())) foundplant=true; - - if (!foundplant) - log.InfoFormat("Plant from vesam.opt not found in folder data: {0}", pl.Path); - else // if found, check for sets - { - foreach (ushort uu in pl.psDic.Keys) - { - ProcSet pr = pl.psDic[uu]; - bool foundprocset = false; - foreach (FolderInfo fi in fil) - { - string tstpath = pl.Path.ToUpper() + "\\" + pr.Path.ToUpper(); - if (tstpath == fi.Title.ToUpper()) - { - foundprocset = true; - break; - } - } - if (!foundprocset) log.InfoFormat("Procedure Set from vesam.opt not found in folder data: {0}\\{1}", pl.Path, pr.Path); - } - } - } - } - catch (Exception ex) - { - log.ErrorFormat("error mapping vesam directories to data directories, error = {0}", ex.Message); - return false; - } - return true; - } - - private Dictionary LoadFolders() - { - FolderInfoList fldlist = FolderInfoList.Get(); - Dictionary fdic = new Dictionary(); - foreach (FolderInfo fi in fldlist) - { - fdic.Add(fi.Title.ToUpper(), fi.FolderID); - } - return fdic; - } - - private bool TranslateToNew(VESamOpt vso, Dictionary plntDic, List userList) - { - Dictionary rlpdic = AddDefaultRoles(); - AddUsrGrpAsgnRecs(plntDic, userList); - return true; - } - private string VersionName(string s) - { - return s.Substring(s.LastIndexOf(" - ") + 3); - } - private string SetName(string s) - { - return s.Substring(0, s.LastIndexOf(" - ")); - } - private string FixName(string s) - { - s = s.Replace(" - Working Draft (Unit 1)", " (Unit 1) - Working Draft"); - s = s.Replace(" - Working Draft (Unit 2)", " (Unit 2) - Working Draft"); - s = s.Replace(" - Current Approved Version", " - Approved Version"); - return s.Replace(" - Working Draft", " - Working Draft"); - } - private int CalcAccessLevel(int iBase, uint options, string sVersion) - { - if (sVersion == "Working Draft") - { - if (options == 0) return 0; - if ((options & 6528) != 0) return 5; - if ((options & 1024) != 0) return 4; - if ((options & 528) != 0) return 3; - return 2; - } - else - { - if (iBase != 0) return iBase; - else if (options != 0) return 1; - return 0; - } - } - private string SystemOption(uint options) - { - if ((options & 11) != 0) return "\"Admin\""; - if (options == 4) return "\"RO\""; - return ""; - } - private void AddAccessRights(Dictionary> dic, int folderId, int roleId) - { - if (!dic.ContainsKey(folderId)) dic[folderId] = new List(); - dic[folderId].Add(roleId); - } - private void AddUsrGrpAsgnRecs(Dictionary plntDic, List userList) - { - Dictionary> dicGroups = new Dictionary>(); - Dictionary dicGroupIds = new Dictionary(); - Dictionary dicOldFolders = new Dictionary(); - int oldFolderCount = 1; - dicOldFolders.Add("system", oldFolderCount++); - Dictionary dicNewFolders = LoadFolders(); - List lstVersions = new List(); - StringBuilder sb; - OldUser frst = userList[0]; - - string[] accessLevel = { "", "\"Guest\"", "\"Reviewer\"", "\"Writer\"", "\"Admin\"", "\"Admin\"" }; - foreach (OldUser usr in userList) - { - int sysAccess = 5; - Dictionary plantAccess = new Dictionary(); - - if ((usr.SystemOpts & 11) == 0) - { - foreach (PlantOptions po in usr.PlantOpts) - { - plantAccess[po] = 5; - Plant pl = (Plant)plntDic[po.Id]; - if (!dicOldFolders.ContainsKey(pl.Path.ToUpper()))dicOldFolders.Add(pl.Path.ToUpper(), oldFolderCount++); - string sSetLast = ""; - int iAccessLevel = 0; - - foreach (ProcOptions psO in po.poList) - { - ProcSet ps = null; - try - { - ps = (ProcSet)pl.psDic[psO.Id]; - } - catch (Exception ex) - { - MessageBox.Show("here: " + ex.Message); - } - if (!dicOldFolders.ContainsKey(pl.Path.ToUpper()+"\\"+ps.Path.ToUpper()))dicOldFolders.Add(pl.Path.ToUpper()+"\\"+ps.Path.ToUpper(), oldFolderCount++); - string sName = FixName(ps.Name); - string sVersion = VersionName(sName); - string sSet = SetName(sName); - if (sSet != sSetLast) - { - if (sSetLast != "") - { - // if the proc access is lower than the plant, reset plant level. - if (iAccessLevel < plantAccess[po]) plantAccess[po] = iAccessLevel; - iAccessLevel = 0; - } - sSetLast = sSet; - } - iAccessLevel = CalcAccessLevel(iAccessLevel, psO.Options[0], sVersion); - } - // do one last check to see if plant level should be lowered. Also - // check if the system level should be lowered. - if (iAccessLevel < plantAccess[po]) plantAccess[po] = iAccessLevel; - if (plantAccess[po] < sysAccess) sysAccess = plantAccess[po]; - } - } - - // set the system level access, i.e. User Admin, System Admin & RO Editor roles if - // necessary. - int systemid = dicOldFolders["system"]; - - Dictionary> accessRights = new Dictionary>(); - if (usr.SystemOpts != 0) AddAccessRights(accessRights, systemid, accessLevelTrans[6]); // add ro editor - if ((usr.SystemOpts & 11) != 0) - { - AddAccessRights(accessRights, systemid, accessLevelTrans[5]); // add sys admin rights - AddAccessRights(accessRights, systemid, accessLevelTrans[7]); // and add user admin rights - } - else - { - // the user has a role at the system level that is not an admin, - // such as reviewer or guest - add it in. - if (sysAccess > 0) AddAccessRights(accessRights, systemid, accessLevelTrans[sysAccess]); - } - - sb = new StringBuilder(string.Format("{0},{1}", (usr.SystemOpts == 0 ? "" : "Admin"), accessLevel[sysAccess])); - - if ((usr.SystemOpts & 11) == 0) - { - foreach (PlantOptions po in usr.PlantOpts) - { - Plant pl = plntDic[po.Id]; - // Need logic for po.Options in combination with PlantAccess[po] - //sb.Append(string.Format(",{0}", po.Options)); - - if (plantAccess[po] > sysAccess) - { - AddAccessRights(accessRights, dicOldFolders[pl.Path.ToUpper()], accessLevelTrans[plantAccess[po]]); - sb.Append(string.Format(",{0}", accessLevel[plantAccess[po]])); - } - else - sb.Append(","); - string sSetLast = ""; - string sPathLast = ""; - int iAccessLevel = 0; - string sPath = ""; - foreach (ProcOptions psO in po.poList) - { - ProcSet ps = pl.psDic[psO.Id]; - string sName = FixName(ps.Name); - string sVersion = VersionName(sName); - if (sVersion == "Working Draft") sPath = pl.Path + "\\" + ps.Path; - string sSet = SetName(sName); - - if (sSet != sSetLast) - { - if (sSetLast != "") - { - if (iAccessLevel > plantAccess[po]) - { - AddAccessRights(accessRights, dicOldFolders[sPathLast.ToUpper()], accessLevelTrans[iAccessLevel]); - sb.Append(string.Format(",{0}", accessLevel[iAccessLevel])); - } - else - sb.Append(","); - iAccessLevel = 0; - } - sSetLast = sSet; - sPathLast = sPath; - } - iAccessLevel = CalcAccessLevel(iAccessLevel, psO.Options[0], sVersion); - } - - if (iAccessLevel > plantAccess[po]) - { - AddAccessRights(accessRights, dicOldFolders[sPathLast.ToUpper()], accessLevelTrans[iAccessLevel]); - sb.Append(string.Format(",{0}", accessLevel[iAccessLevel])); - } - else - sb.Append(","); - } - } - string s = sb.ToString(); - - if (!dicGroups.ContainsKey(s)) - { - dicGroups[s] = new List(); - Group grp = Group.New(); - grp.GroupName = "Group " + dicGroups.Count.ToString(); - int pathInData = -1; - foreach (int folderId in accessRights.Keys) - { - // see if this folderId exists in the data (rather - // than the list from vesam). If not, don't do an - // assignments record - pathInData = 0; - foreach (KeyValuePair kvp in dicOldFolders) - { - if (kvp.Value == folderId) - { - string path = kvp.Key; - if (dicNewFolders.ContainsKey(path.ToUpper())) - pathInData = dicNewFolders[path.ToUpper()]; - } - } - if (pathInData>0) - { - if (!grp.IsSavable) ErrorRpt.ErrorReport(grp); - grp.Save(); - Folder tmpfld = Folder.Get(pathInData); - foreach (int roleId in accessRights[folderId]) - { - Role tmprole = Role.Get(roleId); - grp.GroupAssignments.Add(tmprole, tmpfld); - } - } - } - if (!grp.IsSavable) ErrorRpt.ErrorReport(grp); - grp.Save(); - dicGroupIds[s] = grp.GID; - } - dicGroups[s].Add(usr.UserName); - } - - foreach (string s in dicGroups.Keys) - { - foreach (string sUser in dicGroups[s]) - { - // add user record & membership record. - User newusr = User.New(); - newusr.UserID = sUser; - ConfigFile cfg = new ConfigFile(); - cfg.LoadUsrCfg(newusr, _VePromsPath); - Group tmpgrp = Group.Get(dicGroupIds[s]); - newusr.UserMemberships.Add(tmpgrp); - if (!newusr.IsSavable) ErrorRpt.ErrorReport(newusr); - newusr.Save(); - } - - } - } - #endregion - } -#endregion -} diff --git a/PROMS/DataLoader/Sections.cs b/PROMS/DataLoader/Sections.cs deleted file mode 100644 index de6ef455..00000000 --- a/PROMS/DataLoader/Sections.cs +++ /dev/null @@ -1,851 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.Xml.XPath; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - - -namespace DataLoader -{ - public partial class Loader - { - const int E2 = 4194304; - private Dictionary dicOldToNew; - private Item AddSection(Item procitem, string Number, string Title, string SecType, DateTime Dts, string Userid, ConfigInfo ci, string stpseq, string fmt, int libdocid, string pth, Item FromItem, FormatInfo activeFormat) - { - string missingFileName = ""; - bool missingDocFile = false; - //Console.WriteLine("before UpdateLabels"); - frmMain.UpdateLabels(0, 1, 0); - //Console.WriteLine("after UpdateLabels"); - try - { - //Console.WriteLine("before activeFormat"); - FormatInfo format = activeFormat; - //Console.WriteLine("after activeFormat"); - - // Tie the section to format used, this will add the format xml if it doesn't exist in - // the database yet. Note that if there is no format at this level then none should - // be set so that the inheritance works correctly. - if (fmt != null && fmt != "") format = GetFormat(fmt); - - // Find the docstyle based on the section type (step[1]) & the 'type' from the dbf - // record sectype[0]) - string dstyleindx = ((stpseq == null || stpseq == "") ? " " : stpseq.Substring(1, 1)) + ((SecType==null||SecType == "") ? " " : SecType.Substring(0, 1)); - int tmpE2 = LookupOldToNew(dstyleindx); - //int docstyleindx = GetDocStyleIndx(dstyleindx, format, procitem, docver,Number,Title); - int docstyleindx = GetDocStyleIndx(dstyleindx, format, procitem, Number, Title); - DocStyle myDocStyle = format.PlantFormat.DocStyles.DocStyleList[docstyleindx]; - - // Originally there was no determination as to whether to set landscape mode. Code was added on - // 6/11/13 to compare the PageWidth & PageLength. This code was incorrectly setting some of the - // word documents to landscape (FNP cover pages). Adding in the topmargin fixed this. - bool isLandscape = myDocStyle.Layout.PageWidth > (myDocStyle.Layout.TopMargin + myDocStyle.Layout.PageLength); - // Adjust the section number. The 16bit vfw code was sometimes printing section numbers - // differently than what was stored as data. For example VEWCNOFN: OFN MA-001, the section - // number was '1.' and 16bit printed it as '1.0'. The flag that caused this was (surprisingly), - // !LineAboveUnderSection, search for LineAboveUnderSection in PROMSNT\exe\print\prntStep.c - // to find the beginning point of tracing this 16bit logic, the call to PlaceSectionTitle. - // The change in section number is: - // 1 -> 1. B -> B. - // 1. -> 1.0 B. -> B.0 - // 1.0 stays same B.0 stays the same - // It was decided to make the string change in the dataloader rather than have this 'strange' - // code/support in the print program for the 32bit veproms. (8/30/11). This seems to work - // for Wcnemg, WcnOFn, HLP, FPL. As other plants are migrated, this may need changed. - - /* The 16bit code if statement is (see below for what parts of this if statement where supported - * for data migration so far (as of 8/31/11). Note that 'Smartsubsection' only had values of - * 0 in fmtfiles. - * if (!CancelCurSecTitle() && - !(SpecialStepsFoldout && (CurDoc->oldtonew == E2)) && - !(SmartSubSection && (CurDoc->oldtonew & SmartSubSection) && - Section[CurrentSectIndex].Level == 0) && - Section[CurrentSectIndex].Sequence[9] != 'N') { - */ - FormatData fmtData = format.PlantFormat.FormatData; - // don't want to add the '0' after . for section numbers for Catawba or McGuire - bool isCatawbaOrMcGuire = false; - if (fmtData.Name.ToUpper().Contains("CAT") || fmtData.Name.ToUpper().Contains("MCG")) isCatawbaOrMcGuire = true; - if (!isCatawbaOrMcGuire && - fmtData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles && - !format.PlantFormat.DocStyles.DocStyleList[docstyleindx].CancelSectTitle && - !(format.PlantFormat.DocStyles.DocStyleList[docstyleindx].SpecialStepsFoldout && tmpE2 == E2)) - { - if (!fmtData.SectData.StepSectionData.StepSectionLayoutData.LineAboveUnderSection && - (Number != null && Number != "") && - (stpseq != null && stpseq.Substring(1, 1) == "0" && stpseq.Substring(5, 1) != " ")) - { - if (Number.EndsWith(".")) Number = Number + "0"; - else if (Number.Length>1 && Number[Number.Length-2] != '.') Number = Number + "."; - } - } - - // tack on the column mode - add to config xml for node. - if (stpseq != null && stpseq.Substring(1, 1) == "0" && stpseq.Substring(5, 1) != " ") - { - if (ci == null) ci = new ConfigInfo(null); - char cmchar = stpseq.Substring(5, 1)[0]; - if (cmchar > '2' || cmchar < '1') - ci.AddItem("Section", "ColumnMode", "1"); - else - ci.AddItem("Section", "ColumnMode", stpseq.Substring(5, 1)); - } - - // find rtf file (or use the library document temp file) & read it into the field - // acccontent - int Documentid=0; - bool needEntry = false; - if ((format.PlantFormat.DocStyles.DocStyleList[docstyleindx].StructureStyle.Style & E_DocStructStyle.TableOfContents) == E_DocStructStyle.TableOfContents && - (format.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.AutoTableOfContents) == E_PurchaseOptions.AutoTableOfContents) - needEntry = false; - else if (libdocid != 0 || stpseq.Substring(1, 1) != "0") - { - needEntry = true; - string fname = null; - if (libdocid != 0) - { - Documentid = libdocid; - if (Title.Trim().ToUpper() == "") - { - using (DocumentInfo di = DocumentInfo.Get(libdocid)) - Title = di.LibTitle; - } - } - else - { - int num = Convert.ToInt32(stpseq[0]) - 64; - char prefix = 'A'; - prefix += (char)(num / 100); - int numpart = num % 100; - //string thenum = num.ToString("d2"); - fname = string.Format("{0}\\rtffiles\\{1}.{2}{3:D02}", pth, ProcFileName, prefix, numpart); - Application.DoEvents(); - string procnum = ""; - using (ItemInfo ii = ItemInfo.Get(procitem.ItemID)) - procnum = ii.DisplayNumber; - SaveSectionDocument(fname, stpseq, SecType, ref Documentid, procnum + ":" + (Number == string.Empty ? Title : Number), isLandscape); - if (Documentid == 0) - { - if (MissingDocument == null) - { - //if (ci == null) ci = new ConfigInfo(null); - //ci.AddItem("Printing", "Length", string.Format("{0:0.0000}", 0.001)); - Byte[] tstbyte = System.Text.Encoding.Default.GetBytes(""); - MissingDocument = Document.MakeDocument("MISSING FILE IN CONVERSION", tstbyte, null, null,".doc"); - } - Documentid = MissingDocument.DocID; - missingDocFile = true; - missingFileName = string.Format("{0}.{1}{2:D02}",ProcFileName, prefix, numpart); - } - } - } - if (Userid == null || Userid == "") Userid = "Migration"; - - // test for performance - Content cont; - Format fmt2 = format == null ? null : format.GetJustFormat(); - cont = Content.New(Number, Title, 10000+docstyleindx, fmt2, ci==null?null:ci.ToString(), Dts, Userid); - if (needEntry) - { - Entry entry = cont.MyEntry; - entry.MyDocument = Document.Get(Documentid); - entry.DTS = Dts; - entry.UserID = Userid; - } - cont.MyZContent.OldStepSequence = ProcNumber + "|" + stpseq.TrimEnd(" ".ToCharArray()); - Item itm = null; - // the stpseq for section records may include a space & some other data. This - // was not part of what is stored in the transition records, so just look at - // the sequence before the space for section records. Then use the first character - // with a '0'. This is what's stored in the transition record, for example, if the - // section was BI, the transition record would have B0 (the reasoning is that - // for steps, this is what could be stored if there were enough steps. - int trindxsp = stpseq.IndexOf(' '); - string trstpseq = trindxsp < 0 ? stpseq : stpseq.Substring(0, 1)+ "0"; - if (dicTrans_ItemIds.ContainsKey(ProcNumber + "|" + trstpseq)) - { - itm = dicTrans_ItemIds[ProcNumber + "|" + trstpseq]; - itm.MyContent = cont; - itm.MyPrevious = FromItem; - itm.DTS = Dts; - itm.UserID = Userid; - if (!itm.IsSavable) ErrorRpt.ErrorReport(itm); - itm.Save(); - dicTrans_ItemIds.Remove(ProcNumber + "|" + trstpseq); - dicTrans_MigrationErrors.Remove(ProcNumber + "|" + trstpseq); - } - else - itm = Item.MakeItem(FromItem, cont, Dts, Userid); - - // Check this section type versus the docstyleindex, i.e. that the docstyle was not of - // the same type of section as the data. For example, rgesmped.in has only 1 doc style - // and it WAS both step & doc when the section was added as a word doc, but the current - // rgesmped.in only supports step sections. The result was that there is Word content but - // a step docstyle. - // - // Identify this problem by putting out an error message & adding an annotation. The data - // will have to be fixed manually, i.e. go into sql server & change the format and Type to - // use a word section type. - if (needEntry && format.PlantFormat.DocStyles.DocStyleList[docstyleindx].IsStepSection) - { - frmMain.AddError("Conflicting section type (Word Section: {0}) & Document Style (Step Section type: {1})", - ProcNumber + ":" + Number + ":" + Title, format.PlantFormat.DocStyles.DocStyleList[docstyleindx].Name); - ItemAnnotation ia = itm.ItemAnnotations.Add(MigrationErrorType); - ia.SearchText = "Conflicting Section Type and Document Style"; - ia.UserID = "Migration"; - itm.Save(); - } - if (missingDocFile) - { - ItemAnnotation ia = itm.ItemAnnotations.Add(MigrationErrorType); - ia.SearchText = string.Format("Missing File: {0} In Conversion",missingFileName); - ia.UserID = "Migration"; - itm.Save(); - } - dicTrans_ItemDone[ProcNumber+"|"+trstpseq] = itm; - dicOldStepSequence[itm] = stpseq; - return itm; - } - catch (Exception ex) - { - frmMain.AddError(ex, "Save Section"); - log.Error("Save Section"); - log.ErrorFormat("oldstepsequence = {0}", stpseq); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - log.ErrorFormat(ex.StackTrace); - } - return null; - } - - private int LookupOldToNew(string lkup) - { - if (dicOldToNew == null) - { - dicOldToNew = new Dictionary(); - //dicOldToNew.Add("", 1); - dicOldToNew.Add("0", 1); - dicOldToNew.Add("0 ", 1); - dicOldToNew.Add("00", 1); - dicOldToNew.Add("01", 2); - dicOldToNew.Add("02", 4); - dicOldToNew.Add("03", 8); - dicOldToNew.Add("04", 16); - dicOldToNew.Add("I", 32); - dicOldToNew.Add("I ", 32); - dicOldToNew.Add("I0", 32); - dicOldToNew.Add("I1", 64); - dicOldToNew.Add("I2", 128); - dicOldToNew.Add("I3", 256); - dicOldToNew.Add("I4", 512); - dicOldToNew.Add("A", 1024); - dicOldToNew.Add("A ", 1024); - dicOldToNew.Add("A0", 1024); - dicOldToNew.Add("A1", 2048); - dicOldToNew.Add("A2", 4096); - dicOldToNew.Add("A3", 8192); - dicOldToNew.Add("A4", 16384); - dicOldToNew.Add("F", 32768); - dicOldToNew.Add("F ", 32768); - dicOldToNew.Add("F0", 32768); - dicOldToNew.Add("F1", 65536); - dicOldToNew.Add("F2", 131072); - dicOldToNew.Add("F3", 262144); - dicOldToNew.Add("F4", 524288); - dicOldToNew.Add("05", 1048576); - dicOldToNew.Add("06", 2097152); - dicOldToNew.Add("07", 4194304); - dicOldToNew.Add("08", 8388608); - dicOldToNew.Add("09", 16777216); - dicOldToNew.Add("0:", 33554432); - dicOldToNew.Add("0;", 67108864); - dicOldToNew.Add("0<", 134217728); - dicOldToNew.Add("0=", 268435456); - dicOldToNew.Add("0>", 536870912); - } - int retval = -1; - try - { - retval = dicOldToNew[lkup]; - } - catch (Exception ex) - { - frmMain.AddError(ex, "OldToNew {0}", lkup); - Console.WriteLine(string.Format("Error in oldtonew {0}", lkup)); - Console.WriteLine(string.Format("Error = {0}", ex.Message)); - } - return retval; - } - private int GetDocStyleIndx(string dstyleindx, FormatInfo format, Item procitem, /* DocVersion docver,*/ string Number, string Title) - { - int docstyle = LookupOldToNew(dstyleindx); - DocStyle ds0 = null; - foreach (DocStyle ds in format.PlantFormat.DocStyles.DocStyleList) - { - if (ds.Index == 0) ds0 = ds; - if ((ds.OldToNew & docstyle) > 0) - { - //frmMain.AddError("--->>>\"Good\"\t\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"\t\"{4}\"\t\"{5}\"", - // procitem.DisplayNumber, (Number ?? "") == "" ? Title : Number, dstyleindx, format, docstyle, ds.Name); - return (int)ds.Index; - } - } - frmMain.AddError("Bad OldToNew Document Style {0}:{1} dStyleIndex = '{2}'\r\n{3} - Missing OldToNew {4}", - procitem.DisplayNumber, (Number ?? "") == "" ? Title : Number, dstyleindx, format, docstyle); - //frmMain.AddError("--->>>\"Bad\"\t\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"\t\"{4}\"\t\"{5}\"", - // procitem.DisplayNumber, (Number ?? "") == "" ? Title : Number, dstyleindx, format, docstyle, ds0.Name); - return 0; // Default is Zero - } - //private FormatInfo GetFormat(Item procitem, DocVersion docver) - //{ - // return procitem.MyItemInfo.ActiveFormat; - // //while (procitem.MyItemInfo.a .MyContent.MyFormat == null) - // //{ - // // // find the first sibling - // // while (procitem.PreviousID != null) - // // procitem = procitem.MyPrevious; - // // if (procitem.ItemPartCount == 0) return docver.MyDocVersionInfo.ActiveFormat; - // // // find the parent node - // // procitem = procitem.ItemParts[0].MyContent.ContentItems[0].MyItem; - // //} - // //return procitem.MyContent.MyFormat; - //} - //private FormatInfo GetFormat(DocVersion docver) - //{ - // if (docver.MyDocVersionInfo.MyFormat != null) return docver.MyDocVersionInfo.MyFormat; - // return GetFormat(docver.MyDocVersionInfo.MyFolder); - //} - //private FormatInfo GetFormat(FolderInfo folder) - //{ - // if (folder.MyFormat != null) return folder.MyFolderInfo.MyFormat; - // return GetFormat(folder.MyParent); - //} - private string SectTitle(OleDbConnection cn, DataRowView dr, bool UseMultiLineSectionTitle, bool ConvertCaret) - { - string tbuff = null; - string menustr = null; - - if (UseMultiLineSectionTitle) - { - bool titleInMemo = false; - // for accessory pages... - if (dr["Step"].ToString().Substring(1, 1) != "0") - { - // The long section title is stored on a record with the "~" character. - // This was done since originally the actual accessory page data was stored in the memo - // field, so the long title could not be stored there, another record had to be used. - OleDbDataAdapter da = new OleDbDataAdapter("select * from " + ProcFileName + " where [Step] = '" + dr["Step"].ToString().Substring(0, 1) + "~';", cn); - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - if (ds.Tables[0].Rows.Count == 1) - { - DataRow row = ds.Tables[0].Rows[0]; - tbuff = TextConvert.ConvertText(row["Textm"].ToString(),ConvertCaret); - if (tbuff != null && tbuff != "") titleInMemo = true; - } - else // no long section title existed for this accessory page - tbuff = TextConvert.ConvertText(dr["Text"].ToString().PadRight(130, ' ').Substring(0, 75).TrimEnd(), ConvertCaret); - } - catch (Exception ex) - { - frmMain.AddError(ex, string.Format("Error getting long section title, procedure: {0}",ProcFileName)); - log.ErrorFormat("Error getting long section title, procedure: {0}, error: {1}", ProcFileName,ex.Message); - } - da.Dispose(); - } - // For step sections, the long section title is stored on the section record - // (see above comment for accessory pages to see the difference) - else - { - string t = dr["Text"].ToString().PadRight(80, ' ').Substring(0, 75).TrimEnd(); - string tm = dr["TextM"].ToString().Trim(); - string secttitle = tm == null || tm == "" ? t : tm; - tbuff = TextConvert.ConvertText(secttitle, ConvertCaret); - } - - //// TESTS were run & it looked like that whitespace was removed before saving, - //// so, put up a message box if find out otherwise.... - //int nl = tbuff.IndexOf("\n"); - //if (nl > -1) - // MessageBox.Show("multiline text for section title, fix this!!"); - - //// remove newlines & any other escape/whitespace chars. - int nl = tbuff.IndexOf("\n"); - if (nl > -1 || titleInMemo) - { - - string tmpstr = tbuff.Replace("\r", ""); - tmpstr = tmpstr.Replace("\t", ""); - tmpstr = tmpstr.Replace("\n", " "); - // get rid of multiple spaces - while (tmpstr.IndexOf(" ") > -1) tmpstr = tmpstr.Replace(" ", " "); - tbuff = tmpstr; - if (tbuff.Substring(tbuff.Length - 1, 1) == " ") tbuff = tbuff.Substring(0, tbuff.Length - 1); - menustr = tbuff; - } - else - { - if (tbuff==null||tbuff=="") menustr = TextConvert.ConvertText(dr["Text"].ToString().PadRight(80, ' ').Substring(0, 75).TrimEnd(), ConvertCaret); - else menustr = tbuff; - } - } - else - { // format does not include long section title - menustr = TextConvert.ConvertText(dr["Text"].ToString().PadRight(80, ' ').Substring(0, 75).TrimEnd(), ConvertCaret); - } - return menustr; - } - private static Color _OverrideColor = Color.Red; - - public static Color OverrideColor - { - get { return Loader._OverrideColor; } - set { Loader._OverrideColor = value; } - } - private bool hasFloatingFoldouts = false; - private Dictionary FoldoutStpSeq = null; - private List FloatingFoldoutHLS = null; - private Item MigrateSection(Item procitem, string procnum, OleDbConnection cn, DataRowView dr, DataTable dt, Item FromItem, bool hasSubSection, string pth, DocVersion docver, FormatInfo activeFormat,Content cont) - { - Int32 thesectid = 0; - bool isautogen = false; - string stype = dr["type"].ToString(); - string s = dr["text"].ToString().PadRight(130, ' '); - string rid = dr["recid"].ToString(); // RECID - string num = s.Substring(85, 20).TrimEnd(); - string fmt = s.Substring(75, 8).TrimEnd(); // base format name - string ufmt = s.Substring(83, 2).TrimEnd(); // user format number (see TSectEditDlg::SetupWindow() PROMSNT\EXE\WINED\SECTEDIT.CPP) - // Build the format name if one was specified for this section. - if (fmt == "") - fmt = null; - else if (ufmt.Length == 2 && char.IsDigit(ufmt[0]) && char.IsDigit(ufmt[1])) // user format reference must be two digits - fmt = fmt.PadRight(8,' ') + ufmt; // append the user format reference - bool ismulti = false; - bool conv_caret = true; - - // sectFormat is a local that represents the format to be used by this section. - // Note that if the format is set for this section, check it against what the inherited - // value would be (for example, what the format is for the set), if they are the same - // clear the format at the section level. - FormatInfo sectFormat = null; - FormatInfo docverFormat = activeFormat;//docver.MyDocVersionInfo.ActiveFormat; - if (fmt != null&& fmt !="") // Is there a long section title (from format flag) - sectFormat = GetFormat(fmt); - else // either from this format, or the plant. - sectFormat = docverFormat; - if (sectFormat != null) - { - ismulti = sectFormat.PlantFormat.FormatData.SectData.StepSectionData.UseMultiLineSectionTitle; - conv_caret = sectFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta; - hasFloatingFoldouts = sectFormat.PlantFormat.FormatData.PrintData.AlternateFloatingFoldout; - } - if (fmt != null && fmt != "") if (fmt == docverFormat.Name) fmt = null; - string title = SectTitle(cn, dr, ismulti, conv_caret); - string init = dr["initials"].ToString().Trim(); - string sequence = dr["CSequence"].ToString().PadRight(10); - string step = dr["CStep"].ToString(); - - int libDocid = 0; - - DateTime dts = GetDTS(dr["Date"].ToString(), dr["Time"].ToString()); - - ConfigInfo ci = new ConfigInfo(null); - ci.AddItem("History", "RecID", rid); - ci.AddItem("History", "ProcName", ProcFileName.ToUpper()); - if (MultiUnitCount > 0) - { - string apple = AddApplicability(rid); - if(apple != null) - ci.AddItem("MasterSlave", "Applicability", apple); - } - ci.AddItem("Section", "OldType", stype); - - - // for steps sections... - // Step Section Header Format: - // A0 1X2S51 &Y - // ^^^^^^^^^^^^ - // ||||||||||||| - // ||||||||||||`- 'Y','N', or blank signals to print section header - lib/section/addsec.c - // |||||||||||`-- (bits) Auto Indent, Editable Data, Checkoff Header Type - lib/section/addsec.c - // ||||||||||`--- blank - // ||||||||`----- Link With Enhanced Document ' '-Default(not determined) 0-NO 1-YES - // |||||||`------ MetaSection - number of subsections is given - // ||||||`------- S-Separate(PageBreak); T-Continuous; ' '-Default - // |||||`-------- Column mode (1,2,3,' '-default) - // ||||`--------- X -only proc section; x -orig. proc; ' ' -other - // |||`---------- Position within the procedure - // ||`----------- ALWAYS leave blank - // |`------------ Step Section Header marker - // `------------- Internal section number (starts at A) - char cbittst = sequence.PadRight(10)[8]; - if (cbittst == ' ') cbittst = '\0'; - if (step.Substring(1, 1) == "0") - { - // set pagination, continuous, separate. If blank, don't create attribute - uses format default. - if (sequence.Substring(2, 1) != " ") - { - ci.AddItem("Section", "OriginalSteps", "Y"); - } - if (sequence.Substring(4, 1) == "T") // continuous - { - ci.AddItem("Section", "Pagination", "1"); - } - else if (sequence.Substring(4, 1) == "S") // separate - { - ci.AddItem("Section", "Pagination", "2"); - } - - // Step: linked to enhanced (!exist = N) - if (sequence.Substring(7, 1) == "1") - { - ci.AddItem("Step", "LnkEnh", "Y"); - } - // determine if autogenerated section (!exist = N) - // Placekeeper (Calvert) - if ((cbittst & PLACEKEEPER) > 1) - { - isautogen = true; - //ci.AddItem("Section", "AutoGen", "Y"); - ci.AddItem("Section", "Placekeeper", "Y"); - } - // Phonelist (Clavert) - if ((cbittst & PHONELIST) > 1) - ci.AddItem("Section", "Phonelist", "Y"); - // Here are subsection flags, i.e. the following are only set if this - // is a subsection. - bool didsub = false; - if (hasSubSection) - { - // Subsection: editable (!exist = N, i.e. default is 'not editable') - if ((cbittst & EDDATA) > 0) - { - ci.AddItem("SubSection", "Edit", "Y"); - } - // Subsection: autoindent (!exist = Y, i.e. default is 'autoindented') - if ((cbittst & AUTOIND) > 0) - { - ci.AddItem("SubSection", "AutoIndent", "N"); - } - } - // Section: print section headers (!exist = Y, i.e. default is 'print section header') - // Note that this can be on a section or subsection. 16bit code has this for both - // levels and it was stored either as a bit set on seq[8] (for subsections, i.e. - // this subsection does not have subsections under it) or was a character in seq[9] (Y or N), - // i.e. this section has subsections. Make this just one flag now. - if (hasSubSection && ((cbittst & PH) == 0)) - { - didsub = true; - ci.AddItem("Section", "PrintHdr", "N"); - } - if (!hasSubSection && sequence.Substring(9, 1) == "N") - { - ci.AddItem("Section", "PrintHdr", "N"); - } - // Save section level Checkoff information - int chkOffType = (rid[0] & 0x007F) - '0'; - if (rid[0] == '\u2591') //for SUM,CAT,MCG with only 2 checkoff options and default checkoff is enabled - chkOffType = 1; //this diables checkoffs for this section - if (chkOffType > 0) - ci.AddItem("Section", "CheckoffSelection", chkOffType.ToString()); - - if (stype.Length > 1) - { - int chkOffHeading = (stype[1] & 0x007F) - '0'; - if (chkOffHeading > 0) - ci.AddItem("Section", "CheckoffHeading", chkOffHeading.ToString()); - } - } - else - { - // Accessory Section Format: - // AI 1 2 - // ^^ ^ ^ - // || | | - // || | `- # of pages (ASCII value minus 48) - // || `--- Position within the procedure - // |`----- Acc. page type (A,I, or F) - // `------ Internal section number (starts at A) - ci.AddItem("Section", "NumPages", sequence.Substring(3, 1)); - - // see if it's a libdoc too - string mystep = null; - try - { - mystep = dr["Step"].ToString(); - } - catch (Exception ex) - { - Console.WriteLine("testing - error = {0}", ex.Message); - } - string thekey = procnum.PadRight(20) + ((mystep!=null)?mystep.Substring(0,1).PadRight(10):step.Substring(0, 1).PadRight(10)); - if (dicLibDocRef.ContainsKey(thekey)) - { - // if it is a library document, see if the section record has already been - // saved. If it has, just use this section id, otherwise, create the - // section record with info from the library document file. - libDocid = dicLibDocRef[thekey]; - } - } - // Both step & word doc sections can be in toc - // determine if TOC element (!exist = N) - if ((cbittst & TOC) > 1) - { - ci.AddItem("Section", "TOC", "Y"); - } - //Console.WriteLine("Before AddSection"); - Item secitem = AddSection(procitem, num, title, stype, dts, init, ci, step + sequence, fmt, libDocid, pth, FromItem, sectFormat); - //Console.WriteLine("After AddSection"); - if (secitem == null) - throw (new Exception("Null parameter in AddSection")); - if (hasFloatingFoldouts) - { - if (FoldoutStpSeq == null) FoldoutStpSeq = new Dictionary(); - if (step[1] == 'F') FoldoutStpSeq.Add(step, secitem.ItemID); - } - if (cont != null) - { - // ContentsParts.Add can use 'fromtype', item - fromtype here = 2, section - AddPartRecursive(cont, 2, secitem); - //if (cont.ContentParts.Contains(2)) - //{ - // foreach (ContentPart part in cont.ContentParts) - // { - // if (part.FromType == 2) - // { - // Item ii = Item.Get(part.ItemID); - // ii.MyContent.ContentParts.Add(2, secitem); - // ii.Save(); - // break; - // } - // } - //} - //else - // cont.ContentParts.Add(2, secitem); - if (cont.MyZContent.OldStepSequence == null || cont.MyZContent.OldStepSequence == "") cont.MyZContent.OldStepSequence = ProcNumber; - if (!cont.IsSavable) ErrorRpt.ErrorReport(cont); - cont.Save(); - } - thesectid = secitem.ItemID; - using (ItemInfo seciteminfo = ItemInfo.Get(thesectid)) - { - if (seciteminfo.MyContent.ContentEntryCount != 0) - { - using (DocumentInfo di = seciteminfo.MyContent.MyEntry.MyDocument) - { - bool success = MSWordToPDF.UpdateDocPdf(di, OverrideColor, seciteminfo); - if (!success) - { - frmMain.AddError("Error in ", "UpdateDocPdf"); - log.Error(string.Format("UpdateDocPdf - Error creating Pdf for Word Doc: {0},{1}", procnum, secitem.MyContent.Number + secitem.MyContent.Text)); - } - } - } - } - // if the editsectid hasn't been set yet, set it to this section id, i.e. the first - // one processed. Then if this section has the original edit section flag (sequence[2]) - // save the id. The first step is necessary in case there is no original edit section - // flag set, so that the first section is the default one to get opened in edit. - if (EditSectId==0)EditSectId = thesectid; - if (libDocid<1 && step[1] == '0' && (sequence[2] == 'x' || sequence[2] == 'X')) - EditSectId = thesectid; - // ContentType (2 in the following call) are: - // 0 = structure, - // 1 = procedure, - // 2 = section, - // 3 = step - // 4 = branch - - // fromtype values are (see steps.cs too) - // 1 = procedure, - // 2 = section, - // 3 = caution - // 4 = note - // 5 = RNO - // 6 = step - // 7 = table - isautogen = false; //needed for bge - if (!isautogen) - { - // Process the Data Table - First look for High Level Steps - string sQry = string.Format("Step like '[{0}]%' and Sequence='S'", dr["Step"].ToString().Substring(0, 1)); - DataView dv = new DataView(dt, sQry, "StepNo", DataViewRowState.CurrentRows); - Item FrItem = null; - frmMain.pbStepMaximum = dt.Rows.Count-frmMain.pbSectMaximum; - int type = 6; - bool sectionShowed = false; - int firstCharSection = (int)(dr["Step"].ToString()[0]); - foreach (DataRowView drv in dv) - { - int firstCharStep = (int)(drv[0].ToString()[0]); - if (firstCharSection != firstCharStep) - { - if(!sectionShowed) - Console.WriteLine("'Section','{0}','{1}','{2}',{3}", procnum,num,dr["Step"].ToString(), (int)(dr["Step"].ToString()[0])); - sectionShowed = true; - Console.WriteLine("'Skipping Step','{0}','{1}','{2}',{3}", procnum,num,drv["Step"].ToString(), (int)(drv["Step"].ToString()[0])); - } - else - { - FrItem = MigrateStep(cn, dt, drv, FrItem, conv_caret, pth, docver, sectFormat, secitem, type); - if (hasFloatingFoldouts && (sequence[2] == 'x' || sequence[2] == 'X')) - { - if (FloatingFoldoutHLS == null) FloatingFoldoutHLS = new List(); - FloatingFoldoutHLS.Add(FrItem.ItemID); - } - type = 0; // Only add ContentPart for first child - //if (secitem.MyContent.ContentParts.Count == 0) - //{ - // // type 6 is step - // secitem.MyContent.ContentParts.Add(6, FrItem); - // if (!secitem.MyContent.IsSavable) ErrorRpt.ErrorReport(secitem.MyContent); - // secitem.MyContent.Save(); - //} - } - } - dv.Dispose(); - } - return secitem; - } - - private void AddPartRecursive(Content cont, int fromType, Item secitem) - { - if (cont.ContentParts.Contains(fromType)) - { - foreach (ContentPart part in cont.ContentParts) - { - if (part.FromType == fromType) - { - Item ii = Item.Get(part.ItemID); - AddPartRecursive(ii.MyContent, fromType, secitem); - ii.Save(); - break; - } - } - } - else - cont.ContentParts.Add(fromType, secitem); - } - private static Dictionary ApplesToOranges; - private static void ResetApplesToOranges() - { - ApplesToOranges = new Dictionary(); - } - private string AddApplicability(string recnum) - { - if (!MyProcAPL.ContainsKey(recnum)) - return null; - string apple = MyProcAPL[recnum]; - return LookupOrange(apple); - - } - private string LookupOrange(string apple) - { - if (!ApplesToOranges.ContainsKey(apple)) - { - ApplesToOranges.Add(apple, AddApplicability1(apple)); - Console.WriteLine("Apple: '{0}' - Orange: '{1}'", apple, ApplesToOranges[apple]); - } - return ApplesToOranges[apple]; - } - private string AddApplicability1(string apple) - { - if (apple == "40000000") - return "0"; - UInt32 mask = 0; - foreach (int i in Old2NewApple.Keys) - mask |= (uint)(1 << (i - 1)); - UInt32 val = UInt32.Parse(apple, System.Globalization.NumberStyles.HexNumber); - //UInt32 val = UInt32.Parse(apple); - if (val == 0) - return null; - val &= mask; - if (val == 0) - return "0"; - if (val == mask) - return null; - int j = 1; - StringBuilder sb = new StringBuilder(); - string sep = string.Empty; - while (val != 0) - { - if ((val & 1u) == 1u) - { - sb.Append(sep + Old2NewApple[j].ToString()); - sep = ","; - } - j++; - val = val >> 1; - } - return sb.ToString(); - } - private void LoadSection(DataSet ds, OleDbDataAdapter da, string FileName) - { - try - { - da.Fill(ds, "Sections"); - DataTable dt = ds.Tables["Sections"]; - dt.CaseSensitive = true; - dt.Columns.Add("CStep", System.Type.GetType("System.String")); - dt.Columns.Add("CSequence", System.Type.GetType("System.String")); - // set the cstep & csequence - couldn't do it in the add because it needed a sql function - foreach (DataRow drw in ds.Tables["Sections"].Rows) - { - drw["CStep"] = TextConvert.ConvertSeq(drw["Step"].ToString()); - drw["CSequence"] = TextConvert.ConvertSeq(drw["Sequence"].ToString()); - } - dt.Columns.Add("StepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CStep,2,1),'System.Char'),'System.Int32')-48"); - dt.Columns.Add("Level", System.Type.GetType("System.Int32"), "Len(CSequence)"); - dt.Columns.Add("SubStepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CSequence,Len(CSequence),1),'System.Char'),'System.Int32')-48"); - dt.Columns.Add("locb", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CSequence,2,1),'System.Char'),'System.Int32')-48"); - } - catch (Exception ex) - { - FileInfo fi; - switch (ex.Message) - { - case "Index file not found.":// then delete inf file - fi = new FileInfo(frmMain.ProcedureSetPath + "\\" + FileName + ".inf"); - fi.Delete(); - LoadSection(ds, da, FileName);// Try Again - break; - case "External table is not in the expected format.": // then pad dbt file with 128 zeros. - fi = new FileInfo(frmMain.ProcedureSetPath + "\\" + FileName + ".dbt"); - FileStream fs = fi.OpenWrite(); - fs.Position = fs.Length; - byte[] buf = new byte[128]; - for (int i = 0; i < 128; i++) buf[i] = 0; - fs.Write(buf, 0, 128); - fs.Close(); - LoadSection(ds, da, FileName);// Try Again - break; - default: // Unrecognized error - frmMain.AddError(ex, "Unrecognized error in LoadSection {0}", FileName); - Console.WriteLine("Unrecognized error: error = {0}", ex.Message); - log.ErrorFormat("File - {0}.DBF\r\n\r\n{1}\r\n\r\n{2}", FileName, ex.Message, ex.InnerException); - break; - } - } - } - } -} diff --git a/PROMS/DataLoader/Sections.cs.bak b/PROMS/DataLoader/Sections.cs.bak deleted file mode 100644 index f00fe4f8..00000000 --- a/PROMS/DataLoader/Sections.cs.bak +++ /dev/null @@ -1,543 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.Xml.XPath; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - - -namespace DataLoader -{ - public partial class Loader - { - private Dictionary dicOldToNew; - private Item AddSection(Item procitem, string Number, string Title, string SecType, DateTime Dts, string Userid, ConfigInfo ci, string stpseq, string fmt, int libdocid, string pth, Item FromItem, DocVersion docver) - { - frmMain.UpdateLabels(0, 1, 0); - try - { - FormatInfo format = null; - - // Tie the section to format used, this will add the format xml if it doesn't exist in - // the database yet. Note that if there is no format at this level then none should - // be set so that the inheritance works correctly. - if (fmt != null && fmt != "") format = GetFormat(fmt); - - // Find the docstyle based on the section type (step[1]) & the 'type' from the dbf - // record sectype[0]) - string dstyleindx = ((stpseq == null || stpseq == "") ? " " : stpseq.Substring(1, 1)) + ((SecType==null||SecType == "") ? " " : SecType.Substring(0, 1)); - int docstyleindx = GetDocStyleIndx(dstyleindx, format, procitem, docver); - - // tack on the column mode - add to config xml for node. - if (stpseq != null && stpseq.Substring(1, 1) == "0" && stpseq.Substring(5, 1) != " ") - { - if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Section", "ColumnMode", stpseq.Substring(5, 1)); - } - - // find rtf file (or use the library document temp file) & read it into the field - // acccontent - int Documentid=0; - bool needEntry = false; - if (libdocid != 0 || stpseq.Substring(1, 1) != "0") - { - needEntry = true; - string fname = null; - if (libdocid != 0) - { - Documentid = libdocid; - } - else - { - int num = Convert.ToInt32(stpseq[0]) - 64; - string thenum = num.ToString("d2"); - fname = string.Format("{0}\\rtffiles\\{1}.A{2}", pth, ProcFileName, thenum); - Application.DoEvents(); - SaveSectionDocument(fname, stpseq, SecType, ref Documentid); - if (Documentid == 0) - { - if (MissingDocument==null) MissingDocument = Document.MakeDocument("MISSING FILE IN CONVERSION", null, null, null); - Documentid = MissingDocument.DocID; - } - } - } - if (Userid == null || Userid == "") Userid = "Migration"; - - // test for performance - Content cont; - using(Format fmt2 = format == null ? null : format.Get()) - cont = Content.New(Number, Title, 10000+docstyleindx, fmt2, ci==null?null:ci.ToString(), Dts, Userid); - Entry entry = cont.MyEntry; - if (needEntry) - { - entry.MyDocument = Document.Get(Documentid); - entry.DTS = Dts; - entry.UserID = Userid; - //entry = Entry.MakeEntry(cont.ContentID, Document.Get(Documentid), Dts, Userid); - } - cont.MyZContent.OldStepSequence = ProcNumber + "|" + stpseq; - Item itm = null; - // the stpseq for section records may include a space & some other data. This - // was not part of what is stored in the transition records, so just look at - // the sequence before the space for section records. Then use the first character - // with a '0'. This is what's stored in the transition record, for example, if the - // section was BI, the transition record would have B0 (the reasoning is that - // for steps, this is what could be stored if there were enough steps. - int trindxsp = stpseq.IndexOf(' '); - string trstpseq = trindxsp < 0 ? stpseq : stpseq.Substring(0, 1)+ "0"; - if (dicTrans_ItemIds.ContainsKey(ProcNumber + "|" + trstpseq)) - { - itm = dicTrans_ItemIds[ProcNumber + "|" + trstpseq]; - itm.MyContent = cont; - itm.MyPrevious = FromItem; - itm.DTS = Dts; - itm.UserID = Userid; - if (!itm.IsSavable) ErrorRpt.ErrorReport(itm); - itm.Save(); - dicTrans_ItemIds.Remove(ProcNumber + "|" + trstpseq); - dicTrans_MigrationErrors.Remove(ProcNumber + "|" + trstpseq); - } - else - itm = Item.MakeItem(FromItem, cont, Dts, Userid); - dicTrans_ItemDone[ProcNumber+"|"+trstpseq] = itm; - dicOldStepSequence[itm] = stpseq; - return itm; - } - catch (Exception ex) - { - log.Error("Save Section"); - log.ErrorFormat("oldstepsequence = {0}", stpseq); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - log.ErrorFormat(ex.StackTrace); - } - return null; - } - - private int LookupOldToNew(string lkup) - { - if (dicOldToNew == null) - { - dicOldToNew = new Dictionary(); - //dicOldToNew.Add("", 1); - dicOldToNew.Add("0", 1); - dicOldToNew.Add("0 ", 1); - dicOldToNew.Add("00", 1); - dicOldToNew.Add("01", 2); - dicOldToNew.Add("02", 4); - dicOldToNew.Add("03", 8); - dicOldToNew.Add("04", 16); - dicOldToNew.Add("I", 32); - dicOldToNew.Add("I ", 32); - dicOldToNew.Add("I0", 32); - dicOldToNew.Add("I1", 64); - dicOldToNew.Add("I2", 128); - dicOldToNew.Add("I3", 256); - dicOldToNew.Add("I4", 512); - dicOldToNew.Add("A", 1024); - dicOldToNew.Add("A ", 1024); - dicOldToNew.Add("A0", 1024); - dicOldToNew.Add("A1", 2048); - dicOldToNew.Add("A2", 4096); - dicOldToNew.Add("A3", 8192); - dicOldToNew.Add("A4", 16384); - dicOldToNew.Add("F", 32768); - dicOldToNew.Add("F ", 32768); - dicOldToNew.Add("F0", 32768); - dicOldToNew.Add("F1", 65536); - dicOldToNew.Add("F2", 131072); - dicOldToNew.Add("F3", 262144); - dicOldToNew.Add("F4", 524288); - dicOldToNew.Add("05", 1048576); - dicOldToNew.Add("06", 2097152); - dicOldToNew.Add("07", 4194304); - dicOldToNew.Add("08", 8388608); - dicOldToNew.Add("09", 16777216); - dicOldToNew.Add("0:", 33554432); - dicOldToNew.Add("0;", 67108864); - dicOldToNew.Add("0<", 134217728); - dicOldToNew.Add("0=", 268435456); - dicOldToNew.Add("0>", 536870912); - } - int retval = -1; - try - { - retval = dicOldToNew[lkup]; - } - catch (Exception ex) - { - Console.WriteLine(string.Format("Error in oldtonew {0}", lkup)); - Console.WriteLine(string.Format("Error = {0}", ex.Message)); - } - return retval; - } - private int GetDocStyleIndx(string dstyleindx, FormatInfo format, Item procitem, DocVersion docver) - { - // get the format, if format is set, use it, otherwise walk - if (format == null) - { - format = GetFormat(procitem, docver); - } - int docstyle = LookupOldToNew(dstyleindx); - foreach (DocStyle ds in format.PlantFormat.DocStyles.DocStyleList) - { - if ((ds.OldToNew & docstyle)>0) return (int)ds.Index; - } - Console.WriteLine("Error getting docstyle index"); - return 0; - } - private FormatInfo GetFormat(Item procitem, DocVersion docver) - { - return procitem.MyItemInfo.ActiveFormat; - //while (procitem.MyItemInfo.a .MyContent.MyFormat == null) - //{ - // // find the first sibling - // while (procitem.PreviousID != null) - // procitem = procitem.MyPrevious; - // if (procitem.ItemPartCount == 0) return docver.MyDocVersionInfo.ActiveFormat; - // // find the parent node - // procitem = procitem.ItemParts[0].MyContent.ContentItems[0].MyItem; - //} - //return procitem.MyContent.MyFormat; - } - //private FormatInfo GetFormat(DocVersion docver) - //{ - // if (docver.MyDocVersionInfo.MyFormat != null) return docver.MyDocVersionInfo.MyFormat; - // return GetFormat(docver.MyDocVersionInfo.MyFolder); - //} - //private FormatInfo GetFormat(FolderInfo folder) - //{ - // if (folder.MyFormat != null) return folder.MyFolderInfo.MyFormat; - // return GetFormat(folder.MyParent); - //} - private string SectTitle(OleDbConnection cn, DataRowView dr, bool UseMultiLineSectionTitle, bool ConvertCaret) - { - string tbuff = null; - string menustr = null; - - if (UseMultiLineSectionTitle) - { - bool titleInMemo = false; - // for accessory pages... - if (dr["Step"].ToString().Substring(1, 1) != "0") - { - // The long section title is stored on a record with the "~" character. - // This was done since originally the actual accessory page data was stored in the memo - // field, so the long title could not be stored there, another record had to be used. - OleDbDataAdapter da = new OleDbDataAdapter("select * from " + ProcFileName + " where [Step] like '" + dr["Step"].ToString().Substring(0, 1) + "~';", cn); - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - if (ds.Tables[0].Rows.Count == 1) - { - DataRow row = ds.Tables[0].Rows[0]; - tbuff = TextConvert.ConvertText(row["Textm"].ToString(),ConvertCaret); - if (tbuff != null && tbuff != "") titleInMemo = true; - } - else // no long section title existed for this accessory page - tbuff = TextConvert.ConvertText(dr["Text"].ToString().PadRight(130, ' ').Substring(0, 75).TrimEnd(), ConvertCaret); - } - catch (Exception ex) - { - log.ErrorFormat("Error getting long section title {0}", ex.Message); - } - da.Dispose(); - } - // For step sections, the long section title is stored on the section record - // (see above comment for accessory pages to see the difference) - else - { - tbuff = TextConvert.ConvertText(dr["TextM"].ToString().Trim(), ConvertCaret); - } - - //// TESTS were run & it looked like that whitespace was removed before saving, - //// so, put up a message box if find out otherwise.... - //int nl = tbuff.IndexOf("\n"); - //if (nl > -1) - // MessageBox.Show("multiline text for section title, fix this!!"); - - //// remove newlines & any other escape/whitespace chars. - int nl = tbuff.IndexOf("\n"); - if (nl > -1 || titleInMemo) - { - - string tmpstr = tbuff.Replace("\r", ""); - tmpstr = tmpstr.Replace("\t", ""); - tmpstr = tmpstr.Replace("\n", " "); - // get rid of multiple spaces - while (tmpstr.IndexOf(" ") > -1) tmpstr = tmpstr.Replace(" ", " "); - tbuff = tmpstr; - if (tbuff.Substring(tbuff.Length - 1, 1) == " ") tbuff = tbuff.Substring(0, tbuff.Length - 1); - menustr = tbuff; - } - else - { - menustr = TextConvert.ConvertText(dr["Text"].ToString().PadRight(80, ' ').Substring(0, 75).TrimEnd(), ConvertCaret); - } - } - else - { // format does not include long section title - menustr = TextConvert.ConvertText(dr["Text"].ToString().PadRight(80, ' ').Substring(0, 75).TrimEnd(), ConvertCaret); - } - return menustr; - } - private Item MigrateSection(Item procitem, string procnum, OleDbConnection cn, DataRowView dr, DataTable dt, Item FromItem, bool isSubSection, string pth, DocVersion docver) - { - Int32 thesectid = 0; - bool isautogen = false; - string stype = dr["type"].ToString(); - string s = dr["text"].ToString().PadRight(130, ' '); - string num = s.Substring(85, 20).TrimEnd(); - string fmt = s.Substring(75, 10).TrimEnd(); - if (fmt == "") fmt = null; - bool ismulti = false; - bool conv_caret = true; - - // sectFormat is a local that represents the format to be used by this section. - // Note that if the format is set for this section, check it against what the inherited - // value would be (for example, what the format is for the set), if they are the same - // clear the format at the section level. - FormatInfo sectFormat = null; - FormatInfo docverFormat = docver.MyDocVersionInfo.ActiveFormat; - if (fmt != null&& fmt !="") // Is there a long section title (from format flag) - sectFormat = GetFormat(fmt); - else // either from this format, or the plant. - sectFormat = docverFormat; - if (sectFormat != null) - { - ismulti = sectFormat.PlantFormat.FormatData.SectData.StepSectionData.UseMultiLineSectionTitle; - conv_caret = sectFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta; - } - if (fmt != null && fmt != "") if (fmt == docverFormat.Name) fmt = null; - string title = SectTitle(cn, dr, ismulti, conv_caret); - string init = dr["initials"].ToString().Trim(); - string sequence = dr["CSequence"].ToString().PadRight(10); - string step = dr["CStep"].ToString(); - int libDocid = 0; - - DateTime dts = GetDTS(dr["Date"].ToString(), dr["Time"].ToString()); - - ConfigInfo ci = new ConfigInfo(null); - ci.AddItem("Section", "OldType", stype); - - - // for steps sections... - // Step Section Header Format: - // A0 1X2S51 &Y - // ^^^^^^^^^^^^ - // ||||||||||||| - // ||||||||||||`- 'Y','N', or blank signals to print section header - lib/section/addsec.c - // |||||||||||`-- (bits) Auto Indent, Editable Data, Checkoff Header Type - lib/section/addsec.c - // ||||||||||`--- blank - // ||||||||`----- Link With Enhanced Document ' '-Default(not determined) 0-NO 1-YES - // |||||||`------ MetaSection - number of subsections is given - // ||||||`------- S-Separate(PageBreak); T-Continuous; ' '-Default - // |||||`-------- Column mode (1,2,3,' '-default) - // ||||`--------- X -only proc section; x -orig. proc; ' ' -other - // |||`---------- Position within the procedure - // ||`----------- ALWAYS leave blank - // |`------------ Step Section Header marker - // `------------- Internal section number (starts at A) - - if (step.Substring(1, 1) == "0") - { - // if this section has the original edit section flag (sequence[2]) save the id. - - // set pagination, continuous, separate. If blank, don't create attribute - uses format default. - if (sequence.Substring(4, 1) == "T") - { - ci.AddItem("Section", "Pagination", "C"); - } - else if (sequence.Substring(4, 1) == "S") - { - ci.AddItem("Section", "Pagination", "S"); - } - - // Step: linked to enhanced (!exist = N) - if (sequence.Substring(7, 1) == "1") - { - ci.AddItem("Step", "LnkEnh", "Y"); - } - char cbittst = sequence.PadRight(10)[8]; - if (cbittst == ' ') - cbittst = '\0'; - else - { - // determine if TOC element (!exist = N) - if ((cbittst & TOC) > 1) - { - ci.AddItem("Section", "TOC", "Y"); - } - // determine if autogenerated section (!exist = N) - if ((cbittst & AUTOGEN) > 1) - { - isautogen = true; - ci.AddItem("Section", "AutoGen", "Y"); - } - } - // Here are subsection flags, i.e. the following are only set if this - // is a subsection. - bool didsub = false; - if (isSubSection) - { - // Subsection: editable (!exist = Y) - if ((cbittst & EDDATA) > 0) - { - ci.AddItem("SubSection", "Edit", "N"); - } - - // Subsection: print section headers (!exist = Y) - if ((cbittst & PH) > 0) - { - didsub = true; - ci.AddItem("SubSection", "PH", "N"); - } - - // Subsection: autoindent (!exist = Y) - if ((cbittst & AUTOIND) > 0) - { - ci.AddItem("SubSection", "AutoIndent", "N"); - } - } - if (!didsub && sequence.Substring(4, 1) == "N") - { - ci.AddItem("SubSection", "PH", "N"); - } - } - else - { - // Accessory Section Format: - // AI 1 2 - // ^^ ^ ^ - // || | | - // || | `- # of pages (ASCII value minus 48) - // || `--- Position within the procedure - // |`----- Acc. page type (A,I, or F) - // `------ Internal section number (starts at A) - ci.AddItem("Section", "NumPages", sequence.Substring(3, 1)); - - // see if it's a libdoc too - string thekey = procnum.PadRight(20) + step.Substring(0, 1).PadRight(10); - if (dicLibDocRef.ContainsKey(thekey)) - { - // if it is a library document, see if the section record has already been - // saved. If it has, just use this section id, otherwise, create the - // section record with info from the library document file. - libDocid = dicLibDocRef[thekey]; - } - } - Item secitem = AddSection(procitem, num, title, stype, dts, init, ci, step + sequence, fmt, libDocid, pth, FromItem, docver); - thesectid = secitem.ItemID; - - // if the editsectid hasn't been set yet, set it to this section id, i.e. the first - // one processed. Then if this section has the original edit section flag (sequence[2]) - // save the id. The first step is necessary in case there is no original edit section - // flag set, so that the first section is the default one to get opened in edit. - if (EditSectId==0)EditSectId = thesectid; - if (libDocid<1 && step[1] == '0' && (sequence[2] == 'x' || sequence[2] == 'X')) - EditSectId = thesectid; - // ContentType (2 in the following call) are: - // 0 = structure, - // 1 = procedure, - // 2 = section, - // 3 = step - // 4 = branch - - // fromtype values are (see steps.cs too) - // 1 = procedure, - // 2 = section, - // 3 = caution - // 4 = note - // 5 = RNO - // 6 = step - // 7 = table - - if (!isautogen) - { - // Process the Data Table - First look for High Level Steps - string sQry = string.Format("Step like '[{0}]%' and Sequence='S'", dr["Step"].ToString().Substring(0, 1)); - DataView dv = new DataView(dt, sQry, "StepNo", DataViewRowState.CurrentRows); - Item FrItem = null; - frmMain.pbStepMaximum = dt.Rows.Count; - frmMain.pbStepValue = 0; - foreach (DataRowView drv in dv) - { - FrItem = MigrateStep(cn, dt, drv, FrItem, conv_caret, pth, docver); - if (secitem.MyContent.ContentParts.Count == 0) - { - // type 6 is step - secitem.MyContent.ContentParts.Add(6, FrItem); - if (!secitem.MyContent.IsSavable) ErrorRpt.ErrorReport(secitem.MyContent); - secitem.MyContent.Save(); - } - } - } - return secitem; - } - private void LoadSection(DataSet ds, OleDbDataAdapter da, string FileName) - { - try - { - da.Fill(ds, "Sections"); - DataTable dt = ds.Tables["Sections"]; - dt.CaseSensitive = true; - dt.Columns.Add("CStep", System.Type.GetType("System.String")); - dt.Columns.Add("CSequence", System.Type.GetType("System.String")); - // set the cstep & csequence - couldn't do it in the add because it needed a sql function - foreach (DataRow drw in ds.Tables["Sections"].Rows) - { - drw["CStep"] = TextConvert.ConvertSeq(drw["Step"].ToString()); - drw["CSequence"] = TextConvert.ConvertSeq(drw["Sequence"].ToString()); - } - dt.Columns.Add("StepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CStep,2,1),'System.Char'),'System.Int32')-48"); - dt.Columns.Add("Level", System.Type.GetType("System.Int32"), "Len(CSequence)"); - dt.Columns.Add("SubStepNo", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CSequence,Len(CSequence),1),'System.Char'),'System.Int32')-48"); - dt.Columns.Add("locb", System.Type.GetType("System.Int32"), "Convert(Convert(Substring(CSequence,2,1),'System.Char'),'System.Int32')-48"); - } - - catch (Exception ex) - { - FileInfo fi; - switch (ex.Message) - { - case "Index file not found.":// then delete inf file - fi = new FileInfo(frmMain.tbSourceText + "\\" + FileName + ".inf"); - fi.Delete(); - LoadSection(ds, da, FileName);// Try Again - break; - case "External table is not in the expected format.": // then pad dbt file with 128 zeros. - fi = new FileInfo(frmMain.tbSourceText + "\\" + FileName + ".dbt"); - FileStream fs = fi.OpenWrite(); - fs.Position = fs.Length; - byte[] buf = new byte[128]; - for (int i = 0; i < 128; i++) buf[i] = 0; - fs.Write(buf, 0, 128); - fs.Close(); - LoadSection(ds, da, FileName);// Try Again - break; - default: // Unrecognized error - Console.WriteLine("Unrecognized error: error = {0}", ex.Message); - log.ErrorFormat("File - {0}.DBF\r\n\r\n{1}\r\n\r\n{2}", FileName, ex.Message, ex.InnerException); - break; - } - } - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/Settings.cs b/PROMS/DataLoader/Settings.cs deleted file mode 100644 index 5270133f..00000000 --- a/PROMS/DataLoader/Settings.cs +++ /dev/null @@ -1,28 +0,0 @@ -namespace DataLoader.Properties { - - - // This class allows you to handle specific events on the settings class: - // The SettingChanging event is raised before a setting's value is changed. - // The PropertyChanged event is raised after a setting's value is changed. - // The SettingsLoaded event is raised after the setting values are loaded. - // The SettingsSaving event is raised before the setting values are saved. - internal sealed partial class Settings { - - public Settings() { - // // To add event handlers for saving and changing settings, uncomment the lines below: - // - // this.SettingChanging += this.SettingChangingEventHandler; - // - // this.SettingsSaving += this.SettingsSavingEventHandler; - // - } - - private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) { - // Add code to handle the SettingChangingEvent event here. - } - - private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) { - // Add code to handle the SettingsSaving event here. - } - } -} diff --git a/PROMS/DataLoader/Steps.cs b/PROMS/DataLoader/Steps.cs deleted file mode 100644 index ccc34297..00000000 --- a/PROMS/DataLoader/Steps.cs +++ /dev/null @@ -1,722 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; -using System.Text.RegularExpressions; -using Volian.Controls.Library; - -namespace DataLoader -{ - public partial class Loader - { - private Item AddStep(OleDbConnection cn, string StepType, string Textm, string Recid, string stpseq, string structtype, Item FromItem, DateTime dts, string userid, bool conv_caret, string pth, DocVersion docver, FormatInfo fmt,Item parentItem, int frType, string seqRoTran) - { - //if (ProcNumber + "|" + stpseq == "STN FP-202|Q2S2") - // Console.WriteLine("here"); - Content content = null; - Item item = null; - - frmMain.UpdateLabels(0, 0, 1); - ConfigInfo ci = new ConfigInfo(null); - ci.AddItem("History", "RecID", Recid); - ci.AddItem("History", "ProcName", ProcFileName.ToUpper()); - if (MultiUnitCount > 0) - { - string apple = AddApplicability(Recid); - if(apple != null) - ci.AddItem("MasterSlave", "Applicability", apple); - } - string stptext = null; - if (userid == null || userid == "") userid = "Migration"; - int tok = -1; - //char[] chrarr = { '\x1', '\x2', '\x3', '\x5' }; - Textm = Textm.Replace("\\", ""); - char[] chrarr = { '\x1', '\x2', '\x3' }; - try - { - // the textm field has step text, but also may have other text stored - // with it with a 'token' as a separator (see below). - tok = Textm.IndexOfAny(chrarr); - - // This will find a continuous action flag without finding a hanging indent - if (tok == -1 && Textm.Length > 0 && Textm[Textm.Length - 1] == '\x5') - tok = Textm.Length - 1; - - // if this is bge, handle some special cases for bold/underline next that were not - // getting processed from regular expression, as defined in comments for each case below: - if (fmt.PlantFormat.FormatData.PrintData.SpecialCaseCalvert) - { - // get step type, and check its format for bold. BGE had data that was high5 (bolded step) - // with the bold of the next word character, but it was redundant - if (StepType[0] == '\u2591') - StepType = "0" + StepType.Substring(1, StepType.Length - 1); - if (StepType[0] == '\u2592') - StepType = "1" + StepType.Substring(1, StepType.Length - 1); - if (StepType[0] == '\u2524') - StepType = "4" + StepType.Substring(1, StepType.Length - 1); - int stptype = 0; - try - { - stptype = Convert.ToInt32(StepType) + 1; - } - catch (Exception myex) - { - Console.WriteLine(myex.Message); - } - bool isbold = (stptype == 41); // This is hardcoded for BGE only - if (isbold && Textm.Contains("\x13")) Textm = Textm.Replace("\x13", ""); - - // BGE was not migrating a few styles on next word correctly because of the other - // characters after the hex, i.e. '[', '(', etc (see comments on specific cases). - // The regular expression that handled replacing the 'style next word' hex flag was - // not working with those. Handle those special cases here. - - int indxH = -1; - int indxHE = -1; - if (Textm.Contains("\x13")) - { - if (Textm.Contains("\x13[")) // bold before '[' - { - indxH = Textm.IndexOf("\x13["); - indxHE = Textm.IndexOf("]", indxH); - Textm = Textm.Insert(indxHE+1, @"\b0 "); - Textm = Textm.Replace("\x13[", @"\b ["); - } - if (Textm.Contains("\x13(")) // bold before '(' - { - indxH = Textm.IndexOf("\x13("); - indxHE = Textm.IndexOf(")", indxH); - Textm = Textm.Insert(indxHE+1, @"\b0 "); - Textm = Textm.Replace("\x13(", @"\b ("); - } - if (Textm.Contains("\x13{")) // bold before '{' - { - indxH = Textm.IndexOf("\x13{"); - indxHE = Textm.IndexOf(" ", indxH); - Textm = Textm.Insert(indxHE + 1, @"\b0 "); - Textm = Textm.Replace("\x13{", @"\b {"); - } - if (Textm.Contains("\x13}")) // bold before '}' - { - indxH = Textm.IndexOf("\x13}"); - indxHE = Textm.IndexOf(" ", indxH); - if (indxHE == -1) // add the bold off to end of string (no space needed at end) - Textm = Textm + @"\b0"; - else - Textm = Textm.Insert(indxHE + 1, @"\b0 "); - Textm = Textm.Replace("\x13}", @"\b }"); - } - if (Textm.Contains("\x13\xa0")) // bold before hardspace - { - indxH = Textm.IndexOf("\x13\xa0"); - indxHE = Textm.IndexOf(" ", indxH); - if (indxHE == -1) // add the bold off to end of string (no space needed at end) - Textm = Textm + @"\b0"; - else - Textm = Textm.Insert(indxHE + 1, @"\b0 "); - Textm = Textm.Replace("\x13\xa0", "\\b \xa0"); - } - if (Textm.Contains("\x13 ")) // bold before a space, switch bold & space - Textm = Textm.Replace("\x13 ", " \x13"); - } - - // BGE also had special cases for underline next word \x17 - if (Textm.Contains("\x17\\b")) // before bold on - { - indxH = Textm.IndexOf("\x17\\b"); - indxHE = Textm.IndexOf(@"\b0", indxH); - Textm = Textm.Insert(indxHE+1, @"\ulnone "); - Textm = Textm.Replace("\x17\\b", @"\ul\b"); - } - if (Textm.Contains("\x17\x13")) // before bold next word token - { - indxH = Textm.IndexOf("\x17\x13"); - indxHE = Textm.IndexOf(" ", indxH); - Textm = Textm.Insert(indxHE + 1, @"\ulnone "); - Textm = Textm.Replace("\x17\x13", "\\ul\x13"); - } - } - if (tok < 0) - stptext = TextConvert.ConvertText(Textm, conv_caret); - else - stptext = TextConvert.ConvertText(Textm.Substring(0, tok), conv_caret); - //string stpTextOrg = stptext; - - string seqcvt = stpseq; - - //check for Placekeeper flag - if (Recid[0] == 9617) //(Recid[0] != '0') // placekeeper Recid[0] & 0x80 - ci.AddItem("Step", "Placekeeper", "Y"); - else if (Recid[0] == 8801) // sub step Placekeeper with Continuous Action - ci.AddItem("Step", "Placekeeper", "C"); - string newstptyp = null; - bool ManualPagebreak = false; - char cbittst = StepType.PadRight(2)[0]; - byte cbittstb = (byte) StepType.PadRight(2)[0]; - - //Console.WriteLine(string.Format("AddStep() StepType {0} cbitst = {1} OR'd 0x80 = {2}",StepType,Convert.ToInt16(cbittst),(cbittst & 0x80))); - if (cbittst != ' ' && (cbittst & 0xFF80) > 1)//(cbittst & 0x80) > 1) - { - ManualPagebreak = true; - ci.AddItem("Step", "ManualPagebreak", "True"); - // conversion from 16bit characters to 32bit strings handles the higher bits differently. - // Thus we cannot do normal 'or'ing/'and'/ing of 0x7f & 0x80 to just get the step - // type without the pagebreak bit. The following two cases 'hardcode' the steptype - // based on that problem. - if ((Convert.ToInt16(cbittst)) == 9508) //page break on HIGH5 step type (40) - newstptyp = "40"; - else if ((Convert.ToInt16(cbittst)) == 9618) //page break on LOSS OF AC type - newstptyp = "17"; - else - newstptyp = StepType.Substring(1, 1); - } - // Need the content record for the RO & transitions. - //content = Content.MakeContent(null, stptext, 20000 + int.Parse(newstptyp!=null?newstptyp:StepType),null, ManualPagebreak?ci.ToString():null, dts, userid); - // 20000 flags step type item & 1 adjusts for 'base' in format files. - int contenttype = (structtype == "R") ? 20040 : 20001 + int.Parse(newstptyp != null ? newstptyp : StepType); - content = Content.New(null, stptext.Replace("", "\\\\"), contenttype, null, ci.ToString(), dts, userid); - content.MyZContent.OldStepSequence = ProcNumber + "|" + stpseq.TrimEnd(" ".ToCharArray()); ; - - // Before we save it, handle RO & Transitions tokens. - int tokrt = Textm.IndexOf('\x15'); - bool txtdirty = false; - bool isROTable = false; - int rotype = 0; - if (tokrt > -1) - { - txtdirty = true; - stptext = MigrateRos(cn, stptext, seqRoTran, content, docver, conv_caret, ref rotype); - stptext = stptext.TrimEnd(" ".ToCharArray()); - // if this is a table RO, then save a flag in the config - isROTable = (rotype == 2 || rotype == 3); - } - tokrt = Textm.IndexOf('\x3a6'); - if (tokrt > -1) - { - txtdirty = true; - stptext = MigrateRos(cn, stptext, seqRoTran, content, docver, conv_caret, ref rotype); - stptext = stptext.TrimEnd(" ".ToCharArray()); - } - - // 16-bit code has the following two defines. - // #define TransitionMarker 0xC2 - // #define ReferenceMarker 0xCB - // these two characters get converted (to unicode) from ado.net - // use the unicode chars. - char[] chrrotrn = { '\x252C', '\x2566' }; - tokrt = Textm.IndexOfAny(chrrotrn); - _TransitionMigrationErrors = new List(); - if (tokrt > -1) - { - txtdirty = true; - stptext = MigrateTrans(cn, stptext, seqRoTran, content, pth); - stptext = stptext.TrimEnd(" ".ToCharArray()); - } - //string fixStpText = FixStepText(stptext,content.Type); - string fixStpText = ""; - if (IsATable(content.Type)) - { - bool hasBorder = !WithoutBorder(content.Type); - fixStpText = ConvertTableToGrid(stptext, content, fmt, isROTable, hasBorder ? GridLinePattern.Single : GridLinePattern.None ); - frmMain.AddInfo("Memory After Grid Convert {0}", GC.GetTotalMemory(true)); // This will force a Garbage Collection - frmMain.AddInfo("VlnFlexGrid Counts: {0}, {1}, {2}", VlnFlexGrid.CountCreated, VlnFlexGrid.CountNotDisposed, VlnFlexGrid.CountNotFinalized); - frmMain.AddInfo("StepRTB Counts: {0}, {1}, {2}", StepRTB.CountCreated, StepRTB.CountNotDisposed, StepRTB.CountNotFinalized); - int? typ = ConvertTableType(content, fmt); - if (typ != null) content.Type = typ; - else _ContentMigrationErrors.Add(content.ContentID, null); - } - else - fixStpText = FixStepText(stptext); - if (fixStpText != stptext) - { - txtdirty = true; - stptext = fixStpText; - } - if (txtdirty) - { - content.Text = stptext.Replace("", "\\\\"); - //content.Save(); - } - if (!content.IsSavable) ErrorRpt.ErrorReport(content); - List migrationerrors = null; - if (_ContentMigrationErrors.ContainsKey(content.ContentID)) - migrationerrors = _ContentMigrationErrors[content.ContentID]; - content = content.Save(); - // check if already created thru new during transition migration... - if (dicTrans_ItemIds.ContainsKey(ProcNumber + "|" + seqRoTran)) - { - item = dicTrans_ItemIds[ProcNumber + "|" + seqRoTran]; - item.MyPrevious = FromItem; - item.MyContent = content; - item.DTS = dts; - item.UserID = userid; - if (!item.IsSavable) ErrorRpt.ErrorReport(item); - item = item.Save(); - dicTrans_ItemIds.Remove(ProcNumber + "|" + seqRoTran); - dicTrans_MigrationErrors.Remove(ProcNumber + "|" + seqRoTran); - } - else - item = Item.MakeItem(FromItem, content, content.DTS, content.UserID); - - // If we converted a Table to a Grid, then insert an Annotation to alert the user to verify it - if (IsATable(content.Type))//item.MyContent.MyGrid != null) - { - ItemAnnotation ia = item.ItemAnnotations.Add(VerificationRequiredType); - ia.SearchText = "Verify Table Conversion"; - ia.UserID = "Migration"; - item.Save(); - } - if (InvalidROs.Count > 0) - { - foreach (string str in InvalidROs) - { - ItemAnnotation iaro = item.ItemAnnotations.Add(MigrationErrorType); - iaro.SearchText = str; - iaro.UserID = "Migration"; - } - item.Save(); - InvalidROs.Clear(); - } - if (frType > 0) - { - //using (Content c = Content.Get(parentItem.ContentID)) - //{ - // c.ContentParts.Add(frType, item); - // if (!c.IsSavable) ErrorRpt.ErrorReport(c); - // c.Save(); - //} - parentItem.MyContent.ContentParts.Add(frType, item); - if (!parentItem.MyContent.IsSavable) ErrorRpt.ErrorReport(parentItem.MyContent); - parentItem.MyContent.Save(); - } - - // Remove styles that user entered but are automatically done via the format - string tstr = null; - using (ItemInfo myInfo = item.MyItemInfo) // do this so that ItemInfo doesn't stay in cache - tstr = myInfo.RemoveRtfStyles(content.Text, fmt); - if (tstr != content.Text) - { - item.MyContent.Text = tstr; - item.Save(); - } - - if (migrationerrors != null) - { - foreach (string str in migrationerrors) - { - ItemAnnotation ia = item.ItemAnnotations.Add(MigrationErrorType); - ia.SearchText = str; - ia.UserID = "Migration"; - } - if (!item.IsSavable) ErrorRpt.ErrorReport(item); - item.Save(); - } - if (_TransitionMigrationErrors.Count > 0) - { - foreach (string str in _TransitionMigrationErrors) - { - if (!dicTrans_MigrationErrors.ContainsKey(str)) - dicTrans_MigrationErrors.Add(str, new List()); - dicTrans_MigrationErrors[str].Add(item); - } - } - dicTrans_ItemDone[ProcNumber + "|" + seqRoTran] = item; - dicOldStepSequence[content] = seqcvt; - } - catch (Exception ex) - { - frmMain.AddError(ex, "AddStep {0}",stpseq); - //Console.WriteLine("{0} {1}", ex.GetType().Name, ex.Message); - log.Error("Save Step"); - log.ErrorFormat("oldstepsequence = {0}", stpseq); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - log.ErrorFormat(ex.StackTrace); - item = null; - } - - // now add on any support pieces of text associated with the step. - // These include: - // '\1' comment - // '\2' multiple change ids and/or change message - // '\3' linked sequence - // '\3\3'override tab - // '\5' continuous action summary flag (only if last char in string) - // This assumes that these tokens are stored in reverse order that - // they are processed. - - - bool recdirty = false; - try - { - - if (tok >= 0 && tok != Textm.Length) - { - string tkstring = Textm.Substring(tok); - int nxttok = 0; - - if (tkstring[tkstring.Length - 1] == '\x5') // Continuous Action Summary - { - recdirty = true; - //if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Step", "ContActSum", "True"); - tkstring = tkstring.Substring(0, tkstring.Length - 1); // strip off Continuous Action Token - } - - if ((nxttok = tkstring.IndexOf("\x3\x3")) > -1) // Enhanced Override Tab - { - //Console.WriteLine("Override Tab: {0}", tkstring.Substring(nxttok + 1)); - ci.AddItem("Step", "OverrideTab", tkstring.Substring(nxttok + 2)); - recdirty = true; - //recdirty |= AddContentDetail(content, STP_OVR_TAB, tkstring.Substring(nxttok + 2)); - tkstring = tkstring.Substring(0, nxttok); - } - - if ((nxttok = tkstring.IndexOf("\x3")) > -1) //Linked Sequence - { - //Console.WriteLine("Linked Seq: {0}", tkstring.Substring(nxttok + 1)); - ci.AddItem("Step", "LinkedSeq", TextConvert.ConvertSeq(tkstring.Substring(nxttok + 1))); - recdirty = true; - //recdirty |= AddContentDetail(content, STP_LNK_SEQ, TextConvert.ConvertSeq(tkstring.Substring(nxttok + 1))); - tkstring = tkstring.Substring(0, nxttok); - } - // verify that there are format flags for doing multiple change ids (DoMultipleChangeIDs) & - // getting the change bar message from the editor (ChgBarMessageFromEdit), if these - // two flags aren't set, don't migrate the data. - // This was put in to fix B2012-258. An extensive search/debug session was done in 16bit to - // see how these format flags and the data interracted. For OHLP/HLP, which only has - // ChgBarMessageFromEdit flag, the data after the Multiple change id token was not used in - // 16bit, at least anywhere that could be found when running the program through the debugger. - if (fmt.PlantFormat.FormatData.ProcData.ChangeBarData.ChgBarMessageFromEdit && - fmt.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds) - { - if ((nxttok = tkstring.IndexOf("\x2")) > -1) // Multiple Change Ids - { - string tmpchgid = tkstring.Substring(nxttok + 1); - if (tmpchgid.Length > 0) - { - //Console.WriteLine("Multiple Change ID: {0}", tkstring.Substring(nxttok + 1)); - ci.AddItem("Step", "ChangeID", tkstring.Substring(nxttok + 1)); - recdirty = true; - //recdirty |= AddContentDetail(content, STP_MULT_CHGID, tkstring.Substring(nxttok + 1)); - } - tkstring = tkstring.Substring(0, nxttok); - } - } - - if ((nxttok = tkstring.IndexOf("\x1")) > -1) // Comment - { - // add the comment to annotation table. Set type to comment. - //log.InfoFormat("Comment text: {0}", tkstring.Substring(nxttok + 1)); - Annotation annot = Annotation.MakeAnnotation(item, CommentType, null, tkstring.Substring(nxttok + 1), null, dts, userid); - } - } - - // also see if a check-off needs added. - if (Recid[0] != '0' && Recid[0] != '@') // the @ was in some of wolf creek data - we think it's just bad data. - { - recdirty = true; - string chkindx = Recid[0].ToString(); - //if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Step", "CheckOffIndex", chkindx); - } - - // here's where it knows if it's a linked step (or in processstep) - if (Recid[1] != '0') - { - // do linked step stuff. - } - - // if checkoffs or the continuous action summary flag, save the xml. - if (recdirty) - { - if (ci.ItemCount != 0) content.Config = ci.ToString(); - if (!content.IsSavable) ErrorRpt.ErrorReport(content); - content.Save(); - } - } - catch (Exception ex) - { - //Console.WriteLine("Subtexts: {0} {1}", ex.GetType().Name, ex.Message); - frmMain.AddError(ex, "AddStep 2 {0}", stpseq); - log.Error("Save Step part 2"); - log.ErrorFormat("oldstepsequence = {0}", stpseq); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - log.ErrorFormat(ex.StackTrace); - } - return item; - } - - private int? ConvertTableType(Content content, FormatInfo fmt) - { - // set the type to the first format type from this step type walking up the stepdata format - // data until finding a !InActive. - bool inactive = true; - int indx = (int)content.Type - 20000; - while (inactive) - { - StepData stpData = fmt.PlantFormat.FormatData.StepDataList[indx]; - if (!stpData.Inactive) return (Convert.ToInt32(stpData.Index) + 20000); - // find parent node, i.e. Type="parentType" - string parType = stpData.ParentType; - foreach (StepData sd in fmt.PlantFormat.FormatData.StepDataList) - if (parType == sd.Type) indx = (int)sd.Index; - inactive = stpData.Inactive; - } - return null; - } - - private Regex _ReplaceSpaceNewLine = new Regex(@"(?<=\\[^' \\?\r\n\t]*) (?=\r\n)"); - private Regex _ReplaceTokenSpaceToken = new Regex(@"(?<=\\[^' \\?\r\n\t]*) (?=\\)"); - private string FixStepText(string stepText) - { - stepText = stepText.Replace("\xF8", @"\'f8"); - stepText = stepText.Replace(@"\par ", "\r\n"); - stepText = _ReplaceTokenSpaceToken.Replace(stepText, ""); - //stepText = stepText.Replace(@"\v0 \", @"\v0\"); - //Change Token Order to match RTB output - stepText = stepText.Replace(@"\v0\b0", @"\b0\v0"); - stepText = stepText.Replace(@"\b0\ulnone", @"\ulnone\b0"); - stepText = _ReplaceSpaceNewLine.Replace(stepText, ""); - return stepText; - } - - private Regex _RemoveComments = new Regex(@"\\v .*?\\v0( |$)"); - - private string ConvertTableToGrid(string stepText, Content content, FormatInfo fmt, bool isROTable, GridLinePattern border) - { - //string savethis = stepText; - string strGrid = ""; - int tablerodbid = -1; - string tableroid = ""; - string tableroprefix = ""; - string tablerosuffix = ""; - if (isROTable) - { - // parse out and save the ROid and ROdb information - // We will also need to re-attach the RO link prefix and suffix - tableroprefix = @"\v 1) - { - int l = s.Length; - if ("!*".IndexOf(s[l - 2]) > -1) - { - if (l > 2) retval = s.Substring(0, l - 2); - } - else - { - retval = s.Substring(0, l - 1); - } - } - return retval; - } - private string GetStructType(string s) - { - string retval = "S"; - if (s.Length > 1) - { - int l = s.Length; - if ("!*".IndexOf(s[l - 2]) > -1) - { - if (s[l - 2] == '!') retval = "C"; - else retval = "N"; - } - else - { - if (s[l - 1] == '$') retval = "R"; - if (s[l - 1] == '#') retval = "T"; - } - } - return retval; - } - private Item MigrateStep(OleDbConnection cn, DataTable dt, DataRowView drv, Item FromItem, bool conv_caret, string pth, DocVersion docver, FormatInfo fmt, Item parentItem, int frTypeParam) - { - try - { - string sType = GetStructType(drv["CSequence"].ToString()); - Item item = AddStep(cn, drv["Type"].ToString() - , (drv["textm"] == DBNull.Value ? drv["Text"].ToString() : drv["Textm"].ToString()) - , drv["Recid"].ToString(), drv["CStep"].ToString() + drv["CSequence"].ToString(), "S", FromItem // was str - , GetDTS(drv["Date"].ToString(), drv["Time"].ToString()), drv["Initials"].ToString(), conv_caret, pth, docver, fmt, parentItem, frTypeParam - , drv["Step"].ToString() + drv["CSequence"].ToString()); - - //Content cont = Content.MakeContent(null,(drv["textm"] == DBNull.Value ? drv["Text"].ToString() : drv["Textm"].ToString()),drv["Type"]+20000,null,null, - // GetDTS(drv["Date"].ToString(), drv["Time"].ToString()), drv["Initials"].ToString()); - //Item item = Item.MakeItem(FromItem, cont, cont.DTS, cont.UserID); - //Structure str = AddStructure(FromType, FromID, 3, tmpid, drv["CStep"].ToString() + drv["CSequence"].ToString(), - // GetDTS(drv["Date"].ToString(), drv["Time"].ToString()), drv["Initials"].ToString()); - //Step stp = AddStep(cn, drv["Type"].ToString() - // , (drv["textm"] == DBNull.Value ? drv["Text"].ToString() : drv["Textm"].ToString()) - // , drv["Recid"].ToString(), drv["CStep"].ToString() + drv["CSequence"].ToString(), "S", str - // , GetDTS(drv["Date"].ToString(), drv["Time"].ToString()), drv["Initials"].ToString()); - Dictionary dicStep = new Dictionary(); - dicStep[drv["CSequence"].ToString()] = item; - Dictionary> dicStruct = new Dictionary>(); - Dictionary dicBase = new Dictionary(); - dicStruct[drv["CSequence"].ToString()] = dicBase; - dicBase[""] = item; - // Logic to add Sub-steps - string sQry = "CStep = '" + drv["CStep"].ToString() + "' and CSequence <> 'S'"; - // sort order - for sections use currentrows. - DataView dv = new DataView(dt, sQry, "StepNo,Level,SubStepNo", DataViewRowState.CurrentRows); - //dataGrid1.DataSource=dv; - //Loop through DataView and add Steps one at a time - //Console.WriteLine("={0}",drv["Step"]); - int FrType = 0; // type of relationship (not type of step) - Item FrItem = item; - foreach (DataRowView drvs in dv) - { - //Console.WriteLine(">{0}",drvs["CStep"]); - - string sParent = GetParent(drvs["CSequence"].ToString()); - if (dicStep.ContainsKey(sParent)) - { - if (dicStep[sParent] == null) Console.WriteLine("jcb"); - Item itemp = dicStep[sParent]; - sType = GetStructType(drvs["CSequence"].ToString()); - Dictionary dicStr = dicStruct[sParent]; - // check if a step type of 'sType' exists to see if child/sibling - //Content contc = Content.MakeContent(null,(drvs["textm"] == DBNull.Value ? drvs["Text"].ToString() : drvs["Textm"].ToString()),drvs["Type"]+20000,null,null, - // GetDTS(drvs["Date"].ToString(), drvs["Time"].ToString()), drvs["Initials"].ToString())); - Item itemc = null; - if (dicStr.ContainsKey(sType)) // next sibling - { - FrItem = dicStr[sType]; - FrType = 0; - } - else // child of a node - { - FrItem = null; - FrType = (3 + ("CNRST".IndexOf(sType))); - } - - itemc = AddStep(cn, drvs["Type"].ToString() - , (drvs["textm"] == DBNull.Value ? drvs["Text"].ToString() : drvs["Textm"].ToString()) - , drvs["Recid"].ToString(), drvs["CStep"].ToString() + drvs["CSequence"].ToString() - , GetStructType(drvs["sequence"].ToString()), FrItem - , GetDTS(drvs["Date"].ToString(), drvs["Time"].ToString()), drvs["Initials"].ToString(), conv_caret, pth, docver, fmt, itemp, FrType - , drvs["Step"].ToString() + drvs["CSequence"].ToString()); - //if (FrType > 0 ) - //{ - // itemp.MyContent.ContentParts.Add(FrType, itemc); - // if (!itemp.MyContent.IsSavable) ErrorRpt.ErrorReport(itemp.MyContent); - // itemp.MyContent.Save(); - //} - dicStr[sType] = itemc; - dicStruct[drvs["CSequence"].ToString()] = new Dictionary(); - dicStep[drvs["CSequence"].ToString()] = itemc; - } - else - { - log.ErrorFormat("Parent {0} Could not be found for {1}", sParent, drvs["sequence"].ToString()); - } - } - dv.Dispose(); - return item; - } - catch (Exception ex) - { - //Console.WriteLine("{0} {1}", ex.GetType().Name, ex.Message); - frmMain.AddError(ex, "MigrateStep"); - log.Error("PROCESS STEP"); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - log.ErrorFormat(ex.StackTrace); - return null; - } - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/Steps.cs.bak b/PROMS/DataLoader/Steps.cs.bak deleted file mode 100644 index c0ce68be..00000000 --- a/PROMS/DataLoader/Steps.cs.bak +++ /dev/null @@ -1,422 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class Loader - { - private Item AddStep(OleDbConnection cn, string StepType, string Textm, string Recid, string stpseq, string structtype, Item FromItem, DateTime dts, string userid, bool conv_caret, string pth, DocVersion docver) - { - string whereami = "1"; - Content content = null; - Item item = null; - - frmMain.UpdateLabels(0, 0, 1); - ConfigInfo ci = new ConfigInfo(null); - string stptext = null; - if (userid == null || userid == "") userid = "Migration"; - int tok = -1; - //char[] chrarr = { '\x1', '\x2', '\x3', '\x5' }; - char[] chrarr = { '\x1', '\x2', '\x3' }; - try - { - // the textm field has step text, but also may have other text stored - // with it with a 'token' as a separator (see below). - tok = Textm.IndexOfAny(chrarr); - - // This will find a continuous action flag without finding a hanging indent - if (tok == 0 && Textm[Textm.Length - 1] == '\x5') - tok = Textm.Length - 1; - - if (tok < 0) - stptext = TextConvert.ConvertText(Textm, conv_caret); - else - stptext = TextConvert.ConvertText(Textm.Substring(0, tok), conv_caret); - - string seqcvt = TextConvert.ConvertSeq(stpseq); - - // Figure marker - it should NEVER get here!!! - int tokfig = Textm.IndexOf('\xE8'); - if (tokfig > -1) - { - log.Error("Found a old style figure!"); - log.ErrorFormat("oldstepsequence = {0}", stpseq); - } - string newstptyp = null; - bool ManualPagebreak = false; - char cbittst = StepType.PadRight(2)[0]; - if (cbittst != ' ' && (cbittst & 0x80) > 1) - { - ManualPagebreak = true; - //if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Step", "ManualPagebreak", "True"); - newstptyp = StepType.Substring(1, 1); - } - if (InES32 && stpseq == "A3S11") - Console.WriteLine("here"); - whereami = "2"; - if (InES32) Console.WriteLine("Addstep whereami {0}, stepseq = {1}", whereami, stpseq); - // Need the content record for the RO & transitions. - //content = Content.MakeContent(null, stptext, 20000 + int.Parse(newstptyp!=null?newstptyp:StepType),null, ManualPagebreak?ci.ToString():null, dts, userid); - // 20000 flags step type item & 1 adjusts for 'base' in format files. - int contenttype = (structtype == "R") ? 20040 : 20001 + int.Parse(newstptyp != null ? newstptyp : StepType); - whereami = "2.1"; - if (InES32) Console.WriteLine("Addstep whereami {0}, stepseq = {1}", whereami, stpseq); - content = Content.New(null, stptext, contenttype, null, ManualPagebreak ? ci.ToString() : null, dts, userid); - whereami = "2.1.1"; - if (InES32) Console.WriteLine("Addstep whereami {0}, stepseq = {1}", whereami, stpseq); - content.MyZContent.OldStepSequence = ProcNumber + "|" + stpseq; - whereami = "2.1.2"; - if (InES32) Console.WriteLine("Addstep whereami {0}, stepseq = {1}", whereami, stpseq); - // Before we save it, handle RO & Transitions tokens. - int tokrt = Textm.IndexOf('\x15'); - bool txtdirty = false; - if (tokrt > -1) - { - txtdirty = true; - whereami = "2.2"; - if (InES32) Console.WriteLine("Addstep whereami {0}, stepseq = {1}", whereami, stpseq); - stptext = MigrateRos(cn, stptext, seqcvt, content, docver, conv_caret); - whereami = "2.3"; - if (InES32) Console.WriteLine("Addstep whereami {0}, stepseq = {1}", whereami, stpseq); - stptext = stptext.TrimEnd(" ".ToCharArray()); - } - whereami = "3"; - if (InES32) Console.WriteLine("Addstep whereami {0}", whereami); - // 16-bit code has the following two defines. - // #define TransitionMarker 0xC2 - // #define ReferenceMarker 0xCB - // these two characters get converted (to unicode) from ado.net - // use the unicode chars. - char[] chrrotrn = { '\x252C', '\x2566' }; - tokrt = Textm.IndexOfAny(chrrotrn); - _TransitionMigrationErrors = new List(); - if (tokrt > -1) - { - txtdirty = true; - stptext = MigrateTrans(cn, stptext, seqcvt, content, pth); - stptext = stptext.TrimEnd(" ".ToCharArray()); - } - if (txtdirty) - { - content.Text = stptext; - //content.Save(); - } - whereami = "4"; - if (InES32) Console.WriteLine("Addstep whereami {0}", whereami); - if (!content.IsSavable) ErrorRpt.ErrorReport(content); - List migrationerrors = null; - if (_ContentMigrationErrors.ContainsKey(content.ContentID)) - migrationerrors = _ContentMigrationErrors[content.ContentID]; - content.Save(); - whereami = "5"; - if (InES32) Console.WriteLine("Addstep whereami {0}", whereami); - // check if already created thru new during transition migration... - if (dicTrans_ItemIds.ContainsKey(ProcNumber + "|" + seqcvt)) - { - item = dicTrans_ItemIds[ProcNumber + "|" + seqcvt]; - item.MyPrevious = FromItem; - item.MyContent = content; - item.DTS = dts; - item.UserID = userid; - if (!item.IsSavable) ErrorRpt.ErrorReport(item); - item.Save(); - dicTrans_ItemIds.Remove(ProcNumber + "|" + seqcvt); - dicTrans_MigrationErrors.Remove(ProcNumber + "|" + seqcvt); - } - else - item = Item.MakeItem(FromItem, content, content.DTS, content.UserID); - if (migrationerrors != null) - { - foreach (string str in migrationerrors) - { - ItemAnnotation ia = item.ItemAnnotations.Add(MigrationErrorType); - ia.SearchText = str; - } - if (!item.IsSavable) ErrorRpt.ErrorReport(item); - item.Save(); - } - if (_TransitionMigrationErrors.Count > 0) - { - foreach (string str in _TransitionMigrationErrors) - { - if (!dicTrans_MigrationErrors.ContainsKey(str)) - dicTrans_MigrationErrors.Add(str, new List()); - dicTrans_MigrationErrors[str].Add(item); - } - } - dicTrans_ItemDone[ProcNumber + "|" + seqcvt] = item; - dicOldStepSequence[content] = seqcvt; - } - catch (Exception ex) - { - Console.WriteLine("{0} {1}", ex.GetType().Name, ex.Message); - log.Error("Save Step"); - log.ErrorFormat("oldstepsequence = {0}", stpseq); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - log.ErrorFormat(ex.StackTrace); - item = null; - } - - // now add on any support pieces of text associated with the step. - // These include: - // '\1' comment - // '\2' multiple change ids and/or change message - // '\3' linked sequence - // '\3\3'override tab - // '\5' continuous action summary flag (only if last char in string) - // This assumes that these tokens are stored in reverse order that - // they are processed. - - - bool recdirty = false; - try - { - whereami = "6"; - if (InES32) Console.WriteLine("Addstep whereami {0}", whereami); - if (tok >= 0 && tok != Textm.Length) - { - string tkstring = Textm.Substring(tok); - int nxttok = 0; - - if (tkstring[tkstring.Length - 1] == '\x5') // Continuous Action Summary - { - recdirty = true; - //if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Step", "ContActSum", "True"); - tkstring = tkstring.Substring(0, tkstring.Length - 1); // strip off Continuous Action Token - } - - if ((nxttok = tkstring.IndexOf("\x3\x3")) > -1) // Enhanced Override Tab - { - Console.WriteLine("Override Tab: {0}", tkstring.Substring(nxttok + 1)); - ci.AddItem("Step", "OverrideTab", tkstring.Substring(nxttok + 2)); - recdirty = true; - //recdirty |= AddContentDetail(content, STP_OVR_TAB, tkstring.Substring(nxttok + 2)); - tkstring = tkstring.Substring(0, nxttok); - } - - if ((nxttok = tkstring.IndexOf("\x3")) > -1) //Linked Sequence - { - Console.WriteLine("Linked Seq: {0}", tkstring.Substring(nxttok + 1)); - ci.AddItem("Step", "LinkedSeq", TextConvert.ConvertSeq(tkstring.Substring(nxttok + 1))); - recdirty = true; - //recdirty |= AddContentDetail(content, STP_LNK_SEQ, TextConvert.ConvertSeq(tkstring.Substring(nxttok + 1))); - tkstring = tkstring.Substring(0, nxttok); - } - - if ((nxttok = tkstring.IndexOf("\x2")) > -1) // Multiple Change Ids - { - //Console.WriteLine("Multiple Change ID: {0}", tkstring.Substring(nxttok + 1)); - ci.AddItem("Step", "MultipleChangeID", tkstring.Substring(nxttok + 1)); - recdirty = true; - //recdirty |= AddContentDetail(content, STP_MULT_CHGID, tkstring.Substring(nxttok + 1)); - tkstring = tkstring.Substring(0, nxttok); - } - - if ((nxttok = tkstring.IndexOf("\x1")) > -1) // Comment - { - // add the comment to annotation table. Set type to comment. - Console.WriteLine("Comment text: {0}", tkstring.Substring(nxttok + 1)); - Annotation annot = Annotation.MakeAnnotation(item, CommentType, null, tkstring.Substring(nxttok + 1), null, dts, userid); - } - } - - - // also see if a check-off needs added. - if (Recid[0] != '0') - { - recdirty = true; - string chkindx = Recid[0].ToString(); - //if (ci == null) ci = new ConfigInfo(null); - ci.AddItem("Step", "CheckOffIndex", chkindx); - } - - // here's where it knows if it's a linked step (or in processstep) - if (Recid[1] != '0') - { - // do linked step stuff. - } - - // if checkoffs or the continuous action summary flag, save the xml. - if (recdirty) - { - if (ci.ItemCount != 0) content.Config = ci.ToString(); - if (!content.IsSavable) ErrorRpt.ErrorReport(content); - whereami = "7"; - if (InES32) Console.WriteLine("Addstep whereami {0}", whereami); - content.Save(); - whereami = "8"; - if (InES32) Console.WriteLine("Addstep whereami {0}", whereami); - } - } - catch (Exception ex) - { - Console.WriteLine("Subtexts: {0} {1}", ex.GetType().Name, ex.Message); - log.Error("Save Step part 2"); - log.ErrorFormat("oldstepsequence = {0}", stpseq); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - log.ErrorFormat(ex.StackTrace); - } - return item; - } - - //private static bool AddContentDetail(Content content, int type, string strn) - //{ - // if (strn != null && strn.Trim() != "" ) - // { - // content.ContentDetails.Add(type, strn); - // return true; - // } - // return false; - //} - - private string GetParent(string s) - { - string retval = "S"; - if (s.Length > 1) - { - int l = s.Length; - if ("!*".IndexOf(s[l - 2]) > -1) - { - if (l > 2) retval = s.Substring(0, l - 2); - } - else - { - retval = s.Substring(0, l - 1); - } - } - return retval; - } - private string GetStructType(string s) - { - string retval = "S"; - if (s.Length > 1) - { - int l = s.Length; - if ("!*".IndexOf(s[l - 2]) > -1) - { - if (s[l - 2] == '!') retval = "C"; - else retval = "N"; - } - else - { - if (s[l - 1] == '$') retval = "R"; - if (s[l - 1] == '#') retval = "T"; - } - } - return retval; - } - public bool InES32 = false; - private Item MigrateStep(OleDbConnection cn, DataTable dt, DataRowView drv, Item FromItem, bool conv_caret, string pth, DocVersion docver) - { - //string whereami = "1"; - try - { - string sType = GetStructType(drv["CSequence"].ToString()); - //whereami = "2"; - //if (InES32) Console.WriteLine("MigrateStep whereami {0}", whereami); - Item item = AddStep(cn, drv["Type"].ToString() - , (drv["textm"] == DBNull.Value ? drv["Text"].ToString() : drv["Textm"].ToString()) - , drv["Recid"].ToString(), drv["CStep"].ToString() + drv["CSequence"].ToString(), "S", FromItem // was str - , GetDTS(drv["Date"].ToString(), drv["Time"].ToString()), drv["Initials"].ToString(), conv_caret, pth, docver); - //whereami = "3"; - //if (InES32) Console.WriteLine("MigrateStep whereami {0}", whereami); - //Content cont = Content.MakeContent(null,(drv["textm"] == DBNull.Value ? drv["Text"].ToString() : drv["Textm"].ToString()),drv["Type"]+20000,null,null, - // GetDTS(drv["Date"].ToString(), drv["Time"].ToString()), drv["Initials"].ToString()); - //Item item = Item.MakeItem(FromItem, cont, cont.DTS, cont.UserID); - //Structure str = AddStructure(FromType, FromID, 3, tmpid, drv["CStep"].ToString() + drv["CSequence"].ToString(), - // GetDTS(drv["Date"].ToString(), drv["Time"].ToString()), drv["Initials"].ToString()); - //Step stp = AddStep(cn, drv["Type"].ToString() - // , (drv["textm"] == DBNull.Value ? drv["Text"].ToString() : drv["Textm"].ToString()) - // , drv["Recid"].ToString(), drv["CStep"].ToString() + drv["CSequence"].ToString(), "S", str - // , GetDTS(drv["Date"].ToString(), drv["Time"].ToString()), drv["Initials"].ToString()); - Dictionary dicStep = new Dictionary(); - dicStep[drv["CSequence"].ToString()] = item; - Dictionary> dicStruct = new Dictionary>(); - Dictionary dicBase = new Dictionary(); - dicStruct[drv["CSequence"].ToString()] = dicBase; - dicBase[""] = item; - // Logic to add Sub-steps - string sQry = "CStep = '" + drv["CStep"].ToString() + "' and CSequence <> 'S'"; - // sort order - for sections use currentrows. - //whereami = "4"; - //if (InES32) Console.WriteLine("MigrateStep whereami {0}", whereami); - DataView dv = new DataView(dt, sQry, "StepNo,Level,SubStepNo", DataViewRowState.CurrentRows); - //dataGrid1.DataSource=dv; - //Loop through DataView and add Steps one at a time - //Console.WriteLine("={0}",drv["Step"]); - int FrType = 0; // type of relationship (not type of step) - Item FrItem = item; - foreach (DataRowView drvs in dv) - { - //Console.WriteLine(">{0}",drvs["CStep"]); - - string sParent = GetParent(drvs["CSequence"].ToString()); - if (dicStep.ContainsKey(sParent)) - { - Item itemp = dicStep[sParent]; - sType = GetStructType(drvs["CSequence"].ToString()); - Dictionary dicStr = dicStruct[sParent]; - // check if a step type of 'sType' exists to see if child/sibling - //Content contc = Content.MakeContent(null,(drvs["textm"] == DBNull.Value ? drvs["Text"].ToString() : drvs["Textm"].ToString()),drvs["Type"]+20000,null,null, - // GetDTS(drvs["Date"].ToString(), drvs["Time"].ToString()), drvs["Initials"].ToString())); - Item itemc = null; - if (dicStr.ContainsKey(sType)) // next sibling - { - FrItem = dicStr[sType]; - FrType = 0; - } - else // child of a node - { - FrItem = null; - FrType = (3 + ("CNRST".IndexOf(sType))); - } - //whereami = "5"; - itemc = AddStep(cn, drvs["Type"].ToString() - , (drvs["textm"] == DBNull.Value ? drvs["Text"].ToString() : drvs["Textm"].ToString()) - , drv["Recid"].ToString(), drvs["CStep"].ToString() + drvs["CSequence"].ToString() - , GetStructType(drvs["sequence"].ToString()), FrItem - , GetDTS(drvs["Date"].ToString(), drvs["Time"].ToString()), drvs["Initials"].ToString(), conv_caret, pth, docver); - - if (FrType > 0 ) - { - itemp.MyContent.ContentParts.Add(FrType, itemc); - if (!itemp.MyContent.IsSavable) ErrorRpt.ErrorReport(itemp.MyContent); - itemp.MyContent.Save(); - } - //whereami = "6"; - dicStr[sType] = itemc; - dicStruct[drvs["CSequence"].ToString()] = new Dictionary(); - dicStep[drvs["CSequence"].ToString()] = itemc; - } - else - { - log.ErrorFormat("Parent {0} Could not be found for {1}", sParent, drvs["sequence"].ToString()); - } - } - //if (InES32) Console.WriteLine("MigrateStep end"); - return item; - } - catch (Exception ex) - { - Console.WriteLine("{0} {1}", ex.GetType().Name, ex.Message); - log.Error("PROCESS STEP"); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - log.ErrorFormat(ex.StackTrace); - return null; - } - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/TextConvert.cs b/PROMS/DataLoader/TextConvert.cs deleted file mode 100644 index bfea5665..00000000 --- a/PROMS/DataLoader/TextConvert.cs +++ /dev/null @@ -1,521 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== - -using System; -using System.Collections.Generic; -using System.Text; -using System.Text.RegularExpressions; -using Volian.Base.Library; - -namespace DataLoader -{ - public static class TextConvert - { - static TextConvert() - { - BuildDictionarySeq(); - BuildDictionaryText(); - } - - private static Dictionary dicChar; - public static void BuildDictionarySeq() - { - dicChar = new Dictionary(); - for (int i = 0; i < 128; i++) dicChar[i] = i; - dicChar[199] = 128; dicChar[252] = 129; dicChar[233] = 130; dicChar[226] = 131; - dicChar[228] = 132; dicChar[224] = 133; dicChar[229] = 134; dicChar[231] = 135; - dicChar[234] = 136; dicChar[235] = 137; dicChar[232] = 138; dicChar[239] = 139; - dicChar[238] = 140; dicChar[236] = 141; dicChar[196] = 142; dicChar[197] = 143; - dicChar[201] = 144; dicChar[230] = 145; dicChar[198] = 146; dicChar[244] = 147; - dicChar[246] = 148; dicChar[242] = 149; dicChar[251] = 150; dicChar[249] = 151; - dicChar[255] = 152; dicChar[214] = 153; dicChar[220] = 154; dicChar[162] = 155; - dicChar[163] = 156; dicChar[165] = 157; dicChar[8359] = 158; dicChar[402] = 159; - dicChar[225] = 160; dicChar[237] = 161; dicChar[243] = 162; dicChar[250] = 163; - dicChar[241] = 164; dicChar[209] = 165; dicChar[170] = 166; dicChar[186] = 167; - dicChar[191] = 168; dicChar[8976] = 169; dicChar[172] = 170; dicChar[189] = 171; - dicChar[188] = 172; dicChar[161] = 173; dicChar[171] = 174; dicChar[187] = 175; - dicChar[9617] = 176; dicChar[9618] = 177; dicChar[9619] = 178; dicChar[9474] = 179; - dicChar[9508] = 180; dicChar[9569] = 181; dicChar[9570] = 182; dicChar[9558] = 183; - dicChar[9557] = 184; dicChar[9571] = 185; dicChar[9553] = 186; dicChar[9559] = 187; - dicChar[9565] = 188; dicChar[9564] = 189; dicChar[9563] = 190; dicChar[9488] = 191; - dicChar[9492] = 192; dicChar[9524] = 193; dicChar[9516] = 194; dicChar[9500] = 195; - dicChar[9472] = 196; dicChar[9532] = 197; dicChar[9566] = 198; dicChar[9567] = 199; - dicChar[9562] = 200; dicChar[9556] = 201; dicChar[9577] = 202; dicChar[9574] = 203; - dicChar[9568] = 204; dicChar[9552] = 205; dicChar[9580] = 206; dicChar[9575] = 207; - dicChar[9576] = 208; dicChar[9572] = 209; dicChar[9573] = 210; dicChar[9561] = 211; - dicChar[9560] = 212; dicChar[9554] = 213; dicChar[9555] = 214; dicChar[9579] = 215; - dicChar[9578] = 216; dicChar[9496] = 217; dicChar[9484] = 218; dicChar[9608] = 219; - dicChar[9604] = 220; dicChar[9612] = 221; dicChar[9616] = 222; dicChar[9600] = 223; - dicChar[945] = 224; dicChar[223] = 225; dicChar[915] = 226; dicChar[960] = 227; - dicChar[931] = 228; dicChar[963] = 229; dicChar[181] = 230; dicChar[964] = 231; - dicChar[934] = 232; dicChar[920] = 233; dicChar[937] = 234; dicChar[948] = 235; - dicChar[8734] = 236; dicChar[966] = 237; dicChar[949] = 238; dicChar[8745] = 239; - dicChar[8801] = 240; dicChar[177] = 241; dicChar[8805] = 242; dicChar[8804] = 243; - dicChar[8992] = 244; dicChar[8993] = 245; dicChar[247] = 246; dicChar[8776] = 247; - dicChar[176] = 248; dicChar[8729] = 249; dicChar[183] = 250; dicChar[8730] = 251; - dicChar[8319] = 252; dicChar[178] = 253; dicChar[9632] = 254; dicChar[160] = 255; - } - public static string ConvertSeq(string s1) - { - Encoding Eibm437 = Encoding.GetEncoding(437); - Encoding Eunicode = Encoding.Unicode; - Decoder d = Eibm437.GetDecoder(); - Byte[] bs1 = Eunicode.GetBytes(s1); - Byte[] bs2 = Encoding.Convert(Eunicode, Eibm437, bs1); - char[] cs2 = new char[Eibm437.GetCharCount(bs2)]; - for (int i = 0; i < cs2.Length; i++) cs2[i] = (char)bs2[i]; - return new string(cs2); - } - - public static Regex Reg2; - public static void BuildDictionaryText() - { - dicChar = new Dictionary(); - dicChar[966] = 216; - dicChar[201] = 274; - dicChar[127] = 916; - dicChar[964] = 947; - dicChar[920] = 952; - dicChar[915] = 961; - dicChar[191] = 964; - dicChar[8801] = 8773; - dicChar[8734] = 8857; - dicChar[7] = 9679; - dicChar[8976] = 9830; - dicChar[9632] = 9604; - //dicChar[236] = 38914; - char[] creg = new char[dicChar.Count]; - int i = 0; - foreach (int ic in dicChar.Keys) - { - creg[i] = (char)ic; - i++; - } - Reg2 = new Regex("[" + new string(creg) + "]"); - } - public static string ReplaceChars(Match m) - { - char[] cs = m.Value.ToCharArray(); - for (int i = 0; i < cs.Length; i++) - { - if (dicChar.ContainsKey((int)(cs[i]))) - { - int iKey = (int)cs[i]; - int iValue = dicChar[iKey]; - cs[i] = (char)iValue; - } - } - return new string(cs); - } - public static string ConvertText(string s1, bool DoCaret) - { - string s2 = s1; - if (DoCaret) s2 = s2.Replace("^", @"\u916?"); - return ConvertText(s2); - } - private static void ShowRawString(string str, string title) - { - Console.WriteLine("Raw Start --{0}:\n", title); - foreach (char c in str) - { - int ic = (int)c; - if (c != '\n' && (ic > 126 || ic < 32)) - Console.Write("<<{0:x4}>>", ic); - else - Console.Write(c); - } - Console.WriteLine("\n-- Raw End:{0}", title); - } - - public static string ReplaceUnicode(string s2) - { - return ReplaceUnicode(s2, false); - } - public static string ReplaceUnicode(string s2, bool DoCaret) - { - //char[] tmp; - //tmp = s2.ToCharArray(); - string orig = s2; - //ShowRawString(s2, "ReplaceUnicode"); - s2 = s2.Replace("`", @"\'b0"); // convert backquote to degree - left over from DOS days. - s2 = s2.Replace("\xa0",@"\u160?"); // hardspace - s2 = s2.Replace("\xb0", @"\'b0"); // degree - s2 = s2.Replace("\x7f", @"\u916?"); // delta - s2 = s2.Replace("\x2265",@"\u8805?"); // greater than or equal - s2 = s2.Replace("\x2264",@"\u8804?"); // less than or equal - s2 = s2.Replace("\xB1",@"\'b1"); // plus minus - s2 = s2.Replace("\x3A3",@"\u931?"); // sigma - s2 = s2.Replace("\x3C4",@"\u947?"); // gamma - s2 = s2.Replace("\xBD",@"\'bd"); // half - s2 = s2.Replace("\x25A0",@"\u9604?"); // accum 2584 - s2 = s2.Replace("\x7",@"\u9679?"); // bullet 25CF - s2 = s2.Replace("\x2248",@"\u8776?"); // approx eq - s2 = s2.Replace("\x2261",@"\u8773?"); // similar eq 2245 - s2 = s2.Replace("\xF7",@"\'f7"); // division - s2 = s2.Replace("\x221A",@"\u8730?"); // square root - s2 = s2.Replace("\x393",@"\u961?"); // rho 3C1 - s2 = s2.Replace("\x3C0",@"\u960?"); // pi - s2 = s2.Replace("\xb5", @"\u956?"); // micro 3BC (try e6, if not work try 109) - s2 = s2.Replace("\x3B4", @"\u948?"); // lower case delta - s2 = s2.Replace("\x3C3", @"\u963?"); // lower case sigma - s2 = s2.Replace("\xBC", @"\'bc"); // quarter - s2 = s2.Replace("\x256A", @"\'d8"); // dist zero, D8 - s2 = s2.Replace("\x3C6", @"\'d8"); // dist zero, D8 - s2 = s2.Replace("\xC9", @"\u274?"); // energy, 112 - s2 = s2.Replace("\xEC", @"\'ec"); // grave - s2 = s2.Replace("\x2502", @"\u9474?"); // bar - s2 = s2.Replace("\x3B5", @"\u949?"); // epsilon - s2 = s2.Replace("\x398", @"\u952?"); // theta, 3B8 - s2 = s2.Replace("\x221E", @"\u8857?"); // dot in oval, 2299 - s2 = s2.Replace("\xBF", @"\u964?"); // tau, 3C4 - s2 = s2.Replace("\x2310", @"\u9830?"); // diamond, 2666 - s2 = s2.Replace("\x2192", @"\u8594?"); - s2 = s2.Replace("\x2190", @"\u8592?"); - s2 = s2.Replace("\x2191", @"\u8593?"); - s2 = s2.Replace("\x2193", @"\u8595?"); - s2 = s2.Replace("\x2207", @"\u8711?"); - s2 = s2.Replace("\x2591", @"\'b0"); // Degree Symbol - s2 = s2.Replace("\xFF", @"\u8593?"); // Up Arrow - s2 = s2.Replace("\xD6", @"\u8595?"); // Down Arrow - - if (DoCaret) s2 = s2.Replace("^", @"\u916?"); - //s2 = s2.Replace("^", @"\u916"); - - //s2 = ConvertDOSSuperAndSubScripts(s2); - string sBefore = s2; - s2 = ConvertFortranFormatToScienctificNotation(s2); - if (sBefore != s2) - MyGlitches.Add("ConvertFortranFormatToScienctificNotation", sBefore, s2); - // Convert dash to a non-breaking dash. This is a unicode character. - // This character will be used in veproms rather than a dash. - //if the dash is preceeded byte a token remove the space following the token -//#if DEBUG - if (VlnSettings.DebugMode) - { - if (s2.Contains(@"\super ")) - Console.WriteLine("RTF Super token"); - } -//#endif - s2 = Regex.Replace(s2, @"(\\[^ \\?]*) \-", @"$1\u8209?"); - //KBR s2 = s2.Replace("-", @"\u8209?"); - //Remove spaces between comment end nad Next token - s2 = s2.Replace(@"\v0 \", @"\v0\"); - //Change Token Order to match RTB output - s2 = s2.Replace(@"\v0\b0", @"\b0\v0"); - s2 = s2.Replace(@"\b0\ulnone", @"\ulnone\b0"); - s2 = s2.Replace(@"\par ", "\r\n"); - return s2; - } - private static DataLoaderGlitches _MyGlitches; - public static DataLoaderGlitches MyGlitches - { - get - { - if (_MyGlitches == null) - _MyGlitches = new DataLoaderGlitches(); - return _MyGlitches; - } - set { _MyGlitches = value; } - } - public static string ConvertFortranFormatToScienctificNotation(string str) - { - // Convert E style numbers to RTF with \super and \nosupersub - string retval = Regex.Replace(str, "([+-]?)([0-9]+)[.]([0-9]*?)0*E([+-]?[0-9]+)", new MatchEvaluator(FixFortranNumber)); - return retval; - } - - public static string ConvertDOSSuperAndSubScripts(string instr) - { - try - { - string retval = Regex.Replace(instr, "[#](.*?)[#]", "\\up2 $1\\up0 ");// DOS Superscript - retval = Regex.Replace(retval, "[~](.*?)[~]", "\\dn2 $1\\up0 ");// DOS Subscript - return retval; - } - catch (Exception ex) - { - Console.WriteLine("Error in ConvertDOSSuperAndSubScripts"); - } - return ""; - } - private static string FixFortranNumber(Match match) - { - StringBuilder sb = new StringBuilder(match.Groups[1].Value); - if (match.Groups[3].Length == 0) // Nothing to the right of the decimal - if (match.Groups[2].Value != "1") // Other than "1", multiply it times 10 raised to a power - sb.Append(match.Groups[2].Value + "x10"); - else // The number is simply 1 so it can be ignored and 10 can be raised to a power - sb.Append("10"); - else // A number with a decimal point - sb.Append(match.Groups[2].Value + "." + match.Groups[3].Value + "x10"); - // Add the exponent as superscript - return sb.ToString() + "\\up2 " + match.Groups[4].Value + "\\up0 "; - } - #region CommentedOut - //private static string ConvertFortranFormatToScienctificNotation(string str) - //{ - // string outstr = ""; - // int orglen = str.Length; - // int cnt = 0; - // int ptr; - - // int nbytes; - // int tstr, tstr2, rptr, start = 0; - - // while (cnt < orglen) - // { - // // position up to the the next number, sign, or period - // ptr = str.IndexOfAny("+-0123456789.".ToCharArray(), cnt); - // if (ptr == -1) - // { - // outstr += str.Substring(cnt); - // break; // jump out of while loop - nothing else to process - // } - // if ((ptr - cnt) > 0) - // { - // outstr += str.Substring(cnt, ptr - cnt); - // cnt = ptr; - // } - - // if (cnt > start && str[cnt - 1] == '\'') - // { - // //B2003-053: only remove the single quote character - // // if str ptr is not at the end of the string or - // // the next char (after the str ptr) is not a space - // // or newline... (as per Paul Linn on 7/17/03) - // int len = orglen - cnt; - // if (len <= 1 || str[cnt + 1] == ' ' || str[cnt + 1] == '\n') - // start = cnt; - // else - // start = cnt - 1; - // } - // else start = cnt; - // tstr = cnt; - - // //Skip preceeding signs - // if (str[cnt] == '+' || str[cnt] == '-') - // cnt++; - - // cnt = NextNonNumber(str, cnt); - // if ((cnt < str.Length -1) && str[cnt] == '.') - // { - // cnt = NextNonNumber(str, cnt + 1); - // if (str[start] == '\'') - // { - // start++; - // } - // else if ((cnt < str.Length -1) && (str[cnt] == 'E') && (cnt > tstr)) - // { - // nbytes = (cnt - tstr); // don't include the 'E' - // outstr += str.Substring(tstr, nbytes); - // cnt++; - - // rptr = outstr.Length - 1; - // while (outstr[rptr] == '0') rptr--; - // if (outstr[rptr] != '.') rptr++; - // if (rptr < (outstr.Length - 1)) - // outstr = outstr.Substring(0, rptr + 1); // trim trailing 0's - - // int poutstr = 0; - // if (outstr[poutstr] == '+' || outstr[poutstr] == '-') poutstr++; - // if (!outstr[poutstr].Equals("1")) - // { - // outstr += "x1"; - // } - // outstr += "0\\super "; - - // tstr2 = cnt; - // if (str[cnt] == '+' || str[cnt] == '-') cnt++; - // cnt = NextNonNumber(str, cnt); - - // if (str[cnt] == '.' && char.IsDigit(str, cnt + 1)) - // cnt = NextNonNumber(str, cnt + 1); - - // nbytes = cnt - tstr2; // +1; - // outstr += str.Substring(tstr2, nbytes); - // outstr += "\\nosupersub "; - - // if (!char.IsLetterOrDigit(str, cnt) && !char.IsWhiteSpace(str, cnt)) - // return (str.Substring(tstr)); - // } - // else if (cnt > 0) - // { - // outstr += str.Substring(start, cnt - start + ((cnt < str.Length) ? 1 : 0)); - // } - // } - // else - // { - // outstr += str.Substring(start, cnt - start + ((cnt < str.Length)?1:0)); - // cnt++; - // } - // } - // return (outstr); - //} - - //private static int NextNonNumber(string str, int cnt) - //{ - // int rtn = 0; - // string tstr = str.Substring(cnt); - // int len = tstr.Length; - // while (rtn < len && char.IsDigit(tstr, rtn)) rtn++; - // return rtn + cnt; - //} - - //public static string ConvertDOSSuperAndSubScripts(string instr) - //{ - // string outstr = ""; - // string tstr = instr; - // int cnt = 0; - // int ptr = 0; - // bool issupper = false, issub = false; - - // while (tstr != null && (ptr = tstr.IndexOfAny("#~".ToCharArray(), cnt)) >= 0) - // { - // if (ptr > cnt) - // outstr += tstr.Substring(cnt, ptr - cnt); - // switch (tstr[ptr]) - // { - // case '#': - // if (issub || issupper) - // outstr += "\\nosupersub "; - // else - // outstr += "\\super "; - // issupper = !issupper; - // issub = false; - // break; - // case '~': - // if (issupper || issub) - // outstr += "\\nosupersub "; - // else - // outstr += "\\sub "; - // issub = !issub; - // issupper = false; - // break; - // } - // cnt = ptr + 1; - // if (cnt >= tstr.Length) - // tstr = null; - // else - // tstr = instr.Substring(cnt); - // cnt = 0; - // } - // if (tstr != null) - // outstr += tstr; - // return outstr; - //} - #endregion - public static string ConvertText(string s1) - { - string s2 = s1; - //CompareBeforeAndAfter(s1); - s2 = ReplaceUnicode(s2); - // now replace underline on/off (AE,AF), super on/off (C6,C7) - // bold on/off (D5, D6), subscript on/off (D1 A6), and - // italics on/off (B2, DD) - //s2 = s2.Replace("\xAB", "\\ul "); - //s2 = s2.Replace("\xBB", "\\ulnone "); - //s2 = s2.Replace("\x255E", "\\super "); - //s2 = s2.Replace("\x255F", "\\nosupersub "); - //\xAB -> \\ul and \xBB -> \\ulnone - look for pairs: - s2 = Regex.Replace(s2, @"\xAB([^\xBB]*?)\xBB", @"\ul $1\ulnone "); - // if there is an underline on without underline off or vice versa, just remove it. - if (s2.Contains("\xAB") || s2.Contains("\xBB")) s2 = s2.Replace("\xAB", "").Replace("\xBB", ""); - s2 = s2.Replace("\x255E", "\\up2 "); - s2 = s2.Replace("\x255F", "\\up0 "); - s2 = s2.Replace("\x2552", "\\b "); - s2 = s2.Replace("\x2553", "\\b0 "); - //s2 = s2.Replace("\x2564", "\\sub "); - //s2 = s2.Replace("\xAA", "\\nosupersub "); - s2 = s2.Replace("\x2564", "\\dn2 "); - s2 = s2.Replace("\xAA", "\\up0 "); - s2 = s2.Replace("\x2593", "\\i "); - s2 = s2.Replace("\x258C", "\\i0 "); - s2 = s2.Replace("\x2559", "\\ul\\b "); - s2 = s2.Replace("\x2558", "\\b0\\ulnone "); - - // underline next word is 0x17 - // superscript next is 0x18 - // subscript next is 0x19 - // bold next is 0x13 - - // \x18([A-Za-z0-9]+)(?:[\x18]|(?= )|\Z|(?=[^A-Za-z0-9]))(.*?) - s2 = Regex.Replace(s2, @"\x18([A-Za-z0-9\-]+)(?:[\x18]|(?= )|\Z|(?=[^A-Za-z0-9]))(.*?)", @"\up2 $1\up0 $2"); - s2 = Regex.Replace(s2, @"\x19([A-Za-z0-9\-]+)(?:[\x19]|(?= )|\Z|(?=[^A-Za-z0-9]))(.*?)", @"\dn2 $1\up0 $2"); - s2 = Regex.Replace(s2, @"\x13([A-Za-z0-9\-]+)(?:[\x13]|(?= )|\Z|(?=[^A-Za-z0-9]))(.*?)", @"\b $1\b0 $2"); - s2 = s2.Replace("\x11", ""); // this was an 'end' string for the above, 16bit just removed this char - s2 = s2.Replace("-", @"\u8209?"); // do this here so that super/sub & bold next work. - // if the underline is at beginning of text, don't replace the underline token with a space: - s2 = Regex.Replace(s2, @"^\x17(([A-Za-z0-9]|\\u[0-9]+\?)+)", @"\ul $1\ulnone "); - s2 = Regex.Replace(s2, @"\x17(([A-Za-z0-9]|\\u[0-9]+\?)+)", @" \ul $1\ulnone "); - - s2 = Reg2.Replace(s2, new MatchEvaluator(ReplaceChars)); - - // Now prepend an escape character, '\', to any curly brace. The curly brace - // is used in rtf land. - s2 = s2.Replace(@"{", @"\{"); - s2 = s2.Replace(@"}", @"\}"); - s2 = s2.Replace("\n", @"\par "); // line break in tables - s2 = s2.Replace(@"\up0 \up2 ", @"\up2 "); //jsj - 18MAR2010 - rbt.Save() seems to do this automatically - s2 = s2.Replace(@"\up0 \dn2 ", @"\dn2 "); //jsj - 18MAR2010 - rbt.Save() seems to do this automatically - return s2; - } - - private static void CompareBeforeAndAfter(string txtBefore) - { - string txtAfter = ConvertSeq(txtBefore); - if (txtAfter != txtBefore) - { - ListDifference(txtBefore, txtAfter); - } - } - private static Dictionary _SpecialChars = new Dictionary(); - private static void ListDifference(string txtBefore, string txtAfter) - { - int nBefore = txtBefore.Length; - int nAfter = txtAfter.Length; - int n = nBefore > nAfter ? nAfter : nBefore; - for (int i = 0; i < n; i++) - { - int chrBefore = (int)(txtBefore[i]); - int chrAfter = (int)(txtAfter[i]); - if (chrBefore != chrAfter) - { - if (_SpecialChars.ContainsKey(chrBefore)) - _SpecialChars[chrBefore]++; - else - { - _SpecialChars.Add(chrBefore, 1); - Console.WriteLine("Character Difference 0x{0:X0000} 0x{1:X0000} @ {2}", chrBefore, chrAfter, i); - //Console.WriteLine("Text Difference\r\nBefore '{0}'\r\nAfter '{0}'", txtBefore, txtAfter); - string prefix = i == 0 ? "" : txtBefore.Substring(0, i - 1); - string suffix = i == txtBefore.Length - 1 ? "" : txtBefore.Substring(i + 1); - Console.WriteLine("Found in '{0}' 0x{1:X} '{2}'", prefix, chrBefore, suffix); - } - } - } - if (nBefore != nAfter) - { - Console.WriteLine("Length Difference\r\nBefore '{0}'\r\nAfter '{0}'", txtBefore, txtAfter); - } - } - public static void ListSpecialCharacters() - { - Console.WriteLine("Special Characters"); - foreach (int chr in _SpecialChars.Keys) - { - Console.WriteLine("0x{0:X0000} - {1} occurances", chr, _SpecialChars[chr]); - } - } - public static void ResetSpecialCharacters() - { - _SpecialChars = new Dictionary(); - } - } -} diff --git a/PROMS/DataLoader/TransitionFixer.cs b/PROMS/DataLoader/TransitionFixer.cs deleted file mode 100644 index 4d21d850..00000000 --- a/PROMS/DataLoader/TransitionFixer.cs +++ /dev/null @@ -1,305 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Volian.Controls.Library; -using VEPROMS.CSLA.Library; -using System.Text.RegularExpressions; -using Volian.Base.Library; -using System.Xml; -using System.IO; - -namespace DataLoader -{ - public delegate void TransitionFixerEvent(object sender, TransitionFixerEventArgs args); - public class TransitionFixerEventArgs - { - private string _MyStatus; - - public string MyStatus - { - get { return _MyStatus; } - set { _MyStatus = value; } - } - public TransitionFixerEventArgs(string myStatus) - { - _MyStatus = myStatus; - } - } - class TransitionFixer - { - public static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - public event TransitionFixerEvent StatusChanged; - private void OnStatusChanged(object sender, TransitionFixerEventArgs args) - { - if (StatusChanged != null) - StatusChanged(sender, args); - } - private string _Status; - - public string Status - { - get { return _Status; } - set - { - _Status = value; - OnStatusChanged(this, new TransitionFixerEventArgs(_Status)); - } - } - private int _ErrorCount = 0; - - public int ErrorCount - { - get { return _ErrorCount; } - set { _ErrorCount = value; } - } - - private StepRTB _MyStepRTB; - - public StepRTB MyStepRTB - { - get { return _MyStepRTB; } - } - private string _LogPath; - private frmLoader _MyLoader; - public TransitionFixer(StepRTB myStepRTB,string logpath, frmLoader myLoader) - { - _MyStepRTB = myStepRTB; - _LogPath = logpath; - _MyLoader = myLoader; - } - public TimeSpan Process(bool checkRTF) - { - DateTime tstart = DateTime.Now; - ContentInfo.StaticContentInfoChange += new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange); - ProcessTransitions(checkRTF); - ContentInfo.StaticContentInfoChange -= new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange); - return DateTime.Now - tstart; - } - - void ContentInfo_StaticContentInfoChange(object sender, StaticContentInfoEventArgs args) - { - _MyLoader.AddInfo("'Fixed Transition for ',{0},' changed from ','T-{1}',' to ','T-{2}'", (sender as ContentInfo).ContentID, args.OldValue, args.NewValue); - } - private void ProcessTransitions(bool checkRTF) - { - Status = "Getting List..."; - // Loop through all Items and check before and after text - ItemInfoList myListFrom = ItemInfoList.GetListTranFrom(); //ItemInfoList.GetByContentID(99732);// - ItemInfoList myListTo = ItemInfoList.GetListTranTo(); //ItemInfoList.GetByContentID(99732); // - ConversionRTBProblems myProblems = new ConversionRTBProblems(); - int i = 0; - foreach (ItemInfo item in myListFrom) - { - Status = string.Format("Processing {0} of {1} steps", ++i, myListFrom.Count); - //MyStepRTB.ViewRTB = false; - string originalText = item.MyContent.Text; - string updatedText = item.MyContent.Text; - if (item.MyContent.MyGrid != null) - { - originalText = item.MyContent.MyGrid.Data; - updatedText = (item.MyContent.MyGrid.Data.Replace("<START]", ""); - } - // Exclude items that are not connected (Dummy steps for invalid transition destinations) - if (item.ItemDocVersionCount != 0 || item.MyPrevious != null || item.MyParent != null) - { - if (item.MyContent.ContentTransitionCount > 0) - { - //updatedText = Volian.Controls.Library.DisplayText.StaticRemoveRtfStyles(updatedText, item); - foreach (TransitionInfo tran in item.MyContent.ContentTransitions) - { - try - { - string oldtext = item.MyContent.Text; - item.MyContent.FixTransitionText(tran,item); - string newtext = item.MyContent.Text; - if (newtext != oldtext) - { - using (Content c = item.MyContent.Get()) - { - c.FixTransitionText(tran); - c.Save(); - - } - } - if (item.NewTransToUnNumberedItem) - { - using (Item itm = item.Get()) - { - ItemAnnotation ia = itm.ItemAnnotations.Add(VerificationRequiredType); - ia.SearchText = "Transition to un-numbered step"; - ia.UserID = "Migration"; - itm.Save(); - } - } - //_MyLoader.AddInfo("{0}", item.MyContent.MyContentMessage); - //if (item.MyContent.MyGridMessage != string.Empty) - // _MyLoader.AddInfo("{0}", item.MyContent.MyGridMessage); - // updatedText = FixTransitionText(originalText, tran, item.MyContent.ContentID); - //if (item.MyContent.MyGrid != null) - // updatedText = FixTableTransitionText(originalText, tran, item.MyContent.Get()); - //else - } - catch (Exception ex) - { - Console.WriteLine("{0} {1}", ex.GetType().Name, ex.Message); - _MyLog.WarnFormat("Transition Conversion Error: {0}", ex.Message); - } - // Added for transitions to un-numbered steps - //if (tran.NewTransToUnNumberedItem) item.NewTransToUnNumberedItem = true; - } - } - //if (updatedText.EndsWith(" ")) updatedText = updatedText.Substring(0, updatedText.Length - 1); - //if (item.MyContent.MyGrid != null) - //{ - // using (Item itm = item.Get()) - // { - // updatedText = (updatedText.Replace("", "[END>"); - // string sstring = AdjustSizeAndGetSearchString(updatedText, itm); - // itm.MyContent.Text = sstring; - // if (item.NewTransToUnNumberedItem) - // { - // ItemAnnotation ia = itm.ItemAnnotations.Add(VerificationRequiredType); - // ia.SearchText = "Transition to un-numbered step"; - // ia.UserID = "Migration"; - // } - // itm.Save(); - // } - //} - //else - //{ - // if (item.NewTransToUnNumberedItem) - // { - // using (Item itm = item.Get()) - // { - // ItemAnnotation ia = itm.ItemAnnotations.Add(VerificationRequiredType); - // ia.SearchText = "Transition to un-numbered step"; - // ia.UserID = "Migration"; - // itm.Save(); - // } - // } - // using (Content c = item.MyContent.Get()) - // { - // c.Text = updatedText; - // c.Save(); - // } - //} - //// Added for transitions to un-numbered steps - if (checkRTF) - { - MyStepRTB.MyItemInfo = item; - // Force Save - This will put change bars on everything - if (MyStepRTB.Text.Contains("(Resolved Transition Text)") != false) MyStepRTB.OrigDisplayText.Save(MyStepRTB); - string afterText = item.MyContent.Text; - // aftertext is 'newrtf' - if (afterText != updatedText) - myProblems.RTBProblems.Add(item.ItemID, item.MyContent.ContentID, originalText, updatedText, MyStepRTB.Rtf, afterText, item.Path); - } - } - } - if (checkRTF) - { - Status = "Saving problems"; - string logFile = _LogPath + @"\RTBProblems.xml"; - ErrorCount = myProblems.RTBProblems.Count; - myProblems.Save(logFile); - if (ErrorCount > 0) - { - System.Windows.Forms.DialogResult answer = System.Windows.Forms.MessageBox.Show( - string.Format("{0} Differences found in Transition Text\r\nResults in {1}\r\n\r\nOpen Log File?", - ErrorCount, logFile), "Transitions Different", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question); - if(answer == System.Windows.Forms.DialogResult.Yes) - System.Diagnostics.Process.Start(logFile); - } - } - Status = "Done comparing"; - } - // Added for transitions to un-numbered steps - private AnnotationType _VerificationRequiredType; // Using this to flag table to grid conversions - public AnnotationType VerificationRequiredType - { - get - { - if (_VerificationRequiredType == null) - _VerificationRequiredType = AnnotationType.GetByName("Verification Required"); - return _VerificationRequiredType; - } - } - public string FixTransitionText(string Text, TransitionInfo tran, int contentID) - { - string lookFor = string.Format(@"", tran.TranType, tran.TransitionID, "{1,2}"); - string transText = tran.ResolvePathTo(); - //Console.WriteLine(">>>>> FixTransitionText"); - //Console.WriteLine("Text = {0}", Text); - //Console.WriteLine("lookFor = {0}", lookFor); - //Console.WriteLine("TransText = {0}", transText); - Match m = Regex.Match(Text, lookFor); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[1]; - _MyLoader.AddInfo("DataLoader.TransitionFixer:Content:{0}, {1}, {2}", contentID, tran.TransitionID, g.ToString()); - //Console.WriteLine("DataLoader.TransitionFixer:Content:{0}, {1}", tran.TransitionID, g.ToString()); - if (g.ToString() != transText) - Text = Text.Substring(0, g.Index) + transText + Text.Substring(g.Index + g.Length); - } - else - Console.WriteLine("Transition not Found"); - return Text; - } - public string FixTableTransitionText(string Text, TransitionInfo tran, Content content) - { - string lookFor = string.Format(@"", tran.TranType, tran.TransitionID, "{1,2}"); - string transText = tran.ResolvePathTo(); - //Console.WriteLine(">>>>> FixTransitionText"); - //Console.WriteLine("Text = {0}", Text); - //Console.WriteLine("lookFor = {0}", lookFor); - //Console.WriteLine("TransText = {0}", transText); - Match m = Regex.Match(Text, lookFor); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[1]; - _MyLoader.AddInfo("DataLoader.TransitionFixer:Grid:{0}, {1}, {2}", content.ContentID, tran.TransitionID, g.ToString()); -// Console.WriteLine("DataLoader.TransitionFixer:Grid:{0}, {1}", tran.TransitionID, g.ToString()); - if (g.ToString() != transText) - Text = Text.Substring(0, g.Index) + transText + Text.Substring(g.Index + g.Length); - } - else - Console.WriteLine("Transition not Found"); - - //VlnFlexGrid grd = new VlnFlexGrid(1, 1); - //XmlDocument xd = new XmlDocument(); - //xd.LoadXml(Text); - //grd.ReadXml(xd); - //grd.FixTableCellsHeightWidth(); // resize the column width/height - //using (StringWriter sw = new StringWriter()) - //{ - // grd.WriteXml(sw); - // //Console.WriteLine(sw.GetStringBuilder().ToString()); - // content.MyGrid.Data = sw.GetStringBuilder().ToString(); - // sw.Close(); - //} - return Text; - } - private string AdjustSizeAndGetSearchString(string strXML, Item itm) - { - string rstring = ""; - VlnFlexGrid grd = new VlnFlexGrid(1, 1); - XmlDocument xd = new XmlDocument(); - xd.LoadXml(strXML); - grd.ReadXml(xd); - //using (StringReader sr = new StringReader(strXML)) - //{ - // grd.ReadXml(sr); - // sr.Close(); - //} - grd.FixTableCellsHeightWidth(); // resize the column width/height - rstring = grd.GetSearchableText(); - using (StringWriter sw = new StringWriter()) - { - grd.WriteXml(sw); - itm.MyContent.MyGrid.Data = sw.GetStringBuilder().ToString(); - sw.Close(); - } - return rstring; - } - } -} diff --git a/PROMS/DataLoader/TransitionFixer.cs.bak b/PROMS/DataLoader/TransitionFixer.cs.bak deleted file mode 100644 index 9c956175..00000000 --- a/PROMS/DataLoader/TransitionFixer.cs.bak +++ /dev/null @@ -1,269 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Volian.Controls.Library; -using VEPROMS.CSLA.Library; -using System.Text.RegularExpressions; -using Volian.Base.Library; -using System.Xml; -using System.IO; - -namespace DataLoader -{ - public delegate void TransitionFixerEvent(object sender, TransitionFixerEventArgs args); - public class TransitionFixerEventArgs - { - private string _MyStatus; - - public string MyStatus - { - get { return _MyStatus; } - set { _MyStatus = value; } - } - public TransitionFixerEventArgs(string myStatus) - { - _MyStatus = myStatus; - } - } - class TransitionFixer - { - public event TransitionFixerEvent StatusChanged; - private void OnStatusChanged(object sender, TransitionFixerEventArgs args) - { - if (StatusChanged != null) - StatusChanged(sender, args); - } - private string _Status; - - public string Status - { - get { return _Status; } - set - { - _Status = value; - OnStatusChanged(this, new TransitionFixerEventArgs(_Status)); - } - } - private int _ErrorCount = 0; - - public int ErrorCount - { - get { return _ErrorCount; } - set { _ErrorCount = value; } - } - - private StepRTB _MyStepRTB; - - public StepRTB MyStepRTB - { - get { return _MyStepRTB; } - } - private string _LogPath; - public TransitionFixer(StepRTB myStepRTB,string logpath) - { - _MyStepRTB = myStepRTB; - _LogPath = logpath; - } - public TimeSpan Process(bool checkRTF) - { - DateTime tstart = DateTime.Now; - ProcessTransitions(checkRTF); - return DateTime.Now - tstart; - } - private void ProcessTransitions(bool checkRTF) - { - Status = "Getting List..."; - // Loop through all Items and check before and after text - ItemInfoList myListFrom = ItemInfoList.GetListTranFrom(); - ItemInfoList myListTo = ItemInfoList.GetListTranTo(); - ConversionRTBProblems myProblems = new ConversionRTBProblems(); - int i = 0; - foreach (ItemInfo item in myListFrom) - { - if (item.MyContent.ContentID == 311) - Console.WriteLine(); - Status = string.Format("Processing {0} of {1} steps", ++i, myListFrom.Count); - //MyStepRTB.ViewRTB = false; - string originalText = item.MyContent.Text; - string updatedText = item.MyContent.Text; - if (item.MyContent.MyGrid != null) - { - originalText = item.MyContent.MyGrid.Data; - updatedText = (item.MyContent.MyGrid.Data.Replace("<START]", ""); - } - // Exclude items that are not connected (Dummy steps for invalid transition destinations) - if (item.ItemDocVersionCount != 0 || item.MyPrevious != null || item.MyParent != null) - { - if (item.MyContent.ContentTransitionCount > 0) - { - //updatedText = Volian.Controls.Library.DisplayText.StaticRemoveRtfStyles(updatedText, item); - foreach (TransitionInfo tran in item.MyContent.ContentTransitions) - { - try - { - if (item.MyContent.MyGrid != null) - updatedText = FixTableTransitionText(updatedText, tran, item.MyContent.Get()); - else - updatedText = FixTransitionText(updatedText, tran); - } - catch (Exception ex) - { - Console.WriteLine("{0} {1}", ex.GetType().Name, ex.Message); - } - // Added for transitions to un-numbered steps - if (tran.NewTransToUnNumberedItem) item.NewTransToUnNumberedItem = true; - } - } - if (updatedText.EndsWith(" ")) updatedText = updatedText.Substring(0, updatedText.Length - 1); - if (item.MyContent.MyGrid != null) - { - using (Item itm = item.Get()) - { - updatedText = (updatedText.Replace("", "[END>"); - string sstring = AdjustSizeAndGetSearchString(updatedText, itm); - itm.MyContent.Text = sstring; - if (item.NewTransToUnNumberedItem) - { - ItemAnnotation ia = itm.ItemAnnotations.Add(VerificationRequiredType); - ia.SearchText = "Transition to un-numbered step"; - ia.UserID = "Migration"; - } - itm.Save(); - } - } - else - { - if (item.NewTransToUnNumberedItem) - { - using (Item itm = item.Get()) - { - ItemAnnotation ia = itm.ItemAnnotations.Add(VerificationRequiredType); - ia.SearchText = "Transition to un-numbered step"; - ia.UserID = "Migration"; - itm.Save(); - } - } - using (Content c = item.MyContent.Get()) - { - c.Text = updatedText; - c.Save(); - } - } - // Added for transitions to un-numbered steps - if (checkRTF) - { - MyStepRTB.MyItemInfo = item; - // Force Save - This will put change bars on everything - if (MyStepRTB.Text.Contains("(Resolved Transition Text)") != false) MyStepRTB.OrigDisplayText.Save(MyStepRTB); - string afterText = item.MyContent.Text; - // aftertext is 'newrtf' - if (afterText != updatedText) - myProblems.RTBProblems.Add(item.ItemID, item.MyContent.ContentID, originalText, updatedText, MyStepRTB.Rtf, afterText, item.Path); - } - } - } - if (checkRTF) - { - Status = "Saving problems"; - string logFile = _LogPath + @"\RTBProblems.xml"; - ErrorCount = myProblems.RTBProblems.Count; - myProblems.Save(logFile); - if (ErrorCount > 0) - { - System.Windows.Forms.DialogResult answer = System.Windows.Forms.MessageBox.Show( - string.Format("{0} Differences found in Transition Text\r\nResults in {1}\r\n\r\nOpen Log File?", - ErrorCount, logFile), "Transitions Different", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question); - if(answer == System.Windows.Forms.DialogResult.Yes) - System.Diagnostics.Process.Start(logFile); - } - } - Status = "Done comparing"; - } - // Added for transitions to un-numbered steps - private AnnotationType _VerificationRequiredType; // Using this to flag table to grid conversions - public AnnotationType VerificationRequiredType - { - get - { - if (_VerificationRequiredType == null) - _VerificationRequiredType = AnnotationType.GetByName("Verification Required"); - return _VerificationRequiredType; - } - } - public string FixTransitionText(string Text, TransitionInfo tran) - { - if (tran.MyItemToID.ToString().Contains("diamond")) - Console.WriteLine(); - string lookFor = string.Format(@"", tran.TranType, tran.TransitionID, "{1,2}"); - string transText = tran.ResolvePathTo(); - //Console.WriteLine(">>>>> FixTransitionText"); - //Console.WriteLine("Text = {0}", Text); - //Console.WriteLine("lookFor = {0}", lookFor); - //Console.WriteLine("TransText = {0}", transText); - Match m = Regex.Match(Text, lookFor); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[1]; - if (g.ToString() != transText) - Text = Text.Substring(0, g.Index) + transText + Text.Substring(g.Index + g.Length); - } - else - Console.WriteLine("Transition not Found"); - return Text; - } - public string FixTableTransitionText(string Text, TransitionInfo tran, Content content) - { - string lookFor = string.Format(@"", tran.TranType, tran.TransitionID, "{1,2}"); - string transText = tran.ResolvePathTo(); - //Console.WriteLine(">>>>> FixTransitionText"); - //Console.WriteLine("Text = {0}", Text); - //Console.WriteLine("lookFor = {0}", lookFor); - //Console.WriteLine("TransText = {0}", transText); - Match m = Regex.Match(Text, lookFor); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[1]; - if (g.ToString() != transText) - Text = Text.Substring(0, g.Index) + transText + Text.Substring(g.Index + g.Length); - } - else - Console.WriteLine("Transition not Found"); - - //VlnFlexGrid grd = new VlnFlexGrid(1, 1); - //XmlDocument xd = new XmlDocument(); - //xd.LoadXml(Text); - //grd.ReadXml(xd); - //grd.FixTableCellsHeightWidth(); // resize the column width/height - //using (StringWriter sw = new StringWriter()) - //{ - // grd.WriteXml(sw); - // //Console.WriteLine(sw.GetStringBuilder().ToString()); - // content.MyGrid.Data = sw.GetStringBuilder().ToString(); - // sw.Close(); - //} - return Text; - } - private string AdjustSizeAndGetSearchString(string strXML, Item itm) - { - string rstring = ""; - VlnFlexGrid grd = new VlnFlexGrid(1, 1); - XmlDocument xd = new XmlDocument(); - xd.LoadXml(strXML); - grd.ReadXml(xd); - //using (StringReader sr = new StringReader(strXML)) - //{ - // grd.ReadXml(sr); - // sr.Close(); - //} - grd.FixTableCellsHeightWidth(); // resize the column width/height - rstring = grd.GetSearchableText(); - using (StringWriter sw = new StringWriter()) - { - grd.WriteXml(sw); - itm.MyContent.MyGrid.Data = sw.GetStringBuilder().ToString(); - sw.Close(); - } - return rstring; - } - } -} diff --git a/PROMS/DataLoader/Transitions.cs b/PROMS/DataLoader/Transitions.cs deleted file mode 100644 index 1357e71c..00000000 --- a/PROMS/DataLoader/Transitions.cs +++ /dev/null @@ -1,427 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class Loader - { - Dictionary> _ContentMigrationErrors = new Dictionary>(); - List _TransitionMigrationErrors = null; - //private void AddContentMigrationError(Content fromCon,string errorMsg) - //{ - // if (!_ContentMigrationErrors.ContainsKey(fromCon.ContentID)) - // _ContentMigrationErrors.Add(fromCon.ContentID,new List()); - // _ContentMigrationErrors[fromCon.ContentID].Add(errorMsg); - //} - - private string AddTrans(OleDbConnection cn, Content fromCon, DataRow dr, DataRow dr2, string pth) - { - List migrationErrors = new List(); - string thekey = dr["TONUMBER"].ToString() + "|" + TextConvert.ConvertSeq(dr["TOSEQUENCE"].ToString()); - if (thekey.EndsWith("0S")) - thekey = thekey.Substring(0, thekey.Length - 1); - string dti = dr["DTI"].ToString().PadRight(18, ' '); - string userid = dti.Substring(13, 5).Trim(); - int itype = 0; - ConfigInfo ci = null; - //string otranskey = null; - // The transition type was stored as a character & also, when read in thru - // ado.net may have been converted into unicode. So in order to get the - // correct type, first, use the TextConvert to eliminate the conversion done - // by ado.net. Then convert to a number. The 'anding of 0x80' flags that it - // is a formatted transition (i.e. this was done for byron/braidwood to - // show the transition with a page number or not). The 'anding of 0x7f' gets - // the actual number when subtracted from 0x30 (the value of the 0 character). - try - { - char typech = TextConvert.ConvertSeq(dr["TYPE"].ToString())[0]; - int tmpitype = Convert.ToInt32(typech); - if ((tmpitype & 0x80) > 0) - { - ci = new ConfigInfo(null); - ci.AddItem("Transition", "Formatted", "True"); - } - itype = (tmpitype&0x7F) - 0x30; - } - catch (Exception ex) - { - frmMain.AddError(ex,"Error converting transition type '{0}'",dr["TYPE"].ToString()); - log.Error("Error converting transition type"); - log.ErrorFormat("type from database = {0}", dr["TYPE"].ToString()); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - itype = -1; - } - DateTime dts = GetDTS(MakeDate(dti.Substring(0, 8).Trim()), dti.Substring(8, 5).TrimEnd()); - - // if it's in the dictionary of structure elements already migrated, just use this - // structure id, or if it's in the dictionary of structure elements that have - // not been migrated but a record was created from this code, use it. Otherwise - // create a new structure record and use its id, its data will be updated later. - // a structure record. - Item toItem = null; - Item toItem2 = null; - if (itype == 6) // Outside Transition - { - ItemInfo tmp = _OutTran.GetItem(thekey, migrationErrors); - if (tmp != null) - toItem = tmp.Get(); - else - { - //toItem = Item.New(null, TransDummyCont, DateTime.Now, "Migration"); - fromCon.Save(); - migrationErrors.Add("Transition Error: Missing Data - " + _OutTran.GetDescription(thekey) + ". Converted to text"); - if (!_ContentMigrationErrors.ContainsKey(fromCon.ContentID)) - _ContentMigrationErrors.Add(fromCon.ContentID, migrationErrors); - return _OutTran.GetTransitionText(thekey); - } - toItem2 = toItem; - // the 32-bit program will no longer have a special type for outside transitions - make it a - // type of 0 (procedure with optional step). - itype = 0; - } - else - { - if (itype > 6) itype--; // Corrected to match transformat table (16-bit skips type 6 because it's an outside transition) - if (dicTrans_ItemDone.ContainsKey(thekey)) - { - toItem = dicTrans_ItemDone[thekey]; - if (toItem.ContentID == TransDummyCont.ContentID) - _TransitionMigrationErrors.Add(thekey); - } - else - { - if (dicTrans_ItemIds.ContainsKey(thekey)) - { - toItem = dicTrans_ItemIds[thekey]; - if (toItem.ContentID == TransDummyCont.ContentID) - _TransitionMigrationErrors.Add(thekey); - } - else - { - // note that parent is null right now - it will be filled in later. - //toItem = Item.MakeItem(null, fromCon, DateTime.Now, "Migration"); - toItem = Item.New(null, TransDummyCont, DateTime.Now, "Migration"); - dicTrans_ItemIds.Add(thekey, toItem); - _TransitionMigrationErrors.Add(thekey); - } - } - - // if there is data in dr2, it means that it is a range transition. Get its item - // data too. - toItem2 = toItem; - if (dr2 != null) - { - string thekey2 = dr2["TONUMBER"].ToString() + "|" + TextConvert.ConvertSeq(dr2["TOSEQUENCE"].ToString()); - - // Range transitions that are type 2 are called 'AND' transitions. - // Example: Continue with steps 5b, 5c and 5d. - // if the second key is greater than the first key, then the transition terminates - // at the location specified in the second key. - // If the second key is less than or equal the first key, the transition extends - // to the last sibling of the first key. - // In data, these are represented with the SQL database field in the transitions - // table 'IsRange' == 2, toid and rangeid. In the content record, the link is - // TransitionRange:[type] [tranid] [toid] [rangeid]. - - if (itype == 2 && thekey.CompareTo(thekey2) >= 0) thekey2 = thekey; - if (dicTrans_ItemDone.ContainsKey(thekey2)) - { - toItem2 = dicTrans_ItemDone[thekey2]; - if (toItem2.ContentID == TransDummyCont.ContentID) - _TransitionMigrationErrors.Add(thekey2); - } - else - { - if (dicTrans_ItemIds.ContainsKey(thekey2)) - { - toItem2 = dicTrans_ItemIds[thekey2]; - if (toItem2.ContentID == TransDummyCont.ContentID) - _TransitionMigrationErrors.Add(thekey2); - } - else - { - toItem2 = Item.MakeItem(null, TransDummyCont, DateTime.Now, "Migration"); - dicTrans_ItemIds.Add(thekey2, toItem2); - _TransitionMigrationErrors.Add(thekey2); - } - } - } - } - if (userid == null || userid == "") userid = "Migration"; - string results = null; - try - { - int isRange = 0; - if (toItem.ItemID != toItem2.ItemID) - isRange = 1; - else if (itype == 2) - isRange = 2; - using (Transition tr = Transition.New(fromCon, toItem, toItem2, isRange, itype, ci != null ? ci.ToString() : null, dts, userid)) - { - //if (otranskey != null) - // tr.MyZTransition.Oldto = otranskey; // info to finish outside transition processing later - //else - tr.MyZTransition.Oldto = dr["OLDTO"].ToString(); - if (!tr.IsSavable) ErrorRpt.ErrorReport(tr); - tr.Save(); - if (migrationErrors.Count > 0) - _ContentMigrationErrors.Add(fromCon.ContentID, migrationErrors); - if (toItem.ItemID == toItem2.ItemID && itype != 2) - results = string.Format(@"\v \v0 ", tr.TranType, tr.TransitionID, tr.ToID); - else - results = string.Format(@"\v \v0 ", tr.TranType, tr.TransitionID, tr.ToID, tr.RangeID); - } - } - catch (Exception ex) - { - frmMain.AddError(ex, "Error addition transition record"); - log.Error("Error addition transition record"); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - } - return results; - } - - private string MigrateTrans(OleDbConnection cn, string textm, string seqcvt, Content content, string pth) - { - // TODO: BYRON DATA WILL GENERATE A TRANSITION ERROR WHEN IT IS USED IN PROMS 2010 - StringBuilder trtxt = new StringBuilder(); - int instance = 0; - int beg = 0; - DataTable dt = null; - DataSet ds = null; - OleDbDataAdapter da = null; - - char[] chrtrn = { '\x252C', '\x2566' }; - int tok = textm.IndexOfAny(chrtrn); - if (tok > -1) - { - string cmd = "SELECT * FROM [tran] WHERE [FROMNUMBER]='" + ProcNumber.Replace("'", "''") + "' AND [FROMSEQUEN] ='" + seqcvt + "' ORDER BY [FROMINSTAN]"; - da = new OleDbDataAdapter(cmd, cn); - // get transition records for this step. - ds = new DataSet(); - try - { - da.Fill(ds); - dt = ds.Tables[0]; - dt.CaseSensitive = true; - } - catch (Exception ex) - { - frmMain.AddError(ex, "Error getting transitions '{0}' '{1}'", ProcNumber, seqcvt); - log.Error("Error getting transitions"); - log.ErrorFormat("from number = {0} oldstepsequence = {1}", ProcNumber, seqcvt); - log.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - ds.Dispose(); - da.Dispose(); - return textm; - } - } - while (tok > -1) - { - // found a transition token, add the token and transition id into the string and - // add an transition record for it. Later there may be text added. - trtxt.Append(textm.Substring(beg, tok - beg)); - // we have too many tokens and not enough usage records - report an error... - if (instance >= dt.Rows.Count) - { - log.ErrorFormat("Error - ran out of transition records for step, check data "); - log.ErrorFormat("from number = {0} oldstepsequence = {1}", ProcNumber, seqcvt); - } - else - { - DataRow dr = dt.Rows[instance]; - - // if type is 2 or 3, this is a range transition, need to get the next - // record too - bool trange = false; - if (dr["Type"].ToString() == "2" || dr["Type"].ToString() == "3") - trange = true; - - string rectxt = null; - if (trange) - { - instance++; - DataRow dr2 = dt.Rows[instance]; - rectxt = AddTrans(cn, content, dr, dr2, pth); - } - else - rectxt = AddTrans(cn, content, dr, null, pth); - //trtxt.Append(textm[tok]); - trtxt.Append(rectxt); - } - instance++; - beg = tok + 1; - if (beg > textm.Length) - { - tok = -1; - da.Dispose(); - } - else - tok = textm.IndexOfAny(chrtrn, beg); - } - if (beg < textm.Length) - trtxt.Append(textm.Substring(beg, textm.Length - beg)); - if (dt.Rows.Count > instance + 1) - { - log.ErrorFormat("Error - extra transition records for step, check data "); - log.ErrorFormat("from number = {0} oldstepsequence = {1}", ProcNumber, seqcvt); - } - ds.Dispose(); - da.Dispose(); - return trtxt.ToString(); - } - private void ShowMissingTransitions(DocVersion docver) - { - if (dicTrans_ItemIds.Keys.Count > 0) - { - // see if any end in |A0, if so, point these to the procedure associated with it. - CleanupTransToNonExistentSectionA0(docver); - foreach (string s in dicTrans_ItemIds.Keys) - { - //log.WarnFormat("{0} - {1}", s, dicTrans_ItemIds[s]); - frmMain.AddError("Missing Transition Destination {0} - {1}", s, dicTrans_ItemIds[s].ItemID); - //AddItemAnnotation(dicTrans_ItemIds[s]); - } - } - foreach (string s in dicTrans_MigrationErrors.Keys) - { - foreach (Item itm in dicTrans_MigrationErrors[s]) - { - ItemAnnotation ia = itm.ItemAnnotations.Add(MigrationErrorType); - ia.SearchText = "Transition Error: Destination Missing - " + s; - ia.UserID = "Migration"; - itm.Save(); - } - } - - if (TransDummyCont.ContentItemCount > 0) - log.Warn("Bad transitions to 'dummy' content"); - foreach (ContentItem itm in TransDummyCont.ContentItems) - { - log.WarnFormat("ItemID = {0}", itm.ItemID); - //AddItemAnnotation(itm.MyItem); - } - - log.Info("End of Missing Transitions"); - } - - private void CleanupTransToNonExistentSectionA0(DocVersion docver) - { - - List RemoveFromDicTrans = new List(); - // see if any end in |A0, if so, point these to the procedure associated with it. - foreach (string s in dicTrans_ItemIds.Keys) - { - if (s.EndsWith("|A0")) - { - // make a list to store those that need changed because can't change data in - // a foreach: - RemoveFromDicTrans.Add(s); - Item item = dicTrans_ItemIds[s]; // to or range id. - //ItemInfo ii = ItemInfo.Get(item.ItemID); - - //get the proc id that will become the new to or range id. - string procnum = s.Substring(0, s.IndexOf("|")); - DocVersionInfo dvi = DocVersionInfo.Get(docver.VersionID); - IList iprcs = dvi.GetChildren(); - ItemInfo prc = null; - foreach (ItemInfo ii in iprcs) - { - if (ii.DisplayNumber == procnum) - { - prc = ii; - break; - } - } - if (prc != null) - { - // For each transition that points to the A0, make it point to the proc. - // First, find all of them by getting transitions with the A0 (dummy - // transition record). Then update the to or range id in the transition - // record & then update the content/from part. - List transToChg = new List(); - List transRgChg = new List(); - TransitionInfoList til = TransitionInfoList.GetByToID(item.ItemID); - foreach (TransitionInfo ti in til) UpdateTranDataForA0(prc, ti.TransitionID, false); - til = TransitionInfoList.GetByRangeID(item.ItemID); - foreach (TransitionInfo tir in til) UpdateTranDataForA0(prc, tir.TransitionID, true); - } - } - } - foreach (string str in RemoveFromDicTrans) - { - dicTrans_ItemIds.Remove(str); - dicTrans_MigrationErrors.Remove(str); - } - } - private static void UpdateTranDataForA0(ItemInfo procItem, int transid, bool isRange) - { - int type; - int oldto; - int oldrg; - int oldfrom; - using (Transition t = Transition.Get(transid)) - { - type = t.TranType; - oldto = t.ToID; - oldrg = t.RangeID; - oldfrom = t.FromID; - if (!isRange) - { - t.MyItemToID = procItem.Get(); - t.MyItemRangeID = procItem.Get(); - } - else - t.MyItemRangeID = procItem.Get(); - t.Save(); - } - using (Content c = Content.Get(oldfrom)) - { - string lookFor = (isRange || oldto != oldrg) ? string.Format(@"#Link:TransitionRange:{0} {1} {2} {3}", type, transid, oldto, oldrg) : - string.Format(@"#Link:Transition:{0} {1} {2}", type, transid, oldto); - string replaceWith = isRange ? string.Format(@"#Link:TransitionRange:{0} {1} {2} {3}", type, transid, oldto, procItem.ItemID) : - oldto != oldrg ? string.Format(@"#Link:TransitionRange:{0} {1} {2} {3}", type, transid, procItem.ItemID, oldrg) : - string.Format(@"#Link:Transition:{0} {1} {2}", type, transid, procItem.ItemID); - c.Text = c.Text.Replace(lookFor, replaceWith); - c.Save(); - } - } - - private void AddItemAnnotation(Item itm) - { - foreach (ItemTransition_ToID tmp in itm.ItemTransitions_ToID) - { - foreach (ContentItem ci in tmp.MyContent.ContentItems) - { - ItemAnnotation ia = ci.MyItem.ItemAnnotations.Add(MigrationErrorType); - ia.SearchText = "Transition Error: Missing end point"; - ia.UserID = "Migration"; - ci.MyItem.Save(); - } - } - } - - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/UIFileNameEditor.cs b/PROMS/DataLoader/UIFileNameEditor.cs deleted file mode 100644 index b1b14082..00000000 --- a/PROMS/DataLoader/UIFileNameEditor.cs +++ /dev/null @@ -1,111 +0,0 @@ -using System; -using System.ComponentModel; -using System.Drawing.Design; -//using System.Runtime.CompilerServices; -using System.Windows.Forms; - -namespace DataLoader -{ - - public class UIFilenameEditor : System.Drawing.Design.UITypeEditor - { - public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) - { - if (context != null && context.Instance != null) - { - if (!context.PropertyDescriptor.IsReadOnly) - { - return UITypeEditorEditStyle.Modal; - } - } - return UITypeEditorEditStyle.None; - } - [RefreshProperties(RefreshProperties.All)] - public override object EditValue(ITypeDescriptorContext context, System.IServiceProvider provider, object value) - { - if (context == null || provider == null || context.Instance == null) - { - return base.EditValue(provider, value); - } - FileDialog fileDlg; - if (context.PropertyDescriptor.Attributes[typeof(SaveFileAttribute)] == null) - { - fileDlg = new OpenFileDialog(); - } - else - { - fileDlg = new SaveFileDialog(); - } - fileDlg.Title = "Select " + context.PropertyDescriptor.DisplayName; - fileDlg.FileName = (string)value; - FileDialogFilterAttribute filterAtt = (FileDialogFilterAttribute)context.PropertyDescriptor.Attributes[typeof(FileDialogFilterAttribute)]; - if (filterAtt != null) - { - fileDlg.Filter = filterAtt.Filter; - } - if (fileDlg.ShowDialog() == DialogResult.OK) - { - value = fileDlg.FileName; - } - fileDlg.Dispose(); - return value; - } - [AttributeUsage(AttributeTargets.Property)] - public class FileDialogFilterAttribute : Attribute - { - private string _filter; - - public string Filter - { - get - { - return this._filter; - } - } - public FileDialogFilterAttribute(string filter) - { - this._filter = filter; - } - } - [AttributeUsage(AttributeTargets.Property)] - public class SaveFileAttribute : Attribute - { - - } - public enum FileDialogType - { - LoadFileDialog, - SaveFileDialog - } - } - public class UIFolderEditor : System.Drawing.Design.UITypeEditor - { - public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) - { - if (context != null && context.Instance != null) - { - if (!context.PropertyDescriptor.IsReadOnly) - { - return UITypeEditorEditStyle.Modal; - } - } - return UITypeEditorEditStyle.None; - } - [RefreshProperties(RefreshProperties.All)] - public override object EditValue(ITypeDescriptorContext context, System.IServiceProvider provider, object value) - { - if (context == null || provider == null || context.Instance == null) - { - return base.EditValue(provider, value); - } - FolderBrowserDialog folderDlg=new FolderBrowserDialog(); - folderDlg.SelectedPath = (string)value; - if (folderDlg.ShowDialog() == DialogResult.OK) - { - value = folderDlg.SelectedPath; - } - folderDlg.Dispose(); - return value; - } - } -} diff --git a/PROMS/DataLoader/WordDocument.cs b/PROMS/DataLoader/WordDocument.cs deleted file mode 100644 index a36cc425..00000000 --- a/PROMS/DataLoader/WordDocument.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Volian.MSWord; -using LBWordLibrary; -using System.Threading; - -namespace DataLoader -{ - class WordDocument - { - private string _FileName; - public string FileName - { - get { return _FileName; } - set { _FileName = value; } - } - private string _ASCII = null; - public string ASCII - { - get { return _ASCII; } - set { _ASCII = value; } - } - private float _DocLen = 1.0F; - public float DocLen - { - get { return _DocLen; } - set { _DocLen = value; } - } - private string _Stype; - /// - /// 16-bit's type[1] used the following codes to represent the respective lpi setting - /// - /// char far typestr[] = "*pP46f7L"; - /// - /// char * far printtypes[] = { - /// "Compressed, 8 lines per inch", - /// "Elite, 6 lines per inch", - /// "Pica, 6 lines per inch", - /// "Default font, 4 Lines Per Inch", - /// "Default font, 6 Lines Per Inch", - /// "Compressed 6 LPI", - /// "Default font, 7 Lines Per Inch", - /// "Special Landscape, Elite, 6 lines per inch" - /// - public string Stype - { - get { return _Stype; } - set - { - _Stype = value; - if (_Stype != null) - { - if (_Stype != null) - { - // stype[1] == 'p' or 'P' or '6' 'f' or 'L' get spc = 6 - if (_Stype[1] == '*') LPI = 8; - else if (_Stype[1] == '4') LPI = 4; - else if (_Stype[1] == '7') LPI = 7; - // if need landscape set too: bool landscape = (stype[1] == 'L'); - } - } - } - } - private int _LPI = 6; - public int LPI - { - get { return _LPI; } - set { _LPI = value; } - } - private string _OutFileName; - public string OutFileName - { - get { return _OutFileName; } - set { _OutFileName = value; } - } - private bool _IsLandscape; - public bool IsLandscape - { - get { return _IsLandscape; } - set { _IsLandscape = value; } - } - public WordDocument(string fileName, string stype, string outFileName, bool isLandscape) - { - FileName = fileName; - Stype = stype; - OutFileName = outFileName; - IsLandscape = isLandscape; - } - public void GetAsciiFromWord() - { - WordDoc myWordDoc = null; - try - { - myWordDoc = new WordDoc(FileName); - myWordDoc.SetLineSpacing(LPI); - if (IsLandscape) - { - myWordDoc.MyWordDoc.PageSetup.Orientation = LBWdOrientation.wdOrientLandscape; - } - try - { - DocLen = myWordDoc.Length; - } - catch (Exception ex1) - { - Console.WriteLine("{0} - {0}\r\n\r\n{1}", ex1.GetType().Name, ex1.Message); - } - ASCII = myWordDoc.MyWordDoc.Ascii; - myWordDoc.Save(OutFileName); - myWordDoc.Close(); - Thread.Sleep(500); - } - catch (Exception ex) - { - Console.WriteLine("Could not get Ascii", ex); - WordDoc.CloseApp(); - } - } - } -} diff --git a/PROMS/DataLoader/dlgExportImport.cs b/PROMS/DataLoader/dlgExportImport.cs deleted file mode 100644 index dc1771cf..00000000 --- a/PROMS/DataLoader/dlgExportImport.cs +++ /dev/null @@ -1,2706 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; -using System.Xml; -using System.IO; -using Ionic.Zip; - -namespace DataLoader -{ - public partial class dlgExportImport : Form - { - private Dictionary oldFormat; - private Dictionary newFormat; - private int oldRODbID; - private int newRODbID; - private FolderInfo _MyNewFolder; - public FolderInfo MyNewFolder - { - get { return _MyNewFolder; } - } - private string PEIPath; - private string _MyMode; - private FolderInfo MyFolder = null; - private ProcedureInfo MyProcedure = null; - private XmlAttribute AddAttribute(XmlDocument xd, string name, string value) - { - XmlAttribute xa = xd.CreateAttribute(name); - xa.InnerText = value; - return xa; - } - public dlgExportImport(string mode, FolderInfo folderInfo) - { - _MyMode = mode; - MyFolder = folderInfo; - InitializeComponent(); - this.Text = mode + " Dialog for " + folderInfo.Name; - } - public dlgExportImport(string mode, ProcedureInfo procedureInfo) - { - _MyMode = mode; - MyProcedure = procedureInfo; - InitializeComponent(); - this.Text = mode + " Dialog for " + procedureInfo.DisplayNumber; - } - private void dlgExportImport_Load(object sender, EventArgs e) - { - PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database; - if (!Directory.Exists(PEIPath)) - Directory.CreateDirectory(PEIPath); - if (_MyMode == "Import") - { - if (MyFolder.ChildFolderCount == 0) - { - Directory.Delete(PEIPath, true); - Directory.CreateDirectory(PEIPath); - } - } - pnlExport.Dock = DockStyle.Fill; - pnlImport.Dock = DockStyle.Fill; - if (_MyMode.ToLower() == "export") - { - sfd.InitialDirectory = PEIPath; - pnlExport.BringToFront(); - } - else - { - ofd.InitialDirectory = PEIPath; - pnlImport.BringToFront(); - } - this.Height = this.Height / 2; - } - private void btnExport_Click(object sender, EventArgs e) - { - if (MyFolder != null) - { - sfd.FileName = string.Format("{0}.expx", MyFolder.Name); - if (sfd.ShowDialog(this) == DialogResult.OK) - { - if (sfd.FileName != string.Empty) - { - txtExport.Text = sfd.FileName; - if (File.Exists(txtExport.Text)) - File.Delete(txtExport.Text); - MyExpxZipFile = new ZipFile(txtExport.Text, Encoding.UTF8); - MyExpxZipFile.Save(); - } - } - } - else if (MyProcedure != null) - { - txtExport.Text = string.Format(@"{0}\{1}.xml", PEIPath, MyProcedure.DisplayNumber); - } - } - private void txtExport_TextChanged(object sender, EventArgs e) - { - btnDoExport.Enabled = txtExport.TextLength > 0; - if (btnDoExport.Enabled) - lblExportStatus.Text = "Ready To Perform Export"; - else - lblExportStatus.Text = "Awaiting Export File Name:"; - } - private XmlWriter MyWriter = null; - private ZipFile MyExpxZipFile = null; - private ZipFile MyImpxZipFile = null; - private DateTime MyStart; - private void btnDoExport_Click(object sender, EventArgs e) - { - btnExport.Enabled = false; - if (MyFolder != null) - { - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoExport.Enabled = false; - lblExportStatus.Text = "Performing Export"; - SaveExportData(); - //SaveExportDataWriter(); - - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportStatus.Text = "Export Completed in " + elapsed.ToString(); - this.Cursor = Cursors.Default; - } - else if (MyProcedure != null) - { - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoExport.Enabled = false; - lblExportStatus.Text = "Performing Export"; - XmlDocument xd = new XmlDocument(); - ExportItem(xd, MyProcedure, "procedure"); - xd.Save(txtExport.Text); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportStatus.Text = "Export Completed in " + elapsed.ToString(); - this.Cursor = Cursors.Default; - } - btnCloseExport.Enabled = true; - } - private void SaveExportData() - { - XmlDocument xd = new XmlDocument(); - ExportFolder(xd, MyFolder, "folder"); - } - private void SaveExportDataWriter() - { - XmlWriterSettings ws = new XmlWriterSettings(); - ws.Indent = true; - ws.NewLineHandling = NewLineHandling.Entitize; - ws.CheckCharacters = false; - MyWriter = XmlWriter.Create(txtExport.Text, ws); - ExportFolder(MyFolder, "folder"); - MyWriter.Close(); - } - private void btnDoImport_Click(object sender, EventArgs e) - { - btnImport.Enabled = false; - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoImport.Enabled = false; - lblImportStatus.Text = "Performing Import"; - //LoadImportDataReader(); - TurnChangeManagerOff.Execute(); - LoadImportDataDocument(); - TurnChangeManagerOn.Execute(); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblImportStatus.Text = "Import Completed in " + elapsed.ToString(); - this.Cursor = Cursors.Default; - btnCloseImport.Enabled = true; - } - private void LoadImportDataDocument() - { - ZipEntry ze = MyExpxZipFile[0]; - string fn = PEIPath + @"\" + ze.FileName; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - XmlDocument xd = new XmlDocument(); - xd.Load(fn); - LoadFormats(xd); - Folder ff = AddFolder(Folder.Get(MyFolder.FolderID), xd); - if (ff == null) - { - MessageBox.Show("You can not import the same procedure set more than once", "Duplicate Import Error"); - return; - } - _MyNewFolder = FolderInfo.Get(ff.FolderID); - AddAnnotationTypes(xd); - DocVersionInfo dvi = AddDocVersion(ff, xd); - xd = null; - lblImportStatus.Text = "Creating Procedures..."; - Application.DoEvents(); - ProcedureInfo pi = null; - pbImportProcedure.Value = 0; - pbImportProcedure.Maximum = MyExpxZipFile.Entries.Count - 1; - for (int i = 1; i < MyExpxZipFile.Entries.Count; i++) - { - ze = MyExpxZipFile[i]; - fn = PEIPath + @"\" + ze.FileName; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - xd = new XmlDocument(); - xd.Load(fn); - pi = AddProcedure(xd.DocumentElement, dvi, pi); - } - DirectoryInfo di = new DirectoryInfo(PEIPath); - DirectoryInfo[] dis = di.GetDirectories(); - for (int d = 0; d < dis.Length; d++) - dis[d].Delete(true); - lblImportStatus.Text = "Updating Transitions"; - AddTransitions(); - SaveTransitionAndItemContentIDs(); - } - - private void LoadFormats(XmlDocument xd) - { - oldFormat = new Dictionary(); - XmlNodeList nl = xd.SelectNodes("folder/formats/format"); - foreach (XmlNode nd in nl) - { - int formatid = int.Parse(nd.Attributes.GetNamedItem("formatid").InnerText); - string name = nd.Attributes.GetNamedItem("name").InnerText; - oldFormat.Add(formatid, name); - } - newFormat = new Dictionary(); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - newFormat.Add(fi.Name, fi.FormatID); - } - Dictionary dicParentItem = null; - private void UpdateParentItem(int depth, ItemInfo ii) - { - if (dicParentItem == null) dicParentItem = new Dictionary(); - if (!dicParentItem.ContainsKey(depth)) dicParentItem.Add(depth, null); - dicParentItem[depth] = ii; - } - Dictionary dicPreviousItem = null; - private void UpdatePreviousItem(int depth, ItemInfo ii) - { - if (dicPreviousItem == null) dicPreviousItem = new Dictionary(); - if (!dicPreviousItem.ContainsKey(depth)) dicPreviousItem.Add(depth, null); - dicPreviousItem[depth] = ii; - } - Dictionary dicItemDepth = null; - private void UpdateItemDepth(int depth, int id) - { - if (dicItemDepth == null) dicItemDepth = new Dictionary(); - if (!dicItemDepth.ContainsKey(depth)) dicItemDepth.Add(depth, 0); - dicItemDepth[depth] = id; - } - private void LoadImportDataReader() - { - int pCount = 0; - int sCount = 0; - Folder folder = null; - DocVersion docversion = null; - Dictionary dicRofst = null; - Dictionary dicEntry = null; - ROFst rofst = null; - GetImportDataCounts(); - pbImportProcedure.Maximum = MyCounts.Count; - pbImportProcedure.Value = 0; - Application.DoEvents(); - FileStream fs = File.OpenRead(txtImport.Text); - XmlReaderSettings rs = new XmlReaderSettings(); - rs.CheckCharacters = false; - XmlReader xr = XmlReader.Create(fs, rs); - while (xr.Read()) - { - if (xr.IsStartElement()) - { - switch (xr.Name) - { - case "annotation": - AddAnnotation(xr); - break; - //case "association": - // break; - case "content": - { - if (xr.Depth == 3) //content for procedure - { - ItemInfo ii = AddProcedure(xr, docversion, dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - } - else - { - - int fromtype = dicItemDepth.ContainsKey(xr.Depth - 2) ? dicItemDepth[xr.Depth - 2] : 0; - switch (fromtype) - { - case 2: - { //sections - ItemInfo ii = AddSection(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 3: - { //cautions - ItemInfo ii = AddCaution(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 4: - { //notes - ItemInfo ii = AddNote(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 5: - { //rnos - ItemInfo ii = AddRNO(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 6: - { //steps - ItemInfo ii = AddStep(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 7: - { //tables - ItemInfo ii = AddTable(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - default: - break; - } - } - break; - } - case "document": - AddDocument(xr, dicEntry); - break; - case "docversion": - { - docversion = AddDocVersion(folder, xr); - UpdatePreviousItem(xr.Depth + 2, null); - break; - } - case "entry": - dicEntry = AddEntry(xr); - break; - case "folder": - folder = AddFolder(Folder.Get(MyFolder.FolderID), xr); - break; - case "grid": - AddGrid(xr); - break; - case "procedure": - { - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - pbImportProcedure.PerformStep(); - lblImportProcedure.Text = string.Format("{0} of {1} Procedures", pbImportProcedure.Value.ToString(), pbImportProcedure.Maximum.ToString()); - pCount++; - pbImportSection.Maximum = MyCounts[pCount].Count; - pbImportSection.Value = 0; - sCount = 0; - Application.DoEvents(); - break; - } - case "section": - { - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - pbImportSection.PerformStep(); - lblImportSection.Text = string.Format("{0} of {1} Sections", pbImportSection.Value.ToString(), pbImportSection.Maximum.ToString()); - sCount++; - pbImportStep.Maximum = MyCounts[pCount][sCount]; - pbImportStep.Value = 0; - Application.DoEvents(); - break; - } - case "step": - { - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - if (xr.Depth == 8) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - } - break; - } - case "caution": - case "note": - case "rno": - case "table": - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - break; - case "cautions": - case "notes": - case "rnos": - case "sections": - case "steps": - case "tables": - { - UpdateItemDepth(xr.Depth, int.Parse(xr.GetAttribute("fromtype"))); - UpdatePreviousItem(xr.Depth + 2, null); - UpdateParentItem(xr.Depth + 2, dicParentItem[xr.Depth - 1]); - break; - } - case "rodb": - { - MyRODb = AddRODb(xr); - rofst = AddROFst(dicRofst); - docversion.DocVersionAssociations.Add(rofst); - docversion.Save(); - break; - } - case "rofst": - dicRofst = GetROFstData(xr); - break; - case "rousage": - AddROUsage(xr); - break; - //case "transition": - // break; - default: - break; - } - Console.WriteLine("{0} - {1}", xr.Name, xr.Depth.ToString()); - } - } - pbImportProcedure.PerformStep(); - Application.DoEvents(); - fs.Close(); - FixImportDataTransitions(); - StoreItemContentIDs(); - ResolveExternalTransitions(folder); - } - private void SaveTransitionAndItemContentIDs() - { - XmlDocument xd = new XmlDocument(); - XmlElement xe = xd.CreateElement("items"); - xd.AppendChild(xe); - string fn = PEIPath + @"\items.xml"; - foreach (int key in Old2NewItem.Keys) - { - xe = xd.CreateElement("item"); - xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewItem[key].ToString())); - xd.DocumentElement.AppendChild(xe); - } - xd.Save(fn); - ZipEntry ze = MyImpxZipFile["items.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - xd = new XmlDocument(); - xe = xd.CreateElement("contents"); - xd.AppendChild(xe); - fn = PEIPath + @"\contents.xml"; - foreach (int key in Old2NewContent.Keys) - { - xe = xd.CreateElement("content"); - xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewContent[key].ToString())); - xd.DocumentElement.AppendChild(xe); - } - xd.Save(fn); - ze = MyImpxZipFile["contents.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - xd = new XmlDocument(); - xe = xd.CreateElement("transitions"); - xd.AppendChild(xe); - fn = PEIPath + @"\transitions.xml"; - if (PendingTransitions != null && PendingTransitions.DocumentElement.HasChildNodes) - { - foreach (XmlNode nd in PendingTransitions.DocumentElement.ChildNodes) - { - if(nd.InnerText == "") - xd.DocumentElement.AppendChild(xd.ImportNode(nd, true)); - } - xd.Save(fn); - } - ze = MyImpxZipFile["transitions.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - } - private void StoreItemContentIDs() - { - XmlDocument xd = new XmlDocument(); - string fn = PEIPath + @"\ExternalTransitions.xml"; - xd.Load(fn); - XmlElement xe = (XmlElement)xd.SelectSingleNode("externaltransitions/oldtonewitem"); - foreach (int key in Old2NewItem.Keys) - { - XmlElement xee = xd.CreateElement("item"); - XmlAttribute xa = AddAttribute(xd, "old", key.ToString()); - xee.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "new", Old2NewItem[key].ToString()); - xee.Attributes.SetNamedItem(xa); - xe.AppendChild(xee); - } - xd.Save(fn); - xe = (XmlElement)xd.SelectSingleNode("externaltransitions/oldtonewcontent"); - foreach (int key in Old2NewContent.Keys) - { - XmlElement xee = xd.CreateElement("content"); - XmlAttribute xa = AddAttribute(xd, "old", key.ToString()); - xee.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "new", Old2NewContent[key].ToString()); - xee.Attributes.SetNamedItem(xa); - xe.AppendChild(xee); - } - xd.Save(fn); - } - private void ResolveExternalTransitions(Folder folder) - { - XmlDocument xd = new XmlDocument(); - string fn = PEIPath + @"\ExternalTransitions.xml"; - xd.Load(fn); - AddStoredItemContentIDs(xd); - XmlNodeList nl = xd.SelectNodes("//transition[@folder!='']"); - foreach (XmlNode nd in nl) - { - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int fromid = int.Parse(nd.Attributes.GetNamedItem("fromid").InnerText); - int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - if (Old2NewContent.ContainsKey(fromid) && Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) - { - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - fromid = Old2NewContent[fromid]; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Content cc = Content.Get(fromid); - Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - cc.Text = cc.Text.Replace(lookfor, replacewith); - cc.Save(); - nd.Attributes.GetNamedItem("folder").InnerText = ""; - } - } - xd.Save(fn); - } - private void ReadTransitionAndItemContentIDs() - { - ZipEntry ze = MyImpxZipFile["items.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - string fn = PEIPath + @"\items.xml"; - XmlDocument xd = new XmlDocument(); - xd.Load(fn); - XmlNodeList nl = xd.SelectNodes("//item"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - //if (!Old2NewItem.ContainsKey(oldid)) - Old2NewItem.Add(oldid, newid); - } - ze = MyImpxZipFile["contents.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\contents.xml"; - xd = new XmlDocument(); - xd.Load(fn); - nl = xd.SelectNodes("//content"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - //if (!Old2NewContent.ContainsKey(oldid)) - Old2NewContent.Add(oldid, newid); - } - ze = MyImpxZipFile["libdocs.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\libdocs.xml"; - xd = new XmlDocument(); - xd.Load(fn); - nl = xd.SelectNodes("//libdoc"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - //if (!Old2NewContent.ContainsKey(oldid)) - Old2NewLibDoc.Add(oldid, newid); - } - ze = MyImpxZipFile["transitions.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Load(fn); - } - private void AddStoredItemContentIDs(XmlDocument xd) - { - XmlNodeList nl = xd.SelectNodes("//item"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - if (!Old2NewItem.ContainsKey(oldid)) - Old2NewItem.Add(oldid, newid); - } - nl = xd.SelectNodes("//content"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - if (!Old2NewContent.ContainsKey(oldid)) - Old2NewContent.Add(oldid, newid); - } - } - private void FixImportDataTransitions() - { - XmlDocument xd = new XmlDocument(); - string fn = PEIPath + @"\ExternalTransitions.xml"; - if (!File.Exists(fn)) - { - XmlElement xe = xd.CreateElement("externaltransitions"); - XmlElement xee = xd.CreateElement("oldtonewitem"); - xe.AppendChild(xee); - xee = xd.CreateElement("oldtonewcontent"); - xe.AppendChild(xee); - xee = xd.CreateElement("transitions"); - xe.AppendChild(xee); - xd.AppendChild(xe); - xd.Save(fn); - } - else - { - xd.Load(fn); - } - FileStream fs = File.OpenRead(txtImport.Text); - XmlReaderSettings rs = new XmlReaderSettings(); - rs.CheckCharacters = false; - XmlReader xr = XmlReader.Create(fs, rs); - while (xr.Read()) - { - if (xr.IsStartElement()) - { - switch (xr.Name) - { - case "transition": - AddTransitions(xr); - break; - case "externaltransition": - { - AddExternalTransition(xr, xd); - break; - } - default: - break; - } - } - } - fs.Close(); - xd.Save(fn); - } - private Dictionary> MyCounts = null; - private Dictionary MySubCounts = null; - private void GetImportDataCounts() - { - int pCount = 0; - int sCount = 0; - int tCount = 0; - MyCounts = new Dictionary>(); - MySubCounts = new Dictionary(); - FileStream fs = File.OpenRead(txtImport.Text); - XmlReaderSettings rs = new XmlReaderSettings(); - rs.CheckCharacters = false; - XmlReader xr = XmlReader.Create(fs, rs); - while (xr.Read()) - { - if (xr.IsStartElement()) - { - switch (xr.Name) - { - case "procedure": - { - if (pCount > 0) - { - MySubCounts.Add(sCount, tCount); - MyCounts.Add(pCount, MySubCounts); - sCount = 0; - tCount = 0; - MySubCounts = new Dictionary(); - } - pCount++; - break; - } - case "section": - { - if (sCount > 0) - { - MySubCounts.Add(sCount, tCount); - tCount = 0; - } - sCount++; - break; - } - case "step": - { - if (xr.Depth == 8) - tCount++; - break; - } - default: - break; - } - } - } - MySubCounts.Add(sCount, tCount); - MyCounts.Add(pCount, MySubCounts); - fs.Close(); - } - private void btnImport_Click(object sender, EventArgs e) - { - if (ofd.ShowDialog(this) == DialogResult.OK) - { - if (ofd.FileName != string.Empty) - { - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - PendingTransitions = new XmlDocument(); - FileInfo fi = new FileInfo(ofd.FileName); - string dn = fi.Directory.Name; - txtImport.Text = ofd.FileName; - ReadOptions ro = new ReadOptions(); - ro.Encoding = Encoding.UTF8; - MyExpxZipFile = ZipFile.Read(txtImport.Text, ro); - string fn = string.Format(@"{0}\{1}.impx", PEIPath, dn); - if (File.Exists(fn)) - { - MyImpxZipFile = ZipFile.Read(fn, ro); - ReadTransitionAndItemContentIDs(); - } - else - { - MyImpxZipFile = new ZipFile(fn, Encoding.UTF8); - //transitions - XmlElement xe = PendingTransitions.CreateElement("transitions"); - PendingTransitions.AppendChild(xe); - fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - //File.Delete(fn); - //itemids - XmlDocument xd = new XmlDocument(); - xe = xd.CreateElement("items"); - xd.AppendChild(xe); - fn = PEIPath + @"\items.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - //contentids - xd = new XmlDocument(); - xe = xd.CreateElement("contents"); - xd.AppendChild(xe); - fn = PEIPath + @"\contents.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - //libdocids - xd = new XmlDocument(); - xe = xd.CreateElement("libdocs"); - xd.AppendChild(xe); - fn = PEIPath + @"\libdocs.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - } - } - } - } - private void txtImport_TextChanged(object sender, EventArgs e) - { - btnDoImport.Enabled = txtImport.TextLength > 0; - if (btnDoImport.Enabled) - lblImportStatus.Text = "Ready To Perform Import"; - else - lblImportStatus.Text = "Awaiting Import File Name:"; - } - #region Export for Merge - private string FromFolderName = string.Empty; - private void ExportFolder(XmlDocument xd, FolderInfo fi, string nodename) - { - /* - FolderID - ParentID - DBID - Name - Title - ShortName - FormatID - ManualOrder - Config - DTS - UsrID - */ - lblExportStatus.Text = "Exporting Folder..."; - Application.DoEvents(); - FromFolderName = fi.Name; - XmlElement xe = xd.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xd, "folderid", fi.FolderID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "parentid", fi.ParentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "dbid", fi.DBID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "name", fi.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "title", fi.Title)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "shortname", fi.ShortName)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "formatid", fi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "manualorder", fi.ManualOrder.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "config", fi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "dts", fi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xd, "usrid", fi.UsrID.ToString())); - xd.AppendChild(xe); - ExportAnnotationTypes(xe, "annotationtypes"); - ExportFormats(xe, "formats"); - if (fi.FolderDocVersionCount > 0) - foreach (DocVersionInfo dvi in fi.FolderDocVersions) - ExportDocVersion(xe, dvi, "docversion"); - } - private void ExportFormats(XmlElement xn, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - ExportFormat(xe, fi, "format"); - xn.AppendChild(xe); - } - private void ExportFormat(XmlElement xn, FormatInfo fi, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", fi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", fi.Name)); - xn.AppendChild(xe); - } - private void ExportAnnotationTypes(XmlElement xn, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - AnnotationTypeInfoList atl = AnnotationTypeInfoList.Get(); - foreach (AnnotationTypeInfo ati in atl) - ExportAnnotationType(xe, ati, "annotationtype"); - xn.AppendChild(xe); - } - private void ExportAnnotationType(XmlElement xn, AnnotationTypeInfo ati, string nodename) - { - /* - TypeID - Name - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typeid", ati.TypeID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", ati.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ati.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ati.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ati.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportFolder(FolderInfo fi, string nodename) - { - /* - FolderID - ParentID - DBID - Name - Title - ShortName - FormatID - ManualOrder - Config - DTS - UsrID - */ - FromFolderName = fi.Name; - MyWriter.WriteStartDocument(); - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("folderid", fi.FolderID.ToString()); - MyWriter.WriteAttributeString("parentid", fi.ParentID.ToString()); - MyWriter.WriteAttributeString("dbid", fi.DBID.ToString()); - MyWriter.WriteAttributeString("name", fi.Name); - MyWriter.WriteAttributeString("title", fi.Title); - MyWriter.WriteAttributeString("shortname", fi.ShortName); - MyWriter.WriteAttributeString("formatid", fi.FormatID.ToString()); - MyWriter.WriteAttributeString("manualorder", fi.ManualOrder.ToString()); - MyWriter.WriteAttributeString("config", fi.Config); - MyWriter.WriteAttributeString("dts", fi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("usrid", fi.UsrID.ToString()); - - if (fi.FolderDocVersionCount > 0) - foreach (DocVersionInfo dvi in fi.FolderDocVersions) - ExportDocVersion(dvi, "docversion"); - MyWriter.WriteEndElement(); - MyWriter.WriteEndDocument(); - } - private void ExportDocVersion(XmlElement xn, DocVersionInfo dvi, string nodename) - { - /* - VersionID - FolderID - VersionType - Name - Title - ItemID - FormatID - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting DocVersion..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versionid", dvi.VersionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "folderid", dvi.FolderID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versiontype", dvi.VersionType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", dvi.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "title", dvi.Title)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", dvi.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", dvi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", dvi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", dvi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", dvi.UserID.ToString())); - xn.AppendChild(xe); - if (dvi.DocVersionAssociationCount > 0) - foreach (AssociationInfo ai in dvi.DocVersionAssociations) - ExportAssociation(xe, ai, "association"); - string fn = PEIPath + @"\folder.xml"; - xn.OwnerDocument.Save(fn); - MyExpxZipFile.AddFile(fn, "folder"); - MyExpxZipFile.Save(); - File.Delete(fn); - //here - lblExportStatus.Text = "Exporting Procedures..."; - Application.DoEvents(); - if (dvi.Procedures.Count > 0) - { - pbExportProcedure.Value = 0; - pbExportProcedure.Maximum = dvi.Procedures.Count; - lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures"; - foreach (ItemInfo ii in dvi.Procedures) - { - XmlDocument xd = new XmlDocument(); - ExportItem(xd, ii, "procedure"); - fn = string.Format(@"{0}\proc{1}.xml", PEIPath, pbExportProcedure.Value.ToString().PadLeft(4, '0')); - xd.Save(fn); - MyExpxZipFile.AddFile(fn, "procedures"); - MyExpxZipFile.Save(); - File.Delete(fn); - xd = null; - } - } - } - private void ExportDocVersion(DocVersionInfo dvi, string nodename) - { - /* - VersionID - FolderID - VersionType - Name - Title - ItemID - FormatID - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("versionid", dvi.VersionID.ToString()); - MyWriter.WriteAttributeString("folderid", dvi.FolderID.ToString()); - MyWriter.WriteAttributeString("versiontype", dvi.VersionType.ToString()); - MyWriter.WriteAttributeString("name", dvi.Name); - MyWriter.WriteAttributeString("title", dvi.Title); - MyWriter.WriteAttributeString("itemid", dvi.ItemID.ToString()); - MyWriter.WriteAttributeString("formatid", dvi.FormatID.ToString()); - MyWriter.WriteAttributeString("config", dvi.Config); - MyWriter.WriteAttributeString("dts", dvi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", dvi.UserID.ToString()); - if (dvi.DocVersionAssociationCount > 0) - foreach (AssociationInfo ai in dvi.DocVersionAssociations) - ExportAssociation(ai, "association"); - if (dvi.Procedures.Count > 0) - { - pbExportProcedure.Value = 0; - pbExportProcedure.Maximum = dvi.Procedures.Count; - lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures"; - foreach (ItemInfo ii in dvi.Procedures) - { - ExportItem(ii, "procedure"); - } - } - MyWriter.WriteEndElement(); - } - private void ExportAssociation(XmlElement xn, AssociationInfo ai, string nodename) - { - /* - AssociationID - VersionID - ROFstID - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting Association..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "associationid", ai.AssociationID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versionid", ai.VersionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstid", ai.ROFstID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ai.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ai.UserID.ToString())); - xn.AppendChild(xe); - ExportROFst(xe, ai.MyROFst, "rofst"); - } - private void ExportAssociation(AssociationInfo ai, string nodename) - { - /* - AssociationID - VersionID - ROFstID - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("associationid", ai.AssociationID.ToString()); - MyWriter.WriteAttributeString("versionid", ai.VersionID.ToString()); - MyWriter.WriteAttributeString("rofstid", ai.ROFstID.ToString()); - MyWriter.WriteAttributeString("config", ai.Config); - MyWriter.WriteAttributeString("dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ai.UserID.ToString()); - ExportROFst(ai.MyROFst, "rofst"); - MyWriter.WriteEndElement(); - } - private void ExportROFst(XmlElement xn, ROFstInfo fst, string nodename) - { - /* - ROFstID - RODbID - ROLookup - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting ROFst..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstid", fst.ROFstID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", fst.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rolookup", Convert.ToBase64String(fst.ROLookup))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", fst.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", fst.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", fst.UserID.ToString())); - xn.AppendChild(xe); - ExportRODb(xe, fst.MyRODb, "rodb"); - } - private void ExportROFst(ROFstInfo fst, string nodename) - { - /* - ROFstID - RODbID - ROLookup - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rofstid", fst.ROFstID.ToString()); - MyWriter.WriteAttributeString("rodbid", fst.RODbID.ToString()); - MyWriter.WriteAttributeString("rolookup", Convert.ToBase64String(fst.ROLookup)); - MyWriter.WriteAttributeString("config", fst.Config); - MyWriter.WriteAttributeString("dts", fst.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", fst.UserID.ToString()); - ExportRODb(fst.MyRODb, "rodb"); - MyWriter.WriteEndElement(); - } - private void ExportRODb(XmlElement xn, RODbInfo db, string nodename) - { - /* - RODbID - ROName - FolderPath - DBConnectionString - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting RODb..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", db.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "roname", db.ROName)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "folderpath", db.FolderPath)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dbconnectionstring", db.DBConnectionString)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", db.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", db.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", db.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportRODb(RODbInfo db, string nodename) - { - /* - RODbID - ROName - FolderPath - DBConnectionString - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rodbid", db.RODbID.ToString()); - MyWriter.WriteAttributeString("roname", db.ROName); - MyWriter.WriteAttributeString("folderpath", db.FolderPath); - MyWriter.WriteAttributeString("dbconnectionstring", db.DBConnectionString); - MyWriter.WriteAttributeString("config", db.Config); - MyWriter.WriteAttributeString("dts", db.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", db.UserID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportItem(XmlDocument xd, ItemInfo ii, string nodename) - { - XmlElement xe = xd.CreateElement(nodename); - xd.AppendChild(xe); - ExportItem(xe, ii, nodename); - } - private void ExportItem(XmlElement xn, ItemInfo ii, string nodename) - { - /* - ItemID - PreviousID - ContentID - DTS - */ - XmlElement xe = null; - if (xn.Name == "procedure") - xe = xn; - else - { - xe = xn.OwnerDocument.CreateElement(nodename); - xn.AppendChild(xe); - } - if (ii.IsProcedure) - { - pbExportProcedure.PerformStep(); - lblExportProcedure.Text = string.Format("{0} of {1} Procedures", pbExportProcedure.Value.ToString(), pbExportProcedure.Maximum.ToString()); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportTime.Text = "Elapsed Time: " + elapsed.ToString(); - Application.DoEvents(); - pbExportSection.Value = 0; - pbExportSection.Maximum = pbExportSection.Value; - pbExportStep.Value = 0; - pbExportStep.Maximum = pbExportStep.Value; - pbExportSection.Maximum = ii.Sections.Count; - } - if (ii.IsSection && ii.ActiveParent.IsProcedure) - { - pbExportSection.PerformStep(); - lblExportSection.Text = string.Format("{0} of {1} Sections", pbExportSection.Value.ToString(), pbExportSection.Maximum.ToString()); - Application.DoEvents(); - pbExportStep.Value = 0; - pbExportStep.Maximum = pbExportStep.Value; - if (ii.Steps != null) - pbExportStep.Maximum = ii.Steps.Count; - } - if (ii.IsStep && ii.ActiveParent.IsSection && ii.ActiveParent.ActiveParent.IsProcedure) - { - pbExportStep.PerformStep(); - lblExportStep.Text = string.Format("{0} of {1} Steps", pbExportStep.Value.ToString(), pbExportStep.Maximum.ToString()); - Application.DoEvents(); - } - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", ii.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "previousid", ii.PreviousID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ii.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ii.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - ExportContent(xe, ii.MyContent, "content"); - if (ii.ItemAnnotationCount > 0) - foreach (AnnotationInfo ai in ii.ItemAnnotations) - ExportAnnotation(xe, ai, "annotation"); - } - private void ExportItem(ItemInfo ii, string nodename) - { - /* - ItemID - PreviousID - ContentID - DTS - */ - if (ii.IsProcedure) - { - pbExportProcedure.PerformStep(); - lblExportProcedure.Text = string.Format("{0} of {1} Procedures", pbExportProcedure.Value.ToString(), pbExportProcedure.Maximum.ToString()); - Application.DoEvents(); - pbExportSection.Value = 0; - pbExportStep.Value = 0; - pbExportSection.Maximum = ii.Sections.Count; - } - if (ii.IsSection) - { - pbExportSection.PerformStep(); - lblExportSection.Text = string.Format("{0} of {1} Sections", pbExportSection.Value.ToString(), pbExportSection.Maximum.ToString()); - Application.DoEvents(); - pbExportStep.Value = 0; - if (ii.Steps != null) - pbExportStep.Maximum = ii.Steps.Count; - } - if (ii.IsStep) - { - pbExportStep.PerformStep(); - lblExportStep.Text = string.Format("{0} of {1} Steps", pbExportStep.Value.ToString(), pbExportStep.Maximum.ToString()); - Application.DoEvents(); - } - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("itemid", ii.ItemID.ToString()); - MyWriter.WriteAttributeString("previousid", ii.PreviousID.ToString()); - MyWriter.WriteAttributeString("contentid", ii.ContentID.ToString()); - MyWriter.WriteAttributeString("dts", ii.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - ExportContent(ii.MyContent, "content"); - if (ii.ItemAnnotationCount > 0) - foreach (AnnotationInfo ai in ii.ItemAnnotations) - ExportAnnotation(ai, "annotation"); - MyWriter.WriteEndElement(); - } - private void ExportContent(XmlElement xn, ContentInfo ci, string nodename) - { - /* - ContentID - Number - Text - Type - FormatID - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ci.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "number", ci.Number)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "text", ci.Text)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "type", ci.Type.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", ci.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ci.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ci.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ci.UserID.ToString())); - xn.AppendChild(xe); - if (ci.ContentTransitionCount > 0) - foreach (TransitionInfo ti in ci.ContentTransitions) - ExportTransition(xe, ti, "transition"); - if (ci.ContentRoUsageCount > 0) - foreach (RoUsageInfo ri in ci.ContentRoUsages) - ExportROUsage(xe, ri, "rousage"); - if (ci.ContentEntryCount > 0) - ExportEntry(xe, ci.MyEntry, "entry"); - if (ci.ContentGridCount > 0) - ExportGrid(xe, ci.MyGrid, "grid"); - if (ci.ContentPartCount > 0) - foreach (PartInfo pi in ci.ContentParts) - ExportPart(xe, pi, ((E_FromTypes)pi.FromType).ToString().ToLower()); - } - private void ExportContent(ContentInfo ci, string nodename) - { - /* - ContentID - Number - Text - Type - FormatID - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", ci.ContentID.ToString()); - MyWriter.WriteAttributeString("number", ci.Number); - MyWriter.WriteAttributeString("text", ci.Text); - MyWriter.WriteAttributeString("type", ci.Type.ToString()); - MyWriter.WriteAttributeString("formatid", ci.FormatID.ToString()); - MyWriter.WriteAttributeString("config", ci.Config); - MyWriter.WriteAttributeString("dts", ci.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ci.UserID.ToString()); - if (ci.ContentTransitionCount > 0) - foreach (TransitionInfo ti in ci.ContentTransitions) - ExportTransition(ti, "transition"); - if (ci.ContentRoUsageCount > 0) - foreach (RoUsageInfo ri in ci.ContentRoUsages) - ExportROUsage(ri, "rousage"); - if (ci.ContentEntryCount > 0) - ExportEntry(ci.MyEntry, "entry"); - if (ci.ContentGridCount > 0) - ExportGrid(ci.MyGrid, "grid"); - if (ci.ContentPartCount > 0) - foreach (PartInfo pi in ci.ContentParts) - ExportPart(pi, ((E_FromTypes)pi.FromType).ToString().ToLower()); - MyWriter.WriteEndElement(); - } - private void ExportGrid(XmlElement xn, GridInfo gi, string nodename) - { - /* - ContentID - Data - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", gi.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "data", gi.Data)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", gi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", gi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", gi.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportGrid(GridInfo gi, string nodename) - { - /* - ContentID - Data - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", gi.ContentID.ToString()); - MyWriter.WriteAttributeString("data", gi.Data); - MyWriter.WriteAttributeString("config", gi.Config); - MyWriter.WriteAttributeString("dts", gi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", gi.UserID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportEntry(XmlElement xn, EntryInfo ei, string nodename) - { - /* - ContentID - DocID - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ei.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docid", ei.DocID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ei.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ei.UserID.ToString())); - xn.AppendChild(xe); - ExportDocument(xe, ei.MyDocument, "document"); - } - private void ExportEntry(EntryInfo ei, string nodename) - { - /* - ContentID - DocID - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", ei.ContentID.ToString()); - MyWriter.WriteAttributeString("docid", ei.DocID.ToString()); - MyWriter.WriteAttributeString("dts", ei.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ei.UserID.ToString()); - ExportDocument(ei.MyDocument, "document"); - MyWriter.WriteEndElement(); - } - private void ExportDocument(XmlElement xn, DocumentInfo di, string nodename) - { - /* - DocID - LibTitle - DocContent - DocAscii - Config - DTS - UserID - FileExtension - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docid", di.DocID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "libtitle", di.LibTitle)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "doccontent", Convert.ToBase64String(di.DocContent))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docascii", di.DocAscii)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", di.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", di.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", di.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fileextension", di.FileExtension)); - xn.AppendChild(xe); - } - private void ExportDocument(DocumentInfo di, string nodename) - { - /* - DocID - LibTitle - DocContent - DocAscii - Config - DTS - UserID - FileExtension - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("docid", di.DocID.ToString()); - MyWriter.WriteAttributeString("libtitle", di.LibTitle); - MyWriter.WriteAttributeString("doccontent", Convert.ToBase64String(di.DocContent)); - MyWriter.WriteAttributeString("docascii", di.DocAscii); - MyWriter.WriteAttributeString("config", di.Config); - MyWriter.WriteAttributeString("dts", di.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", di.UserID.ToString()); - MyWriter.WriteAttributeString("fileextension", di.FileExtension); - MyWriter.WriteEndElement(); - } - private void ExportROUsage(XmlElement xn, RoUsageInfo ri, string nodename) - { - /* - ROUsageID - ContentID - ROID - Config - DTS - UserID - RODbID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rousageid", ri.ROUsageID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ri.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "roid", ri.ROID)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ri.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ri.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ri.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", ri.RODbID.ToString())); - xn.AppendChild(xe); - } - private void ExportROUsage(RoUsageInfo ri, string nodename) - { - /* - ROUsageID - ContentID - ROID - Config - DTS - UserID - RODbID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rousageid", ri.ROUsageID.ToString()); - MyWriter.WriteAttributeString("contentid", ri.ContentID.ToString()); - MyWriter.WriteAttributeString("roid", ri.ROID); - MyWriter.WriteAttributeString("config", ri.Config); - MyWriter.WriteAttributeString("dts", ri.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ri.UserID.ToString()); - MyWriter.WriteAttributeString("rodbid", ri.RODbID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportPart(XmlElement xn, PartInfo pi, string nodename) - { - /* - ContentID - FromType - ItemID - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", pi.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fromtype", pi.FromType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", pi.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", pi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", pi.UserID.ToString())); - xn.AppendChild(xe); - foreach (ItemInfo ii in pi.MyItems) - ExportItem(xe, ii, pi.PartType.ToString().ToLower()); - } - private void ExportPart(PartInfo pi, string nodename) - { - /* - ContentID - FromType - ItemID - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", pi.ContentID.ToString()); - MyWriter.WriteAttributeString("fromtype", pi.FromType.ToString()); - MyWriter.WriteAttributeString("itemid", pi.ItemID.ToString()); - MyWriter.WriteAttributeString("dts", pi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", pi.UserID.ToString()); - foreach (ItemInfo ii in pi.MyItems) - ExportItem(ii, pi.PartType.ToString().ToLower()); - MyWriter.WriteEndElement(); - } - private void ExportTransition(XmlElement xn, TransitionInfo ti, string nodename) - { - /* - TransitionID - FromID - ToID - RangeID - IsRange - TranType - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "transitionid", ti.TransitionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fromid", ti.FromID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "toid", ti.ToID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rangeid", ti.RangeID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "isrange", ti.IsRange.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "trantype", ti.TranType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ti.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ti.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ti.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportTransition(TransitionInfo ti, string nodename) - { - /* - TransitionID - FromID - ToID - RangeID - IsRange - TranType - Config - DTS - UserID - */ - string folder = string.Empty; - if (ti.MyItemToID.MyDocVersion != null && ti.MyItemToID.MyDocVersion.MyFolder.Name != MyFolder.Name) - { - nodename = "external" + nodename; - folder = ti.MyItemToID.MyDocVersion.MyFolder.Name; - } - else - { - nodename = "external" + nodename; - folder = "UNKNOWN"; - } - MyWriter.WriteStartElement(nodename); - if (folder != string.Empty) - MyWriter.WriteAttributeString("folder", folder); - MyWriter.WriteAttributeString("transitionid", ti.TransitionID.ToString()); - MyWriter.WriteAttributeString("fromid", ti.FromID.ToString()); - MyWriter.WriteAttributeString("toid", ti.ToID.ToString()); - MyWriter.WriteAttributeString("rangeid", ti.RangeID.ToString()); - MyWriter.WriteAttributeString("isrange", ti.IsRange.ToString()); - MyWriter.WriteAttributeString("trantype", ti.TranType.ToString()); - MyWriter.WriteAttributeString("config", ti.Config); - MyWriter.WriteAttributeString("dts", ti.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ti.UserID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportAnnotation(XmlElement xn, AnnotationInfo ai, string nodename) - { - /* - AnnotationID - ItemID - TypeID - RtfText - SearchText - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "annotationid", ai.AnnotationID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", ai.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typeid", ai.TypeID.ToString())); - //if(ai.TypeID > 6) - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typename", ai.MyAnnotationType.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rtftext", ai.RtfText)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "searchtext", ai.SearchText)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ai.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ai.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportAnnotation(AnnotationInfo ai, string nodename) - { - /* - AnnotationID - ItemID - TypeID - RtfText - SearchText - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("annotationid", ai.AnnotationID.ToString()); - MyWriter.WriteAttributeString("itemid", ai.ItemID.ToString()); - MyWriter.WriteAttributeString("typeid", ai.TypeID.ToString()); - MyWriter.WriteAttributeString("rtftext", ai.RtfText); - MyWriter.WriteAttributeString("searchtext", ai.SearchText); - MyWriter.WriteAttributeString("config", ai.Config); - MyWriter.WriteAttributeString("dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ai.UserID.ToString()); - MyWriter.WriteEndElement(); - } - #endregion - #region Import for Merge - private void AddExternalTransition(XmlReader xr, XmlDocument xd) - { - XmlElement xe = xd.CreateElement("transition"); - XmlAttribute xa = AddAttribute(xd, "folder", xr.GetAttribute("folder")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "transitionid", xr.GetAttribute("transitionid")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "fromid", xr.GetAttribute("fromid")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "toid", xr.GetAttribute("toid")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "rangeid", xr.GetAttribute("rangeid")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "isrange", xr.GetAttribute("isrange")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "trantype", xr.GetAttribute("trantype")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "config", xr.GetAttribute("config")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "userid", xr.GetAttribute("userid")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "dts", xr.GetAttribute("dts")); - xe.Attributes.SetNamedItem(xa); - xd.SelectSingleNode("externaltransitions/transitions").AppendChild(xe); - } - private void AddTransitions(XmlReader xr) - { - int transitionid = int.Parse(xr.GetAttribute("transitionid")); - int fromid = int.Parse(xr.GetAttribute("fromid")); - int toid = int.Parse(xr.GetAttribute("toid")); - int rangeid = int.Parse(xr.GetAttribute("rangeid")); - int isrange = int.Parse(xr.GetAttribute("isrange")); - int trantype = int.Parse(xr.GetAttribute("trantype")); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - fromid = Old2NewContent[fromid]; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Content cc = Content.Get(fromid); - Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - cc.Text = cc.Text.Replace(lookfor, replacewith); - cc.Save(); - } - private void AddTransitions(Content content, XmlNode xn) - { - /* - Content - Item - Item - int - int - string - dts - string - - - #Link:Transition:1 2 187 - type,id,toid - - #Link:TransitionRange:2 1 175 177 - type,id,toid,rangeid - */ - XmlNodeList nl = xn.SelectNodes("./transition"); - foreach (XmlNode nd in nl) - { - int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - if (Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) - { - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - //fromid = content.ContentID; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Transition tt = Transition.MakeTransition(content, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - content.Text = content.Text.Replace(lookfor, replacewith); - content.Save(); - } - else - { - PendingTransitions.DocumentElement.AppendChild(PendingTransitions.ImportNode(nd, true)); - //save to holding pen - } - } - } - private void AddTransitions() - { - AddTransitions(PendingTransitions); - } - private void AddTransitions(XmlDocument xd) - { - /* - Content - Item - Item - int - int - string - dts - string - - - #Link:Transition:1 2 187 - type,id,toid - - #Link:TransitionRange:2 1 175 177 - type,id,toid,rangeid - */ - XmlNodeList nl = xd.SelectNodes("//transition"); - lblImportStatus.Text = string.Format("Updating {0} Tranistions", nl.Count.ToString()); - foreach (XmlNode nd in nl) - { - int fromid = int.Parse(nd.Attributes.GetNamedItem("fromid").InnerText); - int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - if (Old2NewContent.ContainsKey(fromid) && Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) - { - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - fromid = Old2NewContent[fromid]; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Content cc = Content.Get(fromid); - Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - cc.Text = cc.Text.Replace(lookfor, replacewith); - cc.Save(); - nd.InnerText = "done"; - } - } - } - private Dictionary Old2NewItem; - private Dictionary Old2NewContent; - private Dictionary Old2NewLibDoc; - private XmlDocument PendingTransitions; - private RODb MyRODb = null; - private Folder AddFolder(Folder folder, XmlReader xr) - { - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - string title = xr.GetAttribute("title"); - string name = xr.GetAttribute("name"); - string shortname = xr.GetAttribute("shortname"); - string usrid = xr.GetAttribute("usrid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - string formatid = xr.GetAttribute("formatid"); - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid)); - folder = Folder.MakeFolder(folder, folder.MyConnection, name, title, shortname, format, null, dts, usrid); - //f.Save(); - return folder; - } - private Folder AddFolder(Folder p, XmlDocument xd) - { - lblImportStatus.Text = "Creating Folder..."; - Application.DoEvents(); - string title = xd.DocumentElement.Attributes.GetNamedItem("title").InnerText; - string name = xd.DocumentElement.Attributes.GetNamedItem("name").InnerText; - string shortname = xd.DocumentElement.Attributes.GetNamedItem("shortname").InnerText; - string usrid = xd.DocumentElement.Attributes.GetNamedItem("usrid").InnerText; - DateTime dts = DateTime.Parse(xd.DocumentElement.Attributes.GetNamedItem("dts").InnerText); - string formatid = xd.DocumentElement.Attributes.GetNamedItem("formatid").InnerText; - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid)); - if (Folder.GetByParentID_Name(p.FolderID, name) != null) - return null; - Folder f = Folder.MakeFolder(p, p.MyConnection, name, title, shortname, format, null, dts, usrid); - return f; - } - private Format OldToNewFormat(int formatID) - { - string formatName = oldFormat[formatID]; - formatID = newFormat[formatName]; - return Format.Get(formatID); - } - private DocVersion AddDocVersion(Folder f, XmlReader xr) - { - int versiontype = int.Parse(xr.GetAttribute("versiontype")); - string name = xr.GetAttribute("name"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - string formatid = xr.GetAttribute("formatid"); - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid)); - DocVersion dv = DocVersion.MakeDocVersion(f, versiontype, name, null, null, format, config, dts, userid); - return dv; - } - private void AddAnnotationTypes(XmlDocument xd) - { - XmlNodeList nl = xd.SelectNodes("folder/annotationtypes/annotationtype"); - foreach (XmlNode nd in nl) - { - AnnotationTypeInfo ati = AnnotationTypeInfo.GetByName(nd.Attributes.GetNamedItem("name").InnerText); - if (ati == null) - AnnotationType.MakeAnnotationType(nd.Attributes.GetNamedItem("name").InnerText, nd.Attributes.GetNamedItem("config").InnerText, DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText), nd.Attributes.GetNamedItem("userid").InnerText); - } - } - private DocVersionInfo AddDocVersion(Folder f, XmlDocument xd) - { - lblImportStatus.Text = "Creating DocVersion..."; - Application.DoEvents(); - XmlElement xe = (XmlElement)xd.SelectSingleNode("folder/docversion"); - int versiontype = int.Parse(xe.Attributes.GetNamedItem("versiontype").InnerText); - string name = xe.Attributes.GetNamedItem("name").InnerText; - string config = xe.Attributes.GetNamedItem("config").InnerText; - string userid = xe.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xe.Attributes.GetNamedItem("dts").InnerText); - string formatid = xe.Attributes.GetNamedItem("formatid").InnerText; - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid)); - DocVersion dv = DocVersion.MakeDocVersion(f, versiontype, name, null, null, format, config, dts, userid); - XmlNode xassoc = xe.SelectSingleNode("association"); - if (xassoc != null) - { - XmlNode xrofst = xassoc.SelectSingleNode("rofst"); - XmlNode xrodb = xrofst.SelectSingleNode("rodb"); - MyRODb = AddRODb(xrodb); - ROFst rofst = AddROFst(xrofst); - DocVersionAssociation dva = dv.DocVersionAssociations.Add(rofst); - dv.Save(); - } - return DocVersionInfo.Get(dv.VersionID); - } - private Dictionary GetROFstData(XmlReader xr) - { - Dictionary rv = new Dictionary(); - rv.Add("rolookup", xr.GetAttribute("rolookup")); - rv.Add("config", xr.GetAttribute("config")); - rv.Add("userid", xr.GetAttribute("userid")); - rv.Add("dts", xr.GetAttribute("dts")); - return rv; - } - private ROFst AddROFst(Dictionary dic) - { - byte[] rolookup = Convert.FromBase64String(dic["rolookup"]); - string config = dic["config"]; - string userid = dic["userid"]; - DateTime dts = DateTime.Parse(dic["dts"]); - ROFst rv = null; - rv = ROFst.GetByRODbID_DTS(MyRODb.RODbID, dts); //MyRODb.DTS); - if (rv == null) - rv = ROFst.MakeROFst(MyRODb, rolookup, config, dts, userid); - return rv; - } - private ROFst AddROFst(XmlNode xrofst) - { - lblImportStatus.Text = "Creating ROFst..."; - Application.DoEvents(); - byte[] rolookup = Convert.FromBase64String(xrofst.Attributes.GetNamedItem("rolookup").InnerText); - string config = xrofst.Attributes.GetNamedItem("config").InnerText; - string userid = xrofst.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xrofst.Attributes.GetNamedItem("dts").InnerText); - ROFst rv = null; - rv = ROFst.GetByRODbID_DTS(MyRODb.RODbID, dts); //MyRODb.DTS); - if (rv == null) - rv = ROFst.MakeROFst(MyRODb, rolookup, config, dts, userid); - return rv; - } - private RODb AddRODb(XmlReader xr) - { - oldRODbID = int.Parse(xr.GetAttribute("rodbid")); - string roname = xr.GetAttribute("roname"); - string folderpath = xr.GetAttribute("folderpath"); - string dbconnectionstring = xr.GetAttribute("dbconnectionstring"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - RODb rv = null; - rv = RODb.GetByFolderPath(folderpath); - if (rv == null) - rv = RODb.MakeRODb(roname, folderpath, dbconnectionstring, config, dts, userid); - newRODbID = rv.RODbID; - return rv; - } - private RODb AddRODb(XmlNode xrodb) - { - lblImportStatus.Text = "Creating RODb..."; - Application.DoEvents(); - oldRODbID = int.Parse(xrodb.Attributes.GetNamedItem("rodbid").InnerText); - string roname = xrodb.Attributes.GetNamedItem("roname").InnerText; - string folderpath = xrodb.Attributes.GetNamedItem("folderpath").InnerText; - string dbconnectionstring = xrodb.Attributes.GetNamedItem("dbconnectionstring").InnerText; - string config = xrodb.Attributes.GetNamedItem("config").InnerText; - string userid = xrodb.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xrodb.Attributes.GetNamedItem("dts").InnerText); - RODb rv = null; - rv = RODb.GetByFolderPath(folderpath); - if (rv == null) - rv = RODb.MakeRODb(roname, folderpath, dbconnectionstring, config, dts, userid); - newRODbID = rv.RODbID; - return rv; - } - private int GetProcedureData(XmlReader xr) - { - return int.Parse(xr.GetAttribute("itemid")); - } - private ItemInfo AddProcedure(XmlReader xr, DocVersion dv, ItemInfo procInfo, int oldid) - { - DocVersionInfo dvInfo = DocVersionInfo.Get(dv.VersionID); - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int proctype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Procedure p = Procedure.MakeProcedure(dvInfo, procInfo, number, text, proctype); - p.DTS = dts; - p.UserID = userid; - if (formatid != string.Empty) - p.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - p.MyContent.Config = config; - p.MyContent.DTS = dts; - p.MyContent.UserID = userid; - p.Save(); - Old2NewItem.Add(oldid, p.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), p.MyContent.ContentID); - procInfo = ProcedureInfo.Get(p.ItemID); - return procInfo; - } - private ProcedureInfo AddProcedure(XmlNode xn, DocVersionInfo dvInfo, ProcedureInfo procInfo) - { - pbImportProcedure.PerformStep(); - lblImportProcedure.Text = string.Format("{0} of {1} Procedures", pbImportProcedure.Value.ToString(), pbImportProcedure.Maximum.ToString()); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblImportTime.Text = "Elapsed Time: " + elapsed.ToString(); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int proctype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - Procedure p = Procedure.MakeProcedure(dvInfo, procInfo, number, text, proctype); - p.DTS = dts; - p.UserID = userid; - if (formatid != string.Empty) - p.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - p.MyContent.Config = config; - p.MyContent.DTS = dts; - p.MyContent.UserID = userid; - p.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), p.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), p.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(p.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(p.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(p.MyContent, xc); - procInfo = ProcedureInfo.Get(p.ItemID); - if (xc.HasChildNodes) - AddParts(xc, procInfo); - return procInfo; - } - private void AddROUsage(XmlReader xr) - { - int contentid = int.Parse(xr.GetAttribute("contentid")); - contentid = Old2NewContent[contentid]; - Content content = Content.Get(contentid); - string rousageid = xr.GetAttribute("rousageid"); - string roid = xr.GetAttribute("roid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - RoUsage rou = RoUsage.MakeRoUsage(content, roid, config, dts, userid, MyRODb); - rou.Save(); - string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); - string replaceWith = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); - if (lookFor != replaceWith) - { - content.Text = content.Text.Replace(lookFor, replaceWith); - content.Save(); - } - } - private void AddROUsages(Content content, XmlNode xn) - { - foreach (XmlNode nd in xn.SelectNodes("rousage")) - { - string rousageid = nd.Attributes.GetNamedItem("rousageid").InnerText; - string roid = nd.Attributes.GetNamedItem("roid").InnerText; - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - RoUsage rou = RoUsage.MakeRoUsage(content, roid, config, dts, userid, MyRODb); - rou.Save(); - string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); - string replaceWith = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); - if (lookFor != replaceWith) - { - content.Text = content.Text.Replace(lookFor, replaceWith); - content.Save(); - } - } - } - private void AddAnnotation(XmlReader xr) - { - int itemid = int.Parse(xr.GetAttribute("itemid")); - itemid = Old2NewItem[itemid]; - Item itm = Item.Get(itemid); - int typeid = int.Parse(xr.GetAttribute("typeid")); - string rtftext = xr.GetAttribute("rtftext"); - string searchtext = xr.GetAttribute("searchtext"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Annotation ann = Annotation.MakeAnnotation(itm, AnnotationType.Get(typeid), rtftext, searchtext, config, dts, userid); - } - private void AddAnnotations(int itemID, XmlNode xn) - { - Item itm = Item.Get(itemID); - foreach (XmlNode nd in xn.SelectNodes("annotation")) - { - int typeid = int.Parse(nd.Attributes.GetNamedItem("typeid").InnerText); - string rtftext = nd.Attributes.GetNamedItem("rtftext").InnerText; - string searchtext = nd.Attributes.GetNamedItem("searchtext").InnerText; - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - AnnotationType annType = AnnotationType.GetByName(nd.Attributes.GetNamedItem("typename").InnerText); - Annotation ann = Annotation.MakeAnnotation(itm, annType, rtftext, searchtext, config, dts, userid); - ann.Save(); - } - } - private void AddParts(XmlNode myNode, ItemInfo parentInfo) - { - foreach (XmlNode xn in myNode.ChildNodes) - { - switch (xn.Name) - { - case "sections": - AddSections(xn, parentInfo); - break; - case "cautions": - AddCautions(xn, parentInfo); - break; - case "notes": - AddNotes(xn, parentInfo); - break; - case "rnos": - AddRNOs(xn, parentInfo); - break; - case "steps": - AddSteps(xn, parentInfo); - break; - case "tables": - AddTables(xn, parentInfo); - break; - default: - break; - } - } - } - private void AddTables(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddTable(nd, parentInfo, prevInfo); - } - private ItemInfo AddTable(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int steptype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Table); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(oldid, step.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - prevInfo = StepInfo.Get(step.ItemID); - return prevInfo; - } - private ItemInfo AddTable(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Table); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xc.SelectNodes("grid").Count > 0) - AddGrid(step.MyContent, xc); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddSteps(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddStep(nd, parentInfo, prevInfo); - } - private ItemInfo AddStep(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int steptype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Step); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(oldid, step.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - prevInfo = StepInfo.Get(step.ItemID); - return prevInfo; - } - private ItemInfo AddStep(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Step); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddRNOs(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddRNO(nd, parentInfo, prevInfo); - } - private ItemInfo AddRNO(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int steptype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.RNO); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(oldid, step.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - prevInfo = StepInfo.Get(step.ItemID); - return prevInfo; - } - private ItemInfo AddRNO(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.RNO); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddNotes(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddNote(nd, parentInfo, prevInfo); - } - private ItemInfo AddNote(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int steptype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Note); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(oldid, step.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - prevInfo = StepInfo.Get(step.ItemID); - return prevInfo; - } - private ItemInfo AddNote(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Note); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddCautions(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddCaution(nd, parentInfo, prevInfo); - } - private ItemInfo AddCaution(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int steptype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Caution); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(oldid, step.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - prevInfo = StepInfo.Get(step.ItemID); - return prevInfo; - } - private ItemInfo AddCaution(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Caution); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddSections(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddSection(nd, parentInfo, prevInfo); - } - private Dictionary GetSectionData(XmlReader xr) - { - Dictionary rv = new Dictionary(); - rv.Add("itemid", xr.GetAttribute("itemid")); - return rv; - } - private ItemInfo AddSection(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int sectiontype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Section sect = Section.MakeSection(parentInfo, prevInfo, number, text, sectiontype); - sect.DTS = dts; - sect.UserID = userid; - if (formatid != string.Empty) - sect.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - sect.MyContent.Config = config; - sect.MyContent.DTS = dts; - sect.MyContent.UserID = userid; - sect.Save(); - Old2NewItem.Add(oldid, sect.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), sect.MyContent.ContentID); - prevInfo = SectionInfo.Get(sect.ItemID); - return prevInfo; - } - private ItemInfo AddSection(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportSection.PerformStep(); - lblImportSection.Text = string.Format("{0} of {1} Sections", pbImportSection.Value.ToString(), pbImportSection.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Section sect; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int sectiontype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - sect = Section.MakeSection(parentInfo, prevInfo, number, text, sectiontype); - sect.DTS = dts; - sect.UserID = userid; - if (formatid != string.Empty) - sect.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - sect.MyContent.Config = config; - sect.MyContent.DTS = dts; - sect.MyContent.UserID = userid; - sect.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), sect.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), sect.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(sect.ItemID, xn); - if (xc.SelectNodes("entry").Count > 0) - AddEntry(sect.MyContent, xc); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(sect.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(sect.MyContent, xc); - prevInfo = SectionInfo.Get(sect.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddGrid(XmlReader xr) - { - int contentid = int.Parse(xr.GetAttribute("contentid")); - contentid = Old2NewContent[contentid]; - Content content = Content.Get(contentid); - string data = xr.GetAttribute("data"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Grid gg = Grid.MakeGrid(content, data, config, dts, userid); - } - private void AddGrid(Content content, XmlNode xc) - { - XmlNode nd = xc.SelectSingleNode("grid"); - string data = nd.Attributes.GetNamedItem("data").InnerText; - XmlDocument xd = new XmlDocument(); - xd.LoadXml(data); - XmlNode gn = xd.SelectSingleNode("C1FlexGrid/Control/IsRoTable"); - if (gn.InnerText.ToLower() == "true") - { - gn = xd.SelectSingleNode("C1FlexGrid/Control/RODbId"); - gn.InnerText = newRODbID.ToString(); - data = xd.OuterXml; - } - else - { - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Cells/Cell/Data"); - bool modified = false; - string lookFor = string.Format(" {0}[END", oldRODbID.ToString()); - string replaceWith = string.Format(" {0}[END", newRODbID.ToString()); - foreach (XmlNode nn in nl) - { - if (nn.InnerText.Contains("#Link:ReferencedObject:")) - { - nn.InnerText = nn.InnerText.Replace(lookFor, replaceWith); - modified = true; - } - } - if (modified) - data = xd.OuterXml; - } - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - Grid gg = Grid.MakeGrid(content, data, config, dts, userid); - gg.Save(); - } - private Dictionary AddEntry(XmlReader xr) - { - Dictionary dic = new Dictionary(); - dic.Add("contentid", xr.GetAttribute("contentid")); - dic.Add("dts", xr.GetAttribute("dts")); - dic.Add("userid", xr.GetAttribute("userid")); - return dic; - } - private void AddEntry(Content content, XmlNode xc) - { - XmlNode nd = xc.SelectSingleNode("entry"); - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - Document dd = AddDocument(nd.SelectSingleNode("document")); - Entry ee = Entry.MakeEntry(content, dd, dts, userid); - ee.Save(); - } - private void AddDocument(XmlReader xr, Dictionary dic) - { - string libtitle = xr.GetAttribute("libtitle"); - byte[] doccontent = Convert.FromBase64String(xr.GetAttribute("doccontent")); - string docascii = xr.GetAttribute("docascii"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - string fileextension = xr.GetAttribute("fileextension"); - Document dd = Document.MakeDocument(libtitle, doccontent, docascii, config, dts, userid, fileextension); - int contentid = int.Parse(dic["contentid"]); - contentid = Old2NewContent[contentid]; - Content content = Content.Get(contentid); - dts = DateTime.Parse(dic["dts"]); - userid = dic["userid"]; - Entry ee = Entry.MakeEntry(content, dd, dts, userid); - } - private Document AddDocument(XmlNode xn) - { - Document d; - int docid = int.Parse(xn.Attributes.GetNamedItem("docid").InnerText); - if (Old2NewLibDoc.ContainsKey(docid)) - { - docid = Old2NewLibDoc[docid]; - d = Document.Get(docid); - } - else - { - string libtitle = xn.Attributes.GetNamedItem("libtitle").InnerText; - byte[] doccontent = Convert.FromBase64String(xn.Attributes.GetNamedItem("doccontent").InnerText); - string docascii = xn.Attributes.GetNamedItem("docascii").InnerText; - string config = xn.Attributes.GetNamedItem("config").InnerText; - string userid = xn.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xn.Attributes.GetNamedItem("dts").InnerText); - string fileextension = xn.Attributes.GetNamedItem("fileextension").InnerText; - d = Document.MakeDocument(libtitle, doccontent, docascii, config, dts, userid, fileextension); - d.Save(); - Old2NewLibDoc.Add(docid, d.DocID); - } - return d; - } - #endregion - - private void btnCloseExport_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void btnCloseImport_Click(object sender, EventArgs e) - { - this.Close(); - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/dlgExportImport.cs.bak b/PROMS/DataLoader/dlgExportImport.cs.bak deleted file mode 100644 index 00c840d3..00000000 --- a/PROMS/DataLoader/dlgExportImport.cs.bak +++ /dev/null @@ -1,2699 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; -using System.Xml; -using System.IO; -using Ionic.Zip; - -namespace DataLoader -{ - public partial class dlgExportImport : Form - { - private Dictionary oldFormat; - private Dictionary newFormat; - private int oldRODbID; - private int newRODbID; - private FolderInfo _MyNewFolder; - public FolderInfo MyNewFolder - { - get { return _MyNewFolder; } - } - private string PEIPath; - private string _MyMode; - private FolderInfo MyFolder = null; - private ProcedureInfo MyProcedure = null; - private XmlAttribute AddAttribute(XmlDocument xd, string name, string value) - { - XmlAttribute xa = xd.CreateAttribute(name); - xa.InnerText = value; - return xa; - } - public dlgExportImport(string mode, FolderInfo folderInfo) - { - _MyMode = mode; - MyFolder = folderInfo; - InitializeComponent(); - this.Text = mode + " Dialog for " + folderInfo.Name; - } - public dlgExportImport(string mode, ProcedureInfo procedureInfo) - { - _MyMode = mode; - MyProcedure = procedureInfo; - InitializeComponent(); - this.Text = mode + " Dialog for " + procedureInfo.DisplayNumber; - } - private void dlgExportImport_Load(object sender, EventArgs e) - { - PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database; - if (!Directory.Exists(PEIPath)) - Directory.CreateDirectory(PEIPath); - if (_MyMode == "Import") - { - if (MyFolder.ChildFolderCount == 0) - { - Directory.Delete(PEIPath, true); - Directory.CreateDirectory(PEIPath); - } - } - pnlExport.Dock = DockStyle.Fill; - pnlImport.Dock = DockStyle.Fill; - if (_MyMode.ToLower() == "export") - { - sfd.InitialDirectory = PEIPath; - pnlExport.BringToFront(); - } - else - { - ofd.InitialDirectory = PEIPath; - pnlImport.BringToFront(); - } - this.Height = this.Height / 2; - } - private void btnExport_Click(object sender, EventArgs e) - { - if (MyFolder != null) - { - sfd.FileName = string.Format("{0}.expx", MyFolder.Name); - if (sfd.ShowDialog(this) == DialogResult.OK) - { - if (sfd.FileName != string.Empty) - { - txtExport.Text = sfd.FileName; - if (File.Exists(txtExport.Text)) - File.Delete(txtExport.Text); - MyExpxZipFile = new ZipFile(txtExport.Text, Encoding.UTF8); - MyExpxZipFile.Save(); - } - } - } - else if (MyProcedure != null) - { - txtExport.Text = string.Format(@"{0}\{1}.xml", PEIPath, MyProcedure.DisplayNumber); - } - } - private void txtExport_TextChanged(object sender, EventArgs e) - { - btnDoExport.Enabled = txtExport.TextLength > 0; - if (btnDoExport.Enabled) - lblExportStatus.Text = "Ready To Perform Export"; - else - lblExportStatus.Text = "Awaiting Export File Name:"; - } - private XmlWriter MyWriter = null; - private ZipFile MyExpxZipFile = null; - private ZipFile MyImpxZipFile = null; - private DateTime MyStart; - private void btnDoExport_Click(object sender, EventArgs e) - { - btnExport.Enabled = false; - if (MyFolder != null) - { - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoExport.Enabled = false; - lblExportStatus.Text = "Performing Export"; - SaveExportData(); - //SaveExportDataWriter(); - - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportStatus.Text = "Export Completed in " + elapsed.ToString(); - this.Cursor = Cursors.Default; - } - else if (MyProcedure != null) - { - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoExport.Enabled = false; - lblExportStatus.Text = "Performing Export"; - XmlDocument xd = new XmlDocument(); - ExportItem(xd, MyProcedure, "procedure"); - xd.Save(txtExport.Text); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportStatus.Text = "Export Completed in " + elapsed.ToString(); - this.Cursor = Cursors.Default; - } - btnCloseExport.Enabled = true; - } - private void SaveExportData() - { - XmlDocument xd = new XmlDocument(); - ExportFolder(xd, MyFolder, "folder"); - } - private void SaveExportDataWriter() - { - XmlWriterSettings ws = new XmlWriterSettings(); - ws.Indent = true; - ws.NewLineHandling = NewLineHandling.Entitize; - ws.CheckCharacters = false; - MyWriter = XmlWriter.Create(txtExport.Text, ws); - ExportFolder(MyFolder, "folder"); - MyWriter.Close(); - } - private void btnDoImport_Click(object sender, EventArgs e) - { - btnImport.Enabled = false; - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoImport.Enabled = false; - lblImportStatus.Text = "Performing Import"; - //LoadImportDataReader(); - TurnChangeManagerOff.Execute(); - LoadImportDataDocument(); - TurnChangeManagerOn.Execute(); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblImportStatus.Text = "Import Completed in " + elapsed.ToString(); - this.Cursor = Cursors.Default; - btnCloseImport.Enabled = true; - } - private void LoadImportDataDocument() - { - ZipEntry ze = MyExpxZipFile[0]; - string fn = PEIPath + @"\" + ze.FileName; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - XmlDocument xd = new XmlDocument(); - xd.Load(fn); - LoadFormats(xd); - Folder ff = AddFolder(Folder.Get(MyFolder.FolderID), xd); - _MyNewFolder = FolderInfo.Get(ff.FolderID); - AddAnnotationTypes(xd); - DocVersionInfo dvi = AddDocVersion(ff, xd); - xd = null; - lblImportStatus.Text = "Creating Procedures..."; - Application.DoEvents(); - ProcedureInfo pi = null; - pbImportProcedure.Value = 0; - pbImportProcedure.Maximum = MyExpxZipFile.Entries.Count - 1; - for (int i = 1; i < MyExpxZipFile.Entries.Count; i++) - { - ze = MyExpxZipFile[i]; - fn = PEIPath + @"\" + ze.FileName; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - xd = new XmlDocument(); - xd.Load(fn); - pi = AddProcedure(xd.DocumentElement, dvi, pi); - } - DirectoryInfo di = new DirectoryInfo(PEIPath); - DirectoryInfo[] dis = di.GetDirectories(); - for (int d = 0; d < dis.Length; d++) - dis[d].Delete(true); - lblImportStatus.Text = "Updating Transitions"; - AddTransitions(); - SaveTransitionAndItemContentIDs(); - } - - private void LoadFormats(XmlDocument xd) - { - oldFormat = new Dictionary(); - XmlNodeList nl = xd.SelectNodes("folder/formats/format"); - foreach (XmlNode nd in nl) - { - int formatid = int.Parse(nd.Attributes.GetNamedItem("formatid").InnerText); - string name = nd.Attributes.GetNamedItem("name").InnerText; - oldFormat.Add(formatid, name); - } - newFormat = new Dictionary(); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - newFormat.Add(fi.Name, fi.FormatID); - } - Dictionary dicParentItem = null; - private void UpdateParentItem(int depth, ItemInfo ii) - { - if (dicParentItem == null) dicParentItem = new Dictionary(); - if (!dicParentItem.ContainsKey(depth)) dicParentItem.Add(depth, null); - dicParentItem[depth] = ii; - } - Dictionary dicPreviousItem = null; - private void UpdatePreviousItem(int depth, ItemInfo ii) - { - if (dicPreviousItem == null) dicPreviousItem = new Dictionary(); - if (!dicPreviousItem.ContainsKey(depth)) dicPreviousItem.Add(depth, null); - dicPreviousItem[depth] = ii; - } - Dictionary dicItemDepth = null; - private void UpdateItemDepth(int depth, int id) - { - if (dicItemDepth == null) dicItemDepth = new Dictionary(); - if (!dicItemDepth.ContainsKey(depth)) dicItemDepth.Add(depth, 0); - dicItemDepth[depth] = id; - } - private void LoadImportDataReader() - { - int pCount = 0; - int sCount = 0; - Folder folder = null; - DocVersion docversion = null; - Dictionary dicRofst = null; - Dictionary dicEntry = null; - ROFst rofst = null; - GetImportDataCounts(); - pbImportProcedure.Maximum = MyCounts.Count; - pbImportProcedure.Value = 0; - Application.DoEvents(); - FileStream fs = File.OpenRead(txtImport.Text); - XmlReaderSettings rs = new XmlReaderSettings(); - rs.CheckCharacters = false; - XmlReader xr = XmlReader.Create(fs, rs); - while (xr.Read()) - { - if (xr.IsStartElement()) - { - switch (xr.Name) - { - case "annotation": - AddAnnotation(xr); - break; - //case "association": - // break; - case "content": - { - if (xr.Depth == 3) //content for procedure - { - ItemInfo ii = AddProcedure(xr, docversion, dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - } - else - { - - int fromtype = dicItemDepth.ContainsKey(xr.Depth - 2) ? dicItemDepth[xr.Depth - 2] : 0; - switch (fromtype) - { - case 2: - { //sections - ItemInfo ii = AddSection(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 3: - { //cautions - ItemInfo ii = AddCaution(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 4: - { //notes - ItemInfo ii = AddNote(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 5: - { //rnos - ItemInfo ii = AddRNO(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 6: - { //steps - ItemInfo ii = AddStep(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - case 7: - { //tables - ItemInfo ii = AddTable(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - UpdatePreviousItem(xr.Depth, ii); - UpdateParentItem(xr.Depth, ii); - break; - } - default: - break; - } - } - break; - } - case "document": - AddDocument(xr, dicEntry); - break; - case "docversion": - { - docversion = AddDocVersion(folder, xr); - UpdatePreviousItem(xr.Depth + 2, null); - break; - } - case "entry": - dicEntry = AddEntry(xr); - break; - case "folder": - folder = AddFolder(Folder.Get(MyFolder.FolderID), xr); - break; - case "grid": - AddGrid(xr); - break; - case "procedure": - { - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - pbImportProcedure.PerformStep(); - lblImportProcedure.Text = string.Format("{0} of {1} Procedures", pbImportProcedure.Value.ToString(), pbImportProcedure.Maximum.ToString()); - pCount++; - pbImportSection.Maximum = MyCounts[pCount].Count; - pbImportSection.Value = 0; - sCount = 0; - Application.DoEvents(); - break; - } - case "section": - { - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - pbImportSection.PerformStep(); - lblImportSection.Text = string.Format("{0} of {1} Sections", pbImportSection.Value.ToString(), pbImportSection.Maximum.ToString()); - sCount++; - pbImportStep.Maximum = MyCounts[pCount][sCount]; - pbImportStep.Value = 0; - Application.DoEvents(); - break; - } - case "step": - { - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - if (xr.Depth == 8) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - } - break; - } - case "caution": - case "note": - case "rno": - case "table": - UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - break; - case "cautions": - case "notes": - case "rnos": - case "sections": - case "steps": - case "tables": - { - UpdateItemDepth(xr.Depth, int.Parse(xr.GetAttribute("fromtype"))); - UpdatePreviousItem(xr.Depth + 2, null); - UpdateParentItem(xr.Depth + 2, dicParentItem[xr.Depth - 1]); - break; - } - case "rodb": - { - MyRODb = AddRODb(xr); - rofst = AddROFst(dicRofst); - docversion.DocVersionAssociations.Add(rofst); - docversion.Save(); - break; - } - case "rofst": - dicRofst = GetROFstData(xr); - break; - case "rousage": - AddROUsage(xr); - break; - //case "transition": - // break; - default: - break; - } - Console.WriteLine("{0} - {1}", xr.Name, xr.Depth.ToString()); - } - } - pbImportProcedure.PerformStep(); - Application.DoEvents(); - fs.Close(); - FixImportDataTransitions(); - StoreItemContentIDs(); - ResolveExternalTransitions(folder); - } - private void SaveTransitionAndItemContentIDs() - { - XmlDocument xd = new XmlDocument(); - XmlElement xe = xd.CreateElement("items"); - xd.AppendChild(xe); - string fn = PEIPath + @"\items.xml"; - foreach (int key in Old2NewItem.Keys) - { - xe = xd.CreateElement("item"); - xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewItem[key].ToString())); - xd.DocumentElement.AppendChild(xe); - } - xd.Save(fn); - ZipEntry ze = MyImpxZipFile["items.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - xd = new XmlDocument(); - xe = xd.CreateElement("contents"); - xd.AppendChild(xe); - fn = PEIPath + @"\contents.xml"; - foreach (int key in Old2NewContent.Keys) - { - xe = xd.CreateElement("content"); - xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewContent[key].ToString())); - xd.DocumentElement.AppendChild(xe); - } - xd.Save(fn); - ze = MyImpxZipFile["contents.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - xd = new XmlDocument(); - xe = xd.CreateElement("transitions"); - xd.AppendChild(xe); - fn = PEIPath + @"\transitions.xml"; - if (PendingTransitions != null && PendingTransitions.DocumentElement.HasChildNodes) - { - foreach (XmlNode nd in PendingTransitions.DocumentElement.ChildNodes) - { - if(nd.InnerText == "") - xd.DocumentElement.AppendChild(xd.ImportNode(nd, true)); - } - xd.Save(fn); - } - ze = MyImpxZipFile["transitions.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - } - private void StoreItemContentIDs() - { - XmlDocument xd = new XmlDocument(); - string fn = PEIPath + @"\ExternalTransitions.xml"; - xd.Load(fn); - XmlElement xe = (XmlElement)xd.SelectSingleNode("externaltransitions/oldtonewitem"); - foreach (int key in Old2NewItem.Keys) - { - XmlElement xee = xd.CreateElement("item"); - XmlAttribute xa = AddAttribute(xd, "old", key.ToString()); - xee.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "new", Old2NewItem[key].ToString()); - xee.Attributes.SetNamedItem(xa); - xe.AppendChild(xee); - } - xd.Save(fn); - xe = (XmlElement)xd.SelectSingleNode("externaltransitions/oldtonewcontent"); - foreach (int key in Old2NewContent.Keys) - { - XmlElement xee = xd.CreateElement("content"); - XmlAttribute xa = AddAttribute(xd, "old", key.ToString()); - xee.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "new", Old2NewContent[key].ToString()); - xee.Attributes.SetNamedItem(xa); - xe.AppendChild(xee); - } - xd.Save(fn); - } - private void ResolveExternalTransitions(Folder folder) - { - XmlDocument xd = new XmlDocument(); - string fn = PEIPath + @"\ExternalTransitions.xml"; - xd.Load(fn); - AddStoredItemContentIDs(xd); - XmlNodeList nl = xd.SelectNodes("//transition[@folder!='']"); - foreach (XmlNode nd in nl) - { - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int fromid = int.Parse(nd.Attributes.GetNamedItem("fromid").InnerText); - int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - if (Old2NewContent.ContainsKey(fromid) && Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) - { - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - fromid = Old2NewContent[fromid]; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Content cc = Content.Get(fromid); - Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - cc.Text = cc.Text.Replace(lookfor, replacewith); - cc.Save(); - nd.Attributes.GetNamedItem("folder").InnerText = ""; - } - } - xd.Save(fn); - } - private void ReadTransitionAndItemContentIDs() - { - ZipEntry ze = MyImpxZipFile["items.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - string fn = PEIPath + @"\items.xml"; - XmlDocument xd = new XmlDocument(); - xd.Load(fn); - XmlNodeList nl = xd.SelectNodes("//item"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - //if (!Old2NewItem.ContainsKey(oldid)) - Old2NewItem.Add(oldid, newid); - } - ze = MyImpxZipFile["contents.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\contents.xml"; - xd = new XmlDocument(); - xd.Load(fn); - nl = xd.SelectNodes("//content"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - //if (!Old2NewContent.ContainsKey(oldid)) - Old2NewContent.Add(oldid, newid); - } - ze = MyImpxZipFile["libdocs.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\libdocs.xml"; - xd = new XmlDocument(); - xd.Load(fn); - nl = xd.SelectNodes("//libdoc"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - //if (!Old2NewContent.ContainsKey(oldid)) - Old2NewLibDoc.Add(oldid, newid); - } - ze = MyImpxZipFile["transitions.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Load(fn); - } - private void AddStoredItemContentIDs(XmlDocument xd) - { - XmlNodeList nl = xd.SelectNodes("//item"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - if (!Old2NewItem.ContainsKey(oldid)) - Old2NewItem.Add(oldid, newid); - } - nl = xd.SelectNodes("//content"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - if (!Old2NewContent.ContainsKey(oldid)) - Old2NewContent.Add(oldid, newid); - } - } - private void FixImportDataTransitions() - { - XmlDocument xd = new XmlDocument(); - string fn = PEIPath + @"\ExternalTransitions.xml"; - if (!File.Exists(fn)) - { - XmlElement xe = xd.CreateElement("externaltransitions"); - XmlElement xee = xd.CreateElement("oldtonewitem"); - xe.AppendChild(xee); - xee = xd.CreateElement("oldtonewcontent"); - xe.AppendChild(xee); - xee = xd.CreateElement("transitions"); - xe.AppendChild(xee); - xd.AppendChild(xe); - xd.Save(fn); - } - else - { - xd.Load(fn); - } - FileStream fs = File.OpenRead(txtImport.Text); - XmlReaderSettings rs = new XmlReaderSettings(); - rs.CheckCharacters = false; - XmlReader xr = XmlReader.Create(fs, rs); - while (xr.Read()) - { - if (xr.IsStartElement()) - { - switch (xr.Name) - { - case "transition": - AddTransitions(xr); - break; - case "externaltransition": - { - AddExternalTransition(xr, xd); - break; - } - default: - break; - } - } - } - fs.Close(); - xd.Save(fn); - } - private Dictionary> MyCounts = null; - private Dictionary MySubCounts = null; - private void GetImportDataCounts() - { - int pCount = 0; - int sCount = 0; - int tCount = 0; - MyCounts = new Dictionary>(); - MySubCounts = new Dictionary(); - FileStream fs = File.OpenRead(txtImport.Text); - XmlReaderSettings rs = new XmlReaderSettings(); - rs.CheckCharacters = false; - XmlReader xr = XmlReader.Create(fs, rs); - while (xr.Read()) - { - if (xr.IsStartElement()) - { - switch (xr.Name) - { - case "procedure": - { - if (pCount > 0) - { - MySubCounts.Add(sCount, tCount); - MyCounts.Add(pCount, MySubCounts); - sCount = 0; - tCount = 0; - MySubCounts = new Dictionary(); - } - pCount++; - break; - } - case "section": - { - if (sCount > 0) - { - MySubCounts.Add(sCount, tCount); - tCount = 0; - } - sCount++; - break; - } - case "step": - { - if (xr.Depth == 8) - tCount++; - break; - } - default: - break; - } - } - } - MySubCounts.Add(sCount, tCount); - MyCounts.Add(pCount, MySubCounts); - fs.Close(); - } - private void btnImport_Click(object sender, EventArgs e) - { - if (ofd.ShowDialog(this) == DialogResult.OK) - { - if (ofd.FileName != string.Empty) - { - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - PendingTransitions = new XmlDocument(); - FileInfo fi = new FileInfo(ofd.FileName); - string dn = fi.Directory.Name; - txtImport.Text = ofd.FileName; - ReadOptions ro = new ReadOptions(); - ro.Encoding = Encoding.UTF8; - MyExpxZipFile = ZipFile.Read(txtImport.Text, ro); - string fn = string.Format(@"{0}\{1}.impx", PEIPath, dn); - if (File.Exists(fn)) - { - MyImpxZipFile = ZipFile.Read(fn, ro); - ReadTransitionAndItemContentIDs(); - } - else - { - MyImpxZipFile = new ZipFile(fn, Encoding.UTF8); - //transitions - XmlElement xe = PendingTransitions.CreateElement("transitions"); - PendingTransitions.AppendChild(xe); - fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - //File.Delete(fn); - //itemids - XmlDocument xd = new XmlDocument(); - xe = xd.CreateElement("items"); - xd.AppendChild(xe); - fn = PEIPath + @"\items.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - //contentids - xd = new XmlDocument(); - xe = xd.CreateElement("contents"); - xd.AppendChild(xe); - fn = PEIPath + @"\contents.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - //libdocids - xd = new XmlDocument(); - xe = xd.CreateElement("libdocs"); - xd.AppendChild(xe); - fn = PEIPath + @"\libdocs.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - } - } - } - } - private void txtImport_TextChanged(object sender, EventArgs e) - { - btnDoImport.Enabled = txtImport.TextLength > 0; - if (btnDoImport.Enabled) - lblImportStatus.Text = "Ready To Perform Import"; - else - lblImportStatus.Text = "Awaiting Import File Name:"; - } - #region Export for Merge - private string FromFolderName = string.Empty; - private void ExportFolder(XmlDocument xd, FolderInfo fi, string nodename) - { - /* - FolderID - ParentID - DBID - Name - Title - ShortName - FormatID - ManualOrder - Config - DTS - UsrID - */ - lblExportStatus.Text = "Exporting Folder..."; - Application.DoEvents(); - FromFolderName = fi.Name; - XmlElement xe = xd.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xd, "folderid", fi.FolderID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "parentid", fi.ParentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "dbid", fi.DBID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "name", fi.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "title", fi.Title)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "shortname", fi.ShortName)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "formatid", fi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "manualorder", fi.ManualOrder.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "config", fi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "dts", fi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xd, "usrid", fi.UsrID.ToString())); - xd.AppendChild(xe); - ExportAnnotationTypes(xe, "annotationtypes"); - ExportFormats(xe, "formats"); - if (fi.FolderDocVersionCount > 0) - foreach (DocVersionInfo dvi in fi.FolderDocVersions) - ExportDocVersion(xe, dvi, "docversion"); - } - private void ExportFormats(XmlElement xn, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - ExportFormat(xe, fi, "format"); - xn.AppendChild(xe); - } - private void ExportFormat(XmlElement xn, FormatInfo fi, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", fi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", fi.Name)); - xn.AppendChild(xe); - } - private void ExportAnnotationTypes(XmlElement xn, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - AnnotationTypeInfoList atl = AnnotationTypeInfoList.Get(); - foreach (AnnotationTypeInfo ati in atl) - ExportAnnotationType(xe, ati, "annotationtype"); - xn.AppendChild(xe); - } - private void ExportAnnotationType(XmlElement xn, AnnotationTypeInfo ati, string nodename) - { - /* - TypeID - Name - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typeid", ati.TypeID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", ati.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ati.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ati.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ati.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportFolder(FolderInfo fi, string nodename) - { - /* - FolderID - ParentID - DBID - Name - Title - ShortName - FormatID - ManualOrder - Config - DTS - UsrID - */ - FromFolderName = fi.Name; - MyWriter.WriteStartDocument(); - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("folderid", fi.FolderID.ToString()); - MyWriter.WriteAttributeString("parentid", fi.ParentID.ToString()); - MyWriter.WriteAttributeString("dbid", fi.DBID.ToString()); - MyWriter.WriteAttributeString("name", fi.Name); - MyWriter.WriteAttributeString("title", fi.Title); - MyWriter.WriteAttributeString("shortname", fi.ShortName); - MyWriter.WriteAttributeString("formatid", fi.FormatID.ToString()); - MyWriter.WriteAttributeString("manualorder", fi.ManualOrder.ToString()); - MyWriter.WriteAttributeString("config", fi.Config); - MyWriter.WriteAttributeString("dts", fi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("usrid", fi.UsrID.ToString()); - - if (fi.FolderDocVersionCount > 0) - foreach (DocVersionInfo dvi in fi.FolderDocVersions) - ExportDocVersion(dvi, "docversion"); - MyWriter.WriteEndElement(); - MyWriter.WriteEndDocument(); - } - private void ExportDocVersion(XmlElement xn, DocVersionInfo dvi, string nodename) - { - /* - VersionID - FolderID - VersionType - Name - Title - ItemID - FormatID - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting DocVersion..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versionid", dvi.VersionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "folderid", dvi.FolderID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versiontype", dvi.VersionType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", dvi.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "title", dvi.Title)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", dvi.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", dvi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", dvi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", dvi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", dvi.UserID.ToString())); - xn.AppendChild(xe); - if (dvi.DocVersionAssociationCount > 0) - foreach (AssociationInfo ai in dvi.DocVersionAssociations) - ExportAssociation(xe, ai, "association"); - string fn = PEIPath + @"\folder.xml"; - xn.OwnerDocument.Save(fn); - MyExpxZipFile.AddFile(fn, "folder"); - MyExpxZipFile.Save(); - File.Delete(fn); - //here - lblExportStatus.Text = "Exporting Procedures..."; - Application.DoEvents(); - if (dvi.Procedures.Count > 0) - { - pbExportProcedure.Value = 0; - pbExportProcedure.Maximum = dvi.Procedures.Count; - lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures"; - foreach (ItemInfo ii in dvi.Procedures) - { - XmlDocument xd = new XmlDocument(); - ExportItem(xd, ii, "procedure"); - fn = string.Format(@"{0}\proc{1}.xml", PEIPath, pbExportProcedure.Value.ToString().PadLeft(4, '0')); - xd.Save(fn); - MyExpxZipFile.AddFile(fn, "procedures"); - MyExpxZipFile.Save(); - File.Delete(fn); - xd = null; - } - } - } - private void ExportDocVersion(DocVersionInfo dvi, string nodename) - { - /* - VersionID - FolderID - VersionType - Name - Title - ItemID - FormatID - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("versionid", dvi.VersionID.ToString()); - MyWriter.WriteAttributeString("folderid", dvi.FolderID.ToString()); - MyWriter.WriteAttributeString("versiontype", dvi.VersionType.ToString()); - MyWriter.WriteAttributeString("name", dvi.Name); - MyWriter.WriteAttributeString("title", dvi.Title); - MyWriter.WriteAttributeString("itemid", dvi.ItemID.ToString()); - MyWriter.WriteAttributeString("formatid", dvi.FormatID.ToString()); - MyWriter.WriteAttributeString("config", dvi.Config); - MyWriter.WriteAttributeString("dts", dvi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", dvi.UserID.ToString()); - if (dvi.DocVersionAssociationCount > 0) - foreach (AssociationInfo ai in dvi.DocVersionAssociations) - ExportAssociation(ai, "association"); - if (dvi.Procedures.Count > 0) - { - pbExportProcedure.Value = 0; - pbExportProcedure.Maximum = dvi.Procedures.Count; - lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures"; - foreach (ItemInfo ii in dvi.Procedures) - { - ExportItem(ii, "procedure"); - } - } - MyWriter.WriteEndElement(); - } - private void ExportAssociation(XmlElement xn, AssociationInfo ai, string nodename) - { - /* - AssociationID - VersionID - ROFstID - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting Association..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "associationid", ai.AssociationID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versionid", ai.VersionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstid", ai.ROFstID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ai.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ai.UserID.ToString())); - xn.AppendChild(xe); - ExportROFst(xe, ai.MyROFst, "rofst"); - } - private void ExportAssociation(AssociationInfo ai, string nodename) - { - /* - AssociationID - VersionID - ROFstID - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("associationid", ai.AssociationID.ToString()); - MyWriter.WriteAttributeString("versionid", ai.VersionID.ToString()); - MyWriter.WriteAttributeString("rofstid", ai.ROFstID.ToString()); - MyWriter.WriteAttributeString("config", ai.Config); - MyWriter.WriteAttributeString("dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ai.UserID.ToString()); - ExportROFst(ai.MyROFst, "rofst"); - MyWriter.WriteEndElement(); - } - private void ExportROFst(XmlElement xn, ROFstInfo fst, string nodename) - { - /* - ROFstID - RODbID - ROLookup - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting ROFst..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstid", fst.ROFstID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", fst.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rolookup", Convert.ToBase64String(fst.ROLookup))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", fst.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", fst.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", fst.UserID.ToString())); - xn.AppendChild(xe); - ExportRODb(xe, fst.MyRODb, "rodb"); - } - private void ExportROFst(ROFstInfo fst, string nodename) - { - /* - ROFstID - RODbID - ROLookup - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rofstid", fst.ROFstID.ToString()); - MyWriter.WriteAttributeString("rodbid", fst.RODbID.ToString()); - MyWriter.WriteAttributeString("rolookup", Convert.ToBase64String(fst.ROLookup)); - MyWriter.WriteAttributeString("config", fst.Config); - MyWriter.WriteAttributeString("dts", fst.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", fst.UserID.ToString()); - ExportRODb(fst.MyRODb, "rodb"); - MyWriter.WriteEndElement(); - } - private void ExportRODb(XmlElement xn, RODbInfo db, string nodename) - { - /* - RODbID - ROName - FolderPath - DBConnectionString - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting RODb..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", db.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "roname", db.ROName)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "folderpath", db.FolderPath)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dbconnectionstring", db.DBConnectionString)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", db.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", db.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", db.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportRODb(RODbInfo db, string nodename) - { - /* - RODbID - ROName - FolderPath - DBConnectionString - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rodbid", db.RODbID.ToString()); - MyWriter.WriteAttributeString("roname", db.ROName); - MyWriter.WriteAttributeString("folderpath", db.FolderPath); - MyWriter.WriteAttributeString("dbconnectionstring", db.DBConnectionString); - MyWriter.WriteAttributeString("config", db.Config); - MyWriter.WriteAttributeString("dts", db.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", db.UserID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportItem(XmlDocument xd, ItemInfo ii, string nodename) - { - XmlElement xe = xd.CreateElement(nodename); - xd.AppendChild(xe); - ExportItem(xe, ii, nodename); - } - private void ExportItem(XmlElement xn, ItemInfo ii, string nodename) - { - /* - ItemID - PreviousID - ContentID - DTS - */ - XmlElement xe = null; - if (xn.Name == "procedure") - xe = xn; - else - { - xe = xn.OwnerDocument.CreateElement(nodename); - xn.AppendChild(xe); - } - if (ii.IsProcedure) - { - pbExportProcedure.PerformStep(); - lblExportProcedure.Text = string.Format("{0} of {1} Procedures", pbExportProcedure.Value.ToString(), pbExportProcedure.Maximum.ToString()); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportTime.Text = "Elapsed Time: " + elapsed.ToString(); - Application.DoEvents(); - pbExportSection.Value = 0; - pbExportSection.Maximum = pbExportSection.Value; - pbExportStep.Value = 0; - pbExportStep.Maximum = pbExportStep.Value; - pbExportSection.Maximum = ii.Sections.Count; - } - if (ii.IsSection && ii.ActiveParent.IsProcedure) - { - pbExportSection.PerformStep(); - lblExportSection.Text = string.Format("{0} of {1} Sections", pbExportSection.Value.ToString(), pbExportSection.Maximum.ToString()); - Application.DoEvents(); - pbExportStep.Value = 0; - pbExportStep.Maximum = pbExportStep.Value; - if (ii.Steps != null) - pbExportStep.Maximum = ii.Steps.Count; - } - if (ii.IsStep && ii.ActiveParent.IsSection && ii.ActiveParent.ActiveParent.IsProcedure) - { - pbExportStep.PerformStep(); - lblExportStep.Text = string.Format("{0} of {1} Steps", pbExportStep.Value.ToString(), pbExportStep.Maximum.ToString()); - Application.DoEvents(); - } - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", ii.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "previousid", ii.PreviousID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ii.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ii.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - ExportContent(xe, ii.MyContent, "content"); - if (ii.ItemAnnotationCount > 0) - foreach (AnnotationInfo ai in ii.ItemAnnotations) - ExportAnnotation(xe, ai, "annotation"); - } - private void ExportItem(ItemInfo ii, string nodename) - { - /* - ItemID - PreviousID - ContentID - DTS - */ - if (ii.IsProcedure) - { - pbExportProcedure.PerformStep(); - lblExportProcedure.Text = string.Format("{0} of {1} Procedures", pbExportProcedure.Value.ToString(), pbExportProcedure.Maximum.ToString()); - Application.DoEvents(); - pbExportSection.Value = 0; - pbExportStep.Value = 0; - pbExportSection.Maximum = ii.Sections.Count; - } - if (ii.IsSection) - { - pbExportSection.PerformStep(); - lblExportSection.Text = string.Format("{0} of {1} Sections", pbExportSection.Value.ToString(), pbExportSection.Maximum.ToString()); - Application.DoEvents(); - pbExportStep.Value = 0; - if (ii.Steps != null) - pbExportStep.Maximum = ii.Steps.Count; - } - if (ii.IsStep) - { - pbExportStep.PerformStep(); - lblExportStep.Text = string.Format("{0} of {1} Steps", pbExportStep.Value.ToString(), pbExportStep.Maximum.ToString()); - Application.DoEvents(); - } - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("itemid", ii.ItemID.ToString()); - MyWriter.WriteAttributeString("previousid", ii.PreviousID.ToString()); - MyWriter.WriteAttributeString("contentid", ii.ContentID.ToString()); - MyWriter.WriteAttributeString("dts", ii.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - ExportContent(ii.MyContent, "content"); - if (ii.ItemAnnotationCount > 0) - foreach (AnnotationInfo ai in ii.ItemAnnotations) - ExportAnnotation(ai, "annotation"); - MyWriter.WriteEndElement(); - } - private void ExportContent(XmlElement xn, ContentInfo ci, string nodename) - { - /* - ContentID - Number - Text - Type - FormatID - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ci.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "number", ci.Number)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "text", ci.Text)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "type", ci.Type.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", ci.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ci.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ci.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ci.UserID.ToString())); - xn.AppendChild(xe); - if (ci.ContentTransitionCount > 0) - foreach (TransitionInfo ti in ci.ContentTransitions) - ExportTransition(xe, ti, "transition"); - if (ci.ContentRoUsageCount > 0) - foreach (RoUsageInfo ri in ci.ContentRoUsages) - ExportROUsage(xe, ri, "rousage"); - if (ci.ContentEntryCount > 0) - ExportEntry(xe, ci.MyEntry, "entry"); - if (ci.ContentGridCount > 0) - ExportGrid(xe, ci.MyGrid, "grid"); - if (ci.ContentPartCount > 0) - foreach (PartInfo pi in ci.ContentParts) - ExportPart(xe, pi, ((E_FromTypes)pi.FromType).ToString().ToLower()); - } - private void ExportContent(ContentInfo ci, string nodename) - { - /* - ContentID - Number - Text - Type - FormatID - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", ci.ContentID.ToString()); - MyWriter.WriteAttributeString("number", ci.Number); - MyWriter.WriteAttributeString("text", ci.Text); - MyWriter.WriteAttributeString("type", ci.Type.ToString()); - MyWriter.WriteAttributeString("formatid", ci.FormatID.ToString()); - MyWriter.WriteAttributeString("config", ci.Config); - MyWriter.WriteAttributeString("dts", ci.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ci.UserID.ToString()); - if (ci.ContentTransitionCount > 0) - foreach (TransitionInfo ti in ci.ContentTransitions) - ExportTransition(ti, "transition"); - if (ci.ContentRoUsageCount > 0) - foreach (RoUsageInfo ri in ci.ContentRoUsages) - ExportROUsage(ri, "rousage"); - if (ci.ContentEntryCount > 0) - ExportEntry(ci.MyEntry, "entry"); - if (ci.ContentGridCount > 0) - ExportGrid(ci.MyGrid, "grid"); - if (ci.ContentPartCount > 0) - foreach (PartInfo pi in ci.ContentParts) - ExportPart(pi, ((E_FromTypes)pi.FromType).ToString().ToLower()); - MyWriter.WriteEndElement(); - } - private void ExportGrid(XmlElement xn, GridInfo gi, string nodename) - { - /* - ContentID - Data - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", gi.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "data", gi.Data)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", gi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", gi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", gi.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportGrid(GridInfo gi, string nodename) - { - /* - ContentID - Data - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", gi.ContentID.ToString()); - MyWriter.WriteAttributeString("data", gi.Data); - MyWriter.WriteAttributeString("config", gi.Config); - MyWriter.WriteAttributeString("dts", gi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", gi.UserID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportEntry(XmlElement xn, EntryInfo ei, string nodename) - { - /* - ContentID - DocID - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ei.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docid", ei.DocID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ei.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ei.UserID.ToString())); - xn.AppendChild(xe); - ExportDocument(xe, ei.MyDocument, "document"); - } - private void ExportEntry(EntryInfo ei, string nodename) - { - /* - ContentID - DocID - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", ei.ContentID.ToString()); - MyWriter.WriteAttributeString("docid", ei.DocID.ToString()); - MyWriter.WriteAttributeString("dts", ei.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ei.UserID.ToString()); - ExportDocument(ei.MyDocument, "document"); - MyWriter.WriteEndElement(); - } - private void ExportDocument(XmlElement xn, DocumentInfo di, string nodename) - { - /* - DocID - LibTitle - DocContent - DocAscii - Config - DTS - UserID - FileExtension - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docid", di.DocID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "libtitle", di.LibTitle)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "doccontent", Convert.ToBase64String(di.DocContent))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docascii", di.DocAscii)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", di.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", di.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", di.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fileextension", di.FileExtension)); - xn.AppendChild(xe); - } - private void ExportDocument(DocumentInfo di, string nodename) - { - /* - DocID - LibTitle - DocContent - DocAscii - Config - DTS - UserID - FileExtension - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("docid", di.DocID.ToString()); - MyWriter.WriteAttributeString("libtitle", di.LibTitle); - MyWriter.WriteAttributeString("doccontent", Convert.ToBase64String(di.DocContent)); - MyWriter.WriteAttributeString("docascii", di.DocAscii); - MyWriter.WriteAttributeString("config", di.Config); - MyWriter.WriteAttributeString("dts", di.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", di.UserID.ToString()); - MyWriter.WriteAttributeString("fileextension", di.FileExtension); - MyWriter.WriteEndElement(); - } - private void ExportROUsage(XmlElement xn, RoUsageInfo ri, string nodename) - { - /* - ROUsageID - ContentID - ROID - Config - DTS - UserID - RODbID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rousageid", ri.ROUsageID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ri.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "roid", ri.ROID)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ri.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ri.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ri.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", ri.RODbID.ToString())); - xn.AppendChild(xe); - } - private void ExportROUsage(RoUsageInfo ri, string nodename) - { - /* - ROUsageID - ContentID - ROID - Config - DTS - UserID - RODbID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rousageid", ri.ROUsageID.ToString()); - MyWriter.WriteAttributeString("contentid", ri.ContentID.ToString()); - MyWriter.WriteAttributeString("roid", ri.ROID); - MyWriter.WriteAttributeString("config", ri.Config); - MyWriter.WriteAttributeString("dts", ri.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ri.UserID.ToString()); - MyWriter.WriteAttributeString("rodbid", ri.RODbID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportPart(XmlElement xn, PartInfo pi, string nodename) - { - /* - ContentID - FromType - ItemID - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", pi.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fromtype", pi.FromType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", pi.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", pi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", pi.UserID.ToString())); - xn.AppendChild(xe); - foreach (ItemInfo ii in pi.MyItems) - ExportItem(xe, ii, pi.PartType.ToString().ToLower()); - } - private void ExportPart(PartInfo pi, string nodename) - { - /* - ContentID - FromType - ItemID - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", pi.ContentID.ToString()); - MyWriter.WriteAttributeString("fromtype", pi.FromType.ToString()); - MyWriter.WriteAttributeString("itemid", pi.ItemID.ToString()); - MyWriter.WriteAttributeString("dts", pi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", pi.UserID.ToString()); - foreach (ItemInfo ii in pi.MyItems) - ExportItem(ii, pi.PartType.ToString().ToLower()); - MyWriter.WriteEndElement(); - } - private void ExportTransition(XmlElement xn, TransitionInfo ti, string nodename) - { - /* - TransitionID - FromID - ToID - RangeID - IsRange - TranType - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "transitionid", ti.TransitionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fromid", ti.FromID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "toid", ti.ToID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rangeid", ti.RangeID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "isrange", ti.IsRange.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "trantype", ti.TranType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ti.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ti.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ti.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportTransition(TransitionInfo ti, string nodename) - { - /* - TransitionID - FromID - ToID - RangeID - IsRange - TranType - Config - DTS - UserID - */ - string folder = string.Empty; - if (ti.MyItemToID.MyDocVersion != null && ti.MyItemToID.MyDocVersion.MyFolder.Name != MyFolder.Name) - { - nodename = "external" + nodename; - folder = ti.MyItemToID.MyDocVersion.MyFolder.Name; - } - else - { - nodename = "external" + nodename; - folder = "UNKNOWN"; - } - MyWriter.WriteStartElement(nodename); - if (folder != string.Empty) - MyWriter.WriteAttributeString("folder", folder); - MyWriter.WriteAttributeString("transitionid", ti.TransitionID.ToString()); - MyWriter.WriteAttributeString("fromid", ti.FromID.ToString()); - MyWriter.WriteAttributeString("toid", ti.ToID.ToString()); - MyWriter.WriteAttributeString("rangeid", ti.RangeID.ToString()); - MyWriter.WriteAttributeString("isrange", ti.IsRange.ToString()); - MyWriter.WriteAttributeString("trantype", ti.TranType.ToString()); - MyWriter.WriteAttributeString("config", ti.Config); - MyWriter.WriteAttributeString("dts", ti.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ti.UserID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportAnnotation(XmlElement xn, AnnotationInfo ai, string nodename) - { - /* - AnnotationID - ItemID - TypeID - RtfText - SearchText - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "annotationid", ai.AnnotationID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", ai.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typeid", ai.TypeID.ToString())); - //if(ai.TypeID > 6) - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typename", ai.MyAnnotationType.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rtftext", ai.RtfText)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "searchtext", ai.SearchText)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ai.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ai.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportAnnotation(AnnotationInfo ai, string nodename) - { - /* - AnnotationID - ItemID - TypeID - RtfText - SearchText - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("annotationid", ai.AnnotationID.ToString()); - MyWriter.WriteAttributeString("itemid", ai.ItemID.ToString()); - MyWriter.WriteAttributeString("typeid", ai.TypeID.ToString()); - MyWriter.WriteAttributeString("rtftext", ai.RtfText); - MyWriter.WriteAttributeString("searchtext", ai.SearchText); - MyWriter.WriteAttributeString("config", ai.Config); - MyWriter.WriteAttributeString("dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ai.UserID.ToString()); - MyWriter.WriteEndElement(); - } - #endregion - #region Import for Merge - private void AddExternalTransition(XmlReader xr, XmlDocument xd) - { - XmlElement xe = xd.CreateElement("transition"); - XmlAttribute xa = AddAttribute(xd, "folder", xr.GetAttribute("folder")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "transitionid", xr.GetAttribute("transitionid")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "fromid", xr.GetAttribute("fromid")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "toid", xr.GetAttribute("toid")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "rangeid", xr.GetAttribute("rangeid")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "isrange", xr.GetAttribute("isrange")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "trantype", xr.GetAttribute("trantype")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "config", xr.GetAttribute("config")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "userid", xr.GetAttribute("userid")); - xe.Attributes.SetNamedItem(xa); - xa = AddAttribute(xd, "dts", xr.GetAttribute("dts")); - xe.Attributes.SetNamedItem(xa); - xd.SelectSingleNode("externaltransitions/transitions").AppendChild(xe); - } - private void AddTransitions(XmlReader xr) - { - int transitionid = int.Parse(xr.GetAttribute("transitionid")); - int fromid = int.Parse(xr.GetAttribute("fromid")); - int toid = int.Parse(xr.GetAttribute("toid")); - int rangeid = int.Parse(xr.GetAttribute("rangeid")); - int isrange = int.Parse(xr.GetAttribute("isrange")); - int trantype = int.Parse(xr.GetAttribute("trantype")); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - fromid = Old2NewContent[fromid]; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Content cc = Content.Get(fromid); - Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - cc.Text = cc.Text.Replace(lookfor, replacewith); - cc.Save(); - } - private void AddTransitions(Content content, XmlNode xn) - { - /* - Content - Item - Item - int - int - string - dts - string - - - #Link:Transition:1 2 187 - type,id,toid - - #Link:TransitionRange:2 1 175 177 - type,id,toid,rangeid - */ - XmlNodeList nl = xn.SelectNodes("./transition"); - foreach (XmlNode nd in nl) - { - int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - if (Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) - { - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - //fromid = content.ContentID; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Transition tt = Transition.MakeTransition(content, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - content.Text = content.Text.Replace(lookfor, replacewith); - content.Save(); - } - else - { - PendingTransitions.DocumentElement.AppendChild(PendingTransitions.ImportNode(nd, true)); - //save to holding pen - } - } - } - private void AddTransitions() - { - AddTransitions(PendingTransitions); - } - private void AddTransitions(XmlDocument xd) - { - /* - Content - Item - Item - int - int - string - dts - string - - - #Link:Transition:1 2 187 - type,id,toid - - #Link:TransitionRange:2 1 175 177 - type,id,toid,rangeid - */ - XmlNodeList nl = xd.SelectNodes("//transition"); - lblImportStatus.Text = string.Format("Updating {0} Tranistions", nl.Count.ToString()); - foreach (XmlNode nd in nl) - { - int fromid = int.Parse(nd.Attributes.GetNamedItem("fromid").InnerText); - int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - if (Old2NewContent.ContainsKey(fromid) && Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) - { - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - fromid = Old2NewContent[fromid]; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Content cc = Content.Get(fromid); - Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - cc.Text = cc.Text.Replace(lookfor, replacewith); - cc.Save(); - nd.InnerText = "done"; - } - } - } - private Dictionary Old2NewItem; - private Dictionary Old2NewContent; - private Dictionary Old2NewLibDoc; - private XmlDocument PendingTransitions; - private RODb MyRODb = null; - private Folder AddFolder(Folder folder, XmlReader xr) - { - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - string title = xr.GetAttribute("title"); - string name = xr.GetAttribute("name"); - string shortname = xr.GetAttribute("shortname"); - string usrid = xr.GetAttribute("usrid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - string formatid = xr.GetAttribute("formatid"); - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid)); - folder = Folder.MakeFolder(folder, folder.MyConnection, name, title, shortname, format, null, dts, usrid); - //f.Save(); - return folder; - } - private Folder AddFolder(Folder p, XmlDocument xd) - { - lblImportStatus.Text = "Creating Folder..."; - Application.DoEvents(); - string title = xd.DocumentElement.Attributes.GetNamedItem("title").InnerText; - string name = xd.DocumentElement.Attributes.GetNamedItem("name").InnerText; - string shortname = xd.DocumentElement.Attributes.GetNamedItem("shortname").InnerText; - string usrid = xd.DocumentElement.Attributes.GetNamedItem("usrid").InnerText; - DateTime dts = DateTime.Parse(xd.DocumentElement.Attributes.GetNamedItem("dts").InnerText); - string formatid = xd.DocumentElement.Attributes.GetNamedItem("formatid").InnerText; - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid)); - Folder f = Folder.MakeFolder(p, p.MyConnection, name, title, shortname, format, null, dts, usrid); - return f; - } - private Format OldToNewFormat(int formatID) - { - string formatName = oldFormat[formatID]; - formatID = newFormat[formatName]; - return Format.Get(formatID); - } - private DocVersion AddDocVersion(Folder f, XmlReader xr) - { - int versiontype = int.Parse(xr.GetAttribute("versiontype")); - string name = xr.GetAttribute("name"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - string formatid = xr.GetAttribute("formatid"); - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid)); - DocVersion dv = DocVersion.MakeDocVersion(f, versiontype, name, null, null, format, config, dts, userid); - return dv; - } - private void AddAnnotationTypes(XmlDocument xd) - { - XmlNodeList nl = xd.SelectNodes("folder/annotationtypes/annotationtype"); - foreach (XmlNode nd in nl) - { - AnnotationTypeInfo ati = AnnotationTypeInfo.GetByName(nd.Attributes.GetNamedItem("name").InnerText); - if (ati == null) - AnnotationType.MakeAnnotationType(nd.Attributes.GetNamedItem("name").InnerText, nd.Attributes.GetNamedItem("config").InnerText, DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText), nd.Attributes.GetNamedItem("userid").InnerText); - } - } - private DocVersionInfo AddDocVersion(Folder f, XmlDocument xd) - { - lblImportStatus.Text = "Creating DocVersion..."; - Application.DoEvents(); - XmlElement xe = (XmlElement)xd.SelectSingleNode("folder/docversion"); - int versiontype = int.Parse(xe.Attributes.GetNamedItem("versiontype").InnerText); - string name = xe.Attributes.GetNamedItem("name").InnerText; - string config = xe.Attributes.GetNamedItem("config").InnerText; - string userid = xe.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xe.Attributes.GetNamedItem("dts").InnerText); - string formatid = xe.Attributes.GetNamedItem("formatid").InnerText; - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid)); - DocVersion dv = DocVersion.MakeDocVersion(f, versiontype, name, null, null, format, config, dts, userid); - XmlNode xassoc = xe.SelectSingleNode("association"); - if (xassoc != null) - { - XmlNode xrofst = xassoc.SelectSingleNode("rofst"); - XmlNode xrodb = xrofst.SelectSingleNode("rodb"); - MyRODb = AddRODb(xrodb); - ROFst rofst = AddROFst(xrofst); - DocVersionAssociation dva = dv.DocVersionAssociations.Add(rofst); - dv.Save(); - } - return DocVersionInfo.Get(dv.VersionID); - } - private Dictionary GetROFstData(XmlReader xr) - { - Dictionary rv = new Dictionary(); - rv.Add("rolookup", xr.GetAttribute("rolookup")); - rv.Add("config", xr.GetAttribute("config")); - rv.Add("userid", xr.GetAttribute("userid")); - rv.Add("dts", xr.GetAttribute("dts")); - return rv; - } - private ROFst AddROFst(Dictionary dic) - { - byte[] rolookup = Convert.FromBase64String(dic["rolookup"]); - string config = dic["config"]; - string userid = dic["userid"]; - DateTime dts = DateTime.Parse(dic["dts"]); - ROFst rv = null; - rv = ROFst.GetByRODbID_DTS(MyRODb.RODbID, dts); //MyRODb.DTS); - if (rv == null) - rv = ROFst.MakeROFst(MyRODb, rolookup, config, dts, userid); - return rv; - } - private ROFst AddROFst(XmlNode xrofst) - { - lblImportStatus.Text = "Creating ROFst..."; - Application.DoEvents(); - byte[] rolookup = Convert.FromBase64String(xrofst.Attributes.GetNamedItem("rolookup").InnerText); - string config = xrofst.Attributes.GetNamedItem("config").InnerText; - string userid = xrofst.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xrofst.Attributes.GetNamedItem("dts").InnerText); - ROFst rv = null; - rv = ROFst.GetByRODbID_DTS(MyRODb.RODbID, dts); //MyRODb.DTS); - if (rv == null) - rv = ROFst.MakeROFst(MyRODb, rolookup, config, dts, userid); - return rv; - } - private RODb AddRODb(XmlReader xr) - { - oldRODbID = int.Parse(xr.GetAttribute("rodbid")); - string roname = xr.GetAttribute("roname"); - string folderpath = xr.GetAttribute("folderpath"); - string dbconnectionstring = xr.GetAttribute("dbconnectionstring"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - RODb rv = null; - rv = RODb.GetByFolderPath(folderpath); - if (rv == null) - rv = RODb.MakeRODb(roname, folderpath, dbconnectionstring, config, dts, userid); - newRODbID = rv.RODbID; - return rv; - } - private RODb AddRODb(XmlNode xrodb) - { - lblImportStatus.Text = "Creating RODb..."; - Application.DoEvents(); - oldRODbID = int.Parse(xrodb.Attributes.GetNamedItem("rodbid").InnerText); - string roname = xrodb.Attributes.GetNamedItem("roname").InnerText; - string folderpath = xrodb.Attributes.GetNamedItem("folderpath").InnerText; - string dbconnectionstring = xrodb.Attributes.GetNamedItem("dbconnectionstring").InnerText; - string config = xrodb.Attributes.GetNamedItem("config").InnerText; - string userid = xrodb.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xrodb.Attributes.GetNamedItem("dts").InnerText); - RODb rv = null; - rv = RODb.GetByFolderPath(folderpath); - if (rv == null) - rv = RODb.MakeRODb(roname, folderpath, dbconnectionstring, config, dts, userid); - newRODbID = rv.RODbID; - return rv; - } - private int GetProcedureData(XmlReader xr) - { - return int.Parse(xr.GetAttribute("itemid")); - } - private ItemInfo AddProcedure(XmlReader xr, DocVersion dv, ItemInfo procInfo, int oldid) - { - DocVersionInfo dvInfo = DocVersionInfo.Get(dv.VersionID); - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int proctype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Procedure p = Procedure.MakeProcedure(dvInfo, procInfo, number, text, proctype); - p.DTS = dts; - p.UserID = userid; - if (formatid != string.Empty) - p.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - p.MyContent.Config = config; - p.MyContent.DTS = dts; - p.MyContent.UserID = userid; - p.Save(); - Old2NewItem.Add(oldid, p.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), p.MyContent.ContentID); - procInfo = ProcedureInfo.Get(p.ItemID); - return procInfo; - } - private ProcedureInfo AddProcedure(XmlNode xn, DocVersionInfo dvInfo, ProcedureInfo procInfo) - { - pbImportProcedure.PerformStep(); - lblImportProcedure.Text = string.Format("{0} of {1} Procedures", pbImportProcedure.Value.ToString(), pbImportProcedure.Maximum.ToString()); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblImportTime.Text = "Elapsed Time: " + elapsed.ToString(); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int proctype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - Procedure p = Procedure.MakeProcedure(dvInfo, procInfo, number, text, proctype); - p.DTS = dts; - p.UserID = userid; - if (formatid != string.Empty) - p.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - p.MyContent.Config = config; - p.MyContent.DTS = dts; - p.MyContent.UserID = userid; - p.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), p.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), p.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(p.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(p.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(p.MyContent, xc); - procInfo = ProcedureInfo.Get(p.ItemID); - if (xc.HasChildNodes) - AddParts(xc, procInfo); - return procInfo; - } - private void AddROUsage(XmlReader xr) - { - int contentid = int.Parse(xr.GetAttribute("contentid")); - contentid = Old2NewContent[contentid]; - Content content = Content.Get(contentid); - string rousageid = xr.GetAttribute("rousageid"); - string roid = xr.GetAttribute("roid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - RoUsage rou = RoUsage.MakeRoUsage(content, roid, config, dts, userid, MyRODb); - rou.Save(); - string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); - string replaceWith = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); - if (lookFor != replaceWith) - { - content.Text = content.Text.Replace(lookFor, replaceWith); - content.Save(); - } - } - private void AddROUsages(Content content, XmlNode xn) - { - foreach (XmlNode nd in xn.SelectNodes("rousage")) - { - string rousageid = nd.Attributes.GetNamedItem("rousageid").InnerText; - string roid = nd.Attributes.GetNamedItem("roid").InnerText; - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - RoUsage rou = RoUsage.MakeRoUsage(content, roid, config, dts, userid, MyRODb); - rou.Save(); - string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); - string replaceWith = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); - if (lookFor != replaceWith) - { - content.Text = content.Text.Replace(lookFor, replaceWith); - content.Save(); - } - } - } - private void AddAnnotation(XmlReader xr) - { - int itemid = int.Parse(xr.GetAttribute("itemid")); - itemid = Old2NewItem[itemid]; - Item itm = Item.Get(itemid); - int typeid = int.Parse(xr.GetAttribute("typeid")); - string rtftext = xr.GetAttribute("rtftext"); - string searchtext = xr.GetAttribute("searchtext"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Annotation ann = Annotation.MakeAnnotation(itm, AnnotationType.Get(typeid), rtftext, searchtext, config, dts, userid); - } - private void AddAnnotations(int itemID, XmlNode xn) - { - Item itm = Item.Get(itemID); - foreach (XmlNode nd in xn.SelectNodes("annotation")) - { - int typeid = int.Parse(nd.Attributes.GetNamedItem("typeid").InnerText); - string rtftext = nd.Attributes.GetNamedItem("rtftext").InnerText; - string searchtext = nd.Attributes.GetNamedItem("searchtext").InnerText; - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - AnnotationType annType = AnnotationType.GetByName(nd.Attributes.GetNamedItem("typename").InnerText); - Annotation ann = Annotation.MakeAnnotation(itm, annType, rtftext, searchtext, config, dts, userid); - ann.Save(); - } - } - private void AddParts(XmlNode myNode, ItemInfo parentInfo) - { - foreach (XmlNode xn in myNode.ChildNodes) - { - switch (xn.Name) - { - case "sections": - AddSections(xn, parentInfo); - break; - case "cautions": - AddCautions(xn, parentInfo); - break; - case "notes": - AddNotes(xn, parentInfo); - break; - case "rnos": - AddRNOs(xn, parentInfo); - break; - case "steps": - AddSteps(xn, parentInfo); - break; - case "tables": - AddTables(xn, parentInfo); - break; - default: - break; - } - } - } - private void AddTables(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddTable(nd, parentInfo, prevInfo); - } - private ItemInfo AddTable(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int steptype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Table); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(oldid, step.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - prevInfo = StepInfo.Get(step.ItemID); - return prevInfo; - } - private ItemInfo AddTable(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Table); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xc.SelectNodes("grid").Count > 0) - AddGrid(step.MyContent, xc); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddSteps(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddStep(nd, parentInfo, prevInfo); - } - private ItemInfo AddStep(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int steptype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Step); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(oldid, step.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - prevInfo = StepInfo.Get(step.ItemID); - return prevInfo; - } - private ItemInfo AddStep(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Step); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddRNOs(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddRNO(nd, parentInfo, prevInfo); - } - private ItemInfo AddRNO(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int steptype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.RNO); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(oldid, step.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - prevInfo = StepInfo.Get(step.ItemID); - return prevInfo; - } - private ItemInfo AddRNO(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.RNO); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddNotes(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddNote(nd, parentInfo, prevInfo); - } - private ItemInfo AddNote(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int steptype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Note); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(oldid, step.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - prevInfo = StepInfo.Get(step.ItemID); - return prevInfo; - } - private ItemInfo AddNote(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Note); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddCautions(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddCaution(nd, parentInfo, prevInfo); - } - private ItemInfo AddCaution(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int steptype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Caution); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(oldid, step.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - prevInfo = StepInfo.Get(step.ItemID); - return prevInfo; - } - private ItemInfo AddCaution(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Caution); - step.DTS = dts; - step.UserID = userid; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddSections(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddSection(nd, parentInfo, prevInfo); - } - private Dictionary GetSectionData(XmlReader xr) - { - Dictionary rv = new Dictionary(); - rv.Add("itemid", xr.GetAttribute("itemid")); - return rv; - } - private ItemInfo AddSection(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - { - string number = xr.GetAttribute("number"); - string text = xr.GetAttribute("text"); - int sectiontype = int.Parse(xr.GetAttribute("type")); - string formatid = xr.GetAttribute("formatid"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Section sect = Section.MakeSection(parentInfo, prevInfo, number, text, sectiontype); - sect.DTS = dts; - sect.UserID = userid; - if (formatid != string.Empty) - sect.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - sect.MyContent.Config = config; - sect.MyContent.DTS = dts; - sect.MyContent.UserID = userid; - sect.Save(); - Old2NewItem.Add(oldid, sect.ItemID); - Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), sect.MyContent.ContentID); - prevInfo = SectionInfo.Get(sect.ItemID); - return prevInfo; - } - private ItemInfo AddSection(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportSection.PerformStep(); - lblImportSection.Text = string.Format("{0} of {1} Sections", pbImportSection.Value.ToString(), pbImportSection.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Section sect; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int sectiontype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - sect = Section.MakeSection(parentInfo, prevInfo, number, text, sectiontype); - sect.DTS = dts; - sect.UserID = userid; - if (formatid != string.Empty) - sect.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - sect.MyContent.Config = config; - sect.MyContent.DTS = dts; - sect.MyContent.UserID = userid; - sect.Save(); - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), sect.ItemID); - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), sect.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(sect.ItemID, xn); - if (xc.SelectNodes("entry").Count > 0) - AddEntry(sect.MyContent, xc); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(sect.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(sect.MyContent, xc); - prevInfo = SectionInfo.Get(sect.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private void AddGrid(XmlReader xr) - { - int contentid = int.Parse(xr.GetAttribute("contentid")); - contentid = Old2NewContent[contentid]; - Content content = Content.Get(contentid); - string data = xr.GetAttribute("data"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - Grid gg = Grid.MakeGrid(content, data, config, dts, userid); - } - private void AddGrid(Content content, XmlNode xc) - { - XmlNode nd = xc.SelectSingleNode("grid"); - string data = nd.Attributes.GetNamedItem("data").InnerText; - XmlDocument xd = new XmlDocument(); - xd.LoadXml(data); - XmlNode gn = xd.SelectSingleNode("C1FlexGrid/Control/IsRoTable"); - if (gn.InnerText.ToLower() == "true") - { - gn = xd.SelectSingleNode("C1FlexGrid/Control/RODbId"); - gn.InnerText = newRODbID.ToString(); - data = xd.OuterXml; - } - else - { - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Cells/Cell/Data"); - bool modified = false; - string lookFor = string.Format(" {0}[END", oldRODbID.ToString()); - string replaceWith = string.Format(" {0}[END", newRODbID.ToString()); - foreach (XmlNode nn in nl) - { - if (nn.InnerText.Contains("#Link:ReferencedObject:")) - { - nn.InnerText = nn.InnerText.Replace(lookFor, replaceWith); - modified = true; - } - } - if (modified) - data = xd.OuterXml; - } - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - Grid gg = Grid.MakeGrid(content, data, config, dts, userid); - gg.Save(); - } - private Dictionary AddEntry(XmlReader xr) - { - Dictionary dic = new Dictionary(); - dic.Add("contentid", xr.GetAttribute("contentid")); - dic.Add("dts", xr.GetAttribute("dts")); - dic.Add("userid", xr.GetAttribute("userid")); - return dic; - } - private void AddEntry(Content content, XmlNode xc) - { - XmlNode nd = xc.SelectSingleNode("entry"); - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - Document dd = AddDocument(nd.SelectSingleNode("document")); - Entry ee = Entry.MakeEntry(content, dd, dts, userid); - ee.Save(); - } - private void AddDocument(XmlReader xr, Dictionary dic) - { - string libtitle = xr.GetAttribute("libtitle"); - byte[] doccontent = Convert.FromBase64String(xr.GetAttribute("doccontent")); - string docascii = xr.GetAttribute("docascii"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - string fileextension = xr.GetAttribute("fileextension"); - Document dd = Document.MakeDocument(libtitle, doccontent, docascii, config, dts, userid, fileextension); - int contentid = int.Parse(dic["contentid"]); - contentid = Old2NewContent[contentid]; - Content content = Content.Get(contentid); - dts = DateTime.Parse(dic["dts"]); - userid = dic["userid"]; - Entry ee = Entry.MakeEntry(content, dd, dts, userid); - } - private Document AddDocument(XmlNode xn) - { - Document d; - int docid = int.Parse(xn.Attributes.GetNamedItem("docid").InnerText); - if (Old2NewLibDoc.ContainsKey(docid)) - { - docid = Old2NewLibDoc[docid]; - d = Document.Get(docid); - } - else - { - string libtitle = xn.Attributes.GetNamedItem("libtitle").InnerText; - byte[] doccontent = Convert.FromBase64String(xn.Attributes.GetNamedItem("doccontent").InnerText); - string docascii = xn.Attributes.GetNamedItem("docascii").InnerText; - string config = xn.Attributes.GetNamedItem("config").InnerText; - string userid = xn.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xn.Attributes.GetNamedItem("dts").InnerText); - string fileextension = xn.Attributes.GetNamedItem("fileextension").InnerText; - d = Document.MakeDocument(libtitle, doccontent, docascii, config, dts, userid, fileextension); - d.Save(); - Old2NewLibDoc.Add(docid, d.DocID); - } - return d; - } - #endregion - - private void btnCloseExport_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void btnCloseImport_Click(object sender, EventArgs e) - { - this.Close(); - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/dlgExportImport.designer.cs b/PROMS/DataLoader/dlgExportImport.designer.cs deleted file mode 100644 index 1d470b27..00000000 --- a/PROMS/DataLoader/dlgExportImport.designer.cs +++ /dev/null @@ -1,413 +0,0 @@ -namespace DataLoader -{ - partial class dlgExportImport - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.pnlExport = new System.Windows.Forms.Panel(); - this.lblExportStatus = new System.Windows.Forms.Label(); - this.pbExportStep = new System.Windows.Forms.ProgressBar(); - this.lblExportStep = new System.Windows.Forms.Label(); - this.pbExportSection = new System.Windows.Forms.ProgressBar(); - this.lblExportSection = new System.Windows.Forms.Label(); - this.pbExportProcedure = new System.Windows.Forms.ProgressBar(); - this.lblExportProcedure = new System.Windows.Forms.Label(); - this.btnDoExport = new System.Windows.Forms.Button(); - this.btnExport = new System.Windows.Forms.Button(); - this.txtExport = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.pnlImport = new System.Windows.Forms.Panel(); - this.lblImportStatus = new System.Windows.Forms.Label(); - this.pbImportStep = new System.Windows.Forms.ProgressBar(); - this.lblImportStep = new System.Windows.Forms.Label(); - this.pbImportSection = new System.Windows.Forms.ProgressBar(); - this.lblImportSection = new System.Windows.Forms.Label(); - this.pbImportProcedure = new System.Windows.Forms.ProgressBar(); - this.lblImportProcedure = new System.Windows.Forms.Label(); - this.btnDoImport = new System.Windows.Forms.Button(); - this.btnImport = new System.Windows.Forms.Button(); - this.txtImport = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.sfd = new System.Windows.Forms.SaveFileDialog(); - this.btnCloseExport = new System.Windows.Forms.Button(); - this.btnCloseImport = new System.Windows.Forms.Button(); - this.lblExportTime = new System.Windows.Forms.Label(); - this.lblImportTime = new System.Windows.Forms.Label(); - this.pnlExport.SuspendLayout(); - this.pnlImport.SuspendLayout(); - this.SuspendLayout(); - // - // pnlExport - // - this.pnlExport.Controls.Add(this.btnCloseExport); - this.pnlExport.Controls.Add(this.lblExportTime); - this.pnlExport.Controls.Add(this.lblExportStatus); - this.pnlExport.Controls.Add(this.pbExportStep); - this.pnlExport.Controls.Add(this.lblExportStep); - this.pnlExport.Controls.Add(this.pbExportSection); - this.pnlExport.Controls.Add(this.lblExportSection); - this.pnlExport.Controls.Add(this.pbExportProcedure); - this.pnlExport.Controls.Add(this.lblExportProcedure); - this.pnlExport.Controls.Add(this.btnDoExport); - this.pnlExport.Controls.Add(this.btnExport); - this.pnlExport.Controls.Add(this.txtExport); - this.pnlExport.Controls.Add(this.label1); - this.pnlExport.Location = new System.Drawing.Point(12, 12); - this.pnlExport.Name = "pnlExport"; - this.pnlExport.Size = new System.Drawing.Size(618, 199); - this.pnlExport.TabIndex = 0; - // - // lblExportStatus - // - this.lblExportStatus.AutoSize = true; - this.lblExportStatus.Location = new System.Drawing.Point(140, 30); - this.lblExportStatus.Name = "lblExportStatus"; - this.lblExportStatus.Size = new System.Drawing.Size(133, 13); - this.lblExportStatus.TabIndex = 10; - this.lblExportStatus.Text = "Awaiting Export File Name:"; - // - // pbExportStep - // - this.pbExportStep.Location = new System.Drawing.Point(15, 155); - this.pbExportStep.Name = "pbExportStep"; - this.pbExportStep.Size = new System.Drawing.Size(561, 20); - this.pbExportStep.Step = 1; - this.pbExportStep.TabIndex = 9; - // - // lblExportStep - // - this.lblExportStep.AutoSize = true; - this.lblExportStep.Location = new System.Drawing.Point(12, 139); - this.lblExportStep.Name = "lblExportStep"; - this.lblExportStep.Size = new System.Drawing.Size(34, 13); - this.lblExportStep.TabIndex = 8; - this.lblExportStep.Text = "Steps"; - // - // pbExportSection - // - this.pbExportSection.Location = new System.Drawing.Point(15, 116); - this.pbExportSection.Name = "pbExportSection"; - this.pbExportSection.Size = new System.Drawing.Size(561, 20); - this.pbExportSection.Step = 1; - this.pbExportSection.TabIndex = 7; - // - // lblExportSection - // - this.lblExportSection.AutoSize = true; - this.lblExportSection.Location = new System.Drawing.Point(12, 100); - this.lblExportSection.Name = "lblExportSection"; - this.lblExportSection.Size = new System.Drawing.Size(48, 13); - this.lblExportSection.TabIndex = 6; - this.lblExportSection.Text = "Sections"; - // - // pbExportProcedure - // - this.pbExportProcedure.Location = new System.Drawing.Point(15, 77); - this.pbExportProcedure.Name = "pbExportProcedure"; - this.pbExportProcedure.Size = new System.Drawing.Size(561, 20); - this.pbExportProcedure.Step = 1; - this.pbExportProcedure.TabIndex = 5; - // - // lblExportProcedure - // - this.lblExportProcedure.AutoSize = true; - this.lblExportProcedure.Location = new System.Drawing.Point(12, 61); - this.lblExportProcedure.Name = "lblExportProcedure"; - this.lblExportProcedure.Size = new System.Drawing.Size(61, 13); - this.lblExportProcedure.TabIndex = 4; - this.lblExportProcedure.Text = "Procedures"; - // - // btnDoExport - // - this.btnDoExport.Enabled = false; - this.btnDoExport.Location = new System.Drawing.Point(15, 25); - this.btnDoExport.Name = "btnDoExport"; - this.btnDoExport.Size = new System.Drawing.Size(119, 23); - this.btnDoExport.TabIndex = 3; - this.btnDoExport.Text = "Process Export"; - this.btnDoExport.UseVisualStyleBackColor = true; - this.btnDoExport.Click += new System.EventHandler(this.btnDoExport_Click); - // - // btnExport - // - this.btnExport.Location = new System.Drawing.Point(582, 3); - this.btnExport.Name = "btnExport"; - this.btnExport.Size = new System.Drawing.Size(25, 23); - this.btnExport.TabIndex = 2; - this.btnExport.Text = "..."; - this.btnExport.UseVisualStyleBackColor = true; - this.btnExport.Click += new System.EventHandler(this.btnExport_Click); - // - // txtExport - // - this.txtExport.Location = new System.Drawing.Point(141, 6); - this.txtExport.Name = "txtExport"; - this.txtExport.ReadOnly = true; - this.txtExport.Size = new System.Drawing.Size(435, 20); - this.txtExport.TabIndex = 1; - this.txtExport.TextChanged += new System.EventHandler(this.txtExport_TextChanged); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(123, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Select Export File Name:"; - // - // pnlImport - // - this.pnlImport.Controls.Add(this.btnCloseImport); - this.pnlImport.Controls.Add(this.lblImportTime); - this.pnlImport.Controls.Add(this.lblImportStatus); - this.pnlImport.Controls.Add(this.pbImportStep); - this.pnlImport.Controls.Add(this.lblImportStep); - this.pnlImport.Controls.Add(this.pbImportSection); - this.pnlImport.Controls.Add(this.lblImportSection); - this.pnlImport.Controls.Add(this.pbImportProcedure); - this.pnlImport.Controls.Add(this.lblImportProcedure); - this.pnlImport.Controls.Add(this.btnDoImport); - this.pnlImport.Controls.Add(this.btnImport); - this.pnlImport.Controls.Add(this.txtImport); - this.pnlImport.Controls.Add(this.label2); - this.pnlImport.Location = new System.Drawing.Point(12, 217); - this.pnlImport.Name = "pnlImport"; - this.pnlImport.Size = new System.Drawing.Size(618, 225); - this.pnlImport.TabIndex = 1; - // - // lblImportStatus - // - this.lblImportStatus.AutoSize = true; - this.lblImportStatus.Location = new System.Drawing.Point(137, 31); - this.lblImportStatus.Name = "lblImportStatus"; - this.lblImportStatus.Size = new System.Drawing.Size(132, 13); - this.lblImportStatus.TabIndex = 16; - this.lblImportStatus.Text = "Awaiting Import File Name:"; - // - // pbImportStep - // - this.pbImportStep.Location = new System.Drawing.Point(15, 156); - this.pbImportStep.Name = "pbImportStep"; - this.pbImportStep.Size = new System.Drawing.Size(561, 20); - this.pbImportStep.Step = 1; - this.pbImportStep.TabIndex = 15; - // - // lblImportStep - // - this.lblImportStep.AutoSize = true; - this.lblImportStep.Location = new System.Drawing.Point(12, 140); - this.lblImportStep.Name = "lblImportStep"; - this.lblImportStep.Size = new System.Drawing.Size(34, 13); - this.lblImportStep.TabIndex = 14; - this.lblImportStep.Text = "Steps"; - // - // pbImportSection - // - this.pbImportSection.Location = new System.Drawing.Point(14, 117); - this.pbImportSection.Name = "pbImportSection"; - this.pbImportSection.Size = new System.Drawing.Size(561, 20); - this.pbImportSection.Step = 1; - this.pbImportSection.TabIndex = 13; - // - // lblImportSection - // - this.lblImportSection.AutoSize = true; - this.lblImportSection.Location = new System.Drawing.Point(12, 101); - this.lblImportSection.Name = "lblImportSection"; - this.lblImportSection.Size = new System.Drawing.Size(48, 13); - this.lblImportSection.TabIndex = 12; - this.lblImportSection.Text = "Sections"; - // - // pbImportProcedure - // - this.pbImportProcedure.Location = new System.Drawing.Point(14, 78); - this.pbImportProcedure.Name = "pbImportProcedure"; - this.pbImportProcedure.Size = new System.Drawing.Size(561, 20); - this.pbImportProcedure.Step = 1; - this.pbImportProcedure.TabIndex = 11; - // - // lblImportProcedure - // - this.lblImportProcedure.AutoSize = true; - this.lblImportProcedure.Location = new System.Drawing.Point(12, 62); - this.lblImportProcedure.Name = "lblImportProcedure"; - this.lblImportProcedure.Size = new System.Drawing.Size(61, 13); - this.lblImportProcedure.TabIndex = 10; - this.lblImportProcedure.Text = "Procedures"; - // - // btnDoImport - // - this.btnDoImport.Enabled = false; - this.btnDoImport.Location = new System.Drawing.Point(15, 26); - this.btnDoImport.Name = "btnDoImport"; - this.btnDoImport.Size = new System.Drawing.Size(119, 23); - this.btnDoImport.TabIndex = 5; - this.btnDoImport.Text = "Process Import"; - this.btnDoImport.UseVisualStyleBackColor = true; - this.btnDoImport.Click += new System.EventHandler(this.btnDoImport_Click); - // - // btnImport - // - this.btnImport.Location = new System.Drawing.Point(581, 4); - this.btnImport.Name = "btnImport"; - this.btnImport.Size = new System.Drawing.Size(25, 23); - this.btnImport.TabIndex = 4; - this.btnImport.Text = "..."; - this.btnImport.UseVisualStyleBackColor = true; - this.btnImport.Click += new System.EventHandler(this.btnImport_Click); - // - // txtImport - // - this.txtImport.Location = new System.Drawing.Point(140, 7); - this.txtImport.Name = "txtImport"; - this.txtImport.ReadOnly = true; - this.txtImport.Size = new System.Drawing.Size(435, 20); - this.txtImport.TabIndex = 3; - this.txtImport.TextChanged += new System.EventHandler(this.txtImport_TextChanged); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 10); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(122, 13); - this.label2.TabIndex = 1; - this.label2.Text = "Select Import File Name:"; - // - // ofd - // - this.ofd.AddExtension = false; - this.ofd.Filter = "PROMS Export Files|*.expx"; - this.ofd.Title = "Import File Name"; - // - // sfd - // - this.sfd.DefaultExt = "expx"; - this.sfd.Filter = "PROMS Export Files|*.expx"; - this.sfd.Title = "Export File Name"; - // - // lblExportTime - // - this.lblExportTime.AutoSize = true; - this.lblExportTime.Location = new System.Drawing.Point(392, 29); - this.lblExportTime.Name = "lblExportTime"; - this.lblExportTime.Size = new System.Drawing.Size(28, 13); - this.lblExportTime.TabIndex = 11; - this.lblExportTime.Text = "0:00"; - this.lblExportTime.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // lblImportTime - // - this.lblImportTime.AutoSize = true; - this.lblImportTime.Location = new System.Drawing.Point(392, 30); - this.lblImportTime.Name = "lblImportTime"; - this.lblImportTime.Size = new System.Drawing.Size(28, 13); - this.lblImportTime.TabIndex = 17; - this.lblImportTime.Text = "0.00"; - this.lblImportTime.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // btnCloseExport - // - this.btnCloseExport.Enabled = false; - this.btnCloseExport.Location = new System.Drawing.Point(562, 32); - this.btnCloseExport.Name = "btnCloseExport"; - this.btnCloseExport.Size = new System.Drawing.Size(53, 23); - this.btnCloseExport.TabIndex = 12; - this.btnCloseExport.Text = "Close"; - this.btnCloseExport.UseVisualStyleBackColor = true; - this.btnCloseExport.Click += new System.EventHandler(this.btnCloseExport_Click); - // - // btnCloseImport - // - this.btnCloseImport.Enabled = false; - this.btnCloseImport.Location = new System.Drawing.Point(562, 33); - this.btnCloseImport.Name = "btnCloseImport"; - this.btnCloseImport.Size = new System.Drawing.Size(53, 23); - this.btnCloseImport.TabIndex = 18; - this.btnCloseImport.Text = "Close"; - this.btnCloseImport.UseVisualStyleBackColor = true; - this.btnCloseImport.Click += new System.EventHandler(this.btnCloseImport_Click); - // - // dlgExportImport - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(634, 454); - this.Controls.Add(this.pnlImport); - this.Controls.Add(this.pnlExport); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "dlgExportImport"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Export Import Dialog"; - this.Load += new System.EventHandler(this.dlgExportImport_Load); - this.pnlExport.ResumeLayout(false); - this.pnlExport.PerformLayout(); - this.pnlImport.ResumeLayout(false); - this.pnlImport.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Panel pnlExport; - private System.Windows.Forms.Panel pnlImport; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button btnExport; - private System.Windows.Forms.TextBox txtExport; - private System.Windows.Forms.Button btnImport; - private System.Windows.Forms.TextBox txtImport; - private System.Windows.Forms.Button btnDoExport; - private System.Windows.Forms.Button btnDoImport; - private System.Windows.Forms.ProgressBar pbExportStep; - private System.Windows.Forms.Label lblExportStep; - private System.Windows.Forms.ProgressBar pbExportSection; - private System.Windows.Forms.Label lblExportSection; - private System.Windows.Forms.ProgressBar pbExportProcedure; - private System.Windows.Forms.Label lblExportProcedure; - private System.Windows.Forms.ProgressBar pbImportStep; - private System.Windows.Forms.Label lblImportStep; - private System.Windows.Forms.ProgressBar pbImportSection; - private System.Windows.Forms.Label lblImportSection; - private System.Windows.Forms.ProgressBar pbImportProcedure; - private System.Windows.Forms.Label lblImportProcedure; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.SaveFileDialog sfd; - private System.Windows.Forms.Label lblExportStatus; - private System.Windows.Forms.Label lblImportStatus; - private System.Windows.Forms.Label lblExportTime; - private System.Windows.Forms.Label lblImportTime; - private System.Windows.Forms.Button btnCloseExport; - private System.Windows.Forms.Button btnCloseImport; - - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/dlgExportImport.resx b/PROMS/DataLoader/dlgExportImport.resx deleted file mode 100644 index c8010a4d..00000000 --- a/PROMS/DataLoader/dlgExportImport.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 87, 17 - - \ No newline at end of file diff --git a/PROMS/DataLoader/frmCntTkn.Designer.cs b/PROMS/DataLoader/frmCntTkn.Designer.cs deleted file mode 100644 index 50cae084..00000000 --- a/PROMS/DataLoader/frmCntTkn.Designer.cs +++ /dev/null @@ -1,74 +0,0 @@ -namespace DataLoader -{ - partial class frmCntTkn - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.button1 = new System.Windows.Forms.Button(); - this.listBox1 = new System.Windows.Forms.ListBox(); - this.SuspendLayout(); - // - // button1 - // - this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.button1.Location = new System.Drawing.Point(12, 8); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(132, 22); - this.button1.TabIndex = 0; - this.button1.Text = "Count Chars/Tokens"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // listBox1 - // - this.listBox1.Font = new System.Drawing.Font("Arial Unicode MS", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.listBox1.FormattingEnabled = true; - this.listBox1.ItemHeight = 15; - this.listBox1.Location = new System.Drawing.Point(12, 36); - this.listBox1.Name = "listBox1"; - this.listBox1.Size = new System.Drawing.Size(225, 409); - this.listBox1.TabIndex = 55; - // - // frmCntTkn - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(331, 486); - this.Controls.Add(this.listBox1); - this.Controls.Add(this.button1); - this.Name = "frmCntTkn"; - this.Text = "frmCntTkn"; - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button button1; - private System.Windows.Forms.ListBox listBox1; - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/frmCntTkn.cs b/PROMS/DataLoader/frmCntTkn.cs deleted file mode 100644 index 8afac0d8..00000000 --- a/PROMS/DataLoader/frmCntTkn.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Data.OleDb; -using System.Drawing; -using System.Text; -using System.IO; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; - -namespace DataLoader -{ - public partial class frmCntTkn : Form - { - private Dictionary dicCharCount; - - public frmCntTkn() - { - InitializeComponent(); - } - - private void CountChars(string txt) - { - foreach (char ch in txt) - { - //'A' is a newline - int ich = Convert.ToInt32(ch); - if (ich == 0xD) Console.WriteLine("D is {0}", txt); - if (ich == 0x17) Console.WriteLine("17 is {0}", txt); - if (!dicCharCount.ContainsKey(ch)) - dicCharCount[ch] = 1; - else - dicCharCount[ch] = dicCharCount[ch] + 1; - } - } - - //private void ProcessText() - //{ - // TextMInfoList txtMList = TextMInfoList.Get(); - // foreach (TextMInfo txtM in txtMList) - // { - // string thetext = txtM.TextMValue; - // CountChars(thetext); - // } - //} - private void button1_Click(object sender, EventArgs e) - { - // Create a dictionary that stores characters - // read in data from dbf - // list chars - dicCharCount = new Dictionary(); - //ProcessText(); - - // now display dictionary results.. - Console.WriteLine("Char\t\tHex\t\tDec\t\tCount"); - foreach (char ch in dicCharCount.Keys) - { - // if character is a 'token' and not a hardspace (A0), linefeed (A), RO token (15) - // Transition tokens (0x252c & -x2566) then show it. - if ((ch < 0x20 || ch > 0x7E) && ch!= 0xA0 && ch != 0xA && ch != 0x15 && ch != 0x252C && ch != 0x2566) - { - int ich = Convert.ToInt32(ch); - string cntstr = String.Format("{0}\t\t{1}\t\t{2}\t\t{3}", ch, ich.ToString("X4"), ich.ToString(), dicCharCount[ch]); - listBox1.Items.Add(cntstr); - Console.WriteLine(cntstr); - } - } - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/frmCntTkn.resx b/PROMS/DataLoader/frmCntTkn.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/DataLoader/frmCntTkn.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/DataLoader/frmErrors.Designer.cs b/PROMS/DataLoader/frmErrors.Designer.cs deleted file mode 100644 index c34448a6..00000000 --- a/PROMS/DataLoader/frmErrors.Designer.cs +++ /dev/null @@ -1,62 +0,0 @@ -namespace DataLoader -{ - partial class frmErrors - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tbErrors = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // tbErrors - // - this.tbErrors.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbErrors.Location = new System.Drawing.Point(0, 0); - this.tbErrors.Multiline = true; - this.tbErrors.Name = "tbErrors"; - this.tbErrors.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.tbErrors.Size = new System.Drawing.Size(548, 264); - this.tbErrors.TabIndex = 0; - // - // frmErrors - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(548, 264); - this.Controls.Add(this.tbErrors); - this.Name = "frmErrors"; - this.Text = "Data Loader Errors"; - this.Load += new System.EventHandler(this.frmErrors_Load); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox tbErrors; - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/frmErrors.cs b/PROMS/DataLoader/frmErrors.cs deleted file mode 100644 index 11b8ddc8..00000000 --- a/PROMS/DataLoader/frmErrors.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; - -namespace DataLoader -{ - public partial class frmErrors : Form - { - private Form _MyParent; - public frmErrors(Form myParent) - { - InitializeComponent(); - _MyParent = myParent; - _MyParent.Move += new EventHandler(_MyParent_Move); - } - void _MyParent_Move(object sender, EventArgs e) - { - AdjustLocation(); - } - private int _ErrorCount = 0; - public int ErrorCount - { - get { return _ErrorCount; } - set { _ErrorCount = value; } - } - private int _WarningCount = 0; - public int WarningCount - { - get { return _WarningCount; } - set { _WarningCount = value; } - } - private int _InfoCount = 0; - public int InfoCount - { - get { return _InfoCount; } - set { _InfoCount = value; } - } - string sep = ""; - public void Add(string err, MessageType messageType) - { - switch (messageType) - { - case MessageType.Information: - _InfoCount++; - break; - case MessageType.Warning: - _WarningCount++; - break; - case MessageType.Error: - _ErrorCount++; - break; - default: - break; - } - //tbErrors.SelectionStart = tbErrors.TextLength; - //tbErrors.SelectedText = sep + err; - tbErrors.AppendText(sep + err); - sep = "\r\n"; - Show(); - Application.DoEvents(); - } - public void Clear() - { - tbErrors.Text = ""; - sep = ""; - Hide(); - } - private void frmErrors_Load(object sender, EventArgs e) - { - AdjustLocation(); - } - private void AdjustLocation() - { - int maxRight = Screen.GetWorkingArea(this).Right; - if (Screen.AllScreens.Length > 1) - { - foreach (Screen sc in Screen.AllScreens) - if (sc.WorkingArea.Right > maxRight) maxRight = sc.WorkingArea.Right; - } - Top = _MyParent.Top; - Left = _MyParent.Right + Width > maxRight ? maxRight - Width : _MyParent.Right; - } - public void Save(string path) - { - StreamWriter fs = new StreamWriter(path, false); - fs.Write(tbErrors.Text); - fs.Close(); - } - } - public enum MessageType - { - Information, - Warning, - Error - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/frmErrors.resx b/PROMS/DataLoader/frmErrors.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/DataLoader/frmErrors.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/DataLoader/frmLoader.Designer.cs b/PROMS/DataLoader/frmLoader.Designer.cs deleted file mode 100644 index 312ecf3e..00000000 --- a/PROMS/DataLoader/frmLoader.Designer.cs +++ /dev/null @@ -1,615 +0,0 @@ -namespace DataLoader -{ - partial class frmLoader - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - Volian.MSWord.WordDoc.CloseApp(); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.sc = new System.Windows.Forms.SplitContainer(); - this.lblCurSetFolder = new System.Windows.Forms.Label(); - this.lblProcessing = new System.Windows.Forms.Label(); - this.lblTime = new System.Windows.Forms.Label(); - this.pbStep = new System.Windows.Forms.ProgressBar(); - this.pbSect = new System.Windows.Forms.ProgressBar(); - this.pbProc = new System.Windows.Forms.ProgressBar(); - this.lblStep = new System.Windows.Forms.Label(); - this.lblSection = new System.Windows.Forms.Label(); - this.lblProc = new System.Windows.Forms.Label(); - this.tv = new System.Windows.Forms.TreeView(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); - this.tsslError = new System.Windows.Forms.ToolStripStatusLabel(); - this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.loadTreeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.processToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.completeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.formatOnlyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); - this.convertDBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fixTransitionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.convertToChangeManagerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.convertToApprovalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.load16BitApprovalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fixesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fixROValuesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.createEmptyPROMSDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.oldToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.convertSecurityToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); - this.convertTopFoldersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.loadTreeFromCSLAToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.loadVETreeFromCSLAToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.groupSecurityToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.countTokensToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); - this.convertDbfSelectedInTreeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fixAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.approvalDatabasesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.updateFormatsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fixROsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fixROsToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.exportDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.importDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exportProcedureOnlyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.importProcedureOnlyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.sc.Panel1.SuspendLayout(); - this.sc.Panel2.SuspendLayout(); - this.sc.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // sc - // - this.sc.Dock = System.Windows.Forms.DockStyle.Fill; - this.sc.Location = new System.Drawing.Point(0, 24); - this.sc.Margin = new System.Windows.Forms.Padding(2); - this.sc.Name = "sc"; - this.sc.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // sc.Panel1 - // - this.sc.Panel1.Controls.Add(this.lblCurSetFolder); - this.sc.Panel1.Controls.Add(this.lblProcessing); - this.sc.Panel1.Controls.Add(this.lblTime); - this.sc.Panel1.Controls.Add(this.pbStep); - this.sc.Panel1.Controls.Add(this.pbSect); - this.sc.Panel1.Controls.Add(this.pbProc); - this.sc.Panel1.Controls.Add(this.lblStep); - this.sc.Panel1.Controls.Add(this.lblSection); - this.sc.Panel1.Controls.Add(this.lblProc); - // - // sc.Panel2 - // - this.sc.Panel2.BackColor = System.Drawing.SystemColors.Control; - this.sc.Panel2.Controls.Add(this.tv); - this.sc.Size = new System.Drawing.Size(664, 370); - this.sc.SplitterDistance = 134; - this.sc.SplitterWidth = 3; - this.sc.TabIndex = 46; - // - // lblCurSetFolder - // - this.lblCurSetFolder.AutoSize = true; - this.lblCurSetFolder.ForeColor = System.Drawing.Color.Blue; - this.lblCurSetFolder.Location = new System.Drawing.Point(177, 97); - this.lblCurSetFolder.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblCurSetFolder.Name = "lblCurSetFolder"; - this.lblCurSetFolder.Size = new System.Drawing.Size(16, 13); - this.lblCurSetFolder.TabIndex = 75; - this.lblCurSetFolder.Text = "..."; - this.lblCurSetFolder.Visible = false; - // - // lblProcessing - // - this.lblProcessing.AutoSize = true; - this.lblProcessing.Location = new System.Drawing.Point(7, 97); - this.lblProcessing.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblProcessing.Name = "lblProcessing"; - this.lblProcessing.Size = new System.Drawing.Size(165, 13); - this.lblProcessing.TabIndex = 74; - this.lblProcessing.Text = "Processing Procedure Set Folder:"; - this.lblProcessing.Visible = false; - // - // lblTime - // - this.lblTime.BackColor = System.Drawing.SystemColors.ButtonShadow; - this.lblTime.Location = new System.Drawing.Point(7, 67); - this.lblTime.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblTime.Name = "lblTime"; - this.lblTime.Size = new System.Drawing.Size(106, 16); - this.lblTime.TabIndex = 58; - // - // pbStep - // - this.pbStep.Location = new System.Drawing.Point(115, 41); - this.pbStep.Margin = new System.Windows.Forms.Padding(2); - this.pbStep.Name = "pbStep"; - this.pbStep.Size = new System.Drawing.Size(375, 12); - this.pbStep.TabIndex = 57; - // - // pbSect - // - this.pbSect.Location = new System.Drawing.Point(115, 24); - this.pbSect.Margin = new System.Windows.Forms.Padding(2); - this.pbSect.Name = "pbSect"; - this.pbSect.Size = new System.Drawing.Size(375, 12); - this.pbSect.TabIndex = 56; - // - // pbProc - // - this.pbProc.Location = new System.Drawing.Point(115, 9); - this.pbProc.Margin = new System.Windows.Forms.Padding(2); - this.pbProc.Name = "pbProc"; - this.pbProc.Size = new System.Drawing.Size(375, 12); - this.pbProc.TabIndex = 55; - // - // lblStep - // - this.lblStep.BackColor = System.Drawing.SystemColors.ButtonShadow; - this.lblStep.Location = new System.Drawing.Point(7, 47); - this.lblStep.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblStep.Name = "lblStep"; - this.lblStep.Size = new System.Drawing.Size(106, 16); - this.lblStep.TabIndex = 49; - // - // lblSection - // - this.lblSection.BackColor = System.Drawing.SystemColors.ButtonShadow; - this.lblSection.Location = new System.Drawing.Point(7, 28); - this.lblSection.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblSection.Name = "lblSection"; - this.lblSection.Size = new System.Drawing.Size(106, 15); - this.lblSection.TabIndex = 48; - // - // lblProc - // - this.lblProc.BackColor = System.Drawing.SystemColors.ButtonShadow; - this.lblProc.Location = new System.Drawing.Point(7, 9); - this.lblProc.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblProc.Name = "lblProc"; - this.lblProc.Size = new System.Drawing.Size(106, 15); - this.lblProc.TabIndex = 47; - // - // tv - // - this.tv.CheckBoxes = true; - this.tv.Dock = System.Windows.Forms.DockStyle.Fill; - this.tv.Location = new System.Drawing.Point(0, 0); - this.tv.Margin = new System.Windows.Forms.Padding(2); - this.tv.Name = "tv"; - this.tv.Size = new System.Drawing.Size(664, 233); - this.tv.TabIndex = 24; - this.tv.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.tv_BeforeExpand); - this.tv.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tv_AfterSelect); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripStatusLabel1, - this.tsslError}); - this.statusStrip1.Location = new System.Drawing.Point(0, 349); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(664, 45); - this.statusStrip1.TabIndex = 47; - this.statusStrip1.Text = "statusStrip1"; - // - // toolStripStatusLabel1 - // - this.toolStripStatusLabel1.AutoSize = false; - this.toolStripStatusLabel1.ImageAlign = System.Drawing.ContentAlignment.TopLeft; - this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; - this.toolStripStatusLabel1.Size = new System.Drawing.Size(500, 40); - this.toolStripStatusLabel1.Text = "Status Information"; - this.toolStripStatusLabel1.TextAlign = System.Drawing.ContentAlignment.TopLeft; - // - // tsslError - // - this.tsslError.AutoSize = false; - this.tsslError.Name = "tsslError"; - this.tsslError.Size = new System.Drawing.Size(150, 40); - this.tsslError.Text = "No Errors"; - this.tsslError.TextAlign = System.Drawing.ContentAlignment.TopLeft; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.processToolStripMenuItem, - this.settingsToolStripMenuItem, - this.oldToolStripMenuItem, - this.fixAllToolStripMenuItem, - this.fixROsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(664, 24); - this.menuStrip1.TabIndex = 48; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem, - this.loadTreeToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(126, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // loadTreeToolStripMenuItem - // - this.loadTreeToolStripMenuItem.Name = "loadTreeToolStripMenuItem"; - this.loadTreeToolStripMenuItem.Size = new System.Drawing.Size(126, 22); - this.loadTreeToolStripMenuItem.Text = "Load Tree"; - this.loadTreeToolStripMenuItem.Click += new System.EventHandler(this.loadTreeToolStripMenuItem_Click); - // - // processToolStripMenuItem - // - this.processToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.completeToolStripMenuItem, - this.toolStripMenuItem1, - this.formatOnlyToolStripMenuItem, - this.toolStripMenuItem2, - this.convertDBToolStripMenuItem, - this.fixTransitionsToolStripMenuItem, - this.convertToChangeManagerToolStripMenuItem, - this.convertToApprovalToolStripMenuItem, - this.load16BitApprovalToolStripMenuItem, - this.fixesToolStripMenuItem, - this.fixROValuesToolStripMenuItem, - this.createEmptyPROMSDatabaseToolStripMenuItem}); - this.processToolStripMenuItem.Name = "processToolStripMenuItem"; - this.processToolStripMenuItem.Size = new System.Drawing.Size(59, 20); - this.processToolStripMenuItem.Text = "&Process"; - // - // completeToolStripMenuItem - // - this.completeToolStripMenuItem.Name = "completeToolStripMenuItem"; - this.completeToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.completeToolStripMenuItem.Text = "Complete"; - this.completeToolStripMenuItem.Click += new System.EventHandler(this.completeToolStripMenuItem_Click); - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(236, 6); - // - // formatOnlyToolStripMenuItem - // - this.formatOnlyToolStripMenuItem.Name = "formatOnlyToolStripMenuItem"; - this.formatOnlyToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.formatOnlyToolStripMenuItem.Text = "Format Only"; - this.formatOnlyToolStripMenuItem.Click += new System.EventHandler(this.formatOnlyToolStripMenuItem_Click); - // - // toolStripMenuItem2 - // - this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(236, 6); - // - // convertDBToolStripMenuItem - // - this.convertDBToolStripMenuItem.Name = "convertDBToolStripMenuItem"; - this.convertDBToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.convertDBToolStripMenuItem.Text = "Convert DB"; - this.convertDBToolStripMenuItem.Click += new System.EventHandler(this.convertDBToolStripMenuItem_Click); - // - // fixTransitionsToolStripMenuItem - // - this.fixTransitionsToolStripMenuItem.Name = "fixTransitionsToolStripMenuItem"; - this.fixTransitionsToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.fixTransitionsToolStripMenuItem.Text = "Fix Transitions"; - this.fixTransitionsToolStripMenuItem.Click += new System.EventHandler(this.fixTransitionsToolStripMenuItem_Click); - // - // convertToChangeManagerToolStripMenuItem - // - this.convertToChangeManagerToolStripMenuItem.Name = "convertToChangeManagerToolStripMenuItem"; - this.convertToChangeManagerToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.convertToChangeManagerToolStripMenuItem.Text = "Convert to Change Manager"; - this.convertToChangeManagerToolStripMenuItem.Click += new System.EventHandler(this.convertToChangeManagerToolStripMenuItem_Click); - // - // convertToApprovalToolStripMenuItem - // - this.convertToApprovalToolStripMenuItem.Name = "convertToApprovalToolStripMenuItem"; - this.convertToApprovalToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.convertToApprovalToolStripMenuItem.Text = "Convert to Approval"; - this.convertToApprovalToolStripMenuItem.Click += new System.EventHandler(this.convertToApprovalToolStripMenuItem_Click); - // - // load16BitApprovalToolStripMenuItem - // - this.load16BitApprovalToolStripMenuItem.Name = "load16BitApprovalToolStripMenuItem"; - this.load16BitApprovalToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.load16BitApprovalToolStripMenuItem.Text = "Load 16-Bit Approval"; - this.load16BitApprovalToolStripMenuItem.Click += new System.EventHandler(this.load16BitApprovalToolStripMenuItem_Click); - // - // fixesToolStripMenuItem - // - this.fixesToolStripMenuItem.Name = "fixesToolStripMenuItem"; - this.fixesToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.fixesToolStripMenuItem.Text = "Fixes"; - this.fixesToolStripMenuItem.Click += new System.EventHandler(this.fixesToolStripMenuItem_Click); - // - // fixROValuesToolStripMenuItem - // - this.fixROValuesToolStripMenuItem.Name = "fixROValuesToolStripMenuItem"; - this.fixROValuesToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.fixROValuesToolStripMenuItem.Text = "Fix RO Values"; - this.fixROValuesToolStripMenuItem.Click += new System.EventHandler(this.fixROValuesToolStripMenuItem_Click); - // - // createEmptyPROMSDatabaseToolStripMenuItem - // - this.createEmptyPROMSDatabaseToolStripMenuItem.Name = "createEmptyPROMSDatabaseToolStripMenuItem"; - this.createEmptyPROMSDatabaseToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.createEmptyPROMSDatabaseToolStripMenuItem.Text = "Create Empty PROMS Database"; - this.createEmptyPROMSDatabaseToolStripMenuItem.Click += new System.EventHandler(this.createEmptyPROMSDatabaseToolStripMenuItem_Click); - // - // settingsToolStripMenuItem - // - this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; - this.settingsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); - this.settingsToolStripMenuItem.Text = "&Settings"; - this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click); - // - // oldToolStripMenuItem - // - this.oldToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.convertSecurityToolStripMenuItem, - this.toolStripMenuItem4, - this.convertTopFoldersToolStripMenuItem, - this.loadTreeFromCSLAToolStripMenuItem, - this.loadVETreeFromCSLAToolStripMenuItem, - this.groupSecurityToolStripMenuItem, - this.countTokensToolStripMenuItem, - this.toolStripMenuItem3, - this.convertDbfSelectedInTreeToolStripMenuItem}); - this.oldToolStripMenuItem.Name = "oldToolStripMenuItem"; - this.oldToolStripMenuItem.Size = new System.Drawing.Size(38, 20); - this.oldToolStripMenuItem.Text = "Old"; - // - // convertSecurityToolStripMenuItem - // - this.convertSecurityToolStripMenuItem.Name = "convertSecurityToolStripMenuItem"; - this.convertSecurityToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.convertSecurityToolStripMenuItem.Text = "Convert Security"; - this.convertSecurityToolStripMenuItem.Click += new System.EventHandler(this.convertSecurityToolStripMenuItem_Click); - // - // toolStripMenuItem4 - // - this.toolStripMenuItem4.Name = "toolStripMenuItem4"; - this.toolStripMenuItem4.Size = new System.Drawing.Size(221, 6); - // - // convertTopFoldersToolStripMenuItem - // - this.convertTopFoldersToolStripMenuItem.Name = "convertTopFoldersToolStripMenuItem"; - this.convertTopFoldersToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.convertTopFoldersToolStripMenuItem.Text = "Convert Top Folders"; - this.convertTopFoldersToolStripMenuItem.Click += new System.EventHandler(this.convertTopFoldersToolStripMenuItem_Click); - // - // loadTreeFromCSLAToolStripMenuItem - // - this.loadTreeFromCSLAToolStripMenuItem.Name = "loadTreeFromCSLAToolStripMenuItem"; - this.loadTreeFromCSLAToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.loadTreeFromCSLAToolStripMenuItem.Text = "Load Tree From CSLA"; - this.loadTreeFromCSLAToolStripMenuItem.Click += new System.EventHandler(this.loadTreeFromCSLAToolStripMenuItem_Click); - // - // loadVETreeFromCSLAToolStripMenuItem - // - this.loadVETreeFromCSLAToolStripMenuItem.Name = "loadVETreeFromCSLAToolStripMenuItem"; - this.loadVETreeFromCSLAToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.loadVETreeFromCSLAToolStripMenuItem.Text = "Load VETree From CSLA"; - this.loadVETreeFromCSLAToolStripMenuItem.Click += new System.EventHandler(this.loadVETreeFromCSLAToolStripMenuItem_Click); - // - // groupSecurityToolStripMenuItem - // - this.groupSecurityToolStripMenuItem.Name = "groupSecurityToolStripMenuItem"; - this.groupSecurityToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.groupSecurityToolStripMenuItem.Text = "Group/Security"; - this.groupSecurityToolStripMenuItem.Click += new System.EventHandler(this.groupSecurityToolStripMenuItem_Click); - // - // countTokensToolStripMenuItem - // - this.countTokensToolStripMenuItem.Name = "countTokensToolStripMenuItem"; - this.countTokensToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.countTokensToolStripMenuItem.Text = "Count Tokens"; - this.countTokensToolStripMenuItem.Click += new System.EventHandler(this.countTokensToolStripMenuItem_Click); - // - // toolStripMenuItem3 - // - this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(221, 6); - // - // convertDbfSelectedInTreeToolStripMenuItem - // - this.convertDbfSelectedInTreeToolStripMenuItem.Name = "convertDbfSelectedInTreeToolStripMenuItem"; - this.convertDbfSelectedInTreeToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.convertDbfSelectedInTreeToolStripMenuItem.Text = "Convert Dbf Selected In Tree"; - this.convertDbfSelectedInTreeToolStripMenuItem.Click += new System.EventHandler(this.convertDbfSelectedInTreeToolStripMenuItem_Click); - // - // fixAllToolStripMenuItem - // - this.fixAllToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.approvalDatabasesToolStripMenuItem, - this.updateFormatsToolStripMenuItem}); - this.fixAllToolStripMenuItem.Name = "fixAllToolStripMenuItem"; - this.fixAllToolStripMenuItem.Size = new System.Drawing.Size(50, 20); - this.fixAllToolStripMenuItem.Text = "Fix All"; - // - // approvalDatabasesToolStripMenuItem - // - this.approvalDatabasesToolStripMenuItem.Name = "approvalDatabasesToolStripMenuItem"; - this.approvalDatabasesToolStripMenuItem.Size = new System.Drawing.Size(178, 22); - this.approvalDatabasesToolStripMenuItem.Text = "Approval Databases"; - this.approvalDatabasesToolStripMenuItem.Click += new System.EventHandler(this.approvalDatabasesToolStripMenuItem_Click); - // - // updateFormatsToolStripMenuItem - // - this.updateFormatsToolStripMenuItem.Name = "updateFormatsToolStripMenuItem"; - this.updateFormatsToolStripMenuItem.Size = new System.Drawing.Size(178, 22); - this.updateFormatsToolStripMenuItem.Text = "Update Formats"; - this.updateFormatsToolStripMenuItem.Click += new System.EventHandler(this.updateFormatsToolStripMenuItem_Click); - // - // fixROsToolStripMenuItem - // - this.fixROsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fixROsToolStripMenuItem1, - this.exportDataToolStripMenuItem, - this.importDataToolStripMenuItem, - this.exportProcedureOnlyToolStripMenuItem, - this.importProcedureOnlyToolStripMenuItem}); - this.fixROsToolStripMenuItem.Name = "fixROsToolStripMenuItem"; - this.fixROsToolStripMenuItem.Size = new System.Drawing.Size(67, 20); - this.fixROsToolStripMenuItem.Text = "Selection"; - // - // fixROsToolStripMenuItem1 - // - this.fixROsToolStripMenuItem1.Name = "fixROsToolStripMenuItem1"; - this.fixROsToolStripMenuItem1.Size = new System.Drawing.Size(195, 22); - this.fixROsToolStripMenuItem1.Text = "Fix ROs"; - this.fixROsToolStripMenuItem1.Click += new System.EventHandler(this.fixROsToolStripMenuItem1_Click); - // - // exportDataToolStripMenuItem - // - this.exportDataToolStripMenuItem.Name = "exportDataToolStripMenuItem"; - this.exportDataToolStripMenuItem.Size = new System.Drawing.Size(195, 22); - this.exportDataToolStripMenuItem.Text = "Export Data"; - this.exportDataToolStripMenuItem.Click += new System.EventHandler(this.exportDataToolStripMenuItem_Click); - // - // importDataToolStripMenuItem - // - this.importDataToolStripMenuItem.Name = "importDataToolStripMenuItem"; - this.importDataToolStripMenuItem.Size = new System.Drawing.Size(195, 22); - this.importDataToolStripMenuItem.Text = "Import Data"; - this.importDataToolStripMenuItem.Click += new System.EventHandler(this.importDataToolStripMenuItem_Click); - // - // exportProcedureOnlyToolStripMenuItem - // - this.exportProcedureOnlyToolStripMenuItem.Name = "exportProcedureOnlyToolStripMenuItem"; - this.exportProcedureOnlyToolStripMenuItem.Size = new System.Drawing.Size(195, 22); - this.exportProcedureOnlyToolStripMenuItem.Text = "Export Procedure Only"; - this.exportProcedureOnlyToolStripMenuItem.Click += new System.EventHandler(this.exportProcedureOnlyToolStripMenuItem_Click); - // - // importProcedureOnlyToolStripMenuItem - // - this.importProcedureOnlyToolStripMenuItem.Name = "importProcedureOnlyToolStripMenuItem"; - this.importProcedureOnlyToolStripMenuItem.Size = new System.Drawing.Size(195, 22); - this.importProcedureOnlyToolStripMenuItem.Text = "Import Procedure Only"; - this.importProcedureOnlyToolStripMenuItem.Click += new System.EventHandler(this.importProcedureOnlyToolStripMenuItem_Click); - // - // frmLoader - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(664, 394); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.sc); - this.Controls.Add(this.menuStrip1); - this.Margin = new System.Windows.Forms.Padding(2); - this.Name = "frmLoader"; - this.Text = "PROMS-2010 Data Loader"; - this.Load += new System.EventHandler(this.frmLoader_Load); - this.sc.Panel1.ResumeLayout(false); - this.sc.Panel1.PerformLayout(); - this.sc.Panel2.ResumeLayout(false); - this.sc.ResumeLayout(false); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.SplitContainer sc; - private System.Windows.Forms.Label lblTime; - private System.Windows.Forms.ProgressBar pbStep; - private System.Windows.Forms.ProgressBar pbSect; - private System.Windows.Forms.ProgressBar pbProc; - private System.Windows.Forms.Label lblStep; - private System.Windows.Forms.Label lblSection; - private System.Windows.Forms.Label lblProc; - private System.Windows.Forms.TreeView tv; - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1; - private System.Windows.Forms.ToolStripStatusLabel tsslError; - private System.Windows.Forms.Label lblCurSetFolder; - private System.Windows.Forms.Label lblProcessing; - private System.Windows.Forms.ToolTip toolTip1; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem processToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem completeToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem formatOnlyToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; - private System.Windows.Forms.ToolStripMenuItem convertDBToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem fixTransitionsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem convertToChangeManagerToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem convertToApprovalToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem oldToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem convertSecurityToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem convertTopFoldersToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem loadTreeFromCSLAToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem loadVETreeFromCSLAToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem groupSecurityToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem countTokensToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem convertDbfSelectedInTreeToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem4; - private System.Windows.Forms.ToolStripMenuItem load16BitApprovalToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem fixesToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem fixAllToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem approvalDatabasesToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem updateFormatsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem fixROValuesToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem createEmptyPROMSDatabaseToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem fixROsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem fixROsToolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem loadTreeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exportDataToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem importDataToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exportProcedureOnlyToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem importProcedureOnlyToolStripMenuItem; - } -} diff --git a/PROMS/DataLoader/frmLoader.Designer.cs.bak b/PROMS/DataLoader/frmLoader.Designer.cs.bak deleted file mode 100644 index c76f7ec5..00000000 --- a/PROMS/DataLoader/frmLoader.Designer.cs.bak +++ /dev/null @@ -1,545 +0,0 @@ -namespace DataLoader -{ - partial class frmLoader - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - Volian.MSWord.WordDoc.CloseApp(); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.sc = new System.Windows.Forms.SplitContainer(); - this.lblCurSetFolder = new System.Windows.Forms.Label(); - this.lblProcessing = new System.Windows.Forms.Label(); - this.lblTime = new System.Windows.Forms.Label(); - this.pbStep = new System.Windows.Forms.ProgressBar(); - this.pbSect = new System.Windows.Forms.ProgressBar(); - this.pbProc = new System.Windows.Forms.ProgressBar(); - this.lblStep = new System.Windows.Forms.Label(); - this.lblSection = new System.Windows.Forms.Label(); - this.lblProc = new System.Windows.Forms.Label(); - this.tv = new System.Windows.Forms.TreeView(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.toolStripStatusLabel1 = new System.Windows.Forms.ToolStripStatusLabel(); - this.tsslError = new System.Windows.Forms.ToolStripStatusLabel(); - this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.processToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.completeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.formatOnlyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem2 = new System.Windows.Forms.ToolStripSeparator(); - this.convertDBToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fixTransitionsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.convertToChangeManagerToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.convertToApprovalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.load16BitApprovalToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fixesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.oldToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.convertSecurityToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem4 = new System.Windows.Forms.ToolStripSeparator(); - this.convertTopFoldersToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.loadTreeFromCSLAToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.loadVETreeFromCSLAToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.groupSecurityToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.countTokensToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem3 = new System.Windows.Forms.ToolStripSeparator(); - this.convertDbfSelectedInTreeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fixAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.approvalDatabasesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.updateFormatsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.fixROValuesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.createEmptyPROMSDatabaseToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.sc.Panel1.SuspendLayout(); - this.sc.Panel2.SuspendLayout(); - this.sc.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // sc - // - this.sc.Dock = System.Windows.Forms.DockStyle.Fill; - this.sc.Location = new System.Drawing.Point(0, 24); - this.sc.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.sc.Name = "sc"; - this.sc.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // sc.Panel1 - // - this.sc.Panel1.Controls.Add(this.lblCurSetFolder); - this.sc.Panel1.Controls.Add(this.lblProcessing); - this.sc.Panel1.Controls.Add(this.lblTime); - this.sc.Panel1.Controls.Add(this.pbStep); - this.sc.Panel1.Controls.Add(this.pbSect); - this.sc.Panel1.Controls.Add(this.pbProc); - this.sc.Panel1.Controls.Add(this.lblStep); - this.sc.Panel1.Controls.Add(this.lblSection); - this.sc.Panel1.Controls.Add(this.lblProc); - // - // sc.Panel2 - // - this.sc.Panel2.BackColor = System.Drawing.SystemColors.Control; - this.sc.Panel2.Controls.Add(this.tv); - this.sc.Size = new System.Drawing.Size(664, 370); - this.sc.SplitterDistance = 134; - this.sc.SplitterWidth = 3; - this.sc.TabIndex = 46; - // - // lblCurSetFolder - // - this.lblCurSetFolder.AutoSize = true; - this.lblCurSetFolder.ForeColor = System.Drawing.Color.Blue; - this.lblCurSetFolder.Location = new System.Drawing.Point(177, 97); - this.lblCurSetFolder.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblCurSetFolder.Name = "lblCurSetFolder"; - this.lblCurSetFolder.Size = new System.Drawing.Size(16, 13); - this.lblCurSetFolder.TabIndex = 75; - this.lblCurSetFolder.Text = "..."; - this.lblCurSetFolder.Visible = false; - // - // lblProcessing - // - this.lblProcessing.AutoSize = true; - this.lblProcessing.Location = new System.Drawing.Point(7, 97); - this.lblProcessing.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblProcessing.Name = "lblProcessing"; - this.lblProcessing.Size = new System.Drawing.Size(165, 13); - this.lblProcessing.TabIndex = 74; - this.lblProcessing.Text = "Processing Procedure Set Folder:"; - this.lblProcessing.Visible = false; - // - // lblTime - // - this.lblTime.BackColor = System.Drawing.SystemColors.ButtonShadow; - this.lblTime.Location = new System.Drawing.Point(7, 67); - this.lblTime.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblTime.Name = "lblTime"; - this.lblTime.Size = new System.Drawing.Size(106, 16); - this.lblTime.TabIndex = 58; - // - // pbStep - // - this.pbStep.Location = new System.Drawing.Point(115, 41); - this.pbStep.Margin = new System.Windows.Forms.Padding(2); - this.pbStep.Name = "pbStep"; - this.pbStep.Size = new System.Drawing.Size(375, 12); - this.pbStep.TabIndex = 57; - // - // pbSect - // - this.pbSect.Location = new System.Drawing.Point(115, 24); - this.pbSect.Margin = new System.Windows.Forms.Padding(2); - this.pbSect.Name = "pbSect"; - this.pbSect.Size = new System.Drawing.Size(375, 12); - this.pbSect.TabIndex = 56; - // - // pbProc - // - this.pbProc.Location = new System.Drawing.Point(115, 9); - this.pbProc.Margin = new System.Windows.Forms.Padding(2); - this.pbProc.Name = "pbProc"; - this.pbProc.Size = new System.Drawing.Size(375, 12); - this.pbProc.TabIndex = 55; - // - // lblStep - // - this.lblStep.BackColor = System.Drawing.SystemColors.ButtonShadow; - this.lblStep.Location = new System.Drawing.Point(7, 47); - this.lblStep.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblStep.Name = "lblStep"; - this.lblStep.Size = new System.Drawing.Size(106, 16); - this.lblStep.TabIndex = 49; - // - // lblSection - // - this.lblSection.BackColor = System.Drawing.SystemColors.ButtonShadow; - this.lblSection.Location = new System.Drawing.Point(7, 28); - this.lblSection.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblSection.Name = "lblSection"; - this.lblSection.Size = new System.Drawing.Size(106, 15); - this.lblSection.TabIndex = 48; - // - // lblProc - // - this.lblProc.BackColor = System.Drawing.SystemColors.ButtonShadow; - this.lblProc.Location = new System.Drawing.Point(7, 9); - this.lblProc.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblProc.Name = "lblProc"; - this.lblProc.Size = new System.Drawing.Size(106, 15); - this.lblProc.TabIndex = 47; - // - // tv - // - this.tv.CheckBoxes = true; - this.tv.Dock = System.Windows.Forms.DockStyle.Fill; - this.tv.Location = new System.Drawing.Point(0, 0); - this.tv.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.tv.Name = "tv"; - this.tv.Size = new System.Drawing.Size(664, 233); - this.tv.TabIndex = 24; - this.tv.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.tv_BeforeExpand); - this.tv.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.tv_AfterSelect); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.toolStripStatusLabel1, - this.tsslError}); - this.statusStrip1.Location = new System.Drawing.Point(0, 349); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(664, 45); - this.statusStrip1.TabIndex = 47; - this.statusStrip1.Text = "statusStrip1"; - // - // toolStripStatusLabel1 - // - this.toolStripStatusLabel1.AutoSize = false; - this.toolStripStatusLabel1.ImageAlign = System.Drawing.ContentAlignment.TopLeft; - this.toolStripStatusLabel1.Name = "toolStripStatusLabel1"; - this.toolStripStatusLabel1.Size = new System.Drawing.Size(500, 40); - this.toolStripStatusLabel1.Text = "Status Information"; - this.toolStripStatusLabel1.TextAlign = System.Drawing.ContentAlignment.TopLeft; - // - // tsslError - // - this.tsslError.AutoSize = false; - this.tsslError.Name = "tsslError"; - this.tsslError.Size = new System.Drawing.Size(150, 40); - this.tsslError.Text = "No Errors"; - this.tsslError.TextAlign = System.Drawing.ContentAlignment.TopLeft; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.processToolStripMenuItem, - this.settingsToolStripMenuItem, - this.oldToolStripMenuItem, - this.fixAllToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(664, 24); - this.menuStrip1.TabIndex = 48; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // processToolStripMenuItem - // - this.processToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.completeToolStripMenuItem, - this.toolStripMenuItem1, - this.formatOnlyToolStripMenuItem, - this.toolStripMenuItem2, - this.convertDBToolStripMenuItem, - this.fixTransitionsToolStripMenuItem, - this.convertToChangeManagerToolStripMenuItem, - this.convertToApprovalToolStripMenuItem, - this.load16BitApprovalToolStripMenuItem, - this.fixesToolStripMenuItem, - this.fixROValuesToolStripMenuItem}); - this.createEmptyPROMSDatabaseToolStripMenuItem}); - this.processToolStripMenuItem.Name = "processToolStripMenuItem"; - this.processToolStripMenuItem.Size = new System.Drawing.Size(59, 20); - this.processToolStripMenuItem.Text = "&Process"; - // - // completeToolStripMenuItem - // - this.completeToolStripMenuItem.Name = "completeToolStripMenuItem"; - this.completeToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.completeToolStripMenuItem.Text = "Complete"; - this.completeToolStripMenuItem.Click += new System.EventHandler(this.completeToolStripMenuItem_Click); - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(236, 6); - // - // formatOnlyToolStripMenuItem - // - this.formatOnlyToolStripMenuItem.Name = "formatOnlyToolStripMenuItem"; - this.formatOnlyToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.formatOnlyToolStripMenuItem.Text = "Format Only"; - this.formatOnlyToolStripMenuItem.Click += new System.EventHandler(this.formatOnlyToolStripMenuItem_Click); - // - // toolStripMenuItem2 - // - this.toolStripMenuItem2.Name = "toolStripMenuItem2"; - this.toolStripMenuItem2.Size = new System.Drawing.Size(236, 6); - // - // convertDBToolStripMenuItem - // - this.convertDBToolStripMenuItem.Name = "convertDBToolStripMenuItem"; - this.convertDBToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.convertDBToolStripMenuItem.Text = "Convert DB"; - this.convertDBToolStripMenuItem.Click += new System.EventHandler(this.convertDBToolStripMenuItem_Click); - // - // fixTransitionsToolStripMenuItem - // - this.fixTransitionsToolStripMenuItem.Name = "fixTransitionsToolStripMenuItem"; - this.fixTransitionsToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.fixTransitionsToolStripMenuItem.Text = "Fix Transitions"; - this.fixTransitionsToolStripMenuItem.Click += new System.EventHandler(this.fixTransitionsToolStripMenuItem_Click); - // - // convertToChangeManagerToolStripMenuItem - // - this.convertToChangeManagerToolStripMenuItem.Name = "convertToChangeManagerToolStripMenuItem"; - this.convertToChangeManagerToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.convertToChangeManagerToolStripMenuItem.Text = "Convert to Change Manager"; - this.convertToChangeManagerToolStripMenuItem.Click += new System.EventHandler(this.convertToChangeManagerToolStripMenuItem_Click); - // - // convertToApprovalToolStripMenuItem - // - this.convertToApprovalToolStripMenuItem.Name = "convertToApprovalToolStripMenuItem"; - this.convertToApprovalToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.convertToApprovalToolStripMenuItem.Text = "Convert to Approval"; - this.convertToApprovalToolStripMenuItem.Click += new System.EventHandler(this.convertToApprovalToolStripMenuItem_Click); - // - // load16BitApprovalToolStripMenuItem - // - this.load16BitApprovalToolStripMenuItem.Name = "load16BitApprovalToolStripMenuItem"; - this.load16BitApprovalToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.load16BitApprovalToolStripMenuItem.Text = "Load 16-Bit Approval"; - this.load16BitApprovalToolStripMenuItem.Click += new System.EventHandler(this.load16BitApprovalToolStripMenuItem_Click); - // - // fixesToolStripMenuItem - // - this.fixesToolStripMenuItem.Name = "fixesToolStripMenuItem"; - this.fixesToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.fixesToolStripMenuItem.Text = "Fixes"; - this.fixesToolStripMenuItem.Click += new System.EventHandler(this.fixesToolStripMenuItem_Click); - // - // settingsToolStripMenuItem - // - this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem"; - this.settingsToolStripMenuItem.Size = new System.Drawing.Size(61, 20); - this.settingsToolStripMenuItem.Text = "&Settings"; - this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click); - // - // oldToolStripMenuItem - // - this.oldToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.convertSecurityToolStripMenuItem, - this.toolStripMenuItem4, - this.convertTopFoldersToolStripMenuItem, - this.loadTreeFromCSLAToolStripMenuItem, - this.loadVETreeFromCSLAToolStripMenuItem, - this.groupSecurityToolStripMenuItem, - this.countTokensToolStripMenuItem, - this.toolStripMenuItem3, - this.convertDbfSelectedInTreeToolStripMenuItem}); - this.oldToolStripMenuItem.Name = "oldToolStripMenuItem"; - this.oldToolStripMenuItem.Size = new System.Drawing.Size(38, 20); - this.oldToolStripMenuItem.Text = "Old"; - // - // convertSecurityToolStripMenuItem - // - this.convertSecurityToolStripMenuItem.Name = "convertSecurityToolStripMenuItem"; - this.convertSecurityToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.convertSecurityToolStripMenuItem.Text = "Convert Security"; - this.convertSecurityToolStripMenuItem.Click += new System.EventHandler(this.convertSecurityToolStripMenuItem_Click); - // - // toolStripMenuItem4 - // - this.toolStripMenuItem4.Name = "toolStripMenuItem4"; - this.toolStripMenuItem4.Size = new System.Drawing.Size(221, 6); - // - // convertTopFoldersToolStripMenuItem - // - this.convertTopFoldersToolStripMenuItem.Name = "convertTopFoldersToolStripMenuItem"; - this.convertTopFoldersToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.convertTopFoldersToolStripMenuItem.Text = "Convert Top Folders"; - this.convertTopFoldersToolStripMenuItem.Click += new System.EventHandler(this.convertTopFoldersToolStripMenuItem_Click); - // - // loadTreeFromCSLAToolStripMenuItem - // - this.loadTreeFromCSLAToolStripMenuItem.Name = "loadTreeFromCSLAToolStripMenuItem"; - this.loadTreeFromCSLAToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.loadTreeFromCSLAToolStripMenuItem.Text = "Load Tree From CSLA"; - this.loadTreeFromCSLAToolStripMenuItem.Click += new System.EventHandler(this.loadTreeFromCSLAToolStripMenuItem_Click); - // - // loadVETreeFromCSLAToolStripMenuItem - // - this.loadVETreeFromCSLAToolStripMenuItem.Name = "loadVETreeFromCSLAToolStripMenuItem"; - this.loadVETreeFromCSLAToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.loadVETreeFromCSLAToolStripMenuItem.Text = "Load VETree From CSLA"; - this.loadVETreeFromCSLAToolStripMenuItem.Click += new System.EventHandler(this.loadVETreeFromCSLAToolStripMenuItem_Click); - // - // groupSecurityToolStripMenuItem - // - this.groupSecurityToolStripMenuItem.Name = "groupSecurityToolStripMenuItem"; - this.groupSecurityToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.groupSecurityToolStripMenuItem.Text = "Group/Security"; - this.groupSecurityToolStripMenuItem.Click += new System.EventHandler(this.groupSecurityToolStripMenuItem_Click); - // - // countTokensToolStripMenuItem - // - this.countTokensToolStripMenuItem.Name = "countTokensToolStripMenuItem"; - this.countTokensToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.countTokensToolStripMenuItem.Text = "Count Tokens"; - this.countTokensToolStripMenuItem.Click += new System.EventHandler(this.countTokensToolStripMenuItem_Click); - // - // toolStripMenuItem3 - // - this.toolStripMenuItem3.Name = "toolStripMenuItem3"; - this.toolStripMenuItem3.Size = new System.Drawing.Size(221, 6); - // - // convertDbfSelectedInTreeToolStripMenuItem - // - this.convertDbfSelectedInTreeToolStripMenuItem.Name = "convertDbfSelectedInTreeToolStripMenuItem"; - this.convertDbfSelectedInTreeToolStripMenuItem.Size = new System.Drawing.Size(224, 22); - this.convertDbfSelectedInTreeToolStripMenuItem.Text = "Convert Dbf Selected In Tree"; - this.convertDbfSelectedInTreeToolStripMenuItem.Click += new System.EventHandler(this.convertDbfSelectedInTreeToolStripMenuItem_Click); - // - // fixAllToolStripMenuItem - // - this.fixAllToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.approvalDatabasesToolStripMenuItem, - this.updateFormatsToolStripMenuItem}); - this.fixAllToolStripMenuItem.Name = "fixAllToolStripMenuItem"; - this.fixAllToolStripMenuItem.Size = new System.Drawing.Size(50, 20); - this.fixAllToolStripMenuItem.Text = "Fix All"; - // - // approvalDatabasesToolStripMenuItem - // - this.approvalDatabasesToolStripMenuItem.Name = "approvalDatabasesToolStripMenuItem"; - this.approvalDatabasesToolStripMenuItem.Size = new System.Drawing.Size(178, 22); - this.approvalDatabasesToolStripMenuItem.Text = "Approval Databases"; - this.approvalDatabasesToolStripMenuItem.Click += new System.EventHandler(this.approvalDatabasesToolStripMenuItem_Click); - // - // updateFormatsToolStripMenuItem - // - this.updateFormatsToolStripMenuItem.Name = "updateFormatsToolStripMenuItem"; - this.updateFormatsToolStripMenuItem.Size = new System.Drawing.Size(178, 22); - this.updateFormatsToolStripMenuItem.Text = "Update Formats"; - this.updateFormatsToolStripMenuItem.Click += new System.EventHandler(this.updateFormatsToolStripMenuItem_Click); - // - // fixROValuesToolStripMenuItem - // - this.fixROValuesToolStripMenuItem.Name = "fixROValuesToolStripMenuItem"; - this.fixROValuesToolStripMenuItem.Size = new System.Drawing.Size(264, 24); - this.fixROValuesToolStripMenuItem.Text = "Fix RO Values"; - this.fixROValuesToolStripMenuItem.Click += new System.EventHandler(this.fixROValuesToolStripMenuItem_Click); - // - // createEmptyPROMSDatabaseToolStripMenuItem - // - this.createEmptyPROMSDatabaseToolStripMenuItem.Name = "createEmptyPROMSDatabaseToolStripMenuItem"; - this.createEmptyPROMSDatabaseToolStripMenuItem.Size = new System.Drawing.Size(239, 22); - this.createEmptyPROMSDatabaseToolStripMenuItem.Text = "Create Empty PROMS Database"; - this.createEmptyPROMSDatabaseToolStripMenuItem.Click += new System.EventHandler(this.createEmptyPROMSDatabaseToolStripMenuItem_Click); - // - // frmLoader - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(664, 394); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.sc); - this.Controls.Add(this.menuStrip1); - this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.Name = "frmLoader"; - this.Text = "PROMS-2010 Data Loader"; - this.Load += new System.EventHandler(this.frmLoader_Load); - this.sc.Panel1.ResumeLayout(false); - this.sc.Panel1.PerformLayout(); - this.sc.Panel2.ResumeLayout(false); - this.sc.ResumeLayout(false); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.SplitContainer sc; - private System.Windows.Forms.Label lblTime; - private System.Windows.Forms.ProgressBar pbStep; - private System.Windows.Forms.ProgressBar pbSect; - private System.Windows.Forms.ProgressBar pbProc; - private System.Windows.Forms.Label lblStep; - private System.Windows.Forms.Label lblSection; - private System.Windows.Forms.Label lblProc; - private System.Windows.Forms.TreeView tv; - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel toolStripStatusLabel1; - private System.Windows.Forms.ToolStripStatusLabel tsslError; - private System.Windows.Forms.Label lblCurSetFolder; - private System.Windows.Forms.Label lblProcessing; - private System.Windows.Forms.ToolTip toolTip1; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem settingsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem processToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem completeToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem formatOnlyToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem2; - private System.Windows.Forms.ToolStripMenuItem convertDBToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem fixTransitionsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem convertToChangeManagerToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem convertToApprovalToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem oldToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem convertSecurityToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem convertTopFoldersToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem loadTreeFromCSLAToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem loadVETreeFromCSLAToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem groupSecurityToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem countTokensToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem convertDbfSelectedInTreeToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem3; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem4; - private System.Windows.Forms.ToolStripMenuItem load16BitApprovalToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem fixesToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem fixAllToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem approvalDatabasesToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem updateFormatsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem fixROValuesToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem createEmptyPROMSDatabaseToolStripMenuItem; - } -} diff --git a/PROMS/DataLoader/frmLoader.cs b/PROMS/DataLoader/frmLoader.cs deleted file mode 100644 index 099b31ea..00000000 --- a/PROMS/DataLoader/frmLoader.cs +++ /dev/null @@ -1,1430 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.Configuration; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using Volian.MSWord; -using vlnObjectLibrary; -using vlnServerLibrary; -using VEPROMS.CSLA.Library; -using Config; -using Volian.Controls.Library; -using Volian.Base.Library; -using System.Data.SqlClient; - - -[assembly: log4net.Config.XmlConfigurator(Watch = true)] - -namespace DataLoader -{ - public partial class frmLoader : Form - { - #region Log4Net - public static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region settings - private bool _FormatsOnly = false; - public bool FormatsOnly - { - get { return _FormatsOnly; } - set { _FormatsOnly = value; } - } - #endregion - private bool _Loading = true; - - private FolderTreeNode _topnode; - private bool UseVeTree = false; - private Loader ldr; - public TreeView TV { get { return tv; } } - public int pbProcMaximum { get { return pbProc.Maximum; } set { pbProc.Maximum = value; } } - public int pbSectMaximum { get { return pbSect.Maximum; } set { pbSect.Maximum = value; } } - public int pbSectValue { get { return pbSect.Value; } set { pbSect.Value = value; } } - public int pbStepMaximum { get { return pbStep.Maximum; } set { pbStep.Maximum = value; } } - public int pbStepValue { get { return pbStep.Value; } set { pbStep.Value = value; } } - public int pbProcValue { get { return pbProc.Value; } set { pbProc.Value = value; } } - private bool _Automatic = false; - public bool Automatic - { - get { return _Automatic; } - set { _Automatic = value; } - } - private string _DBName = null; - public string DBName - { - get - { - if (_DBName != null) return _DBName; - return MySettings.DBName; - } - } - private string _ProcedureSetPath = null; - public string ProcedureSetPath - { - get - { - if (_ProcedureSetPath != null) return _ProcedureSetPath; - return MySettings.ProcedureSetPath; - } - } - private int? _SkipProcedures = null; - public int SkipProcedures - { - get - { - if (_SkipProcedures != null) return (int)_SkipProcedures; - return MySettings.Skip; - } - } - private int? _HowManyProcedures = null; - public int HowManyProcedures - { - get - { - if (_HowManyProcedures != null) return (int)_HowManyProcedures; - return MySettings.HowMany; - } - } - private bool? _PurgeExistingData = null; - public bool PurgeExistingData - { - get - { - if (_PurgeExistingData != null) return (bool)_PurgeExistingData; - return MySettings.PurgeExistingData; - } - } - public string Status - { - get { return toolStripStatusLabel1.Text; } - set - { - toolStripStatusLabel1.Text = value; - Application.DoEvents(); - } - } - private int _ChildrenProcessed; - public int ChildrenProcessed - { - get { return _ChildrenProcessed; } - set { _ChildrenProcessed = value; } - } - private frmErrors _MyFrmErrors = null; - public frmErrors MyFrmErrors - { - get - { - if (_MyFrmErrors == null) - { - _MyFrmErrors = new frmErrors(this); - _MyFrmErrors.FormClosing += new FormClosingEventHandler(_MyFrmErrors_FormClosing); - } - return _MyFrmErrors; - } - } - void _MyFrmErrors_FormClosing(object sender, FormClosingEventArgs e) - { - _MyFrmErrors = null; - } - public string MyError - { - get { return tsslError.Text; } - set - { - MyFrmErrors.Add(value, MessageType.Error); - _MyLog.ErrorFormat(value); - tsslError.Text = string.Format("{0} Errors", MyFrmErrors.ErrorCount); - } - } - public string MyWarning - { - get { return tsslError.Text; } - set - { - MyFrmErrors.Add(value, MessageType.Warning); - _MyLog.WarnFormat(value); - //tsslError.Text = string.Format("{0} Errors", MyFrmErrors.ErrorCount); - } - } - public string MyInfo - { - get { return tsslError.Text; } - set - { - MyFrmErrors.Add(value, MessageType.Information); - _MyLog.Info(value); - //tsslError.Text = string.Format("{0} Errors", MyFrmErrors.ErrorCount); - } - } - public void AddError(string format, params object[] objs) - { - MyError = string.Format(format, objs); - } - public void AddWarn(string format, params object[] objs) - { - MyWarning = string.Format(format, objs); - } - public void AddInfo(string format, params object[] objs) - { - MyInfo = string.Format(format, objs); - } - public void AddError(Exception ex, string format, params object[] objs) - { - StringBuilder sb = new StringBuilder(string.Format(format, objs)); - int indent = 0; - while (ex != null) - { - sb.Append("\r\n" + "".PadRight((++indent) * 2, ' ') + string.Format("{0} - {1}", ex.GetType().Name, ex.Message)); - sb.Append(ex.StackTrace); - ex = ex.InnerException; - } - MyError = sb.ToString(); - } - - public frmLoader() - { - ldr = new Loader(_MyLog, this); - InitializeComponent(); - MSWordToPDF.FormForPlotGraphics = this; - lblTime.Tag = DateTime.Now; - } - private void btnConvertSelected_Click(object sender, EventArgs e) - { - if (UseVeTree) - { - VETreeNode tn = (VETreeNode)tv.SelectedNode; - if (tn == null) - { - MessageBox.Show("Must select a version node (working draft, approved, etc)", "No Node Selected"); - return; - } - object o = tn.VEObject; - if (o.GetType() != typeof(DocVersionInfo)) - { - MessageBox.Show("Must select a version node (working draft, approved, etc)", "No Node Selected"); - return; - } - DocVersion v = ((DocVersionInfo)o).Get(); - ldr.MigrateDocVersion(v); - if (v.MyItem != null) - { - tn.Checked = true; - } - - } - else - { - TreeNode tn = tv.SelectedNode; - if (tn == null) - { - MessageBox.Show("Must select a version node (working draft, approved, etc)", "No Node Selected"); - return; - } - object o = tn.Tag; - if (o.GetType() != typeof(DocVersion)) - { - MessageBox.Show("Must select a version node (working draft, approved, etc)", "No Node Selected"); - return; - } - DocVersion v = (DocVersion)o; - ldr.MigrateDocVersion(v); - if (v.MyItem != null) - { - tn.Checked = true; - } - } - } - private void tv_BeforeExpand(object sender, TreeViewCancelEventArgs e) - { - if (UseVeTree) - { - ((VETreeNode)e.Node).LoadChildren(); - return; - } - - TreeNode tn = e.Node; - object o = tn.Tag; - switch (o.GetType().ToString()) - { - case "Volian.CSLA.Library.FolderInfo": - FolderInfo fld = (FolderInfo)o; - if (fld.ChildFolderCount > 0) - tn.Checked = ldr.LoadChildren(fld, tn); // load docversions. - break; - default: - break; - } - } - private void tv_AfterSelect(object sender, TreeViewEventArgs e) - { - if (UseVeTree) return; - - TreeNode tn = e.Node; - object o = tn.Tag; - tn.Expand(); - if (o.GetType() == typeof(DocVersion)) MySettings.ProcedureSetPath = ((DocVersion)o).Title; - } - private void btnLoadTreeDB_Click(object sender, EventArgs e) - { - // When loading folders, i.e. the tree from dBase (old 16-bit) - // always clear the data - ldr.ClearData(); - bool suc = ldr.LoadFolders(MySettings.VEPromsPath); - } - private string GetScript(string scriptName) - { - StreamReader sr = File.OpenText(Application.StartupPath + "\\" + scriptName); - string myScript = sr.ReadToEnd(); - sr.Close(); - return myScript; - } - private DateTime _ProcessTime; - public DateTime ProcessTime - { - get { return _ProcessTime; } - set - { - _ProcessTime = value; - // Set the Log File Name when the ProcessTime is set - ChangeLogFileName("LogFileAppender", DBName + " " + ProcessTime.ToString("yyyyMMdd HHmmss") + " DMErrorLog.txt"); - } - } - private void btnConvert_Click(object sender, System.EventArgs e) - { - // Set Connection String - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - // Setup based upon RedPDF Setting - // if in debug mode, pdf output is red - VlnSettings.DebugMode = (MySettings.ExecutionMode == ExecutionMode.Debug) && MySettings.RedPDFs; - if (VlnSettings.DebugMode) // Debug Mode - { - MSWordToPDF.DebugStatus = 1; - Loader.OverrideColor = Color.Red; - } - else - { - MSWordToPDF.DebugStatus = 0; - Loader.OverrideColor = Color.Empty; - } - //if (!CheckLogPath()) return; - //#if (!DEBUG) - if (!VlnSettings.DebugMode) - { - DialogResult dlgrst = MessageBox.Show("The VE-PROMS data currently in SQL Server (Express) will be deleted.\r\n\nProceed with Data Conversion?", "WARNING", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); - if (dlgrst == DialogResult.No) return; - } - //#endif - try - { - //TextConvert.ResetSpecialCharacters(); - //MyFrmErrors.Clear(); - System.Diagnostics.Process[] wordProcesses = WordDoc.WordProcesses; - if (!FormatsOnly && wordProcesses.Length > 0) - { - AddError("{0} copies of MS Word are running", wordProcesses.Length); - if (Automatic || MessageBox.Show("MS Word is Running and must be stopped before proceeding.\n\nStop MS Word?", "MS Word is Running", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - WordDoc.TerminateProcesses(wordProcesses); - MyFrmErrors.Clear(); - } - else - return; - } - Database.LoggingInfo = false; - bool success = true; - if (FormatsOnly) - { - // ASSUMES No Formats/genmacs exist in database. - //MessageBox.Show(@"Format files are taken from c:\development\fmtall"); - //ldr._FmtAllPath = @"c:\development\fmtall"; - //ldr._GenmacAllPath = @"c:\development\genmacall"; - Format.UpdateFormats(MySettings.FormatFolder, MySettings.GenMacFolder); - //Format.UpdateFormats(@"c:\development\fmtall",@"c:\development\genmacall"); //ldr.LoadAllFormats(); - MessageBox.Show("Formats Loaded"); - return; - } - // Create Database - - // if purge data, purge it all & reload folders & security. - if (PurgeExistingData) - { - if(!RunScript("BuildVEPROMS.Sql", "Master")) return; - if(!RunScript("PROMS2010.SQL", DBName)) return; - Status = "Purging Data"; - ldr.ClearData(); - Status = "Loading Folders"; - success = ldr.LoadFolders(MySettings.VEPromsPath); - if (success) - { - Status = "Loading Security"; - success = ldr.LoadSecurity(MySettings.VESamFile, MySettings.VEPromsPath); - } - } - else - { - // check if images have been zipped & if not, zip them: - ROImageInfo.ZipImages(); - success = ldr.LoadFoldersIntoExisting(MySettings.VEPromsPath); - } - if (createEmptyPROMS) return; - if (success) - { - TimeSpan ts = new TimeSpan(); - DocVersionInfoList vl = DocVersionInfoList.Get(); - //DocVersion v = null; - MyInfo = "Computer Name: " + SystemInformation.ComputerName.ToUpper(); - foreach (DocVersionInfo vi in vl) - { - if (!MySettings.OnlyThisSet || (vi.Title.ToUpper() == ProcedureSetPath.ToUpper())) // is this the procedure set we want to convert? - { - using (DocVersion v = DocVersion.Get(vi.VersionID)) - { - //v = DocVersion.Get(vi.VersionID); - Status = "Load " + v.Title + " - " + v.Name; - lblCurSetFolder.Text = v.Title; - lblCurSetFolder.Visible = true; - lblProcessing.Visible = true; - MyInfo = "Data Set: " + v.Title; - ts += ldr.MigrateDocVersion(v, true); - } - } - } - string ConversionTime = string.Format("Conversion completion time: {0:D2}:{1:D2}:{2:D2}.{3}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds); - MyInfo = ConversionTime; - SaveLogFiles(); - if (!ProcessComplete) MessageBox.Show(string.Format("{0}\r\n\n({1} Total Seconds)", ConversionTime, ts.TotalSeconds)); - //MessageBox.Show(string.Format("Conversion completion time: {0:D2}:{1:D2}:{2:D2}.{3}\r\n\n({4} Total Seconds)", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds, ts.TotalSeconds)); - //MessageBox.Show(string.Format("{0} seconds", ts.TotalSeconds)); - //TextConvert.ListSpecialCharacters(); - } - } - catch (Exception ex) - { - AddError(ex, "===================== Fatal Error ==========================\r\n{0} - {1}", ex.GetType().Name, ex.Message); - SaveLogFiles(); - MessageBox.Show(ex.Message, "Fatal Error During Loading", MessageBoxButtons.OK, MessageBoxIcon.Error); - _MyLog.Fatal(ex.Message); - } - } - public bool RunScript(string scriptName, string dbName) - { - bool ok = false; - Status = String.Format("Running Script '{0}'", scriptName); - string script = GetScript(scriptName); - script = script.Replace("{DBName}", DBName); - script = script.Replace("{DBPath}", MySettings.DBPath); - SQLScriptRunner ssr = new SQLScriptRunner(script, MySettings.ConnectionString.Replace("{DBName}", dbName)); - ssr.InfoMessage += new SQLScriptRunnerEvent(ssr_InfoMessage); - try - { - AddInfo("Running Script '{0}'", scriptName); - ssr.Run(); - Status = String.Format("Script '{0}' Complete", scriptName); - ok = true; - } - catch (Exception ex) - { - AddInfo("====****===="); - AddError(ex, "While processing database {0}", dbName); - AddInfo("====****===="); - Status = String.Format("Script '{0}' Failed", scriptName); - } - return ok; - } - public bool RunScript(string script) - { - bool ok = false; - Status = String.Format("Running {0}", script); - script = script.Replace("{DBName}", DBName); - script = script.Replace("{DBPath}", MySettings.DBPath); - SQLScriptRunner ssr = new SQLScriptRunner(script, MySettings.ConnectionString.Replace("{DBName}", DBName)); - ssr.InfoMessage += new SQLScriptRunnerEvent(ssr_InfoMessage); - try - { - ssr.Run(); - Status = "Script Complete"; - ok = true; - } - catch (Exception ex) - { - AddInfo("====****===="); - AddError(ex, "While processing database {0}", DBName); - AddInfo("====****===="); - Status = String.Format("Script {0} Failed", script); - } - return ok; - } - private void Backup(string suffix) - { - SQLScriptRunner ssrbu = new SQLScriptRunner(DBName, MySettings.BackupFolder, - MySettings.ConnectionString.Replace("{DBName}", "Master"), ProcessTime, suffix); - ssrbu.InfoMessage += new SQLScriptRunnerEvent(ssr_InfoMessage); - ssrbu.Run(); - } - void ssr_InfoMessage(object sender, System.Data.SqlClient.SqlInfoMessageEventArgs args) - { - MyInfo = args.Message; - } - private bool _ShowSections = false; - public bool ShowSections - { - get { return _ShowSections; } - set { _ShowSections = value; } - } - public void UpdateLabels(int incPrc, int incSec, int incStp) - { - if (incPrc == 0 && incSec == 0 && incStp == 0)//Reset - { - pbProc.Value = 0; - pbSect.Value = 0; - pbStep.Value = 0; - } - else - { - try - { - pbProc.Value += incPrc; - pbSect.Value += incSec; - if (pbStep.Value < pbStep.Maximum) - pbStep.Value += incStp; - else - _MyLog.WarnFormat("trying to increment status bar beyond maximum"); - } - catch (Exception ex) - { - _MyLog.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - AddError(ex, "UpdateLabels"); - } - } - //Database.LoggingInfo = (pbProc.Value > 153 && pbSect.Value > 11 && pbStep.Value > 61); - lblProc.Text = string.Format("{0}/{1} Procedures", pbProc.Value, pbProc.Maximum); - if (ShowSections) - { - lblSection.Text = string.Format("{0}/{1} Sections", pbSect.Value, pbSect.Maximum); - lblStep.Text = string.Format("{0}/{1} Steps", pbStep.Value, pbStep.Maximum); - } - else - { - lblSection.Text = ""; - lblStep.Text = ""; - } - //pbProc.Value = iPrc; - //pbSect.Value = iSec; - //pbStep.Value = iStp; - TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - ProcessTime.Ticks); - lblTime.Text = string.Format("{0:D2}:{1:D2}:{2:D2} Elapsed", ts.Hours, ts.Minutes, ts.Seconds); - Application.DoEvents(); - } - private void btnLoadTreeCSLA_Click(object sender, EventArgs e) - { - _topnode = FolderTreeNode.BuildTreeList(); - tv.Nodes.Add(_topnode); - tv.Nodes[0].Expand(); - UseVeTree = false; - } - private void btnVesam_Click(object sender, EventArgs e) - { - // if purge data, purge it all & reload folders. - if (PurgeExistingData) - { - ldr.ClearData(); - ldr.LoadFolders(MySettings.VEPromsPath); - } - bool sec = ldr.LoadSecurity(MySettings.VESamFile, MySettings.VEPromsPath); - } - - private void btnVETree_CSLA_Click(object sender, EventArgs e) - { - tv.Nodes.Add(VETreeNode.GetFolder(1)); - UseVeTree = true; - } - - private void btnGroup_Click(object sender, EventArgs e) - { - GroupProp f = new GroupProp(); - f.ShowDialog(); - } - - private void btnCtTok_Click(object sender, EventArgs e) - { - frmCntTkn frm = new frmCntTkn(); - frm.ShowDialog(); - } - public void UpdateLabelsSetProc(int prc) - { - pbProc.Maximum = prc; - } - public void UpdateLabelsSetSect(int sec) - { - pbSect.Maximum = sec; - } - public void UpdateLabelsLibDocs(int incLib, int incUsages) - { - if (incLib == 0 && incUsages == 0)//Reset - { - pbProc.Value = 0; - pbSect.Value = 0; - } - else - { - pbProc.Value += incLib; - pbSect.Value += incUsages; - } - lblProc.Text = string.Format("{0}/{1} Lib Docs", pbProc.Value, pbProc.Maximum); - lblSection.Text = string.Format("{0}/{1} Usages", pbSect.Value, pbSect.Maximum); - lblStep.Text = ""; - TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - ProcessTime.Ticks); - lblTime.Text = string.Format("{0:D2}:{1:D2}:{2:D2} Elapsed", ts.Hours, ts.Minutes, ts.Seconds); - Application.DoEvents(); - } - public void UpdateLabelsImages(int incImages) - { - if (incImages == 0)//Reset - pbProc.Value = 0; - else - pbProc.Value += incImages; - lblProc.Text = string.Format("{0}/{1} Images", pbProc.Value, pbProc.Maximum); - lblSection.Text = ""; - lblStep.Text = ""; - TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - ProcessTime.Ticks); - lblTime.Text = string.Format("{0:D2}:{1:D2}:{2:D2} Elapsed", ts.Hours, ts.Minutes, ts.Seconds); - Application.DoEvents(); - } - public void UpdateLabelsFormats(int incFormats) - { - if (incFormats == 0)//Reset - pbProc.Value = 0; - else - pbProc.Value += incFormats; - lblProc.Text = string.Format("{0}/{1} Formats", pbProc.Value, pbProc.Maximum); - lblSection.Text = ""; - lblStep.Text = ""; - TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - ProcessTime.Ticks); - lblTime.Text = string.Format("{0:D2}:{1:D2}:{2:D2} Elapsed", ts.Hours, ts.Minutes, ts.Seconds); - Application.DoEvents(); - } - private DataLoaderSettings _MySettings; - internal DataLoaderSettings MySettings - { - get - { - if (_MySettings == null) - _MySettings = new DataLoaderSettings(); - return _MySettings; - } - set { _MySettings = value; } - } - private void LoadSettings() - { - Console.WriteLine("Start"); - if (Properties.Settings.Default["VePromsFilename"].ToString() != "") - MySettings.VEPromsPath = Properties.Settings.Default.VePromsFilename; - if (Properties.Settings.Default["VeSamFilename"].ToString() != "") - MySettings.VESamFile = Properties.Settings.Default.VeSamFilename; - if (Properties.Settings.Default["DbfPathname"].ToString() != "") - MySettings.ProcedureSetPath = Properties.Settings.Default.DbfPathname; - if (Properties.Settings.Default["ProcessOnlyInLocation"].ToString() != "") - MySettings.ProcessOnlyInLocation = Properties.Settings.Default.ProcessOnlyInLocation; - if (Properties.Settings.Default["BackupFileName"].ToString() != "") - MySettings.BackupFileName = Properties.Settings.Default.BackupFileName; - if (Properties.Settings.Default["BackupFolder"].ToString() != "") - MySettings.BackupFolder = Properties.Settings.Default.BackupFolder; - if (Properties.Settings.Default["LogFileLoc"].ToString() != "") - MySettings.LogFilePath = Properties.Settings.Default.LogFileLoc; - if (Properties.Settings.Default["ConnectionString"].ToString() != "") - MySettings.ConnectionString = Properties.Settings.Default.ConnectionString; - if (Properties.Settings.Default["DBName"].ToString() != "") - MySettings.DBName = Properties.Settings.Default.DBName; - if (Properties.Settings.Default["DBPath"].ToString() != "") - MySettings.DBPath = Properties.Settings.Default.DBPath; - MySettings.PurgeExistingData = (Properties.Settings.Default.PurgeData == CheckState.Checked); - //if (Properties.Settings.Default["PDFFolder"].ToString() != "") - // MySettings.PDFFolder = Properties.Settings.Default.PDFFolder; - MySettings.OnlyThisSet = (Properties.Settings.Default.OnlyThisSet == CheckState.Checked); - MySettings.CheckRTF = (Properties.Settings.Default.CheckRTF == CheckState.Checked); - MySettings.Skip = Properties.Settings.Default.Skip; - MySettings.HowMany = Properties.Settings.Default.HowMany; - MySettings.ConvertTo = (AccPageConversion)Properties.Settings.Default.ConvertTo; - MySettings.ExecutionMode = (ExecutionMode)Properties.Settings.Default.ExecutionMode; - MySettings.Phase1Suffix = Properties.Settings.Default.Phase1; - MySettings.Phase2Suffix = Properties.Settings.Default.Phase2; - MySettings.Phase3Suffix = Properties.Settings.Default.Phase3; - MySettings.FormatFolder = Properties.Settings.Default.FormatFolder; - MySettings.GenMacFolder = Properties.Settings.Default.GenMacFolder; - MySettings.LoadApproved = Properties.Settings.Default.LoadApproved; - MySettings.Phase4Suffix = Properties.Settings.Default.Phase4; - MySettings.RedPDFs = (Properties.Settings.Default.RedPDFs == CheckState.Checked); - MySettings.AnnotateWhenConvertingToText = Properties.Settings.Default.AnnotateWhenConvertingToText; - MySettings.AnnotateWhenShowingDifferentRO = Properties.Settings.Default.AnnotateWhenShowingDifferentRO; - MySettings.AnnotateWhenShowingMissingRO = Properties.Settings.Default.AnnotateWhenShowingMissingRO; - MySettings.SelectedROFst = Properties.Settings.Default.SelectedROFst; - MySettings.WhatROsToConvert = (ROUpdateMode)Properties.Settings.Default.WhatROsToConvert; - string validity = MySettings.ValidityCheck; - if (validity != "") - { - MessageBox.Show(validity, "Settings Incorrect", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - OpenSettings(); - } - } - private void OpenSettings() - { - DataLoaderSettings tmpDLS = (DataLoaderSettings)MySettings.Clone(); - frmPG myPG = new frmPG("Data Loader Settings", tmpDLS); - if (myPG.ShowDialog() == DialogResult.OK) - { - MySettings = tmpDLS; - SaveSettings(); - } - string validity = MySettings.ValidityCheck; - if (validity != "") - { - processToolStripMenuItem.Enabled = false; - oldToolStripMenuItem.Enabled = false; - } - else - { - processToolStripMenuItem.Enabled = true; - oldToolStripMenuItem.Enabled = true; - } - } - private void SaveSettings() - { - Properties.Settings.Default.VePromsFilename = MySettings.VEPromsPath; - Properties.Settings.Default.VeSamFilename = MySettings.VESamFile; - Properties.Settings.Default.DbfPathname = MySettings.ProcedureSetPath; - Properties.Settings.Default.ProcessOnlyInLocation = MySettings.ProcessOnlyInLocation; - Properties.Settings.Default.BackupFileName = MySettings.BackupFileName; - Properties.Settings.Default.BackupFolder = MySettings.BackupFolder; - Properties.Settings.Default.LogFileLoc = MySettings.LogFilePath; - Properties.Settings.Default.ConnectionString = MySettings.ConnectionString; - Properties.Settings.Default.DBName = MySettings.DBName; - Properties.Settings.Default.DBPath = MySettings.DBPath; - Properties.Settings.Default.PurgeData = MySettings.PurgeExistingData ? CheckState.Checked : CheckState.Unchecked; - //Properties.Settings.Default.PDFFolder = MySettings.PDFFolder; - Properties.Settings.Default.OnlyThisSet = MySettings.OnlyThisSet ? CheckState.Checked : CheckState.Unchecked; - Properties.Settings.Default.CheckRTF = MySettings.CheckRTF ? CheckState.Checked : CheckState.Unchecked; - Properties.Settings.Default.Skip = MySettings.Skip; - Properties.Settings.Default.HowMany = MySettings.HowMany; - Properties.Settings.Default.ConvertTo = (int)MySettings.ConvertTo; - Properties.Settings.Default.ExecutionMode = (int)MySettings.ExecutionMode; - Properties.Settings.Default.Phase1 = MySettings.Phase1Suffix; - Properties.Settings.Default.Phase2 = MySettings.Phase2Suffix; - Properties.Settings.Default.Phase3 = MySettings.Phase3Suffix; - Properties.Settings.Default.FormatFolder = MySettings.FormatFolder; - Properties.Settings.Default.GenMacFolder = MySettings.GenMacFolder; - Properties.Settings.Default.LoadApproved = MySettings.LoadApproved; - Properties.Settings.Default.Phase4 = MySettings.Phase4Suffix; - Properties.Settings.Default.RedPDFs = MySettings.RedPDFs ? CheckState.Checked : CheckState.Unchecked; - Properties.Settings.Default.AnnotateWhenConvertingToText = MySettings.AnnotateWhenConvertingToText; - Properties.Settings.Default.AnnotateWhenShowingDifferentRO = MySettings.AnnotateWhenShowingDifferentRO; - Properties.Settings.Default.AnnotateWhenShowingMissingRO = MySettings.AnnotateWhenShowingMissingRO; - Properties.Settings.Default.SelectedROFst = MySettings.SelectedROFst; - Properties.Settings.Default.WhatROsToConvert = (int)MySettings.WhatROsToConvert; - Properties.Settings.Default.Save(); - } - private void frmLoader_Load(object sender, EventArgs e) - { - LoadSettings(); - LoadCommandLineSettings(); - _Loading = false; - MSWordToPDF.CloseWordWhenDone = false; - Format.FormatLoaded += new FormatEvent(Format_FormatLoaded); - StepRTB.DoSpellCheck = false; - } - private void LoadCommandLineSettings() - { - string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray()); - if (ParameterCheck(parameters, "/Auto")!=null) - { - Automatic = true; - _DBName = ParameterCheck(parameters, "/DBName="); - _ProcedureSetPath = ParameterCheck(parameters, "/ProcedureSetPath="); - _SkipProcedures = IntParameterCheck(parameters, "/Skip="); - _HowManyProcedures = IntParameterCheck(parameters, "/HowMany="); - _PurgeExistingData = BooleanParameterCheck(parameters, "/PurgeData="); - vlnServer.XMLControlPath = Application.StartupPath + @"\vlnControl.xml"; - tAutomatic.Interval = 1000;//Wait 1000 Milliseconds - tAutomatic.Enabled = true; - tAutomatic.Tick += new EventHandler(tAutomatic_Tick); - } - } - Timer tAutomatic = new Timer(); - void tAutomatic_Tick(object sender, EventArgs e) - { - tAutomatic.Enabled = false; - completeToolStripMenuItem_Click(this, new EventArgs()); - this.Close(); - } - private int? IntParameterCheck(string[] parameters, string lookfor) - { - string pcheck = ParameterCheck(parameters, lookfor); - if (pcheck != null) return int.Parse(pcheck); - return null; - } - private bool? BooleanParameterCheck(string[] parameters, string lookfor) - { - string pcheck = ParameterCheck(parameters, lookfor); - if (pcheck != null) return bool.Parse(pcheck); - return null; - } - private string ParameterCheck(string[] parameters, string lookfor) - { - foreach (string parameter in parameters) - { - if (parameter.ToUpper().StartsWith(lookfor.ToUpper())) - return parameter.Substring(lookfor.Length); - } - return null; - } - void Format_FormatLoaded(object sender, FormatEventArgs args) - { - if (args.Status.StartsWith("Loading Format")) - UpdateLabelsFormats(1); - else if (!args.Status.StartsWith("Format") && !args.Status.StartsWith("Loading ")) - { - pbProcMaximum = int.Parse(args.Status.Split(" ".ToCharArray())[0]); - UpdateLabelsFormats(0); - } - MyInfo = args.Status; - } - private void btnFixTransitions_Click(object sender, EventArgs e) - { - List cacheContentInfo = ContentInfo.CacheList; - List cacheItemInfo = ItemInfo.CacheList; - //List cacheEntryInfo = EntryInfo.CacheList; - //List cachePdfInfo = PdfInfo.CacheList; - //List cacheDocVersionInfo = DocVersionInfo.CacheList; - //if (!CheckLogPath()) return; - using (StepRTB rtb = new StepRTB()) - { - TransitionFixer myFixer = new TransitionFixer(rtb, MySettings.LogFilePath, this); - myFixer.StatusChanged += new TransitionFixerEvent(myFixer_StatusChanged); - TimeSpan howlong = myFixer.Process(MySettings.CheckRTF); - string TransFixTime = string.Format("Fix Transitions completion time: {0:D2}:{1:D2}:{2:D2}.{3}", howlong.Hours, howlong.Minutes, howlong.Seconds, howlong.Milliseconds); - MyInfo = TransFixTime; - //if (!ProcessComplete) MessageBox.Show(string.Format("{0}\r\n\n({1} Total Seconds)", TransFixTime, howlong.TotalSeconds)); - //MessageBox.Show(string.Format("Fix Transitions completion time: {0:D2}:{1:D2}:{2:D2}.{3}\r\n\n({4} Total Seconds)", howlong.Hours, howlong.Minutes, howlong.Seconds, howlong.Milliseconds, howlong.TotalSeconds)); - CreateBackupRestoreBatchFiles(); - ItemInfo.RestoreCacheList(cacheItemInfo); - ContentInfo.RestoreCacheList(cacheContentInfo); - //EntryInfo.RestoreCacheList(cacheEntryInfo); - //PdfInfo.RestoreCacheList(cachePdfInfo); - //DocVersionInfo.RestoreCacheList(cacheDocVersionInfo); - MyInfo = CSLACache.UsageAll; - } - } - - void myFixer_StatusChanged(object sender, TransitionFixerEventArgs args) - { - Status = args.MyStatus; - } - private bool _DidLogPathCheck = false; - //private string _LogFilePath = ""; - - //private bool CheckLogPath() - //{ - // bool rtn = false; - // if (_DidLogPathCheck) return true; - // try - // { - // _LogFilePath = txbLogFileLoc.Text; - // if (!Directory.Exists(_LogFilePath)) - // Directory.CreateDirectory(_LogFilePath); - // if (_LogFilePath.EndsWith(@"\")) _LogFilePath = _LogFilePath.Substring(0, _LogFilePath.Length - 1); - // rtn = true; - // _DidLogPathCheck = true; - // } - // catch (Exception ex) - // { - // MessageBox.Show(ex.Message, "Invalid Path for Log Files", MessageBoxButtons.OK, MessageBoxIcon.Error); - // } - // return rtn; - //} - - private void SaveLogFiles() - { - //if (_LogFilePath == "") return; - // Save the Glitches log - if (TextConvert.MyGlitches.Glitches.Count > 0) - TextConvert.MyGlitches.Save(MySettings.LogFilePath + @"\ConversionGlitches.xml"); - // Save the Error Log - if (_MyFrmErrors.ErrorCount > 0) - _MyFrmErrors.Save(MySettings.LogFilePath + @"\ConversionErrors.txt"); - } - - private bool _EnteredFileLoc = false; - private void txbLogFileLoc_TextChanged(object sender, EventArgs e) - { - _DidLogPathCheck = false; - } - - private void CreateBackupRestoreBatchFiles() - { - string pause = "pause"; - string bckupFileName = MySettings.BackupFileName; - if (!bckupFileName.EndsWith(".bak")) bckupFileName += ".bak"; - string backupPath = MySettings.LogFilePath + @"\" + bckupFileName + "'\""; - string bckupcmd = string.Format("sqlcmd -E -S.\\sqlexpress -Q \"backup database [{0}] to disk = '{1}", DBName, backupPath); - string rstorecmd = string.Format("sqlcmd -E -S.\\sqlexpress -Q \"restore database [{0}] from disk = '{1}", DBName, backupPath); - StreamWriter fsbackup = new StreamWriter(MySettings.LogFilePath + @"\Backup" + bckupFileName.Substring(0, bckupFileName.Length - 4) + ".bat"); - fsbackup.WriteLine(bckupcmd); - fsbackup.WriteLine(pause); - fsbackup.Close(); - StreamWriter fsrestore = new StreamWriter(MySettings.LogFilePath + @"\Restore" + bckupFileName.Substring(0, bckupFileName.Length - 4) + ".bat"); - fsrestore.WriteLine(rstorecmd); - fsrestore.WriteLine(pause); - fsrestore.Close(); - } - // Menu Items - #region File Menu Items - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - #endregion - #region Process Menu Items - private bool _ProcessFailed = false; - public bool ProcessFailed - { - get { return _ProcessFailed; } - set { _ProcessFailed = value; } - } - private bool _ProcessComplete = false; - public bool ProcessComplete - { - get { return _ProcessComplete; } - set { _ProcessComplete = value; } - } - static bool ChangeLogFileName(string AppenderName, string NewFilename) - { - log4net.Repository.ILoggerRepository RootRep; - RootRep = log4net.LogManager.GetRepository(); - foreach (log4net.Appender.IAppender iApp in RootRep.GetAppenders()) - { - if (iApp.Name.CompareTo(AppenderName) == 0 - && iApp is log4net.Appender.FileAppender) - { - log4net.Appender.FileAppender fApp = (log4net.Appender.FileAppender)iApp; - string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); - fApp.File = folderPath + @"\VEPROMS\" + NewFilename; - fApp.ActivateOptions(); - return true; // Appender found and name changed to NewFilename - } - } - return false; - } - private void completeToolStripMenuItem_Click(object sender, EventArgs e) - { - ChildrenProcessed = 0; - ProcessFailed = false; - ProcessComplete = true; - ProcessTime = DateTime.Now; - MessageBuilder mb = new MessageBuilder("Performing Complete Process\r\n"); - // Phase 1 - Convert dBase to SQL - btnConvert_Click(this, new System.EventArgs()); - if (ProcessFailed) return; - if (ChildrenProcessed == 0 && !createEmptyPROMS) - { - MessageBox.Show("No children found to convert. Check vlnControl.xml file. Process complete"); - return; - } - mb.Append("dBase Conversion Complete"); - Status = "Backing up Phase 1 Data"; - Backup("_" + MySettings.Phase1Suffix); - mb.Append("Phase 1 Backup Complete"); - // Phase 2 - Fix Transitions - if (!createEmptyPROMS) - { - btnFixTransitions_Click(this, new System.EventArgs()); - mb.Append("Fix Transtions Complete"); - } - Status = "Backing up Phase 2 Data"; - Backup("_" + MySettings.Phase2Suffix); - mb.Append("Phase 2 Backup Complete"); - // only do the following two steps if we are NOT appending to an existing set - if (PurgeExistingData) - { - // Phase 3 - Convert to Change Manager Version - if (!ConvertToChangeManager()) return; - mb.Append("Conversion to Change Manager Complete"); - Status = "Backing up Phase 3 Data"; - Backup("_" + MySettings.Phase3Suffix); - mb.Append("Phase 3 Backup Complete"); - //Phase 4 - Convert to Approval Version - if (!ConvertToApproval()) return; - mb.Append("Conversion to Approval Complete"); - } - if(!FixProceduresAndFunctions()) return; - mb.Append("FixProceduresAndFunctions Complete"); - if (MySettings.LoadApproved && !createEmptyPROMS) - { - Status = "Backing up Phase 4 Data"; - Backup("_" + MySettings.Phase4Suffix); - mb.Append("Phase 4 Backup Complete"); - //Phase 5 - Load Approved Data - LoadApprovedData(); - mb.Append("Conversion of Approved Data Complete"); - } - Status = "Backing up Data"; - Backup(""); - mb.Append("Backup Complete"); - mb.LastTime = ProcessTime; // Reset time to get total time. - mb.Append("Processing Complete"); - Status = "Processing Complete"; - ProcessComplete = false; - //Clipboard.Clear(); - //Clipboard.SetText(mb.ToString()); - AddInfo(mb.ToString()); - if (!Automatic) - MessageBox.Show(mb.ToString(), "Processing Complete", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private bool ConvertToChangeManager() - { - return RunScript("PROMStoCM.sql", DBName); - } - private bool ConvertToApproval() - { - return RunScript("PROMStoAPPR.sql", DBName); - } - private void formatOnlyToolStripMenuItem_Click(object sender, EventArgs e) - { - ProcessTime = DateTime.Now; - FormatsOnly = true; - btnConvert_Click(this, new System.EventArgs()); - if (ProcessFailed) return; - MyInfo = "Format Load Complete"; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Format Change Data"; - Backup("_" + "FormatChange"); - MyInfo = "Format Change Backup Complete"; - } - //Status = "Format Change Complete"; - //MessageBox.Show("Format Change Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void convertDBToolStripMenuItem_Click(object sender, EventArgs e) - { - ProcessTime = DateTime.Now; - RunScript("vesp_TurnChangeManagerOFF"); - btnConvert_Click(this, new System.EventArgs()); - RunScript("vesp_TurnChangeManagerON"); - if (ProcessFailed) return; - MyInfo = "dBase Conversion Complete"; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Phase 1 Data"; - Backup("_" + MySettings.Phase1Suffix); - MyInfo = "Phase 1 Backup Complete"; - } - //Status = "dBase Conversion Complete"; - //MessageBox.Show("dBase Conversion Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void fixTransitionsToolStripMenuItem_Click(object sender, EventArgs e) - { - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - ProcessTime = DateTime.Now; - RunScript("vesp_TurnChangeManagerOFF"); - btnFixTransitions_Click(this, new System.EventArgs()); - RunScript("vesp_TurnChangeManagerON"); - MyInfo = "Fix Transtions Complete"; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Phase 2 Data"; - Backup("_" + MySettings.Phase2Suffix); - MyInfo = "Phase 2 Backup Complete"; - } - Status = "Fix Transtions Complete"; - MessageBox.Show("Fix Transtions Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void convertToChangeManagerToolStripMenuItem_Click(object sender, EventArgs e) - { - ProcessTime = DateTime.Now; - if(!ConvertToChangeManager()) return; - MyInfo = "Conversion to Change Manager Complete"; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Phase 3 Data"; - Backup("_" + MySettings.Phase3Suffix); - MyInfo = "Phase 3 Backup Complete"; - } - //Status = "Conversion to Change Manager Complete"; - //MessageBox.Show("Conversion to Change Manager Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void convertToApprovalToolStripMenuItem_Click(object sender, EventArgs e) - { - ProcessTime = DateTime.Now; - if(!ConvertToApproval()) return; - MyInfo = "Conversion to Approval Complete"; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Phase 4 Data"; - Backup("_" + MySettings.Phase4Suffix); - MyInfo = "Phase 4 Backup Complete"; - } - //Status = "Conversion to Approval Complete"; - //MessageBox.Show("Conversion to Approval Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void load16BitApprovalToolStripMenuItem_Click(object sender, EventArgs e) - { - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - ProcessTime = DateTime.Now; - if (LoadApprovedData()) - { - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Data"; - Backup(""); - MyInfo = "Backup Complete"; - } - Status = "Processing Complete"; - } - else - Status = "Loading 16 Bit Approval Data Failed"; - //MessageBox.Show("Loading 16 Bit Approval Data Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private bool LoadApprovedData() - { - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - Status = "Converting 16-Bit Approved Data"; - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - bool ok = ldr.BuildApprovedRevision(); - Status = "Conversion " + (ok ? "Succeeded" : "Failed"); - return ok; - } - private void fixesToolStripMenuItem_Click(object sender, EventArgs e) - { - if (!FixProceduresAndFunctions()) return; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Data"; - Backup("_Fixed"); - MyInfo = "Backup Complete"; - } - //Status = "Processing Complete"; - //MessageBox.Show("Fixed Stored Procedures", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private bool FixProceduresAndFunctions() - { - return RunScript("PROMSFixes.sql", DBName); - } - #endregion - #region Settings Menu Items - private void settingsToolStripMenuItem_Click(object sender, EventArgs e) - { - OpenSettings(); - } - #endregion - #region Old Menu Items - private void convertSecurityToolStripMenuItem_Click(object sender, EventArgs e) - { - btnVesam_Click(this, new EventArgs()); - } - private void convertTopFoldersToolStripMenuItem_Click(object sender, EventArgs e) - { - btnLoadTreeDB_Click(this, new EventArgs()); - } - private void loadTreeFromCSLAToolStripMenuItem_Click(object sender, EventArgs e) - { - btnLoadTreeCSLA_Click(this, new EventArgs()); - } - private void loadVETreeFromCSLAToolStripMenuItem_Click(object sender, EventArgs e) - { - btnVETree_CSLA_Click(this, new EventArgs()); - } - private void groupSecurityToolStripMenuItem_Click(object sender, EventArgs e) - { - btnGroup_Click(this, new EventArgs()); - } - private void countTokensToolStripMenuItem_Click(object sender, EventArgs e) - { - btnCtTok_Click(this, new EventArgs()); - } - private void convertDbfSelectedInTreeToolStripMenuItem_Click(object sender, EventArgs e) - { - btnConvertSelected_Click(this, new EventArgs()); - } - #endregion - - private void approvalDatabasesToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Cursor = Cursors.WaitCursor; - //MySettings.ConnectionString - //"{DBName}", dbName - string tmp = MySettings.ConnectionString.Replace("{DBName}", "master"); - SqlConnection cn = new SqlConnection(tmp); - cn.Open(); - SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id(name + '..Items') is null then 'Not PROMS' when object_id(name + '..Revisions') is not null then 'Approval' when object_id(name + '..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - DataSet ds = new DataSet(); - da.Fill(ds); - cn.Close(); - List cms = new List(); - StringBuilder sb = new StringBuilder(); - sb.Append("The following databases will be fixed...\r\n"); - foreach (DataRow dr in ds.Tables[0].Rows) - { - if (dr["functionality"].ToString() == "Approval") - { - cms.Add(dr["name"].ToString()); - sb.Append("\r\n " + dr["name"].ToString()); - } - } - this.Cursor = Cursors.Default; - if (MessageBox.Show(sb.ToString(), "Data Loader Fixes", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) - { - int good = 0; - int bad = 0; - foreach (string s in cms) - { - AddInfo("\r\nFixing database {0}\r\n", s); - if (RunScript("PROMSFixes.sql", s)) good++; - else bad++; - } - AddInfo("\r\nFixing databases complete. {0} Fixed, {1} Failures", good, bad); - Status = String.Format("Fixing databases complete. {0} Fixed, {1} Failures", good, bad); - } - } - - private void updateFormatsToolStripMenuItem_Click(object sender, EventArgs e) - { - MessageBox.Show("Can't get this to work yet"); - //this.Cursor = Cursors.WaitCursor; - ////MySettings.ConnectionString - ////"{DBName}", dbName - //string tmp = MySettings.ConnectionString.Replace("{DBName}", "master"); - //SqlConnection cn = new SqlConnection(tmp); - //cn.Open(); - //SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id(name + '..Items') is null then 'Not PROMS' when object_id(name + '..Revisions') is not null then 'Approval' when object_id(name + '..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - //DataSet ds = new DataSet(); - //da.Fill(ds); - //cn.Close(); - //List cms = new List(); - //StringBuilder sb = new StringBuilder(); - //sb.Append("Formats will be updated in the following databases ...\r\n"); - //foreach (DataRow dr in ds.Tables[0].Rows) - //{ - // if (dr["functionality"].ToString() == "Approval") // get only the databases with Approval fnctionality - // { - // cms.Add(dr["name"].ToString()); - // sb.Append("\r\n " + dr["name"].ToString()); - // } - //} - //this.Cursor = Cursors.Default; - //if (MessageBox.Show(sb.ToString(), "Format Updates", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) - //{ - // int good = 0; - // int bad = 0; - // string saveDbName = DBName; - // foreach (string s in cms) - // { - // try - // { - // AddInfo("\r\nUpdating Formats in database {0}\r\n", s); - // DBName = s; - // Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", s); - // Format.UpdateFormats(MySettings.FormatFolder, MySettings.GenMacFolder); - // Database.VEPROMS_SqlConnection.Close(); - // //RunScript("PROMSFixes.sql", s); - // good++; - // } - // catch (Exception ex) - // { - // AddInfo("====****===="); - // AddError(ex, "While Updating Formats for database {0}", s); - // AddInfo("====****===="); - // bad++; - // } - // } - // DBName = saveDbName; - // AddInfo("\r\nUpdating Formats in databases complete. {0} Fixed, {1} Failures", good, bad); - // Status = String.Format("Updating Formats in databases complete. {0} Fixed, {1} Failures", good, bad); - //} - - } - private void fixROValuesToolStripMenuItem_Click(object sender, EventArgs e) - { - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - ROFixer myRoFixer = new ROFixer(MySettings.LogFilePath,this); - myRoFixer.StatusChanged += new ROFixerEvent(myRoFixer_StatusChanged); - TimeSpan howlong = myRoFixer.Process(); - string RoFixTime = string.Format("Fix RO Values completion time: {0:D2}:{1:D2}:{2:D2}.{3}", howlong.Hours, howlong.Minutes, howlong.Seconds, howlong.Milliseconds); - MyInfo = RoFixTime; - } - - void myRoFixer_StatusChanged(object sender, ROFixerEventArgs args) - { - Status = args.MyStatus; - } - - public bool createEmptyPROMS = false; - private void createEmptyPROMSDatabaseToolStripMenuItem_Click(object sender, EventArgs e) - { - createEmptyPROMS = true; - completeToolStripMenuItem_Click(sender, e); - createEmptyPROMS = false; - } - - private void loadTreeToolStripMenuItem_Click(object sender, EventArgs e) - { - tv.CheckBoxes = false; - tv.Nodes.Clear(); - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - - FolderInfo fi = FolderInfo.GetTop(); - TreeNode tn = tv.Nodes.Add(fi.Name); - tn.Tag = fi; - if (fi.ChildFolderCount > 0) - LoadChildFolders(fi, tn); - //if (myTV.SelectedNode != null) - // myTV.SelectedNode.Expand(); - - } - private void LoadChildFolders(FolderInfo fi, TreeNode tn) - { - foreach (FolderInfo fic in fi.ChildFolders) - { - TreeNode tnc = tn.Nodes.Add(fic.Name); - tnc.Tag = fic; - if (fic.ChildFolderCount > 0) - LoadChildFolders(fic, tnc); - if (fic.FolderDocVersionCount > 0) - LoadDocVersions(fic, tnc); - } - } - private void LoadDocVersions(FolderInfo fic, TreeNode tnc) - { - foreach (DocVersionInfo dvi in fic.FolderDocVersions) - { - TreeNode tn = tnc.Nodes.Add(dvi.Name); - tn.Tag = dvi; - if (dvi.Procedures.Count > 0) - LoadProcedures(dvi, tn); - } - } - private void LoadProcedures(DocVersionInfo dvi, TreeNode tnc) - { - foreach (ProcedureInfo pi in dvi.Procedures) - { - TreeNode tn = tnc.Nodes.Add(pi.DisplayNumber); - tn.Tag = pi; - } - } - - private void fixROsToolStripMenuItem1_Click(object sender, EventArgs e) - { - TreeNode tn = tv.SelectedNode; - if (tn.Tag is ProcedureInfo) - { - ProcedureInfo pi = tn.Tag as ProcedureInfo; - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - ROFixer myRoFixer = new ROFixer(MySettings.LogFilePath, this); - myRoFixer.StatusChanged += new ROFixerEvent(myRoFixer_StatusChanged); - TimeSpan howlong = myRoFixer.Process(pi); - string RoFixTime = string.Format("Fix RO Values completion time: {0:D2}:{1:D2}:{2:D2}.{3}", howlong.Hours, howlong.Minutes, howlong.Seconds, howlong.Milliseconds); - MyInfo = RoFixTime; - } - else if (tn.Tag is DocVersionInfo) - { - DocVersionInfo dvi = tn.Tag as DocVersionInfo; - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - ROFixer myRoFixer = new ROFixer(MySettings.LogFilePath, this); - myRoFixer.StatusChanged += new ROFixerEvent(myRoFixer_StatusChanged); - TimeSpan howlong = myRoFixer.Process(dvi); - string RoFixTime = string.Format("Fix RO Values completion time: {0:D2}:{1:D2}:{2:D2}.{3}", howlong.Hours, howlong.Minutes, howlong.Seconds, howlong.Milliseconds); - MyInfo = RoFixTime; - } - //else if (tn.Tag is FolderInfo) - //{ - // FolderInfo fi = tn.Tag as FolderInfo; - //} - } - - private void exportDataToolStripMenuItem_Click(object sender, EventArgs e) - { - TreeNode tn = tv.SelectedNode; - if (tn.Tag is FolderInfo) - { - FolderInfo fi = tn.Tag as FolderInfo; - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - dlgExportImport dlg = new dlgExportImport("export", fi); - dlg.ShowDialog(this); - } - } - - private void importDataToolStripMenuItem_Click(object sender, EventArgs e) - { - TreeNode tn = tv.SelectedNode; - if (tn.Tag is FolderInfo) - { - FolderInfo fi = tn.Tag as FolderInfo; - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - dlgExportImport dlg = new dlgExportImport("import", fi); - dlg.ShowDialog(this); - } - loadTreeToolStripMenuItem_Click(sender, e); - } - - private void exportProcedureOnlyToolStripMenuItem_Click(object sender, EventArgs e) - { - TreeNode tn = tv.SelectedNode; - if (tn.Tag is ProcedureInfo) - { - ProcedureInfo pi = tn.Tag as ProcedureInfo; - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", DBName); - dlgExportImport dlg = new dlgExportImport("export", pi); - dlg.ShowDialog(this); - } - } - - private void importProcedureOnlyToolStripMenuItem_Click(object sender, EventArgs e) - { - - } - - - } - public class MessageBuilder - { - private StringBuilder _MyStringBulider = new StringBuilder(); - private DateTime _LastTime = DateTime.Now; - public DateTime LastTime - { - get { return _LastTime; } - set { _LastTime = value; } - } - public MessageBuilder(string heading) - { - _MyStringBulider.Append(heading); - } - public void Append(string format, params object[] args) - { - string msg = string.Format(format, args); - DateTime now = DateTime.Now; - TimeSpan ts = TimeSpan.FromTicks(now.Ticks - _LastTime.Ticks); - string timestamp = string.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds); - _LastTime = now; - GC.Collect(); - long memUse = GC.GetTotalMemory(true); - _MyStringBulider.Append("\r\n" + timestamp + "\t" + memUse.ToString() + "\t" + msg); - } - public override string ToString() - { - return _MyStringBulider.ToString(); - } - } -} diff --git a/PROMS/DataLoader/frmLoader.cs.bak b/PROMS/DataLoader/frmLoader.cs.bak deleted file mode 100644 index 23292af3..00000000 --- a/PROMS/DataLoader/frmLoader.cs.bak +++ /dev/null @@ -1,1190 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== -using System; -using System.Drawing; -using System.Collections; -using System.Configuration; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Xml; -using System.IO; -using System.Text; -using Volian.MSWord; -using vlnObjectLibrary; -using vlnServerLibrary; -using VEPROMS.CSLA.Library; -using Config; -using Volian.Controls.Library; -using Volian.Base.Library; -using System.Data.SqlClient; - - -[assembly: log4net.Config.XmlConfigurator(Watch = true)] - -namespace DataLoader -{ - public partial class frmLoader : Form - { - #region Log4Net - public static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region settings - private bool _FormatsOnly = false; - public bool FormatsOnly - { - get { return _FormatsOnly; } - set { _FormatsOnly = value; } - } - #endregion - private bool _Loading = true; - - private FolderTreeNode _topnode; - private bool UseVeTree = false; - private Loader ldr; - public TreeView TV { get { return tv; } } - public int pbProcMaximum { get { return pbProc.Maximum; } set { pbProc.Maximum = value; } } - public int pbSectMaximum { get { return pbSect.Maximum; } set { pbSect.Maximum = value; } } - public int pbSectValue { get { return pbSect.Value; } set { pbSect.Value = value; } } - public int pbStepMaximum { get { return pbStep.Maximum; } set { pbStep.Maximum = value; } } - public int pbStepValue { get { return pbStep.Value; } set { pbStep.Value = value; } } - public int pbProcValue { get { return pbProc.Value; } set { pbProc.Value = value; } } - public int SkipProcedures - { - get { return MySettings.Skip; } - } - public string Status - { - get { return toolStripStatusLabel1.Text; } - set - { - toolStripStatusLabel1.Text = value; - Application.DoEvents(); - } - } - private int _ChildrenProcessed; - public int ChildrenProcessed - { - get { return _ChildrenProcessed; } - set { _ChildrenProcessed = value; } - } - private frmErrors _MyFrmErrors = null; - public frmErrors MyFrmErrors - { - get - { - if (_MyFrmErrors == null) - { - _MyFrmErrors = new frmErrors(this); - _MyFrmErrors.FormClosing += new FormClosingEventHandler(_MyFrmErrors_FormClosing); - } - return _MyFrmErrors; - } - } - void _MyFrmErrors_FormClosing(object sender, FormClosingEventArgs e) - { - _MyFrmErrors = null; - } - public string MyError - { - get { return tsslError.Text; } - set - { - MyFrmErrors.Add(value, MessageType.Error); - _MyLog.ErrorFormat(value); - tsslError.Text = string.Format("{0} Errors", MyFrmErrors.ErrorCount); - } - } - public string MyWarning - { - get { return tsslError.Text; } - set - { - MyFrmErrors.Add(value, MessageType.Warning); - _MyLog.WarnFormat(value); - //tsslError.Text = string.Format("{0} Errors", MyFrmErrors.ErrorCount); - } - } - public string MyInfo - { - get { return tsslError.Text; } - set - { - MyFrmErrors.Add(value, MessageType.Information); - _MyLog.Info(value); - //tsslError.Text = string.Format("{0} Errors", MyFrmErrors.ErrorCount); - } - } - public void AddError(string format, params object[] objs) - { - MyError = string.Format(format, objs); - } - public void AddWarn(string format, params object[] objs) - { - MyWarning = string.Format(format, objs); - } - public void AddInfo(string format, params object[] objs) - { - MyInfo = string.Format(format, objs); - } - public void AddError(Exception ex, string format, params object[] objs) - { - StringBuilder sb = new StringBuilder(string.Format(format, objs)); - int indent = 0; - while (ex != null) - { - sb.Append("\r\n" + "".PadRight((++indent) * 2, ' ') + string.Format("{0} - {1}", ex.GetType().Name, ex.Message)); - sb.Append(ex.StackTrace); - ex = ex.InnerException; - } - MyError = sb.ToString(); - } - - public frmLoader() - { - ldr = new Loader(_MyLog, this); - InitializeComponent(); - MSWordToPDF.FormForPlotGraphics = this; - lblTime.Tag = DateTime.Now; - } - private void btnConvertSelected_Click(object sender, EventArgs e) - { - if (UseVeTree) - { - VETreeNode tn = (VETreeNode)tv.SelectedNode; - if (tn == null) - { - MessageBox.Show("Must select a version node (working draft, approved, etc)", "No Node Selected"); - return; - } - object o = tn.VEObject; - if (o.GetType() != typeof(DocVersionInfo)) - { - MessageBox.Show("Must select a version node (working draft, approved, etc)", "No Node Selected"); - return; - } - DocVersion v = ((DocVersionInfo)o).Get(); - ldr.MigrateDocVersion(v); - if (v.MyItem != null) - { - tn.Checked = true; - } - - } - else - { - TreeNode tn = tv.SelectedNode; - if (tn == null) - { - MessageBox.Show("Must select a version node (working draft, approved, etc)", "No Node Selected"); - return; - } - object o = tn.Tag; - if (o.GetType() != typeof(DocVersion)) - { - MessageBox.Show("Must select a version node (working draft, approved, etc)", "No Node Selected"); - return; - } - DocVersion v = (DocVersion)o; - ldr.MigrateDocVersion(v); - if (v.MyItem != null) - { - tn.Checked = true; - } - } - } - private void tv_BeforeExpand(object sender, TreeViewCancelEventArgs e) - { - if (UseVeTree) - { - ((VETreeNode)e.Node).LoadChildren(); - return; - } - - TreeNode tn = e.Node; - object o = tn.Tag; - switch (o.GetType().ToString()) - { - case "Volian.CSLA.Library.FolderInfo": - FolderInfo fld = (FolderInfo)o; - if (fld.ChildFolderCount > 0) - tn.Checked = ldr.LoadChildren(fld, tn); // load docversions. - break; - default: - break; - } - } - private void tv_AfterSelect(object sender, TreeViewEventArgs e) - { - if (UseVeTree) return; - - TreeNode tn = e.Node; - object o = tn.Tag; - tn.Expand(); - if (o.GetType() == typeof(DocVersion)) MySettings.ProcedureSetPath = ((DocVersion)o).Title; - } - private void btnLoadTreeDB_Click(object sender, EventArgs e) - { - // When loading folders, i.e. the tree from dBase (old 16-bit) - // always clear the data - ldr.ClearData(); - bool suc = ldr.LoadFolders(MySettings.VEPromsPath); - } - private string GetScript(string scriptName) - { - StreamReader sr = File.OpenText(Application.StartupPath + "\\" + scriptName); - string myScript = sr.ReadToEnd(); - sr.Close(); - return myScript; - } - private DateTime _ProcessTime; - public DateTime ProcessTime - { - get { return _ProcessTime; } - set - { - _ProcessTime = value; - // Set the Log File Name when the ProcessTime is set - ChangeLogFileName("LogFileAppender", MySettings.DBName + " " + ProcessTime.ToString("yyyyMMdd HHmmss") + " DMErrorLog.txt"); - } - } - private void btnConvert_Click(object sender, System.EventArgs e) - { - // Set Connection String - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", MySettings.DBName); - // Setup based upon RedPDF Setting - // if in debug mode, pdf output is red - VlnSettings.DebugMode = (MySettings.ExecutionMode == ExecutionMode.Debug) && MySettings.RedPDFs; - if (VlnSettings.DebugMode) // Debug Mode - { - MSWordToPDF.DebugStatus = 1; - Loader.OverrideColor = Color.Red; - } - else - { - MSWordToPDF.DebugStatus = 0; - Loader.OverrideColor = Color.Empty; - } - //if (!CheckLogPath()) return; - //#if (!DEBUG) - if (!VlnSettings.DebugMode) - { - DialogResult dlgrst = MessageBox.Show("The VE-PROMS data currently in SQL Server (Express) will be deleted.\r\n\nProceed with Data Conversion?", "WARNING", MessageBoxButtons.YesNo, MessageBoxIcon.Warning); - if (dlgrst == DialogResult.No) return; - } - //#endif - try - { - //TextConvert.ResetSpecialCharacters(); - //MyFrmErrors.Clear(); - System.Diagnostics.Process[] wordProcesses = WordDoc.WordProcesses; - if (!FormatsOnly && wordProcesses.Length > 0) - { - AddError("{0} copies of MS Word are running", wordProcesses.Length); - if (MessageBox.Show("MS Word is Running and must be stopped before proceeding.\n\nStop MS Word?", "MS Word is Running", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - WordDoc.TerminateProcesses(wordProcesses); - MyFrmErrors.Clear(); - } - else - return; - } - Database.LoggingInfo = false; - bool success = true; - if (FormatsOnly) - { - // ASSUMES No Formats/genmacs exist in database. - //MessageBox.Show(@"Format files are taken from c:\development\fmtall"); - //ldr._FmtAllPath = @"c:\development\fmtall"; - //ldr._GenmacAllPath = @"c:\development\genmacall"; - Format.UpdateFormats(MySettings.FormatFolder, MySettings.GenMacFolder); - //Format.UpdateFormats(@"c:\development\fmtall",@"c:\development\genmacall"); //ldr.LoadAllFormats(); - MessageBox.Show("Formats Loaded"); - return; - } - // Create Database - - // if purge data, purge it all & reload folders & security. - if (MySettings.PurgeExistingData) - { - if(!RunScript("BuildVEPROMS.Sql", "Master")) return; - if(!RunScript("PROMS2010.SQL", MySettings.DBName)) return; - Status = "Purging Data"; - ldr.ClearData(); - Status = "Loading Folders"; - success = ldr.LoadFolders(MySettings.VEPromsPath); - if (success) - { - Status = "Loading Security"; - success = ldr.LoadSecurity(MySettings.VESamFile, MySettings.VEPromsPath); - } - } - else - { - // check if images have been zipped & if not, zip them: - ROImageInfo.ZipImages(); - success = ldr.LoadFoldersIntoExisting(MySettings.VEPromsPath); - } - if (createEmptyPROMS) return; - if (success) - { - TimeSpan ts = new TimeSpan(); - DocVersionInfoList vl = DocVersionInfoList.Get(); - //DocVersion v = null; - MyInfo = "Computer Name: " + SystemInformation.ComputerName.ToUpper(); - foreach (DocVersionInfo vi in vl) - { - if (!MySettings.OnlyThisSet || (vi.Title.ToUpper() == MySettings.ProcedureSetPath.ToUpper())) // is this the procedure set we want to convert? - { - using (DocVersion v = DocVersion.Get(vi.VersionID)) - { - //v = DocVersion.Get(vi.VersionID); - Status = "Load " + v.Title + " - " + v.Name; - lblCurSetFolder.Text = v.Title; - lblCurSetFolder.Visible = true; - lblProcessing.Visible = true; - MyInfo = "Data Set: " + v.Title; - ts += ldr.MigrateDocVersion(v, true); - } - } - } - string ConversionTime = string.Format("Conversion completion time: {0:D2}:{1:D2}:{2:D2}.{3}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds); - MyInfo = ConversionTime; - SaveLogFiles(); - if (!ProcessComplete) MessageBox.Show(string.Format("{0}\r\n\n({1} Total Seconds)", ConversionTime, ts.TotalSeconds)); - //MessageBox.Show(string.Format("Conversion completion time: {0:D2}:{1:D2}:{2:D2}.{3}\r\n\n({4} Total Seconds)", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds, ts.TotalSeconds)); - //MessageBox.Show(string.Format("{0} seconds", ts.TotalSeconds)); - //TextConvert.ListSpecialCharacters(); - } - } - catch (Exception ex) - { - AddError(ex, "===================== Fatal Error ==========================\r\n{0} - {1}", ex.GetType().Name, ex.Message); - SaveLogFiles(); - MessageBox.Show(ex.Message, "Fatal Error During Loading", MessageBoxButtons.OK, MessageBoxIcon.Error); - _MyLog.Fatal(ex.Message); - } - } - public bool RunScript(string scriptName, string dbName) - { - bool ok = false; - Status = String.Format("Running Script '{0}'", scriptName); - string script = GetScript(scriptName); - script = script.Replace("{DBName}", MySettings.DBName); - script = script.Replace("{DBPath}", MySettings.DBPath); - SQLScriptRunner ssr = new SQLScriptRunner(script, MySettings.ConnectionString.Replace("{DBName}", dbName)); - ssr.InfoMessage += new SQLScriptRunnerEvent(ssr_InfoMessage); - try - { - AddInfo("Running Script '{0}'", scriptName); - ssr.Run(); - Status = String.Format("Script '{0}' Complete", scriptName); - ok = true; - } - catch (Exception ex) - { - AddInfo("====****===="); - AddError(ex, "While processing database {0}", dbName); - AddInfo("====****===="); - Status = String.Format("Script '{0}' Failed", scriptName); - } - return ok; - } - public bool RunScript(string script) - { - bool ok = false; - Status = String.Format("Running {0}", script); - script = script.Replace("{DBName}", MySettings.DBName); - script = script.Replace("{DBPath}", MySettings.DBPath); - SQLScriptRunner ssr = new SQLScriptRunner(script, MySettings.ConnectionString.Replace("{DBName}", MySettings.DBName)); - ssr.InfoMessage += new SQLScriptRunnerEvent(ssr_InfoMessage); - try - { - ssr.Run(); - Status = "Script Complete"; - ok = true; - } - catch (Exception ex) - { - AddInfo("====****===="); - AddError(ex, "While processing database {0}", MySettings.DBName); - AddInfo("====****===="); - Status = String.Format("Script {0} Failed", script); - } - return ok; - } - private void Backup(string suffix) - { - SQLScriptRunner ssrbu = new SQLScriptRunner(MySettings.DBName, MySettings.BackupFolder, - MySettings.ConnectionString.Replace("{DBName}", "Master"), ProcessTime, suffix); - ssrbu.InfoMessage += new SQLScriptRunnerEvent(ssr_InfoMessage); - ssrbu.Run(); - } - void ssr_InfoMessage(object sender, System.Data.SqlClient.SqlInfoMessageEventArgs args) - { - MyInfo = args.Message; - } - private bool _ShowSections = false; - public bool ShowSections - { - get { return _ShowSections; } - set { _ShowSections = value; } - } - public void UpdateLabels(int incPrc, int incSec, int incStp) - { - if (incPrc == 0 && incSec == 0 && incStp == 0)//Reset - { - pbProc.Value = 0; - pbSect.Value = 0; - pbStep.Value = 0; - } - else - { - try - { - pbProc.Value += incPrc; - pbSect.Value += incSec; - pbStep.Value += incStp; - } - catch (Exception ex) - { - _MyLog.ErrorFormat("{0}\r\n\r\n{1}", ex.Message, ex.InnerException); - AddError(ex, "UpdateLabels"); - } - } - //Database.LoggingInfo = (pbProc.Value > 153 && pbSect.Value > 11 && pbStep.Value > 61); - lblProc.Text = string.Format("{0}/{1} Procedures", pbProc.Value, pbProc.Maximum); - if (ShowSections) - { - lblSection.Text = string.Format("{0}/{1} Sections", pbSect.Value, pbSect.Maximum); - lblStep.Text = string.Format("{0}/{1} Steps", pbStep.Value, pbStep.Maximum); - } - else - { - lblSection.Text = ""; - lblStep.Text = ""; - } - //pbProc.Value = iPrc; - //pbSect.Value = iSec; - //pbStep.Value = iStp; - TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - ProcessTime.Ticks); - lblTime.Text = string.Format("{0:D2}:{1:D2}:{2:D2} Elapsed", ts.Hours, ts.Minutes, ts.Seconds); - Application.DoEvents(); - } - private void btnLoadTreeCSLA_Click(object sender, EventArgs e) - { - _topnode = FolderTreeNode.BuildTreeList(); - tv.Nodes.Add(_topnode); - tv.Nodes[0].Expand(); - UseVeTree = false; - } - private void btnVesam_Click(object sender, EventArgs e) - { - // if purge data, purge it all & reload folders. - if (MySettings.PurgeExistingData) - { - ldr.ClearData(); - ldr.LoadFolders(MySettings.VEPromsPath); - } - bool sec = ldr.LoadSecurity(MySettings.VESamFile, MySettings.VEPromsPath); - } - - private void btnVETree_CSLA_Click(object sender, EventArgs e) - { - tv.Nodes.Add(VETreeNode.GetFolder(1)); - UseVeTree = true; - } - - private void btnGroup_Click(object sender, EventArgs e) - { - GroupProp f = new GroupProp(); - f.ShowDialog(); - } - - private void btnCtTok_Click(object sender, EventArgs e) - { - frmCntTkn frm = new frmCntTkn(); - frm.ShowDialog(); - } - public void UpdateLabelsSetProc(int prc) - { - pbProc.Maximum = prc; - } - public void UpdateLabelsSetSect(int sec) - { - pbSect.Maximum = sec; - } - public void UpdateLabelsLibDocs(int incLib, int incUsages) - { - if (incLib == 0 && incUsages == 0)//Reset - { - pbProc.Value = 0; - pbSect.Value = 0; - } - else - { - pbProc.Value += incLib; - pbSect.Value += incUsages; - } - lblProc.Text = string.Format("{0}/{1} Lib Docs", pbProc.Value, pbProc.Maximum); - lblSection.Text = string.Format("{0}/{1} Usages", pbSect.Value, pbSect.Maximum); - lblStep.Text = ""; - TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - ProcessTime.Ticks); - lblTime.Text = string.Format("{0:D2}:{1:D2}:{2:D2} Elapsed", ts.Hours, ts.Minutes, ts.Seconds); - Application.DoEvents(); - } - public void UpdateLabelsImages(int incImages) - { - if (incImages == 0)//Reset - pbProc.Value = 0; - else - pbProc.Value += incImages; - lblProc.Text = string.Format("{0}/{1} Images", pbProc.Value, pbProc.Maximum); - lblSection.Text = ""; - lblStep.Text = ""; - TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - ProcessTime.Ticks); - lblTime.Text = string.Format("{0:D2}:{1:D2}:{2:D2} Elapsed", ts.Hours, ts.Minutes, ts.Seconds); - Application.DoEvents(); - } - public void UpdateLabelsFormats(int incFormats) - { - if (incFormats == 0)//Reset - pbProc.Value = 0; - else - pbProc.Value += incFormats; - lblProc.Text = string.Format("{0}/{1} Formats", pbProc.Value, pbProc.Maximum); - lblSection.Text = ""; - lblStep.Text = ""; - TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - ProcessTime.Ticks); - lblTime.Text = string.Format("{0:D2}:{1:D2}:{2:D2} Elapsed", ts.Hours, ts.Minutes, ts.Seconds); - Application.DoEvents(); - } - private DataLoaderSettings _MySettings; - internal DataLoaderSettings MySettings - { - get - { - if (_MySettings == null) - _MySettings = new DataLoaderSettings(); - return _MySettings; - } - set { _MySettings = value; } - } - private void LoadSettings() - { - Console.WriteLine("Start"); - if (Properties.Settings.Default["VePromsFilename"].ToString() != "") - MySettings.VEPromsPath = Properties.Settings.Default.VePromsFilename; - if (Properties.Settings.Default["VeSamFilename"].ToString() != "") - MySettings.VESamFile = Properties.Settings.Default.VeSamFilename; - if (Properties.Settings.Default["DbfPathname"].ToString() != "") - MySettings.ProcedureSetPath = Properties.Settings.Default.DbfPathname; - if (Properties.Settings.Default["ProcessOnlyInLocation"].ToString() != "") - MySettings.ProcessOnlyInLocation = Properties.Settings.Default.ProcessOnlyInLocation; - if (Properties.Settings.Default["BackupFileName"].ToString() != "") - MySettings.BackupFileName = Properties.Settings.Default.BackupFileName; - if (Properties.Settings.Default["BackupFolder"].ToString() != "") - MySettings.BackupFolder = Properties.Settings.Default.BackupFolder; - if (Properties.Settings.Default["LogFileLoc"].ToString() != "") - MySettings.LogFilePath = Properties.Settings.Default.LogFileLoc; - if (Properties.Settings.Default["ConnectionString"].ToString() != "") - MySettings.ConnectionString = Properties.Settings.Default.ConnectionString; - if (Properties.Settings.Default["DBName"].ToString() != "") - MySettings.DBName = Properties.Settings.Default.DBName; - if (Properties.Settings.Default["DBPath"].ToString() != "") - MySettings.DBPath = Properties.Settings.Default.DBPath; - MySettings.PurgeExistingData = (Properties.Settings.Default.PurgeData == CheckState.Checked); - if (Properties.Settings.Default["PDFFolder"].ToString() != "") - MySettings.PDFFolder = Properties.Settings.Default.PDFFolder; - MySettings.OnlyThisSet = (Properties.Settings.Default.OnlyThisSet == CheckState.Checked); - MySettings.CheckRTF = (Properties.Settings.Default.CheckRTF == CheckState.Checked); - MySettings.Skip = Properties.Settings.Default.Skip; - MySettings.ConvertTo = (AccPageConversion)Properties.Settings.Default.ConvertTo; - MySettings.ExecutionMode = (ExecutionMode)Properties.Settings.Default.ExecutionMode; - MySettings.Phase1Suffix = Properties.Settings.Default.Phase1; - MySettings.Phase2Suffix = Properties.Settings.Default.Phase2; - MySettings.Phase3Suffix = Properties.Settings.Default.Phase3; - MySettings.FormatFolder = Properties.Settings.Default.FormatFolder; - MySettings.GenMacFolder = Properties.Settings.Default.GenMacFolder; - MySettings.LoadApproved = Properties.Settings.Default.LoadApproved; - MySettings.Phase4Suffix = Properties.Settings.Default.Phase4; - MySettings.RedPDFs = (Properties.Settings.Default.RedPDFs == CheckState.Checked); - string validity = MySettings.ValidityCheck; - if (validity != "") - { - MessageBox.Show(validity, "Settings Incorrect", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - OpenSettings(); - } - } - private void OpenSettings() - { - DataLoaderSettings tmpDLS = (DataLoaderSettings)MySettings.Clone(); - frmPG myPG = new frmPG("Data Loader Settings", tmpDLS); - if (myPG.ShowDialog() == DialogResult.OK) - { - MySettings = tmpDLS; - SaveSettings(); - } - string validity = MySettings.ValidityCheck; - if (validity != "") - { - processToolStripMenuItem.Enabled = false; - oldToolStripMenuItem.Enabled = false; - } - else - { - processToolStripMenuItem.Enabled = true; - oldToolStripMenuItem.Enabled = true; - } - } - private void SaveSettings() - { - Properties.Settings.Default.DbfPathname = MySettings.ProcedureSetPath; - Properties.Settings.Default.VePromsFilename = MySettings.VEPromsPath; - Properties.Settings.Default.VeSamFilename = MySettings.VESamFile; - Properties.Settings.Default.DbfPathname = MySettings.ProcedureSetPath; - Properties.Settings.Default.ProcessOnlyInLocation = MySettings.ProcessOnlyInLocation; - Properties.Settings.Default.BackupFileName = MySettings.BackupFileName; - Properties.Settings.Default.BackupFolder = MySettings.BackupFolder; - Properties.Settings.Default.LogFileLoc = MySettings.LogFilePath; - Properties.Settings.Default.ConnectionString = MySettings.ConnectionString; - Properties.Settings.Default.DBName = MySettings.DBName; - Properties.Settings.Default.DBPath = MySettings.DBPath; - Properties.Settings.Default.PurgeData = MySettings.PurgeExistingData ? CheckState.Checked : CheckState.Unchecked; - Properties.Settings.Default.PDFFolder = MySettings.PDFFolder; - Properties.Settings.Default.OnlyThisSet = MySettings.OnlyThisSet ? CheckState.Checked : CheckState.Unchecked; - Properties.Settings.Default.CheckRTF = MySettings.CheckRTF ? CheckState.Checked : CheckState.Unchecked; - Properties.Settings.Default.Skip = MySettings.Skip; - Properties.Settings.Default.ConvertTo = (int)MySettings.ConvertTo; - Properties.Settings.Default.ExecutionMode = (int)MySettings.ExecutionMode; - Properties.Settings.Default.Phase1 = MySettings.Phase1Suffix; - Properties.Settings.Default.Phase2 = MySettings.Phase2Suffix; - Properties.Settings.Default.Phase3 = MySettings.Phase3Suffix; - Properties.Settings.Default.FormatFolder = MySettings.FormatFolder; - Properties.Settings.Default.GenMacFolder = MySettings.GenMacFolder; - Properties.Settings.Default.LoadApproved = MySettings.LoadApproved; - Properties.Settings.Default.Phase4 = MySettings.Phase4Suffix; - Properties.Settings.Default.RedPDFs = MySettings.RedPDFs ? CheckState.Checked : CheckState.Unchecked; - Properties.Settings.Default.Save(); - } - private void frmLoader_Load(object sender, EventArgs e) - { - LoadSettings(); - _Loading = false; - MSWordToPDF.CloseWordWhenDone = false; - Format.FormatLoaded += new FormatEvent(Format_FormatLoaded); - StepRTB.DoSpellCheck = false; - } - void Format_FormatLoaded(object sender, FormatEventArgs args) - { - if (args.Status.StartsWith("Loading Format")) - UpdateLabelsFormats(1); - else if (!args.Status.StartsWith("Format") && !args.Status.StartsWith("Loading ")) - { - pbProcMaximum = int.Parse(args.Status.Split(" ".ToCharArray())[0]); - UpdateLabelsFormats(0); - } - MyInfo = args.Status; - } - private void btnFixTransitions_Click(object sender, EventArgs e) - { - List cacheContentInfo = ContentInfo.CacheList; - List cacheItemInfo = ItemInfo.CacheList; - //List cacheEntryInfo = EntryInfo.CacheList; - //List cachePdfInfo = PdfInfo.CacheList; - //List cacheDocVersionInfo = DocVersionInfo.CacheList; - //if (!CheckLogPath()) return; - using (StepRTB rtb = new StepRTB()) - { - TransitionFixer myFixer = new TransitionFixer(rtb, MySettings.LogFilePath); - myFixer.StatusChanged += new TransitionFixerEvent(myFixer_StatusChanged); - TimeSpan howlong = myFixer.Process(MySettings.CheckRTF); - string TransFixTime = string.Format("Fix Transitions completion time: {0:D2}:{1:D2}:{2:D2}.{3}", howlong.Hours, howlong.Minutes, howlong.Seconds, howlong.Milliseconds); - MyInfo = TransFixTime; - //if (!ProcessComplete) MessageBox.Show(string.Format("{0}\r\n\n({1} Total Seconds)", TransFixTime, howlong.TotalSeconds)); - //MessageBox.Show(string.Format("Fix Transitions completion time: {0:D2}:{1:D2}:{2:D2}.{3}\r\n\n({4} Total Seconds)", howlong.Hours, howlong.Minutes, howlong.Seconds, howlong.Milliseconds, howlong.TotalSeconds)); - CreateBackupRestoreBatchFiles(); - ItemInfo.RestoreCacheList(cacheItemInfo); - ContentInfo.RestoreCacheList(cacheContentInfo); - //EntryInfo.RestoreCacheList(cacheEntryInfo); - //PdfInfo.RestoreCacheList(cachePdfInfo); - //DocVersionInfo.RestoreCacheList(cacheDocVersionInfo); - MyInfo = CSLACache.UsageAll; - } - } - - void myFixer_StatusChanged(object sender, TransitionFixerEventArgs args) - { - Status = args.MyStatus; - } - private bool _DidLogPathCheck = false; - //private string _LogFilePath = ""; - - //private bool CheckLogPath() - //{ - // bool rtn = false; - // if (_DidLogPathCheck) return true; - // try - // { - // _LogFilePath = txbLogFileLoc.Text; - // if (!Directory.Exists(_LogFilePath)) - // Directory.CreateDirectory(_LogFilePath); - // if (_LogFilePath.EndsWith(@"\")) _LogFilePath = _LogFilePath.Substring(0, _LogFilePath.Length - 1); - // rtn = true; - // _DidLogPathCheck = true; - // } - // catch (Exception ex) - // { - // MessageBox.Show(ex.Message, "Invalid Path for Log Files", MessageBoxButtons.OK, MessageBoxIcon.Error); - // } - // return rtn; - //} - - private void SaveLogFiles() - { - //if (_LogFilePath == "") return; - // Save the Glitches log - if (TextConvert.MyGlitches.Glitches.Count > 0) - TextConvert.MyGlitches.Save(MySettings.LogFilePath + @"\ConversionGlitches.xml"); - // Save the Error Log - if (_MyFrmErrors.ErrorCount > 0) - _MyFrmErrors.Save(MySettings.LogFilePath + @"\ConversionErrors.txt"); - } - - private bool _EnteredFileLoc = false; - private void txbLogFileLoc_TextChanged(object sender, EventArgs e) - { - _DidLogPathCheck = false; - } - - private void CreateBackupRestoreBatchFiles() - { - string pause = "pause"; - string bckupFileName = MySettings.BackupFileName; - if (!bckupFileName.EndsWith(".bak")) bckupFileName += ".bak"; - string backupPath = MySettings.LogFilePath + @"\" + bckupFileName + "'\""; - string bckupcmd = string.Format("sqlcmd -E -S.\\sqlexpress -Q \"backup database [{0}] to disk = '{1}", MySettings.DBName, backupPath); - string rstorecmd = string.Format("sqlcmd -E -S.\\sqlexpress -Q \"restore database [{0}] from disk = '{1}", MySettings.DBName, backupPath); - StreamWriter fsbackup = new StreamWriter(MySettings.LogFilePath + @"\Backup" + bckupFileName.Substring(0, bckupFileName.Length - 4) + ".bat"); - fsbackup.WriteLine(bckupcmd); - fsbackup.WriteLine(pause); - fsbackup.Close(); - StreamWriter fsrestore = new StreamWriter(MySettings.LogFilePath + @"\Restore" + bckupFileName.Substring(0, bckupFileName.Length - 4) + ".bat"); - fsrestore.WriteLine(rstorecmd); - fsrestore.WriteLine(pause); - fsrestore.Close(); - } - // Menu Items - #region File Menu Items - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - #endregion - #region Process Menu Items - private bool _ProcessFailed = false; - public bool ProcessFailed - { - get { return _ProcessFailed; } - set { _ProcessFailed = value; } - } - private bool _ProcessComplete = false; - public bool ProcessComplete - { - get { return _ProcessComplete; } - set { _ProcessComplete = value; } - } - static bool ChangeLogFileName(string AppenderName, string NewFilename) - { - log4net.Repository.ILoggerRepository RootRep; - RootRep = log4net.LogManager.GetRepository(); - foreach (log4net.Appender.IAppender iApp in RootRep.GetAppenders()) - { - if (iApp.Name.CompareTo(AppenderName) == 0 - && iApp is log4net.Appender.FileAppender) - { - log4net.Appender.FileAppender fApp = (log4net.Appender.FileAppender)iApp; - string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); - fApp.File = folderPath + @"\VEPROMS\" + NewFilename; - fApp.ActivateOptions(); - return true; // Appender found and name changed to NewFilename - } - } - return false; - } - private void completeToolStripMenuItem_Click(object sender, EventArgs e) - { - ChildrenProcessed = 0; - ProcessFailed = false; - ProcessComplete = true; - ProcessTime = DateTime.Now; - MessageBuilder mb = new MessageBuilder("Performing Complete Process\r\n"); - // Phase 1 - Convert dBase to SQL - btnConvert_Click(this, new System.EventArgs()); - if (ProcessFailed) return; - if (ChildrenProcessed == 0 && !createEmptyPROMS) - { - MessageBox.Show("No children found to convert. Check vlnControl.xml file. Process complete"); - return; - } - mb.Append("dBase Conversion Complete"); - Status = "Backing up Phase 1 Data"; - Backup("_" + MySettings.Phase1Suffix); - mb.Append("Phase 1 Backup Complete"); - // Phase 2 - Fix Transitions - if (!createEmptyPROMS) - { - btnFixTransitions_Click(this, new System.EventArgs()); - mb.Append("Fix Transtions Complete"); - } - Status = "Backing up Phase 2 Data"; - Backup("_" + MySettings.Phase2Suffix); - mb.Append("Phase 2 Backup Complete"); - // only do the following two steps if we are NOT appending to an existing set - if (MySettings.PurgeExistingData) - { - // Phase 3 - Convert to Change Manager Version - if (!ConvertToChangeManager()) return; - mb.Append("Conversion to Change Manager Complete"); - Status = "Backing up Phase 3 Data"; - Backup("_" + MySettings.Phase3Suffix); - mb.Append("Phase 3 Backup Complete"); - //Phase 4 - Convert to Approval Version - if (!ConvertToApproval()) return; - mb.Append("Conversion to Approval Complete"); - } - if(!FixProceduresAndFunctions()) return; - mb.Append("FixProceduresAndFunctions Complete"); - if (MySettings.LoadApproved && !createEmptyPROMS) - { - Status = "Backing up Phase 4 Data"; - Backup("_" + MySettings.Phase4Suffix); - mb.Append("Phase 4 Backup Complete"); - //Phase 5 - Load Approved Data - LoadApprovedData(); - mb.Append("Conversion of Approved Data Complete"); - } - Status = "Backing up Data"; - Backup(""); - mb.Append("Backup Complete"); - mb.LastTime = ProcessTime; // Reset time to get total time. - mb.Append("Processing Complete"); - Status = "Processing Complete"; - ProcessComplete = false; - //Clipboard.Clear(); - //Clipboard.SetText(mb.ToString()); - AddInfo(mb.ToString()); - MessageBox.Show(mb.ToString(), "Processing Complete", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private bool ConvertToChangeManager() - { - return RunScript("PROMStoCM.sql", MySettings.DBName); - } - private bool ConvertToApproval() - { - return RunScript("PROMStoAPPR.sql", MySettings.DBName); - } - private void formatOnlyToolStripMenuItem_Click(object sender, EventArgs e) - { - ProcessTime = DateTime.Now; - FormatsOnly = true; - btnConvert_Click(this, new System.EventArgs()); - if (ProcessFailed) return; - MyInfo = "Format Load Complete"; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Format Change Data"; - Backup("_" + "FormatChange"); - MyInfo = "Format Change Backup Complete"; - } - //Status = "Format Change Complete"; - //MessageBox.Show("Format Change Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void convertDBToolStripMenuItem_Click(object sender, EventArgs e) - { - ProcessTime = DateTime.Now; - RunScript("vesp_TurnChangeManagerOFF"); - btnConvert_Click(this, new System.EventArgs()); - RunScript("vesp_TurnChangeManagerON"); - if (ProcessFailed) return; - MyInfo = "dBase Conversion Complete"; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Phase 1 Data"; - Backup("_" + MySettings.Phase1Suffix); - MyInfo = "Phase 1 Backup Complete"; - } - //Status = "dBase Conversion Complete"; - //MessageBox.Show("dBase Conversion Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void fixTransitionsToolStripMenuItem_Click(object sender, EventArgs e) - { - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", MySettings.DBName); - ProcessTime = DateTime.Now; - RunScript("vesp_TurnChangeManagerOFF"); - btnFixTransitions_Click(this, new System.EventArgs()); - RunScript("vesp_TurnChangeManagerON"); - MyInfo = "Fix Transtions Complete"; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Phase 2 Data"; - Backup("_" + MySettings.Phase2Suffix); - MyInfo = "Phase 2 Backup Complete"; - } - Status = "Fix Transtions Complete"; - MessageBox.Show("Fix Transtions Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void convertToChangeManagerToolStripMenuItem_Click(object sender, EventArgs e) - { - ProcessTime = DateTime.Now; - if(!ConvertToChangeManager()) return; - MyInfo = "Conversion to Change Manager Complete"; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Phase 3 Data"; - Backup("_" + MySettings.Phase3Suffix); - MyInfo = "Phase 3 Backup Complete"; - } - //Status = "Conversion to Change Manager Complete"; - //MessageBox.Show("Conversion to Change Manager Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void convertToApprovalToolStripMenuItem_Click(object sender, EventArgs e) - { - ProcessTime = DateTime.Now; - if(!ConvertToApproval()) return; - MyInfo = "Conversion to Approval Complete"; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Phase 4 Data"; - Backup("_" + MySettings.Phase4Suffix); - MyInfo = "Phase 4 Backup Complete"; - } - //Status = "Conversion to Approval Complete"; - //MessageBox.Show("Conversion to Approval Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void load16BitApprovalToolStripMenuItem_Click(object sender, EventArgs e) - { - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", MySettings.DBName); - ProcessTime = DateTime.Now; - if (LoadApprovedData()) - { - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Data"; - Backup(""); - MyInfo = "Backup Complete"; - } - Status = "Processing Complete"; - } - else - Status = "Loading 16 Bit Approval Data Failed"; - //MessageBox.Show("Loading 16 Bit Approval Data Complete", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private bool LoadApprovedData() - { - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", MySettings.DBName); - Status = "Converting 16-Bit Approved Data"; - Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", MySettings.DBName); - bool ok = ldr.BuildApprovedRevision(); - Status = "Conversion " + (ok ? "Succeeded" : "Failed"); - return ok; - } - private void fixesToolStripMenuItem_Click(object sender, EventArgs e) - { - if (!FixProceduresAndFunctions()) return; - if (MessageBox.Show("Backup Database?", "Backup", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - { - Status = "Backing up Data"; - Backup("_Fixed"); - MyInfo = "Backup Complete"; - } - //Status = "Processing Complete"; - //MessageBox.Show("Fixed Stored Procedures", "Status", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private bool FixProceduresAndFunctions() - { - return RunScript("PROMSFixes.sql", MySettings.DBName); - } - #endregion - #region Settings Menu Items - private void settingsToolStripMenuItem_Click(object sender, EventArgs e) - { - OpenSettings(); - } - #endregion - #region Old Menu Items - private void convertSecurityToolStripMenuItem_Click(object sender, EventArgs e) - { - btnVesam_Click(this, new EventArgs()); - } - private void convertTopFoldersToolStripMenuItem_Click(object sender, EventArgs e) - { - btnLoadTreeDB_Click(this, new EventArgs()); - } - private void loadTreeFromCSLAToolStripMenuItem_Click(object sender, EventArgs e) - { - btnLoadTreeCSLA_Click(this, new EventArgs()); - } - private void loadVETreeFromCSLAToolStripMenuItem_Click(object sender, EventArgs e) - { - btnVETree_CSLA_Click(this, new EventArgs()); - } - private void groupSecurityToolStripMenuItem_Click(object sender, EventArgs e) - { - btnGroup_Click(this, new EventArgs()); - } - private void countTokensToolStripMenuItem_Click(object sender, EventArgs e) - { - btnCtTok_Click(this, new EventArgs()); - } - private void convertDbfSelectedInTreeToolStripMenuItem_Click(object sender, EventArgs e) - { - btnConvertSelected_Click(this, new EventArgs()); - } - #endregion - - private void approvalDatabasesToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Cursor = Cursors.WaitCursor; - //MySettings.ConnectionString - //"{DBName}", dbName - string tmp = MySettings.ConnectionString.Replace("{DBName}", "master"); - SqlConnection cn = new SqlConnection(tmp); - cn.Open(); - SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id(name + '..Items') is null then 'Not PROMS' when object_id(name + '..Revisions') is not null then 'Approval' when object_id(name + '..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - DataSet ds = new DataSet(); - da.Fill(ds); - cn.Close(); - List cms = new List(); - StringBuilder sb = new StringBuilder(); - sb.Append("The following databases will be fixed...\r\n"); - foreach (DataRow dr in ds.Tables[0].Rows) - { - if (dr["functionality"].ToString() == "Approval") - { - cms.Add(dr["name"].ToString()); - sb.Append("\r\n " + dr["name"].ToString()); - } - } - this.Cursor = Cursors.Default; - if (MessageBox.Show(sb.ToString(), "Data Loader Fixes", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) - { - int good = 0; - int bad = 0; - foreach (string s in cms) - { - AddInfo("\r\nFixing database {0}\r\n", s); - if (RunScript("PROMSFixes.sql", s)) good++; - else bad++; - } - AddInfo("\r\nFixing databases complete. {0} Fixed, {1} Failures", good, bad); - Status = String.Format("Fixing databases complete. {0} Fixed, {1} Failures", good, bad); - } - } - - private void updateFormatsToolStripMenuItem_Click(object sender, EventArgs e) - { - MessageBox.Show("Can't get this to work yet"); - //this.Cursor = Cursors.WaitCursor; - ////MySettings.ConnectionString - ////"{DBName}", dbName - //string tmp = MySettings.ConnectionString.Replace("{DBName}", "master"); - //SqlConnection cn = new SqlConnection(tmp); - //cn.Open(); - //SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id(name + '..Items') is null then 'Not PROMS' when object_id(name + '..Revisions') is not null then 'Approval' when object_id(name + '..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - //DataSet ds = new DataSet(); - //da.Fill(ds); - //cn.Close(); - //List cms = new List(); - //StringBuilder sb = new StringBuilder(); - //sb.Append("Formats will be updated in the following databases ...\r\n"); - //foreach (DataRow dr in ds.Tables[0].Rows) - //{ - // if (dr["functionality"].ToString() == "Approval") // get only the databases with Approval fnctionality - // { - // cms.Add(dr["name"].ToString()); - // sb.Append("\r\n " + dr["name"].ToString()); - // } - //} - //this.Cursor = Cursors.Default; - //if (MessageBox.Show(sb.ToString(), "Format Updates", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) == DialogResult.OK) - //{ - // int good = 0; - // int bad = 0; - // string saveDbName = MySettings.DBName; - // foreach (string s in cms) - // { - // try - // { - // AddInfo("\r\nUpdating Formats in database {0}\r\n", s); - // MySettings.DBName = s; - // Database.VEPROMS_Connection = MySettings.ConnectionString.Replace("{DBName}", s); - // Format.UpdateFormats(MySettings.FormatFolder, MySettings.GenMacFolder); - // Database.VEPROMS_SqlConnection.Close(); - // //RunScript("PROMSFixes.sql", s); - // good++; - // } - // catch (Exception ex) - // { - // AddInfo("====****===="); - // AddError(ex, "While Updating Formats for database {0}", s); - // AddInfo("====****===="); - // bad++; - // } - // } - // MySettings.DBName = saveDbName; - // AddInfo("\r\nUpdating Formats in databases complete. {0} Fixed, {1} Failures", good, bad); - // Status = String.Format("Updating Formats in databases complete. {0} Fixed, {1} Failures", good, bad); - //} - - } - public bool createEmptyPROMS = false; - private void createEmptyPROMSDatabaseToolStripMenuItem_Click(object sender, EventArgs e) - { - createEmptyPROMS = true; - completeToolStripMenuItem_Click(sender, e); - createEmptyPROMS = false; - } - - - } - public class MessageBuilder - { - private StringBuilder _MyStringBulider = new StringBuilder(); - private DateTime _LastTime = DateTime.Now; - public DateTime LastTime - { - get { return _LastTime; } - set { _LastTime = value; } - } - public MessageBuilder(string heading) - { - _MyStringBulider.Append(heading); - } - public void Append(string format, params object[] args) - { - string msg = string.Format(format, args); - DateTime now = DateTime.Now; - TimeSpan ts = TimeSpan.FromTicks(now.Ticks - _LastTime.Ticks); - string timestamp = string.Format("{0:D2}:{1:D2}:{2:D2}.{3:D3}", ts.Hours, ts.Minutes, ts.Seconds, ts.Milliseconds); - _LastTime = now; - GC.Collect(); - long memUse = GC.GetTotalMemory(true); - _MyStringBulider.Append("\r\n" + timestamp + "\t" + memUse.ToString() + "\t" + msg); - } - public override string ToString() - { - return _MyStringBulider.ToString(); - } - } -} diff --git a/PROMS/DataLoader/frmLoader.resx b/PROMS/DataLoader/frmLoader.resx deleted file mode 100644 index 9b12f7fc..00000000 --- a/PROMS/DataLoader/frmLoader.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 84, 17 - - - 217, 17 - - - 314, 17 - - \ No newline at end of file diff --git a/PROMS/DataLoader/frmPG.cs b/PROMS/DataLoader/frmPG.cs deleted file mode 100644 index 4113fca8..00000000 --- a/PROMS/DataLoader/frmPG.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.Reflection; - -namespace DataLoader -{ - public partial class frmPG : Form - { - private object _SelectedObject; - public object SelectedObject - { - get { return _SelectedObject; } - set { _SelectedObject = value; } - } - - public frmPG(string title, object selectedObject) - { - InitializeComponent(); - this.Text = title; - _SelectedObject = selectedObject; - } - private void CheckValidity() - { - if (SelectedObject.GetType().Name == "DataLoaderSettings") - { - DataLoaderSettings myDls = (DataLoaderSettings)SelectedObject; - string validity = myDls.ValidityCheck; - pg.SelectedObject = SelectedObject; - tbError.Text = validity; - if (validity == "") - tbError.Visible = false; - else - { - using (Graphics gr = tbError.CreateGraphics()) - { - SizeF sf = gr.MeasureString(validity, tbError.Font,tbError.ClientRectangle.Width-10); - tbError.Height = (int)(tbError.Font.GetHeight(gr.DpiY) + sf.Height); - } - tbError.Visible = true; - } - } - else - tbError.Visible = false; - btnOK.Enabled = !tbError.Visible; - } - private void frmPG_Load(object sender, EventArgs e) - { - pg.PropertyValueChanged += new PropertyValueChangedEventHandler(pg_PropertyValueChanged); - pg.SelectedObject = SelectedObject; - Resize += new EventHandler(frmPG_Resize); - CheckValidity(); - MoveSplitterTo(pg, SplitterWidth); - } - void pg_PropertyValueChanged(object s, PropertyValueChangedEventArgs e) - { - if (e.ChangedItem.Label == "VEProms Exe Folder") - { - DataLoaderSettings dls = SelectedObject as DataLoaderSettings; - if (dls != null) - dls.VESamFile = dls.VEPromsPath + "\\vesam.opt"; - } - //if (e.ChangedItem.Label == "Procedure Folder") - //{ - // DataLoaderSettings dls = SelectedObject as DataLoaderSettings; - // //if (dls != null) - // // dls.PDFFolder = ""; - //} - CheckValidity(); - } - void frmPG_Resize(object sender, EventArgs e) - { - MoveSplitterTo(pg, SplitterWidth); - } - private int _SplitterWidth = 0; - public int SplitterWidth - { - get - { - if (_SplitterWidth == 0) - { - using (Graphics gr = this.CreateGraphics()) - _SplitterWidth = 180 * ((int)gr.DpiX) / 96; - } - return _SplitterWidth; - } - } - static void MoveSplitterTo(PropertyGrid grid, int x) - { - // HEALTH WARNING: reflection can be brittle... - FieldInfo field = typeof(PropertyGrid) - .GetField("gridView", - BindingFlags.NonPublic | BindingFlags.Instance); - field.FieldType - .GetMethod("MoveSplitterTo", - BindingFlags.NonPublic | BindingFlags.Instance) - .Invoke(field.GetValue(grid), new object[] { x }); - } - - private void btnCancel_Click(object sender, EventArgs e) - { - PropertyDescriptor pd = pg.SelectedGridItem.PropertyDescriptor; - pd.ResetValue(pg.SelectedObject); - } - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/frmPG.designer.cs b/PROMS/DataLoader/frmPG.designer.cs deleted file mode 100644 index 16619a89..00000000 --- a/PROMS/DataLoader/frmPG.designer.cs +++ /dev/null @@ -1,120 +0,0 @@ -namespace DataLoader -{ - partial class frmPG - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.panel1 = new System.Windows.Forms.Panel(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.pg = new System.Windows.Forms.PropertyGrid(); - this.tbError = new System.Windows.Forms.TextBox(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Controls.Add(this.btnCancel); - this.panel1.Controls.Add(this.btnOK); - this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel1.Location = new System.Drawing.Point(0, 540); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(453, 38); - this.panel1.TabIndex = 0; - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(366, 6); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 1; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnOK - // - this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOK.Location = new System.Drawing.Point(285, 6); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(75, 23); - this.btnOK.TabIndex = 0; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - // - // pg - // - this.pg.Dock = System.Windows.Forms.DockStyle.Fill; - this.pg.Location = new System.Drawing.Point(0, 0); - this.pg.Name = "pg"; - this.pg.Size = new System.Drawing.Size(453, 425); - this.pg.TabIndex = 1; - // - // tbError - // - this.tbError.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(128))))); - this.tbError.Dock = System.Windows.Forms.DockStyle.Bottom; - this.tbError.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbError.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(192)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.tbError.Location = new System.Drawing.Point(0, 425); - this.tbError.Multiline = true; - this.tbError.Name = "tbError"; - this.tbError.Size = new System.Drawing.Size(453, 115); - this.tbError.TabIndex = 2; - // - // frmPG - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(453, 578); - this.ControlBox = false; - this.Controls.Add(this.pg); - this.Controls.Add(this.tbError); - this.Controls.Add(this.panel1); - this.Name = "frmPG"; - this.Text = "frmPG"; - this.Load += new System.EventHandler(this.frmPG_Load); - this.panel1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.PropertyGrid pg; - private System.Windows.Forms.TextBox tbError; - } -} \ No newline at end of file diff --git a/PROMS/DataLoader/frmPG.resx b/PROMS/DataLoader/frmPG.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/DataLoader/frmPG.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/DataLoader/logfile/AEP Database & Log Files/AOP1 and Du1 ConversionErrors.txt b/PROMS/DataLoader/logfile/AEP Database & Log Files/AOP1 and Du1 ConversionErrors.txt deleted file mode 100644 index 1e80303a..00000000 --- a/PROMS/DataLoader/logfile/AEP Database & Log Files/AOP1 and Du1 ConversionErrors.txt +++ /dev/null @@ -1,135 +0,0 @@ -Computer Name: KATHY-VISTA -Data Set: c:\16bit\debug\veaep\aop1.prc -Bad OldToNew Document Style 001-006:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\proc013.A03 -Error in -Bad OldToNew Document Style 002-001:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\PROC009.A03 -Bad OldToNew Document Style 012-005:Attachment C dStyleIndex = 'A ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP & AOP Single Column Attachment Pages - BOLD STEPS (AEP01) - Missing OldToNew 1024 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\proc022.A06 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\proc031.A04 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\proc031.A08 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\proc031.A07 -Missing Transition Destination 017-001|K0 - 9464 -Missing Transition Destination 017-001|J0 - 9463 -Missing Transition Destination 001-006|A?S3 - 853 -Missing Transition Destination 017-001|F0 - 9652 -Missing Transition Destination 017-001|E0 - 9514 -Missing Transition Destination 017-001|B1S - 9584 -Missing Transition Destination 017-001|B0 - 9589 -Missing Transition Destination 016.004|J=S7 - 7979 -Missing Transition Destination 017-001|I0 - 9244 -Missing Transition Destination 016-004|AÇS - 7602 -Data Set: c:\16bit\debug\veaep\du1.prc -Cannot Find Image File c:\16bit\debug\veaep\ro\CNTRLRM1.GIF -Cannot Find Image File c:\16bit\debug\veaep\ro\CNTRLRM2.GIF -Cannot Find Image File c:\16bit\debug\veaep\ro\CNTLRM12.GIF -Cannot Find Image File c:\16bit\debug\veaep\ro\CNTLRM11.GIF -Cannot Find Image File c:\16bit\debug\veaep\ro\STMTABLE.GIF -Cannot Find Image File c:\16bit\debug\veaep\ro\HV2.GIF -Bad OldToNew Document Style E-0:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-0.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ES02.A05 -Bad OldToNew Document Style ES-0.2:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ES03.A03 -Bad OldToNew Document Style ES-0.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style E-1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-1.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-1.2:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-1.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style E-3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-3.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-3.2:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-3.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ECA00.A01 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ECA00.A04 -Bad OldToNew Document Style ECA-0.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ECA11.A03 -Bad OldToNew Document Style ECA-1.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\proc022.A03 -Bad OldToNew Document Style ECA-1.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ECA-2.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ECA31.A03 -Bad OldToNew Document Style ECA-3.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ECA-3.2:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ECA-3.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\proc004.A07 -MigrateRos 'F-0.5' 'A2S' 0 - ArgumentNullException - Value cannot be null. -Parameter name: input at System.Text.RegularExpressions.Regex.Replace(String input, String replacement) - at System.Text.RegularExpressions.Regex.Replace(String input, String pattern, String replacement) - at DataLoader.TextConvert.ConvertDOSSuperAndSubScripts(String instr) in C:\Development\PROMS\DataLoader\TextConvert.cs:line 218 - at DataLoader.Loader.MigrateRos(OleDbConnection cn, String textm, String seqcvt, Content content, DocVersion docver, Boolean conv_caret) in C:\Development\PROMS\DataLoader\RefObjs.cs:line 81 -Bad OldToNew Document Style FR-C.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style FR-C.2:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style FR-C.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style FR-H.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\FRP1.A03 -Bad OldToNew Document Style FR-P.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\FRP2.A03 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\FRI3.A03 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\FRI3.A04 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\proc009.A05 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\proc012.A02 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\proc020.A02 -Missing Transition Destination ECA-1.1|BNS36 - 15533 -Missing Transition Destination ES-3.1|BIS - 22871 -Missing Transition Destination F-0.2|D0 - 18727 -Missing Transition Destination ECA-1.3|AUS33 - 16163 -Missing Transition Destination ECA-1.3|AUS36 - 16164 -Missing Transition Destination ECA-3.3|BBS - 22594 -Missing Transition Destination F-0.5|C0 - 20949 -Missing Transition Destination ECA-1.1|BFS33 - 15441 -Missing Transition Destination ES-0.2|B;S2 - 10712 -Missing Transition Destination ECA-2.1|B9S43 - 16564 -Missing Transition Destination ES-1.3|A6SB - 12507 -Missing Transition Destination F-0.6|E0 - 21213 -Missing Transition Destination ECA-2.1|B9S46 - 16565 -Missing Transition Destination F-0.6|C0 - 21117 -Missing Transition Destination FR-C.1|BFS25 - 19037 -Missing Transition Destination FR-H.1|ABS - 20220 -Missing Transition Destination E-1|B>S32 - 11248 -Missing Transition Destination E-1|B>S34 - 11249 -Missing Transition Destination F-0.3|C0 - 19579 -Missing Transition Destination FR-C.1|BFS26 - 19048 -Missing Transition Destination ECA-3.2|B0S - 17180 -Missing Transition Destination SUP-015|C0 - 20660 -Missing Transition Destination FR-C.2|B@S36 - 19440 -Missing Transition Destination FR-C.1|B@S36 - 18954 -Missing Transition Destination F-0.4|B0 - 12823 -Missing Transition Destination ECA-1.3|ANS36 - 16076 -Missing Transition Destination ECA-0.1|A5S - 14908 -Missing Transition Destination E-3|CES - 13327 -Missing Transition Destination ECA-1.1|BFS36 - 15442 -Missing Transition Destination ECA-1.3|ANS33 - 16075 -Missing Transition Destination ECA-1.1|BNS33 - 15532 -Missing Transition Destination F-0.1|C0 - 18472 -Missing Transition Destination FR-C.1|BIS36 - 19111 -Conversion completion time: 00:10:24.74 diff --git a/PROMS/DataLoader/logfile/AEP Database & Log Files/AOP1 and Du1 ConversionGlitches.xml b/PROMS/DataLoader/logfile/AEP Database & Log Files/AOP1 and Du1 ConversionGlitches.xml deleted file mode 100644 index 04ca7aec..00000000 --- a/PROMS/DataLoader/logfile/AEP Database & Log Files/AOP1 and Du1 ConversionGlitches.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/DataLoader/logfile/AEP Database & Log Files/All 1s ConversionErrors.txt b/PROMS/DataLoader/logfile/AEP Database & Log Files/All 1s ConversionErrors.txt deleted file mode 100644 index 61e610f0..00000000 --- a/PROMS/DataLoader/logfile/AEP Database & Log Files/All 1s ConversionErrors.txt +++ /dev/null @@ -1,181 +0,0 @@ -Computer Name: KATHY-VISTA -Data Set: c:\16bit\debug\veaep\aop1.prc -Bad OldToNew Document Style 001-006:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\proc013.A03 -Error in -Bad OldToNew Document Style 002-001:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\PROC009.A03 -Bad OldToNew Document Style 012-005:Attachment C dStyleIndex = 'A ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP & AOP Single Column Attachment Pages - BOLD STEPS (AEP01) - Missing OldToNew 1024 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\proc022.A06 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\proc031.A04 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\proc031.A08 -Processing c:\16bit\debug\veaep\aop1.prc\rtffiles\proc031.A07 -Missing Transition Destination 017-001|K0 - 9495 -Missing Transition Destination 017-001|J0 - 9494 -Missing Transition Destination 001-006|A?S3 - 884 -Missing Transition Destination 017-001|F0 - 9683 -Missing Transition Destination 017-001|E0 - 9545 -Missing Transition Destination 017-001|B1S - 9615 -Missing Transition Destination 017-001|B0 - 9620 -Missing Transition Destination 016.004|J=S7 - 8010 -Missing Transition Destination 017-001|I0 - 9275 -Missing Transition Destination 016-004|AÇS - 7633 -Data Set: c:\16bit\debug\veaep\appr1.prc -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc001.A02 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc001.A04 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc001.A05 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc001.A06 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc001.A09 -Error in -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc001.A08 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc002.A06 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc003.A04 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc003.A08 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc003.A05 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc003.A06 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc004.A04 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc004.A09 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc004.A05 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc004.A07 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc005.A05 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc000.A05 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc007.A03 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc008.A06 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc008.A05 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc009.A03 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc010.A03 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc011.A05 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc012.A03 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc013.A10 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc014.A02 -Bad OldToNew Document Style R-8:Table R-8-A dStyleIndex = 'I ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP & AOP Single Column Attachment Pages - BOLD STEPS (AEP01) - Missing OldToNew 32 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc023.A02 -Bad OldToNew Document Style R-8:Table R-8-B dStyleIndex = 'I ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP & AOP Single Column Attachment Pages - BOLD STEPS (AEP01) - Missing OldToNew 32 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc023.A04 -Bad OldToNew Document Style R-8:Table R-8-C dStyleIndex = 'I ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP & AOP Single Column Attachment Pages - BOLD STEPS (AEP01) - Missing OldToNew 32 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc023.A06 -Bad OldToNew Document Style R-8:Table R-8-D dStyleIndex = 'I ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP & AOP Single Column Attachment Pages - BOLD STEPS (AEP01) - Missing OldToNew 32 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc023.A08 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc027.A25 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc027.A26 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc027.A27 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc027.A28 -Processing c:\16bit\debug\veaep\appr1.prc\rtffiles\proc027.A29 -Missing Transition Destination R-12|A6S - 14134 -Data Set: c:\16bit\debug\veaep\du1.prc -Cannot Find Image File c:\16bit\debug\veaep\ro\CNTRLRM1.GIF -Cannot Find Image File c:\16bit\debug\veaep\ro\CNTRLRM2.GIF -Cannot Find Image File c:\16bit\debug\veaep\ro\CNTLRM12.GIF -Cannot Find Image File c:\16bit\debug\veaep\ro\CNTLRM11.GIF -Cannot Find Image File c:\16bit\debug\veaep\ro\STMTABLE.GIF -Cannot Find Image File c:\16bit\debug\veaep\ro\HV2.GIF -Bad OldToNew Document Style E-0:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-0.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ES02.A05 -Bad OldToNew Document Style ES-0.2:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ES03.A03 -Bad OldToNew Document Style ES-0.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style E-1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-1.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-1.2:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-1.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style E-3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-3.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-3.2:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ES-3.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ECA00.A01 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ECA00.A04 -Bad OldToNew Document Style ECA-0.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ECA11.A03 -Bad OldToNew Document Style ECA-1.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\proc022.A03 -Bad OldToNew Document Style ECA-1.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ECA-2.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\ECA31.A03 -Bad OldToNew Document Style ECA-3.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ECA-3.2:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style ECA-3.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\proc004.A07 -MigrateRos 'F-0.5' 'A2S' 0 - ArgumentNullException - Value cannot be null. -Parameter name: input at System.Text.RegularExpressions.Regex.Replace(String input, String replacement) - at System.Text.RegularExpressions.Regex.Replace(String input, String pattern, String replacement) - at DataLoader.TextConvert.ConvertDOSSuperAndSubScripts(String instr) in C:\Development\PROMS\DataLoader\TextConvert.cs:line 218 - at DataLoader.Loader.MigrateRos(OleDbConnection cn, String textm, String seqcvt, Content content, DocVersion docver, Boolean conv_caret) in C:\Development\PROMS\DataLoader\RefObjs.cs:line 81 -Bad OldToNew Document Style FR-C.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style FR-C.2:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style FR-C.3:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Bad OldToNew Document Style FR-H.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\FRP1.A03 -Bad OldToNew Document Style FR-P.1:FOLDOUT dStyleIndex = '0 ' -D.C. Cook EOP and AOP Format - D.C. Cook EOP - Foldout Pages (AEP00) - Missing OldToNew 1 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\FRP2.A03 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\FRI3.A03 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\FRI3.A04 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\proc009.A05 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\proc012.A02 -Processing c:\16bit\debug\veaep\du1.prc\rtffiles\proc020.A02 -Missing Transition Destination ECA-1.1|BNS36 - 20870 -Missing Transition Destination ES-3.1|BIS - 28208 -Missing Transition Destination F-0.2|D0 - 24064 -Missing Transition Destination ECA-1.3|AUS33 - 21500 -Missing Transition Destination ECA-1.3|AUS36 - 21501 -Missing Transition Destination ECA-3.3|BBS - 27931 -Missing Transition Destination F-0.5|C0 - 26286 -Missing Transition Destination ECA-1.1|BFS33 - 20778 -Missing Transition Destination ES-0.2|B;S2 - 16049 -Missing Transition Destination ECA-2.1|B9S43 - 21901 -Missing Transition Destination ES-1.3|A6SB - 17844 -Missing Transition Destination F-0.6|E0 - 26550 -Missing Transition Destination ECA-2.1|B9S46 - 21902 -Missing Transition Destination F-0.6|C0 - 26454 -Missing Transition Destination FR-C.1|BFS25 - 24374 -Missing Transition Destination FR-H.1|ABS - 25557 -Missing Transition Destination E-1|B>S32 - 16585 -Missing Transition Destination E-1|B>S34 - 16586 -Missing Transition Destination F-0.3|C0 - 24916 -Missing Transition Destination FR-C.1|BFS26 - 24385 -Missing Transition Destination ECA-3.2|B0S - 22517 -Missing Transition Destination SUP-015|C0 - 25997 -Missing Transition Destination FR-C.2|B@S36 - 24777 -Missing Transition Destination FR-C.1|B@S36 - 24291 -Missing Transition Destination F-0.4|B0 - 18160 -Missing Transition Destination ECA-1.3|ANS36 - 21413 -Missing Transition Destination ECA-0.1|A5S - 20245 -Missing Transition Destination E-3|CES - 18664 -Missing Transition Destination ECA-1.1|BFS36 - 20779 -Missing Transition Destination ECA-1.3|ANS33 - 21412 -Missing Transition Destination ECA-1.1|BNS33 - 20869 -Missing Transition Destination F-0.1|C0 - 23809 -Missing Transition Destination FR-C.1|BIS36 - 24448 -Conversion completion time: 00:13:35.809 diff --git a/PROMS/DataLoader/logfile/AEP Database & Log Files/All 1s ConversionGlitches.xml b/PROMS/DataLoader/logfile/AEP Database & Log Files/All 1s ConversionGlitches.xml deleted file mode 100644 index 04ca7aec..00000000 --- a/PROMS/DataLoader/logfile/AEP Database & Log Files/All 1s ConversionGlitches.xml +++ /dev/null @@ -1,96 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/DataLoader/logfile/AEP Database & Log Files/VEPROMS.zip b/PROMS/DataLoader/logfile/AEP Database & Log Files/VEPROMS.zip deleted file mode 100644 index 47ae975f..00000000 Binary files a/PROMS/DataLoader/logfile/AEP Database & Log Files/VEPROMS.zip and /dev/null differ diff --git a/PROMS/DataLoader/logfile/Backup.bat b/PROMS/DataLoader/logfile/Backup.bat deleted file mode 100644 index 09557e81..00000000 --- a/PROMS/DataLoader/logfile/Backup.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMS] to disk = 'C:\Development\PROMS\DataLoader\logfile\.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMS.bat b/PROMS/DataLoader/logfile/BackupVEPROMS.bat deleted file mode 100644 index 343fafdc..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMS.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMS] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMS.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMSRGE_AbbyProc.bat b/PROMS/DataLoader/logfile/BackupVEPROMSRGE_AbbyProc.bat deleted file mode 100644 index 4d0d5710..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMSRGE_AbbyProc.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMSRGE_AbbyProc] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSRGE_AbbyProc.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMSRGE_Rev1SAMG.bat b/PROMS/DataLoader/logfile/BackupVEPROMSRGE_Rev1SAMG.bat deleted file mode 100644 index 6c239394..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMSRGE_Rev1SAMG.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMSRGE_Rev1SAMG] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSRGE_Rev1SAMG.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMSWCNADM_AI.bat b/PROMS/DataLoader/logfile/BackupVEPROMSWCNADM_AI.bat deleted file mode 100644 index 2ebc100a..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMSWCNADM_AI.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMSWCNADM_AI] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNADM_AI.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMSWCNALR_ALRCRJune11.bat b/PROMS/DataLoader/logfile/BackupVEPROMSWCNALR_ALRCRJune11.bat deleted file mode 100644 index 58bfc620..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMSWCNALR_ALRCRJune11.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMS_WCNALR_ALRCR] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNALR_ALRCRJune11.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMSWCNALR_ALRCRJune12.bat b/PROMS/DataLoader/logfile/BackupVEPROMSWCNALR_ALRCRJune12.bat deleted file mode 100644 index 583af691..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMSWCNALR_ALRCRJune12.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMS_WCNALR_ALRCR] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNALR_ALRCRJune12.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMSWCNALR_ALRLOCALJune12.bat b/PROMS/DataLoader/logfile/BackupVEPROMSWCNALR_ALRLOCALJune12.bat deleted file mode 100644 index 87aaac96..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMSWCNALR_ALRLOCALJune12.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMS_WCNALR_ALRLOCAL] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNALR_ALRLOCALJune12.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMSWCNCAP_AIJune12.bat b/PROMS/DataLoader/logfile/BackupVEPROMSWCNCAP_AIJune12.bat deleted file mode 100644 index 4d0c2c07..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMSWCNCAP_AIJune12.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMS_WCNCAP_AI] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNCAP_AIJune12.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMSWCNFP.bat b/PROMS/DataLoader/logfile/BackupVEPROMSWCNFP.bat deleted file mode 100644 index 5a6db7d7..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMSWCNFP.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMSWCNFP] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNFP.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMSWCNSYS_SYS.bat b/PROMS/DataLoader/logfile/BackupVEPROMSWCNSYS_SYS.bat deleted file mode 100644 index 99211edc..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMSWCNSYS_SYS.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMS_WCNSYS_SYS] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNSYS_SYS.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMS_RGE_EOPS.bat b/PROMS/DataLoader/logfile/BackupVEPROMS_RGE_EOPS.bat deleted file mode 100644 index d225e7d6..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMS_RGE_EOPS.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMS_Ginna_EOPS] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMS_RGE_EOPS.bak'" -pause diff --git a/PROMS/DataLoader/logfile/BackupVEPROMS_WCN_EMGS.bat b/PROMS/DataLoader/logfile/BackupVEPROMS_WCN_EMGS.bat deleted file mode 100644 index 0beb35b6..00000000 --- a/PROMS/DataLoader/logfile/BackupVEPROMS_WCN_EMGS.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "backup database [VEPROMS_WCN_EMGS] to disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMS_WCN_EMGS.bak'" -pause diff --git a/PROMS/DataLoader/logfile/ConversionErrors.txt b/PROMS/DataLoader/logfile/ConversionErrors.txt deleted file mode 100644 index f391a34b..00000000 --- a/PROMS/DataLoader/logfile/ConversionErrors.txt +++ /dev/null @@ -1,1022 +0,0 @@ -Changed database context to 'master'. -Dropping existing database VEPROMS_WCNCAP_AI -Creating Database VEPROMS_WCNCAP_AI - C:\Development\PROMS\Data\VEPROMS_WCNCAP_AI.mdf -VEPROMS_WCNCAP_AI Created -DBCC execution completed. If DBCC printed error messages, contact your system administrator. -{sp_dbcmptlevel} Completed -Changed database context to 'VEPROMS_WCNCAP_AI'. -Trigger Fired -Changed database context to 'master'. -Adding procedures and functions to VEPROMS_WCNCAP_AI -Table Creation: DeleteLog Succeeded -Procedure Creation: vlnErrorHandler Succeeded -Procedure Creation: addAnnotation Succeeded -Procedure Creation: addAnnotationType Succeeded -Procedure Creation: addAssignment Succeeded -Procedure Creation: addAssociation Succeeded -Procedure Creation: addConnection Succeeded -Procedure Creation: addContent Succeeded -Procedure Creation: addDetail Succeeded -Procedure Creation: addDocument Succeeded -Procedure Creation: addDocVersion Succeeded -Procedure Creation: addDROUsage Succeeded -Procedure Creation: addEntry Succeeded -Procedure Creation: addFigure Succeeded -Procedure Creation: addFiguresByROFstIDandImageIDs Succeeded -Procedure Creation: addFolder Succeeded -Procedure Creation: addFormat Succeeded -Procedure Creation: addGrid Succeeded -Procedure Creation: addGroup Succeeded -Procedure Creation: addImage Succeeded -Procedure Creation: addItem Succeeded -Procedure Creation: addPart Succeeded -Procedure Creation: updatePart Succeeded -Procedure Creation: getItem Succeeded -Procedure Creation: addItemChild Succeeded -Procedure Creation: addItemSiblingAfter Succeeded -Procedure Creation: addItemSiblingBefore Succeeded -Procedure Creation: addMembership Succeeded -Procedure Creation: addPdf Succeeded -Procedure Creation: addPermission Succeeded -Procedure Creation: addRODb Succeeded -Procedure Creation: addROFst Succeeded -Procedure Creation: addROImage Succeeded -Procedure Creation: addRole Succeeded -Procedure Creation: addRoUsage Succeeded -Procedure Creation: addTransition Succeeded -Procedure Creation: addUser Succeeded -Procedure Creation: addZContent Succeeded -Procedure Creation: addZTransition Succeeded -Procedure Creation: CopyItemAndChildren Succeeded -Procedure Creation: deleteAllPdfs Succeeded -Procedure Creation: deleteAnnotation Succeeded -Procedure Creation: deleteAnnotationType Succeeded -Procedure Creation: deleteAssignment Succeeded -Procedure Creation: deleteAssociation Succeeded -Procedure Creation: deleteConnection Succeeded -Procedure Creation: deleteContent Succeeded -Procedure Creation: deleteDetail Succeeded -Procedure Creation: deleteDocument Succeeded -Procedure Creation: deleteDocVersion Succeeded -Procedure Creation: deleteDROUsage Succeeded -Procedure Creation: deleteEntry Succeeded -Procedure Creation: deleteFigure Succeeded -Procedure Creation: deleteFolder Succeeded -Procedure Creation: deleteFormat Succeeded -Procedure Creation: deleteGrid Succeeded -Procedure Creation: deleteGroup Succeeded -Procedure Creation: deleteImage Succeeded -Procedure Creation: deleteItem Succeeded -Procedure Creation: DeleteItemAndChildren Succeeded -Procedure Creation: DeleteItemAndChildrenTest Succeeded -Procedure Creation: deleteMembership Succeeded -Procedure Creation: deletePart Succeeded -Procedure Creation: deletePdf Succeeded -Procedure Creation: deletePermission Succeeded -Procedure Creation: deleteRODb Succeeded -Procedure Creation: deleteROFst Succeeded -Procedure Creation: deleteROImage Succeeded -Procedure Creation: deleteRole Succeeded -Procedure Creation: deleteRoUsage Succeeded -Procedure Creation: deleteTransition Succeeded -Procedure Creation: deleteUser Succeeded -Procedure Creation: deleteZContent Succeeded -Procedure Creation: deleteZTransition Succeeded -Procedure Creation: existsAnnotation Succeeded -Procedure Creation: existsAnnotationType Succeeded -Procedure Creation: existsAssignment Succeeded -Procedure Creation: existsAssociation Succeeded -Procedure Creation: existsConnection Succeeded -Procedure Creation: existsContent Succeeded -Procedure Creation: existsDetail Succeeded -Procedure Creation: existsDocument Succeeded -Procedure Creation: existsDocVersion Succeeded -Procedure Creation: existsDROUsage Succeeded -Procedure Creation: existsEntry Succeeded -Procedure Creation: existsFigure Succeeded -Procedure Creation: existsFolder Succeeded -Procedure Creation: existsFormat Succeeded -Procedure Creation: existsGrid Succeeded -Procedure Creation: existsGroup Succeeded -Procedure Creation: existsImage Succeeded -Procedure Creation: existsItem Succeeded -Procedure Creation: existsMembership Succeeded -Procedure Creation: existsPart Succeeded -Procedure Creation: existsPdf Succeeded -Procedure Creation: existsPermission Succeeded -Procedure Creation: existsRODb Succeeded -Procedure Creation: existsROFst Succeeded -Procedure Creation: existsROImage Succeeded -Procedure Creation: existsRole Succeeded -Procedure Creation: existsRoUsage Succeeded -Procedure Creation: existsTransition Succeeded -Procedure Creation: existsUser Succeeded -Procedure Creation: existsZContent Succeeded -Procedure Creation: existsZTransition Succeeded -TableFunction Creation: FindText Succeeded -Procedure Creation: getAffectedDRoUsages Succeeded -Procedure Creation: getAffectedRoUsages Succeeded -Procedure Creation: getAffectedTransitions Succeeded -Procedure Creation: getAnnotation Succeeded -Procedure Creation: getAnnotations Succeeded -Procedure Creation: getAnnotationsByItemID Succeeded -Procedure Creation: getAnnotationsByTypeID Succeeded -Procedure Creation: getAnnotationType Succeeded -Procedure Creation: getAnnotationTypeByName Succeeded -Procedure Creation: getAnnotationTypes Succeeded -Procedure Creation: getAssignment Succeeded -Procedure Creation: getAssignments Succeeded -Procedure Creation: getAssignmentsByFolderID Succeeded -Procedure Creation: getAssignmentsByGID Succeeded -Procedure Creation: getAssignmentsByRID Succeeded -Procedure Creation: getAssociation Succeeded -Procedure Creation: getAssociationByVersionID_ROFstID Succeeded -Procedure Creation: getAssociations Succeeded -Procedure Creation: getAssociationsByROFstID Succeeded -Procedure Creation: getAssociationsByVersionID Succeeded -Procedure Creation: getChildFolders Succeeded -Procedure Creation: getChildFormats Succeeded -Procedure Creation: getConnection Succeeded -Procedure Creation: getConnectionByName Succeeded -Procedure Creation: getConnections Succeeded -Procedure Creation: getContent Succeeded -Procedure Creation: getContentAudit Succeeded -Procedure Creation: getContentAudits Succeeded -Procedure Creation: getContentAuditsByContentID Succeeded -Procedure Creation: getContents Succeeded -Procedure Creation: getContentsByFormatID Succeeded -Procedure Creation: getDetail Succeeded -Procedure Creation: getDetails Succeeded -Procedure Creation: getDetailsByContentID Succeeded -Procedure Creation: getDocument Succeeded -Procedure Creation: getDocumentAudit Succeeded -Procedure Creation: getDocumentAudits Succeeded -Procedure Creation: getDocumentAuditsByDocID Succeeded -Procedure Creation: getDocuments Succeeded -Procedure Creation: getDocVersion Succeeded -Procedure Creation: getDocVersions Succeeded -Procedure Creation: getDocVersionsByFolderID Succeeded -Procedure Creation: getDocVersionsByFormatID Succeeded -Procedure Creation: getDocVersionsByItemID Succeeded -Procedure Creation: getDROUsage Succeeded -Procedure Creation: getDROUsages Succeeded -Procedure Creation: getDROUsagesByDocID Succeeded -Procedure Creation: getDROUsagesByRODbID Succeeded -Procedure Creation: getDRoUsagesByROIDs Succeeded -Procedure Creation: getEntries Succeeded -Procedure Creation: getEntriesByContentID Succeeded -Procedure Creation: getEntriesByDocID Succeeded -Procedure Creation: getEntry Succeeded -Procedure Creation: getEntryAudit Succeeded -Procedure Creation: getEntryAudits Succeeded -Procedure Creation: getEntryAuditsByContentID Succeeded -Procedure Creation: getExternalTransitions Succeeded -Procedure Creation: getExternalTransitionsToChildren Succeeded -Procedure Creation: getFigure Succeeded -Procedure Creation: getFigureByROFstID_ImageID Succeeded -Procedure Creation: getFigures Succeeded -Procedure Creation: getFiguresByImageID Succeeded -Procedure Creation: getFiguresByROFstID Succeeded -Procedure Creation: getFolder Succeeded -Procedure Creation: getFolderByParentID_Name Succeeded -Procedure Creation: getFolders Succeeded -Procedure Creation: getFoldersByDBID Succeeded -Procedure Creation: getFoldersByFormatID Succeeded -Procedure Creation: getFormat Succeeded -Procedure Creation: getJustFormat Succeeded -Procedure Creation: getFormat Succeeded -Procedure Creation: getFormatByParentID_Name Succeeded -Procedure Creation: getFormats Succeeded -Procedure Creation: getGrid Succeeded -Procedure Creation: getGridAudit Succeeded -Procedure Creation: getGridAudits Succeeded -Procedure Creation: getGridAuditsByContentID Succeeded -Procedure Creation: getGrids Succeeded -Procedure Creation: getGridsByContentID Succeeded -Procedure Creation: getGroup Succeeded -Procedure Creation: getGroupByGroupName Succeeded -Procedure Creation: getGroups Succeeded -Procedure Creation: getImage Succeeded -Procedure Creation: getImageAudit Succeeded -Procedure Creation: getImageAudits Succeeded -Procedure Creation: getImageAuditsByContentID Succeeded -Procedure Creation: getImages Succeeded -Procedure Creation: getImagesByContentID Succeeded -Procedure Creation: getItemAndChildren Succeeded -Procedure Creation: getItemAudit Succeeded -Procedure Creation: getItemAudits Succeeded -Procedure Creation: getItemAuditsByItemID Succeeded -Procedure Creation: getItemNextAndChildren Succeeded -Procedure Creation: getItems Succeeded -Procedure Creation: getItemsByContentID Succeeded -Procedure Creation: getItemsByPartType Succeeded -Procedure Creation: getItemsByPartTypeAndContent Succeeded -Procedure Creation: getJustRODb Succeeded -Procedure Creation: getJustROFst Succeeded -Procedure Creation: getLibraryDocuments Succeeded -Procedure Creation: getMembership Succeeded -Procedure Creation: getMemberships Succeeded -Procedure Creation: getMembershipsByGID Succeeded -Procedure Creation: getMembershipsByUID Succeeded -Procedure Creation: getNextItems Succeeded -Procedure Creation: getParentFolder Succeeded -Procedure Creation: getParentFormat Succeeded -Procedure Creation: getPart Succeeded -Procedure Creation: getPartAudit Succeeded -Procedure Creation: getPartAudits Succeeded -Procedure Creation: getPartAuditsByContentID Succeeded -Procedure Creation: getParts Succeeded -Procedure Creation: getPartsByContentID Succeeded -Procedure Creation: getPartsByItemID Succeeded -Procedure Creation: getPastedAffectedTransitions Succeeded -Procedure Creation: getPdf Succeeded -Procedure Creation: getPdfs Succeeded -Procedure Creation: getPdfsByDocID Succeeded -Procedure Creation: getPermission Succeeded -Procedure Creation: getPermissions Succeeded -Procedure Creation: getPermissionsByRID Succeeded -Procedure Creation: getPreviousItem Succeeded -Procedure Creation: getRODb Succeeded -Procedure Creation: getRODbByFolderPath Succeeded -Procedure Creation: getRODbs Succeeded -Procedure Creation: getROFst Succeeded -Procedure Creation: getROFstByRODbID_DTS Succeeded -Procedure Creation: getRoFstBySize Succeeded -Procedure Creation: getROFsts Succeeded -Procedure Creation: getROFstsByRODbID Succeeded -Procedure Creation: getROImage Succeeded -Procedure Creation: getROImageByRODbID_FileName_DTS Succeeded -Procedure Creation: getROImageByROFstID_FileName Succeeded -Procedure Creation: getROImages Succeeded -Procedure Creation: getROImagesByRODbID Succeeded -Procedure Creation: getROImagesByRODbIDNoData Succeeded -Procedure Creation: getRole Succeeded -Procedure Creation: getRoleByName Succeeded -Procedure Creation: getRoles Succeeded -Procedure Creation: getRoUsage Succeeded -Procedure Creation: getRoUsages Succeeded -Procedure Creation: getRoUsagesByContentID Succeeded -Procedure Creation: getRoUsagesByRODbID Succeeded -Procedure Creation: getRoUsagesByROIDs Succeeded -Procedure Creation: getTopFolder Succeeded -Procedure Creation: getTransition Succeeded -Procedure Creation: getTransitions Succeeded -Procedure Creation: getTransitionsByFromID Succeeded -Procedure Creation: getTransitionsByRangeID Succeeded -Procedure Creation: getTransitionsByToID Succeeded -Procedure Creation: getUser Succeeded -Procedure Creation: getUsers Succeeded -Procedure Creation: getZContent Succeeded -Procedure Creation: getZContents Succeeded -Procedure Creation: getZContentsByContentID Succeeded -Procedure Creation: getZTransition Succeeded -Procedure Creation: getZTransitions Succeeded -Procedure Creation: getZTransitionsByTransitionID Succeeded -Procedure Creation: PasteItemReplace Succeeded -Procedure Creation: PasteItemSiblingAfter Succeeded -Procedure Creation: PasteItemSiblingBefore Succeeded -Procedure Creation: purgeData Succeeded -Procedure Creation: Standardize Succeeded -Procedure Creation: updateAnnotation Succeeded -Procedure Creation: updateAnnotationType Succeeded -Procedure Creation: updateAssignment Succeeded -Procedure Creation: updateAssociation Succeeded -Procedure Creation: updateConnection Succeeded -Procedure Creation: updateContent Succeeded -Procedure Creation: updateDetail Succeeded -Procedure Creation: updateDocument Succeeded -Procedure Creation: updateDocVersion Succeeded -Procedure Creation: updateDROUsage Succeeded -Procedure Creation: updateEntry Succeeded -Procedure Creation: updateFigure Succeeded -Procedure Creation: updateFolder Succeeded -Procedure Creation: updateFormat Succeeded -Procedure Creation: updateGrid Succeeded -Procedure Creation: updateGroup Succeeded -Procedure Creation: updateImage Succeeded -Procedure Creation: updateItem Succeeded -Procedure Creation: updateMembership Succeeded -Procedure Creation: updatePdf Succeeded -Procedure Creation: updatePermission Succeeded -Procedure Creation: updateRODb Succeeded -Procedure Creation: updateROFst Succeeded -Procedure Creation: updateROImage Succeeded -Procedure Creation: updateRole Succeeded -Procedure Creation: updateRoUsage Succeeded -Procedure Creation: updateTransition Succeeded -Procedure Creation: updateUser Succeeded -Procedure Creation: updateZContent Succeeded -Procedure Creation: updateZTransition Succeeded -ScalarFunction Creation: ve_GetChildCount Succeeded -ScalarFunction Creation: ve_GetFolderPath Succeeded -ScalarFunction Creation: ve_GetNextTranCount Succeeded -ScalarFunction Creation: ve_GetParts Succeeded -ScalarFunction Creation: ve_GetPath Succeeded -ScalarFunction Creation: ve_GetPathFromContentID Succeeded -ScalarFunction Creation: ve_GetShortPart Succeeded -ScalarFunction Creation: ve_GetShortPath Succeeded -ScalarFunction Creation: ve_GetShortPathFromContentID Succeeded -ScalarFunction Creation: ve_GetSiblingCount Succeeded -TableFunction Creation: vefn_AllHighLevelSteps Succeeded -TableFunction Creation: vefn_AllHighLevelStepTransitions Succeeded -ScalarFunction Creation: vefn_AllSections Succeeded -TableFunction Creation: vefn_AnnotationTypeSplit Succeeded -TableFunction Creation: vefn_ChildItems Succeeded -TableFunction Creation: vefn_ChildItemsRange Succeeded -TableFunction Creation: vefn_ChildrenItems Succeeded -ScalarFunction Creation: vefn_CompareTranFormat Succeeded -TableFunction Creation: vefn_DocVersionSplit Succeeded -TableFunction Creation: vefn_DVContent Succeeded -TableFunction Creation: vefn_FindAffectedTransitions Succeeded -TableFunction Creation: vefn_FindContentText Succeeded -TableFunction Creation: vefn_FindExternalChildTransitions Succeeded -TableFunction Creation: vefn_FindExternalTransitions Succeeded -TableFunction Creation: vefn_FindInternalTransitions Succeeded -TableFunction Creation: vefn_FindInternalTransitionsForCopy Succeeded -TableFunction Creation: vefn_FindText Succeeded -ScalarFunction Creation: vefn_FirstLink Succeeded -ScalarFunction Creation: vefn_FixROData Succeeded -ScalarFunction Creation: vefn_FixROText Succeeded -ScalarFunction Creation: vefn_FixSearchString Succeeded -ScalarFunction Creation: vefn_FixTransitionDataForCopy Succeeded -ScalarFunction Creation: vefn_FixTransitionText Succeeded -ScalarFunction Creation: vefn_FixTransitionTextForCopy Succeeded -ScalarFunction Creation: vefn_GetDocumentPageLength Succeeded -TableFunction Creation: vefn_GetFormatField Succeeded -TableFunction Creation: vefn_GetFormatFieldByStepType Succeeded -TableFunction Creation: vefn_GetFormatFieldByStepType2 Succeeded -TableFunction Creation: vefn_GetFormatFieldNoValue Succeeded -TableFunction Creation: vefn_GetFormatValues Succeeded -TableFunction Creation: vefn_GetGenMacMacros Succeeded -ScalarFunction Creation: vefn_GetInheritedFormat Succeeded -ScalarFunction Creation: vefn_GetNewTranType Succeeded -TableFunction Creation: vefn_GetNullFormatValues Succeeded -TableFunction Creation: vefn_GetTokens Succeeded -ScalarFunction Creation: vefn_GetTransFormat Succeeded -TableFunction Creation: vefn_HighLevelStepTransitions Succeeded -TableFunction Creation: vefn_NextStepTransitions Succeeded -ScalarFunction Creation: vefn_RemoveExtraText Succeeded -ScalarFunction Creation: vefn_RemoveRange Succeeded -TableFunction Creation: vefn_SectionFormats Succeeded -TableFunction Creation: vefn_SiblingAndChildrenItems Succeeded -TableFunction Creation: vefn_SiblingChildrenItems Succeeded -TableFunction Creation: vefn_SiblingItems Succeeded -TableFunction Creation: vefn_SplitInt Succeeded -TableFunction Creation: vefn_SplitROSearch Succeeded -ScalarFunction Creation: vefn_XmlPath Succeeded -Procedure Creation: vesp_CleanUpItems Succeeded -Procedure Creation: vesp_GetFormatFields Succeeded -Procedure Creation: vesp_GetFormatFieldsAll Succeeded -Procedure Creation: vesp_GetFormatFieldsByStepType Succeeded -Procedure Creation: vesp_GetFormatFieldsByStepType2 Succeeded -Procedure Creation: vesp_GetFormatFieldsNoValue Succeeded -Procedure Creation: vesp_GetFormatGroupFields Succeeded -Procedure Creation: vesp_GetFormatGroupFieldsByStepType Succeeded -Procedure Creation: vesp_GetFormatGroupFieldsNoValues Succeeded -Procedure Creation: vesp_GetGenMacMacros Succeeded -Procedure Creation: vesp_ListChildren Succeeded -Procedure Creation: vesp_ListContentPath Succeeded -Procedure Creation: vesp_ListContentsByItemID Succeeded -Procedure Creation: vesp_ListItemAndChildren Succeeded -Procedure Creation: vesp_ListItems Succeeded -Procedure Creation: vesp_ListItemsAndContent Succeeded -Procedure Creation: vesp_ListTables Succeeded -Procedure Creation: vesp_ListTables2 Succeeded -Procedure Creation: vesp_ListTables3 Succeeded -Procedure Creation: vesp_ResetFolderManualOrder Succeeded -Procedure Creation: vesp_SearchAnnotationItemAndChildren Succeeded -Procedure Creation: vesp_SearchItemAndChildren Succeeded -Procedure Creation: vesp_SearchItemAndChildrenNew Succeeded -Procedure Creation: vesp_SearchROItemAndChildren Succeeded -Loading Format base -Loading Format AEP -Loading Format AEP_00all.xml -Loading Format AEP_00 -Loading Format AEP_01all.xml -Loading Format AEP_01 -Loading Format AEP_02all.xml -Loading Format AEP_02 -Loading Format AEPAPPR -Loading Format AEPCHID -Loading Format AEPCHID_00all.xml -Loading Format AEPCHID_00 -Loading Format AEPDEV -Loading Format BGEALN -Loading Format BGEEOP -Loading Format BGEEOP_00all.xml -Loading Format BGEEOP_00 -Loading Format BGEOI -Loading Format BGEOI_00all.xml -Loading Format BGEOI_00 -Loading Format BGESTP -Loading Format BGEVL -Loading Format CAL1 -Loading Format CAL2 -Loading Format CAL2_00all.xml -Loading Format CAL2_00 -Loading Format CALBCK -Loading Format CALOTO -Loading Format CATADEV -Loading Format CAT -Loading Format CATBOX -Loading Format CATDEV -Loading Format CATEBCK -Loading Format CPBCK2 -Loading Format CPBCK -Loading Format CPBCK_00all.xml -Loading Format CPBCK_00 -Loading Format CPBCK_01all.xml -Loading Format CPBCK_01 -Loading Format CPLA -Loading Format CPL -Loading Format CPL_00all.xml -Loading Format CPL_00 -Loading Format CPL_01all.xml -Loading Format CPL_01 -Loading Format CPL_02all.xml -Loading Format CPL_02 -Loading Format CPL_03all.xml -Loading Format CPL_03 -Loading Format CPLRDEV -Loading Format CPLS2 -Loading Format CPLS -Loading Format CPLSDEV -Loading Format CPLSSDD -Loading Format CPLSSUM -Loading Format CWE -Loading Format CWE_00all.xml -Loading Format CWE_00 -Loading Format CWE_01all.xml -Loading Format CWE_01 -Loading Format CWEDEV -Loading Format CWER -Loading Format CWER_00all.xml -Loading Format CWER_00 -Loading Format CWER_01all.xml -Loading Format CWER_01 -Loading Format EBCK -Loading Format ELFDEV -Loading Format EN -Loading Format ESFDEV -Loading Format EXCLN -Loading Format EXCLN_00all.xml -Loading Format EXCLN_00 -Loading Format EXCLN_01all.xml -Loading Format EXCLN_01 -Loading Format EXEBCK -Loading Format EXEBCK_00all.xml -Loading Format EXEBCK_00 -Loading Format EXEDEV -Loading Format FNP -Loading Format FNP_00all.xml -Loading Format FNP_00 -Loading Format FNP_01all.xml -Loading Format FNP_01 -Loading Format FNPCAS -Loading Format FNPDEV -Loading Format FNPEBK -Loading Format FPL -Loading Format FPLBCK -Loading Format GEN -Loading Format GENDEV -Loading Format GENPLAN -Loading Format GPCA -Loading Format GPCA_00all.xml -Loading Format GPCA_00 -Loading Format GPC -Loading Format HLP -Loading Format HLPDEV -Loading Format IP2 -Loading Format IP2_00all.xml -Loading Format IP2_00 -Loading Format IP2_01all.xml -Loading Format IP2_01 -Loading Format IP2_02all.xml -Loading Format IP2_02 -Loading Format IP2_03all.xml -Loading Format IP2_03 -Loading Format IP2BCK -Loading Format IP2DEV -Loading Format IP3 -Loading Format IP3_00all.xml -Loading Format IP3_00 -Loading Format IP3_01all.xml -Loading Format IP3_01 -Loading Format IP3_02all.xml -Loading Format IP3_02 -Loading Format IP3_03all.xml -Loading Format IP3_03 -Loading Format IP3_06all.xml -Loading Format IP3_06 -Loading Format IP3_07all.xml -Loading Format IP3_07 -Loading Format IP3_08all.xml -Loading Format IP3_08 -Loading Format IP3_09all.xml -Loading Format IP3_09 -Loading Format IP3_10all.xml -Loading Format IP3_10 -Loading Format IP3_11all.xml -Loading Format IP3_11 -Loading Format IP3_12all.xml -Loading Format IP3_12 -Loading Format IP3_13all.xml -Loading Format IP3_13 -Loading Format IP3_14all.xml -Loading Format IP3_14 -Loading Format IP3_15all.xml -Loading Format IP3_15 -Loading Format IP3DEV -Loading Format IP3DEV_00all.xml -Loading Format IP3DEV_00 -Loading Format MAING -Loading Format MCG -Loading Format MCGBOX -Loading Format MCGDEV -Loading Format MCGEBCK -Loading Format NSPAB -Loading Format NSPAB_00all.xml -Loading Format NSPAB_00 -Loading Format NSPAB_01all.xml -Loading Format NSPAB_01 -Loading Format NSPAB_02all.xml -Loading Format NSPAB_02 -Loading Format NSP -Loading Format NSP_00all.xml -Loading Format NSP_00 -Loading Format NSPARP -Loading Format NSPARP_00all.xml -Loading Format NSPARP_00 -Loading Format NSPBCK -Loading Format NSPDEV -Loading Format NSPEDEV -Loading Format NSPFC -Loading Format NSPIFG2 -Loading Format NSPIFG -Loading Format NSPIFG_00all.xml -Loading Format NSPIFG_00 -Loading Format NSPPE -Loading Format NSPSAM -Loading Format NSPWG -Loading Format OHLP -Loading Format RGE -Loading Format RGEBCK -Loading Format RGEBCK_00all.xml -Loading Format RGEBCK_00 -Loading Format RGEDEV -Loading Format RGESAM1 -Loading Format RGESAM2 -Loading Format RGESMPE -Loading Format ROB -Loading Format ROB_00all.xml -Loading Format ROB_00 -Loading Format ROB_01all.xml -Loading Format ROB_01 -Loading Format ROB_02all.xml -Loading Format ROB_02 -Loading Format SETDEV -Loading Format SHE -Loading Format SHEDEV -Loading Format SHERVSU -Loading Format SHESSD -Loading Format SHESSD_00all.xml -Loading Format SHESSD_00 -Loading Format TP -Loading Format TP_00all.xml -Loading Format TP_00 -Loading Format TPBCK2 -Loading Format TPBCK -Loading Format TPBCK_00all.xml -Loading Format TPBCK_00 -Loading Format TPBCK_01all.xml -Loading Format TPBCK_01 -Loading Format TUECABN -Loading Format TUEC -Loading Format TUECDEV -Loading Format VLNCAS -Loading Format WCN1 -Loading Format WCN2 -Loading Format WCNBCK -Loading Format WCNCKL -Loading Format WCNCLB -Loading Format WCNDEV -Loading Format WCNOFB -Loading Format WEP2 -Loading Format WEPBCK -Loading Format WEPENB -Loading Format WEPENB_00all.xml -Loading Format WEPENB_00 -Loading Format WEPENB_01all.xml -Loading Format WEPENB_01 -Loading Format WEPSAM2 -Loading Format WEPSAMG -Loading Format WPBA -Loading Format WPB -Loading Format WPB_20all.xml -Loading Format WPB_20 -Loading Format WPB_22all.xml -Loading Format WPB_22 -Loading Format WPS -Loading Format WPS_00all.xml -Loading Format WPS_00 -Loading Format WPS_01all.xml -Loading Format WPS_01 -Loading Format WPS_02all.xml -Loading Format WPS_02 -Loading Format WPSARP -Loading Format WPSARP_00all.xml -Loading Format WPSARP_00 -Loading Format WPSBCK -Loading Format WPSBCK_00all.xml -Loading Format WPSBCK_00 -Loading Format WPSDEV -Loading Format WPSDOM -Loading Format WPSDOM_00all.xml -Loading Format WPSDOM_00 -Loading Format WPSDOM_01all.xml -Loading Format WPSDOM_01 -Loading Format WPSDOM_02all.xml -Loading Format WPSDOM_02 -Loading Format WPSOP -Loading Format WPSOP_00all.xml -Loading Format WPSOP_00 -Loading Format WPSOP_01all.xml -Loading Format WPSOP_01 -Loading Format WPSOP_02all.xml -Loading Format WPSOP_02 -Loading Format WPSOP_03all.xml -Loading Format WPSOP_03 -Loading Format WPSOP_04all.xml -Loading Format WPSOP_04 -Loading Format WPSOP_05all.xml -Loading Format WPSOP_05 -Loading Format WPSSAMG -Formats Updated -Processing Procedure AI 28A-001 12189796 -Processing Procedure AI 28A-003 12396264 -Processing Procedure AI 28A-004 12401516 -Processing Procedure AI 28A-005 12406660 -Processing Procedure AI 28A-006 12411724 -Processing Procedure AI 28A-007 12416768 -Processing Procedure AI 28A-008 12421832 -Processing Procedure AI 28A-016 12427096 -Processing Procedure AI 28A-017 12432212 -Processing Procedure AI 28D-001 12437364 -Processing Procedure AI 28E-007 12442484 -Processing Procedure AI 28E-009 12447548 -Processing Procedure AI 34-006 12452776 -Processing Procedure AI XX-XXX 12457888 -Processing Procedure AI 34-XXX 12462948 -Processing Procedure AI 28D-003 12468008 -Processing Procedure AI 28A-010 12473072 -Processing Procedure AI 28A-EVAL 12478668 -Processing Procedure AI28AEVAL-db 12483732 -Processing Procedure AI28AEVAL-mw 12488800 -'Created' 'Not Disposed' 'Not Finalized' -AnnotationType 6 6 6 -Connection 1 1 1 -Content 20 20 20 -DocVersion 1 1 1 -DocVersionInfo 1 1 1 -Folder 4 4 4 -Format 190 188 190 -FormatContents 1 1 1 -FormatDocVersions 1 1 1 -FormatFolder 1 1 1 -FormatFolders 1 1 1 -FormatInfo 2 2 2 -FormatInfoList 1 1 1 -Item 20 20 20 - - - - -Computer Name: KATHY-VISTA -Data Set: c:\16bit\debug\vewcncap\ai.prc -Before MigrateROFST12650728 -'Created' 'Not Disposed' 'Not Finalized' -AnnotationType 6 6 6 -Connection 1 1 1 -ConnectionInfo 1 1 1 -Content 20 20 20 -ContentInfo 1 1 1 -DocVersion 1 1 1 -DocVersionInfo 2 2 2 -DocVersionInfoList 1 1 1 -Folder 4 4 4 -FolderInfo 6 6 6 -FolderInfoList 1 1 1 -Format 190 188 190 -FormatContents 1 1 1 -FormatDocVersions 1 1 1 -FormatFolder 1 1 1 -FormatFolders 1 1 1 -FormatInfo 2 2 2 -FormatInfoList 1 1 1 -Group 1 1 1 -Item 20 20 20 -ItemInfo 1 1 1 -Permission 6 6 6 -Role 6 6 6 -User 3 3 3 -UserMembership 3 3 3 -UserMemberships 3 3 3 - -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-005.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-016.BMP -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-042.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-046.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-052.BMP -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-053.BMP -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-055.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-056.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-057.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-058.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-059.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-060.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-061.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-064.bmp -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-068.bmp -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-070.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-075.TIF -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-076.tif -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-077.tif -Cannot Find Image File c:\16bit\debug\WCNRO\RO\00-079.tif -After MigrateROFST92605664 -'Created' 'Not Disposed' 'Not Finalized' -AnnotationType 6 6 6 -AssociationInfo 1 1 1 -AssociationInfoList 1 1 1 -Connection 1 1 1 -ConnectionInfo 1 1 1 -Content 20 20 20 -ContentInfo 1 1 1 -DocVersion 1 1 1 -DocVersionAssociation 1 1 1 -DocVersionAssociations 1 1 1 -DocVersionInfo 2 2 2 -DocVersionInfoList 1 1 1 -Figure 1246 0 0 -Folder 4 4 4 -FolderInfo 6 6 6 -FolderInfoList 1 1 1 -Format 190 188 190 -FormatContents 1 1 1 -FormatDocVersions 1 1 1 -FormatFolder 1 1 1 -FormatFolders 1 1 1 -FormatInfo 2 2 2 -FormatInfoList 1 1 1 -Group 1 1 1 -Item 20 20 20 -ItemInfo 1 1 1 -Permission 6 6 6 -RODb 2 1 1 -RODbInfo 1 1 1 -RODbInfoList 1 1 1 -ROFst 3 1 2 -ROFstAssociation 1 1 1 -ROFstAssociations 1 1 1 -ROFstFigures 1 1 1 -ROFstInfo 1 1 1 -ROImage 1246 0 0 -Role 6 6 6 -User 3 3 3 -UserMembership 3 3 3 -UserMemberships 3 3 3 - -Before MigrateLibDocs92609364 -'Created' 'Not Disposed' 'Not Finalized' -AnnotationType 6 6 6 -AssociationInfo 1 1 1 -AssociationInfoList 1 1 1 -Connection 1 1 1 -ConnectionInfo 1 1 1 -Content 20 20 20 -ContentInfo 1 1 1 -DocVersion 1 1 1 -DocVersionAssociation 1 1 1 -DocVersionAssociations 1 1 1 -DocVersionInfo 2 2 2 -DocVersionInfoList 1 1 1 -Figure 1246 0 0 -Folder 4 4 4 -FolderInfo 6 6 6 -FolderInfoList 1 1 1 -Format 190 188 190 -FormatContents 1 1 1 -FormatDocVersions 1 1 1 -FormatFolder 1 1 1 -FormatFolders 1 1 1 -FormatInfo 2 2 2 -FormatInfoList 1 1 1 -Group 1 1 1 -Item 20 20 20 -ItemInfo 1 1 1 -Permission 6 6 6 -RODb 2 1 1 -RODbInfo 1 1 1 -RODbInfoList 1 1 1 -ROFst 3 1 2 -ROFstAssociation 1 1 1 -ROFstAssociations 1 1 1 -ROFstFigures 1 1 1 -ROFstInfo 1 1 1 -ROImage 1246 0 0 -Role 6 6 6 -User 3 3 3 -UserMembership 3 3 3 -UserMemberships 3 3 3 - -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmpDBA.tmp 92618228 -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp19DD.tmp 92625424 -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp2008.tmp 92625528 -After MigrateLibDocs93017908 -'Created' 'Not Disposed' 'Not Finalized' -AnnotationType 6 6 6 -AssociationInfo 1 1 1 -AssociationInfoList 1 1 1 -Connection 1 1 1 -ConnectionInfo 1 1 1 -Content 20 20 20 -ContentInfo 1 1 1 -Document 3 0 1 -DocVersion 1 1 1 -DocVersionAssociation 1 1 1 -DocVersionAssociations 1 1 1 -DocVersionInfo 2 2 2 -DocVersionInfoList 1 1 1 -Figure 1246 0 0 -Folder 4 4 4 -FolderInfo 6 6 6 -FolderInfoList 1 1 1 -Format 190 188 190 -FormatContents 1 1 1 -FormatDocVersions 1 1 1 -FormatFolder 1 1 1 -FormatFolders 1 1 1 -FormatInfo 2 2 2 -FormatInfoList 1 1 1 -Group 1 1 1 -Item 20 20 20 -ItemInfo 1 1 1 -Permission 6 6 6 -RODb 2 1 1 -RODbInfo 1 1 1 -RODbInfoList 1 1 1 -ROFst 3 1 2 -ROFstAssociation 1 1 1 -ROFstAssociations 1 1 1 -ROFstFigures 1 1 1 -ROFstInfo 1 1 1 -ROImage 1246 0 0 -Role 6 6 6 -User 3 3 3 -UserMembership 3 3 3 -UserMemberships 3 3 3 - -Processing Procedure AI 28A-001 92670508 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc007.A17 106054624 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc007.A41 106219768 -Processing Procedure AI 28A-003 105466624 -Processing Procedure AI 28A-004 106911364 -Processing Procedure AI 28A-005 108264316 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc006.A17 108496588 -Processing Procedure AI 28A-006 109635996 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc013.A27 114593924 -Processing Procedure AI 28A-007 113857712 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc003.A17 120427572 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc003.A41 120593660 -Processing Procedure AI 28A-008 119839016 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc001.A23 122225608 -Processing Procedure AI 28A-016 122238024 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc004.A22 126813288 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc004.A23 126940640 -Processing Procedure AI 28A-017 126635512 -Processing Procedure AI 28D-001 127819580 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc020.A20 128981020 -Processing Procedure AI 28E-007 128683220 -Processing Procedure AI 28E-009 128940672 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc018.A15 130378844 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc018.A17 131163612 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc018.A18 131307996 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc018.A20 131454036 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc018.A19 134683304 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc018.A21 135158696 -Processing Procedure AI 34-006 134135540 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc009.A16 135244832 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc009.A13 136268212 -Processing Procedure AI XX-XXX 136481092 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc021.A16 137050988 -Processing Procedure AI 34-XXX 136921788 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc012.A02 137201396 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc012.A13 139203728 -Processing Procedure AI 28D-003 138661372 -Processing Procedure AI 28A-010 139204456 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc000.A16 143689000 -Processing Procedure AI 28A-EVAL 143019632 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc010.A17 153856148 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc010.A52 154035200 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc010.A53 154187096 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc010.A54 154338960 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc010.A55 154509604 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc010.A56 154668672 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc010.A57 154830424 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc010.A58 154994512 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc010.A59 155157956 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc010.A41 155322724 -Processing Procedure AI28AEVAL-db 152914736 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc002.A17 162375772 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc002.A55 162556800 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc002.A49 162708384 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc002.A50 162860632 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc002.A51 163009624 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc002.A52 163157852 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc002.A53 163305344 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc002.A54 163452840 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc002.A56 163601072 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc002.A41 163751016 -Processing Procedure AI28AEVAL-mw 161730296 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc015.A17 170136036 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc015.A55 170317860 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc015.A49 170469508 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc015.A50 170593700 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc015.A51 170751012 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc015.A52 170891304 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc015.A53 171038796 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc015.A54 171186272 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc015.A56 171334396 -Processing c:\16bit\debug\vewcncap\ai.prc\rtffiles\proc015.A41 171484364 -'Created' 'Not Disposed' 'Not Finalized' -Annotation 5 5 5 -AnnotationType 6 6 6 -AssociationInfo 5 5 5 -AssociationInfoList 5 5 5 -Connection 1 1 1 -ConnectionInfo 1 1 1 -Content 8116 8116 8116 -ContentInfo 8149 1 979 -ContentPart 2601 2601 2601 -ContentParts 2398 2398 2398 -Document 109 1 55 -DocumentDROUsage 15 15 15 -DocumentDROUsages 54 54 54 -DocumentEntries 54 54 54 -DocumentEntry 1 1 1 -DocumentInfo 70 0 11 -DocumentPdf 1 1 1 -DocumentPdfs 54 54 54 -DocVersion 1 1 1 -DocVersionAssociation 1 1 1 -DocVersionAssociations 1 1 1 -DocVersionInfo 6 2 3 -DocVersionInfoList 5 5 2 -Entry 70 70 70 -EntryInfo 70 0 11 -Figure 1246 0 0 -Folder 4 4 4 -FolderInfo 6 6 6 -FolderInfoList 1 1 1 -Format 191 189 191 -FormatContents 1 1 1 -FormatDocVersions 1 1 1 -FormatFolder 1 1 1 -FormatFolders 1 1 1 -FormatInfo 2 2 2 -FormatInfoList 1 1 1 -Grid 5 5 5 -Group 1 1 1 -Item 8116 8116 8116 -ItemAnnotation 5 5 5 -ItemAnnotations 5 5 5 -ItemInfo 8570 1 76 -ItemInfoList 16 1 3 -PartInfo 17 0 1 -PartInfoList 17 17 1 -Pdf 53 0 1 -PdfInfo 123 0 12 -Permission 6 6 6 -RODb 16 15 15 -RODbInfo 1 1 1 -RODbInfoList 1 1 1 -ROFst 3 1 2 -ROFstAssociation 1 1 1 -ROFstAssociations 1 1 1 -ROFstFigures 1 1 1 -ROFstInfo 1 1 1 -ROImage 1246 0 0 -ROImageInfo 14 14 14 -Role 6 6 6 -RoUsage 153 153 153 -Transition 277 0 0 -User 3 3 3 -UserMembership 3 3 3 -UserMemberships 3 3 3 -ZContent 8115 8115 8115 -ZTransition 277 0 0 - - - - -Missing Transition Destination AI28AEVAL-mw|G?S - 7734 -Conversion completion time: 00:05:57.104 \ No newline at end of file diff --git a/PROMS/DataLoader/logfile/ConversionGlitches.xml b/PROMS/DataLoader/logfile/ConversionGlitches.xml deleted file mode 100644 index 8312e1b0..00000000 --- a/PROMS/DataLoader/logfile/ConversionGlitches.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/DataLoader/logfile/HLP Database/VEPROMS.zip b/PROMS/DataLoader/logfile/HLP Database/VEPROMS.zip deleted file mode 100644 index 14b1780e..00000000 Binary files a/PROMS/DataLoader/logfile/HLP Database/VEPROMS.zip and /dev/null differ diff --git a/PROMS/DataLoader/logfile/RTBProblems.xml b/PROMS/DataLoader/logfile/RTBProblems.xml deleted file mode 100644 index 54743ab3..00000000 --- a/PROMS/DataLoader/logfile/RTBProblems.xml +++ /dev/null @@ -1,4 +0,0 @@ - - - - \ No newline at end of file diff --git a/PROMS/DataLoader/logfile/Restore.bat b/PROMS/DataLoader/logfile/Restore.bat deleted file mode 100644 index 879bfefc..00000000 --- a/PROMS/DataLoader/logfile/Restore.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMS] from disk = 'C:\Development\PROMS\DataLoader\logfile\.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMS.bat b/PROMS/DataLoader/logfile/RestoreVEPROMS.bat deleted file mode 100644 index 90567e9c..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMS.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMS] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMS.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMSRGE_AbbyProc.bat b/PROMS/DataLoader/logfile/RestoreVEPROMSRGE_AbbyProc.bat deleted file mode 100644 index 54549c85..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMSRGE_AbbyProc.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMSRGE_AbbyProc] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSRGE_AbbyProc.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMSRGE_Rev1SAMG.bat b/PROMS/DataLoader/logfile/RestoreVEPROMSRGE_Rev1SAMG.bat deleted file mode 100644 index 0d7cadd2..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMSRGE_Rev1SAMG.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMSRGE_Rev1SAMG] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSRGE_Rev1SAMG.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNADM_AI.bat b/PROMS/DataLoader/logfile/RestoreVEPROMSWCNADM_AI.bat deleted file mode 100644 index 2f6965be..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNADM_AI.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMSWCNADM_AI] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNADM_AI.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNALR_ALRCRJune11.bat b/PROMS/DataLoader/logfile/RestoreVEPROMSWCNALR_ALRCRJune11.bat deleted file mode 100644 index 140e26a1..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNALR_ALRCRJune11.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMS_WCNALR_ALRCR] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNALR_ALRCRJune11.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNALR_ALRCRJune12.bat b/PROMS/DataLoader/logfile/RestoreVEPROMSWCNALR_ALRCRJune12.bat deleted file mode 100644 index 0568bb57..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNALR_ALRCRJune12.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMS_WCNALR_ALRCR] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNALR_ALRCRJune12.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNALR_ALRLOCALJune12.bat b/PROMS/DataLoader/logfile/RestoreVEPROMSWCNALR_ALRLOCALJune12.bat deleted file mode 100644 index ece76dbe..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNALR_ALRLOCALJune12.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMS_WCNALR_ALRLOCAL] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNALR_ALRLOCALJune12.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNCAP_AIJune12.bat b/PROMS/DataLoader/logfile/RestoreVEPROMSWCNCAP_AIJune12.bat deleted file mode 100644 index 2dcc857a..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNCAP_AIJune12.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMS_WCNCAP_AI] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNCAP_AIJune12.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNFP.bat b/PROMS/DataLoader/logfile/RestoreVEPROMSWCNFP.bat deleted file mode 100644 index 381713a4..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNFP.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMSWCNFP] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNFP.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNSYS_SYS.bat b/PROMS/DataLoader/logfile/RestoreVEPROMSWCNSYS_SYS.bat deleted file mode 100644 index 933555b5..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMSWCNSYS_SYS.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMS_WCNSYS_SYS] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMSWCNSYS_SYS.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMS_RGE_EOPS.bat b/PROMS/DataLoader/logfile/RestoreVEPROMS_RGE_EOPS.bat deleted file mode 100644 index 914d891f..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMS_RGE_EOPS.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMS_Ginna_EOPS] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMS_RGE_EOPS.bak'" -pause diff --git a/PROMS/DataLoader/logfile/RestoreVEPROMS_WCN_EMGS.bat b/PROMS/DataLoader/logfile/RestoreVEPROMS_WCN_EMGS.bat deleted file mode 100644 index 0ba7bff5..00000000 --- a/PROMS/DataLoader/logfile/RestoreVEPROMS_WCN_EMGS.bat +++ /dev/null @@ -1,2 +0,0 @@ -sqlcmd -E -S.\sqlexpress -Q "restore database [VEPROMS_WCN_EMGS] from disk = 'C:\Development\PROMS\DataLoader\logfile\VEPROMS_WCN_EMGS.bak'" -pause diff --git a/PROMS/DataLoader/logfile/TUEC Database & Log Files/ConversionErrors.txt b/PROMS/DataLoader/logfile/TUEC Database & Log Files/ConversionErrors.txt deleted file mode 100644 index 9ea4bcd7..00000000 --- a/PROMS/DataLoader/logfile/TUEC Database & Log Files/ConversionErrors.txt +++ /dev/null @@ -1,683 +0,0 @@ -2 copies of MS Word are running -Computer Name: KATHY-VISTA -Data Set: c:\16bit\debug\vetuec\abn0.prc -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc008.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc008.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc000.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc009.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc009.A07 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc009.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc009.A06 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc009.A06 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc010.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc010.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc010.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc010.A25 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc010.A26 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc010.A27 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc010.A35 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc010.A36 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc010.A38 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc011.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc014.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc014.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc012.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc012.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc012.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc001.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc003.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc002.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc013.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc013.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc013.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc013.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc013.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc013.A12 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc013.A09 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc013.A10 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc013.A11 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc013.A08 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc015.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc016.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc017.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc017.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc017.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc004.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc018.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc018.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc018.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc018.A25 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc019.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc019.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc020.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc022.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc021.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc021.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc021.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc021.A25 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc023.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc023.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc023.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc023.A25 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc025.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc025.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc025.A27 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc025.A36 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc025.A40 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc025.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc024.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc024.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc005.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc005.A10 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc005.A11 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc005.A12 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc005.A13 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc005.A14 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc005.A09 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc026.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc026.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc026.A10 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc026.A11 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc026.A12 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc026.A13 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc026.A14 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc026.A15 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc026.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc027.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc028.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc029.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc029.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc029.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc029.A06 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc030.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc030.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc030.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc030.A06 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc031.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc031.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc031.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc031.A09 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc031.A25 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc031.A26 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc032.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc032.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc032.A07 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc032.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc032.A09 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc032.A10 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc033.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc033.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc033.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc034.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc035.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc035.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc035.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc035.A13 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc035.A15 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc035.A16 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc035.A17 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc036.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc036.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc036.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc036.A07 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc037.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc037.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc038.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc038.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc038.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc038.A07 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc039.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc039.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc040.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc040.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc040.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc040.A07 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A05 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A06 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A10 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A11 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A12 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A13 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A14 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A15 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A16 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A17 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A18 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A19 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc006.A09 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc007.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc041.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc041.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc042.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc043.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc043.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc044.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc044.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc044.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc044.A08 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc045.A02 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc045.A23 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc045.A01 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc045.A15 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc045.A25 -Processing c:\16bit\debug\vetuec\abn0.prc\rtffiles\proc045.A26 -Missing Transition Destination ABN-104|N3S - 1907 -Data Set: c:\16bit\debug\vetuec\master.prc -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A22 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A24 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A27 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A26 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A17 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A18 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A19 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A20 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A21 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc000.A23 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc001.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc001.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc001.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc001.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc001.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc001.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc001.A05 -Error in -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc001.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc001.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc001.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc002.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc002.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc002.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc002.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc002.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A17 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A19 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A18 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A20 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A21 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A22 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc003.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc004.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc004.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc004.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc004.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc004.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc005.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A09 -Error in -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A14 -Error in -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc006.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc007.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc007.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc007.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc007.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc007.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc007.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc007.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc007.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc007.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc008.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc008.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc008.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc008.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc008.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc008.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc008.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc008.A08 -Error in -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc008.A12 -Error in -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc008.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc008.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc009.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc010.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc011.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc012.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc012.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc012.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc012.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc012.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc012.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc015.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc015.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc015.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc015.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc015.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc015.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc015.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc015.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc015.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc015.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc015.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc016.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc016.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc016.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc016.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc016.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc016.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc016.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc016.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc016.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc016.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc016.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc017.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc017.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc017.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc017.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc017.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc017.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc017.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc017.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc017.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc017.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc017.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A17 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A19 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A20 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A21 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A22 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A23 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A24 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc018.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc019.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc019.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc019.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc019.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc019.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc019.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc019.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A17 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A18 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A26 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A19 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A20 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A21 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A22 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A23 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A24 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A25 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc020.A27 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc022.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc023.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc023.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc023.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc025.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A21 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A17 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A18 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A20 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A19 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc028.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A17 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A18 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A19 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc029.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc030.A17 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc037.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc037.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc037.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc037.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc037.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc037.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc037.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc037.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc037.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc037.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc038.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc038.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc038.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc038.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc038.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc038.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc039.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc039.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc039.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc039.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc039.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc039.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc039.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc039.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc039.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc039.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc039.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\PROC013.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\PROC013.A03 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\PROC013.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\PROC013.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\PROC013.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\PROC013.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\PROC013.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\PROC013.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\PROC013.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\PROC013.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\PROC013.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc040.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc040.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc040.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc040.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc040.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc040.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc040.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc040.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc040.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc040.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc041.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc041.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc041.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc041.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc041.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc041.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc043.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc044.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc044.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc044.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc044.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc044.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc044.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc045.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc045.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc045.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc045.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc045.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc046.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc046.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc046.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc046.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc046.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc046.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc047.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc047.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc047.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc047.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc047.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc047.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc047.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc047.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc047.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc048.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc049.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc049.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc049.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc049.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc049.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc049.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc049.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc049.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A11 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc050.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc051.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc051.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc051.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc051.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc052.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc052.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc052.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc052.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc052.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc052.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc053.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc053.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc053.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc053.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc053.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc053.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc053.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc054.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc054.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc054.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc054.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc054.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A02 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A04 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A13 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A14 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A15 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A16 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A17 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A06 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A07 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A08 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A12 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A09 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A10 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc055.A11 -Missing rtf file: c:\16bit\debug\vetuec\master.prc\rtffiles\proc056.A01 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc056.A02 -Missing rtf file: c:\16bit\debug\vetuec\master.prc\rtffiles\proc056.A03 -Missing rtf file: c:\16bit\debug\vetuec\master.prc\rtffiles\proc056.A04 -Missing rtf file: c:\16bit\debug\vetuec\master.prc\rtffiles\proc056.A05 -Processing c:\16bit\debug\vetuec\master.prc\rtffiles\proc056.A06 -Missing rtf file: c:\16bit\debug\vetuec\master.prc\rtffiles\proc056.A07 -Missing rtf file: c:\16bit\debug\vetuec\master.prc\rtffiles\proc056.A08 -Missing Transition Destination FRP-0.1|C0S - 28139 -Missing Transition Destination EOP-0.0|C0S - 21691 -Missing Transition Destination EOS-0.4|C0S - 22067 -Missing Transition Destination ECA-3.2|C0S - 28223 -Missing Transition Destination EOP-2.0|C0S - 21670 -Missing Transition Destination EOS-0.3|C0S - 22066 -Conversion completion time: 00:35:54.293 diff --git a/PROMS/DataLoader/logfile/TUEC Database & Log Files/ConversionGlitches.xml b/PROMS/DataLoader/logfile/TUEC Database & Log Files/ConversionGlitches.xml deleted file mode 100644 index 0bdb89b2..00000000 --- a/PROMS/DataLoader/logfile/TUEC Database & Log Files/ConversionGlitches.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/DataLoader/logfile/TUEC Database & Log Files/VEPROMS.zip b/PROMS/DataLoader/logfile/TUEC Database & Log Files/VEPROMS.zip deleted file mode 100644 index 35451cf2..00000000 Binary files a/PROMS/DataLoader/logfile/TUEC Database & Log Files/VEPROMS.zip and /dev/null differ diff --git a/PROMS/DataLoader/logfile/VEPROMS.bak b/PROMS/DataLoader/logfile/VEPROMS.bak deleted file mode 100644 index 2675cbc5..00000000 Binary files a/PROMS/DataLoader/logfile/VEPROMS.bak and /dev/null differ diff --git a/PROMS/DataLoader/logfile/VEPROMS.zip b/PROMS/DataLoader/logfile/VEPROMS.zip deleted file mode 100644 index eabdce99..00000000 Binary files a/PROMS/DataLoader/logfile/VEPROMS.zip and /dev/null differ diff --git a/PROMS/DataLoader/logfile/WNCEMG Data & Log Files/ConversionErrors.txt b/PROMS/DataLoader/logfile/WNCEMG Data & Log Files/ConversionErrors.txt deleted file mode 100644 index ebe63446..00000000 --- a/PROMS/DataLoader/logfile/WNCEMG Data & Log Files/ConversionErrors.txt +++ /dev/null @@ -1,144 +0,0 @@ -Computer Name: KATHY-VISTA -Data Set: c:\16bit\debug\vewcnemg\emgapp.prc -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp1A38.tmp -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp2489.tmp -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp2C68.tmp -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp3255.tmp -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp37F3.tmp -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp3D81.tmp -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp433F.tmp -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp490C.tmp -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp4F08.tmp -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp54B5.tmp -Processing C:\Users\Kathy.VOLIAN0\AppData\Local\Temp\tmp5A15.tmp -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc000.A03 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc000.A07 -Bad Date/Time 00/00/0000 00000 - ArgumentOutOfRangeException - Year, Month, and Day parameters describe an un-representable DateTime. at System.DateTime.DateToTicks(Int32 year, Int32 month, Int32 day) - at System.DateTime..ctor(Int32 year, Int32 month, Int32 day, Int32 hour, Int32 minute, Int32 second) - at DataLoader.Loader.GetDTS(String date, String time) in C:\Development\PROMS\DataLoader\Loader.cs:line 200 -Bad Date/Time 00/00/0000 00000 - ArgumentOutOfRangeException - Year, Month, and Day parameters describe an un-representable DateTime. at System.DateTime.DateToTicks(Int32 year, Int32 month, Int32 day) - at System.DateTime..ctor(Int32 year, Int32 month, Int32 day, Int32 hour, Int32 minute, Int32 second) - at DataLoader.Loader.GetDTS(String date, String time) in C:\Development\PROMS\DataLoader\Loader.cs:line 200 -Bad Date/Time 00/00/0000 00000 - ArgumentOutOfRangeException - Year, Month, and Day parameters describe an un-representable DateTime. at System.DateTime.DateToTicks(Int32 year, Int32 month, Int32 day) - at System.DateTime..ctor(Int32 year, Int32 month, Int32 day, Int32 hour, Int32 minute, Int32 second) - at DataLoader.Loader.GetDTS(String date, String time) in C:\Development\PROMS\DataLoader\Loader.cs:line 200 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc007.A13 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc007.A03 -Bad Date/Time 00/00/0000 00000 - ArgumentOutOfRangeException - Year, Month, and Day parameters describe an un-representable DateTime. at System.DateTime.DateToTicks(Int32 year, Int32 month, Int32 day) - at System.DateTime..ctor(Int32 year, Int32 month, Int32 day, Int32 hour, Int32 minute, Int32 second) - at DataLoader.Loader.GetDTS(String date, String time) in C:\Development\PROMS\DataLoader\Loader.cs:line 200 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc016.A09 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc016.A10 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc016.A18 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc016.A05 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc018.A07 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc018.A10 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc018.A05 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc053.A03 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc023.A05 -Missing rtf file: c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc025.A02 -Missing rtf file: c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc025.A18 -Missing rtf file: c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc025.A05 -Missing rtf file: c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc025.A06 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc025.A14 -Missing rtf file: c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc025.A07 -Missing rtf file: c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc025.A17 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc031.A04 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc031.A06 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc036.A05 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc036.A10 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc037.A07 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc037.A04 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc038.A04 -Processing c:\16bit\debug\vewcnemg\emgapp.prc\rtffiles\proc043.A10 -Missing Transition Destination EMG ES-02|E2S - 936 -Data Set: c:\16bit\debug\vewcnemg\samgs.prc -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc000.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc000.A07 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc000.A08 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc001.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc001.A06 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc001.A08 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc002.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc003.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc003.A08 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc003.A07 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc003.A06 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc003.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc004.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc004.A08 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc004.A07 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc005.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc005.A08 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc005.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc006.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc006.A06 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc006.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc007.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc007.A08 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc007.A07 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc007.A06 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc007.A13 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc007.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc008.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc008.A08 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc008.A06 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc008.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc009.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc009.A08 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc009.A07 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc009.A06 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc009.A13 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc009.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc010.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc010.A08 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc010.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc011.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc011.A08 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc011.A07 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc012.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc012.A08 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc012.A07 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc012.A06 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc012.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc013.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc013.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc014.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc014.A06 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc014.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc015.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc015.A05 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc016.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc020.A09 -Processing c:\16bit\debug\vewcnemg\samgs.prc\rtffiles\proc024.A09 -Unrecognized error in LoadSection proc025 - OleDbException - The Microsoft Jet database engine could not find the object 'proc025'. Make sure the object exists and that you spell its name and the path name correctly. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) - at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) - at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) - at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) - at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) - at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) - at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) - at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) - at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) - at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) - at DataLoader.Loader.LoadSection(DataSet ds, OleDbDataAdapter da, String FileName) in C:\Development\PROMS\DataLoader\Sections.cs:line 575 -MigrateProcedure - proc025 - OleDbException - The Microsoft Jet database engine could not find the object 'proc025'. Make sure the object exists and that you spell its name and the path name correctly. at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr) - at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) - at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult) - at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult) - at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method) - at System.Data.OleDb.OleDbCommand.ExecuteReader(CommandBehavior behavior) - at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior) - at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) - at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior) - at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable) - at DataLoader.Loader.MigrateProcedure(OleDbConnection cn, DataRow dr, Item FromItem, String pth, DocVersion docver, Boolean convertProcedures, FormatInfo activeFormat) in C:\Development\PROMS\DataLoader\Procedures.cs:line 192 -Missing Transition Destination SAG-5|L?S - 19411 -Missing Transition Destination SAG-7|J@S - 19567 -Conversion completion time: 00:21:07.610 diff --git a/PROMS/DataLoader/logfile/WNCEMG Data & Log Files/ConversionGlitches.xml b/PROMS/DataLoader/logfile/WNCEMG Data & Log Files/ConversionGlitches.xml deleted file mode 100644 index fb209968..00000000 --- a/PROMS/DataLoader/logfile/WNCEMG Data & Log Files/ConversionGlitches.xml +++ /dev/null @@ -1,61 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/DataLoader/logfile/WNCEMG Data & Log Files/VEPROMS.zip b/PROMS/DataLoader/logfile/WNCEMG Data & Log Files/VEPROMS.zip deleted file mode 100644 index 879d15ff..00000000 Binary files a/PROMS/DataLoader/logfile/WNCEMG Data & Log Files/VEPROMS.zip and /dev/null differ diff --git a/PROMS/DataLoader/vlnControl.xml b/PROMS/DataLoader/vlnControl.xml deleted file mode 100644 index f298bd38..00000000 --- a/PROMS/DataLoader/vlnControl.xml +++ /dev/null @@ -1,260 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/DataLoader/zipImage.TXT b/PROMS/DataLoader/zipImage.TXT deleted file mode 100644 index d8486530..00000000 --- a/PROMS/DataLoader/zipImage.TXT +++ /dev/null @@ -1 +0,0 @@ -http://stackoverflow.com/questions/2118904/zip-and-unzip-string-with-deflate \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/Demo.sln b/PROMS/DropDownPanel_sol/Demo.sln deleted file mode 100644 index 90784c24..00000000 --- a/PROMS/DropDownPanel_sol/Demo.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Demo", "Demo\Demo.csproj", "{A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DropDownPanel", "DropDownPanel\DropDownPanel.csproj", "{34ADDF19-CBBA-4A11-BC99-D141BA2D29EC}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4}.Release|Any CPU.Build.0 = Release|Any CPU - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/DropDownPanel_sol/Demo/Demo.csproj b/PROMS/DropDownPanel_sol/Demo/Demo.csproj deleted file mode 100644 index 2ba43504..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Demo.csproj +++ /dev/null @@ -1,91 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {A6BD962C-CAD5-400E-A8E2-0EF03B3CA8A4} - WinExe - Properties - Demo - Demo - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - UserControl - - - - Component - - - Form - - - MainForm.cs - - - - - Designer - MainForm.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC} - DropDownPanel - - - - - \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/Demo/DerivedTreeCombo.cs b/PROMS/DropDownPanel_sol/Demo/DerivedTreeCombo.cs deleted file mode 100644 index 827f8172..00000000 --- a/PROMS/DropDownPanel_sol/Demo/DerivedTreeCombo.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.ComponentModel; -using System.Windows.Forms; - -using AT.STO.UI.Win; - -namespace Demo -{ - internal class DerivedTreeCombo : DropDownPanel - { - #region Constructor / Destructor - public DerivedTreeCombo() : base() - { - // The base class's property must be set because - // this derived implementation hides the setter. - base.DropDownControl = new DropDownTree(); - this.DropDownControl.BorderStyle = BorderStyle.None; - } - #endregion - #region Public Properties - /// - /// Returns the DateRangePicker, that is displayed in the dropdown. - /// - [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - public new DropDownTree DropDownControl // new is on purpose to change the property's data type and to hide the setter. - { - get - { - if (base.DropDownControl != null) - { - return base.DropDownControl as DropDownTree; - } - - return null; - } - } - - public new DropDownNode Value - { - get - { - if (this.DropDownControl != null) - { - return this.DropDownControl.Value as DropDownNode; - } - - return null; - } - set { base.Value = value; } - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/Demo/DropDownNode.cs b/PROMS/DropDownPanel_sol/Demo/DropDownNode.cs deleted file mode 100644 index f0adc2df..00000000 --- a/PROMS/DropDownPanel_sol/Demo/DropDownNode.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.Windows.Forms; - -using AT.STO.UI.Win; - -namespace Demo -{ - internal class DropDownNode : TreeNode, ILookupItem - { - #region Private Variable Declarations - private long _id = 0; - #endregion - #region Constructor / Destructor - /// - /// Default constructor. - /// - public DropDownNode() : base() - { - } - - /// - /// /// - /// Some constructors initializing the node with Id. - /// - /// - /// - /// - public DropDownNode(long Id, string Text) : base(Text) - { - _id = Id; - } - - public DropDownNode(long Id, string Text, DropDownNode[] Children) : base(Text, Children) - { - _id = Id; - } - - public DropDownNode(long Id, string Text, int ImageIndex, int SelectedImageIndex) : base(Text, ImageIndex, SelectedImageIndex) - { - _id = Id; - } - - public DropDownNode(long Id, string Text, int ImageIndex, int SelectedImageIndex, DropDownNode[] Children) : base(Text, ImageIndex, SelectedImageIndex, Children) - { - _id = Id; - } - #endregion - #region Public Methods - public override string ToString() - { - return this.GetType().Name + " (Id=" + Id.ToString() + ", Name=" + Text + ")"; - } - #endregion - #region ILookupItem Implementation - public long Id - { - get { return _id; } - } - - public new string Text - { - get { return base.Text; } - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/Demo/DropDownTree.cs b/PROMS/DropDownPanel_sol/Demo/DropDownTree.cs deleted file mode 100644 index 94954cc9..00000000 --- a/PROMS/DropDownPanel_sol/Demo/DropDownTree.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Windows.Forms; - -using AT.STO.UI.Win; - -namespace Demo -{ - internal class DropDownTree : TreeView, IDropDownAware - { - #region DropDownTree - public DropDownTree() - { - } - #endregion - #region TreeView Events - /// - /// Allow keeping track of the editing process. - /// - /// - protected override void OnAfterSelect(TreeViewEventArgs e) - { - base.OnAfterSelect(e); - - if (ValueChanged != null) - { - ValueChanged(this, new DropDownValueChangedEventArgs(e.Node)); - } - } - - /// - /// A double click on a node counts as finish editing. - /// - /// - protected override void OnDoubleClick(EventArgs e) - { - base.OnDoubleClick(e); - - TreeNode node = HitTest(PointToClient(Cursor.Position)).Node; - - if ((FinishEditing != null) && (node != null)) - { - FinishEditing(this, new DropDownValueChangedEventArgs(node)); - } - } - - /// - /// ENNTER counts as finish editing, ESC as cancel (null is returned). - /// - /// - protected override void OnKeyUp(KeyEventArgs e) - { - base.OnKeyUp(e); - - if (FinishEditing != null) - { - switch (e.KeyCode) - { - case Keys.Enter: - FinishEditing(this, new DropDownValueChangedEventArgs(Value)); - break; - case Keys.Escape: - FinishEditing(this, new DropDownValueChangedEventArgs(null)); - break; - } - } - } - #endregion - #region IDropDownAware Implementation - public event DropDownValueChangedEventHandler FinishEditing; - public event DropDownValueChangedEventHandler ValueChanged; - - public object Value - { - get { return base.SelectedNode; } - set - { - if (value is DropDownNode) - { - base.SelectedNode = value as DropDownNode; - } - } - } - - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/Demo/MainForm.Designer.cs b/PROMS/DropDownPanel_sol/Demo/MainForm.Designer.cs deleted file mode 100644 index fcac6aa2..00000000 --- a/PROMS/DropDownPanel_sol/Demo/MainForm.Designer.cs +++ /dev/null @@ -1,114 +0,0 @@ -namespace Demo -{ - partial class MainForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.onTheFlyBox = new System.Windows.Forms.GroupBox(); - this.treePanel = new AT.STO.UI.Win.DropDownPanel(); - this.txtMsg = new System.Windows.Forms.TextBox(); - this.derivedPanel = new System.Windows.Forms.GroupBox(); - this.derivedTreeCombo = new Demo.DerivedTreeCombo(); - this.onTheFlyBox.SuspendLayout(); - this.derivedPanel.SuspendLayout(); - this.SuspendLayout(); - // - // onTheFlyBox - // - this.onTheFlyBox.Controls.Add(this.treePanel); - this.onTheFlyBox.Location = new System.Drawing.Point(12, 12); - this.onTheFlyBox.Name = "onTheFlyBox"; - this.onTheFlyBox.Size = new System.Drawing.Size(171, 71); - this.onTheFlyBox.TabIndex = 1; - this.onTheFlyBox.TabStop = false; - this.onTheFlyBox.Text = "create control on the fly"; - // - // treePanel - // - this.treePanel.Location = new System.Drawing.Point(21, 31); - this.treePanel.Name = "treePanel"; - this.treePanel.Size = new System.Drawing.Size(124, 21); - this.treePanel.TabIndex = 1; - // - // txtMsg - // - this.txtMsg.AcceptsReturn = true; - this.txtMsg.Anchor = ((System.Windows.Forms.AnchorStyles) ((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.txtMsg.Location = new System.Drawing.Point(3, 175); - this.txtMsg.Multiline = true; - this.txtMsg.Name = "txtMsg"; - this.txtMsg.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.txtMsg.Size = new System.Drawing.Size(464, 152); - this.txtMsg.TabIndex = 2; - // - // derivedPanel - // - this.derivedPanel.Controls.Add(this.derivedTreeCombo); - this.derivedPanel.Location = new System.Drawing.Point(12, 89); - this.derivedPanel.Name = "derivedPanel"; - this.derivedPanel.Size = new System.Drawing.Size(171, 71); - this.derivedPanel.TabIndex = 4; - this.derivedPanel.TabStop = false; - this.derivedPanel.Text = "derived control"; - // - // derivedTreeCombo - // - this.derivedTreeCombo.Location = new System.Drawing.Point(21, 31); - this.derivedTreeCombo.Name = "derivedTreeCombo"; - this.derivedTreeCombo.Size = new System.Drawing.Size(124, 21); - this.derivedTreeCombo.TabIndex = 4; - this.derivedTreeCombo.Value = null; - // - // MainForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(467, 331); - this.Controls.Add(this.derivedPanel); - this.Controls.Add(this.txtMsg); - this.Controls.Add(this.onTheFlyBox); - this.Name = "MainForm"; - this.Text = "Main"; - this.onTheFlyBox.ResumeLayout(false); - this.derivedPanel.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.GroupBox onTheFlyBox; - private AT.STO.UI.Win.DropDownPanel treePanel; - private System.Windows.Forms.TextBox txtMsg; - private System.Windows.Forms.GroupBox derivedPanel; - private DerivedTreeCombo derivedTreeCombo; - } -} - diff --git a/PROMS/DropDownPanel_sol/Demo/MainForm.cs b/PROMS/DropDownPanel_sol/Demo/MainForm.cs deleted file mode 100644 index 09e34e88..00000000 --- a/PROMS/DropDownPanel_sol/Demo/MainForm.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Windows.Forms; - -using AT.STO.UI.Win; - -namespace Demo -{ - public partial class MainForm : Form - { - #region Constructor / Destructor - public MainForm() - { - InitializeComponent(); - } - #endregion - #region Form Events - protected override void OnLoad(EventArgs e) - { - base.OnLoad(e); - InitializeDerived(); - InitializePanel(); - } - #endregion - #region Event Handler - private void DropDown_FinishEditing(object sender, DropDownValueChangedEventArgs e) - { - LogEvent((sender as Control).Name + ".FinishEditing", e.Value); - } - - private void DropDown_ValueChanged(object sender, DropDownValueChangedEventArgs e) - { - LogEvent((sender as Control).Name + ".ValueChanged", e.Value); - } - #endregion - #region Private Methods - /// - /// Populates a given DropDownTree. - /// - /// - private void CreateNodes(DropDownTree Tree) - { - DropDownNode root = new DropDownNode(1, "1"); - - Tree.Nodes.Clear(); - Tree.Nodes.Add(root); - - for (int i = 1; i <= 20; i++) - { - DropDownNode node = new DropDownNode(i * 1000, "1." + i.ToString("00")); - root.Nodes.Add(node); - - for (int j = 1; j <= 2; j++) - { - node.Nodes.Add(new DropDownNode((i * 1000) + (j * 10), "1." + i.ToString("00") + "." + j.ToString())); - } - } - - root.Expand(); - } - - private DropDownTree CreateTree() - { - DropDownTree tree = new DropDownTree(); - - tree.BorderStyle = BorderStyle.None; // border is drawn by the DropDownForm. - tree.Size = new Size(200, 300); // the DropDownPanel will be sized to make the tree fit. - - CreateNodes(tree); - - return tree; - } - - /// - /// Create and initialize the DerivedTreeCombo. - /// - private void InitializeDerived() - { - derivedTreeCombo.DropDownControl.Size = new Size(200, 300); - CreateNodes(derivedTreeCombo.DropDownControl); - - derivedTreeCombo.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing); - derivedTreeCombo.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged); - } - - /// - /// Create and initialize the DropDownTree. - /// - /// - private void InitializePanel() - { - treePanel.DropDownControl = CreateTree(); // make the DropDownTree the DropDownPanels control to display. - treePanel.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing); - treePanel.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged); - } - - private void LogEvent(string Event, object Value) - { - if (txtMsg.Lines.Length > 20) - { - txtMsg.Clear(); - } - - txtMsg.AppendText(Event + ": " + ((Value == null) ? "user canceled" : Value.ToString()) + "\r\n"); - } - #endregion - } -} \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/Demo/MainForm.resx b/PROMS/DropDownPanel_sol/Demo/MainForm.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/DropDownPanel_sol/Demo/MainForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/Demo/Program.cs b/PROMS/DropDownPanel_sol/Demo/Program.cs deleted file mode 100644 index 31ef34f5..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace Demo -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new MainForm()); - } - } -} \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/Demo/Properties/AssemblyInfo.cs b/PROMS/DropDownPanel_sol/Demo/Properties/AssemblyInfo.cs deleted file mode 100644 index 7a817629..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Demo")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Demo")] -[assembly: AssemblyCopyright("Copyright © 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("f6481bce-6b99-4def-b7d9-f811792f5e73")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/DropDownPanel_sol/Demo/Properties/Resources.Designer.cs b/PROMS/DropDownPanel_sol/Demo/Properties/Resources.Designer.cs deleted file mode 100644 index 04d88e2d..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Demo.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Demo.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/DropDownPanel_sol/Demo/Properties/Resources.resx b/PROMS/DropDownPanel_sol/Demo/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/Demo/Properties/Settings.Designer.cs b/PROMS/DropDownPanel_sol/Demo/Properties/Settings.Designer.cs deleted file mode 100644 index 46d4cb74..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Demo.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings) (global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/DropDownPanel_sol/Demo/Properties/Settings.settings b/PROMS/DropDownPanel_sol/Demo/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/DropDownPanel_sol/Demo/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.Designer.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.Designer.cs deleted file mode 100644 index 2c4199bd..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.Designer.cs +++ /dev/null @@ -1,61 +0,0 @@ -namespace AT.STO.UI.Win -{ - partial class DropDownPanel - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.combo = new System.Windows.Forms.ComboBox(); - this.SuspendLayout(); - // - // combo - // - this.combo.DropDownHeight = 1; - this.combo.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.combo.FormattingEnabled = true; - this.combo.IntegralHeight = false; - this.combo.Location = new System.Drawing.Point(0, 0); - this.combo.Name = "combo"; - this.combo.Size = new System.Drawing.Size(86, 21); - this.combo.TabIndex = 0; - this.combo.DropDown += new System.EventHandler(this.Combo_DropDown); - // - // DropDownPanel - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.combo); - this.Name = "DropDownPanel"; - this.Size = new System.Drawing.Size(105, 32); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ComboBox combo; - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.cs deleted file mode 100644 index d06c16fa..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Controls/DropDownPanel.cs +++ /dev/null @@ -1,287 +0,0 @@ -using System; -using System.ComponentModel; -using System.Diagnostics; -using System.Drawing; -using System.Windows.Forms; - -namespace AT.STO.UI.Win -{ - /// - /// Control that allows any other control that implements IDropDownAware to be displayed - /// in it's own combo-like dropdown area. This Control tries to mimic the standard ComboBox - /// as accurately as possible. - /// - public partial class DropDownPanel : UserControl, IDropDownAware - { - #region Private Variable Declarations - private IDropDownAware _dropDownControl = null; - private DropDownWindowHelper _dropDownHelper = null; - private Form _owner = null; - #endregion - #region Constructor / Destructor - /// - /// Default constructor - /// - public DropDownPanel() - { - InitializeComponent(); - - _dropDownHelper = new DropDownWindowHelper(); - - _dropDownHelper.DropDownClosed += new DropDownClosedEventHandler(DropDownHelper_DropDownClosed); - _dropDownHelper.DropDownCancel += new DropDownCancelEventHandler(DropDownHelper_DropDownCancel); - - combo.DisplayMember = "Text"; - combo.ValueMember = "Id"; - } - #endregion - #region Control Events - /// - /// The owning form is set within this event, wich is required to - /// force the owning form not to loose focus when the dropdown is - /// being displayed. Inherited controls should provide the PopupControl - /// within an overridden implementation of this event. - /// - /// - protected override void OnHandleCreated(EventArgs e) - { - _owner = this.FindForm(); - _dropDownHelper.ReleaseHandle(); - - if (_owner != null) - { - _dropDownHelper.AssignHandle(_owner.Handle); - } - } - - /// - /// Make sure that the overall control's height is exactly the height - /// of the internal ComboBox and that the ComboBox's widt is exactly the - /// width of the control. - /// - /// - protected override void OnResize(EventArgs e) - { - base.OnResize(e); - - combo.Location = new Point(0, 0); - combo.Width = this.ClientRectangle.Width; - this.Height = combo.Height; - } - #endregion - #region Event Handler - /// - /// We make our DropDownForm host the choosen control and show it instead - /// of the dropdown portion of the ComboBox. - /// - /// - /// - private void Combo_DropDown(object sender, EventArgs e) - { - if (!_dropDownHelper.DropDownShowing) - { - DropDownForm dropDown = new DropDownForm(_dropDownControl); - - - dropDown.FinishEditing += new DropDownValueChangedEventHandler(DropDown_FinishEditing); - dropDown.ValueChanged += new DropDownValueChangedEventHandler(DropDown_ValueChanged); - - combo.DroppedDown = false; - _dropDownHelper.ShowDropDown(_owner, dropDown, GetDropDownPosition(dropDown)); - } - else - { - _dropDownHelper.CloseDropDown(); - this.Focus(); - } - } - - private void DropDownHelper_DropDownClosed(object sender, DropDownClosedEventArgs e) - { - IDropDownAware dropDown = (e.DropDown as IDropDownAware); - - if ((dropDown != null) && (dropDown.Value != null)) - { - dropDown.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing); - dropDown.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged); - } - - combo.DroppedDown = false; - } - - private void DropDownHelper_DropDownCancel(object sender, DropDownCancelEventArgs e) - { - if (this.Bounds.Contains(Parent.PointToClient(e.CursorLocation))) - { - e.Cancel = true; - } - else - { - IDropDownAware dropDown = (e.DropDown as IDropDownAware); - - if (dropDown != null) - { - dropDown.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing); - dropDown.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged); - } - } - } - - private void DropDown_FinishEditing(object sender, DropDownValueChangedEventArgs e) - { - if (e.Value != null) - { - SetValue(e.Value as ILookupItem); - } - - if (this.FinishEditing != null) - { - this.FinishEditing(this, e); - } - - _dropDownControl.FinishEditing -= new DropDownValueChangedEventHandler(DropDown_FinishEditing); - _dropDownControl.ValueChanged -= new DropDownValueChangedEventHandler(DropDown_ValueChanged); - _dropDownHelper.CloseDropDown(); - } - - private void DropDown_ValueChanged(object sender, DropDownValueChangedEventArgs e) - { - if (this.ValueChanged != null) - { - this.ValueChanged(this, e); - } - } - #endregion - #region Public Properties - /// - /// Get or set the control (has to implement IDropDownAware) that is to - /// be displayed as the dropdown portion of the combobox. - /// - [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - public IDropDownAware DropDownControl - { - get { return _dropDownControl; } - set - { - _dropDownControl = value; - - this.Controls.Add(_dropDownControl as Control); - } - } - #endregion - #region Public Methods - public override string ToString() - { - return this.Name; - } - #endregion - #region Private Methods - /// - /// Calculate an acceptable position of the DropDownForm even in a - /// multi screen environment. - /// - /// - /// - private Point GetDropDownPosition(DropDownForm DropDown) - { - Point lt = Parent.PointToScreen(new Point(Left, Top)); - Point rb = Parent.PointToScreen(new Point(Right, Bottom)); - Rectangle screen = Screen.FromControl(this).Bounds; - Point point = new Point(); - - if (((lt.X + DropDown.Width) > (screen.X + screen.Width)) && ((rb.X - DropDown.Width) >= screen.X)) - { - point.X = rb.X - DropDown.Width; - - if ((point.X + DropDown.Width) > (screen.X + screen.Width)) - { - point.X = ((screen.X + screen.Width) - DropDown.Width); - } - } - else - { - point.X = lt.X; - - if (point.X < screen.X) - { - point.X = screen.X; - } - } - - if (((rb.Y + DropDown.Height) > (screen.Y + screen.Height)) && ((lt.Y - DropDown.Height) >= screen.Y)) - { - point.Y = lt.Y - DropDown.Height; - - if (point.Y < screen.Y) - { - point.Y = screen.Y; - } - } - else - { - point.Y = rb.Y; - - if ((point.Y + DropDown.Height) > (screen.Y + screen.Height)) - { - point.Y = ((screen.Y + screen.Height) - DropDown.Height); - } - } - - return point; - } - - /// - /// In this implementation we don't the user to edit the ComboBox - /// directly, so we add the new value to the item collection after - /// clearing it first. - /// - /// - /// - private void SetValue(ILookupItem Value) where T: struct - { - if (DropDownControl != null) - { - ILookupItem[] arr = new ILookupItem[0]; - - combo.DataSource = arr; - - if ((Value != null) && (Value is ILookupItem)) - { - DropDownControl.Value = Value; - - arr = new ILookupItem[1]{(ILookupItem) Value}; - combo.DataSource = arr; - combo.SelectedIndex = 0; - combo.Focus(); - } - else - { - DropDownControl.Value = null; - } - } - } - #endregion - #region IDropDownAware Implementation - /// - /// Fired either on OK, Cancel or a click outside the control to indicate - /// that the user has finished editing. - /// - public event DropDownValueChangedEventHandler FinishEditing; - - /// - /// Fired on any change of the controls's value during the editing process. - /// - public event DropDownValueChangedEventHandler ValueChanged; - - /// - /// Gets or sets the controls' value. - /// - [DesignerSerializationVisibility(DesignerSerializationVisibility.Hidden)] - public object Value - { - get { return _dropDownControl.Value; } - set { SetValue(value as ILookupItem); } - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.csproj b/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.csproj deleted file mode 100644 index 8239b3d3..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.csproj +++ /dev/null @@ -1,73 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC} - Library - Properties - DropDownPanel - DropDownPanel - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - Form - - - DropDownForm.cs - - - UserControl - - - DropDownPanel.cs - - - - - - - - - - - - - DropDownForm.cs - Designer - - - - - \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.resx b/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.resx deleted file mode 100644 index 9363c465..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/DropDownPanel.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Events/Events.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Events/Events.cs deleted file mode 100644 index e5659774..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Events/Events.cs +++ /dev/null @@ -1,154 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - -namespace AT.STO.UI.Win -{ - /// - /// Represents the method which responds to a event. - /// - /// - /// - public delegate void DropDownCancelEventHandler(object sender, DropDownCancelEventArgs e); - - /// - /// Represents the method which responds to a event. - /// - /// - /// - public delegate void DropDownClosedEventHandler(object sender, DropDownClosedEventArgs e); - - /// - /// - /// - /// The object firing the event. - /// - public delegate void DropDownValueChangedEventHandler(object sender, DropDownValueChangedEventArgs e); - - /// - /// Arguments to a . Provides a - /// reference to the popup form that is to be closed and - /// allows the operation to be cancelled. - /// - /// Thousand thanks to Steve McMahon: - /// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp - /// - public class DropDownCancelEventArgs : EventArgs - { - #region Private Variable Declarations - private bool _cancel = false; - private Point _cursorLocation; - private Form _dropDown = null; - #endregion - #region Constructor / Destructor - /// - /// Constructs a new instance of this class. - /// - /// The popup form - /// The mouse location, if any, where the - /// mouse event that would cancel the popup occured. - public DropDownCancelEventArgs(Form DropDown, Point CursorLocation) - { - _dropDown = DropDown; - _cursorLocation = CursorLocation; - _cancel = false; - } - #endregion - #region Public Properties - /// - /// - /// - public bool Cancel - { - get { return _cancel; } - set { _cancel = value; } - } - - /// - /// - /// - public Point CursorLocation - { - get { return _cursorLocation; } - } - - /// - /// - /// - public Form DropDown - { - get { return _dropDown; } - } - #endregion - } - - /// - /// Contains event information for a event. - /// - /// Thousand thanks to Steve McMahon: - /// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp - /// - public class DropDownClosedEventArgs : EventArgs - { - #region Private Variable Declarations - private Form _dropDown = null; - #endregion - #region Constructor / Destructor - /// - /// Constructs a new instance of this class for the specified - /// popup form. - /// - /// DropDown Form which is being closed. - public DropDownClosedEventArgs(Form DropDown) - { - _dropDown = DropDown; - } - #endregion - #region Public Properties - /// - /// Gets the dropdown form which is being closed. - /// - public Form DropDown - { - get { return _dropDown; } - } - #endregion - } - - /// - /// Contains event information for DropDownValueChangedEventHandler. - /// - public class DropDownValueChangedEventArgs : EventArgs - { - #region Private Variable Declarations - private object _value = null; - #endregion - #region Constructor / Destructor - /// - /// Default Constructor - /// - public DropDownValueChangedEventArgs() - { - } - - /// - /// Initialization with the control's value. - /// - /// - public DropDownValueChangedEventArgs(object Value) - { - _value = Value; - } - #endregion - #region Public Properties - /// - /// Gets or sets the control's value. - /// - public object Value - { - get { return _value; } - set { _value = value; } - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.cs deleted file mode 100644 index 6e6a45db..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.cs +++ /dev/null @@ -1,116 +0,0 @@ -using System; -using System.ComponentModel; -using System.Drawing; -using System.Windows.Forms; - -namespace AT.STO.UI.Win -{ - /// - /// The form that pops up instead of the dropdown portion of the - /// DropDownPanel's combobox. It containes the actual control to - /// display. - /// - internal partial class DropDownForm : Form, IDropDownAware - { - #region Private Variable Declaration - private IDropDownAware _control = null; - #endregion - #region Constructor / Destructor - /// - /// Default Constructor - /// - public DropDownForm() - { - InitializeComponent(); - } - - /// - /// Constructor to initialize the for with the control to display. - /// - /// The control to display. - public DropDownForm(IDropDownAware Ctrl) : this() - { - if (Ctrl != null) - { - _control = Ctrl; - - InitializeControl(_control as Control); - } - } - #endregion - #region Form Events - protected override void OnClosing(CancelEventArgs e) - { - this.Controls.Remove(_control as Control); - base.OnClosing(e); - } - - protected override void OnShown(EventArgs e) - { - base.OnShown(e); - - _control.FinishEditing += new DropDownValueChangedEventHandler(Ctrl_FinishEditing); - _control.ValueChanged += new DropDownValueChangedEventHandler(Ctrl_ValueChanged); - } - #endregion - #region Event Handler - private void Ctrl_FinishEditing(object sender, DropDownValueChangedEventArgs e) - { - if (this.FinishEditing != null) - { - this.FinishEditing(this, e); - } - - _control.FinishEditing -= new DropDownValueChangedEventHandler(Ctrl_FinishEditing); - _control.ValueChanged -= new DropDownValueChangedEventHandler(Ctrl_ValueChanged); - } - - private void Ctrl_ValueChanged(object sender, DropDownValueChangedEventArgs e) - { - if (this.ValueChanged != null) - { - this.ValueChanged(this, e); - } - } - #endregion - #region IDropDownAware Implementation - /// - /// Fired either on OK, Cancel or a click outside the control to indicate - /// that the user has finished editing. - /// - public event DropDownValueChangedEventHandler FinishEditing; - - /// - /// Fired on any change of the controls's value during the editing process. - /// - public event DropDownValueChangedEventHandler ValueChanged; - - /// - /// Gets or sets the controls' value. - /// - public object Value - { - get { return _control.Value; } - set { _control.Value = value; } - } - #endregion - #region Private Methods - private void InitializeControl(Control Ctrl) - { - Size size = Ctrl.Size; - Size inner = this.ClientRectangle.Size; - Size outer = this.Size; - int gap = outer.Width - inner.Width; - - size.Width += gap; - size.Height += gap; - - this.Size = size; - this.Controls.Add(Ctrl); - Ctrl.Location = new Point(0, 0); - Ctrl.Visible = true; - Ctrl.Invalidate(); - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.designer.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.designer.cs deleted file mode 100644 index c6a5a2c2..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.designer.cs +++ /dev/null @@ -1,52 +0,0 @@ -namespace AT.STO.UI.Win -{ - partial class DropDownForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.SuspendLayout(); - // - // DropDownForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.SystemColors.Window; - this.ClientSize = new System.Drawing.Size(226, 211); - this.ControlBox = false; - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "DropDownForm"; - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.ResumeLayout(false); - - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.resx b/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Forms/DropDownForm.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownMessageFilter.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownMessageFilter.cs deleted file mode 100644 index cca60462..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownMessageFilter.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Drawing; -using System.Windows.Forms; - -namespace AT.STO.UI.Win -{ - /// - /// A Message Loop filter which detect mouse events whilst the popup form is shown - /// and notifies the owning class when a mouse - /// click outside the popup occurs. - /// - /// Thousand thanks to Steve McMahon: - /// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp - /// - internal class DropDownMessageFilter : IMessageFilter - { - #region Private Constants - private const int WM_LBUTTONDOWN = 0x201; - private const int WM_RBUTTONDOWN = 0x204; - private const int WM_MBUTTONDOWN = 0x207; - private const int WM_NCLBUTTONDOWN = 0x0A1; - private const int WM_NCRBUTTONDOWN = 0x0A4; - private const int WM_NCMBUTTONDOWN = 0x0A7; - #endregion - #region Private Variable Declarations - private Form _dropDown = null; - private DropDownWindowHelper _owner = null; - #endregion - #region Event Declarations - public event DropDownCancelEventHandler DropDownCancel; - #endregion - #region Constructor / Destructor - /// - /// Constructs a new instance of this class and sets the owning - /// object. - /// - /// The object - /// which owns this class. - public DropDownMessageFilter(DropDownWindowHelper Owner) - { - _owner = Owner; - } - #endregion - #region Public Properties - /// - /// Gets/sets the dropdown form which is being displayed. - /// - public Form DropDown - { - get { return _dropDown; } - set { _dropDown = value; } - } - #endregion - #region Private Methods - private void OnMouseDown() - { - Point cursorPos = Cursor.Position; // Get the cursor location - - if (!_dropDown.Bounds.Contains(cursorPos)) // Check if it is within the popup form - { - OnDropDownCancel(new DropDownCancelEventArgs(_dropDown, cursorPos)); // If not, then call to see if it should be closed - } - } - #endregion - #region DropDownCancelEvent Implementation - protected virtual void OnDropDownCancel(DropDownCancelEventArgs e) - { - if (this.DropDownCancel != null) - { - this.DropDownCancel(this, e); - } - - if (!e.Cancel) - { - _owner.CloseDropDown(); - _dropDown = null; // Clear reference for GC - } - } - #endregion - #region IMessageFilter Implementation - /// - /// Checks the message loop for mouse messages whilst the popup - /// window is displayed. If one is detected the position is - /// checked to see if it is outside the form, and the owner - /// is notified if so. - /// - /// Windows Message about to be processed by the - /// message loop - /// true to filter the message, false otherwise. - /// This implementation always returns false. - public bool PreFilterMessage(ref Message m) - { - if (_dropDown != null) - { - switch (m.Msg) - { - case WM_LBUTTONDOWN: - case WM_RBUTTONDOWN: - case WM_MBUTTONDOWN: - case WM_NCLBUTTONDOWN: - case WM_NCRBUTTONDOWN: - case WM_NCMBUTTONDOWN: OnMouseDown(); break; - } - } - - return false; - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownWindowHelper.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownWindowHelper.cs deleted file mode 100644 index 54250577..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Helper/DropDownWindowHelper.cs +++ /dev/null @@ -1,203 +0,0 @@ -using System; -using System.Drawing; -using System.Runtime.InteropServices; -using System.Windows.Forms; - -namespace AT.STO.UI.Win -{ - /// - /// A class to assist in creating popup windows like Combo Box drop-downs and Menus. - /// This class includes functionality to keep the title bar of the popup owner form - /// active whilst the popup is displayed, and to automatically cancel the popup - /// whenever the user clicks outside the popup window or shifts focus to another - /// application. - /// - /// Thousand thanks to Steve McMahon: - /// http://www.vbaccelerator.com/home/NET/Code/Controls/Popup_Windows/Popup_Windows/Popup_Form_Demonstration.asp - /// - internal class DropDownWindowHelper : NativeWindow - { - #region Private Variable Declarations - private EventHandler DropDownClosedHandler = null; - - private Form _dropDown = null; - private bool _dropDownShowing = false; - private DropDownMessageFilter _filter = null; - private Form _owner = null; - private bool _skipClose = false; - #endregion - #region Event Declarations - public event DropDownCancelEventHandler DropDownCancel; - public event DropDownClosedEventHandler DropDownClosed; - #endregion - #region Constructor / Destructor - /// - /// Default constructor. - /// - /// Use the - /// method to attach this class to the form you want to show popups from. - public DropDownWindowHelper() - { - _filter = new DropDownMessageFilter(this); - _filter.DropDownCancel += new DropDownCancelEventHandler(Popup_Cancel); - } - #endregion - #region Event Handler - private void Popup_Cancel(object sender, DropDownCancelEventArgs e) - { - OnDropDownCancel(e); - } - - /// - /// Responds to the - /// event from the popup form. - /// - /// Popup form that has been closed. - /// Not used. - private void Popup_Closed(object sender, EventArgs e) - { - CloseDropDown(); - } - - /// - /// Subclasses the owning form's existing Window Procedure to enables the - /// title bar to remain active when a popup is show, and to detect if - /// the user clicks onto another application whilst the popup is visible. - /// - /// Window Procedure Message - protected override void WndProc(ref Message m) - { - base.WndProc(ref m); - - if (DropDownShowing) - { - if (m.Msg == UIApiCalls.WM_NCACTIVATE) - { - if (((int)m.WParam) == 0) // Check if the title bar will made inactive: - { // Note it's no good to try and consume this message; if you try to do that you'll end up with windows - UIApiCalls.SendMessage(this.Handle, UIApiCalls.WM_NCACTIVATE, 1, IntPtr.Zero); // If so reactivate it. - } - } - else if (m.Msg == UIApiCalls.WM_ACTIVATEAPP) - { - if ((int)m.WParam == 0) // Check if the application is being deactivated. - { - CloseDropDown(); // It is so cancel the popup: - UIApiCalls.PostMessage(this.Handle, UIApiCalls.WM_NCACTIVATE, 0, IntPtr.Zero); // And put the title bar into the inactive state: - } - } - } - } - #endregion - #region Public Methods - /// - /// Shows the specified Form as a popup window, keeping the - /// Owner's title bar active and preparing to cancel the popup - /// should the user click anywhere outside the popup window. - /// Typical code to use this message is as follows: - /// - /// frmPopup popup = new frmPopup(); - /// Point location = this.PointToScreen(new Point(button1.Left, button1.Bottom)); - /// popupHelper.ShowPopup(this, popup, location); - /// - /// Put as much initialisation code as possible - /// into the popup form's constructor, rather than the - /// event as this will improve visual appearance. - /// - /// Main form which owns the popup - /// Window to show as a popup - /// Location relative to the screen to show the popup at. - public void ShowDropDown(Form Owner, Form DropDown, Point Location) - { - _owner = Owner; - _dropDown = DropDown; - Application.AddMessageFilter(_filter); // Start checking for the popup being cancelled - DropDown.StartPosition = FormStartPosition.Manual; // Set the location of the popup form: - DropDown.Location = Location; - Owner.AddOwnedForm(DropDown); // Make it owned by the window that's displaying it: - DropDownClosedHandler = new EventHandler(Popup_Closed); // Respond to the Closed event in case the popup is closed by its own internal means - DropDown.Closed += DropDownClosedHandler; - - _dropDownShowing = true; // Show the popup: - DropDown.Show(); - DropDown.Activate(); - - // A little bit of fun. We've shown the popup, but because we've kept the main window's - // title bar in focus the tab sequence isn't quite right. This can be fixed by sending a tab, - // but that on its own would shift focus to the second control in the form. So send a tab, - // followed by a reverse-tab. - UIApiCalls.keybd_event((byte) Keys.Tab, 0, 0, 0); - UIApiCalls.keybd_event((byte) Keys.Tab, 0, UIApiCalls.KEYEVENTF_KEYUP, 0); - UIApiCalls.keybd_event((byte) Keys.ShiftKey, 0, 0, 0); - UIApiCalls.keybd_event((byte) Keys.Tab, 0, 0, 0); - UIApiCalls.keybd_event((byte) Keys.Tab, 0, UIApiCalls.KEYEVENTF_KEYUP, 0); - UIApiCalls.keybd_event((byte) Keys.ShiftKey, 0, UIApiCalls.KEYEVENTF_KEYUP, 0); - - _filter.DropDown = DropDown; // Start filtering for mouse clicks outside the popup - } - - /// - /// Called when the popup is being hidden. - /// - public void CloseDropDown() - { - if (DropDownShowing) - { - if (!_skipClose) - { - OnPDropDownClosed(new DropDownClosedEventArgs(_dropDown)); - } - - _skipClose = false; - - _owner.RemoveOwnedForm(_dropDown); // Make sure the popup is closed and we've cleaned up: - _dropDownShowing = false; - _dropDown.Closed -= DropDownClosedHandler; - DropDownClosedHandler = null; - _dropDown.Close(); - - Application.RemoveMessageFilter(_filter); // No longer need to filter for clicks outside the popup. - - // If we did something from the popup which shifted focus to a new form, like showing another popup - // or dialog, then Windows won't know how to bring the original owner back to the foreground, so - // force it here: - _owner.Activate(); - - _dropDown = null; // Null out references for GC - _owner = null; - } - } - #endregion - #region Public Properties - /// - /// Indicator weither the DropDown is showing. - /// - public bool DropDownShowing - { - get { return _dropDownShowing; } - } - #endregion - #region Event Implementation - protected virtual void OnDropDownCancel(DropDownCancelEventArgs e) - { - if (this.DropDownCancel != null) - { - this.DropDownCancel(this, e); - - if (!e.Cancel) - { - _skipClose = true; - } - } - } - - protected virtual void OnPDropDownClosed(DropDownClosedEventArgs e) - { - if (this.DropDownClosed != null) - { - this.DropDownClosed(this, e); - } - } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/IDropDownAware.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/IDropDownAware.cs deleted file mode 100644 index 94874f2b..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/IDropDownAware.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; - -namespace AT.STO.UI.Win -{ - /// - /// Standard interface that has to be implemented by control's that - /// should be diplayed in the dropdown area of the DropDownPanel. - /// - public interface IDropDownAware - { - #region Event Declarations - /// - /// Fired either on OK, Cancel or a click outside the control to indicate - /// that the user has finished editing. - /// - event DropDownValueChangedEventHandler FinishEditing; - - /// - /// Fired on any change of the controls's value during the editing process. - /// - event DropDownValueChangedEventHandler ValueChanged; - #endregion - #region Public Properties - /// - /// Gets or sets the controls' value. - /// - object Value { get; set; } - #endregion - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/ILookupItem.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/ILookupItem.cs deleted file mode 100644 index b3181e2a..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Interfaces/ILookupItem.cs +++ /dev/null @@ -1,10 +0,0 @@ -using System; - -namespace AT.STO.UI.Win -{ - public interface ILookupItem where T: struct - { - T Id { get; } - string Text { get; } - } -} diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Properties/AssemblyInfo.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Properties/AssemblyInfo.cs deleted file mode 100644 index edf85828..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("DropDownPanel")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("DropDownPanel")] -[assembly: AssemblyCopyright("Copyright © 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d59d03fc-b0ff-4210-867d-cfa4cef1728c")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/DropDownPanel_sol/DropDownPanel/Unmanaged/UIApiCalls.cs b/PROMS/DropDownPanel_sol/DropDownPanel/Unmanaged/UIApiCalls.cs deleted file mode 100644 index 92b2f160..00000000 --- a/PROMS/DropDownPanel_sol/DropDownPanel/Unmanaged/UIApiCalls.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Runtime.InteropServices; - -namespace AT.STO.UI.Win -{ - public static class UIApiCalls - { - #region Public Constants - public const int WM_ACTIVATE = 0x006; - public const int WM_ACTIVATEAPP = 0x01C; - public const int WM_NCACTIVATE = 0x086; - public const int KEYEVENTF_KEYUP = 0x0002; - #endregion - #region Public Static API Calls - [DllImport("user32", CharSet = CharSet.Auto)] - public extern static int SendMessage(IntPtr handle, int msg, int wParam, IntPtr lParam); - - [DllImport("user32", CharSet = CharSet.Auto)] - public extern static int PostMessage(IntPtr handle, int msg, int wParam, IntPtr lParam); - - [DllImport("user32")] - public extern static void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo); - #endregion - } -} diff --git a/PROMS/EPocalipse.IFilter/ComHelper.cs b/PROMS/EPocalipse.IFilter/ComHelper.cs deleted file mode 100644 index 0950df90..00000000 --- a/PROMS/EPocalipse.IFilter/ComHelper.cs +++ /dev/null @@ -1,110 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Runtime.InteropServices; - -namespace EPocalipse.IFilter -{ - [ComVisible(false)] - [ComImport, InterfaceType(ComInterfaceType.InterfaceIsIUnknown), Guid("00000001-0000-0000-C000-000000000046")] - internal interface IClassFactory - { - void CreateInstance([MarshalAs(UnmanagedType.Interface)] object pUnkOuter, ref Guid refiid, [MarshalAs(UnmanagedType.Interface)] out object ppunk); - void LockServer(bool fLock); - } - - /// - /// Utility class to get a Class Factory for a certain Class ID - /// by loading the dll that implements that class - /// - internal static class ComHelper - { - //DllGetClassObject fuction pointer signature - private delegate int DllGetClassObject(ref Guid ClassId, ref Guid InterfaceId, [Out, MarshalAs(UnmanagedType.Interface)] out object ppunk); - - //Some win32 methods to load\unload dlls and get a function pointer - private class Win32NativeMethods - { - [DllImport("kernel32.dll", CharSet=CharSet.Ansi)] - public static extern IntPtr GetProcAddress(IntPtr hModule, string lpProcName); - - [DllImport("kernel32.dll")] - public static extern bool FreeLibrary(IntPtr hModule); - - [DllImport("kernel32.dll")] - public static extern IntPtr LoadLibrary(string lpFileName); - } - - /// - /// Holds a list of dll handles and unloads the dlls - /// in the destructor - /// - private class DllList - { - private List _dllList=new List(); - public void AddDllHandle(IntPtr dllHandle) - { - lock (_dllList) - { - _dllList.Add(dllHandle); - } - } - - ~DllList() - { - foreach (IntPtr dllHandle in _dllList) - { - try - { - Win32NativeMethods.FreeLibrary(dllHandle); - } - catch { }; - } - } - } - - static DllList _dllList=new DllList(); - - /// - /// Gets a class factory for a specific COM Class ID. - /// - /// The dll where the COM class is implemented - /// The requested Class ID - /// IClassFactory instance used to create instances of that class - internal static IClassFactory GetClassFactory(string dllName, string filterPersistClass) - { - //Load the class factory from the dll - IClassFactory classFactory=GetClassFactoryFromDll(dllName, filterPersistClass); - return classFactory; - } - - private static IClassFactory GetClassFactoryFromDll(string dllName, string filterPersistClass) - { - //Load the dll - IntPtr dllHandle=Win32NativeMethods.LoadLibrary(dllName); - if (dllHandle==IntPtr.Zero) - return null; - - //Keep a reference to the dll until the process\AppDomain dies - _dllList.AddDllHandle(dllHandle); - - //Get a pointer to the DllGetClassObject function - IntPtr dllGetClassObjectPtr=Win32NativeMethods.GetProcAddress(dllHandle, "DllGetClassObject"); - if (dllGetClassObjectPtr==IntPtr.Zero) - return null; - - //Convert the function pointer to a .net delegate - DllGetClassObject dllGetClassObject=(DllGetClassObject)Marshal.GetDelegateForFunctionPointer(dllGetClassObjectPtr, typeof(DllGetClassObject)); - - //Call the DllGetClassObject to retreive a class factory for out Filter class - Guid filterPersistGUID=new Guid(filterPersistClass); - Guid IClassFactoryGUID=new Guid("00000001-0000-0000-C000-000000000046"); //IClassFactory class id - Object unk; - if (dllGetClassObject(ref filterPersistGUID, ref IClassFactoryGUID, out unk)!=0) - return null; - - //Yippie! cast the returned object to IClassFactory - return (unk as IClassFactory); - } - } -} diff --git a/PROMS/EPocalipse.IFilter/EPocalipse.IFilter.csproj b/PROMS/EPocalipse.IFilter/EPocalipse.IFilter.csproj deleted file mode 100644 index 338a51e9..00000000 --- a/PROMS/EPocalipse.IFilter/EPocalipse.IFilter.csproj +++ /dev/null @@ -1,93 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {400462CE-40B3-498F-B95A-B1D2AE679359} - Library - Properties - EPocalipse.IFilter - EPocalipse.IFilter - v3.5 - - - - - 2.0 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\Demo\ - DEBUG;TRACE - full - x86 - prompt - - - true - bin\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\Release\ - TRACE - true - pdbonly - x86 - prompt - - - true - bin\Demo\ - TRACE;DEMO - full - x86 - prompt - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/EPocalipse.IFilter/EPocalipse.IFilter.sln b/PROMS/EPocalipse.IFilter/EPocalipse.IFilter.sln deleted file mode 100644 index 52dad765..00000000 --- a/PROMS/EPocalipse.IFilter/EPocalipse.IFilter.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EPocalipse.IFilter", "EPocalipse.IFilter.csproj", "{400462CE-40B3-498F-B95A-B1D2AE679359}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {400462CE-40B3-498F-B95A-B1D2AE679359}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {400462CE-40B3-498F-B95A-B1D2AE679359}.Debug|Any CPU.Build.0 = Debug|Any CPU - {400462CE-40B3-498F-B95A-B1D2AE679359}.Release|Any CPU.ActiveCfg = Release|Any CPU - {400462CE-40B3-498F-B95A-B1D2AE679359}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/EPocalipse.IFilter/FilterLoader.cs b/PROMS/EPocalipse.IFilter/FilterLoader.cs deleted file mode 100644 index bf55e512..00000000 --- a/PROMS/EPocalipse.IFilter/FilterLoader.cs +++ /dev/null @@ -1,226 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Microsoft.Win32; -using System.IO; -using System.Runtime.InteropServices.ComTypes; -using System.Runtime.InteropServices; - -namespace EPocalipse.IFilter -{ - /// - /// FilterLoader finds the dll and ClassID of the COM object responsible - /// for filtering a specific file extension. - /// It then loads that dll, creates the appropriate COM object and returns - /// a pointer to an IFilter instance - /// - static class FilterLoader - { - #region CacheEntry - private class CacheEntry - { - public string DllName; - public string ClassName; - - public CacheEntry(string dllName, string className) - { - DllName=dllName; - ClassName=className; - } - } - #endregion - - static Dictionary _cache=new Dictionary(); - - #region Registry Read String helper - static string ReadStrFromHKLM(string key) - { - return ReadStrFromHKLM(key,null); - } - static string ReadStrFromHKLM(string key, string value) - { - RegistryKey rk=Registry.LocalMachine.OpenSubKey(key); - if (rk==null) - return null; - - using (rk) - { - return (string)rk.GetValue(value); - } - } - #endregion - - /// - /// finds an IFilter implementation for a file type - /// - /// The extension of the file - /// an IFilter instance used to retreive text from that file type - private static IFilter LoadIFilter(string ext) - { - string dllName, filterPersistClass; - - //Find the dll and ClassID - if (GetFilterDllAndClass(ext, out dllName, out filterPersistClass)) - { - //load the dll and return an IFilter instance. - return LoadFilterFromDll(dllName, filterPersistClass); - } - return null; - } - - internal static IFilter LoadAndInitIFilter(string fileName) - { - return LoadAndInitIFilter(fileName,Path.GetExtension(fileName)); - } - - internal static IFilter LoadAndInitIFilter(string fileName, string extension) - { - IFilter filter=LoadIFilter(extension); - if (filter==null) - return null; - IPersistFile persistFile=(filter as IPersistFile); - if (persistFile!=null) - { - persistFile.Load(fileName, 0); - IFILTER_FLAGS flags; - IFILTER_INIT iflags = - IFILTER_INIT.CANON_HYPHENS | - IFILTER_INIT.CANON_PARAGRAPHS | - IFILTER_INIT.CANON_SPACES | - IFILTER_INIT.APPLY_INDEX_ATTRIBUTES | - IFILTER_INIT.HARD_LINE_BREAKS | - IFILTER_INIT.FILTER_OWNED_VALUE_OK; - - if (filter.Init(iflags, 0, IntPtr.Zero, out flags)==IFilterReturnCode.S_OK) - return filter; - } - //If we failed to retreive an IPersistFile interface or to initialize - //the filter, we release it and return null. - Marshal.ReleaseComObject(filter); - return null; - } - - private static IFilter LoadFilterFromDll(string dllName, string filterPersistClass) - { - //Get a classFactory for our classID - IClassFactory classFactory=ComHelper.GetClassFactory(dllName, filterPersistClass); - if (classFactory==null) - return null; - - //And create an IFilter instance using that class factory - Guid IFilterGUID=new Guid("89BCB740-6119-101A-BCB7-00DD010655AF"); - Object obj; - classFactory.CreateInstance(null, ref IFilterGUID, out obj); - return (obj as IFilter); - } - - private static bool GetFilterDllAndClass(string ext, out string dllName, out string filterPersistClass) - { - if (!GetFilterDllAndClassFromCache(ext, out dllName, out filterPersistClass)) - { - string persistentHandlerClass; - - persistentHandlerClass=GetPersistentHandlerClass(ext,true); - if (persistentHandlerClass!=null) - { - GetFilterDllAndClassFromPersistentHandler(persistentHandlerClass, - out dllName, out filterPersistClass); - } - AddExtensionToCache(ext, dllName, filterPersistClass); - } - return (dllName!=null && filterPersistClass!=null); - } - - private static void AddExtensionToCache(string ext, string dllName, string filterPersistClass) - { - lock (_cache) - { - _cache.Add(ext.ToLower(), new CacheEntry(dllName, filterPersistClass)); - } - } - - private static bool GetFilterDllAndClassFromPersistentHandler(string persistentHandlerClass, out string dllName, out string filterPersistClass) - { - dllName=null; - filterPersistClass=null; - - //Read the CLASS ID of the IFilter persistent handler - filterPersistClass=ReadStrFromHKLM(@"Software\Classes\CLSID\" + persistentHandlerClass + - @"\PersistentAddinsRegistered\{89BCB740-6119-101A-BCB7-00DD010655AF}"); - if (String.IsNullOrEmpty(filterPersistClass)) - return false; - - //Read the dll name - dllName=ReadStrFromHKLM(@"Software\Classes\CLSID\" + filterPersistClass + - @"\InprocServer32"); - return (!String.IsNullOrEmpty(dllName)); - } - - private static string GetPersistentHandlerClass(string ext, bool searchContentType) - { - //Try getting the info from the file extension - string persistentHandlerClass=GetPersistentHandlerClassFromExtension(ext); - if (String.IsNullOrEmpty(persistentHandlerClass)) - //try getting the info from the document type - persistentHandlerClass=GetPersistentHandlerClassFromDocumentType(ext); - if (searchContentType && String.IsNullOrEmpty(persistentHandlerClass)) - //Try getting the info from the Content Type - persistentHandlerClass=GetPersistentHandlerClassFromContentType(ext); - return persistentHandlerClass; - } - - private static string GetPersistentHandlerClassFromContentType(string ext) - { - string contentType=ReadStrFromHKLM(@"Software\Classes\"+ext,"Content Type"); - if (String.IsNullOrEmpty(contentType)) - return null; - - string contentTypeExtension=ReadStrFromHKLM(@"Software\Classes\MIME\Database\Content Type\"+contentType, - "Extension"); - if (ext.Equals(contentTypeExtension, StringComparison.CurrentCultureIgnoreCase)) - return null; //No need to look further. This extension does not have any persistent handler - - //We know the extension that is assciated with that content type. Simply try again with the new extension - return GetPersistentHandlerClass(contentTypeExtension, false); //Don't search content type this time. - } - - private static string GetPersistentHandlerClassFromDocumentType(string ext) - { - //Get the DocumentType of this file extension - string docType=ReadStrFromHKLM(@"Software\Classes\"+ext); - if (String.IsNullOrEmpty(docType)) - return null; - - //Get the Class ID for this document type - string docClass=ReadStrFromHKLM(@"Software\Classes\" + docType + @"\CLSID"); - if (String.IsNullOrEmpty(docType)) - return null; - - //Now get the PersistentHandler for that Class ID - return ReadStrFromHKLM(@"Software\Classes\CLSID\" + docClass + @"\PersistentHandler"); - } - - private static string GetPersistentHandlerClassFromExtension(string ext) - { - return ReadStrFromHKLM(@"Software\Classes\"+ext+@"\PersistentHandler"); - } - - private static bool GetFilterDllAndClassFromCache(string ext, out string dllName, out string filterPersistClass) - { - string lowerExt=ext.ToLower(); - lock (_cache) - { - CacheEntry cacheEntry; - if (_cache.TryGetValue(lowerExt, out cacheEntry)) - { - dllName=cacheEntry.DllName; - filterPersistClass=cacheEntry.ClassName; - return true; - } - } - dllName=null; - filterPersistClass=null; - return false; - } - } -} diff --git a/PROMS/EPocalipse.IFilter/FilterReader.cs b/PROMS/EPocalipse.IFilter/FilterReader.cs deleted file mode 100644 index 2f98f8de..00000000 --- a/PROMS/EPocalipse.IFilter/FilterReader.cs +++ /dev/null @@ -1,112 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Runtime.InteropServices; - -namespace EPocalipse.IFilter -{ - /// - /// Implements a TextReader that reads from an IFilter. - /// - public class FilterReader : TextReader - { - IFilter _filter; - private bool _done; - private STAT_CHUNK _currentChunk; - private bool _currentChunkValid; - private char[] _charsLeftFromLastRead; - - public override void Close() - { - Dispose(true); - GC.SuppressFinalize(this); - } - - ~FilterReader() - { - Dispose(false); - } - - protected override void Dispose(bool disposing) - { - if (_filter!=null) - Marshal.ReleaseComObject(_filter); - } - - public override int Read(char[] array, int offset, int count) - { - int endOfChunksCount=0; - int charsRead=0; - - while (!_done && charsRead1) - _done=true; //That's it. no more chuncks available - } - - if (_currentChunkValid) - { - uint bufLength=(uint)(count-charsRead); - if (bufLength<8192) - bufLength=8192; //Read ahead - - char[] buffer=new char[bufLength]; - IFilterReturnCode res=_filter.GetText(ref bufLength, buffer); - buffer[bufLength++] = ' '; - if (res==IFilterReturnCode.S_OK || res==IFilterReturnCode.FILTER_S_LAST_TEXT) - { - int cRead=(int)bufLength; - if (cRead+charsRead>count) - { - int charsLeft=(cRead+charsRead-count); - _charsLeftFromLastRead=new char[charsLeft]; - Array.Copy(buffer, cRead-charsLeft, _charsLeftFromLastRead, 0, charsLeft); - cRead-=charsLeft; - } - else - _charsLeftFromLastRead=null; - - Array.Copy(buffer, 0, array, offset+charsRead, cRead); - charsRead+=cRead; - } - - if (res==IFilterReturnCode.FILTER_S_LAST_TEXT || res==IFilterReturnCode.FILTER_E_NO_MORE_TEXT) - _currentChunkValid=false; - } - } - return charsRead; - } - - public FilterReader(string fileName) - { - _filter=FilterLoader.LoadAndInitIFilter(fileName); - if (_filter==null) - throw new ArgumentException("no filter defined for "+fileName); - } - } -} diff --git a/PROMS/EPocalipse.IFilter/IFilter.cs b/PROMS/EPocalipse.IFilter/IFilter.cs deleted file mode 100644 index e71de152..00000000 --- a/PROMS/EPocalipse.IFilter/IFilter.cs +++ /dev/null @@ -1,435 +0,0 @@ -using System; -using System.Text; -using System.Runtime.InteropServices; - -//Contains IFilter interface translation -//Most translations are from PInvoke.net - -namespace EPocalipse.IFilter -{ - [StructLayout(LayoutKind.Sequential)] - public struct FULLPROPSPEC - { - public Guid guidPropSet; - public PROPSPEC psProperty; - } - - [StructLayout(LayoutKind.Sequential)] - internal struct FILTERREGION - { - public int idChunk; - public int cwcStart; - public int cwcExtent; - } - - [StructLayout(LayoutKind.Explicit)] - public struct PROPSPEC - { - [FieldOffset(0)] public int ulKind; // 0 - string used; 1 - PROPID - [FieldOffset(4)] public int propid; - [FieldOffset(4)] public IntPtr lpwstr; - } - - [Flags] - internal enum IFILTER_FLAGS - { - /// - /// The caller should use the IPropertySetStorage and IPropertyStorage - /// interfaces to locate additional properties. - /// When this flag is set, properties available through COM - /// enumerators should not be returned from IFilter. - /// - IFILTER_FLAGS_OLE_PROPERTIES = 1 - } - - /// - /// Flags controlling the operation of the FileFilter - /// instance. - /// - [Flags] - internal enum IFILTER_INIT - { - NONE = 0, - /// - /// Paragraph breaks should be marked with the Unicode PARAGRAPH - /// SEPARATOR (0x2029) - /// - CANON_PARAGRAPHS = 1, - - /// - /// Soft returns, such as the newline character in Microsoft Word, should - /// be replaced by hard returnsLINE SEPARATOR (0x2028). Existing hard - /// returns can be doubled. A carriage return (0x000D), line feed (0x000A), - /// or the carriage return and line feed in combination should be considered - /// a hard return. The intent is to enable pattern-expression matches that - /// match against observed line breaks. - /// - HARD_LINE_BREAKS = 2, - - /// - /// Various word-processing programs have forms of hyphens that are not - /// represented in the host character set, such as optional hyphens - /// (appearing only at the end of a line) and nonbreaking hyphens. This flag - /// indicates that optional hyphens are to be converted to nulls, and - /// non-breaking hyphens are to be converted to normal hyphens (0x2010), or - /// HYPHEN-MINUSES (0x002D). - /// - CANON_HYPHENS = 4, - - /// - /// Just as the CANON_HYPHENS flag standardizes hyphens, - /// this one standardizes spaces. All special space characters, such as - /// nonbreaking spaces, are converted to the standard space character - /// (0x0020). - /// - CANON_SPACES = 8, - - /// - /// Indicates that the client wants text split into chunks representing - /// public value-type properties. - /// - APPLY_INDEX_ATTRIBUTES = 16, - - /// - /// Indicates that the client wants text split into chunks representing - /// properties determined during the indexing process. - /// - APPLY_CRAWL_ATTRIBUTES = 256, - - /// - /// Any properties not covered by the APPLY_INDEX_ATTRIBUTES - /// and APPLY_CRAWL_ATTRIBUTES flags should be emitted. - /// - APPLY_OTHER_ATTRIBUTES = 32, - - /// - /// Optimizes IFilter for indexing because the client calls the - /// IFilter::Init method only once and does not call IFilter::BindRegion. - /// This eliminates the possibility of accessing a chunk both before and - /// after accessing another chunk. - /// - INDEXING_ONLY = 64, - - /// - /// The text extraction process must recursively search all linked - /// objects within the document. If a link is unavailable, the - /// IFilter::GetChunk call that would have obtained the first chunk of the - /// link should return FILTER_E_LINK_UNAVAILABLE. - /// - SEARCH_LINKS = 128, - - /// - /// The content indexing process can return property values set by the filter. - /// - FILTER_OWNED_VALUE_OK = 512 - } - - public struct STAT_CHUNK - { - /// - /// The chunk identifier. Chunk identifiers must be unique for the - /// current instance of the IFilter interface. - /// Chunk identifiers must be in ascending order. The order in which - /// chunks are numbered should correspond to the order in which they appear - /// in the source document. Some search engines can take advantage of the - /// proximity of chunks of various properties. If so, the order in which - /// chunks with different properties are emitted will be important to the - /// search engine. - /// - public int idChunk; - - /// - /// The type of break that separates the previous chunk from the current - /// chunk. Values are from the CHUNK_BREAKTYPE enumeration. - /// - [MarshalAs(UnmanagedType.U4)] - public CHUNK_BREAKTYPE breakType; - - /// - /// Flags indicate whether this chunk contains a text-type or a - /// value-type property. - /// Flag values are taken from the CHUNKSTATE enumeration. If the CHUNK_TEXT flag is set, - /// IFilter::GetText should be used to retrieve the contents of the chunk - /// as a series of words. - /// If the CHUNK_VALUE flag is set, IFilter::GetValue should be used to retrieve - /// the value and treat it as a single property value. If the filter dictates that the same - /// content be treated as both text and as a value, the chunk should be emitted twice in two - /// different chunks, each with one flag set. - /// - [MarshalAs(UnmanagedType.U4)] - public CHUNKSTATE flags; - - /// - /// The language and sublanguage associated with a chunk of text. Chunk locale is used - /// by document indexers to perform proper word breaking of text. If the chunk is - /// neither text-type nor a value-type with data type VT_LPWSTR, VT_LPSTR or VT_BSTR, - /// this field is ignored. - /// - public int locale; - - /// - /// The property to be applied to the chunk. If a filter requires that the same text - /// have more than one property, it needs to emit the text once for each property - /// in separate chunks. - /// - public FULLPROPSPEC attribute; - - /// - /// The ID of the source of a chunk. The value of the idChunkSource member depends on the nature of the chunk: - /// If the chunk is a text-type property, the value of the idChunkSource member must be the same as the value of the idChunk member. - /// If the chunk is an public value-type property derived from textual content, the value of the idChunkSource member is the chunk ID for the - /// text-type chunk from which it is derived. - /// If the filter attributes specify to return only public value-type - /// properties, there is no content chunk from which to derive the current - /// public value-type property. In this case, the value of the - /// idChunkSource member must be set to zero, which is an invalid chunk. - /// - public int idChunkSource; - - /// - /// The offset from which the source text for a derived chunk starts in - /// the source chunk. - /// - public int cwcStartSource; - - /// - /// The length in characters of the source text from which the current - /// chunk was derived. - /// A zero value signifies character-by-character correspondence between - /// the source text and - /// the derived text. A nonzero value means that no such direct - /// correspondence exists - /// - public int cwcLenSource; - } - - /// - /// Enumerates the different breaking types that occur between - /// chunks of text read out by the FileFilter. - /// - public enum CHUNK_BREAKTYPE - { - /// - /// No break is placed between the current chunk and the previous chunk. - /// The chunks are glued together. - /// - CHUNK_NO_BREAK = 0, - /// - /// A word break is placed between this chunk and the previous chunk that - /// had the same attribute. - /// Use of CHUNK_EOW should be minimized because the choice of word - /// breaks is language-dependent, - /// so determining word breaks is best left to the search engine. - /// - CHUNK_EOW = 1, - /// - /// A sentence break is placed between this chunk and the previous chunk - /// that had the same attribute. - /// - CHUNK_EOS = 2, - /// - /// A paragraph break is placed between this chunk and the previous chunk - /// that had the same attribute. - /// - CHUNK_EOP = 3, - /// - /// A chapter break is placed between this chunk and the previous chunk - /// that had the same attribute. - /// - CHUNK_EOC = 4 - } - - - public enum CHUNKSTATE - { - /// - /// The current chunk is a text-type property. - /// - CHUNK_TEXT = 0x1, - /// - /// The current chunk is a value-type property. - /// - CHUNK_VALUE = 0x2, - /// - /// Reserved - /// - CHUNK_FILTER_OWNED_VALUE = 0x4 - } - - internal enum IFilterReturnCode : uint - { - /// - /// Success - /// - S_OK = 0, - /// - /// The function was denied access to the filter file. - /// - E_ACCESSDENIED = 0x80070005, - /// - /// The function encountered an invalid handle, - /// probably due to a low-memory situation. - /// - E_HANDLE = 0x80070006, - /// - /// The function received an invalid parameter. - /// - E_INVALIDARG = 0x80070057, - /// - /// Out of memory - /// - E_OUTOFMEMORY = 0x8007000E, - /// - /// Not implemented - /// - E_NOTIMPL = 0x80004001, - /// - /// Unknown error - /// - E_FAIL = 0x80000008, - /// - /// File not filtered due to password protection - /// - FILTER_E_PASSWORD = 0x8004170B, - /// - /// The document format is not recognised by the filter - /// - FILTER_E_UNKNOWNFORMAT = 0x8004170C, - /// - /// No text in current chunk - /// - FILTER_E_NO_TEXT = 0x80041705, - /// - /// No more chunks of text available in object - /// - FILTER_E_END_OF_CHUNKS = 0x80041700, - /// - /// No more text available in chunk - /// - FILTER_E_NO_MORE_TEXT = 0x80041701, - /// - /// No more property values available in chunk - /// - FILTER_E_NO_MORE_VALUES = 0x80041702, - /// - /// Unable to access object - /// - FILTER_E_ACCESS = 0x80041703, - /// - /// Moniker doesn't cover entire region - /// - FILTER_W_MONIKER_CLIPPED = 0x00041704, - /// - /// Unable to bind IFilter for embedded object - /// - FILTER_E_EMBEDDING_UNAVAILABLE = 0x80041707, - /// - /// Unable to bind IFilter for linked object - /// - FILTER_E_LINK_UNAVAILABLE = 0x80041708, - /// - /// This is the last text in the current chunk - /// - FILTER_S_LAST_TEXT = 0x00041709, - /// - /// This is the last value in the current chunk - /// - FILTER_S_LAST_VALUES = 0x0004170A - } - - [ComImport, Guid("89BCB740-6119-101A-BCB7-00DD010655AF")] - [InterfaceType(ComInterfaceType.InterfaceIsIUnknown)] - internal interface IFilter - { - /// - /// The IFilter::Init method initializes a filtering session. - /// - [PreserveSig] - IFilterReturnCode Init( - //[in] Flag settings from the IFILTER_INIT enumeration for - // controlling text standardization, property output, embedding - // scope, and IFilter access patterns. - IFILTER_INIT grfFlags, - - // [in] The size of the attributes array. When nonzero, cAttributes - // takes - // precedence over attributes specified in grfFlags. If no - // attribute flags - // are specified and cAttributes is zero, the default is given by - // the - // PSGUID_STORAGE storage property set, which contains the date and - // time - // of the last write to the file, size, and so on; and by the - // PID_STG_CONTENTS - // 'contents' property, which maps to the main contents of the - // file. - // For more information about properties and property sets, see - // Property Sets. - int cAttributes, - - //[in] Array of pointers to FULLPROPSPEC structures for the - // requested properties. - // When cAttributes is nonzero, only the properties in aAttributes - // are returned. - IntPtr aAttributes, - - // [out] Information about additional properties available to the - // caller; from the IFILTER_FLAGS enumeration. - out IFILTER_FLAGS pdwFlags); - - /// - /// The IFilter::GetChunk method positions the filter at the beginning - /// of the next chunk, - /// or at the first chunk if this is the first call to the GetChunk - /// method, and returns a description of the current chunk. - /// - [PreserveSig] - IFilterReturnCode GetChunk(out STAT_CHUNK pStat); - - /// - /// The IFilter::GetText method retrieves text (text-type properties) - /// from the current chunk, - /// which must have a CHUNKSTATE enumeration value of CHUNK_TEXT. - /// - [PreserveSig] - IFilterReturnCode GetText( - // [in/out] On entry, the size of awcBuffer array in wide/Unicode - // characters. On exit, the number of Unicode characters written to - // awcBuffer. - // Note that this value is not the number of bytes in the buffer. - ref uint pcwcBuffer, - - // Text retrieved from the current chunk. Do not terminate the - // buffer with a character. - [Out(), MarshalAs(UnmanagedType.LPArray)] - char[] awcBuffer); - - /// - /// The IFilter::GetValue method retrieves a value (public - /// value-type property) from a chunk, - /// which must have a CHUNKSTATE enumeration value of CHUNK_VALUE. - /// - [PreserveSig] - int GetValue( - // Allocate the PROPVARIANT structure with CoTaskMemAlloc. Some - // PROPVARIANT - // structures contain pointers, which can be freed by calling the - // PropVariantClear function. - // It is up to the caller of the GetValue method to call the - // PropVariantClear method. - // ref IntPtr ppPropValue - // [MarshalAs(UnmanagedType.Struct)] - ref IntPtr PropVal); - - /// - /// The IFilter::BindRegion method retrieves an interface representing - /// the specified portion of the object. - /// Currently reserved for future use. - /// - [PreserveSig] - int BindRegion(ref FILTERREGION origPos, - ref Guid riid, ref object ppunk); - } - - -} diff --git a/PROMS/EPocalipse.IFilter/Properties/AssemblyInfo.cs b/PROMS/EPocalipse.IFilter/Properties/AssemblyInfo.cs deleted file mode 100644 index d134bc85..00000000 --- a/PROMS/EPocalipse.IFilter/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("EPocalipse.IFilter")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("EPocalipse.IFilter")] -[assembly: AssemblyCopyright("Copyright © 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("da53005f-425b-4812-bc03-474ce26d1d23")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/FONTS/typetool3/VESYMBFIX.bak b/PROMS/FONTS/typetool3/VESYMBFIX.bak deleted file mode 100644 index 9d355e80..00000000 Binary files a/PROMS/FONTS/typetool3/VESYMBFIX.bak and /dev/null differ diff --git a/PROMS/FONTS/typetool3/VESYMBFIXB.bak b/PROMS/FONTS/typetool3/VESYMBFIXB.bak deleted file mode 100644 index 5db69072..00000000 Binary files a/PROMS/FONTS/typetool3/VESYMBFIXB.bak and /dev/null differ diff --git a/PROMS/FONTS/typetool3/VESYMBUNI.bak b/PROMS/FONTS/typetool3/VESYMBUNI.bak deleted file mode 100644 index 3e8325d5..00000000 Binary files a/PROMS/FONTS/typetool3/VESYMBUNI.bak and /dev/null differ diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp.sln b/PROMS/Font Work/MyPdfComp/MyPdfComp.sln deleted file mode 100644 index a5ea9e42..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MyPdfComp", "MyPdfComp\MyPdfComp.csproj", "{0EFADF44-AF95-421F-8727-6388B62253DC}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0EFADF44-AF95-421F-8727-6388B62253DC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0EFADF44-AF95-421F-8727-6388B62253DC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0EFADF44-AF95-421F-8727-6388B62253DC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0EFADF44-AF95-421F-8727-6388B62253DC}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.Designer.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.Designer.cs deleted file mode 100644 index fcb6bcf6..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace MyPdfComp -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Text = "Form1"; - } - - #endregion - } -} - diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.cs deleted file mode 100644 index 8241fa63..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace MyPdfComp -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.resx b/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.resx deleted file mode 100644 index 0c231e6f..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/MyPdfComp.csproj b/PROMS/Font Work/MyPdfComp/MyPdfComp/MyPdfComp.csproj deleted file mode 100644 index d5648912..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/MyPdfComp.csproj +++ /dev/null @@ -1,74 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {0EFADF44-AF95-421F-8727-6388B62253DC} - WinExe - Properties - MyPdfComp - MyPdfComp - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - Form1.cs - - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - \ No newline at end of file diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Program.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Program.cs deleted file mode 100644 index 2146567b..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace MyPdfComp -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} \ No newline at end of file diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/AssemblyInfo.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/AssemblyInfo.cs deleted file mode 100644 index b42d5007..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("MyPdfComp")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MyPdfComp")] -[assembly: AssemblyCopyright("Copyright © 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("bc67c2c5-25e8-4a91-b64d-dfd72ffff056")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.Designer.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.Designer.cs deleted file mode 100644 index 68edfb3c..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.3074 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace MyPdfComp.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MyPdfComp.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.resx b/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.resx deleted file mode 100644 index 25a61211..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.Designer.cs b/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.Designer.cs deleted file mode 100644 index 90b0cb34..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.3074 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace MyPdfComp.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.settings b/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/Font Work/MyPdfComp/MyPdfComp/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/Formats/Formats.sln b/PROMS/Formats/Formats.sln deleted file mode 100644 index 415b0927..00000000 --- a/PROMS/Formats/Formats.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Formats", "Formats.csproj", "{F479493D-A543-4CCF-9541-039FD5126794}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F479493D-A543-4CCF-9541-039FD5126794}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F479493D-A543-4CCF-9541-039FD5126794}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F479493D-A543-4CCF-9541-039FD5126794}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F479493D-A543-4CCF-9541-039FD5126794}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/Formats/Production Formats.sln b/PROMS/Formats/Production Formats.sln deleted file mode 100644 index a8cc0e9c..00000000 --- a/PROMS/Formats/Production Formats.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Formats", "Formats.csproj", "{F479493D-A543-4CCF-9541-039FD5126794}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 2 - SccLocalPath0 = . - SccProjectUniqueName1 = Formats.csproj - SccLocalPath1 = . - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {F479493D-A543-4CCF-9541-039FD5126794}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F479493D-A543-4CCF-9541-039FD5126794}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F479493D-A543-4CCF-9541-039FD5126794}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F479493D-A543-4CCF-9541-039FD5126794}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/Formats/fmtall/BNPP2all.xml.bak b/PROMS/Formats/fmtall/BNPP2all.xml.bak deleted file mode 100644 index c30fa971..00000000 Binary files a/PROMS/Formats/fmtall/BNPP2all.xml.bak and /dev/null differ diff --git a/PROMS/Formats/fmtall/EXP1all.xml.bak b/PROMS/Formats/fmtall/EXP1all.xml.bak deleted file mode 100644 index 759f9125..00000000 Binary files a/PROMS/Formats/fmtall/EXP1all.xml.bak and /dev/null differ diff --git a/PROMS/ImportWordContent.7z b/PROMS/ImportWordContent.7z deleted file mode 100644 index 6edd260b..00000000 Binary files a/PROMS/ImportWordContent.7z and /dev/null differ diff --git a/PROMS/ImportWordContent/App.config b/PROMS/ImportWordContent/App.config deleted file mode 100644 index 8e156463..00000000 --- a/PROMS/ImportWordContent/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/ImportWordContent/ImportWordContent.csproj b/PROMS/ImportWordContent/ImportWordContent.csproj deleted file mode 100644 index cad90a1f..00000000 --- a/PROMS/ImportWordContent/ImportWordContent.csproj +++ /dev/null @@ -1,94 +0,0 @@ - - - - - Debug - AnyCPU - {50D0BCAC-E461-45C1-8716-2795EFC4F38C} - WinExe - Properties - ImportWordContent - ImportWordContent - v4.5 - 512 - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - Form - - - frmImportWordContent.cs - - - - - frmImportWordContent.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - {70f23722-19a3-4ac1-a900-55831c945786} - LBWordLibrary - - - - - \ No newline at end of file diff --git a/PROMS/ImportWordContent/Program.cs b/PROMS/ImportWordContent/Program.cs deleted file mode 100644 index dd1e853a..00000000 --- a/PROMS/ImportWordContent/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace ImportWordContent -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmImportWordContent()); - } - } -} diff --git a/PROMS/ImportWordContent/Properties/AssemblyInfo.cs b/PROMS/ImportWordContent/Properties/AssemblyInfo.cs deleted file mode 100644 index dceb0ebe..00000000 --- a/PROMS/ImportWordContent/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ImportWordContent")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ImportWordContent")] -[assembly: AssemblyCopyright("Copyright © 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5a071d1d-11f9-4476-9750-dd4725ab1aaf")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/ImportWordContent/Properties/Resources.Designer.cs b/PROMS/ImportWordContent/Properties/Resources.Designer.cs deleted file mode 100644 index 45037bf7..00000000 --- a/PROMS/ImportWordContent/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ImportWordContent.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ImportWordContent.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/ImportWordContent/Properties/Resources.resx b/PROMS/ImportWordContent/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/ImportWordContent/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/ImportWordContent/Properties/Settings.Designer.cs b/PROMS/ImportWordContent/Properties/Settings.Designer.cs deleted file mode 100644 index 2e694fae..00000000 --- a/PROMS/ImportWordContent/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ImportWordContent.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/ImportWordContent/Properties/Settings.settings b/PROMS/ImportWordContent/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/ImportWordContent/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/ImportWordContent/frmImportWordContent.Designer.cs b/PROMS/ImportWordContent/frmImportWordContent.Designer.cs deleted file mode 100644 index 7315779c..00000000 --- a/PROMS/ImportWordContent/frmImportWordContent.Designer.cs +++ /dev/null @@ -1,193 +0,0 @@ -namespace ImportWordContent -{ - partial class frmImportWordContent - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.btnBrowse = new System.Windows.Forms.Button(); - this.btnOpen = new System.Windows.Forms.Button(); - this.btnPage = new System.Windows.Forms.Button(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.tbWordFile = new System.Windows.Forms.TextBox(); - this.tbParagraph = new System.Windows.Forms.TextBox(); - this.btnNext = new System.Windows.Forms.Button(); - this.tbStyle = new System.Windows.Forms.TextBox(); - this.tbLevel = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.btnPrevious = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // btnBrowse - // - this.btnBrowse.Location = new System.Drawing.Point(512, 12); - this.btnBrowse.Name = "btnBrowse"; - this.btnBrowse.Size = new System.Drawing.Size(75, 23); - this.btnBrowse.TabIndex = 0; - this.btnBrowse.Text = "Browse..."; - this.btnBrowse.UseVisualStyleBackColor = true; - this.btnBrowse.Click += new System.EventHandler(this.btnBrowse_Click); - // - // btnOpen - // - this.btnOpen.Location = new System.Drawing.Point(512, 41); - this.btnOpen.Name = "btnOpen"; - this.btnOpen.Size = new System.Drawing.Size(75, 23); - this.btnOpen.TabIndex = 1; - this.btnOpen.Text = "Open"; - this.btnOpen.UseVisualStyleBackColor = true; - this.btnOpen.Click += new System.EventHandler(this.btnOpen_Click); - // - // btnPage - // - this.btnPage.Location = new System.Drawing.Point(512, 70); - this.btnPage.Name = "btnPage"; - this.btnPage.Size = new System.Drawing.Size(75, 23); - this.btnPage.TabIndex = 2; - this.btnPage.Tag = "MoveDown"; - this.btnPage.Text = "Page"; - this.btnPage.UseVisualStyleBackColor = true; - this.btnPage.Click += new System.EventHandler(this.btnNext_Click); - // - // ofd - // - this.ofd.Filter = "Docx Files|*.docx|Doc Files|*.doc|All Files|*.*"; - this.ofd.FileOk += new System.ComponentModel.CancelEventHandler(this.ofd_FileOk); - // - // tbWordFile - // - this.tbWordFile.Location = new System.Drawing.Point(39, 14); - this.tbWordFile.Name = "tbWordFile"; - this.tbWordFile.Size = new System.Drawing.Size(455, 20); - this.tbWordFile.TabIndex = 3; - this.tbWordFile.Text = "H:\\Volian\\WEC\\CPP-PMS-GJP-853 Rev 2.docx"; - // - // tbParagraph - // - this.tbParagraph.Location = new System.Drawing.Point(39, 95); - this.tbParagraph.Multiline = true; - this.tbParagraph.Name = "tbParagraph"; - this.tbParagraph.Size = new System.Drawing.Size(455, 60); - this.tbParagraph.TabIndex = 4; - // - // btnNext - // - this.btnNext.Location = new System.Drawing.Point(512, 132); - this.btnNext.Name = "btnNext"; - this.btnNext.Size = new System.Drawing.Size(75, 23); - this.btnNext.TabIndex = 5; - this.btnNext.Tag = "MoveDown"; - this.btnNext.Text = "Next"; - this.btnNext.UseVisualStyleBackColor = true; - this.btnNext.Click += new System.EventHandler(this.btnParagraph_Click); - // - // tbStyle - // - this.tbStyle.Location = new System.Drawing.Point(104, 51); - this.tbStyle.Name = "tbStyle"; - this.tbStyle.Size = new System.Drawing.Size(241, 20); - this.tbStyle.TabIndex = 6; - // - // tbLevel - // - this.tbLevel.Location = new System.Drawing.Point(425, 51); - this.tbLevel.Name = "tbLevel"; - this.tbLevel.Size = new System.Drawing.Size(69, 20); - this.tbLevel.TabIndex = 7; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(49, 56); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(30, 13); - this.label1.TabIndex = 8; - this.label1.Text = "Style"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(366, 52); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(33, 13); - this.label2.TabIndex = 9; - this.label2.Text = "Level"; - // - // btnPrevious - // - this.btnPrevious.Location = new System.Drawing.Point(512, 103); - this.btnPrevious.Name = "btnPrevious"; - this.btnPrevious.Size = new System.Drawing.Size(75, 23); - this.btnPrevious.TabIndex = 10; - this.btnPrevious.Tag = "MoveDown"; - this.btnPrevious.Text = "Previous"; - this.btnPrevious.UseVisualStyleBackColor = true; - this.btnPrevious.Click += new System.EventHandler(this.btnPrevious_Click); - // - // frmImportWordContent - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(605, 180); - this.Controls.Add(this.btnPrevious); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.tbLevel); - this.Controls.Add(this.tbStyle); - this.Controls.Add(this.btnNext); - this.Controls.Add(this.tbParagraph); - this.Controls.Add(this.tbWordFile); - this.Controls.Add(this.btnPage); - this.Controls.Add(this.btnOpen); - this.Controls.Add(this.btnBrowse); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "frmImportWordContent"; - this.ShowIcon = false; - this.Text = "Import Word Content"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnBrowse; - private System.Windows.Forms.Button btnOpen; - private System.Windows.Forms.Button btnPage; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.TextBox tbWordFile; - private System.Windows.Forms.TextBox tbParagraph; - private System.Windows.Forms.Button btnNext; - private System.Windows.Forms.TextBox tbStyle; - private System.Windows.Forms.TextBox tbLevel; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button btnPrevious; - } -} - diff --git a/PROMS/ImportWordContent/frmImportWordContent.cs b/PROMS/ImportWordContent/frmImportWordContent.cs deleted file mode 100644 index 0646eeaf..00000000 --- a/PROMS/ImportWordContent/frmImportWordContent.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using System.IO; -using LBWordLibrary; - -namespace ImportWordContent -{ - public partial class frmImportWordContent : Form - { - public frmImportWordContent() - { - InitializeComponent(); - btnNext.Enabled = false; - btnPage.Enabled = false; - btnPrevious.Enabled = false; - } - private void ofd_FileOk(object sender, CancelEventArgs e) - { - tbWordFile.Text = ofd.FileName; - } - private void btnBrowse_Click(object sender, EventArgs e) - { - // if we have a word doc open, then close it and reset WordApp - if (_WordApp != null) - { - _WordApp.Quit(false); - _WordApp = null; - } - ofd.ShowDialog(); - } - LBApplicationClass _WordApp; - private void btnOpen_Click(object sender, EventArgs e) - { - if (!File.Exists(tbWordFile.Text)) - { - MessageBox.Show(string.Format("{0}", tbWordFile.Text), "File Does Not Exist", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - btnNext.Enabled = false; - btnPage.Enabled = false; - btnPrevious.Enabled = false; - return; - } - _WordApp = new LBApplicationClass(); - _WordApp.Documents.Open(tbWordFile.Text); - _WordApp.Visible = true; - btnNext.Enabled = true; - btnPage.Enabled = true; - btnPrevious.Enabled = true; - } - - private void btnNext_Click(object sender, EventArgs e) - { - _WordApp.Selection.MoveDown(LBWdUnits.wdScreen, 1, 0); - } - - private void btnParagraph_Click(object sender, EventArgs e) - { - _WordApp.Selection.MoveDown(LBWdUnits.wdParagraph, 1, 0); - _WordApp.Selection.MoveDown(LBWdUnits.wdParagraph, 1, 1); - tbParagraph.Text = _WordApp.Selection.Text; - tbStyle.Text = _WordApp.Selection.Style.NameLocal; - tbLevel.Text = _WordApp.Selection.Style.ListLevelNumber.ToString(); - //_WordApp.Selection.Copy(); - Clipboard.SetText(tbParagraph.Text); - } - - private void btnPrevious_Click(object sender, EventArgs e) - { - _WordApp.Selection.MoveUp(LBWdUnits.wdParagraph, 1, 0); - _WordApp.Selection.MoveUp(LBWdUnits.wdParagraph, 1, 1); - tbParagraph.Text = _WordApp.Selection.Text; - tbStyle.Text = _WordApp.Selection.Style.NameLocal; - tbLevel.Text = _WordApp.Selection.Style.ListLevelNumber.ToString(); - } - } -} diff --git a/PROMS/ImportWordContent/frmImportWordContent.resx b/PROMS/ImportWordContent/frmImportWordContent.resx deleted file mode 100644 index c8e62f0d..00000000 --- a/PROMS/ImportWordContent/frmImportWordContent.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 53 - - \ No newline at end of file diff --git a/PROMS/LBWordLibrary/LBBozoComObject.cs b/PROMS/LBWordLibrary/LBBozoComObject.cs deleted file mode 100644 index f76b369f..00000000 --- a/PROMS/LBWordLibrary/LBBozoComObject.cs +++ /dev/null @@ -1,1751 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Reflection; - -namespace LBWordLibrary -{ - public abstract partial class LBComObject - { - private Object _Item; - internal Object Item - { - get { return _Item; } - set - { - _Item = value; - if (value != null) _MyType = _Item.GetType(); - } - } - private Type _MyType; - public Type MyType - { - get { return _MyType; } - set { _MyType = value; } - } - protected LBComObject() { } - protected LBComObject(string ProgID) - { - Type objClassType; - objClassType = Type.GetTypeFromProgID(ProgID); - Item = Activator.CreateInstance(objClassType); - } - protected LBComObject(Object item) - { - Item = item; - } - private Object DoInvokeMember(string name, Object[] parameters, BindingFlags bf, Binder b) - { - try - { - return _MyType.InvokeMember(name, bf, b, _Item, parameters); - } - catch (Exception ex) - { - throw new Exception(string.Format("LBComObject.DoInvokeMember {0}.{1}", _MyType.Name, name), ex); - } - return null; - } - protected void SetProperty(string propertyName, params Object[] parameters) - { - DoInvokeMember(propertyName, parameters, BindingFlags.SetProperty, null); - } - protected Object GetProperty(string propertyName) - { - return DoInvokeMember(propertyName, null, BindingFlags.GetProperty, null); - } - protected Object GetProperty(string propertyName, params Object[] parameters) - { - return DoInvokeMember(propertyName, parameters, BindingFlags.GetProperty, null); - } - protected Object InvokeMethod(string methodName, params Object[] parameters) - { - if (parameters != null) - FixParameters(parameters); - return DoInvokeMember(methodName, parameters, BindingFlags.InvokeMethod, null); - } - private void FixParameters(object[] parameters) - { - // Loop through parameters checking to make sure that none of them are LBComObjects - for (int i = 0; i < parameters.Length; i++) - if (parameters[i] is LBComObject) - parameters[i] = (parameters[i] as LBComObject).Item; - } - protected Object InvokeMethod(string methodName) - { - return InvokeMethod(methodName, null); - } - } - public class LBComObjectList : LBComObject - where TList : LBComObjectList - where TItem : LBComObject, new() - { - //public new(Object item):base(item){} - public TItem Add() - { - TItem tmp = new TItem(); - tmp.Item = InvokeMethod("Add"); - return tmp; - } - //public TItem this[int item] - //{ - // get - // { - // TItem tmp = new TItem(); - // tmp.Item = GetProperty("Item", item); - // return tmp; - // } - //} - } - public partial class LBApplicationClass : LBComObject - { - public LBApplicationClass() : base("Word.Application") { } - public LBApplicationClass(Object item) : base(item) { } - public Boolean Visible - { - get { return (GetProperty("Visible") as Boolean? ?? false); } - set { SetProperty("Visible", value); } - } - public LBDocuments Documents - { - get { return new LBDocuments(GetProperty("Documents")); } - } - public LBSelection Selection - { - get { return new LBSelection(GetProperty("Selection")); } - } - public LBDocumentClass ActiveDocument - { - get { return new LBDocumentClass(GetProperty("ActiveDocument")); } - } - public LBWindow ActiveWindow - { - get { return new LBWindow(GetProperty("ActiveWindow")); } - } - public String Version - { - get { return (GetProperty("Version").ToString()); } - } - public String ActivePrinter - { - get { return (GetProperty("ActivePrinter").ToString()); } - set { SetProperty("ActivePrinter", value); } - } - public int BackgroundPrintingStatus - { - get { return (GetProperty("BackgroundPrintingStatus") as int? ?? 0); } - } - public LBWdWindowState WindowState - { - get { return (LBWdWindowState)GetProperty("WindowState"); } - set { SetProperty("WindowState", value); } - } - public int BackgroundSavingStatus - { - get { return (GetProperty("BackgroundSavingStatus") as int? ?? 0); } - } - public void Quit() - { - InvokeMethod("Quit", Missing.Value, Missing.Value, Missing.Value); - } - public void Quit(object SaveChanges, object OriginalFormat, object RouteDocument) - { - InvokeMethod("Quit", SaveChanges, OriginalFormat, RouteDocument); - } - public void PrintOut() - { - InvokeMethod("PrintOut", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); - } - public void PrintOut(object Background, object Append, object Range, object OutputFileName, object From, object To, object Item, object Copies, object Pages, object PageType, object PrintToFile, object Collate, object FileName, object ActivePrinterMacGX, object ManualDuplexPrint, object PrintZoomColumn, object PrintZoomRow, object PrintZoomPaperWidth, object PrintZoomPaperHeight) - { - InvokeMethod("PrintOut", Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight); - } - public void Activate() - { - InvokeMethod("Activate"); - } - } - public partial class LBDocuments : LBComObjectList /* Collection */ - { - public LBDocuments(Object item) - { - Item = item; - } - public LBDocumentClass Open(object FileName) - { - return new LBDocumentClass(InvokeMethod("Open", FileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value)); - } - public LBDocumentClass Open(object FileName, object ConfirmConversions, object ReadOnly, object AddToRecentFiles, object PasswordDocument, object PasswordTemplate, object Revert, object WritePasswordDocument, object WritePasswordTemplate, object Format, object Encoding, object Visible, object OpenAndRepair, object DocumentDirection, object NoEncodingDialog, object XMLTransform) - { - return new LBDocumentClass(InvokeMethod("Open", FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format, Encoding, Visible, OpenAndRepair, DocumentDirection, NoEncodingDialog, XMLTransform)); - } - } - public partial class LBSelection : LBComObject - { - public LBSelection() { } - public LBSelection(Object item) : base(item) { } - public LBRange Range - { - get { return new LBRange(GetProperty("Range")); } - } - public LBParagraphFormatClass ParagraphFormat - { - get { return new LBParagraphFormatClass(GetProperty("ParagraphFormat")); } - } - public String Text - { - get { return (GetProperty("Text").ToString()); } - set { SetProperty("Text", value); } - } - public LBWdSelectionType Type - { - get { return (LBWdSelectionType)GetProperty("Type"); } - } - public LBFind Find - { - get { return new LBFind(GetProperty("Find")); } - } - public LBFontClass Font - { - get { return new LBFontClass(GetProperty("Font")); } - } - public int End - { - get { return (GetProperty("End") as int? ?? 0); } - set { SetProperty("End", value); } - } - public int Start - { - get { return (GetProperty("Start") as int? ?? 0); } - set { SetProperty("Start", value); } - } - public LBInlineShapes InlineShapes - { - get { return new LBInlineShapes(GetProperty("InlineShapes")); } - } - public LBParagraphs Paragraphs - { - get { return new LBParagraphs(GetProperty("Paragraphs")); } - } - public LBTables Tables - { - get { return new LBTables(GetProperty("Tables")); } - } - public LBCells Cells - { - get { return new LBCells(GetProperty("Cells")); } - } - public LBRows Rows - { - get { return new LBRows(GetProperty("Rows")); } - } - public void WholeStory() - { - InvokeMethod("WholeStory"); - } - public int MoveStart() - { - return InvokeMethod("MoveStart", Missing.Value, Missing.Value) as int? ?? 0; - } - public int MoveStart(object Unit, object Count) - { - return InvokeMethod("MoveStart", Unit, Count) as int? ?? 0; - } - public int MoveEnd() - { - return InvokeMethod("MoveEnd", Missing.Value, Missing.Value) as int? ?? 0; - } - public int MoveEnd(object Unit, object Count) - { - return InvokeMethod("MoveEnd", Unit, Count) as int? ?? 0; - } - public void Copy() - { - InvokeMethod("Copy"); - } - public int EndKey() - { - return InvokeMethod("EndKey", Missing.Value, Missing.Value) as int? ?? 0; - } - public int EndKey(object Unit, object Extend) - { - return InvokeMethod("EndKey", Unit, Extend) as int? ?? 0; - } - public void TypeText(string Text) - { - InvokeMethod("TypeText", Text); - } - public int EndOf() - { - return InvokeMethod("EndOf", Missing.Value, Missing.Value) as int? ?? 0; - } - public int EndOf(object Unit, object Extend) - { - return InvokeMethod("EndOf", Unit, Extend) as int? ?? 0; - } - public LBRange GoTo() - { - return new LBRange(InvokeMethod("GoTo", Missing.Value, Missing.Value, Missing.Value, Missing.Value)); - } - public LBRange GoTo(object What, object Which, object Count, object Name) - { - return new LBRange(InvokeMethod("GoTo", What, Which, Count, Name)); - } - public void InsertSymbol(int CharacterNumber) - { - InvokeMethod("InsertSymbol", CharacterNumber, Missing.Value, Missing.Value, Missing.Value); - } - public void InsertSymbol(int CharacterNumber, object Font, object Unicode, object Bias) - { - InvokeMethod("InsertSymbol", CharacterNumber, Font, Unicode, Bias); - } - public int MoveRight() - { - return InvokeMethod("MoveRight", Missing.Value, Missing.Value, Missing.Value) as int? ?? 0; - } - public int MoveRight(object Unit, object Count, object Extend) - { - return InvokeMethod("MoveRight", Unit, Count, Extend) as int? ?? 0; - } - public int MoveLeft() - { - return InvokeMethod("MoveLeft", Missing.Value, Missing.Value, Missing.Value) as int? ?? 0; - } - public int MoveLeft(object Unit, object Count, object Extend) - { - return InvokeMethod("MoveLeft", Unit, Count, Extend) as int? ?? 0; - } - public void SelectCell() - { - InvokeMethod("SelectCell"); - } - public void SelectRow() - { - InvokeMethod("SelectRow"); - } - public void SelectColumn() - { - InvokeMethod("SelectColumn"); - } - public void TypeParagraph() - { - InvokeMethod("TypeParagraph"); - } - public void TypeBackspace() - { - InvokeMethod("TypeBackspace"); - } - public int MoveDown() - { - return InvokeMethod("MoveDown", Missing.Value, Missing.Value, Missing.Value) as int? ?? 0; - } - public int MoveDown(object Unit, object Count, object Extend) - { - return InvokeMethod("MoveDown", Unit, Count, Extend) as int? ?? 0; - } - public int MoveUp() - { - return InvokeMethod("MoveUp", Missing.Value, Missing.Value, Missing.Value) as int? ?? 0; - } - public int MoveUp(object Unit, object Count, object Extend) - { - return InvokeMethod("MoveUp", Unit, Count, Extend) as int? ?? 0; - } - } - public partial class LBDocumentClass : LBComObject - { - public LBDocumentClass() { } - public LBDocumentClass(Object item) : base(item) { } - public LBApplicationClass Application - { - get { return new LBApplicationClass(GetProperty("Application")); } - } - public int SaveFormat - { - get { return (GetProperty("SaveFormat") as int? ?? 0); } - } - public String FullName - { - get { return (GetProperty("FullName").ToString()); } - } - public LBShapes Shapes - { - get { return new LBShapes(GetProperty("Shapes")); } - } - public LBWindow ActiveWindow - { - get { return new LBWindow(GetProperty("ActiveWindow")); } - } - public LBPageSetup PageSetup - { - get { return new LBPageSetup(GetProperty("PageSetup")); } - } - public Boolean Saved - { - get { return (GetProperty("Saved") as Boolean? ?? false); } - set { SetProperty("Saved", value); } - } - public LBTables Tables - { - get { return new LBTables(GetProperty("Tables")); } - } - public float DefaultTabStop - { - get { return (GetProperty("DefaultTabStop") as float? ?? 0); } - set { SetProperty("DefaultTabStop", value); } - } - public void SaveAs2000() - { - InvokeMethod("SaveAs2000", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); - } - public void SaveAs2000(object FileName, object FileFormat, object LockComments, object Password, object AddToRecentFiles, object WritePassword, object ReadOnlyRecommended, object EmbedTrueTypeFonts, object SaveNativePictureFormat, object SaveFormsData, object SaveAsAOCELetter) - { - InvokeMethod("SaveAs2000", FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter); - } - public void SaveAs() - { - InvokeMethod("SaveAs", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); - } - public void SaveAs(object FileName, object FileFormat, object LockComments, object Password, object AddToRecentFiles, object WritePassword, object ReadOnlyRecommended, object EmbedTrueTypeFonts, object SaveNativePictureFormat, object SaveFormsData, object SaveAsAOCELetter, object Encoding, object InsertLineBreaks, object AllowSubstitutions, object LineEnding, object AddBiDiMarks) - { - InvokeMethod("SaveAs", FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter, Encoding, InsertLineBreaks, AllowSubstitutions, LineEnding, AddBiDiMarks); - } - public void Close() - { - InvokeMethod("Close", Missing.Value, Missing.Value, Missing.Value); - } - public void Close(object SaveChanges, object OriginalFormat, object RouteDocument) - { - InvokeMethod("Close", SaveChanges, OriginalFormat, RouteDocument); - } - public void ExportAsFixedFormat(string OutputFileName, LBWdExportFormat ExportFormat) - { - InvokeMethod("ExportAsFixedFormat", OutputFileName, ExportFormat, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); - } - public void ExportAsFixedFormat(string OutputFileName, LBWdExportFormat ExportFormat, Boolean OpenAfterExport, LBWdExportOptimizeFor OptimizeFor, LBWdExportRange Range, int From, int To, LBWdExportItem Item, Boolean IncludeDocProps, Boolean KeepIRM, LBWdExportCreateBookmarks CreateBookmarks, Boolean DocStructureTags, Boolean BitmapMissingFonts, Boolean UseISO19005_1, object FixedFormatExtClassPtr) - { - InvokeMethod("ExportAsFixedFormat", OutputFileName, ExportFormat, OpenAfterExport, OptimizeFor, Range, From, To, Item, IncludeDocProps, KeepIRM, CreateBookmarks, DocStructureTags, BitmapMissingFonts, UseISO19005_1, FixedFormatExtClassPtr); - } - public LBRange Range() - { - return new LBRange(InvokeMethod("Range", Missing.Value, Missing.Value)); - } - public LBRange Range(object Start, object End) - { - return new LBRange(InvokeMethod("Range", Start, End)); - } - public Boolean Undo() - { - return InvokeMethod("Undo", Missing.Value) as Boolean? ?? false; - } - public Boolean Undo(object Times) - { - return InvokeMethod("Undo", Times) as Boolean? ?? false; - } - } - public partial class LBWindow : LBComObject - { - public LBWindow() { } - public LBWindow(Object item) : base(item) { } - public LBPane ActivePane - { - get { return new LBPane(GetProperty("ActivePane")); } - } - public LBView View - { - get { return new LBView(GetProperty("View")); } - } - } - public enum LBWdWindowState - { - wdWindowStateNormal = 0, - wdWindowStateMaximize = 1, - wdWindowStateMinimize = 2 - } - public partial class LBRange : LBComObject - { - public LBRange() { } - public LBRange(Object item) : base(item) { } - public LBFontClass Font - { - get { return new LBFontClass(GetProperty("Font")); } - } - public LBWdColorIndex HighlightColorIndex - { - get { return (LBWdColorIndex)GetProperty("HighlightColorIndex"); } - set { SetProperty("HighlightColorIndex", value); } - } - public LBParagraphFormatClass ParagraphFormat - { - get { return new LBParagraphFormatClass(GetProperty("ParagraphFormat")); } - } - public LBParagraphs Paragraphs - { - get { return new LBParagraphs(GetProperty("Paragraphs")); } - } - public int End - { - get { return (GetProperty("End") as int? ?? 0); } - set { SetProperty("End", value); } - } - public int Start - { - get { return (GetProperty("Start") as int? ?? 0); } - set { SetProperty("Start", value); } - } - public String Text - { - get { return (GetProperty("Text").ToString()); } - set { SetProperty("Text", value); } - } - public LBTables Tables - { - get { return new LBTables(GetProperty("Tables")); } - } - public LBRows Rows - { - get { return new LBRows(GetProperty("Rows")); } - } - public LBColumns Columns - { - get { return new LBColumns(GetProperty("Columns")); } - } - public LBCells Cells - { - get { return new LBCells(GetProperty("Cells")); } - } - public LBRange GoTo() - { - return new LBRange(InvokeMethod("GoTo", Missing.Value, Missing.Value, Missing.Value, Missing.Value)); - } - public LBRange GoTo(object What, object Which, object Count, object Name) - { - return new LBRange(InvokeMethod("GoTo", What, Which, Count, Name)); - } - } - public partial class LBParagraphFormatClass : LBComObject - { - public LBParagraphFormatClass() { } - public LBParagraphFormatClass(Object item) : base(item) { } - public LBWdLineSpacing LineSpacingRule - { - get { return (LBWdLineSpacing)GetProperty("LineSpacingRule"); } - set { SetProperty("LineSpacingRule", value); } - } - public float LineSpacing - { - get { return (GetProperty("LineSpacing") as float? ?? 0); } - set { SetProperty("LineSpacing", value); } - } - public float SpaceAfter - { - get { return (GetProperty("SpaceAfter") as float? ?? 0); } - set { SetProperty("SpaceAfter", value); } - } - public int SpaceAfterAuto - { - get { return (GetProperty("SpaceAfterAuto") as int? ?? 0); } - set { SetProperty("SpaceAfterAuto", value); } - } - public float SpaceBefore - { - get { return (GetProperty("SpaceBefore") as float? ?? 0); } - set { SetProperty("SpaceBefore", value); } - } - public int SpaceBeforeAuto - { - get { return (GetProperty("SpaceBeforeAuto") as int? ?? 0); } - set { SetProperty("SpaceBeforeAuto", value); } - } - public LBWdParagraphAlignment Alignment - { - get { return (LBWdParagraphAlignment)GetProperty("Alignment"); } - set { SetProperty("Alignment", value); } - } - public float FirstLineIndent - { - get { return (GetProperty("FirstLineIndent") as float? ?? 0); } - set { SetProperty("FirstLineIndent", value); } - } - public float LeftIndent - { - get { return (GetProperty("LeftIndent") as float? ?? 0); } - set { SetProperty("LeftIndent", value); } - } - } - public enum LBWdSelectionType - { - wdNoSelection = 0, - wdSelectionIP = 1, - wdSelectionNormal = 2, - wdSelectionFrame = 3, - wdSelectionColumn = 4, - wdSelectionRow = 5, - wdSelectionBlock = 6, - wdSelectionInlineShape = 7, - wdSelectionShape = 8 - } - public partial class LBFind : LBComObject - { - public LBFind() { } - public LBFind(Object item) : base(item) { } - public LBReplacement Replacement - { - get { return new LBReplacement(GetProperty("Replacement")); } - } - public Boolean Forward - { - get { return (GetProperty("Forward") as Boolean? ?? false); } - set { SetProperty("Forward", value); } - } - public LBWdFindWrap Wrap - { - get { return (LBWdFindWrap)GetProperty("Wrap"); } - set { SetProperty("Wrap", value); } - } - public Boolean Format - { - get { return (GetProperty("Format") as Boolean? ?? false); } - set { SetProperty("Format", value); } - } - public Boolean MatchWholeWord - { - get { return (GetProperty("MatchWholeWord") as Boolean? ?? false); } - set { SetProperty("MatchWholeWord", value); } - } - public Boolean MatchWildcards - { - get { return (GetProperty("MatchWildcards") as Boolean? ?? false); } - set { SetProperty("MatchWildcards", value); } - } - public Boolean MatchSoundsLike - { - get { return (GetProperty("MatchSoundsLike") as Boolean? ?? false); } - set { SetProperty("MatchSoundsLike", value); } - } - public Boolean MatchAllWordForms - { - get { return (GetProperty("MatchAllWordForms") as Boolean? ?? false); } - set { SetProperty("MatchAllWordForms", value); } - } - public String Text - { - get { return (GetProperty("Text").ToString()); } - set { SetProperty("Text", value); } - } - public Boolean MatchCase - { - get { return (GetProperty("MatchCase") as Boolean? ?? false); } - set { SetProperty("MatchCase", value); } - } - public Boolean Execute() - { - return InvokeMethod("Execute", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Boolean? ?? false; - } - public Boolean Execute(object FindText, object MatchCase, object MatchWholeWord, object MatchWildcards, object MatchSoundsLike, object MatchAllWordForms, object Forward, object Wrap, object Format, object ReplaceWith, object Replace, object MatchKashida, object MatchDiacritics, object MatchAlefHamza, object MatchControl) - { - return InvokeMethod("Execute", FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl) as Boolean? ?? false; - } - public void ClearFormatting() - { - InvokeMethod("ClearFormatting"); - } - } - public partial class LBFontClass : LBComObject - { - public LBFontClass() { } - public LBFontClass(Object item) : base(item) { } - public LBWdColor Color - { - get { return (LBWdColor)GetProperty("Color"); } - set { SetProperty("Color", value); } - } - public int Position - { - get { return (GetProperty("Position") as int? ?? 0); } - set { SetProperty("Position", value); } - } - public int Subscript - { - get { return (GetProperty("Subscript") as int? ?? 0); } - set { SetProperty("Subscript", value); } - } - public int Superscript - { - get { return (GetProperty("Superscript") as int? ?? 0); } - set { SetProperty("Superscript", value); } - } - public float Size - { - get { return (GetProperty("Size") as float? ?? 0); } - set { SetProperty("Size", value); } - } - public String Name - { - get { return (GetProperty("Name").ToString()); } - set { SetProperty("Name", value); } - } - public LBWdUnderline Underline - { - get { return (LBWdUnderline)GetProperty("Underline"); } - set { SetProperty("Underline", value); } - } - public int Bold - { - get { return (GetProperty("Bold") as int? ?? 0); } - set { SetProperty("Bold", value); } - } - } - public enum LBWdInformation - { - wdActiveEndAdjustedPageNumber = 1, - wdActiveEndSectionNumber = 2, - wdActiveEndPageNumber = 3, - wdNumberOfPagesInDocument = 4, - wdHorizontalPositionRelativeToPage = 5, - wdVerticalPositionRelativeToPage = 6, - wdHorizontalPositionRelativeToTextBoundary = 7, - wdVerticalPositionRelativeToTextBoundary = 8, - wdFirstCharacterColumnNumber = 9, - wdFirstCharacterLineNumber = 10, - wdFrameIsSelected = 11, - wdWithInTable = 12, - wdStartOfRangeRowNumber = 13, - wdEndOfRangeRowNumber = 14, - wdMaximumNumberOfRows = 15, - wdStartOfRangeColumnNumber = 16, - wdEndOfRangeColumnNumber = 17, - wdMaximumNumberOfColumns = 18, - wdZoomPercentage = 19, - wdSelectionMode = 20, - wdCapsLock = 21, - wdNumLock = 22, - wdOverType = 23, - wdRevisionMarking = 24, - wdInFootnoteEndnotePane = 25, - wdInCommentPane = 26, - wdInHeaderFooter = 28, - wdAtEndOfRowMarker = 31, - wdReferenceOfType = 32, - wdHeaderFooterType = 33, - wdInMasterDocument = 34, - wdInFootnote = 35, - wdInEndnote = 36, - wdInWordMail = 37, - wdInClipboard = 38 - } - public partial class LBInlineShapes : LBComObjectList /* Collection */ - { - public LBInlineShapes(Object item) - { - Item = item; - } - public LBInlineShape AddPicture(string FileName) - { - return new LBInlineShape(InvokeMethod("AddPicture", FileName, Missing.Value, Missing.Value, Missing.Value)); - } - public LBInlineShape AddPicture(string FileName, object LinkToFile, object SaveWithDocument, object Range) - { - return new LBInlineShape(InvokeMethod("AddPicture", FileName, LinkToFile, SaveWithDocument, Range)); - } - } - public partial class LBParagraphs : LBComObjectList /* Collection */ - { - public LBParagraphs(Object item) - { - Item = item; - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - public LBParagraph First - { - get { return new LBParagraph(GetProperty("First")); } - } - public LBParagraph Last - { - get { return new LBParagraph(GetProperty("Last")); } - } - public System.Object GetEnumerator() - { - return InvokeMethod("GetEnumerator"); - } - } - public partial class LBTables : LBComObjectList /* Collection */ - { - public LBTables(Object item) - { - Item = item; - } - public LBTable Add(LBRange Range, int NumRows, int NumColumns) - { - return new LBTable(InvokeMethod("Add", Range, NumRows, NumColumns, Missing.Value, Missing.Value)); - } - public LBTable Add(LBRange Range, int NumRows, int NumColumns, object DefaultTableBehavior, object AutoFitBehavior) - { - return new LBTable(InvokeMethod("Add", Range, NumRows, NumColumns, DefaultTableBehavior, AutoFitBehavior)); - } - } - public partial class LBCells : LBComObjectList /* Collection */ - { - public LBCells(Object item) - { - Item = item; - } - public LBWdCellVerticalAlignment VerticalAlignment - { - get { return (LBWdCellVerticalAlignment)GetProperty("VerticalAlignment"); } - set { SetProperty("VerticalAlignment", value); } - } - public float Height - { - get { return (GetProperty("Height") as float? ?? 0); } - set { SetProperty("Height", value); } - } - public LBBorders Borders - { - get { return new LBBorders(GetProperty("Borders")); } - } - public System.Object GetEnumerator() - { - return InvokeMethod("GetEnumerator"); - } - public void Merge() - { - InvokeMethod("Merge"); - } - } - public partial class LBRows : LBComObjectList /* Collection */ - { - public LBRows(Object item) - { - Item = item; - } - public int HeadingFormat - { - get { return (GetProperty("HeadingFormat") as int? ?? 0); } - set { SetProperty("HeadingFormat", value); } - } - public LBRow First - { - get { return new LBRow(GetProperty("First")); } - } - public int AllowBreakAcrossPages - { - get { return (GetProperty("AllowBreakAcrossPages") as int? ?? 0); } - set { SetProperty("AllowBreakAcrossPages", value); } - } - } - public partial class LBShapes : LBComObjectList /* Collection */ - { - public LBShapes(Object item) - { - Item = item; - } - public LBShape AddPicture(string FileName) - { - return new LBShape(InvokeMethod("AddPicture", FileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value)); - } - public LBShape AddPicture(string FileName, object LinkToFile, object SaveWithDocument, object Left, object Top, object Width, object Height, object Anchor) - { - return new LBShape(InvokeMethod("AddPicture", FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height, Anchor)); - } - } - public partial class LBPageSetup : LBComObject - { - public LBPageSetup() { } - public LBPageSetup(Object item) : base(item) { } - public float BottomMargin - { - get { return (GetProperty("BottomMargin") as float? ?? 0); } - set { SetProperty("BottomMargin", value); } - } - public float LeftMargin - { - get { return (GetProperty("LeftMargin") as float? ?? 0); } - set { SetProperty("LeftMargin", value); } - } - public float RightMargin - { - get { return (GetProperty("RightMargin") as float? ?? 0); } - set { SetProperty("RightMargin", value); } - } - public float TopMargin - { - get { return (GetProperty("TopMargin") as float? ?? 0); } - set { SetProperty("TopMargin", value); } - } - public LBWdOrientation Orientation - { - get { return (LBWdOrientation)GetProperty("Orientation"); } - set { SetProperty("Orientation", value); } - } - public float PageHeight - { - get { return (GetProperty("PageHeight") as float? ?? 0); } - set { SetProperty("PageHeight", value); } - } - public float PageWidth - { - get { return (GetProperty("PageWidth") as float? ?? 0); } - set { SetProperty("PageWidth", value); } - } - public LBWdPaperSize PaperSize - { - get { return (LBWdPaperSize)GetProperty("PaperSize"); } - set { SetProperty("PaperSize", value); } - } - public float LinesPage - { - get { return (GetProperty("LinesPage") as float? ?? 0); } - set { SetProperty("LinesPage", value); } - } - public float CharsLine - { - get { return (GetProperty("CharsLine") as float? ?? 0); } - set { SetProperty("CharsLine", value); } - } - } - public enum LBWdExportFormat - { - wdExportFormatPDF = 17, - wdExportFormatXPS = 18 - } - public enum LBWdExportOptimizeFor - { - wdExportOptimizeForPrint = 0, - wdExportOptimizeForOnScreen = 1 - } - public enum LBWdExportRange - { - wdExportAllDocument = 0, - wdExportSelection = 1, - wdExportCurrentPage = 2, - wdExportFromTo = 3 - } - public enum LBWdExportItem - { - wdExportDocumentContent = 0, - wdExportDocumentWithMarkup = 7 - } - public enum LBWdExportCreateBookmarks - { - wdExportCreateNoBookmarks = 0, - wdExportCreateHeadingBookmarks = 1, - wdExportCreateWordBookmarks = 2 - } - public partial class LBPane : LBComObject - { - public LBPane() { } - public LBPane(Object item) : base(item) { } - public LBPages Pages - { - get { return new LBPages(GetProperty("Pages")); } - } - public LBView View - { - get { return new LBView(GetProperty("View")); } - } - } - public partial class LBView : LBComObject - { - public LBView() { } - public LBView(Object item) : base(item) { } - public LBWdViewType Type - { - get { return (LBWdViewType)GetProperty("Type"); } - set { SetProperty("Type", value); } - } - public Boolean ShowRevisionsAndComments - { - get { return (GetProperty("ShowRevisionsAndComments") as Boolean? ?? false); } - set { SetProperty("ShowRevisionsAndComments", value); } - } - public LBWdRevisionsView RevisionsView - { - get { return (LBWdRevisionsView)GetProperty("RevisionsView"); } - set { SetProperty("RevisionsView", value); } - } - public LBZoom Zoom - { - get { return new LBZoom(GetProperty("Zoom")); } - } - } - public enum LBWdColorIndex - { - wdNoHighlight = 0, - wdBlack = 1, - wdBlue = 2, - wdTurquoise = 3, - wdBrightGreen = 4, - wdPink = 5, - wdRed = 6, - wdYellow = 7, - wdWhite = 8, - wdDarkBlue = 9, - wdTeal = 10, - wdGreen = 11, - wdViolet = 12, - wdDarkRed = 13, - wdDarkYellow = 14, - wdGray50 = 15, - wdGray25 = 16, - wdByAuthor = -1 - } - public partial class LBColumns : LBComObjectList /* Collection */ - { - public LBColumns(Object item) - { - Item = item; - } - public LBColumn First - { - get { return new LBColumn(GetProperty("First")); } - } - public LBColumn Last - { - get { return new LBColumn(GetProperty("Last")); } - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - public System.Object GetEnumerator() - { - return InvokeMethod("GetEnumerator"); - } - } - public enum LBWdLineSpacing - { - wdLineSpaceSingle = 0, - wdLineSpace1pt5 = 1, - wdLineSpaceDouble = 2, - wdLineSpaceAtLeast = 3, - wdLineSpaceExactly = 4, - wdLineSpaceMultiple = 5 - } - public enum LBWdParagraphAlignment - { - wdAlignParagraphLeft = 0, - wdAlignParagraphCenter = 1, - wdAlignParagraphRight = 2, - wdAlignParagraphJustify = 3, - wdAlignParagraphDistribute = 4, - wdAlignParagraphJustifyMed = 5, - wdAlignParagraphJustifyHi = 7, - wdAlignParagraphJustifyLow = 8, - wdAlignParagraphThaiJustify = 9 - } - public partial class LBReplacement : LBComObject - { - public LBReplacement() { } - public LBReplacement(Object item) : base(item) { } - public String Text - { - get { return (GetProperty("Text").ToString()); } - set { SetProperty("Text", value); } - } - public void ClearFormatting() - { - InvokeMethod("ClearFormatting"); - } - } - public enum LBWdFindWrap - { - wdFindStop = 0, - wdFindContinue = 1, - wdFindAsk = 2 - } - public enum LBWdColor - { - wdColorBlack = 0, - wdColorDarkRed = 128, - wdColorRed = 255, - wdColorDarkGreen = 13056, - wdColorOliveGreen = 13107, - wdColorBrown = 13209, - wdColorOrange = 26367, - wdColorGreen = 32768, - wdColorDarkYellow = 32896, - wdColorLightOrange = 39423, - wdColorLime = 52377, - wdColorGold = 52479, - wdColorBrightGreen = 65280, - wdColorYellow = 65535, - wdColorGray95 = 789516, - wdColorGray90 = 1644825, - wdColorGray875 = 2105376, - wdColorGray85 = 2500134, - wdColorGray80 = 3355443, - wdColorGray75 = 4210752, - wdColorGray70 = 5000268, - wdColorGray65 = 5855577, - wdColorGray625 = 6316128, - wdColorDarkTeal = 6697728, - wdColorPlum = 6697881, - wdColorGray60 = 6710886, - wdColorSeaGreen = 6723891, - wdColorGray55 = 7566195, - wdColorDarkBlue = 8388608, - wdColorViolet = 8388736, - wdColorTeal = 8421376, - wdColorGray50 = 8421504, - wdColorGray45 = 9211020, - wdColorIndigo = 10040115, - wdColorBlueGray = 10053222, - wdColorGray40 = 10066329, - wdColorTan = 10079487, - wdColorLightYellow = 10092543, - wdColorGray375 = 10526880, - wdColorGray35 = 10921638, - wdColorGray30 = 11776947, - wdColorGray25 = 12632256, - wdColorRose = 13408767, - wdColorAqua = 13421619, - wdColorGray20 = 13421772, - wdColorLightGreen = 13434828, - wdColorGray15 = 14277081, - wdColorGray125 = 14737632, - wdColorGray10 = 15132390, - wdColorGray05 = 15987699, - wdColorBlue = 16711680, - wdColorPink = 16711935, - wdColorLightBlue = 16737843, - wdColorLavender = 16751052, - wdColorSkyBlue = 16763904, - wdColorPaleBlue = 16764057, - wdColorTurquoise = 16776960, - wdColorLightTurquoise = 16777164, - wdColorWhite = 16777215, - wdColorAutomatic = -16777216 - } - public enum LBWdUnderline - { - wdUnderlineNone = 0, - wdUnderlineSingle = 1, - wdUnderlineWords = 2, - wdUnderlineDouble = 3, - wdUnderlineDotted = 4, - wdUnderlineThick = 6, - wdUnderlineDash = 7, - wdUnderlineDotDash = 9, - wdUnderlineDotDotDash = 10, - wdUnderlineWavy = 11, - wdUnderlineDottedHeavy = 20, - wdUnderlineDashHeavy = 23, - wdUnderlineDotDashHeavy = 25, - wdUnderlineDotDotDashHeavy = 26, - wdUnderlineWavyHeavy = 27, - wdUnderlineDashLong = 39, - wdUnderlineWavyDouble = 43, - wdUnderlineDashLongHeavy = 55 - } - public partial class LBInlineShape : LBComObject - { - public LBInlineShape() { } - public LBInlineShape(Object item) : base(item) { } - public float Height - { - get { return (GetProperty("Height") as float? ?? 0); } - set { SetProperty("Height", value); } - } - public float Width - { - get { return (GetProperty("Width") as float? ?? 0); } - set { SetProperty("Width", value); } - } - } - public partial class LBParagraph : LBComObject - { - public LBParagraph() { } - public LBParagraph(Object item) : base(item) { } - public LBRange Range - { - get { return new LBRange(GetProperty("Range")); } - } - } - public partial class LBTable : LBComObject - { - public LBTable() { } - public LBTable(Object item) : base(item) { } - public LBColumns Columns - { - get { return new LBColumns(GetProperty("Columns")); } - } - public LBRows Rows - { - get { return new LBRows(GetProperty("Rows")); } - } - public float TopPadding - { - get { return (GetProperty("TopPadding") as float? ?? 0); } - set { SetProperty("TopPadding", value); } - } - public float RightPadding - { - get { return (GetProperty("RightPadding") as float? ?? 0); } - set { SetProperty("RightPadding", value); } - } - public float LeftPadding - { - get { return (GetProperty("LeftPadding") as float? ?? 0); } - set { SetProperty("LeftPadding", value); } - } - public float BottomPadding - { - get { return (GetProperty("BottomPadding") as float? ?? 0); } - set { SetProperty("BottomPadding", value); } - } - } - public enum LBWdCellVerticalAlignment - { - wdCellAlignVerticalTop = 0, - wdCellAlignVerticalCenter = 1, - wdCellAlignVerticalBottom = 3 - } - public partial class LBBorders : LBComObjectList /* Collection */ - { - public LBBorders(Object item) - { - Item = item; - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - } - public partial class LBRow : LBComObject - { - public LBRow() { } - public LBRow(Object item) : base(item) { } - public float Height - { - get { return (GetProperty("Height") as float? ?? 0); } - set { SetProperty("Height", value); } - } - public void Select() - { - InvokeMethod("Select"); - } - } - public partial class LBShape : LBComObject - { - public LBShape() { } - public LBShape(Object item) : base(item) { } - public float Height - { - get { return (GetProperty("Height") as float? ?? 0); } - set { SetProperty("Height", value); } - } - public float Width - { - get { return (GetProperty("Width") as float? ?? 0); } - set { SetProperty("Width", value); } - } - public LBRange Anchor - { - get { return new LBRange(GetProperty("Anchor")); } - } - public LBMsoTriState LockAspectRatio - { - get { return (LBMsoTriState)GetProperty("LockAspectRatio"); } - set { SetProperty("LockAspectRatio", value); } - } - public float Left - { - get { return (GetProperty("Left") as float? ?? 0); } - set { SetProperty("Left", value); } - } - public float LeftRelative - { - get { return (GetProperty("LeftRelative") as float? ?? 0); } - set { SetProperty("LeftRelative", value); } - } - public float Top - { - get { return (GetProperty("Top") as float? ?? 0); } - set { SetProperty("Top", value); } - } - public float TopRelative - { - get { return (GetProperty("TopRelative") as float? ?? 0); } - set { SetProperty("TopRelative", value); } - } - public LBWdRelativeHorizontalPosition RelativeHorizontalPosition - { - get { return (LBWdRelativeHorizontalPosition)GetProperty("RelativeHorizontalPosition"); } - set { SetProperty("RelativeHorizontalPosition", value); } - } - public LBWdRelativeVerticalPosition RelativeVerticalPosition - { - get { return (LBWdRelativeVerticalPosition)GetProperty("RelativeVerticalPosition"); } - set { SetProperty("RelativeVerticalPosition", value); } - } - public int LockAnchor - { - get { return (GetProperty("LockAnchor") as int? ?? 0); } - set { SetProperty("LockAnchor", value); } - } - } - public enum LBWdOrientation - { - wdOrientPortrait = 0, - wdOrientLandscape = 1 - } - public enum LBWdPaperSize - { - wdPaper10x14 = 0, - wdPaper11x17 = 1, - wdPaperLetter = 2, - wdPaperLetterSmall = 3, - wdPaperLegal = 4, - wdPaperExecutive = 5, - wdPaperA3 = 6, - wdPaperA4 = 7, - wdPaperA4Small = 8, - wdPaperA5 = 9, - wdPaperB4 = 10, - wdPaperB5 = 11, - wdPaperCSheet = 12, - wdPaperDSheet = 13, - wdPaperESheet = 14, - wdPaperFanfoldLegalGerman = 15, - wdPaperFanfoldStdGerman = 16, - wdPaperFanfoldUS = 17, - wdPaperFolio = 18, - wdPaperLedger = 19, - wdPaperNote = 20, - wdPaperQuarto = 21, - wdPaperStatement = 22, - wdPaperTabloid = 23, - wdPaperEnvelope9 = 24, - wdPaperEnvelope10 = 25, - wdPaperEnvelope11 = 26, - wdPaperEnvelope12 = 27, - wdPaperEnvelope14 = 28, - wdPaperEnvelopeB4 = 29, - wdPaperEnvelopeB5 = 30, - wdPaperEnvelopeB6 = 31, - wdPaperEnvelopeC3 = 32, - wdPaperEnvelopeC4 = 33, - wdPaperEnvelopeC5 = 34, - wdPaperEnvelopeC6 = 35, - wdPaperEnvelopeC65 = 36, - wdPaperEnvelopeDL = 37, - wdPaperEnvelopeItaly = 38, - wdPaperEnvelopeMonarch = 39, - wdPaperEnvelopePersonal = 40, - wdPaperCustom = 41 - } - public partial class LBPages : LBComObjectList /* Collection */ - { - public LBPages(Object item) - { - Item = item; - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - } - public enum LBWdViewType - { - wdNormalView = 1, - wdOutlineView = 2, - wdPrintView = 3, - wdPrintPreview = 4, - wdMasterView = 5, - wdWebView = 6, - wdReadingView = 7 - } - public enum LBWdRevisionsView - { - wdRevisionsViewFinal = 0, - wdRevisionsViewOriginal = 1 - } - public partial class LBZoom : LBComObject - { - public LBZoom() { } - public LBZoom(Object item) : base(item) { } - public LBWdPageFit PageFit - { - get { return (LBWdPageFit)GetProperty("PageFit"); } - set { SetProperty("PageFit", value); } - } - public int Percentage - { - get { return (GetProperty("Percentage") as int? ?? 0); } - set { SetProperty("Percentage", value); } - } - } - public partial class LBColumn : LBComObject - { - public LBColumn() { } - public LBColumn(Object item) : base(item) { } - public float Width - { - get { return (GetProperty("Width") as float? ?? 0); } - set { SetProperty("Width", value); } - } - public int Index - { - get { return (GetProperty("Index") as int? ?? 0); } - } - public LBColumn Next - { - get { return new LBColumn(GetProperty("Next")); } - } - public LBColumn Previous - { - get { return new LBColumn(GetProperty("Previous")); } - } - public void SetWidth(float ColumnWidth, LBWdRulerStyle RulerStyle) - { - InvokeMethod("SetWidth", ColumnWidth, RulerStyle); - } - } - public enum LBWdRelativeHorizontalPosition - { - wdRelativeHorizontalPositionMargin = 0, - wdRelativeHorizontalPositionPage = 1, - wdRelativeHorizontalPositionColumn = 2, - wdRelativeHorizontalPositionCharacter = 3, - wdRelativeHorizontalPositionLeftMarginArea = 4, - wdRelativeHorizontalPositionRightMarginArea = 5, - wdRelativeHorizontalPositionInnerMarginArea = 6, - wdRelativeHorizontalPositionOuterMarginArea = 7 - } - public enum LBWdRelativeVerticalPosition - { - wdRelativeVerticalPositionMargin = 0, - wdRelativeVerticalPositionPage = 1, - wdRelativeVerticalPositionParagraph = 2, - wdRelativeVerticalPositionLine = 3, - wdRelativeVerticalPositionTopMarginArea = 4, - wdRelativeVerticalPositionBottomMarginArea = 5, - wdRelativeVerticalPositionInnerMarginArea = 6, - wdRelativeVerticalPositionOuterMarginArea = 7 - } - public enum LBWdPageFit - { - wdPageFitNone = 0, - wdPageFitFullPage = 1, - wdPageFitBestFit = 2, - wdPageFitTextFit = 3 - } - public enum LBWdRulerStyle - { - wdAdjustNone = 0, - wdAdjustProportional = 1, - wdAdjustFirstColumn = 2, - wdAdjustSameWidth = 3 - } - public partial class LBBorder : LBComObject - { - public LBBorder() { } - public LBBorder(Object item) : base(item) { } - public LBWdLineStyle LineStyle - { - get { return (LBWdLineStyle)GetProperty("LineStyle"); } - set { SetProperty("LineStyle", value); } - } - public Boolean Visible - { - get { return (GetProperty("Visible") as Boolean? ?? false); } - set { SetProperty("Visible", value); } - } - } - public enum LBWdLineStyle - { - wdLineStyleNone = 0, - wdLineStyleSingle = 1, - wdLineStyleDot = 2, - wdLineStyleDashSmallGap = 3, - wdLineStyleDashLargeGap = 4, - wdLineStyleDashDot = 5, - wdLineStyleDashDotDot = 6, - wdLineStyleDouble = 7, - wdLineStyleTriple = 8, - wdLineStyleThinThickSmallGap = 9, - wdLineStyleThickThinSmallGap = 10, - wdLineStyleThinThickThinSmallGap = 11, - wdLineStyleThinThickMedGap = 12, - wdLineStyleThickThinMedGap = 13, - wdLineStyleThinThickThinMedGap = 14, - wdLineStyleThinThickLargeGap = 15, - wdLineStyleThickThinLargeGap = 16, - wdLineStyleThinThickThinLargeGap = 17, - wdLineStyleSingleWavy = 18, - wdLineStyleDoubleWavy = 19, - wdLineStyleDashDotStroked = 20, - wdLineStyleEmboss3D = 21, - wdLineStyleEngrave3D = 22, - wdLineStyleOutset = 23, - wdLineStyleInset = 24 - } - public enum LBWdBorderType - { - wdBorderDiagonalUp = -8, - wdBorderDiagonalDown = -7, - wdBorderVertical = -6, - wdBorderHorizontal = -5, - wdBorderRight = -4, - wdBorderBottom = -3, - wdBorderLeft = -2, - wdBorderTop = -1 - } - public partial class LBCell : LBComObject - { - public LBCell() { } - public LBCell(Object item) : base(item) { } - public LBColumn Column - { - get { return new LBColumn(GetProperty("Column")); } - } - public LBCell Next - { - get { return new LBCell(GetProperty("Next")); } - } - public LBCell Previous - { - get { return new LBCell(GetProperty("Previous")); } - } - public LBRow Row - { - get { return new LBRow(GetProperty("Row")); } - } - public LBWdCellVerticalAlignment VerticalAlignment - { - get { return (LBWdCellVerticalAlignment)GetProperty("VerticalAlignment"); } - set { SetProperty("VerticalAlignment", value); } - } - public float Width - { - get { return (GetProperty("Width") as float? ?? 0); } - set { SetProperty("Width", value); } - } - public LBTables Tables - { - get { return new LBTables(GetProperty("Tables")); } - } - public void SetWidth(float ColumnWidth, LBWdRulerStyle RulerStyle) - { - InvokeMethod("SetWidth", ColumnWidth, RulerStyle); - } - } - public enum LBWdSaveFormat - { - wdFormatDocument = 0, - wdFormatTemplate = 1, - wdFormatText = 2, - wdFormatTextLineBreaks = 3, - wdFormatDOSText = 4, - wdFormatDOSTextLineBreaks = 5, - wdFormatRTF = 6, - wdFormatUnicodeText = 7, - wdFormatHTML = 8, - wdFormatWebArchive = 9, - wdFormatFilteredHTML = 10, - wdFormatXML = 11, - wdFormatXMLDocument = 12, - wdFormatXMLDocumentMacroEnabled = 13, - wdFormatXMLTemplate = 14, - wdFormatXMLTemplateMacroEnabled = 15, - wdFormatDocumentDefault = 16, - wdFormatPDF = 17, - wdFormatXPS = 18, - wdFormatFlatXML = 19, - wdFormatFlatXMLMacroEnabled = 20, - wdFormatFlatXMLTemplate = 21, - wdFormatFlatXMLTemplateMacroEnabled = 22, - wdFormatOpenDocumentText = 23 - } - public enum LBWdFindMatch - { - wdMatchGraphic = 1, - wdMatchCommentMark = 5, - wdMatchTabCharacter = 9, - wdMatchCaretCharacter = 11, - wdMatchColumnBreak = 14, - wdMatchField = 19, - wdMatchNonbreakingHyphen = 30, - wdMatchOptionalHyphen = 31, - wdMatchNonbreakingSpace = 160, - wdMatchEnDash = 8211, - wdMatchEmDash = 8212, - wdMatchParagraphMark = 65551, - wdMatchFootnoteMark = 65554, - wdMatchEndnoteMark = 65555, - wdMatchManualPageBreak = 65564, - wdMatchAnyDigit = 65567, - wdMatchSectionBreak = 65580, - wdMatchAnyLetter = 65583, - wdMatchAnyCharacter = 65599, - wdMatchWhiteSpace = 65655 - } - public enum LBWdReplace - { - wdReplaceNone = 0, - wdReplaceOne = 1, - wdReplaceAll = 2 - } - public partial class LBPage : LBComObject - { - public LBPage() { } - public LBPage(Object item) : base(item) { } - public int Height - { - get { return (GetProperty("Height") as int? ?? 0); } - } - public int Left - { - get { return (GetProperty("Left") as int? ?? 0); } - } - public LBRectangles Rectangles - { - get { return new LBRectangles(GetProperty("Rectangles")); } - } - public int Top - { - get { return (GetProperty("Top") as int? ?? 0); } - } - public int Width - { - get { return (GetProperty("Width") as int? ?? 0); } - } - } - public partial class LBRectangles : LBComObjectList /* Collection */ - { - public LBRectangles(Object item) - { - Item = item; - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - } - public partial class LBRectangle : LBComObject - { - public LBRectangle() { } - public LBRectangle(Object item) : base(item) { } - public LBLines Lines - { - get { return new LBLines(GetProperty("Lines")); } - } - } - public partial class LBLines : LBComObjectList /* Collection */ - { - public LBLines(Object item) - { - Item = item; - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - } - public partial class LBLine : LBComObject - { - public LBLine() { } - public LBLine(Object item) : base(item) { } - public int Top - { - get { return (GetProperty("Top") as int? ?? 0); } - } - public int Height - { - get { return (GetProperty("Height") as int? ?? 0); } - } - } - public enum LBWdMovementType - { - wdMove = 0, - wdExtend = 1 - } - public enum LBWdUnits - { - wdCharacter = 1, - wdWord = 2, - wdSentence = 3, - wdParagraph = 4, - wdLine = 5, - wdStory = 6, - wdScreen = 7, - wdSection = 8, - wdColumn = 9, - wdRow = 10, - wdWindow = 11, - wdCell = 12, - wdCharacterFormatting = 13, - wdParagraphFormatting = 14, - wdTable = 15, - wdItem = 16 - } - public enum LBWdGoToDirection - { - wdGoToAbsolute = 1, - wdGoToNext = 2, - wdGoToPrevious = 3, - wdGoToLast = -1 - } - public enum LBWdGoToItem - { - wdGoToSection = 0, - wdGoToPage = 1, - wdGoToTable = 2, - wdGoToLine = 3, - wdGoToFootnote = 4, - wdGoToEndnote = 5, - wdGoToComment = 6, - wdGoToField = 7, - wdGoToGraphic = 8, - wdGoToObject = 9, - wdGoToEquation = 10, - wdGoToHeading = 11, - wdGoToPercent = 12, - wdGoToSpellingError = 13, - wdGoToGrammaticalError = 14, - wdGoToProofreadingError = 15, - wdGoToBookmark = -1 - } - public partial class LBPictureFormat : LBComObject - { - public LBPictureFormat() { } - public LBPictureFormat(Object item) : base(item) { } - } - public partial class LBStyle : LBComObject - { - public LBStyle() { } - public LBStyle(Object item) : base(item) { } - public String NameLocal - { - get { return (GetProperty("NameLocal").ToString()); } - set { SetProperty("NameLocal", value); } - } - public int ListLevelNumber - { - get { return (GetProperty("ListLevelNumber") as int? ?? 0); } - } - } - public partial class LBStyles : LBComObjectList /* Collection */ - { - public LBStyles(Object item) - { - Item = item; - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - public LBStyle Item - { - get { return new LBStyle(GetProperty("Item")); } - } - public System.Object GetEnumerator() - { - return InvokeMethod("GetEnumerator"); - } - } -} diff --git a/PROMS/LBWordLibrary/LBComObject.old.cs b/PROMS/LBWordLibrary/LBComObject.old.cs deleted file mode 100644 index 63456181..00000000 --- a/PROMS/LBWordLibrary/LBComObject.old.cs +++ /dev/null @@ -1,1617 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Reflection; - -namespace LBWordLibrary -{ - public abstract partial class LBComObject - { - private Object _Item; - internal Object Item - { - get { return _Item; } - set - { - _Item = value; - if (value != null) _MyType = _Item.GetType(); - } - } - private Type _MyType; - public Type MyType - { - get { return _MyType; } - set { _MyType = value; } - } - protected LBComObject() { } - protected LBComObject(string ProgID) - { - Type objClassType; - objClassType = Type.GetTypeFromProgID(ProgID); - Item = Activator.CreateInstance(objClassType); - } - protected LBComObject(Object item) - { - Item = item; - } - private Object DoInvokeMember(string name, Object[] parameters, BindingFlags bf, Binder b) - { - try - { - return _MyType.InvokeMember(name, bf, b, _Item, parameters); - } - catch (Exception ex) - { - throw new Exception(string.Format("LBComObject.DoInvokeMember {0}.{1}", _MyType.Name, name), ex); - } - return null; - } - protected void SetProperty(string propertyName, params Object[] parameters) - { - DoInvokeMember(propertyName, parameters, BindingFlags.SetProperty, null); - } - protected Object GetProperty(string propertyName) - { - return DoInvokeMember(propertyName, null, BindingFlags.GetProperty, null); - } - protected Object GetProperty(string propertyName, params Object[] parameters) - { - return DoInvokeMember(propertyName, parameters, BindingFlags.GetProperty, null); - } - protected Object InvokeMethod(string methodName, params Object[] parameters) - { - if (parameters != null) - FixParameters(parameters); - return DoInvokeMember(methodName, parameters, BindingFlags.InvokeMethod, null); - } - private void FixParameters(object[] parameters) - { - // Loop through parameters checking to make sure that none of them are LBComObjects - for (int i = 0; i < parameters.Length; i++) - if (parameters[i] is LBComObject) - parameters[i] = (parameters[i] as LBComObject).Item; - } - protected Object InvokeMethod(string methodName) - { - return InvokeMethod(methodName, null); - } - } - public class LBComObjectList : LBComObject - where TList : LBComObjectList - where TItem : LBComObject, new() - { - //public new(Object item):base(item){} - public TItem Add() - { - TItem tmp = new TItem(); - tmp.Item = InvokeMethod("Add"); - return tmp; - } - //public TItem this[int item] - //{ - // get - // { - // TItem tmp = new TItem(); - // tmp.Item = GetProperty("Item", item); - // return tmp; - // } - //} - } - public partial class LBApplicationClass : LBComObject - { - public LBApplicationClass() : base("Word.Application") { } - public LBApplicationClass(Object item) : base(item) { } - public Boolean Visible - { - get { return (GetProperty("Visible") as Boolean? ?? false); } - set { SetProperty("Visible", value); } - } - public LBDocuments Documents - { - get { return new LBDocuments(GetProperty("Documents")); } - } - public LBSelection Selection - { - get { return new LBSelection(GetProperty("Selection")); } - } - public LBDocumentClass ActiveDocument - { - get { return new LBDocumentClass(GetProperty("ActiveDocument")); } - } - public LBWindow ActiveWindow - { - get { return new LBWindow(GetProperty("ActiveWindow")); } - } - public String Version - { - get { return (GetProperty("Version").ToString()); } - } - public String ActivePrinter - { - get { return (GetProperty("ActivePrinter").ToString()); } - set { SetProperty("ActivePrinter", value); } - } - public int BackgroundPrintingStatus - { - get { return (GetProperty("BackgroundPrintingStatus") as int? ?? 0); } - } - public LBWdWindowState WindowState - { - get { return (LBWdWindowState)GetProperty("WindowState"); } - set { SetProperty("WindowState", value); } - } - public int BackgroundSavingStatus - { - get { return (GetProperty("BackgroundSavingStatus") as int? ?? 0); } - } - public void Quit() - { - InvokeMethod("Quit", Missing.Value, Missing.Value, Missing.Value); - } - public void Quit(object SaveChanges, object OriginalFormat, object RouteDocument) - { - InvokeMethod("Quit", SaveChanges, OriginalFormat, RouteDocument); - } - public void PrintOut() - { - InvokeMethod("PrintOut", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); - } - public void PrintOut(object Background, object Append, object Range, object OutputFileName, object From, object To, object Item, object Copies, object Pages, object PageType, object PrintToFile, object Collate, object FileName, object ActivePrinterMacGX, object ManualDuplexPrint, object PrintZoomColumn, object PrintZoomRow, object PrintZoomPaperWidth, object PrintZoomPaperHeight) - { - InvokeMethod("PrintOut", Background, Append, Range, OutputFileName, From, To, Item, Copies, Pages, PageType, PrintToFile, Collate, FileName, ActivePrinterMacGX, ManualDuplexPrint, PrintZoomColumn, PrintZoomRow, PrintZoomPaperWidth, PrintZoomPaperHeight); - } - public void Activate() - { - InvokeMethod("Activate"); - } - } - public partial class LBDocuments : LBComObjectList /* Collection */ - { - public LBDocuments(Object item) - { - Item = item; - } - public LBDocumentClass Open(object FileName) - { - return new LBDocumentClass(InvokeMethod("Open", FileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value)); - } - public LBDocumentClass Open(object FileName, object ConfirmConversions, object ReadOnly, object AddToRecentFiles, object PasswordDocument, object PasswordTemplate, object Revert, object WritePasswordDocument, object WritePasswordTemplate, object Format, object Encoding, object Visible, object OpenAndRepair, object DocumentDirection, object NoEncodingDialog, object XMLTransform) - { - return new LBDocumentClass(InvokeMethod("Open", FileName, ConfirmConversions, ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate, Revert, WritePasswordDocument, WritePasswordTemplate, Format, Encoding, Visible, OpenAndRepair, DocumentDirection, NoEncodingDialog, XMLTransform)); - } - } - public partial class LBSelection : LBComObject - { - public LBSelection() { } - public LBSelection(Object item) : base(item) { } - public LBRange Range - { - get { return new LBRange(GetProperty("Range")); } - } - public LBParagraphFormatClass ParagraphFormat - { - get { return new LBParagraphFormatClass(GetProperty("ParagraphFormat")); } - } - public String Text - { - get { return (GetProperty("Text").ToString()); } - set { SetProperty("Text", value); } - } - public LBWdSelectionType Type - { - get { return (LBWdSelectionType)GetProperty("Type"); } - } - public LBFind Find - { - get { return new LBFind(GetProperty("Find")); } - } - public LBFontClass Font - { - get { return new LBFontClass(GetProperty("Font")); } - } - public int End - { - get { return (GetProperty("End") as int? ?? 0); } - set { SetProperty("End", value); } - } - public int Start - { - get { return (GetProperty("Start") as int? ?? 0); } - set { SetProperty("Start", value); } - } - public LBInlineShapes InlineShapes - { - get { return new LBInlineShapes(GetProperty("InlineShapes")); } - } - public LBParagraphs Paragraphs - { - get { return new LBParagraphs(GetProperty("Paragraphs")); } - } - public LBTables Tables - { - get { return new LBTables(GetProperty("Tables")); } - } - public LBCells Cells - { - get { return new LBCells(GetProperty("Cells")); } - } - public LBRows Rows - { - get { return new LBRows(GetProperty("Rows")); } - } - public void WholeStory() - { - InvokeMethod("WholeStory"); - } - public int MoveStart() - { - return InvokeMethod("MoveStart", Missing.Value, Missing.Value) as int? ?? 0; - } - public int MoveStart(object Unit, object Count) - { - return InvokeMethod("MoveStart", Unit, Count) as int? ?? 0; - } - public int MoveEnd() - { - return InvokeMethod("MoveEnd", Missing.Value, Missing.Value) as int? ?? 0; - } - public int MoveEnd(object Unit, object Count) - { - return InvokeMethod("MoveEnd", Unit, Count) as int? ?? 0; - } - public void Copy() - { - InvokeMethod("Copy"); - } - public int EndKey() - { - return InvokeMethod("EndKey", Missing.Value, Missing.Value) as int? ?? 0; - } - public int EndKey(object Unit, object Extend) - { - return InvokeMethod("EndKey", Unit, Extend) as int? ?? 0; - } - public void TypeText(string Text) - { - InvokeMethod("TypeText", Text); - } - public int EndOf() - { - return InvokeMethod("EndOf", Missing.Value, Missing.Value) as int? ?? 0; - } - public int EndOf(object Unit, object Extend) - { - return InvokeMethod("EndOf", Unit, Extend) as int? ?? 0; - } - public LBRange GoTo() - { - return new LBRange(InvokeMethod("GoTo", Missing.Value, Missing.Value, Missing.Value, Missing.Value)); - } - public LBRange GoTo(object What, object Which, object Count, object Name) - { - return new LBRange(InvokeMethod("GoTo", What, Which, Count, Name)); - } - public void InsertSymbol(int CharacterNumber) - { - InvokeMethod("InsertSymbol", CharacterNumber, Missing.Value, Missing.Value, Missing.Value); - } - public void InsertSymbol(int CharacterNumber, object Font, object Unicode, object Bias) - { - InvokeMethod("InsertSymbol", CharacterNumber, Font, Unicode, Bias); - } - public int MoveRight() - { - return InvokeMethod("MoveRight", Missing.Value, Missing.Value, Missing.Value) as int? ?? 0; - } - public int MoveRight(object Unit, object Count, object Extend) - { - return InvokeMethod("MoveRight", Unit, Count, Extend) as int? ?? 0; - } - public int MoveLeft() - { - return InvokeMethod("MoveLeft", Missing.Value, Missing.Value, Missing.Value) as int? ?? 0; - } - public int MoveLeft(object Unit, object Count, object Extend) - { - return InvokeMethod("MoveLeft", Unit, Count, Extend) as int? ?? 0; - } - public void SelectCell() - { - InvokeMethod("SelectCell"); - } - public void SelectRow() - { - InvokeMethod("SelectRow"); - } - public void SelectColumn() - { - InvokeMethod("SelectColumn"); - } - public void TypeParagraph() - { - InvokeMethod("TypeParagraph"); - } - public void TypeBackspace() - { - InvokeMethod("TypeBackspace"); - } - } - public partial class LBDocumentClass : LBComObject - { - public LBDocumentClass() { } - public LBDocumentClass(Object item) : base(item) { } - public LBApplicationClass Application - { - get { return new LBApplicationClass(GetProperty("Application")); } - } - public int SaveFormat - { - get { return (GetProperty("SaveFormat") as int? ?? 0); } - } - public String FullName - { - get { return (GetProperty("FullName").ToString()); } - } - public LBShapes Shapes - { - get { return new LBShapes(GetProperty("Shapes")); } - } - public LBWindow ActiveWindow - { - get { return new LBWindow(GetProperty("ActiveWindow")); } - } - public LBPageSetup PageSetup - { - get { return new LBPageSetup(GetProperty("PageSetup")); } - } - public Boolean Saved - { - get { return (GetProperty("Saved") as Boolean? ?? false); } - set { SetProperty("Saved", value); } - } - public LBTables Tables - { - get { return new LBTables(GetProperty("Tables")); } - } - public float DefaultTabStop - { - get { return (GetProperty("DefaultTabStop") as float? ?? 0); } - set { SetProperty("DefaultTabStop", value); } - } - public void SaveAs2000() - { - InvokeMethod("SaveAs2000", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); - } - public void SaveAs2000(object FileName, object FileFormat, object LockComments, object Password, object AddToRecentFiles, object WritePassword, object ReadOnlyRecommended, object EmbedTrueTypeFonts, object SaveNativePictureFormat, object SaveFormsData, object SaveAsAOCELetter) - { - InvokeMethod("SaveAs2000", FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter); - } - public void SaveAs() - { - InvokeMethod("SaveAs", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); - } - public void SaveAs(object FileName, object FileFormat, object LockComments, object Password, object AddToRecentFiles, object WritePassword, object ReadOnlyRecommended, object EmbedTrueTypeFonts, object SaveNativePictureFormat, object SaveFormsData, object SaveAsAOCELetter, object Encoding, object InsertLineBreaks, object AllowSubstitutions, object LineEnding, object AddBiDiMarks) - { - InvokeMethod("SaveAs", FileName, FileFormat, LockComments, Password, AddToRecentFiles, WritePassword, ReadOnlyRecommended, EmbedTrueTypeFonts, SaveNativePictureFormat, SaveFormsData, SaveAsAOCELetter, Encoding, InsertLineBreaks, AllowSubstitutions, LineEnding, AddBiDiMarks); - } - public void Close() - { - InvokeMethod("Close", Missing.Value, Missing.Value, Missing.Value); - } - public void Close(object SaveChanges, object OriginalFormat, object RouteDocument) - { - InvokeMethod("Close", SaveChanges, OriginalFormat, RouteDocument); - } - public void ExportAsFixedFormat(string OutputFileName, LBWdExportFormat ExportFormat) - { - InvokeMethod("ExportAsFixedFormat", OutputFileName, ExportFormat, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value); - } - public void ExportAsFixedFormat(string OutputFileName, LBWdExportFormat ExportFormat, Boolean OpenAfterExport, LBWdExportOptimizeFor OptimizeFor, LBWdExportRange Range, int From, int To, LBWdExportItem Item, Boolean IncludeDocProps, Boolean KeepIRM, LBWdExportCreateBookmarks CreateBookmarks, Boolean DocStructureTags, Boolean BitmapMissingFonts, Boolean UseISO19005_1, object FixedFormatExtClassPtr) - { - InvokeMethod("ExportAsFixedFormat", OutputFileName, ExportFormat, OpenAfterExport, OptimizeFor, Range, From, To, Item, IncludeDocProps, KeepIRM, CreateBookmarks, DocStructureTags, BitmapMissingFonts, UseISO19005_1, FixedFormatExtClassPtr); - } - public LBRange Range() - { - return new LBRange(InvokeMethod("Range", Missing.Value, Missing.Value)); - } - public LBRange Range(object Start, object End) - { - return new LBRange(InvokeMethod("Range", Start, End)); - } - public Boolean Undo() - { - return InvokeMethod("Undo", Missing.Value) as Boolean? ?? false; - } - public Boolean Undo(object Times) - { - return InvokeMethod("Undo", Times) as Boolean? ?? false; - } - } - public partial class LBWindow : LBComObject - { - public LBWindow() { } - public LBWindow(Object item) : base(item) { } - public LBPane ActivePane - { - get { return new LBPane(GetProperty("ActivePane")); } - } - public LBView View - { - get { return new LBView(GetProperty("View")); } - } - } - public enum LBWdWindowState - { - wdWindowStateNormal = 0, - wdWindowStateMaximize = 1, - wdWindowStateMinimize = 2 - } - public partial class LBRange : LBComObject - { - public LBRange() { } - public LBRange(Object item) : base(item) { } - public LBFontClass Font - { - get { return new LBFontClass(GetProperty("Font")); } - } - public LBWdColorIndex HighlightColorIndex - { - get { return (LBWdColorIndex)GetProperty("HighlightColorIndex"); } - set { SetProperty("HighlightColorIndex", value); } - } - public LBParagraphFormatClass ParagraphFormat - { - get { return new LBParagraphFormatClass(GetProperty("ParagraphFormat")); } - } - public LBParagraphs Paragraphs - { - get { return new LBParagraphs(GetProperty("Paragraphs")); } - } - public int End - { - get { return (GetProperty("End") as int? ?? 0); } - set { SetProperty("End", value); } - } - public int Start - { - get { return (GetProperty("Start") as int? ?? 0); } - set { SetProperty("Start", value); } - } - public String Text - { - get { return (GetProperty("Text").ToString()); } - set { SetProperty("Text", value); } - } - public LBRange GoTo() - { - return new LBRange(InvokeMethod("GoTo", Missing.Value, Missing.Value, Missing.Value, Missing.Value)); - } - public LBRange GoTo(object What, object Which, object Count, object Name) - { - return new LBRange(InvokeMethod("GoTo", What, Which, Count, Name)); - } - } - public partial class LBParagraphFormatClass : LBComObject - { - public LBParagraphFormatClass() { } - public LBParagraphFormatClass(Object item) : base(item) { } - public LBWdLineSpacing LineSpacingRule - { - get { return (LBWdLineSpacing)GetProperty("LineSpacingRule"); } - set { SetProperty("LineSpacingRule", value); } - } - public float LineSpacing - { - get { return (GetProperty("LineSpacing") as float? ?? 0); } - set { SetProperty("LineSpacing", value); } - } - public float SpaceAfter - { - get { return (GetProperty("SpaceAfter") as float? ?? 0); } - set { SetProperty("SpaceAfter", value); } - } - public int SpaceAfterAuto - { - get { return (GetProperty("SpaceAfterAuto") as int? ?? 0); } - set { SetProperty("SpaceAfterAuto", value); } - } - public float SpaceBefore - { - get { return (GetProperty("SpaceBefore") as float? ?? 0); } - set { SetProperty("SpaceBefore", value); } - } - public int SpaceBeforeAuto - { - get { return (GetProperty("SpaceBeforeAuto") as int? ?? 0); } - set { SetProperty("SpaceBeforeAuto", value); } - } - public LBWdParagraphAlignment Alignment - { - get { return (LBWdParagraphAlignment)GetProperty("Alignment"); } - set { SetProperty("Alignment", value); } - } - public float FirstLineIndent - { - get { return (GetProperty("FirstLineIndent") as float? ?? 0); } - set { SetProperty("FirstLineIndent", value); } - } - public float LeftIndent - { - get { return (GetProperty("LeftIndent") as float? ?? 0); } - set { SetProperty("LeftIndent", value); } - } - } - public enum LBWdSelectionType - { - wdNoSelection = 0, - wdSelectionIP = 1, - wdSelectionNormal = 2, - wdSelectionFrame = 3, - wdSelectionColumn = 4, - wdSelectionRow = 5, - wdSelectionBlock = 6, - wdSelectionInlineShape = 7, - wdSelectionShape = 8 - } - public partial class LBFind : LBComObject - { - public LBFind() { } - public LBFind(Object item) : base(item) { } - public LBReplacement Replacement - { - get { return new LBReplacement(GetProperty("Replacement")); } - } - public Boolean Forward - { - get { return (GetProperty("Forward") as Boolean? ?? false); } - set { SetProperty("Forward", value); } - } - public LBWdFindWrap Wrap - { - get { return (LBWdFindWrap)GetProperty("Wrap"); } - set { SetProperty("Wrap", value); } - } - public Boolean Format - { - get { return (GetProperty("Format") as Boolean? ?? false); } - set { SetProperty("Format", value); } - } - public Boolean MatchWholeWord - { - get { return (GetProperty("MatchWholeWord") as Boolean? ?? false); } - set { SetProperty("MatchWholeWord", value); } - } - public Boolean MatchWildcards - { - get { return (GetProperty("MatchWildcards") as Boolean? ?? false); } - set { SetProperty("MatchWildcards", value); } - } - public Boolean MatchSoundsLike - { - get { return (GetProperty("MatchSoundsLike") as Boolean? ?? false); } - set { SetProperty("MatchSoundsLike", value); } - } - public Boolean MatchAllWordForms - { - get { return (GetProperty("MatchAllWordForms") as Boolean? ?? false); } - set { SetProperty("MatchAllWordForms", value); } - } - public String Text - { - get { return (GetProperty("Text").ToString()); } - set { SetProperty("Text", value); } - } - public Boolean MatchCase - { - get { return (GetProperty("MatchCase") as Boolean? ?? false); } - set { SetProperty("MatchCase", value); } - } - public Boolean Execute() - { - return InvokeMethod("Execute", Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value) as Boolean? ?? false; - } - public Boolean Execute(object FindText, object MatchCase, object MatchWholeWord, object MatchWildcards, object MatchSoundsLike, object MatchAllWordForms, object Forward, object Wrap, object Format, object ReplaceWith, object Replace, object MatchKashida, object MatchDiacritics, object MatchAlefHamza, object MatchControl) - { - return InvokeMethod("Execute", FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace, MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl) as Boolean? ?? false; - } - public void ClearFormatting() - { - InvokeMethod("ClearFormatting"); - } - } - public partial class LBFontClass : LBComObject - { - public LBFontClass() { } - public LBFontClass(Object item) : base(item) { } - public LBWdColor Color - { - get { return (LBWdColor)GetProperty("Color"); } - set { SetProperty("Color", value); } - } - public int Position - { - get { return (GetProperty("Position") as int? ?? 0); } - set { SetProperty("Position", value); } - } - public int Subscript - { - get { return (GetProperty("Subscript") as int? ?? 0); } - set { SetProperty("Subscript", value); } - } - public int Superscript - { - get { return (GetProperty("Superscript") as int? ?? 0); } - set { SetProperty("Superscript", value); } - } - public float Size - { - get { return (GetProperty("Size") as float? ?? 0); } - set { SetProperty("Size", value); } - } - public String Name - { - get { return (GetProperty("Name").ToString()); } - set { SetProperty("Name", value); } - } - public LBWdUnderline Underline - { - get { return (LBWdUnderline)GetProperty("Underline"); } - set { SetProperty("Underline", value); } - } - public int Bold - { - get { return (GetProperty("Bold") as int? ?? 0); } - set { SetProperty("Bold", value); } - } - } - public enum LBWdInformation - { - wdActiveEndAdjustedPageNumber = 1, - wdActiveEndSectionNumber = 2, - wdActiveEndPageNumber = 3, - wdNumberOfPagesInDocument = 4, - wdHorizontalPositionRelativeToPage = 5, - wdVerticalPositionRelativeToPage = 6, - wdHorizontalPositionRelativeToTextBoundary = 7, - wdVerticalPositionRelativeToTextBoundary = 8, - wdFirstCharacterColumnNumber = 9, - wdFirstCharacterLineNumber = 10, - wdFrameIsSelected = 11, - wdWithInTable = 12, - wdStartOfRangeRowNumber = 13, - wdEndOfRangeRowNumber = 14, - wdMaximumNumberOfRows = 15, - wdStartOfRangeColumnNumber = 16, - wdEndOfRangeColumnNumber = 17, - wdMaximumNumberOfColumns = 18, - wdZoomPercentage = 19, - wdSelectionMode = 20, - wdCapsLock = 21, - wdNumLock = 22, - wdOverType = 23, - wdRevisionMarking = 24, - wdInFootnoteEndnotePane = 25, - wdInCommentPane = 26, - wdInHeaderFooter = 28, - wdAtEndOfRowMarker = 31, - wdReferenceOfType = 32, - wdHeaderFooterType = 33, - wdInMasterDocument = 34, - wdInFootnote = 35, - wdInEndnote = 36, - wdInWordMail = 37, - wdInClipboard = 38 - } - public partial class LBInlineShapes : LBComObjectList /* Collection */ - { - public LBInlineShapes(Object item) - { - Item = item; - } - public LBInlineShape AddPicture(string FileName) - { - return new LBInlineShape(InvokeMethod("AddPicture", FileName, Missing.Value, Missing.Value, Missing.Value)); - } - public LBInlineShape AddPicture(string FileName, object LinkToFile, object SaveWithDocument, object Range) - { - return new LBInlineShape(InvokeMethod("AddPicture", FileName, LinkToFile, SaveWithDocument, Range)); - } - } - public partial class LBParagraphs : LBComObjectList /* Collection */ - { - public LBParagraphs(Object item) - { - Item = item; - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - public LBParagraph First - { - get { return new LBParagraph(GetProperty("First")); } - } - public LBParagraph Last - { - get { return new LBParagraph(GetProperty("Last")); } - } - public System.Object GetEnumerator() - { - return InvokeMethod("GetEnumerator"); - } - } - public partial class LBTables : LBComObjectList /* Collection */ - { - public LBTables(Object item) - { - Item = item; - } - public LBTable Add(LBRange Range, int NumRows, int NumColumns) - { - return new LBTable(InvokeMethod("Add", Range, NumRows, NumColumns, Missing.Value, Missing.Value)); - } - public LBTable Add(LBRange Range, int NumRows, int NumColumns, object DefaultTableBehavior, object AutoFitBehavior) - { - return new LBTable(InvokeMethod("Add", Range, NumRows, NumColumns, DefaultTableBehavior, AutoFitBehavior)); - } - } - public partial class LBCells : LBComObjectList /* Collection */ - { - public LBCells(Object item) - { - Item = item; - } - public LBWdCellVerticalAlignment VerticalAlignment - { - get { return (LBWdCellVerticalAlignment)GetProperty("VerticalAlignment"); } - set { SetProperty("VerticalAlignment", value); } - } - public float Height - { - get { return (GetProperty("Height") as float? ?? 0); } - set { SetProperty("Height", value); } - } - public System.Object GetEnumerator() - { - return InvokeMethod("GetEnumerator"); - } - public void Merge() - { - InvokeMethod("Merge"); - } - } - public partial class LBRows : LBComObjectList /* Collection */ - { - public LBRows(Object item) - { - Item = item; - } - public int HeadingFormat - { - get { return (GetProperty("HeadingFormat") as int? ?? 0); } - set { SetProperty("HeadingFormat", value); } - } - public LBRow First - { - get { return new LBRow(GetProperty("First")); } - } - public int AllowBreakAcrossPages - { - get { return (GetProperty("AllowBreakAcrossPages") as int? ?? 0); } - set { SetProperty("AllowBreakAcrossPages", value); } - } - } - public partial class LBShapes : LBComObjectList /* Collection */ - { - public LBShapes(Object item) - { - Item = item; - } - public LBShape AddPicture(string FileName) - { - return new LBShape(InvokeMethod("AddPicture", FileName, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value, Missing.Value)); - } - public LBShape AddPicture(string FileName, object LinkToFile, object SaveWithDocument, object Left, object Top, object Width, object Height, object Anchor) - { - return new LBShape(InvokeMethod("AddPicture", FileName, LinkToFile, SaveWithDocument, Left, Top, Width, Height, Anchor)); - } - } - public partial class LBPageSetup : LBComObject - { - public LBPageSetup() { } - public LBPageSetup(Object item) : base(item) { } - public float BottomMargin - { - get { return (GetProperty("BottomMargin") as float? ?? 0); } - set { SetProperty("BottomMargin", value); } - } - public float LeftMargin - { - get { return (GetProperty("LeftMargin") as float? ?? 0); } - set { SetProperty("LeftMargin", value); } - } - public float RightMargin - { - get { return (GetProperty("RightMargin") as float? ?? 0); } - set { SetProperty("RightMargin", value); } - } - public float TopMargin - { - get { return (GetProperty("TopMargin") as float? ?? 0); } - set { SetProperty("TopMargin", value); } - } - public LBWdOrientation Orientation - { - get { return (LBWdOrientation)GetProperty("Orientation"); } - set { SetProperty("Orientation", value); } - } - public float PageHeight - { - get { return (GetProperty("PageHeight") as float? ?? 0); } - set { SetProperty("PageHeight", value); } - } - public float PageWidth - { - get { return (GetProperty("PageWidth") as float? ?? 0); } - set { SetProperty("PageWidth", value); } - } - public LBWdPaperSize PaperSize - { - get { return (LBWdPaperSize)GetProperty("PaperSize"); } - set { SetProperty("PaperSize", value); } - } - public float LinesPage - { - get { return (GetProperty("LinesPage") as float? ?? 0); } - set { SetProperty("LinesPage", value); } - } - public float CharsLine - { - get { return (GetProperty("CharsLine") as float? ?? 0); } - set { SetProperty("CharsLine", value); } - } - } - public enum LBWdExportFormat - { - wdExportFormatPDF = 17, - wdExportFormatXPS = 18 - } - public enum LBWdExportOptimizeFor - { - wdExportOptimizeForPrint = 0, - wdExportOptimizeForOnScreen = 1 - } - public enum LBWdExportRange - { - wdExportAllDocument = 0, - wdExportSelection = 1, - wdExportCurrentPage = 2, - wdExportFromTo = 3 - } - public enum LBWdExportItem - { - wdExportDocumentContent = 0, - wdExportDocumentWithMarkup = 7 - } - public enum LBWdExportCreateBookmarks - { - wdExportCreateNoBookmarks = 0, - wdExportCreateHeadingBookmarks = 1, - wdExportCreateWordBookmarks = 2 - } - public partial class LBPane : LBComObject - { - public LBPane() { } - public LBPane(Object item) : base(item) { } - public LBPages Pages - { - get { return new LBPages(GetProperty("Pages")); } - } - public LBView View - { - get { return new LBView(GetProperty("View")); } - } - } - public partial class LBView : LBComObject - { - public LBView() { } - public LBView(Object item) : base(item) { } - public LBWdViewType Type - { - get { return (LBWdViewType)GetProperty("Type"); } - set { SetProperty("Type", value); } - } - public Boolean ShowRevisionsAndComments - { - get { return (GetProperty("ShowRevisionsAndComments") as Boolean? ?? false); } - set { SetProperty("ShowRevisionsAndComments", value); } - } - public LBWdRevisionsView RevisionsView - { - get { return (LBWdRevisionsView)GetProperty("RevisionsView"); } - set { SetProperty("RevisionsView", value); } - } - public LBZoom Zoom - { - get { return new LBZoom(GetProperty("Zoom")); } - } - } - public enum LBWdColorIndex - { - wdNoHighlight = 0, - wdBlack = 1, - wdBlue = 2, - wdTurquoise = 3, - wdBrightGreen = 4, - wdPink = 5, - wdRed = 6, - wdYellow = 7, - wdWhite = 8, - wdDarkBlue = 9, - wdTeal = 10, - wdGreen = 11, - wdViolet = 12, - wdDarkRed = 13, - wdDarkYellow = 14, - wdGray50 = 15, - wdGray25 = 16, - wdByAuthor = -1 - } - public enum LBWdLineSpacing - { - wdLineSpaceSingle = 0, - wdLineSpace1pt5 = 1, - wdLineSpaceDouble = 2, - wdLineSpaceAtLeast = 3, - wdLineSpaceExactly = 4, - wdLineSpaceMultiple = 5 - } - public enum LBWdParagraphAlignment - { - wdAlignParagraphLeft = 0, - wdAlignParagraphCenter = 1, - wdAlignParagraphRight = 2, - wdAlignParagraphJustify = 3, - wdAlignParagraphDistribute = 4, - wdAlignParagraphJustifyMed = 5, - wdAlignParagraphJustifyHi = 7, - wdAlignParagraphJustifyLow = 8, - wdAlignParagraphThaiJustify = 9 - } - public partial class LBReplacement : LBComObject - { - public LBReplacement() { } - public LBReplacement(Object item) : base(item) { } - public String Text - { - get { return (GetProperty("Text").ToString()); } - set { SetProperty("Text", value); } - } - public void ClearFormatting() - { - InvokeMethod("ClearFormatting"); - } - } - public enum LBWdFindWrap - { - wdFindStop = 0, - wdFindContinue = 1, - wdFindAsk = 2 - } - public enum LBWdColor - { - wdColorBlack = 0, - wdColorDarkRed = 128, - wdColorRed = 255, - wdColorDarkGreen = 13056, - wdColorOliveGreen = 13107, - wdColorBrown = 13209, - wdColorOrange = 26367, - wdColorGreen = 32768, - wdColorDarkYellow = 32896, - wdColorLightOrange = 39423, - wdColorLime = 52377, - wdColorGold = 52479, - wdColorBrightGreen = 65280, - wdColorYellow = 65535, - wdColorGray95 = 789516, - wdColorGray90 = 1644825, - wdColorGray875 = 2105376, - wdColorGray85 = 2500134, - wdColorGray80 = 3355443, - wdColorGray75 = 4210752, - wdColorGray70 = 5000268, - wdColorGray65 = 5855577, - wdColorGray625 = 6316128, - wdColorDarkTeal = 6697728, - wdColorPlum = 6697881, - wdColorGray60 = 6710886, - wdColorSeaGreen = 6723891, - wdColorGray55 = 7566195, - wdColorDarkBlue = 8388608, - wdColorViolet = 8388736, - wdColorTeal = 8421376, - wdColorGray50 = 8421504, - wdColorGray45 = 9211020, - wdColorIndigo = 10040115, - wdColorBlueGray = 10053222, - wdColorGray40 = 10066329, - wdColorTan = 10079487, - wdColorLightYellow = 10092543, - wdColorGray375 = 10526880, - wdColorGray35 = 10921638, - wdColorGray30 = 11776947, - wdColorGray25 = 12632256, - wdColorRose = 13408767, - wdColorAqua = 13421619, - wdColorGray20 = 13421772, - wdColorLightGreen = 13434828, - wdColorGray15 = 14277081, - wdColorGray125 = 14737632, - wdColorGray10 = 15132390, - wdColorGray05 = 15987699, - wdColorBlue = 16711680, - wdColorPink = 16711935, - wdColorLightBlue = 16737843, - wdColorLavender = 16751052, - wdColorSkyBlue = 16763904, - wdColorPaleBlue = 16764057, - wdColorTurquoise = 16776960, - wdColorLightTurquoise = 16777164, - wdColorWhite = 16777215, - wdColorAutomatic = -16777216 - } - public enum LBWdUnderline - { - wdUnderlineNone = 0, - wdUnderlineSingle = 1, - wdUnderlineWords = 2, - wdUnderlineDouble = 3, - wdUnderlineDotted = 4, - wdUnderlineThick = 6, - wdUnderlineDash = 7, - wdUnderlineDotDash = 9, - wdUnderlineDotDotDash = 10, - wdUnderlineWavy = 11, - wdUnderlineDottedHeavy = 20, - wdUnderlineDashHeavy = 23, - wdUnderlineDotDashHeavy = 25, - wdUnderlineDotDotDashHeavy = 26, - wdUnderlineWavyHeavy = 27, - wdUnderlineDashLong = 39, - wdUnderlineWavyDouble = 43, - wdUnderlineDashLongHeavy = 55 - } - public partial class LBInlineShape : LBComObject - { - public LBInlineShape() { } - public LBInlineShape(Object item) : base(item) { } - public float Height - { - get { return (GetProperty("Height") as float? ?? 0); } - set { SetProperty("Height", value); } - } - public float Width - { - get { return (GetProperty("Width") as float? ?? 0); } - set { SetProperty("Width", value); } - } - } - public partial class LBParagraph : LBComObject - { - public LBParagraph() { } - public LBParagraph(Object item) : base(item) { } - public LBRange Range - { - get { return new LBRange(GetProperty("Range")); } - } - } - public partial class LBTable : LBComObject - { - public LBTable() { } - public LBTable(Object item) : base(item) { } - public LBColumns Columns - { - get { return new LBColumns(GetProperty("Columns")); } - } - public LBRows Rows - { - get { return new LBRows(GetProperty("Rows")); } - } - public float TopPadding - { - get { return (GetProperty("TopPadding") as float? ?? 0); } - set { SetProperty("TopPadding", value); } - } - public float RightPadding - { - get { return (GetProperty("RightPadding") as float? ?? 0); } - set { SetProperty("RightPadding", value); } - } - public float LeftPadding - { - get { return (GetProperty("LeftPadding") as float? ?? 0); } - set { SetProperty("LeftPadding", value); } - } - public float BottomPadding - { - get { return (GetProperty("BottomPadding") as float? ?? 0); } - set { SetProperty("BottomPadding", value); } - } - } - public enum LBWdCellVerticalAlignment - { - wdCellAlignVerticalTop = 0, - wdCellAlignVerticalCenter = 1, - wdCellAlignVerticalBottom = 3 - } - public partial class LBRow : LBComObject - { - public LBRow() { } - public LBRow(Object item) : base(item) { } - public float Height - { - get { return (GetProperty("Height") as float? ?? 0); } - set { SetProperty("Height", value); } - } - public void Select() - { - InvokeMethod("Select"); - } - } - public partial class LBShape : LBComObject - { - public LBShape() { } - public LBShape(Object item) : base(item) { } - public float Height - { - get { return (GetProperty("Height") as float? ?? 0); } - set { SetProperty("Height", value); } - } - public float Width - { - get { return (GetProperty("Width") as float? ?? 0); } - set { SetProperty("Width", value); } - } - public LBRange Anchor - { - get { return new LBRange(GetProperty("Anchor")); } - } - public LBMsoTriState LockAspectRatio - { - get { return (LBMsoTriState)GetProperty("LockAspectRatio"); } - set { SetProperty("LockAspectRatio", value); } - } - public float Left - { - get { return (GetProperty("Left") as float? ?? 0); } - set { SetProperty("Left", value); } - } - public float LeftRelative - { - get { return (GetProperty("LeftRelative") as float? ?? 0); } - set { SetProperty("LeftRelative", value); } - } - public float Top - { - get { return (GetProperty("Top") as float? ?? 0); } - set { SetProperty("Top", value); } - } - public float TopRelative - { - get { return (GetProperty("TopRelative") as float? ?? 0); } - set { SetProperty("TopRelative", value); } - } - public LBWdRelativeHorizontalPosition RelativeHorizontalPosition - { - get { return (LBWdRelativeHorizontalPosition)GetProperty("RelativeHorizontalPosition"); } - set { SetProperty("RelativeHorizontalPosition", value); } - } - public LBWdRelativeVerticalPosition RelativeVerticalPosition - { - get { return (LBWdRelativeVerticalPosition)GetProperty("RelativeVerticalPosition"); } - set { SetProperty("RelativeVerticalPosition", value); } - } - public int LockAnchor - { - get { return (GetProperty("LockAnchor") as int? ?? 0); } - set { SetProperty("LockAnchor", value); } - } - } - public enum LBWdOrientation - { - wdOrientPortrait = 0, - wdOrientLandscape = 1 - } - public enum LBWdPaperSize - { - wdPaper10x14 = 0, - wdPaper11x17 = 1, - wdPaperLetter = 2, - wdPaperLetterSmall = 3, - wdPaperLegal = 4, - wdPaperExecutive = 5, - wdPaperA3 = 6, - wdPaperA4 = 7, - wdPaperA4Small = 8, - wdPaperA5 = 9, - wdPaperB4 = 10, - wdPaperB5 = 11, - wdPaperCSheet = 12, - wdPaperDSheet = 13, - wdPaperESheet = 14, - wdPaperFanfoldLegalGerman = 15, - wdPaperFanfoldStdGerman = 16, - wdPaperFanfoldUS = 17, - wdPaperFolio = 18, - wdPaperLedger = 19, - wdPaperNote = 20, - wdPaperQuarto = 21, - wdPaperStatement = 22, - wdPaperTabloid = 23, - wdPaperEnvelope9 = 24, - wdPaperEnvelope10 = 25, - wdPaperEnvelope11 = 26, - wdPaperEnvelope12 = 27, - wdPaperEnvelope14 = 28, - wdPaperEnvelopeB4 = 29, - wdPaperEnvelopeB5 = 30, - wdPaperEnvelopeB6 = 31, - wdPaperEnvelopeC3 = 32, - wdPaperEnvelopeC4 = 33, - wdPaperEnvelopeC5 = 34, - wdPaperEnvelopeC6 = 35, - wdPaperEnvelopeC65 = 36, - wdPaperEnvelopeDL = 37, - wdPaperEnvelopeItaly = 38, - wdPaperEnvelopeMonarch = 39, - wdPaperEnvelopePersonal = 40, - wdPaperCustom = 41 - } - public partial class LBPages : LBComObjectList /* Collection */ - { - public LBPages(Object item) - { - Item = item; - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - } - public enum LBWdViewType - { - wdNormalView = 1, - wdOutlineView = 2, - wdPrintView = 3, - wdPrintPreview = 4, - wdMasterView = 5, - wdWebView = 6, - wdReadingView = 7 - } - public enum LBWdRevisionsView - { - wdRevisionsViewFinal = 0, - wdRevisionsViewOriginal = 1 - } - public partial class LBZoom : LBComObject - { - public LBZoom() { } - public LBZoom(Object item) : base(item) { } - public LBWdPageFit PageFit - { - get { return (LBWdPageFit)GetProperty("PageFit"); } - set { SetProperty("PageFit", value); } - } - public int Percentage - { - get { return (GetProperty("Percentage") as int? ?? 0); } - set { SetProperty("Percentage", value); } - } - } - public partial class LBColumns : LBComObjectList /* Collection */ - { - public LBColumns(Object item) - { - Item = item; - } - public LBColumn First - { - get { return new LBColumn(GetProperty("First")); } - } - public LBColumn Last - { - get { return new LBColumn(GetProperty("Last")); } - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - public System.Object GetEnumerator() - { - return InvokeMethod("GetEnumerator"); - } - } - public enum LBWdRelativeHorizontalPosition - { - wdRelativeHorizontalPositionMargin = 0, - wdRelativeHorizontalPositionPage = 1, - wdRelativeHorizontalPositionColumn = 2, - wdRelativeHorizontalPositionCharacter = 3, - wdRelativeHorizontalPositionLeftMarginArea = 4, - wdRelativeHorizontalPositionRightMarginArea = 5, - wdRelativeHorizontalPositionInnerMarginArea = 6, - wdRelativeHorizontalPositionOuterMarginArea = 7 - } - public enum LBWdRelativeVerticalPosition - { - wdRelativeVerticalPositionMargin = 0, - wdRelativeVerticalPositionPage = 1, - wdRelativeVerticalPositionParagraph = 2, - wdRelativeVerticalPositionLine = 3, - wdRelativeVerticalPositionTopMarginArea = 4, - wdRelativeVerticalPositionBottomMarginArea = 5, - wdRelativeVerticalPositionInnerMarginArea = 6, - wdRelativeVerticalPositionOuterMarginArea = 7 - } - public enum LBWdPageFit - { - wdPageFitNone = 0, - wdPageFitFullPage = 1, - wdPageFitBestFit = 2, - wdPageFitTextFit = 3 - } - public partial class LBColumn : LBComObject - { - public LBColumn() { } - public LBColumn(Object item) : base(item) { } - public float Width - { - get { return (GetProperty("Width") as float? ?? 0); } - set { SetProperty("Width", value); } - } - public int Index - { - get { return (GetProperty("Index") as int? ?? 0); } - } - public LBColumn Next - { - get { return new LBColumn(GetProperty("Next")); } - } - public LBColumn Previous - { - get { return new LBColumn(GetProperty("Previous")); } - } - public void SetWidth(float ColumnWidth, LBWdRulerStyle RulerStyle) - { - InvokeMethod("SetWidth", ColumnWidth, RulerStyle); - } - } - public enum LBWdRulerStyle - { - wdAdjustNone = 0, - wdAdjustProportional = 1, - wdAdjustFirstColumn = 2, - wdAdjustSameWidth = 3 - } - public partial class LBCell : LBComObject - { - public LBCell() { } - public LBCell(Object item) : base(item) { } - public LBColumn Column - { - get { return new LBColumn(GetProperty("Column")); } - } - public LBCell Next - { - get { return new LBCell(GetProperty("Next")); } - } - public LBCell Previous - { - get { return new LBCell(GetProperty("Previous")); } - } - public LBRow Row - { - get { return new LBRow(GetProperty("Row")); } - } - public LBWdCellVerticalAlignment VerticalAlignment - { - get { return (LBWdCellVerticalAlignment)GetProperty("VerticalAlignment"); } - set { SetProperty("VerticalAlignment", value); } - } - public float Width - { - get { return (GetProperty("Width") as float? ?? 0); } - set { SetProperty("Width", value); } - } - public LBTables Tables - { - get { return new LBTables(GetProperty("Tables")); } - } - public void SetWidth(float ColumnWidth, LBWdRulerStyle RulerStyle) - { - InvokeMethod("SetWidth", ColumnWidth, RulerStyle); - } - } - public enum LBWdSaveFormat - { - wdFormatDocument = 0, - wdFormatTemplate = 1, - wdFormatText = 2, - wdFormatTextLineBreaks = 3, - wdFormatDOSText = 4, - wdFormatDOSTextLineBreaks = 5, - wdFormatRTF = 6, - wdFormatUnicodeText = 7, - wdFormatHTML = 8, - wdFormatWebArchive = 9, - wdFormatFilteredHTML = 10, - wdFormatXML = 11, - wdFormatXMLDocument = 12, - wdFormatXMLDocumentMacroEnabled = 13, - wdFormatXMLTemplate = 14, - wdFormatXMLTemplateMacroEnabled = 15, - wdFormatDocumentDefault = 16, - wdFormatPDF = 17, - wdFormatXPS = 18, - wdFormatFlatXML = 19, - wdFormatFlatXMLMacroEnabled = 20, - wdFormatFlatXMLTemplate = 21, - wdFormatFlatXMLTemplateMacroEnabled = 22, - wdFormatOpenDocumentText = 23 - } - public enum LBWdFindMatch - { - wdMatchGraphic = 1, - wdMatchCommentMark = 5, - wdMatchTabCharacter = 9, - wdMatchCaretCharacter = 11, - wdMatchColumnBreak = 14, - wdMatchField = 19, - wdMatchNonbreakingHyphen = 30, - wdMatchOptionalHyphen = 31, - wdMatchNonbreakingSpace = 160, - wdMatchEnDash = 8211, - wdMatchEmDash = 8212, - wdMatchParagraphMark = 65551, - wdMatchFootnoteMark = 65554, - wdMatchEndnoteMark = 65555, - wdMatchManualPageBreak = 65564, - wdMatchAnyDigit = 65567, - wdMatchSectionBreak = 65580, - wdMatchAnyLetter = 65583, - wdMatchAnyCharacter = 65599, - wdMatchWhiteSpace = 65655 - } - public enum LBWdReplace - { - wdReplaceNone = 0, - wdReplaceOne = 1, - wdReplaceAll = 2 - } - public partial class LBPage : LBComObject - { - public LBPage() { } - public LBPage(Object item) : base(item) { } - public int Height - { - get { return (GetProperty("Height") as int? ?? 0); } - } - public int Left - { - get { return (GetProperty("Left") as int? ?? 0); } - } - public LBRectangles Rectangles - { - get { return new LBRectangles(GetProperty("Rectangles")); } - } - public int Top - { - get { return (GetProperty("Top") as int? ?? 0); } - } - public int Width - { - get { return (GetProperty("Width") as int? ?? 0); } - } - } - public partial class LBRectangles : LBComObjectList /* Collection */ - { - public LBRectangles(Object item) - { - Item = item; - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - } - public partial class LBRectangle : LBComObject - { - public LBRectangle() { } - public LBRectangle(Object item) : base(item) { } - public LBLines Lines - { - get { return new LBLines(GetProperty("Lines")); } - } - } - public partial class LBLines : LBComObjectList /* Collection */ - { - public LBLines(Object item) - { - Item = item; - } - public int Count - { - get { return (GetProperty("Count") as int? ?? 0); } - } - } - public partial class LBLine : LBComObject - { - public LBLine() { } - public LBLine(Object item) : base(item) { } - public int Top - { - get { return (GetProperty("Top") as int? ?? 0); } - } - public int Height - { - get { return (GetProperty("Height") as int? ?? 0); } - } - } - public enum LBWdMovementType - { - wdMove = 0, - wdExtend = 1 - } - public enum LBWdUnits - { - wdCharacter = 1, - wdWord = 2, - wdSentence = 3, - wdParagraph = 4, - wdLine = 5, - wdStory = 6, - wdScreen = 7, - wdSection = 8, - wdColumn = 9, - wdRow = 10, - wdWindow = 11, - wdCell = 12, - wdCharacterFormatting = 13, - wdParagraphFormatting = 14, - wdTable = 15, - wdItem = 16 - } - public enum LBWdGoToDirection - { - wdGoToAbsolute = 1, - wdGoToNext = 2, - wdGoToPrevious = 3, - wdGoToLast = -1 - } - public enum LBWdGoToItem - { - wdGoToSection = 0, - wdGoToPage = 1, - wdGoToTable = 2, - wdGoToLine = 3, - wdGoToFootnote = 4, - wdGoToEndnote = 5, - wdGoToComment = 6, - wdGoToField = 7, - wdGoToGraphic = 8, - wdGoToObject = 9, - wdGoToEquation = 10, - wdGoToHeading = 11, - wdGoToPercent = 12, - wdGoToSpellingError = 13, - wdGoToGrammaticalError = 14, - wdGoToProofreadingError = 15, - wdGoToBookmark = -1 - } - public partial class LBPictureFormat : LBComObject - { - public LBPictureFormat() { } - public LBPictureFormat(Object item) : base(item) { } - } -} diff --git a/PROMS/Macro.TXT.bak b/PROMS/Macro.TXT.bak deleted file mode 100644 index f9387e3f..00000000 --- a/PROMS/Macro.TXT.bak +++ /dev/null @@ -1,8 +0,0 @@ -Sub Macro1() -' -' Macro1 Macro -' -' - Selection.ParagraphFormat.RightIndent = InchesToPoints(0.80) - -End Sub \ No newline at end of file diff --git a/PROMS/MyGeneration.7z b/PROMS/MyGeneration.7z deleted file mode 100644 index 0ff292ce..00000000 Binary files a/PROMS/MyGeneration.7z and /dev/null differ diff --git a/PROMS/MyGeneration/csla_21/CSLA_Objects.csgen b/PROMS/MyGeneration/csla_21/CSLA_Objects.csgen deleted file mode 100644 index b834e1b1..00000000 --- a/PROMS/MyGeneration/csla_21/CSLA_Objects.csgen +++ /dev/null @@ -1,5102 +0,0 @@ -##|TYPE Template -##|UNIQUEID ce9c6b98-62fe-4a36-9a31-cd33b283f574 -##|TITLE CSLA Business Objects -##|NAMESPACE CSLA_21 -##|SOURCE_TYPE Source -##|OUTPUT_LANGUAGE C# -##|GUI_ENGINE .Net Script -##|GUI_LANGUAGE C# -##|GUI_BEGIN -<%#NAMESPACE System, System.Text, System.Collections, Zeus, Zeus.UserInterface, Zeus.DotNetScript %> - -public class GeneratedGui : DotNetScriptGui -{ - public GeneratedGui( ZeusGuiContext context ) : base( context ) {} - private bool bInitializing=false; - public override void Setup() - { - bInitializing = true; - if ( !input.Contains( "chooseTables" ) || !input.Contains( "txtPath" ) || - ( !input.Contains( "chkClass" ) && !input.Contains( "chkNaming" ) ) ) - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.ReadInputFromCache(context); - ui.Title = "CSLA Object Mapping"; - ui.Width = 600; - ui.Height = 660; - - // Grab default output path - string sOutputPath = ""; - - if( input.Contains( "defaultOutputPath" ) ) - { - sOutputPath = input["defaultOutputPath"].ToString(); - } - //int top=0; - // Setup Folder selection input control. - GuiLabel label1 = ui.AddLabel( "label1", "Select the output path:", "Select the output path in the field below." ); - label1.Width = 200; - GuiTextBox outputPath = ui.AddTextBox( "outputPath", sOutputPath, "Select the Output Path." ); - outputPath.Width = 450; - GuiFilePicker selectPath = ui.AddFilePicker( "selectPath", "Select Path", "Select the Output Path.", "outputPath", true ); - selectPath.Top = outputPath.Top; - selectPath.Width = 100; - selectPath.Left = outputPath.Left + outputPath.Width + 20; - - // Setup Database selection combobox. - GuiLabel label4 = ui.AddLabel( "label4", "Select a database:", "Select a database in the dropdown below." ); - label4.Width = 250; - GuiComboBox chooseDatabase = ui.AddComboBox( "chooseDatabase", "Select a database." ); - chooseDatabase.Width = 250; - // Namespace - GuiLabel label2 = ui.AddLabel( "label2", "Namespace: ", "Provide your objects namespace." ); - label2.Width = 280; - GuiTextBox classNamespace = ui.AddTextBox( "classNamespace", "VEPROMS.CSLA.Library", "Provide your objects namespace." ); - classNamespace.Width = 280; - - GuiLabel label3 = ui.AddLabel( "label3", "Member prefix: ", "Provide your Prefix." ); - label3.Width = 100; - label3.Top = label2.Top; - label3.Left = label2.Width + 20; - GuiTextBox memberPrefix = ui.AddTextBox( "memberPrefix", "_", "" ); - memberPrefix.Width = 100; - memberPrefix.Top = classNamespace.Top; - memberPrefix.Left = classNamespace.Width + 20; - - GuiLabel label3A = ui.AddLabel( "label3A", "dbConnection: ", "Provide a Connection." ); - label3A.Width = 150; - label3A.Top = label3.Top; - label3A.Left = label3.Left+label3.Width + 10; - GuiTextBox dbConnection = ui.AddTextBox( "dbConnection", "VEPROMS", "" ); - dbConnection.Width = 150; - dbConnection.Top = memberPrefix.Top; - dbConnection.Left = memberPrefix.Left + memberPrefix.Width + 10; - GuiCheckBox chkGenerateMain = MakeGuiCheckBox( "chkGenerateMain", "Main", true, "Create Main Object",100 ); - GuiCheckBox chkFKList = MakeGuiCheckBox( "chkFKList", "FK List", true, "Create FK List Object" ,70,chkGenerateMain,100,0); - GuiCheckBox chkFKItem = MakeGuiCheckBox( "chkFKItem", "FK Item", true, "Create FK Item Object" ,70,chkFKList,0,-1); - GuiCheckBox chkInfoList = MakeGuiCheckBox( "chkInfoList", "Info List", true, "Create FK Info List Object" ,70,chkFKItem,0,-1); - GuiCheckBox chkInfo = MakeGuiCheckBox( "chkInfo", "Info", true, "Create Info Object" ,70,chkInfoList,0,-1); - GuiCheckBox chkPartBM = MakeGuiCheckBox("chkPartBM","Business Methods",true,"Create Business Methods",130,chkGenerateMain,170,0); - GuiCheckBox chkPartDA = MakeGuiCheckBox("chkPartDA","Data Access",true,"Create Data Access",130,chkGenerateMain,300,0); - GuiCheckBox chkPartVR = MakeGuiCheckBox("chkPartVR","Validation Rules",true,"Create Validation Rules",130,chkPartBM,0,-1); - GuiCheckBox chkPartEX = MakeGuiCheckBox("chkPartEX","Exists",true,"Create Exists",130,chkPartDA,0,-1); - GuiCheckBox chkPartAR = MakeGuiCheckBox("chkPartAR","Authorization Rules",true,"Create Authorization Rules",130,chkPartVR,0,-1); - GuiCheckBox chkPartDF = MakeGuiCheckBox("chkPartDF","Defaults",true,"Create Defaults",130,chkPartEX,0,-1); - GuiCheckBox chkPartFM = MakeGuiCheckBox("chkPartFM","Factory Methods",true,"Create Factory Methods",130,chkPartAR,0,-1); - GuiCheckBox chkPartCM = MakeGuiCheckBox("chkPartCM","Component Model",true,"Create Component Model Interface",130,chkGenerateMain,430,0); - GuiCheckBox chkPartL4N = MakeGuiCheckBox("chkPartL4N","Log4Net",true,"Create Log4Net Code",130,chkPartCM,0,-1); - GuiCheckBox chkVolian = MakeGuiCheckBox("chkVolian","Volian Header",true,"Add Header",130,chkPartL4N,0,-1); - GuiCheckBox chkDatabase = MakeGuiCheckBox("chkDatabase","Database.cs",true,"Create Database Object",130,chkGenerateMain,0,50); - GuiCheckBox chkPartEXT = MakeGuiCheckBox("chkPartEXT","Extension Sample",true,"Create Extensions",130,chkPartDF,0,-1); - GuiCheckBox chkCreateFiles = MakeGuiCheckBox( "chkCreateFiles", "Create Code Files", true, "Create Code Files" ,150); - GuiCheckBox chkDebug = MakeGuiCheckBox("chkDebug","Debug Output",true,"Add Debug",130,chkCreateFiles,150,0); - chkDebug.Checked = false; - GuiTextBox tbDebug = ui.AddTextBox( "tbDebug", "", "Start Date" ); - tbDebug.Top = chkDebug.Top; - tbDebug.Width = 150; - tbDebug.Left = chkDebug.Left + 150; - GuiLabel label7 = ui.AddLabel( "label7", "Select tables:", "Select tables from the listbox below." ); - //label7.Top = chkEqualsHashCode.Top + 20; - GuiListBox chooseTables = ui.AddListBox( "chooseTables", "Select tables." ); - chooseTables.Height = 120; - - // Setup Views selection multi-select listbox. - GuiLabel label8 = ui.AddLabel( "label8", "Select views:", "Select views from the listbox below." ); - GuiListBox chooseViews = ui.AddListBox( "chooseViews", "Select views." ); - chooseViews.Height = 120; - - // Attach the onchange event to the cmbDatabases control. - setupDatabaseDropdown( chooseDatabase ); - chooseDatabase.AttachEvent( "onchange", "chooseDatabase_onchange" ); - - ui.ShowGui = true; - } - else - { - ui.ShowGui = false; - } - bInitializing = false; - } - public void setupDatabaseDropdown( GuiComboBox Databases ) - { - try - { - if( MyMeta.IsConnected ) - { - Databases.BindData( MyMeta.Databases ); - if( MyMeta.DefaultDatabase != null ) - { - Databases.SelectedValue = MyMeta.DefaultDatabase.Alias; - bindTables( Databases.SelectedValue ); - bindViews( Databases.SelectedValue ); - } - } - } - catch - { - } - } - - public void bindTables( string sDatabase ) - { - int count = 0; - - GuiListBox lstTables = ui["chooseTables"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstTables.BindData( db.Tables ); - } - catch - { - } - } - - public void bindViews( string sDatabase ) - { - int count = 0; - - GuiListBox lstViews = ui["chooseViews"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstViews.BindData( db.Views ); - } - catch - { - } - } - - public void chooseDatabase_onchange( GuiComboBox control ) - { - int count = 0; - GuiComboBox cmbDatabases = ui["chooseDatabase"] as GuiComboBox; - bindTables( cmbDatabases.SelectedText ); - bindViews( cmbDatabases.SelectedText ); - GuiTextBox dbConnection = ui["dbConnection"] as GuiTextBox; - dbConnection.Text=cmbDatabases.SelectedText; - GuiTextBox classNamespace = ui["classNamespace"] as GuiTextBox; - classNamespace.Text=cmbDatabases.SelectedText + ".CSLA.Library"; - } - <%#FILE MakeGuiCheckBox.cs %> - -} -##|GUI_END -##|BODY_MODE Markup -##|BODY_ENGINE .Net Script -##|BODY_LANGUAGE C# -##|BODY_TAG_START <% -##|BODY_TAG_END %> -##|BODY_BEGIN -<%#NAMESPACE System.IO, System.Text, System.Text.RegularExpressions, System.Globalization %><% -public class GeneratedTemplate : DotNetScriptTemplate -{ - private ArrayList _selectedTables; - private ArrayList _selectedViews; - private ArrayList _classList; - private ArrayList _duplicateList; - private ArrayList _PropDescList; - private string _dbName; - private string _tableName; - private string _className; - private string _exportPath; - private string _nameSpace; - private string _prefix; - private string _dbConnection; - private string _subclassName; - private string _refreshMine; - private ITable _workingTable; - private Hashtable dicRead; - //private Hashtable dicReadI; - private bool _chkGenerateMain; - private bool _chkFKList; - private bool _chkFKItem; - private bool _chkInfoList; - private bool _chkInfo; - private bool _chkCreateFiles; - private bool _chkPartBM; - private bool _chkPartDA; - private bool _chkPartVR; - private bool _chkPartEX; - private bool _chkPartAR; - private bool _chkPartDF; - private bool _chkPartFM; - private bool _chkPartEXT; - private bool _chkPartCM; - private bool _chkDatabase; - private bool _chkPartL4N; - private bool _chkDebug; - private bool _chkVolian; - private string _tbDebug; - private string _databaseLogDebug; - private string _databaseLogInfo; - private string _databaseLogWarn; - private string _databaseLogError; - private string _databaseLogFatal; - private bool _doOldParent=false; - - public bool AddToClassList(string className) - { - if (_classList.Contains(className)) - { - _duplicateList.Add(className); - return false; - } - else - { - _classList.Add(className); - return true; - } - } - public delegate bool Filter(IColumn column); - public string Debug(string str) - { - if (_chkDebug && str.CompareTo(_tbDebug) >= 0)return "/**** MyGeneration Debug " + str + " ****/"; - return ""; - } - public string DebugLine(string str) - { - if (_chkDebug && str.CompareTo(_tbDebug) >= 0)return "\r\n/**** MyGeneration Debug " + str + " ****/"; - return ""; - } - public void SaveFile() - { - if (_chkCreateFiles) - { - output.save( Path.Combine( _exportPath, _className + ".cs" ), false ); - output.clear(); - } - } - public GeneratedTemplate( ZeusContext context ) : base( context ) {} - - public override void Render() - { - DateTime tStart = DateTime.Now; - if (context.Objects.ContainsKey("DnpUtils"))DnpUtils.SaveInputToCache(context); - try{ - InitializeDictionaries(); - _dbName = input["chooseDatabase"].ToString(); - _PropDescList = new ArrayList(); - _selectedTables = input["chooseTables"] as ArrayList; - _selectedViews = input["chooseViews"] as ArrayList; - _exportPath = input["outputPath"].ToString(); - _nameSpace = input["classNamespace"].ToString(); - _prefix = input["memberPrefix"].ToString(); - _dbConnection = input["dbConnection"].ToString(); - _chkGenerateMain=(bool)input["chkGenerateMain"]; - _chkFKList=(bool)input["chkFKList"]; - _chkFKItem=(bool)input["chkFKItem"]; - _chkInfoList=(bool)input["chkInfoList"]; - _chkInfo=(bool)input["chkInfo"]; - _chkCreateFiles=(bool)input["chkCreateFiles"]; - _chkPartBM=(bool)input["chkPartBM"]; - _chkPartDA=(bool)input["chkPartDA"]; - _chkPartVR=(bool)input["chkPartVR"]; - _chkPartEX=(bool)input["chkPartEX"]; - _chkPartAR=(bool)input["chkPartAR"]; - _chkPartDF=(bool)input["chkPartDF"]; - _chkPartFM=(bool)input["chkPartFM"]; - _chkPartEXT=(bool)input["chkPartEXT"]; - _chkPartCM=(bool)input["chkPartCM"]; - _chkPartL4N=(bool)input["chkPartL4N"]; - if (_chkPartL4N) - { - _databaseLogDebug = "if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat"; - _databaseLogInfo = "if (_MyLog.IsInfoEnabled) _MyLog.InfoFormat"; - _databaseLogWarn = "if (_MyLog.IsWarnEnabled) _MyLog.WarnFormat"; - _databaseLogError = "if (_MyLog.IsErrorEnabled) _MyLog.Error"; - _databaseLogFatal = "if (_MyLog.IsFatalEnabled) _MyLog.Fatal"; - } - else - { - _databaseLogDebug = "Database.LogInfo"; - _databaseLogInfo = "Database.LogInfo"; - _databaseLogWarn = "Database.LogInfo"; - _databaseLogError = "Database.LogException"; - _databaseLogFatal = "Database.LogException"; - } - _chkDatabase=(bool)input["chkDatabase"]; - _chkDebug=(bool)input["chkDebug"]; - _chkVolian=(bool)input["chkVolian"]; - _tbDebug=(string)input["tbDebug"]; - _classList=new ArrayList(); - _duplicateList=new ArrayList(); - if (_chkDatabase)GenerateDatabase(); - foreach( string _newTable in _selectedTables ) - { - _workingTable = MyMeta.Databases[_dbName].Tables[_newTable]; - GenerateClassFiles( _workingTable ); - } - GeneratePropertyDescriptor(); - GenerateCommonRules(); - if (_duplicateList.Count > 0) - { - WriteLine("Duplicate Classes"); - foreach(string s in _duplicateList) - { - WriteLine("[{0}]",s); - } - } - DateTime tEnd = DateTime.Now; - WriteLine(string.Format("Total Generation Time: {0} Seconds",TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalSeconds)); - //foreach( string _newView in _selectedViews ) - //{ - // IView _workingView = MyMeta.Databases[_dbName].Views[_newView]; - // GenerateClassFiles( _workingView.Columns, _className); - //} - } - catch(Exception ex) - { - output.write(ex.Message); - } - } - private void InitializeDictionaries() - { - dicRead = new Hashtable(); - dicRead["Guid"]="{fmember} = dr.GetGuid(\"{fname}\");"; - dicRead["string"]="{fmember} = dr.GetString(\"{fname}\");"; - dicRead["SmartDate"]="{fmember} = dr.GetSmartDate(\"{fname}\").Text;"; - dicRead["DateTime"]="{fmember} = dr.GetDateTime(\"{fname}\");"; - dicRead["timestamp"]="dr.GetBytes(\"{fname}\", 0, {fmember}, 0, 8);"; - dicRead["image"]="{fmember} = (byte[])dr.GetValue(\"{fname}\");"; - dicRead["varbinary"]="{fmember} = (byte[])dr.GetValue(\"{fname}\");"; - dicRead["int"]="{fmember} = dr.GetInt32(\"{fname}\");"; - dicRead["Int32"]="{fmember} = dr.GetInt32(\"{fname}\");"; - dicRead["Int16"]="{fmember} = dr.GetInt16(\"{fname}\");"; - dicRead["Int16"]="{fmember} = dr.GetInt16(\"{fname}\");"; - dicRead["Int64"]="{fmember} = dr.GetInt64(\"{fname}\");"; - dicRead["byte"]="{fmember} = dr.GetByte(\"{fname}\");"; - dicRead["char"]="{fmember} = dr.GetChar(\"{fname}\");"; - dicRead["double"]="{fmember} = dr.GetDouble(\"{fname}\");"; - dicRead["float"]="{fmember} = dr.GetFloat(\"{fname}\");"; - dicRead["decimal"]="{fmember} = dr.GetDecimal(\"{fname}\");"; - dicRead["bool"]="{fmember} = dr.GetBoolean(\"{fname}\");"; - dicRead["long"]="{fmember} = dr.GetInt64(\"{fname}\");"; - dicRead["int?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["Int32?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["Int16?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["Int16?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["Int64?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["byte?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["char?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["double?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["float?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["decimal?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["bool?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["long?"]="{fmember} = ({ctype})dr.GetValue(\"{fname}\");"; - dicRead["DateTime?"]="if (!dr.IsDBNull(dr.GetOrdinal(\"{fname}\"))) {fmember} = dr.GetDateTime(\"{fname}\");"; - } - private void GenerateClassFiles(ITable tbl) - { - if (_chkGenerateMain)GenerateMainClass(tbl); - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if (tbl == fk.PrimaryTable) - { - if (!IsPrimaryKey(fk)) - { - //string sAlias = GetAlias(dicAlias,fk.ForeignTable); - string sAlias = GetAlias(fk); - if (_chkFKList)GenerateFKListClass(fk,sAlias); - if (_chkFKItem && fk.PrimaryTable != fk.ForeignTable )GenerateFKClass(fk,sAlias); - } - } - } - if (_chkInfoList && AnyNotOneToOne(tbl))GenerateInfoListClass(tbl); // InfoList if any non 1 to 1 relationships - if (_chkInfo)GenerateInfoClass(tbl); - } -// private void ShowForeignKey(ForeignKey fk) -// { -// output.writeln("Primary " + fk.PrimaryTable.Name); -// foreach(IColumn col in fk.PrimaryColumns)output.writeln(" " + col.Name + " " + col.IsInPrimaryKey.ToString()); -// output.writeln(" Foreign " + fk.ForeignTable.Name); -// foreach(IColumn col in fk.ForeignColumns)output.writeln(" " + col.Name + " " + col.IsInPrimaryKey.ToString()); -// } - private void GenerateMainClass( ITable tbl ) - { - _className = ClassName( tbl ); - _PropDescList.Add(_className); - if (!AddToClassList(_className))return; - _tableName = tbl.Alias; - vlnHeader("\r\nusing System.Collections.Generic;\r\nusing Csla.Validation;"); - string sInterface=""; - if (_chkPartCM) - { - //sInterface = ", ICustomTypeDescriptor"; -%> - [TypeConverter(typeof(<%=_className%>Converter))]<% - } -%> - public partial class <%=_className%> : BusinessBase<<%=_className%>><%=sInterface%>, IDisposable, IVEHasBrokenRules - {<% - Log4Net(); - vlnRefreshInfo(); - vlnCollection(tbl,UniqueIndexes(tbl),false); - if (_chkPartBM)vlnBusinessMethods(tbl.Columns); - if (_chkPartVR)vlnValidationRules(tbl.Columns); - if (_chkPartAR)vlnAuthorizationRules(tbl.Columns); - if (_chkPartFM)vlnFactoryMethods(tbl.Columns); - if (_chkPartDA)vlnDataAccessPortal(tbl.Columns); - if (_chkPartEX)vlnExists(tbl.Columns); - if (_chkPartDF)vlnDefaults(tbl.Columns); - vlnFooterCM(""); - if (_chkPartEXT)vlnExtension(tbl.Columns); - SaveFile(); - } - private void GenerateFKListClass(IForeignKey fk,string sAlias) - { - _className = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable )+sAlias; - _className = FKClassesName(fk)+sAlias; - if (!AddToClassList(_className))return; - if (fk.PrimaryTable == fk.ForeignTable) - _subclassName = ClassName( fk.PrimaryTable); - else - _subclassName = ClassName( fk.PrimaryTable) + ClassName( fk.ForeignTable )+sAlias; - _tableName = "//CSLATODO: No Table Name"; - vlnHeader("\r\nusing System.Collections.Generic;\r\nusing Csla.Validation;"); - string sInterface = ""; - if (_chkPartCM) - { - sInterface = ", ICustomTypeDescriptor"; -%> - [TypeConverter(typeof(<%=_className%>Converter))]<% - } -%> - public partial class <%=_className%> : BusinessListBase<<%=_className%>, <%=_subclassName%>><%=sInterface%>, IVEHasBrokenRules , IDisposable - {<% - Log4Net(); - if (_chkPartBM)vlnBusinessMethodsFKList(fk,sAlias); - if (_chkPartVR)vlnValidationRulesFKList(fk,sAlias); - if (_chkPartFM)vlnFactoryMethodsFKList(fk,sAlias); - if (_chkPartDA)vlnDataAccessPortalFKList(fk,sAlias); - vlnFooterCM(ClassesName( fk.ForeignTable ) + sAlias); - SaveFile(); - } - private void GenerateFKClass(IForeignKey fk,string sAlias) - { - _className = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - _PropDescList.Add(_className); - if (!AddToClassList(_className))return; - _tableName = fk.ForeignTable.Alias; - vlnHeader("\r\nusing System.Collections.Generic;\r\nusing Csla.Validation;"); - string sInterface=""; - if (_chkPartCM) - { - //sInterface = ", ICustomTypeDescriptor"; -%> - [TypeConverter(typeof(<%=_className%>Converter))]<% - } -%> - public partial class <%=_className%> : BusinessBase<<%=_className%>><%=sInterface%>, IVEHasBrokenRules, IDisposable - {<% - Log4Net(); - if (_chkPartBM)vlnBusinessMethodsFKItem(fk,sAlias); - if (_chkPartVR)vlnValidationRulesFKItem(fk,sAlias); - if (_chkPartAR)vlnAuthorizationRulesFKItem(fk,sAlias); - if (_chkPartFM)vlnFactoryMethodsFKItem(fk,sAlias); - if (_chkPartDA)vlnDataAccessPortalFKItem(fk,sAlias); - if (_chkPartDF)vlnDefaults(fk.ForeignTable.Columns); - vlnFooterCM(""); - if (_chkPartEXT)vlnExtension(fk.ForeignTable.Columns); - SaveFile(); - } - private void vlnFooterCM(string displayName) - { - if (_chkPartCM) - { - if (displayName!="")vlnComponentModelFKList(); -%> - } // Class<% - if (displayName!="")vlnPropertyDescriptorFKList(); - if (displayName!="")vlnConvertorFKList(displayName); - else vlnConvertorFKItem(); -%> -} // Namespace -<% - } - else - { -%> - } // Class -} // Namespace -<% - } - } - private void GenerateInfoListClass( ITable tbl ) - { - _className = ClassName( tbl ) + "InfoList"; - if (!AddToClassList(_className))return; - _tableName = tbl.Alias; - _subclassName = ClassName( tbl ) + "Info"; - vlnHeader("\r\nusing System.Collections.Generic;"); - string sInterface=""; - if (_chkPartCM) - { - sInterface = ", ICustomTypeDescriptor"; -%> - [TypeConverter(typeof(<%=_className%>Converter))]<% - } -%> - public partial class <%=_className%> : ReadOnlyListBase<<%=_className%>, <%=_subclassName%>><%=sInterface%>, IDisposable - {<% - Log4Net(); - if (_chkPartBM) - { -%> - #region Business Methods - internal new IList<<%=_subclassName%>> Items - { get { return base.Items; } } - public void AddEvents() - { - foreach (<%=_subclassName%> tmp in this) - { - tmp.Changed += new <%=_subclassName%>Event(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)); - } - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~<%=_className%>() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - foreach (<%=_subclassName%> tmp in this) - { - tmp.Changed -= new <%=_subclassName%>Event(tmp_Changed); - } - } - #endregion<%} - if (_chkPartFM)vlnFactoryMethodsInfoList(tbl.Columns); - if (_chkPartDA)vlnDataAccessPortalInfoList(tbl.Columns); - vlnFooterCM(ClassesName( tbl ) ); - SaveFile(); - } - private void GenerateInfoClass( ITable tbl ) - { - _className = ClassName( tbl ) + "Info"; - _PropDescList.Add(_className); - if (!AddToClassList(_className))return; - _tableName = tbl.Alias; - vlnHeader("\r\nusing System.Collections.Generic;","\r\n\tpublic delegate void " + _className + "Event(object sender);"); - string sInterface=""; - if (_chkPartCM) - { - //sInterface = ", ICustomTypeDescriptor"; -%> - [TypeConverter(typeof(<%=_className%>Converter))]<% - } -%> - public partial class <%=_className%> : ReadOnlyBase<<%=_className%>><%=sInterface%>, IDisposable - { - public event <%=_className%>Event Changed; - private void OnChange() - { - if (Changed != null) Changed(this); - }<% - Log4Net(); - vlnCollection(tbl,new ArrayList(),true); - if (_chkPartBM)vlnBusinessMethodsInfo(tbl.Columns); - if (_chkPartFM)vlnFactoryMethodsInfo(tbl.Columns); - if (_chkPartDA)vlnDataAccessPortalInfo(tbl.Columns); - vlnInfoExtension(tbl.Columns);//20070410 - vlnFooterCM(""); - SaveFile(); - } - private void vlnHeader() - { - vlnHeader(""); - } - private void vlnHeader(string sUsing) - { - vlnHeader(sUsing,""); - } - private void vlnHeader(string sUsing,bool serialize) - { - vlnHeader(sUsing,"",serialize); - } - private void vlnHeader(string sUsing,string sDelegate) - { - vlnHeader(sUsing,sDelegate,true); - } - private void vlnHeader(string sUsing,string sDelegate,bool serialize) - { - if (_chkVolian){ -%>// ======================================================================== -// 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;<% - if (_chkPartCM) - { -%> -using System.ComponentModel;<% - } -%><%=sUsing%> -namespace <%=_nameSpace%> -{<%=sDelegate%> - /// - /// <%=_className%> Generated by MyGeneration using the CSLA Object Mapping template - /// <% - if (serialize) - { -%> - [Serializable()]<% - } - } - private bool IsPrimaryKey(IIndex ind) - { - IColumns colsi = ind.Columns; - IColumns colsp = ind.Table.PrimaryKeys; - if (colsi.Count != colsp.Count)return false; - for(int i=0;i - #region Collection - private static List<<%=_className%>> _CacheList = new List<<%=_className%>>(); - protected static void AddToCache(<%=_className%> <%=LocalName(_className)%>) - { - if (!_CacheList.Contains(<%=LocalName(_className)%>)) _CacheList.Add(<%=LocalName(_className)%>); // In AddToCache - } - protected static void RemoveFromCache(<%=_className%> <%=LocalName(_className)%>) - { - while (_CacheList.Contains(<%=LocalName(_className)%>)) _CacheList.Remove(<%=LocalName(_className)%>); // In RemoveFromCache - } - private static Dictionary>> _CacheByPrimaryKey = new Dictionary>>();<% - //ArrayList uniqueIndexes=UniqueIndexes(tbl); - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); -%> - private static Dictionary>> _CacheBy<%=sBy%> = new Dictionary>>();<% - } -%> - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move <%=_className%>(s) from temporary _CacheList to _CacheByPrimaryKey - { - <%=_className%> tmp = _CacheList[0]; // Get the first <%=_className%> - string pKey = <%=pKey%>; - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List<<%=_className%>>(); // Add new list for PrimaryKey<% - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string sKey = FormatColumns("tmp.{prop}.ToString()",ind.Columns," + \"_\" + ",""); -%> - _CacheBy<%=sBy%>[<%=sKey%>] = new List<<%=_className%>>(); // Add new list for <%=sBy%><% - } -%> - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list<% - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string sKey = FormatColumns("tmp.{prop}.ToString()",ind.Columns," + \"_\" + ",""); -%> - _CacheBy<%=sBy%>[<%=sKey%>].Add(tmp); // Unique Index<% - } -%> - _CacheList.RemoveAt(0); // Remove the first <%=_className%> - } - }<% - if (bInfo && AnyNotOneToOne(_workingTable)) // AddList function for infolist - Any non 1 to 1 relationships - { -%> - internal static void AddList(<%=_className%>List lst) - { - foreach (<%=_className%> item in lst) AddToCache(item); - }<% - } -%> - protected static <%=_className%> GetCachedByPrimaryKey(<%=pKeysType%>) - { - ConvertListToDictionary(); - string key = <%=pKey2%>; - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - }<% - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string sKey = FormatColumns("{local}.ToString()",ind.Columns," + \"_\" + ",""); - string sKeysType = FormatColumns("{ctype} {local}",ind.Columns,", ",""); - string sKeys = FormatColumns("{local}",ind.Columns,", ",""); -%> - protected static <%=_className%> GetCachedBy<%=sBy%>(<%=sKeysType%>) - { - ConvertListToDictionary(); - string key = <%=sKey%>; - if (_CacheBy<%=sBy%>.ContainsKey(key)) return _CacheBy<%=sBy%>[key][0]; - return null; - }<% - } -%> - #endregion<% - } - private void vlnBusinessMethods(IColumns Columns ) - { -%> - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - }<% - vlnProperties(Columns); - //vlnRelatedItems(Columns); - vlnToString(Columns); - vlnGetIDValue(_workingTable.PrimaryKeys); -%> - #endregion<% - } - private string ParentCheck(IColumn col) // 20070221 - Logic to check for parent value - { - IForeignKey pfk = FKParentFK(col.Table); - if (pfk == null)return null; - IColumn relCol = RelatedColumnF(col,pfk); - if (relCol==null) return null; - return FormatColumn("\r\n\t\t\t\tif (_" + ParentName(pfk) + " != null) return _" + ParentName(pfk) + ".{prop};",relCol); - } - private void vlnProperties(IColumns Columns) - { - // Create all properties - foreach(IColumn col in Columns) - { - bool bReadOnly = col.IsInPrimaryKey || col.IsAutoKey || col.IsComputed; -// bool bRelatedObject = true; - vlnIdentity(col); -// string sParentCheck = ParentCheck(col); -// if (sParentCheck != null) -// { -// bReadOnly=true; -// bRelatedObject=false; -// } - // Need logic to handle parent child - string sParentCheck=""; - if (IsRelObj(col)) - sParentCheck =FormatColumn("\r\n\t\t\t\tif ({!member} != null) {member} = {!member}.{!column};",col); - vlnProperty(CSLAType( col ),MemberName(col) - ,PropertyName(col),InitializeValue( col ),GetDescription(col),bReadOnly || IsRelObj(col),col.IsInPrimaryKey,false,null,sParentCheck,null,null); -// if (bRelatedObject) - vlnRelObjProperty(col,bReadOnly,false); - } - // Add Foreign Key Properties - This should be controllable -// foreach(IColumn field in Columns) -// { -// if (field.IsInForeignKey && field.IsInPrimaryKey) -// { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. - string sExtDirty=""; - string sExtValid=""; -// foreach( IForeignKey fk in field.ForeignKeys ) - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey fk in _workingTable.ForeignKeys) - { - if (fk.PrimaryTable == _workingTable){ - //string sAlias = GetAlias(dicAlias,fk.ForeignTable); - string sAlias = GetAlias(fk); -// string sList = _className + ClassesName( fk.ForeignTable ); - string sList = FKClassName(fk ); - string sLists = FKClassesName(fk ); - vlnProperty("int",MemberName(sList) + sAlias + "Count" ,sList + sAlias + "Count", " = 0;", - "Count of " + sLists + " for this " + ClassName(_workingTable) + Debug("20070501.3"),true,false,false,null,null,null,null); - if (!IsPrimaryKey(fk)){ - //vlnProperty(sLists+sAlias,MemberName(sLists)+sAlias,sLists + sAlias, - //" = " + sLists+sAlias + ".New();","Related Field" + Debug("20070501.2"),true,false,true,fk,null,null,null); - vlnProperty(sLists+sAlias,MemberName(sLists)+sAlias,sLists + sAlias, - " = null;","Related Field" + Debug("20070501.2"),true,false,true,fk,null,null,null); - //sExtDirty += " || " + MemberName(sLists+sAlias) + ".IsDirty"; - //sExtValid += " && " + MemberName(sLists+sAlias) + ".IsValid"; - sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName(sLists+sAlias)); - // Added List 20100924 - sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName(sLists+sAlias)); - } else { - string sItem = ClassName(fk.ForeignTable); - //vlnProperty(sItem+sAlias, MemberName("My" + sItem)+sAlias,"My" + sItem + sAlias, - //" = My" + sItem+sAlias + ".New();","Related Field",true,false,true,fk,null,null); - string sCheck = string.Format("\r\n\t\t\t\tif ({0} == null) {0} = {1}.New({2});", - MemberName("My" + sItem)+sAlias, sItem, OneToOne(fk) ? "this" : FormatColumns("{member}",fk.PrimaryColumns,", ","")); - vlnProperty(sItem+sAlias, MemberName("My" + sItem)+sAlias,"My" + sItem + sAlias, - " = null;","Related Field" + Debug("20070501.1"),true,false,true,fk,sCheck,null,null); - bool bReq = !fk.ForeignColumns[0].IsNullable; - sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName("My" + sItem+sAlias)); - sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName("My" + sItem+sAlias)); - } - } - else // - { - if (IsPrimaryKey1(fk) && !IsPrimaryKey(fk)){ - bool bReq = !fk.ForeignColumns[0].IsNullable; - string sClass = ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk); - //sExtDirty += string.Format(" || ({0} == null? " + bReq.ToString().ToLower() + " : {0}.IsDirty)",MemberName("My" + sClass)); - //sExtValid += string.Format(" && ({0} == null? " + (!bReq).ToString().ToLower() + " : {0}.IsValid)",MemberName("My" + sClass)); - sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName("My" + sClass)); - sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName("My" + sClass)); - } - } - } - //if (sExtDirty!="") - vlnDirty(sExtDirty); - //if (sExtValid!="")vlnOverride("Valid",sExtValid); - vlnValid(sExtValid); -// } -// } - } - private void vlnDirty(string sExtension) - { - if(sExtension == "") - { - %> - public override bool IsDirty - { - get { return base.IsDirty; } - } - public bool IsDirtyList(List list) - { - return base.IsDirty; - }<% - } - else - { - %> - public override bool IsDirty - { - get - { - if ( base.IsDirty ) - return true; - return IsDirtyList(new List()); - } - } - public bool IsDirtyList(List list) - { - if (base.IsDirty || list.Contains(this)) - return base.IsDirty; - list.Add(this); - return base.IsDirty<%=sExtension%>; - }<% - } - } - private void vlnValid(string sExtension) - { - if(sExtension == "") - { - %> - public override bool IsValid - { - get { return (IsNew && !IsDirty) ? true : base.IsValid; } - } - public bool IsValidList(List list) - { - return (IsNew && !IsDirty) ? true : base.IsValid; - }<% - } - else - { - %> - public override bool IsValid - { - get { return IsValidList(new List()); } - } - public bool IsValidList(List list) - { - if(list.Contains(this)) - return (IsNew && !IsDirty) ? true : base.IsValid; - list.Add(this); - return ((IsNew && !IsDirty) ? true : base.IsValid)<%=sExtension%>; - }<% - } - } - private void vlnIdentity(IColumn column) - { - if (column.IsAutoKey) - { - string sProp=FormatColumn("{prop}",column); -%> - private static int _next<%=sProp%> = -1; - public static int Next<%=sProp%> - { - get { return _next<%=sProp%>--; } - }<% - } - } - private void vlnLazyLoad(string sType,string sMemberName,string sPropertyName,IForeignKey fk) - { - if (fk==null)return; - //if (OneToOne(fk.ForeignTable))return; - if (OneToOne(fk))return; - string sBy = FormatColumns("{name}",fk.ForeignColumns,"_",""); - string sKeys=FormatColumns("{prop}",fk.PrimaryColumns,", ",""); - string sRelClass=FKClassesName(fk) + GetAlias(fk); - string sClassName=MemberName(FKClassName(fk) + GetAlias(fk));//20070207 -%> - if (<%=sClassName%>Count < 0 || (<%=sClassName%>Count > 0 && <%=sMemberName%> == null)) - <%=sMemberName%> = <%=sType%>.GetBy<%=sBy%>(<%=sKeys%>); - if (<%=sClassName%>Count < 0 ) - <%=sClassName%>Count = <%=sMemberName%> == null ? 0 : <%=sMemberName%>.Count; - if (<%=sMemberName%> == null) - <%=sMemberName%> = <%=sRelClass%>.New();<% - } - private void vlnResetLazyLoad(string sType,string sMemberName,string sPropertyName,IForeignKey fk) - { - if (fk==null)return; - //if (OneToOne(fk.ForeignTable))return; - if (OneToOne(fk))return; - string sBy = FormatColumns("{name}",fk.ForeignColumns,"_",""); - string sKeys=FormatColumns("{prop}",fk.PrimaryColumns,", ",""); - string sRelClass=FKClassesName(fk) + GetAlias(fk); - string sClassName=MemberName(FKClassName(fk) + GetAlias(fk));//20070207 -%> - public void Reset<%=sMemberName%>() - { - <%=sClassName%>Count = -1; - }<% - } - private void vlnProperty(string sType,string sMemberName,string sPropertyName,string sDefault,string sDescription,bool bReadOnly,bool bPrimaryKey,bool bCompModel,IForeignKey fk,string sParentCheck,string sParentCheck2, string sParentCheck3) - { - string suffix = (sPropertyName==_className?"Fld":""); -%> - private <%=ReturnType(sType)%> <%=sMemberName%><%=suffix%><%=sDefault%><% - if (!sDefault.EndsWith("timestamp")){ - if (sDescription != ""){ -%> - /// - /// <%=sDescription%> - /// <% - } - if (_chkPartCM && bCompModel) - { -%> - [TypeConverter(typeof(<%=sType%>Converter))]<% - } - if (bPrimaryKey){ -%> - [System.ComponentModel.DataObjectField(true, true)]<% - } -%> - public <%=ReturnType(sType)%> <%=sPropertyName%><%=suffix%> - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("<%=sPropertyName%><%=suffix%>", true);<%vlnLazyLoad(sType,sMemberName,sPropertyName,fk);%><%=sParentCheck%> - return <%=sMemberName%><%=suffix%><%=ReturnMember(sType)%>; - }<% - if (!bReadOnly){ - switch(sType) - { - case "SmartDate": -%> - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty("<%=sPropertyName%><%=suffix%>", true); - if (value == null) value = string.Empty; - <%=sMemberName%><%=suffix%> = value; - try - { - SmartDate tmp = new SmartDate(value); - if (<%=sMemberName%><%=suffix%> != tmp.ToString()) - { - <%=sMemberName%><%=suffix%> = tmp.ToString(); - // CSLATODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - }<% - break; - default: -%> - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty("<%=sPropertyName%><%=suffix%>", true);<% - if (sType=="string"){ -%> - if (value == null) value = string.Empty;<% - } - if(sParentCheck2 ==null) // 20080722RHM - { -%> - if (<%=sMemberName%><%=suffix%> != value)<% - } - else// 20080722RHM - { -%> - if (<%=sParentCheck3%>)<% - } -%> - { - <%=sMemberName%><%=suffix%><%=ReturnMember(sType)%> = value;<%=sParentCheck2%> - PropertyHasChanged(); - } - }<% - break; - } - } -%> - }<%vlnResetLazyLoad(sType,sMemberName,sPropertyName,fk);%><% - } - - } - private void vlnToString(IColumns Columns) - { -%> - // CSLATODO: Replace base <%=_className%>.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current <%=_className%> - //public override string ToString() - //{ - // return base.ToString(); - //}<% - } - private void vlnGetIDValue(IColumns Columns) - { - string keyID=""; - string sep="("; - if (Columns.Count==1){ - keyID=MemberName(Columns[0]); - } - else - { - foreach(IColumn field in Columns) - { - keyID+=sep+MemberName(field)+ ".ToString()"; - sep=" + \".\" + "; - } - keyID+=").GetHashCode()"; - } -%> - // CSLATODO: Check <%=_className%>.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 <%=_className%> - protected override object GetIdValue() - { - return My<%=_className%>Unique; // Absolutely Unique ID - }<% - } - private string extName - { - get {return _className + "Extension";} - } - private string extMName - { - get {return MemberName(_className + "Extension");} - } - private void vlnValidationRules(IColumns Columns ) - { -%> - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - {<%=Debug("20070509.vlnValidationRules")%> - get - { - if (_CheckingBrokenRules) return null; - if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null;<% - vlnBrokenRuleObjects(Columns); -%> - 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() - {<% - foreach(IColumn field in Columns) - { - if (field.LanguageType=="string") - { - vlnAddRequired(field); - if (field.CharacterMaxLength < 2147483647) - vlnAddMaxLength(PropertyName(field),field.CharacterMaxLength); - } - if (CSLAType( field )=="SmartDate") - { - vlnAddRequired(field); - string sName = PropertyName(field); -%> - ValidationRules.AddRule<<%=_className%>>(<%=sName%>Valid, "<%=sName%>");<% - } - string sObjectRequired = RequiredRelatedColumn(field); - if (sObjectRequired != null) - { -%> - ValidationRules.AddRule<<%=_className%>>(<%=sObjectRequired%>Required, "<%=sObjectRequired%>");<% - } - } -%> - //ValidationRules.AddDependantProperty("x", "y"); - <%=extMName%>.AddValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - <%=extMName%>.AddInstanceValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - }<% - foreach(IColumn field in Columns) - { - if (CSLAType( field )=="SmartDate") - { - string sName = PropertyName(field); - string sMember = MemberName(field); -%> - private static bool <%=sName%>Valid(<%=_className%> target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target.<%=sMember%>); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - }<% - } - } - foreach(IColumn col in Columns) - { - string sColumn = RequiredRelatedColumn(col); - if (sColumn != null){ // Let the Validation Rules handle required fields - string sMemberRaw = MemberName(col); - string sMemberReq = MemberName(sColumn); -%> - private static bool <%=sColumn%>Required(<%=_className%> target, Csla.Validation.RuleArgs e) - { - if (target.<%=sMemberRaw%> == 0 && target.<%=sMemberReq%> == 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<% - } - private void vlnAddRequired(IColumn column) - { - string sName = PropertyName(column); - if (!column.IsNullable) - { -%> - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "<%=sName%>");<% - } - } - private void vlnAddMaxLength(string sName,int maxlen) - { -%> - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("<%=sName%>", <%=maxlen.ToString()%>));<% } - private void vlnAuthorizationRules(IColumns Columns ) - { -%> - #region Authorization Rules - protected override void AddAuthorizationRules() - { - //CSLATODO: Who can read/write which fields<% - foreach(IColumn field in Columns) - { - if (field.DataTypeName != "timestamp"){ -%> - //AuthorizationRules.AllowRead(<%=PropertyName(field)%>, "");<% - } - } - foreach(IColumn field in Columns) - { - if (!(field.IsInPrimaryKey || field.IsAutoKey || field.IsComputed)) - { -%> - //AuthorizationRules.AllowWrite(<%=PropertyName(field)%>, "");<% - } - } -%> - <%=extMName%>.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //CSLATODO: Who can read/write which fields - <%=extMName%>.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // CSLATODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // CSLATODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // CSLATODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - }<% - // Need logic to Add CanDelete if the items contains any related records - // Get a list of related objects - string sRelatedCounts = ""; - string sRelatedCounts1 = ""; - // Loop through Foreign Keys associated with the Primary Key - foreach(IForeignKey fk in _workingTable.ForeignKeys) - { - if (fk.PrimaryTable == _workingTable) - { - bool isPrimary = true; - foreach(IColumn c in fk.PrimaryColumns) - { - isPrimary &= c.IsInPrimaryKey; - } - if (isPrimary) - { - if (fk.PrimaryTable == fk.ForeignTable) - { - sRelatedCounts1 += "\r\n\t\t\t\tusedByCount += " + MemberName(FKClassName1(fk)) + "Count;"; - } - else - { - sRelatedCounts += "\r\n\t\t\t\tusedByCount += " + MemberName(FKClassName1(fk)) + "Count;"; - } - } - } - } - sRelatedCounts += sRelatedCounts1; - if (sRelatedCounts != "") - { -%> - /// - /// 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;<%=sRelatedCounts%> - return (usedByCount == 0); - } - }<% - } -%> - public static bool CanEditObject() - { - // CSLATODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion<% - } - private bool MatchingColumns(IList cols1,IList cols2) - { - if (cols1.Count != cols2.Count)return false; - ArrayList cols=new ArrayList(); - foreach(IColumn col in cols1)cols.Add(col.Name); - foreach(IColumn col in cols2)cols.Remove(col.Name); - return cols.Count==0; - } - private void vlnFactoryMethods(IColumns Columns ) - { - string pKeys=FormatColumns("{prop}.ToString()",_workingTable.PrimaryKeys," + \"_\" + "); - string sKeys=FormatColumns("{local}",_workingTable.PrimaryKeys,", "); - string sKeysTypes=FormatColumns("{ctype} {local}",_workingTable.PrimaryKeys,", ");; - ArrayList reqList = ReqList(Columns); - ArrayList makeList = MakeList(Columns); - ArrayList makeList2 = MakeList2(Columns); - ArrayList makeList3 = MakeList3(Columns); - ArrayList makeList4 = MakeList4(Columns); - Hashtable dicCheck = new Hashtable(); - IForeignKey fkParent = FKParentFK(_workingTable); - string sParent = ParentName(fkParent); - dicCheck["DateTime"]= - "if ({local} >= new DateTime(1753, 1, 1) && {local} <= new DateTime(9999, 12, 31)) tmp.{prop} = {local};"; - dicCheck["DateTime?"]= - "if ({local} != null && ((DateTime){local}) >= new DateTime(1753, 1, 1) && ((DateTime){local}) <= new DateTime(9999, 12, 31)) tmp.{prop} = {local};"; - dicCheck["string"]= - "if ({local} != null && {local} != string.Empty) tmp.{prop} = {local};"; -%> - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _<%=_className%>Unique = 0; - protected static int <%=_className%>Unique - { get { return ++_<%=_className%>Unique; } } - private int _My<%=_className%>Unique = <%=_className%>Unique; - public int My<%=_className%>Unique // Absolutely Unique ID - Editable - { get { return _My<%=_className%>Unique; } } - protected <%=_className%>() - {/* require use of factory methods */ - AddToCache(this); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~<%=_className%>() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(<%=pKeys%>)) - { - List<<%=_className%>> list<%=_className%> = _CacheByPrimaryKey[<%=pKeys%>]; // Get the list of items - while (list<%=_className%>.Contains(this)) list<%=_className%>.Remove(this); // Remove the item from the list - if (list<%=_className%>.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(<%=pKeys%>); // remove the list - }<% - - ArrayList uniqueIndexes=UniqueIndexes(_workingTable); - IIndex makeIndex=null; - if(uniqueIndexes.Count > 0) - { -%> - string myKey;<% - } - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string sKey = FormatColumns("{prop}.ToString()",ind.Columns," + \"_\" + ",""); - if (MatchingColumns(ind.Columns,makeList))makeIndex=ind; -%> - myKey = null; - foreach (string key in _CacheBy<%=sBy%>.Keys) - if (_CacheBy<%=sBy%>[key].Contains(this)) - myKey = key; - if (myKey != null) - { - List<<%=_className%>> list<%=_className%> = _CacheBy<%=sBy%>[myKey]; // Get the list of items - list<%=_className%>.Remove(this); // Remove the item from the list - if (list<%=_className%>.Count == 0) //If there are no items left in the list - _CacheBy<%=sBy%>.Remove(myKey); // remove the list - }<% - } - string sMakeListParamTypes = ""; - string sMakeListParams = ""; - string sSetTmp = ""; - string sParentCheck = ""; -%> - } - public static <%=_className%> New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a <%=_className%>"); - try - { - return DataPortal.Create<<%=_className%>>(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.New", ex); - } - }<% - // if makelist != reqlist create a new for reqlist - if (!SameList(makeList,reqList) && reqList.Count > 0) - { - BuildLists(reqList,ref sMakeListParamTypes, ref sMakeListParams, ref sSetTmp, ref sParentCheck); - BuildNew(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck); - if(SameList(reqList,makeList4)) - BuildMake(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck + Debug("20070427.4"),makeIndex); - } - BuildLists(makeList,ref sMakeListParamTypes, ref sMakeListParams, ref sSetTmp, ref sParentCheck); - BuildNew(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck ); - BuildMake(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck + Debug("20070427.3"),makeIndex); - if (!SameList(makeList,makeList4) && !SameList(reqList,makeList4) && makeList4.Count > 0) - { - BuildLists(makeList4,ref sMakeListParamTypes, ref sMakeListParams, ref sSetTmp, ref sParentCheck); - BuildNew(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck); - BuildMake(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck + Debug("20070427.4"),makeIndex); - } - if (makeList3.Count > 0) - { -%> - public static <%=_className%> Make<%=_className%>(<%=FormatColumns("{rtype} {local}",makeList2,", ","")%>) - {<%=DebugLine("20070427.1")%> - <%=_className%> tmp = <%=_className%>.New(<%=FormatColumns("{local}",makeList,", ","")%>); -<%=FormatColumns(dicCheck,makeList3,"\r\n","\t\t\t")%> - return tmp.Save(); - }<% - } - string sExtra1= ""; - string sExtra2= ""; - if (FKParent(_workingTable)){ - sExtra1=", " + _className + " " + ParentName(fkParent).ToLower(); - sExtra2=", " + ParentName(fkParent).ToLower(); - } - if (OneToOne(_workingTable) && !SameList(makeList,_workingTable.PrimaryKeys) && !SameList(reqList,_workingTable.PrimaryKeys) && !SameList(makeList4,_workingTable.PrimaryKeys)) - { - BuildLists(_workingTable.PrimaryKeys,ref sMakeListParamTypes, ref sMakeListParams, ref sSetTmp, ref sParentCheck); - sSetTmp += "\r\n\t\t\ttmp.MarkClean();"; - sSetTmp += "\r\n\t\t\ttmp.MarkAsChild();"; - BuildNew(sMakeListParamTypes,sMakeListParams,sSetTmp,sParentCheck); - } -%> - public static <%=_className%> Get(<%=sKeysTypes%>) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a <%=_className%>"); - try - { - <%=_className%> tmp = GetCachedByPrimaryKey(<%=sKeys%>); - if (tmp == null) - { - tmp = DataPortal.Fetch<<%=_className%>>(new PKCriteria(<%=sKeys%>)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up <%=_className%> - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Get", ex); - } - }<% - //IForeignKey fkParent = FKParentFK(_workingTable); - if (fkParent != null && _doOldParent) - { - string parKeys = FormatColumns("{member}",fkParent.ForeignColumns,", "); -%> - public <%=_className%> Get<%=sParent%>() - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a <%=_className%>"); - try - { - <%=_className%> tmp = GetCachedByPrimaryKey(<%=parKeys%>); - if (tmp == null) - { - tmp = DataPortal.Fetch<<%=_className%>>(new <%=sParent%>Criteria(<%=parKeys%>)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up <%=_className%> - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Get", ex); - } - }<% - } -// GetByUniqueIndex() - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string sKeyType = FormatColumns("{ctype} {local}",ind.Columns,", ",""); - string sKey = FormatColumns("{local}",ind.Columns,", ",""); -%> - public static <%=_className%> GetBy<%=sBy%>(<%=sKeyType%>) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a <%=_className%>"); - try - { - <%=_className%> tmp = GetCachedBy<%=sBy%>(<%=sKey%>); - if (tmp == null) - { - tmp = DataPortal.Fetch<<%=_className%>>(new <%=sBy%>Criteria(<%=sKey%>)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up <%=_className%> - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.GetBy<%=sBy%>", ex); - } - }<% - } -%> - public static <%=_className%> Get(SafeDataReader dr<%=sExtra1%>) - { - if (dr.Read()) return new <%=_className%>(dr<%=sExtra2%>); - return null; - } - internal <%=_className%>(SafeDataReader dr) - { - ReadData(dr); - }<% - if (FKParent(_workingTable)){ -%> - private <%=_className%>(SafeDataReader dr<%=sExtra1%>) - { - ReadData(dr); - MarkAsChild(); - } - internal <%=_className%>(SafeDataReader dr, int parentID) - { - ReadData(dr); - MarkAsChild(); - }<% - } -%> - public static void Delete(<%=sKeysTypes%>) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a <%=_className%>"); - try - { - DataPortal.Delete(new PKCriteria(<%=sKeys%>)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Delete", ex); - } - } - public override <%=_className%> Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a <%=_className%>"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a <%=_className%>"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a <%=_className%>"); - try - { - BuildRefreshList(); - <%=_className%> <%=LocalName(_className)%> = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(<%=LocalName(_className)%>);//Refresh the item in AllList - ProcessRefreshList(); - return <%=LocalName(_className)%>; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion<% - } - private void BuildNew(string sMakeListParamTypes, string sMakeListParams, string sSetTmp, string sParentCheck) - { - %> - public static <%=_className%> New(<%=sMakeListParamTypes%>) - { - <%=_className%> tmp = <%=_className%>.New(); -<%=sSetTmp%> - return tmp; - }<% - } - private void BuildMake(string sMakeListParamTypes, string sMakeListParams, string sSetTmp, string sParentCheck,IIndex makeIndex) - { - %> - public static <%=_className%> Make<%=_className%>(<%=sMakeListParamTypes%>) - {<%=DebugLine("20070427.2")%><% - if (makeIndex != null) - { -%> - <%=_className%> tmp = null; - <%=sParentCheck%>tmp = GetBy<%=FormatColumns("{prop}",makeIndex.Columns,"_","")%>(<%=FormatColumns("{!localcolumn}",makeIndex.Columns,", ","")%>); - if (tmp != null) return tmp;// It does exist, return it. - tmp = <%=_className%>.New(<%=sMakeListParams%>);<% - } - else - { -%> - <%=_className%> tmp = <%=_className%>.New(<%=sMakeListParams%>);<% - } -%> - if (tmp.IsSavable) - tmp = tmp.Save(); - 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; - }<% - } - private void vlnRefreshInfo() - { - string sClass = ClassName(_workingTable); - string sClasses = ClassesName(_workingTable); - string sDeclare = "\t\tprivate List<" + sClass + "> _Refresh" + sClasses + " = new List<" + sClass + ">();"; - string sReset = "\t\t\t_Refresh" + sClasses + " = new List<" + sClass + ">();"; - string sCheck = "\t\t\tif (IsDirty)\r\n\t\t\t\trefresh" + sClasses + ".Add(this);"; - string sRefreshDeclare = "List<" + sClass + "> refresh" + sClasses; - string sRefreshRelated = "refresh" + sClasses; - string sRefreshRelated1 = "_Refresh" + sClasses; - string sProcess = "\t\t\tforeach (" + sClass + " tmp in _Refresh" + sClasses + ")\r\n\t\t\t{\r\n\t\t\t\t" + - sClass + "Info.Refresh(tmp);"; - foreach(IForeignKey fk in _workingTable.ForeignKeys) // 20070220 - { - if (_workingTable != fk.PrimaryTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - sProcess += string.Format("\r\n\t\t\t\tif (tmp._My{1} != null) {0}Info.Refresh(tmp._My{1});",ClassName(fk.PrimaryTable.Name),ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk)); - } - } - sProcess += "\r\n\t\t\t}"; - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey fk in _workingTable.ForeignKeys) // 20070220 - { - if (fk.PrimaryTable == fk.ForeignTable) // Parent Child - { - sCheck += "\r\n\t\t\tif (_" + ChildName(fk) + sClasses + " != null && _" + ChildName(fk) + sClasses + ".IsDirty)\r\n\t\t\t{\r\n\t\t\t\tforeach (" + sClass + - " tmp in _" + ChildName(fk) + sClasses + ")\r\n\t\t\t\t{\r\n\t\t\t\t\ttmp.AddToRefreshList(" + - "{{refreshRelated}});\r\n\t\t\t\t}\r\n\t\t\t}"; - } - else - { - if (!IsPrimaryKey(fk) && _workingTable == fk.PrimaryTable){ - //string sAlias = GetAlias(dicAlias,fk.ForeignTable); - string sAlias = GetAlias(fk); - string sItem = ClassName(fk.ForeignTable); - string sFItem = ClassName(_workingTable) + ClassName(fk.ForeignTable) + sAlias; - string sFItems = ClassName(_workingTable) + ClassesName(fk.ForeignTable) + sAlias; - sDeclare += "\r\n\t\tprivate List<" + sFItem + "> _Refresh" + sFItems + " = new List<" + sFItem + ">();"; - sReset += "\r\n\t\t\t_Refresh" + sFItems + " = new List<" + sFItem + ">();"; - sRefreshRelated += ", refresh" + sFItems; - sRefreshRelated1 += ", _Refresh" + sFItems; - sRefreshDeclare += ", List<" + sFItem + "> refresh" + sFItems; - sCheck += "\r\n\t\t\tif (" + MemberName(sFItems) + " != null && " + MemberName(sFItems) + ".IsDirty)\r\n\t\t\t{\r\n\t\t\t\tforeach (" + sFItem + - " tmp in " + MemberName(sFItems) + ")\r\n\t\t\t\t{\r\n\t\t\t\t\tif (tmp.IsDirty) refresh" + sFItems + - ".Add(tmp);\r\n\t\t\t\t}\r\n\t\t\t}"; - sProcess += "\r\n\t\t\tforeach (" + sFItem + " tmp in _Refresh" + sFItems + ")\r\n\t\t\t{\r\n\t\t\t\t" + - sItem + "Info.Refresh(" + (ForeignPrimary(fk)?"this, ":"") + "tmp);\r\n\t\t\t}"; - } - } - } - sCheck = sCheck.Replace("{{refreshRelated}}",sRefreshRelated); -%> - #region Refresh -<%=sDeclare%> - private void AddToRefreshList(<%=sRefreshDeclare%>) - { -<%=sCheck%> - } - private void ClearRefreshList() - { -<%=sReset%> - } - private void BuildRefreshList() - { - ClearRefreshList(); - AddToRefreshList(<%=sRefreshRelated1%>); - } - private void ProcessRefreshList() - { -<%=sProcess%> - ClearRefreshList(); - } - #endregion<% - } - private void ReadOnlyProperties(IColumns columns) - { - output.write(FormatColumns("\t\t\tprivate {ctype} {member};\r\n" + - "\t\t\tpublic {ctype} {prop}\r\n\t\t\t{ get { return {member}; } }" - ,columns,"\r\n")); - } - private void vlnPKCriteria() - { -// PKCriteria -%> - [Serializable()] - protected class PKCriteria - { -<% -// Loop through Primary Keys -// string sep=""; - string sValues=FormatColumns("\t\t\t\t{member} = {local};",_workingTable.PrimaryKeys,"\r\n"); - string sKeysTypes=FormatColumns("{ctype} {local}",_workingTable.PrimaryKeys,", "); -// foreach(IColumn field in _workingTable.PrimaryKeys) -// { -// sKeysTypes+=sep + FormatColumn("{ctype} {member}",field); -// sValues+= FormatColumn("\t\t\t\t{member}={@};\r\n",field); -// sep=", "; -// } - ReadOnlyProperties(_workingTable.PrimaryKeys); -%> - public PKCriteria(<%=sKeysTypes%>) - { -<%=sValues%> - } - }<% - } - private void vlnReadData(IColumns cols,bool bEditable) - { - IList cols2=cols; - if (!bEditable)cols2=NotTimestamp(cols); -%> - private void ReadData(SafeDataReader dr) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.ReadData", GetHashCode()); - try - { -<%=FormatColumns(dicRead,cols2,"\r\n","\t\t\t\t")%><% - //Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey FK in _workingTable.ForeignKeys) - { - //if (FK.PrimaryTable == _workingTable && !IsPrimaryKey(FK)) - if (FK.PrimaryTable == _workingTable) // 20071023 - { - string sAlias = GetAlias(FK); - string sClass = FKClassName(FK); - string sField = FKFieldName(FK); -%> - <%=MemberName(sClass)+ sAlias%>Count = dr.GetInt32("<%=sField + sAlias%>Count");<% - } - } - if (bEditable){ -%> - MarkOld();<% - } -%> - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("<%=_className%>.ReadData", ex); - } - }<% - } - private void vlnDataAccessPortal(IColumns Columns ) - { -%> - #region Data Access Portal<% - vlnPKCriteria(); -// Parent Criteria - IForeignKey fkParent = FKParentFK(_workingTable); - string sParent = ParentName(fkParent); - if (fkParent != null && _doOldParent) - { - string parKeys = FormatColumns("{member}",fkParent.ForeignColumns,", "); - string parValues=FormatColumns("\t\t\t\t{member} = {local};",fkParent.ForeignColumns,"\r\n"); - string parKeysTypes=FormatColumns("{ctype} {local}",fkParent.ForeignColumns,", "); -%> - [Serializable()] - private class <%=sParent%>Criteria - { -<%ReadOnlyProperties(fkParent.ForeignColumns);%> - public <%=sParent%>Criteria(<%=parKeysTypes%>) - { -<%=parValues%> - } - }<% - } -// Unique Criteria - ArrayList uniqueIndexes=UniqueIndexes(_workingTable); - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - string indKeyTypes = FormatColumns("{ctype} {local}",ind.Columns,", ",""); - string indValues=FormatColumns("\t\t\t\t{member} = {local};",ind.Columns,"\r\n"); -%> - [Serializable()] - private class <%=sBy%>Criteria - { -<%ReadOnlyProperties(ind.Columns);%> - public <%=sBy%>Criteria(<%=indKeyTypes%>) - { -<%=indValues%> - } - }<% - } -// DataPortal_Create -%> - // CSLATODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { -<%=FormatColumns("{member} = new Guid();",Guid(Columns),"\r\n","\t\t\t")%><%=FormatColumns("{member} = Next{prop};",AutoKey(Columns),"\r\n","\t\t\t")%> - // Database Defaults -<%=FormatColumns("{member} = " + extMName + ".Default{prop};",HasDefaults(Columns),"\r\n","\t\t\t")%> - // CSLATODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - }<% - vlnReadData(Columns,true); - vlnDataPortalFetch("PK",_workingTable.PrimaryKeys,_className,true); -// IForeignKey fkParent = FKParentFK(_workingTable); - if (fkParent != null && _doOldParent) - { -// string sParent = ParentName(fkParent); - vlnDataPortalFetch(sParent,fkParent.ForeignColumns,sParent + _className,false); - } - foreach(IIndex ind in uniqueIndexes) - { - string sBy = FormatColumns("{name}",ind.Columns,"_",""); - vlnDataPortalFetch(sBy,ind.Columns,_className + "By" + sBy,false); - } - string sUpdateMyList=""; - foreach(IForeignKey fk in _workingTable.ForeignKeys) // 20070220 - { - if (_workingTable != fk.PrimaryTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - sUpdateMyList += string.Format("\r\n\t\t\t\tif (_My{0} != null) _My{0}.Update();",ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk)); - } - } -// DataPortal_Insert -%> - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_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) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("<%=_className%>.DataPortal_Insert", ex); - } - finally - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - {<%=sUpdateMyList%> - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "add<%=_className%>"; - // Input All Fields - Except Calculated Columns<% - foreach(IColumn column in Columns) - { - if ((!column.IsAutoKey) && (!column.IsComputed)) - { - output.write(FormatColumn("\r\n\t\t\t\t\t{ifLogicP}cm.Parameters.AddWithValue(\"{@}\", {?dbprefix}{Parent}{?dbsuffix});",column));// 20070316 - } - } -%> - // Output Calculated Columns<% - foreach(IColumn column in Columns) - { - if ((column.IsAutoKey) || (column.IsComputed)) - { - output.write(FormatColumn("\r\n\t\t\t\t\tSqlParameter param{member} = new SqlParameter(\"{@new}\", {sqltype});",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tparam{member}.Direction = ParameterDirection.Output;",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tcm.Parameters.Add(param{member});",column)); - } - } -%> - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure<% - foreach(IColumn column in Columns) - { - if ((column.IsAutoKey) || (column.IsComputed)) - { - output.write(FormatColumn("\r\n\t\t\t\t\t{member} = ({ctype})cm.Parameters[\"{@new}\"].Value;",column)); - } - } -%> - } - MarkOld(); - // update child objects<% - foreach(IColumn field in Columns) - { - if (field.IsInForeignKey && field.IsInPrimaryKey) - { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable == _workingTable){ - string sObjName; - if (!IsPrimaryKey(fk)){ - sObjName = FKClassesName( fk ) + GetAlias(fk); -%> - if (<%=MemberName(sObjName)%> != null) <%=MemberName(sObjName)%>.Update(this);<% - } - else - { - sObjName = ClassName( fk.ForeignTable ); -%> - if (<%=MemberName("My" + sObjName)%> != null) <%=MemberName("My" + sObjName)%>.Update(this);<% - } - } - } - } - } -%> - <%=_databaseLogDebug%>("[{0}] <%=_className%>.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("<%=_className%>.SQLInsert", ex); - } - }<% -// Add - string sKeysTypesI=""; - string sKeysI=""; - string sValuesI=""; - string sepi=""; - foreach(IColumn column in Columns) - { - if ((!column.IsComputed)) - { - if (!column.IsAutoKey){ - sValuesI+=FormatColumn("\r\n\t\t\t\t\t{ifLogicL}cm.Parameters.AddWithValue(\"{@}\", {parent}{?dbtype});",column); - } - if (IsParentCol(column)){ - sKeysTypesI+=sepi + _className + " my" + ParentName(column.ForeignKeys[0]); - sKeysI+=sepi + "my" + ParentName(column.ForeignKeys[0]); - } - else - { - sKeysTypesI+=sepi + FormatColumn("{?ref}{!type} {!local}",column); - sKeysI+=sepi + FormatColumn("{?ref}{member}",column); - } - sepi=", "; - } - } - string sRetval = (IsTimestamp(Columns).Count > 0 ? "byte[]" : "void"); -%> - [Transactional(TransactionalTypes.TransactionScope)] - public static <%=sRetval%> Add(SqlConnection cn, <%=sKeysTypesI%>) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "add<%=_className%>"; - // Input All Fields - Except Calculated Columns<%=sValuesI%> - // Output Calculated Columns<% - foreach(IColumn column in Columns) - { - if ((column.IsAutoKey) || (column.IsComputed)) - { - output.write(FormatColumn("\r\n\t\t\t\t\tSqlParameter param{member} = new SqlParameter(\"{@new}\", {sqltype});",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tparam{member}.Direction = ParameterDirection.Output;",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tcm.Parameters.Add(param{member});",column)); - } - } -%> - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure<% - IColumn tsCol=null; - foreach(IColumn column in Columns) - { - if ((column.IsAutoKey) || (column.IsComputed)) - { - if (column.DataTypeName=="timestamp")tsCol=column; - else output.write(FormatColumn("\r\n\t\t\t\t\t{local} = ({ctype})cm.Parameters[\"{@new}\"].Value;",column)); - } - } - if (tsCol != null) - output.write(FormatColumn("\r\n\t\t\t\t\treturn ({ctype})cm.Parameters[\"{@new}\"].Value;",tsCol)); - else - output.write("\r\n\t\t\t// No Timestamp value to return"); -%> - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.Add", ex); - throw new DbCslaException("<%=_className%>.Add", ex); - } - }<% -// DataPortal_Update -%> - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (!IsDirty) return; // If not dirty - nothing to do - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Update", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_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) - { - <%=_databaseLogError%>("<%=_className%>.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 - <%=_databaseLogDebug%>("[{0}] <%=_className%>.SQLUpdate", GetHashCode()); - try - {<%=sUpdateMyList%> - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "update<%=_className%>"; - // All Fields including Calculated Fields<% - foreach(IColumn column in Columns) - { - output.write(FormatColumn("\r\n\t\t\t\t\t\t{ifLogicP}cm.Parameters.AddWithValue(\"{@}\", {?dbprefix}{Parent}{?dbsuffix});",column)); - } -%> - // Output Calculated Columns<% - foreach(IColumn column in Columns) - { - if (column.IsComputed) - { - output.write(FormatColumn("\r\n\t\t\t\t\t\tSqlParameter param{member} = new SqlParameter(\"{@new}\", {sqltype});",column)); - output.write(FormatColumn("\r\n\t\t\t\t\t\tparam{member}.Direction = ParameterDirection.Output;",column)); - output.write(FormatColumn("\r\n\t\t\t\t\t\tcm.Parameters.Add(param{member});",column)); - } - } -%> - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure<% - foreach(IColumn column in Columns) - { - if (column.IsComputed) - { - output.write(FormatColumn("\r\n\t\t\t\t\t\t{member} = ({ctype})cm.Parameters[\"{@new}\"].Value;",column)); - } - } -%> - } - } - MarkOld(); - // use the open connection to update child objects<% - foreach(IColumn field in Columns) - { - if (field.IsInForeignKey && field.IsInPrimaryKey) - { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable == _workingTable){ - string sObjName; - if (!IsPrimaryKey(fk)){ - sObjName = FKClassesName( fk ) + GetAlias( fk ); -%> - if (<%=MemberName(sObjName)%> != null) <%=MemberName(sObjName)%>.Update(this);<% - } - else - { - sObjName = ClassName( fk.ForeignTable ); -%> - if (<%=MemberName("My" + sObjName)%> != null) <%=MemberName("My" + sObjName)%>.Update(this);<% - } - } - } - } - } -%> - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.SQLUpdate", ex); - _ErrorMessage = ex.Message; - if (!ex.Message.EndsWith("has been edited by another user.")) throw ex; - } - }<% -// Update - string sKeysTypesU=""; - string sKeysU=""; - string sValuesU=""; - string sepu=""; - foreach(IColumn column in Columns) - { - //if ((!column.IsComputed)) - //{ - // Commentted out the following two lines for Permissions - // if (!column.IsAutoKey) - //sValuesU+=FormatColumn("\r\n\t\t\t\t\t{ifLogicL}cm.Parameters.AddWithValue(\"{@}\", {parent}{?dbtype});",column); - sValuesU+=FormatColumn("\r\n\t\t\t\t\t{ifLogicl}cm.Parameters.AddWithValue(\"{@}\", {local});",column); - //if (IsParentCol(column)){ - // sKeysTypesU+= sepi + "/*1*/ " + _className + " my" + sParent; - // sKeysU+=sepi + "my" + sParent; - //} - //else - //{ - sKeysTypesU+=sepu + FormatColumn("{?ref}{ctype} {local}",column); - sKeysU+=sepu + FormatColumn("{?ref}{member}",column); - //} - sepu=", "; - //} - } - if (OneToOne(_workingTable)) // 20070314 - { - IForeignKey fk = _workingTable.PrimaryKeys[0].ForeignKeys[0]; - string sPrimaryTable = ClassName(fk.PrimaryTable); - string sPrimaryLocal = LocalName(sPrimaryTable); - string sInsert=""; - string sUpdate=""; - // string sDelete=""; - string sTimestamp=""; - sepu=""; - sepi=""; - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (column.DataTypeName=="timestamp") - sTimestamp=FormatColumn("{member} = ",column); - if (!IsIn(column,fk.ForeignColumns)) - { - string sRefI = ParentRef(column); - string sRefU = ParentRefU(column); - if (sRefI==null) - { - sRefI = FormatColumn("{?ref}{?dbprefix}{!propmember}{?dbsuff}",column); - sRefU = FormatColumn("{?ref}{?dbprefix}{member}{?dbsuff}",column); - } - sUpdate+=sepu + sRefU; - sepu=", "; - if (!column.IsComputed)// && !column.IsAutoKey - { - sInsert+=sepi+sRefI; - sepi=", "; - } - } - else - { - //string sRef = FormatColumn("{?dbprefix}{rmember}{?dbsuff}",RelatedColumn(column,fk)); - string sRef = sPrimaryLocal; - sInsert+=sepi + sPrimaryLocal; - sUpdate+=sepu + sPrimaryLocal + "." + FormatColumn("{?ref}{?dbprefix}{prop}{?dbsuff}",column); - sepi=", "; - sepu=", "; - //sepd=", "; - } - } -%> - internal void Update(<%=sPrimaryTable%> <%=sPrimaryLocal%>)<%=Debug("// 20071023.2a Update")%> - { - if (!this.IsDirty) return; - if (base.IsDirty) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (IsNew) - <%=sTimestamp%><%=_className%>.Add(cn, <%=sInsert%>); - else - <%=sTimestamp%><%=_className%>.Update(cn, <%=sUpdate%>); - MarkOld(); - } - }<% - } - else // 20070314 - { -// IForeignKey fk = _workingTable.PrimaryKeys[0].ForeignKeys[0]; -// string sPrimaryTable = ClassName(fk.PrimaryTable); -// string sPrimaryLocal = LocalName(sPrimaryTable); - string sInsert=""; - string sUpdate=""; - string sTimestamp=""; - sepu=""; - sepi=""; - foreach(IColumn column in Columns) - { - if (column.DataTypeName=="timestamp") - sTimestamp=FormatColumn("{member} = ",column); - //string sRef = FormatColumn("{?ref}{?dbprefix}{!member}{?dbsuff}",column); - string sRefI = FormatColumn("{?ref}{?dbprefix}{!member}{?dbsuff}",column); - string sRefU = FormatColumn("{?ref}{?dbprefix}{member}{?dbsuff}",column); - if (!column.IsComputed)// && !column.IsAutoKey - { - sInsert+=sepi+sRefI; - sepi=", "; - } - sUpdate+=sepu + sRefU; - sepi=", "; - sepu=", "; - } - string sDelete =""; - string sepdd = ""; - foreach(IColumn column in _workingTable.PrimaryKeys) - { - //if (IsIn(column,fk.ForeignColumns)) - //sDelete+=sepdd+FormatColumn("{!localcolumn}",column); - //sDelete+=sepdd+FormatColumn("{rmember}",RelatedColumn(column,fk)); - //else - sDelete+=sepdd+FormatColumn("{member}",column); - sepdd=", "; - } -%> - internal void Update()<%=Debug("// 20071023.2b Update")%> - { - if (!this.IsDirty) return; - if (base.IsDirty) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (IsNew) - <%=sTimestamp%><%=_className%>.Add(cn, <%=sInsert%>); - else - <%=sTimestamp%><%=_className%>.Update(cn, <%=sUpdate%>); - MarkOld(); - }<% - if (vlnChildObjects(Columns)) - { -%> - } - internal void DeleteSelf(<%=_className%> <%=_className.ToLower()%>) - { - // 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"]; - <%=_className%>.Remove(cn, <%=sDelete%>); - MarkNew();<% - } -%> - }<% - } -%> - [Transactional(TransactionalTypes.TransactionScope)] - public static <%=sRetval%> Update(SqlConnection cn, <%=sKeysTypesU%>) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "update<%=_className%>"; - // Input All Fields - Except Calculated Columns<%=sValuesU%> - // Output Calculated Columns<% - foreach(IColumn column in Columns) - { - if (column.IsComputed) - { - output.write(FormatColumn("\r\n\t\t\t\t\tSqlParameter param{member} = new SqlParameter(\"{@new}\", {sqltype});",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tparam{member}.Direction = ParameterDirection.Output;",column)); - output.write(FormatColumn("\r\n\t\t\t\t\tcm.Parameters.Add(param{member});",column)); - } - } -%> - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure<% - tsCol=null; - foreach(IColumn column in Columns) - { - if (column.IsComputed) - { - if (column.DataTypeName=="timestamp")tsCol=column; - else output.write(FormatColumn("\r\n\t\t\t\t\t{local} = ({ctype})cm.Parameters[\"{@new}\"].Value;",column)); - } - } - if (tsCol != null) - output.write(FormatColumn("\r\n\t\t\t\t\treturn ({ctype})cm.Parameters[\"{@new}\"].Value;",tsCol)); - else - output.write("\r\n\t\t\t\t// No Timestamp value to return"); -%> - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.Update", ex); - throw new DbCslaException("<%=_className%>.Update", ex); - } - }<% -// DataPortal_DeleteSelf -%> - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(<%=FormatColumns("{member}",_workingTable.PrimaryKeys,", ")%>)); - }<% -// DataPortal_Delete -%> - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "delete<%=_className%>";<% - output.write(FormatColumns("\r\n\t\t\t\t\t\t{ifLogic@}cm.Parameters.AddWithValue(\"{@}\", criteria.{prop}{?dbtype});" - ,_workingTable.PrimaryKeys,"")); -%> - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("<%=_className%>.DataPortal_Delete", ex); - } - }<% -// Delete - string sKeysTypesD=""; - string sValuesD=""; - string sepd=""; - foreach(IColumn column in _workingTable.PrimaryKeys) - { - sValuesD+=FormatColumn("\r\n\t\t\t\t\t{ifLogicL}cm.Parameters.AddWithValue(\"{@}\", {local}{?dbtype});",column); - sKeysTypesD+=sepd + FormatColumn("{ctype} {local}",column); - sepd=", "; - } -%> - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, <%=sKeysTypesD%>) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "delete<%=_className%>"; - // Input PK Fields<%=sValuesD%> - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.Remove", ex); - throw new DbCslaException("<%=_className%>.Remove", ex); - } - } - #endregion<% - } -private bool vlnChildObjects(IColumns Columns) -{ - bool retval = false; - foreach(IColumn field in Columns) - { - if (field.IsInForeignKey && field.IsInPrimaryKey) - { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable == _workingTable) - { - string sObjName; - if (!IsPrimaryKey(fk)){ // Items that use this table's Primary Key - sObjName = FKClassesName( fk ) + GetAlias( fk ); - if (fk.PrimaryTable == fk.ForeignTable)retval = true; -%> - if (<%=MemberName(sObjName)%> != null) <%=MemberName(sObjName)%>.Update(this);<% - } - else - { - sObjName = ClassName( fk.ForeignTable ); -%> - if (<%=MemberName("My" + sObjName)%> != null) <%=MemberName("My" + sObjName)%>.Update(this);<% - } - } - } - } - } - return retval; -} -private void vlnBrokenRuleObjects(IColumns Columns) -{ - foreach(IColumn field in Columns) - { - if (field.IsInForeignKey && field.IsInPrimaryKey) - { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable == _workingTable) - { - string sObjName; - if (!IsPrimaryKey(fk)) - { // Items that use this table's Primary Key - sObjName = FKClassesName( fk ) + GetAlias(fk); -%> - if (<%=MemberName(sObjName)%> != null && (hasBrokenRules = <%=MemberName(sObjName)%>.HasBrokenRules) != null) return hasBrokenRules;<% - } - else - { - string sMemberName = MemberName("My" + ClassName( fk.ForeignTable )+ GetNewAlias(fk,fk)); -%> - if (<%=sMemberName%> != null && (hasBrokenRules = <%=sMemberName%>.HasBrokenRules) != null) return hasBrokenRules;<% - } - } - } - } - else - { - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable != _workingTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - string sMemberName = MemberName("My" + ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk)); -%> - if (<%=sMemberName%> != null && (hasBrokenRules = <%=sMemberName%>.HasBrokenRules) != null) return hasBrokenRules;<% - } - } - } - } -} -private void vlnBrokenRuleObjects(IForeignKey myFk) -{ - IColumns Columns=myFk.ForeignTable.Columns; - // Exclude one to one & ForeignKey Relationship - foreach(IColumn field in Columns) - { - if (!field.IsInForeignKey || !field.IsInPrimaryKey) - { - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable != _workingTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - string sMemberName = MemberName("My" + ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk)); -%> - if (<%=sMemberName%> != null && (hasBrokenRules = <%=sMemberName%>.HasBrokenRules) != null) return hasBrokenRules;<% - } - } - } - } -} -private void vlnTest(IForeignKey myFk) // 20070517 -{ - IColumns Columns=myFk.ForeignTable.Columns; - // Exclude one to one & ForeignKey Relationship - foreach(IColumn field in Columns) - { - if (!field.IsInForeignKey || !field.IsInPrimaryKey) - { - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable != _workingTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - string sMemberName = MemberName("My" + ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk)); -%> - if (<%=sMemberName%> != null && (hasBrokenRules = <%=sMemberName%>.HasBrokenRules) != null) return hasBrokenRules;<% - } - } - } - } -} -private string RequiredRelatedColumn(IColumn field) -{ - if (!field.IsInPrimaryKey && !field.IsNullable) - { - foreach( IForeignKey fk in field.ForeignKeys ) - { - if (fk.PrimaryTable != _workingTable && IsPrimaryKey1(fk) && !IsPrimaryKey(fk)) - { - return "My" + ClassName(fk.PrimaryTable.Name) + GetNewAlias(fk,fk); - } - } - } - return null; -} -private void vlnDataPortalFetch(string sPrefix,IColumns cols,string sql,bool getChildren) - { -// DataPortal_Fetch -%> - private void DataPortal_Fetch(<%=sPrefix%>Criteria criteria) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - ApplicationContext.LocalContext["cn"] = cn; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "get<%=sql%>";<% - output.write(FormatColumns("\r\n\t\t\t\t\t\t{ifLogic@}cm.Parameters.AddWithValue(\"{@}\", criteria.{prop}{?dbtype});" - ,cols,"")); -%> - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr);<% - // Read members - //output.write(FormatColumns(dicRead,Columns,"","\r\n\t\t\t\t\t\t\t")); - //dicRead1 = new Hashtable(); - //dicRead1["timestamp"]="\r\n\t\t\t\t\t\tdr.GetBytes(\"{name}\", 0, {member}, 0, 8);";// CSLATODO: Need to handle TimeStamp - //output.write(FormatColumns(dicRead1,Columns,"")); -// if (_workingTable != fk.ForeignTable) -// FKSelect(fk,tbl); - // CSLATODO: Fix This See Below -// foreach(IColumn field in Columns) -// { -// if (field.IsInForeignKey && field.IsInPrimaryKey) -// { - //A column that's in a fk and in the pk represents a fk relationship - //from another table, a one-to-many relationship. (This might be - //a bad assumption for a table with a composite primary key.) - //... and then we have to add collections for the foreign tables. -// foreach( IForeignKey fk in field.ForeignKeys ) - if (getChildren) - { - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey fk in _workingTable.ForeignKeys) - { - if (fk.PrimaryTable == _workingTable){ - //string sAlias = GetAlias(dicAlias,fk.ForeignTable); - string sAlias = GetAlias(fk); - string sObjName=""; - if (!IsPrimaryKey(fk)){ - sObjName = FKClassesName( fk ) + GetAlias(fk); - string sExtra = FKAndString(_className, fk, ", this" ); -// else -// sObjName = ClassName( fk.ForeignTable ); - if (fk.PrimaryTable != fk.ForeignTable){ -%> - // load child objects - dr.NextResult(); - <%=MemberName(sObjName)%> = <%=sObjName%>.Get(dr<%=sExtra%>);<% - } - } - else - { - sObjName = ClassName( fk.ForeignTable ); -%> - // load child objects - dr.NextResult(); - <%=MemberName("My" + sObjName)%> = <%=sObjName%>.Get(dr);<% -// if (<%=MemberName("My" + sObjName) + sAlias == null) -// =MemberName("My" + sObjName) + sAlias = <%=sObjName.New(=FormatColumns("criteria.{prop}",fk.ForeignTable.PrimaryKeys,", ","") - } - } - } - } -// } -// } -%> - } - } - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("<%=_className%>.DataPortal_Fetch", ex); - } - }<% - } - private void vlnExists(IColumns Columns ) - { - string sValues=FormatColumns("\t\t\t\t{member} = {local};",_workingTable.PrimaryKeys,"\r\n"); - string sKeysTypes=FormatColumns("{ctype} {local}",_workingTable.PrimaryKeys,", "); - string sKeys=FormatColumns("{local}",_workingTable.PrimaryKeys,", "); - string sDeclare=FormatColumns("\r\n\t\t\tprivate {ctype} {member};",_workingTable.PrimaryKeys,""); - string sParams=FormatColumns("\r\n\t\t\t\t\t\t\t{ifLogicP}cm.Parameters.AddWithValue(\"{@}\", {?dbprefix}{member}{?dbsuffix});",_workingTable.PrimaryKeys,"");; -%> - #region Exists - public static bool Exists(<%=sKeysTypes%>) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(<%=sKeys%>)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - {<%=sDeclare%> - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(<%=sKeysTypes%>) - { -<%=sValues%> - } - protected override void DataPortal_Execute() - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "exists<%=_className%>";<%=sParams%> - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Execute", ex); - throw new DbCslaException("<%=_className%>.DataPortal_Execute", ex); - } - } - } - #endregion<% - } - private void vlnInfoExtension(IColumns columns) - { -%> - // Standard Refresh - #region extension - <%=_className%>Extension <%=MemberName(_className)%>Extension = new <%=_className%>Extension(); - [Serializable()] - partial class <%=_className%>Extension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(<%=_className%> tmp) { } - } - #endregion<% - } - private void vlnDefaults(IColumns columns) - { -%> - // Standard Default Code - #region extension - <%=extName%> <%=extMName%> = new <%=extName%>(); - [Serializable()] - partial class <%=extName%> : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values<% - foreach(IColumn column in HasDefaults(columns)) - { - string sConvert ="{default}"; - if (FormatColumn("{rtype}",column).StartsWith("bool"))sConvert="Convert.ToBoolean({default})"; -%> - public virtual <%=FormatColumn("{rtype} Default{prop}",column)%> - { - get { return <%=FormatColumn(sConvert,column)%>; } - }<% - } -%> - // 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<% - } - private void vlnExtension(IColumns columns) - { -%> - -//// The following is a sample Extension File. You can use it to create <%=_className%>Ext.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace <%=_nameSpace%> -//{ -// public partial class <%=_className%> -// { -// partial class <%=_className%>Extension : extensionBase -// { -// // CSLATODO: Override automatic defaults<% - foreach(IColumn column in HasDefaults(columns)) - { -%> -// public virtual <%=FormatColumn("{ctype} Default{prop}",column)%> -// { -// get { return <%=FormatColumn("{default}",column)%>; } -// }<% - } -%> -// 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 */); -// } -// } -// } -//} -<% - } - //private bool IsValueType( string type ) - //{ - // switch( type ) - // { - // case "sbyte": - // case "byte": - // case "short": - // case "ushort": - // case "int": - // case "uint": - // case "long": - // case "ulong": - // case "char": - // case "float": - // case "double": - // case "bool": - // case "decimal": - // case "DateTime": - // return true; - // break; - // - // default: - // return false; - // break; - // } - //} - - - private void vlnBusinessMethodsFKList(IForeignKey fk,string sAlias) - { -%> - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - }<% - //string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - //string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sFkClassListName = _className; - string sFkClassName = _subclassName; - string slName=LocalName(ClassName(fk.ForeignTable)); - ArrayList fkCols = new ArrayList(); - //output.write("\r\n// FK.P " + fk.PrimaryTable.Name + " FK.F " +fk.ForeignTable.Name); - bool bManyToMany = false; -// if (fk.ForeignTable != fk.PrimaryTable) -// { -// foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) -// { -// //output.write("\r\n// PK.P " + pk.PrimaryTable.Name + " PK.F " +pk.ForeignTable.Name); -// if (pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable && ForeignRequired(pk)) -// { -// foreach(IColumn col in pk.ForeignColumns){ -// //output.write("\r\n// col " + col.Name + " IsInPrimaryKey " + col.IsInPrimaryKey.ToString()); -// //if (col.IsInPrimaryKey) -// if (!col.IsNullable){ -// fkCols.Add(col); -// } -// } -// } -// } -// } - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if (!bManyToMany && ManyToMany(_workingTable,fk,pk)) - { - bManyToMany = true; - foreach(IColumn col in pk.ForeignColumns) - if (!col.IsNullable) fkCols.Add(col); - } - } -// fkCols = new ArrayList(); - if (fkCols.Count == 0){ -// bManyToMany = false; -%> - // One To Many<% - foreach(IColumn col in fk.ForeignTable.PrimaryKeys) - { - if (!IsIn(col,fk.ForeignColumns)) - fkCols.Add(col); - } - } - else - { -%> - // Many To Many<% - } - string sTestTypes = FormatColumns("{!type}",fkCols,", "); - string sFkKeysTypes = FormatColumns("{!type} {!local}",fkCols,", "); - string sFkKeys = FormatColumns("{!local}",fkCols,", "); - string sFkCheck = FormatColumns(slName +".{prop} == {!localcolumn}",fkCols," && "); - string sReqKeysCheck= ""; - string sKeysTypes=""; - string sKeys=""; - //string sValues=""; - //string sValues2=""; - //string sep=""; - string sep2=""; - string sep3=""; - string reqKeys=""; - string reqKeysTypes=""; - ArrayList reqCols = new ArrayList(); - ArrayList uniqueChildren = FindUniqueChildren(fk); - bool bParentRef=false; - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - // 20070220 - // sKeysTypes+=sep+FormatColumn("{ctype} {local}",column); - // sKeys+=sep+FormatColumn("{local}",column); - if (!IsIn(column,fk.ForeignColumns)) - { - sKeysTypes+=sep2+FormatColumn("{!type} {!local}",column); - sKeys+=sep2+FormatColumn("{!local}",column); - sReqKeysCheck+=sep3+FormatColumn(slName +".{prop} == {local}",column); - reqKeys+=sep2+FormatColumn("{!local}",column); - reqKeysTypes+=sep2+FormatColumn("{!type} {!local}",column); - reqCols.Add(column); - sep2=", "; - sep3=" && "; - } else { - if (!bParentRef && FKParentFK(_workingTable) == fk){ -// WriteLine("\r\n\r\n// 20070305 Column {0}\r\n",column.Name); - reqKeys="my"+ParentName(fk)+sep2+reqKeys; - reqKeysTypes=FormatColumn("{ParentType}",column)+sep2+reqKeysTypes; - sep2=", "; - bParentRef=true; - } - } - //sValues+=sep+RelatedObject(column); - //sValues2+=sep+RelatedObjectType(column); - //sep=", "; - } - } - string reqKeysContain = (SameList(reqCols,fkCols)?sFkKeys:reqKeys); - IList uniqueMatch = FindUnique(uniqueChildren,reqCols); - //if (uniqueMatch != null)WriteLine("\r\n//20090108 - \r\n\tuniqueMatch {0}\r\n\treqCols {1}", ColumnListToString(uniqueMatch),ColumnListToString(reqCols) ); - string newString = (fkCols.Count==1 && sTestTypes == "int" ? "new " : ""); -%> - public <%=newString%><%=sFkClassName%> this[<%=sFkKeysTypes%>] - { - get - { - foreach (<%=sFkClassName%> <%=slName%> in this) - if (<%=sFkCheck%>) - return <%=slName%>; - return null; - } - } - public new System.Collections.Generic.IList<<%=sFkClassName%>> Items - { - get { return base.Items; } - } - public <%=sFkClassName%> GetItem(<%=sFkKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in this) - if (<%=sFkCheck%>) - return <%=slName%>; - return null; - }<% - if (bManyToMany) - { - if (reqKeys!=""){ // Has Required Fields -%> - public <%=sFkClassName%> Add(<%=reqKeysTypes%>)// Many to Many with required fields - { - if (!Contains(<%=sFkKeys%>)) - { - <%=sFkClassName%> <%=slName%> = <%=sFkClassName%>.New(<%=reqKeys%>); - this.Add(<%=slName%>); - return <%=slName%>; - } - else - throw new InvalidOperationException("<%=slName%> already exists"); - }<% - } - else - { - if (uniqueMatch != null && uniqueMatch.Count > 1) - { -%> - public <%=sFkClassName%> Add(<%=reqKeysTypes%>)// Many to Many with unique fields - { - if (!Contains(<%=FormatColumns("{local}",uniqueMatch,", ","")%>)) - { - <%=sFkClassName%> <%=slName%> = <%=sFkClassName%>.New(<%=reqKeys%>); - this.Add(<%=slName%>); - return <%=slName%>; - } - else - throw new InvalidOperationException("<%=slName%> already exists"); - }<% - } - else - { -%> - public <%=sFkClassName%> Add(<%=reqKeysTypes%>)// Many to Many with no required fields - { - <%=sFkClassName%> <%=slName%> = <%=sFkClassName%>.New(<%=reqKeys%>); - this.Add(<%=slName%>); - return <%=slName%>; - }<% - } - } - } - else // One to Many - { - // If Child add parent 20070221 - - string sParent = ""; - string sParentUse = ""; - //if ("Child" + ClassesName(sFkClassName) == _className) - //{ - // sParent = sFkClassName + " parent, "; - // sParentUse = "parent, "; - //} - if (uniqueMatch != null) - { -%> - public <%=sFkClassName%> Add(<%=reqKeysTypes%>) // One to Many with unique fields - { - if (!Contains(<%=FormatColumns("{!local}",uniqueMatch,", ","")%>)) - { - <%=sFkClassName%> <%=slName%> = <%=sFkClassName%>.New(<%=reqKeys%>); - this.Add(<%=slName%>); - return <%=slName%>; - } - else - throw new InvalidOperationException("<%=slName%> already exists"); - }<% - } - else - { -%> - public <%=sFkClassName%> Add(<%=sParent%><%=sKeysTypes%>) // One to Many - { - <%=sFkClassName%> <%=slName%> = <%=sFkClassName%>.New(<%=sParentUse%><%=sKeys%>); - this.Add(<%=slName%>); - return <%=slName%>; - }<% - } - } - if(fkCols.Count == 1 && uniqueMatch != null && uniqueMatch.Count == 1 && fkCols[0]==uniqueMatch[0]) - uniqueMatch=null; -%> - public void Remove(<%=sFkKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in this) - { - if (<%=sFkCheck%>) - { - Remove(<%=slName%>); - break; - } - } - } - public bool Contains(<%=sFkKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in this) - if (<%=sFkCheck%>) - return true; - return false; - } - public bool ContainsDeleted(<%=sFkKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in DeletedList) - if (<%=sFkCheck%>) - return true; - return false; - } - public bool IsDirtyList(List list) - { - // any non-new deletions make us dirty - foreach (<%=sFkClassName%> item in DeletedList) - if (!item.IsNew) - return true; - // run through all the child objects - // and if any are dirty then then - // collection is dirty - foreach (<%=sFkClassName%> child in this) - if (child.IsDirtyList(list)) - return true; - return false; - } - public override bool IsValid - { - get { return IsValidList(new List()); } - } - public bool IsValidList(List list) - { - // run through all the child objects - // and if any are invalid then the - // collection is invalid - foreach (<%=sFkClassName%> child in this) - if (!child.IsValidList(list)) - { - //Console.WriteLine("Valid {0} Child {1} - {2}", child.IsValid, child.GetType().Name,child.ToString()); - return false; - } - return true; - }<% - foreach(IList lst in uniqueChildren){ - if (!SameTypes(lst,fkCols)){ // Has Required Fields 20070302 - if(lst.Count == 1 && uniqueMatch != null && uniqueMatch.Count == 1 && lst[0]==uniqueMatch[0]) - uniqueMatch=null; - string sLstKeysTypes = FormatColumns("{ctype} {local}",lst,", "); -// string sKeys = FormatColumns("{local}",lst,", "); - string sLstCheck = FormatColumns(slName +".{prop} == {local}",lst," && "); -%> - public bool Contains(<%=sLstKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in this) - if (<%=sLstCheck%>) - return true; - return false; - } - public bool ContainsDeleted(<%=sLstKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in DeletedList) - if (<%=sLstCheck%>) - return true; - return false; - }<% - } - } - if(uniqueMatch != null && uniqueMatch.Count == 1) - { - IColumn col =(IColumn)uniqueMatch[0]; - string sLstKeysTypes = FormatColumn("{!type} {!local}",col); - string sLstCheck = FormatColumn(slName +".{prop} == {!local}.{!column}",col); -%> - public bool Contains(<%=sLstKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in this) - if (<%=sLstCheck%>) - return true; - return false; - } - public bool ContainsDeleted(<%=sLstKeysTypes%>) - { - foreach (<%=sFkClassName%> <%=slName%> in DeletedList) - if (<%=sLstCheck%>) - return true; - return false; - }<% - } -%> - #endregion<% - } - private void vlnFactoryMethodsFKList(IForeignKey fk,string sAlias) - { - //string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - //string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sFkClassListName = _className; - string sFkClassName = _subclassName; - string sExtra1=""; - string sExtra2=""; - if (fk.PrimaryTable == fk.ForeignTable){ - sExtra1=", " + _subclassName + " parent"; - sExtra2=", parent"; - } - -%> - #region Factory Methods - internal static <%=sFkClassListName%> New() - { - return new <%=sFkClassListName%>(); - } - internal static <%=sFkClassListName%> Get(SafeDataReader dr<%=sExtra1%>) - { - return new <%=sFkClassListName%>(dr<%=sExtra2%>); - }<% -// if (fk.PrimaryTable==fk.ForeignTable) -// { - // Get Children 20070205 - string sBy = FormatColumns("{name}",fk.ForeignColumns,"_",""); - string sKeyTypes = FormatColumns("{ctype1} {local}",fk.ForeignColumns,",",""); - string sKeys = FormatColumns("{local}",fk.ForeignColumns,",",""); -%> - public static <%=sFkClassListName%> GetBy<%=sBy%>(<%=sKeyTypes%>) - { - try - { - return DataPortal.Fetch<<%=sFkClassListName%>>(new <%=sBy%>Criteria(<%=sKeys%>)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=sFkClassListName%>.GetBy<%=sBy%>", ex); - } - }<% -// } -%> - private <%=sFkClassListName%>() - { - MarkAsChild(); - } - internal <%=sFkClassListName%>(SafeDataReader dr<%=sExtra1%>) - { - MarkAsChild(); - Fetch(dr<%=sExtra2%>); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~<%=sFkClassListName%>() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - } - #endregion<% - } - private void vlnDataAccessPortalFKList(IForeignKey fk,string sAlias) - { - //string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - //string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sFkClassListName = _className; - string sFkClassName = _subclassName; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); - string sExtra1=""; - string sExtra2=""; - if (fk.PrimaryTable == fk.ForeignTable){ - sExtra1=", " + _subclassName + " parent"; - sExtra2=", parent"; - } -%> - #region Data Access Portal - // called to load data from the database - private void Fetch(SafeDataReader dr<%=sExtra1%>) - { - this.RaiseListChangedEvents = false; - while (dr.Read()) - this.Add(<%=sFkClassName%>.Get(dr<%=sExtra2%>)); - this.RaiseListChangedEvents = true; - }<% - string sClassF = ClassName(fk.ForeignTable); - string sClassP = FormatColumns("{name}",fk.ForeignColumns,"_",""); - string sBy = ClassesName(fk.ForeignTable) + "By" + FormatColumns("{name}",fk.ForeignColumns,"_",""); - string sSelfParam = ""; - if (fk.ForeignTable == fk.PrimaryTable) - { - sBy = ChildName(fk) + ClassesName(_workingTable); - sSelfParam = ", " + FormatColumns("criteria.{prop}",fk.ForeignColumns,"",""); - } - string sKeyTypes = FormatColumns("{ctype1} {local}",fk.ForeignColumns,",",""); -%> - [Serializable()] - private class <%=sClassP%>Criteria - { - public <%=sClassP%>Criteria(<%=sKeyTypes%>) - { -<%=FormatColumns("{member} = {local};",fk.ForeignColumns,"\r\n","\t\t\t\t")%> - }<% - foreach(IColumn c in fk.ForeignColumns) - { - string sMember=FormatColumn("{member}",c); - string sProp=FormatColumn("{prop}",c); - string sType=FormatColumn("{ctype1}",c); -%> - private <%=sType%> <%=sMember%>; - public <%=sType%> <%=sProp%> - { - get { return <%=sMember%>; } - set { <%=sMember%> = value; } - }<% - } -%> - } - private void DataPortal_Fetch(<%=sClassP%>Criteria criteria) - { - this.RaiseListChangedEvents = false; - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Fetch<%=sClassP%>", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "get<%=sBy%>"; - <%=FormatColumns("{ifLogic@}cm.Parameters.AddWithValue(\"{@}\", " + "criteria.{prop});",fk.ForeignColumns,"\r\n\t\t\t","")%> - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new <%=_subclassName%>(dr<%=sSelfParam%>)); - } - } - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Fetch<%=sClassP%>", ex); - throw new DbCslaException("<%=_className%>.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - }<% - - // Insert 20070205a -%> - internal void Update(<%=sPrimaryTable%> <%=sPrimaryLocal%>)<%=Debug("// 20071023.3 Update")%> - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (<%=sFkClassName%> obj in DeletedList) - obj.DeleteSelf(<%=sPrimaryLocal%>);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (<%=sFkClassName%> obj in this) - {<% -// Logic changes for children - if (fk.PrimaryTable == fk.ForeignTable) - { -%> - if (obj.IsNew) - obj.SQLInsert(); - else - obj.SQLUpdate();<% - } else { -%> - if (obj.IsNew) - obj.Insert(<%=sPrimaryLocal%>); - else - obj.Update(<%=sPrimaryLocal%>);<% - } -%> - } - } - finally - { - this.RaiseListChangedEvents = true; - } - } - #endregion<% - } - private void vlnComponentModelFKList() - { -%> - #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 - <%=_className%>PropertyDescriptor pd = new <%=_className%>PropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion<% - } - private void vlnPropertyDescriptorFKList1() - { -%> - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class <%=_className%>PropertyDescriptor : PropertyDescriptor - { - private <%=_subclassName%> _Item = null; - public <%=_className%>PropertyDescriptor(<%=_className%> collection, int index):base("#" + index.ToString(), null) - { - _Item = collection.Items[index]; - } - public override bool CanResetValue(object component) - { return true; } - public override Type ComponentType - { - get { return _Item.GetType(); } - } - public override object GetValue(object component) - { return _Item; } - public override bool IsReadOnly - { - get { return false; } - } - public override Type PropertyType - { - get { return _Item.GetType(); } - } - public override void ResetValue(object component) - { ;} - public override bool ShouldSerializeValue(object component) - { return true; } - public override void SetValue(object component, object value) - { /*_Item = value*/;} - - //public override AttributeCollection Attributes - //{ - // get - // { - // return new AttributeCollection(null); - // } - //} - //public override string DisplayName - //{ - // get { return this.collection.Items[index].ToString(); } - //} - //public override string Description - //{ - // get - // { return this.collection.Items[index].ToString(); } - //} - //public override string Name - //{ - // get { return "#" + index.ToString(); } - //} - } - #endregion<% - } - private void vlnPropertyDescriptorFKList() - { -%> - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class <%=_className%>PropertyDescriptor : vlnListPropertyDescriptor - { - private <%=_subclassName%> Item { get { return (<%=_subclassName%>)_Item; } } - public <%=_className%>PropertyDescriptor(<%=_className%> collection, int index) : base(collection, index) { ;} - } - #endregion<% - } - private void vlnListPropertyDescriptor() - { - %> - public partial class vlnListPropertyDescriptor : PropertyDescriptor - { - protected object _Item = null; - public vlnListPropertyDescriptor(System.Collections.IList collection, int index) - : base("#" + index.ToString(), null) - { _Item = collection[index]; } - public override bool CanResetValue(object component) - { return true; } - public override Type ComponentType - { get { return _Item.GetType(); } } - public override object GetValue(object component) - { return _Item; } - public override bool IsReadOnly - { get { return false; } } - public override Type PropertyType - { get { return _Item.GetType(); } } - public override void ResetValue(object component) - { ;} - public override bool ShouldSerializeValue(object component) - { return true; } - public override void SetValue(object component, object value) - { /*_Item = value*/;} - //public override AttributeCollection Attributes - //{ get { return new AttributeCollection(null); } } - public override string DisplayName - { get { return _Item.ToString(); } } - public override string Description - { get { return _Item.ToString(); } } - public override string Name - { get { return _Item.ToString(); } } - } // Class<% - } - private void vlnConvertorFKList(string sDisplayName) - { -%> - #region Converter - internal class <%=_className%>Converter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is <%=_className%>) - { - // Return department and department role separated by comma. - return ((<%=_className%>)value).Items.Count.ToString() + " <%=sDisplayName%>"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion<% - } - private void vlnBusinessMethodsFKItem(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); -%> - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - }<% - // Foreign Key Table Fields - string sKey=""; - string sep=""; - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (!IsIn(column,fk.ForeignColumns)) - { - bool bReadOnly = column.IsInPrimaryKey || column.IsAutoKey || column.IsComputed; - string sCheck=(IsRelObj(column)?FormatColumn("\r\n\t\t\t\tif ({!member} != null) {member} = {!member}.{!column};",column):null); - vlnProperty(CSLAType( column ),MemberName(column) - ,PropertyName(column),InitializeValue( column ),GetDescription(column),bReadOnly || IsRelObj(column),column.IsInPrimaryKey,false,null,sCheck,null,null); - vlnRelObjProperty(column,bReadOnly,false); - if (column.IsInPrimaryKey){ - sKey+=sep+MemberName(column); - sep=".ToString() + "; - } - } - if ((sep != "") && (sKey.IndexOf(sep) > 0)) - sKey="(" + sKey + ".ToString()).GetHashCode()"; - } - // Foreign Key Related Table Fields // 20070220 - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if (pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable.Name != pk.ForeignTable.Name && ForeignRequired(pk)) - { - //sAlias = GetAlias(dicAlias,pk.PrimaryTable); - sAlias = GetAlias(pk); - foreach(IColumn column in pk.PrimaryTable.Columns) - { - if ((!IsIn(column,pk.PrimaryColumns)) && (column.DataTypeName != "timestamp")) - { - string sProp = ClassName(pk.PrimaryTable) + sAlias + "_" + PropertyName(column); - vlnProperty(CSLAType( column ),MemberName(sProp) - ,sProp,InitializeValue( column ),GetDescription(column),true,column.IsInPrimaryKey,false,null,null,null,null); - } - } - } - } -// if (sKey == "")sKey="base.GetIdValue()"; -%> - // CSLATODO: Check <%=sFkClassName%>.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 <%=sFkClassName%> - protected override object GetIdValue() - { - return My<%=_className%>Unique; // Absolutely Unique ID - } - // CSLATODO: Replace base <%=sFkClassName%>.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current <%=sFkClassName%> - //public override string ToString() - //{ - // return base.ToString(); - //}<% - // IsValid and IsDirty - string sExtDirty = ""; - string sExtValid = ""; - foreach(IColumn col in fk.ForeignTable.Columns) - { - string sColumn = RequiredRelatedColumn(col); - if (sColumn != null){ // Let the Validation Rules handle IsDirty and IsValid - LazyLoad should be ignored. - sExtDirty += string.Format(" || ({0} == null ? false : {0}.IsDirtyList(list))",MemberName(sColumn)); - sExtValid += string.Format(" && ({0} == null ? true : {0}.IsValidList(list))",MemberName(sColumn)); - } - } - //if (sExtDirty!="") - vlnDirty(sExtDirty); - vlnValid(sExtValid); -%> - #endregion<% - } - private void vlnValidationRulesFKList(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName; - if (fk.PrimaryTable == fk.ForeignTable) - sFkClassName = ClassName( fk.ForeignTable ) + sAlias; - else - sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - //string sPrimaryLocal = LocalName(sPrimaryTable); - string sPrimaryLocal = LocalName(sFkClassName); -%> - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - {<%=Debug("20070509.vlnValidationRulesFKList")%> - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (<%=sFkClassName%> <%=sPrimaryLocal%> in this) - if ((hasBrokenRules = <%=sPrimaryLocal%>.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - #endregion<% - } - private void vlnValidationRulesFKItem(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); -%> - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - {<%=Debug("20070509.vlnValidationRulesFKItem")%> - get - { - if (_CheckingBrokenRules) return null; - if (BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null;<% - vlnBrokenRuleObjects(fk); -%> - 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() - {<% - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (!(IsIn(column,fk.ForeignColumns) || column.IsInPrimaryKey || column.IsAutoKey || column.IsComputed)) - { - if (column.LanguageType=="string") - { - vlnAddRequired(column); - if (column.CharacterMaxLength < 2147483647) - vlnAddMaxLength(PropertyName(column),column.CharacterMaxLength); - } - if (CSLAType( column )=="SmartDate") - { - vlnAddRequired(column); - string sName = PropertyName(column); -%> - ValidationRules.AddRule<<%=_className%>>(<%=sName%>Valid, "<%=sName%>");<% - } - string sObjectRequired = RequiredRelatedColumn(column); - if (sObjectRequired != null) - { -%> - ValidationRules.AddRule<<%=_className%>>(<%=sObjectRequired%>Required, "<%=sObjectRequired%>");<% - } - } - } -%> - // CSLATODO: Add other validation rules - }<% - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (!(IsIn(column,fk.ForeignColumns) || column.IsInPrimaryKey || column.IsAutoKey || column.IsComputed)) - { - if (CSLAType( column )=="SmartDate") - { - string sName = PropertyName(column); - string sMember = MemberName(column); -%> - private static bool <%=sName%>Valid(<%=_className%> target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target.<%=sMember%>); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - }<% - } - } - } - foreach(IColumn col in fk.ForeignTable.Columns) - { - string sColumn = RequiredRelatedColumn(col); - if (sColumn != null){ // Let the Validation Rules handle required fields - string sMemberRaw = MemberName(col); - string sMemberReq = MemberName(sColumn); -%> - private static bool <%=sColumn%>Required(<%=_className%> target, Csla.Validation.RuleArgs e) - { - if (target.<%=sMemberRaw%> == 0 && target.<%=sMemberReq%> == 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<% - } - private void vlnAuthorizationRulesFKItem(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); -%> - #region Authorization Rules - protected override void AddAuthorizationRules() - { - //CSLATODO: Who can read/write which fields<% - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (!(IsIn(column,fk.ForeignColumns)) && column.DataTypeName != "timestamp") - { -%> - //AuthorizationRules.AllowRead(<%=PropertyName(column)%>, "");<% - if (!(column.IsInPrimaryKey || column.IsAutoKey || column.IsComputed)) - { -%> - //AuthorizationRules.AllowWrite(<%=PropertyName(column)%>, "");<% - } - } - } -%> - } - public static bool CanAddObject() - { - // CSLATODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // CSLATODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // CSLATODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // CSLATODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion<% - } - private void vlnFactoryMethodsFKItem(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); - string sKeysTypes=""; - string sKeys=""; - string sValues=""; - string sValues2=""; - string sep=""; - string sInit=""; - string sep2=""; - Hashtable dicAlias = new Hashtable(); - ArrayList pks = new ArrayList(); - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (!IsIn(column,fk.ForeignColumns)) - { - if (IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - sKeysTypes+=sep+FormatColumn("{!type} {!local}",column); - sKeys+=sep+FormatColumn("{!local}",column); - if (IsRelObj(column)) - sValues+=sep + FormatColumn("{!local}",column); // 20070301 - else - sValues+=sep+RelatedObject(fk,column); - if (IsRelObj(column)) - sValues2+=sep + FormatColumn("{!type} {!local}",column); // 20070301 - else - sValues2+=sep + RelatedObjectType2(fk,column); // 20070301 - foreach(IForeignKey pk in column.ForeignKeys) - if (!pks.Contains(pk)) - { - pks.Add(pk.Name); - //sValues2+=" /* " + pk.Name + " */ "; - } - sep=", "; - if (!column.IsInForeignKey || IsRelObj(column)){ - //if (CSLAType(column)=="SmartDate") - // sInit+=sep2 + FormatColumn("\t\t{member} = new SmartDate({local});",column); - //else - if (IsRelObj(column)) - sInit+=sep2 + FormatColumn("\t\t\t{!member} = {!local};",column); - else - sInit+=sep2 + FormatColumn("\t\t\t{member} = {local};",column); - sep2="\r\n"; - } - else - { - IForeignKey pk = column.ForeignKeys[0]; - if (pk == FKParentFK(column.Table)) - { - IColumn colf = RelatedColumnF(column,pk); - if (colf != null){ - sInit+=sep2 + FormatColumn("\t\t\t{member} = ",column) + FormatColumn("{rmember};",colf); - sep2="\r\n"; - } - } - } - } - } - } - // Foreign Key Related Table Fields - //Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if (pks.Contains(pk.Name) && pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable.Name != pk.ForeignTable.Name && pk.Name != fk.Name && ForeignRequired(pk)) - { - //sAlias = GetAlias(dicAlias,pk.PrimaryTable); - sAlias = GetNewAlias(fk,pk); - foreach(IColumn column in pk.PrimaryTable.Columns) - { - IColumn col = RelatedColumn(column,pk); - col =col.Table.Columns[col.Name]; - if (!IsRelObj(col)) - { - string sProp = ClassName(pk.PrimaryTable) + sAlias + "_" + PropertyName(column); - string sLocal = LocalName(ClassName(pk.PrimaryTable))+ sAlias; - string sMember = MemberName(sProp); - if (IsIn(column,pk.PrimaryColumns)) - { - sInit+=sep2 + "\t\t\t" + MemberName(RelatedColumn(column,pk)) + " = " + sLocal + "." + PropertyName(column) + ";"; - sep2="\r\n"; - } - else - { - if (pk.PrimaryTable != fk.PrimaryTable) - { - if (column.DataTypeName != "timestamp"){ - if (CSLAType(column)=="SmartDate") - sInit+=sep2 + "\t\t\t" + sMember + " = new SmartDate(" + sLocal + "." + PropertyName(column) + ");"; - else - sInit+=sep2 + "\t\t\t" + sMember + " = " + sLocal + "." + PropertyName(column) + ";"; - sep2="\r\n"; - } - } - } - } - } - } - else - { - // WriteLine("pk={0} f={1} p={2}",pk.Name,pk.ForeignTable.Name,pk.PrimaryTable.Name); - } - } -%> - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _<%=_className%>Unique = 0; - private static int <%=_className%>Unique - { get { return ++_<%=_className%>Unique; } } - private int _My<%=_className%>Unique = <%=_className%>Unique; - public int My<%=_className%>Unique // Absolutely Unique ID - Editable FK - { get { return _My<%=_className%>Unique; } } - internal static <%=sFkClassName%> New(<%=sKeysTypes%>) - { - return new <%=sFkClassName%>(<%=sValues%>); - } - internal static <%=sFkClassName%> Get(SafeDataReader dr) - { - return new <%=sFkClassName%>(dr); - } - public <%=sFkClassName%>() - { - MarkAsChild(); -<%=FormatColumns("{member} = {class}.Next{prop};",AutoKey(fk),"\r\n","\t\t\t")%> -<%=FormatColumns("{member} = " + extMName + ".Default{prop};",HasDefaults(fk),"\r\n","\t\t\t")%> - ValidationRules.CheckRules(); - }<% - if (sValues2 != "") { - //if (sInit=="")sInit = "// No Initialization"; - //else sInit = "// Initialization\r\n" + sInit; -%> - private <%=sFkClassName%>(<%=sValues2%>) - { - MarkAsChild(); - // CSLATODO: Add any initialization & defaults -<%=FormatColumns("\t\t\t{member} = {class}.Next{prop};\r\n",AutoKey(fk),"","")%><%=FormatColumns("{member} = " + extMName + ".Default{prop};",HasDefaults(fk),"\r\n","\t\t\t")%> -<%=sInit%> - ValidationRules.CheckRules(); - }<% - } -%> - internal <%=sFkClassName%>(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~<%=sFkClassName%>() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - } - #endregion<% - } - private void vlnDataAccessPortalFKItem(IForeignKey fk,string sAlias) - { - string sFkClassListName = ClassName( fk.PrimaryTable ) + ClassesName( fk.ForeignTable ) + sAlias; - string sFkClassName = ClassName( fk.PrimaryTable ) + ClassName( fk.ForeignTable ) + sAlias; - string sPrimaryTable = ClassName( fk.PrimaryTable ); - string sPrimaryLocal = LocalName(sPrimaryTable); - IColumn colf1 = fk.ForeignColumns[0]; - colf1=colf1.Table.Columns[colf1.Name]; - sPrimaryLocal = FormatColumn("{!local}",colf1); - string sClassName = ClassName( fk.ForeignTable ); - //string sKeysTypes=""; - //string sKeys=""; - //string sValues=""; - //string sValues2=""; - string sepi=""; - string sepu=""; - string sepd=""; - string sepr=""; - string sRead=""; - string sInsert=""; - string sUpdate=""; - string sDelete=""; - string sTimestamp=""; - try - { - foreach(IColumn column in fk.ForeignTable.Columns) - { - if (column.DataTypeName=="timestamp") - sTimestamp=FormatColumn("{member} = ",column); - if (!IsIn(column,fk.ForeignColumns)) - { - sRead+=sepr+FormatColumn(dicRead,column,"\t\t\t\t",""); - sepr="\r\n"; - string sRefI = ParentRef(column); - string sRefU = ParentRefU2(column); - if (sRefI==null) - { - if (column.IsComputed || column.IsAutoKey) - sRefU = sRefI = FormatColumn("ref {?dbprefix}{member}{?dbsuff}",column); - else - //if (column.IsInPrimaryKey) // 20070326 - // sRef=FormatColumn("{?dbprefix}{!membercolumn}{?dbsuff}",column);// 20070323 - //else - if (FormatColumn("{!type}",column)==ClassName(fk.ForeignTable)) - { - sRefI = FormatColumn("{?dbprefix}{!membercolumn}{?dbsuff}",column);// 20070326 - sRefU = FormatColumn("{?dbprefix}{member}{?dbsuff}",column);// 20070326 - } - else - { - sRefI=FormatColumn("{?dbprefix}{!member}{?dbsuff}",column);// 20070326 - sRefU=FormatColumn("{?dbprefix}{member}{?dbsuff}",column);// 20070326 - } - } - sUpdate+=sepu + sRefU; - sepu=", "; - if (!column.IsComputed)// && !column.IsAutoKey - { - sInsert+=sepi+sRefI; - sepi=", "; - } - } - else - { - string sRefI; - string sRefU; - if (IsRelObj(column)) - { - sRefI = FormatColumn("{?dbprefix}{!local}{?dbsuff}",column); - string sType = FormatColumn("{ctype}",column); - if(sType.Contains("?")) - sRefU = FormatColumn("{?dbprefix}{!local}{?dbsuff} != null ? ({ctype}) {?dbprefix}{!local}{?dbsuff}.{?dbprefix}{prop}{?dbsuff} : ({ctype}) null",column); - else - sRefU = FormatColumn("{?dbprefix}{!localcolumn}{?dbsuff}",column); - } - else - sRefI = sRefU = FormatColumn("{?dbprefix}{rmember}{?dbsuff}",RelatedColumn(column,fk)); - sInsert+=sepi + sRefI; - sUpdate+=sepu + sRefU; - sepi=", "; - sepu=", "; - //sepd=", "; - } - } - foreach(IColumn column in fk.ForeignTable.PrimaryKeys) - { - if (IsIn(column,fk.ForeignColumns)) - sDelete+=sepd+FormatColumn("{!localcolumn}",column); - //sDelete+=sepd+FormatColumn("{rmember}",RelatedColumn(column,fk)); - else - sDelete+=sepd+FormatColumn("{member}",column); - sepd=", "; - } - } - catch(Exception ex) - { - output.write("\r\n>>>ERROR>>>> " + ex.Message); - } - // Foreign Key Related Table Fields - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if (pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable && ForeignRequired(pk)) - { - //sAlias = GetAlias(dicAlias,pk.PrimaryTable); - sAlias = GetAlias(pk); - //foreach(IColumn col in pk.PrimaryColumns) - //{ - //} - foreach(IColumn column in pk.PrimaryTable.Columns) - { - if (!IsIn(column,pk.PrimaryColumns) && column.DataTypeName != "timestamp" && !column.IsInPrimaryKey) - { - sRead+=sepr+FormatColumn(dicRead,column,"\t\t\t\t",sAlias); - sepr="\r\n"; - } - } - } - } -%> - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - <%=_databaseLogDebug%>("[{0}] <%=_subclassName%>.FetchDR", GetHashCode()); - try - { -<%=sRead%> - } - catch (Exception ex) // FKItem Fetch - { - <%=_databaseLogError%>("<%=_subclassName%>.FetchDR", ex); - throw new DbCslaException("<%=_subclassName%>.Fetch", ex); - } - MarkOld(); - } - internal void Insert(<%=sPrimaryTable%> <%=sPrimaryLocal%>) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - <%=sTimestamp%><%=sClassName%>.Add(cn, <%=sInsert%>); - MarkOld(); - } - internal void Update(<%=sPrimaryTable%> <%=sPrimaryLocal%>)<%=Debug("// 20071023.4 Update")%> - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - <%=sTimestamp%><%=sClassName%>.Update(cn, <%=sUpdate%>); - MarkOld(); - } - internal void DeleteSelf(<%=sPrimaryTable%> <%=sPrimaryLocal%>) - { - // 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"]; - <%=sClassName%>.Remove(cn, <%=sDelete%>); - MarkNew(); - } - #endregion<% - } - private void vlnConvertorFKItem() - { -%> - #region Converter - internal class <%=_className%>Converter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is <%=_className%>) - { - // Return the ToString value - return ((<%=_className%>)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion<% - } - private void vlnFactoryMethodsInfoList(IColumns columns) - { - string sMember = MemberName(_className); -%> - #region Factory Methods - public static <%=_className%> <%=sMember%> = null; - /// - /// Return a list of all <%=_subclassName%>. - /// - public static <%=_className%> Get() - { - try - { - if (<%=sMember%> != null) - return <%=sMember%>; - <%=_className%> tmp = DataPortal.Fetch<<%=_className%>>(); - <%=_subclassName%>.AddList(tmp); - tmp.AddEvents(); - <%=sMember%> = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Get", ex); - } - } - /// - /// Reset the list of all <%=_subclassName%>. - /// - public static void Reset() - { - <%=sMember%> = null; - }<% -// ForeignKeys - List Foreign Keys - May want to create stored procedures -%> - // CSLATODO: Add alternative gets - - //public static <%=_className%> Get() - //{ - // try - // { - // return DataPortal.Fetch<<%=_className%>>(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on <%=_className%>.Get", ex); - // } - //}<% - ProcessFKAlias(_workingTable,new ProcessFK(FKGet)); -// ArrayList lstByNames = new ArrayList(); -// foreach(IForeignKey FK in _workingTable.ForeignKeys) -// { -// if (FK.ForeignTable == _workingTable) -// { -// if (!lstByNames.Contains(FK.PrimaryTable.Name)) -// { -// FKGet(FK); -// lstByNames.Add(FK.PrimaryTable.Name); -// } -// } -// } -%> - private <%=_className%>() - { /* require use of factory methods */ } - #endregion<% - } - private void FKGet(IForeignKey FK,string sAlias) - { - //string sBy = ClassName(FK.PrimaryTable) + sAlias; - //string sKeyTypes = FormatColumns("{ctype} {local}",FK.PrimaryTable.PrimaryKeys,",",""); - //string sKeys = FormatColumns("{local}",FK.PrimaryTable.PrimaryKeys,",",""); - string sBy = FormatColumns("{name}",FK.ForeignColumns,"_",""); - string sBy2 = "By" + sBy; - if (FK.PrimaryTable == FK.ForeignTable)sBy2=ChildrenName(FK); - string sKeyTypes = FormatColumns("{ctype} {local}",FK.ForeignColumns,",",""); - string sKeys = FormatColumns("{local}",FK.ForeignColumns,",",""); -%> - public static <%=_className%> Get<%=sBy2%>(<%=sKeyTypes%>) - { - try - { - <%=_className%> tmp = DataPortal.Fetch<<%=_className%>>(new <%=sBy%>Criteria(<%=sKeys%>)); - <%=_subclassName%>.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Get<%=sBy2%>", ex); - } - }<% - } - private void vlnDataAccessPortalInfoList(IColumns columns) - { -%> - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "get<%=ClassesName(_workingTable)%>"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new <%=_subclassName%>(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Fetch", ex); - throw new DbCslaException("<%=_className%>.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - }<% - ProcessFKAlias(_workingTable,new ProcessFK(FKFetch)); -// ArrayList lstTableNames = new ArrayList(); -// foreach(IForeignKey FK in _workingTable.ForeignKeys) -// { -// if (FK.ForeignTable == _workingTable) -// { -// if (!lstTableNames.Contains(FK.PrimaryTable.Name)) -// { -// FKFetch(FK); -// lstTableNames.Add(FK.PrimaryTable.Name); -// } -// } -// } -%> - #endregion<% - } - private void FKFetch(IForeignKey FK,string sAlias) - { - string sClassF = ClassName(FK.ForeignTable); - //string sClassP = ClassName(FK.PrimaryTable)+sAlias; - //string sBy = ForeignKeyName(FK); - //string sKeyTypes = FormatColumns("{ctype} {local}",FK.PrimaryTable.PrimaryKeys,",",""); - string sClassP = FormatColumns("{name}",FK.ForeignColumns,"_",""); - string sBy = ClassesName(_workingTable) + "By" + FormatColumns("{name}",FK.ForeignColumns,"_",""); - if (FK.ForeignTable == FK.PrimaryTable)sBy = ChildName(FK) + ClassesName(_workingTable); - string sKeyTypes = FormatColumns("{ctype} {local}",FK.ForeignColumns,",",""); - //string sKeys = FormatColumns("{local}",FK.ForeignColumns,",",""); -%> - [Serializable()] - private class <%=sClassP%>Criteria - { - public <%=sClassP%>Criteria(<%=sKeyTypes%>) - { -<%=FormatColumns("{member} = {local};",FK.ForeignColumns,"\r\n","\t\t\t\t")%> - }<% - foreach(IColumn c in FK.ForeignColumns) - { - string sMember=FormatColumn("{member}",c); - string sProp=FormatColumn("{prop}",c); - string sType=FormatColumn("{ctype}",c); -%> - private <%=sType%> <%=sMember%>; - public <%=sType%> <%=sProp%> - { - get { return <%=sMember%>; } - set { <%=sMember%> = value; } - }<% - } -%> - } - private void DataPortal_Fetch(<%=sClassP%>Criteria criteria) - { - this.RaiseListChangedEvents = false; - <%=_databaseLogDebug%>("[{0}] <%=_className%>.DataPortal_Fetch<%=sClassP%>", GetHashCode()); - try - { - using (SqlConnection cn = Database.<%=_dbConnection%>_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "get<%=sBy%>"; - <%=FormatColumns("{ifLogic@}cm.Parameters.AddWithValue(\"{@}\", " + "criteria.{prop});",FK.ForeignColumns,"\r\n\t\t\t","")%> - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new <%=_subclassName%>(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.DataPortal_Fetch<%=sClassP%>", ex); - throw new DbCslaException("<%=_className%>.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - }<% - } - private void vlnRelObjProperty(IColumn column,bool bReadOnly,bool bInfo) - { - if (IsRelObj(column)) - { - string sProp=RelObjProp(column); - string sMember=MemberName(sProp); - string sCheck=FormatColumn("\r\n\t\t\t\tif ({!member} == null && {member} != {!empty}) {!member} = {!type}" + (bInfo?"Info":"") + ".Get({!typecast}{member});",column); - string sCheck2=null; - string sCheck3=null; - if (column.IsNullable) - { - sCheck2=FormatColumn("\r\n\t\t\t\t\t{member} = (value == null ? null : ({ctype})value.{!column});",column); - sCheck3=FormatColumn("({!member} == null ? {member} : ({ctype}){!member}.{!column}) != (value == null ? null : ({ctype})value.{!column})",column); - } - else - { - sCheck2=FormatColumn("\r\n\t\t\t\t\t{member} = value.{!column};// Update underlying data field",column); - sCheck3=FormatColumn("{!member} != value",column); - } - vlnProperty(RelObjType( column ) + (bInfo?"Info":"") ,sMember - ,sProp,";"+DebugLine("20070501.4"),"",bReadOnly,column.IsInPrimaryKey,false,null,sCheck,sCheck2,sCheck3); - //if (sProp.StartsWith("My"))_refreshMine += string.Format("\t\t\t{0} = null;\r\n",sMember); - //if (sProp.StartsWith("My"))AddRefreshMine(sMember); - } - } - private void AddRefreshMine(string sMember) - { - _refreshMine += string.Format("//RHM Removed 20090724 - Duplicates function of code above.\r\n",sMember); - _refreshMine += string.Format("// - Dispose caused error when a new step was added.\r\n",sMember); - _refreshMine += string.Format("// - Resequence of transitions did not work properly.\r\n",sMember); - _refreshMine += string.Format("//\t\t\tif({0} != null)\r\n",sMember); - _refreshMine += string.Format("//\t\t\t{{\r\n"); - _refreshMine += string.Format("//\t\t\t\t{0}.Dispose();// Dispose related value\r\n",sMember); - _refreshMine += string.Format("//\t\t\t\t{0} = null;// Reset related value\r\n",sMember); - _refreshMine += string.Format("//\t\t\t}}\r\n"); - } - private void vlnBusinessMethodsInfo(IColumns columns) - { - _refreshMine=""; -// string sMember = MemberName(sEditable); -// string sLocal = LocalName(sEditable); -// string sPKeys = FormatColumns(sLocal + ".{prop}",_workingTable.PrimaryKeys,", ",""); -%> - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - protected <%=ClassName( _workingTable )%> _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - }<% - //vlnInfoParent(_workingTable);//20070208 - foreach(IColumn column in ExcludedColumns(columns,new Filter(Computed))) - { - string sCheck=(IsRelObj(column)?FormatColumn("\r\n\t\t\t\tif ({!member} != null) {member} = {!member}.{!column};",column):null); - vlnProperty(CSLAType( column ),MemberName(column) - ,PropertyName(column),InitializeValue( column ),GetDescription(column),true,column.IsInPrimaryKey,false,null,sCheck,null,null); - vlnRelObjProperty(column,true,true); - } - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey FK in _workingTable.ForeignKeys) - { - if (FK.PrimaryTable == _workingTable) - { - //string sAlias = GetAlias(dicAlias,FK.ForeignTable); - string sAlias = GetAlias(FK); - string sClass = FKClassName(FK); - string sClasses = FKClassesName(FK); - if (!OneToOne(FK)) - FKPropertyList(ClassName(FK.ForeignTable),sClasses,FK,sAlias); - else - { - vlnProperty("int",MemberName(sClass) + sAlias + "Count" ,sClass + sAlias + "Count", " = 0;", - "Count of " + sClasses + " for this " + ClassName(_workingTable),true,false,false,null,null,null,null); - FKPropertyInfo(ClassName(FK.ForeignTable),sClasses,FK,sAlias); - // This line was added to reset the count if the Content object was changed - _refreshMine += string.Format("\t\t\t{0} = -1;// Reset Count\r\n",MemberName(sClass) + sAlias + "Count"); - } - } - } - - vlnToString(columns); - vlnGetIDValue(_workingTable.PrimaryKeys); -%> - #endregion<% - } - private void FKPropertyList(string sClass,string sClasses,IForeignKey FK,string sAlias) - { - string sKeys = FormatColumns("{member}",FK.PrimaryColumns,",",""); - string sMember = MemberName(sClasses) + sAlias; - string sCountMember = MemberName(SingularName(sClasses)) + sAlias + "Count"; - string sBy = FKBy(FK); - string sProp = sClasses + sAlias; - string sParent = SingularName(FK.PrimaryTable.Name); - string sChild = SingularName(FK.ForeignTable.Name); - //_refreshMine += string.Format("\t\t\t{0} = null;\r\n",sMember); -%> - private int <%=sCountMember%> = 0; - /// - /// Count of <%=sMember.Substring(1)%> for this <%=sParent%> - /// - public int <%=sCountMember.Substring(1)%> - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("<%=sCountMember.Substring(1)%>", true); - if (<%=sCountMember%> < 0) - <%=sCountMember%> = <%=sProp%>.Count; - return <%=sCountMember%>; - } - } - private <%=sClass%>InfoList <%=sMember%> = null; - [TypeConverter(typeof(<%=sClass%>InfoListConverter))] - public <%=sClass%>InfoList <%=sProp%> - {<%=DebugLine("20070427.5")%> - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("<%=sProp%>", true); - if (<%=sCountMember%> < 0 || (<%=sCountMember%> > 0 && <%=sMember%> == null)) - <%=sMember%> = <%=sClass%>InfoList.Get<%=sBy%>(<%=sKeys%>); - if (<%=sCountMember%> < 0) - <%=sCountMember%> = <%=sMember%>.Count; - return <%=sMember%>; - } - } - public void Refresh<%=sProp%>() - {<%=DebugLine("20080430.3")%> - <%=sCountMember%> = -1; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(<%=sKeys%>.ToString())) - foreach (<%=_className%> tmp in _CacheByPrimaryKey[<%=sKeys%>.ToString()]) - tmp.<%=sCountMember%> = -1; // This will cause the data to be requeried - }<% - } - private void FKPropertyInfo(string sClass,string sClasses,IForeignKey FK,string sAlias) - { - string sKeys = FormatColumns("{member}",FK.PrimaryColumns,",",""); - string sMember = MemberName("My" + sClass) + sAlias; - string sCountMember = MemberName(SingularName(sClasses)) + sAlias + "Count"; - string sBy = FKBy(FK); - string sProp = "My" + sClass + sAlias; - //_refreshMine += string.Format("\t\t\t{0} = null;// Reset related value\r\n",sMember); - //AddRefreshMine(sMember); -%> - private <%=sClass%>Info <%=sMember%> = null; - [TypeConverter(typeof(<%=sClass%>InfoConverter))] - public <%=sClass%>Info <%=sProp%> - {<%=DebugLine("20070427.6")%> - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("<%=sProp%>", true); - if (<%=sCountMember%> != 0 && <%=sMember%> == null) - { - <%=sMember%> = <%=sClass%>Info.Get(<%=sKeys%>); - <%=sCountMember%> = <%=sMember%> == null ? 0 : 1; - } - return <%=sMember%>; - } - }<% - } - private void vlnFactoryMethodsInfo(IColumns columns) - { - string sKeys = FormatColumns("{local}",_workingTable.PrimaryKeys,", ",""); - string sKeyTypes = FormatColumns("{ctype} {local}",_workingTable.PrimaryKeys,", ",""); - string sEditable = ClassName(_workingTable.Name); - string sEdMember = MemberName(sEditable); - string sEdLocal = LocalName(sEditable); - string sPKeys = FormatColumns("{member}",_workingTable.PrimaryKeys,", ",""); - string sRefKeys = FormatColumns("{prop}.ToString()",_workingTable.PrimaryKeys," + \"_\" + ","");;//20070215 - string sTmpKeys = FormatColumns("tmp.{prop}",_workingTable.PrimaryKeys,", ",""); - string sTRefKeys = FormatColumns("tmp.{prop}.ToString()",_workingTable.PrimaryKeys," + \"_\" + ","");;//20070215 -%> - #region Factory Methods - private static int _<%=_className%>Unique = 0; - private static int <%=_className%>Unique - { get { return ++_<%=_className%>Unique; } } - private int _My<%=_className%>Unique = <%=_className%>Unique; - public int My<%=_className%>Unique // Absolutely Unique ID - Info - { get { return _My<%=_className%>Unique; } } - protected <%=_className%>() - {/* require use of factory methods */ - AddToCache(this); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~<%=_className%>() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(<%=sRefKeys%>)) return; - List<<%=_className%>> list<%=_className%> = _CacheByPrimaryKey[<%=sRefKeys%>]; // Get the list of items - while (list<%=_className%>.Contains(this)) list<%=_className%>.Remove(this); // Remove the item from the list - if (list<%=_className%>.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(<%=sRefKeys%>); // remove the list - } - public virtual <%=ClassName( _workingTable )%> Get() - {<%=DebugLine("20070502.1")%> - return _Editable = <%=sEditable%>.Get(<%=sPKeys%>); - } - public static void Refresh(<%=ClassName( _workingTable )%> tmp) - { - string key = <%=sTRefKeys%>; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (<%=_className%> tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(<%=ClassName( _workingTable )%> tmp) - {<%=DebugLine("20080430.1")%><% - foreach(IColumn col in Updatable(_workingTable)) - UpdateInfoFromEdit(col); -%> - <%=MemberName(_className)%>Extension.Refresh(this); -<%=_refreshMine%> OnChange();// raise an event - }<% - Hashtable dicAlias = new Hashtable(); // 20070216 - foreach(IForeignKey fk in _workingTable.ForeignKeys) - { - if (_workingTable != fk.PrimaryTable && !IsPrimaryKey(fk)) //20070220 - { - //string sClass=ClassName(fk.PrimaryTable)+ClassName(fk.ForeignTable)+GetAlias(dicAlias,fk.PrimaryTable); - string sClass=ClassName(fk.PrimaryTable)+ClassName(fk.ForeignTable)+GetAlias(fk); - // 20070326 - Need to add an object reference - string sPrefix = ""; - string sTmpKeys2 = sTmpKeys; - string sTmpKeyString = sTRefKeys; - if (ForeignPrimary(fk)) - { - string sOther = ClassName(fk.PrimaryTable); - sPrefix = ClassName(fk.PrimaryTable) + " my" + ClassName(fk.PrimaryTable) + ", "; - string ssep=""; - string ssepstr=""; - sTmpKeys2=""; - sTmpKeyString = ""; - foreach(IColumn col in _workingTable.PrimaryKeys) - { - //WriteLine("\r\n//!type = '{0}', sOther = '{1}', Col.Name = '{2}'", FormatColumn("{!type}",col), sOther, col.Name); - if (FormatColumn("{!type}",col)==sOther) - { - sTmpKeys2 += ssep + FormatColumn("{!localcolumn}",col); - sTmpKeyString += ssepstr + FormatColumn("{!localcolumn}",col) + ".ToString()"; - } - else - { - sTmpKeys2 += ssep + FormatColumn("tmp.{prop}",col); - sTmpKeyString += ssepstr + FormatColumn("tmp.{prop}",col) + ".ToString()"; - } - ssep=", "; - ssepstr=" + \"_\" + "; - } - } -%> - public static void Refresh(<%=sPrefix%><%=sClass%> tmp) - { - string key = <%=sTmpKeyString%>; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (<%=_className%> tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(<%=sClass%> tmp) - {<%=DebugLine("20080430.2")%><% - foreach(IColumn col in Updatable(_workingTable)) - { - if (!IsIn(col,fk.ForeignColumns)) - UpdateInfoFromEdit(col); - } -%> - <%=MemberName(_className)%>Extension.Refresh(this); -<%=_refreshMine%> OnChange();// raise an event - }<% - } - } -%> - public static <%=_className%> Get(<%=sKeyTypes%>) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a <%=ClassName(_workingTable)%>"); - try - { - <%=_className%> tmp = GetCachedByPrimaryKey(<%=sKeys%>); - if (tmp == null) - { - tmp = DataPortal.Fetch<<%=_className%>>(new PKCriteria(<%=sKeys%>)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found")<% - if (!OneToOne(_workingTable) || true){ // RHM 20080710 - Not sure why it should not return null -%> - { - tmp.Dispose(); // Clean-up <%=_className%> - tmp = null; - }<% - } else { -%> - { -<%=FormatColumns("tmp.{member} = {local};",_workingTable.PrimaryKeys,"\r\n","\t\t\t\t\t")%> - }<% - } -%> - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on <%=_className%>.Get", ex); - } - } - #endregion<% - } - private void UpdateInfoFromEdit(IColumn col) //20080430.4 - { - if (col.ForeignKeys.Count > 0) - { - string sProp=RelObjProp(col); - string sMember=MemberName(sProp); - IForeignKey FK = col.ForeignKeys[0]; - //string sClass = FKClassName(FK); - string sClasses = FKClassesName(FK); - string sAlias = GetAlias(FK); - output.write(FormatColumn("\r\n\t\t\tif ({member} != tmp.{prop})",col)); - output.write("\r\n\t\t\t{"); - output.write("\r\n\t\t\t\tif (" + sProp + " != null) " + sProp + ".Refresh" + sClasses + sAlias + "(); // Update List for old value"); - output.write(FormatColumn("\r\n\t\t\t\t{member} = tmp.{prop}; // Update the value",col)); - output.write("\r\n\t\t\t}"); - output.write("\r\n\t\t\t" + sMember + " = null; // Reset list so that the next line gets a new list" ); - output.write("\r\n\t\t\tif (" + sProp + " != null) " + sProp + ".Refresh" + sClasses + sAlias + "(); // Update List for new value"); - } - else - output.write(FormatColumn("\r\n\t\t\t{member} = tmp.{prop};",col)); - } - private void vlnDataAccessPortalInfo(IColumns columns) - { -%> - #region Data Access Portal - internal <%=_className%>(SafeDataReader dr) - { - <%=_databaseLogDebug%>("[{0}] <%=_className%>.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - <%=_databaseLogError%>("<%=_className%>.Constructor", ex); - throw new DbCslaException("<%=_className%>.Constructor", ex); - } - }<% - vlnPKCriteria(); - vlnReadData(columns,false); - vlnDataPortalFetch("PK",_workingTable.PrimaryKeys,ClassName(_workingTable),false); -%> - #endregion<% - } - public void GeneratePropertyDescriptor() - { - _className="PropertyDescriptor"; - vlnHeader("\r\nusing Csla.Validation;"); - vlnListPropertyDescriptor(); - vlnIVEHasBrokenRules(); -%> -} // Namespace -// The following are samples of ToString overrides<% - foreach(string sClass in _PropDescList) - { -%> -// public partial class <%=sClass%> -// { public override string ToString() { return string.Format("{0}", _Name); } }<% - } - SaveFile(); - } - public void GenerateCommonRules() - { - _className="CommonRules"; - vlnHeader("\r\nusing Csla.Validation;\r\nusing System.Reflection;",false); -%> - public static class CommonRules - { - public static bool Required(object target, Csla.Validation.RuleArgs e) - { - PropertyInfo propertyInfoObj = target.GetType().GetProperty(e.PropertyName); - if (propertyInfoObj == null) return true; - if (propertyInfoObj.GetValue(target, null) == null) - { - e.Description = e.PropertyName + " is a required field"; - return false; - } - return true; - } - } -}<% - SaveFile(); - } - public void vlnIVEHasBrokenRules() - { -%> - public interface IVEHasBrokenRules - { - IVEHasBrokenRules HasBrokenRules { get; } - BrokenRulesCollection BrokenRules { get; } - }<% - } - public void Log4Net() - { - if (_chkPartL4N) - { -%> - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion<% - } - } - public void GenerateDatabase() - { - _className="Database"; - vlnHeader("\r\nusing System.Diagnostics;"); -%> - public static partial class Database - {<% - if (_chkPartL4N) - { -%> - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion<% - } -%> - public static void LogException(string s, Exception ex) - { - int i = 0; - Console.WriteLine("Error - {0}", s); - for (; ex != null; ex = ex.InnerException) - { - Console.WriteLine("{0}{1} - {2}", "".PadLeft(++i * 2), ex.GetType().ToString(), ex.Message); - } - } - private static bool _LoggingInfo = false; // By default don't log info - public static bool LoggingInfo - { - get { return _LoggingInfo; } - set { _LoggingInfo = value; } - } - static System.Diagnostics.Process _CurrentProcess = System.Diagnostics.Process.GetCurrentProcess(); - public static void LogInfo(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - public static void LogDebug(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - private static string _ConnectionName = "<%=_dbConnection%>"; - public static string ConnectionName - { - get { return Database._ConnectionName; } - set { Database._ConnectionName = value; } - } - public static string <%=_dbConnection%>_Connection - { - get - { - DateTime.Today.ToLongDateString(); - ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings[ConnectionName]; - if (cs == null) - { - throw new ApplicationException("Database.cs Could not find connection " + ConnectionName); - } - return cs.ConnectionString; - } - } - public static SqlConnection <%=_dbConnection%>_SqlConnection - { - get - { - string strConn = <%=_dbConnection%>_Connection; // If failure - Fail (Don't try to catch) - // Attempt to make a connection - try - { - SqlConnection cn = new SqlConnection(strConn); - cn.Open(); - return cn; - } - catch (SqlException exsql) - { - const string strAttachError = "An attempt to attach an auto-named database for file "; - if (exsql.Message.StartsWith(strAttachError)) - {// Check to see if the file is missing - string sFile = exsql.Message.Substring(strAttachError.Length); - sFile = sFile.Substring(0, sFile.IndexOf(" failed")); - // "An attempt to attach an auto-named database for file failed" - if (strConn.ToLower().IndexOf("user instance=true") < 0) - { - throw new ApplicationException("Connection String missing attribute: User Instance=True"); - } - if (System.IO.File.Exists(sFile)) - { - throw new ApplicationException("Database file " + sFile + " Cannot be opened\r\n", exsql); - } - else - { - throw new FileNotFoundException("Database file " + sFile + " Not Found", exsql); - } - } - else - { - throw new ApplicationException("Failure on Connect", exsql); - } - } - catch (Exception ex)// Throw Application Exception on Failure - { - <%=_databaseLogError%>("Connection Error", ex); - throw new ApplicationException("Failure on Connect", ex); - } - } - } - public static void PurgeData() - { - try - { - SqlConnection cn = <%=_dbConnection%>_SqlConnection; - SqlCommand cmd = new SqlCommand("purgedata", cn); - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.ExecuteNonQuery(); - } - catch (Exception ex) - { - <%=_databaseLogError%>("Purge Error", ex); - throw new ApplicationException("Failure on Purge", ex); - } - } - } - public class DbCslaException : Exception - { - internal DbCslaException(string message, Exception innerException) : base(message, innerException) { ;} - internal DbCslaException(string message) : base(message) { ;} - internal DbCslaException() : base() { ;} - } // Class -} // Namespace -<% - SaveFile(); - } -%><%#FILE NamingConvention.cs%><% -%><%#FILE ForeignKeyProcessing.cs%><% -%><%#FILE WriteLine.cs%><% -%><%#FILE FilteredColumns.cs%><% -%><%#FILE FormatColumns.cs%><% -}// Bottom of Namespace -%> -##|BODY_END diff --git a/PROMS/MyGeneration/csla_21/Debug/Debug.cs b/PROMS/MyGeneration/csla_21/Debug/Debug.cs deleted file mode 100644 index 6c690c35..00000000 --- a/PROMS/MyGeneration/csla_21/Debug/Debug.cs +++ /dev/null @@ -1,219 +0,0 @@ - private void ColumnInfoHeader() - { - Write("Container, "); - Write("Name, "); - Write("Alias, "); - Write("AutoKeyIncrement, "); - Write("AutoKeySeed, "); - Write("CharacterMaxLength, "); - Write("CharacterOctetLength, "); - //Write("CharacterSetCatalog, "); - //Write("CharacterSetSchema, "); - Write("CompFlags, "); - Write("DataType, "); - Write("DataTypeName, "); - Write("DataTypeNameComplete, "); - Write("DateTimePrecision, "); - Write("DbTargetType, "); - Write("Default, "); - Write("Description, "); - //Write("Domain, "); - //Write("DomainCatalog, "); - //Write("DomainName, "); - //Write("DomainSchema, "); - Write("Flags, "); - Write("ForeignKeys, "); - //Write("GlobalProperties, "); - //Write("Guid, "); - Write("HasDefault, "); - Write("HasDomain, "); - Write("IsAutoKey, "); - Write("IsComputed, "); - Write("IsInForeignKey, "); - Write("IsInPrimaryKey, "); - Write("IsNullable, "); - Write("LanguageType, "); - Write("LCID, "); - Write("NumericPrecision, "); - Write("NumericScale, "); - Write("Ordinal, "); - //Write("Properties, "); - Write("PropID, "); - Write("SortID, "); - Write("Table, "); - //Write("TDSCollation, "); - //Write("TypeGuid, "); - //Write("UserDataXPath, "); - Write("View\r\n"); - } - private void ColumnProps(IColumn column) - { - WriteProp("",(column.Table==null?"view: " + column.View.Name:column.Table.Name),""); - WriteProp(column.Name); - WriteProp(column.Alias); - WriteProp(column.AutoKeyIncrement); - WriteProp(column.AutoKeySeed); - WriteProp(column.CharacterMaxLength); - WriteProp(column.CharacterOctetLength); - //WriteProp(column.CharacterSetCatalog); - //WriteProp(column.CharacterSetSchema); - WriteProp(column.CompFlags); - WriteProp(column.DataType); - WriteProp(column.DataTypeName); - WriteProp(column.DataTypeNameComplete); - WriteProp(column.DateTimePrecision); - WriteProp(column.DbTargetType); - WriteProp(column.Default); - WriteProp(column.Description); - //WriteProp(column.Domain); - //WriteProp(column.DomainCatalog); - //WriteProp(column.DomainName); - //WriteProp(column.DomainSchema); - WriteProp(column.Flags); - WriteProp(column.ForeignKeys.Count); - //WriteProp(column.GlobalProperties); - //WriteProp(column.Guid); - WriteProp(column.HasDefault); - WriteProp(column.HasDomain); - WriteProp(column.IsAutoKey); - WriteProp(column.IsComputed); - WriteProp(column.IsInForeignKey); - WriteProp(column.IsInPrimaryKey); - WriteProp(column.IsNullable); - WriteProp(column.LanguageType); - WriteProp(column.LCID); - WriteProp(column.NumericPrecision); - WriteProp(column.NumericScale); - WriteProp(column.Ordinal); - //WriteProp(column.Properties); - WriteProp(column.PropID); - WriteProp(column.SortID); - WriteProp(column.Table); - //WriteProp(column.TDSCollation); - //WriteProp(column.TypeGuid); - //WriteProp(column.UserDataXPath); - WriteProp("",column.View,"\r\n"); - } - private void ColumnInfo(IColumn column) - { - WriteLine("\t\tContainer {0}",(column.Table==null?"view: " + column.View.Name:column.Table.Name)); - WriteLine("\t\tName {0}",column.Name); - WriteLine("\t\tAlias {0}",column.Alias); - WriteLine("\t\tAutoKeyIncrement {0}",column.AutoKeyIncrement); - WriteLine("\t\tAutoKeySeed {0}",column.AutoKeySeed); - WriteLine("\t\tCharacterMaxLength {0}",column.CharacterMaxLength); - WriteLine("\t\tCharacterOctetLength {0}",column.CharacterOctetLength); - //WriteLine("\t\tCharacterSetCatalog {0}",column.CharacterSetCatalog); - //WriteLine("\t\tCharacterSetSchema {0}",column.CharacterSetSchema); - WriteLine("\t\tCompFlags {0}",column.CompFlags); - WriteLine("\t\tDataType {0}",column.DataType); - WriteLine("\t\tDataTypeName {0}",column.DataTypeName); - WriteLine("\t\tDataTypeNameComplete {0}",column.DataTypeNameComplete); - WriteLine("\t\tDateTimePrecision {0}",column.DateTimePrecision); - WriteLine("\t\tDbTargetType {0}",column.DbTargetType); - WriteLine("\t\tDefault {0}",column.Default); - WriteLine("\t\tDescription {0}",column.Description); - //WriteLine("\t\tDomain {0}",column.Domain); - //WriteLine("\t\tDomainCatalog {0}",column.DomainCatalog); - //WriteLine("\t\tDomainName {0}",column.DomainName); - //WriteLine("\t\tDomainSchema {0}",column.DomainSchema); - WriteLine("\t\tFlags {0}",column.Flags); - WriteLine("\t\tForeignKeys {0}",column.ForeignKeys); - //WriteLine("\t\tGlobalProperties {0}",column.GlobalProperties); - //WriteLine("\t\tGuid {0}",column.Guid); - WriteLine("\t\tHasDefault {0}",column.HasDefault); - WriteLine("\t\tHasDomain {0}",column.HasDomain); - WriteLine("\t\tIsAutoKey {0}",column.IsAutoKey); - WriteLine("\t\tIsComputed {0}",column.IsComputed); - WriteLine("\t\tIsInForeignKey {0}",column.IsInForeignKey); - WriteLine("\t\tIsInPrimaryKey {0}",column.IsInPrimaryKey); - WriteLine("\t\tIsNullable {0}",column.IsNullable); - WriteLine("\t\tLanguageType {0}",column.LanguageType); - WriteLine("\t\tLCID {0}",column.LCID); - WriteLine("\t\tNumericPrecision {0}",column.NumericPrecision); - WriteLine("\t\tNumericScale {0}",column.NumericScale); - WriteLine("\t\tOrdinal {0}",column.Ordinal); - //WriteLine("\t\tProperties {0}",column.Properties); - WriteLine("\t\tPropID {0}",column.PropID); - WriteLine("\t\tSortID {0}",column.SortID); - WriteLine("\t\tTable {0}",column.Table); - //WriteLine("\t\tTDSCollation {0}",column.TDSCollation); - //WriteLine("\t\tTypeGuid {0}",column.TypeGuid); - //WriteLine("\t\tUserDataXPath {0}",column.UserDataXPath); - WriteLine("\t\tView {0}",column.View); - } - private void ColumnFormatHeader() - { - Write("member,"); - Write("fmember,"); - Write("pmember,"); - Write("local,"); - Write("prop,"); - Write("memberprop,"); - Write("@,"); - Write("@new,"); - Write("ctype,"); - Write("rmember,"); - Write("rtype,"); -// Write("dbtype,"); - Write("name,"); - Write("class,"); - Write("fname,"); - Write("sqltype,"); - Write("?ref,"); - Write("?dbtype,"); - Write("?dbprefix,"); - Write("?dbsuffix,"); - Write("?dbsuff,"); - Write("default\r\n"); - } - private void ColumnFormat(IColumn column) - { - Write(FormatColumn("\"{member}\",",column)); - Write(FormatColumn("\"{fmember}\",",column)); - Write(FormatColumn("\"{pmember}\",",column)); - Write(FormatColumn("\"{local}\",",column)); - Write(FormatColumn("\"{prop}\",",column)); - Write(FormatColumn("\"{memberprop}\",",column)); - Write(FormatColumn("\"{@}\",",column)); - Write(FormatColumn("\"{@new}\",",column)); - Write(FormatColumn("\"{ctype}\",",column)); - Write(FormatColumn("\"{rmember}\",",column)); - Write(FormatColumn("\"{rtype}\",",column)); -// Write(FormatColumn("\"{dbtype}\",",column)); - Write(FormatColumn("\"{name}\",",column)); - Write(FormatColumn("\"{class}\",",column)); - Write(FormatColumn("\"{fname}\",",column)); - Write(FormatColumn("\"{sqltype}\",",column)); - Write(FormatColumn("\"{?ref}\",",column)); - Write(FormatColumn("\"{?dbtype}\",",column)); - Write(FormatColumn("\"{?dbprefix}\",",column)); - Write(FormatColumn("\"{?dbsuffix}\",",column)); - Write(FormatColumn("\"{?dbsuff}\",",column)); - Write(FormatColumn("\"{default}\"\r\n",column)); - } -private void ColumnFormatNew(IColumn column) - { - Write(FormatColumnNew("\"{member}\",",column)); - Write(FormatColumnNew("\"{fmember}\",",column)); - Write(FormatColumnNew("\"{pmember}\",",column)); - Write(FormatColumnNew("\"{local}\",",column)); - Write(FormatColumnNew("\"{prop}\",",column)); - Write(FormatColumnNew("\"{memberprop}\",",column)); - Write(FormatColumnNew("\"{@}\",",column)); - Write(FormatColumnNew("\"{@new}\",",column)); - Write(FormatColumnNew("\"{ctype}\",",column)); - Write(FormatColumnNew("\"{rmember}\",",column)); - Write(FormatColumnNew("\"{rtype}\",",column)); -// Write(FormatColumnNew("\"{dbtype}\",",column)); - Write(FormatColumnNew("\"{name}\",",column)); - Write(FormatColumnNew("\"{class}\",",column)); - Write(FormatColumnNew("\"{fname}\",",column)); - Write(FormatColumnNew("\"{sqltype}\",",column)); - Write(FormatColumnNew("\"{?ref}\",",column)); - Write(FormatColumnNew("\"{?dbtype}\",",column)); - Write(FormatColumnNew("\"{?dbprefix}\",",column)); - Write(FormatColumnNew("\"{?dbsuffix}\",",column)); - Write(FormatColumnNew("\"{?dbsuff}\",",column)); - Write(FormatColumnNew("\"{default}\"\r\n",column)); - } \ No newline at end of file diff --git a/PROMS/MyGeneration/csla_21/FilteredColumns.cs b/PROMS/MyGeneration/csla_21/FilteredColumns.cs deleted file mode 100644 index 6ee39abd..00000000 --- a/PROMS/MyGeneration/csla_21/FilteredColumns.cs +++ /dev/null @@ -1,545 +0,0 @@ - #region FilteredColumns - // Used by CSLA Objects Guid - public bool IsGuid(IColumn column){ - return(column.LanguageType=="timestamp");} - public ArrayList Guid(IColumns columns){ - return FilteredColumns(columns,new Filter(IsGuid));} - // Used in CSLA Business Objects AutoKey - public bool AutoKey(IColumn column){ - return(column.IsAutoKey);} - public ArrayList AutoKey(IColumns columns){ - return FilteredColumns(columns,new Filter(AutoKey));} - public ArrayList AutoKey(IForeignKey fk){ - ArrayList l = new ArrayList(); - foreach(IColumn column in fk.ForeignTable.Columns){ - if (column.IsAutoKey && !IsIn(column,fk.ForeignColumns))l.Add(column);} - return l;} - // Used in CSLA Stored Procedures - private ArrayList AutoKey(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(AutoKey));} - // Used in CSLA Stored Procedures Updatable - public bool Updatable(IColumn column){ - return(!NotUpdatable(column));} - private ArrayList Updatable(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(Updatable));} - // Used in CSLA Stored Procedures Not Updatable - public bool NotUpdatable(IColumn column){ - return(column.IsInPrimaryKey || column.IsAutoKey || column.IsComputed);} - private ArrayList NotUpdatable(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(NotUpdatable));} - // Used in CSLA Stored Procedures PrimaryKey - public bool PrimaryKey(IColumn column){ - return(column.IsInPrimaryKey);} - private ArrayList PrimaryKey(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(PrimaryKey));} - // Used in CSLA Stored Procedures Insertable - public bool Insertable(IColumn column){ - return(!NotInsertable(column));} - private ArrayList Insertable(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(Insertable));} - // Used in CSLA Stored Procedures Not Insertable - public bool NotInsertable(IColumn column){ - return(column.IsAutoKey || column.IsComputed);} - private ArrayList NotInsertable(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(NotInsertable));} - // Used in CSLA Stored Procedures & CSLA Business Objects Computed - public bool Computed(IColumn column){ - return(column.IsComputed);} - private ArrayList Computed(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(Computed)); } - // Used in CSLA Stored Procedures Not TimeStamp - public bool NotTimestamp(IColumn column){ - return(!Timestamp(column));} - private ArrayList NotTimestamp(ITable tbl){ - return FilteredColumns(tbl.Columns,new Filter(NotTimestamp));} - private ArrayList NotTimestamp(IColumns cols){ - return FilteredColumns(cols,new Filter(NotTimestamp));} - // Used in CSLA Business Objects - public bool IsRequired(IColumn column) - { - if(column.IsNullable) return false; - if(!column.HasDefault) return true; - // If it is the parent column it is required - return IsParentColumn(column); -// return false; - } -// public bool ForeignKey(IColumn column) -// { -// return(column.IsInForeignKey); -// } - // Used in CSLA Business Objects Automatic - public bool IsAutomatic(IColumn column) - { - bool retval=column.Description.IndexOf("{auto}") >= 0; - return retval; - } - // Used in CSLA Business Objects TimeStamp - public bool Timestamp(IColumn column){ - return(column.DataTypeName=="timestamp");} - public ArrayList IsTimestamp(IColumns columns){ - return FilteredColumns(columns,new Filter(Timestamp));} - // Used in CSLA Stored Procedures and Business Objects - public ArrayList FilteredColumns(IColumns columns,Filter f){ - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - { - if(f(column))l.Add(column); - } - return l; - } - // Used in CSLA Business Objects - public ArrayList ExcludedColumns(IColumns columns,Filter f){ - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - { - if(!f(column))l.Add(column); - } - return l; - } - private int CountRequiredFields( IColumns Columns ){ - return Columns.Count - CountNullableFields( Columns );} - private int CountNullableFields( IColumns Columns ) - { - int i = 0; - foreach( IColumn c in Columns ) - { - if( c.IsNullable ) - { - i++; - } - } - return i; - } - - private int CountUniqueFields( IColumns Columns ) - { - int i = 0; - foreach( IColumn c in Columns ) - { - if( !c.IsNullable && c.IsInPrimaryKey ) - { - i++; - } - } - return i; - } - public ArrayList MakeList(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if(!column.IsAutoKey && !IsAutomatic(column) && !column.IsComputed) - l.Add(column); - return l; - } - public ArrayList MakeList4(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if((!column.IsAutoKey && !IsAutomatic(column) && !column.IsComputed ) && - (column.HasDefault==false || column.ForeignKeys.Count != 0)) - l.Add(column); - return l; - } - public ArrayList ReqList(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - l.Add(column); - return l; - } - public ArrayList ReqListNoDefault(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey && column.HasDefault) - l.Add(column); - return l; - } - public ArrayList MakeList2(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if(!column.IsAutoKey && !column.IsComputed) - l.Add(column); - return l; - } - public ArrayList MakeList3(IColumns columns) - { - ArrayList l = new ArrayList(); - foreach(IColumn column in columns) - if(IsAutomatic(column)) - l.Add(column); - return l; - } - public void BuildLists(IList cols,ref string sMakeListParamTypes, ref string sMakeListParams, - ref string sSetTmp, ref string sParentCheck) - { - string sep = ""; - string sepSet = ""; - string sPrefixType=""; - string sPrefix=""; - string sPrefixSet=""; - string sCheckSep = "if ("; - sMakeListParamTypes = ""; - sMakeListParams = ""; - sSetTmp = ""; - sParentCheck=""; -// ArrayList parentCols = new ArrayList(); - foreach(IColumn col in cols) - { - sMakeListParamTypes += sep + FormatColumn("{!rtype} {!local}",col); - sMakeListParams += sep + FormatColumn("{!local}",col); - sSetTmp += sepSet + FormatColumn("\t\t\ttmp.{!memberprop} = {!local};",col); - sep=", "; - sepSet="\r\n"; - if(IsRelObj(col)) // If item is null, don't look it up - { - sParentCheck += "/*0*/" + sCheckSep + LocalName(RelObjProp(col)) + " != null "; - sCheckSep = "|| "; - } - } - if(sParentCheck != "")sParentCheck += ") "; - sMakeListParamTypes = sPrefixType + sMakeListParamTypes; - sMakeListParams = sPrefix + sMakeListParams; - sSetTmp = sPrefixSet + sSetTmp; - //sParentCheck=FormatColumns("{!rtype} {!local} = {autoseed};\r\n\t\t\tif (parent != null)\r\n\t\t\t{\r\n\t\t\t\t{!local} = parent;\r\n\t\t\t}\r\n\t\t\t",parentCols,"\r\n",""); - //sParentCheck=""; - } - public bool SameList(IList lst1, IList lst2) - { - ArrayList l = new ArrayList(); - foreach(IColumn col in lst1)l.Add(col.Name); - foreach(IColumn col in lst2) - if(l.Contains(col.Name))l.Remove(col.Name); - else return false; - return l.Count ==0; - } - public string SameList2(IList lst1, IList lst2) - { - ArrayList l = new ArrayList(); - foreach(IColumn col in lst1)l.Add(col.Name); - foreach(IColumn col in lst2)l.Remove(col.Name); - string sList=""; - string sep="Difference: "; - foreach(string ss in l){ - sList+=sep+ss; - sep=", "; - } - return sList; - } - public bool SameTypes(IList lst1, IList lst2) - { - if(lst1.Count != lst2.Count) return false; - for(int i=0;i 0) - { - _workingTable=(ITable) _TableStack[_TableStack.Count-1]; - _TableStack.RemoveAt(_TableStack.Count-1); - } - } - private bool ForeignRequired(IForeignKey pk) - { - bool bRequired=true; - foreach(IColumn col in pk.ForeignColumns) - bRequired &= !col.IsNullable; - return bRequired; - } - private bool ForeignPrimary(IForeignKey fk) - { - bool bPrimary=true; - foreach(IColumn col in fk.ForeignColumns) - { - bPrimary &= col.IsInPrimaryKey; - } - return bPrimary; - } - public int FindColumn(IList cols, IColumn col) - { - for(int i=0;i= 0) - { - uniqueColumns.RemoveAt(ii); - } - else - { - uniqueColumns.Clear(); - } - } - if(uniqueColumns.Count > 0)// This is a uniqueIndex which includes the parent columns - { - //ShowColumns(uniqueColumns,4,"Unique Index " + ind.Name); - retval.Add(uniqueColumns); - } - } - } - return retval; - } - public bool ContainsList(IList lst1, IList lst2) - { - foreach(IColumn col in lst2) - if(FindColumn(lst1,col)<0)return false; - return true; - } - public IList FindUnique(ArrayList lst, IList cols) - { - foreach(IList lstcols in lst) - { - if(ContainsList(cols,lstcols))return lstcols; - } - return null; - } - public string ColumnListToString(IList lst) - { - string retval = ""; - string sep = ""; - foreach(IColumn col in lst) - { - retval += sep + col.Name; - sep=", "; - } - return retval; - } - //public ArrayList zzFilteredColumnsAny(IColumns columns,Filter [] fs){ - // ArrayList l = new ArrayList(); - // foreach(IColumn column in columns) - // { - // bool check = false; - // foreach(Filter f in fs)check |= f(column); - // if(check)l.Add(column); - // } - // return l; - //} - //public ArrayList zzExcludedColumnsAny(IColumns columns,Filter [] fs){ - // ArrayList l = new ArrayList(); - // foreach(IColumn column in columns) - // { - // bool check = false; - // foreach(Filter f in fs)check |= f(column); - // if(!check)l.Add(column); - // } - // return l; - //} - #endregion diff --git a/PROMS/MyGeneration/csla_21/ForeignKeyProcessing.cs b/PROMS/MyGeneration/csla_21/ForeignKeyProcessing.cs deleted file mode 100644 index c13c4fbf..00000000 --- a/PROMS/MyGeneration/csla_21/ForeignKeyProcessing.cs +++ /dev/null @@ -1,206 +0,0 @@ -// Foreign Key Processing - public delegate void ProcessFK(IForeignKey fk,string alias); - public string ParentName(IForeignKey fk) - { - if(fk == null)return "Parent"; - string sKey = fk.ForeignColumns[0].Name; - if(sKey.StartsWith("Prev") || sKey.StartsWith("Prv"))return "Previous"; - if(sKey.StartsWith("Next") || sKey.StartsWith("Nxt"))return "Next"; - return "Parent"; - } - public string ChildName(IForeignKey fk) - { - string sKey = fk.ForeignColumns[0].Name; - if(sKey.StartsWith("Prev") || sKey.StartsWith("Prv"))return "Next"; - if(sKey.StartsWith("Next") || sKey.StartsWith("Nxt"))return "Previous"; - return "Child"; - } - public string ChildrenName(IForeignKey fk) - { - string sKey = fk.ForeignColumns[0].Name; - if(sKey.StartsWith("Prev") || sKey.StartsWith("Prv"))return "Next"; - if(sKey.StartsWith("Next") || sKey.StartsWith("Nxt"))return "Previous"; - return "Children"; - } - public string GetAlias(Hashtable hTbl,ITable tbl) - { - string sAlias = tbl.Alias; - if(!hTbl.Contains(sAlias)) - { - hTbl[sAlias]=0; - return ""; - } -// WriteLine("-- Hashtable count = {0}, TableName = [{1}]",hTbl.Count,tbl.Name); - int iAlias = 1+ (int)hTbl[sAlias]; - hTbl[sAlias]=iAlias; -// return "_" + iAlias.ToString(); - return "_" + "ABCDEFGHIJKLMNOP".Substring(iAlias,1); - } - public string GetAlias(IForeignKey fk) - { - if(fk.PrimaryTable.Name == fk.ForeignTable.Name)return ""; - // First I need to check to see if there are more than one Foreign Keys pointing to the same Primary Table - int count=0; - foreach(IForeignKey fk1 in fk.ForeignTable.ForeignKeys) - { - if(fk1.PrimaryTable.Name == fk.PrimaryTable.Name) count++; - } - if(count > 1) - return FormatColumns("_{prop}",fk.ForeignColumns,"",""); - return ""; - } - public void ProcessFKAlias(ITable tbl,ProcessFK pfk) - { - Hashtable dicByNames = new Hashtable(); - foreach(ForeignKey fk in tbl.ForeignKeys) - { - if(fk.ForeignTable == tbl) - { - pfk(fk,GetAlias(dicByNames,fk.PrimaryTable)); - } - } - } - private bool IsPrimaryKey(IForeignKey fk) - { -// bool retval=true; -// foreach(IColumn c in fk.ForeignColumns)retval &= c.IsInPrimaryKey; - return SameList(fk.ForeignTable.PrimaryKeys,fk.ForeignColumns); -// return retval; -// return IsPrimaryKey(fk.ForeignColumns); - } - private bool IsPrimaryKey1(IForeignKey fk) - { -// bool retval=true; -// foreach(IColumn c in fk.ForeignColumns)retval &= c.IsInPrimaryKey; - return SameList(fk.PrimaryTable.PrimaryKeys,fk.PrimaryColumns); -// return retval; -// return IsPrimaryKey(fk.ForeignColumns); - } - private string ColumnList(IColumns cols) - { - string retval=""; - string sep = ""; - foreach(IColumn col in cols) - { - retval += sep + col.Name; - sep = ", "; - } - return retval; - } - private bool IsPrimaryKey(IColumns cols) - { - ITable tbl = cols[0].Table; - int match = tbl.PrimaryKeys.Count; - foreach(IColumn col in cols) - { - if(col.Table.Name != tbl.Name) - { -// WriteLine("Table Mismatch - {0},{1}",col.Table.Name,tbl.Name); - return false; // If it points to multiple tables, it is not a primary key - } - if(col.IsInPrimaryKey)match --; - else - { -// WriteLine("Not In Primary Key {0} in {1} ({2})",col.Name, tbl.Name, ColumnList(tbl.PrimaryKeys)); - return false; - } - } -// WriteLine("Match = {0}",match); - return match==0; - } - private bool IsPrimaryKey(IColumns cols1,IColumns cols2) - { - ITable tbl = cols1[0].Table; - int match = tbl.PrimaryKeys.Count; - foreach(IColumn col in cols1) - { - if(col.Table.Name != tbl.Name) - { -// WriteLine("Table Mismatch - {0},{1}",col.Table.Name,tbl.Name); - return false; // If it points to multiple tables, it is not a primary key - } - if(col.IsInPrimaryKey)match --; - else - { -// WriteLine("Not In Primary Key {0} in {1} ({2})",col.Name, tbl.Name, ColumnList(tbl.PrimaryKeys)); - return false; - } - } -// WriteLine("Match = {0}",match); - foreach(IColumn col in cols2) - { - if(col.Table.Name != tbl.Name) - { -// WriteLine("Table Mismatch - {0},{1}",col.Table.Name,tbl.Name); - return false; // If it points to multiple tables, it is not a primary key - } - if(col.IsInPrimaryKey)match --; - else - { -// WriteLine("Not In Primary Key {0} in {1} ({2})",col.Name, tbl.Name, ColumnList(tbl.PrimaryKeys)); - return false; - } - } -// WriteLine("Match = {0}",match); - return match==0; - } - private bool ManyToMany(ITable tbl,IForeignKey fk,IForeignKey pk) - { - if(tbl != fk.PrimaryTable)return false;// It should be the Primary Table - if(tbl == pk.PrimaryTable)return false;// It should not loop back to the Primary Table - if(fk.PrimaryTable == fk.ForeignTable)return false;// Ignore Parent/Child relationships - if(pk.PrimaryTable == pk.ForeignTable)return false;// Ignore Parent/Child relationships - // Now for the detail check - the primary columns in each foreign key should be the primary key in the primary table -// WriteLine("Checking Primary Keys - {0}",tbl.Name); - if(!IsPrimaryKey(fk.PrimaryColumns))return false; - if(!IsPrimaryKey(pk.PrimaryColumns))return false; - // And the foreign columns from both foreign keys should be the primary key in the foreigntable -// WriteLine("Checking Foreign Keys - {0}",tbl.Name); - if(!IsPrimaryKey(fk.ForeignColumns,pk.ForeignColumns))return false; - return true; - } - private bool OneToOne(ITable tbl) - { - // Check to see if the Primary Key is also the Foreign Part of a Foreign Key - foreach(IColumn col in tbl.PrimaryKeys) - { - if(IsPrimaryKey(col)) - { - foreach(IForeignKey fk in col.ForeignKeys) - { - //WriteLine("{0} {1} {2} {3} {4}",fk.Name,fk.PrimaryTable.Name,fk.ForeignTable.Name, - //fk.ForeignTable.Name == tbl.Name, fk.PrimaryTable.Name != tbl.Name); - if(fk.ForeignTable.Name == tbl.Name && fk.PrimaryTable.Name != tbl.Name ) - return true; - } - } - } - return false; - } - private bool AnyNotOneToOne(ITable tbl) - { - bool retval = true; - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(fk.ForeignTable == tbl) - { - if(!OneToOne(fk))return true; - //WriteLine("{0} {1} {2} {3} {4}",fk.Name,fk.PrimaryTable.Name,fk.ForeignTable.Name, - // fk.ForeignTable.Name == tbl.Name, fk.PrimaryTable.Name != tbl.Name); - retval = false; - } - } - return retval; - } - private bool OneToOne(IForeignKey fk1) - { - ITable tbl=fk1.ForeignTable; // Check to see if the Primary Key is also the Foreign Part of a Foreign Key -// WriteLine("{0} {1} {2} {3} {4}",fk1.Name,fk1.PrimaryTable.Name,fk1.ForeignTable.Name, -// fk1.ForeignTable.Name == tbl.Name, fk1.PrimaryTable.Name != tbl.Name); - foreach(IColumn col in fk1.ForeignColumns) - { -// WriteLine("Column {0} Primary {1}",col.Name,IsPrimaryKey(col)); - if(!IsPrimaryKey(col))return false; - } - return true; - } diff --git a/PROMS/MyGeneration/csla_21/FormatColumns.cs b/PROMS/MyGeneration/csla_21/FormatColumns.cs deleted file mode 100644 index 7fbf200d..00000000 --- a/PROMS/MyGeneration/csla_21/FormatColumns.cs +++ /dev/null @@ -1,563 +0,0 @@ -//// FormatColumns -// private string FormatColumnOld(string sFormat,IColumn column,string sAlias) -// { -// string s=sFormat; -// s=s.Replace("{member}",ColumnToMemberVariable(column));//m - Member _firstname -// s=s.Replace("{fmember}",(column.Table.Name==_workingTable.Name?"":"_" + ToClassName(column.Table.Name).ToLower() + sAlias)+ColumnToMemberVariable(column));//m - Member _firstname -// s=s.Replace("{pmember}",(column.Table.Name==_workingTable.Name?"":ToClassName(column.Table.Name).ToLower() + sAlias)+"."+ColumnToPropertyName(column));//m - Member _firstname -// s=s.Replace("{local}",ColumnToMemberVariable(column).Substring(1));//l Local firstname -// s=s.Replace("{prop}",ColumnToPropertyName(column)); -// s=s.Replace("{memberprop}",(column.IsInPrimaryKey ? ColumnToMemberVariable(column) : ColumnToPropertyName(column))); -// s=s.Replace("{@}",ColumnToParameterName(column)); -// s=s.Replace("{@new}",ColumnToNewParameterName(column)); -// string cType = ColumnToCSLAType(column); -// s=s.Replace("{ctype}",cType); -// s=s.Replace("{rmember}",vlnReturnMember(cType)); -// s=s.Replace("{rtype}",vlnReturnType(cType)); -//// s=s.Replace("{dbtype}",ColumnToMemberVariable(column).Substring(1)); -// s=s.Replace("{name}",column.Name); -// s=s.Replace("{class}",ToClassName(column.Table.Alias.Replace( " ", "" ))); -// s=s.Replace("{fname}",(column.Table.Name==_workingTable.Name?"":column.Table.Name.Replace(" ","")+sAlias+"_")+column.Name); -// s=s.Replace("{sqltype}",ColumnToSQLDbType(column)); -// s=s.Replace("{?ref}",(column.IsComputed || column.IsAutoKey ? "ref " : "")); -// s=s.Replace("{?dbtype}",(ColumnToCSLAType( column )=="SmartDate" ? ".DBValue" : "")); -// s=s.Replace("{?dbprefix}",(ColumnToCSLAType( column )=="SmartDate" ? "new SmartDate(" : "")); -// s=s.Replace("{?dbsuffix}",(ColumnToCSLAType( column )=="SmartDate" ? ").DBValue" : "")); -// s=s.Replace("{?dbsuff}",(ColumnToCSLAType( column )=="SmartDate" ? ")" : "")); -// s=s.Replace("{default}",ColumnDefault(column)); -// //s=s.Replace("{xxx}",""); -// return s; -// } -// private string FormatColumnOld(string sFormat,IColumn column) -// { -// return FormatColumn(sFormat,column,""); -// } -// private string ColumnToSQLDbType(IColumn column) -// { -// switch(column.DataTypeName) -// { -// case "timestamp": -// return "SqlDbType.Timestamp"; -// case "int": -// return "SqlDbType.Int"; -// default: -// //return "//TODO: Need to fix ColumnToSQLDbType" + " " + column.DataType + " " + column.DataTypeName + " " + column.DataTypeNameComplete + " " + column.DbTargetType; -// return "SqlDBType./* " + column.DataTypeNameComplete + " " + column.DbTargetType + "*/"; -// } -// } -// private string vlnReturnType(string sType) -// { -// string sReturnType=sType; -// if(sType=="SmartDate")sReturnType="string"; -// return sReturnType; -// } -// private string vlnReturnMember(string sType) -// { -// string sReturnMember=""; -// return sReturnMember; -// } -// private string FormatColumns(string sFormat,IColumns columns) -// { -// return FormatColumns(sFormat,columns,""); -// } -// private string FormatColumns(string sFormat,IList columns,string sep) -// { -// string s=""; -// string ssep=""; -// foreach(IColumn column in columns) -// { -// s+=ssep+FormatColumn(sFormat,column); -// ssep=sep; -// } -// return s; -// } -// private string ColumnToMemberVariable( IColumn Column ) -// { -// return _prefix + UniqueColumn( Column ).ToLower(); -// } -// -// private string ColumnToPropertyName( IColumn Column ) -// { -// return ToPascalCase( UniqueColumn( Column ) ); -// } -// -// private string ColumnFKToClassName( IColumn c ) -// { -// return ToPascalCase( c.ForeignKeys[0].PrimaryTable.Alias.Replace( " ", "" ) ); -// } -// private string ColumnToParameterName(IColumn col) -// { -// return "@" + ToLeadingLower(col.Name).Replace(" ",""); -// } -// private string ColumnToNewParameterName(IColumn col) -// { -// return "@new" + col.Name.Replace(" ",""); -// } -// private string ColumnToArgumentName( IColumn Column ) -// { -// return UniqueColumn( Column ).ToLower(); -// } -// -// private string ColumnToNHibernateProperty( IColumn Column ) -// { -// return _prefix + UniqueColumn( Column ); -// } -// -// private string UniqueColumn( IColumn Column ) -// { -// string c = Column.Alias.Replace( " ", "" ); -// if( Column.Table != null && Column.Table.Alias.Replace( " ", "" ) == c ) -// { -// c += "Name"; -// } -// if( Column.View != null && Column.View.Alias.Replace( " ", "" ) == c ) -// { -// c += "Name"; -// } -// return c; -// } -// -// // nhibernate doesn't have these, so use the existing types -// private string ColumnToCSLAType( IColumn Column ) -// { -// string retVal = Column.LanguageType; -// -// switch( Column.LanguageType ) -// { -// case "DateTime": -// if(Column.Description.IndexOf("{datetime}")>=0) -// retVal="DateTime"; -// else -// retVal = "SmartDate"; -// break; -// // case "uint": -// // retVal = "int"; -// // break; -// // case "ulong": -// // retVal = "long"; -// // break; -// // case "ushort": -// // retVal = "short"; -// // break; -// } -// return retVal; -// } -// private string ColumnToDefault( IColumn Column ) -// { -// string retVal=";"; -// if(Column.DataTypeName=="timestamp") -// { -// retVal = " = new byte[8];//timestamp"; -// } -// else -// { -// //if(Column.Default != ""){ -// // retVal = ConvertDefault(Column) + ";// TODO: Default from DB " + RemoveParens(Column.Default) + " "; -// //} -// //else -// //{ -// switch( ColumnToCSLAType(Column ) ) -// { -// case "string": -// retVal = " = string.Empty;"; -// break; -// case "DateTime": -// retVal = " = new DateTime();"; -// break; -// case "SmartDate": -// retVal = " = string.Empty;"; -// break; -// //case "Guid": -// // retVal = "=new Guid();"; -// // break; -// default: -// // nothing to do here -// break; -// } -// //} -// } -// return retVal; -// } -// string ConvertDefault(IColumn column) -// { -// string s = RemoveParens(column.Default); -// switch(s) -// { -// case "getdate()": -// if(ColumnToCSLAType(column)=="DateTime") -// s="=DateTime.Now"; -// else -// s="=DateTime.Now.ToShortDateString()"; -// break; -// case "upper(suser_sname())": -// s= "=Environment.UserName.ToUpper()"; -// break; -// case "suser_sname()": -// s="=Environment.UserName"; -// break; -// default: -// if(IsNumeric(s))s="=" + s; -// else s=""; -// break; -// } -// return s; -// } -// string ColumnDefault(IColumn column) -// { -// string s = RemoveParens(column.Default); -// switch(s) -// { -// case "getdate()": -// if(ColumnToCSLAType(column)=="DateTime") -// s="DateTime.Now"; -// else -// s="DateTime.Now.ToShortDateString()"; -// break; -// case "upper(suser_sname())": -// s= "Environment.UserName.ToUpper()"; -// break; -// case "suser_sname()": -// s="Environment.UserName"; -// break; -// default: -// if(IsNumeric(s))s="" + s; -// else s=""; -// break; -// } -// return s; -// } -// private string ToLeadingCaps( string name ) -// { -// char[] chars = name.ToLower().ToCharArray(); -// chars[0] = Char.ToUpper( chars[0] ); -// return new string( chars ); -// } -// -// -// private string ToPascalCase( string name ) -// { -// string notStartingAlpha = Regex.Replace( name, "^[^a-zA-Z]+", "" ); -// string workingString = ToLowerExceptCamelCase( notStartingAlpha ); -// workingString = RemoveSeparatorAndCapNext( workingString ); -// return workingString; -// } -// private string ToClassName(string name) -// { -// return Regex.Replace(ToPascalCase(name),"s$",""); -// } -// private string RemoveSeparatorAndCapNext( string input ) -// { -// string dashUnderscore = "-_"; -// string workingString = input; -// char[] chars = workingString.ToCharArray(); -// int under = workingString.IndexOfAny( dashUnderscore.ToCharArray() ); -// while( under > -1 ) -// { -// chars[ under + 1 ] = Char.ToUpper( chars[ under + 1 ], CultureInfo.InvariantCulture ); -// workingString = new String( chars ); -// under = workingString.IndexOfAny( dashUnderscore.ToCharArray(), under + 1 ); -// } -// chars[ 0 ] = Char.ToUpper( chars[ 0 ], CultureInfo.InvariantCulture ); -// workingString = new string( chars ); -// return Regex.Replace( workingString, "[-_]", "" ); -// } -// private string ToLowerExceptCamelCase( string input ) -// { -// char[] chars = input.ToCharArray(); -// for( int i = 0; i < chars.Length; i++ ) -// { -// int left = ( i > 0 ? i - 1 : i ); -// int right = ( i < chars.Length - 1 ? i + 1 : i ); -// if( i != left && i != right ) -// { -// if( Char.IsUpper( chars[i] ) && Char.IsLetter( chars[ left ] ) && Char.IsUpper( chars[ left ] ) ) -// { -// chars[i] = Char.ToLower( chars[i], CultureInfo.InvariantCulture ); -// } -// else if( Char.IsUpper( chars[i] ) && Char.IsLetter( chars[ right ] ) && Char.IsUpper( chars[ right ] ) ) -// { -// chars[i] = Char.ToLower( chars[i], CultureInfo.InvariantCulture ); -// } -// else if( Char.IsUpper( chars[i] ) && !Char.IsLetter( chars[ right ] ) ) -// { -// chars[i] = Char.ToLower( chars[i], CultureInfo.InvariantCulture ); -// } -// } -// } -// chars[ chars.Length - 1 ] = Char.ToLower( chars[ chars.Length - 1 ], CultureInfo.InvariantCulture ); -// return new string( chars ); -// } - private string FormatColumnNew(string sFormat,IColumn column) - { - return FormatColumnNew(sFormat,column,""); - } - private string FormatColumnNew(string sFormat,IColumn col,string sAlias) - { - string s=sFormat; - IColumn column = col.Table.Columns[col.Name]; -// IForeignKey fkkk = RelObjFK(column); - string relProp=RelObjProp(column); - string relType=RelObjType(column); - string suffix = "";//(PropertyName(column)==ClassName(column.Table)?"Fld":""); - s=s.Replace("{member}",MemberName(column)+suffix);//m - Member _firstname -//member _DocID - s=s.Replace("{fmember}",(column.Table.Alias==_tableName?"":_prefix + ClassName(column.Table)+sAlias)+MemberName(column)+suffix);//m - Member _firstname -//fmember _DocID - s=s.Replace("{pmember}",(column.Table.Alias==_tableName?_prefix:LocalName(ClassName(column.Table))+".")+PropertyName(column)+suffix);//m - Member _firstname -//pmember _DocID - s=s.Replace("{rmember}",LocalName(ClassName(column.Table))+"."+PropertyName(column));//m - Member _firstname -//rmember entry.DocID - s=s.Replace("{!prop}",relProp); -//!prop MyDocument - s=s.Replace("{!member}",MemberName(relProp)); -//!member _MyDocument -// s=s.Replace("{!membercolumn}",MemberName(relProp) + (IsRelObj(column)?"." + RelObjCol(column):"")); - s=s.Replace("{!membercolumn}",MemberName(relProp) + (IsRelObj(column)?"." + RelObjProp(RelObjCol2(column)):"")); -//!membercolumn _MyDocument.DocID - s=s.Replace("{!local}",LocalName(relProp)); -//!local myDocument - s=s.Replace("{!localcolumn}",LocalName(relProp) + (IsRelObj(column)?"." + RelObjCol(column):"")); -//!localcolumn myDocument.DocID - s=s.Replace("{!type}",relType); -//!type Document - s=s.Replace("{!rtype}",ReturnType(relType)); -//!rtype Document - s=s.Replace("{!memberprop}",(column.IsInPrimaryKey ? MemberName(relProp) : relProp)+suffix); -//!memberprop MyDocument - s=s.Replace("{!propmember}",(IsRelObj(column) ? relProp : MemberName(relProp))+suffix); -//!propmember MyDocument - s=s.Replace("{!column}",RelObjCol(column)); -//!column DocID - s=s.Replace("{!empty}",RelObjEmpty(column)); -//!empty 0 - s=s.Replace("{!typecast}",RelObjTypeCast(column)); -//!typecast - s=s.Replace("{local}",LocalName(column)+suffix);//l Local firstname -//local docID - s=s.Replace("{prop}",PropertyName(column)+suffix); -//prop DocID - s=s.Replace("{memberprop}",(column.IsInPrimaryKey ? MemberName(column) : PropertyName(column))+suffix); -//memberprop DocID - s=s.Replace("{@}",ParameterName(column)); -//@ @DocID - s=s.Replace("{@new}",NewParameterName(column)); -//@new @newDocID - string cType = CSLAType(column); - s=s.Replace("{ctype}",cType); -//ctype int - s=s.Replace("{ctype1}",cType.Replace("?","")); -//ctype1 int - s=s.Replace("{rmember}",ReturnMember(cType)); -//rmember entry.DocID - s=s.Replace("{rtype}",ReturnType(cType)); -//rtype int -// s=s.Replace("{dbtype}",LocalName(column)); - s=s.Replace("{dtype}",DBType(column)); -//dtype int - s=s.Replace("{name}",column.Name); -//name DocID - s=s.Replace("{class}",ClassName(column.Table)); -//class Entry - s=s.Replace("{fname}",(column.Table.Alias==_tableName?"":ClassName(column.Table)+sAlias+"_")+column.Name); -//fname DocID - s=s.Replace("{sqltype}",column.DbTargetType); -//sqltype SqlDbType.Int - s=s.Replace("{?ref}",(column.IsComputed || column.IsAutoKey ? "ref " : "")); -//?ref - s=s.Replace("{?dbtype}",(CSLAType( column )=="SmartDate" ? ".DBValue" : "")); -//?dbtype - s=s.Replace("{?dbprefix}",(CSLAType( column )=="SmartDate" ? "new SmartDate(" : "")); -//?dbprefix - s=s.Replace("{?dbsuffix}",(CSLAType( column )=="SmartDate" ? ").DBValue" : "")); -//?dbsuffix - s=s.Replace("{?dbsuff}",(CSLAType( column )=="SmartDate" ? ")" : "")); -//?dbsuff - s=s.Replace("{default}",DefaultValue(column)); -//default - s=s.Replace("{?output}",(column.IsComputed || column.IsAutoKey ? " output" : "")); -//?output - s=s.Replace("{@key}",ParamKeyName(column)); -//@key @DocID - s=s.Replace("{tbl}",column.Table.Name + sAlias); -//tbl Entries - s=s.Replace("{?null}",(column.IsNullable?"=null":"")); -//?null - s=s.Replace("{parent}",parentName(column)); -//parent myDocument.DocID - s=s.Replace("{Parent}",ParentName(column)); -//Parent DocID - s=s.Replace("{ParentType}",ParentTypeName(column)); -//ParentType */ - s=s.Replace("{autoseed}",AutoSeed(column)); - if(s.Contains("{ifLogic")) - { - string ifLogic=""; - switch (CSLAType(column)) - { - case("DateTime"): - ifLogic = "if ({name}.Year >= 1753 && {name}.Year <= 9999) "; - break; - case("DateTime?"): - ifLogic = "if ({name} != null && ((DateTime){name}).Year >= 1753 && ((DateTime){name}).Year <= 9999) "; - break; - default: - if(column.IsNullable && IsRelObj(column) && s.Contains("{ifLogicL")) - ifLogic="if ({name} != null) "; - break; - } - s=s.Replace("{ifLogicL}",ifLogic.Replace("{name}",FormatColumnNew("{!local}{?dbtype}",column,sAlias))); - s=s.Replace("{ifLogicl}",ifLogic.Replace("{name}",FormatColumnNew("{!local}{?dbtype}",column,sAlias))); - s=s.Replace("{ifLogicP}",ifLogic.Replace("{name}",FormatColumnNew("{?dbprefix}{member}{?dbsuffix}",column,sAlias))); - s=s.Replace("{ifLogic@}",ifLogic.Replace("{name}",FormatColumnNew("criteria.{prop}{?dbtype}",column,sAlias))); - //string name = FormatColumnNew("{local}{?dbtype}",column,sAlias); - //s=s.Replace("{ifLogicL}",(CSLAType(column)=="DateTime"?"if (" + name + ".Year >= 1753 && " + name + ".Year <= 9999) ":"" )); - //name = FormatColumnNew("{?dbprefix}{member}{?dbsuffix}",column,sAlias); - //s=s.Replace("{ifLogicP}",(CSLAType(column)=="DateTime"?"if (" + name + ".Year >= 1753 && " + name + ".Year <= 9999) ":"" )); - //name = FormatColumnNew("criteria.{prop}{?dbtype}",column,sAlias); - //s=s.Replace("{ifLogic@}",(CSLAType(column)=="DateTime"?"if (" + name + ".Year >= 1753 && " + name + ".Year <= 9999) ":"" )); - } - return s; - } - private string FormatColumnFKNew(string sFormat,IColumn column) - { - string s=sFormat; - s=s.Replace("{fkname}",column.Name); - s=s.Replace("{fktable}",column.Table.Name); - return s; - } - private string FormatPKColumns(string sFormat,IForeignKey pk,string sep,string sPrefix,ref string ssep,string sAlias) - { - string s=""; - foreach(IColumn column in pk.PrimaryTable.Columns) - { - if(!IsIn(column,pk.PrimaryColumns) && column.DataTypeName != "timestamp") - { - s+=ssep+sPrefix+FormatColumn(sFormat,column,sAlias); - ssep=sep; - } - } - return s; - } - private string FormatFKColumns(string sFormat,IForeignKey fk,string sep,string sPrefix,ref string ssep) - { - string s=""; - foreach(IColumn column in fk.ForeignTable.Columns) - { - //if(!IsIn(column,fk.ForeignColumns)) - //{ - s+=ssep+sPrefix+FormatColumn(sFormat,column); - ssep=sep; - //} - } - return s; - } - private bool IsIn(IColumn column,IColumns columns) - { - foreach(IColumn col in columns) - if(col.Name==column.Name && col.Table.Name == column.Table.Name) - return true; - return false; - } - private string FormatColumns(string sFormat,IList columns,ref string sep,string sPrefix,ref string ssep) - { - string s=""; - foreach(IColumn column in columns) - { - s+=ssep+sPrefix+FormatColumn(sFormat,column); - ssep=sep; - } - return s; - } - private string FormatColumns(string sFormat,IList columns,string sep) - { - return FormatColumns(sFormat,columns,sep,""); - } - private string FormatColumns(string sFormat,IList columns,string sep,string sPrefix) - { - string s=""; - string ssep=""; - foreach(IColumn column in columns) - { - s+=ssep+sPrefix+FormatColumn(sFormat,column); - ssep=sep; - } - return s; - } - private string FormatColumn(string sFormat,IColumn column) - { - return FormatColumn(sFormat,column,""); - } - private string FormatColumn(string sFormat,IColumn column,string sAlias) - { - return FormatColumnNew(sFormat,column,sAlias); - } - private string FormatColumns(string sFormat,IForeignKey FK,string sep,string sPrefix) - { - string s=""; - string ssep=""; - for(int i = 0;i 0) - { - btnOK.Enabled = true; - Status = string.Format("Will process: {0} {1}",status.Substring(2),lb.SelectedItems.Count); - } - else - { - Status = "Select one or more tables to process."; - btnOK.Enabled = false; - } - } - } - public void checkbox_onclick( GuiCheckBox control ) - { - SetupOkButton(); - } - public void chooseTable_onclick( GuiListBox control ) - { - SetupOkButton(); - } - private string GetDefault(string sName) - { - if( input.Contains( sName ) ) - { - return input[sName].ToString(); - } - return ""; - } - <%#FILE MakeGuiCheckBox.cs %> - -} -##|GUI_END -##|BODY_MODE Markup -##|BODY_ENGINE .Net Script -##|BODY_LANGUAGE C# -##|BODY_TAG_START <% -##|BODY_TAG_END %> -##|BODY_BEGIN -<% -public class GeneratedTemplate : DotNetScriptTemplate -{ - public GeneratedTemplate(ZeusContext context) : base(context) {} - //--------------------------------------------------- - // Render() is where you want to write your logic - //--------------------------------------------------- - public override void Render() - { - string dbName = input["chooseDatabase"].ToString(); - ArrayList selectedTables = input["chooseTables"] as ArrayList; - foreach(string tblName in selectedTables) - { - ITable tbl = MyMeta.Databases[dbName].Tables[tblName]; - if((bool)input["chkPrimary"])PrimaryKeys(tbl); - if((bool)input["chkColumns"])Details(tbl); - if((bool)input["chkFK"])ForeignKeys(tbl); - } - } - private void PrimaryKeys(ITable tbl) - { - output.writeln("Table - " + tbl.Name); - foreach(IColumn col in tbl.PrimaryKeys) - { - output.writeln(" Column - " + col.Name); - } - } - private void Details(ITable tbl) - { - Details(tbl,0); - } - private void Details(ITable tbl, int indent) - { - string sPad = "".PadRight(indent * 2); -%> <%=sPad%> Table - <%=tbl.Name%><% - foreach(IColumn col in tbl.Columns) - { - %> - <%=sPad%> Column - <%=col.Name%> <%=col.DataTypeNameComplete%><% - } - } - private void ForeignKeys(ITable tbl) - { - output.writeln("Table - " + tbl.Name); - foreach(IForeignKey fk in tbl.ForeignKeys) - { - %> - ForeignKey - <%=fk.Name%> - Primary -<%Details(fk.PrimaryTable,6);%> - Foreign -<%Details(fk.ForeignTable,6);%><% - } - } -} -%> -##|BODY_END diff --git a/PROMS/MyGeneration/csla_21/MakeGuiCheckBox.cs b/PROMS/MyGeneration/csla_21/MakeGuiCheckBox.cs deleted file mode 100644 index 67140b3e..00000000 --- a/PROMS/MyGeneration/csla_21/MakeGuiCheckBox.cs +++ /dev/null @@ -1,14 +0,0 @@ - public GuiCheckBox MakeGuiCheckBox(string name,string caption,bool def, string helptext,int width,GuiCheckBox related,int offX, int offY) - { - GuiCheckBox tmp = ui.AddCheckBox( name, caption, def, helptext ); - tmp.Width=width; - tmp.Top=related.Top+(offY<0?-offY * related.Height:offY); - tmp.Left=related.Left+(offX<0?-offX * related.Width:offX); - return tmp; - } - public GuiCheckBox MakeGuiCheckBox(string name,string caption,bool def, string helptext,int width) - { - GuiCheckBox tmp = ui.AddCheckBox( name, caption, def, helptext ); - tmp.Width=width; - return tmp; - } diff --git a/PROMS/MyGeneration/csla_21/NamingConvention.cs b/PROMS/MyGeneration/csla_21/NamingConvention.cs deleted file mode 100644 index 9741b69a..00000000 --- a/PROMS/MyGeneration/csla_21/NamingConvention.cs +++ /dev/null @@ -1,486 +0,0 @@ - private string FKSelectName(ITable tbl,IForeignKey FK,string sAlias) - { - if(tbl.Name == FK.PrimaryTable.Name)return ChildName(FK) + ClassesName(tbl.Name); - //return ClassesName(tbl.Name) + "By" + ClassName(FK.PrimaryTable) + sAlias; - return ClassesName(tbl.Name) + "By" + ForeignKeyName(FK) + sAlias; - } - private string ForeignKeyName(IForeignKey FK) - { - string retval=""; - string sep = ""; - - foreach(IColumn col in FK.ForeignColumns) - { - retval = retval + sep + ClassName(col.Name); - sep = "_And_"; - } - return retval; - } - private string FKFieldName(IForeignKey fk) - { - string cName = ClassName( fk.ForeignTable ); - string className=ClassName( fk.PrimaryTable ); - if(className==cName)return ChildName(fk); - return ClassName( fk.ForeignTable ); - } - private string FKFieldsName(IForeignKey fk) - { - string cName = ClassesName( fk.ForeignTable ); - string className=ClassesName( fk.PrimaryTable ); - if(className==cName)return ChildrenName(fk); - return cName; - } - private string FKClassesName(IForeignKey fk) - { - string cName = ClassesName( fk.ForeignTable ); - string className=ClassesName( fk.PrimaryTable ); - if(className==cName)return ChildName(fk) + ClassesName( fk.PrimaryTable ); - return ClassName( fk.PrimaryTable ) + cName; - } - private string FKClassName(string className,IForeignKey fk) - { - string cName = ClassName( fk.ForeignTable ); - if(className==cName)return ChildName(fk) + cName; - return className + cName; - } - private string FKClassName(IForeignKey fk) - { - string className=ClassName(fk.PrimaryTable); - return FKClassName(className,fk); - } - private string FKClassName1(string className,IForeignKey fk) - { - string cName = ClassName( fk.ForeignTable); - if(className==cName)return ChildName(fk) + cName; - return className + cName + GetAlias(fk); - } - private string FKClassName1(IForeignKey fk) - { - string className=ClassName(fk.PrimaryTable); - return FKClassName1(className,fk); - } - private string FKBy(IForeignKey fk) - { - if(fk.PrimaryTable.Name==fk.ForeignTable.Name)return ChildrenName(fk); - return "By" +FormatColumns("{prop}",fk.ForeignColumns,"_",""); - } - private string FKAndString(string className,IForeignKey fk,string str) - { - string cName = ClassName( fk.ForeignTable ); - if(className==cName)return str; - return ""; - } - private string FKCountName(ITable tbl,IForeignKey FK,string sAlias) - { - if(tbl.Name == FK.ForeignTable.Name)return ChildName(FK); - return ClassName(FK.ForeignTable) + sAlias; - } - private bool FKParent(ITable tbl) - { - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(fk.PrimaryTable == fk.ForeignTable)return true; - } - return false; - } - private IForeignKey FKParentFK(ITable tbl) - { - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(fk.PrimaryTable == fk.ForeignTable)return fk; - } - return null; - } - private bool IsParentCol(IColumn col) - { - IForeignKey fk = FKParentFK(col.Table); - if(fk==null)return false; - foreach(IColumn col1 in fk.ForeignColumns) - { - if(col.Name==col1.Name)return true; - } - return false; - } - private string parentName(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp == null) - { - if(IsRelObj(col))return LocalName(RelObjProp(col)) + "." + RelObjCol(col); - return LocalName(RelObjProp(col)); - } - return "my" + ParentName(col.ForeignKeys[0]) + "." + PropertyName(colp.Name); - } - private string ParentName(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp == null) - { - if(IsRelObj(col))return PropertyName(col); - return MemberName(RelObjProp(col)); - } - return PropertyName(col.Name); - } - private string ParentRef(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp != null) return ClassName(col.Table) + ".Get(" + RelObjTypeCast(col) + MemberName(col) + ")"; - return null; - } - private string ParentRefU(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp != null) return RelObjTypeCast(col) + MemberName(col); - return null; - } - private string ParentRefU2(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp != null) return MemberName(col); - return null; - } - private string ParentTypeName(IColumn col) - { - IColumn colp = ParentCol(col); - if (colp != null) return ClassName(col.Table) + " myParent"; - return null; - } - private IColumn ParentCol(IColumn col) - { - IForeignKey fk = FKParentFK(col.Table); - if(fk==null)return null; - return RelatedColumnF(col,fk); - } - private bool IsParentColumn(IColumn col) - { - IForeignKey fk = FKParentFK(col.Table); - if(fk==null)return false; - foreach(IColumn colf in fk.ForeignColumns) - if(colf.Name == col.Name)return true; - return false; - } - private string AutoSeed(IColumn col) - { - IForeignKey fk = FKParentFK(col.Table); - if(fk==null)return null; - IColumn colp = RelatedColumnF(col,fk); - if(colp==null)return ""; - return (colp.IsAutoKey?colp.AutoKeySeed.ToString():""); - } - - private IColumn RelatedColumn(IColumn column,IForeignKey fk){ - if(column.Table.Name == fk.PrimaryTable.Name && fk.ForeignColumns.Count == 1){ - return fk.ForeignColumns[0]; - } - if(column.Table.Name == fk.ForeignTable.Name && fk.PrimaryColumns.Count == 1){ - return fk.PrimaryColumns[0]; - } - return null; - } - private IColumn RelatedColumnF(IColumn col,IForeignKey fk){ - for(int i =0; i < fk.PrimaryColumns.Count;i++) // Loop through the related columns - { - IColumn pcol=fk.PrimaryColumns[i]; // This is the primary column - IColumn fcol=fk.ForeignColumns[i]; // This is the foreign column - //if(pcol.Name == col.Name && pcol.Table.Name == col.Table.Name)return fcol; - if(fcol.Name == col.Name && fcol.Table.Name == col.Table.Name)return pcol; - } - return null; - } - private IColumn RelatedColumnP(IColumn col,IForeignKey fk){ - for(int i =0; i < fk.PrimaryColumns.Count;i++) // Loop through the related columns - { - IColumn pcol=fk.PrimaryColumns[i]; // This is the primary column - IColumn fcol=fk.ForeignColumns[i]; // This is the foreign column - if(pcol.Name == col.Name && pcol.Table.Name == col.Table.Name)return fcol; - //if(fcol.Name == col.Name && fcol.Table.Name == col.Table.Name)return pcol; - } - return null; - } - private IColumn RelatedColumnB(IColumn col,IForeignKey fk){ - for(int i =0; i < fk.PrimaryColumns.Count;i++) // Loop through the related columns - { - IColumn pcol=fk.PrimaryColumns[i]; // This is the primary column - IColumn fcol=fk.ForeignColumns[i]; // This is the foreign column - if(pcol.Name == col.Name && pcol.Table.Name == col.Table.Name)return fcol; - if(fcol.Name == col.Name && fcol.Table.Name == col.Table.Name)return pcol; - } - return null; - } - private string ProcessName(Match m) - { - return m.Value.TrimStart("-_ ".ToCharArray()).ToUpper(); - } - private string Suffix(IColumn col) - { - //return (PropertyName(col.Name)==_className?"Fld":""); - return (PropertyName(col.Name)==ClassName(col.Table.Name)?"Fld":""); - } - private string PropertyName(IColumn col) - { - return PropertyName(col.Name)+Suffix(col); - } - private string PropertyName(string name) - { - return Regex.Replace(name, "^[a-z]|[-_ ][a-zA-Z0-9]",new MatchEvaluator(ProcessName)); - } - private bool MixedCase(string s) - { - bool hasUpper = false; - bool hasLower = false; - foreach (char c in s.ToCharArray()) - { - hasUpper |= Char.IsUpper(c); - hasLower |= char.IsLower(c); - if (hasLower && hasUpper) return true; - } - return false; - } - private string MemberName(string name) - { - return _prefix + name; - } - private string MemberName(IColumn c) - { - return MemberName(PropertyName(c)); - } - private string LocalName(IColumn col) - { - return LocalName(col.Name)+Suffix(col); - } - private string LocalName(string s) - { - s=PropertyName(s); - if(MixedCase(s))return ToLeadingLower(s); - else return s.ToLower(); - } - private string ClassName(string name) - { - return SingularName(PropertyName(name)); - } - private string ClassName(ITable table) - { - return ClassName(table.Alias); - } - private string ClassName(IView view) - { - return ClassName(view.Alias); - } - private string ClassName(IColumn column) - { - if(column.Table != null)return ClassName(column.Table); - if(column.View != null)return ClassName(column.View); - return null; - } - private string ClassesName(string name) - { - return PluralName(PropertyName(name)); - } - private string ClassesName(ITable table) - { - return ClassesName(table.Alias); - } - private string ClassesName(IView view) - { - return ClassesName(view.Name); - } - private string ClassesName(IColumn column) - { - if(column.Table != null)return ClassesName(column.Table); - if(column.View != null)return ClassesName(column.View); - return null; - } - private string SingularName(string s) - { - if(Regex.IsMatch(s,"crises$"))return Regex.Replace(s,"crises$","crisis"); - if(Regex.IsMatch(s,"uses$"))return Regex.Replace(s,"uses$","us"); - if(Regex.IsMatch(s,"is$"))return s; - if(Regex.IsMatch(s,"us$"))return s; - if(Regex.IsMatch(s,"sses$"))return Regex.Replace(s,"sses$","ss"); - if(Regex.IsMatch(s,"ches$"))return Regex.Replace(s,"ches$","ch"); - if(Regex.IsMatch(s,"ies$"))return Regex.Replace(s,"ies$","y"); - if(Regex.IsMatch(s,"ss$"))return s; - return Regex.Replace(s,"s$",""); - } - private string PluralName(string s) - { - s=SingularName(s); - if(Regex.IsMatch(s,"crisis$"))return Regex.Replace(s,"crisis$","crises"); - if(Regex.IsMatch(s,"us$"))return Regex.Replace(s,"us$","uses"); - if(Regex.IsMatch(s,"ises$"))return s; - if(Regex.IsMatch(s,"uses$"))return s; - if(Regex.IsMatch(s,"ss$"))return Regex.Replace(s,"ss$","sses"); - if(Regex.IsMatch(s,"ch$"))return Regex.Replace(s,"ch$","ches"); - if(Regex.IsMatch(s,"y$"))return Regex.Replace(s,"y$","ies"); - return s + "s"; - } - private string ReturnType(string type) - { - if(type=="SmartDate")type="string"; - return type; - } - private string ReturnMember(string type) - { - string member=""; - return member; - } - private string CSLAType(IColumn column) - { - return CSLAType(column,(column.IsNullable? "?":"")); - } - private string CSLAType(IColumn column,string suffix) - { - string type = column.LanguageType; - switch( column.LanguageType ) - { - case "DateTime": - if(column.Description.IndexOf("{datetime}")>=0) - type="DateTime" + suffix; - else - type = "SmartDate"; - break; - case "short": - type="Int16" + suffix; - break; - case "string": - break; - case "byte[]": - break; default: - type += suffix; - break; - // case "uint": - // retVal = "int"; - // break; - // case "ulong": - // retVal = "long"; - // break; - // case "ushort": - // retVal = "short"; - // break; - - } - return type; - } - string DefaultValue(IColumn column) - { - string s = RemoveParens(column.Default); - switch(s) - { - case "getdate()": - if(CSLAType(column)=="DateTime") - s="DateTime.Now"; - else - s="DateTime.Now.ToShortDateString()"; - break; - case "upper(suser_sname())": - s= "Environment.UserName.ToUpper()"; - break; - case "suser_sname()": - s="Environment.UserName"; - break; - default: - if(IsNumeric(s)) - s = "" + s; - else - { - if(s.StartsWith("N'")) - s = "\"" + s.Substring(2,s.Length-3) + "\""; - } - //else s=""; - break; - } - return s; - } - private string InitializeValue( IColumn Column ) - { - string retVal=";"; - if(Column.DataTypeName=="timestamp") - { - retVal = " = new byte[8];//timestamp"; - } - else - { - //if(Column.Default != ""){ - // retVal = ConvertDefault(Column) + ";// TODO: Default from DB " + RemoveParens(Column.Default) + " "; - //} - //else - //{ - switch( CSLAType(Column ) ) - { - case "string": - retVal = " = string.Empty;"; - break; - case "DateTime": - retVal = " = new DateTime();"; - break; - case "SmartDate": - retVal = " = string.Empty;"; - break; - //case "Guid": - // retVal = "=new Guid();"; - // break; - default: - // nothing to do here - break; - } - //} - } - return retVal; - } - public static bool IsNumeric(string stringToTest) - { - double newVal; - return double.TryParse(stringToTest, NumberStyles.Any, NumberFormatInfo.InvariantInfo, out newVal); - } - private string RemoveParens(string s) - { - while(s.StartsWith("(") && s.EndsWith(")")) - s=s.Substring(1,s.Length-2); - return s; - } - private string ParameterName(IColumn column) - { - return "@" + PropertyName(column.Name); - } - private string NewParameterName(IColumn column) - { - return "@new" + PropertyName(column.Name); - } - private string ParamKeyName(IColumn column) - { - if(column.IsAutoKey)return NewParameterName(column); - return ParameterName(column); - } - private string ToLeadingLower( string name ) - { - char[] chars = name.ToCharArray(); - chars[0] = Char.ToLower( chars[0] ); - return new string( chars ); - } - private string DBType(IColumn column) - { - string s=column.DataTypeNameComplete; - switch(s){ - case "text": - s="varchar(MAX)"; - break; - case "ntext": - s="nvarchar(MAX)"; - break; - } - return s; - } -// Old ---------------------------------------------- -// private string ToClassName(string name) -// { -// return Regex.Replace(ToPascalCase(name),"s$",""); -// } -// private string ColumnToMemberVariable( IColumn Column ) -// { -// return _prefix + UniqueColumn( Column ).ToLower(); -// } -// -// private string ColumnToPropertyName( IColumn Column ) -// { -// return ToPascalCase( UniqueColumn( Column ) ); -// } diff --git a/PROMS/MyGeneration/csla_21/WriteLine.cs b/PROMS/MyGeneration/csla_21/WriteLine.cs deleted file mode 100644 index 25f93007..00000000 --- a/PROMS/MyGeneration/csla_21/WriteLine.cs +++ /dev/null @@ -1,27 +0,0 @@ - private void WriteLine(string format,params object [] args) - { - output.writeln(string.Format(format,args)); - } - private void Write(string format,params object [] args) - { - output.write(string.Format(format,args)); - } - private void WriteProp(object arg) - { - WriteProp(",",arg,""); - } - private void WriteProp(string prefix,object arg,string suffix) - { - try - { - if(arg.GetType()==typeof(string))Write("{0}\"{1}\"{2}",prefix,arg,suffix); - else if(arg.GetType().IsPrimitive)Write("{0}{1}{2}",prefix,arg,suffix); - else Write("{0}\"{1}\"{2}",prefix,arg,suffix); - } - catch(Exception) - { - Write("{0}{2}",prefix,arg,suffix); - } - } - - diff --git a/PROMS/MyGeneration/csla_21/vlnCSLA_SQL.csgen b/PROMS/MyGeneration/csla_21/vlnCSLA_SQL.csgen deleted file mode 100644 index e0c29fac..00000000 --- a/PROMS/MyGeneration/csla_21/vlnCSLA_SQL.csgen +++ /dev/null @@ -1,759 +0,0 @@ -##|TYPE Template -##|UNIQUEID d6b504d5-d9c6-42fe-8819-07780ea72506 -##|TITLE CSLA Stored Procedures - Volian -##|NAMESPACE CSLA_21 -##|SOURCE_TYPE Source -##|OUTPUT_LANGUAGE Transact-SQL -##|GUI_ENGINE .Net Script -##|GUI_LANGUAGE C# -##|GUI_BEGIN - -public class GeneratedGui : DotNetScriptGui -{ - public GeneratedGui(ZeusContext context) : base(context) {} - - //----------------------------------------- - // The User Interface Entry Point - //----------------------------------------- - public override void Setup() - { - if ( !input.Contains( "chooseTables" ) || !input.Contains( "txtPath" ) || - ( !input.Contains( "chkClass" ) && !input.Contains( "chkNaming" ) ) ) - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.ReadInputFromCache(context); - ui.Title = "CSLA Object Mapping"; - ui.Width = 600; - ui.Height = 660; - GuiLabel label1 = ui.AddLabel( "label1", "Select the output path:", "Select the output path in the field below." ); - //label1.Width = 200; - GuiTextBox outputPath = ui.AddTextBox( "outputPath", GetDefault("defaultOutputPath"), "Select the Output Path." ); - outputPath.Width = 450; - GuiFilePicker selectPath = ui.AddFilePicker( "selectPath", "Select Path", "Select the Output Path.", "outputPath", true ); - selectPath.Top = outputPath.Top; - selectPath.Width = 100; - selectPath.Left = outputPath.Left + outputPath.Width + 20; - - GuiLabel label2 = ui.AddLabel( "label2", "Namespace: ", "Provide your objects namespace." ); - label2.Width = 280; - GuiTextBox classNamespace = ui.AddTextBox( "classNamespace", "Volian.Object.Library", "Provide your objects namespace." ); - classNamespace.Width = 280; - - GuiLabel label3 = ui.AddLabel( "label3", "Member prefix: ", "Provide your member prefix." ); - label3.Width = 100; - label3.Top = label2.Top; - label3.Left = label2.Width + 20; - GuiTextBox memberPrefix = ui.AddTextBox( "memberPrefix", "_", "Provide your member prefix." ); - memberPrefix.Width = 100; - memberPrefix.Top = classNamespace.Top; - memberPrefix.Left = classNamespace.Width + 20; - - GuiLabel label3A = ui.AddLabel( "label3A", "dbConnection: ", "Provide a Connection Name." ); - label3A.Width = 150; - label3A.Top = label3.Top; - label3A.Left = label3.Left+label3.Width + 10; - GuiTextBox dbConnection = ui.AddTextBox( "dbConnection", "VEPROMS", "Provide a Connection Name." ); - dbConnection.Width = 150; - dbConnection.Top = memberPrefix.Top; - dbConnection.Left = memberPrefix.Left + memberPrefix.Width + 10; - - // Setup Database selection combobox. - GuiLabel label4 = ui.AddLabel( "label4", "Select a database:", "Select a database in the dropdown below." ); - label4.Width = 280; - GuiComboBox chooseDatabase = ui.AddComboBox( "chooseDatabase", "Select a database." ); - chooseDatabase.Width = 280; - - GuiCheckBox chkSelect = MakeGuiCheckBox( "chkSelect", "Select All", true, "Select All Records",100 ); - GuiCheckBox chkUpdate = MakeGuiCheckBox( "chkUpdate", "Update One", true, "Update One Record" ,150,chkSelect,150,0); - GuiCheckBox chkFiles = MakeGuiCheckBox( "chkFiles", "Files", true, "Create Files" ,150,chkUpdate,200,0); - GuiCheckBox chkInsert = MakeGuiCheckBox( "chkInsert", "Insert One", true, "Insert One Record" ,150,chkSelect,0,-1); - GuiCheckBox chkDelete = MakeGuiCheckBox( "chkDelete", "Delete One", true, "Delete One Record" ,150,chkInsert,150,0); - GuiCheckBox chkSelectPK = MakeGuiCheckBox( "chkSelectPK", "Select One", true, "Select One Record" ,150,chkInsert,0,-1); - GuiCheckBox chkExists = MakeGuiCheckBox("chkExists","Exists",true,"Check Record Exists",150,chkSelectPK,150,0); - GuiCheckBox chkPurge = MakeGuiCheckBox("chkPurge","Purge",true,"Purge All Data",150,chkSelectPK,0,-1); - GuiCheckBox chkSelectFKs = MakeGuiCheckBox("chkSelectFKs","Select Group",true,"Select by Foreign Key",150,chkPurge,150,0); - - // Setup Tables selection multi-select listbox. - GuiLabel label7 = ui.AddLabel( "label7", "Select tables:", "Select tables from the listbox below." ); - //label7.Top = chkEqualsHashCode.Top + 20; - GuiListBox chooseTables = ui.AddListBox( "chooseTables", "Select tables." ); - chooseTables.Height = 120; - - // Setup Views selection multi-select listbox. - GuiLabel label8 = ui.AddLabel( "label8", "Select views:", "Select views from the listbox below." ); - GuiListBox chooseViews = ui.AddListBox( "chooseViews", "Select views." ); - chooseViews.Height = 120; - - // Attach the onchange event to the cmbDatabases control. - setupDatabaseDropdown( chooseDatabase ); - chooseDatabase.AttachEvent( "onchange", "chooseDatabase_onchange" ); - - ui.ShowGui = true; - } - else - { - ui.ShowGui = false; - } - } - public void setupDatabaseDropdown( GuiComboBox Databases ) - { - try - { - if( MyMeta.IsConnected ) - { - Databases.BindData( MyMeta.Databases ); - if( MyMeta.DefaultDatabase != null ) - { - Databases.SelectedValue = MyMeta.DefaultDatabase.Alias; - bindTables( Databases.SelectedValue ); - bindViews( Databases.SelectedValue ); - } - } - } - catch - { - } - } - - public void bindTables( string sDatabase ) - { - //int count = 0; - - GuiListBox lstTables = ui["chooseTables"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstTables.BindData(db.Tables); - } - catch - { - } - } - - public void bindViews( string sDatabase ) - { - //int count = 0; - - GuiListBox lstViews = ui["chooseViews"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstViews.BindData( db.Views ); - } - catch - { - } - } - - public void chooseDatabase_onchange( GuiComboBox control ) - { - //int count = 0; - - GuiComboBox cmbDatabases = ui["chooseDatabase"] as GuiComboBox; - - bindTables( cmbDatabases.SelectedText ); - bindViews( cmbDatabases.SelectedText ); - GuiTextBox dbConnection = ui["dbConnection"] as GuiTextBox; - dbConnection.Text=cmbDatabases.SelectedText; - GuiTextBox classNamespace = ui["classNamespace"] as GuiTextBox; - classNamespace.Text=cmbDatabases.SelectedText + ".Object.Library"; - } - private string GetDefault(string sName) - { - if( input.Contains( sName ) ) - { - return input[sName].ToString(); - } - return ""; - } - <%#FILE MakeGuiCheckBox.cs %> - -} -##|GUI_END -##|BODY_MODE Markup -##|BODY_ENGINE .Net Script -##|BODY_LANGUAGE C# -##|BODY_TAG_START <% -##|BODY_TAG_END %> -##|BODY_BEGIN -<%#NAMESPACE System.IO, System.Text, System.Text.RegularExpressions, System.Globalization %><% -public class GeneratedTemplate : DotNetScriptTemplate -{ - public GeneratedTemplate(ZeusContext context) : base(context) {} - // Members - private string _dbName; - private ArrayList _selectedTables; - private ArrayList _selectedViews; - private string _exportPath; - private string _nameSpace; - private string _prefix; - private string _dbConnection; - private string _tableName; - private string _className=""; - private ITable _workingTable; - //private Hashtable dicRead; - //private Hashtable dicReadI; - public void SaveFile(string sProc) - { - if((bool)input["chkFiles"]){ - output.save( Path.Combine( _exportPath, sProc + ".SQL" ), false ); - //output.writeln("--" + Path.Combine( _exportPath, "CSLA.SQL" )); - output.clear(); - } - } - public delegate bool Filter(IColumn column); - //--------------------------------------------------- - // Render() is where you want to write your logic - //--------------------------------------------------- - public override void Render() - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.SaveInputToCache(context); - InitializeMembers(); - if((bool)input["chkPurge"])SQLPurge(); - foreach(string sTable in _selectedTables) - { - ITable tbl = MyMeta.Databases[_dbName].Tables[sTable]; - _workingTable=tbl; - if((bool)input["chkSelect"])SQLSelect(tbl);// Load all records - if((bool)input["chkUpdate"])SQLUpdate(tbl);// Update single record based upon Primary Key - if((bool)input["chkInsert"])SQLInsert(tbl);// Insert single record - if((bool)input["chkDelete"])SQLDelete(tbl);// Delete single record based upon Primary Key - if((bool)input["chkSelectPK"])SQLSelectPK(tbl);// Load one record by Primary Key - if((bool)input["chkSelectPK"])SQLSelectUnique(tbl);// Load one record by Primary Key - if((bool)input["chkSelectPK"])SQLSelectParent(tbl);// Load one record by Primary Key - if((bool)input["chkExists"])SQLExists(tbl);// Check for existance by Primary Key - if((bool)input["chkSelectFKs"])SQLSelectFKs(tbl);// Load all records by Foreign Keys - //SQLIndexes(tbl); - } - _exportPath = input["outputPath"].ToString(); - //SaveFile(); - } - private void SQLIndexes(ITable tbl) - { - foreach(IIndex ind in tbl.Indexes) - { - if(!ind.Name.StartsWith("PK_")) - { - output.writeln(ind.Name); - foreach(IColumn col in ind.Columns) - { - output.writeln(" " + col.Name); - } - } - } - } - private IColumn IntegerIdentity(ITable tbl) - { - if(tbl.PrimaryKeys.Count == 1){ - IColumn c = tbl.PrimaryKeys[0]; - if(c.IsAutoKey && c.DataTypeName != "Guid")return c; - } - return null; - } - private void SQLPurge() - { - StartProc("purgeData"); - %> -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION<% - ArrayList toProcess = new ArrayList(); - ArrayList processed = new ArrayList(); - foreach(string sTable in _selectedTables) - { - toProcess.Add(MyMeta.Databases[_dbName].Tables[sTable]); - } - while(toProcess.Count > processed.Count) - { - int pCount = processed.Count; - foreach(ITable tbl in toProcess) - { - if(!processed.Contains(tbl)) - { - int count=0; - IColumn colid = IntegerIdentity(tbl); - string sSeed = (colid==null?"0":(colid.AutoKeySeed - colid.AutoKeyIncrement).ToString()); -// output.writeln(string.Format("111 - {0} - {1},{2}",colid.Name,colid.AutoKeySeed,colid.AutoKeyIncrement)); - string sWhere = ""; - foreach(ForeignKey fk in tbl.ForeignKeys) - { - if(fk.PrimaryTable.Name == tbl.Name) - { - if(fk.ForeignTable.Name != tbl.Name) - { - if(toProcess.Contains(fk.ForeignTable) && !processed.Contains(fk.ForeignTable)) - count++; - } - else - { - // sWhere = string.Format(" WHERE {0} <> {1}",colid.Name,colid.AutoKeySeed); - // sSeed = (colid==null?"0":(colid.AutoKeySeed + colid.AutoKeyIncrement).ToString()); -// // output.writeln(string.Format("222 - {0} - {1},{2}",colid.Name,colid.AutoKeySeed,colid.AutoKeyIncrement)); - } - } - } - if(count == 0) - { -%> - delete from [<%=tbl.Name%>]<%=sWhere%><% - // Need logic to only do this for identity columns - if(colid != null) - { -%> - dbcc checkident([<%=tbl.Name%>],reseed,<%=sSeed%>)<% - } - processed.Add(tbl); - } - } - } - if(processed.Count ==pCount)return; - } - EndProcTran("purgeData"); - } - private void InitializeMembers() - { - _dbName = input["chooseDatabase"].ToString(); - _selectedTables = input["chooseTables"] as ArrayList; - _selectedViews = input["chooseViews"] as ArrayList; - _exportPath = input["outputPath"].ToString(); - _nameSpace = input["classNamespace"].ToString(); - _prefix = input["memberPrefix"].ToString(); - _dbConnection = input["dbConnection"].ToString(); - } - //---------------------------------------------------------------------- - // Select - //---------------------------------------------------------------------- - private void SQLSelect(ITable tbl) - { - string sproc = "get" + ClassesName(tbl); - StartProc(sproc); -%> -WITH EXECUTE AS OWNER -AS - SELECT -<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> - FROM [<%=tbl.Name%>]<% - EndProc(sproc); - } - private string FKCounts(ITable tbl) - { - string retval=""; - Hashtable dicAlias = new Hashtable(); - foreach(ForeignKey FK in tbl.ForeignKeys) - { - if(FK.PrimaryTable == tbl) - { - //string sAlias = GetAlias(dicAlias,FK.ForeignTable); - string sAlias = GetAlias(FK); - string sep=""; - string sAliasFK = FK.ForeignTable.Name; - string sAliasFK2 = ""; - if(FK.PrimaryTable == FK.ForeignTable) - { - sAliasFK=ChildrenName(FK); - sAliasFK2=" [" + sAliasFK + "]"; - } - retval += ",\r\n\t\t(SELECT COUNT(*) FROM [" + FK.ForeignTable.Name + "]" + sAliasFK2 + " WHERE "; - for(int i=0;i - -- Update cannot be performed on <%=tbl.Name%> since it doesn't contain - -- any columns that are not part of the Primary Key -<% - return; - } - string sproc = "update" + ClassName(tbl); - StartProc(sproc); - %> -( -<%=FormatColumns("{@} {dtype}{?null}",tbl.Columns,",\r\n","\t")%><%=FormatColumns("{@new} {dtype} output",Computed(tbl),"",",\r\n\t")%> -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [<%=tbl.Name%>] - SET -<%=FormatColumns("[{name}]={@}",Updatable(tbl),",\r\n","\t\t\t")%> - WHERE <%=FormatColumns("[{name}]={@}",NotUpdatable(tbl)," AND ","")%> - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [<%=tbl.Name%>] WHERE <%=FormatColumns("[{name}]={@}",PrimaryKey(tbl)," AND ","")%>) - RAISERROR('<%=ClassName(tbl)%> record has been deleted by another user', 16, 1) - ELSE - RAISERROR('<%=ClassName(tbl)%> has been edited by another user', 16, 1) - END -<% - if(Computed(tbl).Count > 0){ -%> - SELECT <%=FormatColumns("{@new}=[{name}]",Computed(tbl),",\r\n","\t\t")%> - FROM [<%=tbl.Name%>] WHERE <%=FormatColumns("[{name}]={@}",tbl.PrimaryKeys," AND ","")%> -<% - } - EndProcTran(sproc); - } - //---------------------------------------------------------------------- - // Insert - //---------------------------------------------------------------------- - private void SQLInsert(ITable tbl) - { - string sproc = "add" + ClassName(tbl); - StartProc(sproc); -%> -( -<%=FormatColumns("{@} {dtype}{?null}",Insertable(tbl),",\r\n","\t")%><%=FormatColumns("{@new} {dtype} output",NotInsertable(tbl),"",",\r\n\t")%> -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [<%=tbl.Name%>] - ( -<%=FormatColumns("[{name}]",Insertable(tbl),",\r\n","\t\t")%> - ) - VALUES - ( -<%=FormatColumns("{@}",Insertable(tbl),",\r\n","\t\t")%> - ) -<%=FormatColumns("SELECT {@new}= SCOPE_IDENTITY()",AutoKey(tbl),"\r\n","\t")%><% - // Update Output Values - ArrayList cmp = Computed(tbl); - if(cmp.Count > 0){ -%> - SELECT <%=FormatColumns("{@new}=[{name}]",cmp,"\r\n","\t\t")%> - FROM [<%=tbl.Name%>] WHERE <%=FormatColumns("[{name}]={@key}",tbl.PrimaryKeys," AND ","")%><% - } - EndProcTran(sproc); - } - //---------------------------------------------------------------------- - // Delete - //---------------------------------------------------------------------- - private void SQLDelete(ITable tbl) - { - string sproc = "delete" + ClassName(tbl); - StartProc(sproc); -%> -( -<%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION<% - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(tbl != fk.ForeignTable) - { -%> - DELETE [<%=fk.ForeignTable.Name%>] - WHERE<% - string sep = " "; - for(int j=0;j - DELETE [<%=tbl.Name%>] - WHERE <%=FormatColumns("[{name}] = {@}",tbl.PrimaryKeys," AND ","")%><% - EndProcTran(sproc); - } - //---------------------------------------------------------------------- - // SelectPK - //---------------------------------------------------------------------- - private void SQLSelectPK(ITable tbl) - { - string sproc = "get" + ClassName(tbl); - StartProc(sproc); - %> -( -<%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS - SELECT -<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> - FROM [<%=tbl.Name%>] - WHERE <%=FormatColumns("[{name}]={@}",tbl.PrimaryKeys," AND ","")%><% - // Need to loop through foreign keys and select related records - FKSelects(tbl); - EndProc(sproc); - } - private bool IsPrimaryKey(IIndex ind) - { - IColumns colsi = ind.Columns; - IColumns colsp = ind.Table.PrimaryKeys; - if(colsi.Count != colsp.Count)return false; - for(int i=0;i( -<%=FormatColumns("{@} {dtype}",ind.Columns,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS - SELECT -<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> - FROM [<%=tbl.Name%>] - WHERE <%=FormatColumns("[{name}]={@}",ind.Columns," AND ","")%><% - // Need to loop through foreign keys and select related records - EndProc(sproc); - } - } - } - //---------------------------------------------------------------------- - // SelectParent - //---------------------------------------------------------------------- - private void SQLSelectParent(ITable tbl) - { - if(!FKParent(tbl))return; - IForeignKey fk = FKParentFK(tbl); - string sproc = "get" + ParentName(fk) + ClassName(tbl); - StartProc(sproc); - %>( -<%=FormatColumns("{@} {dtype}",fk.ForeignColumns,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS - SELECT -<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> - FROM [<%=tbl.Name%>] - WHERE<% - string sep=""; - for(int i = 0; i - <%=FormatColumn("[{name}]=",fk.PrimaryColumns[i])%><%=FormatColumn("{@}",fk.ForeignColumns[i])%><%=sep%><% - sep=" AND"; - } - EndProc(sproc); - } - //---------------------------------------------------------------------- - // Exists - //---------------------------------------------------------------------- - private void SQLExists(ITable tbl) - { - string sproc = "exists" + ClassName(tbl); - StartProc(sproc); - %> -( -<%=FormatColumns("{@} {dtype}",tbl.PrimaryKeys,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [<%=tbl.Name%>] WHERE <%=FormatColumns("[{name}]={@}",tbl.PrimaryKeys," AND ","")%><% - EndProc(sproc); - } - //---------------------------------------------------------------------- - // SelectFKs - //---------------------------------------------------------------------- - private void SQLSelectFKs(ITable tbl) - { - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey FK in tbl.ForeignKeys) - { - if(tbl == FK.ForeignTable) - { - //string sAlias = GetAlias(dicAlias,FK.PrimaryTable); - string sAlias = GetAlias(FK); - SQLSelectFK(tbl,FK,sAlias); - } - } - } - private void SQLSelectFKChild(ITable tbl, IForeignKey FK,string sAlias) - { - string sproc = "get" + FKSelectName(tbl,FK,sAlias); - StartProc(sproc); -%> -( -<%=FormatColumns2("{@} {dtype}",FK,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS - SELECT -<%=FormatColumns("[{name}]",tbl.Columns,",\r\n","\t\t")%><%=FKCounts(tbl)%> - FROM [<%=tbl.Name%>] WHERE <%=FormatColumns2("[{fkname}]={@}",FK," AND ","")%> AND <%=FormatColumns2("[{!column}]<>{@}",FK," AND ","")%><% - EndProc(sproc); - } - private void SQLSelectFK(ITable tbl, IForeignKey FK,string sAlias) - { - if(FK.PrimaryTable == FK.ForeignTable){ - SQLSelectFKChild(tbl,FK,sAlias); - } - else - { - //string sproc = "get" + FKSelectName(tbl,FK,sAlias); - string sproc = "get" + FKSelectName(tbl,FK,""); - StartProc(sproc); -%> -( -<%=FormatColumns2("{@} {dtype}",FK,",\r\n","\t")%> -) -WITH EXECUTE AS OWNER -AS<% - string sWhere = "\r\n\tWHERE\r\n\t\t" + FormatColumns2("[{fktable}].[{fkname}]={@}",FK," AND ",""); - FKSelect(FK,(FK.PrimaryTable==tbl?FK.ForeignTable:FK.PrimaryTable),FKCounts(tbl),sWhere); - EndProc(sproc); - } - } - private void StartProc(string sproc) - { - // Drop and recreate -%> -/****** Object: StoredProcedure [<%=sproc%>] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[<%=sproc%>]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [<%=sproc%>]; -GO - -CREATE PROCEDURE [dbo].[<%=sproc%>] -<% - } - private void EndProc(string sproc) - { -%> - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: <%=sproc%> Succeeded' -ELSE PRINT 'Procedure Creation: <%=sproc%> Error on Creation' -GO -<% - SaveFile(sproc); - } - private void EndProcTran(string sproc) - { -%> - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: <%=sproc%> Succeeded' -ELSE PRINT 'Procedure Creation: <%=sproc%> Error on Creation' -GO -<% - SaveFile(sproc); - } - private void FKSelects(ITable tbl) - { - foreach(ForeignKey fk in tbl.ForeignKeys) - { -// WriteLine("\r\n--ForeignKey - {0} - {1}\r\n",fk.Name,IsPrimaryKey(fk)); - if(tbl != fk.ForeignTable) - //if(!IsPrimaryKey(fk)) - This was removed so that one to one relationships would return records. - FKSelect(fk,tbl,"",BuildWhere(fk)); - } - } - private void FKSelect(IForeignKey fk, ITable tbl, string sCounts,string sWhere) - { - string sjoin=""; - string ssep=""; - Hashtable dicAlias = new Hashtable(); -%> - - SELECT -<%=FormatFKColumns("[{tbl}].[{name}]",fk,",\r\n","\t\t",ref ssep)%><% - foreach(ForeignKey pk in fk.ForeignTable.ForeignKeys) - { -// if(ManyToMany(tbl,fk,pk)) - if(tbl != pk.PrimaryTable && fk.ForeignTable == pk.ForeignTable && pk.PrimaryTable != pk.ForeignTable && ForeignRequired(pk)) - { - //string sAlias=GetAlias(dicAlias,pk.PrimaryTable); - string sAlias=GetAlias(pk); - string sJoinAdd = BuildJoin(pk,sAlias); - if(sJoinAdd != null) // Only add related tables that are associated with a required field - { - sjoin += sJoinAdd; -%><%=FormatPKColumns("[{tbl}].[{name}] [{fname}]",pk,",\r\n","\t\t",ref ssep,sAlias)%><% - } - } - } -%><%=sCounts%> - FROM [<%=fk.ForeignTable.Name%>]<%=sjoin%><%=sWhere%> -<% - } -/* - private string DefineAlias(IForeignKey pk,Hashtable dicAlias) - { - if(((int)dicAlias[pk.PrimaryTable.Name])==0)return ""; - return "[" + pk.PrimaryTable.Name + "_" + dicAlias[pk.PrimaryTable.Name].ToString() + "]"; - } - private string UseAlias(string tblname,Hashtable dicAlias) - { - if(((int)dicAlias[tblname])==0)return tblname; - return tblname + "_" + dicAlias[tblname].ToString(); - - } -*/ - private string BuildJoin(IForeignKey pk,string sAlias) - { - string sjoin="\r\n\t\tJOIN [" + pk.PrimaryTable.Name + "] " + (sAlias==""?"":"[" + pk.PrimaryTable.Name + sAlias + "]") + " ON"; - for(int j=0;j 0) - { - btnOK.Enabled = true; - Status = string.Format("Will process: {0} {1}",status.Substring(2),lb.SelectedItems.Count); - } - else - { - Status = "Select one or more tables to process."; - btnOK.Enabled = false; - } - } - } - public void checkbox_onclick( GuiCheckBox control ) - { - SetupOkButton(); - } - public void chooseTable_onclick( GuiListBox control ) - { - SetupOkButton(); - } - private string GetDefault(string sName) - { - if( input.Contains( sName ) ) - { - return input[sName].ToString(); - } - return ""; - } - <%#FILE MakeGuiCheckBox.cs %> - -} -##|GUI_END -##|BODY_MODE Markup -##|BODY_ENGINE .Net Script -##|BODY_LANGUAGE C# -##|BODY_TAG_START <% -##|BODY_TAG_END %> -##|BODY_BEGIN -<%#NAMESPACE System.IO, System.Text, System.Text.RegularExpressions, System.Globalization %><% -public class GeneratedTemplate : DotNetScriptTemplate -{ - public GeneratedTemplate(ZeusContext context) : base(context) {} - // Members - private string _dbName; - private ArrayList _selectedTables; - private ArrayList _selectedViews; - private string _exportPath; - private string _nameSpace; - private string _prefix="_"; - private string _dbConnection; - private string _tableName; - private string _className=""; - private ITable _workingTable; - private Hashtable dicIndexes; - private Hashtable dicDrop; - //private Hashtable dicRead; - //private Hashtable dicReadI; - //public void SaveFile(string sProc) - //{ - // output.save( Path.Combine( _exportPath, sProc + ".SQL" ), false ); - // //output.writeln("--" + Path.Combine( _exportPath, "CSLA.SQL" )); - // output.clear(); - //} - public delegate bool Filter(IColumn column); - //--------------------------------------------------- - // Render() is where you want to write your logic - //--------------------------------------------------- - public override void Render() - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.SaveInputToCache(context); - //InitializeMembers(); - _exportPath = input["outputPath"].ToString(); - _dbName = input["chooseDatabase"].ToString(); - IDatabase db = MyMeta.Databases[_dbName]; - output.clear(); - _selectedTables = input["chooseTables"] as ArrayList; - dicIndexes = new Hashtable(); - dicDrop = new Hashtable(); - if((bool)input["chkProc"]) - { - ShowProcs(db); - } - else - { - foreach( string _newTable in _selectedTables ) - { - _workingTable = MyMeta.Databases[_dbName].Tables[_newTable]; - if((bool)input["chkDetail"])ShowTable1( _workingTable ); - if((bool)input["chkColumns"])ShowTable2( _workingTable ); - if((bool)input["chkFKCalc1"])ShowTable3( _workingTable ); - if((bool)input["chkUnique"])ShowTable4( _workingTable ); - if((bool)input["chkFKCalc2"])ShowTable5( _workingTable ); - if((bool)input["chkColumns2"])ShowTable6( _workingTable ); - if((bool)input["chkRelated"])ShowTable7( _workingTable ); - if((bool)input["chkOne2One"])ShowTable8( _workingTable ); - if((bool)input["chkIndexes"])ShowTable9( _workingTable ); - if((bool)input["chkInternal"])ShowInternalRelated( _workingTable ); - if((bool)input["chkAlias"])ShowAlias( _workingTable ); - if((bool)input["chkNames"])ShowNames( _workingTable ); - if((bool)input["chkNewFK"])ShowNewFK( _workingTable ); - } - } - //foreach(ITable tbl in db.Tables) - //{ - // ShowTable3(tbl); - //} - //foreach(IProcedure ip in db.Procedures) - //{ - // if(ip.Schema != "sys" && ip.Name.StartsWith("sp_")){ - // WriteLine("{0} {1}",ip.Name,ip.Schema); - // ShowProperties(ip.Properties,2); - // } - //} - //SaveFile(); - } - private void ShowProcs(IDatabase db) - { - foreach(IProcedure ip in db.Procedures) - { - //if(ip.Schema != "sys") - if(ip.Name=="purgeData" || ip.Name=="ve_GetPath") - { -%> -/****** Object: StoredProcedure [<%=ip.Name%>] Schema <%=ip.Schema%> Type <%=ip.Type.ToString()%> ******/ -<% - bool isFunction=ip.ProcedureText.Contains("CREATE FUNCTION"); - output.writeln(string.Format("IsFunction = {0}",isFunction)); - } - } - } - private void ShowNewFK(ITable tbl) - { - %>NewFK Output:<%=tbl.Name%> -<% - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(tbl.Name == fk.PrimaryTable.Name) - { -%>Foreign Table <%=fk.ForeignTable.Name%> Column <%=fk.ForeignColumns[0].Name%> -<% - } - } - } - - private string ForeignKeyCheck(IColumn col) - { - if(col.IsInForeignKey) - { - foreach(IForeignKey fk in col.ForeignKeys) - { - if(IsIn(col,fk.ForeignColumns))return " FK"; - } - return " fk"; - } - return ""; - } - private void ShowColumns(IList cols,int indent,string title) - { - output.writeln(string.Format("{0}{1}","".PadRight(indent),title)); - foreach(IColumn col in cols) - { - output.writeln(string.Format("{0}{1}{2} {3}{4}{5} {6} {7} {8}", - (col.IsNullable?" ":"*"), - "".PadRight(indent+2), - col.Name, - col.DataTypeNameComplete, - (col.IsInPrimaryKey?" PK":""), - ForeignKeyCheck(col), - (col.IsAutoKey ? "Auto - (" + col.AutoKeySeed.ToString() + ")":""), - col.Default,col.Description)); - ShowProperties(col.AllProperties,indent+2); - } - } - private void ShowProperties(IPropertyCollection prps, int indent) - { - if(prps.Count == 0)return; - output.writeln(string.Format("{0}Properties:","".PadRight(indent))); - foreach(IProperty prp in prps) - { - output.writeln(string.Format("{0}{1}={2}","".PadRight(indent+2),prp.Key,prp.Value)); - } - } - private bool IsPrimaryKey(IIndex ind) - { - IColumns colsi = ind.Columns; - IColumns colsp = ind.Table.PrimaryKeys; - if(colsi.Count != colsp.Count)return false; - for(int i=0;i 0){ - output.writeln(string.Format("Table {0}",tbl.Name)); - //ShowProperties(tbl.AllProperties,2); - //ShowColumns(tbl.Columns,2,"Columns:"); - //ShowColumns(tbl.PrimaryKeys,2,"Primary Key:"); - //output.writeln(" Foreign Keys:"); - output.writeln(string.Format(" Name: {0} Primary Table: {1}.{2} Foreign Table: {3}" - ,fk.Name,fk.PrimaryTable.Name,fk.PrimaryKeyName,fk.ForeignTable.Name)); - foreach(ArrayList al in uniqueChildren) - ShowColumns(al,4,"Unique Index"); - } - } - } -*/ -/* - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(tbl == fk.PrimaryTable && fk.ForeignTable != fk.PrimaryTable) // Ignore Parent/Child relationships - { - if(IsInPrimaryKey(fk.ForeignColumns) && IsInPrimaryKey(fk.PrimaryColumns)) // Are the Keys in the Primary Keys - { - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) // Look at other relationships - { - if(IsInPrimaryKey(pk.ForeignColumns) && IsInPrimaryKey(pk.PrimaryColumns)) // Are the Keys in the Primary Keys - { - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable && ForeignRequired(pk)) - { - WriteLine("Many to Many [{0}] [{1}] [{2}]",fk.PrimaryTable.Name,fk.ForeignTable.Name,pk.PrimaryTable.Name); - } - } - } - } - } - } -*/ - foreach(IForeignKey fk in tbl.ForeignKeys) - { - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) // Look at other relationships - { - if(ManyToMany(tbl,fk,pk)) - { - WriteLine("Many to Many [{0}] [{1}] [{2}]",fk.PrimaryTable.Name,fk.ForeignTable.Name,pk.PrimaryTable.Name); - } - } - } - } - private void ShowTable5(ITable tbl) - { - output.writeln(string.Format("Table {0}",tbl.Name)); - ShowProperties(tbl.AllProperties,2); - //ShowColumns(tbl.Columns,2,"Columns:"); - //ShowColumns(tbl.PrimaryKeys,2,"Primary Key:"); - output.writeln(" Foreign Keys:"); - foreach(IForeignKey fk in tbl.ForeignKeys) - { - //if(_selectedTables.Contains(fk.ForeignTable.Name)){ - output.writeln(string.Format(" Name: {0} Primary Table: {1}.{2} Foreign Table: {3}" - ,fk.Name,fk.PrimaryTable.Name,fk.PrimaryKeyName,fk.ForeignTable.Name)); - //ShowColumns(fk.PrimaryColumns,6,"Primary Columns:"); - //ShowColumns(fk.ForeignColumns,6,"Foreign Columns:"); - //ShowRequiredColumns(fk.ForeignTable.Columns,6,"Required Foreign Columns:"); - //ShowFK1(fk); - //ShowFK2(fk); - CheckFK(fk); - //} - } - } - private void ShowTable6a(ITable tbl) - { - string sPrefix = tbl.Name + "\r\n"; - ArrayList fkCols = new ArrayList(); - foreach(IForeignKey fk in tbl.ForeignKeys) - { - WriteLine("fk - {0} {1}",fk.Name,fk.ForeignTable.Name); - if(fk.ForeignTable != fk.PrimaryTable) - { - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable) - { - foreach(IColumn col in pk.ForeignColumns){ - if(!col.IsNullable){ - WriteLine("Adding {0}", col.Name); - fkCols.Add(col); - } - } - } - } - } - bool bManyToMany = true; - if(fkCols.Count > 0){ - // Here it is - string sFkKeysTypes = FormatColumns("{!type} {!local}",fkCols,", "); - string sFkKeys = FormatColumns("{!local}",fkCols,", "); - string reqKeysTypes = ""; - string sep2=""; - bool bParentRef=false; - foreach(IColumn column in fk.ForeignTable.Columns) - { - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - if(!IsIn(column,fk.ForeignColumns)) - { - WriteLine("Adding1 {0}", column.Name); - reqKeysTypes+=sep2+FormatColumn("{!type} {!local}",column); - sep2=", "; - } else { - if(!bParentRef && FKParentFK(_workingTable) == fk){ - WriteLine("Adding2 {0}", column.Name); - bParentRef=true; - reqKeysTypes=FormatColumn("{ParentType}",column)+sep2+reqKeysTypes; - sep2=", "; - } - } - } - } - WriteLine("Add - {0}",reqKeysTypes); - WriteLine("Check - {0}",sFkKeys); - WriteLine("Contains - {0}",sFkKeysTypes); - } - } - } - private void ShowTable6b(ITable tbl) // Refresh Logic - { - Hashtable dicAlias = new Hashtable(); - foreach(IForeignKey fk in tbl.ForeignKeys) // 20070220 - { - if(fk.PrimaryTable != fk.ForeignTable) // Parent Child - { - if(!IsPrimaryKey(fk) && tbl == fk.PrimaryTable){ - // Need to determine if the PrimaryKey for the Foreign Table includes The Primary Key from this Table - string sAlias = GetAlias(dicAlias,fk.ForeignTable); - string sItem = ClassName(fk.ForeignTable); - string sFItem = ClassName(tbl) + ClassName(fk.ForeignTable) + sAlias; - string sFItems = ClassName(tbl) + ClassesName(fk.ForeignTable) + sAlias; - //sDeclare += "\r\n\t\tprivate List<" + sFItem + "> _Refresh" + sFItems + " = new List<" + sFItem + ">();"; - //sReset += "\r\n\t\t\t_Refresh" + sFItems + " = new List<" + sFItem + ">();"; - //sRefreshRelated += ", refresh" + sFItems; - //sRefreshRelated1 += ", _Refresh" + sFItems; - //sRefreshDeclare += ", List<" + sFItem + "> refresh" + sFItems; - //sCheck += "\r\n\t\t\tif (" + MemberName(sFItems) + ".IsDirty)\r\n\t\t\t{\r\n\t\t\t\tforeach (" + sFItem + - // " tmp in " + MemberName(sFItems) + ")\r\n\t\t\t\t{\r\n\t\t\t\t\tif(tmp.IsDirty)refresh" + sFItems + - // ".Add(tmp);\r\n\t\t\t\t}\r\n\t\t\t}"; - string sProcess = "\r\n\t\t\tforeach (" + sFItem + " tmp in _Refresh" + sFItems + ")\r\n\t\t\t{\r\n\t\t\t\t" + - sItem + "Info.Refresh(this,tmp);\r\n\t\t\t}"; - WriteLine("{0}-{1} in {2}",ForeignPrimary(fk),sFItem,sFItems); - } - } - } - } - private void ShowTable6(ITable tbl) // Refresh Logic - { - foreach(IForeignKey fk in tbl.ForeignKeys) // 20070220 - { - WriteLine("FK - {0}", fk.Name); - string sepu=""; - string sUpdate=""; - string sTimestamp=""; - foreach(IColumn column in fk.ForeignTable.Columns) - { - if(column.DataTypeName=="timestamp") - sTimestamp=FormatColumn("{member} = ",column); - if(!IsIn(column,fk.ForeignColumns)) - { - string sRef = ParentRef(column); - if(sRef==null) - { - if(column.IsComputed || column.IsAutoKey) - sRef=FormatColumn("ref {?dbprefix}{member}{?dbsuff}",column); - else - { - //if(column.IsInPrimaryKey) - // sRef=FormatColumn("/*--->1*/{?dbprefix}{!membercolumn}{?dbsuff}",column);// 20070323 - //else - if(FormatColumn("{!type}",column)==ClassName(fk.ForeignTable)) - sRef=FormatColumn("{?dbprefix}{!membercolumn}{?dbsuff}",column);// 20070323 - else - sRef=FormatColumn("{?dbprefix}{!member}{?dbsuff}",column);// 20070323 - } - } - sUpdate+=sepu + sRef; - sepu=", "; - } - else - { - string sRef; - if(IsRelObj(column)) - sRef = FormatColumn("{?dbprefix}{!local}{?dbsuff}",column); - else - sRef = FormatColumn("{?dbprefix}{rmember}{?dbsuff}",RelatedColumn(column,fk)); - sUpdate+=sepu + sRef; - sepu=", "; - } - } - WriteLine(" sUpdate - {0}",sUpdate); - string sKeysTypesI=""; - string sKeysI=""; - string sValuesI=""; - string sepi=""; - ITable ftbl = fk.ForeignTable; - ITable tmpTbl = _workingTable; - _workingTable = ftbl; - foreach(IColumn column in ftbl.Columns) - { - if((!column.IsComputed)) - { - if(!column.IsAutoKey){ - sValuesI+=FormatColumn("\r\n\t\t\t\t\t{ifLogicL}cm.Parameters.AddWithValue(\"{@}\", {parent}{?dbtype});",column); - } - if(IsParentCol(column)){ - sKeysTypesI+=sepi + _className + " parent"; - sKeysI+=sepi + "parent"; - } - else - { - sKeysTypesI+=sepi + FormatColumn("{?ref}{!type} {!local}",column); - sKeysI+=sepi + FormatColumn("{?ref}{member}",column); - } - sepi=", "; - } - } - _workingTable=tmpTbl; - WriteLine(" KeysTypesI {0}",sKeysTypesI); - } - } - private void ShowInternalRelated(ITable tbl) - { - foreach(IForeignKey fk in tbl.ForeignKeys) - { - if(fk.PrimaryTable == fk.ForeignTable) - { - WriteLine("{0} - {1}",fk.PrimaryTable.Name,fk.ForeignColumns[0].Name); - } - } - } - private void ShowAlias(ITable tbl) - { - foreach(IForeignKey fk in tbl.ForeignKeys) - { - string s = GetAlias(fk); - if(s != "") - { - WriteLine("{0} - {1}{2}{3}",tbl.Name,ClassName(fk.PrimaryTable),fk.ForeignTable.Name,s ); - } - } - } - private void ShowNames(ITable tbl) - { - WriteLine("{0} Singular {1} - Plural {2}",tbl.Name,SingularName(tbl.Name),PluralName(tbl.Name) ); - foreach(IColumn col in tbl.Columns) - { - WriteLine(" {0} Singular {1} - Plural {2}",col.Name,SingularName(col.Name),PluralName(col.Name) ); - } - } - private void ShowTable7a(ITable tbl) - { - foreach(IForeignKey fk in tbl.ForeignKeys) - { - foreach(IColumn column in fk.ForeignTable.Columns) - { - if(!IsIn(column,fk.ForeignColumns)) - { - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - if(column.ForeignKeys.Count==1) - { - try{ - IColumn colf = RelatedColumnF(column,fk); - IColumn colp = RelatedColumnP(column,fk); - WriteLine("'{0}','{1}','{2}','{3}','{4}','{5}'", - tbl.Name, - RelatedObject(fk,column), - RelatedObjectType(column), - RelatedObjectType2(fk,column), - colf, - colp); - } - catch(Exception) - { - WriteLine("Exception"); - } - //WriteLine("RelatedObject - {0}",RelatedObject(fk,column)); - //WriteLine("RelatedObject - {0}",RelatedObjectType2(fk,column)); // 20070301 - //if(!column.IsInForeignKey){ - // WriteLine(FormatColumn("\t\t\t{member} = {local};",column)); - //} - //else - //{ - // IForeignKey pk = column.ForeignKeys[0]; - // IColumn colf = RelatedColumnF(column,pk); - // WriteLine(FormatColumn("{rmember}",colf)); - //} - } - } - } - } - } - } - private void ShowTable7b(ITable tbl) - { - foreach(IColumn column in tbl.Columns) - { - if(!column.IsComputed && !column.IsAutoKey) // Exclude computed and Identity Columns - { - if(!column.IsInPrimaryKey) // Exclude Primary Key - { - if(column.ForeignKeys.Count==1) // Look for a Foreign Key on a field - { - IForeignKey fk = column.ForeignKeys[0]; - if(fk.PrimaryTable.Name != fk.ForeignTable.Name) - { - try - { - IColumn colf = RelatedColumnF(column,fk); - WriteLine("'{0}','{1}','{2}','{3}'", - tbl.Name, - RelatedObjectType2(fk,column), - colf.Name, - column.Name); - } - catch(Exception) - { - WriteLine("Exception"); - } - } - } - } - } - } - } - private void ShowTable7(ITable tbl) - { - foreach(IColumn col in tbl.Columns) - { - IForeignKey fk = RelObjFK(col); - string typ=RelObjType(col); - string prop=RelObjProp(col); - WriteLine(" {0} {1} {2} {3}",col.IsComputed,col.IsAutoKey,col.IsInPrimaryKey,col.ForeignKeys.Count); - WriteLine("{0} '{1}','{2}','{3}','{4}','{5}','{6}'" - ,(IsRelObj(col)?"* ":" ") - ,tbl.Name - ,col.Name - ,typ - ,prop - ,MemberName(prop) - ,LocalName(prop) - ); - output.writeln(FormatColumn("'{tbl}','{ctype}','{prop}','{!type}','{!prop}','{!member}','{!localcolumn}'",col)); - } - } - private void ShowTable8(ITable tbl)// Shows One to Many and One to One - { - if(OneToOne(tbl))WriteLine("{0}", tbl.Name); - } - private void ShowTable9(ITable tbl)// Shows One to Many and One to One - { - // Loop through Foreign Keys; - foreach(IForeignKey fk in tbl.ForeignKeys) - { - // Check the indexes for each part of the Foreign Key - //CheckIndex(fk.PrimaryTable,fk.PrimaryColumns); - CheckIndex(fk); - } - } - private bool DoesContain(IColumns cols,IColumn col) - { - foreach(IColumn cc in cols) - if(cc.Name==col.Name)return true; - return false; - } - private void CheckIndex(IForeignKey fk) - { - ITable tbl = fk.ForeignTable; - IColumns cols = fk.ForeignColumns; - bool InIndex = true; - // Check the primary keys first - foreach(IColumn col in cols) - { - InIndex = InIndex && col.IsInPrimaryKey; - } - if(InIndex)return; - string sIndexName = "IX_" + tbl.Name + FormatColumns("{prop}",cols,"_",""); - foreach(IIndex ind in tbl.Indexes) - { - InIndex = true; - //WriteLine("{0} - {1} Existing Index {2} - {3}",tbl.Name,fk.Name,ind.Name,FormatColumns("{prop}",ind.Columns,", ","")); - //foreach(IColumn col in cols) - //{ - // //WriteLine(" Index {0} ({1}) {2} {3}",ind.Name,FormatColumns("{prop}",ind.Columns,", ",""),(DoesContain(ind.Columns,col)?"Contains":"Doesn't Contain"),col.Name); - // InIndex = InIndex && DoesContain(ind.Columns,col); - //} - for(int i = 0; i < cols.Count; i++) - { - //WriteLine(" Index {0} ({1}) {2} {3}",ind.Name,FormatColumns("{prop}",ind.Columns,", ",""),(DoesContain(ind.Columns,col)?"Contains":"Doesn't Contain"),col.Name); - InIndex = InIndex && (ind.Columns[i].Name == cols[i].Name); - } - if(InIndex) - { - return; - if(ind.Name == sIndexName)return; - if(!dicDrop.ContainsKey(ind.Name)) - { - WriteLine("DROP INDEX {0} ON [dbo].[{1}]",ind.Name,tbl.Name); - dicDrop.Add(ind.Name,ind.Name); - } - break; - } - } -// WriteLine("Needs Index {0} - {1} - ({2})",tbl.Name,fk.Name,FormatColumns("{prop}",cols,", ","")); - if (dicIndexes.ContainsKey(sIndexName))return; - WriteLine("CREATE NONCLUSTERED INDEX {0} ON [dbo].[{1}]\r\n\t({2})",sIndexName,tbl.Name,FormatColumns("{prop}",cols,", ","")); - dicIndexes.Add(sIndexName,sIndexName); - } - private void ShowFK1(IForeignKey fk) - { - string slName=LocalName(ClassName(fk.ForeignTable)); - ArrayList fkCols = new ArrayList(); - output.write("\r\n// FK.P " + fk.PrimaryTable.Name + " FK.F " +fk.ForeignTable.Name); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - output.write("\r\n// PK.P " + pk.PrimaryTable.Name + " PK.F " +pk.ForeignTable.Name); - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable.Name != pk.ForeignTable.Name) - { - foreach(IColumn col in pk.ForeignColumns){ - output.write("\r\n// col " + col.Name + " IsInPrimaryKey " + col.IsInPrimaryKey.ToString()); - //if(col.IsInPrimaryKey) - fkCols.Add(col); - } - } - } - //bool bManyToMany = true; - if(fkCols.Count == 0){ - //bManyToMany = false; -%> - // One To Many<% - foreach(IColumn col in fk.ForeignTable.PrimaryKeys) - { - fkCols.Add(col); - } - } - else - { -%> - // Many To Many<% - } - //string sFkKeysTypes = FormatColumns("{ctype} {local}",fkCols,", "); - //string sFkKeys = FormatColumns("{local}",fkCols,", "); - //string sFkCheck = FormatColumns(slName +".{prop} == {local}",fkCols," && "); - //string sReqKeysCheck= ""; - string sKeysTypes=""; - //string sKeys=""; - //string sValues=""; - //string sValues2=""; - //string sep=""; - string sep2=""; - //string sep3=""; - //string reqKeys=""; - //string reqKeysTypes=""; - string sValues=""; - string sValues2=""; - //ArrayList reqCols = new ArrayList(); - foreach(IColumn column in fk.ForeignTable.Columns) - { - //WriteLine("{0} IsRequired {1} IsComputed {2} IsAutoKey {3} IsInfk {4}",column.Name,IsRequired(column), - // column.IsComputed,column.IsAutoKey,IsIn(column,fk.ForeignColumns)); - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - if(!IsIn(column,fk.ForeignColumns)) - { - sValues+=sep2+RelatedObject(fk,column); - sValues2+=sep2+RelatedObjectType2(fk,column); // 20070301 - sKeysTypes+=sep2+FormatColumn("{ctype} {local}",column); - sep2=", "; - } - } - } - WriteLine("\r\nsKeysTypes='{0}'",sKeysTypes); - WriteLine("\r\nsValues='{0}'",sValues); - WriteLine("\r\nsValues2='{0}'",sValues2); - } - public void ShowFK2(IForeignKey fk) - { - string sInit=""; - string sep2=""; - Hashtable dicAlias=new Hashtable(); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable.Name != pk.ForeignTable.Name && pk.Name != fk.Name) - { - string sAlias = GetAlias(dicAlias,pk.PrimaryTable); - sAlias = GetNewAlias(fk,pk); - foreach(IColumn column in pk.PrimaryTable.Columns) - { - string sProp = ClassName(pk.PrimaryTable) + sAlias + "_" + PropertyName(column); - string sLocal = LocalName(ClassName(pk.PrimaryTable))+ sAlias; - string sMember = MemberName(sProp); - if(IsIn(column,pk.PrimaryColumns)) - { - sInit+=sep2 + "\t\t\t" + MemberName(RelatedColumn(column,pk)) + " = " + sLocal + "." + PropertyName(column) + ";"; - sep2="\r\n"; - } - else - { - if(pk.PrimaryTable != fk.PrimaryTable) - { - if(column.DataTypeName != "timestamp"){ - if(CSLAType(column)=="SmartDate") - sInit+=sep2 + "\t\t\t" + sMember + " = new SmartDate(" + sLocal + "." + PropertyName(column) + ");"; - else - sInit+=sep2 + "\t\t\t" + sMember + " = " + sLocal + "." + PropertyName(column) + ";"; - sep2="\r\n"; - } - } - } - } - } - } - WriteLine("\r\nsInit:\r\n{0}",sInit); - } - public void ShowFK3(IForeignKey fk) - { - string slName=LocalName(ClassName(fk.ForeignTable)); - ArrayList fkCols = new ArrayList(); - if(fk.ForeignTable != fk.PrimaryTable) - { - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable) - { - foreach(IColumn col in pk.ForeignColumns){ - fkCols.Add(col); - } - } - } - } - //bool bManyToMany = true; - if(fkCols.Count == 0){ - //bManyToMany = false; -%> - // One To Many -<% - foreach(IColumn col in fk.ForeignTable.PrimaryKeys) - { - fkCols.Add(col); - } - } - else - { -%> - // Many To Many -<% - } - } - private void CheckFK(IForeignKey fk) - { - string slName=LocalName(ClassName(fk.ForeignTable)); - ArrayList fkCols = new ArrayList(); - //output.write("\r\n// FK.P " + fk.PrimaryTable.Name + " FK.F " +fk.ForeignTable.Name); - if(fk.ForeignTable == fk.PrimaryTable)// Child Relationship - { - WriteLine(" Child - {0} - Primary {1} - Foreign {2}",fk.Name,fk.PrimaryTable.Name,fk.ForeignTable.Name); - } - else - { - // Now determine if the Primary.Columns are Primary Keys - WriteLine(" Non-Child - {0} - Primary {1} - Foreign {2}",fk.Name,fk.PrimaryTable.Name,fk.ForeignTable.Name); - ShowColumns(fk.PrimaryColumns,6,"PrimaryColumns"); - ShowColumns(fk.ForeignColumns,6,"ForeignColumns"); - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - //output.write("\r\n// PK.P " + pk.PrimaryTable.Name + " PK.F " +pk.ForeignTable.Name); - string sAlias = GetNewAlias(fk,pk); - if(sAlias != "") - { - WriteLine(" PK - {0} - Primary {1} - Foreign {2}",pk.Name,pk.PrimaryTable.Name,pk.ForeignTable.Name); - WriteLine(" Alias - {0}",sAlias); - } - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable) - { - foreach(IColumn col in pk.ForeignColumns){ - //output.write("\r\n// col " + col.Name + " IsInPrimaryKey " + col.IsInPrimaryKey.ToString()); - //if(col.IsInPrimaryKey) - fkCols.Add(col); - } - } - } - } - } - private void CheckFK2(IForeignKey fk) - { - string slName=LocalName(ClassName(fk.ForeignTable)); - ArrayList fkCols = new ArrayList(); - output.write("\r\n// FK.P " + fk.PrimaryTable.Name + " FK.F " +fk.ForeignTable.Name); - if(fk.ForeignTable != fk.PrimaryTable) - { - foreach(IForeignKey pk in fk.ForeignTable.ForeignKeys) - { - output.write("\r\n// PK.P " + pk.PrimaryTable.Name + " PK.F " +pk.ForeignTable.Name); - if(pk.ForeignTable == fk.ForeignTable && pk.PrimaryTable != fk.PrimaryTable && pk.PrimaryTable != pk.ForeignTable) - { - foreach(IColumn col in pk.ForeignColumns){ - //output.write("\r\n// col " + col.Name + " IsInPrimaryKey " + col.IsInPrimaryKey.ToString()); - //if(col.IsInPrimaryKey) - fkCols.Add(col); - } - } - } - } -// bool bManyToMany = true; - if(fkCols.Count == 0){ -// bManyToMany = false; - foreach(IColumn col in fk.ForeignTable.PrimaryKeys) - { - fkCols.Add(col); - } - WriteLine("One to Many fkCols - {0}",FormatColumns("{prop}",fkCols,", ","")); - } - else - { - WriteLine("Many to Many fkCols - {0}",FormatColumns("{prop}",fkCols,", ","")); - } - string sFkKeysTypes = FormatColumns("{ctype} {local}",fkCols,", "); - WriteLine("sFkKeysTypes - {0}",sFkKeysTypes); - string sFkKeys = FormatColumns("{local}",fkCols,", "); - WriteLine("sFkKeys - {0}",sFkKeys); - string sFkCheck = FormatColumns(slName +".{prop} == {local}",fkCols," && "); - WriteLine("sFkCheck - {0}",sFkCheck); - string sReqKeysCheck= ""; - string sKeysTypes=""; - string sKeys=""; - //string sValues=""; - //string sValues2=""; - //string sep=""; - string sep2=""; - string sep3=""; - string reqKeys=""; - string reqKeysTypes=""; - ArrayList reqCols = new ArrayList(); - ArrayList uniqueChildren = FindUniqueChildren(fk); - bool bParentRef = false; - foreach(IColumn column in fk.ForeignTable.Columns) - { - WriteLine("Column {0} IsRequired {1} IsComputed {2} IsAutoKey {3}",column.Name, - IsRequired(column), column.IsComputed, column.IsAutoKey); - if(IsRequired(column) && !column.IsComputed && !column.IsAutoKey) - { - // 20070220 - // sKeysTypes+=sep+FormatColumn("{ctype} {local}",column); - // sKeys+=sep+FormatColumn("{local}",column); - if(!IsIn(column,fk.ForeignColumns)) - { - sKeysTypes+=sep2+FormatColumn("{ctype} {local}",column); - sKeys+=sep2+FormatColumn("{local}",column); - sReqKeysCheck+=sep3+FormatColumn(slName +".{prop} == {local}",column); - reqKeys+=sep2+FormatColumn("{local}",column); - reqKeysTypes+=sep2+FormatColumn("{ctype} {local}",column); - reqCols.Add(column); - sep2=", "; - sep3=" && "; - } else { - if(!bParentRef){ - WriteLine("Add a parent reference",sKeysTypes); - reqKeys="parent"+sep2+reqKeys; - reqKeysTypes=FormatColumn("{ParentType}",column)+sep2+reqKeysTypes; - sep2=", "; - bParentRef=true; - } - } - //sValues+=sep+RelatedObject(column); - //sValues2+=sep+RelatedObjectType(column); - //sep=", "; - } - } - string reqKeysContain = (SameList(reqCols,fkCols)?sFkKeys:reqKeys); - IList uniqueMatch = FindUnique(uniqueChildren,reqCols); - WriteLine("sKeysTypes - {0}",sKeysTypes); - WriteLine("sKeys - {0}",sKeys); - WriteLine("sReqKeysCheck - {0}",sReqKeysCheck); - WriteLine("reqKeys - {0}",reqKeys); - WriteLine("reqKeysTypes - {0}",reqKeysTypes); - - } -%><%#FILE NamingConvention.cs%><% -%><%#FILE ForeignKeyProcessing.cs%><% -%><%#FILE FilteredColumns.cs%><% -%><%#FILE FormatColumns.cs%><% -%><%#FILE WriteLine.cs%><% -} -%> -##|BODY_END diff --git a/PROMS/MyGeneration/csla_21/vlnSQL_List.csgen b/PROMS/MyGeneration/csla_21/vlnSQL_List.csgen deleted file mode 100644 index 4a5f278d..00000000 --- a/PROMS/MyGeneration/csla_21/vlnSQL_List.csgen +++ /dev/null @@ -1,424 +0,0 @@ -##|TYPE Template -##|UNIQUEID ad80d306-3f72-4b18-a21e-3e543240152a -##|TITLE List Stored Procedures - Volian -##|NAMESPACE CSLA_21 -##|SOURCE_TYPE Source -##|OUTPUT_LANGUAGE Transact-SQL -##|GUI_ENGINE .Net Script -##|GUI_LANGUAGE C# -##|GUI_BEGIN - -public class GeneratedGui : DotNetScriptGui -{ - public GeneratedGui(ZeusContext context) : base(context) {} - - //----------------------------------------- - // The User Interface Entry Point - //----------------------------------------- - public override void Setup() - { - if ( !input.Contains( "chooseTables" ) || !input.Contains( "txtPath" ) || - ( !input.Contains( "chkClass" ) && !input.Contains( "chkNaming" ) ) ) - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.ReadInputFromCache(context); - ui.Title = "CSLA Object Mapping"; - ui.Width = 600; - ui.Height = 660; - GuiLabel label1 = ui.AddLabel( "label1", "Select the output path:", "Select the output path in the field below." ); - //label1.Width = 200; - GuiTextBox outputPath = ui.AddTextBox( "outputPath", GetDefault("defaultOutputPath"), "Select the Output Path." ); - outputPath.Width = 450; - GuiFilePicker selectPath = ui.AddFilePicker( "selectPath", "Select Path", "Select the Output Path.", "outputPath", true ); - selectPath.Top = outputPath.Top; - selectPath.Width = 100; - selectPath.Left = outputPath.Left + outputPath.Width + 20; - - GuiLabel label2 = ui.AddLabel( "label2", "Namespace: ", "Provide your objects namespace." ); - label2.Width = 280; - GuiTextBox classNamespace = ui.AddTextBox( "classNamespace", "Volian.Object.Library", "Provide your objects namespace." ); - classNamespace.Width = 280; - - GuiLabel label3 = ui.AddLabel( "label3", "Member prefix: ", "Provide your member prefix." ); - label3.Width = 100; - label3.Top = label2.Top; - label3.Left = label2.Width + 20; - GuiTextBox memberPrefix = ui.AddTextBox( "memberPrefix", "_", "Provide your member prefix." ); - memberPrefix.Width = 100; - memberPrefix.Top = classNamespace.Top; - memberPrefix.Left = classNamespace.Width + 20; - - GuiLabel label3A = ui.AddLabel( "label3A", "dbConnection: ", "Provide a Connection Name." ); - label3A.Width = 150; - label3A.Top = label3.Top; - label3A.Left = label3.Left+label3.Width + 10; - GuiTextBox dbConnection = ui.AddTextBox( "dbConnection", "VEPROMS", "Provide a Connection Name." ); - dbConnection.Width = 150; - dbConnection.Top = memberPrefix.Top; - dbConnection.Left = memberPrefix.Left + memberPrefix.Width + 10; - - // Setup Database selection combobox. - GuiLabel label4 = ui.AddLabel( "label4", "Select a database:", "Select a database in the dropdown below." ); - label4.Width = 280; - GuiComboBox chooseDatabase = ui.AddComboBox( "chooseDatabase", "Select a database." ); - chooseDatabase.Width = 280; - - GuiCheckBox chkSelect = MakeGuiCheckBox( "chkSelect", "Select All", true, "Select All Records",100 ); - GuiCheckBox chkUpdate = MakeGuiCheckBox( "chkUpdate", "Update One", true, "Update One Record" ,150,chkSelect,150,0); - GuiCheckBox chkFiles = MakeGuiCheckBox( "chkFiles", "Files", true, "Create Files" ,150,chkUpdate,200,0); - GuiCheckBox chkInsert = MakeGuiCheckBox( "chkInsert", "Insert One", true, "Insert One Record" ,150,chkSelect,0,-1); - GuiCheckBox chkDelete = MakeGuiCheckBox( "chkDelete", "Delete One", true, "Delete One Record" ,150,chkInsert,150,0); - GuiCheckBox chkDrop = MakeGuiCheckBox( "chkDrop", "Drop", true, "Drop Procedures" ,150,chkDelete,200,0); - GuiCheckBox chkSelectPK = MakeGuiCheckBox( "chkSelectPK", "Select One", true, "Select One Record" ,150,chkInsert,0,-1); - GuiCheckBox chkExists = MakeGuiCheckBox("chkExists","Exists",true,"Check Record Exists",150,chkSelectPK,150,0); - GuiCheckBox chkVolian = MakeGuiCheckBox( "chkVolian", "Volian SPs", true, "Include Volian SPs" ,150,chkExists,200,0); - GuiCheckBox chkPurge = MakeGuiCheckBox("chkPurge","Purge",true,"Purge All Data",150,chkSelectPK,0,-1); - GuiCheckBox chkSelectFKs = MakeGuiCheckBox("chkSelectFKs","Select Group",true,"Select by Foreign Key",150,chkPurge,150,0); - - // Setup Tables selection multi-select listbox. - GuiLabel label7 = ui.AddLabel( "label7", "Select tables:", "Select tables from the listbox below." ); - //label7.Top = chkEqualsHashCode.Top + 20; - GuiListBox chooseTables = ui.AddListBox( "chooseTables", "Select tables." ); - chooseTables.Height = 120; - - // Setup Views selection multi-select listbox. - GuiLabel label8 = ui.AddLabel( "label8", "Select views:", "Select views from the listbox below." ); - GuiListBox chooseViews = ui.AddListBox( "chooseViews", "Select views." ); - chooseViews.Height = 120; - - // Attach the onchange event to the cmbDatabases control. - setupDatabaseDropdown( chooseDatabase ); - chooseDatabase.AttachEvent( "onchange", "chooseDatabase_onchange" ); - - ui.ShowGui = true; - } - else - { - ui.ShowGui = false; - } - } - public void setupDatabaseDropdown( GuiComboBox Databases ) - { - try - { - if( MyMeta.IsConnected ) - { - Databases.BindData( MyMeta.Databases ); - if( MyMeta.DefaultDatabase != null ) - { - Databases.SelectedValue = MyMeta.DefaultDatabase.Alias; - bindTables( Databases.SelectedValue ); - bindViews( Databases.SelectedValue ); - } - } - } - catch - { - } - } - - public void bindTables( string sDatabase ) - { - //int count = 0; - - GuiListBox lstTables = ui["chooseTables"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstTables.BindData(db.Tables); - } - catch - { - } - } - - public void bindViews( string sDatabase ) - { - //int count = 0; - - GuiListBox lstViews = ui["chooseViews"] as GuiListBox; - - try - { - IDatabase db = MyMeta.Databases[sDatabase]; - lstViews.BindData( db.Views ); - } - catch - { - } - } - - public void chooseDatabase_onchange( GuiComboBox control ) - { - //int count = 0; - - GuiComboBox cmbDatabases = ui["chooseDatabase"] as GuiComboBox; - - bindTables( cmbDatabases.SelectedText ); - bindViews( cmbDatabases.SelectedText ); - GuiTextBox dbConnection = ui["dbConnection"] as GuiTextBox; - dbConnection.Text=cmbDatabases.SelectedText; - GuiTextBox classNamespace = ui["classNamespace"] as GuiTextBox; - classNamespace.Text=cmbDatabases.SelectedText + ".Object.Library"; - } - private string GetDefault(string sName) - { - if( input.Contains( sName ) ) - { - return input[sName].ToString(); - } - return ""; - } - <%#FILE MakeGuiCheckBox.cs %> - -} -##|GUI_END -##|BODY_MODE Markup -##|BODY_ENGINE .Net Script -##|BODY_LANGUAGE C# -##|BODY_TAG_START <% -##|BODY_TAG_END %> -##|BODY_BEGIN -<%#NAMESPACE System.IO, System.Text, System.Text.RegularExpressions, System.Globalization %><% -public class GeneratedTemplate : DotNetScriptTemplate -{ - public GeneratedTemplate(ZeusContext context) : base(context) {} - // Members - private string _dbName; - private ArrayList _selectedTables; - private ArrayList _selectedViews; - private string _exportPath; - private string _nameSpace; - private string _prefix; - private string _dbConnection; - private string _tableName; - private string _className=""; - private ITable _workingTable; - //private Hashtable dicRead; - //private Hashtable dicReadI; - public void SaveFile(string sFile) - { - if((bool)input["chkFiles"]){ - output.save( Path.Combine( _exportPath, sFile + ".SQL" ), false ); - //output.writeln("--" + Path.Combine( _exportPath, "CSLA.SQL" )); - output.clear(); - } - } - //private bool IsPrimaryKey(IForeignKey fk) - //{ - // bool retval=true; - // foreach(IColumn c in fk.ForeignColumns)retval &= c.IsInPrimaryKey; - // return retval; - //} - public delegate bool Filter(IColumn column); - //--------------------------------------------------- - // Render() is where you want to write your logic - //--------------------------------------------------- - public override void Render() - { - if(context.Objects.ContainsKey("DnpUtils"))DnpUtils.SaveInputToCache(context); - //InitializeMembers(); - _exportPath = input["outputPath"].ToString(); - _dbName = input["chooseDatabase"].ToString(); - IDatabase db = MyMeta.Databases[_dbName]; - SavePrefix(); - SaveProcsSorted(db); - //SaveTables(db); - } - private void SavePrefix() - { -%>IF DB_NAME() IN('MASTER','MODEL','MSDN','TEMPDB') -BEGIN - DECLARE @ErrorMsg VARCHAR(255) - SET @ErrorMsg = 'Don''t add these procedures and functions to ' + db_name() - PRINT '==========================================================================' - PRINT '' - PRINT @ErrorMsg - PRINT '' - PRINT 'You probably want to be in the VEPROMS database' - PRINT '' - PRINT '==========================================================================' - RAISERROR (@ErrorMsg, 20, -1) WITH LOG - RETURN -END -PRINT 'Adding procedures and functions to ' + db_name() -GO -<% -} - private bool IncludeVolian(string sName) - { - return (!sName.StartsWith("ve") || (bool)input["chkVolian"]); - } - private void SaveProcsTesting(IDatabase db) - { - foreach(IProcedure ip in db.Procedures) - { - if(ip.Name == "vefn_SplitROSearch" || ip.Name == "ve_GetPath" || ip.Name == "getItemAndChildren") - { - output.writeln(string.Format("Name = '{0}' ",ip.Name)); - output.writeln(string.Format("Schema = '{0}' ",ip.Schema)); - foreach(IParameter param in ip.Parameters) - { - output.writeln(string.Format(" Parameter - {0} = {1}",param.Name,param.ParameterType)); - } - } - } - } - private void SaveProcs(IDatabase db) - { - foreach(IProcedure ip in db.Procedures) - { - if(ip.Schema != "sys"){ - bool isProc = IsProcedure(ip); - string sType = isProc ? "PROCEDURE" : "FUNCTION"; - string sIsType = isProc ? "Procedure" : (IsTableFunction(ip) ? "TableFunction" : "ScalarFunction"); - string sName = ip.Name; - if((bool)input["chkDrop"]){ - if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName)) - output.writeln("DROP " + sType + " [" + sName + "]"); - } else { - if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName)) - { -%> -/****** Object: StoredProcedure [<%=sName%>] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[<%=sName%>]') AND OBJECTPROPERTY(id,N'Is<%=sIsType%>') = 1) - DROP <%=sType%> [<%=sName%>]; -GO - -<% - output.write(ip.ProcedureText.TrimEnd("\r\n".ToCharArray()).Replace(" \r\n","\r\n")); -%> -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT '<%=sIsType%> Creation: <%=sName%> Succeeded' -ELSE PRINT '<%=sIsType%> Creation: <%=sName%> Error on Creation' -GO -<% - SaveFile(ip.Name); - } - } - } - } - } - private void SaveProcsSorted(IDatabase db) - { - SortedList sortedList = new SortedList(); - foreach(IProcedure ip in db.Procedures) - { - sortedList.Add(ip.Name,ip); - } - foreach(IProcedure ip in sortedList.Values) - { - if(ip.Schema != "sys"){ - bool isProc = IsProcedure(ip); - string sType = isProc ? "PROCEDURE" : "FUNCTION"; - string sIsType = isProc ? "Procedure" : (IsTableFunction(ip) ? "TableFunction" : "ScalarFunction"); - string sName = ip.Name; - if((bool)input["chkDrop"]){ - if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName)) - output.writeln("DROP " + sType + " [" + sName + "]"); - } else { - if(sName.StartsWith("sp_")==false && sName.StartsWith("fn_")==false && IncludeVolian(sName)) - { -%> -/****** Object: StoredProcedure [<%=sName%>] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[<%=sName%>]') AND OBJECTPROPERTY(id,N'Is<%=sIsType%>') = 1) - DROP <%=sType%> [<%=sName%>]; -GO - -<% - output.write(ip.ProcedureText.TrimEnd("\r\n".ToCharArray()).Replace(" \r\n","\r\n")); -%> -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT '<%=sIsType%> Creation: <%=sName%> Succeeded' -ELSE PRINT '<%=sIsType%> Creation: <%=sName%> Error on Creation' -GO -<% - SaveFile(ip.Name); - } - } - } - } - } - private bool IsProcedure(IProcedure ip) - { - return ip.ProcedureText.ToUpper().Contains("CREATE PROCEDURE"); - } - private bool IsTableFunction(IProcedure ip) - { - return ip.Parameters[0].Name == "@TABLE_RETURN_VALUE"; - } - private void ShowColumns(IColumns cols,int indent,string title) - { - output.writeln(string.Format("{0}{1}","".PadRight(indent),title)); - foreach(IColumn col in cols) - { - output.writeln(string.Format("{0}{1} {2}{3}{4}","".PadRight(indent+2),col.Name,col.DataTypeNameComplete, - (col.IsInPrimaryKey?" PK":""),(col.IsInForeignKey?" FK":""))); - ShowProperties(col.AllProperties,indent+2); - } - } - private void ShowProperties(IPropertyCollection prps, int indent) - { - if(prps.Count == 0)return; - output.writeln(string.Format("{0}Properties:","".PadRight(indent))); - foreach(IProperty prp in prps) - { - output.writeln(string.Format("{0}{1}={2}","".PadRight(indent+2),prp.Key,prp.Value)); - } - } - private bool IsPrimaryKey(IIndex ind) - { - IColumns colsi = ind.Columns; - IColumns colsp = ind.Table.PrimaryKeys; - if(colsi.Count != colsp.Count)return false; - for(int i=0;i<%#FILE NamingConvention.cs%><% -%><%#FILE ForeignKeyProcessing.cs%><% -%><%#FILE FilteredColumns.cs%><% -%><%#FILE FormatColumns.cs%><% -%><%#FILE WriteLine.cs%><% -} -%> -##|BODY_END diff --git a/PROMS/PDFCompare/FindDifferences/FindDifferences.csproj b/PROMS/PDFCompare/FindDifferences/FindDifferences.csproj deleted file mode 100644 index 9686ccbd..00000000 --- a/PROMS/PDFCompare/FindDifferences/FindDifferences.csproj +++ /dev/null @@ -1,79 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {82A5D621-315D-4059-8F01-245349D52438} - WinExe - Properties - FindDifferences - FindDifferences - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmFindDifferences.cs - - - - - Designer - frmFindDifferences.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - \ No newline at end of file diff --git a/PROMS/PDFCompare/FindDifferences/Program.cs b/PROMS/PDFCompare/FindDifferences/Program.cs deleted file mode 100644 index 92ca15f1..00000000 --- a/PROMS/PDFCompare/FindDifferences/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace FindDifferences -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmFindDifferences()); - } - } -} \ No newline at end of file diff --git a/PROMS/PDFCompare/FindDifferences/Properties/AssemblyInfo.cs b/PROMS/PDFCompare/FindDifferences/Properties/AssemblyInfo.cs deleted file mode 100644 index 5398e5db..00000000 --- a/PROMS/PDFCompare/FindDifferences/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("FindDifferences")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("FindDifferences")] -[assembly: AssemblyCopyright("Copyright © 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("c5973e59-a072-4822-b4ea-b2b47af77089")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/PDFCompare/FindDifferences/Properties/Resources.Designer.cs b/PROMS/PDFCompare/FindDifferences/Properties/Resources.Designer.cs deleted file mode 100644 index 67654d5e..00000000 --- a/PROMS/PDFCompare/FindDifferences/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4200 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FindDifferences.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FindDifferences.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/PDFCompare/FindDifferences/Properties/Resources.resx b/PROMS/PDFCompare/FindDifferences/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/PDFCompare/FindDifferences/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/PDFCompare/FindDifferences/Properties/Settings.Designer.cs b/PROMS/PDFCompare/FindDifferences/Properties/Settings.Designer.cs deleted file mode 100644 index 0c61d7b9..00000000 --- a/PROMS/PDFCompare/FindDifferences/Properties/Settings.Designer.cs +++ /dev/null @@ -1,110 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4200 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FindDifferences.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("700, 550")] - public global::System.Drawing.Size Size { - get { - return ((global::System.Drawing.Size)(this["Size"])); - } - set { - this["Size"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("0, 0")] - public global::System.Drawing.Point Location { - get { - return ((global::System.Drawing.Point)(this["Location"])); - } - set { - this["Location"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Normal")] - public global::System.Windows.Forms.FormWindowState WindowState { - get { - return ((global::System.Windows.Forms.FormWindowState)(this["WindowState"])); - } - set { - this["WindowState"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string CompareFolder { - get { - return ((string)(this["CompareFolder"])); - } - set { - this["CompareFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string PdfFolder { - get { - return ((string)(this["PdfFolder"])); - } - set { - this["PdfFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("325")] - public int SplitterDistance { - get { - return ((int)(this["SplitterDistance"])); - } - set { - this["SplitterDistance"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("True")] - public bool ShowFirst { - get { - return ((bool)(this["ShowFirst"])); - } - set { - this["ShowFirst"] = value; - } - } - } -} diff --git a/PROMS/PDFCompare/FindDifferences/Properties/Settings.settings b/PROMS/PDFCompare/FindDifferences/Properties/Settings.settings deleted file mode 100644 index ca359ae5..00000000 --- a/PROMS/PDFCompare/FindDifferences/Properties/Settings.settings +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - 700, 550 - - - 0, 0 - - - Normal - - - - - - - - - 325 - - - True - - - \ No newline at end of file diff --git a/PROMS/PDFCompare/FindDifferences/app.config b/PROMS/PDFCompare/FindDifferences/app.config deleted file mode 100644 index 6e81ee86..00000000 --- a/PROMS/PDFCompare/FindDifferences/app.config +++ /dev/null @@ -1,33 +0,0 @@ - - - - -
    - - - - - - 700, 550 - - - 0, 0 - - - Normal - - - - - - - - - 325 - - - True - - - - \ No newline at end of file diff --git a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.Designer.cs b/PROMS/PDFCompare/FindDifferences/frmFindDifferences.Designer.cs deleted file mode 100644 index b74844c0..00000000 --- a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.Designer.cs +++ /dev/null @@ -1,300 +0,0 @@ -namespace FindDifferences -{ - partial class frmFindDifferences - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.tmr = new System.Windows.Forms.Timer(this.components); - this.panel1 = new System.Windows.Forms.Panel(); - this.tbPdf = new System.Windows.Forms.TextBox(); - this.tbCompare = new System.Windows.Forms.TextBox(); - this.btnPdf = new System.Windows.Forms.Button(); - this.btnCompare = new System.Windows.Forms.Button(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.btnCopy = new System.Windows.Forms.Button(); - this.cbShowFirst = new System.Windows.Forms.CheckBox(); - this.btnClosePdf = new System.Windows.Forms.Button(); - this.btnRefresh = new System.Windows.Forms.Button(); - this.lblDifferences = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label1 = new System.Windows.Forms.Label(); - this.cmbWith = new System.Windows.Forms.ComboBox(); - this.cmbCompare = new System.Windows.Forms.ComboBox(); - this.lbDifferences = new System.Windows.Forms.ListBox(); - this.wb = new System.Windows.Forms.WebBrowser(); - this.panel1.SuspendLayout(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.SuspendLayout(); - // - // tmr - // - this.tmr.Tick += new System.EventHandler(this.tmr_Tick); - // - // panel1 - // - this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.panel1.Controls.Add(this.tbPdf); - this.panel1.Controls.Add(this.tbCompare); - this.panel1.Controls.Add(this.btnPdf); - this.panel1.Controls.Add(this.btnCompare); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(824, 72); - this.panel1.TabIndex = 1; - // - // tbPdf - // - this.tbPdf.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbPdf.Location = new System.Drawing.Point(123, 41); - this.tbPdf.Name = "tbPdf"; - this.tbPdf.Size = new System.Drawing.Size(685, 20); - this.tbPdf.TabIndex = 9; - // - // tbCompare - // - this.tbCompare.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbCompare.Location = new System.Drawing.Point(123, 12); - this.tbCompare.Name = "tbCompare"; - this.tbCompare.Size = new System.Drawing.Size(685, 20); - this.tbCompare.TabIndex = 8; - // - // btnPdf - // - this.btnPdf.Location = new System.Drawing.Point(11, 39); - this.btnPdf.Name = "btnPdf"; - this.btnPdf.Size = new System.Drawing.Size(106, 23); - this.btnPdf.TabIndex = 7; - this.btnPdf.Text = "Pdf Folder"; - this.btnPdf.UseVisualStyleBackColor = true; - this.btnPdf.Click += new System.EventHandler(this.btnPdf_Click); - // - // btnCompare - // - this.btnCompare.Location = new System.Drawing.Point(11, 10); - this.btnCompare.Name = "btnCompare"; - this.btnCompare.Size = new System.Drawing.Size(106, 23); - this.btnCompare.TabIndex = 6; - this.btnCompare.Text = "Compare Folder"; - this.btnCompare.UseVisualStyleBackColor = true; - this.btnCompare.Click += new System.EventHandler(this.btnCompare_Click); - // - // splitContainer1 - // - this.splitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 72); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.btnCopy); - this.splitContainer1.Panel1.Controls.Add(this.cbShowFirst); - this.splitContainer1.Panel1.Controls.Add(this.btnClosePdf); - this.splitContainer1.Panel1.Controls.Add(this.btnRefresh); - this.splitContainer1.Panel1.Controls.Add(this.lblDifferences); - this.splitContainer1.Panel1.Controls.Add(this.label2); - this.splitContainer1.Panel1.Controls.Add(this.label1); - this.splitContainer1.Panel1.Controls.Add(this.cmbWith); - this.splitContainer1.Panel1.Controls.Add(this.cmbCompare); - this.splitContainer1.Panel1.Controls.Add(this.lbDifferences); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.wb); - this.splitContainer1.Size = new System.Drawing.Size(824, 502); - this.splitContainer1.SplitterDistance = 324; - this.splitContainer1.TabIndex = 4; - // - // btnCopy - // - this.btnCopy.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.btnCopy.Location = new System.Drawing.Point(204, 60); - this.btnCopy.Name = "btnCopy"; - this.btnCopy.Size = new System.Drawing.Size(113, 21); - this.btnCopy.TabIndex = 27; - this.btnCopy.Text = "Copy List"; - this.btnCopy.UseVisualStyleBackColor = true; - this.btnCopy.Click += new System.EventHandler(this.btnCopy_Click); - // - // cbShowFirst - // - this.cbShowFirst.AutoSize = true; - this.cbShowFirst.Checked = true; - this.cbShowFirst.CheckState = System.Windows.Forms.CheckState.Checked; - this.cbShowFirst.Location = new System.Drawing.Point(10, 63); - this.cbShowFirst.Name = "cbShowFirst"; - this.cbShowFirst.Size = new System.Drawing.Size(173, 17); - this.cbShowFirst.TabIndex = 26; - this.cbShowFirst.Text = "Only show first for each section"; - this.cbShowFirst.UseVisualStyleBackColor = true; - // - // btnClosePdf - // - this.btnClosePdf.Location = new System.Drawing.Point(3, 32); - this.btnClosePdf.Name = "btnClosePdf"; - this.btnClosePdf.Size = new System.Drawing.Size(88, 21); - this.btnClosePdf.TabIndex = 25; - this.btnClosePdf.Text = "Close Pdf"; - this.btnClosePdf.UseVisualStyleBackColor = true; - this.btnClosePdf.Click += new System.EventHandler(this.btnClosePdf_Click); - // - // btnRefresh - // - this.btnRefresh.Location = new System.Drawing.Point(3, 5); - this.btnRefresh.Name = "btnRefresh"; - this.btnRefresh.Size = new System.Drawing.Size(88, 21); - this.btnRefresh.TabIndex = 24; - this.btnRefresh.Text = "Refresh"; - this.btnRefresh.UseVisualStyleBackColor = true; - this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); - // - // lblDifferences - // - this.lblDifferences.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblDifferences.BackColor = System.Drawing.SystemColors.ActiveCaption; - this.lblDifferences.Location = new System.Drawing.Point(0, 94); - this.lblDifferences.Name = "lblDifferences"; - this.lblDifferences.Size = new System.Drawing.Size(322, 25); - this.lblDifferences.TabIndex = 23; - this.lblDifferences.Text = "Differences"; - this.lblDifferences.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label2 - // - this.label2.Location = new System.Drawing.Point(105, 36); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(49, 13); - this.label2.TabIndex = 22; - this.label2.Text = "With"; - this.label2.TextAlign = System.Drawing.ContentAlignment.TopRight; - // - // label1 - // - this.label1.Location = new System.Drawing.Point(105, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(49, 16); - this.label1.TabIndex = 21; - this.label1.Text = "Compare"; - // - // cmbWith - // - this.cmbWith.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbWith.Enabled = false; - this.cmbWith.FormattingEnabled = true; - this.cmbWith.Location = new System.Drawing.Point(160, 33); - this.cmbWith.Name = "cmbWith"; - this.cmbWith.Size = new System.Drawing.Size(157, 21); - this.cmbWith.TabIndex = 20; - // - // cmbCompare - // - this.cmbCompare.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cmbCompare.Enabled = false; - this.cmbCompare.FormattingEnabled = true; - this.cmbCompare.Location = new System.Drawing.Point(160, 6); - this.cmbCompare.Name = "cmbCompare"; - this.cmbCompare.Size = new System.Drawing.Size(157, 21); - this.cmbCompare.TabIndex = 19; - // - // lbDifferences - // - this.lbDifferences.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lbDifferences.Enabled = false; - this.lbDifferences.FormattingEnabled = true; - this.lbDifferences.Location = new System.Drawing.Point(0, 119); - this.lbDifferences.Name = "lbDifferences"; - this.lbDifferences.Size = new System.Drawing.Size(322, 381); - this.lbDifferences.TabIndex = 18; - // - // wb - // - this.wb.Dock = System.Windows.Forms.DockStyle.Fill; - this.wb.Location = new System.Drawing.Point(0, 0); - this.wb.MinimumSize = new System.Drawing.Size(20, 20); - this.wb.Name = "wb"; - this.wb.Size = new System.Drawing.Size(492, 498); - this.wb.TabIndex = 4; - // - // frmFindDifferences - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(824, 574); - this.Controls.Add(this.splitContainer1); - this.Controls.Add(this.panel1); - this.Name = "frmFindDifferences"; - this.Text = "Find Differences"; - this.Load += new System.EventHandler(this.frmFindDifferences_Load); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmFindDifferences_FormClosing); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel1.PerformLayout(); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.Timer tmr; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.TextBox tbPdf; - private System.Windows.Forms.TextBox tbCompare; - private System.Windows.Forms.Button btnPdf; - private System.Windows.Forms.Button btnCompare; - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.Label lblDifferences; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.ComboBox cmbWith; - private System.Windows.Forms.ComboBox cmbCompare; - private System.Windows.Forms.ListBox lbDifferences; - private System.Windows.Forms.WebBrowser wb; - private System.Windows.Forms.Button btnClosePdf; - private System.Windows.Forms.Button btnRefresh; - private System.Windows.Forms.CheckBox cbShowFirst; - private System.Windows.Forms.Button btnCopy; - - } -} - diff --git a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.cs b/PROMS/PDFCompare/FindDifferences/frmFindDifferences.cs deleted file mode 100644 index 1ffae17e..00000000 --- a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.cs +++ /dev/null @@ -1,259 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using System.Text.RegularExpressions; - -namespace FindDifferences -{ - public partial class frmFindDifferences : Form - { - public frmFindDifferences() - { - InitializeComponent(); - } - private void frmFindDifferences_Load(object sender, EventArgs e) - { - LoadSettings(); - SetupComboBoxes(); - } - private void LoadSettings() - { - Size = Properties.Settings.Default.Size; - Resize += new EventHandler(frmFindDifferences_Resize); - Location = Properties.Settings.Default.Location; - Move += new EventHandler(frmFindDifferences_Move); - tbCompare.Text = Properties.Settings.Default.CompareFolder; - tbCompare.TextChanged += new EventHandler(tbCompare_TextChanged); - tbPdf.Text = Properties.Settings.Default.PdfFolder; - tbPdf.TextChanged += new EventHandler(tbPdf_TextChanged); - splitContainer1.SplitterDistance = Properties.Settings.Default.SplitterDistance; - splitContainer1.SplitterMoved +=new SplitterEventHandler(splitContainer1_SplitterMoved); - WindowState = Properties.Settings.Default.WindowState; - cbShowFirst.Checked = Properties.Settings.Default.ShowFirst; - cbShowFirst.CheckedChanged += new EventHandler(cbShowFirst_CheckedChanged); - } - void cbShowFirst_CheckedChanged(object sender, EventArgs e) - { - Properties.Settings.Default.ShowFirst = cbShowFirst.Checked; - SetupDifferences(); - } - void tbPdf_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.PdfFolder = tbPdf.Text; - } - void tbCompare_TextChanged(object sender, EventArgs e) - { - Properties.Settings.Default.CompareFolder = tbCompare.Text; - SetupComboBoxes(); - } - void frmFindDifferences_Move(object sender, EventArgs e) - { - Properties.Settings.Default.WindowState = WindowState; - if (WindowState == FormWindowState.Normal) - Properties.Settings.Default.Location = Location; - } - void frmFindDifferences_Resize(object sender, EventArgs e) - { - Properties.Settings.Default.WindowState = WindowState; - if (WindowState == FormWindowState.Normal) - Properties.Settings.Default.Size = Size; - } - private void SetupComboBoxes() - { - if (tbCompare.Text != string.Empty) - LoadComboBoxes(); - else - DisableComboBoxes(); - } - private void LoadComboBoxes() - { - DirectoryInfo di = new DirectoryInfo(tbCompare.Text); - if (di.Exists) - { - List myFiles1 = new List(); - List myFiles2 = new List(); - foreach (FileInfo myFile in di.GetFiles("*.txt")) - { - myFiles1.Add(myFile.Name); - myFiles2.Add(myFile.Name); - } - cmbCompare.SelectedIndexChanged -= new EventHandler(cmbCompare_SelectedIndexChanged); - cmbWith.SelectedIndexChanged -= new EventHandler(cmbCompare_SelectedIndexChanged); - cmbCompare.DataSource = myFiles1; - cmbWith.DataSource = myFiles2; - cmbCompare.Enabled = true; - cmbWith.Enabled = true; - cmbCompare.SelectedIndex = -1; - cmbWith.SelectedIndex = -1; - cmbCompare.SelectedIndexChanged += new EventHandler(cmbCompare_SelectedIndexChanged); - cmbWith.SelectedIndexChanged += new EventHandler(cmbCompare_SelectedIndexChanged); - } - else - DisableComboBoxes(); - } - void cmbCompare_SelectedIndexChanged(object sender, EventArgs e) - { - SetupDifferences(); - } - private void DisableComboBoxes() - { - lbDifferences.Enabled = false; - cmbCompare.Enabled = false; - cmbWith.Enabled = false; - } - private void SetupDifferences() - { - if (cmbCompare.Text != string.Empty && cmbWith.Text != string.Empty) - { - List compareList = BuildList(cmbCompare.Text); - List withList = BuildList(cmbWith.Text); - RemoveMatches(withList, compareList); - if (cbShowFirst.Checked) RemoveMultiples(withList); - lbDifferences.Click -= new EventHandler(lbDifferences_Click); - //lbDifferences.SelectedIndexChanged -= new EventHandler(lbDifferences_SelectedIndexChanged); - lblDifferences.Text = withList.Count.ToString() + " Differences"; - lbDifferences.DataSource = withList; - lbDifferences.Enabled = true; - //lbDifferences.SelectedIndexChanged += new EventHandler(lbDifferences_SelectedIndexChanged); - lbDifferences.Click += new EventHandler(lbDifferences_Click); - } - else - { - lbDifferences.DataSource = null; - lbDifferences.Enabled = false; - } - } - - void lbDifferences_Click(object sender, EventArgs e) - { - wb.Navigate("about:blank"); - Clipboard.Clear(); - if (lbDifferences.SelectedValue != null) - { - Clipboard.SetText(lbDifferences.SelectedValue.ToString()); - tmr.Enabled = true; - } - } - Regex myRegExpMult = new Regex("'([^']*?)','([^']*)?',([0-9]*,'[^']*?)'"); - private void RemoveMultiples(List withList) - { - List multList = new List(); - string last = string.Empty; - foreach (string str in withList) - { - string found = myRegExpMult.Replace(str, "$1.$2"); - if (found == last) multList.Add(str); - last = found; - } - foreach (string str in multList) - withList.Remove(str); - } - void lbDifferences_SelectedIndexChanged(object sender, EventArgs e) - { - wb.Navigate("about:blank"); - Clipboard.Clear(); - if (lbDifferences.SelectedValue != null) - { - Clipboard.SetText(lbDifferences.SelectedValue.ToString()); - tmr.Enabled = true; - } - } - - private void RemoveMatches(List withList, List compareList) - { - foreach (string str in compareList) - if (withList.Contains(str)) - withList.Remove(str); - } - - private List BuildList(string fileName) - { - List myList = new List(); - FileInfo myFile = new FileInfo(tbCompare.Text + "\\" + fileName); - using (StreamReader sr = myFile.OpenText()) - { - while (!sr.EndOfStream) - { - string str = sr.ReadLine(); - if(str != string.Empty) - myList.Add(str); - } - sr.Close(); - } - return myList; - } - private string CompareFolder - { - get - { - if (tbCompare.Text == string.Empty) - return Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); - return tbCompare.Text; - } - } - private string PdfFolder - { - get - { - if (tbPdf.Text == string.Empty) - return Environment.GetFolderPath(Environment.SpecialFolder.MyComputer); - return tbPdf.Text; - } - } - private void btnCompare_Click(object sender, EventArgs e) - { - fbd.SelectedPath = CompareFolder; - if (fbd.ShowDialog() == DialogResult.OK) - tbCompare.Text = fbd.SelectedPath; - } - private void btnPdf_Click(object sender, EventArgs e) - { - fbd.SelectedPath = PdfFolder; - if (fbd.ShowDialog() == DialogResult.OK) - tbPdf.Text = fbd.SelectedPath; - } - private void frmFindDifferences_FormClosing(object sender, FormClosingEventArgs e) - { - Properties.Settings.Default.Save(); - } - Regex myRegExp = new Regex("'([^']*?)','[^']*?',([0-9]*,'[^']*?)'"); - private void tmr_Tick(object sender, EventArgs e) - { - tmr.Enabled = false; - string url = myRegExp.Replace(lbDifferences.SelectedValue.ToString(), tbPdf.Text + @"\$1.pdf#search=""$2"""); - wb.Navigate(url); - } - private void btnClosePdf_Click(object sender, EventArgs e) - { - wb.Navigate("about:blank"); - } - private void btnRefresh_Click(object sender, EventArgs e) - { - int indCompare = cmbCompare.SelectedIndex; - int indWith = cmbWith.SelectedIndex; - LoadComboBoxes(); - cmbCompare.SelectedIndex = indCompare; - cmbWith.SelectedIndex = indWith; - } - private void splitContainer1_SplitterMoved(object sender, SplitterEventArgs e) - { - Properties.Settings.Default.SplitterDistance = splitContainer1.SplitterDistance; - } - - private void btnCopy_Click(object sender, EventArgs e) - { - Clipboard.Clear(); - StringBuilder sb = new StringBuilder(); - foreach(string str in lbDifferences.DataSource as List) - { - sb.Append(str + "\r\n"); - } - Clipboard.SetText(sb.ToString()); - } - } -} \ No newline at end of file diff --git a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.resx b/PROMS/PDFCompare/FindDifferences/frmFindDifferences.resx deleted file mode 100644 index 0e6a65ec..00000000 --- a/PROMS/PDFCompare/FindDifferences/frmFindDifferences.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 87, 17 - - \ No newline at end of file diff --git a/PROMS/PDFCompare/MergePDFs/MergePDFs.csproj b/PROMS/PDFCompare/MergePDFs/MergePDFs.csproj deleted file mode 100644 index 38071f69..00000000 --- a/PROMS/PDFCompare/MergePDFs/MergePDFs.csproj +++ /dev/null @@ -1,82 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {EDE182A0-5D65-48E4-909D-04902B462AF8} - WinExe - Properties - MergePDFs - MergePDFs - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\..\..\..\..\..\Development\Proms3rdPartyLibraries\itextsharp.dll - - - - - - - - - - - Form - - - frmMergePDFs.cs - - - - - Designer - frmMergePDFs.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - \ No newline at end of file diff --git a/PROMS/PDFCompare/MergePDFs/Program.cs b/PROMS/PDFCompare/MergePDFs/Program.cs deleted file mode 100644 index ea4f915e..00000000 --- a/PROMS/PDFCompare/MergePDFs/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace MergePDFs -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmMergePDFs()); - } - } -} \ No newline at end of file diff --git a/PROMS/PDFCompare/MergePDFs/Properties/AssemblyInfo.cs b/PROMS/PDFCompare/MergePDFs/Properties/AssemblyInfo.cs deleted file mode 100644 index 9d8d8d52..00000000 --- a/PROMS/PDFCompare/MergePDFs/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("MergePDFs")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("MergePDFs")] -[assembly: AssemblyCopyright("Copyright © 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ce6e320c-6ea1-4c2a-acb8-51868a35a484")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/PDFCompare/MergePDFs/Properties/Resources.Designer.cs b/PROMS/PDFCompare/MergePDFs/Properties/Resources.Designer.cs deleted file mode 100644 index bfda6e03..00000000 --- a/PROMS/PDFCompare/MergePDFs/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4200 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace MergePDFs.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("MergePDFs.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/PDFCompare/MergePDFs/Properties/Resources.resx b/PROMS/PDFCompare/MergePDFs/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/PDFCompare/MergePDFs/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/PDFCompare/MergePDFs/Properties/Settings.Designer.cs b/PROMS/PDFCompare/MergePDFs/Properties/Settings.Designer.cs deleted file mode 100644 index 044e3fe0..00000000 --- a/PROMS/PDFCompare/MergePDFs/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4200 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace MergePDFs.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/PDFCompare/MergePDFs/Properties/Settings.settings b/PROMS/PDFCompare/MergePDFs/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/PDFCompare/MergePDFs/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.Designer.cs b/PROMS/PDFCompare/MergePDFs/frmMergePDFs.Designer.cs deleted file mode 100644 index d95e8208..00000000 --- a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.Designer.cs +++ /dev/null @@ -1,123 +0,0 @@ -namespace MergePDFs -{ - partial class frmMergePDFs - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tbFolder = new System.Windows.Forms.TextBox(); - this.btnFolder = new System.Windows.Forms.Button(); - this.btnMerge = new System.Windows.Forms.Button(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.sfd = new System.Windows.Forms.SaveFileDialog(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // tbFolder - // - this.tbFolder.Location = new System.Drawing.Point(140, 15); - this.tbFolder.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbFolder.Name = "tbFolder"; - this.tbFolder.Size = new System.Drawing.Size(729, 22); - this.tbFolder.TabIndex = 0; - this.tbFolder.Text = "c:\\TEMP"; - // - // btnFolder - // - this.btnFolder.Location = new System.Drawing.Point(16, 12); - this.btnFolder.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnFolder.Name = "btnFolder"; - this.btnFolder.Size = new System.Drawing.Size(100, 28); - this.btnFolder.TabIndex = 1; - this.btnFolder.Text = "Folder"; - this.btnFolder.UseVisualStyleBackColor = true; - this.btnFolder.Click += new System.EventHandler(this.btnFolder_Click); - // - // btnMerge - // - this.btnMerge.Location = new System.Drawing.Point(377, 50); - this.btnMerge.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnMerge.Name = "btnMerge"; - this.btnMerge.Size = new System.Drawing.Size(116, 28); - this.btnMerge.TabIndex = 2; - this.btnMerge.Text = "Merge"; - this.btnMerge.UseVisualStyleBackColor = true; - this.btnMerge.Click += new System.EventHandler(this.btnMerge_Click); - // - // sfd - // - this.sfd.FileName = "merge.pdf"; - this.sfd.Filter = "pdf Files|*.pdf"; - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 89); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(887, 25); - this.statusStrip1.TabIndex = 3; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(50, 20); - this.tsslStatus.Text = "Ready"; - // - // frmMergePDFs - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(887, 114); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.btnMerge); - this.Controls.Add(this.btnFolder); - this.Controls.Add(this.tbFolder); - this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.Name = "frmMergePDFs"; - this.Text = "MergePDFs"; - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox tbFolder; - private System.Windows.Forms.Button btnFolder; - private System.Windows.Forms.Button btnMerge; - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.SaveFileDialog sfd; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - } -} - diff --git a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.cs b/PROMS/PDFCompare/MergePDFs/frmMergePDFs.cs deleted file mode 100644 index 296c0b7c..00000000 --- a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using iTextSharp.text.pdf; -using iTextSharp.text; - -namespace MergePDFs -{ - public partial class frmMergePDFs : Form - { - public string Status - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - public frmMergePDFs() - { - InitializeComponent(); - } - - private void btnFolder_Click(object sender, EventArgs e) - { - fbd.SelectedPath = tbFolder.Text; - if (fbd.ShowDialog() == DialogResult.OK) - tbFolder.Text = fbd.SelectedPath; - } - private void btnMerge_Click(object sender, EventArgs e) - { - if (sfd.ShowDialog() == DialogResult.OK) - { - Document doc = new Document(); - PdfWriter writer = PdfWriter.GetInstance(doc, new FileStream(sfd.FileName, FileMode.Create)); - //writer.PageEvent = new MyPageHelper("Merge2", new Color(System.Drawing.Color.CornflowerBlue)); - doc.Open(); - PdfContentByte canvas = writer.DirectContent; - DirectoryInfo pdfFolder = new DirectoryInfo(tbFolder.Text); - FileInfo[] myFiles = pdfFolder.GetFiles("*.pdf"); - foreach (FileInfo myFile in myFiles) - { - PdfReader reader = new PdfReader(myFile.FullName); - int numPages = reader.NumberOfPages; - int currentPageNumber = 0; - PdfOutline outline = null; - do - { - currentPageNumber += 1; - Status = string.Format("Processing {0} page {1}", myFile.Name, currentPageNumber); - doc.SetPageSize(PageSize.LETTER); - doc.NewPage(); - PdfImportedPage page = writer.GetImportedPage(reader, currentPageNumber); - PdfDestination dest = new PdfDestination(PdfDestination.FIT); - if (currentPageNumber == 1) - outline = new PdfOutline(canvas.RootOutline, dest, myFile.Name, false); - else - new PdfOutline(outline, dest, "Page " + currentPageNumber.ToString(), false); - canvas.AddTemplate(page, 0, 0); - //DrawOutlines(canvas); - } while (currentPageNumber < numPages); - } - doc.Close(); - if (MessageBox.Show("Do you want to open the merged file?", "Merging Complete", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - System.Diagnostics.Process.Start(sfd.FileName); - } - Status = "Processing Complete"; - } - } -} \ No newline at end of file diff --git a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.resx b/PROMS/PDFCompare/MergePDFs/frmMergePDFs.resx deleted file mode 100644 index e7dce6b3..00000000 --- a/PROMS/PDFCompare/MergePDFs/frmMergePDFs.resx +++ /dev/null @@ -1,129 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 186, 17 - - - 259, 17 - - \ No newline at end of file diff --git a/PROMS/PDFCompare/PDFCompare.sln b/PROMS/PDFCompare/PDFCompare.sln deleted file mode 100644 index 8f74e944..00000000 --- a/PROMS/PDFCompare/PDFCompare.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FindDifferences", "FindDifferences\FindDifferences.csproj", "{82A5D621-315D-4059-8F01-245349D52438}" - ProjectSection(WebsiteProperties) = preProject - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.Debug = "False" - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MergePDFs", "MergePDFs\MergePDFs.csproj", "{EDE182A0-5D65-48E4-909D-04902B462AF8}" - ProjectSection(WebsiteProperties) = preProject - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.Debug = "False" - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {82A5D621-315D-4059-8F01-245349D52438}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {82A5D621-315D-4059-8F01-245349D52438}.Debug|Any CPU.Build.0 = Debug|Any CPU - {82A5D621-315D-4059-8F01-245349D52438}.Release|Any CPU.ActiveCfg = Release|Any CPU - {82A5D621-315D-4059-8F01-245349D52438}.Release|Any CPU.Build.0 = Release|Any CPU - {EDE182A0-5D65-48E4-909D-04902B462AF8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {EDE182A0-5D65-48E4-909D-04902B462AF8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {EDE182A0-5D65-48E4-909D-04902B462AF8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {EDE182A0-5D65-48E4-909D-04902B462AF8}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs b/PROMS/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs deleted file mode 100644 index 9742e16a..00000000 --- a/PROMS/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs +++ /dev/null @@ -1,1309 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; -using Volian.Print.Library; -using System.IO; -using System.Text.RegularExpressions; -using DevComponents.DotNetBar; - -namespace VEPROMS -{ - public partial class dlgApproveProcedure : Form - { - public event DisplayConsistencyReportEvent ConsistencyPrintRequest; - private void OnConsistencyPrintRequest(ConsistencyReportArgs args) - { - if (ConsistencyPrintRequest != null) - ConsistencyPrintRequest(this, args); - } - private bool CanApprove - { - get { return btnApprove2.Enabled;} - set - { - btnApprove2.Enabled = value; - tsslStatus.ForeColor = Color.Red; - tsslStatus.BackColor = Color.Yellow; - tsslStatus.Text = value ? "" : "Need to correct the Rev Numbers marked with Question Marks"; - } - } - private int _ApplicabilityIndex = 0; - public int ApplicabilityIndex - { - get { return _ApplicabilityIndex; } - set { _ApplicabilityIndex = value; } - } - private SessionInfo _MySessionInfo; - public SessionInfo MySessionInfo - { - get { return _MySessionInfo; } - set - { - _MySessionInfo = value; - _MyApproval.MySessionInfo = _MySessionInfo; - } - } - private ApprovalInfo _MyApproval; - private bool _CheckForMore = false; - private DocVersionInfo _MyDocVersion; - frmVEPROMS _MyFrmVEPROMS = null; - public frmVEPROMS MyFrmVEPROMS - { - get { return _MyFrmVEPROMS; } - set { _MyFrmVEPROMS = value; } - } - public dlgApproveProcedure(DocVersionInfo myDocVersion, frmVEPROMS myFrmVEPROMS) - { - MyFrmVEPROMS = myFrmVEPROMS; - _MyApproval = new ApprovalInfo(myFrmVEPROMS); - ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave; - this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); - _MyDocVersion = myDocVersion; - InitializeComponent(); - FlexGridAddEvents(); - _MyApproval.StatusUpdated += new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated); - SetupComboBoxes(); - foreach (ProcedureInfo pi in myDocVersion.Procedures) - { - pi.MyDocVersion.DocVersionConfig.SelectedSlave = ApplicabilityIndex; - _MyApproval.AddProcedure(pi); - } - SetupMyApproval(); - //pnlApprove.LocationChanged += new EventHandler(Panel_LocationChanged); - //pnlSelect.LocationChanged += new EventHandler(Panel_LocationChanged); - pnlApprove.SendToBack(); - this.Width = pnlApprove.Width + this.Width - this.ClientSize.Width; - } - - private void FlexGridAddEvents() - { - //fgProcs.ChangeEdit += new EventHandler(fgProcs_ChangeEdit); - //Console.WriteLine(fgProcs.ComboBoxEditor.GetType().Name); - //Console.WriteLine(fgProcs.Editor.GetType().Name); - //fgProcs.ImeModeChanged += new EventHandler(fgProcs_ImeModeChanged); - //fgProcs.LeaveEdit += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_LeaveEdit); - //fgProcs.SetupEditor += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_SetupEditor); - //fgProcs.StartEdit += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_StartEdit); - //fgProcs.ValidateEdit += new C1.Win.C1FlexGrid.ValidateEditEventHandler(fgProcs_ValidateEdit); - fgProcs.ComboCloseUp += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_ComboCloseUp); - //fgProcs.MouseDown += new MouseEventHandler(fgProcs_MouseDown); - //fgProcs.MouseUp += new MouseEventHandler(fgProcs_MouseUp); - } - - void fgProcs_MouseUp(object sender, MouseEventArgs e) - { - C1.Win.C1FlexGrid.HitTestInfo hti = fgProcs.HitTest(e.X, e.Y); - Console.WriteLine("fgProcs_MouseUp X={0},Y={1},Row={2},Col={3}", e.X, e.Y, hti.Row, hti.Column); - } - - void fgProcs_MouseDown(object sender, MouseEventArgs e) - { - C1.Win.C1FlexGrid.HitTestInfo hti = fgProcs.HitTest(e.X, e.Y); - Console.WriteLine("fgProcs_MouseDown X={0},Y={1},Row={2},Col={3}", e.X, e.Y,hti.Row,hti.Column); - - } - - void fgProcs_ComboCloseUp(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - Console.WriteLine("fgProcs_ComboCloseUp e.row={0}, fgprocs.mouserow={1}", e.Row, fgProcs.MouseRow); - if (e.Row == fgProcs.MouseRow) - return; - fgProcs_AfterEdit(sender, e); - //Console.WriteLine("fgProcs_ComboCloseUp row: {0}, col: {1}, val: {2}, etostring: {3}", e.Row, e.Col, fgProcs[e.Row, e.Col], e.ToString()); - } - - void fgProcs_ValidateEdit(object sender, C1.Win.C1FlexGrid.ValidateEditEventArgs e) - { - Console.WriteLine("fgProcs_ValidateEdit"); - } - - void fgProcs_StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - - object val = fgProcs[e.Row, e.Col]; - DateTime dt = (DateTime)val; - if (dt != null) - dt = dt.AddHours(1); - fgProcs[e.Row, e.Col] = dt; - Console.WriteLine("fgProcs_StartEdit val: {0}, dt: {1}",val,dt); - } - - void fgProcs_SetupEditor(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - Console.WriteLine("fgProcs_SetupEditor"); - } - - void fgProcs_LeaveEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - object val = fgProcs[e.Row, e.Col]; - DateTime dt = (DateTime)val; - if (dt != null && dt.Hour != 0) - dt = dt.AddHours(-1); - fgProcs[e.Row, e.Col] = dt; - Console.WriteLine("fgProcs_LeaveEdit val: {0}, dt: {1}, mouserow={2}, mousecol={3}", val, dt,fgProcs.MouseRow,fgProcs.MouseCol); - } - - void fgProcs_ImeModeChanged(object sender, EventArgs e) - { - Console.WriteLine("fgProcs_ImeModeChanged"); - } - - void fgProcs_ChangeEdit(object sender, EventArgs e) - { - Console.WriteLine("fgProcs_ChangeEdit"); - } - void Panel_LocationChanged(object sender, EventArgs e) - { - if (pnlApprove.Location.X == 0 && pnlSelect.Location.X == 0) - return; - if (pnlApprove.Location.X == 0) - { - chkViewPDF.Visible = false; - chkSetAllDates.Visible = true; - if (_MyApproval.MyProcedures.Count == 1) - { - this.Text = "Approve " + _MyApproval.MyProcedures[0].ProcInfo.DisplayNumber; - chkViewPDF.Visible = true; - chkSetAllDates.Visible = false; - } - else if (_MyApproval.MyProcedures.Count == _MyDocVersion.Procedures.Count) - this.Text = "Approve All Procedures"; - else - this.Text = "Approve Selected Procedures"; - InitializePanelApprove(); - } - if (pnlSelect.Location.X == 0) - { - this.Text = "Select Procedures To Approve"; - InitializePanelSelect(); - } - } - private void InitializePanelSelect() - { - if (clbMore.Items.Count == 0) - { - foreach (ProcedureInfo pi in _MyDocVersion.Procedures) - { - OwnerInfo oi = OwnerInfo.GetByItemID(pi.ItemID, CheckOutType.Procedure); - pi.MyDocVersion.DocVersionConfig.SelectedSlave = _MyDocVersion.DocVersionConfig.SelectedSlave; - if (oi != null && oi.SessionID != MySessionInfo.SessionID) - { - string prcNumber = pi.DisplayNumber + string.Format(" Checked out to {0}", oi.SessionUserID); - clbMore.Items.Add(prcNumber); - } - else - clbMore.Items.Add(pi.DisplayNumber); - tmpProcedures.Add(pi.DisplayNumber, pi); - } - } - for (int i = 0; i < clbMore.Items.Count; i++) - { - ProcedureInfo pi = GetProcedureInfoByKey(clbMore.Items[i].ToString()); - clbMore.SetItemChecked(i, _MyApproval.ProcedureExists(pi)); - } - } - private void InitializePanelApprove() - { - SetupMyApproval(); - } - private Dictionary tmpProcedures = new Dictionary(); - private ProcedureInfo GetProcedureInfoByKey(string key) - { - if (key.Contains(" Checked out to ")) - key = key.Substring(0, key.IndexOf(" Checked out to ")); - if (tmpProcedures.ContainsKey(key)) - return tmpProcedures[key]; - else - return tmpProcedures[GetDisplayNumberOnly(key)]; - } - public dlgApproveProcedure(DocVersionInfo myDocVersion, bool selectSome, frmVEPROMS myFrmVEPROMS) - { - MyFrmVEPROMS = myFrmVEPROMS; - _MyApproval = new ApprovalInfo(myFrmVEPROMS); - this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); - _MyDocVersion = myDocVersion; - InitializeComponent(); - FlexGridAddEvents(); - _MyApproval.StatusUpdated += new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated); - _CheckForMore = false; - //pnlApprove.LocationChanged += new EventHandler(Panel_LocationChanged); - //pnlSelect.LocationChanged += new EventHandler(Panel_LocationChanged); - pnlSelect.SendToBack(); - this.Width = pnlSelect.Width + this.Width - this.ClientSize.Width; ; - } - public dlgApproveProcedure(ProcedureInfo myProcedure, frmVEPROMS myFrmVEPROMS) - { - MyFrmVEPROMS = myFrmVEPROMS; - _MyApproval = new ApprovalInfo(myFrmVEPROMS); - this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); - _MyDocVersion = myProcedure.MyDocVersion; - InitializeComponent(); - FlexGridAddEvents(); - SetupComboBoxes(); - _MyApproval.AddProcedure(myProcedure); - //SetupMyApproval(); - //pnlApprove.LocationChanged += new EventHandler(Panel_LocationChanged); - //pnlSelect.LocationChanged += new EventHandler(Panel_LocationChanged); - pnlApprove.SendToBack(); - this.Width = pnlApprove.Width; - } - void _MyApproval_StatusUpdated(ApprovalInfo sender, ApprovalMessageArgs e) - { - tsslMsg2.Text = e.MyStatus; - Application.DoEvents(); - } - private void SetupMyApproval() - { - approvalInfoBindingSource.DataSource = _MyApproval; - //if(_MyApproval.MyProcedures.Count == 1) - // lblOldRevNumber.Text = _MyApproval.RevNumber; - //else if (_MyApproval.MyProcedures.Count > 1) - // lblMaxRevNumber1.Text = GetMaxRevNumber(); - _MyApproval.RevType = (revTypeBindingSource.Current as RevType).TypeID; - _MyApproval.RevStage = (stageInfoBindingSource.Current as StageInfo).StageID; - approvalInfoBindingSource.ResetBindings(false); - approvalProcedureBindingSource.DataSource = _MyApproval.MyProcedures; - approvalProcedureBindingSource.ResetBindings(false); - //this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); - } - private string GetMaxRevNumber() - { - string mrn = string.Empty; - foreach (ApprovalProcedure ap in _MyApproval.MyProcedures) - { - int k = _MyApproval.FancyShmancyRevCompare(mrn, ap.RevNumber); - if (k < 0) - mrn = ap.RevNumber; - } - return mrn; - } - void dlgApproveProcedure_ConsistencyPrintRequest(object sender, ConsistencyReportArgs args) - { - foreach (ProcedureInfo pi in args.MyItems) - pi.IsSelected = _MyApproval.ProcedureExists(pi); - PDFConsistencyCheckReport rpt = new PDFConsistencyCheckReport(args.ReportName, args.MyItems); - rpt.BuildReport(); - } - private void SetupComboBoxes() - { - RevTypes rt = new RevTypes(); - foreach (int i in Enum.GetValues(typeof(Rev_Types))) - { - RevType t = new RevType(i, Enum.GetName(typeof(Rev_Types), i)); - if (t.TypeID == 1) // only show first item for now - rt.Add(t); - } - revTypeBindingSource.DataSource = rt; - stageInfoBindingSource.DataSource = StageInfoList.Get(); - } - private void btnApprove_Click(object sender, EventArgs e) - { - this.Cursor = Cursors.WaitCursor; - if(!_MyApproval.Approve(new Point(Left,Bottom))) - this.DialogResult = DialogResult.None; - this.Cursor = Cursors.Default; - } - private void cmbRevisionType_SelectedIndexChanged(object sender, EventArgs e) - { - RevType rt = cmbRevisionType2.SelectedItem as RevType; - _MyApproval.RevType = rt.TypeID; - } - private void cmbRevisionStage_SelectedIndexChanged(object sender, EventArgs e) - { - StageInfo si = cmbRevisionStage2.SelectedItem as StageInfo; - _MyApproval.RevStage = si.StageID; - } - private void clbMore_ItemCheck(object sender, ItemCheckEventArgs e) - { - ProcedureInfo pi = GetProcedureInfoByKey(clbMore.Items[e.Index].ToString()); - OwnerInfo oi = OwnerInfo.GetByItemID(pi.ItemID, CheckOutType.Procedure); - if (oi != null && oi.SessionID != MySessionInfo.SessionID) - { - string msg = string.Format("Cannot select this procedure for approval.\n\n It is checked out to {0}", oi.SessionUserID); - MessageBox.Show(msg,pi.DisplayNumber); - e.NewValue = CheckState.Unchecked; - return; - } - if (e.NewValue == CheckState.Checked) - btnOkay.Enabled = true; - else - btnOkay.Enabled = (clbMore.CheckedItems.Count > 1); - btnCheckMore.Enabled = btnOkay.Enabled; - btnReportMore.Enabled = false; - } - private void btnOkay_Click(object sender, EventArgs e) - { - UpdateMyApproval(); - //lbProcs.DataSource = null; - //lbProcs.DataSource = _MyApproval.MyProcedures; - //lbProcs.DisplayMember = "DisplayNumber"; - approvalProcedureBindingSource.DataSource = _MyApproval.MyProcedures; - approvalProcedureBindingSource.ResetCurrentItem(); - pnlApprove.SendToBack(); - } - private void UpdateMyApproval() - { - if (clbMore.CheckedItems.Count == 0) - pnlApprove.SendToBack(); - SetupComboBoxes(); - for (int i = 0; i < clbMore.Items.Count; i++) - { - string xyz = clbMore.Items[i].ToString(); - ProcedureInfo pi = GetProcedureInfoByKey(clbMore.Items[i].ToString()); - if (clbMore.GetItemChecked(i)) - { - if (!_MyApproval.ProcedureExists(pi)) - _MyApproval.AddProcedure(pi); - } - else - { - if (_MyApproval.ProcedureExists(pi)) - _MyApproval.DeleteProcedure(pi); - } - } - SetupMyApproval(); - } - private void btnCheck_Click(object sender, EventArgs e) - { - //if (chkCascade1.Checked || chkCascade2.Checked) - //{ - // MessageBox.Show("cascade"); - //} - //else - //{ - pnlSelect.SendToBack(); - UpdateClbMore(); - //} - } - private ItemInfoList _MyItemInfoList; - private void UpdateClbMore() - { - int checkedCount = clbMore.CheckedItems.Count; - int z = int.Parse("0" + lblPhase.Text); - z++; - lblPhase.Text = z.ToString(); - string oldLabel = lblMore.Text; - pbMore.Visible = true; - pbMore.Maximum = _MyApproval.MyProcedures.Count; - ItemInfoList.ConsistencyCheckUpdated += new ItemInfoListCCEvent(ItemInfoList_ConsistencyCheckUpdated); - List myProcs = new List(); - foreach (ApprovalProcedure ap in _MyApproval.MyProcedures) - myProcs.Add(ap.ProcInfo); - _MyItemInfoList = ItemInfoList.GetMoreProcedures(myProcs); - ItemInfoList.ConsistencyCheckUpdated -= new ItemInfoListCCEvent(ItemInfoList_ConsistencyCheckUpdated); - lblMore.Text = oldLabel; - pbMore.Visible = false; - //clbMore.Items.Clear(); - //tmpProcedures.Clear(); - for (int i = 0; i < clbMore.Items.Count; i++) - { - string info = clbMore.Items[i].ToString(); - if(info.Contains(" - (")) - clbMore.Items[i] = info.Substring(0, info.IndexOf(" - (")); - } - foreach (ProcedureInfo npi in _MyItemInfoList) - { - string info = string.Format(npi.MyDifferenceReasons.StartsWith("No ") ? "{0}" : "{0} - ({1})", npi.DisplayNumber, npi.MyDifferenceReasons); - //checked list box - //int k = clbMore.Items.Add(info); - for (int i = 0; i < clbMore.Items.Count; i++) - { - if (clbMore.Items[i].ToString().StartsWith(npi.DisplayNumber)) - { - clbMore.Items[i] = info; - tmpProcedures[npi.DisplayNumber] = npi; - if (chkCascade2.Checked || chkCascadeMore.Checked) - clbMore.SetItemChecked(i, true); - break; - } - } - } - Application.DoEvents(); - clbMore.Enabled = btnAll.Enabled = btnClear.Enabled = true; - //if (clbMore.Items.Count == 0) - //{ - // clbMore.Items.Add("None Found"); - // clbMore.Enabled = btnAll.Enabled = btnClear.Enabled = false; - //} - lblMore.Text = string.Format("{0} Procedures, {1} Selected", clbMore.Items.Count, clbMore.CheckedItems.Count); - btnReportMore.Enabled = true; - _CheckForMore = true; - - if (chkCascade2.Checked || chkCascadeMore.Checked) - { - if (clbMore.CheckedItems.Count > checkedCount) - { - //btnAll_Click(btnAll, new EventArgs()); - UpdateMyApproval(); - UpdateClbMore(); - } - else - lblPhase.Text = ""; - } - } - void ItemInfoList_ConsistencyCheckUpdated(object sender, ItemInfoListCCEventArgs args) - { - if (sender != null) - { - pbMore.Value = args.MyCount; - lblMore.Text = args.MyProcedure.DisplayNumber; - } - else - { - pbMore.Value = pbMore.Maximum; - lblMore.Text = "Querying Database"; - } - Application.DoEvents(); - } - //private void dtiRevisionDate_ValueChanged(object sender, EventArgs e) - //{ - // DevComponents.Editors.DateTimeAdv.DateTimeInput dti = sender as DevComponents.Editors.DateTimeAdv.DateTimeInput; - //} - private void btnAll_Click(object sender, EventArgs e) - { - for (int i = 0; i < clbMore.Items.Count; i++) - clbMore.SetItemChecked(i, true); - } - private void btnClear_Click(object sender, EventArgs e) - { - for (int i = 0; i < clbMore.Items.Count; i++) - clbMore.SetItemChecked(i, false); - } - private void btnCancelMore_Click(object sender, EventArgs e) - { - if (!_CheckForMore) - { - this.Close(); - return; - } - //if (_MyApproval.MyProcedures.Count == 1) - // pnlOne.SendToBack(); - //else - pnlApprove.SendToBack(); - } - //private void tsmiRemove_Click(object sender, EventArgs e) - //{ - // ApprovalProcedure ap = approvalProcedureBindingSource.Current as ApprovalProcedure; - // _MyApproval.RemoveProcedure(ap.ProcInfo); - // approvalProcedureBindingSource.DataSource = _MyApproval.MyProcedures; - // approvalProcedureBindingSource.ResetCurrentItem(); - // //_MyApproval.RemoveProcedure(lbProcs.SelectedItem as ProcedureInfo); - // //lbProcs.DataSource = null; - // //lbProcs.DataSource = _MyApproval.MyProcedures; - // //lbProcs.DisplayMember = "DisplayNumber"; - //} - private int _LastIndex = -1; - private void clbMore_MouseMove(object sender, MouseEventArgs e) - { - if (_MyApproval.MyProcedures.Count > 0) - { - int itemIndex = clbMore.IndexFromPoint(new Point(e.X, e.Y)); - if (itemIndex == -1) - sttMore.HideTooltip(); - if (itemIndex == _LastIndex) - return; - _LastIndex = itemIndex; - if (itemIndex >= 0) - { - if (clbMore.Items[itemIndex] != null) - { - SuperTooltipInfo stti = sttMore.GetSuperTooltip(clbMore); - //string headerText = tmpProcedures[xyz].DisplayNumber; - //string bodyText = tmpProcedures[xyz].MyDifferencesText; - stti.HeaderText = GetProcedureInfoByKey(clbMore.Items[itemIndex].ToString()).DisplayNumber; - stti.BodyText = GetProcedureInfoByKey(clbMore.Items[itemIndex].ToString()).MyDifferencesText; - stti.FooterVisible = false; - using (Graphics g = CreateGraphics()) - { - SizeF sf = g.MeasureString(stti.BodyText, this.Font); - stti.CustomSize = new Size(10 + sf.ToSize().Width, 0); - } - sttMore.ShowTooltip(sender); - return; - } - } - } - //sttMore.HideTooltip(); - } - private string GetDisplayNumberOnly(string s) - { - int d = s.IndexOf(" - "); - if (d > -1) - s = s.Substring(0, d).Trim(); - return s; - } - private void btnCheckMore_Click(object sender, EventArgs e) - { - UpdateMyApproval(); - UpdateClbMore(); - } - private void btnReportMore_Click(object sender, EventArgs e) - { - OnConsistencyPrintRequest(new ConsistencyReportArgs(Volian.Base.Library.VlnSettings.TemporaryFolder + @"\MyConsistency.pdf", _MyItemInfoList)); - } - private void CascadeChecksUpdated(object sender, EventArgs e) - { - DevComponents.DotNetBar.Controls.CheckBoxX cb = sender as DevComponents.DotNetBar.Controls.CheckBoxX; - if (cb != null) - { - chkCascade2.Checked = chkCascadeMore.Checked = cb.Checked; - } - } - private void fgProcs_AfterEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - ApprovalProcedure ap = approvalProcedureBindingSource.Current as ApprovalProcedure; - if (e.Col == 1) - { //revnumber - _MyApproval.Refresh(); - approvalInfoBindingSource.ResetBindings(false); - bool ok = true; - foreach (ApprovalProcedure app in _MyApproval.MyProcedures) - { - ok = ok && !app.RevNumber.Contains(" ?"); - } - CanApprove = ok; - } - if (e.Col == 2) - { //revdate - DateTime dts = DateTime.Parse(fgProcs[e.Row, e.Col].ToString()); - //store mouse row because the popup calendar can goof up the datagrid mouse row - int fgmr = fgProcs.MouseRow; - if (e.Row == fgmr && ap.RevDate == dts) - return; - if (chkSetAllDates.Checked) - { - foreach (ApprovalProcedure app in _MyApproval.MyProcedures) - { - app.RevDate = ap.RevDate; - } - approvalProcedureBindingSource.ResetBindings(false); - } - } - } - //private void tsmiAddMore_Click(object sender, EventArgs e) - //{ - // pnlSelect.SendToBack(); - //} - private void btnModifyList_Click(object sender, EventArgs e) - { - pnlSelect.SendToBack(); - } - - private void btnIncrement_Click(object sender, EventArgs e) - { - StringBuilder sb = new StringBuilder(); - string sep = "Procedures that failed to increment\r\n\r\n"; - foreach (ApprovalProcedure ap in _MyApproval.MyProcedures) - if (!IncrementRev(ap)) - { - sb.Append(sep + ap.DisplayNumber); - sep = "\r\n"; - } - approvalProcedureBindingSource.ResetBindings(false); - if (sb.Length > 0) - { - sb.AppendLine(); sb.AppendLine(); - sb.AppendLine("These will be marked with a question mark."); - sb.Append("They need to be corrected before Approval can be run."); - MessageBox.Show(sb.ToString(), "Increment Failures", MessageBoxButtons.OK, MessageBoxIcon.Warning); - CanApprove = false; - } - else - CanApprove = true; - } - private bool IncrementRev(ApprovalProcedure ap) - { - bool rv = true; - if (Regex.IsMatch(ap.RevNumber, "^[0-9]+$")) - ap.RevNumber = (int.Parse(ap.RevNumber) + 1).ToString(); - else if (Regex.IsMatch(ap.RevNumber, "^[0-9]*[a-yA-Y]+$")) - { - char lastCar = ap.RevNumber[ap.RevNumber.Length - 1]; - lastCar++; - ap.RevNumber = ap.RevNumber.Substring(0, ap.RevNumber.Length - 1) + lastCar.ToString(); - } - else if (ap.RevNumber == string.Empty) - ap.RevNumber = "1"; - else if (Regex.IsMatch(ap.RevNumber, "^[0-9.]+[.][0-9]+$")) - { - string[] parts = ap.RevNumber.Split(".".ToCharArray()); - string sep = ""; - string lastPart = parts[parts.Length - 1]; - int w = lastPart.Length; - lastPart = (int.Parse(lastPart) + 1).ToString(); - //if(w > lastPart.Length) - lastPart = lastPart.PadLeft(w, '0'); - parts[parts.Length - 1] = lastPart; - StringBuilder sb = new StringBuilder(); - foreach (string part in parts) - { - sb.Append(sep + part); - sep = "."; - } - ap.RevNumber = sb.ToString(); - } - else if (Regex.IsMatch(ap.RevNumber, "[?]$")) - rv = false; //do nothing - else - { - ap.RevNumber += " ?"; - rv = false; - } - return rv; - } - } - public class ApprovalProcedure - { - private ProcedureInfo _ProcInfo; - public ProcedureInfo ProcInfo - { - get { return _ProcInfo; } - set { _ProcInfo = value; } - } - private string _RevNumber; - public string RevNumber - { - get { return _RevNumber; } - set - { - if (value.Trim() != _RevNumber) - { - _RevNumber = value.Trim(); - //_RevDate = DateTime.Now; // commented out for bug fix B2013-012 - } - } - } - private DateTime _RevDate; - public DateTime RevDate - { - get { return _RevDate; } - set { _RevDate = value; } - } - // added RevNumAndDate to handle the use use of the DoRevDate flag - // this fixes bug B2013-011 where Today's date would print on the approved procedures (Westinghouse data) - // instead of the the Revision Date assigned to the procedure. - public string RevNumAndDate - { - get - { - if (_ProcInfo.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate) - return RevNumber + "/" + RevDate.ToString("M/d/yyyy"); - else - return RevNumber; - } - } - public string DisplayNumber - { - get { return _ProcInfo.DisplayNumber; } - } - public override string ToString() - { - return string.Format("{0}\t{1}\t{2:M/d/yyyy}", _ProcInfo.DisplayNumber, _RevNumber, _RevDate); - } - public ApprovalProcedure(ProcedureInfo proc) - { - proc.ProcedureConfig.SelectedSlave = proc.MyDocVersion.DocVersionConfig.SelectedSlave; - ProcInfo = proc; - RevNumber = proc.ProcedureConfig.Print_Rev == string.Empty ? "0" : proc.ProcedureConfig.Print_Rev; - //AppRevDate Change - //DateTime revdate; - string sRevDate = proc.ProcedureConfig.Print_RevDate; - if (sRevDate == string.Empty) - sRevDate = DateTime.Now.ToString("M/d/y"); - DateTime revDate; - if (!DateTime.TryParse(sRevDate, out revDate)) revDate = DateTime.Now; - RevDate = revDate; - //RevDate = DateTime.Parse(sRevDate); - //RevDate = DateTime.Parse(proc.ProcedureConfig.Print_RevDate); - //if (print_revdate == string.Empty && DateTime.TryParse(RevNumber, out revdate)) - // ; - //else - // revdate = DateTime.TryParse(proc.ProcedureConfig.Print_RevDate.Replace("-", "/").Replace("00/", "01/"), out revdate) ? revdate : DateTime.Now; - //RevDate = revdate; - } - } - public class ApprovalMessageArgs : EventArgs - { - public ApprovalMessageArgs(string msg) - { - _MyStatus = msg; - } - private string _MyStatus; - public string MyStatus - { - get { return _MyStatus; } - set { _MyStatus = value; } - } - } - public delegate void ApprovalStatusChangeEvent(ApprovalInfo sender, ApprovalMessageArgs e); - public class ApprovalInfo - { - frmVEPROMS _MyFrmVEPROMS = null; - public frmVEPROMS MyFrmVEPROMS - { - get { return _MyFrmVEPROMS; } - set { _MyFrmVEPROMS = value; } - } - public event ApprovalStatusChangeEvent StatusUpdated; - public void OnStatusUpdated(ApprovalInfo sender, ApprovalMessageArgs e) - { - if (StatusUpdated != null) - StatusUpdated(sender, e); - } - private SessionInfo _MySessionInfo; - public SessionInfo MySessionInfo - { - get { return _MySessionInfo; } - set { _MySessionInfo = value; } - } - private int _RevType; - public int RevType - { - get { return _RevType; } - set { _RevType = value; } - } - private string _RevNumber; - public string RevNumber - { - get { return _RevNumber; } - set { _RevNumber = value; } - } - private Nullable _RevDate; - public Nullable RevDate - { - get { return _RevDate == null ? _RevDate : _RevDate.Value; } - set { _RevDate = value; } - } - private int _RevStage; - public int RevStage - { - get { return _RevStage; } - set { _RevStage = value; } - } - private string _RevNote; - public string RevNote - { - get { return _RevNote; } - set { _RevNote = value; } - } - private bool _ViewPDF; - public bool ViewPDF - { - get { return _ViewPDF; } - set { _ViewPDF = value; } - } - private string _MsgNumber; - public string MsgNumber - { - get { return _MsgNumber; } - set { _MsgNumber = value; } - } - private string _MsgDate; - public string MsgDate - { - get { return _MsgDate; } - set { _MsgDate = value; } - } - private bool _CanIncrement; - public bool CanIncrement - { - get { return _CanIncrement; } - set { _CanIncrement = value; } - } - private List _MyProcedures; - public List MyProcedures - { - get { return _MyProcedures; } - //set { _MyProcedures = value; } - } - public ApprovalInfo(frmVEPROMS myFrmVEPROMS) - { - MyFrmVEPROMS = myFrmVEPROMS; - _MyProcedures = new List(); - } - private static string FormatRev(Match m) - { - return "".PadLeft(5 - m.Groups[1].Value.Length, '0') + m.Groups[1].Value; - } - public void AddProcedure(ProcedureInfo proc) - { - ApprovalProcedure ap = new ApprovalProcedure(proc); - MyProcedures.Add(ap); - Refresh(); - } - public void RemoveProcedure(ProcedureInfo pi) - { - ApprovalProcedure apr = null; - foreach (ApprovalProcedure ap in MyProcedures) - { - if (ap.ProcInfo == pi) - { - apr = ap; - break; - } - } - MyProcedures.Remove(apr); - Refresh(); - } - public bool ProcedureExists(ProcedureInfo pi) - { - foreach (ApprovalProcedure pp in MyProcedures) - { - if(pp.ProcInfo.ItemID == pi.ItemID) - return true; - } - return false; - } - public void Refresh() - { - bool ok = true; - int rv = 0; - foreach (ApprovalProcedure ap in MyProcedures) - { - ok = ok && int.TryParse(ap.RevNumber, out rv); - } - _CanIncrement = ok; - //if (MyProcedures.Count == 1) - //{ - // ProcedureInfo pi = _MyProcedures[0].ProcInfo; - // RevNumber = pi.ProcedureConfig.Print_Rev == string.Empty ? "0" : pi.ProcedureConfig.Print_Rev; - // DateTime revdate = pi.ProcedureConfig.Print_RevDate == string.Empty ? DateTime.Now : DateTime.TryParse(pi.ProcedureConfig.Print_RevDate, out revdate) ? revdate : DateTime.Now; - // RevDate = revdate; - // RevNote = string.Empty; - // ViewPDF = false; - //} - //else if (MyProcedures.Count > 1) - //{ - // Regex myRegEx = new Regex("^([0-9]{1,5})"); - // SortedList printRevs = new SortedList(); - // SortedList printRevDates = new SortedList(); - // string printRev = string.Empty; - // foreach (ApprovalProcedure pi in MyProcedures) - // { - // printRev = myRegEx.Replace(pi.RevNumber, new MatchEvaluator(FormatRev)); - // printRev = printRev == string.Empty ? "0" : printRev; - // if (printRev != string.Empty) - // if (!printRevs.ContainsKey(printRev)) - // printRevs.Add(printRev, pi.ProcInfo); - // if (pi.RevDate != null) - // if (!printRevDates.ContainsKey(pi.RevDate.ToString())) - // printRevDates.Add(pi.RevDate.ToString(), pi.ProcInfo); - // } - // if (printRevs.Count > 1) - // { - // ProcedureInfo pi = printRevs[printRevs.Keys[printRevs.Count - 1]]; - // RevNumber = "*"; - // MsgNumber = "Multiple Revision Numbers found. Enter asterisk (*) to use current revision numbers or plus sign (+) to increment revision numbers"; - // } - // else if (printRevs.Count == 1) - // { - // ProcedureInfo pi = printRevs[printRevs.Keys[printRevs.Count - 1]]; - // RevNumber = pi.ProcedureConfig.Print_Rev; - // MsgNumber = string.Empty; - // } - // if (printRevDates.Count > 1) - // { - // RevDate = null; - // MsgDate = "Multiple Revision Dates found. Use current revision dates or manually assign revision date by selecting a date"; - // } - // else if (printRevDates.Count == 1) - // { - // ProcedureInfo pi = printRevDates[printRevDates.Keys[printRevDates.Count - 1]]; - // RevDate = DateTime.Parse(pi.ProcedureConfig.Print_RevDate); - // MsgDate = string.Empty; - // } - // else if (printRevDates.Count == 0) - // RevDate = DateTime.Now; - //} - } - public void DeleteProcedure(ProcedureInfo pi) - { - ApprovalProcedure tpi = null; - foreach (ApprovalProcedure pii in MyProcedures) - { - if (pii.ProcInfo.ItemID == pi.ItemID) - tpi = pii; - } - if (tpi != null) - { - MyProcedures.Remove(tpi); - Refresh(); - } - } - public bool CanApprove - { - get { return _RevType > 0 && _RevNumber != string.Empty && _RevStage > 0; } - } - public int FancyShmancyRevCompare(string s1, string s2) - { - if (s1 == s2) - return 0; - while (s1 != string.Empty && s2 != string.Empty) - { - //look for numbers - Match m1 = Regex.Match(s1, "^[0-9]+"); - Match m2 = Regex.Match(s2, "^[0-9]+"); - if (m1.Length > 0 && m2.Length > 0) - { - int i1 = int.Parse(m1.Value); - int i2 = int.Parse(m2.Value); - if (i1 < i2) - return -1; - if (i1 > i2) - return 1; - s1 = s1.Substring(m1.Length); - s2 = s2.Substring(m2.Length); - } - else - { - if (m1.Length > 0) - return 1; - if (m2.Length > 0) - return -1; - } - //look for letters - m1 = Regex.Match(s1, "^[A-Za-z]+"); - m2 = Regex.Match(s2, "^[A-Za-z]+"); - if (m1.Length > 0 && m2.Length > 0) - { - if (m1.Length > m2.Length) - return 1; - if (m1.Length < m2.Length) - return -1; - int c = m1.Value.CompareTo(m2.Value); - if (c != 0) - return c; - s1 = s1.Substring(m1.Length); - s2 = s2.Substring(m2.Length); - } - else - { - if (m1.Length > 0) - return 1; - if (m2.Length > 0) - return -1; - } - //look for symbols - m1 = Regex.Match(s1, "^[^0-9A-Za-z]+"); - m2 = Regex.Match(s2, "^[^0-9A-Za-z]+"); - if (m1.Length > 0 && m2.Length > 0) - { - int c = m1.Value.CompareTo(m2.Value); - if (c != 0) - return c; - s1 = s1.Substring(m1.Length); - s2 = s2.Substring(m2.Length); - } - else - { - if (m1.Length > 0) - return 1; - if (m2.Length > 0) - return -1; - } - } - return s1.CompareTo(s2); - } - public bool Approve(Point location) - { - ViewPDF = ViewPDF && MyProcedures.Count == 1; - StringBuilder sb = new StringBuilder(); - StageInfo nsi = StageInfo.GetJustStage(RevStage); - foreach (ApprovalProcedure ap in MyProcedures) //spin thru looking for updating current revision - { - //RevisionInfo ric = RevisionInfo.GetCurrentByItemID(ap.ProcInfo.ItemID); - RevisionInfo ric = ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0 ? RevisionInfo.GetCurrentByItemIDandUnitID(ap.ProcInfo.ItemID,ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave) : RevisionInfo.GetCurrentByItemID(ap.ProcInfo.ItemID); - if (ric != null) - { - VersionInfo vi = ric.LatestVersion; - if (ap.RevNumber == ric.RevisionNumber && nsi.IsApproved == 0 && vi.MyStage.IsApproved == 1) - sb.AppendLine(string.Format("{0} - '{1}'", ap.ProcInfo.DisplayNumber, vi.MyStage.Name)); - } - } - if (sb.Length > 0) - { - sb.Insert(0, string.Format("The following procedures will be reverted to '{0}'\r\n\r\n", nsi.Name)); - sb.AppendLine("\r\nThis will restore change bars and summary of change results!"); - sb.AppendLine("\r\nIf you do not want this to occur, answer No to this dialog \r\nand then change the revision number to create a new revision."); - sb.Append(string.Format("\r\nAre you sure you want to revert to '{0}'?",nsi.Name)); - if (MessageBox.Show(sb.ToString(),string.Format("Revert to {0}",nsi.Name),MessageBoxButtons.YesNo,MessageBoxIcon.Stop) == DialogResult.No) - return false; - } - foreach (ApprovalProcedure ap in MyProcedures) - { - ProcedureInfo pi = ap.ProcInfo; - OnStatusUpdated(this, new ApprovalMessageArgs(string.Format("Processing {0}", pi.DisplayNumber))); - string summaryPDF = string.Format(@"{0}\{1} Summary of Changes.pdf", VlnSettings.TemporaryFolder, pi.PDFNumber); - string pdfTmp = string.Format(@"{0}.pdf", pi.PDFNumber); - string pdfPath = string.Format(@"{0}\{1}", VlnSettings.TemporaryFolder, pdfTmp); - if (!TryToDelete(summaryPDF)) break; - if (!TryToDelete(pdfPath)) break; - RevisionInfo ric = pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0 ? RevisionInfo.GetCurrentByItemIDandUnitID(pi.ItemID, pi.MyDocVersion.DocVersionConfig.SelectedSlave) : RevisionInfo.GetCurrentByItemID(pi.ItemID); -// RevisionInfo rip = RevisionInfo.GetPreviousByItemID(pi.ItemID); - DateTime myDTS = pi.DTS; - string cbDTS = (pi.MyConfig as ProcedureConfig).Print_ChangeBarDate; - if ((cbDTS ?? "") != "") - myDTS = DateTime.Parse(cbDTS); - if (ric != null && ap.RevNumber == ric.RevisionNumber && ric.LatestVersion.MyStage.IsApproved == 1) - { - myDTS = ric.MyConfig.History_StartDate; - //UpdateProcedureDTS(pi, myDTS); - } - if (ric != null && ap.RevNumber != ric.RevisionNumber && ric.LatestVersion.MyStage.IsApproved == 1) - { - myDTS = ric.DTS; -// myDTS = DateTime.Parse(pi.ProcedureConfig.Print_RevDate); - } - ContentAuditInfoList cail; - AnnotationAuditInfoList aail; - if (pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0) - { - pi = ProcedureInfo.GetItemAndChildrenByUnit(pi.ItemID, 0, pi.MyDocVersion.DocVersionConfig.SelectedSlave); - pi.ChangeBarDate = myDTS; - cail = ContentAuditInfoList.GetSummaryByUnit(pi.ItemID, pi.ItemID, false, pi.MyDocVersion.DocVersionConfig.SelectedSlave, pi.ChangeBarDate); - aail = AnnotationAuditInfoList.GetChronologyByUnit(pi.ItemID, pi.ItemID, pi.MyDocVersion.DocVersionConfig.SelectedSlave, pi.ChangeBarDate); - } - else - { - if (pi.ActiveFormat.PlantFormat.FormatData.TransData.UseTransitionModifier) - pi = ProcedureInfo.GetItemAndChildrenByUnit(pi.ItemID, 0, pi.MyDocVersion.DocVersionConfig.SelectedSlave); - else - pi = ProcedureInfo.GetItemAndChildren(pi.ItemID); - pi.ChangeBarDate = myDTS; - cail = ContentAuditInfoList.GetSummary(pi.ItemID, pi.ItemID, false, pi.ChangeBarDate); - aail = AnnotationAuditInfoList.GetChronology(pi.ItemID, pi.ItemID, pi.ChangeBarDate); - } - Volian.Print.Library.PDFChronologyReport myChronoRpt = new Volian.Print.Library.PDFChronologyReport(summaryPDF, pi, cail, aail); - myChronoRpt.BuildSummary(ViewPDF); - FileInfo pdfFile = new FileInfo(summaryPDF); - FileStream fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - byte[] summaryBuf = new byte[pdfFile.Length]; - fs.Read(summaryBuf, 0, summaryBuf.Length); - fs.Close(); - Revision revision = null; - if (ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0) - { - revision = Revision.GetByItemIDAndRevisionNumberAndUnitID(pi.ItemID, ap.RevNumber, ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave); - if (revision == null) - { - RevisionConfig cfg = new RevisionConfig(); - cfg.History_StartDate = myDTS; // pi.DTS; - cfg.Applicability_Index = ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave; - //cfg.Save(); - revision = Revision.MakeRevision(pi.ItemID, RevType, ap.RevNumber, ap.RevDate, RevNote, cfg.ToString(), DateTime.Now, Volian.Base.Library.VlnSettings.UserID); - // revision.MyConfig.History_StartDate = pi.DTS; - // revision.MyConfig.Save(); - // revision = revision.Save(); - } - else if (revision.Notes != RevNote || revision.RevisionDate != ap.RevDate) - { - //C2016-036 - Inform the user that an existing approved version will be replaced - if (MessageBox.Show("Replace Existing Revision " + ap.RevNumber + "\r\n\r\nChange the Rev Number to create a new revision.", "Replace Existing", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel) - return false; - revision.Notes = RevNote; - revision.RevisionDate = ap.RevDate; - revision = revision.Save(); - } - } - else - { - revision = Revision.GetByItemIDAndRevisionNumber(pi.ItemID, ap.RevNumber); - if (revision == null) - { - RevisionConfig cfg = new RevisionConfig(); - cfg.History_StartDate = pi.DTS; - //cfg.Save(); - revision = Revision.MakeRevision(pi.ItemID, RevType, ap.RevNumber, ap.RevDate, RevNote, cfg.ToString(), DateTime.Now, Volian.Base.Library.VlnSettings.UserID); - // revision.MyConfig.History_StartDate = pi.DTS; - // revision.MyConfig.Save(); - // revision = revision.Save(); - } - else if (revision.Notes != RevNote || revision.RevisionDate != ap.RevDate) - { - //C2016-036 - Inform the user that an existing approved version will be replaced - if (MessageBox.Show("Replace Existing Revision " + ap.RevNumber + "\r\n\r\nChange the Rev Number to create a new revision.", "Replace Existing", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel) - return false; - revision.Notes = RevNote; - revision.RevisionDate = ap.RevDate; - revision = revision.Save(); - } - } - DateTime currentDTS = DateTime.Now; - Check check = Check.MakeCheck(revision, Stage.GetJustStage(RevStage), RevisionInfo.BuildRevisionChecks(pi), currentDTS, VlnSettings.UserID); - //make pdf with promsprinter and get byte stream - // Moved to end so that Item and Content are saved at the same time - //UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS); - string waterMark = Stage.GetJustStage(RevStage).IsApproved > 0 ? null : Stage.GetJustStage(RevStage).Name; - //ProcedureInfo myproc = pi; - //frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - //myproc.ChangeBarDate = myDTS; - frmPDFStatusForm frm = new frmPDFStatusForm(pi, ap.RevNumAndDate, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location, pi.MyDocVersion.DocVersionConfig.Print_AddBlankPagesWhenUsingDuplexFoldouts, true,"",false,false); - frm.AllowAllWatermarks = true; - frm.CloseWhenDone = !ViewPDF; - frm.DocReplace = new Dictionary(); // will hold the Word Attachments with resolved ROs - frm.ShowDialog(); - //if (ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0) - //{ - // using (ProcedureInfo myproc = ProcedureInfo.GetItemAndChildrenByUnit(pi.ItemID, 0, ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave)) - // { - // //frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - // myproc.ChangeBarDate = myDTS; - // frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumAndDate, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - // frm.AllowAllWatermarks = true; - // frm.CloseWhenDone = !ViewPDF; - // frm.ShowDialog(); - // } - //} - //else - //{ - // using (ProcedureInfo myproc = ProcedureInfo.GetItemAndChildren(pi.ItemID)) - // { - // //frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - // myproc.ChangeBarDate = myDTS; - // frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumAndDate, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - // frm.AllowAllWatermarks = true; - // frm.CloseWhenDone = !ViewPDF; - // frm.ShowDialog(); - // } - //} - pdfFile = new FileInfo(pdfPath); - fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - byte[] buf = new byte[pdfFile.Length]; - fs.Read(buf, 0, buf.Length); - fs.Close(); - VEPROMS.CSLA.Library.Version version = VEPROMS.CSLA.Library.Version.MakeVersion(revision, Stage.GetJustStage(RevStage), buf, summaryBuf, currentDTS, VlnSettings.UserID); - StageInfo si = StageInfo.GetJustStage(RevStage); - int selectedSlave = pi.MyDocVersion.DocVersionConfig.SelectedSlave; - pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; - if (si.IsApproved == 1) - { - dlgExportImport dlg = new dlgExportImport("Export", pi, MyFrmVEPROMS); // "true tell export to convert ROs and Transitions to text - dlg.DocReplace = frm.DocReplace; // this tells approval to prepare an export file with resolved transitions and ROs, word sections are saved with resolved ROs during approval PDF creation and saved in DocReplace - System.Xml.XmlDocument xd = new System.Xml.XmlDocument(); - dlg.ExportItem(xd, pi, "procedure"); - frm.DocReplace = dlg.DocReplace = null; - version.ApprovedXML = xd.OuterXml; - version.Save(); - dlg.Dispose(); - UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, DateTime.Now, selectedSlave); - - // Clear the change bar override for this procedure: - pi.ClearChangeBarOverrides(); - } - else - UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS, selectedSlave); - //UpdateProcedureDTS(pi, DateTime.Now); - pi.MyDocVersion.DocVersionConfig.SelectedSlave = selectedSlave; - } - return true; - } - private bool TryToDelete(string pdfFile) - { - int cntr = 0; - while (File.Exists(pdfFile)) - { - try - { - File.Delete(pdfFile); - return true; - } - catch - { - cntr++; - StringBuilder sb = new StringBuilder(); - sb.AppendLine("Could not create"); - sb.AppendLine(); - sb.AppendLine(pdfFile + "."); - sb.AppendLine(); - sb.AppendLine("If it is open, close and retry."); - if (cntr >= 3) - { - sb.Insert(0, "PAY ATTENTION!!!\r\n\r\n"); - sb.AppendLine("\r\n\r\nFIRST CLOSE IT, THEN PRESS THE OK BUTTON!!!"); - } - if(MessageBox.Show(sb.ToString(), "Error on CreatePdf", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK) - return false; - Application.DoEvents(); - } - } - return true; - } - - private void UpdateProcedureDTS(ProcedureInfo pi, DateTime dts) - { - using (Item itm = Item.Get(pi.ItemID)) - { - itm.DTS = dts; - itm.Save(); - } - } - private void UpdateProcedureConfig(ProcedureInfo procedureInfo, string revNumber, DateTime revDate, DateTime dts, int selectedSlave) - { - ProcedureConfig pc = procedureInfo.MyConfig as ProcedureConfig; - if (pc == null) return; - pc.SelectedSlave = selectedSlave; - pc.Print_Rev = revNumber; - //AppRevDate Change - pc.Print_RevDate = revDate.ToString("MM/dd/yyyy"); - pc.Print_ChangeBarDate = dts.ToString("MM/dd/yyyy HH:mm:ss"); - using (Item itm = Item.Get(procedureInfo.ItemID)) - { - itm.MyContent.Config = pc.ToString(); - //itm.DTS = dts; - itm.UserID = Volian.Base.Library.VlnSettings.UserID; - itm.Save(); - } - - } - } - public class RevType - { - private int _TypeID; - public int TypeID - { - get { return _TypeID; } - set { _TypeID = value; } - } - private string _TypeName; - public string TypeName - { - get { return _TypeName; } - set { _TypeName = value; } - } - public RevType(int i, string s) - { - _TypeID = i; - _TypeName = s; - } - } - public class RevTypes : List - { - } - public delegate void DisplayConsistencyReportEvent(object sender, ConsistencyReportArgs args); - public class ConsistencyReportArgs : EventArgs - { - private string _ReportName; - public string ReportName - { - get { return _ReportName; } - set { _ReportName = value; } - } - private ItemInfoList _MyItems; - public ItemInfoList MyItems - { - get { return _MyItems; } - set { _MyItems = value; } - } - public ConsistencyReportArgs(string reportName, ItemInfoList myItems) - { - _ReportName = reportName; - _MyItems = myItems; - } - } -} \ No newline at end of file diff --git a/PROMS/PROMS/VEPROMS User Interface/dlgExportImport.cs b/PROMS/PROMS/VEPROMS User Interface/dlgExportImport.cs deleted file mode 100644 index 51e44cc0..00000000 --- a/PROMS/PROMS/VEPROMS User Interface/dlgExportImport.cs +++ /dev/null @@ -1,4287 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; -using System.Xml; -using System.IO; -using Ionic.Zip; -using System.Text.RegularExpressions; - -namespace VEPROMS -{ - public partial class dlgExportImport : Form -{ - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - frmVEPROMS _MyFrmVEPROMS = null; - public frmVEPROMS MyFrmVEPROMS - { - get { return _MyFrmVEPROMS; } - set { _MyFrmVEPROMS = value; } - } - private bool _ConvertROsToTextDuringImport = false; - private bool _ConvertROsAndTransitionsToText = false; // set to true when Approval creates an Export file - - // B2016-225 notify user when Transitions and/or ROs are converted to text - private bool _DidConvertTransitionsToText = false; - private bool _DidConvertROsToText = false; - - private ItemInfo _ExternalTransitionItem = null; - public ItemInfo ExternalTransitionItem - { - get { return _ExternalTransitionItem; } - set { _ExternalTransitionItem = value; } - } - private Dictionary floatFoldout; - private Dictionary oldFormat; - private Dictionary newFormat; - private int oldRODbID; - private int newRODbID; - private FolderInfo _MyNewFolder; - public FolderInfo MyNewFolder - { - get { return _MyNewFolder; } - } - private ProcedureInfo _MyNewProcedure; - public ProcedureInfo MyNewProcedure - { - get { return _MyNewProcedure; } - set { _MyNewProcedure = value; } - } - private string PEIPath; - private string _MyMode; - private FolderInfo MyFolder = null; - private DocVersionInfo MyDocVersion = null; - private ProcedureInfo MyProcedure = null; - private XmlAttribute AddAttribute(XmlDocument xd, string name, string value) - { - XmlAttribute xa = xd.CreateAttribute(name); - xa.InnerText = value; - return xa; - } - public dlgExportImport(string mode, FolderInfo folderInfo, frmVEPROMS myFrmVEPROMS) - { - MyFrmVEPROMS = myFrmVEPROMS; - _MyMode = mode; - MyFolder = folderInfo; - InitializeComponent(); - this.Text = mode + " Dialog for " + folderInfo.Name; - } - public dlgExportImport(string mode, DocVersionInfo docVersionInfo, frmVEPROMS myFrmVEPROMS) - { - MyFrmVEPROMS = myFrmVEPROMS; - _MyMode = mode; - MyDocVersion = docVersionInfo; - InitializeComponent(); - this.Text = mode + " Dialog for " + docVersionInfo.Name + " of " + docVersionInfo.MyFolder.Name; - } - public dlgExportImport(string mode, ProcedureInfo procedureInfo, frmVEPROMS myFrmVEPROMS) - { - MyFrmVEPROMS = myFrmVEPROMS; - _MyMode = mode; - MyProcedure = procedureInfo; - InitializeComponent(); - this.Text = mode + " Dialog for " + procedureInfo.DisplayNumber; - } - private void dlgExportImport_Load(object sender, EventArgs e) - { - PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database; - if (!Directory.Exists(PEIPath)) - Directory.CreateDirectory(PEIPath); - if (_MyMode == "Import") - { - //If you try to import a procedure into an empty PROMS folder, the code was deleting the File System Folder including the import file. This happened during D.C. Cook training (12/3/2015). - //if (MyFolder != null && MyFolder.ChildFolderCount == 0 ) - //{ - // Directory.Delete(PEIPath, true); - // Directory.CreateDirectory(PEIPath); - //} - } - pnlExport.Dock = DockStyle.Fill; - pnlImport.Dock = DockStyle.Fill; - if (_MyMode.ToLower() == "export") - { - sfd.InitialDirectory = PEIPath; - pnlExport.BringToFront(); - } - else - { - ofd.InitialDirectory = PEIPath; - pnlImport.BringToFront(); - } - this.Height = this.Height / 2; - } - private void btnExport_Click(object sender, EventArgs e) - { - if (MyFolder != null) - { - //Database.SelectedDatabase - //sfd.FileName = string.Format("{0}.expx", MyFolder.Name); - sfd.FileName = string.Format("{0}-{1}.expx",Database.ActiveDatabase, MyFolder.Name); - if (sfd.ShowDialog(this) == DialogResult.OK) - { - if (sfd.FileName != string.Empty) - { - txtExport.Text = sfd.FileName; - if (File.Exists(txtExport.Text)) - File.Delete(txtExport.Text); - MyExpxZipFile = new ZipFile(txtExport.Text, Encoding.UTF8); - MyExpxZipFile.Save(); - } - } - } - else if (MyProcedure != null) - { - txtExport.Text = string.Format(@"{0}\{1}.pxml", PEIPath, MyProcedure.DisplayNumber.Replace("/", "_").Replace("\\","_")); - } - } - private void txtExport_TextChanged(object sender, EventArgs e) - { - btnDoExport.Enabled = txtExport.TextLength > 0; - if (btnDoExport.Enabled) - lblExportStatus.Text = "Ready To Perform Export"; - else - lblExportStatus.Text = "Awaiting Export File Name:"; - } - private XmlWriter MyWriter = null; - private ZipFile MyExpxZipFile = null; - private ZipFile MyImpxZipFile = null; - private DateTime MyStart; - private bool successfullExport = true; - private void btnDoExport_Click(object sender, EventArgs e) - { - btnExport.Enabled = false; - string msg = "Finished Exporting:\n\n"; - if (MyFolder != null) - { - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoExport.Enabled = false; - lblExportStatus.Text = "Performing Export"; - SaveExportData(); - //SaveExportDataWriter(); - - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportStatus.Text = "Export Completed in " + elapsed.ToString(); - this.Cursor = Cursors.Default; - msg += MyFolder.Name; - } - else if (MyProcedure != null) - { - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoExport.Enabled = false; - lblExportStatus.Text = "Performing Export"; - pbExportProcedure.Maximum = 1; - XmlDocument xd = new XmlDocument(); - ExportItem(xd, MyProcedure, "procedure"); - xd.Save(txtExport.Text); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportStatus.Text = "Export Completed in " + elapsed.ToString(); - this.Cursor = Cursors.Default; - } - // added message to user when export of a procedure or procedure set has completed - if (successfullExport) - msg += MyProcedure; - else - msg = "Could not complete export"; - MessageBox.Show(msg, "Export", MessageBoxButtons.OK, MessageBoxIcon.Information); - btnCloseExport.Enabled = true; - } - private void SaveExportData() - { - XmlDocument xd = new XmlDocument(); - ExportFolder(xd, MyFolder, "folder"); - } - - // appears to not be used -jsj 4-29-2016 - //private void SaveExportDataWriter() - //{ - // XmlWriterSettings ws = new XmlWriterSettings(); - // ws.Indent = true; - // ws.NewLineHandling = NewLineHandling.Entitize; - // ws.CheckCharacters = false; - // MyWriter = XmlWriter.Create(txtExport.Text, ws); - // ExportFolder(MyFolder, "folder"); - // MyWriter.Close(); - //} - - private void btnDoImport_Click(object sender, EventArgs e) - { - bool isImported = false; - bool canceledPressed = false; - btnImport.Enabled = false; - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoImport.Enabled = false; - lblImportStatus.Text = "Performing Import"; - _DidConvertTransitionsToText = false; - _DidConvertROsToText = false; - //LoadImportDataReader(); - if (MyFolder != null) // import a folder - a .expx file - { - TurnChangeManagerOff.Execute(); - MyFrmVEPROMS.DisablePing = true; - TryToLoadImportDataDocument();// Added Try Catch Error Handling to assure that the Change Manager is tuned-on - MyDocVersion = null; - isImported = true; - MyFrmVEPROMS.DisablePing = false; - TurnChangeManagerOn.Execute(); - } - if (MyDocVersion != null) // import a procedure - a .pxml file - { - // compare the ROPath of MyDocVerion - // if no path set, display Pick RO Folder dialog - // if MyDocVersion ROPath is different than the import file ROPath, then ask user: - // - use MyDocVersion ROPath (warn resulting RO values may be be correct) - // * set oldRODbID to id in import file - // * set newRODbid to MyDocVersion rodbid - // - or convert ROs to text - TurnChangeManagerOff.Execute(); - // Added Try Catch Error Handling to assure that the Change Manager is tuned-on - bool result = TryToImportProcedure(ref isImported, ref canceledPressed); - TurnChangeManagerOn.Execute(); - if (!result) return; - if (isImported) - { - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblImportStatus.Text = "Import Completed in " + elapsed.ToString(); - } - else - { - btnImport.Enabled = true; - btnDoImport.Enabled = true; - } - } - this.Cursor = Cursors.Default; - btnCloseImport.Enabled = true; - if (isImported) - { - string msg = string.Format("Finished Importing:\n\n{0}", txtImport.Text.Substring(txtImport.Text.LastIndexOf("\\") + 1)); - if (_DidConvertTransitionsToText || _DidConvertROsToText) - { - string msg1 = (_DidConvertTransitionsToText && _DidConvertROsToText)?"Transitions and Referenced Objects":(_DidConvertTransitionsToText)?"Transitions":"Referenced Objects"; - msg += string.Format("\n\n{0} converted to text.\n\nThe locations can be found by doing a Global Search for the \"Link Converted To Text\" annotation type",msg1); - } - // B2016-225 added more information to the finish import message to tell the user when ROs or Transitions are converted to text. - MessageBox.Show(msg, "Import", MessageBoxButtons.OK, MessageBoxIcon.Information); - //MessageBox.Show(string.Format("Finished Importing:\n\n{0}", txtImport.Text.Substring(txtImport.Text.LastIndexOf("\\") + 1)), "Import", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - if (canceledPressed) - { - MessageBox.Show(string.Format("Canceling the import of:\n\n{0}",txtImport.Text.Substring(txtImport.Text.LastIndexOf("\\")+1)),"Import",MessageBoxButtons.OK,MessageBoxIcon.Information); - btnCloseImport.PerformClick(); - } - } - private bool TryToImportProcedure(ref bool isImported, ref bool canceledPressed) - { - try - { - return ImportProcedure(ref isImported, ref canceledPressed); - } - catch (Exception ex) - { - MessageBox.Show(ex.StackTrace, ex.Message, MessageBoxButtons.OK, MessageBoxIcon.Asterisk); - _MyLog.Warn("Failed during Procedure Import", ex); - this.Close(); - return false; - } - } - private bool ImportProcedure(ref bool isImported, ref bool canceledPressed) - { - XmlDocument xd = new XmlDocument(); - xd.Load(txtImport.Text); - pbImportProcedure.Maximum = 1; - string rofolderpath = xd.DocumentElement.Attributes.GetNamedItem("rofolderpath").InnerText; - int rodbid = int.Parse(xd.DocumentElement.Attributes.GetNamedItem("rodbid").InnerText); - int rofstid = int.Parse(xd.DocumentElement.Attributes.GetNamedItem("rofstid").InnerText); - if (MyDocVersion.DocVersionAssociationCount > 0) - { - // use current ROPath - MyRODb = RODb.GetJustRoDb(MyDocVersion.DocVersionAssociations[0].MyROFst.MyRODb.RODbID); - // if the current RO Path and the import file RO Path are not the same - // then ask if we should import using the current workingdraft RO Path, convert the ROs to text, or cancel the import - if (MyRODb.FolderPath != rofolderpath) - { - dlgImpHowToHandleROs dlg = new dlgImpHowToHandleROs(); - dlg.ImportedROFolder = rofolderpath; - dlg.WorkingDraftROFolder = MyRODb.FolderPath; - dlg.ShowDialog(this); - if (dlg.CancelImport) - { - this.Cursor = Cursors.Default; - this.btnImport.Enabled = true; // allow user to select a different export file to import - this.btnDoImport.Enabled = true; // allow user to change mind and perform the import - return false; // Return False to Indicate that the Import did not succeed - } - _ConvertROsToTextDuringImport = dlg.ConvertROsToText; - } - // this saves the old RO database ID and the current RO database ID so that we can change the RODBIDs in the RO links - newRODbID = MyRODb.RODbID; - oldRODbID = rodbid; - } - else - { - #region NeedToSelectROPath - // MyDocVersion does not have an RO database (ro folder path) assigned to it so we need to select an RO Path - List localROPaths = new List(); - RODbInfoList rolist = RODbInfoList.Get(); - foreach (RODbInfo dbi in rolist) - { - if (dbi.FolderPath == rofolderpath && dbi.RODbID == rodbid) - { - MyRODb = RODb.GetJustRoDb(rodbid); - oldRODbID = newRODbID = rodbid; - break; - } - // B2016-175 have the correct (matching) RO Path but the rodbid is different (procedure came from a different SQL database) - // We can use the RO Path but we need to change the rodbid in the RO links of the procedure we are importing - else if (dbi.FolderPath == rofolderpath && dbi.RODbID != rodbid) - { - MyRODb = RODb.GetByFolderPath(rofolderpath); - newRODbID = MyRODb.RODbID; - oldRODbID = rodbid; - break; - } - else - { - DirectoryInfo di = new DirectoryInfo(dbi.FolderPath); - if (di.Exists) - localROPaths.Add(dbi.FolderPath); - } - } - if (MyRODb == null) - { - if (localROPaths.Count == 0) - { - MessageBox.Show("There has been no RO folder defined for this database.\r\n\r\nIn order to import a procedure, you need to assign a RO folder path.\r\n\r\nImport process will terminate."); - this.Cursor = Cursors.Default; - return false;// Return False to Indicate that the Import did not succeed - } - else - { - this.Cursor = Cursors.Default; - dlgPickROFolder dlg = new dlgPickROFolder(); - dlg.ImportedROFolder = rofolderpath; - dlg.LocalROFolders = localROPaths; - dlg.ShowDialog(this); - if ((dlg.SelectedROFolder ?? string.Empty) != string.Empty) // B2015-216 If the return value is null treat it like an empty string - { - MyRODb = RODb.GetByFolderPath(dlg.SelectedROFolder); - RODbInfo myRODBInfo = RODbInfo.Get(MyRODb.RODbID); - oldRODbID = newRODbID = MyRODb.RODbID; - ROFstInfo fstInfo = null; - foreach (ROFstInfo tmp in myRODBInfo.RODbROFsts) - if (fstInfo == null || tmp.ROFstID > fstInfo.ROFstID) - fstInfo = tmp; - using (DocVersion dv = MyDocVersion.Get()) - { - using (ROFst fst = fstInfo.Get()) - { - dv.DocVersionAssociations.Add(fst); - dv.Save(); - } - dv.Reset_DocVersionAssociations(); - MyDocVersion.RefreshDocVersionAssociations(); - } - } - else - { - MessageBox.Show("Since you did not pick an existing RO folder defined for this database, the import process will terminate."); - this.Close();// Close the Import Window - return false;// Return False to Indicate that the Import did not succeed - } - } - } - #endregion - } // end - need to select RO Path - - // use resolvedProcNum to determine if procedure is 'unique', i.e. if the procedure number exists - // and user does not overwrite or copy, then the procedure should NOT be imported. Fix for B2016-045 - bool resolvedProcNum = true; - foreach (ProcedureInfo pi in MyDocVersion.Procedures) - { - // procedure numbers that contain a hyphen may have the hyphen represented as the unicode character - // '\u8209?' or the '-' character. If proc number is same except for hyphen representation, they - // should be considered the same procedure (fix for B2016-084) - string hyphenNum = pi.MyContent.Number == null ? "" : pi.MyContent.Number.Replace(@"\u8209?", "-").Replace("\u2011", "-").Replace(@"\u9586?", @"\").Replace("\u2572", @"\"); - string hyphenImpNum = xd.SelectSingleNode("procedure/content/@number").InnerText; - // bug fix C2015-044 - jsj - // - the cancel button would ignor the user's wishes and proceed with the import (overwriting the existing procedure) - // - also found that the message about overwriting or making a copy wasn't appearing because we where not converting the import procedure number - // - our standard unicode dash (\u8209?) before conparing the existing and imported - // - also found the Overrite and make a copy of messages looked too similar - fixed that as well. - //hyphenImpNum = hyphenImpNum == null ? "" : hyphenImpNum.Replace("\u8030?", "-"); -did not find any reason to have this \u8030? - note retested sourcesafe doc for B2016-084 without this logic and it was fine - hyphenImpNum = hyphenImpNum == null ? "" : hyphenImpNum.Replace(@"\u8209?", "-").Replace("\u2011", "-").Replace(@"\u9586?", @"\").Replace("\u2572", @"\"); - - if (hyphenNum == hyphenImpNum) - { - string msg = string.Format("The procedure you are importing{0}already exists in this procedure set.\n\nDo you want to OVERWRITE the existing procedure?", !hyphenImpNum.Equals("") ? string.Format(" ({0}) ", hyphenImpNum) : " "); - DialogResult dr = MessageBox.Show(this, msg, "Overwrite Existing Procedure", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - if (dr == DialogResult.Yes) - { - ImportProcedureOverwrite(xd, pi); - isImported = true; - break; - } - if (dr == DialogResult.No) - { - msg = string.Format("Do you want to import {0} as a COPY of the existing procedure?\n\nThis will prefix the procedure number with \"Copy of\"", !hyphenImpNum.Equals("") ? string.Format("({0})", hyphenImpNum) : "the procedure"); - dr = MessageBox.Show(this, msg, "Create Copy Of Existing Procedure", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - if (dr == DialogResult.Yes) - { - ImportProcedureCopy(xd); - isImported = true; - break; - } - else - resolvedProcNum = false; - } - if (dr == System.Windows.Forms.DialogResult.Cancel) - { - canceledPressed = true; - resolvedProcNum = false; - } - break; // user selected No or Cancel so break out of the foreach loop - } - } - if (!canceledPressed && !isImported && resolvedProcNum) - { - ImportProcedureNew(xd); - isImported = true; - } - return true;// Import Suceeded - } - // Added Error Handling to assure that Change Manager is turned-on regardless of success or failure of the import - private void TryToLoadImportDataDocument() - { - try - { - LoadImportDataDocument(); - } - catch (Exception ex) - { - _MyLog.Warn("Failure During Import", ex); - } - } - private void ImportProcedureNew(XmlDocument xd) - { - //add imported procedure - floatFoldout = new Dictionary(); - oldFormat = new Dictionary(); - newFormat = new Dictionary(); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - { - oldFormat.Add(fi.FormatID, fi.Name); - newFormat.Add(fi.Name, fi.FormatID); - } - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - PendingTransitions = new XmlDocument(); - XmlElement xe = PendingTransitions.CreateElement("transitions"); - PendingTransitions.AppendChild(xe); - string fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Save(fn); - ProcedureInfo lastProcedure = null; - foreach (ProcedureInfo pi in MyDocVersion.Procedures) - lastProcedure = pi; - _MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure); - //update transitions - AddTransitions(PendingTransitions); - PendingTransitions.Save(fn); - FixFloatingFoldouts(); - //File.Delete(fn); - } - private void ImportProcedureCopy(XmlDocument xd) - { - floatFoldout = new Dictionary(); - oldFormat = new Dictionary(); - newFormat = new Dictionary(); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - { - oldFormat.Add(fi.FormatID, fi.Name); - newFormat.Add(fi.Name, fi.FormatID); - } - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - PendingTransitions = new XmlDocument(); - XmlElement xe = PendingTransitions.CreateElement("transitions"); - PendingTransitions.AppendChild(xe); - string fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Save(fn); - ProcedureInfo lastProcedure = null; - //determine count of existing procedures with same number - string number = xd.SelectSingleNode("procedure/content/@number").InnerText; - - // kbr - could replace '-' with unicode in number, here. - int count = 0; - foreach (ProcedureInfo pi in MyDocVersion.Procedures) - { - lastProcedure = pi; - if (pi.MyContent.Number.EndsWith(number)) - count++; - } - xd.SelectSingleNode("procedure/content/@number").InnerText = string.Format("Copy({0}) of {1}", count.ToString(), number); - //add imported procedure and copy count - _MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure); - //update transitions - AddTransitions(PendingTransitions); - FixFloatingFoldouts(); - File.Delete(fn); - } - private void ImportProcedureOverwrite(XmlDocument xd, ProcedureInfo pi) - { - floatFoldout = new Dictionary(); - oldFormat = new Dictionary(); - newFormat = new Dictionary(); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - { - oldFormat.Add(fi.FormatID, fi.Name); - newFormat.Add(fi.Name, fi.FormatID); - } - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - PendingTransitions = new XmlDocument(); - XmlElement xe = PendingTransitions.CreateElement("transitions"); - PendingTransitions.AppendChild(xe); - string fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Save(fn); - ProcedureInfo lastProcedure = null; - //delete old procedure - foreach (ProcedureInfo lp in MyDocVersion.Procedures) - lastProcedure = lp; - //delete opi - try - { - TurnChangeManagerOn.Execute(); // Import Turns off the Change Manager - Delete needs to have it on - Item.DeleteItemAndChildren(pi); - TurnChangeManagerOff.Execute(); // Assure that the Change Manager is off - } - catch(Exception ex) - { - ExternalTransitionItem = pi.HandleSqlExceptionOnDelete(ex); - File.Delete(fn); - TurnChangeManagerOff.Execute(); // Assure that the Change Manager is off - return; - } - //add imported procedure - _MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure); - //update transitions - AddTransitions(PendingTransitions); - FixFloatingFoldouts(); - } - private void LoadImportDataDocument() - { - floatFoldout = new Dictionary(); - ZipEntry ze = MyExpxZipFile[0]; - string fn = PEIPath + @"\" + ze.FileName; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - XmlDocument xd = new XmlDocument(); - xd.Load(fn); - LoadFormats(xd); - Folder ff = AddFolder(Folder.Get(MyFolder.FolderID), xd); - if (ff == null) - { - MessageBox.Show("You can not import the same procedure set more than once", "Duplicate Import Error"); - return; - } - _MyNewFolder = FolderInfo.Get(ff.FolderID); - AddAnnotationTypes(xd); - DocVersionInfo dvi = AddDocVersion(ff, xd); - MyDocVersion = dvi; - xd = null; - lblImportStatus.Text = "Creating Procedures..."; - Application.DoEvents(); - ProcedureInfo pi = null; - pbImportProcedure.Value = 0; - pbImportProcedure.Maximum = MyExpxZipFile.Entries.Count - 1; - for (int i = 1; i < MyExpxZipFile.Entries.Count; i++) - { - ze = MyExpxZipFile[i]; - fn = PEIPath + @"\" + ze.FileName; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - xd = new XmlDocument(); - xd.Load(fn); - pi = AddProcedure(xd.DocumentElement, dvi, pi); - GC.Collect(); // need to cleanup memory after importing each procedure due to use of Regular Expressions in processing RO and Transition links - } - DirectoryInfo di = new DirectoryInfo(PEIPath); - DirectoryInfo[] dis = di.GetDirectories(); - for (int d = 0; d < dis.Length; d++) - dis[d].Delete(true); - lblImportStatus.Text = "Updating Transitions"; - AddTransitions(); - FixFloatingFoldouts(); - SaveTransitionAndItemContentIDs(); - } - private void FixSectionStart(ProcedureInfo pi) - { - Content c = Content.Get(pi.MyContent.ContentID); - XmlDocument xd = new XmlDocument(); - // If the config field is empty, add an empty xml node. - if (c.Config == "") c.Config = ""; - xd.LoadXml(c.Config); - XmlNode xn = xd.SelectSingleNode("Config/Procedure/@SectionStart"); - if (xn != null) - { - int iid = int.Parse(xn.InnerText); - if (Old2NewItem.ContainsKey(iid)) - iid = Old2NewItem[iid]; - else - { - int oldid = iid; - iid = pi.ItemID; - XmlAttribute xa = xd.CreateAttribute("ErrorSectionStart"); - xa.InnerText = oldid.ToString(); - XmlNode xp = xd.SelectSingleNode("Config/Procedure"); - xp.Attributes.SetNamedItem(xa); - } - xn.InnerText = iid.ToString(); - c.Config = xd.OuterXml; - c.Save(); - } - } - private void FixFloatingFoldouts() - { - foreach (int key in floatFoldout.Keys) - { - lblImportStatus.Text = "Updating Floating Foldouts"; - int cid = Old2NewContent[key]; - int iid = Old2NewItem[floatFoldout[key]]; - Content c = Content.Get(cid); - XmlDocument xd = new XmlDocument(); - xd.LoadXml(c.Config); - XmlNode xn = xd.SelectSingleNode("Config/Step/@FloatingFoldout"); - xn.InnerText = iid.ToString(); - c.Config = xd.OuterXml; - c.Save(); - } - } - - // note that his is only used when importing a folder - private void LoadFormats(XmlDocument xd) - { - oldFormat = new Dictionary(); - XmlNodeList nl = xd.SelectNodes("folder/formats/format"); - foreach (XmlNode nd in nl) - { - int formatid = int.Parse(nd.Attributes.GetNamedItem("formatid").InnerText); - string name = nd.Attributes.GetNamedItem("name").InnerText; - oldFormat.Add(formatid, name); - } - newFormat = new Dictionary(); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - newFormat.Add(fi.Name, fi.FormatID); - } - - //jsj 4-29-2016 appears to not be used - //Dictionary dicParentItem = null; - //private void UpdateParentItem(int depth, ItemInfo ii) - //{ - // if (dicParentItem == null) dicParentItem = new Dictionary(); - // if (!dicParentItem.ContainsKey(depth)) dicParentItem.Add(depth, null); - // dicParentItem[depth] = ii; - //} - - //jsj 4-29-2016 appears to not be used - //Dictionary dicPreviousItem = null; - //private void UpdatePreviousItem(int depth, ItemInfo ii) - //{ - // if (dicPreviousItem == null) dicPreviousItem = new Dictionary(); - // if (!dicPreviousItem.ContainsKey(depth)) dicPreviousItem.Add(depth, null); - // dicPreviousItem[depth] = ii; - //} - - Dictionary dicItemDepth = null; - - // jsj 4-29-2016 appears to not be used - //private void UpdateItemDepth(int depth, int id) - //{ - // if (dicItemDepth == null) dicItemDepth = new Dictionary(); - // if (!dicItemDepth.ContainsKey(depth)) dicItemDepth.Add(depth, 0); - // dicItemDepth[depth] = id; - //} - // jsj 2016Feb17 - this appears to not be used - //private void LoadImportDataReader() - //{ - // int pCount = 0; - // int sCount = 0; - // Folder folder = null; - // DocVersion docversion = null; - // Dictionary dicRofst = null; - // Dictionary dicEntry = null; - // ROFst rofst = null; - // GetImportDataCounts(); - // pbImportProcedure.Maximum = MyCounts.Count; - // pbImportProcedure.Value = 0; - // Application.DoEvents(); - // FileStream fs = File.OpenRead(txtImport.Text); - // XmlReaderSettings rs = new XmlReaderSettings(); - // rs.CheckCharacters = false; - // XmlReader xr = XmlReader.Create(fs, rs); - // while (xr.Read()) - // { - // if (xr.IsStartElement()) - // { - // switch (xr.Name) - // { - // case "annotation": - // AddAnnotation(xr); - // break; - // //case "association": - // // break; - // case "content": - // { - // if (xr.Depth == 3) //content for procedure - // { - // ItemInfo ii = AddProcedure(xr, docversion, dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // } - // else - // { - - // int fromtype = dicItemDepth.ContainsKey(xr.Depth - 2) ? dicItemDepth[xr.Depth - 2] : 0; - // switch (fromtype) - // { - // case 2: - // { //sections - // ItemInfo ii = AddSection(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // case 3: - // { //cautions - // ItemInfo ii = AddCaution(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // case 4: - // { //notes - // ItemInfo ii = AddNote(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // case 5: - // { //rnos - // ItemInfo ii = AddRNO(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // case 6: - // { //steps - // ItemInfo ii = AddStep(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // case 7: - // { //tables - // ItemInfo ii = AddTable(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // default: - // break; - // } - // } - // break; - // } - // case "document": - // AddDocument(xr, dicEntry); - // break; - // case "docversion": - // { - // docversion = AddDocVersion(folder, xr); - // UpdatePreviousItem(xr.Depth + 2, null); - // break; - // } - // case "entry": - // dicEntry = AddEntry(xr); - // break; - // case "folder": - // folder = AddFolder(Folder.Get(MyFolder.FolderID), xr); - // break; - // case "grid": - // AddGrid(xr); - // break; - // case "procedure": - // { - // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - // pbImportProcedure.PerformStep(); - // lblImportProcedure.Text = string.Format("{0} of {1} Procedures", pbImportProcedure.Value.ToString(), pbImportProcedure.Maximum.ToString()); - // pCount++; - // pbImportSection.Maximum = MyCounts[pCount].Count; - // pbImportSection.Value = 0; - // sCount = 0; - // Application.DoEvents(); - // break; - // } - // case "section": - // { - // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - // pbImportSection.PerformStep(); - // lblImportSection.Text = string.Format("{0} of {1} Sections", pbImportSection.Value.ToString(), pbImportSection.Maximum.ToString()); - // sCount++; - // pbImportStep.Maximum = MyCounts[pCount][sCount]; - // pbImportStep.Value = 0; - // Application.DoEvents(); - // break; - // } - // case "step": - // { - // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - // if (xr.Depth == 8) - // { - // pbImportStep.PerformStep(); - // lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - // Application.DoEvents(); - // } - // break; - // } - // case "caution": - // case "note": - // case "rno": - // case "table": - // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - // break; - // case "cautions": - // case "notes": - // case "rnos": - // case "sections": - // case "steps": - // case "tables": - // { - // UpdateItemDepth(xr.Depth, int.Parse(xr.GetAttribute("fromtype"))); - // UpdatePreviousItem(xr.Depth + 2, null); - // UpdateParentItem(xr.Depth + 2, dicParentItem[xr.Depth - 1]); - // break; - // } - // case "rodb": - // { - // MyRODb = AddRODb(xr); - // rofst = AddROFst(dicRofst); - // docversion.DocVersionAssociations.Add(rofst); - // docversion.Save(); - // break; - // } - // case "rofst": - // dicRofst = GetROFstData(xr); - // break; - // case "rousage": - // AddROUsage(xr); - // break; - // //case "transition": - // // break; - // default: - // break; - // } - // Console.WriteLine("{0} - {1}", xr.Name, xr.Depth.ToString()); - // } - // } - // pbImportProcedure.PerformStep(); - // Application.DoEvents(); - // fs.Close(); - // FixImportDataTransitions(); - // StoreItemContentIDs(); - // ResolveExternalTransitions(folder); - //} - - // This is called only when we are importing an entire folder. - // if there is a .impx file (a zip file generated from the last folder export file and based on location -folder name- of the export file you are importing), then it updates it with new values, - // else it will create a .impx file, and saves the id information listed below. - // This will create and save the ItemIDs (old and new), ContentIDs (old andnew), library document IDs (old and new), and pending transitions each in their own xml file - // the xml files are then added (or replaced) in the .impx file. - private void SaveTransitionAndItemContentIDs() - { - XmlDocument xd = new XmlDocument(); - XmlElement xe = xd.CreateElement("items"); - xd.AppendChild(xe); - string fn = PEIPath + @"\items.xml"; - foreach (int key in Old2NewItem.Keys) - { - xe = xd.CreateElement("item"); - xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewItem[key].ToString())); - xd.DocumentElement.AppendChild(xe); - } - xd.Save(fn); - ZipEntry ze = MyImpxZipFile["items.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - xd = new XmlDocument(); - xe = xd.CreateElement("contents"); - xd.AppendChild(xe); - fn = PEIPath + @"\contents.xml"; - foreach (int key in Old2NewContent.Keys) - { - xe = xd.CreateElement("content"); - xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewContent[key].ToString())); - xd.DocumentElement.AppendChild(xe); - } - xd.Save(fn); - ze = MyImpxZipFile["contents.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - xd = new XmlDocument(); - xe = xd.CreateElement("transitions"); - xd.AppendChild(xe); - fn = PEIPath + @"\transitions.xml"; - if (PendingTransitions != null && PendingTransitions.DocumentElement.HasChildNodes) - { - foreach (XmlNode nd in PendingTransitions.DocumentElement.ChildNodes) - { - if(nd.InnerText == "") - xd.DocumentElement.AppendChild(xd.ImportNode(nd, true)); - } - } - xd.Save(fn); - ze = MyImpxZipFile["transitions.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - } - // appears to not be used - jsj 4-28-2016 - //private void StoreItemContentIDs() - //{ - // XmlDocument xd = new XmlDocument(); - // string fn = PEIPath + @"\ExternalTransitions.xml"; - // xd.Load(fn); - // XmlElement xe = (XmlElement)xd.SelectSingleNode("externaltransitions/oldtonewitem"); - // foreach (int key in Old2NewItem.Keys) - // { - // XmlElement xee = xd.CreateElement("item"); - // XmlAttribute xa = AddAttribute(xd, "old", key.ToString()); - // xee.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "new", Old2NewItem[key].ToString()); - // xee.Attributes.SetNamedItem(xa); - // xe.AppendChild(xee); - // } - // xd.Save(fn); - // xe = (XmlElement)xd.SelectSingleNode("externaltransitions/oldtonewcontent"); - // foreach (int key in Old2NewContent.Keys) - // { - // XmlElement xee = xd.CreateElement("content"); - // XmlAttribute xa = AddAttribute(xd, "old", key.ToString()); - // xee.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "new", Old2NewContent[key].ToString()); - // xee.Attributes.SetNamedItem(xa); - // xe.AppendChild(xee); - // } - // xd.Save(fn); - //} - //private void ResolveExternalTransitions(Folder folder) - //{ - // XmlDocument xd = new XmlDocument(); - // string fn = PEIPath + @"\ExternalTransitions.xml"; - // xd.Load(fn); - // AddStoredItemContentIDs(xd); - // XmlNodeList nl = xd.SelectNodes("//transition[@folder!='']"); - // foreach (XmlNode nd in nl) - // { - // int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - // int fromid = int.Parse(nd.Attributes.GetNamedItem("fromid").InnerText); - // int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - // int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - // if (Old2NewContent.ContainsKey(fromid) && Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) - // { - // int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - // int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - // string config = nd.Attributes.GetNamedItem("config").InnerText; - // string userid = nd.Attributes.GetNamedItem("userid").InnerText; - // DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - // string lookfor; - // if (isrange == 0) - // lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - // else - // lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - // fromid = Old2NewContent[fromid]; - // toid = Old2NewItem[toid]; - // rangeid = Old2NewItem[rangeid]; - // Content cc = Content.Get(fromid); - // Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - // transitionid = tt.TransitionID; - // string replacewith; - // if (isrange == 0) - // replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - // else - // replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - // cc.Text = cc.Text.Replace(lookfor, replacewith); - // cc.Save(); - // nd.Attributes.GetNamedItem("folder").InnerText = ""; - // } - // } - // xd.Save(fn); - //} - - // This is called only when we are importing an entire folder and there is a .impx file (a zip file) - // the name of the .impx file is based on the folder name containing the export file being imported - // This will read in the saved ItemIDs (old and new), ContentIDs (old andnew), library document IDs (old and new), and pending transitions - private void ReadTransitionAndItemContentIDs() - { - ZipEntry ze = MyImpxZipFile["items.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - string fn = PEIPath + @"\items.xml"; - XmlDocument xd = new XmlDocument(); - xd.Load(fn); - // B2016-176, B2016-197 Transitions were no always properly resolved - don't load in the old item ids - //XmlNodeList nl = xd.SelectNodes("//item"); - //foreach (XmlNode nd in nl) - //{ - // int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - // int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - // //if (!Old2NewItem.ContainsKey(oldid)) - // Old2NewItem.Add(oldid, newid); - //} - File.Delete(fn); - ze = MyImpxZipFile["contents.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\contents.xml"; - xd = new XmlDocument(); - xd.Load(fn); - // B2016-176, B2016-197 Transitions were no always properly resolved - don't load in the old content ids - //nl = xd.SelectNodes("//content"); - //foreach (XmlNode nd in nl) - //{ - // int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - // int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - // //if (!Old2NewContent.ContainsKey(oldid)) - // Old2NewContent.Add(oldid, newid); - //} - File.Delete(fn); - ze = MyImpxZipFile["libdocs.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\libdocs.xml"; - xd = new XmlDocument(); - xd.Load(fn); - XmlNodeList nl = xd.SelectNodes("//libdoc"); - //nl = xd.SelectNodes("//libdoc"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - //if (!Old2NewContent.ContainsKey(oldid)) - Old2NewLibDoc.Add(oldid, newid); - } - File.Delete(fn); - ze = MyImpxZipFile["transitions.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Load(fn); - File.Delete(fn); - } - // appears not to be used - jsj 4-28-2016 - //private void AddStoredItemContentIDs(XmlDocument xd) - //{ - // XmlNodeList nl = xd.SelectNodes("//item"); - // foreach (XmlNode nd in nl) - // { - // int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - // int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - // if (!Old2NewItem.ContainsKey(oldid)) - // Old2NewItem.Add(oldid, newid); - // } - // nl = xd.SelectNodes("//content"); - // foreach (XmlNode nd in nl) - // { - // int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - // int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - // if (!Old2NewContent.ContainsKey(oldid)) - // Old2NewContent.Add(oldid, newid); - // } - //} - - // appears not to be used - jsj 4-28-2016 - //private void FixImportDataTransitions() - //{ - // XmlDocument xd = new XmlDocument(); - // string fn = PEIPath + @"\ExternalTransitions.xml"; - // if (!File.Exists(fn)) - // { - // XmlElement xe = xd.CreateElement("externaltransitions"); - // XmlElement xee = xd.CreateElement("oldtonewitem"); - // xe.AppendChild(xee); - // xee = xd.CreateElement("oldtonewcontent"); - // xe.AppendChild(xee); - // xee = xd.CreateElement("transitions"); - // xe.AppendChild(xee); - // xd.AppendChild(xe); - // xd.Save(fn); - // } - // else - // { - // xd.Load(fn); - // } - // FileStream fs = File.OpenRead(txtImport.Text); - // XmlReaderSettings rs = new XmlReaderSettings(); - // rs.CheckCharacters = false; - // XmlReader xr = XmlReader.Create(fs, rs); - // while (xr.Read()) - // { - // if (xr.IsStartElement()) - // { - // switch (xr.Name) - // { - // case "transition": - // AddTransitions(xr); - // break; - // case "externaltransition": - // { - // AddExternalTransition(xr, xd); - // break; - // } - // default: - // break; - // } - // } - // } - // fs.Close(); - // xd.Save(fn); - //} - - // jsj 4-29-2016 appears to not be used - //private Dictionary> MyCounts = null; - //private Dictionary MySubCounts = null; - //private void GetImportDataCounts() - //{ - // int pCount = 0; - // int sCount = 0; - // int tCount = 0; - // MyCounts = new Dictionary>(); - // MySubCounts = new Dictionary(); - // FileStream fs = File.OpenRead(txtImport.Text); - // XmlReaderSettings rs = new XmlReaderSettings(); - // rs.CheckCharacters = false; - // XmlReader xr = XmlReader.Create(fs, rs); - // while (xr.Read()) - // { - // if (xr.IsStartElement()) - // { - // switch (xr.Name) - // { - // case "procedure": - // { - // if (pCount > 0) - // { - // MySubCounts.Add(sCount, tCount); - // MyCounts.Add(pCount, MySubCounts); - // sCount = 0; - // tCount = 0; - // MySubCounts = new Dictionary(); - // } - // pCount++; - // break; - // } - // case "section": - // { - // if (sCount > 0) - // { - // MySubCounts.Add(sCount, tCount); - // tCount = 0; - // } - // sCount++; - // break; - // } - // case "step": - // { - // if (xr.Depth == 8) - // tCount++; - // break; - // } - // default: - // break; - // } - // } - // } - // MySubCounts.Add(sCount, tCount); - // MyCounts.Add(pCount, MySubCounts); - // fs.Close(); - //} - - private void btnImport_Click(object sender, EventArgs e) - { - if (MyFolder != null) - { - if (ofd.ShowDialog(this) == DialogResult.OK) - { - if (ofd.FileName != string.Empty) - { - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - PendingTransitions = new XmlDocument(); - FileInfo fi = new FileInfo(ofd.FileName); - string dn; - if (fi.Name.IndexOf("-") > 0) - dn = fi.Name.Substring(0, fi.Name.IndexOf("-")); - else - dn = fi.Name.Substring(0,fi.Name.IndexOf(".")); - txtImport.Text = ofd.FileName; - ReadOptions ro = new ReadOptions(); - ro.Encoding = Encoding.UTF8; - MyExpxZipFile = ZipFile.Read(txtImport.Text, ro); - string fn = string.Format(@"{0}\{1}.impx", PEIPath, dn); - if (File.Exists(fn)) - { - MyImpxZipFile = ZipFile.Read(fn, ro); - ReadTransitionAndItemContentIDs(); - } - else - { - MyImpxZipFile = new ZipFile(fn, Encoding.UTF8); - //transitions - XmlElement xe = PendingTransitions.CreateElement("transitions"); - PendingTransitions.AppendChild(xe); - fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - //itemids - XmlDocument xd = new XmlDocument(); - xe = xd.CreateElement("items"); - xd.AppendChild(xe); - fn = PEIPath + @"\items.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - //contentids - xd = new XmlDocument(); - xe = xd.CreateElement("contents"); - xd.AppendChild(xe); - fn = PEIPath + @"\contents.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - //libdocids - xd = new XmlDocument(); - xe = xd.CreateElement("libdocs"); - xd.AppendChild(xe); - fn = PEIPath + @"\libdocs.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - } - } - } - } - if (MyDocVersion != null) - { - ofd.Filter = "PROMS Procedure Export Files|*.pxml"; - if (ofd.ShowDialog(this) == DialogResult.OK) - txtImport.Text = ofd.FileName; - } - } - private void txtImport_TextChanged(object sender, EventArgs e) - { - btnDoImport.Enabled = txtImport.TextLength > 0; - if (btnDoImport.Enabled) - lblImportStatus.Text = "Ready To Perform Import"; - else - lblImportStatus.Text = "Awaiting Import File Name:"; - } - #region Export for Merge - private string FromFolderName = string.Empty; - private void ExportFolder(XmlDocument xd, FolderInfo fi, string nodename) - { - /* - FolderID - ParentID - DBID - Name - Title - ShortName - FormatID - ManualOrder - Config - DTS - UsrID - */ - lblExportStatus.Text = "Exporting Folder..."; - Application.DoEvents(); - string formatFileName = (fi.MyFormat != null)? fi.MyFormat.Name:""; - FromFolderName = fi.Name; - XmlElement xe = xd.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xd, "folderid", fi.FolderID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "parentid", fi.ParentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "dbid", fi.DBID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "name", fi.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "title", fi.Title)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "shortname", fi.ShortName)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "formatid", fi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "manualorder", fi.ManualOrder.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "config", fi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "dts", fi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xd, "usrid", fi.UsrID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "formatfilename",formatFileName)); - xd.AppendChild(xe); - ExportAnnotationTypes(xe, "annotationtypes"); - ExportFormats(xe, "formats"); - if (fi.FolderDocVersionCount > 0) - foreach (DocVersionInfo dvi in fi.FolderDocVersions) - ExportDocVersion(xe, dvi, "docversion"); - } - private void ExportFormats(XmlElement xn, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - ExportFormat(xe, fi, "format"); - xn.AppendChild(xe); - } - private void ExportFormat(XmlElement xn, FormatInfo fi, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", fi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", fi.Name)); - xn.AppendChild(xe); - } - private void ExportAnnotationTypes(XmlElement xn, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - AnnotationTypeInfoList atl = AnnotationTypeInfoList.Get(); - foreach (AnnotationTypeInfo ati in atl) - ExportAnnotationType(xe, ati, "annotationtype"); - xn.AppendChild(xe); - } - private void ExportAnnotationType(XmlElement xn, AnnotationTypeInfo ati, string nodename) - { - /* - TypeID - Name - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typeid", ati.TypeID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", ati.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ati.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ati.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ati.UserID.ToString())); - xn.AppendChild(xe); - } - - // jsj 4-29-2016 appears to not be used - //private void ExportFolder(FolderInfo fi, string nodename) - //{ - // /* - // FolderID - // ParentID - // DBID - // Name - // Title - // ShortName - // FormatID - // ManualOrder - // Config - // DTS - // UsrID - // */ - // string formatFileName = (fi.MyFormat != null) ? fi.MyFormat.Name : ""; - // FromFolderName = fi.Name; - // MyWriter.WriteStartDocument(); - // MyWriter.WriteStartElement(nodename); - // MyWriter.WriteAttributeString("folderid", fi.FolderID.ToString()); - // MyWriter.WriteAttributeString("parentid", fi.ParentID.ToString()); - // MyWriter.WriteAttributeString("dbid", fi.DBID.ToString()); - // MyWriter.WriteAttributeString("name", fi.Name); - // MyWriter.WriteAttributeString("title", fi.Title); - // MyWriter.WriteAttributeString("shortname", fi.ShortName); - // MyWriter.WriteAttributeString("formatid", fi.FormatID.ToString()); - // MyWriter.WriteAttributeString("manualorder", fi.ManualOrder.ToString()); - // MyWriter.WriteAttributeString("config", fi.Config); - // MyWriter.WriteAttributeString("dts", fi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - // MyWriter.WriteAttributeString("usrid", fi.UsrID.ToString()); - // MyWriter.WriteAttributeString("formatfilename", formatFileName); - - // if (fi.FolderDocVersionCount > 0) - // foreach (DocVersionInfo dvi in fi.FolderDocVersions) - // ExportDocVersion(dvi, "docversion"); - // MyWriter.WriteEndElement(); - // MyWriter.WriteEndDocument(); - //} - - // bug fix: B2017-082 don't export if no RO Path - display an message to the user to assign a RO Path - private bool ValidDocVersionAssociation(DocVersionInfo dvi) - { - if (dvi.DocVersionAssociationCount <= 0) - { - MessageBox.Show("Assign a Referenced Object path to the Working Draft tree node before exporting.", "RO Path not assigned"); - successfullExport = false; - return false; - } - return true; - } - private void ExportDocVersion(XmlElement xn, DocVersionInfo dvi, string nodename) - { - /* - VersionID - FolderID - VersionType - Name - Title - ItemID - FormatID - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting DocVersion..."; - Application.DoEvents(); - string formatFileName = (dvi.MyFormat != null) ? dvi.MyFormat.Name : ""; - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versionid", dvi.VersionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "folderid", dvi.FolderID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versiontype", dvi.VersionType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", dvi.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "title", dvi.Title)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", dvi.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", dvi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", dvi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", dvi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", dvi.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatfilename", formatFileName)); - xn.AppendChild(xe); - if (!ValidDocVersionAssociation(dvi)) return; // bug fix: B2017-082 don't export if no RO Path - if (dvi.DocVersionAssociationCount > 0) - foreach (AssociationInfo ai in dvi.DocVersionAssociations) - ExportAssociation(xe, ai, "association"); - string fn = PEIPath + @"\folder.xml"; - xn.OwnerDocument.Save(fn); - MyExpxZipFile.AddFile(fn, "folder"); - MyExpxZipFile.Save(); - File.Delete(fn); - //here - lblExportStatus.Text = "Exporting Procedures..."; - Application.DoEvents(); - if (dvi.Procedures.Count > 0) - { - pbExportProcedure.Value = 0; - pbExportProcedure.Maximum = dvi.Procedures.Count; - lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures"; - foreach (ItemInfo ii in dvi.Procedures) - { - XmlDocument xd = new XmlDocument(); - ExportItem(xd, ii, "procedure"); - fn = string.Format(@"{0}\proc{1}.xml", PEIPath, pbExportProcedure.Value.ToString().PadLeft(4, '0')); - xd.Save(fn); - MyExpxZipFile.AddFile(fn, "procedures"); - MyExpxZipFile.Save(); - File.Delete(fn); - xd = null; - } - } - } - private void ExportDocVersion(DocVersionInfo dvi, string nodename) - { - /* - VersionID - FolderID - VersionType - Name - Title - ItemID - FormatID - Config - DTS - UserID - */ - string formatFileName = (dvi.MyFormat != null) ? dvi.MyFormat.Name : ""; - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("versionid", dvi.VersionID.ToString()); - MyWriter.WriteAttributeString("folderid", dvi.FolderID.ToString()); - MyWriter.WriteAttributeString("versiontype", dvi.VersionType.ToString()); - MyWriter.WriteAttributeString("name", dvi.Name); - MyWriter.WriteAttributeString("title", dvi.Title); - MyWriter.WriteAttributeString("itemid", dvi.ItemID.ToString()); - MyWriter.WriteAttributeString("formatid", dvi.FormatID.ToString()); - MyWriter.WriteAttributeString("config", dvi.Config); - MyWriter.WriteAttributeString("dts", dvi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", dvi.UserID.ToString()); - MyWriter.WriteAttributeString("formatfilename", formatFileName); - if (dvi.DocVersionAssociationCount > 0) - foreach (AssociationInfo ai in dvi.DocVersionAssociations) - ExportAssociation(ai, "association"); - if (dvi.Procedures.Count > 0) - { - pbExportProcedure.Value = 0; - pbExportProcedure.Maximum = dvi.Procedures.Count; - lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures"; - foreach (ItemInfo ii in dvi.Procedures) - { - ExportItem(ii, "procedure"); - } - } - MyWriter.WriteEndElement(); - } - private void ExportAssociation(XmlElement xn, AssociationInfo ai, string nodename) - { - /* - AssociationID - VersionID - ROFstID - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting Association..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "associationid", ai.AssociationID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versionid", ai.VersionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstid", ai.ROFstID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ai.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ai.UserID.ToString())); - xn.AppendChild(xe); - ExportROFst(xe, ai.MyROFst, "rofst"); - } - private void ExportAssociation(AssociationInfo ai, string nodename) - { - /* - AssociationID - VersionID - ROFstID - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("associationid", ai.AssociationID.ToString()); - MyWriter.WriteAttributeString("versionid", ai.VersionID.ToString()); - MyWriter.WriteAttributeString("rofstid", ai.ROFstID.ToString()); - MyWriter.WriteAttributeString("config", ai.Config); - MyWriter.WriteAttributeString("dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ai.UserID.ToString()); - ExportROFst(ai.MyROFst, "rofst"); - MyWriter.WriteEndElement(); - } - private void ExportROFst(XmlElement xn, ROFstInfo fst, string nodename) - { - /* - ROFstID - RODbID - ROLookup - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting ROFst..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstid", fst.ROFstID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", fst.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rolookup", Convert.ToBase64String(fst.ROLookup))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", fst.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", fst.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", fst.UserID.ToString())); - xn.AppendChild(xe); - ExportFigures(xe, fst); - ExportRODb(xe, fst.MyRODb, "rodb"); - } - private void ExportROFst(ROFstInfo fst, string nodename) - { - /* - ROFstID - RODbID - ROLookup - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rofstid", fst.ROFstID.ToString()); - MyWriter.WriteAttributeString("rodbid", fst.RODbID.ToString()); - MyWriter.WriteAttributeString("rolookup", Convert.ToBase64String(fst.ROLookup)); - MyWriter.WriteAttributeString("config", fst.Config); - MyWriter.WriteAttributeString("dts", fst.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", fst.UserID.ToString()); - ExportRODb(fst.MyRODb, "rodb"); - MyWriter.WriteEndElement(); - } - private void ExportFigures(XmlElement xn, ROFstInfo fst) - { - if (fst.ROFstFigureCount > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("figures"); - xn.AppendChild(xe); - foreach (FigureInfo figure in fst.ROFstFigures) - { - XmlElement xee = xn.OwnerDocument.CreateElement("figure"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "figureid", figure.FigureID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "rofstid", figure.ROFstID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "imageid", figure.ImageID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "config", figure.Config)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", figure.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", figure.UserID)); - xe.AppendChild(xee); - ExportROImage(xee, figure.MyROImage); - } - } - } - private void ExportROImage(XmlElement xn, ROImageInfo image) - { - XmlElement xe = xn.OwnerDocument.CreateElement("image"); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "imageid", image.ImageID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", image.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "filename", image.FileName)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "content", Convert.ToBase64String(image.Content))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", image.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", image.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", image.UserID)); - xn.AppendChild(xe); - } - private void ExportRODb(XmlElement xn, RODbInfo db, string nodename) - { - /* - RODbID - ROName - FolderPath - DBConnectionString - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting RODb..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", db.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "roname", db.ROName)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "folderpath", db.FolderPath)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dbconnectionstring", db.DBConnectionString)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", db.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", db.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", db.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportRODb(RODbInfo db, string nodename) - { - /* - RODbID - ROName - FolderPath - DBConnectionString - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rodbid", db.RODbID.ToString()); - MyWriter.WriteAttributeString("roname", db.ROName); - MyWriter.WriteAttributeString("folderpath", db.FolderPath); - MyWriter.WriteAttributeString("dbconnectionstring", db.DBConnectionString); - MyWriter.WriteAttributeString("config", db.Config); - MyWriter.WriteAttributeString("dts", db.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", db.UserID.ToString()); - MyWriter.WriteEndElement(); - } - - public void ExportItem(XmlDocument xd, ItemInfo ii, string nodename) - { - XmlElement xe = xd.CreateElement(nodename); - if (ii.IsProcedure) - { - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", ii.MyDocVersion.DocVersionAssociations[0].MyROFst.MyRODb.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofolderpath", ii.MyDocVersion.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstid", ii.MyDocVersion.DocVersionAssociations[0].MyROFst.ROFstID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstdts", ii.MyDocVersion.DocVersionAssociations[0].MyROFst.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - } - xd.AppendChild(xe); - ExportItem(xe, ii, nodename); - } - private void ExportItem(XmlElement xn, ItemInfo ii, string nodename) - { - /* - ItemID - PreviousID - ContentID - DTS - */ - XmlElement xe = null; - if (xn.Name == "procedure") - xe = xn; - else - { - xe = xn.OwnerDocument.CreateElement(nodename); - xn.AppendChild(xe); - } - if (ii.IsProcedure) - { - pbExportProcedure.PerformStep(); - lblExportProcedure.Text = string.Format("{0} of {1} Procedures", pbExportProcedure.Value.ToString(), pbExportProcedure.Maximum.ToString()); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportTime.Text = "Elapsed Time: " + elapsed.ToString(); - Application.DoEvents(); - pbExportSection.Value = 0; - pbExportSection.Maximum = pbExportSection.Value; - pbExportStep.Value = 0; - pbExportStep.Maximum = pbExportStep.Value; - if(ii.Sections != null) - pbExportSection.Maximum = ii.Sections.Count; - else - { - pbExportSection.Maximum = 1; - pbExportSection.PerformStep(); - pbExportStep.Maximum = 1; - pbExportStep.PerformStep(); - lblExportSection.Text = "Sections"; - lblExportStep.Text = "Steps"; - Application.DoEvents(); - } - } - if (ii.IsSection && ii.ActiveParent.IsProcedure) - { - pbExportSection.PerformStep(); - lblExportSection.Text = string.Format("{0} of {1} Sections", pbExportSection.Value.ToString(), pbExportSection.Maximum.ToString()); - Application.DoEvents(); - pbExportStep.Value = 0; - pbExportStep.Maximum = pbExportStep.Value; - if (ii.Steps != null) - pbExportStep.Maximum = ii.Steps.Count; - else - { - pbExportStep.Maximum = 1; - pbExportStep.PerformStep(); - lblExportStep.Text = "Word Section Data"; - Application.DoEvents(); - } - } - if (ii.IsStep && ii.ActiveParent.IsSection && ii.ActiveParent.ActiveParent.IsProcedure) - { - pbExportStep.PerformStep(); - lblExportStep.Text = string.Format("{0} of {1} Steps", pbExportStep.Value.ToString(), pbExportStep.Maximum.ToString()); - Application.DoEvents(); - } - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", ii.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "previousid", ii.PreviousID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ii.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ii.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - //item audits - ExportItemAudits(xe, ii); - ExportContent(xe, ii.MyContent, "content"); - if (ii.ItemAnnotationCount > 0) - foreach (AnnotationInfo ai in ii.ItemAnnotations) - ExportAnnotation(xe, ai, "annotation"); - } - private void ExportItemAudits(XmlElement xn, ItemInfo ii) - { - if (cbxExportAudits.Checked) - { - ItemAuditInfoList audits = ItemAuditInfoList.Get(ii.ItemID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (ItemAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentid", audit.ContentID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "itemid", audit.ItemID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "previousid", audit.PreviousID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xe.AppendChild(xee); - } - } - xn.AppendChild(xe); - } - } - } - // used to save word sections with resolved ROs (export generated from Approve) - private Dictionary _DocReplace; - public Dictionary DocReplace - { - get { return _DocReplace; } - set - { - _DocReplace = value; - _ConvertROsAndTransitionsToText = (value != null); - } - } - private void ExportItem(ItemInfo ii, string nodename) - { - /* - ItemID - PreviousID - ContentID - DTS - */ - if (ii.IsProcedure) - { - pbExportProcedure.PerformStep(); - lblExportProcedure.Text = string.Format("{0} of {1} Procedures", pbExportProcedure.Value.ToString(), pbExportProcedure.Maximum.ToString()); - Application.DoEvents(); - pbExportSection.Value = 0; - pbExportStep.Value = 0; - pbExportSection.Maximum = ii.Sections.Count; - if (ii.Sections != null) - pbExportSection.Maximum = ii.Sections.Count; - else - { - pbExportSection.Maximum = 1; - pbExportSection.PerformStep(); - pbExportStep.Maximum = 1; - pbExportStep.PerformStep(); - lblExportSection.Text = "Sections"; - lblExportStep.Text = "Steps"; - Application.DoEvents(); - } - } - if (ii.IsSection) - { - pbExportSection.PerformStep(); - lblExportSection.Text = string.Format("{0} of {1} Sections", pbExportSection.Value.ToString(), pbExportSection.Maximum.ToString()); - Application.DoEvents(); - pbExportStep.Value = 0; - if (ii.Steps != null) - pbExportStep.Maximum = ii.Steps.Count; - else - { - pbExportStep.Maximum = 1; - pbExportStep.PerformStep(); - lblExportStep.Text = "Word Section Data"; - Application.DoEvents(); - } - } - if (ii.IsStep) - { - pbExportStep.PerformStep(); - lblExportStep.Text = string.Format("{0} of {1} Steps", pbExportStep.Value.ToString(), pbExportStep.Maximum.ToString()); - Application.DoEvents(); - } - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("itemid", ii.ItemID.ToString()); - MyWriter.WriteAttributeString("previousid", ii.PreviousID.ToString()); - MyWriter.WriteAttributeString("contentid", ii.ContentID.ToString()); - MyWriter.WriteAttributeString("dts", ii.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - ExportContent(ii.MyContent, "content"); - if (ii.ItemAnnotationCount > 0) - foreach (AnnotationInfo ai in ii.ItemAnnotations) - ExportAnnotation(ai, "annotation"); - MyWriter.WriteEndElement(); - } - private void ExportContent(XmlElement xn, ContentInfo ci, string nodename) - { - /* - ContentID - Number - Text - Type - FormatID - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - // strip the link information if we are convertingthe RO and Transitions to text - string ciText = (_ConvertROsAndTransitionsToText)?ItemInfo.StripLinks(ci.Text):ci.Text; - string formatFileName = (ci.MyFormat != null) ? ci.MyFormat.Name : ""; - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ci.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "number", ci.Number)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "text", ciText)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "type", ci.Type.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", ci.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ci.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ci.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ci.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatfilename", formatFileName)); - //content audits - ExportContentAudits(xe, ci); - xn.AppendChild(xe); - if (ci.ContentTransitionCount > 0) - foreach (TransitionInfo ti in ci.ContentTransitions) - ExportTransition(xe, ti, "transition"); - if (ci.ContentRoUsageCount > 0) - foreach (RoUsageInfo ri in ci.ContentRoUsages) - ExportROUsage(xe, ri, "rousage"); - if (ci.ContentEntryCount > 0) - ExportEntry(xe, ci.MyEntry, "entry"); - if (ci.ContentGridCount > 0) - ExportGrid(xe, ci.MyGrid, "grid"); - if (ci.ContentImageCount > 0) - ExportImage(xe, ci.MyImage, "image"); - if (ci.ContentPartCount > 0) - foreach (PartInfo pi in ci.ContentParts) - ExportPart(xe, pi, ((E_FromTypes)pi.FromType).ToString().ToLower()); - } - private void ExportContentAudits(XmlElement xn, ContentInfo ci) - { - if (cbxExportAudits.Checked) - { - ContentAuditInfoList audits = ContentAuditInfoList.Get(ci.ContentID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (ContentAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentid", audit.ContentID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "number", audit.Number)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "text", audit.Text)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "type", audit.Type.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "formatid", audit.FormatID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "config", audit.Config)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "actiondts", audit.ActionWhen.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.AppendChild(xee); - } - } - } - } - } - private void ExportContent(ContentInfo ci, string nodename) - { - /* - ContentID - Number - Text - Type - FormatID - Config - DTS - UserID - */ - // strip the link information if we are convertinga the ROs and Transitions to text - string ciText = (_ConvertROsAndTransitionsToText) ? ItemInfo.StripLinks(ci.Text) : ci.Text; - string formatFileName = (ci.MyFormat != null) ? ci.MyFormat.Name : ""; - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", ci.ContentID.ToString()); - MyWriter.WriteAttributeString("number", ci.Number); - MyWriter.WriteAttributeString("text", ciText); - MyWriter.WriteAttributeString("type", ci.Type.ToString()); - MyWriter.WriteAttributeString("formatid", ci.FormatID.ToString()); - MyWriter.WriteAttributeString("config", ci.Config); - MyWriter.WriteAttributeString("dts", ci.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ci.UserID.ToString()); - MyWriter.WriteAttributeString("formatfilename", formatFileName); - if (ci.ContentTransitionCount > 0) - foreach (TransitionInfo ti in ci.ContentTransitions) - ExportTransition(ti, "transition"); - if (ci.ContentRoUsageCount > 0) - foreach (RoUsageInfo ri in ci.ContentRoUsages) - ExportROUsage(ri, "rousage"); - if (ci.ContentEntryCount > 0) - ExportEntry(ci.MyEntry, "entry"); - if (ci.ContentGridCount > 0) - ExportGrid(ci.MyGrid, "grid"); - if (ci.ContentImageCount > 0) - ExportImage(ci.MyImage, "image"); - if (ci.ContentPartCount > 0) - foreach (PartInfo pi in ci.ContentParts) - ExportPart(pi, ((E_FromTypes)pi.FromType).ToString().ToLower()); - MyWriter.WriteEndElement(); - } - private void ExportGrid(XmlElement xn, GridInfo gi, string nodename) - { - /* - ContentID - Data - Config - DTS - UserID - */ - string giData = gi.Data; - if (_ConvertROsAndTransitionsToText) - { - giData = giData.Replace("True", "False"); // converts a RO table to a unlinked regular table - giData = ItemInfo.StripLinks(giData); // this converts ROs and transitions to text - } - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", gi.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "data", giData)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", gi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", gi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", gi.UserID.ToString())); - //grid audits - ExportGridAudits(xe, gi); - xn.AppendChild(xe); - } - private void ExportGridAudits(XmlElement xn, GridInfo gi) - { - if (cbxExportAudits.Checked) - { - GridAuditInfoList audits = GridAuditInfoList.Get(gi.ContentID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (GridAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentid", audit.ContentID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "data", audit.Data)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "config", audit.Config)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentauditid", audit.ContentAuditID.ToString())); - xe.AppendChild(xee); - - } - } - } - } - } - private void ExportGrid(GridInfo gi, string nodename) - { - /* - ContentID - Data - Config - DTS - UserID - */ - string giData = gi.Data; - if (_ConvertROsAndTransitionsToText) - { - giData = giData.Replace("IsRoTable>True", "IsRoTable>False"); // converts a RO table to regular table - giData = ItemInfo.StripLinks(giData); // converts ROs and Transitions to text - } - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", gi.ContentID.ToString()); - MyWriter.WriteAttributeString("data", giData); - MyWriter.WriteAttributeString("config", gi.Config); - MyWriter.WriteAttributeString("dts", gi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", gi.UserID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportEntry(XmlElement xn, EntryInfo ei, string nodename) - { - /* - ContentID - DocID - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ei.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docid", ei.DocID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ei.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ei.UserID.ToString())); - //entry audits - ExportEntryAudits(xe, ei); - xn.AppendChild(xe); - ExportDocument(xe, ei.MyDocument, "document"); - } - private void ExportEntryAudits(XmlElement xn, EntryInfo ei) - { - if (cbxExportAudits.Checked) - { - EntryAuditInfoList audits = EntryAuditInfoList.Get(ei.ContentID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (EntryAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentid", audit.ContentID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "docid", audit.DocID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xe.AppendChild(xee); - } - } - } - } - } - private void ExportEntry(EntryInfo ei, string nodename) - { - /* - ContentID - DocID - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", ei.ContentID.ToString()); - MyWriter.WriteAttributeString("docid", ei.DocID.ToString()); - MyWriter.WriteAttributeString("dts", ei.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ei.UserID.ToString()); - ExportDocument(ei.MyDocument, "document"); - MyWriter.WriteEndElement(); - } - private void ExportImage(XmlElement xn, ImageInfo ii, string nodename) - { - /* - ContentID - ImageType - FileName - Data - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ii.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "imagetype", ii.ImageType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "filename", ii.FileName)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "data", Convert.ToBase64String(ii.Data))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ii.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ii.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ii.UserID.ToString())); - //image audits - ExportImageAudits(xe, ii); - xn.AppendChild(xe); - } - private void ExportImageAudits(XmlElement xn, ImageInfo ii) - { - if (cbxExportAudits.Checked) - { - ImageAuditInfoList audits = ImageAuditInfoList.Get(ii.ContentID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (ImageAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentid", audit.ContentID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "imagetype", audit.ImageType.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "filename", audit.FileName)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "data", Convert.ToBase64String(audit.Data))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "config", audit.Config)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xe.AppendChild(xee); - } - } - } - } - } - private void ExportImage(ImageInfo ii, string nodename) - { - /* - ContentID - ImageType - FileName - Data - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", ii.ContentID.ToString()); - MyWriter.WriteAttributeString("imagetype", ii.ImageType.ToString()); - MyWriter.WriteAttributeString("filename", ii.FileName); - MyWriter.WriteAttributeString("data", Convert.ToBase64String(ii.Data)); - MyWriter.WriteAttributeString("config", ii.Config); - MyWriter.WriteAttributeString("dts", ii.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ii.UserID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportDocument(XmlElement xn, DocumentInfo di, string nodename) - { - /* - DocID - LibTitle - DocContent - DocAscii - Config - DTS - UserID - FileExtension - */ - byte[] buf = di.DocContent; - string libDocTitle = di.LibTitle; - if (DocReplace != null && DocReplace.ContainsKey(di.DocID) && _ConvertROsAndTransitionsToText) - { - buf = DocReplace[di.DocID]; - libDocTitle = null; // unlink the word section from the library document - } - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docid", di.DocID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "libtitle", libDocTitle)); // di.LibTitle)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "doccontent", Convert.ToBase64String(buf))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docascii", di.DocAscii)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", di.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", di.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", di.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fileextension", di.FileExtension)); - //document audits - ExportDocumentAudits(xe, di); - xn.AppendChild(xe); - } - private void ExportDocumentAudits(XmlElement xn, DocumentInfo di) - { - if (cbxExportAudits.Checked) - { - DocumentAuditInfoList audits = DocumentAuditInfoList.Get(di.DocID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (DocumentAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "docid", audit.DocID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "libtitle", audit.LibTitle)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "doccontent",Convert.ToBase64String(audit.DocContent))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "docascii", audit.DocAscii)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "config", audit.Config)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "fileextension", audit.FileExtension)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xe.AppendChild(xee); - } - } - } - } - } - private void ExportDocument(DocumentInfo di, string nodename) - { - /* - DocID - LibTitle - DocContent - DocAscii - Config - DTS - UserID - FileExtension - */ - byte[] buf = di.DocContent; - string libDocTitle = di.LibTitle; - if (DocReplace != null && DocReplace.ContainsKey(di.DocID) && _ConvertROsAndTransitionsToText) - { - buf = DocReplace[di.DocID]; - libDocTitle = null; // unlink the word section from the library document - } - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("docid", di.DocID.ToString()); - MyWriter.WriteAttributeString("libtitle", libDocTitle);// di.LibTitle); - MyWriter.WriteAttributeString("doccontent", Convert.ToBase64String(buf)); - MyWriter.WriteAttributeString("docascii", di.DocAscii); - MyWriter.WriteAttributeString("config", di.Config); - MyWriter.WriteAttributeString("dts", di.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", di.UserID.ToString()); - MyWriter.WriteAttributeString("fileextension", di.FileExtension); - MyWriter.WriteEndElement(); - } - private void ExportROUsage(XmlElement xn, RoUsageInfo ri, string nodename) - { - /* - ROUsageID - ContentID - ROID - Config - DTS - UserID - RODbID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rousageid", ri.ROUsageID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ri.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "roid", ri.ROID)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ri.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ri.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ri.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", ri.RODbID.ToString())); - //rousage audits - ExportROUsageAudits(xe, ri); - xn.AppendChild(xe); - } - private void ExportROUsageAudits(XmlElement xe, RoUsageInfo ri) - { - if (cbxExportAudits.Checked) - { - } - } - private void ExportROUsage(RoUsageInfo ri, string nodename) - { - /* - ROUsageID - ContentID - ROID - Config - DTS - UserID - RODbID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rousageid", ri.ROUsageID.ToString()); - MyWriter.WriteAttributeString("contentid", ri.ContentID.ToString()); - MyWriter.WriteAttributeString("roid", ri.ROID); - MyWriter.WriteAttributeString("config", ri.Config); - MyWriter.WriteAttributeString("dts", ri.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ri.UserID.ToString()); - MyWriter.WriteAttributeString("rodbid", ri.RODbID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportPart(XmlElement xn, PartInfo pi, string nodename) - { - /* - ContentID - FromType - ItemID - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", pi.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fromtype", pi.FromType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", pi.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", pi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", pi.UserID.ToString())); - //part audits - ExportPartAudits(xe, pi); - xn.AppendChild(xe); - foreach (ItemInfo ii in pi.MyItems) - ExportItem(xe, ii, pi.PartType.ToString().ToLower()); - } - private void ExportPartAudits(XmlElement xn, PartInfo pi) - { - if (cbxExportAudits.Checked) - { - PartAuditInfoList audits = PartAuditInfoList.Get(pi.ContentID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (PartAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentid", audit.ContentID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "fromtype", audit.FromType.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "itemid", audit.ItemID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xe.AppendChild(xee); - } - } - } - } - } - private void ExportPart(PartInfo pi, string nodename) - { - /* - ContentID - FromType - ItemID - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", pi.ContentID.ToString()); - MyWriter.WriteAttributeString("fromtype", pi.FromType.ToString()); - MyWriter.WriteAttributeString("itemid", pi.ItemID.ToString()); - MyWriter.WriteAttributeString("dts", pi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", pi.UserID.ToString()); - foreach (ItemInfo ii in pi.MyItems) - ExportItem(ii, pi.PartType.ToString().ToLower()); - MyWriter.WriteEndElement(); - } - private void ExportTransition(XmlElement xn, TransitionInfo ti, string nodename) - { - /* - TransitionID - FromID - ToID - RangeID - IsRange - TranType - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "transitionid", ti.TransitionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fromid", ti.FromID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "toid", ti.ToID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rangeid", ti.RangeID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "isrange", ti.IsRange.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "trantype", ti.TranType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ti.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ti.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ti.UserID.ToString())); - //transition audits - ExportTransitionAudits(xe, ti); - xn.AppendChild(xe); - } - private void ExportTransitionAudits(XmlElement xe, TransitionInfo ti) - { - if (cbxExportAudits.Checked) - { - } - } - private void ExportTransition(TransitionInfo ti, string nodename) - { - /* - TransitionID - FromID - ToID - RangeID - IsRange - TranType - Config - DTS - UserID - */ - string folder = string.Empty; - if (ti.MyItemToID.MyDocVersion != null && ti.MyItemToID.MyDocVersion.MyFolder.Name != MyFolder.Name) - { - nodename = "external" + nodename; - folder = ti.MyItemToID.MyDocVersion.MyFolder.Name; - } - else - { - nodename = "external" + nodename; - folder = "UNKNOWN"; - } - MyWriter.WriteStartElement(nodename); - if (folder != string.Empty) - MyWriter.WriteAttributeString("folder", folder); - MyWriter.WriteAttributeString("transitionid", ti.TransitionID.ToString()); - MyWriter.WriteAttributeString("fromid", ti.FromID.ToString()); - MyWriter.WriteAttributeString("toid", ti.ToID.ToString()); - MyWriter.WriteAttributeString("rangeid", ti.RangeID.ToString()); - MyWriter.WriteAttributeString("isrange", ti.IsRange.ToString()); - MyWriter.WriteAttributeString("trantype", ti.TranType.ToString()); - MyWriter.WriteAttributeString("config", ti.Config); - MyWriter.WriteAttributeString("dts", ti.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ti.UserID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportAnnotation(XmlElement xn, AnnotationInfo ai, string nodename) - { - /* - AnnotationID - ItemID - TypeID - RtfText - SearchText - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "annotationid", ai.AnnotationID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", ai.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typeid", ai.TypeID.ToString())); - //if(ai.TypeID > 6) - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typename", ai.MyAnnotationType.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rtftext", ai.RtfText)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "searchtext", ai.SearchText)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ai.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ai.UserID.ToString())); - //annotation audits - ExportAnnotationAudits(xe, ai); - xn.AppendChild(xe); - } - private void ExportAnnotationAudits(XmlElement xn, AnnotationInfo ai) - { - if (cbxExportAudits.Checked) - { - AnnotationAuditInfoList audits = AnnotationAuditInfoList.GetByAnnotationID(ai.AnnotationID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (AnnotationAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "annotationid", audit.AnnotationID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "itemid", audit.ItemID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "typeid", audit.TypeID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "rtftext", audit.RtfText)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "searchtext", audit.SearchText)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "config", audit.Config)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "actiondts", audit.ActionWhen.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.AppendChild(xee); - } - } - xn.AppendChild(xe); - } - } - } - private void ExportAnnotation(AnnotationInfo ai, string nodename) - { - /* - AnnotationID - ItemID - TypeID - RtfText - SearchText - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("annotationid", ai.AnnotationID.ToString()); - MyWriter.WriteAttributeString("itemid", ai.ItemID.ToString()); - MyWriter.WriteAttributeString("typeid", ai.TypeID.ToString()); - MyWriter.WriteAttributeString("rtftext", ai.RtfText); - MyWriter.WriteAttributeString("searchtext", ai.SearchText); - MyWriter.WriteAttributeString("config", ai.Config); - MyWriter.WriteAttributeString("dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ai.UserID.ToString()); - MyWriter.WriteEndElement(); - } - #endregion - #region Import for Merge - - // jsj 4-29-2016 appears to not be used - //private void AddExternalTransition(XmlReader xr, XmlDocument xd) - //{ - // XmlElement xe = xd.CreateElement("transition"); - // XmlAttribute xa = AddAttribute(xd, "folder", xr.GetAttribute("folder")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "transitionid", xr.GetAttribute("transitionid")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "fromid", xr.GetAttribute("fromid")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "toid", xr.GetAttribute("toid")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "rangeid", xr.GetAttribute("rangeid")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "isrange", xr.GetAttribute("isrange")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "trantype", xr.GetAttribute("trantype")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "config", xr.GetAttribute("config")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "userid", xr.GetAttribute("userid")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "dts", xr.GetAttribute("dts")); - // xe.Attributes.SetNamedItem(xa); - // xd.SelectSingleNode("externaltransitions/transitions").AppendChild(xe); - //} - - // jsj 4-29-2016 appears to not be used - //private void AddTransitions(XmlReader xr) - //{ - // int transitionid = int.Parse(xr.GetAttribute("transitionid")); - // int fromid = int.Parse(xr.GetAttribute("fromid")); - // int toid = int.Parse(xr.GetAttribute("toid")); - // int rangeid = int.Parse(xr.GetAttribute("rangeid")); - // int isrange = int.Parse(xr.GetAttribute("isrange")); - // int trantype = int.Parse(xr.GetAttribute("trantype")); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // string lookfor; - // if (isrange == 0) - // lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - // else - // lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - // fromid = Old2NewContent[fromid]; - // toid = Old2NewItem[toid]; - // rangeid = Old2NewItem[rangeid]; - // Content cc = Content.Get(fromid); - // Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - // transitionid = tt.TransitionID; - // string replacewith; - // if (isrange == 0) - // replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - // else - // replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - // cc.Text = cc.Text.Replace(lookfor, replacewith); - // cc.Save(); - //} - - private void AddTransitions(Content content, XmlNode xn) - { - /* - Content - Item - Item - int - int - string - dts - string - - - #Link:Transition:1 2 187 - type,id,toid - - #Link:TransitionRange:2 1 175 177 - type,id,toid,rangeid - */ - XmlNodeList nl = xn.SelectNodes("./transition"); - foreach (XmlNode nd in nl) - { - int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - if (Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) - { - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - //fromid = content.ContentID; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Transition tt = Transition.MakeTransition(content, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - content.Text = content.Text.Replace(lookfor, replacewith); - if (content.MyGrid != null && content.MyGrid.Data != "") - content.MyGrid.Data = content.MyGrid.Data.Replace(lookfor, replacewith); - content.FixTransitionText(TransitionInfo.Get(tt.TransitionID)); - // B2017=003 make sure any grid changes are saved. - // done here because FixTransitionText() could update the transitions in the grid - if (content.MyGrid != null && content.MyGrid.Data != "") - content.MyGrid.Save(); - content.Save(); - } - else - { - PendingTransitions.DocumentElement.AppendChild(PendingTransitions.ImportNode(nd, true)); - //save to holding pen - } - } - } - private void AddTransitions() - { - AddTransitions(PendingTransitions); - } - private void AddTransitions(XmlDocument xd) - { - /* - Content - Item - Item - int - int - string - dts - string - - - #Link:Transition:1 2 187 - type,id,toid - - #Link:TransitionRange:2 1 175 177 - type,id,toid,rangeid - */ - XmlNodeList nl = xd.SelectNodes("//transition"); - lblImportStatus.Text = string.Format("Updating {0} Tranistions", nl.Count.ToString()); - foreach (XmlNode nd in nl) - { - int fromid = int.Parse(nd.Attributes.GetNamedItem("fromid").InnerText); - int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - if (Old2NewContent.ContainsKey(fromid)) //transition from new contentid - { - if (Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) //transition to new itemid (internal) - { - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - fromid = Old2NewContent[fromid]; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Content cc = Content.Get(fromid); - Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - cc.Text = cc.Text.Replace(lookfor, replacewith); - if (cc.MyGrid != null && cc.MyGrid.Data != "") - cc.MyGrid.Data = cc.MyGrid.Data.Replace(lookfor, replacewith); - bool forceConvertToText = false; - if (TransitionInfo.Get(tt.TransitionID).MyItemToID.ActiveSection != null) - { - SectionConfig sc = TransitionInfo.Get(tt.TransitionID).MyItemToID.ActiveSection.MyConfig as SectionConfig; - forceConvertToText = (sc.SubSection_Edit == "N"); - } - cc.FixTransitionText(TransitionInfo.Get(tt.TransitionID), forceConvertToText); - // B2017=003 make sure any grid changes are saved. - // done here because FixTransitionText() could update the transitions in the grid - if (cc.MyGrid != null && cc.MyGrid.Data != "") - cc.MyGrid.Save(); - cc.Save(); - nd.InnerText = "done"; - } - else //transition to existing itemid (external) - { - bool forceConvertToText = false; - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - fromid = Old2NewContent[fromid]; - Content cc = Content.Get(fromid); - Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - if (tt.TransitionID < 0) - { - forceConvertToText = true; - cc.FixTransitionText(TransitionInfo.Get(tt.TransitionID), forceConvertToText); - cc.Save(); - nd.InnerText = "done"; - } - else - { - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - cc.Text = cc.Text.Replace(lookfor, replacewith); - if (cc.MyGrid != null && cc.MyGrid.Data != "") - cc.MyGrid.Data = cc.MyGrid.Data.Replace(lookfor, replacewith); - if (TransitionInfo.Get(tt.TransitionID).MyItemToID.ActiveSection != null) - { - SectionConfig sc = TransitionInfo.Get(tt.TransitionID).MyItemToID.ActiveSection.MyConfig as SectionConfig; - forceConvertToText = (sc.SubSection_Edit == "N"); - } - // B2016-176, B2016197 - external transitions should be convert to text - forceConvertToText = true; - //if (!forceConvertToText) //check to see if external with internal format - //{ - // TransitionInfo tran = TransitionInfo.Get(transitionid); - // if (tran.MyContent.ContentItems[0].MyProcedure.ItemID != tran.MyItemToID.MyProcedure.ItemID) - // if (!tran.MyContent.ContentItems[0].ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[tran.TranType].TransMenu.Contains("Proc")) - // forceConvertToText = true; - //} - //if (!forceConvertToText) //check to see if external to different doc version - //{ - // TransitionInfo tran = TransitionInfo.Get(transitionid); - // if (tran.MyContent.ContentItems[0].MyDocVersion.VersionID != tran.MyItemToID.MyDocVersion.VersionID) - // forceConvertToText = true; - //} - cc.FixTransitionText(TransitionInfo.Get(tt.TransitionID), forceConvertToText); - // B2017=003 make sure any grid changes are saved. - // done here because FixTransitionText() could update the transitions in the grid - if (cc.MyGrid != null && cc.MyGrid.Data != "") - cc.MyGrid.Save(); - cc.Save(); - nd.InnerText = "done"; - _DidConvertTransitionsToText |= forceConvertToText; // B2016-225 - notify user when transitions are converted to text - } - } - } - } - } - - private Dictionary Old2NewItem; - private Dictionary Old2NewContent; - private Dictionary Old2NewLibDoc; - private XmlDocument PendingTransitions; - private RODb MyRODb = null; - - // jsj 4-29-2016 appears to not be used - //private Folder AddFolder(Folder folder, XmlReader xr) - //{ - // Old2NewItem = new Dictionary(); - // Old2NewContent = new Dictionary(); - // Old2NewLibDoc = new Dictionary(); - // string title = xr.GetAttribute("title"); - // string name = xr.GetAttribute("name"); - // string shortname = xr.GetAttribute("shortname"); - // string usrid = xr.GetAttribute("usrid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // string formatid = xr.GetAttribute("formatid"); - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid),formatfilename); - // folder = Folder.MakeFolder(folder, folder.MyConnection, name, title, shortname, format, null, dts, usrid); - // //f.Save(); - // return folder; - //} - - private Folder AddFolder(Folder p, XmlDocument xd) - { - lblImportStatus.Text = "Creating Folder..."; - Application.DoEvents(); - string title = xd.DocumentElement.Attributes.GetNamedItem("title").InnerText; - string name = xd.DocumentElement.Attributes.GetNamedItem("name").InnerText; - string shortname = xd.DocumentElement.Attributes.GetNamedItem("shortname").InnerText; - string usrid = xd.DocumentElement.Attributes.GetNamedItem("usrid").InnerText; - DateTime dts = DateTime.Parse(xd.DocumentElement.Attributes.GetNamedItem("dts").InnerText); - string formatid = xd.DocumentElement.Attributes.GetNamedItem("formatid").InnerText; - XmlNode fnNode = xd.DocumentElement.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid),formatfilename); - if (Folder.GetByParentID_Name(p.FolderID, name) != null) - return null; - Folder f = Folder.MakeFolder(p, p.MyConnection, name, title, shortname, format, null, dts, usrid); - return f; - } - private Format OldToNewFormat(int formatID, string formatFileName) - { - try - { - string formatName = formatFileName; // B2016-103, new export files include the format filename use that if it exists - if (formatFileName == string.Empty) - { - if (formatID >= oldFormat.Count) return null; // formatID not found, use default file name - formatName = oldFormat[formatID]; // for backwards compatibility with older export files - } - formatID = newFormat[formatName]; - return Format.Get(formatID); - } - catch - { - return null; // format not found return null to use default format - } - } - private DocVersion AddDocVersion(Folder f, XmlReader xr) - { - int versiontype = int.Parse(xr.GetAttribute("versiontype")); - string name = xr.GetAttribute("name"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - string formatid = xr.GetAttribute("formatid"); - string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid),formatfilename); - DocVersion dv = DocVersion.MakeDocVersion(f, versiontype, name, null, null, format, config, dts, userid); - return dv; - } - private void AddAnnotationTypes(XmlDocument xd) - { - XmlNodeList nl = xd.SelectNodes("folder/annotationtypes/annotationtype"); - foreach (XmlNode nd in nl) - { - AnnotationTypeInfo ati = AnnotationTypeInfo.GetByName(nd.Attributes.GetNamedItem("name").InnerText); - if (ati == null) - AnnotationType.MakeAnnotationType(nd.Attributes.GetNamedItem("name").InnerText, nd.Attributes.GetNamedItem("config").InnerText, DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText), nd.Attributes.GetNamedItem("userid").InnerText); - } - } - private DocVersionInfo AddDocVersion(Folder f, XmlDocument xd) - { - lblImportStatus.Text = "Creating DocVersion..."; - Application.DoEvents(); - XmlElement xe = (XmlElement)xd.SelectSingleNode("folder/docversion"); - int versiontype = int.Parse(xe.Attributes.GetNamedItem("versiontype").InnerText); - string name = xe.Attributes.GetNamedItem("name").InnerText; - string config = xe.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - string userid = xe.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xe.Attributes.GetNamedItem("dts").InnerText); - string formatid = xe.Attributes.GetNamedItem("formatid").InnerText; - XmlNode fnNode = xe.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid),formatfilename); - DocVersion dv = DocVersion.MakeDocVersion(f, versiontype, name, null, null, format, config, dts, userid); - XmlNode xassoc = xe.SelectSingleNode("association"); - if (xassoc != null) - { - XmlNode xrofst = xassoc.SelectSingleNode("rofst"); - XmlNode xrodb = xrofst.SelectSingleNode("rodb"); - MyRODb = AddRODb(xrodb); - ROFst rofst = AddROFst(xrofst); - DocVersionAssociation dva = dv.DocVersionAssociations.Add(rofst); - dv.Save(); - } - return DocVersionInfo.Get(dv.VersionID); - } - - // jsj 4-29-2016 appears to not be used - //private Dictionary GetROFstData(XmlReader xr) - //{ - // Dictionary rv = new Dictionary(); - // rv.Add("rolookup", xr.GetAttribute("rolookup")); - // rv.Add("config", xr.GetAttribute("config")); - // rv.Add("userid", xr.GetAttribute("userid")); - // rv.Add("dts", xr.GetAttribute("dts")); - // return rv; - //} - - // jsj 4-29-2016 appears to not be used - //private ROFst AddROFst(Dictionary dic) - //{ - // byte[] rolookup = Convert.FromBase64String(dic["rolookup"]); - // string config = dic["config"]; - // string userid = dic["userid"]; - // DateTime dts = DateTime.Parse(dic["dts"]); - // ROFst rv = null; - // rv = ROFst.GetByRODbID_DTS(MyRODb.RODbID, dts); //MyRODb.DTS); - // if (rv == null) - // rv = ROFst.MakeROFst(MyRODb, rolookup, config, dts, userid); - // return rv; - //} - - private ROFst AddROFst(XmlNode xrofst) - { - lblImportStatus.Text = "Creating ROFst..."; - Application.DoEvents(); - byte[] rolookup = Convert.FromBase64String(xrofst.Attributes.GetNamedItem("rolookup").InnerText); - string config = xrofst.Attributes.GetNamedItem("config").InnerText; - string userid = xrofst.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xrofst.Attributes.GetNamedItem("dts").InnerText); - ROFst rv = null; - rv = ROFst.GetByRODbID_DTS(MyRODb.RODbID, dts); - // if the RO database is not found in the current data (does not have the same RODBid nor date/time stamp - // then spin through the list of RO databases and compare the FST information. - // If the RO FST information is the same, then use that current RO database when importing - if (rv == null) - { - RODbInfoList rodblst = RODbInfoList.Get(); - foreach (RODbInfo roinfo in rodblst) - { - rv = ROFst.GetByRODbID_DTS(roinfo.RODbID, dts); - if (rv != null && Same(rv.ROLookup,rolookup)) return rv; - } - rv = ROFst.MakeROFst(MyRODb, rolookup, config, dts, userid); - XmlNode xfigures = xrofst.SelectSingleNode("figures"); - if (xfigures != null) - AddFigures(xfigures, rv); - } - return rv; - } - - private bool Same(byte[] p, byte[] rolookup) - { - if (p.Length != rolookup.Length) return false; - for (int i = 0; i < p.Length; i++) - if (p[i] != rolookup[i]) return false; - return true; - } - - private void AddFigures(XmlNode xfigures, ROFst rofst) - { - foreach (XmlNode nd in xfigures.SelectNodes("figure")) - { - XmlNode image = nd.SelectSingleNode("image"); - int imageid = int.Parse(image.Attributes.GetNamedItem("imageid").InnerText); - ROImage roimage = ROImage.Get(imageid); - string config; - DateTime dts; - string userid; - if (roimage == null) - { - string filename = image.Attributes.GetNamedItem("filename").InnerText; - byte[] content = Convert.FromBase64String(image.Attributes.GetNamedItem("content").InnerText); - config = image.Attributes.GetNamedItem("config").InnerText; - dts = DateTime.Parse(image.Attributes.GetNamedItem("dts").InnerText); - userid = image.Attributes.GetNamedItem("userid").InnerText; - roimage = ROImage.MakeROImage(MyRODb, filename, content, config, dts, userid); - } - config = nd.Attributes.GetNamedItem("config").InnerText; - dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - userid = nd.Attributes.GetNamedItem("userid").InnerText; - Figure fig = Figure.MakeFigure(rofst, roimage, config, dts, userid); - } - } - - // jsj 4-29-2016 appears to not be used - //private RODb AddRODb(XmlReader xr) - //{ - // oldRODbID = int.Parse(xr.GetAttribute("rodbid")); - // string roname = xr.GetAttribute("roname"); - // string folderpath = xr.GetAttribute("folderpath"); - // string dbconnectionstring = xr.GetAttribute("dbconnectionstring"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // RODb rv = null; - // rv = RODb.GetByFolderPath(folderpath); - // if (rv == null) - // rv = RODb.MakeRODb(roname, folderpath, dbconnectionstring, config, dts, userid); - // newRODbID = rv.RODbID; - // return rv; - //} - - private RODb AddRODb(XmlNode xrodb) - { - lblImportStatus.Text = "Creating RODb..."; - Application.DoEvents(); - oldRODbID = int.Parse(xrodb.Attributes.GetNamedItem("rodbid").InnerText); - string roname = xrodb.Attributes.GetNamedItem("roname").InnerText; - string folderpath = xrodb.Attributes.GetNamedItem("folderpath").InnerText; - string dbconnectionstring = xrodb.Attributes.GetNamedItem("dbconnectionstring").InnerText; - string config = xrodb.Attributes.GetNamedItem("config").InnerText; - string userid = xrodb.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xrodb.Attributes.GetNamedItem("dts").InnerText); - RODb rv = null; - rv = RODb.GetByFolderPath(folderpath); - if (rv == null) - { - // create a list of the RO databases currently in the database - List roDbNameList = new List(); - RODbInfoList rolist = RODbInfoList.Get(); - foreach (RODbInfo rodbinfo in rolist) - { - if (!roDbNameList.Contains(rodbinfo.ROName)) - roDbNameList.Add(rodbinfo.ROName); - } - rolist.Dispose(); - int cnt = 0; - string roNameNew = roname; - // if the ROname we are importing is the same as one already in the database - // and the ROpaths are different, then rename the one we are importing - while (roDbNameList.Contains(roNameNew)) - roNameNew = string.Format("{0}_{1}",roname,(++cnt).ToString()); - rv = RODb.MakeRODb(roNameNew, folderpath, dbconnectionstring, config, dts, userid); - } - newRODbID = rv.RODbID; - return rv; - } - - // jsj 4-29-2016 appears to not be used - //private int GetProcedureData(XmlReader xr) - //{ - // return int.Parse(xr.GetAttribute("itemid")); - //} - - // jsj 4-29-2016 appears to not be used - //private ItemInfo AddProcedure(XmlReader xr, DocVersion dv, ItemInfo procInfo, int oldid) - //{ - // DocVersionInfo dvInfo = DocVersionInfo.Get(dv.VersionID); - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int proctype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Procedure p = Procedure.MakeProcedure(dvInfo, procInfo, number, text, proctype); - // p.DTS = dts; - // p.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // p.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid),formatfilename); - // p.MyContent.Config = config; - // p.MyContent.DTS = dts; - // p.MyContent.UserID = userid; - // p.Save(); - // Old2NewItem.Add(oldid, p.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), p.MyContent.ContentID); - // procInfo = ProcedureInfo.Get(p.ItemID); - // return procInfo; - //} - private ProcedureInfo AddProcedure(XmlNode xn, DocVersionInfo dvInfo, ProcedureInfo procInfo) - { - pbImportProcedure.PerformStep(); - lblImportProcedure.Text = string.Format("{0} of {1} Procedures", pbImportProcedure.Value.ToString(), pbImportProcedure.Maximum.ToString()); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblImportTime.Text = "Elapsed Time: " + elapsed.ToString(); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int proctype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - Procedure p = Procedure.MakeProcedure(dvInfo, procInfo, number, text, proctype); - p.DTS = dts; - p.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode !=null)? fnNode.InnerText : ""; - if (formatid != string.Empty) - p.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid),formatfilename); - p.MyContent.Config = config; - p.MyContent.DTS = dts; - p.MyContent.UserID = userid; - p.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), p.ItemID); - else - Old2NewItem[int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText)] = p.ItemID; // B2016-176, B2016-197 refresh saved ItemId with current ItemID - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), p.MyContent.ContentID); - else - Old2NewContent[int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText)] = p.MyContent.ContentID; // B2016-176, B2016-197 refresh saved ContentID with current ContentID - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(p.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(p.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(p.MyContent, xc); - procInfo = ProcedureInfo.Get(p.ItemID); - if (xc.HasChildNodes) - AddParts(xc, procInfo); - FixSectionStart(procInfo); - return procInfo; - } - // jsj 2016Feb16 - This appears to not be used - //private void AddROUsage(XmlReader xr) - //{ - // int contentid = int.Parse(xr.GetAttribute("contentid")); - // contentid = Old2NewContent[contentid]; - // Content content = Content.Get(contentid); - // string rousageid = xr.GetAttribute("rousageid"); - // string roid = xr.GetAttribute("roid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // RoUsage rou = RoUsage.MakeRoUsage(content, roid, config, dts, userid, MyRODb); - // rou.Save(); - // string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); - // string replaceWith = (cbxCvrtROsToText.Checked) ? "" : string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); - // if (lookFor != replaceWith) - // { - // content.Text = content.Text.Replace(lookFor, replaceWith); - // content.Save(); - // } - //} - private string GetMyPrefix(string text, int start, int lastIndex) - { - string defPrefix = text.Substring(start - 3, 3); - if (defPrefix != @"\v ") throw new Exception(string.Format("rtf string {0} does not match expected format", defPrefix)); - string txt = text.Substring(lastIndex, start - lastIndex - 3); - int lastSlash = txt.LastIndexOf(@"\"); - int lastSpace = txt.LastIndexOf(" "); - int lastCR = txt.LastIndexOf("\r"); - if (lastSpace < lastCR) - lastSpace = lastCR; - if (lastSlash <= lastSpace) //this will return "\v " - return defPrefix; - txt = txt.Substring(lastSlash); - if (txt.StartsWith(@"\'")) //this is a hex - return defPrefix; - if (Regex.IsMatch(txt, @"\\u[0-9].*")) //this is unicode - return defPrefix; - return @"\v"; - } - private string GetMySuffix(string text, int start) - { - string txt = text.Substring(start); - int firstSlashVeeZero = txt.IndexOf(@"\v0"); - if (firstSlashVeeZero == 0 && txt.Length > 3 && txt[3] == ' ') //"\v0 " - return text.Substring(start, 4); - return text.Substring(start, firstSlashVeeZero + 3); //everything upto \v0" - } - private void ConvertImportProcedureROsToText(Content content, XmlNode xn) - { - foreach (XmlNode nd in xn.SelectNodes("rousage")) - { - string rousageid = nd.Attributes.GetNamedItem("rousageid").InnerText; - string roid = nd.Attributes.GetNamedItem("roid").InnerText; - - string findLink = @""; - MatchCollection ms = Regex.Matches(content.Text, findLink); - string lookFor = string.Format(@"^$", rousageid); - int lastIndex = 0; - string newText = content.Text; - foreach (Match mm in ms) - { - int offset = mm.Index; - Match m = Regex.Match(mm.Value, lookFor, RegexOptions.Singleline); - if (m != null && m.Groups.Count > 1) - { - string prefix = GetMyPrefix(content.Text, mm.Index, lastIndex); - string suffix = GetMySuffix(content.Text, mm.Index + mm.Length); - int myIndex = m.Groups[4].Index + mm.Index; - int myLength = m.Groups[4].Length; - if (m.Groups[3].Value != " ") - { - myIndex = m.Groups[3].Index + mm.Index; - myLength += m.Groups[3].Length; - } - string gg = newText.Substring(myIndex, myLength); - gg = gg.Replace("{", @"\{").Replace("}", @"\}"); - string part1 = newText.Substring(0, mm.Index); - string part2 = gg; - string part3 = newText.Substring(mm.Index + mm.Length); - //modify part1 based on prefix - if (prefix == @"\v ") - part1 = part1.Substring(0, part1.Length - 3); - else - part1 = part1.Substring(0, part1.Length - 3) + " "; - //modify part3 based on suffix - if (suffix == @"\v0 ") - part3 = part3.Substring(4); - else - part3 = suffix.Replace(@"\v0", "") + part3.Substring(suffix.Length); - content.Text = part1 + part2 + part3; - ROToTextAnnotation(content, part2); // B2016-225 (follow through) add annotation when RO is converted to text - } - lastIndex = mm.Index + mm.Length; - } - } - content.Save(); - } - - // B2016-225 (follow through) add annotation when RO is converted to text - private void ROToTextAnnotation(Content content, string txtRO) - { - // replace unicode symbols to DOS code symbols - txtRO = txtRO.Replace(@"\u8209?", "-"); // dash - txtRO = txtRO.Replace(@"\u9586?", @"\\"); // backslash - txtRO = txtRO.Replace(@"\'b0", "\xb0"); //degree - txtRO = txtRO.Replace(@"\u160?"," "); //hard space - txtRO = txtRO.Replace(@"\u916?", "\x7F"); // delta - txtRO = txtRO.Replace(@"\u8805?", "\xF2"); //greater than or equal - txtRO = txtRO.Replace(@"\u8804?", "\xF3"); // less than or equal - txtRO = txtRO.Replace(@"\u931?", "\xE4"); // sigma - txtRO = txtRO.Replace(@"\u947?", "\xE7"); // gamma - txtRO = txtRO.Replace(@"\u9604?", "\xFE"); // accum 2584 - txtRO = txtRO.Replace(@"\u9679?", "\x7"); // bullet 25CF - txtRO = txtRO.Replace(@"\u8776?", "\xF7"); // approx eq - txtRO = txtRO.Replace(@"\u8773?", "\xF0"); // similar eq 2245 - txtRO = txtRO.Replace(@"\u8730?", "\xFB"); // square root - txtRO = txtRO.Replace(@"\u961?", "\xE2"); // rho 3C1 - txtRO = txtRO.Replace(@"\u960?", "\xE3"); // pi - txtRO = txtRO.Replace(@"\u956?", "\xE6"); // micro - txtRO = txtRO.Replace(@"\u948?", "\xEB"); // lower case delta - txtRO = txtRO.Replace(@"\u963?", "\xE5"); // lower case sigma - txtRO = txtRO.Replace(@"\u274?", "\x90"); // energy, 112 - txtRO = txtRO.Replace(@"\u949?", "\xEE"); // epsilon - txtRO = txtRO.Replace(@"\u952?", "\xE9"); // theta, 3B8 - txtRO = txtRO.Replace(@"\u8857?", "\xEC"); // dot in oval, 2299 - txtRO = txtRO.Replace(@"\u964?", "\xA8"); // tau, 3C4 - txtRO = txtRO.Replace(@"\u9830?", "\xA9"); // diamond, 2666 - txtRO = txtRO.Replace(@"\u8593?", "\x18"); // Up Arrow - changes to \xff - txtRO = txtRO.Replace(@"\u8595?", "\x19"); // Down Arrow - changes to \xd6 - - Item myitem = content.ContentItems[0].MyItem; // The Using statement caused the content.text to disappear - //using (Item myitem = content.ContentItems[0].MyItem) // so that myitem does not stay in cache - //{ - Annotation.MakeAnnotation(myitem, AnnotationType.GetByNameOrCreate("Link Converted To Text"), "", string.Format("RO value ({0}) converted to text", txtRO), null); - //} - _DidConvertROsToText |= true; - } - private void AddROUsages(Content content, XmlNode xn) - { - AddROUsages(content, xn, false); - } - // part of bug fix B2017-060 added the isGrid parameter - private void AddROUsages(Content content, XmlNode xn, bool isGrid) - { - if (_ConvertROsToTextDuringImport) - ConvertImportProcedureROsToText(content, xn); - else - { - foreach (XmlNode nd in xn.SelectNodes("rousage")) - { - string rousageid = nd.Attributes.GetNamedItem("rousageid").InnerText; - string roid = nd.Attributes.GetNamedItem("roid").InnerText; - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - if (MyDocVersion.DocVersionAssociations == null) - MyDocVersion.RefreshDocVersionAssociations(); - ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion); - string roval = lookup.GetRoValue(roid); - if (roval == "?") - { - RoUsageInfo roui = RoUsageInfo.Get(int.Parse(rousageid)); - content.FixContentText(roui, roval, 0, MyDocVersion.DocVersionAssociations[0].MyROFst, null, rousageid); // + " " + roid); - _DidConvertROsToText |= true; // B2016-225 (follow through) add annotation when RO is converted to text - } - else - { - RoUsage rou = RoUsage.MakeRoUsage(content, roid, config, dts, userid, MyRODb); - rou.Save(); - RoUsageInfo roui = RoUsageInfo.Get(rou.ROUsageID); - string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); - string replaceWith = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); - if (lookFor != replaceWith) - { - content.Text = content.Text.Replace(lookFor, replaceWith); - content.FixContentText(roui, roval, 0, MyDocVersion.DocVersionAssociations[0].MyROFst); - } - if (isGrid) // B2017-060 when importing a grid, also update the grid's xml defination - { - string glookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); - string greplaceWith = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); - if (glookFor != greplaceWith) - { - content.MyGrid.Data = content.MyGrid.Data.Replace(glookFor, greplaceWith); - } - } - } - } - content.Save(); - if (isGrid) - GridInfo.Refresh(content.MyGrid); // force the updated grid (table) to refresh - } - } - - // jsj 4-29-2016 appears to not be used - //private void AddAnnotation(XmlReader xr) - //{ - // int itemid = int.Parse(xr.GetAttribute("itemid")); - // itemid = Old2NewItem[itemid]; - // Item itm = Item.Get(itemid); - // int typeid = int.Parse(xr.GetAttribute("typeid")); - // string rtftext = xr.GetAttribute("rtftext"); - // string searchtext = xr.GetAttribute("searchtext"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Annotation ann = Annotation.MakeAnnotation(itm, AnnotationType.Get(typeid), rtftext, searchtext, config, dts, userid); - //} - private void AddImage(Content content, XmlNode xc) - { - XmlNode xn = xc.SelectSingleNode("image"); - int imagetype = int.Parse(xn.Attributes.GetNamedItem("imagetype").InnerText); - string filename = xn.Attributes.GetNamedItem("filename").InnerText; - byte[] data = Convert.FromBase64String(xn.Attributes.GetNamedItem("data").InnerText); - string config = xn.Attributes.GetNamedItem("config").InnerText; - string userid = xn.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xn.Attributes.GetNamedItem("dts").InnerText); - VEPROMS.CSLA.Library.Image img = VEPROMS.CSLA.Library.Image.MakeImage(content, imagetype, filename, data, config, dts, userid); - img.Save(); - } - private void AddAnnotations(int itemID, XmlNode xn) - { - Item itm = Item.Get(itemID); - foreach (XmlNode nd in xn.SelectNodes("annotation")) - { - int typeid = int.Parse(nd.Attributes.GetNamedItem("typeid").InnerText); - string rtftext = nd.Attributes.GetNamedItem("rtftext").InnerText; - string searchtext = nd.Attributes.GetNamedItem("searchtext").InnerText; - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - AnnotationType annType = AnnotationType.GetByNameOrCreate(nd.Attributes.GetNamedItem("typename").InnerText); - Annotation ann = Annotation.MakeAnnotation(itm, annType, rtftext, searchtext, config, dts, userid); - ann.Save(); - } - } - private void AddParts(XmlNode myNode, ItemInfo parentInfo) - { - foreach (XmlNode xn in myNode.ChildNodes) - { - switch (xn.Name) - { - case "sections": - AddSections(xn, parentInfo); - break; - case "cautions": - AddCautions(xn, parentInfo); - break; - case "notes": - AddNotes(xn, parentInfo); - break; - case "rnos": - AddRNOs(xn, parentInfo); - break; - case "steps": - AddSteps(xn, parentInfo); - break; - case "supinfos": - AddSupInfos(xn, parentInfo); - break; - case "tables": - AddTables(xn, parentInfo); - break; - case "entry": // this is word section max out the status bar - lblImportStep.Text = "Word Section Data"; - pbImportStep.Maximum = 1; - pbImportStep.PerformStep(); - break; - default: - break; - } - } - } - private void AddTables(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddTable(nd, parentInfo, prevInfo); - } - // jsj 2016Feb16 - This appears to not be used - //private ItemInfo AddTable(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int steptype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Table); - // step.DTS = dts; - // step.UserID = userid; - // if (formatid != string.Empty) - // step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - // step.MyContent.Config = config; - // step.MyContent.DTS = dts; - // step.MyContent.UserID = userid; - // step.Save(); - // Old2NewItem.Add(oldid, step.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - // prevInfo = StepInfo.Get(step.ItemID); - // return prevInfo; - //} - private ItemInfo AddTable(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - using (step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Table)) - { - step.DTS = dts; - step.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - else - Old2NewItem[int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText)] = step.ItemID; // B2016-176, B2016-197 refresh saved ItemId with current ItemID - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - else - Old2NewContent[int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText)] = step.MyContent.ContentID; // B2016-176, B2016-197 refresh saved ContentID with current ContentID - if (xc.SelectNodes("grid").Count > 0) - AddGrid(step.MyContent, xc); - if (xc.SelectNodes("image").Count > 0) - AddImage(step.MyContent, xc); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc, true); // part of bug fix: B2017060 to properly convert invalid RO to text - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - } - return prevInfo; - } - private void AddSteps(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddStep(nd, parentInfo, prevInfo); - } - - // jsj 4-29-2016 appears to not be used - //private ItemInfo AddStep(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int steptype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Step); - // step.DTS = dts; - // step.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid),formatfilename); - // step.MyContent.Config = config; - // step.MyContent.DTS = dts; - // step.MyContent.UserID = userid; - // step.Save(); - // Old2NewItem.Add(oldid, step.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - // prevInfo = StepInfo.Get(step.ItemID); - // return prevInfo; - //} - private ItemInfo AddStep(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - using (step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Step)) - { - step.DTS = dts; - step.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - else - Old2NewItem[int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText)] = step.ItemID; // B2016-176, B2016-197 refresh saved ItemId with current ItemID - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - else - Old2NewContent[int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText)] = step.MyContent.ContentID; // B2016-176, B2016-197 refresh saved ContentID with current ContentID - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - } - return prevInfo; - } - private void AddRNOs(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddRNO(nd, parentInfo, prevInfo); - } - private void AddSupInfos(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddSupInfo(nd, parentInfo, prevInfo); - } - // jsj 4-29-2016 appears to not be used - //private ItemInfo AddRNO(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int steptype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.RNO); - // step.DTS = dts; - // step.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - // step.MyContent.Config = config; - // step.MyContent.DTS = dts; - // step.MyContent.UserID = userid; - // step.Save(); - // Old2NewItem.Add(oldid, step.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - // prevInfo = StepInfo.Get(step.ItemID); - // return prevInfo; - //} - - private ItemInfo AddRNO(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - using (step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.RNO)) - { - step.DTS = dts; - step.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - else - Old2NewItem[int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText)] = step.ItemID; // B2016-176, B2016-197 refresh saved ItemId with current ItemID - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - else - Old2NewContent[int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText)] = step.MyContent.ContentID; // B2016-176, B2016-197 refresh saved ContentID with current ContentID - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - } - return prevInfo; - } - private ItemInfo AddSupInfo(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - using (step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.SupInfo)) - { - step.DTS = dts; - step.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - } - return prevInfo; - } - private void AddNotes(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddNote(nd, parentInfo, prevInfo); - } - - // jsj 4-29-2016 appears to not be used - //private ItemInfo AddNote(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int steptype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Note); - // step.DTS = dts; - // step.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - // step.MyContent.Config = config; - // step.MyContent.DTS = dts; - // step.MyContent.UserID = userid; - // step.Save(); - // Old2NewItem.Add(oldid, step.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - // prevInfo = StepInfo.Get(step.ItemID); - // return prevInfo; - //} - - private ItemInfo AddNote(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - using (step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Note)) - { - step.DTS = dts; - step.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - else - Old2NewItem[int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText)] = step.ItemID; // B2016-176, B2016-197 refresh saved ItemId with current ItemID - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - else - Old2NewContent[int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText)] = step.MyContent.ContentID; // B2016-176, B2016-197 refresh saved ContentID with current ContentID - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - } - return prevInfo; - } - private void AddCautions(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddCaution(nd, parentInfo, prevInfo); - } - - // jsj 4-29-2016 appears to not be used - //private ItemInfo AddCaution(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int steptype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Caution); - // step.DTS = dts; - // step.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - // step.MyContent.Config = config; - // step.MyContent.DTS = dts; - // step.MyContent.UserID = userid; - // step.Save(); - // Old2NewItem.Add(oldid, step.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - // prevInfo = StepInfo.Get(step.ItemID); - // return prevInfo; - //} - - private ItemInfo AddCaution(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - using (step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Caution)) - { - step.DTS = dts; - step.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - else - Old2NewItem[int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText)] = step.ItemID; // B2016-176, B2016-197 refresh saved ItemId with current ItemID - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - else - Old2NewContent[int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText)] = step.MyContent.ContentID; // B2016-176, B2016-197 refresh saved ContentID with current ContentID - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - } - return prevInfo; - } - private void AddSections(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddSection(nd, parentInfo, prevInfo); - } - private Dictionary GetSectionData(XmlReader xr) - { - Dictionary rv = new Dictionary(); - rv.Add("itemid", xr.GetAttribute("itemid")); - return rv; - } - - // js j4-29-2016 appears to not be used - //private ItemInfo AddSection(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int sectiontype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Section sect = Section.MakeSection(parentInfo, prevInfo, number, text, sectiontype); - // sect.DTS = dts; - // sect.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // sect.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - // sect.MyContent.Config = config; - // sect.MyContent.DTS = dts; - // sect.MyContent.UserID = userid; - // sect.Save(); - // Old2NewItem.Add(oldid, sect.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), sect.MyContent.ContentID); - // prevInfo = SectionInfo.Get(sect.ItemID); - // return prevInfo; - //} - - private ItemInfo AddSection(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportSection.PerformStep(); - lblImportSection.Text = string.Format("{0} of {1} Sections", pbImportSection.Value.ToString(), pbImportSection.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Section sect; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int sectiontype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - sect = Section.MakeSection(parentInfo, prevInfo, number, text, sectiontype); - sect.DTS = dts; - sect.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - sect.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - sect.MyContent.Config = config; - sect.MyContent.DTS = dts; - sect.MyContent.UserID = userid; - sect.Save(); - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), sect.MyContent.ContentID); - else - Old2NewContent[int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText)] = sect.MyContent.ContentID; // B2016-176, B2016-197 refresh saved ContentID with current ContentID - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), sect.ItemID); - else - Old2NewItem[int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText)] = sect.ItemID; // B2016-176, B2016-197 refresh saved ItemId with current ItemID - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(sect.ItemID, xn); - if (xc.SelectNodes("entry").Count > 0) - AddEntry(sect.MyContent, xc); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(sect.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(sect.MyContent, xc); - prevInfo = SectionInfo.Get(sect.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private string StripEnhanced(string config) - { - if (config.Length > 0) - { - XmlDocument xd = new XmlDocument(); - xd.LoadXml(config); - XmlNodeList nl = xd.DocumentElement.SelectNodes("//Enhanced"); - foreach (XmlNode nd in nl) - nd.ParentNode.RemoveChild(nd); - return xd.OuterXml; - } - return config; - } - private void CheckForFloatingFoldout(int contentid, string config) - { - if (config != string.Empty) - { - XmlDocument xd = new XmlDocument(); - xd.LoadXml(config); - XmlNode xn = xd.SelectSingleNode("Config/Step/@FloatingFoldout"); - if (xn != null) - floatFoldout.Add(contentid, int.Parse(xn.InnerText)); - } - } - - // jsj 2016Feb16 - This appears to not be used - //private void AddGrid(XmlReader xr) - //{ - // int contentid = int.Parse(xr.GetAttribute("contentid")); - // contentid = Old2NewContent[contentid]; - // Content content = Content.Get(contentid); - // string data = xr.GetAttribute("data"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Grid gg = Grid.MakeGrid(content, data, config, dts, userid); - //} - - private void AddGrid(Content content, XmlNode xc) - { - XmlNode nd = xc.SelectSingleNode("grid"); - string data = nd.Attributes.GetNamedItem("data").InnerText; - XmlDocument xd = new XmlDocument(); - xd.LoadXml(data); - XmlNode gn = xd.SelectSingleNode("C1FlexGrid/Control/IsRoTable"); - if (gn.InnerText.ToLower() == "true") - { - if (_ConvertROsToTextDuringImport) - { - gn.InnerText = "False"; - ROToTextAnnotation(content, "RO Table"); // B2016-225 (follow through) add annotation when RO is converted to text - } - else - { - gn = xd.SelectSingleNode("C1FlexGrid/Control/RODbId"); - gn.InnerText = newRODbID.ToString(); - } - data = xd.OuterXml; - } - else - { - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Cells/Cell/Data"); - bool modified = false; - if (_ConvertROsToTextDuringImport) - { - string newvalue = ""; - // if it's an ro within a table, need to process into an flex grid to save the grid data: - string findLinkXml = @"<START\].*?\[END>"; - //string lookForXml = string.Format(@"^<START\](\\[^v \\]+)*\\v0(\\[^v '?{{}}\\]+)*( |\\u[0-9]{{1,4}}?|\\'[0-9a-fA-F]{{2}}|\\[{{}}~])(.*?)(\\[^v'?{{}} \\]+)*\\v(\\[^v \\]+)* #Link:ReferencedObject:{0} .*?\[END>$", rousageid); - string lookForXml = @"^<START\](\\[^v \\]+)*\\v0(\\[^v '?{{}}\\]+)*( |\\u[0-9]{{1,4}}?|\\'[0-9a-fA-F]{{2}}|\\[{{}}~])(.*?)(\\[^v'?{{}} \\]+)*\\v(\\[^v \\]+)* #Link:ReferencedObject:.*?\[END>$"; - MatchCollection msg = Regex.Matches(data, findLinkXml); - int nmsg = msg.Count; - for (int i = nmsg - 1; i >= 0; i--) - { - Match mmg = msg[i]; - Match mg = Regex.Match(mmg.Value, lookForXml);// Regex.Match(MyGrid.Data, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - int myIndex = mg.Groups[4].Index + mmg.Index; - int myLength = mg.Groups[4].Length; - if (mg.Groups[3].Value != " ") - { - myIndex = mg.Groups[3].Index + mmg.Index; - myLength += mg.Groups[3].Length; - } - string ss = data.Substring(myIndex, myLength); - if (ss != newvalue) - { - data = Content.ConvertGridROsToText(data, mmg, mg, ss); // part of bug fix: B2017060 to properly convert invalid RO to text - } - } - } - } - else - { - string lookFor = string.Format(" {0}[END", oldRODbID.ToString()); - string replaceWith = string.Format(" {0}[END", newRODbID.ToString()); - foreach (XmlNode nn in nl) - { - if (nn.InnerText.Contains("#Link:ReferencedObject:")) - { - nn.InnerText = nn.InnerText.Replace(lookFor, replaceWith); - modified = true; - } - } - if (modified) - data = xd.OuterXml; - } - } - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - Grid gg = Grid.MakeGrid(content, data, config, dts, userid); - gg.Save(); - content.MyGrid = gg; - } - - - // jsj 4-29-2016 appears to not be used - //private Dictionary AddEntry(XmlReader xr) - //{ - // Dictionary dic = new Dictionary(); - // dic.Add("contentid", xr.GetAttribute("contentid")); - // dic.Add("dts", xr.GetAttribute("dts")); - // dic.Add("userid", xr.GetAttribute("userid")); - // return dic; - //} - - private void AddEntry(Content content, XmlNode xc) - { - XmlNode nd = xc.SelectSingleNode("entry"); - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - Document dd = AddDocument(nd.SelectSingleNode("document")); - Entry ee = Entry.MakeEntry(content, dd, dts, userid); - ee.Save(); - } - // jsj 2016Feb16 - This appears to not be used - //private void AddDocument(XmlReader xr, Dictionary dic) - //{ - // string libtitle = xr.GetAttribute("libtitle"); - // byte[] doccontent = Convert.FromBase64String(xr.GetAttribute("doccontent")); - // string docascii = xr.GetAttribute("docascii"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // string fileextension = xr.GetAttribute("fileextension"); - // Document dd = Document.MakeDocument(libtitle, doccontent, docascii, config, dts, userid, fileextension); - // int contentid = int.Parse(dic["contentid"]); - // contentid = Old2NewContent[contentid]; - // Content content = Content.Get(contentid); - // dts = DateTime.Parse(dic["dts"]); - // userid = dic["userid"]; - // Entry ee = Entry.MakeEntry(content, dd, dts, userid); - //} - private Document AddDocument(XmlNode xn) - { - Document d; - int docid = int.Parse(xn.Attributes.GetNamedItem("docid").InnerText); - if (Old2NewLibDoc.ContainsKey(docid)) - { - docid = Old2NewLibDoc[docid]; - d = Document.Get(docid); - } - else - { - string libtitle = xn.Attributes.GetNamedItem("libtitle").InnerText; - DateTime dts = DateTime.Parse(xn.Attributes.GetNamedItem("dts").InnerText); - if (libtitle != "") - { - DocumentInfoList dil = DocumentInfoList.GetLibraries(true); - foreach (DocumentInfo di in dil) - { - if (di.LibTitle == libtitle && di.DTS == dts) - return di.Get(); // found library document in exiting database - } - } - byte[] doccontent = Convert.FromBase64String(xn.Attributes.GetNamedItem("doccontent").InnerText); - string docascii = xn.Attributes.GetNamedItem("docascii").InnerText; - string config = xn.Attributes.GetNamedItem("config").InnerText; - string userid = xn.Attributes.GetNamedItem("userid").InnerText; - string fileextension = xn.Attributes.GetNamedItem("fileextension").InnerText; - d = Document.MakeDocument(libtitle, doccontent, docascii, config, dts, userid, fileextension); - d.Save(); - Old2NewLibDoc.Add(docid, d.DocID); - } - return d; - } - #endregion - - private void btnCloseExport_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void btnCloseImport_Click(object sender, EventArgs e) - { - this.Close(); - } - } -} diff --git a/PROMS/PROMS/VEPROMS User Interface/frmVEPROMS.cs b/PROMS/PROMS/VEPROMS User Interface/frmVEPROMS.cs deleted file mode 100644 index 5e1dded9..00000000 --- a/PROMS/PROMS/VEPROMS User Interface/frmVEPROMS.cs +++ /dev/null @@ -1,3967 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Collections.Specialized; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using System.Configuration; -using VEPROMS.CSLA.Library; -//using Csla; -using DevComponents; -using DevComponents.DotNetBar; -using DevComponents.DotNetBar.Rendering; -using VEPROMS.Properties; -using Volian.Controls.Library; -using DescriptiveEnum; -using Volian.Base.Library; -using Volian.Print.Library; -[assembly: log4net.Config.XmlConfigurator(Watch = true)] - -namespace VEPROMS -{ - enum PropPgStyle { Button = 1, Tab = 2, Grid = 3 }; - - public partial class frmVEPROMS : DevComponents.DotNetBar.Office2007RibbonForm - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region PropertiesVariables - private int securityRole; - private bool _panelExpandedChanging = false; - Color _CommentTitleBckColor; - DocVersionInfo _SelectedDVI = null; - StepTabPanel _SelectedStepTabPanel = null; - public FindReplace dlgFindReplace = null; - public VlnSpellCheck SpellChecker = null; - private Int64 _LastContentChange; - public Int64 LastContentChange - { - get { return _LastContentChange; } - set { _LastContentChange = value; } - } - public void RefreshLastChange() - { - lblLastChange.Text = string.Format("Last Change: {0}", MySessionInfo.LastContentChange - this.LastContentChange); - } - public StepTabPanel SelectedStepTabPanel - { - get - { - return _SelectedStepTabPanel; - } - set - { - _SelectedStepTabPanel = value; - if (value == null) // DSO Tab Panel - { - dlgFindReplace.Visible = false; // Find/Replace dialog should not be visable for DSO tab panels - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.MyItemInfo != null) // 2nd part is for unassociated libdocs - SelectedDVI = tc.SelectedDisplayTabItem.MyItemInfo.MyDocVersion; - else - SelectedDVI = null; - } - else // Step Tab Panel - { - // The following line was broken into separate lines because a NullReferenceError was occuring. - // Now we should be able to tell what is wrong by which line causes the Null Reference Error - // RHM 20101217 - //SelectedDVI = value.MyStepPanel.MyProcedureItemInfo.MyProcedure.ActiveParent as DocVersionInfo; - StepPanel stepPanel = value.MyStepPanel; - ItemInfo itemInfo = stepPanel.MyProcedureItemInfo; - ProcedureInfo procedureInfo = itemInfo.MyProcedure; - SelectedDVI = procedureInfo.MyDocVersion; - // Remove it first, if it wasn't set, this doesn't do anything, but if it was set, you don't want - // multiple events because the print dialog will be displayed for each time the event was added. - _SelectedStepTabPanel.MyStepTabRibbon.PrintRequest -= new StepTabRibbonEvent(MyStepTabRibbon_PrintRequest); - _SelectedStepTabPanel.MyStepTabRibbon.PrintRequest += new StepTabRibbonEvent(MyStepTabRibbon_PrintRequest); - _SelectedStepTabPanel.MyStepTabRibbon.ProgressBar = bottomProgBar; - _SelectedStepTabPanel.MyStepTabRibbon.ContActionSummaryRequest -= MyStepTabRibbon_ContActionSummaryRequest; - _SelectedStepTabPanel.MyStepTabRibbon.ContActionSummaryRequest += MyStepTabRibbon_ContActionSummaryRequest; - _SelectedStepTabPanel.MyStepTabRibbon.AddProcToDVInTree -= new StepTabRibbonEvent(MyStepTabRibbon_AddProcToDocVersionInTree); - _SelectedStepTabPanel.MyStepTabRibbon.AddProcToDVInTree += new StepTabRibbonEvent(MyStepTabRibbon_AddProcToDocVersionInTree); - } - } - } - - void MyStepTabRibbon_ContActionSummaryRequest(object sender, StepTabRibbonEventArgs args) - { - DialogResult dr = System.Windows.Forms.DialogResult.Yes; - ProcedureInfo piThis = null; - if (_CurrentItem != null) piThis = _CurrentItem.MyProcedure; - ProcedureInfo pi = args.Proc as ProcedureInfo; - if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis; - - //added by jcb 20130718 to support create pdf button when multiunit and user selects a unit - pi.MyDocVersion.DocVersionConfig.SelectedSlave = pi.ProcedureConfig.SelectedSlave; - //end added by jcb 20130718 - if (pi == null) return; - DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi); - //added by jcb 20130718 to support create pdf button when multiunit and user selects a unit - prnDlg.SelectedSlave = pi.ProcedureConfig.SelectedSlave == 0 ? -1 : pi.ProcedureConfig.SelectedSlave; - prnDlg.MySessionInfo = MySessionInfo; - //end added by jcb 20130718 - prnDlg.Automatic = true; - prnDlg.CreateContinuousActionSummary = true; - prnDlg.OpenAfterCreate = (dr == System.Windows.Forms.DialogResult.Yes); - prnDlg.Prefix = "CASTMP_"; // A temporary procedure PDF is created to grab page numbers - prnDlg.SetupForProcedure(); - prnDlg.CreatePDF(); - //added by jcb 20130718 to support create pdf button when multiunit and user selects a unit - pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; - //end added by jcb 20130718 - } - - public DocVersionInfo SelectedDVI - { - get { return _SelectedDVI; } - set - { - if (_SelectedDVI != value) - { - _SelectedDVI = value; - _SelectedROFst = null; - } - InitiateSearch(false); - InitiateDisplayReports(false); - } - } - // TODO: Should the following be an info - // For the initial release, we are assuming there will be only one rofst fro a docversion. Changes - // will be needed here if more than 1. - private ROFstInfo _SelectedROFst; - public ROFstInfo SelectedROFst - { - get - { - if (_SelectedROFst == null && SelectedDVI != null) - { - if (SelectedDVI.DocVersionAssociationCount <= 0) - { - MessageBox.Show("There is no Referenced Object (RO) data for this procedure set. Use the Properties for the set to define the RO data."); - return null; - } - _SelectedROFst = SelectedDVI.DocVersionAssociations[0].MyROFst; - } - return _SelectedROFst; - } - set { _SelectedROFst = value; } - } - #endregion - private frmVEPROMS _MyParent; - public frmVEPROMS MyParent - { - get { return _MyParent; } - set { _MyParent = value; } - } - //private FolderInfo _MyFolder = null; - //public FolderInfo MyFolder - //{ - // get { return _MyFolder; } - // set { _MyFolder = value; } - //} - private DocVersionInfo _MyDocVersion = null; - - public DocVersionInfo MyDocVersion - { - get { return _MyDocVersion; } - set { _MyDocVersion = value; } - } - public frmVEPROMS(frmVEPROMS myParent, DocVersionInfo myDocVersion) - { - MyParent = myParent; - MyDocVersion=myDocVersion; - InitializeComponent(); - SetupFolder(MyDocVersion.FolderID); - tc.MySessionInfo = MyParent.MySessionInfo; - displaySearch1.TopFolderID = myDocVersion.FolderID; - SelectedDVI = myDocVersion; - tc.VersionID = myDocVersion.VersionID; - } - public void OpenItem(ItemInfo myItemInfo) - { - tc.OpenItem(myItemInfo); - } - public void RefreshItem(ItemInfo myItemInfo) - { - tc.RefreshItem(myItemInfo); - } - public frmVEPROMS() - { - // The following Try/Catch was added to protect against a problem seen by Kathy and Michelle - // on January 1, 2013. Michelle's user.config file was empty and PROMS would not run. - // This logic will delete a "Bad" config file to attempt to eliminate the problem, and - // instructs the user to try again. - try - { - if (Properties.Settings.Default.UpdateSettings) - { - Properties.Settings.Default.Upgrade(); - Properties.Settings.Default.UpdateSettings = false; - Properties.Settings.Default.Save(); - } - } - catch (Exception ex) - { - _MyLog.Error(ex.GetType().Name + " - " + ex.InnerException, ex); - if (ex.Message.StartsWith("Configuration system failed to initialize")) - { - string filename = ex.InnerException.Message; - filename = filename.Substring(filename.IndexOf("(") + 1); - filename = filename.Substring(0, filename.IndexOf("user.config") + 11); - FileInfo myfile = new FileInfo(filename); - myfile.Delete(); - MessageBox.Show("Config file was corrupt, it has been deleted.\r\nTry Again", "Corrupt config file", MessageBoxButtons.OK, MessageBoxIcon.Error); - System.Diagnostics.Process.GetCurrentProcess().Kill(); - } - } - // If first time close any remaining WinWords. These will sometimes get hung in memory and cause problems. - if (System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName).Length == 1) - Volian.MSWord.WordDoc.KillWordApps(); - // cleanup from previous run: - Volian.Base.Library.TmpFile.RemoveAllTmps(); - - if (VlnSettings.DebugMode) - { - //use local data (for development/debug mode) - if (Environment.MachineName == "RMARK-PC") - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_RMARK_DEBUG"; - else if (Environment.MachineName == "WINDOWS7-RHM") - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_RMARK_DEBUG"; - else if (Environment.UserName.ToUpper() == "BODINE") - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_BODINE_DEBUG"; - else - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_LOCAL"; - } - else - { - // use server data (default) - // - except for the volian laptop and Rich's Demo version where we need to use local data - if (Environment.MachineName == "RMARK-PC") - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_RMARK_DEMO"; - else if (Environment.MachineName == "WINDOWS7-RHM") - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_RMARK_DEMO"; - else if (Environment.UserName.ToUpper() == "BODINE") - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_BODINE_DEMO"; - else - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_LOCAL"; - } - InitializeComponent(); - bottomProgBar.ValueChanged += new EventHandler(bottomProgBar_ValueChanged); - - // When creating an XY Plot, a System.Drawing.Graphics is needed and it requires a form. Use the main - // form. - if (VlnSettings.DebugMode) - { - MSWordToPDF.DebugStatus = 1; - MSWordToPDF.OverrideColor = Color.Red; - } - else - { - MSWordToPDF.DebugStatus = 0; - MSWordToPDF.OverrideColor = Color.Transparent; - } - MSWordToPDF.FormForPlotGraphics = this; - - // set the color of the ribbon - RibbonPredefinedColorSchemes.ChangeOffice2007ColorTable((eOffice2007ColorScheme)Settings.Default.SystemColor); - - // LATER: get the user setting to control what is displayed for each tree node - // The logic is in the ToString() functions in FolderExt.cs and DocVersionExt.cs - //the GetFolder(1) function will read in the frist node (using ToString() to assign node text) - - // Get the saved Tree Node Diplay settings - //if (Settings.Default["UseNameOnTreeNode"]) - //{ - //} - //if (Settings.Default["UseTitleOnTreeNode"]) - //{ - //} - cmbFont.DataSource = FontFamily.Families; - cmbFont.DisplayMember = "Name"; - cmbFont.SelectedIndex = -1; - string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray()); - string db = Volian.Base.Library.VlnSettings.GetDB(); - if(db != null) - Database.SelectedDatabase = db; - if (Properties.Settings.Default["DefaultDB"] != string.Empty) - Database.LastDatabase = Properties.Settings.Default.DefaultDB; - // Setup the Context menu for DisplaySearch including the symbols - displaySearch1.SetupContextMenu(); - displaySearch1.SearchComplete += displaySearch1_SearchComplete; - if (!FormatInfo.HasLatestChanges()) - throw new Exception("Inconsistent Formats"); - if (!ItemAuditInfo.IsChangeManagerVersion()) - throw new Exception("Inconsistent Data"); - // set a static variable to the PROMS Base format (BASEall.xml) - // this is used to resolve Global Search bug B2014-057 so that we can get to the symbol list when no DocVersion is selected - if (FormatInfo.PROMSBaseFormat == null) - throw new Exception("Could not set PROMSBaseFormat"); - if ((Database.LastDatabase ?? "") != (Database.SelectedDatabase ?? "")) - { - if(Properties.Settings.Default.VersionWindows != null) - Properties.Settings.Default.VersionWindows.Clear(); - Properties.Settings.Default.MRIList = null; - Properties.Settings.Default.DefaultDB = Database.SelectedDatabase; - Properties.Settings.Default.Save(); - } - displayBookMarks.SetupBookMarks(); - DateTime dtSunday = DateTime.Now.AddDays(-((int)DateTime.Now.DayOfWeek)); - string c = Database.DBServer; - ChangeLogFileName("LogFileAppender", Database.ActiveDatabase + " " + dtSunday.ToString("yyyyMMdd") + " ErrorLog.txt"); - _MyLog.InfoFormat("\r\nSession Beginning\r\n<===={0}[SQL:{1:yyMM.ddHH}]====== User: {2}/{3} Started {4} ===============>" - , Application.ProductVersion,Database.RevDate, Environment.UserDomainName,Environment.UserName, DateTime.Now.ToString("dddd MMMM d, yyyy h:mm:ss tt")); - foreach (string parameter in parameters) - { - if (parameter.ToUpper().StartsWith("/UF=")) - UpdateFormats(parameter.Substring(4)); - else if (parameter.ToUpper().StartsWith("/UF")) - UpdateFormats(null); - } - SetupFolder(1); - tc.VersionID = 0; - tv.PauseRefresh += tv_PauseRefresh; - tv.UnPauseRefresh += tv_UnPauseRefresh; - } - void displaySearch1_SearchComplete(object sender, DisplaySearchEventArgs args) - { - ProgBarText = string.Format("{0} Seconds", args.HowLong.TotalSeconds); - } - private bool _PauseRefresh = false; - public bool PauseRefresh - { - get { return _PauseRefresh; } - set { - //_MyLog.WarnFormat(value ? "=== Pause" : "=== UnPause"); - _PauseRefresh = value; - } - } - void tv_UnPauseRefresh(object sender, vlnTreeSectionInfoEventArgs args) - { - //_MyLog.WarnFormat("Unpause"); - PauseRefresh = false; - } - void tv_PauseRefresh(object sender, vlnTreeSectionInfoEventArgs args) - { - //_MyLog.WarnFormat("Pause"); - //PauseRefresh = true; - } - private void SetupFolder(int folderID) - { - VETreeNode tn = VETreeNode.GetFolder(folderID); - tv.Nodes.Add(tn); - tv.NodePSI += new vlnTreeViewPSIEvent(tv_NodePSI); - tv.NodeSI += new vlnTreeViewSIEvent(tv_NodeSI); - tv.NodeOpenProperty += new vlnTreeViewPropertyEvent(tv_NodeOpenProperty); - tv.NodeSelect += new Volian.Controls.Library.vlnTreeViewEvent(tv_NodeSelect); - tv.NodeNew += new vlnTreeViewEvent(tv_NodeNew); - tv.OpenItem += new vlnTreeViewItemInfoEvent(tv_OpenItem); - tv.TabDisplay += new StepPanelTabDisplayEvent(tc_PanelTabDisplay); - tv.DeleteItemInfo += new vlnTreeViewItemInfoDeleteEvent(tv_DeleteItemInfo); - tv.InsertItemInfo += new vlnTreeViewItemInfoInsertEvent(tv_InsertItemInfo); - tv.NodeInsert += new vlnTreeViewEvent(tv_NodeInsert); - tv.PasteItemInfo += new vlnTreeViewItemInfoPasteEvent(tv_PasteItemInfo); - tv.GetChangeId += new vlnTreeViewGetChangeIdEvent(tv_GetChangeId); - tv.NodeCopy += new vlnTreeViewEvent(tv_NodeCopy); - tv.ClipboardStatus += new vlnTreeViewClipboardStatusEvent(tv_ClipboardStatus); - tv.ProgressBar = bottomProgBar; - tc.ItemPaste += new StepPanelItemPastedEvent(tc_ItemPasted); - displayHistory.HistorySelectionChanged += new DisplayHistoryEvent(displayHistory_HistorySelectionChanged); - _CommentTitleBckColor = epAnnotations.TitleStyle.BackColor1.Color; - if (!btnAnnoDetailsPushPin.Checked) - epAnnotations.Expanded = false; - infoPanel.Expanded = false; - toolsPanel.Expanded = false; - displayTags.Visible = false; - ribbonControl1.ExpandedChanged += new EventHandler(ribbonControl1_ExpandedChanged); - dlgFindReplace = new FindReplace(); - SpellChecker = new VlnSpellCheck(); - displaySearch1.PrintRequest += new DisplaySearchEvent(displaySearch1_PrintRequest); - displayHistory.ChronologyPrintRequest += new DisplayHistoryReportEvent(displayHistory_ChronologyPrintRequest); - displayHistory.SummaryPrintRequest += new DisplayHistoryReportEvent(displayHistory_SummaryPrintRequest); - displayHistory.AnnotationRestored += new AnnotationRestoredHandler(displayHistory_AnnotationRestored); - displayReports.PrintRequest += new DisplayReportsEvent(displayReports_PrintRequest); - this.Activated += new EventHandler(frmVEPROMS_Activated); - VlnSettings.StepTypeToolType = Settings.Default.StepTypeToolTip; - displayLibDocs.PrintRequest += new DisplayLibDocEvent(displayLibDocs_PrintRequest); - ContentInfo.InfoChanged += new ContentInfoEvent(RefreshDisplayHistory); - AnnotationInfo.InfoChanged += new AnnotationInfoEvent(RefreshDisplayHistory); - ItemInfo.InfoRestored += new ItemInfoEvent(RefreshDisplayHistory); - ItemInfo.ItemDeleted += new ItemInfoEvent(RefreshDisplayHistory); - tv.PrintProcedure += new vlnTreeViewEvent(tv_PrintProcedure); - tv.PrintAllProcedures += new vlnTreeViewEvent(tv_PrintAllProcedures); - tv.ApproveProcedure += new vlnTreeViewEvent(tv_ApproveProcedure); - tv.ApproveAllProcedures += new vlnTreeViewEvent(tv_ApproveAllProcedures); - tv.ApproveSomeProcedures += new vlnTreeViewEvent(tv_ApproveSomeProcedures); - tv.ReportAllProceduresInconsistencies += new vlnTreeViewEvent(tv_ReportAllProceduresInconsistencies); - tv.RefreshCheckedOutProcedures += new vlnTreeViewEvent(tv_RefreshCheckedOutProcedures); - tv.ProcedureCheckedOutTo += new vlnTreeViewEvent(tv_ProcedureCheckedOutTo); - tv.ViewPDF += new vlnTreeViewPdfEvent(tv_ViewPDF); - displayApplicability.ApplicabilityViewModeChanged += new DisplayApplicability.DisplayApplicabilityEvent(displayApplicability_ApplicabilityViewModeChanged); - tv.ExportImportProcedureSets += new vlnTreeViewEvent(tv_ExportImportProcedureSets); - tv.PrintTransitionReport += new vlnTreeViewEvent(tv_PrintTransitionReport); - tv.ProcessingComplete += tv_ProcessingComplete; - tv.Processing += tv_Processing; - tv.CreateContinuousActionSummary += new vlnTreeViewEvent(tv_CreateContinuousActionSummary); - tv.SelectDateToStartChangeBars += tv_SelectDateToStartChangeBars; - } - - void tv_SelectDateToStartChangeBars(object sender, vlnTreeEventArgs args) - { - ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; - if (pi == null) return; - tc.SaveCurrentEditItem(pi); - - ProcedureConfig pc = pi.MyConfig as ProcedureConfig; - if (pc == null) return; - - dlgSetChangeBarStartDate cbdDlg = new dlgSetChangeBarStartDate(pc); - if (cbdDlg.ShowDialog() == DialogResult.OK) - { - using (Item itm = Item.Get(pi.ItemID)) - { - itm.MyContent.Config = pc.ToString(); - itm.UserID = Volian.Base.Library.VlnSettings.UserID; - itm.Save(); - } - } - } - - private bool _SkipRefresh = false; - public bool SkipRefresh - { - get { return _SkipRefresh; } - set { _SkipRefresh = value; } - } - void tv_Processing(object sender, vlnTreeStatusEventArgs args) - { - SkipRefresh = args.MyStatus; - if (args.MyStatus) - bottomProgBar.ColorTable = eProgressBarItemColor.Paused; - else - bottomProgBar.ColorTable = eProgressBarItemColor.Normal; - bottomProgBar.Text = args.MyMessage; - bottomProgBar.TextVisible = true; - Application.DoEvents(); - } - void tv_ProcessingComplete(object sender, vlnTreeTimeEventArgs args) - { - bottomProgBar.Text = string.Format("{0} seconds - {1}", args.MyTimeSpan.TotalSeconds, args.MyMessage); - Application.DoEvents(); - } - void bottomProgBar_ValueChanged(object sender, EventArgs e) - { - if (bottomProgBar.Value < 10 && bottomProgBar.ColorTable != eProgressBarItemColor.Normal) - bottomProgBar.ColorTable = eProgressBarItemColor.Normal; - } - string tv_GetChangeId(object sender, vlnTreeItemInfoEventArgs args) - { - tc.HandleChangeId(args.MyItemInfo, null); - return tc.ChgId; - } - ItemInfo tv_ClipboardStatus(object sender, vlnTreeEventArgs args) - { - return tc.MyCopyStep; - } - void tv_NodeCopy(object sender, vlnTreeEventArgs args) - { - VETreeNode tn = args.Node as VETreeNode; - ItemInfo ii = tn.VEObject as ItemInfo; - tc.MyCopyStep = ii; - } - void tv_PrintTransitionReport(object sender, vlnTreeEventArgs args) - { - FolderInfo fi = null; - ProcedureInfo pi = null; - if ((args.Node as VETreeNode).VEObject is FolderInfo) - fi = (args.Node as VETreeNode).VEObject as FolderInfo; - if ((args.Node as VETreeNode).VEObject is ProcedureInfo) - pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; - if (fi != null) //working with folder - { - dlgTransitionReport dlg = new dlgTransitionReport(fi); - dlg.ShowDialog(this); - } - if (pi != null) //working with procedure - { - this.Cursor = Cursors.WaitCursor; - Application.DoEvents(); - dlgTransitionReport dlg = new dlgTransitionReport(pi); - dlg.ShowDialog(this); - this.Cursor = Cursors.Default; - } - } - - void tv_ExportImportProcedureSets(object sender, vlnTreeEventArgs args) - { - FolderInfo fi = null; - DocVersionInfo dvi = null; - ProcedureInfo pi = null; - if ((args.Node as VETreeNode).VEObject is FolderInfo) - fi = (args.Node as VETreeNode).VEObject as FolderInfo; - if ((args.Node as VETreeNode).VEObject is DocVersionInfo) - dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo; - if ((args.Node as VETreeNode).VEObject is ProcedureInfo) - pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; - if (fi != null) - { - string msg = string.Empty; - bool ok = MySessionInfo.CanCheckOutItem(fi.FolderID, CheckOutType.Session, ref msg); - if (!ok) - { - if (args.Index == 0) - MessageBox.Show(this, msg, "Export Procedure Set Unavailable"); - else - MessageBox.Show(this, msg, "Import Procedure Set Unavailable"); - } - else - { - int ownerid = MySessionInfo.CheckOutItem(fi.FolderID, CheckOutType.Session); - dlgExportImport dlg = new dlgExportImport(args.Index == 0 ? "Export" : "Import", fi, this); - dlg.ShowDialog(this); - MySessionInfo.CheckInItem(ownerid); - if (args.Index == 1 && dlg.MyNewFolder != null) - tv.AddNewNode(dlg.MyNewFolder); - } - } - if (dvi != null) - { - string msg = string.Empty; - bool ok = MySessionInfo.CanCheckOutItem(dvi.VersionID, CheckOutType.DocVersion, ref msg); - if (!ok) - { - MessageBox.Show(this, msg, "Import Procedure Unavailable"); - } - else - { - dvi.RefreshDocVersionAssociations(); // Refresh Associations Count - //Only allow Import if the Referenced Object Database is set - if ( dvi.DocVersionAssociationCount == 0) - { - MessageBox.Show("Prior to Importing Procedures you must set the Referenced Object Database", "No RO Database set", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - return; - } - int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion); - dlgExportImport dlg = new dlgExportImport("Import", dvi, this); - dlg.MyNewProcedure = null; - dlg.ExternalTransitionItem = null; - dlg.ShowDialog(this); - MySessionInfo.CheckInItem(ownerid); - if(dlg.MyNewProcedure != null) - tv.AddNewNode(dlg.MyNewProcedure); - if (dlg.ExternalTransitionItem != null) - tc.OpenItem(dlg.ExternalTransitionItem); - } - } - if (pi != null) - { - string msg = string.Empty; - bool ok = MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref msg); - if (!ok) - { - MessageBox.Show(this, msg, "Export Procedure Unavailable"); - } - else - { - int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, CheckOutType.Procedure); - dlgExportImport dlg = new dlgExportImport("Export", pi, this); - dlg.ShowDialog(this); - MySessionInfo.CheckInItem(ownerid); - } - } - } - - private void MakeDatabaseChanges() - { - // September 2012: Decided to store roimages as zipped. Any previous data may not have them zipped. - // Check the top folders config to see, and if needed, zip them: - ROImageInfo.CompressAllExistingImages += new ROImageInfoCompressionEvent(ROImageInfo_CompressAllExistingImages); - ROImageInfo.ZipImages(); - ROImageInfo.CompressAllExistingImages -= new ROImageInfoCompressionEvent(ROImageInfo_CompressAllExistingImages); - - } - - void ROImageInfo_CompressAllExistingImages(object sender, ROImageInfoCompressionEventArgs args) - { - switch (args.Type) - { - case ROImageCompressionEventType.Complete: - ProgBarText = "Compressing Complete"; - break; - case ROImageCompressionEventType.Initialize: - ProgBarMax = args.Total; - ProgBarText = "Compressing RO Images"; - break; - case ROImageCompressionEventType.Update: - ProgBarValue = args.Current; - ProgBarText = args.FileName; - break; - default: - break; - } - } - - static string _ErrorLogFileName; - - public static string ErrorLogFileName - { - get { return frmVEPROMS._ErrorLogFileName; } - set { frmVEPROMS._ErrorLogFileName = value; } - } - static bool ChangeLogFileName(string AppenderName, string NewFilename) - { - log4net.Repository.ILoggerRepository RootRep; - RootRep = log4net.LogManager.GetRepository(); - foreach (log4net.Appender.IAppender iApp in RootRep.GetAppenders()) - { - if (iApp.Name.CompareTo(AppenderName) == 0 - && iApp is log4net.Appender.FileAppender) - { - log4net.Appender.FileAppender fApp = (log4net.Appender.FileAppender)iApp; - string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); - //fApp.File = folderPath + @"\VEPROMS\" + (Volian.Base.Library.VlnSettings.GetCommand("U","") + "_").TrimStart("_".ToCharArray()) + NewFilename; - fApp.File = folderPath + @"\VEPROMS\" + (Volian.Base.Library.VlnSettings.GetCommand("prefix", "") + "_").TrimStart("_".ToCharArray()) + NewFilename; - ErrorLogFileName = fApp.File; - fApp.ActivateOptions(); - return true; // Appender found and name changed to NewFilename - } - } - return false; - } - - void displayApplicability_ApplicabilityViewModeChanged(object sender, EventArgs args) - { - if (tc.SelectedDisplayTabItem == null) return; - StepPanel pnl = tc.SelectedDisplayTabItem.MyStepTabPanel.MyStepPanel; - if (pnl != null) - { - pnl.ApplDisplayMode = displayApplicability.ViewMode; - displayHistory.ApplDisplayMode = pnl.ApplDisplayMode; - //added by jcb 20130718 to support enabling/diabling create pdf button until user selects a unit - if (pnl.ApplDisplayMode > 0) - { - pnl.MyStepTabPanel.MyStepTabRibbon.btnPdfCreate.Enabled = true; - pnl.MyStepTabPanel.MyStepTabRibbon.btnCASCreate.Enabled = true; - pnl.MyStepTabPanel.MyStepTabRibbon.btnReviewCreatePDF.Enabled = true; - btnPrint.Visible = true; - } - else - { - pnl.MyStepTabPanel.MyStepTabRibbon.btnPdfCreate.Enabled = false; - pnl.MyStepTabPanel.MyStepTabRibbon.btnCASCreate.Enabled = false; - pnl.MyStepTabPanel.MyStepTabRibbon.btnReviewCreatePDF.Enabled = false; - btnPrint.Visible = false; - } - //end added by jcb 20130718 - } - } - - void tv_ViewPDF(object sender, vlnTreeViewPdfArgs args) - { - byte[] buffer; - if (args.MyWatermark != string.Empty) - buffer = PromsPrinter.WatermarkPDF(args.MyBuffer, args.MyWatermark); - else - buffer = args.MyBuffer; - string fileName = Volian.Base.Library.VlnSettings.TemporaryFolder + "\\" + args.MyFilename; - try - { - FileStream fs = new FileStream(fileName, FileMode.Create); - fs.Write(buffer, 0, buffer.Length); - fs.Close(); - System.Diagnostics.Process.Start(fileName); - } - catch (Exception ex) - { - StringBuilder sb = new StringBuilder(); - sb.AppendLine("Could not create"); - sb.AppendLine(); - sb.AppendLine(fileName + "."); - sb.AppendLine(); - sb.AppendLine("If it is open, close and retry."); - MessageBox.Show(sb.ToString(), "Error on CreatePdf",MessageBoxButtons.OK,MessageBoxIcon.Warning); -// MessageBox.Show("Could not create " + fileName + ". If it is open, close and retry.", "Error on CreatePdf"); - } - } - - void displayHistory_AnnotationRestored(AnnotationInfo restoredAnnotationInfo, ItemInfo currentItem) - { - ctrlAnnotationDetails.UpdateAnnotationGrid(currentItem); - } - - void tv_ReportAllProceduresInconsistencies(object sender, vlnTreeEventArgs args) - { - DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo; - if (dvi == null) return; - this.Cursor = Cursors.WaitCursor; - ItemInfoList iil = ItemInfoList.GetAllInconsistencies(dvi.VersionID); - Volian.Print.Library.PDFConsistencyCheckReport rpt = new Volian.Print.Library.PDFConsistencyCheckReport(Volian.Base.Library.VlnSettings.TemporaryFolder + @"\AllInconsistencies.pdf", iil); - rpt.BuildAllReport(dvi); - this.Cursor = Cursors.Default; - } - - void tv_ApproveSomeProcedures(object sender, vlnTreeEventArgs args) - { - DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo; - if (dvi == null) return; - tc.SaveCurrentEditItem(); - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(dvi.VersionID, CheckOutType.DocVersion, ref message)) - { - MessageBox.Show(this, message, "Working Draft Has Items Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion); - dvi.DocVersionConfig.SelectedSlave = args.UnitIndex; - dlgApproveProcedure dlg = new dlgApproveProcedure(dvi, true, this); - dlg.MySessionInfo = MySessionInfo; - dlg.ShowDialog(this); - displayHistory.RefreshList(); - dvi.DocVersionConfig.SelectedSlave = 0; - MySessionInfo.CheckInItem(ownerid); - } - - void tv_ApproveAllProcedures(object sender, vlnTreeEventArgs args) - { - DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo; - if (dvi == null) return; - tc.SaveCurrentEditItem(); - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(dvi.VersionID, CheckOutType.DocVersion, ref message)) - { - MessageBox.Show(this, message, "Working Draft Has Items Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion); - dvi.DocVersionConfig.SelectedSlave = args.UnitIndex; - dlgApproveProcedure dlg = new dlgApproveProcedure(dvi,this); - dlg.MySessionInfo = MySessionInfo; - dlg.ShowDialog(this); - displayHistory.RefreshList(); - dvi.DocVersionConfig.SelectedSlave = 0; - MySessionInfo.CheckInItem(ownerid); - } - - void tv_RefreshCheckedOutProcedures(object sender, vlnTreeEventArgs args) - { - OwnerInfoList.Reset(); - OwnerInfoList oil = OwnerInfoList.Get(); - Dictionary dicProcCheckedOut = new Dictionary(); - Dictionary dicDocCheckedOut = new Dictionary(); - foreach (OwnerInfo oi in oil) - { - if (oi.SessionID != MySessionInfo.SessionID && oi.OwnerType == (byte)CheckOutType.Procedure) - dicProcCheckedOut.Add(oi.OwnerItemID, oi.OwnerID); - else if (oi.SessionID != MySessionInfo.SessionID && oi.OwnerType == (byte)CheckOutType.Document) - dicDocCheckedOut.Add(oi.OwnerItemID, oi.OwnerID); - } - if (args.Node.IsExpanded) - { - foreach (TreeNode tn in args.Node.Nodes) - { - ProcedureInfo pi = (tn as VETreeNode).VEObject as ProcedureInfo; - if (pi != null && dicProcCheckedOut.ContainsKey(pi.ItemID)) - tn.ForeColor = Color.Red; - else - tn.ForeColor = Color.Black; - bool expanded = tn.IsExpanded; - if (!expanded) - tn.Expand(); - foreach (TreeNode tnn in tn.Nodes) - { - SectionInfo si = (tnn as VETreeNode).VEObject as SectionInfo; - if (si != null && si.MyContent.MyEntry != null) - { - if (dicDocCheckedOut.ContainsKey(si.MyContent.MyEntry.DocID)) - tnn.ForeColor = Color.Red; - else - tnn.ForeColor = Color.Black; - } - } - if (!expanded) - tn.Collapse(); - } - } - } - - void tv_ProcedureCheckedOutTo(object sender, vlnTreeEventArgs args) - { - ProcedureInfo pi = null; - SectionInfo si = null; - pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; - if(pi == null) - si = (args.Node as VETreeNode).VEObject as SectionInfo; - UserInfo ui = UserInfo.GetByUserID(MySessionInfo.UserID); - dlgCheckedOutProcedure cop = new dlgCheckedOutProcedure(pi, si, ui); - cop.ShowDialog(this); - tv_RefreshCheckedOutProcedures(sender, new vlnTreeEventArgs(args.Node.Parent, null, 0)); - } - - void tv_ApproveProcedure(object sender, vlnTreeEventArgs args) - { - ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; - pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex; - if (pi == null) return; - tc.SaveCurrentEditItem(pi); - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, 0); - dlgApproveProcedure dlg = new dlgApproveProcedure(pi,this); - dlg.MySessionInfo = MySessionInfo; - dlg.ShowDialog(this); - displayHistory.RefreshList(); - pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; - MySessionInfo.CheckInItem(ownerid); - } - - void tv_PrintAllProcedures(object sender, vlnTreeEventArgs args) - { - DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo; - if (dvi == null) return; - tc.SaveCurrentEditItem(); - DlgPrintProcedure prnDlg = new DlgPrintProcedure(dvi); - prnDlg.MySessionInfo = MySessionInfo; - prnDlg.SelectedSlave = args.UnitIndex; - prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - } - void tv_PrintProcedure(object sender, vlnTreeEventArgs args) - { - ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; - pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex; - if (pi == null) return; - tc.SaveCurrentEditItem(pi); - DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi); - prnDlg.MySessionInfo = MySessionInfo; - prnDlg.SelectedSlave = args.UnitIndex; -// prnDlg.Show(this); // RHM 20120925 - Center dialog over PROMS window - prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; - } - void tv_CreateContinuousActionSummary(object sender, vlnTreeEventArgs args) - { - DialogResult dr = System.Windows.Forms.DialogResult.Yes; - ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; - pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex; - if (pi == null) return; - tc.SaveCurrentEditItem(pi); - DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi, true); - prnDlg.MySessionInfo = MySessionInfo; - prnDlg.SelectedSlave = args.UnitIndex; - prnDlg.Automatic = true; - prnDlg.CreateContinuousActionSummary = true; - prnDlg.OpenAfterCreate = (dr == System.Windows.Forms.DialogResult.Yes); - prnDlg.Prefix = "CASTMP_"; // prefix the temporary procedure PDF file that is generated (to grab page numbers) - prnDlg.SetupForProcedure(); - prnDlg.CreatePDF(); - pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; - } - void RefreshDisplayHistory(object sender) - { - displayHistory.RefreshChangeList(); - } - void displayHistory_HistorySelectionChanged(object sender, DisplayHistoryEventArgs args) - { - tc.OpenItem(ItemInfo.Get(args.ItemID)); - } - void displayHistory_SummaryPrintRequest(object sender, DisplayHistoryReportEventArgs args) - { - Volian.Print.Library.PDFChronologyReport myChronoRpt = new Volian.Print.Library.PDFChronologyReport(args.ReportTitle, args.ProcedureInfo, args.AuditList, args.AnnotationList); - myChronoRpt.BuildSummary(); - } - void displayHistory_ChronologyPrintRequest(object sender, DisplayHistoryReportEventArgs args) - { - Volian.Print.Library.PDFChronologyReport myChronoRpt = new Volian.Print.Library.PDFChronologyReport(args.ReportTitle, args.ProcedureInfo, args.AuditList, args.AnnotationList); - myChronoRpt.BuildChronology(); - } - DialogResult tv_NodePSI(object sender, vlnTreeEventArgs args) - { - VETreeNode vNode = (VETreeNode)args.Node; - IVEDrillDownReadOnly veObj = vNode.VEObject; - ProcedureInfo myProc = veObj as ProcedureInfo; - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(myProc.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return DialogResult.None; - } - int ownerID = MySessionInfo.CheckOutItem(myProc.ItemID, 0); - frmPSI fpsi = new frmPSI(myProc); - DialogResult dr = fpsi.ShowDialog(this); - MySessionInfo.CheckInItem(ownerID); - return dr; - } - DialogResult tv_NodeSI(object sender, vlnTreeEventArgs args) - { - VETreeNode vNode = (VETreeNode)args.Node; - IVEDrillDownReadOnly veObj = vNode.VEObject; - // see if working draft or folder & get associated 'SI' info from its config. - // For now, do folder. - bool doFolder = true; - FolderInfo myFolder = veObj as FolderInfo; - DocVersionInfo myDV = veObj as DocVersionInfo; ; - if (myFolder == null) doFolder = false; - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(doFolder?myFolder.FolderID:myDV.VersionID, doFolder?CheckOutType.Folder:CheckOutType.DocVersion, ref message)) - { - MessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return DialogResult.None; - } - string strConfig = doFolder ? myFolder.Config : myDV.Config; - FormatInfo fi = doFolder ? myFolder.ActiveFormat : myDV.ActiveFormat; - if (fi == null) - { - MessageBox.Show("You must define a format at this level before access of Specific Information"); - return DialogResult.Cancel; - } - int ownerID = MySessionInfo.CheckOutItem(doFolder ? myFolder.FolderID : myDV.VersionID, doFolder ? CheckOutType.Folder : CheckOutType.DocVersion); - frmSI fsi = new frmSI(fi.PlantFormat.FormatData.SI, strConfig, doFolder, myFolder, myDV); - DialogResult dr = fsi.ShowDialog(this); - MySessionInfo.CheckInItem(ownerID); - return dr; - } - /// - /// Activate tmrTreeView so that the newly created Step recieves focus - /// - /// - /// - void tv_NodeInsert(object sender, vlnTreeEventArgs args) - { - tmrTreeView.Enabled = true; - } - void frmVEPROMS_Activated(object sender, EventArgs e) - { - if (ActiveControl == tc) tc.HideCaret(); - // refresh anything that pertains to external files or programs: - - // if ro.fst was 'updated' from the roeditor, enable the update ro.fst values on - // the steptabribbon. - if (tc.ShuttingDown) return; - if (SelectedStepTabPanel!=null && SelectedStepTabPanel.MyStepTabRibbon != null) - SelectedStepTabPanel.MyStepTabRibbon.SetUpdRoValBtn(SelectedStepTabPanel.MyStepTabRibbon.NewerRoFst()); - } - // Add a tree node for a procedure if this is the first procedure in the docversion, added from - // step editor (used for creating enhanced procedure in empty docversion) - void MyStepTabRibbon_AddProcToDocVersionInTree(object sender, StepTabRibbonEventArgs args) - { - tv.AdjustTree(args.Proc as ProcedureInfo); - } - void MyStepTabRibbon_PrintRequest(object sender, StepTabRibbonEventArgs args) - { - // Fix for B2013-173: - // if the user did the print by using the shortcut keys 'Ctrl-P' the arguments sent in - // is the first opened procedure rather than the active procedure. So check for this - // and if they are not the same, use the CurrentItem from the main frmVEPROMS. - ProcedureInfo piThis = null; - if (_CurrentItem != null) piThis = _CurrentItem.MyProcedure; - ProcedureInfo pi = args.Proc as ProcedureInfo; - if (piThis != null && pi.ItemID != piThis.ItemID) pi = piThis; - - //added by jcb 20130718 to support create pdf button when multiunit and user selects a unit - pi.MyDocVersion.DocVersionConfig.SelectedSlave = pi.ProcedureConfig.SelectedSlave; - //end added by jcb 20130718 - if (pi == null) return; - DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi); - //added by jcb 20130718 to support create pdf button when multiunit and user selects a unit - prnDlg.SelectedSlave = pi.ProcedureConfig.SelectedSlave == 0 ? -1 : pi.ProcedureConfig.SelectedSlave; - prnDlg.MySessionInfo = MySessionInfo; - //end added by jcb 20130718 - prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - //added by jcb 20130718 to support create pdf button when multiunit and user selects a unit - pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; - //end added by jcb 20130718 - } - void displaySearch1_PrintRequest(object sender, DisplaySearchEventArgs args) - { - Volian.Print.Library.PDFReport myReport = new Volian.Print.Library.PDFReport(args.ReportTitle, args.TypesSelected, args.MyItemInfoList, - Volian.Base.Library.VlnSettings.TemporaryFolder + @"\searchresults.pdf"); - if (args.SearchString != null) - myReport.SearchString = args.SearchString; - if (!args.ReportTitle.Contains("Annotation")) - { - int annotationCount = 0; - foreach (ItemInfo itm in args.MyItemInfoList) - annotationCount += itm.ItemAnnotationCount; - if (annotationCount > 0) - myReport.ShowAnnotations = (MessageBox.Show("Show Annotations", "Include Annotations", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes); - } - myReport.Build(); - } - - void displayLibDocs_PrintRequest(object sender, DisplayLibDocEventArgs args) - { - Volian.Print.Library.PDFReport myReport = new Volian.Print.Library.PDFReport(args.ReportTitle, args.LibDocList, Volian.Base.Library.VlnSettings.TemporaryFolder + @"\LibDocUsage.pdf"); - myReport.Build(); - } - - void displayReports_PrintRequest(object sender, DisplayReportsEventArgs args) - { - if (args.TypesSelected == "RO Usage") - { - Volian.Print.Library.PDFReport myReport = new Volian.Print.Library.PDFReport(args.ReportTitle, args.MyItemInfoList, Volian.Base.Library.VlnSettings.TemporaryFolder + @"\ROUsageReport.pdf", args.SortUsageByProcedure,args.IncludeMissingROs); - myReport.Build(); - } - else if (args.TypesSelected == "Complete RO Report") - { - Volian.Print.Library.PDFReport myReport = new Volian.Print.Library.PDFReport(args.ReportTitle, args.RODataFile, Volian.Base.Library.VlnSettings.TemporaryFolder + @"\CompleteROReport.pdf", args.RofstLookup, args.CompleteROReport, args.ConvertCaretToDelta, args.IncludeEmptyROFields); - myReport.Build(); - } - else if (args.TypesSelected == "RO Summary Report") - { - Volian.Print.Library.PDFReport myReport = new Volian.Print.Library.PDFReport(args.ReportTitle, Volian.Base.Library.VlnSettings.TemporaryFolder + @"\ROSummaryReport.pdf", args.RofstLookup, args.ROListForReport); - myReport.Build(); - - } - } - - - bool tv_InsertItemInfo(object sender, vlnTreeItemInfoInsertEventArgs args) - { - // Don't select the newly created Step. This will be handled by tmrTreeView - return tc.InsertRTBItem(args.MyItemInfo, args.StepText, args.InsertType, args.FromType, args.Type, false); - } - private bool tv_DeleteItemInfo(object sender, vlnTreeItemInfoEventArgs args) - { - if (displayHistory.MyEditItem != null && displayHistory.MyItemInfo.MyProcedure.ItemID == args.MyItemInfo.ItemID) - displayHistory.MyEditItem = null; - // bug fix B2016-005 - set MyCopyStep to null. This will take the paste options off of the tree node context menus. jsj 4-19-2016 - // B2016-105 - added null reference check -jsj - if (tc.MyCopyStep != null && args.MyItemInfo.ItemID == tc.MyCopyStep.ItemID) - tc.MyCopyStep = null; - bool rtval = tc.DeleteRTBItem(args.MyItemInfo); - // Also disable the paste options on the ribbon if it is open. jsj 4-19-2016 - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.MyStepTabPanel != null) // MyStepTabPanel will be null if the active tab is a Word Attachment - { - StepPanel pnl = tc.SelectedDisplayTabItem.MyStepTabPanel.MyStepPanel; - if (pnl != null) - pnl.MyStepTabPanel.MyStepTabRibbon.SetPasteButtons(false); - } - return rtval; - } - private bool tv_PasteItemInfo(object sender, vlnTreeItemInfoPasteEventArgs args) - { - return tc.PasteRTBItem(args.MyItemInfo, args.CopyStartID, args.PasteType, (int)args.Type); - } - private void frmVEPROMS_FormClosing(object sender, FormClosingEventArgs e) - { - tc.ShuttingDown = true; // This keeps PROMS from Hanging under certain circumstances - foreach (DisplayTabItem dti in tc.MyBar.Items) - { - if (dti.MyDSOTabPanel != null) - dti.MyDSOTabPanel.CloseDSO(); - } - _MyLog.WarnFormat("frmVEPROMS_FormClosing"); - if (MyParent == null) - { - if (MyActivityTimer != null) MyActivityTimer.Dispose(); - if (MySessionInfo != null) MySessionInfo.EndSession(); - // Save the location and size of the VE-PROMS appication for this user - if (this.WindowState == FormWindowState.Normal) - { - Settings.Default.Location = this.Location; - Settings.Default.Size = this.Size; - } - if (this.MyVersionWindowList != null) - Settings.Default.VersionWindows = this.MyVersionWindowList.ToSettings(); - Settings.Default.WindowState = this.WindowState; - Settings.Default.QATItems = ribbonControl1.QatLayout; - SaveMRU(); - //Settings.Default.Save(); - Volian.Base.Library.DebugPagination.Close(); - Volian.Base.Library.DebugText.Close(); - } - } - void frmVEPROMS_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e) - { - // Close any open documents - tc.Dispose(); - // RHM 20121010 - // Something was causing the process to remain in memory for an extended period of time - // after printing procedures. The following lines kills the process immediately. - if (MyParent == null) - { - try - { - System.Diagnostics.Process.GetCurrentProcess().Kill(); - } - catch (Exception ex) - { - _MyLog.Warn("Attempting to Close", ex); - } - } - } - // Get the "Procedures" Panel Heading (title). - // by default the heading is "Procedures" (handled in the getting from the config) - // the heading is stored in the "title" field of the folder config. - // we currently only use the "title" field for the top (VEPROMS) tree node. - private string getProcedurePanelHeading() - { - VETreeNode jj_vetn = (VETreeNode)tv.Nodes[0]; // the VEPROMS tree node - return ((FolderConfig)jj_vetn.VEObject.MyConfig).Title; // get the panel heading - } - private int getTimeout() - { - VETreeNode jj_vetn = (VETreeNode)tv.Nodes[0]; // the VEPROMS tree node - string s = ((FolderConfig)jj_vetn.VEObject.MyConfig).Timeout; // get the panel heading - int result = 30; - if (!int.TryParse(s, out result)) - result = 30; - return result; - } - - private Timer _RefreshTimer; - - public Timer RefreshTimer - { - get - { - if (_RefreshTimer == null) - { - _RefreshTimer = new Timer(); - _RefreshTimer.Interval = 20000; // - _RefreshTimer.Enabled = true; - _RefreshTimer.Tick += _RefreshTimer_Tick; - } - return _RefreshTimer; - } - } - private bool _RefreshTimerActive = false; - - public bool RefreshTimerActive - { - get { return _RefreshTimerActive; } - set { _RefreshTimerActive = value; } - } - void _RefreshTimer_Tick(object sender, EventArgs e) - { - //_MyLog.DebugFormat("_RefreshTimer_Tick {0}", RefreshTimerActive); - if (RefreshTimerActive) - { - RefreshTimerActive = false; - if (PauseRefresh) return; - RefreshChanged(this); - } - } - - private void btnStepRTF_Click(object sender, System.EventArgs e) - { - // Only simulate Threaded Timer Ping if in the debugger - if (System.Diagnostics.Process.GetCurrentProcess().ProcessName.ToLower().EndsWith("vshost")) - { - PingSession(null); - StartRefreshChanged(null); - //RefreshChanged(null); - //if (tc.MyStepRTB != null) - //{ - // StepConfig sc = new StepConfig(tc.MyStepRTB.MyItemInfo.MyContent.Config); - // if (sc.Step_SourceToBackground != null) - // OpenMyItem(sc.Step_SourceToBackground); - // if(sc.Step_BackgroundToSource != null) - // OpenMyItem(sc.Step_BackgroundToSource); - - //frmStepRTF frm = new frmStepRTF(); - //frm.MyStepRTB = tc.MyStepRTB; - //frm.Show(); - //} - } - } - - private SessionInfo _MySessionInfo; - public SessionInfo MySessionInfo - { - get { - if (_MySessionInfo == null) - _MySessionInfo = MyParent.MySessionInfo; - return _MySessionInfo; - } - set { _MySessionInfo = value; } - } - private System.Threading.Timer MyActivityTimer; - private System.Threading.Timer MyRefreshTimer; - private DevComponents.DotNetBar.ButtonItem btnManageSecurity; - private DevComponents.DotNetBar.ButtonItem btnResetSecurity; - private DevComponents.DotNetBar.ButtonItem btnAdministrativeTools; - private TabItemsToClose _MyCloseTabList = new TabItemsToClose(); - public TabItemsToClose MyCloseTabList - { - get { return _MyCloseTabList; } - } - private bool _DisablePing = false; - public bool DisablePing - { - get { return _DisablePing; } - set - { - _DisablePing = value; - _MyLog.WarnFormat("DisableSessionPing = {0}", value); - } - } - private void PingSession(Object obj) - { - MySemaphore.WaitOne(); - if (!DisablePing) - { - List myList = MySessionInfo.PingSession(); - foreach (DisplayTabItem dti in tc.MyBar.Items) - { - if (!myList.Contains(dti.OwnerID)) - MyCloseTabList.PushDTI(dti); - } - } - MySemaphore.Release(); - } - WindowsFormsSynchronizationContext mUIContext = new WindowsFormsSynchronizationContext(); - public void MyFindNodeAndExpand(object obj) - { - if (tv == null || tv.SelectedNode == null) return; - IVEDrillDownReadOnly veObj1 = ((tv.SelectedNode as VETreeNode).VEObject as IVEDrillDownReadOnly); - int id = (int)obj; - ItemInfo ii = ItemInfo.Get(id); - ii.ResetParts(); - using (Item i = Item.Get(id)) - ItemInfo.Refresh(i); - tv.RefreshRelatedNode(ii); - IVEDrillDownReadOnly veObj2 = ((tv.SelectedNode as VETreeNode).VEObject as IVEDrillDownReadOnly); - if (veObj1.ToString() != veObj2.ToString()) - { - VETreeNode tnNew = null; - foreach (VETreeNode tn in tv.SelectedNode.Nodes) - { - if (tn.VEObject.ToString() == veObj1.ToString()) - tnNew = tn; - } - if (tnNew != null) tv.SelectedNode = tnNew; - } - } - private void StartRefreshChanged(Object obj) - { - //_MyLog.Debug("StartRefreshChanged"); - //if (SkipRefresh) return; - MySemaphore.WaitOne(); - RefreshTimerActive = !PauseRefresh; - MySemaphore.Release(); - } - private void RefreshChanged(Object obj) - { - //if (SkipRefresh) return; - //MySemaphore.WaitOne(); - Int64 lastChanged = 0; - //_MyLog.WarnFormat(">>> RefreshChanged"); - try - { - //Int64 lastChanged = 0; - if (MySessionInfo.ChangedItems.Count > 0) - { - foreach (int id in MySessionInfo.ChangedItems.Keys) - { - if (ItemInfo.IsInCache(id)) - //mUIContext.Post(MyFindNodeAndExpand, id); - MyFindNodeAndExpand(id); - } - } - if (MySessionInfo.ChangedContents.Count > 0) - foreach (int id in MySessionInfo.ChangedContents.Keys) - { - if (ContentInfo.IsInCache(id)) - { - ContentInfo ci = ContentInfo.Get(id); - //if (ci.LastChangedInt64 > MySessionInfo.LastChangedInt64) - if (MySessionInfo.LastContentChange >= ci.LastChangedInt64) - { - using (Content c = Content.Get(id)) - { - ContentInfo.Refresh(c); - } - } - } - lastChanged = MySessionInfo.ChangedContents[id]; - } - MySessionInfo.ChangedItems.Clear(); - MySessionInfo.ChangedContents.Clear(); - if (lastChanged > 0) - { - MySessionInfo.LastContentChange = lastChanged; - RefreshLastChange(); - } - } - catch - { - } - //MySemaphore.Release(); - //_MyLog.DebugFormat("{0},{1:X},{2:X},{3:X}", DateTime.Now.ToLongTimeString(), lastChanged, MySessionInfo.LastContentChange, MySessionInfo.LastChangedInt64); - } - private int TotalCount(TreeNodeCollection tns) - { - int total = tns.Count; - foreach (TreeNode tn in tns) - total += TotalCount(tn.Nodes); - return total; - } - private bool ByteArrayIsEmpty(byte[] myArray) - { - for (int i = 0; i < myArray.Length; i++) - { - if (myArray[i] != 0) - return false; - } - return true; - } - - public UserInfo MyUserInfo = null; - - public VersionWindowList MyVersionWindowList; - public ContentInfo ci1; - public ContentInfo ci2; - public ContentInfo ci3; - public Timer tmrCloseTabItems; - public System.Threading.Semaphore MySemaphore = new System.Threading.Semaphore(1, 1); - private void frmVEPROMS_Load(object sender, EventArgs e) - { - InitializeSecurity(); - UpdateUser(); - btnManageSecurity = new ButtonItem("btnManageSecurity", "Manage Security"); - btnAdmin.SubItems.Add(btnManageSecurity); - btnManageSecurity.Click += new EventHandler(btnManageSecurity_Click); - //added by jcb - //menu item to reset security - //requires password to implement - btnResetSecurity = new ButtonItem("btnResetSecurity", "Reset Security"); - btnAdmin.SubItems.Add(btnResetSecurity); - btnResetSecurity.Click += new EventHandler(btnResetSecurity_Click); - //end added by jcb - //batch refresh transitions - btnAdministrativeTools = new ButtonItem("btnAdministrativeTools", "Administrative Tools"); - btnAdministrativeTools.Click += new EventHandler(btnAdministrativeTools_Click); - btnAdmin.SubItems.Add(btnAdministrativeTools); - this.superTooltip1.SetSuperTooltip(btnPrint, new SuperTooltipInfo("Create PDF", null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnExit, new SuperTooltipInfo("Exit", null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnOptions, new SuperTooltipInfo("Options", null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnManageSecurity, new SuperTooltipInfo("Manage Security", null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnResetSecurity, new SuperTooltipInfo("Reset Security",null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnAdministrativeTools, new SuperTooltipInfo("Administrative Tools",null, null, null, null, eTooltipColor.Gray)); - this.superTooltip1.SetSuperTooltip(btnUpdateFormats, new SuperTooltipInfo("Update Formats",null, null, null, null, eTooltipColor.Gray)); - //end batch refresh transitions - try - { - MyUserInfo = UserInfo.GetByUserID(VlnSettings.UserID); - } - catch - { - MessageBox.Show("This database is not compatible with this version of PROMS. The PROMS program will terminate. Please contact Volian to assist in resolution."); - Application.Exit(); - } - if (MyUserInfo == null) - { - User u = User.MakeUser(VlnSettings.UserID, "", "", "", "", "", "", "", "", "", "", DateTime.Now, VlnSettings.UserID); - Group g = Group.Get(securityRole); - Membership.MakeMembership(u, g, null, ""); - MyUserInfo = UserInfo.Get(u.UID); - } - ctrlAnnotationDetails.MyUserInfo = MyUserInfo; - DisplayRO.MyUserInfo = MyUserInfo; // set the user's security information in the properties RO panel - StepTabRibbon.MyUserInfo = MyUserInfo; // set the user's security information in the ribbon - DisplayTransition.MyUserInfo = MyUserInfo; // set the user's security information in the Transition panel - DisplayTags.MyUserInfo = MyUserInfo; // set the user's security information in the Tags panel - DisplayHistory.MyUserInfo = MyUserInfo; // set the user's security information in the History panel - DisplayApplicability.MyUserInfo = MyUserInfo; // set the user's security information in the Applicability panel - StepRTB.MyUserInfo = MyUserInfo; // set the user's security information in the StepRTB - VlnFlexGrid.MyUserInfo = MyUserInfo; // set the user's security information in the VlnFlexGrid - bool isVisible = MyUserInfo.IsAdministrator(); - btnManageSecurity.Visible = isVisible; - btnUpdateFormats.Visible = isVisible; - btnResetSecurity.Visible = isVisible; - btnAdministrativeTools.Visible = isVisible || HasSetAdministrator(MyUserInfo); - tmrCloseTabItems = new Timer(); - tmrCloseTabItems.Interval = 100; - tmrCloseTabItems.Tick += new EventHandler(tmrCloseTabItems_Tick); - tmrCloseTabItems.Enabled = true; - CloseSessionsNoLongerActive(); - MySessionInfo = SessionInfo.BeginSession(Environment.MachineName, System.Diagnostics.Process.GetCurrentProcess().Id); - if (MySessionInfo == null) - { - MessageBox.Show("This database is locked by the Administrator. Please try again later", "PROMS is Locked"); - Application.Exit(); - } - this.LastContentChange = MySessionInfo.LastContentChange; - //_MyLog.WarnFormat("Original last content change {0}", this.LastContentChange); - RefreshLastChange(); - tc.MySessionInfo = MySessionInfo; - tv.MySessionInfo = MySessionInfo; - tv.MyUserInfo = MyUserInfo; - // Initialize Caption with Server name and Database name. - SetCaption(tv.TopNode as VETreeNode); - System.Threading.AutoResetEvent autoEvent = new System.Threading.AutoResetEvent(false); - //System.Threading.TimerCallback timerDelegate = new System.Threading.TimerCallback(MySessionInfo.PingSession); - //System.Diagnostics.Process xyzzy = System.Diagnostics.Process.GetCurrentProcess(); - if (!System.Diagnostics.Debugger.IsAttached)// running in Production Mode (Not in the debugger) - { - System.Threading.TimerCallback timerDelegate = new System.Threading.TimerCallback(this.PingSession); - MyActivityTimer = new System.Threading.Timer(timerDelegate, autoEvent, 10000, 10000); - // System.Threading.Thread.Sleep(5000); - // System.Threading.TimerCallback timerRefresh = new System.Threading.TimerCallback(this.StartRefreshChanged); - // RefreshTimer.Enabled = true; - // MyRefreshTimer = new System.Threading.Timer(timerRefresh, autoEvent, 10000, 10000); - } - - //string debugMode = ConfigurationManager.AppSettings["Debug"]; - //VlnSettings.DebugMode = bool.Parse(debugMode); // set debug for the Volian.Controls.Library - // get the saved location and size of the VE-PROMS appication for this user - this.txtSearch.KeyPress += new KeyPressEventHandler(txtSearch_KeyPress); - this.txtSearch.KeyUp += txtSearch_KeyUp; // RHM20150506 Multiline ItemID TextBox - this.txtSearch.TextChanged += txtSearch_TextChanged; // RHM20150506 Multiline ItemID TextBox - this.btnNext.Click += btnNext_Click; // RHM20150506 Multiline ItemID TextBox - this.btnPrint1.Click += btnPrint1_Click; // RHM20150506 Multiline ItemID TextBox - this.btnPrevious.Click += btnPrevious_Click; // RHM20150506 Multiline ItemID TextBox - if (Settings.Default["Location"] != null) this.Location = Settings.Default.Location; - if (Settings.Default["Size"] != null) this.Size = Settings.Default.Size; - //if (Settings.Default["WindowState"] != null) this.WindowState = Settings.Default.WindowState; - //if (Settings.Default.SaveTreeviewExpanded) epProcedures.Expanded = Settings.Default.TreeviewExpanded; - // if the Procedures panel was left open from the last session, then open it - epProcedures.Expanded = Settings.Default.TreeviewExpanded; - if (Settings.Default["QATItems"] != null) ribbonControl1.QatLayout = Settings.Default.QATItems; - - // See if any database 'changes' need done and do them: - MakeDatabaseChanges(); - - _MyMRIList = MostRecentItemList.GetMRILst((System.Collections.Specialized.StringCollection)(Properties.Settings.Default["MRIList"])); - _MyMRIList.AfterRemove += new ItemInfoEvent(_MyMRIList_AfterRemove); - SetupMRU(); - // if the user selected to "Remember Last" (was "Save Expanded") then use the MRU list to - // expand the tree to the last opened procedure - //if (epProcedures.Expanded && _MyMRIList.Count > 0) - if (MyParent == null) - { - if (Settings.Default.SaveTreeviewExpanded && _MyMRIList.Count > 0) - { - tv.AdjustTree(_MyMRIList[0].MyItemInfo.MyProcedure); - tv.SelectedNode.Expand(); - SetCaption(tv.SelectedNode as VETreeNode); - } - } - //get version windows settings - MyVersionWindowList = VersionWindowList.GetVersionWindowList(Properties.Settings.Default.VersionWindows); - tc.SyncEnhancedDocuments = Properties.Settings.Default.SyncEnhancedDocuments; - // Assign the Procedure Panel's title (heading) - epProcedures.TitleText = getProcedurePanelHeading();// get the panel heading - Database.DefaultTimeout = 20 * getTimeout(); - // if the procedure panel is expanded, make sure we enable the splitter so the user can resize the panel - // Bug fix: B2013-89 - expandableSplitter1.Enabled = epProcedures.Expanded; - - displaySearch1.SetupAnnotationSearch(ctrlAnnotationDetails, tc); - AnnotationTypeInfoList.ListChanged += new AnnotationTypeInfoListEvent(AnnotationTypeInfoList_ListChanged); - ctrlAnnotationDetails.SetupAnnotations(displaySearch1); - SetupButtons(); - displayBookMarks.MyDisplayTabControl = tc; // allows bookmark selection to bring up steps/docs - office2007StartButton1.MouseDown += new MouseEventHandler(office2007StartButton1_MouseDown); - //displayRO.EnabledChanged += new EventHandler(displayRO_EnabledChanged); - tc.Enter += new EventHandler(tc_Enter); - tc.Leave += new EventHandler(tc_Leave); - tc.StatusChanged += new DisplayTabControlStatusEvent(tc_StatusChanged); - tc.ToggleRibbonExpanded += new DisplayTabControlEvent(tc_ToggleRibbonExpanded); - tc.OpenEnhancedDocument += tc_OpenEnhancedDocument; - tc.RefreshEnhancedDocument += tc_RefreshEnhancedDocument; - this.Deactivate += new EventHandler(frmVEPROMS_Deactivate); - if (VlnSettings.DemoMode) StepRTB.MyFontFamily = GetFamily("Bookman Old Style"); - displaySearch1.Enter += new EventHandler(displaySearch1_Enter); - displayHistory.Enter += new EventHandler(displayHistory_Enter); - ctrlAnnotationDetails.Enter += new EventHandler(ctrlAnnotationDetails_Enter); - Application.DoEvents(); - if (RunningNewRevision && ShowEULA() != DialogResult.OK) - { - Timer tmrShutDown = new Timer(); - tmrShutDown.Interval = 250; - tmrShutDown.Tick += new EventHandler(tmrShutDown_Tick); - tmrShutDown.Enabled = true; - } - else - tmrAutomatic.Enabled = true; - //// Shutoff UpdateFormats for Production Mode - //if (Volian.Base.Library.VlnSettings.ProductionMode) - // btnAdmin.Visible = false; - StepTabRibbon.PasteNoReturnsSetting = Properties.Settings.Default.PasteNoReturns; - StepTabRibbon.PastePlainTextSetting = Properties.Settings.Default.PastePlainText; - StepTabRibbon.SpecifiedVisioPath = Properties.Settings.Default.VisioPath; - Activate(); - //FolderInfo fi = FolderInfo.Get(1); - //FormatInfo frmI = FormatInfo.Get(fi.FormatID ?? 1); - //if (frmI.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds) - //{ - // dlgChgId dlgCI = new dlgChgId(tc); - // dlgCI.ShowDialog(this); - //} - // RHM20150506 Multiline ItemID TextBox - if (MyParent == null) - { - this.txtSearch.Text = Volian.Base.Library.VlnSettings.GetItemIDs().Replace(",", "\r\n"); - // Open First Item - if (this.txtSearch.Text.Length > 0 && !this.txtSearch.Text.Contains("\r\n")) - CurrentID = txtSearch.Text; - } - } - void tc_RefreshEnhancedDocument(object sender, ItemSelectedChangedEventArgs args) - { - // if the procedure is opened then move to the select step - if (!Properties.Settings.Default.SeparateWindows) - { - tc.RefreshItem(args.MyItemInfo); - } - else - { - int versionID = args.MyItemInfo.MyDocVersion.VersionID; - frmVEPROMS child = null; - if (EnhancedForms.ContainsKey(versionID)) - { - child = EnhancedForms[versionID]; - child.RefreshItem(args.MyItemInfo); - } - } - } - - /// - /// This looks for sessions associated with the current PC and user which are no longer active and removes them. - /// This will in-turn close any related procedure owner records and allow the user to re-open a previously open procedure. - /// - private void CloseSessionsNoLongerActive() - { - SessionInfoList sil = SessionInfoList.Get(); - int i = 0; - foreach(SessionInfo si in sil) - { - if (si.DTSEnd == null && si.MachineName == Environment.MachineName && si.UserID == Volian.Base.Library.VlnSettings.UserID) - { - try - { - System.Diagnostics.Process p = System.Diagnostics.Process.GetProcessById(si.ProcessID); - } - catch (Exception ex)// Process not found - { - Session.Delete(si.SessionID);// Remove Session record associated with a closed process - } - } - else if (si.DTSEnd == null) - i = i + 1; - } - if (i == 0)// Turn-on Change Manger if there are no active Sessions - TurnChangeManagerOn.Execute(); - } - //public bool IsEnhancedDocumentOpen(ItemInfo ii) - //{ - // if (tc.dicEnhancedDocuments.ContainsKey(ii.MyProcedure)) - // return true; - // return false; - //} - Dictionary _EnhancedForms=null; - public Dictionary EnhancedForms - { - get - { - if(_EnhancedForms == null) - { - if (_MyParent == null) - _EnhancedForms = new Dictionary(); - else - _EnhancedForms = MyParent.EnhancedForms; - } - return _EnhancedForms; - } - set { _EnhancedForms = value; } - } - void tc_OpenEnhancedDocument(object sender, ItemSelectedChangedEventArgs args) - { - if (!Properties.Settings.Default.SeparateWindows) - { - tc.OpenItem(args.MyItemInfo); - } - else - { - int versionID = args.MyItemInfo.MyDocVersion.VersionID; - if(MyParent != null && args.MyItemInfo.MyDocVersion.DocVersionConfig.MyEnhancedDocuments.Count > 0 - && !args.MyItemInfo.MyDocVersion.DocVersionConfig.MyEnhancedDocuments.HasSourcePointer) - { - MyParent.OpenItem(args.MyItemInfo); - return; - } - frmVEPROMS child = null; - if (EnhancedForms.ContainsKey(versionID)) - child = EnhancedForms[versionID]; - else - { - child = CreateEnhancedWindow(args.MyItemInfo.MyDocVersion); - } - child.OpenItem(args.MyItemInfo); - //if (!tc.dicEnhancedDocuments.ContainsKey(args.MyItemInfo.MyProcedure.MyDocVersion)) - //{ - // frmEnhanced frm = new frmEnhanced(args.MyItemInfo); - // frm.MySessionInfo = MySessionInfo; - // tc.dicEnhancedDocuments.Add(args.MyItemInfo.MyProcedure.MyDocVersion, frm); - // frm.FormClosed += frm_FormClosed; - // //frm.Show(this); When this was specified the child form displayed on top of the parent form. - // frm.Show(); // With this removed either form can be on top (user selectable - currently active form on top) - //} - //else - //{ - // frmEnhanced frm = tc.dicEnhancedDocuments[args.MyItemInfo.MyProcedure.MyDocVersion]; - // frm.MyItemInfo = args.MyItemInfo; - // frm.OpenItem(); - //} - } - } - private frmVEPROMS CreateEnhancedWindow(DocVersionInfo dvi) - { - frmVEPROMS child; - if (EnhancedForms.ContainsKey(dvi.VersionID)) - { - child = EnhancedForms[dvi.VersionID]; - } - else{ - child = new frmVEPROMS(this, dvi); - EnhancedForms.Add(dvi.VersionID, child); - child.Visible = false; - child.Show(); - foreach (VersionWindow vw in MyVersionWindowList) - if (vw.VersionID == dvi.VersionID) - { - child.SetDesktopBounds(vw.MyRectangle.Left, vw.MyRectangle.Top, vw.MyRectangle.Width, vw.MyRectangle.Height); - break; - } - child.Visible = true; - child.Move += child_MoveOrSize; - child.Resize += child_MoveOrSize; - child.FormClosed += child_FormClosed; - } - return child; - } - void child_FormClosed(object sender, FormClosedEventArgs e) - { - EnhancedForms.Remove((sender as frmVEPROMS).MyDocVersion.VersionID) ; - } - void child_MoveOrSize(object sender, EventArgs e) - { - frmVEPROMS frm = sender as frmVEPROMS; - RectangleConverter rc = new RectangleConverter(); - string str = string.Format("{0}~{1}", frm.MyDocVersion.VersionID, rc.ConvertToString(frm.DesktopBounds)); - MyVersionWindowList.Add(new VersionWindow(str)); - - } - private bool HasSetAdministrator(UserInfo ui) - { - DocVersionInfoList dvil = DocVersionInfoList.Get(); - foreach (DocVersionInfo dvi in dvil) - if (ui.IsSetAdministrator(dvi)) - return true; - return false; - - } - // RHM20150507 Table Scrunch - private TableScrunching _DefaultScrunchingRules = TableScrunching.Phase1 | TableScrunching.Phase5 | TableScrunching.Phase2 | TableScrunching.Phase3 | TableScrunching.Phase4 | TableScrunching.Phase5 | TableScrunching.Phase6 | TableScrunching.Phase7 | TableScrunching.Phase8; - void btnPrint1_Click(object sender, EventArgs e) - { - string[] ids = txtSearch.Text.Split("\r\n ".ToCharArray()); - Dictionary dicProcs= new Dictionary(); - foreach (string id in ids) - { - if(id != "") - { - ItemInfo ii = GetItemInfoFromString(id); - if (!dicProcs.ContainsKey(ii.MyProcedure.ItemID)) - dicProcs.Add(ii.MyProcedure.ItemID, ii.MyProcedure); - } - } - DialogResult dr = System.Windows.Forms.DialogResult.Yes; - //dr = MessageBox.Show("Do you want all of the PDFs to be opened?", "Open After Create", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - // RHM20150507 Table Scrunch - Rtf2Pdf.AllowTableScrunching = cbScrunch.Checked ? _DefaultScrunchingRules : TableScrunching.None; - foreach (int key in dicProcs.Keys) - { - ProcedureInfo proc = dicProcs[key]; - //Console.WriteLine("{0}", proc.ShortPath); - DlgPrintProcedure prnDlg = new DlgPrintProcedure(proc,true);//dvi.DocVersionConfig,pnum); - prnDlg.MySessionInfo = MySessionInfo; - //prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - prnDlg.Prefix = proc.MyDocVersion.VersionID.ToString() + "_"; - prnDlg.Automatic = true; - prnDlg.OpenAfterCreate = (dr == System.Windows.Forms.DialogResult.Yes); - prnDlg.SetupForProcedure(); - prnDlg.CreatePDF(); - } - } - bool ProcessingPaste = false; - private void txtSearch_TextChanged(object sender, EventArgs e) - { - if (!ProcessingPaste) // RHM20150507 Multiline ItemID TextBox - { - ProcessingPaste = true; - if (txtSearch.Text.Contains("\n")) - { - txtSearch.Text = txtSearch.Text.Trim("\r\n ".ToCharArray()); - txtSearch.SelectionStart = 0; - CurrentID = GetCurrentLine(); - } - btnNext.Visible = btnPrint1.Visible = cbScrunch.Visible = btnPrevious.Visible = txtSearch.Text.Contains("\r\n"); - ProcessingPaste = false; - } - } - void btnPrevious_Click(object sender, EventArgs e) - { - CurrentID = FindPreviousLine(); - } - void btnNext_Click(object sender, EventArgs e) - { - CurrentID = FindNextLine(); - } - public string CurrentID - { - get - { - return GetCurrentLine(); - } - set - { - if (value == null) - { - System.Media.SystemSounds.Beep.Play(); - } - else - OpenMyItem(value); - } - } - private string FindNextLine() - { - if (txtSearch.SelectionLength > 0) - txtSearch.SelectionLength = 0; - string sub = txtSearch.Text.Substring(txtSearch.SelectionStart); - if (sub.Contains("\n")) - { - txtSearch.SelectionStart += sub.IndexOf("\n") + 1; - txtSearch.ScrollToCaret(); - return GetCurrentLine(); - } - return null; - } - private string FindPreviousLine() - { - if (txtSearch.SelectionLength > 0) - txtSearch.SelectionLength = 0; - string sub = txtSearch.Text; - int selStart = 0; - if (txtSearch.SelectionStart == 0) return null; - if (txtSearch.SelectionStart > 2) - { - sub = txtSearch.Text.Substring(0, txtSearch.SelectionStart - 2); - if (sub.Contains("\n")) - selStart = sub.LastIndexOf("\r\n") + 2; - } - txtSearch.SelectionStart = selStart; - txtSearch.ScrollToCaret(); - return GetCurrentLine(); - } - void txtSearch_KeyUp(object sender, KeyEventArgs e) - { - if (e.Control && e.KeyCode == Keys.V) - { - txtSearch.SelectionStart = 0; - txtSearch.SelectionLength = txtSearch.TextLength; - txtSearch.SelectedText = Clipboard.GetText().TrimEnd("\r\n ".ToCharArray()); - btnNext.Visible = btnPrint1.Visible = cbScrunch.Visible = btnPrevious.Visible = txtSearch.Text.Contains("\r\n"); - txtSearch.SelectionLength = 0; - txtSearch.SelectionStart = 0; - txtSearch.ScrollToCaret(); - CurrentID= GetCurrentLine(); - e.Handled = true; - } - if (e.Control && e.KeyCode == Keys.A) - { - txtSearch.SelectionStart = 0; - txtSearch.SelectionLength = txtSearch.TextLength; - e.Handled = true; - } - } - private string GetCurrentLine() - { - while (txtSearch.SelectionStart > 0 && txtSearch.Text[txtSearch.SelectionStart - 1] != '\n') - txtSearch.SelectionStart--; - string sub = txtSearch.Text.Substring(txtSearch.SelectionStart).TrimStart("\r\n ".ToCharArray()); - if (sub.Contains("\r\n")) return sub.Substring(0, sub.IndexOf("\r\n")); - return sub; - } - void txtSearch_KeyPress(object sender, KeyPressEventArgs e) - { - if (e.KeyChar == '\r') - { - e.Handled = true; - if (txtSearch.Text.Length > 0) - { - if (txtSearch.Text.Contains("\r\n")) // RHM20150506 Multiline ItemID TextBox - CurrentID = GetCurrentLine(); - else - OpenMyItem(txtSearch.Text); - } - } - if (e.KeyChar == 1 || e.KeyChar==22) - { - e.Handled = true; - } - } - - private void OpenMyItem(string str) // RHM20150506 Multiline ItemID TextBox - { - ItemInfo ii = GetItemInfoFromString(str); // RHM20150506 Multiline ItemID TextBox - if (ii != null) - { - tc.OpenItem(ii); - tv.AdjustTree(ii); - } - else - MessageBox.Show(string.Format("Looking for: {0}",str),"No item found"); - } - - private static ItemInfo GetItemInfoFromString(string str) // RHM20150506 Multiline ItemID TextBox - { - ItemInfo ii = null; - int id = 0; - ContentInfo ci = null; - if (str.ToUpper().StartsWith("C=")) - { - if (int.TryParse(str.Substring(2), out id)) - ci = ContentInfo.Get(id); - if (ci != null) - ii = ci.ContentItems[0]; - } - else - { - if (int.TryParse(str, out id)) - ii = ItemInfo.Get(id); - } - return ii; - } - - void btnAdministrativeTools_Click(object sender, EventArgs e) - { - frmBatchRefresh frm = new frmBatchRefresh(); - frm.ProgressBar = bottomProgBar; - frm.MySessionInfo = MySessionInfo; - frm.ShowDialog(this); - } - - void tmrCloseTabItems_Tick(object sender, EventArgs e) - { - tmrCloseTabItems.Enabled = false; - while (MyCloseTabList.CountDTI > 0) - { - DisplayTabItem dti = MyCloseTabList.PopDTI(); - if (dti.MyDSOTabPanel != null) - dti.MyDSOTabPanel.OverrideClose = true; - tc.CloseTabItem(dti); - } - tmrCloseTabItems.Enabled = true; - } - - private void InitializeSecurity() - { - Folder f = Folder.Get(1); - GroupInfo gi = GroupInfo.Get(1); - if (f.FolderConfig.Security_Group == 0) - { - f.FolderConfig.Security_Group = gi.GID; - f.Save(); - } - securityRole = f.FolderConfig.Security_Group; - } - - private string proxyUser; - private void UpdateUser() - { - string newUser = VlnSettings.GetCommand("U", null); - if (newUser != null) - VlnSettings.UserID = newUser; - newUser = VlnSettings.GetCommand("V3Pr0m5" + GetSecurityKey(), null); - if (newUser != null) - { - VlnSettings.UserID = newUser; - UserInfo ui = UserInfo.GetByUserID(VlnSettings.UserID); - User u; - if (ui != null) - { - u = User.Get(ui.UID); - foreach (UserMembership um in u.UserMemberships) - { - if (um.EndDate == null || um.EndDate == string.Empty) - { - Membership m = Membership.Get(um.UGID); - m.EndDate = DateTime.Now.ToShortDateString(); - m.Save(); - } - } - } - else - { - u = User.MakeUser(VlnSettings.UserID, "", "", "", "", "", "", "", "", "", "", DateTime.Now, VlnSettings.UserID); - Group g = Group.GetByGroupName("Administrators"); - Membership.MakeMembership(u, g, null, ""); - } - } - if (MyParent == null) - { - if (VlnSettings.GetCommandFlag("VeauLeeAnn" + GetSecurityKey()) || VlnSettings.GetCommandFlag("VeauLeeAnnXYZZY")) - { - //pop up user list to select from - ContextMenuStrip cms = BuildUserMenu(); - while (proxyUser == null) - { - cms.Show(new System.Drawing.Point((System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - cms.Width) / 2, (System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - cms.Height) / 2)); - System.Windows.Forms.Application.DoEvents(); - } - VlnSettings.UserID = proxyUser; - } - } - lblUser.Text = VlnSettings.UserID; - lblUser.MouseDown += new MouseEventHandler(lblUser_MouseDown); - } - private string GetSecurityKey() - { - Random rnd = new Random(DateTime.Now.Year + DateTime.Now.DayOfYear * 1000); - return rnd.Next(10000).ToString(); - } - void lblUser_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Right) - { - /* -- Devin- Volian0 -- Diane- Volian0 -- Jess- Volian0 -- John- Volian0 -- Kathy- Volian0 -- Jim- JCB2-HP -- Rich- WINDOWS7-RHM -- Paul- Paul-PC -- Michelle- Michelle-PC -- Harrys Mac- WIN-04QLPEH7JKH -- Harrys PC- Harry-7100 -- Caitlin- Caitlin-PC - */ - if ("|VOLIAN0|JCB2-HP|BODINE-64|WINDOWS7-RHM|PAUL-PC|MICHELLE-PC|WIN-O4QLPEH7JKH|HARRY-7100|CAITLIN-PC|".Contains("|" + Environment.UserDomainName.ToUpper() + "|")) - { - Random rnd = new Random(DateTime.Now.Year + DateTime.Now.DayOfYear * 1000); - MessageBox.Show(this, GetSecurityKey(), "Today's Security Key"); - } - _MyLog.WarnFormat("Environment.UserName = '{0}'", Environment.UserName); - _MyLog.WarnFormat("Environment.UserDomainName = '{0}'", Environment.UserDomainName); - _MyLog.WarnFormat("Environment.MachineName = '{0}'", Environment.MachineName); - _MyLog.WarnFormat("Environment.OSVersion = '{0}'", Environment.OSVersion); - } - } - - private ContextMenuStrip BuildUserMenu() - { - System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip(); - cms.Items.Add("Choose User"); - System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem; - tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink; - tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText); - tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold); - UserInfoList uil = UserInfoList.Get(); - foreach (UserInfo ui in uil) - { - if (ui.UserMembershipCount > 0) - { - foreach (MembershipInfo mi in ui.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - string txt = string.Format("{0} - {1}", ui.UserID, mi.MyGroup.GroupName); - ToolStripItem tsi = cms.Items.Add(txt, null, new EventHandler(User_Click)); - tsi.Tag = ui; - break; - } - } - } - } - return cms; - } - - private void User_Click(object sender, EventArgs e) - { - ToolStripMenuItem tsmi = sender as ToolStripMenuItem; - if (tsmi != null) - { - UserInfo ui = tsmi.Tag as UserInfo; - proxyUser = ui.UserID; - } - } - void btnManageSecurity_Click(object sender, EventArgs e) - { - dlgManageSecurity dlg = new dlgManageSecurity(); - dlg.ShowDialog(this); - } - void btnResetSecurity_Click(object sender, EventArgs e) - { - string password = string.Empty; - if (ShowInputDialog(ref password) == DialogResult.OK) - { - if(password == "V3Pr0m5") - { - StringBuilder sb = new StringBuilder(); - sb.AppendLine("***** WARNING *****"); - sb.AppendLine(); - sb.AppendLine("This action will delete all Groups, Users and Memberships from the database."); - sb.AppendLine("This action is NOT reversible."); - sb.AppendLine("Following this action the application will terminate."); - sb.AppendLine(); - sb.AppendLine("Are you sure you want to continue?"); - if (MessageBox.Show(sb.ToString(), "Confirm Security Reset", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop) == DialogResult.Yes) - { - ResetSecurity.Execute(); - Application.Exit(); - } - } - else - MessageBox.Show("You have entered an incorrect password."); - } - } - private static DialogResult ShowInputDialog(ref string input) - { - System.Drawing.Size size = new System.Drawing.Size(200, 70); - Form inputBox = new Form(); - - inputBox.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - inputBox.ClientSize = size; - inputBox.Text = "Enter Password"; - inputBox.StartPosition = FormStartPosition.CenterScreen; - - System.Windows.Forms.TextBox textBox = new TextBox(); - textBox.Size = new System.Drawing.Size(size.Width - 10, 23); - textBox.Location = new System.Drawing.Point(5, 5); - textBox.PasswordChar = '*'; - textBox.Text = input; - inputBox.Controls.Add(textBox); - - Button okButton = new Button(); - okButton.DialogResult = System.Windows.Forms.DialogResult.OK; - okButton.Name = "okButton"; - okButton.Size = new System.Drawing.Size(75, 23); - okButton.Text = "&OK"; - okButton.Location = new System.Drawing.Point(size.Width - 80 - 80, 39); - inputBox.Controls.Add(okButton); - - Button cancelButton = new Button(); - cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - cancelButton.Name = "cancelButton"; - cancelButton.Size = new System.Drawing.Size(75, 23); - cancelButton.Text = "&Cancel"; - cancelButton.Location = new System.Drawing.Point(size.Width - 80, 39); - inputBox.Controls.Add(cancelButton); - - - DialogResult result = inputBox.ShowDialog(); - input = textBox.Text; - return result; - } - - void tc_StatusChanged(object sender, DisplayTabControlStatusEventArgs args) - { - switch (args.Type) - { - case VolianStatusType.Initialize: - ProgBarMax = args.Count; - ProgBarText = args.Text; - ProgBarValue = 0; - break; - case VolianStatusType.Update: - ProgBarText = args.Text; - ProgBarValue = args.Count; - break; - case VolianStatusType.Complete: - ProgBarText = args.Text; - ProgBarValue = 0; - break; - default: - break; - } - } - void tmrShutDown_Tick(object sender, EventArgs e) - { - (sender as Timer).Enabled = false; - this.Close(); - } - private DialogResult ShowEULA() - { - string eulaFile = string.Format(@"\{0}", VlnSettings.EULAfile); - string strEULA = System.IO.Path.GetDirectoryName(System.Reflection.Assembly.GetExecutingAssembly().Location) + eulaFile; - //string strEULA = System.Environment.CurrentDirectory + eulaFile; - frmViewTextFile ViewFile = new frmViewTextFile(strEULA, RichTextBoxStreamType.PlainText); - ViewFile.Text = "End-User License Agreement"; - ViewFile.ButtonText = "Agree"; - if (ViewFile.ShowDialog() == DialogResult.OK) - { - System.Version ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; - string thisVersion = ver.Major.ToString() + "." + ver.Minor.ToString(); - Properties.Settings.Default.LastVersion = thisVersion; - return DialogResult.OK; - } - return DialogResult.Cancel; - } - private bool RunningNewRevision - { - get - { - string lastVersion = Properties.Settings.Default.LastVersion; - System.Version ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; - string thisVersion = ver.Major.ToString() + "." + ver.Minor.ToString(); - return thisVersion != lastVersion; - } - } - void displayHistory_Enter(object sender, EventArgs e) - { - tc.HideCaret(); - } - void AnnotationTypeInfoList_ListChanged() - { - displaySearch1.SetupAnnotationSearch(ctrlAnnotationDetails, tc); - ctrlAnnotationDetails.SetupAnnotations(displaySearch1); - } - private void RunAutomatic() - { - string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray()); - bool ranAuto = false; - foreach (string parameter in parameters) - { - if(parameter.StartsWith("/P=")) - { - string[] dvstrs = parameter.Substring(3).Split(",".ToCharArray()); - foreach (string dvstr in dvstrs) - { - if (dvstr != "") - { - DocVersionInfo dvi = DocVersionInfo.Get(int.Parse(dvstr)); - if (dvi != null) - { - DlgPrintProcedure prnDlg = new DlgPrintProcedure(dvi, true); - if (dvi.MultiUnitCount == 0) - prnDlg.SelectedSlave = -1; - prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - //prnDlg.FormClosed += new FormClosedEventHandler(prnDlg_FormClosed); - //while (!_RunNext) Application.DoEvents(); - } - } - ranAuto = true; - } - } - } - if (ranAuto) - { - this.Close(); - } - } - private bool _RunNext = false; - //void prnDlg_FormClosed(object sender, FormClosedEventArgs e) - //{ - // _RunNext = true; - //} - private FontFamily GetFamily(string name) - { - foreach (FontFamily ff in FontFamily.Families) - if (ff.Name == name) return ff; - return null; - } - void tc_ToggleRibbonExpanded(object sender, EventArgs args) - { - Volian.Base.Library.vlnStackTrace.ShowStackLocal("tc_ToggleRibbonExpanded {0}", ribbonControl1.Expanded); - ribbonControl1.Expanded = !ribbonControl1.Expanded; - } - void frmVEPROMS_Deactivate(object sender, EventArgs e) - { - tc.HideCaret(); // Hide the pseudo cursor (caret) - } - void tc_Leave(object sender, EventArgs e) - { - if (tc.ShuttingDown) return; - tc.ShowCaret();// Show the pseudo cursor (caret) - } - void tc_Enter(object sender, EventArgs e) - { - tc.HideCaret();// Hide the pseudo cursor (caret) - } - void displaySearch1_Enter(object sender, EventArgs e) - { - tc.HideCaret();// Hide the pseudo cursor (caret) - } - void ctrlAnnotationDetails_Enter(object sender, EventArgs e) - { - tc.HideCaret();// Hide the pseudo cursor (caret) - } - //void displayRO_EnabledChanged(object sender, EventArgs e) - //{ - // Console.WriteLine("here"); - //} - void _MyMRIList_AfterRemove(object sender) - { - SetupMRU(); - } - private void SetupButtons() - { - if (!VlnSettings.DebugMode) - { - lblItemID.Visible = false; - btnItemInfo.Visible = false; - cmbFont.Visible = false; - btnEditItem.Visible = false; - lblResolution.Visible = false; - txtSearch.Visible = false; - lblLastChange.Visible = false; - btnStepRTF.Visible = false; - } - } - #region MRU - private MostRecentItemList _MyMRIList; - private void SetupMRU() - { - icRecentDocs.SubItems.Clear(); - if (_MyMRIList.Count > 0) - { - LabelItem lblItem = new LabelItem(); - lblItem.Text = "Recent Documents:"; - icRecentDocs.SubItems.Add(lblItem); - //icRecentDocs.SubItems.Add(); - for (int i = 0; i < _MyMRIList.Count; i++) - { - MostRecentItem mri = _MyMRIList[i]; - ButtonItem btnItem = new ButtonItem(); - string menuTitle = mri.MenuTitle.Replace("\u2011", "-").Replace("\u2572", @"\"); - if (i < 9) - btnItem.Text = string.Format("&{0}. {1}", i + 1, menuTitle); - else - btnItem.Text = string.Format(" {1}", i + 1, menuTitle); - btnItem.Tag = mri.ItemID; - btnItem.Tooltip = mri.ToolTip; - btnItem.Click += new EventHandler(btnItem_Click); - icRecentDocs.SubItems.Add(btnItem); - } - } - } - - void btnItem_Click(object sender, EventArgs e) - { - ButtonItem btnItem = (ButtonItem)sender; - MostRecentItem mri = _MyMRIList.Add((int)(btnItem.Tag)); - //SaveMRU(); - SetupMRU(); - if (mri != null) tc.OpenItem(mri.MyItemInfo); - } - private void SaveMRU() - { - if(_MyMRIList != null) Properties.Settings.Default.MRIList = _MyMRIList.ToSettings(); - Properties.Settings.Default.TreeviewExpanded = epProcedures.Expanded; - Properties.Settings.Default.Save(); - } - #endregion - #region Tree View - /// - /// Get the selected tree node's properties - /// - /// VETreeNode - bool SetupNodes(VETreeNode node) - { - if (_MyMRIList.Add(node.VEObject) != null) - SetupMRU(); - #region Sample Display Table Code - // display an exiting table in that rtf grid thing - //if ((_LastStepInfo.MyContent.Type == 20007) || (_LastStepInfo.MyContent.Type == 20009)) - //{ - // //MessageBox.Show("Source Grid"); - // //frmTable newtable1 = new frmTable(_LastStepInfo.MyContent.Text); - // //newtable1.ShowDialog(); - // //MessageBox.Show("IGrid"); - // //frmIGrid newtable2 = new frmIGrid(_LastStepInfo.MyContent.Text); - // //newtable2.ShowDialog(); - // //MessageBox.Show("GridView"); //standard Visual Studio Control - // //frmGridView newtable3 = new frmGridView(_LastStepInfo.MyContent.Text); - // //newtable3.ShowDialog(); - // MessageBox.Show("FlexCell"); - // frmFlexCell newtable4 = new frmFlexCell(_LastStepInfo.MyContent.Text); - // newtable4.ShowDialog(); - //} - #endregion - ItemInfo ii = node.VEObject as ItemInfo; - if (ii != null) tc.OpenItem(ii); - SetCaption(node); - return (ii != null); // return if successful on opening item in step editor or word - } - // The following code is used to setup the user interface depending on what - // is selected on the tree view (see vlnTreeView.cs) - void tv_NodeNew(object sender, vlnTreeEventArgs args) - { - VETreeNode vNode = (VETreeNode)args.Node; - IVEDrillDownReadOnly veObj = vNode.VEObject; - SectionInfo mySection = veObj as SectionInfo; - if (mySection != null && mySection.MyContent.MyEntry != null) - { - // if it is a word section, find the DisplayTabItem; - DisplayTabItem tabItem = tc.GetProcDisplayTabItem(mySection); - if(tabItem != null)tabItem.MyStepTabPanel.MyStepPanel.Reset(); - } - // Don't select the newly created Step. This will be handled by tmrTreeView - //SetupNodes((VETreeNode)args.Node); - } - private void tv_NodeSelect(object sender, vlnTreeEventArgs args) - { - SetupNodes((VETreeNode)args.Node); - } - private void SetCaption(VETreeNode tn) - { - StringBuilder caption = new StringBuilder(); - string sep = string.Empty; - while (tn != null) - { - if (tn.VEObject.GetType() == typeof(FolderInfo) || tn.VEObject.GetType() == typeof(DocVersionInfo)) - { - //caption.Append(sep + tn.Text); - caption.Insert(0, tn.Text + sep); - sep = " - "; - } - tn = (VETreeNode)tn.Parent; - } - caption.Insert(0,VEPROMS.CSLA.Library.Database.DBServer + sep); - this.Text = caption.ToString(); - } - void tv_OpenItem(object sender, vlnTreeItemInfoEventArgs args) - { - tc.OpenItem(args.MyItemInfo); - } - /// - /// When the treeview is clicked - a timer is set - /// This is done because the focus is returned to the treeview after the click event - /// This approach did not work and was replaced with the code below. - /// The problem was that each time the treeview was clicked, the last selected node - /// was opened again, or the edit window was repositioned. - /// If the item was deleted and another treenode expanded, the click to expand the - /// node would cause the deleted node to be selected. - /// - /// - /// - //private void tv_Click(object sender, EventArgs e) - //{ - //tv.Enabled = false; - //tmrTreeView.Enabled = true; - //} - /// - /// This opens nodes if the mouse is within the bounds of a node. - /// By using the timer, the focus can be passed to the edit window. - /// - /// - /// - void tv_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) - { - _ExpandingTree = false; - } - void tv_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) - { - if (_ExpandingTree) - { - _ExpandingTree = false; - return; - } - if (e.Button != MouseButtons.Right) - { - Point newPoint = new Point(e.X, e.Y); - VETreeNode tn = tv.GetNodeAt(newPoint) as VETreeNode; - // Check to make sure that a node has been selected and - // that the mouse is within the bounds of the node. - if (tn != null && tn.Bounds.Left < newPoint.X) - { - tv.SelectedNode = tn; - tv.Enabled = false; - tmrTreeView.Enabled = true; - } - else - { - if (tn != null && tn.Bounds.Left < newPoint.X + 30) - return; - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.SelectedItemInfo != null) - { - tv.AdjustTree(tc.SelectedDisplayTabItem.SelectedItemInfo); - tc.SelectedDisplayTabItem.Focus(); - SetCaption(tv.SelectedNode as VETreeNode); - } - } - } - } - /// - /// This event is fired from the timer after the treeview click event completes - /// - /// - /// - private void tmrTreeView_Tick(object sender, EventArgs e) - { - bool giveTvFocus = true; - tmrTreeView.Enabled = false; // Timer has now fired - VETreeNode tn = tv.SelectedNode as VETreeNode; - if (tn != null) giveTvFocus = !SetupNodes(tn); - tv.Enabled = true; - if (giveTvFocus) tv.Focus(); - } - private void tmrAutomatic_Tick(object sender, EventArgs e) - { - tmrAutomatic.Enabled = false; // Timer has now fired - RunAutomatic(); - } - private bool _ExpandingTree=false; - private void tv_BeforeExpand(object sender, TreeViewCancelEventArgs e) - { - //_MyLog.DebugFormat("tv_BeforeExpand \n{0}",Volian.Base.Library.vlnStackTrace.StackToStringLocal(2,10)); - _ExpandingTree = true; - VETreeNode tn = ((VETreeNode)e.Node); - if (MyParent == null && - Properties.Settings.Default.SeparateWindows && tn.VEObject is FolderInfo - && (tn.VEObject as FolderInfo).FolderDocVersionCount == 1 - && (tn.VEObject as FolderInfo).FolderDocVersions[0].DocVersionConfig.MyEnhancedDocuments.HasSourcePointer) - { - CreateEnhancedWindow((tn.VEObject as FolderInfo).FolderDocVersions[0]); - tn.Nodes.Clear(); - } - else - { - tn.LoadingChildrenDone += new VETreeNodeEvent(tn_LoadingChildrenDone); - tn.LoadingChildrenMax += new VETreeNodeEvent(tn_LoadingChildrenMax); - tn.LoadingChildrenValue += new VETreeNodeEvent(tn_LoadingChildrenValue); - tn.LoadingChildrenSQL += new VETreeNodeEvent(tn_LoadingChildrenSQL); - tn.LoadChildren(true); - } - } - #region Property Page and Grid - DialogResult tv_NodeOpenProperty(object sender, vlnTreePropertyEventArgs args) - { - this.Cursor = Cursors.WaitCursor; - DialogResult dr = DialogResult.Cancel; - if ((int)Settings.Default["PropPageStyle"] == (int)PropPgStyle.Grid) - { - frmPropGrid propGrid = new frmPropGrid(args.ConfigObject, args.Title); - dr = propGrid.ShowDialog(); - } - else - { - if (args.FolderConfig != null) - { - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(args.FolderConfig.MyFolder.FolderID, CheckOutType.Folder, ref message)) - { - MessageBox.Show(this, message, "Folder Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - this.Cursor = Cursors.Default; - return DialogResult.None; - } - int ownerID = MySessionInfo.CheckOutItem(args.FolderConfig.MyFolder.FolderID, CheckOutType.Folder); - frmFolderProperties frmfld = new frmFolderProperties(args.FolderConfig); - dr = frmfld.ShowDialog(); - if (dr == DialogResult.OK) - { - epProcedures.TitleText = getProcedurePanelHeading();// get the panel heading - Database.DefaultTimeout = 20 * getTimeout(); - } - MySessionInfo.CheckInItem(ownerID); - } - else if (args.DocVersionConfig != null) - { - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(args.DocVersionConfig.MyDocVersion.VersionID, CheckOutType.DocVersion, ref message)) - { - MessageBox.Show(this, message, "Working Draft Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - this.Cursor = Cursors.Default; - return DialogResult.None; - } - int ownerID = MySessionInfo.CheckOutItem(args.DocVersionConfig.MyDocVersion.VersionID, CheckOutType.DocVersion); - frmVersionsProperties frmver = new frmVersionsProperties(args.DocVersionConfig); - frmver.ProgressBar = bottomProgBar; - dr = frmver.ShowDialog(); - MySessionInfo.CheckInItem(ownerID); - } - else if (args.ProcedureConfig != null) - { - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(args.ProcedureConfig.MyProcedure.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - this.Cursor = Cursors.Default; - return DialogResult.None; - } - int ownerID = MySessionInfo.CheckOutItem(args.ProcedureConfig.MyProcedure.ItemID, CheckOutType.Procedure); - frmProcedureProperties frmproc = new frmProcedureProperties(args.ProcedureConfig); - dr = frmproc.ShowDialog(); - MySessionInfo.CheckInItem(ownerID); - } - else if (args.SectionConfig != null) - { - //// If this is a word document, close any edit sessions... - //ItemInfo ii = null; - //using (Section tmp = args.SectionConfig.MySection) - //{ - // ii = ItemInfo.Get(tmp.ItemID); - // if (!ii.IsStepSection) tc.CloseWordItem(ii); - //} - - frmSectionProperties frmsec = new frmSectionProperties(args.SectionConfig); - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(args.SectionConfig.MySection.MySectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - this.Cursor = Cursors.Default; - return DialogResult.None; - } - int ownerID; - if (args.SectionConfig.MySection.MyContent.MyEntry.MyDocument == null) - ownerID = MySessionInfo.CheckOutItem(args.SectionConfig.MySection.MySectionInfo.MyProcedure.ItemID, CheckOutType.Procedure); - else - ownerID = MySessionInfo.CheckOutItem(args.SectionConfig.MySection.MyContent.MyEntry.MyDocument.DocID, CheckOutType.Document); - dr = frmsec.ShowDialog(); - if (dr == DialogResult.OK && displayLibDocs.LibDocList != null) - { - displayLibDocs.LibDocListFillIn(tc); - displayLibDocs.SetSelectedLibDoc(); - } - MySessionInfo.CheckInItem(ownerID); - } - } - this.Cursor = Cursors.Default; - return dr; - } - #endregion - #endregion - #region ColorStuff - /// - /// Get a System.Drawing.Color from an Argb or color name - /// - /// Color Name or "[(alpha,)red,green,blue]" - /// - private static Color cGetColor(string strColor) - { - // This was copied from frmFolderProperties.CS - Color rtnColor; - if (strColor == null || strColor.Equals("")) - rtnColor = Color.White; - else - { - if (strColor[0] == '[') - { - string[] parts = strColor.Substring(1, strColor.Length - 2).Split(",".ToCharArray()); - int parts_cnt = 0; - foreach (string s in parts) - { - parts[parts_cnt] = parts[parts_cnt].TrimStart(' '); // remove preceeding blanks - parts_cnt++; - } - if (parts_cnt == 3) - rtnColor = Color.FromArgb(Int32.Parse(parts[0]), Int32.Parse(parts[1]), Int32.Parse(parts[2])); - else - rtnColor = Color.FromArgb(Int32.Parse(parts[0].Substring(2)), Int32.Parse(parts[1].Substring(2)), Int32.Parse(parts[2].Substring(2)), Int32.Parse(parts[3].Substring(2))); - } - else rtnColor = Color.FromName(strColor); - } - return rtnColor; - } - //private void SetupEditorColors(DisplayPanel vlnCSLAPanel1, TabPage pg) - //{ - // // setup color - // if (_LastFolderInfo == null) - // { - // // user didn't select a FolderInfo type of node. - // // walk up the tree to find the first FolderInfo node type - // VETreeNode tn = (VETreeNode)(tv.SelectedNode); - // while (tn != null && tn.VEObject.GetType() != typeof(FolderInfo)) - // tn = (VETreeNode)tn.Parent; - // _LastFolderInfo = (FolderInfo)(tn.VEObject); - // _LastFolder = _LastFolderInfo.Get(); - // } - - // if ((_LastFolderInfo.FolderConfig.Color_editbackground != null) && !(_LastFolderInfo.FolderConfig.Color_editbackground.Equals(""))) - // { - // vlnCSLAPanel1.ActiveColor = cGetColor(_LastFolderInfo.FolderConfig.Color_editbackground); - // } - // if ((_LastFolderInfo.FolderConfig.Default_BkColor != null) && !(_LastFolderInfo.FolderConfig.Default_BkColor.Equals(""))) - // { - // vlnCSLAPanel1.InactiveColor = _LastFolderInfo.FolderConfig.Default_BkColor; - // vlnCSLAPanel1.TabColor = vlnCSLAPanel1.InactiveColor; - // vlnCSLAPanel1.PanelColor = vlnCSLAPanel1.InactiveColor; - // pg.BackColor = vlnCSLAPanel1.InactiveColor; - // } - //} - #endregion - #region Table Insert Sample Code - // TODO: for tables - //private void btnInsTable_Click(object sender, EventArgs e) - //{ - // Point loc = btnInsTable.DisplayRectangle.Location; - // loc.X += 300; - // int top = this.Top + (btnInsTable.Size.Height * 2); - // TablePickerDlg(sender, e, loc, top); - //} - - //private void TablePickerDlg(object sender, EventArgs e, Point loc, int top) - //{ - // Accentra.Controls.TablePicker tp = new Accentra.Controls.TablePicker(); - // tp.Location = loc; - // tp.Top += top; - // tp.Show(); - // while (tp.Visible) - // { - // Application.DoEvents(); - // System.Threading.Thread.Sleep(0); - // } - // // This was used to display a dialog containing a table grid - // // using a product called Source Grid - was for demo purposes only - // // - // //if (!tp.Cancel) - // //{ - // // frmTable newtable = new frmTable(tp.SelectedRows, tp.SelectedColumns); - // // newtable.Show(); - // //} - //} - #endregion - #region Progress Bar - - /// - /// Used for the status bar in the lower left corner of the main screen - /// - /// - /// - void tn_LoadingChildrenSQL(object sender, VETreeNodeEventArgs args) - { - ProgBarText = "Loading SQL"; - } - - /// - /// Used for the status bar in the lower left corner of the main screen - /// - /// - /// - void tn_LoadingChildrenValue(object sender, VETreeNodeEventArgs args) - { - ProgBarValue = args.Value; - } - - /// - /// Used for the status bar in the lower left corner of the main screen - /// - /// - /// - void tn_LoadingChildrenMax(object sender, VETreeNodeEventArgs args) - { - //_MyLog.DebugFormat("tn_LoadingChildrenMax \n{0}", Volian.Base.Library.vlnStackTrace.StackToStringLocal(2, 10)); - ProgBarMax = args.Value; - ProgBarText = "Loading..."; - } - - /// - /// Used for the status bar in the lower left corner of the main screen - /// - /// - /// - void tn_LoadingChildrenDone(object sender, VETreeNodeEventArgs args) - { - if (VlnSettings.DebugMode) - ProgBarText = args.Info + " Seconds"; - else - ProgBarText = ""; - } - - public int ProgBarMax - { - get { return bottomProgBar.Maximum; } - set { bottomProgBar.Maximum = value; } - } - - public int ProgBarValue - { - get { return bottomProgBar.Value; } - set { bottomProgBar.Value = value; } - } - - public string ProgBarText - { - get { return bottomProgBar.Text; } - set - { - bottomProgBar.TextVisible = true; - bottomProgBar.Text = value; - } - } - - #endregion - #region Find/Replace and Search - - /// - /// Find/Replace button on the ribbon - /// Display the Find/Replace dialog - /// - /// - /// - //private void btnFindRplDlg_Click_1(object sender, EventArgs e) - //{ - // FindReplace frmFindRepl = new FindReplace(); - // frmFindRepl.Show(); - //} - - /// - /// Global Search button on the ribbon - /// Opens the Information Pannel and selects the Results tab - /// - /// - /// - //private void btnGlbSrch_Click(object sender, EventArgs e) - //{ - // toolsPanel.Expanded = true; - // toolsTabs.SelectedTab = toolstabResults; - //} - - #endregion - #region Similar Steps - - /// - /// Similar Steps button on the ribbon - /// Opens the Information Pannel and selects the Results tab - /// - /// - /// - private void btnSimStps_Click(object sender, EventArgs e) - { - //infoPanel.Expanded = true; - //infoTabs.SelectedTab = toolstabResults; - //btnSimStpsRslt.Checked = true; - } - - #endregion - #region Help/About - - /// - /// About button on the ribbon - /// Display the About dialog - /// - /// - /// - private void btnAbout_Click(object sender, EventArgs e) - { - AboutVEPROMS about = new AboutVEPROMS(); - about.ShowDialog(); - } - - /// - /// Volian Web button on the ribbon - /// display the Volian web site on a pop up form - /// - /// - /// - private void btnVlnWeb_Click(object sender, EventArgs e) - { - VlnWeb veWWW = new VlnWeb(); - veWWW.Show(); - } - - #endregion - #region Ribbon - /// - /// This Opens the treeView or opens the selected item in the TreeView - /// - /// - /// - private void btnOpen_Click(object sender, EventArgs e) - { - if (!epProcedures.Expanded) // If panel not expanded - expand it. - { - epProcedures.Expanded = true; - if (tv.Nodes.Count > 0 && tv.SelectedNode == null) - tv.SelectedNode = tv.Nodes[0]; - tv.Focus(); - } - else - { - // TODO: DeleteMe - //VETreeNode tn = (VETreeNode)(tv.SelectedNode); - tv.OpenNode(); - } - } - private void btnNew_Click(object sender, EventArgs e) - { - if (!epProcedures.Expanded) return; - VETreeNode vtn = tv.SelectedNode as VETreeNode; - if (vtn == null) return; // nothing was selected. - if (btnNew.SubItems.Count > 0) return; // submenu will be displayed - vtn.Expand(); - - // Determine type of 'new' based on tree node's object type. The - // only options here are those that would not have created, based on - // containers, a submenu (see the office2007buttonstartbutton1_click code) - FolderInfo fi = vtn.VEObject as FolderInfo; - if (fi != null) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Folder); - return; - } - - DocVersionInfo dvi = vtn.VEObject as DocVersionInfo; - if (dvi != null) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Procedure); - return; - } - - // All other types are handled with sub-menus. - - } - - /// - /// Options button on the dialog that appears when the V icon is clicked (top left of application window) - /// note that the "V icon" is also called the Office 2007 Start Button - /// - /// - /// - private void btnOptions_Click(object sender, EventArgs e) - { - frmSysOptions VeSysOpts = new frmSysOptions(); - VeSysOpts.ShowDialog(); - StepTabRibbon.PasteNoReturnsSetting = Properties.Settings.Default.PasteNoReturns; - StepTabRibbon.PastePlainTextSetting = Properties.Settings.Default.PastePlainText; - StepTabRibbon.SpecifiedVisioPath = Properties.Settings.Default.VisioPath; - tc.SyncEnhancedDocuments = Properties.Settings.Default.SyncEnhancedDocuments; - } - /// - /// Exit button on the dialog that appears when the V icon is clicked (top left of application window) - /// note that the "V icon" is also called the Office 2007 Start Button - /// - /// - /// - private void btnExit_Click(object sender, EventArgs e) - { - this.Close(); - } - #endregion - #region InfoTabRO - private void infotabRO_Click(object sender, EventArgs e) - { - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabRO; - //if (dtp == null) return; - - //displayRO.Mydvi = SelectedDVI; - displayRO.MyROFSTLookup = SelectedROFst.GetROFSTLookup(SelectedDVI); - displayRO.MyRTB = (SelectedStepTabPanel == null) ? null : - SelectedStepTabPanel.MyStepPanel.SelectedEditItem == null ? null : SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyStepRTB; - displayRO.TabControl = tc; - - displayRO.ProgressBar = bottomProgBar; - } - #endregion - #region InfoTabTransition - private void infotabTransition_Click(object sender, EventArgs e) - { - if (tc == null || tc.SelectedDisplayTabItem == null) return; - if (SelectedStepTabPanel == null) return; - displayTransition.MyRTB = SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyStepRTB; - //displayTransition.RangeColor = global::VEPROMS.Properties.Settings.Default.TransitionRangeColor; - // RHM - The follwing line was reseting the settings on the transtion panel to "not" show the currently selected transition. - //displayTransition.CurTrans = null; - } - #endregion - #region InfoTabLibDocs - private void tabItemLibDocs_Click(object sender, EventArgs e) - { - displayLibDocs.RefreshLibDocPanel(tc); - //displayLibDocs.LibDocListFillIn(tc); - } - private void tv_SectionShouldClose(object sender, vlnTreeSectionInfoEventArgs args) - { - if (!args.MySectionInfo.IsStepSection) tc.CloseWordItem(args.MySectionInfo, args.IsDeleting); - else - { - if (tc == null) return; - StepTabPanel tp = tc.GetProcedureTabPanel(args.MySectionInfo as ItemInfo); - if (tp == null) return; - DisplayTabItem ti = tp.MyDisplayTabItem; - tc.CloseTabItem(ti); - } - } - private void tv_WordSectionDeleted(object sender, WordSectionEventArgs args) - { - // is it a library document - if so and libdoc panel is visible, update lists on panel. - // entry is null if it's a table of contents. - if ((!args.MySectionInfo.IsStepSection) && (args.MySectionInfo.MyContent.MyEntry != null) && ((args.MySectionInfo.MyContent.MyEntry.MyDocument.LibTitle ?? "") != "") && (toolsPanel.Expanded)) - { - if (toolsTabs.SelectedTab == tabItemLibDocs) - { - displayLibDocs.RefreshLibDocPanel(tc); - } - } - } - #endregion - #region InfoTabTags - private void infotabTags_Click(object sender, EventArgs e) - { - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabTags; - displayTags.MyEditItem = (SelectedStepTabPanel == null) ? null : SelectedStepTabPanel.MyStepPanel.SelectedEditItem; - displayTags.Mydvi = SelectedDVI; - } - #endregion - #region InfoTabBookMarks - private void infotabBookMarks_Click(object sender, EventArgs e) - { - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabTags; - displayTags.MyEditItem = (SelectedStepTabPanel == null) ? null : SelectedStepTabPanel.MyStepPanel.SelectedEditItem; - } - #endregion - #region PanelSupport - private void tc_WordSectionClose(object sender, WordSectionEventArgs args) - { - if (!args.MySectionInfo.IsStepSection) tc.CloseWordItem(args.MySectionInfo); - } - private void tc_WordSectionDeleted(object sender, WordSectionEventArgs args) - { - // is it a library document - if so and libdoc panel is visible, update lists on panel. - if ((!args.MySectionInfo.IsStepSection) && (args.MySectionInfo.MyContent.MyEntry != null && (args.MySectionInfo.MyContent.MyEntry.MyDocument.LibTitle ?? "") != "") && (toolsPanel.Expanded)) - { - if (toolsTabs.SelectedTab == tabItemLibDocs) - { - displayLibDocs.RefreshLibDocPanel(tc); - } - } - } - private void tc_ItemPasted(object sender, vlnTreeItemInfoPasteEventArgs args) - { - // all this needs to do is refresh the libdoc display - if it is visible - // and the current item is word section, i.e. it may be a lib doc & would - // require refresh of the lib doc panel. - if (toolsTabs.SelectedTab == tabItemLibDocs && args.MyItemInfo.IsSection) - { - SectionInfo si = args.MyItemInfo as SectionInfo; - if (si != null && (si.MyContent.MyEntry.MyDocument.LibTitle ?? "") != "") displayLibDocs.RefreshLibDocPanel(tc); - } - displayHistory.RefreshChangeList(); - } - private void tc_PanelTabDisplay(object sender, StepPanelTabDisplayEventArgs args) - { - if (_SelectedDVI == null) return; - if (args.PanelTabName == "Bookmarks") - { - toolsPanel.Expanded = true; - toolsTabs.SelectedTab = toolsTabBookMarks; - if (_CurrentItem != null && !dlgFindReplace.Visible) displayBookMarks.AddBookMark(_CurrentItem); - } - else if (args.PanelTabName == "Global Search") - { - toolsPanel.Expanded = true; - toolsTabs.SelectedTab = toolstabResults; - } - else if (args.PanelTabName == "LibDocs") - { - toolsPanel.Expanded = true; - toolsTabs.SelectedTab = tabItemLibDocs; - toolsTabs.SelectedTab.PerformClick(); - } - else if (args.PanelTabName == "Annots") - { - epAnnotations.Expanded = true; - } - else if (args.PanelTabName == "Change Step Type") - { - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabTags; - displayTags.HighlightChangeStep(); - } - else if (args.PanelTabName == "Change Image Size") - { - // B2016-237 added context menu item to change image size - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabTags; - displayTags.FocusOnImageSize(); - } - else if (args.PanelTabName == "FndRpl") - { - dlgFindReplace.InApproved = (_SelectedDVI != null && _SelectedDVI.VersionType == 127); - dlgFindReplace.Mydocversion = _SelectedDVI; - dlgFindReplace.Visible = true; - dlgFindReplace.MyDisplayBookMarks = displayBookMarks; - dlgFindReplace.SetFocusToTextBox(); // bug fix: B2016-107, when Find/Replace is initially opened, set the cursor focus to the Find Text box - } - else if (args.PanelTabName == "SpellChecker") - { - SpellChecker.DoSpellCheck(); - } - else if (args.PanelTabName == "DisplayROUpdateROFST") - { - _SelectedROFst = null; - displayRO.MyROFST = SelectedROFst; // need this to update RO Tree after UpdateRofst (B2015-226) - displayRO.MyROFSTLookup = SelectedROFst.GetROFSTLookup(SelectedDVI); - displayRO.RefreshRoTree(); - // resetting the MyROFSTLookup for the search & reports panels will refresh the RO trees after UpdateRofst in each of those panels (B2015-226) - if (SelectedDVI != null) - { - displaySearch1.MyROFSTLookup = SelectedDVI.DocVersionAssociations[0].MyROFst.GetROFSTLookup(SelectedDVI); - displayReports.MyROFSTLookup = SelectedDVI.DocVersionAssociations[0].MyROFst.GetROFSTLookup(SelectedDVI); - } - } - } - private void tc_SelectedDisplayTabItemChanged(object sender, EventArgs args) - { - // If the current procedure or section in the treeview doesn't match then change the treeview selection. - //jcb added for error B2012-117 - ItemInfo tvii; - if (tv.SelectedNode == null) - tvii = null; - else - tvii = ((tv.SelectedNode as VETreeNode).VEObject) as ItemInfo; - if (tc.SelectedDisplayTabItem == null) return; - if (tc.SelectedDisplayTabItem.MyItemInfo == null) return; // library document. - if (tc.SelectedDisplayTabItem.MyItemInfo.IsProcedure) - { - if (tvii == null || tvii.IsSection || tc.SelectedDisplayTabItem.MyItemInfo.ItemID != tvii.MyProcedure.ItemID) - tv.AdjustTree(tc.SelectedDisplayTabItem.MyItemInfo); - } - else - { - if (tvii == null || tc.SelectedDisplayTabItem.MyItemInfo.ItemID != tvii.ItemID) - tv.AdjustTree(tc.SelectedDisplayTabItem.MyItemInfo); - } - - // the following line will determine if the format uses the change id feature, and if so - // either prompts the user for change id, or uses an already input one if the procedure has been - // accessed. This gets run when the user clicks on procedure tabs in the step editor. - tc.HandleChangeId(tc.SelectedDisplayTabItem.MyItemInfo, tc.SelectedDisplayTabItem); - - SetCaption(tv.SelectedNode as VETreeNode); - displayApplicability.MyDisplayTabItem = tc.SelectedDisplayTabItem; - if (tc.SelectedDisplayTabItem.MyItemInfo.MyDocVersion.DocVersionAssociationCount > 0) - displayRO.MyROFSTLookup = tc.SelectedDisplayTabItem.MyItemInfo.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(tc.SelectedDisplayTabItem.MyItemInfo.MyDocVersion); - lblUser.Text = tc.SelectedDisplayTabItem.MyUserRole; - if (tc.SelectedDisplayTabItem.MyItemInfo.MyDocVersion.MultiUnitCount > 1) - btnPrint.Visible = false; - else - btnPrint.Visible = true; - // Reset the ribbon buttons B2016-148 (ex. a copystep done in a different procedure tab my require the paste step options to be active - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.MyStepTabPanel != null) // MyStepTabPanel will be null if the active tab is a Word Attachment - { - StepPanel pnl = tc.SelectedDisplayTabItem.MyStepTabPanel.MyStepPanel; - if (pnl != null) - pnl.MyStepTabPanel.MyStepTabRibbon.SetButtonAndMenuEnabling(true); - } - } - private void tc_StepPanelModeChange(object sender, StepRTBModeChangeEventArgs args) - { - this.lblEditView.Text = args.ViewMode == E_ViewMode.Edit ? "Edit" : "View"; - this.dlgFindReplace.ToggleReplaceTab(args.ViewMode); - } - private ItemInfo _CurrentItem = null; - private StepRTB _LastStepRTB = null; - //private Timer _TmrRefreshItem = null; - //public Timer TmrRefreshItem - //{ - // get - // { - // if (_TmrRefreshItem == null) - // { - // _TmrRefreshItem = new Timer(); - // _TmrRefreshItem.Interval = 1000; // one second - // _TmrRefreshItem.Tick += _TmrRefreshItem_Tick; - // } - // return _TmrRefreshItem; - // } - //} - //private StepRTB _RefreshRTB = null; - //void _TmrRefreshItem_Tick(object sender, EventArgs e) - //{ - // _TmrRefreshItem.Enabled = false; - // if (_RefreshRTB != null) _RefreshRTB.Focus(); - //} - private void tc_ItemSelectedChanged(object sender, ItemSelectedChangedEventArgs args) - { - tc.HideTheCaret(); - //if (args.MyEditItem != null) - //Volian.Base.Library.vlnStackTrace.ShowStackLocal(2,10,"Edit item {0}, Step Panel {1}",args.MyEditItem.MyStepRTB.ContainsFocus, args.MyEditItem.MyStepPanel.ContainsFocus); - if (args != null && args.MyEditItem != null && !args.MyEditItem.MyStepPanel.ContainsFocus) return; - //if (args != null && args.MyEditItem != null && !args.MyEditItem.MyStepPanel.ContainsFocus) - //{ - // _RefreshRTB = args.MyEditItem.MyStepRTB; - // TmrRefreshItem.Enabled = true; - // return; - //} - btnFixMSWord.Visible = (args != null && ( args.MyItemInfo != null && args.MyEditItem == null)); - if (_LastStepRTB != null && !_LastStepRTB.Disposing && !_LastStepRTB.Closed) - _LastStepRTB.EditModeChanged -= new StepRTBEvent(_LastStepRTB_EditModeChanged); - _LastStepRTB = args != null && args.MyEditItem != null ? args.MyEditItem.MyStepRTB : null; - if (_LastStepRTB != null) _LastStepRTB.EditModeChanged += new StepRTBEvent(_LastStepRTB_EditModeChanged); - lblEditView.Text = " "; - if (args == null) - { - _CurrentItem = null; - ctrlAnnotationDetails.CurrentAnnotation = null; - ctrlAnnotationDetails.Annotations = null; - infotabFoldoutMaint.Visible = infotabRO.Visible = infotabTransition.Visible = infotabTags.Visible = infotabHistory.Visible = infotabApplicability.Visible = false; - ctrlAnnotationDetails.Enabled = false; - epAnnotations.Enabled = false; - epAnnotations.Expanded = false; - // When infotabTags is set to InVisible, the matching panel also needs to be set to invisible - infotabControlPanelTags.Visible = false; - displayTags.MyEditItem = null; - displayTags.Visible = false; - SelectedStepTabPanel = null; - lblItemID.Text = "No Item Selected"; - lblItemID.ForeColor = Color.Yellow; - } - else - { - lblItemID.Text = string.Format("ItemID = {0}", args.MyItemInfo.ItemID); - lblItemID.ForeColor = Color.DarkBlue; - if (_CurrentItem != args.MyItemInfo) - { - if (_CurrentItem != null) _CurrentItem.Deleted -= new ItemInfoEvent(_CurrentItem_Deleted); - _CurrentItem = args.MyItemInfo; - } - //vlnStackTrace.ShowStack("enter tc_ItemSelectedChanged {0}", _CurrentItem); - if (args.MyEditItem == null) - { - ctrlAnnotationDetails.Enabled = false; - epAnnotations.Enabled = false; - infotabFoldoutMaint.Visible = false; - infotabTransition.Visible = false; - infotabRO.Visible = false; - if (args.MyItemInfo.MyDocVersion.DocVersionAssociations != null) - { - displayRO.MyROFST = args.MyItemInfo.MyDocVersion.DocVersionAssociations[0].MyROFst; - displayRO.MyRTB = null; - infotabRO.Visible = true; - } - infotabTags.Visible = false; - infotabApplicability.Visible = false; - // Not sure why but the following line was causing a hang if - // you opened a procedure - // and then created a word section - // and then you selected the procedure "Tab" - infotabHistory.Visible = false; - displayBookMarks.MyEditItem = null; - displayFoldoutMaint.Visible = false; - //vlnStackTrace.ShowStack("enter tc_ItemSelectedChanged {0}", _CurrentItem); - } - else - { - epAnnotations.Enabled = true; - ctrlAnnotationDetails.Enabled = true; - if (args.MyEditItem.MyItemInfo.IsSection || args.MyEditItem.MyItemInfo.IsProcedure) - { - infotabRO.Visible = infotabTransition.Visible = false; - infotabTags.Visible = false; - displayTags.Visible = false; - } - else - { - infotabTags.Visible = true; - if (_LastStepRTB != null) - { - infotabRO.Visible = _LastStepRTB.MyItemInfo.MyDocVersion.DocVersionAssociationCount > 0; - infotabTransition.Visible = !_CurrentItem.IsFigure && !_CurrentItem.IsRtfRaw; - // don't allow ro insert for a non-ro figure. First check that it is visible (from above line of code), - // and allow for non-figures or ro figures (for replace of existing ro figures) - infotabRO.Visible = infotabRO.Visible && (!_CurrentItem.IsRtfRaw && (!_CurrentItem.IsFigure || (_CurrentItem.IsFigure && _CurrentItem.MyContent.MyImage == null))); - displayRO.Enabled = _LastStepRTB.EditMode || _LastStepRTB.IsRoTable; - displayTransition.Enabled = _LastStepRTB.EditMode; - } - else - infotabRO.Visible = infotabTransition.Visible = false; - - // When infotabTags is set to Visible, the matching panel also needs to be set to visible - // the other panels will appear as they are selected by the user. - infotabControlPanelTags.Visible = true; - displayTags.IsVisible = true; - } - infotabHistory.Visible = true; - if (args.MyItemInfo.MyDocVersion.MultiUnitCount > 1 && !args.MyItemInfo.IsProcedure ) - { - infotabApplicability.Visible = true; - displayApplicability.MyItemInfo = args.MyEditItem.MyItemInfo; - } - else - infotabApplicability.Visible = false; - if (args.MyEditItem.MyItemInfo.ActiveFormat != null) - { - // see if format has floating foldouts, and if so, display the panel. - if (args.MyEditItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.AlternateFloatingFoldout) - { - - displayFoldoutMaint.Visible = true; - infotabFoldoutMaint.Visible = true; - displayFoldoutMaint.Enabled = true; - displayFoldoutMaint.MyItemInfo = args.MyItemInfo; - } - } - // When infotabTags is set to Visible, it is given focus. The next line returns focus to the StepRTB - args.MyEditItem.SetFocus(); - displayTransition.MyRTB = args.MyEditItem.MyStepRTB; - - displayRO.MyRTB = args.MyEditItem.MyStepRTB; - displayBookMarks.MyEditItem = args.MyEditItem; - displayHistory.MyEditItem = args.MyEditItem; - - displayRO.ProgressBar = bottomProgBar; - - lblEditView.Text = args.MyEditItem.MyStepPanel.VwMode == E_ViewMode.Edit ? "Edit" : "View" ; - _CurrentItem.Deleted += new ItemInfoEvent(_CurrentItem_Deleted); - dlgFindReplace.MyEditItem = args.MyEditItem; - SpellChecker.MyEditItem = args.MyEditItem; - } - if (args.MyEditItem != null) - { - SelectedStepTabPanel = args.MyEditItem.MyStepPanel.MyStepTabPanel; - displayTags.Mydvi = SelectedDVI; - displayTags.MyEditItem = args.MyEditItem; - displayRO.ROTypeFilter = SelectedStepTabPanel.MyStepPanel.SelectedEditItem is Volian.Controls.Library.GridItem && (SelectedStepTabPanel.MyStepPanel.SelectedEditItem as Volian.Controls.Library.GridItem).MyFlexGrid.IsRoTable ? - E_ROValueType.Table : (SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyItemInfo.IsFigure) ? E_ROValueType.Image : E_ROValueType.Text; - if (_LastStepRTB.IsRoTable && _LastStepRTB.MyItemInfo.MyContent.ContentRoUsageCount > 0) - displayRO.CurROLink = _LastStepRTB.MyItemInfo.MyContent.ContentRoUsages[0]; - if (_LastStepRTB.IsRoFigure && _LastStepRTB.MyItemInfo.MyContent.ContentRoUsageCount > 0) - displayRO.CurROLink = _LastStepRTB.MyItemInfo.MyContent.ContentRoUsages[0]; - // if this is an enhanced step (linked from a source document), don't bring up the ro or transition panel, - // and don't allow replace on the find/replace dialog. - if (args.MyItemInfo.IsEnhancedStep) - { - // originally had these two lines to make the step properties panel/tran & ro tabs invisitble for - // enhanced steps but this was causing an error in the caret management code in StepTabPanel (Hide/ShowCaret) - //infotabTransition.Visible = false; - //infotabRO.Visible = false; - - // RHM: Had to use a timer to keep from getting into an infinite loop - // Not sure why , but tc_Leave was being called over and over again. - //KBR:TmrSetTransROInVisible.Enabled = true; - } - displayRO.SetFindDocROButton(false); - } - else - { - SelectedDVI = args.MyItemInfo.MyDocVersion; - displayRO.ROTypeFilter = E_ROValueType.All; // allow all RO types for Word attachments (but fix) - displayRO.SetFindDocROButton(true); - } - } - if (ctrlAnnotationDetails.Enabled && epAnnotations.Enabled) - { - ctrlAnnotationDetails.UpdateAnnotationGrid(_CurrentItem); - AnnotationPanelView(); - } - btnPrint.Enabled = (_CurrentItem != null); - } - /*KBR:Timer _tmrSetTransROInVisible; - public Timer TmrSetTransROInVisible - { - get - { - if (_tmrSetTransROInVisible == null) - { - _tmrSetTransROInVisible = new Timer(); - _tmrSetTransROInVisible.Enabled = false; - _tmrSetTransROInVisible.Interval = 50; - _tmrSetTransROInVisible.Tick += _tmrSetTransROInVisible_Tick; - } - return _tmrSetTransROInVisible; - } - } - void _tmrSetTransROInVisible_Tick(object sender, EventArgs e) - { - TmrSetTransROInVisible.Enabled = false; - infotabTransition.Visible = false; - infotabRO.Visible = false; - } - */ - void _LastStepRTB_EditModeChanged(object sender, EventArgs args) - { - if (_LastStepRTB.EditMode) // going into edit mode in a cell of the grid. - displayRO.Enabled = displayTransition.Enabled = _LastStepRTB.EditMode; - else // going out of edit mode in a cell of the grid. - { - if (this.ActiveControl != tc || (!_LastStepRTB.Parent.Focused && (infotabRO.IsSelected || infotabTransition.IsSelected))) return; - displayRO.Enabled = displayTransition.Enabled = _LastStepRTB.EditMode; - } - } - - void _CurrentItem_Deleted(object sender) - { - //displayBookMarks.DeleteItemBookMarkPanel(_CurrentItem); - } - #endregion - #region Annotations - /// - /// Display or hide the Annotation Details panel - /// - private void AnnotationPanelView() - { - if (ctrlAnnotationDetails.Annotations != null && ctrlAnnotationDetails.Annotations.Count != 0) - { - if (Settings.Default.AutoPopUpAnnotations) //cbAnnotationPopup.Checked - epAnnotations.Expanded = true; - else - epAnnotations.TitleStyle.BackColor1.Color = Color.Yellow; - } - else - { - if (!btnAnnoDetailsPushPin.Checked) - epAnnotations.Expanded = false; - epAnnotations.TitleStyle.BackColor1.Color = _CommentTitleBckColor; - ctrlAnnotationDetails.AnnotationText = null; - } - } - #endregion - #region LinkSupport - private void tc_LinkActiveChanged(object sender, StepPanelLinkEventArgs args) - { - // determine if any infotabs are visisble, and if it is the Transition, - // change the curitem for the transition to the current item. - if (infoPanel.Expanded == true && infoTabs.SelectedTab == infotabTransition) - { - displayTransition.CurTrans = null; - } - } - private void tc_LinkModifyTran(object sender, StepPanelLinkEventArgs args) - { - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabTransition; - if (SelectedStepTabPanel == null) return; - //displayTransition.RangeColor = global::VEPROMS.Properties.Settings.Default.TransitionRangeColor; - displayTransition.MyRTB = SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyStepRTB; - displayTransition.CurTrans = args.MyLinkText.MyTransitionInfo; - } - private void tc_LinkModifyRO(object sender, StepPanelLinkEventArgs args) - { - if (_SelectedROFst == null && (SelectedDVI == null || SelectedDVI.DocVersionAssociationCount == 0)) return; // B2016-128, not RO path associated to the working draft - if (SelectedStepTabPanel == null) return; - - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabRO; - - displayRO.MyROFSTLookup = SelectedROFst.GetROFSTLookup(SelectedDVI); - displayRO.MyRTB = SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyStepRTB; - displayRO.CurROLink = args.MyLinkText.MyRoUsageInfo; - displayRO.ROTypeFilter = SelectedStepTabPanel.MyStepPanel.SelectedEditItem is Volian.Controls.Library.GridItem && (SelectedStepTabPanel.MyStepPanel.SelectedEditItem as Volian.Controls.Library.GridItem).MyFlexGrid.IsRoTable ? - E_ROValueType.Table : (SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyItemInfo.IsFigure) ? E_ROValueType.Image: E_ROValueType.Text; - //displayRO.Mydvi = SelectedDVI; - displayRO.ProgressBar = bottomProgBar; - displayRO.TabControl = tc; - } - #endregion - #region VButton - private void office2007StartButton1_Click(object sender, EventArgs e) - { - // If the V-Button is clicked, check to see what tree node is s selected - // to set up the New submenus. The New submenus are dependent on the type of - // object selected, i.e. folder, docversion, etc. - - // reset in case previous selection changed items. - btnNew.SubItems.Clear(); - btnNew.Enabled = false; - - VETreeNode vtn = tv.SelectedNode as VETreeNode; - if (vtn == null) return; - btnNew.Enabled = true; - vtn.Expand(); - - // Folders can have either folders & docversions, but - // not a mix. - FolderInfo fi = vtn.VEObject as FolderInfo; - if (fi != null) - { - // Enable/disable the New button based on the user's security settings at the current folder level - // B2015-193 - btnNew.Enabled = UserInfo.CanCreateFolders(MyUserInfo, fi); - if (!btnNew.Enabled) return; // just return, user cannot add a new folder or workingdraft - - // if at top, 'VEPROMS', folder and childfolders below this only - // option is to create a new (sub)folder, i.e. no submenu items. - if (fi.ChildFolderCount > 0 && fi.MyParent == null) return; - - // submenu folders/docversion - if (fi.MyParent != null && UserInfo.CanCreateFolders(MyUserInfo,fi)) - { - ButtonItem fldbbtn = new ButtonItem("fldbtn", "Folder Before"); - ButtonItem fldabtn = new ButtonItem("fldabtn", "Folder After"); - btnNew.SubItems.Add(fldbbtn); - btnNew.SubItems.Add(fldabtn); - fldbbtn.Click += new EventHandler(fldbbtn_Click); - fldabtn.Click += new EventHandler(fldabtn_Click); - } - ButtonItem fldbtn = new ButtonItem("fldbtn", "Folder"); - btnNew.SubItems.Add(fldbtn); - fldbtn.Click += new EventHandler(fldbtn_Click); - - // offer adding a Working Draft only if the folder has no sub-folders and there is not already a Working Draft node - if (fi.ChildFolderCount == 0 && fi.FolderDocVersionCount == 0) - { - ButtonItem dvbtn = new ButtonItem("dvbtn", "Working Draft"); - btnNew.SubItems.Add(dvbtn); - dvbtn.Click += new EventHandler(dvbtn_Click); - } - return; - } - - // DocVersions can only have procedures, so no sub-menu - DocVersionInfo dvi = vtn.VEObject as DocVersionInfo; - if (dvi != null) - { - if (!UserInfo.CanEdit(MyUserInfo, dvi)) - btnNew.Enabled = false; // reviewers cannot create a new procedure B2015-193 - return; - } - - // Procedures can have a section added or a new procedure before - // or after. - ProcedureInfo pi = vtn.VEObject as ProcedureInfo; - if (pi != null) - { - // if user is a reviewer then don't allow adding new procedures - // bug B2015-193 - if (!UserInfo.CanEdit(MyUserInfo, pi.MyDocVersion)) - { - btnNew.Enabled = false; - return; - } - ButtonItem pbbtn = new ButtonItem("pfbtn", "Procedure Before"); - ButtonItem pabtn = new ButtonItem("pabtn", "Procedure After"); - ButtonItem sctbtn = new ButtonItem("sctbtn", "Section"); - btnNew.SubItems.Add(pbbtn); - btnNew.SubItems.Add(pabtn); - btnNew.SubItems.Add(sctbtn); - pbbtn.Click += new EventHandler(pbbtn_Click); - pabtn.Click += new EventHandler(pabtn_Click); - sctbtn.Click += new EventHandler(sctbtn_Click); - return; - } - - // Sections can have sections before, after, new subsections & if is - // a step section, can have steps - SectionInfo si = vtn.VEObject as SectionInfo; - if (si != null) - { - // if user is a reviewer then don't allow adding new sections - // bug B2015-193 - if (!UserInfo.CanEdit(MyUserInfo, si.MyDocVersion)) - { - btnNew.Enabled = false; - return; - } - ButtonItem sbbtn = new ButtonItem("sbbtn", "Section Before"); - ButtonItem sabtn = new ButtonItem("sabtn", "Section After"); - - btnNew.SubItems.Add(sbbtn); - btnNew.SubItems.Add(sabtn); - sbbtn.Click += new EventHandler(sbbtn_Click); - sabtn.Click += new EventHandler(sabtn_Click); - - if (si.IsStepSection) - { - // B2016-282: Don't allow insert of subsections off Word Section. - if (si.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) - { - ButtonItem subbtn = new ButtonItem("subbtn", "SubSection"); - btnNew.SubItems.Add(subbtn); - subbtn.Click += new EventHandler(subbtn_Click); - } - ButtonItem stpbtn = new ButtonItem("stpbtn", "New Step"); - btnNew.SubItems.Add(stpbtn); - stpbtn.Click += new EventHandler(stpbtn_Click); - } - return; - } - - // Steps can have steps before or after only. - StepInfo stpi = vtn.VEObject as StepInfo; - if (stpi != null) - { - // if user is a reviewer then don't allow adding new procedures, sections, or steps - // bug B2015-193 - if (!UserInfo.CanEdit(MyUserInfo, stpi.MyDocVersion)) - { - btnNew.Enabled = false; - return; - } - ButtonItem stpbbtn = new ButtonItem("stpbbtn", "New Step Before"); - ButtonItem stpabtn = new ButtonItem("stpabtn", "New Step After"); - btnNew.SubItems.Add(stpbbtn); - btnNew.SubItems.Add(stpabtn); - stpbbtn.Click += new EventHandler(stpbbtn_Click); - stpabtn.Click += new EventHandler(stpabtn_Click); - return; - } - btnNew.Enabled = false; // should not get this far, but just in case turn off the New button - } - - void fldabtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.FolderAfter); - } - - void fldbbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.FolderBefore); - } - - void stpabtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.StepAfter); - } - - void stpbbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.StepBefore); - } - - void subbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Section); - } - - void sabtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.SectionAfter); - } - - void sbbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.SectionBefore); - } - - void stpbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Step); - } - - void sctbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Section); - } - - void pabtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.ProcedureAfter); - } - - void pbbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.ProcedureBefore); - } - - void dvbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.DocVersion); - } - - void fldbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Folder); - } - private void btnSave_Click(object sender, EventArgs e) - { - } - #endregion - #region PanelEvents - private void infoPanel_Click(object sender, EventArgs e) - { - displayTags.MyEditItem = (SelectedStepTabPanel == null) ? null : SelectedStepTabPanel.MyStepPanel.SelectedEditItem; - displayTags.Mydvi = SelectedDVI; - } - //private void tv_SectionShouldClose(object sender, vlnTreeSectionInfoEventArgs args) - //{ - // if (!args.MySectionInfo.IsStepSection) tc.CloseWordItem(args.MySectionInfo); - //} - - private void infotabResults_Click(object sender, EventArgs e) - { - toolsPanel.Expanded = true; - InitiateSearch(true); - } - private void InitiateSearch(bool searchFocus) - { - if (toolsPanel.Expanded) - { - if (displaySearch1.Mydocversion == null)//!displaySearch1.OpenDocFromSearch) - { - if (SelectedDVI != null) - { - displaySearch1.Mydocversion = SelectedDVI; - displaySearch1.StartAdvTreeStepTypesFillIn();// B2016-258 Hang after selecting a procedure if the Step Type panel is open on the search panel - } - displaySearch1.advTreeProcSetsFillIn(searchFocus); - } - } - } - - private void toosTabReports_Click(object sender, EventArgs e) - { - toolsPanel.Expanded = true; - InitiateDisplayReports(true); - } - - private void InitiateDisplayReports(bool reportFocus) - { - if (toolsPanel.Expanded) - { - if (SelectedDVI != null) - displayReports.Mydocversion = SelectedDVI; - displayReports.advTreeProcSetsFillIn(reportFocus); - displayReports.advTreeROFillIn(reportFocus); - displayReports.SelectReferencedObjectTab(); // to enable RO selection - } - } - - private void ribbonControl1_ExpandedChanged(object sender, EventArgs e) - { - Console.WriteLine("Size {0}", ribbonControl1.Expanded); - // TODO: Need to send message to all StepTabPanels and tell them to minimize their ribbons. - tc.RibbonExpanded = ribbonControl1.Expanded; - } - - private void btnItemInfo_Click(object sender, EventArgs e) - { - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.SelectedItemInfo != null) - { - frmPropGrid pg = new frmPropGrid(tc.SelectedDisplayTabItem.SelectedItemInfo, tc.SelectedDisplayTabItem.SelectedItemInfo.ShortPath); - pg.Show(); - } - else - MessageBox.Show("Select Item First", "Item not selected", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - private void lblItemID_Click(object sender, System.EventArgs e) - { - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.SelectedItemInfo != null) - { - ItemInfo myitem = tc.SelectedDisplayTabItem.SelectedItemInfo; - FolderInfo myfolder = myitem.MyDocVersion.MyFolder; - string sep = ""; - string fPath = ""; - while (myfolder.FolderID != myfolder.ParentID) - { - fPath = myfolder.Name + sep + fPath; - sep = "/"; - myfolder = myfolder.MyParent; - } - Clipboard.Clear(); - DataObject mydo = new DataObject(DataFormats.Text, string.Format("{0} - {1}", fPath, myitem.ShortPath)); - Clipboard.SetDataObject(mydo); - } - } - private void btnFixMSWord_Click(object sender, EventArgs e) - { - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.MyDSOTabPanel != null) - { - string btnText = btnFixMSWord.Text; - btnFixMSWord.FixedSize = btnFixMSWord.Size; - btnFixMSWord.Text = "Processing ..."; - this.Cursor = Cursors.WaitCursor; - tc.SelectedDisplayTabItem.MyDSOTabPanel.FixSymbolCharacters(); - btnFixMSWord.Text = btnText; - this.Cursor = Cursors.Default; - } - } - - private void epAnnotations_Resize(object sender, EventArgs e) - { - if (epAnnotations.Expanded && !_panelExpandedChanging) - { - // if the height of the panel is smaller than the titleheight+20 - //(due to the user dragging the splitter down), then un-expand the - // panel and set the height to the titleheight+75 - if (epAnnotations.Size.Height < epAnnotations.TitleHeight + 20) - { - Size sz = new Size(epAnnotations.Size.Width, epAnnotations.TitleHeight + 75); - epAnnotations.Size = sz; - epAnnotations.Expanded = false; - } - } - } - - private void resizeVerticalExpandedPanel(object sender, EventArgs e) - { - ExpandablePanel ep = (ExpandablePanel)sender; - if (ep.Expanded && !_panelExpandedChanging) - { - // if the width of the panel is smaller than the titleheight+20 - //(due to the user dragging the splitter over), then un-expand the - // panel and set the width to the titleheight+50 - if (ep.Size.Width < ep.TitleHeight + 10) - { - Size sz = new Size(ep.TitleHeight + 50, ep.Size.Height); - ep.Size = sz; - ep.Expanded = false; - } - } - } - - private void expandPanelExpandedChanging(object sender, ExpandedChangeEventArgs e) - { - _panelExpandedChanging = true; - } - - private void toolsPanel_ExpandedChanged(object sender, ExpandedChangeEventArgs e) - { - _panelExpandedChanging = false; - expandableSplitter4.Enabled = toolsPanel.Expanded; - if (toolsPanel.Expanded) - { - InitiateSearch(true); - InitiateDisplayReports(true); - } - } - - private void epAnnotations_ExpandedChanged(object sender, ExpandedChangeEventArgs e) - { - _panelExpandedChanging = false; - expandableSplitter2.Enabled = epAnnotations.Expanded; - } - - private void epProcedures_ExpandedChanged(object sender, ExpandedChangeEventArgs e) - { - _panelExpandedChanging = false; - expandableSplitter1.Enabled = epProcedures.Expanded; - } - - private void infoPanel_ExpandedChanged(object sender, ExpandedChangeEventArgs e) - { - _panelExpandedChanging = false; - expandableSplitter3.Enabled = infoPanel.Expanded; - // if our active tab is a Word attachment, call the Click even on the RO tab - // to ensure that the RO FST is loaded. This fixes a bug where if the first thing you - // open is a Word attachment, the RO panel would not have the RO's listed. - if (infoPanel.Expanded && _CurrentItem != null && _CurrentItem.HasWordContent && infotabRO.Visible) - infotabRO_Click(sender, e); - } - #endregion - - private void btnShortCuts_Click(object sender, EventArgs e) - { - ShortcutLists scListdlg = new ShortcutLists(); - scListdlg.Show(); - } - - private void cmbFont_SelectedIndexChanged(object sender, EventArgs e) - { - StepRTB.MyFontFamily = cmbFont.SelectedValue as FontFamily; - } - - private void btnPrint_Click(object sender, EventArgs e) - { - //VETreeNode vtn = tv.SelectedNode as VETreeNode; - //DocVersionInfo dvi = vtn.VEObject as DocVersionInfo; - //while (dvi == null) - //{ - // vtn = vtn.Parent as VETreeNode; - // dvi = vtn.VEObject as DocVersionInfo; - //} - //string pnum = DisplayText.StaticStripRtfCommands(this._CurrentItem.MyProcedure.ProcedureConfig.Number).Replace("\\u8209?", "-"); - DlgPrintProcedure prnDlg = new DlgPrintProcedure(this._CurrentItem.MyProcedure);//dvi.DocVersionConfig,pnum); - prnDlg.MySessionInfo = MySessionInfo; - prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - } - - private void lblResolution_Click(object sender, EventArgs e) - { - if (this.WindowState != FormWindowState.Normal) - { - this.WindowState = FormWindowState.Normal; - } - else if (this.Size.Width != 1280) - { - this.Size = new Size(1280, 800); - } - else - { - this.Size = new Size(1024, 768); - } - } - - private void frmVEPROMS_Resize(object sender, EventArgs e) - { - lblResolution.Text = string.Format("Resolution {0} x {1}", Size.Width, Size.Height); - } - private void office2007StartButton1_MouseDown(object sender, MouseEventArgs e) - { - // Refresh the MostRecentlyUsedList - _MyMRIList.Refresh(); - SetupMRU(); - } - - private void btnEditItem_Click(object sender, EventArgs e) - { - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.MyStepTabPanel.SelectedEditItem != null) - { - frmPropGrid pg = new frmPropGrid(tc.SelectedDisplayTabItem.MyStepTabPanel.SelectedEditItem, "EditItem"); - pg.Show(); - } - else - MessageBox.Show("Select Item First", "Item not selected", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - private void btnUpdateFormat_Click(object sender, EventArgs e) - { - UpdateFormats(null); - } - - private void UpdateFormats(string mypath) - { - if (mypath == null) - { - string fmtPath = Properties.Settings.Default.FormatPath ?? ""; - DirectoryInfo di = null; - do - { - fbd.Description = "Select folder containing FmtAll and GenMacAll folders to update formats"; - fbd.SelectedPath = fmtPath; - DialogResult dr = fbd.ShowDialog(); - if (dr == DialogResult.Cancel) - { - bottomProgBar.Text = "Format Update Cancelled"; - return; - } - di = new DirectoryInfo(fbd.SelectedPath); - fmtPath = di.FullName; - } while (((fmtPath ?? "") == "") || (!di.Exists || !Directory.Exists(di.FullName + @"\fmtall") || !Directory.Exists(di.FullName + @"\genmacall"))); - Properties.Settings.Default.FormatPath = fbd.SelectedPath; - Properties.Settings.Default.Save(); - mypath = di.FullName; - } - string fmtPathAll = mypath + @"\fmtall"; - string genmacPathAll = mypath + @"\genmacall"; - Format.FormatLoaded += new FormatEvent(Format_FormatLoaded); - Format.UpdateFormats(fmtPathAll, genmacPathAll); - Format.FormatLoaded -= new FormatEvent(Format_FormatLoaded); - _MyLog.WarnFormat("Formats in {0} updated to {1}", Database.SelectedDatabase, fmtPathAll); - } - - void Format_FormatLoaded(object sender, FormatEventArgs args) - { - if (args.Status.EndsWith("Formats to Load")) - { - bottomProgBar.Value = 0; - bottomProgBar.Maximum = int.Parse(args.Status.Split(" ".ToCharArray())[0]); - } - else - { - if (args.Status.StartsWith("Error")) - MessageBox.Show(args.Status, "Error Loading Format", MessageBoxButtons.OK, MessageBoxIcon.Error); - else if (!args.Status.Contains("SubFormat")) bottomProgBar.Value++; - } - bottomProgBar.Text = args.Status; - bottomProgBar.TextVisible = true; - Application.DoEvents(); - Console.WriteLine(args.Status); - } - - private void btnSendErrorLog_Click(object sender, EventArgs e) - { - - frmSendErrorLog frm = new frmSendErrorLog(Properties.Settings.Default.OutlookEmail, Properties.Settings.Default["SMTPServer"].ToString(), Properties.Settings.Default["SMTPUser"].ToString(),ErrorLogFileName); - if (frm.ShowDialog(this) == DialogResult.OK) - { - Properties.Settings.Default.OutlookEmail = frm.OutlookEmail; - Properties.Settings.Default.SMTPServer = frm.SMTPServer; - Properties.Settings.Default.SMTPUser = frm.SMTPUser; - Properties.Settings.Default.Save(); - MessageBox.Show("PROMS Error Log successfully sent to Volian support"); - } - } - } - #region Lock stuff / used for multi-user support - public class TabItemsToClose : Stack - { - public void PushDTI(DisplayTabItem dti) - { - lock (this) - { - if(!this.Contains(dti)) - this.Push(dti); - } - } - public DisplayTabItem PopDTI() - { - lock (this) - { - return this.Pop(); - } - } - public int CountDTI - { - get - { - lock (this) - { - return this.Count; - } - } - } - } - #endregion - public class VersionWindow - { - private int _VersionID; - public int VersionID - { - get { return _VersionID; } - set { _VersionID = value; } - } - private int _DBId; - public int DBId - { - get { return _DBId; } - set { _DBId = value; } - } - private Rectangle _MyRectangle; - public Rectangle MyRectangle - { - get { return _MyRectangle; } - set { _MyRectangle = value; } - } - public override string ToString() - { - RectangleConverter rc = new RectangleConverter(); - return string.Format("{0}~{1}", _VersionID, rc.ConvertToString(_MyRectangle)); - } - public VersionWindow(string str) - { - string[] parts = str.Split('~'); - _VersionID = int.Parse(parts[0]); - RectangleConverter rc = new RectangleConverter(); - _MyRectangle = (Rectangle)rc.ConvertFromString(parts[1]); - } - } - public class VersionWindowList : List - { - public static VersionWindowList GetVersionWindowList(System.Collections.Specialized.StringCollection list) - { - VersionWindowList vwl = new VersionWindowList(); - if (list != null) - { - foreach (string str in list) - vwl.Add(new VersionWindow(str)); - } - return vwl; - } - public System.Collections.Specialized.StringCollection ToSettings() - { - if (Count == 0) return null; - System.Collections.Specialized.StringCollection retval = new System.Collections.Specialized.StringCollection(); - foreach (VersionWindow vw in this) - retval.Add(vw.ToString()); - return retval; - } - public new void Add(VersionWindow versionWindow) - { - foreach (VersionWindow vw in this) - { - if (vw.VersionID == versionWindow.VersionID) - { - this.Remove(vw); - break; - } - } - base.Add(versionWindow); - } - } - -} diff --git a/PROMS/PROMS/Volian.Controls.Library/StepRTB.cs b/PROMS/PROMS/Volian.Controls.Library/StepRTB.cs deleted file mode 100644 index 8f7f9df7..00000000 --- a/PROMS/PROMS/Volian.Controls.Library/StepRTB.cs +++ /dev/null @@ -1,3705 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.IO; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; - -namespace Volian.Controls.Library -{ - public delegate void StepRTBEvent(object sender, EventArgs args); - public delegate void StepRTBCursorKeysEvent(object sender, KeyEventArgs args); - public delegate void StepRTBCursorMovementEvent(object sender, StepRTBCursorMovementEventArgs args); - public delegate void StepRTBModeChangeEvent(object sender, StepRTBModeChangeEventArgs args); - public delegate void StepRTBMenuEvent(object sender, StepRTBMenuEventArgs args); - public delegate void StepRTBTableWidthEvent(object sender, StepRTBTableWidthEventArgs args); - public delegate bool StepRTBBooleanEvent(object sender, EventArgs args); - public delegate void StepRTBLocationEvent(object sender, StepRTBLocationEventArgs args); - public delegate void StepRTBMouseEvent(object sender, MouseEventArgs args); - public delegate void StepRTBRoEvent(object sender, StepRTBRoEventArgs args); - //public delegate void StepRTBMouseWheelEvent(object sender, MouseEventArgs args); - public partial class StepRTB : RichTextBox // , IStepRTB - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - private bool _Finalized = false; - ~StepRTB() - { - if (!_Finalized) _CountFinalized++; - _Finalized = true; - } - #region Events - public event StepRTBRoEvent RoInsert; - public void OnRoInsert(object sender, StepRTBRoEventArgs args) - { - if (RoInsert != null) RoInsert(sender, args); - } - public event StepRTBEvent ReturnToEditor; - public void OnReturnToEditor(object sender, EventArgs args) - { - if (ReturnToEditor != null) ReturnToEditor(sender, args); - } - public event StepRTBEvent EditModeChanged; - public void OnEditModeChanged(object sender, EventArgs args) - { - if (EditModeChanged != null) EditModeChanged(sender, args); - } - public event StepRTBEvent DoSaveContents; - public void OnDoSaveContents(object sender, EventArgs args) - { - if (DoSaveContents != null) DoSaveContents(sender, args); - } - public event StepRTBMouseEvent DoMouseWheel; - public void OnDoMouseWheel(object sender, MouseEventArgs args) - { - if (DoMouseWheel != null) DoMouseWheel(sender, args); - } - public event StepRTBLocationEvent OpenContextMenu; - public void OnOpenContextMenu(object sender, StepRTBLocationEventArgs args) - { - if (OpenContextMenu != null) OpenContextMenu(sender, args); - } - public event StepRTBEvent CopyStep; - public void OnCopyStep(object sender, EventArgs args) - { - if (CopyStep != null) CopyStep(sender, args); - } - public event StepRTBBooleanEvent CheckClipboard; - public bool OnCheckClipboard(object sender, EventArgs args) - { - if (CheckClipboard != null) return CheckClipboard(sender, args); - return false; - } - public event StepRTBCursorKeysEvent EnterKeyPressed; - public void OnEnterKeyPressed(object sender, KeyEventArgs args) - { - if (EnterKeyPressed != null) EnterKeyPressed(sender, args); - } - public event StepRTBEvent ToggleChangeBar; // shortcut key - public void OnToggleChangeBar(object sender, EventArgs args) - { - if (ToggleChangeBar != null) ToggleChangeBar(sender, args); - } - public event StepRTBEvent ToggleContinuousActionSummary; // shortcut key - public void OnToggleContinuousActionSummary(object sender, EventArgs args) - { - if (ToggleContinuousActionSummary != null) ToggleContinuousActionSummary(sender, args); - } - public event StepRTBEvent TogglePlaceKeeper; // shortcut key - public void OnTogglePlaceKeeper(object sender, EventArgs args) - { - if (TogglePlaceKeeper != null) TogglePlaceKeeper(sender, args); - } - public event StepRTBEvent TogglePlaceKeeperContAct; // shortcut key - public void OnTogglePlaceKeeperContAct(object sender, EventArgs args) - { - if (TogglePlaceKeeperContAct != null) TogglePlaceKeeperContAct(sender, args); - } - public event StepRTBEvent ToggleSuperScript; // shortcut key <=> - public void OnToggleSuperScript(object sender, EventArgs args) - { - if (ToggleSuperScript != null) ToggleSuperScript(sender, args); - } - public event StepRTBEvent ToggleSubScript; // shortcut key <=> - public void OnToggleSubScript(object sender, EventArgs args) - { - if (ToggleSubScript != null) ToggleSubScript(sender, args); - } - public event StepRTBEvent InsertPgBrk; // short key - public void OnInsertPgBrk(object sender, EventArgs args) - { - if (InsertPgBrk != null) InsertPgBrk(sender, args); - } - public event StepRTBEvent OpenAnnotations; - public void OnOpenAnnotations(object sender, EventArgs args) - { - if (OpenAnnotations != null) OpenAnnotations(sender, args); - } - public event StepRTBBooleanEvent IsNotCurrentSelection; - public bool OnIsNotCurrentSelection(object sender, EventArgs args) - { - if (IsNotCurrentSelection != null) return IsNotCurrentSelection(sender, args); - return false; - } - public event StepRTBTableWidthEvent AdjustTableWidth; - public void OnAdjustTableWidth(object sender, StepRTBTableWidthEventArgs args) - { - if (AdjustTableWidth != null) AdjustTableWidth(sender, args); - } - public event StepRTBMenuEvent SetMenu; - private void OnSetMenu(object sender, StepRTBMenuEventArgs args) - { - if (SetMenu != null) SetMenu(sender, args); - } - public event StepRTBEvent RTBSelectionChanged; - private void OnRTBSelectionChanged(object sender, EventArgs args) - { - if (RTBSelectionChanged != null) RTBSelectionChanged(sender, args); - } - public event StepRTBEvent LinkLocationsChanged; - private void OnLinkLocationChanged(object sender, EventArgs args) - { - if (LinkLocationsChanged != null) LinkLocationsChanged(sender, args); - } - public event StepRTBEvent RTBRangeStatusChanged; - private void OnRTBRangeStatusChanged(object sender, EventArgs args) - { - if (RTBRangeStatusChanged != null) RTBRangeStatusChanged(sender, args); - } - public event StepRTBCursorKeysEvent CursorKeyPress; - private void OnCursorKeyPress(object sender, KeyEventArgs args) - { - if (CursorKeyPress != null) CursorKeyPress(sender, args); - } - public event StepRTBCursorMovementEvent CursorMovement; - private void OnCursorMovement(object sender, StepRTBCursorMovementEventArgs args) - { - if (CursorMovement != null) CursorMovement(sender, args); - } - //public event StepRTBModeChangeEvent ModeChange; - //private void OnModeChange(object sender, StepRTBModeChangeEventArgs args) - //{ - // //_MyModeChangeEventArgs = args; - // if (ModeChange != null) ModeChange(sender, args); - // else MessageBox.Show("StepRTB - no mode change defined"); - //} - //public event StepRTBMouseWheelEvent MouseWheel; - //private void OnMouseWheel(object sender, MouseEventArgs args) - //{ - // if (MouseWheel != null) MouseWheel(sender, args); - //} - - /// - /// This event is not raised during all the in-between changes for link deletions - /// - public event StepRTBEvent RTBTextChanged; - private void OnRTBTextChanged(object sender, EventArgs args) - { - if (RTBTextChanged != null) RTBTextChanged(sender, args); - } - #endregion - #region Properties and Variables - - public bool IsRoTable - { - get { return (Parent is VlnFlexGrid && (Parent as VlnFlexGrid).IsRoTable); } - } - public bool HasVScroll - { - get - { - return RTBAPI.HasVertScroll(this); - } - - } - public bool HasHScroll - { - get - { - return RTBAPI.HasHorzScroll(this); - } - - } - private bool _EditMode = true; - /// - /// Allows insert of links. If false, don't allow selection of links. - /// - public bool EditMode - { - get { return _EditMode; } - set - { - _EditMode = value; - OnEditModeChanged(this, new EventArgs()); - } - } - private static string _MySymbolFontName; - public static string MySymbolFontName - { - get { return StepRTB._MySymbolFontName; } - set { StepRTB._MySymbolFontName = value; } - } - private static FontFamily _MyFontFamily = null; - public static FontFamily MyFontFamily - { - get { return StepRTB._MyFontFamily; } - set - { - _MyFontFamily = value; - if (value != null) - { - Font font; - if (value.IsStyleAvailable(FontStyle.Regular)) - font = new Font(value, 10); - else if (value.IsStyleAvailable(FontStyle.Bold)) - font = new Font(value, 10, FontStyle.Bold); - else // (value.IsStyleAvailable(FontStyle.Italic)) - font = new Font(value, 10, FontStyle.Italic); - using (StepRTB srtb = new StepRTB()) - { - if (srtb.FontIsFixed(font)) MySymbolFontName = "FreeMono"; // FreeMono is now used for the edit screen only. VESymbFix and Consolas are used for printing - else MySymbolFontName = "Arial Unicode MS"; - } - } - else - { - MySymbolFontName = null; - } - } - } - // use newer rich text box.... - //[DllImport("kernel32.dll", CharSet = CharSet.Auto)] - //static extern IntPtr LoadLibrary(string lpFileName); - //protected override CreateParams CreateParams - //{ - // get - // { - // CreateParams prams = base.CreateParams; - // if (LoadLibrary("msftedit.dll") != IntPtr.Zero) - // { - // //prams.ExStyle |= 0x020; // transparent - - // prams.ClassName = "RICHEDIT50W"; - // } - // return prams; - // } - //} - private E_FieldToEdit _FieldToEdit = E_FieldToEdit.StepText; - public E_FieldToEdit FieldToEdit - { - get { return _FieldToEdit; } - set { _FieldToEdit = value; } - } - private string _RtfPrefix; // contains Font table and styles (bold/underline/italics) for rtb from step style - public string RtfPrefixForSymbols - { - get - { - if (_RtfPrefix == null) - { - StringBuilder selectedRtfSB = new StringBuilder(); - AddFontTable(selectedRtfSB, FormatFont, FontIsFixed(FormatFont)); - _RtfPrefix = selectedRtfSB.ToString(); - } - return _RtfPrefix + @"\f1\fs" + FormatFont.SizeInPoints * 2 + " "; - } - } - public string RtfPrefix - { - get - { - if (_RtfPrefix == null) - { - StringBuilder selectedRtfSB = new StringBuilder(); - AddFontTable(selectedRtfSB, FormatFont, FontIsFixed(FormatFont)); - _RtfPrefix = selectedRtfSB.ToString(); - } - return _RtfPrefix;// +@"{\colortbl ;\red255\green0\blue0;}"; - } - } - // August 5, 2009 - KBR & RHM: - // Insert/Overwrite will be developed later if needed. various issues - // were found during initial development that made its scope larger than - // expected. Problems were related to having overstrike on in the following - // cases: - // 1) left arrow when on link - positions after link - // 2) left arrow and after link - does not move - // 3) shift left arrow does not move past links correctly and also, first - // shift left arrow looks more like insert mode. - // private bool _OverWrite; - // _IsDirty compares the original rtf to the current rtf from the - // richtextbox to see if a change was made. - public bool IsDirty - { - get { return OrigRTF != Rtf; } - } - private bool _InitializingRTB; - private bool _IsExperimenting = false; - public bool IsExperimenting - { - get { return _IsExperimenting; } - set { _IsExperimenting = value; } - } - private IContainer _Container = null; - private string _MyClassName=string.Empty; - public string MyClassName - { - get { if (_MyClassName == string.Empty)_MyClassName = CreateParams.ClassName; return _MyClassName; } - set { _MyClassName = value; } - } - //private E_EditPrintMode _epMode = E_EditPrintMode.Edit; - //public E_EditPrintMode EpMode - //{ - // get { return _epMode; } - // set { - // if (value == E_EditPrintMode.Print) Console.WriteLine(""); - // _epMode = value; } - //} - private E_ViewMode _vwMode = E_ViewMode.Edit; - public E_ViewMode VwMode - { - get { return _vwMode; } - set { _vwMode = value; } - } - private VE_Font _MyStyleFont; - public VE_Font MyStyleFont - { - get - { - if (_MyStyleFont == null) _MyStyleFont = MyItemInfo.GetItemFont(); - return _MyStyleFont; - } - } - private bool _ActiveMode = false; - public bool ActiveMode - { - get { return _ActiveMode; } - set { _ActiveMode = value; } - } - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get - { - if (_MyItemInfo == null && Parent is EditItem) - _MyItemInfo = (Parent as EditItem).MyItemInfo; - else if (_MyItemInfo == null && Parent != null && Parent.Parent is EditItem) - _MyItemInfo = (Parent.Parent as EditItem).MyItemInfo; - return _MyItemInfo; - } - set { _MyItemInfo = value; } - } - private string _OrigRTF; - public string OrigRTF - { - get { return _OrigRTF; } - set { _OrigRTF = value; } - } - private Font _FormatFont; - public Font FormatFont - { - get - { - if (_FormatFont == null) - { - Font formatFont; - if (MyItemInfo != null) - formatFont = MyItemInfo.GetItemFont().WindowsFont; // OrigDisplayText.TextFont.WindowsFont; - else - formatFont = Font; - if (MyItemInfo != null && (MyItemInfo.IsTable || MyItemInfo.IsFigure)) - _FormatFont = formatFont; - else - { - //if (VlnSettings.DebugMode || VlnSettings.ProductionMode) - _FormatFont = new Font(MyFontFamily == null ? formatFont.FontFamily : MyFontFamily, formatFont.Size, formatFont.Style); - //else - // _FormatFont = new Font("Bookman Old Style", formatFont.Size, formatFont.Style); - // TODO: Release Mode - //Font = _origDisplayText.TextFont.WindowsFont; // font defined in plant's format - } - } - // We found that the characters in the Letter Gothic font do not all use the same spacing. - // Also, the character spacing is even more different between screen resolutions. - // But the Letter Gothic font will print just fine. - // We also found that the Letter Gothic Tall font works just fine on the screen, the only difference - // is that the characters are a little bit taller. - // So we decided to use the Letter Gothic Tall font for the screen display any time that Letter Gothic is used. - if (_FormatFont.Name.ToUpper().Equals("LETTER GOTHIC")) - _FormatFont = new Font("Letter Gothic Tall", _FormatFont.Size, _FormatFont.Style); - return _FormatFont; - } - set { _FormatFont = value; } - } - public void SetupRichText(string rtf, VE_Font vFont) - { - //FormatFont = vFont.WindowsFont; - DisplayText vlnText = new DisplayText(rtf, vFont, true); - AddRtfText(vlnText.StartText); - ReadOnly = true; - } - public void RefreshDisplay() - { - if (Closed) return; - try - { - RefreshDisplay(ActiveMode); - } - catch (Exception ex) - { - _MyLog.Error(string.Format("MyItemInfo: {0} - {1} Problem doing RefreshDisplay",MyItemInfo.ItemID,MyItemInfo.ShortPath), ex); - } - } - // RefreshDisplay is used to update the rtb for an entire Item as defined by MyItemInfo. - public void RefreshDisplay(bool activeMode) - { - if (IsExperimenting) return; - ActiveMode = activeMode; - OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(true)); - _InitializingRTB = true; - DisplayText vlntxt = new DisplayText(MyItemInfo, E_EditPrintMode.Edit, VwMode, !ActiveMode, FieldToEdit, true,null, null); - //if (_origDisplayText != null && vlntxt.StartText == _origDisplayText.StartText) - //{ - // ReadOnly = !(EpMode == E_EditPrintMode.Edit && VwMode == E_ViewMode.Edit); - // if (!ReadOnly && !edit) ReadOnly = true; - // return; - //} - OrigDisplayText = vlntxt; - - // RHM 20101201 - Don't reset the text. Calculate the text and compare it with the existing text in AddRTFText - //Text = ""; // Initialize text before add text - // IMPORTANT: SetLineSpacing must be set before Links, otherwise it - // was confusing the 'handle' of the rtf box. - //Console.WriteLine("'font',{0}", Font); - //if(Text == "")SelectionFont = Font; // Initialize SelectionFont - if (FieldToEdit == E_FieldToEdit.StepText) - { - if (MyItemInfo != null) - { - if (MyItemInfo.IsStep) Font = MyFontFamily == null ? MyItemInfo.FormatStepData.Font.WindowsFont : new Font(MyFontFamily, MyItemInfo.FormatStepData.Font.WindowsFont.Size, MyItemInfo.FormatStepData.Font.WindowsFont.Style); - else Font = Font = MyFontFamily == null ? MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont : new Font(MyFontFamily, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Size, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Style); - LastRtf = Rtf; - } - } - RTBAPI.SetLineSpacing(this, RTBAPI.ParaSpacing.PFS_EXACT); - bool readOnlyStep = MyItemInfo == null || MyItemInfo.FormatStepData == null ? false : MyItemInfo.FormatStepData.ReadOnly; - if (!readOnlyStep) - { - StepConfig sc = new StepConfig(MyItemInfo.MyContent.Config); - if (IsDerived(sc)) - readOnlyStep = true; - } - ReadOnly = readOnlyStep || VwMode == E_ViewMode.View || ActiveMode == false; - AddRtfText(vlntxt.StartText); - //AddRtfStyles(); - // set readonly based on initial modes, however, these may change if - // user selected view mode. - ClearUndo(); - // RHM: 20101122 - Not sure why the RightMargin is set. The following line was added in Rev 23 - // in May of 2008. - // - // RightMargin = Width; - // - // Normally a the Right Margin is handled by the RichTextBox it defaults to a value of 0. - // - // If the RightMargin is equal to the width of the RichTextBox the word-wrap occurs just beyond - // the visible extent (right edge) of the RichTextBox when it is in view mode. In edit mode it - // wraps within the visible extent. An example of this is Step 24 of ES02 in HLP EOPs. - // - // If the RightMargin is greater than the width of the RichTextBox, the word-wrap occurs beyond - // the visible extent of the RichTextBox for both view and edit modes. - // - // Setting the RightMargin to the Width minus one, accounts for the slight indent (1 pixel) of - // the text within the RichTextBox. - RightMargin = Width > 0 ? Width - 1 : 0; - // figure out if needs outlined, depends on table/figure type - if (!ActiveMode) - { - RemoveEventHandlers(); - OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(false));// View Mode - SelectAll(); - //if (SelectionHangingIndent !=0) SelectionHangingIndent = 0; - int indchar = 0; - string indentToken = MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IndentToken; - if (indentToken == null || indentToken=="0") indentToken = "\x5"; - - // this line of code was moved before the find for the indent so that - // the window gets resized if the indent changes the height, i.e. more line(s) in window. - AddEventHandlers(); - //if (MyItemInfo.InList(186722)) Console.WriteLine("here"); - if ((indchar = Find(indentToken, indchar, RichTextBoxFinds.None)) >= 0) - { - int nindents = 0; - while ((indchar = Find(indentToken, indchar, RichTextBoxFinds.None)) >= 0) - { - nindents++; - Point indent = GetPositionFromCharIndex(indchar); - SelectionHangingIndent = indent.X; - - // RHM 02/20/2013 - // The following line attempts to remove the indent character for display purposes. - // However, if the indent is followed immediately by an RO or Transition the - // RichTextBox will not allow the character to be removed this way and the RichTextBox - // will beep. So, to keep from going in an infintie loop, the value of indchar is incremented. - SelectedRtf = SelectedRtf.Replace(@"\'05",""); - indchar ++;// Don't so the same one twice. - } - if (MyItemInfo != null && MyItemInfo.ActiveFormat != null - && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.DontResetIndentOnNewline) - { - if (nindents == 1) Rtf = Rtf.Replace("\\par\r\n", @"\line "); - Rtf = Rtf.Replace(@"\line\pard", @"\line"); - } - } - } - // This is to fix an issue with Hard Spaces. To Summarize: - // The Microsoft RichTextBox has a problem with hardspaces, that they don't work between numbers and lettters - // This is the majority of cases for PROMS including ROs (Sepoint Number and Units) and transtions (Step ###) - // As I investigated this further I found that if you pass a rtf unicode value for a hard space (\u160?) to - // the RichTextBox, the RichTextBox will return an ASCII representation (\'A0). If you pass an ASCII representation - // the RichTextBox will return a space. - // Alternatively, If you pass a unicode representation of zero (\u0?) it acts like a hard space and returns an ASCII - // representation (\'00). If you pass in the ASCII representation, it truncates the text. - // The following two lines replace hard spaces (ASCII) with the UNICODE represntation of Zero. - // Lastly, If you pass a unicode representation of one (\u1?) it acts like a hard space and returns an ASCII - // representation (\'01). If you pass in the ASCII representation, it keeps the ASCII representation. - // The following two lines replace hard spaces (ASCII) with the UNICODE represntation of Zero. - // Other characters which behave like hard spaces are 28-31 and 128-159. - if (!activeMode && Rtf.Contains(@"\'a0")) - Rtf = Rtf.Replace(@"\'a0", @"\u1?"); - OrigRTF = Rtf; - _InitializingRTB = false; - - AdjustSizeForContents(!ActiveMode); - } - private bool IsDerived(StepConfig sc) - { - Console.WriteLine("EnhancedDOcument2"); - foreach (EnhancedDocument ed in sc.MyEnhancedDocuments) - if (ed.Type == 0) //New Design - return true; - return false; - } - private bool _ProcessKeystrokes = true; - public bool ProcessKeystrokes - { - get { return _ProcessKeystrokes; } - set { _ProcessKeystrokes = value; } - } - private Point ScrollPos - { - get { return RTBAPI.GetScrollLocation(this); } - set { RTBAPI.SetScrollLocation(this, value); } - } - private Rectangle _ContentsRectangle = new Rectangle(0,0,0,0); - public Rectangle ContentsRectangle - { - get - { - if (_ContentsRectangle.X == 0 && _ContentsRectangle.Y == 0 && _ContentsRectangle.Width == 0 && _ContentsRectangle.Height == 0) - _ContentsRectangle = this.ClientRectangle; - return _ContentsRectangle; - } - set - { - _ContentsRectangle = value; - AdjustSizeForContents(false); - } - } - public Size ContentsSize - { - get { return _ContentsRectangle.Size; } - } - private Size _AdjustSize = new Size(0,0); // if 0,0 puts text right next to bottom of box. - public Size AdjustSize - { - get { return _AdjustSize; } - set - { - _AdjustSize = value; - AdjustSizeForContents(false); - } - } - public System.Windows.Forms.AutoScaleMode AutoScaleMode; - private DisplayText _OrigDisplayText; - - public DisplayText OrigDisplayText - { - get { return _OrigDisplayText; } - set { _OrigDisplayText = value; } - } - private RichTextBox _rtbTemp = new RichTextBox(); - private string _MyLinkText; - public string MyLinkText - { - get { return _MyLinkText; } - set - { - //if (value != _MyLinkText) - //{ - // updates to the info panel were not always occurring when the previous two - // lines were active - _MyLinkText = value; - OnLinkChanged(this, new StepPanelLinkEventArgs(_MyLinkText)); - //} - } - } - #endregion - #region Constructors - public StepRTB() - { - InitializeComponent(); - SetUpStepRTB(); - AddEventHandlers(); - this.BorderStyleChanged += new EventHandler(StepRTB_BorderStyleChanged); - - } - public StepRTB(IContainer container) - { - container.Add(this); - InitializeComponent(); - _Container = container; - SetUpStepRTB(); - AddEventHandlers(); - this.BorderStyleChanged += new EventHandler(StepRTB_BorderStyleChanged); - } - protected override void OnMouseWheel(MouseEventArgs e) - { - OnDoMouseWheel(this, e); - //MyRTBItem.MyStepPanel.MouseWheel(e); - //base.OnMouseWheel(e); - } - // When a border style is changed, the richtextbox's handle is 'destroyed', so that the handleDestroyed - // event is done. This was causing the event handlers to be removed (RemoveEventHandler) so that the - // keypress event handler was not run. - private void RemoveEventHandlers() - { - if (_EventHandlersForKeyPress==0) return; - ContentsResized -= new ContentsResizedEventHandler(StepRTB_ContentsResized); - this.Click -= new EventHandler(StepRTB_Click); - this.KeyPress -= new KeyPressEventHandler(StepRTB_KeyPress); - this.KeyDown -= new KeyEventHandler(StepRTB_KeyDown); - this.KeyUp -= new KeyEventHandler(StepRTB_KeyUp); - this.TextChanged -= new EventHandler(StepRTB_TextChanged); - this.MouseUp -= new MouseEventHandler(StepRTB_MouseUp); - this.MouseDown -= new MouseEventHandler(StepRTB_MouseDown); - this.MouseLeave -= new EventHandler(StepRTB_MouseLeave); - this.SelectionChanged -= new EventHandler(StepRTB_SelectionChanged); - this.ContextMenuStripChanged -= new EventHandler(StepRTB_ContextMenuStripChanged); - this.RTBSelectionChanged -= new StepRTBEvent(StepRTB_RTBSelectionChanged); - this.HandleCreated -= new EventHandler(StepRTB_HandleCreated); - this.HandleDestroyed -= new EventHandler(StepRTB_HandleDestroyed); - _EventHandlersForKeyPress = _EventHandlersForKeyPress - 1; - } - private int _EventHandlersForKeyPress = 0; - // When a border style is changed, the richtextbox's handle is 'destroyed', so that the handleDestroyed - // event is done. This was causing the event handlers to be removed (RemoveEventHandler) so that the - // keypress event handler was not run. - private void AddEventHandlers() - { - if (_EventHandlersForKeyPress>0) return; - // Always be sure to add the same event handlers to RemoveEventHandlers - BorderStyle = System.Windows.Forms.BorderStyle.None; - this.DetectUrls = false; - ContentsResized += new ContentsResizedEventHandler(StepRTB_ContentsResized); - this.Click +=new EventHandler(StepRTB_Click); - this.KeyPress += new KeyPressEventHandler(StepRTB_KeyPress); - this.KeyDown += new KeyEventHandler(StepRTB_KeyDown); - this.KeyUp += new KeyEventHandler(StepRTB_KeyUp); - this.TextChanged += new EventHandler(StepRTB_TextChanged); - this.MouseUp += new MouseEventHandler(StepRTB_MouseUp); - this.MouseDown += new MouseEventHandler(StepRTB_MouseDown); - this.MouseLeave += new EventHandler(StepRTB_MouseLeave); - this.SelectionChanged +=new EventHandler(StepRTB_SelectionChanged); - this.ContextMenuStripChanged += new EventHandler(StepRTB_ContextMenuStripChanged); - this.RTBSelectionChanged += new StepRTBEvent(StepRTB_RTBSelectionChanged); - this.HandleCreated += new EventHandler(StepRTB_HandleCreated); - this.HandleDestroyed += new EventHandler(StepRTB_HandleDestroyed); - _EventHandlersForKeyPress = _EventHandlersForKeyPress+1; - } - private int _HandleCount = 0; - void StepRTB_HandleCreated(object sender, EventArgs e) - { - _HandleCount++; - } - // When a border style is changed, the richtextbox's handle is 'destroyed', so that the handleDestroyed - // event is done. This was causing the event handlers to be removed (RemoveEventHandler) so that the - // keypress event handler was not run. The following was added so that the keypress event is restored - // after the border style was changed. This is specifically for the steprtb's on property pages. - void StepRTB_BorderStyleChanged(object sender, EventArgs e) - { - if (_EventHandlersForKeyPress==0) - this.KeyPress += new KeyPressEventHandler(StepRTB_KeyPress); - _EventHandlersForKeyPress++; - } - private bool _Closed = false; - public bool Closed - { - get { return _Closed; } - set { _Closed = value; } - } - void StepRTB_HandleDestroyed(object sender, EventArgs e) - { - if (_HandleCount == 0) - { - Closed = true; - RemoveEventHandlers(); - } - _HandleCount--; - } - void StepRTB_RTBSelectionChanged(object sender, EventArgs args) - { - //Console.WriteLine("RTBSelectionChanged id= {0}", MyItemInfo.ItemID); - if (!Focused) Focus(); - } - void StepRTB_ContextMenuStripChanged(object sender, EventArgs e) - { - //Console.WriteLine("********** StepRTB_ContextMenuStripChanged"); - int sublocation = 0; - try - { - //Console.WriteLine("{0}", ContextMenuStrip.GetType().FullName); - OnSetMenu(this, new StepRTBMenuEventArgs(null)); - sublocation = 1; - _ContextMenuStripChanged = true; - sublocation = 2; - _ContextMenuStepRTB = this; - sublocation = 3; - _ContextMenuStrip = ContextMenuStrip; - sublocation = 4; - } - catch(Exception ex) - { - Console.WriteLine("StepRTB_ContextMenuStripChanged {0} - {1} [{2}]", ex.GetType().Name, ex.Message, sublocation); - } - } - private void SetUpStepRTB() - { - DetectUrls = false; - if(DoSpellCheck) - C1SpellChecker2.SetActiveSpellChecking(this, true); - this.Height = 10; // initialize the height to 10, the default height was too big for the cells in grid tables - BorderStyle = System.Windows.Forms.BorderStyle.None; - this.ScrollBars = RichTextBoxScrollBars.None; - this.DetectUrls = false; - } - // An event is needed to set MouseDown to false on mouse leave, because additional rtb's may - // have been exposed based on entering a step, which causes the underlying item/rtb for which - // the mouse event occurs to not be the current rtb. RTB gets selected on MouseDown, MouseEnter - // and MouseUp are - void StepRTB_MouseLeave(object sender, EventArgs e) - { - _MouseDown = false; - } - //void MyConfig_PropertyChanged(object sender, PropertyChangedEventArgs e) - //{ - // SaveConfig(); - //} - private void StepRTB_Click(object sender, EventArgs e) - { - if (ReadOnly) return; - } - void StepRTB_SelectionChanged(object sender, EventArgs e) - { - if (_InitializingRTB || _IsExperimenting) return; - HandleSelectionChange(); - } - private bool _MouseDown = false; - private bool _ContextMenuStripChanged = false; - private void StepRTB_MouseDown(object sender, MouseEventArgs e) - { - - //Console.WriteLine("vvvvvvvvvv StepRTB Mouse Down id= {0}",MyItemInfo.ItemID); - bool inPsi = this.Parent.FindForm().Name.Contains("frmPSI"); - if (!_ContextMenuStripChanged) - OnSetMenu(this, new StepRTBMenuEventArgs(inPsi?"PSI":"OpenContextMenu")); - _ContextMenuStripChanged = false; - CorrectSelectionAtEndOfLine(); - } - void StepRTB_MouseUp(object sender, MouseEventArgs e) - { - _MouseDown = false; - //Console.WriteLine("^^^^^^^^^^ StepRTB Mouse Up id= {0}", MyItemInfo.ItemID); - - if(this.Focused) // Only HandleSelectionChange if this control has focus. - { - HandleSelectionChange(); - // save our context menu to add to the spell checker's context menu - ThisContextMenuStrip = this.ContextMenuStrip; - } - } - #endregion - #region ApplicationSupport - // Used in StepTabRibbon: - //public void ToggleEditView(E_ViewMode vwMode) - //{ - // OnDoSaveContents(this, new EventArgs()); // SaveText(); - // //ItemInfo tmp = MyItemInfo; - // //MyItemInfo = null; - // //ReadOnly = !ReadOnly; - // //EpMode = ReadOnly ? E_EditPrintMode.Print : E_EditPrintMode.Edit; - // VwMode = vwMode; - // ReadOnly = VwMode == E_ViewMode.View; - // ViewRTB = ReadOnly; - // Clear(); - // RefreshDisplay(!ViewRTB); - // //MyItemInfo = tmp; - // SelectionStart = 0; - // SelectionLength = 0; - // //OnModeChange(this, new StepRTBModeChangeEventArgs(ViewRTB?E_ViewMode.View:E_ViewMode.Edit)); - //} - public void InsertRO(string value, string link) - { - AddRtfLink(value, link); - } - public void InsertTran(string value, string link) - { - AddRtfLink(value, link); - } - public void InsertSymbol(int symbcode) - { - string sym = string.Format(symbcode < 256 ? "\'{0:X2}" : @"\u{0}", symbcode); - if (symbcode < 256) - AddText(((char)symbcode).ToString()); - else - AddSymbol(sym); // Adds font commands around symbol, needed for higher codes - } - public void InsertSymbol(string symbol) - { - AddSymbol(symbol); - } - public void InsertIndent(string indentToken) - { - if (indentToken == null || indentToken == "0") indentToken = "\x5"; - AddText(indentToken); - } - public void InsertText(string txt) - { - AddText(txt); - } - - private void ToggleCase() - { - char type = 'l'; - // do not change case on linked text - RangeStatus rs = FindRangeStatus(); - string tmp = null; - if (rs != RangeStatus.NoContainedLinks) - { - int start = SelectionStart; - int ostart = SelectionStart; - int end = SelectionStart + SelectionLength; - bool processed = false; - while (!processed && start <= end) - { - foreach (LinkLocation ll in LinkLocations) - { - if (ll.Start >= start && ll.End <= end) - { - processed = true; - if (start < ll.Start) - { - SelectionStart = start; - SelectionLength = ll.Start - start; - } - start = ll.End + 1; - break; - } - } - } - } - string ostring = SelectedText; - if (ostring.Length == 0) return; // nothing selected - if (ostring.Length == 1) - type = char.IsUpper(ostring, 0) ? 'l' : 'U'; - else if ((char.IsUpper(ostring, 0) && char.IsUpper(ostring, 1)) || - (char.IsLower(ostring, 0) && char.IsUpper(ostring, 1))) type = 'l'; // lower case - else if ((char.IsUpper(ostring, 0) && char.IsLower(ostring, 1))) type = 'U'; // upper case - else type = 'T'; // Title case - SetSelectedCase(type); - } - - public void SetSelectedCase(char type) - { - // do not change case on linked text - RangeStatus rs = FindRangeStatus(); - string tmp = null; - if (rs == RangeStatus.NoContainedLinks) - SetCase(type); - else - { - int start = SelectionStart; - int ostart = SelectionStart; - int end = SelectionStart + SelectionLength; - StringBuilder sb = new StringBuilder(); - while (start <= end) - { - bool processed = false; - foreach (LinkLocation ll in LinkLocations) - { - if (ll.Start >= start && ll.End <= end) - { - processed = true; - if (start < ll.Start) - { - SelectionStart = start; - SelectionLength = ll.Start - start; - SetCase(type); - } - start = ll.End + 1; - break; - } - } - // if none were processed, no more links, copy over any remaining text. - if (!processed) - { - SelectionStart = start; - SelectionLength = end-start; - SetCase(type); - start = end + 1; - } - } - SelectionStart = ostart; - SelectionLength = end - ostart; - } - } - - private void SetCase(char type) - { - int ostart = SelectionStart; - int olen = SelectionLength; - string ostring = SelectedText; - string tmp = null; - bool docap = true; - // go character by character. Because of symbols, setting entire - // to upper or lower set symbols incorrectly some of time (depending - // on symbol) . - for (int i = 0; i < olen; i++) - { - SelectionStart = ostart + i; - SelectionLength = 1; - switch (type) - { - case 'l': - if (SelectedText[0] >= 'A' && SelectedText[0] <= 'Z') - SelectedText = SelectedText.ToLower(); - break; - case 'U': - if (SelectedText[0] >= 'a' && SelectedText[0] <= 'z') - SelectedText = SelectedText.ToUpper(); - break; - case 'T': - if (docap && SelectedText[0] >= 'a' && SelectedText[0] <= 'z') - SelectedText = SelectedText.ToUpper(); - else if (!docap && SelectedText[0] >= 'A' && SelectedText[0] <= 'Z') - SelectedText = SelectedText.ToLower(); - docap = ostring[i] == ' '; - break; - } - } - SelectionStart = ostart; - SelectionLength = olen; - } - #endregion - #region AddRtfTextAndStyles - private string _LastRtf = ""; - public string LastRtf - { - get { return _LastRtf; } - set { _LastRtf = value; } - } - private bool _lastReadOnly = false; - private void AddRtfText(string txt) - { - //Console.WriteLine("ItemID:{0}", MyItemInfo.ItemID); - //if(MyItemInfo.ItemID==10256) - // Volian.Base.Library.vlnStackTrace.ShowStackLocal("ItemID:{0}", MyItemInfo.ItemID.ToString()); - StringBuilder selectedRtfSB = new StringBuilder(); - AddFontTable(selectedRtfSB, FormatFont, FontIsFixed(FormatFont)); - _RtfPrefix = selectedRtfSB.ToString(); - selectedRtfSB.Append(txt); - string newRtf = selectedRtfSB.ToString() + "}"; - if(newRtf != _LastRtf || ReadOnly != _lastReadOnly) - { - //Console.WriteLine("ItemID:{0}\r\nOld:'{1}'\r\nNew:'{2}'\r\n", MyItemInfo.ItemID, Rtf, newRtf); - this.ContentsResized -= new ContentsResizedEventHandler(StepRTB_ContentsResized); - Text = ""; - this.ContentsResized += new ContentsResizedEventHandler(StepRTB_ContentsResized); - // indents went from being handled by code support of an indent character (usually \05) to - // using rtf commands to fix various indent bugs including B2015-103). The following code - // puts the rtf indent characters that are stored at beginning of string into correct location - // of rtf header (have to be after the \pard). Otherwise the indents did not show up. - Match match = Regex.Match(txt,@"\\fi([-0-9]+) ?\\li([0-9]+)"); - if (match.Success) - { - string indentStr = @"\fi" + match.Groups[1].Value + @"\li" + match.Groups[2].Value; - Rtf = Rtf.Replace(@"\pard", @"\pard" + indentStr); - } - SelectedRtf = _LastRtf = newRtf; - _lastReadOnly = ReadOnly; - } - FindAllLinks(); - if (txt == "") SelectionFont = FormatFont; - } - public void SetTableGridCellRTFPrefix(Font myfont) - { - if (_FormatFont == null) - _FormatFont = myfont; - - if (_RtfPrefix == null) - { - StringBuilder selectedRtfSB = new StringBuilder(); - AddFontTable(selectedRtfSB, myfont, FontIsFixed(myfont)); - _RtfPrefix = selectedRtfSB.ToString(); - } - } - // The following code is used to display the little 'tic' marks to show indenting: - private const int WM_PAINT = 15; - protected override void WndProc(ref Message m) - { - if (m.Msg == WM_PAINT) - { - this.Invalidate(); - base.WndProc(ref m); - if ((FieldToEdit == E_FieldToEdit.StepText) && (SelectionHangingIndent > 0 || SelectionIndent > 0) && (ActiveMode || MyItemInfo.IsTable)) - { - using (Graphics g = Graphics.FromHwnd(this.Handle)) - { - int size = 2; - g.DrawLine(Pens.DarkBlue, SelectionIndent, 0, SelectionIndent + size, 0); - g.DrawLine(Pens.DarkBlue, SelectionIndent, 2 * size, SelectionIndent, 0); - g.DrawLine(Pens.DarkBlue, SelectionHangingIndent, Height - 1, SelectionHangingIndent + size, Height - 1); - g.DrawLine(Pens.DarkBlue, SelectionHangingIndent, Height - 1 - 2 * size, SelectionHangingIndent, Height - 1); - } - } - } - else - { - base.WndProc(ref m); - } - } - private static void AddFontTable(StringBuilder selectedRtfSB, Font myFont, bool isFixed) - { - StringBuilder sbbeg = new StringBuilder(); - StringBuilder sbend = new StringBuilder(); - if (myFont.Bold) - { - sbbeg.Append(@"\b"); - sbend.Append(@"\b0"); - } - if (myFont.Underline) - { - sbbeg.Append(@"\ul"); - sbend.Insert(0, @"\ulnone"); - } - if (myFont.Italic) - { - sbbeg.Append(@"\i"); - sbend.Insert(0, @"\i0"); - } - selectedRtfSB.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 " + myFont.FontFamily.Name + @";}"); //}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}}"; - if (!isFixed) - selectedRtfSB.Append(@"{\f1\fnil\fcharset0 Arial Unicode MS;}}{\colortbl ;\red255\green0\blue0;}"); - else - selectedRtfSB.Append(@"{\f1\fnil\fcharset0 FreeMono;}}{\colortbl ;\red255\green0\blue0;}"); // FreeMono is now used for the edit screen only. VESymbFix and Consolas are used for printing - selectedRtfSB.Append("\r\n"); - // use styles to construct rtf commands to insert into next line (where \b, etc is) - selectedRtfSB.Append(@"\viewkind4\uc1\pard\sl-240\slmult0" + sbbeg.ToString() + @"\fs" + Convert.ToInt32(myFont.SizeInPoints * 2).ToString() + @" "); // \f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}"; - } - - private bool FontIsFixed(Font myFont) - { - Graphics grph = Graphics.FromHwnd(this.Handle); - SizeF sfW = grph.MeasureString("W", myFont); - SizeF sfE = grph.MeasureString("!", myFont); - if (sfW.Width == sfE.Width) return true; - return false; - } - private void AddRtf(string str) - { - // Because we're inserting rtf with { }, the surrounding styles are not included. Get the font - // style of current position & use it after the insert to set the style. - RTBAPI.E_FontStyle fs = RTBAPI.GetFontStyle(this); - int positionStart = SelectionStart; - SelectedRtf = @"{\rtf1{\fonttbl{\f0\fcharset2 " + this.Font.FontFamily.Name + @";}}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + str + @"}}"; - // Note that SelectedRtf does not contain the inserted text after the previous line. We need - // to determine how long the inserted string is in order to set its style. SelectionStart contains - // the location after the insertion. - int positionAfter = SelectionStart; - Select(positionStart, positionAfter - positionStart); - RTBAPI.SetFontStyle(this, fs); - Select(positionAfter, 0); - } - private void AddText(string str) - { - // See comments in AddRtf(string str) to explain the font style setting - RTBAPI.E_FontStyle fs = RTBAPI.GetFontStyle(this); - int positionStart = SelectionStart; - SelectedText = str; - int positionAfter = SelectionStart; - Select(positionStart, positionAfter - positionStart); - RTBAPI.SetFontStyle(this, fs); - Select(positionAfter, 0); - } - private void AddSymbol(string str) - { - // See comments in AddRtf(string str) to explain the font style setting - RTBAPI.E_FontStyle fs = RTBAPI.GetFontStyle(this); - Font locfont = this.Font; - int position = SelectionStart; - SelectedRtf = RtfPrefixForSymbols + str + @"}"; - Select(position, 1); - RTBAPI.SetFontStyle(this, fs); - Select(position + 1, 0); - if (FieldToEdit == E_FieldToEdit.StepText) - SelectionFont = MyItemInfo.GetItemFont().WindowsFont; - else - // if doing properties for folder, docversion, proc or sect, don't get item's font. - SelectionFont = locfont; - } - private string GetAddSymbolText(string symtxt) - { - return (@"{\f0\fs" + this.Font.SizeInPoints * 2 + @" " + symtxt + @"}"); - } - public void AddRtfLink(string linkUrl, string linkValue) - { - if (CreateParams.ClassName == "RICHEDIT50W") - - AddLink50(linkUrl, linkValue); - else - AddLink20(linkUrl, linkValue); - } - public string FontTable - { - get - { - StringBuilder sb = new StringBuilder(); - sb.Append(@"{\fonttbl{\f0\fnil\fcharset2 " + this.Font.FontFamily.Name + @";}"); - if (!FontIsFixed(this.Font)) - sb.Append(@"{\f1\fnil\fcharset0 Arial Unicode MS;}}"); - else - sb.Append(@"{\f1\fnil\fcharset0 FreeMono;}}"); // FreeMono is now used for the edit screen only. VESymbFix and Consolas are used for printing - return sb.ToString(); - } - } - private string FontSize - { - get - { - Match match = Regex.Match(Rtf, @"\\fs[0-9]*"); - return match.Value; - } - } - - private void AddLink20(string linkValue, string linkUrl) - { - string fonttab = FontTable; - string fontsize = FontSize; - //if (this.DetectUrls) this.DetectUrls = false; - if (SelectionLength > 0)HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), null); - int position = SelectionStart; - SelectionLength = 0; - linkValue = linkValue.Replace("\\u8209?", "\\f1\\u8209?\\f0 "); - linkValue = linkValue.Replace("\\u916?", "\\f1\\u916?\\f0 "); - linkValue = linkValue.Replace(@"{", @"\{"); - linkValue = linkValue.Replace(@"}", @"\}"); - SelectedRtf = @"{\rtf1\ansi"+FontTable+@"{\colortbl ;\red255\green0\blue0;}\v"+FontSize+@" \v0 }"; - this.SelectionLength = 0; - this.SelectionStart = position; - FindAllLinks(); - } - private void AddLink50(string linkValue, string linkUrl) - { - //this.DetectUrls = false; - int position = SelectionStart; - SelectionLength = 0; - SelectedRtf = string.Format(@"{{\rtf\field{{\*\fldinst{{HYPERLINK ""www.volian.com #{0}"" }}}}{{\fldrslt{{\cf2\ul {1}}}}}}}", linkUrl, linkValue); - this.SelectionStart = this.TextLength; - this.SelectionLength = 0; - } - private void AddRtfStyles() - { - if ((OrigDisplayText.TextFont.Style & E_Style.Bold) > 0) - { - this.SelectAll(); - RTBAPI.ToggleBold(true, this, RTBAPI.RTBSelection.SCF_SELECTION); - this.Select(0, 0); - } - // Bug Fix - // The code below was changed to select all of the text and then - // apply the underlining to the selected text, because if the - // the underlining was applied to RTBAPI.RTBSelection.SCF_ALL - // the Links were changed so that they were no longer hidden. - if ((OrigDisplayText.TextFont.Style & E_Style.Underline) > 0) - // RTBAPI.ToggleUnderline(true, this, RTBAPI.RTBSelection.SCF_ALL); - { - this.SelectAll(); - RTBAPI.ToggleUnderline(true, this, RTBAPI.RTBSelection.SCF_SELECTION); - this.Select(0, 0); - } - // Bug Fix - // The code below was changed to select all of the text and then - // apply the italics to the selected text, because if the - // the italics was applied to RTBAPI.RTBSelection.SCF_ALL - // the Links were changed so that they were no longer hidden. - if ((OrigDisplayText.TextFont.Style & E_Style.Italics) > 0) - // RTBAPI.ToggleItalic(true, this, RTBAPI.RTBSelection.SCF_ALL); - { - this.SelectAll(); - RTBAPI.ToggleItalic(true, this, RTBAPI.RTBSelection.SCF_SELECTION); - this.Select(0, 0); - } - } - #endregion - #region HeightSupport - public event StepRTBEvent HeightChanged; - private void OnHeightChanged(object sender, EventArgs args) - { - if (HeightChanged != null) HeightChanged(sender, args); - } - private void AdjustSizeForContents(bool adjustWidth) - { - if (!_InitializingRTB) - { - Size offset = Size - ClientSize; - int widthNew = (this is TableCellEditor) ? Width : (ContentsSize.Width + offset.Width + AdjustSize.Width); - //int widthNew = Width; - //if (!(this is TableCellEditor)) - // widthNew = ContentsSize.Width + offset.Width + AdjustSize.Width; - int heightNew = ContentsSize.Height + offset.Height + AdjustSize.Height; - // Don't make the window narrower unless it has text - RHM - 20100107 - Size szNew = new Size(((Text != "" && adjustWidth) ? widthNew : (widthNew > Width ? widthNew : Width)), heightNew); - if (this.Size != szNew) - { - int heightOld = Height; - //Console.WriteLine("before {0}, {1}, {2}, {3}, {4}", Size, szNew, widthNew, Width, this.GetType().Name); - this.Size = szNew; - //Console.WriteLine("after {0}, {1}, {2}, {3}", Size, szNew, widthNew, Width); - if (heightOld != Height) - { - OnHeightChanged(this, new EventArgs()); - if (ScrollPos.Y != 0) // Adjust ScrollPosition if it isn't Zero - ScrollPos = new Point(0, 0); - } - } - } - } - private float GetStringWidth(string strMeasureString) - { - using (Graphics g = Graphics.FromHwnd(Handle)) - { - return g.MeasureString(strMeasureString, Font).Width; - } - } - private int Ceiling(float f) - { - return (int)(Math.Ceiling(f)); - } - public int MaxTextWidth - { - get - { - int maxWidth = 0; - for (int i = 0; i < TextLength; i++) - { - int w = GetPositionFromCharIndex(i).X; - maxWidth = Math.Max(maxWidth, w); - } - return maxWidth+10; // add 10 to account for the last character - } - } - public void AdjustWidthForContent() - { - AdjustWidthForContent(0); - } - public void AdjustWidthForContent(int count) - { - int widthNL = Ceiling(GetStringWidth("\n")); - int widthMax = 0; - int widthMaxWW = 0; - int indexStart = 0; - int lineCountFromLines = Lines.Length; - int lineCountFromGet = GetLineFromCharIndex(TextLength)+1; - for (int i = 0; i < Lines.Length; i++) - { - int lineStart = GetLineFromCharIndex(indexStart); - int indexEnd = indexStart + Lines[i].Length; - int lineEnd = GetLineFromCharIndex(indexEnd); - Point pointStart = GetPositionFromCharIndex(indexStart); - Point pointEnd = GetPositionFromCharIndex(indexEnd); - int indexEndPos = GetCharIndexFromPosition(pointEnd); - if (indexEndPos + 1 < indexEnd) // This indicates that the text is wider than the Rich Text Box - { - int w = pointEnd.X + (indexEnd - indexEndPos) * widthNL; - if (w > widthMaxWW) - widthMaxWW = w; - } - if (lineEnd > lineStart)// this indicates that there was word-wrap on this line. - { - int w = pointEnd.X + Width * (lineEnd - lineStart); - if (w > widthMaxWW) - widthMaxWW = w; - } - else - { - if (pointEnd.X > widthMax) - widthMax = pointEnd.X; - } - indexStart = indexEnd + 1; - } - if (widthMaxWW == 0) - { - int widthBorder = Width - ClientSize.Width; - int w = widthMax + widthNL + widthBorder; - if (Width != w) - { - if (count < 5 || Width < w) - { - Width = w; - AdjustWidthForContent(count + 1);// Try one more time - } - } - } - else - { - if (count < 5 || Width < widthMaxWW) - { - Width = widthMaxWW; - AdjustWidthForContent(count + 1); - } - } - } - public int CalculateHeight() - { - if (this.CreateParams.ClassName == "RICHEDIT50W") - return CalculateHeight50(); - else - return CalculateHeight20(); - } - private int CalculateHeight20() - { - Application.DoEvents(); - int yBottom = GetPositionFromCharIndex(TextLength).Y; - int yTop = GetPositionFromCharIndex(0).Y; - int heightFont = SelectionFont.Height; - int borderSize = this.Height - this.ClientSize.Height; - int heightNext = (yBottom - yTop) + heightFont + borderSize + 2;// 2 pixels - 1 at the top and 1 at the bottom - if (heightNext != Height) - { - Height = heightNext; - - OnHeightChanged(this, new EventArgs()); - ScrollPos = new Point(0, 0); // Scroll to make sure that the first line is displayed as the first line - } - return heightNext; - } - private int CalculateHeight50() - { - Application.DoEvents(); - int heightFont = SelectionFont.Height; - int borderSize = this.Height - this.ClientSize.Height; - int heightNext = (1 + GetLineFromCharIndex(TextLength)) * heightFont + borderSize + 2;// 2 pixels - 1 at the top and 1 at the bottom - return heightNext; - } - #endregion - #region ColorSupport - Not currently used. - //private void SetBackGroundColor(ItemInfo itemInfo) - //{ - // string backcolor = null; - // int type = (int)itemInfo.MyContent.Type; - // FormatInfo formatinfo = itemInfo.ActiveFormat; - // if (type == (int)E_FromType.Procedure) - // backcolor = formatinfo.PlantFormat.FormatData.ProcData.BackColor; - // else if (type == (int)E_FromType.Section) - // backcolor = formatinfo.PlantFormat.FormatData.SectData.BackColor; - // else - // { - // int typindx = (int)itemInfo.MyContent.Type - 20000; // what to do for other types rather than steps - // backcolor = formatinfo.PlantFormat.FormatData.StepDataList[typindx].StepLayoutData.BackColor; - // } - // BackColor = Color.FromName(backcolor); - //} - #endregion - #region EventSupport - #region LinkEvents - private StepPanelLinkEventArgs _MyLinkClickedEventArgs; - public event StepRTBLinkEvent LinkChanged; - private void OnLinkChanged(object sender, StepPanelLinkEventArgs args) - { - _MyLinkClickedEventArgs = args; - if (LinkChanged != null) LinkChanged(sender, args); - } - public event StepRTBLinkEvent LinkGoTo; - private void OnLinkGoTo(object sender, StepPanelLinkEventArgs args) - { - _MyLinkClickedEventArgs = args; - if (LinkGoTo != null) LinkGoTo(sender, args); - } - public event StepRTBLinkEvent LinkModifyTran; - private void OnLinkModifyTran(object sender, StepPanelLinkEventArgs args) - { - _MyLinkClickedEventArgs = args; - if (LinkModifyTran != null) LinkModifyTran(sender, args); - } - public event StepRTBLinkEvent LinkModifyRO; - private void OnLinkModifyRO(object sender, StepPanelLinkEventArgs args) - { - _MyLinkClickedEventArgs = args; - if (LinkModifyRO != null) LinkModifyRO(sender, args); - } - #endregion - #region TextAndContentsEvents - void StepRTB_TextChanged(object sender, EventArgs e) - { - if (_InitializingRTB || _IsExperimenting) return; - // Was setting _IsDirty to true here, but this was getting called from - // 'dotnetbar' when text was NOT Changed. So _IsDirty was made into - // a property and compared original rtf versus current richtextbox's - // rtf. - // the below 2 lines were added to solve the problem with the change manager detail not showing the text of an audit when the same audit - //was selected twice - if (Text == string.Empty) - LastRtf = string.Empty; - FindAllLinks(); - } - private void ShowMyParentsFonts() - { - Console.WriteLine("\r\n--- Parents Fonts ---- For ----{0}", Text); - ShowMyParentsFonts(this); - Console.WriteLine("Selection Font".PadRight(31) + SelectionFont); - } - private void ShowMyParentsFonts(Control ctrl) - { - if (ctrl.Parent is Control) - ShowMyParentsFonts(ctrl.Parent); - Console.WriteLine("{0} {1}", ctrl.GetType().Name.PadRight(30), ctrl.Font); - } - public void StepRTB_ContentsResized(object sender, ContentsResizedEventArgs e) - { - ContentsRectangle = e.NewRectangle; - } - #endregion - #region Selection Handlers - bool _AdjustingSelection = false; - private bool _ProcessingDelete; - private bool _HandlingCtrlA = false; - private void HandleLocalSelectionChange() - { - //if (MyRTBItem != null && MyRTBItem.MyStepPanel.SelectedStepRTB != this) - if (OnIsNotCurrentSelection(this, new EventArgs())) - return; - - HandleSelectionChange(); - } - private void HandleSelectionChange() - { - if (_HandlingCtrlA) return; - if (!_HandlingCtrlA && this.TextLength == this.SelectionLength && this.SelectedRtf.EndsWith("\\par\r\n}\r\n")) - { - _HandlingCtrlA = true; - SelectAll(); - _HandlingCtrlA = false; - } - //HandleOverWrite(); - //vlnStackTrace.ShowStackLocal("HandleSelectionChangeStack", 1, 10); - bool startingValue = _AdjustingSelection; - if (_IdentifyingLinks || _ProcessingDelete) return; - // If the cursor is beyond the end of the line then move the cursor back one character - if (CorrectSelectionAtEndOfLine()) - return; - if (ProcessKeystrokes) - { - if (!_MouseDown && !_AdjustingSelection) - { - if (_LinkLocations != null) - { - DebugPrint("HSC===================>Beginning: SelectionStart {0}, SelectionLength {1}", SelectionStart, SelectionLength); - _AdjustingSelection = true; - LinkLocation ll = FindLinkLocation(); - LinkLocation llend = null; - if (SelectionLength != 0) - llend = FindLinkLocation(SelectionStart + SelectionLength - 1); - if (ll != null) - { - if (SelectionStart == ll.Start && SelectionLength == 0) - { - if (SelectionStart >= 7) - { - // If the cursor is at the beginning of the line and a link is at the beginning of the line - // then select the link rather than postitioning the cursor at the end of the previous line - if (!_LastWasLeftArrow && GetFirstCharIndexOfCurrentLine() == SelectionStart) - SetSelection(ll); - else - { - DebugPrint("HSC===================>ll Insert: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SelectionStart = ll.Start - 7; - } - } - } - else if (SelectionStart + SelectionLength > ll.End) // Beyond the end of the starting link - { - int end = SelectionStart + SelectionLength; - if (llend != null) end = llend.End; // If it extends into another link extend the end to the end of that link - DebugPrint("HSC===================>ll After: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SetSelection(ll.Start, end - ll.Start); - } - else if (SelectionStart >= ll.Start || SelectionLength > 0)// Within the starting link - { - DebugPrint("HSC===================>ll: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SetSelection(ll); - } - } - else if (llend != null) - { - DebugPrint("HSC===================>llend: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, llend.Start, llend.Length); - // Check to see if the beginning starts before the Removing ending Removing starting _AdjustingSelection problem"); - DebugPrint("RS------ SelectionChange > {0}", FindRangeStatus()); - if (SelectionLength > 0 && IsSelectionLinked(SelectionStart, SelectionLength)) - { - if (SelectedText.IndexOf(@"[END>") > 0) MyLinkText = SelectedText.Substring(0, SelectedText.IndexOf(@"[END>")); - else MyLinkText = SelectedText; - } - else - MyLinkText = null; - OnRTBSelectionChanged(this, new EventArgs()); - _LastWasLeftArrow = false; - } - /// - /// If the Selection is beyond the end of the line, move the selection back one character - /// - /// - private bool CorrectSelectionAtEndOfLine() - { - if (SelectionStart > 0 && SelectionLength == 0 && - GetFirstCharIndexFromLine(GetLineFromCharIndex(SelectionStart)) > - GetFirstCharIndexOfCurrentLine()) - { - SelectionStart--; // Move the cursor back one character - return true; - } - return false; - } - - //private void HandleOverWrite() - //{ - // if (!_OverWrite) return; - // if (SelectionLength > 0) return; - // if (SelectionStart == TextLength) return; - // Console.WriteLine("Handle Overwrite, SelectionStart = {0}, SelectionLength = {1}", SelectionStart, SelectionLength); - // SelectionLength = 1; - //} - private bool _CheckSelection = false; - #endregion - #region Delete Handlers - private void HandleDeleteKeyWithSelectedText(KeyEventArgs e, string keychars) - { - _ProcessingDelete = true; - FindRangeStatus(); - //DebugPrint("RS---------------- Delete > {0}", _RTBRangeStatus); - switch (_RTBRangeStatus) - { - case RangeStatus.NoContainedLinks: - case RangeStatus.Before_After: - case RangeStatus.Before_EndLink: - case RangeStatus.Before_EndBox: - default: - DeleteCurrentSelection(keychars); - e.SuppressKeyPress = true; - break; - case RangeStatus.Before_Between: //myRTB1.SelectedText.EndsWith(@"[END> - /// This inserts a space in between two links. - /// It actually inserts "\v0 {space}\v " between the END tag and the START tag - /// - /// - /// - /// - private void InsertCharBetweenLinks(LinkLocation ll, char charToAdd, bool setSelect) - { - //_InsertingSpaceBetweenLinks = true; - DebugPrint("ICBLvvvvvvvvvvvvvvv>>>"); - Rtf = Rtf.Substring(0, ll.StartRtf) + @"\v0 " + charToAdd.ToString() + @"\v " + Rtf.Substring(ll.StartRtf); - //_InsertingSpaceBetweenLinks = false; - if (setSelect) - SelectionStart = ll.Start - 6; // account for >>"); - } - private void ExpandSelectionToIncludeStart() - { - //_AdjustingSelection = true; - SetSelection(SelectionStart - 7, SelectionLength + 7); // Expand selection to include start - //_AdjustingSelection = false; - } - public string GetSelectionForClipBoard() - { - string selTxtRTF = SelectedRtf; - LinkLocation llstart = FindLinkLocation(); - if (llstart != null) - { - selTxtRTF = Rtf.Substring(llstart.StartRtf, llstart.EndRtf - llstart.StartRtf); - string lookfor = selTxtRTF.Substring(selTxtRTF.IndexOf(' ')); - return SelectedRtf.Replace(lookfor, @"\v " + selTxtRTF); - } - return (selTxtRTF); - } - - private void DeleteBetweenBetweenLinks(string keychars) - { - - DebugSelection("DeleteBetweenBetweenLinks"); - int selStart = SelectionStart - 7; - int selLength = SelectionLength + 2; // Include the two added spaces - InsertCharBetweenLinks(_RangeEndLink.NextLink); // Add a space at the end link - InsertCharBetweenLinks(_RangeStartLink); // Add a space a the start link - SetSelection(selStart, selLength);// Select everything including the spaces - DeleteCurrentSelection(keychars);// Delete Selection - } - /// - /// This is added to handle a glitch in richtextbox. Depending on - /// which direction that selection is made (left -> right or right -> left) - /// a replacement or delete may not work, you'll just get a 'beep'. - /// This approach consistently works. - /// - public bool WasXDelete = false; - private void DeleteCurrentSelection(string keys) - { - - DebugPrint("vvvvvvvvvvvvxxxxxxxxxxxx>"); - DebugSelection("Before X"); - DebugPrint(keys == null ? "NULL" : "NOT NULL"); - SelectedText = keys==null?"X":keys; // replace text with X - WasXDelete = (keys == null); - DebugSelection("After X"); - DebugPrint("------------xxxxxxxxxxxx>"); - if (keys == null) - { - _SendBackSpace = true; - RtbSendKeys("{BS}"); // remove X - //this.ClearUndo(); // undo was redisplay 'X' and then deleted text - Application.DoEvents(); - DebugSelection("After BS"); - } - DebugPrint("^^^^^^^^^^^^xxxxxxxxxxxx>"); - } - private void DeleteSelection(int start, int length, string keychars) - { - SetSelection(start, length); - DeleteCurrentSelection(keychars); - } - private void DeleteEndBetweenLinks(string keychars) - { - _ProcessingKeys++; - DebugSelection("DeleteEndBetweenLinks"); - int sstart = SelectionStart; - int slen = SelectionLength + 1 - 7; - // This puts a space at the link that starts at the end of the selection - InsertCharBetweenLinks(_RangeEndLink.NextLink); - //_AdjustingSelection = true; - DeleteSelection(sstart, slen, keychars); - //_AdjustingSelection = false; - _ProcessingKeys--; - } - private void DeleteStartBetweenLinks(string keychars) - { - _ProcessingKeys++; - DebugSelection("DeleteStartBetweenLinks"); - int slen = SelectionLength + 8; - int sstart = SelectionStart - 7; - //LinkLocation ll = FindBetweenLinks(SelectionStart); - InsertCharBetweenLinks(_RangeStartLink); - DeleteSelection(sstart, slen, keychars); - _ProcessingKeys--; - } - private void DeleteFromStartOfBox(string keychars) - { - _ProcessingKeys++; - DebugSelection("DeleteFromStartOfBox"); - int slen = SelectionLength; - SetSelection(0, 0); - //RtbSendKeys(" "); // open for space between links which separates END/START tokens - SelectedText = " "; - DeleteSelection(0, slen + 8, keychars); - _ProcessingKeys--; - } - private void DeleteFromStartOfBoxEndBetweenLinks(string keychars) - { - _ProcessingKeys++; - DebugSelection("DeleteFromStartOfBoxEndBetweenLinks"); - // This puts a space at the link that starts at the end of the selection - int sLen = SelectionStart + SelectionLength - 7 + 2;// -7 for 0) SetSelection(SelectionStart, newend - SelectionStart); - break; - case Keys.Space: - if (e.Control) // Hardspace - Ctrl+Shift+Space - InsertSymbol(@"\u160?"); - break; - case Keys.F3: // shift F3 - e.Handled = true; - ToggleCase(); // toggle through Upper, Lower, and Title case - break; - default: - break; - } - } - - private string GetSelectedDisplayableText() - { - using (StepRTB srtb = new StepRTB()) - { - srtb.Rtf = this.SelectedRtf.Replace(@"\u8209?", "-"); - string rtnstr = ""; - string ctxt = srtb.Text;//this.SelectedText; - if (ctxt.EndsWith(""); - if ((strtidx == -1 || strtidx > lnkidx) && lnkidx > -1 && endidx > -1) - { - rtnstr += ctxt.Substring(idx, lnkidx); - idx = endidx + 5; - strtidx = ctxt.IndexOf("", idx); - } - while (strtidx > -1) - { - rtnstr += ctxt.Substring(idx, strtidx - idx); - idx = strtidx + 7; - rtnstr += ctxt.Substring(idx, lnkidx - idx); - idx = endidx + 5; - strtidx = ctxt.IndexOf("", idx); - } - if (idx < ctxt.Length) - rtnstr += ctxt.Substring(idx); - return rtnstr; - } - } - - private bool IsControlChar = false; - private bool _SendBackSpace = false; - private int _ImageWidth = 0; - public int ImageWidth - { - get { return _ImageWidth; } - set { _ImageWidth = value; } - } - void StepRTB_KeyDown(object sender, KeyEventArgs e) - { - // added jcb 20130103 to support set ro from word doc with annotation when right click menu is opened by keyboard - if (e.KeyCode == Keys.Apps) - OnSetMenu(this, new StepRTBMenuEventArgs("OpenContextMenu")); - if (e.Control) - { - IsControlChar = true; - if (e.Shift) - { - //Console.WriteLine("keycode = {0} key value = {1}",e.KeyCode,e.KeyValue); - switch (e.KeyCode) - { - // The following keys are supported in underlying RTB (with ctrl+shift key), - // but PROMS should not do anything for that functionality: - case Keys.Add: // the plus on the key pad - case Keys.Subtract: - case Keys.L: - case Keys.Oemplus: // the plus on the keyboard (not the key pad) - e.Handled = true; - break; - } - } - else - { - switch (e.KeyCode) - { - case Keys.X: //ctrl-X - case Keys.C: //ctrl-C - // handle the clipboard copy and cut when a Transition or RO is selected - // For now, we are coping/cutting just the displayed text to the clipboard (like 16-bit VE-PROMS) - string ts = GetSelectedDisplayableText(); - if (ts != null && ts != "") Clipboard.SetText(GetSelectedDisplayableText()); - e.Handled = true; - e.SuppressKeyPress = true; - if (ts != null && ts != "" && e.KeyCode == Keys.X) // cut to clipboard - delete the selected text - HandleDeleteKeyWithSelectedText(e, null); - break; - case Keys.V: - // NOTE that if in a Properties Dialog StepRTB (for numbers and titles) or in a Procedure Specific - // Information (PSI) Dialog, i.e. any non-EditItem/Step editor field, the following code is run - // for the ctrl-V. For EditItems & Grid cells, the code in StepTabRibbon's btnPaste_Click is - // run. The way this occurs is that in the designer for StepTabRibbon (StepTabRibbon.designer.cs), - // the line of code: - // this.btnPaste.Shortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlV); - // maps the Ctrl-V to btnPaste for those StepRTB's that are associated with the StepTabRibbon, i.e. - // EditItems & Grid cells. - IDataObject iData = Clipboard.GetDataObject(); - if (iData.GetDataPresent(DataFormats.Dib)) // Device Independent Bitmap - { - System.Drawing.Image img = Clipboard.GetImage(); - ImageWidth = img.Width; - Width = ImageWidth + 2; - Paste(); - } - else - { - if (!iData.GetDataPresent(DataFormats.Text) && !iData.GetDataPresent(DataFormats.Rtf)) - { - MessageBox.Show("Cannot paste, text has special characters or symbols that will not paste correctly."); - } - else - { - // if contains bad rtf (from Word), paste as text, otherwise, do the paste here. - if (!PasteRtfAsText(true)) Paste(); - if (SelectionLength == 0) SelectionFont = MyStyleFont.WindowsFont; - } - } - e.Handled = true; - return; - case Keys.Home: - StepRTB_HomeEndPressed(e); - e.Handled = true; - break; - case Keys.End: - StepRTB_HomeEndPressed(e); - e.Handled = true; - break; - // 16bit Proms used 'ctrl-enter' for Hard returns. 32bit Proms uses 'shift-enter' - // because the richtextbox does this by default. Also Word uses 'shift-enter' - // for Hard return. And Word uses 'ctrl-enter' for inserting of page break. So - // 'ctrl-enter' for 32bit will insert page break - case Keys.Enter: - OnInsertPgBrk(this, new EventArgs()); - e.Handled = true; - break; - // The following keys are supported in underlying RTB (with ctrl key), but PROMS should not - // do anything for that functionality: - case Keys.R: // Right Align text - case Keys.L: // Left Align text - case Keys.E: // Center Align text - case Keys.D1: // Single space text (D1 is the '1' key) - case Keys.D2: // Double space text - case Keys.D5: // 1.5 space text - case Keys.H: // Find (proms uses Ctrl+F for find) - case Keys.Oemplus: // plus on the keyboard (not the key pad) - e.Handled = true; - break; - } - } - } - if (((int)e.KeyCode) == 220) e.Handled = true; - switch (e.KeyCode) - { - case Keys.Left: - if (e.Shift) - { - int linkWidth = FindlinkWidth(false,e.Control); - - if (linkWidth == 0)// if not link, don't do special processing - { - if (e.Control) - { - this.AutoWordSelection = true; // this will select a word at a time - } - return; - } - else - linkWidth++; - int len = SelectionLength - linkWidth; - SetSelection(SelectionStart, len); // adjust the selcection around the linked text - e.Handled = true; - return; - } - if (e.Control || SelectionStart == 0) - { - StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlLeft : E_ArrowKeys.Left); - e.Handled = true; - } - HandleLocalSelectionChange(); - break; - case Keys.Up: - int ln = GetLineFromCharIndex(SelectionStart); - if (e.Control || ln == 0) - { - StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlUp : E_ArrowKeys.Up); - e.Handled = true; - } - // if shift-up & at selection had a link, handle this as special case. - if (e.Shift && SelectionLength > 0) - { - RangeStatus rs = FindRangeStatus(); - if (rs != RangeStatus.NoContainedLinks) - { - int curend = SelectionStart + SelectionLength; - SelectionLength = 0; - RtbSendKeys("{Up}"); - Application.DoEvents(); - Select(SelectionStart, curend - SelectionStart); - e.Handled = true; - } - } - else - { - HandleLocalSelectionChange(); - } - break; - case Keys.Right: - // If at beginning of box that starts with a link, don't worry about shift or not, - // because selection is first character or link without any other selection. Don't - // need to write code to handle link at beginning of box in Shift Right code because - // it's handled in HandleSelectionChange. - if (e.Shift && ((SelectionStart > 0) || (SelectionStart == 0 && _LinkLocations.Count > 0 && _LinkLocations[0].Start != 7))) - { - int newlen = FindlinkWidth(true,e.Control); - if (newlen == 0) // not on linked text - { - if (e.Shift && e.Control) - this.AutoWordSelection = true; - return; - } - else if (e.Shift && e.Control) - newlen++; - int len = SelectionLength + newlen; - SetSelection(SelectionStart, len); // adjust the selection around the linked text - e.Handled = true; - return; - } - if (e.Control || SelectionStart == this.Text.Length) - { - StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlRight : E_ArrowKeys.Right); - e.Handled = true; - } - HandleLocalSelectionChange(); - break; - case Keys.Down: - int l = GetLineFromCharIndex(SelectionStart); - Point pos = new Point(); - pos.X = ClientRectangle.Width; - pos.Y = ClientRectangle.Height; - int lastIndex = this.GetCharIndexFromPosition(pos); - int lastLine = this.GetLineFromCharIndex(lastIndex); - if (e.Control || l >= lastLine) - { - StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlDown : E_ArrowKeys.Down); - HandleLocalSelectionChange(); - e.Handled = true; - return; - } - if (!e.Shift) HandleLocalSelectionChange(); - // if shift-down & on link at beginning of box - do special processing (regular processing - // didn't handle it correctly. - if (e.Shift && lastLine > 0 && SelectionStart == 0 && _LinkLocations.Count > 0 && _LinkLocations[0].Start == 7) - { - Point cpos = GetPositionFromCharIndex(SelectionStart); - int addon = ClientRectangle.Height / (lastLine + 1); - cpos.Y = cpos.Y + addon; - int selend = GetCharIndexFromPosition(cpos); - Select(7, selend - 7); - e.Handled = true; - } - break; - case Keys.PageUp: - StepRTB_PageKeyPressed(e); - e.Handled = true; - break; - case Keys.PageDown: - StepRTB_PageKeyPressed(e); - e.Handled = true; - break; - case Keys.Delete: - if (SelectionLength == 0) - { - foreach (LinkLocation lls in _LinkLocations) - { - if (SelectionStart >= lls.Start - 7 && SelectionStart < lls.End) - { - SetSelection(lls);// Select the link to the right - HandleDeleteKeyWithSelectedText(e, null); - e.SuppressKeyPress = true; - return; - } - } - if (SelectionStart != TextLength) - { - SelectionStart++;// A Delete can be accomplished with a right arrow followed by a backspace. - RtbSendKeys("{BS}"); // This is done due to a glitch in the RichTextBox that sometimes causes a beep rather than a delete - e.SuppressKeyPress = true; - } - } - else - HandleDeleteKeyWithSelectedText(e, null); - break; - case Keys.Back: - if (_SendBackSpace) - { - _SendBackSpace = false; - return; - } - _CheckSelection = true; - if (SelectionLength == 0) - { - foreach (LinkLocation lls in _LinkLocations) - { - if (SelectionStart > lls.Start - 7 && SelectionStart <= lls.End) - { - SetSelection(lls); - break; - } - } - } - if (SelectionLength > 0) HandleDeleteKeyWithSelectedText(e, null); - break; - case Keys.Insert: - //_OverWrite = !_OverWrite; - //if (_OverWrite) - //{ - // HandleSelectionChange(); - //} - //else - //{ - // SelectionLength = 0; - // HandleSelectionChange(); - //} - // For now, don't allow for toggling between insert/overwrite mode - see - // comment on _OverWrite - e.Handled = true; - break; - case Keys.F5: - if (e.Shift) - { - e.Handled = true; - ItemInfo myCopyStep = (this.Parent.Parent.Parent as StepTabPanel).MyDisplayTabControl.MyCopyStep; - if (myCopyStep != null) - { - if (this.MyItemInfo.IsSection && myCopyStep.IsSection) - OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste")); - if (this.MyItemInfo.IsStep && myCopyStep.IsStep) - { - if ((this.MyItemInfo.IsHigh && myCopyStep.IsHigh) || (!this.MyItemInfo.IsHigh && !myCopyStep.IsHigh)) - OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste")); - } - } - //if (!OnCheckClipboard(this, new EventArgs())) return; // check if 'clipboard' contains a step. - //OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste")); - } - else if (!e.Control && !e.Alt) - { - e.Handled = true; - OnCopyStep(this, new EventArgs()); - } - break; - case Keys.F6: - e.Handled = true; - SendKeys.Send("%H{ESC}"); - break; - case Keys.Tab: - VlnFlexGrid myGrid = Parent as VlnFlexGrid; - if (myGrid == null) - { - e.SuppressKeyPress = true; - e.Handled = true; - Form frm = ParentForm(this); - if (frm != null) - frm.SelectNextControl(this, true, true, true, true); - else - StepRTB_ArrowPressed(e.Shift ? E_ArrowKeys.CtrlUp : E_ArrowKeys.CtrlRight); - } - else - { - if (e.Shift) - { - e.SuppressKeyPress = true; - e.Handled = true; - if (!myGrid.SelectPrevCell()) - { - // don't do anything if at top (for now) - } - } - else - { - e.SuppressKeyPress = true; - e.Handled = true; - if (!myGrid.SelectNextCell()) - { - myGrid.MyBorders.InsertRow(myGrid.Rows.Count - 1); - myGrid.Rows.Add(1); - myGrid.SelectNextCell(); - } - } - } - break; - case Keys.Enter: - if (!e.Control && !e.Shift && !e.Alt) - { - OnEnterKeyPressed(sender, e); - } - break; - case Keys.F2: - if (e.Alt && !e.Control && !e.Shift) // toggle change bar - { - OnToggleChangeBar(this, new EventArgs()); - e.Handled = true; - } - break; - case Keys.F7: - if (!e.Alt) // for the Include On check boxes on the step properties page - { - if (e.Control && e.Shift) // Toggle include on Placekeeper as Continuous Action - OnTogglePlaceKeeperContAct(this, new EventArgs()); - else if (e.Control) // Toggle include on Placekeeper - OnTogglePlaceKeeper(this, new EventArgs()); - else if (e.Shift) // toggle include on Continuous Action Summary - OnToggleContinuousActionSummary(this, new EventArgs()); - e.Handled = true; - } - break; - } - if (e.KeyValue == 187 && e.Control) // equal key pressed - { - if (e.Shift) // superscript - { - OnToggleSuperScript(this, new EventArgs()); - } - else // subscript - { - OnToggleSubScript(this, new EventArgs()); - } - e.Handled = true; - } - } - private static Form ParentForm(Control ctrl) - { - while (!(ctrl.Parent is Form || ctrl.Parent is EditItem)) - ctrl = ctrl.Parent; - return ctrl.Parent as Form; - } - private void StepRTB_HomeEndPressed(KeyEventArgs keyargs) - { - if (MyItemInfo.IsProcedure || MyItemInfo.IsSection) return; - // Cursor moves out of box only if control is pressed too - otherwise key is - // handled in rtb. - //if (keyargs.Control)MyRTBItem.MyStepPanel.StepCursorKeys(this, keyargs); // Replaced with an event - if (keyargs.Control) OnCursorKeyPress(this, keyargs); - } - private void StepRTB_PageKeyPressed(KeyEventArgs keyargs) - { - if (MyItemInfo.IsProcedure || MyItemInfo.IsSection) return; - //MyRTBItem.MyStepPanel.StepCursorKeys(this, keyargs); Replaced with an event - OnCursorKeyPress(this, keyargs); - } - public void StepRTB_ArrowPressed(E_ArrowKeys key) - { - Point cp = PointToClient(Cursor.Position); - //MyRTBItem.MyStepPanel.CursorMovement(this, cp, key); Replaced with an event - OnCursorMovement(this, new StepRTBCursorMovementEventArgs(cp, key)); - } - private void StepRTB_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) - { - if (!ReadOnly) - { - if (Text == "" && Parent != null && Parent is VlnFlexGrid) - { - //ShowMyParentsFonts(); - SelectionFont = Parent.Font; - } - // add the character with its font depending on the char.... - if (!IsControlChar) - { - string strpressed = null; - if (e.KeyChar == '-') - strpressed = GetAddSymbolText(@"\u8209?"); - else - strpressed = e.KeyChar.ToString(); - if (e.KeyChar >= ' ') - { - LinkLocation ll = FindBetweenLinks(); - if (ll != null && SelectionLength == 0) // SelectionLength = 0 means insert - { - if (e.KeyChar == '}') - strpressed = @"\}"; - else if (e.KeyChar == '{') - strpressed = @"\{"; - InsertCharBetweenLinks(ll, strpressed); // e.KeyChar); - e.Handled = true; - } - else if (SelectionLength != 0) - { - HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), strpressed); - e.Handled = true; - } - } - if (!e.Handled) - { - if (e.KeyChar == '-') - AddSymbol(@"\u8209?"); - else if (e.KeyChar == '{') - AddRtf(@"\{"); - else if (e.KeyChar == '}') - AddRtf(@"\}"); - else if (e.KeyChar == '\\') - AddRtf(@"\\"); - else - return; - e.Handled = true; // flag that it's been handled, otherwise, will get 2 chars. - } - if (e.Handled && SelectionLength != 0) SelectionFont = MyStyleFont.WindowsFont; - } - IsControlChar = false; - } - } - private void RtbSendKeys(string keys) - { - Focus(); - SendKeys.Send(keys); // With .Net Framework 3.0 this can be replaced with EditingCommands - // http://msdn.microsoft.com/en-us/library/ms771634.aspx - } - public bool PasteRtfAsText(bool PasteNoReturnsSetting) - { - // check if rtf is coming from Word, i.e. if it has 'SCHEMAS.MICROSOFT.COM/OFFICE/WORD'. - // If it is coming from Word, it will be pasted as text so as not to get any rtf commands - // that PROMS does not support such as odd Fonts, other symbols, etc. This isn't a complete - // solution, clipboard data may come from other 3rd-party tools and unsupported Rtf may get - // pasted in. But the hope is that this will happen less often than getting it from MS Word. - IDataObject myDO = Clipboard.GetDataObject(); - if (myDO.GetDataPresent(DataFormats.Text)) return false; - string tmpForLink = myDO.GetData(DataFormats.Rtf).ToString(); - if (tmpForLink.ToUpper().Contains(@"SCHEMAS.MICROSOFT.COM/OFFICE/WORD")) - { - SelectedText = GetPasteText(PasteNoReturnsSetting, myDO); - return true; - } - return false; - } - - public string GetPasteText(bool PasteNoReturnsSetting, IDataObject myDO) - { - // allowable symbols are those symbols between 127-256 that the proms editor supports that - // can be pasted from word as is. These symbols are (in the order they are in the following - // string): degree, plus/minus, exponent 2, exponent 3, micro, quarter, half, divide: - char[] allowableSymbols = { '\xb0', '\xb1', '\xb2', '\xb3', '\xb5', '\xbc', '\xbd', '\xf7' }; - string ptext = myDO.GetData(DataFormats.Text).ToString(); - ptext = ptext.TrimEnd("\r\n\t ".ToCharArray()); - if (PasteNoReturnsSetting) ptext = ptext.Replace("\r\n", " "); - StringBuilder sb = new StringBuilder(ptext); - bool didCharReplace = false; - for (int i = 0; i < ptext.Length; i++) - { - // if allowable, allow for it to pasted. Otherwise, replace that character with a '?'. - if ((sb[i] > 0x7e)) - if ((ptext.Substring(i, 1).IndexOfAny(allowableSymbols) < 0)) - { - sb[i] = '?'; - didCharReplace = true; - } - } - ptext = sb.ToString(); - ptext = ptext.Replace("\u2013", "-"); // Replace EN Dash with hyphen - ptext = ptext.Replace("\u2014", "-"); // Replace EM Dash with hyphen - ptext = ptext.Replace("\u2011", "-"); // Replace non-breaking hyphen with hyphen - if (didCharReplace) - MessageBox.Show("Replacing pasted characters that are not supported by Proms with a '?'."); - return ptext; - } - private void DoDeleteEndBetweenLinks() - { - DebugSelection("Beginning"); - int sstart = SelectionStart; - RtbSendKeys("{RIGHT} "); // open for space between links which separates END/START tokens - SetSelection(sstart, SelectionStart - sstart - 1); // 1 is accounting for typed space - DebugSelection("SetSelection"); - RtbSendKeys("{DELETE}"); // deletes text including link - RtbSendKeys("{RIGHT}{BS}"); // deletes space that was added - } - private void DoDeleteStartBetweenLinks() - { - int slen = SelectionLength; - RtbSendKeys("{LEFT} "); - SetSelection(SelectionStart, slen + 7); - RtbSendKeys("{DELETE}"); - RtbSendKeys("{BS}"); - } - #endregion - #region LinkSelectionAndHandling - public bool IsSelectionLinked(int index, int len) - { - if (_LinkLocations == null)return false; - int sel = index; - int selLength = len; - foreach (LinkLocation ll in _LinkLocations) - { - // When the selector moved to the right of a link, the GOTO button was still lit. - // Removing the "+7" seems to have fixed this. - jsj 1/08/2010 - //if (sel >= ll.Start && sel < ll.Start + ll.Length + 7) return true; - if (sel >= ll.Start && sel < ll.Start + ll.Length) return true; - } - return false; - } - /// - /// For use in Find/Replace. - /// If text is found is part of the link information and not the link value, - /// then we want to continue searching. - /// - /// - /// - /// - public bool SkipLinkInfo(int index, int len) - { - if (_LinkLocations == null)return false; - int sel = index; - int selLength = len; - foreach (LinkLocation ll in _LinkLocations) - { - if (sel >= ll.Start - 7 && sel < ll.Start + ll.Length) - { - int pos = ll.Text.IndexOf("#Link:"); - if (sel < ll.Start || sel >= ll.Start-7+pos) - return (true); - } - } - return false; - } - #endregion - #endregion - #region SelectionStack - Stack _SelectionStack = null; - public Stack SelectionStack - { - get - { - if (_SelectionStack == null) - _SelectionStack = new Stack(); - return _SelectionStack; - } - } - public void PushSelection() - { - SelectionStack.Push(new SelectionData(this)); - } - public void PopSelection() - { - SelectionData selection = SelectionStack.Pop(); - if (SelectionStack.Count == 0) - _SelectionStack = null; - Select(selection.SelectionStart, selection.SelectionLength); - selection = null; - } - public class SelectionData - { - int _SelectionStart; - public int SelectionStart - { - get { return _SelectionStart; } - set { _SelectionStart = value; } - } - int _SelectionLength; - public int SelectionLength - { - get { return _SelectionLength; } - set { _SelectionLength = value; } - } - public SelectionData(RichTextBox richTextBox) - { - _SelectionStart = richTextBox.SelectionStart; - _SelectionLength = richTextBox.SelectionLength; - } - } - #endregion - #region Link Support - int _ProcessingKeys = 0; - - List _LinkLocations; - public List LinkLocations - { - get { return _LinkLocations; } - } - private int _FALLevel = 0; - private bool _IdentifyingLinks = false; - public void FindAllLinks() - { - if (_IdentifyingLinks || _ProcessingDelete) return; - //DebugPrint("FAL{0}vvvvvvvvvvvvvvvvvvvvvvvvv>>", ++_FALLevel); - _AdjustingSelection = true; - PushSelection(); - FindLinks(); - //IdentifyLinks(); - PopSelection(); - LinkLocation llx = FindLinkLocation(); - if (_CheckSelection) - { - if (llx != null) SetSelection(llx.End, 0); - _CheckSelection = false; - } - _AdjustingSelection = false; - if (!_ProcessingDelete) - OnLinkLocationChanged(this, new EventArgs()); - //DebugPrint("FAL{0}^^^^^^^^^^^^^^^^^^^^^^^^^>>", _FALLevel--); - - } - private void FindLinks() - { - //int oldRegexCacheSize = Regex.CacheSize; - string str = Text; - _LinkLocations = new List(); - MatchCollection matches = Regex.Matches(str, @"", RegexOptions.Singleline); - MatchCollection matchesRtf = Regex.Matches(Rtf, "", RegexOptions.Singleline); - LinkLocation thisLink = null; - for (int i = 0; i < matches.Count; i++) //each (Match match in matches) - { - Match match = matches[i]; - Match matchrtf = matchesRtf[i]; - thisLink = new LinkLocation(match.Index + 7, // If the [END> is immediately followed by "); - if (_LinkLocations == null) return null; - foreach (LinkLocation ll in _LinkLocations) - if (ll.Start == start && ll.StartsBetween) - return ll; - return null; - } - private LinkLocation FindLinkLocation() - { - return FindLinkLocation(SelectionStart); - } - private LinkLocation FindLinkLocation(int sel) - { - //DebugPrint("FL----------------Location>"); - if (_LinkLocations == null) return null; - foreach (LinkLocation ll in _LinkLocations) - { - // Moving right: - // if less than, allows stopping between two links - if (ll.Start < sel && ll.End > sel) - { - DebugPrint("Greater Than {0} {1} {2}", sel, ll.Start, ll.End); - return ll; - } - // if less than or equal, does not stop between two links - if ((!ll.StartsBetween) && ll.Start <= sel && ll.End > sel) - { - DebugPrint("Greater Than or Equal {0} {1} {2}", sel, ll.Start, ll.End); - return ll; - } - } - return null; - } - public DialogResult ReplaceText(string rpltxt, string fndstr, bool caseSensitive, bool matchWholeWord, bool reverse, bool prompt, IWin32Window fndrpldlg) - { - DialogResult dlgrslt = DialogResult.Yes; - if (SelectionLength > 0) - { - if (IsSelectionLinked(SelectionStart, SelectionLength)) - { - MessageBox.Show(fndrpldlg,"Cannot replace linked text!", "Find/Replace"); - dlgrslt = DialogResult.No; - } - else - { - if (prompt) - dlgrslt = MessageBox.Show(fndrpldlg,"Replace This Occurence?", "Replace Text", MessageBoxButtons.YesNoCancel); - if (dlgrslt == DialogResult.Yes) - SelectedText = rpltxt; - } - } - return dlgrslt; - } - private RichTextBoxFinds _FindOptions = RichTextBoxFinds.None; - public bool FindText(string str, bool caseSensitive, bool matchWholeWord, bool reverse) - { - using (StepRTB savRTF = new StepRTB()) - { - int startpos = SelectionStart + SelectionLength; - savRTF.Text = this.Text; - - _FindOptions = RichTextBoxFinds.None; - if (caseSensitive) - _FindOptions |= RichTextBoxFinds.MatchCase; - if (matchWholeWord) - _FindOptions |= RichTextBoxFinds.WholeWord; - if (reverse) - { - _FindOptions |= RichTextBoxFinds.Reverse; - savRTF.Text = this.Text.Substring(0, SelectionStart); - startpos = savRTF.Text.Length; - if (startpos == 0) - return false; // at beginning of rtfbox during a reverse find - } - else - { - if (startpos >= savRTF.Text.Length) - return false; // at end of rtfbox during a forward find - } - // look for the find string in the temporary rtfbox - // then set the cursor selection in the real rtfbox - bool keepgoing = true; - while (keepgoing) - { - int pos = savRTF.Find(str, startpos, _FindOptions); - keepgoing = false; - if (pos >= 0) - { - if (this.SkipLinkInfo(pos, str.Length)) - { - if (reverse) - { - startpos--; - savRTF.Text = savRTF.Text.Substring(0, startpos); - } - else - startpos++; - if (startpos > 0 && startpos < savRTF.Text.Length) - keepgoing = true; - } - else - { - SelectionStart = pos; - SelectionLength = str.Length; - } - } - else - return false; - } - return true; - } - } - private int FindStart() - { - foreach (LinkLocation ll in _LinkLocations) - { - if (SelectionStart == ll.End) return ll.Start; - if (SelectionStart == ll.Start) - { - if (ll.Start == 7) return 7; - return ll.Start - 8; - } - } - if (SelectionStart > 0) return SelectionStart - 1; - return 0; - } - private int FindEnd() - { - foreach (LinkLocation ll in _LinkLocations) - { - if (SelectionStart + SelectionLength + 7 == ll.Start) return ll.Length + 7; - // this is for in-between links - if (SelectionStart + SelectionLength == ll.Start) return ll.Length; - } - if (SelectionStart + SelectionLength < TextLength) return 1; - return 0; - } - private int FindEndDown() - { - foreach (LinkLocation ll in _LinkLocations) - { - if (SelectionStart + SelectionLength >= ll.Start && SelectionStart + SelectionLength <= ll.End) return ll.End; - } - return 0; - } - // if the selection is on linked text, then return the length of that linked text (the rtf length) - private int FindlinkWidth(bool movingRight, bool ctrlKey) - { - foreach (LinkLocation ll in _LinkLocations) - { - int selLen = SelectionLength + ((movingRight) ? 7 : 0); - if (SelectionStart + selLen >= ll.Start && SelectionStart + selLen - ((!movingRight && ctrlKey)?1:0) <= ll.End) return ll.End - ll.Start + 7; - } - return 0; - } - private int FindStartUp() - { - foreach (LinkLocation ll in _LinkLocations) - { - if ((SelectionStart >= ll.Start) && (SelectionStart <= ll.End)) return ll.Start; - } - return -1; - } - public void SetSelection(LinkLocation ll) - { - SetSelection(ll.Start, ll.Length); - } - public void SetSelection(int locStart, int locLength) - { - //Application.DoEvents(); // Not needed since SendKeys is always done last. - if (_IdentifyingLinks) - DebugPrint("SS------------------------> {0} {1}", locStart, locLength); - else - DebugPrint("SS========================> {0} {1}", locStart, locLength); - Select(locStart, locLength); - } - #endregion - //#region FontAndStylesSupport - //private void ToggleFontStyle(FontStyle style, bool att_on) - //{ - // int start = SelectionStart; - // int len = SelectionLength; - // System.Drawing.Font currentFont; - // FontStyle fs; - // for (int i = 0; i < len; ++i) - // { - // Select(start + i, 1); - // currentFont = SelectionFont; - // fs = currentFont.Style; - // //add or remove style - // if (!att_on)fs = fs | style; - // else fs = fs & ~style; - - // SelectionFont = new Font( - // currentFont.FontFamily, - // currentFont.Size, - // fs - // ); - // } - //} - /// - /// Returns a Font with: - /// 1) The font applying to the entire selection, if none is the default font. - /// 2) The font size applying to the entire selection, if none is the size of the default font. - /// 3) A style containing the attributes that are common to the entire selection, default regular. - /// - /// - //public Font GetFontDetails() - //{ - // //This method should handle cases that occur when multiple fonts/styles are selected - - // int start = SelectionStart; - // int len = SelectionLength; - // int TempStart = 0; - - // if (len <= 1) - // { - // // Return the selection or default font - // if (SelectionFont != null) - // return SelectionFont; - // else - // return Font; // should be default from format. - // } - - // // Step through the selected text one char at a time - // // after setting defaults from first char - // _rtbTemp.Rtf = SelectedRtf; - - // //Turn everything on so we can turn it off one by one - // FontStyle replystyle = - // FontStyle.Bold | FontStyle.Italic | FontStyle.Underline; - - // // Set reply font, size and style to that of first char in selection. - // _rtbTemp.Select(TempStart, 1); - // string replyfont = _rtbTemp.SelectionFont.Name; - // float replyfontsize = _rtbTemp.SelectionFont.Size; - // replystyle = replystyle & _rtbTemp.SelectionFont.Style; - - // // Search the rest of the selection - // for (int i = 1; i < len; ++i) - // { - // _rtbTemp.Select(TempStart + i, 1); - - // // Check reply for different style - // replystyle = replystyle & _rtbTemp.SelectionFont.Style; - - // // Check font - // if (replyfont != _rtbTemp.SelectionFont.FontFamily.Name) - // replyfont = ""; - - // // Check font size - // if (replyfontsize != _rtbTemp.SelectionFont.Size) - // replyfontsize = (float)0.0; - // } - - // // Now set font and size if more than one font or font size was selected - // if (replyfont == "") - // replyfont = _rtbTemp.Font.FontFamily.Name; - - // if (replyfontsize == 0.0) - // replyfontsize = _rtbTemp.Font.Size; - - // // generate reply font - // Font reply - // = new Font(replyfont, replyfontsize, replystyle); - - // return reply; - //} - //#endregion - #region EnumsSelectionRange - private enum StartStatus : int - { - Before = 100, - Between = 200, - StartLink = 300, - StartBox = 400 - }; - private enum EndStatus : int - { - After = 1, - Between = 2, - EndLink = 3, - EndBox = 4, - StartLink = 5 - }; - public enum RangeStatus : int - { - NoContainedLinks = 0, - Before_After = StartStatus.Before + EndStatus.After, - Before_Between = StartStatus.Before + EndStatus.Between, - Before_EndLink = StartStatus.Before + EndStatus.EndLink, - Before_EndBox = StartStatus.Before + EndStatus.EndBox, - Before_StartLink = StartStatus.Before + EndStatus.StartLink, - Between_After = StartStatus.Between + EndStatus.After, - Between_Between = StartStatus.Between + EndStatus.Between, - Between_EndLink = StartStatus.Between + EndStatus.EndLink, - Between_EndBox = StartStatus.Between + EndStatus.EndBox, - Between_StartLink = StartStatus.Between + EndStatus.StartLink, - StartLink_After = StartStatus.StartLink + EndStatus.After, - StartLink_Between = StartStatus.StartLink + EndStatus.Between, - StartLink_EndLink = StartStatus.StartLink + EndStatus.EndLink, - StartLink_EndBox = StartStatus.StartLink + EndStatus.EndBox, - StartLink_StartLink = StartStatus.StartLink + EndStatus.StartLink, - StartBox_After = StartStatus.StartBox + EndStatus.After, - StartBox_Between = StartStatus.StartBox + EndStatus.Between, - StartBox_EndLink = StartStatus.StartBox + EndStatus.EndLink, - StartBox_EndBox = StartStatus.StartBox + EndStatus.EndBox, - StartBox_StartLink = StartStatus.StartBox + EndStatus.StartLink - }; - private RangeStatus _RTBRangeStatus; - public RangeStatus RTBRangeStatus - { - get { return _RTBRangeStatus; } - set - { - _RTBRangeStatus = value; - if (!_ProcessingDelete) OnRTBRangeStatusChanged(this, new EventArgs()); - } - } - private LinkLocation _RangeStartLink = null; - private LinkLocation _RangeEndLink = null; - public RangeStatus FindRangeStatus() - { - _RangeStartLink = null; - _RangeEndLink = null; - if (_LinkLocations == null || _LinkLocations.Count == 0) - { - return RTBRangeStatus = RangeStatus.NoContainedLinks; - } - LinkLocation foundLink = null; - int start = SelectionStart; - int end = start + SelectionLength; - - foreach (LinkLocation ll in _LinkLocations) - { - if (foundLink == null && ((ll.Start >= start && ll.Start < end) || (ll.End >= start && ll.End < end))) - foundLink = ll; - if (_RangeStartLink == null && start >= ll.Start - 7 && start < ll.End) - _RangeStartLink = ll; - if (_RangeEndLink == null && end >= ll.Start && end <= ll.End) - _RangeEndLink = ll; - } - DebugPrint("SelectionStart {0}, SelectionEnd {1}, TextLength {2}", - SelectionStart, SelectionStart + SelectionLength, - TextLength); - //if (_RangeStartLink != null) - // _RangeStartLink.Show("startLink"); - //if (_RangeEndLink != null) - // _RangeEndLink.Show("endLink"); - //if (foundLink != null) - // foundLink.Show("foundLink"); - - if (foundLink == null) - return RTBRangeStatus = RangeStatus.NoContainedLinks; - - StartStatus myStartStatus = StartStatus.Before; - EndStatus myEndStatus = EndStatus.After; - if (_RangeStartLink != null) - { - if (_RangeStartLink.Start == 7) - myStartStatus = StartStatus.StartBox; - else if (_RangeStartLink.StartsBetween) - myStartStatus = StartStatus.Between; - else - myStartStatus = StartStatus.StartLink; - } - if (_RangeEndLink != null) - { - if (_RangeEndLink.End == TextLength) - myEndStatus = EndStatus.EndBox; - else if (_RangeEndLink.NextStart == _RangeEndLink.End) - myEndStatus = EndStatus.Between; - else if (end == _RangeEndLink.Start) - myEndStatus = EndStatus.StartLink; // Should not happen because of code in HandleSelectionChange - else //if (end == endLink.End) - myEndStatus = EndStatus.EndLink; - } - return RTBRangeStatus = (RangeStatus)((int)myStartStatus + (int)myEndStatus); - } - #endregion - #region OutlineTable - private string _CheckRight = "-\u2500\u2011"; - public string CheckRight - { - get { return _CheckRight; } - set { _CheckRight = value; } - } - private string _CheckAbove = "|\u2502\u2514\u252c\u253c\u251c\u250c\u2534\u2510\u2524"; - public string CheckAbove - { - get { return _CheckAbove; } - set { _CheckAbove = value; } - } - private string _CheckLeft = "-\u2500\u2524\u252c\u251c\u253c\u250c\u2510\u2514\u2011"; - public string CheckLeft - { - get { return _CheckLeft; } - set { _CheckLeft = value; } - } - private string _CheckBelow = "|\u2502"; - public string CheckBelow - { - get { return _CheckBelow; } - set { _CheckBelow = value; } - } - // This is a table of graphics characters - // The index into this table (0-15) is a bitmask with each bit representing - // a different direction from the current character. - // Right is Bit 0 (0 or 1) - // Above is Bit 1 (0 or 2) - // Left is Bit 2 (0 or 4) - // Below is Bit 3 (0 or 8) - // The index is contolled in the following way: - // If there is a graphics character to the right, then you add 1 - // If there is a graphics character above, then you add 2 - // If there is a graphics character left, then you add 4 - // If there is a graphics character below, then you add 8 - // The total results in an index into this array and gives the appropriate character - // combining horizontal and vertical lines. - - static private string [] TableCharsU = { - "\x0", // HEX"\x0", // No character - @"\u9472", // HEX@"\u2500",// - Horizontal line - 16-bit char: '\xC4' - @"\u9474", // HEX@"\u2502",// | Vertical line - 16-bit char: '\xB3' - @"\u9492", // HEX@"\u2514",// L Bottom Left corner - 16-bit char: '\xC0' - @"\u9472", // HEX@"\u2500",// - Horizontal line - 16-bit char: '\xC4' - @"\u9472", // HEX@"\u2500",// - Horizontal line - 16-bit char: '\xC4' - @"\u9496", // HEX@"\u2518",// Bottom Right Corner - 16-bit char: '\xD9' - @"\u9524", // HEX@"\u2534",// Bottom Tee - 16-bit char: '\xC1' - @"\u9474", // HEX@"\u2502",// | Vertical Bar - 16-bit char: '\xB3' - @"\u9484", // HEX@"\u250c",// Upper Left corner - 16-bit char: '\xDA' - @"\u9474", // HEX@"\u2502",// | Vertical Bar - 16-bit char: '\xB3' - @"\u9500", // HEX@"\u251c",// Left Tee - 16-bit char: '\xC3' - @"\u9488", // HEX@"\u2510",// Upper Right corner - 16-bit char: '\xBF' - @"\u9516", // HEX@"\u252c",// T Top Tee - 16-bit char: '\xC2' - @"\u9508", // HEX@"\u2524",// Right Tee - 16-bit char: '\xB4' - @"\u9532", // HEX@"\u253c" // + Plus - 16-bit char: '\xC5' - }; - - private int MaxCharacterWidth() - { - // loop through lines and get the width in characters - int w = 0; - foreach (string line in Lines) - { - string cleanLine = RemoveLinkComments(line); - if (w < cleanLine.Length) - w = cleanLine.Length; - } - return w; - } - internal static string RemoveLinkComments(string line) - { - StringBuilder sb = new StringBuilder(); - int lastIndex = 0; - MatchCollection mc = Regex.Matches(line, @"", RegexOptions.Singleline); - foreach (Match m in mc) - { - sb.Append(line.Substring(lastIndex, m.Index - lastIndex)); // Append text before the link - sb.Append(m.Groups[1].Value); // Append the text portion of the link - lastIndex = m.Index + m.Length; // Calculate the beginning of the remaining text - } - sb.Append(line.Substring(lastIndex)); // Append the text following the last link - string result = sb.ToString(); - result = result.Replace(@""); - if (mcEnd.Count > 0) - { - result = result.Substring(0, mcEnd[0].Index) + result.Substring(mcEnd[0].Index + mcEnd[0].Length); - } - return result; - } - private void ReplaceLinesInTable(bool withBorder) - { - int rowWidth = Lines[0].Length; - for (int row=1;row", RegexOptions.Singleline);// this last parameter was commented out in 7/24/09 but it appears to be valid - if (matchCollection.Count == 0) matchCollection = Regex.Matches(line, @""); - Match match = matchCollection.Count > 0 ? matchCollection[0] : null; - int matchOffset = 0; - for (int col = 1; col < rowWidth - 1; col++) - { - if (match != null && match.Index == matchOffset + col) - { - matchOffset += match.Length - match.Groups[1].Length; // Increment the offset by the link comment length - col += match.Groups[1].Length; // increment the column by the link value length - if (col >= rowWidth - 1) break;// Don't continue if beyond the contents - match = match.NextMatch(); // Watch for the next match - } - int coll = matchOffset + col; - char chr = line[coll]; - char chrLast = line[coll - 1]; - char chrNext = line[coll + 1]; - char chrAbove = lineAbove[col]; - char chrBelow = lineBelow[col]; - // The following is all using symbol font (either unicode for proportional or - // VeSymbFix for fixed font): - // if this character is a table line draw character, i.e. a dash or vertical bar, or - // graphics characters for those, look around it to see what table character it is - // replaced with - - // Look for -||-- (last three are graphics chars or unicode dash) - if ("-|\u2500\u2502\u2011".IndexOf(chr) > -1) - { - bool horizontalCharacter = "-\u2500\u2011".IndexOf(chr) > -1; - int lineDrawRight = (CheckRight.IndexOf(chrNext) > -1 || (horizontalCharacter && "\u2502".IndexOf(chrNext) > -1)) ? 1 : 0; - int lineDrawAbove = (CheckAbove.IndexOf(chrAbove) > -1 || (!horizontalCharacter && "\u2500\u2011".IndexOf(chrAbove) > -1)) ? 2 : 0; - int lineDrawLeft = (CheckLeft.IndexOf(chrLast) > -1 || (horizontalCharacter && "\u2502".IndexOf(chrLast) > -1)) ? 4 : 0; - int lineDrawBelow = (CheckBelow.IndexOf(chrBelow) > -1 || (!horizontalCharacter && "-\u2500\u2011".IndexOf(chrBelow) > -1)) ? 8 : 0; - int tableCharIndx = lineDrawRight + lineDrawAbove + lineDrawLeft + lineDrawBelow; - if (tableCharIndx > 0) - { - SetTableChar(row, coll, tableCharIndx); - if (withBorder) // Adjust the border as it intersects with lines within the box - { - if (row == 1 && !horizontalCharacter ) SetTableChar(row - 1, col, 13); // Top Row - if (row == Lines.Length - 2 && !horizontalCharacter) SetTableChar(row + 1, col, 7); // Bottom Row - if (col == 1 && horizontalCharacter && ((tableCharIndx & 4)==4)) SetTableChar(row, col - 1, 11); // First Column - if (col == rowWidth - 2 && horizontalCharacter && ((tableCharIndx & 1) == 1)) SetTableChar(row, coll + 1, 14); // Last Column - } - } - } - } - } - } - private void SetTableChar(int row, int col, int tableCharIndx) - { - int rowOffset = GetFirstCharIndexFromLine(row); - Select(rowOffset + col, 1); - string charToBeReplaced = SelectedText; - if (Text.Length > (rowOffset + col + 7) && Text.Substring(rowOffset + col + 1, 6) != "#Link:") - SelectedRtf = RtfPrefixForSymbols + TableCharsU[tableCharIndx] + "?}"; - else - { - SelectionStart++; - int lenComment = 1 + SelectionStart - (rowOffset + col); - //Console.WriteLine("{0},{1},{2}", rowOffset + col, SelectionStart, SelectionLength); - Select(rowOffset + col, 0); - SelectedRtf = RtfPrefixForSymbols + TableCharsU[tableCharIndx] + "?}"; - Select(rowOffset + col, lenComment); - //Console.WriteLine("'{0}',{1},{2},{3}", SelectedText, lenComment, SelectionLength, SelectionStart); - //Console.WriteLine("'{0}'", SelectedRtf); - SelectedRtf = SelectedRtf.Replace(" " + charToBeReplaced, ""); - } - } - #endregion - #region SpellChecker - private static bool _DoSpellCheck = true; - public static bool DoSpellCheck - { - get { return StepRTB._DoSpellCheck; } - set { StepRTB._DoSpellCheck = value; } - } - // We made the Spell Checker method a static so that all of the StepRTB boxes will bare the same instance of the dictionary. - // This allow all the StepRTB's to automatically update when a new word is added. - private static C1.Win.C1SpellChecker.C1SpellChecker _C1SpellChecker2; - - private static C1.Win.C1SpellChecker.C1SpellChecker C1SpellChecker2 - { - get - { - if (_C1SpellChecker2 == null) - { - _C1SpellChecker2 = new C1.Win.C1SpellChecker.C1SpellChecker(); - _C1SpellChecker2.ContextMenuCreated += new C1.Win.C1SpellChecker.ContextMenuEventHandler(_C1SpellChecker2_ContextMenuCreated); - // The veproms.dct file is the main spell checker dictionary. - // We edited the C1 dictionary (C:\Program Files\ComponentOne\Dictionaries\C1Spell_en-US.dct) using ComponentOne's - // dictionary editor (C:\Program Files\ComponentOne\Studio for WinForms\C1SpellChecker\C1DictionaryEditor.exe) - // and added the veproms.words list as another word list in the dictionary. We saved the resulting file as veproms.dct. - string dictpath = string.Format(@"{0}\veproms.dct", Application.StartupPath); - - // Only use the veproms.dct if it is found in the BIN folder. Otherwise, let it default to use the standard dictionary. - if (File.Exists(dictpath)) - _C1SpellChecker2.MainDictionary.FileName = dictpath; // looks in the bin folder by default - - // NOTE: By default, a "Custom.dct" file (UserDictionary) will be created in the BIN folder when a user adds words to the - // spell checker dictionary. The words that the user adds are not placed in the Volian.dct file. - //_C1SpellChecker2.UserDictionary.FileName = @"C:\Development\proms\VEPROMS User Interface\bin\Debug\MYDictionary.dct"; - } - return StepRTB._C1SpellChecker2; - } - } - - // the grid uses this to reference the same instance of the spell checker - public C1.Win.C1SpellChecker.C1SpellChecker SpellCheckerInstance - { - get { return C1SpellChecker2; } - } - - // Get or Save our context menu - // This is added to the the spell checker's context menu for a mis-spelled word - private static ContextMenuStrip _ThisContextMenuStrip; - public ContextMenuStrip ThisContextMenuStrip - { - get { return _ThisContextMenuStrip; } - set { _ThisContextMenuStrip = value; } - } - - private static StepRTB _ContextMenuStepRTB; - private static object _ContextMenuStrip; - - static void _C1SpellChecker2_ContextMenuCreated(object sender, C1.Win.C1SpellChecker.ContextMenuEventArgs e) - { - // Adjust their bad word context menu - //Console.WriteLine("==========> spell check context menu {0}",e.Menu.Items[0].Text); - if (e.Menu.Equals(_ContextMenuStrip)) - { - // Add an item for our "Edit Menu" context menu on their spell check context menu - // This gives the user access to our regular context menu when on a mis-spelled word - ToolStripItem tsi = e.Menu.Items.Add("Edit Menu"); - tsi.Click += new EventHandler(tsi_Click); - //Now replace their "Spell" item with ours, so that we can display our custom spell check dialog - for (int i = 0; i < e.Menu.Items.Count; i++) - { - ToolStripItem tsi1 = e.Menu.Items[i]; - if (tsi1 is ToolStripMenuItem && tsi1.Text == "Spell") - { - e.Menu.Items.RemoveAt(i); // remove their spell check dialog item - ToolStripMenuItem tsi2 = new ToolStripMenuItem("Spell"); - tsi2.Click += new EventHandler(tsi2_Click); - e.Menu.Items.Insert(i, tsi2); // add our spell check dialog item - } - } - } - } - - static void tsi2_Click(object sender, EventArgs e) - { - C1SpellChecker2.CheckControl(_ContextMenuStepRTB, true, MySpellCheckDlg); - } - - // Click event to display our "Edit Menu" (StepRTB context menu) - static void tsi_Click(object sender, EventArgs e) - { - ToolStripMenuItem tsmi = sender as ToolStripMenuItem; - //_ContextMenuStepRTB.MyRTBItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.OpenContextMenu(tsmi.Owner.Location); - _ContextMenuStepRTB.OnOpenContextMenu(sender, new StepRTBLocationEventArgs(tsmi.Owner.Location)); - } - - // This is our customized Spell Check dialog - // This is display when the use clicks the Spell button from the Ribbon - // or when the "Spell" item is selected from the context menu when on a mis-spelled word - static VlnSpellCheckDlg _MySpellCheckDlg; - public static VlnSpellCheckDlg MySpellCheckDlg - { - get - { - if (_MySpellCheckDlg == null) - _MySpellCheckDlg = new VlnSpellCheckDlg(); - return _MySpellCheckDlg; - } - } - - // This is used when walking through the section doing a spell check - // (from the Spell button on the ribbon) - public bool SpellCheckNext() - { - int nBad = C1SpellChecker2.CheckControl(this, false, MySpellCheckDlg); - return (nBad >= 0); // nBad = -1 means user pressed Cancel button - } - - // This allows us to turn off/on the specll check context menu when we toggle in and out of View Mode. - // see btnToggleEditView_Click() in StepTabRibbon.cs - public void SpellCheckContextMenuOn(bool turnOnMenu) - { - C1SpellChecker2.Options.ShowSuggestionsInContextMenu = turnOnMenu; - } - #endregion - #region - public string DoNewLinkInGridCell() - { - // first find the new link and determine whether it's RO or transition. - int indx = Rtf.IndexOf(@"#Link:ReferencedObject:"); - if (indx > 0) - { - Match mro = Regex.Match(Rtf.Substring(indx, Rtf.Length - indx), @"([A-Za-z]*):(.*?)\[END>"); - string linkstr = mro.Groups[2].Value; - string[] roparts = linkstr.Split(" ".ToCharArray()); - ContentRoUsage rousg = null; - int oldid = -1; - using (Item itm = MyItemInfo.Get()) - { - using (RODb rodb = RODb.GetJustRoDb(Convert.ToInt32(roparts[2]))) - { - rousg = itm.MyContent.ContentRoUsages.Add(roparts[1], rodb); - } - //get temporary rousageid - oldid = rousg.ROUsageID; - Rtf = Rtf.Replace("", string.Format("", rousg.ROUsageID)); - //save temporary rousageid to get real rousageid - itm.Save(); - //replace temprorary rousageid with real rousageid - Rtf = Rtf.Replace(string.Format("", oldid), rousg.ROUsageID.ToString()); - //save real rousageid - itm.Save(); - MyItemInfo.MyContent.RefreshContentRoUsages(); - } - } - // Need to look for any 'New' transitions, don't include existing ones. - Match mt = Regex.Match(Rtf, @"#Link:Transition:([0-9]+) "); - if (mt.Length <= 0) mt = Regex.Match(Rtf, @"#Link:TransitionRange:([0-9]+) "); - if (mt.Length > 0) - { - indx = mt.Index+6; // get past '#Link:" - Match m = Regex.Match(Rtf.Substring(indx, Rtf.Length - indx), @"([A-Za-z]*):(.*?)\[END>"); - bool isSingleTran = true; - if (Rtf.Substring(indx, 16).IndexOf("TransitionRange") >= 0) isSingleTran = false; - string linkstr = m.Groups[2].Value; - string[] tparts = linkstr.Split(" ".ToCharArray()); - int type = System.Convert.ToInt32(tparts[0]); - int tr1 = System.Convert.ToInt32(tparts[2]); // tparts[2] is token for tranid - int tr2 = tr1; - if (tparts.Length > 3) - tr2 = System.Convert.ToInt32(tparts[3]); // tparts[3] is token for rangeid - bool dispose1 = false; - Item itm1 = null; - bool dispose2 = false; - Item itm2 = null; - using (Item itm = MyItemInfo.Get()) - { - if (itm.ItemID == tr1) - itm1 = itm; // a transition that points to itself should not dispose - else - { - dispose1 = true; - itm1 = Item.Get(tr1); - } - if (itm.ItemID == tr2) - itm2 = itm; // a transition that points to itself should not dispose - else if (tr1 == tr2) - itm2 = itm1; // if both destinations are the same only dispose the first one - else - { - dispose2 = true; - itm2 = Item.Get(tr2); - } - ContentTransition ct = itm.MyContent.ContentTransitions.Add(itm1, itm2); - //Console.WriteLine("CT {0},{1},{2},{3}", ct.TransitionID, itm.ItemID, itm.MyContent.MyContentUnique, itm.MyContent.ContentTransitions.Count); - ct.TranType = type; - if (isSingleTran) - ct.IsRange = 0; - else if (tr1 != tr2) - ct.IsRange = 1; - else - ct.IsRange = 2; - - int oldidt = ct.TransitionID; - Rtf = Rtf.Replace("", string.Format("", ct.TransitionID)); - itm.Save(); - Rtf = Rtf.Replace(string.Format("", oldidt), ct.TransitionID.ToString()); - itm.Save(); - MyItemInfo.MyContent.RefreshContentTransitions(); - } - - if (dispose2) itm2.Dispose(); - if (dispose1) itm1.Dispose(); - } - return Rtf; - } - #endregion - #region RoInsertInterface - public void UpdateStepRtb(string linktxt, string valtxt) - { - int ss = SelectionStart; // Remember where the link is being added - int sl = SelectionLength; - OnReturnToEditor(this, new EventArgs()); - Select(ss, sl); - InsertRO(valtxt, linktxt); // Insert the LINK - OnDoSaveContents(this, new EventArgs()); // .SaveText(); // Save the text with the LINK - This also moves the cursor to the end of the text - // By selecting a starting position within a link, StepRTB (HandleSelectionChange) will select the link - Select(ss + 7 + valtxt.Length, 0);// Select the link, Try 7 for " 255) && !"\r\n\t".Contains(c.ToString())) - // sb.Append(string.Format("x{0:X4}", (int)c)); - // else - // sb.Append(c); - // } - // return sb.ToString(); - //} - public bool IsDirty - { - get - { - return IsGridChanged(this._MyItemInfo.MyContent.MyGrid.Data, this.GetXMLData(), true); - } - } - private bool IsGridChanged(string oldXml, string newXml, bool checkFormat) - { - if (this.TableCellEditor.Text.Contains("")) - return false; - XmlDocument XdOld = new XmlDocument(); - XdOld.LoadXml(AdjustHeightAndWidthForDPI(oldXml)); - XmlDocument XdNew = new XmlDocument(); - XdNew.LoadXml(AdjustHeightAndWidthForDPI(newXml)); - //check volian borders 1st - if (checkFormat && XdNew.SelectSingleNode("C1FlexGrid/Control/MyBorderDetailString").InnerText != XdOld.SelectSingleNode("C1FlexGrid/Control/MyBorderDetailString").InnerText) - return true; - //check row/col sizes 2nd - if (checkFormat && ( GetRowColSizeString(XdNew) != GetRowColSizeString(XdOld))) - return true; - //check for cell data changes 3rd - if (GetCellDataString(XdNew) != GetCellDataString(XdOld)) - return true; - //check for cell format changes 4th - if (checkFormat && GetCellFormatString(XdNew) != GetCellFormatString(XdOld)) - return true; - //check for text alignment changes 5th - // put check in for bug fix B2014-106 - if (checkFormat && GetCellTextAlignString(XdNew) != GetCellTextAlignString(XdOld)) - return true; - //check for merged cells 6th - if (GetCellMergeString(XdNew) != GetCellMergeString(XdOld)) - return true; - return false; - } - private string GetRowColSizeString(XmlDocument xd) - { - string defCW = xd.SelectSingleNode("C1FlexGrid/ColumnInfo/DefaultSize").InnerText; - string defRH = xd.SelectSingleNode("C1FlexGrid/RowInfo/DefaultSize").InnerText; - int cols = ColumnCount(xd); - int rows = RowCount(xd); - List rh = new List(); - for (int i = 0; i < rows; i++) - rh.Add(defRH); - List cw = new List(); - for (int i = 0; i < cols; i++) - cw.Add(defCW); - XmlNodeList nlr = xd.SelectNodes("C1FlexGrid/Rows/Row"); - foreach (XmlNode nr in nlr) - { - int idx = int.Parse(nr.Attributes.GetNamedItem("index").InnerText); - rh[idx] = nr.SelectSingleNode("Height").InnerText; - } - XmlNodeList nlc = xd.SelectNodes("C1FlexGrid/Columns/Column"); - foreach (XmlNode nc in nlc) - { - int idx = int.Parse(nc.Attributes.GetNamedItem("index").InnerText); - cw[idx] = nc.SelectSingleNode("Width").InnerText; - } - string rhcw = "RowHeights: "; - string sep = string.Empty; - foreach (string s in rh) - { - rhcw += sep + s; - sep = ","; - } - rhcw += " - ColWidths: "; - sep = string.Empty; - foreach (string s in cw) - { - rhcw += sep + s; - sep = ","; - } - return rhcw; - } - private int ColumnCount(XmlDocument xd) - { - XmlNode xn = xd.SelectSingleNode("C1FlexGrid/ColumnInfo/Count"); - int cols = 0; - if (xn != null) - cols = int.Parse(xn.InnerText); - else - { - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Columns/Column"); - cols = nl.Count; - } - return cols; - } - private int RowCount(XmlDocument xd) - { - XmlNode xn = xd.SelectSingleNode("C1FlexGrid/RowInfo/Count"); - int rows = 0; - if (xn != null) - rows = int.Parse(xn.InnerText); - else - { - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Rows/Row"); - rows = nl.Count; - } - return rows; - } - private string GetCellDataString(XmlDocument xd) - { - int cols = ColumnCount(xd); - int rows = RowCount(xd); - List datum = new List(); - for (int i = 0; i < rows * cols; i++) - datum.Add("|"); - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Cells/Cell/Data"); - string data = string.Empty; - foreach (XmlNode xn in nl) - { - RichTextBox rtb = new RichTextBox(); - rtb.Rtf = xn.InnerText; - XmlAttribute xa = xn.ParentNode.Attributes.GetNamedItem("index") as XmlAttribute; - string[] rc = xa.InnerText.Split(','); - int r = int.Parse(rc[0]); - int c = int.Parse(rc[1]); - int index = r * cols + c; - datum[index] = "|" + (rtb.Text == "" ? "" : rtb.Text); - } - foreach (string s in datum) - data += s; - return data; - } - private string GetCellFormatString(XmlDocument xd) - { - int cols = ColumnCount(xd); - int rows = RowCount(xd); - List datum = new List(); - for (int i = 0; i < rows * cols; i++) - datum.Add("|"); - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Cells/Cell/Data"); - string data = string.Empty; - foreach (XmlNode xn in nl) - { - RichTextBox rtb = new RichTextBox(); - rtb.Rtf = xn.InnerText; - XmlAttribute xa = xn.ParentNode.Attributes.GetNamedItem("index") as XmlAttribute; - string[] rc = xa.InnerText.Split(','); - int r = int.Parse(rc[0]); - int c = int.Parse(rc[1]); - int index = r * cols + c; - datum[index] = "|" + (rtb.Text == "" ? "" : rtb.Rtf); - } - foreach (string s in datum) - data += s; - return data; - } - private string GetCellMergeString(XmlDocument xd) - { - if(xd.SelectSingleNode("C1FlexGrid/MergedRanges") == null) - return string.Empty; - return xd.SelectSingleNode("C1FlexGrid/MergedRanges").InnerXml; - } - private string GetCellTextAlignString(XmlDocument xd) - { - // Note that I could not save (and later compare) the entire Definition string - // because the xml for the old and new table was always different. - // The old xml table data would have, for example "white" for the background color, while - // the new xml table data would have "255,255,255" for the background color. - // Therefore this check is specific for only the TextAlign setting - jsj 9-30-2014 - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Styles/Style/Definition"); - string data = string.Empty; - foreach (XmlNode xn in nl) - { - string str = xn.InnerText; - string[] splStr = str.Split(';'); - foreach (string s in splStr) - if (s.StartsWith("TextAlign:")) - data += "|" + s; // only save the TextAlign setting - } - return data; - } - private static GridCopyInfo _MyCopyInfo; - public static GridCopyInfo MyCopyInfo - { - get - { - if (_MyCopyInfo == null) - _MyCopyInfo = new GridCopyInfo(); - return _MyCopyInfo; - } - } - private Color _DefaultCellBackgroundcolor; - - public Color DefaultCellBackgroundcolor - { - get { return _DefaultCellBackgroundcolor; } - } - private Color _DefaultFixedBackgroundColor; - - public Color DefaultFixedBackgroundColor - { - get { return _DefaultFixedBackgroundColor; } - } - public void CopyToCopiedFlexGrid(GridCopyOption myCopyOption) - { - MyCopyInfo.MyCopiedFlexGrid = new VlnFlexGrid(); //make a copy of the grid being copied - using (StringReader sr = new StringReader(this.GetXMLData())) - { - MyCopyInfo.MyCopiedFlexGrid.ReadXml(sr); - this.BorderStyle = C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None; - sr.Close(); - } - MyCopyInfo.MyCopyOption = myCopyOption; - OnCopyOptionChanged(this, new EventArgs()); - switch (MyCopyInfo.MyCopyOption) - { - case GridCopyOption.Row: - MyCopyInfo.MyCopiedCellRange = MyCopyInfo.MyCopiedFlexGrid.GetCellRange(Selection.r1, 0, Selection.r2, Cols.Count - 1); - break; - case GridCopyOption.Column: - MyCopyInfo.MyCopiedCellRange = MyCopyInfo.MyCopiedFlexGrid.GetCellRange(0, Selection.c1, Rows.Count - 1, Selection.c2); - break; - case GridCopyOption.Selection: - MyCopyInfo.MyCopiedCellRange = MyCopyInfo.MyCopiedFlexGrid.GetCellRange(Selection.r1, Selection.c1, Selection.r2, Selection.c2); - break; - default: - break; - } - } - public event VlnFlexGridEvent CopyOptionChanged; - public void OnCopyOptionChanged(object sender, EventArgs args) - { - if (CopyOptionChanged != null) CopyOptionChanged(sender, args); - } - - [XmlElement("MyBorders")] - [Browsable(false)] - [EditorBrowsable(EditorBrowsableState.Never)] - public string MyBorderDetailString - { - get - { - return MyBorders.ConvertToString(); - } - set - { - if (value != null) - _MyBorders = VlnBorders.Get(value); - else - _MyBorders = null; - } - } - private VlnBorders _MyBorders; - [XmlIgnore] - public VlnBorders MyBorders - { - get - { - if (_MyBorders == null) - _MyBorders = new VlnBorders(GridLinePattern.Single, Rows.Count, Cols.Count); - return _MyBorders; - } - set { _MyBorders = value; } - } - private ItemInfo _MyItemInfo; - public ItemInfo GetMyItemInfo() - { - return _MyItemInfo; - } - //public ItemInfo MyItemInfo - //{ - // get { return _MyItemInfo; } - // set { _MyItemInfo = value; } - //} - public bool TopRowHasBorder() - { - for (int c = 0; c < Cols.Count; c++) - if (MyBorders.HorizontalLines[0, c] != GridLinePattern.None) return true; - return false; - } - public void SetBorders(CellRange myRange, - GridLinePattern top, GridLinePattern middle, GridLinePattern bottom, - GridLinePattern left, GridLinePattern center, GridLinePattern right) - { - for (int r = myRange.r1; r <= myRange.r2; r++) - for (int c = myRange.c1; c <= myRange.c2; c++) - { - CellRange cr = GetMergedRange(r, c); - if (r == myRange.r1) // Top Border - if(top != GridLinePattern.Mixed) MyBorders.HorizontalLines[cr.r1, cr.c1]=top; - if (c == myRange.c1) // Left Border - if(left != GridLinePattern.Mixed) MyBorders.VerticalLines[cr.r1, cr.c1]=left; - if (r == myRange.r2) // Bottom Border - if(bottom != GridLinePattern.Mixed) MyBorders.HorizontalLines[cr.r2 + 1, cr.c2]=bottom; - if (c == myRange.c2) // Right Border - if(right != GridLinePattern.Mixed) MyBorders.VerticalLines[cr.r2, cr.c2 + 1] = right; - if (r == cr.r1 && c == cr.c1) // Look for inside lines - { - if (cr.r1 > myRange.r1 && cr.r1 <= myRange.r2) // Inside Horizontal Top - if (middle != GridLinePattern.Mixed) - { - MyBorders.HorizontalLines[cr.r1, cr.c1] = middle; - MyBorders.HorizontalLines[cr.r1, cr.c2] = middle; - } - if (cr.r2 > myRange.r1 && cr.r2 < myRange.r2) // Inside Horizontal Bottom - if(middle != GridLinePattern.Mixed) MyBorders.HorizontalLines[cr.r2 + 1, cr.c2]=middle; - if (cr.c1 > myRange.c1 && cr.c1 <= myRange.c2) // Inside Vertical Left - if (center != GridLinePattern.Mixed) - { - MyBorders.VerticalLines[cr.r1, cr.c1] = center; - MyBorders.VerticalLines[cr.r2, cr.c1] = center; - } - if (cr.c2 > myRange.c1 && cr.c2 < myRange.c2) // Inside Vertical Right - if(center != GridLinePattern.Mixed) MyBorders.VerticalLines[cr.r2, cr.c2 + 1]=center; - } - c = cr.c2;//Skip to the end of the merged cells - } - - } - public void PasteBorders(int r, int c, int br, int bc) - { - MyBorders.HorizontalLines[r, c] = MyCopyInfo.MyCopiedFlexGrid.MyBorders.HorizontalLines[br,bc]; - MyBorders.VerticalLines[r, c] = MyCopyInfo.MyCopiedFlexGrid.MyBorders.VerticalLines[br, bc]; - MyBorders.HorizontalLines[r+1, c] = MyCopyInfo.MyCopiedFlexGrid.MyBorders.HorizontalLines[br+1, bc]; - MyBorders.VerticalLines[r, c+1] = MyCopyInfo.MyCopiedFlexGrid.MyBorders.VerticalLines[br, bc+1]; - } - - [XmlIgnore] - public bool HasVScroll - { - get - { - return RTBAPI.HasVertScroll(this); - } - } - [XmlIgnore] - public bool HasHScroll - { - get - { - return RTBAPI.HasHorzScroll(this); - } - } - public event VlnFlexGridEvent OpenAnnotations; - public void OnOpenAnnotations(object sender, EventArgs args) - { - if (OpenAnnotations != null) OpenAnnotations(sender, args); - } - public event VlnFlexGridCursorMovementEvent CursorMovement; - internal void OnCursorMovement(object sender, VlnFlexGridCursorMovementEventArgs args) - { - if (CursorMovement != null) CursorMovement(sender, args); - } - public event VlnFlexGridPasteEvent AdjustPastedText; - internal string OnAdjustPastedText(object sender, VlnFlexGridPasteEventArgs args) - { - if (AdjustPastedText != null) return AdjustPastedText(sender, args); - return args.Text; - } - public event VlnFlexGridkeyEvent EnterKeyPressed; - public void OnEnterKeyPressed(object sender, KeyEventArgs args) - { - if (EnterKeyPressed != null) EnterKeyPressed(sender, args); - } - - private TableCellEditor _tableCellEditor; - - public TableCellEditor TableCellEditor - { - get { return _tableCellEditor; } - set { _tableCellEditor = value; } - } - private TableClipBoardFuncts _clpbrdCpyPste; - private int _minColSplitWidth = 10; - //private int _minRowSplitHeight = 23; - - //private int _minSplitColWidth = 10; - //private int _minSplitRowHeight = 20; - private E_ViewMode _vwMode = E_ViewMode.Edit; - [XmlIgnore] - internal E_ViewMode VwMode - { - get { return _vwMode; } - set - { - _vwMode = value; - AllowEditing = _vwMode == E_ViewMode.Edit; - } - } - private bool _IsRoTable = false; - public bool IsRoTable - { - get { return _IsRoTable; } - set { _IsRoTable = value; } - } - private int _RODbId; - public int RODbId - { - get { return _RODbId; } - set { _RODbId = value; } - } - private string _ROID; - - public string ROID - { - get { return _ROID; } - set { _ROID = value; } - } - private float? _DPI = null; - public float? DPI - { - get - { - if (_DPI == null) - _DPI = 120; - return _DPI; - } - set - { - if (DPI != value) - { - _DPI = value; - } - } - } - #region Grid Initialize - - public VlnFlexGrid() - { - InitializeComponent(); - SetupGrid(4, 3); // use a default row and column count - } - - public VlnFlexGrid(int rows, int cols) - { - InitializeComponent(); - SetupGrid(rows, cols); - } - - public VlnFlexGrid(IContainer container) - { - container.Add(this); - InitializeComponent(); - SetupGrid(1, 1); - } - public VlnFlexGrid(ContentItem ci) - { - InitializeComponent(); - SetupGrid(4, 3); // use a default row and column count - _MyItemInfo = ci.MyItem.MyItemInfo; - } - //public VlnFlexGrid(IContainer container) - //{ - // container.Add(this); - - // InitializeComponent(); - // _tableCellEditor = new TableCellEditor(this); - // _tableCellEditor.ContentsResized += new ContentsResizedEventHandler(_tableCellEditor_ContentsResized); - //} - - //void _tableCellEditor_ContentsResized(object sender, ContentsResizedEventArgs e) - //{ - // if (_tableCellEditor._initializingEdit) return; - // CellRange cr = GetMergedRange(Row, Col); - // int oH = cr.UserData == null? 0 : (int)cr.UserData; - // int nH = _tableCellEditor.ContentsRectangle.Height; - // int Hadj = (nH - oH); - // cr.UserData = _tableCellEditor.ContentsRectangle.Height; - // int cellHeight = GetCellHeight(Row,Col); - // int cellheightNLines = cellHeight / (Rows.DefaultSize - 3); - // int nHNLines = nH / (Rows.DefaultSize - 3); - // if (Hadj != 0) - // { - // int curHeight = (Rows[Row].Height == -1) ? Rows.DefaultSize : Rows[Row].Height; - // //if (Hadj > 0 && cellHeight <= oH) - // if (Hadj > 0 && cellheightNLines < nHNLines) - // curHeight += (Rows.DefaultSize - 3); - // if (Hadj < 0 && CanReduceRow()) - // curHeight -= (Rows.DefaultSize-3); - // Rows[Row].Height = curHeight; - // AdjustGridControlSize(); - // } - // //cr.UserData = _tableCellEditor.ContentsRectangle.Height; - // //int mh = GetMaxRowHeight(); - // ////Rows[Row].Height = mh + 2; - // //int h = 0; - // //if (cr.r1 == cr.r2 && cr.c1 == cr.c2) - // // h = Rows[Row].Height - 2; - // //else - // //{ - // // for (int r = cr.r1; r <= cr.r2; r++) - // // h += Rows[r].Height - 2; - // //} - // //Rows[Row].Height += (mh - h); - // ////AdjustGridControlSize(); - //} - private int GetCellHeight(int row, int col) - { - return GetRangeHeight(GetMergedRange(row, col))-3; - } - - public int GetRangeHeight(CellRange cr) - { - int height = 0; - for (int r = cr.r1; r <= cr.r2; r++) - height += (Rows[r].Height == -1) ? Rows.DefaultSize : Rows[r].Height; - return height; - } - - public int GetRangeTop(CellRange cr) - { - int top = 0; - for (int r = 0; r < cr.r1; r++) - top += (Rows[r].Height == -1) ? Rows.DefaultSize : Rows[r].Height; - return top; - } - - public int GetRangeWidth(CellRange cr) - { - int width = 0; - for (int c = cr.c1; c <= cr.c2; c++) - width += (Cols[c].Width == -1) ? Cols.DefaultSize : Cols[c].Width; - return width; - } - - public int GetRangeLeft(CellRange cr) - { - int left = 0; - for (int c = 0; c < cr.c1; c++) - left += (Cols[c].Width == -1) ? Cols.DefaultSize : Cols[c].Width; - return left; - } - - public int GetRangeRowsMin(CellRange cr) - { - int rowsMin = 1 + cr.r2 - cr.r1; - for (int c = cr.c1; c <= cr.c2; c++) - { - int rows = 0; - for (int r = cr.r1; r <= cr.r2; r++) - { - CellRange chk = GetMergedRange(r, c); - if (chk.r1 == r && chk.c1 == c) - rows++; - } - rowsMin = Math.Min(rowsMin, rows); - } - return rowsMin; - } - - public int GetRangeRowsMax(CellRange cr) - { - int rowsMax = 0; - for (int c = cr.c1; c <= cr.c2; c++) - { - int rows = 0; - for (int r = cr.r1; r <= cr.r2; r++) - { - CellRange chk = GetMergedRange(r, c); - if (chk.r1 == r && chk.c1 == c) - rows++; - } - rowsMax = Math.Max(rowsMax, rows); - } - return rowsMax; - } - - public int GetRangeColsMin(CellRange cr) - { - int colsMin = 1 + cr.c2 - cr.c1; - for (int r = cr.r1; r <= cr.r2; r++) - { - int cols = 0; - for (int c = cr.c1; c <= cr.c2; c++) - { - CellRange chk = GetMergedRange(r, c); - if (chk.r1 == r && chk.c1 == c) - cols++; - } - colsMin = Math.Min(colsMin, cols); - } - return colsMin; - } - - public int GetRangeColsMax(CellRange cr) - { - int colsMax = 0; - for (int c = cr.c1; c <= cr.c2; c++) - { - int cols = 0; - for (int r = cr.r1; r <= cr.r2; r++) - { - CellRange chk = GetMergedRange(r, c); - if (chk.r1 == r && chk.c1 == c) - cols++; - } - colsMax = Math.Max(colsMax, cols); - } - return colsMax; - } - - public string GetRangeRowList(CellRange cr) - { - StringBuilder sb = new StringBuilder(); - string sep = ""; - for (int r = cr.r1; r <= cr.r2; r++) - { - CellRange crm = GetMergedRange(r, cr.c1); - if (crm.r1 == r) - { - sb.Append(sep + r.ToString()); - sep = "."; - } - r = crm.r2; - } - return sb.ToString(); - } - - private int BlankRowSpace() - { - int curRowHeight = (Rows[Row].Height == -1) ? Rows.DefaultSize - 3 : Rows[Row].Height - 3; - if (curRowHeight <= (Rows.DefaultSize - 3)) return 0; // never have row less than default height - int blankRowSpace = curRowHeight; - for (int c = 0; c < Cols.Count; c++) - { - CellRange cr = GetMergedRange(Row, c); - if (Row >= cr.r1 && Row <= cr.r2) - { - int cellHeight = GetCellHeight(Row, c); - int dataHeight = (cr.UserData == null) ? cellHeight : (int)cr.UserData; - int ud = dataHeight / (Rows.DefaultSize - 3); - //if (cellHeight < dataHeight) - // Console.WriteLine("r {0}, c {1}, cell{2}, data{3}", Row, c, cellHeight, dataHeight); - blankRowSpace = Math.Min(blankRowSpace, Math.Max(0,cellHeight - dataHeight)); - } - } - //Console.WriteLine("BlankRowSpace {0}", blankRowSpace); - return blankRowSpace; - } - - private int GetCellWidth(int row, int col) - { - int width = 0; - CellRange cr = GetMergedRange(row, col); - for (int c = cr.c1; c <= cr.c2; c++) - { - width += (Cols[c].Width == -1) ? Cols.DefaultSize - 3 : Cols[c].Width -3; - } - return width; - } - - private int BlankColSpace() - { - int curColWidth = (Cols[Col].Width == -1) ? Cols.DefaultSize - 3 : Cols[Col].Width-3; - //int curRowHeightNLines = curRowHeight / (Rows.DefaultSize - 3); - if (curColWidth <= Cols.DefaultSize - 3) return 0; // never have col less than default width - int blankColSpace = curColWidth; - for (int r = 0; r < Rows.Count; r++) - { - using (StepRTB srtb = new StepRTB()) - { - CellRange cr = GetMergedRange(r, Col); - srtb.Rtf = GetCellRTFString(cr.r1, cr.c1); - if (Col >= cr.c1 && Col <= cr.c2) - { - int cellWidth = GetCellWidth(r, Col); - //srtb.Width = cellWidth; - srtb.AdjustWidthForContent(); - //Application.DoEvents(); - //int mergeCellHeightNLines = cellHeight / (Rows.DefaultSize - 3); - //int dataHeight = (cr.UserData == null) ? cellHeight : (int)cr.UserData; - //int ud = dataHeight / (Rows.DefaultSize - 3); - //if (cellHeight < dataHeight) - // Console.WriteLine("r {0}, c {1}, cell{2}, data{3}", Row, c, cellHeight, dataHeight); - //blankColSpace = Math.Min(blankColSpace, Math.Max(0, cellWidth - srtb.MaxTextWidth)); - blankColSpace = Math.Min(blankColSpace, Math.Max(0, cellWidth - srtb.Width)); - } - } - } - //Console.WriteLine("BlankRowSpace {0}", blankRowSpace); - return blankColSpace; - } - //private bool CanReduceRow() - //{ - // int curRowHeight = (Rows[Row].Height == -1) ? Rows.DefaultSize - 3 : Rows[Row].Height - 3; - // int curRowHeightNLines = curRowHeight / (Rows.DefaultSize - 3); - // bool bReduce = (curRowHeight > (Rows.DefaultSize - 3)); - // if (bReduce) - // { - // for (int c = 0; c < Cols.Count; c++) - // { - // CellRange cr = GetMergedRange(Row, c); - // if (Row >= cr.r1 && Row <= cr.r2) - // { - // int mergeCellHeightNLines = GetCellHeight(Row, c) / (Rows.DefaultSize - 3); - // //int ud = (cr.UserData == null) ? 0 : (int)cr.UserData; - // //if ((c != Col) && curRowHeight <= ud && ud >= mergeCellHeight) - // // bReduce = false; - // int ud = ((cr.UserData == null) ? 0 : (int)cr.UserData) / (Rows.DefaultSize - 3); - // if ((c != Col) && curRowHeightNLines <= ud && ud >= mergeCellHeightNLines) - // bReduce = false; - // } - // } - // } - // //Console.WriteLine("canreduce {0}, {1}", Row, bReduce); - // return bReduce; - //} - //private int GetMaxRowHeight() - //{ - // int maxRTFHeight = _minRowSplitHeight; //Rows.DefaultSize;// the smallest a row can be - // Console.WriteLine("================================================================="); - // for (int c = 0; c < Cols.Count; c++) - // { - // CellRange cr = GetMergedRange(Row, c);//GetCellRange(Row, c); - // maxRTFHeight = Math.Max(maxRTFHeight, (int)cr.UserData); - // if (c == 0) - // Console.WriteLine("Height in Row[{0}] = {1}", Row, Rows[Row].Height); - // Console.WriteLine("UserData Cell[{0},{1}] = {2}", Row, c, cr.UserData); - // } - // return maxRTFHeight; - //} - - private bool IsInMergeRange(int row, int col) - { - //foreach (CellRange cr in this.MergedRanges) - //{ - // if (cr.Contains(row, col)) - // return true; // in a merged range - //} - CellRange cr = GetMergedRange(row, col); - return (cr.r1 == row && cr.c1 == col); - } - private bool _ReadingXml = false; - - public bool ReadingXml - { - get { return _ReadingXml; } - } - private static Regex _ReplaceVESymbFix = new Regex(@"({\\f[0-9]+[^ ]* )(FreeMono)(;})"); // FreeMono is now used for the edit screen only. VESymbFix and Consolas are used for printing - private static Regex _ReplaceArialUnicodeMS = new Regex(@"({\\f[0-9]+[^ ]* )(Arial Unicode MS)(;})"); - private static Regex _ReplaceTextFont = new Regex(@"({\\f[0-9]+[^ ]* )(?((?!FreeMono)(?!Arial Unicode MS))([^;]*)|(!!!!))(;})"); // FreeMono is now used for the edit screen only. VESymbFix and Consolas are used for printing - private bool FontIsFixed(Font myFont) - { - Graphics grph = Graphics.FromHwnd(this.Handle); - SizeF sfW = grph.MeasureString("W", myFont); - SizeF sfE = grph.MeasureString("!", myFont); - if (sfW.Width == sfE.Width) return true; - return false; - } - public void LoadGrid(ItemInfo itemInfo) - { - int profileDepth = ProfileTimer.Push(">>>> VlnFlexGrid.LoadGrid"); - _MyItemInfo = itemInfo; - string str = itemInfo.MyContent.MyGrid.Data; - VE_Font vefont = _MyItemInfo.GetItemFont(); - - // the following code is used to be sure that the font used for symbols is the correct font - // based on whether the font for non-symbol text is fixed or proportional. Each steprtb has - // a font for the non-symbol AND the symbol text, and these must be the correct association, i.e. - // for fixed fonts, the symbol font is 'VESymbFix', for proportional fonts, the symbol font is - // 'Arial Unicode MS'. The underlying flexgrid stores the fonts, and if the table font was - // reset for some reason (for example from the drop-down font selection in the user interface), - // this code 'cleans' up if there is a mismatch. - if (StepRTB.MyFontFamily != null) - { - FontFamily ff = StepRTB.MyFontFamily; - if (StepRTB.MySymbolFontName != "FreeMono") // FreeMono is now used for the edit screen only. VESymbFix and Consolas are used for printing - str = _ReplaceVESymbFix.Replace(str, "$1" + StepRTB.MySymbolFontName + "$3"); - if (StepRTB.MySymbolFontName != "Arial Unicode MS") - str = _ReplaceArialUnicodeMS.Replace(str, "$1" + StepRTB.MySymbolFontName + "$3"); - str = _ReplaceTextFont.Replace(str, "$1" + ff.Name + "$4"); - } - else - { - FontFamily ff = vefont.WindowsFont.FontFamily; - if (FontIsFixed(vefont.WindowsFont)) - str = _ReplaceArialUnicodeMS.Replace(str, "$1" + "FreeMono" + "$3"); // FreeMono is now used for the edit screen only. VESymbFix and Consolas are used for printing - else - str = _ReplaceVESymbFix.Replace(str, "$1" + "Arial Unicode MS" + "$3"); - str = _ReplaceTextFont.Replace(str, "$1" + ff.Name + "$4"); - } - // To prevent scroll bars from being flashed on/off - // - save an image of the current grid - // - set Visible to false - // - draw the saved grid image - // - do the the load/reload of the grid - // - set Visible back to true. - Visible = false; - if (Parent is GridItem) - { - try - { - System.Drawing.Image img = this.CreateImage(); - using (Graphics gr = (Parent as GridItem).CreateGraphics()) - { - gr.DrawImage(img, Left, Top); - } - } - catch (Exception ex) - { - _MyLog.WarnFormat("Table Content Corrupted"); - } - } - Clear(); - MergedRanges.Clear(); - _ReadingXml = true; - //Console.WriteLine("LoadGrid - Before ReadXML"); - ReadXml(str); - //Console.WriteLine("LoadGrid - After ReadXML"); - _ReadingXml = false; - Select(-1, -1); // this keeps the cell from being selected when the grid is first displayed - Visible = true; - ProfileTimer.Pop(profileDepth); - } - - private void ReadXml(string str) - { - // Get the height/width adjusted for the DPI. Depending on if the DPI setting for the current user's - // monitor is different than the DPI setting saved in the grid record, table height/width of rows/columns - // will be incorrect, i.e. lots of extra white space. The reason behind this is that the height/width - // of table cells are stored as dots (from the monitor) in the underlying component one flexgrid. - str = AdjustHeightAndWidthForDPI(str); - using (StringReader sr = new StringReader(str)) - { - ReadXml(sr); - this.BorderStyle = C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None; - sr.Close(); - } - } - - private string AdjustHeightAndWidthForDPI(string str) - { - // create a graphics to get the DPI and then compare it to the DPI that is stored in the grid. - // if they are the same, we don't need to do anything. - int DPIscreen = 0; - using (Graphics gr = this.CreateGraphics()) - { - DPIscreen = (int)gr.DpiX; - } - XmlDocument xd = new XmlDocument(); - xd.LoadXml(str); - XmlNode xn = xd.SelectSingleNode("//DPI"); - if (xn != null && xn.InnerText != DPIscreen.ToString()) - { - int DPIgrid = int.Parse(xn.InnerText); - xn.InnerText = DPIscreen.ToString(); - // adjust heights and widths based on the difference in DPIs between that what was saved - // in the database(grid) and the current DPI from the screen. Without doing this the - // heights/widths will be 'off', i.e. lots of white space. - XmlNodeList xnl = xd.SelectNodes("//Height"); - foreach (XmlNode xni in xnl) - { - int measurement = int.Parse(xni.InnerText); - if (measurement != -1) - xni.InnerText = ((measurement * DPIscreen) / DPIgrid).ToString(); - } - xnl = xd.SelectNodes("//Width"); - foreach (XmlNode xni in xnl) - { - int measurement = int.Parse(xni.InnerText); - if (measurement != -1) - xni.InnerText = ((measurement * DPIscreen) / DPIgrid).ToString(); - } - xnl = xd.SelectNodes("//DefaultSize"); - foreach (XmlNode xni in xnl) - { - int measurement = int.Parse(xni.InnerText); - if (measurement != -1) - xni.InnerText = ((measurement * DPIscreen) / DPIgrid).ToString(); - } - str = xd.OuterXml; - } - return str; - } - private void SetupGrid(int numrows, int numcols) //C1FlexGrid NewGrid() - { - // setup the default size of each cell in the table/grid - this.Cols.DefaultSize = (int) DPI; - this.Rows.DefaultSize = 20; - - // setup the number of rows and columns - this.Rows.Count = numrows; - this.Cols.Count = numcols; - - // make all the cell editable - this.Rows.Fixed = 0; - this.Cols.Fixed = 0; - - this.DrawMode = DrawModeEnum.OwnerDraw; - this.ScrollBars = ScrollBars.None; - - // grid styles - this.Styles.EmptyArea.BackColor = Color.Transparent; - this.Styles.EmptyArea.Border.Style = BorderStyleEnum.None; - this.Styles.Normal.Border.Color = Color.Black; - this.Styles.Normal.TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.LeftTop; - - //SetupCellStyles(); - - this.FocusRect = FocusRectEnum.Solid; - this.Styles.Highlight.BackColor = Color.LightCyan; - this.Styles.Highlight.ForeColor = Color.Black; - this.Styles.Focus.BackColor = Color.LightCyan; - this.HighLight = HighLightEnum.WithFocus; - - _DefaultCellBackgroundcolor = this.StyleBackColor; - _DefaultFixedBackgroundColor = this.Styles.Fixed.BackColor; - this.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom; - - this.AllowResizing = C1.Win.C1FlexGrid.AllowResizingEnum.Both; - - - _tableCellEditor = new TableCellEditor(this); - _tableCellEditor.HeightChanged += new StepRTBEvent(_tableCellEditor_HeightChanged); - _clpbrdCpyPste = new TableClipBoardFuncts(); - _SpellChecker = _tableCellEditor.SpellCheckerInstance; - - this.AfterResizeRow += new C1.Win.C1FlexGrid.RowColEventHandler(this.Grid_AfterResize); - this.StartEdit += new C1.Win.C1FlexGrid.RowColEventHandler(this._StartEdit); - this.AfterEdit += new C1.Win.C1FlexGrid.RowColEventHandler(this._AfterEdit); - this.AfterScroll += new C1.Win.C1FlexGrid.RangeEventHandler(this._AfterScroll); - this.AfterResizeColumn += new C1.Win.C1FlexGrid.RowColEventHandler(this.Grid_AfterResize); - this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress); - this.OwnerDrawCell += new OwnerDrawCellEventHandler(this.Grid_OwnerDrawCell); - - this.KeyDown += new KeyEventHandler(VlnFlexGrid_KeyDown); - this.KeyUp +=new KeyEventHandler(VlnFlexGrid_KeyUp); - TableCellEditor.EditMode = TableCellEditor.Visible; // need to comment out for compile for only jsj - 07FEB2011 - this.MouseDown += new MouseEventHandler(VlnFlexGrid_MouseDown); - } - - private bool _FirstEntry = false; - - public bool FirstEntry - { - get { return _FirstEntry; } - set { _FirstEntry = value; } - } - - void VlnFlexGrid_MouseDown(object sender, MouseEventArgs e) - { - int left = 0; - int top = 0; - int col = 0; - int row = 0; - int strow = Selection.r1; - int stcol = Selection.c1; - int erow = Selection.r2; - int ecol = Selection.c2; - while (e.X > left && col < Cols.Count) - { - left += Cols[col].Width > 0 ? Cols[col].Width : Cols.DefaultSize; - col++; - } - while (e.Y > top && row < Rows.Count) - { - top += Rows[row].Height > 0 ? Rows[row].Height : Rows.DefaultSize; - row++; - } - col--; - row--; - //Console.WriteLine("Mousedown Selection {0}", Selection); - //Console.WriteLine("Mousedown Row, Col [{0},{1}]", row, col); - erow = Math.Max(erow, row); - ecol = Math.Max(ecol, col); - if (_FirstEntry) - Select(row, col); - else - Select(strow, stcol, erow, ecol); - _FirstEntry = false; - } - - - - void _tableCellEditor_HeightChanged(object sender, EventArgs args) - { - if (_tableCellEditor._initializingEdit || !_tableCellEditor.Visible) return; - int curHeight = GetCellHeight(Row, Col);//(Rows[Row].Height == -1) ? Rows.DefaultSize : Rows[Row].Height; - CellRange cr = GetMergedRange(Row, Col); - int oH = cr.UserData == null ? curHeight : (int)cr.UserData; - int nH = _tableCellEditor.Height; //.ContentsRectangle.Height; - int nW = _tableCellEditor.Width; // Width - int Hadj = (nH - curHeight);//oH); - cr.UserData = _tableCellEditor.Height; //.ContentsRectangle.Height; - //int cellHeight = GetCellHeight(Row, Col); - //int cellheightNLines = cellHeight / (Rows.DefaultSize - 3); - //int nHNLines = nH / (Rows.DefaultSize - 3); - if (Hadj != 0) - { - //if (Hadj > 0 && cellHeight <= oH) - //if (Hadj > 0 && cellheightNLines < nHNLines) - // curHeight += (Rows.DefaultSize - 3); - //if (Hadj < 0 && CanReduceRow()) - // curHeight -= (Rows.DefaultSize - 3); - int blankRowSpace = BlankRowSpace(); - if (Hadj < 0) - Hadj = -Math.Min(-Hadj, blankRowSpace); - //if (Hadj > 0) - // Console.WriteLine("r {0}, nh {1}, curh{2}", Row, nH, curHeight); - if (Hadj != 0) - { - int newHeight = Hadj + ((Rows[Row].Height < 0) ? Rows.DefaultSize : Rows[Row].Height); - //Rows[Row].Height += Hadj;//= curHeight; - Rows[Row].Height = newHeight; - AdjustGridControlSize(); - } - } - if (_tableCellEditor is StepRTB && (_tableCellEditor as StepRTB).ImageWidth > 0) - { - Width = Cols[0].Width = (_tableCellEditor as StepRTB).ImageWidth; - } - } - void VlnFlexGrid_KeyUp(object sender, KeyEventArgs e) - { - if (e.Control) - { - if (e.Alt) - { - switch (e.KeyCode) - { - case Keys.M: - OnOpenAnnotations(this, new EventArgs()); - e.Handled = true; - break; - default: - break; - } - } - } - } - void VlnFlexGrid_KeyDown(object sender, KeyEventArgs e) - { - switch (e.KeyCode) - { - case Keys.Left: - if (e.Shift) return; - _tableCellEditor.StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlLeft : E_ArrowKeys.Left); - e.Handled = true; - break; - case Keys.Up: - if (e.Shift) return; - _tableCellEditor.StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlUp : E_ArrowKeys.Up); - e.Handled = true; - break; - case Keys.Right: - if (e.Shift) return; - if (IsRoTable) Select(Rows.Count - 1, Cols.Count - 1); - _tableCellEditor.StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlRight : E_ArrowKeys.Right); - e.Handled = true; - break; - case Keys.Down: - if (e.Shift) return; - if (IsRoTable) Select(Rows.Count - 1, 0); - _tableCellEditor.StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlDown : E_ArrowKeys.Down); - e.Handled = true; - break; - case Keys.Enter: - //if (e.Shift) return; - //Select(Rows.Count - 1, 0); - //_tableCellEditor.StepRTB_ArrowPressed(E_ArrowKeys.Down); - //e.Handled = true; - if (!e.Control && !e.Shift && !e.Alt) - { - OnEnterKeyPressed(sender, e); - } - break; - } - } - //void VlnFlexGrid_LeaveEdit(object sender, RowColEventArgs e) - //{ - // //Console.WriteLine("LeaveEdit Style = {0}", this.GetCellRange(e.Row, e.Col).Style.Name); - // this.GetCellRange(e.Row, e.Col).Style.ForeColor = Color.Black; - //} - private void Grid_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e) - { - using (RTF _rtf = new RTF()) - { - // use nearest solid color - // (the RTF control doesn't dither, and doesn't support transparent backgrounds) - Color solid = e.Graphics.GetNearestColor(e.Style.BackColor); - DPI = e.Graphics.DpiX; - if (e.Style.BackColor != solid) - e.Style.BackColor = solid; - - // check whether the cell contains RTF - string rtfText = this.GetDataDisplay(e.Row, e.Col).Replace(@"\~", @"\u160?"); - GridItem gi = Parent as GridItem; - if (gi != null) - { - DisplayText dt = new DisplayText(gi.MyItemInfo, rtfText, true); - rtfText = dt.StartText; - } - // it does, so draw background - e.DrawCell(DrawCellFlags.Background); - if (rtfText.StartsWith(@"{\rtf")) - { - // Please add a comment if this value needs to be changed - _rtf.Rtf = rtfText; - // draw the RTF text - if (e.Bounds.Width > 0 && e.Bounds.Height > 0) - { - _rtf.Width = e.Bounds.Width - 1; // This has also been -3 which matchs the rener command - CellRange cr = GetMergedRange(e.Row, e.Col); - cr.UserData = _rtf.Height; - int hAdjust = 0; - int hDiff = e.Bounds.Height - _rtf.Height; - if (hDiff < 0) - { - Rows[e.Row].Height = _rtf.Height + 4; - AdjustGridControlSize(); - hDiff = 0; - } - if (e.Style != null) - { - switch (e.Style.TextAlign) - { - case TextAlignEnum.CenterBottom: - case TextAlignEnum.GeneralBottom: - case TextAlignEnum.LeftBottom: - case TextAlignEnum.RightBottom: - hAdjust = hDiff; - break; - case TextAlignEnum.CenterCenter: - case TextAlignEnum.GeneralCenter: - case TextAlignEnum.LeftCenter: - case TextAlignEnum.RightCenter: - hAdjust = hDiff / 2; - break; - default: - break; - } - } - if (IsRoTable) - { - _rtf.ForeColor = Color.Red; - } - else - { - _rtf.ForeColor = e.Style.ForeColor; - } - _rtf.BackColor = e.Style.BackColor; - _rtf.Render(e.Graphics, new Rectangle(e.Bounds.X + 1, e.Bounds.Y + hAdjust, e.Bounds.Width - 3, e.Bounds.Height)); - } - } - else - _rtf.Text = rtfText; - - // spell check unless (we're just measuring) - if (!e.Measuring) - { - CharRangeList errors = SpellChecker.CheckText(_rtf.Text);//(text); - // underline errors - if (errors.Count > 0) - { - CharacterRange[] ranges = new CharacterRange[1]; - ranges[0] = new CharacterRange(0, 1); - Pen pn = new Pen(Color.Green, 2); - StringFormat sf = new StringFormat(e.Style.StringFormat); - sf.SetMeasurableCharacterRanges(ranges); - Rectangle rc = e.Style.GetTextRectangle(e.Bounds, null); - Region[] rgns = e.Graphics.MeasureCharacterRanges(_rtf.Text, e.Style.Font, rc, sf);//(text, e.Style.Font, rc, sf); - float btm = rgns[0].GetBounds(e.Graphics).Bottom; - float top = rgns[0].GetBounds(e.Graphics).Top; - int adj = (int)(btm - top); - for (int i = 0; i < errors.Count; i++) - { - // The positioning of the the squigle line does not account for mixed font sizes - // should we support having mixed fonts in the table cells, we will need to add - // logic to support it. - Point ptStart = _rtf.GetPositionFromCharIndex(errors[i].Start); - Point ptEnd = _rtf.GetPositionFromCharIndex(errors[i].Start + errors[i].Length); - SquigleLine(e.Graphics, e.Bounds.Left + ptStart.X, e.Bounds.Top + ptStart.Y + adj, e.Bounds.Left + ptEnd.X); - } - } - } - // and draw border last - //e.DrawCell(DrawCellFlags.Border); - // This can be used to draw more specific borders - DrawCellBorder(e); - Console.WriteLine("Here"); - // we're done with this cell - e.Handled = true; - } - } - - private void SquigleLine(Graphics graphics, int x1, int y1, int x2) - { - for (Point pt = new Point(x1, y1); pt.X + 2 < x2; pt.X += 4) - { - //Console.WriteLine("squiggle point {0}", pt); - graphics.DrawLines(Pens.Red, new Point[] - { - new Point(pt.X, pt.Y), - new Point(pt.X + 2, pt.Y - 2), - new Point(pt.X + 4, pt.Y) - }); - } - } - private static Color _BorderColor = Color.Black; - public static Color BorderColor - { - get { return VlnFlexGrid._BorderColor; } - set { VlnFlexGrid._BorderColor = value; } - } - private void DrawCellBorder(C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e) - { - Graphics grGrid =e.Graphics; - Rectangle bounds = e.Bounds; - int row = e.Row; - int col = e.Col; - CellRange cr = GetMergedRange(row, col); - GridLinePattern topSide = MyBorders.HorizontalLines[cr.r1,cr.c1]; - GridLinePattern rightOfTopSide = cr.c2 == Cols.Count - 1 ? GridLinePattern.None : MyBorders.HorizontalLines[cr.r1, cr.c2 + 1]; - GridLinePattern leftOfTopSide = cr.c1 == 0? GridLinePattern.None : MyBorders.HorizontalLines[cr.r1, cr.c1 - 1]; - GridLinePattern leftSide = MyBorders.VerticalLines[cr.r1, cr.c1]; - GridLinePattern aboveLeftSide = cr.r1 == 0 ? GridLinePattern.None : MyBorders.VerticalLines[cr.r1 - 1, cr.c1]; - GridLinePattern belowLeftSide = cr.r2 == Rows.Count - 1 ? GridLinePattern.None : MyBorders.VerticalLines[cr.r2 + 1, cr.c1]; - GridLinePattern bottomSide = MyBorders.HorizontalLines[cr.r2+1, cr.c2]; - GridLinePattern rightOfBottomSide = cr.c2 == Cols.Count - 1 ? GridLinePattern.None : MyBorders.HorizontalLines[cr.r2 + 1, cr.c2 + 1]; - GridLinePattern rightSide = MyBorders.VerticalLines[cr.r2, cr.c2+1]; - GridLinePattern belowRightSide = cr.r2 == Rows.Count - 1 ? GridLinePattern.None : MyBorders.VerticalLines[cr.r2 + 1, cr.c2 + 1]; - GridLinePattern none = GridLinePattern.None; - int x1 = bounds.Left; - int y1 = bounds.Top; - int x2 = bounds.Right - 1; - int y2 = bounds.Bottom - 1; - GridItem myGridItem = Parent as GridItem; - Panel myPanel = Parent as Panel; - if (myGridItem == null && myPanel == null) return; - if (row == 0 || col == 0) // Top or Left Edge - Draw on parent - { - using (Graphics grParent = myGridItem != null ? myGridItem.CreateGraphics() : myPanel.CreateGraphics()) - { - if (row == 0) - { - if (col == 0) - { - // Draw the top left intersection - DrawIntersection(grParent, Left - 3, Top-1, none, topSide,leftSide, none); - } - // Draw the top right intersection - DrawIntersection(grParent, Left +x2 - 2, Top-1, none, rightOfTopSide,rightSide,topSide); - // Draw the top side on the parent - DrawLine(grParent, topSide, Left + x1, Top + y1 - 1, Left + x2-3, Top + y1 -1); - } - if (col == 0) - { - // Draw the bottom left intersection - DrawIntersection(grParent, Left -3, Top + y2, leftSide,bottomSide,belowLeftSide,none); - // Draw the left side - DrawLine(grParent, leftSide, Left + x1 - 1, Top + y1, Left + x1 - 1, Top + y2-3); - } - } - } - // Draw the bottom right intersection - DrawIntersection(grGrid, x2 - 2, y2, rightSide, rightOfBottomSide, belowRightSide, bottomSide); - // Draw the bottom side - DrawLine(grGrid, bottomSide, x1, y2, x2-3, y2); - // Draw the right side - DrawLine(grGrid, rightSide, x2, y1, x2, y2-3); - } - private static void DrawLine(Graphics gr, GridLinePattern pattern, int x1, int y1, int x2, int y2) - { - if (pattern == GridLinePattern.None) return; - Pen pn = VlnBorders.LinePen(pattern, BorderColor); - DrawLine(gr, pn, pattern, x1, y1, x2, y2); - } - private static void DrawLine(Graphics gr, Pen pn, int x1, int y1, int x2, int y2) - { - DrawLine(gr, pn, GridLinePattern.Single, x1, y1, x2, y2); - } - private static void DrawLine(Graphics gr, Pen pn, GridLinePattern pattern, int x1, int y1, int x2, int y2) - { - int dx = 0; - int dy = 0; - int dblx = 0; - int dbly = 0; - int xThick = 0; - int yThick = 0; - if (x1 == x2) // Vertical Line - { - dx = (int) (-pn.Width / 2); - dblx = -2; - if (pn.Width > 2) - yThick = 1; - } - else // Horizontal Line - { - dy = (int) (-pn.Width / 2); - dbly = -2; - if (pn.Width > 2) - xThick = 1; - } - gr.DrawLine(pn, x1 + dx, y1 + dy, x2 + dx + xThick, y2 + dy + yThick); - if(pattern == GridLinePattern.Double) - gr.DrawLine(pn, x1 + dx +dblx, y1 + dy + dbly, x2 + dx+dblx, y2 + dy+dbly); - } - private static void DrawIntersection(Graphics gr, int x, int y, GridLinePattern up, GridLinePattern right, GridLinePattern down, GridLinePattern left) - { - if (up == GridLinePattern.Double) - if (right == GridLinePattern.Double) - if (down == GridLinePattern.Double) - if (left == GridLinePattern.Double) DrawIntersectionAllDoubles(gr, x, y); - else DrawDrawIntersection3Doubles_URD(gr, x, y); - else // Down is not double - if (left == GridLinePattern.Double) DrawDrawIntersection3Doubles_URL(gr, x, y); - else DrawDrawIntersection2Doubles_UR(gr, x, y, down, left); - else // right is not double - if (down == GridLinePattern.Double) - if (left == GridLinePattern.Double) DrawDrawIntersection3Doubles_UDL(gr, x, y); - else DrawDrawIntersection2Doubles_UD(gr, x, y, right, left); - else // Down is not double - if (left == GridLinePattern.Double) DrawIntersection2Doubles_UL(gr, x, y, right, down); - else DrawIntersectionOneDoubleOrLess(gr, x, y, up, right, down, left); - else - if (right == GridLinePattern.Double) - if (down == GridLinePattern.Double) - if (left == GridLinePattern.Double) DrawDrawIntersection3Doubles_RDL(gr, x, y); - else DrawDrawIntersection2Doubles_RD(gr, x, y, up, left); - else // Down is not double - if (left == GridLinePattern.Double) DrawDrawIntersection2Doubles_RL(gr, x, y, up, down); - else DrawIntersectionOneDoubleOrLess(gr, x, y, up, right, down, left); - else - if (down == GridLinePattern.Double) - if (left == GridLinePattern.Double) DrawDrawIntersection2Doubles_DL(gr, x, y, up, right); - else DrawIntersectionOneDoubleOrLess(gr, x, y, up, right, down, left); - else // These both use the same function with the same parameters - if (left == GridLinePattern.Double) DrawIntersectionOneDoubleOrLess(gr, x, y, up, right, down, left); - else DrawIntersectionOneDoubleOrLess(gr, x, y, up, right, down, left); - } - private static Pen pnDouble = VlnBorders.LinePen(GridLinePattern.Double, BorderColor); - private static Pen pnThick = VlnBorders.LinePen(GridLinePattern.Thick, BorderColor); - private static void DrawIntersectionAllDoubles(Graphics gr, int x, int y) - { - DrawLine(gr, pnDouble, x-1, y, x, y); - DrawLine(gr, pnDouble, x, y - 2, x, y - 3); - DrawLine(gr, pnDouble, x + 2, y - 2, x + 3, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y + 1); - } - private static void DrawDrawIntersection3Doubles_URD(Graphics gr, int x, int y) - { - DrawLine(gr, pnDouble, x , y, x, y - 3); - DrawLine(gr, pnDouble, x + 2, y - 2, x + 3, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y + 1); - } - private static void DrawDrawIntersection3Doubles_URL(Graphics gr, int x, int y) - { - DrawLine(gr, pnDouble, x, y, x + 2, y); - DrawLine(gr, pnDouble, x -1, y - 2, x , y - 2); - DrawLine(gr, pnDouble, x + 2, y - 2, x + 3, y - 2); - } - private static void DrawDrawIntersection3Doubles_UDL(Graphics gr, int x, int y) - { - DrawLine(gr, pnDouble, x-1, y, x, y); - DrawLine(gr, pnDouble, x , y - 2, x , y - 3); - DrawLine(gr, pnDouble, x + 2, y-3, x + 2, y); - } - private static void DrawDrawIntersection3Doubles_RDL(Graphics gr, int x, int y) - { - DrawLine(gr, pnDouble, x-1, y, x, y); - DrawLine(gr, pnDouble, x, y - 2, x + 2, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y + 1); - } - private static void DrawDrawIntersection2Doubles_UR(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 3, y); - else - { - DrawLine(gr, pnDouble, x, y, x + 2, y); - DrawLine(gr, pnDouble, x , y, x , y - 2); - DrawLine(gr, pnDouble, x + 2, y - 2, x + 3, y - 2); - } - } - private static void DrawDrawIntersection2Doubles_UD(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 3, y); - else - { - DrawLine(gr, pnDouble, x, y, x, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y - 2); - } - } - private static void DrawIntersection2Doubles_UL(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 3, y); - else - { - DrawLine(gr, pnDouble, x, y, x + 2, y); - DrawLine(gr, pnDouble, x , y - 2, x, y - 3); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y - 2); - } - } - private static void DrawDrawIntersection2Doubles_RD(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 3, y); - else - { - DrawLine(gr, pnDouble, x, y, x, y - 2); - DrawLine(gr, pnDouble, x, y - 2, x + 2, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y + 1); - } - } - private static void DrawDrawIntersection2Doubles_RL(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 2, y); - else - { - DrawLine(gr, pnDouble, x, y, x + 2, y); - DrawLine(gr, pnDouble, x, y - 2, x + 2, y - 2); - } - } - private static void DrawDrawIntersection2Doubles_DL(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 2, y); - else - { - DrawLine(gr, pnDouble, x-1, y, x, y); - DrawLine(gr, pnDouble, x, y - 2, x + 2, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y - 2); - } - } - private static void DrawIntersectionOneDoubleOrLess(Graphics gr, int x, int y, - GridLinePattern up, GridLinePattern right, GridLinePattern down, GridLinePattern left) - { - Pen pnUp = VlnBorders.LinePen(up, BorderColor); - Pen pnLeft = VlnBorders.LinePen(left, BorderColor); - int widthUpDown = Math.Max(VlnBorders.LineWidth0(up), VlnBorders.LineWidth0(down)); - int heightLeftRight = Math.Max(VlnBorders.LineWidth0(left), VlnBorders.LineWidth0(right)); - if (heightLeftRight > 0 && widthUpDown > 0) - { - Pen pn = new Pen(BorderColor, widthUpDown); - if(heightLeftRight > 1) - DrawLine(gr, pn, x + 2, y + 1 - heightLeftRight, x + 2, y); - else if(up == GridLinePattern.None) // Work around to set a pixel (actually set two) - DrawLine(gr, pn, x + 2, y, x + 2, y + 1); - } - if (left != GridLinePattern.None) - { - DrawLine(gr, pnLeft, x, y, x + 2 - widthUpDown, y); - if (left == GridLinePattern.Double) - DrawLine(gr, pnLeft, x, y - 2, x + 2 - widthUpDown, y - 2); - } - if (up != GridLinePattern.None) - { - DrawLine(gr, pnUp, x + 2, y - 3 , x + 2, y +1 - heightLeftRight); - if (up == GridLinePattern.Double) - DrawLine(gr, pnUp, x, y - 3, x, y +1 - heightLeftRight); - } - } - #endregion //Grid Initialize - #region Grid and Cell Styles - public void ChangeBackgroundColor(string bckgndColor) - { - CellRange cr = this.Selection; - if (!bckgndColor.EndsWith(";")) - bckgndColor+=";"; - string strBckgndColor = string.Format("BackColor:{0}", bckgndColor); - - for (int rw = cr.r1; rw <= cr.r2; rw++) - for (int cl = cr.c1; cl <= cr.c2; cl++) - { - CellRange tmp = this.GetCellRange(rw, cl, rw, cl); - string StyleName = string.Format("R{0}C{1}Style", rw, cl); - CellStyle cs = this.Styles.Add(StyleName, tmp.Style); - cs.ParseString(strBckgndColor); - tmp.Style = cs; - } - } - - public void ToggleCellTextAlignment() - { - // only used in test program - CellRange cr = this.Selection; - using (StepRTB srtb = new StepRTB()) - { - srtb.Rtf = this.GetCellRTFString(cr.r1, cr.c1); - - srtb.SelectAll(); - int align = (int)srtb.SelectionAlignment; - align = (align + 1) % 3; - - srtb.SelectionAlignment = (HorizontalAlignment)align; - this.PutCellRTFString(cr.r1, cr.c1, srtb.Rtf); - } - } - - public void RTFTextAlignment(CellRange cr, HorizontalAlignment ha) - { - using (StepRTB srtb = new StepRTB()) - { - for (int rw = cr.r1; rw <= cr.r2; rw++) - for (int cl = cr.c1; cl <= cr.c2; cl++) - { - srtb.Rtf = this.GetCellRTFString(rw, cl); - srtb.SelectAll(); - srtb.SelectionAlignment = ha; - this.PutCellRTFString(rw, cl, srtb.Rtf); - } - } - } - - - public void SetTableBorder(C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum border) - { - this.BorderStyle = border; - this.AdjustGridControlSize(); - } - public void ChangeCellAlign(CellRange cr, TextAlignEnum newAlign) - { - for (int rw = cr.r1; rw <= cr.r2; rw++) - for (int col = cr.c1; col <= cr.c2; col++) - { - CellRange tmp = this.GetCellRange(rw, col, rw, col); - string StyleName = string.Format("R{0}C{1}Style", rw, col); - CellStyle cs = null; - if (Styles.Contains(StyleName)) - cs = Styles[StyleName]; - else - cs = this.Styles.Add(StyleName, tmp.Style); - cs.TextAlign = newAlign; - tmp.Style = cs; - } - // If one column and one row, then go into edit mode. - if (cr.r1 == cr.r2 && cr.c1 == cr.c2) - SendKeys.Send("{F2}"); // Toggle Edit Mode with F2 - } - public void ChangeCellBorder(CellRange cr, BorderStyleEnum newBorder) - { - for (int rw = cr.r1; rw <= cr.r2; rw++) - for (int col = cr.c1; col <= cr.c2; col++) - { - CellRange tmp = this.GetCellRange(rw, col, rw, col); - string StyleName = string.Format("R{0}C{1}Style", rw, col); - CellStyle cs = null; - if (Styles.Contains(StyleName)) - cs = Styles[StyleName]; - else - cs = this.Styles.Add(StyleName, tmp.Style); - cs.Border.Style = newBorder; - tmp.Style = cs; - } - } - public void ListStyles() - { - for (int r = 0; r < Rows.Count; r++) - for (int c = 0; c < Cols.Count; c++) - { - CellRange cr = GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - if (cr.Style != null) Console.WriteLine("{0}, {1}, {2}, {3}", r, c, cr.Style.Name, cr.Style.BackColor); - } - } - } - //public void VerticalCenterText() - //{ - // StepRTB myStepRTB = new StepRTB(); - // CellRange selRange = this.Selection; - // for (int r = selRange.r1; r <= selRange.r2; r++) - // for (int c = selRange.c1; c <= selRange.c2; c++) - // { - // CellRange mr = this.GetMergedRange(r, c); - // if (mr.r1 == r) - // { - // int editHeight = (int)mr.UserData; - // int cellHeight = GetCellHeight(mr.r1, mr.c1); - // if (editHeight < cellHeight) - // { - // myStepRTB.Rtf = (string)mr.Data; - // RTBAPI.SetSpaceBefore(myStepRTB, (cellHeight - editHeight) / 2); - // PutCellRTFString(mr.r1, mr.c1, myStepRTB.Rtf); - // } - // } - // } - //} - //public void VerticalTopText() - //{ - // StepRTB myStepRTB = new StepRTB(); - // CellRange selRange = this.Selection; - // for (int r = selRange.r1; r <= selRange.r2; r++) - // for (int c = selRange.c1; c <= selRange.c2; c++) - // { - // CellRange mr = this.GetMergedRange(r, c); - // if (mr.r1 == r) - // { - // myStepRTB.Rtf = (string)mr.Data; - // RTBAPI.SetSpaceBefore(myStepRTB, 0); - // PutCellRTFString(mr.r1, mr.c1, myStepRTB.Rtf); - // } - // } - //} - //public void VerticalBottomText() - //{ - // StepRTB myStepRTB = new StepRTB(); - // CellRange selRange = this.Selection; - // for (int r = selRange.r1; r <= selRange.r2; r++) - // for (int c = selRange.c1; c <= selRange.c2; c++) - // { - // CellRange mr = this.GetMergedRange(r, c); - // if (mr.r1 == r) - // { - // int editHeight = (int)mr.UserData; - // int cellHeight = GetCellHeight(mr.r1, mr.c1); - // if (editHeight < cellHeight) - // { - // myStepRTB.Rtf = (string)mr.Data; - // RTBAPI.SetSpaceBefore(myStepRTB, (cellHeight - editHeight)); - // PutCellRTFString(mr.r1, mr.c1, myStepRTB.Rtf); - // } - // } - // } - //} - - //public void SetupCellStyles() - //{ - // //CellStyle cs; - - // //cs = this.Styles.Add("Dotted"); - // //cs.Border.Style = BorderStyleEnum.Dotted; - // //cs = this.Styles.Add("Double"); - // //cs.Border.Style = BorderStyleEnum.Double; - // //cs = this.Styles.Add("Fillet"); - // //cs.Border.Style = BorderStyleEnum.Fillet; - // //cs = this.Styles.Add("Flat"); - // //cs.Border.Style = BorderStyleEnum.Flat; - // //cs = this.Styles.Add("Groove"); - // //cs.Border.Style = BorderStyleEnum.Groove; - // //cs = this.Styles.Add("Inset"); - // //cs.Border.Style = BorderStyleEnum.Inset; - // //cs = this.Styles.Add("None"); - // //cs.Border.Style = BorderStyleEnum.None; - // //cs = this.Styles.Add("Raised"); - // //cs.Border.Style = BorderStyleEnum.Raised; - // //cs = this.Styles.Add("CenterRight"); - // //cs.TextAlign = TextAlignEnum.RightCenter; //.LeftCenter; // this is being ignored - probably due to RTF conversion - // //cs = this.Styles.Add("Yellow"); - // //cs.BackColor = Color.Yellow; - // //cs = this.Styles.Add("Margins"); - // //cs.Margins.Bottom = 5; - // //cs.Margins.Top = 10; - // //cs.Margins.Left = 15; - // //cs.Margins.Right = 20; - //} - #endregion //Grid and Cell Styles - - #region Grid Size Adjustments - - /// - /// Adjust the grid control size based on the cell sizes. - /// - public void AdjustGridControlSize() - { - if (Parent is GridItem ? (Parent as GridItem).Initializing : false ) return; - int difW = this.Width - this.ClientSize.Width; - int difH = this.Height - this.ClientSize.Height; - int wid = 0; - if (this != null) - { - foreach (C1.Win.C1FlexGrid.Column col in this.Cols) - wid += (col.Width >= 0) ? col.Width : this.Cols.DefaultSize; - - int height = 0; - foreach (C1.Win.C1FlexGrid.Row row in this.Rows) - //height += (row.Height >= 0) ? row.Height : this.Rows.DefaultSize + 2; - height += (row.Height >= 0) ? row.Height : this.Rows.DefaultSize; - - this.Size = new Size(wid + difW, height + difH); - } - } - - public void ConvertTextCellToRTF(int r, int c) - { - using (StepRTB trtb = new StepRTB()) - { - string tstr = null; - bool dummyCharWidth = false; - bool AllowWidthShrink = false; - trtb.SetTableGridCellRTFPrefix(this.Font); - trtb.Clear(); - tstr = (string)this[r, c]; - trtb.Font = this.Font; - if (tstr != null && tstr.Length > 0) - { - string tsave = tstr; - // regular text has special characters to toggle Bold, Underline, and Italics - // we need to subtract the width of these characters (allow column/row to shrink) - //AllowWidthShrink = RemoveBoldUlineItalicChars(trtb.Rtf); - AllowWidthShrink = tstr.Contains("#Link:"); - // this will convert the special characters for Bold, Underline, and Italics - // into RTF commands - //trtb.Rtf = trtb.RtfPrefix + ConvertTableText(trtb.Rtf) + "}"; - //string fromRTF = trtb.Rtf; - //string prefix = trtb.RtfPrefix; - //if (tstr.Contains("#Link:")) prefix += @"{\colortbl ;\red255\green0\blue0;}"; - //if (tstr.Contains("#Link:")) - // Console.WriteLine("here"); - //string jText = trtb.RtfPrefix + ConvertTableText(tstr) + @"\par}"; - //trtb.Rtf = jText; - trtb.Rtf = trtb.RtfPrefix + ConvertTableText(tstr) + @"\par}"; - //string fromStr = trtb.Rtf; - //if (fromRTF.Contains("SimSun")) - // Console.WriteLine("SimSun"); - //else - // Compare(fromRTF, fromStr, tsave); - } - else - { - trtb.Text = "X"; // this is to trick steprtf in giving a char width to fit one character - // note that a space character was too small. - dummyCharWidth = true; - } - // find the needed cell width - trtb.AdjustWidthForContent(); - if (dummyCharWidth) - { - trtb.Text = ""; // clear out the dummy character before saving - dummyCharWidth = false; - } - - this[r, c] = trtb.Rtf; // save the cleaned up and processed cell text as RTF - this.Select(r, c, false); - CellRange sel = this.Selection; - //sel.UserData = trtb.ContentsRectangle.Height; - - // Now adjust the Height and Width in the defined merge ranges - AdjustMergeRangeHeightWidth(r, c, trtb, tstr, AllowWidthShrink); - - - //// Now see the the selected row,col is in the defined merge ranges - //bool mrgrows = false; - //bool mrgcols = false; - //foreach (CellRange cr in this.MergedRanges) - //{ - // if (cr.Contains(r, c)) - // { - // if (cr.c1 != cr.c2) - // mrgcols = true; // in a range of merged columns - // if (cr.r1 != cr.r2) - // mrgrows = true; // in a range of merged rows - // continue; - // } - //} - //if (!mrgcols || !mrgrows) - //{ - // // IF the row of the selected cell is NOT in merged range - // // then go ahead and adjust the row height (if needed) - // if (!mrgrows) - // { - // // add adjustment for grid and cell borders - // int newheight = trtb.Height + 3; - - // //Console.WriteLine("{0} {1} {2} '{3}'", r, c, newheight,trtb.Text); - // if (newheight > this.Rows[r].Height) - // { - // //Console.WriteLine("1 Row {0} Old Height = {1}, New Height = {2}", r, Rows[r].Height, newheight); - // this.Rows[r].Height = newheight; - // } - // } - // // IF the column of the selected cell is NOT in merged range - // // then go ahead and adjust the column width (if needed) - // if (!mrgcols) - // { - // // add adjustment for grid and cell borders - // int newwidth = trtb.Width + 2; - - // if (newwidth > this.Cols[c].Width || AllowWidthShrink || r == 0) - // this.Cols[c].Width = newwidth; - // } - //} - //if (mrgrows && tstr != null) - //{ - // CellRange cr = GetMergedRange(r, c); - // //Console.WriteLine("grid[{0},{1}] merge = {2}", r, c,cr); - // if (cr.r1 == r && cr.c1 == c) - // { - // // if in merged rows, then make sure the cell's height is large enough - // string[] strary = tstr.Split("\n".ToCharArray()); - // // count number of lines of text - // int nlines = strary.Length; - // // count number of rows in merge range - // int nrows = (cr.r2 - cr.r1) + 1; - // //Console.WriteLine("2 Row {0} Height = {1}", cr.r1, Rows[cr.r1].Height); - // while (nlines > nrows) - // { - // // add length to first row in merged range - // int h = this.Rows[cr.r1].Height; - // int defH = Rows.DefaultSize - 3; - // //h = (h == -1) ? _minRowHeight * 2 : h + _minRowHeight; - // h = (h == -1) ? (defH * 2) + 3 : h + defH; - // //h = (h == -1) ? (Rows.DefaultSize + 2) * 2 : h + Rows.DefaultSize + 2; - // //Console.WriteLine("3 Row {0} Old Height = {1}, New Height = {2}", cr.r1, Rows[cr.r1].Height, h); - // this.Rows[cr.r1].Height = h; - // nrows++; - // } - // } - //} - } - } - private void AdjustCellHeightWidth(int r, int c) - { - using (StepRTB trtb = new StepRTB()) - { - string tstr = null; - bool dummyCharWidth = false; - bool AllowWidthShrink = false; - trtb.SetTableGridCellRTFPrefix(this.Font); - trtb.Clear(); - trtb.Font = this.Font; - trtb.Rtf = (string)this[r, c]; - tstr = trtb.Text; - if (tstr != null && tstr.Length > 0) - AllowWidthShrink = tstr.Contains("#Link:"); - else - { - trtb.Text = "X"; // this is to trick steprtf in giving a char width to fit one character - // note that a space character was too small. - dummyCharWidth = true; - } - // find the needed cell width - trtb.AdjustWidthForContent(); - - if (dummyCharWidth) - { - trtb.Text = ""; // clear out the dummy character before saving - dummyCharWidth = false; - } - - this.Select(r, c, false); - CellRange sel = this.Selection; - - // Now adjust the Height and Width in the defined merge ranges - AdjustMergeRangeHeightWidth(r, c, trtb, tstr, AllowWidthShrink); - } - } - - private void AdjustMergeRangeHeightWidth(int r, int c, StepRTB trtb, string tstr, bool AllowWidthShrink) - { - bool mrgrows = false; - bool mrgcols = false; - foreach (CellRange cr in this.MergedRanges) - { - if (cr.Contains(r, c)) - { - if (cr.c1 != cr.c2) - mrgcols = true; // in a range of merged columns - if (cr.r1 != cr.r2) - mrgrows = true; // in a range of merged rows - continue; - } - } - if (!mrgcols || !mrgrows) - { - // IF the row of the selected cell is NOT in merged range - // then go ahead and adjust the row height (if needed) - if (!mrgrows) - { - // add adjustment for grid and cell borders - int newheight = trtb.Height + 3; - - //Console.WriteLine("{0} {1} {2} '{3}'", r, c, newheight,trtb.Text); - if (newheight > this.Rows[r].Height) - { - //Console.WriteLine("1 Row {0} Old Height = {1}, New Height = {2}", r, Rows[r].Height, newheight); - this.Rows[r].Height = newheight; - } - } - // IF the column of the selected cell is NOT in merged range - // then go ahead and adjust the column width (if needed) - if (!mrgcols) - { - // add adjustment for grid and cell borders - int newwidth = trtb.Width + 3; // 2; - if (newwidth > (this.Cols[c].Width == -1 ? this.Cols.DefaultSize : this.Cols[c].Width) || AllowWidthShrink || r == 0) - this.Cols[c].Width = newwidth; - } - } - if (mrgrows && tstr != null) - { - CellRange cr = GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - // if in merged rows, then make sure the cell's height is large enough - string[] strary = tstr.Split("\n".ToCharArray()); - // count number of lines of text - int nlines = strary.Length; - // count number of rows in merge range - int nrows = (cr.r2 - cr.r1) + 1; - //Console.WriteLine("2 Row {0} Height = {1}", cr.r1, Rows[cr.r1].Height); - while (nlines > nrows) - { - // add length to first row in merged range - int h = this.Rows[cr.r1].Height; - int defH = Rows.DefaultSize - 3; - h = (h == -1) ? (defH * 2) + 3 : h + defH; - this.Rows[cr.r1].Height = h; - nrows++; - } - } - } - } - private int TotalColWidths() - { - int cwid = 0; - foreach (Column c in Cols) - { - cwid += ((c.Width > 0) ? c.Width : Cols.DefaultSize); - } - return cwid; - } - /// - /// This will adjust the column widths of the current table based upon the page width - /// Note: This is for use in creating a new table - not to process an existing table. - /// - /// - public void FitTableToPageWidth(int pgWidthPoints) - { - int grdWidth = TotalColWidths(); - int pgwidth = (int)((pgWidthPoints / 72) * this._DPI); - - if (grdWidth > pgwidth) - { - int difWid = grdWidth - pgwidth; - int colAdj = (difWid / Cols.Count) +(((difWid % Cols.Count) > 0) ? 1 : 0); - foreach (Column c in Cols) - { - int cwid = (c.Width > 0) ? c.Width : Cols.DefaultSize; - if ((cwid - colAdj) > 0) - c.Width = cwid - colAdj; - } - } - } - //private void AdjustCellHeightWidth(int r, int c) - //{ - // StepRTB trtb = new StepRTB(); - // string tstr = null; - // bool dummyCharWidth = false; - // bool AllowWidthShrink = false; - // trtb.SetTableGridCellRTFPrefix(this.Font); - // trtb.Clear(); - // trtb.Font = this.Font; - // trtb.Rtf = (string)this[r, c]; - // tstr = trtb.Text; - // if (tstr != null && tstr.Length > 0) - // AllowWidthShrink = tstr.Contains("#Link:"); - // else - // { - // trtb.Text = "X"; // this is to trick steprtf in giving a char width to fit one character - // // note that a space character was too small. - // dummyCharWidth = true; - // } - // // find the needed cell width - // trtb.AdjustWidthForContent(); - - // if (dummyCharWidth) - // { - // trtb.Text = ""; // clear out the dummy character before saving - // dummyCharWidth = false; - // } - - // this.Select(r, c, false); - // CellRange sel = this.Selection; - - // // Now see the the selected row,col is in the defined merge ranges - // bool mrgrows = false; - // bool mrgcols = false; - // foreach (CellRange cr in this.MergedRanges) - // { - // if (cr.Contains(r, c)) - // { - // if (cr.c1 != cr.c2) - // mrgcols = true; // in a range of merged columns - // if (cr.r1 != cr.r2) - // mrgrows = true; // in a range of merged rows - // continue; - // } - // } - // if (!mrgcols || !mrgrows) - // { - // // IF the row of the selected cell is NOT in merged range - // // then go ahead and adjust the row height (if needed) - // if (!mrgrows) - // { - // // add adjustment for grid and cell borders - // int newheight = trtb.Height + 3; - - // //Console.WriteLine("{0} {1} {2} '{3}'", r, c, newheight,trtb.Text); - // if (newheight > this.Rows[r].Height) - // { - // //Console.WriteLine("1 Row {0} Old Height = {1}, New Height = {2}", r, Rows[r].Height, newheight); - // this.Rows[r].Height = newheight; - // } - // } - // // IF the column of the selected cell is NOT in merged range - // // then go ahead and adjust the column width (if needed) - // if (!mrgcols) - // { - // // add adjustment for grid and cell borders - // int newwidth = trtb.Width + 2; - - // if (newwidth > this.Cols[c].Width || AllowWidthShrink || r == 0) - // this.Cols[c].Width = newwidth; - // } - // } - // if (mrgrows && tstr != null) - // { - // CellRange cr = GetMergedRange(r, c); - // if (cr.r1 == r && cr.c1 == c) - // { - // // if in merged rows, then make sure the cell's height is large enough - // string[] strary = tstr.Split("\n".ToCharArray()); - // // count number of lines of text - // int nlines = strary.Length; - // // count number of rows in merge range - // int nrows = (cr.r2 - cr.r1) + 1; - // //Console.WriteLine("2 Row {0} Height = {1}", cr.r1, Rows[cr.r1].Height); - // while (nlines > nrows) - // { - // // add length to first row in merged range - // int h = this.Rows[cr.r1].Height; - // int defH = Rows.DefaultSize - 3; - // h = (h == -1) ? (defH * 2) + 3 : h + defH; - // this.Rows[cr.r1].Height = h; - // nrows++; - // } - // } - // } - //} - - //private void Compare(string fromRTF, string fromStr, string rawstr) - //{ - // int istart = fromRTF.IndexOf(" ",fromRTF.IndexOf("viewkind")); - // int jstart = fromStr.IndexOf(" ",fromStr.IndexOf("viewkind")); - // for (int i = istart; i < fromRTF.Length; i++) - // { - // int j = i - istart + jstart; - // //else if (fromRTF[i] != fromStr[j]) - // if (fromRTF[i] != fromStr[j]) - // { - // if (fromRTF.Substring(i, 1) == @"~" && fromStr.Substring(j, 3) == @"'a0") - // { - // //i++; - // jstart += 2; - // } - // else - // { - // Console.WriteLine("fromStr:\r\n'{0}'\r\nfromRTF:\r\n'{1}'", fromStr, fromRTF); - // ShowRawString(rawstr, "rawstr"); - // Console.WriteLine("Str:'{0}' , RTF:'{1}'", fromStr.Substring(j, Math.Min(10,fromStr.Length-j-1)), fromRTF.Substring(i, Math.Min(10,fromRTF.Length-i-1))); - // return; - // } - // } - // } - //} - - #region DEBUG - //private void ShowRawString(string str, string title) - //{ - // Console.WriteLine("Raw Start --{0}:\n", title); - // foreach (char c in str) - // { - // int ic= (int)c; - // if (c!='\n'&&( ic > 126 || ic < 32)) - // Console.Write("<<{0:x4}>>", ic); - // else - // Console.Write(c); - // } - // Console.WriteLine("\n-- Raw End:{0}", title); - //} - #endregion - - private void Grid_AfterResize(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - this.AdjustGridControlSize(); - } - - #endregion // Grid Size Adjustments - - #region Cell Text - public void MakeRTFcells() - { - // This will spin through all the cells in the grid: - // - convert the text to RTF if needed - // - adjust the grid dimensions based on the cell info. - for (int r = 0; r < this.Rows.Count; r++) - { - this.Rows[r].Height = Rows.DefaultSize;//_minRowHeight;//20;//10; - for (int c = 0; c < this.Cols.Count; c++) - this.ConvertTextCellToRTF(r, c); - } - - TrimColumnWidths(); - RemoveBlankSpaceFromRows(); - SetupCellUserData(); - this.AdjustGridControlSize(); - } - - public void FixTableCellsHeightWidth() - { - RemoveBlankSpaceFromColumns(); - RemoveBlankSpaceFromRows(); - } - - private void RemoveBlankSpaceFromRows() - { - for (int r = 0; r < Rows.Count; r++) - { - Select(r, 0); - int blankRowSpace = BlankRowSpace(); - if (blankRowSpace > 0) - Rows[r].Height -= blankRowSpace; - } - } - - private void RemoveBlankSpaceFromColumns() - { - for (int c = 0; c < Cols.Count; c++) - { - Select(0, c); - int blankColSpace = BlankColSpace(); - if (blankColSpace > 0) - Cols[c].Width -= blankColSpace; - } - } - - private void TrimColumnWidths() - { - for (int c = 0; c < Cols.Count; c++) - { - Select(0, c); - int newColWidth = MinColWidth(); - Cols[c].Width = newColWidth; - } - } - - private int MinColWidth() - { - int curColWidth = 0; - for (int r = 0; r < Rows.Count; r++) - { - CellRange cr = GetMergedRange(r, Col); - // find the needed cell width - if (Col == cr.c1) - { - using (StepRTB srtb = new StepRTB()) - { - srtb.Rtf = GetCellRTFString(cr.r1, cr.c1); - srtb.AdjustWidthForContent(); - curColWidth = Math.Max(curColWidth, srtb.Width + 3); - } - } - } - return curColWidth; - } - - //private bool RemoveBoldUlineItalicChars(string str) - //{ - // int rtn = 0; - - // // Underline next word - // rtn += str.IndexOf(@"\'17"); - - // // Bold next word - // rtn += str.IndexOf(@"\'13"); - - // // Italics On - // rtn += str.IndexOf(@"\'1B4"); - - // // Italics Off - // rtn += str.IndexOf(@"\'1B5"); - - // // underline On - // rtn += str.IndexOf(@"\'ab"); - // // underline Off - // rtn += str.IndexOf(@"\'bb"); - - // return rtn > 0; - - //} - - private string ConvertTableText(string str) - { - string rtn = str; - //ShowRawString(str, "ConvertTableText IN"); - rtn = rtn.Replace(@"START]\v0", @"START]\cf1\v0"); - rtn = rtn.Replace(@"\v #Link:", @"\cf0\v #Link:"); - rtn = rtn.Replace("\n", "\\par\r\n"); - rtn = rtn.Replace("\xB3", @"\f1\u9474?\f0"); // Vert Bar - rtn = rtn.Replace("\xF2", @"\f1\u8805?\f0 "); // greater than or equal - rtn = rtn.Replace("\x7F", @"\f1\u916?\f0 "); // delta - rtn = rtn.Replace("\xF3", @"\f1\u8804?\f0 "); // less than or equal - rtn = rtn.Replace("\xE4", @"\f1\u931?\f0 "); // sigma - rtn = rtn.Replace("\xE7", @"\f1\u947?\f0 "); // gamma - rtn = rtn.Replace("\xFE", @"\f1\u9604?\f0 "); // accum 2584 - rtn = rtn.Replace("\x7", @"\f1\u9679?\f0 "); // bullet 25CF - rtn = rtn.Replace("\xF7", @"\f1\u8776?\f0 "); // approx eq - rtn = rtn.Replace("\xF0", @"\f1\u8773?\f0 "); // similar eq 2245 - rtn = rtn.Replace("\xFB", @"\f1\u8730?\f0 "); // square root - rtn = rtn.Replace("\xE2", @"\f1\u961?\f0 "); // rho 3C1 - rtn = rtn.Replace("\xE3", @"\f1\u960?\f0 "); // pi - rtn = rtn.Replace("\xE6", @"\f1\u956?\f0 "); // micro - rtn = rtn.Replace("\xEB", @"\f1\u948?\f0 "); // lower case delta - rtn = rtn.Replace("\xE5", @"\f1\u963?\f0 "); // lower case sigma - rtn = rtn.Replace("\x90", @"\f1\u274?\f0 "); // energy, 112 - rtn = rtn.Replace("\xEE", @"\f1\u949?\f0 "); // epsilon - rtn = rtn.Replace("\xE9", @"\f1\u952?\f0 "); // theta, 3B8 - rtn = rtn.Replace("\xEC", @"\f1\u8857?\f0 "); // dot in oval, 2299 - rtn = rtn.Replace("\xA8", @"\f1\u964?\f0 "); // tau, 3C4 - rtn = rtn.Replace("\xA9", @"\f1\u9830?\f0 "); // diamond, 2666 - rtn = rtn.Replace("\x18", @"\f1\u8593?\f0 "); // Up Arrow - rtn = rtn.Replace("\x19", @"\f1\u8595?\f0 "); // Down Arrow - rtn = rtn.Replace("\xFF", @"\u160?"); // hardspace - //rtn = rtn.Replace(@"\'a0", @"\u160?"); - //rtn = rtn.Replace("\xff", @"\u160?"); - //rtn = rtn.Replace("\xA0", @"\u160?"); - // underline On - rtn = rtn.Replace("\xab", @"\ul"); - // underline Off - rtn = rtn.Replace("\xbb", @"\ulnone"); - //rtn = rtn.Replace("\xef\xe6", @"\up2 "); - //rtn = rtn.Replace("\xef\xe7", @"\up0 "); - rtn = rtn.Replace("\x9566", @"\up2 "); - rtn = rtn.Replace("\x9567", @"\up0 "); - rtn = rtn.Replace("{", @"\{"); - rtn = rtn.Replace("}", @"\}"); - rtn = rtn.Replace("\xd5", @"\b"); - rtn = rtn.Replace("\xd6", @"\b0"); - - //ShowRawString(rtn, "ConvertTableText OUT"); - return rtn; - } - - private static string SomethingNextWord(string str, string nxtwordcmd, string cmdOn, string cmdOff) - { - string rtn = ""; - int bidx = 0; - int fidx = str.IndexOf(nxtwordcmd, bidx); - char[] term = " \r\n\x02".ToCharArray(); - while (fidx > 0) - { - rtn += str.Substring(bidx, fidx - bidx) + cmdOn; - bidx = fidx + 4; - - if (bidx < str.Length) - { - fidx = str.IndexOfAny(term, bidx); - if (fidx > 0) - { - rtn += str.Substring(bidx, fidx - bidx) + cmdOff + str.Substring(fidx, 1); - bidx = fidx + 1; - } - } - - if (bidx < str.Length) - fidx = str.IndexOf(nxtwordcmd, bidx); - else - fidx = -1; - } - if (bidx < str.Length) - rtn += str.Substring(bidx); - - return rtn; - } - - private void _StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - // start editing the cell with the custom editor - _tableCellEditor.StartEditing(e.Row, e.Col); - e.Cancel = true; - } - - // after edit handler (built-in editors) - private void _AfterEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - this.GetCellRange(e.Row, e.Col).Style.ForeColor = Color.Black; - this.AdjustGridControlSize(); - } - - // if the custom editor is visible, make it follow the cell being edited - private void _AfterScroll(object sender, C1.Win.C1FlexGrid.RangeEventArgs e) - { - this._tableCellEditor.UpdatePosition(); - } - - // save last key pressed for the custom editor - private void _KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) - { - this._tableCellEditor.SetPendingKey(e.KeyChar); - } - - public string GetCellRTFString(int row, int col) - { - string rtnstr = ""; - foreach (CellRange r in this.MergedRanges) - { - if (r.ContainsRow(row) && r.ContainsCol(col)) - { - rtnstr = (string)this[r.r1, r.c1]; - return rtnstr; - } - } - rtnstr = (string)this[row, col]; - return rtnstr; - } - - public void PutCellRTFString(int row, int col, string str) - { - foreach (CellRange r in this.MergedRanges) - { - if (r.ContainsRow(row) && r.ContainsCol(col)) - { - this[r.r1, r.c1] = str; - return; - } - } - this[row, col] = str; - return; - } - public void ClearSelectedCellText() - { - CellRange cr = this.Selection; - cr.Clear(ClearFlags.Content); - } - public void SetupCellUserData() - { - for (int r = 0; r < Rows.Count; r++) - for (int c = 0; c < Cols.Count; c++) - { - string rtfText = GetDataDisplay(r, c); - if (rtfText.StartsWith(@"{\rtf")) - { - using (StepRTB _rtf = new StepRTB()) - { - _rtf.Width = Cols[c].Width; - _rtf.Rtf = rtfText; - CellRange cr = GetCellRange(r, c); - cr.UserData = _rtf.ContentsRectangle.Height; - } - } - } - } - - #endregion //Cell Text - - #region Merged / Split Range - - public void MergeSelection() - { - this.MergedRanges.Add(this.Selection,true); - this.Invalidate(); - this.Select(Selection.r1, Selection.c1); - } - public bool IsInMergeRange() - { - C1.Win.C1FlexGrid.CellRange sel = GetMergedRange(this.Selection.r1, this.Selection.c1); - return MergedRanges.Contains(sel); - } - public void SplitSelection(bool bSplitCols) - { - //Console.WriteLine("SplitSelection this.selection {0}", this.Selection); - //Debug_WritelineMySelection(); - //C1.Win.C1FlexGrid.CellRange sel = this.GetMergedRange(this.Selection.r1, this.Selection.c1); - //Console.WriteLine("SplitSelection myselection {0}", MySelection); - //foreach (CellRange sel in MySelection) - //{ - // //Console.WriteLine("SplitSelection foreach sel {0}", sel); - // if (sel.IsSingleCell) - // this.MergedRanges.Remove(sel); - // if (!(this.MergedRanges.Contains(sel)) && !didit) - // if (bSplitCols) - // SplitSelectionColumns(); - // else - // SplitSelectionRows(); - // didit = true; - //} - if (bSplitCols) - SplitSelectionColumns(); - else - SplitSelectionRows(); - //Debug_WritelineMySelection(); - //foreach (CellRange sel in MySelection) - //{ - // //Console.WriteLine("SplitSelection foreach sel {0}", sel); - // if (this.MergedRanges.Contains(sel)) - // SplitMergedRange(sel, bSplitCols); - //} - //this.Refresh(); - //RefreshMergeRangeCollection(); - this.AdjustGridControlSize(); - } - - private void SplitMergedRange(CellRange sel, bool bSplitCols) - { - int sR = sel.r1; - int eR = sel.r2; - int sC = sel.c1; - int eC = sel.c2; - if (bSplitCols && (IsMergedCols(sel) && !IsMergedRows(sel)) || - (!bSplitCols && (IsMergedRows(sel) && !IsMergedCols(sel)))) - MergedRanges.Remove(sel); - else - { - CellRange saveSelection = Selection; - if (bSplitCols && IsMergedRows(sel)) - { - MergedRanges.Remove(sel); - for (int c = sC; c <= eC; c++) - { - Select(sR, c, eR, c); - MergeSelection(); - } - } - else if (!bSplitCols && IsMergedCols(sel)) - { - MergedRanges.Remove(sel); - for (int r = sR; r <= eR; r++) - { - Select(r, sC, r, eC); - MergeSelection(); - } - } - Select(saveSelection); - } - } - private bool IsMergedRows(CellRange sel) - { - return (sel.r1 != sel.r2); - } - private bool IsMergedCols(CellRange sel) - { - return (sel.c1 != sel.c2); - } - private void SplitSelectionColumns() - { - bool hasNonMergedColumn = false; - //Console.WriteLine("SplitSelectionColumns this.selection {0}", this.Selection); - //Debug_WritelineMySelection(); - CellRange cr = this.Selection; - int numSelCols = (cr.c2 - cr.c1) + 1; - foreach (CellRange sel in MySelection) - { - if (!this.MergedRanges.Contains(sel)) - hasNonMergedColumn = true; - else - { - CellRange mr = GetMergedRange(sel.r1, sel.c1); - if (mr.c1 == mr.c2) - hasNonMergedColumn = true; - } - } - // for each column in the selection, add a new column - if (hasNonMergedColumn) - { - for (int c = cr.c2; c >= cr.c1; c--) - { - Select(cr.r1, c, cr.r2, c); - InsertColumnAfter(); - } - } - // include new columns in selection - this.Select(cr.r1, cr.c1, cr.r2, cr.c2 + ((hasNonMergedColumn) ? numSelCols : 0)); - //if a merged range is part of the selectin, try to split it - foreach (CellRange sel in MySelection) - { - //Console.WriteLine("SplitSelection foreach sel {0}", sel); - if (this.MergedRanges.Contains(sel)) - SplitMergedRange(sel, true); - } - cr = this.Selection; - if (hasNonMergedColumn) - { - for (int r = 0; r < this.Rows.Count; r++) - for (int c = cr.c1; c <= cr.c2; c += 2) - { - if (!this.IsCellSelected(r, c)) - { - CellRange crTmp = GetMergedRange(r, c); - if (crTmp.IsSingleCell) - { - CellRange tcr = this.GetCellRange(r, c, r, c + 1); - this.MergedRanges.Add(tcr); - this.Invalidate(); - } - //CellRange tcr = this.GetCellRange(r, c, r, c + 1); - //this.MergedRanges.Add(tcr); - } - } - // Adjust selected column widths - for (int c = cr.c1; c <= cr.c2; c++) - { - int recWidth = (Cols[c].Width < 0) ? Cols.DefaultSize : Cols[c].Width; // this.GetCellRect(cr.r1, c).Width; - int newWidth = Math.Max(recWidth / 2, _minColSplitWidth); - this.Cols[c].Width = newWidth; - //Console.WriteLine("Cell[{0},{1}].Width = {2}", cr.r1, c, recWidth); - //Console.WriteLine("Cell[{0},{1}].NewWidth = {2}", cr.r1, c, newWidth); - } - } - } - - private void SplitSelectionRows() - { - bool hasNonMergedRow = false; - CellRange cr = this.Selection; - int numSelRows = (cr.r2 - cr.r1) + 1; - //Console.WriteLine("numSelRows = {0}", numSelRows); - //Console.WriteLine("Inital Selection [{0},{1}] - [{2},{3}]", cr.r1, cr.c1, cr.r2, cr.c2); - foreach (CellRange sel in MySelection) - { - if (!this.MergedRanges.Contains(sel)) - hasNonMergedRow = true; - else - { - CellRange mr = GetMergedRange(sel.r1, sel.c1); - if (mr.r1 == mr.r2) - hasNonMergedRow = true; - } - } - // for each row in the selection, add a new row - if (hasNonMergedRow) - { - for (int r = cr.r2; r >= cr.r1; r--) - { - //Console.WriteLine("Inserted new Row at [{0},{1}]", r, cr.c1); - Select(r, cr.c1, r, cr.c2); - InsertRowAfter(); - } - } - // include new rows in selection - this.Select(cr.r1, cr.c1, cr.r2 + numSelRows, cr.c2); - //if a merged range is part of the selectin, try to split it - foreach (CellRange sel in MySelection) - { - //Console.WriteLine("SplitSelection foreach sel {0}", sel); - if (this.MergedRanges.Contains(sel)) - SplitMergedRange(sel, false); - } - cr = this.Selection; - //Console.WriteLine(" After Insert [{0},{1}] - [{2},{3}]", cr.r1, cr.c1, cr.r2, cr.c2); - if (hasNonMergedRow) - { - for (int c = 0; c < this.Cols.Count; c++) - for (int r = cr.r1; r <= cr.r2; r += 2) - { - if (!this.IsCellSelected(r, c)) - { - CellRange crTmp = GetMergedRange(r, c); - if (crTmp.IsSingleCell) - { - CellRange tcr = this.GetCellRange(r, c, r + 1, c); - this.MergedRanges.Add(tcr); - this.Invalidate(); - } - } - } - // Adjust selected Row Heights - for (int r = cr.r1; r <= cr.r2; r++) - { - int recHeight = this.GetCellRect(r, cr.c1).Height; - this.Rows[r].Height = Math.Max(recHeight / 2, Rows.DefaultSize); - //this.Rows[r].Height = Math.Max(recHeight / 2, _minRowSplitHeight); - //Console.WriteLine("Cell[{0},{1}].Height = {2}", r, cr.c1, recHeight); - } - } - //foreach (CellRange crng in this.MergedRanges) - // Console.WriteLine("merge ranges [{0},{1}] - [{2},{3}]", crng.r1, crng.c1, crng.r2, crng.c2); - } - private void AdjustMergedRows(int row, bool above, bool removing) - { - AdjustMergedRows(row, 1, above, removing); - } - - private void AdjustMergedRows(int row, int cnt, bool above, bool removing) - { - CellRangeCollection crc = new CellRangeCollection(this); - if (removing) - { - foreach (CellRange r in this.MergedRanges) - { - CellRange cr = r; - if (r.ContainsRow(row)) - { - if (r.TopRow != r.BottomRow) - { - cr.r2 -= cnt; - crc.Add(cr); - } - } - else - { - if (row <= r.r1) - { - if (row < r.r1) - cr.r1 -= cnt; - cr.r2 -= cnt; - } - crc.Add(cr); - } - } - } - else // adding - foreach (CellRange r in this.MergedRanges) - { - CellRange cr = r; - int inspos = (above) ? row : row - 1; - if (r.ContainsRow(inspos)) - { - bool adjustMergeValues = true; - if (cr.r1 == row && cr.r2 == row + cnt -1) - adjustMergeValues = false; // don't add to existing merge range - we will add a new merge range for this copy - for (int insCnt = 0; insCnt < cnt; insCnt++) - { - if ((above && cr.r1 == inspos) || (!above && cr.r2 == inspos)) - { - string tstr = ""; - int newrow = 0; - if (above) - { - if (this[cr.r1 + cnt, cr.c1] != null) - tstr = this[cr.r1 + cnt, cr.c1].ToString(); - newrow = cr.r1; - } - else - { - if (this[cr.r2, cr.c1] != null) - tstr = this[cr.r2, cr.c1].ToString(); - newrow = cr.r2 + cnt; - } - if (tstr != null && tstr.Length > 0) - for (int x = cr.c1; x <= cr.c2; x++) - this[newrow, x] = tstr; - } - if (adjustMergeValues) cr.r2++; - } - } - else - { - if (inspos < cr.r1) - { - cr.r1 += cnt; - cr.r2 += cnt; - } - } - crc.Add(cr); - } - this.MergedRanges.Clear(); - foreach (CellRange r in crc) - { - if ((r.r1 != r.r2) || (r.c1 != r.c2)) - this.MergedRanges.Add(r); - } - } - - private void AdjustMergedColumns(int col, bool left, bool removing) - { - AdjustMergedColumns(col, 1, left, removing); //adjusting for just one column - } - - private void AdjustMergedColumns(int col, int cnt, bool left, bool removing) - { - CellRangeCollection crc = new CellRangeCollection(this); - if (removing) - { - foreach (CellRange r in this.MergedRanges) - { - CellRange cr = r; - if (r.ContainsCol(col)) - { - if (r.LeftCol != r.RightCol) - { - cr.c2 -= cnt; - crc.Add(cr); - } - } - else - { - if (col < cr.c1) - { - cr.c1-=cnt; - cr.c2-=cnt; } - crc.Add(cr); - } - } - } - else // adding - foreach (CellRange r in this.MergedRanges) - { - CellRange cr = r; - int inspos = (left) ? col : col - 1; - if (r.ContainsCol(inspos)) - { - for (int insCnt = 0; insCnt < cnt; insCnt++) - { - string tstr = ""; - int newcol = 0; - if (left) - { - if (inspos == cr.c1) - tstr = (this[cr.r1, cr.c1 + 1] == null) ? "" : this[cr.r1, cr.c1 + 1].ToString(); - else - tstr = (this[cr.r1, cr.c1] == null) ? "" : this[cr.r1, cr.c1].ToString(); - newcol = cr.c1; - } - else - { - if (this[cr.r1, cr.c2] != null) - tstr = this[cr.r1, cr.c2].ToString(); - newcol = cr.c2 + 1; - } - for (int x = cr.r1; x <= cr.r2; x++) - this[x, newcol] = tstr; - - cr.c2++; - } - } - else if (col <= r.c1) - { - cr.c1+=cnt; - cr.c2+=cnt; - } - crc.Add(cr); - } - this.MergedRanges.Clear(); - foreach (CellRange r in crc) - { - if ((r.r1 != r.r2) || (r.c1 != r.c2)) - this.MergedRanges.Add(r); - } - } - - private bool RowIsInMergeRange(int row) - { - bool rtn = false; - if (row >= 0) - { - CellRange cr = this.Selection; - //rtn = true; // KBR: is this wrong, i.e. should it be like ColIsInMergeRange - int c = cr.c1; - while (!rtn && (c <= cr.c2)) - { - int idx = this.MergedRanges.IndexOf(row, c); - rtn = (idx > -1); - c++; - } - } - return rtn; - } - - private bool ColIsInMergeRange(int col) - { - bool rtn = false; - if (col >= 0) - { - CellRange cr = this.Selection; - //rtn = true; - int r = cr.r1; - while (!rtn && (r <= cr.r2)) - { - int idx = this.MergedRanges.IndexOf(r, col); - rtn = (idx > -1); - r++; - } - } - return rtn; - } - - #endregion //Merged / Split Range - - #region Grid Add and Remove Row / Column - - private int GetRowInsertPosition(Boolean before) - { - int rtnrow; - CellRange selcr = this.Selection; - CellRange cr = selcr; - int idx = this.MergedRanges.IndexOf(cr.r1, cr.c2); - if (idx > -1) - cr = this.MergedRanges[idx]; // we want first or last row in merge range - rtnrow = (before) ? cr.r1 : cr.r2; - // The following is an adjustment needed when we are copying an entire row that includes some merged cells - if (selcr.c1 != selcr.c2) - { - while (!before && rtnrow > selcr.r2) rtnrow--; - while (before && rtnrow < selcr.r2) rtnrow++; - } - - return rtnrow; - } - - private int GetColInsertPosition(Boolean before) - { - int rtncol; - CellRange selcr = this.Selection; - CellRange cr = selcr; - int idx = this.MergedRanges.IndexOf(cr.r1, cr.c2); - if (idx > -1) - cr = this.MergedRanges[idx]; // we want the first of last col in merge range - rtncol = (before) ? cr.c1 : cr.c2; - // The following is an adjustment needed when we are copying an entire column that includes some merged cells - if (selcr.r1 != selcr.r2) - { - while (!before && rtncol > selcr.c2) rtncol--; - while (before && rtncol < selcr.c2) rtncol++; - } - return rtncol; - } - - public void InsertColumnBefore() - { - int newcol = this.GetColInsertPosition(true); - this.Cols.Insert(newcol); - // set new column width to same width as column from where it was inserted - this.Cols[newcol].Width = this.Cols[newcol + 1].Width; - MyBorders.InsertColumn(newcol); - this.AdjustMergedColumns(newcol, true, false); - this.AdjustGridControlSize(); - } - - public void InsertColumnAfter() - { - int colidx = this.GetColInsertPosition(false); - if (colidx == this.Cols.Count - 1) // last column - this.Cols.Add(1); - else - this.Cols.Insert(colidx + 1); - MyBorders.InsertColumn(colidx); - // set new column width to same width as column from where it was inserted - this.Cols[colidx + 1].Width = this.Cols[colidx].Width; - this.AdjustMergedColumns(colidx + 1, false, false); - this.AdjustGridControlSize(); - } - - public void InsertRowBefore() - { - int newrow = this.GetRowInsertPosition(true); - this.Rows.Insert(newrow); - // set new row Height to same heidht as row from where it was inserted - this.Rows[newrow].Height = (Rows[newrow + 1].Height == -1) ? Rows.DefaultSize : Rows[newrow + 1].Height; - //this.Rows[newrow].Height = this.Rows[newrow + 1].Height; - MyBorders.InsertRow(newrow); - this.AdjustMergedRows(newrow, true, false); - this.AdjustGridControlSize(); - } - - public void InsertRowAfter() - { - int rowidx = this.GetRowInsertPosition(false); - if (rowidx == this.Rows.Count - 1) // last row - this.Rows.Add(1); - else - this.Rows.Insert(rowidx + 1); - // set new row Height to same heidht as row from where it was inserted - this.Rows[rowidx + 1].Height = (Rows[rowidx].Height == -1) ? Rows.DefaultSize : Rows[rowidx].Height; - //this.Rows[rowidx + 1].Height = this.Rows[rowidx].Height; - MyBorders.InsertRow(rowidx + 1); - this.AdjustMergedRows(rowidx + 1, false, false); - this.AdjustGridControlSize(); - } - - public bool AllRowsSelected() - { - int maxrow = Selection.r2; - foreach (CellRange cr in MySelection) - maxrow = Math.Max(maxrow, cr.r2); - return (Selection.r1 == 0 && maxrow == Rows.Count - 1); - } - - public bool AllColumnsSelected() - { - int maxcol = Selection.c2; - foreach (CellRange cr in MySelection) - maxcol = Math.Max(maxcol, cr.c2); - return (Selection.c1 == 0 && maxcol == Cols.Count - 1); - } - - public void RemoveSelectedColumn() - { - string msg = ""; - string title = ""; - CellRange saveCR = Selection; - this.SelectionMode = SelectionModeEnum.ColumnRange; - //this.Select(this.Selection.r1, this.Selection.c1); - this.Select(0, Selection.c1, Rows.Count - 1, Selection.c2); - this.SelectionMode = SelectionModeEnum.Default; - if (Selection.c1 != Selection.c2) - { - msg = "Remove selected columns?"; - title = "Delete Columns"; - } - else - { - msg = "Remove this column?"; - title = "Delete Column"; - } - DialogResult dr = MessageBox.Show(msg, title, MessageBoxButtons.YesNo); - if (dr == DialogResult.Yes) - RemoveColumns(this.Selection.r1, this.Selection.c1, 1+this.Selection.c2-this.Selection.c1); - else - Select(saveCR); - } - - public void RemoveSelectedRow() - { - string msg = ""; - string title = ""; - CellRange saveCR = Selection; - this.SelectionMode = SelectionModeEnum.RowRange; - this.Select(Selection.r1, 0, Selection.r2, Cols.Count - 1); - this.SelectionMode = SelectionModeEnum.Default; - if (Selection.r1 != Selection.r2) - { - msg = "Remove selected rows?"; - title = "Delete Rows"; - } - else - { - msg = "Remove this row?"; - title = "Delete Row"; - } - DialogResult dr = MessageBox.Show(msg, title, MessageBoxButtons.YesNo); - if (dr == DialogResult.Yes) - this.RemoveRows(this.Selection.r1, this.Selection.c1, 1 + this.Selection.r2 - this.Selection.r1); - else - Select(saveCR); - } - - private void RemoveRows(int strow, int stcol, int cnt) - { - bool mergedRow = false; - for (int i = 0; i < cnt; i++) - { - for (int cl = 0; cl < this.Cols.Count && !mergedRow; cl++) - { - int idx = this.MergedRanges.IndexOf(strow, cl); - if (idx > -1) - { - CellRange cr = this.MergedRanges[idx]; - if (cr.r1 < cr.r2) - mergedRow = true; - } - cl++; - } - this.Rows.Remove(strow); - this.AdjustMergedRows(strow, false, true); - mergedRow = false; - } - MyBorders.DeleteRows(strow, cnt); - this.AdjustGridControlSize(); - } - - private void RemoveColumns(int strow, int stcol, int cnt) - { - bool mergedCol = false; - for (int i = 0; i < cnt; i++) - { - for (int rw = 0; rw < this.Rows.Count && !mergedCol; rw++) - { - int idx = this.MergedRanges.IndexOf(rw, stcol); - if (idx > -1) - { - CellRange cr = this.MergedRanges[idx]; - if (cr.c1 < cr.c2) - mergedCol = true; - } - } - this.Cols.Remove(stcol); - this.AdjustMergedColumns(stcol, false, true); - mergedCol = false; - } - MyBorders.DeleteColumns(stcol, cnt); - this.AdjustGridControlSize(); - } - #endregion //Grid Add and Remove Row / Column - - #region Copy/Paste - - public void CopyRow() - { - DialogResult dr = DialogResult.Yes; - SelectRow(); - if (Selection.r1 != Selection.r2) - { - //dr = MessageBox.Show("You selected a row that includes merged cells.\n\nThese additional rows must be included.\n\nCopy these rows?", "Copy Rows", MessageBoxButtons.YesNo); - dr = MessageBox.Show("Your selection was expanded due to merged cell regions.\n\nContinue with the copy?", "Copy Rows", MessageBoxButtons.YesNo); - } - if (dr == DialogResult.Yes) - CopyToCopiedFlexGrid(GridCopyOption.Row); - } - - public void CopyColumn() - { - SelectCol(); - DialogResult dr = DialogResult.Yes; - if (Selection.c1 != Selection.c2) - { - //dr = MessageBox.Show("You selected a column that includes merged cells.\n\nThese additional columns must be included.\n\nCopy these columns?", "Copy Columns", MessageBoxButtons.YesNo); - dr = MessageBox.Show("Your selection was expanded due to merged cell regions.\n\nContinue with the copy?", "Copy Columns", MessageBoxButtons.YesNo); - } - if (dr == DialogResult.Yes) - CopyToCopiedFlexGrid(GridCopyOption.Column); - } - - public void CopyCellSelection() - { - DialogResult dr = DialogResult.Yes; - CellRange cr = Selection; - MakeSelectionEven(); - if (!cr.Equals(Selection)) - { - dr = MessageBox.Show("Your selection was expanded due to merged cell regions.\n\nContinue with the copy?", "Copy Selection", MessageBoxButtons.YesNo); - } - if (dr == DialogResult.Yes) - CopyToCopiedFlexGrid(GridCopyOption.Selection); - } - - public enum enmPastePos : int - { - Before = 1, Replace = 0, After = -1 - } - - public void PasteRows(enmPastePos pp) - { - if (MyCopyInfo.MyCopiedFlexGrid == null || MyCopyInfo.MyCopyOption != GridCopyOption.Row) return; - int rowsToAdd = MyCopyInfo.MyCopiedCellRange.r2 - MyCopyInfo.MyCopiedCellRange.r1 + 1; - int colsToAdd = Math.Max((MyCopyInfo.MyCopiedCellRange.c2 - MyCopyInfo.MyCopiedCellRange.c1 + 1) - Cols.Count, 0); - int selR1 = Selection.r1; - int selR2 = Selection.r2; - int rowOffset = selR1 + (pp == enmPastePos.After ?(selR2-selR1)+1 : 0) - MyCopyInfo.MyCopiedCellRange.r1; - - // If the rows we are copying has more columns than the current table, then append then needed columns to the grid - if (colsToAdd > 0) - { - Cols.Add(colsToAdd); - AdjustMergedColumns(Cols.Count - 1, colsToAdd, false, false); - MyBorders.InsertColumns(Cols.Count - colsToAdd - 1, colsToAdd); - } - - switch (pp) - { - case enmPastePos.Before: - this.Rows.InsertRange(selR1, rowsToAdd); - AdjustMergedRows(selR1, rowsToAdd, true, false); - MyBorders.InsertRows(Rows.Count - rowsToAdd - 1, rowsToAdd); - break; - case enmPastePos.After: - if (selR2+1 < Rows.Count - 1) - { - this.Rows.InsertRange(selR2 + 1, rowsToAdd); - AdjustMergedRows(selR1+1, rowsToAdd, false, false); - } - else - this.Rows.Add(rowsToAdd); - MyBorders.InsertRows(Rows.Count - rowsToAdd - 1, rowsToAdd); - break; - case enmPastePos.Replace: - if (rowsToAdd > Rows.Count - Selection.r1) - { - int numToAdd = rowsToAdd - (Rows.Count = selR1); - this.Rows.Add(numToAdd); - AdjustMergedRows(selR1, numToAdd, false, false); - } - break; - } - - RemoveMergedRanges(MyCopyInfo.MyCopiedCellRange.r1 + rowOffset, MyCopyInfo.MyCopiedCellRange.c1, MyCopyInfo.MyCopiedCellRange.r2 + rowOffset, MyCopyInfo.MyCopiedCellRange.c2); - for (int r = MyCopyInfo.MyCopiedCellRange.r1; r <= MyCopyInfo.MyCopiedCellRange.r2; r++) - { - Rows[r + rowOffset].Height = MyCopyInfo.MyCopiedFlexGrid.Rows[r].Height; - for (int c = MyCopyInfo.MyCopiedCellRange.c1; c <= Math.Min(MyCopyInfo.MyCopiedCellRange.c2 + colsToAdd, Cols.Count - 1); c++) - { - CellRange crm = MyCopyInfo.MyCopiedFlexGrid.GetMergedRange(r, c); - if (r == crm.r1 && c == crm.c1) - { - Cols[c].Width = Math.Max(Cols[c].Width, MyCopyInfo.MyCopiedFlexGrid.Cols[c].Width); - CellRange cr = GetCellRange(crm.r1 + rowOffset, crm.c1, crm.r2 + rowOffset, crm.c2); - // if the paste is above - copy merge range for the destination - // if the paste is below - put back the range for the source location - if ((crm.r2 > crm.r1) || (crm.c2 > crm.c1)) - MergedRanges.Add(cr); - this[r + rowOffset, c] = MyCopyInfo.MyCopiedFlexGrid[r, c]; - MatchStyle(crm, cr); - PasteBorders(r + rowOffset, c, r, c); - // if the paste is above - put back the range for the source location - // if the paste is below - copy merge range for the destination - int r1 = crm.r1 + rowsToAdd - rowOffset; - int r2 = crm.r2 + rowsToAdd - rowOffset; - CellRange ncr = GetCellRange(r1, crm.c1, r2, crm.c2); - if ((crm.r2 > crm.r1) || (crm.c2 > crm.c1)) - MergedRanges.Add(ncr); - } - } - } - - this.AdjustGridControlSize(); - CopyToCopiedFlexGrid(MyCopyInfo.MyCopyOption); - } - - private void MatchStyle(CellRange crm, CellRange cr) - { - if (crm.Style != null) - { - ChangeCellAlign(cr, crm.Style.TextAlign); - ChangeCellBorder(cr, crm.Style.Border.Style); - } - //else - //{ - // cr.Style = null; // - didn't like the null - //} - } - - private void RemoveMergedRanges(int r1, int c1, int r2, int c2) - { - for (int r = r1; r <= r2; r++) - for (int c = c1; c <= c2; c++) - { - CellRange cr = GetMergedRange(r, c); - if (cr.r1 < cr.r2 || cr.c1 < cr.c2) - MergedRanges.Remove(cr); - } - } - - public void PasteColumns(enmPastePos pp) - { - if (MyCopyInfo.MyCopiedFlexGrid == null || MyCopyInfo.MyCopyOption != GridCopyOption.Column) return; - - int colsToAdd = MyCopyInfo.MyCopiedCellRange.c2 - MyCopyInfo.MyCopiedCellRange.c1 + 1; - int rowsToAdd = Math.Max((MyCopyInfo.MyCopiedCellRange.r2 - MyCopyInfo.MyCopiedCellRange.r1 + 1) - Rows.Count, 0); - int selC1 = Selection.c1; - int selC2 = Selection.c2; - int colOffset = selC1 + (pp == enmPastePos.After ? (selC2-selC1)+1 : 0) - MyCopyInfo.MyCopiedCellRange.c1; - - // If the columns we are copying has more rows than the current table, then append the needed rows to the grid - if (rowsToAdd > 0) - { - Rows.Add(rowsToAdd); - AdjustMergedRows(Rows.Count, false, false); - MyBorders.InsertRows(Rows.Count - rowsToAdd - 1,rowsToAdd); - } - - switch (pp) - { - case enmPastePos.Before: - this.Cols.InsertRange(selC1, colsToAdd); - AdjustMergedColumns(selC1, colsToAdd, true, false); - MyBorders.InsertColumns(Cols.Count - colsToAdd - 1, colsToAdd); - break; - case enmPastePos.After: - if (selC2+1 < Cols.Count - 1) - { - this.Cols.InsertRange(selC2+1, colsToAdd); - AdjustMergedColumns(selC1+1, colsToAdd, false, false); - } - else - this.Cols.Add(colsToAdd); - MyBorders.InsertColumns(Cols.Count - colsToAdd - 1, colsToAdd); - break; - case enmPastePos.Replace: - if (colsToAdd > Cols.Count - selC1) - { - int numToAdd = colsToAdd - (Cols.Count - selC1); - this.Cols.Add(numToAdd); - AdjustMergedColumns(selC1, numToAdd, true, false); - } - break; - } - - RemoveMergedRanges(MyCopyInfo.MyCopiedCellRange.r1, MyCopyInfo.MyCopiedCellRange.c1 + colOffset, MyCopyInfo.MyCopiedCellRange.r2, MyCopyInfo.MyCopiedCellRange.c2 + colOffset); - - // Fix the merge ranges - for (int c = MyCopyInfo.MyCopiedCellRange.c1; c <= MyCopyInfo.MyCopiedCellRange.c2; c++) - { - Cols[c + colOffset].Width = MyCopyInfo.MyCopiedFlexGrid.Cols[c].Width; - for (int r = MyCopyInfo.MyCopiedCellRange.r1; r <= Math.Min(MyCopyInfo.MyCopiedCellRange.r2 + rowsToAdd, Rows.Count - 1); r++) - { - CellRange crm = MyCopyInfo.MyCopiedFlexGrid.GetMergedRange(r, c); - if (r == crm.r1 && c == crm.c1) - { - Rows[r].Height = Math.Max(Rows[r].Height, MyCopyInfo.MyCopiedFlexGrid.Rows[r].Height); - CellRange cr = GetCellRange(crm.r1, crm.c1 + colOffset, crm.r2, crm.c2 + colOffset); - // if the paste is to the left - copy merge range for the destination - // if the paste is to the right - put back the range for the source location - if ((crm.r2 > crm.r1) || (crm.c2 > crm.c1)) - MergedRanges.Add(cr); - // copy cell text to the destination, copy the style, copy the cell borders - this[r, c + colOffset] = MyCopyInfo.MyCopiedFlexGrid[r, c]; - MatchStyle(crm, cr); - PasteBorders(r, c + colOffset, r, c); - // if the paste is to the left - put back the range for the source location - // if the paste is to the right - copy merge range for the destination - int c1 = crm.c1 + colsToAdd - colOffset; - int c2 = crm.c2 + colsToAdd - colOffset; - CellRange ncr = GetCellRange(crm.r1, c1, crm.r2, c2); - if ((crm.r2 > crm.r1) || (crm.c2 > crm.c1)) - MergedRanges.Add(ncr); - } - } - } - - this.AdjustGridControlSize(); - CopyToCopiedFlexGrid(MyCopyInfo.MyCopyOption); - - } - - public void PasteCopiedCells() - { - // Warn the user that this type of paste will replace the currently selected (highlighted) table cells and give the option to abort. - DialogResult dr = MessageBox.Show("This will replace the cells that are currently selected (highlighted). \n\nContinue with the paste?","Paste Table Cells",MessageBoxButtons.YesNo,MessageBoxIcon.Question); - if (dr == DialogResult.No) return; - - int nSelRows = Selection.r2 - Selection.r1 + 1; - int nSelCols = Selection.c2 - Selection.c1 + 1; - int nCpyRows = MyCopyInfo.MyCopiedCellRange.r2 - MyCopyInfo.MyCopiedCellRange.r1 + 1; - int nCpyCols = MyCopyInfo.MyCopiedCellRange.c2 - MyCopyInfo.MyCopiedCellRange.c1 + 1; - int colsToAdd = Math.Max(nCpyCols - nSelCols, 0); - int rowsToAdd = Math.Max(nCpyRows - nSelRows, 0); - int rowOffset = Selection.r1 - MyCopyInfo.MyCopiedCellRange.r1; - int colOffset = Selection.c1 - MyCopyInfo.MyCopiedCellRange.c1; - int selR2 = Selection.r2; - int selC2 = Selection.c2; - // If there are more cells to copy than what is seleceted in the target table - // Add extra rows and columns as needed - if (rowsToAdd > 0) - { - if (selR2 < Rows.Count - 1) - { - this.Rows.InsertRange(selR2 + 1, rowsToAdd); - AdjustMergedRows(selR2 + 1, false, false); - } - else - this.Rows.Add(rowsToAdd); - MyBorders.InsertRows(selR2,rowsToAdd); - } - - if (colsToAdd > 0) - { - if (selC2 < Cols.Count - 1) - { - this.Cols.InsertRange(selC2 + 1, colsToAdd); - AdjustMergedColumns(selC2 + 1, false, false); - } - else - this.Cols.Add(colsToAdd); - MyBorders.InsertColumns(selC2,colsToAdd); - } - - RemoveMergedRanges(MyCopyInfo.MyCopiedCellRange.r1 + rowOffset, MyCopyInfo.MyCopiedCellRange.c1 + colOffset, MyCopyInfo.MyCopiedCellRange.r2 + rowOffset, MyCopyInfo.MyCopiedCellRange.c2 + colOffset); - - for (int c = MyCopyInfo.MyCopiedCellRange.c1; c <= Math.Min(MyCopyInfo.MyCopiedCellRange.c2, Cols.Count - 1 - colOffset); c++) - Cols[c + colOffset].Width = Math.Max(MyCopyInfo.MyCopiedFlexGrid.Cols[c].Width, Cols[c + colOffset].Width); - - for (int r = MyCopyInfo.MyCopiedCellRange.r1; r <= Math.Min(MyCopyInfo.MyCopiedCellRange.r2, Rows.Count - 1 - rowOffset); r++) - { - Rows[r + rowOffset].Height = Math.Max(MyCopyInfo.MyCopiedFlexGrid.Rows[r].Height, Rows[r + rowOffset].Height); - for (int c = MyCopyInfo.MyCopiedCellRange.c1; c <= Math.Min(MyCopyInfo.MyCopiedCellRange.c2, Cols.Count - 1 - colOffset); c++) - { - CellRange crm = MyCopyInfo.MyCopiedFlexGrid.GetMergedRange(r, c); - if (r == crm.r1 && c == crm.c1) - { - CellRange cr = GetCellRange(crm.r1 + rowOffset, crm.c1 + colOffset, crm.r2 + rowOffset, crm.c2 + colOffset); - if ((crm.r2 > crm.r1) || (crm.c2 > crm.c1)) - MergedRanges.Add(cr); - this[r + rowOffset, c + colOffset] = MyCopyInfo.MyCopiedFlexGrid[r, c]; - MatchStyle(crm, cr); - PasteBorders(r + rowOffset, c + colOffset, r, c); - } - } - } - this.AdjustGridControlSize(); - CopyToCopiedFlexGrid(MyCopyInfo.MyCopyOption); - } - - #endregion // Copy/Paste - #region Selection - public bool SelectNextCell() - { - int r = this.Row; - int c = this.Col; - CellRange cr = GetMergedRange(r, c); - do - { - c = cr.c2 + 1; - if (c >= this.Cols.Count) - { - r = r + 1; - c = 0; - if (r >= this.Rows.Count) return false; - } - cr = GetMergedRange(r, c); - } while (r != cr.r1 || c != cr.c1); - Select(r, c); - return true; - } - public bool SelectPrevCell() - { - int r = this.Row; - int c = this.Col; - CellRange cr = GetMergedRange(r, c); - do - { - c = cr.c1 - 1; - if (c < 0) - { - r = r - 1; - c = this.Cols.Count-1; - if (r < 0) return false; - } - cr = GetMergedRange(r, c); - c = cr.c1; - } while (r != cr.r1); - Select(r, c); - return true; - } - #endregion - #region SearchableText - public string GetSearchableText() - { - StringBuilder sb = new StringBuilder(); - int r = 0; - int c = 0; - int w = Cols.Count; - int h = Rows.Count; - - while (r < h) - { - CellRange cr = GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - if (this[r, c] != null) - { - string strp = DisplayText.StaticStripRtfCommands((string)this[r, c]); - sb.Append(strp.Replace("\r\n", " ")); - } - sb.Append("\r\n"); - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - } - return sb.ToString(); - } - #endregion - #region Import / Export Grid - - /// - /// Prompts user with Save File dialog. - /// Grid will be saved to an XML file. - /// - /// - public void ExportToXML(string initDir) - { - SaveFileDialog sfd = new SaveFileDialog(); - sfd.DefaultExt = ".xml"; - sfd.Filter = "XML files (*.xml)|*.xml|All files (*.*)|*.* "; - //sfd.InitialDirectory = @"C:\Development\SampleTableData"; - sfd.InitialDirectory = initDir; - sfd.Title = "Save XML File"; - sfd.ShowDialog(); - this.WriteXml(sfd.FileName); - } - public string GetXMLData() - { - string retstr = null; - using (StringWriter sw = new StringWriter()) - { - this.WriteXml(sw); - retstr = sw.GetStringBuilder().ToString(); - sw.Close(); - } - return retstr; - } - /// - /// Prompts user with Save File dialog. - /// Grid will be saved to an Excel file. - /// - /// - public void ExportToExcel(string initDir) - { - SaveFileDialog sfd = new SaveFileDialog(); - sfd.DefaultExt = ".xls"; - sfd.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.* "; - //sfd.InitialDirectory = @"C:\Development\SampleTableData"; - sfd.InitialDirectory = initDir; - sfd.Title = "Save Excel File"; - sfd.ShowDialog(); - this.SaveExcel(sfd.FileName); - } - - /// - /// Prompts user with Open File dialog. - /// XML file will be imported to a table grid. - /// - /// - /// - public string ImportXML(string initDir) - { - string rtn = ""; - OpenFileDialog ofd = new OpenFileDialog(); - ofd.DefaultExt = ".xml"; - ofd.Filter = "XML files (*.xml)|*.xml|All files (*.*)|*.* "; - //ofd.InitialDirectory = @"C:\Development\SampleTableData"; - ofd.InitialDirectory = initDir; - ofd.Multiselect = false; - ofd.Title = "Select XML File"; - ofd.ShowDialog(); - this.Clear(); - this.MergedRanges.Clear(); - this.ReadXml(ofd.FileName); - this.BorderStyle = C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None; - this.KeyActionTab = KeyActionEnum.MoveAcross; - this.AdjustGridControlSize(); - rtn = ofd.SafeFileName; - return rtn; - } - - /// - /// Prompts user with Open File dialog. - /// Excel file will be imported to a table grid. - /// - /// - /// - public string ImportExcel(string initDir) - { - string rtn = ""; - //VlnFlexGrid grd = rbtDefaultTable.Checked ? vlnFlexGrid2 : vlnFlexGrid3; //GetActiveGrid(); - OpenFileDialog ofd = new OpenFileDialog(); - ofd.DefaultExt = ".xls"; - ofd.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*"; - //ofd.InitialDirectory = @"C:\Development\SampleTableData"; - ofd.InitialDirectory = initDir; - ofd.Multiselect = false; - ofd.Title = "Select Excel File"; - ofd.ShowDialog(); - this.Clear(); - this.MergedRanges.Clear(); - this.LoadExcel(ofd.FileName); - this.AdjustGridControlSize(); - rtn = ofd.SafeFileName; - return rtn; - } - public static List ROTableUpdate(object sender, ROFstInfoROTableUpdateEventArgs args) - { - string xml = null; - string srchtxt = null; - Content content = (Content)sender; - bool isdirty = false; - using (VlnFlexGrid myGrid = new VlnFlexGrid(content.ContentItems[0])) - { - using (StringReader sr = new StringReader(args.OldGridXml)) - { - myGrid.ReadXml(sr); - sr.Close(); - } - string roid = content.ContentRoUsages[0].ROID; //myGrid.ROID; - int rodbid = content.ContentRoUsages[0].RODbID; //myGrid.RODbId; - myGrid.Visible = false; - myGrid.ConvertTableROToGrid(args.ROText, rodbid, roid); - myGrid.FixTableCellsHeightWidth(); - myGrid.AdjustGridControlSize(); - myGrid.Visible = true; - using (StringWriter sw = new StringWriter()) - { - myGrid.WriteXml(sw); - xml = sw.GetStringBuilder().ToString(); - sw.Close(); - } - srchtxt = myGrid.GetSearchableText(); - isdirty = myGrid.IsGridChanged(args.OldGridXml, xml, false); - } - List retlist = new List(); - retlist.Add(srchtxt); - if(isdirty) - retlist.Add(xml); - else - retlist.Add(args.OldGridXml); - return retlist; - } - public void ConvertTableROToGrid(string valtext, int rodbid, string roid) - { - VE_Font vefont = _MyItemInfo.GetItemFont(); - this.Font = vefont.WindowsFont; - this.MergedRanges.Clear(); - this.Clear(); - this.IsRoTable = true; - this.ParseTableFromText(valtext, GridLinePattern.Single); - this.AutoSizeCols(); - this.AutoSizeRows(); - this.MakeRTFcells(); - this.RODbId = rodbid; - this.ROID = roid; - } - - private Regex _ReplaceSpaceNewLine = new Regex(@"(?<=\\[^' \\?\r\n\t]*) (?=\r\n)"); - private Regex _ReplaceTokenSpaceToken = new Regex(@"(?<=\\[^' \\?\r\n\t]*) (?=\\)"); - private Regex _RemoveComments = new Regex(@"\\v .*?\\v0( |$)"); - - private string PrepROTableText(string stepText) - { - // we need to convert some RTF command to DOS so that we can - // figure out the table size - stepText = stepText.Replace("\r", ""); - stepText = stepText.Replace("\xF8", @"\'f8"); - stepText = stepText.Replace(@"\par ", "\r\n"); - stepText = _ReplaceTokenSpaceToken.Replace(stepText, ""); - - //Change Token Order to match RTB output - stepText = stepText.Replace(@"\v0\b0", @"\b0\v0"); - stepText = stepText.Replace(@"\b0\ulnone", @"\ulnone\b0"); - stepText = _ReplaceSpaceNewLine.Replace(stepText, ""); - - // Now change the Unicode symbols to DOS symbols - stepText = stepText.Replace(@"\u8209?", "-"); - stepText = stepText.Replace(@"\u9474?", "\xB3"); // Vert Line graphic character - stepText = stepText.Replace(@"\'b0", "\xB0"); - stepText = stepText.Replace(@"\up2 ", "\x9566"); - stepText = stepText.Replace(@"\up0 ", "\x9567"); - stepText = stepText.Replace(@"\ulnone", "\xBB"); - stepText = stepText.Replace(@"\ul", "\xAB"); - stepText = stepText.Replace(@"\{", "{"); - stepText = stepText.Replace(@"\}", "}"); - stepText = stepText.Replace(@"\b0", "\xD6"); - stepText = stepText.Replace(@"\b", "\xD5"); - stepText = stepText.Replace(@"\u160?", "\xA0"); //hard space - stepText = stepText.Replace(@"\u916?", "\x7F"); // delta - stepText = stepText.Replace(@"\u8805?", "\xF2"); //greater than or equal - stepText = stepText.Replace(@"\u8804?", "\xF3"); // less than or equal - stepText = stepText.Replace(@"\u931?", "\xE4"); // sigma - stepText = stepText.Replace(@"\u947?", "\xE7"); // gamma - stepText = stepText.Replace(@"\u9604?", "\xFE"); // accum 2584 - stepText = stepText.Replace(@"\u9679?", "\x7"); // bullet 25CF - stepText = stepText.Replace(@"\u8776?", "\xF7"); // approx eq - stepText = stepText.Replace(@"\u8773?", "\xF0"); // similar eq 2245 - stepText = stepText.Replace(@"\u8730?", "\xFB"); // square root - stepText = stepText.Replace(@"\u961?", "\xE2"); // rho 3C1 - stepText = stepText.Replace(@"\u960?", "\xE3"); // pi - stepText = stepText.Replace(@"\u956?", "\xE6"); // micro - stepText = stepText.Replace(@"\u948?", "\xEB"); // lower case delta - stepText = stepText.Replace(@"\u963?", "\xE5"); // lower case sigma - stepText = stepText.Replace(@"\u274?", "\x90"); // energy, 112 - stepText = stepText.Replace(@"\u949?", "\xEE"); // epsilon - stepText = stepText.Replace(@"\u952?", "\xE9"); // theta, 3B8 - stepText = stepText.Replace(@"\u8857?", "\xEC"); // dot in oval, 2299 - stepText = stepText.Replace(@"\u964?", "\xA8"); // tau, 3C4 - stepText = stepText.Replace(@"\u9830?", "\xA9"); // diamond, 2666 - stepText = stepText.Replace(@"\u8593?", "\x18"); // Up Arrow - changes to \xff - stepText = stepText.Replace(@"\u8595?", "\x19"); // Down Arrow - changes to \xd6 - // Fix "|" followed by a newline - this confuses the table converter - stepText = stepText.Replace(@"|\r\n", @"| \r\n"); - stepText = stepText.Replace(@"|\n\r", @"| \n\r"); - stepText = stepText.Replace(@"|\n", @"| \n"); - - // if the entire row is underlined, then remove the underline and insert a row of dashes - stepText = ConvertUnderlineToRow(stepText); - - return stepText; - } - private bool IsPrintableTableChar(char c) - { - string printablSymbols = "\xB3\xA0\x7F\xF2\xF3\xE4\xE7\xFE\x07\xF7\xF0\xFB\xE2\xE3\xE6\xEB\xE5\x90\xEE\xE9\xEC\xA8\xA9\x18\x19"; - return (((c > '\x1F') && (c < '\x80')) || (printablSymbols.IndexOf(c) >= 0)); - } - private string ConvertUnderlineToRow(string stepText) - { - string rtnStr = ""; - char[] sep = { '\n' }; - string[] lines = stepText.Split(sep); - foreach (string line in lines) - { - int idx = 0; - int chrCnt = 0; - int uOnPos = -1; - int uOffPos = -1; - bool ulineOn = false; - //char curChar = line[idx]; - string dashRow = ""; - while (idx < line.Length && !IsPrintableTableChar(line[idx])) - { - if (line[idx] == '\xAB') //underline ON - { - ulineOn = true; - uOnPos = idx; - } - idx++; - } - while (ulineOn && idx < line.Length) - { - if (IsPrintableTableChar(line[idx])) - { - if (line[idx] == '|' || line[idx] == '\xB3') - { - dashRow += new string('-', chrCnt); - dashRow += "|"; - chrCnt = 0; - } - else - chrCnt++; - idx++; - } - else - { - if (line[idx] == '\xBB') //underline OFF - { - uOffPos = idx; - ulineOn = false; - while ((idx < line.Length) && !IsPrintableTableChar(line[idx])) - { - if (line[idx] == '\xAB') - ulineOn = true; - idx++; - } - if (idx == line.Length) - ulineOn = true; - if (!ulineOn) - dashRow = ""; - } - else - idx++; - } - } - string curLine = line; - curLine = curLine.Replace('\xB3', '|'); // replace graphic vert bar with DOS vert bar - if (ulineOn && idx == line.Length) // entire line is underlined, remove underline, insert row of dashes - { - curLine = curLine.Replace("\xAB", ""); // remove Underline ON - curLine = curLine.Replace("\xBB", ""); // remove Underline OFF - dashRow += new string('-', chrCnt); - dashRow = "\n" + dashRow; - } - if (rtnStr.Length > 0) rtnStr += "\n"; - rtnStr += curLine; - rtnStr += dashRow; - } - return rtnStr; - } - - /// - /// This will parse a string containing the ascii text of the old style VE-PROMS (16-bit) tables. - /// It will find the number of rows and columns base on newlines, vertical bars, and dashes. - /// Then it will parse the the text, place them in cells, and attempt to merge cells were needed. - /// - /// - public void ParseTableFromText(string buff,GridLinePattern border) - { - string txtbuff = PrepROTableText(buff); - if (IsRoTable) txtbuff = _RemoveComments.Replace(txtbuff, ""); - int curRow = 0; - int curCol = 0; - int maxRow = 0; - int maxCol = 0; - // Get Max Rows and Max Cols - char[] test = "|\n\x02".ToCharArray(); - int idx = 0; - int idxst = 0; - int colPos = 0; - int strow = 0; - Dictionary dicCols = new Dictionary(); - do - { - idx = txtbuff.IndexOfAny(test, idxst); - if (idx > -1) - { - switch (txtbuff[idx]) - { - case '|': // end of a column - colPos = idxst - strow; - if (!dicCols.ContainsKey(colPos)) - dicCols.Add(colPos, curCol); - else if (curCol > dicCols[colPos]) - { - dicCols.Remove(colPos); - dicCols.Add(colPos, curCol); - } - curCol++; - break; - case '\x02': - case '\n': // end of a row - colPos = idxst - strow; - if (!dicCols.ContainsKey(colPos)) - dicCols.Add(colPos, curCol); - else if (curCol > dicCols[colPos]) - { - dicCols.Remove(colPos); - dicCols.Add(colPos, curCol); - } - curRow++; - strow = idx + 1; - if (curCol > maxCol) - maxCol = curCol; - curCol = 0; - break; - } - idxst = idx + 1; - if (idxst >= txtbuff.Length) - idx = -1; - } - } while (idx != -1); - if (idxst < txtbuff.Length) - { - colPos = idxst - strow; - if (!dicCols.ContainsKey(colPos)) - dicCols.Add(colPos, curCol); - else if (curCol > dicCols[colPos]) - { - dicCols.Remove(colPos); - dicCols.Add(colPos, curCol); - } - } - maxRow = curRow; // +1; - curRow = 0; - curCol = 0; - if (maxCol == 0) maxCol = dicCols.Count; - // The resulting Table Grid size in rows and columns - this.Cols.Count = maxCol + 1; - this.Rows.Count = maxRow + 1; - - // make all rows and columns editable - this.Rows.Fixed = 0; - this.Cols.Fixed = 0; - - // TableCellInfo is used to assign merge ranges - // Make a two dimensional array of TableCellinfo the same size as the table grid - TableCellInfo[,] tci = new TableCellInfo[maxRow + 1, maxCol + 1]; - for (int r = 0; r <= maxRow; r++) - for (int c = 0; c <= maxCol; c++) - tci[r, c] = new TableCellInfo(); - // Read in each cell of the grid - idx = 0; - idxst = 0; - colPos = 0; - strow = 0; - int prevCol = 0; - int tstidx = 0; - string tstr = ""; - bool incRow = false; - do - { - idx = txtbuff.IndexOfAny(test, idxst); - if (idx > -1) - { - switch (txtbuff[idx]) - { - case '|': // end of column - colPos = idxst - strow; - // based on the position of the | char, find what column we are in. - // note that this will tell us if any columns to the left were merged - // the while loop will flag cell that need to be merged - curCol = dicCols[colPos]; - while (curCol > prevCol + 1) - { - tci[curRow, prevCol].MergeColRight = true; - prevCol++; - } - prevCol = curCol; - - // parse out the text to be placed in the table cell - tstr = txtbuff.Substring(idxst, idx - idxst); - if (tstr.Length == 0) - tstr += " "; - // test for a string of '-' characters - for (tstidx = 0; (tstidx < tstr.Length) && (tstr[tstidx] == '-'); tstidx++) ; - if (tstidx < tstr.Length) // not a full line (row) of '-' chars - { - // take a peek at the start of the next piece of table text to parse - // if it starts with a '-' char, then flag to merge the columns up to - // this point with the same columns in the next row - if (idx < txtbuff.Length - 1 && txtbuff[idx + 1] == '-') - { - for (int c = curCol; c >= 0; c--) - if (!tci[curRow, c].ColEnd) - tci[curRow, c].MergeRowBellow = true; - } - // if this column is in a merged grouping of rows, - // get the cell text in the first cell of the merged grouping of cells - // we will append the newly parsed text to this cell's text. - int rw = curRow; - while (rw - 1 >= 0 && tci[rw - 1, curCol].MergeRowBellow) rw--; - int cl = curCol; - while (cl - 1 >= 0 && tci[rw, cl-1].MergeColRight) cl--; - //string jstr = (string)this[rw, curCol]; - string jstr = (string)this[rw, cl]; - if (jstr == null) - jstr = tstr; - else - jstr += ((cl==curCol)? "\n" : "") + tstr; // multi line cell - //jstr += "\n" + tstr; // multi line cell - //this[rw, curCol] = jstr; - this[rw, cl] = jstr; - //// take a peek at the start of the next piece of table text to parse - //// if it starts with a '-' char, then flag to merge the columns up to - //// this point with the same columns in the next row - //if (idx < txtbuff.Length - 1 && txtbuff[idx + 1] == '-') - //{ - // for (int c = curCol; c >= 0; c--) - // if (!tci[curRow, c].ColEnd) - // tci[curRow, c].MergeRowBellow = true; - //} - //int tcol = dicCols[idx]; - //// if were are that the end of the 16-bit text line, but not in the last column, - //// merge the remaining columns to the right - //if (curCol < tcol) - //{ - // for (int i = curCol; i <= tcol; i++) - // tci[curRow, i].MergeColRight = true; - //} - } - else // parsed text contains all dashes - { - // take a peek at the start of the next piece of table text to parse - // if it starts with a space, return, newline, or EndOfFile char, - // then flag to merge the columns up to - // this point with the same columns in the next row - if (idx < txtbuff.Length - 1 && " \r\n\x02".IndexOf(txtbuff[idx + 1]) > 0) - { - int nextCol = (curCol + 1 > this.Cols.Count) ? curCol : curCol + 1; - if (!tci[curRow, nextCol].ColEnd) - tci[curRow, nextCol].MergeRowBellow = true; - //for (int c = nextCol; c >= 0; c--) - // if (!tci[curRow, c].ColEnd) - // tci[curRow, c].MergeRowBellow = true; - } - tci[curRow, curCol].ColEnd = true; - incRow = true; - } - break; - case '\x02': // end of file - case '\n': // new line of 16-bit table text - colPos = idxst - strow; - curCol = dicCols[colPos]; - // see what column we are in - new line might occure before last grid column - strow = idx + 1; - // parse out the cell text - tstr = txtbuff.Substring(idxst, idx - idxst); - if (tstr.EndsWith("\r")) // strip off carrage return - tstr = tstr.Substring(0, tstr.Length - 1); - //tstr = tstr.TrimEnd(" ".ToCharArray()); - if (tstr.Length == 0) - tstr += " "; - // test for a string of '-' characters - for (tstidx = 0; (tstidx < tstr.Length) && (tstr[tstidx] == '-'); tstidx++) ; - if (tstidx < tstr.Length) // not a full line (row) of '-' chars - { - //curCol = dicCols[colPos]; - while (curCol > prevCol + 1) - { - tci[curRow, prevCol].MergeColRight = true; - prevCol++; - } - // if this column is in a merged grouping of rows, - // get the cell text in the first cell of the merged grouping of cells - // we will append the newly parsed text to this cell's text. - int rw = curRow; - while (rw - 1 >= 0 && tci[rw - 1, curCol].MergeRowBellow) rw--; - int cl = curCol; - while (cl - 1 >= 0 && tci[rw, cl-1].MergeColRight) cl--; - //string jstr = (string)this[rw, curCol]; - string jstr = (string)this[rw, cl]; - if (jstr == null) - jstr = tstr; - else - jstr += ((cl == curCol) ? "\n" : "") + tstr; // multi line cell - //jstr += "\n" + tstr; // multi line cell - - //this[rw, curCol] = jstr; - this[rw, cl] = jstr; - } - else if (tstr.Length > 0) // parsed text is all dash characters - { - incRow = true; - if (curRow > 0 && curCol > 0) // merge the column in the previous row with this one - tci[curRow - 1, curCol].MergeRowBellow = false; - } - // if were are that the end of the 16-bit text line, but not in the last column, - // merge the remaining columns to the right - if ((curCol < maxCol) && (tstidx < tstr.Length)) - { - for (int i = curCol; i < maxCol; i++) - tci[curRow, i].MergeColRight = true; - } - if (incRow) - curRow++; - curCol = 0; - incRow = false; - break; - } - idxst = idx + 1; - if (idxst >= txtbuff.Length) - idx = -1; - } - else if (idxst < txtbuff.Length - 1) // handle any remaining text not yet parsed - { - // find the curent column and merge remaining columns to the right - colPos = idxst - strow; - curCol = dicCols.Count==0?0:dicCols[colPos]; - while (curCol > prevCol + 1) - { - tci[curRow, prevCol].MergeColRight = true; - prevCol++; - } - // parse out the remaining text - tstr = txtbuff.Substring(idxst); - //tstr = tstr.TrimEnd(" ".ToCharArray()); - if (tstr.Length == 0) - tstr += " "; - // test for a string of '-' characters - for (tstidx = 0; (tstidx < tstr.Length) && (tstr[tstidx] == '-'); tstidx++) ; - if (tstidx < tstr.Length) - { - // if this column is in a merged grouping of rows, - // get the cell text in the first cell of the merged grouping of cells - // we will append the newly parsed text to this cell's text. - int rw = curRow; - while (rw - 1 >= 0 && tci[rw - 1, curCol].MergeRowBellow) rw--; - int cl = curCol; - while (cl - 1 >= 0 && tci[rw, cl-1].MergeColRight) cl--; - //string jstr = (string)this[rw, curCol]; - string jstr = (string)this[rw, cl]; - if (jstr == null) - jstr = tstr; - else - jstr += ((cl == curCol) ? "\n" : "") + tstr; // multi line cell - //jstr += "\n" + tstr; // multi line cell - //this[rw, curCol] = jstr; - this[rw, cl] = jstr; - } - } - } while (idx != -1); - - // we are done parsing the 16-bit text. - // now set the merge ranges in the table grid, based on the - // information saved in that two dimensional array of TableCellinfo - this.Rows.Count = curRow + 1; - this.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom; - maxRow = curRow; - int rR = 0; - int rC = 0; - for (int r = 0; r <= maxRow; r++) - for (int c = 0; c <= maxCol; c++) - { - if (tci[r, c].MergeColRight) - { - rC = c; - while ((rC < maxCol) && (tci[r, rC].MergeColRight)) rC++; - if (rC > c) - { - this.MergedRanges.Add(this.GetCellRange(r, c, r, rC)); - string cellstr = (this[r,c]==null)? " ": this[r, c].ToString(); - for (int x = c + 1; x <= rC; x++) - this[r, x] = cellstr; - c = rC; - } - } - } - for (int c = 0; c <= maxCol; c++) - for (int r = 0; r <= maxRow; r++) - { - if (tci[r, c].MergeRowBellow) - { - rR = r; - while ((rR < maxRow) && (tci[rR, c].MergeRowBellow)) rR++; - if (rR > r) - { - this.MergedRanges.Add(this.GetCellRange(r, c, rR, c)); - string cellstr = this[r, c].ToString(); - for (int x = r + 1; x <= rR; x++) - this[x, c] = cellstr; - r = rR; - } - } - } - for (int c = 0; c <= maxCol; c++) - for (int r = 0; r <= maxRow; r++) - { - if (this[r, c] != null) - { - string cellstr = this[r, c].ToString(); - this[r, c] = cellstr.TrimEnd("\r\n\t".ToCharArray()); - //this[r, c] = cellstr.TrimEnd(" \r\n\t".ToCharArray()); - CellRange cr = this.GetMergedRange(r, c); - if (cr.r1 != cr.r2) - TrimMergedRangeCellText(cr); - } - } - MyBorders = new VlnBorders(border, Rows.Count, Cols.Count); - } - - private void TrimMergedRangeCellText(CellRange cr) - { - // count number of newlines - string cellstr = this[cr.r1, cr.c1].ToString(); - string[] strary = cellstr.Split("\n".ToCharArray()); - int nlines = strary.Length; - // count number of rows in merge range - int nrows = (cr.r2 - cr.r1) + 1; - int neededLines = (nlines - (nrows - 1)); - bool bNeedToTrim = (nlines > neededLines); - string jstr = ""; - int LinesToGo = neededLines; - if (bNeedToTrim) - { - int numBlanksEnd = 0; - // find the number of blank lines at the end of this table cell - for (int i = nlines-1; i >= 0; i--) - { - if (strary[i].Trim().Length == 0) - numBlanksEnd++; - else - break; - } - int preBlanksLines = 0; - //foreach (string tmpstr in strary) - // we ignore the ending blank lines - // this allows us to include any blank lines that are between text lines - for (int i = 0; i < nlines - numBlanksEnd; i++) - { - string tmpstr = strary[i]; - int tlen = tmpstr.Trim().Length; - if (tlen > 0 || (LinesToGo < neededLines)) - { - if (jstr.Length > 0) jstr += "\n"; - jstr += tmpstr; - LinesToGo--; - } - else if (LinesToGo == (nlines - (nrows - 1))) - preBlanksLines++; - } - while (LinesToGo > 0) - { - // need to put this type of hard space (not \xA0) to hold the newline position - if (preBlanksLines > 0) - { - jstr = "\\~\n" + jstr; - LinesToGo--; - } - if (numBlanksEnd > 0) - { - jstr += "\n\\~"; - LinesToGo--; - } - } - this[cr.r1, cr.c1] = jstr; - } - } - - #endregion //Import / Export Grid - - #region Bug Work Around - protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e) - { - - // Note: this fixes a bug that happens when the grid has more rows than columns - // notified ComponentOne of the problem 6/25/09 via Email - try - { - base.OnMouseDown(e); - } - catch (Exception ex) - { - while (ex != null) - { - Console.WriteLine("{0} {1} {2}", ex.GetType().Name, ex.Message, ex.StackTrace); - ex = ex.InnerException; - } - } - - } - #endregion //Bug Work Around - - //public void CenterTheCellText() - //{ - // // Cannot use this type of text allignment with RTF text cells - // CellRange cr = this.Selection; - // for (int rw = cr.r1; rw <= cr.r2; rw++) - // for (int col = cr.c1; col <= cr.c2; col++) - // { - // CellRange tmp = this.GetCellRange(rw, col, rw, col); - // string StyleName = string.Format("R{0}C{1}Style", rw, col); - // CellStyle cs = this.Styles.Add(StyleName, tmp.Style); - // cs.TextAlign = TextAlignEnum.CenterCenter; - // tmp.Style = cs; - // } - - //} - #region Uneven Selections - /// - /// True if the top and bottom row of the selection is the same for every column - /// - public bool EvenSelection - { - get - { - if (Selection.c1 < 0 || Selection.c2 < 0 || Selection.r1 < 0 || Selection.r2 < 0) return true; // Even if there is no selection - if (Selection.IsSingleCell) return true; // One cell by definition is Even - int cMin = MinimumColumn(Selection.r1, Selection.c1); // Get the left column of the top row - int cMax = MaximumColumn(Selection.r1, Selection.c2); // Get the right column of the top row - for (int r = Selection.r1 + 1; r <= Selection.r2; r++) - { - // Uneven if the top row in this column doesn't match the first column - if (MinimumColumn(r, Selection.c1) != cMin) - return false; - // Uneven if the bottom row in this column doesn't match the first column - if (MaximumColumn(r, Selection.c2) != cMax) - return false; - } - int rMin = MinimumRow(Selection.r1, Selection.c1); // Get the top row of the left column - int rMax = MaximumRow(Selection.r2, Selection.c1); // Get the bottom row of the left column - for (int c = Selection.c1 + 1; c <= Selection.c2; c++) - { - // Uneven if the top row in this column doesn't match the first column - if (MinimumRow(Selection.r1, c) != rMin) - return false; - // Uneven if the bottom row in this column doesn't match the first column - if (MaximumRow(Selection.r2, c) != rMax) - return false; - } - return true; - } - } - public void MakeSelectionEven() - { - if (Selection.IsSingleCell) return; // One cell by definition is Even - MakeSelectionEven(Selection.r1, Selection.c1, Selection.r2, Selection.c2); - } - public void SelectRow() - { - MakeSelectionEven(Selection.r1, 0, Selection.r2, Cols.Count - 1); - } - public void SelectCol() - { - MakeSelectionEven(0, Selection.c1, Rows.Count - 1, Selection.c2); - } - public void MakeSelectionEven(int r1,int c1, int r2, int c2) - { - if (c1 < 0 || c2 < 0 || r1 < 0 || r2 < 0) return; // if there is no selection don't bother - CellRange cr = GetEvenSelection(r1, c1, r2, c2); - Select(cr); - } - - public CellRange GetEvenSelection() - { - return GetEvenSelection(Selection.r1, Selection.c1, Selection.r2, Selection.c2); - } - - public CellRange GetEvenSelection(int r1, int c1, int r2, int c2) - { - int cMinNew = MinimumColumn(r1, c1); // Get the left column of the top row - int cMaxNew = MaximumColumn(r1, c2); // Get the right column of the top row - int rMinNew = MinimumRow(r1, c1); // Get the top row of the left column - int rMaxNew = MaximumRow(r2, c1); // Get the bottom row of the left column - int cMin = cMinNew; - int cMax = cMaxNew; - int rMin = rMinNew; - int rMax = rMaxNew; - do - { - cMin = cMinNew; - cMax = cMaxNew; - rMin = rMinNew; - rMax = rMaxNew; - for (int r = rMin; r <= rMax; r++) - { - // Uneven if the top row in this column doesn't match the first column - int myMin = MinimumColumn(r, cMin); - if (myMin < cMinNew) - cMinNew = myMin; - // Uneven if the bottom row in this column doesn't match the first column - int myMax = MaximumColumn(r, cMax); - if (myMax > cMaxNew) - cMaxNew = myMax; - } - for (int c = cMinNew; c <= cMaxNew; c++) - { - // if the top row in this column is less than the minimum save it - int myMin = MinimumRow(rMin, c); - if (myMin < rMinNew) - rMinNew = myMin; - // Uneven if the bottom row in this column doesn't match the first column - int myMax = MaximumRow(rMax, c); - if (myMax > rMax) - rMaxNew = myMax; - } - } - while (cMinNew < cMin || cMaxNew > cMax || rMinNew < rMin || rMaxNew > rMax); - CellRange cr = GetCellRange(rMinNew, cMinNew, rMaxNew, cMaxNew); - return cr; - } - private int MinimumColumn(int r, int c) - { - return GetMergedRange(r, c).c1; - } - private int MaximumColumn(int r, int c) - { - return GetMergedRange(r, c).c2; - } - private int MinimumRow(int r, int c) - { - return GetMergedRange(r, c).r1; - } - private int MaximumRow(int r, int c) - { - return GetMergedRange(r, c).r2; - } - public Color StyleBackColor - { - get {return Styles.Normal.BackColor;} - set - { - Styles.Normal.BackColor = value; - Styles.Alternate.BackColor = value; - for (int c = 0; c < Cols.Count; c++) - for (int r = 0; r < Rows.Count; r++) - { - CellRange cr = GetMergedRange(r, c); - if (cr.Style != null && cr.Style.BackColor != value && cr.Style.Name != "Fixed") - { - cr.Style.BackColor = value; - //Console.WriteLine("{0}, {1}, {2}, {3}", r, c, cr.Style.Name, cr.Style.BackColor); - } - } - } - } - /// - /// Returns a list of cells or merged cells within the selection - /// - public List MySelection - { - get - { - List ranges = new List(); - for (int c = Selection.c1; c <= Selection.c2; c++) - for (int r = Selection.r1; r <= Selection.r2; r++) - { - CellRange cr = GetMergedRange(r, c); - if (!ranges.Contains(cr)) - ranges.Add(cr); - } - //} - return ranges; - } - } - /// - /// This is a test to see if MySelection works. - /// - public void BoldMySelection() - { - foreach (CellRange cr in MySelection) - { - using (StepRTB rtb = new StepRTB()) - { - rtb.Rtf = GetCellRTFString(cr.r1, cr.c1); - rtb.SelectAll(); - rtb.SelectionFont = new Font(rtb.SelectionFont, FontStyle.Bold); - this[cr.r1, cr.c1] = rtb.Rtf; - } - } - } - - public void ShowMySelection() - { - int r1 = MySelection[0].r1; - int r2 = MySelection[0].r2; - int c1 = MySelection[0].c1; - int c2 = MySelection[0].c2; - foreach (CellRange cr in MySelection) - { - r1 = Math.Min(r1, cr.r1); - c1 = Math.Min(c1, cr.c1); - r2 = Math.Max(r2, cr.r2); - c2 = Math.Max(c2, cr.c2); - } - Select(r1,c1,r2,c2); - } - - public void Debug_WritelineMySelection() - { - int r1 = MySelection[0].r1; - int r2 = MySelection[0].r2; - int c1 = MySelection[0].c1; - int c2 = MySelection[0].c2; - Console.WriteLine("Initial MySelection[0] {0}", MySelection[0]); - foreach (CellRange cr in MySelection) - { - r1 = Math.Min(r1, cr.r1); - c1 = Math.Min(c1, cr.c1); - r2 = Math.Max(r2, cr.r2); - c2 = Math.Max(c2, cr.c2); - Console.WriteLine("Foreach range ({0},{1}) - ({2},{3})", r1, c1, r2, c2); - } - } - - #endregion - } - /// - /// This is used for storing the grid selection for copy/past Row/Column - /// - public enum GridCopyOption { Row, Column, Selection }; - - #region RTF Class for Cell rendering - /// - /// RTF Should only be used if the contents of the richtextbox are to be converted to an image. - /// - class RTF : StepRTB - { - // messages used by RichEd20.dll - internal const int - WM_USER = 0x0400, - EM_FORMATRANGE = WM_USER + 57; - - // FORMATRANGE is used by RichEd20.dll to render RTF - internal struct FORMATRANGE - { - internal IntPtr hdc, hdcTarget; - internal Rectangle rc, rcPage; - internal int cpMin, cpMax; - } - - // render the control directly into a given Graphics object - // (this does not honor clipping set in the target Graphics object; it that is - // a problem, use the RenderClipped method instead). - public void Render(Graphics g, Rectangle rc) - { - // convert rect from pixels to twips - rc.X = (int)(rc.X * 1440 / g.DpiX); - rc.Y = (int)(rc.Y * 1440 / g.DpiY); - rc.Width = rc.X + (int)((rc.Width) * 1440 / g.DpiX); - rc.Height = rc.Y + (int)((rc.Height) * 1440 / g.DpiY); - - // get dc - IntPtr hdc = g.GetHdc(); - - // set up FORMATRANGE struct - FORMATRANGE fmt = new FORMATRANGE(); - fmt.hdc = fmt.hdcTarget = hdc; - fmt.rc = fmt.rcPage = rc; - fmt.cpMin = 0; - fmt.cpMax = -1; - - // render RTF - int render = 1; - SendMessageFormatRange(Handle, EM_FORMATRANGE, render, ref fmt); - - // clean up - SendMessage(Handle, EM_FORMATRANGE, render, 0); - - // done with dc - g.ReleaseHdc(hdc); - } - - // render RTF into a Graphics object using a temporary bitmap to ensure - // clipping works correctly. - public void RenderClipped(Graphics g, Rectangle rc) - { - // create temp bitmap - Rectangle rcSrc = new Rectangle(0, 0, rc.Width, rc.Height); - using (Bitmap bmp = new Bitmap(rc.Width, rc.Height)) - { - // render RTF into bitmap - using (Graphics gBmp = Graphics.FromImage(bmp)) - { - Render(gBmp, rcSrc); - // transfer bitmap to original Graphics object - // (this honors clipping set in the target Graphics object) - g.DrawImage(bmp, rc, rcSrc, GraphicsUnit.Pixel); - } - } - } - - // SendMessage - [DllImport("USER32.DLL", CharSet = CharSet.Auto)] - static private extern int SendMessage( - IntPtr hWnd, - uint wMsg, - int wParam, - int lParam); - [DllImport("USER32.DLL", CharSet = CharSet.Auto, EntryPoint = "SendMessage")] - static private extern int SendMessageFormatRange( - IntPtr hWnd, - uint wMsg, - int wParam, - ref FORMATRANGE lParam); - } - - #endregion //RTF Class for Cell rendering - # region TableCellInfo for text parse - class TableCellInfo - { - private bool _MergeRowBellow; - - public bool MergeRowBellow - { - get { return _MergeRowBellow; } - set { _MergeRowBellow = value; } - } - private bool _MergeColRight; - - public bool MergeColRight - { - get { return _MergeColRight; } - set { _MergeColRight = value; } - } - private bool _ColEnd; - - public bool ColEnd - { - get { return _ColEnd; } - set { _ColEnd = value; } - } - private string _Text; - - public string Text - { - get { return _Text; } - set { _Text = value; } - } - } - #endregion //TableCellInfo for text parse - #region TableCellEditor - /// - /// TableCellEditor inherits from a StepRTB and is used as a custom cell editor - /// for the C1FlexGrid control. - /// - public class TableCellEditor : StepRTB //System.Windows.Forms.RichTextBox //System.Windows.Forms.TextBox // System.Windows.Forms.ComboBox - { - private VlnFlexGrid _owner; - private int _row, _col; - private char _pendingKey; - private bool _cancel; - public bool _initializingEdit; - - // constructor: attach to owner grid - public TableCellEditor(VlnFlexGrid owner) - { - Visible = false; - AutoSize = false; - BackColor = Color.SkyBlue; - BorderStyle = BorderStyle.None; - ScrollBars = RichTextBoxScrollBars.None; - _initializingEdit = false; - _pendingKey = (char)0; - _cancel = false; - _owner = owner; - _owner.Controls.Add(this); - this.CursorMovement += new StepRTBCursorMovementEvent(TableCellEditor_CursorMovement); - this.CursorKeyPress += new StepRTBCursorKeysEvent(TableCellEditor_CursorKeyPress); - this.Leave += new EventHandler(_editor_Leave); - //this.HeightChanged += new StepRTBEvent(_HeightChanged); - } - protected override void Dispose(bool disposing) - { - base.Dispose(disposing); - } - // start editing: move to cell and activate - public void StartEditing(int row, int col) - { - _initializingEdit = true; - ReadOnly = IsRoTable; - // save coordinates of cell being edited - _row = row; - _col = col; - //this.Clear(); //jsj - // assume we'll save the edits - _cancel = false; - // move editor over the current cell - Rectangle rc = _owner.GetCellRect(row, col, true); - rc.Width--; - rc.Height--; - Bounds = rc; - // initialize control content - Text = ""; - FindAllLinks(); // jsj 1-5-2011 - if (_pendingKey > ' ' && !ReadOnly) - Text = _pendingKey.ToString(); - else if (_owner[row, col] != null) - { - string tmp = _owner[row, col].ToString(); - if (tmp.StartsWith(@"{\rtf")) - Rtf = tmp.Replace(@"\~",@"\u160?"); - else - Text = tmp; - } - Select(Text.Length, 0); - - Size sz = new Size(rc.Width, rc.Height); - - //this.Size = sz; - this.Width = rc.Width; - - // make editor visible - Visible = true; - - // and get the focus - //Select(); - Focus(); - _initializingEdit = false; - } - - void TableCellEditor_CursorKeyPress(object sender, KeyEventArgs args) - { - //throw new Exception("The method or operation is not implemented."); - } - - void TableCellEditor_CursorMovement(object sender, StepRTBCursorMovementEventArgs args) - { - int row = _owner.Selection.r1; - int col = _owner.Selection.c1; - CellRange cr = _owner.GetMergedRange(row, col); - //Console.WriteLine("keystroke {0} selection {1},{2}", args.Key, row, col); - //vlnStackTrace.ShowStack("keystroke {0} selection {1},{2}", args.Key, row, col); - _owner.Select(); - // See if we are in a merged range of cells. - // if so, use the merged range instead of the selected range - // so that we can jump to the top/bottom/left/right of the range - // before attempting the move to the next grid cell. - //int idx = _owner.MergedRanges.IndexOf(row, col); - //if (idx > -1) cr = _owner.MergedRanges[idx]; - - switch (args.Key) - { - case VEPROMS.CSLA.Library.E_ArrowKeys.CtrlDown: - case VEPROMS.CSLA.Library.E_ArrowKeys.Down: - row = cr.r2; - if (row < _owner.Rows.Count - 1) - _owner.Select(_owner.GetMergedRange(row + 1, col)); - else - _owner.OnCursorMovement(this, new VlnFlexGridCursorMovementEventArgs(args.Key)); - break; - case VEPROMS.CSLA.Library.E_ArrowKeys.CtrlLeft: - case VEPROMS.CSLA.Library.E_ArrowKeys.Left: - col = cr.c1; - if (col > 0) - _owner.Select(_owner.GetMergedRange(row, col - 1)); - else if(row > 0) - _owner.Select(_owner.GetMergedRange(row - 1, _owner.Cols.Count - 1)); - else - _owner.OnCursorMovement(this, new VlnFlexGridCursorMovementEventArgs(args.Key)); - break; - case VEPROMS.CSLA.Library.E_ArrowKeys.CtrlRight: - case VEPROMS.CSLA.Library.E_ArrowKeys.Right: - col = cr.c2; - if (col < _owner.Cols.Count - 1) - _owner.Select(_owner.GetMergedRange(row, col + 1)); - else if (cr.r2 < _owner.Rows.Count - 1) - { - CellRange crDest = _owner.GetMergedRange(cr.r2 + 1, 0); - if (cr.r2 < crDest.r1) // It will move to the correct place - _owner.Select(crDest); - else if (crDest.r2 < _owner.Rows.Count) - _owner.Select(_owner.GetMergedRange(crDest.r2 + 1, 0)); - else - _owner.OnCursorMovement(this, new VlnFlexGridCursorMovementEventArgs(args.Key)); - } - else - _owner.OnCursorMovement(this, new VlnFlexGridCursorMovementEventArgs(args.Key)); - break; - case VEPROMS.CSLA.Library.E_ArrowKeys.CtrlUp: - case VEPROMS.CSLA.Library.E_ArrowKeys.Up: - row = cr.r1; - if (row > 0) - _owner.Select(_owner.GetMergedRange(row - 1, col)); - else - _owner.OnCursorMovement(this, new VlnFlexGridCursorMovementEventArgs(args.Key)); - break; - default: - break; - } - //Console.WriteLine("selection {0}", _owner.Selection); - //_owner.Focus(); // focus was jumping out of the grid this keeps it in. - } - - // after edit handler (custom editor) - void _editor_Leave(object sender, EventArgs e) - { - _owner.Invalidate(); - _owner.AdjustGridControlSize(); - } - //void _HeightChanged(object sender, EventArgs args) - //{ - // _owner.Invalidate(); - //} - - // save key that started the editing mode - public void SetPendingKey(char chr) - { - _pendingKey = chr; - } - - // expose internal variables - public bool Cancel { get { return _cancel; } } - public int Row { get { return _row; } } - public int Col { get { return _col; } } - - // move editor after the grid has scrolled - public void UpdatePosition() - { - // get cell rect now - Rectangle rcCell = _owner.GetCellRect(_row, _col, false); - - // intersect with scrollable part of the grid - Rectangle rcScroll = _owner.ClientRectangle; - rcScroll.X = _owner.Cols[_owner.Cols.Fixed].Left; - rcScroll.Y = _owner.Rows[_owner.Rows.Fixed].Top; - rcScroll.Width -= rcScroll.X; - rcScroll.Height -= rcScroll.Y; - rcCell = Rectangle.Intersect(rcCell, rcScroll); - - // and move the control - if (rcCell.Width > 0) rcCell.Width--; - if (rcCell.Height > 0) rcCell.Height--; - Bounds = rcCell; - - Size sz = new Size(_owner.GetCellRect(_row, _col).Width, _owner.GetCellRect(_row, _col).Height); - this.Size = sz; - } - - // lost focus: hide the editor - override protected void OnLeave(System.EventArgs e) - { - // base processing - base.OnLeave(e); - - // copy text to owner grid - if (!_cancel) - { - _owner[_row, _col] = Rtf; //Text; - } - // no more pending keys - _pendingKey = (char)0; - - // done for now, hide editor - Visible = false; - } - - // we will handle the Tab key ourselves - override protected bool IsInputKey(Keys keyData) - { - if (keyData == Keys.Tab) return true; - return base.IsInputKey(keyData); - } - - //// some keys end the editing - //override protected void OnKeyDown(System.Windows.Forms.KeyEventArgs e) - //{ - // switch (e.KeyCode) - // { - // case Keys.Escape: // cancel edits - // _cancel = true; - // _owner.Select(); - // e.Handled = true; - // return; - - // case Keys.Enter: // finish editing - // case Keys.Tab: - // case Keys.Up: - // case Keys.Down: - // case Keys.PageUp: - // case Keys.PageDown: - // _owner.Select(); - // e.Handled = true; - // MoveCursor(e.KeyCode); - // return; - - // default: // default processing - // base.OnKeyDown(e); - // return; - // } - //} - - //// move cursor after done editing - //protected void MoveCursor(Keys key) - //{ - // int row = _owner.Row; - // int col = _owner.Col; - // switch (key) - // { - // case Keys.Tab: col++; break; - // case Keys.Up: row--; break; - // //case Keys.Return: row++; break; - // case Keys.Down: row++; break; - // //case Keys.PageUp: row -= 10; break; - // //case Keys.PageDown: row += 10; break; - // } - - // // validate new selection - // if (row < _owner.Rows.Fixed) row = _owner.Rows.Fixed; - // if (col < _owner.Cols.Fixed) col = _owner.Cols.Fixed; - // if (row > _owner.Rows.Count - 1) row = _owner.Rows.Count - 1; - // if (col > _owner.Cols.Count - 1) col = _owner.Cols.Count - 1; - - // // apply new selection - // _owner.Select(row, col); - //} - - //// suppress some keys to avoid annoying beep - //override protected void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e) - //{ - // switch (e.KeyChar) - // { - // case (char)27: // Keys.Escape: - // case (char)13: // Keys.Enter: - // case (char)9: // Keys.Tab: - // e.Handled = true; - // return; - // } - // base.OnKeyPress(e); - //} - } - #endregion // TableCellEditor - #region TableClipBoardFuncts Class - class TableClipBoardFuncts - { - DataFormats.Format dfmtTableCellRange = DataFormats.GetFormat("TableCellRange"); - private SelectedTableCells mySeldTableCellsObject; - private DataObject myDataObject; - public TableClipBoardFuncts() - { - //mySeldTableCellsObject = new DataObject(dfmtTableCellRange.Name, seldTableCells); - } - - public void Put(CellRange cr) - { - // Copies myObject into the clipboard. - // Clip get the value (text) of all the cells in the selected range - // This is saved as one RTF string. - Clipboard.SetDataObject(cr.Clip, true); // the "true" make the copy persistent - //Console.WriteLine("\nClip: '{0}' \n'{1}'", cr.Clip,cr.DataDisplay); - //mySeldTableCellsObject = new SelectedTableCells(); - //mySeldTableCellsObject.CpbrdCellRange = cr; - // myDataObject = new DataObject(dfmtTableCellRange.Name, mySeldTableCellsObject); - // try - // { - // Clipboard.SetDataObject(myDataObject); //,true); - // } - // catch (Exception ex) - // { - // Console.WriteLine(ex.Message); - // } - - } - - public ArrayList Get() - { - // Retrieves the data from the clipboard. - IDataObject myRetrievedObject = Clipboard.GetDataObject(); - string jj = (string)myRetrievedObject.GetData(DataFormats.Text); - return GetCellStrings(jj); - } - - //public CellRange get_cr_Paste() - //{ - // mySeldTableCellsObject = new SelectedTableCells(); - // CellRange cr = new CellRange(); - // SelectedTableCells sc; - // IDataObject myRetrievedObject = Clipboard.GetDataObject(); - // try - // { - // //object obj = myRetrievedObject.GetData(dfmtTableCellRange.Name); - // object obj = myRetrievedObject.GetData("TableCellRange"); - // //sc = (SelectedTableCells)myRetrievedObject.GetData(dfmtTableCellRange.Name); - // sc = (SelectedTableCells)obj; - // cr = sc.CpbrdCellRange; - // } - // catch (Exception ex) - // { - // Console.WriteLine(ex.Message); - // } - // return cr; - //} - - private ArrayList GetCellStrings(string instr) - { - // The table cells placed on the clipboard is saved as one long RTF string. - // "\r\n\t" defines a cell border - // "\r\n\r" defines beginning of next line (row) - // This function will separate each cell text and place them in an array. - // This allow the clipboard information to be pasted independently from - // how it was selected. - - // Bug fix: the CellRange.Clip (see cr.clip in the Put() function above) is replacing - // new lines with spaces. We need to put them back. - instr = instr.Replace(@"}} \", "}}\r\n\\"); - string tstr = ""; // this will contain the parsed out cell text - ArrayList arylstCellStrings = new ArrayList(); - int sidx = 0; // start index - int tidx = 0; - if (instr != null) - { - int idx = instr.IndexOf(@"{\rtf",sidx+1); // cell boarder - while (idx > 0) - { - tstr = instr.Substring(sidx, idx - sidx); - tstr = tstr.Substring(0, tstr.LastIndexOf('}') + 1); - //Console.WriteLine("\ntstr: '{0}'", tstr); - arylstCellStrings.Add(tstr); - sidx = idx; - idx = instr.IndexOf(@"{\rtf",sidx+1); - } - if (sidx < instr.Length) - { - tstr = instr.Substring(sidx); - arylstCellStrings.Add(tstr); - } - } - return arylstCellStrings; - } - - //private ArrayList GetCellStrings(string instr) - //{ - // // The table cells placed on the clipboard is saved as one long RTF string. - // // "\r\n\t" defines a cell border - // // "\r\n\r" defines beginning of next line (row) - // // This function will separate each cell text and place them in an array. - // // This allow the clipboard information to be pasted independently from - // // how it was selected. - - // string tstr = ""; // this will contain the parsed out cell text - // ArrayList arylstCellStrings = new ArrayList(); - // int sidx = 0; // start index - // int tidx = 0; - // if (instr != null) - // { - // int idx = instr.IndexOf("\r\n\t"); // cell boarder - // if (idx < 0) idx = instr.IndexOf("\r\n\r"); // new line (needed for multiple lines in one cell) - // while (idx > 0) - // { - // tstr = instr.Substring(sidx, idx - sidx); - // tidx = tstr.IndexOf("\r\n\r"); - // if (tidx > 0) - // { - // idx = instr.IndexOf("\r\n\r", sidx); - // tstr = instr.Substring(sidx, idx - sidx); - // } - // arylstCellStrings.Add(tstr.Substring(tstr.IndexOf("{\\rtf"))); - // sidx = idx + 3; - // if (sidx < instr.Length) - // { - // idx = instr.IndexOf("\r\n\t", sidx); - // if (idx < 0) idx = instr.IndexOf("\r\n\r", sidx); - // } - // } - // if (sidx < instr.Length) - // { - // tstr = instr.Substring(sidx); - // arylstCellStrings.Add(tstr.Substring(tstr.IndexOf("{\\rtf"))); - // } - // } - // return arylstCellStrings; - //} - } - - [Serializable] - public class SelectedTableCells : Object - { - private CellRange _cpbrdCellRange; - - public CellRange CpbrdCellRange - { - get { return _cpbrdCellRange; } - set { _cpbrdCellRange = value; } - } - public SelectedTableCells() - { - } - } - #endregion // TableClipBoardFuncts Class - public class VlnFlexGridCursorMovementEventArgs - { - private E_ArrowKeys _Key; - public E_ArrowKeys Key - { - get { return _Key; } - set { _Key = value; } - } - public VlnFlexGridCursorMovementEventArgs(E_ArrowKeys key) - { - _Key = key; - } - } - public class VlnFlexGridPasteEventArgs - { - private string _Text; - public string Text - { - get { return _Text; } - set { _Text = value; } - } - public VlnFlexGridPasteEventArgs(string text) - { - _Text = text; - } - } - public class GridCopyInfo - { - private GridCopyOption _MyCopyOption = GridCopyOption.Selection; - - public GridCopyOption MyCopyOption - { - get { return _MyCopyOption; } - set - { - //Console.WriteLine("MyCopyOption = {0}", _MyCopyOption); - //if (_MyCopyOption != value) - // Console.WriteLine("Changed Option to {0}", value); - _MyCopyOption = value; - } - } - private VlnFlexGrid _MyCopiedFlexGrid = null; - - public VlnFlexGrid MyCopiedFlexGrid - { - get { return _MyCopiedFlexGrid; } - set { _MyCopiedFlexGrid = value; } - } - private CellRange _MyCopiedCellRange; - - public CellRange MyCopiedCellRange - { - get { return _MyCopiedCellRange; } - set { _MyCopiedCellRange = value; } - } - - } -} diff --git a/PROMS/PROMS/Volian.Print.Library/Grid2Pdf.cs b/PROMS/PROMS/Volian.Print.Library/Grid2Pdf.cs deleted file mode 100644 index 112326d5..00000000 --- a/PROMS/PROMS/Volian.Print.Library/Grid2Pdf.cs +++ /dev/null @@ -1,1536 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using C1.Win.C1FlexGrid; -using System.IO; -using Itenso.Rtf; -using Itenso.Rtf.Parser; -using Itenso.Rtf.Interpreter; -using Itenso.Rtf.Support; -using Volian.Print.Library; -using Volian.Controls.Library; -using iTextSharp.text; -using iTextSharp.text.pdf; -using VEPROMS.CSLA.Library; -using System.Text.RegularExpressions; - -namespace Volian.Print.Library -{ - #region Settings // RHM20150429 - Table Scrunch - public partial class vlnTable - { - private string _DebugInfo = null; // RHM20150429 - Table Scrunch - public string DebugInfo - { - get { return _DebugInfo; } - set { _DebugInfo = value; } - } - private int _ItemID = 0; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private bool _ShowDetails = false; - public bool ShowDetails - { - get { return _ShowDetails; } - set { _ShowDetails = value; } - } - private bool _IsTooBig = false; - public bool IsTooBig - { - get { return _IsTooBig; } - set { _IsTooBig = value; } - } - } - public partial class vlnCells - { - private static float YAdjust_HContent = 4; // 4 - private float YAdjust_SpacingAfter - { - get - { - return 8-8*MyTable.Adjustment;//0; // 8 - } - } - } - public partial class vlnCell - { - public bool ShowDetails - { get { return MyTable.ShowDetails; } } - private static float YAdjust_h = 0; // 0 - private float YAdjust_TextLocation - { - get - { - return 4 - 4 * MyTable.Adjustment; ;//0; // 4 - } - } - } - //public partial class vlnTable - //{ - // private static float YAdjust_RowTop = 0;//8; // 0 - //} - //public partial class vlnCells - //{ - // private static float YAdjust_HContent = 4; // 4 - // private static float YAdjust_SpacingAfter = 8;//0; // 8 - //} - //public partial class vlnCell - //{ - // private static float YAdjust_h = 0; // 0 - // private static float YAdjust_TextLocation = 4;//0; // 4 - //} - #endregion - public partial class vlnTable - { - #region Properties - private float[] _HContents;// RHM20150525 - Table Scrunch - public float[] HContents - { - get { return _HContents; } - set { _HContents = value; } - } - private float[] _RowTop; - public float[] RowTop - { - get { return _RowTop; } - set { _RowTop = value; } - } - private float[] _ColLeft; - public float[] ColLeft - { - get { return _ColLeft; } - set { _ColLeft = value; } - } - private VlnFlexGrid _MyFlexGrid; - public VlnFlexGrid MyFlexGrid - { - get { return _MyFlexGrid; } - set { _MyFlexGrid = value; } - } - private VlnBorders _MyBorders; - public VlnBorders MyBorders - { - get { return _MyBorders; } - set { _MyBorders = value; } - } - private iTextSharp.text.pdf.PdfContentByte _MyContentByte; - public iTextSharp.text.pdf.PdfContentByte MyContentByte - { - get { return _MyContentByte; } - set { _MyContentByte = value; } - } - private vlnCells _MyCells; - public vlnCells MyCells - { - get { return _MyCells; } - set { _MyCells = value; } - } - public float Height - { get - { - return RowTop[RowTop.Length - 1]; - } } - public float Width - { get - { - return ColLeft[ColLeft.Length - 1]; - } } - - private static float _XOffset = -1; // This moves the borders with respect to the text - public static float XOffset - { - get { return vlnTable._XOffset; } - set { vlnTable._XOffset = value; } - } - private static float _YOffset = 0; // This moves the borders with respect to the text - public static float YOffset - { - get { return vlnTable._YOffset; } - set { vlnTable._YOffset = value; } - } - private static float _LineThicknessForThin = .9F; - public static float LineThicknessForThin - { - get { return vlnTable._LineThicknessForThin; } - set { vlnTable._LineThicknessForThin = value; } - } - private static float _LineThicknessForThick = 1.8F; - public static float LineThicknessForThick - { - get { return vlnTable._LineThicknessForThick; } - set { vlnTable._LineThicknessForThick = value; } - } - private static float _LineThicknessForDouble = .6F; - public static float LineThicknessForDouble - { - get { return vlnTable._LineThicknessForDouble; } - set { vlnTable._LineThicknessForDouble = value; } - } - public static float DoubleLineOffset - { - get { return (LineThicknessForThick - LineThicknessForDouble) / 2; }//LineThicknessForThick - 2 * LineThicknessForDouble; } - } - private float _TotalContentHeight = 0;// RHM20150525 - Table Scrunc - public float TotalContentHeight - { - get - { - if (_TotalContentHeight == 0) - { - foreach (float h in HContents) - _TotalContentHeight += h; - } - return _TotalContentHeight; - } - } - public float SpaceAvailable// RHM20150525 - Table Scrunc - { - get { return TotalContentHeight ==0 ? 0 : RowTop[RowTop.Length - 1] - TotalContentHeight; } - } - private float _TooBig;// RHM20150525 - Table Scrunc - public float TooBig - { - get { return _TooBig; } - set - { - _TooBig = value; - //_Adjustment = Math.Min(1F, (_TooBig / (RowTop.Length - 1)) / 12); - //if (ShowDetails) Console.WriteLine("TooBig\t{0}\t{1}", value, _Adjustment); - //if(ShowDetails) Console.WriteLine("Before RowTop={0}", RowTop[RowTop.Length-1] ); - float extra=(TooBig < SpaceAvailable)?(SpaceAvailable - TooBig) / HContents.Length:0; - for (int r = 0; r < RowTop.Length - 1; r++) - RowTop[r + 1] = RowTop[r] + HContents[r] + extra; - //if(ShowDetails) Console.WriteLine("After RowTop={0}", RowTop[RowTop.Length-1] ); - } - } - private float _Adjustment = 0;// RHM20150525 - Table Scrunc - public float Adjustment - { - get { return _Adjustment; } - set { _Adjustment = value; } - } - //private float _YAdjust_RowTop = 0;//8; // 0 - public float YAdjust_RowTop - { - get - { - return _Adjustment * 12; - } - } - private void DrawRuler(PdfContentByte cb, float x, float yTop, float height)// RHM20150525 - Table Scrunc - { - VlnSvgPageHelper myPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper; - if (myPageHelper.DebugLayer != null) - { - cb.BeginLayer(myPageHelper.DebugLayer); - cb.SaveState(); - cb.SetLineWidth(.1F); - cb.SetColorStroke(new Color(System.Drawing.Color.Orange)); - float yBottom = yTop - height; - cb.MoveTo(x, yTop); - cb.LineTo(x, yBottom); - int i = 0; - for (float y = yTop; y >= yBottom; y -= 10) - { - float w = 10; - if (i % 10 == 0) w = 30; - else if (i % 5 == 0) w = 20; - cb.SetLineWidth(w / 30); - i++; - cb.MoveTo(x + w, y); - cb.LineTo(x, y); - cb.Stroke(); - } - i = 0; - cb.Stroke(); - cb.RestoreState(); - cb.EndLayer(); - } - } - private void ShowRowTops(string location)// RHM20150525 - Table Scrunc - { - if (!ShowDetails) return; - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < RowTop.Length; i++) - sb.Append("\t" + RowTop[i].ToString()); - Console.WriteLine(location + "\t" + sb.ToString()); - } - private void EndSetup()// RHM20150525 - Table Scrunc - { - if (ShowDetails) ShowRowTops("vlnTable.ctor.2"); - if (ShowDetails) Console.WriteLine("^^^^^^vlnTable============{0}===============", ItemID); - } - private void SetupDebug(VlnFlexGrid myFlexGrid)// RHM20150525 - Table Scrunc - { - //ShowDetails = myFlexGrid.GetMyItemInfo().InList(38329); - //if(ShowDetails) Console.WriteLine("vvvvvvlnTable============{0}===============", ItemID); - ItemInfo myItemInfo = myFlexGrid.GetMyItemInfo(); - ItemID = myItemInfo.ItemID; - DebugInfo = string.Format("DebugID = {0}, ID={1} Type={2} TypeName='{3}' StepLevel={4} ShortPath={5} Width={6} Left={7} YOffset={8}", - 0, myItemInfo.ItemID, myItemInfo.FormatStepType, myItemInfo.FormatStepData == null ? "NoStepData" : myItemInfo.FormatStepData.Type, - myItemInfo.StepLevel, myItemInfo.ShortPath, Width, XOffset, YOffset); - } - #endregion - #region Constructors - public vlnTable(VlnFlexGrid myFlexGrid, iTextSharp.text.pdf.PdfContentByte myContentByte) - { - MyFlexGrid = myFlexGrid; - MyContentByte = myContentByte; - InitializeSizes(); - SetupDebug(myFlexGrid);// RHM20150525 - Table Scrunc - MyCells = new vlnCells(this, MyFlexGrid, MyContentByte); - EndSetup();// RHM20150525 - Table Scrunc - } - #endregion - #region Private Methods - private void InitializeSizes() - { - RowTop = new float[MyFlexGrid.Rows.Count + 1]; - HContents = new float[MyFlexGrid.Rows.Count];// RHM20150525 - Table Scrunc - RowTop[0] = 0; - for (int r = 0; r < MyFlexGrid.Rows.Count; r++) - RowTop[r + 1] = RowTop[r] + 72 * (MyFlexGrid.Rows[r].Height == -1 - ? MyFlexGrid.Rows.DefaultSize : MyFlexGrid.Rows[r].Height) / (float)MyFlexGrid.DPI; - ColLeft = new float[MyFlexGrid.Cols.Count + 1]; - ColLeft[0] = 0; - for (int c = 0; c < MyFlexGrid.Cols.Count; c++) - ColLeft[c + 1] = 2 + ColLeft[c] + 72 * (MyFlexGrid.Cols[c].Width == -1 // RHM20150429 - Table Scrunch - ? MyFlexGrid.Cols.DefaultSize : MyFlexGrid.Cols[c].Width) / (float)MyFlexGrid.DPI; - } - #endregion - #region Public Methods - public void AdjustRowTop(int row1, int row2, float hNew) - { - float hAdjust = hNew - (RowTop[row2 + 1] - RowTop[row1]); - for (int r = row2; r < MyFlexGrid.Rows.Count; r++) - RowTop[r + 1] += hAdjust; - } - public void ToPdf(iTextSharp.text.pdf.ColumnText myColumnText, float left, float top) - { - //ZoomGrid(myColumnText, left, top); - if(ShowDetails) Console.WriteLine("vvvvvvToPdf============{0}===============", ItemID);// RHM20150525 - Table Scrunc - ShowRowTops("ToPDF1"); - PdfContentByte cb = myColumnText.Canvas; // RHM20150429 - Table Scrunch - VlnSvgPageHelper myPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper; - string myLPI = myPageHelper.YMultiplier == 1.0F ? ",6LPI" : ",7LPI"; - Rtf2Pdf.DrawPdfDebug(myColumnText.Canvas, left-2, top+1, left + Width, top-myPageHelper.YMultiplier *(Height+1), - DebugInfo+", Height= " + (myPageHelper.YMultiplier * Height).ToString() + myLPI, 0); - PdfLayer textLayer = myPageHelper == null ? null : myPageHelper.TextLayer; // RHM20150429 - Table Scrunch - if (textLayer != null) cb.BeginLayer(textLayer); - myPageHelper.AddGap(top, top - Height, left, left + Width); - MyCells.ToPdf(myColumnText, left, top); - DrawRuler(myColumnText.Canvas, left + Width, top, myPageHelper.YMultiplier * (Height + 1)); // RHM20150429 - Table Scrunch - if (textLayer != null) cb.EndLayer(); - ShowRowTops("ToPDF2"); - if (ShowDetails) Console.WriteLine("^^^^^^ToPdf============{0}===============", ItemID); - } - private void ZoomGrid(iTextSharp.text.pdf.ColumnText myColumnText, float left, float top) - { - PdfDestination dest = new PdfDestination(PdfDestination.FITR, left - 4, top - Height - 4, left + Width, top + 4); - myColumnText.Canvas.SetAction(PdfAction.GotoLocalPage(myColumnText.Canvas.PdfWriter.CurrentPageNumber, dest, myColumnText.Canvas.PdfWriter), left, top - Height, left + Width, top); - } - #endregion - } - public partial class vlnCells : List // RHM20150429 - Table Scrunch - { - #region Properties - private VlnFlexGrid _MyFlexGrid; - public VlnFlexGrid MyFlexGrid - { - get { return _MyFlexGrid; } - set { _MyFlexGrid = value; } - } - private vlnTable _MyTable; - public vlnTable MyTable - { - get { return _MyTable; } - set { _MyTable = value; } - } - public bool ShowDetails// RHM20150525 - Table Scrunc - { get { return MyTable.ShowDetails; }} - private iTextSharp.text.pdf.PdfContentByte _MyContentByte; - public iTextSharp.text.pdf.PdfContentByte MyContentByte - { - get { return _MyContentByte; } - set { _MyContentByte = value; } - } - #endregion - #region Constructors - public vlnCells(vlnTable myTable, VlnFlexGrid myFlexGrid, iTextSharp.text.pdf.PdfContentByte myContentByte) - { - MyTable = myTable; - MyFlexGrid = myFlexGrid; - MyContentByte = myContentByte; - SetupCells(); - foreach(vlnCell cell in this) - { - myTable.MyBorders = VlnBorders.Get(myFlexGrid.MyBorders.ConvertToString()); - GridLinePattern glp = cell.AboveLeftSide; - glp = cell.AboveRightSide; - glp = cell.BelowLeftSide; - glp = cell.BelowRightSide; - glp = cell.RightOfBottomSide; - glp = cell.RightOfTopSide; - object ta = cell.TextAlign; - } - } - #endregion - #region Private Methods - private void SetupCells() - { - // Create a ColumnText to determine the cell heights - iTextSharp.text.pdf.ColumnText myColumnText1 = new iTextSharp.text.pdf.ColumnText(MyContentByte); - // Walk through - for (int r = 0; r < MyFlexGrid.Rows.Count; r++) - { - float hMax = 12; // RHM20150429 - Table Scrunch - for (int c = 0; c < MyFlexGrid.Cols.Count; c++) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - float w = MyTable.ColLeft[cr.c2 + 1] - MyTable.ColLeft[cr.c1]; - float h = MyTable.RowTop[cr.r2 + 1] - MyTable.RowTop[cr.r1]; - string str = MyFlexGrid.GetCellRTFString(r, c) ?? string.Empty; - if (str.Contains(@"\cf")) - { - str = System.Text.RegularExpressions.Regex.Replace(str, @"\\cf[0-9]\\", @"\"); - str = System.Text.RegularExpressions.Regex.Replace(str, @"\\cf[0-9] ", @""); - } - // the FreeMono font is used for the editor, but VESymbFix is used for printing - // The font spefication is embeded in the table text so we need to change the font reference from - // FreeMono to VESymbFix before we print the table - if (str.ToUpper().Contains("FREEMONO")) - str = str.Replace("FreeMono", "VESymbFix"); - DisplayText dt = new DisplayText(MyFlexGrid.GetMyItemInfo(), str, false); - str = dt.StartText; - str = PreProcessRTF(w, str); - - // If the font is not proportional, pass the symbol font through to RtfToParagraph. It is needed - // in underlying code to set the chunk's font if the first character of a cell is a hardspace. Without - // this, pdfs were using the Helvetica font, which is a default itextsharp font. - ItemInfo ii = MyFlexGrid.GetMyItemInfo(); - iTextSharp.text.Font ff = null; - if (!ii.FormatStepData.Font.FontIsProportional()) - ff = Volian.Svg.Library.VolianPdf.GetFont("VESymbFix", (int)ii.FormatStepData.Font.Size, (int)ii.FormatStepData.Font.WindowsFont.Style); - iTextSharp.text.Paragraph myPara = RtfToParagraph(str, ff); - - myColumnText1.SetSimpleColumn(0, 0, w-2, MyContentByte.PdfDocument.PageSize.Top); // Padding = 4 - if (str.Contains(@"\'05")) - { - // if there is a hanging indent, the iTextSharp paragraph properties must be set - // to print the indent. Replace the indent 'token' with a non-used symbol, this will - // create a chunk with that symbol. Then loop through all of the chunks until we find - // this symbol, adding up the widths to that point. This width is the value that - // needs to be used to set the indent. - // Notes: - // A hard return will reset the chkW (indent width) back to zero. - // We jump out of the processing loop after the first indent token is found and ignor any other ones - float chkW = CalculateHangingIndent(str); - myPara.IndentationLeft = chkW; - myPara.FirstLineIndent = -chkW; - } - Match match = Regex.Match(str, @"\\fi([-0-9]*) ?\\li([0-9]*)"); - if (match.Success) - { - float fi = float.Parse(match.Groups[1].Value) / 20; // 72 is dots per inch & 96 is standard DPI (120 is KBR's machine) - float li = float.Parse(match.Groups[2].Value) / 20; - // if there is a hanging indent, the iTextSharp paragraph properties must be set - // to print the indent. - myPara.IndentationLeft = li; - myPara.FirstLineIndent = fi; - } - // RHM 20120925 - Line spacing should be 6 lines per inch. In order to get a valid value - // for TotalLeading you have to set MultipliedLeading first: - myPara.MultipliedLeading = 1.0f; - // once there is valid value for TotalLeading (from previous line), you can use it to - // calculate a MultipliedLeading to give 6 LPI (12 points) - myPara.MultipliedLeading = 12.0f / myPara.TotalLeading; - myPara.SpacingAfter = 8; // RHM 20120925 - Add a line to properly space text from lines. - if(Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase2)) // RHM20150429 - Table Scrunch - myPara.SpacingAfter = 0;// YAdjust_SpacingAfter; // RHM 20120925 - Add a line to properly space text from lines. - FixHyphens(myPara, MyTable); - if (Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase3)) - TrimNewlines(myPara); // RHM20150429 - Table Scrunch - myColumnText1.AddElement(myPara); - //myColumnText1.Canvas.SetColorFill(PrintOverride.OverrideTextColor(System.Drawing.Color.Black)); - float posBefore = myColumnText1.YLine; - int status = myColumnText1.Go(true); - float posAfter = myColumnText1.YLine; - float hContent = 4 + posBefore - posAfter; - if (Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase4))// RHM20150525 - Table Scrunc - { - hContent = 0 + posBefore - posAfter;//YAdjust_HContent + posBefore - posAfter; - // if (myPara.Chunks.Count > 0 && myPara.Chunks[myPara.Chunks.Count - 1] == "\n") - // hContent -= 12; - } - //if(ShowDetails) Console.WriteLine("{0}\t{1}\t{2}",r,c, hContent/12); - if (cr.r1 == cr.r2) - hMax = Math.Max(hMax, hContent); - else - hMax = Math.Max(hMax, hContent - (cr.r2 - cr.r1) * _SixLinesPerInch); - if (hContent > h) - { // RHM20150429 - Table Scrunch - //if (ShowDetails) Console.WriteLine("Less {0},{1},{2},{3},{4},{5}", r, c, posBefore, posAfter, hContent, hMax); - MyTable.AdjustRowTop(cr.r1, cr.r2, hContent); - } // RHM20150429 - Table Scrunch - if (Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase5)) - { - //if (ShowDetails) Console.WriteLine("Greater{0},{1},{2},{3},{4},{5}", r, c, posBefore, posAfter, hContent, hMax); - //if (c == MyFlexGrid.Cols.Count - 1) - //MyTable.AdjustRowTop(cr.r1, cr.r2, hMax + 6); - MyTable.HContents[cr.r2] = hMax+2; - } - Add(new vlnCell(cr.r1, cr.c1, cr.r2, cr.c2, MyTable, myPara,hContent)); - } - } - } - } - private void ShowChunks(System.Collections.ArrayList chunks) // RHM20150429 - Table Scrunch - { - StringBuilder sb = new StringBuilder(); - foreach (Chunk chk in chunks) - { - sb.Append(BuildChunks(chk.Content)); - } - //if (ShowDetails) Console.WriteLine("Chunks = '{0}'", sb.ToString()); - } - private string BuildChunks(string str) - { - StringBuilder sb = new StringBuilder(); - foreach(char c in str) - { - if (((int)c) < 0x20 || ((int)c) > 0x7F) - sb.Append(string.Format("<{0:X4}>",(int)c)); - else - sb.Append(c); - } - return "{" + sb.ToString() + "}"; - } - private void TrimNewlines(Paragraph myPara) - { - //while (myPara.Count > 0 && ParaEndsWithNewLine(myPara)) - // myPara.RemoveAt(myPara.Count - 1); - } - private bool ParaEndsWithNewLine(Paragraph myPara) - { - Chunk chk = myPara[myPara.Count - 1] as Chunk; - if (chk == null) return false; - if (chk.Content == "\n") return true; - return false; - } - public class VlnSplitCharacter : ISplitCharacter - { - public bool IsSplitCharacter(int start, int current, int end, char[] cc, PdfChunk[] ck) - { - return (cc[current] == ' '); - } - public bool IsSplitCharacter(char c) - { - return (c == ' '); - } - } - public static VlnSplitCharacter mySplitter = new VlnSplitCharacter(); - internal static void FixHyphens(Paragraph myPara, vlnTable myTable) - { - // Find chunk with hardhyphen - - // If a hard hyphen is found, the remove it and add a dash (keyboard minus sign) to the beginning - // of the text that follows it. - int hype=-1; - Font fnt = null; - while ((hype = GetHyphen(myPara)) > -1) - { - fnt = null; - if (hype > 0) - { - Chunk chk1 = (Chunk)myPara[hype - 1]; - if (hype > 1 && chk1.Content.Equals("\n")) - chk1 = (Chunk)myPara[hype - 2]; - fnt = chk1.Font; // use the font of the text that follows the hyphen (dash) - } - else if (hype < myPara.Count - 1) - { - Chunk chk2 = (Chunk)myPara[hype + 1]; - if (hype != 0 && !chk2.Content.Equals("\n")) - fnt = chk2.Font; // use the font of the text that follows the hyphen (dash) - } - if (fnt == null) - { - // if there was no text following the hypen, then use the font defined for tables in the plant's format - VEPROMS.CSLA.Library.VE_Font vfnt = myTable.MyFlexGrid.GetMyItemInfo().FormatStepData.Font; - System.Drawing.Font ffont = new System.Drawing.Font(vfnt.Family, (float)vfnt.Size); - fnt = Volian.Svg.Library.VolianPdf.GetFont(ffont); - fnt.SetStyle(myPara.Font.Style); - fnt.SetColor(myPara.Font.Color.R,myPara.Font.Color.G,myPara.Font.Color.B); - } - Chunk chk = (Chunk)myPara[hype]; - // THIS CODE IS USED FOR DEBUGGING - //if (!fnt.Familyname.StartsWith("L")) - //{ - // Console.WriteLine("font = {0}", makeitpretty(fnt)); - // Console.WriteLine("Hype = {0}\r\n{1}",hype, myPara.Content); - // if (hype > 0) - // { - // Chunk chk3 = (Chunk)myPara[hype - 1]; - // Console.WriteLine("before '{0}'", chk3.Content); - // } - // Chunk chk4 = (Chunk)myPara[hype]; - // Console.WriteLine("during '{0}'", chk4.Content); - // if (hype < myPara.Count -1) - // { - // Chunk chk5 = (Chunk)myPara[hype + 1]; - // Console.WriteLine("after '{0}'", chk5.Content); - // } - //} - string prefix = ""; - if (chk.Content == "\u2011" && hype < (myPara.Count - 1)) - { - myPara.RemoveAt(hype);// Remove standalone hyphen - chk = (Chunk)myPara[hype]; - prefix = "-"; - } - myPara.RemoveAt(hype); - myPara.Insert(hype, new Chunk(prefix + chk.Content.Replace("\u2011", "-"), fnt)); - } - } - - // THIS FUNCTION IS USED FOR DEBUGGING - private static string makeitpretty(Font fnt) - { - return string.Format("font {0}, size {1}, style {2}", fnt.Familyname, fnt.Size, fnt.Style); - } - - private static int GetHyphen(Paragraph myPara) - { - int index=0; - foreach (Chunk chk in myPara.Chunks) - if (chk.Content.Contains("\u2011")) - return index; - else - index++; - return -1; - } - public static float CalculateHangingIndent(string rtf) - { - float chkW = 0; - // **** This is intened to be a temporary fix for V.C.Summer **** - // Two procedures would not print: A-2 SAG in Summer's SAMG set, and SAG-3 in Summer's PWOG DAMG set. - // These procedures have tables with hanging indents and use the Letter Gothic Tall font. - // It appears that the font information for the hanging indent character is not included in the RTF - // for those table cells. - // This piece of code checks for the existance of a font definition of \f1 which is need for the \u9999? indent character - // If the a font definition of \f1 is not found then the indent character is removed. This will allow the procedure to print - // but the text in that table cell will not be indented. - jsj 10/10/2014 - //IRtfDocument rtfDoc2 = RtfInterpreterTool.BuildDoc(rtf.Replace(@"\'05", @"\f1 \u9999? \f0 ")); - IRtfDocument rtfDoc2 = null; - //if (rtf.Contains(@"\f1\fnil\fcharset0 ")) - // rtfDoc2 = RtfInterpreterTool.BuildDoc(rtf.Replace(@"\'05", @"\f1 \u9999? \f0 ")); - //else - //{ - // first add the symbol font and then surround the indent as above. - rtfDoc2 = RtfInterpreterTool.BuildDoc(rtf.Replace(@"\'05", @"\par\u9999?\par")); - //} - - Rtf2iTextSharp rtf2IText2 = new Rtf2iTextSharp(rtfDoc2); - iTextSharp.text.Paragraph para2 = rtf2IText2.Convert(); - for (int ic = 0; ic < para2.Chunks.Count; ic++) - { - Chunk chk = para2.Chunks[ic] as Chunk; - if (chk.Content[0] == 9999) break; - if (chk.Content.Contains("\u270f")) - { - int i = chk.Content.IndexOf('\u270F'); - int n = chk.Content.Length; - chkW += chk.GetWidthPoint() * i / (n - i); - break; - } - if (chk.Content.Contains("\n")) - { - if (ic < para2.Chunks.Count - 2 && (para2.Chunks[ic + 1] as Chunk).Content.StartsWith("\u270f")) return chkW; - chkW = 0; //hard return - reset chkW (indent start) - } - chkW += chk.GetWidthPoint(); - } - return chkW; - } - - private static StepRTB _StatRTB = new StepRTB(); - private string PreProcessRTF(float w, string str) - { - _StatRTB.Text = string.Empty; - _StatRTB.Width = (int)w; - _StatRTB.Font = MyFlexGrid.Font; - if (str.StartsWith(@"{\rtf")) - // The 'Replace(@" \ulnone", @"\u160?\ulnone")' was added so that data in VEWCN SUR_WTC - // tables would print. There were a number of tables, for example in STN NB-106/8.1.6, - // that had a series of spaces underlined and these spaces were not underlined in the - // generated pdf. It seems that there is a problem somewhere in the rtb -> itextsharp - // level. This fixed the immediate problem. If there is 'b0' (bold off) after the - // space before the 'ulnone' the following won't work. Also, this change was not - // made in the non-table code. If the problem occurs there, it should be added. - _StatRTB.Rtf = str.Replace(@"\~", @"\u160?").Replace(@" \ulnone", @"\u160?\ulnone"); - else - _StatRTB.Text = str; - _StatRTB.SelectAll(); - _StatRTB.SelectionColor = PrintOverride.OverrideTextColor(System.Drawing.Color.Black); - str = _StatRTB.Rtf; - return str; - } - public static iTextSharp.text.Paragraph RtfToParagraph(string rtf, iTextSharp.text.Font mySymFont) - { - IRtfDocument rtfDoc = RtfInterpreterTool.BuildDoc(rtf); - Rtf2iTextSharp rtf2IText = new Rtf2iTextSharp(rtfDoc); - rtf2IText.DefaultFont = mySymFont; - iTextSharp.text.Paragraph para = rtf2IText.Convert(); - para.SetLeading(_SixLinesPerInch, 0); - return para; - } - private static float _SixLinesPerInch = 12; // twips - #endregion - #region Public Methods - public void ToPdf(iTextSharp.text.pdf.ColumnText myColumnText, float left, float top) - { - foreach (vlnCell myCell in this) - myCell.ToPdf(myColumnText, left, top); - } - #endregion - } - public partial class vlnCell // RHM20150429 - Table Scrunch - { - #region Properties - private vlnTable _MyTable; - public vlnTable MyTable - { - get { return _MyTable; } - set { _MyTable = value; } - } - public VlnBorders MyBorders - { - get { return _MyTable.MyBorders; } - } - private int _r1; - public int r1 - { - get { return _r1; } - set { _r1 = value; } - } - private int _c1; - public int c1 - { - get { return _c1; } - set { _c1 = value; } - } - private int _r2; - public int r2 - { - get { return _r2; } - set { _r2 = value; } - } - private int _c2; - public int c2 - { - get { return _c2; } - set { _c2 = value; } - } - private iTextSharp.text.Paragraph _MyPara; - public iTextSharp.text.Paragraph MyPara - { - get { return _MyPara; } - set { _MyPara = value; } - } - private float _HContent; - public float HContent - { - get { return _HContent; } - set { _HContent = value; } - } - #endregion - #region Line Pattern Diagram - /* - The diagram below identifies the various border names for the cell in the center - - |-AboveLeftSide |-AboveRightSide - | | - | | - | | - LeftOfTopSide | TopSide | RightOfTopSide - ------------------|-------------------|------------------ - | | - | | - |-LeftSide |-RightSide - | | - | | - LeftOfBottomSide | BottomSide | RightOfBottomSide - --------------------------------------|------------------ - | | - | | - | | - | | - |-BelowLeftSide |-BelowRightSide - */ - - #endregion - #region Horizontal Line Patterns - private GridLinePattern _TopSide = GridLinePattern.Unknown; - public GridLinePattern TopSide - { - get - { - if (_TopSide == GridLinePattern.Unknown) - _TopSide = MyBorders.HorizontalLines[r1, c1]; - return _TopSide; - } - } - private GridLinePattern _BottomSide = GridLinePattern.Unknown; - public GridLinePattern BottomSide - { - get - { - if (_BottomSide == GridLinePattern.Unknown) - _BottomSide = MyBorders.HorizontalLines[r2 + 1, c2]; - return _BottomSide; - } - } - private GridLinePattern _RightOfTopSide = GridLinePattern.Unknown; - public GridLinePattern RightOfTopSide - { - get - { - if (_RightOfTopSide == GridLinePattern.Unknown) - { - if (c2 == MyTable.MyFlexGrid.Cols.Count - 1) - _RightOfTopSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r1, c2 + 1); - if (cr.r1 == r1) - _RightOfTopSide = MyBorders.HorizontalLines[r1, c2 + 1]; - else - _RightOfTopSide = GridLinePattern.None; - } - } - return _RightOfTopSide; - } - } - private GridLinePattern _LeftOfTopSide = GridLinePattern.Unknown; - public GridLinePattern LeftOfTopSide - { - get - { - if (_LeftOfTopSide == GridLinePattern.Unknown) - { - if (c1 == 0) - _LeftOfTopSide = GridLinePattern.None; - else - { - // This property is only used if c1==0 or r1==0: - // A merged range for row = 0 will always return an r1=0. - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r1, c1 - 1); - if (cr.r1 == r1) - _LeftOfTopSide = MyBorders.HorizontalLines[r1, c1 - 1]; - else // Since this section of code is only entered when r1==0, this else condition should never happen - _LeftOfTopSide = GridLinePattern.None; - } - } - return _LeftOfTopSide; - } - } - private GridLinePattern _RightOfBottomSide = GridLinePattern.Unknown; - public GridLinePattern RightOfBottomSide - { - get - { - if (_RightOfBottomSide == GridLinePattern.Unknown) // Need to consider Merged Cells - { - if (c2 == MyTable.MyFlexGrid.Cols.Count - 1) - _RightOfBottomSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r2, c2 + 1); - if (cr.r2 == r2) - _RightOfBottomSide = MyBorders.HorizontalLines[r2 + 1, c2 + 1]; - else - _RightOfBottomSide = GridLinePattern.None; - } - } - return _RightOfBottomSide; - } - } - private GridLinePattern _LeftOfBottomSide = GridLinePattern.Unknown; - public GridLinePattern LeftOfBottomSide - { - get - { - if (_LeftOfBottomSide == GridLinePattern.Unknown) // Need to consider Merged Cells - { - if (c1 == 0) - _LeftOfBottomSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r2, c1 - 1); - if (cr.r2 == r2) - _LeftOfBottomSide = MyBorders.HorizontalLines[r2 + 1, c1 - 1]; - else - _LeftOfBottomSide = GridLinePattern.None; - } - } - return _LeftOfBottomSide; - } - } - #endregion - #region Vertical Line Patterns - private GridLinePattern _LeftSide = GridLinePattern.Unknown; - public GridLinePattern LeftSide - { - get - { - if (_LeftSide == GridLinePattern.Unknown) - _LeftSide = MyBorders.VerticalLines[r1, c1]; - return _LeftSide; - } - } - private GridLinePattern _RightSide = GridLinePattern.Unknown; - public GridLinePattern RightSide - { - get - { - if (_RightSide == GridLinePattern.Unknown) - _RightSide = MyBorders.VerticalLines[r2, c2 + 1]; - return _RightSide; - } - } - private GridLinePattern _BelowRightSide = GridLinePattern.Unknown; - public GridLinePattern BelowRightSide - { - get - { - if (_BelowRightSide == GridLinePattern.Unknown) - { - if (r2 == MyTable.MyFlexGrid.Rows.Count - 1) - _BelowRightSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r2 + 1, c2); - if (cr.c2 == c2) - _BelowRightSide = MyBorders.VerticalLines[r2 + 1, c2 + 1]; - else - _BelowRightSide = GridLinePattern.None; - } - } - return _BelowRightSide; - } - } - private GridLinePattern _AboveRightSide = GridLinePattern.Unknown; - public GridLinePattern AboveRightSide - { - get - { - if (_AboveRightSide == GridLinePattern.Unknown) - { - if (r1 == 0) - _AboveRightSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r1 - 1, c2); - if (cr.c2 == c2) - _AboveRightSide = MyBorders.VerticalLines[r1 - 1, c2 + 1]; - else - _AboveRightSide = GridLinePattern.None; - } - } - return _AboveRightSide; - } - } - private GridLinePattern _BelowLeftSide = GridLinePattern.Unknown; - public GridLinePattern BelowLeftSide - { - get - { - if (_BelowLeftSide == GridLinePattern.Unknown) - { - if (r2 == MyTable.MyFlexGrid.Rows.Count - 1) - _BelowLeftSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r2 + 1, c1); - if (cr.c1 == c1) - _BelowLeftSide = MyBorders.VerticalLines[r2 + 1, c1]; - else - _BelowLeftSide = GridLinePattern.None; - } - } - return _BelowLeftSide; - } - } - private GridLinePattern _AboveLeftSide = GridLinePattern.Unknown; - public GridLinePattern AboveLeftSide - { - get - { - if (_AboveLeftSide == GridLinePattern.Unknown) - { - if (r1 == 0) - _AboveLeftSide = GridLinePattern.None; - else - { - // This property is only used if c1==0 or r1==0: - // A merged range for col = 0 will always return an c1=0. - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r1 - 1, c1); - if (cr.c1 == c1) - _AboveLeftSide = MyBorders.VerticalLines[r1 - 1, c1]; - else // Since this section of code is only entered when c1==0, this else condition should never happen - _AboveLeftSide = GridLinePattern.None; - } - } - return _AboveLeftSide; - } - } - #endregion - #region Static Properties - private static float XOffset { get { return vlnTable.XOffset; } } - private static float YOffset { get { return vlnTable.YOffset; } } - private static float LineThicknessForThin { get { return vlnTable.LineThicknessForThin; } } - private static float LineThicknessForThick { get { return vlnTable.LineThicknessForThick; } } - private static float LineThicknessForDouble { get { return vlnTable.LineThicknessForDouble; } } - private static float DoubleLineOffset { get { return vlnTable.DoubleLineOffset; } } - - // adjustments for line intersections: - private static float ThickOverDouble { get { return ((2 * DoubleLineOffset) + LineThicknessForDouble - LineThicknessForThick) / 2; } } - private static float ThickUnderDouble { get { return DoubleLineOffset + (LineThicknessForThick - LineThicknessForDouble) / 2; } } - private static float ThickOverThin { get { return (LineThicknessForThin - LineThicknessForThick) / 2; } } - private static float ThinOverThick { get { return (LineThicknessForThick - LineThicknessForThin) / 2; } } - private static float ThinUnderDouble { get { return DoubleLineOffset + (LineThicknessForThin - LineThicknessForDouble) / 2; } } - private static float ThinOverDouble { get { return (DoubleLineOffset + LineThicknessForThin - LineThicknessForDouble) / 2; } } - private static float DoubleUnderThin { get { return (LineThicknessForThin - LineThicknessForDouble) / 2; } } - private static float DoubleUnderThick { get { return (LineThicknessForThick - LineThicknessForDouble) / 2; } } - #endregion - #region Constructors - public vlnCell(int r1, int c1, int r2, int c2, vlnTable myTable, iTextSharp.text.Paragraph myPara, float hContent) - { - this.r1 = r1; - this.c1 = c1; - this.r2 = r2; - this.c2 = c2; - MyTable = myTable; - MyPara = myPara; - HContent = hContent; - } - #endregion - #region Public Methods - public override string ToString() - { - return string.Format("{0}:{1}", r1, c1); - } - public void ToPdf(iTextSharp.text.pdf.ColumnText myColumnText, float left, float top) - { - myColumnText.Canvas.SaveState(); - VlnSvgPageHelper _MyPageHelper = myColumnText.Canvas.PdfWriter.PageEvent as VlnSvgPageHelper; - float mult = _MyPageHelper.YMultiplier; - float x = MyTable.ColLeft[c1]; - float w = MyTable.ColLeft[c2 + 1] - x; - float y = mult * MyTable.RowTop[r1]; - float h = mult * MyTable.RowTop[r2 + 1] - y; - if (Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase6))// RHM20150525 - Table Scrunc - { - h = YAdjust_h + mult * MyTable.RowTop[r2 + 1] - y; - - } - BordersToPdf(myColumnText, left, top, x, w, y, h ); - float hAdjust = VeritcalTextAlignment(h,_MyPageHelper.YMultiplier); - iTextSharp.text.pdf.ColumnText myColumnText1 = new iTextSharp.text.pdf.ColumnText(myColumnText.Canvas); - float adjustTextLocation = mult * 4; // RHM 20120925 Move text down about 1 half line from the border - if (Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase7))// RHM20150525 - Table Scrunc - { - adjustTextLocation = mult * 0; - if (mult != 1F) adjustTextLocation=1; - } - myColumnText1.SetSimpleColumn(1 + left + x, top - y - h , left + x + w - 2, 1 + top - y - hAdjust - adjustTextLocation); // 2 == Default Padding - if (ShowDetails) Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\t\"{9}\"" - , r1, c1, hAdjust, adjustTextLocation, y, h, top, 1 + top - y - hAdjust - adjustTextLocation, - _MyPageHelper.YMultiplier, MyPara.Content.Substring(0, Math.Min(20, MyPara.Content.Length))); - MyPara.MultipliedLeading *= _MyPageHelper.YMultiplier; - vlnCells.FixHyphens(MyPara, MyTable); - myColumnText1.AddElement(MyPara); - foreach(object obj in MyPara) - { - if(obj is iTextSharp.text.Image) - { - iTextSharp.text.Image img = obj as iTextSharp.text.Image; - img.SetAbsolutePosition(left,top-h); - img.ScaleAbsoluteWidth(w); - img.ScaleAbsoluteHeight(h); - myColumnText.Canvas.AddImage(img); - } - } - float posBefore = myColumnText1.YLine; // RHM20150429 - Table Scrunch - myColumnText1.Go(); - float posAfter = myColumnText1.YLine; // RHM20150429 - Table Scrunch - if(ShowDetails)Console.WriteLine("ToPDF posBefore,posAfter,difference={0},{1},{2},{3}", - posBefore, posAfter, posBefore - posAfter,w); - myColumnText.Canvas.RestoreState(); - } - private static float _SixLinesPerInch = 12; // twips - public bool IsRangeStyleNull = false; - private TextAlignEnum? _TextAlign = null; - public TextAlignEnum? TextAlign - { - get - { - if (_TextAlign == null) - { - CellRange cr = MyTable.MyFlexGrid.GetCellRange(r1, c1, r2, c2); - if (cr.Style == null) - { - IsRangeStyleNull = true; - return _TextAlign; - } - else - { - IsRangeStyleNull = false; - _TextAlign = cr.Style.TextAlign; - } - } - return (TextAlignEnum)_TextAlign; - } - } - #endregion - #region Private Text Methods - private float VeritcalTextAlignment(float h, float mult) - { - float hAdjust = 0; - //CellRange cr = MyTable.MyFlexGrid.GetCellRange(r1, c1, r2, c2); - if (!IsRangeStyleNull) - { - switch (TextAlign) - { - case TextAlignEnum.CenterBottom: - case TextAlignEnum.GeneralBottom: - case TextAlignEnum.LeftBottom: - case TextAlignEnum.RightBottom: - hAdjust = Math.Max(0,h - (mult * HContent) )-1; - //Console.WriteLine("\"Bottom\",{0},{1},{2}", h, HContent, hAdjust); - break; - case TextAlignEnum.CenterCenter: - case TextAlignEnum.GeneralCenter: - case TextAlignEnum.LeftCenter: - case TextAlignEnum.RightCenter: - hAdjust = Math.Max(0,(h - (mult * HContent)) / 2)-1; - //Console.WriteLine("\"Middle\",{0},{1},{2}", h, HContent, hAdjust); - break; - default: - break; - } - } - return hAdjust; - } - #endregion - #region Private Border Methods - // coordinate system is upside down of screen. 0,0 on screen is top/left. 0,0 on pdf is bottom/left. - // i.e. x is same, y is flipped. - private void BordersToPdf(iTextSharp.text.pdf.ColumnText myColumnText, float left, float top, float x, float w, float y, float h) - { - PdfContentByte cb = myColumnText.Canvas; - cb.SaveState();// Save state before drawing borders - //SetOpacity(cb, .7F); // This line makes the borders transparent for testing - float xLeft = left + x + XOffset; - float yTop = top - y + YOffset; - float xRight = left + x + w + XOffset; - float yBottom = top - y - h + YOffset; - // ZoomToCell(myColumnText, xLeft, yTop, xRight, yBottom); - // Draw Top Side for the first row - if (r1 == 0) - DrawHorizontalLine(cb, "Top", xLeft, xRight, yTop, TopSide, LeftSide, AboveLeftSide, LeftOfTopSide, AboveRightSide, RightSide, RightOfTopSide); - // Draw Left Side for the first column - if (c1 == 0) - DrawLineVertical(cb, "Left", xLeft, yBottom, yTop, LeftSide, BottomSide, LeftOfBottomSide, BelowLeftSide, LeftOfTopSide, TopSide, AboveLeftSide); - // Draw Bottom Side - DrawHorizontalLine(cb, "Bottom", xLeft, xRight, yBottom, BottomSide, BelowLeftSide, LeftSide, LeftOfBottomSide, RightSide, BelowRightSide, RightOfBottomSide); - // Draw Right Side - DrawLineVertical(cb, "Right", xRight, yBottom, yTop, RightSide, RightOfBottomSide, BottomSide, BelowRightSide, TopSide, RightOfTopSide, AboveRightSide); - cb.RestoreState(); - } - private void DrawHorizontalLine(PdfContentByte cb, string side, float xStart, float xEnd, float y, GridLinePattern LinePattern, - GridLinePattern startToLeft, GridLinePattern startToRight, GridLinePattern startAhead, - GridLinePattern endToLeft, GridLinePattern endToRight, GridLinePattern endAhead) - { - if (LinePattern != GridLinePattern.None) - { - float direction = (xStart < xEnd) ? 1 : -1; - InitializeLineStyle(cb); - SetLineColor(cb, r1, c1, side); - if (LinePattern == GridLinePattern.Double) - { - // Top Line - float dStart = -direction * DoubleIntersectionRight(startToLeft, startToRight, startAhead); - float dEnd = direction * DoubleIntersectionLeft(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForDouble, xStart + dStart, y + DoubleLineOffset, xEnd + dEnd, y + DoubleLineOffset); - // Bottom Line - dStart = -direction * DoubleIntersectionLeft(startToLeft, startToRight, startAhead); - dEnd = direction * DoubleIntersectionRight(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForDouble, xStart + dStart, y - DoubleLineOffset, xEnd + dEnd, y - DoubleLineOffset); - } - else if (LinePattern != GridLinePattern.Thick) - { - SetLinePattern(cb, LinePattern); - float dStart = -direction * ThinIntersection(startToLeft, startToRight, startAhead); - float dEnd = direction * ThinIntersection(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForThin, xStart + dStart, y, xEnd + dEnd, y); - } - else - { - float dStart = -direction * ThickIntersection(startToLeft, startToRight, startAhead); - float dEnd = direction * ThickIntersection(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForThick, xStart + dStart, y, xEnd + dEnd, y); - } - cb.Stroke(); - } - } - private void DrawLineVertical(PdfContentByte cb, string side, float x, float yStart, float yEnd, GridLinePattern LinePattern, - GridLinePattern startToLeft, GridLinePattern startToRight, GridLinePattern startAhead, - GridLinePattern endToLeft, GridLinePattern endToRight, GridLinePattern endAhead) - { - if (LinePattern != GridLinePattern.None) - { - float direction = (yStart < yEnd) ? 1 : -1; - InitializeLineStyle(cb); - SetLineColor(cb, r1, c1, side); - if (LinePattern == GridLinePattern.Double) - { - //Left Line - float dStart = -direction * DoubleIntersectionRight(startToLeft, startToRight, startAhead); - float dEnd = direction * DoubleIntersectionLeft(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForDouble, x - DoubleLineOffset, yStart + dStart, x - DoubleLineOffset, yEnd + dEnd); - //Right Line - dStart = -direction * DoubleIntersectionLeft(startToLeft, startToRight, startAhead); - dEnd = direction * DoubleIntersectionRight(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForDouble, x + DoubleLineOffset, yStart + dStart, x + DoubleLineOffset, yEnd + dEnd); - } - else if (LinePattern != GridLinePattern.Thick) - { - SetLinePattern(cb, LinePattern); - float dStart = -direction * ThinIntersection(startToLeft, startToRight, startAhead); - float dEnd = direction * ThinIntersection(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForThin, x, yStart + dStart, x, yEnd + dEnd); - } - else - { - float dStart = -direction * ThickIntersection(startToLeft, startToRight, startAhead); - float dEnd = direction * ThickIntersection(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForThick, x, yStart + dStart, x, yEnd + dEnd); - } - cb.Stroke(); - } - } - #endregion - #region Intersection Diagram - /* driving into an intersection on line being drawn, facing the intersection. Each intersection requires - * drawing of each of the four cases: - - Case 1: Line being drawn right: - - lineToLeft - ^ - | - Line Being Drawn ----->|---> LineAhead - | - v - lineToRight - - - Case 2: Line being drawn left: - - lineToRight - ^ - | - LineAhead <-----|<--- Line Being Drawn - | - v - lineToLeft - - Case 3: Line being drawn up: - - lineAhead - ^ - | - lineToLeft <-----|----> lineToRight - ^ - | - | - Line Being Drawn - - Case 4: Line being drawn down: - - Line Begin Drawn - | - | - v - lineToRight <-----|----> lineToLeft - | - | - v - lineAhead - * - */ - #endregion - #region Border Intersection Methods - private static float DoubleIntersectionLeft(GridLinePattern lineToLeft, GridLinePattern lineToRight, GridLinePattern lineAhead) - { - if (lineToLeft == GridLinePattern.Double) - return -DoubleLineOffset; - if (lineToRight == GridLinePattern.Double || lineAhead == GridLinePattern.Double) - return DoubleLineOffset; - if (lineToLeft == GridLinePattern.Thick || lineToRight == GridLinePattern.Thick) - return DoubleUnderThick; - if (VlnBorders.LineWidth(lineToLeft) == 1 || VlnBorders.LineWidth(lineToRight) == 1) - return DoubleUnderThin; - return 0; - } - private static float DoubleIntersectionRight(GridLinePattern lineToLeft, GridLinePattern lineToRight, GridLinePattern lineAhead) - { - if (lineToRight == GridLinePattern.Double) - return -DoubleLineOffset; - if (lineToLeft == GridLinePattern.Double || lineAhead == GridLinePattern.Double) - return DoubleLineOffset; - if (lineToLeft == GridLinePattern.Thick || lineToRight == GridLinePattern.Thick) - return DoubleUnderThick; - if (VlnBorders.LineWidth(lineToLeft) == 1 || VlnBorders.LineWidth(lineToRight) == 1) - return DoubleUnderThin; - return 0; - } - private static float ThinIntersection(GridLinePattern lineToLeft, GridLinePattern lineToRight, GridLinePattern lineAhead) - { - if (lineToLeft == GridLinePattern.Double && lineToRight == GridLinePattern.Double) - return -ThinUnderDouble; - if (lineToLeft == GridLinePattern.Double || lineToRight == GridLinePattern.Double) - { - if (lineAhead == GridLinePattern.Double) return -ThinUnderDouble; - return ThinOverDouble; - } - if (lineToLeft == GridLinePattern.Thick || lineToRight == GridLinePattern.Thick) - return ThinOverThick; - return 0; - } - private static float ThickIntersection(GridLinePattern lineToLeft, GridLinePattern lineToRight, GridLinePattern lineAhead) - { - if (lineToLeft == GridLinePattern.Double && lineToRight == GridLinePattern.Double) - { - if (lineAhead == GridLinePattern.Thick) return ThickOverDouble; - return -ThickUnderDouble; - } - if ( lineToLeft == GridLinePattern.Double || lineToRight == GridLinePattern.Double) - { - if (lineAhead == GridLinePattern.Double) - { - if (lineToLeft == GridLinePattern.Thick || lineToRight == GridLinePattern.Thick) - return ThickOverDouble; - return -ThickUnderDouble; - } - return ThickOverDouble; - } - if (VlnBorders.LineWidth(lineToLeft) == 1 && VlnBorders.LineWidth(lineToRight) == 1) - return ThickOverThin; - return 0; - } - #endregion - #region Basic Border Methods - private static void DrawLine(PdfContentByte cb, float lineThickness, float xStart, float yStart, float xEnd, float yEnd) - { - cb.SetLineWidth(lineThickness); - cb.MoveTo(xStart, yStart); - cb.LineTo(xEnd, yEnd); - } - private static void SetLinePattern(PdfContentByte cb, GridLinePattern linePattern) - { - if (linePattern == GridLinePattern.Dotted) - { - cb.SetLineDash(0, 2, 0); - cb.SetLineCap(PdfContentByte.LINE_CAP_ROUND); - } - else if (linePattern == GridLinePattern.Dashed) - cb.SetLineDash(4, 4, 0); - } - private static void SetLineColor(PdfContentByte cb, int row, int col, string side) - { - iTextSharp.text.Color lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Black)); - //switch (side) - //{ - // case "Top": - // if (col == 0) lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Blue)); - // else lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Cyan)); - // break; - // case "Left": - // if (row == 0) lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Red)); - // else lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Magenta)); - // break; - // case "Bottom": - // if (col == 0) lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Green)); - // else lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Cyan)); - // break; - // case "Right": - // if (row == 0) lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Orange)); - // else lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Magenta)); - // break; - //} - cb.SetColorStroke(lineColor); - } - private static void InitializeLineStyle(PdfContentByte cb) - { - cb.SetLineCap(PdfContentByte.LINE_CAP_PROJECTING_SQUARE); // Extend the line by half of it's thickness - cb.SetLineDash(0);// Solid Line - } - #endregion - #region Debug Methods - private static void SetOpacity(PdfContentByte cb, float opacity) - { - PdfGState gs = new PdfGState(); - gs.StrokeOpacity = opacity; - cb.SetGState(gs); - } - private static void ZoomToCell(iTextSharp.text.pdf.ColumnText myColumnText, float xLeft, float yTop, float xRight, float yBottom) - { - PdfDestination dest = new PdfDestination(PdfDestination.FITR, xLeft - 4, yBottom , xRight, yTop + 4); - myColumnText.Canvas.SetAction(PdfAction.GotoLocalPage(myColumnText.Canvas.PdfWriter.CurrentPageNumber, dest, myColumnText.Canvas.PdfWriter), xLeft, yBottom, xRight, yTop); - } - #endregion - #region Old Border Methods - //private void DrawLeftLine(PdfContentByte cb, float xLeft, float yTop, float yBottom) - //{ - // if (c1 == 0 && LineLeft != GridLinePattern.None) - // { - // InitializeLineStyle(cb); - // SetLineColor(cb, r1, c1, "Left"); - // if (LineLeft == GridLinePattern.Double) - // { - // //Left Line - // float dyTop = DoubleIntersectionLeft(LineTopLeft, LineTop, LineLeftAbove); - // float dyBottom = -DoubleIntersectionRight(LineBottom, LineBottomLeft, LineLeftBelow); - // DrawLine(cb, LineThicknessForDouble, xLeft - DoubleLineOffset, yTop + dyTop, xLeft - DoubleLineOffset, yBottom + dyBottom); - // //Right Line - // dyTop = DoubleIntersectionRight(LineTopLeft, LineTop, LineLeftAbove); - // dyBottom = -DoubleIntersectionLeft(LineBottom, LineBottomLeft, LineLeftBelow); - // DrawLine(cb, LineThicknessForDouble, xLeft + DoubleLineOffset, yTop + dyTop, xLeft + DoubleLineOffset, yBottom + dyBottom); - // } - // else if (LineLeft != GridLinePattern.Thick) - // { - // SetLinePattern(cb, LineLeft); - // float dyTop = ThinIntersection(LineTopLeft, LineTop, LineLeftAbove); - // float dyBottom = -ThinIntersection(LineBottom, LineBottomLeft, LineLeftBelow); - // DrawLine(cb, LineThicknessForThin, xLeft, yTop + dyTop, xLeft, yBottom + dyBottom); - // } - // else - // { - // float dyTop = ThickIntersection(LineTopLeft, LineTop, LineLeftAbove); - // float dyBottom = -ThickIntersection(LineBottom, LineBottomLeft, LineLeftBelow); - // DrawLine(cb, LineThicknessForThick, xLeft, yTop + dyTop, xLeft, yBottom + dyBottom); - // } - // cb.Stroke(); - // } - //} - //private void DrawRightLine(PdfContentByte cb, float xRight, float yTop, float yBottom) - //{ - // if (LineRight != GridLinePattern.None) - // { - // InitializeLineStyle(cb); - // SetLineColor(cb, r1, c1, "Right"); - // if (LineRight == GridLinePattern.Double) - // { - // //Left Line - // float dyTop = DoubleIntersectionLeft(LineTop, LineTopRight, LineRightAbove); - // float dyBottom = -DoubleIntersectionRight(LineBottomRight, LineBottom, LineRightBelow); - // DrawLine(cb, LineThicknessForDouble, xRight - DoubleLineOffset, yTop + dyTop, xRight - DoubleLineOffset, yBottom + dyBottom); - // //Right Line - // dyTop = DoubleIntersectionRight(LineTop, LineTopRight, LineRightAbove); - // dyBottom = -DoubleIntersectionLeft(LineBottomRight, LineBottom, LineRightBelow); - // DrawLine(cb, LineThicknessForDouble, xRight + DoubleLineOffset, yTop + dyTop, xRight + DoubleLineOffset, yBottom + dyBottom); - // } - // else if (LineRight != GridLinePattern.Thick) - // { - // float dyTop = ThinIntersection(LineTop, LineTopRight, LineRightAbove); - // float dyBottom = -ThinIntersection(LineBottomRight, LineBottom, LineRightBelow); - // SetLinePattern(cb, LineRight); - // DrawLine(cb, LineThicknessForThin, xRight, yTop + dyTop, xRight, yBottom + dyBottom); - // } - // else - // { - // float dyTop = ThickIntersection(LineTop, LineTopRight, LineRightAbove); - // float dyBottom = -ThickIntersection(LineBottomRight, LineBottom, LineRightBelow); - // DrawLine(cb, LineThicknessForThick, xRight, yTop + dyTop, xRight, yBottom + dyBottom); - // } - // cb.Stroke(); - // } - //} - //private void DrawTopLine(PdfContentByte cb, float xLeft, float xRight, float yTop) - //{ - // if (r1 == 0 && TopSide != GridLinePattern.None) - // { - // InitializeLineStyle(cb); - // SetLineColor(cb, r1, c1, "Top"); - // if (TopSide == GridLinePattern.Double) - // { - // // Top Line - // float dxLeft = -DoubleIntersectionRight(LeftSide, AboveLeftSide, LeftOfTopSide); - // float dxRight = DoubleIntersectionLeft(AboveRightSide, RightSide, RightOfTopSide); - // DrawLine(cb, LineThicknessForDouble, xLeft + dxLeft, yTop + DoubleLineOffset, xRight + dxRight, yTop + DoubleLineOffset); - // // Bottom Line - // dxLeft = -DoubleIntersectionLeft(LeftSide, AboveLeftSide, LeftOfTopSide); - // dxRight = DoubleIntersectionRight(AboveRightSide, RightSide, RightOfTopSide); - // DrawLine(cb, LineThicknessForDouble, xLeft + dxLeft, yTop - DoubleLineOffset, xRight + dxRight, yTop - DoubleLineOffset); - // } - // else if (TopSide != GridLinePattern.Thick) - // { - // SetLinePattern(cb, TopSide); - // float dxLeft = -ThinIntersection(LeftSide, AboveLeftSide, LeftOfTopSide); - // float dxRight = ThinIntersection(AboveRightSide, RightSide, RightOfTopSide); - // DrawLine(cb, LineThicknessForThin, xLeft + dxLeft, yTop, xRight + dxRight, yTop); - // } - // else - // { - // float dxLeft = -ThickIntersection(LeftSide, AboveLeftSide, LeftOfTopSide); - // float dxRight = ThickIntersection(AboveRightSide, RightSide, RightOfTopSide); - // if (c1 == 0) - // Console.WriteLine("'{0}','{1}','{2}',{3},{4}", LeftSide, AboveLeftSide, LeftOfTopSide, dxLeft, ThickOverThin); - // DrawLine(cb, LineThicknessForThick, xLeft + dxLeft, yTop, xRight + dxRight, yTop); - // } - // cb.Stroke(); - // } - //} - //private void DrawBottomLine(PdfContentByte cb, float xLeft, float xRight, float yBottom) - //{ - // if (BottomSide != GridLinePattern.None) - // { - // InitializeLineStyle(cb); - // SetLineColor(cb, r1, c1, "Bottom"); - // if (BottomSide == GridLinePattern.Double) - // { - // // Top Line - // float dxLeft = -DoubleIntersectionRight(BelowLeftSide, LeftSide, LeftOfBottomSide); - // float dxRight = DoubleIntersectionLeft(RightSide, BelowRightSide, RightOfBottomSide); - // DrawLine(cb, LineThicknessForDouble, xLeft + dxLeft, yBottom + DoubleLineOffset, xRight + dxRight, yBottom + DoubleLineOffset);// Top Line - // // Bottom Line - // dxLeft = -DoubleIntersectionLeft(BelowLeftSide, LeftSide, LeftOfBottomSide); - // dxRight = DoubleIntersectionRight(RightSide, BelowRightSide, RightOfBottomSide); - // DrawLine(cb, LineThicknessForDouble, xLeft + dxLeft, yBottom - DoubleLineOffset, xRight + dxRight, yBottom - DoubleLineOffset);//Bottom Line - // } - // else if (BottomSide != GridLinePattern.Thick) // Bottom line is thin. Determine if intersecting with double: - // { - // SetLinePattern(cb, BottomSide); - // float dxLeft = -ThinIntersection(BelowLeftSide, LeftSide, LeftOfBottomSide); - // float dxRight = ThinIntersection(RightSide, BelowRightSide, RightOfBottomSide); - // DrawLine(cb, LineThicknessForThin, xLeft + dxLeft, yBottom, xRight + dxRight, yBottom); - // } - // else - // { - // float dxLeft = -ThickIntersection(BelowLeftSide, LeftSide, LeftOfBottomSide); - // float dxRight = ThickIntersection(RightSide, BelowRightSide, RightOfBottomSide); - // DrawLine(cb, LineThicknessForThick, xLeft + dxLeft, yBottom, xRight + dxRight, yBottom); - // } - // cb.Stroke(); - // } - //} - #endregion - } -} diff --git a/PROMS/PROMS/Volian.Print.Library/Rtf2iTextSharp.cs b/PROMS/PROMS/Volian.Print.Library/Rtf2iTextSharp.cs deleted file mode 100644 index 91cc2c0b..00000000 --- a/PROMS/PROMS/Volian.Print.Library/Rtf2iTextSharp.cs +++ /dev/null @@ -1,415 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using iTextSharp.text; -using iTextSharp.text.pdf; -using iTextSharp.text.factories; -using Itenso.Rtf; -using Itenso.Rtf.Parser; -using Itenso.Rtf.Interpreter; -//using Itenso.Rtf.Model; -using Itenso.Rtf.Support; -using Microsoft.Win32; -using Volian.Base.Library; - -namespace Volian.Print.Library -{ - public partial class PrintOverride - { - public static bool CompressSub = false; - public static bool CompressSuper = false; - public static bool CompressPropSubSup = false; - private static System.Drawing.Color _TextColor = System.Drawing.Color.Empty; - public static System.Drawing.Color TextColor - { - get { return _TextColor; } - set { _TextColor = value; } - } - public static System.Drawing.Color OverrideTextColor(System.Drawing.Color color) - { - if (_TextColor == System.Drawing.Color.Empty) - return color; - return _TextColor; - } - private static System.Drawing.Color _SvgColor = System.Drawing.Color.Empty; - public static System.Drawing.Color SvgColor - { - get { return _SvgColor; } - set { _SvgColor = value; Volian.Svg.Library.Svg.OverrideColor = value; } - } - public static System.Drawing.Color OverrideSvgColor(System.Drawing.Color color) - { - if (_SvgColor == System.Drawing.Color.Empty) - return color; - return _SvgColor; - } - private static System.Drawing.Color _BoxColor = System.Drawing.Color.Empty; - public static System.Drawing.Color BoxColor - { - get { return _BoxColor; } - set { _BoxColor = value; } - } - public static System.Drawing.Color OverrideBoxColor(System.Drawing.Color color) - { - if (_BoxColor == System.Drawing.Color.Empty) - return color; - return _BoxColor; - } - private static System.Drawing.Color _ChangeBarColor = System.Drawing.Color.Empty; - public static System.Drawing.Color ChangeBarColor - { - get { return _ChangeBarColor; } - set { _ChangeBarColor = value; } - } - public static System.Drawing.Color OverrideChangeBarColor(System.Drawing.Color color) - { - if (_ChangeBarColor == System.Drawing.Color.Empty) - return color; - return _ChangeBarColor; - } - private static System.Drawing.Color _DebugColor = System.Drawing.Color.Empty; - public static System.Drawing.Color DebugColor - { - get { return _DebugColor; } - set { _DebugColor = value; } - } - public static System.Drawing.Color OverrideDebugColor(System.Drawing.Color color) - { - if (_DebugColor == System.Drawing.Color.Empty) - return color; - return _DebugColor; - } - public static void Reset() - { - DebugColor = System.Drawing.Color.Empty; - TextColor = System.Drawing.Color.Empty; - SvgColor = System.Drawing.Color.Empty; - BoxColor = System.Drawing.Color.Empty; - ChangeBarColor = System.Drawing.Color.Empty; - } - } - public class Rtf2iTextSharp : RtfVisualVisitorBase - { - private bool _HasIndent = false; - public bool HasIndent - { - get { return _HasIndent; } - set { _HasIndent = value; } - } - private static bool _DoingComparison = false; - public static bool DoingComparison - { - get { return Rtf2iTextSharp._DoingComparison; } - set { Rtf2iTextSharp._DoingComparison = value; } - } - - private IRtfDocument _RtfDoc; - private Paragraph _MyParagraph = new Paragraph(); - private iTextSharp.text.Font _MyFont; - - // Allow for definition of a default font: if the font is not proportional, this gets set. - // It is needed to set the chunk's font if the first character of a cell is a hardspace (or various - // other special cases (see its use below). Without this, pdfs were using the Helvetica font, - // which is a default itextsharp font (this was causing a problem for HLP, their pdfs could not - // contain a Helvetica font when putting them in their production environment). - private iTextSharp.text.Font _DefaultFont; - public iTextSharp.text.Font DefaultFont - { - get { return _DefaultFont; } - set { _DefaultFont = value; } - } - private string _MyDebugID = null; - public string MyDebugID - { - get { return _MyDebugID; } - set { _MyDebugID = value; } - } - - // public Rtf2iTextSharp(IRtfDocument rtfDoc, Document doc, PdfWriter writer) - public Rtf2iTextSharp(IRtfDocument rtfDoc) - { - if (rtfDoc == null) - throw new ArgumentNullException("rtfDoc"); - - _RtfDoc = rtfDoc; - } - public Paragraph Convert() - { - int profileDepth = ProfileTimer.Push(">>>> Rtf2ITextSharp.Convert"); - _MyParagraph.Clear(); - _MyFont = null; - foreach (IRtfVisual visual in _RtfDoc.VisualContent) - { - visual.Visit(this); - } - //_MyParagraph.SetLeading(0, 1); - ProfileTimer.Pop(profileDepth); - return _MyParagraph; - } - // ---------------------------------------------------------------------- - protected override void DoVisitBreak(IRtfVisualBreak visualBreak) - { - switch (visualBreak.BreakKind) - { - case RtfVisualBreakKind.Line: - Chunk ck = HasIndent ? new Chunk("".PadLeft(200)) : new Chunk("".PadLeft(200)); - _MyParagraph.Add(ck); - break; - case RtfVisualBreakKind.Page: - break; - case RtfVisualBreakKind.Paragraph: - Chunk ck1 = HasIndent ? new Chunk("".PadLeft(200)) : Chunk.NEWLINE; - _MyParagraph.Add(ck1); - break; - case RtfVisualBreakKind.Section: - break; - default: - break; - } - //_MyParagraph.Add(string.Format("<{0}>", visualBreak.BreakKind.ToString())); - } - private void AddChunk(string str, iTextSharp.text.Font font) - { - if (font == null) - _MyParagraph.Add(new Chunk(str)); - else - _MyParagraph.Add(new Chunk(str, font)); - } - protected override void DoVisitSpecial(IRtfVisualSpecialChar visualSpecialChar) - { - //_MyParagraph.Add(string.Format("", visualSpecialChar.CharKind.ToString())); - iTextSharp.text.Font activeFont = _MyFont ?? DefaultFont; - switch (visualSpecialChar.CharKind) - { - case RtfVisualSpecialCharKind.Bullet: - AddChunk("\u2022", activeFont); - break; - case RtfVisualSpecialCharKind.EmDash: - AddChunk("\u2014", activeFont); - break; - case RtfVisualSpecialCharKind.EmSpace: - AddChunk("\u2003", activeFont); - break; - case RtfVisualSpecialCharKind.EnDash: - AddChunk("\u2013", activeFont); - break; - case RtfVisualSpecialCharKind.EnSpace: - AddChunk(" ", activeFont); - break; - case RtfVisualSpecialCharKind.LeftDoubleQuote: - AddChunk("\u201C", activeFont); - break; - case RtfVisualSpecialCharKind.LeftSingleQuote: - AddChunk("\u2018", activeFont); - break; - case RtfVisualSpecialCharKind.NonBreakingHyphen: - AddChunk("\u2011", activeFont); - break; - case RtfVisualSpecialCharKind.NonBreakingSpace: - //iTextSharp.text.Font font = Volian.Svg.Library.VolianPdf.GetFont(sdf); - AddChunk("\u00A0", activeFont); - break; - case RtfVisualSpecialCharKind.OptionalHyphen: - AddChunk("\u00AD", activeFont); - break; - case RtfVisualSpecialCharKind.ParagraphNumberBegin: - break; - case RtfVisualSpecialCharKind.ParagraphNumberEnd: - break; - case RtfVisualSpecialCharKind.QmSpace: - break; - case RtfVisualSpecialCharKind.RightDoubleQuote: - AddChunk("\u201D", activeFont); - break; - case RtfVisualSpecialCharKind.RightSingleQuote: - AddChunk("\u2019", activeFont); - break; - case RtfVisualSpecialCharKind.Tabulator: - break; - default: - break; - } - } - private bool ContainsAllSymbols(string p) - { - foreach (char c in p) - if (c <= '\x7F') return false; - return true; - } - private bool ContainsAnySymbols(string p) - { - foreach (char c in p) - if (c > '\x7F' && c != '\xA0' && c != '\xB0') return true; - return false; - } - protected override void DoVisitText(IRtfVisualText visualText) - { - int profileDepth = ProfileTimer.Push(">>>> DoVisitText"); - if (visualText.Format.IsHidden) - { - ProfileTimer.Pop(profileDepth); - return; - } - iTextSharp.text.Font font = Volian.Svg.Library.VolianPdf.GetFont(visualText.Format.Font.Name, visualText.Format.FontSize, - (visualText.Format.IsBold ? iTextSharp.text.Font.BOLD : 0) + - (visualText.Format.IsItalic ? iTextSharp.text.Font.ITALIC : 0)); - font.Color = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(visualText.Format.ForegroundColor.AsDrawingColor)); - // The following line of code was added to allow for comparisons between the 16bit and 32bit pdf files. Without - // the size change, the overlays did not match up. It seems that the 16bit font size may be inaccurate - // and the 16bit conversion to be pdf may be off. - //if (font.Familyname.StartsWith("Arial") && font.Size == 11 && DoingComparison) font.Size = 11.15f; - iTextSharp.text.pdf.FontSelector fs = new FontSelector(); - // DEBUG - //if (visualText.Format.Font.Name != "VESymbFix" && ContainsAnySymbols(visualText.Text)) - //{ - // Console.WriteLine("Font: {0} TEXT: {1}", visualText.Format.Font.Name, ShowSpecialCharacters(visualText.Text)); - //} - if (visualText.Format.Font.Name == "VESymbFix" && ContainsAllSymbols(visualText.Text)) - { - fs.AddFont(font); - // if the symbol character cannot be found in VESymbFix then check/use the Consolas font - // We are using the VESymbFix font first because not all of the symbols that we use are in the Consolas font - // The Consolas font will give us other symbols that we don't have in VESymbFix (ex the Omega) - fs.AddFont(FontFactory.GetFont("Consolas", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, (visualText.Format.FontSize * 1.1F) / 2, - (visualText.Format.IsBold ? iTextSharp.text.Font.BOLD : 0) + - (visualText.Format.IsItalic ? iTextSharp.text.Font.ITALIC : 0), font.Color)); - Phrase ph = fs.Process(visualText.Text); - foreach (Chunk chk in ph.Chunks) - { - AdjustChunk(visualText, font, chk); - _MyParagraph.Add(chk); - } - } - else - { - // The bullet character for some unknown reason was entered in a text font rather than a symbol font - // switch from x25cf ot x2022 moves to a valid bullet character in the text font - Chunk chk = new Chunk(visualText.Text.Replace("\u25cf", "\u2022"), font); - AdjustChunk(visualText, font, chk); - _MyParagraph.Add(chk); - } - ProfileTimer.Pop(profileDepth); - } - - private void AdjustChunk(IRtfVisualText visualText, iTextSharp.text.Font font, Chunk chk) - { - if (visualText.Format.BackgroundColor.AsDrawingColor.ToArgb() != System.Drawing.Color.White.ToArgb()) - chk.SetBackground(new iTextSharp.text.Color(visualText.Format.BackgroundColor.AsDrawingColor)); - if (visualText.Format.IsStrikeThrough) - chk.SetUnderline(font.Color, 0, 0.05F, 0, .3F, PdfContentByte.LINE_CAP_ROUND); // Relative Based upon font size - if (visualText.Format.IsUnderline) - if (visualText.Format.SuperScript < 0) - { - if (PrintOverride.CompressSub) - { - float yoffundx = (_MyParagraph.Leading < 12 && font.Size >= 12) ? -0.06F : -0.18F; - chk.SetUnderline(font.Color, 0, 0.07F, 0, yoffundx, PdfContentByte.LINE_CAP_ROUND); // Relative Based upon font size - } - else - chk.SetUnderline(font.Color, 0, 0.05F, 0, -.381F, PdfContentByte.LINE_CAP_ROUND); // Relative Based upon font size - } - else if (visualText.Format.SuperScript > 0 && PrintOverride.CompressSuper) - { - float yoffundx = (_MyParagraph.Leading < 12 && font.Size >= 12) ? -0.06F : -0.18F; - chk.SetUnderline(font.Color, 0, 0.07F, 0, yoffundx, PdfContentByte.LINE_CAP_ROUND); - } - else - { - // If on a compressed printed step (Leading < 12) and a larger underlined font, then set the underlining - // a little less far down the page. Without this, the underline was touching the 2nd line of text, if it existed. - // Any plant that had compressed steps with the font size/underline would have this problem. An example - // was Braidwood FSG-6, high level steps. - float yoffund = (_MyParagraph.Leading < 12 && font.Size >= 12) ? -0.06F : -0.131F; - chk.SetUnderline(font.Color, 0, 0.05F, 0, yoffund, PdfContentByte.LINE_CAP_ROUND); // Relative Based upon font size - } - - if (visualText.Format.SuperScript > 0) - { - if (PrintOverride.CompressPropSubSup) - { - chk.SetTextRise(.33F * chk.Font.Size); - chk.Font.Size *= .75f; - } - else - { - chk.SetTextRise(.25F * chk.Font.Size); - if (PrintOverride.CompressSuper) chk.Font.Size = 9; - } - - } - else if (visualText.Format.SuperScript < 0) - { - if (PrintOverride.CompressPropSubSup) - chk.Font.Size *= .75f; - else - { - // if the subscript is not compressed or if it is compress but not underlined, then move it down - if (!PrintOverride.CompressSub || !visualText.Format.IsUnderline) chk.SetTextRise(-.25F * chk.Font.Size); - if (PrintOverride.CompressSub) chk.Font.Size = 9; - } - } - else - chk.SetTextRise(0); - switch (visualText.Format.Alignment) - { - case RtfTextAlignment.Center: - _MyParagraph.Alignment = Element.ALIGN_CENTER; - break; - case RtfTextAlignment.Justify: - _MyParagraph.Alignment = Element.ALIGN_JUSTIFIED; - break; - case RtfTextAlignment.Left: - _MyParagraph.Alignment = Element.ALIGN_LEFT; - break; - case RtfTextAlignment.Right: - _MyParagraph.Alignment = Element.ALIGN_RIGHT; - break; - default: - break; - } - if (_MyFont == null) - { - _MyFont = font; - _MyParagraph.Font = _MyFont; - } - } - - private string ShowSpecialCharacters(string p) - { - StringBuilder sb = new StringBuilder(); - foreach (char c in p) - { - int i = (int)c; - if (i < 20 || i > 127) - sb.Append(string.Format("<{0:x}>", i)); - else - sb.Append(c); - } - return sb.ToString(); - }// DoVisitText - - - // ---------------------------------------------------------------------- - protected override void DoVisitImage(IRtfVisualImage visualImage) - { - //_MyParagraph.Add(new Chunk("")); - DateTime dt1 = DateTime.Now; - //System.Drawing.Image img2 = visualImage.ImageForDrawing; - //Console.WriteLine("1 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds); - //img2.Save(@"c:\datacvrt\x.png"); - System.IO.MemoryStream ms = new System.IO.MemoryStream(); - - //Console.WriteLine("2 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds); - Console.WriteLine("Size {0}", visualImage.ImageForDrawing.Size); - visualImage.ImageForDrawing.Save(ms, System.Drawing.Imaging.ImageFormat.Jpeg); - //Console.WriteLine("3 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds); - ms.Seek(0, System.IO.SeekOrigin.Begin); - //Console.WriteLine("4 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds); - iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(ms); - //Console.WriteLine("5 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds); - _MyParagraph.Add(img); - Console.WriteLine("6 Time Span {0}", TimeSpan.FromTicks(DateTime.Now.Ticks - dt1.Ticks).TotalMilliseconds); - } // DoVisitImage - - } -} diff --git a/PROMS/PROMS/proms.sln b/PROMS/PROMS/proms.sln deleted file mode 100644 index 2a895c9a..00000000 --- a/PROMS/PROMS/proms.sln +++ /dev/null @@ -1,111 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataLoader", "DataLoader\DataLoader.csproj", "{8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.Controls.Library", "Volian.Controls.Library\Volian.Controls.Library.csproj", "{8556527C-6615-487F-8AF7-22EBC3EF0268}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Volian.Utils.Library", "Volian.Utils.Library", "{5A0EDD18-70A4-4D5E-93CC-39F4D246352A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IniReader", "Volian.Utils.Library\IniReader\IniReader.csproj", "{889E30F7-CFBC-470D-9488-7009C354F9C9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSWord", "Volian.Utils.Library\MSWord\MSWord.csproj", "{2F79D7F9-885E-4441-99F3-045D7612B2E5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vlnObjectLibrary", "Volian.Utils.Library\vlnObject\vlnObjectLibrary.csproj", "{933269F5-C3AD-423E-88EB-133A7333FD6B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vlnServerLibrary", "Volian.Utils.Library\vlnServerLibrary\vlnServerLibrary.csproj", "{F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "veproms", "veproms\veproms.csproj", "{0D8723B4-51DD-486A-A5E1-8D55BB526690}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.CSLA.Library", "Volian.CSLA.Library\Volian.CSLA.Library.csproj", "{3C162BD7-5DBC-45A6-90D8-9391AC8CD0FD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.Object.Library", "Volian.Object.Library\Volian.Object.Library.csproj", "{B8BED4CF-D60A-4CC0-B652-CEFA04B774B1}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 10 - SccLocalPath0 = . - SccProjectUniqueName1 = DataLoader\\DataLoader.csproj - SccLocalPath1 = . - SccProjectFilePathRelativizedFromConnection1 = DataLoader\\ - SccProjectUniqueName2 = veproms\\veproms.csproj - SccLocalPath2 = . - SccProjectFilePathRelativizedFromConnection2 = veproms\\ - SccProjectUniqueName3 = Volian.Controls.Library\\Volian.Controls.Library.csproj - SccLocalPath3 = . - SccProjectFilePathRelativizedFromConnection3 = Volian.Controls.Library\\ - SccProjectUniqueName4 = Volian.CSLA.Library\\Volian.CSLA.Library.csproj - SccLocalPath4 = . - SccProjectFilePathRelativizedFromConnection4 = Volian.CSLA.Library\\ - SccProjectUniqueName5 = Volian.Utils.Library\\IniReader\\IniReader.csproj - SccProjectTopLevelParentUniqueName5 = proms.sln - SccLocalPath5 = . - SccProjectFilePathRelativizedFromConnection5 = Volian.Utils.Library\\IniReader\\ - SccProjectUniqueName6 = Volian.Utils.Library\\MSWord\\MSWord.csproj - SccProjectTopLevelParentUniqueName6 = proms.sln - SccLocalPath6 = . - SccProjectFilePathRelativizedFromConnection6 = Volian.Utils.Library\\MSWord\\ - SccProjectUniqueName7 = Volian.Utils.Library\\vlnObject\\vlnObjectLibrary.csproj - SccProjectTopLevelParentUniqueName7 = proms.sln - SccLocalPath7 = . - SccProjectFilePathRelativizedFromConnection7 = Volian.Utils.Library\\vlnObject\\ - SccProjectUniqueName8 = Volian.Utils.Library\\vlnServerLibrary\\vlnServerLibrary.csproj - SccProjectTopLevelParentUniqueName8 = proms.sln - SccLocalPath8 = . - SccProjectFilePathRelativizedFromConnection8 = Volian.Utils.Library\\vlnServerLibrary\\ - SccProjectUniqueName9 = Volian.Object.Library\\Volian.Object.Library.csproj - SccLocalPath9 = . - SccProjectFilePathRelativizedFromConnection9 = Volian.Object.Library\\ - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Release|Any CPU.Build.0 = Release|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Release|Any CPU.Build.0 = Release|Any CPU - {889E30F7-CFBC-470D-9488-7009C354F9C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {889E30F7-CFBC-470D-9488-7009C354F9C9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {889E30F7-CFBC-470D-9488-7009C354F9C9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {889E30F7-CFBC-470D-9488-7009C354F9C9}.Release|Any CPU.Build.0 = Release|Any CPU - {2F79D7F9-885E-4441-99F3-045D7612B2E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2F79D7F9-885E-4441-99F3-045D7612B2E5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2F79D7F9-885E-4441-99F3-045D7612B2E5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2F79D7F9-885E-4441-99F3-045D7612B2E5}.Release|Any CPU.Build.0 = Release|Any CPU - {933269F5-C3AD-423E-88EB-133A7333FD6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {933269F5-C3AD-423E-88EB-133A7333FD6B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {933269F5-C3AD-423E-88EB-133A7333FD6B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {933269F5-C3AD-423E-88EB-133A7333FD6B}.Release|Any CPU.Build.0 = Release|Any CPU - {F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2}.Release|Any CPU.Build.0 = Release|Any CPU - {0D8723B4-51DD-486A-A5E1-8D55BB526690}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D8723B4-51DD-486A-A5E1-8D55BB526690}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D8723B4-51DD-486A-A5E1-8D55BB526690}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D8723B4-51DD-486A-A5E1-8D55BB526690}.Release|Any CPU.Build.0 = Release|Any CPU - {3C162BD7-5DBC-45A6-90D8-9391AC8CD0FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3C162BD7-5DBC-45A6-90D8-9391AC8CD0FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3C162BD7-5DBC-45A6-90D8-9391AC8CD0FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3C162BD7-5DBC-45A6-90D8-9391AC8CD0FD}.Release|Any CPU.Build.0 = Release|Any CPU - {B8BED4CF-D60A-4CC0-B652-CEFA04B774B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B8BED4CF-D60A-4CC0-B652-CEFA04B774B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B8BED4CF-D60A-4CC0-B652-CEFA04B774B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B8BED4CF-D60A-4CC0-B652-CEFA04B774B1}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {889E30F7-CFBC-470D-9488-7009C354F9C9} = {5A0EDD18-70A4-4D5E-93CC-39F4D246352A} - {2F79D7F9-885E-4441-99F3-045D7612B2E5} = {5A0EDD18-70A4-4D5E-93CC-39F4D246352A} - {933269F5-C3AD-423E-88EB-133A7333FD6B} = {5A0EDD18-70A4-4D5E-93CC-39F4D246352A} - {F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2} = {5A0EDD18-70A4-4D5E-93CC-39F4D246352A} - EndGlobalSection -EndGlobal diff --git a/PROMS/PaginateTesting/16bit VE-PROMS Pagination.docx b/PROMS/PaginateTesting/16bit VE-PROMS Pagination.docx deleted file mode 100644 index 42db9091..00000000 Binary files a/PROMS/PaginateTesting/16bit VE-PROMS Pagination.docx and /dev/null differ diff --git a/PROMS/PaginateTesting/16bit.txt b/PROMS/PaginateTesting/16bit.txt deleted file mode 100644 index 21352bea..00000000 --- a/PROMS/PaginateTesting/16bit.txt +++ /dev/null @@ -1,788 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$21' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',27,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' diff --git a/PROMS/PaginateTesting/20100803 Differences.docx b/PROMS/PaginateTesting/20100803 Differences.docx deleted file mode 100644 index 0b1d05fb..00000000 Binary files a/PROMS/PaginateTesting/20100803 Differences.docx and /dev/null differ diff --git a/PROMS/PaginateTesting/20100804 Differences.docx b/PROMS/PaginateTesting/20100804 Differences.docx deleted file mode 100644 index 306dd274..00000000 Binary files a/PROMS/PaginateTesting/20100804 Differences.docx and /dev/null differ diff --git a/PROMS/PaginateTesting/Base.TXT b/PROMS/PaginateTesting/Base.TXT deleted file mode 100644 index d535bc54..00000000 --- a/PROMS/PaginateTesting/Base.TXT +++ /dev/null @@ -1,789 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S6$4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$4' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S24$4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S3$2' -'0POP05-EO-ES31','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S4$4' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$4' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S4' -'0POP05-EO-EC31','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S8' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$5' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S5' -'0POP05-EO-EC32','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3$3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4$4' -'0POP05-EO-EC32','PROCEDURE STEPS',20,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S3$4' -'0POP05-EO-EC33','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4$4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$48' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRH1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',29,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',31,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S31$7' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32$8' -'0POP05-EO-FRH1','ADDENDUM 2',3,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$73' -'0POP05-EO-FRP1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S',5 \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case0.TXT b/PROMS/PaginateTesting/Case0.TXT deleted file mode 100644 index f6aa7025..00000000 --- a/PROMS/PaginateTesting/Case0.TXT +++ /dev/null @@ -1,790 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S6$4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S24$4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S3$2' -'0POP05-EO-ES31','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S4$4' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$4' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S4' -'0POP05-EO-EC31','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S8' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$5' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S5' -'0POP05-EO-EC32','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3$3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4$4' -'0POP05-EO-EC32','PROCEDURE STEPS',20,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S3$4' -'0POP05-EO-EC33','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4$4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$48' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRH1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',29,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',31,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S31$7' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32$8' -'0POP05-EO-FRH1','ADDENDUM 2',3,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$73' -'0POP05-EO-FRP1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case1.TXT b/PROMS/PaginateTesting/Case1.TXT deleted file mode 100644 index b40dd13f..00000000 --- a/PROMS/PaginateTesting/Case1.TXT +++ /dev/null @@ -1,789 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -The thread 0x1df8 has exited with code 0 (0x0). -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S24$4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S3$2' -'0POP05-EO-ES31','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' --1,'Yes','Forced Pagination',5810,60,,636,'0POP05-EO-EC12.SPROCEDURE STEPS.S4..S3..R1..S1..S1..S2.' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S33' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S6$2' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4$4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$48' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',29,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',31,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S31$7' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32$8' -'0POP05-EO-FRH1','ADDENDUM 2',3,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$73' -'0POP05-EO-FRP1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case10.TXT b/PROMS/PaginateTesting/Case10.TXT deleted file mode 100644 index aeeaa1c3..00000000 --- a/PROMS/PaginateTesting/Case10.TXT +++ /dev/null @@ -1,790 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2115' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$3' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$45' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4=' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case11.TXT b/PROMS/PaginateTesting/Case11.TXT deleted file mode 100644 index eddf9d45..00000000 --- a/PROMS/PaginateTesting/Case11.TXT +++ /dev/null @@ -1,789 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2115' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$3' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case12.TXT b/PROMS/PaginateTesting/Case12.TXT deleted file mode 100644 index f37eb739..00000000 --- a/PROMS/PaginateTesting/Case12.TXT +++ /dev/null @@ -1,785 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -there -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$111' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S6$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$14' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S6' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4:' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S2' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case13.TXT b/PROMS/PaginateTesting/Case13.TXT deleted file mode 100644 index 9b6db0fb..00000000 --- a/PROMS/PaginateTesting/Case13.TXT +++ /dev/null @@ -1,788 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -there -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' diff --git a/PROMS/PaginateTesting/Case14.TXT b/PROMS/PaginateTesting/Case14.TXT deleted file mode 100644 index c64fbd02..00000000 --- a/PROMS/PaginateTesting/Case14.TXT +++ /dev/null @@ -1,784 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4:' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S2' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' diff --git a/PROMS/PaginateTesting/Case15.TXT b/PROMS/PaginateTesting/Case15.TXT deleted file mode 100644 index 5a9e2420..00000000 --- a/PROMS/PaginateTesting/Case15.TXT +++ /dev/null @@ -1,785 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case16.TXT b/PROMS/PaginateTesting/Case16.TXT deleted file mode 100644 index 5a9e2420..00000000 --- a/PROMS/PaginateTesting/Case16.TXT +++ /dev/null @@ -1,785 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case17.TXT b/PROMS/PaginateTesting/Case17.TXT deleted file mode 100644 index 52b480ee..00000000 --- a/PROMS/PaginateTesting/Case17.TXT +++ /dev/null @@ -1,787 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2114' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$46' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4?' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case2.TXT b/PROMS/PaginateTesting/Case2.TXT deleted file mode 100644 index a142dc5c..00000000 --- a/PROMS/PaginateTesting/Case2.TXT +++ /dev/null @@ -1,787 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S24$4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S3$2' -'0POP05-EO-ES31','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$111' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S6$2' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4$4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$48' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',29,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',31,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S31$7' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32$8' -'0POP05-EO-FRH1','ADDENDUM 2',3,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$73' -'0POP05-EO-FRP1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case3.TXT b/PROMS/PaginateTesting/Case3.TXT deleted file mode 100644 index f6aa7025..00000000 --- a/PROMS/PaginateTesting/Case3.TXT +++ /dev/null @@ -1,790 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S6$4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S24$4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S3$2' -'0POP05-EO-ES31','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S4$4' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$4' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S8' -'0POP05-EO-EC31','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S4' -'0POP05-EO-EC31','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S8' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$5' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S5' -'0POP05-EO-EC32','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3$3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4$4' -'0POP05-EO-EC32','PROCEDURE STEPS',20,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S3$4' -'0POP05-EO-EC33','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4$4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$48' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRH1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',29,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',31,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S31$7' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32$8' -'0POP05-EO-FRH1','ADDENDUM 2',3,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$73' -'0POP05-EO-FRP1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case5.TXT b/PROMS/PaginateTesting/Case5.TXT deleted file mode 100644 index 791a00bf..00000000 --- a/PROMS/PaginateTesting/Case5.TXT +++ /dev/null @@ -1,782 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$111' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S6$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$14' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S6' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3$3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S5' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$49' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case6.TXT b/PROMS/PaginateTesting/Case6.TXT deleted file mode 100644 index 9f657bc8..00000000 --- a/PROMS/PaginateTesting/Case6.TXT +++ /dev/null @@ -1,783 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES31','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-ES32','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$113' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S6' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S9' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2$2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3$3' -'0POP05-EO-EC11','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$111' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S6$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S:$14' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S6' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S:' -'0POP05-EO-EC12','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$24' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2;' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3$3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S5' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$44' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$49' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4A' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4$2' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3$5' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case7.TXT b/PROMS/PaginateTesting/Case7.TXT deleted file mode 100644 index 601445d4..00000000 --- a/PROMS/PaginateTesting/Case7.TXT +++ /dev/null @@ -1,788 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$3' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S81$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$45' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4=' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case8.TXT b/PROMS/PaginateTesting/Case8.TXT deleted file mode 100644 index 2486cd16..00000000 --- a/PROMS/PaginateTesting/Case8.TXT +++ /dev/null @@ -1,789 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2115' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$3' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$45' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4=' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Case9.TXT b/PROMS/PaginateTesting/Case9.TXT deleted file mode 100644 index 2486cd16..00000000 --- a/PROMS/PaginateTesting/Case9.TXT +++ /dev/null @@ -1,789 +0,0 @@ -'0POP05-EO-EO00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',9,'S$12' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',10,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S1$7' -'0POP05-EO-EO00','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EO00','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',6,'S$8' -'0POP05-EO-ES00','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES00','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$12' -'0POP05-EO-ES01','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-ES01','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S2$7' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$25' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S3$36' -'0POP05-EO-ES01','PROCEDURE STEPS',8,'S5' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$14' -'0POP05-EO-ES01','PROCEDURE STEPS',9,'S2$2' -'0POP05-EO-ES01','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES01','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S6' -'0POP05-EO-ES02','PROCEDURE STEPS',10,'S;' -'0POP05-EO-ES02','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',16,'S1$3' -'0POP05-EO-ES02','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S22' -'0POP05-EO-ES02','PROCEDURE STEPS',19,'S3' -'0POP05-EO-ES02','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',26,'S' -'0POP05-EO-ES02','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES02','ADDENDUM 8',1,'S' -'0POP05-EO-ES02','ADDENDUM 8',2,'S' -'0POP05-EO-ES02','ADDENDUM 8',7,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',1,'S2' -'0POP05-EO-ES03','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S22' -'0POP05-EO-ES03','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES03','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES03','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S7' -'0POP05-EO-ES05','PROCEDURE STEPS',15,'S<*1' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',17,'S4' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',19,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S2$3' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S5' -'0POP05-EO-ES05','PROCEDURE STEPS',25,'S8' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S2' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S22' -'0POP05-EO-ES05','PROCEDURE STEPS',26,'S3' -'0POP05-EO-ES05','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',29,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES05','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES05','ADDENDUM 8',1,'S' -'0POP05-EO-ES05','ADDENDUM 8',2,'S' -'0POP05-EO-ES05','ADDENDUM 8',3,'S' -'0POP05-EO-ES05','ADDENDUM 8',9,'S' -'0POP05-EO-ES05','ADDENDUM 8',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S4' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S5' -'0POP05-EO-EO10','PROCEDURE STEPS',2,'S;' -'0POP05-EO-EO10','PROCEDURE STEPS',8,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',9,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',10,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',12,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',13,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',14,'S2' -'0POP05-EO-EO10','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',16,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',20,'S2$5' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',23,'S3' -'0POP05-EO-EO10','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO10','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',8,'S2' -'0POP05-EO-ES11','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',19,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',22,'S$3' -'0POP05-EO-ES11','PROCEDURE STEPS',23,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',27,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',31,'S' -'0POP05-EO-ES11','PROCEDURE STEPS',33,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES12','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',6,'S6' -'0POP05-EO-ES12','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S2*1' -'0POP05-EO-ES12','PROCEDURE STEPS',13,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$2' -'0POP05-EO-ES12','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-ES12','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S3' -'0POP05-EO-ES12','PROCEDURE STEPS',17,'S8' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',20,'S4' -'0POP05-EO-ES12','PROCEDURE STEPS',21,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',24,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',25,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',28,'S' -'0POP05-EO-ES12','PROCEDURE STEPS',30,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S2' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S4' -'0POP05-EO-ES13','PROCEDURE STEPS',5,'S6' -'0POP05-EO-ES13','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES13','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',2,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES14','PROCEDURE STEPS',3,'S23!1' -'0POP05-EO-ES14','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S14$214' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S25' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S4' -'0POP05-EO-EO20','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EO20','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO20','ADDENDUM 3',1,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S' -'0POP05-EO-EO20','ADDENDUM 3',4,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S' -'0POP05-EO-EO20','ADDENDUM 3',5,'S1$8' -'0POP05-EO-EO20','ADDENDUM 3',5,'S2' -'0POP05-EO-EO20','ADDENDUM 3',5,'S3' -'0POP05-EO-EO20','ADDENDUM 3',5,'S4' -'0POP05-EO-EO20','ADDENDUM 3',5,'S6' -'0POP05-EO-EO20','ADDENDUM 3',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',1,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',3,'S76' -'0POP05-EO-EO30','PROCEDURE STEPS',4,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',5,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',6,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S1' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',7,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',11,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',14,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',15,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',17,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S5' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EO30','PROCEDURE STEPS',19,'S63$4' -'0POP05-EO-EO30','PROCEDURE STEPS',20,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',21,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',22,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',24,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EO30','PROCEDURE STEPS',26,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',28,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S3' -'0POP05-EO-EO30','PROCEDURE STEPS',30,'S4' -'0POP05-EO-EO30','PROCEDURE STEPS',31,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',32,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',33,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',34,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',36,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',39,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',40,'S1$3' -'0POP05-EO-EO30','PROCEDURE STEPS',41,'S' -'0POP05-EO-EO30','PROCEDURE STEPS',46,'S' -'0POP05-EO-EO30','ADDENDUM 2',1,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S' -'0POP05-EO-EO30','ADDENDUM 2',4,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S' -'0POP05-EO-EO30','ADDENDUM 2',5,'S1$8' -'0POP05-EO-EO30','ADDENDUM 2',5,'S2' -'0POP05-EO-EO30','ADDENDUM 2',5,'S3' -'0POP05-EO-EO30','ADDENDUM 2',5,'S4' -'0POP05-EO-EO30','ADDENDUM 2',5,'S6' -'0POP05-EO-EO30','ADDENDUM 2',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',1,'S1$6' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES31','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES31','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES31','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES31','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',8,'S' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S1$2' -'0POP05-EO-ES31','PROCEDURE STEPS',9,'S4' -'0POP05-EO-ES31','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$2' -'0POP05-EO-ES32','PROCEDURE STEPS',1,'S1$5' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S2' -'0POP05-EO-ES32','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-ES32','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',6,'S5' -'0POP05-EO-ES32','PROCEDURE STEPS',9,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-ES32','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',16,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES32','PROCEDURE STEPS',18,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',1,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',2,'S1$3' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',4,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',5,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',6,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S3' -'0POP05-EO-ES33','PROCEDURE STEPS',7,'S5' -'0POP05-EO-ES33','PROCEDURE STEPS',10,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',11,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',12,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',13,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',14,'S2' -'0POP05-EO-ES33','PROCEDURE STEPS',15,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',17,'S' -'0POP05-EO-ES33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3*1' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S3$2115' -'0POP05-EO-EC00','PROCEDURE STEPS',3,'S9' -'0POP05-EO-EC00','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S12' -'0POP05-EO-EC00','PROCEDURE STEPS',6,'S4' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',8,'S$3' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S5' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S6' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S7' -'0POP05-EO-EC00','PROCEDURE STEPS',10,'S9!1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1' -'0POP05-EO-EC00','PROCEDURE STEPS',11,'S1$3' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',12,'S$16' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',13,'S2$5' -'0POP05-EO-EC00','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC00','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC00','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC00','ADDENDUM 1',1,'S' -'0POP05-EO-EC00','ADDENDUM 1',3,'S' -'0POP05-EO-EC00','ADDENDUM 1',5,'S' -'0POP05-EO-EC00','ADDENDUM 4',1,'S' -'0POP05-EO-EC00','ADDENDUM 4',2,'S1$2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S2' -'0POP05-EO-EC00','ADDENDUM 4',2,'S3' -'0POP05-EO-EC00','ADDENDUM 4',3,'S' -'0POP05-EO-EC00','ADDENDUM 4',4,'S' -'0POP05-EO-EC00','ADDENDUM 4',6,'S' -'0POP05-EO-EC00','ADDENDUM 5',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',1,'S' -'0POP05-EO-EC00','ADDENDUM 9',6,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S1$3' -'0POP05-EO-EC01','PROCEDURE STEPS',1,'S2' -'0POP05-EO-EC01','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S211$14' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S212' -'0POP05-EO-EC01','PROCEDURE STEPS',4,'S216' -'0POP05-EO-EC01','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC01','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',5,'S8' -'0POP05-EO-EC02','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC02','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',8,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',15,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',21,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',23,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S5' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S7' -'0POP05-EO-EC11','PROCEDURE STEPS',30,'S8$4' -'0POP05-EO-EC11','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',32,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S2' -'0POP05-EO-EC11','PROCEDURE STEPS',33,'S3' -'0POP05-EO-EC11','PROCEDURE STEPS',34,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC11','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',3,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S3$3' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',4,'S8' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S5' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S7' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S9' -'0POP05-EO-EC12','PROCEDURE STEPS',5,'S;' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S5$214' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S7' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S9*1' -'0POP05-EO-EC21','PROCEDURE STEPS',1,'S:' -'0POP05-EO-EC21','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',18,'S2' -'0POP05-EO-EC21','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',29,'S3' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',31,'S$3' -'0POP05-EO-EC21','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S3$3' -'0POP05-EO-EC21','PROCEDURE STEPS',37,'S5' -'0POP05-EO-EC21','PROCEDURE STEPS',40,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC21','PROCEDURE STEPS',46,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',8,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',15,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S2' -'0POP05-EO-EC31','PROCEDURE STEPS',16,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S6' -'0POP05-EO-EC31','PROCEDURE STEPS',19,'S9' -'0POP05-EO-EC31','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',23,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',25,'S3' -'0POP05-EO-EC31','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',27,'S1$5' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S1$2' -'0POP05-EO-EC31','PROCEDURE STEPS',28,'S7' -'0POP05-EO-EC31','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S3$3' -'0POP05-EO-EC31','PROCEDURE STEPS',31,'S5' -'0POP05-EO-EC31','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',38,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',39,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',41,'S' -'0POP05-EO-EC31','PROCEDURE STEPS',42,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S6' -'0POP05-EO-EC32','PROCEDURE STEPS',6,'S9' -'0POP05-EO-EC32','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',10,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',11,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',12,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S1$2' -'0POP05-EO-EC32','PROCEDURE STEPS',13,'S2' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',14,'S7' -'0POP05-EO-EC32','PROCEDURE STEPS',16,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S3' -'0POP05-EO-EC32','PROCEDURE STEPS',17,'S4' -'0POP05-EO-EC32','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',26,'S' -'0POP05-EO-EC32','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',1,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',2,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',3,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',4,'S13' -'0POP05-EO-EC33','PROCEDURE STEPS',5,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',7,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S2' -'0POP05-EO-EC33','PROCEDURE STEPS',9,'S3' -'0POP05-EO-EC33','PROCEDURE STEPS',14,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',17,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',18,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',21,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',22,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S2$3' -'0POP05-EO-EC33','PROCEDURE STEPS',24,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',27,'S4' -'0POP05-EO-EC33','PROCEDURE STEPS',28,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',29,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',32,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',33,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',35,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',36,'S' -'0POP05-EO-EC33','PROCEDURE STEPS',37,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',1,'S$2' -'0POP05-EO-FRS1','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S7' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S8*1' -'0POP05-EO-FRS1','PROCEDURE STEPS',4,'S9' -'0POP05-EO-FRS1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S14$213' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S2' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S24$22' -'0POP05-EO-FRS1','PROCEDURE STEPS',15,'S4' -'0POP05-EO-FRS1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRS1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRS2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$27' -'0POP05-EO-FRC1','PROCEDURE STEPS',2,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',11,'S9' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S3' -'0POP05-EO-FRC1','PROCEDURE STEPS',12,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$26' -'0POP05-EO-FRC1','PROCEDURE STEPS',15,'S$2A' -'0POP05-EO-FRC1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',21,'S4' -'0POP05-EO-FRC1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$25' -'0POP05-EO-FRC1','PROCEDURE STEPS',23,'S$2=' -'0POP05-EO-FRC1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$45' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S1$4=' -'0POP05-EO-FRC2','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC2','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',9,'S9' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',11,'S4' -'0POP05-EO-FRC2','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$26' -'0POP05-EO-FRC2','PROCEDURE STEPS',14,'S$2A' -'0POP05-EO-FRC3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S1$1:' -'0POP05-EO-FRC3','PROCEDURE STEPS',2,'S3' -'0POP05-EO-FRC3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S33' -'0POP05-EO-FRH1','PROCEDURE STEPS',3,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',11,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',21,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S2' -'0POP05-EO-FRH1','PROCEDURE STEPS',22,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',23,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S3' -'0POP05-EO-FRH1','PROCEDURE STEPS',28,'S6' -'0POP05-EO-FRH1','PROCEDURE STEPS',30,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S' -'0POP05-EO-FRH1','ADDENDUM 1',1,'S8' -'0POP05-EO-FRH1','ADDENDUM 1',3,'S' -'0POP05-EO-FRH1','ADDENDUM 1',4,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S' -'0POP05-EO-FRH1','ADDENDUM 1',5,'S8!1' -'0POP05-EO-FRH1','ADDENDUM 2',1,'S' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S2' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S32' -'0POP05-EO-FRH1','ADDENDUM 2',2,'S33' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S' -'0POP05-EO-FRH1','ADDENDUM 2',4,'S5' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S4' -'0POP05-EO-FRH1','ADDENDUM 2',5,'S9' -'0POP05-EO-FRH2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S4' -'0POP05-EO-FRH2','PROCEDURE STEPS',2,'S5' -'0POP05-EO-FRH2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRH2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S6$2' -'0POP05-EO-FRH3','PROCEDURE STEPS',2,'S7' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',3,'S3$3' -'0POP05-EO-FRH3','PROCEDURE STEPS',5,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',8,'S' -'0POP05-EO-FRH3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRH4','Procedure Steps',1,'S' -'0POP05-EO-FRH4','Procedure Steps',2,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRH5','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$6' -'0POP05-EO-FRP1','PROCEDURE STEPS',2,'S$74' -'0POP05-EO-FRP1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',12,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',14,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',17,'S3' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',18,'S2' -'0POP05-EO-FRP1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',25,'S' -'0POP05-EO-FRP1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$7' -'0POP05-EO-FRP2','PROCEDURE STEPS',1,'S$75' -'0POP05-EO-FRP2','PROCEDURE STEPS',3,'S2$3' -'0POP05-EO-FRP2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',4,'S5' -'0POP05-EO-FRZ1','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S2' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S25' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S3' -'0POP05-EO-FRZ1','PROCEDURE STEPS',7,'S33$3' -'0POP05-EO-FRZ2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRZ3','PROCEDURE STEPS',3,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S2' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S3' -'0POP05-EO-FRI1','PROCEDURE STEPS',20,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',22,'S4' -'0POP05-EO-FRI1','PROCEDURE STEPS',24,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',26,'S' -'0POP05-EO-FRI1','PROCEDURE STEPS',28,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',4,'S2' -'0POP05-EO-FRI2','PROCEDURE STEPS',6,'S' -'0POP05-EO-FRI2','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',1,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',2,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S3' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S4' -'0POP05-EO-FRI3','PROCEDURE STEPS',3,'S5' -'0POP05-EO-FRI3','PROCEDURE STEPS',4,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',7,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',10,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',13,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',14,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',15,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',16,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',17,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',18,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S' -'0POP05-EO-FRI3','PROCEDURE STEPS',19,'S2' -'0POP05-EO-FRI3','PROCEDURE STEPS',21,'S' \ No newline at end of file diff --git a/PROMS/PaginateTesting/Differences.docx b/PROMS/PaginateTesting/Differences.docx deleted file mode 100644 index c222ca90..00000000 Binary files a/PROMS/PaginateTesting/Differences.docx and /dev/null differ diff --git a/PROMS/PaginateTesting/Pagination Summary.xlsx b/PROMS/PaginateTesting/Pagination Summary.xlsx deleted file mode 100644 index aec9589e..00000000 Binary files a/PROMS/PaginateTesting/Pagination Summary.xlsx and /dev/null differ diff --git a/PROMS/PaginateTesting/Result.txt b/PROMS/PaginateTesting/Result.txt deleted file mode 100644 index 3948b621..00000000 Binary files a/PROMS/PaginateTesting/Result.txt and /dev/null differ diff --git a/PROMS/ROConvert/ROConvert.sln b/PROMS/ROConvert/ROConvert.sln deleted file mode 100644 index e03bb01d..00000000 --- a/PROMS/ROConvert/ROConvert.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WestinghouseROImport", "WestinghouseROImport\WestinghouseROImport.csproj", "{6E879177-F542-49A4-96AC-2384F469111C}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {6E879177-F542-49A4-96AC-2384F469111C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6E879177-F542-49A4-96AC-2384F469111C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6E879177-F542-49A4-96AC-2384F469111C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6E879177-F542-49A4-96AC-2384F469111C}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/ROConvert/WestinghouseROImport/Program.cs b/PROMS/ROConvert/WestinghouseROImport/Program.cs deleted file mode 100644 index f8f1029e..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace WestinghouseROImport -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmROImport()); - } - } -} \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/Properties/AssemblyInfo.cs b/PROMS/ROConvert/WestinghouseROImport/Properties/AssemblyInfo.cs deleted file mode 100644 index b81346e3..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("WestinghouseROImport")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("WestinghouseROImport")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("4b2d9102-7b49-40d3-af03-5e343b9dbcdd")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.Designer.cs deleted file mode 100644 index 7375c8df..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WestinghouseROImport.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WestinghouseROImport.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.resx b/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.Designer.cs deleted file mode 100644 index 65130f97..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.Designer.cs +++ /dev/null @@ -1,56 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WestinghouseROImport.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\VEWest\\RO\\ROMaster.mdb")] - public string ROMasterConnectionString { - get { - return ((string)(this["ROMasterConnectionString"])); - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\VEWest\\ROImport.mdb")] - public string ROImportConnectionString { - get { - return ((string)(this["ROImportConnectionString"])); - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\VEWest\\ROCPPImport.mdb")] - public string ROCPPImportConnectionString { - get { - return ((string)(this["ROCPPImportConnectionString"])); - } - } - } -} diff --git a/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.settings b/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.settings deleted file mode 100644 index a19678f6..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/Properties/Settings.settings +++ /dev/null @@ -1,30 +0,0 @@ - - - - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\RO\ROMaster.mdb</ConnectionString> - <ProviderName>System.Data.OleDb</ProviderName> -</SerializableConnectionString> - Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\RO\ROMaster.mdb - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROImport.mdb</ConnectionString> - <ProviderName>System.Data.OleDb</ProviderName> -</SerializableConnectionString> - Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROImport.mdb - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROCPPImport.mdb</ConnectionString> - <ProviderName>System.Data.OleDb</ProviderName> -</SerializableConnectionString> - Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROCPPImport.mdb - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.Designer.cs deleted file mode 100644 index defeee86..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.Designer.cs +++ /dev/null @@ -1,2446 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -#pragma warning disable 1591 - -namespace WestinghouseROImport { - - - /// - ///Represents a strongly typed in-memory cache of data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] - [global::System.Xml.Serialization.XmlRootAttribute("ROCPPImportDataSet")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] - public partial class ROCPPImportDataSet : global::System.Data.DataSet { - - private ImportARP_tblDataTable tableImportARP_tbl; - - private ImportMEL_qryDataTable tableImportMEL_qry; - - private ImportSTP_qryDataTable tableImportSTP_qry; - - private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROCPPImportDataSet() { - this.BeginInit(); - this.InitClass(); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - base.Relations.CollectionChanged += schemaChangedHandler; - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROCPPImportDataSet(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context, false) { - if ((this.IsBinarySerialized(info, context) == true)) { - this.InitVars(false); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - this.Tables.CollectionChanged += schemaChangedHandler1; - this.Relations.CollectionChanged += schemaChangedHandler1; - return; - } - string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); - if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - if ((ds.Tables["ImportARP_tbl"] != null)) { - base.Tables.Add(new ImportARP_tblDataTable(ds.Tables["ImportARP_tbl"])); - } - if ((ds.Tables["ImportMEL_qry"] != null)) { - base.Tables.Add(new ImportMEL_qryDataTable(ds.Tables["ImportMEL_qry"])); - } - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - } - this.GetSerializationData(info, context); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - this.Relations.CollectionChanged += schemaChangedHandler; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportARP_tblDataTable ImportARP_tbl { - get { - return this.tableImportARP_tbl; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportMEL_qryDataTable ImportMEL_qry { - get { - return this.tableImportMEL_qry; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportSTP_qryDataTable ImportSTP_qry { - get { - return this.tableImportSTP_qry; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.BrowsableAttribute(true)] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] - public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { - get { - return this._schemaSerializationMode; - } - set { - this._schemaSerializationMode = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataTableCollection Tables { - get { - return base.Tables; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataRelationCollection Relations { - get { - return base.Relations; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void InitializeDerivedDataSet() { - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataSet Clone() { - ROCPPImportDataSet cln = ((ROCPPImportDataSet)(base.Clone())); - cln.InitVars(); - cln.SchemaSerializationMode = this.SchemaSerializationMode; - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeTables() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeRelations() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { - if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - this.Reset(); - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXml(reader); - if ((ds.Tables["ImportARP_tbl"] != null)) { - base.Tables.Add(new ImportARP_tblDataTable(ds.Tables["ImportARP_tbl"])); - } - if ((ds.Tables["ImportMEL_qry"] != null)) { - base.Tables.Add(new ImportMEL_qryDataTable(ds.Tables["ImportMEL_qry"])); - } - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXml(reader); - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { - global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); - this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); - stream.Position = 0; - return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.InitVars(true); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars(bool initTable) { - this.tableImportARP_tbl = ((ImportARP_tblDataTable)(base.Tables["ImportARP_tbl"])); - if ((initTable == true)) { - if ((this.tableImportARP_tbl != null)) { - this.tableImportARP_tbl.InitVars(); - } - } - this.tableImportMEL_qry = ((ImportMEL_qryDataTable)(base.Tables["ImportMEL_qry"])); - if ((initTable == true)) { - if ((this.tableImportMEL_qry != null)) { - this.tableImportMEL_qry.InitVars(); - } - } - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(base.Tables["ImportSTP_qry"])); - if ((initTable == true)) { - if ((this.tableImportSTP_qry != null)) { - this.tableImportSTP_qry.InitVars(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.DataSetName = "ROCPPImportDataSet"; - this.Prefix = ""; - this.Namespace = "http://tempuri.org/ROCPPImportDataSet.xsd"; - this.EnforceConstraints = true; - this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - this.tableImportARP_tbl = new ImportARP_tblDataTable(); - base.Tables.Add(this.tableImportARP_tbl); - this.tableImportMEL_qry = new ImportMEL_qryDataTable(); - base.Tables.Add(this.tableImportMEL_qry); - this.tableImportSTP_qry = new ImportSTP_qryDataTable(); - base.Tables.Add(this.tableImportSTP_qry); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportARP_tbl() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportMEL_qry() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportSTP_qry() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { - if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - ROCPPImportDataSet ds = new ROCPPImportDataSet(); - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); - any.Namespace = ds.Namespace; - sequence.Items.Add(any); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - - public delegate void ImportARP_tblRowChangeEventHandler(object sender, ImportARP_tblRowChangeEvent e); - - public delegate void ImportMEL_qryRowChangeEventHandler(object sender, ImportMEL_qryRowChangeEvent e); - - public delegate void ImportSTP_qryRowChangeEventHandler(object sender, ImportSTP_qryRowChangeEvent e); - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportARP_tblDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnDocument; - - private global::System.Data.DataColumn columnAlarm; - - private global::System.Data.DataColumn columnPointName; - - private global::System.Data.DataColumn columnType; - - private global::System.Data.DataColumn columnValue; - - private global::System.Data.DataColumn columnDescription; - - private global::System.Data.DataColumn columnSystemID; - - private global::System.Data.DataColumn columnSysTitle; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblDataTable() { - this.TableName = "ImportARP_tbl"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportARP_tblDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportARP_tblDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DocumentColumn { - get { - return this.columnDocument; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AlarmColumn { - get { - return this.columnAlarm; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn PointNameColumn { - get { - return this.columnPointName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn TypeColumn { - get { - return this.columnType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ValueColumn { - get { - return this.columnValue; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemIDColumn { - get { - return this.columnSystemID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SysTitleColumn { - get { - return this.columnSysTitle; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow this[int index] { - get { - return ((ImportARP_tblRow)(this.Rows[index])); - } - } - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowChanging; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowChanged; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowDeleting; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportARP_tblRow(ImportARP_tblRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow AddImportARP_tblRow(string Document, string Alarm, string PointName, string Type, string Value, string Description, string SystemID, string SysTitle) { - ImportARP_tblRow rowImportARP_tblRow = ((ImportARP_tblRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - Document, - Alarm, - PointName, - Type, - Value, - Description, - SystemID, - SysTitle}; - rowImportARP_tblRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportARP_tblRow); - return rowImportARP_tblRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportARP_tblDataTable cln = ((ImportARP_tblDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportARP_tblDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnDocument = base.Columns["Document"]; - this.columnAlarm = base.Columns["Alarm"]; - this.columnPointName = base.Columns["PointName"]; - this.columnType = base.Columns["Type"]; - this.columnValue = base.Columns["Value"]; - this.columnDescription = base.Columns["Description"]; - this.columnSystemID = base.Columns["SystemID"]; - this.columnSysTitle = base.Columns["SysTitle"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnDocument = new global::System.Data.DataColumn("Document", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDocument); - this.columnAlarm = new global::System.Data.DataColumn("Alarm", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAlarm); - this.columnPointName = new global::System.Data.DataColumn("PointName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnPointName); - this.columnType = new global::System.Data.DataColumn("Type", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnType); - this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnValue); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnSystemID = new global::System.Data.DataColumn("SystemID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemID); - this.columnSysTitle = new global::System.Data.DataColumn("SysTitle", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSysTitle); - this.columnDocument.MaxLength = 255; - this.columnAlarm.MaxLength = 255; - this.columnPointName.MaxLength = 255; - this.columnType.MaxLength = 255; - this.columnValue.MaxLength = 255; - this.columnDescription.MaxLength = 255; - this.columnSystemID.MaxLength = 255; - this.columnSysTitle.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow NewImportARP_tblRow() { - return ((ImportARP_tblRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportARP_tblRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportARP_tblRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportARP_tblRowChanged != null)) { - this.ImportARP_tblRowChanged(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportARP_tblRowChanging != null)) { - this.ImportARP_tblRowChanging(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportARP_tblRowDeleted != null)) { - this.ImportARP_tblRowDeleted(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportARP_tblRowDeleting != null)) { - this.ImportARP_tblRowDeleting(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportARP_tblRow(ImportARP_tblRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROCPPImportDataSet ds = new ROCPPImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportARP_tblDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportMEL_qryDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnSystemID; - - private global::System.Data.DataColumn columnSystemDesc; - - private global::System.Data.DataColumn columnComponentID; - - private global::System.Data.DataColumn columnCompDesc; - - private global::System.Data.DataColumn columnFullName; - - private global::System.Data.DataColumn columnShortName; - - private global::System.Data.DataColumn columnRoom; - - private global::System.Data.DataColumn columnDescription; - - private global::System.Data.DataColumn columnCommonDesc; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryDataTable() { - this.TableName = "ImportMEL_qry"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportMEL_qryDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportMEL_qryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemIDColumn { - get { - return this.columnSystemID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemDescColumn { - get { - return this.columnSystemDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ComponentIDColumn { - get { - return this.columnComponentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn CompDescColumn { - get { - return this.columnCompDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn FullNameColumn { - get { - return this.columnFullName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ShortNameColumn { - get { - return this.columnShortName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RoomColumn { - get { - return this.columnRoom; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn CommonDescColumn { - get { - return this.columnCommonDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow this[int index] { - get { - return ((ImportMEL_qryRow)(this.Rows[index])); - } - } - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowChanging; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowChanged; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowDeleting; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportMEL_qryRow(ImportMEL_qryRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow AddImportMEL_qryRow(string SystemID, string SystemDesc, string ComponentID, string CompDesc, string FullName, string ShortName, string Room, string Description, string CommonDesc) { - ImportMEL_qryRow rowImportMEL_qryRow = ((ImportMEL_qryRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - SystemID, - SystemDesc, - ComponentID, - CompDesc, - FullName, - ShortName, - Room, - Description, - CommonDesc}; - rowImportMEL_qryRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportMEL_qryRow); - return rowImportMEL_qryRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportMEL_qryDataTable cln = ((ImportMEL_qryDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportMEL_qryDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnSystemID = base.Columns["SystemID"]; - this.columnSystemDesc = base.Columns["SystemDesc"]; - this.columnComponentID = base.Columns["ComponentID"]; - this.columnCompDesc = base.Columns["CompDesc"]; - this.columnFullName = base.Columns["FullName"]; - this.columnShortName = base.Columns["ShortName"]; - this.columnRoom = base.Columns["Room"]; - this.columnDescription = base.Columns["Description"]; - this.columnCommonDesc = base.Columns["CommonDesc"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnSystemID = new global::System.Data.DataColumn("SystemID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemID); - this.columnSystemDesc = new global::System.Data.DataColumn("SystemDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemDesc); - this.columnComponentID = new global::System.Data.DataColumn("ComponentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnComponentID); - this.columnCompDesc = new global::System.Data.DataColumn("CompDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnCompDesc); - this.columnFullName = new global::System.Data.DataColumn("FullName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnFullName); - this.columnShortName = new global::System.Data.DataColumn("ShortName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnShortName); - this.columnRoom = new global::System.Data.DataColumn("Room", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRoom); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnCommonDesc = new global::System.Data.DataColumn("CommonDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnCommonDesc); - this.columnSystemID.ReadOnly = true; - this.columnSystemID.MaxLength = 255; - this.columnSystemDesc.MaxLength = 255; - this.columnComponentID.ReadOnly = true; - this.columnComponentID.MaxLength = 255; - this.columnCompDesc.MaxLength = 255; - this.columnFullName.MaxLength = 255; - this.columnShortName.MaxLength = 255; - this.columnRoom.MaxLength = 255; - this.columnDescription.MaxLength = 255; - this.columnCommonDesc.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow NewImportMEL_qryRow() { - return ((ImportMEL_qryRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportMEL_qryRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportMEL_qryRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportMEL_qryRowChanged != null)) { - this.ImportMEL_qryRowChanged(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportMEL_qryRowChanging != null)) { - this.ImportMEL_qryRowChanging(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportMEL_qryRowDeleted != null)) { - this.ImportMEL_qryRowDeleted(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportMEL_qryRowDeleting != null)) { - this.ImportMEL_qryRowDeleting(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportMEL_qryRow(ImportMEL_qryRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROCPPImportDataSet ds = new ROCPPImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportMEL_qryDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportSTP_qryDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnParameter; - - private global::System.Data.DataColumn columnName; - - private global::System.Data.DataColumn columnValue; - - private global::System.Data.DataColumn columnDescription; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryDataTable() { - this.TableName = "ImportSTP_qry"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportSTP_qryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParameterColumn { - get { - return this.columnParameter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn NameColumn { - get { - return this.columnName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ValueColumn { - get { - return this.columnValue; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow this[int index] { - get { - return ((ImportSTP_qryRow)(this.Rows[index])); - } - } - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanging; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanged; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleting; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow AddImportSTP_qryRow(string Parameter, string Name, string Value, string Description) { - ImportSTP_qryRow rowImportSTP_qryRow = ((ImportSTP_qryRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - Parameter, - Name, - Value, - Description}; - rowImportSTP_qryRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportSTP_qryRow); - return rowImportSTP_qryRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportSTP_qryDataTable cln = ((ImportSTP_qryDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportSTP_qryDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnParameter = base.Columns["Parameter"]; - this.columnName = base.Columns["Name"]; - this.columnValue = base.Columns["Value"]; - this.columnDescription = base.Columns["Description"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnParameter = new global::System.Data.DataColumn("Parameter", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParameter); - this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnName); - this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnValue); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnParameter.MaxLength = 255; - this.columnName.MaxLength = 255; - this.columnValue.MaxLength = 255; - this.columnDescription.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow NewImportSTP_qryRow() { - return ((ImportSTP_qryRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportSTP_qryRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportSTP_qryRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportSTP_qryRowChanged != null)) { - this.ImportSTP_qryRowChanged(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportSTP_qryRowChanging != null)) { - this.ImportSTP_qryRowChanging(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportSTP_qryRowDeleted != null)) { - this.ImportSTP_qryRowDeleted(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportSTP_qryRowDeleting != null)) { - this.ImportSTP_qryRowDeleting(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROCPPImportDataSet ds = new ROCPPImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportSTP_qryDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportARP_tblRow : global::System.Data.DataRow { - - private ImportARP_tblDataTable tableImportARP_tbl; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportARP_tblRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportARP_tbl = ((ImportARP_tblDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Document { - get { - try { - return ((string)(this[this.tableImportARP_tbl.DocumentColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Document\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.DocumentColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Alarm { - get { - try { - return ((string)(this[this.tableImportARP_tbl.AlarmColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Alarm\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.AlarmColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string PointName { - get { - try { - return ((string)(this[this.tableImportARP_tbl.PointNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'PointName\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.PointNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Type { - get { - try { - return ((string)(this[this.tableImportARP_tbl.TypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Type\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.TypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Value { - get { - try { - return ((string)(this[this.tableImportARP_tbl.ValueColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Value\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.ValueColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportARP_tbl.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemID { - get { - try { - return ((string)(this[this.tableImportARP_tbl.SystemIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemID\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.SystemIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SysTitle { - get { - try { - return ((string)(this[this.tableImportARP_tbl.SysTitleColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SysTitle\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.SysTitleColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDocumentNull() { - return this.IsNull(this.tableImportARP_tbl.DocumentColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDocumentNull() { - this[this.tableImportARP_tbl.DocumentColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAlarmNull() { - return this.IsNull(this.tableImportARP_tbl.AlarmColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAlarmNull() { - this[this.tableImportARP_tbl.AlarmColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsPointNameNull() { - return this.IsNull(this.tableImportARP_tbl.PointNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetPointNameNull() { - this[this.tableImportARP_tbl.PointNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsTypeNull() { - return this.IsNull(this.tableImportARP_tbl.TypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetTypeNull() { - this[this.tableImportARP_tbl.TypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsValueNull() { - return this.IsNull(this.tableImportARP_tbl.ValueColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetValueNull() { - this[this.tableImportARP_tbl.ValueColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportARP_tbl.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportARP_tbl.DescriptionColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemIDNull() { - return this.IsNull(this.tableImportARP_tbl.SystemIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemIDNull() { - this[this.tableImportARP_tbl.SystemIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSysTitleNull() { - return this.IsNull(this.tableImportARP_tbl.SysTitleColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSysTitleNull() { - this[this.tableImportARP_tbl.SysTitleColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportMEL_qryRow : global::System.Data.DataRow { - - private ImportMEL_qryDataTable tableImportMEL_qry; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportMEL_qryRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportMEL_qry = ((ImportMEL_qryDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemID { - get { - try { - return ((string)(this[this.tableImportMEL_qry.SystemIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemID\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.SystemIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.SystemDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.SystemDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ComponentID { - get { - try { - return ((string)(this[this.tableImportMEL_qry.ComponentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ComponentID\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.ComponentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string CompDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.CompDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'CompDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.CompDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string FullName { - get { - try { - return ((string)(this[this.tableImportMEL_qry.FullNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'FullName\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.FullNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ShortName { - get { - try { - return ((string)(this[this.tableImportMEL_qry.ShortNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ShortName\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.ShortNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Room { - get { - try { - return ((string)(this[this.tableImportMEL_qry.RoomColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Room\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.RoomColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportMEL_qry.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string CommonDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.CommonDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'CommonDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.CommonDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemIDNull() { - return this.IsNull(this.tableImportMEL_qry.SystemIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemIDNull() { - this[this.tableImportMEL_qry.SystemIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemDescNull() { - return this.IsNull(this.tableImportMEL_qry.SystemDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemDescNull() { - this[this.tableImportMEL_qry.SystemDescColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsComponentIDNull() { - return this.IsNull(this.tableImportMEL_qry.ComponentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetComponentIDNull() { - this[this.tableImportMEL_qry.ComponentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsCompDescNull() { - return this.IsNull(this.tableImportMEL_qry.CompDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetCompDescNull() { - this[this.tableImportMEL_qry.CompDescColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsFullNameNull() { - return this.IsNull(this.tableImportMEL_qry.FullNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetFullNameNull() { - this[this.tableImportMEL_qry.FullNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsShortNameNull() { - return this.IsNull(this.tableImportMEL_qry.ShortNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetShortNameNull() { - this[this.tableImportMEL_qry.ShortNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRoomNull() { - return this.IsNull(this.tableImportMEL_qry.RoomColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRoomNull() { - this[this.tableImportMEL_qry.RoomColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportMEL_qry.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportMEL_qry.DescriptionColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsCommonDescNull() { - return this.IsNull(this.tableImportMEL_qry.CommonDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetCommonDescNull() { - this[this.tableImportMEL_qry.CommonDescColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportSTP_qryRow : global::System.Data.DataRow { - - private ImportSTP_qryDataTable tableImportSTP_qry; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Parameter { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ParameterColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Parameter\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ParameterColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Name { - get { - try { - return ((string)(this[this.tableImportSTP_qry.NameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Name\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.NameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Value { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ValueColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Value\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ValueColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportSTP_qry.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParameterNull() { - return this.IsNull(this.tableImportSTP_qry.ParameterColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParameterNull() { - this[this.tableImportSTP_qry.ParameterColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsNameNull() { - return this.IsNull(this.tableImportSTP_qry.NameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetNameNull() { - this[this.tableImportSTP_qry.NameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsValueNull() { - return this.IsNull(this.tableImportSTP_qry.ValueColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetValueNull() { - this[this.tableImportSTP_qry.ValueColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportSTP_qry.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportSTP_qry.DescriptionColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportARP_tblRowChangeEvent : global::System.EventArgs { - - private ImportARP_tblRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRowChangeEvent(ImportARP_tblRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportMEL_qryRowChangeEvent : global::System.EventArgs { - - private ImportMEL_qryRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRowChangeEvent(ImportMEL_qryRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportSTP_qryRowChangeEvent : global::System.EventArgs { - - private ImportSTP_qryRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRowChangeEvent(ImportSTP_qryRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - } -} -namespace WestinghouseROImport.ROCPPImportDataSetTableAdapters { - - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportARP_tblTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportARP_tbl"; - tableMapping.ColumnMappings.Add("Document", "Document"); - tableMapping.ColumnMappings.Add("Alarm", "Alarm"); - tableMapping.ColumnMappings.Add("PointName", "PointName"); - tableMapping.ColumnMappings.Add("Type", "Type"); - tableMapping.ColumnMappings.Add("Value", "Value"); - tableMapping.ColumnMappings.Add("Description", "Description"); - tableMapping.ColumnMappings.Add("SystemID", "SystemID"); - tableMapping.ColumnMappings.Add("SysTitle", "SysTitle"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `ImportARP_tbl` (`Document`, `Alarm`, `PointName`, `Type`, `Value`, `" + - "Description`, `SystemID`, `SysTitle`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Document", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Document", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Alarm", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Alarm", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("PointName", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "PointName", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Type", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Type", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Value", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Value", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Description", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Description", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("SystemID", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "SystemID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("SysTitle", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "SysTitle", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROCPPImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT Document, Alarm, PointName, Type, [Value], Description, SystemID, SysTitle" + - " FROM ImportARP_tbl"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROCPPImportDataSet.ImportARP_tblDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROCPPImportDataSet.ImportARP_tblDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROCPPImportDataSet.ImportARP_tblDataTable dataTable = new ROCPPImportDataSet.ImportARP_tblDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROCPPImportDataSet.ImportARP_tblDataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROCPPImportDataSet dataSet) { - return this.Adapter.Update(dataSet, "ImportARP_tbl"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string Document, string Alarm, string PointName, string Type, string Value, string Description, string SystemID, string SysTitle) { - if ((Document == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(Document)); - } - if ((Alarm == null)) { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = ((string)(Alarm)); - } - if ((PointName == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(PointName)); - } - if ((Type == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(Type)); - } - if ((Value == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(Value)); - } - if ((Description == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Description)); - } - if ((SystemID == null)) { - this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[6].Value = ((string)(SystemID)); - } - if ((SysTitle == null)) { - this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[7].Value = ((string)(SysTitle)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportMEL_qryTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportMEL_qry"; - tableMapping.ColumnMappings.Add("SystemID", "SystemID"); - tableMapping.ColumnMappings.Add("SystemDesc", "SystemDesc"); - tableMapping.ColumnMappings.Add("ComponentID", "ComponentID"); - tableMapping.ColumnMappings.Add("CompDesc", "CompDesc"); - tableMapping.ColumnMappings.Add("FullName", "FullName"); - tableMapping.ColumnMappings.Add("ShortName", "ShortName"); - tableMapping.ColumnMappings.Add("Room", "Room"); - tableMapping.ColumnMappings.Add("Description", "Description"); - tableMapping.ColumnMappings.Add("CommonDesc", "CommonDesc"); - this._adapter.TableMappings.Add(tableMapping); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROCPPImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT SystemID, SystemDesc, ComponentID, CompDesc, FullName, ShortName, Room, De" + - "scription, CommonDesc FROM ImportMEL_qry"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROCPPImportDataSet.ImportMEL_qryDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROCPPImportDataSet.ImportMEL_qryDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROCPPImportDataSet.ImportMEL_qryDataTable dataTable = new ROCPPImportDataSet.ImportMEL_qryDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportSTP_qryTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportSTP_qry"; - tableMapping.ColumnMappings.Add("Parameter", "Parameter"); - tableMapping.ColumnMappings.Add("Name", "Name"); - tableMapping.ColumnMappings.Add("Value", "Value"); - tableMapping.ColumnMappings.Add("Description", "Description"); - this._adapter.TableMappings.Add(tableMapping); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROCPPImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROCPPImportDataSet.ImportSTP_qryDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROCPPImportDataSet.ImportSTP_qryDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROCPPImportDataSet.ImportSTP_qryDataTable dataTable = new ROCPPImportDataSet.ImportSTP_qryDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsc b/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsc deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsc +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsd b/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsd deleted file mode 100644 index 59a0689f..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xsd +++ /dev/null @@ -1,283 +0,0 @@ - - - - - - - - - - - - - - - - INSERT INTO `ImportARP_tbl` (`Document`, `Alarm`, `PointName`, `Type`, `Value`, `Description`, `SystemID`, `SysTitle`) VALUES (?, ?, ?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - - - - - SELECT Document, Alarm, PointName, Type, [Value], Description, SystemID, SysTitle FROM ImportARP_tbl - - - - - - - - - - - - - - - - - - - - - - - - - SELECT SystemID, SystemDesc, ComponentID, CompDesc, FullName, ShortName, Room, Description, CommonDesc FROM ImportMEL_qry - - - - - - - - - - - - - - - - - - - - - - - - - - SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xss b/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xss deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROCPPImportDataSet.xss +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.Designer.cs deleted file mode 100644 index d1228337..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.Designer.cs +++ /dev/null @@ -1,2446 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -#pragma warning disable 1591 - -namespace WestinghouseROImport { - - - /// - ///Represents a strongly typed in-memory cache of data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] - [global::System.Xml.Serialization.XmlRootAttribute("ROImportDataSet")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] - public partial class ROImportDataSet : global::System.Data.DataSet { - - private ImportSTP_qryDataTable tableImportSTP_qry; - - private ImportMEL_qryDataTable tableImportMEL_qry; - - private ImportARP_tblDataTable tableImportARP_tbl; - - private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROImportDataSet() { - this.BeginInit(); - this.InitClass(); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - base.Relations.CollectionChanged += schemaChangedHandler; - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROImportDataSet(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context, false) { - if ((this.IsBinarySerialized(info, context) == true)) { - this.InitVars(false); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - this.Tables.CollectionChanged += schemaChangedHandler1; - this.Relations.CollectionChanged += schemaChangedHandler1; - return; - } - string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); - if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - if ((ds.Tables["ImportMEL_qry"] != null)) { - base.Tables.Add(new ImportMEL_qryDataTable(ds.Tables["ImportMEL_qry"])); - } - if ((ds.Tables["ImportARP_tbl"] != null)) { - base.Tables.Add(new ImportARP_tblDataTable(ds.Tables["ImportARP_tbl"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - } - this.GetSerializationData(info, context); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - this.Relations.CollectionChanged += schemaChangedHandler; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportSTP_qryDataTable ImportSTP_qry { - get { - return this.tableImportSTP_qry; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportMEL_qryDataTable ImportMEL_qry { - get { - return this.tableImportMEL_qry; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportARP_tblDataTable ImportARP_tbl { - get { - return this.tableImportARP_tbl; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.BrowsableAttribute(true)] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] - public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { - get { - return this._schemaSerializationMode; - } - set { - this._schemaSerializationMode = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataTableCollection Tables { - get { - return base.Tables; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataRelationCollection Relations { - get { - return base.Relations; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void InitializeDerivedDataSet() { - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataSet Clone() { - ROImportDataSet cln = ((ROImportDataSet)(base.Clone())); - cln.InitVars(); - cln.SchemaSerializationMode = this.SchemaSerializationMode; - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeTables() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeRelations() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { - if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - this.Reset(); - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXml(reader); - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - if ((ds.Tables["ImportMEL_qry"] != null)) { - base.Tables.Add(new ImportMEL_qryDataTable(ds.Tables["ImportMEL_qry"])); - } - if ((ds.Tables["ImportARP_tbl"] != null)) { - base.Tables.Add(new ImportARP_tblDataTable(ds.Tables["ImportARP_tbl"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXml(reader); - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { - global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); - this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); - stream.Position = 0; - return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.InitVars(true); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars(bool initTable) { - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(base.Tables["ImportSTP_qry"])); - if ((initTable == true)) { - if ((this.tableImportSTP_qry != null)) { - this.tableImportSTP_qry.InitVars(); - } - } - this.tableImportMEL_qry = ((ImportMEL_qryDataTable)(base.Tables["ImportMEL_qry"])); - if ((initTable == true)) { - if ((this.tableImportMEL_qry != null)) { - this.tableImportMEL_qry.InitVars(); - } - } - this.tableImportARP_tbl = ((ImportARP_tblDataTable)(base.Tables["ImportARP_tbl"])); - if ((initTable == true)) { - if ((this.tableImportARP_tbl != null)) { - this.tableImportARP_tbl.InitVars(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.DataSetName = "ROImportDataSet"; - this.Prefix = ""; - this.Namespace = "http://tempuri.org/ROImportDataSet.xsd"; - this.EnforceConstraints = true; - this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - this.tableImportSTP_qry = new ImportSTP_qryDataTable(); - base.Tables.Add(this.tableImportSTP_qry); - this.tableImportMEL_qry = new ImportMEL_qryDataTable(); - base.Tables.Add(this.tableImportMEL_qry); - this.tableImportARP_tbl = new ImportARP_tblDataTable(); - base.Tables.Add(this.tableImportARP_tbl); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportSTP_qry() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportMEL_qry() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportARP_tbl() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { - if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); - any.Namespace = ds.Namespace; - sequence.Items.Add(any); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - - public delegate void ImportSTP_qryRowChangeEventHandler(object sender, ImportSTP_qryRowChangeEvent e); - - public delegate void ImportMEL_qryRowChangeEventHandler(object sender, ImportMEL_qryRowChangeEvent e); - - public delegate void ImportARP_tblRowChangeEventHandler(object sender, ImportARP_tblRowChangeEvent e); - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportSTP_qryDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnParameter; - - private global::System.Data.DataColumn columnName; - - private global::System.Data.DataColumn columnValue; - - private global::System.Data.DataColumn columnDescription; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryDataTable() { - this.TableName = "ImportSTP_qry"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportSTP_qryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParameterColumn { - get { - return this.columnParameter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn NameColumn { - get { - return this.columnName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ValueColumn { - get { - return this.columnValue; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow this[int index] { - get { - return ((ImportSTP_qryRow)(this.Rows[index])); - } - } - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanging; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanged; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleting; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow AddImportSTP_qryRow(string Parameter, string Name, string Value, string Description) { - ImportSTP_qryRow rowImportSTP_qryRow = ((ImportSTP_qryRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - Parameter, - Name, - Value, - Description}; - rowImportSTP_qryRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportSTP_qryRow); - return rowImportSTP_qryRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportSTP_qryDataTable cln = ((ImportSTP_qryDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportSTP_qryDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnParameter = base.Columns["Parameter"]; - this.columnName = base.Columns["Name"]; - this.columnValue = base.Columns["Value"]; - this.columnDescription = base.Columns["Description"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnParameter = new global::System.Data.DataColumn("Parameter", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParameter); - this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnName); - this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnValue); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnParameter.MaxLength = 255; - this.columnName.MaxLength = 255; - this.columnValue.MaxLength = 255; - this.columnDescription.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow NewImportSTP_qryRow() { - return ((ImportSTP_qryRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportSTP_qryRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportSTP_qryRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportSTP_qryRowChanged != null)) { - this.ImportSTP_qryRowChanged(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportSTP_qryRowChanging != null)) { - this.ImportSTP_qryRowChanging(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportSTP_qryRowDeleted != null)) { - this.ImportSTP_qryRowDeleted(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportSTP_qryRowDeleting != null)) { - this.ImportSTP_qryRowDeleting(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportSTP_qryDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportMEL_qryDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnSystemID; - - private global::System.Data.DataColumn columnSystemDesc; - - private global::System.Data.DataColumn columnComponentID; - - private global::System.Data.DataColumn columnCompDesc; - - private global::System.Data.DataColumn columnFullName; - - private global::System.Data.DataColumn columnShortName; - - private global::System.Data.DataColumn columnRoom; - - private global::System.Data.DataColumn columnDescription; - - private global::System.Data.DataColumn columnCommonDesc; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryDataTable() { - this.TableName = "ImportMEL_qry"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportMEL_qryDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportMEL_qryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemIDColumn { - get { - return this.columnSystemID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemDescColumn { - get { - return this.columnSystemDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ComponentIDColumn { - get { - return this.columnComponentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn CompDescColumn { - get { - return this.columnCompDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn FullNameColumn { - get { - return this.columnFullName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ShortNameColumn { - get { - return this.columnShortName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RoomColumn { - get { - return this.columnRoom; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn CommonDescColumn { - get { - return this.columnCommonDesc; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow this[int index] { - get { - return ((ImportMEL_qryRow)(this.Rows[index])); - } - } - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowChanging; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowChanged; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowDeleting; - - public event ImportMEL_qryRowChangeEventHandler ImportMEL_qryRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportMEL_qryRow(ImportMEL_qryRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow AddImportMEL_qryRow(string SystemID, string SystemDesc, string ComponentID, string CompDesc, string FullName, string ShortName, string Room, string Description, string CommonDesc) { - ImportMEL_qryRow rowImportMEL_qryRow = ((ImportMEL_qryRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - SystemID, - SystemDesc, - ComponentID, - CompDesc, - FullName, - ShortName, - Room, - Description, - CommonDesc}; - rowImportMEL_qryRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportMEL_qryRow); - return rowImportMEL_qryRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportMEL_qryDataTable cln = ((ImportMEL_qryDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportMEL_qryDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnSystemID = base.Columns["SystemID"]; - this.columnSystemDesc = base.Columns["SystemDesc"]; - this.columnComponentID = base.Columns["ComponentID"]; - this.columnCompDesc = base.Columns["CompDesc"]; - this.columnFullName = base.Columns["FullName"]; - this.columnShortName = base.Columns["ShortName"]; - this.columnRoom = base.Columns["Room"]; - this.columnDescription = base.Columns["Description"]; - this.columnCommonDesc = base.Columns["CommonDesc"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnSystemID = new global::System.Data.DataColumn("SystemID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemID); - this.columnSystemDesc = new global::System.Data.DataColumn("SystemDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemDesc); - this.columnComponentID = new global::System.Data.DataColumn("ComponentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnComponentID); - this.columnCompDesc = new global::System.Data.DataColumn("CompDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnCompDesc); - this.columnFullName = new global::System.Data.DataColumn("FullName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnFullName); - this.columnShortName = new global::System.Data.DataColumn("ShortName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnShortName); - this.columnRoom = new global::System.Data.DataColumn("Room", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRoom); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnCommonDesc = new global::System.Data.DataColumn("CommonDesc", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnCommonDesc); - this.columnSystemID.ReadOnly = true; - this.columnSystemID.MaxLength = 255; - this.columnSystemDesc.MaxLength = 255; - this.columnComponentID.ReadOnly = true; - this.columnComponentID.MaxLength = 255; - this.columnCompDesc.MaxLength = 255; - this.columnFullName.MaxLength = 255; - this.columnShortName.MaxLength = 255; - this.columnRoom.MaxLength = 255; - this.columnDescription.MaxLength = 255; - this.columnCommonDesc.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow NewImportMEL_qryRow() { - return ((ImportMEL_qryRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportMEL_qryRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportMEL_qryRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportMEL_qryRowChanged != null)) { - this.ImportMEL_qryRowChanged(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportMEL_qryRowChanging != null)) { - this.ImportMEL_qryRowChanging(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportMEL_qryRowDeleted != null)) { - this.ImportMEL_qryRowDeleted(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportMEL_qryRowDeleting != null)) { - this.ImportMEL_qryRowDeleting(this, new ImportMEL_qryRowChangeEvent(((ImportMEL_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportMEL_qryRow(ImportMEL_qryRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportMEL_qryDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportARP_tblDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnDocument; - - private global::System.Data.DataColumn columnAlarm; - - private global::System.Data.DataColumn columnPointName; - - private global::System.Data.DataColumn columnType; - - private global::System.Data.DataColumn columnValue; - - private global::System.Data.DataColumn columnDescription; - - private global::System.Data.DataColumn columnSystemID; - - private global::System.Data.DataColumn columnSysTitle; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblDataTable() { - this.TableName = "ImportARP_tbl"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportARP_tblDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportARP_tblDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DocumentColumn { - get { - return this.columnDocument; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AlarmColumn { - get { - return this.columnAlarm; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn PointNameColumn { - get { - return this.columnPointName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn TypeColumn { - get { - return this.columnType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ValueColumn { - get { - return this.columnValue; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SystemIDColumn { - get { - return this.columnSystemID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn SysTitleColumn { - get { - return this.columnSysTitle; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow this[int index] { - get { - return ((ImportARP_tblRow)(this.Rows[index])); - } - } - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowChanging; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowChanged; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowDeleting; - - public event ImportARP_tblRowChangeEventHandler ImportARP_tblRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportARP_tblRow(ImportARP_tblRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow AddImportARP_tblRow(string Document, string Alarm, string PointName, string Type, string Value, string Description, string SystemID, string SysTitle) { - ImportARP_tblRow rowImportARP_tblRow = ((ImportARP_tblRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - Document, - Alarm, - PointName, - Type, - Value, - Description, - SystemID, - SysTitle}; - rowImportARP_tblRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportARP_tblRow); - return rowImportARP_tblRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportARP_tblDataTable cln = ((ImportARP_tblDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportARP_tblDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnDocument = base.Columns["Document"]; - this.columnAlarm = base.Columns["Alarm"]; - this.columnPointName = base.Columns["PointName"]; - this.columnType = base.Columns["Type"]; - this.columnValue = base.Columns["Value"]; - this.columnDescription = base.Columns["Description"]; - this.columnSystemID = base.Columns["SystemID"]; - this.columnSysTitle = base.Columns["SysTitle"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnDocument = new global::System.Data.DataColumn("Document", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDocument); - this.columnAlarm = new global::System.Data.DataColumn("Alarm", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAlarm); - this.columnPointName = new global::System.Data.DataColumn("PointName", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnPointName); - this.columnType = new global::System.Data.DataColumn("Type", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnType); - this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnValue); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnSystemID = new global::System.Data.DataColumn("SystemID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSystemID); - this.columnSysTitle = new global::System.Data.DataColumn("SysTitle", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnSysTitle); - this.columnDocument.MaxLength = 255; - this.columnAlarm.MaxLength = 255; - this.columnPointName.MaxLength = 255; - this.columnType.MaxLength = 255; - this.columnValue.MaxLength = 255; - this.columnDescription.MaxLength = 255; - this.columnSystemID.MaxLength = 255; - this.columnSysTitle.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow NewImportARP_tblRow() { - return ((ImportARP_tblRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportARP_tblRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportARP_tblRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportARP_tblRowChanged != null)) { - this.ImportARP_tblRowChanged(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportARP_tblRowChanging != null)) { - this.ImportARP_tblRowChanging(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportARP_tblRowDeleted != null)) { - this.ImportARP_tblRowDeleted(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportARP_tblRowDeleting != null)) { - this.ImportARP_tblRowDeleting(this, new ImportARP_tblRowChangeEvent(((ImportARP_tblRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportARP_tblRow(ImportARP_tblRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportARP_tblDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportSTP_qryRow : global::System.Data.DataRow { - - private ImportSTP_qryDataTable tableImportSTP_qry; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Parameter { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ParameterColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Parameter\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ParameterColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Name { - get { - try { - return ((string)(this[this.tableImportSTP_qry.NameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Name\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.NameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Value { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ValueColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Value\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ValueColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportSTP_qry.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParameterNull() { - return this.IsNull(this.tableImportSTP_qry.ParameterColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParameterNull() { - this[this.tableImportSTP_qry.ParameterColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsNameNull() { - return this.IsNull(this.tableImportSTP_qry.NameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetNameNull() { - this[this.tableImportSTP_qry.NameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsValueNull() { - return this.IsNull(this.tableImportSTP_qry.ValueColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetValueNull() { - this[this.tableImportSTP_qry.ValueColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportSTP_qry.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportSTP_qry.DescriptionColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportMEL_qryRow : global::System.Data.DataRow { - - private ImportMEL_qryDataTable tableImportMEL_qry; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportMEL_qryRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportMEL_qry = ((ImportMEL_qryDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemID { - get { - try { - return ((string)(this[this.tableImportMEL_qry.SystemIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemID\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.SystemIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.SystemDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.SystemDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ComponentID { - get { - try { - return ((string)(this[this.tableImportMEL_qry.ComponentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ComponentID\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.ComponentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string CompDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.CompDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'CompDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.CompDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string FullName { - get { - try { - return ((string)(this[this.tableImportMEL_qry.FullNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'FullName\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.FullNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ShortName { - get { - try { - return ((string)(this[this.tableImportMEL_qry.ShortNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ShortName\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.ShortNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Room { - get { - try { - return ((string)(this[this.tableImportMEL_qry.RoomColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Room\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.RoomColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportMEL_qry.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string CommonDesc { - get { - try { - return ((string)(this[this.tableImportMEL_qry.CommonDescColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'CommonDesc\' in table \'ImportMEL_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportMEL_qry.CommonDescColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemIDNull() { - return this.IsNull(this.tableImportMEL_qry.SystemIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemIDNull() { - this[this.tableImportMEL_qry.SystemIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemDescNull() { - return this.IsNull(this.tableImportMEL_qry.SystemDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemDescNull() { - this[this.tableImportMEL_qry.SystemDescColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsComponentIDNull() { - return this.IsNull(this.tableImportMEL_qry.ComponentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetComponentIDNull() { - this[this.tableImportMEL_qry.ComponentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsCompDescNull() { - return this.IsNull(this.tableImportMEL_qry.CompDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetCompDescNull() { - this[this.tableImportMEL_qry.CompDescColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsFullNameNull() { - return this.IsNull(this.tableImportMEL_qry.FullNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetFullNameNull() { - this[this.tableImportMEL_qry.FullNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsShortNameNull() { - return this.IsNull(this.tableImportMEL_qry.ShortNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetShortNameNull() { - this[this.tableImportMEL_qry.ShortNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRoomNull() { - return this.IsNull(this.tableImportMEL_qry.RoomColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRoomNull() { - this[this.tableImportMEL_qry.RoomColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportMEL_qry.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportMEL_qry.DescriptionColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsCommonDescNull() { - return this.IsNull(this.tableImportMEL_qry.CommonDescColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetCommonDescNull() { - this[this.tableImportMEL_qry.CommonDescColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportARP_tblRow : global::System.Data.DataRow { - - private ImportARP_tblDataTable tableImportARP_tbl; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportARP_tblRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportARP_tbl = ((ImportARP_tblDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Document { - get { - try { - return ((string)(this[this.tableImportARP_tbl.DocumentColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Document\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.DocumentColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Alarm { - get { - try { - return ((string)(this[this.tableImportARP_tbl.AlarmColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Alarm\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.AlarmColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string PointName { - get { - try { - return ((string)(this[this.tableImportARP_tbl.PointNameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'PointName\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.PointNameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Type { - get { - try { - return ((string)(this[this.tableImportARP_tbl.TypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Type\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.TypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Value { - get { - try { - return ((string)(this[this.tableImportARP_tbl.ValueColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Value\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.ValueColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportARP_tbl.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SystemID { - get { - try { - return ((string)(this[this.tableImportARP_tbl.SystemIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SystemID\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.SystemIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string SysTitle { - get { - try { - return ((string)(this[this.tableImportARP_tbl.SysTitleColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'SysTitle\' in table \'ImportARP_tbl\' is DBNull.", e); - } - } - set { - this[this.tableImportARP_tbl.SysTitleColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDocumentNull() { - return this.IsNull(this.tableImportARP_tbl.DocumentColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDocumentNull() { - this[this.tableImportARP_tbl.DocumentColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAlarmNull() { - return this.IsNull(this.tableImportARP_tbl.AlarmColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAlarmNull() { - this[this.tableImportARP_tbl.AlarmColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsPointNameNull() { - return this.IsNull(this.tableImportARP_tbl.PointNameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetPointNameNull() { - this[this.tableImportARP_tbl.PointNameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsTypeNull() { - return this.IsNull(this.tableImportARP_tbl.TypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetTypeNull() { - this[this.tableImportARP_tbl.TypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsValueNull() { - return this.IsNull(this.tableImportARP_tbl.ValueColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetValueNull() { - this[this.tableImportARP_tbl.ValueColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportARP_tbl.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportARP_tbl.DescriptionColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSystemIDNull() { - return this.IsNull(this.tableImportARP_tbl.SystemIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSystemIDNull() { - this[this.tableImportARP_tbl.SystemIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsSysTitleNull() { - return this.IsNull(this.tableImportARP_tbl.SysTitleColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetSysTitleNull() { - this[this.tableImportARP_tbl.SysTitleColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportSTP_qryRowChangeEvent : global::System.EventArgs { - - private ImportSTP_qryRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRowChangeEvent(ImportSTP_qryRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportMEL_qryRowChangeEvent : global::System.EventArgs { - - private ImportMEL_qryRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRowChangeEvent(ImportMEL_qryRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportARP_tblRowChangeEvent : global::System.EventArgs { - - private ImportARP_tblRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRowChangeEvent(ImportARP_tblRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - } -} -namespace WestinghouseROImport.ROImportDataSetTableAdapters { - - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportSTP_qryTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportSTP_qry"; - tableMapping.ColumnMappings.Add("Parameter", "Parameter"); - tableMapping.ColumnMappings.Add("Name", "Name"); - tableMapping.ColumnMappings.Add("Value", "Value"); - tableMapping.ColumnMappings.Add("Description", "Description"); - this._adapter.TableMappings.Add(tableMapping); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROImportDataSet.ImportSTP_qryDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROImportDataSet.ImportSTP_qryDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROImportDataSet.ImportSTP_qryDataTable dataTable = new ROImportDataSet.ImportSTP_qryDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportMEL_qryTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportMEL_qryTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportMEL_qry"; - tableMapping.ColumnMappings.Add("SystemID", "SystemID"); - tableMapping.ColumnMappings.Add("SystemDesc", "SystemDesc"); - tableMapping.ColumnMappings.Add("ComponentID", "ComponentID"); - tableMapping.ColumnMappings.Add("CompDesc", "CompDesc"); - tableMapping.ColumnMappings.Add("FullName", "FullName"); - tableMapping.ColumnMappings.Add("ShortName", "ShortName"); - tableMapping.ColumnMappings.Add("Room", "Room"); - tableMapping.ColumnMappings.Add("Description", "Description"); - tableMapping.ColumnMappings.Add("CommonDesc", "CommonDesc"); - this._adapter.TableMappings.Add(tableMapping); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT SystemID, SystemDesc, ComponentID, CompDesc, FullName, ShortName, Room, De" + - "scription, CommonDesc FROM ImportMEL_qry"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROImportDataSet.ImportMEL_qryDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROImportDataSet.ImportMEL_qryDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROImportDataSet.ImportMEL_qryDataTable dataTable = new ROImportDataSet.ImportMEL_qryDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportARP_tblTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportARP_tblTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportARP_tbl"; - tableMapping.ColumnMappings.Add("Document", "Document"); - tableMapping.ColumnMappings.Add("Alarm", "Alarm"); - tableMapping.ColumnMappings.Add("PointName", "PointName"); - tableMapping.ColumnMappings.Add("Type", "Type"); - tableMapping.ColumnMappings.Add("Value", "Value"); - tableMapping.ColumnMappings.Add("Description", "Description"); - tableMapping.ColumnMappings.Add("SystemID", "SystemID"); - tableMapping.ColumnMappings.Add("SysTitle", "SysTitle"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `ImportARP_tbl` (`Document`, `Alarm`, `PointName`, `Type`, `Value`, `" + - "Description`, `SystemID`, `SysTitle`) VALUES (?, ?, ?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Document", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Document", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Alarm", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Alarm", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("PointName", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "PointName", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Type", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Type", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Value", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Value", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Description", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Description", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("SystemID", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "SystemID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("SysTitle", global::System.Data.OleDb.OleDbType.VarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "SysTitle", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT Document, Alarm, PointName, Type, [Value], Description, SystemID, S" + - "ysTitle\r\nFROM ImportARP_tbl"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROImportDataSet.ImportARP_tblDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROImportDataSet.ImportARP_tblDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROImportDataSet.ImportARP_tblDataTable dataTable = new ROImportDataSet.ImportARP_tblDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROImportDataSet.ImportARP_tblDataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROImportDataSet dataSet) { - return this.Adapter.Update(dataSet, "ImportARP_tbl"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string Document, string Alarm, string PointName, string Type, string Value, string Description, string SystemID, string SysTitle) { - if ((Document == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(Document)); - } - if ((Alarm == null)) { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = ((string)(Alarm)); - } - if ((PointName == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(PointName)); - } - if ((Type == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(Type)); - } - if ((Value == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(Value)); - } - if ((Description == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Description)); - } - if ((SystemID == null)) { - this.Adapter.InsertCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[6].Value = ((string)(SystemID)); - } - if ((SysTitle == null)) { - this.Adapter.InsertCommand.Parameters[7].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[7].Value = ((string)(SysTitle)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.cs b/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.cs deleted file mode 100644 index 7cb33e42..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.cs +++ /dev/null @@ -1,6 +0,0 @@ -namespace WestinghouseROImport { - - - public partial class ROImportDataSet { - } -} diff --git a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsc b/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsc deleted file mode 100644 index 5dbde4a4..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsc +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsd b/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsd deleted file mode 100644 index a95a6d33..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xsd +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - - - - - - - - SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry - - - - - - - - - - - - - - - - - - - - - SELECT SystemID, SystemDesc, ComponentID, CompDesc, FullName, ShortName, Room, Description, CommonDesc FROM ImportMEL_qry - - - - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO `ImportARP_tbl` (`Document`, `Alarm`, `PointName`, `Type`, `Value`, `Description`, `SystemID`, `SysTitle`) VALUES (?, ?, ?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - - - - - SELECT Document, Alarm, PointName, Type, [Value], Description, SystemID, SysTitle -FROM ImportARP_tbl - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xss b/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xss deleted file mode 100644 index 9c718d02..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROImportDataSet.xss +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.Designer.cs deleted file mode 100644 index df250bfd..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.Designer.cs +++ /dev/null @@ -1,3816 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -#pragma warning disable 1591 - -namespace WestinghouseROImport { - - - /// - ///Represents a strongly typed in-memory cache of data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] - [global::System.Xml.Serialization.XmlRootAttribute("ROMasterDataSet")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] - public partial class ROMasterDataSet : global::System.Data.DataSet { - - private RO000002DataTable tableRO000002; - - private RO000003DataTable tableRO000003; - - private RO000004DataTable tableRO000004; - - private ROMASTERDataTable tableROMASTER; - - private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMasterDataSet() { - this.BeginInit(); - this.InitClass(); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - base.Relations.CollectionChanged += schemaChangedHandler; - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROMasterDataSet(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context, false) { - if ((this.IsBinarySerialized(info, context) == true)) { - this.InitVars(false); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - this.Tables.CollectionChanged += schemaChangedHandler1; - this.Relations.CollectionChanged += schemaChangedHandler1; - return; - } - string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); - if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - if ((ds.Tables["RO000002"] != null)) { - base.Tables.Add(new RO000002DataTable(ds.Tables["RO000002"])); - } - if ((ds.Tables["RO000003"] != null)) { - base.Tables.Add(new RO000003DataTable(ds.Tables["RO000003"])); - } - if ((ds.Tables["RO000004"] != null)) { - base.Tables.Add(new RO000004DataTable(ds.Tables["RO000004"])); - } - if ((ds.Tables["ROMASTER"] != null)) { - base.Tables.Add(new ROMASTERDataTable(ds.Tables["ROMASTER"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - } - this.GetSerializationData(info, context); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - this.Relations.CollectionChanged += schemaChangedHandler; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000002DataTable RO000002 { - get { - return this.tableRO000002; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000003DataTable RO000003 { - get { - return this.tableRO000003; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000004DataTable RO000004 { - get { - return this.tableRO000004; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ROMASTERDataTable ROMASTER { - get { - return this.tableROMASTER; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.BrowsableAttribute(true)] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] - public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { - get { - return this._schemaSerializationMode; - } - set { - this._schemaSerializationMode = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataTableCollection Tables { - get { - return base.Tables; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataRelationCollection Relations { - get { - return base.Relations; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void InitializeDerivedDataSet() { - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataSet Clone() { - ROMasterDataSet cln = ((ROMasterDataSet)(base.Clone())); - cln.InitVars(); - cln.SchemaSerializationMode = this.SchemaSerializationMode; - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeTables() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeRelations() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { - if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - this.Reset(); - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXml(reader); - if ((ds.Tables["RO000002"] != null)) { - base.Tables.Add(new RO000002DataTable(ds.Tables["RO000002"])); - } - if ((ds.Tables["RO000003"] != null)) { - base.Tables.Add(new RO000003DataTable(ds.Tables["RO000003"])); - } - if ((ds.Tables["RO000004"] != null)) { - base.Tables.Add(new RO000004DataTable(ds.Tables["RO000004"])); - } - if ((ds.Tables["ROMASTER"] != null)) { - base.Tables.Add(new ROMASTERDataTable(ds.Tables["ROMASTER"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXml(reader); - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { - global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); - this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); - stream.Position = 0; - return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.InitVars(true); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars(bool initTable) { - this.tableRO000002 = ((RO000002DataTable)(base.Tables["RO000002"])); - if ((initTable == true)) { - if ((this.tableRO000002 != null)) { - this.tableRO000002.InitVars(); - } - } - this.tableRO000003 = ((RO000003DataTable)(base.Tables["RO000003"])); - if ((initTable == true)) { - if ((this.tableRO000003 != null)) { - this.tableRO000003.InitVars(); - } - } - this.tableRO000004 = ((RO000004DataTable)(base.Tables["RO000004"])); - if ((initTable == true)) { - if ((this.tableRO000004 != null)) { - this.tableRO000004.InitVars(); - } - } - this.tableROMASTER = ((ROMASTERDataTable)(base.Tables["ROMASTER"])); - if ((initTable == true)) { - if ((this.tableROMASTER != null)) { - this.tableROMASTER.InitVars(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.DataSetName = "ROMasterDataSet"; - this.Prefix = ""; - this.Namespace = "http://tempuri.org/ROMasterDataSet.xsd"; - this.EnforceConstraints = true; - this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - this.tableRO000002 = new RO000002DataTable(); - base.Tables.Add(this.tableRO000002); - this.tableRO000003 = new RO000003DataTable(); - base.Tables.Add(this.tableRO000003); - this.tableRO000004 = new RO000004DataTable(); - base.Tables.Add(this.tableRO000004); - this.tableROMASTER = new ROMASTERDataTable(); - base.Tables.Add(this.tableROMASTER); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000002() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000003() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000004() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeROMASTER() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { - if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); - any.Namespace = ds.Namespace; - sequence.Items.Add(any); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - - public delegate void RO000002RowChangeEventHandler(object sender, RO000002RowChangeEvent e); - - public delegate void RO000003RowChangeEventHandler(object sender, RO000003RowChangeEvent e); - - public delegate void RO000004RowChangeEventHandler(object sender, RO000004RowChangeEvent e); - - public delegate void ROMASTERRowChangeEventHandler(object sender, ROMASTERRowChangeEvent e); - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000002DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002DataTable() { - this.TableName = "RO000002"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000002DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000002DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row this[int index] { - get { - return ((RO000002Row)(this.Rows[index])); - } - } - - public event RO000002RowChangeEventHandler RO000002RowChanging; - - public event RO000002RowChangeEventHandler RO000002RowChanged; - - public event RO000002RowChangeEventHandler RO000002RowDeleting; - - public event RO000002RowChangeEventHandler RO000002RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000002Row(RO000002Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row AddRO000002Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000002Row rowRO000002Row = ((RO000002Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000002Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000002Row); - return rowRO000002Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row FindByRecID(string RecID) { - return ((RO000002Row)(this.Rows.Find(new object[] { - RecID}))); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000002DataTable cln = ((RO000002DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000002DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { - this.columnRecID}, true)); - this.columnRecID.AllowDBNull = false; - this.columnRecID.Unique = true; - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row NewRO000002Row() { - return ((RO000002Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000002Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000002Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000002RowChanged != null)) { - this.RO000002RowChanged(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000002RowChanging != null)) { - this.RO000002RowChanging(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000002RowDeleted != null)) { - this.RO000002RowDeleted(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000002RowDeleting != null)) { - this.RO000002RowDeleting(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000002Row(RO000002Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000002DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000003DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003DataTable() { - this.TableName = "RO000003"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000003DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000003DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row this[int index] { - get { - return ((RO000003Row)(this.Rows[index])); - } - } - - public event RO000003RowChangeEventHandler RO000003RowChanging; - - public event RO000003RowChangeEventHandler RO000003RowChanged; - - public event RO000003RowChangeEventHandler RO000003RowDeleting; - - public event RO000003RowChangeEventHandler RO000003RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000003Row(RO000003Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row AddRO000003Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000003Row rowRO000003Row = ((RO000003Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000003Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000003Row); - return rowRO000003Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row FindByRecID(string RecID) { - return ((RO000003Row)(this.Rows.Find(new object[] { - RecID}))); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000003DataTable cln = ((RO000003DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000003DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { - this.columnRecID}, true)); - this.columnRecID.AllowDBNull = false; - this.columnRecID.Unique = true; - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row NewRO000003Row() { - return ((RO000003Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000003Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000003Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000003RowChanged != null)) { - this.RO000003RowChanged(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000003RowChanging != null)) { - this.RO000003RowChanging(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000003RowDeleted != null)) { - this.RO000003RowDeleted(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000003RowDeleting != null)) { - this.RO000003RowDeleting(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000003Row(RO000003Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000003DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000004DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004DataTable() { - this.TableName = "RO000004"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000004DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000004DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row this[int index] { - get { - return ((RO000004Row)(this.Rows[index])); - } - } - - public event RO000004RowChangeEventHandler RO000004RowChanging; - - public event RO000004RowChangeEventHandler RO000004RowChanged; - - public event RO000004RowChangeEventHandler RO000004RowDeleting; - - public event RO000004RowChangeEventHandler RO000004RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000004Row(RO000004Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row AddRO000004Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000004Row rowRO000004Row = ((RO000004Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000004Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000004Row); - return rowRO000004Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row FindByRecID(string RecID) { - return ((RO000004Row)(this.Rows.Find(new object[] { - RecID}))); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000004DataTable cln = ((RO000004DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000004DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { - this.columnRecID}, true)); - this.columnRecID.AllowDBNull = false; - this.columnRecID.Unique = true; - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row NewRO000004Row() { - return ((RO000004Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000004Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000004Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000004RowChanged != null)) { - this.RO000004RowChanged(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000004RowChanging != null)) { - this.RO000004RowChanging(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000004RowDeleted != null)) { - this.RO000004RowDeleted(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000004RowDeleting != null)) { - this.RO000004RowDeleting(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000004Row(RO000004Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000004DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ROMASTERDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERDataTable() { - this.TableName = "ROMASTER"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ROMASTERDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROMASTERDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow this[int index] { - get { - return ((ROMASTERRow)(this.Rows[index])); - } - } - - public event ROMASTERRowChangeEventHandler ROMASTERRowChanging; - - public event ROMASTERRowChangeEventHandler ROMASTERRowChanged; - - public event ROMASTERRowChangeEventHandler ROMASTERRowDeleting; - - public event ROMASTERRowChangeEventHandler ROMASTERRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddROMASTERRow(ROMASTERRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow AddROMASTERRow(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - ROMASTERRow rowROMASTERRow = ((ROMASTERRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowROMASTERRow.ItemArray = columnValuesArray; - this.Rows.Add(rowROMASTERRow); - return rowROMASTERRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow FindByRecID(string RecID) { - return ((ROMASTERRow)(this.Rows.Find(new object[] { - RecID}))); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ROMASTERDataTable cln = ((ROMASTERDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ROMASTERDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.Constraints.Add(new global::System.Data.UniqueConstraint("Constraint1", new global::System.Data.DataColumn[] { - this.columnRecID}, true)); - this.columnRecID.AllowDBNull = false; - this.columnRecID.Unique = true; - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow NewROMASTERRow() { - return ((ROMASTERRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ROMASTERRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ROMASTERRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ROMASTERRowChanged != null)) { - this.ROMASTERRowChanged(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ROMASTERRowChanging != null)) { - this.ROMASTERRowChanging(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ROMASTERRowDeleted != null)) { - this.ROMASTERRowDeleted(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ROMASTERRowDeleting != null)) { - this.ROMASTERRowDeleting(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveROMASTERRow(ROMASTERRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ROMASTERDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000002Row : global::System.Data.DataRow { - - private RO000002DataTable tableRO000002; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000002Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000002 = ((RO000002DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - return ((string)(this[this.tableRO000002.RecIDColumn])); - } - set { - this[this.tableRO000002.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000002.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000002.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000002.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000002.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000002.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000002.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000002.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000002.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000002.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000002.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000002.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000002.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000002.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000002.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000002.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000003Row : global::System.Data.DataRow { - - private RO000003DataTable tableRO000003; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000003Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000003 = ((RO000003DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - return ((string)(this[this.tableRO000003.RecIDColumn])); - } - set { - this[this.tableRO000003.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000003.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000003.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000003.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000003.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000003.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000003.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000003.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000003.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000003.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000003.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000003.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000003.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000003.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000003.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000003.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000004Row : global::System.Data.DataRow { - - private RO000004DataTable tableRO000004; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000004Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000004 = ((RO000004DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - return ((string)(this[this.tableRO000004.RecIDColumn])); - } - set { - this[this.tableRO000004.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000004.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000004.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000004.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000004.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000004.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000004.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000004.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000004.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000004.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000004.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000004.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000004.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000004.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000004.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000004.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ROMASTERRow : global::System.Data.DataRow { - - private ROMASTERDataTable tableROMASTER; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ROMASTERRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableROMASTER = ((ROMASTERDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - return ((string)(this[this.tableROMASTER.RecIDColumn])); - } - set { - this[this.tableROMASTER.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableROMASTER.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableROMASTER.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableROMASTER.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableROMASTER.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableROMASTER.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableROMASTER.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableROMASTER.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableROMASTER.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableROMASTER.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableROMASTER.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableROMASTER.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableROMASTER.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableROMASTER.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableROMASTER.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableROMASTER.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000002RowChangeEvent : global::System.EventArgs { - - private RO000002Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002RowChangeEvent(RO000002Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000003RowChangeEvent : global::System.EventArgs { - - private RO000003Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003RowChangeEvent(RO000003Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000004RowChangeEvent : global::System.EventArgs { - - private RO000004Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004RowChangeEvent(RO000004Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ROMASTERRowChangeEvent : global::System.EventArgs { - - private ROMASTERRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRowChangeEvent(ROMASTERRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - } -} -namespace WestinghouseROImport.ROMasterDataSetTableAdapters { - - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000002TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000002"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.DeleteCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.DeleteCommand.Connection = this.Connection; - this._adapter.DeleteCommand.CommandText = "DELETE FROM RO000002\r\nWHERE (RecID = ?)"; - this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 8, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000002` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.UpdateCommand.Connection = this.Connection; - this._adapter.UpdateCommand.CommandText = "UPDATE RO000002\r\nSET RecType = ?, ParentID = ?, AccPageID = " + - "?, ModDateTime = ?, Info = ?\r\nWHERE (RecID = ?)"; - this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 8, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 32, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 14, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.WChar, 1024, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecID", global::System.Data.OleDb.OleDbType.WChar, 8, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info\r\nFROM " + - " RO000002\r\nORDER BY RecID"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000002DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000002DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000002DataTable dataTable = new ROMasterDataSet.RO000002DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000002DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000002"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] - public virtual int Delete(string RecID) { - if ((RecID == null)) { - this.Adapter.DeleteCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(RecID)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; - if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.DeleteCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.DeleteCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID) { - if ((RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[0].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[1].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(Info)); - } - if ((Original_RecID == null)) { - this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Original_RecID)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; - if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.UpdateCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.UpdateCommand.Connection.Close(); - } - } - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000003TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000003"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.DeleteCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.DeleteCommand.Connection = this.Connection; - this._adapter.DeleteCommand.CommandText = "DELETE FROM RO000003\r\nWHERE (RecID = ?)"; - this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 8, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000003` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.UpdateCommand.Connection = this.Connection; - this._adapter.UpdateCommand.CommandText = @"UPDATE `RO000003` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?)))"; - this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ParentID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_AccPageID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ModDateTime", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info\r\nFROM " + - " RO000003\r\nORDER BY RecID"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000003DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000003DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000003DataTable dataTable = new ROMasterDataSet.RO000003DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000003DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000003"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] - public virtual int Delete(string RecID) { - if ((RecID == null)) { - this.Adapter.DeleteCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(RecID)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; - if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.DeleteCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.DeleteCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - if ((RecID == null)) { - this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Info)); - } - if ((Original_RecID == null)) { - this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Original_RecID)); - } - if ((Original_RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[8].Value = ((int)(Original_RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; - } - if ((Original_ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_ParentID)); - } - if ((Original_AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_AccPageID)); - } - if ((Original_ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_ModDateTime)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; - if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.UpdateCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.UpdateCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - return this.Update(Original_RecID, RecType, ParentID, AccPageID, ModDateTime, Info, Original_RecID, Original_RecType, Original_ParentID, Original_AccPageID, Original_ModDateTime); - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000004TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000004"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.DeleteCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.DeleteCommand.Connection = this.Connection; - this._adapter.DeleteCommand.CommandText = "DELETE FROM RO000004\r\nWHERE (RecID = ?)"; - this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 8, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000004` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.UpdateCommand.Connection = this.Connection; - this._adapter.UpdateCommand.CommandText = @"UPDATE `RO000004` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?)))"; - this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ParentID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_AccPageID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ModDateTime", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info\r\nFROM " + - " RO000004\r\nORDER BY RecID"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000004DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000004DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000004DataTable dataTable = new ROMasterDataSet.RO000004DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000004DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000004"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] - public virtual int Delete(string RecID) { - if ((RecID == null)) { - this.Adapter.DeleteCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(RecID)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; - if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.DeleteCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.DeleteCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - if ((RecID == null)) { - this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Info)); - } - if ((Original_RecID == null)) { - this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Original_RecID)); - } - if ((Original_RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[8].Value = ((int)(Original_RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; - } - if ((Original_ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_ParentID)); - } - if ((Original_AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_AccPageID)); - } - if ((Original_ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_ModDateTime)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; - if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.UpdateCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.UpdateCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - return this.Update(Original_RecID, RecType, ParentID, AccPageID, ModDateTime, Info, Original_RecID, Original_RecType, Original_ParentID, Original_AccPageID, Original_ModDateTime); - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ROMASTERTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ROMASTER"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.DeleteCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.DeleteCommand.Connection = this.Connection; - this._adapter.DeleteCommand.CommandText = @"DELETE FROM `ROMASTER` WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?)))"; - this._adapter.DeleteCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ParentID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_AccPageID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ModDateTime", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.DeleteCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `ROMASTER` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.UpdateCommand.Connection = this.Connection; - this._adapter.UpdateCommand.CommandText = @"UPDATE `ROMASTER` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?)))"; - this._adapter.UpdateCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ParentID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_AccPageID", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Original, false, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("IsNull_ModDateTime", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, true, null)); - this._adapter.UpdateCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Original_ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Original, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROImport.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM ROMASTER"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.ROMASTERDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.ROMASTERDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.ROMASTERDataTable dataTable = new ROMasterDataSet.ROMASTERDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.ROMASTERDataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "ROMASTER"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Delete, true)] - public virtual int Delete(string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - if ((Original_RecID == null)) { - this.Adapter.DeleteCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[0].Value = ((string)(Original_RecID)); - } - if ((Original_RecType.HasValue == true)) { - this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(0)); - this.Adapter.DeleteCommand.Parameters[2].Value = ((int)(Original_RecType.Value)); - } - else { - this.Adapter.DeleteCommand.Parameters[1].Value = ((object)(1)); - this.Adapter.DeleteCommand.Parameters[2].Value = global::System.DBNull.Value; - } - if ((Original_ParentID == null)) { - this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(1)); - this.Adapter.DeleteCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[3].Value = ((object)(0)); - this.Adapter.DeleteCommand.Parameters[4].Value = ((string)(Original_ParentID)); - } - if ((Original_AccPageID == null)) { - this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(1)); - this.Adapter.DeleteCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[5].Value = ((object)(0)); - this.Adapter.DeleteCommand.Parameters[6].Value = ((string)(Original_AccPageID)); - } - if ((Original_ModDateTime == null)) { - this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(1)); - this.Adapter.DeleteCommand.Parameters[8].Value = global::System.DBNull.Value; - } - else { - this.Adapter.DeleteCommand.Parameters[7].Value = ((object)(0)); - this.Adapter.DeleteCommand.Parameters[8].Value = ((string)(Original_ModDateTime)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.DeleteCommand.Connection.State; - if (((this.Adapter.DeleteCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.DeleteCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.DeleteCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.DeleteCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - if ((RecID == null)) { - this.Adapter.UpdateCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.UpdateCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[5].Value = ((string)(Info)); - } - if ((Original_RecID == null)) { - this.Adapter.UpdateCommand.Parameters[6].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[6].Value = ((string)(Original_RecID)); - } - if ((Original_RecType.HasValue == true)) { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[8].Value = ((int)(Original_RecType.Value)); - } - else { - this.Adapter.UpdateCommand.Parameters[7].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[8].Value = global::System.DBNull.Value; - } - if ((Original_ParentID == null)) { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[10].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[9].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[10].Value = ((string)(Original_ParentID)); - } - if ((Original_AccPageID == null)) { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[12].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[11].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[12].Value = ((string)(Original_AccPageID)); - } - if ((Original_ModDateTime == null)) { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(1)); - this.Adapter.UpdateCommand.Parameters[14].Value = global::System.DBNull.Value; - } - else { - this.Adapter.UpdateCommand.Parameters[13].Value = ((object)(0)); - this.Adapter.UpdateCommand.Parameters[14].Value = ((string)(Original_ModDateTime)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.UpdateCommand.Connection.State; - if (((this.Adapter.UpdateCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.UpdateCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.UpdateCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.UpdateCommand.Connection.Close(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Update, true)] - public virtual int Update(global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info, string Original_RecID, global::System.Nullable Original_RecType, string Original_ParentID, string Original_AccPageID, string Original_ModDateTime) { - return this.Update(Original_RecID, RecType, ParentID, AccPageID, ModDateTime, Info, Original_RecID, Original_RecType, Original_ParentID, Original_AccPageID, Original_ModDateTime); - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsc b/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsc deleted file mode 100644 index 5dbde4a4..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsc +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsd b/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsd deleted file mode 100644 index df3552ac..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xsd +++ /dev/null @@ -1,568 +0,0 @@ - - - - - - - - - - - - - - - - DELETE FROM RO000002 -WHERE (RecID = ?) - - - - - - - - - INSERT INTO `RO000002` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info -FROM RO000002 -ORDER BY RecID - - - - - - - UPDATE RO000002 -SET RecType = ?, ParentID = ?, AccPageID = ?, ModDateTime = ?, Info = ? -WHERE (RecID = ?) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETE FROM RO000003 -WHERE (RecID = ?) - - - - - - - - - INSERT INTO `RO000003` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info -FROM RO000003 -ORDER BY RecID - - - - - - - UPDATE `RO000003` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?))) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETE FROM RO000004 -WHERE (RecID = ?) - - - - - - - - - INSERT INTO `RO000004` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info -FROM RO000004 -ORDER BY RecID - - - - - - - UPDATE `RO000004` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?))) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - DELETE FROM `ROMASTER` WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?))) - - - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO `ROMASTER` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM ROMASTER - - - - - - - UPDATE `ROMASTER` SET `RecID` = ?, `RecType` = ?, `ParentID` = ?, `AccPageID` = ?, `ModDateTime` = ?, `Info` = ? WHERE ((`RecID` = ?) AND ((? = 1 AND `RecType` IS NULL) OR (`RecType` = ?)) AND ((? = 1 AND `ParentID` IS NULL) OR (`ParentID` = ?)) AND ((? = 1 AND `AccPageID` IS NULL) OR (`AccPageID` = ?)) AND ((? = 1 AND `ModDateTime` IS NULL) OR (`ModDateTime` = ?))) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xss b/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xss deleted file mode 100644 index d3aaa754..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/ROMasterDataSet.xss +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/WestinghouseROImport.csproj b/PROMS/ROConvert/WestinghouseROImport/WestinghouseROImport.csproj deleted file mode 100644 index 2144bc25..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/WestinghouseROImport.csproj +++ /dev/null @@ -1,131 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {6E879177-F542-49A4-96AC-2384F469111C} - WinExe - Properties - WestinghouseROImport - WestinghouseROImport - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmROImport.cs - - - - - Designer - frmROImport.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - ROCPPImportDataSet.xsd - - - Designer - MSDataSetGenerator - ROCPPImportDataSet.Designer.cs - - - ROCPPImportDataSet.xsd - - - ROImportDataSet.xsd - - - Designer - MSDataSetGenerator - ROImportDataSet.Designer.cs - - - ROImportDataSet.xsd - - - ROMasterDataSet.xsd - - - Designer - MSDataSetGenerator - ROMasterDataSet.Designer.cs - - - ROMasterDataSet.xsd - - - True - Settings.settings - True - - - True - True - ROCPPImportDataSet.xsd - - - ROImportDataSet.xsd - Component - - - True - True - ROImportDataSet.xsd - - - True - True - ROMasterDataSet.xsd - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/app.config b/PROMS/ROConvert/WestinghouseROImport/app.config deleted file mode 100644 index fe114f06..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/app.config +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/frmROImport.Designer.cs b/PROMS/ROConvert/WestinghouseROImport/frmROImport.Designer.cs deleted file mode 100644 index 16ca06fa..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/frmROImport.Designer.cs +++ /dev/null @@ -1,322 +0,0 @@ -namespace WestinghouseROImport -{ - partial class frmROImport - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.setpointsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.clearOldDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.importDataToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.updateToCPPToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.equipmentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.clearOldDataToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.importDataToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.updateToCPPToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.alarmsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.clearOldDataToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - this.importDataToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - this.updateToCPPToolStripMenuItem2 = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.tbStatus = new System.Windows.Forms.TextBox(); - this.rOImportDataSet = new WestinghouseROImport.ROImportDataSet(); - this.STPImportTableAdapter = new WestinghouseROImport.ROImportDataSetTableAdapters.ImportSTP_qryTableAdapter(); - this.MELImportTableAdapter = new WestinghouseROImport.ROImportDataSetTableAdapters.ImportMEL_qryTableAdapter(); - this.ARPImportTableAdapter = new WestinghouseROImport.ROImportDataSetTableAdapters.ImportARP_tblTableAdapter(); - this.rOMasterDataSet = new WestinghouseROImport.ROMasterDataSet(); - this.STPTableAdapter = new WestinghouseROImport.ROMasterDataSetTableAdapters.RO000002TableAdapter(); - this.MELTableAdapter = new WestinghouseROImport.ROMasterDataSetTableAdapters.RO000003TableAdapter(); - this.ARPTableAdapter = new WestinghouseROImport.ROMasterDataSetTableAdapters.RO000004TableAdapter(); - this.rOCPPImportDataSet = new WestinghouseROImport.ROCPPImportDataSet(); - this.ARPCPPImportTableAdapter = new WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportARP_tblTableAdapter(); - this.MELCPPImportTableAdapter = new WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportMEL_qryTableAdapter(); - this.STPCPPImportTableAdapter = new WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportSTP_qryTableAdapter(); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.rOImportDataSet)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOMasterDataSet)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOCPPImportDataSet)).BeginInit(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.setpointsToolStripMenuItem, - this.equipmentToolStripMenuItem, - this.alarmsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(667, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - // - // setpointsToolStripMenuItem - // - this.setpointsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.clearOldDataToolStripMenuItem, - this.importDataToolStripMenuItem, - this.updateToCPPToolStripMenuItem}); - this.setpointsToolStripMenuItem.Name = "setpointsToolStripMenuItem"; - this.setpointsToolStripMenuItem.Size = new System.Drawing.Size(68, 20); - this.setpointsToolStripMenuItem.Text = "Setpoints"; - // - // clearOldDataToolStripMenuItem - // - this.clearOldDataToolStripMenuItem.Name = "clearOldDataToolStripMenuItem"; - this.clearOldDataToolStripMenuItem.Size = new System.Drawing.Size(154, 22); - this.clearOldDataToolStripMenuItem.Text = "Clear Old Data"; - this.clearOldDataToolStripMenuItem.Click += new System.EventHandler(this.clearOldSetpointData_Click); - // - // importDataToolStripMenuItem - // - this.importDataToolStripMenuItem.Name = "importDataToolStripMenuItem"; - this.importDataToolStripMenuItem.Size = new System.Drawing.Size(154, 22); - this.importDataToolStripMenuItem.Text = "Import Data"; - this.importDataToolStripMenuItem.Click += new System.EventHandler(this.importSetpointData_Click); - // - // updateToCPPToolStripMenuItem - // - this.updateToCPPToolStripMenuItem.Name = "updateToCPPToolStripMenuItem"; - this.updateToCPPToolStripMenuItem.Size = new System.Drawing.Size(154, 22); - this.updateToCPPToolStripMenuItem.Text = "Update To CPP"; - this.updateToCPPToolStripMenuItem.Click += new System.EventHandler(this.updateToCPPSetpoints_Click); - // - // equipmentToolStripMenuItem - // - this.equipmentToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.clearOldDataToolStripMenuItem1, - this.importDataToolStripMenuItem1, - this.updateToCPPToolStripMenuItem1}); - this.equipmentToolStripMenuItem.Name = "equipmentToolStripMenuItem"; - this.equipmentToolStripMenuItem.Size = new System.Drawing.Size(77, 20); - this.equipmentToolStripMenuItem.Text = "Equipment"; - // - // clearOldDataToolStripMenuItem1 - // - this.clearOldDataToolStripMenuItem1.Name = "clearOldDataToolStripMenuItem1"; - this.clearOldDataToolStripMenuItem1.Size = new System.Drawing.Size(154, 22); - this.clearOldDataToolStripMenuItem1.Text = "Clear Old Data"; - this.clearOldDataToolStripMenuItem1.Click += new System.EventHandler(this.clearOldMELData_Click); - // - // importDataToolStripMenuItem1 - // - this.importDataToolStripMenuItem1.Name = "importDataToolStripMenuItem1"; - this.importDataToolStripMenuItem1.Size = new System.Drawing.Size(154, 22); - this.importDataToolStripMenuItem1.Text = "Import Data"; - this.importDataToolStripMenuItem1.Click += new System.EventHandler(this.importMELData_Click); - // - // updateToCPPToolStripMenuItem1 - // - this.updateToCPPToolStripMenuItem1.Name = "updateToCPPToolStripMenuItem1"; - this.updateToCPPToolStripMenuItem1.Size = new System.Drawing.Size(154, 22); - this.updateToCPPToolStripMenuItem1.Text = "Update To CPP"; - this.updateToCPPToolStripMenuItem1.Click += new System.EventHandler(this.updateToCPPEquipment_Click); - // - // alarmsToolStripMenuItem - // - this.alarmsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.clearOldDataToolStripMenuItem2, - this.importDataToolStripMenuItem2, - this.updateToCPPToolStripMenuItem2}); - this.alarmsToolStripMenuItem.Name = "alarmsToolStripMenuItem"; - this.alarmsToolStripMenuItem.Size = new System.Drawing.Size(56, 20); - this.alarmsToolStripMenuItem.Text = "Alarms"; - // - // clearOldDataToolStripMenuItem2 - // - this.clearOldDataToolStripMenuItem2.Name = "clearOldDataToolStripMenuItem2"; - this.clearOldDataToolStripMenuItem2.Size = new System.Drawing.Size(154, 22); - this.clearOldDataToolStripMenuItem2.Text = "Clear Old Data"; - this.clearOldDataToolStripMenuItem2.Click += new System.EventHandler(this.clearOldARPData_Click); - // - // importDataToolStripMenuItem2 - // - this.importDataToolStripMenuItem2.Name = "importDataToolStripMenuItem2"; - this.importDataToolStripMenuItem2.Size = new System.Drawing.Size(154, 22); - this.importDataToolStripMenuItem2.Text = "Import Data"; - this.importDataToolStripMenuItem2.Click += new System.EventHandler(this.importARPData_Click); - // - // updateToCPPToolStripMenuItem2 - // - this.updateToCPPToolStripMenuItem2.Name = "updateToCPPToolStripMenuItem2"; - this.updateToCPPToolStripMenuItem2.Size = new System.Drawing.Size(154, 22); - this.updateToCPPToolStripMenuItem2.Text = "Update To CPP"; - this.updateToCPPToolStripMenuItem2.Click += new System.EventHandler(this.updateToCPPAlarms_Click); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 533); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(667, 22); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // tbStatus - // - this.tbStatus.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbStatus.Location = new System.Drawing.Point(0, 24); - this.tbStatus.Multiline = true; - this.tbStatus.Name = "tbStatus"; - this.tbStatus.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbStatus.Size = new System.Drawing.Size(667, 509); - this.tbStatus.TabIndex = 2; - // - // rOImportDataSet - // - this.rOImportDataSet.DataSetName = "ROImportDataSet"; - this.rOImportDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; - // - // STPImportTableAdapter - // - this.STPImportTableAdapter.ClearBeforeFill = true; - // - // MELImportTableAdapter - // - this.MELImportTableAdapter.ClearBeforeFill = true; - // - // ARPImportTableAdapter - // - this.ARPImportTableAdapter.ClearBeforeFill = true; - // - // rOMasterDataSet - // - this.rOMasterDataSet.DataSetName = "ROMasterDataSet"; - this.rOMasterDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; - // - // STPTableAdapter - // - this.STPTableAdapter.ClearBeforeFill = true; - // - // MELTableAdapter - // - this.MELTableAdapter.ClearBeforeFill = true; - // - // ARPTableAdapter - // - this.ARPTableAdapter.ClearBeforeFill = true; - // - // rOCPPImportDataSet - // - this.rOCPPImportDataSet.DataSetName = "ROCPPImportDataSet"; - this.rOCPPImportDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; - // - // ARPCPPImportTableAdapter - // - this.ARPCPPImportTableAdapter.ClearBeforeFill = true; - // - // MELCPPImportTableAdapter - // - this.MELCPPImportTableAdapter.ClearBeforeFill = true; - // - // STPCPPImportTableAdapter - // - this.STPCPPImportTableAdapter.ClearBeforeFill = true; - // - // frmROImport - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(667, 555); - this.Controls.Add(this.tbStatus); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmROImport"; - this.Text = "Westinghouse RO Import"; - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.rOImportDataSet)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOMasterDataSet)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOCPPImportDataSet)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem setpointsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem clearOldDataToolStripMenuItem; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripMenuItem importDataToolStripMenuItem; - private ROImportDataSet rOImportDataSet; - private WestinghouseROImport.ROImportDataSetTableAdapters.ImportSTP_qryTableAdapter STPImportTableAdapter; - private ROMasterDataSet rOMasterDataSet; - private WestinghouseROImport.ROMasterDataSetTableAdapters.RO000002TableAdapter STPTableAdapter; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.ToolStripMenuItem equipmentToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem clearOldDataToolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem importDataToolStripMenuItem1; - private WestinghouseROImport.ROMasterDataSetTableAdapters.RO000003TableAdapter MELTableAdapter; - private WestinghouseROImport.ROMasterDataSetTableAdapters.RO000004TableAdapter ARPTableAdapter; - private WestinghouseROImport.ROImportDataSetTableAdapters.ImportMEL_qryTableAdapter MELImportTableAdapter; - private System.Windows.Forms.TextBox tbStatus; - private WestinghouseROImport.ROImportDataSetTableAdapters.ImportARP_tblTableAdapter ARPImportTableAdapter; - private System.Windows.Forms.ToolStripMenuItem alarmsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem clearOldDataToolStripMenuItem2; - private System.Windows.Forms.ToolStripMenuItem importDataToolStripMenuItem2; - private ROCPPImportDataSet rOCPPImportDataSet; - private WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportARP_tblTableAdapter ARPCPPImportTableAdapter; - private WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportMEL_qryTableAdapter MELCPPImportTableAdapter; - private WestinghouseROImport.ROCPPImportDataSetTableAdapters.ImportSTP_qryTableAdapter STPCPPImportTableAdapter; - private System.Windows.Forms.ToolStripMenuItem updateToCPPToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem updateToCPPToolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem updateToCPPToolStripMenuItem2; - } -} - diff --git a/PROMS/ROConvert/WestinghouseROImport/frmROImport.cs b/PROMS/ROConvert/WestinghouseROImport/frmROImport.cs deleted file mode 100644 index 6c65193d..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/frmROImport.cs +++ /dev/null @@ -1,815 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace WestinghouseROImport -{ - public partial class frmROImport : Form - { - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - public frmROImport() - { - InitializeComponent(); - } - private string _STPDBRecID = ""; - public string STPDBRecID - { - get { return _STPDBRecID; } - set { _STPDBRecID = value; } - } - private void clearOldSetpointData_Click(object sender, EventArgs e) - { - int count = ClearSetpointData(); - MessageBox.Show(string.Format("{0} setpoint records deleted", count), "Purge", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private int ClearSetpointData() - { - STPTableAdapter.Fill(this.rOMasterDataSet.RO000002); - DataTable dto = STPTableAdapter.GetData(); - List deleteList = new List(); - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - deleteList.Add(dr); - } - else - { - STPDBRecID = dr["RecID"].ToString(); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - deleteList.Add(dr); - } - } - int count = deleteList.Count; - while (deleteList.Count > 0) - { - DataRow dr = deleteList[0]; - dr.Delete(); - STPTableAdapter.Update(dr); - deleteList.RemoveAt(0); - } - return count; - } - private Dictionary _SetpointParameters; - public Dictionary SetpointParameters - { - get { return _SetpointParameters; } - set { _SetpointParameters = value; } - } - private DataRow _DrCount; - public DataRow DrCount - { - get { return _DrCount; } - set { _DrCount = value; } - } - private void importSetpointData_Click(object sender, EventArgs e) - { - DateTime dtStart = DateTime.Now; - ClearSetpointData(); - STPTableAdapter.Fill(this.rOMasterDataSet.RO000002); - STPImportTableAdapter.Fill(this.rOImportDataSet.ImportSTP_qry); - DataTable dto = STPTableAdapter.GetData(); - DrCount = dto.Rows[0]; - DataTable dti = STPImportTableAdapter.GetData(); - SetpointParameters = new Dictionary(); - foreach (DataRow dr in dti.Rows) - { - // Parameter Name Value Description - //Console.WriteLine("Parameter = '{0}', Name = '{1}', Value = '{2}', Description = '{3}'", - // dr["Parameter"], dr["Name"], dr["Value"], dr["Description"]); - MyStatus = dr["Name"].ToString(); - AddSetpoint(dr["Parameter"].ToString(), dr["Name"].ToString(), dr["Value"].ToString(), dr["Description"].ToString()); - } - STPTableAdapter.Update(DrCount); - DateTime dtEnd = DateTime.Now; - MyStatus = string.Format("{0} Setpoint ROs added in {1} seconds", dti.Rows.Count,TimeSpan.FromTicks(dtEnd.Ticks - dtStart.Ticks).TotalSeconds); - MessageBox.Show(string.Format("{0} ROs added", dti.Rows.Count), "ROs Loaded", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void AddSetpoint(string parameter, string id, string value, string description) - { - string parentid = AddSetpointParameter(parameter); - string recid = GetNextSTPRecID(); - string rovalue = BuildSTPROValue(id, value, description); - STPTableAdapter.Insert(recid, 5, parentid, id, DateTimeStamp, rovalue); - } - public string DateTimeStamp - { - get {return DateTime.Now.ToString("yyyyMMddHHmm");} - } - private string GetNextSTPRecID() - { - string nextRec = DrCount["Info"].ToString(); - nextRec = string.Format("{0:x08}", Convert.ToInt32(nextRec,16) + 1); - DrCount["Info"] = nextRec; - //STPTableAdapter.Update(DrCount); - //Console.WriteLine("ID = {0}", nextRec); - return nextRec; - } - private string BuildSTPROValue(string id, string value, string description) - { - value = FixSpecialCharacters(value); - description = FixSpecialCharacters(description); - return string.Format("{1}{0}{2}" - ,id,value,description); - } - private string FixSpecialCharacters(string str) - { - string str2 = str.Trim(); - StringBuilder sb = new StringBuilder(); - foreach (char c in str2) - { - switch (c) - { - case '"': - sb.Append("""); - break; - case '&': - sb.Append("&"); - break; - case '<': - sb.Append("<"); - break; - case '>': - sb.Append(">"); - break; - case '\xA0': - sb.Append(' '); - break; - case '\x1E': - sb.Append('-'); - break; - case '\xB0': - sb.Append(c); - break; - case '\u2013': - sb.Append('-'); - break; - default: - if (c < ' ' || c > '\x7F') - { - sb.Append(string.Format("[x{0:X}]", (int)c)); - } - else - sb.Append(c); - break; - } - } - return sb.ToString(); - } - private string AddSetpointParameter(string parameter) - { - if (!SetpointParameters.ContainsKey(parameter)) - { - string recid = GetNextSTPRecID(); - string paramValue = BuildSTPParam(parameter); - STPTableAdapter.Insert(recid, 3, STPDBRecID, null, DateTimeStamp, paramValue); - SetpointParameters.Add(parameter, recid); - } - return SetpointParameters[parameter]; - } - private string BuildSTPParam(string parameter) - { - return string.Format("{0}", parameter); - } - private void clearOldMELData_Click(object sender, EventArgs e) - { - // Clear Old MEL Data - int count = ClearMELData(); - MessageBox.Show(string.Format("{0} MEL records deleted", count), "Purge", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private string MELDBRecID; - private int ClearMELData() - { - MELTableAdapter.Fill(this.rOMasterDataSet.RO000003); - DataTable dto = MELTableAdapter.GetData(); - List deleteList = new List(); - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - deleteList.Add(dr); - } - else - { - MELDBRecID = dr["RecID"].ToString(); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - deleteList.Add(dr); - } - } - int count = deleteList.Count; - while (deleteList.Count > 0) - { - DataRow dr = deleteList[0]; - dr.Delete(); - MELTableAdapter.Update(dr); - deleteList.RemoveAt(0); - } - return count; - } - Dictionary _MELSystems; - public Dictionary MELSystems - { - get { return _MELSystems; } - set { _MELSystems = value; } - } - Dictionary _MELSysComp; - public Dictionary MELSysComps - { - get { return _MELSysComp; } - set { _MELSysComp = value; } - } - private void importMELData_Click(object sender, EventArgs e) - { - DateTime dtStart = DateTime.Now; - ClearMELData(); - MELTableAdapter.Fill(this.rOMasterDataSet.RO000003); - MELImportTableAdapter.Fill(this.rOImportDataSet.ImportMEL_qry); - DataTable dto = MELTableAdapter.GetData(); - DrCount = dto.Rows[0]; - DataTable dti = MELImportTableAdapter.GetData(); - MELSystems = new Dictionary(); - MELSysComps = new Dictionary(); - int recsAdded = 0; - DateTime justASecHoney = DateTime.Now + TimeSpan.FromSeconds(10); - int lastAdded = 0; - DateTime lastTime = DateTime.Now; - foreach (DataRow dr in dti.Rows) - { - recsAdded++; - // Parameter Name Value Description - //Console.WriteLine("Parameter = '{0}', Name = '{1}', Value = '{2}', Description = '{3}'", - // dr["Parameter"], dr["Name"], dr["Value"], dr["Description"]); - MyStatus = dr["FullName"].ToString(); - AddMEL(dr["SystemID"].ToString(), dr["SystemDesc"].ToString(), dr["ComponentID"].ToString(), dr["CompDesc"].ToString() - , dr["FullName"].ToString(), dr["ShortName"].ToString(), dr["Room"].ToString(), dr["Description"].ToString(), dr["CommonDesc"].ToString()); - DateTime tNow = DateTime.Now; - if (tNow > justASecHoney) - { - int remaining = dti.Rows.Count - recsAdded; - TimeSpan elapsed = tNow - lastTime; - TimeSpan total = tNow - dtStart; - int processed = recsAdded - lastAdded; - lastTime = tNow; - lastAdded = recsAdded; - DateTime eta1 = tNow + TimeSpan.FromTicks(elapsed.Ticks * remaining / processed); - DateTime eta2 = tNow + TimeSpan.FromTicks(total.Ticks * remaining / recsAdded); - AddStatusText("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", tNow.ToString("HH:mm:ss"), processed, - recsAdded, remaining, eta1.ToString("HH:mm:ss"), eta2.ToString("HH:mm:ss")); - justASecHoney += TimeSpan.FromSeconds(10); - } - } - AddStatusText("{0}\t{1}\t{2}\t{3}", DateTime.Now.ToString("HH:mm:ss"), recsAdded - lastAdded, recsAdded, 0); - MELTableAdapter.Update(DrCount); - DateTime dtEnd = DateTime.Now; - MyStatus = string.Format("{0} MEL ROs added in {1} seconds", dti.Rows.Count, TimeSpan.FromTicks(dtEnd.Ticks - dtStart.Ticks).TotalSeconds); - MessageBox.Show(string.Format("{0} MEL ROs added", dti.Rows.Count), "ROs Loaded", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void AddMEL(string systemID, string systemDesc, string ComponentID, string CompDesc, string FullName, string ShortName, string Room, string Description, string CommonDesc) - { - string parentid = AddMELSystemComponent(systemID,systemDesc,ComponentID,CompDesc); - string recid = GetNextMELRecID(); - string rovalue = BuildMELROValue(FullName,ShortName,Room,Description,CommonDesc); - MELTableAdapter.Insert(recid, 5, parentid, FullName, DateTimeStamp, rovalue); - } - private string BuildMELROValue(string FullName, string ShortName, string Room, string Description, string CommonDesc) - { - FullName = FixSpecialCharacters(FullName); - ShortName = FixSpecialCharacters(ShortName); - Room = FixSpecialCharacters(Room); - Description = FixSpecialCharacters(Description); - CommonDesc = FixSpecialCharacters(CommonDesc); - return string.Format("{1}{0}" + - "{3}{2}",FullName,ShortName,Room,Description, - CommonDesc); // ComonDesc will not load because it has no token {4} - } - private string GetNextMELRecID() - { - string nextRec = DrCount["Info"].ToString(); - nextRec = string.Format("{0:x08}", Convert.ToInt32(nextRec, 16) + 1); - DrCount["Info"] = nextRec; - //MELTableAdapter.Update(DrCount); - //Console.WriteLine("ID = {0}", nextRec); - return nextRec; - } - private string AddMELSystemComponent(string systemID, string systemDesc, string ComponentID, string CompDesc) - { - string key = systemID + "|" + ComponentID; - if (!MELSysComps.ContainsKey(key)) - { - string sysRecID = AddMELSystem(systemID, systemDesc); - string recid = GetNextMELRecID(); - string compValue = BuildMELComponent(ComponentID,CompDesc); - MELTableAdapter.Insert(recid, 3, sysRecID, null, DateTimeStamp, compValue); - MELSysComps.Add(key, recid); - } - return MELSysComps[key]; - } - private string BuildMELComponent(string ComponentID, string CompDesc) - { - ComponentID = FixSpecialCharacters(ComponentID); - CompDesc = FixSpecialCharacters(CompDesc); - return string.Format("{1}" + - "{0}", ComponentID, CompDesc); - } - private string AddMELSystem(string systemID, string systemDesc) - { - if (!MELSystems.ContainsKey(systemID)) - { - string recid = GetNextMELRecID(); - string sysValue = BuildMELSystem(systemID,systemDesc); - MELTableAdapter.Insert(recid, 3, MELDBRecID, null, DateTimeStamp, sysValue); - MELSystems.Add(systemID, recid); - } - return MELSystems[systemID]; - } - private string BuildMELSystem(string systemID, string systemDesc) - { - systemID = FixSpecialCharacters(systemID); - systemDesc = FixSpecialCharacters(systemDesc); - return string.Format("{1}{0}", systemID, systemID); - } - private void AddStatusText(string format, params object []args) - { - tbStatus.Select(tbStatus.TextLength, 0); - tbStatus.SelectedText=string.Format(format, args) + "\r\n"; - } - private void clearOldARPData_Click(object sender, EventArgs e) - { - ClearARPData(); - } - private string ARPDBRecID; - private int ClearARPData() - { - ARPTableAdapter.Fill(this.rOMasterDataSet.RO000004); - DataTable dto = ARPTableAdapter.GetData(); - List deleteList = new List(); - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - deleteList.Add(dr); - } - else - { - ARPDBRecID = dr["RecID"].ToString(); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - deleteList.Add(dr); - } - } - int count = deleteList.Count; - while (deleteList.Count > 0) - { - DataRow dr = deleteList[0]; - dr.Delete(); - ARPTableAdapter.Update(dr); - deleteList.RemoveAt(0); - } - return count; - } - private Dictionary _ARPDocuments; - public Dictionary ARPDocuments - { - get { return _ARPDocuments; } - set { _ARPDocuments = value; } - } - private Dictionary _ARPSystems; - public Dictionary ARPSystems - { - get { return _ARPSystems; } - set { _ARPSystems = value; } - } - private void importARPData_Click(object sender, EventArgs e) - { - ARPImportTableAdapter.Fill(this.rOImportDataSet.ImportARP_tbl); - DateTime dtStart = DateTime.Now; - ClearARPData(); - ARPTableAdapter.Fill(this.rOMasterDataSet.RO000004); - ARPImportTableAdapter.Fill(this.rOImportDataSet.ImportARP_tbl); - DataTable dto = ARPTableAdapter.GetData(); - DrCount = dto.Rows[0]; - DataTable dti = ARPImportTableAdapter.GetData(); - ARPDocuments = new Dictionary(); - ARPSystems = new Dictionary(); - int recsAdded = 0; - DateTime justASecHoney = DateTime.Now + TimeSpan.FromSeconds(10); - int lastAdded = 0; - DateTime lastTime = DateTime.Now; - foreach (DataRow dr in dti.Rows) - { - recsAdded++; - // Parameter Name Value Description - //Console.WriteLine("Parameter = '{0}', Name = '{1}', Value = '{2}', Description = '{3}'", - // dr["Parameter"], dr["Name"], dr["Value"], dr["Description"]); - MyStatus = dr["Alarm"].ToString(); - AddARP(dr["Document"].ToString(), dr["Alarm"].ToString(), dr["PointName"].ToString(), dr["Type"].ToString() - , dr["Value"].ToString(), dr["Description"].ToString(), dr["SystemID"].ToString(), dr["SysTitle"].ToString()); - DateTime tNow = DateTime.Now; - if (tNow > justASecHoney) - { - int remaining = dti.Rows.Count - recsAdded; - TimeSpan elapsed = tNow - lastTime; - TimeSpan total = tNow - dtStart; - int processed = recsAdded - lastAdded; - lastTime = tNow; - lastAdded = recsAdded; - DateTime eta1 = tNow + TimeSpan.FromTicks(elapsed.Ticks * remaining / processed); - DateTime eta2 = tNow + TimeSpan.FromTicks(total.Ticks * remaining / recsAdded); - AddStatusText("{0}\t{1}\t{2}\t{3}\t{4}\t{5}", tNow.ToString("HH:mm:ss"), processed, - recsAdded, remaining, eta1.ToString("HH:mm:ss"), eta2.ToString("HH:mm:ss")); - justASecHoney += TimeSpan.FromSeconds(10); - } - } - AddStatusText("{0}\t{1}\t{2}\t{3}", DateTime.Now.ToString("HH:mm:ss"), recsAdded - lastAdded, recsAdded, 0); - ARPTableAdapter.Update(DrCount); - DateTime dtEnd = DateTime.Now; - MyStatus = string.Format("{0} ARP ROs added in {1} seconds", dti.Rows.Count, TimeSpan.FromTicks(dtEnd.Ticks - dtStart.Ticks).TotalSeconds); - MessageBox.Show(string.Format("{0} ARP ROs added", dti.Rows.Count), "ROs Loaded", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private void AddARP(string document, string alarm, string pointName, string type, string value, string description, string systemID, string systemTitle) - { - string parentid = AddARPDocumentSystem(document,systemID,systemTitle); - string recid = GetNextARPRecID(); - string rovalue = BuildARPROValue(alarm, pointName, type, value, description, systemID); - ARPTableAdapter.Insert(recid, 5, parentid, alarm, DateTimeStamp, rovalue); - } - private string BuildARPROValue(string alarm, string pointName, string type, string value, string description, string systemID) - { - alarm = FixSpecialCharacters(alarm); - pointName = FixSpecialCharacters(pointName); - type = FixSpecialCharacters(type); - value = FixSpecialCharacters(value); - description = FixSpecialCharacters(description); - systemID = FixSpecialCharacters(systemID); - return string.Format("{0}{1}{2}" + - "{3}{4}{5}", - alarm,pointName,type,value,description,systemID); - } - private string GetNextARPRecID() - { - string nextRec = DrCount["Info"].ToString(); - nextRec = string.Format("{0:x08}", Convert.ToInt32(nextRec, 16) + 1); - DrCount["Info"] = nextRec; - return nextRec; - } - private string AddARPDocumentSystem(string document, string systemID, string systemTitle) - { - if (!ARPDocuments.ContainsKey(document)) - { - string recid = GetNextARPRecID(); - string documentValue = BuildARPDocument(document); - ARPTableAdapter.Insert(recid, 3, ARPDBRecID, null, DateTimeStamp, documentValue); - ARPDocuments.Add(document, recid); - } - if(document != "None") return ARPDocuments[document]; - string parentID = ARPDocuments[document]; - if (!ARPSystems.ContainsKey(systemID)) - { - string recid = GetNextARPRecID(); - string documentValue = BuildARPSystem(systemID,systemTitle); - ARPTableAdapter.Insert(recid, 3, parentID , null, DateTimeStamp, documentValue); - ARPSystems.Add(systemID, recid); - } - return ARPSystems[systemID]; - } - private string BuildARPSystem(string systemID, string systemTitle) - { - systemID = FixSpecialCharacters(systemID); - systemTitle = FixSpecialCharacters(systemTitle); - return string.Format("{1}{0}", systemID, systemTitle); - } - private string BuildARPDocument(string document) - { - if(document != "None") - return string.Format("{0}", document); - else - return string.Format("{0}",document); - } - private void updateToCPPSetpoints_Click(object sender, EventArgs e) - { - Dictionary parentCount = new Dictionary(); - Dictionary parentDictionary = new Dictionary(); - Dictionary roDictionary = new Dictionary(); - ROMasterDataSet.RO000002DataTable dto = STPTableAdapter.GetData(); - BuildSTPDictionaries(dto, parentCount, parentDictionary, roDictionary); - STPCPPImportTableAdapter.Fill(this.rOCPPImportDataSet.ImportSTP_qry); - ROCPPImportDataSet.ImportSTP_qryDataTable dti = STPCPPImportTableAdapter.GetData(); - int updateCount = 0; - int updatePCount = 0; - foreach (DataRow dr in dti.Rows) - { - string accPageID = dr["Name"].ToString().Trim(); - if (roDictionary.ContainsKey(accPageID)) - { - DataRow dro = roDictionary[accPageID]; - roDictionary.Remove(accPageID); - string info = BuildSTPROValue(dr["Name"].ToString(), dr["Value"].ToString(), dr["Description"].ToString()); - string infoOld = dro["Info"].ToString(); - if (info != infoOld) - { - dro["Info"] = info; - dro["ModDateTime"] = DateTimeStamp; - STPTableAdapter.Update(dro); - MyStatus = "Updating " + accPageID; - AddStatusText("Updating {0}", accPageID); - updateCount++; - } - } - else - { - //if dro is null because accpageid does not exist, need to add including figuring out parent status and adding parent if it does not exist - //get parent for new ro - //see if parent exists - MessageBox.Show("oh oh, new ro exists"); - } - } - - MyStatus = string.Format("{0} ROs Updated", updateCount); - AddStatusText("RO Rows Updated: {0}", updateCount); - // What has not been processed - updateCount = 0; - foreach (string key in roDictionary.Keys) - { - DataRow dr = roDictionary[key]; - string parentID = dr["ParentID"].ToString().Trim(); - dr.Delete(); - STPTableAdapter.Update(dr); - MyStatus = string.Format("Deleting {0}", key); - AddStatusText("Deleting {0}", key); - updateCount++; - parentCount[parentID]--; - if (parentCount[parentID] == 0) - { - DataRow drp = parentDictionary[parentID]; - string grandparentID = drp["ParentID"].ToString().Trim(); - drp.Delete(); - STPTableAdapter.Update(drp); - MyStatus = string.Format("Deleting Parent {0}", parentID); - AddStatusText("Deleting Parent {0}", parentID); - updatePCount++; - parentCount[grandparentID]--; - if (parentCount[grandparentID] == 0) - { - DataRow drgp = parentDictionary[grandparentID]; - drgp.Delete(); - STPTableAdapter.Update(drgp); - MyStatus = string.Format("Deleting GrandParent {0}", grandparentID); - AddStatusText("Deleting GrandParent {0}", grandparentID); - updatePCount++; - } - } - } - MyStatus = string.Format("{0} ROs Deleted, {1} RO Parent/GrandParent Ros Deleted", updateCount, updatePCount); - AddStatusText("RO Rows Deleted: {0}, RO Parent/GrandParent Rows Deleted {1}", updateCount, updatePCount); - } - private void BuildSTPDictionaries(ROMasterDataSet.RO000002DataTable dto, Dictionary parentCount, Dictionary parentRow, Dictionary dataRow) - { - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - parentRow.Add(dr["RecID"].ToString().Trim(), dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - string accPageID = dr["AccPageID"].ToString().Trim(); - dataRow.Add(accPageID, dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - } - private void BuildARPDictionaries(ROMasterDataSet.RO000004DataTable dto, Dictionary parentCount, Dictionary parentRow, Dictionary dataRow) - { - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - parentRow.Add(dr["RecID"].ToString().Trim(), dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - string accPageID = dr["AccPageID"].ToString().Trim(); - dataRow.Add(accPageID, dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - } - private void AddToParentCount(Dictionary parentCount, string parentID) - { - if (!parentCount.ContainsKey(parentID)) - parentCount.Add(parentID, 0); - parentCount[parentID]++; - } - private void BuildMELDictionaries(ROMasterDataSet.RO000003DataTable dto, Dictionary parentCount, Dictionary parentRow, Dictionary dataRow) - { - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - parentRow.Add(dr["RecID"].ToString().Trim(), dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - string accPageID = dr["AccPageID"].ToString().Trim(); - dataRow.Add(accPageID, dr); - AddToParentCount(parentCount, dr["ParentID"].ToString().Trim()); - } - } - } - private void updateToCPPEquipment_Click(object sender, EventArgs e) - { - Dictionary parentCount = new Dictionary(); - Dictionary parentDictionary = new Dictionary(); - Dictionary roDictionary = new Dictionary(); - ROMasterDataSet.RO000003DataTable dto = MELTableAdapter.GetData(); - BuildMELDictionaries(dto, parentCount, parentDictionary, roDictionary); - MELCPPImportTableAdapter.Fill(this.rOCPPImportDataSet.ImportMEL_qry); - ROCPPImportDataSet.ImportMEL_qryDataTable dti = MELCPPImportTableAdapter.GetData(); - int updateCount = 0; - int updatePCount = 0; - foreach (DataRow dr in dti.Rows) - { - string accPageID = dr["FullName"].ToString().Trim(); - if (roDictionary.ContainsKey(accPageID)) - { - DataRow dro = roDictionary[accPageID]; - roDictionary.Remove(accPageID); - string info = BuildMELROValue(dr["Fullname"].ToString(), dr["ShortName"].ToString(), dr["Room"].ToString(), dr["Description"].ToString(), dr["CommonDesc"].ToString()); - string infoOld = dro["Info"].ToString(); - if (info != infoOld) - { - dro["Info"] = info; - dro["ModDateTime"] = DateTimeStamp; - MELTableAdapter.Update(dro); - MyStatus = "Updating " + accPageID; - AddStatusText("Updating {0}", accPageID); - updateCount++; - } - } - else - { - //if dro is null because accpageid does not exist, need to add including figuring out parent status and adding parent if it does not exist - //get parent for new ro - //see if parent exists - AddStatusText("********** new mel item '{0}' **********", accPageID); - } - } - - MyStatus = string.Format("{0} ROs Updated", updateCount); - AddStatusText("RO Rows Updated: {0}", updateCount); - // What has not been processed - updateCount = 0; - foreach (string key in roDictionary.Keys) - { - if (key == "CCS-EJ-PLV200") - System.Threading.Thread.Sleep(1000); - DataRow dr = roDictionary[key]; - string parentID = dr["ParentID"].ToString().Trim(); - dr.Delete(); - MELTableAdapter.Update(dr); - MyStatus = string.Format("Deleting {0}", key); - AddStatusText("Deleting '{0}'", key); - updateCount++; - parentCount[parentID]--; - if (parentCount[parentID] == 0) - { - DataRow drp = parentDictionary[parentID]; - string grandparentID = drp["ParentID"].ToString().Trim(); - drp.Delete(); - MELTableAdapter.Update(drp); - MyStatus = string.Format("Deleting Parent {0}", parentID); - AddStatusText("Deleting Parent {0}", parentID); - updatePCount++; - parentCount[grandparentID]--; - if (parentCount[grandparentID] == 0) - { - DataRow drgp = parentDictionary[grandparentID]; - drgp.Delete(); - MELTableAdapter.Update(drgp); - MyStatus = string.Format("Deleting GrandParent {0}", grandparentID); - AddStatusText("Deleting GrandParent {0}", grandparentID); - updatePCount++; - } - } - } - MyStatus = string.Format("{0} ROs Deleted, {1} RO Parent/GrandParent Ros Deleted", updateCount, updatePCount); - AddStatusText("RO Rows Deleted: {0}, RO Parent/GrandParent Rows Deleted {1}", updateCount, updatePCount); - } - private void updateToCPPAlarms_Click(object sender, EventArgs e) - { - Dictionary parentCount = new Dictionary(); - Dictionary parentDictionary = new Dictionary(); - Dictionary roDictionary = new Dictionary(); - ROMasterDataSet.RO000004DataTable dto = ARPTableAdapter.GetData(); - BuildARPDictionaries(dto, parentCount, parentDictionary, roDictionary); - //why is this not a query versus a table - ARPCPPImportTableAdapter.Fill(this.rOCPPImportDataSet.ImportARP_tbl); - ROCPPImportDataSet.ImportARP_tblDataTable dti = ARPCPPImportTableAdapter.GetData(); - int updateCount = 0; - int updatePCount = 0; - int addCount = 0; - foreach (DataRow dr in dti.Rows) - { - string accPageID = dr["Alarm"].ToString().Trim(); - if (roDictionary.ContainsKey(accPageID)) - { - DataRow dro = roDictionary[accPageID]; - roDictionary.Remove(accPageID); - string info = BuildARPROValue(dr["Alarm"].ToString(), dr["PointName"].ToString(), dr["Type"].ToString(), dr["Value"].ToString(), dr["Description"].ToString(), dr["SystemID"].ToString()); - string infoOld = dro["Info"].ToString(); - if (info != infoOld) - { - dro["Info"] = info; - dro["ModDateTime"] = DateTimeStamp; - ARPTableAdapter.Update(dro); - MyStatus = "Updating " + accPageID; - AddStatusText("Updating {0}", accPageID); - updateCount++; - } - } - else - { - //if dro is null because accpageid does not exist, need to add including figuring out parent status and adding parent if it does not exist - //get parent for new ro - //see if parent exists - AddStatusText("********** new arp item '{0}' **********", accPageID); - addCount++; - } - } - - MyStatus = string.Format("{0} ROs Updated", updateCount); - AddStatusText("RO Rows Updated: {0}", updateCount); - AddStatusText("RO Rows Added: {0}", addCount); - // What has not been processed - updateCount = 0; - foreach (string key in roDictionary.Keys) - { - DataRow dr = roDictionary[key]; - string parentID = dr["ParentID"].ToString().Trim(); - dr.Delete(); - ARPTableAdapter.Update(dr); - MyStatus = string.Format("Deleting {0}", key); - AddStatusText("Deleting '{0}'", key); - updateCount++; - parentCount[parentID]--; - if (parentCount[parentID] == 0) - { - DataRow drp = parentDictionary[parentID]; - string grandparentID = drp["ParentID"].ToString().Trim(); - drp.Delete(); - ARPTableAdapter.Update(drp); - MyStatus = string.Format("Deleting Parent {0}", parentID); - AddStatusText("Deleting Parent {0}", parentID); - updatePCount++; - parentCount[grandparentID]--; - if (parentCount[grandparentID] == 0) - { - DataRow drgp = parentDictionary[grandparentID]; - drgp.Delete(); - ARPTableAdapter.Update(drgp); - MyStatus = string.Format("Deleting GrandParent {0}", grandparentID); - AddStatusText("Deleting GrandParent {0}", grandparentID); - updatePCount++; - } - } - } - MyStatus = string.Format("{0} ROs Deleted, {1} RO Parent/GrandParent Ros Deleted", updateCount, updatePCount); - AddStatusText("RO Rows Deleted: {0}, RO Parent/GrandParent Rows Deleted {1}", updateCount, updatePCount); - } - } -} \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROImport/frmROImport.resx b/PROMS/ROConvert/WestinghouseROImport/frmROImport.resx deleted file mode 100644 index a3ef2ffc..00000000 --- a/PROMS/ROConvert/WestinghouseROImport/frmROImport.resx +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 132, 17 - - - 248, 17 - - - 393, 17 - - - 451, 54 - - - 17, 93 - - - 575, 17 - - - 17, 56 - - - 162, 56 - - - 310, 56 - - - 201, 93 - - - 570, 93 - - - 17, 132 - - - 367, 93 - - - 180 - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/Program.cs b/PROMS/ROConvert/WestinghouseROLoad/Program.cs deleted file mode 100644 index 8efc0548..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace WestinghouseROLoad -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmImportROs()); - } - } -} \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/Properties/AssemblyInfo.cs b/PROMS/ROConvert/WestinghouseROLoad/Properties/AssemblyInfo.cs deleted file mode 100644 index 53561435..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("WestinghouseROLoad")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("WestinghouseROLoad")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("c84794b0-8874-4a1b-bb08-68b7f2f00adc")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.Designer.cs b/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.Designer.cs deleted file mode 100644 index 900dbda2..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WestinghouseROLoad.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WestinghouseROLoad.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.resx b/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.Designer.cs b/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.Designer.cs deleted file mode 100644 index 9a33b6ec..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.Designer.cs +++ /dev/null @@ -1,46 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WestinghouseROLoad.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\VEWest\\RO\\ROMaster.mdb")] - public string ROMasterConnectionString { - get { - return ((string)(this["ROMasterConnectionString"])); - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.ConnectionString)] - [global::System.Configuration.DefaultSettingValueAttribute("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\\VEWest\\ROImport.mdb")] - public string ROImportConnectionString { - get { - return ((string)(this["ROImportConnectionString"])); - } - } - } -} diff --git a/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.settings b/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.settings deleted file mode 100644 index b1433c7b..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/Properties/Settings.settings +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\RO\ROMaster.mdb</ConnectionString> - <ProviderName>System.Data.OleDb</ProviderName> -</SerializableConnectionString> - Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\RO\ROMaster.mdb - - - <?xml version="1.0" encoding="utf-16"?> -<SerializableConnectionString xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> - <ConnectionString>Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROImport.mdb</ConnectionString> - <ProviderName>System.Data.OleDb</ProviderName> -</SerializableConnectionString> - Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\VEWest\ROImport.mdb - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.Designer.cs b/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.Designer.cs deleted file mode 100644 index 17b1e6f4..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.Designer.cs +++ /dev/null @@ -1,812 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -#pragma warning disable 1591 - -namespace WestinghouseROLoad { - - - /// - ///Represents a strongly typed in-memory cache of data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] - [global::System.Xml.Serialization.XmlRootAttribute("ROImportDataSet")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] - public partial class ROImportDataSet : global::System.Data.DataSet { - - private ImportSTP_qryDataTable tableImportSTP_qry; - - private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROImportDataSet() { - this.BeginInit(); - this.InitClass(); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - base.Relations.CollectionChanged += schemaChangedHandler; - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROImportDataSet(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context, false) { - if ((this.IsBinarySerialized(info, context) == true)) { - this.InitVars(false); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - this.Tables.CollectionChanged += schemaChangedHandler1; - this.Relations.CollectionChanged += schemaChangedHandler1; - return; - } - string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); - if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - } - this.GetSerializationData(info, context); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - this.Relations.CollectionChanged += schemaChangedHandler; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ImportSTP_qryDataTable ImportSTP_qry { - get { - return this.tableImportSTP_qry; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.BrowsableAttribute(true)] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] - public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { - get { - return this._schemaSerializationMode; - } - set { - this._schemaSerializationMode = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataTableCollection Tables { - get { - return base.Tables; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataRelationCollection Relations { - get { - return base.Relations; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void InitializeDerivedDataSet() { - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataSet Clone() { - ROImportDataSet cln = ((ROImportDataSet)(base.Clone())); - cln.InitVars(); - cln.SchemaSerializationMode = this.SchemaSerializationMode; - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeTables() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeRelations() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { - if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - this.Reset(); - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXml(reader); - if ((ds.Tables["ImportSTP_qry"] != null)) { - base.Tables.Add(new ImportSTP_qryDataTable(ds.Tables["ImportSTP_qry"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXml(reader); - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { - global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); - this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); - stream.Position = 0; - return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.InitVars(true); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars(bool initTable) { - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(base.Tables["ImportSTP_qry"])); - if ((initTable == true)) { - if ((this.tableImportSTP_qry != null)) { - this.tableImportSTP_qry.InitVars(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.DataSetName = "ROImportDataSet"; - this.Prefix = ""; - this.Namespace = "http://tempuri.org/ROImportDataSet.xsd"; - this.EnforceConstraints = true; - this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - this.tableImportSTP_qry = new ImportSTP_qryDataTable(); - base.Tables.Add(this.tableImportSTP_qry); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeImportSTP_qry() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { - if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); - any.Namespace = ds.Namespace; - sequence.Items.Add(any); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - - public delegate void ImportSTP_qryRowChangeEventHandler(object sender, ImportSTP_qryRowChangeEvent e); - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ImportSTP_qryDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnParameter; - - private global::System.Data.DataColumn columnName; - - private global::System.Data.DataColumn columnValue; - - private global::System.Data.DataColumn columnDescription; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryDataTable() { - this.TableName = "ImportSTP_qry"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ImportSTP_qryDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParameterColumn { - get { - return this.columnParameter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn NameColumn { - get { - return this.columnName; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ValueColumn { - get { - return this.columnValue; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn DescriptionColumn { - get { - return this.columnDescription; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow this[int index] { - get { - return ((ImportSTP_qryRow)(this.Rows[index])); - } - } - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanging; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowChanged; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleting; - - public event ImportSTP_qryRowChangeEventHandler ImportSTP_qryRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow AddImportSTP_qryRow(string Parameter, string Name, string Value, string Description) { - ImportSTP_qryRow rowImportSTP_qryRow = ((ImportSTP_qryRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - Parameter, - Name, - Value, - Description}; - rowImportSTP_qryRow.ItemArray = columnValuesArray; - this.Rows.Add(rowImportSTP_qryRow); - return rowImportSTP_qryRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ImportSTP_qryDataTable cln = ((ImportSTP_qryDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ImportSTP_qryDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnParameter = base.Columns["Parameter"]; - this.columnName = base.Columns["Name"]; - this.columnValue = base.Columns["Value"]; - this.columnDescription = base.Columns["Description"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnParameter = new global::System.Data.DataColumn("Parameter", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParameter); - this.columnName = new global::System.Data.DataColumn("Name", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnName); - this.columnValue = new global::System.Data.DataColumn("Value", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnValue); - this.columnDescription = new global::System.Data.DataColumn("Description", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnDescription); - this.columnParameter.MaxLength = 255; - this.columnName.MaxLength = 255; - this.columnValue.MaxLength = 255; - this.columnDescription.MaxLength = 255; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow NewImportSTP_qryRow() { - return ((ImportSTP_qryRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ImportSTP_qryRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ImportSTP_qryRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ImportSTP_qryRowChanged != null)) { - this.ImportSTP_qryRowChanged(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ImportSTP_qryRowChanging != null)) { - this.ImportSTP_qryRowChanging(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ImportSTP_qryRowDeleted != null)) { - this.ImportSTP_qryRowDeleted(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ImportSTP_qryRowDeleting != null)) { - this.ImportSTP_qryRowDeleting(this, new ImportSTP_qryRowChangeEvent(((ImportSTP_qryRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveImportSTP_qryRow(ImportSTP_qryRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROImportDataSet ds = new ROImportDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ImportSTP_qryDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ImportSTP_qryRow : global::System.Data.DataRow { - - private ImportSTP_qryDataTable tableImportSTP_qry; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ImportSTP_qryRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableImportSTP_qry = ((ImportSTP_qryDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Parameter { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ParameterColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Parameter\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ParameterColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Name { - get { - try { - return ((string)(this[this.tableImportSTP_qry.NameColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Name\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.NameColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Value { - get { - try { - return ((string)(this[this.tableImportSTP_qry.ValueColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Value\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.ValueColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Description { - get { - try { - return ((string)(this[this.tableImportSTP_qry.DescriptionColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Description\' in table \'ImportSTP_qry\' is DBNull.", e); - } - } - set { - this[this.tableImportSTP_qry.DescriptionColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParameterNull() { - return this.IsNull(this.tableImportSTP_qry.ParameterColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParameterNull() { - this[this.tableImportSTP_qry.ParameterColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsNameNull() { - return this.IsNull(this.tableImportSTP_qry.NameColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetNameNull() { - this[this.tableImportSTP_qry.NameColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsValueNull() { - return this.IsNull(this.tableImportSTP_qry.ValueColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetValueNull() { - this[this.tableImportSTP_qry.ValueColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsDescriptionNull() { - return this.IsNull(this.tableImportSTP_qry.DescriptionColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetDescriptionNull() { - this[this.tableImportSTP_qry.DescriptionColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ImportSTP_qryRowChangeEvent : global::System.EventArgs { - - private ImportSTP_qryRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRowChangeEvent(ImportSTP_qryRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - } -} -namespace WestinghouseROLoad.ROImportDataSetTableAdapters { - - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ImportSTP_qryTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ImportSTP_qryTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ImportSTP_qry"; - tableMapping.ColumnMappings.Add("Parameter", "Parameter"); - tableMapping.ColumnMappings.Add("Name", "Name"); - tableMapping.ColumnMappings.Add("Value", "Value"); - tableMapping.ColumnMappings.Add("Description", "Description"); - this._adapter.TableMappings.Add(tableMapping); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROLoad.Properties.Settings.Default.ROImportConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROImportDataSet.ImportSTP_qryDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROImportDataSet.ImportSTP_qryDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROImportDataSet.ImportSTP_qryDataTable dataTable = new ROImportDataSet.ImportSTP_qryDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsc b/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsc deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsc +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsd b/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsd deleted file mode 100644 index fb76c5df..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xsd +++ /dev/null @@ -1,78 +0,0 @@ - - - - - - - - - - - - - - - - SELECT Parameter, Name, [Value], Description FROM ImportSTP_qry - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xss b/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xss deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROImportDataSet.xss +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.Designer.cs b/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.Designer.cs deleted file mode 100644 index ec82af39..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.Designer.cs +++ /dev/null @@ -1,3242 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -#pragma warning disable 1591 - -namespace WestinghouseROLoad { - - - /// - ///Represents a strongly typed in-memory cache of data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema")] - [global::System.Xml.Serialization.XmlRootAttribute("ROMasterDataSet")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")] - public partial class ROMasterDataSet : global::System.Data.DataSet { - - private RO000002DataTable tableRO000002; - - private RO000003DataTable tableRO000003; - - private RO000004DataTable tableRO000004; - - private ROMASTERDataTable tableROMASTER; - - private global::System.Data.SchemaSerializationMode _schemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMasterDataSet() { - this.BeginInit(); - this.InitClass(); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - base.Relations.CollectionChanged += schemaChangedHandler; - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROMasterDataSet(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context, false) { - if ((this.IsBinarySerialized(info, context) == true)) { - this.InitVars(false); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler1 = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - this.Tables.CollectionChanged += schemaChangedHandler1; - this.Relations.CollectionChanged += schemaChangedHandler1; - return; - } - string strSchema = ((string)(info.GetValue("XmlSchema", typeof(string)))); - if ((this.DetermineSchemaSerializationMode(info, context) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - if ((ds.Tables["RO000002"] != null)) { - base.Tables.Add(new RO000002DataTable(ds.Tables["RO000002"])); - } - if ((ds.Tables["RO000003"] != null)) { - base.Tables.Add(new RO000003DataTable(ds.Tables["RO000003"])); - } - if ((ds.Tables["RO000004"] != null)) { - base.Tables.Add(new RO000004DataTable(ds.Tables["RO000004"])); - } - if ((ds.Tables["ROMASTER"] != null)) { - base.Tables.Add(new ROMASTERDataTable(ds.Tables["ROMASTER"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXmlSchema(new global::System.Xml.XmlTextReader(new global::System.IO.StringReader(strSchema))); - } - this.GetSerializationData(info, context); - global::System.ComponentModel.CollectionChangeEventHandler schemaChangedHandler = new global::System.ComponentModel.CollectionChangeEventHandler(this.SchemaChanged); - base.Tables.CollectionChanged += schemaChangedHandler; - this.Relations.CollectionChanged += schemaChangedHandler; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000002DataTable RO000002 { - get { - return this.tableRO000002; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000003DataTable RO000003 { - get { - return this.tableRO000003; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public RO000004DataTable RO000004 { - get { - return this.tableRO000004; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - [global::System.ComponentModel.DesignerSerializationVisibility(global::System.ComponentModel.DesignerSerializationVisibility.Content)] - public ROMASTERDataTable ROMASTER { - get { - return this.tableROMASTER; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.BrowsableAttribute(true)] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Visible)] - public override global::System.Data.SchemaSerializationMode SchemaSerializationMode { - get { - return this._schemaSerializationMode; - } - set { - this._schemaSerializationMode = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataTableCollection Tables { - get { - return base.Tables; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.DesignerSerializationVisibilityAttribute(global::System.ComponentModel.DesignerSerializationVisibility.Hidden)] - public new global::System.Data.DataRelationCollection Relations { - get { - return base.Relations; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void InitializeDerivedDataSet() { - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataSet Clone() { - ROMasterDataSet cln = ((ROMasterDataSet)(base.Clone())); - cln.InitVars(); - cln.SchemaSerializationMode = this.SchemaSerializationMode; - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeTables() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override bool ShouldSerializeRelations() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void ReadXmlSerializable(global::System.Xml.XmlReader reader) { - if ((this.DetermineSchemaSerializationMode(reader) == global::System.Data.SchemaSerializationMode.IncludeSchema)) { - this.Reset(); - global::System.Data.DataSet ds = new global::System.Data.DataSet(); - ds.ReadXml(reader); - if ((ds.Tables["RO000002"] != null)) { - base.Tables.Add(new RO000002DataTable(ds.Tables["RO000002"])); - } - if ((ds.Tables["RO000003"] != null)) { - base.Tables.Add(new RO000003DataTable(ds.Tables["RO000003"])); - } - if ((ds.Tables["RO000004"] != null)) { - base.Tables.Add(new RO000004DataTable(ds.Tables["RO000004"])); - } - if ((ds.Tables["ROMASTER"] != null)) { - base.Tables.Add(new ROMASTERDataTable(ds.Tables["ROMASTER"])); - } - this.DataSetName = ds.DataSetName; - this.Prefix = ds.Prefix; - this.Namespace = ds.Namespace; - this.Locale = ds.Locale; - this.CaseSensitive = ds.CaseSensitive; - this.EnforceConstraints = ds.EnforceConstraints; - this.Merge(ds, false, global::System.Data.MissingSchemaAction.Add); - this.InitVars(); - } - else { - this.ReadXml(reader); - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Xml.Schema.XmlSchema GetSchemaSerializable() { - global::System.IO.MemoryStream stream = new global::System.IO.MemoryStream(); - this.WriteXmlSchema(new global::System.Xml.XmlTextWriter(stream, null)); - stream.Position = 0; - return global::System.Xml.Schema.XmlSchema.Read(new global::System.Xml.XmlTextReader(stream), null); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.InitVars(true); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars(bool initTable) { - this.tableRO000002 = ((RO000002DataTable)(base.Tables["RO000002"])); - if ((initTable == true)) { - if ((this.tableRO000002 != null)) { - this.tableRO000002.InitVars(); - } - } - this.tableRO000003 = ((RO000003DataTable)(base.Tables["RO000003"])); - if ((initTable == true)) { - if ((this.tableRO000003 != null)) { - this.tableRO000003.InitVars(); - } - } - this.tableRO000004 = ((RO000004DataTable)(base.Tables["RO000004"])); - if ((initTable == true)) { - if ((this.tableRO000004 != null)) { - this.tableRO000004.InitVars(); - } - } - this.tableROMASTER = ((ROMASTERDataTable)(base.Tables["ROMASTER"])); - if ((initTable == true)) { - if ((this.tableROMASTER != null)) { - this.tableROMASTER.InitVars(); - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.DataSetName = "ROMasterDataSet"; - this.Prefix = ""; - this.Namespace = "http://tempuri.org/ROMasterDataSet.xsd"; - this.EnforceConstraints = true; - this.SchemaSerializationMode = global::System.Data.SchemaSerializationMode.IncludeSchema; - this.tableRO000002 = new RO000002DataTable(); - base.Tables.Add(this.tableRO000002); - this.tableRO000003 = new RO000003DataTable(); - base.Tables.Add(this.tableRO000003); - this.tableRO000004 = new RO000004DataTable(); - base.Tables.Add(this.tableRO000004); - this.tableROMASTER = new ROMASTERDataTable(); - base.Tables.Add(this.tableROMASTER); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000002() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000003() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeRO000004() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private bool ShouldSerializeROMASTER() { - return false; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void SchemaChanged(object sender, global::System.ComponentModel.CollectionChangeEventArgs e) { - if ((e.Action == global::System.ComponentModel.CollectionChangeAction.Remove)) { - this.InitVars(); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedDataSetSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - global::System.Xml.Schema.XmlSchemaAny any = new global::System.Xml.Schema.XmlSchemaAny(); - any.Namespace = ds.Namespace; - sequence.Items.Add(any); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - - public delegate void RO000002RowChangeEventHandler(object sender, RO000002RowChangeEvent e); - - public delegate void RO000003RowChangeEventHandler(object sender, RO000003RowChangeEvent e); - - public delegate void RO000004RowChangeEventHandler(object sender, RO000004RowChangeEvent e); - - public delegate void ROMASTERRowChangeEventHandler(object sender, ROMASTERRowChangeEvent e); - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000002DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002DataTable() { - this.TableName = "RO000002"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000002DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000002DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row this[int index] { - get { - return ((RO000002Row)(this.Rows[index])); - } - } - - public event RO000002RowChangeEventHandler RO000002RowChanging; - - public event RO000002RowChangeEventHandler RO000002RowChanged; - - public event RO000002RowChangeEventHandler RO000002RowDeleting; - - public event RO000002RowChangeEventHandler RO000002RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000002Row(RO000002Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row AddRO000002Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000002Row rowRO000002Row = ((RO000002Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000002Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000002Row); - return rowRO000002Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000002DataTable cln = ((RO000002DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000002DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row NewRO000002Row() { - return ((RO000002Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000002Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000002Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000002RowChanged != null)) { - this.RO000002RowChanged(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000002RowChanging != null)) { - this.RO000002RowChanging(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000002RowDeleted != null)) { - this.RO000002RowDeleted(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000002RowDeleting != null)) { - this.RO000002RowDeleting(this, new RO000002RowChangeEvent(((RO000002Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000002Row(RO000002Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000002DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000003DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003DataTable() { - this.TableName = "RO000003"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000003DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000003DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row this[int index] { - get { - return ((RO000003Row)(this.Rows[index])); - } - } - - public event RO000003RowChangeEventHandler RO000003RowChanging; - - public event RO000003RowChangeEventHandler RO000003RowChanged; - - public event RO000003RowChangeEventHandler RO000003RowDeleting; - - public event RO000003RowChangeEventHandler RO000003RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000003Row(RO000003Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row AddRO000003Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000003Row rowRO000003Row = ((RO000003Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000003Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000003Row); - return rowRO000003Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000003DataTable cln = ((RO000003DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000003DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row NewRO000003Row() { - return ((RO000003Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000003Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000003Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000003RowChanged != null)) { - this.RO000003RowChanged(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000003RowChanging != null)) { - this.RO000003RowChanging(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000003RowDeleted != null)) { - this.RO000003RowDeleted(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000003RowDeleting != null)) { - this.RO000003RowDeleting(this, new RO000003RowChangeEvent(((RO000003Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000003Row(RO000003Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000003DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class RO000004DataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004DataTable() { - this.TableName = "RO000004"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000004DataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected RO000004DataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row this[int index] { - get { - return ((RO000004Row)(this.Rows[index])); - } - } - - public event RO000004RowChangeEventHandler RO000004RowChanging; - - public event RO000004RowChangeEventHandler RO000004RowChanged; - - public event RO000004RowChangeEventHandler RO000004RowDeleting; - - public event RO000004RowChangeEventHandler RO000004RowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddRO000004Row(RO000004Row row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row AddRO000004Row(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - RO000004Row rowRO000004Row = ((RO000004Row)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowRO000004Row.ItemArray = columnValuesArray; - this.Rows.Add(rowRO000004Row); - return rowRO000004Row; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - RO000004DataTable cln = ((RO000004DataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new RO000004DataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row NewRO000004Row() { - return ((RO000004Row)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new RO000004Row(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(RO000004Row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.RO000004RowChanged != null)) { - this.RO000004RowChanged(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.RO000004RowChanging != null)) { - this.RO000004RowChanging(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.RO000004RowDeleted != null)) { - this.RO000004RowDeleted(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.RO000004RowDeleting != null)) { - this.RO000004RowDeleting(this, new RO000004RowChangeEvent(((RO000004Row)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveRO000004Row(RO000004Row row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "RO000004DataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents the strongly named DataTable class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.Serializable()] - [global::System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")] - public partial class ROMASTERDataTable : global::System.Data.DataTable, global::System.Collections.IEnumerable { - - private global::System.Data.DataColumn columnRecID; - - private global::System.Data.DataColumn columnRecType; - - private global::System.Data.DataColumn columnParentID; - - private global::System.Data.DataColumn columnAccPageID; - - private global::System.Data.DataColumn columnModDateTime; - - private global::System.Data.DataColumn columnInfo; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERDataTable() { - this.TableName = "ROMASTER"; - this.BeginInit(); - this.InitClass(); - this.EndInit(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ROMASTERDataTable(global::System.Data.DataTable table) { - this.TableName = table.TableName; - if ((table.CaseSensitive != table.DataSet.CaseSensitive)) { - this.CaseSensitive = table.CaseSensitive; - } - if ((table.Locale.ToString() != table.DataSet.Locale.ToString())) { - this.Locale = table.Locale; - } - if ((table.Namespace != table.DataSet.Namespace)) { - this.Namespace = table.Namespace; - } - this.Prefix = table.Prefix; - this.MinimumCapacity = table.MinimumCapacity; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected ROMASTERDataTable(global::System.Runtime.Serialization.SerializationInfo info, global::System.Runtime.Serialization.StreamingContext context) : - base(info, context) { - this.InitVars(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecIDColumn { - get { - return this.columnRecID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn RecTypeColumn { - get { - return this.columnRecType; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ParentIDColumn { - get { - return this.columnParentID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn AccPageIDColumn { - get { - return this.columnAccPageID; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn ModDateTimeColumn { - get { - return this.columnModDateTime; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataColumn InfoColumn { - get { - return this.columnInfo; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Browsable(false)] - public int Count { - get { - return this.Rows.Count; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow this[int index] { - get { - return ((ROMASTERRow)(this.Rows[index])); - } - } - - public event ROMASTERRowChangeEventHandler ROMASTERRowChanging; - - public event ROMASTERRowChangeEventHandler ROMASTERRowChanged; - - public event ROMASTERRowChangeEventHandler ROMASTERRowDeleting; - - public event ROMASTERRowChangeEventHandler ROMASTERRowDeleted; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void AddROMASTERRow(ROMASTERRow row) { - this.Rows.Add(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow AddROMASTERRow(string RecID, int RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - ROMASTERRow rowROMASTERRow = ((ROMASTERRow)(this.NewRow())); - object[] columnValuesArray = new object[] { - RecID, - RecType, - ParentID, - AccPageID, - ModDateTime, - Info}; - rowROMASTERRow.ItemArray = columnValuesArray; - this.Rows.Add(rowROMASTERRow); - return rowROMASTERRow; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public virtual global::System.Collections.IEnumerator GetEnumerator() { - return this.Rows.GetEnumerator(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public override global::System.Data.DataTable Clone() { - ROMASTERDataTable cln = ((ROMASTERDataTable)(base.Clone())); - cln.InitVars(); - return cln; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataTable CreateInstance() { - return new ROMASTERDataTable(); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal void InitVars() { - this.columnRecID = base.Columns["RecID"]; - this.columnRecType = base.Columns["RecType"]; - this.columnParentID = base.Columns["ParentID"]; - this.columnAccPageID = base.Columns["AccPageID"]; - this.columnModDateTime = base.Columns["ModDateTime"]; - this.columnInfo = base.Columns["Info"]; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitClass() { - this.columnRecID = new global::System.Data.DataColumn("RecID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecID); - this.columnRecType = new global::System.Data.DataColumn("RecType", typeof(int), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnRecType); - this.columnParentID = new global::System.Data.DataColumn("ParentID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnParentID); - this.columnAccPageID = new global::System.Data.DataColumn("AccPageID", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnAccPageID); - this.columnModDateTime = new global::System.Data.DataColumn("ModDateTime", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnModDateTime); - this.columnInfo = new global::System.Data.DataColumn("Info", typeof(string), null, global::System.Data.MappingType.Element); - base.Columns.Add(this.columnInfo); - this.columnRecID.MaxLength = 8; - this.columnParentID.MaxLength = 8; - this.columnAccPageID.MaxLength = 32; - this.columnModDateTime.MaxLength = 14; - this.columnInfo.MaxLength = 536870910; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow NewROMASTERRow() { - return ((ROMASTERRow)(this.NewRow())); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Data.DataRow NewRowFromBuilder(global::System.Data.DataRowBuilder builder) { - return new ROMASTERRow(builder); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override global::System.Type GetRowType() { - return typeof(ROMASTERRow); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanged(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanged(e); - if ((this.ROMASTERRowChanged != null)) { - this.ROMASTERRowChanged(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowChanging(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowChanging(e); - if ((this.ROMASTERRowChanging != null)) { - this.ROMASTERRowChanging(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleted(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleted(e); - if ((this.ROMASTERRowDeleted != null)) { - this.ROMASTERRowDeleted(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected override void OnRowDeleting(global::System.Data.DataRowChangeEventArgs e) { - base.OnRowDeleting(e); - if ((this.ROMASTERRowDeleting != null)) { - this.ROMASTERRowDeleting(this, new ROMASTERRowChangeEvent(((ROMASTERRow)(e.Row)), e.Action)); - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void RemoveROMASTERRow(ROMASTERRow row) { - this.Rows.Remove(row); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public static global::System.Xml.Schema.XmlSchemaComplexType GetTypedTableSchema(global::System.Xml.Schema.XmlSchemaSet xs) { - global::System.Xml.Schema.XmlSchemaComplexType type = new global::System.Xml.Schema.XmlSchemaComplexType(); - global::System.Xml.Schema.XmlSchemaSequence sequence = new global::System.Xml.Schema.XmlSchemaSequence(); - ROMasterDataSet ds = new ROMasterDataSet(); - global::System.Xml.Schema.XmlSchemaAny any1 = new global::System.Xml.Schema.XmlSchemaAny(); - any1.Namespace = "http://www.w3.org/2001/XMLSchema"; - any1.MinOccurs = new decimal(0); - any1.MaxOccurs = decimal.MaxValue; - any1.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any1); - global::System.Xml.Schema.XmlSchemaAny any2 = new global::System.Xml.Schema.XmlSchemaAny(); - any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"; - any2.MinOccurs = new decimal(1); - any2.ProcessContents = global::System.Xml.Schema.XmlSchemaContentProcessing.Lax; - sequence.Items.Add(any2); - global::System.Xml.Schema.XmlSchemaAttribute attribute1 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute1.Name = "namespace"; - attribute1.FixedValue = ds.Namespace; - type.Attributes.Add(attribute1); - global::System.Xml.Schema.XmlSchemaAttribute attribute2 = new global::System.Xml.Schema.XmlSchemaAttribute(); - attribute2.Name = "tableTypeName"; - attribute2.FixedValue = "ROMASTERDataTable"; - type.Attributes.Add(attribute2); - type.Particle = sequence; - global::System.Xml.Schema.XmlSchema dsSchema = ds.GetSchemaSerializable(); - if (xs.Contains(dsSchema.TargetNamespace)) { - global::System.IO.MemoryStream s1 = new global::System.IO.MemoryStream(); - global::System.IO.MemoryStream s2 = new global::System.IO.MemoryStream(); - try { - global::System.Xml.Schema.XmlSchema schema = null; - dsSchema.Write(s1); - for (global::System.Collections.IEnumerator schemas = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator(); schemas.MoveNext(); ) { - schema = ((global::System.Xml.Schema.XmlSchema)(schemas.Current)); - s2.SetLength(0); - schema.Write(s2); - if ((s1.Length == s2.Length)) { - s1.Position = 0; - s2.Position = 0; - for (; ((s1.Position != s1.Length) - && (s1.ReadByte() == s2.ReadByte())); ) { - ; - } - if ((s1.Position == s1.Length)) { - return type; - } - } - } - } - finally { - if ((s1 != null)) { - s1.Close(); - } - if ((s2 != null)) { - s2.Close(); - } - } - } - xs.Add(dsSchema); - return type; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000002Row : global::System.Data.DataRow { - - private RO000002DataTable tableRO000002; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000002Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000002 = ((RO000002DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - try { - return ((string)(this[this.tableRO000002.RecIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecID\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000002.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000002.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000002.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000002.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000002.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000002\' is DBNull.", e); - } - } - set { - this[this.tableRO000002.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecIDNull() { - return this.IsNull(this.tableRO000002.RecIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecIDNull() { - this[this.tableRO000002.RecIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000002.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000002.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000002.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000002.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000002.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000002.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000002.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000002.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000002.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000002.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000003Row : global::System.Data.DataRow { - - private RO000003DataTable tableRO000003; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000003Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000003 = ((RO000003DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - try { - return ((string)(this[this.tableRO000003.RecIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecID\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000003.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000003.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000003.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000003.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000003.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000003\' is DBNull.", e); - } - } - set { - this[this.tableRO000003.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecIDNull() { - return this.IsNull(this.tableRO000003.RecIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecIDNull() { - this[this.tableRO000003.RecIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000003.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000003.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000003.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000003.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000003.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000003.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000003.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000003.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000003.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000003.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class RO000004Row : global::System.Data.DataRow { - - private RO000004DataTable tableRO000004; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal RO000004Row(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableRO000004 = ((RO000004DataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - try { - return ((string)(this[this.tableRO000004.RecIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecID\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableRO000004.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableRO000004.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableRO000004.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableRO000004.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableRO000004.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'RO000004\' is DBNull.", e); - } - } - set { - this[this.tableRO000004.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecIDNull() { - return this.IsNull(this.tableRO000004.RecIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecIDNull() { - this[this.tableRO000004.RecIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableRO000004.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableRO000004.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableRO000004.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableRO000004.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableRO000004.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableRO000004.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableRO000004.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableRO000004.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableRO000004.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableRO000004.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Represents strongly named DataRow class. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public partial class ROMASTERRow : global::System.Data.DataRow { - - private ROMASTERDataTable tableROMASTER; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal ROMASTERRow(global::System.Data.DataRowBuilder rb) : - base(rb) { - this.tableROMASTER = ((ROMASTERDataTable)(this.Table)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string RecID { - get { - try { - return ((string)(this[this.tableROMASTER.RecIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecID\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.RecIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public int RecType { - get { - try { - return ((int)(this[this.tableROMASTER.RecTypeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'RecType\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.RecTypeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ParentID { - get { - try { - return ((string)(this[this.tableROMASTER.ParentIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ParentID\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.ParentIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string AccPageID { - get { - try { - return ((string)(this[this.tableROMASTER.AccPageIDColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'AccPageID\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.AccPageIDColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string ModDateTime { - get { - try { - return ((string)(this[this.tableROMASTER.ModDateTimeColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'ModDateTime\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.ModDateTimeColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public string Info { - get { - try { - return ((string)(this[this.tableROMASTER.InfoColumn])); - } - catch (global::System.InvalidCastException e) { - throw new global::System.Data.StrongTypingException("The value for column \'Info\' in table \'ROMASTER\' is DBNull.", e); - } - } - set { - this[this.tableROMASTER.InfoColumn] = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecIDNull() { - return this.IsNull(this.tableROMASTER.RecIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecIDNull() { - this[this.tableROMASTER.RecIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsRecTypeNull() { - return this.IsNull(this.tableROMASTER.RecTypeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetRecTypeNull() { - this[this.tableROMASTER.RecTypeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsParentIDNull() { - return this.IsNull(this.tableROMASTER.ParentIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetParentIDNull() { - this[this.tableROMASTER.ParentIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsAccPageIDNull() { - return this.IsNull(this.tableROMASTER.AccPageIDColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetAccPageIDNull() { - this[this.tableROMASTER.AccPageIDColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsModDateTimeNull() { - return this.IsNull(this.tableROMASTER.ModDateTimeColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetModDateTimeNull() { - this[this.tableROMASTER.ModDateTimeColumn] = global::System.Convert.DBNull; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool IsInfoNull() { - return this.IsNull(this.tableROMASTER.InfoColumn); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public void SetInfoNull() { - this[this.tableROMASTER.InfoColumn] = global::System.Convert.DBNull; - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000002RowChangeEvent : global::System.EventArgs { - - private RO000002Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002RowChangeEvent(RO000002Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000003RowChangeEvent : global::System.EventArgs { - - private RO000003Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003RowChangeEvent(RO000003Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class RO000004RowChangeEvent : global::System.EventArgs { - - private RO000004Row eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004RowChangeEvent(RO000004Row row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004Row Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - - /// - ///Row event argument class - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - public class ROMASTERRowChangeEvent : global::System.EventArgs { - - private ROMASTERRow eventRow; - - private global::System.Data.DataRowAction eventAction; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRowChangeEvent(ROMASTERRow row, global::System.Data.DataRowAction action) { - this.eventRow = row; - this.eventAction = action; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERRow Row { - get { - return this.eventRow; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Data.DataRowAction Action { - get { - return this.eventAction; - } - } - } - } -} -namespace WestinghouseROLoad.ROMasterDataSetTableAdapters { - - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000002TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000002TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000002"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000002` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROLoad.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000002"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000002DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000002DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000002DataTable dataTable = new ROMasterDataSet.RO000002DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000002DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000002"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000003TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000003TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000003"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000003` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROLoad.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000003"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000003DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000003DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000003DataTable dataTable = new ROMasterDataSet.RO000003DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000003DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000003"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class RO000004TableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public RO000004TableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "RO000004"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `RO000004` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROLoad.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000004"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.RO000004DataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.RO000004DataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.RO000004DataTable dataTable = new ROMasterDataSet.RO000004DataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.RO000004DataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "RO000004"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } - - /// - ///Represents the connection and commands used to retrieve and save data. - /// - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "2.0.0.0")] - [global::System.ComponentModel.DesignerCategoryAttribute("code")] - [global::System.ComponentModel.ToolboxItem(true)] - [global::System.ComponentModel.DataObjectAttribute(true)] - [global::System.ComponentModel.DesignerAttribute("Microsoft.VSDesigner.DataSource.Design.TableAdapterDesigner, Microsoft.VSDesigner" + - ", Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a")] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public partial class ROMASTERTableAdapter : global::System.ComponentModel.Component { - - private global::System.Data.OleDb.OleDbDataAdapter _adapter; - - private global::System.Data.OleDb.OleDbConnection _connection; - - private global::System.Data.OleDb.OleDbCommand[] _commandCollection; - - private bool _clearBeforeFill; - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public ROMASTERTableAdapter() { - this.ClearBeforeFill = true; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private global::System.Data.OleDb.OleDbDataAdapter Adapter { - get { - if ((this._adapter == null)) { - this.InitAdapter(); - } - return this._adapter; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - internal global::System.Data.OleDb.OleDbConnection Connection { - get { - if ((this._connection == null)) { - this.InitConnection(); - } - return this._connection; - } - set { - this._connection = value; - if ((this.Adapter.InsertCommand != null)) { - this.Adapter.InsertCommand.Connection = value; - } - if ((this.Adapter.DeleteCommand != null)) { - this.Adapter.DeleteCommand.Connection = value; - } - if ((this.Adapter.UpdateCommand != null)) { - this.Adapter.UpdateCommand.Connection = value; - } - for (int i = 0; (i < this.CommandCollection.Length); i = (i + 1)) { - if ((this.CommandCollection[i] != null)) { - ((global::System.Data.OleDb.OleDbCommand)(this.CommandCollection[i])).Connection = value; - } - } - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - protected global::System.Data.OleDb.OleDbCommand[] CommandCollection { - get { - if ((this._commandCollection == null)) { - this.InitCommandCollection(); - } - return this._commandCollection; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public bool ClearBeforeFill { - get { - return this._clearBeforeFill; - } - set { - this._clearBeforeFill = value; - } - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitAdapter() { - this._adapter = new global::System.Data.OleDb.OleDbDataAdapter(); - global::System.Data.Common.DataTableMapping tableMapping = new global::System.Data.Common.DataTableMapping(); - tableMapping.SourceTable = "Table"; - tableMapping.DataSetTable = "ROMASTER"; - tableMapping.ColumnMappings.Add("RecID", "RecID"); - tableMapping.ColumnMappings.Add("RecType", "RecType"); - tableMapping.ColumnMappings.Add("ParentID", "ParentID"); - tableMapping.ColumnMappings.Add("AccPageID", "AccPageID"); - tableMapping.ColumnMappings.Add("ModDateTime", "ModDateTime"); - tableMapping.ColumnMappings.Add("Info", "Info"); - this._adapter.TableMappings.Add(tableMapping); - this._adapter.InsertCommand = new global::System.Data.OleDb.OleDbCommand(); - this._adapter.InsertCommand.Connection = this.Connection; - this._adapter.InsertCommand.CommandText = "INSERT INTO `ROMASTER` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime" + - "`, `Info`) VALUES (?, ?, ?, ?, ?, ?)"; - this._adapter.InsertCommand.CommandType = global::System.Data.CommandType.Text; - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("RecType", global::System.Data.OleDb.OleDbType.Integer, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "RecType", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ParentID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ParentID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("AccPageID", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "AccPageID", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("ModDateTime", global::System.Data.OleDb.OleDbType.WChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "ModDateTime", global::System.Data.DataRowVersion.Current, false, null)); - this._adapter.InsertCommand.Parameters.Add(new global::System.Data.OleDb.OleDbParameter("Info", global::System.Data.OleDb.OleDbType.LongVarWChar, 0, global::System.Data.ParameterDirection.Input, ((byte)(0)), ((byte)(0)), "Info", global::System.Data.DataRowVersion.Current, false, null)); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitConnection() { - this._connection = new global::System.Data.OleDb.OleDbConnection(); - this._connection.ConnectionString = global::WestinghouseROLoad.Properties.Settings.Default.ROMasterConnectionString; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - private void InitCommandCollection() { - this._commandCollection = new global::System.Data.OleDb.OleDbCommand[1]; - this._commandCollection[0] = new global::System.Data.OleDb.OleDbCommand(); - this._commandCollection[0].Connection = this.Connection; - this._commandCollection[0].CommandText = "SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM ROMASTER"; - this._commandCollection[0].CommandType = global::System.Data.CommandType.Text; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Fill, true)] - public virtual int Fill(ROMasterDataSet.ROMASTERDataTable dataTable) { - this.Adapter.SelectCommand = this.CommandCollection[0]; - if ((this.ClearBeforeFill == true)) { - dataTable.Clear(); - } - int returnValue = this.Adapter.Fill(dataTable); - return returnValue; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Select, true)] - public virtual ROMasterDataSet.ROMASTERDataTable GetData() { - this.Adapter.SelectCommand = this.CommandCollection[0]; - ROMasterDataSet.ROMASTERDataTable dataTable = new ROMasterDataSet.ROMASTERDataTable(); - this.Adapter.Fill(dataTable); - return dataTable; - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet.ROMASTERDataTable dataTable) { - return this.Adapter.Update(dataTable); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(ROMasterDataSet dataSet) { - return this.Adapter.Update(dataSet, "ROMASTER"); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow dataRow) { - return this.Adapter.Update(new global::System.Data.DataRow[] { - dataRow}); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - public virtual int Update(global::System.Data.DataRow[] dataRows) { - return this.Adapter.Update(dataRows); - } - - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.ComponentModel.Design.HelpKeywordAttribute("vs.data.TableAdapter")] - [global::System.ComponentModel.DataObjectMethodAttribute(global::System.ComponentModel.DataObjectMethodType.Insert, true)] - public virtual int Insert(string RecID, global::System.Nullable RecType, string ParentID, string AccPageID, string ModDateTime, string Info) { - if ((RecID == null)) { - this.Adapter.InsertCommand.Parameters[0].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[0].Value = ((string)(RecID)); - } - if ((RecType.HasValue == true)) { - this.Adapter.InsertCommand.Parameters[1].Value = ((int)(RecType.Value)); - } - else { - this.Adapter.InsertCommand.Parameters[1].Value = global::System.DBNull.Value; - } - if ((ParentID == null)) { - this.Adapter.InsertCommand.Parameters[2].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[2].Value = ((string)(ParentID)); - } - if ((AccPageID == null)) { - this.Adapter.InsertCommand.Parameters[3].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[3].Value = ((string)(AccPageID)); - } - if ((ModDateTime == null)) { - this.Adapter.InsertCommand.Parameters[4].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[4].Value = ((string)(ModDateTime)); - } - if ((Info == null)) { - this.Adapter.InsertCommand.Parameters[5].Value = global::System.DBNull.Value; - } - else { - this.Adapter.InsertCommand.Parameters[5].Value = ((string)(Info)); - } - global::System.Data.ConnectionState previousConnectionState = this.Adapter.InsertCommand.Connection.State; - if (((this.Adapter.InsertCommand.Connection.State & global::System.Data.ConnectionState.Open) - != global::System.Data.ConnectionState.Open)) { - this.Adapter.InsertCommand.Connection.Open(); - } - try { - int returnValue = this.Adapter.InsertCommand.ExecuteNonQuery(); - return returnValue; - } - finally { - if ((previousConnectionState == global::System.Data.ConnectionState.Closed)) { - this.Adapter.InsertCommand.Connection.Close(); - } - } - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsc b/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsc deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsc +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsd b/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsd deleted file mode 100644 index e681d44b..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xsd +++ /dev/null @@ -1,359 +0,0 @@ - - - - - - - - - - - - - - - - INSERT INTO `RO000002` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000002 - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO `RO000003` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000003 - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO `RO000004` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM RO000004 - - - - - - - - - - - - - - - - - - - - - - - INSERT INTO `ROMASTER` (`RecID`, `RecType`, `ParentID`, `AccPageID`, `ModDateTime`, `Info`) VALUES (?, ?, ?, ?, ?, ?) - - - - - - - - - - - - - - - - - - - SELECT RecID, RecType, ParentID, AccPageID, ModDateTime, Info FROM ROMASTER - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xss b/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xss deleted file mode 100644 index 5f282702..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/ROMasterDataSet.xss +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/WestinghouseROLoad.csproj b/PROMS/ROConvert/WestinghouseROLoad/WestinghouseROLoad.csproj deleted file mode 100644 index 3d35d028..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/WestinghouseROLoad.csproj +++ /dev/null @@ -1,111 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {996C160F-280F-46E5-B361-F468242A8FAB} - WinExe - Properties - WestinghouseROLoad - WestinghouseROLoad - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmImportROs.cs - - - - - Designer - frmImportROs.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - ROImportDataSet.xsd - - - MSDataSetGenerator - ROImportDataSet.Designer.cs - Designer - - - ROImportDataSet.xsd - - - ROMasterDataSet.xsd - - - MSDataSetGenerator - ROMasterDataSet.Designer.cs - Designer - - - ROMasterDataSet.xsd - - - True - Settings.settings - True - - - True - True - ROImportDataSet.xsd - - - True - True - ROMasterDataSet.xsd - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/app.config b/PROMS/ROConvert/WestinghouseROLoad/app.config deleted file mode 100644 index d29506cc..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/app.config +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.Designer.cs b/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.Designer.cs deleted file mode 100644 index c230d640..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.Designer.cs +++ /dev/null @@ -1,145 +0,0 @@ -namespace WestinghouseROLoad -{ - partial class frmImportROs - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.rOImportDataSet = new WestinghouseROLoad.ROImportDataSet(); - this.rOMasterDataSet = new WestinghouseROLoad.ROMasterDataSet(); - this.STPTableAdapter = new WestinghouseROLoad.ROMasterDataSetTableAdapters.RO000002TableAdapter(); - this.STPImportTableAdapter = new WestinghouseROLoad.ROImportDataSetTableAdapters.ImportSTP_qryTableAdapter(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.setpointsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.emptyExistingToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.loadToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - ((System.ComponentModel.ISupportInitialize)(this.rOImportDataSet)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOMasterDataSet)).BeginInit(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // rOImportDataSet - // - this.rOImportDataSet.DataSetName = "ROImportDataSet"; - this.rOImportDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; - // - // rOMasterDataSet - // - this.rOMasterDataSet.DataSetName = "ROMasterDataSet"; - this.rOMasterDataSet.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema; - // - // STPTableAdapter - // - this.STPTableAdapter.ClearBeforeFill = true; - // - // STPImportTableAdapter - // - this.STPImportTableAdapter.ClearBeforeFill = true; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.setpointsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(592, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - // - // setpointsToolStripMenuItem - // - this.setpointsToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.emptyExistingToolStripMenuItem, - this.loadToolStripMenuItem}); - this.setpointsToolStripMenuItem.Name = "setpointsToolStripMenuItem"; - this.setpointsToolStripMenuItem.Size = new System.Drawing.Size(68, 20); - this.setpointsToolStripMenuItem.Text = "Setpoints"; - // - // emptyExistingToolStripMenuItem - // - this.emptyExistingToolStripMenuItem.Name = "emptyExistingToolStripMenuItem"; - this.emptyExistingToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.emptyExistingToolStripMenuItem.Text = "Empty Existing"; - this.emptyExistingToolStripMenuItem.Click += new System.EventHandler(this.emptyExistingToolStripMenuItem_Click); - // - // loadToolStripMenuItem - // - this.loadToolStripMenuItem.Name = "loadToolStripMenuItem"; - this.loadToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.loadToolStripMenuItem.Text = "Load New"; - this.loadToolStripMenuItem.Click += new System.EventHandler(this.loadToolStripMenuItem_Click); - // - // frmImportROs - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(592, 296); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmImportROs"; - this.Text = "Import Westinghouse ROs"; - this.Load += new System.EventHandler(this.frmImportROs_Load); - ((System.ComponentModel.ISupportInitialize)(this.rOImportDataSet)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.rOMasterDataSet)).EndInit(); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private ROMasterDataSet rOMasterDataSet; - private WestinghouseROLoad.ROMasterDataSetTableAdapters.RO000002TableAdapter STPTableAdapter; - private ROImportDataSet rOImportDataSet; - private WestinghouseROLoad.ROImportDataSetTableAdapters.ImportSTP_qryTableAdapter STPImportTableAdapter; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem setpointsToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem emptyExistingToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem loadToolStripMenuItem; - } -} - diff --git a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.cs b/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.cs deleted file mode 100644 index 67d389b6..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.cs +++ /dev/null @@ -1,57 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace WestinghouseROLoad -{ - public partial class frmImportROs : Form - { - public frmImportROs() - { - InitializeComponent(); - } - - private void frmImportROs_Load(object sender, EventArgs e) - { - STPTableAdapter.Fill(this.rOMasterDataSet.RO000002); - } - private void emptyExistingToolStripMenuItem_Click(object sender, EventArgs e) - { - DataTable dto = STPTableAdapter.GetData(); - foreach (DataRow dr in dto.Rows) - { - if (int.Parse(dr["RecType"].ToString()) == 3) // Remove Grouping - { - if (dr["ParentID"].ToString() != "00000000") - { - dr.Delete(); - STPTableAdapter.Update(dr); - } - } - if (int.Parse(dr["RecType"].ToString()) == 5) // Remove ROs - { - dr.Delete(); - STPTableAdapter.Update(dr); - } - } - } - private void loadToolStripMenuItem_Click(object sender, EventArgs e) - { - DataTable dto = STPTableAdapter.GetData(); - DataRow drCount = dto.Rows[0]; - Console.WriteLine("{0}", drCount["Info"].ToString()); - STPImportTableAdapter.Fill(this.rOImportDataSet.ImportSTP_qry); - DataTable dti = STPImportTableAdapter.GetData(); - foreach (DataRow dr in dti.Rows) - { - // Parameter Name Value Description - Console.WriteLine("Name = '{0}', Value = '{1}', Description = '{2}'", - dr["Name"], dr["Value"], dr["Description"]); - } - } - } -} \ No newline at end of file diff --git a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.resx b/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.resx deleted file mode 100644 index d86b8ccc..00000000 --- a/PROMS/ROConvert/WestinghouseROLoad/frmImportROs.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 324, 15 - - - 17, 17 - - - 179, 15 - - - 481, 17 - - - 663, 17 - - \ No newline at end of file diff --git a/PROMS/RTB Testing/Program.cs b/PROMS/RTB Testing/Program.cs deleted file mode 100644 index 26aff32a..00000000 --- a/PROMS/RTB Testing/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace RTB_Testing -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmProcess()); - } - } -} \ No newline at end of file diff --git a/PROMS/RTB Testing/Properties/AssemblyInfo.cs b/PROMS/RTB Testing/Properties/AssemblyInfo.cs deleted file mode 100644 index a71c6ac7..00000000 --- a/PROMS/RTB Testing/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("RTB Testing")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("RTB Testing")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("821f804f-1acf-4f63-a926-92ba17b88df0")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/RTB Testing/Properties/Resources.Designer.cs b/PROMS/RTB Testing/Properties/Resources.Designer.cs deleted file mode 100644 index aa51cad0..00000000 --- a/PROMS/RTB Testing/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace RTB_Testing.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RTB_Testing.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/RTB Testing/Properties/Resources.resx b/PROMS/RTB Testing/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/RTB Testing/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/RTB Testing/Properties/Settings.Designer.cs b/PROMS/RTB Testing/Properties/Settings.Designer.cs deleted file mode 100644 index 7a021a29..00000000 --- a/PROMS/RTB Testing/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace RTB_Testing.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/RTB Testing/Properties/Settings.settings b/PROMS/RTB Testing/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/RTB Testing/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/RTB Testing/RTB Testing.csproj b/PROMS/RTB Testing/RTB Testing.csproj deleted file mode 100644 index 667c33f7..00000000 --- a/PROMS/RTB Testing/RTB Testing.csproj +++ /dev/null @@ -1,163 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {22D82031-2796-48BC-83B5-15DC43AAA1DE} - WinExe - Properties - RTB_Testing - RTB Testing - v2.0 - - - - - 2.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - False - ..\..\Volian.Controls.Library\obj\x86\Debug\AxInterop.DSOFramer.dll - - - - - False - F:\CSLA\csla20cs-2.1.4-070223\csla20cs\csla20cs\Csla\bin\Debug\Csla.dll - - - True - - - False - ..\..\DropDownPanel\bin\Debug\DropDownPanel.dll - - - False - ..\..\Volian.Controls.Library\obj\x86\Debug\Interop.DSOFramer.dll - - - False - ..\..\LBWordLibrary\bin\Debug\LBWordLibrary.dll - - - False - F:\Log4Net\log4net-1.2.10\bin\net\2.0\debug\log4net.dll - - - - - - - - - False - ..\..\TablePicker\bin\Debug\TablePicker.dll - - - False - ..\..\Volian.Base.Library\bin\Debug\Volian.Base.Library.dll - - - False - ..\..\XYPlots\bin\Debug\XYPlots.dll - - - - - Form - - - frmProcess.cs - - - Form - - - frmRTBTesting.cs - - - - - Designer - frmProcess.cs - - - Designer - frmRTBTesting.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - - - \ No newline at end of file diff --git a/PROMS/RTB Testing/frmProcess.Designer.cs b/PROMS/RTB Testing/frmProcess.Designer.cs deleted file mode 100644 index 654bacc5..00000000 Binary files a/PROMS/RTB Testing/frmProcess.Designer.cs and /dev/null differ diff --git a/PROMS/RTB Testing/frmProcess.cs b/PROMS/RTB Testing/frmProcess.cs deleted file mode 100644 index 3dad3842..00000000 --- a/PROMS/RTB Testing/frmProcess.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using Volian.Controls.Library; - -namespace RTB_Testing -{ - public partial class frmProcess : Form - { - public frmProcess() - { - InitializeComponent(); - frmRTBTesting myTest = new frmRTBTesting(); - myTest.Show(); - } - - private void tbInput_TextChanged(object sender, EventArgs e) - { - Clipboard.Clear(); - Clipboard.SetData("Rich Text Format",tbInput.Text); - stepRTB1.Paste(); - stepRTB1.SelectAll(); - stepRTB1.Copy(); - rtb.Paste(); - //stepRTB1.Rtf = tbInput.Text; - //rtb.Rtf = tbInput.Text; - tbText.Text = stepRTB1.Text; - tbRtf.Text = stepRTB1.Rtf; - RichTextBox41 rtb41 = new RichTextBox41(); - rtb41.Rtf = tbInput.Text; - tbProcess.Text = rtb41.Rtf; - } - } -} \ No newline at end of file diff --git a/PROMS/RTB Testing/frmProcess.resx b/PROMS/RTB Testing/frmProcess.resx deleted file mode 100644 index 25aba6a2..00000000 --- a/PROMS/RTB Testing/frmProcess.resx +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - {\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 Courier New;}{\f1\fnil\fcharset0 VESymbFix;}}{\colortbl ;\red255\green0\blue0;} -\viewkind4\uc1\pard\sl-240\slmult0\fs24 test \\kbr} - - \ No newline at end of file diff --git a/PROMS/RTB Testing/frmRTBTesting.Designer.cs b/PROMS/RTB Testing/frmRTBTesting.Designer.cs deleted file mode 100644 index 1dc5022e..00000000 --- a/PROMS/RTB Testing/frmRTBTesting.Designer.cs +++ /dev/null @@ -1,275 +0,0 @@ -namespace RTB_Testing -{ - partial class frmRTBTesting - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.splitContainer2 = new System.Windows.Forms.SplitContainer(); - this.stepRTB = new Volian.Controls.Library.StepRTB(this.components); - this.rtb = new System.Windows.Forms.RichTextBox(); - this.splitContainer3 = new System.Windows.Forms.SplitContainer(); - this.splitContainer4 = new System.Windows.Forms.SplitContainer(); - this.tb = new System.Windows.Forms.TextBox(); - this.tbSelected = new System.Windows.Forms.TextBox(); - this.tbResults = new System.Windows.Forms.TextBox(); - this.tbRegex = new System.Windows.Forms.TextBox(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.splitContainer2.Panel1.SuspendLayout(); - this.splitContainer2.Panel2.SuspendLayout(); - this.splitContainer2.SuspendLayout(); - this.splitContainer3.Panel1.SuspendLayout(); - this.splitContainer3.Panel2.SuspendLayout(); - this.splitContainer3.SuspendLayout(); - this.splitContainer4.Panel1.SuspendLayout(); - this.splitContainer4.Panel2.SuspendLayout(); - this.splitContainer4.SuspendLayout(); - this.SuspendLayout(); - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 0); - this.splitContainer1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.splitContainer1.Name = "splitContainer1"; - this.splitContainer1.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.splitContainer2); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.splitContainer3); - this.splitContainer1.Size = new System.Drawing.Size(796, 732); - this.splitContainer1.SplitterDistance = 230; - this.splitContainer1.SplitterWidth = 5; - this.splitContainer1.TabIndex = 0; - // - // splitContainer2 - // - this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer2.Location = new System.Drawing.Point(0, 0); - this.splitContainer2.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.splitContainer2.Name = "splitContainer2"; - // - // splitContainer2.Panel1 - // - this.splitContainer2.Panel1.Controls.Add(this.stepRTB); - // - // splitContainer2.Panel2 - // - this.splitContainer2.Panel2.Controls.Add(this.rtb); - this.splitContainer2.Size = new System.Drawing.Size(796, 230); - this.splitContainer2.SplitterDistance = 400; - this.splitContainer2.SplitterWidth = 5; - this.splitContainer2.TabIndex = 0; - // - // stepRTB - // - this.stepRTB.ActiveMode = false; - this.stepRTB.AdjustSize = new System.Drawing.Size(0, 0); - this.stepRTB.BorderStyle = System.Windows.Forms.BorderStyle.None; - this.stepRTB.CheckAbove = "|│└┬┼├┌┴┐┤"; - this.stepRTB.CheckBelow = "|│"; - this.stepRTB.CheckLeft = "-─┤┬├┼┌┐└‑"; - this.stepRTB.CheckRight = "-─‑"; - this.stepRTB.Closed = false; - this.stepRTB.ContentsRectangle = new System.Drawing.Rectangle(0, 0, 300, 20); - this.stepRTB.Dock = System.Windows.Forms.DockStyle.Fill; - this.stepRTB.EditMode = true; - this.stepRTB.FieldToEdit = Volian.Controls.Library.E_FieldToEdit.StepText; - this.stepRTB.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.stepRTB.FormatFont = new System.Drawing.Font("Microsoft Sans Serif", 8.25F); - this.stepRTB.LastRtf = ""; - this.stepRTB.Location = new System.Drawing.Point(0, 0); - this.stepRTB.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.stepRTB.MyClassName = "RichEdit20W"; - this.stepRTB.MyItemInfo = null; - this.stepRTB.MyLinkText = null; - this.stepRTB.Name = "stepRTB"; - this.stepRTB.OrigDisplayText = null; - this.stepRTB.OrigRTF = null; - this.stepRTB.ProcessKeystrokes = true; - this.stepRTB.RTBRangeStatus = Volian.Controls.Library.StepRTB.RangeStatus.NoContainedLinks; - this.stepRTB.ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None; - this.stepRTB.ShowDebug = false; - this.stepRTB.Size = new System.Drawing.Size(400, 230); - this.stepRTB.TabIndex = 0; - this.stepRTB.Text = ""; - this.stepRTB.ThisContextMenuStrip = null; - this.stepRTB.VwMode = VEPROMS.CSLA.Library.E_ViewMode.Edit; - this.stepRTB.TextChanged += new System.EventHandler(this.stepRTB_TextChanged); - this.stepRTB.SelectionChanged += new System.EventHandler(this.stepRTB_SelectionChanged); - // - // rtb - // - this.rtb.DetectUrls = false; - this.rtb.Dock = System.Windows.Forms.DockStyle.Fill; - this.rtb.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.rtb.Location = new System.Drawing.Point(0, 0); - this.rtb.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.rtb.Name = "rtb"; - this.rtb.Size = new System.Drawing.Size(391, 230); - this.rtb.TabIndex = 0; - this.rtb.Text = ""; - this.rtb.SelectionChanged += new System.EventHandler(this.rtb_SelectionChanged); - this.rtb.TextChanged += new System.EventHandler(this.rtb_TextChanged); - // - // splitContainer3 - // - this.splitContainer3.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer3.Location = new System.Drawing.Point(0, 0); - this.splitContainer3.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.splitContainer3.Name = "splitContainer3"; - this.splitContainer3.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // splitContainer3.Panel1 - // - this.splitContainer3.Panel1.Controls.Add(this.splitContainer4); - // - // splitContainer3.Panel2 - // - this.splitContainer3.Panel2.Controls.Add(this.tbResults); - this.splitContainer3.Panel2.Controls.Add(this.tbRegex); - this.splitContainer3.Size = new System.Drawing.Size(796, 497); - this.splitContainer3.SplitterDistance = 244; - this.splitContainer3.SplitterWidth = 5; - this.splitContainer3.TabIndex = 0; - // - // splitContainer4 - // - this.splitContainer4.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer4.Location = new System.Drawing.Point(0, 0); - this.splitContainer4.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.splitContainer4.Name = "splitContainer4"; - this.splitContainer4.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // splitContainer4.Panel1 - // - this.splitContainer4.Panel1.Controls.Add(this.tb); - // - // splitContainer4.Panel2 - // - this.splitContainer4.Panel2.Controls.Add(this.tbSelected); - this.splitContainer4.Size = new System.Drawing.Size(796, 244); - this.splitContainer4.SplitterDistance = 105; - this.splitContainer4.SplitterWidth = 5; - this.splitContainer4.TabIndex = 1; - // - // tb - // - this.tb.Dock = System.Windows.Forms.DockStyle.Fill; - this.tb.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tb.Location = new System.Drawing.Point(0, 0); - this.tb.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tb.Multiline = true; - this.tb.Name = "tb"; - this.tb.Size = new System.Drawing.Size(796, 105); - this.tb.TabIndex = 0; - this.tb.TextChanged += new System.EventHandler(this.tb_TextChanged); - // - // tbSelected - // - this.tbSelected.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbSelected.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbSelected.Location = new System.Drawing.Point(0, 0); - this.tbSelected.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbSelected.Multiline = true; - this.tbSelected.Name = "tbSelected"; - this.tbSelected.Size = new System.Drawing.Size(796, 134); - this.tbSelected.TabIndex = 1; - // - // tbResults - // - this.tbResults.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbResults.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbResults.Location = new System.Drawing.Point(0, 27); - this.tbResults.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbResults.Multiline = true; - this.tbResults.Name = "tbResults"; - this.tbResults.Size = new System.Drawing.Size(796, 221); - this.tbResults.TabIndex = 1; - // - // tbRegex - // - this.tbRegex.Dock = System.Windows.Forms.DockStyle.Top; - this.tbRegex.Font = new System.Drawing.Font("Lucida Console", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbRegex.Location = new System.Drawing.Point(0, 0); - this.tbRegex.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbRegex.Name = "tbRegex"; - this.tbRegex.Size = new System.Drawing.Size(796, 27); - this.tbRegex.TabIndex = 0; - this.tbRegex.Text = "(? - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/ReferencedObjects.7z b/PROMS/ReferencedObjects.7z deleted file mode 100644 index 1c83f575..00000000 Binary files a/PROMS/ReferencedObjects.7z and /dev/null differ diff --git a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AboutROEditor.Designer.cs.bak b/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AboutROEditor.Designer.cs.bak deleted file mode 100644 index 65734205..00000000 --- a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AboutROEditor.Designer.cs.bak +++ /dev/null @@ -1,190 +0,0 @@ -namespace ROEditor -{ - partial class AboutROEditor - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutROEditor)); - this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); - this.logoPictureBox = new System.Windows.Forms.PictureBox(); - this.labelProductName = new System.Windows.Forms.Label(); - this.labelVersion = new System.Windows.Forms.Label(); - this.labelCopyright = new System.Windows.Forms.Label(); - this.labelCompanyName = new System.Windows.Forms.Label(); - this.textBoxDescription = new System.Windows.Forms.TextBox(); - this.okButton = new System.Windows.Forms.Button(); - this.tableLayoutPanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit(); - this.SuspendLayout(); - // - // tableLayoutPanel - // - this.tableLayoutPanel.ColumnCount = 2; - this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F)); - this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F)); - this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0); - this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0); - this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1); - this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2); - this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3); - this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4); - this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5); - this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; - this.tableLayoutPanel.Location = new System.Drawing.Point(12, 11); - this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(4); - this.tableLayoutPanel.Name = "tableLayoutPanel"; - this.tableLayoutPanel.RowCount = 6; - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); - this.tableLayoutPanel.Size = new System.Drawing.Size(556, 326); - this.tableLayoutPanel.TabIndex = 0; - // - // logoPictureBox - // - this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image"))); - this.logoPictureBox.Location = new System.Drawing.Point(4, 4); - this.logoPictureBox.Margin = new System.Windows.Forms.Padding(4); - this.logoPictureBox.Name = "logoPictureBox"; - this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6); - this.logoPictureBox.Size = new System.Drawing.Size(175, 318); - this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - this.logoPictureBox.TabIndex = 12; - this.logoPictureBox.TabStop = false; - // - // labelProductName - // - this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelProductName.Location = new System.Drawing.Point(191, 0); - this.labelProductName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - this.labelProductName.MaximumSize = new System.Drawing.Size(0, 21); - this.labelProductName.Name = "labelProductName"; - this.labelProductName.Size = new System.Drawing.Size(361, 21); - this.labelProductName.TabIndex = 19; - this.labelProductName.Text = "Product Name"; - this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // labelVersion - // - this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelVersion.Location = new System.Drawing.Point(191, 32); - this.labelVersion.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - this.labelVersion.MaximumSize = new System.Drawing.Size(0, 21); - this.labelVersion.Name = "labelVersion"; - this.labelVersion.Size = new System.Drawing.Size(361, 21); - this.labelVersion.TabIndex = 0; - this.labelVersion.Text = "Version"; - this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // labelCopyright - // - this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelCopyright.Location = new System.Drawing.Point(191, 64); - this.labelCopyright.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 21); - this.labelCopyright.Name = "labelCopyright"; - this.labelCopyright.Size = new System.Drawing.Size(361, 21); - this.labelCopyright.TabIndex = 21; - this.labelCopyright.Text = "Copyright"; - this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // labelCompanyName - // - this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelCompanyName.Location = new System.Drawing.Point(191, 96); - this.labelCompanyName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 21); - this.labelCompanyName.Name = "labelCompanyName"; - this.labelCompanyName.Size = new System.Drawing.Size(361, 21); - this.labelCompanyName.TabIndex = 22; - this.labelCompanyName.Text = "Company Name"; - this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // textBoxDescription - // - this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill; - this.textBoxDescription.Location = new System.Drawing.Point(191, 132); - this.textBoxDescription.Margin = new System.Windows.Forms.Padding(8, 4, 4, 4); - this.textBoxDescription.Multiline = true; - this.textBoxDescription.Name = "textBoxDescription"; - this.textBoxDescription.ReadOnly = true; - this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.textBoxDescription.Size = new System.Drawing.Size(361, 155); - this.textBoxDescription.TabIndex = 23; - this.textBoxDescription.TabStop = false; - this.textBoxDescription.Text = "Description"; - // - // okButton - // - this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.okButton.Location = new System.Drawing.Point(452, 295); - this.okButton.Margin = new System.Windows.Forms.Padding(4); - this.okButton.Name = "okButton"; - this.okButton.Size = new System.Drawing.Size(100, 27); - this.okButton.TabIndex = 24; - this.okButton.Text = "&OK"; - // - // AboutROEditor - // - this.AcceptButton = this.okButton; - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(580, 348); - this.Controls.Add(this.tableLayoutPanel); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Margin = new System.Windows.Forms.Padding(4); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "AboutROEditor"; - this.Padding = new System.Windows.Forms.Padding(12, 11, 12, 11); - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "AboutROEditor"; - this.tableLayoutPanel.ResumeLayout(false); - this.tableLayoutPanel.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.TableLayoutPanel tableLayoutPanel; - private System.Windows.Forms.PictureBox logoPictureBox; - private System.Windows.Forms.Label labelProductName; - private System.Windows.Forms.Label labelVersion; - private System.Windows.Forms.Label labelCopyright; - private System.Windows.Forms.Label labelCompanyName; - private System.Windows.Forms.TextBox textBoxDescription; - private System.Windows.Forms.Button okButton; - } -} diff --git a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AboutROEditor.cs.bak b/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AboutROEditor.cs.bak deleted file mode 100644 index f7c69396..00000000 --- a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AboutROEditor.cs.bak +++ /dev/null @@ -1,115 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Windows.Forms; -using System.Reflection; - -namespace ROEditor -{ - partial class AboutROEditor : Form - { - public AboutROEditor() - { - InitializeComponent(); - - // Initialize the AboutBox to display the product information from the assembly information. - // Change assembly information settings for your application through either: - // - Project->Properties->Application->Assembly Information - // - AssemblyInfo.cs - this.Text = String.Format("About {0}", AssemblyTitle); - this.labelProductName.Text = AssemblyProduct; - this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion); - this.labelCopyright.Text = AssemblyCopyright; - this.labelCompanyName.Text = AssemblyCompany; - this.textBoxDescription.Text = AssemblyDescription; - } - - #region Assembly Attribute Accessors - - public string AssemblyTitle - { - get - { - // Get all Title attributes on this assembly - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); - // If there is at least one Title attribute - if (attributes.Length > 0) - { - // Select the first one - AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0]; - // If it is not an empty string, return it - if (titleAttribute.Title != "") - return titleAttribute.Title; - } - // If there was no Title attribute, or if the Title attribute was the empty string, return the .exe name - return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); - } - } - - public string AssemblyVersion - { - get - { - return Assembly.GetExecutingAssembly().GetName().Version.ToString(); - } - } - - public string AssemblyDescription - { - get - { - // Get all Description attributes on this assembly - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); - // If there aren't any Description attributes, return an empty string - if (attributes.Length == 0) - return ""; - // If there is a Description attribute, return its value - return ((AssemblyDescriptionAttribute)attributes[0]).Description; - } - } - - public string AssemblyProduct - { - get - { - // Get all Product attributes on this assembly - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false); - // If there aren't any Product attributes, return an empty string - if (attributes.Length == 0) - return ""; - // If there is a Product attribute, return its value - return ((AssemblyProductAttribute)attributes[0]).Product; - } - } - - public string AssemblyCopyright - { - get - { - // Get all Copyright attributes on this assembly - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); - // If there aren't any Copyright attributes, return an empty string - if (attributes.Length == 0) - return ""; - // If there is a Copyright attribute, return its value - return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; - } - } - - public string AssemblyCompany - { - get - { - // Get all Company attributes on this assembly - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false); - // If there aren't any Company attributes, return an empty string - if (attributes.Length == 0) - return ""; - // If there is a Company attribute, return its value - return ((AssemblyCompanyAttribute)attributes[0]).Company; - } - } - #endregion - } -} diff --git a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AssemblyInfo.cs b/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AssemblyInfo.cs index 893433cd..02cbcbe1 100644 --- a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AssemblyInfo.cs +++ b/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AssemblyInfo.cs @@ -23,8 +23,8 @@ using System.Runtime.CompilerServices; // Build YYMM (two digit year, two digit month) // Revision DHH (day - no leading zero, two digit hour - military time // -[assembly: AssemblyVersion("2.3.2410.907")] -[assembly: AssemblyFileVersion("2.3.2410.907")] +[assembly: AssemblyVersion("2.4.2608.2507")] +[assembly: AssemblyFileVersion("2.4.2608.2507")] // // In order to sign your assembly you must specify a key to use. Refer to the @@ -93,6 +93,8 @@ using System.Runtime.CompilerServices; + + diff --git a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AssemblyInfo.cs.bak b/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.sln b/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.sln deleted file mode 100644 index e4558b4d..00000000 --- a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.sln +++ /dev/null @@ -1,212 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.32901.82 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROEditor", "ROEditor.csproj", "{3A4A3543-2D44-11D6-8452-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - {6D44F537-879E-11D6-84B8-00A0CC271352} = {6D44F537-879E-11D6-84B8-00A0CC271352} - {DECA8343-6351-11D6-8487-00A0CC271352} = {DECA8343-6351-11D6-8487-00A0CC271352} - {0C782592-AA05-11D6-84D1-00A0CC271352} = {0C782592-AA05-11D6-84D1-00A0CC271352} - {551CB7B3-00B1-11D7-8590-482B59000000} = {551CB7B3-00B1-11D7-8590-482B59000000} - {0C7825FD-AA05-11D6-84D1-00A0CC271352} = {0C7825FD-AA05-11D6-84D1-00A0CC271352} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VlnStatus", "..\..\..\LibSource\VlnStatus\VlnStatus.csproj", "{551CB7B3-00B1-11D7-8590-482B59000000}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROFields", "..\..\..\LibSource\ROField\ROFields.csproj", "{0C782592-AA05-11D6-84D1-00A0CC271352}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DBEncapsulation", "..\..\..\LibSource\DBEncapsulation\DBEncapsulation.csproj", "{6D44F537-879E-11D6-84B8-00A0CC271352}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RODBInterface", "..\..\..\LibSource\RODBInterface\RODBInterface.csproj", "{0C7825FD-AA05-11D6-84D1-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - {6D44F537-879E-11D6-84B8-00A0CC271352} = {6D44F537-879E-11D6-84B8-00A0CC271352} - {0C782592-AA05-11D6-84D1-00A0CC271352} = {0C782592-AA05-11D6-84D1-00A0CC271352} - {551CB7B3-00B1-11D7-8590-482B59000000} = {551CB7B3-00B1-11D7-8590-482B59000000} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ctlXMLEditLib", "..\..\..\LibSource\ctlXMLEditLib\ctlXMLEditLib.csproj", "{DECA8343-6351-11D6-8487-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - {0C7825FD-AA05-11D6-84D1-00A0CC271352} = {0C7825FD-AA05-11D6-84D1-00A0CC271352} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VlnProfiler", "..\..\..\LibSource\VlnProfiler\VlnProfiler.csproj", "{38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROFST", "..\..\..\LibSource\ROFST\ROFST.csproj", "{134D8938-9CDC-4712-9444-D5DCC6638AB6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Org.Mentalis.Files", "..\..\..\LibSource\Org.Mentalis.Files\Org.Mentalis.Files.csproj", "{A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utils", "..\..\..\LibSource\Utils\Utils.csproj", "{680054D3-49C4-40E7-92A5-67B97DCE6308}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Win32.ActiveCfg = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|x86.ActiveCfg = Debug|x86 - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|x86.Build.0 = Debug|x86 - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Win32.ActiveCfg = Release|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|x86.ActiveCfg = Release|x86 - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|x86.Build.0 = Release|x86 - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|Any CPU.Build.0 = Debug|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|Win32.ActiveCfg = Debug|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|x86.ActiveCfg = Debug|x86 - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|x86.Build.0 = Debug|x86 - {551CB7B3-00B1-11D7-8590-482B59000000}.Release|Any CPU.ActiveCfg = Release|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Release|Any CPU.Build.0 = Release|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Release|Win32.ActiveCfg = Release|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Release|x86.ActiveCfg = Release|x86 - {551CB7B3-00B1-11D7-8590-482B59000000}.Release|x86.Build.0 = Release|x86 - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Win32.ActiveCfg = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|x86.ActiveCfg = Debug|x86 - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|x86.Build.0 = Debug|x86 - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release|Win32.ActiveCfg = Release|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release|x86.ActiveCfg = Release|x86 - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release|x86.Build.0 = Release|x86 - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Win32.ActiveCfg = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|x86.ActiveCfg = Debug|x86 - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|x86.Build.0 = Debug|x86 - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release|Win32.ActiveCfg = Release|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release|x86.ActiveCfg = Release|x86 - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release|x86.Build.0 = Release|x86 - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Win32.ActiveCfg = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|x86.ActiveCfg = Debug|x86 - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|x86.Build.0 = Debug|x86 - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|Win32.ActiveCfg = Release|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|x86.ActiveCfg = Release|x86 - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|x86.Build.0 = Release|x86 - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|Win32.ActiveCfg = Debug|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|x86.ActiveCfg = Debug|x86 - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|x86.Build.0 = Debug|x86 - {DECA8343-6351-11D6-8487-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Release|Win32.ActiveCfg = Release|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Release|x86.ActiveCfg = Release|x86 - {DECA8343-6351-11D6-8487-00A0CC271352}.Release|x86.Build.0 = Release|x86 - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|Win32.ActiveCfg = Debug|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|x86.ActiveCfg = Debug|x86 - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|x86.Build.0 = Debug|x86 - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release|Any CPU.Build.0 = Release|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release|Win32.ActiveCfg = Release|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release|x86.ActiveCfg = Release|x86 - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release|x86.Build.0 = Release|x86 - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Win32.ActiveCfg = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|x86.ActiveCfg = Debug|x86 - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|x86.Build.0 = Debug|x86 - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Any CPU.Build.0 = Release|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Win32.ActiveCfg = Release|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|x86.ActiveCfg = Release|x86 - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|x86.Build.0 = Release|x86 - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|Win32.ActiveCfg = Debug|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|x86.ActiveCfg = Debug|x86 - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|x86.Build.0 = Debug|x86 - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|Any CPU.Build.0 = Release|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|Win32.ActiveCfg = Release|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|x86.ActiveCfg = Release|x86 - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|x86.Build.0 = Release|x86 - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Any CPU.Build.0 = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Win32.ActiveCfg = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|x86.ActiveCfg = Debug|x86 - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|x86.Build.0 = Debug|x86 - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Any CPU.ActiveCfg = Release|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Any CPU.Build.0 = Release|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Win32.ActiveCfg = Release|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|x86.ActiveCfg = Release|x86 - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {4814B42F-2708-4185-8450-20347EB2FDF6} - EndGlobalSection - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 5 - SccProjectName0 = \u0022$/PROMS/ReferencedObjects/ROEditor\u0022,\u0020XSEAAAAA - SccLocalPath0 = ..\\..\\.. - SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - SccProjectFilePathRelativizedFromConnection0 = Exe\\RefObj\\ROEditor\\ - SccProjectUniqueName1 = ..\\..\\..\\LibSource\\Org.Mentalis.Files\\Org.Mentalis.Files.csproj - SccLocalPath1 = ..\\..\\.. - SccProjectFilePathRelativizedFromConnection1 = LibSource\\Org.Mentalis.Files\\ - SccProjectUniqueName2 = ..\\..\\..\\LibSource\\ROFST\\ROFST.csproj - SccLocalPath2 = ..\\..\\.. - SccProjectFilePathRelativizedFromConnection2 = LibSource\\ROFST\\ - SccProjectUniqueName3 = ..\\..\\..\\LibSource\\Utils\\Utils.csproj - SccLocalPath3 = ..\\..\\.. - SccProjectFilePathRelativizedFromConnection3 = LibSource\\Utils\\ - SccProjectUniqueName4 = ..\\..\\..\\LibSource\\VlnProfiler\\VlnProfiler.csproj - SccLocalPath4 = ..\\..\\.. - SccProjectFilePathRelativizedFromConnection4 = LibSource\\VlnProfiler\\ - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.vsscc b/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.vsscc deleted file mode 100644 index e0795477..00000000 Binary files a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.vsscc and /dev/null differ diff --git a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/RO_FST.cs.bak b/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/RO_FST.cs.bak deleted file mode 100644 index 0a26e692..00000000 --- a/PROMS/ReferencedObjects/Exe/RefObj/ROEditor/RO_FST.cs.bak +++ /dev/null @@ -1,876 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: RO_FST.cs $ $Revision: 15 $ - * $Author: Jsj $ $Date: 8/23/06 11:33a $ - * - * $History: RO_FST.cs $ - * - * ***************** Version 15 ***************** - * User: Jsj Date: 8/23/06 Time: 11:33a - * Updated in $/EXE/RefObj/ROEditor - * debug statements commented out - * - * ***************** Version 14 ***************** - * User: Jsj Date: 5/03/05 Time: 11:48a - * Updated in $/EXE/RefObj/ROEditor - * 2005 upgrade, move some ROFST logic to ROFST library - * - * ***************** Version 13 ***************** - * User: Jsj Date: 5/11/04 Time: 9:29a - * Updated in $/EXE/RefObj/ROEditor - * Bug fix B2004-011, could not create FST file if user opened nodes on - * tree. - * - * ***************** Version 12 ***************** - * User: Jsj Date: 4/08/04 Time: 9:48a - * Updated in $/EXE/RefObj/ROEditor - * Modified code to speed up the creation of the RO.FST file - * - * ***************** Version 11 ***************** - * User: Jsj Date: 6/30/03 Time: 1:20p - * Updated in $/EXE/RefObj/ROEditor - * a NULL Accessory Page ID was giving problems in creating a new RO.FST - * file. - * - * ***************** Version 10 ***************** - * User: Kathy Date: 6/11/03 Time: 2:01p - * Updated in $/EXE/RefObj/ROEditor - * Fix bug B2003-045 - * - * ***************** Version 9 ***************** - * User: Kathy Date: 5/30/03 Time: 12:48p - * Updated in $/EXE/RefObj/ROEditor - * B2003-044: sync up xml with UI tree view - * - * ***************** Version 8 ***************** - * User: Kathy Date: 5/21/03 Time: 12:51p - * Updated in $/EXE/RefObj/ROEditor - * B2003-034: process data if only one field for RO & also, convert return - * value for xml save - * - * ***************** Version 7 ***************** - * User: Jsj Date: 4/14/03 Time: 3:02p - * Updated in $/EXE/RefObj/ROEditor - * Speed up the creation of the RO.FST file - * - * ***************** Version 6 ***************** - * User: Kathy Date: 4/04/03 Time: 9:41a - * Updated in $/EXE/RefObj/ROEditor - * B2003-030 convert new top group name to user readable for ro.fst - * - * ***************** Version 5 ***************** - * User: Jsj Date: 2/21/03 Time: 9:51a - * Updated in $/EXE/RefObj/ROEditor - * added RO FST completed message - * - * ***************** Version 4 ***************** - * User: Jsj Date: 1/02/03 Time: 9:31a - * Updated in $/EXE/RefObj/ROEditor - * Save Graphics file date in RO.FST file - * - * ***************** Version 3 ***************** - * User: Jsj Date: 12/17/02 Time: 4:54p - * Updated in $/EXE/RefObj/ROEditor - * save real date for graphic files - * - * ***************** Version 2 ***************** - * User: Jsj Date: 12/06/02 Time: 3:26p - * Updated in $/EXE/RefObj/ROEditor - * parameter display data fix (ingoring this data for now) - * - * ***************** Version 1 ***************** - * User: Jsj Date: 11/27/02 Time: 12:53p - * Created in $/EXE/RefObj/ROEditor - * Modification to create the RO.FST file - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Xml; -using System.Xml.Schema; -using System.Text; -using System.IO; -using RODBInterface; -using System.Runtime.InteropServices; -using VlnStatus; -using System.Collections.Specialized; -using ROFST_FILE; - -//using VlnProfiler; //don't forget to add VlnProfiler to the reference list - -namespace ROEditor -{ - /// - /// This creates an RO.FST file - /// - - class FstTmpSTRC - { - public ushort thistype; - public uint thisoff; - public string title; - - public FstTmpSTRC(ushort type, uint offset, string tl) - { - thistype = type; - thisoff = offset; - title = tl; - } - - void WriteString(BinaryWriter bw, string str) - { - int n=str.Length; - byte [] b = new byte[n+1]; - for(int i =0; i < n; i++) - { - b[i] = (byte)str[i]; - } - bw.Write(b,0,n+1); // +1 to include null - /** - byte nullbyte = 0; - int i; - for(i =0; i < str.Length; i++) - { - byte WrByte; - WrByte = (byte)str[i]; - bw.Write(WrByte); - } - bw.Write(nullbyte); -***/ - } - - public void Write(BinaryWriter bw) - { - bw.Write(thisoff); - bw.Write(thistype); - WriteString(bw,title); - } - } - -// The Sorted Array was not sorting via the ASCII value of each character in a given string. -// This sorting function compares two strings by doing a character by character comparison. - public class MyComparer : IComparer - { - public int Compare (object x, object y) - { - int rtnval = 0; - int xcnt=0,ycnt=0; - int xlen,ylen; - byte xbyte, ybyte; - string xbuff = x.ToString(); - string ybuff = y.ToString(); - xlen = xbuff.Length; - ylen = ybuff.Length; - if (xbuff[0] == '<') - rtnval = 0; - if (ybuff[0] == '<') - rtnval = 0; - while ((rtnval==0) && ((xcnt < xlen) || (ycnt < ylen))) - { - xbyte = (xcnt == xlen)? (byte)0 : (byte)xbuff[xcnt++]; - ybyte = (ycnt == ylen)? (byte)0 : (byte)ybuff[ycnt++]; - rtnval = xbyte - ybyte; - } - - return rtnval; - } - } - - - public class RO_FST - { - private FST_FileHeader FstHeader; - private string FstDir; // path to the RO directory - private string FstPath; // RO directory Path and RO.FST file name - private string FstOld; // ROFST.Old file name (backup of previous fst file) - private string FstNew; // ROFST.New hold the RO.FST info during creation - - private BinaryWriter fhFST; // write handle to FST file being created - - private VlnStatusBar StatusWin; - - private RODB ROdatabase; - - private XmlDocument FSTroXmlDoc; -// private HybridDictionary dicTiming; -// private HybridDictionary dicDuration; - - ushort widestAcPgId; - SortedList IdsAndAccPgIds; - SortedList IdsAndOffsets; - - ushort AllTypesUsed; - - private Stack InUseListStack; - private Stack RtnValTmplateStack; -// private DateTime dtLast=DateTime.Now; - - public RO_FST(RODB TheROdb, XmlDocument TheXmlDoc) - { - ROdatabase = TheROdb; // point to the RO database - FSTroXmlDoc = TheXmlDoc; - } - public bool Create() - { - bool RtnStat = true; -// dicDuration=new HybridDictionary(); -// dicTiming=new HybridDictionary(); -// Profiler.Reset(); - // position to the top of the tree - // CurrentNode = roTree.TopNode; - - // Setup the paths to the FST files - FstDir = Directory.GetCurrentDirectory(); - FstPath = FstDir + "\\RO.FST"; - FstOld = FstDir + "\\ROFST.Old"; - FstNew = FstDir + "\\ROFST.New"; - - // open a temporary file for building the RO.FST - try - { - fhFST = new BinaryWriter(File.Open(FstNew,System.IO.FileMode.Create,System.IO.FileAccess.ReadWrite)); - } - catch (Exception fhExc) - { - string errmsg = fhExc.Message; - MessageBox.Show(errmsg,"Error Creating RO.FST file",System.Windows.Forms.MessageBoxButtons.OK); - RtnStat = false; - } - - // If we were able to open a new ROFST.NEW file then go ahead and put the - // new FST information into it. - if (RtnStat) - RtnStat = BuildNewRoFST(); - - if (RtnStat) // successful in creating new RO FST file? - { - //If an RO.FST file already exists, - // rename the existing file for safe keeping - if (File.Exists(FstPath)) - { - // copy the existing RO.FST to ROFST.OLD - // - overrite ROFST.OLD if it already exists - File.Copy(FstPath,FstOld,true); // save RO.FST as ROFST.OLD - File.Delete(FstPath); // remove RO.FST - } - File.Copy(FstNew,FstPath,true); // save ROFST.NEW as RO.fST - File.Delete(FstNew); // remove ROFST.NEW - MessageBox.Show("New RO.FST file created successfully.","Create RO.FST file",System.Windows.Forms.MessageBoxButtons.OK); - } -// MessageBox.Show(Profiler.ToString("000.00%"),"Timings"); -// dicDuration=null; -// dicTiming=null; - return RtnStat; - } - - - private bool BuildNewRoFST() - { - bool RtnVal = true; - int i; - int numDatabases; - // write the empty header - save space for the header info - FstHeader = new FST_FileHeader(); - FstHeader.Write(fhFST); - - // point to the ROMASTER and get the number of databases it has - VlnXmlElement ROdbtables = (VlnXmlElement) FSTroXmlDoc.FirstChild; - numDatabases = ROdbtables.ChildNodes.Count; - - // Allocate a list of database info structures - ROFST_DbInfo[] dbinfo = new ROFST_DbInfo[numDatabases]; - //For each RO database, process each group - XmlNode ROtableNode = ROdbtables; - ROtableNode = ROtableNode.FirstChild; - StatusWin = new VlnStatusBar("Creating RO.FST file"); - for (i=0; i < numDatabases && RtnVal; i++) - { - dbinfo[i] = new ROFST_DbInfo(); - RtnVal = SaveToFSTFile(ROtableNode,dbinfo[i]); - dbinfo[i].dbiType = AllTypesUsed; - ROtableNode = ROtableNode.NextSibling; - } - - if (RtnVal) - { - VlnXmlElement tblnode = (VlnXmlElement) ROdbtables.FirstChild; - StatusWin.BarMax = numDatabases * 2; - StatusWin.BarStepValue = 1; - StatusWin.BarValue = 0; - // All of the RO database, group, and return value information - // was saved to the FST file. Now save the information needed - // to read the FST file. - - // Save DB list - uint lngbuf = 0; - uint dblength = (uint)fhFST.BaseStream.Position; - - fhFST.Write(lngbuf); - - ushort intbuf = Convert.ToUInt16(numDatabases); - fhFST.Write(intbuf); - - // The old code did a sizeof() on a structure containing the ROFSTDatabaseInfo (dbi) - // You cannot read/write a Struct type in C# like you can with C++. The C# books suggest - // creating a Class to replace the Struct, then create methods that perform the binary - // read/write. So I created a method that calculates the "struct" size to simulate the - // sizeof(struct dbi) - uint lngval = (dbinfo[0].GetStructSize()) * (uint)numDatabases; - - for (i=0; i=0) - { - outstr += tmpstr.Substring(cur,indx-cur); - asc_spchar = tmpstr.Substring(indx+3,3); - decval = System.Convert.ToInt16(asc_spchar,10); - outstr += System.Convert.ToChar(decval).ToString(); - cur = indx+6; - if (cur+6 > len) - indx = -1; - else - indx = tmpstr.IndexOf(OKpunch,cur); - } - if (cur= 1) && !TheMenuTitle.Equals("")) - { - curOffset = (uint)fhFST.BaseStream.Position; - curType = SaveROToFST(chldnode,InUseList,RtnValTmplate,AccPageIDTplate); - } - else - { - SkipThisOne = true; - } - } - if (!SkipThisOne) - { - string tmpstr = ChildElem.GetAttribute("MenuTitle"); - tmpfststrc = new FstTmpSTRC(curType,curOffset,tmpstr); - FstTmp.Add(tmpfststrc); - typ |= curType; - numgroups++; - } - } // end if VlnXmlElement - - // Get next child - chldnode = chldnode.NextSibling; - }// end while - } // if child is not null - - // pop the InUseList stack - if (PopInUseStack) - InUseListStack.Pop(); - - // pop the return valuse template stack - if (PopRtnValStack) - RtnValTmplateStack.Pop(); - - - // save the current position of the FST file for the return value - RtnVal = (uint)fhFST.BaseStream.Position; - - // Save the ID and offset entry for the current ID - IdsAndOffsets.Add(curRecID,RtnVal); - - fhFST.Write(curRecID); - fhFST.Write(elemParentID); - fhFST.Write(numgroups); - - // write the FstTmp - for (int i=0; i < FstTmp.Count; i++) - { - tmpfststrc = (FstTmpSTRC)FstTmp[i]; - tmpfststrc.Write(fhFST); - } - FstTmp.Clear(); - - return RtnVal; - } - - - public void WriteGraphicsReturnValue(string OrigStr) - { - string text, tmptext, hgttxt, widtxt, imgdateStr; - int idx; - int hgt, wid; - int imgdateInt; - byte newline = 10; - - char[] tmpbuf = OrigStr.ToCharArray(); - - // remove the trailing "\r\n" - tmptext = OrigStr.Substring(0,OrigStr.Length-2); - - // parse out the image width - idx = tmptext.LastIndexOf("\r\n"); - widtxt = tmptext.Substring(idx+2,tmptext.Length-(idx+2)); - wid = Convert.ToInt32(widtxt,10); - widtxt = wid.ToString("x4"); - tmptext = tmptext.Substring(0,idx); - - // parse out the image height - idx = tmptext.LastIndexOf("\r\n"); - hgttxt = tmptext.Substring(idx+2,tmptext.Length-(idx+2)); - hgt = Convert.ToInt32(hgttxt,10); - hgttxt = hgt.ToString("x4"); - tmptext = tmptext.Substring(0,idx); - - // parse out the image file name and image date - idx = tmptext.IndexOf(" "); - text = tmptext.Substring(idx+1); - if (tmptext.StartsWith("\r\n")) - imgdateStr = tmptext.Substring(2,idx-2); // first 2 chars are "\r\n" - else - { - if(idx < 1) - imgdateStr=null; - else - imgdateStr = tmptext.Substring(0,idx); - } - if (imgdateStr == null|| imgdateStr=="") - imgdateInt = 0; - else - imgdateInt = Convert.ToInt32(imgdateStr,10); - - // write graphics file name - WriteString(text,false); - fhFST.Write(newline); - - // write dummy date (old FST file had only zeros! -// WriteString("00000000",false); - WriteString(imgdateInt.ToString("x8"),false); - fhFST.Write(newline); - - // write the image height - WriteString(hgttxt,false); - fhFST.Write(newline); - - //write the image width - WriteString(widtxt,true); - } - - - private ushort SaveROToFST(XmlNode RONode,ArrayList InUseList,string RtnValTmplate, string AccPageIDTplate) - { - ushort RtnVal; - uint startFST = (uint)fhFST.BaseStream.Position; - uint RORecID; - uint ParID; - byte nullbyte=0; - - VlnXmlElement elem; - elem = (VlnXmlElement) RONode; - -// string dummy = ""; // need for RODB_GetFIeldsInUse call, won't be used. -// ArrayList AvailList, InUseList; -// //Get the "In Use" field list -// AvailList = ROdatabase.RODB_GetFields(elem, (uint) RecordType.Schema); -// InUseList = ROdatabase.RODB_GetFieldsInUse(elem, AvailList,"FieldsInUse", ref dummy); - - //Write the RO's record ID - string RecIdStr = elem.GetAttribute("RecID"); - RORecID = System.Convert.ToUInt32(RecIdStr,16); - - fhFST.Write(RORecID); - -// **** Debug -// if (RecIdStr.Equals("000000a6")) -// nullbyte=0; -// *** - // Get the Accessory Page ID -// string AccPageIDTplate = elem.GetAccPageIDTemplate(); - string AccPageID = elem.GetAccPageIDString(AccPageIDTplate); - -// **** Debug -// if (AccPageID.Equals("S:1")) -// nullbyte=0; -// ***** - - //Write the parent ID - string ParIDstr = elem.GetAttribute("ParentID"); - ParID = System.Convert.ToUInt32(ParIDstr,16); - fhFST.Write(ParID); - - // not sure why, was in old FST code but no comment! - // I assume that it's some sort of separater - short none = -1; - fhFST.Write(none); - - //Get the RO Return value and return type -// string RtnValTmplate = elem.GetReturnValueTemplate(); - RtnVal = 0; - string tablename = elem.GetAttribute("Table"); -// if (RtnValTmplate.Equals("")) -// { -// int i; -// i =0; -// } - string cvttmp= CvtFldToUserFld(RtnValTmplate); - string RORtnVal = elem.GetReturnValue(ROdatabase,tablename,cvttmp,InUseList,ref RtnVal); - - // Write the field type to the FST - fhFST.Write(RtnVal); - - if (RtnVal == 8) // is this an Image (graphics) record? - WriteGraphicsReturnValue(RORtnVal); - else - WriteString(RORtnVal); - - // Write the Accessory Page ID - // Fix for Bug B2003-039. Added check for a NULL AccPageID - // If is null, then assign a blank string - - if (AccPageID != null) - AccPageID = AccPageID.Trim(); - else - AccPageID = " "; - WriteString(AccPageID); - - // Save the ID and offset entry for the current ID - IdsAndOffsets.Add(RORecID,startFST); - - // Save the RecID and Accessory Page id - IdsAndAccPgIds[AccPageID] = RORecID; - - - // Save the widest AccPageID width - int acclen = AccPageID.Length; - if (acclen > widestAcPgId) - widestAcPgId = (ushort)acclen; -// if(dtLast.AddSeconds(.3) < DateTime.Now) -// { - StatusWin.StatMsg = AccPageID; - StatusWin.PerformStep(); -// dtLast=DateTime.Now; -// } - return RtnVal; - } - - public void WriteString(string str) - { - WriteString(str,true); - } - - public void WriteString(string str,bool AddNull) - { - int n=str.Length; - if (AddNull) - n++; - byte [] b = new byte[n]; - for(int i =0; i < str.Length; i++) - { - b[i] = (byte)str[i]; - } - fhFST.Write(b,0,n); - } - - } -} diff --git a/PROMS/ReferencedObjects/Exe/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.csproj b/PROMS/ReferencedObjects/Exe/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.csproj deleted file mode 100644 index adb2c251..00000000 --- a/PROMS/ReferencedObjects/Exe/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.csproj +++ /dev/null @@ -1,242 +0,0 @@ - - - - bin\x86\Release\ - TRACE;Upgrade2005; - 285212672 - true - - - x86 - prompt - - - Local - 8.0.50727 - 2.0 - {3A4A3543-2D44-11D6-8452-00A0CC271352} - Debug - AnyCPU - App.ico - - - ROEditor - - - JScript - Grid - IE50 - false - WinExe - ROEditor - OnBuildSuccess - ROEditor.Form1 - - - - - v3.5 - 2.0 - "%24/PROMS/ReferencedObjects/ROEditor", XSEAAAAA - ..\..\.. - - MSSCCI:Microsoft Visual SourceSafe - - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE;Upgrade2005; - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - - - true - ..\..\..\..\VEPROMS User Interface\bin\Debug\ - DEBUG;TRACE - 285212672 - full - x86 - prompt - - - - System - - - System.Data - - - System.Drawing - - - System.Windows.Forms - - - System.XML - - - - - Form - - - AboutROEditor.cs - - - Code - - - Form - - - Form - - - Form - - - Form - - - Form - - - True - True - Resources.resx - - - Form - - - Form - - - Code - - - Designer - AboutROEditor.cs - - - FieldCombFrm.cs - Designer - - - FieldTextFrm.cs - Designer - - - FieldTypeDefFrm.cs - Designer - - - GroupDefFrm.cs - Designer - - - GroupNewFrm.cs - Designer - - - Designer - ResXFileCodeGenerator - Resources.Designer.cs - - - RODefFrm.cs - Designer - - - - ROEditor.cs - Designer - - - - - - - - - - - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9} - Volian.Base.Library - - - {DECA8343-6351-11D6-8487-00A0CC271352} - ctlXMLEditLib - - - {6D44F537-879E-11D6-84B8-00A0CC271352} - DBEncapsulation - - - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04} - Org.Mentalis.Files - - - {0C7825FD-AA05-11D6-84D1-00A0CC271352} - RODBInterface - - - {0C782592-AA05-11D6-84D1-00A0CC271352} - ROFields - - - {134D8938-9CDC-4712-9444-D5DCC6638AB6} - ROFST - - - {551CB7B3-00B1-11D7-8590-482B59000000} - VlnStatus - - - - - cmd /c "$(ProjectDir)FixRev.bat" - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjects/Exe/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.sln b/PROMS/ReferencedObjects/Exe/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.sln deleted file mode 100644 index 668302d8..00000000 --- a/PROMS/ReferencedObjects/Exe/ReferencedObjects/Exe/RefObj/ROEditor/ROEditor.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.32901.82 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROEditor", "ROEditor.csproj", "{3A4A3543-2D44-11D6-8452-00A0CC271352}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|x86.ActiveCfg = Debug|x86 - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|x86.Build.0 = Debug|x86 - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|x86.ActiveCfg = Release|x86 - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {7CEE041D-449C-4B54-B381-6845BD8E9B79} - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjects/LibSource/RODBInterface/RODBInterface.sln b/PROMS/ReferencedObjects/LibSource/RODBInterface/RODBInterface.sln deleted file mode 100644 index 9f600430..00000000 --- a/PROMS/ReferencedObjects/LibSource/RODBInterface/RODBInterface.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.32901.82 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RODBInterface", "RODBInterface.csproj", "{0C7825FD-AA05-11D6-84D1-00A0CC271352}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|x86.ActiveCfg = Debug|x86 - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|x86.Build.0 = Debug|x86 - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|x86.ActiveCfg = Release|x86 - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {59F24713-865F-46BB-907B-46D78C3F7DA4} - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/App.ico b/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/App.ico deleted file mode 100644 index 3a5525fd..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/App.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.cs deleted file mode 100644 index 15e724d4..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.cs +++ /dev/null @@ -1,206 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: CmpRpt.cs $ $Revision: 3 $ - * $Author: Jsj $ $Date: 6/08/05 4:31p $ - * - * $History: CmpRpt.cs $ - * - * ***************** Version 3 ***************** - * User: Jsj Date: 6/08/05 Time: 4:31p - * Updated in $/EXE/RefObj/CmpRpt - * cleanup - * - * ***************** Version 2 ***************** - * User: Jsj Date: 1/08/04 Time: 2:51p - * Updated in $/EXE/RefObj/CmpRpt - * constructor of RODB() class changed - * - * ***************** Version 1 ***************** - * User: Kathy Date: 11/11/02 Time: 7:17a - * Created in $/EXE/RefObj/CmpRpt - *********************************************************************************************/ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.IO; -using System.Data; -using RODBInterface; - - -// CmpRpt reads data for the RO database and puts the data into the -// temporary file, 'print.tmp'. After this, it is sorted and printed. -namespace CmpRpt -{ - // Form1 just acts as the container for this app. - public class Form1 : System.Windows.Forms.Form - { - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public Form1() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - // - // Form1 - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(292, 273); - this.Name = "Form1"; - this.Text = "Form1"; - - } - #endregion - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main(string[] args) - { - bool success; - VlnXmlElement rootXml; - VlnXmlDocument myroXmlDoc; - string recid=null; - string tbl=null; - RODB myrodb=null; - - // the next two lists contain group headers for the reports. - ArrayList headers = new ArrayList(); - ArrayList reversehdrs = new ArrayList(); - - if (args.Length <= 0) return; - // if an RO directory path was passed in, then change the - // current working directory to it. - // this path will also be used to generate a connection string - // for the Access database. - if (args.Length == 2) - { -// MessageBox.Show(args[1],"args[1]"); - string path = args[0]; - Directory.SetCurrentDirectory(path); - tbl = args[1].Substring(0,4); - recid = args[1].Substring(4,8); -// myrodb = new RODB(path); - } - else - { - tbl = args[0].Substring(0,4); - recid = args[0].Substring(4,8); -// myrodb = new RODB(Directory.GetCurrentDirectory()); - } - myrodb = new RODB(Directory.GetCurrentDirectory()); - VlnXmlElement rptele=null; - - // Add the root to the tree - myroXmlDoc = myrodb.RODB_GetRoot(); - rootXml = (VlnXmlElement) myroXmlDoc.FirstChild; - success = myrodb.RODB_GetRootGroups(rootXml); - if (success == false) return; - - // if the table & recid = all zeros, we have a request - // for all ROs, otherwise it's a request for specific RO(s) - if (tbl == "0000" && recid == "00000000") - { - // the report element becomes the root. - rptele = rootXml; - } - else - { - // from the input tbl string, get a table name. - int itbl = System.Convert.ToInt32(tbl,16); - string stbl = System.Convert.ToString(itbl,10); - string pstbl = stbl.PadLeft(6,'0'); - string tbname = "RO" + pstbl; - - // read in this element from the table. - rptele = myrodb.RODB_ReadRO(tbname, recid); - - VlnXmlElement parent; - string parentid; - parentid = rptele.GetAttribute("ParentID"); - string rpteleParentid = parentid; - - // walk up tree to get the path through the tree. - VlnXmlElement child = rptele; - while (parentid != null && parentid != "00000000") - { - parent = myrodb.RODB_ReadRO(tbname, parentid); - if (parent != null) - { - parentid = parent.GetAttribute("ParentID"); - if (parentid == "00000000") - { - reversehdrs.Add(parent.InnerText); - break; - } - parent.AppendChild(child); - child = parent; - reversehdrs.Add(parent.GetAttribute("MenuTitle")); - } - else - parentid = null; - } - - // Now hook this into the top part of tree by looking at the table - // names. - VlnXmlElement group = (VlnXmlElement) rootXml.FirstChild; - while (group != null) - { - string curtbname = group.GetAttribute("Table"); - // hook it in here. - if (curtbname == tbname) - { - if (rpteleParentid != "00000000") - group.AppendChild(child); - else // if this is a top group, just reset rept ele - rptele = group; - break; - } - group = (VlnXmlElement) group.NextSibling; - } - // Set up the headers array, it's in reverse order since we walked - // up the tree, not down. - int cnt = reversehdrs.Count; - for (int i=cnt-1; i>=0; i--) - headers.Add(reversehdrs[i]); - } - - rptele.Show(myrodb,headers); - - } - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.csproj b/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.csproj deleted file mode 100644 index 4ea10231..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.csproj +++ /dev/null @@ -1,147 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.resx b/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.resx deleted file mode 100644 index add6c98e..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.resx +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Form1 - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.sln b/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.sln deleted file mode 100644 index 7af5537b..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/CmpRpt.sln +++ /dev/null @@ -1,39 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CmpRpt", "CmpRpt.csproj", "{C4293263-EA9C-11D6-8515-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DBEncapsulation", "..\..\..\LibSource\DBEncapsulation\DBEncapsulation.csproj", "{6D44F537-879E-11D6-84B8-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RODBInterface", "..\..\..\LibSource\RODBInterface\RODBInterface.csproj", "{0C7825FD-AA05-11D6-84D1-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROFields", "..\..\..\LibSource\ROField\ROFields.csproj", "{0C782592-AA05-11D6-84D1-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {C4293263-EA9C-11D6-8515-00A0CC271352}.Debug.ActiveCfg = Debug|.NET - {C4293263-EA9C-11D6-8515-00A0CC271352}.Debug.Build.0 = Debug|.NET - {C4293263-EA9C-11D6-8515-00A0CC271352}.Release.ActiveCfg = Release|.NET - {C4293263-EA9C-11D6-8515-00A0CC271352}.Release.Build.0 = Release|.NET - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug.ActiveCfg = Debug|.NET - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release.ActiveCfg = Release|.NET - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug.ActiveCfg = Debug|.NET - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release.ActiveCfg = Release|.NET - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug.ActiveCfg = Debug|.NET - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release.ActiveCfg = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/app.config b/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/app.config deleted file mode 100644 index 97bf3116..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/CmpRpt/app.config +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/App.ico b/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/App.ico deleted file mode 100644 index b0936bec..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/App.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ConvertParadoxROs.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ConvertParadoxROs.cs deleted file mode 100644 index b58ca997..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ConvertParadoxROs.cs +++ /dev/null @@ -1,1535 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ConvertParadoxROs.cs $ $Revision: 16 $ - * $Author: Jsj $ $Date: 8/02/04 11:02a $ - * - * $History: ConvertParadoxROs.cs $ - * - * ***************** Version 16 ***************** - * User: Jsj Date: 8/02/04 Time: 11:02a - * Updated in $/EXE/RefObj/ParadoxConversion - * Bug fix B2004-028 added check of local defined fields when checking if - * the field we are converting is a combo field. - * - * ***************** Version 15 ***************** - * User: Kathy Date: 10/15/03 Time: 10:29a - * Updated in $/EXE/RefObj/ParadoxConversion - * Found/fix during debugging of B2003-060 (will go through QA process - * with that bug fix) - * - * ***************** Version 14 ***************** - * User: Kathy Date: 3/13/03 Time: 1:15p - * Updated in $/EXE/RefObj/ParadoxConversion - * master different than local field name, use local - * - * ***************** Version 13 ***************** - * User: Jsj Date: 1/22/03 Time: 12:49p - * Updated in $/EXE/RefObj/ParadoxConversion - * remove old paradox user and lock files before trying the convert. Was - * not able to open the paradox master file. - * - * ***************** Version 12 ***************** - * User: Jsj Date: 1/06/03 Time: 12:56p - * Updated in $/EXE/RefObj/ParadoxConversion - * uses a special ROMASTER.MDB to convert data, will now remove temporary - * TXT files if the DEBUG switch is not passed in. - * - * ***************** Version 11 ***************** - * User: Jsj Date: 12/19/02 Time: 9:17a - * Updated in $/EXE/RefObj/ParadoxConversion - * now modifies the VEPROMS INI file if it has a [Graphics] section - * - * ***************** Version 10 ***************** - * User: Jsj Date: 12/18/02 Time: 9:01a - * Updated in $/EXE/RefObj/ParadoxConversion - * fix for IP2 and FNP data - * - * ***************** Version 9 ***************** - * User: Jsj Date: 12/06/02 Time: 3:20p - * Updated in $/EXE/RefObj/ParadoxConversion - * added Debug and new function to replace invalid characters in the field - * names - * - * ***************** Version 8 ***************** - * User: Jsj Date: 12/04/02 Time: 11:01a - * Updated in $/EXE/RefObj/ParadoxConversion - * added logic to handle Parameter Display Data data - * - * ***************** Version 7 ***************** - * User: Jsj Date: 11/27/02 Time: 1:39p - * Updated in $/EXE/RefObj/ParadoxConversion - * Handle - and / in field names - * - * ***************** Version 6 ***************** - * User: Jsj Date: 10/15/02 Time: 11:39a - * Updated in $/EXE/RefObj/ParadoxConversion - * added "a" to combo field names in non-master tables. - * - * ***************** Version 5 ***************** - * User: Jsj Date: 10/04/02 Time: 2:02p - * Updated in $/EXE/RefObj/ParadoxConversion - * added better user interface - * - * ***************** Version 4 ***************** - * User: Jsj Date: 9/27/02 Time: 2:57p - * Updated in $/EXE/RefObj/ParadoxConversion - * Fixed Graphic image information storage - * - * ***************** Version 3 ***************** - * User: Jsj Date: 9/26/02 Time: 4:17p - * Updated in $/EXE/RefObj/ParadoxConversion - * There was a leading space in all of the field values - is now fixed. - * - * ***************** Version 2 ***************** - * User: Jsj Date: 9/25/02 Time: 10:19a - * Updated in $/EXE/RefObj/ParadoxConversion - * added header - *********************************************************************************************/ - -using System; -using System.Collections; -using System.IO; -using System.Xml; -using System.Windows.Forms; // Application.StartupPath -using System.Diagnostics; -using DBEncapsulation; -using ROFields; - -namespace ParadoxConversion -{ - /// - /// This class contains the functions needed to convert the old Paradox RO Database - /// to a newer type database. - /// - public class ConvertParadoxROs - { - System.Windows.Forms.Label StatusWin; - bool ProcessingMasterTable = false; - bool DoDebugFile = false; - BinaryReader BReader; // read text file as binary (for chars like hard spaces) - BinaryWriter BWrite; // for a debug file - String AppPath; - String ROConvertPath; - String ROPath; - String LineOfText; - String ROTableName, ROTblElmt; - String RecID, RecType, ParentRecID, AccPageID, DateTime, Info, GroupTitle; - int intRecType = 0; - int CurrentFieldType = 0; - int NumCRLFs = 0; - XmlTextWriter xmlTxtWriter = null; - RODBRecordInterface MyDbRec; - ROField NewDbField; - struct FieldInfo - { - public String fldRecID; // Field Record ID - public String fldName; // Field name - public String fldType; - }; - ArrayList MasterFieldInfoList = new ArrayList(); - ArrayList LocalFieldInfoList = new ArrayList(); - - struct GroupTitles - { - public String GrpRecID; - public String GrpTitle; - } - ArrayList GroupTitlesList = new ArrayList(); - - public void OpenTextFile(String FName) - { - BReader = new BinaryReader(File.Open(FName,System.IO.FileMode.Open,System.IO.FileAccess.ReadWrite)); - } - - public void CloseTextFile() - { - BReader.Close(); - } - - public String TxF_ReadLine() - { - bool success = true; - String TxFstr = ""; - byte rdByte = 0; - if (BReader != null) - { - NumCRLFs = 0; - while (success) - { - try - { - rdByte = BReader.ReadByte(); - } - catch (Exception e) - { - success = false; - TxFstr = null; - } - if (rdByte == 0x0D) // carrage return (end of line) - { - NumCRLFs++; - rdByte = BReader.ReadByte(); // read the new line character - if (rdByte == 0x0D) // sometimes there's an extra carrage return - { - rdByte = BReader.ReadByte(); - NumCRLFs++; - } - success = false; // to stop the loop - } - if (success) - { - TxFstr += Convert.ToString(Convert.ToChar(rdByte)); - } - } - } - return TxFstr; - } - -/*** for debugging..... */ - public void DEBUG_OpenFile(String FName) - { - if (DoDebugFile) - BWrite = new BinaryWriter(File.Open(FName,System.IO.FileMode.Create,System.IO.FileAccess.ReadWrite)); - } - - public void DEBUG_CloseFile() - { - if (DoDebugFile) - BWrite.Close(); - } - - public void DEBUG_Write(string str) - { - if (DoDebugFile) - { - DEBUG_WriteString(str); - DEBUG_WriteString("\n"); - } - } - - public void DEBUG_WriteString(string str) - { - if (DoDebugFile) - { - int i; - for(i =0; i < str.Length; i++) - { - byte WrByte; - WrByte = (byte)str[i]; - BWrite.Write(WrByte); - } - } - } - - public void DEBUG_CheckFieldName(string fldname) - { - if (DoDebugFile) - { - char[] tmpstr = fldname.ToCharArray(); - int len = fldname.Length; - int cnt = 0; - bool FirstOne = true; - string OKpunch = " -._"; // we're also going to ignore spaces - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)) - { - if (OKpunch.IndexOf(tmpchr) == -1) // not found - { - if (FirstOne) - { - FirstOne = false; - DEBUG_Write(fldname); - } - decval = tmpchr; - outstr = " " + tmpchr.ToString() +" [" + decval.ToString() + "]";; - DEBUG_Write(outstr); - } - } - cnt++; - } - if (!FirstOne) - DEBUG_Write("----------------\n"); - } - } - -/** End - For Debugging **/ - - public ConvertParadoxROs(System.Windows.Forms.Label statWin, bool DoingDebugFile) - { - // Assume we are currently in the RO directory to be converted - - // Was it already converted? (check for existance of a backup - // created during the conversion process) - // Yes - return - // else select the new database type - - StatusWin = statWin; - DoDebugFile = DoingDebugFile; - - ClearFieldStrings(); - } - - /* - * Initialize the fields to empty strings. - */ - public void ClearFieldStrings() - { - RecID = ""; - RecType = ""; - ParentRecID = ""; - AccPageID = ""; - DateTime = ""; - Info = ""; - } - - public void CreateNewRoDatabase() - { - // Prompt user to select the new databaes type (ex Access, SQL Server, etc) - - // For now, we will be creating just an Access database. - - /* - * Copy our empty ROMaster.mdb file into the CONVERT directory (is the current - * directory at this point) This RomasterCvrt.mdb is located in the VE-PROMS.NET\BIN16 - * directory and is different than the ROMaster.mdb in VE-PROM.NET\BIN. The one in the BIN16 - * directory does not have any tables, while the one in the BIN directory has an - * ROMASTER table with the default records needed to create RO tables. - */ - String toPath = ROConvertPath + "\\ROMaster.mdb"; - String fromPath = AppPath + "16\\RomasterCvrt.mdb"; - File.Copy(fromPath,toPath,true); // overwrite the file if already there - - // Create an empty database. - MyDbRec = new RODBRecordInterface(1,ROConvertPath); - - // Open the database connection - MyDbRec.RODB_OpenConnection(); - } - - public void CloseNewRoDatabase() - { - MyDbRec.RODB_CloseConnection(); - } - - /* - * Create a ORIG_RO directory and move everything(except for the CONVERT directory) - * in RO into it. Then move everying in CONVERT into RO. - */ - public void MoveOldROData() - { - Directory.SetCurrentDirectory("..\\"); - Directory.Move("RO","ORIG_RO"); - Directory.Move("CONVERT","RO"); - - } - - /* This function will create TXT files from the Paradox database (PX2TXT.EXE) then parse - * them and place the RO information in the new database. - * - * Note that the Microsoft Paradox driver could not read our Paradox BLOB fields. - * We had to write a program in the old Borland 16-bit environment that would basically - * dump the RO information into a file that the Microsoft drivers could read. We decided - * to keep things simple and just dump the RO information into text files. - * - * Each line in the text file represents a database record. Each "field" is separated by - * a space. Each "record" has the following fields: - * - * RECORD ID - * RECORD TYPE - * PARENT ID - * ACCPAGE ID - * DATETIME - * The Paradox BLOB data - */ - - public void TestMessage() - { - StatusWin.Text = "This is a TEST!"; - StatusWin.Refresh(); - } - - private void StatusMessage(String Mess1) - { - StatusWin.Text = Mess1; - StatusWin.Refresh(); - } - - private void StatusMessage(String Mess1, String Mess2) - { - StatusWin.Text = Mess1 + Mess2; - StatusWin.Refresh(); - } - - private void StatusMessage(String Mess1, String Mess2, String Mess3) - { - StatusWin.Text = Mess1 + Mess2 + Mess3; - StatusWin.Refresh(); - } - - - public void ConvertParadoxRODb(string PassedInROPath) - { - // Set the current working directory to my sample RO directory -// Directory.SetCurrentDirectory("G:\\PROMSDAT\\VEWPB\\RO"); -// ROPath = "G:\\PROMSDAT\\VEBRAID\\RO"; -// Directory.SetCurrentDirectory(ROPath); - - ROPath = PassedInROPath; - - ROConvertPath = ROPath.Substring(0,ROPath.LastIndexOf("\\")); - ROConvertPath += "\\CONVERT"; - - // Create text files from the Paradox RO Database - StatusMessage("Paradox to Text Files"); - - // Get the path of where this executable resides - AppPath = Application.StartupPath; - // append "16\\px2txt.exe" to the path of the VE-PROMS.NET\BIN path - // to get the resulting path: VE-PROMS.NET\BIN16\px2txt.exe - String ToTxtAppPath = AppPath + "16\\px2txt.exe"; - - /* - * Before we run the PX2TXT.EXE program, delete any Paradox lock files that might - * be hanging around. - */ - File.Delete("Pdoxusrs.net"); - File.Delete("Pdoxusrs.lck"); - File.Delete("paradox.lck"); - - // create a process & wait until it exits. - Process myProcess = new Process(); - myProcess.StartInfo.FileName = ToTxtAppPath; - myProcess.Start(); - myProcess.WaitForExit(); - - /* - * Now change directory to the CONVERT sub-directory that was created - * from PX2TXT.EXE - * - * This directory should have the TXT files containing the RO data and - * the graphic files (Intergrated Graphics) used in the current RO database. - * Note that some of the graphic files might be converted to a different - * graphics format than what is used in the old RO Editor. - */ - Directory.SetCurrentDirectory(ROConvertPath); - - /* The PX2TXT.EXE program also creates a file called PXCONLST.TXT which - * contains a list of the TXT files that it created. - * - * Read the PXCONLST.TXT file. This contains the list of TXT files - * that were generated as the first step to the conversion. - * Place these in a array list for processing. - * Assume that we are in the RO directory that is being converted - */ - - string FileName = "Pxconlst.txt"; - int numDbs = 0; - ArrayList DbList = new ArrayList(); - ArrayList DbTitleList = new ArrayList(); - if (!File.Exists(FileName)) - { - // Conversion from Paradox to a text file failed. - // **** provide error message **** - StatusMessage("Conversion from Paradox to a text file failed."); - return; - } - - OpenTextFile(FileName); - String FileNameTitle; // the title of the ROxxxxxx file - String TextFileName; - while ((FileNameTitle = TxF_ReadLine())!=null) - { - DbTitleList.Add(FileNameTitle); - TextFileName = TxF_ReadLine(); - DbList.Add(TextFileName); - numDbs++; - } - CloseTextFile(); - - // delete the Pxconlst.txt file if we are NOT debugging - if (!DoDebugFile) - File.Delete(FileName); - - // Create a new (empty) database - CreateNewRoDatabase(); - - // DEBUG - write the field names that have problem characters - DEBUG_OpenFile("DebugFieldNames"); - - // For each file listed in PXCONLST.TXT - // Open the file - // read each line - // (each line represents a record from the old Paradox database) - // translate each line into a database record - - System.Collections.IEnumerator myEnumerator = DbList.GetEnumerator(); - System.Collections.IEnumerator myTitleEnumerator = DbTitleList.GetEnumerator(); - while(myEnumerator.MoveNext()) - { - myTitleEnumerator.MoveNext(); - // Clear the GroupTitles Array - GroupTitlesList.Clear(); - // Clear the LocalFieldInfoList Array - LocalFieldInfoList.Clear(); - - TextFileName = myEnumerator.Current.ToString(); - // Get the RO Table Name (ex. ROMASTER, RO000001) - ROTableName = myEnumerator.Current.ToString(); - int slen = ROTableName.Length; - ROTableName = ROTableName.Remove(slen-4,4); - // Create the database table - MyDbRec.RODB_AddNewTable(ROTableName); - - if (StringsAreEqualU(ROTableName,"ROMASTER")) - ProcessingMasterTable = true; - else - ProcessingMasterTable = false; - - String tmpMess; - - tmpMess = "Processing " + myTitleEnumerator.Current.ToString(); - StatusMessage(tmpMess); - - OpenTextFile(TextFileName); // Open the text file - DEBUG_Write("==================="); - DEBUG_Write(tmpMess); - DEBUG_Write(TextFileName); - - int cnt = 0; - while ((LineOfText = TxF_ReadLine()) != null) - { - // Process the text line (each line is a record) - ClearFieldStrings(); - cnt++; - StatusMessage(tmpMess,"\nRecord: ",Convert.ToString(cnt)); - ProcessTextLine(); - } - StatusMessage(" "); - CloseTextFile(); - - // delete the ROxxxx.txt file if we are NOT debugging - if (!DoDebugFile) - File.Delete(TextFileName); - - // Close database table - } - - // DEBUG - Close Debug file - DEBUG_CloseFile(); - - CloseNewRoDatabase(); - MoveOldROData(); - } - - /* This function makes a copy of the passed in string, then replaces - * any blank character with an underbar ('_') character. - * The copy is returned. - */ - String StrBlanksToUnderbars(String TheString) - { - String RtnStr = TheString; - RtnStr.Replace(" ", "_"); - return RtnStr; - } - - /* - * This function compares a String with a (char *) array and returns - * true if they are equal, else it returns false - */ - bool StringsAreEqual(String thisStr, String thatStr) - { - bool StringsAreEqual = false; - StringsAreEqual = (thisStr.CompareTo(thatStr) == 0); - return StringsAreEqual; - } - - /* - * This function will first uppercase the strings then compare them - * and returns true if they are equal, else it returns false - */ - bool StringsAreEqualU(String thisStr, String thatStr) - { - String ThisOne = thisStr; - String ThatOne = thatStr; - - ThisOne.ToUpper(); - ThatOne.ToUpper(); - bool StringsAreEqual = false; - StringsAreEqual = (ThisOne.CompareTo(ThatOne) == 0); - return StringsAreEqual; - } - - /* - * This function reads up to the next space character (or null) - */ - String GetFieldTxt() - { - String RtnStr = "0"; - char[] space = new char[1]{' '}; - int txtIdxEnd = LineOfText.IndexOfAny(space); // blank is the end of a the field - if (txtIdxEnd > 0) - { - RtnStr = LineOfText.Substring(0,txtIdxEnd); - LineOfText = LineOfText.Remove(0,txtIdxEnd+1); // remove this "field" from the string - } - else if (LineOfText.Length > 0) // last field in the string - { - RtnStr = LineOfText; - LineOfText = ""; - } - return RtnStr; - } - - /* - * This function converts the given string to an interger - */ - int GetFieldInt(String TmpStr) - { - int RtnInt; - RtnInt = Convert.ToInt32(TmpStr); - return RtnInt; - } - - - /* This function will first read the length of the string (number of characters to get) - * Then get the string of that length. - */ - String GetStringByLength() - { - String RtnStr = ""; - int len = (int)GetFieldInt(GetFieldTxt()); - int LineTextLen = LineOfText.Length; - while (len > LineTextLen) - { - RtnStr += LineOfText + "\r\n"; // need both a '\r' and a '\n' - /* NumCRLFs accounts for the number of "\r\n"s that was originally counted when the text - * file was created. - */ - len -= (LineTextLen + NumCRLFs); - LineOfText = TxF_ReadLine(); - if (len == 0) - // end of string had \r\n still may need to remove a blank at the beginning of the string buffer - { - if (LineOfText.StartsWith(" ")) - LineOfText = LineOfText.Remove(0,1); - } - LineTextLen = LineOfText.Length; - } - if (len > 0) - { - RtnStr += LineOfText.Substring(0,len); - LineOfText = LineOfText.Remove(0,len+1); // add one to remove following space - } - return RtnStr; - } - - - /* - * This function builds the field definition string - */ - String GetFieldDefinition() - { - String tmpStr; - String RtnStr = ""; - String FieldTypeStr = ""; - int FieldType = 0; - String FieldLength = ""; - String FieldName = ""; - - FieldName = GetStringByLength(); // get the field name - FieldName = FixFieldName(FieldName); - NewDbField.SetFieldname(FieldName); - - // get the field type - FieldTypeStr = GetFieldTxt(); - FieldType = GetFieldInt(FieldTypeStr); - - // Save the name and rec id and type in an array - FieldInfo TheFieldInfo = new FieldInfo(); - TheFieldInfo.fldName = FieldName; - TheFieldInfo.fldRecID = RecID; - TheFieldInfo.fldType = FieldTypeStr; - if (ProcessingMasterTable) - { - MasterFieldInfoList.Add(TheFieldInfo); - } - else // is a local definition - { - LocalFieldInfoList.Add(TheFieldInfo); - } - - NewDbField.SetFieldType((uint)FieldType); - - switch (FieldType) - { - case 1: // Fixed Length Text - case 2: // Variable Length Text - case 8: // X/Y Plot - case 0x10: // Table - // Get the field length - FieldLength = GetFieldTxt(); - // append/save the Field Name and Field Length to RtnStr - RtnStr += NewDbField.MakeSchemaString(FieldName,FieldLength,""); - break; - - case 4: // Formatted Text - String Pattern; - // Get the field length - FieldLength = GetFieldTxt(); - // Get the pattern - Pattern = GetStringByLength(); - // append/save the Field Name, Length, and Pattern to RtnStr - RtnStr += NewDbField.MakeSchemaString(FieldName,FieldLength,Pattern); - break; - - case 0x20: // Image (Intergrated Graphics) - // append/save only the type to RtnStr - RtnStr = NewDbField.MakeImageSchemaString(FieldName); - break; - - case 0x40: // Multi Field (used by Parameter Display Data) - RtnStr += FieldName + " " + FieldTypeStr; - tmpStr = GetFieldTxt(); - // Create a list of RecIDs separated by a blank - while (!StringsAreEqual(tmpStr,"0")) // while not "0" - { - // append/save the RefRecID to Rtn Str - RtnStr += " " + tmpStr; - tmpStr = GetFieldTxt(); - } - if (intRecType == 2) - { - RecType = "4"; - intRecType = 4; - } - break; - - case 0x100: // Generic Field (reference to a field definition) - tmpStr = GetFieldTxt(); - string tmp1 = GetSavedMasterFieldNameAndType(tmpStr).Substring(0,4); - if (tmp1.Equals("128 ")) - RtnStr = tmpStr + " " + tmp1 + FieldName + "a"; - else - RtnStr = tmpStr + " " + tmp1 + FieldName; -// RtnStr = tmpStr + " " + (GetSavedMasterFieldNameAndType(tmpStr)); - break; - - case 0x80: // Combo Field - String SingleLineWidth = ""; - String MultiLineWidth = ""; - String TableWidth = ""; - String XYPlotWidth = ""; - bool Single = false, Multi = false, Tbl = false, XYPlt = false; - int fldtyp; - - do - { - tmpStr = GetFieldTxt(); - fldtyp = GetFieldInt(tmpStr); - switch (fldtyp) - { - case 1: // single line text - SingleLineWidth = GetFieldTxt(); - Single = true; - break; - - case 2: // multi line text - MultiLineWidth = GetFieldTxt(); - Multi = true; - break; - - case 8: // X/Y Plot - XYPlotWidth = GetFieldTxt(); - XYPlt = true; - break; - - case 16: // Table - TableWidth = GetFieldTxt(); - Tbl = true; - break; - - default: - break; - } // end switch - } while (!StringsAreEqual(tmpStr,"0")); - // append/save the Field Type to RtnStr - RtnStr = NewDbField.MakeComboSchemaString(FieldName,Single,SingleLineWidth,Multi,MultiLineWidth,Tbl,TableWidth,XYPlt,XYPlotWidth); - break; - - default: // nothing to do - break; - - } // end switch - - return RtnStr; - } - - - String GetValueDefinition() - { - String RtnStr = ""; - String tmpStr = ""; - String tmpStr2 = ""; - String tmpStr3 = ""; - String RecIDRef = ""; - String MenuText = ""; - String ValueDefTypeStr = ""; - int ValueDefType = 0; - int NumItems; - do - { - ValueDefTypeStr = GetFieldTxt(); - ValueDefType = GetFieldInt(ValueDefTypeStr); - - switch (ValueDefType) - { - case 1: // Record ID referencing a field record - RecIDRef = GetFieldTxt(); - tmpStr = GetSavedLocalFieldName(RecIDRef); - // append/save ValueDefType and RecIDRef to RtnStr - RtnStr += "<" + tmpStr + ">"; - break; - - case 2: // Text value - tmpStr = GetStringByLength(); - tmpStr = FixString(tmpStr); - // append/save ValueDefType and TxtStr to Rtn Str - RtnStr += tmpStr; - break; - - case 3: // Decimal allignment field - // append/save RecIDRef, OffSetVal, and Width to RtnStr - RecIDRef = GetFieldTxt(); - tmpStr = GetSavedLocalFieldName(RecIDRef); - // append/save ValueDefType and RecIDRef to RtnStr - RtnStr += "<" + tmpStr; - tmpStr = GetFieldTxt(); - //int OffSetVal = GetFieldInt(tmpStr); - RtnStr += ","+tmpStr; - tmpStr = GetFieldTxt(); - //int Width = GetFieldInt(tmpStr); - RtnStr += ","+tmpStr+">"; - break; - - case 4: // Menu value definition - MenuText = ""; - // number of menu items - tmpStr = GetFieldTxt(); - NumItems = GetFieldInt(tmpStr); - tmpStr2 = ""; - while (NumItems > 0) - { - // menu text string (maybe) - tmpStr = GetFieldTxt(); - if (!StringsAreEqual(tmpStr,"0")) // do we have MenuText? - { - MenuText = GetStringByLength(); - MenuText = FixString(MenuText); - } - - // append/save ValueDefType, NumItems, tmpStr, and MenuText to RtnStr - - // Get list of other ValueDefTypes - tmpStr = GetValueDefinition(); // call itself - // append/save tmpStr to RtnStr - tmpStr2 += "{" + MenuText + "=" + tmpStr + "}"; - NumItems--; - } - RtnStr += tmpStr2; - break; - - case 5: // Conditional value definition - MenuText = ""; - // number of menu items - tmpStr = GetFieldTxt(); - NumItems = GetFieldInt(tmpStr); - tmpStr3 = ""; - tmpStr2 = ""; - while (NumItems > 0) - { - // menu text string (maybe) - tmpStr = GetFieldTxt(); - if (!StringsAreEqual(tmpStr,"0")) // do we have MenuText? - { - MenuText = GetStringByLength(); - MenuText = FixString(MenuText); - } - // append/save ValueDefType, NumItems, tmpStr, and MenuText to RtnStr - - // Get list of other ValueDefTypes - tmpStr = GetValueDefinition(); // call itself - // append/save tmpStr to RtnStr - tmpStr2 += "{" + MenuText + "=" + tmpStr + "}"; - NumItems--; - } - - // Conditional text??? - tmpStr = GetStringByLength(); - // append/save tmpStr to RtnStr - tmpStr = FixString(tmpStr); - - tmpStr3 = "{" + tmpStr + tmpStr2 + "}"; - RtnStr += tmpStr3; - break; - - - case 6: // VARUSE - tmpStr = GetStringByLength(); - tmpStr = FixString(tmpStr); - // append/save ValueDefType and TxtStr to RtnStr - RtnStr += "{" + tmpStr + "}"; - break; - - case 7: // VARDEFINE - tmpStr2 = GetStringByLength(); - tmpStr2 = FixString(tmpStr2); - tmpStr = GetValueDefinition(); // call itself - // append/save ValueDefType, TxtStr, and tmpStr to RtnStr - RtnStr += "{" + tmpStr2 + "=" + tmpStr + "}"; - break; - - default: // nothing to do - break; - - } // end switch - } while (ValueDefType != 0); - - /* - * Need to replace '<' with '<' and '>' with '>' - */ - RtnStr = ReplaceGreaterLessSigns(RtnStr); - - return RtnStr; - } - - /* - * This function returns a string containing a value to an RO field. - */ - String GetFieldValue() - { - String RtnStr; - String tmpStr; - String ValueTypeStr; - int ValueType = 0; - - ValueTypeStr = GetFieldTxt(); - ValueType = GetFieldInt(ValueTypeStr); - - CurrentFieldType = ValueType; - - RtnStr = ""; - - switch (ValueType) - { - case 1: // Text String - case 2: // variable text string - tmpStr = GetStringByLength(); - tmpStr = FixString(tmpStr); - RtnStr += tmpStr; - break; - - case 0x20: // Image File (Intergrated Graphics) - tmpStr = GetStringByLength(); // image file name - tmpStr = FixString(tmpStr); - String DateTimeStr = GetFieldTxt(); - String ImgHeight = GetFieldTxt(); - String ImgWidth = GetFieldTxt(); - RtnStr += "\r\n" + DateTimeStr + " " + tmpStr + "\r\n"; - RtnStr += "" + ImgHeight + "\r\n"; - RtnStr += "" + ImgWidth + "\r\n"; - break; - - case 0x40: // Parameter Display Data - tmpStr = GetFieldTxt(); - while (!StringsAreEqual(tmpStr,"0")) - { - tmpStr = GetFieldTxt(); // get the RecID of the field - while (!StringsAreEqual(tmpStr,"0")) - { - string FieldName = GetSavedLocalFieldName(tmpStr); - RtnStr += "<" + FieldName+ ">"; - RtnStr += GetFieldValue(); - RtnStr += "\r\n"; - tmpStr = GetFieldTxt(); // next - } - tmpStr = GetFieldTxt(); // next - } - break; - - default: - // should never get into here.... - tmpStr = GetStringByLength(); - tmpStr = FixString(tmpStr); - RtnStr += tmpStr; - break; - } // end switch - - return RtnStr; - } - - // Search the local list for the given Record ID - // Return the field name - String GetSavedLocalFieldName(String RecordID) - { - String RtnStr = ""; - FieldInfo TmpInfo; - System.Collections.IEnumerator FldLstEnumerator = LocalFieldInfoList.GetEnumerator(); - while (FldLstEnumerator.MoveNext() && StringsAreEqual(RtnStr,"")) - { - TmpInfo = (FieldInfo)FldLstEnumerator.Current; - if (StringsAreEqual(TmpInfo.fldRecID,RecordID)) - RtnStr = TmpInfo.fldName; - } - return RtnStr; - } - - // Search the master field list for a the given Record ID - // Return the field name and type if found - String GetSavedMasterFieldNameAndType(String RecordID) - { - String RtnStr = ""; - FieldInfo TmpInfo; - System.Collections.IEnumerator FldLstEnumerator = MasterFieldInfoList.GetEnumerator(); - while (FldLstEnumerator.MoveNext() && StringsAreEqual(RtnStr,"")) - { - TmpInfo = (FieldInfo)FldLstEnumerator.Current; - if (StringsAreEqual(TmpInfo.fldRecID,RecordID)) - { - RtnStr = TmpInfo.fldType.PadLeft(3,'0') + " " + TmpInfo.fldName; - if (TmpInfo.fldType.Equals("128")) // is this a combo type? - RtnStr += "a"; // append an "a" - } - } - return RtnStr; - } - - /* - * See if the given RECID is referencing a combo field. - */ - bool IsComboFieldType(String fldName) - { - bool IsACombo = false; - bool wasFound = false; - FieldInfo TmpInfo; - System.Collections.IEnumerator LocFldLstEnumerator = LocalFieldInfoList.GetEnumerator(); - System.Collections.IEnumerator FldLstEnumerator = MasterFieldInfoList.GetEnumerator(); -// Bug fix: B2004-028 -// Need to check local list of fields (of this group) -// Then then if not in the local list, check the "global" list - while (!IsACombo && LocFldLstEnumerator.MoveNext()) - { - TmpInfo = (FieldInfo)LocFldLstEnumerator.Current; - if (StringsAreEqual(TmpInfo.fldName,fldName)) - { - wasFound = true; - if (StringsAreEqual(TmpInfo.fldType,"128")) - IsACombo = true; - } - } - if (!wasFound) - { - while (!IsACombo && FldLstEnumerator.MoveNext()) - { - TmpInfo = (FieldInfo)FldLstEnumerator.Current; - if (StringsAreEqual(TmpInfo.fldName,fldName) && StringsAreEqual(TmpInfo.fldType,"128")) - IsACombo = true; - } - } - return IsACombo; - } - - String BuildComboFieldName(String FldName) - { - String RtnStr = FldName; - switch (CurrentFieldType) - { - case 1: //Fixed Text - RtnStr += "a"; - break; - case 2: // Variable Text - RtnStr += "b"; - break; - case 16: // Table - RtnStr += "c"; - break; - case 8: - RtnStr += "d"; - break; - default: - break; - } - return RtnStr; - } - - String GetGroupTitle(String RecordID) - { - String RtnStr = ""; - GroupTitles Tmpitem; - System.Collections.IEnumerator GrpLstEnumerator = GroupTitlesList.GetEnumerator(); - while (GrpLstEnumerator.MoveNext() && StringsAreEqual(RtnStr,"")) - { - Tmpitem = (GroupTitles)GrpLstEnumerator.Current; - if (StringsAreEqual(Tmpitem.GrpRecID,RecordID)) - RtnStr = Tmpitem.GrpTitle; - } - return RtnStr; - } - - String ReplaceGreaterLessSigns(String InStr) - { - String OutStr = InStr; - OutStr = OutStr.Replace("<","<"); - OutStr = OutStr.Replace(">",">"); - - return OutStr; - } - - // Replace any character less than 32 (space) or greater then - // 126 (~) with "&#D;" where D is the decimal value of the character - String ReplaceNonStandardChars(string instring) - { - string outstring = ""; - int len = instring.Length; - int i=0; - int substart=0; - ushort decchar; - - while (i < len) - { - while (i < len && instring[i] < 127) i++; - outstring += instring.Substring(substart, i-substart); - if (i < len) - { - decchar = instring[i]; - outstring += "&#" + decchar.ToString() + ";"; - i++; - substart = i; - } - } - return outstring; - } - - - /* - * String cannot have '&' or '/' chars - * replace them with an '_' - */ - String FixString(String instring) - { - String FixedString = ""; - - StringWriter strWriter = new StringWriter(); - xmlTxtWriter = new XmlTextWriter(strWriter); - xmlTxtWriter.WriteString(instring); - - FixedString = strWriter.ToString(); - xmlTxtWriter.Close(); - - // Now replace any character less than 32 (space) or greater then - // 126 (~) with "&#D;" where D is the decimal value of the character - FixedString = ReplaceNonStandardChars(FixedString); - // need to replace the forward slash with an character reference - FixedString = FixedString.Replace("/","/"); - /* - * The WriteString method is not replacing the single - * and double quotes. So we will do it manually - */ - FixedString = FixedString.Replace("'","'"); - FixedString = FixedString.Replace("\"","""); - - return FixedString; - } - - public string ReplaceNonValidCharsInFieldName(string fldname) - { - string tmpstr = fldname; - int len = fldname.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - DEBUG_Write(outstr); - return outstr; - } - -/* - * Field names cannot have ' ', '&', or '/' characters - */ - String FixFieldName(String fldname) - { - String fixedField = fldname; - - DEBUG_CheckFieldName(fldname); - - fixedField = fixedField.Replace(" ","__"); - - /* - * If the first character is 0-9, then put a '_' in front of the field name - */ - if (Char.IsDigit(fixedField,0)) - fixedField = "__" + fixedField; - fixedField = ReplaceNonValidCharsInFieldName(fixedField); - - return fixedField; - } - - - /* - * This function will parse the remaining information in the LineOfText string - * and create the value needed for the Info field of the database record. - */ - String ParseInfoField() - { - String RtnStr = ""; - String tmpStr; - String Title; - String ROMenuHead; - String GrpMenuHead; - String RoValueDef; - String RoMenuItemDef; - String GroupMenuItemDef; - String RoFieldsInUse; - String GroupFieldsInUse; - String FieldName; - int intRecType = GetFieldInt(RecType); - - switch (intRecType) - { - case 0: // Next Record Id or next database table name - RtnStr = GetFieldTxt(); - break; - - case 1: // Database title and database name - RtnStr = GetStringByLength(); // database title - ROTblElmt = FixFieldName(RtnStr); - RtnStr += "\t"; - tmpStr = GetStringByLength(); // database table name - if (tmpStr.Length == 0) - RtnStr += "RO000001"; // default database table name - else - RtnStr += tmpStr; - break; - - case 2: // Field Description - // get the field definition - RtnStr = GetFieldDefinition(); - break; - - case 3: // RO Group - GroupTitle = GetStringByLength(); // group name (title) - ROMenuHead = GetStringByLength(); // RO menu header - GrpMenuHead = GetStringByLength();// Group menu header - - RtnStr = ""; - SubGrpFldsAndVals += GetFieldValue(); - SubGrpFldsAndVals += "\r\n"; - - tmpStr = GetFieldTxt(); // next - } - RtnStr += SubGrpFldsAndVals; - RtnStr += ""; // end group definition - break; - - case 5: // RO Value Record - // RO Menu Item Value - String ROMenuItemValue = GetStringByLength(); - ROMenuItemValue = FixString(ROMenuItemValue); - - RtnStr = "<" + FixFieldName(GroupTitle) + " "; - - // RO Menu Item - RtnStr += "MenuTitle=\"" + ROMenuItemValue + "\">\r\n"; - - //RO fields and values - String ROFldsAndVals = ""; - tmpStr = GetFieldTxt(); - while (!StringsAreEqual(tmpStr,"0")) - { - FieldName = GetSavedLocalFieldName(tmpStr); - tmpStr = GetFieldValue(); - if (IsComboFieldType(FieldName)) - { - FieldName = BuildComboFieldName(FieldName); - } - ROFldsAndVals += "<" + FieldName + ">"; - ROFldsAndVals += tmpStr; - ROFldsAndVals += "\r\n"; - - tmpStr = GetFieldTxt(); - } - RtnStr += ROFldsAndVals; - RtnStr += "\r\n"; - break; - - default: - break; - }// end switch - - return RtnStr; - } - - /* - * This function will parse the given text record (string) and place the - * information in a database record. - */ - void ProcessTextLine() - { - - /* - * Get the first 5 database fields and save them in string types. - */ - - RecID= GetFieldTxt(); - RecType = GetFieldTxt(); - ParentRecID = GetFieldTxt(); - AccPageID = GetStringByLength(); - DateTime = GetFieldTxt(); - intRecType = GetFieldInt(RecType); -/***** For Debugging ***/ -// if (RecID.Equals("000000c1")) -// { -// int test; -// test = 1; -// } - -// if (AccPageID.Equals("R.29")) -// { -// MessageBox.Show("debug"); -// } -/**** End - for debugging ****/ - - // setup a new database record - NewDbField = new ROField("", RecID, ParentRecID, (uint)intRecType); - - /* - * Now what's remaining in the txtRecord string is the BLOB info from - * the old Paradox database record. - * Parse the remaining information and build the XML or XSD string that - * represents the data. - */ - Info = ParseInfoField(); - - // Fix the single quotes before writing to the database - // MS Access complained when we tried to write "C'.'99", wanted "C''.''99" instead - Info = Info.Replace("'","''"); - - // if we are processing a record type 4, save it as a record type 3. - // record type 4's were considered subgroups. We are going to store them - // as groups (type 3) with the parent id pointing to the the parent group - // or subgroup. - if (intRecType == 4 && !StringsAreEqual(RecType,"2")) - intRecType = 3; - - // write to database - MyDbRec.RODB_WriteDbRecord(ROTableName,RecID,intRecType,ParentRecID,AccPageID,DateTime,Info); - - if (StringsAreEqual(RecType,"0")&& StringsAreEqual(RecID,"00000001")) - { - // build schema header for the table just inserted - Info = "\r\n"; - Info += ""; - Info += "\r\n"; - Info += ""; - // write the schema header record (type 6) - // Note that a null recid will cause RODB_WriteDbRecord to get the next - // available one and update the "next RecID" database record. - MyDbRec.RODB_WriteDbRecord(ROTableName,"",6,"00000000","",DateTime,Info); - - // build the schema footer for the table just inserted - Info = "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - Info += "\r\n"; - // write the schema footer record (type 7) - // Note that a null recid will cause RODB_WriteDbRecord to get the next - // available one and update the "next RecID" database record. - MyDbRec.RODB_WriteDbRecord(ROTableName,"",7,"00000000","",DateTime,Info); - } - - } - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/Form1.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/Form1.cs deleted file mode 100644 index a06d1b1d..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/Form1.cs +++ /dev/null @@ -1,351 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: Form1.cs $ $Revision: 7 $ - * $Author: Jsj $ $Date: 1/06/03 12:53p $ - * - * $History: Form1.cs $ - * - * ***************** Version 7 ***************** - * User: Jsj Date: 1/06/03 Time: 12:53p - * Updated in $/EXE/RefObj/ParadoxConversion - * cleanup - * - * ***************** Version 6 ***************** - * User: Jsj Date: 1/06/03 Time: 11:35a - * Updated in $/EXE/RefObj/ParadoxConversion - * When called from the RO Editor, hide the Find RO Directory button - * - * ***************** Version 5 ***************** - * User: Jsj Date: 12/18/02 Time: 12:47p - * Updated in $/EXE/RefObj/ParadoxConversion - * new icons - * - * ***************** Version 4 ***************** - * User: Jsj Date: 12/06/02 Time: 3:21p - * Updated in $/EXE/RefObj/ParadoxConversion - * added command line argument (DEBUG) to turn on writing debug message to - * a file - * - * ***************** Version 3 ***************** - * User: Jsj Date: 10/04/02 Time: 2:02p - * Updated in $/EXE/RefObj/ParadoxConversion - * added better user interface - * - * ***************** Version 2 ***************** - * User: Jsj Date: 9/25/02 Time: 10:19a - * Updated in $/EXE/RefObj/ParadoxConversion - * added header - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.IO; - -namespace ParadoxConversion -{ - /// - /// Summary description for Form1. - /// - public class Form1 : System.Windows.Forms.Form - { - bool DidConvert = false; - bool ShowBtnFndRO = true; - public Form MainForm; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Label StatWindow; - private string PassedInDirPath; - private System.Windows.Forms.Button btnFndRO; - private System.Windows.Forms.Button btnExit; - private bool DoDebugFile; - - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public void StatusWindow(String Message1,String Message2, String Message3) - { - StatWindow.Text = Message1 + Message2 + Message3; - } - - public Form1(string Connpath, bool doingDebug) - { - // - // Required for Windows Form Designer support - // -// Icon = new Icon(typeof(Form1),"V.ico"); - InitializeComponent(); - PassedInDirPath = Connpath; - if (!Connpath.Equals("")) - ShowBtnFndRO = false; - DoDebugFile = doingDebug; - - // - // TODO: Add any constructor code after InitializeComponent call - // - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Form1)); - this.button1 = new System.Windows.Forms.Button(); - this.StatWindow = new System.Windows.Forms.Label(); - this.btnFndRO = new System.Windows.Forms.Button(); - this.btnExit = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // button1 - // - this.button1.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.button1.Location = new System.Drawing.Point(176, 152); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(80, 40); - this.button1.TabIndex = 0; - this.button1.Text = "Convert"; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // StatWindow - // - this.StatWindow.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.StatWindow.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.StatWindow.Location = new System.Drawing.Point(8, 16); - this.StatWindow.Name = "StatWindow"; - this.StatWindow.Size = new System.Drawing.Size(368, 112); - this.StatWindow.TabIndex = 1; - this.StatWindow.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // btnFndRO - // - this.btnFndRO.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnFndRO.Location = new System.Drawing.Point(8, 152); - this.btnFndRO.Name = "btnFndRO"; - this.btnFndRO.Size = new System.Drawing.Size(152, 40); - this.btnFndRO.TabIndex = 2; - this.btnFndRO.Text = "Find RO Directory"; - this.btnFndRO.Click += new System.EventHandler(this.btnFndRO_Click); - // - // btnExit - // - this.btnExit.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnExit.Location = new System.Drawing.Point(288, 152); - this.btnExit.Name = "btnExit"; - this.btnExit.Size = new System.Drawing.Size(80, 40); - this.btnExit.TabIndex = 3; - this.btnExit.Text = "Exit"; - this.btnExit.Click += new System.EventHandler(this.btnExit_Click); - // - // Form1 - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(384, 197); - this.Controls.AddRange(new System.Windows.Forms.Control[] { - this.btnExit, - this.btnFndRO, - this.StatWindow, - this.button1}); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "Form1"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Referenced Object Database Conversion"; - this.Load += new System.EventHandler(this.Form1_Load); - this.Paint += new System.Windows.Forms.PaintEventHandler(this.Form1_Paint); - this.ResumeLayout(false); - - } - #endregion - - /// - /// The main entry point for the application. - /// - - static bool ValidateConnectionPath(string ConPath) - { - bool validPath = true; - string tmpstr = ""; - - if (ConPath.Equals("")) - validPath = false; - else - { - // make sure we are in a directory named "RO" - if (ConPath.IndexOf("\\") != -1) - { - tmpstr = ConPath.Substring(ConPath.LastIndexOf("\\")); - tmpstr = tmpstr.ToUpper(); - } - else - tmpstr = ConPath; - if (!tmpstr.Equals("\\RO")) - { - string tstr = "This is not an RO directory:\n\n" + ConPath; - MessageBox.Show(tstr,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error); - // Application.Exit(); - validPath = false; - } - // make sure there is at least an ROMASTER file - if (validPath && !File.Exists("ROMASTER.db")) - { - string tstr = "This RO directory is empty:" + ConPath; - MessageBox.Show(tstr,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error); - // Application.Exit(); - validPath = false; - } - } - - return validPath; - } - - static string GetRODirPath(string ConPath) - { - string rtnstr = ""; - string tmpstr = ""; - OpenFileDialog ofDlg = new OpenFileDialog(); - ofDlg.Title = "Navigate to the Referenced Objects (RO) directory"; - ofDlg.Filter = "Referenced Objects|ROMASTER.DB;|All Files|*.*"; - - if (ConPath.Equals("")) - tmpstr = "c:\\"; - - ofDlg.CheckPathExists = true; - ofDlg.FileName = "ROMASTER.DB"; - ofDlg.InitialDirectory = tmpstr; - - if (ofDlg.ShowDialog() == DialogResult.OK) - { - tmpstr = ofDlg.FileName; - rtnstr = Path.GetDirectoryName(tmpstr); - } - else - { - string tstr = "Cannot convert Referenced Objects data.\n\nInvalid RO directory:\n\n" + ConPath; - MessageBox.Show(tstr,"Error",MessageBoxButtons.OK,MessageBoxIcon.Error); - rtnstr = null; - } - return rtnstr; - } - - [STAThread] - static void Main(string[] args) - { - string ConnectionPath = ""; - bool DebugFile = false; - // if an RO directory path was passed in, then change the - // current working directory to it. - // this path will also be used to generate a connection string - // to the Access database. - if (args.Length > 0) - { - string tmpstr; - for (int i = 0; i - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Form1 - - - - AAABAAIAEBAQAAAAAAAoAQAAJgAAACAgEAAAAAAA6AIAAE4BAAAoAAAAEAAAACAAAAABAAQAAAAAAIAA - AAAAAAAAAAAAABAAAAAQAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/ - AAAA//8A/wAAAP8A/wD//wAA////AAAAAJmQAAAAAAAAAAAAAAAAAAB3cAAAAAAAAHdwAAAAAAAAd3AA - AAAAAAd3dwAAAAAAd3d3cAAAAAd3d3d3AAAAd3d3d3dwAAAAAAAAAAAAAIeBERGHgAAAAAEREQAAAAAA - ARERAAAAAAABEREAAAAAAAEREQAAAAAAARERAAAA/H8AAPg/AAD4PwAA+D8AAPg/AADwHwAA4A8AAMAH - AACAAwAAAAEAAIADAADABwAA+D8AAPg/AAD4PwAA+D8AACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAA - AAAAAAAAEAAAABAAAAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD/ - /wD/AAAA/wD/AP//AAD///8AAAAAAAAAAAAAAAAAAAAADAAAAAAAAAAAAAAAAHcAAMAAAAAAAAAAAAAA - AAd3AAwMAAAAAAAAAAAAAAB3dwDAwAAAAAAAAAAAAAAHd3cMDAAAd3d3d3d3d3d3d3d3AMAAAHFxdxd3 - dxdxF3ERdwwAAABxcXFxd3dxd3Fxd3cADAwAcRdxcXERERcXdxd3AMDAAHFxcXF3d3F3cXdxdwwAAABx - F3cXd3cXcRdxEXcAwAAAd3d3dwAAAAAAB3d3DAzAAHd3F3cAiIiIiIB3dwDADAB3cRF3CAiIiIiIB3cA - DAAAdxcXFwiAAAAAAIB3AADAAHd3F3cIgAAAAAAIAAAADAB3dxd3CIAAAAAAAIgAAAAAd3cXdwiAAAAA - AAAIAAAAAHd3d3cIgAAAAAAAAAAAAABxEXcXCIAAAAAAAAAAAAAAdxdxcQiAAAAAAAAAAAAAAHcXcRcI - gAAAAAAAAAAAAABxF3F3CIAAAAAAAAAAAAAAdxd3FwiAAAAAAAAAAAAAAAAAAAAIgAAAAAAAAAAAAACI - iIiICIAAAAAAAAAAAAAACIcAeICAAAAAAAAAAAAAAACEREiIAAAAAAAAAAAAAAAABERAAAAAAAAAAAAA - AAAAAAREQAAAAAAAAAAAAAAAAAAEREAAAAAAAAAAAAAAAAAABERAAAAAAAAAAAAAAAD///8e///+Hf// - /Br///gVgAAAC4AAABeAAAAPgAAAGoAAABWAAAAPgAAAF4AAAAmAAAAWgAAAG4AAAB2AA/wegAP+H4AD - /x+AA/+fgAP//4AD//+AA///gAP//4AD//+AA///gAP//8AD///gA///8AP///h////4f///+H///w== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ParadoxConversion.csproj b/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ParadoxConversion.csproj deleted file mode 100644 index c9adb591..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ParadoxConversion.csproj +++ /dev/null @@ -1,129 +0,0 @@ - - - Local - 8.0.50727 - 2.0 - {2FEB12F6-B8F7-11D6-8550-A8738D000000} - Debug - AnyCPU - ROConvrt.ico - - - ParadoxConversion - - - JScript - Grid - IE50 - false - WinExe - ParadoxConversion - OnBuildSuccess - - - - - - - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - - - - System - - - System.Data - - - System.Drawing - - - System.Windows.Forms - - - System.XML - - - - - - - Code - - - Code - - - Form - - - Code - - - Form1.cs - - - - - - {6D44F537-879E-11D6-84B8-00A0CC271352} - DBEncapsulation - - - {0C782592-AA05-11D6-84D1-00A0CC271352} - ROFields - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ParadoxConversion.sln b/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ParadoxConversion.sln deleted file mode 100644 index 32d85df4..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ParadoxConversion.sln +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ParadoxConversion", "ParadoxConversion.csproj", "{2FEB12F6-B8F7-11D6-8550-A8738D000000}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROFields", "..\..\..\LibSource\ROField\ROFields.csproj", "{0C782592-AA05-11D6-84D1-00A0CC271352}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DBEncapsulation", "..\..\..\LibSource\DBEncapsulation\DBEncapsulation.csproj", "{6D44F537-879E-11D6-84B8-00A0CC271352}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2FEB12F6-B8F7-11D6-8550-A8738D000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2FEB12F6-B8F7-11D6-8550-A8738D000000}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2FEB12F6-B8F7-11D6-8550-A8738D000000}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2FEB12F6-B8F7-11D6-8550-A8738D000000}.Release|Any CPU.Build.0 = Release|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ROConvrt.ico b/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ROConvrt.ico deleted file mode 100644 index c67c7e8e..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/ROConvrt.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/RODBRecordInterface.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/RODBRecordInterface.cs deleted file mode 100644 index c834b166..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/RODBRecordInterface.cs +++ /dev/null @@ -1,352 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: RODBRecordInterface.cs $ $Revision: 4 $ - * $Author: Jsj $ $Date: 1/27/03 2:56p $ - * - * $History: RODBRecordInterface.cs $ - * - * ***************** Version 4 ***************** - * User: Jsj Date: 1/27/03 Time: 2:56p - * Updated in $/EXE/RefObj/ParadoxConversion - * using OLEDB for the connection - * - * ***************** Version 3 ***************** - * User: Jsj Date: 10/04/02 Time: 2:02p - * Updated in $/EXE/RefObj/ParadoxConversion - * added better user interface - * - * ***************** Version 2 ***************** - * User: Jsj Date: 9/25/02 Time: 10:20a - * Updated in $/EXE/RefObj/ParadoxConversion - * added header - *********************************************************************************************/ - -using System; -//using System.Collections; -using System.IO; -using System.Data; -using System.Text; -using System.Windows.Forms; -using DBEncapsulation; - -namespace ParadoxConversion -{ - /// - /// This class contains a very simple interface to the RO Database. - /// All the database conversion module needs is to create a new table - /// and write a database record. - /// - public class RODBRecordInterface - { - bool success; - - DBEncapsulation.DBEncapsulate DBE; - DBEncapsulation.OLEDB_DBEncap DBE_OLEDB; - DBEncapsulation.ODBC_DBEncap DBE_ODBC; - - private string strAccOLEDBconn = ""; - private string strSQLOLEDBconn = ""; - private string strAccODBCconn = ""; - private string strodbcConn = ""; - - public RODBRecordInterface(int conntype, string connectstring) - { - // Setup the connection string -// if (connectstring.Equals("")) -// GetConnectionStringFromFile(); -// else - BuildConnectionString(connectstring); - - // Initialize the connection depending on OLE-DB or ODBC: - conntype = 2; // for now - till valid data passed in. -// conntype = 1; // for now - till valid data passed in. - //END OF TEMPORARY - - // Either use an OLE-DB or ODBC connection, depending on what was passed in. - if ( conntype == 1) - { - DBE_ODBC = new ODBC_DBEncap(); - DBE = DBE_ODBC; - } - else - { - DBE_OLEDB = new OLEDB_DBEncap(); - DBE = DBE_OLEDB; - } - - try - { - DBE.Connection(strAccOLEDBconn); -// DBE.Connection(strodbcConn); - } - catch (Exception e) - { - Console.WriteLine("error {0}", e.Message); - } - } - - public void RODB_OpenConnection() - { - try - { - DBE.OpenConnection(); - } - catch (Exception e) - { - Console.WriteLine("Error opening database connection.\n{0}",e.Message); - } - } - - public void RODB_CloseConnection() - { - try - { - DBE.CloseConnection(); - } - catch (Exception e) - { - Console.WriteLine("Error closing database connection.\n",e.Message); - } - } - - /* - * Create a new Referenced Objects table in the current database - */ - public void RODB_AddNewTable(String TblName) - { - - string strMkTable = "CREATE TABLE "+ TblName + " ("; -// strMkTable = strMkTable + "UID Integer NULL ,"; - strMkTable = strMkTable + "RecID Char(8) NULL ,"; - strMkTable = strMkTable + "RecType Integer ,"; - strMkTable = strMkTable + "ParentID char(8) NULL ,"; - strMkTable = strMkTable + "AccPageID char(32) NULL ,"; - strMkTable = strMkTable + "ModDateTime char(14) NULL ,"; - strMkTable = strMkTable + "Info Memo NULL)"; - try - { - DBE.Command(strMkTable); -// DBE.Reader(); - } - catch (Exception e) - { - Console.WriteLine("Command error:\n{0}", e.Message); - // bool retval = false; - } - // DBE.ReaderClose(); - try - { - DBE.NonQuery(); - } - catch (Exception e) - { - Console.WriteLine("NonQuery error:\n{0}", e.Message); - // bool retval = false; - } - DBE.CommandDispose(); - } - - /* - * Write an RO Database record - */ - public void RODB_WriteDbRecord(String DBTable, String RecID, int RecType, String ParID, String AcPgID, String DateTime, String Info) - { - String DbRecCmd; - - // if no RecID provided, then get the next available one. - if (RecID.CompareTo("") == 0) - { - RecID = RODB_GetNextRecid(DBTable); - } - - DbRecCmd = "INSERT INTO " + DBTable + " (RecID, RecType, ParentID, AccPageID, ModDateTime, Info) VALUES ('"; - DbRecCmd += RecID + "', " + RecType + ", '" + ParID + "', '" + AcPgID + "', '" + DateTime + "', '" + Info + "');"; - try - { - DBE.Command(DbRecCmd); - } - catch (Exception e) - { - success = false; - Console.WriteLine("RODB_WriteDbRecord Caught an exception:\n{0}", e.Message); - } - try - { - DBE.NonQuery(); - } - catch (Exception e) - { - Console.WriteLine("NonQuery error:\n{0}", e.Message); - // bool retval = false; - } - DBE.CommandDispose(); - } - - public void GetConnectionStringFromFile() - { - /* This file should contain the connection strings in the followin order: - * AccOLEDBconn, SQLOLEDBconn, AccODBCconn, odbcConn. - */ - // append "ConnectList.txt" to the path of the location of the exe being run - // for example: VE-PROMS.NET\BIN or BIN\DEBUG - // This set in Visual Studio .NET in the properties dialog of the project, select - // Configuration Properties. You will see an option call Output Path. - string FileName = Application.StartupPath + "\\ConnectList.txt"; - - if (!File.Exists(FileName)) - { - // File does not exist - Console.WriteLine("Could not find ConnectList.txt file"); - return; - } - - /* - * Open the text file for reading - */ - StreamReader sr = File.OpenText(FileName); - - /* - * Connection string to MS-access use with oledb directly - */ - strAccOLEDBconn = sr.ReadLine(); - - /* - * connection string to SQL-server use with oledb - */ - strSQLOLEDBconn = sr.ReadLine(); - - /* - * connection string to for oledb to odbc dsn - */ - strAccODBCconn = sr.ReadLine(); - - /* - * ODBC connection: - * ACCESS: - */ - strodbcConn = sr.ReadLine(); - - sr.Close(); // close ConnectList.txt - - } - - public void BuildConnectionString(string DataConnectionPath) - { - /* - * Connect to MSAccess using OLEDB directly - */ - - // strAccOLEDBconn = "Provider=Microsoft.Jet.OLEDB.4.0;Password=\"\";User ID=Admin;Data Source=I:\\RO Design\\RO\\ROMaster.mdb;Mode=Share Deny None;Extended Properties=\"\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"; - - strAccOLEDBconn = "Provider=Microsoft.Jet.OLEDB.4.0;Password=\"\";User ID=Admin;Data Source=" + DataConnectionPath +"\\ROMaster.mdb;Mode=Share Deny None;Extended Properties=\"\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"; - - /* - * Connect to SQL-server using OLEDB - */ - // !!!!! do we need the Workstation ID? if so, we need to pass this in too! - - // strSQLOLEDBconn = "Provider=SQLOLEDB;Persist Security Info=False;User ID=sa;Initial Catalog=ROMaster;Data Source=DELL-W2K-SERVER\\SQL2000;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=KATHY;Use Encryption for Data=False;Tag with column collation when possible=False"; - - strSQLOLEDBconn = "Provider=SQLOLEDB;Persist Security Info=False;User ID=sa;Initial Catalog=ROMaster;Data Source=" + DataConnectionPath +"\\ROMaster.mdb;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=KATHY;Use Encryption for Data=False;Tag with column collation when possible=False"; - - /* - * Connect to MSAccess using OLEDB and ODBC DSN - */ - - // strAccODBCconn = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Access for RO;Extended Properties=\"DSN=Access for RO;DBQ=I:\\RO Design\\RO\\ROMaster.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;\""; - - strAccODBCconn = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Access for RO;Extended Properties=\"DSN=Access for RO;DBQ=" + DataConnectionPath + "\\ROMaster.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;\""; - - /* - * Connection to MSAccess using an ODBC connection - */ - // strodbcConn = "Driver={Microsoft Access Driver (*.mdb)};DBQ=i:\\Ro Design\\RO\\ROMaster.mdb"; - strodbcConn = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" + DataConnectionPath + "\\ROMaster.mdb"; - - // Connection to SQL Server using an ODBC connection - //strodbcConn = "Driver={SQL Server};Server=DELL-W2K-SERVER\\SQL2000;UID=sa;Database=ROMaster"; - - //SQL - DSN - worked: string strodbcConn = "DSN=SQL RO;UID=sa"; - //Initial odbc tests on strodbcconn - } - - /* - * Get the next available RO Database RecID - */ - public String RODB_GetNextRecid(String DBTable) - { - String NextRecID=""; - String RtnStr = ""; - String SpcStr = " "; - String ZeroStr = "0"; - String DbCmd = "SELECT Info FROM " + DBTable + " WHERE RecID = '00000000'"; - - try - { - DBE.Command(DbCmd); - } - catch (Exception e) - { - success = false; - Console.WriteLine("RODB_GetNextRecid - Read NextRecID Caught an exception:\n{0}", e.Message); - } - - - if (DBE.Reader()) - { - if (DBE.Read()) - { - RtnStr = DBE.GetString(0); - DBE.ReaderClose(); - } - } - else - { - System.Windows.Forms.MessageBox.Show("Could Not Open Reader"); - } - - // Create the new next RecID - if (RtnStr.CompareTo("") != 0) - { - uint nxID = Convert.ToUInt32(RtnStr,16); - nxID++; - NextRecID = String.Format("{0,8:X}",nxID);// 8 char field padded on left with blanks - NextRecID = NextRecID.Replace(SpcStr,ZeroStr); - } - else - { - // there is no next RecID - Console.WriteLine("RODB_GetNextRecid No Next RecID!"); - } - - // Write the new next RecID - DbCmd = "UPDATE " + DBTable + " SET " + DBTable + ".Info = '" + NextRecID + "'"; - DbCmd = DbCmd + " WHERE RecID = '00000000';"; - - try - { - DBE.Command(DbCmd); - } - catch (Exception e) - { - success = false; - Console.WriteLine("RODB_GetNextRecid - Write new NextRecID Caught an exception:\n{0}", e.Message); - } - - try - { - DBE.NonQuery(); - } - catch (Exception e) - { - Console.WriteLine("NonQuery error:\n{0}", e.Message); - // bool retval = false; - } - DBE.CommandDispose(); - - return RtnStr; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/V.ico b/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/V.ico deleted file mode 100644 index db073430..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/V.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/app.config b/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/app.config deleted file mode 100644 index 3124cd94..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ParadoxConversion/app.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/About.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/About.cs deleted file mode 100644 index c4b6cbc4..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/About.cs +++ /dev/null @@ -1,184 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace ROEditor -{ - /// - /// Summary description for About. - /// - public class AboutDlg : System.Windows.Forms.Form - { - private System.Windows.Forms.Button btnHlpAbtOK; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label CopyrightMessage; - private System.Windows.Forms.PictureBox pictureBox1; - private System.Windows.Forms.PictureBox pictureBox2; - private System.Windows.Forms.LinkLabel VolianWebLink; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public AboutDlg() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - CopyrightMessage.Text = "Copyright \x00A9 1993 - 2008. All Rights Reserved."; - - // - // TODO: Add any constructor code after InitializeComponent call - // - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutDlg)); - this.btnHlpAbtOK = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.CopyrightMessage = new System.Windows.Forms.Label(); - this.pictureBox1 = new System.Windows.Forms.PictureBox(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.VolianWebLink = new System.Windows.Forms.LinkLabel(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).BeginInit(); - this.SuspendLayout(); - // - // btnHlpAbtOK - // - this.btnHlpAbtOK.BackColor = System.Drawing.Color.YellowGreen; - this.btnHlpAbtOK.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btnHlpAbtOK.Location = new System.Drawing.Point(120, 118); - this.btnHlpAbtOK.Name = "btnHlpAbtOK"; - this.btnHlpAbtOK.Size = new System.Drawing.Size(75, 28); - this.btnHlpAbtOK.TabIndex = 0; - this.btnHlpAbtOK.Text = "OK"; - this.btnHlpAbtOK.UseVisualStyleBackColor = false; - this.btnHlpAbtOK.Click += new System.EventHandler(this.btnHlpAbtOK_Click); - // - // label1 - // - this.label1.BackColor = System.Drawing.Color.Transparent; - this.label1.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label1.Location = new System.Drawing.Point(73, 28); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(216, 14); - this.label1.TabIndex = 1; - this.label1.Text = "Referenced Object Editor"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // label2 - // - this.label2.BackColor = System.Drawing.Color.Transparent; - this.label2.Font = new System.Drawing.Font("Arial", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.label2.Location = new System.Drawing.Point(60, 69); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(216, 23); - this.label2.TabIndex = 2; - this.label2.Text = "Version 4 Release 0"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // CopyrightMessage - // - this.CopyrightMessage.BackColor = System.Drawing.Color.Transparent; - this.CopyrightMessage.Font = new System.Drawing.Font("Arial", 6F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.CopyrightMessage.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.CopyrightMessage.Location = new System.Drawing.Point(0, 159); - this.CopyrightMessage.Name = "CopyrightMessage"; - this.CopyrightMessage.Size = new System.Drawing.Size(207, 14); - this.CopyrightMessage.TabIndex = 4; - this.CopyrightMessage.Text = "Copyright C 1993 - 2007. All Rights Reserved."; - this.CopyrightMessage.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // pictureBox1 - // - this.pictureBox1.BackColor = System.Drawing.Color.Transparent; - this.pictureBox1.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox1.Image"))); - this.pictureBox1.Location = new System.Drawing.Point(24, 24); - this.pictureBox1.Name = "pictureBox1"; - this.pictureBox1.Size = new System.Drawing.Size(32, 32); - this.pictureBox1.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.pictureBox1.TabIndex = 5; - this.pictureBox1.TabStop = false; - // - // pictureBox2 - // - this.pictureBox2.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox2.Image"))); - this.pictureBox2.Location = new System.Drawing.Point(227, 104); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(70, 32); - this.pictureBox2.SizeMode = System.Windows.Forms.PictureBoxSizeMode.AutoSize; - this.pictureBox2.TabIndex = 7; - this.pictureBox2.TabStop = false; - this.pictureBox2.Visible = false; - // - // VolianWebLink - // - this.VolianWebLink.BackColor = System.Drawing.SystemColors.GrayText; - this.VolianWebLink.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.VolianWebLink.Location = new System.Drawing.Point(207, 159); - this.VolianWebLink.Name = "VolianWebLink"; - this.VolianWebLink.Size = new System.Drawing.Size(93, 14); - this.VolianWebLink.TabIndex = 10; - this.VolianWebLink.TabStop = true; - this.VolianWebLink.Text = "Volian Enterprises Inc."; - this.VolianWebLink.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // AboutDlg - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage"))); - this.ClientSize = new System.Drawing.Size(363, 204); - this.Controls.Add(this.VolianWebLink); - this.Controls.Add(this.pictureBox2); - this.Controls.Add(this.pictureBox1); - this.Controls.Add(this.CopyrightMessage); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.btnHlpAbtOK); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "AboutDlg"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "About"; - ((System.ComponentModel.ISupportInitialize)(this.pictureBox1)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.pictureBox2)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - #endregion - - private void btnHlpAbtOK_Click(object sender, System.EventArgs e) - { - this.Close(); - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/About.resx b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/About.resx deleted file mode 100644 index fd163d92..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/About.resx +++ /dev/null @@ -1,4062 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAAScgAA - EnIBXmVb4wAAAaVJREFUWEe1lgEOgzAMA8fPeRo/Y2shyKR2koKGhIa6UF+dNGX5jNdOxtrQAuMqBl/F - eDElEV/Xdd+2bbffX0gTM8H+jP/7ePJeBbaTXKI4SXs2CCWWjcMCpBNSvK2WwWWiwkkKcK0Q7L6lAF3A - GHyeSMsAsfvL8owCQ5AbqMKwdFCAFvj0igr1ZzcW9VF8zIGn4vYeg2ji7YaUcoC34gwCxb0LZT1VgNEE - 3WFY+SMHXDNiW6nnlV5nzpvtJu4hQgcK4gh0nwtWb70EIWxHSAC3HWUXc38c84G45XzKAaziSisdIAiA - T0PogFlmrbi6/DNucMBcQAgJgOJ+z06ApGkIAay3s85VhKAAUw6wii2KHx02KcTQAVWxbwHeOlD+uskc - wJ3FD6Pz0CBpqEKENZACsNbpWmgEIrdh+ThmrVM0EvpFpQqQNTWZggoEg/LisGrqmgRg3cvvDl8jTDzr - JSEA0itxOzGfiB8Ng3xgJjbe8q6Es5VbTykDREIBcNq7/gIwc4Trz3LSzysuzIjLGrBzPSswA7K4WfEO - IG6fOxVn42muWcAXe2L5o6rhd/EAAAAASUVORK5CYII= - - - - - R0lGODlhRgAgAPcAAACK/wCN/wCP/wCT/wCR/xCZ/6ja/7jh//b7//j8/wCX/wCU/wCZ/wGZ/wKW/wKZ - /wOa/wSZ/waX/weZ/web/wec/wmc/wma/wud/wyc/w2e/w+d/w+f/xSe/xWh/xii/xuk/x2j/x2k/x6l - /yGm/ySn/yWo/yin/ymp/y2q/zCs/zGr/zOt/zar/zmu/zuw/0O0/0Wy/0a0/0iy/0i1/0i2/0u3/023 - /0+4/1G5/1O6/1W7/1a7/1e8/1i8/1q9/12+/2C//2XB/2rD/2/F/3HE/3HG/3PF/3TH/3bI/3nJ/37L - /3/M/4DL/4DM/4LN/4XO/4fP/4rO/4rQ/43R/4/R/5HT/5bV/5rV/5vX/5zX/57Y/6DY/6Xb/6nc/6rd - /63e/6/f/7Lg/7Th/7fi/7ji/7rj/7zk/77l/8Hm/8Pn/8bo/9Hs/9Pt/9Xu/9jv/9vw/+Hz/+Lz/+b1 - /+n2/+z3/+74//D5//P6//r9/wSb/wWc/wue/zav/0Cz/2PB/3LH/4PO/43S/47S/5LU/5jW/6La/6fc - /7Xi/7vk/8Xo/8nq/8zr/8/s/9Pu/97y/+P0//f8//H6//T7//z+//v+//////z8/Pv7+/n5+fb29vT0 - 9PLy8vDw8O7u7uzs7Ovr6+np6ebm5uXl5eLi4uDg4N3d3dra2tfX19XV1dLS0s3NzcnJycfHx8TExMHB - wb29vbq6uri4uLa2trW1tbOzs7CwsK6urqurq6ioqKenp6SkpKGhoZ6enpycnJubm5iYmJWVlZOTk5GR - kY6OjoyMjIuLi4iIiIaGhoWFhYODg4CAgH5+fnx8fHl5eXZ2dnFxcW9vb2xsbGlpaWZmZmNjY2FhYV9f - X11dXVtbW1hYWFZWVlVVVVJSUlFRUU9PT01NTUtLS0hISEdHR0VFRUJCQkBAQD09PTk5OTY2NjIyMi8v - LywsLCkpKSYmJiMjIyAgIB4eHh0dHRoaGhcXFxQUFBMTExEREQ8PDw0NDQsLCwkJCQcHBwUFBQICAgAA - ACwAAAAARgAgAAAI/wAtCRxIsKDBgwgTKlyI0Nm/h/8EpoP4j9lDhhgzWnpojyHFiBshvoKosSRCiJoe - ykv40VIrigdXxVKIitqzgrbCcVtVEBk3WANVPVQV8hVLmC0f1guJlKKujxGTQRU4FSrEfJYuGfy47GO1 - h6YgjiNpNSK8h6tIhrSU76E1puIginv3UBxPrQQd/gNHcddDfhBZoc06bpzQi2pDxvvoydIntWQRXzwp - +eOvqQTT/uPGdOBDcEwh7nuIiapkzom3VsYVGfBkYL58QZ78T1jBpy1N8+NE+5+toxEjB//nyt9F3rlJ - jkz+cOK/cp3L9W58MFhk0/6y9W56TmCoqfaglv8K/fBU5/MGu23bJsvSekul1rPSVm3bwHr//IESuF7T - wEzG/ZPJQMRcRdA5D8EzUDXVXCOQJtxgY9KEFFZo4YUYZqjhhgTpoMAABS0gogAEibiAFyWKCKJAbSyQ - oogEERCiiC6kmMJBKjBgCQgWEKSjQTre8eNADDhBkCNDWsLAigQpUFCSAzm5gJMFfXgQAxVU8KQbIUBZ - 5JFJMqCAEWE0+WSWVVoSCZSWLAAiAm/4eCUCDODxpJEDIenjAm3MYaacBjmpBptjMGCHAkH4aMUgU8g5 - gIs+4imQnkQyGeWTgwyCYpRliImQDI0U9MWohxD0hSWUnGqqGwTdoapAX3R7YdCmA436BRqmvsrhrrz2 - 6isABAQr7LDEFmvsscgmayyJvjbr7LPQDsQDBwf1ES2GdAiEggUyWlLIFQ9AkgezBLBgSR4BXMvQCAqQ - CMcXhOxgUBcExAGHuhmtaIhAebBpCR8CIYAvQw8MJEC2VAaAxEBxCBBGjQNHrFFAADs= - - - - True - - - - Qk0OjAMAAAAAADYAAAAoAAAAcgEAANEAAAABABgAAAAAAAAAAAASCwAAEgsAAAAAAAAAAAAApaWlpaWl - pqampqanpqanpqanpaWlpaWlpKSko6Oko6Oko6OkpaWlpqanpqanpqanpqampaWlo6Okpqanpqanpqan - paWmo6Oko6Oko6Oko6Oko6OkoqKjoaGhoqKio6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWm - pqanpqanpqanpaWmpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - o6OkoqKjoqKjo6Oko6Oko6OkpKSlpKSlpaWkoKCplZW0jo65j4+5j4+6kpK1kZG1jIy5jY24jY25jY27 - kpK1mpqtoKCno6OjoqKioqKioaGhoaGfnZ2jk5OwjY24hITDgoLEhITFhYXHhYXHhYXHjIy/jY2+jIzA - k5O4oaGqpKSloqKjoaGhoaGhoqKjoqKjoqKjnZ2okJC2i4u6ioq6iIi8iYm8iYm8ioq7ioq9jo64kpKy - lJSxmZmpoKCioaGhoaGhoaGhoaGhoaGhnp6nmJiuj4+4ioq+ioq7ioq8hITEg4PFg4PFgoLGhYXDjo65 - mZmnoKChoqKhoqKioqKioqKioqKjlZWwjIy6i4u8iIi+g4PGg4PFg4PFhobChobCioq9k5OzlZWwmpqn - oKCioaGhoaGhoaGhoaGhoKChlJSvjY24iIi+gYHFgoLEgoLEgYHDgYHCgIDCf3/Bf3/BgYHCgoLDgoLF - goLFg4PGhITEkJC3n5+mpKSgoKCklpaviYm+g4PFgoLFgYHFgoK+iIiyjY2uiIi5iYm8iYm8iYm9jIy7 - lJSym5uso6Okmpquioq/goLIg4PFg4PFgYHEhYW8h4e3hIS7gIDDgYHEgoLEg4PFg4PGioq9mJiroqKg - oqKgnJynlJSwkJC0kZGzkZGzkZGyioq3goLAgYHEgoLEg4PFhYXFiorAlpayn5+noqKloqKmpKSlmJiw - iYnChITHhYXFhYXEg4PFgYHCf3/ChIS9iIi4h4e7g4PChYXEg4PGjIy7m5uqpKSgoaGjlJSyh4fCg4PG - hITFgoLFgYHDgIDChoa4hoa2h4e4iYm6i4u6j4+6j4+6jY28l5eyoqKmpaWlpKSlnJyslJSzkZG1jo63 - iYm7iYm6iIi5h4e2g4O8gYHCg4PChYXEioq+j4+7kJC8kpK4nJyupKSlmpqymZmzmpqylJS3iYm/hITC - gYHCgYHCgYHDgYHEgoLEg4PCjo65jo65jY26kZG2m5urpKSjo6Oko6OkpaWmpqanpqanpqanpaWlpaWl - paWlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6OkpaWlpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWl - paWlpKSlo6OkoqKio6OkpKSlpaWlpaWlpaWlpaWlpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWlpKSl - o6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlsA+mpqelpaWlpaWlpaampqempqempqelpaWlpaWkpKWjo6Sj - o6Sjo6SlpaWmpqampqempqempqelpaWjo6Slpaampqempqelpaajo6Sjo6Sjo6Sjo6Sjo6Sjo6KhoaGi - oqKjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqempqalpaWlpaWlpaWlpaWk - pKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SioqOioqOjo6Sjo6Sjo6SkpKWkpKWf - n6qZmbCYmK+Tk7WJicCHh8OHh8KIiL+MjLiMjLmRkbWZma6goKijo6Sjo6Sjo6SioqKioqKhoaKamqiM - jLeFhcKDg8SCgsSDg8SEhMaFhcaMjMCNjb6MjL6Pj72amrKmpqWlpaakpKWjo6OhoaGioqGioqOenqea - mqyTk7OMjLqIiL2JibyJib2KiruHh8CGhsGFhcKKir2Vla+fn6OhoaGhoaGhoaGhoaGhoaGfn6SYmKyV - la+Pj7eKiryJibuEhMODg8WDg8WCgsaEhMSNjbqXl62fn6OgoKCgoKCioqKioqKioqKjo6KWlq+OjrmI - iMCDg8SDg8WDg8WDg8WEhMWHh8COjriWlrCbm6mgoKShoaGhoaGhoaGhoaGhoaGhoaCWlq2Jib2Dg8WD - g8WCgsSBgcOBgcOBgcKAgMF/f8F/f8GAgMGBgcKCgsSCgsaDg8WKir6NjbuZma2ioqKhoaOWlq+Kir2J - icCHh7+Ghr6JibWLi6+Hh7aIiLqLi72Li76Kir6NjbuUlLOXl6+enqednaqQkLiHh8KJicCJib+Hh7yI - iLiEhLuAgMGAgMOCgsSCgsWEhMWEhMaIiMGUlLKfn6ShoaGamqiXl62YmKyXl62RkbKMjLiDg76AgMGA - gMOBgcSDg8WKir+Kir+WlrKdnaqcnKyenqukpKWbm62Tk7eNjb2Hh8OCgseDg8aBgcaEhL6Hh7aFhbmB - gcOCgsSDg8WDg8aJib+WlrCioqShoaOWlq+JicCDg8eBgceAgMZ/f8SFhbqFhbaFhbaHh7iKirqMjLqP - j7qPj7qPj7uUlLWenqumpqSkpKWhoaeVlbSOjruMjLqKiruKiruKiriEhLyBgcCBgcKEhMCKir6MjL2P - j72Tk7uUlLmZmbKlpaOenqqamrCZmbKRkbuGhsWFhcSCgsSBgcKBgcKBgcSEhMKKir2MjLyMjLyLi72T - k7Senqajo6Kjo6Sjo6Sjo6SlpaampqempqempqelpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sj - o6Sjo6SlpaWmpqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6SkpKWlpaWlpaWl - paWlpaWmpqampqempqempqelpaWlpaWlpaWlpaWlpaWlpaWjo6SlpaWlpaWlpaWlpaWlpaWlpaWwD6am - p6ampqWlpaWlpaWlpqamp6amp6ampqWlpaWlpaSkpaOjpKOjpKOjpKSkpaamp6amp6amp6ampqSkpKSk - pKWlpqamp6amp6WlpqOjpKOjpKOjpKOjpKOjpKKio6GhoaKioqOjpKOjpKSkpKWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpqamp6amp6amp6ampqWlpaWlpaWlpaSkpaOjpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKKio6OjpKOjpKWlo6CgqJycrJubrZaWtIqKv4WFxYSEx4KCx4ODwouLuJKS - sZmZqpycqaCgp6Sko6OjpKOjpKOjo6OjoZ6eppOTs4aGwIKCxYODxYODxYKCxoSExIqKv42NvoyMv4qK - wpGRup+frKampaWlpqWlpqSkpaKio6GhoaCgo5mZrJSUso6OuIuLvImJvYiIvIqKvIaGwoSExIODx4SE - xI2NuJqaqqGhoaGhoaGhoaGhoaGhoKCgopiYq5WVr5CQto2NuYiIvIODwoODxoODxYKCxoaGwo+PtpmZ - qp+foqGhoaGhoaCgoKCgoKGhoaKiop+fppKStYiIwIODxYODxoODxYODxYODxYSExYODxYiIvpWVr6Gh - o6KioqKioqKioqGhoaGhoaCgoZycppCQsoaGwYKCx4ODxYKCxYGBw4GBw4CAwn9/wX9/wX9/wX9/wYCA - wYCAxISEw4qKvYuLu4qKvpeXsKGhpKCgpJaWro6Ot4+Pt4+PtZCQs42NtIiItoWFuIiIuoqKvIyMv42N - vY+PupGRuJGRtpWVsJ+fp5mZrpCQuJGRuIyMvY2NuoeHvoGBwn9/wn9/wYGBw4ODxIWFxIWFxYaGxI2N - upqarKGhop+fpKCgpJ6epJWVrYqKu4ODwYCAwoCAwYCAwoODwoiIvIuLuomJv5aWsZ6eqZycq56eqaSk - paCgqJqarZaWs4+Pu4iIwomJwIeHvoiIuYWFuoGBwYGBxYGBxIODxYODxoSExI2NuZycqaKiopycqJOT - so6OuY2Nuo6Ot4yMtomJuIeHt4WFtoaGt4qKuY2NuZCQupCQupSUt5aWt5ycsaenpaWlpaSkpJ2drJGR - uYmJv4qKvImJu4SEvoCAwICAwYGBwYODwoaGw4yMvZKSuZWVuJaWuJubsqSkp6SkpZqar4+PvIeHxYSE - yIWFx4SExYKCw39/xIODwImJu4qKu4yMvIyMvIqKvpOTs6CgpKOjoaKio6OjpKOjpKOjpKWlpqamp6am - p6ampqampaSkpKSkpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSkpKampaamp6amp6amp6ampqWlpaWl - paWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpqamp6amp6amp6amp6WlpaWlpaWl - paWlpaOjo6KioqSkpaWlpaWlpaWlpaWlpaWlpbAPpqanpqanpqanpaWlpaWlpqampqanpqanpqampqal - paWlpKSlpKSlpKSkpaWlpqampqampqanpqanpqampKSkpKSlpaWmpqanp6eopaWmpaWmpaWmpaWmpaWm - o6OkoqKioaGhoaGioqKko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpqampaWl - paWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Oko6Oko6OkoqKjo6Ojo6Oko6Oko6Oko6Oko6Oko6Oko6Oj - np6pmpqvlZW0iorAhITHhYXHhITHg4PDhoa+ioq6jo60mJionp6loaGko6Ojo6Oko6Oko6OkpaWhnp6o - j4+5goLGg4PFhITFg4PGhITEiYm/jIy8i4u+iorAj4+7m5uvpKSmpaWmpaWmpaWmpaWmpKSlo6Oinp6l - k5Ozjo65ioq+iYm+ioq8iIi9hobBg4PFgoLGhYXEi4u8lZWvoKCioaGhoaGhoaGhoaGhoqKgoKCilJSw - kJC2jIy6iIi+hITCgYHFg4PFhITGg4PGhYXDjo65m5uqoqKfoaGhoaGhoKCgoKCgoaGgoaGimJisj4+4 - hobDgoLHg4PFg4PFgoLEg4PFg4PGhITEi4u7lpauoqKhoqKhoqKioqKioqKhoKChnJymlpatjY23hYXB - gYHGgYHFgoLFgYHDgYHDgIDCf3/Bf3/Bf3/Bf3/Bf3/DgoLBiIi8i4u6jIy7kpK0nZ2poqKjoaGknp6n - m5uol5esk5Owj4+zioq4hoa6hYW4h4e6iYm8jIy7jo67jo67jo68jY28kpK2oKCknJyqkZG4j4+5jY28 - iYnBg4PFgYHFgIDCf3/CgoLDhYXDhYXEhYXFhITGiIjClpaxoqKjo6OgoKCim5uokpKxiIi9gYHEgYHD - gIDCgIDChITAiIi9iIi/jo66lpaymJiwmZmunp6ppKSlpKSlmpquk5O2j4+7jIy9i4u8i4u4hoa7gYHA - f3/DgYHDgYHEg4PFhITFgoLIiIjAmJitpKSgoqKim5upmZmsmJiulJSyj4+2iYm5hoa4hYW3iIi3jIy4 - jo65j4+8j4+9kZG7k5O5m5uxqKimpqampqaloqKmlZW1i4vAjY28i4u5hoa8gYG+gIDAgYHCgoLCioq+ - kJC3k5O1k5O4lJS5l5e2nZ2vpqamm5uuioq/g4PHhITGhYXGg4PFgYHEgYG/hoa5ioq3iYm7h4fBh4fB - hobDjIy7mZmuoKCjoqKio6Ojo6OjoqKjo6OkpaWmpqanpqanpqanpaWlpKSkpKSkpaWlpaWlpaWlpaWl - o6Olo6Oko6Oko6OkpKSkpaWlpqanpqanpqanpqampaWlpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Oko6Ok - pKSlpaWlpaWlpaWlpqampqampqampqampaWlpaWlpaWlpaWlpKSkoqKjoqKjo6OkpaWlpaWlpaWlpaWl - sA+mpqempqempqempqelpaalpaWmpqampqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaWmpqampqam - pqelpaWjo6SkpKWlpaalpaalpaalpaampqempqempqekpKWjo6SioqKioqKioqOjo6Sjo6SkpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqelpaalpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sj - o6Sjo6SioqKhoaGioqKjo6Ojo6Ojo6OioqOjo6ShoaWcnKuUlLWKisGDg8iFhcaEhMaEhMSHh76JibmJ - ibqHh7yUlKyfn6GioqCioqKjo6Ojo6Sjo6SkpKSamq6Kir2CgseDg8aDg8WFhcOKir+MjLyLi72Kir6O - jrubm66kpKWmpqSlpaWlpaalpaalpaampqWjo6WamqyNjbmJib6Kir2Kir2Jib6FhcCBgcODg8SFhcOM - jLuTk7Kbm6ijo5+hoaGhoaGhoaGhoaGhoaGdnaWQkLWKiruIiL+EhMOBgcaCgsWDg8WEhMaDg8eFhcWO - jryZma2hoaGhoaGhoaGhoaGhoaChoaCenqWSkrSLi76GhsSDg8aDg8WDg8WCgsSBgcWEhMOMjLqVlbCZ - mamhoaGioqKioqKioqKioqGhoaKZmamUlLCOjreHh76EhMKDg8KBgcSAgMKBgcKAgMF/f8F/f8F/f8J/ - f8KBgcGHh7yKiriJibqLi7qZmaqgoKShoaWhoaSjo6GhoaOamqmRkbOJibqGhruGhriFhbiFhbiIiLmM - jLmNjbyNjb6Njb2Ojr2QkLidnaidnamRkbeKir+JicCEhMeCgseBgcSAgMKAgMGDg8KEhMSEhMWDg8WD - g8aIiMKTk7WgoKejo6KdnaaUlLCMjLqGhr+CgsSBgcOBgcKCgr+Dg7+EhMKGhsKQkLmRkbiOjrqRkbea - mq2jo6OlpaKbm66Pj7yKisCMjL2Li7yIiLyCgsJ/f8J/f8GAgMKBgcODg8WDg8WEhMWJib+VlbKioqOi - oqKcnKiZmauVlbCOjrmKir2KirqHh7mHh7eKirWNjbeNjbyMjL2Njb6MjMCNjb+YmLSmpqempqempqah - oaaXl7GQkLqQkLiNjbiIiLqCgr5/f8GBgcCHh7yPj7mSkreQkLmPj7uOjryRkbqcnLGmpqegoKyRkbmF - hcODg8aEhMWBgcSCgr+GhreGhreFhbyFhb2BgcSCgsaBgceEhMWNjbubm6uioqKioqKioqKioqKioqKi - oqSlpaampqempqempqelpaWjo6SkpKWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6SlpaWmpqampqem - pqelpaalpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWkpKSlpaWl - paWlpaWlpaWlpaWkpKWioqKjo6OkpKWlpaWlpaWlpaWwD6amp6amp6amp6amp6ampqWlpaWlpaamp6am - p6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKKio6Kio6Wlpaam - p6amp6amp6SkpaOjpKOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqamp6am - p6amp6WlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKGhoaGhoaKioqKioqKioqKio6Ki - opubq5OTtomJwYODx4SExoSExoSExYmJv4uLu4mJu4mJuYqKuJeXqZ+foaGhoKGhoaKioqOjpKOjpJ2d - qpOTtoqKwIWFw4aGwoODwomJvoyMvIuLvYuLvY6OuZubqqOjpKWlpKWlpaWlpaWlpaWlpqWlpqampaGh - qZOTtYiIwImJvYmJvYmJvYWFwYGBxYGBwoKCw4eHvZCQtJmZqqCgo6GhoaGhoaGhoaGhoaGhoJ6epZSU - sIqKuomJuoaGwYODxYODxYODxYODxYSExYWFxJCQuZubraCgp6Kio6GhoaGhoaGhoaGhoZ6epJOTr4mJ - vISExYODxoSExYSExYODxYODxoKCxYuLupWVr5qaqZ+fo6GhoaGhoaKioqKioqKioqCgpJqaqJOTr42N - t4yMuoyMuImJu4KCwoCAwICAwX9/wX9/wX9/wYCAv4CAv4WFuYiIt4mJuomJu4qKuZaWrZqap5ubqJ+f - pqGhpJubq5WVsouLuoiIvYmJu4eHuoaGuYWFt4eHuImJu4yMvY6Ovo6OvZCQu46OvJqar6CgppeXr4qK - v4SExYWFxIODxYGBxIGBwoGBwIGBwYKCxIODxYSExYiIwIyMvI6Ou5qarKOjpKGhpJWVroiIvYKCw4KC - wIGBwIKCv4KCvoKCvoWFv4qKvYuLvouLvoyMvo6Ou5WVs6KipqSkpKGhppeXso2NvYyMvouLv4ODxYGB - xICAwn9/wX9/wYGBwoODxYODxImJv4yMvI+PuJubqaKiop+fpZaWr42NuYmJvouLvIuLvYqKuomJtIqK - tIuLuYuLvIyMvY2NvY2NvoyMv5KSuaCgrKamp6enp6OjqZycrJWVsY+PuIiIvIODwoGBwoGBvoWFuIyM - touLvYqKv4qKv4qKv4qKv5GRuqCgraWlp6WlqJubsYuLv4SExYWFwoKCwYaGuIaGtoKCvX9/wn9/w4GB - w4KCxIODxYODxoiIwJaWsaKio6KioqKioqKioqKioqKioqKio6Wlpqamp6amp6ampqSkpaOjpKWlpaWl - paWlpaWlpaWlpaOjpKOjpKOjpKOjpKSkpKWlpqamp6amp6amp6WlpqWlpaWlpaWlpaWlpaOjpKOjpKOj - pKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKSkpKWl - paWlpbAPpqanpqanpqanpqanpqanpqanpaWlpaWlpqampqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWloqKioqKipKSjpqampqanpqanpqanpKSlo6Oko6Oko6Oko6Oko6Ok - o6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpaWl - pKSlo6Oko6Oko6Oko6OkoqKioaGhoaGhoqKioqKin5+klpawiYnAg4PHhITFhITGhITGiYnAjIy+i4u9 - ioq8ioq5kZGwnZ2ioKCen5+foKCgoaGhoqKin5+nmJivk5O0kpK2kZG4j4+4ioq6iIi7ioq9ioq+jY26 - mpqroKCkoqKio6OkpaWlpaWlpaWlpaWlpaWmpqalnZ2ukJC8ioq/ioq9ioq8hYXBgYHFgoLEgYHDgYHD - goLCjIy2m5uno6OfoaGhoaGhoaGhoqKgn5+klZWwioq8jIy5i4u5i4u6h4fBg4PGhITFhITFg4PFjo64 - mZmtn5+no6Ojo6OkoqKjoaGhoqKgn5+jlpauioq9g4PDgoLFhITGhITGhITGhITGhITGiYm/kpKxmpqo - n5+koaGhoaGhoaGhoaGhoqKhoaGkm5urlJSxjIy5iYm6iYm5iYm5iIi5hYW8goK8f3+/f3/Af3/BgIC+ - hYW2hoa3hoa3hoa4h4e5iIi6ioq5j4+ympqpnJynn5+loaGlmZmtlJSyjY26ioq7iYm6h4e5hoa4hYW2 - hoa3iIi5i4u8jo69kJC7kJC7kJC7m5uuo6OknZ2pkJC4jIy8jIy9hobCgoLDgYHAgYHAgYHDg4PFg4PG - iIjAjIy8jIy9kJC4nJyqoqKlpKSjoaGllZWuiIi8iYm7hIS+goK/gYG/goK9h4e7ioq7ioq8i4u+kJC5 - lJS1lZW0nJysoqKlpKSjoqKmmJiyiorAhYXGhITGgoLFgYHDgYHCgIDBgYHDg4PFiYm/jIy7jIy7jY26 - lpawoaGjpKSgmpqrkJC3jIy8jIy8jIy8jIy3ioqyiYm1iYm7ioq7i4u8jIy9jIy+kZG5mZmxoKCspqan - pqanp6emo6OolZWzh4fAgoLBgYHBgYHCiIi0jIyviIi7ioq9hITEhITFhITGh4fDkJC6mZmwoqKqpqan - pKSpl5e1i4u+i4u6iIi5h4e3goK8f3/BgIDBgYHCgYHEgoLEg4PEh4fAjY27k5O0n5+loqKjoqKioqKi - oqKioqKioqKio6OkpaWmpqanpqanpqanpaWlo6OkpKSlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6OkpKSk - paWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlo6Ok - o6Oko6Oko6OkpKSkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlsA+lpaWmpqempqempqempqempqempqel - paWlpaWlpaampqempqempqelpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Oh - oaGjo6OlpaampqempqempqekpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6SioqKhoaGhoaGi - oqKenqaUlLKIiMCDg8aEhMaFhcWKir+Li76MjL2MjL2Li76Li7uXl6qdnaCfn56fn5+fn5+goKChoaGe - nqaamq6Tk7aQkLqPj7mKiruJibuJibuJibyKir2NjbuVlbKhoaWjo6KioqOjo6SkpKWlpaWlpaWmpqSi - oqqVlbiKisOMjMGLi7+GhsSCgsWCgsSCgsSCgsSDg8KOjrSVlaqcnKOhoaChoaGhoaGhoaGjo5+bm6iP - j7WLi7uMjLqLi7mEhMCCgsWDg8WDg8WDg8WCgseKir2YmKyioqSjo6Sjo6Sjo6SioqOjo6CdnaWQkLaE - hMSDg8WDg8WEhMaFhcaFhcaFhcaKisCRkbiamqydnaSdnaOhoaGhoaGhoaGhoaGioqCenqWUlLGNjbmM - jLyKiryIiLuIiLqHh7mHh7eGhraGhreIiLWIiLWGhreFhbaFhbeGhreGhreGhriJibiRkbCYmKqamqiZ - mamcnKWhoaGfn6aenqaamqqWlrCTk7GOjrOHh7mGhreGhreHh7iMjLmPj7mPj7mRkbmTk7ehoamlpaOe - nqmWlrCQkLSMjLuGhsKCgsOAgMF/f8GBgcKAgMSIiMCMjL2Li72QkLibm6yioqWjo6SkpKOhoaaXl7CK - iryFhcGDg8CCgsCDg7yGhriGhriIiLmKiruKir2Pj7mXl7KdnaucnKyioqWkpKOgoKeWlrOJicGDg8eE - hMaEhMWCgsWBgcOBgcKDg8SLi76Njb2Njb6Pj7mSkrSTk7OhoaOjo6Genqabm6mZma2RkbWSkrWRkbGK - irWHh7mJibmJibqLi72MjLyLi76UlLWgoKqkpKekpKimpqeoqKWgoK2QkL2EhMaEhMSAgMSKirSKirGF - hbeFhbqDg8SEhMSEhMWFhcWEhMaHh8KTk7WgoKmmpqakpKmdnbCWlraSkraLi7qEhL+AgMF/f8F/f8GA - gMKCgsSCgsOGhr+NjbmRkbWTk7SamqyhoaSioqOioqKioqOjo6Sjo6Sjo6Sjo6Slpaampqempqempqel - paWjo6SkpKSlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWl - paWkpKWjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWkpKSk - pKWmpqempqewD6OjpKSkpaampqamp6amp6amp6amp6amp6WlpqWlpaWlpqamp6amp6amp6WlpqWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjo6Ojo6WlpaWlpaamp6amp6amp6SkpaOjpKOj - pKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKKioqGhoZ+fpZmZrZCQuIuLvYeHwYODxoSExYaGxIuLv42N - vIuLvo6Ou5iYr5+fo5+fn56enp6enp+fn5+fn56eo5mZqZOTs5CQuI+PuY6Ou4uLu4aGwoWFw4WFxIWF - xIiIvpWVsaGhpKOjoqKio6Kio6Kio6SkpaWlpaampKGhqZiYs5OTuJSUuIeHxISExYODxYODxYSExYSE - w4qKvZWVrZ2dop+fn5+fn6CgoKGhoaGhoJ+fpJiYq5CQtIuLu4qKvIaGwoODxYKCxYKCxIODxoKCx4qK - vJGRs5qaqaCgo6Ojo6OjpKOjpKSkpKKipJiYrYqKvYKCxoODxYSExYWFxYSEx4WFxoyMv5KSt5WVs5ub - raCgpqGhoaCgoKGhoaGhoaKioKCgopiYrYyMu4uLu4qKvYqKu4qKuYmJuYiIuYmJt4iItomJtIiItIaG - toWFtoWFt4aGtoGBvYCAwYGBwoSEwIuLto+Pto+PuJCQtpqaq6SkoKGhoZ6ep5iYrpaWsZKStouLu4mJ - uoeHuYaGt4iItYyMto+PuJGRuJOTtZWVtZqasJ+fq6OjpqKip5mZrpCQs4qKuoODwn9/xH9/woGBw4WF - u4mJuYqKvJGRt52dqaSko6Sko6OjpKSko5+fqJGRt4aGw4SEwoSEwoSEv4aGu4eHuIaGuImJuomJu4mJ - u4uLvJCQuZeXsZycrKOjpKWlop+fqJaWs4+Puo6OuIqKv4WFxYKCxoCAxYGBwYmJvI2Nu4yMvIyMvYyM - vI2Nu46OuZubqqKioqCgpZqaq5WVsJGRspCQsoyMtoeHt4aGt4iIuYmJuoyMvI2NvYuLwJSUtZ+fqZ+f - qp+frKSkp6enpaOjq5iYtZGRvJKSuZCQtouLtoeHtoSEuYCAv4GBwoODxISExYODxoWFxI2NvZaWs6Ki - paWlo6OjqZ6esZmZtpWVt4iIwoODxIGBw4CAwYCAwYCAwYODwoeHvo2NuJKSs5KSspWVsZycq6GhpKKi - o6Kio6Kio6KioqOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaWlpaOjpKOjpKOj - pKOjpKOjpKOjpKWlpaampqamp6Wlpqamp6WlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKSkpaWlpaWlpaWl - paWlpaOjpKOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaSkpaOjpaamp7APo6OkpKSkpaWlpqanpqanpqan - pqanpqanpqampqalpaWlpaWmpaWmpaWmpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlo6Ojo6OjpaWlpaWmpqanpqanpqanpKSlo6Oko6Oko6Oko6Oko6Oko6OkpKSkpKSkpKSkpaWl - paWlpaWlpaWlpaWlpKSlo6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6OlpKSk - oaGkl5etkZG0jo65ioq/hYXEg4PGg4PGh4fAi4u9jIy9jY28lpazoqKlo6OioqKgoKCfnp6en5+enp6g - mJipkJCxjo61jo62ioq6hYXChobBhITFg4PHhITFhYXDiYm9l5eroaGko6OjoqKjoqKjoqKjo6OkpaWl - pKSmoKCpm5uvlJS4iorChobIg4PGg4PFhITFhobDiIjAiIjAlJSyn5+koaGen5+fn5+foKCgo6Ogmpqq - kZG0jIy5i4u7i4u6hITFgoLFgoLEgYHFgoLFioq7k5OxmZmqnp6koaGhoaGioqKko6OkpKSjoaGll5ev - iYm9g4PGg4PFg4PFg4PGhobEjIy+jo68kZG5lJS0mpquoaGnpKSjoaGioKCgoaGho6Ofn5+jlpatjo63 - ioq8i4u8h4fAhITBhITAhITAg4O/g4O/iIi3h4e2hIS4hYW3hoa2goK8f3/Cf3/EgIDFgoLEhITChYXD - iIjBkpK1np6mpKSfoqKinZ2olZWwjo64iYm+iIi+iIi6iYm3iIiziIi1iYm4ioq6i4u7jo66j4+7kJC6 - mpqxo6OooqKonp6plpavkZGyiYm5hIS9hIS6hIS7hIS+hIS/goLEi4u8m5uroKCmoKCno6OkpaWinp6o - kZG3h4fDiIjAh4fAiIi8iIi5h4e4hoa3iIi6iYm6ioq6ioq7ioq8jo66lpaynp6qo6OkoaGkn5+nnZ2p - mZmskZGzioq9h4fAhoa9hoa7ioq4ioq7i4u8jIy9i4u+jIy9kpK3mpqroaGjoKClmZmtk5Oyk5Oxk5Ov - ioq4h4e6h4e3h4e3ioq5i4u6i4u9j4+6lpaymZmumJivmZmwo6OmpqalpaWnpKSpoaGtlpa2kZG5jIy6 - hoa8gYG/gIDBgYHBgoLDgoLFhobCi4u9jIy8kJC5np6qo6OkpqaloKCtlJS7iorEhITJgoLJgYHGgYHE - f3/CgIDAhYW7iYm5jIy4jY25jo64lZWwoKCkoqKjo6OkpKSkpKSkpKSkpKSkpKSlpaWnpqanpqampqam - paWlpaWlpaWlpKSlpKSlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6OkpKSkpaWlpqanpqanpqanpqam - paWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpqampqampqampaWlpKSlo6Oko6Oko6Oko6Oko6OkpKSkpaWl - paWlpaWlpKSlpKSlsA+jo6Sjo6Sjo6SlpaWmpqampqempqempqempqempqempqalpaWlpaWlpaWkpKSk - pKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6OkpKSlpaWmpqempqempqem - pqelpaajo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SkpKWl - paWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6WioqOioqKfn6aUlLCPj7aKir6FhcWDg8eFhcSIiL+Li7qM - jLqLi72OjruZma+lpaKjo6SioqSioqGgoJ+fn56enqGRkbCOjrSMjLWIiLqDg8GBgcWCgsWDg8WEhMSG - hsGJib6QkLWcnKWhoaGioqKioqOioqOioqOioqOhoaWioqWdnayTk7aKisKEhMiFhcaDg8WDg8WEhMWF - hcSFhcOKir6Xl6+hoaSioqCfn5+fn5+fn5+fn6CYmKuPj7iKir2Li7yHh8CDg8SDg8SCgsaDg8SJibmS - krGVla6bm6igoKOhoaChoaGhoaKjo6SlpaOioqSXl7CJib+Dg8aEhMSDg8WCgsaGhsSKisGJicKIiMSR - kbidnaykpKakpKWjo6ShoaGgoKCfn6Kbm6mTk7GNjbiLi7yIiMCDg8WBgcaBgcWBgcWBgcV/f8WIiLmO - jq2Li66FhbiCgr19fcJ+fsKAgMKCgsSDg8aCgseGhsKJib6SkrScnKmhoaSioqKfn6SdnaaUlLGRkbWR - kbOMjLWLi7OIiLSGhriHh7qJibuJibyJib6NjbySkreenqyjo6ednayamq6WlrOUlLKOjraIiLmGhriD - g7yAgMF/f8SCgsKIiLyPj7eSkrWRkbecnK2jo6SioqWXl6+MjL2Li76Li72KiryKiruIiLmGhreGhriI - iLqKirqJibuKiruOjraTk7OXl7GgoKekpKKjo6OenqaXl66QkLaLi7qJibyJibqJibiIiLiIiLqJibuL - i7uOjrqUlLWcnKygoKehoaKhoaOcnKmYmK2ZmauXl66MjLiJibqIiLiGhriGhruHh7yGhsCNjbuUlLWV - lbKVlbOWlrSjo6empqSmpqWmpqaioqyUlLmMjMCIiMODg8SAgMOBgcKBgcGAgMKEhMCJibyMjLqLi72M - jLyWlrOioqampqGfn6qSkrmKisKMjMGNjcGJicKGhsGEhL6Dg7qGhraIiLeJibmJibyMjLqVla6jo56i - oqCioqOlpaWmpqampqampqalpaWmpqampqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWk - pKWkpKWkpKWkpKWkpKWjo6Sjo6SlpaWmpqempqempqempqalpaWlpaWlpaWlpaWkpKWkpKWlpaampqem - pqempqempqalpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6SkpKWkpKWkpKWkpKWjo6SwD6SkpKOjpKOjpKOjpKWl - paampqampqampqampqamp6amp6WlpaWlpaWlpaSkpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaOjpKSkpaampqamp6amp6amp6amp6SkpaOjpKOjpKOjpKSkpKSkpKSkpKOj - pKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaSkpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOj - op+fpJiYq5KSsoyMu4WFxIODxoSExYWFw4iIvoiIv4iIvomJvo+PupubrqSko6OjpKOjpKKio6KioaCg - oJmZpY6Os46Os4mJuYSEw4ODxoODxIODxYSExIaGwYqKvY+Pt5eXrqCgoqCgoKGhoaKio6Kio6Kio6Ki - o5+fpZ+fpZmZrYuLvoGByoSExoSExIODxYODxIODxYODxYeHwZCQtp2dp6KioqKioqGhoaCgoJ+fn5mZ - ppaWrY+PtoiIvYaGwIODxoSExYSExoWFxIuLvJCQso+PsZSUr5ubp6CgoqGhoaGhoaGhoaKioqKipJ2d - q5SUtYuLv4aGwoSExIODxYODxYODxoODx4SEx4aGxZOTt6GhqKamo6SkpaSkpaOjpKGhoJmZqJGRsoyM - uomJv4iIwIODxYODxoODxYKCxYKCxYODxoKCw42NspaWpI+PrYCAvn19wn5+wX9/woCAwoKCxYSExoiI - woqKv4mJwIqKv5CQuJubq6OjoaOjoaSkoKCgop2dpZiYqY+Pr4iItIWFuIWFuYaGuYiIu4mJu4uLuZOT - spubqqKipaSkpZ6eq5iYspWVtZKSt46OuomJvIODv4CAwoCAwoKCwYiIuoqKuImJvImJv4uLvZaWsqGh - p6Skop2dqpGRuIyMvYyMvYuLvYqKu4iIuYaGuIaGtoiIuYqKvIuLu4+PtZWVr5SUsZSUs56eqaWloqCg - p5WVso+PuYqKvoqKvouLu4uLuIiIuIeHuYiIuYqKuouLvI6OupaWs52dq6KiqKKipKOjoZ+fpJqaqpiY - rJOTtI2NuouLuoiIuYSEu4GBvoKCwIWFv4mJv4+PupOTtpKSt5KSt6CgqKWlpKampKKiqZqas5eXtpKS - uoqKw4SEx4KCxICAw4CAwoODv4mJuoqKuYqKuouLu4uLvJCQuZycq6Sko6Cgp5iYsZaWtpWVtpaWtpGR - uI2NuIqKtoaGtoWFtoaGuIiIuIqKuoyMu5KSs56epqCgpKKio6SkpKamp6amp6amp6WlpqWlpaampaam - pqamp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKOjpKOjpKWlpaam - pqamp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaampaampqamp6amp6WlpqWlpaWlpKSkpKOjpKOjpKOj - pKOjpKKio6Kio6Kio6Ojo7APpaWlo6Oko6Oko6Oko6OkpKSlpaWlpKSlpKSlpKSlpaWlpaWlpaWlpaWl - paWlpKSko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6OkpaWm - pqanpqanpqanpqanpaWmo6OkpKSkpaWlpaWlpaWmpKSlpKSlo6Oko6OkpaWlpaWlpaWlpaWlpaWlpKSl - o6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqajn5+okZG0ioq9hITGg4PGhITFhITFg4PFgoLG - goLGgoLHhobAk5OxoaGmo6Oko6Oko6Oko6Oko6OinZ2lkpKujY2ziIi6goLCgoLFhITFhITFhYXEhobB - iYm+jo65lJSxnJyooaGhoaGhoKCgoaGhoqKjoqKjoqKjn5+lmpqrlJSyi4u8hITEhYXDg4PEg4PEg4PE - g4PEh4e/kJC1lpawoKCko6OhoqKioqKioaGhoKCflJSskJCyjIy4hYXAgYHGg4PFhITFhITFi4u9kZG3 - j4+5jo61lJSsnp6ioqKgoaGhoaGhoaGhoaGgm5uqk5O1kJC5kJC5ioq/hYXFgoLEgoLFg4PFhITFh4fC - jo68nJyuo6OmpKSlpKSlpKSlpKSlpaWimJiti4u5h4e+h4e/goLFg4PFg4PFgoLFgoLFg4PFhITDioq6 - lZWskpKthIS8fX3Ffn7Bfn7Bf3/BgIDBgoLDhobCjIy/hYXHhITJg4PIiIjBlpaxoqKjoqKioqKioqKh - nJymk5Oui4uzhYW5hYW4hYW4hYW5hoa5iYm4jo60lZWtnJymnp6mn5+ooKCpnZ2slZW2jY2+ioq/hobB - gYHFgYHDgYHBiIi6ioq4iYm6iYm6jY25kpKzmJiuoKCnpaWioKCnlpaxj4+4i4u8ioq8ioq7iIi6h4e5 - hYW2iIi4ioq6kZG1lpawlZWxlpawmZmrnp6npKSjn5+pkJC4i4u9jIy8jIy9jY25i4u3h4e5h4e5iIi5 - ioq7jIy9jIy+jY2+lJS4l5ezn5+qo6OjoKCjmpqrk5OzjIy8jIy8i4u8hoa+goK/gYG9g4O9iIi4ioq7 - jIy7jY25jY26jY27mpqto6OmpqajoaGpmZmym5uwnp6ulpa3iorBg4PDgoLAgYG/iIi4iYm5ioq6ioq6 - ioq6i4u7ioq+lpayoaGmoqKknJyql5eylZW1lZW0lZWzkpKyi4u0hoa4hYW2hoa2hoa5iYm9iorAi4u/ - kJC5mJiwoKClo6OipKSlpaWmpqanpqanpaWmpaWlpaWmpqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OkpKSlpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWl - paWlpaWmpqanpqanpqanpaWmpaWlpKSlo6Oko6Oko6Oko6OkoqKjoqKioqKioqKisA+lpaWlpaWkpKSj - o6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6SlpaWlpaWmpqampqempqem - pqelpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6SkpKSmpqampqempqempqempqekpKWkpKSlpaWlpaWm - pqempqempqempqakpKSjo6SlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWl - paWnp6OgoKqOjrqDg8aEhMWDg8SDg8SDg8WEhMWDg8WDg8WBgceKiryamqmjo6Cjo6Sjo6Sjo6Sjo6Sj - o6OcnKmPj7WKiruDg8KCgsSEhMWEhMWEhMWGhsKKir6Li72NjbyWlrCgoKKhoaGhoaGhoaGgoKChoaGi - oqOhoaOamqyTk7ONjbuKir6Li72Kir6Dg8OEhMWEhMaIiMKPj7eVla6cnKihoaOioqKioqKioqKioqKh - oaGUlK6KiriEhMCBgcWCgsSEhMWDg8aJib+MjLuKir2NjbqXl62bm6WenqCgoKChoaGhoaGhoaGfn6OT - k7GPj7ePj7mJicGEhMaEhMaEhMWCgsSDg8SHh8GNjbmTk7SgoKilpaSkpKWkpKWkpKWkpKWmpqOZmbCN - jbqGhr+AgMSBgcOBgcOBgcOBgcOBgcSEhMOLi7qSkrGUlLCIiLx/f8aAgMN/f8J/f8F/f8F/f8KFhb6I - iL2Dg8aFhceEhMiKisKMjL6Pj7icnKiioqOjo6GenqeVla+NjbeHh7uHh7mFhbiFhbiFhbmGhrmHh7mI - iLyIiL2Tk7CZmaqZma2amq2dna2Pj7yMjMCHh8ODg8aDg8WBgcKGhrmIiLiJibqKiryMjLqRkbSQkLSX - l6+fn6akpKKioqWdnamXl7COjruLi76Li7yKirqIiLmFhbaGhriPj7WTk7OTk7SWlrGZma2enqafn6Si - oqOgoKeWlrKRkbiPj7iQkLiMjLqIiLuHh7iGhreHh7iHh7iKiruMjL2MjL2Njb6Li8CYmLKioqajo6Ke - nqaYmK+NjbuLi7yIiL+EhMGCgr6CgryIiLmJibmKiruMjLuNjbmOjrmPj7mcnKyioqWkpKSjo6agoKig - oKigoKmfn6mTk7WJib2IiLiGhreHh7iIiLiKiruLi7yLi7uLi7uKiryWlq6hoaWkpKOfn6eZma2UlLWT - k7WUlLOOjraIiLuIiLmFhbaGhraDg8CDg8aEhMeFhceGhsWTk7igoKikpKOjo6Sjo6Smpqempqempqel - paalpaWlpaWmpqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWj - o6Sjo6SlpaWmpqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqelpaalpaWlpaWj - o6Sjo6Sjo6Sjo6Sjo6OioqKioqKwD6WlpaWlpaWlpaWlpaWlpaWlpaOjpKWlpqamp6amp6ampqWlpaWl - paWlpaWlpaWlpaWlpaWlpaOjpKWlpaWlpaampqamp6amp6amp6OjpKSkpaWlpaWlpaWlpaWlpaWlpaWl - paSkpKSkpKWlpqamp6amp6amp6ampqSkpKOjpKWlpaWlpaamp6amp6amp6ampqWlpaOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaampKKiqJubr5KSt4yMvYuLvIWFw4KCxoODxYOD - xYODxYODxYKCxoyMu5ubqaKin6GhoaOjpKOjpKOjpKOjo52dqZCQuISExYKCxYODxIODxIODxISExYSE - xYWFxoWFxY+Pup2dq6OjoaGhoaGhoaGhoaGhoaGhoaCgoKCgopWVsoyMu4qKvYyMvImJvYSExISExYSE - xomJwIyMvZGRuJ2dqKGhoaGhoaKioqKioqKioqKiop2dp46OtYSEwYGBxYGBxIGBxIODxImJvouLvIqK - vY2NuZeXrpycqKKio6CgoJ+fn6CgoKGhoaGhoZ+fo5OTsY2NuYmJv4SExYSExYSExYODxIKCw4GBw4OD - woqKu5aWrqGhpaSkpKSkpaSkpaSkpaSkpaCgqZOTtoeHwoKCxYKCxIGBw4GBw4GBw4CAxIODwIuLuJCQ - tZWVrZeXq5KSsouLuYaGvYCAw39/wX5+w4ODu4WFuoKCw4KCxIODxYaGxYiIxIeHxoqKwZeXsKGhpKOj - op+fppKStImJvomJvIiIuoeHuYWFuIaGt4WFuoGBwYODwoODxY2NuJeXrZubqpycq5mZroyMvoaGx4SE - yYSEyIWFxYiIuoaGt4aGuIqKuYeHvoKCxYSExIODxY6OuJ6ep6SkoaKio6KipZycrJSUtI2NvIqKvoqK - u4mJuoaGuIuLsJCQr5KSs5OTtJSUs5WVs5SUs5mZrKCgo6GhopycqpeXr5OTtJOTs5GRtJCQs42NsoeH - uIaGt4aGuIiIuoqKu4uLvIyMvYyMv5iYsqOjp6WlpJ+fppeXr4yMu4eHwIWFwoSEwISEvIaGt4eHuIiI - uYuLt42NuIyMuo+PuZqarqKipaOjo6OjpKOjpKSkpaSkpZ6eqZ2dqZOTtImJvYmJuYiIuYeHuIiIuImJ - uomJvIqKvYyMvJGRtpubqJ+fpKGhpKOjpKGhppycq5SUsI2Nt4qKuoiIuYeHuIWFtoGBvoGBw4ODxYSE - xoWFxYyMvpaWtJ+frKOjpqOjo6OjpKOjpKamp6amp6amp6ampqWlpaWlpaamp6amp6amp6ampqWlpaWl - paWlpaWlpaWlpaSkpaOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6amp6WlpaWl - paWlpaSkpKOjpKWlpaWlpaamp6amp6amp6ampqWlpaWlpaOjpKOjpKOjpKOjpKOjpKKiorAPpqanpqan - pqanpqanpqanpqanpaWlo6OlpaWmpqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6OkpKSlpaWl - paWmpqanpqanpaWmo6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkpaWlpqanpqanpqanpaWmo6Ok - o6OkpaWlpaWlpqampqanpqanpqanpKSlpaWlpaWlpaWlpKSkoqKjoqKjo6Oko6Oko6OkpKSkpaWlpaWl - paWlp6ejnp6skpK4j4+8jo68h4fDhYXGhITGhITGhITGg4PFgoLGjY26l5eun5+loqKgoaGhoaGio6Ok - pKSjo6OknJyqk5O0jIy9i4u8hobCg4PGhITFhITFhYXFhobEkJC6mpqvoaGnpKSkoqKioaGhoaGhoaGh - oaGgoKCgmZmljIy2ioq9jIy9iYnAhITGg4PEhITFhITGhITGh4fEkZG4np6oo6OjoqKhoaGhoaGho6Oh - oaGjlpavjY27iYm9iIi8iIi8iIi8ioq+jo69jY2/j4+7lpaxnJynoaGjoqKioqKhoKCgn5+en5+goKCk - oaGilpatiYm+goLHgoLGg4PFhITFg4PEgoLFhITDiIi9jo61nZ2noaGioqKjpKSlpKSlpKSloaGom5uu - kZG4h4fDg4PIg4PGgYHFgYHDgYHDgYHDgoLChYW/j4+ynJymnp6jmpqnlJSvjo61h4e7hoa7hoa5goK8 - f3/AgIDCgYHDhYXChYXChYXGh4fFj4+7nZ2so6Oko6Oin5+nkpK1iIjAioq+iYm8iIi7h4e2g4O6gIDB - gYHDgoLEg4PGjY26mJitnp6loKCjn5+mlpawkJC5kJC6jo67iYm+iIi5hoa3h4e1hYW8goLEgoLGg4PG - goLHiIi/lpawoKClo6OioaGklpaylJS0lJS1kpK2kZG2kJC0jo6yjY2uj4+tkpKukpKzj4+8jo67jY29 - kpK3nJyppKSfn5+lk5O0k5O1k5O1k5OykJC0ioq6h4e5h4e5h4e5iIi5iYm5iYm7jY28kpK3mpqwo6On - p6ejoaGok5O0h4fBhYXChYXDhYW+hoa3hoa3hoa3iIi1i4u1i4u3j4+0mpqpnp6loaGmoKCmoaGlpKSj - oqKlnp6pn5+omZmulJSzjo63iIi6iYm5hYW2h4e4iYm7ioq9jIy/jY2/jo69lJS3mpqyn5+po6OgoaGi - lZWwjY25iYm7iYm7ioq5h4e5gYG/gIDBgYHCgoLEgoLGhYXEk5O2mZmxmpqwoKCqpaWko6Oko6OkpKSl - paWmpqanpqanpqanpaWlpaWlpqampqanpqanpqanpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6OkpaWm - pqanpqanpqanpqanpaWlpaWlpqampqanpqanpqanpaWlpaWlpaWlpKSlo6OkpaWlpaWlpqampqanpqan - pqanpaWlpaWlpKSko6Oko6Oko6Oko6OksA+lpaampqempqempqempqempqempqakpKSkpKSlpaampqem - pqempqalpaWlpaWlpaWlpaWlpaWlpaWkpKWkpKSlpaSlpaWlpaampqempqempqekpKWkpKSlpaWlpaWl - paWlpaWlpaWkpKWjo6SkpKSmpqampqempqempqelpaWkpKSkpKSlpaWlpaalpaempqempqempqalpaWl - paWlpaWlpaWkpKSioqOioqOjo6Sjo6Sjo6SkpKSkpKSlpaWnp6ShoamUlLaLi8KHh8WEhMaFhceFhceF - hceEhMeDg8aKiryXl6+goKaioqKioqKhoaGhoaGioqGioqSdnamVlbKQkLmOjruHh8CFhcSEhMaEhMaF - hcaEhMeKir+YmLChoaekpKWkpKWjo6ShoaKhoaGhoaGhoaGdnaaRkbOJibiIiLuKirqJibqGhr+Dg8WE - hMWDg8eFhcaNjbyZma6ioqWjo6SioqOhoaKhoaGioqCgoKSSkrSRkbaOjriIiL6EhMGEhMCHh8OHh8OK - isCRkbqYmLKenqmioqGioqKioqKioqKgoKCfn56enqGbm6aQkLKHh7yGhr2Ghr6EhMWEhMWDg8aFhcOK - ir2Pj7eTk66enqGhoaCioqGjo6OkpKWkpKWgoKmbm66QkLqJicGJicGJicGIiL+Dg8KCgsKBgcOBgcOI - iLuVlaqdnaCiop6amqiTk7CSkrKMjLiKirmEhL1/f8J+fsOAgMGCgsCFhcGEhMOHh8KOjr2Xl7Sfn6uk - pKWjo6OdnaiTk7SOjrmPj7eKir2Li7qGhryAgMB/f8KBgcKCgsSBgceNjbqVlbGWlq+YmK2cnKmgoKag - oKWZma2Pj7mJibyJibmHh7aDg7qAgMGAgMOBgcSDg8aIiMGLi7+Njb2WlrKhoaWhoaSYmK6VlbOUlLSU - lLWUlLSTk7KRkbCPj6qIiLWFhbyGhr+GhsOMjL6Li7+QkLmcnKulpaCgoKOWlq6Wlq6UlLCPj7WLi7qI - iLyIiLmHh7mIiLmJibqJibuJibyLi7uSkrWZma+ioqinp6OioqeXl7GOjrqKir6Hh72IiLqIiLiGhriI - iLSIiLaJibiJibqLi7mRkbOcnKibm6iamqyfn6ikpKOioqWcnKqYmK+Xl7OTk7eNjbqJibuJibqGhraG - hriIiLuLi7yLi7+IiMSIiMSHh8aRkb6fn62mpqKfn6ORkbKOjraOjrSNjbSIiLqCgsCAgMJ/f8GAgMGA - gMSDg8SIiL2OjrmQkLmTk7ifn62np6OkpKWjo6Sjo6Sjo6SlpaampqempqempqalpaWlpaampqempqem - pqempqalpaWlpaWlpaWlpaWlpaWkpKWkpKWjo6Sjo6SlpaampqempqempqempqalpaWlpaWlpaampqem - pqempqalpaWlpaWlpaWkpKWkpKSlpaWlpaampqempqempqempqalpaWkpKWjo6Sjo6Sjo6SlpaWwD6Wl - paampqamp6amp6amp6amp6amp6ampqWlpaSkpKWlpqamp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaOj - pKSkpKWlpaWlpaampqamp6amp6WlpqSkpKSkpKWlpaWlpaWlpaWlpaWlpaSkpKOjpKSkpKampaamp6am - p6amp6ampqSkpKSkpKWlpaamp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaSkpKKio6OjpKOjpKOjpKOj - pKOjpKWlpKSkpZ+fqZaWs4uLvoiIwoODxYSEx4WFx4SEyYWFyI2NvZeXsZ6epqKioaKioaKioqKioqGh - oaKioJubqJSUs4+PuIuLvIeHwYKCxISExYWFxYSEx4WFx4mJwo2NvJiYrqKipaWlpKSkpaSkpaOjpKKi - o6KioJ+fpJaWr4yMu4uLuYuLt4uLuImJu4aGwISExoODxoaGxI6OuZqaraKipaSko6OjpKOjpKKipKGh - oqKioKGho5OTspGRtoqKvYSExYGBxoGBxYODx4KCyImJwZOTt52draKip6SkpKKioqKioqKioqKioZ+f - oZmZpY+PsYmJuomJuYmJuIaGv4SExYODxoSExIqKvpGRtpeXr5ycqKCgn6Cgn6GhoaGhoaOjo6Skpp+f - qpWVtI6OvYyMvo2NvY2NvomJwYSEwoGBw4KCw4mJupSUq5ycoZ6enqGhnJmZqZCQtY6Oto2NuIyMuIaG - vYSEvYODvYGBwISEwIWFwoiIwYuLvo+PvJOTuJmZsKWlpaWlpKGhppubq5SUs46OuYyMvIiIv4ODxIGB - xIGBwoGBwoGBxImJvJGRtJKSs5GRtZOTspqaqqGhoqOjopmZrpCQt46OuImJuoSEvH9/wX9/w4GBxIKC - xIiIwIyMvIyMvo2NvZWVtJ+fqKOjpKCgpJaWsZKStpKStZOTtZKSspKSsImJtoKCwH5+xYCAw4aGv4uL - vIyMvY2NvJiYsKOjpKKio56epJ+fopWVrIqKuIeHvYiIu4iIuYiIuYiIuYmJuomJvImJvIqKu5CQtJiY - rKKipqeno6Skpp6eq5iYsY2Nu4mJvIiIuoiIuYmJtoiItoeHuIiIuomJvImJvYqKu5KSs5OTtJWVs52d - qqWlo6OjpKCgppiYsJGRuYyMvouLvouLu4mJuoaGuIaGuImJuoqKvYeHwoSExoODyIqKw5OTup+fr6en - paOjppWVrpKSsI+PsYmJuIKCwYCAw4GBwn9/wX5+woCAwIWFu4qKuIqKvY6OupSUtZ6erKWlpaWlpaSk - paSkpaSkpKSkpKWlpqamp6amp6ampqWlpaWlpaamp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaSk - paOjpKSkpaamp6amp6amp6amp6ampqWlpaWlpaampqamp6amp6ampqampaWlpaWlpaSkpKSkpKWlpaam - pqampqamp6amp6ampqWlpaSkpKOjpKOjpKSkpbAPpaWlpaWlpqalpqanpqanpqanpqanpqanpqanpKSl - o6OkpaWmpqanpqanpaWmpaWlpaWlpKSlpKSlpKSlo6Oko6OkpKSlpaWlpaWlpqampqanpqanpaWmpKSl - pKSkpKSlpKSlpKSlpqalpqampKSlpKSlpaWlpqalpqanpqanpqanpqamo6OkpaWmpqanpqanpqanpqan - pqanpaWmpaWlpaWlpaWlpaWlo6OkoqKjoqKjo6Oko6Oko6OkoqKknZ2olpawj4+2i4u7iYnAgoLFg4PG - hITHhYXGjo69mpqwnZ2toqKlo6OioqKioqKioqKioaGhoqKgmpqokJC1iYm8hoa+goLFg4PEhITFhITG - hYXGiIjCjo67j4+6m5uto6OkpKSkpKSlpKSlpKSlo6OlpKShnZ2mkZG0jo62jo63jY22i4u8hobDgoLH - hITFhobCjo67mJivoaGkpaWio6Oko6Oko6Oko6Oko6OjoqKgnZ2kkZG1ioq/g4PFgoLGg4PFg4PFg4PG - hITGh4fDk5O3oaGpp6ejpaWlo6OjoqKioqKioqKin5+mk5OviYm6iYm6iIi6hITAgoLGg4PGhYXEi4u9 - kJC3lpawnZ2ooaGioqKioKCfn5+foKCgoqKhoaGkmZmwjY29jIy/jY28jIy9iYnBhITFg4PEgoLCiIi6 - lJSrnZ2fn5+dnp6en5+cmpqkk5Oxjo63j4+2jIy5i4u5iYm5hYW8goLBg4PCg4PEjIy/jo6+jY2+kJC7 - lZW1oqKopaWlpqajoqKllZWxiYnAiYnAhITFg4PGgoLDgIDCgIDCg4O/jo6zkJC0kJC1lJSxmZmtnJyp - oaGhnJyolZWxkZG0jo63hYW/f3/Df3/Cf3/CgoLDh4fBjIy8i4u9jo66lpaznZ2roqKnpKSlpKSilJSx - kJC1kpK0k5O0k5O0jY25goLCgIDEgYHBhYW9i4u5ioq6jIy8i4u/kZG4nZ2qo6Oko6OioaGilZWtjIy2 - i4u3ioq3iIi5iIi5h4e5h4e5iYm6iYm8ioq7kJCxlZWsnJyoo6OlpaWloqKonJyvkZG5jY27jIy4jIy3 - i4u3h4e6hoa5iIi6iYm7iYm8iIi+iIi+h4fBjo64m5urpKSjo6OkpKSjoKCnk5O0jY27i4u7iYm7iYm6 - hYW4hoa3h4e6hYXAg4PEhITEiYnAlZW1nZ2voKCspaWopqann5+qlJSviYm6goLCgIDEgYHCgYHCgIDC - gIDAhIS5iIi2i4u5j4+5lJS0l5ewnJyro6OnpaWlpaWlpaWlpaWlpKSko6OlpaWmpqanpqanpaWmpaWl - paWlpqampqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OlpaWmpqanpqanpqanpqanpaWm - paWlpqampqampqanpqampaWlpaWlpaWlo6Oko6OlpaWlpaWlpqampqanpqanpaWmpKSlo6Oko6Oko6Ok - sA+lpaWlpaWlpaWlpaampqempqempqempqempqempqakpKSjo6SlpaampqempqempqakpKSjo6Sjo6Sj - o6Sjo6Sjo6SkpKSlpaWlpaWlpaWmpqampqempqelpaajo6Sjo6Sjo6SkpKSmpqampqempqempqelpaWl - paWlpaampqempqempqelpaWlpaWlpaampqempqempqempqempqempqalpaWlpaWlpaWlpaWjo6SioqOi - oqOjo6Sjo6ScnKqXl7CPj7eLi7uHh7+CgsaDg8WDg8WCgsaLi76YmLGbm66cnK6jo6ejo6OioqKioqKi - oqKioqKhoaGdnaaRkbGFhb6CgsWEhMWDg8WEhMWEhMWHh8KOjruQkLmVlbShoaimpqSkpKWjo6SkpKWk - pKWkpKWkpKSbm6qQkLSRkbKNjbeJibyFhcODg8aEhMWFhcSLi72QkLeWlrCenqejo6Gjo6Sjo6Sjo6Sj - o6SkpKSfn6eUlK+IiL6Dg8WCgsaDg8WDg8WDg8WEhMSHh8GHh8OPj7qenqumpqSlpaWlpaWjo6OioqKj - o6GenqaSkrSLi7mJibqDg8CAgMWCgsSFhcOKiryQkLaTk7OYmK2fn6WioqKioqKhoaGfn5+goKCioqCg - oKOTk7OOjrqMjL2Li72IiMCDg8WDg8ODg8OJibuUlKydnaCfn52enp6enp6fn52cnKCWlqiSkrGQkLSK - irqKiruHh7+CgsOBgcKBgcOCgsWKisCNjb6SkrqXl7SWlrSbm6+jo6empqSioqeWlrKJib+Dg8aEhMWD - g8SBgcOBgcKCgr+IiLmIiLuIiLyNjbeUlLCXl66Xl66goKWcnKeUlK6MjLeFhb+AgMSAgMJ/f8F/f8GF - hb2MjLqLi7yLi72SkrWXl7CenqqkpKSkpKWlpaSWlrCRkbWSkrSSkrSPj7qDg8eBgcOBgcCGhruKireJ - ibmJibqKirqNjbuPj7qXl7Cjo6Ojo6Samq2SkrKQkLKRka+Pj7KJibmHh7mHh7mIiLqIiLqIiLuKiruQ - kLSPj7ORkbKZmayioqWlpaWfn6uYmLKWlrSUlLOOjraIiLyIiLqFhbiHh7mJibqHh76Dg8eDg8aDg8aL - i76YmK6ioqOjo6Sjo6SkpKOgoKaZma2Pj7aIiLyIiLqFhbiFhbiBgb6AgMKCgsKGhsCSkrWVlbOenqyj - o6ikpKimpqempqiXl7OGhsF/f8aBgcKBgcKBgcKAgMCFhbiIiLaIiLuKir2RkbeRkbiVlbScnKyjo6Wl - paWlpaWlpaWlpaWlpaWkpKWjo6SlpaampqempqelpaalpaWlpaWmpqempqempqelpaalpaWlpaWlpaWl - paWlpaWlpaWkpKWjo6Sjo6SmpqempqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWj - o6SkpKSlpaWlpaWmpqempqempqekpKWjo6Sjo6Sjo6SwD6WlpaWlpaWlpaWlpaWlpqamp6amp6amp6am - p6amp6ampqWlpaOjpKWlpqamp6amp6ampqWlpaOjpKOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaampqam - p6amp6amp6OjpKOjpKOjpKSkpKWlpqamp6amp6amp6WlpqWlpaWlpqamp6amp6amp6WlpqWlpaWlpqam - p6amp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaSkpKKio6Kio6OjpJiYr5CQuI2NvImJwYODxoKCxIKC - xIKCxoaGwI6OuJOTtpSUt5qasKOjp6WlpKOjpKKio6KioqKiop2dqJeXrpCQtYiIv4ODxoSExoSExoOD - x4eHwYyMuo+Pt5WVspubraKip6WlpKSkpaSkpaOjpKSkpaWlpKGhqZiYsZCQtY2NuIqKu4WFw4SExoSE - xoSExoWFxYSExYaGw5GRt56eqKOjoaKioqOjpKOjpKSko6Cgp5WVtIiIwYKCxYKCxYODxoSExoSExoWF - xYiIwYaGwoyMvZiYsKKipaWlpaWlpaWlpaWlpaOjo6KioaGho5mZrI2Nu4SEw4GBw4CAwoODwIyMuZCQ - tZSUsZSUsZiYrp+fpqKio6KioqKioqKioqCgoJ+fn5+fopmZqpOTsYyMuYaGwYODxYSExISExImJvpWV - r52dop+fnp6enp6enp6enp+fnZycopWVq46OtIqKu4qKu4uLuoaGwYGBxYGBw4GBwoGBw4mJvpGRt5WV - tZaWtJmZsZmZsZ+fq6WlpaOjppiYsYuLvoSExYODxYKCxICAwoGBv4WFuoaGvYiIvoqKvYqKvImJvImJ - vIyMu5qarJ2dqJKStIWFwoGBxoKCxIGBw39/w4ODu4iIt4qKu4qKu4uLu4uLvYmJwJGRt56eqaWlpKSk - pZ+fqpaWsZKStI2Nu4KCx4SExYGBw4SEuoeHt4iIuoiIuoiIuomJu4+PtZGRtJeXr6Ojo6OjpJWVs5KS - tZGRs5GRsY6Os4iIuoeHuYWFuIaGuIiIuoiIuomJuYqKu4qKu4iIvZCQtZ6ep6OjpKKip5ycrpeXs4+P - u4mJv4mJvIiIuoWFuIeHuISEvYGBxIODxISExYqKvY2NupiYr6Kio6Kio6OjpKOjpKSko6Cgp5SUs4mJ - vomJu4eHuoKCvoGBwICAwYODv4qKuoqKu4mJvpSUtKKiqKampaamp6WlqJmZtYqKwoKCxoGBxIGBw4GB - woWFuYeHuIiIuYeHvYKCxYKCxYKCx42NvZycrKWloqOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKamp6am - p6amp6ampqWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKamp6amp6am - p6amp6amp6WlpaWlpaWlpaWlpaSkpaOjpKWlpaWlpaWlpaSkpKSkpKWlpaWlpaWlpaWlpaSkpKOjpKOj - pKOjpLAPpaWlpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpqanpqanpqanpaWlo6OkpaWmpqanpqanpqan - paWlo6Oko6Oko6Oko6Oko6Oko6OkpaWlpaWlpaWlpaWmpqanpqanpqanpKSlo6Oko6Oko6OkpaWlpqan - pqanpqanpqampaWlpaWlpaWlpaWlpaWlpKSko6OkpaWlpqanpqanpqanpqanpqanpqanpaWlpaWlpaWl - paWlpKSkoqKjoKCkm5uskZG3iIjChITGhITGhITFg4PFgoLFh4e+jIy5jo65kpK2n5+qpKSlpaWlpaWl - o6OkoqKjoKCkmpqrl5evkJC2hobAhITIhYXHhITIiorBjo67kJC3lpaxmZmsoKCnpKSlpKSlpKSlpKSl - pKSlo6OkoqKmnZ2slZW0jo67i4u9iYm8ioq8h4fChITGhYXFhYXFh4fCkpK2m5uqoKCko6OjoqKjoqKi - o6OjoaGlmJivi4u+g4PHhITGgoLFgYHEgoLFhYXGhobEhobEhITGjo65nZ2qpqakpKSlpKSlpaWlpaWl - pqakoqKll5esi4u6hITCgoLEgYHFhYXBjIy3kpKxlZWvlJSvmZmtn5+mo6OioqKjoqKjoqKioqKioqKh - n5+il5eokZGwi4u4iYm6ioq8i4u9i4u9i4u8ioq9kpKzmpqonp6hn5+enp6enp6en5+dl5eojIy2iIi6 - iYm5ioq4hITAgYHDgYHDgIDCgYHBh4e7j4+zk5OzlJS1lJS2lZW2mJiyn5+rpaWlo6OmmJiyi4vAhITG - goLGgYHDgoK+hIS6hIS6hoa9jIy8h4fChITFhYXEhYXEhobAlJSxmJiujY26g4PFgYHGgYHFgYHFhoa9 - h4e3h4e3iYm4ioq7hITDhITEhITFiIjBk5O0n5+opKSlpaWkm5uujIy9g4PGhITGg4PFh4e8hoa4hoa4 - h4e5iIi6iYm6j4+1kJC1lJSwnJyopKSjo6Okm5utmpqul5exjo63iYm6h4e5hYW4hYW4hYW5h4e5iIi5 - iYm5ioq6ioq7ioq8k5Oxnp6joqKioaGlnZ2tkZG6i4vAjIy/i4u+iYm7iIi4hIS9gYHBgYHEhITEiYm8 - j4+4kZG2lpavnp6no6OioqKjo6OjoKCmlZW0i4u/ioq+ioq9g4PCgYHBgIDCg4O+iIi5ioq7ioq7jY22 - lpavoKCopaWkpaWmp6emmZm0j4+/i4vAiYm8iIi7hoa6hoa3h4e3hYW9g4PEhITFhITFg4PHiYnBlZWz - oKCnpKSjo6OkpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Ok - paWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6OkpaWmpqanpqanpqanpqanpaWlpaWlpaWlpaWlpaWlo6Ok - paWlpaWlpaWlpKSlo6Oko6Oko6Oko6OkoqKjoqKjo6Oko6OksA+jo6SlpaWlpaWlpaWlpaWlpaWlpaWm - pqempqempqempqempqempqekpKWjo6SkpKWmpqempqempqelpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKWl - paWlpaWlpaWmpqempqempqekpKWjo6Sjo6Sjo6SlpaWmpqempqempqempqalpaWlpaWlpaWlpaWkpKWj - o6Sjo6SlpaWmpqempqempqempqempqempqelpaWlpaWlpaWlpaWioqaamquWlrGKir+EhMeEhMaEhMaD - g8WEhMSEhMSDg8SFhcKMjLqXl62ioqalpaWlpaWlpaWlpaWjo6aamq2YmK2Xl66YmK2UlLKKisCFhcaF - hceGhsaGhsWJicCVlbOfn6aioqOjo6OkpKWkpKWkpKWkpKWlpaOdnayVlbWPj7uMjL6MjL6Li7yHh8GE - hMWEhMaEhMWJicCTk7aamq2goKWioqKioqOioqOioqOioqKhoaSYmK+Li7+Dg8eDg8eDg8aBgcWCgsOF - hcKGhsWEhMaOjruXl7Gfn6ekpKOkpKWkpKWkpKWlpaSjo6eamrCMjL2EhMOCgsWDg8WDg8WEhMSFhcOE - hMCKirmRkbKYmKyfn6Wjo6GioqOioqOioqOioqKjo6GhoaKXl6mKiriJibqLi7mJib+GhsSGhsOGhsSJ - ib+SkrSZmamenqKgoJ+fn5+enp6enp2ZmaSSkq6OjrSJibmEhMCBgcOBgcOAgMKBgb+FhbeHh7eKiraM - jLuQkLqVlbSUlLWWlrWdna6kpKampqSgoKiXl7GRkbiQkLWIiLuEhL2EhLqFhbqIiLiFhcGFhcWFhcaF - hcaIiMOLi7+SkrSbm6qTk7OJib+Jib+Jib+IiL+Pj7SMjLSIiLiHh7mDg8GCgsSCgsWCgsWDg8aKir+Y - mK+ioqWlpaOZma+MjL6IiMKJib+Jib2IiLqGhrmGhrmHh7qJibmQkLWRkbaXl7Cbm6ubm6mdnaekpKSh - oaaioqSbm6yOjrmIiLyIiLqGhrmFhbiFhbeHh7iIiLqJibuKiruKiruIiL2QkLOenqSjo6GioqKenqmR - kbmLi7+MjL2Li72KirqDg76AgMGAgMKDg8CIiLuKirqMjLqNjbuPj7iYmK+ioqOioqOjo6KenqiVlbOQ - kLmRkbaSkrSRkbSJibmFhbyHh7qKiriKirmLi7qQkLSSkrKWlq6fn6ilpaWlpaWdnbCVlbiQkL2Njb6L - i7yJibmIiLeDg7yAgMGBgcKCgsSDg8aJicCKir6QkLmdna2np6OlpaWjo6SkpKWlpaWlpaWlpaWlpaWl - paWkpKSjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sj - o6SlpaampqempqempqempqelpaalpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SioqOi - oqKioqKjo6SwD6OjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpqamp6amp6amp6amp6amp6ampqWlpKSkpKWl - pqamp6enqKamp6WlpqOjpKOjpKOjpKKioqOjpKSkpKWlpaWlpaWlpaWlpqWlpqampqWlpqOjpKOjpKOj - pKSkpKampaamp6amp6amp6ampqWlpaWlpaWlpaWlpaSkpaOjpKSkpKampqamp6amp6amp6amp6amp6Wl - paWlpaWlpaampKSkppaWs4uLvYWFxYSExoSExYSExYODxYSExISExYSExIeHwJCQtJycpaGhoqSkpKWl - paWlpaWlpaSkppubrpqaq5ubqZeXro2NuYaGwoSExoWFx4SEyIODyoeHxJSUtKGhpaKio6Kio6Kio6Oj - pKSkpaSkpaOjppycrZGRuYuLv4yMvo2NvYiIwoWFxYODx4SExYeHwYqKvpWVs5ubq6GhpaOjoqKio6Ki - o6Kio6Kiop+fpZWVsoqKv4mJwImJwIiIwoWFwoODwIODwIaGwpCQupiYr56eqKKipaOjpKOjpKSkpaSk - paamo5+fqpCQu4SEyIODyISExYSExYSExYODxoODxoaGvoeHvY6OtpqaqaGhoaGhoaKioqKio6Kio6Oj - oqKio5qaqpCQtYmJu4mJuIeHvYSEw4ODxoSEx4iIwY6OupWVsJ2dpqGhoaGhoaCgoJ+fn5+fnZuboJOT - q4qKuIODwICAxICAw4CAwX9/wX9/wYGBvYaGtoaGuYyMuJKStZSUtJSUtpSUt5SUtp6eq6ampKOjppyc - rJWVs4+PuYmJvIWFvYWFuoaGt4ODvYGBwoODxIWFxImJwoyMv4yMvo+PupubqpycqJOTs4+PuJCQtpCQ - tI6OtoyMt4eHuoKCwICAw4GBxIKCxIKCxYSExYyMvZmZrqGhpaSkop2drJSUtpKSuJGRtouLvImJvIeH - u4WFuoiIt46OspOTspSUs5iYsJiYsJWVspiYraCgpaOjpKKipZeXsoyMvYmJvYiIu4iIuoeHuIWFtoWF - t4iIuoqKu4uLvIuLvYyMuZOTspubqqCgoqGhoZ2dp5CQuImJwIyMvYyMvYaGwoGBw39/w4CAv4WFuoqK - uYqKuYqKvIqKvomJv5CQt52dqKKio6Kio6GhpaCgp56eqpqarpWVso+Pt4mJuIeHtoaGuYSEv4SEv4SE - wIuLupCQtJKSsZiYraCgpqWlpqKiqpmZtJCQvoyMwYyMvouLu4WFvoGBwYCAwYGBwoKCxImJwI2NvI2N - vY2NvpaWtaOjp6ampaSkpaSkpKSkpKSkpKSkpKWlpaWlpaSkpaOjpKOjpKSkpKWlpaWlpaWlpaWlpaWl - paWlpaSkpaSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKWlpqamp6amp6amp6ampqampaWlpaWl - paWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjoqKioqKio7APo6Oko6Oko6OlpaWlpaWlpaWl - paWlpaWlpqampqanpqanpqanpqanpqanpqanpaWlpKSkpKSmpKSlpKSlpKSlpKSlo6Oko6OjoaGho6Oj - o6Oko6OlpKSlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OkpKSkpaWlpqanpqanpqanpaWmpaWlpaWl - paWlpaWlpKSko6OkpKSkpaWlpqanpqanpqanpqanpaWmpaWlpaWlpaWloKCrkpK5hYXFg4PGhITFhITF - hITFhYXFhITGhYXFiYm/kJC2mJiroKCgoaGhoqKio6OkpaWlpaWlo6OmoKCpnZ2ql5evjY26hITEgoLG - g4PGhYXHhYXHhITJiYnEl5ezoqKloqKjoqKjoqKjo6OkpKSlpKSlnZ2sl5eyj4+5i4u9ioq/iIjChITH - g4PHhITEh4fBi4u9kZG2mJiunp6ooqKlo6OjoqKjoqKjoqKjnp6nlZWwjIy6ioq/jIy9iYnBiIjDhYXD - goLDgoLCh4e8lJSxnJysoqKmpKSjo6OkoqKjo6OkpaWlpKSmm5uvj4+8iYnDiorChYXGhITFg4PGhITF - iIi/i4u8jIy6j4+1nJymoqKfoaGhoqKhoqKjoqKjoaGkmpqrkJC2i4u9i4u7hoa9goLBgYHEg4PEiYnA - kZG4mJiynZ2qoaGjoqKgoaGhoaGhoKCfnp6fmJimjIy1goLCgIDEgYHDgIDBf3/Bfn7Cfn7BgYG8hIS4 - iYmzjY20j4+3j4+6jo67j4+8jIy/mJiypaWlo6OnmJiyjY27iIjBh4fBiIi9h4e7g4O9f3/CgIDBgYHC - hITDh4fDiorAjIy+jY2+lpaxnJynmZmrk5Ozk5OzkZG1jY26iIi9goLAf3/CgIDCgYHEg4PEgYHHh4fA - k5Oym5uqnZ2ooqKjo6OkmpqukpK4j4+7i4u+ioq/jIy6i4u0ioqxjIy0ioq7jIy8ioq/j4+7lZWzlpaw - mZmsoqKin5+nkpK3iorAjIy+ioq8iYm7h4e4hYW2hYW3iIi6ioq7i4u9i4u9kJC3lJS0lZWxm5uooaGh - n5+jk5OyjY25jo64ioq9hobChIS/goK+hIS6h4e3iIi4iIi6iIi9iYm/iIjBjo65nJypoqKjoqKjo6Oi - o6Ojn5+nmJivj4+5iYm9iYm5hoa5gYG+gIDDgIDDgYHDh4e9jY23jo61j4+0lpatoqKkpqakmpqykZG7 - kJC8jY2/iYnChITFgYHDgIDCgYHBhoa9jIy6iYnAiYnCh4fFi4u/mpqvpKSmpaWlpKSko6Oko6Oko6Ok - pKSlpaWlpaWlpaWko6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpKSkpKSkpKSlpKSlpKSlpaWlpaWl - paWlpKSko6Oko6OlpaWmpqanpqanpqanpqanpqampaWlpaWlpaWlpKSkpKSkpKSkpKSkpKSko6Oko6Ok - o6Oko6OkoqKjoqKisA+kpKSjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWmpqampqampqempqempqem - pqelpaWjo6SioqKioqKjo6Ojo6Sjo6Sjo6SioqOioqKjo6Ojo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWl - paWkpKSjo6Sjo6Sjo6SlpaWmpqampqempqelpaalpaWlpaWlpaWlpaWkpKSjo6Sjo6SlpaWmpqempqem - pqempqelpaampqSioqeXl7SLi8GGhsaEhMaEhMWEhMWFhcaFhcaHh8aKir+RkbeZma2goKShoaGhoaGh - oaGhoaKjo6Sjo6ehoaigoKmYmLKNjb6EhMWCgsaDg8WDg8WDg8aEhMiHh8WQkLudna6lpaWkpKSioqOi - oqOioqOjo6Sjo6Wamq+SkreRkbiSkreNjbyGhsOHh8GHh8KJicCMjLuRkbaXl66cnKiioqSjo6Ojo6Sj - o6SioqOioqScnKqOjrmJib6Li72IiMGDg8eDg8aBgcaCgsaGhr+NjbSRka2bm6mioqWkpKSjo6Sjo6Si - oqOjo6SdnauVlbORkbiPj7uKisGFhceEhMaFhcSJib+Li7yMjLuRkbOXl6yenqOhoZ+hoaGhoaGioqKi - oqKamqqQkLeLi72Li72JicCEhMWCgsWCgsGGhr2MjLeSkrWXl7GhoaakpKKhoaKhoaGhoaGgoKKXl6qO - jrSHh72CgsGBgcKBgcKAgMF/f8J/f8GCgryGhrWIiLKLi7CKireJib6Kir6Jib6Kir+JicCTk7ehoamk - pKaYmLKKisCKir+MjL6Li72GhsCAgMSAgMGAgMGAgMKBgcSCgsaEhMaMjL2QkLmVlbSbm6yamqyTk7KS - krSMjLyJib6Dg8J/f8N/f8GBgcKCgsOCgsWEhMWKiryUlLCZmayamqugoKWlpaGdnaqTk7aQkLqPj7uO - jruRkbWQkLCJibSDg79/f8Z/f8eBgciLi7+UlLaTk7aUlLOgoKKhoaOXl7GNjbuMjLyMjLyLi7qIiLiG - hriGhriHh7mJibqLi7yKir6Li72Li72OjrqXl66hoaKkpJ6Xl6qPj7ONjbaJibuJibqIiLiHh7eGhreG - hreGhrmGhryGhr2IiL2MjL2Tk7OenqWioqGioqOjo6Kfn6aWlrCOjrqKir6KirqIiLuCgr9/f8KAgMGB - gcCGhr+JibyLi7uKir2NjbmWlq6hoaOmpqGbm6+Tk7iSkrmNjb+EhMmEhMeCgsSBgcGFhbyJibeIiL6E - hMWCgsmFhceKisGTk7ienqykpKalpaWlpaSkpKSjo6Sjo6SkpKWlpaWlpaWlpaWkpKSjo6SkpKWlpaWl - paWlpaWlpaalpaampqakpKSjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWjo6Sjo6Slpaalpaalpaalpaal - paalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6SioqOwD6WlpaOjpKOjpKOjpKSk - pKWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6amp6ampqWlpaOjpKOjpKOjpKOjpKOjpKOjpKOj - pKKioqKioqOjo6OjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKSkpKWlpqamp6amp6am - p6WlpqWlpaWlpaWlpaWlpaOjpKOjpKSkpKampqamp6amp6amp6amp6enpaGhqZKSuIiIw4aGw4SExISE - xYWFxoWFxoaGxYyMwJGRuZeXsJ+fpqOjoaGhoaGhoaGhoaGhoaCgop+fpp+fqpiYs46OvoaGxoODx4OD - xYODxYODxYKCxYWFw5GRuZ6eraKiqKWlpaSkpaOjpKKio6Kio6Kio6CgppqarpaWtJWVtZWVtJKSt4yM - vIqKvYuLvYqKvo2NupSUspeXr52dqKGho6Ojo6OjpKOjpKOjpKGhpZ6eqJKStoyMvImJv4KCx4ODxYKC - xYKCxYeHv4+PtpWVrpeXpp2dnqGhoaOjpKOjpKOjpKOjpJycqZeXsZGRuI2NvYmJwoODx4SExYODxoeH - wYuLvY2Nu5OTtJmZrJ6epKGhoaGhoKCgoKGhoaGhoZ6eppKStIuLvYyMvomJwIODxoSExoODxIeHvYuL - touLto2Nt5OTs5+fp6Sko6Ojo6KioqCgopiYq4+PtoqKu4mJuoeHu4CAwYCAwX9/wX9/wYKCvIeHtYeH - s4uLroaGtYeHuomJu4mJvIqKvYqKvY2Nu5KStp6eq6amo6CgqZWVtZWVtZWVs42NvYSEx4KCxICAwoCA - wYCAwoCAxIGBxoWFwo+PuJWVspqarp6eq5qarZOTspGRsouLuoODw4CAxICAwX9/wYCAwYGBwoGBxIeH - wIqKvouLu5WVsJ2dqKKio6Ojop+fp5ubrZubrpSUtJWVtJOTs4uLt4KCv39/xYGBxYKCxYmJvoyMvIyM - vo6OvJWVtKGhpqSkn5ycp5GRtoyMvI2Nu4yMuYmJuYeHuYeHuYeHuYiIuYmJu4WFw4SExoODxoeHwZWV - saCgpKOjn5iYqoyMuIiIvYmJvIiIuoeHuYeHuIeHt4WFuISEu4aGvIeHvImJu46Ot5OTspqarKGho6Ki - oqOjoqCgpJaWsIqKvouLvYqKvIODwYCAw4CAwYCAv4SEvIiIuYuLvIyMvYuLvpCQuZycqqCgoqOjoJub - qpGRtoyMu4qKvIaGwoSEwoKCwoWFvIiIt4WFvIKCxoKCxYWFxo2Nv5OTt5OTt5eXs6SkpqampKWlpaSk - paOjpKOjpKOjpKSkpaWlpaWlpaWlpaOjpKOjpKWlpaWlpaWlpqamp6amp6amp6WlpaSkpKOjpKOjpKOj - pKWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paSkpKOjpKOjpKOjpKOjpLAPpaWlpaWlpKSko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqan - pqanpqanpqanpqanpaWlo6Oko6OkpKSlpaWlpaWlpaWlo6Oko6OkoqKjoqKio6OkpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlo6Oko6Oko6Oko6OkpaWlpqanpqanpqanpqampaWlpaWlpaWlpaWlpKSko6OkpKSk - paWlpqanpqanpqanp6emo6OompqvlZW2jY28hobDg4PGhITFhobEjIzAkpK5lJS3mZmyoKCoo6OioqKj - oaGhoaGhoaGhoKChnJyml5eyjY29hobFhITHg4PGg4PFg4PFg4PFg4PEjo63mpqsoaGnpqalpaWlpaWl - pKSlpKSlo6OjoaGkmZmtlJSzlZW1lZW0kZG4jIy+i4u9hYXEhITFhITFhYXFi4u9mJitoaGkoqKjoqKj - oqKjo6Oko6OkoaGlnZ2pkpK1iIjBg4PGg4PFg4PFgYHFhYW+jo62lZWvmpqonJylnZ2enp6doaGio6Ol - o6Oko6OkmJivkJC3jY28iYnBhITHhYXGg4PFhITGg4PIiYnBlJS0mpqsnp6moqKjoqKhoaGhoaGhoKCg - oaGgmJirkJC2jY27iYnAhITFhYXEhITFiIi9jIy4jIy4jIy1k5OsmZmmoaGkpKSko6OkoqKknJyoj4+3 - i4u8i4u7h4e+gYHEgIDBgIDBfn7Cg4O7hoa1iIizjIythoa2hYW3hoa5iIi7iYm7iYm8jIy7kpK2mJiw - n5+ppKSlpKSmnZ2snp6smJixkZG5iYnAgYHEgIDCf3/CgIDDgYHFhYXDjY27kpK0k5O2lZW0nJysnJyr - lJS1jIy6iYm8g4PCgYHDgYHBgIDBf3/BgYHCgoLDg4PFgoLGh4fBlZWyoaGjoqKio6Oin5+ml5evkZG1 - kpK0k5OzjIy5g4PBf3/Df3/CgYHDiIi9ioq7ioq7jo64lpazmJixnp6ro6Ojm5upkJC2jIy7jY26i4u9 - ioq8iYm6h4e4hoa3iIi5goLAgoLEhITFg4PGhobDkJC3nJypoqKin5+jkZGyh4e+iYm8iYm8iYm5iYm5 - hoa5hYW6hYW8iIi+ioq7ioq7iYm8iYm9j4+4nJyooqKjoqKio6OhnZ2pkJC3ioq+hITEgoLDgYHCgYHA - goK7hYW3iIi5iYm6ioq8i4u+jo67lZWzm5usoaGinp6jl5eskZGxkJCxkJCwiYm3h4e5h4e2hIS6gYHD - goLEg4PFjIy7kZG4kpK4lZW1lZW1o6OnpqakpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Ok - o6OkpKSlpaWlpaWmpqanpqanpqanpqampKSloqKjoqKio6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - o6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6Oko6OksA+jo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6SlpaWlpaWlpaWkpKWjo6SlpaWlpaWmpqampqempqempqempqelpaWlpaWlpaWlpaWl - paWlpaWlpaWkpKSjo6SioqOioqKlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sl - paWmpqempqempqempqalpaWlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWlpaWkpKaenqqXl7GRkbiGhsOE - hMWDg8aHh8ONjb2MjL2MjL6RkbqenqympqSkpKSioqOioqOhoaGioqCfn6OWlq2Li7yEhMWDg8WDg8WD - g8WEhMWEhMWFhcOIiL6KiryUlLCgoKWlpaWlpaWlpaWlpaWlpaWkpKSgoKaTk7OTk7OUlLOQkLiMjL2L - i7+FhcWEhMaEhMaFhcSJicCRkbadnaeioqKioqOioqOioqOjo6Ojo6WenqqTk7aIiMGDg8WDg8WDg8WC - gsSBgcaHh7+OjreTk7GWlqycnKWhoaKenp6dnZ2hoaGjo6Wfn6iZma+Pj7qLi72IiMCDg8aDg8WDg8WC - gseHh8KKir+QkLmdnamioqSioqKioqKioqKhoaGhoaGenqKXl6qRkbOOjrePj7eOjreRkbSNjbiMjLmL - i7mNjbaTk62YmKadnaCgoKCioqOkpKShoaaXl7CPj7iMjLuHh8GDg8WCgsSBgcKBgcKDg7uJibGNjauL - i6+GhreFhbeFhbiFhbmGhrqHh7qKiriQkLOUlLSVlbSZma+hoaekpKWdnauYmLGRkbmJicGDg8aBgcSA - gMN/f8J/f8SFhcCLi7uLi72MjLyLi76SkrWcnKuenqqVlbSIiMKDg8WCgsWBgcOBgcGAgMF/f8GAgMGB - gcKBgcOCgsWGhsSOjrqamquhoaSjo6Kfn6aWlq+RkbaSkrSOjrqGhsOBgcWAgMSBgcKHh7uKirqKiryO - jreUlLCXl6+amrCZmbGjo6efn6mTk7ONjbmLi7yLi7yLi7yKiruIiLeEhLiAgMGAgMKAgMSCgsWGhsOJ - icGKisCXl7ChoaSkpJ+ZmaqOjrWQkLORkbKMjLiHh72FhbyEhLqFhbqIiLmFhcKEhMODg8SFhcKQkLac - nKiioqOioqKjo6CenqePj7iDg8aEhMWCgsSCgsGEhLuFhbaFhbeIiLmKirqHh8CEhMOFhcOIiMKUlLOh - oaejo6CdnaSVlayQkLKQkLGOjrCJibOCgrt/f8GAgMKAgMSKiriPj7aSkraUlLWXl7SamrChoamlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6SioqKioqOkpKWlpaWlpaWmpqempqempqempqak - pKWjo6SioqKjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWkpKWjo6Sjo6SwD6OjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKWlpaWlpaampqamp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjo6Ojo6OjpKWlpaWl - paWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKWlpqWlpaWlpaWlpqWlpaWlpaWlpaWlpaWl - paSkpaOjpKOjpKOjpKKipZ6eqpeXsI2Nt4aGwoODxYSExYODxYaGwYyMuoyMvYyMvZGRup+frKeno6Wl - paOjpaKio6Ojo6Cgo5eXrIuLuoODw4KCxIODxoSExYSExISExIWFxIqKv4qKvZGRtJubp6KioKOjoqWl - paWlpaWlpaampaOjppycq5SUspWVsZWVsZCQt4mJv4WFxISExoSExoaGxImJwJCQt5qaq6KioqKioqKi - oqKio6Kio6GhpJycqZKSt4iIwoSExoODxoODxYODxYCAxIaGvYuLuYyMuY6Ot5WVr6CgoqGhoaGhoZ6e - np6enaCgoaCgqJqarpCQuImJwYWFxIODxYODxYKCxoeHwYuLvIuLvo6Ou52dqqOjpaOjo6KioqKioqKi - oaCgopiYqpCQso6Oto6OtpCQtJGRtI+Pto6Ot42NuI+PtZKSsZSUr5iYp52dn5+fnqGhoKOjo52dqpGR - uI6OuoiIwYSExYODxYKCxYGBw4aGu4iIt4mJtIiIs4aGtYWFt4WFuIWFuIWFuIWFuIeHuIqKuImJvIuL - v4qKwZCQuZ2dq6SkpZ2dq5GRuYiIwoSExoODxoKCxYCAw319w4KCvIiIuIqKuoqKvYuLvpGRuZiYsKGh - pqOjpZycrpKSt4qKwIODxYGBxYGBw4GBwoCAwYCAwYGBwoGBxIKCxIODxYWFxI6Oupqaq6Gho6Kio56e - p5eXr42NuYWFwoKCxoCAx4GBwoaGuoiIuIiIuo+PtZCQtY6OuI6Ot46OuJOTtqGhqaOjpZqarZGRtYqK - vYmJu4qKuouLuIeHuoCAwH9/wYCAwoCAxIWFw4mJwomJwY2Nu5ubrKKipaWloJqaqpGRtJGRsoyMuYqK - u4mJvIeHuYeHtoaGuIODv4GBwoGBxoaGwo2NuZOTsZubqKKioqOjoaOjoJ6ep4+Pt4ODxYSEw4SEw4aG - voeHuIWFt4WFt4iIuIeHvYWFwYWFw4aGxIqKvpmZr6OjpaWlop6epZSUrY+PtJCQspCQsIaGvH5+xH19 - xIGBwYqKt4qKuIqKuYyMu4yMvI+Pupubr6KiqaWlpqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSk - paOjpKOjo6KioqOjo6SkpKWlpaWlpaamp6amp6amp6WlpqOjpKOjo6KioqOjo6OjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6SkpaOjpLAPpKSlpKSk - paWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWmpaWmpqanpqanpqanpqampqal - paWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6OkpKSlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Ok - o6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkpKSjnZ2plpaykZG3i4u7goLD - hITDhITEhobBiYm8jIy7jY26kZG3l5ewoaGopqakpaWlpaWlo6OkpKShnJypjY26goLGgoLFgoLEh4e/ - iYm+iYm/iYm/iYm/jIy7k5OznZ2ooqKhoaGgoaGhoqKipaWlpaWlpqakpKSlnJyslpazlpaykZG0ioq9 - hITFgoLGhITGhITGg4PHioq/mZmvo6OjoqKioqKioqKioqKio6OhoaGllpaxiIjBg4PGg4PGhITEgoLF - goLEh4e9ioq5i4u3ioq6jo63mZmpoaGhoaGhoaGhoKCgnp6enZ2em5uokpK1ioq/hITFg4PGgoLFgYHG - h4fBi4u9ioq9jY26mZmuoqKmo6Oko6OkoqKkoqKioqKin5+ll5erkZGyj4+zjo63jY26jY25i4u8jIy7 - i4u6i4u5jY23kpKwnp6jn5+fnp6en5+eoKCgnJyqjo67h4fDg4PHg4PHg4PGhITEh4e9iIi7iIi6hoa7 - hYW6hYW3hYW3hYW4hYW3hoa3hoa2hYW4hITBhITFhITHiIjFk5O4oKCqpKSkoaGnlJS1hobEgYHKgoLI - gYHGf3/EgoK8hYW2h4e3iIi6ioq7kpK3lpa0l5exm5usoKCnoaGnm5utkpK3iorAiIjAhYW/gIDCgIDB - gIDBgYHDgYHDgIDEgoLDiIi+ioq+k5O0np6npaWgoKClkpK0hITDgYHHgYHHg4PEhoa9iIi5h4e5jo6y - jIy6h4fBhITDhITDiYm/l5exo6OmpqakoaGomZmukJC1j4+1jY23h4e8gYHBfn7Cf3/Bf3/CgoLAhobA - ioq/i4u+jY28nJyso6Okpqahm5uqj4+3jIy6iYm8iIi8jY21i4uzhYW3gYG9gIDCgIDChYW+i4u6jY24 - jY22kZGznZ2moqKio6Ohn5+mlZWyjY26jo65iYm8iIi7iIi4hoa2hoa3g4O9goLCgoLDgoLFh4fCk5O2 - nJyrn5+ooqKloqKknJyolZWtlpaslparjY2zh4e4h4e3h4e2ioq2iYm6ioq7iYm8ioq8kZG3lpaznZ2s - o6OmpqakpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6OjoqKioqKjpKSlpaWlpaWmpqan - pqanpqanpaWmo6Oko6OjoqKjoqKko6Oko6OkpKSlpKSlpKSlpKSlo6Oko6Oko6Oko6OkpKSkpaWlpaWl - paWlpaWlpaWlpaWmpqanpqanpqanpaWmsA+lpaWkpKSkpKSkpKSlpaWlpaWkpKSioqOioqOioqOjo6Sj - o6Sjo6Sjo6SkpKWlpaWlpaWmpqampqempqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaWkpKakpKWk - pKWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6SioqSioqOjo6Ojo6Sjo6SkpKWkpKWkpKWkpKWkpKWlpaWl - paWlpaWlpaWlpaWkpKSlpaKbm62SkreMjL6Hh8GDg8KEhMOGhsGKir2MjLqMjLqOjriXl66enqejo6Sl - paWlpaWlpaWlpaWjo6SZma2MjLyFhcSGhsCGhsCLi7yNjbuNjbyNjbyNjbuRkbWamqyioqOjo6ChoaGh - oaGhoaGjo6OlpaSlpaWgoKqZmbCWlrKPj7WIiL2CgsSBgcWCgsWDg8aDg8eIiMORkbienqqlpaKioqSi - oqKioqKioqKioqKcnKmPj7iFhcSEhMWEhMWDg8WEhMSIiMCJib+Hh7+Dg8CHh7yTk7CgoKKhoaGhoaGh - oaGioqGgoKGZmaSOjrGFhb2CgsSCgsaCgsaDg8WGhsGMjLyLi72Pj7iZmayioqKjo6Kjo6Sjo6SioqSi - oqOioqKenqaZmaqUlLCOjraLi7uJib+Jib6Li72Li72Kir2KiruOjrWWlquhoZ+goKCfn6Cfn52dnZ6Y - mKiRkbeJicGIiMOIiMGIiMGIiMCKiruHh72Ghr6Hh7uHh7iGhriFhbiFhbeGhraGhrWFhbeDg7+CgseE - hMiHh8WKisGWlrahoamlpaSlpaScnK2MjL6FhcWGhsOGhsGEhL+IiLiGhraFhbiJibeNjbaRkbiQkLmQ - kLmQkLmWlrGenqidnaqbm66UlLWNjb2FhcKAgMOAgMGAgMGBgcGAgMOCgsKHh7yLi7iLi7mPj7adnaim - pp+enqiQkLiGhsKHh8KGhsOLi72OjrWMjLOLi7KLi7eDg8KAgMiDg8aIiMCQkLiZma+fn6mkpKWjo6ac - nKyXl7CVlbCKiruCgsN/f8N/f8F/f8GCgr+Fhb2IiL6Li7+NjbyRkbiYmLCfn6ikpKOenqmTk7SMjLuN - jbmOjreOjrSJibeBgb5/f8GAgMGAgMGFhb2Ghr6Ghr+JibyLi7qWlq+goKWjo6ChoaSbm6qWlq+WlrCO - jriJibuIiLiGhreBgb1/f8KAgMKBgcOAgMeGhsOVlbKdnaqdnaqhoaalpaKhoaWZmauamqibm6aUlKyP - j6+MjK+IiLSIiLmKiruKiryMjLmQkLSTk7KRkbaYmLCioqempqSlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWkpKSjo6SioqSioqOioqOkpKWlpaWmpqampqempqempqekpKWjo6SioqOioqOioqOjo6Sk - pKWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6WkpKWlpaWlpaWlpaWlpaWmpqWmpqempqempqewD6Wl - paWlpaSkpKSkpKSkpaWlpaWlpaOjo6KioqKio6OjpKOjpKOjpKOjpKOjpKSkpaSkpaSkpKampqamp6am - p6amp6amp6WlpqWlpaWlpaWlpaWlpaWlpqamp6amp6amp6WlpqWlpaWlpaWlpaWlpaWlpaSkpKOjpKKi - o6KioqKioqOjo6Ojo6OjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaampaSkpJeXsY2NvYeHwoKC - xIODwoWFv4eHvYmJvomJv4iIv4yMupiYqqCgo6Ojo6OjpaSkpaWlpaampJycrZaWs5KSto2NuouLu4uL - u4yMvIuLv4qKwIqKwYuLwJOTtpqarKGhpKOjoaKioqGhoaGhoaGhoaOjoZ+fqJeXsJSUs5OTr4mJuIKC - woCAxYKCxIODxYODxYmJwJOTtZycq6GhpqSkpKOjpKKio6KioqOjoZ+fpZSUsoiIwoODxoSExoSExoaG - xIqKwIuLwISExoKCx4ODw4yMtpmZpqKinqGhoaGhoaGhoaKioJ6epJKSsYWFv4CAw4CAxIODw4SEw4aG - woyMvIuLvYyMvJWVsKCgo6OjoKKioqOjo6OjpKOjpKOjpKGhpJycqJeXro+PtomJvIiIv4mJvomJvouL - vYuLvYqKvo6OuZWVrp2do6CgoKCgoKCgoJ+fn5qaopKSqo+Ps42NuYyMu42NvI2NvIqKvomJwIeHvoeH - vYyMtY2Ns4mJtomJtImJs4eHtYSEuIGBv4CAxoSExoiIxI2NvouLv5OTt6KiqqampaSkpaGhp5eXspGR - uo+Pu4uLvIqKuoiIuYaGt4aGuIqKt42NtoqKvoiIwYiIwYaGw4yMvJqarZ+fqJ6eqpaWsomJwYKCyIOD - xIGBwn9/wX9/woKCwIaGvYiIvIeHvoeHvoyMuZmZq6OjoZ+fppSUso+PuY6OuI6OuZGRtZSUsJGRrYmJ - s4CAw39/xYODw4eHwYuLvY+PuI6OupWVs6CgqKSkpJ6eqpSUtI6OuYSExICAxYGBwoCAwIGBvoWFvIaG - vYuLvI6OvI+PupOTtZOTtpiYsKGhpqOjpZ2dq5iYrZaWr5KSs4qKu4KCwn9/w4CAwYCAwYGBwoCAxIGB - xIaGv4yMuY6Ot5SUs5+fpqOjoaKiop+fpZaWsJOTtI6OuouLu4iIuoKCvX5+wn9/wYCAwX9/w4ODw42N - upeXsJ2dqp2dqqCgpqOjo6Kipp2dqpqaqpiYq5SUr5CQsoqKtYaGuYiIuYmJuomJu42NuJCQtY+PtZWV - sJ2dqaOjpaampKWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaWlpaWlpaWlpaWlpKSkpKOjo6KioqKio6Sk - paWlpaampaampqamp6amp6SkpaOjpKKio6KioqOjo6OjpKSkpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKOj - pKOjpKSkpaSkpaSkpaSkpaSkpaampaampqamp7APpaWlpaWlpaWlpKSko6OkpaWlpaWlpaWlpKSko6Ok - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpaWlpqanpqanpqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWl - pqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OjoqKioqKioqKio6Ojo6Oko6Oko6Oko6Ok - o6OkpKSlpaWlpaWlpaWlpKSmnp6tkJC5hobEg4PGhITDhITBiYm7hITBgoLGg4PHhYXDjo63mpqqoKCi - oqKhoqKkpKSkpaWlpqakmpqwlZW2lZW1kZG3jIy8jIy9i4u9h4fDhITHhYXGiIjDj4+8nJytoqKkoqKh - oqKioqKioaGhoaGhoqKfmpqpk5Oxk5Owjo6zhoa8goLEgoLGgoLFg4PFhYXEkJC2mZmtoaGmpKSjo6Ok - o6Oko6OkoqKjoqKhnJyoj4+3hobChobDhYXEhITFiIjBiYnAhITGhYXFhYXFkJC3mJipnJyin5+eoKCg - oaGhoaGho6OfnZ2mjY22hITCg4PAg4PCh4e+i4u7i4u8i4u9jY27kZG2l5eunp6mo6OhoqKioqKio6Ok - pKSkoqKlnZ2plZWxkJC2iYm+iIi+iYm9ioq9i4u9i4u9i4u9i4u9jo65mJito6OfoaGhoKCgoaGfnZ2j - lpaqj4+xioq4iYm7ioq7i4u8ioq+iYm/iYm/ioq/jo62lJSslZWqkZGtj4+tjo6uh4e2f3+/fn7DgoLD - hYXCjIy8jY2+jY2+lZW2oKCrpaWmpaWmpqakoqKnmJixj4+5ioq9ioq7iIi5h4e4iIi4ioq6ioq9iorA - hobFhYXHhITHi4u+m5uspKSjnZ2rj4+5hYXDhITGg4PFgYHDf3/BgIDBhoa7h4e/g4PHg4PGhYXGiYm+ - lJSwn5+loqKjnJyplpaxlJSwlJSwk5OxkZGyjIy2f3/EgIDDgYHChoa+iIi+g4PFg4PGgoLHjY28nZ2q - pqahoaGnkpK3hITHgoLHgoLEgoLCg4O+hIS6g4O6h4e5ioq9jIy/jY29jY2+jY2+kpK3np6ppaWipKSj - oqKlmpqsjY28hITDgYHDgYHCgIDBgYHCgYHDgYHDhoa9i4u4jY22kpKxmpqqoKCkoqKio6OhoKCllJSy - jIy7jIy7i4u8hobBgIDEf3/Bf3/Bf3/BgIDBiYm5lJSvl5evlpawlZWym5uroqKlpKSjoqKlmpqtk5Oy - kZGzjIy4h4e7iIi5h4e5iIi5iYm5iYm7iYm9jY23mZmpn5+koaGkpKSlpaWlpaWlpaWlpaWlpaWlpaWl - pKSlo6OkpaWlpaWlpaWlpaWlpKSlo6Oko6OkoqKio6OjpKSlpaWlpaWmpqanpqanpqanpKSlo6Oko6Oj - oqKio6Oko6OkpKSlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpqan - sA+jo6Sjo6Sjo6SioqOioqKjo6SlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sl - paWmpqampqempqempqempqelpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqempqalpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWioqOioqKioqKioqOjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWgoKmUlLeJicOFhcaE - hMSEhMGKiryFhcSEhMaDg8WFhcKPj7ebm6ihoaKhoaGhoaGhoaKioqOjo6SlpaSfn6qYmLGRkbqLi7+L - i72Ojr+IiMWGhseHh8aKisKRkbmYmLKjo6elpaWjo6SioqKioqKioqKhoaGfn6OZmauTk7COjrSGhr6C - gsSCgsWCgsWDg8WEhMWEhMWLi72YmK+hoaWjo6Ojo6Sjo6Sjo6SkpKOenqeXl6+Tk7OTk7OOjrmLi7uM - jLyIiMGDg8aEhMWGhsSSkrebm66goKWhoZ+fn5+enp6hoaGhoaGjo5+cnKaOjraJibqJibqKiruKiruK - iruKiruMjLuSkrWRkbWWlrCenqajo6GioqKioqKioqKkpKKfn6iVlbKPj7mJib+Jib6Jib6JibyKiruL - i72Li72Kir2Pj7eVlbCcnKmjo6GhoaGhoaGiop+ZmaePj7WLi7uJibqKiruMjLyLi7+JicCJicCJib+Q - kLeZmayfn6GdnaGVlauOjrKHh7mBgcB/f8J/f8KDg7+KirmKiruMjL2SkrmVlbaWlrSenq2lpaampqWh - oaqTk7eKir+MjL2Li72KiruJibmIiLmIiLmIiL6FhcWGhsWFhcaIiMKSkreenqijo6ScnKuRkbiHh8KC - gsWCgsWBgcN/f8KFhbiDg72CgsWEhMaFhcSMjLyTk7SZma2enqWioqChoaSamquamquamqmWlq2Kirp/ - f8WAgMJ+fsGFhbqGhryCgsOCgsSDg8WDg8eNjbydnaqmpqGhoaaUlLKHh8GGhsKEhMKGhr+JibmIiLmG - hreJibiFhcKDg8mEhMiEhMmEhMePj7udnaqkpKKhoaaYmK+Li76Hh8GHh8GEhMOBgcSBgcOAgMGAgMOH - h7yKirmKiruLi7mSkrOcnKadnaagoKSjo6GhoaOcnKmOjriMjLyHh8KDg8aCgsWBgcN/f8F+fsOJibWN - jbOIiL6Jib6Kir6Jib+UlLSgoKejo6ScnKqWlrGUlLSNjbqJibyJibqIiLmGhreHh7iIiLmIiLqMjLiT - k7WRkbWQkLeWlq+fn6alpaSlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6SlpaWlpaWlpaWlpaWkpKWjo6Sj - o6SioqKioqOkpKWlpaWlpaWmpqempqempqelpaaioqOioqKioqKjo6Sjo6SkpKWlpaWlpaWlpaWjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWwD6OjpKKioqKioqKioqKioqKioqamp6amp6am - p6ampqSkpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKampqamp6amp6amp6amp6WlpqWlpaWl - paWlpaWlpaWlpaampqamp6amp6amp6WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjo6KioqKioqKio6Oj - pKOjpKOjpKOjpKOjpKSkpKWlpaCgqZOTt42Nv42Nv4yMvImJvIWFxISExYODxoaGw46OuJeXqp+fo6Gh - oaGhoaGhoaGhoaGhoaKipJ2dqpiYsZGRuYyMv4mJwoWFxIaGxYaGx4WFyIqKxJOTu5iYs52drKSkpqam - paWlpaOjpKKioqKioqOjop6eo5mZp5CQsYWFvoGBw4KCxYKCxYKCxYODxYSExYSExouLvpiYrqGhpKOj - o6OjpKOjpKOjpKSkopubrpSUtZOTtI6OuYuLvIuLuoeHwISExYODxoSExJGRtpmZr6Ghp6SkpKOjo6Gh - oJ+fn56enqGhn5+fo5SUr4mJvYqKu4mJuYqKu4uLvIuLvIuLvIuLvYuLvY+PuJubqqOjoqKio6KioqKi - oqKioqOjoZubq46OuYqKv4qKv4mJv4qKvouLvYuLvYqKvIuLvpCQt5SUspqarJ+fpaKioqKioqGhoaGh - oZaWrYqKuomJu4mJu4mJuoqKvYqKwIiIwYqKv5GRuJaWr56ep56epZeXqo6OsoiIu4KCwoCAw39/w4KC - voeHt4mJuYqKuoWFwoWFxYWFxoqKwZiYsqWlpqenpJubsZCQvIyMvo2NvYyMvYyMvIqKu4eHuIWFvISE - w4WFxISExouLwYyMvpKSuJ+fqqOjpKSkpJmZsI6OvImJvomJvIiIu4eHuIGBvoCAwYKCxIaGw42Nu5GR - tZiYraCgpaOjoqKioaCgopqaq5ubqpeXrouLvIGBxoCAxICAw4WFuYODvIGBwYGBw4GBxIKCxYiIwZWV - tKCgp6Sko6KipZubq5SUs5GRs4yMuImJvIqKuomJuYaGtYODwIKCxoSEx4SEyIWFx4uLwJeXtJ+fqaSk - o6Cgp5OTtIeHwoeHwoWFxIODxYGBxIGBw4GBwoeHu4qKuYuLvIuLvYuLvYyMvJSUsJubqKCgo6OjoqKi - oaGho5SUsoeHwYKCxoODxYODxYGBxH9/w4WFu4qKt4iIvYODxIODxIWFxYqKvpaWr6GhpaKipJycqpWV - spOTtZKStpKStI+PtIiIuYeHuIaGt4aGuImJuIeHvYODxYSExIODxY2NupycqKSkoaOjpKWlpaWlpaWl - paWlpaWlpaWlpaWlpaOjpKSkpaWlpaWlpaWlpaWlpaOjpKOjpKKio6Kio6SkpaWlpaWlpaamp6amp6am - p6WlpqOjo6KioqKioqOjo6OjpKSkpKWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOj - pKWlpbAPo6Oko6OjoqKioqKioqKioqKipaWmpqanpqanpqanpaWmpKSlpaWlpaWlo6OjoqKioqKioqKi - o6Oko6Oko6OkpKSlpqanpqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpqan - pqanpaWmpaWlpaWlpaWlpaWlpKSlo6OkoqKioqKioqKio6Oko6Oko6Oko6OkpKSjo6OknJyqlJSyjo65 - iYnAhYXDhYXCg4PFhITFh4fCjY26lJSympqqnZ2ioaGhoaGhoaGhoaGhoaGinZ2mmJivlZWxjo65h4fC - hITFg4PFhITGg4PIiYnEk5O8mZm0nZ2vpKSnpaWlpaWlpaWlpKSlo6OkoqKioaGjnZ2nkpKxhoa+gYHD - gYHDgoLEg4PFhITFg4PGhITFi4u9kZG3nZ2oo6OioqKjoqKjo6Oko6OkpaWioKColpayjo66i4u8i4u9 - hobChITGgoLIhobEkpK3mZmroKClo6Oko6Oko6Oko6OjoKCgnp6enJygmZmolJSxj4+1i4u6hYXBhYXD - hobEhobFh4fDjY29jIy8kJC1nJyopKShoqKjoqKjoqKio6Ohn5+mkpK0iIjAiorAioq/jIy9jIy8jIy8 - i4u9ioq9j4+2lJSxlpavnZ2ooqKioqKioqKio6Ohm5unkpKxjIy5ioq6ioq5hITAg4PDhITEh4fCjo67 - lZWzl5ewnp6nnZ2ml5eukZGzjY20h4e8h4e8hoa7hYW5h4e2iIi4g4O/goLCgYHFg4PFjY28nZ2tpqak - p6eknp6vlJS5kZG6kJC5jY29jIy9i4u7hYW8gYG/g4PChITDiYm/jY29i4u/kZG5np6rpKSlo6OjlZWy - j4+5kJC4j4+3ioq6hIS+gIDBgIDBgYHCg4PEhYXDh4fCjY28l5eynJyrn5+loaGimJirlJSxjo64ioq+ - iIi/iIi9iIi7g4O9gIDBgIDCgIDEgoLFiIi9lZWumpqqnJyqoKCnpKSjoqKlm5utm5utlJSwj4+zj4+0 - iIi5gYG+gIDDgIDFgoLGhYXFi4vAkpK4lZW1m5uvoqKno6OlmZmtjY28hYXFg4PHg4PHgoLGgYHDhoa6 - iYm5iYm6ioq8i4u9i4u9i4u9kpK0mJirn5+joqKhoqKioqKimpqrjIy8goLGgIDIgYHHgYHEhYW7iYm2 - hoa8gYHCgYHEg4PEgoLFiIjAlZWxoKClpKSioKCnk5O1k5O2lJSzkJC1ioq5iIi5h4e4h4e4iIi3hoa9 - goLEgoLGgoLGgoLHjIy7nZ2opKSfoqKipKSko6OkpKSlpaWlpaWlpaWlpaWlpaWlo6OkpKSlpaWlpaWl - paWlpaWlo6OkoqKjoqKio6OjpKSkpaWlpaWmpaWmpqampaWmo6OkoqKioqKioqKio6Ojo6Oko6OkpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6Oko6OksA+jo6Sjo6SioqSioqKioqKioqKlpaWl - paampqempqempqempqalpaWlpaWlpaWjo6OioqKkpKSkpKWkpKWjo6Sjo6SkpKWmpqampqampqakpKSk - pKSlpaWlpaWlpaWlpaWlpaWlpaWlpaempqempqempqempqempqempqWlpaWlpaWlpaWlpaWlpaWjo6Oi - oqKioqKioqOjo6Sjo6Sjo6OioqWdnauWlrGQkLaIiL+EhMSDg8aDg8aEhMWDg8eIiMCOjrmSkrWZma2g - oKGgoKChoaGhoaGhoaGgoKKcnKaYmK2QkLeIiMGEhMWBgcSCgsWEhMSHh8CPj7mZmbSgoK6lpaimpqal - paalpaWlpaWlpaWlpaWkpKSdnaeTk7OJib6CgsOBgcOBgcOBgcOCgsODg8aEhMWKir6RkbaXl6+goKWj - o6KioqOioqOioqOkpKOhoaaYmK+Pj7mLi72Li72KiryHh76Hh8GKisCSkrecnK2cnKqhoaGioqGjo6Sj - o6Sjo6SioqOiop+dnaGXl6iTk7COjreFhcGDg8WDg8aDg8eGhsWLi7+NjbySkrWYmK6enqWioqGioqOi - oqOioqOkpKCgoKWTk7SJib+Li72Li72IiMGHh8KGhsOJib+RkbSVla+Xl6ydnaehoaOioqKioqKioqKj - o6GYmKyOjraKirqKiruFhcCCgsSDg8WCgsWDg8SIiMGMjL2UlLSgoKejo6GamquRkbaSkrKPj7OLi7eJ - ibiIiLeGhriDg7+BgcOCgsWEhMSOjrmamq6enqugoKqmpqWkpKiamrOSkruPj7uNjb2Njb6Hh8CCgsKB - gcKDg8GHh7yLi7qKiryNjbyYmLKkpKalpaWioqSYmK6UlLSRkbeLi72EhMSAgMSBgcKAgMF/f8KBgcSC - gsaEhMaGhsSIiMOQkLmdnaqjo6Gfn6WYmKuMjLuJicGLi72Li7yHh76CgsGBgcOAgMSCgsSKir+QkLeW - lrCVla6SkrKamq2mpqKjo6ScnKyXl7GVlbKSkrOLi7mCgsJ/f8N/f8KAgMOBgcaFhcKRkbaWlrWVlbaZ - mbGgoKqkpKSgoKiSkraIiMGHh8OJicGIiL+GhryIiLeJibiJibqKiryMjL2MjL2MjL2NjbuRkbabm6mi - oqGhoaGioqKdnaeUlLGOjriNjbmLi7qGhr2JibWFhbuBgcGBgcKBgcKBgcSGhr+MjLmWlq+goKSkpKCi - oqSXl7CUlLSQkLiMjLyKiryKirqIiLmIiLeGhr2CgsOAgMWBgcSDg8WCgsaKir6YmK2ioqKioqKioqKj - o6SkpKSkpKSkpKSkpKSkpKSkpKSjo6SkpKSkpKSkpKSkpKSkpKSjo6Sjo6Ojo6KioqKioqOkpKSkpKSk - pKSkpKSkpKSjo6SioqKioqKioqKioqKioqOjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWj - o6Wjo6Sjo6SwD6SkpaSkpKSkpaOjpKKio6Kio6WlpaWlpaWlpqWlp6amp6amp6WlpqWlpaWlpaSkpKOj - o6WlpaWlpaWlpaSkpKSkpKSkpKSkpKSkpKSkpKOjpKOjpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaampqam - p6amp6amp6amp6amp6WlpqWlpaSkpaWlpaWlpaSkpaOjo6KioqGhoaOjo6OjpKSko6KipZmZr5CQuYiI - wYSExYODxoSExYSExYODxoaGw4qKvo+PuJWVsZubqKKioqGhoaCgoKGhoKGhoZ+fo5qaqZGRs4WFv4KC - xIGBxYKCw4aGwIeHv46OuJaWr5qaraCgrKiopqamp6Wlp6WlpqWlpaWlpaWlpaOjp5iYr4qKvoODxYKC - xYGBw4GBw4GBw4CAxIODw4mJvpCQtZaWr52dqKGho6KioqKio6Kio6Kio6GhpZeXr46OuouLvoyMvYyM - vYqKu4qKuo2NuZGRtpaWsZubrZ2dq6GhpKGhoaKioqOjpKOjpKOjpKGhpJubppSUq4yMtYWFwIODxYWF - xoSEx4aGxIuLv46OvI6OvJqar6CgqKGho6GhoaGhoqKio6Kio6CgpJycqJKStIuLvYyMvIiIwYSExYOD - xoKCx4eHwpGRtpSUs5eXrp+fpKOjoKKioqKioqKioqSkoJmZrY6OuYmJvoaGwIKCxYODxYODxYKCxYKC - xYSExYmJwJeXsKGhpqWloZ6ep5OTspOTs5GRtIqKuIqKuYiIuoKCv4CAwoKCxISEwouLvZSUs5mZrZeX - sJmZr6Ghp6ampJ2drpGRu42Nvo6OvY6OvYiIv4WFvoSEvYWFvImJuYqKuomJvI6OuJycraWlpKOjpqGh - p56eqpiYsZGRuI6Ou4uLvoeHv4KCwX9/wn5+wYCAwoODw4aGxIWFxYWFxYuLvpmZsKOjo6OjoqCgo5WV - r4+Pt42NuIqKvIKCw4CAwn9/xIGBw4iIvZKSt5SUtJOTtpGRtZGRtJiYraOjo6OjpJ2dqpWVspGRuIuL - vYSExIGBxoCAxICAwn9/w4ODwIuLt5OTsZWVs5aWtJeXs5ycrqOjp6SkppeXsZSUtZSUtJCQuIyMvImJ - uIaGuIeHuYiIuoqKvIuLvIyMvYuLvoqKv4qKwZSUtKCgpaKioKGhoZ6eppiYrJWVsJOTs4+PtoqKuYWF - vICAwYCAwoCAwoGBwYaGvoqKu5aWsZycq52dqKCgpKKiop+fp5WVs4yMvYuLv4yMvIqKuomJuISEvICA - woCAxYGBxIGBxIODxYODxIWFwpCQt52dqKOjoaKio6OjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKOjpKKioqKioqOjpKOjpKOjpKOjpKOjpKOjpKKio6KioqKioqKioqKioqOj - o6OjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKOjpLAPpaWlpaWlpaWlpaWlpKSlpKSl - paWmpaWmpaWlpaWlpqampqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6Ok - o6Oko6Oko6OkpKSlpKSlpaWlpaWlpaWlpKSkpKSlpqanpqanpqanpqanpqanpqanpaWmpKSlpaWlpaWl - paWlpaWlo6OkoaGhoqKho6Oio6Okn5+olZWyiYnBg4PHg4PGhITFhITHhITHhobDjIy8kJC3k5Oympqr - oaGjoqKioqKioaGhoqKgn5+jmZmrkJC1hobBgYHEgYHEgoLChoa+i4u5jIy3lpavmpqqm5uooKCnpqam - pqanpqanpaWmpaWlpaWlpaWloaGolJS1iIjCg4PGg4PFgoLEgYHEgYHDgYHCiIi7kJCylpasnJyooqKj - oqKioqKioqKioqKjoqKjnZ2okJC3i4u+jIy9jIy9jIy9i4u8iYm8kJC0lJSxk5O0lZWynZ2qoqKlo6Oi - oaGhoaGho6Ojo6OknZ2qlpawjo63hITAgIDFhITFhITGhobEjIy+jo68jY29j4+7nJyspKSmpaWkoqKj - oaGhoqKipKSim5urk5O0jY25ioq8h4fAg4PGhITFhITFg4PGhobDjIy8kpK1mJitn5+koqKhoqKioqKi - oqKio6Oilpawi4u8hobDgoLFg4PEg4PFg4PFg4PFhITCiYm8k5Oyn5+no6OkpKSjoaGlmZmrkJC2jIy7 - i4u7iIi7g4PAf3/Ef3/Bg4PAi4u4kpKzk5O0kZG2kZG2lZWzm5uupKSloKCrlJS4j4+9kJC8j4+7jIy6 - ioq5iIi3h4e3iYm6ioq7iYm8jIy5lJSxnJyrnZ2soKCqnp6rmJixlpazl5eykpK2ioq8g4PDf3/Df3/A - gYHAhITAhYXCh4fCjIy9j4+6lZW1n5+qo6OkpKSin5+klpasjY22hYW/gIDDf3/Cf3/Bhoa7j4+0k5Oy - k5O0kpK2kpK3kpK0lpaunZ2no6Ojnp6om5uslJS0iIjCgYHJg4PFgYHEgIDEgoK/jIy0k5OukJC1jY25 - j4+6jY29kpK4np6spaWln5+qnZ2rmpqrkpK1ioq9iYm6hoa4hoa3iIi5iYm6ioq7i4u/ioq/iorAiorA - kpK2np6po6OhoaGhn5+kl5etkZG1jo65ioq9iIi/gYHEgIDCgIDCgYHBhYW8ioq4iYm7lZW0l5eylpaz - m5uto6OioqKjl5evj4+4jY28i4u9iYm7hoa9f3/Bf3/CgYHCgYHDgoLEgoLEhITDgYHGiYm9mZmrpKSh - pKSlpKSkpKSko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkoqKjo6Oj - o6OkpKSkpKSkpKSkpKSko6OkoqKjoqKioqKioqKioqKio6Ojo6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpKSksA+jo6SlpaWlpaWlpaWlpaWlpaWmpqempqempqelpaalpaWmpqempqempqelpaal - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWkpKSi - oqKkpKSmpqempqempqempqempqempqelpaWkpKWlpaWlpaWlpaWlpaWjo6ShoaGioqCenqeVlbKMjL2D - g8eEhMaEhMaEhMaEhMaGhsSNjbyPj7mUlLOVlbGamqujo6GioqKioqKioqKiop+cnKSQkLSFhcODg8aD - g8WEhMSIiL+Li7uLi7qRkbGXl6uZmauenqakpKCjo6SmpqempqempqempqelpaWkpKWgoKqTk7eIiMOE - hMeEhMWDg8WDg8KBgcGIiLmOjrOTk62ZmaednaOioqKioqKioqKioqKioqKioqOenqiRkbWMjL2MjL2M - jL2MjL2Li7yKiryPj7eTk7KVlbGXl6+enqmioqWkpKSioqKhoaGioqKioqWXl7CQkLmHh8KBgcaCgsOD - g8SEhMSMjL6OjryNjb2Njb2Rkbienqqjo6WlpaWjo6WioqOhoaGioqOVlbCMjLyJib6Hh7+BgcWDg8WE - hMWEhMWDg8aGhsOOjrqZma2enqahoaOioqGhoaGioqKhoaOamquOjrmFhcSDg8eEhMWEhMWEhMWEhMaF - hcOLi7yTk7GcnKWhoaGjo6OkpKSioqSamqyOjrmMjLuMjLuGhsGCgsOBgcGBgb+Hh7mPj7KRkbKPj7eO - jruOjrqNjbuUlLSioqehoaiXl7OTk7mTk7mUlLmOjryKiryIiLiGhreJibmKiruKiruJibyMjLmUlLOZ - ma+hoaicnK2ZmbCZmbCUlLWJicCDg8aBgcWAgMKAgL+Bgb6Cgr+EhMGIiL6OjrmQkLmSkriamq+kpKWj - o6KdnaiRkbWGhsCBgcOCgsGDg7+GhriMjLKRkbCRkbGRkbSPj7mPj7qPj7yQkLiXl6yioqKenqeenqiZ - ma6MjL2CgsiEhMaCgsSBgcKKiraSkq+QkLWKisCEhMeDg8eBgcmJicGbm6+mpqSkpKWcnKyWlrKOjrmK - ir2KiruHh7mGhreHh7iJibmKiryKisCLi7+MjL6Tk7Wbm62hoaejo6OioqKjo6CXl66NjbuLi72Kir6B - gcWBgcGAgMGAgMGEhLuJibeIiLmJibyJib6JicCMjLyYmLCkpKOhoaOcnKmUlLGOjrqLi7yJibyAgMV/ - f8KAgMGBgcOBgcOCgsSDg8SDg8SDg8SLi7qZmaqkpKGlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SioqKjo6SkpKWlpaWlpaWlpaWjo6Sjo6SioqOioqKi - oqKioqKioqKjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWwD6OjpKOjpKSkpaWlpaWl - paWlpaWlpaamp6amp6amp6ampqWlpaamp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaSkpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjo6KioqKioqWlpaamp6amp6amp6amp6amp6amp6Wl - paSkpaSkpaWlpaWlpaWlpaOjo6GhoZiYq4yMvYODx4SExoSExoSExoODxoaGw42NvI+PuZOTtpSUtJmZ - rqCgpaOjoaKioqKioqKioqSkoJycp4yMt4KCxIODw4SExYqKwY6OvY2Nvo6OvJKSs5GRspaWrJ+fpKOj - oaKioqOjpKamp6amp6amp6Wlp6CgqpiYsoyMv4aGxoWFx4SExoSEw4mJuomJu4yMs46OsJCQr5aWqZ6e - o6GhoaKioqKioqKioqKioqKio5ycqY+PuIqKvouLvYuLvIuLvIuLvIuLu4qKvI+Pt5eXrpycp6Kio6Oj - pKOjpKOjpKOjo6GhoZ2dqJKStoeHwoSExoSExYODxIODw4mJvIyMvI2NvY2NvJCQuZeXsqOjpqWlpKSk - paSkpaSkpKGho5qaqI6OuYuLvoiIwIODxoODxYKCxIODxYSExYODxoaGwpCQtp2dqaKio6KioqKioqKi - oaCgopubqZCQuIaGw4ODxoSExYODxYSExYSExYWFxIuLvpOTtJubqqCgoaCgoKGhoaOjo6KipZycqpaW - spOTs4yMuouLvoqKvImJuYiIuYaGt4iIuIqKuYeHwIODxoSExYSExY+Pt5+fp6SkpJ6erJiYspeXs5aW - tY6OvImJvIiIuIeHuIaGt4mJuoqKu4mJvIyMuJSUsJycqaOjpKKip52drZSUtomJwIKCxYODxYKCxYGB - wYGBvoGBv4GBwoODxIKCxYiIv4yMvI+PvJeXs6Skpaamo5mZro6OuouLvoqKu4mJuY+PsI6OroyMr46O - r5CQso6Ot4yMu42NvYyMvo+Pu5eXr6KioKGhoZ2dqJKStoiIwoSExoSExYGBxI2NtIuLtIiIuIiIvIOD - xoSExoSExoKCyIqKv5ubrqampKOjpp2drZiYs4+PuoqKvouLvIiIuYeHuYeHuIeHuYiIvIqKvoqKv5OT - tpubrqCgp6KipKKipaOjpKOjoZiYrI+Pt4yMu4qKvoODxYKCw4GBwoSEu4eHtoeHuIeHuYiIuoqKvIqK - vo2Nu5mZr6Sko6OjpJ6eppGRtoqKvouLvIqKvYKCxICAwYGBwYGBw4KCw4ODxIODxIKCxYyMuJeXrp+f - qKSko6WlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKKioqKio6SkpaWlpaWlpaWlpaOjpKOjpKOjo6KioqKioqKioqKioqOjo6OjpKOjpKOjpKWlpaWl - paWlpaWlpaWlpaWlpaWlpbAPo6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpqampqanpqanpqanpaWlpqan - pqanpqanpqampaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Oko6OkoqKj - o6OjpaWlpaWlpaWlo6OkpKSlpaWlpaWmpqanpqanpqanpaWmpKSlpKSlpaWlpaWlpqalo6Oil5erioq8 - g4PIhITHhITHg4PIhobCioq8jIy6k5O1lJS2l5ewn5+opKSjoqKjoqKioqKioqKipKSgnZ2oj4+3iIi7 - ioq7jIy8iYnBhYXFhYXGhobGjIy/kZG0lpaqnZ2joqKhoqKioqKio6OjpaWmp6empKSpmJi0i4u/hobF - hITGg4PIhobEioq7ioq6hoa/hoa+hIS+iYm4lpaon5+doKCgoaGhoqKioqKioqKioqKinJyoj4+5ioq+ - i4u9i4u8i4u9hYXEhYXEg4PFh4fBkpK0nZ2moaGhoqKio6Oko6OkpKSjoaGklpauiYm/hYXDhobDiIjA - iYm7iYm8jIy8jIy8i4u9j4+6l5eynZ2ro6OlpKSlpKSlpKSlpKSloqKknJypjo64hYXCg4PFg4PFhITF - hITFhITFg4PEgoLFhobCkJC2nZ2poqKjoqKioqKio6OhoKCkk5OyjIy8i4u9h4fCg4PHg4PFg4PFhYXC - ioq9k5OzmpqtnJyroaGkoaGhoKCgoaGho6OioaGmm5usmpqtlJSykZG1k5OzkJCziIi6gIDAgIDAgoLB - goLDg4PFhYXFioq+jo66mpqrpKSin5+olJSzlZWylJSxjY25iYm7iYm5h4e4hYW2h4e5iIi6iIi8j4+2 - m5unoaGhoqKipKSioaGolZW1iorAi4u/ioq+h4fBgoLAgIDAf3/BgIDBg4PEg4PHiorAjY29j4+7l5ez - pKSlpqajmZmwkpK3kpK1kpK0kZGykJCxkJCwjY2viYmyiYm5ioq6ioq7i4u9kJC6l5exnZ2po6OioqKg - mJisioq/g4PHg4PHhYXFkJC2jY23h4e5g4O9goLEg4PFg4PFhITGg4PHiYnBlZWzoaGnpaWlpqakm5uw - j4+8i4u/i4u9iYm6h4e4hYW4hYW5h4e7iYm9i4u9kpK2m5uunp6rnZ2rnp6qpKSlpKSknZ2om5uql5eu - j4+2iYm8iIi6h4e5hoa4hYW3hYW4h4e5iIi6ioq7ioq8ioq9kZG4np6qo6OknJyrkpK0j4+3kZG1jo64 - hITFgYHEgIDBgIDBgYHBgYHDg4PEiIi9jo61lpaunp6npKSio6OkpaWlpaWlpaWlpaWlpaWlo6Oko6Ok - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkoqKioqKjpKSlpaWlpaWlpaWlpKSk - o6Oko6OjoqKioqKioqKioqKio6Ojo6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlsA+jo6Sjo6Sjo6Sj - o6SkpKSlpaWlpaWlpaWlpaWlpaampqempqempqalpaWmpqampqempqempqelpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Ojo6Ojo6SlpaWlpaWkpKWjo6Sjo6Sjo6SkpKWm - pqempqempqempqalpaWkpKWlpaWnp6Wjo6eVlbKKir2Jib6Kir+Kir+Kir+Kir2Jib2KiryRkbSYmLCf - n6mjo6Sjo6Sjo6SioqOioqKioqKkpJ+dnaiPj7iLi7uKirmHh8CFhcWEhMaFhcWMjL+SkriYmLCenqag - oKCgoKChoaGioqKioqKjo6Snp6WioquSkrqFhciEhMiDg8iGhsOLi7yLi7yFhcOEhMSDg8WGhsCPj7Gb - m6Kenp6enp6fn5+hoaGioqGioqKcnKiWlrCNjbqKir2MjLuLi72GhsSEhMWEhMWDg8iJib+Xl62hoaKh - oaGhoaGioqKjo6OioqWenqiWlrCMjLmLi7qKiruKiruMjLuMjLuLi7yLi7yKir2MjLuWlrGjo6WkpKWk - pKWkpKWlpaWjo6acnKuWlrKOjrqFhcOCgsaDg8WEhMWEhMWEhMWEhMWDg8WIiL+WlrGhoaSioqOioqKi - oqKjo6GioqOYmK2Xl62UlLCNjbeGhr+AgMSBgcOBgceMjLyXl7CZma2bm6yjo6Sjo6OhoaGgoJ+hoaCh - oaWZma6WlrOUlLSUlLKSkrSLi7yDg8OBgcKAgMKBgcOAgMaDg8SKiryPj7iOjrqZmaujo6GgoKWZma6U - lLONjbiKirqKirqIiLmGhriFhbeHh7mIiLqIiL2QkLacnKaenqSdnaSfn6WgoKeXl7GLi76MjL2Li72K - iruEhL5+fsJ/f8GBgcKCgsWHh7+Kir2OjruWlrSdnaylpaSlpaSfn6uXl7KUlLWTk7STk7OSkrGQkLKK - irWHh7aHh7qEhMKGhsOFhcSKir+Tk7Wamq6goKijo6OamqiRkbSPj7mRkbiRkbiPj7qKiruEhL+AgMKA - gMOBgcSDg8WDg8WDg8aFhcaMjL2Zma+kpKWkpKWYmLOOjr2MjL6Li7yJibmGhrmFhbiDg7uCgsGEhMOF - hcOHh8KQkLiamq6enqqfn6mkpKWkpKWjo6Wjo6Kbm6mOjreKiruJibmIiLiGhriFhbiFhbiHh7mJibqK - iryKir2Kir6NjbuWlrKjo6SgoKaamqyVlbCUlLCSkrKIiL+Dg8GAgMGAgMGAgMGBgcKCgsSDg8SJib+S - kreamq6hoaijo6OlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6OioqKioqKjo6SlpaWlpaWlpaWkpKWjo6Sjo6SioqKioqKioqKioqKioqOjo6Sj - o6SkpKSlpaWlpaWlpaWlpaWlpaWwD6SkpaOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpqamp6am - p6ampqWlpqWlp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOj - pKSkpaSkpaSkpKWlpaWlpaWlpaWlpaOjpaOjpKOjpKSkpaamp6amp6amp6WlpqSkpaSkpaGhppaWso2N - u4uLvIuLuoqKuoqKu4uLvIqKvYuLu4+PtZWVrp6epaOjo6SkpKOjpKOjpKOjpKKio6KioqGho5qaqpGR - tYuLvYeHwYODxIODxoaGxIuLv4+PvJKSuJ2draSkpaOjoaCgoKCgoKGhoaKioqKio6Wlo6GhqpCQuYmJ - womJwomJv4qKu4qKvYaGxISExoSExoKCx4qKvZeXqp6enZ6enp6enp+fn6GhoKCgopubqJSUsY6OuYuL - u4yMuoqKvoWFxIODxoSExYODxoaGw5GRt52dpqKin6GhoaGhoaGhoqOjoqCgppaWsJGRt4+PuI2NuYuL - uYqKu4yMvIuLvIuLvIuLvIyMu5CQt5eXrqSkoqSkpaSkpaSkpaWlpKKip5aWtY+Pu42NvYeHwoODxYOD - xIODxYSExYSExYODx4SExI6OuJubqaKio6Kio6Kio6KioqGho5ycqJubqZiYrZKStIqKvIODwoCAxH9/ - xYmJu5WVsZmZrZqaq5+fp6OjpKOjpKKipKGhoaCgoKCgopycqZSUs5SUs5KStYuLvYSExIKCxYGBwoGB - woGBxIWFwYqKvI2NuZGRtpWVsJ+fpaOjoaKio5+fppiYroyMvIqKvYuLuomJuYeHuYaGuIaGuIiIuImJ - uo+PtpiYrJiYrZeXrZWVrZubqZmZrY6OuIuLvoqKu4aGv4KCwYCAwYCAwYCAwoWFvYqKu46OuJKStJaW - spqasJ+fqqOjpaSkpZubrpOTt5SUtZSUs5GRsoyMt4iIuYaGuYODwIGBxIKCxYODxoSExIaGwo2NvZiY - sKKipaKipJycp5aWrZSUtI6OuYuLvYWFwIGBwoCAw4GBw4KCxYSExoSEx4WFxoeHxI+Pu5ycraSkpaKi - ppmZr5CQuouLv4uLu4mJuYiIuIODu4GBwIGBw4GBxIKCxYCAyI2Nu5qarZ6eqp+fqqSkpaSkpaSkpKWl - op+fppOTs4mJvoiIuoaGuYWFuIWFuIaGuIiIuImJuYuLu4uLvIuLvY2Nu5SUsqOjo6SkopubrJaWsZaW - r5SUr5CQtIKCwYCAwoCAwX9/wYGBw4GBxYaGw4yMvpCQupGRt5eXsqOjpaSkpKWlpaWlpaWlpaWlpaWl - paSkpaOjpKKio6Kio6OjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjo6Ojo6OjpKSkpKWl - paWlpaWlpaSkpaOjpKOjo6KioqKioqKioqKioqKio6Kio6Kio6OjpKWlpaWlpaWlpaWlpbAPpaWlpKSk - o6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpqampqanpqanpaWmpaWmpaWmpqampqampaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OlpaWmpqampqampaWmpaWlpaWlpaWlpaWlpKSk - o6Oko6OkpaWmpqanpqanpqanpqampaWlnp6nkJC3ioq+jIy7i4u6ioq5ioq6ioq7iYm+jY25mJiqnp6k - oqKgoqKio6Oko6Oko6Oko6Oko6Oko6OhnJyok5OyjY25h4fBhITGgoLGhITCioq+jY28jY29j4+8nZ2t - paWlpaWkoqKioKCgoKCgoqKio6Oho6OinJypkZG1jY27jIy7iYm+iIi/hobCg4PIhITGhITFhobEkZG3 - np6moaGenp6enp6enp6eoKCcm5ukkZGyjIy6i4u8ioq9iYm/hobDhITGhITFhITFhobDjIy8mJiuoqKi - oaGioaGhoaGhoaGhoqKhnZ2olJS0kZG3j4+6jIy8ioq8ioq7i4u8i4u8i4u8ioq8jY27lJSznZ2moqKi - o6OkpKSlpKSlpKSlnp6qlJS1kZG4kpK4iorAg4PGg4PEg4PFhITFg4PGhITEjIy7mZmtoKCjoaGioqKj - oqKjo6OioaGkmZmrl5etkZG1iYm+g4PEgYHGgoLDiYm5kJCvlZWrmZmqnp6no6Ojo6Oko6Oko6Oko6Oj - oKCinp6hnp6jlJSwkZG0i4u8hITEgoLGgoLEf3/CgIDCgoLFhobCiIjAiYnCj4+6l5ewnZ2qoaGlo6Oi - oqKjm5uqjo66i4u+i4u8ioq7iIi6hoa4hoa2hYW7hobAiYnAjY26k5OylJSxlZWunJynoKCjmZmrjY25 - h4e/gYHEgIDDgIDCgIDBhIS8ioq3ioq6jo64kZG2j4+5kZG5mpqvoqKmp6einZ2slJS2lpa0k5O1jo65 - ioq6h4e7goK/gIDDgYHDgoLEg4PFg4PHg4PGiIi/k5O0oaGmpqainZ2pkpKyjIy5iIi+hobBgYHDf3/C - gIDCgYHDgoLEhITHhYXIiYnEjIzAkpK4n5+ro6Omo6OmoaGml5ewjY27i4u8ioq7h4e8goLAgYHCgYHC - gYHCgYHEhYXBjIy5k5O0lpaynJytpaWkpKSlpKSlpaWkoqKmmJiujY25i4u1h4e3hYW4hYW3hoa4hYW9 - hYW+h4fAiIjBh4fCiYm/kZG0n5+lpKSinZ2qlpaxlZWylJSyj4+2iIi+goLCf3/Cf3/CgoLDhYXAjY28 - kJC5kJC4jo66kpK3np6ro6OlpKSkpaWlpaWlpaWlpaWlpaWlpKSko6OjoqKjo6OkpKSkpKSkpKSko6Ok - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlpKSko6OkoqKjoqKioqKioqKi - oqKioqKioqKioqKjo6OkpaWlpaWlpaWlsA+lpaWlpaWlpaSjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWl - paWmpqampqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWk - pKSlpaSmpqampqempqempqelpaalpaWlpaWlpaWlpaWkpKSjo6Sjo6SkpKWlpaalpaalpaajo6WcnKmQ - kLWKiruKirqLi7uHh76Hh76Hh76Hh7+Pj7ecnKigoKKhoaGhoaGhoaKioqSjo6Sjo6Sjo6Sjo6OYmK6L - i7yFhcKDg8WEhMSEhMOJib2Li7qLi7yOjryTk7efn6ulpaWmpqWkpKSioqKgoKChoaGhoaGdnaeVla+Q - kLeMjLyKir6FhcSCgseDg8aEhMaEhMaHh8KMjL2Zma+jo6SioqKgoKCenp6enp6enp2Xl6aOjrSMjLiK - iryIiMKFhcWEhMaFhcWFhcWHh8KMjLyRkbWcnKmkpKGioqOhoaKhoaGioqCdnaWXl6yVlbGTk7WMjLyL - i76MjL2MjLyMjLyMjLyLi7yLi7yPj7mYmK2ioqGioqKioqKjo6OkpKSioqebm62WlrKXl7GVlbOKisCD - g8eDg8WDg8WCgsWEhMSNjbuYmK6hoaSjo6KhoaGioqKioqOioqOenqeWlq6QkLaKir6CgsSBgcaEhMaI - iMCRkbONjbONjbOWlqugoKOjo6KioqOjo6Sjo6Sjo6ShoaaenqWamqaPj7GIiLyDg8SCgsWCgsSBgcN/ - f8F/f8GCgsSDg8aEhMeIiMWNjb+RkbqVlbWcnKyioqSioqOcnKqPj7mLi72Kir2Kir2JibqHh7iFhbmB - gcCBgcWBgcmFhcSTk7GWlq+YmKyenqWiop+dnaSOjrWDg8SBgcWBgcSBgcKFhbyIiLeHh7yHh72Hh76I - iMCKir+OjriZma2enqqkpKWenquVlbSTk7aPj7uMjL2JibyDg7+AgMOBgcKBgcODg8WDg8WFhcWJicGN - jbqSkrSgoKalpaKbm62NjbqHh7+GhsGBgcWAgMN/f8F/f8GAgMKBgcODg8SIiMKLi8CMjL+Ojr6UlLad - naykpKampqGbm6qPj7iLi76KisCEhMSBgcSAgMKAgMKBgcKBgcOGhr2Hh72Hh8CKir6VlbOjo6WkpKWk - pKWlpaSgoKmXl7KTk7OSkrGJibaGhraFhbeCgr2AgMSBgcSDg8aDg8aDg8aEhMaKir+Wlq6hoaOioqOb - m6uUlLSPj7mLi72KiryEhMKAgMSAgMGEhL6KirmOjrmOjrqOjrqOjrqRkbiYmLGjo6akpKSjo6SlpaWl - paWlpaWlpaWlpaWkpKWkpKSlpaSmpqampqampqalpaWjo6Sjo6Sjo6Sjo6SkpKSkpKSkpKSkpKSjo6Sj - o6Sjo6SkpKWlpaWlpaWlpaWkpKSjo6SioqOioqKioqKioqKioqKioqOioqKioqOkpKWkpKWkpKWwD6Wl - paWlpaWlpaSkpaOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6ampqWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKWlpqamp6amp6amp6amp6WlpaWlpaWl - paWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpJ6eppeXrI6OtYmJuYmJuoaGvYCAxYCAxX9/xoODwoyMuZSU - sJubqKCgoqGhoaGhoaKioqOjpKOjpKKipJycrI+PuYWFxIODxoSExIWFxIqKvYuLu4qKu42NuJOTs5yc - qqOjpaWlpaWlpaWlpaWlpaKioqGhn5ubppWVr4+PuIqKvoqKvoSExYODxoSExYSExYSExIeHwY6Ou5OT - tp6eqqWloqKio6KioqCgoJ+fnpycoZWVqZCQro+Ps4aGwIWFxoWFx4WFxoWFxoiIw42NvZGRt5WVsZ2d - qKOjoqKio6Kio6GhoaGhn5ubqJSUspOTso6OuouLvYuLvYuLvouLv4uLv4uLv4uLvY+PuJeXrp+fpKOj - oaKioqKioqKio6OjpKKip52drJaWs5WVtY2NvIaGxIODxoODxYODxYSEw42NuZiYrKGhpKOjoqKio6Ki - oqGhoaKiop2dqJWVsI+PuImJv4SExYKCxoODxYiIwY2NvIuLvoqKvYuLupSUq52dn6GhoKKioqKio6Oj - o6GhpqCgqJ2dq5OTsoqKuoKCwYCAw4GBw4GBw4CAwn9/wYCAwYGBw4ODxIiIwY+PvY2Nvo2NvpOTt5qa - r6CgqaOjpJ2dqZCQuIuLvYuLvYuLvYqKvIeHu4CAwX9/wYCAwoGBxIeHwJGRtJOTs5KStZeXrpubp5aW - rYqKvISEwoSEw4KCw4aGvoqKt4SEuYCAwoGBxYODxoKCx4iIv5SUsZmZqpubraOjp6GhqJeXso+PuYuL - vYuLvoODwn9/woCAwYCAwYGBwoODxYWFxYmJwIyMvY2NvJSUtKCgpaSkoqCgp5OTtYeHwoKCxYKCxYGB - xICAwn9/wX9/wYGBwYaGv4qKvImJwIiIxIiIxYmJwpeXs6SkpqWlpZmZr42NuomJwISExoSExYKCxYCA - wn9/wYCAwoKCwoCAxIGBxYGBxoSEw46OuZubrKOjpqSkpaamo52drJKSuJSUtZKStYqKuIaGuIKCvX9/ - w4GBwoKCw4SExYSExYSExYSExYaGw5GRt5+fpqOjoKGhpJiYsIyMv4uLv4SExYODxoKCxIODvoeHt4eH - uoiIvYmJv4qKv4yMvY+PupaWsqOjpqWlpaOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpqamp6amp6am - p6ampqSkpKOjpKOjpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaOjpKOjpKKi - o6KioqKioqKioqOjpKOjpKOjpKOjpKOjpKOjpLAPpqanpaWlpaWlpaWlpKSlo6Oko6OkpaWlpaWlpaWl - paWlpaWlpaWlpaWlpqampqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWmpqanpqanpqanpqanpaWmpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Okn5+o - mJiulJSwjo62hoa/gIDFgYHEgYHEgoLEgYHFhITBj4+1nJynoaGioaGhoaGhoaGhoaGhoqKknJyqkJC5 - h4fDhITGhITFg4PBiYm8ioq8ioq8jIy6kpKympqooqKio6OjpKSlpaWlpaWlpaWlpaWlo6Ogl5erjY22 - jIy6ioq9hITFhITFhITFhITFhITFh4fCjY27k5O1mZmuoKCmpKSjo6OkoqKjoqKioKCfnJyhlpaojY2x - hIS/g4PEhITGhYXGhYXGiIjDjo68kZG6lZWzm5uroKCko6OjoqKjoqKjoqKjoKCjmZmpkpKzjY25i4u8 - i4u8jIy8iIjCg4PHhITGhITGjo67l5evn5+lo6OhoqKioqKioqKioqKioKCkoKCnoKCqmJixjo68hobE - hITHhITGhITFhYXEjIy6lpasnp6joaGioaGkoqKjoqKjo6OinZ2llpaukJC3iYm/hITFhITFg4PGiIjB - jIy8i4u9i4u9jY27lpavnp6in5+dnp6eoaGhoqKioqKioqKknp6qlJS0i4u+i4u8ioq5hIS/gIDEgIDC - f3/Bf3/Bf3/Bf3/DhYW/jIy7jIy9jY2+k5O4m5uvnp6roaGppaWkoqKklZWyjIy8ioq+jIy9iYm+gYHD - gIDBf3/Bf3/Cg4O+iYm6h4fBh4fBhYXDjo63mpqpl5esioq7ioq7ioq7iYm7ioq5h4e7gYHBgYHBgYHC - goLGiIjBi4u6jIy6lZWxm5uqo6Olo6OmnZ2rlZWzi4u8hITDgYHDgIDBgIDBgIDBgYHCg4PDiYm/jIy8 - jIy+jY28lZW0oqKlo6OioqKimpqrjIy8goLGgoLFgYHEgYHDgIDDgIDBg4O9iYm6h4e/hobBiIjCiorD - j4+8nJyupKSmpKSlmpqujY29hITGhITFg4PFgoLFgIDCf3/BgIDBgYHCgoLEgoLEgoLEgoLFh4fAlZWx - oqKlpKSkpqajnp6rlJS3lJS1jo65ioq6hIS/gIDCgIDBgYHBgYHCg4PEhITFg4PGhobDjY27kJC4m5uq - oqKjpKSgn5+okZG5hITGhITGhITHhobAiIi3hIS4gYHCgoLEgoLGhobCj4+6lpazmpquoKCppKSlpKSl - o6Olo6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpqampaWlpaWlo6OkpaWlpaWlpaWlpaWl - paWlo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpKSko6Oko6Oko6Oko6OkpaWlpaWlpaWlpKSlo6Oko6Ok - sA+mpqempqelpaalpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWjo6SkpKSmpqampqempqempqem - pqempqempqempqalpaWlpaWlpaWlpaWlpaWkpKWjo6SlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqem - pqempqalpaWlpaWlpaWlpaWkpKSjo6Sjo6SioqWdnaqXl7GPj7mHh8GCgsWCgsWCgsWCgsSAgMaFhcCM - jLaUlK2fn6GhoaGhoaGhoaGhoaGhoaCgoKKWlrKIiMGEhMeFhcaGhsOJibuKiryKiryNjbiRkbSTk7KU - lLGgoKKioqGjo6Ojo6WkpKWlpaWlpaWnp6SZma6NjbaIiL2Dg8WDg8WDg8WDg8SEhMSEhMaFhcSOjrqZ - ma2hoaakpKSjo6Sjo6Sjo6SioqOgoKWZmaeNjbOEhL+Fhb6FhcCIiMGMjL+Njb6Ojr6Pj72Pj72UlLef - n6mjo6GioqKioqOioqOjo6Kbm6qSkrSNjbmLi7yLi7yKirmFhcGDg8WDg8aFhcaLi7+Tk7Wbm6ygoKSj - o6GioqKioqKioqKioqKhoaOdnamYmK+VlbGIiMCDg8WDg8WDg8WCgsaEhMWRkbaenqWgoKCgoKGioqKi - oqOioqOjo6KZma2NjbmJibyKiruKiryMjL2NjbyJicGFhcWEhMSEhMSPj7ednaejo6GgoKCfn5+enp6h - oaGjo6GenqeWlrGTk7aSkraNjbyLi72JibuIiLiFhbp/f8J/f8F+fsOEhLyJibiJibqKiruMjL2Njb6T - k7mamrCgoKmmpqSkpKWVlbKNjbuMjLyJib+EhMWCgsSBgcKAgMODg7yGhrmFhb6GhsCHh8GIiL+Tk7Kg - oKSenqWPj7aKiruKiruLi7qHh72BgcKBgcGBgcGAgMSHh8GMjLyMjLyMjLyMjLqYmK2goKSjo6OlpaWh - oaiTk7aEhMSAgMaAgMOBgcGAgMGBgcGHh7yKirqLi72OjruVlbScnK2ioqSjo6Ojo6Ofn6aWlq+QkLaQ - kLSLi7qIiLyHh7uHh7mHh7iFhb+GhsCGhsGIiL6Li72Ojr2amrGhoamlpaWioqiXl7OJicCDg8WDg8aC - gsWBgcKAgMF/f8GBgcKBgcOCgsWDg8WFhcGLi7qRkbOfn6ajo6SlpaOfn6uTk7ePj7uOjryGhsKDg8WC - gsOAgMGAgMGBgcKDg8SCgsaHh8KOjrqQkLeQkLibm6qioqOjo6GgoKSXl6+Kir6Kir6Kir+KiruGhrt+ - fsGBgcKBgcWHh8GOjrmVlbGZma2Zma6Zma6hoaelpaSkpKWkpKWjo6SlpaWlpaWlpaWlpaWlpaWlpaWl - paWmpqempqempqempqalpaWlpaWjo6SkpKWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWl - paWkpKSjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWjo6SwD6amp6amp6amp6ampqWlpaWlpaOjpKOjpKOj - pKSkpKWlpaWlpaWlpaSkpaOjpKOjpKSkpaSkpaWlpqWlpqamp6amp6amp6amp6WlpaWlpaWlpaWlpaWl - paWlpaSkpKWlpaWlpaWlpaWlpaWlpaWlpqamp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpKKipJ2d - qpaWsZGRuIiIwYKCxYKCxYODxYODxYGBx4eHv42Nt5KSsJeXqJ+fn6CgoKGhoaGhoaGhoKGhoZ6eppmZ - qouLu4aGwYiIvYiIu4mJuomJvIqKvIqKvI6OuJSUsJiYq6GhoqGhoKKioqKipKOjpKSkpaWlpaSkppqa - sIuLvoKCxYKCxYKCxIODxIODxIODxIODxYWFxIuLvJeXrqCgpaOjo6OjpKOjpKOjpKSkopycqZCQt4aG - wISEv4WFvoWFvYWFwoaGxIaGxIeHxI6OvZOTuJubsKOjqKWlo6KioqKioqKio6SkoZiYrY2NuoqKvouL - vIuLu4WFwoODxYKCxoSExYuLvpOTt5SUtJmZraCgpqOjoqKioqKioqKioqOjoaGho5ycqZSUs4mJv4OD - xISExoSExoKCyIWFxJCQt5KStJubqp+foqGhoKGhoaGhoaKio6Skop2dqZaWsJKStIyMuYqKuoaGw4aG - xIWFxYSExoSExoODx5CQt56ep6SkoqGhop+fn56enp+fn6Kin5+fppeXr5GRto6OvIyMvYyMvYuLuoaG - vYCAwn5+wn5+woODuoaGtoiIuImJuomJuoqKu4yMvY6OvZCQu5iYsqSkpqWlpZ2drY+PuYeHwYWFxIKC - xYGBw4CAw4ODu4aGuISEvoKCxYSExYKCx4yMu5qaq6Cgo52dppaWrouLu4uLuoiIv4ODw4CAwoCAwYCA - woWFvIyMuouLv4aGxIeHw4aGw4+PtZ6epqSkoaSko6Skppubr5GRuI+Pt4qKuYWFvIWFu4SEuoiIuYiI - uoyMuJWVsJubq5ubrJycqqCgpaSko6GhppycqZiYp5WVrYuLt4iIuomJuIiIuYSEvIWFvoWFwImJvYmJ - u4iIvoqKvo2NvpeXs6Ojp6Skpp6erZSUtYmJv4mJvIODwICAwn9/wX9/wYGBwoKCxIODxoeHwoqKvYqK - vIyMu5eXq6Cgo6SkoqGhppeXsIyMvoaGw4KCxoKCxoKCxIGBwYCAwYGBwYCAxIWFwIqKu4yMu4yMvIyM - u5mZraGhpKOjoqCgpJmZq5KStY6Ouo2Nu4iIv4GBwn9/wYCAwoaGvIqKvIyMvZCQuJWVspaWsZWVsqCg - p6WlpKSkpaSkpaSkpaOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6amp6WlpaSkpaOjpKSk - pKWlpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKOjoqSko6WlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWl - paWlpbAPpqanpqanpqanpqanpqampaWlpKSlo6Oko6Oko6OkpKSkpaWlpaWlpaWlpKSlo6Olo6Oko6Ok - pKSkpaWlpaWmpqanpqanpqanpqampaWlpaWlpaWlpaWlo6OkoqKjo6OjpaWkpaWlpaWlpaWlpKSkpqam - pqanpqanpqanpqanpqampaWlpaWlpaWlpaWloaGomZmvj4+5h4fChITHgoLGgoLFg4PFhITFiIi/jIy7 - jY23k5OvnZ2jn5+fn5+foKCgoaGhoKCin5+lnp6mmJiskpKykJC0jY23ioq8ioq9ioq9i4u+iYm/jIy7 - lpavoKCioaGhoaGhoaGhoaGioqKko6Olo6Omo6Omnp6rkJC5hITDgoLDgoLDgoLDhITEg4PGhYXEiorA - jo64nJyqoqKkoqKioqKjo6Oko6OkoqKlmJiwi4u+hobDh4e/hoa9g4O/g4PEgoLHhYXFiorAj4+9mpqv - oqKopaWlpaWlo6OkoqKjoqKioaGkmZmtj4+4i4u8i4u9hobBg4PFgoLGhYXDjIy8kpK1lZWzmJixn5+q - pKSlpKSkoqKjoqKioqKioaGjnp6olJSyiIi/goLGg4PFg4PFgoLHh4fDkJC5lpayl5evl5eun5+mo6Og - oaGhoaGhoqKhoaGknJyqlpawkJC3iIi+hYXCgoLFgoLIhITHhITGhITGjY27lpaxoKCmo6OioqKjoqKi - oKCgn5+enZ2hmZmqk5O0jIy7i4u9i4u8i4u7ioq5h4e6g4O7g4O6g4O6hYW3hYW2h4e4ioq5ioq5ioq6 - iYm9iorAiYnCkJC7n5+rpaWlpKSml5eziYnCgYHIgYHGgIDEg4O9hYW5hIS9gYHDgYHGg4PHh4fCkJC3 - l5etm5unnp6lm5unj4+2iIjAg4PFgIDFf3/Df3/BhIS8iYm3iYm8hobFhITIhITHhYXHioq+mJitoaGj - o6OhoqKknZ2smJiykpK3jIy6iYm6iIi3hoa2iIi5i4u1kJCylZWxmZmwmZmyl5e0oqKppqajoaGmm5uq - lpatjo61ioq5iIi6h4e7hIS8hIS9g4PAg4PChobBiIi/iIi+iIi+ioq+l5eyo6OnpaWln5+rmJizjIy+ - hobBgoLCgIDCgIDCf3/BgIDCgIDDhobAioq9ioq9ioq+i4u8l5esoKCjo6Oio6Ojnp6qj4+6iYnBh4e/ - iIi9hITAf3/Df3/CgIDChIS/ioq7i4u6ioq7ioq8ioq+l5exoKClo6Ohn5+mlJSykJC3jo66iYnAhITE - gYHFgIDCg4O7h4e4iIi7jY27kpK3k5O0lJSzk5O1oKCnpaWio6OlpKSlpKSlo6OlpKSkpaWlpaWlpaWl - paWlpaWlpaWlpaWmpaWnpqanpqanpqampaWlpKSko6Oko6OkpaWlpaWlpaWlpKSlpKSlpKSlpKSlo6Ok - oqKjoqKjo6OkpaWlpaWlpaWlpKSlo6Oko6OkpaWkpaWlpaWlsA+mpqempqempqempqempqelpaalpaWk - pKSjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWkpKSjo6Sjo6SkpKWlpaWmpqWmpqampqempqelpaalpaWl - paWlpaWkpKSioqOioqOjo6OkpKSkpKSjo6SioqOkpKWmpqampqempqempqempqelpaalpaWlpaSioqac - nK6UlLWLi76Hh8KEhMaDg8aEhMWDg8WEhMWIiMCJib+NjbqXl6ugoJ6fn5+fn5+fn5+goJ+goKScnKmZ - mauVlbCWlq+RkbKMjLqLi7+Li76Li76Li7+NjbyRkbaZmayjo6ChoaGhoaGhoaGhoaGioqGjo6OgoKaf - n6eYmLCNjbuFhcGCgsOCgsOCgsOEhMaGhsWKir+RkbeXl6+hoaSjo6KioqOioqOjo6Sjo6ScnKqQkLmI - iMGIiMGIiMCFhcGDg8WDg8aFhcKJib6MjL2Ojr2cnK2lpaWmpqSlpaWlpaWkpKWjo6Kbm6qUlLKPj7iL - i7yGhsKCgsaDg8WCgsWFhcSLi76Tk7WXl66enqmkpKalpaWkpKWkpKWioqOjo6GdnaiSkrSIiMCCgsaD - g8WDg8WDg8WFhcWPj7uXl7KVlbOYmK6Zmaufn6WioqGhoaGhoaGenqOamqmWlrGPj7qHh8GDg8WBgcaB - gcWCgsaDg8eGhsWOjruZma6fn6iioqSioqOioqOioqOioqKfn6GXl6ePj7KKirqKiruKirqKirqGhr2D - g76Dg7yDg7qEhLiGhrWFhbeFhbaFhbmFhb2Ghr2IiL+FhcGFhcOFhcaKisGamrClpaWnp6Oamq+MjL+F - hcWGhsKFhb+Hh7qDg75/f8J/f8SBgcWDg8WLi72Pj7mPj7mVlbGenqScnKWRkbSIiMGFhcOFhcCFhb6E - hLyHh7WGhrqDg8OEhMeFhceFhceFhceKisGVlbKfn6Wjo6ChoaSYmLCSkriNjb2Li72KiruIiLmGhraG - hreLi7SOjrWOjrmPj7mRkbuRkbyfn66np6WkpKSenqiXl7GOjrmNjbeOjrWLi7eFhb2Dg7+BgcKBgcOC - gsaGhsOKir6Kir2MjLuYmK6kpKWmpqShoamYmLGQkLyIiMODg8WBgcWBgcOAgMKAgMGEhL+IiLuKiruK - ir2NjbqVlbKenqehoaOioqKjo6Cfn6WSkraMjLyKiryLi7qHh7yDg76EhLyDg7yIiLmKirqKiruKiruL - i7qSkraYmK+bm6qgoKWgoKWVlbKMjLyIiMGEhMaDg8iDg8SFhbyHh7eGhrmJibeRkbOVlbKVlbSVlbST - k7Wdnaujo6SkpKSkpKWkpKWkpKWjo6Sjo6WlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqampqempqelpaam - pqalpaakpKWkpKSlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6SioqOioqOjo6OkpKSlpaWlpaWkpKSjo6Sj - o6SkpKWlpaWwD6amp6amp6amp6amp6amp6amp6WlpqWlpaSkpKSkpKSkpKOjpKWlpaWlpaWlpaWlpaWl - paSkpKOjpKOjpKSkpaSkpKSkpKWlpqamp6amp6WlpqWlpaWlpaWlpaOjpKOjpKKio6KioqKioqKioqKi - oqKio6OjpKWlpqamp6amp6amp6amp6WlpqWlpJ2dqZKStI2Nu4uLvoyMvYiIwYWFxYODxYKCxIODxIGB - x4aGw5OTtJ+fpaGhn6CgoJ+fn5+fn6CgnqCgoZubqZSUsJSUsJCQs4uLvIqKwIuLvouLvouLvoqKv4+P - upiYr6CgpaKioqGhoaGhoaGhoaGhoaGhoaGhop2dppaWr4qKvISExYSExYODxIKCw4ODxIWFxIuLv5KS - tpmZr5+fqKKioqKioqKio6Kio6Kio6OjpZubrY2NvYmJwomJwIaGwoSExoSExoWFxYmJvouLu4uLu5GR - tp6eq6SkpqWlpaWlpaWlpaWlpaKippiYr4+PuIqKvoaGwoKCxoODxYODxYODxYWFxIeHw46OvJubqqKi - o6Ojo6SkpaSkpaSkpaOjpaGho5eXr4iIv4GBx4ODxYODxYODxYSEx4qKwZGRuZKSt5KStpiYsJ+fpqKi - oqKioqKioqGhoZycpZSUr42NuYeHwYODxoKCxoKCxYGBxIGBxYSEw46OupqarZ+fqKSko6SkpKKipKKi - o6Kio6Kio52dpZiYqY+PsoiIuoeHu4eHu4eHu4KCwn9/xX9/xICAwIKCu4WFuIWFt4WFt4KCvYCAwoKC - woSExISExYSExoSExomJwJaWs6SkpqWlpZubr5OTt5KSuJGRt4yMuoWFv4CAw39/w39/wn9/w4ODwYqK - vIuLvYiIwY6OuZubqZycp5KSso6OuI6OuYyMuIqKuYqKt4SEuICAwYKCxYSExoSExoWFxoWFxoqKwZiY - s6KipaSkoKCgpJOTsoyMvIuLvYyMu42NuYyMt4iIt4eHtoeHt4iIuoqKvIqKvYuLvYuLwJWVt6GhrKen - paOjpZycrJeXsZOTsZGRsY2Nt4WFvoCAwYGBwoGBw4SExIiIwYuLvYyMvYuLvpaWsaCgqKampKOjp52d - rZqasZSUt4yMv4aGw4SEwYSEv4KCvoiIuomJuomJvIqKvZCQt5ubq5+fpqCgpaGho6KioJ2do5KSsYyM - uIyMuYuLuYyMtouLtImJtoeHtoiIuImJuYmJuoqKu46OuJubq5qarJiYrp6eqKOjopycqY6OuYaGw4WF - w4aGw4eHv4mJt4eHuoeHtYyMspCQs5KStpKSt5KSt5WVs5qaraCgpqSko6OjpKSkpaSkpaSkpaOjpKOj - pKSkpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6amp6amp6WlpqSkpaSkpaWlpaWlpaWlpaWlpaWl - paWlpaSkpKOjpKKio6KioqKioqSkpKWlpaWlpaWlpKOjpKOjpKSkpbAPpqanpqanpqanpqanpqanpqan - pqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6OkoqKjoqKipKSlpqanpqan - pqanpaWmpaWlpaWlo6Oko6Oko6OkoqKjoqKioqKioqKioqKio6OjpKSlpqampqanpqanpqanp6enpaWo - mZmvjIy6ioq+i4u9i4u9jIy8iIjBg4PGgoLEgoLEg4PEjIy7mpqroqKioqKhoKCgoKCgn5+fn5+fnZ2i - mJiokpKvkJCyiYm7iYm+jIy/jIy/jIy/jIy/jIy+kJC5nJyspaWhoqKioqKioaGhoaGhoaGhoKChnJyl - lJSuiYm8g4PDgoLEgoLEgYHDg4PEhITEiIjBjo67lpaynp6ppKSjo6OkoqKjoqKioqKjoqKjoqKjnZ2p - kZG5i4u+iIjBhITGhITFhYXFi4u+i4u9jIy7kpKynJymo6OjpaWkpaWlpaWlpaWlpaWloKCqmpqvkJC4 - hYXDgYHHg4PFhITFhITFhITFiYnAjY26kJC3nJyqoqKkoqKio6OkpKSlpKSlpKSln5+pkZG2hobBg4PF - g4PFg4PFhITFg4PGiYnBjIy+i4u/jo68nZ2so6Olo6OioqKioqKioaGjnJymjo62hobAgoLEgYHFgYHE - gYHEgYHDgoLCjIy3l5esnp6po6Olo6Oko6Oko6Oko6OkoqKjoqKjnp6om5uplJSuiYm5goLCgoLBgIDE - gYHDgYHDhIS/h4e4iIi1h4e1hYW3goK9gYHBgoLAg4PBhITEhITFhYXFiIjBjIy9kJC5n5+qpaWloKCp - np6rnp6rmJiyiYnBg4PGgIDEf3/Cfn7BgIC/hYW7iIi6ioq9i4u9kZG2mZmsnZ2nnJynlpaulZWwkJC1 - iYm7h4e8f3/CgIDCgoLDg4PFhITFhYXFhobEi4vAlpa1oKCpo6OioaGjl5etk5O0kZG1kJC2kJC0kJCz - iYm4h4e2hoa2h4e4ioq6ioq7i4u8jIy8jo6+mZmzpaWopKSom5utmpqtlJS0i4u7g4PAgIDDgIDBgIDB - gYHAhYW/iYm+i4u+jIy/jY2+k5O4mZmwoqKopaWloaGooaGpm5uvmZmzkpK3ioq5iIi4hYW3h4e6iIi7 - ioq8i4u9jIy7kZG0lZWxnZ2poaGko6OioaGimpqnlZWukpKykpKykpKxjo60h4e5h4e5hYW4h4e5iIi6 - iIi9i4u9l5evmJiumpqtoKCnpaWioaGlkpKzjY27i4u8i4u8ioq7iIi5iYm3jIyuiYm1iIi9iYm+iYm/ - i4u/k5O1mpqtoaGmpKSjo6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqan - pqanpqanpqanpqanpqano6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OjoqKioqKipaWlpaWl - paWlpKSlo6Oko6OksA+mpqempqempqempqempqempqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6SmpqempqempqempqalpaWlpaWjo6Sjo6Sjo6Sjo6Oi - oqKioqKioqKioqKioqOkpKSlpaampqempqenp6aioquUlLaJib+Li72Li72MjLyGhsKDg8aDg8WDg8WC - gsSLi7eSkq+cnKejo6GioqKioqKgoKChoZ+dnaKXl6mSkq+Pj7KJibmIiLyKir2MjL+MjL+MjL+MjL+T - k7mYmLGfn6ikpKOjo6SioqKioqKhoaGioqCfn6OWlq+Jib2EhMODg8ODg8KCgsKBgcSDg8aDg8aCgseE - hMWNjbybm6yjo6Sjo6Sjo6SioqOioqKioqOgoKWamquQkLiHh8OEhMaFhcWEhMSKir6Li72Li76SkrWd - naehoaChoaGioqOkpKWlpaWlpaWlpaWgoKqbm6+NjbyEhMSCgsWDg8WEhMWDg8aJib+Li72QkLednaei - oqKioqOioqOioqOjo6SkpKWkpKWfn6mRkbeLi72IiMCDg8aEhMWEhMWEhMWEhMWDg8aIiMKWlrOjo6ak - pKSjo6Sjo6OhoaOcnKiVlbCIiL6Dg8WBgcWBgcSBgcSBgcKBgcKLi7aQkLCTk66bm6iioqWjo6Sjo6Sj - o6Sjo6Sjo6SioqObm6uVlbKKir2EhMKEhMKCgsSCgsSBgcSCgsKKireRkayPj62OjqyDg7uAgMCBgb+B - gcCCgsKEhMSEhMWIiMKKisCJicGMjL6Zma+kpKalpaShoamWlrSJicKEhMiDg8eCgsZ/f8OAgL+Dg7qG - hreHh7mHh7uQkLWamquenqadnaeioqKdnaaWlq6Pj7aHh72AgMOAgMGAgMGAgMKCgsSDg8WFhcSMjL2N - jb6KisCUlLahoaijo6SdnaednaaamqaUlKyNjbWJibmIiLeGhreGhreGhreIiLiJibqKiruPj7iQkLmW - lrWhoaylpaicnLGUlLSOjruHh8OCgsaBgcOAgMF/f8GDg7uCgr6BgcSCgsaEhMSNjb6Ojr6Tk7mfn6yl - paOenqeZmbGZmbGamrGXl7GOjrWGhrqFhbiGhrmIiLqKirqKiruLi7yLi7yLi7yWlq+goKWjo6KioqOh - oaKZmaiSkrCRkbKOjraJibyJibqIiLmCgr2BgcGBgcOBgcSEhMSKir2RkbiXl7Gfn6ikpKKhoaaSkrSM - jLuKiryKiryJibyKiriOjrCGhrWGhraFhb+Dg8aEhMWEhMWLi7+YmLGhoaakpKOjo6Sjo6SlpaWlpaWl - paWkpKWjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqempqempqempqejo6SkpKWlpaWl - paWlpaWlpaWlpaWlpaWkpKSjo6Sjo6SioqKioqKkpKSlpaWlpaWlpaWlpaWwD6OjpKWlpqamp6amp6am - p6amp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaSkpKOjpKWlpaWlpaWlpaSkpKOjpKOjpKOjpKOj - pKOjpKWlpqamp6amp6amp6WlpaWlpaSkpKOjpKOjpKOjpKKioqKioqKioqKioqKio6SkpKWlpaamp6en - p6Kiq5mZspGRt4yMuIuLu4aGwoSExYSExYODxoWFw46OuJOTsJiYp56eoaKioaKioqKioqKiop+fopeX - qZOTrZGRr4mJuYODwoODxISExYeHwoyMvo2NvpOTuJmZsaGhqaWlpKOjpKOjpKOjpKKioqKioqOjn56e - pJCQtYSExIKCxIODw4ODw4KCxIGBxYKCxYODxoGByIWFw5OTtKCgp6OjpKOjpKOjpKOjpKKipJ+fppmZ - rY6OuouLvYyMvIiIwIKCxoKCxIKCxYmJv5CQt5GRtZaWr6OjoaGhoaGhoaKio6SkpKSkpqCgqpqar46O - voaGxYSExoSExYODxYSExYODx4iIwY+PuZeXsJ6ep6KioqKioqKio6Kio6Kio6Ojo6WlpZ+fqpKSuIiI - woWFxYSExYODxISExISExYSExYODxoeHwZaWsqOjpqWlpaOjpKSko6CgppWVsYeHv4ODxYKCxoGBxYGB - xIKCw4GBw4aGvY2NtI+PsJKSrJubpaGhoqOjpKOjpKOjpKOjpKKipZ2dqpiYroqKvoSExISExIKCxYKC - xIKCxIGBxoSEwIuLtJKSrJCQroODvYGBv4GBv4CAwICAwYGBwYODxIiIwYqKwIqKwIqKwI2NvZWVtKKi - p6amo52drY+PvYSEx4SExoSExoKCxYKCwYSEu4WFtoaGtoiIuI+Ps5KSsJKSs5WVsZycqKKioqOjoZ6e - pJKSsYaGv4CAw4CAwYCAwYCAwYGBxIaGw4yMvYaGxIaGxISEx42NvpycrqampKKipJ2dqZWVro2NtYmJ - uYiIuIaGt4aGt4aGt4aGt4aGuIiIt4yMtY6OtpSUs5SUs5ycrqiopqOjqpeXtomJwoSExoODxoGBxH9/ - wYWFuIGBvoCAwoCAwoKCxIODxYWFxISEx46OvZ+frKeno6KippmZrJmZrJubq5eXro6OtYiIu4aGuIaG - t4iIuIqKuoqKuoqKuoyMu4uLvJaWr5+fpaKio6OjoqGhpJOTspCQs5CQsYyMtYmJuomJuYODv39/wYCA - woKCw4KCxYODxYSExISExY2NvJycq6WloaKippeXsY+PuI6OuI6Ot4+PtY+PsomJuIaGtYODvYKCxIKC - xYODxYODxYWFxIyMvJiYr6GhpaSkpKWlpaamp6amp6amp6ampqSkpaOjpKOjpKWlpaWlpaWlpaWlpaWl - paWlpaWlpaampqamp6amp6amp6amp6amp6SkpaSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKKi - oqKioqSkpKWlpaWlpaWlpbAPoqKio6OkpaWmpqanpqanpqanpqanpqanpqanpKSlo6OkpaWlpaWlpaWl - paWlpaWlo6Olo6OkpaWlpaWlpaWlpKSlo6Oko6Oko6OkpKSkpaWmpqanpqanpqanpqanpaWlpaWlpKSk - o6Oko6Oko6OkoqKioaGhoaGhoaGio6OjpKSkpqamoaGqm5uwlJS2jo65ioq9hYXDhITGhITGhITGg4PG - hITFjIy9lZWunp6joKCfn5+foaGhoqKipKShmpqrlJSukpKujY23goLDgoLEg4PFg4PGh4fCjo66k5O2 - lJS3mJixoqKopqakpKSlo6Oko6Oko6Oko6OioaGjm5upkpKziIi+iYm+hITCgYHEgYHEgYHFgYHFgIDG - hYXEkJC4nJypo6Oio6Oko6Oko6Oko6Oko6Oknp6nlpati4u7ioq6hoa+goLCgIDEgIDEh4e+kJC2kZG1 - k5Ozm5upo6OhoqKioaGhoaGho6OioqKnmZmyjo6+hobGhITIhITGhITFg4PFg4PFgYHHjIy8mJiwnJys - nZ2qoqKioqKioqKioqKjoqKjoqKknZ2qk5O3iYnChYXGhYXGg4PEgoLDg4PEhITEgoLHiIjBlZWznJyr - pKSlpKSlpKSlpKSknJyrjo65iYm/ioq+hobDgoLFgYHEg4PDiIi9jo61kJCylJStmZmknZ2eoKCgoqKi - o6Oko6OkoqKlnp6pl5ewioq/hYXDg4PEg4PFg4PFg4PFg4PGhYXBi4u4kZGvjY2xg4O/gIDDgIDCf3/B - f3/Bf3/BgYHChoa/iYm/iorBiorBjY29lJS2mZmwoaGmpqajnZ2si4u9g4PIg4PGg4PGg4PDh4e9hoa6 - gYG9gYG/g4PAhYXCiIi+jY23k5OymJitn5+mnp6lmpqrkZG0iIi+goLEgYHCgIDBf3/DhITAioq/h4fE - hYXFhITGh4fDjo69mZmypaWlpaWlmJixjo65ioq7iYm6iYm5hoa3hYW2hoa3hoa4h4e3i4u1jY20kJCx - kpKylJSxm5urpaWlpaWolpa2h4fFgoLJgoLHg4PDh4e6gIC+f3/Bf3/BgIDBgYHCgYHDg4PGgoLIi4vA - m5uwpaWlpaWlo6OmoqKjnp6kk5Owioq8ioq7iIi6h4e4h4e4iIi5ioq6ioq6ioq6i4u8k5OynJypoaGk - o6OioaGkmJitl5etmpqokpKvh4e7hITAgYHCgIDBgYHBgYHCgYHDgoLEgoLGhobCkpKzn5+npaWjoqKl - nZ2pnJyqmpqqlZWujo60ioq4iYm4goK+gIDBgYHEg4PFg4PFhITFhITFg4PFjY25nZ2qpaWjpKSkpaWm - pqanpqanpqanpqanpKSlo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqan - pKSlo6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSkoqKioqKjpKSlpaWlpaWlsA+ioqOjo6Sjo6Sl - paampqempqempqempqelpaWjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWkpKWkpKSlpaWlpaWlpaWkpKWj - o6Sjo6SmpqempqempqempqempqempqempqalpaWkpKWjo6Wjo6Sjo6Sjo6OhoaGhoaGhoaGhoaGioqOj - o6Sfn6iVlbSNjbyMjLyLi76EhMaEhMaEhMaDg8eDg8aJicCTk7OdnaihoaKhoaCgoKCgoKCioqKhoaOZ - mayUlLGNjbeEhMGBgcWBgcOCgsSEhMSEhMSIiMCPj7mXl7KgoKqlpaalpaWlpaWkpKWjo6Sjo6SkpKOh - oaWbm6qTk7KLi7uHh8CDg8SBgcWBgcWBgcSBgcWFhcCLi7uYmK6jo6KioqKioqOjo6Sjo6SioqSgoKea - mq6SkrWLi7mGhr6CgsOBgcaDg8KHh7yKiriNjbeTk7GcnKmhoaOioqKioqKioqKioqGhoaGcnKqQkLqF - hcaEhMeEhMaEhMWEhMWDg8WCgsaHh8GMjLyWlrKenqqgoKejo6OioqKioqKioqKjo6KgoKWVlbKHh8KD - g8eDg8eEhMWEhMSDg8SCgsSCgsaIiL6UlLOdnaqioqSjo6SkpKWlpaShoaiXl7GOjrqNjbyIiMCFhcSD - g8WFhcOKir6MjLuTk7OUlLGYmKqdnaGenpydnZ2goKChoaGkpKKhoaeUlLOKisCEhMaGhsSEhMSDg8WE - hMWDg8aHh8KNjbqUlK+VlauOjrOGhr2IiLmHh7uFhbyDg7uCgruCgryGhruHh72Jib+OjruVlbScnKyh - oaaioqSlpaOfn6uPj7qEhMWGhsOGhsOJib+Jib2Fhb+AgMGAgMKAgMWGhsSOjryTk7aVlbOXl66enqaY - mKyRkbaMjLyHh8CCgsaCgsSAgMODg76Hh7yHh8GFhcWFhcWIiMKOjruQkLmWlrOkpKWlpaWbm6+Tk7aQ - kLaOjraIiLmGhreFhbaFhbeHh7aKireKiriLi7iMjLePj7SZmamgoKOioqSjo6abm7GLi8KHh8WJicGI - iMCEhMCAgMN/f8F/f8GBgcOBgcOBgcOBgcWHh7+MjLyVlbWfn6umpqSmpqWhoaeVlbGLi7qJib2KiruK - irqIiLmHh7mJibmJib2EhMGFhcCGhsGKir6Tk7Oenqajo6GioqOfn6WenqeYmK6NjbiDg8CBgcOBgcOB - gcKAgMGAgMKBgcOCgsOIiL+Kir2Vla+goKSkpKOkpKSioqWfn6iamq2SkrOLi7iIiLmEhL6AgMKAgMKA - gMSCgsWDg8WEhMWEhMWIiL6RkbWdnaqjo6Ojo6SkpKSmpqWmpqempqempqempqakpKSjo6Sjo6Sjo6Sj - o6SkpKSlpaWlpaWlpaWlpaWlpaWmpqampqempqempqempqekpKWjo6SlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWkpKSjo6Sjo6SkpKSlpaWwD6SkpKOjpKOjpKSkpaWlpqWlpqWlpqWlpqSkpaOjpKOjpKOjpKSk - paWlpaWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaWlpaSkpKOjpKWlpqamp6amp6amp6amp6amp6amp6Wl - pqWlpaWlpKSkpKOjpKOjpKOjo6KioqGhoaGhoaKioqKio56eppSUso2Nu4uLv4eHwoSExoSExoODx4SE - xouLvpeXsaCgpqOjoqKioqGhoqGhoaCgoKCgoJqaqJaWr46OuoWFxIGBxoKCxIGBw4KCxIODxYSExIiI - wY6OupubrKSkpaampKWlpaWlpaWlpaSkpKOjpKKipqCgp5ubqpKSs4eHwYODxoKCxoKCxIGBxIGBxIGB - xIeHvZCQs52dpqSkoKKioqKioqOjo6Sko5+fp5iYsJKSt42Nu4iIv4ODxYKCxoODxYSEw4eHvoeHvoWF - wY6OtZ2dpaOjoKKioqKioqKioqOjoaGhoZeXq4uLvYODxoODxYODxYODxYKCxoKCxYaGwYuLvIiIwJCQ - t56eqKSko6OjpKKio6KioqKioqOjoaCgpZGRtYeHwYeHwYaGwoSExISExIODxIKCxYiIvZGRtJiYrZ6e - qKOjo6Kio6OjpKWlpJycrZGRuI6Ou4mJwYWFxYSExoSExoaGxImJwIiIwYqKvo+PuJiYrZ+fo6Cgn56e - np6enqCgn6GhopycqpCQt4eHw4mJwIaGxISExYSExYWFxImJwI6OuZKStpeXrZmZqJSUrY+PsouLtoqK - uIqKuIeHuIWFuYWFuYWFu4iIu42NuJOTtZeXspqarp2dq5+fqaSkpaKip5aWs4qKv4qKv4uLvoqKvoaG - wYKCw4GBwoGBwYaGv4yMvZKSuZOTuZKSuZaWsZycqJiYrJGRto2Nuo2NuYmJvIaGwIWFv4SEu4ODvoOD - xIWFxIWFxY+Pu5OTt5KSt5eXsaKip6WlpaOjp5qar5KSto2NuomJu4iIuIaGuIaGtYmJtYqKuYmJvYuL - vIqKvIyMuZWVrpycpZ+fpKOjo6KiqJmZtI+PvoqKw4aGxIKCxoGBxICAwYGBwYGBw4CAxICAwoaGu42N - tZCQtJSUsp6erKenpKWlpZ6erI6OvYeHwYmJvImJuoqKuYiIuYeHuIaGu4SEwoKCxoKCxYKCxYKCx4yM - u5ubqKOjoKKio6SkoZycqY2Nu4SExoKCxYCAxIGBw4GBwoCAwYCAwoGBw4KCwYeHvoaGwZCQtZ2dp6Ki - o6GhpaOjpJmZr5GRt42NvImJvoWFv4CAw4CAwX9/wYCAw4KCxYODxYWFw4iIv5SUs5ubrJ2dqqCgp6Oj - pKOjpKSkpKWlpaamp6amp6amp6ampqSkpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaSkpKampqam - p6amp6amp6WlpqSkpaSkpKSkpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKOjpKOjpKSkpbAPpqampaWk - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlo6Oko6OlpaWl - paWlpaWlpKSko6OkpKSlpqanpqanpqanpqanpqanpqanpaWnpaWmpaWlpKSko6Oko6Oko6OkoqKioaGg - oKCgn5+imZmrlJSzjY26hobCg4PGhITFhITGhYXFiIjCkZG3n5+npKSjoqKjoqKjoqKjoaGioaGgn5+f - lZWsjY26hYXEg4PHhITFg4PEgoLDgoLEhITEiYnAjo67kJC4nZ2qoqKkpKSkpaWlpaWlpaWlpaWlpaWk - oKCnnp6pmZmujY26goLGgoLFgoLFgoLFgoLFgoLEgYHDiIi6lZWpnp6goaGgoqKioqKioqKio6Oinp6p - lJS1jIy+iIjBg4PHg4PGg4PFg4PFg4PEgoLFgoLEhITDjY21m5umo6OgoqKioqKioqKioqKjoaGimpqp - jY25g4PFg4PFgoLFgoLGgoLGhYXCioq8iYm+i4u8lJSyn5+mpKSjo6Oko6OkoqKjoqKioqKhnZ2oj4+3 - jIy8ioq9hobBg4PFgoLFg4PDiIi+kZGykZGxlZWun5+koqKioqKjoqKjoqKjmZmvjo69iYnBhITHhYXF - hYXFhYXFhITGg4PHg4PGgoLHi4u+mJiuoaGioaGhoKCgnZ2dnp6cnJyimJisk5O1jIy9ioq+hYXEhITG - g4PHhobFjo67k5O1k5O0mZmunp6mm5umkpKwiYm6iYm6iYm5iIi6hoa7hoa6hoa4iYm4jo60j4+0kJC4 - kZG5kZG6mpqvoqKmpaWknZ2skJC5jY28jIy+hobCg4PEgoLDgYHCgYHBh4e9iYm+iYnBiorCjo69lJS2 - mZmtnp6lmpqqlJSxk5OzkZG2i4u7iYm7g4O/f3/CgoLDg4PEhYXEkJC7kpK5kZG5lJS1m5utpaWkp6ei - m5uvj4+8i4vAi4u8ioq6iIi3iYm0iIi2iIi6ioq9iYnAiYnAiIjBiYm/kJC2mZmqoaGho6Oho6OmmZm0 - i4vChYXIhYXHg4PFgYHDgIDBgIDCgoLDhYW/jIy2i4u2j4+0l5esn5+mpKSlpaWloaGplpa1kJC6jo64 - ioq4iYm5h4e5hIS5gYG/gIDEgoLEgoLEg4PFg4PFjIy6m5uro6OioqKio6OimZmui4u9hobEh4fChYXC - gYHEgYHDgIDBgIDBgYHCgYHCgYHEg4PEjY25mJitnZ2onZ2oo6OkmZmvkJC4jY28iIjCgYHHgoLEgYHC - f3/BgIDCgYHEg4PEhYXDiYm/k5O0mJiwmJiwm5uspKSjo6Oko6Oko6OkpaWlpqampqanpqanpqampaWl - o6Oko6OkpKSko6OkpaWlpKSlpKSlpKSlo6OkpKSkpqampqanpqanpqanpqanpKSlo6Oko6Oko6OlpKSl - paWlpaWlpaWlpaWlpaWlpaWlpKSko6OksA+mpqelpaakpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWjo6SkpKSlpaWlpaWlpaWjo6Sjo6Slpaampqempqempqem - pqempqempqempqalpaWlpaWjo6Sjo6Sjo6Sjo6OhoaGenqCbm6aTk7GMjLuFhcODg8eFhcaFhcaFhcaL - i7+MjLyRkbednaqjo6Sjo6SioqOioqOioqKhoaGenqKRkbCFhcGBgceDg8WDg8WEhMWDg8OCgsOHh72L - i7uMjL2SkrWenqijo6Sjo6SkpKSlpaWlpaWlpaWmpqWhoaiZma6Pj7mGhsODg8SDg8aDg8aDg8aDg8aD - g8WFhcKPj7GcnKGgoJ2goKChoaGioqKioqKhoaOdnamVlbOKisCDg8eEhMaEhMaDg8WCgsWCgsWDg8SF - hcGMjLqXl6ufn6ChoaChoaGioqKioqKhoaOhoaObm6iOjraDg8WEhMaEhMaEhMaHh8KLi7uJibyKiryW - lq+fn6aioqOioqOjo6Sjo6Sjo6Sjo6OenqWVlbCKir6Kir6Dg8SBgcaDg8WEhMSHh8KSkrKTk7GQkLOY - mKmjo56hoaGioqOioqOhoaOYmK6Li7+EhMeGhsWFhcaFhcaFhcaFhcaEhMaFhcSGhsKSkrSfn6ejo6Gh - oaGhoaGgoKCenp6bm6GWlqqQkLSKir2EhMWDg8aEhMaEhMaGhsONjbyTk7aYmK+dnaijo6OgoKWSkrCN - jbaKiriKireKiriKiriKiraHh7WIiLiHh7qHh7yJib2Kir2Njbyamq+jo6ampqOgoKmSkreMjL6GhsSF - hcaEhMWCgsOBgcKAgMKAgMWAgMaCgsaIiMKQkLqWlrOcnK6ioqSenqWWlq6Pj7eLi72Li72FhcOBgcOB - gcGBgcGCgsGFhcGKir+Li7+Li7+OjryXl7KioqWmpqObm6+QkLuMjL6MjLyMjLyLi7aIiLmGhrmHh7mH - h76CgsaDg8aDg8aCgseHh8KTk7OenqOioqKjo6OioqeZmbOLi8GEhMiEhMWCgsOBgcKBgcOGhsCLi7uK - ir2Jib6OjraYmKmenqOenqalpaWnp6Ohoamdna6YmLGPj7eJibuIiLyCgsCAgMKBgcKBgcOCgsSDg8KJ - ibuSkrKamqqfn6WioqKjo6GamquTk7SRkbaQkLeLi72Dg8OCgsGBgcCAgMGBgcGBgcKDg8KHh7uOjraU - lLKVlbCZma2ioqOenqiZma6Tk7WKir+EhMaDg8aBgcOAgMGAgMGBgcKBgcOCgsWDg8aHh8KJicCNjbuY - mK6kpKOjo6Sjo6Sjo6SkpKSlpaampqempqempqempqakpKSjo6SlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sj - o6SlpaWmpqampqempqempqempqekpKWjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6SwD6Wl - paOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWl - paampqamp6amp6amp6WlpaSkpKOjpKSkpaamp6amp6amp6amp6amp6amp6amp6WlpaWlpaOjpKOjpKOj - pKKipZycqZmZpZWVrYiIv4GBx4ODxYSExYWFxoyMvo2NvpCQuZiYsJ6eqKOjpKOjpKOjpKOjpKKio6Gh - pJmZqo2NuISEwYGBxIGBw4GBw4KCwoKCwoaGvoeHvIaGv4uLu5qaq6KipaOjpKOjpKOjpKSkpKWlpaWl - paKiqJycr5CQuoaGw4eHwoWFwIKCw4KCxYODxYODxYWFxIyMvZeXrZycn56enZ+fn5+fn6GhoaKioqKi - o5ycqZaWsJCQuYSExoSExoSExoKCxYGBxIODxIaGwIyMupaWrJ6eoqGhn6CgoKCgoKGhoaKioqKiop6e - p5WVsomJv4ODxYSExoODx4iIwoyMvYuLvoqKvZaWrp2dpKGhoqKio6Kio6Kio6OjpKSko6Cgp5mZrpKS - tYqKvoSExIKCxYGBxoaGwoyMvIyMvJKStZKSs5aWrZycpKCgnqGhoaGhoaKiop6ep5KStYqKv4yMvoyM - voaGxYWFxoWFxoWFxoWFxYiIwY2Nu5mZraGhpKOjo6Kio6GhoaGhoZ6eopaWp4+Pr4uLtomJuoODxISE - xoSEx4iIw4yMvY2NvJOTtp6eqqCgpqGhpKGhpZqaqpmZp5OTr4+PsY+PsJCQsY6OsoWFt4eHuoiIuoiI - u4mJvIuLupKStJqarqKip6amo6CgqZKSt4eHxIWFxoWFxYWFxYODxYCAw39/wYCAwoGBxYaGwI6OuJaW - s52drZ2drZ6erJmZr4+PtoqKu4mJu4mJu4SEwYGBwoGBwYKCv4SEv4KCxISExYSEx4iIw5CQupmZsJ+f - qaSko5ubrJGRto6Ouo2NuI2NuImJu4iIuoeHt4SEu4GBxIKCxIODxYODxoiIwY2Nu5SUsqCgpKGhoZ6e - pp6eqJqarY+PuoSExoODxIGBwn9/woSEvYmJuomJvIqKvYmJvpSUsJycpp2dpZ6epaKio6SkpZ6erJeX - tJCQu4uLv4uLvYODwoGBw4CAwYCAwYGBwoKCwomJu46OtJiYqp6epZ6epaKioqKiop+fppmZrpWVspGR - t4qKvYmJvIiIuYKCvoCAwoGBwoODwYmJu4mJu4mJuoqKu46OuJaWrqKio6GhpaKipKCgp5aWs4iIwYSE - xoODxYKCw4GBwoGBwoGBw4GBxIKCxYODxYKCx4mJwJiYr6Sko6OjpKWlpaWlpaWlpaWlpaWlpaamp6am - p6amp6ampqSkpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSkpKampqamp6amp6amp6amp6SkpaOj - pKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpbAPpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - o6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqampKSko6OkpKSl - pqanpqanpqanpqanpqanpqanpqanpaWlpaWlpKSko6OjoqKlnZ2ql5euj4+1iYm6iIi8iYm+ioq+i4u+ - jIy+kpK4lJS1l5exnp6oo6Oko6Oko6Oko6Oko6OjoaGknJyqj4+4hYXBgYHEgYHEgYHEgoLDhoa9hoa9 - hYW/ioq5lparnZ2koqKio6Ojo6Oko6Oko6Oko6Okpqaknp6skJC7iIjDiIjDhobCgoLDgoLEg4PFgoLG - hYXEi4u9kZG2np6noaGgnp6dnZ2dn5+fn5+foqKgn5+lmZmsjo65hITFhITGhITGhITGg4PFg4PEhYXB - jY25l5etn5+koaGhoaGgoKCgoKCgoKCgoqKgn5+ll5evkpK1kJC2ioq+i4u9i4u+jIy+i4u+jIy8l5ew - np6nn5+ioKCgoqKioqKjoqKjoqKjpaWhnZ2qkZG3ioq/hITEgoLEgIDGhYW/iYm7jIy7kpK2k5O1l5ev - np6loaGhoaGgn5+foaGho6Ogn5+mk5O1ioq+i4u9hYXEhITGhITGhITGhYXFiIjCjY28l5exoKCmo6Oj - oqKjoqKjoqKjoqKgmpqokZGxjIy2iIi6goLCgYHDgYHFiIjBjY29j4+8lZW1l5exnp6po6Olo6OjoqKj - oKClm5uqk5OwkZGykZGwjY2yh4e5hYW4h4e5iIi6iYm7ioq7ioq7jY27kpK1oKCop6eioqKnmpquk5O2 - kpK3lZW0i4u+gIDGgYHCgIDBf3/ChYW9jo62k5OxlJSxlZWzlpa0m5uvm5uvlJS0jY24iYm7hITBg4PC - goLCgYG/gYG+gYHDgoLEg4PFg4PGiYnBkJC7k5O3mJixo6OmoKCnmJivk5O0kJC1ioq7ioq7ioq5hYW9 - gYHCgYHCgYHDgYHFh4fAjIy7k5OznJyoo6OhoqKinZ2lmZmrkZG0ioq7ioq8iIi6hoa5hIS5hoa6ioq8 - i4u9jIy9kJC4mZmvm5uqmZmpmpqooaGhoqKjmZmxj4+9jIzAi4vAhobFg4PFgoLDf3/Bf3/BhITAioq7 - jY29jIy9kpK4mZmvnZ2noaGhoqKio6Ohm5urkJC3ioq7iYm8ioq7hYXAgYHBgIDCgoLAiYm7ioq8i4u9 - i4u9ioq+jIy7k5OxoKCjo6OinZ2pnJyrmpqvkZG3jIy9hITEgYHDgIDBf3/BgIDCgYHDgYHEgYHGhobD - jY26l5evpKSjo6Oko6OkpKSlpaWlpaWlpaWlpaWlpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWlpKSl - o6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6OkpaWlpqanpqanpqanpqanpaWl - sA+jo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaWl - paWlpaWlpaWlpaWlpaampqempqempqelpaajo6Sjo6SkpKWmpqempqempqempqempqempqempqelpaWm - pqWjo6WdnamXl6+RkbiMjLaKiriKiruLi7yMjLuNjbuSkraUlLWXl7Kdnayjo6Wjo6Sjo6Sjo6Sjo6Si - oqWenqiXl66OjrmKir2Jib2JibyIiLyHh76IiL2Ghr6MjLWWlqmdnaKfn6ChoaGioqKjo6Sjo6Sjo6Sj - o6SgoKaXl7OMjMCHh8SHh8SEhMWCgsWCgsWBgcaFhcKKir2NjbuTk7Sfn6Wjo6KhoaGenp6dnZ2fn5+c - nKSZmamOjriEhMWDg8aDg8WDg8WEhMWEhMSGhsGMjLqTk62bm6agoKKhoaGhoaGhoaGgoKCgoKCdnaOY - mKyTk7OSkrOSkrOLi7qGhsGFhcOGhsSHh8OOjruamq6goKahoaKhoaGhoaGhoaGioqOioqOgoKWVlbKJ - icGEhMaDg8aCgseGhsCHh7uKirePj7KSkrOVlbGVlbKdnaijo6ChoaGgoKCfn5+dnaSYmKyQkLeJicCF - hcSEhMWDg8WEhMaGhsWIiMKOjruZmbChoaejo6Sjo6Sjo6SioqOioqOkpKGZmayOjraHh72CgsOBgcOB - gcOBgcSEhMOFhcSKisGYmLKenqqgoKeioqWjo6Sjo6OhoaSamqyTk7OSkrKPj7SIiLqHh7mFhbiFhbiI - iLiKirqLi7yMjL2Njb6Tk7ecnK2jo6akpKShoaecnK2YmLGMjL2FhcaDg8aBgcSAgMOFhbuJibmNjbmO - jrqNjbuNjbyRkbegoKqjo6eZmbGMjL2FhcODg8ODg8OEhMCCgr+AgMGBgcKCgsSDg8WEhMWEhMWHh8KQ - kLmcnK2jo6akpKWjo6Wfn6eXl7CKiryKirqFhb+BgcKAgMKAgMKAgMSHh7+OjrmTk7WVlbOYmK+dnamh - oaWhoaKcnKaQkLKHh7uJibmIiLmGhrmFhbiGhrmIiLuKiruPj7mSkraVlbOUlLSUlLKamqihoaChoZ+X - l66NjbuKir+Hh8GDg8aBgcWAgMOAgMGBgb+EhL+GhsCLi72Njb2Njb2OjryUlLSgoKWioqOioqCcnKeY - mK2Wlq6OjrWDg8CAgMN/f8OBgb6GhriJibmKiruLi7yMjL2Li72Li72Pj7mbm6mhoaGcnKmWlrCSkrWM - jLyGhsODg8WCgsSAgMJ/f8F/f8GBgcOAgMSEhMCMjLeRkbSWlrCjo6Gjo6Sjo6Sjo6SkpKSlpaWlpaWl - paWlpaWmpqampqempqempqelpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKWmpqempqempqempqewD6SkpaOjpKOjpKOjpKOjpKOjpKSkpaSkpaSk - paSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaSkpaSkpKSkpKSkpKSkpKampqamp6amp6amp6Wl - paSkpKOjpKSkpaamp6amp6amp6amp6amp6amp6ampqenpKGhqZWVs4+PuIyMuoyMuIuLu4yMvYuLvYeH - wYiIwYmJv4+Pupqar6SkpqWlpaSkpaOjpKOjpKSko6Cgp5aWsZCQt4yMuoqKvYmJvomJvYqKv4eHwoaG - woODw4uLuJiYpp+fnZ+fn6CgoKGhoaOjoqOjpKOjpKKipZmZro2NvYiIwoeHw4WFxYODxoODxYODxoaG - woqKvo6OupKStZiYrqGhpKOjo6Kio6CgoZ6enZ6enZaWqouLuIODxIGBx4KCxYODxYODxYODxoeHwo+P - uJSUsJWVrZmZpaCgoaKioaGhoaGhoaGhoaKin5eXqpKSsJKSsZGRso2NuIaGwIODxIODxYODxoaGxI2N - vJiYsKCgp6OjpKKioqGhoaGhoaGhoqOjopqarIuLvYODx4ODyIODx4mJwYmJvYuLuZCQtJOTsJOTr5WV - r5iYrZ+fpqOjoqKioqGhoaGhn5aWqo+PtYyMuYiIv4ODx4SExYODxoSExYiIwZCQuZiYsJycraSkpaWl - pKOjpaOjpKOjpKKio6CgpZOTs4iIvoODw4KCxYGBw4GBw4GBw4GBxIGBx4aGxJWVtqGhqKKipaOjpKOj - pKOjpKOjpKCgpZWVsY6OuIqKu4eHvIeHuoWFuYWFt4eHuImJuYuLuYyMu42NvY+PvJGRuZubrqWlpKKi - p5aWs4uLv4KCyIGByYODyIODxIaGvYaGu4eHvIeHwImJwY2NvZCQuZaWsqGhpqeno56erI6OvISEx4WF - woSEwYSEwoKCwoGBwoGBwYKCxISExYODxoSEw4iIv4+Pu56erKSkpaampKOjpZ6eqZaWs4uLvYWFwYGB - xICAxX9/w4CAwYWFvIyMto6OuI6Ouo2Nu42NvJCQuZubrqKipKOjoZeXq4qKuImJuYiIuYaGuIWFuIaG - uYiIuYyMt5KStpOTtZKStpSUtJmZrpycqJ6epaKin5mZqYuLuISEwIWFwISEwYaGvIODvoCAv4GBvoSE - v4iIv4yMvY2Nvo6Ovo2NvZCQuZqaraGhpaKioqCgop6epZmZqpKSs4eHvYWFvYODvISEuIaGtoeHuIqK - uoqKuomJvoiIwYeHwoqKv5aWr6CgoqGhoZiYrIyMu4WFxISExoODxYKCxYGBwoGBwYCAw4KCxIeHv46O - t5KSspSUsZqaq6OjoKOjoqOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpqWlp6amp6amp6amp6WlpaWlpaWl - paWlpaWlpaSkpaSkpaSkpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpqWlpqWlpqWlpaWlpaWlp6am - p6amp7APpKSlo6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlpKSko6Oko6OkpKSlpKSkpKSko6OkoqKj - oqKjoqKjo6Oko6Oko6Oko6OkpKSlpqampqanpqanpqanpqampKSko6OkpKSlpqanpqanpqanpqanpqan - pqanpqamn5+slJS2j4+3j4+1kJC1kpK1jo67h4fEhITGhITHhITGj4+4n5+opqajpKSlpKSlo6Oko6Ok - paWinp6pkZG4jY29i4u/h4fChYXDhYXDhobEhITGhITGhITFjY24mZmmn5+cnp6en5+foKCgoaGho6Oj - pKSjo6OkmpqujIy9hobDhITFgoLGgoLGgoLFhobCioq+jo66k5O0mJisnp6loqKjoqKjoqKjoqKjoKCh - m5ugjo6zhoa/g4PDg4PEgoLEg4PFg4PFg4PGiYnAkpK1l5evmZmsnZ2koKCgoaGgoaGhoaGhoaGhnp6j - k5OvkZGxkJCxi4u3hITAgoLEgoLEgYHFhITCiYm9kZG3nZ2roaGmo6Oko6OkoqKioaGhoaGgoqKimpqs - i4u8hITFh4fDh4fDjIy9jY24kZGzk5Oxk5OwlZWrlpapnp6koqKjoqKjoqKjoaGio6OflJSui4u5iIi9 - hobAhITFhITFhobDiIi+jIy5lJSynZ2qn5+po6OmpKSlpKSlo6Oko6OkoqKkl5evi4u9g4PGgoLHg4PF - goLEgoLEgoLEgoLFgYHGhYXDkpK2oKCopKSlpKSko6Oko6Oko6Oko6OjlZWxjIy9iYnAiYm9iYm6iIi5 - hYW2hoa2hoa6hYW+hoa/iIjBiorAj4+7mZmxo6Omo6OnlJS1iYnCiYnDi4vAiorAh4fAiIi8g4O9g4O/ - hoa/iYm/jo67mZmwn5+oo6OjpaWioaGolpa0jY2/iYnAhobCg4PFgYHEgIDCf3/BgoLDg4PFhYXDioq+ - jIy7jo66mZmuoKCopKSkoqKnl5exjY28i4u+hobDhobChYXAg4O/hIS7ioq0jIy1i4u7iIjAhobDhYXE - hobElJS0oaGnpaWgnp6mkZGziIi8iIi7hoa5hYW5hoa3iYm0jo6yk5O0k5O1lZWzmpqtnp6pnZ2pm5uq - oaGinp6kkJCyh4e8iYm5h4e6h4e7hIS9goK+g4O9hoa8i4u7jIy9jY2+jo6+jY29jo68l5ezo6Olo6Ok - o6OhnZ2mk5Oyjo64i4u7ioq6iIi4hoa3hYW3hYW2iIi4iIi9hITChITEhITFh4fDlJSzn5+jpKSdnJyo - i4u8goLIhITFg4PFgoLFgYHEgIDCgIDCg4PEh4fAioq+jo64l5etn5+koaGjoaGjo6Ojo6Oko6Oko6Ok - pKSlpaWlpaWlpaWlpKSlpKSmpaWmpaWmpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6Ok - o6Oko6Oko6OkpaWlpqampqanpqanpaWmpaWlpaWlpqampqansA+jo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sk - pKWlpaWlpaWlpaWkpKSjo6SlpaWlpaWlpaWkpKSjo6OioqKioqKjo6Ojo6Ojo6Ojo6OioqOlpaWmpqam - pqempqempqempqakpKSjo6SkpKWmpqempqempqempqenp6agoKqZmbCWlrOUlLKSkq+Tk6+SkrOKir+D - g8eFhcWHh8OPj7uZmaygoKOjo6OkpKWkpKWkpKWkpKSkpKOenqmSkraLi76IiMKEhMWDg8aDg8aDg8WE - hMWFhcWNjb2YmK2goKKgoJ+enp6fn5+fn5+fn5+hoaGioqOgoKebm62QkLmIiMKFhcOGhsKFhcKFhcKK - iryNjbmRkbaWlrGcnKmioqGioqOioqOioqOjo6OgoKSWlqyKiriIiLuGhr6Dg8OCgsWEhMaEhMaEhMeG - hsSNjbyXl7Cfn6ajo6KhoaCgoKCgoKChoaGgoKKamqiTk6+RkbKLi7eDg8CBgcSCgsOCgsODg8KHh72M - jLeWlrCioqSjo6Sjo6Sjo6Sjo6SioqOhoaKdnaWYmKuRkbaMjLuOjrmOjrmLi7yNjbiOjreNjbmPj7eV - la6cnKOgoKCioqKioqOioqOioqOhoaKTk7GJibuEhMGCgsODg8GHh8CNjbqPj7aRkbKWlq6cnKukpKOk - pKWkpKWkpKWkpKSioqWenqqRkbeHh8KFhcSFhcSEhMWEhMWEhMaEhMaDg8aDg8WJib+VlbGgoKekpKWk - pKWkpKWjo6Sjo6SioqWWlrKOjrqNjbuMjLmKirqJibmIiLeFhbiCgr+AgMSAgMOBgcWLi7yYmLGgoKmk - pKWkpKacnKyYmLCXl7CUlLSOjrqIiL6Fhb+Dg72EhL2Hh7qKirqRkbadnaqioqWhoaaioqSioqSfn6qc - nK+RkbqGhsSDg8aCgsSAgMJ/f8GAgMKEhMGKiryNjbqMjL2NjbuSkrSYmK+ioqekpKWZma+Pj7qRkbiP - j7qOjrqNjbiLi7aKirWMjLSJibqIiL6GhsOEhMaEhMWHh8KQkLegoKelpaKhoaWXl6+Jib2JibuJibuI - iLiJibKMjK6Nja6QkLKSkrSYmLGcnKudnamdnamfn6eioqOioqGXl6uNjbWMjLaIiLqEhMCDg8CDg76E - hLqIiLiKirqLi72MjL6MjL+Njb6QkLuXl7OioqekpKSkpKKdnaiQkLWLi7uKiryLi7uKirqIiLiGhraF - hbaFhbqDg8CDg8SDg8WCgsWFhcSRkbaenqejo6Cbm6iMjLqCgseCgsaCgsaDg8eEhMODg8CAgMGCgsOC - gsaFhcWOjruZma6fn6ecnKicnKmhoaSjo6Kjo6Sjo6Sjo6SkpKWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sk - pKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKSmpqampqempqelpael - paWlpaWmpqawD6WlpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWl - paWlpaKioqKioqKioqKioqKioqKioqKioqWlpaWlpaampqamp6amp6amp6WlpaOjpKOjpKSkpaamp6am - p6amp6ioppycrZWVspeXsJaWsJOTrZKSsIiIv4ODxoWFxIeHw4+Pu5qarqOjpqSko6KioqOjpKSkpaSk - paWlpKGhp5qarZKStoeHwoSExYODxYODxYODxYODxYaGxI2NvJiYrqGhpKOjoaCgoJ+fn56enp+fn5+f - n6Ghn5+fo5iYrJKSto2NvI2NvYyMu4qKuoqKuouLu4yMupCQs5OTspaWsZ2dqKKio6KioqKio6Kio6Ki - op+fp5KStouLuoSEv4GBwoGBxIKCxYSExoSExoWFxoODx4uLv5ubrqSkoqKioqKioqCgoKCgn6GhoZ2d - o5mZqZOTsYuLuIWFwYKCxoODxIODxIODw4iIvIqKuYyMt5WVraKioaOjo6OjpKOjpKOjpKKipJ6ep5aW - rpCQtY+PtZCQtJCQtJGRs4qKvISEw4ODxoKCxoaGwpOTsp+fpaCgn6CgoKKioqKio6CgpZmZroyMuoWF - w4ODxIKCwoODwImJupGRtJKSs5eXrpqaqJubp6OjpKOjpKSkpaSkpaWlpKKip5eXspCQuYyMvIuLvYiI - wYSEx4WFxoWFxoWFxoWFxIeHwI6OuJycqaGhoqSkpKSkpaSkpaSkpaOjpKGhpp2dq5aWsZOTso6OtIiI - uoiIuYeHuYCAwH5+woGBwYGBwoGBw42NtZqaqqKipqWlpaSkpaOjpqOjpJ2dp5CQtYWFwISEv4WFvoOD - vIeHuoiIuYyMtpOTsJiYrZiYsJeXsZ2dqaOjo6Wlo6WlpZiYs4iIxISEx4ODxICAwn9/wYGBv4iIuYmJ - uomJvYqKvouLvouLvpGRt6Cgqaeno6Ojp5ycrZubrZSUtJGRuJCQt46OtYyMtYiIuoeHvoWFxIWFxYWF - xIeHwY2NuZCQt5ycqqSko6KippeXsYyMvIyMuouLuoyMto2NsI2NrY2Nro+PsJCQspCQt5WVtJubrZ6e - qKOjpKOjpaSkoJubqI6OtoaGvYSEwYSEwISEwIaGvIeHuIeHuImJuYuLvIuLvYuLvpCQupaWtZiYsp6e - q6OjpqWlo5+fp5aWsJCQtYyMuouLu4uLu4mJuYeHuYSEuoGBv4GBwoKCxYODxYODxYWFw42NuJubq6Oj - o56ep5CQtoWFwoWFw4WFwoSExIeHvYeHu4CAwoKCw4SExZGRupWVtpWVtpeXs5WVsZWVsJ+fpaOjoaKi - o6OjpKOjpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paOjpKOjpKOjpKOjpKOjpKOjpKWlpaamp6amp6amp6ampqWlpaWlpbAPpaWlpKSkoqKjoqKioqKjo6Ok - o6Oko6Oko6OkpKSkpaWlpaWlpaWlo6Oko6OkpKSlpaWlpaWlpaWloqKioqKioqKioqKioqKio6OkpaWl - paWlpaWlpaWmpqanpqanpqanpaWmpKSko6Oko6Oko6Oko6OkpKSjnp6pmpqum5utmJivk5O0hobAg4PD - hYXEhobDjo67mZmuoqKmo6OlpKSlo6OkoqKio6OkpKSloaGnnJyskZG4hobDhITDgoLFgYHDgYHEgoLG - hITEjIy8mJiuoaGlo6OioqKjoqKjoaGhn5+fnp6en5+foKCenp6hmJirjIy8i4u+jIy9jIy9i4u8iYm6 - ioq6kZGzkpKylZWvnJyno6OioqKjoqKjoqKioqKioaGkmpqsjIy7h4fCg4PEgoLEgoLEg4PFhYXHhYXH - hYXGiIjClJS2oKCoo6OjoqKjoqKioqKioaGgnZ2hmJiqk5OxjIy5hYXBg4PFhITFhITFhYXEioq9ioq7 - jIy2k5Oum5unoKCgoqKho6Oko6OkpKSjoqKlmZmukpK1j4+2j4+0jY23ioq7ioq7hITDhITEhITEhYXE - i4u8mJiroKCioqKhoKCgoKCfoKCjmpqsjY28hobDhITDg4PCgYHDgYHDgYHDiIi8j4+2lpavnJymoqKg - oaGho6Oko6OkpKSkpKSkn5+pkZG4jIy9i4u+h4fCg4PGhITFhYXGhYXGhITGiIjCjY28lZWxoKCkoqKi - o6OjpKSlpKSlpKSlpKSlo6OkpKSjoKCnkpK0iIi8iYm6iIi5gYHAf3/BgIDBgoLDgoLEgoLEh4e8jo60 - lZWwnJyto6OnpaWlnp6rkZG5iIjBhobAhYW+hIS9hoa4hYW5jIyyjo6ziYm8iYm8ioq+ioq/kJC4mpqt - oaGmoqKllZWziIjChITGg4PEgIDCgIC/hYW2iIi3hYXBg4PHhITGhITGhITGkJC5n5+opqaioqKnmpqv - lJS1kJC3kJC3j4+2i4u2iIi6hYW7hITChYXEhITFh4fBjY26kZG0kpK0mZmuoqKloKColZW0kJC5kJC3 - jo63j4+zj4+wjIyujIytjY2tiYm3iYm7ioq+kJC5nZ2rnp6pnp6po6Oknp6ojo63hITDhYXBhITBiIi8 - iIi5hoa3hoa3hoa4iYm6ioq9jo66kZG4kZG5kpK4mJiyo6OnpqakoaGmnp6onJyok5OxjIy6i4u7i4u7 - h4e9gYG+gIDBgYHDg4PFg4PGhobCj4+3lZWxnJypoaGjoaGlmpqsk5OykpKzkpKxjY22hYW/gIDCgYHB - gYHCiYm7jY29jY2+jY2+jY2+jY28k5O0n5+lo6OhoqKioqKjo6Oko6Oko6OkpKSlpaWlpaWlpaWlpaWl - o6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6OkpaWlpqan - pqanpqanpqanpaWlsA+lpaWlpaWkpKWioqOioqKjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSj - o6SkpKSlpaWlpaWlpaWjo6OioqKioqKioqKioqOjo6SkpKWlpaWlpaWlpaWmpqempqempqempqakpKSj - o6Sjo6Sjo6ShoaWdnaqbm66Zma+Tk7WHh8KEhMOEhMWIiMCMjLyNjbuTk7SgoKakpKSkpKWkpKWkpKWi - oqKlpaOenquSkriIiMOEhMaDg8WCgsWCgsSBgcWEhMKKiryLi72Skraenqijo6KioqOioqOioqOhoaGg - oJ+enp6enp2cnJ6VlaiLi7qKiryKiruKiruKiruJibqJibqJibuTk7GdnaWhoaGhoaGioqOioqOioqOj - o6Gfn6WTk7SHh8KDg8WDg8WDg8WDg8WDg8WEhMaFhcaKisGOjryYmLCjo6SkpKWjo6SioqOioqKjo6Gg - oKKYmKeSkq6Li7aEhL+CgsODg8OGhsOKir2Kir2OjriUlLCamqafn5+goKCgoKChoaGjo6OkpKSioqWb - m62UlLSTk7SOjriKiruJib2EhMOEhMOEhMSFhcOJib6SkrOdnaahoaGhoaGioqGfn6GXl6mNjbmFhcSF - hcSEhMWDg8WDg8WDg8WDg8WHh7yJibqNjbiYmKyioqChoaGhoaGioqOkpKSioqaZmbCMjL6Li7+MjL2G - hsGBgcaDg8aDg8aEhMiIiMONjb2Tk7ebm66jo6KioqKioqKioqOkpKWkpKWkpKWkpKWioqWdnaqRkbaI - iL2IiLuCgsKBgcJ/f8GAgMKCgsSDg8WEhMWDg8WJicCRkbSamqmioqalpaWbm66Njb+Hh8SHh8GGhsCI - iLqFhbmLi6+NjbGHh72Dg8SEhMSEhMSEhMWHh8OQkLmcnKuenqiQkLSKiruIiLuHh7mFhbmFhbiFhbaC - gsCCgsWEhMWEhMWEhMaEhMaQkLifn6empqGgoKeWlrGQkLiQkLeRkbeNjbmJibuGhryBgb+CgsKDg8SH - h8CMjLuOjrmOjrmOjrqTk7Ofn6eioqWZma6UlLSVlbOSkrOQkLKOjrCNja2Li62GhrWGhreIiLiJibuM - jLqTk7eSkreXl7GhoaahoaWYmK6RkbSQkLSQkLKLi7eIiLmHh7eFhbiBgcCCgsGAgMOHh7+NjbyMjL6O - jryamrCjo6empqSlpaWioqabm62NjbuLi7yLi7qJib2EhMGBgcKAgMGBgcKCgsaGhsSNjbqWlq+dnaih - oaSioqOjo6OgoKaYmK6Tk7KNjbiGhr+BgcKAgMKCgsCIiLmFhcOGhsaFhciIiMSNjb2MjL6Skrqdnami - oqGioqKioqKioqKjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqewD6OjpKSkpKOjpKOjpKOj - o6KioqOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKWlpaWlpaWlpaOjo6KioqKioqKi - oqKio6OjpKWlpaWlpaWlpaWlpaamp6amp6amp6ampqWlpaOjpKCgpaGho52dqZiYsZOTtY2NvIWFxoSE - xYSExIWFxIaGxIeHwpKStaCgpaOjo6SkpaSkpaSkpaSkpKCgpJeXsYuLwISEx4SExoODxYKCxYGBxoaG - w4qKvouLvJCQt5CQt52dqaOjoqKio6Kio6Kio6Kio6GhoZ+fn5+fnZycnpSUpomJuIiIu4qKvIuLvIuL - vIuLvIiIu4yMtpWVrZ6epKKioKGhoaGhoaKio6Kio6GhpJmZrIyMu4ODxYODxYODxYODxoWFxoWFxoSE - xouLwJCQupWVtJ6erKSkpaSkpaSkpaOjpKOjo6CgpZycp5qap5OTrY2NtISEv4CAw4GBw4ODxIuLvYuL - vo6OuZqaq6KioKCgn5+fn6CgoKCgoKGhoaGhpZ6eqJ2dqZeXsY+Pt4uLu4mJv4WFxISExYSExYSEw4mJ - vpCQtpeXrKGhoaGhoaGhoaKioJ+fo5iYqo+PspCQs4WFwYKCxoODxYODxYSExYODxoiIv4uLt5GRsJqa - qKKioKGhoaGhoaGhoaOjoqOjpZmZr4yMvoyMvYeHwYKCxYGBxYKCxoKCx4eHwYuLv42NvJaWs6GhqKSk - pKKio6KioqKioqKio6OjpKSkpaSkpaKip6KipZubrY2Nu4SExIGBxIGBwoCAwYCAwYGBw4GBxIODxYOD - x4iIwpSUs56epKKioaSkpaGhqZOTuYuLwYqKwIqKv4mJu46Os4qKsoWFu4KCw4GBxYODxoODxYODxYKC - xouLvpqarZ6eqJGRt42NuI2Nt4uLuImJt4eHuIGBv4GBwoKCxIODxYODxYSExYSExouLvpqaraOjpKKi - pJycqZWVr5GRtJCQsoyMtYWFvYCAwoCAwYGBwoaGvoyMuo2NuoyMu4yMvIuLvY+PuJycqKOjoZ6eqZeX - sJOTtZOTtZGRs5CQsI2NsIeHtYKCvoKCvYKCvoWFwIaGwIaGwoeHw5OTtqCgp6SkoqCgp5mZrpGRsoyM - uIiIuomJuIaGuoCAwIGBwoCAxIWFvomJuomJvIuLvZOTtaKipqamo6ampaampKKiqJaWs42NvI6Ouo6O - uYiIv4GBxYGBw4CAwX9/xIWFv4mJvY6OupWVsZaWsJeXr5ycqaGho6CgpZaWsIyMvoWFw4KCxoGBxYOD - voeHuoODwIODxYKCx4eHxIyMwI2NvZGRuZOTuJqar6CgpaOjoaKioqKioqKioqSkpKWlpaWlpaWlpaWl - paWlpaWlpaWlpaSkpaOjpKOjpKOjpKWlpaWlpaWlpaSkpaOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpqamp6amp7APpKSlo6Oko6Oko6Oko6Oko6OjoqKjo6OkpKSkpaWkpaWlpaWlpaWlpaWl - paWlpaWlpKSlo6OkpKSkpaWlpaWlpaWlo6OjoqKioqKioqKioqKio6OkpaWlpaWlpaWlpaWmpaWmpaWm - paWmpaWlo6OkoKCmnJyomJitkpK0jIy8hobEhITFhITFhITFg4PGg4PGiIjClJSyoKClo6Oio6OkpKSl - pKSlpKSloKCmk5OziIjBg4PHhITGhITGgoLGh4fBi4u9jY26kJC3kpK1lJSzn5+no6OioqKjoqKjoqKj - oqKjoqKjoqKgn5+fl5emjIyyiIi5iIi7ioq8i4u8i4u9i4u8j4+2lZWsmJionZ2koqKgoaGhoaGhoaGi - oqKioaGkmJiti4u9goLGgoLGgoLGg4PHhITHhYXFiYnBjIy+j4+5mZmvoqKnpaWlpaWlpKSlpKSlpKSj - oKClmpqql5eukZGzh4e9goLDgYHFgoLEh4e+ioq8ioq+jo65m5uqpKSfoaGhn5+fn5+foKCgoaGfoKCj - nZ2qmZmtkJC3ioq7iIi/hobEhYXGhobFh4fFioq/j4+2lZWtnJymoaGhoaGhoaGhoqKgn5+jmZmqkpKw - iYm6g4PDgoLGhITFhITGg4PGiIjBjY26k5OxmJinnZ2goqKhoaGhoaGhoaGhoaGinZ2nlpaxjo67h4fB - hITFgoLGgIDGgYHFiIjAi4u7jo67kZG5m5uvpaWkpKSlo6OkoqKioqKioqKio6OkpKSlo6Oko6OkoaGm - mJiwi4u/g4PHg4PFgoLDgYHCgIDBgIDBgYHCgoLEiIjBi4u+jo67lZWwn5+koqKhpKSlm5uuk5O4kZG6 - kpK4kJC3jo61hYW7gIDBgIDCgIDCgoLEgoLFg4PEgoLGiIjAl5ewoKCmlJS1k5O1kpKyj4+1iIi7goLA - gIDCgIDBgYHCgoLEgoLGhITEiYm/jIy/kpK2nZ2ppaWioKClmZmtl5esk5OtjIy0hoa8hYW9hYW7hIS7 - h4e4ioq5jIy8jIy9i4u9j4+4kJC2nZ2opaWfoaGlm5uslJSzk5O1lJS0kZGzioq5goK/gYG/gYG/gYHA - gYHCgoLDg4PEg4PFkJC5n5+opqahn5+plJS1k5O0jo62kJCzioq5gYHBf3/DgIDDhYW/iYm7iYm6i4u4 - kZG0lZWxnJyroKCopKSmpqakoqKnmpqumZmulZWyioq9g4PFgIDFgIDDf3/ChIS9iYm5i4u6jIy8jo66 - jIy7kpK0mpqroaGkoqKjnJypk5O0jY28jY26i4u7hoa9g4O/gIDDgYHGhobBi4u9j4+7kpK4l5e0mpqx - nJyuoqKopKSioqKioqKioqKioqKjo6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6OkpKSkpaWl - paWlpaWlpKSlpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqansA+kpKSjo6Sjo6Sj - o6Sjo6Sjo6SioqOioqOjo6Sjo6WkpKWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6SkpKWlpaWlpaWkpKSj - o6OioqOioqKioqKioqOjo6WkpKWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6OZma2RkbSLi7uFhcKDg8WE - hMWEhMWEhMWDg8aEhMSMjLuYmK2hoaSjo6KioqOjo6SkpKWlpaWhoaiTk7WGhsKCgseCgsaDg8aEhMWI - iMGHh8GLi7yUlLOUlLOamqygoKWjo6KioqOioqOioqOioqOjo6OioqOZmaqNjbWGhruIiLmJibqKiruL - i7yMjLqQkLaTk7GWlqyXl6ibm6KgoJ+hoaGhoaGhoaGioqKfn6WWlrCKir6GhsKGhsKHh8KIiMKIiMKJ - icGNjb2Li7+Njbyamq2kpKSlpaWlpaWkpKWkpKWjo6WenqiXl6+RkbaKir+Dg8WCgseFhcWJicCLi7uK - iruJibyOjrmamqujo6CioqKhoaGfn5+fn5+fn6CdnaWXl66Pj7aKiryKirqHh8CEhMeGhsaGhsWLi8CS - krmXl6+cnKagoKKhoaGhoaGhoaGhoaCcnKaTk7GKir2AgMaCgsaDg8WDg8WFhcWIiMGOjrqRkbaVlbGc - nKWgoJ2fn5+hoaGhoaGioqCdnaWVla6OjraJib+Dg8WDg8aBgceBgcSGhr6KiruMjLuRkbaWlrCfn6ml - paSkpKWkpKWjo6SioqOioqKioqKioqOjo6SkpKOenqmRkbeGhsSEhMaEhMWDg8SBgcKAgMGAgMGCgsKF - hb6KirqMjLyJicCNjbuZmayenqWioqKhoaWdna6ZmbSWlraRkbmIiL+CgsN/f8J/f8F/f8GBgcOCgsWC - gsWDg8SIiL2UlLGdnamYmK+Xl7KSkrSLi7uEhMOBgcWBgcOAgMGAgMGAgMKCgsOHh7+Li7yMjL2Li76V - lbOioqWjo6Sfn6mcnKmSkrKKirmIiLqIiLmIiLeIiLWJibaJibmLi72Njb2Pj7iTk7OTk7Obm6qjo6Gh - oaObm6qZma6VlbOTk7aMjLyFhcKDg8KBgb+Bgb+AgL+AgMGBgcOCgsSCgsSPj7efn6impqGfn6mUlLWU - lLSVlbCQkLWFhcCAgMaBgcKEhL6KirmKirqKiruMjLmMjLmMjLqMjL2VlbOhoaimpqSkpKaioqigoKmU - lLSJib+GhsOFhcCEhL6Dg7yFhbuFhbyFhb+Hh8CLi72OjrqTk7SamqygoKWjo6KhoaKenqaZma2UlLKM - jLqFhcKAgMSAgMOEhMCKirqMjLqOjrqRkbmTk7eamrCenqukpKempqSioqOioqOioqOioqOjo6Sjo6Wk - pKWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6SkpKWlpaWlpaWlpaWkpKSkpKSlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWmpqawD6KioqOjo6OjpKOjpKOjpKOjpKOjpKKioqOjoqOjo6OjpKSkpaWl - paWlpaWlpaWlpaWlpaWlpaSkpKOjpKSkpaWlpaWlpaWlpaSkpaKio6KioqKioqKio6KipKSkpaWlpaWl - paWlpaSkpaOjpKOjpKKio5WVsouLvYWFwoKCxYODxISExYSExYSExYSExomJv5SUr5+fpKKioqKio6Ki - o6Kio6OjpKKipp2drZKSuYiIwYWFw4WFwoODxYSExYODxoODx4qKv5WVspycq6GhpaKio6Kio6Kio6Ki - o6Kio6Kio6Gho52dqpGRt4eHv4mJuoiIuYmJuYuLuoqKvYqKvI6Ot42NuJCQtZiYqp6eoaCgn6CgoKGh - oaGhoZ+fo5mZqpKStYyMvIyMvIyMvI2NvI2NvI2NvI2NvYyMvo2NvpGRuZycq6Sko6WlpaWlpaWlpaWl - pJ+fqZeXsJCQuIiIwIODxoSExoSExYiIwIyMvYuLvouLvYeHvI6OtpubqaOjoKKioqKioqGhoaCgnpub - o5SUrY6OtIqKuoqKuYmJvIaGwoWFxoWFxoWFxoqKwZKSupubr6GhpKKioKGhoaGhoaGhoZ6epZaWromJ - vYCAyIODxYODxYSExYODxoaGw42Nu4+PuY6OupWVsp+fp6KioJ+fn5+fn6GhoaOjoJqaqo6OuIeHv4KC - xoKCxYGBxYKCxIaGv4qKvImJvoiIwJGRtZubqaKipKWlpaSkpaSkpaSkpaSkpaKipKKioqKioqOjo6Sk - o5+fqZKStoaGw4SExoSExYKCxIGBw4CAwoGBwISEvIiIuImJuYmJvIqKvI+PuJWVspqaq6CgoqOjoKGh - ppmZsJCQu4mJwoWFxoODxYCAwn9/wX9/wYGBw4KCxYODxIiIvY+PtJWVrpqaqp+fp5eXsY6OvIaGwoOD - xYODxYGBw4GBwoCAwoGBwIWFvIqKuomJvYqKvYuLvZOTtZ6eqaSko6Sko52drJCQuYuLvIuLuImJt4iI - t4mJtoiItomJuIuLuZCQt5OTs5OTs5OTs5WVsJ2dp6KiopycqZycqpSUtIyMvYaGxIWFxoWFwoGBwYCA - wICAwYGBwoGBwoGBxIGBxI2NtZ+fpqWloqKipZ2dq5OTtI+PuISExIGByIODw4SEvoiIuImJuoqKuoqK - u4WFwIGBxoKCxYKCyI6Oup+fqaamo6WlpaSkpp2dro6OvIuLvo2NvIyMu4qKuYWFuoCAwX9/w4GBxIWF - wYyMupKStpGRuZiYsZ+fqKKio6Gho6Kiopqaqo2Nu4ODxoGBx4KCxISEv4mJuYiIvIeHvoeHv4iIwYmJ - wY6OvZaWtKCgqqampKWlpaSkpaOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpKOj - pKOjpKOjpaSkpaWlpaWlpaOjpKOjpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpbAPo6OkoqKi - o6Ojo6Oko6Oko6Oko6Oko6OkoqKjoqKjo6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6OkpKSl - paWlpaWlpaWlo6OkoqKjoqKioqKioqKjo6OkpaWlpaWlpaWlpaWlpaWloqKmnJysjo66hYXEgoLGg4PE - g4PFg4PFg4PFgoLGhobBk5O0n5+moaGhoqKioqKioqKjoqKjoaGkmpqtlJS1jo68jY29jo68ioq+hITF - hITFhYXFiYnAj4+6lpaxoaGkoqKjoqKjoqKjoqKjoqKjoqKjo6OinJyqlJSyjo66i4u9ioq7i4u5ioq6 - ioq7h4e/g4PEhITFhYXDkZG0n5+loqKfn5+fn5+foKCgoqKgm5uolJSxkZG1kZG3ioq+i4u+i4u+jIy9 - jIy9jIy9jY29kpK3m5uuoqKnpKSko6OkpaWlpaWlp6ejnJytkJC5iYnCg4PHhITFhITGiIjBi4u+i4u+ - i4u+i4u+i4u9lJStn5+io6OioqKioqKioqKioqKgmZmojo60jIy5jIy4ioq6hYXCg4PGhITFhYXFhYXG - g4PIiorCmZmyoqKmo6OjoaGhoaGhnp6ll5etj4+2h4fAg4PFg4PFhITFhITFhITFh4fCi4u9i4u9j4+5 - mpqqoqKjoqKjoKChnp6eoKCfoKCilpauiIi/gYHHgoLFgoLFgYHFh4e/iYm/hITFhITEhITEkJC3np6m - pKSho6OlpKSlpKSlpKSlpKSlpKSlo6OjoqKioqKio6Ojo6OkmZmui4u+g4PGg4PFgoLEgYHEgYHCg4O9 - hoa1hoa4iYm6iYm6jo61k5OylpaxnJypoqKkoqKgnp6jk5Owhoa/goLEg4PFgoLEgIDCf3/Bf3/BgIDC - goLEiYm8kJC0lpatmpqom5unoqKhl5evjo64jY25iYm9goLGgYHDgYHDgIDChIS7iYm4iYm8iYm8i4u9 - kpK1mpqtoKCnpKSjo6OknZ2rmJixlZWylZWvkZGwiYm2iIi4hoa3hYW5ioq3kJCzkZG1lJSylJSykpK0 - mpqrpKSgoKCkmZmtjY27hYXEhITFhYXDhYXCgYHCf3/BgIDCgYHCgIDCgYHDgoLCjo61nJykoqKho6Oj - oaGlk5O1hobDg4PFg4PEhYW/iYm3h4e5iIi5iYm6hYXAgoLFg4PFg4PFgoLGjY27nJyqpKSjpaWlpaWl - np6rkZG6jIy+jIy9jIy8iIi9gYHEgIDCgYHBhYW/iYm7ioq6ioq9jIy9lJS1nJysoaGlo6OioqKjlJSy - h4fBg4PGhITFhYXCiYm5hIS9gYHDgIDFgYHFgoLGg4PHhITIiorAmJiyo6OnpqakpaWlo6Oko6Oko6Ok - o6Oko6OjoqKipaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6OkpKSkpaWlpaWlpaWlo6OkpKSkpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlsA+ioqKioqKioqKioqOjo6Sjo6Sjo6Sjo6Sjo6SioqOioqKj - o6Sjo6SlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWkpKWioqOioqKioqKioqOj - o6SlpaWlpaWlpaWkpKWfn6qVlbSHh8KDg8aDg8SBgcOCgsSDg8WDg8WBgceJib+YmK2jo6GioqKhoaGi - oqKioqKjo6GgoKWUlLOOjryMjL6NjbyJicCCgsaBgcSCgsWJib+MjL2OjruXl7GkpKOioqOioqOioqOi - oqOioqOioqOjo6KXl6+OjruLi76MjL2MjLuOjraLi7mHh8CFhcOFhcOGhsKMjLmYmKugoKKioqGgoKCf - n5+fn5+goJ+Xl6yRkbOPj7eKir6GhsKGhsOFhcSJicCMjL2NjbySkrabm66ioqelpaSkpKWkpKWjo6Sl - paWnp6Odna6MjL+Dg8iFhcaEhMaIiMCLi76Li76Li76Li76Li76ZmbChoaSgoJ+goKCioqKioqKioqKh - oaOVla6Li7eMjLaJibqEhMKDg8WFhcWFhcWFhcWFhcWFhcaPj7ufn6unp6OlpaWjo6SioqCYmKuQkLaL - i7uHh8CEhMWEhMWEhMWDg8aHh8GMjLyLi7yQkLiYmK6goKWjo6KioqOioqOhoaGfn52ZmaaOjraEhMKC - gsaCgsWCgsaJib+IiMCEhMWFhcSFhcSLi76Zma+hoaSjo6Kjo6Sjo6SkpKWkpKWkpKWkpKWkpKWjo6Si - oqKioqKkpKGdnauNjbyDg8eEhMWDg8WCgsWFhb2Hh7aFhbeGhreHh7mOjrORkbGTk6+bm6mgoKWgoKWi - oqOgoKSUlK+Ghr2BgcOBgcOAgMJ/f8F/f8GAgMOCgsSKir2QkLeXl6+amqqZmamamqihoaGcnKiamqqY - mK2OjrmCgsWCgsOBgcOEhLqHh7eJibuLi76Li76SkraTk7WVlbKcnKqioqSjo6Sjo6Sjo6SkpKOgoKWV - la6IiLqIiLiCgr2AgMCBgcGEhMCLi7qSkrSTk7OWlrCcnKmioqOhoaOWlrCIiMCDg8ODg8GDg8KCgsOB - gcKAgMGBgcKBgcSBgcWCgsOJibqPj7OZmaednaSfn6OgoKKYmKuLi7qJib2KiryJibqIiLmHh7mHh7iE - hL+CgsSCgsWDg8WDg8WDg8WJib2Xl6+hoaWkpKOjo6SioqSVlbKMjLyLi72Jib+CgsWBgcOAgMKDg72H - h7mJibmJibqJibuQkLOVlbKbm62hoaakpKOioqOVlbKOjruLi7yKirqJibuFhb6AgMGAgMKBgcOBgcOB - gcWFhcWLi76Pj7yUlLeenqumpqSlpaWlpaWlpaWlpaWlpaWkpKWjo6SioqKkpKSlpaWlpaWlpaWlpaWl - paWlpaWkpKSjo6Sjo6Sjo6SlpaWlpaWlpaWkpKSkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWwD6Wl - paOjo6KioqKioqKio6OjpKOjpKOjpKOjpKOjpKOjo6KioqOjpKOjpKSkpaWlpaWlpaWlpaOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjo6KioqKioqKio6OjpKWlpKSkpqCgqpiYsouLv4aGxYODxYKC - xIKCxIKCxYODxYGBx4WFw5GRtp2dp6OjoaKioqKioqGhoaKioaGho5ubqpSUs42NvIyMvIiIwIODxYKC - xIGBxIeHvYmJvI2NupSUtJ2drKOjpKOjpKKio6Kio6Kio6Kio6Kio6OjopycqpSUspGRt4+PuYyMvIaG - w4aGxIWFxYSExoWFwo2NuJiYrJ+fo6GhoaGhoaGhoaGhoZ+fn6CgnpaWrI6OuImJvoWFw4WFwoaGw4mJ - wIyMvo2NvJKStpubrKGhpqSkpaSkpaSkpaSkpaSkpaOjpKKiqJWVtYuLwImJwoiIwYiIwYqKvYmJu4qK - vYuLv4yMvZKSt6CgqKSkpKKio6CgoJ+fn6KioqKioqGho5eXr4yMuomJuoODwYODw4ODxIODxYWFxYWF - xoWFxZCQuJmZsKKiqKampKWlpaWlpaKio5WVr4yMuYeHwISExYSExYODxIKCxoeHv4qKvIyMu5GRtZmZ - q6CgpaKio6Kio6Kio6Kio6Kio6CgopOTrYmJuIeHvYiIv4SEwoKCxIODxISExYODxoWFxI2NvZOTuKCg - qaampKWlpaWlpaWlpaWlpaSkpaSkpaSkpaSkpaSkpaOjpKOjpKOjoZ+fp5aWs5CQuJGRt4uLvImJvImJ - uoeHuIaGt4WFtoeHuImJuY6OtZOTsJOTsJSUsJqarKGhpKCgpJWVsIeHvoCAxIGBw4CAwX9/wX9/woKC - wYmJu4qKu4uLvJKStJeXr5SUsJSUrpycpp2dpJmZqpCQtoqKvoqKvYmJvIiIuoeHuYiIuoqKu4uLvoWF - xYaGxISExoiIwpKStp2dqKOjpKOjpKSko5+fqJycrZmZrZCQsoSEv4CAwH9/wIODvoiIuYqKuoyMvZaW - sZubrJubrJ2dqKKiopmZrIyMu4iIvYWFv4GBxIKCw4GBw39/wYCAwX9/xYKCwomJuomJuomJuo2NtpKS - r5qapqGhn6CgopOTsYyMuouLvIqKuomJuIeHuIKCvoGBwoGBxIODxYODxYODxIWFwYWFwo+Ptp2dqKWl - o6OjpKKipJWVsY2NuIaGvoGBw4GBw4GBw4ODvIaGuYeHuYeHuomJuZCQsZKSsZKSspeXsJ+fqaSko6Oj - pJqaq5mZrJeXr46OuIWFwYGBwoCAwX9/wX9/wX9/w4KCw4yMvY2NvI2NvpGRuZ2draeno6WlpaWlpaWl - paWlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKWlpaWlpaam - pqamp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpbAPpKSkoqKioqKioqKjo6Oko6Oko6Oko6Oko6Oko6Ok - o6Oko6OjoqKio6OkpKSkpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oj - oqKioqKioqKjpKSioaGolpa0i4vAhobFhYXHhITGgoLFgoLFgoLFgYHGhobBjIy7mJitoqKjoqKjoqKi - oqKioqKioqKhn5+jmpqrlZWxjo66h4fBg4PFgYHFgYHChYW7iIi5h4e7kJC0nZ2poqKko6Oko6Oko6Ok - oqKjoqKjoqKjoqKjoaGjm5uqk5Oxjo62ioq8hYXDhITGhYXGhITHhobDj4+3mZmqoKCioaGhoaGhoaGh - oaGhoaGhoaGgnZ2hkpKviYm8hYXChYXChYXCh4e+i4u+jo68k5O1mpqtnJyroqKlo6OkpKSlpKSlpKSl - pKSlo6OkmZmvjo68iorCi4vBi4vBjIy+ioq8iYm8iYm8iYm+jY29k5O2oaGnpKSjo6OkoqKioKCgoKCg - o6Ohn5+mk5OziIjBhITFgoLDg4PEg4PEg4PEg4PFh4fDkpK3mZmvn5+ppKSlpaWlpaWlpKSmnp6skJC4 - hobAg4PEg4PFg4PEgYHEhoa/iYm8i4u5jo65kJC4l5evoKCko6OioqKjoqKjoqKjoqKjnZ2ojo62h4e8 - h4e7hYXAg4PEg4PFg4PFg4PGhobDjIy9k5O2mpqwoqKnpaWkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlo6Oko6OjoqKinp6nmJiwlZW0jY28i4u9ioq7iIi5hoa5gYG+g4PBg4PBhITAhoa/hobAhoa/ - kpKzoKCloKCmlpawjY25hYXAf3/FgIDFf3/EgIC/hoa5ioq4ioq6ioq7kZG1lpawlZWxlZWxlZWvnJyn - l5eskJC2j4+4kZG2kJC2ioq6iIi7iYm4iIi8hobEhITGgoLIhobEjY28lZWynZ2poqKjo6OkpaWioKCo - mpqvlJS1iIjAhITCgIDCgoK8hoa3ioq4i4u5jIy8j4+4kJC4kpK2mpqsoqKinp6mk5O0h4fAgYHFgIDE - gYHDgIDCf3/Bfn7Dg4PAiYm7ioq6ioq7ioq6iYm6jY21mJipo6OeoaGglJSwjIy7iYm+ioq8iYm8hITA - gYHCgYHCgYHDg4PFhITFhITFhITEg4PGi4u7mpqpo6Ogo6Oko6OjlpaxiIi/gYHFgIDFgIDChIS9hYW4 - hoa2hYW5iIi3jo6xi4u2jY25jY26jo65lpawoqKlo6OknZ2qmZmtkZG2iIjBg4PFgYHEgYHCgIDBfn7C - goK/h4e8hYXDhobEhITGiorAmZmwpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpKSlpaWlpqampqan - pqampqampaWlpaWlpaWlpKSlo6Oko6OkpKSkpKSkpaWlpqanpqanpqanpqanpqampaWlpaWlpaWlpaWl - sA+jo6SioqOioqKioqKioqOjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6OioqKjo6OkpKSkpKSlpaWlpaWk - pKWkpKWkpKWkpKWkpKWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6OioqKioqKkpKKhoaaWlrKKisKFhcaFhceF - hceEhMWCgsWCgsWGhsCNjbeQkLSbm6ukpKGioqOioqOioqKioqKjo6GhoaKZmauPj7iHh8GEhMWBgceC - gsSHh72JibmJibmHh7yPj7KdnaSjo6Gjo6Sjo6Sjo6Sjo6Sjo6SioqOfn6Wbm6qVlbKQkLiKir2EhMOD - g8WDg8aDg8aIiMGNjbySkraamqyhoaChoaGhoaGhoaGhoaGhoaGfn6SVla6KirqFhcCFhcKFhcCIiL2J - ibyJib2OjriWlrGYmK+YmLCioqWkpKOjo6Sjo6SkpKWkpKWfn6mQkLqJicGJicGLi8GMjL+KiryJibyJ - ibyJibyJibuNjbmUlLShoaakpKOjo6Sjo6SioqOgoKCgoKCbm6WUlK+MjLqGhsGDg8SDg8SDg8SDg8OF - hcGJib6Pj7mZma+hoaakpKOkpKSmpqWlpaWfn6yRkbqGhsSDg8WDg8SEhMWHh7+Li7uMjLmMjLmOjreT - k7KamquhoaOioqGioqOioqOioqOioqOYmK2Pj7mIiL+EhMKDg8SEhMWDg8eDg8aGhsKKir6OjruZma+g - oKekpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Wjo6KgoKSYmK2Pj7mMjLyK - iryKirmIiLqDg79/f8KAgMOAgMOAgMOAgMWAgMWFhb+SkrCenqShoaOcnKmXl6+RkbaLi7uHh72Ghr2H - h7mHh7aFhbuHh7yGhr+OjraVlbCUlLOTk7OWlq6enqSenqOamqmVla6SkrKSkrKPj7OLi7aGhruDg8GC - gsaDg8aHh8OOjruWlrKenqmjo6Sjo6OioqOhoaWcnKqSkrWGhsGDg8SCgsOEhLyEhLmDg7uEhL6Hh7+N - jbuLi72NjbuTk7WamquioqOioqKWlrCKir6EhMGDg8CAgMR/f8J+fsOBgb6IiLmLi7mKiruLi7qLi7qK - irqMjLeVlaygoJ+goKCXl6uTk7GUlLCRkbOHh76BgcOBgcKBgcKBgcODg8WEhMWEhMWEhMWCgseLi72b - m6qlpaGjo6SkpKOZma2JicCDg8WFhcCEhL6Hh7mFhbeDg7iHh7SMjLCKiraEhMGFhcOFhcSJicCUlLOh - oaajo6Samq6Pj7mHh8KEhMWCgsWBgcSAgMJ+fsOBgb2FhbqDg7+BgcWDg8eGhsSLi7+UlLafn6umpqSl - paWlpaWjo6Sjo6OlpaSlpaWlpaWlpaWlpaWlpaWlpaampqempqempqalpaWlpaSkpKSjo6Sjo6Sjo6Sj - o6Sjo6SlpaWmpqampqempqempqempqempqWlpaWlpaWwD6SkpaSkpaSkpKKio6Kio6OjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKKioqKioqKio6OjpaSkpaSkpaSkpaSkpaSkpaSkpaSkpaSkpaOjpKOjpKOjpKOj - pKOjpKOjpKKio6KioaKioqCgpZiYrYyMvoWFxYSExoSExoODxoKCxYSExIqKu5CQs5OTr5ycp6OjoaKi - o6Kio6KioqKioqKiop2dqJCQtYaGwoGBxoCAxoODw4eHv4qKu4qKvImJu4qKuZOTrJ2doKGhoKKioqOj - pKOjpKOjpKOjo6CgpJmZq5WVspCQuIqKvoWFxIKCx4ODxoeHwYaGwYuLvI6OupKSt5ubraKioqGhoaGh - oaGhoaGhoKCgopiYrIqKvISEw4SEwoWFwYWFwIeHvYmJu4iIu4yMuZKStZaWsZiYrqKipaSkpKOjpKOj - pKWlpKOjpZmZsI2NvYqKwIqKv4uLvoyMvImJu4mJu4mJu4mJu4yMt5GRspmZrKKipaSkpKOjpKOjpKOj - pKGho5+foJmZpJSUq4+PsoiIu4SExYSExIODxIODxISEw4aGwIyMuZubq6KipaOjo6OjpKSkpqKiqZ2d - rI6OvIeHxYWFxYSExISExYiIv4iIwYyMu4+PtpOTsZqaqJ+fpKKioqKioqKio6Kio6Kio5+fppOTs4yM - vYaGw4ODxoODxYSExYeHwoeHwoqKv4yMvZGRt5+fqKSko6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpKSko6CgpZiYrYqKvYqKvYqKuYeHuoODv39/wn9/wYCAwoGBw4KCxIGBxYOD - xI6Ot5eXq5ycpqGhoqCgpJiYrZSUtJGRt4yMuYqKuImJuIWFu4KCvYODvoWFvoqKuI6Oto+PuJOTs5yc - qKCgpKCgoZycpZSUrpGRspGRspCQs4mJuoGBwH9/w4KCxIaGwY2NupOTtZeXsZubrKCgp6KipqOjopyc - q5GRt4aGwYGBxYODwoWFvoaGuYODu4CAv4GBwIiIvoyMuo+PuZOTtpeXsZycqaKipKSkopeXr5GRtZCQ - tIuLt4KCwIODvYKCvoWFuIiIt4mJuYqKuoeHv4eHv4aGwIiIvpCQtJqapJ+fn5ubpZycpZycpZSUroiI - vYGBw4CAwoGBwoKCwoKCw4ODxISExYSExYODxouLv5qasKOjpKSkpKOjpJ+fqJWVs4yMvImJvoiIvIiI - uoaGuoiItIuLsImJtIKCwIGBxoKCxoKCyIeHw5SUtKGhpqOjpJubrI+Pu4WFxYKCx4ODxoKCxYCAxIGB - voODuYKCvYCAxIGBxIaGwoyMvJKSt5aWs56erKampKWlpaWlpaOjpKKio6OjpKSkpKWlpaWlpaWlpaWl - paWlpaWlpqamp6amp6Wlp6SkpaSkpKSkpKSkpKSkpKOjpKOjpKOjpKSkpaamp6amp6amp6amp6amp6Wl - pqWlpbAPpaWlpaWlpaWlpaWlpKSkpKSkpKSkpKSko6Oko6Oko6Oko6Oko6Oko6OkoaGioqKjo6Oko6Ok - o6Oko6OkpKSlpKSlpKSlpKSlpKSlpKSlo6Oko6Oko6Oko6Oko6Oko6OkoqKjoKCjnZ2nlZWxioq8g4PD - goLEg4PEgoLEgYHEhITDiIi8kZGymZmon5+ioqKhoqKioqKjoqKjo6OinJypkJC2h4fBhYXDg4PBg4PC - iIi9jIy6ioq8iYm8iIi9jY23mZmln5+anp6foKCgoqKio6Oko6OkpKSjoaGml5ewj4+5ioq+hYXEg4PG - hITFh4fCjIy7jIy7i4u8jo66lpawoKCmo6OkoqKioaGhoaGhoqKgoKCilpauiIi/hITDhYXChYXBhYXB - hobAioq8ioq7iIi9jIy5l5euoKClo6Oko6Oko6Oko6Oko6Okn5+pkZG3jY29jY29jIy9i4u9i4u8ioq6 - ioq6iYm7jIy4kpKxmJionp6ioaGjo6Oko6Oko6Oko6OkoaGloKCkmJipkJCwjIy1iIi7h4fBhYXEhITF - g4PGgoLFiIi8lZWuoaGio6Oio6OkpKSjoqKmmpqvkZG4h4fEhYXGhobFhYXFhITFg4PGg4PGi4u8lJSw - mpqooKCioaGgoqKioqKioqKio6OioaGkmJiui4u8hYXEg4PGg4PFg4PFhITFjIy9jY28jY29jo68lJS0 - oqKko6Oko6Oko6OlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkoqKlmZmui4u+ - i4u9iYm7g4PAf3/DgIDBf3/BgYHDgYHEgYHHg4PGi4u+lpavnJyqmpqpn5+jn5+klJSwjo66jIy8i4u8 - ioq7h4e8g4O+goK8hIS7iIi5iYm6iIi7jIy5kpKzmZmsmpqrmpqplpaskZGykZGyj4+1iYm9goLEf3/E - f3/Bg4O+i4u3kpKykZG3j4+6j4+6kpK2m5uso6Okm5usjIy7hobDh4fChobAiIi7hIS+gYG/gYG9hYW6 - i4u3i4u5kJC3kZG4k5O1mpqro6Ojo6OknJyrmpqrm5uolZWsioq3iIi4h4e2hoa3hoa3h4e4hoa+goLF - g4PGgoLHhYXFj4+6mpqon5+fnJykmpqmlZWrjY22hoa+gYHCgIDAgIDBgYHCgYHCgYHEg4PFhITFhITG - h4fEkZG5n5+rpqakpKSko6Ojn5+nlJS0jIy8jY25i4u4i4u3jY2wiIi1gYHAf3/EgYHEg4PFhYXFiIjC - j4+6m5uupKSkoqKll5ewi4u+hobFh4fDh4fBg4PAhYW6goK9f3/DgoLDh4fBjY26kZG2lZWympqtoKCo - paWkpaWlpaWlpKSlpKSlpKSko6OkpKSlpaWlpaWmpaWmpaWmpaWlpqampqanpqanpqanpqampaWlpaWl - paWlpKSko6Oko6Oko6OkpaWmpqanpqanpqanpqanpqanpaWmsA+jo6SlpaWlpaWlpaWlpaWlpaWlpaWl - paWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKWkpKWkpKWkpKWkpKWkpKWj - o6SioqOioqOjo6Sjo6ShoaahoaWamquPj7iIiLyCgsKBgcOCgsOCgsOCgsODg8KJibuWlqugoKGioqCh - oaGhoaGioqOioqKgoKWVlbGMjLuOjrqLi7yJibqKiryLi76Kir6Li72JibyLi7qQkLSamqafn5ydnZ2f - n5+hoaGioqKjo6Sjo6ShoaaYmK+NjbyEhMWEhMaFhcWIiMKNjbyMjL2MjL2NjbqWlrCgoKWjo6Ojo6Sj - o6SioqKhoaGhoaGfn6OYmKuNjbmHh8CGhsGGhsKHh8GLi72Li72KiryKiruOjreXl6yjo6Gjo6Sjo6Sj - o6SkpKOhoaaYmLCNjb2MjL6Njb2MjL2Li7yKiruKiruKiruKiruPj7OYmKidnaOgoKChoaCioqOjo6Sj - o6Sjo6ShoaWamq2Tk7OMjLiIiLqJibmIiLuEhMSEhMaEhMaLi72Xl6ycnKWhoaGioqGjo6OkpKSfn6iR - kbaGhsSGhsWHh8SGhsaFhcaEhMWFhcSKir6RkbeXl6+dnaaioqChoaGhoaGioqKioqKioqGfn6WUlLOI - iMCEhMWDg8WDg8SEhMWHh8KLi72Njb2QkLuSkrmWlrSjo6Wjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWmpqSjo6aamq2NjbyKiryDg8GAgMOBgcKAgMF/f8GAgMOAgMWCgsaK - ir6VlbCamqybm6ucnKmgoKOgoKGYmKuMjLuLi7yLi7yIiMCGhsCEhL2Dg7uGhraIiLmJibuMjLmOjraN - jbeNjbqUlLKbm6mZmauRkbGPj7SJibyDg8OCgsOBgcGCgryJibSQkLCQkLKIiL+FhcaFhcaHh8KWlrGi - oqWhoaaamqySkrWLi72Li7yFhcGCgr+Bgb6EhLmJibSKireJibqJibyKir2OjruYmLGjo6Sjo6Shoaaf - n6WgoKSbm6iPj7KJibiHh7iGhreGhraEhLyAgMWDg8WEhMaDg8eHh8OTk7aenqahoaGcnKOWlqqMjLWE - hL+CgsOCgsGBgcCAgMGAgMGBgcKBgcOBgcSDg8WEhMWEhMaMjL+bm6+mpqSlpaWlpaOfn6iXl7CUlLSV - lbOSkrKQkLGKireBgb9+fsOAgMKBgcSEhMWLi8CNjb6Pj7yYmLKlpaWlpaObm6ySkraPj7qQkLmOjrmJ - ibmCgsB/f8KAgMKDg8KMjLuPj7mQkLaQkLeUlLScnKqjo6OlpaWlpaWlpaWlpaWlpaWlpaWjo6SlpaWm - pqampqempqempqelpaWmpqempqempqempqalpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Smpqempqempqem - pqempqempqewD6KioqOjo6Skpaampqamp6amp6amp6WlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKOjpKSkpaSkpaSkpaSkpaSkpaOjpKKio6Kio6OjpKGhpp6eqZWVsomJv4SE - xoSExYSExYSExYKCxYGBxYODw46OtpubpKGhoKGhoaGhoaGhoaGhoaKiop+fpZmZrZaWsZSUsomJv4OD - w4KCxIODxYaGw4yMvIyMu5GRs5aWrJ6epKGhoJ6enp2dnZ+fn6CgoKKioaCgppqar5CQuIaGxIWFxYSE - xYiIwY2NvIyMvYyMvY2Nu5aWsJ+fpaOjoaKioqOjpKOjpKOjpKOjop+fopeXrI2NuYeHwIaGwYWFwYaG - wYmJv4uLvYuLvYqKvo6Ot5WVrZycpqGhoaKioqOjpKOjpKSko6Cgp5SUto6Ou42NvI2Nu4yMu4uLvIuL - vIuLvImJvI6OtpOTr5iYqZ6eoqCgoKCgoKCgoKKio6OjpKOjpKGhpZaWso6OvIuLvYuLu4iIvYKCxIKC - xIKCxouLvpaWsJ2dp6GhoaCgoKGhoaKioaGhpJmZr4yMvIyMvY6OvYiIw4SEx4SExoSExIuLvIyMvYyM - u5GRtpqaq6KioKGhoaGhoaGhoaKioaKioqCgpJmZrJSUsomJvoSEw4WFwYaGwIuLvYyMvY+PuZGRuZWV - tZ+fqqWlpaOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampKOj - p5WVtIeHw4KCxoGBxIGBwoGBwn9/woGBxICAx4qKvZSUspKStJKStJGRtZeXr5+fpaKin5ycpZCQtIyM - uYeHv4WFwIWFv4WFvIaGt4aGt4eHuYmJuYqKuoqKu4qKu4uLupiYraGho6CgpZWVsYmJvIqKu4qKu4iI - u4mJtYuLr46Oro+PsIeHvYODxISExoSEx4eHxJWVtKKipqWloqGhppaWsYmJv4aGw4aGwoODwoaGuoqK - s4mJtomJuomJuoiIvI6OtpKStJWVtJycrKOjpKOjpKSko6GhppqarJSUspCQsYqKt4mJt4SEvH9/woGB - woGBw4ODxYODx4eHw5GRt56eqaKioqKioJeXqoiIuoGBw4ODwYODwYGBwoGBwYCAwYCAw4GBw4GBw4OD - w4SEw4mJv5CQupqasKampKWlpaampJ+fqZqarZubrJqarpOTtYuLuoODwX9/w39/wYGBwoKCxIqKv4qK - v4+Pu5eXs56eq6WlpaampJycrJeXsJmZrpaWsouLvoODxIGBw4CAwYCAwoKCxIODxYSExYSExYODxoeH - wpKStZ6eqKOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKSkpKampqamp6amp6amp6Wlpaampqamp6amp6am - p6WlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKWlpqamp6amp6amp6amp7APoqKioqKioqKjpKSkpaWmpqan - pqanpqanpaWmpaWlpKSlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpKSl - pKSlpKSlpKSlpKSloqKjo6Oin5+llJSxiYm/hITFg4PEg4PEg4PFg4PFgoLGg4PEioq6j4+1m5uloKCf - oaGgoaGhoaGhoaGhoaGhoKCjnZ2olZWyiYm/hYXEhYXFhYXGhYXGhITHh4fEkZG1mZmsnp6koaGhoaGh - oaGhn5+fnZ2dnp6eoaGgm5upjo65hYXFhITGhITHiIjBi4u8i4u8jIy9jY27lpaxn5+no6OioqKioqKi - oqKio6OkpKSkoqKlmpqsjY25hobAhYXBg4PEgoLFgoLFhYXDjIy+jIy+i4vAkpK1nZ2moaGhoaGhoaGh - oqKio6OjoqKlnZ2qlpayk5O1kZG3jY27ioq8ioq7i4u8i4u8j4+3k5OwmJipnp6joKCgoKCgoKCgoKCg - oKCgoqKioaGmmpqsj4+6jY29iYnBhITEg4PDgoLEgIDGioq5k5Oyl5evnZ2noqKioaGhoKCgoaGgoaGj - mZmujY28jY28iIjChITFg4PGhYXEiYm7i4u8ioq+kJC4mJiun5+noqKioaGhoaGhoaGhoqKgoaGinZ2o - l5eviYm+hobChYXChoa/ioq8jIy9kJC4kZG5lpa0n5+qpaWlpaWlpaWlpKSko6Oko6Oko6Oko6OkpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqako6OnlZW1hobEg4PHg4PGgoLFgYHEgIDDf3/Fh4e8 - iIi9hYXDhobDhYXDhITFi4u9mJitoaGhn5+jk5Owh4e/hYXBhobBh4e+iIi5hoa3hYW3hYW3iIi4ioq5 - ioq7ioq7kJC0l5eroKCjoKCkmJiukZG1jo61jY22jIy3jY2xi4uvhoa3hYW9g4PEg4PFgoLGhobEjY29 - j4+5nZ2qpKSjnp6pj4+5hITFhYXEhYXFi4u5j4+vi4uyhoa6iYm7iYm6iYm6iYm5ioq6jo65lpayoqKl - pKSjoaGmmpqslJSzk5O0k5Oyi4u2hIS+gIDCgIDCgYHDgoLEgoLFgoLFg4PHiYnAmJiwo6Ojo6OhnZ2l - jo6zhYW9h4e5iIi5goLBgIDCf3/Bf3/BgIDCgYHCgoLCiIi9kJC1lJSymJivoKCopaWlpaWlpaWloaGp - mJivkZGzioq7g4PCgYHEgIDCgIDDgoLCiIi8jIy8jIy9jIy9kJC6mJiynZ2spaWloaGonp6qnJyolZWu - iIi+iIi7ioq5g4O9fn7CgIDBgYHDg4PFhITFhYXDhYXDioq9mJiuoqKlo6OkpKSlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWmpqanpqanpqanpaWlpaWmpqanpqanpqanpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6Ok - paWmpqanpqanpqansA+ioqKioqKioqKjo6OkpKWlpaampqempqempqampqWlpaWkpKWjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKWkpKWkpKWkpKWkpKWkpKSenqaTk7KIiL+EhMWE - hMWEhMWCgsWCgsWBgcaEhMSKiryQkLWTk6+dnaOgoJ+goKCgoKChoaGhoaGhoaCenqWVlbGKir+EhMWE - hMWEhMWFhcWEhMeGhsaNjb+UlLWenqeioqGioqGhoaGhoaGhoaGenp6enpybm6GWlqyPj7iKisCKir6K - ir6Li7uLi7qKiryNjbuWlrKfn6ijo6Sjo6Ojo6OioqKioqKioqOkpKOfn6iSkrWGhsKGhsGDg8SCgsWC - gsWBgcaDg8WLi76Li76Pj7ucnK6kpKKioqChoaGhoaGhoaGjo6GioqSenquYmLCSkreOjruKiruJibuK - iruKiryKir6QkLeUlLCZmaqfn6OhoaGgoKCgoKCgoKCgoJ+enqKamqqUlLCNjbmHh8CDg8SCgsWCgsSB - gcWHh76Li7mLi7mRkbOdnaeioqKioqKioqGgoKGcnKaVlbCLi76Hh8OEhMaDg8eGhsOJibyKiruJibyQ - kLeYmK6enqaioqOioqOioqKhoaGhoaGfn6KcnKaWlq+Jib2FhcKEhMOHh8CKiryLi7uNjb2OjruNjb2R - kbmdna2mpqSlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWm - pqSkpKaamq+MjL+Dg8eBgcmBgcmAgMeAgMWGhruFhbyBgcKBgcWDg8aDg8eIiMGMjL2Xl6+ioqOhoaKZ - maqLi7uIiL2Hh72Hh7yHh7mGhriFhbaGhreHh7eIiLmJibmQkLOXl6uZmamgoKGfn6SVlbGQkLiQkLeN - jbaQkLKOjrKIiLeDg72BgcKCgsSBgcaFhcOLi7uOjriQkLmdnaulpaSenqqSkrWMjLuNjbqOjruRkbKN - jbOHh7eHh7eKirqFhcKEhMKDg8KCgsSFhcKPj7efn6mkpKSgoKeYmK+Tk7STk7aNjbuGhsCCgsOAgMKA - gMGBgcOCgsWCgsWDg8WDg8aGhsKRkbeenqmjo6SioqGbm6iPj7OGhryDg75/f8F/f8F/f8GAgMGBgcKE - hMGJibyNjbiPj7WQkLaSkrWYmK6jo6WlpaWmpqSioqeXl7KLi72Dg8SBgcWAgMV/f8SAgMCFhbqJibmG - hsKGhsOFhcWHh8OQkLqcnK6jo6elpaakpKajo6Sfn6WVla2SkrCHh7yAgMJ/f8F/f8GAgMGCgsOEhMSF - hcSDg8aGhsKUlLOhoaSjo6OkpKSlpaSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqempqempqalpaWl - paampqempqempqalpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SlpaampqempqewD6SkpKKioqKioqKioqKi - o6SkpKampqamp6amp6amp6ampqWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKSkpaSkpaSkpaSkpaOjppubrJCQt4aGwoODxoSExYODxYODxYKCxoODw4qKvJGRtZaWr5ycp5+f - oaCgoKCgoKCgoKCgoKCgoZycpZOTsYiIv4SExoSExoSExYWFxYSExoaGxIyMvpSUtpmZsaOjpaOjoqKi - oaKioaGhoaGhoaCgoKGhnJiYpY6Os4yMuYyMuoeHv4eHv4aGwYaGwIyMuJeXrp+fpqSkpKSkpKOjpKOj - pKOjo6KioqKioqOjoZubq4+Pu4iIw4WFxIODxoODxoKCx4SExYmJv4mJvZCQuJKStp6erKamo6Kio6Gh - oaGhoaGhoaCgop2dppeXrJGRtI+Pt4qKu4mJu4mJuomJu4mJvY+Pt5KStZiYrp6epqGhoqGhoaGhoaCg - oKGhn56eopiYqZOTr42NtYWFvYCAwoGBw4KCw4ODwoeHvYuLuYmJu4mJupOTr6CgoqKioqKioqOjoJ2d - ppOTr42Nt4mJvoiIwIiIv4iIv4mJvYqKuomJvI6OtZOTsJqarKCgpaOjoqKio6Kio6KioqOjn52dpJKS - soiIvoODw4SEw4aGv4qKu4yMu4yMvI2NvIyMvYmJwI+PuZ2dq6ampKWlpaWlpaWlpaWlpaOjpaOjpKOj - pKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaKip5mZsY+PvIyMv4yMvIyMu4eHvoWF - voGBwYCAw4GBxIODxYiIwIyMvIqKvpSUs6CgpaOjop+fpZWVr46OtoyMt46OtIuLtIaGuIWFtoaGtoWF - uYmJt4+Ps5GRsJWVrZSUsJqaqJ6epZmZq5KSs5GRtJCQso6OtImJuYSEvoKCwoGBwoCAxYaGwYuLvY2N - uo2Nuo6Oup2drKWlpaKip5qarZaWspWVspWVsY6OtoiIuoeHuIaGt4SEwIGBxYKCxoGByIODxIiIvYyM - uZaWr6KipaSkpJ6eqZeXsZKStpCQuYWFw4GBxYCAwoCAwYGBw4ODxYSExoWFxYWFxYWFxYmJwJWVs6Gh - p6Sko6OjoZqaqYmJvH9/xH9/wn5+wn5+wn9/woODv4eHu4aGv4eHv4eHwIaGwYuLvZaWsKKipKWlpKam - pKKip5aWs4mJwYeHwoaGwIWFvoSEvYWFuoaGtoODvoKCw4KCx4SExoyMvJeXsZycrJ6eqqOjpqenpKWl - pp+fqZeXrouLu4KCw4GBxICAwX9/wX9/wYCAwYKCwoSExYSExYqKvpWVsp6ep6Kio6Ojo6OjpKSkpKWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpqamp6amp6amp6ampqWlpqamp6amp6ampqWlpaWlpaWlpaWlpaSk - paSkpaSkpKSkpaWlpqamp7APpaWlpKSjoqKjoqKioqKioqKjpKSlpqampqanpqanpqanpaWmpaWlpKSk - o6Oko6Oko6Oko6Oko6Oko6Ojo6Ojo6Oko6Oko6Oko6Oko6OkpKSlpKSlpKSlo6OmnZ2sl5ezj4+6h4fC - g4PFhITFgoLGgoLGhYXDi4u7kZGzl5eunZ2noaGioKCgoKCgoKCgoKCgn5+hmpqnk5Oyh4e+goLFg4PF - hITFhITFhITGhobEjIy9k5O0mZmvoaGqpaWmpKSkoqKjoqKhoaGhoaGhoaGhn5+hlpapjY2yiYm3hYW+ - g4PDgoLDg4PDiIi+kZGynJymo6Ogo6Oio6Oko6Oko6Oko6OkoqKjo6OioKCklZWyiYnAhYXEg4PGhITG - hITHhobFiorAjY27jo63kpKylZWxnp6qpaWkpKSlo6OjoaGhoaGgoKCimJiqj4+0jY23i4u5iYm6iYm6 - iYm6ioq5jo62k5Oyl5etm5uqoKClo6OhoaGhoaGhoKCgoKCempqmkZGxjY22hoa/gYHEgYHDg4PDg4PE - hITDh4e+ioq7i4u3kJCxmpqmoqKeoaGhoqKio6Ohm5upkZGzjY23jY22ioq5ioq6i4u6ioq8i4u8j4+3 - lJSvkZGxmZmroaGjoqKioqKjoqKjoqKjoaGim5upj4+3hYXAh4e/h4e+iYm6ioq9iYnCiYnBiIjCiorA - j4+7mZmvoqKlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpKSkpaWl - paWlpaWlpaWlpqako6OnoKCrnJytmJiwkJC4iIi+gYHEgIDCf3/DgoLEiIjAjIy8ioq+i4u9k5O0nZ2o - o6Oio6Ojn5+mmpqomJiqk5Oui4u1hoa4hYW2hYW4iIi2jo6yk5OxkpKxkZGykJC0k5Owm5unnZ2kl5er - kpKxjo6zioq3hYW+gYHDgIDDgIDChIS/h4e/iIjAiIjBhobBhobBkpK1oKCqpaWkn5+pmJixl5exlpav - kJCzi4u3h4e6goK+f3/CgYHEgYHFg4PEiYm9jIy5i4u6j4+0np6mpaWhn5+plZWzkpK1k5O0h4fCgYHG - gIDCgIDBgYHDg4PFhYXGhYXHhYXHhITHhobEkZG3n5+oo6OkpaWhn5+lkJC0goLDgoLAgoK/g4O+g4O8 - g4O6hIS9gYHDgoLFgoLGgYHIhYXDkpK0n5+lo6OjpqakoqKolpazjo69kJC6kJC3i4u4iYm4h4e5goK9 - gIDCf3/EhITBioq9kJC3lpaxlpazl5eyoaGop6ejoqKplpa2i4vAgoLIgYHGgoLEgIDCf3/Bf3/Bf3/B - gIDCgYHGiIjAkpK0mJiwmpquoaGloqKioqKjo6OkpKSlpKSlpKSlpaWlpaWlpaWlpaWlpaWlpqampqan - pqanpqanpaWmpaWmpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWlpaWlpaWlpqamsA+lpaWlpaWlpaWj - o6OioqKioqKjo6OkpKSlpaampqempqempqelpaalpaWkpKSjo6Sjo6Sjo6Sjo6SioqKioqKjo6Kjo6Oj - o6Sjo6Sjo6Sjo6SkpKWlpaSioqeWlrSQkLuKisGFhcWDg8WDg8WFhcOFhcOKir2OjriTk7Cbm6ehoaGh - oaGhoaGgoKCgoKChoZ+fn6GUlK2Hh7+CgsWCgsSDg8SDg8SCgsSEhMSKir+QkLmVlbOcnKujo6alpaWl - paWkpKWioqOioqKhoaGgoKGcnKaUlK2Pj7KIiLiBgcODg8KEhMGJibqQkLOTk66YmKqenqOioqKjo6Oj - o6Sjo6Sjo6Sjo6Sjo6KamqqMjLuDg8WCgsWCgsWDg8WEhMWKisCNjbyNjbySkrWRkbOZmaqioqWlpaWk - pKWkpKWjo6OhoaKenqOUlK6MjLmMjLiJibuJibqJibqJibuKiriQkLGUlK+cnKienqagoKSioqKioqKh - oaGhoaGhoZ6ZmaiNjbaFhb6CgsWDg8SDg8SDg8WDg8WDg8WCgsaGhsCNjbWXl6mfn6GgoKCgoKChoaGe - nqWYmK2UlLKSkrKPj7OLi7mLi7uMjLyOjr2RkbmVlbOUlLOTk7KcnKWjo5+ioqKioqKioqOjo6KdnamV - lbGQkLaMjLmLi7qLi7qKiryGhsKDg8eEhMeGhsWPj7ybm66jo6SkpKOjo6SkpKWlpaWlpaWlpaWlpaWl - paWkpKSjo6Sjo6SkpKWlpaWlpaWlpaWlpaWjo6Sjo6WlpaWlpaWlpaWlpaWmpqSnp6OgoKmTk7aHh8KC - gsaBgcSAgMGBgcGGhr+Li7qLi7yMjLuSkrSZmaygoKaioqKioqOjo6Kjo6CcnKaQkLOHh7uIiLmGhriH - h7aMjK+Rka6SkrOSkrKSkrKSkrCTk66YmKqbm6eWlqyPj7SJibmJibmGhr2CgsGCgr+Cgr6Hh7qDg8GB - gceCgsaCgsaEhMSNjbmamqylpaShoaiYmLCZma+YmK+Wlq+OjreEhMF/f8N/f8GAgMOCgsKIiL2Li7qK - iruKiruLi7mXl6qioqGcnKuTk7eVlbSSkrWGhsOBgcWAgMKAgMGAgMKCgsSEhMWFhcaFhceEhMiHh8ST - k7WgoKekpKOkpKSioqSZmauNjbeOjrSLi7WIiLWGhreCgrt/f8OBgcKCgsOCgsWDg8SHh8CNjbiZmayh - oaSkpKOhoaicnK2ZmbGXl7OTk7aNjbqKiryFhb9/f8OBgcOCgsGHh7yKiruJib6IiMGIiMKRkbigoKmn - p6Kfn6uPj7yEhMiGhsSGhsOEhMKAgMF/f8F/f8F/f8GAgMSDg8WMjLuUlLGUlLOUlLSfn6ajo6KioqOj - o6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqelpaWmpqampqampqempqalpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWwD6WlpaWlpaWlpaSkpaOjo6KioqKioqOjpKSkpaampqamp6amp6am - p6WlpaWlpaSkpaOjpKOjpKOjpKKioqKioqKioqKio6OjpKOjpKOjpKOjpKOjpKOjpJ2drI+Pu4qKwYWF - xYSEx4SExoWFwouLuoyMu4uLvImJvpCQtp2dp6GhoKGhoaGhoaGhoaGhoaGhn5+fopKSsIaGv4ODxIOD - xIODxIODxIKCwomJvIuLvIqKv5CQuZycqqGhpaWlpaWlpaWlpaSkpKKio6Kiop6eo5iYqZKSsYiIvIGB - xIODwYWFwYiIvY6OtpCQtI+PtZCQs5eXq5+foqKioaOjo6OjpKOjpKOjpKGhpZWVsYiIwYKCx4ODxYKC - xYODxIqKvo2NvIyMvY2NvI2NvJKStZ2dpaKioKOjpKSkpaSkpaSkpZ+fp5iYrJGRs4yMuoqKvIqKu4mJ - u4mJu4mJuYiIuoqKuJeXqJubpp+foqKioKKioqKioqKioqGhoaGhoJmZqYqKuoCAxYGBw4GBwoKCw4KC - xYKCxYKCxYKCxYODxYyMt5ubpaKinaCgoKCgoKGhn5mZq5OTspOTs5GRtomJvYqKvYqKvYqKv5CQupWV - tJSUtZSUtJqaraCgpKGhoKGhoaKioqKioqOjoZqarJCQuIyMvIyMuouLuYuLvIWFxIODxoWFxYeHw5CQ - u5ubrqSkpqWlo6OjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKSkpKWlpaWlpaWlpaWl - paSkpKSkpKWlpaWlpaWlpaWlpJ6eqpGRuIWFxIODxoSExYKCw4CAwYaGvIuLuYmJu4qKu5GRtZaWr56e - pqKioqGhpKKio6OjopycqY+PuImJv4qKu4mJuYiIuIyMro2Nq46Or5CQspCQs5GRs5OTsJWVrJeXq5WV - rZGRs4mJvIqKvImJuoqKuYmJt4aGtoaGuIGBwoCAw4GBxIKCxYWFw4yMvJWVspqaqKGho6OjpZ6eqJ6e - qZubro6OuoSExYGBxoCAwn9/wYCAwIiIuoqKuYiIvIiIvoiIvoeHv5KSsZ+fop+fpZmZrpiYr5OTtIeH - woGBxYCAw4CAwYCAwYGBw4ODxYSExYWFxoSEyIeHxZWVtqCgpqOjo6OjpKSko6OjpJycqpubqZOTrYqK - tYKCvn5+w39/wYCAwYGBw4GBxIiIvY+Pto6OtpSUsKCgpKOjoqOjo6WlpKSkpp2drI+PvIyMv4eHw4GB - xoGBw4KCwYmJuYSEwYCAx4GBxoKCxoSEw5GRt5+fqKamop+frJGRuY6OvY6OvY6OvImJv4KCwn9/wX9/ - wYCAwoKCxImJvYyMuYmJvIuLvJOTtZ+fp6Sko6OjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWl - paWlpaampqamp6amp6amp6WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpbAPpaWlpaWl - paWlpaWlpaWlo6OkoqKioqKioqKjpKSkpqampqanpqanpqanpaWmpaWlpKSkoqKioqKioqKioqKioqKi - oqKioqKio6Oko6Oko6OkpKSjoKCnlZWziIjBhITGhITGg4PGhobBiYm6iYm8i4u8i4u8jIy7kJC3mZms - oqKgoaGhoaGhoaGhoaGhoaGgnp6ikpKwi4u4hYXBgoLFg4PFhITDiYm6ioq7i4u7ioq9kZG3n5+oo6Ok - o6OkpKSlpaWlpaWlpaWkoaGjmpqsk5OxiYm9goLEg4PChobDi4u9hYXDg4PGgoLGg4PDjIy5mJiqoKCi - oaGgoaGhoqKjo6Oko6OkoaGllpayiYnBgoLGgoLEgYHCh4e6ioq4jIy5jY27jY28kZG3mJiwoKCloqKg - oaGhoqKkpKSlpaWknJytkpK2jIy6iYm8iYm9iYm9iYm9iYm7iIi6ioq4kZGwmJimnZ2hoKCgoaGhoaGh - oqKioqKio6Ohnp6lkZGyhobAgoLEgYHCgoLEgYHEgYHEgoLEgoLFg4PEj4+1l5etnZ2koaGfoKCgoKCg - oaGflZWskZGzkpK0j4+4ioq9hITEg4PFg4PHh4fDkJC6lZW0mZmvoKCnoqKjoqKhoaGhoaGhoqKio6Oh - nZ2olpawkJC2jY25iYm5hYXDhITGhITGh4fDjo67lJS0nJyuo6OnpqakpKSlo6Oko6Oko6OkpKSlpaWl - paWlpaWlpaWlpaWlpKSkoqKjoqKjpKSkpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6OjmJiuioq/goLI - hITFhITFiIi7h4e4h4e5iIi5iYm6iYm7ioq7ioq9j4+4lpavnJyooqKjo6OimJivjY27ioq+i4u8ioq6 - jo6wjY2tjY2sjo6ujo60ioq8ioq7iYm8j4+1l5ermpqmmJiri4u6ioq7ioq7iYm6iIi4hYW4f3/BgIDC - gYHCgIDDhITAi4u6i4u9kpK2mJiunp6ko6Oho6Onm5uuj4+7hobEgoLGgoLEgIDDf3/AhYW4iIi4iIi7 - hoa/hYXDhYXDhITEkZG2np6loaGfm5uklZWskZGxjIy4hIS/gYHCgYHBgIDBgYHCgoLEg4PFhITFhITG - hobGjo69mpqvoaGlo6OjpKSkoqKmmpquk5OzjIy4hIS+gIDCgIDBf3/BgIDBgIDDh4e7jIy1jo60lpat - mJiqn5+ioqKho6OioaGmm5uulZW1j4+8h4fFhITHg4PFg4PCh4e4goLAgYHDgoLEgYHFhITDk5OzmZms - oaGmpaWioKCplZW1kJC6kJC7j4+9h4fCgYHFgIDCf3/BgIDCiYm6hoa/goLFg4PFhYXEkpK2n5+npKSj - o6Oko6Oko6OkoqKjo6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpaWmpaWlpKSl - o6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlsA+lpaWlpaWlpaWlpaWlpaWlpaWjo6SioqKioqKioqOkpKSl - paWmpqempqempqempqalpaWlpaWjo6SioqKioqKioqKioqKioqKioqKjo6Sjo6Sjo6Obm6uMjLuDg8aD - g8aCgseHh8KKiryJibqJibmKirqMjLuRkbaYmK6enqaioqKhoaGhoaGhoaGioqChoaGZmaqMjLeFhcGD - g8SCgsWEhMGJibqKiruLi7qJibyPj7WcnKmioqOjo6Sjo6Sjo6SkpKWlpaWlpaWkpKaWlrGIiL+Dg8WC - gsSFhcGLi7yFhcODg8WDg8WCgseGhsKSkrKfn6OhoaGhoaGhoaGhoaGioqKhoaWcnKuWlrOOjruKisCJ - ib2Hh7qKirmLi7mLi7mMjLiSkrWYmLCenqmioqWjo6OhoaGhoaGioqOioqiWlrSOjruLi7yHh76EhMKF - hcKDg8OGhr+NjbeTk6+ZmamdnaGdnZ+enp+goKChoaGhoaGioqKenqWUlLOIiMCDg8SDg8SBgcOBgcOB - gcSBgcSBgcWEhMKPj7SXl6ycnKWgoKGhoaCgoKCgoKCenqKYmKqRkbGNjbaJibyDg8SDg8WEhMWEhMWD - g8aIiMKWlrSfn6ikpKWkpKSjo6OioqGhoaGioqGdnaiWlrCRkbaOjrmLi7yDg8KDg8SDg8aGhsOOjrqU - lLSTk7Samq6jo6empqSlpaWlpaWjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWkpKWioqOioqKjo6Sl - paWlpaWlpaWlpaWkpKWjo6Sjo6SioqScnKqRkbiJicCKir6Kir6JibuIiLmHh7mIiLiIiLuDg8ODg8OD - g8WHh8GRkbabm6qhoaOioqKbm6qYmK6ZmayXl66Pj7OQkLGOjrCNjayLi7GIiLqJibqLi72Li72Kir6S - krOdnaOfn6GSkrKLi7qKiryLi7qIiLyBgcJ/f8GBgcOAgMWEhMCJibqJibqKirqLi72Pj7mamqyjo6Cf - n6SUlLWHh8SFhceDg8WFhb+Hh7mFhbiGhreHh7qGhsCFhcOEhMOEhMOJib+VlbKenqijo6GcnKWQkLGR - kbCOjraFhb6BgcKBgcKAgMGBgcKCgsSDg8WDg8aGhsSMjL2Njb6QkLucnK+ioqWjo6Kioqaamq+OjryF - hcOCgsSBgcKAgMGAgMF/f8KDg7uGhrmLi7eTk6+amqihoaGhoaChoaCjo6Cfn6aTk7KPj7qMjL2Li7+K - ir6JibuIiLuBgcCAgMKBgcKAgMWGhr+SkrKVlbSVlbOamq6hoaaioqSamq6Pj7yPj7yIiMSFhciEhMaB - gcWBgcKJibiFhcCEhMWEhMWDg8aEhMaMjL6amrCkpKelpaSjo6Sjo6Sjo6SioqOjo6Sjo6Sjo6Sjo6Sl - paWlpaWlpaWlpaWlpaWlpaWmpqempqempqelpaalpaWlpaWjo6SlpaWlpaWlpaWlpaWlpaWjo6SwD6Wl - paWlpaSkpKSkpKWlpaWlpaWlpaOjo6KioqKioqOjo6SkpKWlpqamp6amp6amp6WlpqSkpKOjpKOjo6Ki - oqKioqKioqKioqKioqKio6Kio6Kio52dqJKSs4iIwImJv4mJv4qKvYqKu4qKu4mJu4mJuY+PtJiYrZ+f - pqKioqKioqKioqGhoaGhoKCgopiYrI2NuYWFxIKCxoGBxoSEwYiIu4qKuIuLuouLu42NuJiYq6KioKKi - oaKio6OjpKOjpKOjpKWlpKWlpaOjp5qar5GRt4mJvImJvomJv4WFwoODxYODxYKCxoSExoyMvJmZq6Gh - oaGhoKGhoaGhoaGhoKCgopubq5WVspKStJKStI+PtomJuoqKuoyMvIyMu42NuZCQtJaWrJ2dp6KipaOj - pKOjpKOjo6KioaGhoaCgppaWtI2NvYiIwYWFw4WFw4ODxIeHvomJu4qKu4+PtJqaqKCgoZ+fn56enp+f - n6CgoaGhoaKioJmZrIuLvoODx4ODxoODxYKCxYKCxIKCxYKCx4WFwY6Os5eXq52dpaCgoqGhoaGhoaCg - oZ2do5mZqZKSsI2NtYiIvIODxIODxYSExoSExoKCyIeHwpKStpqarqOjpaSkpaSkpaSkpKOjoqGhop2d - o5iYq5GRtY2NuoqKvoWFxIKCxIGBxYWFwY2NupOTtpWVs5mZr6Cgp6OjpKWlpKWlpaWlpaSkpaOjpKOj - pKOjpKWlpKWlpaWlpaWlpaOjpKOjpKOjpKOjo6KioqSkpKWlpaWlpaWlpaWlpaSkpaOjpKKipKOjpJqa - ro6OuoqKvYqKu4mJuoiIuYeHt4WFuYODwYKCxIKCxIGBxomJvZeXrqGhpKGho6KioqGho56eppmZq5OT - sJGRspCQsZCQsIuLs4aGuIaGuYmJuouLvYuLvo+PupOTtZiYrZqappGRsoqKuomJu4aGv4KCxICAw39/ - wn9/xIWFv4mJuomJuYmJuYmJuY6Ot5CQt5aWsJ+fpaGho5eXrYqKvomJv4qKvImJuomJuIeHuIaGuYSE - voWFwoSExYWFxIqKvpWVs56eqaCgpaKiop6eppGRs42NtoyMt4SEv4CAw4CAwn9/wYCAwYGBw4GBxYWF - womJvoiIwIiIwYeHxZKSuaCgqaSkoqGhpJ6eppaWrouLuYODw4CAxYCAw39/wYODu4WFuImJs4+PsJSU - rpWVrZiYqpubp5+fo6KioJ+fpJmZrJmZrJiYrZSUso+PtomJu4ODwn9/wX9/wX9/woGBw4SEwomJv4mJ - wYeHw5CQuJ6eqaWlop+fqJCQuIaGxYKCyIODyIKCyIODw4iIuYSEvYKCw4ODxYSExoWFxYuLwJGRuZmZ - saOjqKampKSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKSkpKWlpaWlpaWlpaWlpaWlpqWlpqWlpqWl - paWlpaWlpaSkpaOjpKOjpKSkpKSkpKSkpKOjpLAPpaWlpaWlpKSko6OkpKSkpaWlpaWlpKSlo6OkoqKi - oqKioqKjpKSkpaWmpaWmpaWmpKSlo6Oko6Oko6Oko6Ojo6OioqKioqKioqKioqKio6OhoKCkm5urk5Oz - jIy9jIy9jIy9i4u8ioq8i4u8i4u5kJCzkpKvl5epn5+kpKSioqKioqKioqKio6Ogn5+ik5OviIi+h4e/ - h4e+h4e+ioq7ioq6hYXBhobAhITDjIy5m5uno6OeoaGhoaGio6Oko6Oko6Oko6OkoqKmnZ2tmJizkpK5 - jo66ioq9hYXDgoLGg4PFg4PGg4PFjIy7mZmtoaGloqKioaGhoaGhoaGhoqKgn5+jkpKykZGzkpKykJC0 - jIy4ioq6ioq7i4u7jo66kpK0lpavl5ernJyjoqKjo6Oko6Oko6Oko6OjoKCinJymkZG2iYnBhobFhITG - hITFiIjAjIy7jIy6iYm+jIy6mpqooaGhoaGgn5+fnp6en5+eoKChnp6ll5evjY26iYm+hobBg4PFg4PF - goLGgoLHhYXEjIy6lZWtmZmln5+goaGgoaGhoaGhoaGhnJylkZGxjIy2h4e8g4PEg4PIhITGhITGg4PH - iYnBk5O2mpqtn5+npKSkpKSlpKSlpKSlpKSkoqKklpatkJCzjY24iYm+hITDg4PHg4PGh4fBjY24kZGy - kpKzlJSyoKCmpKSko6Oko6OkpKSkpaWlpaWlpKSlo6Oko6Oko6OkpKSkpaWlpaWlpKSlo6Oko6Oko6Ok - o6OjoqKjo6OlpaWlpaWlpaWlpaWlpKSlo6OkpKSjmpqtkJC5j4+6i4u7iYm6iIi4hIS6gYG/gYHEgoLE - goLDgIDGiYm9mZmro6OhoqKjoqKipKSfm5uqkZG1kJC1kZGykZGxjY20iIi5hoa5h4e4iYm6i4u8i4u+ - kJC4lpaxmZmsmZmrlZWti4u5iIi8hoa+hYXAhoa9hIS8hIS7h4e5iYm4iYm5iYm5iYm5jIy3jY25kZG3 - m5uso6Ohn5+llZWukpKzjo64ioq7iIi6h4e6g4O+g4PAhITDhobDi4u+k5O2nJyrn5+ooqKkpKShoKCk - mJiujY26hYXAgoLEgYHDgIDBf3/Bf3/Bf3/DhIS/h4e9h4e/hITDhITEjIy9lpa0o6OppqakoKCnnJyo - mJirjo60iYm7h4e9hIS9hIS7hYW2hoa3ioq0i4u3ioq9ioq8iIi/kpK0n5+mo6OgoaGhoKCknZ2nmZmq - k5Ozi4u9g4PEf3/Gfn7Df3/BgIDBgYHBgYHDgoLGg4PHhobDjo67nZ2rpqahoaGmlpayjY28jIy9jY28 - jIy8iIi8hIS9gIDCgYHEg4PFg4PHh4fEk5O2mpqwoaGppaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Ok - o6Oko6Oko6OkpaWlpqampqampqampaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlpKSlo6Oko6Oko6Oko6Ok - sA+lpaWlpaWlpaSjo6Sjo6SkpKWlpaWlpaWlpaWjo6SioqKioqKioqSjo6SkpKWkpKWkpKWjo6Sjo6Sj - o6Sjo6Sjo6SioqOioqKioqKioqKjo6CcnKmRkbWNjbuLi72KiryKiryLi7yLi72MjLuRkbSVla+Skq+X - l6aenqCioqGioqKioqKioqKhoaKcnKeTk6+MjLaLi7iJibmKiriJibuGhsGCgsaCgsaEhMKOjrebm6ij - o5+hoaGhoaGhoaKioqOjo6Sjo6Ofn6iUlLWQkLqNjb2Kir+FhcOCgsaDg8WDg8aFhcWNjbqXl66fn6aj - o6KioqOhoaKhoaGhoaGioqChoaGUlK6SkrCQkLOLi7iJibyKiruJibuNjbiRkbOVla+YmK2bm6menqKg - oKCioqKjo6Sjo6SioqWcnKqTk7KIiL6FhcSFhcaGhsSIiMGJicCIiMGHh8KJicCSkrSenqShoaGhoaGh - oaGfn5+fn52enp+WlquSkrOPj7aLi7yGhsKDg8WDg8WGhsKIiMGJib+OjrmVla+Zmaefn6ChoaChoaGh - oaGgoKKamqiMjLaHh72CgsOCgsaEhMaEhMaEhMaFhcWPj7qXl7Gamq2hoaajo6SkpKWkpKWkpKWkpKSi - oqaYmLCOjriIiL6EhMODg8aFhcWIiMGLi7yQkLaQkLSPj7aWlrGjo6Kjo6Sjo6Sjo6Sjo6SkpKWlpaWl - paWkpKSjo6Sjo6Sjo6SkpKWkpKWkpKWjo6Sjo6Sjo6Sjo6SioqOioqOjo6SlpaWlpaWlpaWlpaWkpKSi - oqOXl6+OjrmOjrqLi7yLi7uGhryBgcB/f8KAgMKCgsOBgcSGhsGQkLacnKijo5+ioqCioqKkpKCamquU - lLKVlbCSkrKPj7WIiLmHh7qHh7iGhriJibqLi7uLi7+Tk7Wbm6ydnamenqaenqWQkLSLi7iMjLaLi7eI - iLmHh7eGhrWGhraIiLiJibmKirmLi7mKirqMjLqRkbWbm6ukpKGjo6KcnKiSkrKLi7qJibyIiL2Fhb+C - gsKBgcKEhMCKir2Pj7qSkriVlbSTk7acnK6ioqWioqKenqaQkLeFhcGEhMGDg8KAgMSAgMJ/f8KCgr6G - hruGhr6EhMOFhcCLi7qTk7OZma6hoailpaWhoamWlrKSkrWOjreMjLeLi7eIiLiGhreFhbeHh7WFhbmD - g8GDg8aDg8aIiMCTk7SgoKejo6GhoaGgoKGWlq2RkbWOjrqJicCGhsKGhr+IiLiAgMB/f8GBgcGBgcOC - gsOGhsCOjrqTk7WenqqlpaKioqWenqmZma6VlbKVlbKQkLWGhr9/f8SAgMGBgcOCgsWEhMWMjL2Xl7Ka - mq+ioqimpqSmpqSlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaampqempqempqelpaalpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaSjo6Sjo6Sjo6SwD6WlpaWlpaWlpaWlpaSkpKOjpKSkpaWlpaWl - paWlpaOjpKKioqKio6OjpKSkpaSkpaSkpaSkpaOjpKOjpKOjpKOjpKOjpKKio6KioqKioqOjoZqaq4+P - uIuLvIqKvYmJvImJu4qKu4qKvIuLu5GRtJSUsJWVr5ycpKCgnaCgoKKioqKioqOjoZ6epZeXrpOTs5CQ - tIqKuYqKuoqKvIaGwoODx4SExYaGw46OuJSUsJ2dpqKioKGhoaGhoaGhoaKioqOjoqOjo52dqpCQuIqK - vouLvIaGwoGBx4ODxYODxYWFxImJv5SUs5qaq5ycqKKioqKio6Kio6GhoqGhoaGhoZ6epJiYqpKSsouL - uYiIu4mJuomJuouLt5CQtZSUr5WVr5eXrJ+fpaOjop+fn6CgoKKio6SkpKGhp5aWsoeHwYODxIODxIWF - woiIwIqKv4SExYODxoKCx4uLvZqaq6SkoaGhoqGhoaGhoaGhoaCgn5uboY6OsYyMuIqKvYWFxIKCxoOD - xYODxYmJv4qKv4qKv46OuZeXrpycqJ+foKCgn6GhoaKioaCgopiYqouLuoKCxIGBxoKCxIODxYSExoWF - xYyMvpKSt5eXsZycq6KipaOjpKOjpKSkpaWlpaOjpp6eq5eXso6Ou4eHwYSExYSExoWFxIqKvomJv4mJ - voqKv4+PupmZrqKio6Kio6OjpKOjpKOjpKOjpKSkpaWlpaWlpaSkpKOjpKOjpKOjpKKio6OjpKOjpKOj - pKOjpKOjpKOjpKKioqKioqOjpKSkpaSkpaSkpaOjpKKio5mZrI6OuYqKvouLvYqKvoODwn9/woCAwYCA - wYKCwoWFwpGRt5iYr5ycrJ+fp5+fpaGho6KioZ+fppubqpiYrZCQtoqKvIiIuoiIuYaGuIWFt4iIuYuL - u4yMvJaWspycrJ6eqqGhpaGhpZeXrZSUr5SUrY+PsYiIuIeHuIWFtoaGtoiIuIuLuY2NuY2Nuo6OuZGR - tZaWr52dqKKio6Kio5qarI6OuoqKvYuLuYqKu4WFwISEv4KCv4eHu4yMuYyMvIyMvouLwIuLwJWVt56e - q6Ojo6Kio5WVsI6OuI2Nt4iIvYODw4ODwIKCv4aGuYSEvYSEwYWFwYiIvZCQs5CQtpGRtZmZrqOjpqOj - p5eXs4+PuIyMu4qKu4mJu4iIuYaGuIaGt4aGuIGBvoGBw4WFwoqKvpaWr5ubqp+fpqGhpKOjoqCgo5SU - r42NuoyMvI2Nu4+PuZCQto2Ns4KCv39/woCAwoKCwoWFvouLtpSUsJycqqGhpaSkpKOjpKKipJmZrJOT - spKStIqKvH9/xoGBw4GBwoGBw4KCwoaGwIyMvJCQuY+Pu5WVtZ+fq6WlpaWlpaWlpaWlpaSkpKOjpKOj - pKOjpKOjpKOjpKSkpKWlpaamp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSk - pKOjpLAPpaWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpaWlpaWlpKSlo6OkoqKioqKjo6OkpKSlpKSlpKSl - pKSlo6Oko6Oko6Oko6Oko6OkoqKioaGjn5+lnJynl5etj4+3iYm9iIi+h4e+h4e9iYm8ioq9i4u7lZWx - m5unoKCioKCfnp6eoKCgoqKioaGinZ2nl5eukJC2ioq7iYm6ioq8h4fEhYXHhYXGhobFjo6+lJSzm5uo - oKCioaGhoaGhoaGhoaGhoaGhoaGioKCmmpqtkpK2jY29i4u8hobAg4PFhITEhYXDioq9i4u9jo65lpax - nZ2noaGhoqKjoqKjoqKjoqKhn5+jlparj4+zioq6iYm7iYm7iYm8ioq6kZGxkZGxkZGyk5OwmZmqn5+l - oqKioqKioKCgoKCfoqKinp6pkJC2hobEhYXEhYXDiIjAiorAhITHhYXGhYXGiYnBlJSzn5+loqKjoqKj - oaGhoaGhoqKhoKChmZmni4u1iIi6g4PDgoLGg4PFg4PFg4PEg4PGg4PGiIjAk5O0np6noaGioaGhn5+f - n5+foaGgn5+imJiqjIy4hYXCg4PEg4PDhITEhobDjIy9kpK2lZWzm5utoqKlo6Oko6Oko6Oko6OkpKSj - oKCol5ezkZG5jY28jIy9h4fCgoLGg4PFhITGg4PGg4PGh4fCkpK2np6po6OkoqKjoqKjo6Oko6Oko6Ok - o6OkpaWlpaWlpaWlpKSlo6Oko6OkoqKio6Ojo6Oko6Oko6Oko6Oko6Oko6OkoqKjoqKjo6Oko6Oko6Ok - o6OkpKSjnZ2qkpK1jY27i4u9hYXFgoLFgIDCgIDBgYHBhITAkJC1lJS1lJS3k5O5k5O5mJi0nZ2poqKi - oaGkmZmskJC2jIy7i4u9ioq7iIi5hoa3hYW2h4e4iIi7jo62kJC4lJS0mpqumpqvmpqsm5upmpqol5er - kZGwi4u1iIi4hoa2hoa2iIi4i4u6jY28jIy9kZG4kJC2kZG1l5evnp6moqKjl5evkJC2jo64jo63jIy4 - iYm6iYm4h4e2iIi3ioq6jY29jY2+jo69lZW1mpqwoKCrpaWloqKknJyolZWxkpK0jY24iYm8ioq6h4e5 - g4O8goK+hIS+h4e9ioq7iIi/iIi+hYXCj4+4n5+opaWlnZ2sl5eyjo66ioq9iYm7iYm5iIi4hYW5goK+ - gYHBg4PCiYm+k5Oym5uqmpqqmZmrnp6no6OioqKjnJyoj4+1jY26jo65j4+3jo64gYHFgYHCgYHBgYHC - hoa/jo62kpKwmJiqn5+koqKko6Olo6OkoaGmlJS1kpK1jo64h4fAgoLGgYHDgYHCgIDChoa8h4e/goLH - g4PGhYXGiorAlpa0oqKopqakpaWlpaWlpaWlpKSko6Oko6Oko6Oko6OkpaWlpaWlpqampqanpqanpqan - pqanpaWmpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6OksA+lpaWlpaWkpKWioqOioqKioqKjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6SioqKioqKioqSjo6SkpKWkpKWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sfn6afn6Wa - mqiQkLOIiL+Jib6Dg8SDg8WDg8WCgsWEhMKNjbmYmKugoKKioqChoaGgoKCenp6goKCdnaaXl66QkLeL - i7yKirqLi7yGhsOFhceGhseGhseHh8aNjb6amrChoaSioqChoaGhoaGhoaGhoaGioqCdnaWamqmamquR - kbWMjLyJibyJibuJibuJibuJibyKir2Jib+Tk7SenqiioqOioqOhoaGioqOioqOjo6KgoKSXl6uKiruJ - ibuKiryKiryKiryLi7yKirqQkLKSkq+Xl6qenqOioqGioqKioqKioqKgoKCgoKCdnaiQkLaLi7yLi76L - i7uHh7+EhMaFhcWFhcaKisGQkLqbm6ykpKGioqOioqOioqOhoaKhoaChoaGbm6eNjbWCgsGAgMSBgcSD - g8WFhcWFhcWEhMaJicCRkbeYmK6enqeioqOhoaGhoaGfn6CenqCenqKZmamTk7CMjLmJibyJibyJibuK - iruRkbWTk7WVlbSbm62hoaajo6Sjo6Sjo6Sjo6SioqSenqmYmLCUlLWOjryGhsSDg8eEhMaEhMaFhcaE - hMaJicGPj7uYmLCjo6Sjo6Sjo6SioqOioqOioqOjo6Sjo6Sjo6Slpaampqempqempqempqejo6SioqKj - o6Ojo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKOgoKeZma6SkrWLi72FhcSDg8SCgsKA - gMKCgr+NjbKSkrGOjrqMjL6Njb6Njb6SkrmgoKyjo6ShoaSWlq+Li7yMjLyKiruKiruIiLmGhreGhreH - h7qBgcOCgsWCgsaHh8GNjbyOjrqVlbKdnaiamquSkrOMjLiJibmJibmGhraGhrWJibaLi7mJib+FhcaF - hcaFhceGhsWPj7ycnK2ioqOenqaXl62Tk7GPj7eJib2JibuJibqIiLiGhreHh7iKirqNjbyUlLaZmbGg - oKqlpaWlpaWlpaWjo6SVlbGMjLuKir6KiryIiLyFhcGCgr2Dg7+Hh7yKirqIiL6FhcKFhcKDg8SMjLub - m6ujo6KgoKWamqyUlLKOjrmLi72Li7qIiLqDg8GBgb+BgcGFhb+Li7uMjLuSkrSTk7OYmK2fn6Wjo6Ki - oqOioqOWlrCSkrKTk6+NjbeCgsWCgsOBgcKAgMKFhb6OjreTk7GTk7OTk7OSkrSWlq+enqekpKOioqWW - lrKPj7uLi76GhsGBgcSBgcOAgMGCgr6BgcGCgsSEhMaGhsSLi76Tk7eZmbChoaimpqSlpaWlpaWlpaWl - paWkpKWjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaampqempqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWwD6OjpKKioqKioqKioqKioqKioqKioqOjpKOjpKOjpKOjpKOjpKOjpKKioqKioqKioqKi - o6OjpKSkpaSkpaSkpaSkpaOjpKOjpKOjpKCgppycqZGRtoiIvoiIvoSExIODxYODxYKCx4SExI2NuZiY - q56epaGhoaGhoaGhoaGhoaGhoZ6enpycopCQsoiIvIqKu4uLvYaGxIWFxoWFxoWFyIeHx46OvpubsaKi - qKWlpaSko6GhoaGhoaGhoaGhoaKioJ6epJeXrJOTsZKSsoqKvomJwIiIvoiIvImJu4mJu4iIvpOTsp2d - qKKio6Kio6Kio6Kio6GhoaKioaCgpZiYro+PuIqKu4qKu4uLvIyMvYyMvYyMvYqKvI+PtJeXqZmZpZyc - pKKioaGhoaKioqKioqOjoZ+fopSUq4mJvIqKu4yMuoeHv4ODxYSExoaGxYqKv4yMv5CQupycraWlo6Ki - o6Kio6Kio6Kio6Ghop2do5iYqpGRsomJuoiIuYWFvoKCxYSExYWFxoqKv4uLvZSUs56epqKio6Kio6Ki - o6GhoqKioJ+fopiYp5KSr4uLuImJu4mJu4mJu4mJvIqKu4uLuomJvpOTtZ+fqKSko6OjpKOjpKOjpKOj - pKKipJ+fqJiYsI2Nu4eHxIWFxoSExoODxYWFxYWFxoqKwY+PupeXsqCgqaWlpKOjpKOjpKOjpKKio6Ki - o6OjpKOjpKWlpaamp6amp6amp6amp6amp6amp6SkpaKioqKio6OjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKSko5+fqZGRt4SEw4KCxIGBw39/xIODvIuLsImJtIuLuIuLuouLvY2NvpKSuZ2drqSk - p6ampqSko56epZOTsImJvYmJuYmJuoiIuYeHtoWFuYGBwoGBxIKCxYKCxoeHwYyMvY2NvZOTtp+fqJWV - soyMvIuLvImJu4iIuYaGtoeHtIiItYWFvIKCxIODxYSExoWFxYODx4qKwZqasKSkpKKio5ycppCQtImJ - vYqKvIqKvIqKuYqKt4SEvYGBwoODw4SEw5KStZaWtJaWtZmZsZ+fqqSkpaWlpZeXso2Nu4qKvouLvomJ - v4eHvYSEu4aGuYeHuYaGvoWFxISExYWFxYODx4qKv5mZraOjoKGho5WVso2Nu4yMvYyMvYmJvoKCwYGB - wYCAwYSEvIiIuIqKuouLvIuLvJGRtpiYraCgpaSkoqKio6Kio5ycqpSUsJCQs4+PtY2Nt4iIu4iIu4aG - u42NtZKStIyMvYeHxIaGxIWFxYqKv5aWsKGhpaOjpJqarY6Ou4aGxIODxoODxYKCxIKCv4CAwICAwYKC - xIaGxY2NvZWVtZaWtJaWtJqasKGhqKampaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSkpaWlpaWl - paamp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpbAPo6OkoqKjoqKjo6Ojo6OjoqKi - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OjoqKioqKioqKioqKjo6OkpKSlpKSlpKSlpKSlo6OkoqKlnp6p - kZG3iYm/h4fBg4PEg4PFg4PFgoLHhYXCjY25lJSwmpqonp6joaGhoaGhoaGhoaGhoaGhnZ2jlpapjo6w - jY2yj4+0jIy+hYXHhYXHhITJhYXFj4+7nJywnp6upKSnpaWlpaWlo6OjoaGhoaGhoaGhoqKgnp6kl5er - kZG0i4u8iIi+iIi/iIi9iIi8iYm8iYm7j4+0lpatnZ2koqKioqKjoqKjoqKjoqKioaGhmZmsj4+6i4u+ - i4u9ioq7i4u8jIy9jIy9jIy9i4u+j4+3l5epnZ2in5+gn5+foaGhoaGhoqKhoKCkmpqrkpKyjo60ioq5 - hYW/gYHDgYHFhITEioq+jIy9j4+6lZW0n5+rpaWko6OkoqKjoqKjo6Oin5+mmJiskpKvkpKxjY23hoa+ - goLCgoLEhITDioq/jIy9ioq+k5O0oKClo6OhoqKjoqKjo6OioaGjmpqpkZGxiYm6iIi8iIi9iIi9ioq7 - ioq7ioq7iYm8jIy4mZmro6Ojo6Oko6Oko6Oko6Oko6OkoKCmmJiujo66hobEhITGhITGg4PEgoLEhITE - ioq/j4+6l5eyn5+qpKSlpKSlpKSlo6Oko6Oko6Oko6OkoqKjo6OkpaWlpaWmpqanpqanpqanpqanpqan - pqano6OkoqKioqKio6OkpKSlpKSmpKSlpKSlpKSlo6Oko6Oko6Oko6OkpKSjn5+ok5O1jIy8ioq7iYm6 - iYm2iYmziIizhoa3iYm6iYm7i4u7kpK1m5utnp6soKCrpKSnpaWlpKSjnJynjIy2iIi6iYm6ioq4hoa7 - gIDAgIDCgYHEg4PFgoLGhobBjY26kZG2mZmwoaGmm5urk5O1kJC4kJC2j4+0j4+xiYmzg4O7gIDBgIDD - gYHEg4PFg4PHi4vAlJS3mZmwoqKnpKSkn5+lkJC0iIi+i4u8jIy7jY25hYW+gYHBf3/DgoLDiIi8jIy5 - jY27jIy/lJS4oKCqpaWkpaWlmJiyjo67ioq+iYm+iYm/iYm/iIi7h4e5hYW9hITChITFhITFgoLIioq/ - kZG3l5evoKCkoqKjlpavj4+6i4u+ioq+ioq9h4e+hYW7hIS5hoa4iIi4iYm6ioq7kJC2k5OzlZWympqs - oKCkoqKioqKjoqKklpawkJC3kZG0kJCzj4+zj4+yjo6ujo6wioq7hITGhITHhITHhITIhYXGjY27m5uq - oqKin5+mk5O1ioq/iYnAiYnAhITCgoLCgYHBf3/Cg4PBjY26lJS1i4u/iYnBh4fDjo68nZ2tpqakpaWl - paWlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6OkpKSkpaWlpaWmpqanpqanpqanpqanpqampaWlpaWlpaWl - paWlpaWlpaWlpaWlsA+kpKWkpKWkpKWkpKWjo6SioqOioqOkpKWkpKWkpKWkpKWjo6Sjo6Sjo6Sjo6Oj - o6KioqKioqKioqOjo6SkpKWkpKWkpKWjo6WcnKqRkbiKisCHh8KEhMSCgsaCgsWDg8aGhsKJib6OjrmU - lLGZmaqfn6KhoaGhoaGhoaGhoaGhoaCdnaSWlqyQkK6OjrCLi7mFhcOEhMaDg8iGhsaNjb6UlLWbm7Cd - na+lpainp6ampqalpaWjo6OhoaGhoaGhoaCdnaSUlLCKiryHh7+Hh72IiLyJibyJibyJibyKiryMjLeV - la2enqSioqChoaKioqOioqOioqOhoaKWlq+Li7yNjbqMjLyLi7uMjLyMjL2MjL6Li76Pj7mVlbGcnKag - oJ+goJ+fn5+goKChoaGjo6Cfn6SYmK2UlLKSkrCLi7iHh76Hh7+Hh8CIiL+Li7uKir6UlLSenqqjo6Wk - pKWkpKWjo6SioqOjo6GcnKqTk7SSkrOTk7CJib2Dg8WCgsSCgsSDg8SLi7uMjLyOjruZmbCjo6Sjo6Ki - oqKioqOgoKWamquUlLGRkbOOjraNjbWOjrWMjLqKiryKiruKiruLi7yOjrWcnKakpKCjo6Ojo6Sjo6Sj - o6SkpKOdnaqPj7mFhcaDg8iDg8eDg8WCgsSDg8GIiL6MjLyWlrKfn6mkpKWlpaWkpKWlpaWkpKWkpKWk - pKWkpKWkpKSioqOkpKSlpaWlpaalpaempqempqempqempqempqekpKWioqOjo6SlpaWlpaalpaalpaal - paakpKWjo6Sjo6Sjo6SkpKOgoKeVlbKQkLiQkLiQkLWNjbOJibSFhbaGhraIiLiLi7iPj7aUlLKXl6+X - l7CXl7Ojo6inp6WlpaWgoKiUlLCPj7SLi7iHh7yCgsGAgMOAgMKBgcSCgsWCgseGhsKOjrmUlLKcnKuj - o6WgoKaZma6UlLSTk7STk7KPj7SFhbt/f8F/f8KAgMGBgcKBgcWEhMORkbmcnK6fn6ugoKmkpKWenqmT - k7SPj7iPj7aLi7uHh7+BgcR+fsSBgcCHh7uJibmJibuJibuOjrmVlbWcnK6hoailpaWbm7CNjb6Hh8KI - iMCJib+Jib2JibuFhbyCgsCCgsODg8WDg8aKir2RkbWYmK+bm6yenqijo6Obm6eZmaqUlLGNjbqKiryK - irqIiLiGhraGhraGhriIiLiOjrWSkrKTk7KTk7OTk7OZmayjo6GioqKjo6OWlrGQkLeRkbWQkLSSkrGT - k62Ojq6Hh7eBgcKBgcaDg8WEhMaDg8eFhcaPj7ucnKuioqGjo6KXl7COjruKir+IiMGGhsSCgsWBgcSB - gb6Hh7iMjLmKir6Dg8eDg8eBgcmHh8OYmLKjo6WkpKWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sj - o6SkpKSlpaWlpaampqempqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWwD6WlpaWlpaWlpaWlpaWl - paSkpaKio6SkpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKKio6KioqKio6Kio6OjpKOjpKSkpKKipZiY - rYuLvoaGwoSExYODx4ODxoKCxYaGwouLvYyMuo+PtpaWrpycp6GhoaGhoaGhoaGhoaGhoZ+fo52dpZiY - rJSUroyMtoKCwoGBxoKCxoaGxI6OvZSUtpSUtpaWtaGhqqamp6amp6amp6WlpqWlpaOjo6Kiop6eo5WV - rYuLuoaGwIiIvoiIvYmJu4mJvImJvIqKu4qKu4uLuJiYqaCgoaGhoKGhoaKioqKio6Kio5+fppaWsI6O - uY2NuoiIvoeHwYiIwIeHwomJwJGRuJiYsJubrKGhpaKioKCgoKCgoJ+fn6CgoJ+fopubqJeXrpSUspCQ - t4mJvoiIwImJwIqKvoyMvIuLvIuLvJeXr6KipKWlo6SkpaSkpaSkpaOjpKSkopycqpaWspeXr5GRtoSE - w4KCxoKCxYODxIaGv4mJu42NuZOTtJ6eqqWlo6OjpKKio6OjoZ2dp5aWsZKStZOTs5KStJCQs5CQs4yM - uImJvIqKu4qKu42Nt5KSsZ2dpqKin6KioaOjo6OjpKOjpKKipJubq4+PuYaGxIeHwoiIwYSEw4GBxYOD - w4iIv4yMvZqar6OjpaSko6OjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaampaampqam - p6amp6amp6amp6WlpqOjpKOjpKSkpaWlpaWlpqWlpqWlpqWlpqSkpaOjpKOjpKSko6GhppmZr5OTtZOT - tZGRt4yMuYiIuYeHuIaGtoeHuIqKt46Oto+Pt4+PuI6OuI+Pup2drqWlpqWlp6Ghq5iYsJCQtYiIvYKC - xICAxYGBw4CAwoGBwoCAxISEw4iIwI2NupWVsZycqaSkoqGhpZmZrZSUs5OTtZCQt4iIvoGBxH9/w39/ - wYCAwoCAw4ODv4aGvZGRtJ2dq5+fqp6eq6SkpaCgqJmZrpSUs4+PuIeHwIODxYGBxYGBwYaGu4qKuImJ - uoyMu4eHwIuLvYyMvI+Pu5ubsKWlpaCgqpSUtoyMvoqKv4qKvYqKu4eHvoKCwH9/wYCAwoKCwoeHwI+P - t5aWsJubqp6ep6GhpqOjpKCgpJ+fopaWro2NuouLvIuLu4mJuYiIuIWFuIaGt4uLso+PsJGRspOTs5OT - tJKStZiYrqGhoqKioqOjopiYr5KStpOTtJOTspOTsI6OsYiIuYGBwX5+woGBwoODxYSEx4WFxo6OvJqa - sKGhqKGhpaOjoZiYroyMvYaGxIWFxYWFxYaGwIWFwIaGuIeHtoODv4CAx4ODxoKCx4aGxI6OvZmZsaKi - p6SkpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKSkpaWlpaampqamp6amp6amp6amp6Wl - pqWlpaWlpaWlpaWlpaWlpbAPpaWlpaWlpaWlpaWlpaWlpaWlpKSkpKSlpaWlpaWlpaWlpaWlpKSko6Ok - o6Oko6Oko6OkoqKjoqKioqKioaGioaGioaGjnp6mmZmtjY28hYXEgoLFhITEhYXDhYXBioq6iYm8jo63 - l5etnZ2moKCioaGhoaGhoaGhoaGhoKCinZ2mm5uol5etkZG0hoa+f3/FgYHEhYXCiYm+kZG3lZW1lZW2 - mZmypaWkpaWlpqanpqanpqanpaWmpaWloKCnlpauioq7hYXBiIi+iIi9iYm7iYm7iIi8iIi9iYm9ioq8 - kpKxn5+ioaGeoKChoaGhoaGhoqKinp6nmJivkpK1jY26iIi/g4PDg4PGg4PGg4PHiYm/lpaxmpqtm5uu - oaGno6OioaGhoKCgoKCgoKCem5uklZWukpK0j4+3iIjAg4PGgoLGgoLHhobCjIy8i4u9jIy8lpauoKCk - o6Ojo6OkpKSlpKSlpKSlpKSjoKCmmpqrlZWxiIi/g4PFgoLGg4PFh4fAi4u6ioq6j4+1l5etn5+mpKSj - o6Oko6OkpKSinp6nl5evk5O0kJC3ioq9ioq9h4e9h4e7ioq6ioq8i4u6k5OvmpqooKCioaGgoaGhoqKi - o6Oko6Oknp6omJivkZG3jY29jY28i4u9hITCgYHGhITGh4fEjIy/mpqwpKSnpaWko6OkpKSlpKSlpaWl - paWlpaWlpaWlpaWlpaWlpKSko6Oko6OlpKSlpaWlpqampqanpqanpqanpqanpqanpKSlo6OkpKSlpaWl - paWlpaWmpaWmpaWmpKSlo6Oko6OkoqKln5+omZmuk5O1jo68jIy9i4u5iYm3hoa3hoa3iIi4ioq7ioq9 - i4u9i4u9ioq+lpayoaGopqalo6OqmZmzjY2+g4PFgIDFgYHDgYHDgIDCf3/BgYHBh4e8jIy5j4+3lJSy - mZmsnp6mn5+mm5urlpaykJC5iIjAg4PGgYHFgIDCf3/BgYHCg4PAiIi6ioq2k5Otm5upm5uum5uuo6Om - pKSknp6pkpK2hobDg4PGhITFhITDh4e7iIi3iYm5ioq7ioq/hITGgoLIgYHJh4fDl5ezpaWlpKSmoKCq - lJS3jIzAjY29i4u8hITCgIDDgIDBgIDCgoLBiYm9h4fAkpKznZ2ooqKkpKSjo6OkpaWknJyoj4+2iYm+ - ioq8ioq8iYm6h4e5h4e3i4uxj4+tj4+xkpK0lJS0lJS1mJiynJyrn5+loqKio6OhmpqrlZWxlpawlZWx - kJC1h4e7gYHCf3/Df3/BgIDDgYHFhobFjIy+mJiyoKCqn5+rnZ2soqKknJypjY26hYXDh4fAiIjAi4u7 - i4u3h4e4goK+gIDDgYHEgYHFhYXDj4+6mJiznJytoaGopKSlpKSlpaWlpaWlpaWlpKSlpKSlpKSkpKSk - pKSkpKSko6Oko6OkpKSlpaWlpqalpqampqanpqanpqanpaWmpaWlpaWlpaWlpaWlsA+lpaWlpaWlpaWl - paWlpaWlpaWlpaWjo6SkpKWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6SioqKhoaGgoKChoZ+enqOW - lq6QkLeFhcKEhMOFhcKIiL+Li7qKirmJibuJibyRkbObm6ifn6OhoaGhoaGhoaGhoaGhoaGgoKKbm6iV - la+RkbOFhcJ/f8eCgsSDg8KLi7qLi7uQkLaUlLSZmbKhoamlpaWkpKWlpaampqempqempqelpaaamrGM - jL2Hh8CIiL2Hh7uJibqJibmKirmIiLyHh7+Hh7+KiryVla6fn6OhoaCgoKCgoKChoaGhoaCamqySkrWN - jbuIiMCCgsSDg8WEhMWEhMWJicGPj7mRkbWSkraamq6hoaakpKSioqOhoaGgoKCgoKCcnKOWlqyOjreG - hsCCgsWBgcSBgcSCgsWHh8GMjLyLi72MjLyXl66fn6OioqGjo6Sjo6SkpKWkpKWlpaWfn6iTk7SHh8GD - g8aEhMWDg8aIiMKLi72MjLyRkbSVla6bm6WhoaGjo6Ojo6Sjo6Sjo6ScnKiVlbCPj7iJib6Dg8aCgsWA - gMWEhL+JibuIiL2Li7qXl6qgoKGioqChoaGhoaGhoaGioqKdnaiXl7CQkLeMjLyMjL2Li76Dg8WCgsaD - g8WIiMKPj72Pj7ybm6+kpKampqSkpKWjo6SkpKWkpKWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6SkpKSl - paWlpaWmpqempqempqempqempqempqejo6Sjo6SkpKWlpaWlpaWlpaalpaalpaakpKWjo6Sjo6SioqWd - naqPj7qNjbyOjrqOjreMjLSIiLiGhraIiLiKirqLi7uMjLyMjLyNjbqXl6+goKakpKSkpKecnK+QkL2F - hcSCgsaCgsWBgcOAgMKAgMCHh7mJibmNjbeSkrWQkLaPj7eSkrOamqqfn6aYmK+JicCDg8eCgsaBgcSA - gMKAgMGDg7+IiLiKireUlKqYmKWYmKmamquenqyjo6ampqOdnayNjb6Dg8eFhcSFhcWJibyJibmHh7mI - iLmJib2Dg8eEhMeEhMaDg8eIiMGUlLKkpKampqSioqiXl7SOjr6Njb6Li7yFhcKCgsGBgcCAgMGDg8OF - hcaEhMaOjrudnaukpKOioqWjo6SkpKOamq6RkbaMjLiJibmKirmKirmIiLmMjLGOjqyOjq+QkLGTk7WU - lLaYmLOenqyhoaifn6eioqKjo6GdnaiZma2Zma2WlrCLi76BgcSAgMOAgMF/f8F/f8GCgsGLi72SkreW - lrOYmLKYmLKamrCjo6ajo6SVlbCMjLiNjbWMjLaJibmIiLiCgr5/f8OBgcKBgcOCgsOLi7mRkbaSkriU - lLacnK2kpKWkpKWkpKWkpKWkpKWjo6Sjo6SlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SkpKWlpaWlpaampqem - pqempqempqelpaalpaWlpaWlpaWwD6WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaWl - paWlpaSkpKOjpKOjpKOjpKOjpKGhoaGhoaKin5ycpI+PtIWFwoWFwoSEw4iIv4uLu4qKvIqKu4qKu4+P - tZSUr5mZqqCgo6GhoaGhoaGhoaGhoaCgopubp5WVrpKSsYWFwYCAxYGBxYWFwouLu4uLvJGRtZKStZWV - sJ6eqKampKWlpaWlpaSkpaWlpqamp6amp6OjqZSUt46OvYyMvoqKvImJuomJuYmJuYeHvYaGvoaGv4qK - upaWq5ycpqCgoqGhoaGhoaCgoKCgoKKioJeXro6OuIiIwIODxIKCxIKCxIKCxoiIwIyMvIuLvYyMvJKS - tKCgp6SkpKOjpKOjpKOjpKGhoaGhn52dpZGRsYWFvoGBxIGBxIGBw4CAxIWFv4uLu4uLvI2Nu5KStp6e - qKOjoqKioaGhoqOjpKOjpKWlpKGhqJSUtYiIwoODxoSExYODxYODxYODxoaGw42Nu5WVspqaqp+foqGh - oKGhoaKioqOjpJycq5aWspGRtomJvoODxoSExYKCw4KCw4ODxIODxYSEwoyMuJeXq6CgoqKioKGhoaGh - oaGhoaGhoJiYrZCQt4yMu4uLvIqKvoSExYSExYODxoiIwY2NvpCQvZ2dr6WlqKampaWlpaWlpaWlpaOj - pKSkpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKOjpKOjpKWlpaWlpaamp6amp6amp6amp6amp6amp6Sk - paOjpKSkpKWlpaWlpaWlpqWlpqWlpqSkpaOjo6KipZmZrpKStpGRt5KSt4+PuIqKu4mJuYaGtoeHt4mJ - uYmJuoqKvI2NupmZraCgpKGho6KipKSkpp+frZKSuoeHxoODx4KCxIGBxIGBwYaGt4iIuImJuIaGvoOD - xoSExYSExYuLvZmZq52dp5KStIeHw4SExoSExoODxYGBw4KCvYaGt4eHuJOTqZaWppiYqJmZqpycqqKi - o6SkpaWlpKGhqJWVtIuLv42NvYuLvYuLvYqKu4iIuIWFvIKCxYSExoSExoSExoODx4aGxI6Ou5mZrKSk - paKiqJubsJOTuIyMv42NvoyMvYqKuYSEvICAwYKCw4WFxYqKv5eXsZycrJqarp2dq6OjpKOjpJ+fqJ6e - qJiYrZCQs5CQsY+PsY2NsI2Nro2Nro6Or5CQsZKSs5OTtZqasJ6erJ2drZ6erKOjpKOjoqGho5ycqZeX - r5OTtIuLvIKCwoCAw39/wX9/wYKCwImJuYuLvIuLvYuLv5CQu5eXs56eq6Skpaeno5qarpCQtI+Ps4mJ - uYmJuYODv39/wYCAwYGBw4ODxIyMvYaGw4ODxoODxoiIwpSUtKGhpqSkpaSkpKOjpKOjpKOjpKOjpKOj - pKSkpaWlpaWlpaWlpaOjpKOjpKOjpKSkpaWlpaWlpaamp6amp6amp6WlpqWlpaWlpaWlpbAPpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6OkpaWlpaWlpaWlpaWlpKSlo6Oko6OkoqKioaGhoaGhoqKf - nZ2kj4+ziYm7iIi8iYm9i4u9i4u8i4u8ioq9j4+1kJCzk5OunJymoqKhoaGhoaGhoaGhoqKgnZ2mlpat - lpatk5Owi4u6iIi8iIi8ioq9ioq8iIjAiYm/h4fCjo65nJyppKSipaWlpaWlpaWlpKSlpaWmpqano6Op - lZW3jo69jY2/jY29i4u6iYm6hYW8hYW9hYW/h4e9kJCynJyloaGhoaGhoaGhoaGhoaGgoKCgnJylj4+z - hoa+goLCgYHEgoLEgoLEgoLEg4PEhITEhYXEioq/lZWxoKCko6Ojo6Oko6Oko6Oko6OjnZ2lkpKxh4e/ - goLEgYHDgYHDgIDDhYW9iYm6iYm7i4u8kJC3lZWxoKCmo6OioqKjoqKioaGho6OkpaWinJysjIy+g4PI - hYXGhITFg4PFgYHGhYXCjIy7kpK0lJSzmpqroKCjoaGgoKCgoaGin5+nmJivkpK1ioq+hITFhITFg4PE - g4PEg4PEgoLDgYHFhobBkpKxnp6ioaGgoaGhoaGhoaGhoaGhn5+jlparkpKyj4+4iYm/hITFhITFgoLH - h4fBi4u9jIy+kJC7n5+tpaWopqanpqampaWlpaWlpaWlo6OkpKSlpKSlpKSlpaWlpaWlpaWlpaWlpaWl - pKSlo6Oko6OkpaWlpaWlpqampqanpqanpqanpqanpqanpKSlo6OkpKSkpaWlpaWlpaWmpaWmpaWmpaWl - oqKknp6pmZmvlZWzkJC5jIy9i4u7ioq6iIi2g4O8goLAg4PBhobAjo66lJSylZWxmZmsn5+loqKjnZ2s - kZG7hobGg4PJg4PIhITDiIi6h4e2g4O+goLBg4PCgoLFg4PEiYm9iYm/lpawn5+mmJiuiYm+g4PGg4PG - gYHGg4O/hoa5hoa2jIyukJCvkZGwkpKwkZGylpavpKShoqKjpKSkpaWloKCplpazjIy/i4u+i4u+i4u6 - h4e9gYHCgYHCgoLEhITGg4PIh4fDi4u+jo67mpquoaGjpKSkpqaln5+sk5O4lZW3j4+7hoa/gYHAgIDB - goLBiYm8jIy9kpK2lZWzk5O1lZWznZ2ro6Olo6Okn5+omJiwkZG0kJCxkJCxjo6wjo6tjIyyiYm4ioq4 - i4u6kZG1mZmtnp6rnp6tnp6spaWlpKSko6Oinp6mmJiuk5O0jIy7hITDgYHEf3/DgYG+hYW4goLBhITD - hYXEhITFiIjCkpK5nJyuoKCppqaknJytj4+5jIy8ioq7ioq6goLBf3/Cf3/BgYHBhITAhYXDhITFg4PH - hYXEjo66mZmuoaGmpKSlpKSlpKSlo6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6OkpKSk - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlsA+jo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Wj - o6SlpaWlpaWlpaWlpaWkpKWjo6Sjo6OioqKioqChoaGXl6yKirqJibmKirmFhcCDg8OEhMSHh8CRkbOR - kbOPj7WYmKqgoJ+goKChoaGhoaGhoaGgoKKamqiVla6Tk7GMjLiKiruKirqKirqJibyIiL+IiMGGhsOO - jruYmLCfn6ajo6Kjo6SlpaWlpaWlpaWlpaWjo6agoK2YmLaSkryLi8CIiMCIiL6Hh72Fhb6EhL+Hh7qJ - ibiQkLOdnaSgoKChoaGhoaGhoaGhoaCdnaKSkrCGhr6BgcWBgcWCgsWDg8WDg8WDg8WCgsSBgcaFhcSQ - kLmcnKqhoaSioqKjo6Ojo6Sjo6Sfn6eTk7OIiMCCgsWBgcSBgcOAgMSGhr6KirqJibuKirqPj7WWlq6b - m6qhoaSioqOioqOioqOioqKioqGgoKaZma+OjruGhsWEhMaEhMWBgcSEhMCLi7iRkbKUlLGamqyfn6ai - oqSioqGhoZ+enqKWlq2RkbSKir+FhcWFhcaFhcWEhMWEhMWDg8SCgsSCgsOIiLuWlqyfn6GgoJ+hoaGh - oaGhoaGhoaGdnaWcnKWWlq2JibyCgsWEhMWEhMWKir+MjL2Njb2MjL6Pj7ydna6lpaimpqempqempqal - paWlpaWkpKWlpaWlpaWkpKWkpKWlpaWlpaWlpaWlpaWlpaWkpKWkpKWjo6SlpaWlpaalpaempqempqem - pqempqempqekpKWjo6SlpaWlpaWlpaWlpaalpaalpaakpKWioqWWlrGPj7mMjL2Li76MjLyLi7mEhL2A - gL+AgMGBgcOCgsOFhcOGhsGKir6VlbGfn6Sjo6GgoKaZmbCMjL6IiMOJicKKir6JibmCgr6AgMCAgMKB - gcSEhMOJib2KiryIiL6Ojribm6mfn6STk7KIiMCIiMCIiMCIiL6JibeNja6Nja2NjbCOjrGQkLCRkbGU - lLCenqWjo6Kjo6KlpaOjo6eamq+RkbmSkriOjryHh8GCgsKAgMKAgMGBgcOCgsWIiMGNjbyMjL2Njbya - mq6ioqSjo6KkpKCfn6eSkraQkLmHh7+CgsGAgMKBgb+GhriJibePj7WSkraTk7aTk7WUlLSamq6hoaek - pKOfn6mWlrKSkraSkrSQkLGOjq6KirGGhriEhL2Ghr2Ghr6Li7qSkrKWlrCYmLGfn6umpqSmpqWkpKSj - o6KdnaiQkLaGhsOEhMSDg8WFhb+FhbqAgL+BgcKBgcOCgsSEhMaEhMaHh8OOjr2YmLKkpKahoamTk7eK - ir+Li72KirqIiLqEhL2Bgb6Cgr6CgsCDg8SCgsaFhcOPj7mamqygoKWjo6SkpKWkpKWkpKWkpKWjo6Sj - o6SkpKSlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWkpKSkpKSkpKSkpKSwD6Sk - pKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaWlpaWlpaSkpaOjpKOjo6Gh - opmZqo+Pt4mJvIqKuoWFv4GBxIGBxoGBx4SExI6OuJGRtZOTsZycpqKinqCgoKCgoKGhoaKioZ+fo5qa - p5OTsI2NuYqKvYqKu4qKuYmJu4eHvoeHwYeHwoiIwZaWsqGhpqOjpKOjo6KioqOjpKSkpaampaSkpp+f - q5mZspKSuY2Nv4iIwYeHwYeHwYeHv4eHvoqKu4uLt42Ns5SUq5+foaCgoKCgoKGhoaKioZ+fopiYqY+P - tYiIvYeHvoeHvoaGwYSExYSExYSExYODxYGBxYWFwJSUsqGhpKKio6KioqKioqOjo6OjpZeXr4qKv4SE - xoKCxoCAxYGBxIWFvoqKuomJuouLuY2NuI+PtJaWrJ+fo6KioqKio6Kio6Kio6OjoqCgo5iYrJGRtoqK - wIWFxoSExoSExYGBxYaGvo6OtJSUrpeXrJ+fpKOjo6Kio6Kio6OjoJ+fopCQsoeHv4ODxoSExoWFxYWF - xYSExYSExYODxYODxIeHv46OtJmZpZ+foKCgoKCgoKGhoKGhop+fo52dpZ2dpZeXrIyMuYWFw4SExoSE - xoeHw4yMvo2NvY2NvZKStqCgqKWlpqamp6amp6amp6ampqWlpaWlpaWlpaWlpaSkpaOjpKSkpKWlpaam - pqampqampqampqWlpaSkpKSkpKWlpKWlpaWlpqamp6amp6amp6amp6WlpaOjpKSkpKWlpaWlpaWlpaWl - pqWlpqWlpqSkpZeXsY2Nu4yMvI6Ou4uLvIaGv4KCwn9/wX9/wYCAwoGBxIGBxoGByIuLvZmZrKCgpKGh - o6KioqGhpZeXsJWVs5SUsoyMt4ODwIGBwoCAwX9/w4ODwomJvYuLu4mJvYyMupGRs52dp6SkoJ6ep5WV - sZWVsZKStY6Oto2Nso6OrYyMrY2Nro6OrY6Oso2Nto2NtpGRspubqZ+fpaOjop+fqZWVspSUs5WVso+P - u4WFw4GBxYGBwoCAwYGBwoKCxYaGw4iIwoiIwo6Ou5ubraOjpKOjo6OjoZ+fppGRtYaGwYKCw4CAw4KC - wIaGuYiItIuLso6OsJGRsZKStJKStZKStZSUs5qarKKipaOjpJqarpGRt5OTtZOTso6OtIaGuYODvIOD - vYWFvYODwoSEwoaGv4qKvZGRt5qasKGhqqWlpqWlpaWlop6epo6Ot4iIwYmJwImJvYeHvIKCv35+woGB - wYGBwoKCw4SExIWFxIeHwouLvpiYsqOjp6ampJubr5GRuZKSt42Nu4iIvIWFvIKCvoCAwICAwYGBw4WF - wYyMupaWr56ep56epp+fpqOjpKSkpaSkpaSkpaSkpaOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaSkpaOj - pKOjpKOjpKSkpKSkpKSkpKOjpKOjpKOjpKOjpLAPpaWlpKSkpKSkpKSkpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpKSkpKSkoKCklZWwi4u7ioq8hobAgIDFgYHEgoLFhITFiIjB - jo66lJSynJypoaGioaGgoKCgoKCgoaGhoKCioKCimpqokJC0ioq9i4u7i4u6iIi6hoa8hoa/iIjAioq/ - jo65mJiuoaGmpKSjo6OkoqKjoqKio6Ojpqako6OpmJizkZG5i4u+h4fBh4fBiYnAi4vAh4fDhobCiIi/ - i4u6k5OtnZ2fnp6doKCgoKCgoaGhoqKgn5+jl5eslpaukZGyioq6iIi+h4fBhITFhITFhITFhITGhITE - ioq5mJipoqKioqKjoqKjoqKioqKioKCmlpayjIy8iIjBhobDhYXChoa/ioq7iYm7iYm7i4u5jY24j4+0 - mZmooKChoqKgoqKioqKjoqKjn5+lm5uqkZG1iIjBg4PGg4PGhITGgoLFhITBh4e8ioq5kJCzmZmon5+h - oqKioqKjoqKjoqKjnp6mkZGxh4e+hYXChITDg4PEg4PEhITFhITFhobEiYm/jo63lZWsn5+gn5+foKCg - oKCgoaGgoKCinJymnZ2lmJirkpKyi4u7hobDhITHhITHhobGi4vBiorAjY29mZmwo6OjpKSjpaWlpqan - pqanpqanpaWmpaWlpaWlpaWlpaWlpKSko6OkpaWlpqampqanpqanpqanpaWmpaWlpKSkpKSkpKSkpaWl - pqampqampaWmpKSlpKSkpKSlpKSkpaWlpaWlpaWlpaWmpaWmpaWmpaWmnZ2slZWzkpKzjY22hIS/gYHC - gYHBf3/Bf3/BgIDCgYHEg4PFh4fCjY26lZWwmZmsnJypo6Oho6Oinp6nm5uqlJSxiIi9gIDEgYHCf3/C - gYHAh4e8ioq6iYm8jY24lJSvmZmpnZ2moaGjoaGinJyompqslZWwkpKwkJCvjIyvjIytjo6sjY2viIi5 - hITAhYXAhYXAjY23lpatoaGknp6nlpavmZmtmJisjo64hITCgIDFgIDDgIDBgYHCg4PEhITGg4PIhYXG - jo67mZmxn5+oo6OlpKSinp6nkZG1h4fBhobAhIS/hoa7iYm1ioqxjY2ujY2sjY2yjY24j4+6j4+7j4+6 - mZmwoaGmpqahn5+plJS0k5O0kZG4iYm9hYW/g4O9g4O8goLAgYHEgoLGgYHHhYXCjY25lJSznJytpaWm - pqalpqakoKCok5O0j4+4jY26ioq8hITAf3/Df3/Bf3/BgYHBgYHCg4PCh4fAjIy9kpK3oaGppqakqKii - oKCqlJS2kpK5i4u+hobChITBgoLCgIDDgIDCg4O/i4u3kZGylZWxlZWxlJSyk5OynZ2oo6OlpKSlpKSl - pKSlpKSlo6Oko6Oko6OlpKSlpaWlpaWlpaWlpaWlpaWkpKSko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - sA+lpaWlpaWkpKSjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6WlpaWlpaWlpaWlpaWl - paShoaWUlLCJibyGhsCBgcaBgcSBgcWDg8WJicCQkLeWlrCcnKqioqOioqChoaGhoaGgoKCgoKCenqKf - n6OZmaqPj7aLi7yKiruKiruGhr+EhMGFhcGGhsCNjbqVlbGbm6mhoaSkpKOjo6Sjo6SioqKioqKkpKKe - nquQkLqLi7+IiMGIiMGJicCLi76Li8GFhceEhMaBgciLi7qamqahoZydnZ2enp6goKCgoKChoZ+goKKb - m6ebm6eRkbKGhsCCgsaDg8aEhMWEhMWEhMWFhcSLi76VlbCdnaKgoKCioqOioqOjo6OgoKSbm6qWlrGS - kreOjruMjLyMjLyLi7uKiryKir2KiryKiryMjLmUlK+fn6KhoaGhoaGioqGjo6KhoaSamquSkrWJicCE - hMWDg8WDg8WCgsWEhMKJibuJibuIiLuPj7OamqaenqGhoaGioqKjo6KgoKaYmK+SkrOMjLmJib2FhcKC - gsWDg8SDg8SEhMWGhsKLi7yTk7Obm6ehoZ+fn5+goKCgoKCgoKCgoKGenqOenqSSkrGKiruEhMOCgseE - hMWFhcSJicCJicKKisGRkbienqqjo6Sjo6Sjo6SlpaampqempqempqelpaalpaWlpaWlpaWlpaWkpKSk - pKWlpaWmpqWmpqempqempqelpaalpaWkpKSkpKSlpaWlpaWlpaWjo6Sjo6SkpKSlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaalpaakpKebm6+SkrSJibqBgcOBgcGAgMF/f8F/f8GAgMOCgsWEhMWKir6IiL+Jib+O - jrmZmayjo6Gjo6Gbm6iTk7KHh8CAgMeCgsOAgMJ/f7+FhbqJibiKirqNjbiSkrKXl6yYmKuVla6amqmh - oaKYmK6Tk7OTk7SSkrKPj7CNja6MjKyLi66JibiDg8KAgMWBgcSDg8OEhMKPj7WenqaioqOenqidnaiZ - mauPj7WGhr6CgsGCgsCAgMGBgcODg8WFhcaGhsaIiMKNjb2RkbiYmLChoaalpaKfn6iRkbWNjbuLi7qK - irmKireLi7KMjKyNja6Li7CJibiJib2Kir6Njb6UlLihoaykpKWkpKOhoaaZma+QkLeKir6Hh8GFhb+D - g7yAgL5/f8GBgcKCgsSCgsWGhsGOjreUlLCbm6yjo6elpaWmpqSkpKadnauTk7OKiryDg8SBgcSBgcGA - gMF/f8CBgcCCgsCGhr6Kir2OjryXl7Ohoamjo6empqSgoKqRkbmJicKGhsOHh8OGhsOEhMGCgsCEhL6K - irWQkLCRkbCOjraLi7uMjLuPj7iZmayhoaWkpKSjo6Sjo6Sjo6Wjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWl - paWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SwD6WlpaWlpaWlpaSkpKOjpKWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaOjpKSkpKWlpaWlpaWlpaampZ6eqJCQtISEwoGBx4KCxYKCxYODxYiIwI6O - uZSUspubq6Kio6OjoqKio6KioaGhoaGhoaCgoJ6eoZqapZWVrZCQtouLvIqKvIeHv4ODw4KCxoODxoWF - xIyMupqaq6Gho6KioaKio6OjpKOjpKOjpKOjoqCgo5eXrouLvYiIwYiIwYeHwYmJvYiIwISEyIWFxoaG - xoqKv5SUsJ6eo6Cgn5+fn52dnZ6enqCgoKCgoJ6eo5iYqpGRs4WFwYGBxYKCxIODxYSExYSExYWFxIuL - vpaWsaCgpaOjoZ+fn6GhoaKio6Ojop6ep5SUso+PuI2NvY2NvY2NvYyMvYuLvYuLvYuLvYqKvI2NuZOT - s5qaqaKioKGhoaGhoaGhoaKioKCgpZSUsomJwIWFw4SExIODxYODxYSEwoqKuomJuoiIupCQsZmZpZyc - n6CgoKCgoKGhoKOjoZ6eqJGRt4yMvIeHwIiIwoaGxISExYSExYODxIODxIKCxomJv5eXr6Cgo6GhoaCg - oJ+fn6CgoKCgoKCgoJ+foZiYqoyMuIODw4KCxoODxYaGw4mJv4mJwImJwZOTt5+fqqOjpaSkpaOjpKOj - pKSkpKampqamp6amp6amp6WlpqWlpaWlpaWlpaWlpaOjpKSkpaWlpaWlpqamp6amp6amp6WlpaWlpaWl - paWlpaWlpaWlpaOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpJqar4uLv4KCxoSE - w4GBw4CAwn9/wX9/wYGBw4KCxIODxYSEx4SEx4KCyImJwJmZrqOjoqOjoZaWr4eHwYKCx4KCxIGBw4GB - wYSEuIWFt4eHuY2Nt5KSsZGRtJGRtZGRtJCQtpaWrqCgo5OTs5OTs5KStJKSs5CQsI+Pr42NroaGt4KC - wYKCxIKCw4ODw4WFwYWFwY+PtpycpqOjn6CgpJiYrZGRtJOTs46OtomJuYeHvICAwYGBwoKCxIKCxYiI - wY2NvYyMvoyMvpiYsaCgpqSkoqCgp5SUs42NuY6Ouo2Nuo+Pto+PsI2NroyMr4eHuYiIuomJu4uLvJGR - t56eq6Ojp6Wlp6WlpKCgppaWsoqKv4eHwYeHwYaGv4ODwH9/wn9/wYCAwYGBw4GBxIaGwI6OuZKStJOT - sZubrKOjpqampaampKSkppOTtYaGw4SExYODwoCAwoCAwYCAv4CAwIWFvYqKu4uLvI2NvJOTtpOTt5ub - r6SkpqKiqJSUtoiIw4mJwoiIwouLvoyMuYmJt4mJtI2Nro+PsIyMtoyMuY2NuI6Ot5WVsJubq6GhpaKi - oqKio6Kio6Kio6OjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOj - pKOjpLAPpaWlpaWlpaWlpKSlo6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6OkpKSkpaWl - paWloaGqlpauiIi8gIDHgoLFgYHEgYHFh4e+i4u7jIy9jY27lJSzoaGko6OioqKjoqKjoqKioaGhoaGh - nJyllJStjY22iYm7ioq8ioq8hITDgoLFg4PGh4fEjo68j4+5mZmqoaGjo6OioqKioqKio6Oko6OkpKSj - n5+nkJC1hobCh4fAh4fAhITEg4PFg4PFhITFhYXGjIy/mJiyoaGmoqKgoaGhoKCgn5+fnZ2dn5+dnZ2i - l5eqkZGzhYXCg4PFg4PFg4PFgoLFgoLFg4PFiIjAlZWyn5+mo6OioqKioqKin5+foKCgo6OinJyqkJC4 - jIy8jIy8i4u8i4u9i4u9i4u9i4u9jIy8jo66kpKzmZmrn5+koaGhoaGhoaGhoaGhoaGgnJylkZG1hobB - hITFhITFg4PGhYXCiYm6iYm6iIi7kJCxmpqlnZ2hnJyhnp6eoKCgoKCgoKChmJisjIy8iIjBiIjBhYXE - hITFhITFhITFhITFg4PEhITCj4+2nZ2no6OhoqKioaGhoKCgn5+foKCfn5+il5eri4u5g4PCgoLFg4PG - hYXEiYnAiYnAiIjCkpK1np6qo6OmpKSlpKSlpKSlo6Oko6OkpKSkpaWlpqanpqanpqanpaWmpaWlpaWl - paWlpaWlo6OkpKSkpaWlpaWlpqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpqakoaGplZW1h4fBgoLGgoLFgYHDgIDCgIDBgIDCgoLFhITGhYXIhobH - hYXIiYnDlJS1np6mo6OhmJitiYm/g4PHhITFg4PDh4e6hoa3hIS4iYm0kJCvkJCyioq6i4u8i4u8i4u8 - kpKznZ2mmpqplZWxkpK0kpK0kpKzkJCyiIi5gYHAgYHDgoLEhITDhobCh4fBk5O0mJisnp6ko6Ofnp6l - kZG1kpK0k5O0jo64hobAgYHEgYHCgIDBgIDDhoa9i4u6jIy+jIy+jIy+lJS2m5usoqKloaGmmJivkpK1 - kpK1kpK1kZGzj4+vi4uwhYW3h4e5iIi6iYm9j4+5lpawlZWylpa1nJyvpaWnoaGpkpK2h4fCiIjBiIjB - hYXEgoLFgYHCgIDBf3/Bf3/Choa8iIi8hobBh4fBh4fBkZGzn5+mpaWjpqako6OnlZW1jY28jY28iIjA - gYHDgYHBgYHAhIS8iYm6i4u8jY29jo68jo68jY29mZmxpKSmpKSlnp6rl5ezlJS2lJS2lJS2kpKzj4+w - jIywh4e4iIi5iYm6iIi7i4u4kpKxk5OymZmtoKClo6OjpKSkpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Ok - paWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6OksA+lpaWjo6Sjo6Sjo6Sjo6Sjo6SioqOj - o6SkpKWlpaWlpaWlpaWlpaWlpaWjo6OioqKioqKjo6Wfn6iamq6MjLuEhMSCgsaCgsaCgsaHh7yKirqJ - ibuMjLqTk7SamquhoaSioqOioqOioqOioqOioqKdnaaWlqyOjraKirqKirqJibuDg8KCgsWBgceGhsKN - jbuQkLiWlrKgoKaioqGhoaGioqKioqKioqKjo6SioqWenqmUlLSKir2KiruEhMODg8WDg8WCgsWEhMSM - jL2ZmbCioqikpKSjo6OioqKhoaGgoKCgoJ+cnKCXl6aPj7OEhMGCgsSDg8WCgsWCgsWCgsWCgsWDg8WC - gseNjbucnKmkpKGioqOioqKioqKgoJ+dnaOYmK6Tk7WSkrWMjLyKir2KiruLi7qLi7qMjLyPj7iOjrmS - krSbm6mhoaChoaGhoaGhoaGioqCfn6KWlqyLi7qDg8SDg8WCgsaGhsCIiL2CgsSCgsOAgMWKirmXl6ie - np+fn5+fn5+enp6goJ6dnaSRkbOHh8KIiMKIiMGLi72Hh8CCgsWEhMWEhMWHh8KIiL2UlK6goKKjo6Ki - oqKioqKhoaGhoZ+enqCWlqqKirqCgsOCgsaCgseGhsSKisGLi8GLi8GMjMCUlLWdnaqioqakpKWkpKWk - pKWkpKWkpKWjo6Sjo6SlpaWmpqempqempqempqalpaWlpaWlpaWlpaWkpKSkpKSlpaWlpaWmpqempqem - pqempqalpaWlpaWlpaWlpaWlpaWkpKSjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWgoKmU - lLWHh8KCgsaCgsaCgsSAgMF/f8GBgcSCgsWFhcaGhseGhseGhseOjr6bm62ioqOcnKiTk7OQkLeRkbWQ - kLWPj7KNjbGLi66Li7CIiLmCgsGDg8ODg8ODg8aHh8GSkrOenqWfn6OZmauYmKuWlq6RkbSKirqDg8GB - gcGBgcKBgcSCgsWFhcWNjbyVlbSWlrOamq6hoaWfn6KWlq2Tk7SPj7mIiMGDg8WDg8WCgsSAgMOFhbyJ - ibqKiryKir2Li72MjL6OjryTk7aenqqjo6Ofn6eenqifn6ednamWlq6OjrSIiLeFhbeBgcGBgcSCgsaJ - ib+VlbGVlbGUlLOcnK+kpKekpKecnK2Tk7SMjL2FhcSDg8aDg8WBgcOAgMF+fsKEhLqFhbmDg7+Dg8OD - g8OEhMSPj7adnaWjo6GlpaSjo6eVlbWOjryKisCHh8CEhL+EhL6GhriIiLiJibmMjLuNjbuNjbuNjb2S - kriZmbCioqimpqSlpaWjo6eTk7ORkbWSkrSRkbCNjbCHh7iFhbeGhriHh7mJibqJibqKirqLi7qYmKyh - oaOkpKKjo6Sjo6SlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sj - o6Sjo6Sjo6SwD6ampqWlpKOjpKOjpKOjpKOjpKOjpKKio6Ojo6WlpaWlpaWlpaWlpaWlpaSkpKKioqOj - oaKio5eXrYqKvISEw4ODxIWFwoeHvYiIvImJuYiIuoyMtpKSsJaWrJ+fpaKioqKio6Kio6Kio6Kio6Gh - pJaWr4+Pt4uLu4qKuoiIvIODwoKCxICAxYaGwYyMvoyMvZGRuJ2dq6KipaOjo6GhoqGhoaKioqKioqKi - o6KipJ+fqJWVsouLvYaGwoSExYSExYSExYSExYSExYWFw5OTtKKiqKampKSkpaSko6KioaGhoaKinpmZ - pYyMtIODwIGBw4ODxYSExoODxoODxoODxoODxYODxIaGwZKSs5+fpqOjoqKio6Kio6KioqKioZ2dopeX - qpOTs4yMuYqKu4uLuYeHv4ODxISEwoSEw4uLvZKStJmZq5+fpaKioaGhoaGhoaGhoaGhn5ubpo+PtYWF - woSEw4SExIeHv4aGvoKCwoGBxICAxoODwo6OspqapJ+fnp+fn5+fn5+fn56enpWVqoqKuYiIvYqKvIqK - vIeHwYWFxYODxYODxYaGwoyMvJCQtpubqKKioKGhoaKioqKioqOjoqCgoZeXq4yMt4iIu4eHvYmJvYmJ - wYqKwouLwYqKw4qKw4iIxJKSup6eq6Ojo6OjpKSkpaSkpaSkpaSkpaSkpaOjpKOjpKWlpqamp6amp6am - p6amp6WlpaWlpaWlpaWlpaOjpaOjpKWlpaWlpqamp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaOjpaOj - pKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampKKip5mZsJCQu4mJwImJvISEwX9/woCAwYGBwoGBxISE - xIWFxYaGx4WFyYqKw5mZsqOjpaKio5ycp5aWr5KStJOTs5KSspGRr4yMr4WFuIGBwoCAw4KCxYGBxoWF - wYyMuZOTsJycpqGhoZubqJeXrZGRtImJvYODxIKCwoCAwYGBwoGBwoGBxISExYeHw4iIwouLv5aWs6Gh - p6Ojop6eo5OTs4eHwoKCx4KCx4ODxoKCxYaGvIiIuYmJu4qKvYuLvYyMvI2NvI2NvZGRuZ2drKWlo6Ki - pKOjpJ+fqJmZrpGRtoqKuoeHvIGBwH9/w4CAxYKCxoeHwpCQuJeXsJmZrZqarKGhqKampaOjqJubro+P - uoaGw4SExoODxYGBxICAwoSEuYSEuYKCvoGBwoKCxIODxYKCxoyMu5ubqqKioqSkoqOjppaWs4qKwIeH - w4eHwoeHv4iIuYmJuIaGt4iIt4yMuY2Nu46OupOTtJubr5ycraKip6amo6Skpp+fq5WVtJOTtJOTsY+P - s4iIuIeHuYaGt4aGuIaGuIeHuIiIuYmJuoqKu5KSsZqaqKGhpKSkpKOjpKSkpKWlpaWlpaWlpaSkpaOj - pKOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpLAPpqanpqampaWlo6Oko6Oko6Ok - o6OkoqKjoqKjo6OkpaWlpaWlpaWlpaWlpKSlo6OjoqKinZ2ojo63h4e/hobAh4e+iYm8ioq4iYm4iYm5 - iYm5ioq4kJCxmJion5+joqKioqKioqKjoqKjo6OioqKjlJSyj4+5jIy6h4e+goLEgIDFgYHFhYXAioq8 - jIy8j4+5mJivoaGlo6Oko6Oko6OkoqKioaGhoqKio6OhoaGkmZmujY27hYXEhITGhITFhYXFhYXFhITG - hYXFjY28lZWxoKClpaWjpKSlpKSlo6OkoaGhoKChlZWsh4e9f3/FgYHDg4PEhITGhITGhITGhITGhITG - g4PEjIy4m5uooqKioqKjoqKjoqKjoqKjpKShoKCjmJiqkJCyiYm8i4u7iIi/hITEgYHHgYHGgYHGiIjA - k5Oznp6noqKhoqKioqKioaGhoaGhoqKfmpqnjY23hoa/h4e/iIi+h4e/goLCf3/FgYHEhoa/jo60l5eo - nZ2goKCen5+fn5+fn5+fnZ2glpaoj4+yjIy3ioq7h4fAhITFg4PGhYXFh4fDjIy7kpK1mZmtoKCkoqKg - oaGhoaGhoqKipKSgnp6mkZGziYm7ioq5hoa/iIjBh4fDiIjDiorCiYnEiIjFi4vCl5e1oqKppKSko6Ok - o6OkpKSlpKSlpKSlpKSlpKSlo6OkpKSkpaWlpqampqampqampaWlpaWlpaWlpaWlpaWlpKSkpKSkpaWl - paWmpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqak - oaGpnJyumpqxkpK4iIjAgoLEf3/Df3/BgIDBgYHCgoLDg4PEhYXGhITJh4fGlZW4oaGrpKSjn5+mlZWw - j4+3kZG1kpKyj4+zh4e5gIDAf3/DgYHDg4PGiIjCi4u9j4+4lZWymZmsn5+jl5etkJC1jIy5ioq8h4e/ - g4PEgIDCgIDBgIDBgYHCgoLEg4PGhobEjIy+l5eyoaGopaWjoqKkl5esjY24i4u7ioq+hobBh4e+iYm5 - iIi6iIi7ioq6ioq9h4fCh4fBhobDjo67np6rp6eipKSko6OkmJivkZG4jY27iYm+hITCgIDEf3/Df3/D - hIS/iIi9jIy8kZG3k5O0kZG2mZmupKSlpKSolpa1h4fDhITGgoLFgIDFgoLChIS6hIS5goK9gYHBgYHD - gYHEg4PGh4fAjIy9mJiuoaGko6OioaGkmpqrkZG1i4u9ioq/ioq9ioq6iYm5h4e2iYm1i4u2jY23kZG0 - lJSxmJivmJixnZ2so6OlpKSmm5uvlJS2lpa0kZG1ioq5h4e7h4e5hoa3hoa3hoa4hoa4iIi5iYm6iYm5 - jY24kZGynZ2npaWho6Oko6OkpKSkpaWlpaWlpaWlpKSlpKSkpKSkpaWlpaWlpaWlpaWlpaWlpKSlo6Ok - o6Oko6Oko6Oko6OksA+mpqempqempqelpaWkpKSjo6Sjo6Sjo6SioqOioqOjo6SkpKWkpKWkpKWjo6Wj - o6KhoaObm6uQkLeOjreOjreMjLmJibqIiLiJibmJibmJibmGhryMjLWamqaenqGhoaGioqKioqOioqOi - oqOfn6eSkrWPj7mMjLuHh7+EhMKFhcGFhcCKirqKirmNjbeXl66goKaioqKjo6Sjo6Sjo6Sjo6OioqKi - oqGhoaKZmauNjbqEhMaDg8eEhMaEhMWFhcWEhMaEhMaLi76Zma+dnaihoaOjo6OkpKWkpKWkpKWkpKOc - nKiOjreEhMOBgcSBgcOCgsSEhMaEhMaEhMaEhMeFhcaMjL6VlbCfn6Ojo5+ioqKioqOioqOioqOhoaSd - namVlbCMjLaKirqHh76Dg8SCgsaDg8WCgsaFhcKKiryWlq6hoaSjo6GioqKioqKhoaGioqChoaCYmKyM - jLmKiruKiryIiL+Dg8SAgMWBgcOCgsGKirmUlK2amqSenqCfn5+fn5+fn5+fn5+bm6OWlqqPj7GLi7iJ - ibyDg8KEhMOFhcSIiMOOjryUlLSZma2fn6aioqKioqGhoaGhoaGioqKioqKXl6+NjbqKiryGhsCCgsWD - g8aDg8eFhcSJicKJicSMjMGTk7qgoK2np6empqakpKWjo6Sjo6SkpKWkpKWkpKWkpKWjo6Sjo6SkpKSk - pKSkpKSkpKSkpKWlpaWlpaWlpaWlpaWlpaWkpKSkpKWlpaWmpqWmpqempqempqelpaalpaWlpaalpaal - paampqakpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWmpqSioqienqycnK6Tk7eJicOEhMaCgsSAgMGAgMGB - gcGBgcKCgsSCgsaEhMaKisOSkryfn6+lpaeioqebm6uYmK6Vla+QkLOIiL2CgsN/f8J/f8GCgsOHh8GN - jb2Njb2RkbiXl7KZmbCbm6qXl66RkbSQkLWOjreHh7+Dg8WBgcOAgMGBgcGAgMGAgMKFhcCOjrmVlbKZ - ma6fn6qlpaSkpKWenqiWlq2Vla2SkrKMjLmKirqIiLqGhriHh7iIiLuFhcGDg8aDg8aDg8WNjbubm62j - o6akpKSjo6SVlbONjbyJicCGhsSBgceBgcWAgMSCgr6GhriJibeKiruIiL+IiMCGhsKQkLafn6ejo6eV - lbaKisKHh8SFhcGEhL+FhbyGhriBgb6AgMGBgcOBgcOBgcKFhb6MjLiNjbmamqqjo6KioqOioqOgoKSb - m6mPj7eLi72MjLuLi7uKirqKiraIiLWIiLaMjLaPj7WNjbuMjLuMjL6SkridnaukpKSfn6uZmbGTk7iN - jb2Kir2JibqIiLmGhriGhreGhriGhriHh7mIiLqJibmIiLuMjLiZmaujo6Gjo6Sjo6Sjo6SkpKWlpaWl - paWlpaWlpaWkpKSkpKWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6SwD6ampqamp6amp6amp6Sk - paOjpKOjpKOjpKOjpKKio6Kio6OjpKOjpKOjpKOjpKOjo6CgpJubq5WVsZOTtJKStI6OtoqKuImJuIqK - uYqKuYqKuoqKuZGRrp2doKCgn6CgoKGhoaKioaOjop+fp5WVso+PuouLvouLvouLvIqKuoqKuouLuYuL - uY2NtZSUrJ2dpKOjoaKio6Kio6OjpKOjpKOjpKOjpKGhopqaqo+PuIeHwoWFxIaGwoSExYSExYSExYSE - xYiIwpCQuJqaq6GhpaKio6KioqKio6OjpKSkpaWlpZqaroyMuoODwoGBxYKCxIKCxYSExoSExoSEx4aG - xY2NvpqasJ+fqKGhoqGhoKGhoaKioqKio6Ojop2dqJWVso6OuouLvYeHvYCAxIKCxYODxYODxYWFwoyM - upKSs5ycpaKioKKioqKioqKioqKioqKiopqaqY+PtomJvomJvYeHv4KCxYGBxoKCxIGBw4KCwYiIu5GR - rZubo5+fn5+fn5+fn5+fn5qapJWVrI6OtImJuYiIuomJu4eHvYiIvomJv4yMvJKStZiYr52dqaKipKOj - oqKioqKioqGhoaKin5ubp5CQt4mJv4eHwYKCxYODxYODxYSExYaGw4iIwYyMv5WVuJubsaSkqaiopqam - p6WlpqOjpKSkpaWlpqWlpqWlpqSkpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKSkpaSkpaSkpaSkpaSkpaWl - paOjpKSkpaWlpaampaampqamp6amp6Wlpqamp6amp6amp6amp6WlpqOjpKOjpaWlpaWlpaWlpaWlpaWl - paWlpaSkpZ2drJSUtZCQuo2NvoeHxIODxYGBwoGBwYCAwYGBwoGBxISExYmJwI6Ou5OTuqGhrKamqKen - pqWlo5+fpZWVsImJvYODxYGBxICAwYCAwYODvoqKu4yMvYyMvpGRuJaWspaWtJeXsp6eqJiYrZGRtImJ - vYGBx4KCxIGBwoCAwYCAwYCAwYWFvo2Nt5KStJiYr5ubraCgqaampKSkpaKiqJmZrpSUrpOTsI6Ot4mJ - vIiIuoaGuIaGuYODv4GBxYODxIODxYyMvJOTs5iYrp6eqqWlpKSkpZaWsoyMvoSExoKCyYODx4KCxISE - wIaGuIaGuIaGu4eHvYSEw4WFxIODx4yMvJubqaOjoqCgqpycr5OTuY2NvouLu4iIu4KCv4CAwYGBwoGB - w4GBxISEwIqKt4+PtJGRtJycqaKioqGho6Kio6Ojo5ycqY6OuIqKvoyMvIyMuo+Pt4uLuIaGuIaGuYeH - u4aGwYSEx4ODx4ODx4mJwZWVs6KipqWlpJ+fqpGRuY6Ovo6OvYqKvImJuoeHuYaGt4aGt4aGt4eHuIiI - uYmJuoiIuouLuZiYrqOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWlpaOj - pKOjpKOjpKOjpKOjpKOjpLAPpaWlpqanpqanpqanpqanpaWlo6Oko6OkoqKjoqKioqKioqKjo6Oko6Ok - o6Oko6OjoKCll5eukpK0kZG2kJC2j4+0jIy2ioq8i4u8i4u8i4u+k5OwnJygnp6cnp6eoKCgoKCgoqKh - oqKimpqrjY27i4u9i4u9i4u9i4u9ioq8iYm7iYm7i4u3lJStmZmnnJykoaGgoqKjoqKjoqKjo6Oko6Ok - o6Okn5+nkpKzjY25jIy7i4u8ioq+hITFhITFhITFiYm/jIy7j4+5m5uroKClo6Oko6OjoqKio6OjpKSm - oKCpmpqwk5O2iYm/goLGhITFg4PFg4PFg4PGhYXGjIy+mZmvn5+ppKSmo6OjoaGhoaGhoaGhoqKioqKj - np6okpK2iYnAiYm/goLGgoLFgoLFgoLFhobCjIy7lJSympqooKCioaGgoaGhoqKioqKio6OhnZ2oj4+2 - iIi+iYm9iIi+goLFgoLEgoLEgoLEgoLDgoLBh4e7kpKsnZ2hoKCen5+fn5+fnp6glparj4+zioq4iYm6 - iYm6iYm7iYm7iYm8jY26kZG2k5Ozl5ewnZ2poqKlo6OjoqKioqKioqKioKChlZWujIy5hYXAgYHFg4PF - g4PFg4PFhobCh4fBiYm+kZG2mpqvoaGqpqanpqanpqanpqanpaWmpqanpqanpqanpaWmpKSlpKSlpKSl - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWmpqanpqanpqanpaWm - paWmpqanpqanpqanpaWlo6OkpKSkpaWlpaWlpaWlpaWlpqalpKSlmZmtjY26i4u+hYXFhYXGhITFgoLD - gIDCf3/BgYHCgoLEiYnAjY26j4+4lpazpaWopqanpqampKSomJixioq/g4PFg4PEgoLCgYHBgoK9h4e3 - iYm8ioq+ioq/i4u/i4u/jIy+lJS2oqKlmpqsiYm+gIDIg4PFg4PFgYHDgYHCgYHBhIS+jY23lJS1lJS2 - lJS5mJi0oKCrpaWmpKSloaGom5uvlZWyjo62iYm7ioq6iYm6iIi5g4O/gYHDgoLDg4PEhITDkJC3mpqr - nJyonp6opaWkpKSlmJixh4fDgYHJg4PGg4PFhITAiYm5h4e3goK+gYHFgoLFg4PFg4PFg4PGjIy8mpqs - o6OioqKipqakmpqxkJC8jY2+iIi/gYHDgIDBgYHCgYHEhITDh4e+i4u6kZGzkpK0lJSympqroKCko6Oj - oqKjl5ewkJC2jY23jY23jo62kJCxioq4hoa6hYW8hYXBhITHhYXGhYXGiorBiorAj4+5nZ2rpKSlnp6r - l5eylpazk5O4jIy+ioq7iIi5hoa3hoa3h4e4iYm6ioq7ioq7ioq7jY25mZmuo6OkpKSlpKSlpKSlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpKSko6Oko6Oko6Oko6OksA+lpaWlpaWmpqam - pqempqempqelpaWjo6Sjo6Sjo6OioqKioqKioqKhoaGhoaGgoKKcnKeVla+RkbaRkbaSkrWOjriHh7+D - g8aEhMWDg8aMjLucnKmiop6enp6enp6enp6fn5+goKCgoKGbm6uOjrmLi72Li72Li72Li72Li72KiruK - irqJibuPj7OXl6qdnaOgoKCgoKCioqOioqOioqOjo6OioqWZma6SkrWQkLaNjbeHh7+Dg8eEhMaDg8eJ - ib+Li7yMjLuVlbKioqWjo6Sjo6Sjo6Sjo6OioqGhoaOZma+Tk7aJicKDg8eEhMWEhMaEhMaEhMaFhcWI - iMGQkLmbm66goKmjo6akpKWjo6ShoaGhoaGhoaGcnKeYmK+QkLiHh8GCgsaDg8WDg8WDg8aGhsKMjLqT - k7Kbm6ihoaKhoaGhoaGhoaGhoaGioqKioqKVlbCMjLuJib6Jib2Jib6EhMWDg8SDg8SDg8WEhMOKiruU - lKuZmaKcnJ6enp6goJ+enqCZmaWUlKySkq+NjbaJibyLi72Li72Li72Kir6Pj7iSkrOTk7Obm6uioqWj - o6Sjo6Sjo6SioqKhoaOcnKmOjreFhcGBgcSBgcSDg8WDg8WEhMWEhMWDg8aGhsKQkLacnKekpKWmpqam - pqempqempqempqempqempqempqempqempqelpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqempqempqempqakpKSjo6SlpaWl - paWlpaWlpaWnp6SgoKmPj7mEhMWEhMWEhMWEhMSDg8SBgcOAgMGAgMOHh76MjLuQkLeTk7OUlLKenqmg - oKqlpaikpKmbm7CUlLaLi72Li72KiruHh7mFhbiFhbiHh7mEhMKDg8WEhMaEhMeGhsWRkbmgoKmfn6mT - k7WGhsGDg8aDg8SDg8SBgcSDg72Li7WTk7OUlLaVlbiVlbiUlLiYmLSgoKulpaWlpaWfn6qXl7OTk7WS - krGQkLKKiriCgsGAgMKCgsKDg8WFhcSLi7uKiryUlLKfn6ajo6KioqOkpKWYmLCKisCEhMeFhcWGhsOK - iryKirqCgr+AgMKBgcOCgsSCgsSCgsSJib6MjLuUlLKgoKWioqOcnKmWlrOVlbeSkrqKisKDg8WBgcOB - gcKCgsKIiL+MjLyLi7yLi72Li76JicCSkreenqijo6GioqOdnamcnKqbm6qZmaiWlquJibmFhbuFhbqD - g76CgsSFhcaGhseJicWJicWGhsaLi76amq6kpKWenqudnayenqyamrCRkbmMjL6KiruIiLiHh7iIiLmK - iruLi72Li7yQkLeRkbWbm6ulpaKjo6SkpKWkpKWkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sl - paWlpaWlpaWlpaWlpaWlpaWjo6SwD6OjpKWlpaWlpaWlpqamp6amp6amp6WlpaSkpKOjpKOjo6KioqKi - oqKioqGhopycppWVr5GRtZGRtIeHwIWFw4SEwoODxIODxYKCxoeHwZOTs5+fpqOjoaCgoJ6enp6enp6e - nZ2doZ2dpJycppWVsZCQt4yMvIuLvYuLvYuLvYqKvIqKvI6Ot5SUrpubpaCgoKCgoKCgoKCgoKGhoqKi - o6Gho56eppmZr5KSto+PuYiIwIODxYSExoODx4qKv4yMvYuLvoyMvJSUsqGhpKOjpKOjpKOjpKOjpKOj - o6GhopWVsYiIwYODxoODx4SEx4SEyIWFx4eHxYiIw4aGw4uLvZqar6SkpqSkpaSkpaSkpaSkpKGhopub - ppaWrZGRtIiIv4ODxoSExoSExoSExoSExoiIwY+Pt5WVr5ycqKGhoqGhoaGhoaGhoaGhoaGhopubqY2N - uYmJvoqKvIiIvoSExISExYSExYODxoWFwomJvI6OtZqapZ2dnp2dnZ2dnZ6enZ6eoJiYppOTrIyMtoqK - uYiIvYWFxoWFxYWFx5CQvJWVtpWVs5ubqaGho6Kio6OjpKOjpKOjpKOjo6GhpJaWsIiIwIODxoKCxIGB - w4ODxYSExYSExYSExYODxoeHwpGRtZ2dp6Gho6SkpKampqamp6amp6amp6amp6amp6amp6amp6amp6am - p6WlpaWlpaWlpaSkpaOjpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaamp6amp6amp6ampqSkpKOjpKWlpaWlpaWlpaampKGhqZKSuYWFxISEwoSEwoOD - xIGBxoCAxYCAwoeHu4uLvIuLvIyMu42Nu46OupaWsJ2dqqSkp6WlqJ+frZiYtI6OvYuLvYuLvImJuoaG - uISEuIGBwIGBwoGBw4ODxYSExoWFxZGRuZ+fqaSkpKCgqZOTtYiIv4mJvomJvYeHvomJtY6OrpGRspOT - tY6OvI+Pvo+Pvo+PvpWVt6CgqqWlppqar5SUtJWVs5WVsZGRsoODwIGBwoCAwYCAw4SEwouLuouLu4+P - tZKSspWVsZmZrp6ep6Kio5ycqI6OuIiIv4mJvYqKvYuLu4ODwYGBwoGBwoGBwoGBxIGBxIiIvIyMuIyM - uZOTsqCgpaKio5mZq5OTs5OTtZKSt4uLv4SEw4SEwYGBwYaGvYuLvIyMvIuLvYaGw4aGw4SExoyMvZub - rKSko6KioqGhpKKio6CgpZaWroqKuoeHvYaGu4ODvoGBwYKCw4WFxYmJxYmJxYmJxomJxZKSuZ6eqaOj - pKOjpZ+fqpmZsJGRuIyMvYyMvYqKu4iIuYeHuYiIuYqKvI2NvpGRt5SUtJOTtp2drKamoqOjpKOjpKSk - paSkpaSkpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKWlpaWlpaWlpaWlpaWlpaWlpbAPpKSlo6Ok - pKSkpaWlpaWmpqanpqanpqanpaWmo6Oko6Oko6OjoqKio6OhnZ2nlJSwkZG0kJC2hobAg4PFg4PFgoLE - gIDFgoLEh4e/j4+3nJypoqKhoqKioqKioKCgnp6enp6dnZ2fmZmllJSrjo6zi4u5i4u9i4u9i4u9ioq+ - ioq+j4+4l5evnp6moaGhoaGgoKCgoKCgoKCgoaGgo6Ohn5+mlpavkpK2jo68h4fDg4PGg4PGhYXEioq+ - jIy9jIy9jIy9j4+5l5euoqKioqKjo6Oko6Oko6Oko6OknZ2qj4+4iIi/iIjAiorAi4vCi4vAhYXGhobF - hYXHh4fDkZG3nZ2qpKSkpKSlpKSlpKSlpaWkoqKll5eukJC0iIi+hITFg4PGhITFhITGhITGhITGhITG - h4fBkJC1m5uooaGioaGhoaGhoaGhoqKgoaGhmpqokpKzjY27iYnAhYXEg4PFhITFhITGhobCioq9jIy6 - jo60m5uln5+fnp6dnZ2dnZ2dnp6enp6gmpqmjo6zhYW/g4PEhITGhITGg4PKj4+8mpqynJyvnZ2poqKh - oqKioqKjo6OkpKSkoqKlm5usjo66hITEgoLHg4PFgoLEgoLEhITFhITGg4PHhITGjo68mpqsoaGjoqKi - oqKjpaWlpqanpqanpqanpqanpqanpqanpqanpqanpqanpqampaWlpaWlpaWlpKSlo6OkpKSkpaWlpaWl - paWlpKSlo6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpaWm - o6OkpKSkpaWlpaWlpqako6OnmJiyi4u/iYm/iIi9h4e9hoa+hYW9hIS6iYm5jIy5iIi/hYXDhITEhobD - kZG1np6npKSjpKSnn5+vl5e2jY3AjIy/ioq9iYm5hoa6gIDAf3/BgYHCgoLDgoLFhYXEjIy9k5O1nJyt - pKSmo6OmmJivkJC3kJC0j4+zjo60jY2wj4+skZGxjY25jY29jY2/jY3Ajo7AkpK8m5uxpaWmn5+sm5ut - nJyrmJiwjY27hITFgYHEf3/DgoK+iYm5i4u5jY27j4+4jo64jY27kpK1np6ooqKjoaGjlJSwi4u7ioq8 - ioq8hobDgYHDgYHCgYHCgIDDgYHCh4e7ioq4jIy4ioq6kZGznp6moqKjoKCmlZWykJC4i4u9hobChYXD - hYXChoa9h4e5iYm5iYm9h4fDhYXEgoLHiYm/lJSznZ2qpaWjo6Ojo6OioKCkl5ewjIy8iIi/iIi+g4PC - gIDCgIDBgoLBhobCh4fEiYnGiorDkJC9l5e2nZ2uoqKmo6Okn5+ql5eyj4+7iorAi4u9iYm6h4e3hoa3 - hoa5iYm4jo63jo68j4+7jo69lJS2nZ2roaGno6Oko6OkpKSlpKSlpKSlpKSlpaWlpaWlpaWlpaWlpaWl - paWlpKSlo6OkpKSlpaWlpaWlpaWlpaWlsA+lpaWkpKSkpKSkpKSlpaWlpaampqempqempqelpaWjo6Sj - o6Sjo6Ojo6GdnaiWlq+Pj7eHh8CCgsWCgsSCgsWBgcWBgcOHh72Pj7WRkbOdnaajo6CioqKioqKioqKg - oKCdnZ+ZmaKTk6uMjLWJibqIiLuJibyLi72Kir6Li7yRkbaYmK6amqugoKWkpKGhoaGgoKCgoKCgoKCg - oKCiop+goKSWlrCRkbaRkbaLi76FhcWDg8aEhMWHh8KKir6NjbyRkbiWlrGcnKiioqKioqKioqOjo6Sk - pKOgoKeUlLSLi72Kir2KiryMjLyMjL2IiMOFhcaEhMeGhsWMjL6Xl7KioqSioqOkpKWkpKWkpKWkpKWf - n6qRkbiJib+CgsOBgcSCgsOCgsSEhMaEhMaDg8eEhMaJicCSkrSfn6OhoaGhoaGhoaGhoaGhoaKdnaaX - l6uRkbONjbmHh8GBgceDg8aEhMWFhcWHh8GIiMGKir2Tk7Gfn6KgoKCfn5+dnZ2dnZyenpycnKGTk66J - ibyDg8SDg8eFhcaEhMeHh8SRkbuYmLWamrKenqykpKOioqKioqKioqOkpKOhoaaUlLSLi72IiMCJicCH - h8KCgsWCgsSEhMWDg8aFhcWOjryamq+hoaWjo6OioqKioqKioqOkpKWmpqampqempqempqempqempqem - pqempqempqempqalpaWlpaWlpaWkpKWjo6SkpKSlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6SkpKSl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqempqempqelpaajo6SkpKSkpKSlpaSlpaWhoamYmLKQkLmO - jriNjbWOjrONjbOHh7eIiLeGhr2EhMSCgsaDg8WIiMCRkbWfn6Wjo6KioqWioqienqyRkbmLi72KiruH - h7uBgb9+fsJ/f8GBgcOCgsSGhsKMjL6Pj7qVlbSamq6ioqaenquVlbSUlLSTk7ORkbGQkLGQkK2MjLGG - hryEhMCFhcKKir+Njb6Njb6Pj72Xl7akpKilpaelpaagoKmTk7eGhsWEhMeBgcaEhL+GhrmHh7qIiLyJ - ib6MjL2MjL2Kir6Pj7ednaejo6Ojo6Kbm6uOjriFhcGDg8OBgceAgMSAgMN/f8OCgsCIiLuLi7iFhb6G - hr+EhMKKiruZmaqioqGjo6OYmK6Li7yEhMSEhMSFhcKHh72IiLmHh7aFhbqFhcCEhMOEhMSKir6VlbGc - nKifn6aioqajo6SkpKKdnamPj7mHh8OJicCIiL+Hh76EhMGBgcGCgsCFhcCGhsGLi8CQkL2Tk7qUlLmW - lredna+kpKWioqWfn6mZma+SkrSOjraIiLqGhrmFhbiHh7WKirOLi7iKiryKir+NjbySkraZma+goKik - pKWjo6SkpKWkpKWkpKWkpKWkpKWlpaWlpaWlpaWlpaWlpaWlpaWkpKSkpKSlpaWlpaWlpaWlpaWwD6Wl - paWlpaSkpKSkpKSkpaWlpaampqamp6amp6amp6WlpaOjpKOjpKCgppubqpKSs4eHv4CAxoKCxIKCxIKC - xIKCw4eHvI+Ps5KSsJOTr52dpaOjoKKioqKioqKioqKioZ6eoZOTqoyMs4qKuImJu4qKu4uLu4uLvYuL - vI+PuJSUtJeXsJiYr5+fp6OjoqKioqKioaCgoKCgoKCgoJ+foZycpZqaq5SUs5KStYyMvIaGw4ODxoOD - xoaGw4uLvY6OupOTtpubraKipKKio6KioqKioqOjoqKipJqaroyMvIuLvoqKvYqKvImJvYeHwYSEx4SE - x4eHxI6OvZWVtZycraWlpKOjpKKio6OjpKWlpKKip5aWs4mJwYWFxoKCxYGBw4GBwoGBw4KCxISExoaG - xIyMvpOTtpqaraOjoaGhoaGhoaGhoaKioJ+fo5aWrpCQtIyMuYuLuoiIvYaGwYeHwYWFxIaGw4aGxIWF - xI2NvJubq6KioaGhoKCgoJ+fnp2dnZmZopCQroaGvIKCxYODxoSExYSExoeHxI+PupSUt5SUuZiYtaOj - qqampqOjo6KioqKioqOjop2dqo+PuY2NvI2Nu4uLvYeHwoODxoODxYODxYWFw4yMvJeXsaCgp6Ojo6Oj - pKKio6KioqKioqKioqSkpKampqamp6amp6amp6amp6amp6amp6amp6amp6Wlp6WlpqWlpaWlpaSkpKOj - pKOjpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpqWlpqWlpqWlpqWlpaWlpaampqam - p6amp6amp6SkpaOjpKOjpKOjpaWlpKWlpZ6eq5iYsZaWsZSUsJGRsIyMs4eHuIODuYGBwYGBxYODxIiI - vpCQtZKSs5qarJ2dqKCgpaSkoqOjo5eXsIuLuoaGvYKCwH9/wn9/wX9/wYCAwoKCxYeHw4qKwIqKwJWV - tZubraCgp5ycrJSUtZSUtpOTtpKStJKSsI6OsoSEvH5+xICAw4ODwYqKvY2NvI6OvZCQvJSUuZ6erqWl - p6enpZ6erY+Pu4WFxIiIwoaGwYiIu4WFuYKCvIaGv4iIvoqKvIuLvYqKv46OuZmZq6CgpaKio6GhpZeX - r4yMu4aGv4eHvYSEv4ODv4KCvoaGuoqKuIeHv4KCxIKCxYKCxIiIvJaWrKKin6OjoZubqoyMvIWFxIeH - wYaGvoiIuYiIt4WFuIGBvYGBwYODwIeHwI+PuJSUs5eXsJiYrZubq6OjpKSko5+fp5OTtIqKv4qKvouL - voqKvYaGwISEwIKCv4KCwYODwoiIv4uLwI+PvpCQvZGRvJmZtKWlp6Wlo6WloaGhpJmZrJKSsouLuImJ - t4iItoiIs4iItIiIuoiIuoyMuZOTtJiYsJqarZ+fqaSkpaWlpqSkpaSkpaSkpaSkpaSkpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaSkpKSkpKSkpaWlpaWlpbAPpaWlpaWlpaWlpKSko6OkpKSlpaWlpqampqampqan - paWmo6Oko6Okm5utkZG1hobBgIDHgoLDgYHDgoLEgYHFhoa+j4+zkpKvkZGwmZmln5+hoqKhoaGhoqKi - oqKioqKjoKCklJSvi4u2ioq4h4e9iYm+iYnAioq+jY26j4+4jo67jo67l5exoKCmo6OioqKjoqKioaGh - oKCgoaGfnJyll5erlparkZG1ioq+hITFgoLGg4PEhobBjIy7jY27jIy8kJC4nJyspaWjo6OkoqKjoqKi - o6Ohn5+llZWyioq/i4u+jIy+jIy9h4fCgoLHg4PFh4fDjIy/kpK4m5uuo6OnpaWlpKSloqKjoqKjpaWj - oKCpkZG6hITHhYXGhYXFgoLFgYHEgYHDgYHEgoLEh4fCj4+6mZmwoaGno6OkoqKjoaGhoaGhoqKgnJyn - j4+3i4u7jIy6i4u5i4u5i4u6ioq+hobDhobDhYXEiYm/lZWyoKCloqKioaGhoKCgoKCfnJyikZGthYW+ - gIDDgoLFhITFhITFhobCjo67lJS1lJS0k5O3nJywqamlpqanpqampKSko6OhoaGjmJiui4u9jY27i4u9 - hobEg4PHhITGhITGg4PFiYm+kpK0mZmtnp6oo6OkpKSkpKSko6OjoqKioqKio6OkpKSlpaWmpqanpqan - pqanpqanpqanpqanpqanpqanpqanpaWmpaWlpaWlpKSko6Oko6OkpKSlpaWmpaWmpKSlo6Oko6Oko6Ok - o6Oko6OkpKSlpaWmpqanpqanpqanpaWmpaWlpaWlpqalpqampqanpqanpKSlo6Oko6OkpKSko6OmnJyt - nZ2snp6rl5exjY25iIi8hoa8f3/BgIDCgYHDh4e9j4+2j4+2jo63jY25k5OynZ2no6OioqKjnp6nkZG1 - hITBgIDEgYHCgIDBf3/BgYHBgoLDgoLHg4PHiIjDlJS1nJyrnJypnp6pnJytlZW0l5ezlZW1kZG2hoa/ - f3/EgYHAgoK+iIi5i4u4jIy7j4+6lJS3lpa4mpqypKSoo6OpnJyxlZW3jo65jY26i4u6h4e8g4O8g4O8 - h4e9ioq6ioq6i4u7ioq9jo65l5evnJyooaGjpKShoaGlnJyql5eslJSsi4u3h4e3h4e1h4e2hoa9goLE - g4PDhITDiYm7jo60lZWtoKChoaGhnp6lkpK0jIy8jY26i4u5iIi5hIS5gYG9gIC/gYHAg4PBiYm/iIjB - iIjAioq+j4+5mJiuo6Oko6OkpKSjm5utj4+5jIy8i4u+h4fDhYXChITAgYHAf3/BgYHDgoLFgYHHhobE - i4vCjY3Al5e1paWopqampqakoKColpaxkZG1kJC2j4+1jY2zh4e1hIS4iIi4i4u3kZGxlZWxmJiwmpqu - m5uupKSlpaWmpaWmpaWmpaWmpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6OkpKSlpaWl - sA+lpaWlpaWlpaWlpaWkpKWjo6SlpaWlpaWlpaWlpaWkpKWjo6SioqWYmLCJicCDg8aDg8SCgsOCgsSB - gcOBgcWKirmTk66RkbGRka+dnZ+fn52goKChoaGhoaGioqKgoKWamquUlLGNjbeGhr6CgsWDg8aDg8aI - iMCMjLyLi72Li72Rkbienqmjo6Sjo6OioqOioqOioqKhoaGhoZ+dnaSWlqyOjrSIiLuCgsOCgsWDg8WG - hsGLi7uKiryLi72MjLyWlq+hoaSkpKSjo6Sjo6SioqKhoaOenqaWlq+MjL2MjL2MjL2Hh8ODg8aDg8SF - hcKMjLuNjb2RkbqenqyoqKKlpaWlpaWkpKWioqSkpKKgoKiSkriGhsWFhcaEhMWCgsWCgsWCgsWCgsWD - g8KDg8SMjL2cnKylpaGjo6Sjo6SioqOioqGgoKKYmKyMjLqNjbiNjbmPj7WNjbWHh72FhcKFhcKGhsOF - hcSNjbubm6qjo6KioqKioqKioqKfn6KYmKiMjLaAgMSAgMOCgsSEhMWHh8KOjrqSkrSUlLWUlLWYmK+h - oamnp6empqempqempqakpKOhoaKZmayNjbuMjL2EhMWEhMeFhcaFhceFhceFhcaKisCRkbaZmayfn6ak - pKSlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaampqempqempqempqempqempqempqelpaWl - paWlpaWlpaWkpKSjo6WmpqempqempqempqakpKSjo6Sjo6Sjo6Sjo6SlpaampqempqempqempqelpaWl - paWlpaWlpaampqempqempqekpKWjo6Sjo6SioqWdnaydnayenquUlLaKir+IiL+CgsSAgMGBgcGGhruO - jrONjbWDg8SEhMOCgsWMjLqcnKmjo6GhoaOioqKXl6+Jib+BgcSAgMKAgMGAgMCAgMGAgMKBgcSFhcKO - jruUlLWcnKyenqmioqSioqWcnK2cnK2VlbWIiMKCgsaCgsKDg76GhraIiLmIiLqIiLyLi7uQkLeVlbSd - na+lpailpamdnbCXl7WUlLeOjryJicGGhr+Dg7yEhLqHh7iJibqJibyJibyJib6NjbqWlrCdnaihoaKi - oqGjo6Kjo6ChoaKXl6uNjbeIiLmGhreDg7yAgMSCgsODg8OJibyPj7WRkbORkbKYmKqgoKOhoaCXl6yR - kbWSkrKQkLKKireCgr2AgL6Bgb2BgcGBgcWCgseBgcmIiMGMjL2Pj7uWlrGioqOjo6SlpaKcnKyQkLmJ - ib+GhsKGhsKGhsGDg8KAgMJ/f8GBgcKBgcOCgsSDg8aDg8iIiMWWlrekpKmmpqeoqKSdnayQkLiRkbiQ - kLeQkLaLi7mGhriFhbaJibaQkLCRkbWRkbaSkraRkbeUlLSjo6akpKWlpaalpaalpaalpaakpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6SlpaWwD6OjpKWlpaWlpaWlpaWlpaWlpaOjpKWlpaWl - paWlpaWlpaSkpZ2dqZiYr4+PuYqKwIaGw4KCxYKCxIKCxoeHv4+PtZOTsJKSsJWVq52dn56enZ6enqCg - oKGhoaGhopqarJWVsY+PuIiIwIODxYODxISExYmJv4yMvIuLvYyMvJGRt5WVsqGhpqSko6OjpKOjpKKi - o6Kio6KioqKioJ6eo5OTroeHvYKCxIGBw4GBxIeHwImJv4ODxYSExIODxY2NupycqKSkoKKioqOjpKOj - pKSko56ep5iYrZOTtIyMu4uLuoSEwoODxYODxoaGw4yMvYyMvZKStpaWs5+fq6ampKWlpaWlpaWlpaWl - paSko6CgpZmZsIyMvYWFxYODxoWFx4WFx4WFx4aGxYSExY2Nt5WVrJ2dp6Sko6OjpKOjpKOjpKOjoqCg - o5mZqZSUsZGRtI6OuIyMuoiIvoSEwoWFwoWFwoSEw4iIv5WVsqCgpaKio6Kio6KioqCgpJqaqZKSr4uL - uIKCxIODxYODxoeHwo6OupOTtJKStZGRtZiYsKGhqKWlpKSkpaamp6amp6amp6ampqSko56eppCQtoWF - xISExYSExoSExoWFxoWFx4WFx4uLwZeXsaCgp6OjpKOjpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOj - pKOjpKSkpKWlpaamp6amp6amp6amp6amp6amp6amp6WlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6am - pqSkpKOjpKWlpaWlpaWlpaWlpqamp6amp6amp6amp6WlpqWlpaWlpaWlpaamp6amp6amp6WlpqOjpKOj - pKOjpKWlpKGhqZWVtomJw4SExYKCw4CAwoWFuo6OsYyMtoODw4ODxISExYODx4qKvZmZq6OjoaGho5ub - qo+PuIaGw4ODxoKCw4GBwoCAwX9/wYCAw4WFvYmJuYuLu5OTtZycq6OjpqWlpKKip5mZrpKStoaGw4WF - xoODxYODv4eHuIeHuYiIuIODwYCAxYGBxYSExI6OvJmZsKOjqaiopaCgrJSUuI6OvoqKwoiIwoaGwIaG - vIeHuIaGt4eHuYODwoKCxYKCxoWFxI6Oupqaq6Cgo6GhoaKioaCgpJeXrY2NuoqKu4qKuYSEvX9/woGB - wYGBwoiIu4qKuYuLvIuLvouLvY+Pt5ycqaKioJmZqZOTsJSUr5OTsJGRsYmJuIaGuIKCvH9/w4CAw4KC - xYKCxomJwJCQupGRuJOTtp+fpqKio6Skop2dqo+PuYaGxIaGwoaGwYODw4GBw4CAwX9/wYGBwoGBwoGB - w4GBxYeHwo2NvY6OvpubsaWlqKenppubsI+PupGRuJGRuIyMvIqKu4eHuYiItI6OrY+PsYuLuoqKvYuL - vYuLvo+Pup2dqqOjpaSkpaWlpqWlpqWlpqWlpqSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOj - pKOjpLAPo6Oko6OkpKSlpaWlpaWlpaWlpaWlo6OkpKSlpaWlpaWlpKSlnZ2ompqtjo67hobEhITGhITG - g4PFh4fBj4+3lJSylJSxlZWsnJymn5+gnp6enp6enp6eoKCfoKChlZWvkJC3iIjAhITFhITFhYXEioq/ - jIy9ioq9jIy7kJC3lZWxm5uroaGko6Ojo6Oko6Oko6OkoqKjo6OioKCjlJSviIi9goLEgoLEgIDFh4e+ - h4e/hITEhITEg4PFhYXBkZG0np6mo6OhoqKioqKio6OkpaWjnJyrkZG1jY26ioq7hYXCg4PEgoLGhobD - jIy+jY28kpK3lpazmpqsoaGmpqalpaWlpaWlpaWlp6eko6OnmZmukZG2i4u9jIy9hYXDg4PFhITGhYXH - hYXGkZG5l5evm5ukoKCfoqKjo6Oko6Oko6Oko6Oknp6nlpaukJC1j4+3iYm+hobBhYXChYXChYXChITD - iIi+j4+3m5urpKSioqKjoqKjo6OinJyplJSxjo63iYm7iIi8ioq+jIy+jY29jo67jo67jY27kJC2nZ2o - pKSjpKSlpKSlpKSlpqanpqanp6enpKSnmpqui4u8hYXEhITFhITFhITFhITHhITIiorBkpK5mpqwoaGn - pKSjo6Oko6Oko6OkpKSlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6OkpaWlpqanpqanpqanpqanpqan - pqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpqanpaWlo6OkpaWlpaWlpaWlpaWmpqanpqan - pqanpqanpqampKSko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OknZ2ql5exlJS1kJC6i4u/iYm8h4e5iYm0 - h4e5g4PBgoLEg4PEg4PEgoLHh4fAlZWwoaGioaGjmJitkZG2i4u8ioq7h4e8gIDDgIDBfn7Dg4O9hoa5 - ioq3kpKykpKylZWyl5exnJyrnZ2rkpK4hobEhITGg4PHh4fBiYm6iIi4iIi4g4PCgYHFgYHFgYHFgYHF - g4PEjIy9mZmwpaWno6Oqk5O4iIjEiYnDiYnDiYm+iYm6iIi3hYW3gIDAgYHCgIDFg4PDioq7k5Ozmpqq - oKCio6OhoKCjl5etjIy7i4u8jIy8hobBgYHEf3/DgYHAhoa6iYm5iYm5ioq8jIy8jY26j4+5lZWxoKCj - np6jlpaskpKxkZGzioq6ioq5g4O+fn7Cfn7Bf3/CgYHFh4e/jo65kZG4kJC5k5O2oKCmoqKjo6OioKCl - l5exjIy+jIy9hYXDgoLEgYHEgIDCf3/BgYHCgoLEgoLGh4fBjIy9i4u+jIy9m5uxpaWop6emnJyxkJC8 - kJC5kJC3kJC1jY2yjIyvi4uviIi1iYm4ioq6i4u9i4u9jo66lZWynZ2qoqKlpKSkpKSlpKSlpaWmpaWm - paWmpKSlpKSlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6Oko6OksA+ioqOjo6SkpKSkpKSkpKSkpKSkpKSj - o6Sjo6WlpaWlpaWhoaibm66QkLmHh8OEhMaEhMeFhceKisCSkriVlbSUlLWUlLOZmaqgoKKgoKCfn56e - np6enp6enp+ZmaaOjraHh8CEhMWDg8eGhsWMjL+Njb2Njb6Pj7uRkbeTk7OZma2hoaWioqOioqOioqOj - o6Sjo6Sjo6ShoaSXl6+KiryEhMOEhMODg8OHh72EhL2CgsKCgsWEhMSIiL+NjbiZmaugoKKioqGioqKi - oqKioqOioqWbm6ySkraLi76FhcKDg8SCgsaHh8KMjL+QkL6UlLiYmLSVlbSdnaqkpKOlpaSlpaWlpaWl - paWjo6ebm6+WlrWTk7WMjLyGhsCCgsOCgsWDg8aGhsWQkLuXl7OdnayhoaOgoJ6fn5+ioqKjo6Sjo6Sk - pKOcnKuRkbaNjbmIiL2EhMKDg8SEhMSEhMSFhcKJib2QkLWWlq+enqajo6CioqOioqOkpKGZmayOjrmK - ir2Li7uLi7mGhsGGhsOIiMOIiMOGhsSGhsSRkbeenqakpKGjo6WkpKWkpKWlpaanp6ejo6qamrOOjr2F - hcSEhMWEhMaEhMaDg8aFhcWMjMCSkriZmbGhoaqkpKWkpKWkpKWjo6Sjo6SkpKSlpaWlpaWlpaWkpKSk - pKWkpKWkpKWjo6Sjo6SkpKSmpqampqempqempqempqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaam - pqempqempqempqakpKSjo6SkpKWlpaWlpaWlpaampqempqempqempqelpaWkpKSjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sbm6uUlLSTk7WTk7SQkLWPj7KLi7SFhbmCgsCCgsWDg8WEhMWDg8aGhsCMjLuSkrObm6ih - oaGcnKiXl6+Pj7iIiMCDg8SBgcWAgMSDg72FhbuMjLSOjrSHh8CHh8CGhsKJib+WlrKdnayVlbeMjL6N - jbuKir6Kir2Li7mIiLqBgcCBgcWCgsWCgsaBgceCgsWJicCKir6Xl7CkpKakpKiamrOSkruTk7qNjb+L - i7+Li7qHh7mAgL9/f8F/f8ODg8GLi7mSkrSWlrSWlrGcnKqioqKgoKSXl66Pj7eLi7yLi7yJib+Hh7+G - hryFhbqGhreJibmJibqKirqNjbmQkLiVlbGZma2hoaSioqCZmaiOjrWLi7qKiruFhcCAgMJ/f8J+fsJ/ - f8KGhr2MjLePj7WQkLeQkLmUlLWdnauioqSjo6Kjo6KdnamPj7qHh8OEhMaDg8aCgsSAgMKAgMGBgcKB - gcWHh8KLi76Li72MjLyTk7Wamq6jo6mnp6afn66UlLmVlbeUlLaTk7OVlamRkauHh7WFhbeIiLiKirmK - iruPj7iWlrGamqybm6uioqWjo6SkpKWkpKWkpKWlpaalpaalpaakpKWkpKWlpaWlpaWlpaWkpKSjo6Sj - o6Sjo6Sjo6SwD6KioqKio6OjpKOjpKOjpKOjpKOjpKOjpKKio6OjoqGhpZiYr4+Pu4WFxYKCx4KCx4WF - xYqKwI6OvpGRuo+PvJCQu5iYsqKipaKioaGhoaCgoZ+fn56enZuboZGRsIWFv4KCxoKCxoWFxIuLv46O - vI6OvY6OvY6OvI+PuZaWsaCgpaKio6Kio6Kio6Kio6Kio6OjpKOjpJubq4yMvISExoSExYaGwoiIvYeH - vYKCwYCAxIODw4aGwIiIvpSUsZ6epKKioKGhoaGhoaKioqOjoJycqZaWsY6OuoWFxIODxYSExYeHwo2N - vY2Nvo6OvZeXtpqatJubsKGhp6Sko6OjpKSkpKWlpaampJ2drpaWtpSUt5CQuoiIwoODxYKCxIKCxoWF - w46Ot5aWsZeXs52draOjpqOjop+fn5+fn6KioqSko6OjpZmZr42NvImJwISExIODxISExIODxoSExIqK - voyMvJGRtZubqaGhoaGhoaGhoqKio6GhpZaWsZGRtpCQt4uLvIeHwYKCxIGBxYODxoODx4SExoqKwJSU - tZ+fp6OjoqKio6OjpKSkpaSkpaWlpKKiqZiYtoqKw4SEx4WFxoWFxoWFxoSExoeHw4+Pu5WVtZubr6Oj - p6ampKWlpaWlpaSkpaOjpKOjpKWlpaampqampqampqWlpaWlpaWlpaSkpaOjpKOjpKSkpKWlpaamp6am - p6amp6amp6ampqSkpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlp6amp6amp6ampqSkpKSkpKSkpKWlpaWl - paWlpqamp6amp6amp6amp6ampqSkpKSkpaSkpaSkpaOjpKOjpKOjpKGhppycrZWVs5KSs5GRsY2NtYeH - uoGBv4CAwYKCw4ODxYODxoeHwYqKu4uLuo2Nt5eXrKKioKGhopeXrY2NuYeHv4aGwIaGvoWFvYWFuouL - souLtIaGv4CAx4GByISExI+PuJycqqGhp5ycrpaWs5CQuYyMvIuLu4mJvIODwX5+w4CAw4GBxIKCxoWF - w4uLvo2NvIyMvZqar6OjpaSkpaCgq5qasZiYtI+PvY2NvYmJvYKCwH9/wn9/woKCwImJt5CQsJOTsZSU - tZSUtZmZrqGhpaKio56eppaWroqKu4qKu4uLu4uLu4qKuoiIt4aGt4mJuYuLuYyMt46OtZKSs5WVspiY - rZ6ep6OjoZ2dpo+Ps4aGvYSEwIGBw4CAxH9/w39/wYODu4qKtI2NtY+PtpCQtpOTs5eXsJmZr6GhpaOj - pKSkoZ6epo+PuYKCyIODx4KCxoGBxoGBxICAw4CAwoWFvoqKu4yMvIqKvYuLvI6Ouo6OupmZr6Wlp6Oj - q5qas5ubspqasJubrZWVroyMtIeHuIaGt4SEv4WFwISEw4yMu5iYrpubqZqaqqKipKOjo6OjpKSkpKWl - paWlpaWlpqWlpqSkpqSkpqSkpaWlpaWlpaSkpKOjpKOjpKOjpKOjpLAPoqKjoqKio6Oio6Oko6Oko6Ok - o6Oko6OkoqKko6OhoKCjlpaviIjAhYXChYXBhYXCiIjAjo67jY29jY2+jo6+kpK5nZ2tp6eio6OjoaGh - oaGhoaGhoKCenJygkZGvhYW/hITBhITBiIi9i4u7iYnAiorBiorBiorBj4+7m5utpKShoqKioqKjoqKj - oqKjoqKjo6OkpKSjmJiwioq/hYXEh4fBiIjAiIi/hITDg4PFhITChoa/iYm7jY21mpqpoKCioaGgoaGh - oaGhoqKioaGjl5evjIy7hobDgoLGg4PEhITFiIjAiIjAioq9kZG4lpa2l5e2oqKspqanpKSlo6Oko6Ok - pKSlp6ejmpqxk5O5kJC8h4fDg4PHg4PFg4PGg4PGioq8lZWvlpaumZmuoKCqpKSmpaWlo6OjoKCgoKCg - oqKim5uskJC4iYnBhYXEhITFhITFg4PGhITFiYnAjIy8j4+5lJSynp6lo6OfoaGhoaGhoqKinZ2pmpqt - lpaxj4+5h4fCg4PGgYHDgYHDgoLEhITFioq/lJS1mpqvoqKopKSjoqKjoqKjo6OkpKSkoaGlm5uukpK7 - iYnFhobIhYXIhYXGhYXGhYXGhobFi4vBlJS3n5+tpKSnpaWmpaWmpaWmpaWlpKSko6OkpKSlpqanpqan - pqanpaWmpaWlpaWlpaWlpKSko6Oko6Oko6OkpaWlpqampqampqampKSko6Oko6OlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpqampqanpqanpqampaWlpKSkpKSlpaWlpaWlpqanpqanpqanpqanpqanpqampaWlpaWl - paWlpKSko6Oko6OkpaWinJyslZW0kZG2jo63i4u7goLBgIDCgIDBgYHCgoLEh4fAjIy7jIy8jIy7kJC2 - mpqso6OhoqKflpaujIy5iYm7iYm6iYm6iYm5i4u2i4uyhIS9fn7HgoLEhobBkZG2mJiroKCkpKSjoKCo - lpazjY2+i4u/iYm+g4PBf3/Ff3/CgIDDgYHDgoLFhobDiorAiYnCiIjDlJS3n5+ppKSioqKmm5uulZW0 - jY27iYnAg4PEf3/Gf3/CgYG+iIi2jo6wkZGwkZGzlJS0mJixn5+po6OlpaWioKCllJSyiYm9iYm8iIi8 - iIi8iYm6iYm5h4e4iYm5jIy5jY25jIy3j4+1kpK0lZWxnJyooqKjoqKjmZmqi4u6gYHFgIDEf3/DgIDC - hIS7iYmzi4uxjY20j4+1kpKyl5etmZmrmpqtnZ2qoqKlpKSin5+mk5Ozioq/hYXChYXChYXAhYXAhIS/ - g4O+iYm5ioq6ioq8ioq9iYm+iIi/jY28lpawoqKnpKSonp6sn5+rnp6rmZmwj4+6iYm8h4e5g4O8gIDE - f3/FgoLEjIy6lpawmJitmJitn5+mo6Oko6Oko6OkpKSlpaWlpaWmpaWmpaWmpaWmpKSlpaWlpaWlpaWl - paWko6Oko6Oko6OksA+jo6SioqOioqKioqKjo6Ojo6Sjo6Sjo6Sjo6Sjo6Ofn6WXl62MjLuLi7uLi7uL - i7qKiruJib+Kir+JicKRkbuamq+ioqempqWlpaWjo6OhoaGhoaGgoKGcnKKVlamLi7eKirqKiriIiLmG - hr+CgseEhMaDg8iJicKXl7Ojo6ekpKOioqKioqOioqOioqOioqOioqOhoaaUlLSNjbyMjL2MjLyJib+D - g8aCgsaEhMSIiL+Li7qOjrSYmKaenqGhoaGhoaGhoaGhoaGhoaGdnaaUlLGJib+Dg8aEhMWEhMWDg8WC - gsaAgMiJib+UlLSVlbSXl7WkpKqnp6ampqekpKWjo6Sjo6SkpKSbm6+Pj7yHh8SCgseDg8WCgsSEhMSJ - ib+OjreSkrOTk7Kbm6ajo6SmpqSlpaWlpaWjo6OhoZ+cnKSRkbSGhsCDg8ODg8SEhMWEhMWFhcWJicCN - jbuQkLmVlbGcnKmgoKOhoaChoaGhoaGhoaCdnaeamquQkLeFhcSDg8aDg8WBgcOAgMOCgsOJibySkrOX - l7CgoKikpKWkpKSjo6SioqOioqOhoaaamq+OjruGhsWFhcmFhciFhciFhcaFhcaFhceEhMiFhceUlLik - pKmnp6ampqempqempqelpaalpaWkpKSkpKSlpaWmpqempqempqelpaalpaWlpaWlpaWkpKSjo6Sjo6Sk - pKWkpKWkpKSkpKSjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqekpKWj - o6SkpKWlpaWmpqempqempqempqempqempqelpaalpaWlpaWlpaWkpKSjo6SkpKOXl7CQkLeQkLmNjbyL - i7qCgsKBgcN/f8GAgMGFhb+KirqLi7uLi72Skreamq6fn6mioqWioqKamqqSkrSMjLmLi7mLi7iLi7eN - jbSDg759fcR/f8KFhb6RkbObm6qbm6udnaiioqOfn6iUlLWOjruQkLqIiMKAgMmBgcWAgMSAgMOBgcOC - gsWDg8eCgsiDg8mDg8mJicKXl7OioqaioqScnKqWlrGNjbuFhcOEhMWDg8OCgr+IiLSOjq+RkbCTk7ST - k7aWlrScnK6hoamjo6elpaSenqmRkbaPj7mOjraOjrWLi7aKiriKiriIiLiGhruHh7+IiMGJib6OjreT - k7CXl66cnKmgoKSkpKGgoKaRkbWEhMKCgsOBgcOFhbyKirOKirCKirCNjbKQkLGTk6+Vla+VlbCWlq+X - l7CgoKelpaOioqWdnaiYmKyPj7SNjbaMjLiKirmJibiIiLiHh7iIiLqJibyJib2Kir2NjbmVlbKbm6yh - oaajo6Sioqafn6mamrCOjryLi76JibyEhL6AgMKAgMKCgsGHh7qNjbeOjriOjrmOjrmWlq+fn6Wjo6Oj - o6Sjo6SkpKWlpaWlpaalpaalpaalpaakpKWlpaWlpaWlpaWlpaWkpKSjo6SwD6OjpKOjpKKio6KioqKi - o6OjpKOjpKOjpKSko6Cgp5aWsY+PuIyMu4yMu4uLvIqKvIeHv4KCx4ODxoODxo+PvJ6eraampKWlpaWl - paWlpaOjo6GhoZ6epJeXq4+Ps4mJuYmJuYiIuIODvoCAxoGBxYODxoODx42NvJ6eq6ioo6WlpaOjpKKi - oqKio6Kio6Kio6GhpJubq46Ou4uLvoyMvYiIwYKCxoODxYKCxYeHvoiIvY2NtpmZpp6eoJ+fn6CgoKGh - oaGhoaGhoaGhopycp5eXrY+Pt4eHwYODxoODxYODxYODxYSExYeHwoyMu5SUtJubraSkqKenp6amp6Wl - pqSkpaOjpZ6eqJaWsYmJv4KCx4SExYSExYODxomJwI2Nuo6Ot46OuI6OuJqapqGhoaSko6WlpaWlpaWl - paOjopiYq4mJu4KCxYODxIODxYODxYSExYmJv42NvI6Ou5OTtJmZraKipKOjoaGhoqGhoaGhoaCgopqa - qY6OuYWFxIODxoSExYSExYKCxIGBxIiIvJGRsZOTrpWVsKKipaWlpKSkpaSkpaOjo6Kio5qaqpCQuYaG - xISEx4WFxoSExoSExoWFxoWFx4WFyIaGxoyMwZmZs6Ojp6ampaamp6amp6amp6amp6WlpaWlpaSkpKOj - pKWlpaamp6amp6amp6ampqWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKWl - paWlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6ampqSkpKOjpKWlpaamp6amp6amp6amp6amp6amp6am - p6WlpqWlpaWlpaWlpaOjpKSko5ubrJCQt4yMvI2Nu4yMvYWFw4KCwoCAwYKCvIiIt4mJuoqKu4mJvZSU - tJycrJubrZycq6OjpKCgpJmZrJSUsZGRsY+PsI6OsoKCwH9/xH9/woKCvY2NspmZqpmZrZmZrpmZrpqa - rJqarJeXsJeXsZeXsoyMv4ODyIODxYGBxYCAwoCAw4CAw4KCxYODxoSExoWFx4aGx5CQu56eq6Wlo6Cg - pZubq4+PuIyMu42NuoyMuoqKt46OrY+Pr5GRspOTtpSUuZSUuZOTuZKSuZiYsqKiqKKippqarJycqZqa - qJmZqJOTrI6OsYuLt4aGvICAwYCAxICAx4iIv5WVsJeXrJmZqZmZqp+fpqSkoZ6ep5KStIyMuouLuYuL - uYyMtYyMsIqKsYiIsoyMso6OsouLt4qKu4uLu4yMupOTs5+fp6Sko6OjpKSko6OjoZycp5WVroyMt4iI - u4iIuYeHuYaGt4aGuYiIvImJvouLu5KStJGRtZaWr6CgpqWlo6KipZqarY2NvIyMvYyMvYaGwoGBxYGB - woGBwIeHuImJt4WFv4KCxoODxoSExpCQt56ep6OjoaKio6OjpKOjpKWlpaWlpaWlpqWlpqWlpqWlpqSk - paWlpaWlpaWlpaWlpaOjpLAPo6Oko6Oko6Oko6OjoqKioqKio6Oko6Oko6OkmZmtjo66jY29jIy7jIy7 - hobCgoLGg4PFg4PFg4PFj4+5l5ewn5+ppaWlpaWlpaWlpaWlpqaloaGml5eskJC0ioq7iYm6iYm5hITA - gIDFgYHEgYHEgYHEiIi/j4+5nJytp6ejpaWlpaWlo6OkoqKjoqKioaGjnp6mmZmsjo66i4u+h4fCg4PH - hITGg4PFiIi9iYm8iYm8kZG0nJyloKCgn5+fn5+foKCgoqKhoKCim5uolpavkJC2h4fAgoLGhITGhITG - hITGhITGiYm/jIy8jY28k5OzoKCmo6OjpaWmpqanpqanpaWnnp6qmZmui4u+g4PGg4PEg4PEg4PFg4PF - goLGh4fBjIy7jo63lZWvoKCioaGgoaGho6OjpaWlpaWloKCqk5O1hobAgYHEgoLEg4PFg4PFiIi/jIy7 - jo66jo65j4+4lZWyoKCmo6OioqKjoqKhoKCimZmpj4+3hYXDg4PGhITFhITFhITFg4PEh4e+jo61kpKv - k5OsmpqmoaGipKSkpKSlpKSlpKSloaGlm5uqkZG2h4fChITGhITEg4PFhITFhITFhITGhobHjY3Ampqy - oKCspKSnpaWlpaWmpqanpqanpqanpqanpaWmpaWlpKSlo6OkpaWlpqanpqanpqanpqampaWlpaWlpaWl - pKSko6OkpKSkpaWlpaWlpaWlpKSko6Oko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqanpqan - pqanpqampaWlo6OkpaWlpqampqanpqanpqanpqanpqanpqanpqampaWlpaWlpaWlpKSkoKCmlJSyi4u9 - i4u9i4u9ioq6iYm5hoa3hoa3iYm6iYm6iYm6iYm7jIy6jY27j4+7lpayoqKlpKSjnZ2nlJSvkJCzjY2z - gYHDgIDCf3/ChIS8jIyzkJCwkpK0jY27jIy8jIy9jo66lJSxnZ2omJivj4+6i4u/i4u+iYm/goLEgIDD - f3/Cf3/CgYHEg4PFhITFhITGg4PIjY29np6spqakoqKmoaGlm5uqmpqrm5upmJiskJCxjY2vjY2vkJCv - jo62iYnAh4fGh4fFhobGkZG7oKCspqajo6OloqKkm5uqk5OwkJCxjY20hoa9gYHDgIDBgYHCgYHFhYXC - j4+3mpqpmZmqmJiqnp6lo6OhoKClmpqtmpqsmZmqmZmolJStj4+wjIyvgYG9gYHBgoLEg4PFg4PGhITE - jIy7l5etn5+ko6Ojo6Oko6Oko6OkoKCkl5eujIy4h4e6hoa4hoa3hYW5h4e7iYm9i4u9jIy9jIy9jIy+ - kJC3nJyopaWhoqKlmpqtjo68jY29h4fDg4PHgoLFgYHChoa3iIi3g4O+gYHCgoLDhITDi4u9l5euoKCk - o6OioqKjoqKjo6Oko6OkpKSlpaWlpaWlpaWmpaWmpaWmo6OkpKSkpaWlpaWlpaWlsA+jo6Sjo6Sjo6Sj - o6Sjo6OioqKioqKkpKOfn6eWlrGRkbiRkbiNjbyFhcODg8WDg8WCgsaFhcSRkbaYmK2cnKmgoKakpKSl - paWlpaWlpaWnp6OdnayQkLiLi7uKiruKiruEhMGBgcWBgcWBgcWBgcWGhr+OjreSkrObm6ulpaOlpaWl - paWlpaWkpKWjo6OhoaKenqaZmayPj7mGhsKDg8WDg8aEhMWIiL2IiL2IiL6GhsCLi7qZmamhoaGgoKCf - n5+fn5+goJ+fn6SVlbCQkLaIiMGDg8WEhMaFhceFhceEhMiKisCNjb2NjbuRkbSZmayhoaOjo6Sjo6Sk - pKWnp6elpaiZmbOKisCEhMaFhcaEhMWCgsWCgsWBgceHh8GMjL2Li72OjriamqigoKKhoaGhoaGhoaGj - o6Kmpqabm6+MjL6EhMWCgsWBgcaDg8WIiL+KiryKiryKir2Li72Ojrmbm6qhoaSioqOioqOjo6KgoKST - k7KFhcKBgceCgseFhcOKiruJibyKiruJibyNjbeTk6+ZmaeenqCgoKChoaKjo6SlpaWjo6adnauXl6+R - kbWIiMCDg8eCgsSBgcODg8WEhMWDg8eGhsSSkrigoKylpaelpaalpaalpaWlpaWmpqempqempqempqem - pqalpaWlpaWjo6SlpaWmpqampqempqempqelpaWlpaWlpaWkpKSjo6Sjo6SlpaWlpaWlpaWkpKSjo6Sj - o6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqelpaWjo6SkpKSmpqampqempqem - pqempqempqekpKWjo6SlpaWlpaWlpaWlpaKZma2Pj7eRkbWRkbSRkbOLi7iHh7iHh7iHh7mJibqJibmE - hMGDg8SDg8WHh8GVlbOioqWlpaKZma6RkbWQkLKNjbKLi7WKirWMjLGLi7GJibWJibmMjLuHh8WGhsaF - hciHh8OSkrSenqabm6qOjrmJibyIiL2CgsSAgMN/f8J+fsF/f8GBgcOCgsSDg8WDg8aIiMGPj7ubm7Cl - paWlpaWkpKWhoaWbm6eWlq2SkrKPj7GNja+OjqyNjbKHh76Dg8aEhMeEhMiKisOXl7WioqmmpqSkpKad - nayVlbOTk7OOjraHh76CgsSBgcOAgMF/f8OEhL+IiLqLi7iVlbCXl66Xl6+Zmamfn6KioqOenqienqee - nqecnKeXl6yNjbWCgrx/f8GAgMOCgsSEhMWDg8aGhsOSkrSbm6mcnKifn6Wjo6Kjo6WhoaaioqSbm6uS - krCLi7SGhrmFhbmFhbmGhrqJibqMjLyNjb+Ojr2Tk7iTk7eamrGhoaejo6KhoaaUlLWHh8OCgsiCgsiF - hcSJibuHh7eDg76BgcGAgMODg8KMjLqSkrWUlLOamq6hoaejo6OioqOioqOjo6Sjo6SkpKWlpaWlpaWl - paWlpaWkpKSjo6Sjo6Sjo6Sjo6SwD6Kio6Kio6OjpKOjpKOjpKOjo6KioqKio5iYrpGRtZCQt42Nu4aG - w4KCxYKCxYODxoaGxIuLvo6OuZWVsZubqKCgpKOjo6SkpKWlpaWlpaSkpZ2drZaWtZGRuIqKvIWFwYKC - xYKCxoKCx4ODxYeHvo6Ot5KSsZeXq5+fpaOjo6SkpaWlpaWlpaSkpaSko6KiopubqZGRt4eHwYODxYKC - xoSExImJvYmJvYiIvoaGwIqKupSUrpycpqGhoaGhoaCgoJ+fn6Cgnp6eopOTs4eHwIKCxYKCxoSExYSE - x4SEx4mJwo2NvouLwJCQuZycqqGho6Kio6Kio6OjpKOjpKampaamqJycsIyMwIqKwIiIwoODx4ODxoGB - xYeHv4uLvIyMvI6OupWVsqCgpKGhoaGhoaGhoaGhoaGhoZ+fp5SUto2NvoqKwYmJwYmJwImJwIyMvYuL - vYqKvYqKvI6OuJeXrqCgpKKio6Kio6Kio6OjoqKio5mZrIqKvIiIwImJvoiIv4aGwoWFwYWFwoaGwJCQ - tJubp6CgoqCgn5+fn6CgoKKioqWlo6Ojp5iYspOTt4qKv4SExIKCxYGBw4GBw4KCxIKCxoaGwomJvpGR - t6CgqqWlpqWlpqWlpqWlpqWlpqWlpaamp6amp6amp6amp6ampqWlpaSkpaOjpKWlpaamp6amp6amp6am - pqWlpaWlpaWlpaOjpaOjpKSkpKWlpaWlpaWlpaOjpaOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWl - paWlpqWlpqampqampqSkpKOjpKOjpKWlpaamp6amp6amp6amp6amp6WlpqOjpKOjpKWlpaWlpaamo5+f - qZeXr5iYrZmZq5OTr4uLuIiIuoeHuYiIuYuLu4aGwYKCxIKCxoGBx4WFwpOTs6KipaWlopubrJKSto+P - t46OtYyMspKSqY6OrYiItIeHt4mJu4WFw4ODxoODyYaGxoyMv5OTuJmZrqCgpZaWr4iIvoKCxYGBxYCA - xH9/wn9/wYCAwYGBw4KCxYWFxYmJv4yMvI2NvZWVtaKiqKWlpaOjp6Kipp2dqJWVrpCQspCQsY6OroqK - sYWFvIGBw4GBxYSExomJwZCQu5+frKampaampaSkp5ycrpSUtJCQuImJv4ODxYKCxYKCxICAw4SEvomJ - uouLu4uLvIqKvYuLvIiIv5CQtZycpqGhoZ6ep5+fpp2dqZmZrY+PtoWFwICAwn9/wYCAwoKCxIODxYOD - xoWFw46OuZGRtZSUsZycp6OjoKKiop6epZubqpmZq5WVrYyMtIWFuoaGuYaGt4iIuIqKuYyMu46Ovo6O - vZSUt5qasZycrqGhqqamo6GhpJWVtIqKv4iIwomJwYuLvouLuoODv4CAwX9/w4SEvoeHvISEwYiIwIWF - w46Ou5ycrKSko6OjpKKio6Kio6OjpKSkpKSkpKWlpaWlpaWlpaSkpaOjpaKio6KioqKio7APoqKjoqKj - oqKjoqKjo6Oko6Oko6OjoaGjlZWwjo65i4u8hITDgoLGgYHFgoLFhITFhobDiIjAhobDkZG1nZ2noqKi - oaGioqKkpKSlpaWlo6Omnp6rl5e0jo6+hobEgoLGg4PHhITHhobFioq+j4+2kpKwl5eqnp6koaGhoaGh - oqKjpKSlpaWlpqalo6Omm5utkJC4hITEgoLGgYHHhYXDiYm+ioq9iYm+h4e/jY24lZWtnJykoaGhoaGh - oaGhoaGhoKCgnp6fmJini4u5g4PFgYHGg4PGhITGhYXEiorBjY2/i4vBjo69l5eyoaGopKSioqKioqKj - oqKjoqKjo6Olo6Oonp6tkZG7iorChobFg4PHhYXFiYnAi4u8i4u7ioq8kJC2nZ2po6OjoqKioaGhoaGh - oqKgn5+jl5eskJC3jIy7jIy8jIy9jY29jY29jIy+jIy+ioq9i4u7lJSxoKCjo6OioqKioqKjo6OioqKj - nZ2ol5evjo65jIy6iYm8hYXCg4PGgoLFhYXBioq6k5OwnZ2lo6OfoaGhn5+fn5+foKCgoqKinZ2qkZG5 - iorAhYXGg4PHgoLFgoLEg4PFgoLFhobCiYm+jo64mJiuoaGlpaWmpaWmpaWmpaWmpaWmpaWlpaWmpqan - pqanpqanpqanpqampaWlpKSkpKSkpaWlpqanpqanpqanpqampaWlpaWlpaWlpKSlo6OkpKSkpaWlpaWl - paWlpKSlo6OkpKSlpKSkpaWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpKSkpKSko6Oko6Oko6Oko6OkpaWl - pqampqanpqanpqanpqanpaWlpKSkpKSkpaWlpaWlo6OnoKConZ2olZWwjo63ioq6iYm6iYm5iIi5hobB - g4PGg4PFgoLGg4PGi4u8mZmroqKipKSjoaGnmZmvlJS0lZWwlJStkZGtiYm0hoa3hYW4g4PAgYHFgYHG - hobDi4u/j4+9kJC7lpa0o6Ojnp6njo65goLGgYHGgoLEgIDDgIDBgYHBgYHCgYHEg4PFh4fBhobChYXD - jo66nZ2rpqaloqKpoqKonp6qlpawkJCzkJCwi4u0hIS7gIDBgIDFg4PFi4u/k5O3lZW1n5+spqalpqal - paWmoqKpl5ezi4u/hITGg4PGhITFgoLFhYW+h4e5ioq4ioq8h4fBhobChYXEiIi/kpKznZ2moqKfoKCk - nJyomJiukJC4hobCgYHFgYHDf3/BgIDDgoLEg4PFg4PFhITFhobCiIjAkpK0nZ2moqKfoaGhoKCimZmr - lpauk5Oxj4+zi4u0i4uyh4e2h4e6hoa+hobBiIjDiYnDlZW2nJyvnJyvn5+spaWmo6Oml5eukZG3kJC5 - j4+6ioq/hYXCgIDDfn7DhIS+hoa8g4PAgYHGgIDHg4PFj4+4nJypo6Oio6Oko6OkoqKjo6Oko6Oko6Ok - pKSkpaWlpaWlpaWlpaWlo6OkoqKjoqKisA+ioqOioqOioqOioqOjo6Sjo6SioqSioqGXl66Kir2Dg8SA - gMaBgcWEhMCEhMOFhcSFhcSEhMWHh8KVlbKhoaWjo6GhoaKhoaKioqSjo6Whoaibm66Tk7iJicKEhMiE - hMaFhcaEhMeIiMOQkLmVlbOWlq2dnaShoaGhoaGhoaGhoaGioqOkpKWmpqSjo6eXl7OKisKGhsOGhsKF - hcKJib+Li72Jib+Jib+Jib6Pj7eXl6ufn6KhoaChoaGhoaGhoaGioqCfn6KVlauKireGhr6EhMKEhMWF - hceHh8ONjb2MjL+Ojr2UlLabm6+goKmkpKWjo6OioqKioqKioqShoaWfn6eZmbCNjcCFhciDg8mEhMeF - hcWKisGLi7+KiryLi7qVlbCioqOioqOioqOhoaKhoaGiop+goKOTk7GNjbaJibqIiLqLi7uNjb6MjL6M - jL6MjL6Kir+OjrmZmaqjo5+ioqKioqKioqKhoaScnKiVlbGOjrmNjbuKir6FhcOCgsWDg8SHh8GLi7yR - kbGYmKmenqSioqGhoaGhoaGgoKCfn56fn6CZmaqNjbyEhMWEhMaFhcaEhMaEhMaDg8aGhsSKir6Pj7iY - mKygoKKjo6Kjo6SlpaalpaalpaalpaalpaalpaWmpqampqempqempqempqelpaalpaWkpKSkpKSlpaWm - pqampqempqelpaalpaWlpaWlpaWkpKSjo6SkpKWlpaWlpaWlpaWkpKSkpKWlpaWlpaWlpaWkpKSjo6Sk - pKWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSmpqampqempqempqempqempqakpKSkpKWl - paWlpaalpaWgoKiQkLeKir6Kir2Li7qIiLqDg7+BgcSDg8WCgsaDg8SKir2SkrOZmaufn6WioqOkpKOh - oaadnaqbm6yVlbGMjLiJibmGhrmBgb1/f8OAgMSEhMKKir2NjbyLi7+Ojr2YmLKhoaafn6eVlbKLi76E - hMSCgsWBgcSAgMKAgMKBgcKBgcOCgsWCgsaDg8aBgceJib6Zma2lpaSjo6elpaagoKuXl7KRkbaOjreF - hb6BgcGAgMSDg8OIiMCOjryTk7iSkriTk7ebm6+lpaanp6SmpqWYmLSHh8SCgsmEhMeEhMWGhsGJibmI - iLeHh7qGhr6FhcKGhsGLi7yVlbCcnKifn6ShoaCgoKGYmK2OjriFhcKBgcaAgMSBgcOAgMGBgcGCgsOC - gsWCgsWCgsWDg8eLi7ybm6ujo6Kjo6GhoaGhoaGenqSVlbCRkbWRkbKQkLGMjLKIiLmEhL2BgcOBgcaE - hMaIiMKQkLuSkrqRkbuXl7WhoaulpaagoKiXl6+Xl6+UlLOKir2Dg8KDg76CgryFhbuDg8CAgMaCgsaF - hcKQkLeZma2dnaihoaajo6Sjo6SioqOjo6Ojo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWjo6WioqOwD6Sk - pKKio6Kio6Kio6Kio6Kio6GhpKGhopeXq4mJvYGBxYODwoSEwoiIvYaGwIWFw4WFw4eHwZGRtp2dqaKi - o6Kio6KioqGhoaKioqKipJubrZSUto6OvYiIw4WFxoWFxoWFxYSExoeHxI2NvZWVtZubq6Gho6KioKGh - oaGhoaGhoaKioqOjoqOjpaGhqJiYsY6OvI2NvIyMvIuLu4mJvYiIv4mJv4mJvouLvIyMu5WVr6CgoaCg - oKGhoaGhoaGhoaGhoZ6eppaWrY6Os4mJuoWFwYSExYWFxoaGxIqKwIuLv5OTt5iYspycrqKiqKSkpaSk - paKio6Kio6GhpJ+fpp2dqpKStoaGxoSEyYWFyIWFx4SExoODx4uLwI6OvJGRtZqaqaOjoKKio6Kio6Ki - o6KioqGhoJycppCQtYqKuomJuomJuoqKu4yMvoyMvoyMvoyMvouLwJSUtaCgpaGhoaGhoaKioqOjoZ2d - p5SUso+PuIuLvoqKvoWFxIODxoSExYWFxIqKvoiIwZGRtJycpaGhn6GhoaGhoaGhoaCgoKCgn56eoJmZ - p46OtoSEw4ODxYSExoSExoSExoeHw4yMvo6OvJiYsqGhpqKioKKioqKio6OjpKSkpaWlpqWlpqWlpqWl - pqWlpaampqamp6amp6amp6amp6WlpaWlpaSkpKOjo6Skpqamp6amp6amp6Wlp6WlpqWlpaWlpaOjpKOj - pKSkpaWlpaWlpaWlpaOjpKSkpaWlpaWlpaSkpaOjpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOj - pKOjpKOjpKSkpaamp6amp6amp6amp6amp6WlpqOjpKSkpKSkpqSkp5+fqpOTto6Ou42NvYqKvISEv39/ - xIGBwoGBxIODxIiIvo6Ot5GRtZGRtpeXrp+fpaOjoqSko6Cgp5aWsY2NvIuLvIiIu4KCwH19w39/wYKC - wYmJvIuLvIuLvYuLvpCQu5iYsp6eq52dq5eXsJCQt4qKvoWFw4ODwYKCv4GBwIGBwoGBxIODxYODxYSE - xYSExYqKvpaWsKGhpaWlpaWlpKCgqJmZsJCQuoeHwYGBxoGBw4GBwIaGu4qKuYqKvYyMv4yMv4uLwJOT - uJ6eraSkp6WlppqasoyMwIaGxYaGxYeHw4yMvImJuYaGt4SEvIODwISEwYiIv5KStJeXr5ubq52dqp+f - pqCgoZaWrYiIvYKCxYGBxYGBxIGBw4GBwoCAwYGBw4GBxIGBxIKCxYaGwo+Pt5ycqaKipKGhpKKio6Gh - oaOjn5eXrJKSspOTsJCQs4eHvYSEv4GBwYGBw4ODxYaGw4qKvoaGw4eHxIaGxY6OvZ2drqampaampZ2d - q5mZq5aWro+PtIqKt4mJtYWFtoCAv39/xYKCxYaGwo6OuZiYrpmZrJeXsJycrKSko6OjpKOjpKKioqKi - oqOjo6OjpKOjpKWlpaWlpaWlpaWlpaWlpaSkpLAPpaWlpKSkoqKjoqKjoqKjoqKjoKClm5uqlZWwjo64 - ioq9ioq7ioq9hITFg4PGg4PGhobDj4+4nJyooaGioqKioqKjoqKjoqKjoaGhoKCklZWyjY29iYnCg4PH - hYXGhITGhITGhITGhITGh4fDk5O3n5+qoqKkoqKhoaGhoaGhoaGhoaGho6Ohnp6mm5uqmZmtkpK2jIy9 - jIy9ioq+iIi/iIi+iYm/i4u8jIy6kpKznJynoqKgoaGhoKCgoaGhoqKgnZ2llZWujo63h4e+g4PDg4PD - hYXEhYXGhYXHhITHiorAkpK4mpqwoqKopqakpaWlpKSlpKSlo6OjoaGjnJypk5OzjIy+hobEhITGhITG - hITGg4PFhobFi4u/k5O3mpqun5+loqKgoqKioqKjoqKjo6Ojn5+mlJSviYm9i4u8ioq7iYm6ioq7i4u9 - jIy9jIy+i4u/jo68mZmwo6OkoqKioaGhoaGho6Ogm5upjo64iYm/ioq+hITFg4PGhYXFhYXFhYXFhITG - hYXGjo67mpqqoaGfoKCgoaGhoaGhoaGhoaGhnp6il5eokZGvhoa/hITFhITFg4PGhobEjo67jo66kpK3 - mJixoaGppKSjoaGhoqKioqKjo6OkpaWmpaWmpaWmpaWmpaWmpaWlpqampqanpqanpqanpqanpqamo6Oj - oqKio6OkpaWlpqanpqanpqanpqampaWlo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlo6OkpKSlpaWlpaWl - paWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpaWlpqampqanpqanpqanpqan - paWlo6OkpaWko6OmnJysl5ezlJSzjo67hITCf3/EgYHCgIDBgYHCiYm8i4u6ioq7ioq9jIy8lJSym5ur - oaGjoqKjmJivjIy9jIy9jY28hobDgoLEgYHBgYG/iIi4ioq8i4u+jIy+jo68kZG5kJC6l5eznZ2smZmv - j4+5ioq+jIy8ioq4iIi4g4O+f3/DgoLDg4PFhITFg4PGiYnAjIy8kJC3nJypo6OkoqKnoqKnnZ2tkJC8 - hITHhITEgoLChIS5h4e2iIi5iYm6i4u9jIy/lJS4lpa1l5eznp6rpaWmn5+smpqykpK6jY2+jY29i4u9 - ioq7hIS9goK+g4O+h4e9jIy7jIy9i4u/jo69lJS3nJytoqKhnp6mkZG0hobBgoLGg4PFgoLEgYHDgIDC - gIDCgIDDgYHEg4PCiYm7iYm9jY27lZWznp6qpKSjoqKioqKhnJynmpqpl5esj4+1hYXBgoLFgIDCgIDB - goLDg4PFg4PGhITFh4fCjIy+kJC6mpqxpqalpaWmoKCslpazkJC0kZGxkZGwjIywgIC/f3/EgYHEhobC - j4+6k5O1kJC4kJC3j4+4lpaxo6Ojo6Oko6Oko6OkoqKjoqKjo6Oko6Oko6OkpKSlpaWlpaWlpaWlpaWl - sA+lpaWlpaWkpKWioqOioqOhoaOamqmSkrGRkbGOjrWJibuIiL2CgsSDg8WDg8WCgseHh8GVlbCioqKi - oqKioqOioqOioqOioqOhoaSbm6mPj7aFhcKDg8aEhMWDg8WEhMaEhMaDg8eIiMKTk7eamrCfn6mkpKaj - o6ShoaKhoaGhoaGhoaGhoaCdnaSXl62Tk7KSkrWMjL2Li72KiryKiruKiruKiruLi7yLi7uYmK6hoaOh - oaChoaGhoaGgoKCiop+ZmamNjbeIiL2EhMODg8KCgsOCgsSEhMSFhcWFhcaEhMeQkLufn6qmpqOlpaWl - paWlpaWkpKWlpaShoaaVla+Kir2EhMWDg8WDg8WDg8WDg8WEhMOLi72MjL6YmLKioqekpKSioqKhoaGi - oqKjo6KgoKaamqySkrSLi7yKirqJibqJibqJibqJibuLi72MjL2MjL6OjruZmbCjo6WkpKWioqKhoaGi - oqCfn6SVlbCJib6EhMWEhMWDg8SEhMSFhcSFhcWFhcWPj7mamq6hoaaioqKhoaGgoKChoaGioqCfn6Oa - mqiQkLGEhMCEhMaEhMaEhMaEhMaHh8OPj7qRkbeQkLiVlbOfn6qlpaSkpKWioqKioqKioqKjo6Slpaal - paalpaalpaalpaalpaWlpaWmpqempqempqempqelpaaioqOioqKjo6SlpaWlpaWlpaWkpKWjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWkpKSkpKSlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6SioqKjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSmpqampqempqempqempqempqakpKShoaWbm6uVlbKNjbyGhsSCgsWC - gsSAgMN/f8CGhrmJibqLi7yLi7yLi7yMjLuUlLKbm6uhoaShoaOYmK6NjbyMjL2MjL2MjL2Li7yJibqH - h7mIiLqJibyLi72Njb2Njb2Njb2Njb2Tk7egoKqbm6+OjryLi76MjL2Li7uDg8F/f8J/f8GAgMOCgsSE - hMWHh8KIiMGHh8KLi72YmK2ioqKhoaWhoaegoKmXl7OMjL+KiryIiLqGhreGhriHh7mIiLmJibqKir2R - kbiamrCdna2enqylpaampqWioqmUlLeLi8CNjb6MjL6Hh8GDg7+Dg76GhryLi7qNjb2Njb6Pj72Ojr6R - kbubm7CmpqSioqKVla+Hh8CCgseDg8WDg8WBgcSAgMJ/f8GAgMGBgcKBgcSBgcSCgsWCgseLi7+amq6j - o6Kjo6Sjo6KenqWYmKuPj7aGhsODg8WCgsSAgMKAgMGAgMKCgsSEhMWHh8KLi72Pj7qQkLqVlbWjo6il - paafn6uYmLWTk7eSkrKOjrOBgcN/f8J/f8OEhL6KiriOjriRkbeRkbeQkLiUlLOcnKqioqSjo6Sjo6Sj - o6Sjo6Sjo6OioqKjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWwD6WlpaWlpaWlpaSkpaOjo6KiopubqZSUsI2N - uIuLuomJvoSExYODxYODxYGBx4iIv5OTspqaqqKioqKioqKioqKio6Kio6Kio6Kio5aWsImJwIODxYOD - xIODxYWFx4WFx4SEyIuLwZOTtpmZrp+fp6SkpaSkpaSkpaOjpKKioqGhoaGhoZ2dpZaWrJOTsJGRtIuL - u4qKvIqKvIqKu4qKu4qKu4qKu4yMupaWsJ+fpaKioqKioqGhoaGhoaGhoZ+fopOTsIeHvoSEw4SEw4OD - xISExYSExYSExYSExYSExoqKwZeXs6Kip6WlpKSkpaWlpaWlpaampKOjppiYsYqKv4SExYKCxYKCxYKC - xYODxoaGw4qKvIuLvImJwJSUtKGhqKWlpKSkpaKio6GhoaKioaCgppycqpeXr42NuouLvImJuomJuYmJ - uomJuomJuouLvYmJwJOTt6CgqaWlpKSkpaSkpaOjoZ6epJiYqpKSs4uLvIqKvYuLvYaGwISEw4SExIWF - w5GRt5mZr6Cgp6OjpKOjpKKio6GhoaCgoJ6eo5ubp5GRs4WFwYODxYSExoSExoODx4mJwZGRtpGRt5GR - t5WVs5ycq6OjpaSkpaSkpaSkpaKio6KioqKioqOjpKSkpaWlpqWlpqWlpqWlpqWlpaWlpaWlpaWlpaWl - paSkpaKio6KioqOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaSk - pKOjpKWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKKioqOjo6OjpKOjpKOjpKOjpKOjpKOjpKSkpKampqam - p6amp6amp6WlpqWlpaWlpJ+fqJOTtYyMu4mJvoiIvYeHu4iIuoaGuYeHtoSEv4ODxIWFxIWFxIaGw4yM - vJiYr6GhpaOjop+fppaWroyMvYyMvYyMvYyMvYqKvIiIuoiIuomJu4yMvI2Nvo2Nvo2Nvo2NvY+Pu5+f - q5ubr5CQupGRuJCQuIWFw4KCxoGBw4CAwYCAwoSExImJwomJwYiIw42NvpWVs5qaqqKioqKio6OjoqCg - pJaWr4yMu4qKvImJu4mJuISEvH9/woGBwoKCw4GBxYmJvpKSt5iYspycrqKiqKampZycsJGRu4yMwIyM - wIyMv4qKvoiIu4aGuYiIuYyMvI2Nvo+PvY6OvpOTuZWVt5qasaenpKampJiYroeHv4GBx4ODxYKCxYGB - xIGBw4CAwYCAwYCAwoGBw4GBxICAxYWFwI6Ot5iYraCgp6OjpKSko52dqY+Pt4WFw4KCxoKCxoKCxIGB - woCAwX9/woKCw4eHwYqKvo+PuZCQuZOTt5ubsKKiqKWlpqSkqJycr5eXtJKSuIuLu4iIu4eHuoWFuYaG - uImJt4qKuIyMupCQuJOTtZWVtJiYsqCgqqWlpaWlpaSkpKOjpKOjpKOjpKKioqOjpKOjpKOjpKSkpKWl - paWlpbAPpaWlpaWlpaWlpaWlo6OlnZ2plpawjo63i4u5iIi+hITEhITGhITGgYHJiorAlZWynJynoKCi - oqKioqKioqKioqKio6OioqKinZ2okJC3hobDg4PGg4PFg4PFhITGhYXHg4PIiIjCk5O3m5utoKClo6Ok - pKSlpKSlpKSloqKkoaGioaGgnZ2llpasj4+0i4u6ioq7ioq7ioq7i4u8i4u8ioq8jIy4lZWtn5+koqKi - oqKioqKioqKioaGhoqKgmZmqioq7goLEgoLCg4PEhITFhITFhITFg4PGhITFi4u9kZG2n5+qpKSlpKSl - pKSlpKSlpaWlpaWknJyujY29hITGhITGg4PFgoLFgoLFhITFhobEh4fChYXEi4u8mZmto6OlpaWlpKSl - o6OloaGioqKfoKCjmJiukJC3jIy7ioq7iYm6iYm7iYm7iYm6iYm6h4e9kpK1np6qpKSkpKSlpKSlpKSl - oaGnmpqskpK0jIy6i4u8ioq6hoa+g4PAgoLDh4fAj4+3kpK1l5evoKCmpKSjo6Oko6OkoqKioqKfmpqm - j4+0hobBgoLGg4PFhITGg4PHh4fCjIy9jo67jY28j4+5mpqsoqKko6Oko6OkpKSlpKSlo6OkoqKjoqKi - oqKio6OjpKSlpKSlpKSlpKSkpKSkpaWlpaWlpaWlpaWlpKSloqKjoqKio6OkpaWlpKSlpKSlpKSlo6Ok - o6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpKSkpaWlpaWlpKSlo6Olo6Oko6Oko6Ok - o6OjoqKioqKjo6Oko6Oko6Oko6Oko6Oko6OkpaWlpqampqampaWmpaWlpaWlpqako6Oll5eukZGzkJC0 - kJCyjIy1iYm5iYm3goK9gIDDgoLGhITGhITGhITFhITFjIy6mZmsoqKjoaGkmZmsioq9i4u+ioq9iYm9 - iYm9iIi7h4e5iYm5i4u6jY28jo6+jY29kJC6kJC6mJixm5uvmZmxmpqwlJS1g4PGgoLHgYHFgIDCgIDB - goLDhYXEhYXGiIjDk5O3oKCpo6OkoqKioqKioqKjmJitjY25jIy9i4u9jIy6hoa/gIDDf3/DgIDEgYHG - gYHFgoLEiIjAkJC6lpa1nJyupaWlnp6rlZW0kpK4kpK3kZG3kZGzioq2h4e4iIi5i4u8jo6+j4+9kJC9 - kZG8kJC8lZW3o6OppaWmnp6sj4+5g4PDgIDGgIDFgYHEgYHCgIDBf3/BgIDDgYHEgYHFhobAi4u5lJSu - nJymnp6mo6OkpKSjn5+olZWxi4u8h4fAiYm9goLDgYHCf3/CgIDBhYW+ioq8jo64kJC3kpKzl5eunJys - n5+rpaWlpKSnnp6tlJS3jY2/jIy/i4u7iYm6iIi2h4e1h4e3iYm5i4u6lJS2lpa1lJS2lpa0n5+spqak - paWlpKSlo6Oko6Oko6Oko6OjoqKio6Ojo6OkpKSkpaWlpaWlsA+mpqalpaWlpaWnp6Sjo6iVlbOOjrqJ - ibuGhr2Dg8OCgseDg8aDg8iKisCUlLWYmLCbm6mjo5+hoaGioqKioqKioqKioqKdnaiRkbWHh8GDg8aD - g8aEhMaDg8aEhMaEhMeHh8SMjL6UlLadnaykpKSjo6Sjo6SkpKWkpKWkpKWjo6SgoKWZmamSkrGLi7mJ - ibyKiruKiruKiruKiryLi7yNjbqSkrScnKihoaGhoaChoaKioqKioqKioqKdnaaUlLKJib2Dg8KCgsOC - gsOEhMWEhMWDg8aFhcSLi72QkLWVlbChoaalpaSkpKWkpKWkpKWkpKWgoKmYmLSOjr6GhsSCgsaCgsWC - gsSDg8WFhcWEhMaEhMaKir+VlbOfn6Wjo6KkpKWkpKWkpKWkpKShoaOYmKqPj7aKir2KiryKiruKiruK - iruKiruIiLuIiLqPj7KamqehoaKkpKOkpKWkpKWkpKWbm66Tk7eNjbuKiryJibuFhb+CgsKCgsOEhMCI - iLuPj7WVlbCcnKqioqWkpKSjo6Sjo6Sjo6Sjo6GYmKqJibyBgcaDg8WDg8WDg8aHh8OMjL6NjbyMjL6O - jrqUlLWdnaijo6Ojo6Sjo6Sjo6SkpKWkpKWjo6WioqOioqKioqKioqKioqOioqOioqSjo6SkpKSlpaWl - paWlpaWkpKWioqOioqKioqOkpKWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSk - pKSkpKWkpKWjo6SkpKSlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SioqOioqOjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6SkpKSkpKSlpaWlpaWlpaWlpaWlpaWgoKeTk7GSkrCPj7OMjLeJibqEhL9/f8KAgMOCgsSEhMaFhcaE - hMaIiMKPj7qZmayhoaOgoKWXl66OjriPj7iOjriOjriMjLeKiraIiLeFhb2Fhb+Hh8GKisGPj7yTk7eT - k7aYmLGgoKqjo6ecnK6QkLuKisKJicKIiL6Dg75/f8KBgcKCgsWCgsaFhcWNjb2amrCjo6akpKOjo6Gf - n6WWlrCNjbqKir2Li7yHh7+CgsSAgMaAgMN/f8OBgcSBgcSDg8KJib2Pj7iVlbSbm6+kpKakpKSamq6T - k7WVlbOTk7KOjrWIiLeGhriIiLiLi7qNjbuQkLyQkL2QkL6Pj7+Rkbubm7ClpaakpKeZmbGLi7yGhr+G - hr2Dg8CBgcF/f8GAgMKCgsSEhMWJib+OjriWlrCbm6icnKWdnaWjo6Kjo6SioqWhoaaZma2MjLmGhsGB - gcSAgMSBgb+EhLqHh7mLi7mNjbiNjbuXl7GenqmcnKucnKylpaWlpaahoaqUlLiLi8KNjb+MjL+Li7yK - iriIiLaHh7eJibmKirmQkLmUlLaZmbGdna2goKqioqilpaWlpaWlpaWkpKWjo6Sjo6SioqOioqOioqSj - o6SkpKSlpaWwD6ampqSkpaWlpKWlpJ+fqpaWs46OuIqKuYODwICAxYKCxoODxYqKvpWVs5eXsZaWspyc - rKSkoqGhoaKioqKioqOjoaGho5mZrYyMvYaGw4eHwYWFxISEx4WFxoSExoeHwouLvpSUtp2draOjp6am - paSkpKOjpKSkpaSkpaSkpaSkpZ6eqpKStIuLuoqKu4qKu4qKu4qKu4qKvIqKvIyMuZKSs5mZrZycqqCg - oqGhoKKioqKioqKioqKiopmZq5aWr5KSs4uLu4SEw4KCxIODxYODxYaGxIuLvo+PuJGRtZiYq6CgpKSk - pKSkpaSkpaSkpaSko5ubrpOTuJCQvIyMv4aGwoWFv4KCwoKCw4ODxYSExYuLvpaWsZ+fqaOjo6OjoaKi - o6OjpKSkpaSkpZqar4+Pt4uLuouLuYqKuoqKu4qKu4qKu4mJvImJu4+PsZqao52doJ+foKKioqOjpKSk - paamo5mZsY6OvIuLv4uLvIqKvIaGwYeHwIeHwYmJvYmJu4qKupiYq6Gho6OjoqOjpKOjpKOjpKOjpKSk - opiYrYeHv4CAx4KCxYKCxISEwIqKvI2NvIuLvo6Ou5aWspubrKCgpqOjpKOjpKOjpKOjpKSkpaSkpaSk - paSkpKOjo6KioqGhoaGhoaKioqKio6Kio6OjpKSkpaSkpaSkpaSkpaOjo6KioqKioqKio6OjpKWlpaWl - paWlpaSkpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaSk - pKOjpKOjpKOjpKSkpKSkpKSkpKSkpKOjpKSkpKSkpKSkpKSkpKOjpKSkpaWlpaWlpaWlpaampaWlppWV - tY+PtoyMuYmJvIWFwIGBxIGBwYGBwYGBwoODxIWFxImJwI2NvZaWs5ubq6CgpKGho5ycqZeXr5SUspOT - s5SUspGRsouLtoWFvICAwoCAw4KCxYWFxYqKwI2NvpKSupqar6SkpaOjp5aWtIuLvo6OvI6Ou4qKvIOD - v35+wYCAwYKCw4ODxIODxYSEx4qKwJaWs6CgqaOjpKGhpJycqJSUsoqKvYeHv4KCxYGBxoGBxYCAw39/ - wYGBwoODwImJuY+Ps5KSspaWsJ2drKOjp6eno56eqpWVs5OTtJCQtYuLuoiIuIeHtoeHtoiIt4qKuY2N - vI+Pvo+PvpGRvJWVt5ubsaSkp6ioo52dr5CQuYuLvImJvIODwICAw4CAwoCAwoKCxIWFxImJv5GRuJaW - s5WVsZSUsZiYrqGhpKOjpKSko6Wlop6eqY6OuYaGw4aGwYSEwYeHuYmJs4eHt4aGvoaGwIeHw5GRupqa - sJubrp2dqqSkpKampKCgqpSUuI2NwI+Pvo6Ovo2NvYuLu4iIuIeHt4mJuYmJuYqKvJCQuZaWtZubsJ6e - rJ+fq6SkpqWlpaWlpaWlpaSkpKOjpKOjpKKioqKio6OjpKOjpKSkpbAPpKSko6OkoqKkn5+nnJyrm5us - kJCxiYm5g4PCgYHGgoLFh4fAkpKzlJSzlJSzm5utoqKmpKSlo6OjoaGhoqKhoqKin5+ll5eujY26jIy8 - i4u9h4fChITGhYXFhobEjIy9iYm/k5O1oqKop6ejpaWlpaWlo6Oko6OkpKSkpKSlo6Olnp6qkZG4ioq8 - ioq7i4u7i4u8jIy8jY27jY25kJCzl5esnZ2nnZ2noaGjoqKhoaGhoaGhoqKioqKim5upmZmqlZWvj4+2 - iYm7hYXBhYXChITEiYm+jIy8jIy8kpKznp6koaGhoqKio6OkpKSlpKSlo6Oml5exjo68jIy/jY29jIy8 - iIi7g4PCgYHEg4PDioq8l5evn5+ppKSkpKSkoqKjoqKioqKipKSkn5+pkpK4jY28jo64jIy4ioq6iYm7 - iYm8iYm8iYm9j4+1nJyjnp6fnZ2fnZ2en5+foqKio6Oko6Ollpazjo68jIy+jIy+i4u9jIy8jIy8jIy8 - jIy9ioq9jY23mpqnoKCgoqKho6Ojo6Oko6Oko6OkoqKlmZmtjIy6hYXChITBhITBioq5ioq6i4u8i4u+ - j4+6m5usoKCmo6Oko6Oko6Oko6Oko6Oko6OkpKSlpKSlpKSlo6OkoqKjoqKjoqKio6Ojo6Oio6Oio6Ok - o6Oko6Oko6Oko6Oko6OjoqKioqKioqKioqKio6OkpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Ok - o6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlo6Oko6Oko6OkpKSlpaWlpaWlpaWlo6OkpKSl - paWlpaWlpaWlo6Oko6OkpKSlpaWlpaWlpaWlpKSmmZmyjo68ioq9hobAgYHGgoLEgYHCgIDBgIDBgYHD - hITDi4u+ioq/jo66lZWznp6ppKShoqKjmZmtk5OzkpK0kpK0jo64hYW9gIDDgYHBgYHBgoLEg4PGgoLH - g4PIiIjDlZW1pKSmoKCpkZG4jY27jIy8i4u9hITCf3/Df3/Bf3/BgYHCgoLDgoLFg4PGh4fEjY29mpqw - o6OopaWin5+mk5Ozh4fBgYHGgoLFgYHEgIDEgIDCgIDBgoK/iYm3jY21j4+0j4+zkJC0lZWwn5+ppaWl - pKSnmpqwkJC4jY26jY23jIy1ioq1iIi1hoa3h4e6iIi8ioq/j4+9lZW3mpqynp6upKSnp6eknZ2vkJC8 - iYnChYXDgoLEg4PBgYHAgIDBgYHDgoLFgoLGiIjBioq/iorAiorAkJC5nJyqoqKlpKSjoqKlmJiwjY28 - jY27jIy6i4u5jIy2iYm2goK8gIDEgYHFg4PHhobFjIy+lJS1nJytoaGlpaWjnZ2rlZW1kpK7kZG8jo69 - jY29i4u7iYm5iIi3iIi3iYm4iYm6ioq9iYnBjY2+mJiyn5+rpKSmpaWlpaWlpaWlpaWmpKSlo6OkpKSl - pKSlpKSlpKSlo6OksA+jo6SkpKOfn6idnaqdnauXl7CJib2Dg8SDg8aEhMWIiMGPj7iNjbuLi72QkLad - naqmpqSkpKWkpKWioqKioqCgoKOamquTk7WMjLyLi7yFhcODg8aEhMWFhcSHh8KHh8KFhcOPj7menqum - pqSlpaWlpaWlpaWkpKSjo6Sjo6ShoaecnK2WlrONjbmJib2Kir2Kir2Li72SkrWUlLGXl62Zmambm6ai - oqGioqKioqKioqKhoaGhoaGhoaKamqmTk7KOjreKirmJibuJibqJibuIiL6GhsGGhsKLi7yamquhoaOi - oqGhoaGioqKkpKSkpKaenqyYmLGRkbmMjL2Kir2IiL6Dg8SDg8OCgsSIiLyTk6+cnKaioqGjo6Ojo6Sj - o6Sjo6OioqKhoaOYmLGQkLmPj7qOjruKir2IiLyIiL2IiL2IiL2MjLmWlq2goKGenqGenp+enp6enp6g - oJ+ioqKbm6yPj7uLi7+MjL6Li72KiryLi72Li72Li72Kir6NjbuXl6+hoaCgoKChoaGioqGioqOjo6Si - oqWbm6ybm62Xl7CRkbeNjbmLi7mJibqJibuLi7yMjL6QkLidnamjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6SkpKWkpKWkpKWkpKWjo6SlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6OioqKioqKioqKioqKi - oqOkpKWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSl - paWlpaWlpaWjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWl - paWfn6qTk7iHh8SDg8eDg8WCgsSBgcKAgMGAgMGAgMKBgcSCgsWEhMaEhMeLi76Zma6jo6KgoKSSkrSS - krSSkrSPj7mIiMGBgcSBgcKBgcGBgcODg8WEhMWDg8WDg8WEhMiOjr6fn6yioqeVlbOPj7uLi72EhMSB - gcaBgcOAgMJ/f8GAgMKBgcSBgcWGhsGPj7iVlbOYmLKdnaulpaSenquLi7uBgcaBgcWBgcWBgcWBgcOB - gcKCgr+Hh7aNjbKLi7mKir2Kir2Kir2Li7uYmKyjo6WlpaaamrCOjrqPj7iPj7iRkbKNjbSHh7mEhLiF - hbiIiLqIiLuQkLiVlbaVlbaamrKfn6ylpaagoKuRkbuIiMSKisGJib+KiryEhMB/f8J/f8KBgcSDg8WE - hMWHh8OIiMKHh8OKir+YmLCioqWkpKOioqWYmK+Pj7mQkLiOjrmOjriLi7qEhL9/f8KAgMGBgcODg8WE - hMeHh8OOjruVlbSbm66hoaSgoKScnKqUlLWMjL6Njb2Njb2Li7yJibmHh7iGhriHh7iDg8CCgsSDg8WH - h8SPj7ycnK2kpKampqampqempqempqempqelpaWmpqampqempqelpaajo6SwD6WlpqSkpJ+fp52dq5eX - sYqKvYKCw4KCxIODxoiIwY2Nu4yMvIyMvIyMvJaWsKCgpaSkpKSkpaSkpaSkpaOjop+fo5qaqpOTtIuL - vIWFxIODxYODxYWFxIeHwoeHwoeHw4uLvZiYsKGhpaSkpKWlpaWlpaWlpaWlpaWlpKGhppqarZSUtI2N - vIyMvIeHwIGBxoODxYODxY+Pt5iYrpmZrZqaqaCgoqGhoaKioqKioqKioqKioaCgopubppWVro+PtouL - uYaGvoCAxYGBxIGBxIKCxIKCxYaGwJKSsp6epqKioqKioqGhoaGhoaKioaOjpZ2drJ2drJiYsZCQuIiI - v4ODxYSExIODxYiIvomJvI2NtpubpqGhoaKioqOjo6OjpKOjpKOjpJ6eppGRto+PuI2NuouLvImJv4OD - xYODxYKCxoaGwI2NtpSUr5qaqKCgoqGhoJ+fn56enp+fnZ2doZOTs42NvIyMvoyMvYyMvYuLvYqKvYuL - vYuLvYuLvI+Pt5eXrqKioqCgoKCgoKCgoKKioaGhpJubrJubrJiYr5GRt42NvYuLvYqKu4iIuYmJuomJ - u42NupiYsKSko6OjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaOjpKSkpaWlpaWl - paWlpaOjpKOjpKOjpKOjpKOjo6KioqKioqKioqSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpKSkpKWlpaWl - paWlpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaSkpKOjpKSkpKWlpaWlpaampJubsIuLwYODyISExYODxYKCw4GBwoGB - woGBwoGBw4GBw4KCxYmJwJSUtZ2dqqKipKKipJqaqpWVso+PuoeHwoODxoSExYGBw4CAwYGBw4ODxYOD - xYODxYODxYqKvouLv5aWtaGhqZycro6OvIWFxYODxoKCxICAwn9/wX9/wYGBwoGBxIeHwY+PuZKStZGR - tpKSt5eXsaKip6OjppeXsomJv4ODxYKCxIGBw4CAw4ODwIiIt4yMsYiIuIqKvYuLvYuLvo6OvJaWs52d - q6Kio6CgpJqarJSUsZWVsJWVsYyMt4eHuoaGuYWFuIWFuIeHuYmJuomJuoqKvZCQvJqasqCgrKWlpqSk - p52dr5iYtZmZs5SUtoaGw4GBxYCAw4CAwoGBwoKCxIiIwYeHw4aGxIWFxYiIwpWVs6KipqSko6OjpJ+f - p5iYr5OTto+PuY2Nu4aGwoGBxYCAwX9/wYCAwYGBxIeHwI2NvI2NvY6OvJSUtaKiqKWlop+fpZWVsYuL - vYyMvIuLu4qKuoiIt4SEun9/woCAwYCAwoCAxIWFv4qKvIyMvpaWt6Skqaenpqamp6amp6amp6amp6am - p6WlpaWlpqamp6amp6amp7APpaWmpqaloqKnlpayioq/hITFg4PEg4PEg4PEhITDhobChobChobDj4+4 - nJyooqKhoqKjo6OkpKSlpKSlpaWkoaGlmJirkpKykpK0i4u8hYXDg4PGhITFhYXEh4fCioq+kJC4nZ2r - pKSjo6Oko6OkpaWlpaWlpaWlpqako6Olmpqtjo67jY28h4fBg4PGg4PGhITGg4PHi4u9jo65jo65lZWv - oKChoaGhoaGhoqKioqKioaGjnZ2olpaujo62jIy4h4e+goLEgoLEgYHEgoLEgoLDgYHEioq8mJisoaGh - oqKioqKioqKioaGioaGgoqKinZ2rl5exkJC5jIy9ioq9ioq+ioq+ioq+ioq9iIi+jY23mpqnoKCgoaGh - oqKio6Ojo6Oko6Okn5+nkJC2jIy7jY27ioq/hITFhITFhITFgoLIi4u8lJSvlJStl5esoKCioaGhoaGh - n5+enJyfl5eoi4u4ioq9i4u9i4u9i4u9jIy8i4u8i4u8jIy7j4+3lpawnZ2ooqKioqKioaGhoKCgoaGg - oaGim5uqmJivkZG3jY28jIy9jIy9ioq7ioq7iYm8jIy3k5OwnJyppKSko6Oko6Oko6OkpKSkpaWmpqan - pqanpqanpKSlpKSkpaWlpaWlpaWlpaWlo6OkpKSkpaWlpaWlpaWlo6Oko6Oko6Oko6OjoqKioqKioqKi - pKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlo6Oko6Ok - o6OkpKSkpaWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Ok - o6Oko6OkpKSjmZmwjo69jIzBi4u/hobAgoLEgYHCgYHCgYHDgYHDgYHDgIDEjY23mpqtnp6qn5+oo6Ok - oqKllpawiIjAgoLGgoLFg4PEgYHDgYHCgYHDgYHDgoLGhITGioq/jY29ioq/lJS1o6OopKSmmZmwjIy+ - hYXFg4PGgYHEgIDBf3/Bf3/DhYW+j4+2jo65hobCh4fBhYXDkpK2oaGppqajn5+qj4+6goLGgoLGgYHF - g4PAioq3jo6xiYm3g4PAhITEhITGiYnBlpaznZ2snp6so6Omo6Oinp6lmZmslJSyj4+5jIy9ioq9h4e5 - hIS4goK+gYHBgoLCgoLEh4fBj4+5mJiynp6tpKSnpqaloqKpm5uwlpa2iIjFhYXHhITGgoLEgIDDgoLC - h4e/iIjDhobGhYXGhITHhobElJS0oaGmpKSjo6OkoqKlm5usj4+5jo67h4fDhITGg4PEgIDCf3/Bf3/C - hoa7hoa/hYXEhobFh4fEkJC6nZ2rpKSlpKSjnJypjo63ioq8iYm6ioq3hYW7f3/Af3/Bf3/BgIDBf3/C - hIS/jY25lJS1m5uvpaWop6enpqanpqanpqanpqanpqanpqanpaWmpaWmpqanpqansA+lpaajo6iYmLOM - jMCEhMWEhMWCgsODg8SEhMOFhcOFhcOEhMSHh8CUlLKgoKWioqChoaGioqOjo6SkpKWioqecnK2VlbKR - kbOLi7uIiMKFhcaEhMaDg8aDg8WKir6RkbeWlrCfn6ekpKOjo6Sjo6SkpKSlpaWmpqWkpKaenqyTk7aN - jbuHh8KEhMWDg8aDg8eEhMaKisCMjL2Kir+QkLibm6qioqGhoaGhoaGhoaGioqGioqObm6uPj7eMjLiG - hr+CgsSCgsWDg8WDg8WDg8SBgcaFhcGQkLOcnKSioqGhoaGioqKioqKioqGhoaKcnKebm6mPj7iKir2K - iryKiryLi72MjLyMjLyLi7yMjLqVla+goKGgoKCgoKChoaCioqKjo6OioqWdnaqUlLOOjrqIiMCEhMSD - g8WDg8WDg8aHh8GLi76RkbWYmKqbm6agoKGhoaGhoaGhoZ+dnZ+WlqeQkLGLi7qJibyKirqJib2FhcSF - hcODg8WIiMCTk7OenqeioqKioqKioqKhoaGhoaCfn6Gbm6aXl66QkLaNjbqLi7yLi7yLi7yLi7uMjLuK - irySkrKcnKahoaKioqOjo6Sjo6Sjo6Sjo6SlpaSmpqampqempqempqekpKWjo6SlpaWlpaWlpaWkpKWj - o6Sjo6SlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6OioqKioqKjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaam - pqempqampqalpaWkpKWjo6Sjo6SlpaWlpaWkpKWjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWjo6Wjo6Sl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SkpKOZmbCQkLqNjb6KisKGhsWEhMWC - gsSAgMKAgMKBgcOBgcOBgcOKiriOjreRkbebm66kpKOjo6SWlrKJib6FhcCFhcGBgcWBgcOBgcOBgcKA - gMSDg8SKir+Njb2Njb2Li7+SkrWenqmjo6idna2QkLuFhcWCgsiBgcV/f8N+fsKDg7uIiLiKiruHh8GD - g8WEhMSIiMGPj7efn6mnp6OhoaeYmLGQkLqOjrqOjriOjrSOjrKKireCgr+BgcJ/f8WEhMOLi72Pj7mR - kbiSkrecnK2kpKWhoaSYmK2NjbuLi72Li72Li7yHh7uBgb5/f8CAgMSAgMWCgsaGhsWHh8OKisGTk7eg - oKunp6SgoKuSkruHh8aEhMmFhciFhceCgsaBgcKEhL2FhcCEhMSFhcaEhMeGhsaNjb6VlbOioqWkpKOk - pKSioqWZma2MjLyHh8KDg8aDg8aCgsSAgMJ+fsGEhLmEhL2CgsKCgsWDg8eFhcWPj7qcnKyjo6WmpqOh - oaaWlq6QkLSLi7eFhb2AgMJ/f8J/f8F/f8F/f8F/f8KCgsOIiMGSkridnaykpKampqampqempqempqem - pqempqempqempqempqWlpaWmpqewD6ampZ6erY2NvoSEyISEx4WFxYODxISEw4WFwoWFw4WFw4eHv5KS - tZycqKGho6KioaGhoaGhoqKipKWlo5ycrZaWs5OTtouLvYSExISEyIWFx4SEyIWFx4iIwI+Pt5aWsJ2d - qKGho6Ojo6OjpKOjpKOjpKSkpKWlpJ6erJOTt46OvYmJwoSExoKCxYKCxYWFxYmJwI2NvIuLvoyMvZiY - r6KioqKioqKioqGhoaGhoaCgop6eppeXroyMuoeHwIKCxYGBxoODxYSExYSExYODxoWFwoyMupeXrKCg - oKCgoKGhoaGhoaKioaGhpJ2dp5qaqpeXrZGRtYuLuomJu4qKu4uLvYiIwYiIwYWFw4yMvJqaq6Ojn6Gh - oaCgoKCgoKCgoKKioaGhpJeXsZGRuIqKv4SExYODxoSExYKCxYaGwYuLvo2NvJOTtJubqJ+foKCgoKGh - oaKioKGhoZqappOTrI2Ns4mJuYqKuomJvYWFw4ODx4KCx4WFw4yMu5aWr5+fpqSkoaKioqKioqKioqOj - oaCgoJiYqI+PtoyMuoqKvImJvomJvomJv4eHwYeHwYWFw46Ot5ycpqKin6GhoaOjo6OjpKOjpKOjpKOj - pKSkpKampqamp6amp6Wlp6SkpaSkpKWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaSkpaOjpaOjpKOjpKOj - o6KioqKioqSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6ampqampaSkpKSkpKWlpaWlpaWl - paSkpaOjpaOjpKOjpKSkpKWlpaWlpaWlpaWlpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaSkpaOjpKSko5qarY2Nu4aGxISExoSEx4SExYKCw4CAwoCAwoGBw4GBw4GBwoaGvIiIuI+PtJub - rKSko6OjpJmZr5SUtJWVsJCQs4ODwYCAxICAw39/w4KCwYmJvo2NvYyMvY2NvYyMvo+PupiYr6Cgp52d - ro+PvYmJxIaGw4aGwYaGv4eHuoiIt4aGu4SEwYSExIaGw4mJv4+PuJGRtZubq6SkpKOjpp2drJeXs5SU - s5WVspGRsomJt4ODwH9/wn9/woKCv4eHu4uLu4qKvYuLvo2NvZmZr6OjpqSkpJqaq42NuouLvYyMvYqK - voSEwYCAw35+woCAw4GBxISExoWFyIWFxomJwo+Pu5qasaWlpqGhq5GRvIWFyISEyISEyIODyISExIWF - voODvIKCwYKCw4KCxoaGxYyMwI6OvJCQup2dqqOjpKSko6OjpJycqo6OuoSExYODx4KCxoCAxYGBwYOD - uoKCuoCAwYKCxYODxYODxYWFxI6OupycrKOjpaWlpKKippycrJWVsYmJvIGBw4CAxIGBwn9/wX9/wYCA - woGBxYWFxIiIwo2NvZycraSkpqWlpaamp6amp6amp6amp6amp6amp6amp6amp6WlpqWlprAPoaGml5e0 - iIjEg4PJhYXHhYXGhYXEhYXChYXDhYXDiIi9kZGznJynoaGjoqKioqKioqKioaGhoqKio6OjmZmvkpK3 - jY29hobFhITHhYXIhYXIhobHjIzBlJS3lpawnJyqoaGkoqKioqKjo6Oko6Oko6Oko6Ojo6OlmZmxjIy/ - iIjDhITIhITHgoLGgoLDiYm/jY28jIy+jY27kpK2nZ2ppKSgoqKioqKioaGhoaGhoKCimpqpj4+2h4fB - goLGgoLGgoLFhITFhITFg4PGhobCjY25lJSwnJyno6OgoKCgoaGhoaGhoqKhn5+lmZmrl5etkpK0kZG1 - i4u6iIi7iYm7h4e/hITEg4PGhobDj4+4m5upoqKgoaGhoKCgoKCgoKCgoaGgnZ2oj4+6iYnBhITGg4PH - hITGg4PFhYW/iYm7jY25k5O0mpqroKCloqKhoKCgoaGgoKCim5unk5OvjY23iIi7iYm5iIi9hITEgoLH - hITFiIjAj4+4lZWwmpqpn5+koqKioqKioqKioqKioqKjnp6mlZWtioq6iYm7h4fBhobEh4fDhYXEg4PG - g4PGgoLIi4u9mZmqo6OfoaGhoaGho6Oio6Oko6Oko6Oko6OkpKSkpqampqanpqanpaWmpKSlpKSkpaWl - paWlpaWlpaWlpKSkpKSlpaWlpaWlpaWlpKSko6Oko6OkoqKjoqKio6OjpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpqampqanpqanpaWnpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSkpKSko6OkpKSlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSkpKSjnp6plJS1ioq/hYXFhITG - g4PFgoLEgIDCgIDBgIDBgYHDgIDEhIS9jo6xmJiln5+hpKSjo6OkoKCnnp6pnJyrlpawi4u4hIS/g4O+ - gYG+hoa7i4u5i4u8i4u9jIy9jo69j4+8l5exo6Ojnp6pk5O1kpK3lJS1kZG4jo66jIy2hoa7goLAgoLB - hITBioq+kZG3lZWxl5evmZmroKCmo6OlnJyrlZW0lJS1k5O2ioq8goLBf3/Cfn7CgoK+iIi5i4u4ioq6 - ioq7jIy8jIy8mJivoqKmpaWknp6qkZG4jIy8ioq+hobCgoLFgIDEf3/CgIDCgoLEhYXGhITJhobFj4+8 - kJC7lJS2oaGppaWmnJywkZG7iIjFh4fEhobDhoa/g4O9gIDAgIDBgIDCg4PAh4fAiorBiIjDh4fElJS1 - oKCmpKSio6OjoKCmlZWziYnBh4fDhobChYXBhYW8hYW6f3/BgIDCgoLDhITEhITFhITFiIjAlJS0oKCp - pqajoaGolpazjY29g4PFgIDGgYHEgIDCf3/Bf3/BgIDDhYXCioq/jo67lZW0n5+ppaWkpqakpaWlpqan - pqanpqanpqanpqanpqanpqanpqanpaWmsA+Xl62NjbyGhsaEhMiFhceFhceFhcOFhcKFhcKIiL2QkLSY - mKmdnaKhoaKioqKioqKioqKioqKgoKKenqaUlLKLi7+FhcaEhMeEhMaFhceEhMmJicORkbuVlbeZmbKg - oKiioqSioqOioqOioqOjo6Sjo6SkpKOhoaWZma+Li76CgsiEhMaEhMaDg8SHh76Li7qKir2NjbuTk7Wb - m62hoaajo6OioqKioqKioqKioqGhoaKXl6yJibyEhMSDg8WDg8WEhMWEhMWEhMWHh8KPj7iVlbKbm6mf - n6KhoaGhoaGgoKChoaGioqCfn6SYmKyTk7SSkrSLi7uJibyKiruHh7+EhMOFhcOEhMSQkLabm6qfn6Wi - oqGhoaGhoaGgoKChoZ+enqKTk6+IiMGDg8eDg8eDg8aDg8aFhcGKirmKiriOjrSVla+enqekpKGioqOh - oaKhoZ+bm6aSkrCNjbeJibyKiruJibyFhcODg8aDg8WEhMSMjLyQkLeXl66fn6Sjo5+hoaGioqKioqKj - o6GgoKSbm6uSkrSJibyFhcCFhcWFhcaFhcWEhMWEhMWEhMSEhMOPj7ednaijo6ChoaGhoaGioqKjo6Ok - pKSjo6Sjo6Sjo6SkpKWlpaampqempqempqejo6WkpKWlpaWlpaWlpaWlpaWjo6SkpKWlpaWlpaWkpKWj - o6Sjo6Sjo6SioqOioqKjo6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWkpKSlpaampqempqempqalpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWjo6SioqWenqmUlLSIiMCCgsaDg8WBgcSBgcKAgMF/f8GBgcOCgsGHh7uRka6Z - maKenp2goKGioqSlpaKfn6iWlrOTk7eSkrWKirqIiLmGhraHh7iIiLuJibyKir6Kir2QkLqTk7ebm6+l - paSjo6KenqWcnKibm6qUlLKLi7uGhr2BgcCAgL+Cgr+Ghr2MjLiSkrSUlLKcnKqcnKmfn6aioqOdnamY - mK6VlbOMjLyDg8N/f8SAgMCBgb6FhbqHh7uIiL2IiL2IiL2Jib6Hh8GTk7ShoaelpaSfn6qSkriKir2F - hcKCgsWAgMWAgMN/f8KAgMGBgcODg8aFhcaJicONjb6Njb6Tk7egoKqmpqOjo6acnK+Pj7yOjruOjriG - hrx/f8KAgMKAgMGBgcCGhruEhL+BgceEhMiIiMSRkbqenqukpKOkpKOioqScnKqPj7qNjbyOjrqMjLqH - h75/f8OAgMGBgcKBgcKDg8OEhMSFhcSFhcSKir6YmLGkpKWhoaiSkreEhMaDg8aCgsWCgsWBgcOAgMKA - gMKBgcGIiLyKiruRkbaenqiioqWjo6ejo6ekpKampqampqempqempqempqempqempqempqempqewD5GR - toeHwoSExoWFxoWFxoaGxYWFw4SExIeHwI6Ot5SUr5iYq52do6CgoaKioqKioqKioqGho52dp5WVroqK - vYSExoSExoSExoSExoWFx4SEx4mJwo6Ov4+PvpWVuKGhqqOjpaOjo6Kio6Kio6Kio6OjpKKipZycqpaW - sY6OuoSExoWFxYWFxYiIvYmJuImJuouLuZKStJqaraKipaSko6OjpKOjpKKioqKioqOjop2dppOTsYyM - uouLuoSEw4ODxYSExYSExYeHwo+Pt5WVsZmZq6CgpaOjoaGhoaGhoaGhoaCgoKGhoJ6epJaWrZGRtZCQ - toyMu4uLvYiIwoSExoWFxISEwoiIvpWVsKCgpKSkoKKioqKioqGhoaGhoaGhn5ubpoyMtoODw4ODw4OD - w4KCxIaGwIuLuYqKuo2Nt4yMtpCQspubqaOjoqKio6Kio6OjoJiYqYyMt4mJvIqKu4mJvIODxIODxoSE - xYSExYSExYKCxoiIv5aWr6CgpKKioaGhoaGhoaKioqOjoaCgpZmZrJGRtoiIwoWFxIWFxYWFxYWFxYWF - xYSExYaGwouLvJeXrqGho6KioqKioqGhoaGhoaOjo6WlpaWlpaWlpaWlpaOjpKSkpKampqamp6amp6am - p6OjpKSkpKWlpaWlpaWlpaWlpaOjpKSkpaWlpaWlpaWlpaWlpaOjpKOjpKKio6KioqOjo6WlpaWlpaWl - paWlpaWlpaSkpKKioqOjpKWlpqamp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKSk - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSko6Ghp5WVs4eH - wIGBxIKCxIGBwoCAwn9/wn9/wYGBwIiIuY+PsZCQspOTr5eXp5mZopyco6Ojo5+fqZeXsZWVtJSUtYuL - vImJuoeHuIWFuoWFvoWFvoeHwIqKvpCQt5OTtZaWs56erKSkpaOjo52dqJGRtIqKu4eHvYODwYGBvYCA - vYWFuomJuImJu4qKvJCQtpiYrpmZrJ6eqKOjoqKio6GhoZaWroeHwYGBxYGBwoKCvoWFt4CAwH9/w4GB - xIKCxoKCxoKCxoODxY2Nup2dqaamoqKip5aWs4eHw4KCxoGBxYCAw39/wn9/wYCAwYGBw4ODxYmJwY+P - vI2Nvo2NvpSUtpycrqKipqCgpJmZrJSUspSUsZSUromJuICAwoGBwIGBv4WFuIKCwIGBxYKCxYeHwJWV - tJWVtZqasKGhp6Sko6OjpKCgpZKStJCQtpKStIyMvYKCx4GBw4CAwYCAwYCAwYKCwYSEwoWFw4mJwIeH - wpCQt5+fqaSkpZubrpCQu4aGxYODxoODxYKCxIGBwoKCwYaGuYmJuY+PtZaWrJubqpqarJqarZqar6Gh - qaampKWlpaamp6amp6amp6amp6amp6amp6amp7APkZG1jY26iIi/hYXDhITFhITFhITFhITFg4PGhobB - j4+0m5unoaGhoaGhoaGhoqKio6OhoaGjlpavioq+hYXFg4PFg4PFg4PFgoLFhYXGhITHiYnCj4+8lpa3 - n5+upqaopqalpKSkoqKjoqKjoqKjo6OinJyqlJSzkpK1kJC3jIy9jIy9jIy9ioq8iIi8i4u4kJCwkZGx - n5+lpKSjo6Oko6Oko6Oko6Oko6Oin5+llJSyi4u9i4u8i4u8hITDgoLEg4PGh4fCj4+4lJSymZmroKCk - o6OhoqKioqKioaGhoaGhoaGhoaGfnp6jlpatkJC2i4u8jIy8iIjChYXGhobFhobEiYm/h4e/kpKzn5+m - o6OhoqKioqKioqKioqKhnp6jlJSujIy4jY23iYm7ioq7ioq7ioq7ioq7ioq6jIy4kpKxl5eonZ2ioqKh - oqKjoqKjo6Oinp6mlJSvjIy3iYm7goLEgYHDgoLEg4PFg4PFg4PFg4PFjo64np6mpKSgoqKioqKioaGh - oaGhoKCkm5upkZG1hobDhYXEhYXEhITFhITFhYXFhYXFh4fDjo6+lJS4oKCspqako6OjoqKioqKioaGh - oqKjpKSlpaWlpaWlpaWlpaWlpKSkpKSkpqampqanpqanpqanpKSlpKSkpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpKSko6Oko6OjoqKio6OkpaWlpaWlpaWlpaWlpaWlpaWloqKioqKjpaWmpqanpqan - pqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlp6eknp6qjo65hITFhITFgoLEgYHDgIDCf3/CgIC/hoa3jo6wj4+w - kJCykJCzkJCzkJCxlZWnoKChnp6mnJyqnJyomJitjIy8ioq6hYW8g4O9hIS8hoa9iYm8ioq9jIy6jY25 - jY26k5O3n5+poKCok5O0i4u9ioq9ioq7iYm6hoa3hoa3h4e4iYm5iYm7ioq8ioq8ioq9j4+4m5urpKSh - oaGkmpqrlJSwjY25iYm8iYm5h4e6gIDBgIDBgIDBgoLEg4PFg4PFg4PFj4+1lpasnp6lpKSioqKlnJyt - j4+7h4fFg4PGgoLEgYHCgIDBf3/BgIDDhoa+jIy7jY2+jY2+jY2+j4+8lJS2oKCqoqKmlpawl5evmJiu - lJSwjIy2hoa5hoa3hYW4gIDAgIDCgIDEhoa+k5OxkpKzlJS1mpqwoqKopaWko6OjoKClkpK0kZG2j4+5 - iYnBhITFgoLDgYHBgIDAgIDAgYHAgoLBg4PChYXDhITGjY27nJyqpaWho6Onlpa0h4fEhITHhYXGg4PF - goLCiIi5hoa4i4uwlZWqmpqpmpqqmpqqm5usmpqtoKCopqakpaWlpaWlpqanpqanpqanpqanpqanpqan - sA+MjLuIiL+FhcKEhMSEhMWEhMWEhMWDg8eFhcOOjreamqmhoaGhoaGhoaGhoaGhoaGioqGfn6aSkrSL - i7yKir2Hh8GCgsWDg8SEhMWEhMaIiMKNjb6UlLeenq2lpaimpqempqempqakpKSjo6SioqOioqKdnamW - lrCQkLiMjL2Li72Li72MjL2Li76OjrqTk7SSkrORkbGdnaKioqGjo6Sjo6Sjo6Sjo6Sjo6OamqyPj7iK - ir2Li7yKiruKir2Kir2Kir+OjruTk7OTk7OSkrSenqajo6GioqKioqKioqKhoaGioqCfn6KXl6uOjrSK - irqNjbyIiMKGhsWGhsWHh8SKisKKisKSkrSZmaefn6GioqGioqKioqKioqKhoaOWlq+MjLqMjLmNjbeQ - kLONjbeHh7+Dg8SEhMOEhMOFhcGOjrabm6agoJ6fn6ChoaKioqOenqeWlrCPj7eJibyDg8OCgsODg8WC - gsWCgsWCgsWDg8aGhsSSkrSenqSjo6CioqKioqKioqKioqCbm6eRkbWIiMKEhMWFhcSEhMWEhMWEhMWE - hMWHh8ONjbuTk7eamrGioqmmpqWlpaWjo6OioqKioqKioqKioqOkpKSlpaWlpaWlpaWlpaWkpKSjo6Sl - paWmpqempqempqekpKWjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6SlpaWl - paWlpaWlpaWlpaWlpaWlpaWkpKSioqKioqOkpKWmpqempqempqelpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWkpKWjo6SlpaWlpaWlpaWlpaWlpaampqempqempqelpaalpaWlpaWlpaWlpaWlpaWmpqShoaeU - lLKIiMGEhMWDg8WCgsSAgMWAgMGGhraOjq2Pj66QkK+NjbSLi7iLi7mMjLeYmKidnZ2amqOZmaebm6WY - mKmMjLmHh72EhL2Dg72EhLyJibuJibuKiruHh7+GhsKGhsSKisCYmLCfn6iUlLaLi76Li72Li7yKiruI - iLiIiLWEhLyBgcKCgsOEhMSKiryKiryKir6Tk7Sfn6aioqOZmayamqyUlLCOjreHh72BgcKBgcKAgMGB - gcGCgsOCgsWDg8WJib2RkbKTk7GXl6yenqWjo6Ofn6eTk7aHh8OEhMeEhMaCgsSBgcJ/f8KFhb2JibqN - jbqMjL+GhsaGhsWEhMePj7yfn6ulpaWenqqcnKiamquamqqVla6NjbWGhrmAgL9/f8F/f8OEhL+KirmM - jLmLi7uLi7yXl7Kjo6enp6SlpaShoaWTk7OMjLuLi7yHh8CCgsWCgsOBgcGBgcCBgcCBgcCCgsGDg8KD - g8OHh7+Rkbabm6uioqOhoaWUlLSMjL+Li8GLi8CJib+Hh72IiLqMjK+KirOKireMjLiOjreVlbGamqqd - naienqihoaempqWlpaWlpaWmpqampqempqempqempqewD4eHwYWFw4SExYSExYSExYSExYODxoaGw5CQ - t5ubqaGhoaGhoaGhoaGhoaGhoaGhoaGhoZycppGRto2NuomJwIODw4GBw4ODxYODxoeHwYyMvZWVtZ6e - rKSkpqampaamp6amp6amp6WlpqOjpaKipKOjop6epZKSsoqKvIqKvYqKu4qKvIuLvY6Ou5GRuJKSt5GR - t5SUsZ6eoqCgn6Kio6OjpKOjpKOjpJ+fqZKSt4uLvYqKvIqKu4yMu4eHwYaGwoWFw4mJvo+Pt5CQt5OT - s5+fpqOjoaKioqKioqKioqKioZ6eo5eXq4+PtYqKuomJuoaGwoSExoSEx4eHxYuLwY2Nv5KSup2drKCg - pKCgoKCgoKGhoaKioqKioqCgpJeXrpGRtJOTsZCQso+Pt4mJv4SExYODx4ODxoODxYiIwJOTr52doqGh - n6CgoJ+fn6CgpJaWsJCQuYqKvoSExIODxYKCxIKCxIKCxYKCxYKCxIaGv5GRtZqaq6GhpKKioaGhoaKi - oqKioqKiopeXrImJvoKCx4ODxYSExIWFw4aGxIaGxYiIwouLvo2Nu5mZsKKiqaWlpqWlpqWlpqSkpqKi - o6KioqKioqKio6OjpKOjpKWlpaWlpaWlpaWlpaOjpaOjpKampqamp6amp6amp6SkpaOjpKWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaSkpaSkpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6WlpaWlpqWl - pqWlpaamp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKWlpaWlpaWlpaWlpaWl - pqamp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaSko5ubq4yMvIGBx4KCxoKCx4ODw4mJtYuLsISEvIWF - vIWFvIiIuYuLuYyMuJKSsZ+foaCgn52dnpuboZaWqYyMtIeHvIWFvYSEvYSEvIaGuYmJuYmJuYaGvoWF - wYSExIWFxIyMvJmZraGhppmZso6OvIuLvouLvYuLvIuLuYSEvYCAwX9/xIKCw4mJvYqKvIuLvYqKwJGR - t52dp6KioqCgpZ2dqJOTs4mJv4ODw4GBw4CAwX9/wYCAwYGBxIODw4iIvYqKuoyMuIuLupOTsp2dp6Ki - oqGhpJWVs4iIwoSEyIWFx4ODxoGBxIWFvIiIuIqKt4mJvIaGxYWFxoSEx4iIw46OvZqasKSkpqSkpqOj - pZ2dqZiYrZKStYmJvoKCxH9/xH19w4KCvYiIuYmJuYmJu4qKvIiIvZKSs5+fqaWlpqampaSkpZmZrpGR - to+PuIuLuoWFwYODxIGBwYGBwYGBwIGBwIKCwoODw4iIvYiIvZKSs5ubqqGhpKGhpJOTso6OuY6Ouo+P - uo6OuoyMt46OsImJsoaGt4eHuYmJuouLu4+PuZSUsZiYrpubqqGhpqWlpKWlpaWlpaWlpqamp6amp6am - p6amp7APhITEhITFhITFhITFhITFg4PGhobCjY25l5eun5+koqKgoaGhoaGhoaGhoaGhoaGhoaGgnp6i - kpKziYm+g4PEgYHEgoLDhITEh4fAjY25lJSympqsoaGnp6ekpaWlpaWmpqanpqanpqanpqalpaWkoKCm - lpawjIy6iYm9ioq8ioq8ioq8jIy+j4+8j4+7jY29jo65mpqtoaGjoaGgoKCgoqKio6Oko6OknZ2pj4+5 - ioq/jIy8ioq8h4fBgoLGgoLGgoLGhITFiIjAj4+5mZmsoKCjo6OhoqKioqKioqKioqKil5etjY23ioq6 - iYm8hITBgoLGg4PGhITGh4fFiIjEiIjDlJS1oqKopaWko6OioKCgoKCgoqKioqKinZ2ompqsmJiulJSx - j4+2h4fBhITGhITGhITFhYXEioq+k5OznJymoKCgoKCgoKCgn5+fnp6hkpKyiYnAhITGg4PGhITFgoLF - gYHEgoLFgYHGhITDjY24mZmpoKCkoqKioqKhoaGhoaGhoqKinZ2olJSzioq9hYXBh4e/iIi/iYm/iorA - iorAi4u+jIy9jIy+mpqupKSlpqakpaWmpaWmpaWmpKSloqKkoqKioqKjo6OkpKSkpaWlpaWlpaWlpaWl - paWlpKSkpKSkpqampqanp6eop6eopaWmpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpqampqaopqaopqampaWmpaWmpqanpqanpqampqalpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqampaWlpaWlpaWlpaWl - paWhnJyojo66hYXEhobDhobEjIy4jIyyhIS7f3/Ef3/Cf3/Eg4PBhYXAiIi+kJCynp6joaGfoaGdm5uh - j4+vhIS+hIS+hYW9hoa8hoa5hoa3h4e4hYW8hITBhITChYXAioq8k5OznJyqoqKkmpquj4+7jIy/jIy9 - jIy8iIjAgYHEf3/EgYG/hoa7i4u5i4u6jY28jIy9kZG3mpqsn5+mo6OimZmti4u+g4PHgYHHgYHDgIDC - f3/Cf3/CgoLAh4e8ioq6ioq7ioq8ioq/kpK3nJysoaGmoqKimJiviorAhYXGhobEh4fDiIjAioq6iYm3 - hoa6hITBg4PGhITGiIjCj4+7j4+7mJiypKSmpqalpqalmpqtkJC3i4u9iYm/hobBhYW+g4O8hoa4iYm5 - iYm7ioq7i4u7i4u9j4+2lpauoKCopqakpqalo6OonZ2qnJypmZmrkJC1hobAhYW+goLAgIDBgYHBhYXB - ioq+jIy6iYm9j4+1mJisn5+loqKjmZmrkJC3jY26jo65kJC2kZGyjIyzh4e3h4e3hoa6hYW/hobBh4fB - jY26kpK1mZmsoKClpKSkpKSkpaWlpaWlpaWmpaWmpaWmpqamsA+EhMWEhMWEhMWEhMaEhMaIiMGOjriT - k7KXl66enqajo6GhoaGhoaGhoaGhoaGioqCioqCdnaWPj7WDg8KBgcSDg8SCgsaDg8SLi7uRkbOXl62X - l66cnKulpaOlpaWlpaWmpqampqempqempqejo6ibm62NjbyKir6Li7uKiruMjLyMjL2Njb2Njb6MjL+O - jryVlbSgoKajo6OioqKgoKCgoKChoaKioqSenqmUlLWOjryLi76GhsGCgsaDg8WDg8WDg8aEhMaHh8CU - lLOfn6SioqKioqKioqKioqKioqKhoaOXl6+QkLaLi7uFhcKCgsaDg8WEhMSFhcSEhMaFhcaMjL+VlbWj - o6empqSkpKWioqOgoKCgoKCdnaaamqyYmK6VlbGOjrmHh8CCgsaDg8aEhMWFhcSJib+QkLednaiioqKh - oaCgoKCgoKChoaCdnaKUlK2KiruFhcSDg8aDg8WCgsWCgsWCgsWCgsWFhcKPj7abm6ehoaGioqGioqKi - oqKhoaGioqGcnKqWlrCTk7KRkbSOjreMjLyNjbyNjbyMjLyLi72Njb2UlLaenqmjo6WlpaWlpaWlpaal - paalpaakpKWjo6SioqOkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSkpKSlpaWlpaalpaalpaajo6Sk - pKWkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqam - pqempqempqelpaampqampqempqempqelpaakpKWlpaWlpaalpaalpaalpaalpaWlpaWkpKSkpKWkpKWk - pKWkpKWlpaWmpqampqempqempqelpaalpaWkpKWkpKWkpKKdnaeTk7SSkrWSkrSRkbaOjraGhrx/f8SA - gMGAgMGBgcKAgMSCgsSGhsGKiruRkbObm6ahoZ+cnKOOjrGEhL6GhryGhryHh7qGhriFhbeDg7qBgb+D - g8CHh8CKir2Pj7aVlbCZma2fn6acnKuUlLSOjrqLi76Hh8GEhMaBgcWCgsKGhrqHh7eGhr+Hh7+JicGI - iMKLi76UlLSenqmioqOXl6+IiMCDg8WFhcKEhMGEhL6Dg72Cgr6FhbqJibeJibqGhr+Hh8CIiMKLi8CT - k7idnayjo6Obm6iRkbaNjbyNjbyLi76NjbyLi7qHh7uBgb+AgMODg8OIiMGOjryQkLqOjryWlrSjo6em - pqSlpaWXl7OQkLmMjLyLi72MjLqKiriHh7eHh7eIiLmJibyHh8GHh8CHh8CHh8COjrebm6mkpKKjo6Ok - pKOkpKGkpJ+goKOWlq6Li7qHh76Dg8KBgcGBgcKEhMKIiL+IiMCMjLqRkbWTk7GZmaqjo6GgoKWWlrGU - lLOTk7KSkrOPj7aIiLqIiLiGhrqDg8CBgcWCgsWCgsWKir2OjrmSkrObm6mjo6Ojo6SkpKWlpaWlpaWl - paWlpaWkpKSwD4WFxYWFxYWFxYWFxYmJwY6Ou5OTtJKSs5iYrKCgpKOjoaKioqGhoaGhoaGhoaGhoJyc - pZOTsYmJvIODwoKCxIKCxYODxYaGwo2NupOTspOTsZKStJmZrKSkoqSkpaWlpaWlpaampqamp6WlqKCg - rJmZspCQuo2NvYyMu4qKvImJvomJv4qKv4uLvo+PvJeXtKGhqKSkpKOjpKKipKKioqGhoKCgoKGhopub - rZWVtI6Ou4eHwoGBxoKCxYODxYSExYSExYeHwJGRtZ6ep6KioqKioqKioqKioqKioqKioqCgpJubqpSU - soiIv4CAx4ODxYODxYWFxIWFxIWFxIyMvpiYs5ycrqSkpqampKWlpaWlpaOjo6CgoZiYqZiYrJSUsYyM - uoaGwYGBxYGBxIKCxISEw4mJv4+PuJSUsqCgpqKioqKioaGhoKCgoJ6eopmZp5OTrY6OtYeHv4KCxYKC - xYKCxIKCxYKCxYSEw4mJvZKSspycpaCgoaKioaKioqKioqKioqGhoZ2dqJubqpubqpaWr4+Pt4yMvYyM - vYyMvYyMvY2NvZOTt5+fqKSko6Ojo6SkpaWlpaWlpaWlpqWlpqWlpqWlpqOjo6OjoqWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpKOjo6OjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6amp6WlpaampqWlpqWlpqSkpaOj - pKWlpaamp6amp6amp6ampqWlpaWlpaWlpaSkpKOjpKOjpKOjpKWlpaWlpaampqamp6amp6amp6WlpaOj - pKOjpKOjoqCgpJycqJycqJqaqJOTsYaGwICAxYCAwX9/wYCAwYCAwYGBwYeHvYuLu4mJvIiIvpSUrp6e - oqCgoJaWqouLtoqKt4iIuIiIuYaGuYKCu4CAvoGBvoKCwIeHv4mJwI2Nu5SUspSUspiYrp+fppubqpCQ - t4aGwoODxoODxYKCxIaGu4iItoSEvYGBxoKCxoODx4ODx4iIwpOTtZ+fp6OjpJ6ep5GRtYqKvYmJvYmJ - u4mJuIiIt4aGtoaGt4eHuoWFvoGBxYGBxYGBxoODxo2NvZ2drqWlpKGhpJ2dp5eXr4+PuIuLvouLvYiI - vIGBwX9/wYCAwYODwImJvImJv4uLvYuLwJGRuZ6eq6WlpaWlpZiYspSUtpCQuYuLvYyMvImJuYeHuYWF - t4WFuISEv4GBxoODxoODxoKCxoqKvZmZq6Ojn6GhoaGhoaGhoZ6epZiYrJGRs42Nt4aGwIWFwYODwIGB - wYGBxIGBxYKCxo+PuJSUs5KSs5eXrKKin6Kiop6ep5ycqZiYrZCQtomJvYmJuYiIuoKCwICAw4KCxIOD - xYODxYiIvomJv4uLvZWVsaCgpaOjpKOjpKSkpaWlpaWlpaWlpaOjpLAPhITFhYXGhITHiYnCjY28i4u+ - i4u+j4+4nJyno6OgoqKioqKioqKioaGhoqKgnp6kk5OwiIi+iIi9hITEg4PGg4PFh4fBjo65k5OzlJSz - lJSzmJitnp6lo6OioqKjpaWlpaWlpaWlpqalpaWooKCsmpqzlZW3j4+7jIy9iIjAg4PGg4PGg4PGiYm/ - lZWzoaGop6elpaWlo6Oko6Oko6OjoqKioaGgn5+gk5OxjIy8hYXCgYHFgoLEgoLFg4PEg4PFiIjAj4+4 - mJiuo6OgoqKioqKioqKioqKioqKioaGjmpqqkpKwhobAgIDHg4PEhITGhYXFhYXFhITFi4u9lZWympqu - oqKopaWlpaWlpaWlpaWlpaWloqKjm5umlJStjIy0hYW+gYHFgoLCgoLCg4PBh4e9jo64lJSym5urn5+m - oqKioqKioqKhoKCimZmnk5OvjY23hITBgIDFgoLDg4PEhITFhITFg4PGhobBkZGznZ2loaGhoaGhoaGh - oqKioqKioqKioKClmpqpmZmrlZWwjo65ioq/i4u9jIy9jIy9jIy+kJC5mZmuoKCno6Oko6Oko6OkpKSk - paWlpaWlpaWmpaWmpaWmpKSlo6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqan - o6OkoqKioqKjpaWmpqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWmpqanpqanpqanpaWlpKSko6Oko6Oko6Oko6OkpaWlpqampqanpqanpqanpaWlpaWlpaWl - pKSlo6Oko6Oko6OkpaWlpaWlpqampqanpqanpqanpaWlpKSkoqKjo6OhoKCkl5eskJCxhYXBgYHEgoLC - gYHCgIDBf3/Bf3/Bhoa8ioq6iYm8iYm8ioq7lZWunp6joKCfnJyjlparj4+xioq0iIi3hIS8gIC+gYG9 - gYG9gYHBgYHEgYHGiIi/lJSylJSyk5OzoKClm5uqi4u9g4PHhITEgoLEhoa6h4e2g4O8gIDDgYHDgoLE - g4PFiYm/kJC4lZWzm5uso6Oko6Ojn5+nk5O0ioq9i4u8ioq6iYm5hoa3hoa4hIS9gIDDgYHDgoLEgYHE - hoa/k5O0oKCppaWlpaWlpaWhmZmrjIy4ioq6iYm6g4PBgYHBgIDAgIDBgIDBgIDCg4PEiYm+jIy+jIy+ - lZW0o6OmpaWlmJixj4+8jIy+jY29ioq8iIi5h4e5hIS6goK/gYHDgoLEhITFhYXEiYnAjo65mZmto6Og - oaGhoaGhn5+kmJiqkJCyjIy2jY21iYm5ioq5g4O+f3/DgYHDgYHDgoLDiYm/j4+4lpavnZ2noqKhoaGh - np6mmZmtj4+5iYm/i4u8iYm7goLCgIDCgYHCg4PFg4PFg4PFg4PGgoLHhobCkZG1nZ2oo6Oko6Oko6Ok - o6Oko6Oko6Oko6OksA+GhsKGhsKFhcSFhcaFhcaFhcaEhMaQkLqdnaiioqChoaGioqKioqKioqKjo5+a - mqmNjbeHh76CgsSCgsSBgcWGhsGOjrmTk7OTk7STk7SYmK2fn6aioqGhoaGioqOioqOkpKSmpqWkpKaf - n6uZmbGUlLeQkLuJicGEhMaEhMaDg8WDg8WKir6Li7uUlLKhoaampqWlpaWlpaWkpKSjo6Sjo6OhoaKZ - mamMjLiDg8OBgcaCgsWCgsWDg8SDg8WHh7+Pj7aUlLKYmK6jo6GioqKioqKioqKioqKjo6GhoaOUlLKG - hsKBgcaCgsWCgsWDg8WEhMaEhMeNjb2RkbeRkbaZma2jo6SlpaWlpaWlpaWlpaWlpaWlpaWdnaqOjraI - iLuJibmJibqJibqJibqIiLqLi7aRkbCZmaqfn6WioqKioqKioqKjo6KhoaOamqmOjreFhcKCgsWCgsOC - gsODg8SEhMWEhMWDg8aKiryZmauioqChoaGhoaGhoaGhoaGhoaKgoKWamquamquVlbCOjrmLi76Njb6N - jb6Njb6MjL2MjL2MjL2SkrWgoKejo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaalpaalpaakpKWjo6Sjo6Sl - paWlpaWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqempqejo6Sjo6Slpaampqempqempqempqelpaal - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSkpKSlpaampqempqempqelpaalpaWl - paWlpaWjo6Sjo6SkpKSmpqampqempqempqelpaWlpaWlpaWkpKWjo6Sjo6Sjo6SkpKWlpaWlpaampqem - pqempqelpaakpKSkpKKfn6WQkLSEhMKCgsOCgsSCgsSBgcOBgcKAgMGEhLmIiLmKir2MjL6MjL2MjL2U - lLObm6ugoKOgoKCZmaiMjLiIiLmHh7mHh7mFhbqAgL9/f8GAgMGAgMOFhb+OjreTk7OSkrSVlbCdnaeZ - mayPj7iKir6Li72KiruKirmEhL+AgMKAgMGBgcOCgsSIiL2Li7yLi72MjL2QkLidnaqioqSlpaKbm6qN - jbaJibuJibuIiLmGhreCgrx/f8KAgMKAgMKAgMSGhr6SkrGcnKeenqegoKmlpaWioqiZma6SkrKQkLKO - jrGJibiHh7aCgr1/f8KAgMGBgcKDg8SIiL2Li7yOjryXl7Ojo6alpaWYmLKPj7uNjb6Ojr2Ojr2KiruG - hryAgMB/f8GAgMGBgcKDg8OKir6Li76Pj7ubm66lpaOioqKhoaGgoKOUlLCMjLmNjbaMjLWKiriDg8GA - gMKAgMKBgcOBgcKCgsOBgcSHh8CPj7mWlrCcnKihoaGfn6SYmKyQkLiLi76Li76EhMSBgcN/f8GAgMGB - gcOCgsSDg8WEhMWDg8aHh8GTk7OgoKaioqKjo6Sjo6Sjo6Sjo6Sjo6Sjo6SwD4eHw4WFxIWFxoWFxoWF - xoWFxomJwpWVs6Cgp6SkoqKioaGhoaKioqOjoqCgo5SUsIiIv4ODxYKCxISExYSExYSExIWFwoaGwoeH - wouLvZaWr6CgpaOjoqKio6GhoaKio6Kio6Wlo6KiqZmZsZOTt5CQu4qKwoaGx4SEx4ODxoKCxYiIvo2N - uYuLu5OTs6GhpqSkpKWlpaWlpaWlpaSkpKKio52dqZSUsoWFwoKCxoODxYODxYODxYODxYKCx4eHv4+P - tZaWrpycqaKioqKioqKioqKioqKioqGho5ubqo+PuYeHwYODxIKCxYKCxYKCxYODxYODx4iIwZCQuJiY - r52dqKKio6OjpKSkpaWlpaampKWlpZ+fq5iYs5OTtI2Nt4mJuomJuYmJuYmJuYuLto+Ps5OTr5iYqZ6e - pKKioqKioqKioqKioqGhopycp5KSsYWFwYKCxYODxIODxIODxISExYSExYODxYuLupmZqaKioKGhoaGh - oaGhoaKioJ+fo5mZqZmZrJqaq5eXr4uLvISExoeHxIaGxYaGxoqKwIyMvZCQt5ubraKipKOjpKOjpKOj - pKOjpKOjpKWlpaWlpaWlpaWlpqWlpqWlpqWlpqOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaampqam - p6amp6amp6amp6SkpaSkpKampqamp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaSkpKOjpKWlpaamp6amp6amp6ampqWlpaWlpaWlpaOjpKOjpKOjpKSkpaamp6amp6am - p6WlpqWlpaWlpaWlpaOjpKOjpKOjpKSkpaWlpaWlpaamp6amp6amp6ampqWlpKCgppKSsoaGwoGBxYGB - xYGBxYCAxYCAwoaGu4aGtoODvoSExIaGxYaGxYaGxYiIw5KSt5+fpqGhoZeXqpCQs5GRsouLtoWFu4KC - v4CAwH9/wX9/woSEvIiIuoqKu4qKu42NupeXrp6eppqaq5WVspWVsJWVsY2Nu4aGwoKCxIGBwoCAwoGB - w4eHvIyMu4mJvoeHwYaGwomJwJaWsKKipaSkpJycq5OTso6OtImJuomJuIKCvX9/wX9/wYCAwoCAw4SE - vZCQspeXrJiYrZiYrZmZrqSkpaCgqZ6eq5mZr5GRs4+PsIuLt4ODvYCAwYCAwYGBwYGBwoODxImJvYmJ - u42NuZqar6ampKWlpZ2drZaWtJWVtpSUuI6OvYmJwIODwn9/wX9/wYCAwoKCxISExYWFxYmJw5SUtqCg - qKamo6SkpaKioqKioZubqJOTsI+PtIqKuYODv4GBwoCAwoCAwYGBwYGBwoKCxYeHvomJu4qKvI6OuZaW - sKKioqGhoZ2dpZSUsYmJvoSExIKCxIGBw4CAwn9/wYCAwYGBwoKCxIKCxoiIwIqKvZCQt52dqaGhpKKi - oqOjo6OjpKOjpKOjpKOjpLAPhobEhYXGhYXGhITGhYXGi4vBlpa0oKCpo6Oko6Ojo6OioqKhoaGhoaGj - l5euioq+g4PGg4PGgoLEhITFhITFhITGg4PGhITFiYm/k5OynJyooaGjoqKjoqKjoqKioaGhoaGipKSi - oqKmmpqxj4+8iorChobGhYXHhITHhYXEioq9jo64jIy7kJC0m5upo6OioqKjpKSkpaWlpqalpKSmn5+p - mJiwjY27ioq9hYXCgoLFg4PFg4PFgoLGh4e/iIi9jY24mJisoqKhoqKioqKioqKioqKioqKinJyokJC2 - iIi/hITEgYHEgYHEgoLFgoLFgoLFgYHHi4u/mJixoKCooqKjoqKjoqKjo6OkpaWkpKSmnZ2tl5ezl5e1 - kpK5jIy6iYm6iYm5iYm5jIy2jo60jo61j4+zlpaqn5+goqKioqKio6OhoqKinZ2nl5eulJSxh4fAgYHF - goLDgoLDg4PEhITEhYXEi4u7lZWvnZ2loqKgoaGhoaGhoaGhoaGhnZ2kmJirmZmql5esi4u6hITEgoLG - g4PFhYXGhITHi4vAk5O2m5usoqKlo6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWmpaWm - pKSmo6Oko6OkpaWkpaWlpaWlpaWlpaWlo6OkpKSlpqanpqanpqanpqanpaWmpaWlpaWlpaWmpqanpqan - pqanpqanpqampaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkpaWmpqanpqan - pqanpqampaWlpaWlpKSlo6Oko6Oko6OkpKSlpqanpqanpqampqalpaWlpaWlpKSlo6Oko6Oko6OkpKSk - paWlpaWmpqanpqanpqanpqaloqKmmpqrkZG0iIi9hYW/hoa+hoa+h4e9iYm5g4O8gYHBg4PEhITGhITG - hobFiIjDlZW0oaGmo6OinZ2nlZWsjo61iIi8g4PBgYHCgYHCf3/Cg4O8h4e5iYm7iYm8ioq6i4u6j4+2 - mpqrnZ2mnZ2mnJyok5OzhobCg4PHgoLGgIDEgYHBhoa7ioq5iIi+hobBhYXChobCioq+k5O2oaGmoqKl - n5+onZ2pl5euiYm6hIS/gIDCf3/Cf3/CgIDBhYW8i4u4kpKylpaul5eulpavmpqqoqKjpKSmpqalnp6s - kZG3jY25hYW/gYHBgIDBgIDBgoLDg4PEhYXGi4u+jIy8jIy8kpK0n5+oo6OmpKSmm5uvlJS3kJC7iorB - hYXFgYHEf3/Cf3/BgIDBgoLCg4PFgoLKjY2/mpqwnp6qoKCppKSlo6Oko6OioqKgmpqojo64hITDgYHE - gYHDgIDBgIDBgIDBgYHCh4e9ioq6ioq8jY26kZG1lZWxo6Oho6Ogn5+jk5Owhoa/gIDGgoLEgYHDgIDC - f3/Bf3/BgYHDgoLFiYnAjIy8i4u9jo66mJiuo6OjoqKioqKjo6Oko6Oko6Oko6OksA+FhcWFhcWEhMaF - hcWLi7+WlrSfn6qkpKWlpaWjo6Wjo6Sjo6OioqGcnKiRkbSKir2GhsKBgcSCgsSCgsWDg8WEhMWFhcWK - ir6WlrCenqWioqKioqKioqOioqOioqOhoaKioqKioqOenqiVlbSIiMKFhceEhMiEhMeDg8WDg8KGhr+H - h8CMjLuZmauhoaGioqGioqKioqOkpKWlpaWkpKacnK6RkbmMjL2Kir+FhcODg8WDg8WEhMSHh7+JibyM - jLmRkbOamqiiop+hoaGioqKioqKjo6GgoKWVlbGIiL+Dg8OCgsWBgcSBgcSBgcWCgsWCgsaFhcKNjbqb - m6ykpKOjo6Sjo6SioqOioqOkpKOjo6ebm7CVlbaSkrmOjr6Kir6IiLuJibmMjLeOjrSNjbWOjrSTk66Z - maWfn5+goKCioqGhoaOcnKiWlq6SkrOQkLeGhsKCgsWDg8SDg8SEhMSGhsKIiL+UlLGenqWhoaKhoaGh - oaGhoaGhoaGgoKGcnKWYmKqWlqyLi7mDg8OCgsWDg8SCgsSEhMWEhMeOjr6dna+lpaWlpaSjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaakpKWjo6Sjo6SkpKSlpaWlpaWlpaWkpKSk - pKSlpaWmpqampqempqempqempqempqalpaWlpaampqempqempqempqempqalpaWlpaWlpaWkpKSjo6Sk - pKSlpaWlpaWlpaWlpaWlpaWlpaWkpKSlpaWlpaampqempqempqempqalpaWlpaWlpaWjo6SioqOjo6Sk - pKampqempqempqempqalpaWlpaWioqOioqOioqSjo6SkpKSlpaWlpaampqempqempqelpaahoaWfn6aR - kbOMjLaOjrONjbSJibmEhL6BgcGBgcOCgsWDg8WGhsOLi7+QkLmYmLGgoKmjo6ShoaWVla6Hh72CgsSB - gcWAgMWBgcKEhL2FhbeHh7mKirqJibyGhr+Ghr+FhcGRkbWdnaehoaOamquNjbyHh8CGhsCGhr6Fhb6F - hbuHh7eHh72FhcCFhcKHh8GLi72RkbeVlbOfn6ijo6ShoaWenqmXl7CLi7yBgcSAgMV/f8OAgMCEhLqK - iraMjLqMjLmOjriTk7Kbm6igoKOioqGjo6Knp6OgoKuQkLqHh8OCgsWBgcOAgMGAgMGBgcOCgsSEhMaI - iMSJicOGhsSJib+VlbGhoaampqOdna2QkLuJicKHh8KFhcOFhb2BgcB+fsGAgMGBgcOCgseMjL6UlLaZ - mbGYmLKamrCmpqSkpKWjo6WkpKCcnKaMjLuBgciDg8SCgsOCgsKAgMKAgMGFhbyKirmLi7uLi72NjbqO - jriQkLaenqiioqKhoaKZmaqOjraEhMGCgsSBgcOAgMJ/f8F/f8KBgcKGhr+Li7yMjL2MjL2Li76QkLef - n6WioqKioqKioqKioqSjo6Sjo6SwD4SExYSExYWFxIqKv5OTtpubraGhp6SkpaWlpaWlpaSkpKOjpKGh - pZWVsI6Ot4uLvIeHwIGBxYKCxIKCxIKCxYSExImJv5KStZubp6GhoaKioaKio6Kio6Kio6Kio6Kio6Ki - oZ2dppOTsomJv4SExoSExoeHw4SEw4GBxIGBxIGBxoKCxZCQtZ+fpKOjn6GhoaKioqKio6KipKSkpKSk - ppubsY2Nv4mJwIWFxYSExoSExYODxYSExImJv42NuZKSspmZqZ+fo6GhoaGhoaKioqKioqOjoJ6ep4+P - t4ODxIODxYKCxYGBxIGBw4GBxIKCxYWFw4uLuY+PtZqaq6WloqOjpKOjpKKio6KioqCgpZycqpiYspKS - uIyMvYyMv4uLvYiIu4mJuYyMtoyMt4qKuI6OtJeXqJ6enp+fn5+fn6Cgn5+fo5mZq5KSs46OuYmJwIWF - xISExYWFxYWFxYaGw4qKvouLvJWVr5+fo6Kin6GhoaGhoaGhoaGhoaCgopubppWVrYuLuYKCxYGBxYKC - xIKCxIGBxIKCxYGBx46OvKCgqqioo6WlpaSkpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWl - paWlpaWlpaWlpaSkpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaSkpKSkpKampqamp6amp6amp6amp6WlpqWl - paampqamp6amp6amp6amp6WlpqWlpaWlpaWlpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paampqamp6amp6amp6WlpqWlpaWlpaSkpKKio6Kio6Kio6Skpaamp6amp6amp6WlpqSkpKKioqKioqKi - pKKipKOjpKSkpaWlpaampqampqamp6ampqSkpKamopubrJSUr5KSsIyMtoSEvYCAwoGBwoGBw4ODxYWF - womJvouLvZCQuZGRuJeXsqGhqKOjpZeXr4mJvYSEwYSEwYWFwoWFwIiIuIWFuIeHt4iIuoSEwIKCxYKC - xIODw4iIvZeXrZ2dp5OTs4mJv4uLuouLuYuLuImJuIeHuISEuoSEwIWFwYeHwIqKvpCQuJeXr5qaq52d - qaKipKGhppiYrpCQuIyMvYeHwoSEwYODwISEu4mJs4uLtomJuomJvIiIvo6Ot5qaqZ6epqCgpaGhoqWl - op+fq4+PvIODyIWFxoSExYKCw4GBwYGBwYGBw4ODxYSEx4SEx4SEx4uLv5eXr6KipKSko56eqZCQuIiI - woqKv4mJvoeHvIKCv39/wX5+woCAwoiIvZGRt5KSt5CQupCQupiYs6ampKSkpaSkpaWlo56ep4+PtoWF - xIODxYODxYKCxYCAwoODu4eHt4iIuYqKu4uLvIuLvYmJvouLu5iYraGho6OjoqCgpJaWrYiIvYKCxoGB - xYCAwn9/wn9/wYSEvIqKuIuLu4yMvYyMvoyMvpGRuJycqaKioqKioaKioqKioqOjo6OjpLAPh4fDhobE - i4u/kZG4lpa0mpqwoaGnpaWlpaWlpaWlpaWko6Okn5+pkJC3ioq+hYXDgYHHgoLFgoLEgoLDgoLDiIi9 - kJC1l5eunJynoaGioqKioqKioqKioqKjoqKjoqKjoqKkl5eviYm9hITEhobBhobBioq+hYXBgYHFgoLE - hYXBjIy2mJiqoKCioqKgoaGhoaGhoqKioqKjpKSioaGnlpa1iYnChITHhITGhITFhITFhITGhITHg4PH - kJC4mJisoKCioqKfoaGhoaGhoaGhoqKipKSgnZ2ojY26goLGg4PFgoLFgYHEgYHDgYHDhITBi4u5kZGy - lJSvnJynpKSho6Oko6Oko6OkpKSin5+mlpawjo64i4u8i4u9i4u9ioq8iIi6iIi5iYm4iYm5ioq5jo6z - l5eooKCdn5+fn5+fn5+dnZ2hmZmpkZG0iYm/hITFhYXEhYXEhYXEhobDiIjBioq+jIy8l5euoKCioqKg - oaGhoaGhoaGhoqKgnZ2llJSwi4u6gYHFgYHDgYHDgYHDgYHDgYHDgYHEg4PEjY27nZ2rpqajpaWlpaWl - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpaWl - paWlpaWlpKSlo6OkpKSlpqanpqanpqanpqanpqanpaWlpaWlpqampqanpqanpqanpqanpaWlpaWlpaWl - pKSlo6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpaWlpaWlpaWlpKSk - o6OioqKioqKipKSlpqanpqanpqano6Olo6Ojo6Ojo6Ojo6Ojo6Oko6OkpaWlpKSlpKSlpKSlpKSlo6Ok - o6OkoKCplpavjY24hYXAgIDDgIDBgYHCgoLDhYXBiIi+iYm+hobBhobDhITGjY29nZ2tpaWkn5+nkZG1 - i4u6ioq6ioq6ioq7iIi6hoa4hYW3gYG+gIDEgoLDhITCiYm8h4e+kJC0mJitlJSyj4+5jo65j4+4jIy6 - h4e7hIS8gYG+g4O9g4PAh4e+iIi/jIy8l5evnp6nn5+moqKkoqKkmZmujIy9jIy9jY28i4u6ioq4iYm1 - iIi0iIi5iYm7ioq7iYm8jIy5kZG1kpK0mpqqoaGjpKSgnJyrjY29hITHhYXGhITFhITFgoLCgYHBgYHD - g4PFhITGhITHiIjDk5O3np6roaGloqKjoaGkl5evjY27ioq9iYm+g4PEgYHEgIDDgIDBhIS5j4+xioq7 - ioq/iorAjo69mZmypqakpaWlpKSlpaWloqKlmZmrjY24hobChITDhITDhYW9h4e2hoa3h4e4iYm5i4u7 - i4u9ioq+jIy7mJiuoKCloqKin5+llpavi4u7hobBg4PCg4PBgoLAhIS8h4e2h4e8iIi9iIi/i4u9kZG3 - mZmvnZ2qoKCloqKjoqKioqKioqKio6OksA+Njb6Njb6Pj7yQkLqSkreZma+jo6akpKWlpaWlpaWlpaWk - pKWenqqSkraHh8KDg8aEhMSEhMSEhMOEhMSJib2QkLSVla6bm6ihoaKioqKioqKioqKioqKioqKioqOj - o6KdnamQkLiKir+Li7yKiryKiruEhMKBgcWCgsSEhMGKireXl6ienp+hoZ+hoaGhoaGhoaGhoaGioqKj - o6Gbm6uNjb2EhMeFhcaFhceDg8aDg8WEhMaEhMaGhsSPj7uamqyhoaKhoaChoaGhoaGhoaGhoaGjo6Cc - nKiMjLqCgsaDg8WDg8WCgsWCgsSFhcGLi7iQkLGSkq+amqmgoKKioqGioqKjo6Sjo6SkpKSfn6iUlLOL - i76Li72Kir2Kir2KiryJibmJibmJibiIiLmOjrOWlqmdnaKgoJ6fn5+fn5+fn5+amqSUlK2QkLWLi7yG - hsKFhcOFhcSFhcSFhcSFhcSFhcSQkLeenqejo6ChoaGhoaGhoaGhoaGioqCamqqMjLuCgsWDg8SDg8SD - g8WDg8WDg8WDg8WEhMSMjL2SkrednaqlpaOlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sk - pKSlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWlpaWlpaWlpaWjo6SlpaWmpqampqempqem - pqempqelpaWlpaWmpqampqempqempqempqelpaalpaWlpaWlpaWjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWjo6SkpKWlpaWlpaWlpaWjo6Sjo6Sjo6SlpaampqempqempqelpaWl - paWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SdnaqSkriHh8OCgsWBgcOAgMF/f8CDg8CI - iL2Hh7+CgseDg8WDg8WDg8eMjL6bm66mpqSkpKWWlrKNjbyJib2JibyJibuIiLqIiLiCgr+AgMOBgcOD - g8KJib2Jib2Li7qPj7SXl6qdnaeVlbGSkrSTk7SPj7eHh72Dg7+CgryCgr2BgcCBgcKCgsSGhsSNjb2Y - mK2hoaSioqKkpKKfn6iRkbeMjL2MjL2KiryLi7mKiraGhreHh7mJibqJibuKiryKiryJibyNjbqZmaqh - oaOkpKGbm6qNjbuEhMeFhcaFhcaFhcaDg8SBgcKBgcKBgcODg8WDg8eHh8SNjbyTk7abm6+hoaWjo6Kf - n6aVlbCJib+EhMaDg8WCgsWBgcSGhrmMjK2Hh7mJibqKiruKir6OjruYmLGmpqSlpaWlpaWkpKWlpaWj - o6WZmauMjLmKirqJibiHh7eGhreGhreHh7iJibqKirqKiruLi72MjLyUlLKbm6uioqOgoKSZmauUlLCS - kq6Li7aJibiJibiIiLeFhbmBgcGBgcSBgcaLi7yYmK6dnaqenqqdnauioqejo6OioqKjo6Sjo6SwD4WF - xoWFx4SEyImJwpaWs6Cgp6SkpaSkpaSkpaWlpaSkpqCgqpmZsZGRt42NvIuLvYuLvYyMvYyMvYyMvpKS - t5WVspSUspeXrqGhoaKioqKioqKioqKioqKioqKiop6eppqarJKStouLvYuLvYmJvYSExIODxYKCxoaG - wYqKu4uLupiYqp6eoJ+fnqCgoKGhoaGhoaGhoaKioJ2dppWVsY2Nu4iIwYmJwIWFxYODxoODxYODxoeH - w5GRuZiYsp2dq6GhpKKioaGhoaGhoaGhoaKioJ+fo5OTsIeHv4SExIKCxIKCxIGBxYWFwI2Nt5GRsZCQ - sZWVqp6eo6KioKGhoaGhoaKioqSko5+fqZaWso6OuYqKvouLvYuLvYqKvIqKu4qKu4qKu4mJuYiIuI2N - spmZpaGhnZ+fn5+fn5+fnpubpZOTro+PsY+Ps4yMu4yMvIyMvIeHwoSExYSExYaGw5GRtpiYraCgpaOj - oaKioqGhoaGhoaKioJycppWVr5CQtomJvYODw4GBxIKCxYODxYODxoWFxY2NvZSUtpqasKKiqKWlpKOj - pKWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaOj - pKOjpKSkpaWlpaWlpaWlpaWlpaOjpKSkpKampqamp6amp6amp6amp6WlpqWlpaWlpqamp6amp6amp6am - p6WlpqWlpaWlpaWlpaWlpaOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSk - paWlpaWlpaWlpaOjpKOjpKOjpKSkpaamp6amp6amp6WlpqWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpJiYsIqKwIODx4SExoODxYGBxIWFuISEvIGBw4GBxYKCxYKCxYKCxoeHwpKStJ+fp6WlpKSk - pZiYso+PvIyMvYuLu4qKuYmJuYKCwICAwYCAwoODwIiIvYmJvYiIvY+PtpaWrZ2dpJ+foZiYq5KSs5KS - tJOTs46OtoeHuYWFuICAwIGBwYGBw4ODxYSExoWFw5GRtaCgpaOjoqOjop+fp5SUs46Ouo6Ouo6OuYyM - uomJu4aGuIaGt4mJuYaGwoSExoSExoWFxIyMu5iYr5+fpqOjoJ2dqI2NuoODxoSExYSExYSExYKCxICA - woCAwYGBwoGBxIKCxYKCxoODyIaGxY+Pu52drKKipKSkoZ6ep4+PuISExYSExYKCx4mJuYuLr4SEuIaG - uIiIuYiIu42NtpKStJeXsqWlpKWlpaWlpaampaOjpp2dq5aWso+PuY2Nt4uLuYiIuoaGt4WFtoaGt4iI - uYqKuouLu4uLvIuLvI2NuZqarKGhpKOjoqGhoaCgoJ+fn5mZpY2NtIiIuoaGvICAwoGBwYGBw4mJv4yM - vpCQuZmZsJiYsZeXsqGhqKWlpKSkpaOjpKOjpLAPhITFhYXHhITIjIy/m5uupaWko6OkpKSlpKSlpaWk - oqKnmZmxkpK5kZG6jo68i4u9i4u8i4u9jIy+kpK3lZWzlJS0lZWynJypoqKioaGhoqKioqKioqKioqKi - oqKinp6mm5uplpawj4+4iYnAhITEg4PFg4PGiIjBi4u8ioq9ioq7l5eroKCioKCfn5+foKCgoaGhoaGh - nZ2llZWvjY26ioq/iYm/hITEg4PFgoLFgYHGhobCkZG4mJiynp6roqKno6Olo6OjoqKioaGhoaGhnp6k - k5OviYm9g4PDgoLDgoLDgYHEhoa+iYm7iYm8ioq6iYm9k5OunJyhoaGfoaGhoaGhoaGho6OhmJiujo67 - i4u+i4u+i4u9i4u9ioq8ioq7ioq7ioq7i4u5jo6yk5Oqmpqhnp6dn5+fn5+fnZ2hlpapkZGwkJCykpKy - lJS2j4+7iIjChYXFhITHhobDkJC2l5eunp6moqKioqKioqKioqKioaGhnp6ll5etk5OxkJC0ioq9g4PF - goLFhITGhYXIh4fFjo69lJS2mpqwoqKopaWlpaWlpaWlo6OkpaWlpaWlpaWlpKSlo6Oko6OkoqKioqKi - o6Ojo6Oko6Oko6OkpaWlpqanpqanpqanpqampaWlpaWlo6Oko6Oko6OkpKSkpaWlpaWlpaWlo6OkpKSk - pqampqanpqanpqanpqanpaWmpaWlpaWlpqanpqanpqanpqanpqanpqanpqanpqanpaWmpKSko6OkpKSk - paWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Ok - paWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oilpavh4fBgoLIg4PGg4PFiIi7hIS9 - gIDBgIDDgYHDgoLEgoLFhobAk5OxnJynnp6moKCopKSlnJytm5uvnJytlZWyiIi+g4PCgIDCf3/DgoK/ - hoa8iIi9ioq+kJC1k5OzlJSxmJirm5ummZmomZmplZWvjo63ioq6iIi6gIC/gIDAgIDCg4PEg4PHh4fD - k5O2m5uunp6onp6noaGkoKClmZmtmZmukpK0jY25i4u9ioq8h4e4hoa2goLAg4PEhITHh4fEjIy+jY2+ - kpK2nZ2npKSfnp6nkpK1i4u9i4u+hYXDg4PGg4PFgoLDgYHCf3/CgIDDgIDEgoLGhITGhobGiorBl5ez - oqKnpKSjn5+ml5eukJC2kJC2kJC1jIy2h4e3hoa3hoa3iYm4ioq6ioq6i4u6j4+4mpqvnp6rpKSmpqak - pKSlm5utkJC6kJC6jIy7ioq7ioq6iIi4hoa3hoa3iIi5ioq7i4u8i4u8jY25kpK0mZmtoKClo6OioqKi - oaGhnZ2jl5epjo61hYW+gYHBgYHBgIDCh4e8jIy7jY29jo6+j4+8kZG6lZW1oaGppqakpaWmpqanpqan - sA+EhMWDg8aLi7+Xl7OgoKqlpaWkpKWjo6SkpKSlpaSenquSkriRkbmPj7uNjb6MjL2KiryMjLuRkbaU - lLWTk7WWlrGdnaqioqSioqOioqKhoaGhoaGioqKioqKjo6GdnaeXl6yRkbaNjbuKir+CgseDg8WCgsaI - iL+Li7yLi7yQkLWdnaShoaGhoaCfn5+fn5+goKCgoKKVla6MjLqJib+IiMCEhMSDg8WDg8WBgceFhcKO - jraWlq6Xl7CgoKqkpKakpKWkpKSjo6KioqGjo5+ZmamLi7qDg8SDg8SDg8SDg8SDg8SEhMKHh72IiLyI - iL6RkbGamqaenqCgoJ+goKChoaGhoaGiop+Wlq2NjbuKir+Li76KiryMjL2Li7yLi7yLi7yLi7yMjLmS - krGamqSenp2dnZ2fn56fn6CYmKmUlK2UlK2Tk66RkbOPj7qJicGGhsSCgsiHh8OSkreZma6enqehoaOi - oqKioqKioqKioqKioqKWlq6Tk7GTk7CNjbeEhMWCgsaCgsSEhMaFhciFhceKisGWlrSioqilpaWlpaWl - paWlpaWkpKWjo6SkpKWlpaWlpaWkpKWkpKSkpKSkpKSjo6Sjo6Sjo6Sjo6SkpKSmpqampqempqempqem - pqalpaWioqKioqOjo6Sjo6SkpKSkpKSkpKSjo6Sjo6SlpaWmpqampqempqempqelpaalpaWlpaWlpaam - pqempqempqempqempqampqempqempqalpaWjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sj - o6SioqOioqOkpKWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sj - o6Sjo6Sjo6SkpKOamquMjLuHh8OJicCJib+Hh8CCgsOAgMOAgMKAgMKBgcODg8SMjLuSkrOTk7KUlLGZ - mayjo6Sjo6agoKmYmLKPj7uKir+Hh8CEhL6EhL6FhbuHh7qLi7qSkraPj7qPj7qOjruRkbaWlqyYmKmU - lK6Pj7WLi7mIiL2Dg8GAgMKAgMGBgcKCgsaFhcWOjryYmLKYmLGXl7GVlbKcnKmioqOenqefn6aUlLKM - jLyJib6KirqIiLmDg76BgcKDg8WDg8eIiMOPj72Njb6NjbyZma2ioqKgoKSYmKyTk7ONjbuGhsODg8aD - g8WBgcSAgMN+fsF/f8KBgcSDg8WDg8WEhMWGhsSSkrihoamlpaOfn6aXl62Tk7OTk7GOjrWJibmGhrmG - hraGhraDg7+EhMKEhMKFhcOGhsOKir+VlbOhoaempqSmpqSfn6qRkbqNjb2Li76Li72KiruIiLiGhreG - hreIiLiKiryMjLyPj7iUlLSVlbKamquhoaSjo6KhoaSenqeYmKyPj7OGhr2CgsOAgMSAgMKEhLqKiriI - iL+Hh8SIiMWHh8WJicOUlLiioqqnp6WmpqampqempqewD4WFw4uLvJaWsJ+fqaSkpqWlpaWlpaSkpKWl - o6KippmZsJCQuo+Pu42NvY2NvoyMvYmJvIqKu46OuJGRtpaWsZycq6GhpqSkpKOjpKKio6GhoqGhoaKi - oaKiop6eppeXrpCQt4yMu4mJvoaGwoODxYODxYGBx4aGwYyMu5CQt5eXraGhoqKioaGhoaGhoaCgn56e - n5mZpo2NuIiIwImJv4iIwIGBx4ODxYODxoWFxY6OuZaWrZiYrJqaqaGhpaSkpaSkpaSkpaSkpaOjo5+f - o5OTsYaGwYGBxoODxIODxIODxYODxYGBx4ODw4qKuZGRsJubpqCgoaCgoJ+fn5+fn6CgoKKioZ+fo5GR - soqKvIqKvIqKvImJu4yMu42NvI2NvIyMvYyMvJGRtZaWrp+fo6Cgnp2dnZ2dnZ2doZaWqpaWqpWVrJOT - ro6OtISEw4SEx4ODx4mJwZOTtpmZr5ubraGhpqKioqKioqKioqKioqKioqKiopeXrJKSsZKSso6Ot4aG - wYiIv4ODw4KCxYSExoSEx4eHxZaWtKSkpqampKWlpaWlpaWlpaWlpaSkpKSkpKSkpKSkpKWlpaampqam - pqampqWlpaOjpKOjpKOjpKOjpKSkpKWlpaamp6amp6amp6ampqOjo6Kio6OjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpKSkpKampqWlpqWlpqWlpaWlpaWlpaWlpaWlpqWlpqWlpqSkpaSkpKampqamp6amp6amp6Wl - paOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKKio6Kio6Kio6SkpaSkpaSkpaOjpKKio6Oj - pKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaSkpaOjpaOjpaOjpaOjpaOjpKKipJeXsI2Nu4uLvYiIwYSE - xYKCxYCAw39/wn9/w4GBwoiIvIeHvoeHwYaGw4qKvZaWr6KioqWlop+fqZOTto6OvZGRuJCQt4mJu4eH - uYSEu4KCv4aGv4qKvYyMvY2NvY2Nvo6Ou5WVsJycpZWVrIuLuYaGv4WFwoKCxIGBw4CAwX9/woODwYmJ - vYyMu5CQuZSUtZSUtZaWs52dqKOjoaGho56ep5WVspCQuI2NuomJu4SEv4CAwoCAwYCAw4SEwomJv42N - vo2NvouLv5OTt56eqaOjoZ6eppKSs4iIwISExYSExYODxYGBxX9/w35+woCAwoKCw4ODxYODxYODxYOD - xpCQuaCgqaamo6Kip5iYr5GRtZKStIuLuoeHvIeHt4aGt4KCvICAwoCAxYKCxoODxoODxoiIwZKStaGh - qKampKampKOjqJeXs5GRupCQuoyMvImJvIiIuIeHuIaGt4eHuIuLuo2Nu46OupGRuJGRuJeXsJ2dqKKi - o6GhpJqaq5CQt4eHwYKCxICAxIKCwYWFu4eHtYWFvISExISEx4SEx4SEyYWFyI+PvZ6eraampqamp6am - p6amp7APhobCjo64mZmsoaGlpaWkpaWlpaWlpaWlpaWjnZ2rkpK2j4+7jIy9jIy9jIy9i4u7iYm6iYm7 - jIy5kpKym5uqn5+ooKCno6Oko6OkoqKjoqKioaGhoqKgoKCjlpavkJC3jIy7iYm9hITCgYHHgoLFgoLF - g4PEiYm+kZG2mZmsn5+loqKioaGhoaGhoaGhoaGgnp6hlZWpioq7iYm+iYm/hYXDg4PGhITHh4fEjo69 - lZWzmZmtmpqqoKCjoqKho6OjpKSlpKSlpKSloaGmmpqrkJC3iIi/hITDg4PEg4PEg4PFg4PGg4PEh4e/ - kZGznJyknJyjn5+hoKCgoKCgn5+fn5+fn5+imJiokJC0i4u7ioq7ioq7ioq6h4e9iIjAiYnBiYnBjo66 - mZmtnJymoKCioaGgn5+fnZ2em5uglpamlZWqk5OvkJCyi4u3hYXBh4fBh4fDjo68lpazmJiwmpquoqKn - oqKjoqKioqKioqKioqKio6OhnZ2olJSxj4+2jIy6iYm+iYm+hITDgoLEhITEhobFjIzAmpqxpKSmpqak - paWlpaWlpaWlpaWlpaWlpKSko6Oko6OkpaWmpqanpqanpqanpqanpaWlpKSko6Oko6Oko6OkpKSlpqal - pqampqanpqanpKSlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpKSlo6OkpKSkpqampqanpqanpqanpqalpKSko6OkpKSlpKSlpKSlpaWlpaWlpaWl - paWlpKSkpKSko6OkoqKjoqKjoqKjoqKjoqKioqKio6Ojo6Oko6Oko6Oko6OlpKSlpaWlpaWlpaWlpaWl - pKSlpKSlpKSlpKSlo6OkpaWhnJysjo67hobDhITFg4PFgoLEgYHDf3/CgIDAhIS9h4e8goLEgYHGgYHI - hobClZWwoqKio6OhoKCnnJyrl5ewkpK1j4+3i4u6h4e7gYG/f3/DgIDDgoLCh4e/iYnAiYnBiorAkpK2 - np6mnp6kk5OviIi9goLEgYHEgIDEgIDCgYG/hoa5ioq4i4u7jo65lZWzlpazmJiwnZ2poqKjoaGkmpqs - lJSzkZG2jY27hobCgYHFgYHCf3/BgYG/h4e6i4u4i4u8jY28j4+7lJS3np6rpaWhoKClj4+3hITFg4PH - g4PGgoLFf3/Df3/CgIDCgYHCgoLDg4PFg4PGg4PGhYXDjo65n5+ppqaio6OmnZ2rlpaxl5exkJC2ioq4 - hoa5g4O8fn7CgYHCgYHDg4PEhobDiYnAjY28kJC3nZ2qpKSkpaWlpKSmn5+qnJyumpqwkpK1i4u5iIi5 - h4e4hoa4h4e3i4u3jY26i4u/iYnBiYnBi4u+lJSznp6no6OinZ2okpK1h4fDhobChYXAhYW8iIi3g4O7 - gIDCgoLFhITGhYXHhYXHhYXHiIjElJS3oqKpp6elpqanpqansA+FhcSKir2Xl62hoaKjo6Kjo6WlpaWl - paWlpaWbm66OjrmMjL+MjL2Li72Li72KiryKirqNjbiUlK+Zmamdnaafn6ehoaajo6Sjo6Sjo6SioqOi - oqKioqGdnaeOjreKiruJib2EhMKAgMWBgcSBgcSDg8OKiryQkLWWlq+enqejo6GioqKioqKhoaGhoaGg - oKKcnKaVlauMjLaJibyFhcKBgceEhMWHh8WMjL+RkbmSkrmUlLWcnKmioqKhoaGhoaGjo6OlpaSioqaZ - ma6UlLSPj7mLi7uHh8CDg8aEhMWEhMWEhMSIiMCOjriXl66dnaScnKKfn6CgoKCgoKCgoJ+enqCXl6eT - k62SkrGNjbeJibyKiruJib2Dg8SBgcaDg8WJicCTk7WenqmioqOhoaGhoaGhoaCenp+amqKVlaiRkbCQ - kLKNjbaIiLyIiLyIiL2Jib6KisCPj7uYmLGfn6qkpKWjo6SioqOioqKioqKioqKhoaSamquSkrSLi7yF - hcODg8eDg8aEhMWEhMWEhMSJib+Tk7afn6ulpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sk - pKWmpqempqempqempqekpKWjo6Sjo6Sjo6SkpKWlpaWlpaampqempqempqelpaajo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6SioqKkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SkpKWmpqem - pqempqempqelpaajo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SioqKioqKioqKioqKi - oqKioqKjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWkpKOdnauPj7uEhMWE - hMWDg8WDg8WCgsSBgcCDg7qFhbmAgMSCgsWDg8WCgsaIiL+Xl66ioqKioqKioqGkpJ6enqSQkLOKirqI - iLyCgsJ/f8KAgMKCgsGFhbyBgcSBgcaDg8eGhsSNjbuamq6ioqKenqOTk7CHh72CgsODg8GDg8CGhriH - h7aHh7mLi7mRkbSSkrWSkraQkLiVlbSfn6mioqOamqySkrWLi72FhcSDg8aEhMWCgsOBgcCFhbiHh7iI - iLyJib2Li76UlLWbm6+goKqkpKWhoaaTk7OHh8KEhMWEhMOCgsN/f8N/f8KAgMGBgcGCgsSCgsWEhMWH - h8KOjrqQkLacnKqkpKSlpaSkpKWdna2amqyVlbKNjbmEhL9/f8N/f8GAgMGBgcKDg8OHh8GLi76Kir+J - icCUlLKgoKalpaSkpKWlpaSnp6Kfn6uVlbKNjbeIiLuHh7mIiLWJibWJibiKiryIiMKEhMeEhMaEhMeN - jbycnKqkpJ+hoaObm6qQkLiNjbyMjLqKirmEhLx+fsKBgcKCgsSDg8aFhceFhceFhcaFhceOjr2enq2n - p6WmpqempqewD4eHwJKStJ6epaKin6GhoaKio6SkpaWlpaSkpqCgqpaWtIyMvYyMvYuLvIqKu4mJvIyM - uJOTr5mZqZiYqpubp6Cgo6Ojo6OjpKOjpKOjpKOjpKOjo6CgpZeXr4mJvYmJu4KCwoCAxYGBxIKCxISE - w4qKu5CQs5GRspWVr56epqKioqKioqKioqKioqKioZ6epJaWrZGRsouLuIKCwYCAxoKCxYWFw42NvoiI - w4eHxIaGxY2NvpubrqKio6KioqGhoaGhoaSkoqKiqJSUtI6OvIyMvYeHw4ODxoSExYSExYWFxImJv4qK - vY2NupWVr56epKGhoZ+fn6CgoKCgoKGhn5+fopOTr5GRsYqKt4iIvImJvIeHvoODxYODxIODxYiIvZGR - tJiYr52dqaOjpaOjoqKioaGhoZ2do5WVq5CQsJCQsIyMuIqKvomJwIODxoODxoGBxYWFwZOTtaGhqKSk - paSkpaSkpaOjpKOjo6KioqCgpJmZrJKStYuLvIWFw4SExoSExYSExYSExYWFxIiIwJGRtp2dqqOjpqWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKWlpaamp6amp6amp6ampqWlpaWlpaWlpaWl - paWlpaWlpaWlpaamp6amp6amp6WlpqOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKKioqKioqSkpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKSkpaampqamp6amp6amp6WlpaOjpKOjpKOjpKSkpKWl - paWlpaWlpaWlpaWlpaSkpaOjpKOjpKKioqKioqKioqKioqKioqKioqOjpKOjpKOjpKOjpKOjpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpKGhppeXsoqKwIODxoSExYODxYKCwoWFu4WFuoCAw4GBxIODxYOD - xYeHwpGRt5ycqaGho6KioqGhoqKioZ+fpJaWq4+PtIODwoGBxICAwoCAwYCAwYCAwoKCxYKCxYaGwYuL - vo+Pu5eXsqOjpZ2dqJSUsI2NtoiIuomJuYmJuIeHuIaGuIeHuYqKu4mJvYWFw4WFxISEx42NvpycrqWl - pJ+fppOTtIeHw4ODx4SExYSExYSEwoaGuIeHtoSEv4KCx4ODx4WFxY+Pt5qar52drqGhqqWlpZubrI+P - uY2Nu42NuoeHvoGBxIGBwn9/wYGBwoGBw4GBxYWFwoyMu5KStJKStpaWsJ+fp6Sko6KipZycrJSUtI2N - u4aGw4KCxoGBw4CAwoCAwYKCwYSEw4SExoWFx4WFxoWFx4+Pup2dqKSkoqSkpaSkpaSkpJeXsY2Nu4qK - vIuLuYqKt42Nr4iIt4iIuoaGv4SExYWFxIWFxIqKv5CQuZycrKWloaGho5qaq5SUso2Nu4uLvYeHvoCA - w4CAwYCAwYCAwoKCxISExoWFxoeHxo6Ov4+Pvpqas6Skp6ampqamp7APlJSympqsoKCkoqKhoaGhoaGh - oqKjoqKlo6OloaGpmpqwlJS3jIy9ioq7iYm6iIi7i4u4kpKxkpKxkJCznJymoqKfoaGioqKjo6Oko6Ok - o6OkpKSjoaGlmJivi4u9g4PDgYHEgYHFgoLGhITDi4u6i4u6i4u6iYm8kZGznp6loqKioqKioqKioqKi - o6Ohnp6mkJCyjIy5hITCgYHFgYHFhYXBioq8hYXFhYXHhITIiIjDlJS2oaGppaWloqKjoqKioqKhoaGi - np6ol5eyjY29hobEhITHhITGhITFhYXEioq+i4u9ioq+jY27l5euo6OhoaGhoaGhoKCgn5+foaGfn5+i - kpKwioq3iYm6ioq7h4e+goLFg4PEgoLFiIi9j4+0lparnZ2mo6Oko6Oko6Oko6Oin5+kl5erkpKykZGx - kJCvjIy2hobBgoLGg4PFg4PFgoLHioq7mZmqpKSjpKSlpKSlpKSlpKSlpKSkoaGlmpqrkpK1jIy7hYXD - g4PGhITFhITFhITFhITDiorAkJC7mZmvpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlo6Oko6OkpKSlpqampqanpqanpqanpqanpqanpqanpqampaWlpaWlpaWlpqanpqanpqanpaWmo6Ok - o6Oko6Oko6Oko6Oko6Oko6OkoqKioqKioqKipKSkpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpaWl - o6OkpKSkpqampqanpqanpqanpaWlpKSko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6OkoqKj - oqKioqKioqKioqKio6Oko6Oko6Oko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqajnp6r - jY27g4PHhITFhITFiYm9hoa8f3/Cf3/BgYHDgYHFh4fBj4+4k5OzlJSympqroaGjoqKhn5+lmJisj4+1 - g4PDgYHCgYHCgYHBf3/Bf3/BgIDCgIDEh4e/ioq7ioq8jY28lpazo6OkmJivjY25ioq8ioq7iYm6iYm5 - iIi3g4O9gYHBhITBhYXCg4PFhITFgoLHi4u/m5uvpqajpKSllZWxh4fBg4PHhITGhYXDioq7iIi4goK+ - gIDDg4PFg4PGhITGjIy9kpK2mJixnp6rpKSlpKSmm5utmpqslpavi4u8gYHHgYHEgIDCgIDBgIDDhYXA - i4u7jIy8jIy8jIy9jo67mZmuo6Ojo6Oko6Oklpaxh4fBgYHHgoLGgYHEgYHDgYG/gYHBg4PEhYXGhYXG - hYXFhITHjIy+mZmuoaGko6OioqKinZ2olZWxkZGzkJCxkJCxj4+yiIi4h4e2goK+gYHFg4PGhYXEi4u8 - i4u9kJC6nJyspaWioqKlmpqqlJSyj4+6iIjCg4PGgoLEgIDCf3/Bf3/BgYHCgoLEhobEj4/AkZG8j4++ - mpqzpKSnpaWlpaWmsA+cnKqgoKWioqKioqKioqKhoaGhoaGioqOhoaecnK6UlLeOjr6Ojr2GhsKFhcOE - hMOHh8CPj7mOjriRkbSdnaaiop+hoaGhoaGioqOjo6Sjo6SkpKOioqaYmLCJib+CgsWBgcaBgceFhcOK - ir6MjLyMjLyKiryMjLiYmKuioqChoaGioqKioqKioqGioqOamqyMjLuCgsSBgcaAgMeFhcCHh7yDg8OD - g8WEhMaFhceNjb6cnK6lpaWlpaWlpaWjo6Sjo6GenqaUlLGQkLiNjb2GhsWEhMeEhMaDg8SDg8OEhMSK - ir+Pj7iUlLKbm6mjo6GioqKhoaGhoaGgoJ+enqCZmaiLi7eJibyKirqHh76Dg8SDg8SCgsWIiLyPj7SQ - kLKWlquhoaCioqGjo6Sjo6SlpaOhoaaZmauYmKqTk7CNjbWGhr+CgsaCgsWDg8WEhMWCgseMjLyamqmi - op+jo6SkpKWkpKWkpKWkpKSenqqRkbaKir2GhsOEhMWDg8aDg8aEhMSEhMSJib+KiryQkLmdna+mpqSl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6SkpKSmpqampqempqempqem - pqempqempqempqalpaWlpaWlpaWmpqampqempqempqelpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaampqempqempqelpaakpKSkpKSlpaampqempqempqempqakpKSj - o6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6OioqKioqKioqKjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWmpqShoaiYmLGSkreSkraNjbqGhsCBgcOAgMJ/f8GAgMOG - hryKirqMjLqMjLuOjrmamquhoaOkpKCcnKmNjbqEhMWCgsaCgsSBgcOAgMF/f8F/f8GBgcOCgsOCgsOG - hr+NjbiRkbOVlbKenqmXl7KOjruLi72Li7yKiruJibiDg76Bgb+BgcCCgsKCgsSDg8WBgceGhsKOjruZ - ma+mpqSkpKWdnayNjbyHh8GJib+Jib2Li7qDg8CAgMGAgMGAgMOBgcWDg8aDg8eKir+SkraamrChoaml - paWenquamqyWlq+KiryAgMiBgcaAgMV/f8OCgr2Hh7mKirmKiruNjb6Njb6QkL2YmLWgoKujo6OgoKSZ - ma6QkLeOjrmOjrqJib2IiLuCgsCBgcKBgcODg8WEhMaFhcaOjryUlLWdnayioqWjo6KhoaOYmKiRka+P - j7KQkLCOjrKKiriJibmDg76BgcKCgsSFhcaFhcaFhcWLi8CRkbiZma+goKikpKOioqWbm6mQkLeFhcOB - gcaBgcOAgMJ/f8GAgMF/f8OEhMKNjb2QkLuRkbyUlLmbm7KkpKmmpqWlpaawD52dqaGhpKKioaKioqKi - oqKioqGhoJ6epZqarJOTto6OvI2NvoiIxIWFxoSExoODxoODxYaGw4yMu5iYrqCgpKKioaGhoaGhoaGh - oqKipKOjpKSkoqKippmZsJCQuIyMvIuLvIuLu4uLu4yMu4yMvIuLvY+PuZWVr52dpaKioKGhoaGhoaKi - oqOjoZ6ep5SUs4yMvIiIwIeHv4iIvYeHv4SEw4KCxYODxYGBx4eHwZWVtaKiqaampKWlpaWlpaWlpKOj - o52dp5OTs4qKvYuLvYqKvYaGwoODxYKCxIKCxIKCxYODxoyMvZmZraKio6Kio6KioqKioqGhoaKioJyc - pJCQsYmJu4qKu4eHv4ODxIODxoSExIiIvo+PtpGRsJCQspaWrKGhnqCgoKKioqOjo6Ghp52dq5qarZSU - sI2Nt4aGv4KCxYGBxYKCxYODxISExIiIwI+PuJubqqKin6CgoaOjpKSkpaWlpKKip5eXsYqKv4aGxISE - xYODxoaGw4qKv4qKv4qKv4yMvZCQuJWVsZ6eqqampKWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6ampqam - pqampqampqWlpaWlpaOjpKOjpKSkpaWlpqamp6amp6amp6amp6amp6amp6ampqWlpaWlpaWlpqamp6am - p6amp6ampqWlpaSkpaOjpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKWlpKWlpaWlpqam - p6amp6ampqWlpaOjpKSkpKampqamp6amp6amp6WlpaOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaSkpKOj - pKOjpKOjo6KioqKioqKioqKio6OjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaGhqZqar5GRuImJwIODxYGBxICAw39/wYWFu4SEvoWFwIWFw4eHwo2NuJubqqGho6SkoJ2dqI+P - uYWFxIiIwISExIGBxIGBwoCAwX9/wYGBwoGBw4GBxYaGv46OtZaWrpmZq5ubqpaWsY+Puo2NvY2NvIuL - u4aGv4KCwYGBwIGBwIGBw4GBw4KCxYaGwI6OuJGRt5eXsaWlo6SkpaKippmZr5GRtpCQtY+PtoWFwoCA - w4GBwYCAwoCAw4GBxYKCxoSExIeHw4iIwo+Pup2drKWlpZycrpubr5iYsY6OuYeHwYiIwIeHvoWFvYWF - uYeHt4mJuYqKvIyMvpGRvJmZtZ2dsKGhq6WlpZ+fpZ2dp52dp5ubqJSUsImJvISEwIGBwoCAwYGBwoKC - xISEw4uLvpSUtZaWspubraKip6Sko6Kio5+fppOTr5CQsZCQsY2NtYiIu4SEwYGBw4CAw4KCxISExoWF - xYuLwI2Nvo+PvJGRuJiYrqSkpKSkpJ2dqZOTsouLu4WFwoCAxICAw39/wn5+w4KCv4mJu46Ou46OvY+P - vZCQvZOTupycsKWlp6amp7APoKCmoqKkoqKjoqKjoqKioqKin5+lmZmqkpKzjY27i4u/h4fChITGhITF - hITFg4PGg4PFiYm+lJSynp6noqKjoqKioqKioaGhoaGhoaGio6OhoaGknJypmJivk5O2kZG3kpK2kJC3 - jY25i4u8i4u8kJC4mJivnZ2noKCioaGhoaGhoaGhoaGhpKSfnJypj4+3i4u8jIy7jIy6iYm9hITDg4PG - hITFg4PGhobAjIy4mpqspaWkpaWlpaWlpaWlpqalo6Olnp6nl5eujo64ioq6iIi9hITCgYHDgoLDgoLE - gYHFhYXCjo66nJyrpKSgoqKjoqKjoqKio6OhoaGjlpauioq7iYm6hoa9g4PDg4PFg4PGhITGjIy9kpK1 - kpKzkpKxmJiooaGfoKCgoKCgoqKgnp6omJiwlZWzjo66hobBgoLGgYHFgoLEg4PFhITEh4fBjo63lpaw - np6oo6OhoaGhoaGho6OjpaWjn5+qkJC5hYXFhITGhITHhobDioq+jIy8jIy9jY28kJC4lpaxnJypoKCk - paWkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpqanpqampKSkpKSlpKSkpKSkpaWlpaWm - pqanpqanpqanpqanpqanpqanpqampaWlpaWlpaWlpaWmpqanpqanpqampaWlpaWlpKSlo6Oko6Oko6Ok - o6Oko6Oko6OkpKSlpKSlpKSlo6Oko6OkpaWkpaWlpaWmpqanpqanpqanpaWlpKSkpKSkpqampqanpqan - pqanpaWmpKSlo6Oko6OkpKSkpaWlpaWlpaWlpKSlo6Oko6Oko6OjoqKioqKioqKioqKioqKjo6Oko6Ok - o6Oko6Oko6OkpKSkpaWlpaWlpaWlpKSkpKSkpaWlpaWlpqakpKSlmpqvjY2+hITGgoLGgYHFgYHBg4O6 - hYW8goLCgYHEgoLFg4PFiIjBlZWxoKCko6OhoaGjmJiuioq9hobCg4PFgoLFgoLDgYHBf3/BgYHCgYHC - gYHEg4PCiYm7k5OxnJyln5+jnJyqkZG3i4u9jIy9h4fBhITDg4PCgYHAgIDBgYHEgYHEhobAiIi9j4+3 - lZWym5uspKSjo6OkpKSko6OlnJyskZG3iYm/g4PGgoLEgYHDgIDDf3/DgYHEhITDhITDhYXEgoLIh4fB - mJivpaWkn5+rnZ2tlZW2jY28jIy9jIy9ioq5iYm4hoa3hoa3iYm5jIy7kpK4lpa2mpqznZ2voqKqpqan - o6OnoqKjoqKhnZ2mj4+0goLDgIDEgYHCgIDBgIDCgYHEg4PEh4fBjIy9i4vAkJC6m5uuo6Olo6Oko6Oi - l5eukJCzjY20iYm4hITAgYHEgYHCgYHBgIDDg4PDiYm/iYnBiYnDh4fFjIzAl5exoqKjo6OknJyrlpay - j4+4iIi+hYW/hYW+hIS8g4O8hoa5i4u5jY29jY29i4vAi4vBiorCk5O6oaGrp6ensA+jo6KioqOioqOi - oqOioqKioqKenqeXl66OjreJib6GhsKDg8aDg8WEhMWDg8aEhMWMjL2WlrCfn6eioqKioqKioqOioqOh - oaKhoaGhoaGgoKKamqeVla6SkrOPj7iPj7iPj7mNjbqMjLuNjbmQkLaVlbKamquhoaWjo6KhoaKhoaGh - oaGhoaGhoaGYmK6MjLyKir2Li7uKir+EhMSCgsaEhMWEhMaHh8GPj7eVla6dnaWkpKKkpKSlpaWlpaWm - pqSkpKednayXl7CQkLeJib2Dg8SCgsSCgsSCgsWCgsWFhcGNjbWVla2dnaejo6KioqOioqOioqKkpKGg - oKSWlq+MjLuHh76CgsGCgsSCgsaDg8aHh8KPj7qSkraVlbOZmayenqOgoJ+goKCgoKCenqKcnKeYmK+R - kbiIiMKDg8aDg8WEhMWEhMWEhMWGhsOLi76Tk7KcnKihoaOioqKioqKhoaChoaGkpKGdnauPj7yGhsSH - h8KHh8OLi76Li7uKiryNjb2QkLmWlrGcnKqgoKWjo6Ojo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWm - pqampqempqempqempqekpKWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqempqempqempqelpaalpaWl - paWlpaWmpqampqalpaalpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWkpKSkpKSkpKSl - paWlpaWmpqampqempqempqelpaWjo6SkpKSmpqampqampqempqelpaWkpKSjo6Sjo6SkpKWkpKWkpKWk - pKWjo6Sjo6Sjo6OioqKioqKioqOioqOioqOjo6Ojo6Ojo6Sjo6Sjo6SlpaWmpqalpaalpaakpKWjo6Sk - pKWlpaWmpqWkpKafn6uRkbmIiMGGhsKFhcCEhL2EhLqAgMKBgcKCgsKCgsWDg8SKir2VlbGhoaOjo6Gj - o6GenqWRkbSGhsOHh8KFhcODg8SBgcOAgMGBgcKBgcKCgsOCgsWDg8OJibyVla6enqOioqKXl7CMjL2H - h8SEhMeEhMWDg8SBgcN/f8KBgcGEhL6JibuLi7qPj7eWlrCenqikpKKjo6Sjo6Wjo6Wamq6Kir+BgciD - g8WCgsWBgcWAgMN/f8GCgsGEhMGCgsWCgsaDg8aMjL2bm62kpKOkpKWdnauTk7eOjryQkLmOjriJibmH - h7iGhreIiLeLi7mMjLyPj7yPj7yNjb6SkrqcnLClpainp6ekpKeenqiVla+KiruCgsOBgcOBgcKAgMGA - gMKBgcOCgsSCgsaCgseBgcmHh8OWlrSioqakpKWkpKOcnKqQkLaHh7yDg8CAgMSAgMF/f8F/f8GBgcCF - hb2Hh76Dg8aEhMeCgsqLi8Gbm6+kpKKjo6SgoKeYmLGPj7uKir6Li7qKirmIiLeHh7eHh7iJibqLi72L - i76Hh8SHh8SFhceMjMGdnbCnp6awD6Kio6Kio6Kio6Kio6Kio6Gho5ycqZaWsI2NuoWFw4KCx4ODxYKC - xIODxYWFxIyMvZaWsp+fqaSko6KioqKio6Kio6Kio6Kio6GhoaGhoZqap5WVrZCQso2NuI+Pt5CQtoyM - vIqKvoqKvYuLvJGRtZSUspubqqGhpKOjo6KioqGhoaGhoaKioJ2dpZKSsouLvI2NuomJvoSExYODxYOD - xYSExYeHwo6OuJWVsJubp6CgoaGhoaGho6SkpaWlpaWlpZ+fqpiYs5CQu4iIwYODxoODxYKCxIKCxYKC - xYeHwZGRtpaWrZqapaCgoaOjoqKio6Kio6Kio6Kiop6epZeXrY+Pt4ODxYGBxYCAxIKCxIiIwZCQuJSU - s5aWs5ubrqCgp6KioaCgoKCgoKGhn5qap5eXqpaWrY+PuoODx4WFxYSExYSExYSExYSExYWFxIuLvZiY - rqGho6OjoaKioqKioqKioqCgoKGhoJmZq46OuYuLvYyMvIyMvIuLvYuLvY2Nu5CQuJOTtZqarqGhpqOj - o6OjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampaamp6amp6amp6amp6WlpaWlpaWlpaWl - paWlpaWlpaamp6amp6amp6amp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpaOjpKOjpaWlpaWlpaWlpaOj - pKOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6amp6WlpqOjpKSk - paSkpaSkpaSkpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjo6KioqKioqOjpKOjpKOjpKKi - o6KioqOjo6OjpKOjpKSkpqamp6amp6amp6amp6SkpaOjpKSkpaWlpaampKSkppaWtI+Pu42NvIuLuoWF - vX5+woCAwYGBwYCAw4KCw4qKu5SUrZmZq56epqGho6KioqGho5mZrI2Nu4uLvYaGw4ODxoKCxIGBwYCA - wYGBwoKCw4ODxIODxIWFwYuLuJaWrZ+fopycqI6OuoWFxYeHwoeHwoWFw4ODwYGBwIODvYmJt4qKt5GR - sZGRsZSUsZubqqKio6OjpKSko56eqJKStoaGwoGBxYKCxIGBxYGBxYCAw4GBwIKCwIGBw4KCxIODxIaG - wZKStZ+fp6OjpKOjpJ+fp5iYrZSUspKSso6Os4iIuIaGt4eHtoeHuIiIvImJwIODyIODyYKCyoeHxZWV - uKOjqqamp6Ojq5iYso+PuIuLu4qKvISEwIGBwYCAwoCAwoKCxIODxYSExYSExoODxouLv5eXsqGhp6Sk - paSkpaCgpZWVsoiIwIGBxYGBxICAwX9/wYCAwISEu4WFvICAxYODxYSExYODyIuLwZmZsaSkpaOjpKWl - opmZr5CQuoyMvIuLvIuLu4mJuoiIuYiIuYiIuomJvYiIwoWFxYSEx4WFxo2Nv5ycsaenprAPoqKjoqKj - oqKjoqKioaGkm5urlZWxjo64hobCgoLGg4PFg4PFg4PEg4PGioq9kZG3lpaznp6qo6Oko6OkoqKioqKi - oqKjoqKjoqKjnZ2ll5erj4+zjY23jo62jo62kpK0h4fCg4PHhITGhITGhobDk5Ozn5+loqKioqKjoqKj - oqKjoaGhoqKgnZ2llZWtkZG0jo66hITGhITGg4PEgoLEhYXBjIy6jY26mpqsoaGjoqKhoaGhoaGhoqKj - paWkoKCqmJizkZG6i4vAhYXGhITFhITFg4PFgYHFhobAkZG0lZWum5uqnp6ioKCeoaGhoqKjoqKjo6Oi - n5+nl5evjIy7g4PGg4PFg4PFgYHEhYW+jY23k5O0kpK0mZmvoKCmo6Ojo6OjoqKhoKCgoKCgnJynlJSu - jY22h4e9g4PDg4PEhITFhITFhITFhITFhobDkpK1n5+mo6OioaGioaGhoqKioqKioqKjnZ2klpasjo63 - ioq9i4u9jIy9jIy9jY28kJC4kpK0lJS0mZmvoaGmpKSjo6OkpKSlpKSlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWmpqanpqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpqanpqan - pqanpqanpqampaWlpaWlpaWlo6OkpKSkpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6OkpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpaWlo6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpKSlo6Ok - o6Oko6Oko6Oko6Oko6Oko6OjoqKioqKio6Oko6Oko6Oko6OjoqKio6Oko6Oko6OkpaWmpqanpqanpqan - pqanpKSlo6OkpKSkpaWloKCqkpK4jY29jo6+iYnBgYHEgIDBf3/BgIDBgIDDioq4k5OvkZGykJCzk5O0 - mZmtoKCkoqKhm5upjo65hYXEg4PGhITFg4PEgIDCgIDBgYHBgYHCg4PFiIjCjo65kpK0kZG0l5esmJip - k5Oxj4+3kJC2j4+2ioq5iIi7hoa4hYW4h4e5jo6yj4+ykJCzj4+0kpKympqroaGjo6OjoKCnlZWziIjB - goLGg4PEgoLEgYHFgoLBgYG/gIDCgYHDgYHEiIi9iYm8j4+2nZ2po6Oko6OkpKSjn5+nlpaujo61iIi5 - h4e1hoa1h4e1g4O9gIDGgYHFg4PGhITIg4PKiIjDlZW1o6Oqpqano6Oql5e4jo6/i4u9ioq8ioq8goLC - gYHDgYHCgYHDg4PFhYXGhobHi4vAkJC5l5eyn5+qpKSlpKSlo6Oln5+olZWyiYm+g4PDgoLAgYHBhIS5 - g4O7gIDCgYHCg4PFhITGhITGiIjDkZG5np6rpaWlpaWjmJiwk5O2kZG3i4u8jIy7iYm7iYm6iYm5h4e7 - hobChYXFhYXFhITGj4+8mZmynJyupKSpsA+jo6SioqOioqOjo6Kfn6aVlbGPj7iFhcKCgsWCgsSCgsSC - gsOCgsSCgsSEhMWGhsOOjrqcnKujo6Sjo6Sjo6Sjo6OioqKioqOioqOZma2QkLWNjbaNjbWNjbWLi7qE - hMKDg8WEhMWEhMWFhcOKir2Xl7ChoaSjo6GioqKioqOioqOioqOfn6KZmaiUlK+MjLmDg8SFhcWFhcWE - hMaHh8CLi7mLi7mNjbuamqyhoaOjo6GioqKhoaGhoaGjo6GamrCQkLyMjL+Njb6Njb6GhsaEhMeCgseF - hcCPj7OVla2bm6ibm6mfn6ShoZ+fn5+goKCioqOjo6KamquMjLyEhMaDg8WDg8WCgsaJib+Li7qJibmK - irqMjLyRkbafn6ilpaOjo6Sjo6SioqKamqaVla2OjrWJibuJibuJibuEhMSEhMWEhMWDg8aFhcSMjLuX - l62goKSjo6KioqOioqKhoaGioqKenqienqmYmKyOjrSKiruLi7yMjL2MjL6QkLmTk7WUlLSbm62amq6h - oaekpKOjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqempqalpaWmpqempqempqempqem - pqalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqempqempqelpaWlpaWlpaWjo6Ojo6Ol - paWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqempqem - pqelpaWkpKSjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWkpKWjo6SioqKjo6Sjo6Sjo6Sjo6OioqKioqKioqKj - o6Ojo6Sjo6Sjo6SioqKjo6Sjo6Sjo6SkpKWmpqempqempqempqekpKWjo6Ojo6WgoKqZmbGQkLuHh8SD - g8aCgsOBgcF/f8F+fsOJibaRka+QkLSOjrqOjrmNjbqSkrOdnaejo6Gbm6mOjrmFhcSDg8aEhMWDg8SB - gcKBgcGBgcGBgcOJicCOjryNjb2NjbyNjb2RkbaZmamamqiUlLCQkLOKiruJibyJibyHh7mDg7qBgcGC - gsCCgsKIiLyLi7mLi7uOjrebm6qhoaSkpKKgoKiUlLWIiMCJibyJibuEhL6AgMCAgMGAgMGBgcOCgsWJ - ib+Li7yLi72QkLednaijo6SkpKOfn6iWlrCRkbSRkbKOjrGMjK+Dg7p+fsKAgMOBgcSCgsWDg8aEhMiH - h8WRkbmgoKumpqenp6ahoayUlLmLi7+Kir2Dg8SBgcOAgMGAgMGBgcKBgcSEhMWKisCSkreUlLWWlrKe - nqqlpaWkpKWkpKWlpaShoaaUlLCIiL2JibqIiLiDg71/f8F/f8GBgcKDg8WDg8aIiMGPj7uXl7Senqul - paWmpqSbm6+QkLqMjL6Njb2Li72KiryKiruHh7uDg7+CgsSFhcWEhMaPj7mUlLSTk7aXl7Odna2wD6Oj - pKOjpKOjo6Kio5ubq42NuoaGw4ODxYKCxoKCxIKCwoGBw4GBw4GBxICAxoaGwZSUs6CgpaOjpKOjpKOj - pKOjpKOjo6KioqGhpJqarJOTs5GRs4+Ps4mJuoODw4KCxIODxYODxoaGw4qKvZCQtZ2dqKKio6KioqKi - oqKioqKio6CgpZubq5WVr4uLuoODxYSExoSEx4qKwIuLv4yMvY2Nu4yMupCQtZ6epaKioaKioqKioqKi - oqGhoaKioJ2dqJaWs5GRu4+Pvo+PvY2NwI2NuouLuIyMtZKSrZiYp5iYp56eo6GhoaGhoaCgoJ+fn6Gh - oZ+fpZSUs4aGwoGBx4KCxoKCxomJwIuLvIqKuoiIuYmJuZCQs5aWr5+fpqOjo6OjpKOjpKOjo52dpo+P - s4mJuoiIuoaGvYWFw4WFxoWFxoSEx4WFxoyMu5mZq6CgpKKioqKio6Kio6Kio6Kio6GhoZ6eppqarJKS - tYuLu4qKu4yMvIuLvZGRuJOTtpWVs5ubrZubraGhpqOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWl - paWlpaWlpaampqamp6amp6ampqWlpaamp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaampqamp6amp6amp6amp6WlpaSkpKOjpKKio6KioqWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKOj - pKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqamp6amp6amp6ampqOjo6KioqOjpKOjpKWlpaWlpaWl - paWlpaWlpaOjpKGhoaKioqKioqKioqKioqKioqKioqKioqOjo6OjpKOjpKOjpKKioqOjo6OjpKOjpKSk - paamp6amp6amp6amp6WlpqOjpKOjpZ2dqpGRt4aGw4KCx4GBxICAw39/w4iIs4+PrY+Ps46OuY+Puo6O - upOTt5GRtpmZq6SkoJ+fppCQtoSExIGBx4KCxoODxIODw4KCwoCAwoWFvIuLuo2NvY6OvY2Nvo2Nv5GR - uJ6ep6CgopOTr4mJvIiIvYiIvYqKu4eHvIGBwIGBwIGBwoODwIiIu4mJuYmJu4yMuZiYqqGhpKOjoqSk - op2dqpCQuYyMvYuLuoSEwICAw4GBwoCAwYGBw4KCxImJvoyMu4uLvo6OvJeXsKKipaSko6Cgp5ubq5eX - r5GRtI+Ps4WFvYCAwn5+wn5+wX9/woGBxIGBxoeHwouLv5CQvJqasaampaenpqKiqpaWt4qKw4WFx4SE - xoODxYKCw4CAwYCAwoKCw4aGwJGRtpWVtJWVtJWVtJmZsJ+fqKSkpaSkpaSkpZ+fqZaWsY+Pt4qKuoSE - wYKCw4CAwn9/wYCAwYKCxIiIwJCQuJmZsJ6erJ6eq5+fqqWlpaCgqpKSuImJwIuLvouLvouLvYmJvYSE - v4GBwYKCxIWFxouLwI6OvI6OvY2NvZCQuZiYs7APo6Oko6OkpKSioKCmk5O0hobChITFhITFiIjAh4fB - goLEgYHDgYHEgIDFgoLDjIy3m5upo6OioqKjo6Oko6Oko6Oko6OjoqKknJyomJivlJSykZG2ioq8goLC - gYHEgoLEgoLFhYXCi4u8kZG2lpavoKCkoqKioqKioqKioqKio6Oin5+llpaxi4u9goLFgYHHhITFiYnA - jY2+jY2+jIy/jY29kZG2lpauoKCioqKhoqKioqKioqKioqKhnp6kmZmqkpKzjo66jY27jY27kpK1j4+3 - jY24jIy5j4+0mJiom5ujn5+foaGgoaGhoaGhoKCgnp6emJiqkJC3ioq+h4e+iIi+iIi+i4u7i4u7iYm7 - ioq4jo6ykJCwnZ2loqKioqKio6Ojo6OkoKCmmpqukZG1i4u5h4e+g4PDhITGhYXGhITHhYXGj4+8nJyu - oqKkoqKhoqKioqKioqKioqKjoqKjoqKhn5+jkpKyioq7ioq8jIy8i4u9i4u9jIy8j4+5lpaym5utmpqu - oqKko6Ojo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqampaWlpqan - pqanpqanpqanpqampqampaWlpaWlpaWlpaWlpaWlo6OkpKSkpaWlpqanpqanpqanpqanpqampaWlo6Ok - o6OkoqKjo6OjpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6OkpaWkpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWmpqanpqanpqanpaWmo6OjoqKjo6OkpKSkpaWlpaWlpaWlpaWlpKSloqKjoqKio6Oio6Ojo6Ojo6Oj - oqKioqKioqKioqKjo6Oko6Oko6OjoqKioqKjo6Oko6OkpKSlpqanpqanpqanpqanpaWloqKjnZ2pj4+3 - iYnAh4fAhoa+hoa8iYmzjo6sjIyyioq4ioq7jo67k5O2lpa1l5eznZ2po6OgoKCkkpK0ioq+iYm/hobC - goLGgoLFgoLDhYW6hIS9hITBhYXDiYnCjo69jo69j4+9mpqvoKClmJirjo60jo61kJCyiIi6goLBgIDA - gIDAgoK/hoa7iYm5iYm6i4u6kpKyn5+joqKhoqKipKSin5+okZG4jIy9jY28hYXCgYHEgYHCgYHCgIDD - h4e9ioq7i4u9jo67kZG3lJS0oqKlpKSjn5+omJivlJS0kZG4h4e/gYHFf3/Efn7Bfn7Bf3/CgIDChYW+ - i4u6jIy7jIy+kZG6oKCqpaWloaGrlZW5h4fGg4PKhYXHhITGg4PEgIDDgYHBhIS+iYm8jo65jo66j4+7 - jo68kpK4np6qo6OkpKSko6OknZ2rl5eylZWwkJC1hITCgYHFgYHCf3/BgIDBh4e8ioq5jY25kZG4k5O3 - lZW1mZmxpKSmpaWlnp6slJS1kZG3kZG2i4u7hITBf3/Cf3/DgoLCiYm+jY29jY2+jY2/jIy/j4+8lJSz - sA+jo6Sjo6Sjo6Oamq2MjLuHh8KJicCKir+JicCGhsOCgsWBgcOBgcWDg8ONjbiYmKmfn6CioqGioqOi - oqOjo6Sjo6SkpKOhoaaXl7CVlbKQkLaKir+EhMWCgsaCgsWDg8SGhsCJib6OjriXl62dnaeioqKioqKi - oqKioqKioqKfn6Sbm6mSkrSJicCGhsKHh8CJicGMjLyLi72Kir+MjL6Skreamq6goKahoaKhoaGioqGi - oqKioqKgoKWamqyRkbOLi7eKirmMjLePj7WPj7aKir6IiMKHh8OJib+Tk6+cnKKfn5+goJ+hoaGhoaGh - oaGhoZ6UlKyMjLeKirqKirqLi7mLi7mLi7qJibyLi7qQkLSRkbGOjrKdnaChoZ+ioqKjo6OioqWZma6U - lLSPj7mJib+EhMSDg8WEhMWEhMaGhsWOjryYmLGenqqjo6SioqOioqKioqKioqKioqKioqOhoaWWlrGL - i7qIiLyKirqLi7yLi72Kir6MjLuQkLeWlrKdnaufn6ijo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaempqempqelpaalpaampqempqempqempqempqempqalpaWlpaWlpaWl - paWkpKSjo6Sjo6SlpaWmpqampqampqempqempqelpaWkpKSjo6SioqOjo6OkpKSlpaWlpaWkpKWjo6Sj - o6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaalpaampqampqakpKSioqKioqOjo6Sk - pKSlpaWlpaWlpaWlpaWkpKWjo6SioqOioqOjo6Sjo6Sjo6Ojo6OioqOioqOjo6Sjo6Sjo6SioqOioqOj - o6Sjo6Sjo6SkpKWmpqempqempqempqelpaahoaWTk7WOjrmPj7eNjbaNjbOPj6uKirGGhreGhrmJibqM - jLyQkLmUlLWbm62goKihoaShoaOYmK2Tk7SOjrqJib+GhsCHh7+Hh76EhLyAgMB/f8SAgMWEhMSIiMKI - iMOMjMGYmLOfn6mbm6qUlK2Skq6MjLaEhMCAgMKBgb+Bgb6FhbuIiLmJibqIiL2Li7qVla+fn6SenqSg - oKKjo6GdnaiQkLeNjbyIiMKFhcaDg8WBgcOBgcGEhLyJibiJibqMjLiSkrSUlLSVlbOjo6SlpaOgoKaX - l6+NjbqIiMGCgseCgseBgcR/f8J+fsJ/f8GAgMGEhL2EhL6Ghr+MjLyTk7acnK2kpKWjo6ecnLCRkb2I - iMWFhcmEhMiDg8aDg8OEhL6Hh7qJibqLi76Li72Li72OjryVlbWenqqjo6Sjo6SioqOgoKafn6mdnaqU - lLOGhsOCgseAgMSAgMCEhLqJibeGhr2FhcGGhsOGhsOJicGTk7ehoamnp6Ojo6abm6+UlLePj7mLi7yG - hr+Dg76CgruEhLqKirmLi7yNjb6Njb6Njb6Ojr2RkbiwD6OjpKSkpKGhpZmZr5CQuY6OuoyMvIqKvoWF - xIKCxoKCxIKCxYaGw42NvJmZr6Cgo6Ghnp+fn6GhoqKio6OjpKOjpKSko6Cgp5OTtZCQt4yMvIeHwYaG - w4aGwoaGw4aGxIiIv4iIwI2NuZmZqqGhoqKioqKioqKioqOjoaCgpJmZq5SUso2NuYuLvIuLvIyMvIyM - vIuLvYqKvYyMvZOTtpqarp6eqqSkpKKipKGho6GhoqOjoaGhpJmZrZKStYyMuouLuYqKuIuLuI+PtYmJ - wIWFxIODxoSExYqKvZaWr52do5+fn5+fn5+fn6CgoKGhoaGhopKSsYmJuYiIuYiIuoaGvYaGvYaGvouL - u5CQtJKSspGRs5OTr5ycoJ+fnqCgoKKioZ+fppOTtY+PuomJwYWFxYODxoODxYSExoWFwo6OupiYsJmZ - r5qarqKipqOjpaKio6KioqKioqKiop+fpZaWsYyMvYqKvYuLu4qKu4mJvIqKvY2Nu5KStZOTtJSUtJqa - rqSko6OjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6am - p6Wlpqampqampqamp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpaSkpKOjpKOjpKSkpKSkpaWlpqamp6am - p6amp6WlpaSkpKOjpKKioqOjpKSkpaSkpKSkpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaSkpKKio6KioqOjo6OjpKOjpaSkpaWlpaWlpaWlpaWlpaOjo6KioqOj - o6OjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaamp6amp6amp6amp6am - o5aWspKStpOTtJOTspGRsYyMs4eHt4WFuIaGt4iIt4qKuoqKvJCQuJaWs5mZsZ2drKOjo5+fppmZq5CQ - to2NuY6OuIuLu4aGvYCAwn9/wX9/wYCAwoGBxYGBxYaGxIyMwJiYs6GhqJ6eqpSUs42Nt4ODwoCAw4GB - wIGBvYODuYaGuIiIuYiIvYuLu4+PtZSUsJeXrJaWrZ6eo6Sknp2dp4+Pt4mJwIODxoSEx4ODxoODw4aG - vIeHt4iIt4iIuIyMtZCQtJCQt5KStp+fqKKipKOjo5ubq4uLvICAx4KCx4KCx4GBxYGBw39/wX9/wYGB - woCAxIGBwoiIu5CQtJeXr52dq6SkpqWlpKOjp5qas4yMwYaGxoeHxoWFxYaGwIeHuoeHuImJuouLvIyM - vYyMvY+PupWVtpqasKKipqOjpKKio6Kio6Ojo6GhpZSUtIiIwIWFw4SEwYSEu4aGtYWFvIGBw4GBxoOD - xoKCx4SExZCQuZ+fq6ampKCgqZeXs5KSuo2NvI2Nu46Ot4uLt4eHt4eHtoiIuImJuoqKu4yMvY2Nvo+P - vJCQu7APo6OkpKSjoKCmmpqslZWzkJC5jIy8hITEg4PGgoLFgoLEhYXCjo67mJixnZ2roaGmoqKin5+f - oKCfoqKioqKjo6OkpKSjoaGmlJS1jo67jY27jY26jIy7i4u9i4vAiIjDh4fEhYXEjIy7mpqqoqKgoqKi - oqKioqKio6Ohn5+lk5OzjY26ioq9ioq8ioq8i4u9i4u9i4u9jIy8kJC3l5ewnJysnp6ppKSlo6OkoqKj - oaGioqKgoKCllJSzjo65jo66jY25i4u6iIi7h4e/g4PFhITGg4PGh4fCk5O0np6loaGhoKCgn5+fn5+f - oKCfn5+imJirjIy5iYm8ioq5hoa+gIDFgYHEgIDGi4u6kpKykZGyk5Ovm5unnp6fnp6dn5+en5+gm5uq - jo66iIjBhYXFhYXGhYXFhobEhYXDi4u8lpaumpqsmZmwnJyso6OmpKSlo6OkoqKjoqKhoaGjm5upkJC4 - jY26jY27i4u8iYm8iYm8i4u6kpK0k5OzkpK1kpK2lZWzo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpaWmpaWmpqanpqanpqanpqanpqanpqam - paWlpaWlpaWlpaWlpKSko6Oko6Oko6Ojo6OkpaWmpqanpqanpqampaWlo6Oko6Oko6OkoqKjoqKioqKi - o6Oko6Oko6Oko6Oko6Oko6Oko6OjpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkoqKi - oqKio6Ojo6OkpKSkpaWlpaWlpaWlpaWlpKSloqKjoqKio6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - o6Oko6Oko6Oko6Oko6OkpKSlpaWmpqanpqanpqanp6emmZmxlJS2lJS0k5OzkJC3iYm6iIi5hoa3hYW4 - hYW6hoa7iYm8iYm/iYnBjY29mZmxpaWko6Ojm5uplZWxkpKzjo64h4fBgYHFgIDBf3/Bf3/BgIDCgYHD - g4PDioq9iorBkpK5n5+roaGqlJS3hobFg4PDgoLBg4O+hYW6hYW4hYW4h4e6ioq6j4+2kZGykJCzkJC0 - kJC1nJyno6OenZ2mjo65g4PGhITFhITFhITEh4e+ioq3hoa3iIi3h4e6h4e8h4e9iIi+iYm9k5O0nJyr - o6Ojn5+okZG2h4fAh4fChobBhITBgoLCgIDCgIDBgYHCgoLChoa9i4u2jo60j4+1mZmro6OlpqajoqKo - lZW1iorCiYnCiYnCiYnBiYm8iIi3hoa3iIi5ioq7jIy9jIy9i4u+jY28l5eyoqKmpKSlpKSkoqKkoKCl - nZ2nk5Ozjo64jY25i4u4iIi4hIS7gIDDgYHDgoLEgoLFg4PFiIjBkpK4n5+qpqakoaGplpa0kpK4k5O1 - kpK2k5O1jo64iIi7hoa4hoa4iIi5iYm6i4u9jo68kJC7kJC7sA+jo6SioqScnKqUlLSOjrqMjL2Li76F - hcOEhMSDg8WFhcKNjbmWlrCdnamenqmhoaekpKShoaKfn5+goKChoaKioqOjo6OioqWcnKyVlbOUlLSP - j7mLi76Li7+JicWJicWJicaLi8CVlbGhoaOioqKhoaGioqKjo6KhoaKamquPj7iLi72Li72KiryKiryM - jL2MjL2MjL2SkraSkrSTk7OXl6+fn6ikpKWkpKWjo6Sjo6SioqGfn6STk7OSkrSTk7OOjrmKir2IiL2D - g8WEhMWEhMWDg8aLi72bm6yjo6KhoaGhoaGhoaGgoJ+enp+amqWPj7aLi7uMjLyHh8GCgseDg8WDg8WC - gsSGhr6NjbaUlK6cnKahoaGgoKCfn5+fn52cnKGSkrCIiMGEhMWEhMWFhcWIiMGMjLyLi7yLi7yVlbGY - mKybm6uioqakpKWkpKWkpKWkpKWjo6OhoaOcnKiXl66UlLKNjbqKir6Kir2Li7qRkbOQkLSQkLaQkLaT - k7OcnKqjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWmpqempqempqempqalpaWlpaWlpaWmpqempqempqempqalpaWlpaWlpaWlpaWkpKWioqOioqKjo6Sj - o6SlpaampqempqempqelpaWlpaWlpaWkpKWioqOioqKioqKjo6Sjo6Sjo6Sjo6Sjo6OioqKjo6SlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6SioqKjo6SkpKWlpaWlpaWlpaWjo6SlpaWlpaWlpaWk - pKWjo6SioqKjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Slpaampqem - pqempqehoauYmLKTk7WPj7iJibuJibmHh7mHh7eCgr1/f8SBgcSDg8aCgsWCgseHh8OTk7WhoaekpKWc - nKuTk7GMjLiFhcCAgMWBgcOAgMF/f8F/f8GAgMGCgsKDg8SDg8aDg8aHh8OUlLeenqyZmbGLi8GJicKH - h8CGhruHh7iFhbiFhbiIiLqPj7KOjraJib2KiryKiruLi7qXl6yhoaGenqSQkLaFhcSFhcSEhMWIiL+L - i7iJibeHh7aGhriCgsGAgMWBgcSCgsWDg8OIiL6UlLOhoaahoaaYmK+UlLSTk7OTk7ONjbeFhb5/f8N/ - f8GBgcCIiLmEhMCAgMV/f8WDg8GRkbOgoKSmpqKhoaqSkriIiMSJicKJicKLi7+KiruHh7iGhreHh7mJ - ibqKiruMjL2Li76QkLmcnKujo6WkpKWkpKWjo6Wfn6iXl6+Tk7ORkbKSkrKNjbaEhL2BgcSBgcKCgsSC - gsSBgcWGhr+QkLSTk7Oamq6ioqekpKWfn6qbm7Cbm6+VlbSOjruLi72KiruHh7iFhbeIiLmKiruLi76L - i7+Li7+MjL+wD6WlpaSko5iYr42Nu4uLvoyMvYyMvYyMvYuLvYuLvYqKvYyMuZmZqpycqKKipqWlpaSk - paSkpaKio5+fn5+fn6GhoqOjo6GhpJubrJWVtI6Ou4yMvoqKwIeHxImJxYmJxY6OwZOTu5ycr6SkoqKi - oqKioqGhoaKioJ+fppaWr5CQt4qKu4qKu4mJuomJuoqKvIuLvYyMvZKSt5SUs5aWr5ycqKOjo6SkpaSk - paSkpaSkpaSko5+fpZGRspKSs42NuouLvYiIv4ODxYSExYSExYSExYaGwo+Pt52dqaOjoqKio6GhoaGh - oaGhoJ+foJqapY6OtIyMuoaGwoODxoSExYSExYSExYiIvo2NtpKSrpiYp5+foqGhoaGhoaGhoaCgnZqa - oo2NtYODxISExYSExomJwY2NvIyMvYuLvJGRtJKSspSUsJqaqqCgpaSkpaSkpaSkpaSkpaSkpaKipJ+f - pJubqo6OuYqKvoqKvoyMuZCQsYmJu4qKu4mJvIyMupaWr6Ojo6OjpKOjpKSkpKampqamp6amp6amp6Wl - paSkpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6ampqWlpaWlpaWlpaam - pqamp6amp6amp6WlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKWlpqamp6amp6amp6WlpaWlpaWlpaSk - paOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKKioqKioqKioqKio6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaOjpKOjpKSkpaWlpaWlpaWlpaOjpKSkpaWlpaWlpaWlpaOjpKKioqOjo6OjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKWlpqamp6amp6enpZycsY+PvIuLvYuLu4mJuomJuIOD - vn9/woCAwYGBw4KCxYKCxYGBxoaGwZOTtKGhqKSkpZ6eq5CQuIWFw4KCxoKCxYGBxICAwn9/wX9/wICA - wIKCwoODw4KCxIqKwIyMvJCQuJqasJ2drY+PvIyMvoyMvoqKvIeHuYWFuIaGtoiIuIqKuouLvIuLvYuL - vY6OuY2Nt5KSsZ2dpaCgoZaWroqKvYmJvIiIvI2NtpKSsI6OsoaGuYCAwICAwoGBw4GBxISEw4qKvIuL - upGRtZ6eqaSko56eqJiYsJWVtI6OuYWFwIGBw4GBw4GBwIaGt4KCwIGBw4ODxYaGw4uLupKSs5+fo6Oj - oKOjpZycsI6OvY2NvoyMvYyMvYqKu4eHuIaGt4eHuImJuYmJuomJvI6OupWVs5ycrKKipaSkpKSkpaWl - pKGhp5mZrZqaq5OTr42NtYWFv4CAxIGBwoCAwYGBw4GBxYiIwI6Ouo2Nuo6OupGRtZ+fqaamo6KiqJ2d - rp2drZaWtZSUtY6OuIiIu4eHuIWFt4iIuYqKuoeHwoSEx4WFxoWFxrAPpaWlpqaknp6ql5ewk5O1i4u+ - jIy9jY26iIjBhITFhITFhYXDk5Oynp6ko6OipKSkpKSlpKSlpKSloqKjn5+goKCeoKCjm5urlZWyjo67 - jIy9iorAh4fDh4fDiIjDkJC/lJS5mZmzoqKrpqako6OjoqKioqKipKSgnZ2nkZG2jIy8i4u9ioq7ioq7 - iYm6iYm5jIy6kpK1k5O1mJiwn5+po6OjoqKioqKjpKSlpKSlpaWloqKmm5uskpKzjIy5i4u6iIjAhITF - hITFhITFhYXEh4fAi4u7lpawoaGkoqKjoqKjoqKjoqKioKChnJyklZWri4u3hITBgoLFg4PFhITFhYXE - ioq+kJC3lZWvlZWsl5eonp6goaGhoaGhoaGhoqKfnZ2hkpKsiIi7iIi8iYm+i4u+i4u+jIy9kpK2k5Oz - lZWvlpavm5upoaGhoqKkpKSlpKSlpKSlo6OloKCnm5urlZWwi4u8iIjAiIi/iYm7ioq4iYm6iIi7jY25 - k5O0mpqqo6OhoqKio6Oko6OkpaWmpqanpqanpqanpqanpqampKSko6Oko6OkpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpqampqanpqanpqanpaWlpaWlpaWlpaWmpqanpqanpqanpaWlpaWlpaWlpaWlpaWl - o6Oko6Oko6Oko6OkpKSlpqanpqanpqanpaWmpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - oqKioqKioqKioqKjo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWlo6Ok - pKSkpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlo6Oko6Oko6Oko6Ok - o6OkpKSlpKSlpaWjmpqvjo66ioq7iYm6iIi4g4O/gIDBgIDBgIDDgYHEg4PFgoLHhobBjY25lZWwnJyp - o6OlpKSlmZmxiIjAgYHHg4PFgYHEgIDEgYHCgIDAgIDAgYHCg4PDiIi9i4u6kJC2kpK0mJiwo6OpkpK5 - jIy/i4vAi4u+iYm8iIi4hoa3h4e4iIi5ioq8jIy8jY26jo66jY26kpK0nJyno6OfnZ2mj4+2j4+2j4+2 - kZGykJCxiYm5gIC/f3/BgIDBgIDDhITBiYm8i4u8i4u8jo64nJyppaWhoaGmmZmvjo67hobDg4PGgYHG - goLAhoa4gYG/gYHBf3/DhITAioq8jY28lJSzoKCko6Oio6OioKCmlpaxi4u9ioq8ioq7iYm6h4e4hoa3 - hoa3iYm4ioq5iYm6jY23lpaxnZ2rn5+mn5+ooqKmpaWlpKSlo6OnnZ2qj4+1hITAgYHEgYHDgYHDgYHC - f3/Ehoa8iIi9hYXDhobDhYXEkZG2n5+lpqahoaGomZmwlpa1l5e1kZG6jIy9ioq8iIi5hoa3iIi3hYXB - hITFhITGhYXGhYXGsA+mpqWlpaafn6qWlrOOjrqMjL2NjbyIiL+EhMSCgsiEhMWNjbuVlbKfn6KhoaCi - oqOkpKWkpKWkpKWkpKWjo6Kfn6GYmKeSkrKMjLmLi72Jib+GhsOFhcWFhcSGhsWHh8SRkbyfn66mpqam - pqelpaaioqOioqKhoaOYmK2MjLqKiryKiryJibuKirmKireJibmHh72Kir2IiMCRkbafn6mlpaKjo6Oi - oqKjo6SkpKWmpqOhoaiTk7aNjbuLi72Hh8CFhcSEhMaEhMaEhMaDg8aHh8KRkbWdnaejo6KioqOioqOi - oqOioqKhoaGbm6aQkLSFhcCCgsWDg8aDg8aDg8aEhMWLi76RkbaTk7KVla6Zmaafn56goKChoaGioqCg - oKOZmaiRka6JibiJibmKirqLi72NjbuSkraTk7WWlrGWlq6Zmaqfn6ShoaGhoaKjo6SkpKWjo6aioqah - oaeZma+MjLyJib+Jib+Jib2JibqJibqJibmIiLqNjbmXl6+goKSioqKioqKioqOioqOlpaampqempqem - pqempqempqelpaWjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaempqempqempqel - paWlpaWlpaWmpqampqempqempqalpaWlpaWlpaWlpaWkpKWjo6Sjo6SioqOjo6SkpKWkpKWkpKWlpaWl - paWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6OioqKioqKioqKioqKjo6Sjo6SkpKWlpaWl - paWlpaWlpaWlpaWkpKWjo6Wjo6SkpKSlpaWlpaWkpKWjo6Wjo6SkpKSkpKSkpKWkpKWkpKWkpKWjo6Sj - o6Sjo6SkpKWmpqampqempqampqakpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKWmpqOamq+OjruKiryJibqDg7+B - gcJ/f8F/f8GAgMKBgcSCgsaIiMCLi72NjbuQkLeYmK6ioqSmpqSbm66KisGBgcqCgseBgcWHh7uCgr9/ - f8GAgMGBgcCHh7uKirmLi7qMjLqMjLqTk7OgoKeamrCSkrmRkbmSkriOjrmJibuIiLiGhreHh7mMjLmM - jLyIiMOIiMKHh8OOjrqZmaqioqCfn6OWlq2Wlq2ZmauTk7CIiLuBgcGAgMJ/f8GAgMGCgsSFhcSHh8OG - hsSKisCRkbmamqyioqOjo6OcnKuOjruIiMGJicGLi76IiL2Dg7+AgMF/f8KDg7+JibyMjLyMjL2OjrqX - l6+dnamhoaOhoaKXl6uMjLqLi7qKiruKiruIiLmHh7eHh7aDg7+EhMGDg8KHh76QkLWYmK+Zma6cnKuh - oaakpKSkpKOioqOVlbGLi7qGhr+CgsN/f8Z/f8WAgMOFhbuFhbuDg8KCgsaDg8aDg8eLi72ZmayioqOk - pKSgoKqYmLGPj7uMjL6Li72KiruJibmHh7eCgr2BgcOCgsWEhMWEhMWFhcawD6Ojpp+fq5aWtY6OvYyM - v42NvIiIwISExIODxYaGwo6OupaWsJubqaGho6KioaGhoaKio6OjpKSkpaSkpaOjppycqZKSsIuLt4mJ - vIuLu4aGwYODxYSExYSExoSEx4aGxJOTt6Ojqqiopqamp6amp6WlpqOjo6CgpJaWsIqKu4qKu4qKu4qK - uoeHvYaGwIWFwYODw4KCxIWFwJOTtKCgqKSko6OjpKOjo6KioqOjo6OjpZ2drpKSuJCQuo2NvIaGw4SE - xoWFxYSExoODx4aGxI+PupqaqqGhoaKioqKio6Kio6Kio6OjoqGhpJiYrIuLu4KCxIKCxoODxoODxoKC - x4ODxY+PuJKStJCQtpeXrqCgoqCgn5+fn6CgoKCgoJycppOTsYuLuYmJuomJuYqKuYuLuo2NupKSt5SU - tJiYr5ubrJ6epaGhoaGhoaGhoaGhoqOjo6OjpaGhp5ubrpCQuomJwYmJwIqKvYqKuYiIuoeHvIeHvIWF - wI2Nupycq6SkoqKio6Ojo6KioqKio6Wlpaamp6amp6amp6amp6amp6amp6WlpaSkpKOjpKSkpaWlpaWl - paWlpaWlpaSkpKSkpaWlpaWlpaampqampqSkpaWlpqSkpaSkpaSkpKSkpKWlpqamp6amp6ampqampaWl - paWlpaWlpaWlpqWlpqWlpqSkpaKio6OjpKOjpKSkpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjo6Ojo6Ojo6Kio6OjpKKio6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKSkpaWl - paWlpaWlpaSkpKOjpKOjpKWlpaWlpaWlpaWlpaSkpaOjpKOjpKSkpaWlpqamp6amp6amp6ampqWlpKOj - pKOjpKOjpKOjpKSkpaWlpJ2drJCQuYmJwYaGwoGBxYGBw4CAwX9/wX9/w4GBxIiIwIiIwIiIwIaGw4eH - wZGRtp6epqSko5ycrJCQuouLwIyMvYiIwIeHvoKCwX5+woCAv4WFuYiIt4mJuImJuYmJuoyMuZSUsZ2d - qJ+fqJubr5eXtJOTuI6Ou4uLvYmJuoaGt4iIuIqKu4eHwYODx4SExoKCx4iIwZOTs56epaGhoZycp52d - ppqaqY2NuYGBxn9/xoCAw39/wYCAwYKCw4ODxoSEx4mJwpGRupeXtJiYsp2dqaOjoZ6ep5WVtJKSt4+P - uouLvoeHwoGBxYCAwoODvoeHuouLuYuLvYmJwIiIwIqKv5KStJ6ep6GhopeXq4uLuouLuoqKu4qKu4qK - uoiIuYODvYCAw4GBxYKCxYODxIaGwIqKvZOTtJ6eqKOjo6OjpKOjo6GhpJaWr4+Pt46OtoyMuImJu4mJ - uYWFvIWFu4KCwYCAxIGBxYODxYeHwYmJwJCQt5ubqaSkoaSko6GhqZGRuYyMvouLvYuLu4mJuoODvX9/ - woCAwoKCw4ODxYSExYWFxrAPm5usmJixj4+7jIy/jIy9iIjBg4PFhITEgoLGiIi/lJSynJypoKCjoqKi - oaGhoaGhoaGhoaGio6OkpaWknZ2slZW1jY26iYm7i4u7iIi9hYXDhITGhITGhITGiIjBjo67nJyspKSl - pqampqanpqanpqanpqaloqKllZWxioq9i4u7ioq6iIi8hITDgoLHgoLGgoLFhoa/jY20mpqnoqKjo6Ok - o6Oko6OkoqKjo6OhoKCmmZmwlJS1lZW0jo67h4fDhITGhITFhITGh4fDkJC4nZ2ro6Ojo6OhoqKioqKj - oqKjoqKioKClm5urk5O0ioq9g4PFg4PGg4PGg4PGg4PFh4fAkZG2kpK0kpK0nJyppKSgoqKioKCgoKCd - m5uklpatj4+2iYm9i4u6ioq5iIi9h4e+hoa/iYnAkpK3mJiwnp6poqKko6OioaGhoaGhoaGhoaGioaGl - mpquj4+6iIjCiIjCh4fCh4fAiIi9h4e+hYXAhITBiIi+lZWzoaGopaWjpKSlo6OkoqKjoqKjo6OkpaWl - pqampqanpqanpqanpqanpqanpqampKSko6OkpKSlpaWlpaWlpaWlpKSko6OkpKSlpaWlpaWlpKSlo6Ok - o6Oko6Oko6Oko6Oko6Oko6OkpaWmpqanpqanpqanpqampaWlpaWlpqanpqanpqanpaWmpKSlo6Oko6Ok - o6OkpKSlpaWlpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Oko6Oko6Ojo6Ojo6Ojo6Ojo6Oko6OkoqKjo6Ok - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6OkpKSlpaWlpaWlpaWlpKSko6OkpKSlpaWlpaWlpaWl - paWlpKSko6Oko6Oko6OkpaWlpqampqanpqanpqampaWlo6Oko6Oko6Oko6OkpKSko6OmmJixiYnBgoLI - g4PFgoLEgYHDf3/CgIDAhYW/iYm/hITFgoLHhITFh4fCjo67m5uroqKioaGmnp6rmpquk5O2iYnAhITG - gYHFgoLAhIS6hYW4hoa6h4e8iIi7jIy4kpKxmpqpn5+koKCjmpquk5O3jY29jIy+jIy9iYm6h4e2hYW6 - g4PCgoLGg4PFg4PFhYXEh4fCkJC3np6noqKhnp6lnJynlZWvi4u8h4fAiIi9hYW+f3/Bf3/BgIDCgoLE - iYnAkpK2l5ezmJiymJiznp6ro6Ohnp6lm5uslZW0jo67iIjChITFhITDhIS/hoa4iIi4iIi6hoa9hYXD - hobChobDkZG2np6no6OinJypkZG0ioq6iYm7ioq7iYm7hIS+gIDDgYHDg4PEg4PFg4PGg4PGhobCj4+4 - np6qo6Oko6Oko6Oko6OknZ2olZWxkpKzkpKwkpKvj4+zhYW6gIDBgIDDgIDEgYHEhobAi4u7jIy6jo65 - mJivoqKko6OioqKllpaxj4+4jIy7ioq9hobAgIDDgIDBgYHCgYHCgoLDg4PFhITFsA+WlrKVlbOQkLqL - i72Hh7+CgsWDg8WDg8WDg8WHh8CSkrOfn6WioqKioqKioqKioqKhoaGhoaGioqKkpKObm66QkLqLi7+M - jL2Kir6Dg8WDg8aEhMWEhMWGhsKNjbuTk7OgoKelpaOlpaampqempqempqempqigoKuTk7WLi72MjLyK - ir2BgcOBgcSCgsWDg8WHh7+RkbWVlaudnaGiop+jo6Ojo6Sjo6Sjo6SioqKdnaeWlq+SkrSSkraLi76F - hcWDg8aEhMWHh8GRkbecnKujo6SkpKOioqOioqKioqKioqOjo6KcnKmTk7ONjbqIiMCCgsWCgsWDg8aC - gsaFhcOLi76KisCPj7iXl6+fn6ajo6GioqKhoaGfn5+Xl6mOjrSKirqLi7qLi7qKiryFhcOCgsaCgsWF - hcKMjL2Xl7KenqiioqSjo6OioqKhoaGhoaGfn6SZmauOjrmHh8KJicGDg8eDg8eBgcWDg8OGhsKGhsGK - ir6Xl7GgoKmkpKalpaWlpaWjo6Sjo6SioqKioqKkpKSlpaampqempqempqempqempqempqelpaWjo6Sj - o6SkpKWlpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Smpqelpaam - pqempqelpaWlpaWlpaWmpqampqempqempqekpKWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sj - o6Sjo6Sjo6SioqKioqKioqKioqOjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWj - o6Sjo6SkpKWlpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6SkpKSlpaampqempqem - pqempqakpKSjo6Sjo6Sjo6Sjo6SmpqKgoKmQkLqFhcaDg8WDg8WCgsWBgcKDg7yGhruCgsaEhMWFhcSJ - ib+MjLyPj7icnKmgoKWjo6KkpKCdnaePj7mDg8aFhcODg8KGhruFhbmCgr+EhMCGhsGKiryQkLaWlq6d - naaioqChoaOUlLKLi72Kir6Li7yLi7uJibmGhriBgcCAgMWCgsSDg8WEhMOJib+Kir6Tk7Ofn6aioqOf - n6WXl6ySkrKTk7KUlLGRkbWJibyBgcGAgMGBgcKGhr+Pj7iTk7OTk7aSkriZmbGioqimpqOioqKamqqO - jruHh8KHh8KIiMGIiL+KirmHh7iHh7mEhL2CgsGEhMGFhcOKir6Xl6+goKSjo6KioqOcnKmOjreKirqJ - ibqEhL9/f8SBgcKBgcKCgsSDg8WDg8aGhsOKir6IiMGRkbecnKuioqSkpKOjo6SenqmYmK6UlLKSkrON - jbaGhr6AgMKAgMGBgcOBgcOFhb+MjLuKiryQkLiSkraWlrKenqiioqObm6qXl6+Vla6Pj7SGhsGBgcaB - gcKAgMGAgMGAgMGBgcOCgsSDg8WwD5eXsZaWs4+PuYeHwYKCxoKCxIKCxIODxYiIv4uLupKSs5+fpKKi - oqKioqKioqKioqKioqGhoaGhoaGho5+fqZWVtYyMvouLwISExoODxYODxYODxYeHwYuLvY2Nu5mZrKGh - pKSkpKSkpaSkpaamp6enpp+frZeXtpSUt5GRtoqKvoSExoODxoGBxIGBw4eHvpCQs5aWrJ2dpp+foJ+f - n6GhoaKio6OjpKSko56eqZaWsJKStJCQt4qKvoSExIODxYSExYeHwo+Pt5ubqpqaraGhpqSko6OjpKOj - pKKioqKioqSkoZmZrY2NuoeHwYODx4ODxoKCxYKCxYSExIWFw4WFxIaGw5CQuJ2dqaOjoqKioqKioqKi - op2dpZeXqo6Os4iIuYmJuYmJvISExIODxYSExIeHwIuLu4uLuZmZrKKipaSkpKOjpKOjpKKioqKioJyc - qI6OuYeHwIeHwYSExoSExoSEx4WFwoWFwIaGwoiIwJOTs5+fq6SkpqWlpaWlpaWlpaWlpaWlpaWlpaOj - o6KioqOjpKWlpaamp6amp6amp6amp6amp6amp6WlpaOjpKOjpKSkpKWlpaWlpaWlpaOjpKOjpKSkpKWl - paWlpaWlpaOjpKOjpKOjpKSkpKWlpaWlpaWlpaSkpKOjpKSkpKWlpaWlpaWlpaWlpaampqamp6amp6am - p6OjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKKio6KioqKioqKioqOjpKOj - pKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWlpaWlpaOjpKOjpKSk - paWlpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKWlpaamp6amp6amp6ampqSkpaOjpKOjpKOjpKSko6KippiY - sYyMvoaGxYWFxISExYeHvoeHu4CAw4KCxIODxomJv4qKvYyMu5SUsZycqZycqaGhpJ+fpZiYrZKStoyM - vIuLvIqKuoaGvIKCvoKCvYWFv4uLvJKStpSUtZeXsp2dqqGhoqKioJaWro6OuYuLvIyMu4uLuoqKvIKC - woCAw4GBwoGBxIODw4iIvomJvYqKv5GRtpqaqp+fpaKio5ubqJWVr5KSs4+Pt4iIwIKCxYGBwoCAwYWF - vIuLuYuLvYqKvYqKvIqKvpWVtaKiqaenpKSkppiYroqKvoaGwoeHwYiIwIuLu4mJuoiIuYSEvYGBwYGB - w4GBw4GBw4iIvpWVsZ6epaKioqKio6Kio5SUsoyMuoSEwYCAw4GBwoCAwYCAwYGBw4ODxYODxYODxYOD - xoODxYeHwpOTtaCgqKSko6OjpJ2dqZ6eqJ6ep5OTsYaGwIGBxYGBw4CAwYCAwoSEvImJuYqKv4qKvouL - voyMvpCQuJubrKOjpJ2dqpycqZubqJCQs4WFwYKCxoGBw4GBwn9/wX9/wYCAwoGBw4KCxLAPmZmulZWz - ioq+g4PFg4PFg4PFg4PFiIi9jIy7j4+4mJisoqKgoaGhoqKioqKioqKioqKioqKioKCioaGhnJypl5ew - j4+7hITIhYXGgoLEg4PFh4fAioq9jo66mpqroKCkoqKioqKio6OkpKSlpKSloqKqm5uyl5e2k5O6i4vA - g4PFhITFg4PFgoLHhoa/kJCxlpaslpatn5+joqKhoKCgn5+foKCgoqKjnp6omZmvlpazkpK2ioq+g4PF - goLEgoLGh4fBjY27jo65jo65lJSxoKCnpKSjo6Oko6Oko6OkoqKin5+lk5O0hobCgoLHg4PGgoLFgYHE - g4PDhYXChITEhYXDkJC3mZmtoKClo6OioqKioqKioaGinZ2mlZWvkZGxjo6zh4e8g4PEg4PEgoLFh4fA - i4u8jIy7kpKzoKCioqKio6Oko6Oko6Oko6OkoaGjm5uokJC1hobBgoLGg4PFg4PFhobBhobDhYXFhITG - hobDk5O1o6OnpqakpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpqampqanpqanpqanpqan - pqanpaWmpKSko6Oko6OkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWl - paWlpKSlo6Oko6OkpaWlpaWlpaWlpqampqanpqanpqanpqanpKSlo6Oko6Oko6OkpaWlpaWlpaWlpaWl - paWlpaWlo6Oko6Oko6Oko6Oko6OjoqKioqKioqKio6Oko6Oko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWlpaWlpKSko6Oko6Oko6Ok - paWlpqanpqanpqanpqanpaWlo6Oko6Oko6OkpKSjn5+pkpK3jIy+jIy+jIy9h4fBgIDEgIDBgYHCg4PF - hITFg4PGhobCjIy7kJC4lZWyoKClnZ2olpawlpaukZGzjIy7hobAg4O/goK+g4O8iYm5kZG0lZW1lZW0 - lZW0lZW0l5exnJypmZmpk5OxkZG2kJC4ioq+g4PFgYHDgIDBgIDBgYHCgYHDgYHEgYHGiIi/j4+5lZWy - m5uqoqKjo6OinZ2mkZGzhobAgoLFgYHDgYHDhYW6iYm4i4u7i4u8i4u8i4u8i4u9kJC5nZ2tp6ejpaWl - oKCokZG3iYm8iYm8iYm8ioq7iYm6hIS9gYHBgIDDgYHEgoLCiIi6iYm6ioq9k5Ozn5+lo6OioqKjlZWx - iIjBgoLGgYHDgYHCgYHCf3/BgIDBgYHDgYHFgoLFhITEiYm/jIy8kZG2nJyrpaWio6Oko6Oko6OkpKSh - nJypjIy7gYHFgYHCf3/ChYW8iYm3h4e9g4PGg4PFgoLGh4fCk5O2n5+opKSjo6OknZ2okpK0h4fBg4PG - g4PFgoLEgYHDf3/BgIDBgoLDgoLEg4PFsA+Tk7KKir2EhMWDg8WDg8WDg8WDg8WDg8SHh7+SkrKenqai - oqChoaGhoaGioqKioqKioqKioqKhoaKcnKaWlq6QkLeLi72Kir6Kir6IiL2IiL2Jib2Li7yRkbSfn6Wi - oqKioqKioqKioqKjo6OlpaWgoKmbm7CTk7mLi8OGhsiFhciEhMaEhMWCgsiKir+UlLCVlaqamqWgoKKh - oaGhoaGgoKCfn5+goKGenqeZma2Tk7WLi7+FhcWDg8SDg8WHh8GMjLqOjrmPj7mTk7KamqqgoKOjo6Oj - o6Sjo6Sjo6SkpKOZma2Jib6BgceCgsaDg8WDg8WCgsSCgsOCgsOHh7+RkbSamqygoKWioqOioqOioqKh - oaOdnaiWlq+VlbGRkbSIiLuCgsKDg8SCgsaHh8CLi7yKir2MjLqYmKugoKKhoaChoaKjo6Sjo6SioqSc - nKqXl6+Li72CgsWBgcWBgcWFhcGEhMKFhcSEhMeGhsSQkLqXl7KioqalpaSlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWjo6Sjo6SkpKSmpqampqempqempqempqempqempqakpKSjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6SlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWlpaWlpaam - pqempqempqempqekpKWjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6OioqKi - oqKjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWl - paWkpKSjo6Sjo6SlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SkpKWmpqampqempqempqelpaWjo6Sjo6Sk - pKOfn6mSkreMjL2MjL2Hh8KBgcWAgMOAgMGAgMGBgcKBgcaFhcOLi76MjL2MjLyYmK6hoaSfn6WZmayU - lLKNjbqHh8CEhMCCgsCCgr2Hh7aNjbCQkLGUlLKVlbOVlbSVlbSWlrOdnaufn6SVla6OjrmLi76FhcWE - hMWBgcSAgMJ/f8F/f8GAgMKBgcSHh7yKirqMjLqPj7eXl6+ioqOjo6KdnaiUlLCOjrWNjbWMjLOLi7GH - h7WHh7mKirmKiruLi7yLi72Pj7mUlLGenqmmpqSlpaWkpKacnK2YmK6Xl6uSkrCIiLuFhb6BgcGAgMJ/ - f8SCgsOIiLuJibmJibqIiLyOjribm6ukpKCioqOWlrGMjLuJib+GhsGAgMSAgMOAgMGAgMKBgcKBgcSC - gsSJib2Li7uQkLaQkLaZma2lpaKjo6Sjo6SioqOkpJ+cnKeOjreHh76Hh7yGhruHh7eEhLuAgMKBgcWC - gsaIiMCJib6Tk7ShoaalpaKjo6SdnaqPj7iJicCJib6IiL+Dg8SBgcJ/f8GAgMKCgsOCgsWDg8awD4iI - v4SExIKCxYODxYSExYSExYSExYKCyIqKvZmZq6KioKGhoaGhoaGhoaGhoaGhoqOjoqKiop2dp5aWr46O - uIqKvIqKvIuLu4qKuoqKu4mJu4qKuo+PtpWVrZ6epKKioqKioqKioqKioqGho5+fp6Cgp5qasJOTuoqK - xYSEyoWFyISExYODxoWFxY+PuZmZrJycpp6en6CgoKGhoaGhoaGhoaCgoKCgnp6epZSUsYqKvYWFxIWF - xYSExYiIwYuLvYuLvIyMu5KSs5ubqaCgpKKioqKioqKipKOjpKOjpKWlop2dq5KStYuLvIeHwYODxYOD - xoKCxYKCxYGBxoaGvpWVrqCgo6KioqKio6Kio6OjoqKio5ubqpWVsZCQtomJvYODxIGBxYODxoeHwIqK - vYqKvIuLu5OTs6Cgo6GhoaGhoaGhoaGho6Ojo6OjpJaWsomJwIKCx4CAyISExImJv4aGxIWFxoSEx4iI - w5CQuZeXsJ2dqqKipaWlpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKWlpaamp6am - p6amp6amp6amp6amp6WlpqSkpaOjpKSkpaSkpaSkpaSkpaOjpKOjpKSkpKWlpaWlpaWlpaSkpaOjpKSk - pKWlpaWlpaWlpaWlpaSkpaOjpKSkpKWlpaWlpaWlpaWlpqamp6amp6amp6amp6WlpaSkpKSkpaOjpKSk - paWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjo6KioqKioqOjo6OjpKOjpKOjpKOjpKSkpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKSkpKSkpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaSk - paOjpKOjpKSkpKWlpaamp6amp6amp6ampqSkpKOjpKSko5+fqJKStoyMvYyMvYmJv4iIvoWFvYCAwYCA - wX9/xIWFwIuLvYyMvYyMvYyMvZmZrKCgpKOjop6eqJGRtoWFw4SEw4ODw4SEwIiIt4yMr46OrI+PrJGR - rpOTsZWVs5aWtJaWtJqarqKipJmZrYmJvYGBxYGBxoKCxYaGvIKCvn5+wYCAwYGBwoKCwYWFv4SEv4OD - woeHv5SUsqCgpKOjop2dqJWVsJKSs5OTsJKSr4yMtIiIt4aGuIiIuImJuYyMupGRtZeXrpycp6CgpKKi - paOjp6WlpaCgq52drJ2dqJaWrIiIvIKCw39/wX5+woKCwIeHvImJuomJuoiIuoqKuIyMt5WVsKKio6Ki - opWVsY2NuoyMvIqKvoeHv4eHvIGBwX9/wX9/w4KCwYeHvIyMuJCQs5OTspGRtZmZraSkoaOjpKOjpKSk - o6GhpJWVsIqKvIqKu4qKuouLuYaGvYGBwYCAxIKCxIeHv4qKvIuLvZCQt5qaraGhp6OjpKKipJaWsouL - vIqKvIqKvYODxYGBwn9/wYCAwYGBw4ODw4mJvbAPhYXFhITFgYHEgoLEhITFhITFg4PGhobDkpK2np6m - o6OgoaGhoaGhoaGhoaGhoqKhoaGinZ2olpawkpK1jIy7iYm8iYm6iYm6iYm6iYm7ioq7j4+1lpaum5un - n5+joqKioqKioqKioqKioaGjnJypm5urk5O0i4u/h4fGhYXHhYXHg4PGhITDi4u8lJSynZ2ooaGjoaGg - n5+fn5+goaGhoaGhoaGhnZ2jk5OuiIi8goLEgYHGhYXGiYnCjIy9i4u+jIy9kZG1mZmroaGio6OioqKi - oqKioqKio6Ojo6OkoaGnmpqulJSzjY26hobDg4PGgoLGgoLFgoLFgYHGhoa/lJSuoaGgoqKhoqKjoqKj - oaGknp6onJyql5eui4u8hITFg4PGg4PDiIjBjIy8i4u9ioq9jIy6lZWvo6OgoaGhoaGhoaGhoaGhoaGj - np6ok5O0i4u9ioq9iYm+h4fAiIi/hobGhobHh4fGjo69l5eym5usoqKlo6OkpKSlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpqampqanpqanpqanpqanpqampaWlpKSlpaWlpaWl - paWlpaWlpKSlo6Oko6OkpKSlpaWlpaWlpaWlpKSlo6OkpKSlpaWlpaWlpaWlpaWlpKSlo6OkpKSlpaWl - paWlpaWlpqampqanpqanpqanpqanpqampaWlpKSkpKSkpaWlpaWlpaWlpaWlpaWlpKSlpKSlpKSlpKSl - o6Oko6OjoaGhoqKio6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlpKSk - o6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6OkpaWlpqampqanpqanpqam - paWlpaWin5+pkZG3i4u+jIy+jY27i4u8hYXBgIDDgIDChIS/iYm6jIy6jIy9i4u+i4u+j4+5mJitoaGj - n5+mkpK0ioq/i4u9ioq9jIy5jo6xjo6si4uvhoa2hoa5iIi6ioq8jY29kpK5lZW0n5+qmZmti4u7hITC - hoa+hoa+hoa9gYHAfn7BgIDBgoLBgoLBgoLEgYHFg4PFiYm/kpK1m5uqoqKjn5+ml5ewkpK0kZG0jo63 - iYm6iIi6iIi2hoa5hIS/hYW+iYm9k5Oym5upnJyonZ2ooaGmpaWlnp6snZ2unJytkpK1hITDgIDGf3/D - gIC+hYW5iIi4iYm5ioq7i4u6jY23jIy3j4+0mpqooqKimZmskZG2kJC4kZG2jo65hYXBgYHEfn7Df3/A - hYW6ioq2ioq3jo60jo62kJC2mpqrpaWgo6Ojo6OkpKSjm5usjo65iIi/i4u8i4u7h4e/goLCgIDEgoLC - hoa+i4u7i4u8i4u8jIy7kJC2mJivo6OkpaWinJyskpK3jY28iYm/g4PFgYHCf3/BgIDBgYHCgoLBh4e+ - sA+GhsaFhcWCgsOAgMOCgsWEhMaFhcONjbyZma2hoaOioqGhoaGhoaGhoaGhoaGhoaCenqSXl66RkbaP - j7mMjLuKirqJibmJibqKirqKirmPj7SWlq2amqicnKWhoaGhoaGioqKioqKioqKhoaOdnaeVlbCKir2D - g8WCgsaDg8WDg8aEhMOMjLqRkbSVlbGbm6qioqGioqKgoKCfn5+fn5+hoaCgoKKWlq2KirmEhMCEhMGH - h8GJicGNjb2MjL6Njb2SkriZmbCenqeioqGioqKioqKioqKioqKjo6KioqSZma+SkraMjL2FhcWCgseD - g8aCgsWDg8WDg8WCgsaHh76UlK2goKChoaCioqKjo6GgoKWamqyZma2QkLaGhsKDg8aEhMKGhr6MjLyL - i7yLi7yKir6NjbqXl62ioqGhoaGhoaGhoaGioqCgoKOZmauWlq6VlbKTk7SOjrqGhsGDg8SFhcWHh8SM - jL+UlLecnK+hoaijo6Ojo6Sjo6Sjo6WkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sj - o6SkpKSmpqampqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6SkpKWlpaWlpaWl - paWkpKSjo6SkpKWlpaWlpaWlpaWlpaWkpKSjo6Sjo6WkpKWlpaWlpaWmpqampqempqempqempqelpaal - paWkpKSkpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6SioqOhoaGioqKjo6Sjo6Sjo6Sjo6Sj - o6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSkpKSkpKSkpKSjo6SkpKSkpKSlpaWlpaWl - paWlpaWlpaWkpKSjo6Sjo6Sjo6SlpaWmpqampqempqempqempqSgoKiTk7WNjbuMjL2Li8CGhsSCgseC - gsSEhL+JibmJibiKirqLi72Kir6Jib+Li72UlLKgoKahoaSamqyXl7CVlbGWlrGUlK+QkK2KirCEhLl/ - f8J/f8N/f8SAgMeFhcSOjrmTk7WYmLCamq6Xl7CSkrOOjrWGhr2BgcN/f8J/f8CAgMCCgsGBgcKDg8WE - hMOJib6QkLiUlLSWlrGhoaSgoKWbm6uVla+Pj7aKir2JibmKiriHh7iCgr5/f8V/f8WCgsKNjbaVla+W - lrCYmK6fn6Wjo6Shoaifn6uYmLKNjb6FhcWFhcKEhMCGhrmGhrWHh7iLi7qMjLyPj7mQkLiQkLiRkbSX - l6qhoaCfn6WamqyWlrCUlLKOjrmEhMOEhMCBgb+EhLmJibSIiLeFhb6Fhb6EhMGJibyXl62ioqGioqKj - o6OkpKKbm62RkbeNjbqKir2Hh8CCgsaAgMaBgcKFhb2KirmLi7yLi7yLi7yJib6Li7uXl66jo6Ojo6Oh - oaacnKyTk7aIiMGDg8aBgcSAgMJ/f8GAgMGBgcKAgMSwD4WFxoSExYODxIGBw4KCw4aGwo2NupKStZ+f - p6SkoaKio6KioqGhoaGhoaGhoKCgo5ubqZSUsY+PuIuLvIyMvIyMvIuLu4qKu4uLu42Nt5KSsZmZqJyc - pJ2dpKGhoaGhoaGhoaKioaGho5+fpZ2dp5OTtIWFw4KCx4ODxYODxYWFw4qKuZKSs5OTspKSs5iYraKi - oaKioqKioqGhoZ+fn6Cgnp+fopGRs4yMuoqKuomJvImJvoqKvomJwIyMvpKSt5SUtpaWs56eqqKio6Gh - oaKioqKioqKioqKiop+fpZOTtYyMvYWFxIKCyIODx4ODxoODxoSExYSExYaGwo2NuJmZqqCgoKCgoKGh - oKKioaCgpZiYro+PuIWFxISExoWFw4eHvoqKuomJv4mJv4iIv4iIv5GRtp6epqGhoaGhoaGhoaGhoaKi - oJ+fopmZqZiYqpSUso2Nu4iIwoWFxIWFwYaGwoyMvJSUtpqasaGhqqampKOjpKOjpKOjpKOjpKSkpKWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKOjpKOjpKWlpaamp6amp6amp6ampqWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaSkpaSkpaOjpKSkpKWlpaWlpaWlpaOjpKOjpKSkpaWlpaWlpaWlpaWlpaSk - pKOjpKSkpKWlpaWlpaWlpaampqamp6amp6amp6amp6WlpaWlpaSkpKSkpKWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaOjpKOjpKKioqGhoaKio6OjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaSkpaOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjo6Ojo6Wlpaam - p6amp6amp6ampqOjppycq5eXsY+PuYaGwoSExoWFxIaGwYqKuImJuYmJuYqKvIqKvoqKvYyMvJSUtJmZ - raCgpaKio5+fpaCgpJubqpubqpaWq42NsISEu35+w4CAwYGBwoKCw4GBxoeHwJOTsZaWspSUtJycrKKi - ppycq5CQt4KCxIODwYCAwX9/wICAwIGBwoGBwoODw4iIvY2NuJKStpOTtZOTtKGhpZ+fpJ6epZqaqpCQ - tYuLuYqKuomJuoODv35+woGBwYSEwImJuI+Ps5GRs5CQtZOTs5qaq6GhoqWloqKiqJSUtouLwI6OvYyM - vIuLu4iIuIWFt4SEuoeHvYmJv42NvY2NvpCQu5iYsp2dqJ2doKKioJ2dppaWro+Pt4qKvYuLuoqKuIiI - tYiItIeHtoODvICAxoCAxYCAxYWFwY+PtpqaqqKioqKioqOjo6Cgp5mZr5GRuIqKvoODxYSExIODw4WF - vImJt4mJuYuLvIuLvIuLvIuLvJOTtJ+fpaKioaOjpKSko6Cgp5aWs4qKvoaGw4ODxIKCw39/wYCAwYGB - wYKCwLAPhITFhITFhITFg4PFhITAi4u3kZGzmZmroKClo6OioqKjoqKjoqKioaGhoqKfnJynk5OyjY24 - i4u7ioq7ioq7i4u7jIy8i4u9i4u9ioq8jo63lpasnp6joqKgoaGhoaGhoaGhoaGhoaGinZ2nlpawi4u8 - hITEg4PGg4PGhobDjY27kpK0kZGxkZGylpavnZ2no6OhoqKioqKioqKioaGhn5+enZ2hkZGyioq7iYm8 - hobBgoLGg4PFg4PFkJC5kpK4kJC6k5O2nJytpKSkoqKjoaGhoaGho6OhoKCjl5etjIy6hITDg4PGg4PG - goLFgoLFhITFhITFhobDj4+4mZmqnp6koaGhoKCgoaGfnp6kmJitkJC2hITFhYXEhYXFh4fAioq5iIi9 - g4PFhITFgoLHioq9mJisoqKioqKioaGhoaGhoaGhoqKgn5+jmJiskpKykZGyjY24iYm9ioq8ioq7ioq7 - kJC2mJiunZ2soaGqpaWmpaWmo6Oko6Oko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpKSlo6Oko6OkpaWlpqanpqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqampKSk - o6OkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6OkpKSkpqampqanpqan - pqanpqanpaWmpaWlpKSlo6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6OjoqKioqKio6Ok - paWlpqampqanpqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6OkpaWlpaWl - paWlpaWlpaWlpaWlpaWlo6Oko6OkoqKjoqKio6OkpaWlpaWlpaWlpKSlo6Oko6Oko6OklpayjY26jIy8 - jIy6ioq5iIi4iYm5iIi7iYm+iorAjIy+k5O2kZG3lpaxn5+no6OioqKjoqKim5uplpasj4+yhYW8gIDE - gIDBgIDBgYHCgYHDgIDFhobAk5Oyk5Oyk5O2oKCqo6OnmZmxkpK2jIy7ioq6hIS/gIDCgIDBgYHCgYHC - iIi7ioq6i4u8i4u9jIy8k5OzoKClpKSin5+lmJirkpKzj4+2jY25hITBgIDDf3/BgoK+ioq5iYm5iYm7 - iYm7iYm8jIy7lJSyoKCko6Ohn5+mk5O1ioq/jIy9jIy9i4u8ioq6hIS9f3/CgYHDgoLFgoLHgoLKi4vA - mZmxoKCqnZ2poKCfl5eojo60i4u4ioq4ioq4iYm4jY2uiYmxgoK9fn7Df3/CgIDEhoa7iYm5ioq7kZGz - np6loqKioqKipKShnJyrkJC5jIy9jIy8ioq7iYm6iIi5h4e4iIi5ioq8i4u9ioq/k5O2n5+ppKSkoqKj - oqKioaGknJyrlpaykZG3i4u+hobDg4PDgYHCgIDBg4O/iIi6sA+EhMWEhMWDg8aHh8KNjbiQkLGPj7Ke - nqSjo6CioqOioqOioqOioqOioqKhoaGXl6uNjbiLi7yLi7uMjLqFhcGCgsSDg8WFhcSLi72QkLeVla6e - nqSioqCgoKChoaGhoaGhoaGhoaKdnaaVlbCLi76FhcSEhMWDg8aGhsKOjrqSkrSSkrSSkrKVla2bm6eg - oKKhoaGioqKioqKioqKjo6KgoKKVlaqJibuJibuDg8GBgcWDg8aFhcOPj7iQkLeQkLiPj7uWlrOhoaek - pKWkpKWjo6SioqGgoKKcnKmVlbGMjLyEhMSCgseDg8aDg8WCgsSCgsSCgsaMjLyYmK+fn6WhoaChoaGh - oaGiop+bm6aOjraFhcWFhcSFhcSIiMGJib2Ghr+BgcWCgsSCgseLi7yVlbCdnaejo6GioqKioqKhoaGi - oqCfn6OXl6yQkLSRkbOSkrKMjLeIiLuJibqKiruKiruPj7WZmaydnamfn6mmpqalpaalpaakpKWjo6Sj - o6Sjo6Sjo6SmpqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6SlpaWmpqempqempqempqem - pqelpaWlpaWlpaWlpaWlpaampqempqempqempqempqakpKSjo6SlpaWlpaWlpaWkpKWjo6Sjo6SlpaWl - paWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6SkpKSmpqampqempqempqelpaalpaWlpaWkpKWjo6SlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6OioqKlpaWmpqempqempqempqempqempqempqelpaalpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6SkpKWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Oi - oqKjo6Sjo6Sjo6Sjo6Sjo6SioqWbm6yVlbSSkrWTk7OPj7WIiLmJibmGhrqHh7uKiryIiMCDg8iEhMaD - g8eJicCXl7ChoaSioqOenqeYmK2RkbOHh76AgMSBgcOBgcKAgMGAgMGBgcGAgMODg8GKirqQkLSXl62i - oqWenqySkreUlLWSkraHh8KCgsSBgcKBgcGBgcGBgcOCgsOCgsWHh8CMjLyNjbuUlLOhoaWkpKGdnamT - k7OOjreNjbmEhMOCgsWBgcSDg72Hh7aJibqCgsGCgsODg8OCgsSFhcKPj7ebm6qioqKhoaSWlrCMjLuO - jrmOjrmMjLyFhcGAgMKAgMOBgcSBgcWAgMeMjLyYmLGenqyfn6ufn6uioqOcnKSTk6uQkK+QkK+Ojq6N - ja2JibKBgb19fcJ+fsF/f8KAgMGHh7yLi7mQkLaYmK+fn6ijo6SioqKjo6Gfn6ebm66amq+UlLWNjbuK - irqIiLiFhbyBgcOCgsSCgsaIiMCQkLiVlbOVlbOcnKyioqOhoaObm6qXl7GRkbiFhcWFhcWDg8SBgcOC - gr2GhreHh7mwD4SEx4ODyIiIwoyMvo+Pu5WVtJaWrp6eoqGhoKKioaKioqKio6Kio6Kio6KiopiYq4yM - uIqKu4uLuoaGwIKCwoGBw4KCxIWFwpGRtZeXr56epqGhoaGhoaGhoaCgoKGhoaKioJ+fpJeXq4+PtIiI - vYiIvYeHvoeHvomJvIqKvIuLvouLvomJwZGRtZycpaGhn6GhoaGhoaKioqOjoaKiopycqZGRs4mJuYSE - wYGBxIGBxYaGw42Nu5CQt4+Pt42NuZCQuJubrqamo6SkpaSkpaSkpaSkop6eppOTso6OuIyMu4qKvoeH - woODxYGBxIGBw4GBw4CAxouLvJqaqqOjoaKioqGhoaGhoaGhoZaWrYqKuomJvYiIvoODxIODxYODxIKC - xIKCxYGBxoqKupOTsJ2dpqKioqKioqKioqKioqKioqOjoJubqJCQtJGRs5KSso2NuIqKu4qKu4qKvIuL - vYuLvYyMu5WVrp6epKGhpKOjpaWlpqWlpqWlpqSkpaOjpKOjpKOjpKSkpaWlpqamp6amp6amp6WlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6amp6amp6amp6WlpaWlpaWlpaWlpaWlpaamp6amp6am - p6amp6WlpqSkpaOjpKWlpaWlpaWlpaSkpaOjpKOjpKWlpaWlpaWlpaWlpaWlpaOjpKKioqKio6SkpaWl - paWlpaamp6amp6amp6WlpqWlpaWlpaWlpaOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOj - pKWlpaWlpaampqamp6amp6amp6amp6amp6amp6amp6amp6amp6amp6WlpaWlpaWlpaWlpaWlpaWlpaWl - paOjpKSkpKWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpKKioqKioqKioqKioqKioqGho5mZq5mZrJqa - qpWVrI2Ns4eHuoaGuoWFuYeHuYWFvoODxYODyIKCyIWFxYSExo6OuZ2dqKOjopycqZGRtoiIwYODxIKC - xIKCxIGBw4CAwYCAwX9/w4ODwIiIu4qKuZCQspiYqpycp5qarJeXspiYsJiYr4yMvIqKv4iIvoODv39/ - wYCAwoKCxIKCxoiIwIyMuoyMupOTs6CgpaSkoZ+fppWVsYqKvoSExYKCx4GByIaGwImJt4aGt4ODwYGB - woODxISExoWFw4yMu5SUsJubqKKioqGhpJaWsYyMuo6OuIyMu4eHwoKCxICAxICAw4GBxYCAxoqKuJaW - rZycqZ+fqaGhqaWlpaWlpKOjoZiYqY+PsZCQr5CQroqKtIKCvX5+wX5+wX9/wYGBwYKCwomJvo+Pt5aW - sZ+fqqSkpaSkpaOjpKKioZ6epZmZrpWVspSUspOTs42Nt4WFvYCAwYCAwoGBxIKCxIODxYmJwIyMvI2N - vJWVs6KipaSkoJycqI+PuYWFxYWFxoWFxoKCxoWFv4eHuYWFuYaGubAPioq+iorAjY2/jY2+jo69lpa0 - oaGooqKioKCgoKCgoaGhoqKioqKjo6OioaGjlpawjIy7ioq7hYXBg4PEgoLDgYHDgIDFg4PEkpKznp6n - o6Oio6OioqKioaGhoaGhoKCgoaGgmpqpkJC1ioq5iYm6iYm6j4+zjY21ioq7ioq+iIjAh4fDjo66l5eu - n5+koaGfoKCgoaGhoaGhoKCjnZ2olpawjIy7hYXBgIDEgIDEgoLEhYXDhobCh4fBh4fBioq+lJSxoKCm - paWkpKSlpKSlpKSlpaWkoaGmlJSwiYm8jIy8jY26iIjBg4PGgoLFgoLEgYHEgIDFioq6nJyppaWgoqKi - oqKioqKhn5+jmZmpkJCziIi9g4PCgYHEgYHFgYHFgIDGgoLDi4u4k5OvmZmmoKCio6OhoqKioqKioqKi - oqKio6OgnZ2llJSvkpKyjo63ioq6ioq8i4u9i4u9jIy9jIy8ioq/lJSxn5+jo6OgoqKipKSlpaWmpaWm - paWmpKSlo6Oko6Oko6Oko6OkpaWmpqanpqanpqampaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqanpqan - pqanpqanpqanpqampaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqanpqampKSko6OkpKSlpaWlpaWlpKSl - o6OkpKSkpaWlpaWlpaWlpaWlo6OkoqKjoqKio6OjpaWlpaWlpaWmpqanpqanpqanpqampaWlpaWlpKSl - o6OkpKSlpaWlpaWlpaWlpKSkpaWlpaWlpaWlpKSlpKSlpaWlpaWlpaWmpqanpqanpqanpqanpqanpqan - pqanpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkpKSkpaWlpaWlpKSlo6Oko6Oko6Ok - oqKjoqKjoqKioqKioqKioqKioqKioqKin5+km5upl5etkJC0iYm5iYm5h4e5h4e2goK8gYHDgYHGgYHG - hITEhobFh4fEjY27mpqspKShoKClkZG1hYXEgoLHg4PEgoLEgoLEgYHCf3/Cg4O/iYm7iYm6ioq6kJCy - mZmpmZmonJyonZ2pmpqvmJiykJC6i4u+hobBgYHCgIDCgIDCgoLEg4PFhYXEh4fBjIy6mJisoqKjpKSh - o6OimpqrjY27iIjAh4e9h4e+ioq5h4e4gIC/gYHCgYHDgoLFg4PGh4fCkJC3lpaumpqooaGio6OhmZms - j4+5jIy8hobDg4PFgYHFgYHEf3/EgIDEioq3kZGvlJStlpatl5eumpqwn5+ro6OopqajnJyrkpKxkpKs - j4+wg4O/f3/Efn7Dfn7BgIDBgYHCgoLDhITEiYm/kpK3m5uvoaGopKSlpKSlpKSim5upkpKylJSylZWx - kZG2iIi+gYHDf3/Df3/BgYHCgIDFhobBiYm+jIy7kZG2lZWzn5+ppKSinp6nk5O0i4u9iIi/iIi/h4e+ - hoa7hoa4hYW5goK/sA+IiMCMjL6Njb2MjL+Njb2WlrSlpaWlpaSioqKgoKCgoKCioqKioqOhoaWXl6+P - j7mLi76GhsGCgsWCgsSCgsSAgMWCgsOLi7iVla2hoaKjo6GioqKioqKioqKhoaGhoaCenqKSkrGJib2J - ib2JibqKirmLi7qJib6GhsKGhsOJicCPj7mYmKyfn6WioqOioqGgoKCgoKChoaCgoKSYmK2NjbqEhMOC - gsaCgsWDg8OEhMODg8WCgsaCgsaCgseLi72amquioqKjo6OkpKWkpKWkpKWkpKaenquUlLONjbmMjLuJ - ib6FhcODg8aDg8WCgsWDg8SDg8KNjbObm6Sjo6CioqKioqKioqKfn6SXl62MjLqDg8OAgMaBgcWAgMSA - gMSCgsOIiL2OjrWWlqybm6Ofn5+hoaGioqKioqKioqKjo6GioqKcnKeVla+OjreKiryKiruKiruKir2L - i72MjL2MjL2RkbmdnaykpKSkpKOioqOioqOkpKWlpaalpaalpaakpKWjo6Sjo6Sjo6SkpKWmpqempqem - pqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqWmpqempqempqempqempqempqempqWlpaWlpaWlpaWm - pqampqempqempqempqempqakpKSkpKSlpaWlpaWlpaWkpKWjo6SkpKWlpaWlpaWlpaWkpKWkpKWjo6Oj - o6Ojo6SkpKWlpaWmpqampqampqampqalpaWlpaWlpaWkpKSkpKSkpKSkpKWkpKWjo6SkpKWlpaWlpaWl - paWlpaWlpaWlpaWlpaWmpqWmpqampqempqempqempqempqempqempqempqempqempqalpaWlpaWlpaWl - paWlpaWlpaWkpKSkpKSkpKSlpaWlpaWkpKWjo6WioqOioqKioqKioqKioqKioqKioqKioqKioqKjo6Gc - nKmQkLaJib6Jib6JibqJibiEhLx/f8F+fsSBgcSDg8OFhcOIiMKOjruUlLWbm6yjo6KhoaSYmK6Li76E - hMWDg8WDg8WCgsSAgMOCgr6Hh7mJibqKiruPj7WUlK+Xl6yXl6ybm6ednaeUlLOQkLmLi72GhsGCgsWA - gMSAgMKAgMGCgsSEhMWCgsiFhcSSkrSdnaahoaOgoKSioqOenqiRkbWOjrqMjLmMjLiHh7qBgcB/f8KB - gcGBgcOCgsWDg8aGhsSJicCMjLuSkrOdnaajo5+cnKiNjbqFhcSCgseBgceAgMd/f8eAgMGIiLWSkq6K - irmJib2Kir2Jib6Li7+QkLqbm6+lpaahoaqXl7CRkbCLi7aBgcKAgMOAgMF/f8F/f8GBgcKBgcSBgcmJ - icCRkbaUlLWYmLKjo6akpKWmpqSenqmUlLCSkrGPj7WHh7+CgsSBgcOAgMF/f8GAgMOEhMCJibuMjLuN - jbmQkLaRkbeWlrKhoaehoaSamqqUlLCNjbWKirmIiLqGhrmEhLqBgb+BgcOwD4WFw4qKv42NvY2NvZGR - uZmZsaSkpqampaSkpKGhoaCgoKCgoKKiop2dp5CQt4qKwIeHwoKCxoODxIODxIKCxYSEwoyMuZaWrpmZ - qKCgoqKioaKioqKioqKioqGhoaKioJycppCQs4uLuY2NuYuLu4mJvYSExYKCx4ODxoaGwo2NupmZrZ+f - paKio6Kio6Kio6GhoqCgoKGhn6CgopaWr4iIwIKCx4SExYSExYSExISExIODxYODxYODxYWFwpKStJ+f - paSkoKKioqOjo6SkpaSkpJ6eq5WVtZKSt5KStYqKvoSExYODxoODxYODxYODxYaGwoyMuZaWqZ2dn6Cg - n6GhoaKioqCgpZiYrouLu4KCxYGBxoGBxYGBxYODwYODwYSEv4iIuoiIvJOTrpycpKCgn6GhoKGhoaKi - oqKioqGho5ycqJWVsI+PuIqKvIuLvIuLvIqKu4qKu4qKvYyMvZGRuJ2dq6WlpaampaWlpaSkpaKioqKi - o6OjpKWlpqWlpqWlpqSkpaOjpKOjpKOjpKSkpaWlpqamp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaampqamp6amp6amp6amp6amp6WlpqWlpaWlpaWlpaampqamp6amp6amp6amp6ampqSkpKOjpKSk - paWlpaWlpaSkpKOjpKOjpaSkpaWlpaWlpaWlpaWlpaWlpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6am - p6amp6amp6amp6amp6amp6amp6amp6Wlp6WlpqWlpaWlpaWlpaWlpaWlpaSkpaOjpKSkpaWlpaWlpaWl - paOjpKKio6KioqKioqKioqKioqKioqKioqKioqKiop+fppOTso+PuI+Pt4uLuoaGvYCAxH5+w4CAwoKC - woWFwYeHwo6Ou5OTtpaWspmZrZ+fp6Kio56eppOTs4eHwYODx4ODxoKCxYSEwYaGuYeHt4mJuI+PtZOT - sI+PtY+Pto2Nt5KSsJiYq5GRtIiIv4WFwoGBxICAxIGBxIGBw4CAwYGBwoKCxoWFxIyMu5SUs5mZrZiY - rpiYrZ+fpaCgppaWsJCQt42NvIqKvYODwn9/w4CAwYCAwYGBwoKCw4ODxYSExYKCx4ODxoyMvJmZq6Ki - oJ2dppCQtoaGwYeHv4iIwIeHwISEwIiIt4+Pq4qKt4GBxYKCyYODyIKCyIODyIWFxZOTtqKiqKSkppqa - r4+PuYaGwIGBwoGBwYGBwYCAwX9/wYGBwoGBxYWFwZCQtpSUspKStZeXsqOjpqSkpaSkpaOjppycq5CQ - tIWFvoCAxICAxIGBwoCAwn9/woSEv4qKuoyMu42NvI2Nu4yMvIuLvZSUtKCgp6Wlop6eqJWVsY+PtIuL - uYiIvIWFvIKCv4CAw4CAwrAPi4u7i4u9jY29kpK3mpqvoKCqpaWlpaWlpaWlpKSkoqKioKCgoaGhnZ2m - kpK0h4fCgoLHhITFhITFhITFg4PHioq+kpK2k5O0mZmon5+hoaGgoqKioqKioqKioqKin5+jm5unlpas - kpKwjo62iIi/g4PGg4PGhITFh4fDjIy8k5O0mJiuoKClo6OioqKjoqKjoqKjoaGhoKChm5unkJC0h4fA - hYXFhYXEhYXEg4PFg4PFhITFhITFh4fBjo64m5uroqKjoqKhoqKioqKio6Oko6OkmZmvkpK3k5O2kZG4 - hITFgoLGg4PFg4PFg4PFh4fCjY26mJisn5+in5+enp6en5+foqKimpqri4u8goLGgoLGgoLFgoLFg4PD - iIi8iIi7hYW9hYW9h4e9lJSunp6ioaGfoKCgoKCgoaGhoqKhnJyolZWxjo65ioq+i4u8jIy9jIy9jIy9 - i4u8i4u6kJC2m5uso6OkpaWkpaWlpaWlpaWlo6OkoqKioqKjpKSlpaWmpaWmpaWmo6Oko6Oko6Oko6Oj - o6OjpaWmpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpqanpqanpqampaWl - paWlpaWlpaWlpaWmpqanpqanpqanpqanpqampKSko6OkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWl - paWlpaWlpKSlo6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Ok - pKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpqanpqanpqanpqanpqanpqanpqanpqam - paWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkpaWlpaWlpaWlpKSlo6OjoqKioqKioqKioqKioqKioqKioqKi - oqKio6OhoKClnp6nnJypkZG1g4PFgoLFgYHEgYHCg4PAh4e+jY27j4+5jo65jY28kZG4m5uto6OjpKSh - mpqtioq9g4PFhYXDhYXCioq7iYm5hoa4iYm0j4+xjY22hITCgoLDg4PFi4u5lpaqlpauiIi/hITGgoLF - gYHEgYHEgoLEgYHCgYHDgoLFjIy7kpK1jY28jY29jIy+kJC4nZ2po6OhnJyplZWxjY28hYXFgoLFgoLC - gYHCgIDBgIDBgIDCg4PEhITFhITGhYXEjo65m5uqoqKhn5+imZmplJSvk5OxkpKxk5Oxk5Owj4+viIi2 - fn7EgIDEg4PFhITGhITGhYXFiIjCk5O2oaGopqajnZ2tjo69g4PGg4PDgYHCgYHCgYHCgIDBgIDBg4O/ - j4+ylJSxk5OzlpavnJyppKSlpKSlpKSlpqajoaGokJC4goLGgYHFgYHDgYHDgYHBgoK+iYm4iYm8ioq/ - i4vAi4vAjIy9j4+6mZmuoKCnpKSjn5+pkpK3ioq9iYm+iIi+g4PCgIDEgYHBgYG/sA+Njb2MjL6RkbmZ - mbGgoKmkpKWlpaWlpaWlpaWlpaWkpKSioqGgoKCbm6eRkbaHh8KDg8aEhMWEhMWEhMaFhcaEhMeHh8SQ - kLmamqqgoKKhoaCgoKChoaGioqKioqKcnKmamqmWlq2Pj7WHh72CgsWEhMWEhMaHh8KKir6Li72MjLyS - krWfn6ajo6KioqOioqOioqOioqOdnaeQkLOGhsCCgsSDg8ODg8ODg8WEhMWEhMWEhMWGhsKNjbmUlLGe - nqSioqCioqKioqKioqKioqKioqOdnaqYmLGTk7eMjL6FhcWDg8aDg8WDg8WGhsOMjLyWlrCdnaegoKKh - oaCfn5+enp6goKCWlq+Hh8GCgsiDg8aCgsWDg8WJibyIiL2Ghr6Fhb6GhryOjrSZmaWfn6CgoKCgoKCg - oKCgoKCioqCYmK2OjrmLi72Li7yLi72Njb6Njb6Njb6MjL+QkLeamqibm6qhoaWjo6OkpKSlpaWlpaWl - paWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6OioqKjo6SmpqempqempqempqalpaWlpaWjo6Sj - o6SkpKWlpaWlpaWlpaWmpqempqempqempqempqempqelpaWlpaWlpaWlpaWlpaampqempqempqempqem - pqakpKSjo6SlpaWlpaWlpaWkpKWjo6Sjo6SlpaWmpqempqempqempqalpaWjo6Sjo6SkpKWlpaWlpaWl - paWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWmpqempqempqempqempqempqempqempqempqempqempqelpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sk - pKWlpaWlpaWlpaWjo6SioqOioqOioqOioqOioqKioqKioqKioqKioqKjo6GgoKSXl66Li72GhsKDg8KC - gsCEhL2Li7ePj7SGhsKEhMaDg8eKisCZma+kpKOkpKOXl6+NjbqKir6Li72KiryJibqJibmGhriGhreG - hruEhL+FhcGFhcKHh7+RkbKcnKWbm6aPj7eFhcOCgsaDg8WCgsSCgsSBgcOAgMOHh72MjLuNjb6MjL6M - jL6Li7+QkLqcnKukpKCgoKSYmK6MjLuFhcSEhMaDg8WCgsOBgcKAgMGBgcKCgsOEhMWEhMaFhcSRkbef - n6ajo6GioqGfn6OYmKuSkrKRkbGRkbGRka+KirZ/f8N/f8GAgMODg8aFhcaEhMeHh8SVlbWamq2hoaam - pqKgoKqRkbqFhcaFhcSDg8SBgcSBgcOAgMKBgcCPj7CRkbCRkbOWlq+bm6ubm6qioqOkpKSkpKWlpaSg - oKmSkriFhcWDg8WCgsWBgcSDg7+IiLeHh7mDg8KDg8WEhMaHh8SQkLucnK6enqydnauhoaahoaaVlbKJ - icCJib6FhcOCgsWBgcSCgsCGhrawDw== - - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AAAAAAAAAAAAAAAAAAAAAAA//8AAAmZmZmQAAAAAAAAAP//AJmZmZmZmZkAAAAAAAD//wmZmZ - mZmZmZkAAAAAAA//8JmZmZmZmZmZkAAAAAAP//CZmZAAAAmZmZkAAAAAD//wmZAJiYmACZmZkAAAAA// - 8JkImJiYmJCZmZkAAAAP//CQiYmJiYmJCZmZAAAAD//wCJiYmJAAAACZmQkAAA//8ImJiYAAAAAAmZmQ - kAAP//CYmJAAAAAAAAmZkIkAD//wiYkAAAAAAAAJmZCYAA//8JiYAAAAAAAACZmQiYAP//CJiQAAAAAA - AAmZkJiQD//weJAAAAAAAAAJmZCJgA//8IeAAAAAAAAACZmQmJAP//8IcAAAAAAAAJmZkImAD///B4AA - AAAAAACZmQiYkA////BwAAAAAAAPmZkJiYAP////AAAAAAAA//mZCJiQD/////AAAAAAD///kImJgA// - ////8AAAD////wmYmAAP//////////////B4mYkAD//w//////////8Hh4mYAA//8A/////////weHh4 - kAAP//BwAP////8AB4eHhwAAAAAAhwgAAAAAeHh4eHAAAACHhwhwh4eHh4eHh4cAAAAACHhwgAh4eHh4 - eHhwAAAAAACHhwAAB4eHh4cAAAAAAAAAAAAAAAAAAAAAAAAAAAADwD//AgAH/wAAA/8AAAH/AAAA/wAA - AH8AAAA/AAAAHwAAAA8AAAAHAAH4AwAH/AEAD/wBAB/8AAAf/AAAP/wAAD/8AAA/+AAAP/gAAD/wAAA/ - 4AAAH4AAAAAAAQAAAAEAAAABAAAAAwAAAAcAAAAPgAAAH8AAAD/gIAB/8DgD/w== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutBckgnd_370x209.bmp b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutBckgnd_370x209.bmp deleted file mode 100644 index 21c5ce49..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutBckgnd_370x209.bmp and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutBckgnd_80.bmp b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutBckgnd_80.bmp deleted file mode 100644 index 7b2503a1..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutBckgnd_80.bmp and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutROEditor.Designer.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutROEditor.Designer.cs deleted file mode 100644 index 98d097b7..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutROEditor.Designer.cs +++ /dev/null @@ -1,499 +0,0 @@ -namespace ROEditor -{ - partial class AboutROEditor - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.logoPictureBox = new System.Windows.Forms.PictureBox(); - this.labelProductName = new System.Windows.Forms.Label(); - this.labelVersion = new System.Windows.Forms.Label(); - this.labelCopyright = new System.Windows.Forms.Label(); - this.labelCompanyName = new System.Windows.Forms.LinkLabel(); - this.textBoxDescription = new System.Windows.Forms.TextBox(); - this.panel1 = new System.Windows.Forms.Panel(); - this.panel2 = new System.Windows.Forms.Panel(); - this.panel3 = new System.Windows.Forms.Panel(); - this.labelVersionDateTime = new System.Windows.Forms.Label(); - this.labelServer = new System.Windows.Forms.Label(); - this.labelDatabase = new System.Windows.Forms.Label(); - this.panel4 = new System.Windows.Forms.Panel(); - this.panel5 = new System.Windows.Forms.Panel(); - this.panel6 = new System.Windows.Forms.Panel(); - this.panel7 = new System.Windows.Forms.Panel(); - this.btnEULA = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit(); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - this.panel3.SuspendLayout(); - this.panel4.SuspendLayout(); - this.panel5.SuspendLayout(); - this.panel6.SuspendLayout(); - this.panel7.SuspendLayout(); - this.SuspendLayout(); - // - // logoPictureBox - // - this.logoPictureBox.Cursor = System.Windows.Forms.Cursors.Hand; - this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; - this.logoPictureBox.Image = global::ROEditor.Properties.Resources.Red_V_txt_NB_bur_1984; - this.logoPictureBox.Location = new System.Drawing.Point(0, 0); - this.logoPictureBox.Margin = new System.Windows.Forms.Padding(4); - this.logoPictureBox.Name = "logoPictureBox"; - this.logoPictureBox.Size = new System.Drawing.Size(577, 174); - this.logoPictureBox.TabIndex = 25; - this.logoPictureBox.TabStop = false; - this.logoPictureBox.Click += new System.EventHandler(this.logoPictureBox_Click); - // - // labelProductName - // - this.labelProductName.Dock = System.Windows.Forms.DockStyle.Top; - this.labelProductName.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelProductName.Location = new System.Drawing.Point(0, 0); - this.labelProductName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - this.labelProductName.MaximumSize = new System.Drawing.Size(0, 21); - this.labelProductName.Name = "labelProductName"; - this.labelProductName.Size = new System.Drawing.Size(577, 21); - this.labelProductName.TabIndex = 19; - this.labelProductName.Text = "Referenced Object Editor"; - this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // labelVersion - // - this.labelVersion.Dock = System.Windows.Forms.DockStyle.Top; - this.labelVersion.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelVersion.Location = new System.Drawing.Point(0, 0); - this.labelVersion.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - this.labelVersion.MaximumSize = new System.Drawing.Size(0, 21); - this.labelVersion.Name = "labelVersion"; - this.labelVersion.Size = new System.Drawing.Size(577, 21); - this.labelVersion.TabIndex = 0; - this.labelVersion.Text = "Version 1 Beta Release"; - this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // labelCopyright - // - this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelCopyright.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelCopyright.Location = new System.Drawing.Point(0, 0); - this.labelCopyright.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 21); - this.labelCopyright.Name = "labelCopyright"; - this.labelCopyright.Size = new System.Drawing.Size(577, 21); - this.labelCopyright.TabIndex = 21; - this.labelCopyright.Text = "Copyright 2008"; - this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // labelCompanyName - // - this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill; - this.labelCompanyName.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelCompanyName.Location = new System.Drawing.Point(0, 0); - this.labelCompanyName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 21); - this.labelCompanyName.Name = "labelCompanyName"; - this.labelCompanyName.Size = new System.Drawing.Size(577, 21); - this.labelCompanyName.TabIndex = 22; - this.labelCompanyName.TabStop = true; - this.labelCompanyName.Text = "Volian Enterprises Inc."; - this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.labelCompanyName.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.labelCompanyName_LinkClicked); - // - // textBoxDescription - // - this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill; - this.textBoxDescription.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.textBoxDescription.Location = new System.Drawing.Point(0, 0); - this.textBoxDescription.Margin = new System.Windows.Forms.Padding(8, 4, 4, 4); - this.textBoxDescription.Multiline = true; - this.textBoxDescription.Name = "textBoxDescription"; - this.textBoxDescription.ReadOnly = true; - this.textBoxDescription.Size = new System.Drawing.Size(577, 119); - this.textBoxDescription.TabIndex = 23; - this.textBoxDescription.TabStop = false; - this.textBoxDescription.Text = "Thank you for choosing PROMS for your procedure maintenance solution.\r\n\r\nPROMS is" + - " protected under the copyright laws.\r\n\r\nPlease refer the the End User Licence Ag" + - "reement (EULA) for the terms of use.\r\n"; - // - // panel1 - // - this.panel1.Controls.Add(this.logoPictureBox); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(12, 11); - this.panel1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(577, 174); - this.panel1.TabIndex = 26; - // - // panel2 - // - this.panel2.Controls.Add(this.labelProductName); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(12, 185); - this.panel2.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(577, 31); - this.panel2.TabIndex = 27; - // - // panel3 - // - this.panel3.Controls.Add(this.labelVersionDateTime); - this.panel3.Controls.Add(this.labelServer); - this.panel3.Controls.Add(this.labelDatabase); - this.panel3.Controls.Add(this.labelVersion); - this.panel3.Dock = System.Windows.Forms.DockStyle.Top; - this.panel3.Location = new System.Drawing.Point(12, 216); - this.panel3.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(577, 82); - this.panel3.TabIndex = 28; - // - // labelVersionDateTime - // - this.labelVersionDateTime.Dock = System.Windows.Forms.DockStyle.Bottom; - this.labelVersionDateTime.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelVersionDateTime.Location = new System.Drawing.Point(0, 19); - this.labelVersionDateTime.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - this.labelVersionDateTime.MaximumSize = new System.Drawing.Size(0, 21); - this.labelVersionDateTime.Name = "labelVersionDateTime"; - this.labelVersionDateTime.Size = new System.Drawing.Size(577, 21); - this.labelVersionDateTime.TabIndex = 1; - this.labelVersionDateTime.Text = "Version Date/Time"; - this.labelVersionDateTime.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // labelServer - // - this.labelServer.Dock = System.Windows.Forms.DockStyle.Bottom; - this.labelServer.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelServer.Location = new System.Drawing.Point(0, 40); - this.labelServer.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - this.labelServer.MaximumSize = new System.Drawing.Size(0, 21); - this.labelServer.Name = "labelServer"; - this.labelServer.Size = new System.Drawing.Size(577, 21); - this.labelServer.TabIndex = 3; - this.labelServer.Text = "SQL Server Name"; - this.labelServer.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.labelServer.Visible = false; - // - // labelDatabase - // - this.labelDatabase.Dock = System.Windows.Forms.DockStyle.Bottom; - this.labelDatabase.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelDatabase.Location = new System.Drawing.Point(0, 61); - this.labelDatabase.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - this.labelDatabase.MaximumSize = new System.Drawing.Size(0, 21); - this.labelDatabase.Name = "labelDatabase"; - this.labelDatabase.Size = new System.Drawing.Size(577, 21); - this.labelDatabase.TabIndex = 2; - this.labelDatabase.Text = "Database Name"; - this.labelDatabase.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.labelDatabase.Visible = false; - // - // panel4 - // - this.panel4.Controls.Add(this.labelCopyright); - this.panel4.Dock = System.Windows.Forms.DockStyle.Top; - this.panel4.Location = new System.Drawing.Point(12, 298); - this.panel4.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.panel4.Name = "panel4"; - this.panel4.Size = new System.Drawing.Size(577, 28); - this.panel4.TabIndex = 29; - // - // panel5 - // - this.panel5.Controls.Add(this.labelCompanyName); - this.panel5.Dock = System.Windows.Forms.DockStyle.Top; - this.panel5.Location = new System.Drawing.Point(12, 326); - this.panel5.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.panel5.Name = "panel5"; - this.panel5.Size = new System.Drawing.Size(577, 28); - this.panel5.TabIndex = 30; - // - // panel6 - // - this.panel6.Controls.Add(this.textBoxDescription); - this.panel6.Dock = System.Windows.Forms.DockStyle.Top; - this.panel6.Location = new System.Drawing.Point(12, 354); - this.panel6.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.panel6.Name = "panel6"; - this.panel6.Size = new System.Drawing.Size(577, 119); - this.panel6.TabIndex = 31; - // - // panel7 - // - this.panel7.Controls.Add(this.btnEULA); - this.panel7.Controls.Add(this.btnOK); - this.panel7.Dock = System.Windows.Forms.DockStyle.Top; - this.panel7.Location = new System.Drawing.Point(12, 473); - this.panel7.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.panel7.Name = "panel7"; - this.panel7.Size = new System.Drawing.Size(577, 47); - this.panel7.TabIndex = 32; - // - // btnEULA - // - this.btnEULA.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnEULA.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnEULA.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btnEULA.Location = new System.Drawing.Point(309, 14); - this.btnEULA.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.btnEULA.Name = "btnEULA"; - this.btnEULA.Size = new System.Drawing.Size(91, 30); - this.btnEULA.TabIndex = 27; - this.btnEULA.Text = "&View EULA"; - this.btnEULA.Visible = false; - this.btnEULA.Click += new System.EventHandler(this.btnViewEULA_Click); - // - // btnOK - // - this.btnOK.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btnOK.Location = new System.Drawing.Point(499, 14); - this.btnOK.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(75, 30); - this.btnOK.TabIndex = 26; - this.btnOK.Text = "&OK"; - // - // AboutROEditor - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.SystemColors.ControlLightLight; - this.ClientSize = new System.Drawing.Size(601, 529); - this.Controls.Add(this.panel7); - this.Controls.Add(this.panel6); - this.Controls.Add(this.panel5); - this.Controls.Add(this.panel4); - this.Controls.Add(this.panel3); - this.Controls.Add(this.panel2); - this.Controls.Add(this.panel1); - this.DoubleBuffered = true; - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Margin = new System.Windows.Forms.Padding(4); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "AboutROEditor"; - this.Padding = new System.Windows.Forms.Padding(12, 11, 12, 11); - this.ShowIcon = false; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "About Proms 2010"; - ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit(); - this.panel1.ResumeLayout(false); - this.panel2.ResumeLayout(false); - this.panel3.ResumeLayout(false); - this.panel4.ResumeLayout(false); - this.panel5.ResumeLayout(false); - this.panel6.ResumeLayout(false); - this.panel6.PerformLayout(); - this.panel7.ResumeLayout(false); - this.ResumeLayout(false); - - } - //private void InitializeComponentORG() - //{ - // System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(AboutROEditor)); - // this.tableLayoutPanel = new System.Windows.Forms.TableLayoutPanel(); - // this.logoPictureBox = new System.Windows.Forms.PictureBox(); - // this.labelProductName = new System.Windows.Forms.Label(); - // this.labelVersion = new System.Windows.Forms.Label(); - // this.labelCopyright = new System.Windows.Forms.Label(); - // this.labelCompanyName = new System.Windows.Forms.Label(); - // this.textBoxDescription = new System.Windows.Forms.TextBox(); - // this.okButton = new System.Windows.Forms.Button(); - // this.tableLayoutPanel.SuspendLayout(); - // ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).BeginInit(); - // this.SuspendLayout(); - // // - // // tableLayoutPanel - // // - // this.tableLayoutPanel.ColumnCount = 2; - // this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 33F)); - // this.tableLayoutPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 67F)); - // this.tableLayoutPanel.Controls.Add(this.logoPictureBox, 0, 0); - // this.tableLayoutPanel.Controls.Add(this.labelProductName, 1, 0); - // this.tableLayoutPanel.Controls.Add(this.labelVersion, 1, 1); - // this.tableLayoutPanel.Controls.Add(this.labelCopyright, 1, 2); - // this.tableLayoutPanel.Controls.Add(this.labelCompanyName, 1, 3); - // this.tableLayoutPanel.Controls.Add(this.textBoxDescription, 1, 4); - // this.tableLayoutPanel.Controls.Add(this.okButton, 1, 5); - // this.tableLayoutPanel.Dock = System.Windows.Forms.DockStyle.Fill; - // this.tableLayoutPanel.Location = new System.Drawing.Point(12, 11); - // this.tableLayoutPanel.Margin = new System.Windows.Forms.Padding(4); - // this.tableLayoutPanel.Name = "tableLayoutPanel"; - // this.tableLayoutPanel.RowCount = 6; - // this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); - // this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); - // this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); - // this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); - // this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - // this.tableLayoutPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 10F)); - // this.tableLayoutPanel.Size = new System.Drawing.Size(556, 326); - // this.tableLayoutPanel.TabIndex = 0; - // // - // // logoPictureBox - // // - // this.logoPictureBox.Dock = System.Windows.Forms.DockStyle.Fill; - // this.logoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("logoPictureBox.Image"))); - // this.logoPictureBox.Location = new System.Drawing.Point(4, 4); - // this.logoPictureBox.Margin = new System.Windows.Forms.Padding(4); - // this.logoPictureBox.Name = "logoPictureBox"; - // this.tableLayoutPanel.SetRowSpan(this.logoPictureBox, 6); - // this.logoPictureBox.Size = new System.Drawing.Size(175, 318); - // this.logoPictureBox.SizeMode = System.Windows.Forms.PictureBoxSizeMode.StretchImage; - // this.logoPictureBox.TabIndex = 12; - // this.logoPictureBox.TabStop = false; - // // - // // labelProductName - // // - // this.labelProductName.Dock = System.Windows.Forms.DockStyle.Fill; - // this.labelProductName.Location = new System.Drawing.Point(191, 0); - // this.labelProductName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - // this.labelProductName.MaximumSize = new System.Drawing.Size(0, 21); - // this.labelProductName.Name = "labelProductName"; - // this.labelProductName.Size = new System.Drawing.Size(361, 21); - // this.labelProductName.TabIndex = 19; - // this.labelProductName.Text = "Product Name"; - // this.labelProductName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // // - // // labelVersion - // // - // this.labelVersion.Dock = System.Windows.Forms.DockStyle.Fill; - // this.labelVersion.Location = new System.Drawing.Point(191, 32); - // this.labelVersion.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - // this.labelVersion.MaximumSize = new System.Drawing.Size(0, 21); - // this.labelVersion.Name = "labelVersion"; - // this.labelVersion.Size = new System.Drawing.Size(361, 21); - // this.labelVersion.TabIndex = 0; - // this.labelVersion.Text = "Version"; - // this.labelVersion.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // // - // // labelCopyright - // // - // this.labelCopyright.Dock = System.Windows.Forms.DockStyle.Fill; - // this.labelCopyright.Location = new System.Drawing.Point(191, 64); - // this.labelCopyright.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - // this.labelCopyright.MaximumSize = new System.Drawing.Size(0, 21); - // this.labelCopyright.Name = "labelCopyright"; - // this.labelCopyright.Size = new System.Drawing.Size(361, 21); - // this.labelCopyright.TabIndex = 21; - // this.labelCopyright.Text = "Copyright"; - // this.labelCopyright.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // // - // // labelCompanyName - // // - // this.labelCompanyName.Dock = System.Windows.Forms.DockStyle.Fill; - // this.labelCompanyName.Location = new System.Drawing.Point(191, 96); - // this.labelCompanyName.Margin = new System.Windows.Forms.Padding(8, 0, 4, 0); - // this.labelCompanyName.MaximumSize = new System.Drawing.Size(0, 21); - // this.labelCompanyName.Name = "labelCompanyName"; - // this.labelCompanyName.Size = new System.Drawing.Size(361, 21); - // this.labelCompanyName.TabIndex = 22; - // this.labelCompanyName.Text = "Company Name"; - // this.labelCompanyName.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // // - // // textBoxDescription - // // - // this.textBoxDescription.Dock = System.Windows.Forms.DockStyle.Fill; - // this.textBoxDescription.Location = new System.Drawing.Point(191, 132); - // this.textBoxDescription.Margin = new System.Windows.Forms.Padding(8, 4, 4, 4); - // this.textBoxDescription.Multiline = true; - // this.textBoxDescription.Name = "textBoxDescription"; - // this.textBoxDescription.ReadOnly = true; - // this.textBoxDescription.ScrollBars = System.Windows.Forms.ScrollBars.Both; - // this.textBoxDescription.Size = new System.Drawing.Size(361, 155); - // this.textBoxDescription.TabIndex = 23; - // this.textBoxDescription.TabStop = false; - // this.textBoxDescription.Text = "Description"; - // // - // // okButton - // // - // this.okButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - // this.okButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - // this.okButton.Location = new System.Drawing.Point(452, 295); - // this.okButton.Margin = new System.Windows.Forms.Padding(4); - // this.okButton.Name = "okButton"; - // this.okButton.Size = new System.Drawing.Size(100, 27); - // this.okButton.TabIndex = 24; - // this.okButton.Text = "&OK"; - // // - // // AboutROEditor - // // - // this.AcceptButton = this.okButton; - // this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - // this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - // this.ClientSize = new System.Drawing.Size(580, 348); - // this.Controls.Add(this.tableLayoutPanel); - // this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - // this.Margin = new System.Windows.Forms.Padding(4); - // this.MaximizeBox = false; - // this.MinimizeBox = false; - // this.Name = "AboutROEditor"; - // this.Padding = new System.Windows.Forms.Padding(12, 11, 12, 11); - // this.ShowIcon = false; - // this.ShowInTaskbar = false; - // this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - // this.Text = "AboutROEditor"; - // this.tableLayoutPanel.ResumeLayout(false); - // this.tableLayoutPanel.PerformLayout(); - // ((System.ComponentModel.ISupportInitialize)(this.logoPictureBox)).EndInit(); - // this.ResumeLayout(false); - - //} - - #endregion - - //private System.Windows.Forms.TableLayoutPanel tableLayoutPanel; - //private System.Windows.Forms.PictureBox logoPictureBox; - //private System.Windows.Forms.Label labelProductName; - //private System.Windows.Forms.Label labelVersion; - //private System.Windows.Forms.Label labelCopyright; - //private System.Windows.Forms.Label labelCompanyName; - //private System.Windows.Forms.TextBox textBoxDescription; - //private System.Windows.Forms.Button okButton; - private System.Windows.Forms.Label labelProductName; - private System.Windows.Forms.Label labelVersion; - private System.Windows.Forms.Label labelCopyright; - private System.Windows.Forms.LinkLabel labelCompanyName; - private System.Windows.Forms.TextBox textBoxDescription; - private System.Windows.Forms.PictureBox logoPictureBox; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Panel panel3; - private System.Windows.Forms.Panel panel4; - private System.Windows.Forms.Panel panel5; - private System.Windows.Forms.Panel panel6; - private System.Windows.Forms.Panel panel7; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnEULA; - private System.Windows.Forms.Label labelVersionDateTime; - private System.Windows.Forms.Label labelServer; - private System.Windows.Forms.Label labelDatabase; - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutROEditor.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutROEditor.cs deleted file mode 100644 index ec1f1b9b..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutROEditor.cs +++ /dev/null @@ -1,166 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Windows.Forms; -using System.Reflection; - -namespace ROEditor -{ - partial class AboutROEditor : Form - { - public AboutROEditor() - { - InitializeComponent(); - - // Initialize the AboutBox to display the product information from the assembly information. - // Change assembly information settings for your application through either: - // - Project->Properties->Application->Assembly Information - // - AssemblyInfo.cs - //this.Text = String.Format("About {0}", AssemblyTitle); - //this.labelProductName.Text = AssemblyProduct; - //this.labelVersion.Text = String.Format("Version {0}", AssemblyVersion); - //this.labelCopyright.Text = AssemblyCopyright; - //this.labelCompanyName.Text = AssemblyCompany; - //this.textBoxDescription.Text = AssemblyDescription; - - // Initialize the AboutBox to display the product information from the assembly information. - // Change assembly information settings for your application through either: - // - Project->Properties->Application->Assembly Information - // - AssemblyInfo.cs - DateTime buildDateTime = new System.IO.FileInfo(Assembly.GetExecutingAssembly().Location).LastWriteTime; - // If the AssemblyConfiguration is "DEMO" then we are running a Demo version - string demoTxt = "";//VlnSettings.ReleaseMode.Equals("DEMO")?"(Demo)": ""; - //string connectionString = Database.VEPROMS_Connection; - //Match mServer = Regex.Match(connectionString,".*Data Source=([^;]*).*"); - //string server = (mServer.Success)?mServer.Groups[1].Value:"unknown"; - //if (server.StartsWith(@".\")) server = @"Local \ " + server.Substring(2); - //string databaseName = Database.SelectedDatabase; - this.Text = String.Format("About {0}", AssemblyTitle + " " + demoTxt); - this.labelProductName.Text = AssemblyProduct; - this.labelVersion.Text = String.Format("Version {0}", (demoTxt.Equals(""))? AssemblyVersion : demoTxt); - this.labelVersionDateTime.Text = String.Format("Build Date: {0}", buildDateTime.ToString()); - this.labelCopyright.Text = String.Format("Copyright {0}. All Rights Reserved.", buildDateTime.Year.ToString()); - this.labelCompanyName.Text = AssemblyCompany; -// this.textBoxDescription.Text = AssemblyDescription; - this.labelCompanyName.Links[0].LinkData = "Volian Enterprises Inc."; - this.labelCompanyName.Links.Add(0,23,"www.volian.com"); - //this.labelServer.Text = string.Format("SQL Server: {0}", server); - //this.labelDatabase.Text = string.Format("Database: {0}", databaseName); - - } - - #region Assembly Attribute Accessors - - public string AssemblyTitle - { - get - { - // Get all Title attributes on this assembly - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyTitleAttribute), false); - // If there is at least one Title attribute - if (attributes.Length > 0) - { - // Select the first one - AssemblyTitleAttribute titleAttribute = (AssemblyTitleAttribute)attributes[0]; - // If it is not an empty string, return it - if (titleAttribute.Title != "") - return titleAttribute.Title; - } - // If there was no Title attribute, or if the Title attribute was the empty string, return the .exe name - return System.IO.Path.GetFileNameWithoutExtension(Assembly.GetExecutingAssembly().CodeBase); - } - } - - public string AssemblyVersion - { - get - { - return Assembly.GetExecutingAssembly().GetName().Version.ToString(); - } - } - - public string AssemblyDescription - { - get - { - // Get all Description attributes on this assembly - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyDescriptionAttribute), false); - // If there aren't any Description attributes, return an empty string - if (attributes.Length == 0) - return ""; - // If there is a Description attribute, return its value - return ((AssemblyDescriptionAttribute)attributes[0]).Description; - } - } - - public string AssemblyProduct - { - get - { - // Get all Product attributes on this assembly - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyProductAttribute), false); - // If there aren't any Product attributes, return an empty string - if (attributes.Length == 0) - return ""; - // If there is a Product attribute, return its value - return ((AssemblyProductAttribute)attributes[0]).Product; - } - } - - //public string AssemblyCopyright - //{ - // get - // { - // // Get all Copyright attributes on this assembly - // object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCopyrightAttribute), false); - // // If there aren't any Copyright attributes, return an empty string - // if (attributes.Length == 0) - // return ""; - // // If there is a Copyright attribute, return its value - // return ((AssemblyCopyrightAttribute)attributes[0]).Copyright; - // } - //} - - public string AssemblyCompany - { - get - { - // Get all Company attributes on this assembly - object[] attributes = Assembly.GetExecutingAssembly().GetCustomAttributes(typeof(AssemblyCompanyAttribute), false); - // If there aren't any Company attributes, return an empty string - if (attributes.Length == 0) - return ""; - // If there is a Company attribute, return its value - return ((AssemblyCompanyAttribute)attributes[0]).Company; - } - } - #endregion - private void labelCompanyName_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) - { - // Determine which link was clicked within the LinkLabel. - this.labelCompanyName.Links[0].Visited = true; - - // Display the appropriate link based on the value of the - // LinkData property of the Link object. - string target = e.Link.LinkData as string; - - System.Diagnostics.Process.Start(target); // this should start the default web browser - } - - private void logoPictureBox_Click(object sender, EventArgs e) - { - System.Diagnostics.Process.Start(labelCompanyName.Links[0].LinkData as string); // this should start the default web browser - } - - private void btnViewEULA_Click(object sender, EventArgs e) - { - //string EulaFile = string.Format(@"\{0}", VlnSettings.EULAfile); - //string strEULA = System.Environment.CurrentDirectory + EulaFile; - //frmViewTextFile ViewFile = new frmViewTextFile(strEULA,RichTextBoxStreamType.PlainText); - //ViewFile.Text = "End-User License Agreement"; - //ViewFile.ShowDialog(); - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutROEditor.resx b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutROEditor.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AboutROEditor.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/App.ico b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/App.ico deleted file mode 100644 index 7a50cb61..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/App.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AssemblyInfo.cs deleted file mode 100644 index f1adcaa6..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AssemblyInfo.cs +++ /dev/null @@ -1,69 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("RO Editor")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Volian Enterprises Inc.")] -[assembly: AssemblyProduct("Referenced Objects Editor")] -[assembly: AssemblyCopyright("2013")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build YYMM (two digit year, two digit month) -// Revision DHH (day - no leading zero, two digit hour - military time -// -[assembly: AssemblyVersion("1.0.1303.2513")] -[assembly: AssemblyFileVersion("1.0.1303.2513")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Cancel.ico b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Cancel.ico deleted file mode 100644 index b008e086..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Cancel.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Cert_prt_rgb_70x32.gif b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Cert_prt_rgb_70x32.gif deleted file mode 100644 index 421f061b..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Cert_prt_rgb_70x32.gif and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Copy.ico b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Copy.ico deleted file mode 100644 index 000bed12..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Copy.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldCombFrm.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldCombFrm.cs deleted file mode 100644 index 64fcc1e7..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldCombFrm.cs +++ /dev/null @@ -1,588 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: FieldCombFrm.cs $ $Revision: 12 $ - * $Author: Kathy $ $Date: 5/21/03 12:45p $ - * - * $History: FieldCombFrm.cs $ - * - * ***************** Version 12 ***************** - * User: Kathy Date: 5/21/03 Time: 12:45p - * Updated in $/EXE/RefObj/ROEditor - * B2003-041: edit field name not always set - * - * ***************** Version 11 ***************** - * User: Kathy Date: 12/11/02 Time: 11:22a - * Updated in $/EXE/RefObj/ROEditor - * fixed - was always putting up Variable field, even if not defined - * - * ***************** Version 10 ***************** - * User: Kathy Date: 12/10/02 Time: 2:25p - * Updated in $/EXE/RefObj/ROEditor - * fieldname special chars - * - * ***************** Version 9 ***************** - * User: Kathy Date: 12/02/02 Time: 8:29a - * Updated in $/EXE/RefObj/ROEditor - * fieldname replace chars - * - * ***************** Version 8 ***************** - * User: Kathy Date: 12/02/02 Time: 6:13a - * Updated in $/EXE/RefObj/ROEditor - * combo field fix - * - * ***************** Version 7 ***************** - * User: Kathy Date: 10/15/02 Time: 2:17p - * Updated in $/EXE/RefObj/ROEditor - * wasn't finding variable text - * - * ***************** Version 6 ***************** - * User: Kathy Date: 9/27/02 Time: 1:13p - * Updated in $/EXE/RefObj/ROEditor - * fix digit as first char in fieldname - * - * ***************** Version 5 ***************** - * User: Kathy Date: 9/25/02 Time: 2:30p - * Updated in $/EXE/RefObj/ROEditor - * multitxt->variabletxt - * - * ***************** Version 4 ***************** - * User: Kathy Date: 9/25/02 Time: 9:56a - * Updated in $/EXE/RefObj/ROEditor - * dev - * - * ***************** Version 3 ***************** - * User: Kathy Date: 9/11/02 Time: 1:15p - * Updated in $/EXE/RefObj/ROEditor - * vlnxml - * - * ***************** Version 2 ***************** - * User: Kathy Date: 9/05/02 Time: 12:41p - * Updated in $/EXE/RefObj/ROEditor - * dev - * - * ***************** Version 1 ***************** - * User: Jsj Date: 8/23/02 Time: 3:33p - * Created in $/EXE/RefObj/ROEditor - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Xml; -using System.Xml.Schema; -using System.Text; -using ROFields; -using RODBInterface; - -namespace ROEditor -{ - /// - /// Summary description for FieldCombFrm. - /// - public class FieldCombFrm : System.Windows.Forms.Form - { - private System.Windows.Forms.Label lblFieldName; - private System.Windows.Forms.TextBox tbFieldName; - private System.Windows.Forms.GroupBox gbAlternatives; - private System.Windows.Forms.CheckBox cbSingleTxt; - private System.Windows.Forms.CheckBox cbVariableTxt; - private System.Windows.Forms.CheckBox cbTable; - private System.Windows.Forms.CheckBox cbXYPlot; - private System.Windows.Forms.Label lblW1; - private System.Windows.Forms.Label lblW2; - private System.Windows.Forms.Label lblW3; - private System.Windows.Forms.Label lblW4; - private System.Windows.Forms.TextBox tbSingleTxtWid; - private System.Windows.Forms.TextBox tbVariableTxtWid; - private System.Windows.Forms.TextBox tbTableWid; - private System.Windows.Forms.TextBox tbXYPlotWid; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private ROField myrof; - private RODB myrodb; - private VlnXmlElement myelem; - private string origname; - private int origFixedLength=0; - private int origVariableTxtLength = 0; - private int origTableLength = 0; - private int origXYPlotLength = 0; - private ArrayList avail_list; - private ArrayList inuse_list; - private uint editlevel; - private bool exists = false; - public FieldCombFrm(ROField rof, RODB rodb, VlnXmlElement elem, uint elevel, string oname, ArrayList alist, ArrayList ilist) - { - int idx; - string strlen; - string fielddef; - // - // Required for Windows Form Designer support - // - myrof = rof; - myrodb = rodb; - myelem = elem; - editlevel = elevel; - avail_list = alist; - inuse_list = ilist; - InitializeComponent(); - this.tbFieldName.Text = rof.GetFieldname; - origname = oname; - - if (rof.GetRecID != null) // it's new if it's null - { - exists = true; - string recid = rof.GetMasterRecID; - if (recid != null && recid != "") - fielddef = myrodb.RODB_GetSchemaPiece(recid,"ROMaster"); - else - fielddef = myrodb.RODB_GetSchemaPiece(rof.GetRecID,myelem.GetAttribute("Table")); - // search for combination items included & their original length. - idx = fielddef.IndexOf("Fixed"); - if (idx >= 0) - { - idx=fielddef.IndexOf("xsd:maxLength value=\"",idx); - strlen = fielddef.Substring(idx+21,2); - origFixedLength = System.Convert.ToInt32(strlen); - this.tbSingleTxtWid.Text = strlen; - this.cbSingleTxt.Checked = true; - } - else - this.cbSingleTxt.Checked = false; - idx = fielddef.IndexOf("type=\"Variable"); - if (idx >= 0) - { - idx=fielddef.IndexOf("xsd:maxLength value=\"",idx); - strlen = fielddef.Substring(idx+21,2); - origVariableTxtLength = System.Convert.ToInt32(strlen); - this.tbVariableTxtWid.Text = strlen; - this.cbVariableTxt.Checked = true; - } - else - this.cbVariableTxt.Checked = false; - idx = fielddef.IndexOf("Table"); - if (idx >= 0) - { - idx=fielddef.IndexOf("xsd:maxLength value=\"",idx); - strlen = fielddef.Substring(idx+21,2); - origTableLength = System.Convert.ToInt32(strlen); - this.tbTableWid.Text = strlen; - this.cbTable.Checked = true; - } - else - this.cbTable.Checked = false; - idx = fielddef.IndexOf("XYPlot"); - if (idx >= 0) - { - idx=fielddef.IndexOf("xsd:maxLength value=\"",idx); - strlen = fielddef.Substring(idx+21,2); - origXYPlotLength = System.Convert.ToInt32(strlen); - this.tbXYPlotWid.Text = strlen; - this.cbXYPlot.Checked = true; - } - else - this.cbXYPlot.Checked = false; - } - - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.lblFieldName = new System.Windows.Forms.Label(); - this.tbFieldName = new System.Windows.Forms.TextBox(); - this.gbAlternatives = new System.Windows.Forms.GroupBox(); - this.tbXYPlotWid = new System.Windows.Forms.TextBox(); - this.tbTableWid = new System.Windows.Forms.TextBox(); - this.tbVariableTxtWid = new System.Windows.Forms.TextBox(); - this.tbSingleTxtWid = new System.Windows.Forms.TextBox(); - this.lblW4 = new System.Windows.Forms.Label(); - this.lblW3 = new System.Windows.Forms.Label(); - this.lblW2 = new System.Windows.Forms.Label(); - this.lblW1 = new System.Windows.Forms.Label(); - this.cbXYPlot = new System.Windows.Forms.CheckBox(); - this.cbTable = new System.Windows.Forms.CheckBox(); - this.cbVariableTxt = new System.Windows.Forms.CheckBox(); - this.cbSingleTxt = new System.Windows.Forms.CheckBox(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.gbAlternatives.SuspendLayout(); - this.SuspendLayout(); - // - // lblFieldName - // - this.lblFieldName.Location = new System.Drawing.Point(16, 8); - this.lblFieldName.Name = "lblFieldName"; - this.lblFieldName.Size = new System.Drawing.Size(72, 16); - this.lblFieldName.TabIndex = 0; - this.lblFieldName.Text = "Field Name:"; - // - // tbFieldName - // - this.tbFieldName.Location = new System.Drawing.Point(96, 8); - this.tbFieldName.Name = "tbFieldName"; - this.tbFieldName.Size = new System.Drawing.Size(384, 22); - this.tbFieldName.TabIndex = 1; - this.tbFieldName.Text = ""; - // - // gbAlternatives - // - this.gbAlternatives.Controls.AddRange(new System.Windows.Forms.Control[] { - this.tbXYPlotWid, - this.tbTableWid, - this.tbVariableTxtWid, - this.tbSingleTxtWid, - this.lblW4, - this.lblW3, - this.lblW2, - this.lblW1, - this.cbXYPlot, - this.cbTable, - this.cbVariableTxt, - this.cbSingleTxt}); - this.gbAlternatives.Location = new System.Drawing.Point(16, 48); - this.gbAlternatives.Name = "gbAlternatives"; - this.gbAlternatives.Size = new System.Drawing.Size(464, 152); - this.gbAlternatives.TabIndex = 2; - this.gbAlternatives.TabStop = false; - this.gbAlternatives.Text = "Alternatives"; - // - // tbXYPlotWid - // - this.tbXYPlotWid.Location = new System.Drawing.Point(320, 120); - this.tbXYPlotWid.Name = "tbXYPlotWid"; - this.tbXYPlotWid.Size = new System.Drawing.Size(40, 22); - this.tbXYPlotWid.TabIndex = 11; - this.tbXYPlotWid.Text = ""; - // - // tbTableWid - // - this.tbTableWid.Location = new System.Drawing.Point(320, 88); - this.tbTableWid.Name = "tbTableWid"; - this.tbTableWid.Size = new System.Drawing.Size(40, 22); - this.tbTableWid.TabIndex = 10; - this.tbTableWid.Text = ""; - // - // tbVariableTxtWid - // - this.tbVariableTxtWid.Location = new System.Drawing.Point(320, 56); - this.tbVariableTxtWid.Name = "tbVariableTxtWid"; - this.tbVariableTxtWid.Size = new System.Drawing.Size(40, 22); - this.tbVariableTxtWid.TabIndex = 9; - this.tbVariableTxtWid.Text = ""; - // - // tbSingleTxtWid - // - this.tbSingleTxtWid.Location = new System.Drawing.Point(320, 24); - this.tbSingleTxtWid.Name = "tbSingleTxtWid"; - this.tbSingleTxtWid.Size = new System.Drawing.Size(40, 22); - this.tbSingleTxtWid.TabIndex = 8; - this.tbSingleTxtWid.Text = ""; - // - // lblW4 - // - this.lblW4.Location = new System.Drawing.Point(264, 120); - this.lblW4.Name = "lblW4"; - this.lblW4.Size = new System.Drawing.Size(56, 16); - this.lblW4.TabIndex = 7; - this.lblW4.Text = "Width:"; - // - // lblW3 - // - this.lblW3.Location = new System.Drawing.Point(264, 96); - this.lblW3.Name = "lblW3"; - this.lblW3.Size = new System.Drawing.Size(56, 16); - this.lblW3.TabIndex = 6; - this.lblW3.Text = "Width:"; - // - // lblW2 - // - this.lblW2.Location = new System.Drawing.Point(264, 64); - this.lblW2.Name = "lblW2"; - this.lblW2.Size = new System.Drawing.Size(56, 16); - this.lblW2.TabIndex = 5; - this.lblW2.Text = "Width:"; - // - // lblW1 - // - this.lblW1.Location = new System.Drawing.Point(264, 32); - this.lblW1.Name = "lblW1"; - this.lblW1.Size = new System.Drawing.Size(56, 16); - this.lblW1.TabIndex = 4; - this.lblW1.Text = "Width:"; - // - // cbXYPlot - // - this.cbXYPlot.Location = new System.Drawing.Point(16, 120); - this.cbXYPlot.Name = "cbXYPlot"; - this.cbXYPlot.Size = new System.Drawing.Size(144, 24); - this.cbXYPlot.TabIndex = 3; - this.cbXYPlot.Text = "X/Y Plot"; - // - // cbTable - // - this.cbTable.Location = new System.Drawing.Point(16, 88); - this.cbTable.Name = "cbTable"; - this.cbTable.Size = new System.Drawing.Size(144, 24); - this.cbTable.TabIndex = 2; - this.cbTable.Text = "Table"; - // - // cbVariableTxt - // - this.cbVariableTxt.Location = new System.Drawing.Point(16, 56); - this.cbVariableTxt.Name = "cbVariableTxt"; - this.cbVariableTxt.Size = new System.Drawing.Size(144, 24); - this.cbVariableTxt.TabIndex = 1; - this.cbVariableTxt.Text = "Variable Line Text"; - // - // cbSingleTxt - // - this.cbSingleTxt.Location = new System.Drawing.Point(16, 24); - this.cbSingleTxt.Name = "cbSingleTxt"; - this.cbSingleTxt.Size = new System.Drawing.Size(144, 24); - this.cbSingleTxt.TabIndex = 0; - this.cbSingleTxt.Text = "Single Line Text"; - // - // btnOK - // - this.btnOK.Location = new System.Drawing.Point(264, 216); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(88, 24); - this.btnOK.TabIndex = 3; - this.btnOK.Text = "OK"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(392, 216); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(88, 24); - this.btnCancel.TabIndex = 4; - this.btnCancel.Text = "Cancel"; - // - // FieldCombFrm - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(504, 253); - this.Controls.AddRange(new System.Windows.Forms.Control[] { - this.btnCancel, - this.btnOK, - this.gbAlternatives, - this.tbFieldName, - this.lblFieldName}); - this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.Name = "FieldCombFrm"; - this.Text = "Combination Field Definition"; - this.gbAlternatives.ResumeLayout(false); - this.ResumeLayout(false); - - } - #endregion - - private string CvtUserFldToFld(string fldname) - { - if (fldname.Length < 2) - return fldname; - // a digit cannot start an xml fieldname, prepend a "__" to it. - string tmp0; - if (char.IsDigit(fldname,0)) - tmp0 = "__" + fldname; - else - tmp0 = fldname; - // an xml fieldname cannot have a space, change it to a "__" - string tmpstr = tmp0.Replace(" ","__"); - int len = tmpstr.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - return outstr; - } - - private bool CheckValidWidth(string wid) - { - long val; - try - { - // Attempt to convert to long, if it fails, there are problems in the text - val = System.Convert.ToInt64(wid); - } - catch - { - MessageBox.Show("The field width is not a valid number. Please re-enter"); - return false; - } - return true; - } - - private void btnOK_Click(object sender, System.EventArgs e) - { - string savschemapiece; - bool success=false; - - // check for field validity - if (this.tbFieldName.Text == null) - { - MessageBox.Show("Cannot have empty field definition name."); - return; - } - - if (this.cbSingleTxt.Checked == true && this.tbSingleTxtWid.Text == null) - { - MessageBox.Show("Cannot have empty width for Single Line Text"); - return; - } - if (this.cbSingleTxt.Checked == true) - { - success=CheckValidWidth(this.tbSingleTxtWid.Text); - if (success == false) return; - } - - if (this.cbVariableTxt.Checked == true && this.tbVariableTxtWid.Text == null) - { - MessageBox.Show("Cannot have empty width for Variable Length Text"); - return; - } - if (this.cbVariableTxt.Checked == true) - { - success=CheckValidWidth(this.tbSingleTxtWid.Text); - if (success == false) return; - } - - if (this.cbTable.Checked == true && this.tbTableWid.Text == null) - { - MessageBox.Show("Cannot have empty width for Table Text"); - return; - } - if (this.cbTable.Checked == true) - { - success=CheckValidWidth(this.tbTableWid.Text); - if (success == false) return; - } - - if (this.cbXYPlot.Checked == true && this.tbXYPlotWid.Text == null) - { - MessageBox.Show("Cannot have empty width for XYPlot Text"); - return; - } - if (this.cbXYPlot.Checked == true) - { - success=CheckValidWidth(this.tbXYPlotWid.Text); - if (success == false) return; - } - - // check that it is not duplicate name. - ROField rof; - for (int i=0; i< avail_list.Count; i++) - { - rof = (ROField) avail_list[i]; - if (rof.GetFieldname == this.tbFieldName.Text && rof.GetRecID != myrof.GetRecID) - { - MessageBox.Show("The field name is not unique. Please re-enter"); - return; - } - } - for (int i=0; i< inuse_list.Count; i++) - { - rof = (ROField) inuse_list[i]; - if (rof.GetFieldname == this.tbFieldName.Text && rof.GetRecID != myrof.GetRecID) - { - MessageBox.Show("The field name is not unique. Please re-enter"); - return; - } - } - - // generate the new schema string based on text box input. - string fname=CvtUserFldToFld(this.tbFieldName.Text); - savschemapiece = myrof.MakeComboSchemaString(fname, this.cbSingleTxt.Checked, - this.tbSingleTxtWid.Text, this.cbVariableTxt.Checked, this.tbVariableTxtWid.Text, - this.cbTable.Checked, this.tbTableWid.Text, this.cbXYPlot.Checked, this.tbXYPlotWid.Text); - myrof.SetFieldname(fname); - // if this is 'new'. create a new element and do an insert to database - if (exists == false) - success = myrodb.RODB_NewFieldRecord(myrof, myelem, savschemapiece, editlevel, "a"); - else // modification of existing... - success = myrodb.RODB_UpdateFieldRecord(myrof, myelem, savschemapiece, CvtUserFldToFld(origname), fname, editlevel, true); - - // update the local/internal copy of the schema. - if (success != true) - { - return; // DO YET process an error. - } - else - { - // if this is a RRO schema, reload. We're not reloading the group schema - // because it is rarely used and is only loaded as needed. - if (editlevel == (uint) RecordType.Schema) - { - XmlSchema myschema; - VlnXmlElement parent; - parent = myelem; - while (parent != null) - { - if (parent.HasAttribute("Schema") == true) break; - if (parent.HasAttribute("FieldsInUse") == true) break; - parent = (VlnXmlElement) parent.ParentNode; - } - // if a schema has been read in, delete it and reread it. - if (parent.HasAttribute("Schema")) - { - // delete this attribute because we'll reread it in. - parent.RemoveAttribute("Schema"); - myschema = myrodb.RODB_GetSchema(myelem); - } - } - - } - - - this.Close(); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldCombFrm.resx b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldCombFrm.resx deleted file mode 100644 index 2a46b324..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldCombFrm.resx +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - FieldCombFrm - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTextFrm.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTextFrm.cs deleted file mode 100644 index a3f29b8a..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTextFrm.cs +++ /dev/null @@ -1,425 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: FieldTextFrm.cs $ $Revision: 12 $ - * $Author: Kathy $ $Date: 7/15/04 11:11a $ - * - * $History: FieldTextFrm.cs $ - * - * ***************** Version 12 ***************** - * User: Kathy Date: 7/15/04 Time: 11:11a - * Updated in $/EXE/RefObj/ROEditor - * Fix B2004-015 - * - * ***************** Version 11 ***************** - * User: Kathy Date: 12/09/03 Time: 9:29a - * Updated in $/EXE/RefObj/ROEditor - * B2003-066 fix - add new fieldname crash - * - * ***************** Version 10 ***************** - * User: Kathy Date: 5/21/03 Time: 12:46p - * Updated in $/EXE/RefObj/ROEditor - * B2003-041: edit of field name didn't always save - * - * ***************** Version 9 ***************** - * User: Kathy Date: 12/10/02 Time: 2:25p - * Updated in $/EXE/RefObj/ROEditor - * fieldname special chars - * - * ***************** Version 8 ***************** - * User: Kathy Date: 12/02/02 Time: 8:29a - * Updated in $/EXE/RefObj/ROEditor - * fieldname replace chars - * - * ***************** Version 7 ***************** - * User: Kathy Date: 12/02/02 Time: 6:13a - * Updated in $/EXE/RefObj/ROEditor - * added arg on db call - * - * ***************** Version 6 ***************** - * User: Kathy Date: 11/19/02 Time: 11:31a - * Updated in $/EXE/RefObj/ROEditor - * add wait cursor for long op - * - * ***************** Version 5 ***************** - * User: Kathy Date: 9/27/02 Time: 1:13p - * Updated in $/EXE/RefObj/ROEditor - * fix digit as first char in fieldname - * - * ***************** Version 4 ***************** - * User: Kathy Date: 9/25/02 Time: 9:56a - * Updated in $/EXE/RefObj/ROEditor - * dev - * - * ***************** Version 3 ***************** - * User: Kathy Date: 9/11/02 Time: 1:15p - * Updated in $/EXE/RefObj/ROEditor - * vlnxml - * - * ***************** Version 2 ***************** - * User: Kathy Date: 9/05/02 Time: 12:41p - * Updated in $/EXE/RefObj/ROEditor - * dev - * - * ***************** Version 1 ***************** - * User: Jsj Date: 8/23/02 Time: 3:33p - * Created in $/EXE/RefObj/ROEditor - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Xml; -using System.Xml.Schema; -using System.Text; -using ROFields; -using RODBInterface; - -namespace ROEditor -{ - /// - /// Summary description for FieldText. - /// - public class FieldTextFrm : System.Windows.Forms.Form - { - private System.Windows.Forms.Label lblFName; - private System.Windows.Forms.Label lblWidth; - private System.Windows.Forms.TextBox tbFieldName; - private System.Windows.Forms.TextBox tbWidth; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Label lblPattern; - private System.Windows.Forms.TextBox tbPattern; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - private ROField myrof; - private RODB myrodb; - private VlnXmlElement myelem; - private string schemapiece; - private string origname; - private bool exists=false; - private uint original_type; - private uint editlevel; - private ArrayList avail_list; - private ArrayList inuse_list; - public FieldTextFrm(ROField rof, RODB rodb, VlnXmlElement elem, uint otype, uint elevel, string oname, ArrayList alist, ArrayList ilist) - { - // - // Required for Windows Form Designer support - // - myrodb = rodb; - myelem = elem; - myrof = rof; - original_type = otype; - editlevel = elevel; - avail_list = alist; - inuse_list = ilist; - uint ftype = rof.GetFieldType; - // origname is the original name if this is a modification of a fieldname - // if it's new, it will be null - if(oname!=null)origname=CvtUserFldToFld(oname); - InitializeComponent(); - - if (ftype == (uint)FieldTypes.FrmtSingleTxt) - { - this.tbPattern.Visible = true; - this.lblPattern.Visible = true; - } - else - { - this.tbPattern.Visible = false; - this.lblPattern.Visible = false; - } - - // put name out. and if it's an existing field get current data to - // put out. - this.tbFieldName.Text = rof.GetFieldname; - if (rof.GetRecID != null) - { - exists = true; - if (rof.GetMasterRecID != null) - // get it from the master, else read in the definition from - // the local table - schemapiece = myrodb.RODB_GetSchemaPiece(rof.GetMasterRecID,"ROMaster"); - else - schemapiece = myrodb.RODB_GetSchemaPiece(rof.GetRecID,myelem.GetAttribute("Table")); - int indxs = schemapiece.IndexOf("maxLength value="); - int indxe = schemapiece.IndexOf("\"",indxs+17); // +17, get past maxLength value =" - this.tbWidth.Text = schemapiece.Substring(indxs+17,indxe-(indxs+17)); - - // get pattern too. - if (ftype == (uint)FieldTypes.FrmtSingleTxt) - { - indxs = schemapiece.IndexOf("pattern value="); - indxe = schemapiece.IndexOf("\"",indxs+15); - this.tbPattern.Text = schemapiece.Substring(indxs+15,indxe-(indxs+15)); - } - } - } - - private string CvtUserFldToFld(string fldname) - { - if (fldname.Length < 2) - return fldname; - // a digit cannot start an xml fieldname, prepend a "__" to it. - string tmp0; - if (char.IsDigit(fldname,0)) - tmp0 = "__" + fldname; - else - tmp0 = fldname; - // an xml fieldname cannot have a space, change it to a "__" - string tmpstr = tmp0.Replace(" ","__"); - int len = tmpstr.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - return outstr; - } - - private bool CheckValidWidth(string wid) - { - long val; - try { - // Attempt to convert to long, if it fails, there are problems in the text - val = System.Convert.ToInt64(wid); - } - catch { - MessageBox.Show("The field width is not a valid number. Please re-enter"); - return false; - } - return true; - } - - private void btnOK_Click(object sender, System.EventArgs e) - { - string savschemapiece; - bool success=false; - - // check for field validity - if (this.tbFieldName.Text == null || this.tbWidth.Text == null) - { - MessageBox.Show("Cannot have empty field defintion name or width"); - return; - } - success=CheckValidWidth(this.tbWidth.Text); - if (success == false) return; - // check that it is not duplicate name. - ROField rof; - for (int i=0; i< avail_list.Count; i++) - { - rof = (ROField) avail_list[i]; - if (rof.GetFieldname == this.tbFieldName.Text && rof.GetRecID != myrof.GetRecID) - { - MessageBox.Show("The field name is not unique. Please re-enter"); - return; - } - } - for (int i=0; i< inuse_list.Count; i++) - { - rof = (ROField) inuse_list[i]; - if (rof.GetFieldname == this.tbFieldName.Text && rof.GetRecID != myrof.GetRecID) - { - MessageBox.Show("The field name is not unique. Please re-enter"); - return; - } - } - - // generate the new schema string based on text box input. - string fname=CvtUserFldToFld(this.tbFieldName.Text); - savschemapiece = myrof.MakeSchemaString(fname, this.tbWidth.Text, this.tbPattern.Text); - myrof.SetFieldname(fname); - // if this is 'new'. create a new element and do an insert to Master database - if (exists == false) - success = myrodb.RODB_NewFieldRecord(myrof, myelem, savschemapiece, editlevel, null); - else // modification of existing.... - { - Cursor.Current = Cursors.WaitCursor; - success = myrodb.RODB_UpdateFieldRecord(myrof, myelem, savschemapiece, origname, fname, editlevel, false); - Cursor.Current = Cursors.Default; - } - - if (success != true) - { - return; // DO YET process an error. - } - else - { - // if this is a RRO schema, reload. We're not reloading the group schema - // because it is rarely used and is only loaded as needed. - if (editlevel == (uint) RecordType.Schema) - { - XmlSchema myschema; - VlnXmlElement parent; - parent = myelem; - while (parent != null) - { - if (parent.HasAttribute("Schema") == true) break; - if (parent.HasAttribute("FieldsInUse") == true) break; - // If loop to top, fields haven't been defined yet, don't - // crash on caste - just set to return null (B2004-015) - if (parent.ParentNode is VlnXmlElement) - parent = (VlnXmlElement) parent.ParentNode; - else - parent = null; - } - // if a schema has been read in, delete it and reread it. - if (parent !=null && parent.HasAttribute("Schema")) - { - // delete this attribute because we'll reread it in. - parent.RemoveAttribute("Schema"); - myschema = myrodb.RODB_GetSchema(myelem); - } - } - - } - this.Close(); - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.lblFName = new System.Windows.Forms.Label(); - this.lblWidth = new System.Windows.Forms.Label(); - this.tbFieldName = new System.Windows.Forms.TextBox(); - this.tbWidth = new System.Windows.Forms.TextBox(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.lblPattern = new System.Windows.Forms.Label(); - this.tbPattern = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // lblFName - // - this.lblFName.Location = new System.Drawing.Point(16, 16); - this.lblFName.Name = "lblFName"; - this.lblFName.Size = new System.Drawing.Size(80, 16); - this.lblFName.TabIndex = 0; - this.lblFName.Text = "Field Name:"; - // - // lblWidth - // - this.lblWidth.Location = new System.Drawing.Point(16, 40); - this.lblWidth.Name = "lblWidth"; - this.lblWidth.Size = new System.Drawing.Size(72, 16); - this.lblWidth.TabIndex = 1; - this.lblWidth.Text = "Width:"; - // - // tbFieldName - // - this.tbFieldName.Location = new System.Drawing.Point(104, 8); - this.tbFieldName.Name = "tbFieldName"; - this.tbFieldName.Size = new System.Drawing.Size(320, 22); - this.tbFieldName.TabIndex = 2; - this.tbFieldName.Text = ""; - // - // tbWidth - // - this.tbWidth.Location = new System.Drawing.Point(104, 40); - this.tbWidth.Name = "tbWidth"; - this.tbWidth.Size = new System.Drawing.Size(32, 22); - this.tbWidth.TabIndex = 3; - this.tbWidth.Text = ""; - // - // btnOK - // - this.btnOK.Location = new System.Drawing.Point(216, 72); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(88, 24); - this.btnOK.TabIndex = 4; - this.btnOK.Text = "OK"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(336, 72); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(88, 24); - this.btnCancel.TabIndex = 5; - this.btnCancel.Text = "Cancel"; - // - // lblPattern - // - this.lblPattern.Location = new System.Drawing.Point(160, 40); - this.lblPattern.Name = "lblPattern"; - this.lblPattern.Size = new System.Drawing.Size(48, 16); - this.lblPattern.TabIndex = 6; - this.lblPattern.Text = "Pattern:"; - this.lblPattern.Visible = false; - // - // tbPattern - // - this.tbPattern.Location = new System.Drawing.Point(224, 40); - this.tbPattern.Name = "tbPattern"; - this.tbPattern.Size = new System.Drawing.Size(176, 22); - this.tbPattern.TabIndex = 7; - this.tbPattern.Text = ""; - this.tbPattern.Visible = false; - // - // FieldTextFrm - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(464, 101); - this.Controls.AddRange(new System.Windows.Forms.Control[] { - this.tbPattern, - this.lblPattern, - this.btnCancel, - this.btnOK, - this.tbWidth, - this.tbFieldName, - this.lblWidth, - this.lblFName}); - this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.Name = "FieldTextFrm"; - this.Text = "Text Field Definition"; - this.ResumeLayout(false); - - } - #endregion - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTextFrm.resx b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTextFrm.resx deleted file mode 100644 index 5acd684b..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTextFrm.resx +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - FieldTextFrm - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTypeDefFrm.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTypeDefFrm.cs deleted file mode 100644 index c5498ffa..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTypeDefFrm.cs +++ /dev/null @@ -1,435 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: FieldTypeDefFrm.cs $ $Revision: 11 $ - * $Author: Kathy $ $Date: 5/21/03 12:49p $ - * - * $History: FieldTypeDefFrm.cs $ - * - * ***************** Version 11 ***************** - * User: Kathy Date: 5/21/03 Time: 12:49p - * Updated in $/EXE/RefObj/ROEditor - * B2003-041: edit of fieldname didn't always save - * - * ***************** Version 10 ***************** - * User: Kathy Date: 12/10/02 Time: 2:25p - * Updated in $/EXE/RefObj/ROEditor - * fieldname special chars - * - * ***************** Version 9 ***************** - * User: Kathy Date: 12/02/02 Time: 8:29a - * Updated in $/EXE/RefObj/ROEditor - * fieldname replace chars - * - * ***************** Version 8 ***************** - * User: Kathy Date: 12/02/02 Time: 6:17a - * Updated in $/EXE/RefObj/ROEditor - * added arg and close form - * - * ***************** Version 7 ***************** - * User: Kathy Date: 9/27/02 Time: 1:13p - * Updated in $/EXE/RefObj/ROEditor - * fix digit as first char in fieldname - * - * ***************** Version 6 ***************** - * User: Kathy Date: 9/25/02 Time: 2:30p - * Updated in $/EXE/RefObj/ROEditor - * multitxt->variable - * - * ***************** Version 5 ***************** - * User: Kathy Date: 9/25/02 Time: 9:56a - * Updated in $/EXE/RefObj/ROEditor - * dev - * - * ***************** Version 4 ***************** - * User: Kathy Date: 9/11/02 Time: 1:15p - * Updated in $/EXE/RefObj/ROEditor - * vlnxml - * - * ***************** Version 3 ***************** - * User: Kathy Date: 9/05/02 Time: 12:41p - * Updated in $/EXE/RefObj/ROEditor - * dev - * - * ***************** Version 2 ***************** - * User: Kathy Date: 8/30/02 Time: 9:43a - * Updated in $/EXE/RefObj/ROEditor - * image def - * - * ***************** Version 1 ***************** - * User: Jsj Date: 8/23/02 Time: 3:34p - * Created in $/EXE/RefObj/ROEditor - *********************************************************************************************/ - - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Xml; -using System.Text; -using RODBInterface; -using ROFields; - -namespace ROEditor -{ - /// - /// Summary description for FieldType. - /// - /// - - public class FieldTypeDefFrm : System.Windows.Forms.Form - { - private System.Windows.Forms.Label lblFldName; - private System.Windows.Forms.TextBox tbFieldName; - private System.Windows.Forms.GroupBox gbFldType; - private System.Windows.Forms.RadioButton rbSingleLine; - private System.Windows.Forms.RadioButton rbFormSingleLine; - private System.Windows.Forms.RadioButton rbVariableTxt; - private System.Windows.Forms.RadioButton rbTable; - private System.Windows.Forms.RadioButton rbXYPlot; - private System.Windows.Forms.RadioButton rbImage; - private System.Windows.Forms.RadioButton rbCombination; - private System.Windows.Forms.RadioButton rbMultiple; - private System.Windows.Forms.Button btnContinue; - private System.Windows.Forms.Button btnCancel; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private ROField myrof; - private RODB myrodb; - private VlnXmlElement myelem; - private uint original_type=0; - private string origname; - private uint editlevel; - private ArrayList avlist; // available list from rodef form - private ArrayList iulist; // inuse list from rodef form - public FieldTypeDefFrm(ROField rof, RODB rodb, VlnXmlElement elem, uint elevel, ArrayList alist, ArrayList ilist) - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - myrof = rof; - myrodb = rodb; - myelem = elem; - editlevel = elevel; - avlist = alist; - iulist = ilist; - origname = null; - - if (rof.GetFieldname != null) // initialize some values. - { - origname = CvtUserFldToFld(rof.GetFieldname); - original_type = rof.GetFieldType; - uint ftype = rof.GetFieldType; - this.tbFieldName.Text = rof.GetFieldname; - // disable image, because it's only enabled for image type. - this.rbImage.Enabled = false; - if (ftype == (uint)FieldTypes.Combination) - this.rbCombination.Checked = true; - else if (ftype == (uint)FieldTypes.FrmtSingleTxt) - this.rbFormSingleLine.Checked = true; - else if (ftype == (uint)FieldTypes.Image) - { - this.rbImage.Enabled = true; - this.rbImage.Checked = true; - // for image - you can't change it's type. - this.rbCombination.Enabled = false; - this.rbFormSingleLine.Enabled = false; - this.rbVariableTxt.Enabled = false; - this.rbSingleLine.Enabled = false; - this.rbTable.Enabled = false; - this.rbXYPlot.Enabled = false; - } - else if (ftype == (uint)FieldTypes.VariableTxt) - this.rbVariableTxt.Checked = true; - else if (ftype == (uint)FieldTypes.SingleTxt) - this.rbSingleLine.Checked = true; - else if (ftype == (uint)FieldTypes.Table) - this.rbTable.Checked = true; - else if (ftype == (uint)FieldTypes.XYPlot) - this.rbXYPlot.Checked = true; - else - return; - } - } - - private string CvtUserFldToFld(string fldname) - { - if (fldname.Length < 2) - return fldname; - // a digit cannot start an xml fieldname, prepend a "__" to it. - string tmp0; - if (char.IsDigit(fldname,0)) - tmp0 = "__" + fldname; - else - tmp0 = fldname; - // an xml fieldname cannot have a space, change it to a "__" - string tmpstr = tmp0.Replace(" ","__"); - int len = tmpstr.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - return outstr; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - private void btnContinue_Click(object sender, System.EventArgs e) - { - if (this.tbFieldName.Text == "") - { - MessageBox.Show("Cannot have empty field name."); - return; - } - - myrof.SetFieldname(this.tbFieldName.Text); - uint ftype=0; - if (this.rbSingleLine.Checked == true) - ftype = (uint)FieldTypes.SingleTxt; - else if (this.rbFormSingleLine.Checked == true) - ftype = (uint)FieldTypes.FrmtSingleTxt; - else if (this.rbVariableTxt.Checked == true) - ftype = (uint)FieldTypes.VariableTxt; - else if (this.rbTable.Checked == true) - ftype = (uint)FieldTypes.Table; - else if (this.rbXYPlot.Checked == true) - ftype = (uint)FieldTypes.XYPlot; - else if (this.rbImage.Checked == true) - { - bool success; - string savschemapiece; - string fname=CvtUserFldToFld(this.tbFieldName.Text); - myrof.SetFieldType((uint)FieldTypes.Image); - myrof.SetFieldname(fname); - savschemapiece = myrof.MakeImageSchemaString(this.tbFieldName.Text); - if (original_type == (uint)FieldTypes.Nil) // new one. - success = myrodb.RODB_NewFieldRecord(myrof, myelem, savschemapiece, editlevel, null); - else // modification of existing.... - success = myrodb.RODB_UpdateFieldRecord(myrof, myelem, savschemapiece, origname, fname, editlevel, false); - - if (success != true) - { - return; // DO YET process an error. - } - return; - - } - else if (this.rbCombination.Checked == true) - { - ftype = (uint)FieldTypes.Combination; - myrof.SetFieldType(ftype); - FieldCombFrm comb = new FieldCombFrm(myrof, myrodb, myelem, editlevel, origname, avlist, iulist); - comb.ShowDialog(); - if (comb.DialogResult == DialogResult.OK) - { - } - return; - } - else - { - MessageBox.Show("Must define a field type."); - return; - } - myrof.SetFieldType(ftype); - FieldTextFrm ftxt = new FieldTextFrm(myrof, myrodb, myelem, original_type, editlevel, origname, avlist, iulist); - ftxt.ShowDialog(); - this.Close(); - } - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.lblFldName = new System.Windows.Forms.Label(); - this.tbFieldName = new System.Windows.Forms.TextBox(); - this.gbFldType = new System.Windows.Forms.GroupBox(); - this.rbMultiple = new System.Windows.Forms.RadioButton(); - this.rbCombination = new System.Windows.Forms.RadioButton(); - this.rbImage = new System.Windows.Forms.RadioButton(); - this.rbXYPlot = new System.Windows.Forms.RadioButton(); - this.rbTable = new System.Windows.Forms.RadioButton(); - this.rbVariableTxt = new System.Windows.Forms.RadioButton(); - this.rbFormSingleLine = new System.Windows.Forms.RadioButton(); - this.rbSingleLine = new System.Windows.Forms.RadioButton(); - this.btnContinue = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.gbFldType.SuspendLayout(); - this.SuspendLayout(); - // - // lblFldName - // - this.lblFldName.Location = new System.Drawing.Point(16, 8); - this.lblFldName.Name = "lblFldName"; - this.lblFldName.Size = new System.Drawing.Size(88, 16); - this.lblFldName.TabIndex = 0; - this.lblFldName.Text = "Field Name:"; - // - // tbFieldName - // - this.tbFieldName.Location = new System.Drawing.Point(120, 8); - this.tbFieldName.Name = "tbFieldName"; - this.tbFieldName.Size = new System.Drawing.Size(368, 22); - this.tbFieldName.TabIndex = 1; - this.tbFieldName.Text = ""; - // - // gbFldType - // - this.gbFldType.Controls.AddRange(new System.Windows.Forms.Control[] { - this.rbMultiple, - this.rbCombination, - this.rbImage, - this.rbXYPlot, - this.rbTable, - this.rbVariableTxt, - this.rbFormSingleLine, - this.rbSingleLine}); - this.gbFldType.Location = new System.Drawing.Point(24, 40); - this.gbFldType.Name = "gbFldType"; - this.gbFldType.Size = new System.Drawing.Size(464, 120); - this.gbFldType.TabIndex = 2; - this.gbFldType.TabStop = false; - this.gbFldType.Text = "Field Type"; - // - // rbMultiple - // - this.rbMultiple.Enabled = false; - this.rbMultiple.Location = new System.Drawing.Point(248, 96); - this.rbMultiple.Name = "rbMultiple"; - this.rbMultiple.Size = new System.Drawing.Size(128, 16); - this.rbMultiple.TabIndex = 7; - this.rbMultiple.Text = "Multiple Field"; - // - // rbCombination - // - this.rbCombination.Location = new System.Drawing.Point(248, 72); - this.rbCombination.Name = "rbCombination"; - this.rbCombination.Size = new System.Drawing.Size(128, 16); - this.rbCombination.TabIndex = 6; - this.rbCombination.Text = "Combination Field"; - // - // rbImage - // - this.rbImage.Location = new System.Drawing.Point(248, 48); - this.rbImage.Name = "rbImage"; - this.rbImage.Size = new System.Drawing.Size(128, 16); - this.rbImage.TabIndex = 5; - this.rbImage.Text = "Image"; - // - // rbXYPlot - // - this.rbXYPlot.Location = new System.Drawing.Point(248, 24); - this.rbXYPlot.Name = "rbXYPlot"; - this.rbXYPlot.Size = new System.Drawing.Size(128, 16); - this.rbXYPlot.TabIndex = 4; - this.rbXYPlot.Text = "X/Y Plot"; - // - // rbTable - // - this.rbTable.Location = new System.Drawing.Point(24, 96); - this.rbTable.Name = "rbTable"; - this.rbTable.Size = new System.Drawing.Size(128, 16); - this.rbTable.TabIndex = 3; - this.rbTable.Text = "Table"; - // - // rbVariableTxt - // - this.rbVariableTxt.Location = new System.Drawing.Point(24, 72); - this.rbVariableTxt.Name = "rbVariableTxt"; - this.rbVariableTxt.Size = new System.Drawing.Size(160, 16); - this.rbVariableTxt.TabIndex = 2; - this.rbVariableTxt.Text = "Variable Length Text"; - // - // rbFormSingleLine - // - this.rbFormSingleLine.Location = new System.Drawing.Point(24, 48); - this.rbFormSingleLine.Name = "rbFormSingleLine"; - this.rbFormSingleLine.Size = new System.Drawing.Size(184, 16); - this.rbFormSingleLine.TabIndex = 1; - this.rbFormSingleLine.Text = "Formatted Single Line Text"; - // - // rbSingleLine - // - this.rbSingleLine.Location = new System.Drawing.Point(24, 24); - this.rbSingleLine.Name = "rbSingleLine"; - this.rbSingleLine.Size = new System.Drawing.Size(128, 16); - this.rbSingleLine.TabIndex = 0; - this.rbSingleLine.Text = "Single Line Text"; - // - // btnContinue - // - this.btnContinue.Location = new System.Drawing.Point(248, 176); - this.btnContinue.Name = "btnContinue"; - this.btnContinue.Size = new System.Drawing.Size(104, 24); - this.btnContinue.TabIndex = 3; - this.btnContinue.Text = "Continue ..."; - this.btnContinue.Click += new System.EventHandler(this.btnContinue_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(384, 176); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(104, 24); - this.btnCancel.TabIndex = 4; - this.btnCancel.Text = "Cancel"; - // - // FieldTypeDefFrm - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(512, 221); - this.Controls.AddRange(new System.Windows.Forms.Control[] { - this.btnCancel, - this.btnContinue, - this.gbFldType, - this.tbFieldName, - this.lblFldName}); - this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.Name = "FieldTypeDefFrm"; - this.Text = " Field Type Selection"; - this.gbFldType.ResumeLayout(false); - this.ResumeLayout(false); - - } - #endregion - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTypeDefFrm.resx b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTypeDefFrm.resx deleted file mode 100644 index 65521144..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FieldTypeDefFrm.resx +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - FieldTypeDefFrm - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FixRev.Bat b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FixRev.Bat deleted file mode 100644 index 81176489..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/FixRev.Bat +++ /dev/null @@ -1,4 +0,0 @@ -PUSHD ..\..\..\ReferencedObjects\Exe\RefObj\ROEditor" -"..\..\..\..\AdjustBuildRevision\bin\Debug\AdjustBuildRevision" "%CD%\AssemblyInfo.cs" -POPD -pause diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupDefFrm.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupDefFrm.cs deleted file mode 100644 index 27498d32..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupDefFrm.cs +++ /dev/null @@ -1,667 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: GroupDefFrm.cs $ $Revision: 17 $ - * $Author: Jsj $ $Date: 7/02/03 9:25a $ - * - * $History: GroupDefFrm.cs $ - * - * ***************** Version 17 ***************** - * User: Jsj Date: 7/02/03 Time: 9:25a - * Updated in $/EXE/RefObj/ROEditor - * made messagebox calls modal by removing the parent window reference - * - * ***************** Version 16 ***************** - * User: Kathy Date: 5/21/03 Time: 12:50p - * Updated in $/EXE/RefObj/ROEditor - * B2003-034: process if only one field. Also, check for all data on okay - * button select. - * - * ***************** Version 15 ***************** - * User: Kathy Date: 5/07/03 Time: 1:58p - * Updated in $/EXE/RefObj/ROEditor - * B2003-033 fixed - * - * ***************** Version 14 ***************** - * User: Jsj Date: 4/14/03 Time: 3:01p - * Updated in $/EXE/RefObj/ROEditor - * changes resulting from speeding up RO FST file creation - * - * ***************** Version 13 ***************** - * User: Kathy Date: 3/11/03 Time: 11:25a - * Updated in $/EXE/RefObj/ROEditor - * allow extra text on accpageid template - * - * ***************** Version 12 ***************** - * User: Kathy Date: 12/10/02 Time: 2:26p - * Updated in $/EXE/RefObj/ROEditor - * fieldname special char - * - * ***************** Version 11 ***************** - * User: Kathy Date: 12/02/02 Time: 8:29a - * Updated in $/EXE/RefObj/ROEditor - * fieldname replace chars - * - * ***************** Version 10 ***************** - * User: Kathy Date: 12/02/02 Time: 6:18a - * Updated in $/EXE/RefObj/ROEditor - * added status on long ops & check for fieldname change for textbox - * - * ***************** Version 9 ***************** - * User: Kathy Date: 10/15/02 Time: 2:18p - * Updated in $/EXE/RefObj/ROEditor - * mods for new group (toplevel) - * - * ***************** Version 8 ***************** - * User: Kathy Date: 10/10/02 Time: 10:02a - * Updated in $/EXE/RefObj/ROEditor - * accessory page id - * - * ***************** Version 7 ***************** - * User: Kathy Date: 10/02/02 Time: 1:40p - * Updated in $/EXE/RefObj/ROEditor - * clean up - * - * ***************** Version 6 ***************** - * User: Kathy Date: 9/27/02 Time: 1:14p - * Updated in $/EXE/RefObj/ROEditor - * fix digit as first char in fieldname - * - * ***************** Version 5 ***************** - * User: Kathy Date: 9/25/02 Time: 9:57a - * Updated in $/EXE/RefObj/ROEditor - * dev - * - * ***************** Version 4 ***************** - * User: Kathy Date: 9/19/02 Time: 10:03a - * Updated in $/EXE/RefObj/ROEditor - * only allow mods at root - * - * ***************** Version 3 ***************** - * User: Kathy Date: 9/11/02 Time: 1:15p - * Updated in $/EXE/RefObj/ROEditor - * vlnxml - * - * ***************** Version 2 ***************** - * User: Kathy Date: 8/28/02 Time: 10:56a - * Updated in $/EXE/RefObj/ROEditor - * development - *********************************************************************************************/ - - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Xml; -using System.Text; -using RODBInterface; -using ROFields; -using VlnStatus; - -namespace ROEditor -{ - /// - /// Summary description for GroupDefinition. - /// - public class GroupDefFrm : System.Windows.Forms.Form - { - private System.Windows.Forms.Label lblGroup; - private System.Windows.Forms.TextBox tbGroup; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.Label lblPrefix; - private System.Windows.Forms.Label lblValue; - private System.Windows.Forms.TextBox tbPrefix; - private System.Windows.Forms.TextBox tbValue; - private System.Windows.Forms.Button btnRODef; - private System.Windows.Forms.Button btnSubDef; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - - private RODB myrodb; - private VlnXmlElement elem; - private string origGroup; - private string origPrefix; - private string origValue; - private int dbtype; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public GroupDefFrm(VlnXmlElement pelem, RODB rodb, string gpname,int idbtype) - { - myrodb = rodb; - elem = pelem; - origGroup = gpname; - dbtype=idbtype; // if new, 3 = user define, must define fields before save. - // - // Required for Windows Form Designer support - // - InitializeComponent(); - FillInData(); - } - - private string CvtUserFldToFld(string fldname) - { - if (fldname.Length < 2) - return fldname; - // a digit cannot start an xml fieldname, prepend a "__" to it. - string tmp0; - if (char.IsDigit(fldname,0)) - tmp0 = "__" + fldname; - else - tmp0 = fldname; - // an xml fieldname cannot have a space, change it to a "__" - string tmpstr = tmp0.Replace(" ","__"); - int len = tmpstr.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - return outstr; - } - - private string CvtFldToUserFld(string fldname) - { - string tmpstr0; - if (fldname.Length < 2) return fldname; - // an xml element name cannot begin with a digit. we had prepended a "__" - if (fldname.Substring(0,2) == "__" && char.IsDigit(fldname,2)) - tmpstr0 = fldname.Substring(2,fldname.Length-2); - else - tmpstr0 = fldname; - // an xml element name cannot have a space, we converted to a "__" - string tmpstr = tmpstr0.Replace("__"," "); - int len = tmpstr.Length; - int cur = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval, indx; - if (len <6) - indx = -1; - else - indx=tmpstr.IndexOf(OKpunch,cur); - string asc_spchar; - while (indx>=0) - { - outstr += tmpstr.Substring(cur,indx-cur); - asc_spchar = tmpstr.Substring(indx+3,3); - decval = System.Convert.ToInt16(asc_spchar,10); - outstr += System.Convert.ToChar(decval).ToString(); - cur = indx+6; - if (cur+6 > len) - indx = -1; - else - indx = tmpstr.IndexOf(OKpunch,cur); - } - if (cur - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.lblGroup = new System.Windows.Forms.Label(); - this.tbGroup = new System.Windows.Forms.TextBox(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.tbValue = new System.Windows.Forms.TextBox(); - this.tbPrefix = new System.Windows.Forms.TextBox(); - this.lblValue = new System.Windows.Forms.Label(); - this.lblPrefix = new System.Windows.Forms.Label(); - this.btnRODef = new System.Windows.Forms.Button(); - this.btnSubDef = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.groupBox1.SuspendLayout(); - this.SuspendLayout(); - // - // lblGroup - // - this.lblGroup.Location = new System.Drawing.Point(24, 8); - this.lblGroup.Name = "lblGroup"; - this.lblGroup.Size = new System.Drawing.Size(56, 16); - this.lblGroup.TabIndex = 0; - this.lblGroup.Text = "Group:"; - // - // tbGroup - // - this.tbGroup.Location = new System.Drawing.Point(88, 8); - this.tbGroup.Name = "tbGroup"; - this.tbGroup.Size = new System.Drawing.Size(248, 22); - this.tbGroup.TabIndex = 1; - this.tbGroup.Text = "textBox1"; - // - // groupBox1 - // - this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] { - this.tbValue, - this.tbPrefix, - this.lblValue, - this.lblPrefix}); - this.groupBox1.Location = new System.Drawing.Point(24, 56); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(312, 96); - this.groupBox1.TabIndex = 2; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Accessory Page Access"; - // - // tbValue - // - this.tbValue.Location = new System.Drawing.Point(72, 56); - this.tbValue.Name = "tbValue"; - this.tbValue.Size = new System.Drawing.Size(216, 22); - this.tbValue.TabIndex = 3; - this.tbValue.Text = "textBox1"; - // tbPrefix - // - this.tbPrefix.Location = new System.Drawing.Point(72, 24); - this.tbPrefix.Name = "tbPrefix"; - this.tbPrefix.Size = new System.Drawing.Size(216, 22); - this.tbPrefix.TabIndex = 2; - this.tbPrefix.Text = "textBox1"; - // - // lblValue - // - this.lblValue.Location = new System.Drawing.Point(16, 56); - this.lblValue.Name = "lblValue"; - this.lblValue.Size = new System.Drawing.Size(48, 16); - this.lblValue.TabIndex = 1; - this.lblValue.Text = "Value:"; - // - // lblPrefix - // - this.lblPrefix.ForeColor = System.Drawing.SystemColors.ControlText; - this.lblPrefix.Location = new System.Drawing.Point(16, 24); - this.lblPrefix.Name = "lblPrefix"; - this.lblPrefix.Size = new System.Drawing.Size(48, 16); - this.lblPrefix.TabIndex = 0; - this.lblPrefix.Text = "Prefix:"; - // - // btnRODef - // - this.btnRODef.Location = new System.Drawing.Point(24, 168); - this.btnRODef.Name = "btnRODef"; - this.btnRODef.Size = new System.Drawing.Size(312, 24); - this.btnRODef.TabIndex = 3; - this.btnRODef.Text = "Referenced Object Definition..."; - this.btnRODef.Click += new System.EventHandler(this.btnRODef_Click); - // - // btnSubDef - // - this.btnSubDef.Location = new System.Drawing.Point(24, 208); - this.btnSubDef.Name = "btnSubDef"; - this.btnSubDef.Size = new System.Drawing.Size(312, 24); - this.btnSubDef.TabIndex = 4; - this.btnSubDef.Text = "Subgroup Definition ..."; - this.btnSubDef.Click += new System.EventHandler(this.btnSubDef_Click); - // - // btnOK - // - this.btnOK.Location = new System.Drawing.Point(24, 248); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(144, 24); - this.btnOK.TabIndex = 5; - this.btnOK.Text = "OK"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(192, 248); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(144, 24); - this.btnCancel.TabIndex = 6; - this.btnCancel.Text = "Cancel"; - // - // GroupDefFrm - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(368, 293); - this.Controls.AddRange(new System.Windows.Forms.Control[] { - this.btnCancel, - this.btnOK, - this.btnSubDef, - this.btnRODef, - this.groupBox1, - this.tbGroup, - this.lblGroup}); - this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.Name = "GroupDefFrm"; - this.Text = "Group Definition"; - this.groupBox1.ResumeLayout(false); - this.ResumeLayout(false); - - } - #endregion - - private bool ProcessRROAccPageIDChange(VlnXmlElement mnuele, string newtmpl) - { - bool success; - XmlNode chldnode = (XmlNode) mnuele.FirstChild; - VlnXmlElement echild; - while (chldnode != null) - { - if (chldnode is VlnXmlElement) - { - echild = (VlnXmlElement) chldnode; - if (echild.Name != "vlnGroup") - { - // If this is a group defintion subtree it will only have one - // child, which is the text definition for the subgroup. Don't - // include these in the tree. - int levelCnt = chldnode.ChildNodes.Count; - string TheMenuTitle = echild.GetAttribute("MenuTitle"); - if ((levelCnt > 1) || (levelCnt==1 && !TheMenuTitle.Equals(""))) - { - string accid = echild.GetAccPageIDString(newtmpl); - echild.SetAttribute("AccPageID",accid); - success = myrodb.RODB_WriteRO(echild); - if (success==false) return false; - } - } - } - chldnode = chldnode.NextSibling; - } - return true; - } - - private bool UpdateAccPageID(VlnXmlElement grp, string newtmpl, VlnStatusMessage StatMsgWindow) - { - // For this group and below in the xml tree, update Accessory Page ID using the new - // template. - bool success; - string haskids; - string kidsloaded; - XmlNode node = (XmlNode) grp.FirstChild; - VlnXmlElement child; - while (node != null) - { - if (node is VlnXmlElement) - { - child = (VlnXmlElement) node; - - // If this is a group menu edit, process group nodes, otherwise - // process rros. - - if (child.Name == "vlnGroup") - { - haskids = child.GetAttribute("HasChild"); - kidsloaded = child.GetAttribute("ChildLoaded"); - if (haskids == "True" && kidsloaded == "False" ) - { - elem.SetAttribute("TreeNotData","True"); - myrodb.RODB_GetChildData(child,true); - child.SetAttribute("ChildLoaded","True"); - } - StatMsgWindow.StatusMessage = child.GetAttribute("MenuTitle"); - success = UpdateAccPageID(child, newtmpl, StatMsgWindow); - if (success == false) return false; - - success = ProcessRROAccPageIDChange(grp, newtmpl); - if (success==false)return false; - } - } - node = node.NextSibling; - } - success = ProcessRROAccPageIDChange(grp, newtmpl); - if (success==false) return false; - return true; - } - - private void btnOK_Click(object sender, System.EventArgs e) - { - // if the fields were disabled, just return. (Only need to check one of them) - if(this.tbGroup.Enabled == false) - { - this.Close(); - return; - } - // is this is a database level group, and is a user defined type, the - // accessory page value, fields in use & group fields in use must all be set. - // (doesn't need a prefix. - if (elem.ParentNode.Name == "RO_Root" && dbtype==3) //3 is user defined. - { - string strattr; - strattr = elem.GetAttribute("FieldsInUse"); - if (strattr == null || strattr=="") - { - MessageBox.Show("No fields defined for Referenced Objects","Group Definition Error"); - return; - } - strattr = this.tbValue.Text; - if (strattr == null || strattr=="") - { - MessageBox.Show("No Value defined for this group","Group Definition Error"); - return; - } - strattr = elem.GetAttribute("GroupFieldsInUse"); - if (strattr == null || strattr=="") - { - MessageBox.Show("No fields defined for subgroup","Group Definition Error"); - return; - } - } - bool modaccpageid=false; - bool modified=false; - if ((elem.HasAttribute("AccPageID")&&this.tbValue.Text!=origValue) || this.tbValue.Modified) - { - string dummy = ""; // need for RODB_GetFIeldsInUse call, won't be used. - ArrayList AvailList, InUseList; - //first see if it is a valid 'InUse' Field. - AvailList = myrodb.RODB_GetFields(elem, (uint) RecordType.Schema); - InUseList = myrodb.RODB_GetFieldsInUse(elem, AvailList,"FieldsInUse", ref dummy, true); - int chkbracketo, chkbracketc; // open & close bracket indexes - chkbracketo = this.tbValue.Text.IndexOf("<"); - chkbracketc = this.tbValue.Text.IndexOf(">"); - if (chkbracketo == -1 || chkbracketc == -1) - { - MessageBox.Show("Missing bracket () in value definition."); - return; - } - //if (chkbracketo != 0 || chkbracketc != this.tbValue.Text.Length-1) - //{ - // MessageBox.Show("Value definition contains extraneous text."); - // return; - //} - // check for more than one field, don't allow this, - int twobrk = this.tbValue.Text.IndexOf("<",chkbracketo+1); - if (twobrk != -1) - { - MessageBox.Show("Cannot have two fields in accessory page id."); - return; - } - string val = this.tbValue.Text.Substring(chkbracketo+1,chkbracketc-chkbracketo-1); - // loop thru inuse list and see if it's there. - bool found = false; - for(int i=0; i0) - accidattr.Append(this.tbValue.Text.Substring(0,chkbracketo+1)); // +1 include the "<" - else - accidattr.Append("<"); - accidattr.Append(CvtUserFldToFld(this.tbValue.Text.Substring(chkbracketo+1,chkbracketc-chkbracketo-1))); - if (chkbracketc>this.tbValue.Text.Length) - accidattr.Append(this.tbValue.Text.Substring(chkbracketc+1,this.tbValue.Text.Length-chkbracketc+1)); - else - accidattr.Append(">"); - elem.SetAttribute("AccPageID",accidattr.ToString()); -// elem.SetAttribute("AccPageID",CvtUserFldToFld(this.tbValue.Text)); - - } - if (this.tbGroup.Text != origGroup) - { - XmlNode tmpn = (XmlNode) elem; - tmpn.FirstChild.Value = tmpn.FirstChild.Value.Replace(origGroup, this.tbGroup.Text); - modified=true; - } - if ((elem.HasAttribute("AccPageIDPrefix")&&this.tbPrefix.Text != origPrefix) || this.tbPrefix.Modified==true) - { - elem.SetAttribute("AccPageIDPrefix",this.tbPrefix.Text); - modified=true; - } - bool success=true; - if (modified==true) success = myrodb.RODB_WriteRO(elem); - if (modified == true && success == true && modaccpageid==true) - { - Cursor.Current = Cursors.WaitCursor; - VlnStatusMessage StatMsgWindow = new VlnStatusMessage("Status of Accessory Page ID Change"); - success = UpdateAccPageID(elem, this.tbValue.Text,StatMsgWindow); - Cursor.Current = Cursors.Default; - StatMsgWindow.Dispose(); - } - if (success == false) - MessageBox.Show("Could not save data."); - this.Close(); - } - - private void btnRODef_Click(object sender, System.EventArgs e) - { - RODefFrm rodef = new RODefFrm(elem,myrodb,"FieldsInUse", this.tbGroup.Text, dbtype); - rodef.ShowDialog(); - // get accpageid, in case field name changed. - string accvalue = elem.GetAttribute("AccPageID"); - - VlnXmlElement parent; - parent = (VlnXmlElement) elem.ParentNode; - while (parent != null && accvalue=="") - { - // walk up tree to get parent. - if (accvalue == "") accvalue = parent.GetAttribute("AccPageID"); - if (parent.Name != "RO_Root") - parent = (VlnXmlElement) parent.ParentNode; - else - parent = null; - } - if (accvalue != "") - this.tbValue.Text = CvtFldToUserFld(accvalue); - else - this.tbValue.Text = ""; - } - - private void btnSubDef_Click(object sender, System.EventArgs e) - { - RODefFrm rodef = new RODefFrm(elem,myrodb,"GroupFieldsInUse", this.tbGroup.Text, dbtype); - rodef.ShowDialog(); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupDefFrm.resx b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupDefFrm.resx deleted file mode 100644 index 07b710fc..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupDefFrm.resx +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GroupDefFrm - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupNewFrm.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupNewFrm.cs deleted file mode 100644 index eb4a300a..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupNewFrm.cs +++ /dev/null @@ -1,425 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: GroupNewFrm.cs $ $Revision: 7 $ - * $Author: Kathy $ $Date: 5/07/03 1:58p $ - * - * $History: GroupNewFrm.cs $ - * - * ***************** Version 7 ***************** - * User: Kathy Date: 5/07/03 Time: 1:58p - * Updated in $/EXE/RefObj/ROEditor - * B2003-033 - * - * ***************** Version 6 ***************** - * User: Kathy Date: 4/04/03 Time: 9:40a - * Updated in $/EXE/RefObj/ROEditor - * B2003-030: set HasChild Attribute for new group - * - * ***************** Version 5 ***************** - * User: Kathy Date: 12/10/02 Time: 2:26p - * Updated in $/EXE/RefObj/ROEditor - * fieldname special char - * - * ***************** Version 4 ***************** - * User: Kathy Date: 12/06/02 Time: 11:58a - * Updated in $/EXE/RefObj/ROEditor - * fix new table can't delete without exiting program - * - * ***************** Version 3 ***************** - * User: Kathy Date: 12/02/02 Time: 8:30a - * Updated in $/EXE/RefObj/ROEditor - * fieldname replace chars - * - * ***************** Version 2 ***************** - * User: Kathy Date: 10/17/02 Time: 11:35a - * Updated in $/EXE/RefObj/ROEditor - * don't save twice if continue selected to close - * - * ***************** Version 1 ***************** - * User: Kathy Date: 10/15/02 Time: 2:24p - * Created in $/EXE/RefObj/ROEditor - * new hi level group, form & code - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Xml; -using System.Text; -using ROFields; -using RODBInterface; - -namespace ROEditor -{ - /// - /// Summary description for GroupNewFrm. - /// - public class GroupNewFrm : System.Windows.Forms.Form - { - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.TextBox tbGroup; - private System.Windows.Forms.Label lblGroup; - private System.Windows.Forms.Button btnContinue; - private System.Windows.Forms.GroupBox groupBox1; - private System.Windows.Forms.RadioButton rbbtnUserDef; - private System.Windows.Forms.RadioButton rbbtnGraphics; - private System.Windows.Forms.RadioButton rbbtnSetpoint; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private RODB myrodb; - private VlnXmlElement elem; - private string lastSavedGroup; - private VlnXmlElement nelem; // new group element - private string tbname; // new group table name - private string toprecid; // new group master rec id - - public GroupNewFrm(RODB rodb, VlnXmlElement topelem) - { - elem = topelem; - myrodb = rodb; - nelem = null; - toprecid = null; - tbname = null; - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // - // TODO: Add any constructor code after InitializeComponent call - // - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.btnCancel = new System.Windows.Forms.Button(); - this.btnContinue = new System.Windows.Forms.Button(); - this.tbGroup = new System.Windows.Forms.TextBox(); - this.lblGroup = new System.Windows.Forms.Label(); - this.groupBox1 = new System.Windows.Forms.GroupBox(); - this.rbbtnSetpoint = new System.Windows.Forms.RadioButton(); - this.rbbtnGraphics = new System.Windows.Forms.RadioButton(); - this.rbbtnUserDef = new System.Windows.Forms.RadioButton(); - this.groupBox1.SuspendLayout(); - this.SuspendLayout(); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(176, 244); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(120, 24); - this.btnCancel.TabIndex = 10; - this.btnCancel.Text = "Cancel"; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnContinue - // - this.btnContinue.Location = new System.Drawing.Point(40, 244); - this.btnContinue.Name = "btnContinue"; - this.btnContinue.Size = new System.Drawing.Size(106, 24); - this.btnContinue.TabIndex = 9; - this.btnContinue.Text = "Continue"; - this.btnContinue.Click += new System.EventHandler(this.btnContinue_Click); - // - // tbGroup - // - this.tbGroup.Location = new System.Drawing.Point(72, 8); - this.tbGroup.Name = "tbGroup"; - this.tbGroup.Size = new System.Drawing.Size(248, 22); - this.tbGroup.TabIndex = 8; - this.tbGroup.Text = ""; - // - // lblGroup - // - this.lblGroup.Location = new System.Drawing.Point(8, 8); - this.lblGroup.Name = "lblGroup"; - this.lblGroup.Size = new System.Drawing.Size(56, 16); - this.lblGroup.TabIndex = 7; - this.lblGroup.Text = "Group:"; - // - // groupBox1 - // - this.groupBox1.Controls.AddRange(new System.Windows.Forms.Control[] { - this.rbbtnSetpoint, - this.rbbtnGraphics, - this.rbbtnUserDef}); - this.groupBox1.Location = new System.Drawing.Point(24, 56); - this.groupBox1.Name = "groupBox1"; - this.groupBox1.Size = new System.Drawing.Size(288, 152); - this.groupBox1.TabIndex = 11; - this.groupBox1.TabStop = false; - this.groupBox1.Text = "Group Type"; - // - // rbbtnSetpoint - // - this.rbbtnSetpoint.Location = new System.Drawing.Point(48, 64); - this.rbbtnSetpoint.Name = "rbbtnSetpoint"; - this.rbbtnSetpoint.Size = new System.Drawing.Size(184, 24); - this.rbbtnSetpoint.TabIndex = 2; - this.rbbtnSetpoint.Text = "Setpoint Database"; - // - // rbbtnGraphics - // - this.rbbtnGraphics.Location = new System.Drawing.Point(48, 96); - this.rbbtnGraphics.Name = "rbbtnGraphics"; - this.rbbtnGraphics.Size = new System.Drawing.Size(184, 24); - this.rbbtnGraphics.TabIndex = 1; - this.rbbtnGraphics.TabStop = true; - this.rbbtnGraphics.Text = "Graphics Database"; - // - // rbbtnUserDef - // - this.rbbtnUserDef.Location = new System.Drawing.Point(48, 32); - this.rbbtnUserDef.Name = "rbbtnUserDef"; - this.rbbtnUserDef.Size = new System.Drawing.Size(184, 24); - this.rbbtnUserDef.TabIndex = 0; - this.rbbtnUserDef.Text = "User Defined Database"; - // - // GroupNewFrm - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(376, 273); - this.Controls.AddRange(new System.Windows.Forms.Control[] { - this.groupBox1, - this.btnCancel, - this.btnContinue, - this.tbGroup, - this.lblGroup}); - this.Font = new System.Drawing.Font("Tahoma", 9F); - this.Name = "GroupNewFrm"; - this.Text = "New Group (Database)"; - this.Load += new System.EventHandler(this.GroupNewFrm_Load); - this.groupBox1.ResumeLayout(false); - this.ResumeLayout(false); - - } - #endregion - - private void GroupNewFrm_Load(object sender, System.EventArgs e) - { - - } - - private string CvtUserFldToFld(string fldname) - { - if (fldname.Length < 2) - return fldname; - // a digit cannot start an xml fieldname, prepend a "__" to it. - string tmp0; - if (char.IsDigit(fldname,0)) - tmp0 = "__" + fldname; - else - tmp0 = fldname; - // an xml fieldname cannot have a space, change it to a "__" - string tmpstr = tmp0.Replace(" ","__"); - int len = tmpstr.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - return outstr; - } - - private void btnCancel_Click(object sender, System.EventArgs e) - { - if (toprecid != null) - { - myrodb.RODB_DeleteGroup((XmlNode)nelem,tbname,toprecid); - } - if(nelem!=null) - { - XmlNode par = (XmlNode)nelem.ParentNode; - par.RemoveChild((XmlNode)nelem); - } - } - - private void btnContinue_Click(object sender, System.EventArgs e) - { - bool success; - if (this.tbGroup.Text == null || this.tbGroup.Text == "") - { - MessageBox.Show("Need to specify group name."); - return; - } - // if this was already saved, i.e. user hit continue button already, - // just return; - if (this.tbGroup.Text == lastSavedGroup) - { - this.Close(); - return; - } - lastSavedGroup = this.tbGroup.Text; - int dbtype=-1; - if (this.rbbtnGraphics.Checked == true) dbtype = 1; - else if (this.rbbtnSetpoint.Checked == true) dbtype = 2; - else if (this.rbbtnUserDef.Checked == true) dbtype = 3; - if (dbtype<0) - { - MessageBox.Show("Need to define type of group."); - return; - } - Cursor.Current = Cursors.WaitCursor; - // make a new table with the next table name id - tbname = myrodb.RODB_GetNextGroupTable(); - if (tbname == null) - { - Cursor.Current = Cursors.Default; - return; - } - toprecid = myrodb.RODB_AddNewTable(tbname, this.tbGroup.Text); - if (toprecid == null) - { - Cursor.Current = Cursors.Default; - return; - } - // for the given type, copy over the required fields. - success = myrodb.RODB_CopyFieldDefs("ROMaster",tbname,dbtype); - if (success == false) - { - Cursor.Current = Cursors.Default; - return; - } - // create top level group node with input name. - nelem = (VlnXmlElement) elem.OwnerDocument.CreateElement("vlnGroup"); - nelem.InnerText = CvtUserFldToFld(this.tbGroup.Text); - nelem.SetAttribute("Table",tbname); - nelem.SetAttribute("ParentID", "00000000"); - string nrecid = myrodb.RODB_GetNextRecId(tbname); - nelem.SetAttribute("RecID", nrecid); - elem.AppendChild((XmlNode) nelem); - success = myrodb.RODB_InsertGroup(nelem); - Cursor.Current = Cursors.Default; - if (success == false) return; - nelem.SetAttribute("TreeNotData", "True"); - nelem.SetAttribute("MenuTitle", this.tbGroup.Text); - nelem.SetAttribute("MasterRecID",toprecid); - nelem.SetAttribute("HasChild", "False"); - - // if this is a setpoint db or image db, get fields and find those fields needed - // to define ro & group. This is hardcoded, yuk. - if(dbtype == 1 || dbtype == 2) - { - ArrayList FieldList = myrodb.RODB_GetFields(nelem, (uint) RecordType.Schema); - string[] fldlist=null, grplist=null; - ROField rof; - string curfld; - StringBuilder Inuse = new StringBuilder(); - // Get list of inuse fields for the rro. - if (dbtype == 1) - fldlist = new string[] {"Name", "Image ID", "Image"}; - else - fldlist = new string[] {"Setpoint ID", "Setpoint Value", "Associated System Component", "Applicability", "Revision", "Short Description", - "Description", "Key Assumptions", "Basis", "References"}; - for (int i=0; i< fldlist.Length; i++) - { - curfld = fldlist[i]; - for (int j=0; j"); - nelem.SetAttribute("MenuItem"," "); - nelem.SetAttribute("GroupMenuItem",""); - nelem.SetAttribute("AccPageIDPrefix","SP2"); - nelem.SetAttribute("AccPageID",""); - } - else if (dbtype == 1) // image - { - nelem.SetAttribute("RetVal",""); - nelem.SetAttribute("MenuItem",""); - nelem.SetAttribute("GroupMenuItem",""); - nelem.SetAttribute("AccPageIDPrefix","IG2"); - nelem.SetAttribute("AccPageID",""); - } - success = myrodb.RODB_WriteRO(nelem); - if (success == false) return; - } - - // now let the user specify the group name, etc to define the group. - GroupDefFrm grdef = new GroupDefFrm(nelem,myrodb,nelem.InnerText,dbtype); - grdef.ShowDialog(); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupNewFrm.resx b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupNewFrm.resx deleted file mode 100644 index 7ebaaeb7..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/GroupNewFrm.resx +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - GroupNewFrm - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Properties/Resources.Designer.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Properties/Resources.Designer.cs deleted file mode 100644 index 86954426..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Properties/Resources.Designer.cs +++ /dev/null @@ -1,70 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4234 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace ROEditor.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("ROEditor.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - internal static System.Drawing.Bitmap Red_V_txt_NB_bur_1984 { - get { - object obj = ResourceManager.GetObject("Red_V_txt_NB_bur_1984", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Properties/Resources.resx b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Properties/Resources.resx deleted file mode 100644 index 2eb5abf1..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Properties/Resources.resx +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - ..\Red_V_txt_NB_bur_1984.png;System.Drawing.Bitmap, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/RODefFrm.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/RODefFrm.cs deleted file mode 100644 index 256f4cb7..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/RODefFrm.cs +++ /dev/null @@ -1,1219 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: RODefFrm.cs $ $Revision: 18 $ - * $Author: Kathy $ $Date: 9/06/05 11:26a $ - * - * $History: RODefFrm.cs $ - * - * ***************** Version 18 ***************** - * User: Kathy Date: 9/06/05 Time: 11:26a - * Updated in $/EXE/RefObj/ROEditor - * B2005-035 - * - * ***************** Version 17 ***************** - * User: Jsj Date: 7/02/03 Time: 9:25a - * Updated in $/EXE/RefObj/ROEditor - * made messagebox calls modal by removing the parent window reference - * - * ***************** Version 16 ***************** - * User: Kathy Date: 5/21/03 Time: 12:52p - * Updated in $/EXE/RefObj/ROEditor - * B2003-041: process if only one field for RO & not always saving ro - * field name edit - * - * ***************** Version 15 ***************** - * User: Kathy Date: 5/07/03 Time: 1:58p - * Updated in $/EXE/RefObj/ROEditor - * B2003-033 fixed - * - * ***************** Version 14 ***************** - * User: Jsj Date: 4/14/03 Time: 3:03p - * Updated in $/EXE/RefObj/ROEditor - * changes due to RO FST file creation speed up - * - * ***************** Version 13 ***************** - * User: Kathy Date: 12/10/02 Time: 2:26p - * Updated in $/EXE/RefObj/ROEditor - * fieldname special chars & bug fixes - * - * ***************** Version 12 ***************** - * User: Kathy Date: 12/02/02 Time: 9:25a - * Updated in $/EXE/RefObj/ROEditor - * after edit fieldname, update menu & retval correctly - * - * ***************** Version 11 ***************** - * User: Kathy Date: 12/02/02 Time: 8:30a - * Updated in $/EXE/RefObj/ROEditor - * fieldname replace chars - * - * ***************** Version 10 ***************** - * User: Kathy Date: 12/02/02 Time: 6:19a - * Updated in $/EXE/RefObj/ROEditor - * status on long ops & update text box for fieldname change - * - * ***************** Version 9 ***************** - * User: Kathy Date: 11/19/02 Time: 11:30a - * Updated in $/EXE/RefObj/ROEditor - * validate retval (handle {}) - * - * ***************** Version 8 ***************** - * User: Kathy Date: 10/15/02 Time: 2:18p - * Updated in $/EXE/RefObj/ROEditor - * new group (table) - * - * ***************** Version 7 ***************** - * User: Kathy Date: 10/10/02 Time: 10:02a - * Updated in $/EXE/RefObj/ROEditor - * try to m ake xml tree & tree control in sync - * - * ***************** Version 6 ***************** - * User: Kathy Date: 9/25/02 Time: 2:31p - * Updated in $/EXE/RefObj/ROEditor - * multitxt->variable - * - * ***************** Version 5 ***************** - * User: Kathy Date: 9/25/02 Time: 9:57a - * Updated in $/EXE/RefObj/ROEditor - * dev - * - * ***************** Version 4 ***************** - * User: Kathy Date: 9/19/02 Time: 10:04a - * Updated in $/EXE/RefObj/ROEditor - * mods for subgroup apply below node. if mod menutitle template, update - * menu titles from node down. - * - * ***************** Version 3 ***************** - * User: Kathy Date: 9/11/02 Time: 1:15p - * Updated in $/EXE/RefObj/ROEditor - * vlnxml - * - * ***************** Version 2 ***************** - * User: Kathy Date: 8/28/02 Time: 10:57a - * Updated in $/EXE/RefObj/ROEditor - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Xml; -using System.Xml.Schema; -using System.Text; -using ROFields; -using RODBInterface; -using VlnStatus; - - -namespace ROEditor -{ - - /// - /// Summary description for RODefinition. - /// - public class RODefFrm : System.Windows.Forms.Form - { - private System.Windows.Forms.Label lblGroup; - private System.Windows.Forms.Label lblRetVal; - private System.Windows.Forms.Label lblMenuVal; - private System.Windows.Forms.TextBox tbRetVal; - private System.Windows.Forms.TextBox tbMenuVal; - private System.Windows.Forms.Label lblGroupText; - private System.Windows.Forms.GroupBox gbFields; - private System.Windows.Forms.Label lblInUse; - private System.Windows.Forms.Label lblAvail; - private System.Windows.Forms.ListBox lboxInUse; - private System.Windows.Forms.ListBox lboxAvail; - private System.Windows.Forms.Button btnAdd; - private System.Windows.Forms.Button btnEdit; - private System.Windows.Forms.Button btnRemove; - private System.Windows.Forms.Button btnNew; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private RODB myrodb; - ArrayList AvailList; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - ArrayList InUseList; - private VlnXmlElement elem; - private uint editlevel; // flag for group definition or ro definition - private string strFieldsInUse; - private string origFieldsInUse; - private string origRetVal; - private string origMenuItem; - StringBuilder parseerror; - private int hi, lo; - private int dbtype; - // pass in Group Element - public RODefFrm(VlnXmlElement pelem, RODB rodb, string fields, string grptxt, int idbtype) - { - myrodb = rodb; - strFieldsInUse = fields; - dbtype = idbtype; - if (fields == "FieldsInUse") // not a group level edit. - editlevel = (uint) RecordType.Schema; - else - editlevel = (uint) RecordType.GroupSchema; - elem = pelem; - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - if(editlevel==(uint)RecordType.GroupSchema)this.Text = "Subgroup Definition"; - FillInData(grptxt); - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - private void FillInAvailable() - { - ROField rof; - - // put the items in the AvailList box. - for (int i=0; i< AvailList.Count; i++) - { - rof = (ROField) AvailList[i]; - if (rof.GetFieldname != null) // DO YET: Why null? - this.lboxAvail.Items.Add(rof.GetFieldname); - } - } - - - private void SetUpListBoxes() - { - ROField rof; - // Get list of available fields (all fields in this type, i.e. rectype = 'Schema' - // or 'GroupSchema') and get list of inuse from the schema definition. - AvailList = myrodb.RODB_GetFields(elem, editlevel); - InUseList = myrodb.RODB_GetFieldsInUse(elem, AvailList, strFieldsInUse, ref origFieldsInUse, true); - FillInAvailable(); - - // set up the listbox for inuse items. - if (InUseList != null) - { - // add items to the InUseList box. - for (int i=0; i< InUseList.Count; i++) - { - rof = (ROField) InUseList[i]; - if (rof.GetFieldname != null) //DO YET: why null? - this.lboxInUse.Items.Add(rof.GetFieldname); - } - } - } - - - private void DoValueTextBoxes() - { - string menuitm, retval; - if (editlevel == (uint) RecordType.GroupSchema) - { - menuitm = elem.GetAttribute("GroupMenuItem"); - this.tbRetVal.Visible = false; - this.lblRetVal.Visible = false; - VlnXmlElement parent; - parent = (VlnXmlElement) elem.ParentNode; - while (parent != null && (menuitm == "")) - { - // walk up tree to get parent and check for data there - if (menuitm == "") menuitm = parent.GetAttribute("GroupMenuItem"); - if (parent.Name != "RO_Root") - parent = (VlnXmlElement) parent.ParentNode; - else - parent = null; - } - if (menuitm !="") - this.tbMenuVal.Text = CvtFldToUserFld(menuitm); - else - this.tbMenuVal.Text = ""; - } - else - { - menuitm = elem.GetAttribute("MenuItem"); - retval = elem.GetAttribute("RetVal"); - this.tbRetVal.Visible = true; - this.lblRetVal.Visible = true; - VlnXmlElement parent; - parent = (VlnXmlElement) elem.ParentNode; - while (parent != null && (menuitm == "" || retval=="")) - { - // walk up tree to get parent and check for data there - if (menuitm == "") menuitm = parent.GetAttribute("MenuItem"); - if (retval == "") retval = parent.GetAttribute("RetVal"); - if (parent.Name != "RO_Root") - parent = (VlnXmlElement) parent.ParentNode; - else - parent = null; - } - if (menuitm!="") - this.tbMenuVal.Text = CvtFldToUserFld(menuitm); - else - this.tbMenuVal.Text = ""; - if (retval!="") - this.tbRetVal.Text = CvtFldToUserFld(retval); - else - this.tbRetVal.Text = ""; - } - } - - private void FillInData(string grptxt) - { - this.lblGroupText.Text = grptxt; - DoValueTextBoxes(); - SetUpListBoxes(); - - lboxInUse.GotFocus += new EventHandler(this.lboxInUse_GotFocus); - lboxAvail.GotFocus += new EventHandler(this.lboxAvail_GotFocus); - - // save copies of local data, so if there is a change, we know we must save them. - origRetVal=this.tbRetVal.Text; - origMenuItem=this.tbMenuVal.Text; - - // if this is a database level definition & it's a user defined database, - // the okay button is disabled until a field is used. - if (elem.ParentNode.Name == "RO_Root" && dbtype==3) - { - string attr; - if (editlevel==(uint)RecordType.Schema) - attr = elem.GetAttribute("FieldsInUse"); - else - attr = elem.GetAttribute("GroupFieldsInUse"); - if (attr==null || attr=="") btnOK.Enabled=false; - } - } - - protected void lboxInUse_GotFocus (object sender, EventArgs e) - { - lboxAvail.ClearSelected(); - this.btnRemove.Enabled = true; - this.btnAdd.Enabled = false; - this.btnEdit.Enabled = true; - } - protected void lboxAvail_GotFocus (object sender, EventArgs e) - { - lboxInUse.ClearSelected(); - this.btnAdd.Enabled = true; - this.btnRemove.Enabled = false; - this.btnEdit.Enabled = true; - } - private void btnRemove_Click(object sender, System.EventArgs e) - { - //get item in lboxInUse (in use list) and remove it from there - // and add it to the lboxAvail list. - if (lboxInUse.SelectedIndex >=0 ) - { - // get the selected item and its string. Remove it from the listbox, - // add it to the available array list & listbox & then remove it from - // the inuse array list. - int indx = lboxInUse.SelectedIndex; - lboxInUse.Items.RemoveAt(indx); - - // copy if over to availlist - ROField rof = (ROField) InUseList[indx]; - ROField copyrof = new ROField(rof.GetFieldname,rof.GetRecID,rof.GetMasterRecID, rof.GetFieldType); - AvailList.Add(copyrof); - - lboxAvail.Items.Add(copyrof.GetFieldname); - InUseList.RemoveAt(indx); - lboxAvail.Refresh(); - lboxInUse.Refresh(); - } - } - private void btnAdd_Click(object sender, System.EventArgs e) - { - //get item in lboxInUse (in use list) and remove it from there - // and add it to the lboxAvail list. - if (lboxAvail.SelectedIndex >=0 ) - { - // get the selected item and its string. Remove it from the listbox, - // add it to the inuse array list & listbox & then remove it from - // the avail(able) array list. - int indx = lboxAvail.SelectedIndex; - lboxAvail.Items.RemoveAt(indx); - - // copy if over to availlist - ROField rof = (ROField) AvailList[indx]; - ROField copyrof = new ROField(rof.GetFieldname,rof.GetRecID,rof.GetMasterRecID,rof.GetFieldType); - InUseList.Add(copyrof); - - lboxInUse.Items.Add(copyrof.GetFieldname); - AvailList.RemoveAt(indx); - lboxAvail.Refresh(); - lboxInUse.Refresh(); - btnOK.Enabled=true; - - } - } - - private void syntax(string prob,int start, int end) - { - lo=start; - hi=end; - parseerror.Append("Invalid Syntax - "); - parseerror.Append(prob); - } - - private void missingDelimiter(char chr,int start,int end) - { - lo=start; - hi=end; - string delim = "{}{<><"; - int delindx; - delindx = delim.IndexOf(chr,0); - parseerror.Append("Couldn't find matching "); - if (delindx >-1) - parseerror.Append(delim.Substring(delindx,1)); - else - parseerror.Append("?"); - } - private bool isWhiteSpace(char chr) - { - return(chr!=0 && " \t\n\r".IndexOf(chr)!=-1); - } - private int endsIn(char chr, string str, int start, int end) - { - while(start <= end && isWhiteSpace(str[end]))end--; - if(start <= end && str[end]==chr)return 1; - return 0; - } - - private void processBrace(string str, int start, int end) - { - int where=str.IndexOfAny("<>{}=".ToCharArray(),start,end-start); - if(where!=0) - { - char chr=str[where]; - switch(chr) - { - case '{': - // verify that this ends in a } - if(endsIn('}',str,where,end)==0) - { - syntax("should end with }",where,end); - } - break; - case '<': - syntax("< not permitted here",where,where); - break; - case '}': - syntax("} not permitted here",start,where); - break; - case '>': - syntax("> not permitted here",start,where); - break; - } - } - } - - private int findMatchingBrace(string str, int start, int end) - { - int where=start+1; - int last=where; - int termlevel=1; - while(hi==0 && where <= end && termlevel!=0) - { - char chr=str[where]; - switch (chr) - { - case '{': - where=findMatchingBrace(str,where,end); - where++; - break; - case '}': - termlevel=0; - break; - case '>': - missingDelimiter(chr,last,where); - break; - case '<': - int next; - next=str.IndexOfAny("{}<>".ToCharArray(),where+1,end-where); - if(next==0) - { - missingDelimiter(chr,last,end); - } - else if(str[next]!='>') - { - missingDelimiter(chr,last,next); - } - else - { - last=where=next+1; - } - break; - default: - where++; - break; - } - } - if(hi==0 && termlevel!=0) - { - missingDelimiter('{',start,end); - } - return where; - } - - private bool ValidReturnFieldSpec(string str, int start, int end) - { - if (parseerror != null) - parseerror.Remove(0,parseerror.Length); - else - parseerror = new StringBuilder(); - int where=start; - int last=start; - hi=lo=0; - while(hi==0 && where <= end) - { - char chr=str[where]; - switch (chr) - { - case '{': - int next; - next=findMatchingBrace(str,where,end); - if(hi==0) - { - processBrace(str,where+1,next-1); - where=next+1; - last=where; - } - break; - case '}': - missingDelimiter(chr,last,where); - break; - case '>': - missingDelimiter(chr,last,where); - break; - case '<': - int strt=where+1; - where = str.IndexOfAny("<>{}".ToCharArray(),where+1,end-where); - if (where==0) - missingDelimiter('<',start,end); - else if (str[where]=='>') - { - string inusename = str.Substring(strt,where-strt); - // now check field name. - bool found = false; - string rofname; - for (int i=0; i0) - { - MessageBox.Show(parseerror.ToString(),"Error in validating return value"); - return false; - } - else - return true; - } - - private bool ValidFieldSpec(string field) - { - int left = field.IndexOf("<"); - int right; - int stindx = 0; - while (left != -1) - { - // get right bracket and then check for valid field & if commas with - // this, check for integer values. - right = field.IndexOf(">",stindx); - if (right == -1) - { - MessageBox.Show("Missing > in Menu value."); - return false; - } - string substring = field.Substring(left+1,right-left-1); - // do comma parts now. - string inusename; - int comma1 = substring.IndexOf(","); - if (comma1 != -1) - { - // get any numbers for formatting & check for ints. - int comma2 = substring.IndexOf(",",comma1+1); - if (comma2 != -1) // two ints. - { - if (comma2-comma1 > 1) // first format field - not empty - { - string int1 = substring.Substring(comma1+1,comma2-comma1-1); - try - { - int l = System.Convert.ToInt32(int1); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"invalid format number"); - return false; - } - } - if (comma2field.Length) - left = -1; - else - { - stindx=right+1; - left = field.IndexOf("<",left+1); - } - } - return true; - } - private bool ProcessRROMenuChange(VlnXmlElement mnuele, string newtmpl) - { - bool success; - XmlNode chldnode = (XmlNode) mnuele.FirstChild; - VlnXmlElement echild; - while (chldnode != null) - { - if (chldnode is VlnXmlElement) - { - echild = (VlnXmlElement) chldnode; - if (echild.Name != "vlnGroup") - { - // If this is a group defintion subtree it will only have one - // child, which is the text definition for the subgroup. Don't - // include these in the tree. - int levelCnt = chldnode.ChildNodes.Count; - string TheMenuTitle = echild.GetAttribute("MenuTitle"); - if ((levelCnt >= 1) && !TheMenuTitle.Equals("")) - { - string mnustring = echild.GetMenuString(newtmpl,false); - echild.SetAttribute("MenuTitle",mnustring); - success = myrodb.RODB_WriteRO(echild); - if (success==false) return false; - } - } - } - chldnode = chldnode.NextSibling; - } - return true; - } - - private bool UpdateMenuTitles(VlnXmlElement mnuele, string newtmpl, string stredittype, VlnStatusMessage StatMsgWindow) - { - // For this group and below in the xml tree, update menu titles using the new - // template. - bool success; - string haskids; - string kidsloaded; - XmlNode node = (XmlNode) mnuele.FirstChild; - VlnXmlElement child; - - while (node != null) - { - if (node is VlnXmlElement) - { - child = (VlnXmlElement) node; - - // If this is a group menu edit, process group nodes, otherwise - // process rros. For both, when hitting a group node, check that - // it doesn't have a menu item string redefining the menu template. - - if (child.Name == "vlnGroup" && child.HasAttribute(stredittype) == false) - { - haskids = child.GetAttribute("HasChild"); - kidsloaded = child.GetAttribute("ChildLoaded"); - if (haskids == "True" && kidsloaded == "False" ) - { - myrodb.RODB_GetChildData(child,true); - child.SetAttribute("ChildLoaded","True"); - } - StatMsgWindow.StatusMessage = child.GetAttribute("MenuTitle"); - success = UpdateMenuTitles(child,newtmpl, stredittype, StatMsgWindow); - if (success == false) return false; - - if (editlevel == (uint) RecordType.Schema) - { - success = ProcessRROMenuChange(mnuele, newtmpl); - if (success==false)return false; - } - else if (editlevel == (uint) RecordType.GroupSchema) - { - string mnustring = child.GetMenuString(newtmpl,true); - child.SetAttribute("MenuTitle",mnustring); - success = myrodb.RODB_WriteGroup(child,child); - if (success==false) return false; - } - } - } - node = node.NextSibling; - } - // if doing RO menu updates, do all at the current level, otherwise, skip it - // because it is a group menu item. - if (stredittype == "MenuItem") - { - success = ProcessRROMenuChange(mnuele, newtmpl); - if (success==false) return false; - } - return true; - } - - private string CvtUserFldToFld(string fldname) - { - if (fldname.Length < 2) - return fldname; - // a digit cannot start an xml fieldname, prepend a "__" to it. - string tmp0; - if (char.IsDigit(fldname,0)) - tmp0 = "__" + fldname; - else - tmp0 = fldname; - // an xml fieldname cannot have a space, change it to a "__" - string tmpstr = tmp0.Replace(" ","__"); - int len = tmpstr.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - return outstr; - } - - private string CvtFldToUserFld(string fldname) - { - string tmpstr0; - if (fldname.Length < 2) return fldname; - // an xml element name cannot begin with a digit. we had prepended a "__" - if (fldname.Substring(0,2) == "__" && char.IsDigit(fldname,2)) - tmpstr0 = fldname.Substring(2,fldname.Length-2); - else - tmpstr0 = fldname; - // an xml element name cannot have a space, we converted to a "__" - string tmpstr = tmpstr0.Replace("__"," "); - int len = tmpstr.Length; - int cur = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval, indx; - if (tmpstr.Length <6) - indx = -1; - else - indx=tmpstr.IndexOf(OKpunch,cur); - string asc_spchar; - while (indx>=0) - { - outstr += tmpstr.Substring(cur,indx-cur); - asc_spchar = tmpstr.Substring(indx+3,3); - decval = System.Convert.ToInt16(asc_spchar,10); - outstr += System.Convert.ToChar(decval).ToString(); - cur = indx+6; - if (cur+6 > len) - indx = -1; - else - indx = tmpstr.IndexOf(OKpunch,cur); - } - if (cur= 0) - rof = (ROField) InUseList[indx]; - else - { - isInSelList = false; - indx = lboxAvail.SelectedIndex; - if (indx >= 0) - rof = (ROField) AvailList[indx]; - else - { - // message - bad one. - return; - } - } - - uint ftype = rof.GetFieldType; - if (ftype == (uint)FieldTypes.FrmtSingleTxt || ftype == (uint)FieldTypes.VariableTxt || - ftype == (uint)FieldTypes.SingleTxt || ftype == (uint)FieldTypes.Table || - ftype == (uint)FieldTypes.XYPlot || ftype == (uint)FieldTypes.Image) - - { - FieldTypeDefFrm nwtyp = new FieldTypeDefFrm(rof, myrodb, elem, editlevel, AvailList, InUseList); - nwtyp.ShowDialog(); - } - else - { - FieldCombFrm nwcomb = new FieldCombFrm(rof, myrodb, elem, editlevel, rof.GetFieldname, AvailList, InUseList); - nwcomb.ShowDialog(); - } - - // Update Lists & Text boxes to represent any modified text. - if (isInSelList) - { - lboxInUse.Items.Clear(); - // add items to the InUseList box. - for (int i=0; i< InUseList.Count; i++) - { - rof = (ROField) InUseList[i]; - if (rof.GetFieldname != null) - this.lboxInUse.Items.Add(rof.GetFieldname); - } - } - else - { - lboxAvail.Items.Clear(); - // add items to the AvailList box. - for (int i=0; i< AvailList.Count; i++) - { - rof = (ROField) AvailList[i]; - if (rof.GetFieldname != null) - this.lboxAvail.Items.Add(rof.GetFieldname); - } - } - } - - private void btnNew_Click(object sender, System.EventArgs e) - { - ROField rof = new ROField(null,null,null,0); - FieldTypeDefFrm nwtyp = new FieldTypeDefFrm(rof, myrodb, elem, editlevel, AvailList, InUseList); - nwtyp.ShowDialog(); - - if (rof.GetFieldname != null) - { - AvailList.Add(rof); - lboxAvail.Items.Add(rof.GetFieldname); - } - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.lblGroup = new System.Windows.Forms.Label(); - this.lblRetVal = new System.Windows.Forms.Label(); - this.lblMenuVal = new System.Windows.Forms.Label(); - this.tbRetVal = new System.Windows.Forms.TextBox(); - this.tbMenuVal = new System.Windows.Forms.TextBox(); - this.lblGroupText = new System.Windows.Forms.Label(); - this.gbFields = new System.Windows.Forms.GroupBox(); - this.btnNew = new System.Windows.Forms.Button(); - this.btnRemove = new System.Windows.Forms.Button(); - this.btnEdit = new System.Windows.Forms.Button(); - this.btnAdd = new System.Windows.Forms.Button(); - this.lboxAvail = new System.Windows.Forms.ListBox(); - this.lboxInUse = new System.Windows.Forms.ListBox(); - this.lblAvail = new System.Windows.Forms.Label(); - this.lblInUse = new System.Windows.Forms.Label(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.gbFields.SuspendLayout(); - this.SuspendLayout(); - // - // lblGroup - // - this.lblGroup.Location = new System.Drawing.Point(24, 0); - this.lblGroup.Name = "lblGroup"; - this.lblGroup.Size = new System.Drawing.Size(88, 16); - this.lblGroup.TabIndex = 0; - this.lblGroup.Text = "Group:"; - this.lblGroup.TextAlign = System.Drawing.ContentAlignment.TopRight; - // - // lblRetVal - // - this.lblRetVal.Location = new System.Drawing.Point(16, 32); - this.lblRetVal.Name = "lblRetVal"; - this.lblRetVal.Size = new System.Drawing.Size(96, 16); - this.lblRetVal.TabIndex = 1; - this.lblRetVal.Text = "Return Value:"; - this.lblRetVal.TextAlign = System.Drawing.ContentAlignment.TopRight; - // - // lblMenuVal - // - this.lblMenuVal.Location = new System.Drawing.Point(16, 64); - this.lblMenuVal.Name = "lblMenuVal"; - this.lblMenuVal.Size = new System.Drawing.Size(96, 16); - this.lblMenuVal.TabIndex = 2; - this.lblMenuVal.Text = "Menu Value:"; - this.lblMenuVal.TextAlign = System.Drawing.ContentAlignment.TopRight; - // - // tbRetVal - // - this.tbRetVal.Location = new System.Drawing.Point(120, 32); - this.tbRetVal.Name = "tbRetVal"; - this.tbRetVal.Size = new System.Drawing.Size(464, 22); - this.tbRetVal.TabIndex = 4; - this.tbRetVal.Text = "textBox1"; - // - // tbMenuVal - // - this.tbMenuVal.Location = new System.Drawing.Point(120, 64); - this.tbMenuVal.Name = "tbMenuVal"; - this.tbMenuVal.Size = new System.Drawing.Size(464, 22); - this.tbMenuVal.TabIndex = 5; - this.tbMenuVal.Text = "textBox1"; - // - // lblGroupText - // - this.lblGroupText.Location = new System.Drawing.Point(120, 0); - this.lblGroupText.Name = "lblGroupText"; - this.lblGroupText.Size = new System.Drawing.Size(464, 16); - this.lblGroupText.TabIndex = 7; - this.lblGroupText.Text = "label1"; - // - // gbFields - // - this.gbFields.Controls.AddRange(new System.Windows.Forms.Control[] { - this.btnNew, - this.btnRemove, - this.btnEdit, - this.btnAdd, - this.lboxAvail, - this.lboxInUse, - this.lblAvail, - this.lblInUse}); - this.gbFields.Location = new System.Drawing.Point(8, 112); - this.gbFields.Name = "gbFields"; - this.gbFields.Size = new System.Drawing.Size(704, 224); - this.gbFields.TabIndex = 8; - this.gbFields.TabStop = false; - this.gbFields.Text = "Fields"; - // - // btnNew - // - this.btnNew.Location = new System.Drawing.Point(608, 48); - this.btnNew.Name = "btnNew"; - this.btnNew.Size = new System.Drawing.Size(80, 24); - this.btnNew.TabIndex = 7; - this.btnNew.Text = "New..."; - this.btnNew.Click += new System.EventHandler(this.btnNew_Click); - // - // btnRemove - // - this.btnRemove.Enabled = false; - this.btnRemove.Location = new System.Drawing.Point(272, 144); - this.btnRemove.Name = "btnRemove"; - this.btnRemove.Size = new System.Drawing.Size(80, 24); - this.btnRemove.TabIndex = 6; - this.btnRemove.Text = "Remove>>"; - this.btnRemove.Click += new System.EventHandler(this.btnRemove_Click); - // - // btnEdit - // - this.btnEdit.Enabled = false; - this.btnEdit.Location = new System.Drawing.Point(272, 96); - this.btnEdit.Name = "btnEdit"; - this.btnEdit.Size = new System.Drawing.Size(80, 24); - this.btnEdit.TabIndex = 5; - this.btnEdit.Text = "Edit..."; - this.btnEdit.Click += new System.EventHandler(this.btnEdit_Click); - // - // btnAdd - // - this.btnAdd.Enabled = false; - this.btnAdd.Location = new System.Drawing.Point(272, 48); - this.btnAdd.Name = "btnAdd"; - this.btnAdd.Size = new System.Drawing.Size(80, 24); - this.btnAdd.TabIndex = 4; - this.btnAdd.Text = "<< Add"; - this.btnAdd.Click += new System.EventHandler(this.btnAdd_Click); - // - // lboxAvail - // - this.lboxAvail.ItemHeight = 14; - this.lboxAvail.Location = new System.Drawing.Point(376, 48); - this.lboxAvail.Name = "lboxAvail"; - this.lboxAvail.Size = new System.Drawing.Size(216, 144); - this.lboxAvail.TabIndex = 3; - // - // lboxInUse - // - this.lboxInUse.ItemHeight = 14; - this.lboxInUse.Location = new System.Drawing.Point(24, 48); - this.lboxInUse.Name = "lboxInUse"; - this.lboxInUse.Size = new System.Drawing.Size(216, 144); - this.lboxInUse.TabIndex = 2; - // - // lblAvail - // - this.lblAvail.Location = new System.Drawing.Point(384, 24); - this.lblAvail.Name = "lblAvail"; - this.lblAvail.Size = new System.Drawing.Size(80, 16); - this.lblAvail.TabIndex = 1; - this.lblAvail.Text = "Available:"; - // - // lblInUse - // - this.lblInUse.Location = new System.Drawing.Point(24, 24); - this.lblInUse.Name = "lblInUse"; - this.lblInUse.Size = new System.Drawing.Size(64, 16); - this.lblInUse.TabIndex = 0; - this.lblInUse.Text = "In Use:"; - // - // btnOK - // - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOK.Location = new System.Drawing.Point(512, 376); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(88, 24); - this.btnOK.TabIndex = 9; - this.btnOK.Text = "OK"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(616, 376); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(80, 24); - this.btnCancel.TabIndex = 10; - this.btnCancel.Text = "Cancel"; - // - // RODefFrm - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(792, 437); - this.Controls.AddRange(new System.Windows.Forms.Control[] { - this.btnCancel, - this.btnOK, - this.gbFields, - this.lblGroupText, - this.tbMenuVal, - this.tbRetVal, - this.lblMenuVal, - this.lblRetVal, - this.lblGroup}); - this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.Name = "RODefFrm"; - this.Text = "Referenced Object Definition"; - this.gbFields.ResumeLayout(false); - this.ResumeLayout(false); - - } - #endregion - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/RODefFrm.resx b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/RODefFrm.resx deleted file mode 100644 index c87ed6c9..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/RODefFrm.resx +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - RODefFrm - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.cs deleted file mode 100644 index f3706f40..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.cs +++ /dev/null @@ -1,2577 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ROEditor.cs $ $Revision: 54 $ - * $Author: Kathy $ $Date: 7/20/04 2:15p $ - * - * $History: ROEditor.cs $ - * - * ***************** Version 54 ***************** - * User: Kathy Date: 7/20/04 Time: 2:15p - * Updated in $/EXE/RefObj/ROEditor - * B2004-021 improve duplicate error message - * - * ***************** Version 53 ***************** - * User: Kathy Date: 7/15/04 Time: 11:11a - * Updated in $/EXE/RefObj/ROEditor - * Fix B2004-017 - * - * ***************** Version 52 ***************** - * User: Jsj Date: 1/21/04 Time: 12:11p - * Updated in $/EXE/RefObj/ROEditor - * calls new function to get currently selected field type for multi type - * field - * - * ***************** Version 51 ***************** - * User: Jsj Date: 1/07/04 Time: 2:19p - * Updated in $/EXE/RefObj/ROEditor - * allow use of SQL Server - * - * ***************** Version 50 ***************** - * User: Kathy Date: 10/15/03 Time: 10:30a - * Updated in $/EXE/RefObj/ROEditor - * found/fixed as part of B2003-060 - will go thru QA process for that - * bug's fix - * - * ***************** Version 49 ***************** - * User: Jsj Date: 7/02/03 Time: 9:25a - * Updated in $/EXE/RefObj/ROEditor - * made messagebox calls modal by removing the parent window reference - * - * ***************** Version 48 ***************** - * User: Kathy Date: 5/30/03 Time: 12:48p - * Updated in $/EXE/RefObj/ROEditor - * B2003-044: sync up xml with UI tree view - * - * ***************** Version 47 ***************** - * User: Kathy Date: 5/21/03 Time: 12:52p - * Updated in $/EXE/RefObj/ROEditor - * B2003-034: if only one field for ro, wasn't always processing it. - * - * ***************** Version 46 ***************** - * User: Kathy Date: 5/07/03 Time: 1:59p - * Updated in $/EXE/RefObj/ROEditor - * B2003-033 fixed. - * - * ***************** Version 45 ***************** - * User: Jsj Date: 4/14/03 Time: 3:03p - * Updated in $/EXE/RefObj/ROEditor - * changes due to RO FST file creation speed up - * - * ***************** Version 44 ***************** - * User: Kathy Date: 3/26/03 Time: 2:20p - * Updated in $/EXE/RefObj/ROEditor - * speed up initial load - * - * ***************** Version 43 ***************** - * User: Kathy Date: 3/11/03 Time: 11:26a - * Updated in $/EXE/RefObj/ROEditor - * be sure tree isloaded for group def change - * - * ***************** Version 42 ***************** - * User: Kathy Date: 3/04/03 Time: 11:13a - * Updated in $/EXE/RefObj/ROEditor - * may be more than 1 new database for tree at a time - * - * ***************** Version 41 ***************** - * User: Kathy Date: 2/24/03 Time: 11:09a - * Updated in $/EXE/RefObj/ROEditor - * fixed new with implicit cancel bug (crash) - * - * ***************** Version 40 ***************** - * User: Jsj Date: 2/21/03 Time: 5:33p - * Updated in $/EXE/RefObj/ROEditor - * fixed RO | Save menu item enable/disable state - * - * ***************** Version 39 ***************** - * User: Kathy Date: 2/03/03 Time: 10:40a - * Updated in $/EXE/RefObj/ROEditor - * ui improve - * - * ***************** Version 38 ***************** - * User: Kathy Date: 1/22/03 Time: 12:18p - * Updated in $/EXE/RefObj/ROEditor - * duplicate/save as bug - * - * ***************** Version 37 ***************** - * User: Kathy Date: 1/15/03 Time: 1:57p - * Updated in $/EXE/RefObj/ROEditor - * improve UI - * - * ***************** Version 36 ***************** - * User: Jsj Date: 1/13/03 Time: 12:00p - * Updated in $/EXE/RefObj/ROEditor - * fixed call to data conversion - * - * ***************** Version 35 ***************** - * User: Kathy Date: 1/08/03 Time: 10:07a - * Updated in $/EXE/RefObj/ROEditor - * view image support - * - * ***************** Version 34 ***************** - * User: Kathy Date: 1/07/03 Time: 9:25a - * Updated in $/EXE/RefObj/ROEditor - * roeditor.own & specific ro (from vfw) - * - * ***************** Version 33 ***************** - * User: Jsj Date: 1/06/03 Time: 11:31a - * Updated in $/EXE/RefObj/ROEditor - * logic for No RO directory, Emply RO directroy, and RO directory with - * paradox database - * - * ***************** Version 32 ***************** - * User: Jsj Date: 1/02/03 Time: 3:57p - * Updated in $/EXE/RefObj/ROEditor - * added INI file logic - * - * ***************** Version 31 ***************** - * User: Kathy Date: 12/17/02 Time: 9:47a - * Updated in $/EXE/RefObj/ROEditor - * fix some duplicate/save as bugs - * - * ***************** Version 30 ***************** - * User: Kathy Date: 12/16/02 Time: 12:12p - * Updated in $/EXE/RefObj/ROEditor - * added cancel button & fixed some duplicate/saveas bugs - * - * ***************** Version 29 ***************** - * User: Kathy Date: 12/13/02 Time: 10:06a - * Updated in $/EXE/RefObj/ROEditor - * if 'cancel' from edit, was 'stuck' on that edit control - * - * ***************** Version 28 ***************** - * User: Kathy Date: 12/10/02 Time: 2:26p - * Updated in $/EXE/RefObj/ROEditor - * fieldname special chars & bug fixes - * - * ***************** Version 27 ***************** - * User: Jsj Date: 12/06/02 Time: 3:28p - * Updated in $/EXE/RefObj/ROEditor - * fix for parameter display data (ignoring the data for now) - * - * ***************** Version 26 ***************** - * User: Kathy Date: 12/06/02 Time: 11:59a - * Updated in $/EXE/RefObj/ROEditor - * improve tree view & fix minor menuing things - * - * ***************** Version 25 ***************** - * User: Kathy Date: 12/02/02 Time: 8:30a - * Updated in $/EXE/RefObj/ROEditor - * fieldname replace chars - * - * ***************** Version 24 ***************** - * User: Jsj Date: 11/27/02 Time: 12:54p - * Updated in $/EXE/RefObj/ROEditor - * Modification to create the RO.FST file - * - * ***************** Version 23 ***************** - * User: Kathy Date: 11/26/02 Time: 11:10a - * Updated in $/EXE/RefObj/ROEditor - * add icons, list view & improve sizing - * - * ***************** Version 22 ***************** - * User: Kathy Date: 11/20/02 Time: 1:29p - * Updated in $/EXE/RefObj/ROEditor - * selecting 'x' doesn't close it - fixed. - * - * ***************** Version 21 ***************** - * User: Kathy Date: 11/20/02 Time: 11:37a - * Updated in $/EXE/RefObj/ROEditor - * zoom btn & ask about save for mod data - * - * ***************** Version 20 ***************** - * User: Kathy Date: 11/19/02 Time: 11:30a - * Updated in $/EXE/RefObj/ROEditor - * Fix a variety of UI bugs - * - * ***************** Version 19 ***************** - * User: Kathy Date: 10/24/02 Time: 11:17a - * Updated in $/EXE/RefObj/ROEditor - * save as, duplicate and delete top group - * - * ***************** Version 18 ***************** - * User: Kathy Date: 10/15/02 Time: 2:19p - * Updated in $/EXE/RefObj/ROEditor - * added new hi-level group - * - * ***************** Version 17 ***************** - * User: Kathy Date: 10/11/02 Time: 11:37a - * Updated in $/EXE/RefObj/ROEditor - * Restore Btn, bug fixes - * - * ***************** Version 16 ***************** - * User: Kathy Date: 10/10/02 Time: 10:03a - * Updated in $/EXE/RefObj/ROEditor - * accessory page id & try to make xml tree in sync with tree control - * - * ***************** Version 15 ***************** - * User: Jsj Date: 10/03/02 Time: 4:53p - * Updated in $/EXE/RefObj/ROEditor - * got the Edit menus (cut,paste,etc) working - * - * ***************** Version 14 ***************** - * User: Jsj Date: 10/03/02 Time: 1:27p - * Updated in $/EXE/RefObj/ROEditor - * put back missing variables for tree nodes - * - * ***************** Version 13 ***************** - * User: Jsj Date: 10/02/02 Time: 5:46p - * Updated in $/EXE/RefObj/ROEditor - * added an Edit menu item to the popup and RO menus. Added logic to - * enable or disable the Save, Expand/Collaspe, and Properties menu items, - * added an About dialog box. Added logic to clear the edit pane. - * - * ***************** Version 12 ***************** - * User: Kathy Date: 10/02/02 Time: 2:43p - * Updated in $/EXE/RefObj/ROEditor - * more tying tree to data - * - * ***************** Version 11 ***************** - * User: Kathy Date: 10/02/02 Time: 1:39p - * Updated in $/EXE/RefObj/ROEditor - * insert/delete group/ro tie tree to code (round 1) - * - * ***************** Version 10 ***************** - * User: Jsj Date: 10/02/02 Time: 12:11p - * Updated in $/EXE/RefObj/ROEditor - * added Delete to popup, and added logic to right mouse button so that it - * selects the tree node and modifies the popup menu based on if that node - * is colasped or expanded. - * - * ***************** Version 9 ***************** - * User: Jsj Date: 10/01/02 Time: 4:50p - * Updated in $/EXE/RefObj/ROEditor - * added menus and ability to pass in a database path - * - * ***************** Version 8 ***************** - * User: Kathy Date: 9/27/02 Time: 1:20p - * Updated in $/EXE/RefObj/ROEditor - * fix minor problems with listing groups without ros - * - * ***************** Version 7 ***************** - * User: Kathy Date: 9/25/02 Time: 9:57a - * Updated in $/EXE/RefObj/ROEditor - * dev - * - * ***************** Version 6 ***************** - * User: Kathy Date: 9/19/02 Time: 10:04a - * Updated in $/EXE/RefObj/ROEditor - * minor changes during dev - * - * ***************** Version 5 ***************** - * User: Kathy Date: 9/11/02 Time: 1:16p - * Updated in $/EXE/RefObj/ROEditor - * vlnxml - * - * ***************** Version 4 ***************** - * User: Kathy Date: 9/10/02 Time: 12:55p - * Updated in $/EXE/RefObj/ROEditor - * menutitle attribute - * - * ***************** Version 3 ***************** - * User: Kathy Date: 9/05/02 Time: 12:41p - * Updated in $/EXE/RefObj/ROEditor - * dev - * - * ***************** Version 2 ***************** - * User: Kathy Date: 8/28/02 Time: 10:58a - * Updated in $/EXE/RefObj/ROEditor - * development - * - * ***************** Version 1 ***************** - * User: Jsj Date: 8/23/02 Time: 3:35p - * Created in $/EXE/RefObj/ROEditor - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Diagnostics; -using System.Windows.Forms; -using System.Data; -using System.Xml; -using System.Xml.Schema; -using System.Text; -using System.IO; -using ctlXMLEditLib; -using RODBInterface; -using ROFields; -using Org.Mentalis.Files; -//using IniFileIO; - - - -namespace ROEditor -{ - /// - /// Summary description for Form1. - /// - /// - - public class Form1 : System.Windows.Forms.Form - { - private ctlXMLEditLib.ctlXMLEdit ctlXMLEdit2; - private RODB myrodb; - private string DbConnectPath; - private System.ComponentModel.IContainer components; - private System.Windows.Forms.Splitter splitter1; - private System.Windows.Forms.MainMenu mainMenu1; - private System.Windows.Forms.MenuItem menuItem10; - private System.Windows.Forms.MenuItem menuNewGroup; - private System.Windows.Forms.MenuItem menuEdit; - private System.Windows.Forms.MenuItem menuEditCopy; - private System.Windows.Forms.MenuItem menuEditCut; - private System.Windows.Forms.MenuItem menuEditPaste; - private System.Windows.Forms.MenuItem menuTools; - private System.Windows.Forms.MenuItem menuToolsROFST; - private System.Windows.Forms.MenuItem menuHelp; - private System.Windows.Forms.MenuItem menuHelpAbout; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.MenuItem menuRO; - private System.Windows.Forms.MenuItem menuRONew; - private System.Windows.Forms.MenuItem menuNewRefObj; - private System.Windows.Forms.MenuItem menuROEdit; - private System.Windows.Forms.MenuItem menuRODelete; - private System.Windows.Forms.MenuItem menuROSave; - private System.Windows.Forms.MenuItem menuROProperties; - private System.Windows.Forms.MenuItem menuROExit; - private System.Windows.Forms.MenuItem menuItem1; - - private XmlDocument myroXmlDoc; - private VlnXmlElement newone; - private TreeNode TreeNewparent; - private System.Windows.Forms.MenuItem menuItem3; - private System.Windows.Forms.MenuItem menuItem5; - private System.Windows.Forms.MenuItem menuEditUndo; - private System.Windows.Forms.MenuItem menuEditDelete; - private System.Windows.Forms.MenuItem menuEditSelAll; - private TreeNode LastSelectedNode; - private TextBox CurrentTextBox; // currently selected TextBox field - private VlnXmlElement rootXml; - private TreeNode rootNode; - - private System.Windows.Forms.ImageList imageListRoTree; - private System.Windows.Forms.TreeView roTreeView; - private System.Windows.Forms.ListView roListView; - private System.Windows.Forms.ToolBar tbar; - private bool duplicate_active; - - private const int ROGROUPIMAGE = 0; - private System.Windows.Forms.Panel panel2; - private const int ROIMAGE = 1; - - private ToolBarButton tbtnSave; - private ToolBarButton tbtnRestore; - private ToolBarButton tbtnCancel; - private ToolBarButton tbtnSaveAs; - private ToolBarButton tbtnDuplicate; - private System.Windows.Forms.MenuItem menuItem2; - private System.Windows.Forms.ImageList imageListToolBar; - private ToolBarButton tbtnZoom; - - public Form1(string PassedInPath, string specificro) - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // The data path the was passed in. - DbConnectPath = PassedInPath; - - // Setup the context menu - MenuItem[] ContextMenuItemList = new MenuItem[6]; - ContextMenuItemList[0] = new MenuItem("Expand/Collaspe",new EventHandler(roTreeView_ToggleExpandCollapse)); - ContextMenuItemList[1] = menuRONew.CloneMenu(); - ContextMenuItemList[2] = menuROEdit.CloneMenu(); - ContextMenuItemList[3] = menuRODelete.CloneMenu(); - ContextMenuItemList[4] = menuROSave.CloneMenu(); - ContextMenuItemList[5] = menuROProperties.CloneMenu(); - - ContextMenu treePopupMenu = new ContextMenu(ContextMenuItemList); - - // Add the root to the tree. - myrodb = new RODB(DbConnectPath); - myroXmlDoc = myrodb.RODB_GetRoot(); - rootXml = (VlnXmlElement) myroXmlDoc.FirstChild; - rootNode = new TreeNode("Referenced Objects",ROGROUPIMAGE,ROGROUPIMAGE); - rootNode.Tag = rootXml; - roTreeView.Nodes.Add(rootNode); - roTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.roTreeView_AfterSelect); - roTreeView.DoubleClick += new System.EventHandler(this.roTreeView_OnDoubleClick); - roTreeView.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.roTreeView_BeforeExpand); - roTreeView.Sorted = true; - roTreeView.ContextMenu = treePopupMenu; - roTreeView.MouseDown += new System.Windows.Forms.MouseEventHandler(roTreeView_OnMouseDown); - - // For each group, get its subgroup. - bool success = myrodb.RODB_GetRootGroups((VlnXmlElement)myroXmlDoc.FirstChild); - if (success == false) this.Close(); - VlnXmlElement group = (VlnXmlElement) myroXmlDoc.FirstChild.FirstChild; - while (group != null) - { - // Add the top groups to tree control as a node. - TreeNode grnode = new TreeNode(CvtFldToUserFld(group.InnerText),ROGROUPIMAGE,ROGROUPIMAGE); - grnode.Tag = group; - rootNode.Nodes.Add(grnode); - string haskids = group.GetAttribute("HasChild"); - - if (haskids == "True") // add a 'dummy' node to tree if there are any - { - TreeNode subch = new TreeNode("VLN_DUMMY_FOR_TREE"); - subch.Tag = group; - grnode.Nodes.Add(subch); - } - group = (VlnXmlElement) group.NextSibling; - } - newone = null; - rootNode.Expand(); - duplicate_active = false; - if (specificro != null) DoSpecificRO(specificro); - } - - private void DoSpecificRO(string specificro) - { - // if a specific RO was passed in. Load the xml tree from it to the root & then - // edit it through the ctlXmledit. - // from the input tbl string, get a table name. - - ArrayList levelRecids = new ArrayList(); - int itbl = System.Convert.ToInt32(specificro.Substring(0,4),16); - string stbl = System.Convert.ToString(itbl,10); - string pstbl = stbl.PadLeft(6,'0'); - string tbname = "RO" + pstbl; - string recid = specificro.Substring(4,8); - - // read in this element from the table. - VlnXmlElement spro; - spro = myrodb.RODB_ReadRO(tbname, recid); - - VlnXmlElement parent; - string parentid; - parentid = spro.GetAttribute("ParentID"); - string sproParentid = parentid; - - // walk up tree to get the path through the tree. - VlnXmlElement child = spro; - while (parentid != null && parentid != "00000000") - { - parent = myrodb.RODB_ReadRO(tbname, parentid); - if (parent != null) - { - parentid = parent.GetAttribute("ParentID"); - levelRecids.Add(parent.GetAttribute("RecID")); - if (parentid == "00000000") break; - parent.AppendChild(child); - child = parent; - } - else - parentid = null; - } - - // Now hook this into the top part of tree by loading data into - // xml & hooking it into the tree control. - string attrele; - string attrspro; - TreeNode trnd = rootNode.FirstNode; - VlnXmlElement ele; - for (int i=levelRecids.Count-1; i>=0; i--) - { - ele = (VlnXmlElement) trnd.Tag; - attrele = ele.GetAttribute((i==levelRecids.Count-1)?"Table":"RecID"); - if (i==levelRecids.Count-1) - attrspro = spro.GetAttribute("Table"); - else - attrspro = (string) levelRecids[i]; - while (attrele != attrspro) - { - // get next one. - trnd = trnd.NextNode; - ele = (VlnXmlElement) trnd.Tag; - attrele = ele.GetAttribute((i==levelRecids.Count-1)?"Table":"RecID"); - } - if (trnd == null) - { - MessageBox.Show("Error editting RO"); - return; - } - LoadKids(trnd); - trnd = trnd.FirstNode; - } - // lastly select the active node, this will load up everything we need. - if (trnd == null) - { - MessageBox.Show("Error editting RO"); - return; - } - ele = (VlnXmlElement) trnd.Tag; - attrele = ele.GetAttribute("RecID"); - while (attrele != spro.GetAttribute("RecID")) - { - trnd = trnd.NextNode; - ele = (VlnXmlElement) trnd.Tag; - attrele = ele.GetAttribute("RecID"); - } - if (trnd == null) - { - MessageBox.Show("Error editting RO"); - return; - } - roTreeView.SelectedNode = trnd; - - } - - protected void roTreeView_AfterSelect (object sender, - System.Windows.Forms.TreeViewEventArgs e) - { - // if the same node was selected, don't do anything. - if (LastSelectedNode != null && LastSelectedNode.Equals(roTreeView.SelectedNode)) return; - - TreeNode CurrentNode = roTreeView.SelectedNode; - if (LastSelectedNode == null) - LastSelectedNode = CurrentNode; - if (CurrentNode != null) - { - if (!LastSelectedNode.Equals(CurrentNode)) - { - int retval = roTreeView_ClearEditDisplay(false); - if (retval == -1) // cancel - { - roTreeView.SelectedNode = LastSelectedNode; - - return; - } - LastSelectedNode = CurrentNode; - } - - // if selected to make new, but didn't add any data, remove it. - if (newone!=null) - { - XmlNode parent = newone.ParentNode; - parent.RemoveChild(newone); - newone=null; - } - - /* enable/disable menu items */ - - // Enable the Save item if changes were made - // Just copy the state of the Save Button - menuROSave.Enabled = tbtnSave.Enabled; - roTreeView.ContextMenu.MenuItems[4].Enabled = tbtnSave.Enabled; - - // Should the properties menu item be available? - VlnXmlElement curelem = (VlnXmlElement) CurrentNode.Tag; - if (curelem.Name == "vlnGroup") - menuROProperties.Enabled = true; - else - menuROProperties.Enabled = false; - - // Should the delete menu item be available, i.e. at top node, NO! - if (curelem.Name == "RO_Root") - { - menuRODelete.Enabled = false; - menuNewRefObj.Enabled = false; - } - else - { - menuRODelete.Enabled = true; - menuNewRefObj.Enabled = true; - } - - // Is there field text to edit? - // yes if current node is either a subgroup or ro value node - menuROEdit.Enabled = roTreeView_IsSubgroupOrRO(); - LoadKids(CurrentNode); - if (curelem.Name != "RO_Root" && curelem.Name != "vlnGroup") - EditRO(curelem); - else - updateRoListView(CurrentNode); - } - } - - private string CvtUserFldToFld(string fldname) - { - if (fldname.Length < 2) - return fldname; - // a digit cannot start an xml fieldname, prepend a "__" to it. - string tmp0; - if (char.IsDigit(fldname,0)) - tmp0 = "__" + fldname; - else - tmp0 = fldname; - // an xml fieldname cannot have a space, change it to a "__" - string tmpstr = tmp0.Replace(" ","__"); - int len = tmpstr.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - return outstr; - } - - private string CvtFldToUserFld(string fldname) - { - string tmpstr0; - if (fldname.Length < 2) return fldname; - // an xml element name cannot begin with a digit. we had prepended a "__" - if (fldname.Substring(0,2) == "__" && char.IsDigit(fldname,2)) - tmpstr0 = fldname.Substring(2,fldname.Length-2); - else - tmpstr0 = fldname; - // an xml element name cannot have a space, we converted to a "__" - string tmpstr = tmpstr0.Replace("__"," "); - int len = tmpstr.Length; - int cur = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval, indx; - if (tmpstr.Length <6) - indx = -1; - else - indx=tmpstr.IndexOf(OKpunch,cur); - string asc_spchar; - while (indx>=0) - { - outstr += tmpstr.Substring(cur,indx-cur); - asc_spchar = tmpstr.Substring(indx+3,3); - decval = System.Convert.ToInt16(asc_spchar,10); - outstr += System.Convert.ToChar(decval).ToString(); - cur = indx+6; - if (cur+6 > len) - indx = -1; - else - indx = tmpstr.IndexOf(OKpunch,cur); - } - if (cur 0) - { - if (CurrentNode.IsExpanded) - roTreeView.ContextMenu.MenuItems[0].Text = "Collapse"; - else - roTreeView.ContextMenu.MenuItems[0].Text = "Expand"; - roTreeView.ContextMenu.MenuItems[0].Enabled = true; - } - else - { - roTreeView.ContextMenu.MenuItems[0].Text = "Expand/Collapse"; - roTreeView.ContextMenu.MenuItems[0].Enabled = false; - } - - - // Should the save option be available? - // Just reflect the Save button state. - roTreeView.ContextMenu.MenuItems[4].Enabled = tbtnSave.Enabled; - menuROSave.Enabled = tbtnSave.Enabled; - - // Should the properties menu item be available? - VlnXmlElement curelem = (VlnXmlElement) CurrentNode.Tag; - if (curelem.Name == "vlnGroup") - roTreeView.ContextMenu.MenuItems[5].Enabled = true; - else - roTreeView.ContextMenu.MenuItems[5].Enabled = false; - - // should delete menu item be available, i.e. top node NO! - if (curelem.Name == "RO_Root") - { - roTreeView.ContextMenu.MenuItems[3].Enabled = false; - roTreeView.ContextMenu.MenuItems[1].MenuItems[1].Enabled = false; - } - else - { - roTreeView.ContextMenu.MenuItems[3].Enabled = true; - roTreeView.ContextMenu.MenuItems[1].MenuItems[1].Enabled = true; - } - - // Is there field text to edit? - // yes if current node is either a subgroup or ro value node - roTreeView.ContextMenu.MenuItems[2].Enabled = roTreeView_IsSubgroupOrRO(); - } - } - } - - /* - * return true if current tree node is a either a subgroup or a RO - */ - protected bool roTreeView_IsSubgroupOrRO() - { - bool rtnval = false; - TreeNode CurrentNode = roTreeView.SelectedNode; - VlnXmlElement curelem = (VlnXmlElement) CurrentNode.Tag; - if (curelem.Name != "RO_Root") - { - if (curelem.Name == "vlnGroup") - { - TreeNode PNode = CurrentNode.Parent; - VlnXmlElement pelem = (VlnXmlElement) PNode.Tag; - rtnval = (pelem.Name == "vlnGroup"); - } - else - rtnval = true; - } - return rtnval; - } - /* - * Clear the edit display (panel on the right side) - */ - protected int roTreeView_ClearEditDisplay(bool cancel) - { - if (ctlXMLEdit2 != null) - { - if (cancel != true) - { - // first see if there is changes to data, if so, then prompt to see if - // user wants to continue. - bool chgdata = ctlXMLEdit2.DataChanged(); - if (chgdata == true) - { - DialogResult dr = MessageBox.Show("Do you want to save your changes?","Warning:",MessageBoxButtons.YesNoCancel); - if (dr == DialogResult.Yes) - { - TreeNode tr=null; - bool ok = SaveRO(ref tr); // savero needs a tree node - if (ok == false) return -1; - } - else if (dr == DialogResult.Cancel) - return -1; - } - } - ctlXMLEdit2.Dispose(); - this.panel2.Controls.Remove(ctlXMLEdit2); - this.panel2.Visible = false; - tbtnSave.Enabled = false; - menuROSave.Enabled = tbtnSave.Enabled; - tbtnRestore.Enabled = false; - tbtnSaveAs.Enabled = false; - tbtnDuplicate.Enabled = false; - tbtnZoom.Enabled = false; - tbtnZoom.Text = "Zoom"; - ctlXMLEdit2 = null; - } - // The current text box no longer has focus. - CurrentTextBox = null; - tbtnCancel.Enabled = false; - roTreeView_ResetEditMenu(); - duplicate_active = false; - return 0; - } - - protected void roListView_ClearListDisplay() - { - if (roListView != null) - { - roListView.Dispose(); - this.panel1.Controls.Remove(roListView); - roListView=null; - } - } - - private void CreateCtlXmlEdit2(VlnXmlElement curelem, XmlSchema myschema, ArrayList reqfields) - { - ctlXMLEdit2 = new ctlXMLEditLib.ctlXMLEdit(curelem,myschema,reqfields); - ctlXMLEdit2.AutoScroll = true; - ctlXMLEdit2.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - ctlXMLEdit2.Name = "ctlXMLEdit2"; - ctlXMLEdit2.Size = new System.Drawing.Size(ctlXMLEdit2.GetMaxWidth(),ctlXMLEdit2.GetMaxLength()); - this.panel2.Visible = true; - this.panel2.Size = new System.Drawing.Size(ctlXMLEdit2.GetMaxWidth()+20,ctlXMLEdit2.GetMaxLength()+10); - this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - ctlXMLEdit2.TabIndex = 4; - ctlXMLEdit2.Tag = ""; - /* - * Spin through all of the controls and assign an event handler - * for changed text so that when the user changes any of the RO Text, - * the Save button will become enabled - */ - System.Collections.IEnumerator ctlEnumerator = ctlXMLEdit2.Controls.GetEnumerator(); - while (ctlEnumerator.MoveNext()) - { - Control TmpInfo; - TmpInfo = (Control)ctlEnumerator.Current; - if (TmpInfo is GroupBox) - { - System.Collections.IEnumerator ctlGroup = TmpInfo.Controls.GetEnumerator();; - while(ctlGroup.MoveNext()) - { - Control tmpradio = (Control) ctlGroup.Current; - tmpradio.Click += new EventHandler(ctlXMLEdit2_ClickControl); - } - } - else - { - TmpInfo.TextChanged += new EventHandler(ctlXMLEdit2_TextChanged); - TmpInfo.Click += new EventHandler(ctlXMLEdit2_ClickControl); - } - } - this.panel2.Controls.Add(ctlXMLEdit2); - tbtnCancel.Enabled = true; - } - - private void EditRO(VlnXmlElement curelem) - { - newone=null; - // can't edit fields for top or top group nodes (top node not editable, - // and top group node data change at properties level). - if (curelem.Name == "RO_Root" || curelem.ParentNode.Name == "RO_Root") return; - - int retval = roTreeView_ClearEditDisplay(false); - if (retval == -1) return; - roListView_ClearListDisplay(); - - XmlSchema myschema; - // If no schema exists, then the definition of the item may not be complete - give - // a message. (B2004-017) - if (curelem.Name != "vlnGroup") - { - myschema = myrodb.RODB_GetSchema(curelem); - if (myschema==null) - { - MessageBox.Show("RO Definition does not exist, check RO Definition under Properties for the Group that contains this RO."); - return; - } - } - else - { - myschema = myrodb.RODB_GetGroupSchema(curelem); - if (myschema==null) - { - MessageBox.Show("Subgroup Definition does not exist, check Subgroup Definition under Properties for the Group that contains this Subgroup."); - return; - } - } - - ArrayList reqfields = curelem.GetRequiredFields(); - CreateCtlXmlEdit2(curelem,myschema,reqfields); - this.panel2.Controls.Add(ctlXMLEdit2); - tbtnSave.Enabled=false; // set initial states of buttons on edit - tbtnRestore.Enabled=false; - tbtnCancel.Enabled=true; - tbtnSaveAs.Enabled=false; - tbtnDuplicate.Enabled=true; - tbtnZoom.Enabled = false; - ctlXMLEdit2.Focus(); - } - protected void roTreeView_OnDoubleClick (object sender, System.EventArgs e) - { - VlnXmlElement curelem = (VlnXmlElement) roTreeView.SelectedNode.Tag; - EditRO(curelem); - } - - protected void roTreeView_ResetEditMenu () - { - this.menuEditCopy.Enabled = false; - this.menuEditCut.Enabled = false; - this.menuEditPaste.Enabled = false; - this.menuEditDelete.Enabled = false; - this.menuEditSelAll.Enabled = false; - this.menuEditUndo.Enabled = false; - } - - - protected void ctlXMLEdit2_ClickControl(object sender, EventArgs e) - { - TextBox tmpTxtbx = new TextBox(); - CurrentTextBox = null; - - roTreeView_ResetEditMenu(); - - if (sender.GetType() == tmpTxtbx.GetType()) - { - tmpTxtbx = (TextBox)sender; - CurrentTextBox = tmpTxtbx; // the text box currently selected - - if (CurrentTextBox.Multiline) - { - tbtnZoom.Text = "Zoom"; - tbtnZoom.Enabled = true; - } - else if (CurrentTextBox == ctlXMLEdit2.GetGraphicsFiletextbox() && CurrentTextBox.Text != null && CurrentTextBox.Text != "") - { - tbtnZoom.Enabled = true; - tbtnZoom.Text = "View Image"; - } - else - { - tbtnZoom.Text = "Zoom"; - tbtnZoom.Enabled = false; - } - - if (tmpTxtbx.CanUndo) - this.menuEditUndo.Enabled = true; - - if (tmpTxtbx.TextLength != tmpTxtbx.SelectionLength) - { - this.menuEditSelAll.Enabled = true; - } - - if (tmpTxtbx.SelectionLength > 0) - { - this.menuEditDelete.Enabled = true; - this.menuEditCopy.Enabled = true; - this.menuEditCut.Enabled = true; - } - object dataobj = System.Windows.Forms.Clipboard.GetDataObject(); - if (dataobj != null) - this.menuEditPaste.Enabled=true; - } - else if (sender is RadioButton) - { - tbtnCancel.Enabled = true; - tbtnSave.Enabled = true; - tbtnRestore.Enabled = true; - tbtnSaveAs.Enabled = true; - } - menuROSave.Enabled = tbtnSave.Enabled; - } - - - protected void ctlXMLEdit2_TextChanged(object sender, EventArgs e) - { - if (CurrentTextBox != null) - { - this.menuEditUndo.Enabled = true; - this.menuEditSelAll.Enabled = (CurrentTextBox.TextLength > 0); - } - - tbtnSave.Enabled = true; - tbtnRestore.Enabled = true; - tbtnSaveAs.Enabled = true; - tbtnCancel.Enabled = true; - menuROSave.Enabled = tbtnSave.Enabled; - } - - private void LoadKids(TreeNode enode) - { - VlnXmlElement elem; - elem = (VlnXmlElement)enode.Tag; - string haskids; - string kidsloaded; - haskids = elem.GetAttribute("HasChild"); - kidsloaded = elem.GetAttribute("ChildLoaded"); - if (haskids == "True" && kidsloaded == "False" ) - { - // if there's a dummy tree node (used to have tree control expansion for - // items not yet loaded, delete child in tree control) - XmlNode tmpnode = (XmlNode) elem; - XmlNode chldnode; - VlnXmlElement echild; - if (enode.FirstNode.Text == "VLN_DUMMY_FOR_TREE") enode.FirstNode.Remove(); - Cursor.Current = Cursors.WaitCursor; - myrodb.RODB_GetChildData(elem,true); - chldnode = tmpnode.FirstChild; - while (chldnode != null) - { - if (chldnode is VlnXmlElement) - { - echild = (VlnXmlElement) chldnode; - TreeNode chldnd; - if (echild.Name == "vlnGroup") - { - chldnd = new TreeNode(echild.GetAttribute("MenuTitle"),ROGROUPIMAGE,ROGROUPIMAGE); - chldnd.Tag = echild; - enode.Nodes.Add(chldnd); - // add a 'dummy' node to tree if there are any children - string haskids1="False"; - string kidsloaded1="False"; - if (echild.HasAttribute("HasChild")==true) - haskids1 = echild.GetAttribute("HasChild"); - if (echild.HasAttribute("ChildLoaded")==true) - kidsloaded1 = echild.GetAttribute("ChildLoaded"); - if (haskids1=="True" && kidsloaded1=="False") - { - TreeNode subch = new TreeNode("VLN_DUMMY_FOR_TREE"); - chldnd.Nodes.Add(subch); - } - } - else - { - // If this is a group defintion subtree it will only have one - // child, which is the text definition for the subgroup. Don't - // include these in the tree. - int levelcnt = chldnode.ChildNodes.Count; - string TheMenuTitle = echild.GetAttribute("MenuTitle"); - if (levelcnt>=1 && !TheMenuTitle.Equals("")) - { - chldnd = new TreeNode(TheMenuTitle,ROIMAGE,ROIMAGE); - chldnd.Tag = echild; - enode.Nodes.Add(chldnd); - } - } - } - chldnode = chldnode.NextSibling; - } - Cursor.Current = Cursors.Default; - } - } - - protected void roTreeView_BeforeExpand(object sender, - System.Windows.Forms.TreeViewCancelEventArgs e) - { - LoadKids(e.Node); - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the co`de editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); - this.imageListRoTree = new System.Windows.Forms.ImageList(this.components); - this.splitter1 = new System.Windows.Forms.Splitter(); - this.mainMenu1 = new System.Windows.Forms.MainMenu(this.components); - this.menuRO = new System.Windows.Forms.MenuItem(); - this.menuRONew = new System.Windows.Forms.MenuItem(); - this.menuNewGroup = new System.Windows.Forms.MenuItem(); - this.menuNewRefObj = new System.Windows.Forms.MenuItem(); - this.menuItem1 = new System.Windows.Forms.MenuItem(); - this.menuROEdit = new System.Windows.Forms.MenuItem(); - this.menuRODelete = new System.Windows.Forms.MenuItem(); - this.menuROSave = new System.Windows.Forms.MenuItem(); - this.menuROProperties = new System.Windows.Forms.MenuItem(); - this.menuItem10 = new System.Windows.Forms.MenuItem(); - this.menuROExit = new System.Windows.Forms.MenuItem(); - this.menuEdit = new System.Windows.Forms.MenuItem(); - this.menuEditUndo = new System.Windows.Forms.MenuItem(); - this.menuItem3 = new System.Windows.Forms.MenuItem(); - this.menuEditCut = new System.Windows.Forms.MenuItem(); - this.menuEditCopy = new System.Windows.Forms.MenuItem(); - this.menuEditPaste = new System.Windows.Forms.MenuItem(); - this.menuEditDelete = new System.Windows.Forms.MenuItem(); - this.menuItem5 = new System.Windows.Forms.MenuItem(); - this.menuEditSelAll = new System.Windows.Forms.MenuItem(); - this.menuTools = new System.Windows.Forms.MenuItem(); - this.menuToolsROFST = new System.Windows.Forms.MenuItem(); - this.menuHelp = new System.Windows.Forms.MenuItem(); - this.menuHelpAbout = new System.Windows.Forms.MenuItem(); - this.menuItem2 = new System.Windows.Forms.MenuItem(); - this.panel1 = new System.Windows.Forms.Panel(); - this.panel2 = new System.Windows.Forms.Panel(); - this.roTreeView = new System.Windows.Forms.TreeView(); - this.tbar = new System.Windows.Forms.ToolBar(); - this.tbtnSave = new System.Windows.Forms.ToolBarButton(); - this.tbtnCancel = new System.Windows.Forms.ToolBarButton(); - this.tbtnRestore = new System.Windows.Forms.ToolBarButton(); - this.tbtnSaveAs = new System.Windows.Forms.ToolBarButton(); - this.tbtnDuplicate = new System.Windows.Forms.ToolBarButton(); - this.tbtnZoom = new System.Windows.Forms.ToolBarButton(); - this.imageListToolBar = new System.Windows.Forms.ImageList(this.components); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // imageListRoTree - // - this.imageListRoTree.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageListRoTree.ImageStream"))); - this.imageListRoTree.TransparentColor = System.Drawing.Color.Transparent; - this.imageListRoTree.Images.SetKeyName(0, ""); - this.imageListRoTree.Images.SetKeyName(1, ""); - // - // splitter1 - // - this.splitter1.Location = new System.Drawing.Point(264, 31); - this.splitter1.Name = "splitter1"; - this.splitter1.Size = new System.Drawing.Size(10, 588); - this.splitter1.TabIndex = 4; - this.splitter1.TabStop = false; - // - // mainMenu1 - // - this.mainMenu1.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.menuRO, - this.menuEdit, - this.menuTools, - this.menuHelp, - this.menuItem2}); - // - // menuRO - // - this.menuRO.Index = 0; - this.menuRO.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.menuRONew, - this.menuItem1, - this.menuROEdit, - this.menuRODelete, - this.menuROSave, - this.menuROProperties, - this.menuItem10, - this.menuROExit}); - this.menuRO.Text = "RO"; - // - // menuRONew - // - this.menuRONew.Index = 0; - this.menuRONew.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.menuNewGroup, - this.menuNewRefObj}); - this.menuRONew.Text = "New ..."; - // - // menuNewGroup - // - this.menuNewGroup.Index = 0; - this.menuNewGroup.Text = "Group"; - this.menuNewGroup.Click += new System.EventHandler(this.menuNewGroup_Click); - // - // menuNewRefObj - // - this.menuNewRefObj.Index = 1; - this.menuNewRefObj.Text = "Referenced Object"; - this.menuNewRefObj.Click += new System.EventHandler(this.menuNewRefObj_Click); - // - // menuItem1 - // - this.menuItem1.Index = 1; - this.menuItem1.Text = "-"; - // - // menuROEdit - // - this.menuROEdit.Enabled = false; - this.menuROEdit.Index = 2; - this.menuROEdit.Text = "Edit"; - this.menuROEdit.Click += new System.EventHandler(this.menuROEdit_Click); - // - // menuRODelete - // - this.menuRODelete.Index = 3; - this.menuRODelete.Text = "Delete"; - this.menuRODelete.Click += new System.EventHandler(this.menuRODelete_Click); - // - // menuROSave - // - this.menuROSave.Enabled = false; - this.menuROSave.Index = 4; - this.menuROSave.Text = "Save"; - this.menuROSave.Click += new System.EventHandler(this.menuROSave_Click); - // - // menuROProperties - // - this.menuROProperties.Index = 5; - this.menuROProperties.Text = "Properties"; - this.menuROProperties.Click += new System.EventHandler(this.menuROProperties_Click); - // - // menuItem10 - // - this.menuItem10.Index = 6; - this.menuItem10.Text = "-"; - // - // menuROExit - // - this.menuROExit.Index = 7; - this.menuROExit.Text = "Exit RO Editor"; - this.menuROExit.Click += new System.EventHandler(this.menuROExit_Click); - // - // menuEdit - // - this.menuEdit.Index = 1; - this.menuEdit.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.menuEditUndo, - this.menuItem3, - this.menuEditCut, - this.menuEditCopy, - this.menuEditPaste, - this.menuEditDelete, - this.menuItem5, - this.menuEditSelAll}); - this.menuEdit.Text = "Edit"; - // - // menuEditUndo - // - this.menuEditUndo.Enabled = false; - this.menuEditUndo.Index = 0; - this.menuEditUndo.Text = "&Undo"; - this.menuEditUndo.Click += new System.EventHandler(this.menuEditUndo_Click); - // - // menuItem3 - // - this.menuItem3.Index = 1; - this.menuItem3.Text = "-"; - // - // menuEditCut - // - this.menuEditCut.Enabled = false; - this.menuEditCut.Index = 2; - this.menuEditCut.Text = "Cu&t"; - this.menuEditCut.Click += new System.EventHandler(this.menuEditCut_Click); - // - // menuEditCopy - // - this.menuEditCopy.Enabled = false; - this.menuEditCopy.Index = 3; - this.menuEditCopy.Text = "&Copy"; - this.menuEditCopy.Click += new System.EventHandler(this.menuEditCopy_Click); - // - // menuEditPaste - // - this.menuEditPaste.Enabled = false; - this.menuEditPaste.Index = 4; - this.menuEditPaste.Text = "&Paste"; - this.menuEditPaste.Click += new System.EventHandler(this.menuEditPaste_Click); - // - // menuEditDelete - // - this.menuEditDelete.Enabled = false; - this.menuEditDelete.Index = 5; - this.menuEditDelete.Text = "&Delete"; - this.menuEditDelete.Click += new System.EventHandler(this.menuEditDelete_Click); - // - // menuItem5 - // - this.menuItem5.Index = 6; - this.menuItem5.Text = "-"; - // - // menuEditSelAll - // - this.menuEditSelAll.Enabled = false; - this.menuEditSelAll.Index = 7; - this.menuEditSelAll.Text = "Select &All"; - this.menuEditSelAll.Click += new System.EventHandler(this.menuEditSelAll_Click); - // - // menuTools - // - this.menuTools.Index = 2; - this.menuTools.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.menuToolsROFST}); - this.menuTools.Text = "Tools"; - // - // menuToolsROFST - // - this.menuToolsROFST.Index = 0; - this.menuToolsROFST.Text = "Create RO.FST"; - this.menuToolsROFST.Click += new System.EventHandler(this.menuToolsROFST_Click); - // - // menuHelp - // - this.menuHelp.Index = 3; - this.menuHelp.MenuItems.AddRange(new System.Windows.Forms.MenuItem[] { - this.menuHelpAbout}); - this.menuHelp.Text = "Help"; - // - // menuHelpAbout - // - this.menuHelpAbout.Index = 0; - this.menuHelpAbout.Text = "About"; - this.menuHelpAbout.Click += new System.EventHandler(this.menuHelpAbout_Click); - // - // menuItem2 - // - this.menuItem2.Index = 4; - this.menuItem2.Text = ""; - // - // panel1 - // - this.panel1.AutoScroll = true; - this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.panel1.Controls.Add(this.panel2); - this.panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel1.Location = new System.Drawing.Point(274, 31); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(542, 588); - this.panel1.TabIndex = 5; - // - // panel2 - // - this.panel2.AutoScroll = true; - this.panel2.Location = new System.Drawing.Point(0, 0); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(282, 136); - this.panel2.TabIndex = 0; - this.panel2.Visible = false; - // - // roTreeView - // - this.roTreeView.Dock = System.Windows.Forms.DockStyle.Left; - this.roTreeView.Font = new System.Drawing.Font("Arial", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.roTreeView.ImageIndex = 0; - this.roTreeView.ImageList = this.imageListRoTree; - this.roTreeView.ItemHeight = 18; - this.roTreeView.Location = new System.Drawing.Point(0, 31); - this.roTreeView.Name = "roTreeView"; - this.roTreeView.SelectedImageIndex = 0; - this.roTreeView.Size = new System.Drawing.Size(264, 588); - this.roTreeView.TabIndex = 3; - this.roTreeView.AfterSelect += new System.Windows.Forms.TreeViewEventHandler(this.roTreeView_AfterSelect_1); - // - // tbar - // - this.tbar.Buttons.AddRange(new System.Windows.Forms.ToolBarButton[] { - this.tbtnSave, - this.tbtnCancel, - this.tbtnRestore, - this.tbtnSaveAs, - this.tbtnDuplicate, - this.tbtnZoom}); - this.tbar.DropDownArrows = true; - this.tbar.Font = new System.Drawing.Font("Tahoma", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbar.ImageList = this.imageListToolBar; - this.tbar.Location = new System.Drawing.Point(0, 0); - this.tbar.Name = "tbar"; - this.tbar.ShowToolTips = true; - this.tbar.Size = new System.Drawing.Size(816, 31); - this.tbar.TabIndex = 0; - this.tbar.TextAlign = System.Windows.Forms.ToolBarTextAlign.Right; - this.tbar.ButtonClick += new System.Windows.Forms.ToolBarButtonClickEventHandler(this.tbar_OnClick); - // - // tbtnSave - // - this.tbtnSave.Enabled = false; - this.tbtnSave.ImageIndex = 0; - this.tbtnSave.Name = "tbtnSave"; - this.tbtnSave.Text = "Save"; - // - // tbtnCancel - // - this.tbtnCancel.Enabled = false; - this.tbtnCancel.ImageIndex = 1; - this.tbtnCancel.Name = "tbtnCancel"; - this.tbtnCancel.Text = "Cancel"; - // - // tbtnRestore - // - this.tbtnRestore.Enabled = false; - this.tbtnRestore.ImageIndex = 2; - this.tbtnRestore.Name = "tbtnRestore"; - this.tbtnRestore.Text = "Restore"; - // - // tbtnSaveAs - // - this.tbtnSaveAs.Enabled = false; - this.tbtnSaveAs.ImageIndex = 3; - this.tbtnSaveAs.Name = "tbtnSaveAs"; - this.tbtnSaveAs.Text = "Save As"; - // - // tbtnDuplicate - // - this.tbtnDuplicate.Enabled = false; - this.tbtnDuplicate.ImageIndex = 4; - this.tbtnDuplicate.Name = "tbtnDuplicate"; - this.tbtnDuplicate.Text = "Duplicate"; - // - // tbtnZoom - // - this.tbtnZoom.Enabled = false; - this.tbtnZoom.ImageIndex = 5; - this.tbtnZoom.Name = "tbtnZoom"; - this.tbtnZoom.Text = "Zoom"; - // - // imageListToolBar - // - this.imageListToolBar.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imageListToolBar.ImageStream"))); - this.imageListToolBar.TransparentColor = System.Drawing.Color.Transparent; - this.imageListToolBar.Images.SetKeyName(0, ""); - this.imageListToolBar.Images.SetKeyName(1, ""); - this.imageListToolBar.Images.SetKeyName(2, ""); - this.imageListToolBar.Images.SetKeyName(3, ""); - this.imageListToolBar.Images.SetKeyName(4, ""); - this.imageListToolBar.Images.SetKeyName(5, ""); - // - // Form1 - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(816, 619); - this.Controls.Add(this.panel1); - this.Controls.Add(this.splitter1); - this.Controls.Add(this.roTreeView); - this.Controls.Add(this.tbar); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Menu = this.mainMenu1; - this.Name = "Form1"; - this.Text = "RO Edit"; - this.panel1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - #endregion - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main(string[] args) - { - bool StartupROEditor = true; - FileStream fsown=null; - FileInfo fiown=null; - String specificro = null; - string ConnectionPath = ""; - // Let's open the database & set up for the tree structure... - - // if an RO directory path was passed in, then change the - // current working directory to it. - // this path will also be used to generate a connection string - // the the Access database. - if (args.Length > 0) - { - ConnectionPath = args[0]; -// Directory.SetCurrentDirectory(ConnectionPath); - } - else // find ROPATH - { - ConnectionPath = FindTheRODirectory(); - } - if (args.Length > 1) - specificro = args[1]; - try - { - // Convert the RO data if needed - if (!CheckForDataConversion(ConnectionPath)) - ConnectionPath = null; // force exit - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Error on check for data conversion"); - // Application.Exit(); - } - // Process the given RO Path - if (ConnectionPath == null) - { - // no RO directory - MessageBox.Show("Could not locate a Referenced Objects (RO) directory.\n\nIt should be inside your VExxx directory or at the same level as your VExxx directory.","RO Editor"); - StartupROEditor = false; - } - else if (ConnectionPath.Equals("")) - { - // already in RO directory - ConnectionPath = Directory.GetCurrentDirectory(); - } - else - { - // Change to the RO Directory - try - { - Directory.SetCurrentDirectory(ConnectionPath); - } - catch (Exception e) - { - MessageBox.Show(e.Message, e.GetType().ToString()); - } - } - - if (StartupROEditor) - { - // open an existing file, or create a new one - try - { - fiown = new FileInfo("RoEditor.own"); - } - catch(Exception e) - { - MessageBox.Show(e.Message,"fileinfo"); - } - // Open the file just specified. Open it so that no-one else can use it - try - { - fsown = fiown.Open( FileMode.Create, FileAccess.ReadWrite, FileShare.None ); - } - catch (IOException) - { - MessageBox.Show("Another user is executing the RoEditor"); - return; - } - - // If there isn't a RO database file, ask user if we should create an empty one. - if (!File.Exists("ROMaster.mdb") && !UsingSQLServer(Directory.GetCurrentDirectory())) - { - DialogResult AnswerYN; - string msgstr = "The RO directory (" + Directory.GetCurrentDirectory() +") is empty.\n\n Create an empty RO database?"; - AnswerYN = MessageBox.Show(msgstr,"RO Editor",MessageBoxButtons.YesNo); - if (AnswerYN == DialogResult.Yes) - { - string SourceRODatabase = Application.StartupPath + "\\ROMaster.mdb"; - string DestRODatabase = Directory.GetCurrentDirectory() + "\\ROMaster.mdb"; - File.Copy(SourceRODatabase,DestRODatabase); - } - else - StartupROEditor = false; - } - } - - if (StartupROEditor) - { - Application.Run(new Form1(ConnectionPath,specificro)); - - if (fsown != null) - { - fsown.Close(); - fiown.Delete(); - } - Application.Exit(); - } - } - - /* - * Look for the RO directory via PROC.INI and by - * looking for a \RO directory in the current VEplant - * directory and at the same level as VEplant - */ - static string FindTheRODirectory() - { - string RtnStr = ""; - string CurDir = Directory.GetCurrentDirectory(); - CurDir = CurDir.ToUpper(); - bool InProcdureDir = false; - - // are we in the RO directory? - if (!CurDir.EndsWith("\\RO")) //not in RO directory - { - if (File.Exists("PROC.INI")) // Get the ROPATH from the PROC.INI file if possible - { - InProcdureDir = true; - IniReader ini = new IniReader("PROC.INI"); - RtnStr = ini.ReadString("RO Defaults","ROPATH",""); - } - if (RtnStr.Equals("")) // no ROPATH specified - { - RtnStr = "..\\RO"; // check default location - if (!Directory.Exists(RtnStr)) - { - // Check for Global ROs (at the same directory level as the VEplant directory) - if (CurDir.EndsWith("TMPCHG")) // handle temporary change directory - { - InProcdureDir = false; - RtnStr = "..\\..\\..\\..\\RO"; - } - else // Check for Global RO, assume we are in PROCS or .PRC directory - RtnStr = "..\\..\\RO"; - if (!Directory.Exists(RtnStr) && InProcdureDir) - { - // Could not find RO directory. - // Instruct the user to create one. - DialogResult AnswerYN; - int idx = CurDir.LastIndexOf("\\"); - RtnStr = CurDir.Substring(0,idx+1) + "RO"; // default location - string msgstr = "A RO directory (folder) does not exist.\n\n Create a RO directory in the default location (" + RtnStr + ")?"; - AnswerYN = MessageBox.Show(msgstr,"RO Editor",MessageBoxButtons.YesNo); - if (AnswerYN == DialogResult.Yes) - { - Directory.CreateDirectory(RtnStr); - } - else - RtnStr = null; - } - else RtnStr = null; - } - } - } - return RtnStr; - } - - static bool UsingSQLServer(string ROdir) - { - bool Rtn = false; - string RtnStr; - string ROiniPath = ROdir + "\\ROAPP.INI"; - IniReader ini = new IniReader(ROiniPath); - RtnStr = ini.ReadString("Database Server","Path",""); - if (RtnStr.Length > 1) - Rtn = true; - return Rtn; - } - - static bool CheckForDataConversion(string ROdir) - { - bool Rtn = true; - // Check to see if we need to convert Old RO data - if (ROdir != null) - { - string testParadoxFile = ROdir; - string testAccessFile = ROdir; - if (!ROdir.Equals("")) - { - testParadoxFile += "\\"; - testAccessFile += "\\"; - } - - testParadoxFile += "ROMASTER.DB"; // Paradox file - testAccessFile += "ROMaster.mdb"; // Access file -// if (File.Exists(testParadoxFile)) - if (File.Exists(testParadoxFile) && !(File.Exists(testAccessFile) || UsingSQLServer(ROdir))) - { - // Display a message to the user that the data needs converted - DialogResult AnswerYN; - AnswerYN = MessageBox.Show("The RO data needs to be converted for the New RO Editor.\n\n Proceed with the data conversion?","RO Editor",MessageBoxButtons.YesNo); - if (AnswerYN == DialogResult.Yes) - { - // Convert old RO Data - string argstr = ROdir; - if (ROdir.Equals("")) - argstr = Directory.GetCurrentDirectory(); - string ConversionExePath = Application.StartupPath + "\\ParadoxConversion.exe "; - - // Need to move out of RO directory to convert it - Directory.SetCurrentDirectory("..\\"); - - // create a process & wait until it exits. - Process myProcess = new Process(); - myProcess.StartInfo.FileName = ConversionExePath; - myProcess.StartInfo.Arguments=argstr; - - myProcess.Start(); - myProcess.WaitForExit(); - - Directory.SetCurrentDirectory(argstr); - } - else - Rtn = false; - } - } - return Rtn; - } - - private void menuROSave_Click(object sender, System.EventArgs e) - { - tbar_SaveClick(); - } - - private void menuROExit_Click(object sender, System.EventArgs e) - { - Close(); - Application.Exit(); // Exit() does not run the destructors - } - - /* - * If the xml data becomes inconsistent with the tree view, reload the first - * level. - */ - private void CleanUpTree(VlnXmlElement curelem, TreeNode nd) - { - // Unload any children because data may have changed and it can be - // reloaded. - nd.Collapse(); - int cnt = nd.Nodes.Count; - bool add_dummykid = false; - if (cnt > 0) add_dummykid = true; - for (int i=0; i 1) || (levelcnt==1 && !TheMenuTitle.Equals(""))) - { - AllGroups = false; - ListViewItem item=null; - bool first = true; - for (int i=0; i< InUseList.Count; i++) - { - rof = (ROField) InUseList[i]; - if (rof.GetFieldname != null) - { - uint ftype = rof.GetFieldType; - if (ftype == 1 || ftype == 2 || ftype == 4 || ftype == 128) - { - string nm0 = rof.GetFieldname; - nm = rof.MakeFieldName(nm0); - nd = curele.SelectSingleNode(nm); - if (nd==null)nd = curele.SelectSingleNode("*/"+nm); - if (nd==null) - nd = curele.GetCurrentOfMultiFields(curele,nm); -// if (nd==null)nd = curele.SelectSingleNode(nm+"a"); -// if (nd==null)nd = curele.SelectSingleNode(nm+"b"); -// if (nd==null)nd = curele.SelectSingleNode(nm+"c"); -// if (nd==null)nd = curele.SelectSingleNode(nm+"d"); - string data; - if(nd==null) - data=" "; - else - data=nd.InnerText; - if(first==true) - { - item = new ListViewItem(data,ROIMAGE); - first=false; - item.Tag = curele; - } - else - item.SubItems.Add(data); - } - } - } - roListView.Items.Add(item); - } - } - } - curnd = curnd.NextSibling; - } - if (AllGroups == true) - { - roListView.Columns.Clear(); - roListView.Columns.Add("Group",250,HorizontalAlignment.Left); - } - - roListView.Visible=true; - } - - private void updateRoListView(TreeNode node) - { - VlnXmlElement selele; - selele = (VlnXmlElement) node.Tag; - if (selele.Name != "vlnGroup" && selele.Name != "RO_Root") - { - // if we already have a list view, and we're still under the same parent, - // leave the list view, otherwise clear it. - VlnXmlElement curele = null; - if (roListView != null && roListView.Items.Count > 0) - { - curele = (VlnXmlElement) roListView.Items[0].Tag; - if (selele.ParentNode != curele.ParentNode)roListView_ClearListDisplay(); - } - return; - } - else - { - if (roListView == null) - { - this.roListView = new System.Windows.Forms.ListView(); - this.panel1.Controls.Add(roListView); - this.roListView.Dock = System.Windows.Forms.DockStyle.Fill; - this.roListView.LargeImageList = this.imageListRoTree; - this.roListView.Name = "roListView"; - this.roListView.Size = new System.Drawing.Size(688, 700); - this.roListView.AllowColumnReorder = true; - this.roListView.FullRowSelect = true; - this.roListView.SmallImageList = this.imageListRoTree; - this.roListView.TabIndex = 5; - this.roListView.DoubleClick += new System.EventHandler(this.roListView_OnDoubleClick); - this.roListView.View = View.Details; - MyListViewComparer LVCompare = new MyListViewComparer(); - this.roListView.ListViewItemSorter = LVCompare; - roListView.ColumnClick += new System.Windows.Forms.ColumnClickEventHandler(this.roListView_Column_Header_OnClick); - } - - DisplayGroupElements(selele); - } - - } - - void roListView_Column_Header_OnClick(object sender, ColumnClickEventArgs e) - { - int indx = e.Column; - MyListViewComparer LVCompare = (MyListViewComparer) roListView.ListViewItemSorter; - LVCompare.SetColumnToSortBy(indx); - roListView.Sort(); - } - - private void roTreeView_AfterSelect_1(object sender, System.Windows.Forms.TreeViewEventArgs e) - { - - } - } - - // This class is used to sort by the selected list view column - public class MyListViewComparer : IComparer - { - int column; - - public int Compare (object x, object y) - { - ListViewItem xitm = (ListViewItem) x; - ListViewItem yitm = (ListViewItem) y; - - string xbuff = xitm.SubItems[column].Text; - string ybuff = yitm.SubItems[column].Text; - int rtnval = 0; - int xcnt=0,ycnt=0; - int xlen,ylen; - byte xbyte, ybyte; - xlen = xbuff.Length; - ylen = ybuff.Length; - if (xbuff[0] == '<') - rtnval = 0; - if (ybuff[0] == '<') - rtnval = 0; - while ((rtnval==0) && ((xcnt < xlen) || (ycnt < ylen))) - { - xbyte = (xcnt == xlen)? (byte)0 : (byte)xbuff[xcnt++]; - ybyte = (ycnt == ylen)? (byte)0 : (byte)ybuff[ycnt++]; - rtnval = xbyte - ybyte; - } - - return rtnval; - } - - public void SetColumnToSortBy(int col) - { - column = col; - } - - } - -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.csproj b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.csproj deleted file mode 100644 index 075353b8..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.csproj +++ /dev/null @@ -1,198 +0,0 @@ - - - Local - 8.0.50727 - 2.0 - {3A4A3543-2D44-11D6-8452-00A0CC271352} - Debug - AnyCPU - App.ico - - - ROEditor - - - JScript - Grid - IE50 - false - WinExe - ROEditor - OnBuildSuccess - ROEditor.Form1 - - - - - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE;Upgrade2005; - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - - - - System - - - System.Data - - - System.Drawing - - - System.Windows.Forms - - - System.XML - - - - - Form - - - Code - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Form - - - Code - - - About.cs - Designer - - - FieldCombFrm.cs - Designer - - - FieldTextFrm.cs - Designer - - - FieldTypeDefFrm.cs - Designer - - - GroupDefFrm.cs - Designer - - - GroupNewFrm.cs - Designer - - - RODefFrm.cs - Designer - - - - ROEditor.cs - Designer - - - - - - - - - - {DECA8343-6351-11D6-8487-00A0CC271352} - ctlXMLEditLib - - - {6D44F537-879E-11D6-84B8-00A0CC271352} - DBEncapsulation - - - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04} - Org.Mentalis.Files - - - {0C7825FD-AA05-11D6-84D1-00A0CC271352} - RODBInterface - - - {0C782592-AA05-11D6-84D1-00A0CC271352} - ROFields - - - {134D8938-9CDC-4712-9444-D5DCC6638AB6} - ROFST - - - {551CB7B3-00B1-11D7-8590-482B59000000} - VlnStatus - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.ico b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.ico deleted file mode 100644 index 50c18a46..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.resx b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.resx deleted file mode 100644 index f5122820..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.resx +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 124, 17 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w - LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAACE - CAAAAk1TRnQBSQFMAgEBAgEAAQQBAAEEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo - AwABQAMAARADAAEBAQABCAYAAQQYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA - AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 - AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA - AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm - AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM - AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA - ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz - AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ - AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM - AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA - AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA - AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ - AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ - AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA - AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm - ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ - Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz - AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA - AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM - AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM - ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM - Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA - AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM - AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ - AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz - AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm - AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw - AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/xIAAv8CAAT5KAAPegEA - Av8I+SYAA3oCAAF6AwAGegEAAv8D+QMAA/klAAJ6AQAC/wX5AQAEegEAAv8B+QEACPkkAAJ6AQAC/wb5 - AQADegEAAv8BAAT5AwAC+SQAAnoBAAL/AQADegP5A3oBAAL/A/kGAAL5AewiAAJ6AQAC/wR6AQAC+QN6 - AQAC/wL5BwAC+QLsIQACegEAAv8EegEAAvkDegEAAv8BBwH5BwAC+QLsIQACegEAAv8EegEAAvkDegEA - Av8BAAEHBgAD+QLsIQACegEAA/8DAAL/AfkDegEAA/8BBwYAAvkBAALsIQACegEACP8EegEABP8FAAL/ - AfkD7CEAAnoBAAH/AgAE/wV6AQAL/wEHAfkB7CIAD3oBAAL/AQAH/wMHAfkiAA96AwAB7AUABQciAAH/ - BnoBAAj/AgACBwHsAQAHByMAAv8FAAn/MAABQgFNAT4HAAE+AwABKAMAAUADAAEQAwABAQEAAQEFAAGA - FwAD/wMAARABHwcAAQ8HAAEHBwABAwcAAQEGAAEBAeAGAAEDAeAGAAEHAeAGAAEHAeAGAAEHAcAGAAED - AYAPAAEBBwABAwYAAYABBwYAAcYBHwQACw== - - - - 17, 17 - - - 256, 17 - - - - AAEAAAD/////AQAAAAAAAAAMAgAAAFdTeXN0ZW0uV2luZG93cy5Gb3JtcywgVmVyc2lvbj0yLjAuMC4w - LCBDdWx0dXJlPW5ldXRyYWwsIFB1YmxpY0tleVRva2VuPWI3N2E1YzU2MTkzNGUwODkFAQAAACZTeXN0 - ZW0uV2luZG93cy5Gb3Jtcy5JbWFnZUxpc3RTdHJlYW1lcgEAAAAERGF0YQcCAgAAAAkDAAAADwMAAAAe - CwAAAk1TRnQBSQFMAgEBBgEAAQwBAAEEAQABEAEAARABAAT/AQkBAAj/AUIBTQE2AQQGAAE2AQQCAAEo - AwABQAMAASADAAEBAQABCAYAAQgYAAGAAgABgAMAAoABAAGAAwABgAEAAYABAAKAAgADwAEAAcAB3AHA - AQAB8AHKAaYBAAEzBQABMwEAATMBAAEzAQACMwIAAxYBAAMcAQADIgEAAykBAANVAQADTQEAA0IBAAM5 - AQABgAF8Af8BAAJQAf8BAAGTAQAB1gEAAf8B7AHMAQABxgHWAe8BAAHWAucBAAGQAakBrQIAAf8BMwMA - AWYDAAGZAwABzAIAATMDAAIzAgABMwFmAgABMwGZAgABMwHMAgABMwH/AgABZgMAAWYBMwIAAmYCAAFm - AZkCAAFmAcwCAAFmAf8CAAGZAwABmQEzAgABmQFmAgACmQIAAZkBzAIAAZkB/wIAAcwDAAHMATMCAAHM - AWYCAAHMAZkCAALMAgABzAH/AgAB/wFmAgAB/wGZAgAB/wHMAQABMwH/AgAB/wEAATMBAAEzAQABZgEA - ATMBAAGZAQABMwEAAcwBAAEzAQAB/wEAAf8BMwIAAzMBAAIzAWYBAAIzAZkBAAIzAcwBAAIzAf8BAAEz - AWYCAAEzAWYBMwEAATMCZgEAATMBZgGZAQABMwFmAcwBAAEzAWYB/wEAATMBmQIAATMBmQEzAQABMwGZ - AWYBAAEzApkBAAEzAZkBzAEAATMBmQH/AQABMwHMAgABMwHMATMBAAEzAcwBZgEAATMBzAGZAQABMwLM - AQABMwHMAf8BAAEzAf8BMwEAATMB/wFmAQABMwH/AZkBAAEzAf8BzAEAATMC/wEAAWYDAAFmAQABMwEA - AWYBAAFmAQABZgEAAZkBAAFmAQABzAEAAWYBAAH/AQABZgEzAgABZgIzAQABZgEzAWYBAAFmATMBmQEA - AWYBMwHMAQABZgEzAf8BAAJmAgACZgEzAQADZgEAAmYBmQEAAmYBzAEAAWYBmQIAAWYBmQEzAQABZgGZ - AWYBAAFmApkBAAFmAZkBzAEAAWYBmQH/AQABZgHMAgABZgHMATMBAAFmAcwBmQEAAWYCzAEAAWYBzAH/ - AQABZgH/AgABZgH/ATMBAAFmAf8BmQEAAWYB/wHMAQABzAEAAf8BAAH/AQABzAEAApkCAAGZATMBmQEA - AZkBAAGZAQABmQEAAcwBAAGZAwABmQIzAQABmQEAAWYBAAGZATMBzAEAAZkBAAH/AQABmQFmAgABmQFm - ATMBAAGZATMBZgEAAZkBZgGZAQABmQFmAcwBAAGZATMB/wEAApkBMwEAApkBZgEAA5kBAAKZAcwBAAKZ - Af8BAAGZAcwCAAGZAcwBMwEAAWYBzAFmAQABmQHMAZkBAAGZAswBAAGZAcwB/wEAAZkB/wIAAZkB/wEz - AQABmQHMAWYBAAGZAf8BmQEAAZkB/wHMAQABmQL/AQABzAMAAZkBAAEzAQABzAEAAWYBAAHMAQABmQEA - AcwBAAHMAQABmQEzAgABzAIzAQABzAEzAWYBAAHMATMBmQEAAcwBMwHMAQABzAEzAf8BAAHMAWYCAAHM - AWYBMwEAAZkCZgEAAcwBZgGZAQABzAFmAcwBAAGZAWYB/wEAAcwBmQIAAcwBmQEzAQABzAGZAWYBAAHM - ApkBAAHMAZkBzAEAAcwBmQH/AQACzAIAAswBMwEAAswBZgEAAswBmQEAA8wBAALMAf8BAAHMAf8CAAHM - Af8BMwEAAZkB/wFmAQABzAH/AZkBAAHMAf8BzAEAAcwC/wEAAcwBAAEzAQAB/wEAAWYBAAH/AQABmQEA - AcwBMwIAAf8CMwEAAf8BMwFmAQAB/wEzAZkBAAH/ATMBzAEAAf8BMwH/AQAB/wFmAgAB/wFmATMBAAHM - AmYBAAH/AWYBmQEAAf8BZgHMAQABzAFmAf8BAAH/AZkCAAH/AZkBMwEAAf8BmQFmAQAB/wKZAQAB/wGZ - AcwBAAH/AZkB/wEAAf8BzAIAAf8BzAEzAQAB/wHMAWYBAAH/AcwBmQEAAf8CzAEAAf8BzAH/AQAC/wEz - AQABzAH/AWYBAAL/AZkBAAL/AcwBAAJmAf8BAAFmAf8BZgEAAWYC/wEAAf8CZgEAAf8BZgH/AQAC/wFm - AQABIQEAAaUBAANfAQADdwEAA4YBAAOWAQADywEAA7IBAAPXAQAD3QEAA+MBAAPqAQAD8QEAA/gBAAHw - AfsB/wEAAaQCoAEAA4ADAAH/AgAB/wMAAv8BAAH/AwAB/wEAAf8BAAL/AgAD/wEAIAcgACAHIAAHBwkE - CwcB/wIAAgcgAAcHAQQH/wEECgcB/wMAAgcgAAcHAQQB/wUAAf8BBAkHAf8DAAMHIAABBwYAAQQH/wEE - BAcEAAH/AwAEByAAAQcBAAX/AQQB/wUAAf8BBAMHAQAE/wMABQcgAAEHAQAB/wQAAQQH/wEEAgcBAAH/ - Af4DBwH/AQAGByAAAQcBAAX/AQQB/wIAAf8EBAEHAQAB/wEHAf8B/gMHAf8BAAUHIAABBwEAAf8EAAEE - BP8BBAH/AQQCBwEAAf8B/gEHAf8B/gIHAf8BAAUHIAABBwEABf8BBAT/AgQDBwEAAf8BBwH+AQcB/wH+ - AQcB/wEABQcgAAEHAQAB/wIAAf8BAAYEBAcBAAH/AgcB/gEHAf8BBwH/AQAFByAAAQcBAAT/AQAB/wEA - CQcBAAH/AgcB/gEHAf8BAAYHIAABBwEABP8CAAsHAQAE/wEABwcgAAEHBgANBwQACAcgACAHIAABBw// - MAcC/w0AAf8FBwf/CgcF/xUHAf8BAAIDBgAC/wEAAQMBAAH/AwcC/wf5Af8JBwH/BPoC/woHCQQB/wEA - AgMGAAL/AQABAwEAAf8DBwH/AvkFBwL5Af8IBwH/BfoBAgH/CQcBBAf/AQQB/wEAAgMGAAL/AQABAwEA - Af8DBwH/AvkGBwH5Af8IBwH/BPoBAgH6AQIB7AgHAQQB/wUAAf8BBAH/AQACAwkAAQMBAAH/AgcB/wH5 - Af8C+QYHAfkB/wcHBf8B+gICAf8CBwYAAQQH/wEEAf8BAAwDAQAB/wIHAf8B+QEHAf8C+QUHAfkB/wsH - AewC/wECAf8CBwEABf8BBAH/BQAB/wEEAf8BAAIDCAACAwEAAf8CBwH/AfkCBwH/AvkEBwH5Af8FBwH/ - BgcC7AL/AgcBAAH/BAABBAf/AQQB/wEAAQMBAAj/AQABAwEAAf8CBwH/AfkDBwH/AvkDBwH5Af8EBwL/ - BQcB7AL/AQIB/wIHAQAF/wEEAf8CAAH/BAQB/wEAAQMBAAH/BgcB/wEAAQMBAAH/AgcB/wH5BAcB/wL5 - AgcB+QH/AwcB/wH6B/8B+gICAf8CBwEAAf8EAAEEBP8BBAH/AQQBBwH/AQABAwEAAf8GBwH/AQABAwEA - Af8CBwH/AfkFBwH/AvkBBwH5Af8CBwH/CfoBAgH6AQIB7AIHAQAF/wEEBP8CBAIHAf8BAAEDAQAB/wYH - Af8BAAEDAQAB/wMHAf8B+QUHAf8C+QH/AgcB/wv6AQIB/wMHAQAB/wIAAf8BAAYEAwcB/wEAAQMBAAj/ - AwAB/wMHAf8C+QUHAf8B+QH/AwcB/wf6BP8EBwEABP8BAAH/AQAHBwH/AQABAwoAAQcBAAH/BAcB/wf5 - Af8FBwH/AfoH/wYHAQAE/wIACAcB/w4AAf8FBwf/BwcC/wwHBgAJBxD/FAcB/xsHAUIBTQE+BwABPgMA - ASgDAAFAAwABIAMAAQEBAAEBBgABARYAA///AAIACw== - - - - 36 - - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAAAIAAAAAAAAAAAAAEAAAABAA - AAAAAAAAAACAAACAAAAAgIAAgAAAAIAAgACAgAAAgICAAMDAwAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AAAAAAAAAAAAAAAAAAAAAAA//8AAAmZmZmQAAAAAAAAAP//AJmZmZmZmZkAAAAAAAD//wmZmZ - mZmZmZkAAAAAAA//8JmZmZmZmZmZkAAAAAAP//CZmZAAAAmZmZkAAAAAD//wmZAJeXlwCZmZkAAAAA// - 8JkHl5eXl5CZmZkAAAAP//CQeXl5eXl5CZmZAAAAD//wB5eXl5AAAACZmQkAAA//8Hl5eXAAAAAAmZmQ - kAAP//CXl5AAAAAAAAmZkHkAD//weXkAAAAAAAAJmZCXAA//8JeXAAAAAAAACZmQeXAP//B5eQAAAAAA - AAmZkJeQD//wh5AAAAAAAAAJmZB5cA//8HhwAAAAAAAACZmQl5AP//8HgAAAAAAAAJmZkHlwD///CHAA - AAAAAACZmQeXkA////CAAAAAAAAPmZkJeXAP////AAAAAAAA//mZB5eQD/////AAAAAAD///kHl5cA// - ////8AAAD////wmXlwAP//////////////CHmXkAD//w//////////8IeHmXAA//8A/////////wh4eH - kAAP//CAAP////8ACHh4eAAAAAAAeAcAAAAAh4eHh4AAAAB4eAeAeHh4eHh4eHgAAAAAB4eAcAeHh4eH - h4eAAAAAAAB4eAAACHh4eHgAAAAAAAAAAAAAAAAAAAAAAAAAAAADwD//AgAH/wAAA/8AAAH/AAAA/wAA - AH8AAAA/AAAAHwAAAA8AAAAHAAH4AwAH/AEAD/wBAB/8AAAf/AAAP/wAAD/8AAA/+AAAP/gAAD/wAAA/ - 4AAAH4AAAAAAAQAAAAEAAAABAAAAAwAAAAcAAAAPgAAAH8AAAD/gIAB/8DgD/w== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.sln b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.sln deleted file mode 100644 index 5f00199a..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROEditor.sln +++ /dev/null @@ -1,146 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROEditor", "ROEditor.csproj", "{3A4A3543-2D44-11D6-8452-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - {6D44F537-879E-11D6-84B8-00A0CC271352} = {6D44F537-879E-11D6-84B8-00A0CC271352} - {DECA8343-6351-11D6-8487-00A0CC271352} = {DECA8343-6351-11D6-8487-00A0CC271352} - {0C782592-AA05-11D6-84D1-00A0CC271352} = {0C782592-AA05-11D6-84D1-00A0CC271352} - {551CB7B3-00B1-11D7-8590-482B59000000} = {551CB7B3-00B1-11D7-8590-482B59000000} - {0C7825FD-AA05-11D6-84D1-00A0CC271352} = {0C7825FD-AA05-11D6-84D1-00A0CC271352} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VlnStatus", "..\..\..\LibSource\VlnStatus\VlnStatus.csproj", "{551CB7B3-00B1-11D7-8590-482B59000000}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROFields", "..\..\..\LibSource\ROField\ROFields.csproj", "{0C782592-AA05-11D6-84D1-00A0CC271352}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DBEncapsulation", "..\..\..\LibSource\DBEncapsulation\DBEncapsulation.csproj", "{6D44F537-879E-11D6-84B8-00A0CC271352}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RODBInterface", "..\..\..\LibSource\RODBInterface\RODBInterface.csproj", "{0C7825FD-AA05-11D6-84D1-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - {6D44F537-879E-11D6-84B8-00A0CC271352} = {6D44F537-879E-11D6-84B8-00A0CC271352} - {0C782592-AA05-11D6-84D1-00A0CC271352} = {0C782592-AA05-11D6-84D1-00A0CC271352} - {551CB7B3-00B1-11D7-8590-482B59000000} = {551CB7B3-00B1-11D7-8590-482B59000000} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ctlXMLEditLib", "..\..\..\LibSource\ctlXMLEditLib\ctlXMLEditLib.csproj", "{DECA8343-6351-11D6-8487-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - {0C7825FD-AA05-11D6-84D1-00A0CC271352} = {0C7825FD-AA05-11D6-84D1-00A0CC271352} - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VlnProfiler", "..\..\..\LibSource\VlnProfiler\VlnProfiler.csproj", "{38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROFST", "..\..\..\LibSource\ROFST\ROFST.csproj", "{134D8938-9CDC-4712-9444-D5DCC6638AB6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Org.Mentalis.Files", "..\..\..\LibSource\Org.Mentalis.Files\Org.Mentalis.Files.csproj", "{A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utils", "..\..\..\LibSource\Utils\Utils.csproj", "{680054D3-49C4-40E7-92A5-67B97DCE6308}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Debug|Win32 = Debug|Win32 - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - Release|Win32 = Release|Win32 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Debug|Win32.ActiveCfg = Debug|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {3A4A3543-2D44-11D6-8452-00A0CC271352}.Release|Win32.ActiveCfg = Release|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|Any CPU.Build.0 = Debug|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug|Win32.ActiveCfg = Debug|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Release|Any CPU.ActiveCfg = Release|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Release|Any CPU.Build.0 = Release|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {551CB7B3-00B1-11D7-8590-482B59000000}.Release|Win32.ActiveCfg = Release|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug|Win32.ActiveCfg = Debug|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release|Win32.ActiveCfg = Release|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug|Win32.ActiveCfg = Debug|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release|Win32.ActiveCfg = Release|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug|Win32.ActiveCfg = Debug|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release|Win32.ActiveCfg = Release|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug|Win32.ActiveCfg = Debug|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Release|Any CPU.Build.0 = Release|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {DECA8343-6351-11D6-8487-00A0CC271352}.Release|Win32.ActiveCfg = Release|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug|Win32.ActiveCfg = Debug|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release|Any CPU.Build.0 = Release|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release|Win32.ActiveCfg = Release|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Win32.ActiveCfg = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Any CPU.Build.0 = Release|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Win32.ActiveCfg = Release|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Debug|Win32.ActiveCfg = Debug|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|Any CPU.Build.0 = Release|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04}.Release|Win32.ActiveCfg = Release|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Any CPU.Build.0 = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Win32.ActiveCfg = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Any CPU.ActiveCfg = Release|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Any CPU.Build.0 = Release|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Win32.ActiveCfg = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROGROUPYellow.ICO b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROGROUPYellow.ICO deleted file mode 100644 index 3952150b..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/ROGROUPYellow.ICO and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/RO_FST.cs b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/RO_FST.cs deleted file mode 100644 index 151ddba2..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/RO_FST.cs +++ /dev/null @@ -1,876 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: RO_FST.cs $ $Revision: 15 $ - * $Author: Jsj $ $Date: 8/23/06 11:33a $ - * - * $History: RO_FST.cs $ - * - * ***************** Version 15 ***************** - * User: Jsj Date: 8/23/06 Time: 11:33a - * Updated in $/EXE/RefObj/ROEditor - * debug statements commented out - * - * ***************** Version 14 ***************** - * User: Jsj Date: 5/03/05 Time: 11:48a - * Updated in $/EXE/RefObj/ROEditor - * 2005 upgrade, move some ROFST logic to ROFST library - * - * ***************** Version 13 ***************** - * User: Jsj Date: 5/11/04 Time: 9:29a - * Updated in $/EXE/RefObj/ROEditor - * Bug fix B2004-011, could not create FST file if user opened nodes on - * tree. - * - * ***************** Version 12 ***************** - * User: Jsj Date: 4/08/04 Time: 9:48a - * Updated in $/EXE/RefObj/ROEditor - * Modified code to speed up the creation of the RO.FST file - * - * ***************** Version 11 ***************** - * User: Jsj Date: 6/30/03 Time: 1:20p - * Updated in $/EXE/RefObj/ROEditor - * a NULL Accessory Page ID was giving problems in creating a new RO.FST - * file. - * - * ***************** Version 10 ***************** - * User: Kathy Date: 6/11/03 Time: 2:01p - * Updated in $/EXE/RefObj/ROEditor - * Fix bug B2003-045 - * - * ***************** Version 9 ***************** - * User: Kathy Date: 5/30/03 Time: 12:48p - * Updated in $/EXE/RefObj/ROEditor - * B2003-044: sync up xml with UI tree view - * - * ***************** Version 8 ***************** - * User: Kathy Date: 5/21/03 Time: 12:51p - * Updated in $/EXE/RefObj/ROEditor - * B2003-034: process data if only one field for RO & also, convert return - * value for xml save - * - * ***************** Version 7 ***************** - * User: Jsj Date: 4/14/03 Time: 3:02p - * Updated in $/EXE/RefObj/ROEditor - * Speed up the creation of the RO.FST file - * - * ***************** Version 6 ***************** - * User: Kathy Date: 4/04/03 Time: 9:41a - * Updated in $/EXE/RefObj/ROEditor - * B2003-030 convert new top group name to user readable for ro.fst - * - * ***************** Version 5 ***************** - * User: Jsj Date: 2/21/03 Time: 9:51a - * Updated in $/EXE/RefObj/ROEditor - * added RO FST completed message - * - * ***************** Version 4 ***************** - * User: Jsj Date: 1/02/03 Time: 9:31a - * Updated in $/EXE/RefObj/ROEditor - * Save Graphics file date in RO.FST file - * - * ***************** Version 3 ***************** - * User: Jsj Date: 12/17/02 Time: 4:54p - * Updated in $/EXE/RefObj/ROEditor - * save real date for graphic files - * - * ***************** Version 2 ***************** - * User: Jsj Date: 12/06/02 Time: 3:26p - * Updated in $/EXE/RefObj/ROEditor - * parameter display data fix (ingoring this data for now) - * - * ***************** Version 1 ***************** - * User: Jsj Date: 11/27/02 Time: 12:53p - * Created in $/EXE/RefObj/ROEditor - * Modification to create the RO.FST file - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Xml; -using System.Xml.Schema; -using System.Text; -using System.IO; -using RODBInterface; -using System.Runtime.InteropServices; -using VlnStatus; -using System.Collections.Specialized; -using ROFST_FILE; - -//using VlnProfiler; //don't forget to add VlnProfiler to the reference list - -namespace ROEditor -{ - /// - /// This creates an RO.FST file - /// - - class FstTmpSTRC - { - public ushort thistype; - public uint thisoff; - public string title; - - public FstTmpSTRC(ushort type, uint offset, string tl) - { - thistype = type; - thisoff = offset; - title = tl; - } - - void WriteString(BinaryWriter bw, string str) - { - int n=str.Length; - byte [] b = new byte[n+1]; - for(int i =0; i < n; i++) - { - b[i] = (byte)str[i]; - } - bw.Write(b,0,n+1); // +1 to include null - /** - byte nullbyte = 0; - int i; - for(i =0; i < str.Length; i++) - { - byte WrByte; - WrByte = (byte)str[i]; - bw.Write(WrByte); - } - bw.Write(nullbyte); -***/ - } - - public void Write(BinaryWriter bw) - { - bw.Write(thisoff); - bw.Write(thistype); - WriteString(bw,title); - } - } - -// The Sorted Array was not sorting via the ASCII value of each character in a given string. -// This sorting function compares two strings by doing a character by character comparison. - public class MyComparer : IComparer - { - public int Compare (object x, object y) - { - int rtnval = 0; - int xcnt=0,ycnt=0; - int xlen,ylen; - byte xbyte, ybyte; - string xbuff = x.ToString(); - string ybuff = y.ToString(); - xlen = xbuff.Length; - ylen = ybuff.Length; - if (xbuff[0] == '<') - rtnval = 0; - if (ybuff[0] == '<') - rtnval = 0; - while ((rtnval==0) && ((xcnt < xlen) || (ycnt < ylen))) - { - xbyte = (xcnt == xlen)? (byte)0 : (byte)xbuff[xcnt++]; - ybyte = (ycnt == ylen)? (byte)0 : (byte)ybuff[ycnt++]; - rtnval = xbyte - ybyte; - } - - return rtnval; - } - } - - - public class RO_FST - { - private FST_FileHeader FstHeader; - private string FstDir; // path to the RO directory - private string FstPath; // RO directory Path and RO.FST file name - private string FstOld; // ROFST.Old file name (backup of previous fst file) - private string FstNew; // ROFST.New hold the RO.FST info during creation - - private BinaryWriter fhFST; // write handle to FST file being created - - private VlnStatusBar StatusWin; - - private RODB ROdatabase; - - private XmlDocument FSTroXmlDoc; -// private HybridDictionary dicTiming; -// private HybridDictionary dicDuration; - - ushort widestAcPgId; - SortedList IdsAndAccPgIds; - SortedList IdsAndOffsets; - - ushort AllTypesUsed; - - private Stack InUseListStack; - private Stack RtnValTmplateStack; -// private DateTime dtLast=DateTime.Now; - - public RO_FST(RODB TheROdb, XmlDocument TheXmlDoc) - { - ROdatabase = TheROdb; // point to the RO database - FSTroXmlDoc = TheXmlDoc; - } - public bool Create() - { - bool RtnStat = true; -// dicDuration=new HybridDictionary(); -// dicTiming=new HybridDictionary(); -// Profiler.Reset(); - // position to the top of the tree - // CurrentNode = roTree.TopNode; - - // Setup the paths to the FST files - FstDir = Directory.GetCurrentDirectory(); - FstPath = FstDir + "\\RO.FST"; - FstOld = FstDir + "\\ROFST.Old"; - FstNew = FstDir + "\\ROFST.New"; - - // open a temporary file for building the RO.FST - try - { - fhFST = new BinaryWriter(File.Open(FstNew,System.IO.FileMode.Create,System.IO.FileAccess.ReadWrite)); - } - catch (Exception fhExc) - { - string errmsg = fhExc.Message; - MessageBox.Show(errmsg,"Error Creating RO.FST file",System.Windows.Forms.MessageBoxButtons.OK); - RtnStat = false; - } - - // If we were able to open a new ROFST.NEW file then go ahead and put the - // new FST information into it. - if (RtnStat) - RtnStat = BuildNewRoFST(); - - if (RtnStat) // successful in creating new RO FST file? - { - //If an RO.FST file already exists, - // rename the existing file for safe keeping - if (File.Exists(FstPath)) - { - // copy the existing RO.FST to ROFST.OLD - // - overrite ROFST.OLD if it already exists - File.Copy(FstPath,FstOld,true); // save RO.FST as ROFST.OLD - File.Delete(FstPath); // remove RO.FST - } - File.Copy(FstNew,FstPath,true); // save ROFST.NEW as RO.fST - File.Delete(FstNew); // remove ROFST.NEW - MessageBox.Show("New RO.FST file created successfully.","Create RO.FST file",System.Windows.Forms.MessageBoxButtons.OK); - } -// MessageBox.Show(Profiler.ToString("000.00%"),"Timings"); -// dicDuration=null; -// dicTiming=null; - return RtnStat; - } - - - private bool BuildNewRoFST() - { - bool RtnVal = true; - int i; - int numDatabases; - // write the empty header - save space for the header info - FstHeader = new FST_FileHeader(); - FstHeader.Write(fhFST); - - // point to the ROMASTER and get the number of databases it has - VlnXmlElement ROdbtables = (VlnXmlElement) FSTroXmlDoc.FirstChild; - numDatabases = ROdbtables.ChildNodes.Count; - - // Allocate a list of database info structures - ROFST_DbInfo[] dbinfo = new ROFST_DbInfo[numDatabases]; - //For each RO database, process each group - XmlNode ROtableNode = ROdbtables; - ROtableNode = ROtableNode.FirstChild; - StatusWin = new VlnStatusBar("Creating RO.FST file"); - for (i=0; i < numDatabases && RtnVal; i++) - { - dbinfo[i] = new ROFST_DbInfo(); - RtnVal = SaveToFSTFile(ROtableNode,dbinfo[i]); - dbinfo[i].dbiType = AllTypesUsed; - ROtableNode = ROtableNode.NextSibling; - } - - if (RtnVal) - { - VlnXmlElement tblnode = (VlnXmlElement) ROdbtables.FirstChild; - StatusWin.BarMax = numDatabases * 2; - StatusWin.BarStepValue = 1; - StatusWin.BarValue = 0; - // All of the RO database, group, and return value information - // was saved to the FST file. Now save the information needed - // to read the FST file. - - // Save DB list - uint lngbuf = 0; - uint dblength = (uint)fhFST.BaseStream.Position; - - fhFST.Write(lngbuf); - - ushort intbuf = Convert.ToUInt16(numDatabases); - fhFST.Write(intbuf); - - // The old code did a sizeof() on a structure containing the ROFSTDatabaseInfo (dbi) - // You cannot read/write a Struct type in C# like you can with C++. The C# books suggest - // creating a Class to replace the Struct, then create methods that perform the binary - // read/write. So I created a method that calculates the "struct" size to simulate the - // sizeof(struct dbi) - uint lngval = (dbinfo[0].GetStructSize()) * (uint)numDatabases; - - for (i=0; i=0) - { - outstr += tmpstr.Substring(cur,indx-cur); - asc_spchar = tmpstr.Substring(indx+3,3); - decval = System.Convert.ToInt16(asc_spchar,10); - outstr += System.Convert.ToChar(decval).ToString(); - cur = indx+6; - if (cur+6 > len) - indx = -1; - else - indx = tmpstr.IndexOf(OKpunch,cur); - } - if (cur= 1) && !TheMenuTitle.Equals("")) - { - curOffset = (uint)fhFST.BaseStream.Position; - curType = SaveROToFST(chldnode,InUseList,RtnValTmplate,AccPageIDTplate); - } - else - { - SkipThisOne = true; - } - } - if (!SkipThisOne) - { - string tmpstr = ChildElem.GetAttribute("MenuTitle"); - tmpfststrc = new FstTmpSTRC(curType,curOffset,tmpstr); - FstTmp.Add(tmpfststrc); - typ |= curType; - numgroups++; - } - } // end if VlnXmlElement - - // Get next child - chldnode = chldnode.NextSibling; - }// end while - } // if child is not null - - // pop the InUseList stack - if (PopInUseStack) - InUseListStack.Pop(); - - // pop the return valuse template stack - if (PopRtnValStack) - RtnValTmplateStack.Pop(); - - - // save the current position of the FST file for the return value - RtnVal = (uint)fhFST.BaseStream.Position; - - // Save the ID and offset entry for the current ID - IdsAndOffsets.Add(curRecID,RtnVal); - - fhFST.Write(curRecID); - fhFST.Write(elemParentID); - fhFST.Write(numgroups); - - // write the FstTmp - for (int i=0; i < FstTmp.Count; i++) - { - tmpfststrc = (FstTmpSTRC)FstTmp[i]; - tmpfststrc.Write(fhFST); - } - FstTmp.Clear(); - - return RtnVal; - } - - - public void WriteGraphicsReturnValue(string OrigStr) - { - string text, tmptext, hgttxt, widtxt, imgdateStr; - int idx; - int hgt, wid; - int imgdateInt; - byte newline = 10; - - char[] tmpbuf = OrigStr.ToCharArray(); - - // remove the trailing "\r\n" - tmptext = OrigStr.Substring(0,OrigStr.Length-2); - - // parse out the image width - idx = tmptext.LastIndexOf("\r\n"); - widtxt = tmptext.Substring(idx+2,tmptext.Length-(idx+2)); - wid = Convert.ToInt32(widtxt,10); - widtxt = wid.ToString("x4"); - tmptext = tmptext.Substring(0,idx); - - // parse out the image height - idx = tmptext.LastIndexOf("\r\n"); - hgttxt = tmptext.Substring(idx+2,tmptext.Length-(idx+2)); - hgt = Convert.ToInt32(hgttxt,10); - hgttxt = hgt.ToString("x4"); - tmptext = tmptext.Substring(0,idx); - - // parse out the image file name and image date - idx = tmptext.IndexOf(" "); - text = tmptext.Substring(idx+1); - if (tmptext.StartsWith("\r\n")) - imgdateStr = tmptext.Substring(2,idx-2); // first 2 chars are "\r\n" - else - { - if(idx < 1) - imgdateStr=null; - else - imgdateStr = tmptext.Substring(0,idx); - } - if (imgdateStr == null|| imgdateStr=="") - imgdateInt = 0; - else - imgdateInt = Convert.ToInt32(imgdateStr,10); - - // write graphics file name - WriteString(text,false); - fhFST.Write(newline); - - // write dummy date (old FST file had only zeros! -// WriteString("00000000",false); - WriteString(imgdateInt.ToString("x8"),false); - fhFST.Write(newline); - - // write the image height - WriteString(hgttxt,false); - fhFST.Write(newline); - - //write the image width - WriteString(widtxt,true); - } - - - private ushort SaveROToFST(XmlNode RONode,ArrayList InUseList,string RtnValTmplate, string AccPageIDTplate) - { - ushort RtnVal; - uint startFST = (uint)fhFST.BaseStream.Position; - uint RORecID; - uint ParID; - byte nullbyte=0; - - VlnXmlElement elem; - elem = (VlnXmlElement) RONode; - -// string dummy = ""; // need for RODB_GetFIeldsInUse call, won't be used. -// ArrayList AvailList, InUseList; -// //Get the "In Use" field list -// AvailList = ROdatabase.RODB_GetFields(elem, (uint) RecordType.Schema); -// InUseList = ROdatabase.RODB_GetFieldsInUse(elem, AvailList,"FieldsInUse", ref dummy); - - //Write the RO's record ID - string RecIdStr = elem.GetAttribute("RecID"); - RORecID = System.Convert.ToUInt16(RecIdStr,16); - - fhFST.Write(RORecID); - -// **** Debug -// if (RecIdStr.Equals("000000a6")) -// nullbyte=0; -// *** - // Get the Accessory Page ID -// string AccPageIDTplate = elem.GetAccPageIDTemplate(); - string AccPageID = elem.GetAccPageIDString(AccPageIDTplate); - -// **** Debug -// if (AccPageID.Equals("S:1")) -// nullbyte=0; -// ***** - - //Write the parent ID - string ParIDstr = elem.GetAttribute("ParentID"); - ParID = System.Convert.ToUInt16(ParIDstr,16); - fhFST.Write(ParID); - - // not sure why, was in old FST code but no comment! - // I assume that it's some sort of separater - short none = -1; - fhFST.Write(none); - - //Get the RO Return value and return type -// string RtnValTmplate = elem.GetReturnValueTemplate(); - RtnVal = 0; - string tablename = elem.GetAttribute("Table"); -// if (RtnValTmplate.Equals("")) -// { -// int i; -// i =0; -// } - string cvttmp= CvtFldToUserFld(RtnValTmplate); - string RORtnVal = elem.GetReturnValue(ROdatabase,tablename,cvttmp,InUseList,ref RtnVal); - - // Write the field type to the FST - fhFST.Write(RtnVal); - - if (RtnVal == 8) // is this an Image (graphics) record? - WriteGraphicsReturnValue(RORtnVal); - else - WriteString(RORtnVal); - - // Write the Accessory Page ID - // Fix for Bug B2003-039. Added check for a NULL AccPageID - // If is null, then assign a blank string - - if (AccPageID != null) - AccPageID = AccPageID.Trim(); - else - AccPageID = " "; - WriteString(AccPageID); - - // Save the ID and offset entry for the current ID - IdsAndOffsets.Add(RORecID,startFST); - - // Save the RecID and Accessory Page id - IdsAndAccPgIds[AccPageID] = RORecID; - - - // Save the widest AccPageID width - int acclen = AccPageID.Length; - if (acclen > widestAcPgId) - widestAcPgId = (ushort)acclen; -// if(dtLast.AddSeconds(.3) < DateTime.Now) -// { - StatusWin.StatMsg = AccPageID; - StatusWin.PerformStep(); -// dtLast=DateTime.Now; -// } - return RtnVal; - } - - public void WriteString(string str) - { - WriteString(str,true); - } - - public void WriteString(string str,bool AddNull) - { - int n=str.Length; - if (AddNull) - n++; - byte [] b = new byte[n]; - for(int i =0; i < str.Length; i++) - { - b[i] = (byte)str[i]; - } - fhFST.Write(b,0,n); - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Red_V_txt_NB_bur_1984.png b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Red_V_txt_NB_bur_1984.png deleted file mode 100644 index e8f05bdd..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Red_V_txt_NB_bur_1984.png and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Restore.ico b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Restore.ico deleted file mode 100644 index ddcdc805..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Restore.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Save.ico b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Save.ico deleted file mode 100644 index f7229620..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Save.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Zoom.ico b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Zoom.ico deleted file mode 100644 index 486a5127..00000000 Binary files a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/Zoom.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/app.config b/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/app.config deleted file mode 100644 index bcd05449..00000000 --- a/PROMS/ReferencedObjectsOld/Exe/RefObj/ROEditor/app.config +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/DBEncap.cs b/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/DBEncap.cs deleted file mode 100644 index 0750be45..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/DBEncap.cs +++ /dev/null @@ -1,205 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: DBEncap.cs $ $Revision: 5 $ - * $Author: Kathy $ $Date: 12/10/02 2:24p $ - * - * $History: DBEncap.cs $ - * - * ***************** Version 5 ***************** - * User: Kathy Date: 12/10/02 Time: 2:24p - * Updated in $/LibSource/DBEncapsulation - * handle dbnull for sql server - * - * ***************** Version 4 ***************** - * User: Kathy Date: 10/09/02 Time: 12:36p - * Updated in $/LibSource/DBEncapsulation - * handle null in data - * - * ***************** Version 3 ***************** - * User: Jsj Date: 9/05/02 Time: 1:03p - * Updated in $/LibSource/DBEncapsulation - * added ExecuteNonQuery calls - * - * ***************** Version 2 ***************** - * User: Jsj Date: 9/05/02 Time: 11:31a - * Updated in $/LibSource/DBEncapsulation - * added Close functions - * - * ***************** Version 1 ***************** - * User: Jsj Date: 8/23/02 Time: 3:07p - * Created in $/LibSource/DBEncapsulation - *********************************************************************************************/ - -using System; -using System.Data; -using System.Data.OleDb; -using Microsoft.Data.Odbc; - -namespace DBEncapsulation -{ - /// - /// Summary description for DBEncapsulate: Encapsulate database interface methods & - /// classes. Will encapsulate OLE DB & ODBC connections, commands, readers & other - /// features as required. - /// - public class DBEncapsulate - { - public virtual void Connection(string strconnect) - { - } - public virtual void OpenConnection() - { - } - public virtual void CloseConnection() - { - } - public virtual void Command(string strCommand) - { - } - public virtual void CommandDispose() - { - } - public virtual bool Reader() - { - return false; - } - public virtual void ReaderClose() - { - } - public virtual bool Read() - { - return false; - } - public virtual string GetString(int num) - { - string tmp = "tmp"; - return (tmp); - } - public virtual int GetInt32(int num) - { - return (0); - } - public virtual void NonQuery() - { - } - } - public class OLEDB_DBEncap: DBEncapsulate - { - OleDbConnection myDatabaseConn; - OleDbCommand myCommand; - OleDbDataReader myReader; - public override void Connection(string strconnect) - { - myDatabaseConn = new OleDbConnection(strconnect); - } - public override void OpenConnection() - { - myDatabaseConn.Open(); - } - public override void CloseConnection() - { - myDatabaseConn.Close(); - } - public override void Command(string strCommand) - { - myCommand = new OleDbCommand(strCommand,myDatabaseConn); - } - public override void CommandDispose() - { - myCommand.Dispose(); - } - public override bool Reader() - { - myReader = myCommand.ExecuteReader(); - if (myReader == null) - return false; - else - return true; - } - public override void ReaderClose() - { - myReader.Close(); - } - public override bool Read() - { - return(myReader.Read()); - } - public override string GetString(int num) - { - if (myReader.IsDBNull(num) == false) - return(myReader.GetString(num)); - else - return null; - //if (myReader.GetString(num) == null) return null; - //return(myReader.GetString(num)); - } - public override int GetInt32(int num) - { - return(myReader.GetInt32(num)); - } - public override void NonQuery() - { - myCommand.ExecuteNonQuery(); - } - } - - public class ODBC_DBEncap: DBEncapsulate - { - OdbcConnection myDatabaseConn; - OdbcCommand myCommand; - OdbcDataReader myReader; - public override void Connection(string strconnect) - { - myDatabaseConn = new OdbcConnection(strconnect); - } - public override void OpenConnection() - { - myDatabaseConn.Open(); - } - public override void CloseConnection() - { - myDatabaseConn.Close(); - } - public override void Command(string strCommand) - { - myCommand = new OdbcCommand(strCommand,myDatabaseConn); - } - public override void CommandDispose() - { - myCommand.Dispose(); - } - public override bool Reader() - { - myReader = myCommand.ExecuteReader(); - if (myReader == null) - return false; - else - return true; - } - public override void ReaderClose() - { - myReader.Close(); - } - public override bool Read() - { - return(myReader.Read()); - } - public override string GetString(int num) - { - if (myReader.IsDBNull(num) == false) - return(myReader.GetString(num)); - else - return null; - } - public override int GetInt32(int num) - { - return(myReader.GetInt32(num)); - } - public override void NonQuery() - { - myCommand.ExecuteNonQuery(); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/DBEncapsulation.csproj b/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/DBEncapsulation.csproj deleted file mode 100644 index fefef114..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/DBEncapsulation.csproj +++ /dev/null @@ -1,106 +0,0 @@ - - - Local - 8.0.50727 - 2.0 - {6D44F537-879E-11D6-84B8-00A0CC271352} - Debug - AnyCPU - - - - - DBEncapsulation - - - JScript - Grid - IE50 - false - Library - DBEncapsulation - OnBuildSuccess - - - - - - - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - - - - Microsoft.Data.Odbc - C:\Program Files\Microsoft.Net\Odbc.Net\Microsoft.Data.Odbc.dll - - - System - - - System.Data - - - System.XML - - - - - Code - - - Code - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/DBEncapsulation.sln b/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/DBEncapsulation.sln deleted file mode 100644 index b447aa2d..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/DBEncapsulation/DBEncapsulation.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DBEncapsulation", "DBEncapsulation.csproj", "{6D44F537-879E-11D6-84B8-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug.ActiveCfg = Debug|.NET - {6D44F537-879E-11D6-84B8-00A0CC271352}.Debug.Build.0 = Debug|.NET - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release.ActiveCfg = Release|.NET - {6D44F537-879E-11D6-84B8-00A0CC271352}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/AssemblyInfo.cpp b/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/AssemblyInfo.cpp deleted file mode 100644 index c185863d..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/AssemblyInfo.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include "stdafx.h" - -using namespace System::Reflection; -using namespace System::Runtime::CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly:AssemblyTitleAttribute("")]; -[assembly:AssemblyDescriptionAttribute("")]; -[assembly:AssemblyConfigurationAttribute("")]; -[assembly:AssemblyCompanyAttribute("")]; -[assembly:AssemblyProductAttribute("")]; -[assembly:AssemblyCopyrightAttribute("")]; -[assembly:AssemblyTrademarkAttribute("")]; -[assembly:AssemblyCultureAttribute("")]; - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the value or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly:AssemblyVersionAttribute("1.1.*")]; - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project directory. -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly:AssemblyDelaySignAttribute(false)]; -[assembly:AssemblyKeyFileAttribute("E:\\proms.net\\Public Key\\vlnkey.snk")]; -[assembly:AssemblyKeyNameAttribute("")]; - diff --git a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.cpp b/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.cpp deleted file mode 100644 index 89b3d45d..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.cpp +++ /dev/null @@ -1,67 +0,0 @@ -/********************************************************************************************* - * Copyright 2003 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: IniFileIO.cpp $ $Revision: 4 $ - * $Author: Jsj $ $Date: 1/07/04 12:08p $ - * - * $History: IniFileIO.cpp $ - * - * ***************** Version 4 ***************** - * User: Jsj Date: 1/07/04 Time: 12:08p - * Updated in $/LibSource/IniFileIO - * was not returning found strings - * - * ***************** Version 3 ***************** - * User: Jsj Date: 12/16/03 Time: 11:44a - * Updated in $/LibSource/IniFileIO - * modified to all use in .net 1.0 and .net 1.1 - *********************************************************************************************/ -// This is the main DLL file. -#include "stdafx.h" -#include "IniFileIO.h" - -using namespace IniFileIO; - -String *INIFile::GetINIKeyValueStr(String *SectName, String *KeyName, String *DefaultValue, unsigned BufSize, String *IniFileName) -{ - unsigned rtval; - LPCTSTR tmpSectName; - LPCTSTR tmpKeyName; - LPCTSTR tmpDefaultValue; - LPSTR tmpReturnBuff; - LPCTSTR tmpIniFileName; - ValueString = new String(NULL,BufSize+1); - tmpSectName = static_cast(static_cast(Marshal::StringToCoTaskMemAnsi(SectName))); - tmpKeyName = static_cast(static_cast(Marshal::StringToCoTaskMemAnsi(KeyName))); - tmpDefaultValue = static_cast(static_cast(Marshal::StringToCoTaskMemAnsi(DefaultValue))); - tmpReturnBuff = static_cast(static_cast(Marshal::StringToCoTaskMemAnsi(ValueString))); - tmpIniFileName = static_cast(static_cast(Marshal::StringToCoTaskMemAnsi(IniFileName))); - - rtval = GetPrivateProfileString(tmpSectName,tmpKeyName,tmpDefaultValue,tmpReturnBuff,BufSize,tmpIniFileName); - ValueString = new String(tmpReturnBuff); - return ValueString; - -} - -bool INIFile::WriteINIKeyValueStr(String *SectName, String *KeyName, String *KeyValue, String *IniFileName) -{ - bool rtval; - - LPCTSTR tmpSectName; - LPCTSTR tmpKeyName; - LPCTSTR tmpKeyValue; - LPCTSTR tmpIniFileName; - tmpSectName = static_cast(static_cast(Marshal::StringToCoTaskMemAnsi(SectName))); - tmpKeyName = static_cast(static_cast(Marshal::StringToCoTaskMemAnsi(KeyName))); - tmpKeyValue = static_cast(static_cast(Marshal::StringToCoTaskMemAnsi(KeyValue))); - tmpIniFileName = static_cast(static_cast(Marshal::StringToCoTaskMemAnsi(IniFileName))); - - rtval = WritePrivateProfileString(tmpSectName,tmpKeyName,tmpKeyValue,tmpIniFileName); - - Marshal::FreeCoTaskMem(System::IntPtr((void*)tmpSectName)); - Marshal::FreeCoTaskMem(System::IntPtr((void*)tmpKeyName)); - Marshal::FreeCoTaskMem(System::IntPtr((void*)tmpKeyValue)); - Marshal::FreeCoTaskMem(System::IntPtr((void*)tmpIniFileName)); - return rtval; -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.h b/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.h deleted file mode 100644 index 8b19e06d..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.h +++ /dev/null @@ -1,35 +0,0 @@ -/********************************************************************************************* - * Copyright 2003 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: IniFileIO.h $ $Revision: 3 $ - * $Author: Jsj $ $Date: 12/16/03 11:39a $ - * - * $History: IniFileIO.h $ - * - * ***************** Version 3 ***************** - * User: Jsj Date: 12/16/03 Time: 11:39a - * Updated in $/LibSource/IniFileIO - * modified to all use in .net 1.0 and .net 1.1 - *********************************************************************************************/ -// IniFileIO.h - -#pragma once -#using -#include -#include - -using namespace System; -using namespace System::Runtime::InteropServices; - -namespace IniFileIO -{ - public __gc class INIFile - { - public: - String *ValueString; - INIFile() {}; - String *GetINIKeyValueStr(String *SectName, String *KeyName, String *DefaultValue, unsigned BufSize, String *IniFileName); - bool WriteINIKeyValueStr(String *SectName, String *KeyName, String *KeyValue, String *IniFileName); - }; -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.sln b/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.sln deleted file mode 100644 index 3389e64f..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "IniFileIO", "IniFileIO.vcproj", "{FD05F903-0D2F-11D7-859A-D0745C000000}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {FD05F903-0D2F-11D7-859A-D0745C000000}.Debug.ActiveCfg = Debug|Win32 - {FD05F903-0D2F-11D7-859A-D0745C000000}.Debug.Build.0 = Debug|Win32 - {FD05F903-0D2F-11D7-859A-D0745C000000}.Release.ActiveCfg = Release|Win32 - {FD05F903-0D2F-11D7-859A-D0745C000000}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.vcproj b/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.vcproj deleted file mode 100644 index a45444e1..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/IniFileIO.vcproj +++ /dev/null @@ -1,238 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/ReadMe.txt b/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/ReadMe.txt deleted file mode 100644 index e324b840..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/ReadMe.txt +++ /dev/null @@ -1,31 +0,0 @@ -======================================================================== - DYNAMIC LINK LIBRARY : IniFileIO Project Overview -======================================================================== - -AppWizard has created this IniFileIO DLL for you. - -This file contains a summary of what you will find in each of the files that -make up your IniFileIO application. - -IniFileIO.vcproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -IniFileIO.cpp - This is the main DLL source file. - -IniFileIO.h - This file contains a class declaration. - -AssemblyInfo.cpp - Contains custom attributes for modifying assembly metadata. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// diff --git a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/Stdafx.cpp b/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/Stdafx.cpp deleted file mode 100644 index 0fc75f1a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/Stdafx.cpp +++ /dev/null @@ -1,5 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// IniFileIO.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" diff --git a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/Stdafx.h b/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/Stdafx.h deleted file mode 100644 index 459e5fc4..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/IniFileIO/Stdafx.h +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, -// but are changed infrequently - -#pragma once - -#using - diff --git a/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/IniReader.cs b/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/IniReader.cs deleted file mode 100644 index 12b5c705..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/IniReader.cs +++ /dev/null @@ -1,428 +0,0 @@ -/* - IniReader class for C# - Version: 1.0 Date: 2002/04/24 -*/ -/* - Copyright 2002, The KPD-Team - All rights reserved. - http://www.mentalis.org/ - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - - Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - - Neither the name of the KPD-Team, nor the names of its contributors - may be used to endorse or promote products derived from this - software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS - FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL - THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, - INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, - STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED - OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -using System; -using System.Text; -using System.Collections; -using System.Runtime.InteropServices; - -// The Org.Mentalis.Files contains a number of classes that read from or write to special files. -namespace Org.Mentalis.Files -{ - /// - /// The INIReader class can read keys from and write keys to an INI file. - /// - /// - /// This class uses several Win32 API functions to read from and write to INI files. It will not work on Linux or FreeBSD. - /// - public class IniReader - { - // API declarations - /// - /// The GetPrivateProfileInt function retrieves an integer associated with a key in the specified section of an initialization file. - /// - /// Pointer to a null-terminated string specifying the name of the section in the initialization file. - /// Pointer to the null-terminated string specifying the name of the key whose value is to be retrieved. This value is in the form of a string; the GetPrivateProfileInt function converts the string into an integer and returns the integer. - /// Specifies the default value to return if the key name cannot be found in the initialization file. - /// Pointer to a null-terminated string that specifies the name of the initialization file. If this parameter does not contain a full path to the file, the system searches for the file in the Windows directory. - /// The return value is the integer equivalent of the string following the specified key name in the specified initialization file. If the key is not found, the return value is the specified default value. If the value of the key is less than zero, the return value is zero. - [DllImport("KERNEL32.DLL", EntryPoint = "GetPrivateProfileIntA", CharSet = CharSet.Ansi)] - private static extern int GetPrivateProfileInt(string lpApplicationName, string lpKeyName, int nDefault, string lpFileName); - /// - /// The WritePrivateProfileString function copies a string into the specified section of an initialization file. - /// - /// Pointer to a null-terminated string containing the name of the section to which the string will be copied. If the section does not exist, it is created. The name of the section is case-independent; the string can be any combination of uppercase and lowercase letters. - /// Pointer to the null-terminated string containing the name of the key to be associated with a string. If the key does not exist in the specified section, it is created. If this parameter is NULL, the entire section, including all entries within the section, is deleted. - /// Pointer to a null-terminated string to be written to the file. If this parameter is NULL, the key pointed to by the lpKeyName parameter is deleted. - /// Pointer to a null-terminated string that specifies the name of the initialization file. - /// If the function successfully copies the string to the initialization file, the return value is nonzero; if the function fails, or if it flushes the cached version of the most recently accessed initialization file, the return value is zero. - [DllImport("KERNEL32.DLL", EntryPoint = "WritePrivateProfileStringA", CharSet = CharSet.Ansi)] - private static extern int WritePrivateProfileString(string lpApplicationName, string lpKeyName, string lpString, string lpFileName); - /// - /// The GetPrivateProfileString function retrieves a string from the specified section in an initialization file. - /// - /// Pointer to a null-terminated string that specifies the name of the section containing the key name. If this parameter is NULL, the GetPrivateProfileString function copies all section names in the file to the supplied buffer. - /// Pointer to the null-terminated string specifying the name of the key whose associated string is to be retrieved. If this parameter is NULL, all key names in the section specified by the lpAppName parameter are copied to the buffer specified by the lpReturnedString parameter. - /// Pointer to a null-terminated default string. If the lpKeyName key cannot be found in the initialization file, GetPrivateProfileString copies the default string to the lpReturnedString buffer. This parameter cannot be NULL.
    Avoid specifying a default string with trailing blank characters. The function inserts a null character in the lpReturnedString buffer to strip any trailing blanks.
    - /// Pointer to the buffer that receives the retrieved string. - /// Specifies the size, in TCHARs, of the buffer pointed to by the lpReturnedString parameter. - /// Pointer to a null-terminated string that specifies the name of the initialization file. If this parameter does not contain a full path to the file, the system searches for the file in the Windows directory. - /// The return value is the number of characters copied to the buffer, not including the terminating null character. - [DllImport("KERNEL32.DLL", EntryPoint = "GetPrivateProfileStringA", CharSet = CharSet.Ansi)] - private static extern int GetPrivateProfileString(string lpApplicationName, string lpKeyName, string lpDefault, StringBuilder lpReturnedString, int nSize, string lpFileName); - /// - /// The GetPrivateProfileSectionNames function retrieves the names of all sections in an initialization file. - /// - /// Pointer to a buffer that receives the section names associated with the named file. The buffer is filled with one or more null-terminated strings; the last string is followed by a second null character. - /// Specifies the size, in TCHARs, of the buffer pointed to by the lpszReturnBuffer parameter. - /// Pointer to a null-terminated string that specifies the name of the initialization file. If this parameter is NULL, the function searches the Win.ini file. If this parameter does not contain a full path to the file, the system searches for the file in the Windows directory. - /// The return value specifies the number of characters copied to the specified buffer, not including the terminating null character. If the buffer is not large enough to contain all the section names associated with the specified initialization file, the return value is equal to the length specified by nSize minus two. - [DllImport("KERNEL32.DLL", EntryPoint = "GetPrivateProfileSectionNamesA", CharSet = CharSet.Ansi)] - private static extern int GetPrivateProfileSectionNames(byte[] lpszReturnBuffer, int nSize, string lpFileName); - /// - /// The WritePrivateProfileSection function replaces the keys and values for the specified section in an initialization file. - /// - /// Pointer to a null-terminated string specifying the name of the section in which data is written. This section name is typically the name of the calling application. - /// Pointer to a buffer containing the new key names and associated values that are to be written to the named section. - /// Pointer to a null-terminated string containing the name of the initialization file. If this parameter does not contain a full path for the file, the function searches the Windows directory for the file. If the file does not exist and lpFileName does not contain a full path, the function creates the file in the Windows directory. The function does not create a file if lpFileName contains the full path and file name of a file that does not exist. - /// If the function succeeds, the return value is nonzero.
    If the function fails, the return value is zero.
    - [DllImport("KERNEL32.DLL", EntryPoint = "WritePrivateProfileSectionA", CharSet = CharSet.Ansi)] - private static extern int WritePrivateProfileSection(string lpAppName, string lpString, string lpFileName); - /// Constructs a new IniReader instance. - /// Specifies the full path to the INI file (the file doesn't have to exist). - public IniReader(string file) - { - Filename = file; - } - /// Gets or sets the full path to the INI file. - /// A String representing the full path to the INI file. - public string Filename - { - get - { - return m_Filename; - } - set - { - m_Filename = value; - } - } - /// Gets or sets the section you're working in. (aka 'the active section') - /// A String representing the section you're working in. - public string Section - { - get - { - return m_Section; - } - set - { - m_Section = value; - } - } - /// Reads an Integer from the specified key of the specified section. - /// The section to search in. - /// The key from which to return the value. - /// The value to return if the specified key isn't found. - /// Returns the value of the specified section/key pair, or returns the default value if the specified section/key pair isn't found in the INI file. - public int ReadInteger(string section, string key, int defVal) - { - return GetPrivateProfileInt(section, key, defVal, Filename); - } - /// Reads an Integer from the specified key of the specified section. - /// The section to search in. - /// The key from which to return the value. - /// Returns the value of the specified section/key pair, or returns 0 if the specified section/key pair isn't found in the INI file. - public int ReadInteger(string section, string key) - { - return ReadInteger(section, key, 0); - } - /// Reads an Integer from the specified key of the active section. - /// The key from which to return the value. - /// The section to search in. - /// Returns the value of the specified Key, or returns the default value if the specified Key isn't found in the active section of the INI file. - public int ReadInteger(string key, int defVal) - { - return ReadInteger(Section, key, defVal); - } - /// Reads an Integer from the specified key of the active section. - /// The key from which to return the value. - /// Returns the value of the specified key, or returns 0 if the specified key isn't found in the active section of the INI file. - public int ReadInteger(string key) - { - return ReadInteger(key, 0); - } - /// Reads a String from the specified key of the specified section. - /// The section to search in. - /// The key from which to return the value. - /// The value to return if the specified key isn't found. - /// Returns the value of the specified section/key pair, or returns the default value if the specified section/key pair isn't found in the INI file. - public string ReadString(string section, string key, string defVal) - { - StringBuilder sb = new StringBuilder(MAX_ENTRY); - int Ret = GetPrivateProfileString(section, key, defVal, sb, MAX_ENTRY, Filename); - return sb.ToString(); - } - /// Reads a String from the specified key of the specified section. - /// The section to search in. - /// The key from which to return the value. - /// Returns the value of the specified section/key pair, or returns an empty String if the specified section/key pair isn't found in the INI file. - public string ReadString(string section, string key) - { - return ReadString(section, key, ""); - } - /// Reads a String from the specified key of the active section. - /// The key from which to return the value. - /// Returns the value of the specified key, or returns an empty String if the specified key isn't found in the active section of the INI file. - public string ReadString(string key) - { - return ReadString(Section, key); - } - /// Reads a Long from the specified key of the specified section. - /// The section to search in. - /// The key from which to return the value. - /// The value to return if the specified key isn't found. - /// Returns the value of the specified section/key pair, or returns the default value if the specified section/key pair isn't found in the INI file. - public long ReadLong(string section, string key, long defVal) - { - return long.Parse(ReadString(section, key, defVal.ToString())); - } - /// Reads a Long from the specified key of the specified section. - /// The section to search in. - /// The key from which to return the value. - /// Returns the value of the specified section/key pair, or returns 0 if the specified section/key pair isn't found in the INI file. - public long ReadLong(string section, string key) - { - return ReadLong(section, key, 0); - } - /// Reads a Long from the specified key of the active section. - /// The key from which to return the value. - /// The section to search in. - /// Returns the value of the specified key, or returns the default value if the specified key isn't found in the active section of the INI file. - public long ReadLong(string key, long defVal) - { - return ReadLong(Section, key, defVal); - } - /// Reads a Long from the specified key of the active section. - /// The key from which to return the value. - /// Returns the value of the specified Key, or returns 0 if the specified Key isn't found in the active section of the INI file. - public long ReadLong(string key) - { - return ReadLong(key, 0); - } - /// Reads a Byte array from the specified key of the specified section. - /// The section to search in. - /// The key from which to return the value. - /// Returns the value of the specified section/key pair, or returns null (Nothing in VB.NET) if the specified section/key pair isn't found in the INI file. - public byte[] ReadByteArray(string section, string key) - { - try - { - return Convert.FromBase64String(ReadString(section, key)); - } - catch { } - return null; - } - /// Reads a Byte array from the specified key of the active section. - /// The key from which to return the value. - /// Returns the value of the specified key, or returns null (Nothing in VB.NET) if the specified key pair isn't found in the active section of the INI file. - public byte[] ReadByteArray(string key) - { - return ReadByteArray(Section, key); - } - /// Reads a Boolean from the specified key of the specified section. - /// The section to search in. - /// The key from which to return the value. - /// The value to return if the specified key isn't found. - /// Returns the value of the specified section/key pair, or returns the default value if the specified section/key pair isn't found in the INI file. - public bool ReadBoolean(string section, string key, bool defVal) - { - return Boolean.Parse(ReadString(section, key, defVal.ToString())); - } - /// Reads a Boolean from the specified key of the specified section. - /// The section to search in. - /// The key from which to return the value. - /// Returns the value of the specified section/key pair, or returns false if the specified section/key pair isn't found in the INI file. - public bool ReadBoolean(string section, string key) - { - return ReadBoolean(section, key, false); - } - /// Reads a Boolean from the specified key of the specified section. - /// The key from which to return the value. - /// The value to return if the specified key isn't found. - /// Returns the value of the specified key pair, or returns the default value if the specified key isn't found in the active section of the INI file. - public bool ReadBoolean(string key, bool defVal) - { - return ReadBoolean(Section, key, defVal); - } - /// Reads a Boolean from the specified key of the specified section. - /// The key from which to return the value. - /// Returns the value of the specified key, or returns false if the specified key isn't found in the active section of the INI file. - public bool ReadBoolean(string key) - { - return ReadBoolean(Section, key); - } - /// Writes an Integer to the specified key in the specified section. - /// The section to write in. - /// The key to write to. - /// The value to write. - /// Returns true if the function succeeds, false otherwise. - public bool Write(string section, string key, int value) - { - return Write(section, key, value.ToString()); - } - /// Writes an Integer to the specified key in the active section. - /// The key to write to. - /// The value to write. - /// Returns true if the function succeeds, false otherwise. - public bool Write(string key, int value) - { - return Write(Section, key, value); - } - /// Writes a String to the specified key in the specified section. - /// Specifies the section to write in. - /// Specifies the key to write to. - /// Specifies the value to write. - /// Returns true if the function succeeds, false otherwise. - public bool Write(string section, string key, string value) - { - return (WritePrivateProfileString(section, key, value, Filename) != 0); - } - /// Writes a String to the specified key in the active section. - /// The key to write to. - /// The value to write. - /// Returns true if the function succeeds, false otherwise. - public bool Write(string key, string value) - { - return Write(Section, key, value); - } - /// Writes a Long to the specified key in the specified section. - /// The section to write in. - /// The key to write to. - /// The value to write. - /// Returns true if the function succeeds, false otherwise. - public bool Write(string section, string key, long value) - { - return Write(section, key, value.ToString()); - } - /// Writes a Long to the specified key in the active section. - /// The key to write to. - /// The value to write. - /// Returns true if the function succeeds, false otherwise. - public bool Write(string key, long value) - { - return Write(Section, key, value); - } - /// Writes a Byte array to the specified key in the specified section. - /// The section to write in. - /// The key to write to. - /// The value to write. - /// Returns true if the function succeeds, false otherwise. - public bool Write(string section, string key, byte[] value) - { - if (value == null) - return Write(section, key, (string)null); - else - return Write(section, key, value, 0, value.Length); - } - /// Writes a Byte array to the specified key in the active section. - /// The key to write to. - /// The value to write. - /// Returns true if the function succeeds, false otherwise. - public bool Write(string key, byte[] value) - { - return Write(Section, key, value); - } - /// Writes a Byte array to the specified key in the specified section. - /// The section to write in. - /// The key to write to. - /// The value to write. - /// An offset in value. - /// The number of elements of value to convert. - /// Returns true if the function succeeds, false otherwise. - public bool Write(string section, string key, byte[] value, int offset, int length) - { - if (value == null) - return Write(section, key, (string)null); - else - return Write(section, key, Convert.ToBase64String(value, offset, length)); - } - /// Writes a Boolean to the specified key in the specified section. - /// The section to write in. - /// The key to write to. - /// The value to write. - /// Returns true if the function succeeds, false otherwise. - public bool Write(string section, string key, bool value) - { - return Write(section, key, value.ToString()); - } - /// Writes a Boolean to the specified key in the active section. - /// The key to write to. - /// The value to write. - /// Returns true if the function succeeds, false otherwise. - public bool Write(string key, bool value) - { - return Write(Section, key, value); - } - /// Deletes a key from the specified section. - /// The section to delete from. - /// The key to delete. - /// Returns true if the function succeeds, false otherwise. - public bool DeleteKey(string section, string key) - { - return (WritePrivateProfileString(section, key, null, Filename) != 0); - } - /// Deletes a key from the active section. - /// The key to delete. - /// Returns true if the function succeeds, false otherwise. - public bool DeleteKey(string key) - { - return (WritePrivateProfileString(Section, key, null, Filename) != 0); - } - /// Deletes a section from an INI file. - /// The section to delete. - /// Returns true if the function succeeds, false otherwise. - public bool DeleteSection(string section) - { - return WritePrivateProfileSection(section, null, Filename) != 0; - } - /// Retrieves a list of all available sections in the INI file. - /// Returns an ArrayList with all available sections. - public ArrayList GetSectionNames() - { - try - { - byte[] buffer = new byte[MAX_ENTRY]; - GetPrivateProfileSectionNames(buffer, MAX_ENTRY, Filename); - string[] parts = Encoding.ASCII.GetString(buffer).Trim('\0').Split('\0'); - return new ArrayList(parts); - } - catch { } - return null; - } - //Private variables and constants - /// - /// Holds the full path to the INI file. - /// - private string m_Filename; - /// - /// Holds the active section name - /// - private string m_Section; - /// - /// The maximum number of bytes in a section buffer. - /// - private const int MAX_ENTRY = 32768; - } -} \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/Org.Mentalis.Files.csproj b/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/Org.Mentalis.Files.csproj deleted file mode 100644 index 7cc126de..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/Org.Mentalis.Files.csproj +++ /dev/null @@ -1,47 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04} - Library - Properties - Org.Mentalis.Files - Org.Mentalis.Files - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/Properties/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/Properties/AssemblyInfo.cs deleted file mode 100644 index 9b3fae73..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Org.Mentalis.Files")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Org.Mentalis.Files")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("fd26053d-c25d-46ca-961c-7016c31e8b4b")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/Properties/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/Properties/AssemblyInfo.cs.bak deleted file mode 100644 index 6e25ac0d..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Org.Mentalis.Files/Properties/AssemblyInfo.cs.bak +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Org.Mentalis.Files")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("Org.Mentalis.Files")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("fd26053d-c25d-46ca-961c-7016c31e8b4b")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/RODBInterface.cs b/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/RODBInterface.cs deleted file mode 100644 index 88a34c93..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/RODBInterface.cs +++ /dev/null @@ -1,3047 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: RODBInterface.cs $ $Revision: 48 $ - * $Author: Kathy $ $Date: 9/06/05 11:25a $ - * - * $History: RODBInterface.cs $ - * - * ***************** Version 48 ***************** - * User: Kathy Date: 9/06/05 Time: 11:25a - * Updated in $/LibSource/RODBInterface - * B2005-035 - * - * ***************** Version 47 ***************** - * User: Jsj Date: 5/03/05 Time: 11:45a - * Updated in $/LibSource/RODBInterface - * - * ***************** Version 46 ***************** - * User: Kathy Date: 7/15/04 Time: 11:10a - * Updated in $/LibSource/RODBInterface - * Fix B2004-016 - * - * ***************** Version 45 ***************** - * User: Jsj Date: 5/19/04 Time: 11:11a - * Updated in $/LibSource/RODBInterface - * fixed typo in warning message - * - * ***************** Version 44 ***************** - * User: Jsj Date: 5/13/04 Time: 2:19p - * Updated in $/LibSource/RODBInterface - * RO FST will skip records that do not have a valid parent. - * - * ***************** Version 43 ***************** - * User: Jsj Date: 5/11/04 Time: 9:28a - * Updated in $/LibSource/RODBInterface - * We were getting multiple tree entries after creating the FST file. - * - * ***************** Version 42 ***************** - * User: Jsj Date: 4/08/04 Time: 9:42a - * Updated in $/LibSource/RODBInterface - * Optimized and added new read functions to speed up RO.FST file - * creation. - * - * ***************** Version 41 ***************** - * User: Jsj Date: 3/19/04 Time: 9:40a - * Updated in $/LibSource/RODBInterface - * bug fix, was using parent node's group definition instead of the - * current node's group definition - * B2004-008 - * - * ***************** Version 40 ***************** - * User: Jsj Date: 1/12/04 Time: 12:08p - * Updated in $/LibSource/RODBInterface - * changed SQL Server catalog name from"RO" to "VEPROMS RO" - * - * ***************** Version 39 ***************** - * User: Jsj Date: 1/07/04 Time: 2:17p - * Updated in $/LibSource/RODBInterface - * allow use of SQL Server - * - * ***************** Version 38 ***************** - * User: Kathy Date: 5/30/03 Time: 12:47p - * Updated in $/LibSource/RODBInterface - * B2003-040: flag inserted groups have no children for xml - * - * ***************** Version 37 ***************** - * User: Kathy Date: 5/21/03 Time: 12:44p - * Updated in $/LibSource/RODBInterface - * B2003-041: field name changes fixes. - * - * ***************** Version 36 ***************** - * User: Kathy Date: 5/07/03 Time: 1:57p - * Updated in $/LibSource/RODBInterface - * B2003-033 fix - * - * ***************** Version 35 ***************** - * User: Jsj Date: 4/14/03 Time: 2:59p - * Updated in $/LibSource/RODBInterface - * changes to help speed up RO FST file creation - * - * ***************** Version 34 ***************** - * User: Kathy Date: 4/04/03 Time: 9:39a - * Updated in $/LibSource/RODBInterface - * B2003-030: flag parent's HasChild attribute for new ros - * - * ***************** Version 33 ***************** - * User: Kathy Date: 3/13/03 Time: 1:17p - * Updated in $/LibSource/RODBInterface - * master different than local fieldname, use local - * - * ***************** Version 32 ***************** - * User: Kathy Date: 1/27/03 Time: 2:12p - * Updated in $/LibSource/RODBInterface - * test oledb - * - * ***************** Version 31 ***************** - * User: Kathy Date: 12/17/02 Time: 2:32p - * Updated in $/LibSource/RODBInterface - * new top group with apostrophe failed - * - * ***************** Version 30 ***************** - * User: Kathy Date: 12/17/02 Time: 11:05a - * Updated in $/LibSource/RODBInterface - * fixed bug on apostrophe in field def (schema string) - * - * ***************** Version 29 ***************** - * User: Kathy Date: 12/10/02 Time: 2:24p - * Updated in $/LibSource/RODBInterface - * fieldname special chars & various bug fixes - * - * ***************** Version 28 ***************** - * User: Kathy Date: 12/06/02 Time: 11:57a - * Updated in $/LibSource/RODBInterface - * mods for SQL Server - * - * ***************** Version 27 ***************** - * User: Kathy Date: 12/02/02 Time: 8:28a - * Updated in $/LibSource/RODBInterface - * fieldname replace chars - * - * ***************** Version 26 ***************** - * User: Kathy Date: 12/02/02 Time: 6:11a - * Updated in $/LibSource/RODBInterface - * Fix some bugs and add status bar on long ops - * - * ***************** Version 25 ***************** - * User: Jsj Date: 11/27/02 Time: 12:46p - * Updated in $/LibSource/RODBInterface - * modifications for RO.FST file creation - * - * ***************** Version 24 ***************** - * User: Kathy Date: 11/26/02 Time: 12:56p - * Updated in $/LibSource/RODBInterface - * fixed single quote crash in accpageid - * - * ***************** Version 23 ***************** - * User: Kathy Date: 11/11/02 Time: 7:15a - * Updated in $/LibSource/RODBInterface - * Added RODB_ReadRO to read an RO given a recid/table name - * - * ***************** Version 22 ***************** - * User: Kathy Date: 10/24/02 Time: 11:16a - * Updated in $/LibSource/RODBInterface - * delete hi-level group (table) - * - * ***************** Version 21 ***************** - * User: Kathy Date: 10/15/02 Time: 2:16p - * Updated in $/LibSource/RODBInterface - * minor bug fixes & new group (database, i.e. table level) - * - * ***************** Version 20 ***************** - * User: Kathy Date: 10/10/02 Time: 1:04p - * Updated in $/LibSource/RODBInterface - * xmltree=tree control - * - * ***************** Version 19 ***************** - * User: Kathy Date: 10/10/02 Time: 10:56a - * Updated in $/LibSource/RODBInterface - * console.writeline->Messagebox - * - * ***************** Version 18 ***************** - * User: Kathy Date: 10/10/02 Time: 10:00a - * Updated in $/LibSource/RODBInterface - * delete bug fix & accessory page id support - * - * ***************** Version 17 ***************** - * User: Kathy Date: 10/07/02 Time: 11:25a - * Updated in $/LibSource/RODBInterface - * image file saving of xml using xmltextwriter was missing sometext - * - * ***************** Version 16 ***************** - * User: Kathy Date: 10/02/02 Time: 1:41p - * Updated in $/LibSource/RODBInterface - * tie tree to insert/delete changes (round 1) - * - * ***************** Version 15 ***************** - * User: Jsj Date: 10/01/02 Time: 4:45p - * Updated in $/LibSource/RODBInterface - * hooks for passed in database path - * - * ***************** Version 14 ***************** - * User: Kathy Date: 9/27/02 Time: 1:22p - * Updated in $/LibSource/RODBInterface - * remove using vlnxml - * - * ***************** Version 13 ***************** - * User: Kathy Date: 9/27/02 Time: 1:18p - * Updated in $/LibSource/RODBInterface - * fix digit as first char in fieldname & recurse through tree adjusting - * for modified field names - * - * ***************** Version 12 ***************** - * User: Jsj Date: 9/26/02 Time: 11:13a - * Updated in $/LibSource/RODBInterface - * added VLNXML reference - * - * ***************** Version 11 ***************** - * User: Kathy Date: 9/25/02 Time: 9:55a - * Updated in $/LibSource/RODBInterface - * generate xml strings for writing to database by using xmltextwriter - * - * ***************** Version 10 ***************** - * User: Kathy Date: 9/19/02 Time: 10:02a - * Updated in $/LibSource/RODBInterface - * minor changes for schema and other bug fixes - * - * ***************** Version 9 ***************** - * User: Kathy Date: 9/11/02 Time: 1:14p - * Updated in $/LibSource/RODBInterface - * vlnxml - * - * ***************** Version 8 ***************** - * User: Kathy Date: 9/10/02 Time: 12:54p - * Updated in $/LibSource/RODBInterface - * menu titles - * - * ***************** Version 7 ***************** - * User: Kathy Date: 9/06/02 Time: 11:43a - * Updated in $/LibSource/RODBInterface - * datetimestamp - * - * ***************** Version 6 ***************** - * User: Kathy Date: 8/30/02 Time: 11:56a - * Updated in $/LibSource/RODBInterface - * new/update ro field records. - * - * ***************** Version 5 ***************** - * User: Kathy Date: 8/30/02 Time: 9:43a - * Updated in $/LibSource/RODBInterface - * compile - * - * ***************** Version 4 ***************** - * User: Jsj Date: 8/28/02 Time: 3:40p - * Updated in $/LibSource/RODBInterface - * added a create table function - * - * ***************** Version 3 ***************** - * User: Jsj Date: 8/28/02 Time: 3:03p - * Updated in $/LibSource/RODBInterface - * read connection strings from a text file - * - * ***************** Version 2 ***************** - * User: Kathy Date: 8/28/02 Time: 10:52a - * Updated in $/LibSource/RODBInterface - * development - *********************************************************************************************/ - - -using System; -using System.Collections; -using System.IO; -using System.Data; -using System.Xml; -using System.Xml.XPath; -using System.Xml.Schema; -using System.Text; -using System.Windows.Forms; -using DBEncapsulation; -using ROFields; -using VlnStatus; -//using IniFileIO; -using System.Collections.Specialized; -using Org.Mentalis.Files; -//using VlnProfiler; //don't forget to add VlnProfiler to the reference list - -namespace RODBInterface -{ - /// - /// Summary description for Class1 - /// - public enum RecordType: uint - { - Master=0, SubDatabase=1, Schema=2, Group=3, GroupSchema=4, RRO=5, SchemaStart=6, SchemaEnd=7 - } - - /// - /// The following class handles generation of sql strings to get/put requested parts of - /// XML RO Tree. And performs the database access using the VLN_DB class. - /// - public class RODB - { - DBEncapsulation.DBEncapsulate DBE; - DBEncapsulation.OLEDB_DBEncap DBE_OLEDB; -// DBEncapsulation.ODBC_DBEncap DBE_ODBC; - - private VlnXmlDocument ROXml; - private string schemastart; - private string schemaend; - private string lastTable=""; - private HybridDictionary dicFldTypes; - -// private string strAccOLEDBconn = ""; -// private string strSQLOLEDBconn = ""; -// private string strAccODBCconn = ""; -// private string strodbcConn = ""; - - private string strDatabaseConnectionCommand; - -// int dbConnectionType = 0; // we are only doing OLE-DB - int dbProviderType = 0; - string dbServerPath=""; - string dbServerUserName=""; - string dbServerPassword=""; - -// private enum CONNTYPE {OLEDB, ODBC}; - private enum DB_PROVIDER {ACCESS,SQL_SERVER,ORACLE}; - -// public RODB(int conntype, string connectstring) - public RODB(string RODirectoyPath) - { - // Setup the connection string - //if (RODirectoyPath.Equals("")) - // GetConnectionStringFromFile(); - //else - BuildConnectionString(RODirectoyPath); - - // Initialize the connection depending on OLE-DB or ODBC: -// conntype = 2; // ODBC: 1; // OLE-DB: 2 need to define this programmatically - //END OF TEMPORARY - - // Either use an OLE-DB or ODBC connection, depending on what was passed in. -//**** We are only doing OLE-DB -// if ( dbConnectionType == (int)CONNTYPE.ODBC) // ODBC -// { -// DBE_ODBC = new ODBC_DBEncap(); -// DBE = DBE_ODBC; -// } -// else // OLE-DB -// { - DBE_OLEDB = new OLEDB_DBEncap(); - DBE = DBE_OLEDB; -// } - - try - { -// DBE.Connection(strAccOLEDBconn); - //DBE.Connection(strodbcConn); - //SQL: -// DBE.Connection(strSQLOLEDBconn); - DBE.Connection(strDatabaseConnectionCommand); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Setup of OLEDB/ODBC"); - } - } - - -// public void GetConnectionStringFromFile() -// { -// /* This file should contain the connection strings in the followin order: -// * AccOLEDBconn, SQLOLEDBconn, AccODBCconn, odbcConn. -// */ -// // append "ConnectList.txt" to the path of the location of the exe being run -// // for example: VE-PROMS.NET\BIN or BIN\DEBUG -// // This set in Visual Studio .NET in the properties dialog of the project, select -// // Configuration Properties. You will see an option call Output Path. -// string FileName = Application.StartupPath + "\\ConnectList.txt"; -// -// if (!File.Exists(FileName)) -// { -// // File does not exist -// MessageBox.Show("Could not find ConnectList.txt file"); -// return; -// } -// -// /* -// * Open the text file for reading -// */ -// StreamReader sr = File.OpenText(FileName); -// -// /* -// * Connection string to MS-access use with oledb directly -// */ -// strAccOLEDBconn = sr.ReadLine(); -// -// /* -// * connection string to SQL-server use with oledb -// */ -// strSQLOLEDBconn = sr.ReadLine(); -// -// /* -// * connection string to for oledb to odbc dsn -// */ -// strAccODBCconn = sr.ReadLine(); -// -// /* -// * ODBC connection: -// * ACCESS: -// */ -// strodbcConn = sr.ReadLine(); -// -// sr.Close(); // close ConnectList.txt -// -// } - - private void GetDbServerInfo(string ROdir) - { -// string strConnectionType; - string strServerProvider; - string ROiniPath = ROdir + "\\ROAPP.INI"; - - //**** For now we are only doing OLE-DB - //**** - // Get the database connection type -// strConnectionType = TheIniFile.GetINIKeyValueStr("Database Server","Connection Type","OLEDB",10,ROiniPath); -// strConnectionType = strConnectionType.ToUpper(); -// if (strConnectionType.Equals("OLEDB")) -// dbConnectionType = (int)CONNTYPE.OLEDB; -// else if (strConnectionType.Equals("ODBC")) -// { -// dbConnectionType = (int)CONNTYPE.ODBC; -// dbODBC_DNS = TheIniFile.GetINIKeyValueStr("Database Server","DNS","",10,ROiniPath); -// } - - // Get the database Provider name - default to Access - IniReader in1 = new IniReader(ROiniPath); - strServerProvider = in1.ReadString("Database Server","Driver","ACCESS"); - strServerProvider = strServerProvider.ToUpper(); - if (strServerProvider.Equals("SQL SERVER")) - dbProviderType = (int)DB_PROVIDER.SQL_SERVER; - else if (strServerProvider.Equals("ORACLE")) - dbProviderType = (int)DB_PROVIDER.ORACLE; - else // default to ACCESS - dbProviderType = (int)DB_PROVIDER.ACCESS; - - // Get the database server path - dbServerPath = in1.ReadString("Database Server", "Path", ROdir); - dbServerUserName = in1.ReadString("Database Server", "UserID", ""); - dbServerPassword = in1.ReadString("Database Server", "Password", ""); - if (dbProviderType.Equals((int)DB_PROVIDER.ACCESS)) - { - if (dbServerUserName.Equals("")) - dbServerUserName = "Admin"; // default user name for Access - } - else if (dbServerUserName.Equals("") || (dbServerUserName.Length>0 && dbServerPassword.Equals(""))) - { - userpass pwdlg = new userpass(dbServerUserName); - // If using SQL Server or Oracle - // prompt for a user name and password. - pwdlg.Text = strServerProvider + pwdlg.Text; - if (pwdlg.ShowDialog() == DialogResult.OK) - { - dbServerUserName = pwdlg.uname; - dbServerPassword = pwdlg.pword; - } - else - { - dbServerUserName = ""; - dbServerPassword = ""; - } - } - } - - public void BuildConnectionString(string DataConnectionPath) - { - GetDbServerInfo(DataConnectionPath); - -// if (dbConnectionType.Equals(CONNTYPE.OLEDB)) -// { - if (dbProviderType.Equals((int)DB_PROVIDER.SQL_SERVER)) - { - /* - * Connect to SQL-server using OLEDB - */ - // !!!!! do we need the Workstation ID? if so, we need to pass this in too! - // - don't seem to need Workstation ID - jsj 1/6/04 - - // strSQLOLEDBconn = "Provider=SQLOLEDB;Persist Security Info=False;User ID=sa;Initial Catalog=RO;Data Source=DELL-W2K-SERVER\\SQL2000;Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Workstation ID=KATHY;Use Encryption for Data=False;Tag with column collation when possible=False"; - - // strDatabaseConnectionCommand = "Provider=SQLOLEDB;Persist Security Info=False;User ID="+dbServerUserName+";Password="+dbServerPassword+";Initial Catalog=RO;Data Source=" + dbServerPath + ";Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False"; - strDatabaseConnectionCommand = "Provider=SQLOLEDB;Persist Security Info=False;User ID="+dbServerUserName+";Password="+dbServerPassword+";Initial Catalog=VEPROMS RO;Data Source="+dbServerPath+";Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False"; - } - else if (dbProviderType.Equals((int)DB_PROVIDER.ORACLE)) - { - // Don't know if this connect string will work or not on Oracle - // we need to test this with an Oracle Database Server - // Note that this is the same connection string used for SQL Server - // BUT the provider is different! - strDatabaseConnectionCommand = "Provider=MSDAORA;Persist Security Info=False;User ID="+dbServerUserName+";Password="+dbServerPassword+";Initial Catalog=VEPROMS RO;Data Source="+dbServerPath+";Use Procedure for Prepare=1;Auto Translate=True;Packet Size=4096;Use Encryption for Data=False;Tag with column collation when possible=False"; - } - else - { - /* - * Connect to MSAccess using OLEDB directly - */ - - // strAccOLEDBconn = "Provider=Microsoft.Jet.OLEDB.4.0;Password=\"\";User ID=Admin;Data Source=I:\\RO Design\\RO\\ROMaster.mdb;Mode=Share Deny None;Extended Properties=\"\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"; - - // strAccOLEDBconn = "Provider=Microsoft.Jet.OLEDB.4.0;Password=\"\";User ID=Admin;Data Source=" + DataConnectionPath +"\\ROMaster.mdb;Mode=Share Deny None;Extended Properties=\"\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"; - strDatabaseConnectionCommand = "Provider=Microsoft.Jet.OLEDB.4.0;Password=\"\";User ID=Admin;Data Source=" + DataConnectionPath +"\\ROMaster.mdb;Mode=Share Deny None;Extended Properties=\"\";Jet OLEDB:System database=\"\";Jet OLEDB:Registry Path=\"\";Jet OLEDB:Database Password=\"\";Jet OLEDB:Engine Type=5;Jet OLEDB:Database Locking Mode=1;Jet OLEDB:Global Partial Bulk Ops=2;Jet OLEDB:Global Bulk Transactions=1;Jet OLEDB:New Database Password=\"\";Jet OLEDB:Create System Database=False;Jet OLEDB:Encrypt Database=False;Jet OLEDB:Don't Copy Locale on Compact=False;Jet OLEDB:Compact Without Replica Repair=False;Jet OLEDB:SFP=False"; - } -// } -// else // ODBC connection -// { -// if (dbODBC_DNS.Length > 0) -// { -// -// /* -// * Connect to MSAccess using OLEDB and ODBC DSN -// */ -// -// // strAccODBCconn = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Access for RO;Extended Properties=\"DSN=Access for RO;DBQ=I:\\RO Design\\RO\\ROMaster.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;\""; -// -// // strAccODBCconn = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Access for RO;Extended Properties=\"DSN=Access for RO;DBQ=" + DataConnectionPath + "\\ROMaster.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;\""; -// strDatabaseConnectionCommand = "Provider=MSDASQL.1;Persist Security Info=False;Data Source=Access for RO;Extended Properties=\"DSN=Access for RO;DBQ=" + DataConnectionPath + "\\ROMaster.mdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;\""; -// } -// -// /* -// * Connection to MSAccess using an ODBC connection -// */ -// // strodbcConn = "Driver={Microsoft Access Driver (*.mdb)};DBQ=i:\\Ro Design\\RO\\ROMaster.mdb"; -// strodbcConn = "Driver={Microsoft Access Driver (*.mdb)};DBQ=" + DataConnectionPath + "\\ROMaster.mdb"; -// -// // Connection to SQL Server using an ODBC connection -// //strodbcConn = "Driver={SQL Server};Server=DELL-W2K-SERVER\\SQL2000;UID=sa;Database=ROMaster"; -// -// //SQL - DSN - worked: string strodbcConn = "DSN=SQL RO;UID=sa"; -// //Initial odbc tests on strodbcconn -// } - - } - - // get the next table name & update it to the next possible. - public string RODB_GetNextGroupTable() - { - // read record type of master for this table. This is where the highest recid is stored. - // Update the recid by 1, write it out and return the new recid. - string strGetNxt = "SELECT Info FROM ROMaster where RecID = '00000001' and RecType=" + (uint)RecordType.Master; - string rettable=null; - try - { - DBE.Command(strGetNxt); - DBE.Reader(); - if (DBE.Read()) - { - rettable = DBE.GetString(0); - string nxttable = rettable.Substring(2,6); - int ltbl = System.Convert.ToInt32(nxttable,10); - ltbl++; - nxttable = ltbl.ToString("d6"); // this format "d6" should pad left with zeros - string newstr = "RO" + nxttable; - DBE.ReaderClose(); - DBE.CommandDispose(); - string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); - string strUpdate = "UPDATE ROMaster SET Info = '" + newstr + "'"; - strUpdate = strUpdate + ", ModDateTime = '" + dt + "' WHERE RecID = '00000001' and RecType=" + (uint)RecordType.Master; - DBE.Command(strUpdate); - DBE.Reader(); - DBE.ReaderClose(); - DBE.CommandDispose(); - return rettable; - } - - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Getting new record id"); - } - - return null; - } - - // get the next recid for this table & update it. - public string RODB_GetNextRecId(string table) - { - // read record type of master for this table. This is where the highest recid is stored. - // Update the recid by 1, write it out and return the new recid. - string strGetNxt = "SELECT Info FROM " + table + " where RecID = '00000000' and RecType=" + (uint)RecordType.Master; - - try - { - DBE.Command(strGetNxt); - DBE.Reader(); - if (DBE.Read()) - { - string RecID = DBE.GetString(0); - - int lrecid = System.Convert.ToInt32(RecID,16); - lrecid++; - RecID = lrecid.ToString("x"); - - // need an 8 char string so pad left with zero - string padstr = RecID.PadLeft(8,'0'); - DBE.ReaderClose(); - DBE.CommandDispose(); - string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); - string strUpdate = "UPDATE " + table + " SET Info = '" + padstr + "'"; - strUpdate = strUpdate + ", ModDateTime = '" + dt + "' WHERE RecID = '00000000' and RecType=" + (uint)RecordType.Master; - DBE.Command(strUpdate); - DBE.Reader(); - DBE.ReaderClose(); - DBE.CommandDispose(); - return padstr; - } - - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Getting new record id"); - } - return null; - } - - public VlnXmlDocument RODB_GetRoot() - { - // Create an xmldoc and initialize it with a root node - ROXml = new VlnXmlDocument(); - XmlNode elem=ROXml.CreateNode(XmlNodeType.Element, "RO_Root", ""); - ROXml.AppendChild(elem); - return ROXml; - } - - // pass in root node. This will get Groups from Root node. This is a special case because - // the list of top level groups is off of the ROMaster database. - public bool RODB_GetRootGroups(VlnXmlElement root) - { - string table; - string group; - string title; - - // Get menu fields to display - try - { - DBE.OpenConnection(); - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Could not open database connection"); -// MessageBox.Show(e.StackTrace,"Debug"); - return false; - } - - string strGetGroups = "SELECT RecID,Info FROM ROMaster where RecType = " + (uint) RecordType.SubDatabase; - strGetGroups += " ORDER BY RecID ASC"; - DBE.Command(strGetGroups); - DBE.Reader(); - - SortedList mySL = new SortedList(); - while(DBE.Read()) - { - // Parse info string, it has group name & table name. Store in a sorted - // list, sorting by Group Name. - string mrecid = DBE.GetString(0); - group = DBE.GetString(1); - mySL.Add(mrecid,group); - } - DBE.CommandDispose(); - DBE.ReaderClose(); - - // Now, for each group, i.e. table, make xml elements for the top level groups by - // reading in the Xml Element for the group from each table. - for ( int i = 0; i < mySL.Count; i++ ) - { - group = mySL.GetByIndex(i).ToString(); - int grnamindx = group.IndexOf("\t"); - if (grnamindx == -1) - {// no tab, default to RO000001 - table = "RO000001"; - title = group; - } - else - { - StringBuilder tablesb = new StringBuilder(70); - tablesb.Append(group); - tablesb.Remove(0,grnamindx+1); - table = tablesb.ToString(); - title = group.Substring(0,grnamindx); - } - strGetGroups = "SELECT RecID,Info FROM " + table + " where RecType = " + (uint) RecordType.Group; - strGetGroups = strGetGroups + " and ParentID = '00000000'"; - strGetGroups += " ORDER BY RecID ASC"; - try - { - DBE.Command(strGetGroups); - DBE.Reader(); - - if(DBE.Read()) - { - string RecID = DBE.GetString(0); - string Info = DBE.GetString(1); - XmlTextReader rdr = new XmlTextReader(Info, XmlNodeType.Element, null); - XmlNode nd = ROXml.ReadNode(rdr); - VlnXmlElement elem = (VlnXmlElement)nd; - root.AppendChild(elem); - elem.SetAttribute("RecID", RecID); - elem.SetAttribute("ParentID","00000000"); - elem.SetAttribute("Table", table); - elem.SetAttribute("MasterRecID", mySL.GetKey(i).ToString()); - //elem.SetAttribute("MenuTitle", elem.InnerText); - } - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Error getting group data"); - // try to continue on with the next group - may be one missing table. - } - DBE.CommandDispose(); - DBE.ReaderClose(); - } - // get child count for each group. - XmlNode node = root.FirstChild; - while (node != null) - { - if (node is VlnXmlElement) - { - VlnXmlElement child = (VlnXmlElement) node; - //get child count for each table listed in innertext. - string strGetSubCount = "SELECT COUNT (RecID) as cnt FROM " + child.GetAttribute("Table") + " WHERE "; - strGetSubCount = strGetSubCount + "ParentID='" + child.GetAttribute("RecID") + "'"; - try - { - DBE.Command(strGetSubCount); - DBE.Reader(); - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Error reading RO Data"); - return false; - } - if (DBE.Read()) - { - int cnt = DBE.GetInt32(0); - if (cnt>0) - child.SetAttribute("HasChild","True"); - else - child.SetAttribute("HasChild","False"); - child.SetAttribute("ChildLoaded","False"); - } - DBE.CommandDispose(); - DBE.ReaderClose(); - } - - node = node.NextSibling; - } - - // for the beginning and end schema element, go to the master & read it from there. Store these to be used - // by all of the databases. - - string strGetSchemaPiece; - schemastart = null; - strGetSchemaPiece = "SELECT Info From ROMaster where (ParentID='00000000' and RecType = " + (uint) RecordType.SchemaStart + ")"; - DBE.Command(strGetSchemaPiece); - DBE.Reader(); - if (DBE.Read()) - schemastart = DBE.GetString(0); - else - { - DBE.CommandDispose(); - DBE.ReaderClose(); - return false; - } - DBE.CommandDispose(); - DBE.ReaderClose(); - schemaend = null; - strGetSchemaPiece = "SELECT Info From ROMaster where (ParentID='00000000' and RecType = " + (uint) RecordType.SchemaEnd + ")"; - DBE.Command(strGetSchemaPiece); - DBE.Reader(); - if (DBE.Read()) - schemaend = DBE.GetString(0); - else - { - DBE.CommandDispose(); - DBE.ReaderClose(); - return false; - } - DBE.CommandDispose(); - DBE.ReaderClose(); - return true; - - } - - public bool RODB_DeleteGroup(XmlNode group, string tbname, string toprecid) - { - VlnXmlElement egroup = null; - string strDel; - strDel = "DELETE FROM ROMaster WHERE "; - - // delete table entry in ROMaster - if (group !=null) - { - egroup = (VlnXmlElement) group; - strDel = strDel + "RecID='" + egroup.GetAttribute("MasterRecID") + "'"; - } - else - strDel = strDel + "RecID='" + toprecid + "'"; - - try - { - DBE.Command(strDel); - DBE.Reader(); - DBE.Read(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error When deleting SubGroup ROs."); - DBE.CommandDispose(); - DBE.ReaderClose(); - return false; - } - DBE.CommandDispose(); - DBE.ReaderClose(); - - // now remove the table. - if (egroup != null) - strDel = "DROP TABLE " + egroup.GetAttribute("Table"); - else - strDel = "DROP TABLE " + tbname; - try - { - DBE.Command(strDel); - DBE.Reader(); - DBE.Read(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error When deleting SubGroup ROs."); - DBE.CommandDispose(); - DBE.ReaderClose(); - return false; - } - DBE.CommandDispose(); - DBE.ReaderClose(); - return true; - } - - // Delete from database either the group or RO from input node. - public bool RODB_DeleteRO(XmlNode group) - { - // delete from database and then delete from tree. delete group and all - // subgroups & ros beneath it. delete subgroups by calling this. - // note that if just an ro is passed in, it will only delete it. - XmlNode node = group.FirstChild; - VlnXmlElement child; - VlnXmlElement egroup = (VlnXmlElement) group; - string strDelSub; - if (group.Name == "vlnGroup") - { - while (node != null) - { - if (node is VlnXmlElement) - { - child = (VlnXmlElement) node; - // if this is a group, call this again. - if (child.Name == "vlnGroup") - { - bool success = RODB_DeleteRO(node); - if (success == false) - { - MessageBox.Show("error in RODB_DeleteGroup"); - return false; - } - } - - } - node = node.NextSibling; - } - - // delete all db records that have the ParentID = to this group RecID. - // (All subgroups should be processed from above recursion. - strDelSub = "DELETE FROM " + egroup.GetAttribute("Table") + " WHERE "; - strDelSub = strDelSub + "ParentID='" + egroup.GetAttribute("RecID") + "'"; - try - { - DBE.Command(strDelSub); - DBE.Reader(); - DBE.Read(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error When deleting SubGroup ROs."); - DBE.CommandDispose(); - DBE.ReaderClose(); - return false; - } - DBE.CommandDispose(); - DBE.ReaderClose(); - } - - // now delete this ro or group, i.e. the one passed in. - strDelSub = "DELETE FROM " + egroup.GetAttribute("Table") + " WHERE "; - strDelSub = strDelSub + "RecID='" + egroup.GetAttribute("RecID") + "'"; - try - { - DBE.Command(strDelSub); - DBE.Reader(); - DBE.Read(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error When deleting this RO."); - DBE.CommandDispose(); - DBE.ReaderClose(); - return false; - } - DBE.CommandDispose(); - DBE.ReaderClose(); - - return true; - } - - private string GenerateXmlString(XmlNode node, bool isgroup) - { - string retstr; - XmlTextWriter xmlTextWriter; - StringWriter strWriter = new StringWriter(); - xmlTextWriter = new XmlTextWriter(strWriter); - VlnXmlElement enode; - XmlNode kid; - kid = node.FirstChild; - enode = (VlnXmlElement) node; - - if (isgroup == true) - { - xmlTextWriter.WriteStartElement("vlnGroup"); - if (enode.HasAttribute("RetVal")) - { - xmlTextWriter.WriteStartAttribute("RetVal", null); - xmlTextWriter.WriteString(enode.GetAttribute("RetVal")); - xmlTextWriter.WriteEndAttribute(); - } - if (enode.HasAttribute("MenuItem")) - { - xmlTextWriter.WriteStartAttribute("MenuItem", null); - xmlTextWriter.WriteString(enode.GetAttribute("MenuItem")); - xmlTextWriter.WriteEndAttribute(); - } - if (enode.HasAttribute("FieldsInUse")) - { - xmlTextWriter.WriteStartAttribute("FieldsInUse", null); - xmlTextWriter.WriteString(enode.GetAttribute("FieldsInUse")); - xmlTextWriter.WriteEndAttribute(); - } - if (enode.HasAttribute("GroupMenuItem")) - { - xmlTextWriter.WriteStartAttribute("GroupMenuItem", null); - xmlTextWriter.WriteString(enode.GetAttribute("GroupMenuItem")); - xmlTextWriter.WriteEndAttribute(); - } - if (enode.HasAttribute("GroupFieldsInUse")) - { - xmlTextWriter.WriteStartAttribute("GroupFieldsInUse", null); - xmlTextWriter.WriteString(enode.GetAttribute("GroupFieldsInUse")); - xmlTextWriter.WriteEndAttribute(); - } - if (enode.HasAttribute("AccPageID")) - { - xmlTextWriter.WriteStartAttribute("AccPageID", null); - xmlTextWriter.WriteString(enode.GetAttribute("AccPageID")); - xmlTextWriter.WriteEndAttribute(); - } - if (enode.HasAttribute("AccPageIDPrefix")) - { - xmlTextWriter.WriteStartAttribute("AccPageIDPrefix", null); - xmlTextWriter.WriteString(enode.GetAttribute("AccPageIDPrefix")); - xmlTextWriter.WriteEndAttribute(); - } - xmlTextWriter.WriteStartAttribute("MenuTitle", null); - xmlTextWriter.WriteString(enode.GetAttribute("MenuTitle")); - xmlTextWriter.WriteEndAttribute(); - - while (kid != null) - { - if ((kid is XmlText) || (kid.ChildNodes.Count == 1 && kid.Name != "vlnGroup")) - kid.WriteTo(xmlTextWriter); - kid = kid.NextSibling; - } - } - else - { - xmlTextWriter.WriteStartElement(node.Name); - - xmlTextWriter.WriteStartAttribute("MenuTitle", null); - xmlTextWriter.WriteString(enode.GetAttribute("MenuTitle")); - xmlTextWriter.WriteEndAttribute(); - - while (kid != null) - { - kid.WriteTo(xmlTextWriter); - kid = kid.NextSibling; - } - } - - xmlTextWriter.WriteEndElement(); // vlnGroup or top of RO. - xmlTextWriter.Flush(); - xmlTextWriter.Close(); - - retstr = strWriter.ToString(); - - // replace the single quote because ODBC fails if it's in a string because - // the single quote represents the beg/end of string when sending string to - // ODBC. - retstr = retstr.Replace("\'","'"); - return(retstr); - } - - public bool RODB_WriteGroup(XmlNode group, VlnXmlElement master) - { - bool retval = true; - string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); - string xmlstr = GenerateXmlString(group, true); - string strUpdate = "UPDATE " + master.GetAttribute("Table") + " SET Info = '" + xmlstr + "'"; - strUpdate = strUpdate + ", ModDateTime = '" + dt + "' WHERE RecID='" + master.GetAttribute("RecID") + "'"; - try - { - DBE.Command(strUpdate); - DBE.Reader(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error on write group"); - retval = false; - } - DBE.ReaderClose(); - DBE.CommandDispose(); - return retval; - } - - public bool RODB_InsertGroup(VlnXmlElement group) - { - bool retval = true; - string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); - string xmlstr = GenerateXmlString(group, true); - string strInsert = "INSERT INTO " + group.GetAttribute("Table") + "(RecID, RecType, ParentID, ModDateTime, Info) "; - strInsert = strInsert + " VALUES ('" + group.GetAttribute("RecID") + "'," + (uint) RecordType.Group + ",'"; - strInsert = strInsert + group.GetAttribute("ParentID") + "','" + dt + "','" + xmlstr + "');"; - try - { - DBE.Command(strInsert); - DBE.Reader(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error on insert group"); - retval = false; - } - DBE.ReaderClose(); - DBE.CommandDispose(); - return retval; - } - - // add a new database table, add a record to master to point to it. return - // that record number. - public string RODB_AddNewTable(string TblName, string newgrpname) - { - bool retval = false; - // create the table. this is done by doing a select into the new table - // from the RoMaster because using the create table command didn't have - // a datatype that was compatible between sql & ms-access (for the memo - // field 'Info'). - string strMkTable = "SELECT * INTO " + TblName; - strMkTable = strMkTable + " FROM ROMaster WHERE RecID = '00000000';"; - - try - { - DBE.Command(strMkTable); - DBE.Reader(); - retval = true; - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Error creating table."); - } - DBE.ReaderClose(); - DBE.CommandDispose(); - // return if error on table create. - if (retval == false) return null; - - // remove the first record. It was inserted just to have something to copy to - // create the table. (see previous comment) - - string strDel = "DELETE FROM " + TblName + " WHERE RecID = '00000000'"; - try - { - DBE.Command(strDel); - DBE.Reader(); - DBE.Read(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error When deleting SubGroup ROs."); - DBE.CommandDispose(); - DBE.ReaderClose(); - return null; - } - DBE.CommandDispose(); - DBE.ReaderClose(); - - // now insert the first record - string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); - - string strInsert = "INSERT INTO " + TblName + "( RecID, RecType, ParentID, ModDateTime, Info ) "; - strInsert = strInsert + " VALUES ('00000000', 0,'00000000','" + dt + "','00000001');"; - retval = false; - try - { - DBE.Command(strInsert); - DBE.Reader(); - retval=true; - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Error creating table."); - } - DBE.ReaderClose(); - DBE.CommandDispose(); - - // return if error on insert of master record of new table, otherwise add - // this table reference to the master. - if (retval == false) return null; - string recid = RODB_GetNextRecId("ROMaster"); - string info = CvtUserFldToFld(newgrpname) + "\t" + TblName; - strInsert = "INSERT INTO ROMaster ( RecID, RecType, ParentID, ModDateTime, Info ) "; - strInsert = strInsert + " VALUES ('"+recid+"', 1,'00000001','" + dt + "','"+info+"');"; - retval = false; - try - { - DBE.Command(strInsert); - DBE.Reader(); - retval=true; - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Error writing new table to master."); - } - DBE.ReaderClose(); - DBE.CommandDispose(); - if (retval == false) - return null; - else - return recid; - } - - // Copy over field definitions from the ROMaster to the input table. - public bool RODB_CopyFieldDefs(string fromtb, string totb, int type) - { - ArrayList retlist = new ArrayList(); - string strGetFields; - string Info; - string RecID; - string name; - uint ftype; - ROField rof; - bool success; - - // select all of the field definition records in this table. - strGetFields = "SELECT RecID, Info from ROMaster where RecType = 2"; - DBE.Command(strGetFields); - DBE.Reader(); - - while (DBE.Read()) - { - RecID = DBE.GetString(0); - Info = DBE.GetString(1); - // it's defined in the local table if the first character is "<" which starts - // the schema definition string. - - name = ParseEleName(Info); - if (name != null) - { - // what type of schema element? - rof = new ROField(name, RecID, null, 0); - ftype = rof.ParseFieldType(Info); - rof.SetFieldType(ftype); - retlist.Add((object) rof); - } - } - - DBE.ReaderClose(); - DBE.CommandDispose(); - - // using this list, add new records for field defintion references to the new - // table. - for (int i=0; i< retlist.Count; i++) - { - rof = (ROField) retlist[i]; - if (rof.GetFieldname != null) - { - string mrecid = rof.GetRecID; - string lrecid = RODB_GetNextRecId(totb); - StringBuilder strbld = new StringBuilder(); - strbld.Append(mrecid); - strbld.Append(" "); - string strtype = rof.GetFieldType.ToString(); - strbld.Append(strtype.PadLeft(3,'0')); - strbld.Append(" "); - if (strtype == "128") // append an 'a' for combo type - strbld.Append(rof.MakeFieldName(rof.GetFieldname)+"a"); - else - strbld.Append(rof.MakeFieldName(rof.GetFieldname)); - // add new field. - success = RODB_NewSchemaPiece(lrecid, "00000002", totb, strbld.ToString(), 2); - if (success == false) return false; - } - } - return true; - } - - - // This is simular to GetChildData() but this function reads in - // all the subgroups for the given node - // Note that this function is designed to be call for the - // root node (i.e. it gets all of group and RO data for a given - // database table) - public bool RODB_GetGroupAndSubgroups(VlnXmlElement node) - { - VlnStatusBar StatBar = new VlnStatusBar("Reading from the Database"); - string tablename = node.GetAttribute("Table"); - - string strGetChildData = "SELECT * FROM " + tablename; - strGetChildData = strGetChildData + " where (RecType = 3 or RecType = 5) AND ParentID <> '00000002' ORDER BY ParentID,RecID ASC"; - HybridDictionary dicGroups = new HybridDictionary(); - dicGroups.Add(node.GetAttribute("RecID").ToString(), node); - StatBar.BarMax = RODB_GetNumberOfGroupRecords(tablename); //get number of groups - StatBar.BarStepValue = 5; - StatBar.StatMsg = node.InnerText; - - DBE.Command(strGetChildData); - DBE.Reader(); - // skip the first record - it's the node that we passed in - if (!DBE.Read()) - { - DBE.ReaderClose(); - StatBar.PerformStep(1); - return false; - } - while (DBE.Read()) - { - string RecID = DBE.GetString(0); - int RecType = DBE.GetInt32(1); - string ParID = DBE.GetString(2); - string AccPageID = DBE.GetString(3); - string Info = DBE.GetString(5); - if (!ParID.Equals(node.GetAttribute("RecID"))) - { - if (!dicGroups.Contains(ParID)) - { - string strMBText = "The following record is being skipped. The parent for this RO is missing:\n\n RecID: " + RecID + "\n\n Table: " + tablename +"\n"; - MessageBox.Show(strMBText, "Warning - Orphan RO Record"); - continue; // skip - no parent for this node - } - node = (VlnXmlElement)dicGroups[ParID]; - node.SetAttribute("HasChild", "True"); - node.SetAttribute("ChildLoaded","True"); - } - else - { - node.SetAttribute("ChildLoaded","True"); - } - if (RecType == (uint) RecordType.Group) - { - VlnXmlElement elem; - StatBar.PerformStep(); - try - { - XmlTextReader rdr = new XmlTextReader(Info, XmlNodeType.Element, null); - XmlNode nd = ROXml.ReadNode(rdr); - elem = (VlnXmlElement)nd; - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Error reading Xml Group From data"); - DBE.ReaderClose(); - return false; - } - - elem.SetAttribute("RecID", RecID); - elem.SetAttribute("ParentID",node.GetAttribute("RecID")); - elem.SetAttribute("Table", node.GetAttribute("Table")); - - if (!dicGroups.Contains(RecID)) - { - node.AppendChild(elem); - dicGroups.Add(RecID,elem); - } - - // The Parameter Display Data is stored along with the group. This data - // was migrated over so that the data was not lost, but there is no - // User Interface to get to it. So remove the xml elements from the - // group part of tree. All valid group data only has one sublevel of - // data defining the group name. - XmlNode grp = (XmlNode) elem; - XmlNode kid = grp.FirstChild; - XmlNode tmpkid; - while (kid != null) - { - tmpkid = kid.NextSibling; - if (kid is VlnXmlElement) - if (kid.ChildNodes.Count>1) grp.RemoveChild(kid); - kid = tmpkid; - } - } - // Store data in the VlnXmlElement as an RO - else if (RecType == (uint) RecordType.RRO) - { - //Create the reader. - XmlNode ro; - try - { - XmlTextReader roreader = new XmlTextReader(Info, XmlNodeType.Element, null); - ro = ROXml.ReadNode(roreader); - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Error reading Xml RRO From data"); - DBE.ReaderClose(); - return false; - } - - VlnXmlElement elem = (VlnXmlElement) ro; - node.AppendChild(ro); - elem.SetAttribute("RecID", RecID); - elem.SetAttribute("ParentID",node.GetAttribute("RecID")); - elem.SetAttribute("Table", node.GetAttribute("Table")); - elem.SetAttribute("AccPageID", AccPageID); - } - } - DBE.ReaderClose(); - dicGroups = null; - StatBar.Dispose(); - return true; - } - - public bool RODB_GetChildData(VlnXmlElement node,bool CheckChildCount) - { - // get menu fields to display here. - string tablename = node.GetAttribute("Table"); - string strGetChildData = "SELECT RecID,RecType,AccPageID, Info FROM " + tablename + " where "; - strGetChildData = strGetChildData + "(RecType = " + (uint)RecordType.Group + " or RecType = "; - strGetChildData = strGetChildData + (uint)RecordType.RRO + ") and "; - strGetChildData = strGetChildData + "ParentID='" + node.GetAttribute("RecID") + "'"; - strGetChildData += " ORDER BY RecID ASC"; - //bool readit=false; - DBE.Command(strGetChildData); - DBE.Reader(); - while (DBE.Read()) - { - //get count for attribute element - string RecID = DBE.GetString(0); - int RecType = DBE.GetInt32(1); - string AccPageID = DBE.GetString(2); - string Info = DBE.GetString(3); - node.SetAttribute("HasChild", "True"); - // Store data in the VlnXmlElement as a subgroup - if (RecType == (uint) RecordType.Group) - { - VlnXmlElement elem; - try - { - XmlTextReader rdr = new XmlTextReader(Info, XmlNodeType.Element, null); - XmlNode nd = ROXml.ReadNode(rdr); - elem = (VlnXmlElement)nd; - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Error reading Xml Group From data"); - DBE.ReaderClose(); - return false; - } - node.AppendChild(elem); - elem.SetAttribute("RecID", RecID); - elem.SetAttribute("ParentID",node.GetAttribute("RecID")); - elem.SetAttribute("Table", node.GetAttribute("Table")); - - // The Parameter Display Data is stored along with the group. This data - // was migrated over so that the data was not lost, but there is no - // User Interface to get to it. So remove the xml elements from the - // group part of tree. All valid group data only has one sublevel of - // data defining the group name. - XmlNode grp = (XmlNode) elem; - XmlNode kid = grp.FirstChild; - XmlNode tmpkid; - while (kid != null) - { - tmpkid = kid.NextSibling; - if (kid is VlnXmlElement) - if (kid.ChildNodes.Count>1) grp.RemoveChild(kid); - kid = tmpkid; - } - } - // Store data in the VlnXmlElement as an RO - else if (RecType == (uint) RecordType.RRO) - { - //Create the reader. - XmlNode ro; - try - { - XmlTextReader roreader = new XmlTextReader(Info, XmlNodeType.Element, null); - ro = ROXml.ReadNode(roreader); - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Error reading Xml RRO From data"); - DBE.ReaderClose(); - return false; - } - - VlnXmlElement elem = (VlnXmlElement) ro; - node.AppendChild(ro); - elem.SetAttribute("RecID", RecID); - elem.SetAttribute("ParentID",node.GetAttribute("RecID")); - elem.SetAttribute("Table", node.GetAttribute("Table")); - elem.SetAttribute("AccPageID", AccPageID); - } - } - DBE.ReaderClose(); - - // get child count for each subgroup. - if(CheckChildCount) - { - //A different approach - Look for grandchildren and set the haschildren attribute - //Build a query to get a list of children with children - string strGetSubCount = "SELECT R1.ParentID,COUNT(*) AS CNT FROM " + tablename + " R1 " - + "INNER JOIN " + tablename + " R2 ON R1.ParentID = R2.RecID " - + "WHERE (R1.RecType = " + (uint)RecordType.Group + " or R1.RecType=" + (uint)RecordType.RRO + ") " - + "and R2.ParentID ='" + node.GetAttribute("RecID") + "' group by R1.ParentID;"; - try - { - DBE.Command(strGetSubCount); - DBE.Reader(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error reading data"); - } - //Build a Dictionary of Children with Children from the query results - HybridDictionary dicChild = new HybridDictionary(); - while(DBE.Read()) - dicChild[DBE.GetString(0)]=DBE.GetInt32(1);//This adds the entry and sets the value - DBE.CommandDispose(); - DBE.ReaderClose(); - XmlNode child = node.FirstChild; - while (child != null) //Look at each child node - { - if (child is VlnXmlElement) - { - VlnXmlElement echild = (VlnXmlElement) child; - if (echild.Name == "vlnGroup") - { - //If the dictionary contains an entry, the child has children - echild.SetAttribute("HasChild",(dicChild.Contains(echild.GetAttribute("RecID")))?"True":"False"); - echild.SetAttribute("ChildLoaded", "False"); - } - } - child = child.NextSibling; - } - dicChild=null; - } - node.SetAttribute("ChildLoaded","True"); - return true; - } - -// public bool OLD_RODB_GetChildData(VlnXmlElement node,bool CheckChildCount) -// { -// Profiler.Start("GCD_1"); -// // get menu fields to display here. -// string tablename = node.GetAttribute("Table"); -// string strGetChildData = "SELECT RecID,RecType,AccPageID, Info FROM " + tablename + " where "; -// strGetChildData = strGetChildData + "(RecType = " + (uint)RecordType.Group + " or RecType = "; -// strGetChildData = strGetChildData + (uint)RecordType.RRO + ") and "; -// strGetChildData = strGetChildData + "ParentID='" + node.GetAttribute("RecID") + "'"; -// strGetChildData += " ORDER BY RecID ASC"; -// Profiler.End("GCD_1"); -// //bool readit=false; -// Profiler.Start("GCD_2"); -// DBE.Command(strGetChildData); -// Profiler.End("GCD_2"); -// Profiler.Start("GCD_3"); -// DBE.Reader(); -// Profiler.End("GCD_3"); -// Profiler.Start("GCD_4"); -// while (DBE.Read()) -// { -// //get count for attribute element -// string RecID = DBE.GetString(0); -// int RecType = DBE.GetInt32(1); -// string AccPageID = DBE.GetString(2); -// string Info = DBE.GetString(3); -// node.SetAttribute("HasChild", "True"); -// // Store data in the VlnXmlElement as a subgroup -// if (RecType == (uint) RecordType.Group) -// { -// VlnXmlElement elem; -// try -// { -// XmlTextReader rdr = new XmlTextReader(Info, XmlNodeType.Element, null); -// XmlNode nd = ROXml.ReadNode(rdr); -// elem = (VlnXmlElement)nd; -// } -// catch (Exception e) -// { -// MessageBox.Show(e.Message, "Error reading Xml Group From data"); -// DBE.ReaderClose(); -// return false; -// } -// node.AppendChild(elem); -// elem.SetAttribute("RecID", RecID); -// elem.SetAttribute("ParentID",node.GetAttribute("RecID")); -// elem.SetAttribute("Table", node.GetAttribute("Table")); -// -// // The Parameter Display Data is stored along with the group. This data -// // was migrated over so that the data was not lost, but there is no -// // User Interface to get to it. So remove the xml elements from the -// // group part of tree. All valid group data only has one sublevel of -// // data defining the group name. -// XmlNode grp = (XmlNode) elem; -// XmlNode kid = grp.FirstChild; -// XmlNode tmpkid; -// while (kid != null) -// { -// tmpkid = kid.NextSibling; -// if (kid is VlnXmlElement) -// if (kid.ChildNodes.Count>1) grp.RemoveChild(kid); -// kid = tmpkid; -// } -// } -// -// // Store data in the VlnXmlElement as an RO -// else if (RecType == (uint) RecordType.RRO) -// { -// //Create the reader. -// XmlNode ro; -// try -// { -// XmlTextReader roreader = new XmlTextReader(Info, XmlNodeType.Element, null); -// ro = ROXml.ReadNode(roreader); -// } -// catch (Exception e) -// { -// MessageBox.Show(e.Message, "Error reading Xml RRO From data"); -// DBE.ReaderClose(); -// return false; -// } -// -// -// VlnXmlElement elem = (VlnXmlElement) ro; -// node.AppendChild(ro); -// elem.SetAttribute("RecID", RecID); -// elem.SetAttribute("ParentID",node.GetAttribute("RecID")); -// elem.SetAttribute("Table", node.GetAttribute("Table")); -// elem.SetAttribute("AccPageID", AccPageID); -// } -// } -// Profiler.End("GCD_4"); -// Profiler.Start("GCD_5"); -// DBE.ReaderClose(); -// -// if (CheckChildCount) -// { -// // get child count for each subgroup. -// XmlNode child = node.FirstChild; -// // while (child != null && CheckChildCount) -// while (child != null) -// { -// if (child is VlnXmlElement) -// { -// VlnXmlElement echild = (VlnXmlElement) child; -// if (echild.Name == "vlnGroup") -// { -// //get child count for each table listed in innertext. -// string strGetSubCount = "SELECT COUNT(RecID) AS CNT FROM " + echild.GetAttribute("Table") + " WHERE "; -// strGetSubCount = strGetSubCount + "(RecType = " + (uint)RecordType.Group + " or RecType=" + (uint)RecordType.RRO + ")"; -// strGetSubCount = strGetSubCount + " and ParentID='" + echild.GetAttribute("RecID") + "'"; -// try -// { -// DBE.Command(strGetSubCount); -// DBE.Reader(); -// } -// catch (Exception e) -// { -// MessageBox.Show(e.Message,"Error reading data"); -// } -// if (DBE.Read()) -// { -// int cnt = DBE.GetInt32(0); -// if (cnt>0) -// echild.SetAttribute("HasChild","True"); -// else -// echild.SetAttribute("HasChild","False"); -// echild.SetAttribute("ChildLoaded", "False"); -// } -// DBE.CommandDispose(); -// DBE.ReaderClose(); -// } -// } -// child = child.NextSibling; -// } -// } -// node.SetAttribute("ChildLoaded","True"); -// Profiler.End("GCD_5"); -// return true; -// } - - public bool IsDuplicateAccPageID(VlnXmlElement ro,string newacc) - { - string strcheck, inacc=null; - bool isdup=false; - int indx = newacc.IndexOf("'"); - if (indx >= 0) - inacc=newacc.Insert(indx,"'"); - else - inacc=newacc; - strcheck = "SELECT Count(RecID) AS CNT FROM " + ro.GetAttribute("Table") + " WHERE AccPageID = '" + inacc + "'"; - - if (ro.HasAttribute("RecID")) // new ro's don't have recid defined yet before this test. - strcheck = strcheck + " AND (NOT RecID = '" + ro.GetAttribute("RecID") + "')"; - try - { - DBE.Command(strcheck); - DBE.Reader(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error on check"); - return true; - } - if (DBE.Read()) - { - int cnt = DBE.GetInt32(0); - if (cnt>0) - isdup = true; - else - isdup = false; - } - DBE.CommandDispose(); - DBE.ReaderClose(); - return isdup; - } - - public VlnXmlElement RODB_ReadRO(string tbl, string recid) - { - VlnXmlElement retele = null; - string readstr = "SELECT ParentID, AccPageID, Info FROM " + tbl + " WHERE RecID = '" + recid + "'"; - try - { - DBE.Command(readstr); - DBE.Reader(); - - if (DBE.Read()) - { - string ParentID = DBE.GetString(0); - string AccPageID = DBE.GetString(1); - string Info = DBE.GetString(2); - // Store data in the VlnXmlElement - XmlTextReader rdr = new XmlTextReader(Info, XmlNodeType.Element, null); - XmlNode nd = ROXml.ReadNode(rdr); - retele = (VlnXmlElement)nd; - retele.SetAttribute("RecID", recid); - retele.SetAttribute("ParentID",ParentID); - retele.SetAttribute("Table", tbl); - if (retele.Name != "vlnGroup") retele.SetAttribute("AccPageID", AccPageID); - } - DBE.CommandDispose(); - DBE.ReaderClose(); - - // if this is a group, see if children. - if (retele.Name == "vlnGroup") - { - string strGetSubCount = "SELECT COUNT (RecID) as cnt FROM " + tbl + " WHERE "; - strGetSubCount = strGetSubCount + "ParentID='" + recid + "'"; - DBE.Command(strGetSubCount); - DBE.Reader(); - - if (DBE.Read()) - { - int cnt = DBE.GetInt32(0); - if (cnt>0) - retele.SetAttribute("HasChild","True"); - else - retele.SetAttribute("HasChild","False"); - retele.SetAttribute("ChildLoaded","False"); - } - DBE.CommandDispose(); - DBE.ReaderClose(); - } - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error on Read of RO"); - return null; - } - return retele; - } - - public bool RODB_WriteRO(VlnXmlElement ro) - { - bool success; - if (ro.Name == "vlnGroup") - { - success = RODB_WriteGroup(ro, ro); - return success; - } - else - { - string wraccid=null; - string accid = ro.GetAttribute("AccPageID"); - int quote = accid.IndexOf("'"); - if (quote>=0) - wraccid = accid.Insert(quote,"'"); - else - wraccid = accid; - string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); - string xmlstr = GenerateXmlString(ro, false); - string strUpdate = "UPDATE " + ro.GetAttribute("Table") + " SET Info = '" + xmlstr + "'"; - strUpdate = strUpdate + ", ModDateTime = '" + dt + "', AccPageID = '" + wraccid + "' WHERE RecID='" + ro.GetAttribute("RecID") + "'"; - try - { - DBE.Command(strUpdate); - DBE.Reader(); - success = true; - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Database Write Error"); - success = false; - } - DBE.ReaderClose(); - DBE.CommandDispose(); - } - return success; - } - - public bool RODB_InsertRO(VlnXmlElement ro) - { - bool success=false; - string strInsert=null; - string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); - VlnXmlElement parent = (VlnXmlElement)ro.ParentNode; - string lrecid = RODB_GetNextRecId(parent.GetAttribute("Table")); - ro.SetAttribute("Table",parent.GetAttribute("Table")); - ro.SetAttribute("RecID",lrecid); - ro.SetAttribute("ParentID",parent.GetAttribute("RecID")); - string haskids = parent.GetAttribute("HasChild"); - if (haskids == "False" || haskids=="") - { - parent.SetAttribute("HasChild","True"); - parent.SetAttribute("ChildLoaded", "True"); - } - string xmlstr = GenerateXmlString(ro, false); - string wraccid=null; - if (ro.HasAttribute("AccPageID")) - { - string accid = ro.GetAttribute("AccPageID"); - int quote = accid.IndexOf("'"); - if (quote>=0) - wraccid = accid.Insert(quote,"'"); - else - wraccid = accid; - } - if (ro.Name == "vlnGroup") - { - // add attribute to flag that this does not have xml children, i.e. any - // other subgroups or ros under it. - ro.SetAttribute("HasChild", "False"); - if (ro.HasAttribute("AccPageID")) - { - strInsert = "INSERT INTO " + parent.GetAttribute("Table") + "( RecID, RecType, ParentID, ModDateTime, AccPageID, Info ) "; - strInsert = strInsert + " VALUES ('" + ro.GetAttribute("RecID") + "'," + (uint) RecordType.Group + ",'" + ro.GetAttribute("ParentID"); - strInsert = strInsert + "','" + wraccid + "','" + dt + "','" + xmlstr + "');"; - } - else - { - strInsert = "INSERT INTO " + parent.GetAttribute("Table") + "( RecID, RecType, ParentID, ModDateTime, Info ) "; - strInsert = strInsert + " VALUES ('" + ro.GetAttribute("RecID") + "'," + (uint) RecordType.Group + ",'" + ro.GetAttribute("ParentID"); - strInsert = strInsert + "','" + dt + "','" + xmlstr + "');"; - } - - } - else - { - strInsert = "INSERT INTO " + parent.GetAttribute("Table") + "( RecID, RecType, ParentID, AccPageId, ModDateTime, Info ) "; - strInsert = strInsert + " VALUES ('" + ro.GetAttribute("RecID") + "'," + (uint) RecordType.RRO + ",'" + ro.GetAttribute("ParentID"); - strInsert = strInsert + "','" + wraccid + "','" + dt + "','" + xmlstr + "');"; - } - - try - { - DBE.Command(strInsert); - DBE.Reader(); - success=true; - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Database Write Error"); - } - DBE.ReaderClose(); - DBE.CommandDispose(); - return success; - } - - private string ParseEleName(string info) - { - string elemname; - - // need to find element type too. - int issingle = info.IndexOf("Single"); - - int idx1 = info.IndexOf("element name="); - if (idx1 >0) - { - elemname=info.Substring(idx1+14,info.Length-idx1-14); - idx1 = elemname.IndexOf("\""); - elemname = CvtFldToUserFld(elemname.Substring(0,idx1)); - // if we have a choice element, remove the last character (it was added to the - // field names in order to allow for unique fields names for the choice items. - if (info.IndexOf("xsd:choice") > 0) - { - string trun = elemname.Remove((elemname.Length)-1,1); - return trun; - } - return elemname; - } - return null; - } - - - // Given an element to start at, get the fields in use. Pass in the element you're - // on, the available list for this group & a string representing 'FieldsInUse' or - // 'GroupFieldsInUse'. - public ArrayList RODB_GetFieldsInUse(VlnXmlElement elem, ArrayList avail, string strFieldsInUse, ref string origFieldsInUse, bool RemoveFromAvailList) - { - VlnXmlElement startelem = elem; - - // if doing groups, the fields in use is defined for the parent (except for the top node) - //if (useparent == true && elem.ParentNode.Name != "RO_Root") - // startelem = (VlnXmlElement) elem.ParentNode; - - // if this element doesn't have any fields in use, walk up the tree until - // we find them. - string FieldsInUse=""; - if (startelem.HasAttribute(strFieldsInUse) == false) - { - VlnXmlElement parent; - parent = (VlnXmlElement) startelem.ParentNode; - while (parent != null && FieldsInUse == "") - { - FieldsInUse = parent.GetAttribute(strFieldsInUse); - if (parent.Name != "RO_Root") - parent = (VlnXmlElement) parent.ParentNode; - else - parent = null; - } - } - else - FieldsInUse = startelem.GetAttribute(strFieldsInUse); - - origFieldsInUse = FieldsInUse; // make a copy to compare to later. - ArrayList inuse = new ArrayList(); - // if there are no fields in use (may be inserting a top group) - // return an empty list. - if (FieldsInUse=="") return inuse; - - // Go through the FieldsInUse list and move elements from the avail list - // to the inuse list - int strpos = 0; - string recid; - recid = FieldsInUse.Substring(strpos,8); - while (recid != null) - { - // find it in avail list. Remove it from there & add to inuse list - for(int i=0; i FieldsInUse.Length) - recid = null; - else - { - recid = FieldsInUse.Substring(strpos,8); - } - } - return inuse; - } - - private string CvtUserFldToFld(string fldname) - { - if (fldname.Length < 2) - return fldname; - // a digit cannot start an xml fieldname, prepend a "__" to it. - string tmp0; - if (char.IsDigit(fldname,0)) - tmp0 = "__" + fldname; - else - tmp0 = fldname; - // an xml fieldname cannot have a space, change it to a "__" - string tmpstr = tmp0.Replace(" ","__"); - int len = tmpstr.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - return outstr; - } - - private string CvtFldToUserFld(string fldname) - { - string tmpstr0; - if (fldname.Length < 2) return fldname; - // an xml element name cannot begin with a digit. we had prepended a "__" - if (fldname.Substring(0,2) == "__" && char.IsDigit(fldname,2)) - tmpstr0 = fldname.Substring(2,fldname.Length-2); - else - tmpstr0 = fldname; - // an xml element name cannot have a space, we converted to a "__" - string tmpstr = tmpstr0.Replace("__"," "); - int len = tmpstr.Length; - int cur = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval, indx; - if (tmpstr.Length <6) - indx = -1; - else - indx=tmpstr.IndexOf(OKpunch,cur); - string asc_spchar; - while (indx>=0) - { - outstr += tmpstr.Substring(cur,indx-cur); - asc_spchar = tmpstr.Substring(indx+3,3); - decval = System.Convert.ToInt16(asc_spchar,10); - outstr += System.Convert.ToChar(decval).ToString(); - cur = indx+6; - if (cur+6 > len) - indx = -1; - else - indx = tmpstr.IndexOf(OKpunch,cur); - } - if (cur= 0) // is this field being used? - { -// rof = new ROField(name, RecID, null, 0); - ftype |= GetFSTreturnType(System.Convert.ToUInt16(rof.ParseFieldType(Info)),tmpname,elem); -// ftype |= System.Convert.ToUInt16(rof.ParseFieldType(Info)); - } - } - } - else - { - // references master, but what we need is here: the field name and - // the the field type. Just parse this from the info field. - string parsename; - string strftype; - strftype = Info.Substring(9,3); - parsename = Info.Substring(13,Info.Length-13); - if (strftype.Equals("128")) // is it a combo type? - parsename = parsename.Substring(0,parsename.Length-1); - - if (FldsUsed.BinarySearch(parsename) >= 0) // is this field being used? - { - ftype |= GetFSTreturnType(System.Convert.ToUInt16(Info.Substring(9,3)),parsename,elem); -// ftype |= System.Convert.ToUInt16(Info.Substring(9,3)); - } - } - } - DBE.ReaderClose(); - DBE.CommandDispose(); - - return ftype; - } -***/ - - public ushort RODB_GetFieldType(VlnXmlElement elem, string TableName, string Fld) - { - string strGetFields; - string Info; - string RecID; - string name; - string tmpname; - ushort ftype = 0; - ROField rof; - if(TableName != lastTable) - { - lastTable=TableName; - dicFldTypes=new HybridDictionary(); - // select all of the field definition records in this table. - // strGetFields = "SELECT RecID, Info from " + elem.GetAttribute("Table"); - strGetFields = "SELECT RecID, Info from " + TableName; - strGetFields = strGetFields + " where RecType = 2"; // + rtype.ToString(); - DBE.Command(strGetFields); - DBE.Reader(); - - // NOTE !!!! - // This function does not handle Combo type fields (128). - while (DBE.Read())// && ftype == 0) - { - RecID = DBE.GetString(0); - Info = DBE.GetString(1); - // it's defined in the local table if the first character is "<" which starts - // the schema definition string. - if ("<" == Info.Substring(0,1)) - { - name = ParseEleName(Info); - if (name != null) - { - tmpname = CvtUserFldToFld(name); - //if (tmpname.Equals(Fld)) - //{ - rof = new ROField(name, RecID, null, 0); - // uint tmpfldtype = rof.ParseFieldType(Info); - ftype = GetFSTreturnType(System.Convert.ToUInt16(rof.ParseFieldType(Info)),tmpname,elem); - dicFldTypes[tmpname]=ftype; - //} - } - } - else - { - // references master, but what we need is here: the field name and - // the the field type. Just parse this from the info field. - string parsename; - // string strftype; - // strftype = Info.Substring(9,3); - parsename = Info.Substring(13,Info.Length-13); - //if (parsename.Equals(Fld)) - //{ - ftype = GetFSTreturnType(System.Convert.ToUInt16(Info.Substring(9,3)),parsename,elem); - dicFldTypes[parsename]=ftype; - //} - - } - - } - DBE.ReaderClose(); - DBE.CommandDispose(); - } - ftype = ((ushort) dicFldTypes[Fld]); - return ftype; - } - - - - // For the given element's table, get all of the RO fields defined in this table. - public ArrayList RODB_GetFields(VlnXmlElement elem, uint rtype) - { - ArrayList retlist = new ArrayList(); - string strGetFields; - string Info; - string RecID; - string name; - uint ftype; - ROField rof; - - // select all of the field definition records in this table. - strGetFields = "SELECT RecID, Info from " + elem.GetAttribute("Table"); - strGetFields = strGetFields + " where RecType = 2"; // + rtype.ToString(); - DBE.Command(strGetFields); - DBE.Reader(); - - while (DBE.Read()) - { - RecID = DBE.GetString(0); - Info = DBE.GetString(1); - // it's defined in the local table if the first character is "<" which starts - // the schema definition string. - if ("<" == Info.Substring(0,1)) - { - name = ParseEleName(Info); - if (name != null) - { - // what type of schema element? - rof = new ROField(name, RecID, null, 0); - ftype = rof.ParseFieldType(Info); - rof.SetFieldType(ftype); - retlist.Add((object) rof); - } - } - - else - { - // the recid points to a field definition (schema) in the master - use it to get - // the schema element from the master and copy it. - string parsename; - string masterrecid; - string strftype; - masterrecid = Info.Substring(0,8); - strftype = Info.Substring(9,3); - ftype = System.Convert.ToUInt32(Info.Substring(9,3)); - parsename = CvtFldToUserFld(Info.Substring(13,Info.Length-13)); - - // if we have a choice element, remove the last character (it was added to the - // field names in order to allow for unique fields names for the choice items. - if (ftype == (uint) FieldTypes.Combination) - { - string tparsename = parsename.Remove((parsename.Length)-1,1); // remove the choice string and the space - parsename = tparsename; - } - rof = new ROField(parsename, RecID, masterrecid, ftype); - retlist.Add((object) rof); - } - } - DBE.ReaderClose(); - DBE.CommandDispose(); - return retlist; - } - - public string RODB_GetSchemaPiece(string Recid, string table) - { - string strGetSchemaPiece; - string Info; - strGetSchemaPiece = "SELECT Info From " + table + " where (RecID = '" + Recid + "')"; - DBE.Command(strGetSchemaPiece); - DBE.Reader(); - if (DBE.Read()) - Info = DBE.GetString(0); - else - Info = null; - DBE.ReaderClose(); - DBE.CommandDispose(); - return Info.Replace("'","\'"); - } - - public bool RODB_NewSchemaPiece(string recid, string parentid, string table, string schpiece, uint rtype) - { - string strSchemaPiece; - bool success = true; - string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); - strSchemaPiece = "INSERT INTO " + table + " (RecID, RecType, ParentID, ModDateTime, Info) VALUES ('"; - // B2004-016: at one point all fields are returned using a record type of 2 (Schema) - - // but the insertion code did not account for this when inserting a type of 4 (GroupSchema) - i.e. - // RecordType of 4 is no longer used, all fields (whether schema or group) are defined - // as RecordTYpe of 2. - //strSchemaPiece = strSchemaPiece + recid + "', " + rtype.ToString() + ", '" + parentid + "', '" + dt + "', '" + schpiece.Replace("\'","'") + "');"; - strSchemaPiece = strSchemaPiece + recid + "', 2, '" + parentid + "', '" + dt + "', '" + schpiece.Replace("\'","'") + "');"; - - DBE.Command(strSchemaPiece); - try - { - DBE.Command(strSchemaPiece); - DBE.Reader(); - } - catch (Exception e) - { - success = false; - MessageBox.Show(e.Message, "Database Write Error"); - } - DBE.ReaderClose(); - DBE.CommandDispose(); - return success; - } - - public bool RODB_WriteSchemaPiece(string Recid, string table, string schpiece) - { - string strWriteSchemaPiece; - bool success = true; - string dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); - strWriteSchemaPiece = "UPDATE " + table + " SET " + table + ".Info = '" + schpiece.Replace("\'","'") + "'"; - strWriteSchemaPiece = strWriteSchemaPiece + ", ModDateTime = '" + dt + "' WHERE RecID = '" + Recid + "';"; - try - { - DBE.Command(strWriteSchemaPiece); - DBE.Reader(); - } - catch (Exception e) - { - success = false; - MessageBox.Show(e.Message, "Database Update Error"); - } - DBE.ReaderClose(); - DBE.CommandDispose(); - return success; - } - - // Create a new field record in master and reference in the current table. - // pass in current rodb object, the xml element creating and editlevel - // is a recordType of either Group (group field definitions) or rro for - // the ro definition. the string apd represents an append string which is - // appended to the fieldname for combo types, otherwise it's null - public bool RODB_NewFieldRecord(ROField myrof, VlnXmlElement myelem, string strschema, uint editlevel, string apd) - { - bool success; - // get a new record id for this and save it in the master table. - string mrecid = RODB_GetNextRecId("ROMaster"); - - // get recid in ROMaster for group, so that we can set the parent field. - // walk up the tree until we find a 'MasterRecID' attribute. - VlnXmlElement parent; - parent = myelem; - while (parent != null) - { - if (parent.HasAttribute("MasterRecID")) break; - parent = (VlnXmlElement) parent.ParentNode; - } - success = RODB_NewSchemaPiece(mrecid,parent.GetAttribute("MasterRecID"),"ROMaster", strschema, editlevel); - if (success != true) return false; - // also reference it from the local table. - string lrecid = RODB_GetNextRecId(myelem.GetAttribute("Table")); - myrof.SetRecID(lrecid); - myrof.SetMasterRecID(mrecid); - StringBuilder strbld = new StringBuilder(); - strbld.Append(mrecid); - strbld.Append(" "); - string strtype = myrof.GetFieldType.ToString(); - strbld.Append(strtype.PadLeft(3,'0')); - strbld.Append(" "); - strbld.Append(myrof.MakeFieldName(myrof.GetFieldname)); - if (apd != null) strbld.Append(apd); - // Need ParentID field, get by looking up xml tree to find parentID attribute = "00000000", then - // use this recid. - parent = myelem; - while (parent.GetAttribute("ParentID") != "00000000") - { - parent = (VlnXmlElement) parent.ParentNode; - } - success = RODB_NewSchemaPiece(lrecid,parent.GetAttribute("RecID"), myelem.GetAttribute("Table"), strbld.ToString(), editlevel); - return success; - } - - private string DoCmbFieldReplace(string repstring, string oname, string nname, string letter) - { - string cmboname, cmbnname; - cmboname = oname.Insert(oname.Length-1,letter); - cmbnname = nname.Insert(nname.Length-1,letter); - return (repstring.Replace(cmboname,cmbnname)); - } - - private bool RODB_ProcessRROFieldChange(VlnXmlElement child, string oldname, string newname, uint editlevel, - VlnStatusMessage StatMsgWindow, bool combofield) - { - - bool success; - string str; - string info; - string tinfo1, tinfo2, tinfo3, tinfo4; - string dt; - string onameOpen, nnameOpen, onameClose, nnameClose, onameComma, nnameComma; - string onameOpenX, nnameOpenX; - onameOpen = "<" + oldname + ">"; - nnameOpen = "<" + newname + ">"; - onameOpenX = "<" + oldname + ">"; - nnameOpenX = "<" + newname + ">"; - onameComma = "<" + oldname + ","; // if format in attribute - nnameComma = "<" + newname + ","; - onameClose = ""; - nnameClose = ""; - dt = string.Format("{0:yyyyMMddHHmmss}", System.DateTime.Now); - try - { - // first do the string replace for the group node. This will change any - // attributes which may have changed. - str = "SELECT Info From " + child.GetAttribute("Table") + " where (RecID = '" + child.GetAttribute("RecID") + "')"; - DBE.Command(str); - DBE.Reader(); - if (DBE.Read()) - info = DBE.GetString(0); - else - info = null; - DBE.ReaderClose(); - DBE.CommandDispose(); - - tinfo1 = info.Replace(onameOpen, nnameOpen); - tinfo2 = tinfo1.Replace(onameClose, nnameClose); - tinfo3 = tinfo2.Replace(onameComma, nnameComma); - tinfo4 = tinfo3.Replace(onameOpenX, nnameOpenX); - if (tinfo4 != info) - { - StatMsgWindow.StatusMessage = child.GetAttribute("MenuTitle"); - str = "UPDATE " + child.GetAttribute("Table") + " SET Info = '" + tinfo4 + "'"; - str = str + ", ModDateTime = '" + dt + "' WHERE RecID = '" + child.GetAttribute("RecID") + "';"; - DBE.Command(str); - DBE.Reader(); - DBE.ReaderClose(); - DBE.CommandDispose(); - if (child.Name == "vlnGroup"&&child.ParentNode.Name != "RO_Root") - { - XmlNodeList nodeList; - nodeList = child.SelectNodes(oldname); - foreach (XmlNode nod in nodeList) - { - XmlNode newnode = ROXml.CreateNode(XmlNodeType.Element, newname, ""); - newnode.InnerXml = nod.InnerXml; - child.ReplaceChild(newnode,nod); - } - } - // if at top, replace strings in attributes for xml node. Only needs done - // for top node because remainder are done in xml string replace for entire - // node and written to database, but XML tree is deleted from memory and - // reread in as needed. - if (child.ParentNode.Name == "RO_Root") - { - string tmp, tmp1; - tmp = child.GetAttribute("RetVal"); - if (tmp != null) - { - tmp1 = tmp.Replace(onameOpen, nnameOpen); - child.SetAttribute("RetVal", tmp1); - } - tmp = child.GetAttribute("MenuItem"); - if (tmp != null) - { - string conameOpen = "<" + oldname + ","; - string cnnameOpen = "<" + newname + ","; - tmp1 = tmp.Replace(onameOpen, nnameOpen); - string tmp2 = tmp1.Replace(conameOpen, cnnameOpen); - child.SetAttribute("MenuItem", tmp2); - } - tmp = child.GetAttribute("AccPageID"); - if (tmp != null) - { - tmp1 = tmp.Replace(onameOpen, nnameOpen); - child.SetAttribute("AccPageID", tmp1); - } - tmp = child.GetAttribute("GroupMenuItem"); - if (tmp != null) - { - tmp1 = tmp.Replace(onameOpen, nnameOpen); - child.SetAttribute("GroupMenuItem", tmp1); - } - - } - } - // if this was an RO field definition change, need to go through the XML for - // the ROs too. - if (editlevel == (uint) RecordType.Schema) - { - XmlNode chldnode = (XmlNode) child.FirstChild; - VlnXmlElement echild; - while (chldnode != null) - { - if (chldnode is VlnXmlElement) - { - echild = (VlnXmlElement) chldnode; - if (echild.Name != "vlnGroup") - { - // If this is a group defintion subtree it will only have one - // child, which is the text definition for the subgroup. Don't - // include these in the tree. - int levelCnt = chldnode.ChildNodes.Count; - string TheMenuTitle = echild.GetAttribute("MenuTitle"); - if ((levelCnt >= 1) && !TheMenuTitle.Equals("")) - { - // read record, do string replace in info & write record. Also, replace - // the xml node with a node with the new name. - str = "SELECT Info From " + echild.GetAttribute("Table") + " where (RecID = '" + echild.GetAttribute("RecID") + "')"; - DBE.Command(str); - DBE.Reader(); - if (DBE.Read()) - info = DBE.GetString(0); - else - info = null; - DBE.ReaderClose(); - DBE.CommandDispose(); - if (combofield==false) - { - tinfo1 = info.Replace(onameOpen,nnameOpen); - tinfo2 = tinfo1.Replace(onameClose, nnameClose); - XmlNodeList nodeList; - nodeList = echild.SelectNodes(oldname); - foreach (XmlNode nod in nodeList) - { - XmlNode newnode = ROXml.CreateNode(XmlNodeType.Element, newname, ""); - newnode.InnerXml = nod.InnerXml; - echild.ReplaceChild(newnode,nod); - } - } - else // need a,b,c,d yikes - { - string nma, nmb, nmc, nmd; - nma = DoCmbFieldReplace(info, onameOpen, nnameOpen, "a"); - nmb = DoCmbFieldReplace(nma, onameOpen, nnameOpen, "b"); - nmc = DoCmbFieldReplace(nmb, onameOpen, nnameOpen, "c"); - nmd = DoCmbFieldReplace(nmc, onameOpen, nnameOpen, "d"); - nma = DoCmbFieldReplace(nmd, onameClose, nnameClose, "a"); - nmb = DoCmbFieldReplace(nma, onameClose, nnameClose, "b"); - nmc = DoCmbFieldReplace(nmb, onameClose, nnameClose, "c"); - tinfo2 = DoCmbFieldReplace(nmc, onameClose, nnameClose, "d"); - // replace the combo nodes with the new name, do a-d in case there are more than - // one value field stored for this combo type - for (char tmplet = 'a';tmplet < 'e'; tmplet++) - { - XmlNodeList nodeList; - nodeList = echild.SelectNodes(oldname+tmplet.ToString()); - foreach (XmlNode nod in nodeList) - { - XmlNode newnode = ROXml.CreateNode(XmlNodeType.Element, newname+tmplet, ""); - newnode.InnerXml = nod.InnerXml; - echild.ReplaceChild(newnode,nod); - } - } - } - - StatMsgWindow.StatusMessage = echild.GetAttribute("MenuTitle"); - str = "UPDATE " + echild.GetAttribute("Table") + " SET Info = '" + tinfo2 + "'"; - str = str + ", ModDateTime = '" + dt + "' WHERE RecID = '" + echild.GetAttribute("RecID") + "';"; - DBE.Command(str); - DBE.Reader(); - DBE.ReaderClose(); - DBE.CommandDispose(); - - } - } - } - chldnode = chldnode.NextSibling; - } - } - return true; - } - catch (Exception e) - { - success = false; - MessageBox.Show(e.Message,"Database Update Error"); - } - return success; - } - - // RODB_UpdateNamesInROs: goes through subtree (top node is 'fld') and if this - // updated field is used (either in [Group]FieldsInUse or was used in parent, then - // 1) if group node, check for attributes using "" and if found, update - // to " - // 2) if group edit, modify this node's xml data with the new fieldname, - // otherwise, edit 'ROs' under this to replace with - // Input: VlnXmlElement fld: start processing at this node. - // string myrecid: local recid to be used for check to see if used (in FieldsInUse - // or GroupFieldsInUse. - // string oldname, newname - old and new field names - // string myrecid - local record storing field name - // uint editlevel - if editting groups, do check for for item 1 above in - // Group attributes, otherwise do in - // bool parentused - set to false from caller, this is recursive and will - // be set appropriately for recursive calls. - public bool RODB_UpdateFieldNames(VlnXmlElement fld, string myrecid, string oldname, - string newname, uint editlevel, bool parentused, VlnStatusMessage StatMsgWindow, bool combofield) - { - bool success; - bool useAtLevel = false; - XmlNode node; - VlnXmlElement child; - string fldinuse; - - if (editlevel == (uint)RecordType.Schema) - fldinuse = "FieldsInUse"; - else - fldinuse = "GroupFieldsInUse"; - - // Do the current level before walking through any children groups. - if (fld.Name == "vlnGroup") - { - if (fld.HasAttribute(fldinuse)) - { - // if recid not in here, don't process for this node. - string fiu = fld.GetAttribute(fldinuse); - if (fiu.IndexOf(myrecid) >= 0) useAtLevel = true; - } - if (useAtLevel==true || parentused==true) useAtLevel = true; - - if (useAtLevel == true) - { - string haskids, kidsloaded; - haskids = fld.GetAttribute("HasChild"); - kidsloaded = fld.GetAttribute("ChildLoaded"); - if (haskids == "True" && kidsloaded == "False" ) - { - success = RODB_GetChildData(fld,true); - if (success == false) return false; - fld.SetAttribute("ChildLoaded","True"); - } - parentused = true; // for kids of this group. - - success = RODB_ProcessRROFieldChange(fld, oldname, newname, editlevel, StatMsgWindow, combofield); - if (success==false) return false; - } - } - node = (XmlNode) fld.FirstChild; - while (node != null) - { - if (node is VlnXmlElement) - { - useAtLevel=false; - child = (VlnXmlElement) node; - - // If this is a group menu edit, process group nodes, by recursive - // call and then modify data on group record. - // For both, when hitting a group node, check that it either doesn't - // have 'FieldsInUse' or 'GroupFieldsInUse' or that if it does, - // this record id is in the list -> only process these, otherwise - // the field is not used. - if (child.Name == "vlnGroup") - { - // see if inuse for this one, either defined here or from parent. - if (child.HasAttribute(fldinuse)) - { - // if recid not in here, don't process for this node. Still - // need to check children because they may redefine fields in use. - string fiu = child.GetAttribute(fldinuse); - if (fiu.IndexOf(myrecid) >= 0) useAtLevel = true; - } - if (useAtLevel == false && parentused == true) useAtLevel = true; - - // update this record if it doesn't have it's own , then do kids - // of it. - success = RODB_UpdateFieldNames(child, myrecid, oldname, newname,editlevel,useAtLevel, StatMsgWindow, combofield); - - if (success == false) return false; - } - } - node = node.NextSibling; - } - // now update ROs at this level, only if RO mods (not group). - //if (parentused && editlevel==(uint)RecordType.Schema) - //{ - // success = RODB_ProcessRROFieldChange(fld, oldname, newname, editlevel); - // if (success==false) return false; - //} - return true; - } - - // check if the name entered is one used for setting up - // the new graphics or setpoint databases. - private bool RODB_CheckForStandardName(string oname) - { - string oldname = CvtFldToUserFld(oname); - if (oldname.CompareTo("Name") == 0) return true; - if (oldname.CompareTo("Image ID") == 0) return true; - if (oldname.CompareTo("Image") == 0) return true; - if (oldname.CompareTo("Setpoint ID") == 0) return true; - if (oldname.CompareTo("Setpoint Value") == 0) return true; - if (oldname.CompareTo("Associated System/Component") == 0) return true; - if (oldname.CompareTo("Applicability") == 0) return true; - if (oldname.CompareTo("Revision") == 0) return true; - if (oldname.CompareTo("Short Description") == 0) return true; - if (oldname.CompareTo("Description") == 0) return true; - if (oldname.CompareTo("Key Assumptions") == 0) return true; - if (oldname.CompareTo("Basis") == 0) return true; - if (oldname.CompareTo("References") == 0) return true; - if (oldname.CompareTo("Group") == 0) return true; - if (oldname.CompareTo("Parameter") == 0) return true; - return false; - } - - public bool RODB_UpdateFieldRecord(ROField myrof, VlnXmlElement myelem, string strschema, - string oldname, string newname, uint editlevel, bool combofield) - { - bool success=false; - // If this is a generic definition that was modified, i.e. from ROMaster, ask - // the user whether to update the generic field definition or make it local. - if (myrof.GetMasterRecID != null) - { - // if field is defined in the ROMaster, and we change the field name - - // first check if it is using one of the names used to define new - // setpoint or graphics databases. If so, make it a local change only! - - bool changegeneric = true; - if (oldname != newname) - { - // if this is one of the standard names - don't let them save it. - bool isused=RODB_CheckForStandardName(oldname); - if (isused == true) - { - MessageBox.Show("The field name is used to define new Setpoints or Graphics Database.\n The update will be for this local (database) group only.","Field name modification."); - changegeneric = false; - } - } - - // if standard name, from above check, don't ask user if it is generic - // or not. - if (changegeneric != false) - { - System.Windows.Forms.DialogResult result = MessageBox.Show ("Update Generic definition?", "Referenced Object Definition", - MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (result == DialogResult.No) changegeneric = false; - } - if (changegeneric == true) - { - success = RODB_WriteSchemaPiece(myrof.GetMasterRecID,"ROMaster", strschema); - if (success != true) return false; - // if change in fieldname, need to go through all of the databases to - // adjust for it. - if (oldname != newname) - { - VlnStatusMessage StatMsgWindow = new VlnStatusMessage("Status of RO Field Change"); - // get root xml element - // loop through each subgroup under root. - VlnXmlElement topgroup; - topgroup = (VlnXmlElement) ROXml.FirstChild.FirstChild; - string sqlstr, recid, tbl; - while (topgroup != null) - { - tbl = topgroup.GetAttribute("Table"); - // get the recid of this field definition from the current table. - sqlstr = "SELECT RecID FROM " + tbl; - sqlstr = sqlstr + " WHERE (((" + tbl + ".RecType) = 2) AND ((" + tbl + ".Info) like ('"; - sqlstr = sqlstr + myrof.GetMasterRecID + "%')));"; - DBE.Command(sqlstr); - DBE.Reader(); - if (DBE.Read()) - recid = DBE.GetString(0); - else - recid = null; - DBE.ReaderClose(); - DBE.CommandDispose(); - if (recid != null) - { - // update the local field definition record - StringBuilder strbld = new StringBuilder(); - strbld.Append(myrof.GetMasterRecID); - strbld.Append(" "); - string strtype = myrof.GetFieldType.ToString(); - strbld.Append(strtype.PadLeft(3,'0')); - strbld.Append(" "); - strbld.Append(myrof.MakeFieldName(myrof.GetFieldname)); - success = RODB_WriteSchemaPiece(recid,topgroup.GetAttribute("Table"), strbld.ToString()); - topgroup.SetAttribute("TreeNotData", "True"); - - // Update subelements too. - if (success == true) - success = RODB_UpdateFieldNames(topgroup, recid, oldname, newname, editlevel, false, StatMsgWindow, combofield); - topgroup = (VlnXmlElement) topgroup.NextSibling; - } - } - StatMsgWindow.Dispose(); - } - } - else // change local - { - // modify the current to have the definition local. - success=RODB_WriteSchemaPiece(myrof.GetRecID,myelem.GetAttribute("Table"), strschema); - // get top group node in tree. and from there process fields if - // there was a change in fieldname text - if (success == true && oldname != newname) - { - VlnStatusMessage StatMsgWindow = new VlnStatusMessage("Status of RO Field Change"); - // get top node - the one immediately below the RO_Root. - VlnXmlElement parent, startEle; - parent = myelem; - startEle = myelem; - while(parent.Name != "RO_Root") - { - startEle = parent; - parent = (VlnXmlElement) parent.ParentNode; - } - startEle.SetAttribute("TreeNotData", "True"); - success = RODB_UpdateFieldNames(startEle, myrof.GetRecID, oldname, newname, editlevel, false, StatMsgWindow, combofield); - StatMsgWindow.Dispose(); - } - } - } - else - { - success = RODB_WriteSchemaPiece(myrof.GetRecID,myelem.GetAttribute("Table"),strschema); - // changed the fieldname, change xml text. - if (success == true && oldname != newname) - { - VlnStatusMessage StatMsgWindow = new VlnStatusMessage("Status of RO Field Change"); - // get top node - the one immediately below the RO_Root. - VlnXmlElement parent, startEle; - parent = myelem; - startEle = myelem; - while(parent.Name != "RO_Root") - { - startEle = parent; - parent = (VlnXmlElement) parent.ParentNode; - } - startEle.SetAttribute("TreeNotData", "True"); - success = RODB_UpdateFieldNames(startEle, myrof.GetRecID, oldname, newname, editlevel, false, StatMsgWindow, combofield); - StatMsgWindow.Dispose(); - } - } - return success; - } - - public XmlSchema RODB_GetGroupSchema(VlnXmlElement elem) - { - XmlSchema myschema; - - VlnXmlElement parent; - string entireschema; - // if at top of tree, use this group schema information (fields in use). but if not, - // the parent node defines the schema for the subgroups. - if (elem.ParentNode.Name == "RO_Root") - parent = elem; - else - parent = elem; -// bug fix B2004-008 -// need to use the current node's group definition all the time -// parent = (VlnXmlElement) elem.ParentNode; - while (parent != null) - { - if (parent.HasAttribute("GroupFieldsInUse") == true) break; - - // if we've looped to the top, just set the parent to null. (B2004-015) - if (parent.ParentNode is VlnXmlElement) - parent = (VlnXmlElement) parent.ParentNode; - else - parent = null; - } - - if (parent == null) return null; - // The group schema never gets saved as an attribute. it's always read in, because - // it's not used as often as the ro schema. So for the Group Schema, we're looking - // for 'GroupFieldsInUse'. - // otherwise, read in schema definitions for those 'FieldsInUse'. - string strGetSchemaPiece; - entireschema = null; - string GroupFieldsInUse = parent.GetAttribute("GroupFieldsInUse"); - int strpos = 0; - string Info; - - // For each item in use, get its xmlschema text. If unique to this group, the definition - // exists local to this table. Otherwise, go back to the master. - string recid; - recid = GroupFieldsInUse.Substring(0,8); - while (recid != null) - { - strGetSchemaPiece = "SELECT Info From " + elem.GetAttribute("Table") + " where (RecID = '" + recid + "')"; - DBE.Command(strGetSchemaPiece); - DBE.Reader(); - if (DBE.Read()) - { - Info = DBE.GetString(0); - // if the info string has "<", i.e. an opening XML schema bracket, use - // this text as the field definition, otherwise, go to the master to get - // it. - if ("<" == Info.Substring(0,1)) - { - // use this field definition, else get from the master. - entireschema = entireschema + Info; - } - else - { - string recidpart = Info.Substring(0,8); - strGetSchemaPiece = "SELECT Info From RoMaster where (RecID = '" + recidpart + "')"; - DBE.ReaderClose(); - DBE.CommandDispose(); - DBE.Command(strGetSchemaPiece); - DBE.Reader(); - if (DBE.Read()) - { - Info = DBE.GetString(0); - entireschema = entireschema + Info; - } - } - DBE.ReaderClose(); - DBE.CommandDispose(); - strpos = strpos + 9; - if (strpos > GroupFieldsInUse.Length) - recid = null; - else - recid = GroupFieldsInUse.Substring(strpos,8); - } - DBE.ReaderClose(); - DBE.CommandDispose(); - } - entireschema = schemastart + entireschema + schemaend; - XmlTextReader schemareader = new XmlTextReader(entireschema,XmlNodeType.Element,null); - try - { - myschema = XmlSchema.Read(schemareader,null); - return myschema; - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Schema Error"); - return null; - } - } - - public XmlSchema RODB_GetSchema(VlnXmlElement elem) - { - XmlSchema myschema; - - VlnXmlElement parent; - string entireschema; - XmlNode nparent; - nparent = elem; //.ParentNode; - if (nparent is VlnXmlDocument) - { - // at top already. use this one. - parent = elem; - } - else - { - parent = (VlnXmlElement) nparent; - while (parent != null) - { - if (parent.HasAttribute("Schema") == true) break; - if (parent.HasAttribute("FieldsInUse") == true) break; - parent = (VlnXmlElement) parent.ParentNode; - } - } - - // if the schema has already been read in, just use it from the schema attribute, - // otherwise, read in schema definitions for those 'FieldsInUse'. - if (parent.HasAttribute("Schema")) - { - entireschema = parent.GetAttribute("Schema"); - } - else - { - string strGetSchemaPiece; - entireschema = null; - string FieldsInUse = parent.GetAttribute("FieldsInUse"); - int strpos = 0; - string Info; - - // For each item in use, get its xmlschema text. If unique to this group, the definition - // exists local to this table. Otherwise, go back to the master. - string recid; - recid = FieldsInUse.Substring(0,8); - while (recid != null) - { - strGetSchemaPiece = "SELECT Info From " + elem.GetAttribute("Table") + " where (RecID = '" + recid + "')"; - DBE.Command(strGetSchemaPiece); - DBE.Reader(); - if (DBE.Read()) - { - Info = DBE.GetString(0); - // if the info string has "<", i.e. an opening XML schema bracket, use - // this text as the field definition, otherwise, go to the master to get - // it. - if ("<" == Info.Substring(0,1)) - { - // use this field definition, else get from the master. - entireschema = entireschema + Info; - } - else - { - string recidpart = Info.Substring(0,8); - string localfieldname = Info.Substring(13,Info.Length-13); - strGetSchemaPiece = "SELECT Info From RoMaster where (RecID = '" + recidpart + "')"; - DBE.ReaderClose(); - DBE.CommandDispose(); - DBE.Command(strGetSchemaPiece); - DBE.Reader(); - if (DBE.Read()) - { - // check if field name is same, if not, use local name. - string goodname; - Info = DBE.GetString(0); - int indx1 = Info.IndexOf("\""); - int indx2 = Info.IndexOf("\"",indx1+1); - string masterfieldname = Info.Substring(indx1+1,indx2-indx1-1); - if (localfieldname != masterfieldname) - goodname = Info.Replace(masterfieldname,localfieldname); - else - goodname = Info; - - entireschema = entireschema + goodname; - } - } - DBE.ReaderClose(); - DBE.CommandDispose(); - strpos = strpos + 9; - if (strpos > FieldsInUse.Length) - recid = null; - else - recid = FieldsInUse.Substring(strpos,8); - } - } - DBE.ReaderClose(); - DBE.CommandDispose(); - entireschema = schemastart + entireschema + schemaend; - } - - XmlTextReader schemareader = new XmlTextReader(entireschema,XmlNodeType.Element,null); - try - { - myschema = XmlSchema.Read(schemareader,null); - parent.SetAttribute("Schema",entireschema); - return myschema; - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Schema Read Error"); - return null; - } - } - - public int RODB_GetNumberOfROValueRecords(string tablename) - { - // get menu fields to display here. - string strGetRoCount = "SELECT COUNT(RecType) AS NumRecs FROM " + tablename; - strGetRoCount += " WHERE RecType = " + (uint)RecordType.RRO; - DBE.Command(strGetRoCount); - DBE.Reader(); - DBE.Read(); - int ROCnt = DBE.GetInt32(0); - DBE.ReaderClose(); - DBE.CommandDispose(); - return ROCnt; - } - - public int RODB_GetNumberOfGroupRecords(string tablename) - { - // get menu fields to display here. - string strGetGrpCount = "SELECT COUNT(RecType) AS NumRecs FROM " + tablename; - strGetGrpCount += " WHERE RecType = " + (uint)RecordType.Group; - DBE.Command(strGetGrpCount); - DBE.Reader(); - DBE.Read(); - int GrpCnt = DBE.GetInt32(0); - DBE.ReaderClose(); - DBE.CommandDispose(); - return GrpCnt; - } - - } -} - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/RODBInterface.csproj b/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/RODBInterface.csproj deleted file mode 100644 index 3cbeb7b5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/RODBInterface.csproj +++ /dev/null @@ -1,136 +0,0 @@ - - - Local - 8.0.50727 - 2.0 - {0C7825FD-AA05-11D6-84D1-00A0CC271352} - Debug - AnyCPU - - - - - RODBInterface - - - JScript - Grid - IE50 - false - Library - RODBInterface - OnBuildSuccess - - - - - - - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - - - - System - - - System.Data - - - System.Drawing - - - System.Windows.Forms - - - System.XML - - - - - Code - - - Code - - - Form - - - Code - - - userpass.cs - Designer - - - - - {6D44F537-879E-11D6-84B8-00A0CC271352} - DBEncapsulation - - - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04} - Org.Mentalis.Files - - - {0C782592-AA05-11D6-84D1-00A0CC271352} - ROFields - - - {551CB7B3-00B1-11D7-8590-482B59000000} - VlnStatus - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/RODBInterface.sln b/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/RODBInterface.sln deleted file mode 100644 index 4e840fae..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/RODBInterface.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RODBInterface", "RODBInterface.csproj", "{0C7825FD-AA05-11D6-84D1-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug.ActiveCfg = Debug|.NET - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Debug.Build.0 = Debug|.NET - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release.ActiveCfg = Release|.NET - {0C7825FD-AA05-11D6-84D1-00A0CC271352}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/VlnXml.cs b/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/VlnXml.cs deleted file mode 100644 index 3bf0084f..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/VlnXml.cs +++ /dev/null @@ -1,1213 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VlnXml.cs $ $Revision: 23 $ - * $Author: Jsj $ $Date: 6/20/05 1:29p $ - * - * $History: VlnXml.cs $ - * - * ***************** Version 23 ***************** - * User: Jsj Date: 6/20/05 Time: 1:29p - * Updated in $/LibSource/RODBInterface - * added status message while reading ROs for Complete RO Report. - * - * ***************** Version 22 ***************** - * User: Jsj Date: 6/08/05 Time: 4:32p - * Updated in $/LibSource/RODBInterface - * Complete RO Report Bug fix B2001-001 - * - * ***************** Version 21 ***************** - * User: Jsj Date: 9/27/04 Time: 11:02a - * Updated in $/LibSource/RODBInterface - * upped release number - * - * ***************** Version 20 ***************** - * User: Kathy Date: 7/15/04 Time: 11:11a - * Updated in $/LibSource/RODBInterface - * Fix B2004-017 - * - * ***************** Version 19 ***************** - * User: Kathy Date: 5/06/04 Time: 9:52a - * Updated in $/LibSource/RODBInterface - * B2004-012 fix: skip process of param display data for RO Cmp Rpt - * - * ***************** Version 18 ***************** - * User: Jsj Date: 4/08/04 Time: 9:43a - * Updated in $/LibSource/RODBInterface - * Added and commented out calls to VlnProfiler - * - * ***************** Version 17 ***************** - * User: Jsj Date: 1/21/04 Time: 12:10p - * Updated in $/LibSource/RODBInterface - * added function to return current selected field type of multi type - * field - * - * ***************** Version 16 ***************** - * User: Kathy Date: 5/21/03 Time: 12:41p - * Updated in $/LibSource/RODBInterface - * B2003-035: process ro's with just one field - * - * ***************** Version 15 ***************** - * User: Jsj Date: 4/14/03 Time: 2:59p - * Updated in $/LibSource/RODBInterface - * changes resulting from speeding up RO FST creation - * - * ***************** Version 14 ***************** - * User: Kathy Date: 3/11/03 Time: 11:24a - * Updated in $/LibSource/RODBInterface - * allow extra text on accpageid template - * - * ***************** Version 13 ***************** - * User: Kathy Date: 12/17/02 Time: 12:53p - * Updated in $/LibSource/RODBInterface - * get image data by node for rofst creation - * - * ***************** Version 12 ***************** - * User: Kathy Date: 12/10/02 Time: 2:25p - * Updated in $/LibSource/RODBInterface - * fieldname special chars & various bugs - * - * ***************** Version 11 ***************** - * User: Kathy Date: 12/02/02 Time: 8:29a - * Updated in $/LibSource/RODBInterface - * fieldname replace chars - * - * ***************** Version 10 ***************** - * User: Jsj Date: 11/27/02 Time: 12:47p - * Updated in $/LibSource/RODBInterface - * modifications for RO.FST file creation - * - * ***************** Version 9 ***************** - * User: Kathy Date: 11/19/02 Time: 11:32a - * Updated in $/LibSource/RODBInterface - * fields within {} are not required - * - * ***************** Version 8 ***************** - * User: Kathy Date: 11/11/02 Time: 7:14a - * Updated in $/LibSource/RODBInterface - * Added complete report methods. - *********************************************************************************************/ -using System; -using System.Xml; -using System.Text; -using System.Collections; -using System.IO; -using System.Windows.Forms; -using ROFields; -using VlnStatus; -//using VlnProfiler; //don't forget to add VlnProfiler to the reference list - -namespace RODBInterface -{ - /// - /// Summary description for Class1. - /// - - public class VlnXmlDocument:XmlDocument - { - FileStream Rptfs; // for complete report of this document - BinaryWriter RptBW; - - public VlnXmlDocument():base() - { - } - - public override XmlElement CreateElement( string prefix, string localname, string nsURI) - { - VlnXmlElement elem = new VlnXmlElement(prefix, localname, nsURI, this); - return elem; - } - - public bool OpenTemp() - { - try - { - Rptfs = new FileStream("print.tmp", FileMode.Create); - // Create the writer for data. - RptBW = new BinaryWriter(Rptfs); - } - catch (Exception ) - { - return false; - } - return true; - } - - public void CloseTemp() - { - RptBW.Close(); - Rptfs.Close(); - } - - public void writeInt(short val) - { - RptBW.Write(val); - } - - public void writeText(string str) - { - short n = (short) str.Length; - writeInt(n); - // write out char by char. (Using rite - // of entire stirng caused special characters to be - // written as two bytes - which temp file reading code - int i; - for(i =0; i < str.Length; i++) - { - byte WrByte; - WrByte = (byte)str[i]; - RptBW.Write(WrByte); - } - } - - public void writeTextValue(string str) - { - writeInt(100); - writeText(str); - } - - public void writePlot(string str) - { - writeInt(101); - writeText(str); - } - - public void writeImage(string str) - { - writeInt(102); - writeText(str); - } - - public void pushHeader(string str) - { - writeInt(2); - writeText(str); - } - - public void popHeader() - { - writeInt(3); - } - - public void doHeader(ArrayList headers) - { - int spaces = -1; - short cnt = (short) headers.Count; - writeInt(255); - writeInt(1); - writeInt(cnt); - for (int i=0; i < cnt ;i++) - { - writeInt(0); - if (spaces>0) - { - string spc = new String(' ',2*(spaces-1)); - writeText(spc+headers[i].ToString()); - } - else - writeText(headers[i].ToString()); - spaces++; - } - } - - public void writeRROBegin() - { - writeInt(4); - } - - public void writeRROEnd() - { - writeInt(5); - } - - public void writeMultiBegin() - { - writeInt(103); - } - - public void writeMultiEnd() - { - writeInt(104); - } - } - - public class VlnXmlElement:XmlElement - { - public VlnXmlElement( string prefix, string localname, string nsURI, XmlDocument doc ):base( prefix,localname,nsURI, doc ) - { - } - - private string CvtUserFldToFld(string fldname) - { - if (fldname.Length < 2) - return fldname; - // a digit cannot start an xml fieldname, prepend a "__" to it. - string tmp0; - if (char.IsDigit(fldname,0)) - tmp0 = "__" + fldname; - else - tmp0 = fldname; - // an xml fieldname cannot have a space, change it to a "__" - string tmpstr = tmp0.Replace(" ","__"); - int len = tmpstr.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - return outstr; - } - - private string CvtFldToUserFld(string fldname) - { - string tmpstr0; - if (fldname.Length < 2) return fldname; - // an xml element name cannot begin with a digit. we had prepended a "__" - if (fldname.Substring(0,2) == "__" && char.IsDigit(fldname,2)) - tmpstr0 = fldname.Substring(2,fldname.Length-2); - else - tmpstr0 = fldname; - // an xml element name cannot have a space, we converted to a "__" - string tmpstr = tmpstr0.Replace("__"," "); - int len = tmpstr.Length; - int cur = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval, indx; - if (tmpstr.Length <6) - indx = -1; - else - indx=tmpstr.IndexOf(OKpunch,cur); - string asc_spchar; - while (indx>=0) - { - outstr += tmpstr.Substring(cur,indx-cur); - asc_spchar = tmpstr.Substring(indx+3,3); - decval = System.Convert.ToInt16(asc_spchar,10); - outstr += System.Convert.ToChar(decval).ToString(); - cur = indx+6; - if (cur+6 > len) - indx = -1; - else - indx = tmpstr.IndexOf(OKpunch,cur); - } - if (cur"); - if (left >= 0 && right > 0) - fld = newtmpl.Substring(left+1,right-left-1); - else - return null; - string usefld = CvtUserFldToFld(fld); - - XmlNode elmnode = (XmlNode) elm; - XmlNode nd = elmnode.SelectSingleNode(usefld); - // if not found it may be a combination, try this. - if (nd == null) - { - string tmp = usefld + "a"; - nd = elmnode.SelectSingleNode(tmp); - } - if (nd == null) - { - string tmp = usefld + "b"; - nd = elmnode.SelectSingleNode(tmp); - } - if (nd == null) - { - string tmp = usefld + "c"; - nd = elmnode.SelectSingleNode(tmp); - } - if (nd == null) - { - string tmp = usefld + "d"; - nd = elmnode.SelectSingleNode(tmp); - } - if(nd != null) - { - StringBuilder strbld = new StringBuilder(); - if (left > 0) strbld.Append(newtmpl.Substring(0,left)); - strbld.Append(nd.InnerText.ToString()); - if (right+1 0) strbld.Append(menuitm.Substring(0,left)); - - while (left != -1) - { - // get right bracket and then check for valid field & if commas with - // this, check for integer values. - right = menuitm.IndexOf(">",stindx); - string tmpd = menuitm.Substring(left+1,right-left-1); - // do comma parts now. - string inusename; - int comma1 = tmpd.IndexOf(","); - int frmt1=0, frmt2=0; - if (comma1 != -1) - { - // get any numbers for formatting & check for ints. - int comma2 = tmpd.IndexOf(",",comma1+1); - if (comma2 != -1) // two ints. - { - if (comma2-comma1 > 1) // first format field - not empty - { - string int1 = tmpd.Substring(comma1+1,comma2-comma1-1); - frmt1 = System.Convert.ToInt32(int1); - } - if (comma20) - strbld.Append(text.PadRight(frmt2,' ')); - else - strbld.Append(text); - } - else if (frmt1 != frmt2) - { - int cnt = 0; -// while (cnt < tmp.Length && tmp[cnt] <= '9' && tmp[cnt] >= '0') cnt++; // new RO logic -// int padcnt = (cnt>frmt1)?0:frmt1-cnt; - int padcnt = OldROFSTMenuLogic(text,frmt1,frmt2); // testing!!!!! - StringBuilder strtmp = new StringBuilder(); - cnt = 0; - while(cnt frmt2) // longer than the field length? - strtmp.Append(text.Substring(0,frmt2-cnt)); - else - strtmp.Append(text); - string tmpstr = strtmp.ToString(); - strbld.Append(tmpstr.PadRight(frmt2,' ')); - } - else - strbld.Append(text.PadLeft(frmt2,' ')); - } - } - stindx = right+1; - left = menuitm.IndexOf("<",left+1); - if (left != -1 && left > right+1) // append any plain text. - strbld.Append(menuitm.Substring(right+1,left-right-1)); - } - if (right+1='0') || str[idx] =='-' || str[idx]=='+')) - { - siznum++; - idx++; - } - if (siznum == 0) - { - newoff= siznum+(wid-slen)/2; - } - else if (((doff-siznum)+slen)> wid) - { - newoff = wid-siznum-slen; - } - tmpwid = wid; - while (tmpwid > 0 && siznum < newoff) - { - sps++; - siznum++; - tmpwid--; - } - return sps; - } - - - // for this (VlnXmlElement), get it's menu value template. This template is - // used to generate the menu titles. Pass in a string 'GroupMenuItem' or - // 'MenuItem' so that the group level or RRO level menu template is found. - // This walkds up the tree to find the attribute ('GroupMenuItem' or 'MenuItem') - // and returns it. - public string GetMenuValueTemplate(string menuitm) - { - VlnXmlElement parent; - string strmenuitm; - VlnXmlElement tmp; - if (menuitm == "GroupMenuItem") - { - // if at top of tree, use this top GroupMenuItem. but if not, - // the parent node defines the GroupMenuItem for the subgroups. - if (this.ParentNode.Name == "RO_Root") - { - tmp = (VlnXmlElement) this.ParentNode; - strmenuitm=tmp.GetAttribute(menuitm); - return(strmenuitm); - } - else - parent = (VlnXmlElement) this.ParentNode; - while (parent != null) - { - if (parent.HasAttribute(menuitm) == true) break; - if (parent.Name != "RO_Root") - parent = (VlnXmlElement) parent.ParentNode; - else - parent = null; - } - if (parent == null) return null; - strmenuitm = parent.GetAttribute(menuitm); - return strmenuitm; - } - - // Now just do 'MenuItem', which is for ROs - parent = (VlnXmlElement) this; - strmenuitm = parent.GetAttribute(menuitm); - while (parent != null && strmenuitm == "") - { - // walk up tree to get parent. - strmenuitm = parent.GetAttribute(menuitm); - parent = (VlnXmlElement) parent.ParentNode; - } - return strmenuitm; - } - - // for this (VlnXmlElement), get the Return Value template. - public string GetReturnValueTemplate() - { - VlnXmlElement parent; - VlnXmlElement tmp=null; - - // get to top node of the ROs & groups to get the return for this tree. - parent = (VlnXmlElement) this; - tmp = parent; - while((tmp.HasAttribute("RetVal") == false) && parent.Name != "RO_Root") - { - tmp = parent; - parent = (VlnXmlElement) parent.ParentNode; - } - if (tmp.HasAttribute("RetVal") == false) return null; - else return tmp.GetAttribute("RetVal"); - } - - /* - * return true if the field is a pre defined PROC.INI field name - */ - private bool IsProcIniDef(string fld) - { - bool rtnval = false; - string tmpstr = fld.ToUpper(); - - rtnval = (tmpstr.Equals("U") || - tmpstr.Equals("U-") || - tmpstr.Equals("P") || - tmpstr.Equals("P-") || - tmpstr.Equals("S") || - tmpstr.Equals("S-")); - - return rtnval; - } - - /* - * This function checks the given field name with the list of fields - * that are "in use" for the current group. - * If the field name is of one of the pre-defined PROC.INI RO fields - * treat that field name as plain text (i.e. NOT in use) - */ - private bool IsAInUseField(ArrayList InUseList, string fld) - { - bool rtnval = false; - int i; - - if (IsProcIniDef(fld)) // is this a pre-defined PROC.INI field? - return rtnval; //return false! - - string tmpstr = fld.Substring(0,1); - if (tmpstr.Equals("_")) - tmpstr = fld.Substring(1,fld.Length-1); - else - tmpstr = fld; - tmpstr = CvtFldToUserFld(fld); - for(i=0; rtnval == false && i 0) strbld.Append(RtnValTemplate.Substring(0,left)); - - while (left != -1) - { - // get right bracket and then check for valid field & if commas with - // this, check for integer values. - right = RtnValTemplate.IndexOf(">",stindx); - string inusename; - string substr = RtnValTemplate.Substring(left+1,right-left-1); - inusename = CvtUserFldToFld(substr); - - // get contents of field & append it onto the string builder. - XmlNode elmnode = (XmlNode) elm; - XmlNode nd = elmnode.SelectSingleNode(inusename); - // Check to see if the found field is a "Field In Use" - - if (IsAInUseField(InUseList,inusename)) - { - string text=""; - if (nd == null) - { - text = GetComboFieldValueAndType(elmnode,inusename,ref FldType,false); - if (text.Equals("")) - text = " "; - } - else - { -// Profiler.Start("Grv7"); - FldType = theDb.RODB_GetFieldType((VlnXmlElement)nd,TableName,inusename); -// Profiler.End("Grv7"); -// Profiler.Start("Grv8"); - // for an image, get the filename, height, width, otherwise just use - // data in the node. - if (FldType == 8) // for the '8' see RODBInterface - GetFSTreturntype - { - // get filename, length, width in that order, separated by newlines - XmlNode tmp = nd.SelectSingleNode("Image_Filename"); - if (tmp != null && tmp.InnerText != null) - text = tmp.InnerText + "\r\n"; - else - text = " \r\n"; - tmp = nd.SelectSingleNode("Image_Height"); - if (tmp != null && tmp.InnerText != null) - text = text + tmp.InnerText + "\r\n"; - else - text = text + " \r\n"; - tmp = nd.SelectSingleNode("Image_Width"); - if (tmp != null && tmp.InnerText != null) - text = text + tmp.InnerText + "\r\n"; - else - text = text + " \r\n"; - } - else - { - text = nd.InnerText; - } -// Profiler.End("Grv8"); - } - - ValueType |= FldType; - strbld.Append(text); - } - else - { - strbld.Append(RtnValTemplate.Substring(left,right-left+1)); - } - - stindx = right+1; - left = RtnValTemplate.IndexOf("<",left+1); - if (left != -1 && left > right+1) // append any plain text. - strbld.Append(RtnValTemplate.Substring(right+1,left-right-1)); - } - - right++; // move past the right bracket ('>') - if (right < RtnValTemplate.Length) - strbld.Append(RtnValTemplate.Substring(right,RtnValTemplate.Length-right)); - -// Bug fix: B2004-044 -// If the ValueType is zero, then it will not appear on the list of ROs in the -// procedure editor. - if (ValueType == 0) - ValueType = 1; - - RtnValStr = strbld.ToString(); - return RtnValStr; - } - - public string GetComboFieldValueAndType(XmlNode CurNode, string Fld, ref ushort FldTyp, bool ForMenu) - { - string RtnVal = ""; - XmlNode ChildNode = CurNode.FirstChild; - FldTyp = 0; - - while (ChildNode != null && FldTyp == 0) - { - if (ChildNode is VlnXmlElement) - { - string ChildName = ChildNode.Name.ToString(); - if (ChildName.StartsWith(Fld)) - { - char CmboChar = Convert.ToChar(ChildName.Substring(ChildName.Length-1,1)); - switch (CmboChar) - { - case 'a': // Fixed Text - case 'b': // Multi Line Text - FldTyp = 1; - RtnVal = ChildNode.InnerText; - break; - case 'c': // Table - FldTyp = 2; - if (ForMenu) - RtnVal = "(Table)"; - else - RtnVal = ChildNode.InnerText; - break; - case 'd': // X/Y Plot - FldTyp = 4; - if (ForMenu) - RtnVal = "(Graph)"; - else - RtnVal = ChildNode.InnerText; - break; - } - } - } - ChildNode = ChildNode.NextSibling; - } - return RtnVal; - } - - // For this (VlnXmlElement), get the list of used fields. Need to find the - // fields from the accessory page id template, the return value template - // and the menu title template or group title template (depends on if a - // group edit or a RRO edit. - public ArrayList GetRequiredFields() - { - ArrayList fldlist = new ArrayList(); - string accpagetmpl = GetAccPageIDTemplate(); - string retvaltmpl = null; - string menutmpl = null; - if (this.Name == "vlnGroup") - { - menutmpl = GetMenuValueTemplate("GroupMenuItem"); - } - else - { - menutmpl = GetMenuValueTemplate("MenuItem"); - retvaltmpl = GetReturnValueTemplate(); - } - // for each string, add its field names to the list. - // accessory page id's only have a field and only used for ROs. - if (this.Name != "vlnGroup" && accpagetmpl != null) - { - string fld = accpagetmpl.Substring(1,accpagetmpl.Length-2); - fldlist.Add(fld+"\tAccessory Page Value"); - } - // menutmpl's may have multiple fields. loop through them. - int left, right, stindx, comma, rdelim; - if (menutmpl != null) - { - left = menutmpl.IndexOf("<"); - right = 0; - stindx = 0; - comma = 0; - while (left != -1) - { - // get right bracket and then check for valid field & if commas with - // this, check for integer values. - right = menutmpl.IndexOf(">",stindx); - comma = menutmpl.IndexOf(",",stindx); - rdelim = (comma>-1 && comma>left && comma',stindx); - // first see if it is within it's own {} - if (stindxbrace -1) - { - rightbrace = retvaltmpl.IndexOf('}',stindxbrace); - if ((left>leftbrace&&leftleftbrace&&right -1) - xmldoc.writeImage(ind.InnerText.Substring(indx+1,ind.InnerText.Length-indx-1)); - else - xmldoc.writeImage(ind.InnerText); - // now do height & width?? - ind = this.SelectSingleNode("*/Image_Height"); - if (ind != null) - { - short iht = (short) System.Convert.ToInt16(ind.InnerText); - xmldoc.writeInt(iht); - } - else - xmldoc.writeInt(0); - ind = this.SelectSingleNode("*/Image_Width"); - if (ind != null) - { - short iht = (short) System.Convert.ToInt16(ind.InnerText); - xmldoc.writeInt(iht); - } - else - xmldoc.writeInt(0); - } - } - else - { - if (doingplot) - xmldoc.writePlot(end.InnerText); - else - xmldoc.writeTextValue(end.InnerText); - - } - } - xmldoc.popHeader(); - } - - } - xmldoc.writeRROEnd(); - } - return true; - } - - // ShowGroup processes the input group node for the complete report by - // using ShowGroupDetail to output data for the group and ShowRRO to - // output data for the RO - private bool ShowGroup(RODB myrodb, ArrayList headers, VlnStatusMessage showStat) - { - XmlNode chldnode; - - if (this.ParentNode.Name != "RO_Root") - { - /* Bug fix: B2001-001 - * Compete RO Report for All ROs was printing an extra - * page showing just a prameter field. This information - * was not always related to the RO Group being printed at - * this time. Turns out that we don't need to call the - * ShowGroupDetail() at this point, only need to save - * header informat. -jsj 6/8/2005 - * - ShowGroupDetail(myrodb); - */ - headers.Add(this.GetAttribute("MenuTitle")); - } - else - { - int bracket = this.InnerXml.IndexOf("<",0); - if (bracket>-1) - headers.Add(this.InnerXml.Substring(0,bracket)); - else - headers.Add(this.InnerXml); - } - string haskids, kidsloaded; - haskids = this.GetAttribute("HasChild"); - kidsloaded = this.GetAttribute("ChildLoaded"); - if (haskids == "True" && kidsloaded == "False" ) - { - myrodb.RODB_GetChildData(this,true); - this.SetAttribute("ChildLoaded", "True"); - } - - // go through all of the children for this node and put them out. - chldnode = (XmlNode) this.FirstChild; - - while (chldnode != null) - { - if (chldnode is VlnXmlElement) - { - VlnXmlElement elem = (VlnXmlElement) chldnode; -// showStat.StatusMessage = elem.InnerText; - - // if it's a group, recurse through it. - if (chldnode.Name == "vlnGroup") - { - elem.ShowGroup(myrodb, headers, showStat); - } - // do RO's too. - else - { - int levelcnt = chldnode.ChildNodes.Count; - bool isParDisData = chldnode.Name == "Parameter__Display__Data"; - string TheMenuTitle = elem.GetAttribute("MenuTitle"); - showStat.StatusMessage = TheMenuTitle; - if (!isParDisData && ((levelcnt > 1) || (levelcnt==1 && !TheMenuTitle.Equals("")))) - elem.ShowRRO(myrodb, headers); - } - } - chldnode = chldnode.NextSibling; - } - // remove this group from the headers. - headers.RemoveAt(headers.Count-1); - return true; - } - - // put this element, and if a group all it's subelements out to the 'print.tmp' - // file for complete reports. - public bool Show(RODB myrodb, ArrayList headers) - { - bool success; - VlnStatusMessage showStat = new VlnStatusMessage("Reading ROs"); - VlnXmlDocument xmldoc = (VlnXmlDocument) this.OwnerDocument; - success = xmldoc.OpenTemp(); - if (success==false) return false; - - // if this is the top node, i.e. with name "RO_Root", it is a complete report - // for all Ros, work from the root. - if (this.Name == "RO_Root") - { - // show each 'table' group under the top. - VlnXmlElement group = (VlnXmlElement) this.FirstChild; - VlnXmlElement tmpgroup; - while (group != null) - { - // Now get subgroups for each group. - myrodb.RODB_GetChildData(group,true); - group.ShowGroup(myrodb, headers, showStat); - tmpgroup = group; - group.RemoveAll(); - group = (VlnXmlElement) tmpgroup.NextSibling; - } - - } - // this is a particular RO or group of ROs. - else - { - if (this.Name == "vlnGroup") - ShowGroup(myrodb, headers, showStat); - else - ShowRRO(myrodb, headers); - } - showStat.Dispose(); - xmldoc.CloseTemp(); - return true; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/userpass.cs b/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/userpass.cs deleted file mode 100644 index 4974cd2f..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/userpass.cs +++ /dev/null @@ -1,188 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - - -namespace RODBInterface -{ - /// - /// Summary description for userpass. - /// - public class userpass : System.Windows.Forms.Form - { - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private System.Windows.Forms.Label uidLbl; - private System.Windows.Forms.Label pwLbl; - private System.Windows.Forms.Button OKBtn; - internal System.Windows.Forms.Button CancelBtn; - private System.Windows.Forms.TextBox uidTxtBx; - private System.Windows.Forms.TextBox pwTxtBx; - - //public UidPw UIDPW - //{ - // get - // { - // UidPw up = new UidPw(); - // up.Password = this.pwTxtBx.Text; - // up.UserId = this.uidTxtBx.Text; - // return up; - // } - //} - - public string uname=null; - public string pword=null; - public userpass() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // - // TODO: Add any constructor code after InitializeComponent call - // - } - - public userpass(string PassedInName) - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // - // TODO: Add any constructor code after InitializeComponent call - // - uidTxtBx.Text = PassedInName; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.uidTxtBx = new System.Windows.Forms.TextBox(); - this.uidLbl = new System.Windows.Forms.Label(); - this.pwLbl = new System.Windows.Forms.Label(); - this.pwTxtBx = new System.Windows.Forms.TextBox(); - this.OKBtn = new System.Windows.Forms.Button(); - this.CancelBtn = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // uidTxtBx - // - this.uidTxtBx.Location = new System.Drawing.Point(8, 40); - this.uidTxtBx.Name = "uidTxtBx"; - this.uidTxtBx.Size = new System.Drawing.Size(134, 22); - this.uidTxtBx.TabIndex = 0; - this.uidTxtBx.Text = ""; - this.uidTxtBx.KeyUp += new System.Windows.Forms.KeyEventHandler(this.uidTxtBx_KeyUp); - // - // uidLbl - // - this.uidLbl.Location = new System.Drawing.Point(16, 16); - this.uidLbl.Name = "uidLbl"; - this.uidLbl.Size = new System.Drawing.Size(115, 18); - this.uidLbl.TabIndex = 1; - this.uidLbl.Text = "User ID"; - // - // pwLbl - // - this.pwLbl.Location = new System.Drawing.Point(184, 16); - this.pwLbl.Name = "pwLbl"; - this.pwLbl.Size = new System.Drawing.Size(86, 18); - this.pwLbl.TabIndex = 2; - this.pwLbl.Text = "Password"; - // - // pwTxtBx - // - this.pwTxtBx.AcceptsTab = true; - this.pwTxtBx.Location = new System.Drawing.Point(176, 40); - this.pwTxtBx.Name = "pwTxtBx"; - this.pwTxtBx.PasswordChar = '*'; - this.pwTxtBx.Size = new System.Drawing.Size(125, 22); - this.pwTxtBx.TabIndex = 3; - this.pwTxtBx.Text = ""; - this.pwTxtBx.KeyUp += new System.Windows.Forms.KeyEventHandler(this.pwTxtBx_KeyUp); - // - // OKBtn - // - this.OKBtn.DialogResult = System.Windows.Forms.DialogResult.OK; - this.OKBtn.Location = new System.Drawing.Point(336, 16); - this.OKBtn.Name = "OKBtn"; - this.OKBtn.Size = new System.Drawing.Size(96, 28); - this.OKBtn.TabIndex = 4; - this.OKBtn.Text = "OK"; - this.OKBtn.Click += new System.EventHandler(this.OKBtn_Click); - // - // CancelBtn - // - this.CancelBtn.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.CancelBtn.Location = new System.Drawing.Point(336, 56); - this.CancelBtn.Name = "CancelBtn"; - this.CancelBtn.Size = new System.Drawing.Size(96, 28); - this.CancelBtn.TabIndex = 5; - this.CancelBtn.Text = "Cancel"; - // - // userpass - // - this.AccessibleRole = System.Windows.Forms.AccessibleRole.None; - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(448, 96); - this.ControlBox = false; - this.Controls.Add(this.CancelBtn); - this.Controls.Add(this.OKBtn); - this.Controls.Add(this.pwTxtBx); - this.Controls.Add(this.uidTxtBx); - this.Controls.Add(this.pwLbl); - this.Controls.Add(this.uidLbl); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "userpass"; - this.Text = " Login"; - this.ResumeLayout(false); - - } - #endregion - - private void OKBtn_Click(object sender, System.EventArgs e) - { - uname = this.uidTxtBx.Text; - pword = this.pwTxtBx.Text; - } - - private void pwTxtBx_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) - { - // if key pressed was a return - treat as ok button. - if (e.KeyCode == Keys.Return) this.OKBtn.PerformClick(); - } - - private void uidTxtBx_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) - { - // if key pressed was a return - treat as ok button. - if (e.KeyCode == Keys.Return) this.OKBtn.PerformClick(); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/userpass.resx b/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/userpass.resx deleted file mode 100644 index efce1a59..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/RODBInterface/userpass.resx +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Assembly - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - userpass - - - Private - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ROFST/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ROFST/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ROFST/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ROFST/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ROFST/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ROFST/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ROFST/ROFST.cs b/PROMS/ReferencedObjectsOld/LibSource/ROFST/ROFST.cs deleted file mode 100644 index 09af50ab..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ROFST/ROFST.cs +++ /dev/null @@ -1,3073 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ROFST.cs $ $Revision: 13 $ - * $Author: Kathy $ $Date: 8/31/05 11:32a $ - * - * $History: ROFST.cs $ - * - * ***************** Version 13 ***************** - * User: Kathy Date: 8/31/05 Time: 11:32a - * Updated in $/LibSource/ROFST - * B2005-032: new groups crashed when writing to ro.fst during approve - * sel. - * - * ***************** Version 12 ***************** - * User: Kathy Date: 8/16/05 Time: 2:52p - * Updated in $/LibSource/ROFST - * B2005-030: crash when writing ro.fst for new ro - * - * ***************** Version 11 ***************** - * User: Kathy Date: 6/21/05 Time: 1:36p - * Updated in $/LibSource/ROFST - * FindModROs for approve selected, crash on xyplot with missing end ">" - * - * ***************** Version 10 ***************** - * User: Jsj Date: 6/02/05 Time: 11:31a - * Updated in $/LibSource/ROFST - * fix for approving with conditional ROs - * - * ***************** Version 9 ***************** - * User: Jsj Date: 5/20/05 Time: 9:21a - * Updated in $/LibSource/ROFST - * fixed getro for cases when using unit specific info to process the RO - * return value. - * - * ***************** Version 8 ***************** - * User: Jsj Date: 5/17/05 Time: 11:48a - * Updated in $/LibSource/ROFST - * fixed approve graphic bug, added default graphic extension as part of - * ROFST class initialization, code cleanup - * - * ***************** Version 7 ***************** - * User: Kathy Date: 5/11/05 Time: 9:26a - * Updated in $/LibSource/ROFST - * add close method - * - * ***************** Version 6 ***************** - * User: Jsj Date: 4/07/05 Time: 11:15a - * Updated in $/LibSource/ROFST - * fixes - * - * ***************** Version 5 ***************** - * User: Jsj Date: 3/31/05 Time: 9:16a - * Updated in $/LibSource/ROFST - * - * ***************** Version 4 ***************** - * User: Jsj Date: 3/28/05 Time: 12:18p - * Updated in $/LibSource/ROFST - * - * ***************** Version 3 ***************** - * User: Jsj Date: 3/22/05 Time: 9:52a - * Updated in $/LibSource/ROFST - * March 22 2005 update for merge - * - * ***************** Version 2 ***************** - * User: Jsj Date: 3/14/05 Time: 1:36p - * Updated in $/LibSource/ROFST - * update - * - * ***************** Version 1 ***************** - * User: Jsj Date: 3/10/05 Time: 3:53p - * Created in $/LibSource/ROFST - * - * ***************** Version 1 ***************** - * User: Jsj Date: 3/10/05 Time: 3:49p - * Created in $/LibSource/ROFST/ROFST - * - *********************************************************************************************/ -using System; -using System.IO; -using System.Windows.Forms; -using System.Text; -using System.Collections; -using VlnStatus; -using Utils; - -/* - * This namespace is used in both VE-PROMS and the RO Editor programs. - */ -namespace ROFST_FILE -{ - /* - * Globally used functions amoung a few of the classes in this namespace - */ - public class ROProcessTools - { - // For now, have hooks to set and get the current - // procedure number along with the Maxium Procedure - // Number length. The 16-bit code used globals - // jsj - 6/2/2005 - - private static string PNumber = " "; // default to blank - private static int mxPrcLen = 30; // default to 30 chars - - static ROProcessTools() - { - } - - public static string ProcedureNumber - { - set { PNumber = value.ToString();} - get { return PNumber; } - } - - public static int MaxProcNumLen - { - set { mxPrcLen = (int)value;} - get { return mxPrcLen;} - } - - public static string UnitSpecific(string str, int len, int trm, int maxPrcNumLen) - { - // This routine retrieves the procedure number format from the - // current directory and uses it to adjust the procedure number - // in the specified string - string retvalu=""; - string asis="#"; - string pnum; - if( str == null || str.Length == 0 ) return null; - /* - * Bug fix: B2005-017 3/2/2005 - * Need to use the largest procedure number length that's in the - * SET.DFF file. "LargestNumber" is the largest length after the - * procedure number is replaced via the SET.INI file "replace" list. - * - if(len==0)len=LargestNumber; - */ - if(len==0)len=maxPrcNumLen; //LargestRawSetNumber - string mstr; - PrivateProfile proc_ini = new PrivateProfile("proc.ini"); - mstr = proc_ini.Attr("unit", "procedure number"); - if (mstr == null) mstr = asis; - pnum=mstr; - if(pnum.Equals(asis)) - { - retvalu=str; - } - else if (!pnum.Equals("") && pnum[0] == '!') - { - if (File.Exists("set.ini")) - { - string p = str; - string q, tonum; - StringBuilder rbldr = new StringBuilder(); - int newl, dw, cnt=0, lstr; - - p = p.TrimStart(" ".ToCharArray()); - lstr = p.Length; - if (len > lstr) len = lstr; - mstr = p.Substring(0,len); - mstr = mstr.TrimEnd(" \t\r\n".ToCharArray()); - /* debug - string debugstr = "|" + mstr + "|"; - */ - - PrivateProfile set_ini = new PrivateProfile("set.ini"); - - tonum = set_ini.Attr("replace", mstr); - if (tonum == null || tonum.Equals("")) tonum = mstr; - newl = tonum.Length; - dw = newl - (lstr); - - q = str; p = tonum; - int strptr=0; - for (strptr=0; str[strptr] == ' '; strptr++) - rbldr.Append(" ");//initial spaces - int pptr=0; - while (cnt < len) - { - if (tonum!=null && pptr < tonum.Length) - rbldr.Append(tonum[pptr++]); - else if (trm == 1) break; - else if (cnt < lstr) rbldr.Append(" "); - else break; - cnt++; - } - if (trm==0) - { - strptr+=len; - while (str!=null && strptr < str.Length) - rbldr.Append(str[strptr++]); - } - retvalu = rbldr.ToString(); - } - else - { - retvalu=str; - } - } - else - { - StringBuilder rbldr = new StringBuilder(); - // create pointers to use to transfer info - int pnumPtr = 0, strPtr=0, endStrPtr = str.Length-1; - string pad = ""; - // determine if the procedure number should be padded instead - if(str[0]==' ')pad=" "; - // copy from the procedure number definition to the pound symbol - if (!pnum.Equals("")) - { - while(pnumPtr < pnum.Length && pnum[pnumPtr] != '#') - { - rbldr.Append(((!pad.Equals(""))? pad : pnum[pnumPtr].ToString())); - pnumPtr++; - } - // skip the pound sign - if(pnumPtr < pnum.Length && pnum[pnumPtr]!=0)pnumPtr++; - } - // assuming that the procedure number occurs at the beginning of - // str, check to see where it ends - if(str.Length > len)endStrPtr=len-1; - // find the end of the procedure number - while(endStrPtr > strPtr && str[endStrPtr]==' ')endStrPtr--; - // copy the procedure number - while(strPtr <= endStrPtr)rbldr.Append(str[strPtr++]); - // copy the rest of the format - while(pnumPtr < pnum.Length) - { - rbldr.Append(((!pad.Equals(""))? pad : pnum[pnumPtr].ToString())); - pnumPtr++; - } - // copy the rest of the given string - while(strPtr < str.Length)rbldr.Append(str[strPtr++]); - retvalu = rbldr.ToString(); - } - return retvalu; - } - - public static int matchingBrace(string str) - { - int strptr = 0; - int level=1; - while(level > 0) - { - strptr++; - switch(str[strptr]) - { - case '{': - level++; - break; - case '}': - level--; - break; - } - } - return strptr; - } - - public static int nextDelimiter(string delim,string str,int l) - { - int nxtdelim = -1; - int strptr = 0; - while(l-- > 0 && (nxtdelim == -1)) - { - if (delim.IndexOf(str[strptr])>-1) - nxtdelim = strptr; - strptr++; - } - return nxtdelim; - } - - public static string getProfile(string grp, string nam) - { - return getProfile(grp,nam,0); - } - - public static string getProfile(string grp, string nam, int flag) - { - string buff=null; - if( grp==null ) return null; - PrivateProfile proc_ini = new PrivateProfile("proc.ini"); - buff = proc_ini.Attr(grp,nam); - if (buff == null) - buff = ""; - if(buff.Equals("")) - { - if (flag == 0) - buff = "<" + grp + "-" + nam + ">"; - else - return null; - } - return buff; - } - - public static string evaluate(string str,int len) - { - string retval=null; - string swhir = "PSU"; /* order inwhich to check */ - string pn; - if(str[1]=='-') - { - int swptr = swhir.IndexOf((str.ToUpper())[0]); - byte swchar = 0; - if( swptr > -1 ) swchar = (byte)swhir[swptr]; - - byte sav=(byte)str[len]; - str = str.Substring(0,len); - while ((swptr > -1) && (swhir[swptr] != 0) && retval == null) - { - if (swchar == 0) swchar = (byte)str[0]; - switch((char)swchar) - { - case 'U': - retval=getProfile("Unit",str.Substring(2),swhir[swptr]); - break; - case 'S': - retval=getProfile("Procedure Set",str.Substring(2),swhir[swptr]); - break; - case 'P': - pn = UnitSpecific(PNumber, 0, 1, mxPrcLen); - retval=getProfile(pn,str.Substring(2),swhir[swptr]); - break; - } - if (retval == null) - swchar= (byte)swhir[++swptr]; - } - StringBuilder sb1 = new StringBuilder(str); - sb1.Insert(len,sav); - str = sb1.ToString(); - } - else if(len==1 && (str.ToUpper())[0]=='U') - { - retval=getProfile("Unit","Number"); - } - else if(len==2 && str.ToUpper().StartsWith("ID")) - { - retval=getProfile("Unit","ID"); - } - if(retval == null) - { - retval=str.Substring(0,len+2>str.Length?str.Length:len+2); - } - return retval; - } - - } - - - /// - /// Summary description for ROFSTHeader. - /// - - public class FST_FileHeader - { - public int hSize; // size of header structure (record) - public short hYear;// year this header was designed (1993) - public byte hMonth;// month this header was designed (10) - public byte hDay;// day this header was designed (25) - public short hcYear;// FST file creation year - public byte hcMonth;// FST file creation month - public byte hcDay;// FST file creation day - public byte hcHour;// FST file creation hour - public byte hcMin;// FST file creation minute - public byte hcSec;// FST file creation seconds - public byte hcHund;// FST file creation hundredth seconds - public uint dboffset;// end of RO data, start of database list - - - // Constructors - // default constructor creates with zero'd out values - public FST_FileHeader() - { - hSize = 0; - hYear = 0; - hMonth = 0; - hDay = 0; - hcYear = 0; - hcMonth = 0; - hcDay = 0; - hcHour = 0; - hcMin = 0; - hcSec = 0; - hcHund = 0; - dboffset = 0; - } - - - // Constructor that initializes with pass in values - FST_FileHeader(int Size, short Year, byte Month, byte Day, short cYear, byte cMonth, - byte cDay, byte cHour, byte cMin, byte cSec, byte cHund, uint offset) - { - hSize = Size; - hYear = Year; - hMonth = Month; - hDay = Day; - hcYear = cYear; - hcMonth = cMonth; - hcDay = cDay; - hcHour = cHour; - hcMin = cMin; - hcSec = cSec; - hcHund = cHund; - dboffset = offset; - } - - - public void Read (BinaryReader br) - { - hSize = br.ReadInt32(); - hYear = br.ReadInt16(); - hMonth = br.ReadByte(); - hDay = br.ReadByte(); - hcYear = br.ReadInt16(); - hcMonth = br.ReadByte(); - hcDay = br.ReadByte(); - hcHour = br.ReadByte(); - hcMin = br.ReadByte(); - hcSec = br.ReadByte(); -// byte tbyte = br.ReadByte(); -// hcHund = (sbyte)tbyte; - hcHund = br.ReadByte(); - dboffset = br.ReadUInt32(); - - // return new FST_FileHeader(fSize,fYear,fMonth,fDay, - // fcYear,fcMonth,fcDay,fcHour,fcMin,fcSec,fcHund,fdboffset); - } - - - public void Write (BinaryWriter bw) - { - bw.Write(hSize); - bw.Write(hYear); - bw.Write(hMonth); - bw.Write(hDay); - bw.Write(hcYear); - bw.Write(hcMonth); - bw.Write(hcDay); - bw.Write(hcHour); - bw.Write(hcMin); - bw.Write(hcSec); - bw.Write(hcHund); - bw.Write(dboffset); - } - - - public int GetStructSize() - { - int rtval = 0; - - // You can only use sizeof() in unsafe compiles - // so we'll do it by hand... - // each number is the number of bytes - - rtval += 4; //sizeof(hSize); - rtval += 2; //sizeof(hYear); - rtval += 1; //sizeof(hMonth); - rtval += 1; //sizeof(hDay); - rtval += 2; //sizeof(hcYear); - rtval += 1; //sizeof(hcMonth); - rtval += 1; //sizeof(hcDay); - rtval += 1; //sizeof(hcHour); - rtval += 1; //sizeof(hcMin); - rtval += 1; //sizeof(hcSec); - rtval += 1; //sizeof(hcHund); - rtval += 4; //sizeof(dboffset); - - return rtval; - } - - - public void SetHeader(uint offset) - { - hSize = GetStructSize(); - hYear = 1993; - hMonth = 10; - hDay = 25; - DateTime dt = DateTime.Now; - hcYear = (short)dt.Year; - hcMonth = (byte)dt.Month; - hcDay = (byte)dt.Day; - hcHour = (byte)dt.Hour; - hcMin = (byte)dt.Minute; - hcSec = (byte)dt.Second; - hcHund = (byte)dt.Millisecond; - dboffset = offset; - } - } - - - public class ROFST_DbInfo - { - public ushort dbiID; // Number part of table name (RO000002 => 02) - public ushort dbiType; // database type (Setpoint,Graphics,User defined) - public ushort dbiAW; // length of widest AccPageID - public uint dbiGL; // FST file position of this group - public uint dbiIL; // FST file position of list of ROIDs - public uint dbiAL; // FST file position of list of AccPageIDs - public uint dbiEND; // FST file position of the end of this group - // !!! make sure to convert strings to char arrays when writing - public string dbiTitle; // database title - public string dbiAP; // AccPageID Prefix (ex. SP- ) - - - // Constructors - // default constructor creates with zero'd out values - public ROFST_DbInfo() - { - dbiID = 0; - dbiType = 0; - dbiAW = 0; - dbiGL = 0; - dbiIL = 0; - dbiAL = 0; - dbiEND = 0; - dbiTitle = ""; - dbiAP = ""; - } - - - // Constructor that initializes with pass in values - ROFST_DbInfo(ushort ID, ushort Type, ushort AW, uint GL, uint IL, uint AL, uint END, - string Title, string dbiAP) - { - dbiID = ID; - dbiType = Type; - dbiAW = AW; - dbiGL = GL; - dbiIL = IL; - dbiAL = AL; - dbiEND = END; - dbiTitle = Title; - dbiAP = dbiAP; - } - - - public void WriteUntAndShort(BinaryWriter bw) - { - bw.Write(dbiID); - bw.Write(dbiType); - bw.Write(dbiAW); - bw.Write(dbiGL); - bw.Write(dbiIL); - bw.Write(dbiAL); - bw.Write(dbiEND); - } - - - void WriteString(BinaryWriter bw, string str) - { - byte nullbyte = 0; - byte []wrBytes = new byte[str.Length + 1]; - int i; - for(i =0; i < str.Length; i++) - { -// byte WrByte; -// WrByte = (byte)str[i]; -// bw.Write(WrByte); - wrBytes[i] = (byte)str[i]; - } - wrBytes[i] = nullbyte; - bw.Write(wrBytes); -// bw.Write(nullbyte); - } - - - public void WriteStrings(BinaryWriter bw) - { - WriteString(bw,dbiTitle); - WriteString(bw,dbiAP); - } - - - public uint GetStructSize() - { - uint rtval = 0; - - // You can only use sizeof() in unsafe compiles - // so we'll do it by hand... - // each number is the number of bytes - - rtval += 2; //sizeof(dbiID); - rtval += 2; //sizeof(dbiType); - rtval += 2; //sizeof(dbiAW); - rtval += 4; //sizeof(dbiGL); - rtval += 4; //sizeof(dbiIL); - rtval += 4; //sizeof(dbiAL); - rtval += 4; //sizeof(dbiEND); - rtval += 4; //sizeof(uint); // to simulate the (char *) in the old code (16 datatypes) - rtval += 4; //sizeof(uint); // to simulate the (char *) in the old code (16 datatypes) - - return rtval; - } - - - public void Load(BinaryReader br) - { - ReadValues(br); - } - - // public void ReadStrings(BinaryReader br) - // { - // dbiTitle = ROFST_File.LoadString(br); - // dbiAP = ROFST_File.LoadString(br); - // } - - - public void ReadValues(BinaryReader br) - { - dbiID = br.ReadUInt16(); - dbiType = br.ReadUInt16(); - dbiAW = br.ReadUInt16(); - dbiGL = br.ReadUInt32(); - dbiIL = br.ReadUInt32(); - dbiAL = br.ReadUInt32(); - dbiEND = br.ReadUInt32(); - uint tmp = br.ReadUInt32(); - uint tmp1 = br.ReadUInt32(); - } - } - - - - // structure to hold information to add a new group - public struct AddGroup - { - public uint grp_id; - public uint grp_parid; - public string grp_name; - public short grp_type; - public short grp_stat; - public uint grp_offset; - public int grp_pargrpidx; - - - // These functions are needed to update values when - // referenced from the ArrayLists (allNewGrps) -// public void OR_grp_type(short val) -// { -// ushort gtype = (ushort)grp_type; -// gtype |= (ushort)val; -// grp_type = (short)gtype; -// } -// -// -// public void SET_grp_parid(uint val) -// { -// grp_parid = val; -// } -// -// -// public void SET_grp_pargrpidx(int val) -// { -// grp_pargrpidx = val; -// } -// -// -// public void SET_grp_stat(short val) -// { -// grp_stat = val; -// } -// -// -// public void SET_grp_offset(uint val) -// { -// grp_offset = val; -// } - } - - - // structure to hold information to add a new RO - public struct AddRO - { - public uint ro_id; - public uint ro_parid; - public string ro_num; - public string ro_desc; - public string ro_val; - public short ro_type; - public short ro_stat; - public int ro_offset; - public int ro_pargrpidx; // index into allNewGrps - - - // These functions are needed to update values when - // referenced from the ArrayLists (allNewRos) -// public void SET_ro_pargrpidx(int val) -// { -// ro_pargrpidx = val; -// } -// -// -// public void SET_ro_parid(uint val) -// { -// ro_parid = val; -// } -// -// -// public void SET_ro_stat(short val) -// { -// ro_stat = val; -// } -// -// -// public void SET_ro_offset(int val) -// { -// ro_offset = val; -// } - } - - - // structure to hold RO difference information - public struct DiffRO - { - public uint id; - public short type; - public string desc; - public string val; - public uint oldoff; // index into old RO.FST file (approved) - } - - - // RO update info arrays. - // one of these structures is created from each RO database - // (Setpoints, Graphics, User Defined, etc.) - public struct dbinew - { - public ArrayList aryAddedRO; - public ArrayList aryAddedGroup; - public ArrayList aryAddedDiff; - } - - - // structure to store file positions in the RO.FST file - public struct locinc - { - public uint maxloc; - public int inc; - } - - - /* - ** Structure of the graphics' values. - ** LocalGrfStats ( in ROFST_File class) is used to hold the current - ** values "locally" in memory - */ - public struct GrfStats - { - public string PixFileName; - public int PixFileTime; - public short PixFileHeight; - public short PixFileWidth; - - public void Clear() - { - PixFileName=""; - PixFileTime = 0; - PixFileHeight = 0; - PixFileWidth = 0; - } - - public void Load(string instr) - { - short DeciPerRow = 120; - short DeciPerCol = 60; - StringBuilder sb = new StringBuilder(); - int i=0; - bool nl = false; - /* - sscanf(retval,"%s\n%08lx\n%04x\n%04x",LocalGrfStats.PixFileName, - &LocalGrfStats.PixFileTime,&LocalGrfStats.PixFileHeight, - &LocalGrfStats.PixFileWidth); - LocalGrfStats.PixFileHeight *= DeciPerRow; - LocalGrfStats.PixFileWidth *= DeciPerCol; - */ - while (!nl && (instr[i]!= 0)) - { - if (instr[i]=='\n') - nl=true; - else - sb.Append(instr[i]); - i++; - } - if (nl) - { - PixFileName = sb.ToString(); - } - - nl = false; - sb.Remove(0,sb.Length); - while (!nl && (instr[i]!=0)) - { - if (instr[i]=='\n') - nl=true; - else - sb.Append(instr[i]); - i++; - } - PixFileTime = Convert.ToInt32(sb.ToString(),16); - - nl = false; - sb.Remove(0,sb.Length); - while (!nl && (instr[i]!=0)) - { - if (instr[i]=='\n') - nl=true; - else - sb.Append(instr[i]); - i++; - } - PixFileHeight = Convert.ToInt16(sb.ToString(),16); - PixFileHeight *= DeciPerRow; - - sb.Remove(0,sb.Length); - while ((i < instr.Length) && (instr[i]!=0)) - { - sb.Append(instr[i]); - i++; - } - PixFileWidth = Convert.ToInt16(sb.ToString(),16); - PixFileWidth *= DeciPerCol; - } - } - - - public class ROFST_File - { - public enum ROTypes - { - None=0, Text=1, Table=2, Plot=4, Figure=8 - }; - - private string [] UnitVariables = - { - "All of the following",// - "Number", // 1L; - 1, 2 etc. - "Other Number", // 2L; - 2, 1 etc. - "Text", // 3L; - One, Two etc. or Unit One, Unit Two - "Other Text", // 4L; - Two, One etc. or Unit Two, Unit One - "ID", // 5L; - 1Bw, 2Bw etc. - "Other ID", // 6L; - 2Bw, 1Bw etc. - "Name", // 7L; - Braidwood Unit 1 - "Other Name" // 8L; - Braidwood Unit 2 - }; - private uint NumUnitVariables =9; - - - private ArrayList [] allNewRos; // new ROs - private ArrayList [] allDifferences; // changed ROs - private ArrayList [] allNewGrps; // new Groups - private ArrayList allLocations; // positions in RO.FST - - - private int curTblIdx=0; // index into allxxxxx arraylists - private uint NewID = 0xFFFF0000; - private uint whereisgl = 0; - private ushort maxaw=0; - private ushort maxtype=0; - private int lastLocationIdx = 0; - - public BinaryReader brROFst; // file handle into RO.FST - public ArrayList DatabasesInfo; // Holds the current RO.FST data - public ArrayList dbiNewInfo; // will hold new RO.FST data - - public short numDatabases; // number of databases in RO.FST - public FST_FileHeader Header; - // public UserRunTime usrRunTime; - public string DirPath; - - public string DefaultGraphicFileExt = ""; - - // RO Graphics information - GrfStats LocalGrfStats; - - // constructor loads ro.fst databases - // public ROFST(string path, UserRunTime urt) - public ROFST_File(string path) - { - try - { - brROFst = new BinaryReader(File.Open(path,System.IO.FileMode.Open,System.IO.FileAccess.ReadWrite,FileShare.ReadWrite)); - } - catch (Exception e) - { - MessageBox.Show("Open "+path+"\n\n" + e.Message,"RO.FST Error"); - return; - } - DirPath = path; // path of RO.FST file - - // usrRunTime = urt; - - // Read the RO.FST header information - Header = new FST_FileHeader(); - Header.Read(brROFst); - brROFst.BaseStream.Seek(Header.dboffset,SeekOrigin.Begin); - uint howbig = brROFst.ReadUInt32(); - short howmany = brROFst.ReadInt16(); - - numDatabases = howmany; - // dbcount = numDatabases; - DatabasesInfo = new ArrayList(); - dbiNewInfo = new ArrayList(); - - // Load the database into the arrays - for (int i=0;i topid)return 0; // Beyond range - while (topr > botr+1) - { - guessr=botr+((topr-botr)*(id-botid))/(topid-botid); - - if (guessr==botr) guessr=botr+1; - else if (guessr==topr) guessr=topr-1; - - guess=start+guessr*siz; - brROFst.BaseStream.Seek(guess,SeekOrigin.Begin); - //getID(guess,&retval) - guessid=brROFst.ReadUInt32(); - - if(guessid==id) - { - break; // found, break out of while loop - } - else if(guessid < id) - { - botr=guessr; - botid=guessid; - } - else - { - topr=guessr; - topid=guessid; - } - } - if(guessid==id)retval=guess; // Any other record - return retval; - } - - private uint _getID(uint off,ref uint nxtoff) - { - uint retval = 0; - if (off > 0) - { - brROFst.BaseStream.Seek(off,SeekOrigin.Begin); - retval = brROFst.ReadUInt32(); - nxtoff = brROFst.ReadUInt32(); - } - return retval; - } - - // Find the location of an RO value in the RO.FST file - private uint toolsFindRO(uint id, uint start, uint end) - { - uint retval=0; - uint topid=0,botid=0,recs=0,siz=0; - siz=8; // c code:sizeof(topid)*2; - recs=(end-start)/siz; //c code: (end-start)>>3 - uint guessr,guess=0,guessid=0; - uint botr=0,topr=recs; - uint topoff =0, botoff=0; - //getID(end-siz,&topoff); - topid=_getID(end-siz,ref topoff); - if(id==topid)return topoff; // Last record - - //getID(start,&botoff); - botid=_getID(start,ref botoff); - if(id==botid)return botoff; // First record - - if(id < botid || id > topid)return 0; // Beyond range - while (topr > botr+1) - { - guessr=botr+((topr-botr)/2); - - if (guessr==botr) guessr++; - else if (guessr==topr) guessr--; - - //getID(guess,&retval) - guessid=_getID(start+guessr*siz,ref retval); - - if(guessid==id) - { - break; // found, break out of while loop - } - else if(guessid < id) - { - botr=guessr; - botid=guessid; - } - else - { - topr=guessr; - topid=guessid; - } - } - if (guessid == id) return retval; - return 0; - } - - - // return the type of the given RO - private ROTypes FindROType(uint rec, uint start, uint end) - { - short retval=0; - byte[] tbyte= new byte[100]; - uint fnd; - if((fnd=FindRO(rec,start,end))>0) - { - uint offset=brROFst.ReadUInt32(); - brROFst.BaseStream.Seek((long)offset,SeekOrigin.Begin); - uint guessid=brROFst.ReadUInt32(); - uint parid=brROFst.ReadUInt32(); - short count=brROFst.ReadInt16(); - retval=brROFst.ReadInt16(); // RO Type - } - return (ROTypes)retval; - } - - - // Get the RO Type from the ROID - public ROTypes GetROType(string ROID) - { - // break up ROID into table and record - ushort tbl = System.Convert.ToUInt16(ROID.Substring(0,4),16); - uint rec = System.Convert.ToUInt32(ROID.Substring(4,8),16); - ushort opt=0; - if (ROID.Length>12) opt = System.Convert.ToUInt16(ROID.Substring(8,ROID.Length-12),16); - if (tbl==0xFFFF) - return ROTypes.None; // 0xFFFF is ro from proc.ini file - int num=0; - for (int i=0; i < numDatabases && ((ROFST_DbInfo)DatabasesInfo[i]).dbiID!=tbl;i++) num++; - if (num < numDatabases) - { - return FindROType(rec,((ROFST_DbInfo)DatabasesInfo[num]).dbiIL,((ROFST_DbInfo)DatabasesInfo[num]).dbiAL); - } - return ROTypes.None; - } - - - private string FindROText(uint id, uint start,uint end) - { - string retval=null; - uint fnd; - if((fnd=FindRO(id,start,end))>0) - { - uint offset=brROFst.ReadUInt32(); - brROFst.BaseStream.Seek((long)offset,SeekOrigin.Begin); - uint guessid=brROFst.ReadUInt32(); - uint parid=brROFst.ReadUInt32(); - short count=brROFst.ReadInt16(); - ushort typ=brROFst.ReadUInt16(); - if (count<0)retval=GetAsciiString(brROFst); - } - return retval; - } - - - // return the RO defined in the PROC.INI file - // (master / slave logic) - private string roUnitValue(uint rec) - { - string buff=""; - PrivateProfile proc_ini = new PrivateProfile("proc.ini"); - for(int i=0; i < NumUnitVariables; i++) - { - if((i+1) == rec) - { - buff = proc_ini.Attr("Unit",UnitVariables[i+1]); - if (buff == null || buff.Equals("")) - buff = "{"+ UnitVariables[i+1] + "}"; - break; // break out of for loop - } - } - return buff; - } - - - // - // this function will take the ro text value and see if - // a macro has been used. If so it will perform the macro - // operation on the substring in the text value - // - // right now the only macro is @HSP(), where every space between - // the "(" and ")" will be replaced with a hardspace - // - public string processMacros(string rostring) - { - StringBuilder bldstr = new StringBuilder(); - int cptr = -1; - int stptr = 0; - if( rostring == null ) return rostring; - while( (cptr = rostring.IndexOf("@HSP(",stptr)) != -1 ) - { - bldstr.Append(rostring.Substring(0,cptr-stptr)); - int cptr2 = rostring.IndexOf(")",cptr); - if (cptr2 != -1) - { - int numspaces = cptr2 - cptr - 5; - for (int i=0; i< numspaces; i++) - bldstr.Append("\xFF"); - stptr = cptr2 + 1; - } - else - { - bldstr.Append(rostring.Substring(cptr,5)); - stptr += 5; - } - } - if (stptr < rostring.Length) - bldstr.Append(rostring.Substring(stptr)); - return bldstr.ToString(); - } - - - - private string processROString(string rostr, short menuitem) - { - string newstr=""; - strList2 strlst2 = new strList2(rostr); - strList strlst = new strList(strlst2.toText()); - newstr = strlst.toText((int)menuitem); - - newstr = newstr.Replace("\\n","\n"); - newstr = processMacros(newstr); - return newstr; - } - - - public string GetRO(string ROID) - { - return _GetRO(ROID,1); - } - - public string GetEntireRO(string ROID) - { - return _GetRO(ROID,0); - } - - public string GetRO(string ROID, string ProcNum) - { - ROProcessTools.ProcedureNumber = ProcNum; - return GetRO(ROID); - } - - public string GetEntireRO(string ROID, string ProcNum) - { - ROProcessTools.ProcedureNumber = ProcNum; - return GetEntireRO(ROID); - } - - // Get the RO value from the ROID - private string _GetRO(string ROID_in, short procopt) - { - string ROID = ROID_in; - if (ROID.Length == 12) - ROID = ROID + "0000"; - ushort tbl = System.Convert.ToUInt16(ROID.Substring(0,4),16); - uint rec = System.Convert.ToUInt32(ROID.Substring(4,8),16); - ushort opt=0; - // clear graphics info - LocalGrfStats.Clear(); - opt = System.Convert.ToUInt16(ROID.Substring(12,ROID.Length-12),16); - - if (tbl==0xFFFF) - return roUnitValue(rec); // RO in PROC.INI file - - int num=0; - for(int i=0; i < numDatabases && ((ROFST_DbInfo)DatabasesInfo[i]).dbiID!=tbl;i++) num++; - - string retval = null; - if(num < numDatabases) - { - retval=FindROText(rec,((ROFST_DbInfo)DatabasesInfo[num]).dbiIL,((ROFST_DbInfo)DatabasesInfo[num]).dbiAL); - } - if ((retval!=null&&retval!="") && (GetROType(ROID)==ROTypes.Figure)) - { - // load graphic stats - StringBuilder sbtmp = new StringBuilder(); - LocalGrfStats.Load(retval); - sbtmp.Append(LocalGrfStats.PixFileName); - sbtmp.Append("\n"); - sbtmp.Append(LocalGrfStats.PixFileTime.ToString("x8")); - sbtmp.Append("\n"); - sbtmp.Append(LocalGrfStats.PixFileHeight.ToString("x4")); - sbtmp.Append("\n"); - sbtmp.Append(LocalGrfStats.PixFileWidth.ToString("x4")); - retval = sbtmp.ToString(); - - } - if(retval!=null && retval.Length>0 && !(GetROType(ROID)==ROTypes.Figure)) - { - retval = retval.Replace("\r",""); - if (procopt!=0) - { - string newstr = processROString(retval,(short)opt); - if (newstr!=null && !newstr.Equals("")) - retval = newstr; - } - } - return retval; - } - - - // Get the RO's parent ID - private uint GetParent(uint rec, uint start,uint end,ref uint offset) - { - uint parid=0; - uint fnd; - if((fnd=FindRO(rec,start,end))>0) - { - offset=brROFst.ReadUInt32(); - brROFst.BaseStream.Seek((long)offset,SeekOrigin.Begin); - uint guessid=brROFst.ReadUInt32(); - parid=brROFst.ReadUInt32(); - } - return parid; - } - - - // Get the RO's parent ID from the ROID - public uint GetROParent(string ROID) - { - ushort tbl = Convert.ToUInt16(ROID.Substring(0,4),16); - uint rec = Convert.ToUInt32(ROID.Substring(4,8),16); - uint retval=0; - int indx=0; - for(int i=0; i < numDatabases && ((ROFST_DbInfo)DatabasesInfo[i]).dbiID!=tbl; i++) indx++; // position to the RO database - - if(indx < numDatabases) - { - uint offset=0; - retval=GetParent(rec,((ROFST_DbInfo)DatabasesInfo[indx]).dbiIL,((ROFST_DbInfo)DatabasesInfo[indx]).dbiAL,ref offset); - } - return retval; - } - - - // Get the group title - private string GetDescription(ushort tbl, uint rec) - { - string retval=null; - if(tbl==0xFFFF) - { - if(rec == 0) - { - retval="Unit Information"; - } - - else if (rec <= NumUnitVariables) - { - int irec = (int)rec; - retval=UnitVariables[irec]; - } - } - else - { - int indx=0; - for(int i=0; i < numDatabases && ((ROFST_DbInfo)DatabasesInfo[i]).dbiID!=tbl; i++) indx++; - - if(indx < numDatabases) - { - uint id; - brROFst.BaseStream.Seek(((ROFST_DbInfo)DatabasesInfo[indx]).dbiGL,SeekOrigin.Begin); - id = brROFst.ReadUInt32(); - - if((rec==0) || rec==id) - { - retval=((ROFST_DbInfo)DatabasesInfo[indx]).dbiTitle; - } - else - { - uint offset=0; - uint parid = this.GetParent(rec,((ROFST_DbInfo)DatabasesInfo[indx]).dbiIL,((ROFST_DbInfo)DatabasesInfo[indx]).dbiAL,ref offset); - if(parid!=0) - { - uint t1 = FindRO(parid,((ROFST_DbInfo)DatabasesInfo[indx]).dbiIL,((ROFST_DbInfo)DatabasesInfo[indx]).dbiAL); - t1 = brROFst.ReadUInt32(); - uint guessid; - brROFst.BaseStream.Seek(t1,SeekOrigin.Begin); - guessid = brROFst.ReadUInt32(); - parid = brROFst.ReadUInt32(); - short count; - count = brROFst.ReadInt16(); - for(int i=0; i < count && retval == null; i++) - { - uint off; - off=brROFst.ReadUInt32(); - ushort typ; - typ=brROFst.ReadUInt16(); - if(off==offset) - { - retval = GetAsciiString(brROFst); - } - else - { - SkipString(brROFst); - } - } - } - } - } - } - return retval; - } - - - // Get the group title by ROID - public string GetRODescription(string ROID) - { - ushort tbl = Convert.ToUInt16(ROID.Substring(0,4),16); - uint rec = Convert.ToUInt32(ROID.Substring(4,8),16); - return (GetDescription(tbl,rec)); - } - - - // get the Accessory Page ID - string FindROAccID(uint id, uint start, uint end) - { - // Returns allocated space - string retval=null; - if(FindRO(id,start,end)!=0) - { - uint offset = brROFst.ReadUInt32(); - brROFst.BaseStream.Seek(offset,SeekOrigin.Begin); - uint guessid = brROFst.ReadUInt32(); - uint parid = brROFst.ReadUInt32(); - short count = brROFst.ReadInt16(); - ushort ltyp = brROFst.ReadUInt16(); - SkipString(brROFst); - retval = GetAsciiString(brROFst); - } - return retval; - } - - - private string roUnitAccID(uint rec) - { - string rotbuf=""; - for(int i=0; i < NumUnitVariables; i++) - { - if((i+1L)==rec) - { - rotbuf = "U-"+UnitVariables[i+1]; - break; // break out of for loop - } - } - return rotbuf; - } - - - // Get accessory page ID via the table and record - // also include unit specs from ini file - private string GetAccID(ushort tbl, uint rec) - { - string retval=null; - - if (tbl==0xFFFF) - { - return roUnitAccID(rec); // PROC.INI ro - } - int indx=0; - for(int i=0; i < numDatabases && ((ROFST_DbInfo)DatabasesInfo[i]).dbiID!=tbl; i++)indx++; - - if(indx < numDatabases) - { - retval=FindROAccID(rec,((ROFST_DbInfo)DatabasesInfo[indx]).dbiIL,((ROFST_DbInfo)DatabasesInfo[indx]).dbiAL); - if (retval == null) - retval=""; // RO not found, has ? in procedures - else - retval = ((ROFST_DbInfo)DatabasesInfo[indx]).dbiAP + "-" + retval; - } - return retval; - } - - - // Get the accessory page ID from the ROID - // includes unit specs from ini file - public string RoidToAccId(string ROID) - { - ushort tbl = Convert.ToUInt16(ROID.Substring(0,4),16); - uint rec = Convert.ToUInt32(ROID.Substring(4,8),16); - if(tbl != 0) - return GetAccID(tbl,rec); - return null; - } - - - // Get the accessory page ID - private string GetAppID(ushort tbl) - { - string retval = null; - if (tbl==0xFFFF) - { - return "U"; // PROC.INI ro - } - int indx=0; - for(int i=0; i < numDatabases && ((ROFST_DbInfo)DatabasesInfo[i]).dbiID!=tbl; i++) indx++; - - if(indx < numDatabases) - return ((ROFST_DbInfo)DatabasesInfo[indx]).dbiAP; - return retval; - } - - - // Get the accessory page ID from the ROID - public string GetROAppID(string ROID) - { - ushort tbl = Convert.ToUInt16(ROID.Substring(0,4),16); - uint rec = Convert.ToUInt32(ROID.Substring(4,8),16); - return GetAppID(tbl); - } - - - public uint FindROFromTblRec(ushort tbl, uint id) - { - if(tbl==0xFFFF) - { - //PROC.INI ro - if (id < NumUnitVariables) return 1; - return 0; - } - int indx=0; - for(int i=0; i < numDatabases && ((ROFST_DbInfo)DatabasesInfo[i]).dbiID!=tbl;i++) indx++; - if (indx==numDatabases) return 0; - return FindRO(id,((ROFST_DbInfo)DatabasesInfo[indx]).dbiIL,((ROFST_DbInfo)DatabasesInfo[indx]).dbiAL); - } - - - public bool ROExists(string ROID) - { - ushort tbl = Convert.ToUInt16(ROID.Substring(0,4),16); - uint rec = Convert.ToUInt32(ROID.Substring(4,8),16); - uint off = FindROFromTblRec(tbl,rec); - return (off!=0); - } - - - public static void SkipString(BinaryReader br) - { - byte []input = {0}; - do - { - try - { - input[0] = br.ReadByte(); - } - catch (System.IO.EndOfStreamException) - { - input[0] = 0; - } - }while (input[0] != 0); - return; - } - - - public static string GetAsciiString(BinaryReader br, int len) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - do - { - try - { - input = br.ReadByte(); - inpstr.Append(Convert.ToChar(input)); - } - catch (System.IO.EndOfStreamException) - { - input = 0; - while (cnt < len) - { - inpstr.Append(Convert.ToChar(input)); - cnt++; - } - } - cnt++; - }while (cnt < len); - - return (inpstr.ToString()); - } - - - public static string GetAsciiString(BinaryReader br) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - do - { - try - { - input = br.ReadByte(); - if (input > 0) - { - inpstr.Append(Convert.ToChar(input)); - } - } - catch (System.IO.EndOfStreamException) - { - input = 0; - } - }while (input != 0); - return (inpstr.ToString()); - } - - - // return the index into the the DatabasesInfo array - private short GetTable(ushort tblid) - { - short found = -1; - for(short i = 0; (i < numDatabases) && (found == -1); i++) - { - if (tblid == ((ROFST_DbInfo)DatabasesInfo[i]).dbiID) - found = i; - } - - if (found == -1) - { - // add a new item to the list - found = numDatabases; - ROFST_DbInfo tmpDbInfo = new ROFST_DbInfo(); - tmpDbInfo.dbiID = tblid; - DatabasesInfo.Add(tmpDbInfo); - dbinew dbinewItem; - dbinewItem = new dbinew(); - dbiNewInfo.Add(dbinewItem); - numDatabases++; - } - return found; - } - - - // Add a new RO record to the arraylist of allNewRos - private int AddNewRO(uint id,string num,string desc,string val,short type,uint grpn) - { - int rtval; - AddRO tmpAddRO = new AddRO(); - tmpAddRO.ro_id = id; - tmpAddRO.ro_num = num; - tmpAddRO.ro_desc = desc; - tmpAddRO.ro_val = val; - tmpAddRO.ro_type = type; - tmpAddRO.ro_parid = grpn; - (allNewRos[curTblIdx]).Add(tmpAddRO); - rtval = (allNewRos[curTblIdx]).Count -1; - return rtval; - } - - - private int AddNewRO(string num,string desc,string val,short type,uint grpn) - { - return AddNewRO(NewID++, num, desc, val, type, grpn); - } - - - // Add a new Group record to the arraylist of allNewGrps - private int AddNewGroup(uint id,string grpname,short type) - { - int rtval; - AddGroup tmpAddGroup = new AddGroup(); - tmpAddGroup.grp_id = id; - tmpAddGroup.grp_name = grpname; - tmpAddGroup.grp_type = type; - (allNewGrps[curTblIdx]).Add(tmpAddGroup); - rtval = (allNewGrps[curTblIdx]).Count -1; - return rtval; - } - - - private int AddNewGroup(string grpname,short type) - { - return AddNewGroup(NewID++,grpname,type); - } - - - // Return the index into the allNewGrps arraylist - private int FindNewGroup(uint rec) - { - int rtval = -1; - for (int i=0; i < (allNewGrps[curTblIdx]).Count && rtval == -1; i++) - { - if (((AddGroup)(allNewGrps[curTblIdx])[i]).grp_id == rec) - rtval = i; - } - return rtval; - } - - - private int connectToNewGroupfRO(int lastaddROIDX,uint rec,uint parid,string desc) - { - int newgrpIDX; - // position to the correct RO group - if((newgrpIDX=FindNewGroup(rec))== -1) - { - // group not found, add a new one - newgrpIDX=AddNewGroup(rec,desc,0); - } - //update parent info - AddRO taddro = (AddRO)(allNewRos[curTblIdx][lastaddROIDX]); - taddro.ro_pargrpidx = newgrpIDX; - taddro.ro_parid = rec; - allNewRos[curTblIdx].RemoveAt(lastaddROIDX); - allNewRos[curTblIdx].Insert(lastaddROIDX,taddro); - - //update group info - AddGroup taddgroup = (AddGroup)(allNewGrps[curTblIdx][newgrpIDX]); - taddgroup.grp_type |= ((AddRO)(allNewRos[curTblIdx])[lastaddROIDX]).ro_type; - taddgroup.grp_parid = parid; - allNewGrps[curTblIdx].RemoveAt(newgrpIDX); - allNewGrps[curTblIdx].Insert(newgrpIDX,taddgroup); - return newgrpIDX; - } - - - private int connectToNewGroup(int lastaddgrpIDX,uint rec,uint parid,string desc) - { - // update group info - int newgrpIDX; - // position to the correct RO group - if((newgrpIDX=FindNewGroup(rec))== -1) - { - // group not found, add a new one - newgrpIDX=AddNewGroup(rec,desc,0); - } - AddGroup taddgroup = (AddGroup)(allNewGrps[curTblIdx][lastaddgrpIDX]); - taddgroup.grp_pargrpidx = newgrpIDX; - taddgroup.grp_parid = rec; - allNewGrps[curTblIdx].RemoveAt(lastaddgrpIDX); - allNewGrps[curTblIdx].Insert(lastaddgrpIDX,taddgroup); - - taddgroup = (AddGroup)(allNewGrps[curTblIdx][newgrpIDX]); - taddgroup.grp_type |= ((AddGroup)(allNewGrps[curTblIdx])[lastaddgrpIDX]).grp_type; - taddgroup.grp_parid = parid; - allNewGrps[curTblIdx].RemoveAt(newgrpIDX); - allNewGrps[curTblIdx].Insert(newgrpIDX,taddgroup); - return newgrpIDX; - } - - - private void addDifference(uint id,string val,string desc,short type,uint offset) - { - DiffRO tmpDiff = new DiffRO(); - tmpDiff.id=id; - tmpDiff.type=type; - tmpDiff.desc=desc; - tmpDiff.val=val; - tmpDiff.oldoff=offset; - allDifferences[curTblIdx].Add(tmpDiff); - } - - - private short ReadShort(BinaryReader br) - { - short rtnval = -1; - try - { - rtnval = br.ReadInt16(); - } - catch (Exception) - { - rtnval = -1; - } - return rtnval; - } - -/* - * Read in the ROFST Update file. Put the changes in array lists - * to that will be used to organize and merge the differences into - * the target RO.FST file (usually in the Approved directory). For - * array lists, use the number of databases from the working draft - * (there may be new databases created since last approval) - */ - public void processAppUpdFile(string sAppUpdFile, short nDB) - { - BinaryReader brAppUpd; - string num, desc, val; - short typ, inch; - uint rec; - ushort tbl; - uint parid; - int LastAddedROIDX=-1, LastAddedGrpIDX=-1; - curTblIdx = 0; // initialize Current Table Index - allNewRos = (ArrayList [])new ArrayList[nDB]; - allNewGrps = (ArrayList [])new ArrayList[nDB]; - allDifferences = (ArrayList [])new ArrayList[nDB]; - allLocations = new ArrayList(); - - for (int i=0; i wid) - { - doff=(ushort)(wid-siznum-l); - } - while(wid > 0 && siznum < doff) - { // add spaces if necessary for alignment - buff.Append(' '); - siznum++; - wid--; - } - } - idx = 0; - while(wid > 0) - { // output the value or spaces to the specified width - if (idx < str.Length && str[idx] != 0 && str[idx] != '\n') - buff.Append(str[idx]); - else - buff.Append(" "); - wid--; - idx++; - } - } - - - private string getMenuString(short type,string val,string desc) - { - StringBuilder buff = new StringBuilder(); - switch(type) - { - case 1: - placeText(buff,5,17,val); - buff.Append(" "); - break; - case 2: - placeText(buff,5,17,"(Table)"); - buff.Append(" "); - break; - case 4: - placeText(buff,5,17,"(Graph)"); - buff.Append(" "); - break; - } - buff.Append(desc); - return buff.ToString(); - } - - - public void WriteString(BinaryWriter NewFSTFile, string str,bool AddNull) - { - int n=str.Length; - if (AddNull) - n++; - byte [] b = new byte[n]; - for(int i =0; i < str.Length; i++) - { - b[i] = (byte)str[i]; - } - NewFSTFile.Write(b,0,n); - } - - - public uint saveNewMenuEntries(BinaryWriter NewFSTFile,uint id) - { - long start=NewFSTFile.Seek(0,System.IO.SeekOrigin.Current); - int numNewRos = (allNewRos[curTblIdx]).Count; - int cntNewRos = 0; - while (cntNewRos < numNewRos) - { - // Skip to the one to be saved - while ((cntNewRos < numNewRos) && - (((AddRO)(allNewRos[curTblIdx])[cntNewRos]).ro_stat != 1) && - ((AddRO)(allNewRos[curTblIdx])[cntNewRos]).ro_parid != id) - cntNewRos++; - // If one exists, save it and skip to the next one - if (cntNewRos < numNewRos) - { - AddRO taddro = (AddRO)(allNewRos[curTblIdx][cntNewRos]); - taddro.ro_stat = 2; - allNewRos[curTblIdx].RemoveAt(cntNewRos); - allNewRos[curTblIdx].Insert(cntNewRos,taddro); - // Save the offset - NewFSTFile.Write(((AddRO)(allNewRos[curTblIdx])[cntNewRos]).ro_offset); - // Save the type - NewFSTFile.Write(((AddRO)(allNewRos[curTblIdx])[cntNewRos]).ro_type); - // Get the menu string - string mnustr = getMenuString(((AddRO)(allNewRos[curTblIdx])[cntNewRos]).ro_type,((AddRO)(allNewRos[curTblIdx])[cntNewRos]).ro_val,((AddRO)(allNewRos[curTblIdx])[cntNewRos]).ro_desc); - // Save menu entry - WriteString(NewFSTFile,mnustr,true); - cntNewRos++; - } - } - int cntNewGrps = 0; - int numNewGrps = (allNewGrps[curTblIdx]).Count; - while (cntNewGrps < numNewGrps) - { - // Skip to the one to be saved - while ((cntNewGrps < numNewGrps) && - (((AddGroup)(allNewGrps[curTblIdx])[cntNewGrps]).grp_stat != 1 || - ((AddGroup)(allNewGrps[curTblIdx])[cntNewGrps]).grp_parid != id)) - cntNewGrps++; - // If one exists, save it and skip to the next one - if(cntNewGrps < numNewGrps) - { - // Change stat to menu entry saved - AddGroup taddgroup = (AddGroup)(allNewGrps[curTblIdx][cntNewGrps]); - taddgroup.grp_stat = 2; - allNewGrps[curTblIdx].RemoveAt(cntNewGrps); - allNewGrps[curTblIdx].Insert(cntNewGrps,taddgroup); - // Save the offset - NewFSTFile.Write(((AddGroup)(allNewGrps[curTblIdx])[cntNewGrps]).grp_offset); - // Save the type - NewFSTFile.Write(((AddGroup)(allNewGrps[curTblIdx])[cntNewGrps]).grp_type); - // Save menu entry - WriteString(NewFSTFile,((AddGroup)(allNewGrps[curTblIdx])[cntNewGrps]).grp_name,true); - cntNewGrps++; - } - } - return ((uint)((NewFSTFile.Seek(0,System.IO.SeekOrigin.Current)) - start)); - } - - - - public void AddLocation(uint location,int inc) - { - int t_inc = ((locinc)allLocations[lastLocationIdx]).inc; - if (location == ((locinc)allLocations[lastLocationIdx]).maxloc) - { - // update the current record - // - need to remove current item, then insert new item. - locinc tmploc = (locinc)(allLocations[lastLocationIdx]); - tmploc.inc += inc; - allLocations.RemoveAt(lastLocationIdx); - allLocations.Insert(lastLocationIdx,tmploc); - } - else - { - locinc tmploc = (locinc)(allLocations[lastLocationIdx]); - locinc newloc = new locinc(); - // new item gets last item's maxloc - newloc.maxloc = tmploc.maxloc; - newloc.inc = tmploc.inc + inc; - // update the current record - // - need to remove current item, then insert new item. - tmploc.maxloc = location; //update maxloc - allLocations.RemoveAt(lastLocationIdx); - allLocations.Insert(lastLocationIdx,tmploc); - // append the new item - allLocations.Add(newloc); - lastLocationIdx++; - } - } - - - public short saveAdditions(BinaryWriter NewFSTFile,uint parid,uint start) - { - // Initialize count of added entries - short count = 0; - // Initialize count of added bytes - int bytes = 0; - - int numgroups = (allNewGrps[curTblIdx]).Count; - int grpcnt = 0; - while (grpcnt < numgroups) - { - if (((AddGroup)(allNewGrps[curTblIdx])[grpcnt]).grp_stat == 0 && ((AddGroup)(allNewGrps[curTblIdx])[grpcnt]).grp_parid == parid) - { - // Save new group - // Change stat to inprogress - AddGroup taddgroup = (AddGroup)(allNewGrps[curTblIdx][grpcnt]); - taddgroup.grp_stat = 99; - allNewGrps[curTblIdx].RemoveAt(grpcnt); - allNewGrps[curTblIdx].Insert(grpcnt,taddgroup); - count++; - // Save any children - short howmany = saveAdditions(NewFSTFile,((AddGroup)(allNewGrps[curTblIdx])[grpcnt]).grp_id,start); - - // Remember the offset - taddgroup = (AddGroup)(allNewGrps[curTblIdx][grpcnt]); - taddgroup.grp_offset = (uint)NewFSTFile.Seek(0,System.IO.SeekOrigin.Current); // ftell(ofile) - allNewGrps[curTblIdx].RemoveAt(grpcnt); - allNewGrps[curTblIdx].Insert(grpcnt,taddgroup); - - // Save ID - if (((AddGroup)(allNewGrps[curTblIdx])[grpcnt]).grp_parid == 0) - { - whereisgl = (uint)NewFSTFile.Seek(0,System.IO.SeekOrigin.Current); - } - NewFSTFile.Write(((AddGroup)(allNewGrps[curTblIdx])[grpcnt]).grp_id); - // Save the Parent ID - NewFSTFile.Write(((AddGroup)(allNewGrps[curTblIdx])[grpcnt]).grp_parid); - // save howmany - NewFSTFile.Write(howmany); - // save children - saveNewMenuEntries(NewFSTFile,((AddGroup)(allNewGrps[curTblIdx])[grpcnt]).grp_id); - taddgroup = (AddGroup)(allNewGrps[curTblIdx][grpcnt]); - taddgroup.grp_stat = 1; - allNewGrps[curTblIdx].RemoveAt(grpcnt); - allNewGrps[curTblIdx].Insert(grpcnt,taddgroup); - bytes += (int)(NewFSTFile.Seek(0,System.IO.SeekOrigin.Current) - ((AddGroup)(allNewGrps[curTblIdx])[grpcnt]).grp_offset); - } - grpcnt++; - } - // Second check new ROs - int rocnt = 0; - int numros = (allNewRos[curTblIdx]).Count; - while (rocnt < numros) - { - // save new RO - if (((AddRO)(allNewRos[curTblIdx])[rocnt]).ro_stat == 0 && - ((AddRO)(allNewRos[curTblIdx])[rocnt]).ro_parid == parid) - { - // change the stat - AddRO taddro = (AddRO)(allNewRos[curTblIdx][rocnt]); - taddro.ro_stat = 1; - // Increment count - count++; - taddro.ro_offset = (int)NewFSTFile.Seek(0,System.IO.SeekOrigin.Current); - allNewRos[curTblIdx].RemoveAt(rocnt); - allNewRos[curTblIdx].Insert(rocnt,taddro); - // Save the ID - NewFSTFile.Write(((AddRO)(allNewRos[curTblIdx])[rocnt]).ro_id); - // Save the Parent ID - NewFSTFile.Write(((AddRO)(allNewRos[curTblIdx])[rocnt]).ro_parid); - // Save -1 - NewFSTFile.Write((short)-1); - // Save type - NewFSTFile.Write(((AddRO)(allNewRos[curTblIdx])[rocnt]).ro_type); - maxtype |= (ushort)((AddRO)(allNewRos[curTblIdx])[rocnt]).ro_type; - // Save value - WriteString(NewFSTFile,((AddRO)(allNewRos[curTblIdx])[rocnt]).ro_val,true); - // Save accid - short aw = (short)((AddRO)(allNewRos[curTblIdx])[rocnt]).ro_num.Length; - if (aw > maxaw) maxaw = (ushort)aw; - WriteString(NewFSTFile,((AddRO)(allNewRos[curTblIdx])[rocnt]).ro_num,true); - // Calculate the number of extra bytes output - bytes+=(int)(NewFSTFile.Seek(0,System.IO.SeekOrigin.Current) - ((AddRO)(allNewRos[curTblIdx])[rocnt]).ro_offset); - } - rocnt++; - } - // Adjust the location information - if (bytes != 0 && start > 0) - AddLocation(start - 1,bytes); - return count; - } - - - // was a difference flagged for this RO - // - check via saved offsets into the RO.fST file - public int isDifferent(uint off) - { - int allDiffCnt = 0; - int NumAllDiff = (allDifferences[curTblIdx]).Count; - while (allDiffCnt < NumAllDiff) - { - if (((DiffRO)(allDifferences[curTblIdx])[allDiffCnt]).oldoff == off) - return allDiffCnt; - allDiffCnt++; - } - return -1; - } - - - - public uint newLocation(uint oldlocation) - { - int idx = 0; - while (oldlocation > ((locinc)allLocations[idx]).maxloc) idx++; - return oldlocation + (uint)((locinc)allLocations[idx]).inc; - } - - - public void processGroupRecords(BinaryWriter NewFSTFile,uint end) - { - uint start; - while ((start=(uint)brROFst.BaseStream.Seek(0,System.IO.SeekOrigin.Current)) < end) - { - // Read ID - uint id = brROFst.ReadUInt32(); - // Read Parent ID - uint parid = brROFst.ReadUInt32(); - // Read How Many - short howmany = brROFst.ReadInt16(); - // Check of additions and write them - short howmanyplus = howmany; - if (howmany >= 0) - howmanyplus += saveAdditions(NewFSTFile,id,start); - if (parid == 0) - whereisgl = (uint)NewFSTFile.Seek(0,System.IO.SeekOrigin.Current); // ftell(ofile) - // Write ID - NewFSTFile.Write(id); - // Write Parent ID - NewFSTFile.Write(parid); - // Write howmany - NewFSTFile.Write(howmanyplus); - // If group - read and write menu list - int starti = (int)brROFst.BaseStream.Seek(0,System.IO.SeekOrigin.Current); // ftell(rofstfile) - int starto = (int)NewFSTFile.Seek(0,System.IO.SeekOrigin.Current); // ftell(ofile) - if (howmanyplus >= 0) - { - // for orignal entries - for (int i=0;i howmany) - { - saveNewMenuEntries(NewFSTFile,id); - } - } - else - { - // if RO - read RO record - // Read type - short type = brROFst.ReadInt16(); - // Read value - string val = GetAsciiString(brROFst); - // Read accid - string num = GetAsciiString(brROFst); - // check if changed - int thisdiff = isDifferent(start); - if (thisdiff != -1) - { - type = ((DiffRO)(allDifferences[curTblIdx])[thisdiff]).type; - val = ((DiffRO)(allDifferences[curTblIdx])[thisdiff]).val; - } - // Save type - NewFSTFile.Write(type); - // Save value - WriteString(NewFSTFile,val,true); - // Save accid - WriteString(NewFSTFile,num,true); - } - int originalSize = (int)brROFst.BaseStream.Seek(0,System.IO.SeekOrigin.Current) - starti; - int copySize = (int)NewFSTFile.Seek(0,System.IO.SeekOrigin.Current) - starto; - if (copySize != originalSize) - AddLocation(start,copySize - originalSize); - } - if (end == 0) - { - maxtype = 0; - maxaw = 0; - saveAdditions(NewFSTFile,0,0); - } - } - - - public int getROAccLess(string minnum) - { - int romin = -1; - int roptr = 0; - int numroptr = (allNewRos[curTblIdx]).Count; - while (roptr < numroptr) - { - // skip processed entries - while ((roptr < numroptr) && - ((AddRO)(allNewRos[curTblIdx])[roptr]).ro_stat == 4) roptr++; - if ((roptr < numroptr)) - { - // Look for "smallest" - if ((minnum==null)|| - ((AddRO)(allNewRos[curTblIdx])[roptr]).ro_num.CompareTo(minnum) < 0) - { - romin = roptr; - minnum = ((AddRO)(allNewRos[curTblIdx])[roptr]).ro_num; - } - roptr++; - } - } - return romin; - } - - - public void putFixed(BinaryWriter NewFstFile, string str, short len) - { - int n=len; //str.Length; - int strlen = str.Length; - byte [] b = new byte[len]; - // write a fixed length of a string. - for (int i =0; n > 0; i++) - { - if (i < strlen) - b[i] = (byte)str[i]; - else - b[i] = (byte)0; // pad with NULLs if smaller than "len" - n--; - } - NewFstFile.Write(b,0,len); - } - - - public void processAccIdRecords(BinaryWriter NewFSTFile,uint end,short len) - { - int extra = 0; - int roptr = 0; - while (brROFst.BaseStream.Seek(0,System.IO.SeekOrigin.Current) < end) - { - // Read ID - uint id = brROFst.ReadUInt32(); - // Read accID - string num = GetAsciiString(brROFst,len); - // Check other accIDs in new records and save - while ((roptr = getROAccLess(num)) != -1) - { - extra+=(len + 4); //sizeof(ulong 16bit)+len - NewFSTFile.Write(((AddRO)(allNewRos[curTblIdx])[roptr]).ro_id); - putFixed(NewFSTFile,((AddRO)(allNewRos[curTblIdx])[roptr]).ro_num,len); - AddRO taddro = (AddRO)(allNewRos[curTblIdx][roptr]); - taddro.ro_stat = 4; - allNewRos[curTblIdx].RemoveAt(roptr); - allNewRos[curTblIdx].Insert(roptr,taddro); - } - // Write ID - NewFSTFile.Write(id); - // Write accID - putFixed(NewFSTFile,num,len); - } - // Save remaining RO info - while ((roptr = getROAccLess(null))!=-1) - { - extra += (len+4); //sizeof(ulong 16bit)+len - NewFSTFile.Write(((AddRO)(allNewRos[curTblIdx])[roptr]).ro_id); - putFixed(NewFSTFile,((AddRO)(allNewRos[curTblIdx])[roptr]).ro_num,len); - AddRO taddro = (AddRO)(allNewRos[curTblIdx][roptr]); - taddro.ro_stat = 4; - allNewRos[curTblIdx].RemoveAt(roptr); - allNewRos[curTblIdx].Insert(roptr,taddro); - } - if (extra > 0) - AddLocation(end-1,extra); - } - - - public void nextIDandOffset(ref uint nxtid, ref uint nxtoff) - { - int roptr = 0, romin = -1; - int numroptr = (allNewRos[curTblIdx]).Count; - int grpptr = 0, grpmin = -1; - int numgrpptr = (allNewGrps[curTblIdx]).Count; - - while (roptr < numroptr) - { - if (((AddRO)(allNewRos[curTblIdx])[roptr]).ro_id > nxtid && - (romin == -1 || ((AddRO)(allNewRos[curTblIdx])[roptr]).ro_id < ((AddRO)(allNewRos[curTblIdx])[romin]).ro_id)) - romin = roptr; - roptr++; - } - - while (grpptr < numgrpptr) - { - if (((AddGroup)(allNewGrps[curTblIdx])[grpptr]).grp_id > nxtid && - (grpmin == -1 || ((AddGroup)(allNewGrps[curTblIdx])[grpptr]).grp_id < ((AddGroup)(allNewGrps[curTblIdx])[grpmin]).grp_id)) - grpmin = grpptr; - grpptr++; - } - if (grpmin != -1) - { - if ((romin != -1) && ((AddRO)(allNewRos[curTblIdx])[romin]).ro_id < ((AddGroup)(allNewGrps[curTblIdx])[grpmin]).grp_id) - { - AddRO taddro = (AddRO)(allNewRos[curTblIdx][romin]); - taddro.ro_stat = 3; - allNewRos[curTblIdx].RemoveAt(romin); - allNewRos[curTblIdx].Insert(romin,taddro); - nxtid = ((AddRO)(allNewRos[curTblIdx])[romin]).ro_id; - nxtoff = (uint)((AddRO)(allNewRos[curTblIdx])[romin]).ro_offset; - } - else - { - AddGroup taddgroup = (AddGroup)(allNewGrps[curTblIdx][grpmin]); - taddgroup.grp_stat = 3; - allNewGrps[curTblIdx].RemoveAt(grpmin); - allNewGrps[curTblIdx].Insert(grpmin,taddgroup); - nxtid = ((AddGroup)(allNewGrps[curTblIdx])[grpmin]).grp_id; - nxtoff = ((AddGroup)(allNewGrps[curTblIdx])[grpmin]).grp_offset; - } - } - else - { - if (romin != -1) - { - AddRO taddro = (AddRO)(allNewRos[curTblIdx][romin]); - taddro.ro_stat = 3; - allNewRos[curTblIdx].RemoveAt(romin); - allNewRos[curTblIdx].Insert(romin,taddro); - nxtid = ((AddRO)(allNewRos[curTblIdx])[romin]).ro_id; - nxtoff = (uint)((AddRO)(allNewRos[curTblIdx])[romin]).ro_offset; - } - else - { - nxtid = 0; - nxtoff = 0; - } - } - } - - - public void processIdRecords(BinaryWriter NewFstFile,uint end) - { - int extra = 0; - uint nxtid =0, nxtoff=0; - nextIDandOffset(ref nxtid,ref nxtoff); - while (brROFst.BaseStream.Seek(0,System.IO.SeekOrigin.Current) < end) - { - // Read ID - uint id = brROFst.ReadUInt32(); - // Look for new entries that precede ID - while (nxtid != 0 && nxtid < id) - { - extra += 8; // sizeof(ulong 16bit) * 2 - NewFstFile.Write(nxtid); - NewFstFile.Write(nxtoff); - nextIDandOffset(ref nxtid,ref nxtoff); // passed by reference - } - // Write ID - NewFstFile.Write(id); - // Read Offset - uint off = brROFst.ReadUInt32(); - // Write new offset - NewFstFile.Write(newLocation(off)); - } - // Save new RO entries and Group entries - while (nxtid != 0) - { - extra += 8; // sizeof(ulong 16bit)*2 - NewFstFile.Write(nxtid); - NewFstFile.Write(nxtoff); - nextIDandOffset(ref nxtid,ref nxtoff); // passed by reference - } - if (extra != 0) - AddLocation(end-1,extra); - } - - - /* - * Merge the changes into the RO.FST file (usually Approved directory) - */ - public void CreateMergedFSTFile(string NewFStName) - { - BinaryWriter NewFSTFile=null; - - // Open a new FST file for writing - try - { - NewFSTFile = new BinaryWriter(File.Open(NewFStName,System.IO.FileMode.Create,System.IO.FileAccess.ReadWrite,FileShare.None)); - } - catch (Exception e) - { - MessageBox.Show("Error Opening "+NewFStName +"\n\n" + e.Message,"Approval Error"); - } - - // Write the RO.FST header - Header.Write(NewFSTFile); - - // Position the old FST file past the header - brROFst.BaseStream.Seek(Header.GetStructSize(),System.IO.SeekOrigin.Begin); - - // Loop through each database - for (short i=0; i < numDatabases; i++) - { - // Set the current table index used to access the allNewRos, - // allNewGrps, and allDifferences arrays - curTblIdx = i; - - // Loop through the Group and RO records - // Update the RO Group information - processGroupRecords(NewFSTFile,((ROFST_DbInfo)DatabasesInfo[i]).dbiIL); - if (((ROFST_DbInfo)DatabasesInfo[i]).dbiAW == 0) - ((ROFST_DbInfo)DatabasesInfo[i]).dbiAW = maxaw; - - if (((ROFST_DbInfo)DatabasesInfo[i]).dbiType == 0) - ((ROFST_DbInfo)DatabasesInfo[i]).dbiType = maxtype; - - ((ROFST_DbInfo)DatabasesInfo[i]).dbiGL = whereisgl; - ((ROFST_DbInfo)DatabasesInfo[i]).dbiIL = (uint)NewFSTFile.Seek(0,System.IO.SeekOrigin.Current); - - // Loop through the ID list - processIdRecords(NewFSTFile,((ROFST_DbInfo)DatabasesInfo[i]).dbiAL); - ((ROFST_DbInfo)DatabasesInfo[i]).dbiAL = (uint)NewFSTFile.Seek(0,System.IO.SeekOrigin.Current); - // Loop through the accid list - processAccIdRecords(NewFSTFile,((ROFST_DbInfo)DatabasesInfo[i]).dbiEND,(short)((ROFST_DbInfo)DatabasesInfo[i]).dbiAW); - ((ROFST_DbInfo)DatabasesInfo[i]).dbiEND = (uint)NewFSTFile.Seek(0,System.IO.SeekOrigin.Current); - } - // Save the Database info - uint lngbuf = 0; - // Save the current location in the new fst file - uint dblength = (uint)NewFSTFile.Seek(0,System.IO.SeekOrigin.Current); - NewFSTFile.Write(lngbuf); - NewFSTFile.Write(numDatabases); - uint lngval; - ROFST_DbInfo tmpdbinfo = new ROFST_DbInfo(); - lngval = (uint)(tmpdbinfo.GetStructSize() * numDatabases); - for (int i=0;i 0 && match == null) - { - int end = ROProcessTools.matchingBrace(opt); - int eq = opt.IndexOf('='); - int len = end + 1; // +1 to include the '}' - int li = eq-1; - int ld = len-li-3; // One for '{', '=' and '}' - if (def == null || eq == 1) - { - def = opt.Substring(eq+1,ld); - deflen = ld; - } - if (ls == li && stat.StartsWith(opt.Substring(1,li))) - { - match = opt.Substring(eq+1,ld); - matchlen = ld; - } - opt = opt.Substring(len); - lo -= len; - } - // if match process option - or process default - if (match == null) - { - match = def; - matchlen = deflen; - } - Process(match,matchlen); - } - - public void processBrace(string str, int l, ref int nfnd) - { - int nxt = ROProcessTools.nextDelimiter("{=",str,l); // -1 means not found - if(nxt == -1) // varUse - { - strList found = null; - found = vList.lookFor(str,l); - if (found != null) - Add(new seVarUse(found)); - else - nfnd = 1; - } - else - { - if (str[nxt] == '{') // conditonal or menu - { - if(nxt==0) - { // menu - mList.Process(str,l,vList); - Add(new seMenuUse(mList)); - } - else - { // conditional - processCondition(str, str.Substring(nxt), nxt, l -nxt); - } - } - else - { // must be variable definiton - vList.Add(str, str.Substring(nxt+1), nxt, l - nxt - 1, mList); - } - } - } - - public void Process (string str, int len) - { - int nxtDlm = -1; // -1 = not found - while (len > 0) - { - nxtDlm = ROProcessTools.nextDelimiter("{",str,len); - if (nxtDlm == -1) - { - // add entire string as is - Add(new seText(str,len)); - //str = str.Substring(len); don't think we need to do this - len = 0; - } - else - { - int cnt = 0; - if (nxtDlm > 0) - { - // add preceeding text - Add(new seText(str,nxtDlm)); - str = str.Substring(nxtDlm); - len-=nxtDlm; - } - // add text group by delimiter, including - // the delimiters - nxtDlm = ROProcessTools.matchingBrace(str)+1; - cnt = nxtDlm; - int nfnd = 0; - processBrace(str.Substring(1),cnt-2,ref nfnd); - if (nfnd > 0) - { - Add(new seText(str,cnt)); - } - // position to next delimiter grouping - len -= cnt; - str = str.Substring(nxtDlm); - } - } - } - - public string toText(int mi) - { - StringBuilder bldstr = new StringBuilder(); - for (int i=0; i < aryStrEntry.Count; i++) - { - bldstr.Append(((strEntry)aryStrEntry[i]).toText(mi)); - } - return bldstr.ToString(); - } - - public int getLength(int mi) - { - int rtnval = 0; - for (int i=0; i < aryStrEntry.Count; i++) - { - rtnval += (((strEntry)aryStrEntry[i]).getLength(mi)); - } - return rtnval; - } - - public int menuCount() - { - return mList.getCount(); - } - - public string getIds(ref int cnt) - { - // return a string of the IDs - return mList.getIds(ref cnt); - } - } - - - - public class strList2 - { - - private ArrayList aryStrEntry; - - public strList2(string str) - { - int l=str.Length; - if (aryStrEntry == null) - aryStrEntry = new ArrayList(); - while(l > 0) - { - int ptr=ROProcessTools.nextDelimiter("<",str,l); - int cptr = (ptr==-1)?-1:ROProcessTools.nextDelimiter(">",str.Substring(ptr,str.Length - ptr),str.Length-ptr); - if(ptr == -1 || (ptr>-1 && cptr == -1)) - { - Add(new seText(str,l)); - l=0; - } - else - { - int cnt = ptr; //(int)(ptr-str); - if(cnt > 0) - { - Add(new seText(str,cnt)); - l-=cnt; - str = str.Substring(ptr); // str=ptr - } - ptr=ROProcessTools.nextDelimiter(">",str,l)+1; - cnt = ptr;//(int)(ptr-str); - string tmpstr = str.Substring(1); - Add(new seUser(tmpstr,cnt-2)); - l-=cnt; - str = str.Substring(ptr);//str=ptr; - } - } - } - - public void Add (strEntry se) - { - aryStrEntry.Add(se); - } - - public string toText() - { - StringBuilder bldstr = new StringBuilder(); - for (int i=0; i < aryStrEntry.Count; i++) - { - bldstr.Append(((strEntry)aryStrEntry[i]).toText(0)); - } - return bldstr.ToString(); - } - } - - public class varEntry - { - string Name; - int Len; - strList Definition; - - public varEntry(string InName, string InDef, int lenInName, int lenInDef, varList vlist, menuList mlist) - { - Definition = new strList(InDef,lenInDef,vlist,mlist); - Name = InName.Substring(0,lenInName); - Len = lenInName; - } - - public strList lookFor(string nam, int l) - { - string tname = nam.Substring(0,l); - if (l == Len && (Name.CompareTo(tname)==0)) - return Definition; // found - return null; // not found - } - } - - public class varList - { - ArrayList varEntryAry; - - public varList() - { - varEntryAry = new ArrayList(); - } - - public void Add(string InName, string InDef, int lenInName, int lenInDef, menuList mlist) - { - varEntry tmpEntry = new varEntry(InName,InDef,lenInName,lenInDef,null,mlist); - varEntryAry.Add(tmpEntry); - } - - public strList lookFor(string str, int len) - { - strList rtnval = null; - for (int i = 0; (rtnval == null) && (i < varEntryAry.Count); i++) - { - rtnval = ((varEntry)varEntryAry[i]).lookFor(str,len); - } - return rtnval; - } - } - - public class seVarUse : strEntry - { - strList Def; - - public seVarUse(strList d) - { - Def = d; - } - - - public override string toText(int mi) - { - return Def.toText(mi); - } - - public override int getLength(int mi) - { - return Def.getLength(mi); - } - } - - public class menuEntry - { - byte id; - strList definition; - - public menuEntry(string idptr,string def,int li,int ld,varList vlst) - { - definition = new strList(def, ld, vlst,null); - // save the id - if(li != 0) - id=(byte)idptr[0]; - else - id=0; - } - - public int getLength(int mi) - { - if(mi==(int)id || mi==-1) - return definition.getLength(mi); - else - return 0; - } - - public virtual string toText(int mi) - { - if (mi == id || mi==-1) - return definition.toText(mi); - else - return ""; - } - - public string getID() - { - string rtnstr = id.ToString(); - return rtnstr; - } - - public int getCount() - { - return 1; - } - } - - - public class menuList : strEntry - { - ArrayList aryMenuList; - - public menuList() - { - aryMenuList = new ArrayList(); - } - - public void Add(menuEntry MnuEntry) - { - aryMenuList.Add(MnuEntry); - } - - private int _getLength(int mi) - { - int lcnt = aryMenuList.Count; - int rtnval =0; - - for (int i=0; i < lcnt; i++) - { - rtnval += (((menuEntry)aryMenuList[i])).getLength(mi); - } - return rtnval; - } - - private int _getLenAndLookat(int mi, ref int lookat) - { - int len =0; - lookat = mi; - - if (aryMenuList.Count > 0) - { - len=_getLength(lookat); - if (len ==0) - { - lookat = 0; - len = _getLength(lookat); - } - if (len == 0) - { - lookat = -1; - len = _getLength(lookat); - } - } - - return len; - } - - public override int getLength(int mi) - { - int lookat=0; - return _getLenAndLookat(mi,ref lookat); - } - - public override string toText(int mi) - { - StringBuilder rtnstr = new StringBuilder(); - int lookat=0; - - int len = _getLenAndLookat(mi,ref lookat); - if (aryMenuList.Count > 0) - { - for (int i = 0; i< aryMenuList.Count; i++) - { - string roval = ((menuEntry)aryMenuList[i]).toText(lookat); - if (lookat == -1) - { - // For Approve Individual, show all possible RO - // values (for conditional RO's) - // We may need to add a flag here later on when - // this logic is used in the Procedure Editor. - if (i > 0 && !roval.Equals("")) - rtnstr.Append("\n"); - } - rtnstr.Append(roval); - } - } - return rtnstr.ToString(); - } - - public string getIds(ref int cnt) - { - StringBuilder rtnstr = new StringBuilder(); - cnt = getCount(); - int arycnt = aryMenuList.Count; - - for (int i=0; i 0); - } - } - - public class seMenuUse : strEntry - { - menuList ml; - - public seMenuUse(menuList m) - { - ml=m; - } - - public override string toText(int mi) - { - return ml.toText(mi); - } - - public override int getLength(int mi) - { - return ml.getLength(mi); - } - } - -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ROFST/ROFST.csproj b/PROMS/ReferencedObjectsOld/LibSource/ROFST/ROFST.csproj deleted file mode 100644 index 3edab4c1..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ROFST/ROFST.csproj +++ /dev/null @@ -1,115 +0,0 @@ - - - Local - 8.0.50727 - 2.0 - {134D8938-9CDC-4712-9444-D5DCC6638AB6} - Debug - AnyCPU - - - - - ROFST - - - JScript - Grid - IE50 - false - Library - ROFST - OnBuildSuccess - - - - - - - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE;Upgrade2005; - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - - - - System - - - System.Data - - - System.Windows.Forms - - - System.XML - - - - - Code - - - Code - - - - - {680054D3-49C4-40E7-92A5-67B97DCE6308} - Utils - - - {551CB7B3-00B1-11D7-8590-482B59000000} - VlnStatus - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ROFST/ROFST.sln b/PROMS/ReferencedObjectsOld/LibSource/ROFST/ROFST.sln deleted file mode 100644 index b88433f4..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ROFST/ROFST.sln +++ /dev/null @@ -1,19 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROFST", "ROFST.csproj", "{134D8938-9CDC-4712-9444-D5DCC6638AB6}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {134D8938-9CDC-4712-9444-D5DCC6638AB6}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ROField/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ROField/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ROField/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ROField/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ROField/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ROField/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ROField/ROField.cs b/PROMS/ReferencedObjectsOld/LibSource/ROField/ROField.cs deleted file mode 100644 index 7d577c9b..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ROField/ROField.cs +++ /dev/null @@ -1,301 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ROField.cs $ $Revision: 11 $ - * $Author: Kathy $ $Date: 4/04/03 9:41a $ - * - * $History: ROField.cs $ - * - * ***************** Version 11 ***************** - * User: Kathy Date: 4/04/03 Time: 9:41a - * Updated in $/LibSource/ROFields - * B2003-030: get correct field type for new image - * - * ***************** Version 10 ***************** - * User: Kathy Date: 12/10/02 Time: 2:27p - * Updated in $/LibSource/ROFields - * fieldname special chars - * - * ***************** Version 9 ***************** - * User: Kathy Date: 12/02/02 Time: 8:30a - * Updated in $/LibSource/ROFields - * fieldname replace chars - * - * ***************** Version 8 ***************** - * User: Kathy Date: 11/11/02 Time: 7:14a - * Updated in $/LibSource/ROFields - * image field type should be 32 not 20 - * - * ***************** Version 7 ***************** - * User: Kathy Date: 10/15/02 Time: 2:17p - * Updated in $/LibSource/ROFields - * combo field number - * - * ***************** Version 6 ***************** - * User: Kathy Date: 9/27/02 Time: 1:11p - * Updated in $/LibSource/ROFields - * fix digit as first char in fieldname - * - * ***************** Version 5 ***************** - * User: Kathy Date: 9/25/02 Time: 2:31p - * Updated in $/LibSource/ROFields - * multitxt->variable - * - * ***************** Version 4 ***************** - * User: Kathy Date: 9/03/02 Time: 2:53p - * Updated in $/LibSource/ROFields - * missing " on image field def. - * - * ***************** Version 3 ***************** - * User: Kathy Date: 8/30/02 Time: 11:56a - * Updated in $/LibSource/ROFields - * image - * - * ***************** Version 2 ***************** - * User: Kathy Date: 8/28/02 Time: 10:59a - * Updated in $/LibSource/ROFields - * development - *********************************************************************************************/ - -using System; -using System.Text; - -namespace ROFields -{ - public enum FieldTypes: uint - { - Nil=0, SingleTxt=1, VariableTxt=2, FrmtSingleTxt=4, XYPlot=8, Table=10, Image=32, - MultiTxt=40, Combination=128, MultiFld=100 - } - - /// - /// Summary description for ROField: This class contains RO Field information. Each ROField - /// contains: - /// string fieldname - the name of the field - /// string recid - its database record id (used to interface to the database - null if - /// not created yet. - /// string masterrecID - its record id in the master if appropriate. - /// uint fieldtype - the field type as defined in the enum FieldTypes (listed above) - /// - public class ROField - { - string fieldname; - string recID; - string masterrecID; - uint fldtype; - - // constuctor - public ROField(string fname, string rID, string mrID, uint fieldtype) - { - fieldname = fname; - recID = rID; - masterrecID = mrID; - fldtype = fieldtype; - } - public string GetFieldname { get {return fieldname;}} - public string GetRecID { get {return recID;}} - public string GetMasterRecID { get {return masterrecID;}} - public uint GetFieldType{ get {return fldtype;}} - public void SetFieldname(string name) {fieldname = name;} - public void SetRecID(string recid) {recID = recid;} - public void SetMasterRecID(string mrecid) {masterrecID = mrecid;} - public void SetFieldType(uint ftype) {fldtype = ftype;} - - // Given a schema string, determine which RO Field type it is. - public uint ParseFieldType(string info) - { - int indx; - // formatted single line text has 'pattern' in schema definition) - indx = info.IndexOf("xsd:pattern"); - if (indx >= 0) return (uint) FieldTypes.FrmtSingleTxt; - - // Combination field has 'choice' in schema definition - indx = info.IndexOf("xsd:choice"); - if (indx >= 0) return (uint) FieldTypes.Combination; - - // image - search for 'Image_Height', in case Image is in the string from some other mechanism - indx = info.IndexOf("Image_Height"); - if (indx >=0) return (uint) FieldTypes.Image; - - // single line text has 'normalizedString' (pattern does too, but - // it would be eliminated above. - indx = info.IndexOf("xsd:normalizedString"); - if (indx >=0) return (uint) FieldTypes.SingleTxt; - - // now look for all of the multi-line fields: multi text, table, & XY Plot - indx = info.IndexOf("xsd:string"); - if (indx <0) indx = info.IndexOf("xsd:String"); - if (indx >=0) - { - int indxspecific; - indxspecific = info.IndexOf("Variable"); - if (indxspecific >= 0) return (uint) FieldTypes.VariableTxt; - indxspecific = info.IndexOf("Table"); - if (indxspecific >= 0) return (uint) FieldTypes.Table; - indxspecific = info.IndexOf("XYPlot"); - if (indxspecific >= 0) return (uint) FieldTypes.XYPlot; - } - - // indx = info.IndexOf("Image"); - // if (indx >=0) return (uint) FieldTypes.Image; - - return 1000; - } - - // Creates a string representing the schema for this field. note that the input - // fieldname will override that which is stored for this ROField (for editting - // purposes). - public string MakeFieldName(string fldname) - { - if (fldname.Length < 2) - return fldname; - // a digit cannot start an xml fieldname, prepend a "__" to it. - string tmp0; - if (char.IsDigit(fldname,0)) - tmp0 = "__" + fldname; - else - tmp0 = fldname; - // an xml fieldname cannot have a space, change it to a "__" - string tmpstr = tmp0.Replace(" ","__"); - int len = tmpstr.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - return outstr; - } - - public string MakeSchemaString(string fieldname, string width, string pattern) - { - uint ftype = this.GetFieldType; - StringBuilder strbld = new StringBuilder(); - strbld.Append("\n"); - if (ftype == (uint)FieldTypes.VariableTxt || ftype == (uint)FieldTypes.Table || ftype == (uint)FieldTypes.XYPlot) - { - strbld.Append("\n"); - if (ftype == (uint)FieldTypes.VariableTxt) - strbld.Append("Variable"); - else if (ftype == (uint)FieldTypes.Table) - strbld.Append("Table"); - else - strbld.Append("XYPlot"); - strbld.Append("\n"); - } - strbld.Append("\n\n\n\n"); - if (ftype == (uint)FieldTypes.FrmtSingleTxt) - { - strbld.Append("\n"); - } - strbld.Append("\n\n"); - return (strbld.ToString()); - } - - public string MakeComboSchemaString(string fieldname, bool fixd, string fixdwid, bool multi, string multiwid, - bool table, string tablewid, bool xyplot, string xyplotwid) - { - StringBuilder strbld = new StringBuilder(); - strbld.Append("\n"); - if (fixd == true) - { - strbld.Append("\n"); - strbld.Append("\n\n\n\n\n\n"); - } - if (multi == true) - { - strbld.Append("\n"); - strbld.Append("\n\nVariable\n"); - strbld.Append("\n\n\n"); - strbld.Append("\n\n\n\n\n"); - } - if (table == true) - { - strbld.Append("\n"); - strbld.Append("\n\nTable\n"); - strbld.Append("\n\n\n"); - strbld.Append("\n\n\n\n"); - } - if (xyplot == true) - { - strbld.Append("\n"); - strbld.Append("\n\nXYPlot\n"); - strbld.Append("\n\n\n"); - strbld.Append("\n\n\n\n"); - } - strbld.Append(""); - return (strbld.ToString()); - } - - public string MakeImageSchemaString(string fieldname) - { - StringBuilder strbld = new StringBuilder(); - strbld.Append("\n\n"); - strbld.Append("\n"); - strbld.Append("\n\n"); - strbld.Append("VLN_FINDFILE\n"); - strbld.Append("\n\n"); - strbld.Append("\n\n"); - strbld.Append("\n\n"); - strbld.Append("\n\n"); - strbld.Append("Lines (6 lines per inch)\n"); - strbld.Append("\n\n"); - strbld.Append("\n\n\n"); - strbld.Append("\n\n"); - strbld.Append("\n\n"); - strbld.Append("Characters (12 chars. Per inch)\n"); - strbld.Append("\n\n"); - strbld.Append("\n\n\n"); - strbld.Append("\n\n\n"); - return(strbld.ToString()); - } - - } - -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ROField/ROFields.csproj b/PROMS/ReferencedObjectsOld/LibSource/ROField/ROFields.csproj deleted file mode 100644 index 21c0b83e..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ROField/ROFields.csproj +++ /dev/null @@ -1,102 +0,0 @@ - - - Local - 8.0.50727 - 2.0 - {0C782592-AA05-11D6-84D1-00A0CC271352} - Debug - AnyCPU - - - - - ROField - - - JScript - Grid - IE50 - false - Library - ROField - OnBuildSuccess - - - - - - - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - - - - System - - - System.Data - - - System.XML - - - - - Code - - - Code - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ROField/ROFields.sln b/PROMS/ReferencedObjectsOld/LibSource/ROField/ROFields.sln deleted file mode 100644 index 19f36f2a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ROField/ROFields.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ROFields", "ROFields.csproj", "{0C782592-AA05-11D6-84D1-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug.ActiveCfg = Debug|.NET - {0C782592-AA05-11D6-84D1-00A0CC271352}.Debug.Build.0 = Debug|.NET - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release.ActiveCfg = Release|.NET - {0C782592-AA05-11D6-84D1-00A0CC271352}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/About.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/About.cs deleted file mode 100644 index 702da814..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/About.cs +++ /dev/null @@ -1,268 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: About.cs $ $Revision: 5 $ - * $Author: Jsj $ $Date: 1/02/08 1:38p $ - * - * $History: About.cs $ - * - * ***************** Version 5 ***************** - * User: Jsj Date: 1/02/08 Time: 1:38p - * Updated in $/LibSource/Utils - * upped copyright to 2008 - * - * ***************** Version 4 ***************** - * User: Jsj Date: 1/02/07 Time: 1:53p - * Updated in $/LibSource/Utils - * uppped copyright to 2007 - * - * ***************** Version 3 ***************** - * User: Jsj Date: 7/18/06 Time: 11:40a - * Updated in $/LibSource/Utils - * turned off Microsoft Solution Provider logo. - * - * ***************** Version 2 ***************** - * User: Jsj Date: 1/03/06 Time: 9:08a - * Updated in $/LibSource/Utils - * upped copyright to year 2005 - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:34a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace Utils -{ - /// - /// Summary description for About. - /// - public class AboutDlg : System.Windows.Forms.Form - { - private System.Windows.Forms.Button btnHlpAbtOK; - private System.Windows.Forms.Label CopyrightMessage; - private System.Windows.Forms.PictureBox pictureBox2; - private System.Windows.Forms.Label lblProgName; - private System.Windows.Forms.Label lblVerRelNums; - private System.Windows.Forms.Label lblSerialNumber; - private System.Windows.Forms.Label lblSerialNumTitle; - private System.Windows.Forms.Label lblUserID; - private System.Windows.Forms.LinkLabel VolianWebLink; - private System.Windows.Forms.Label lblLicenseTab; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public AboutDlg(string ProgName, string SerialNoStr, string SnTitleTab, string SerialNoTitle, string VerRel, string cpyrght, string UIDstr) - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - CopyrightMessage.Text = cpyrght; - this.lblProgName.Text = ProgName; - lblVerRelNums.Text = VerRel; - lblSerialNumber.Text = SerialNoStr; - lblSerialNumTitle.Text = SerialNoTitle; - lblUserID.Text = UIDstr; - lblLicenseTab.Text = SnTitleTab; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(AboutDlg)); - this.btnHlpAbtOK = new System.Windows.Forms.Button(); - this.lblProgName = new System.Windows.Forms.Label(); - this.lblVerRelNums = new System.Windows.Forms.Label(); - this.lblSerialNumber = new System.Windows.Forms.Label(); - this.CopyrightMessage = new System.Windows.Forms.Label(); - this.lblUserID = new System.Windows.Forms.Label(); - this.pictureBox2 = new System.Windows.Forms.PictureBox(); - this.lblSerialNumTitle = new System.Windows.Forms.Label(); - this.VolianWebLink = new System.Windows.Forms.LinkLabel(); - this.lblLicenseTab = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // btnHlpAbtOK - // - this.btnHlpAbtOK.BackColor = System.Drawing.Color.YellowGreen; - this.btnHlpAbtOK.Font = new System.Drawing.Font("Tahoma", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnHlpAbtOK.Location = new System.Drawing.Point(144, 160); - this.btnHlpAbtOK.Name = "btnHlpAbtOK"; - this.btnHlpAbtOK.Size = new System.Drawing.Size(96, 32); - this.btnHlpAbtOK.TabIndex = 0; - this.btnHlpAbtOK.Text = "OK"; - this.btnHlpAbtOK.Click += new System.EventHandler(this.btnHlpAbtOK_Click); - // - // lblProgName - // - this.lblProgName.BackColor = System.Drawing.Color.Transparent; - this.lblProgName.Font = new System.Drawing.Font("Arial", 12F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblProgName.Location = new System.Drawing.Point(8, 8); - this.lblProgName.Name = "lblProgName"; - this.lblProgName.Size = new System.Drawing.Size(360, 19); - this.lblProgName.TabIndex = 1; - this.lblProgName.Text = "Program Name"; - this.lblProgName.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // lblVerRelNums - // - this.lblVerRelNums.BackColor = System.Drawing.Color.Transparent; - this.lblVerRelNums.Font = new System.Drawing.Font("Arial", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblVerRelNums.Location = new System.Drawing.Point(8, 40); - this.lblVerRelNums.Name = "lblVerRelNums"; - this.lblVerRelNums.Size = new System.Drawing.Size(352, 24); - this.lblVerRelNums.TabIndex = 2; - this.lblVerRelNums.Text = "Version 0 Release 0"; - this.lblVerRelNums.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // lblSerialNumber - // - this.lblSerialNumber.BackColor = System.Drawing.Color.Transparent; - this.lblSerialNumber.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblSerialNumber.Location = new System.Drawing.Point(8, 72); - this.lblSerialNumber.Name = "lblSerialNumber"; - this.lblSerialNumber.Size = new System.Drawing.Size(360, 16); - this.lblSerialNumber.TabIndex = 3; - this.lblSerialNumber.Text = "Serial Number: xx"; - this.lblSerialNumber.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // CopyrightMessage - // - this.CopyrightMessage.BackColor = System.Drawing.Color.Transparent; - this.CopyrightMessage.Font = new System.Drawing.Font("Arial", 6F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.CopyrightMessage.Location = new System.Drawing.Point(8, 192); - this.CopyrightMessage.Name = "CopyrightMessage"; - this.CopyrightMessage.Size = new System.Drawing.Size(232, 16); - this.CopyrightMessage.TabIndex = 4; - this.CopyrightMessage.Text = " Copyright C 1988 - 2008 All Rights Reserved"; - this.CopyrightMessage.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // lblUserID - // - this.lblUserID.BackColor = System.Drawing.Color.Transparent; - this.lblUserID.Font = new System.Drawing.Font("Arial", 7.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblUserID.Location = new System.Drawing.Point(8, 136); - this.lblUserID.Name = "lblUserID"; - this.lblUserID.Size = new System.Drawing.Size(360, 16); - this.lblUserID.TabIndex = 6; - this.lblUserID.Text = "User ID: xxxxx"; - this.lblUserID.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // pictureBox2 - // - this.pictureBox2.Enabled = false; - this.pictureBox2.Image = ((System.Drawing.Image)(resources.GetObject("pictureBox2.Image"))); - this.pictureBox2.Location = new System.Drawing.Point(272, 160); - this.pictureBox2.Name = "pictureBox2"; - this.pictureBox2.Size = new System.Drawing.Size(69, 32); - this.pictureBox2.TabIndex = 7; - this.pictureBox2.TabStop = false; - this.pictureBox2.Visible = false; - // - // lblSerialNumTitle - // - this.lblSerialNumTitle.BackColor = System.Drawing.Color.Transparent; - this.lblSerialNumTitle.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblSerialNumTitle.Location = new System.Drawing.Point(112, 96); - this.lblSerialNumTitle.Name = "lblSerialNumTitle"; - this.lblSerialNumTitle.Size = new System.Drawing.Size(256, 32); - this.lblSerialNumTitle.TabIndex = 8; - this.lblSerialNumTitle.Text = "Serial Number Title"; - // - // VolianWebLink - // - this.VolianWebLink.Location = new System.Drawing.Point(248, 192); - this.VolianWebLink.Name = "VolianWebLink"; - this.VolianWebLink.Size = new System.Drawing.Size(112, 16); - this.VolianWebLink.TabIndex = 9; - this.VolianWebLink.TabStop = true; - this.VolianWebLink.Text = "Volian Enterprises Inc."; - this.VolianWebLink.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.VolianWebLink.LinkClicked += new System.Windows.Forms.LinkLabelLinkClickedEventHandler(this.linkLabel1_LinkClicked); - // - // lblLicenseTab - // - this.lblLicenseTab.BackColor = System.Drawing.Color.Transparent; - this.lblLicenseTab.Font = new System.Drawing.Font("Arial", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblLicenseTab.Location = new System.Drawing.Point(8, 96); - this.lblLicenseTab.Name = "lblLicenseTab"; - this.lblLicenseTab.Size = new System.Drawing.Size(104, 24); - this.lblLicenseTab.TabIndex = 10; - this.lblLicenseTab.Text = "Licenced To:"; - // - // AboutDlg - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 12); - this.BackColor = System.Drawing.SystemColors.GrayText; - this.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("$this.BackgroundImage"))); - this.ClientSize = new System.Drawing.Size(370, 209); - this.Controls.Add(this.lblLicenseTab); - this.Controls.Add(this.VolianWebLink); - this.Controls.Add(this.lblSerialNumTitle); - this.Controls.Add(this.pictureBox2); - this.Controls.Add(this.lblUserID); - this.Controls.Add(this.CopyrightMessage); - this.Controls.Add(this.lblSerialNumber); - this.Controls.Add(this.lblVerRelNums); - this.Controls.Add(this.lblProgName); - this.Controls.Add(this.btnHlpAbtOK); - this.Font = new System.Drawing.Font("Microsoft Sans Serif", 6F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "AboutDlg"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "About"; - this.Load += new System.EventHandler(this.AboutDlg_Load); - this.ResumeLayout(false); - - } - #endregion - - private void btnHlpAbtOK_Click(object sender, System.EventArgs e) - { - this.Close(); - } - - private void linkLabel1_LinkClicked(object sender, System.Windows.Forms.LinkLabelLinkClickedEventArgs e) - { - System.Diagnostics.Process.Start("www.volian.com"); - } - - private void AboutDlg_Load(object sender, System.EventArgs e) - { - - } - - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/About.resx b/PROMS/ReferencedObjectsOld/LibSource/Utils/About.resx deleted file mode 100644 index 5362d584..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/About.resx +++ /dev/null @@ -1,4144 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - - R0lGODlhRgAgAPcAAACK/wCN/wCP/wCT/wCR/xCZ/6ja/7jh//b7//j8/wCX/wCU/wCZ/wGZ/wKW/wKZ - /wOa/wSZ/waX/weZ/web/wec/wmc/wma/wud/wyc/w2e/w+d/w+f/xSe/xWh/xii/xuk/x2j/x2k/x6l - /yGm/ySn/yWo/yin/ymp/y2q/zCs/zGr/zOt/zar/zmu/zuw/0O0/0Wy/0a0/0iy/0i1/0i2/0u3/023 - /0+4/1G5/1O6/1W7/1a7/1e8/1i8/1q9/12+/2C//2XB/2rD/2/F/3HE/3HG/3PF/3TH/3bI/3nJ/37L - /3/M/4DL/4DM/4LN/4XO/4fP/4rO/4rQ/43R/4/R/5HT/5bV/5rV/5vX/5zX/57Y/6DY/6Xb/6nc/6rd - /63e/6/f/7Lg/7Th/7fi/7ji/7rj/7zk/77l/8Hm/8Pn/8bo/9Hs/9Pt/9Xu/9jv/9vw/+Hz/+Lz/+b1 - /+n2/+z3/+74//D5//P6//r9/wSb/wWc/wue/zav/0Cz/2PB/3LH/4PO/43S/47S/5LU/5jW/6La/6fc - /7Xi/7vk/8Xo/8nq/8zr/8/s/9Pu/97y/+P0//f8//H6//T7//z+//v+//////z8/Pv7+/n5+fb29vT0 - 9PLy8vDw8O7u7uzs7Ovr6+np6ebm5uXl5eLi4uDg4N3d3dra2tfX19XV1dLS0s3NzcnJycfHx8TExMHB - wb29vbq6uri4uLa2trW1tbOzs7CwsK6urqurq6ioqKenp6SkpKGhoZ6enpycnJubm5iYmJWVlZOTk5GR - kY6OjoyMjIuLi4iIiIaGhoWFhYODg4CAgH5+fnx8fHl5eXZ2dnFxcW9vb2xsbGlpaWZmZmNjY2FhYV9f - X11dXVtbW1hYWFZWVlVVVVJSUlFRUU9PT01NTUtLS0hISEdHR0VFRUJCQkBAQD09PTk5OTY2NjIyMi8v - LywsLCkpKSYmJiMjIyAgIB4eHh0dHRoaGhcXFxQUFBMTExEREQ8PDw0NDQsLCwkJCQcHBwUFBQICAgAA - ACwAAAAARgAgAAAI/wAtCRxIsKDBgwgTKlyI0Nm/h/8EpoP4j9lDhhgzWnpojyHFiBshvoKosSRCiJoe - ykv40VIrigdXxVKIitqzgrbCcVtVEBk3WANVPVQV8hVLmC0f1guJlKKujxGTQRU4FSrEfJYuGfy47GO1 - h6YgjiNpNSK8h6tIhrSU76E1puIginv3UBxPrQQd/gNHcddDfhBZoc06bpzQi2pDxvvoydIntWQRXzwp - +eOvqQTT/uPGdOBDcEwh7nuIiapkzom3VsYVGfBkYL58QZ78T1jBpy1N8+NE+5+toxEjB//nyt9F3rlJ - jkz+cOK/cp3L9W58MFhk0/6y9W56TmCoqfaglv8K/fBU5/MGu23bJsvSekul1rPSVm3bwHr//IESuF7T - wEzG/ZPJQMRcRdA5D8EzUDXVXCOQJtxgY9KEFFZo4YUYZqjhhgTpoMAABS0gogAEibiAFyWKCKJAbSyQ - oogEERCiiC6kmMJBKjBgCQgWEKSjQTre8eNADDhBkCNDWsLAigQpUFCSAzm5gJMFfXgQAxVU8KQbIUBZ - 5JFJMqCAEWE0+WSWVVoSCZSWLAAiAm/4eCUCDODxpJEDIenjAm3MYaacBjmpBptjMGCHAkH4aMUgU8g5 - gIs+4imQnkQyGeWTgwyCYpRliImQDI0U9MWohxD0hSWUnGqqGwTdoapAX3R7YdCmA436BRqmvsrhrrz2 - 6isABAQr7LDEFmvsscgmayyJvjbr7LPQDsQDBwf1ES2GdAiEggUyWlLIFQ9AkgezBLBgSR4BXMvQCAqQ - CMcXhOxgUBcExAGHuhmtaIhAebBpCR8CIYAvQw8MJEC2VAaAxEBxCBBGjQNHrFFAADs= - - - - False - - - Private - - - Private - - - Private - - - Private - - - False - - - False - - - Private - - - Private - - - True - - - (Default) - - - False - - - False - - - 8, 8 - - - AboutDlg - - - True - - - 80 - - - True - - - Private - - - - Qk0OjAMAAAAAADYAAAAoAAAAcgEAANEAAAABABgAAAAAAAAAAAASCwAAEgsAAAAAAAAAAAAApaWlpaWl - pqampqanpqanpqanpaWlpaWlpKSko6Oko6Oko6OkpaWlpqanpqanpqanpqampaWlo6Okpqanpqanpqan - paWmo6Oko6Oko6Oko6Oko6OkoqKjoaGhoqKio6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWm - pqanpqanpqanpaWmpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - o6OkoqKjoqKjo6Oko6Oko6OkpKSlpKSlpaWkoKCplZW0jo65j4+5j4+6kpK1kZG1jIy5jY24jY25jY27 - kpK1mpqtoKCno6OjoqKioqKioaGhoaGfnZ2jk5OwjY24hITDgoLEhITFhYXHhYXHhYXHjIy/jY2+jIzA - k5O4oaGqpKSloqKjoaGhoaGhoqKjoqKjoqKjnZ2okJC2i4u6ioq6iIi8iYm8iYm8ioq7ioq9jo64kpKy - lJSxmZmpoKCioaGhoaGhoaGhoaGhoaGhnp6nmJiuj4+4ioq+ioq7ioq8hITEg4PFg4PFgoLGhYXDjo65 - mZmnoKChoqKhoqKioqKioqKioqKjlZWwjIy6i4u8iIi+g4PGg4PFg4PFhobChobCioq9k5OzlZWwmpqn - oKCioaGhoaGhoaGhoaGhoKChlJSvjY24iIi+gYHFgoLEgoLEgYHDgYHCgIDCf3/Bf3/BgYHCgoLDgoLF - goLFg4PGhITEkJC3n5+mpKSgoKCklpaviYm+g4PFgoLFgYHFgoK+iIiyjY2uiIi5iYm8iYm8iYm9jIy7 - lJSym5uso6Okmpquioq/goLIg4PFg4PFgYHEhYW8h4e3hIS7gIDDgYHEgoLEg4PFg4PGioq9mJiroqKg - oqKgnJynlJSwkJC0kZGzkZGzkZGyioq3goLAgYHEgoLEg4PFhYXFiorAlpayn5+noqKloqKmpKSlmJiw - iYnChITHhYXFhYXEg4PFgYHCf3/ChIS9iIi4h4e7g4PChYXEg4PGjIy7m5uqpKSgoaGjlJSyh4fCg4PG - hITFgoLFgYHDgIDChoa4hoa2h4e4iYm6i4u6j4+6j4+6jY28l5eyoqKmpaWlpKSlnJyslJSzkZG1jo63 - iYm7iYm6iIi5h4e2g4O8gYHCg4PChYXEioq+j4+7kJC8kpK4nJyupKSlmpqymZmzmpqylJS3iYm/hITC - gYHCgYHCgYHDgYHEgoLEg4PCjo65jo65jY26kZG2m5urpKSjo6Oko6OkpaWmpqanpqanpqanpaWlpaWl - paWlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6OkpaWlpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWl - paWlpKSlo6OkoqKio6OkpKSlpaWlpaWlpaWlpaWlpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWlpKSl - o6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlIACmpqelpaWlpaWlpaampqempqempqelpaWlpaWkpKWjo6Sj - o6Sjo6SlpaWmpqampqempqempqelpaWjo6Slpaampqempqelpaajo6Sjo6Sjo6Sjo6Sjo6Sjo6KhoaGi - oqKjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqempqalpaWlpaWlpaWlpaWk - pKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SioqOioqOjo6Sjo6Sjo6SkpKWkpKWf - n6qZmbCYmK+Tk7WJicCHh8OHh8KIiL+MjLiMjLmRkbWZma6goKijo6Sjo6Sjo6SioqKioqKhoaKamqiM - jLeFhcKDg8SCgsSDg8SEhMaFhcaMjMCNjb6MjL6Pj72amrKmpqWlpaakpKWjo6OhoaGioqGioqOenqea - mqyTk7OMjLqIiL2JibyJib2KiruHh8CGhsGFhcKKir2Vla+fn6OhoaGhoaGhoaGhoaGhoaGfn6SYmKyV - la+Pj7eKiryJibuEhMODg8WDg8WCgsaEhMSNjbqXl62fn6OgoKCgoKCioqKioqKioqKjo6KWlq+OjrmI - iMCDg8SDg8WDg8WDg8WEhMWHh8COjriWlrCbm6mgoKShoaGhoaGhoaGhoaGhoaGhoaCWlq2Jib2Dg8WD - g8WCgsSBgcOBgcOBgcKAgMF/f8F/f8GAgMGBgcKCgsSCgsaDg8WKir6NjbuZma2ioqKhoaOWlq+Kir2J - icCHh7+Ghr6JibWLi6+Hh7aIiLqLi72Li76Kir6NjbuUlLOXl6+enqednaqQkLiHh8KJicCJib+Hh7yI - iLiEhLuAgMGAgMOCgsSCgsWEhMWEhMaIiMGUlLKfn6ShoaGamqiXl62YmKyXl62RkbKMjLiDg76AgMGA - gMOBgcSDg8WKir+Kir+WlrKdnaqcnKyenqukpKWbm62Tk7eNjb2Hh8OCgseDg8aBgcaEhL6Hh7aFhbmB - gcOCgsSDg8WDg8aJib+WlrCioqShoaOWlq+JicCDg8eBgceAgMZ/f8SFhbqFhbaFhbaHh7iKirqMjLqP - j7qPj7qPj7uUlLWenqumpqSkpKWhoaeVlbSOjruMjLqKiruKiruKiriEhLyBgcCBgcKEhMCKir6MjL2P - j72Tk7uUlLmZmbKlpaOenqqamrCZmbKRkbuGhsWFhcSCgsSBgcKBgcKBgcSEhMKKir2MjLyMjLyLi72T - k7Senqajo6Kjo6Sjo6Sjo6SlpaampqempqempqelpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sj - o6Sjo6SlpaWmpqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6SkpKWlpaWlpaWl - paWlpaWmpqampqempqempqelpaWlpaWlpaWlpaWlpaWlpaWjo6SlpaWlpaWlpaWlpaWlpaWlpaUgAKam - p6ampqWlpaWlpaWlpqamp6amp6ampqWlpaWlpaSkpaOjpKOjpKOjpKSkpaamp6amp6amp6ampqSkpKSk - pKWlpqamp6amp6WlpqOjpKOjpKOjpKOjpKOjpKKio6GhoaKioqOjpKOjpKSkpKWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpqamp6amp6amp6ampqWlpaWlpaWlpaSkpaOjpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKKio6OjpKOjpKWlo6CgqJycrJubrZaWtIqKv4WFxYSEx4KCx4ODwouLuJKS - sZmZqpycqaCgp6Sko6OjpKOjpKOjo6OjoZ6eppOTs4aGwIKCxYODxYODxYKCxoSExIqKv42NvoyMv4qK - wpGRup+frKampaWlpqWlpqSkpaKio6GhoaCgo5mZrJSUso6OuIuLvImJvYiIvIqKvIaGwoSExIODx4SE - xI2NuJqaqqGhoaGhoaGhoaGhoaGhoKCgopiYq5WVr5CQto2NuYiIvIODwoODxoODxYKCxoaGwo+PtpmZ - qp+foqGhoaGhoaCgoKCgoKGhoaKiop+fppKStYiIwIODxYODxoODxYODxYODxYSExYODxYiIvpWVr6Gh - o6KioqKioqKioqGhoaGhoaCgoZycppCQsoaGwYKCx4ODxYKCxYGBw4GBw4CAwn9/wX9/wX9/wX9/wYCA - wYCAxISEw4qKvYuLu4qKvpeXsKGhpKCgpJaWro6Ot4+Pt4+PtZCQs42NtIiItoWFuIiIuoqKvIyMv42N - vY+PupGRuJGRtpWVsJ+fp5mZrpCQuJGRuIyMvY2NuoeHvoGBwn9/wn9/wYGBw4ODxIWFxIWFxYaGxI2N - upqarKGhop+fpKCgpJ6epJWVrYqKu4ODwYCAwoCAwYCAwoODwoiIvIuLuomJv5aWsZ6eqZycq56eqaSk - paCgqJqarZaWs4+Pu4iIwomJwIeHvoiIuYWFuoGBwYGBxYGBxIODxYODxoSExI2NuZycqaKiopycqJOT - so6OuY2Nuo6Ot4yMtomJuIeHt4WFtoaGt4qKuY2NuZCQupCQupSUt5aWt5ycsaenpaWlpaSkpJ2drJGR - uYmJv4qKvImJu4SEvoCAwICAwYGBwYODwoaGw4yMvZKSuZWVuJaWuJubsqSkp6SkpZqar4+PvIeHxYSE - yIWFx4SExYKCw39/xIODwImJu4qKu4yMvIyMvIqKvpOTs6CgpKOjoaKio6OjpKOjpKOjpKWlpqamp6am - p6ampqampaSkpKSkpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSkpKampaamp6amp6amp6ampqWlpaWl - paWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpqamp6amp6amp6amp6WlpaWlpaWl - paWlpaOjo6KioqSkpaWlpaWlpaWlpaWlpaWlpSAApqanpqanpqanpaWlpaWlpqampqanpqanpqampqal - paWlpKSlpKSlpKSkpaWlpqampqampqanpqanpqampKSkpKSlpaWmpqanp6eopaWmpaWmpaWmpaWmpaWm - o6OkoqKioaGhoaGioqKko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpqampaWl - paWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Oko6Oko6OkoqKjo6Ojo6Oko6Oko6Oko6Oko6Oko6Oko6Oj - np6pmpqvlZW0iorAhITHhYXHhITHg4PDhoa+ioq6jo60mJionp6loaGko6Ojo6Oko6Oko6OkpaWhnp6o - j4+5goLGg4PFhITFg4PGhITEiYm/jIy8i4u+iorAj4+7m5uvpKSmpaWmpaWmpaWmpaWmpKSlo6Oinp6l - k5Ozjo65ioq+iYm+ioq8iIi9hobBg4PFgoLGhYXEi4u8lZWvoKCioaGhoaGhoaGhoaGhoqKgoKCilJSw - kJC2jIy6iIi+hITCgYHFg4PFhITGg4PGhYXDjo65m5uqoqKfoaGhoaGhoKCgoKCgoaGgoaGimJisj4+4 - hobDgoLHg4PFg4PFgoLEg4PFg4PGhITEi4u7lpauoqKhoqKhoqKioqKioqKhoKChnJymlpatjY23hYXB - gYHGgYHFgoLFgYHDgYHDgIDCf3/Bf3/Bf3/Bf3/Bf3/DgoLBiIi8i4u6jIy7kpK0nZ2poqKjoaGknp6n - m5uol5esk5Owj4+zioq4hoa6hYW4h4e6iYm8jIy7jo67jo67jo68jY28kpK2oKCknJyqkZG4j4+5jY28 - iYnBg4PFgYHFgIDCf3/CgoLDhYXDhYXEhYXFhITGiIjClpaxoqKjo6OgoKCim5uokpKxiIi9gYHEgYHD - gIDCgIDChITAiIi9iIi/jo66lpaymJiwmZmunp6ppKSlpKSlmpquk5O2j4+7jIy9i4u8i4u4hoa7gYHA - f3/DgYHDgYHEg4PFhITFgoLIiIjAmJitpKSgoqKim5upmZmsmJiulJSyj4+2iYm5hoa4hYW3iIi3jIy4 - jo65j4+8j4+9kZG7k5O5m5uxqKimpqampqaloqKmlZW1i4vAjY28i4u5hoa8gYG+gIDAgYHCgoLCioq+ - kJC3k5O1k5O4lJS5l5e2nZ2vpqamm5uuioq/g4PHhITGhYXGg4PFgYHEgYG/hoa5ioq3iYm7h4fBh4fB - hobDjIy7mZmuoKCjoqKio6Ojo6OjoqKjo6OkpaWmpqanpqanpqanpaWlpKSkpKSkpaWlpaWlpaWlpaWl - o6Olo6Oko6Oko6OkpKSkpaWlpqanpqanpqanpqampaWlpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Oko6Ok - pKSlpaWlpaWlpaWlpqampqampqampqampaWlpaWlpaWlpaWlpKSkoqKjoqKjo6OkpaWlpaWlpaWlpaWl - IACmpqempqempqempqelpaalpaWmpqampqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaWmpqampqam - pqelpaWjo6SkpKWlpaalpaalpaalpaampqempqempqekpKWjo6SioqKioqKioqOjo6Sjo6SkpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqelpaalpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sj - o6Sjo6SioqKhoaGioqKjo6Ojo6Ojo6OioqOjo6ShoaWcnKuUlLWKisGDg8iFhcaEhMaEhMSHh76JibmJ - ibqHh7yUlKyfn6GioqCioqKjo6Ojo6Sjo6SkpKSamq6Kir2CgseDg8aDg8WFhcOKir+MjLyLi72Kir6O - jrubm66kpKWmpqSlpaWlpaalpaalpaampqWjo6WamqyNjbmJib6Kir2Kir2Jib6FhcCBgcODg8SFhcOM - jLuTk7Kbm6ijo5+hoaGhoaGhoaGhoaGhoaGdnaWQkLWKiruIiL+EhMOBgcaCgsWDg8WEhMaDg8eFhcWO - jryZma2hoaGhoaGhoaGhoaGhoaChoaCenqWSkrSLi76GhsSDg8aDg8WDg8WCgsSBgcWEhMOMjLqVlbCZ - mamhoaGioqKioqKioqKioqGhoaKZmamUlLCOjreHh76EhMKDg8KBgcSAgMKBgcKAgMF/f8F/f8F/f8J/ - f8KBgcGHh7yKiriJibqLi7qZmaqgoKShoaWhoaSjo6GhoaOamqmRkbOJibqGhruGhriFhbiFhbiIiLmM - jLmNjbyNjb6Njb2Ojr2QkLidnaidnamRkbeKir+JicCEhMeCgseBgcSAgMKAgMGDg8KEhMSEhMWDg8WD - g8aIiMKTk7WgoKejo6KdnaaUlLCMjLqGhr+CgsSBgcOBgcKCgr+Dg7+EhMKGhsKQkLmRkbiOjrqRkbea - mq2jo6OlpaKbm66Pj7yKisCMjL2Li7yIiLyCgsJ/f8J/f8GAgMKBgcODg8WDg8WEhMWJib+VlbKioqOi - oqKcnKiZmauVlbCOjrmKir2KirqHh7mHh7eKirWNjbeNjbyMjL2Njb6MjMCNjb+YmLSmpqempqempqah - oaaXl7GQkLqQkLiNjbiIiLqCgr5/f8GBgcCHh7yPj7mSkreQkLmPj7uOjryRkbqcnLGmpqegoKyRkbmF - hcODg8aEhMWBgcSCgr+GhreGhreFhbyFhb2BgcSCgsaBgceEhMWNjbubm6uioqKioqKioqKioqKioqKi - oqSlpaampqempqempqelpaWjo6SkpKWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6SlpaWmpqampqem - pqelpaalpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWkpKSlpaWl - paWlpaWlpaWlpaWkpKWioqKjo6OkpKWlpaWlpaWlpaUgAKamp6amp6amp6amp6ampqWlpaWlpaamp6am - p6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKKio6Kio6Wlpaam - p6amp6amp6SkpaOjpKOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqamp6am - p6amp6WlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKGhoaGhoaKioqKioqKioqKio6Ki - opubq5OTtomJwYODx4SExoSExoSExYmJv4uLu4mJu4mJuYqKuJeXqZ+foaGhoKGhoaKioqOjpKOjpJ2d - qpOTtoqKwIWFw4aGwoODwomJvoyMvIuLvYuLvY6OuZubqqOjpKWlpKWlpaWlpaWlpaWlpqWlpqampaGh - qZOTtYiIwImJvYmJvYmJvYWFwYGBxYGBwoKCw4eHvZCQtJmZqqCgo6GhoaGhoaGhoaGhoaGhoJ6epZSU - sIqKuomJuoaGwYODxYODxYODxYODxYSExYWFxJCQuZubraCgp6Kio6GhoaGhoaGhoaGhoZ6epJOTr4mJ - vISExYODxoSExYSExYODxYODxoKCxYuLupWVr5qaqZ+fo6GhoaGhoaKioqKioqKioqCgpJqaqJOTr42N - t4yMuoyMuImJu4KCwoCAwICAwX9/wX9/wX9/wYCAv4CAv4WFuYiIt4mJuomJu4qKuZaWrZqap5ubqJ+f - pqGhpJubq5WVsouLuoiIvYmJu4eHuoaGuYWFt4eHuImJu4yMvY6Ovo6OvZCQu46OvJqar6CgppeXr4qK - v4SExYWFxIODxYGBxIGBwoGBwIGBwYKCxIODxYSExYiIwIyMvI6Ou5qarKOjpKGhpJWVroiIvYKCw4KC - wIGBwIKCv4KCvoKCvoWFv4qKvYuLvouLvoyMvo6Ou5WVs6KipqSkpKGhppeXso2NvYyMvouLv4ODxYGB - xICAwn9/wX9/wYGBwoODxYODxImJv4yMvI+PuJubqaKiop+fpZaWr42NuYmJvouLvIuLvYqKuomJtIqK - tIuLuYuLvIyMvY2NvY2NvoyMv5KSuaCgrKamp6enp6OjqZycrJWVsY+PuIiIvIODwoGBwoGBvoWFuIyM - touLvYqKv4qKv4qKv4qKv5GRuqCgraWlp6WlqJubsYuLv4SExYWFwoKCwYaGuIaGtoKCvX9/wn9/w4GB - w4KCxIODxYODxoiIwJaWsaKio6KioqKioqKioqKioqKioqKio6Wlpqamp6amp6ampqSkpaOjpKWlpaWl - paWlpaWlpaWlpaOjpKOjpKOjpKOjpKSkpKWlpqamp6amp6amp6WlpqWlpaWlpaWlpaWlpaOjpKOjpKOj - pKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKSkpKWl - paWlpSAApqanpqanpqanpqanpqanpqanpaWlpaWlpqampqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWloqKioqKipKSjpqampqanpqanpqanpKSlo6Oko6Oko6Oko6Oko6Ok - o6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpaWl - pKSlo6Oko6Oko6Oko6OkoqKioaGhoaGhoqKioqKin5+klpawiYnAg4PHhITFhITGhITGiYnAjIy+i4u9 - ioq8ioq5kZGwnZ2ioKCen5+foKCgoaGhoqKin5+nmJivk5O0kpK2kZG4j4+4ioq6iIi7ioq9ioq+jY26 - mpqroKCkoqKio6OkpaWlpaWlpaWlpaWlpaWmpqalnZ2ukJC8ioq/ioq9ioq8hYXBgYHFgoLEgYHDgYHD - goLCjIy2m5uno6OfoaGhoaGhoaGhoqKgn5+klZWwioq8jIy5i4u5i4u6h4fBg4PGhITFhITFg4PFjo64 - mZmtn5+no6Ojo6OkoqKjoaGhoqKgn5+jlpauioq9g4PDgoLFhITGhITGhITGhITGhITGiYm/kpKxmpqo - n5+koaGhoaGhoaGhoaGhoqKhoaGkm5urlJSxjIy5iYm6iYm5iYm5iIi5hYW8goK8f3+/f3/Af3/BgIC+ - hYW2hoa3hoa3hoa4h4e5iIi6ioq5j4+ympqpnJynn5+loaGlmZmtlJSyjY26ioq7iYm6h4e5hoa4hYW2 - hoa3iIi5i4u8jo69kJC7kJC7kJC7m5uuo6OknZ2pkJC4jIy8jIy9hobCgoLDgYHAgYHAgYHDg4PFg4PG - iIjAjIy8jIy9kJC4nJyqoqKlpKSjoaGllZWuiIi8iYm7hIS+goK/gYG/goK9h4e7ioq7ioq8i4u+kJC5 - lJS1lZW0nJysoqKlpKSjoqKmmJiyiorAhYXGhITGgoLFgYHDgYHCgIDBgYHDg4PFiYm/jIy7jIy7jY26 - lpawoaGjpKSgmpqrkJC3jIy8jIy8jIy8jIy3ioqyiYm1iYm7ioq7i4u8jIy9jIy+kZG5mZmxoKCspqan - pqanp6emo6OolZWzh4fAgoLBgYHBgYHCiIi0jIyviIi7ioq9hITEhITFhITGh4fDkJC6mZmwoqKqpqan - pKSpl5e1i4u+i4u6iIi5h4e3goK8f3/BgIDBgYHCgYHEgoLEg4PEh4fAjY27k5O0n5+loqKjoqKioqKi - oqKioqKioqKio6OkpaWmpqanpqanpqanpaWlo6OkpKSlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6OkpKSk - paWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlo6Ok - o6Oko6Oko6OkpKSkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlIAClpaWmpqempqempqempqempqempqel - paWlpaWlpaampqempqempqelpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Oh - oaGjo6OlpaampqempqempqekpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6SioqKhoaGhoaGi - oqKenqaUlLKIiMCDg8aEhMaFhcWKir+Li76MjL2MjL2Li76Li7uXl6qdnaCfn56fn5+fn5+goKChoaGe - nqaamq6Tk7aQkLqPj7mKiruJibuJibuJibyKir2NjbuVlbKhoaWjo6KioqOjo6SkpKWlpaWlpaWmpqSi - oqqVlbiKisOMjMGLi7+GhsSCgsWCgsSCgsSCgsSDg8KOjrSVlaqcnKOhoaChoaGhoaGhoaGjo5+bm6iP - j7WLi7uMjLqLi7mEhMCCgsWDg8WDg8WDg8WCgseKir2YmKyioqSjo6Sjo6Sjo6SioqOjo6CdnaWQkLaE - hMSDg8WDg8WEhMaFhcaFhcaFhcaKisCRkbiamqydnaSdnaOhoaGhoaGhoaGhoaGioqCenqWUlLGNjbmM - jLyKiryIiLuIiLqHh7mHh7eGhraGhreIiLWIiLWGhreFhbaFhbeGhreGhreGhriJibiRkbCYmKqamqiZ - mamcnKWhoaGfn6aenqaamqqWlrCTk7GOjrOHh7mGhreGhreHh7iMjLmPj7mPj7mRkbmTk7ehoamlpaOe - nqmWlrCQkLSMjLuGhsKCgsOAgMF/f8GBgcKAgMSIiMCMjL2Li72QkLibm6yioqWjo6SkpKOhoaaXl7CK - iryFhcGDg8CCgsCDg7yGhriGhriIiLmKiruKir2Pj7mXl7KdnaucnKyioqWkpKOgoKeWlrOJicGDg8eE - hMaEhMWCgsWBgcOBgcKDg8SLi76Njb2Njb6Pj7mSkrSTk7OhoaOjo6Genqabm6mZma2RkbWSkrWRkbGK - irWHh7mJibmJibqLi72MjLyLi76UlLWgoKqkpKekpKimpqeoqKWgoK2QkL2EhMaEhMSAgMSKirSKirGF - hbeFhbqDg8SEhMSEhMWFhcWEhMaHh8KTk7WgoKmmpqakpKmdnbCWlraSkraLi7qEhL+AgMF/f8F/f8GA - gMKCgsSCgsOGhr+NjbmRkbWTk7SamqyhoaSioqOioqKioqOjo6Sjo6Sjo6Sjo6Slpaampqempqempqel - paWjo6SkpKSlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWl - paWkpKWjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWkpKSk - pKWmpqempqcgAKOjpKSkpaampqamp6amp6amp6amp6amp6WlpqWlpaWlpqamp6amp6amp6WlpqWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjo6Ojo6WlpaWlpaamp6amp6amp6SkpaOjpKOj - pKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKKioqGhoZ+fpZmZrZCQuIuLvYeHwYODxoSExYaGxIuLv42N - vIuLvo6Ou5iYr5+fo5+fn56enp6enp+fn5+fn56eo5mZqZOTs5CQuI+PuY6Ou4uLu4aGwoWFw4WFxIWF - xIiIvpWVsaGhpKOjoqKio6Kio6Kio6SkpaWlpaampKGhqZiYs5OTuJSUuIeHxISExYODxYODxYSExYSE - w4qKvZWVrZ2dop+fn5+fn6CgoKGhoaGhoJ+fpJiYq5CQtIuLu4qKvIaGwoODxYKCxYKCxIODxoKCx4qK - vJGRs5qaqaCgo6Ojo6OjpKOjpKSkpKKipJiYrYqKvYKCxoODxYSExYWFxYSEx4WFxoyMv5KSt5WVs5ub - raCgpqGhoaCgoKGhoaGhoaKioKCgopiYrYyMu4uLu4qKvYqKu4qKuYmJuYiIuYmJt4iItomJtIiItIaG - toWFtoWFt4aGtoGBvYCAwYGBwoSEwIuLto+Pto+PuJCQtpqaq6SkoKGhoZ6ep5iYrpaWsZKStouLu4mJ - uoeHuYaGt4iItYyMto+PuJGRuJOTtZWVtZqasJ+fq6OjpqKip5mZrpCQs4qKuoODwn9/xH9/woGBw4WF - u4mJuYqKvJGRt52dqaSko6Sko6OjpKSko5+fqJGRt4aGw4SEwoSEwoSEv4aGu4eHuIaGuImJuomJu4mJ - u4uLvJCQuZeXsZycrKOjpKWlop+fqJaWs4+Puo6OuIqKv4WFxYKCxoCAxYGBwYmJvI2Nu4yMvIyMvYyM - vI2Nu46OuZubqqKioqCgpZqaq5WVsJGRspCQsoyMtoeHt4aGt4iIuYmJuoyMvI2NvYuLwJSUtZ+fqZ+f - qp+frKSkp6enpaOjq5iYtZGRvJKSuZCQtouLtoeHtoSEuYCAv4GBwoODxISExYODxoWFxI2NvZaWs6Ki - paWlo6OjqZ6esZmZtpWVt4iIwoODxIGBw4CAwYCAwYCAwYODwoeHvo2NuJKSs5KSspWVsZycq6GhpKKi - o6Kio6Kio6KioqOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaWlpaOjpKOjpKOj - pKOjpKOjpKOjpKWlpaampqamp6Wlpqamp6WlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKSkpaWlpaWlpaWl - paWlpaOjpKOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaSkpaOjpaampyAAo6OkpKSkpaWlpqanpqanpqan - pqanpqanpqampqalpaWlpaWmpaWmpaWmpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlo6Ojo6OjpaWlpaWmpqanpqanpqanpKSlo6Oko6Oko6Oko6Oko6Oko6OkpKSkpKSkpKSkpaWl - paWlpaWlpaWlpaWlpKSlo6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6OlpKSk - oaGkl5etkZG0jo65ioq/hYXEg4PGg4PGh4fAi4u9jIy9jY28lpazoqKlo6OioqKgoKCfnp6en5+enp6g - mJipkJCxjo61jo62ioq6hYXChobBhITFg4PHhITFhYXDiYm9l5eroaGko6OjoqKjoqKjoqKjo6OkpaWl - pKSmoKCpm5uvlJS4iorChobIg4PGg4PFhITFhobDiIjAiIjAlJSyn5+koaGen5+fn5+foKCgo6Ogmpqq - kZG0jIy5i4u7i4u6hITFgoLFgoLEgYHFgoLFioq7k5OxmZmqnp6koaGhoaGioqKko6OkpKSjoaGll5ev - iYm9g4PGg4PFg4PFg4PGhobEjIy+jo68kZG5lJS0mpquoaGnpKSjoaGioKCgoaGho6Ofn5+jlpatjo63 - ioq8i4u8h4fAhITBhITAhITAg4O/g4O/iIi3h4e2hIS4hYW3hoa2goK8f3/Cf3/EgIDFgoLEhITChYXD - iIjBkpK1np6mpKSfoqKinZ2olZWwjo64iYm+iIi+iIi6iYm3iIiziIi1iYm4ioq6i4u7jo66j4+7kJC6 - mpqxo6OooqKonp6plpavkZGyiYm5hIS9hIS6hIS7hIS+hIS/goLEi4u8m5uroKCmoKCno6OkpaWinp6o - kZG3h4fDiIjAh4fAiIi8iIi5h4e4hoa3iIi6iYm6ioq6ioq7ioq8jo66lpaynp6qo6OkoaGkn5+nnZ2p - mZmskZGzioq9h4fAhoa9hoa7ioq4ioq7i4u8jIy9i4u+jIy9kpK3mpqroaGjoKClmZmtk5Oyk5Oxk5Ov - ioq4h4e6h4e3h4e3ioq5i4u6i4u9j4+6lpaymZmumJivmZmwo6OmpqalpaWnpKSpoaGtlpa2kZG5jIy6 - hoa8gYG/gIDBgYHBgoLDgoLFhobCi4u9jIy8kJC5np6qo6OkpqaloKCtlJS7iorEhITJgoLJgYHGgYHE - f3/CgIDAhYW7iYm5jIy4jY25jo64lZWwoKCkoqKjo6OkpKSkpKSkpKSkpKSkpKSlpaWnpqanpqampqam - paWlpaWlpaWlpKSlpKSlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6OkpKSkpaWlpqanpqanpqanpqam - paWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpqampqampqampaWlpKSlo6Oko6Oko6Oko6Oko6OkpKSkpaWl - paWlpaWlpKSlpKSlIACjo6Sjo6Sjo6SlpaWmpqampqempqempqempqempqempqalpaWlpaWlpaWkpKSk - pKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6OkpKSlpaWmpqempqempqem - pqelpaajo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SkpKWl - paWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6WioqOioqKfn6aUlLCPj7aKir6FhcWDg8eFhcSIiL+Li7qM - jLqLi72OjruZma+lpaKjo6SioqSioqGgoJ+fn56enqGRkbCOjrSMjLWIiLqDg8GBgcWCgsWDg8WEhMSG - hsGJib6QkLWcnKWhoaGioqKioqOioqOioqOioqOhoaWioqWdnayTk7aKisKEhMiFhcaDg8WDg8WEhMWF - hcSFhcOKir6Xl6+hoaSioqCfn5+fn5+fn5+fn6CYmKuPj7iKir2Li7yHh8CDg8SDg8SCgsaDg8SJibmS - krGVla6bm6igoKOhoaChoaGhoaKjo6SlpaOioqSXl7CJib+Dg8aEhMSDg8WCgsaGhsSKisGJicKIiMSR - kbidnaykpKakpKWjo6ShoaGgoKCfn6Kbm6mTk7GNjbiLi7yIiMCDg8WBgcaBgcWBgcWBgcV/f8WIiLmO - jq2Li66FhbiCgr19fcJ+fsKAgMKCgsSDg8aCgseGhsKJib6SkrScnKmhoaSioqKfn6SdnaaUlLGRkbWR - kbOMjLWLi7OIiLSGhriHh7qJibuJibyJib6NjbySkreenqyjo6ednayamq6WlrOUlLKOjraIiLmGhriD - g7yAgMF/f8SCgsKIiLyPj7eSkrWRkbecnK2jo6SioqWXl6+MjL2Li76Li72KiryKiruIiLmGhreGhriI - iLqKirqJibuKiruOjraTk7OXl7GgoKekpKKjo6OenqaXl66QkLaLi7qJibyJibqJibiIiLiIiLqJibuL - i7uOjrqUlLWcnKygoKehoaKhoaOcnKmYmK2ZmauXl66MjLiJibqIiLiGhriGhruHh7yGhsCNjbuUlLWV - lbKVlbOWlrSjo6empqSmpqWmpqaioqyUlLmMjMCIiMODg8SAgMOBgcKBgcGAgMKEhMCJibyMjLqLi72M - jLyWlrOioqampqGfn6qSkrmKisKMjMGNjcGJicKGhsGEhL6Dg7qGhraIiLeJibmJibyMjLqVla6jo56i - oqCioqOlpaWmpqampqampqalpaWmpqampqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWk - pKWkpKWkpKWkpKWkpKWjo6Sjo6SlpaWmpqempqempqempqalpaWlpaWlpaWlpaWkpKWkpKWlpaampqem - pqempqempqalpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6SkpKWkpKWkpKWkpKWjo6QgAKSkpKOjpKOjpKOjpKWl - paampqampqampqampqamp6amp6WlpaWlpaWlpaSkpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaOjpKSkpaampqamp6amp6amp6amp6SkpaOjpKOjpKOjpKSkpKSkpKSkpKOj - pKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaSkpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOj - op+fpJiYq5KSsoyMu4WFxIODxoSExYWFw4iIvoiIv4iIvomJvo+PupubrqSko6OjpKOjpKKio6KioaCg - oJmZpY6Os46Os4mJuYSEw4ODxoODxIODxYSExIaGwYqKvY+Pt5eXrqCgoqCgoKGhoaKio6Kio6Kio6Ki - o5+fpZ+fpZmZrYuLvoGByoSExoSExIODxYODxIODxYODxYeHwZCQtp2dp6KioqKioqGhoaCgoJ+fn5mZ - ppaWrY+PtoiIvYaGwIODxoSExYSExoWFxIuLvJCQso+PsZSUr5ubp6CgoqGhoaGhoaGhoaKioqKipJ2d - q5SUtYuLv4aGwoSExIODxYODxYODxoODx4SEx4aGxZOTt6GhqKamo6SkpaSkpaOjpKGhoJmZqJGRsoyM - uomJv4iIwIODxYODxoODxYKCxYKCxYODxoKCw42NspaWpI+PrYCAvn19wn5+wX9/woCAwoKCxYSExoiI - woqKv4mJwIqKv5CQuJubq6OjoaOjoaSkoKCgop2dpZiYqY+Pr4iItIWFuIWFuYaGuYiIu4mJu4uLuZOT - spubqqKipaSkpZ6eq5iYspWVtZKSt46OuomJvIODv4CAwoCAwoKCwYiIuoqKuImJvImJv4uLvZaWsqGh - p6Skop2dqpGRuIyMvYyMvYuLvYqKu4iIuYaGuIaGtoiIuYqKvIuLu4+PtZWVr5SUsZSUs56eqaWloqCg - p5WVso+PuYqKvoqKvouLu4uLuIiIuIeHuYiIuYqKuouLvI6OupaWs52dq6KiqKKipKOjoZ+fpJqaqpiY - rJOTtI2NuouLuoiIuYSEu4GBvoKCwIWFv4mJv4+PupOTtpKSt5KSt6CgqKWlpKampKKiqZqas5eXtpKS - uoqKw4SEx4KCxICAw4CAwoODv4mJuoqKuYqKuouLu4uLvJCQuZycq6Sko6Cgp5iYsZaWtpWVtpaWtpGR - uI2NuIqKtoaGtoWFtoaGuIiIuIqKuoyMu5KSs56epqCgpKKio6SkpKamp6amp6amp6WlpqWlpaampaam - pqamp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKOjpKOjpKWlpaam - pqamp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaampaampqamp6amp6WlpqWlpaWlpKSkpKOjpKOjpKOj - pKOjpKKio6Kio6Kio6OjoyAApaWlo6Oko6Oko6Oko6OkpKSlpaWlpKSlpKSlpKSlpaWlpaWlpaWlpaWl - paWlpKSko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6OkpaWm - pqanpqanpqanpqanpaWmo6OkpKSkpaWlpaWlpaWmpKSlpKSlo6Oko6OkpaWlpaWlpaWlpaWlpaWlpKSl - o6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqajn5+okZG0ioq9hITGg4PGhITFhITFg4PFgoLG - goLGgoLHhobAk5OxoaGmo6Oko6Oko6Oko6Oko6OinZ2lkpKujY2ziIi6goLCgoLFhITFhITFhYXEhobB - iYm+jo65lJSxnJyooaGhoaGhoKCgoaGhoqKjoqKjoqKjn5+lmpqrlJSyi4u8hITEhYXDg4PEg4PEg4PE - g4PEh4e/kJC1lpawoKCko6OhoqKioqKioaGhoKCflJSskJCyjIy4hYXAgYHGg4PFhITFhITFi4u9kZG3 - j4+5jo61lJSsnp6ioqKgoaGhoaGhoaGhoaGgm5uqk5O1kJC5kJC5ioq/hYXFgoLEgoLFg4PFhITFh4fC - jo68nJyuo6OmpKSlpKSlpKSlpKSlpaWimJiti4u5h4e+h4e/goLFg4PFg4PFgoLFgoLFg4PFhITDioq6 - lZWskpKthIS8fX3Ffn7Bfn7Bf3/BgIDBgoLDhobCjIy/hYXHhITJg4PIiIjBlpaxoqKjoqKioqKioqKh - nJymk5Oui4uzhYW5hYW4hYW4hYW5hoa5iYm4jo60lZWtnJymnp6mn5+ooKCpnZ2slZW2jY2+ioq/hobB - gYHFgYHDgYHBiIi6ioq4iYm6iYm6jY25kpKzmJiuoKCnpaWioKCnlpaxj4+4i4u8ioq8ioq7iIi6h4e5 - hYW2iIi4ioq6kZG1lpawlZWxlpawmZmrnp6npKSjn5+pkJC4i4u9jIy8jIy9jY25i4u3h4e5h4e5iIi5 - ioq7jIy9jIy+jY2+lJS4l5ezn5+qo6OjoKCjmpqrk5OzjIy8jIy8i4u8hoa+goK/gYG9g4O9iIi4ioq7 - jIy7jY25jY26jY27mpqto6OmpqajoaGpmZmym5uwnp6ulpa3iorBg4PDgoLAgYG/iIi4iYm5ioq6ioq6 - ioq6i4u7ioq+lpayoaGmoqKknJyql5eylZW1lZW0lZWzkpKyi4u0hoa4hYW2hoa2hoa5iYm9iorAi4u/ - kJC5mJiwoKClo6OipKSlpaWmpqanpqanpaWmpaWlpaWmpqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OkpKSlpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWl - paWlpaWmpqanpqanpqanpaWmpaWlpKSlo6Oko6Oko6Oko6OkoqKjoqKioqKioqKiIAClpaWlpaWkpKSj - o6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6SlpaWlpaWmpqampqempqem - pqelpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6SkpKSmpqampqempqempqempqekpKWkpKSlpaWlpaWm - pqempqempqempqakpKSjo6SlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWl - paWnp6OgoKqOjrqDg8aEhMWDg8SDg8SDg8WEhMWDg8WDg8WBgceKiryamqmjo6Cjo6Sjo6Sjo6Sjo6Sj - o6OcnKmPj7WKiruDg8KCgsSEhMWEhMWEhMWGhsKKir6Li72NjbyWlrCgoKKhoaGhoaGhoaGgoKChoaGi - oqOhoaOamqyTk7ONjbuKir6Li72Kir6Dg8OEhMWEhMaIiMKPj7eVla6cnKihoaOioqKioqKioqKioqKh - oaGUlK6KiriEhMCBgcWCgsSEhMWDg8aJib+MjLuKir2NjbqXl62bm6WenqCgoKChoaGhoaGhoaGfn6OT - k7GPj7ePj7mJicGEhMaEhMaEhMWCgsSDg8SHh8GNjbmTk7SgoKilpaSkpKWkpKWkpKWkpKWmpqOZmbCN - jbqGhr+AgMSBgcOBgcOBgcOBgcOBgcSEhMOLi7qSkrGUlLCIiLx/f8aAgMN/f8J/f8F/f8F/f8KFhb6I - iL2Dg8aFhceEhMiKisKMjL6Pj7icnKiioqOjo6GenqeVla+NjbeHh7uHh7mFhbiFhbiFhbmGhrmHh7mI - iLyIiL2Tk7CZmaqZma2amq2dna2Pj7yMjMCHh8ODg8aDg8WBgcKGhrmIiLiJibqKiryMjLqRkbSQkLSX - l6+fn6akpKKioqWdnamXl7COjruLi76Li7yKirqIiLmFhbaGhriPj7WTk7OTk7SWlrGZma2enqafn6Si - oqOgoKeWlrKRkbiPj7iQkLiMjLqIiLuHh7iGhreHh7iHh7iKiruMjL2MjL2Njb6Li8CYmLKioqajo6Ke - nqaYmK+NjbuLi7yIiL+EhMGCgr6CgryIiLmJibmKiruMjLuNjbmOjrmPj7mcnKyioqWkpKSjo6agoKig - oKigoKmfn6mTk7WJib2IiLiGhreHh7iIiLiKiruLi7yLi7uLi7uKiryWlq6hoaWkpKOfn6eZma2UlLWT - k7WUlLOOjraIiLuIiLmFhbaGhraDg8CDg8aEhMeFhceGhsWTk7igoKikpKOjo6Sjo6Smpqempqempqel - paalpaWlpaWmpqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWj - o6Sjo6SlpaWmpqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqelpaalpaWlpaWj - o6Sjo6Sjo6Sjo6Sjo6OioqKioqIgAKWlpaWlpaWlpaWlpaWlpaWlpaOjpKWlpqamp6amp6ampqWlpaWl - paWlpaWlpaWlpaWlpaWlpaOjpKWlpaWlpaampqamp6amp6amp6OjpKSkpaWlpaWlpaWlpaWlpaWlpaWl - paSkpKSkpKWlpqamp6amp6amp6ampqSkpKOjpKWlpaWlpaamp6amp6amp6ampqWlpaOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaampKKiqJubr5KSt4yMvYuLvIWFw4KCxoODxYOD - xYODxYODxYKCxoyMu5ubqaKin6GhoaOjpKOjpKOjpKOjo52dqZCQuISExYKCxYODxIODxIODxISExYSE - xYWFxoWFxY+Pup2dq6OjoaGhoaGhoaGhoaGhoaGhoaCgoKCgopWVsoyMu4qKvYyMvImJvYSExISExYSE - xomJwIyMvZGRuJ2dqKGhoaGhoaKioqKioqKioqKiop2dp46OtYSEwYGBxYGBxIGBxIODxImJvouLvIqK - vY2NuZeXrpycqKKio6CgoJ+fn6CgoKGhoaGhoZ+fo5OTsY2NuYmJv4SExYSExYSExYODxIKCw4GBw4OD - woqKu5aWrqGhpaSkpKSkpaSkpaSkpaSkpaCgqZOTtoeHwoKCxYKCxIGBw4GBw4GBw4CAxIODwIuLuJCQ - tZWVrZeXq5KSsouLuYaGvYCAw39/wX5+w4ODu4WFuoKCw4KCxIODxYaGxYiIxIeHxoqKwZeXsKGhpKOj - op+fppKStImJvomJvIiIuoeHuYWFuIaGt4WFuoGBwYODwoODxY2NuJeXrZubqpycq5mZroyMvoaGx4SE - yYSEyIWFxYiIuoaGt4aGuIqKuYeHvoKCxYSExIODxY6OuJ6ep6SkoaKio6KipZycrJSUtI2NvIqKvoqK - u4mJuoaGuIuLsJCQr5KSs5OTtJSUs5WVs5SUs5mZrKCgo6GhopycqpeXr5OTtJOTs5GRtJCQs42NsoeH - uIaGt4aGuIiIuoqKu4uLvIyMvYyMv5iYsqOjp6WlpJ+fppeXr4yMu4eHwIWFwoSEwISEvIaGt4eHuIiI - uYuLt42NuIyMuo+PuZqarqKipaOjo6OjpKOjpKSkpaSkpZ6eqZ2dqZOTtImJvYmJuYiIuYeHuIiIuImJ - uomJvIqKvYyMvJGRtpubqJ+fpKGhpKOjpKGhppycq5SUsI2Nt4qKuoiIuYeHuIWFtoGBvoGBw4ODxYSE - xoWFxYyMvpaWtJ+frKOjpqOjo6OjpKOjpKamp6amp6amp6ampqWlpaWlpaamp6amp6amp6ampqWlpaWl - paWlpaWlpaWlpaSkpaOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6amp6WlpaWl - paWlpaSkpKOjpKWlpaWlpaamp6amp6amp6ampqWlpaWlpaOjpKOjpKOjpKOjpKOjpKKioiAApqanpqan - pqanpqanpqanpqanpaWlo6OlpaWmpqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6OkpKSlpaWl - paWmpqanpqanpaWmo6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkpaWlpqanpqanpqanpaWmo6Ok - o6OkpaWlpaWlpqampqanpqanpqanpKSlpaWlpaWlpaWlpKSkoqKjoqKjo6Oko6Oko6OkpKSkpaWlpaWl - paWlp6ejnp6skpK4j4+8jo68h4fDhYXGhITGhITGhITGg4PFgoLGjY26l5eun5+loqKgoaGhoaGio6Ok - pKSjo6OknJyqk5O0jIy9i4u8hobCg4PGhITFhITFhYXFhobEkJC6mpqvoaGnpKSkoqKioaGhoaGhoaGh - oaGgoKCgmZmljIy2ioq9jIy9iYnAhITGg4PEhITFhITGhITGh4fEkZG4np6oo6OjoqKhoaGhoaGho6Oh - oaGjlpavjY27iYm9iIi8iIi8iIi8ioq+jo69jY2/j4+7lpaxnJynoaGjoqKioqKhoKCgn5+en5+goKCk - oaGilpatiYm+goLHgoLGg4PFhITFg4PEgoLFhITDiIi9jo61nZ2noaGioqKjpKSlpKSlpKSloaGom5uu - kZG4h4fDg4PIg4PGgYHFgYHDgYHDgYHDgoLChYW/j4+ynJymnp6jmpqnlJSvjo61h4e7hoa7hoa5goK8 - f3/AgIDCgYHDhYXChYXChYXGh4fFj4+7nZ2so6Oko6Oin5+nkpK1iIjAioq+iYm8iIi7h4e2g4O6gIDB - gYHDgoLEg4PGjY26mJitnp6loKCjn5+mlpawkJC5kJC6jo67iYm+iIi5hoa3h4e1hYW8goLEgoLGg4PG - goLHiIi/lpawoKClo6OioaGklpaylJS0lJS1kpK2kZG2kJC0jo6yjY2uj4+tkpKukpKzj4+8jo67jY29 - kpK3nJyppKSfn5+lk5O0k5O1k5O1k5OykJC0ioq6h4e5h4e5h4e5iIi5iYm5iYm7jY28kpK3mpqwo6On - p6ejoaGok5O0h4fBhYXChYXDhYW+hoa3hoa3hoa3iIi1i4u1i4u3j4+0mpqpnp6loaGmoKCmoaGlpKSj - oqKlnp6pn5+omZmulJSzjo63iIi6iYm5hYW2h4e4iYm7ioq9jIy/jY2/jo69lJS3mpqyn5+po6OgoaGi - lZWwjY25iYm7iYm7ioq5h4e5gYG/gIDBgYHCgoLEgoLGhYXEk5O2mZmxmpqwoKCqpaWko6Oko6OkpKSl - paWmpqanpqanpqanpaWlpaWlpqampqanpqanpqanpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6OkpaWm - pqanpqanpqanpqanpaWlpaWlpqampqanpqanpqanpaWlpaWlpaWlpKSlo6OkpaWlpaWlpqampqanpqan - pqanpaWlpaWlpKSko6Oko6Oko6Oko6OkIAClpaampqempqempqempqempqempqakpKSkpKSlpaampqem - pqempqalpaWlpaWlpaWlpaWlpaWlpaWkpKWkpKSlpaSlpaWlpaampqempqempqekpKWkpKSlpaWlpaWl - paWlpaWlpaWkpKWjo6SkpKSmpqampqempqempqelpaWkpKSkpKSlpaWlpaalpaempqempqempqalpaWl - paWlpaWlpaWkpKSioqOioqOjo6Sjo6Sjo6SkpKSkpKSlpaWnp6ShoamUlLaLi8KHh8WEhMaFhceFhceF - hceEhMeDg8aKiryXl6+goKaioqKioqKhoaGhoaGioqGioqSdnamVlbKQkLmOjruHh8CFhcSEhMaEhMaF - hcaEhMeKir+YmLChoaekpKWkpKWjo6ShoaKhoaGhoaGhoaGdnaaRkbOJibiIiLuKirqJibqGhr+Dg8WE - hMWDg8eFhcaNjbyZma6ioqWjo6SioqOhoaKhoaGioqCgoKSSkrSRkbaOjriIiL6EhMGEhMCHh8OHh8OK - isCRkbqYmLKenqmioqGioqKioqKioqKgoKCfn56enqGbm6aQkLKHh7yGhr2Ghr6EhMWEhMWDg8aFhcOK - ir2Pj7eTk66enqGhoaCioqGjo6OkpKWkpKWgoKmbm66QkLqJicGJicGJicGIiL+Dg8KCgsKBgcOBgcOI - iLuVlaqdnaCiop6amqiTk7CSkrKMjLiKirmEhL1/f8J+fsOAgMGCgsCFhcGEhMOHh8KOjr2Xl7Sfn6uk - pKWjo6OdnaiTk7SOjrmPj7eKir2Li7qGhryAgMB/f8KBgcKCgsSBgceNjbqVlbGWlq+YmK2cnKmgoKag - oKWZma2Pj7mJibyJibmHh7aDg7qAgMGAgMOBgcSDg8aIiMGLi7+Njb2WlrKhoaWhoaSYmK6VlbOUlLSU - lLWUlLSTk7KRkbCPj6qIiLWFhbyGhr+GhsOMjL6Li7+QkLmcnKulpaCgoKOWlq6Wlq6UlLCPj7WLi7qI - iLyIiLmHh7mIiLmJibqJibuJibyLi7uSkrWZma+ioqinp6OioqeXl7GOjrqKir6Hh72IiLqIiLiGhriI - iLSIiLaJibiJibqLi7mRkbOcnKibm6iamqyfn6ikpKOioqWcnKqYmK+Xl7OTk7eNjbqJibuJibqGhraG - hriIiLuLi7yLi7+IiMSIiMSHh8aRkb6fn62mpqKfn6ORkbKOjraOjrSNjbSIiLqCgsCAgMJ/f8GAgMGA - gMSDg8SIiL2OjrmQkLmTk7ifn62np6OkpKWjo6Sjo6Sjo6SlpaampqempqempqalpaWlpaampqempqem - pqempqalpaWlpaWlpaWlpaWlpaWkpKWkpKWjo6Sjo6SlpaampqempqempqempqalpaWlpaWlpaampqem - pqempqalpaWlpaWlpaWkpKWkpKSlpaWlpaampqempqempqempqalpaWkpKWjo6Sjo6Sjo6SlpaUgAKWl - paampqamp6amp6amp6amp6amp6ampqWlpaSkpKWlpqamp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaOj - pKSkpKWlpaWlpaampqamp6amp6WlpqSkpKSkpKWlpaWlpaWlpaWlpaWlpaSkpKOjpKSkpKampaamp6am - p6amp6ampqSkpKSkpKWlpaamp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaSkpKKio6OjpKOjpKOjpKOj - pKOjpKWlpKSkpZ+fqZaWs4uLvoiIwoODxYSEx4WFx4SEyYWFyI2NvZeXsZ6epqKioaKioaKioqKioqGh - oaKioJubqJSUs4+PuIuLvIeHwYKCxISExYWFxYSEx4WFx4mJwo2NvJiYrqKipaWlpKSkpaSkpaOjpKKi - o6KioJ+fpJaWr4yMu4uLuYuLt4uLuImJu4aGwISExoODxoaGxI6OuZqaraKipaSko6OjpKOjpKKipKGh - oqKioKGho5OTspGRtoqKvYSExYGBxoGBxYODx4KCyImJwZOTt52draKip6SkpKKioqKioqKioqKioZ+f - oZmZpY+PsYmJuomJuYmJuIaGv4SExYODxoSExIqKvpGRtpeXr5ycqKCgn6Cgn6GhoaGhoaOjo6Skpp+f - qpWVtI6OvYyMvo2NvY2NvomJwYSEwoGBw4KCw4mJupSUq5ycoZ6enqGhnJmZqZCQtY6Oto2NuIyMuIaG - vYSEvYODvYGBwISEwIWFwoiIwYuLvo+PvJOTuJmZsKWlpaWlpKGhppubq5SUs46OuYyMvIiIv4ODxIGB - xIGBwoGBwoGBxImJvJGRtJKSs5GRtZOTspqaqqGhoqOjopmZrpCQt46OuImJuoSEvH9/wX9/w4GBxIKC - xIiIwIyMvIyMvo2NvZWVtJ+fqKOjpKCgpJaWsZKStpKStZOTtZKSspKSsImJtoKCwH5+xYCAw4aGv4uL - vIyMvY2NvJiYsKOjpKKio56epJ+fopWVrIqKuIeHvYiIu4iIuYiIuYiIuYmJuomJvImJvIqKu5CQtJiY - rKKipqeno6Skpp6eq5iYsY2Nu4mJvIiIuoiIuYmJtoiItoeHuIiIuomJvImJvYqKu5KSs5OTtJWVs52d - qqWlo6OjpKCgppiYsJGRuYyMvouLvouLu4mJuoaGuIaGuImJuoqKvYeHwoSExoODyIqKw5OTup+fr6en - paOjppWVrpKSsI+PsYmJuIKCwYCAw4GBwn9/wX5+woCAwIWFu4qKuIqKvY6OupSUtZ6erKWlpaWlpaSk - paSkpaSkpKSkpKWlpqamp6amp6ampqWlpaWlpaamp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaSk - paOjpKSkpaamp6amp6amp6amp6ampqWlpaWlpaampqamp6amp6ampqampaWlpaWlpaSkpKSkpKWlpaam - pqampqamp6amp6ampqWlpaSkpKOjpKOjpKSkpSAApaWlpaWlpqalpqanpqanpqanpqanpqanpqanpKSl - o6OkpaWmpqanpqanpaWmpaWlpaWlpKSlpKSlpKSlo6Oko6OkpKSlpaWlpaWlpqampqanpqanpaWmpKSl - pKSkpKSlpKSlpKSlpqalpqampKSlpKSlpaWlpqalpqanpqanpqanpqamo6OkpaWmpqanpqanpqanpqan - pqanpaWmpaWlpaWlpaWlpaWlo6OkoqKjoqKjo6Oko6Oko6OkoqKknZ2olpawj4+2i4u7iYnAgoLFg4PG - hITHhYXGjo69mpqwnZ2toqKlo6OioqKioqKioqKioaGhoqKgmpqokJC1iYm8hoa+goLFg4PEhITFhITG - hYXGiIjCjo67j4+6m5uto6OkpKSkpKSlpKSlpKSlo6OlpKShnZ2mkZG0jo62jo63jY22i4u8hobDgoLH - hITFhobCjo67mJivoaGkpaWio6Oko6Oko6Oko6Oko6OjoqKgnZ2kkZG1ioq/g4PFgoLGg4PFg4PFg4PG - hITGh4fDk5O3oaGpp6ejpaWlo6OjoqKioqKioqKin5+mk5OviYm6iYm6iIi6hITAgoLGg4PGhYXEi4u9 - kJC3lpawnZ2ooaGioqKioKCfn5+foKCgoqKhoaGkmZmwjY29jIy/jY28jIy9iYnBhITFg4PEgoLCiIi6 - lJSrnZ2fn5+dnp6en5+cmpqkk5Oxjo63j4+2jIy5i4u5iYm5hYW8goLBg4PCg4PEjIy/jo6+jY2+kJC7 - lZW1oqKopaWlpqajoqKllZWxiYnAiYnAhITFg4PGgoLDgIDCgIDCg4O/jo6zkJC0kJC1lJSxmZmtnJyp - oaGhnJyolZWxkZG0jo63hYW/f3/Df3/Cf3/CgoLDh4fBjIy8i4u9jo66lpaznZ2roqKnpKSlpKSilJSx - kJC1kpK0k5O0k5O0jY25goLCgIDEgYHBhYW9i4u5ioq6jIy8i4u/kZG4nZ2qo6Oko6OioaGilZWtjIy2 - i4u3ioq3iIi5iIi5h4e5h4e5iYm6iYm8ioq7kJCxlZWsnJyoo6OlpaWloqKonJyvkZG5jY27jIy4jIy3 - i4u3h4e6hoa5iIi6iYm7iYm8iIi+iIi+h4fBjo64m5urpKSjo6OkpKSjoKCnk5O0jY27i4u7iYm7iYm6 - hYW4hoa3h4e6hYXAg4PEhITEiYnAlZW1nZ2voKCspaWopqann5+qlJSviYm6goLCgIDEgYHCgYHCgIDC - gIDAhIS5iIi2i4u5j4+5lJS0l5ewnJyro6OnpaWlpaWlpaWlpaWlpKSko6OlpaWmpqanpqanpaWmpaWl - paWlpqampqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OlpaWmpqanpqanpqanpqanpaWm - paWlpqampqampqanpqampaWlpaWlpaWlo6Oko6OlpaWlpaWlpqampqanpqanpaWmpKSlo6Oko6Oko6Ok - IAClpaWlpaWlpaWlpaampqempqempqempqempqempqakpKSjo6SlpaampqempqempqakpKSjo6Sjo6Sj - o6Sjo6Sjo6SkpKSlpaWlpaWlpaWmpqampqempqelpaajo6Sjo6Sjo6SkpKSmpqampqempqempqelpaWl - paWlpaampqempqempqelpaWlpaWlpaampqempqempqempqempqempqalpaWlpaWlpaWlpaWjo6SioqOi - oqOjo6Sjo6ScnKqXl7CPj7eLi7uHh7+CgsaDg8WDg8WCgsaLi76YmLGbm66cnK6jo6ejo6OioqKioqKi - oqKioqKhoaGdnaaRkbGFhb6CgsWEhMWDg8WEhMWEhMWHh8KOjruQkLmVlbShoaimpqSkpKWjo6SkpKWk - pKWkpKWkpKSbm6qQkLSRkbKNjbeJibyFhcODg8aEhMWFhcSLi72QkLeWlrCenqejo6Gjo6Sjo6Sjo6Sj - o6SkpKSfn6eUlK+IiL6Dg8WCgsaDg8WDg8WDg8WEhMSHh8GHh8OPj7qenqumpqSlpaWlpaWjo6OioqKj - o6GenqaSkrSLi7mJibqDg8CAgMWCgsSFhcOKiryQkLaTk7OYmK2fn6WioqKioqKhoaGfn5+goKCioqCg - oKOTk7OOjrqMjL2Li72IiMCDg8WDg8ODg8OJibuUlKydnaCfn52enp6enp6fn52cnKCWlqiSkrGQkLSK - irqKiruHh7+CgsOBgcKBgcOCgsWKisCNjb6SkrqXl7SWlrSbm6+jo6empqSioqeWlrKJib+Dg8aEhMWD - g8SBgcOBgcKCgr+IiLmIiLuIiLyNjbeUlLCXl66Xl66goKWcnKeUlK6MjLeFhb+AgMSAgMJ/f8F/f8GF - hb2MjLqLi7yLi72SkrWXl7CenqqkpKSkpKWlpaSWlrCRkbWSkrSSkrSPj7qDg8eBgcOBgcCGhruKireJ - ibmJibqKirqNjbuPj7qXl7Cjo6Ojo6Samq2SkrKQkLKRka+Pj7KJibmHh7mHh7mIiLqIiLqIiLuKiruQ - kLSPj7ORkbKZmayioqWlpaWfn6uYmLKWlrSUlLOOjraIiLyIiLqFhbiHh7mJibqHh76Dg8eDg8aDg8aL - i76YmK6ioqOjo6Sjo6SkpKOgoKaZma2Pj7aIiLyIiLqFhbiFhbiBgb6AgMKCgsKGhsCSkrWVlbOenqyj - o6ikpKimpqempqiXl7OGhsF/f8aBgcKBgcKBgcKAgMCFhbiIiLaIiLuKir2RkbeRkbiVlbScnKyjo6Wl - paWlpaWlpaWlpaWlpaWkpKWjo6SlpaampqempqelpaalpaWlpaWmpqempqempqelpaalpaWlpaWlpaWl - paWlpaWlpaWkpKWjo6Sjo6SmpqempqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWj - o6SkpKSlpaWlpaWmpqempqempqekpKWjo6Sjo6Sjo6QgAKWlpaWlpaWlpaWlpaWlpqamp6amp6amp6am - p6amp6ampqWlpaOjpKWlpqamp6amp6ampqWlpaOjpKOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaampqam - p6amp6amp6OjpKOjpKOjpKSkpKWlpqamp6amp6amp6WlpqWlpaWlpqamp6amp6amp6WlpqWlpaWlpqam - p6amp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaSkpKKio6Kio6OjpJiYr5CQuI2NvImJwYODxoKCxIKC - xIKCxoaGwI6OuJOTtpSUt5qasKOjp6WlpKOjpKKio6KioqKiop2dqJeXrpCQtYiIv4ODxoSExoSExoOD - x4eHwYyMuo+Pt5WVspubraKip6WlpKSkpaSkpaOjpKSkpaWlpKGhqZiYsZCQtY2NuIqKu4WFw4SExoSE - xoSExoWFxYSExYaGw5GRt56eqKOjoaKioqOjpKOjpKSko6Cgp5WVtIiIwYKCxYKCxYODxoSExoSExoWF - xYiIwYaGwoyMvZiYsKKipaWlpaWlpaWlpaWlpaOjo6KioaGho5mZrI2Nu4SEw4GBw4CAwoODwIyMuZCQ - tZSUsZSUsZiYrp+fpqKio6KioqKioqKioqCgoJ+fn5+fopmZqpOTsYyMuYaGwYODxYSExISExImJvpWV - r52dop+fnp6enp6enp6enp+fnZycopWVq46OtIqKu4qKu4uLuoaGwYGBxYGBw4GBwoGBw4mJvpGRt5WV - tZaWtJmZsZmZsZ+fq6WlpaOjppiYsYuLvoSExYODxYKCxICAwoGBv4WFuoaGvYiIvoqKvYqKvImJvImJ - vIyMu5qarJ2dqJKStIWFwoGBxoKCxIGBw39/w4ODu4iIt4qKu4qKu4uLu4uLvYmJwJGRt56eqaWlpKSk - pZ+fqpaWsZKStI2Nu4KCx4SExYGBw4SEuoeHt4iIuoiIuoiIuomJu4+PtZGRtJeXr6Ojo6OjpJWVs5KS - tZGRs5GRsY6Os4iIuoeHuYWFuIaGuIiIuoiIuomJuYqKu4qKu4iIvZCQtZ6ep6OjpKKip5ycrpeXs4+P - u4mJv4mJvIiIuoWFuIeHuISEvYGBxIODxISExYqKvY2NupiYr6Kio6Kio6OjpKOjpKSko6Cgp5SUs4mJ - vomJu4eHuoKCvoGBwICAwYODv4qKuoqKu4mJvpSUtKKiqKampaamp6WlqJmZtYqKwoKCxoGBxIGBw4GB - woWFuYeHuIiIuYeHvYKCxYKCxYKCx42NvZycrKWloqOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKamp6am - p6amp6ampqWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKamp6amp6am - p6amp6amp6WlpaWlpaWlpaWlpaSkpaOjpKWlpaWlpaWlpaSkpKSkpKWlpaWlpaWlpaWlpaSkpKOjpKOj - pKOjpCAApaWlpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpqanpqanpqanpaWlo6OkpaWmpqanpqanpqan - paWlo6Oko6Oko6Oko6Oko6Oko6OkpaWlpaWlpaWlpaWmpqanpqanpqanpKSlo6Oko6Oko6OkpaWlpqan - pqanpqanpqampaWlpaWlpaWlpaWlpaWlpKSko6OkpaWlpqanpqanpqanpqanpqanpqanpaWlpaWlpaWl - paWlpKSkoqKjoKCkm5uskZG3iIjChITGhITGhITFg4PFgoLFh4e+jIy5jo65kpK2n5+qpKSlpaWlpaWl - o6OkoqKjoKCkmpqrl5evkJC2hobAhITIhYXHhITIiorBjo67kJC3lpaxmZmsoKCnpKSlpKSlpKSlpKSl - pKSlo6OkoqKmnZ2slZW0jo67i4u9iYm8ioq8h4fChITGhYXFhYXFh4fCkpK2m5uqoKCko6OjoqKjoqKi - o6OjoaGlmJivi4u+g4PHhITGgoLFgYHEgoLFhYXGhobEhobEhITGjo65nZ2qpqakpKSlpKSlpaWlpaWl - pqakoqKll5esi4u6hITCgoLEgYHFhYXBjIy3kpKxlZWvlJSvmZmtn5+mo6OioqKjoqKjoqKioqKioqKh - n5+il5eokZGwi4u4iYm6ioq8i4u9i4u9i4u8ioq9kpKzmpqonp6hn5+enp6enp6en5+dl5eojIy2iIi6 - iYm5ioq4hITAgYHDgYHDgIDCgYHBh4e7j4+zk5OzlJS1lJS2lZW2mJiyn5+rpaWlo6OmmJiyi4vAhITG - goLGgYHDgoK+hIS6hIS6hoa9jIy8h4fChITFhYXEhYXEhobAlJSxmJiujY26g4PFgYHGgYHFgYHFhoa9 - h4e3h4e3iYm4ioq7hITDhITEhITFiIjBk5O0n5+opKSlpaWkm5uujIy9g4PGhITGg4PFh4e8hoa4hoa4 - h4e5iIi6iYm6j4+1kJC1lJSwnJyopKSjo6Okm5utmpqul5exjo63iYm6h4e5hYW4hYW4hYW5h4e5iIi5 - iYm5ioq6ioq7ioq8k5Oxnp6joqKioaGlnZ2tkZG6i4vAjIy/i4u+iYm7iIi4hIS9gYHBgYHEhITEiYm8 - j4+4kZG2lpavnp6no6OioqKjo6OjoKCmlZW0i4u/ioq+ioq9g4PCgYHBgIDCg4O+iIi5ioq7ioq7jY22 - lpavoKCopaWkpaWmp6emmZm0j4+/i4vAiYm8iIi7hoa6hoa3h4e3hYW9g4PEhITFhITFg4PHiYnBlZWz - oKCnpKSjo6OkpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Ok - paWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6OkpaWmpqanpqanpqanpqanpaWlpaWlpaWlpaWlpaWlo6Ok - paWlpaWlpaWlpKSlo6Oko6Oko6Oko6OkoqKjoqKjo6Oko6OkIACjo6SlpaWlpaWlpaWlpaWlpaWlpaWm - pqempqempqempqempqempqekpKWjo6SkpKWmpqempqempqelpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKWl - paWlpaWlpaWmpqempqempqekpKWjo6Sjo6Sjo6SlpaWmpqempqempqempqalpaWlpaWlpaWlpaWkpKWj - o6Sjo6SlpaWmpqempqempqempqempqempqelpaWlpaWlpaWlpaWioqaamquWlrGKir+EhMeEhMaEhMaD - g8WEhMSEhMSDg8SFhcKMjLqXl62ioqalpaWlpaWlpaWlpaWjo6aamq2YmK2Xl66YmK2UlLKKisCFhcaF - hceGhsaGhsWJicCVlbOfn6aioqOjo6OkpKWkpKWkpKWkpKWlpaOdnayVlbWPj7uMjL6MjL6Li7yHh8GE - hMWEhMaEhMWJicCTk7aamq2goKWioqKioqOioqOioqOioqKhoaSYmK+Li7+Dg8eDg8eDg8aBgcWCgsOF - hcKGhsWEhMaOjruXl7Gfn6ekpKOkpKWkpKWkpKWlpaSjo6eamrCMjL2EhMOCgsWDg8WDg8WEhMSFhcOE - hMCKirmRkbKYmKyfn6Wjo6GioqOioqOioqOioqKjo6GhoaKXl6mKiriJibqLi7mJib+GhsSGhsOGhsSJ - ib+SkrSZmamenqKgoJ+fn5+enp6enp2ZmaSSkq6OjrSJibmEhMCBgcOBgcOAgMKBgb+FhbeHh7eKiraM - jLuQkLqVlbSUlLWWlrWdna6kpKampqSgoKiXl7GRkbiQkLWIiLuEhL2EhLqFhbqIiLiFhcGFhcWFhcaF - hcaIiMOLi7+SkrSbm6qTk7OJib+Jib+Jib+IiL+Pj7SMjLSIiLiHh7mDg8GCgsSCgsWCgsWDg8aKir+Y - mK+ioqWlpaOZma+MjL6IiMKJib+Jib2IiLqGhrmGhrmHh7qJibmQkLWRkbaXl7Cbm6ubm6mdnaekpKSh - oaaioqSbm6yOjrmIiLyIiLqGhrmFhbiFhbeHh7iIiLqJibuKiruKiruIiL2QkLOenqSjo6GioqKenqmR - kbmLi7+MjL2Li72KirqDg76AgMGAgMKDg8CIiLuKirqMjLqNjbuPj7iYmK+ioqOioqOjo6KenqiVlbOQ - kLmRkbaSkrSRkbSJibmFhbyHh7qKiriKirmLi7qQkLSSkrKWlq6fn6ilpaWlpaWdnbCVlbiQkL2Njb6L - i7yJibmIiLeDg7yAgMGBgcKCgsSDg8aJicCKir6QkLmdna2np6OlpaWjo6SkpKWlpaWlpaWlpaWlpaWl - paWkpKSjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sj - o6SlpaampqempqempqempqelpaalpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SioqOi - oqKioqKjo6QgAKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpqamp6amp6amp6amp6amp6ampqWlpKSkpKWl - pqamp6enqKamp6WlpqOjpKOjpKOjpKKioqOjpKSkpKWlpaWlpaWlpaWlpqWlpqampqWlpqOjpKOjpKOj - pKSkpKampaamp6amp6amp6ampqWlpaWlpaWlpaWlpaSkpaOjpKSkpKampqamp6amp6amp6amp6amp6Wl - paWlpaWlpaampKSkppaWs4uLvYWFxYSExoSExYSExYODxYSExISExYSExIeHwJCQtJycpaGhoqSkpKWl - paWlpaWlpaSkppubrpqaq5ubqZeXro2NuYaGwoSExoWFx4SEyIODyoeHxJSUtKGhpaKio6Kio6Kio6Oj - pKSkpaSkpaOjppycrZGRuYuLv4yMvo2NvYiIwoWFxYODx4SExYeHwYqKvpWVs5ubq6GhpaOjoqKio6Ki - o6Kio6Kiop+fpZWVsoqKv4mJwImJwIiIwoWFwoODwIODwIaGwpCQupiYr56eqKKipaOjpKOjpKSkpaSk - paamo5+fqpCQu4SEyIODyISExYSExYSExYODxoODxoaGvoeHvY6OtpqaqaGhoaGhoaKioqKio6Kio6Oj - oqKio5qaqpCQtYmJu4mJuIeHvYSEw4ODxoSEx4iIwY6OupWVsJ2dpqGhoaGhoaCgoJ+fn5+fnZuboJOT - q4qKuIODwICAxICAw4CAwX9/wX9/wYGBvYaGtoaGuYyMuJKStZSUtJSUtpSUt5SUtp6eq6ampKOjppyc - rJWVs4+PuYmJvIWFvYWFuoaGt4ODvYGBwoODxIWFxImJwoyMv4yMvo+PupubqpycqJOTs4+PuJCQtpCQ - tI6OtoyMt4eHuoKCwICAw4GBxIKCxIKCxYSExYyMvZmZrqGhpaSkop2drJSUtpKSuJGRtouLvImJvIeH - u4WFuoiIt46OspOTspSUs5iYsJiYsJWVspiYraCgpaOjpKKipZeXsoyMvYmJvYiIu4iIuoeHuIWFtoWF - t4iIuoqKu4uLvIuLvYyMuZOTspubqqCgoqGhoZ2dp5CQuImJwIyMvYyMvYaGwoGBw39/w4CAv4WFuoqK - uYqKuYqKvIqKvomJv5CQt52dqKKio6Kio6GhpaCgp56eqpqarpWVso+Pt4mJuIeHtoaGuYSEv4SEv4SE - wIuLupCQtJKSsZiYraCgpqWlpqKiqpmZtJCQvoyMwYyMvouLu4WFvoGBwYCAwYGBwoKCxImJwI2NvI2N - vY2NvpaWtaOjp6ampaSkpaSkpKSkpKSkpKSkpKWlpaWlpaSkpaOjpKOjpKSkpKWlpaWlpaWlpaWlpaWl - paWlpaSkpaSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKWlpqamp6amp6amp6ampqampaWlpaWl - paWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjoqKioqKioyAAo6Oko6Oko6OlpaWlpaWlpaWl - paWlpaWlpqampqanpqanpqanpqanpqanpqanpaWlpKSkpKSmpKSlpKSlpKSlpKSlo6Oko6OjoaGho6Oj - o6Oko6OlpKSlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OkpKSkpaWlpqanpqanpqanpaWmpaWlpaWl - paWlpaWlpKSko6OkpKSkpaWlpqanpqanpqanpqanpaWmpaWlpaWlpaWloKCrkpK5hYXFg4PGhITFhITF - hITFhYXFhITGhYXFiYm/kJC2mJiroKCgoaGhoqKio6OkpaWlpaWlo6OmoKCpnZ2ql5evjY26hITEgoLG - g4PGhYXHhYXHhITJiYnEl5ezoqKloqKjoqKjoqKjo6OkpKSlpKSlnZ2sl5eyj4+5i4u9ioq/iIjChITH - g4PHhITEh4fBi4u9kZG2mJiunp6ooqKlo6OjoqKjoqKjoqKjnp6nlZWwjIy6ioq/jIy9iYnBiIjDhYXD - goLDgoLCh4e8lJSxnJysoqKmpKSjo6OkoqKjo6OkpaWlpKSmm5uvj4+8iYnDiorChYXGhITFg4PGhITF - iIi/i4u8jIy6j4+1nJymoqKfoaGhoqKhoqKjoqKjoaGkmpqrkJC2i4u9i4u7hoa9goLBgYHEg4PEiYnA - kZG4mJiynZ2qoaGjoqKgoaGhoaGhoKCfnp6fmJimjIy1goLCgIDEgYHDgIDBf3/Bfn7Cfn7BgYG8hIS4 - iYmzjY20j4+3j4+6jo67j4+8jIy/mJiypaWlo6OnmJiyjY27iIjBh4fBiIi9h4e7g4O9f3/CgIDBgYHC - hITDh4fDiorAjIy+jY2+lpaxnJynmZmrk5Ozk5OzkZG1jY26iIi9goLAf3/CgIDCgYHEg4PEgYHHh4fA - k5Oym5uqnZ2ooqKjo6OkmpqukpK4j4+7i4u+ioq/jIy6i4u0ioqxjIy0ioq7jIy8ioq/j4+7lZWzlpaw - mZmsoqKin5+nkpK3iorAjIy+ioq8iYm7h4e4hYW2hYW3iIi6ioq7i4u9i4u9kJC3lJS0lZWxm5uooaGh - n5+jk5OyjY25jo64ioq9hobChIS/goK+hIS6h4e3iIi4iIi6iIi9iYm/iIjBjo65nJypoqKjoqKjo6Oi - o6Ojn5+nmJivj4+5iYm9iYm5hoa5gYG+gIDDgIDDgYHDh4e9jY23jo61j4+0lpatoqKkpqakmpqykZG7 - kJC8jY2/iYnChITFgYHDgIDCgYHBhoa9jIy6iYnAiYnCh4fFi4u/mpqvpKSmpaWlpKSko6Oko6Oko6Ok - pKSlpaWlpaWlpaWko6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpKSkpKSkpKSlpKSlpKSlpaWlpaWl - paWlpKSko6Oko6OlpaWmpqanpqanpqanpqanpqampaWlpaWlpaWlpKSkpKSkpKSkpKSkpKSko6Oko6Ok - o6Oko6OkoqKjoqKiIACkpKSjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWmpqampqampqempqempqem - pqelpaWjo6SioqKioqKjo6Ojo6Sjo6Sjo6SioqOioqKjo6Ojo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWl - paWkpKSjo6Sjo6Sjo6SlpaWmpqampqempqelpaalpaWlpaWlpaWlpaWkpKSjo6Sjo6SlpaWmpqempqem - pqempqelpaampqSioqeXl7SLi8GGhsaEhMaEhMWEhMWFhcaFhcaHh8aKir+RkbeZma2goKShoaGhoaGh - oaGhoaKjo6Sjo6ehoaigoKmYmLKNjb6EhMWCgsaDg8WDg8WDg8aEhMiHh8WQkLudna6lpaWkpKSioqOi - oqOioqOjo6Sjo6Wamq+SkreRkbiSkreNjbyGhsOHh8GHh8KJicCMjLuRkbaXl66cnKiioqSjo6Ojo6Sj - o6SioqOioqScnKqOjrmJib6Li72IiMGDg8eDg8aBgcaCgsaGhr+NjbSRka2bm6mioqWkpKSjo6Sjo6Si - oqOjo6SdnauVlbORkbiPj7uKisGFhceEhMaFhcSJib+Li7yMjLuRkbOXl6yenqOhoZ+hoaGhoaGioqKi - oqKamqqQkLeLi72Li72JicCEhMWCgsWCgsGGhr2MjLeSkrWXl7GhoaakpKKhoaKhoaGhoaGgoKKXl6qO - jrSHh72CgsGBgcKBgcKAgMF/f8J/f8GCgryGhrWIiLKLi7CKireJib6Kir6Jib6Kir+JicCTk7ehoamk - pKaYmLKKisCKir+MjL6Li72GhsCAgMSAgMGAgMGAgMKBgcSCgsaEhMaMjL2QkLmVlbSbm6yamqyTk7KS - krSMjLyJib6Dg8J/f8N/f8GBgcKCgsOCgsWEhMWKiryUlLCZmayamqugoKWlpaGdnaqTk7aQkLqPj7uO - jruRkbWQkLCJibSDg79/f8Z/f8eBgciLi7+UlLaTk7aUlLOgoKKhoaOXl7GNjbuMjLyMjLyLi7qIiLiG - hriGhriHh7mJibqLi7yKir6Li72Li72OjrqXl66hoaKkpJ6Xl6qPj7ONjbaJibuJibqIiLiHh7eGhreG - hreGhrmGhryGhr2IiL2MjL2Tk7OenqWioqGioqOjo6Kfn6aWlrCOjrqKir6KirqIiLuCgr9/f8KAgMGB - gcCGhr+JibyLi7uKir2NjbmWlq6hoaOmpqGbm6+Tk7iSkrmNjb+EhMmEhMeCgsSBgcGFhbyJibeIiL6E - hMWCgsmFhceKisGTk7ienqykpKalpaWlpaSkpKSjo6Sjo6SkpKWlpaWlpaWlpaWkpKSjo6SkpKWlpaWl - paWlpaWlpaalpaampqakpKSjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWjo6Sjo6Slpaalpaalpaalpaal - paalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6SioqMgAKWlpaOjpKOjpKOjpKSk - pKWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6amp6ampqWlpaOjpKOjpKOjpKOjpKOjpKOjpKOj - pKKioqKioqOjo6OjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKSkpKWlpqamp6amp6am - p6WlpqWlpaWlpaWlpaWlpaOjpKOjpKSkpKampqamp6amp6amp6amp6enpaGhqZKSuIiIw4aGw4SExISE - xYWFxoWFxoaGxYyMwJGRuZeXsJ+fpqOjoaGhoaGhoaGhoaGhoaCgop+fpp+fqpiYs46OvoaGxoODx4OD - xYODxYODxYKCxYWFw5GRuZ6eraKiqKWlpaSkpaOjpKKio6Kio6Kio6CgppqarpaWtJWVtZWVtJKSt4yM - vIqKvYuLvYqKvo2NupSUspeXr52dqKGho6Ojo6OjpKOjpKOjpKGhpZ6eqJKStoyMvImJv4KCx4ODxYKC - xYKCxYeHv4+PtpWVrpeXpp2dnqGhoaOjpKOjpKOjpKOjpJycqZeXsZGRuI2NvYmJwoODx4SExYODxoeH - wYuLvY2Nu5OTtJmZrJ6epKGhoaGhoKCgoKGhoaGhoZ6eppKStIuLvYyMvomJwIODxoSExoODxIeHvYuL - touLto2Nt5OTs5+fp6Sko6Ojo6KioqCgopiYq4+PtoqKu4mJuoeHu4CAwYCAwX9/wX9/wYKCvIeHtYeH - s4uLroaGtYeHuomJu4mJvIqKvYqKvY2Nu5KStp6eq6amo6CgqZWVtZWVtZWVs42NvYSEx4KCxICAwoCA - wYCAwoCAxIGBxoWFwo+PuJWVspqarp6eq5qarZOTspGRsouLuoODw4CAxICAwX9/wYCAwYGBwoGBxIeH - wIqKvouLu5WVsJ2dqKKio6Ojop+fp5ubrZubrpSUtJWVtJOTs4uLt4KCv39/xYGBxYKCxYmJvoyMvIyM - vo6OvJWVtKGhpqSkn5ycp5GRtoyMvI2Nu4yMuYmJuYeHuYeHuYeHuYiIuYmJu4WFw4SExoODxoeHwZWV - saCgpKOjn5iYqoyMuIiIvYmJvIiIuoeHuYeHuIeHt4WFuISEu4aGvIeHvImJu46Ot5OTspqarKGho6Ki - oqOjoqCgpJaWsIqKvouLvYqKvIODwYCAw4CAwYCAv4SEvIiIuYuLvIyMvYuLvpCQuZycqqCgoqOjoJub - qpGRtoyMu4qKvIaGwoSEwoKCwoWFvIiIt4WFvIKCxoKCxYWFxo2Nv5OTt5OTt5eXs6SkpqampKWlpaSk - paOjpKOjpKOjpKSkpaWlpaWlpaWlpaOjpKOjpKWlpaWlpaWlpqamp6amp6amp6WlpaSkpKOjpKOjpKOj - pKWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paSkpKOjpKOjpKOjpKOjpCAApaWlpaWlpKSko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqan - pqanpqanpqanpqanpaWlo6Oko6OkpKSlpaWlpaWlpaWlo6Oko6OkoqKjoqKio6OkpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlo6Oko6Oko6Oko6OkpaWlpqanpqanpqanpqampaWlpaWlpaWlpaWlpKSko6OkpKSk - paWlpqanpqanpqanp6emo6OompqvlZW2jY28hobDg4PGhITFhobEjIzAkpK5lJS3mZmyoKCoo6OioqKj - oaGhoaGhoaGhoKChnJyml5eyjY29hobFhITHg4PGg4PFg4PFg4PFg4PEjo63mpqsoaGnpqalpaWlpaWl - pKSlpKSlo6OjoaGkmZmtlJSzlZW1lZW0kZG4jIy+i4u9hYXEhITFhITFhYXFi4u9mJitoaGkoqKjoqKj - oqKjo6Oko6OkoaGlnZ2pkpK1iIjBg4PGg4PFg4PFgYHFhYW+jo62lZWvmpqonJylnZ2enp6doaGio6Ol - o6Oko6OkmJivkJC3jY28iYnBhITHhYXGg4PFhITGg4PIiYnBlJS0mpqsnp6moqKjoqKhoaGhoaGhoKCg - oaGgmJirkJC2jY27iYnAhITFhYXEhITFiIi9jIy4jIy4jIy1k5OsmZmmoaGkpKSko6OkoqKknJyoj4+3 - i4u8i4u7h4e+gYHEgIDBgIDBfn7Cg4O7hoa1iIizjIythoa2hYW3hoa5iIi7iYm7iYm8jIy7kpK2mJiw - n5+ppKSlpKSmnZ2snp6smJixkZG5iYnAgYHEgIDCf3/CgIDDgYHFhYXDjY27kpK0k5O2lZW0nJysnJyr - lJS1jIy6iYm8g4PCgYHDgYHBgIDBf3/BgYHCgoLDg4PFgoLGh4fBlZWyoaGjoqKio6Oin5+ml5evkZG1 - kpK0k5OzjIy5g4PBf3/Df3/CgYHDiIi9ioq7ioq7jo64lpazmJixnp6ro6Ojm5upkJC2jIy7jY26i4u9 - ioq8iYm6h4e4hoa3iIi5goLAgoLEhITFg4PGhobDkJC3nJypoqKin5+jkZGyh4e+iYm8iYm8iYm5iYm5 - hoa5hYW6hYW8iIi+ioq7ioq7iYm8iYm9j4+4nJyooqKjoqKio6OhnZ2pkJC3ioq+hITEgoLDgYHCgYHA - goK7hYW3iIi5iYm6ioq8i4u+jo67lZWzm5usoaGinp6jl5eskZGxkJCxkJCwiYm3h4e5h4e2hIS6gYHD - goLEg4PFjIy7kZG4kpK4lZW1lZW1o6OnpqakpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Ok - o6OkpKSlpaWlpaWmpqanpqanpqanpqampKSloqKjoqKio6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - o6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6Oko6OkIACjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6SlpaWlpaWlpaWkpKWjo6SlpaWlpaWmpqampqempqempqempqelpaWlpaWlpaWlpaWl - paWlpaWlpaWkpKSjo6SioqOioqKlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sl - paWmpqempqempqempqalpaWlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWlpaWkpKaenqqXl7GRkbiGhsOE - hMWDg8aHh8ONjb2MjL2MjL6RkbqenqympqSkpKSioqOioqOhoaGioqCfn6OWlq2Li7yEhMWDg8WDg8WD - g8WEhMWEhMWFhcOIiL6KiryUlLCgoKWlpaWlpaWlpaWlpaWlpaWkpKSgoKaTk7OTk7OUlLOQkLiMjL2L - i7+FhcWEhMaEhMaFhcSJicCRkbadnaeioqKioqOioqOioqOjo6Ojo6WenqqTk7aIiMGDg8WDg8WDg8WC - gsSBgcaHh7+OjreTk7GWlqycnKWhoaKenp6dnZ2hoaGjo6Wfn6iZma+Pj7qLi72IiMCDg8aDg8WDg8WC - gseHh8KKir+QkLmdnamioqSioqKioqKioqKhoaGhoaGenqKXl6qRkbOOjrePj7eOjreRkbSNjbiMjLmL - i7mNjbaTk62YmKadnaCgoKCioqOkpKShoaaXl7CPj7iMjLuHh8GDg8WCgsSBgcKBgcKDg7uJibGNjauL - i6+GhreFhbeFhbiFhbmGhrqHh7qKiriQkLOUlLSVlbSZma+hoaekpKWdnauYmLGRkbmJicGDg8aBgcSA - gMN/f8J/f8SFhcCLi7uLi72MjLyLi76SkrWcnKuenqqVlbSIiMKDg8WCgsWBgcOBgcGAgMF/f8GAgMGB - gcKBgcOCgsWGhsSOjrqamquhoaSjo6Kfn6aWlq+RkbaSkrSOjrqGhsOBgcWAgMSBgcKHh7uKirqKiryO - jreUlLCXl6+amrCZmbGjo6efn6mTk7ONjbmLi7yLi7yLi7yKiruIiLeEhLiAgMGAgMKAgMSCgsWGhsOJ - icGKisCXl7ChoaSkpJ+ZmaqOjrWQkLORkbKMjLiHh72FhbyEhLqFhbqIiLmFhcKEhMODg8SFhcKQkLac - nKiioqOioqKjo6CenqePj7iDg8aEhMWCgsSCgsGEhLuFhbaFhbeIiLmKirqHh8CEhMOFhcOIiMKUlLOh - oaejo6CdnaSVlayQkLKQkLGOjrCJibOCgrt/f8GAgMKAgMSKiriPj7aSkraUlLWXl7SamrChoamlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6SioqKioqOkpKWlpaWlpaWmpqempqempqempqak - pKWjo6SioqKjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWkpKWjo6Sjo6QgAKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKWlpaWlpaampqamp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjo6Ojo6OjpKWlpaWl - paWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKWlpqWlpaWlpaWlpqWlpaWlpaWlpaWlpaWl - paSkpaOjpKOjpKOjpKKipZ6eqpeXsI2Nt4aGwoODxYSExYODxYaGwYyMuoyMvYyMvZGRup+frKeno6Wl - paOjpaKio6Ojo6Cgo5eXrIuLuoODw4KCxIODxoSExYSExISExIWFxIqKv4qKvZGRtJubp6KioKOjoqWl - paWlpaWlpaampaOjppycq5SUspWVsZWVsZCQt4mJv4WFxISExoSExoaGxImJwJCQt5qaq6KioqKioqKi - oqKio6Kio6GhpJycqZKSt4iIwoSExoODxoODxYODxYCAxIaGvYuLuYyMuY6Ot5WVr6CgoqGhoaGhoZ6e - np6enaCgoaCgqJqarpCQuImJwYWFxIODxYODxYKCxoeHwYuLvIuLvo6Ou52dqqOjpaOjo6KioqKioqKi - oaCgopiYqpCQso6Oto6OtpCQtJGRtI+Pto6Ot42NuI+PtZKSsZSUr5iYp52dn5+fnqGhoKOjo52dqpGR - uI6OuoiIwYSExYODxYKCxYGBw4aGu4iIt4mJtIiIs4aGtYWFt4WFuIWFuIWFuIWFuIeHuIqKuImJvIuL - v4qKwZCQuZ2dq6SkpZ2dq5GRuYiIwoSExoODxoKCxYCAw319w4KCvIiIuIqKuoqKvYuLvpGRuZiYsKGh - pqOjpZycrpKSt4qKwIODxYGBxYGBw4GBwoCAwYCAwYGBwoGBxIKCxIODxYWFxI6Oupqaq6Gho6Kio56e - p5eXr42NuYWFwoKCxoCAx4GBwoaGuoiIuIiIuo+PtZCQtY6OuI6Ot46OuJOTtqGhqaOjpZqarZGRtYqK - vYmJu4qKuouLuIeHuoCAwH9/wYCAwoCAxIWFw4mJwomJwY2Nu5ubrKKipaWloJqaqpGRtJGRsoyMuYqK - u4mJvIeHuYeHtoaGuIODv4GBwoGBxoaGwo2NuZOTsZubqKKioqOjoaOjoJ6ep4+Pt4ODxYSEw4SEw4aG - voeHuIWFt4WFt4iIuIeHvYWFwYWFw4aGxIqKvpmZr6OjpaWlop6epZSUrY+PtJCQspCQsIaGvH5+xH19 - xIGBwYqKt4qKuIqKuYyMu4yMvI+Pupubr6KiqaWlpqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSk - paOjpKOjo6KioqOjo6SkpKWlpaWlpaamp6amp6amp6WlpqOjpKOjo6KioqOjo6OjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6SkpaOjpCAApKSlpKSk - paWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWmpaWmpqanpqanpqanpqampqal - paWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6OkpKSlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Ok - o6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkpKSjnZ2plpaykZG3i4u7goLD - hITDhITEhobBiYm8jIy7jY26kZG3l5ewoaGopqakpaWlpaWlo6OkpKShnJypjY26goLGgoLFgoLEh4e/ - iYm+iYm/iYm/iYm/jIy7k5OznZ2ooqKhoaGgoaGhoqKipaWlpaWlpqakpKSlnJyslpazlpaykZG0ioq9 - hITFgoLGhITGhITGg4PHioq/mZmvo6OjoqKioqKioqKioqKio6OhoaGllpaxiIjBg4PGg4PGhITEgoLF - goLEh4e9ioq5i4u3ioq6jo63mZmpoaGhoaGhoaGhoKCgnp6enZ2em5uokpK1ioq/hITFg4PGgoLFgYHG - h4fBi4u9ioq9jY26mZmuoqKmo6Oko6OkoqKkoqKioqKin5+ll5erkZGyj4+zjo63jY26jY25i4u8jIy7 - i4u6i4u5jY23kpKwnp6jn5+fnp6en5+eoKCgnJyqjo67h4fDg4PHg4PHg4PGhITEh4e9iIi7iIi6hoa7 - hYW6hYW3hYW3hYW4hYW3hoa3hoa2hYW4hITBhITFhITHiIjFk5O4oKCqpKSkoaGnlJS1hobEgYHKgoLI - gYHGf3/EgoK8hYW2h4e3iIi6ioq7kpK3lpa0l5exm5usoKCnoaGnm5utkpK3iorAiIjAhYW/gIDCgIDB - gIDBgYHDgYHDgIDEgoLDiIi+ioq+k5O0np6npaWgoKClkpK0hITDgYHHgYHHg4PEhoa9iIi5h4e5jo6y - jIy6h4fBhITDhITDiYm/l5exo6OmpqakoaGomZmukJC1j4+1jY23h4e8gYHBfn7Cf3/Bf3/CgoLAhobA - ioq/i4u+jY28nJyso6Okpqahm5uqj4+3jIy6iYm8iIi8jY21i4uzhYW3gYG9gIDCgIDChYW+i4u6jY24 - jY22kZGznZ2moqKio6Ohn5+mlZWyjY26jo65iYm8iIi7iIi4hoa2hoa3g4O9goLCgoLDgoLFh4fCk5O2 - nJyrn5+ooqKloqKknJyolZWtlpaslparjY2zh4e4h4e3h4e2ioq2iYm6ioq7iYm8ioq8kZG3lpaznZ2s - o6OmpqakpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6OjoqKioqKjpKSlpaWlpaWmpqan - pqanpqanpaWmo6Oko6OjoqKjoqKko6Oko6OkpKSlpKSlpKSlpKSlo6Oko6Oko6Oko6OkpKSkpaWlpaWl - paWlpaWlpaWlpaWmpqanpqanpqanpaWmIAClpaWkpKSkpKSkpKSlpaWlpaWkpKSioqOioqOioqOjo6Sj - o6Sjo6Sjo6SkpKWlpaWlpaWmpqampqempqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaWkpKakpKWk - pKWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6SioqSioqOjo6Ojo6Sjo6SkpKWkpKWkpKWkpKWkpKWlpaWl - paWlpaWlpaWlpaWkpKSlpaKbm62SkreMjL6Hh8GDg8KEhMOGhsGKir2MjLqMjLqOjriXl66enqejo6Sl - paWlpaWlpaWlpaWjo6SZma2MjLyFhcSGhsCGhsCLi7yNjbuNjbyNjbyNjbuRkbWamqyioqOjo6ChoaGh - oaGhoaGjo6OlpaSlpaWgoKqZmbCWlrKPj7WIiL2CgsSBgcWCgsWDg8aDg8eIiMORkbienqqlpaKioqSi - oqKioqKioqKioqKcnKmPj7iFhcSEhMWEhMWDg8WEhMSIiMCJib+Hh7+Dg8CHh7yTk7CgoKKhoaGhoaGh - oaGioqGgoKGZmaSOjrGFhb2CgsSCgsaCgsaDg8WGhsGMjLyLi72Pj7iZmayioqKjo6Kjo6Sjo6SioqSi - oqOioqKenqaZmaqUlLCOjraLi7uJib+Jib6Li72Li72Kir2KiruOjrWWlquhoZ+goKCfn6Cfn52dnZ6Y - mKiRkbeJicGIiMOIiMGIiMGIiMCKiruHh72Ghr6Hh7uHh7iGhriFhbiFhbeGhraGhrWFhbeDg7+CgseE - hMiHh8WKisGWlrahoamlpaSlpaScnK2MjL6FhcWGhsOGhsGEhL+IiLiGhraFhbiJibeNjbaRkbiQkLmQ - kLmQkLmWlrGenqidnaqbm66UlLWNjb2FhcKAgMOAgMGAgMGBgcGAgMOCgsKHh7yLi7iLi7mPj7adnaim - pp+enqiQkLiGhsKHh8KGhsOLi72OjrWMjLOLi7KLi7eDg8KAgMiDg8aIiMCQkLiZma+fn6mkpKWjo6ac - nKyXl7CVlbCKiruCgsN/f8N/f8F/f8GCgr+Fhb2IiL6Li7+NjbyRkbiYmLCfn6ikpKOenqmTk7SMjLuN - jbmOjreOjrSJibeBgb5/f8GAgMGAgMGFhb2Ghr6Ghr+JibyLi7qWlq+goKWjo6ChoaSbm6qWlq+WlrCO - jriJibuIiLiGhreBgb1/f8KAgMKBgcOAgMeGhsOVlbKdnaqdnaqhoaalpaKhoaWZmauamqibm6aUlKyP - j6+MjK+IiLSIiLmKiruKiryMjLmQkLSTk7KRkbaYmLCioqempqSlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWkpKSjo6SioqSioqOioqOkpKWlpaWmpqampqempqempqekpKWjo6SioqOioqOioqOjo6Sk - pKWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6WkpKWlpaWlpaWlpaWlpaWmpqWmpqempqempqcgAKWl - paWlpaSkpKSkpKSkpaWlpaWlpaOjo6KioqKio6OjpKOjpKOjpKOjpKOjpKSkpaSkpaSkpKampqamp6am - p6amp6amp6WlpqWlpaWlpaWlpaWlpaWlpqamp6amp6amp6WlpqWlpaWlpaWlpaWlpaWlpaSkpKOjpKKi - o6KioqKioqOjo6Ojo6OjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaampaSkpJeXsY2NvYeHwoKC - xIODwoWFv4eHvYmJvomJv4iIv4yMupiYqqCgo6Ojo6OjpaSkpaWlpaampJycrZaWs5KSto2NuouLu4uL - u4yMvIuLv4qKwIqKwYuLwJOTtpqarKGhpKOjoaKioqGhoaGhoaGhoaOjoZ+fqJeXsJSUs5OTr4mJuIKC - woCAxYKCxIODxYODxYmJwJOTtZycq6GhpqSkpKOjpKKio6KioqOjoZ+fpZSUsoiIwoODxoSExoSExoaG - xIqKwIuLwISExoKCx4ODw4yMtpmZpqKinqGhoaGhoaGhoaKioJ6epJKSsYWFv4CAw4CAxIODw4SEw4aG - woyMvIuLvYyMvJWVsKCgo6OjoKKioqOjo6OjpKOjpKOjpKGhpJycqJeXro+PtomJvIiIv4mJvomJvouL - vYuLvYqKvo6OuZWVrp2do6CgoKCgoKCgoJ+fn5qaopKSqo+Ps42NuYyMu42NvI2NvIqKvomJwIeHvoeH - vYyMtY2Ns4mJtomJtImJs4eHtYSEuIGBv4CAxoSExoiIxI2NvouLv5OTt6KiqqampaSkpaGhp5eXspGR - uo+Pu4uLvIqKuoiIuYaGt4aGuIqKt42NtoqKvoiIwYiIwYaGw4yMvJqarZ+fqJ6eqpaWsomJwYKCyIOD - xIGBwn9/wX9/woKCwIaGvYiIvIeHvoeHvoyMuZmZq6OjoZ+fppSUso+PuY6OuI6OuZGRtZSUsJGRrYmJ - s4CAw39/xYODw4eHwYuLvY+PuI6OupWVs6CgqKSkpJ6eqpSUtI6OuYSExICAxYGBwoCAwIGBvoWFvIaG - vYuLvI6OvI+PupOTtZOTtpiYsKGhpqOjpZ2dq5iYrZaWr5KSs4qKu4KCwn9/w4CAwYCAwYGBwoCAxIGB - xIaGv4yMuY6Ot5SUs5+fpqOjoaKiop+fpZaWsJOTtI6OuouLu4iIuoKCvX5+wn9/wYCAwX9/w4ODw42N - upeXsJ2dqp2dqqCgpqOjo6Kipp2dqpqaqpiYq5SUr5CQsoqKtYaGuYiIuYmJuomJu42NuJCQtY+PtZWV - sJ2dqaOjpaampKWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaWlpaWlpaWlpaWlpKSkpKOjo6KioqKio6Sk - paWlpaampaampqamp6amp6SkpaOjpKKio6KioqOjo6OjpKSkpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKOj - pKOjpKSkpaSkpaSkpaSkpaSkpaampaampqampyAApaWlpaWlpaWlpKSko6OkpaWlpaWlpaWlpKSko6Ok - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpaWlpqanpqanpqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWl - pqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OjoqKioqKioqKio6Ojo6Oko6Oko6Oko6Ok - o6OkpKSlpaWlpaWlpaWlpKSmnp6tkJC5hobEg4PGhITDhITBiYm7hITBgoLGg4PHhYXDjo63mpqqoKCi - oqKhoqKkpKSkpaWlpqakmpqwlZW2lZW1kZG3jIy8jIy9i4u9h4fDhITHhYXGiIjDj4+8nJytoqKkoqKh - oqKioqKioaGhoaGhoqKfmpqpk5Oxk5Owjo6zhoa8goLEgoLGgoLFg4PFhYXEkJC2mZmtoaGmpKSjo6Ok - o6Oko6OkoqKjoqKhnJyoj4+3hobChobDhYXEhITFiIjBiYnAhITGhYXFhYXFkJC3mJipnJyin5+eoKCg - oaGhoaGho6OfnZ2mjY22hITCg4PAg4PCh4e+i4u7i4u8i4u9jY27kZG2l5eunp6mo6OhoqKioqKio6Ok - pKSkoqKlnZ2plZWxkJC2iYm+iIi+iYm9ioq9i4u9i4u9i4u9i4u9jo65mJito6OfoaGhoKCgoaGfnZ2j - lpaqj4+xioq4iYm7ioq7i4u8ioq+iYm/iYm/ioq/jo62lJSslZWqkZGtj4+tjo6uh4e2f3+/fn7DgoLD - hYXCjIy8jY2+jY2+lZW2oKCrpaWmpaWmpqakoqKnmJixj4+5ioq9ioq7iIi5h4e4iIi4ioq6ioq9iorA - hobFhYXHhITHi4u+m5uspKSjnZ2rj4+5hYXDhITGg4PFgYHDf3/BgIDBhoa7h4e/g4PHg4PGhYXGiYm+ - lJSwn5+loqKjnJyplpaxlJSwlJSwk5OxkZGyjIy2f3/EgIDDgYHChoa+iIi+g4PFg4PGgoLHjY28nZ2q - pqahoaGnkpK3hITHgoLHgoLEgoLCg4O+hIS6g4O6h4e5ioq9jIy/jY29jY2+jY2+kpK3np6ppaWipKSj - oqKlmpqsjY28hITDgYHDgYHCgIDBgYHCgYHDgYHDhoa9i4u4jY22kpKxmpqqoKCkoqKio6OhoKCllJSy - jIy7jIy7i4u8hobBgIDEf3/Bf3/Bf3/BgIDBiYm5lJSvl5evlpawlZWym5uroqKlpKSjoqKlmpqtk5Oy - kZGzjIy4h4e7iIi5h4e5iIi5iYm5iYm7iYm9jY23mZmpn5+koaGkpKSlpaWlpaWlpaWlpaWlpaWlpaWl - pKSlo6OkpaWlpaWlpaWlpaWlpKSlo6Oko6OkoqKio6OjpKSlpaWlpaWmpqanpqanpqanpKSlo6Oko6Oj - oqKio6Oko6OkpKSlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpqan - IACjo6Sjo6Sjo6SioqOioqKjo6SlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sl - paWmpqampqempqempqempqelpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqempqalpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWioqOioqKioqKioqOjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWgoKmUlLeJicOFhcaE - hMSEhMGKiryFhcSEhMaDg8WFhcKPj7ebm6ihoaKhoaGhoaGhoaKioqOjo6SlpaSfn6qYmLGRkbqLi7+L - i72Ojr+IiMWGhseHh8aKisKRkbmYmLKjo6elpaWjo6SioqKioqKioqKhoaGfn6OZmauTk7COjrSGhr6C - gsSCgsWCgsWDg8WEhMWEhMWLi72YmK+hoaWjo6Ojo6Sjo6Sjo6SkpKOenqeXl6+Tk7OTk7OOjrmLi7uM - jLyIiMGDg8aEhMWGhsSSkrebm66goKWhoZ+fn5+enp6hoaGhoaGjo5+cnKaOjraJibqJibqKiruKiruK - iruKiruMjLuSkrWRkbWWlrCenqajo6GioqKioqKioqKkpKKfn6iVlbKPj7mJib+Jib6Jib6JibyKiruL - i72Li72Kir2Pj7eVlbCcnKmjo6GhoaGhoaGiop+ZmaePj7WLi7uJibqKiruMjLyLi7+JicCJicCJib+Q - kLeZmayfn6GdnaGVlauOjrKHh7mBgcB/f8J/f8KDg7+KirmKiruMjL2SkrmVlbaWlrSenq2lpaampqWh - oaqTk7eKir+MjL2Li72KiruJibmIiLmIiLmIiL6FhcWGhsWFhcaIiMKSkreenqijo6ScnKuRkbiHh8KC - gsWCgsWBgcN/f8KFhbiDg72CgsWEhMaFhcSMjLyTk7SZma2enqWioqChoaSamquamquamqmWlq2Kirp/ - f8WAgMJ+fsGFhbqGhryCgsOCgsSDg8WDg8eNjbydnaqmpqGhoaaUlLKHh8GGhsKEhMKGhr+JibmIiLmG - hreJibiFhcKDg8mEhMiEhMmEhMePj7udnaqkpKKhoaaYmK+Li76Hh8GHh8GEhMOBgcSBgcOAgMGAgMOH - h7yKirmKiruLi7mSkrOcnKadnaagoKSjo6GhoaOcnKmOjriMjLyHh8KDg8aCgsWBgcN/f8F+fsOJibWN - jbOIiL6Jib6Kir6Jib+UlLSgoKejo6ScnKqWlrGUlLSNjbqJibyJibqIiLmGhreHh7iIiLmIiLqMjLiT - k7WRkbWQkLeWlq+fn6alpaSlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6SlpaWlpaWlpaWlpaWkpKWjo6Sj - o6SioqKioqOkpKWlpaWlpaWmpqempqempqelpaaioqOioqKioqKjo6Sjo6SkpKWlpaWlpaWlpaWjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaUgAKOjpKKioqKioqKioqKioqKioqamp6amp6am - p6ampqSkpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKampqamp6amp6amp6amp6WlpqWlpaWl - paWlpaWlpaWlpaampqamp6amp6amp6WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjo6KioqKioqKio6Oj - pKOjpKOjpKOjpKOjpKSkpKWlpaCgqZOTt42Nv42Nv4yMvImJvIWFxISExYODxoaGw46OuJeXqp+fo6Gh - oaGhoaGhoaGhoaGhoaKipJ2dqpiYsZGRuYyMv4mJwoWFxIaGxYaGx4WFyIqKxJOTu5iYs52drKSkpqam - paWlpaOjpKKioqKioqOjop6eo5mZp5CQsYWFvoGBw4KCxYKCxYKCxYODxYSExYSExouLvpiYrqGhpKOj - o6OjpKOjpKOjpKSkopubrpSUtZOTtI6OuYuLvIuLuoeHwISExYODxoSExJGRtpmZr6Ghp6SkpKOjo6Gh - oJ+fn56enqGhn5+fo5SUr4mJvYqKu4mJuYqKu4uLvIuLvIuLvIuLvYuLvY+PuJubqqOjoqKio6KioqKi - oqKioqOjoZubq46OuYqKv4qKv4mJv4qKvouLvYuLvYqKvIuLvpCQt5SUspqarJ+fpaKioqKioqGhoaGh - oZaWrYqKuomJu4mJu4mJuoqKvYqKwIiIwYqKv5GRuJaWr56ep56epZeXqo6OsoiIu4KCwoCAw39/w4KC - voeHt4mJuYqKuoWFwoWFxYWFxoqKwZiYsqWlpqenpJubsZCQvIyMvo2NvYyMvYyMvIqKu4eHuIWFvISE - w4WFxISExouLwYyMvpKSuJ+fqqOjpKSkpJmZsI6OvImJvomJvIiIu4eHuIGBvoCAwYKCxIaGw42Nu5GR - tZiYraCgpaOjoqKioaCgopqaq5ubqpeXrouLvIGBxoCAxICAw4WFuYODvIGBwYGBw4GBxIKCxYiIwZWV - tKCgp6Sko6KipZubq5SUs5GRs4yMuImJvIqKuomJuYaGtYODwIKCxoSEx4SEyIWFx4uLwJeXtJ+fqaSk - o6Cgp5OTtIeHwoeHwoWFxIODxYGBxIGBw4GBwoeHu4qKuYuLvIuLvYuLvYyMvJSUsJubqKCgo6OjoqKi - oaGho5SUsoeHwYKCxoODxYODxYGBxH9/w4WFu4qKt4iIvYODxIODxIWFxYqKvpaWr6GhpaKipJycqpWV - spOTtZKStpKStI+PtIiIuYeHuIaGt4aGuImJuIeHvYODxYSExIODxY2NupycqKSkoaOjpKWlpaWlpaWl - paWlpaWlpaWlpaWlpaOjpKSkpaWlpaWlpaWlpaWlpaOjpKOjpKKio6Kio6SkpaWlpaWlpaamp6amp6am - p6WlpqOjo6KioqKioqOjo6OjpKSkpKWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOj - pKWlpSAAo6Oko6OjoqKioqKioqKioqKipaWmpqanpqanpqanpaWmpKSlpaWlpaWlo6OjoqKioqKioqKi - o6Oko6Oko6OkpKSlpqanpqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpqan - pqanpaWmpaWlpaWlpaWlpaWlpKSlo6OkoqKioqKioqKio6Oko6Oko6Oko6OkpKSjo6OknJyqlJSyjo65 - iYnAhYXDhYXCg4PFhITFh4fCjY26lJSympqqnZ2ioaGhoaGhoaGhoaGhoaGinZ2mmJivlZWxjo65h4fC - hITFg4PFhITGg4PIiYnEk5O8mZm0nZ2vpKSnpaWlpaWlpaWlpKSlo6OkoqKioaGjnZ2nkpKxhoa+gYHD - gYHDgoLEg4PFhITFg4PGhITFi4u9kZG3nZ2oo6OioqKjoqKjo6Oko6OkpaWioKColpayjo66i4u8i4u9 - hobChITGgoLIhobEkpK3mZmroKClo6Oko6Oko6Oko6OjoKCgnp6enJygmZmolJSxj4+1i4u6hYXBhYXD - hobEhobFh4fDjY29jIy8kJC1nJyopKShoqKjoqKjoqKio6Ohn5+mkpK0iIjAiorAioq/jIy9jIy8jIy8 - i4u9ioq9j4+2lJSxlpavnZ2ooqKioqKioqKio6Ohm5unkpKxjIy5ioq6ioq5hITAg4PDhITEh4fCjo67 - lZWzl5ewnp6nnZ2ml5eukZGzjY20h4e8h4e8hoa7hYW5h4e2iIi4g4O/goLCgYHFg4PFjY28nZ2tpqak - p6eknp6vlJS5kZG6kJC5jY29jIy9i4u7hYW8gYG/g4PChITDiYm/jY29i4u/kZG5np6rpKSlo6OjlZWy - j4+5kJC4j4+3ioq6hIS+gIDBgIDBgYHCg4PEhYXDh4fCjY28l5eynJyrn5+loaGimJirlJSxjo64ioq+ - iIi/iIi9iIi7g4O9gIDBgIDCgIDEgoLFiIi9lZWumpqqnJyqoKCnpKSjoqKlm5utm5utlJSwj4+zj4+0 - iIi5gYG+gIDDgIDFgoLGhYXFi4vAkpK4lZW1m5uvoqKno6OlmZmtjY28hYXFg4PHg4PHgoLGgYHDhoa6 - iYm5iYm6ioq8i4u9i4u9i4u9kpK0mJirn5+joqKhoqKioqKimpqrjIy8goLGgIDIgYHHgYHEhYW7iYm2 - hoa8gYHCgYHEg4PEgoLFiIjAlZWxoKClpKSioKCnk5O1k5O2lJSzkJC1ioq5iIi5h4e4h4e4iIi3hoa9 - goLEgoLGgoLGgoLHjIy7nZ2opKSfoqKipKSko6OkpKSlpaWlpaWlpaWlpaWlpaWlo6OkpKSlpaWlpaWl - paWlpaWlo6OkoqKjoqKio6OjpKSkpaWlpaWmpaWmpqampaWmo6OkoqKioqKioqKio6Ojo6Oko6OkpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6Oko6OkIACjo6Sjo6SioqSioqKioqKioqKlpaWl - paampqempqempqempqalpaWlpaWlpaWjo6OioqKkpKSkpKWkpKWjo6Sjo6SkpKWmpqampqampqakpKSk - pKSlpaWlpaWlpaWlpaWlpaWlpaWlpaempqempqempqempqempqempqWlpaWlpaWlpaWlpaWlpaWjo6Oi - oqKioqKioqOjo6Sjo6Sjo6OioqWdnauWlrGQkLaIiL+EhMSDg8aDg8aEhMWDg8eIiMCOjrmSkrWZma2g - oKGgoKChoaGhoaGhoaGgoKKcnKaYmK2QkLeIiMGEhMWBgcSCgsWEhMSHh8CPj7mZmbSgoK6lpaimpqal - paalpaWlpaWlpaWlpaWkpKSdnaeTk7OJib6CgsOBgcOBgcOBgcOCgsODg8aEhMWKir6RkbaXl6+goKWj - o6KioqOioqOioqOkpKOhoaaYmK+Pj7mLi72Li72KiryHh76Hh8GKisCSkrecnK2cnKqhoaGioqGjo6Sj - o6Sjo6SioqOiop+dnaGXl6iTk7COjreFhcGDg8WDg8aDg8eGhsWLi7+NjbySkrWYmK6enqWioqGioqOi - oqOioqOkpKCgoKWTk7SJib+Li72Li72IiMGHh8KGhsOJib+RkbSVla+Xl6ydnaehoaOioqKioqKioqKj - o6GYmKyOjraKirqKiruFhcCCgsSDg8WCgsWDg8SIiMGMjL2UlLSgoKejo6GamquRkbaSkrKPj7OLi7eJ - ibiIiLeGhriDg7+BgcOCgsWEhMSOjrmamq6enqugoKqmpqWkpKiamrOSkruPj7uNjb2Njb6Hh8CCgsKB - gcKDg8GHh7yLi7qKiryNjbyYmLKkpKalpaWioqSYmK6UlLSRkbeLi72EhMSAgMSBgcKAgMF/f8KBgcSC - gsaEhMaGhsSIiMOQkLmdnaqjo6Gfn6WYmKuMjLuJicGLi72Li7yHh76CgsGBgcOAgMSCgsSKir+QkLeW - lrCVla6SkrKamq2mpqKjo6ScnKyXl7GVlbKSkrOLi7mCgsJ/f8N/f8KAgMOBgcaFhcKRkbaWlrWVlbaZ - mbGgoKqkpKSgoKiSkraIiMGHh8OJicGIiL+GhryIiLeJibiJibqKiryMjL2MjL2MjL2NjbuRkbabm6mi - oqGhoaGioqKdnaeUlLGOjriNjbmLi7qGhr2JibWFhbuBgcGBgcKBgcKBgcSGhr+MjLmWlq+goKSkpKCi - oqSXl7CUlLSQkLiMjLyKiryKirqIiLmIiLeGhr2CgsOAgMWBgcSDg8WCgsaKir6YmK2ioqKioqKioqKj - o6SkpKSkpKSkpKSkpKSkpKSkpKSjo6SkpKSkpKSkpKSkpKSkpKSjo6Sjo6Ojo6KioqKioqOkpKSkpKSk - pKSkpKSkpKSjo6SioqKioqKioqKioqKioqOjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWj - o6Wjo6Sjo6QgAKSkpaSkpKSkpaOjpKKio6Kio6WlpaWlpaWlpqWlp6amp6amp6WlpqWlpaWlpaSkpKOj - o6WlpaWlpaWlpaSkpKSkpKSkpKSkpKSkpKSkpKOjpKOjpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaampqam - p6amp6amp6amp6amp6WlpqWlpaSkpaWlpaWlpaSkpaOjo6KioqGhoaOjo6OjpKSko6KipZmZr5CQuYiI - wYSExYODxoSExYSExYODxoaGw4qKvo+PuJWVsZubqKKioqGhoaCgoKGhoKGhoZ+fo5qaqZGRs4WFv4KC - xIGBxYKCw4aGwIeHv46OuJaWr5qaraCgrKiopqamp6Wlp6WlpqWlpaWlpaWlpaOjp5iYr4qKvoODxYKC - xYGBw4GBw4GBw4CAxIODw4mJvpCQtZaWr52dqKGho6KioqKio6Kio6Kio6GhpZeXr46OuouLvoyMvYyM - vYqKu4qKuo2NuZGRtpaWsZubrZ2dq6GhpKGhoaKioqOjpKOjpKOjpKGhpJubppSUq4yMtYWFwIODxYWF - xoSEx4aGxIuLv46OvI6OvJqar6CgqKGho6GhoaGhoqKio6Kio6CgpJycqJKStIuLvYyMvIiIwYSExYOD - xoKCx4eHwpGRtpSUs5eXrp+fpKOjoKKioqKioqKioqSkoJmZrY6OuYmJvoaGwIKCxYODxYODxYKCxYKC - xYSExYmJwJeXsKGhpqWloZ6ep5OTspOTs5GRtIqKuIqKuYiIuoKCv4CAwoKCxISEwouLvZSUs5mZrZeX - sJmZr6Ghp6ampJ2drpGRu42Nvo6OvY6OvYiIv4WFvoSEvYWFvImJuYqKuomJvI6OuJycraWlpKOjpqGh - p56eqpiYsZGRuI6Ou4uLvoeHv4KCwX9/wn5+wYCAwoODw4aGxIWFxYWFxYuLvpmZsKOjo6OjoqCgo5WV - r4+Pt42NuIqKvIKCw4CAwn9/xIGBw4iIvZKSt5SUtJOTtpGRtZGRtJiYraOjo6OjpJ2dqpWVspGRuIuL - vYSExIGBxoCAxICAwn9/w4ODwIuLt5OTsZWVs5aWtJeXs5ycrqOjp6SkppeXsZSUtZSUtJCQuIyMvImJ - uIaGuIeHuYiIuoqKvIuLvIyMvYuLvoqKv4qKwZSUtKCgpaKioKGhoZ6eppiYrJWVsJOTs4+PtoqKuYWF - vICAwYCAwoCAwoGBwYaGvoqKu5aWsZycq52dqKCgpKKiop+fp5WVs4yMvYuLv4yMvIqKuomJuISEvICA - woCAxYGBxIGBxIODxYODxIWFwpCQt52dqKOjoaKio6OjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKOjpKKioqKioqOjpKOjpKOjpKOjpKOjpKOjpKKio6KioqKioqKioqKioqOj - o6OjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKOjpCAApaWlpaWlpaWlpaWlpKSlpKSl - paWmpaWmpaWlpaWlpqampqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6Ok - o6Oko6Oko6OkpKSlpKSlpaWlpaWlpaWlpKSkpKSlpqanpqanpqanpqanpqanpqanpaWmpKSlpaWlpaWl - paWlpaWlo6OkoaGhoqKho6Oio6Okn5+olZWyiYnBg4PHg4PGhITFhITHhITHhobDjIy8kJC3k5Oympqr - oaGjoqKioqKioaGhoqKgn5+jmZmrkJC1hobBgYHEgYHEgoLChoa+i4u5jIy3lpavmpqqm5uooKCnpqam - pqanpqanpaWmpaWlpaWlpaWloaGolJS1iIjCg4PGg4PFgoLEgYHEgYHDgYHCiIi7kJCylpasnJyooqKj - oqKioqKioqKioqKjoqKjnZ2okJC3i4u+jIy9jIy9jIy9i4u8iYm8kJC0lJSxk5O0lZWynZ2qoqKlo6Oi - oaGhoaGho6Ojo6OknZ2qlpawjo63hITAgIDFhITFhITGhobEjIy+jo68jY29j4+7nJyspKSmpaWkoqKj - oaGhoqKipKSim5urk5O0jY25ioq8h4fAg4PGhITFhITFg4PGhobDjIy8kpK1mJitn5+koqKhoqKioqKi - oqKio6Oilpawi4u8hobDgoLFg4PEg4PFg4PFg4PFhITCiYm8k5Oyn5+no6OkpKSjoaGlmZmrkJC2jIy7 - i4u7iIi7g4PAf3/Ef3/Bg4PAi4u4kpKzk5O0kZG2kZG2lZWzm5uupKSloKCrlJS4j4+9kJC8j4+7jIy6 - ioq5iIi3h4e3iYm6ioq7iYm8jIy5lJSxnJyrnZ2soKCqnp6rmJixlpazl5eykpK2ioq8g4PDf3/Df3/A - gYHAhITAhYXCh4fCjIy9j4+6lZW1n5+qo6OkpKSin5+klpasjY22hYW/gIDDf3/Cf3/Bhoa7j4+0k5Oy - k5O0kpK2kpK3kpK0lpaunZ2no6Ojnp6om5uslJS0iIjCgYHJg4PFgYHEgIDEgoK/jIy0k5OukJC1jY25 - j4+6jY29kpK4np6spaWln5+qnZ2rmpqrkpK1ioq9iYm6hoa4hoa3iIi5iYm6ioq7i4u/ioq/iorAiorA - kpK2np6po6OhoaGhn5+kl5etkZG1jo65ioq9iIi/gYHEgIDCgIDCgYHBhYW8ioq4iYm7lZW0l5eylpaz - m5uto6OioqKjl5evj4+4jY28i4u9iYm7hoa9f3/Bf3/CgYHCgYHDgoLEgoLEhITDgYHGiYm9mZmrpKSh - pKSlpKSkpKSko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkoqKjo6Oj - o6OkpKSkpKSkpKSkpKSko6OkoqKjoqKioqKioqKioqKio6Ojo6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpKSkIACjo6SlpaWlpaWlpaWlpaWlpaWmpqempqempqelpaalpaWmpqempqempqelpaal - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWkpKSi - oqKkpKSmpqempqempqempqempqempqelpaWkpKWlpaWlpaWlpaWlpaWjo6ShoaGioqCenqeVlbKMjL2D - g8eEhMaEhMaEhMaEhMaGhsSNjbyPj7mUlLOVlbGamqujo6GioqKioqKioqKiop+cnKSQkLSFhcODg8aD - g8WEhMSIiL+Li7uLi7qRkbGXl6uZmauenqakpKCjo6SmpqempqempqempqelpaWkpKWgoKqTk7eIiMOE - hMeEhMWDg8WDg8KBgcGIiLmOjrOTk62ZmaednaOioqKioqKioqKioqKioqKioqOenqiRkbWMjL2MjL2M - jL2MjL2Li7yKiryPj7eTk7KVlbGXl6+enqmioqWkpKSioqKhoaGioqKioqWXl7CQkLmHh8KBgcaCgsOD - g8SEhMSMjL6OjryNjb2Njb2Rkbienqqjo6WlpaWjo6WioqOhoaGioqOVlbCMjLyJib6Hh7+BgcWDg8WE - hMWEhMWDg8aGhsOOjrqZma2enqahoaOioqGhoaGioqKhoaOamquOjrmFhcSDg8eEhMWEhMWEhMWEhMaF - hcOLi7yTk7GcnKWhoaGjo6OkpKSioqSamqyOjrmMjLuMjLuGhsGCgsOBgcGBgb+Hh7mPj7KRkbKPj7eO - jruOjrqNjbuUlLSioqehoaiXl7OTk7mTk7mUlLmOjryKiryIiLiGhreJibmKiruKiruJibyMjLmUlLOZ - ma+hoaicnK2ZmbCZmbCUlLWJicCDg8aBgcWAgMKAgL+Bgb6Cgr+EhMGIiL6OjrmQkLmSkriamq+kpKWj - o6KdnaiRkbWGhsCBgcOCgsGDg7+GhriMjLKRkbCRkbGRkbSPj7mPj7qPj7yQkLiXl6yioqKenqeenqiZ - ma6MjL2CgsiEhMaCgsSBgcKKiraSkq+QkLWKisCEhMeDg8eBgcmJicGbm6+mpqSkpKWcnKyWlrKOjrmK - ir2KiruHh7mGhreHh7iJibmKiryKisCLi7+MjL6Tk7Wbm62hoaejo6OioqKjo6CXl66NjbuLi72Kir6B - gcWBgcGAgMGAgMGEhLuJibeIiLmJibyJib6JicCMjLyYmLCkpKOhoaOcnKmUlLGOjrqLi7yJibyAgMV/ - f8KAgMGBgcOBgcOCgsSDg8SDg8SDg8SLi7qZmaqkpKGlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SioqKjo6SkpKWlpaWlpaWlpaWjo6Sjo6SioqOioqKi - oqKioqKioqKjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaUgAKOjpKOjpKSkpaWlpaWl - paWlpaWlpaamp6amp6amp6ampqWlpaamp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaSkpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjo6KioqKioqWlpaamp6amp6amp6amp6amp6amp6Wl - paSkpaSkpaWlpaWlpaWlpaOjo6GhoZiYq4yMvYODx4SExoSExoSExoODxoaGw42NvI+PuZOTtpSUtJmZ - rqCgpaOjoaKioqKioqKioqSkoJycp4yMt4KCxIODw4SExYqKwY6OvY2Nvo6OvJKSs5GRspaWrJ+fpKOj - oaKioqOjpKamp6amp6amp6Wlp6CgqpiYsoyMv4aGxoWFx4SExoSEw4mJuomJu4yMs46OsJCQr5aWqZ6e - o6GhoaKioqKioqKioqKioqKio5ycqY+PuIqKvouLvYuLvIuLvIuLvIuLu4qKvI+Pt5eXrpycp6Kio6Oj - pKOjpKOjpKOjo6GhoZ2dqJKStoeHwoSExoSExYODxIODw4mJvIyMvI2NvY2NvJCQuZeXsqOjpqWlpKSk - paSkpaSkpKGho5qaqI6OuYuLvoiIwIODxoODxYKCxIODxYSExYODxoaGwpCQtp2dqaKio6KioqKioqKi - oaCgopubqZCQuIaGw4ODxoSExYODxYSExYSExYWFxIuLvpOTtJubqqCgoaCgoKGhoaOjo6KipZycqpaW - spOTs4yMuouLvoqKvImJuYiIuYaGt4iIuIqKuYeHwIODxoSExYSExY+Pt5+fp6SkpJ6erJiYspeXs5aW - tY6OvImJvIiIuIeHuIaGt4mJuoqKu4mJvIyMuJSUsJycqaOjpKKip52drZSUtomJwIKCxYODxYKCxYGB - wYGBvoGBv4GBwoODxIKCxYiIv4yMvI+PvJeXs6Skpaamo5mZro6OuouLvoqKu4mJuY+PsI6OroyMr46O - r5CQso6Ot4yMu42NvYyMvo+Pu5eXr6KioKGhoZ2dqJKStoiIwoSExoSExYGBxI2NtIuLtIiIuIiIvIOD - xoSExoSExoKCyIqKv5ubrqampKOjpp2drZiYs4+PuoqKvouLvIiIuYeHuYeHuIeHuYiIvIqKvoqKv5OT - tpubrqCgp6KipKKipaOjpKOjoZiYrI+Pt4yMu4qKvoODxYKCw4GBwoSEu4eHtoeHuIeHuYiIuoqKvIqK - vo2Nu5mZr6Sko6OjpJ6eppGRtoqKvouLvIqKvYKCxICAwYGBwYGBw4KCw4ODxIODxIKCxYyMuJeXrp+f - qKSko6WlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKKioqKio6SkpaWlpaWlpaWlpaOjpKOjpKOjo6KioqKioqKioqKioqOjo6OjpKOjpKOjpKWlpaWl - paWlpaWlpaWlpaWlpaWlpSAAo6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpqampqanpqanpqanpaWlpqan - pqanpqanpqampaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Oko6OkoqKj - o6OjpaWlpaWlpaWlo6OkpKSlpaWlpaWmpqanpqanpqanpaWmpKSlpKSlpaWlpaWlpqalo6Oil5erioq8 - g4PIhITHhITHg4PIhobCioq8jIy6k5O1lJS2l5ewn5+opKSjoqKjoqKioqKioqKipKSgnZ2oj4+3iIi7 - ioq7jIy8iYnBhYXFhYXGhobGjIy/kZG0lpaqnZ2joqKhoqKioqKio6OjpaWmp6empKSpmJi0i4u/hobF - hITGg4PIhobEioq7ioq6hoa/hoa+hIS+iYm4lpaon5+doKCgoaGhoqKioqKioqKioqKinJyoj4+5ioq+ - i4u9i4u8i4u9hYXEhYXEg4PFh4fBkpK0nZ2moaGhoqKio6Oko6OkpKSjoaGklpauiYm/hYXDhobDiIjA - iYm7iYm8jIy8jIy8i4u9j4+6l5eynZ2ro6OlpKSlpKSlpKSlpKSloqKknJypjo64hYXCg4PFg4PFhITF - hITFhITFg4PEgoLFhobCkJC2nZ2poqKjoqKioqKio6OhoKCkk5OyjIy8i4u9h4fCg4PHg4PFg4PFhYXC - ioq9k5OzmpqtnJyroaGkoaGhoKCgoaGho6OioaGmm5usmpqtlJSykZG1k5OzkJCziIi6gIDAgIDAgoLB - goLDg4PFhYXFioq+jo66mpqrpKSin5+olJSzlZWylJSxjY25iYm7iYm5h4e4hYW2h4e5iIi6iIi8j4+2 - m5unoaGhoqKipKSioaGolZW1iorAi4u/ioq+h4fBgoLAgIDAf3/BgIDBg4PEg4PHiorAjY29j4+7l5ez - pKSlpqajmZmwkpK3kpK1kpK0kZGykJCxkJCwjY2viYmyiYm5ioq6ioq7i4u9kJC6l5exnZ2po6OioqKg - mJisioq/g4PHg4PHhYXFkJC2jY23h4e5g4O9goLEg4PFg4PFhITGg4PHiYnBlZWzoaGnpaWlpqakm5uw - j4+8i4u/i4u9iYm6h4e4hYW4hYW5h4e7iYm9i4u9kpK2m5uunp6rnZ2rnp6qpKSlpKSknZ2om5uql5eu - j4+2iYm8iIi6h4e5hoa4hYW3hYW4h4e5iIi6ioq7ioq8ioq9kZG4np6qo6OknJyrkpK0j4+3kZG1jo64 - hITFgYHEgIDBgIDBgYHBgYHDg4PEiIi9jo61lpaunp6npKSio6OkpaWlpaWlpaWlpaWlpaWlo6Oko6Ok - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkoqKioqKjpKSlpaWlpaWlpaWlpKSk - o6Oko6OjoqKioqKioqKioqKio6Ojo6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlIACjo6Sjo6Sjo6Sj - o6SkpKSlpaWlpaWlpaWlpaWlpaampqempqempqalpaWmpqampqempqempqelpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Ojo6Ojo6SlpaWlpaWkpKWjo6Sjo6Sjo6SkpKWm - pqempqempqempqalpaWkpKWlpaWnp6Wjo6eVlbKKir2Jib6Kir+Kir+Kir+Kir2Jib2KiryRkbSYmLCf - n6mjo6Sjo6Sjo6SioqOioqKioqKkpJ+dnaiPj7iLi7uKirmHh8CFhcWEhMaFhcWMjL+SkriYmLCenqag - oKCgoKChoaGioqKioqKjo6Snp6WioquSkrqFhciEhMiDg8iGhsOLi7yLi7yFhcOEhMSDg8WGhsCPj7Gb - m6Kenp6enp6fn5+hoaGioqGioqKcnKiWlrCNjbqKir2MjLuLi72GhsSEhMWEhMWDg8iJib+Xl62hoaKh - oaGhoaGioqKjo6OioqWenqiWlrCMjLmLi7qKiruKiruMjLuMjLuLi7yLi7yKir2MjLuWlrGjo6WkpKWk - pKWkpKWlpaWjo6acnKuWlrKOjrqFhcOCgsaDg8WEhMWEhMWEhMWEhMWDg8WIiL+WlrGhoaSioqOioqKi - oqKjo6GioqOYmK2Xl62UlLCNjbeGhr+AgMSBgcOBgceMjLyXl7CZma2bm6yjo6Sjo6OhoaGgoJ+hoaCh - oaWZma6WlrOUlLSUlLKSkrSLi7yDg8OBgcKAgMKBgcOAgMaDg8SKiryPj7iOjrqZmaujo6GgoKWZma6U - lLONjbiKirqKirqIiLmGhriFhbeHh7mIiLqIiL2QkLacnKaenqSdnaSfn6WgoKeXl7GLi76MjL2Li72K - iruEhL5+fsJ/f8GBgcKCgsWHh7+Kir2OjruWlrSdnaylpaSlpaSfn6uXl7KUlLWTk7STk7OSkrGQkLKK - irWHh7aHh7qEhMKGhsOFhcSKir+Tk7Wamq6goKijo6OamqiRkbSPj7mRkbiRkbiPj7qKiruEhL+AgMKA - gMOBgcSDg8WDg8WDg8aFhcaMjL2Zma+kpKWkpKWYmLOOjr2MjL6Li7yJibmGhrmFhbiDg7uCgsGEhMOF - hcOHh8KQkLiamq6enqqfn6mkpKWkpKWjo6Wjo6Kbm6mOjreKiruJibmIiLiGhriFhbiFhbiHh7mJibqK - iryKir2Kir6NjbuWlrKjo6SgoKaamqyVlbCUlLCSkrKIiL+Dg8GAgMGAgMGAgMGBgcKCgsSDg8SJib+S - kreamq6hoaijo6OlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6OioqKioqKjo6SlpaWlpaWlpaWkpKWjo6Sjo6SioqKioqKioqKioqKioqOjo6Sj - o6SkpKSlpaWlpaWlpaWlpaWlpaUgAKSkpaOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpqamp6am - p6ampqWlpqWlp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOj - pKSkpaSkpaSkpKWlpaWlpaWlpaWlpaOjpaOjpKOjpKSkpaamp6amp6amp6WlpqSkpaSkpaGhppaWso2N - u4uLvIuLuoqKuoqKu4uLvIqKvYuLu4+PtZWVrp6epaOjo6SkpKOjpKOjpKOjpKKio6KioqGho5qaqpGR - tYuLvYeHwYODxIODxoaGxIuLv4+PvJKSuJ2draSkpaOjoaCgoKCgoKGhoaKioqKio6Wlo6GhqpCQuYmJ - womJwomJv4qKu4qKvYaGxISExoSExoKCx4qKvZeXqp6enZ6enp6enp+fn6GhoKCgopubqJSUsY6OuYuL - u4yMuoqKvoWFxIODxoSExYODxoaGw5GRt52dpqKin6GhoaGhoaGhoqOjoqCgppaWsJGRt4+PuI2NuYuL - uYqKu4yMvIuLvIuLvIuLvIyMu5CQt5eXrqSkoqSkpaSkpaSkpaWlpKKip5aWtY+Pu42NvYeHwoODxYOD - xIODxYSExYSExYODx4SExI6OuJubqaKio6Kio6Kio6KioqGho5ycqJubqZiYrZKStIqKvIODwoCAxH9/ - xYmJu5WVsZmZrZqaq5+fp6OjpKOjpKKipKGhoaCgoKCgopycqZSUs5SUs5KStYuLvYSExIKCxYGBwoGB - woGBxIWFwYqKvI2NuZGRtpWVsJ+fpaOjoaKio5+fppiYroyMvIqKvYuLuomJuYeHuYaGuIaGuIiIuImJ - uo+PtpiYrJiYrZeXrZWVrZubqZmZrY6OuIuLvoqKu4aGv4KCwYCAwYCAwYCAwoWFvYqKu46OuJKStJaW - spqasJ+fqqOjpaSkpZubrpOTt5SUtZSUs5GRsoyMt4iIuYaGuYODwIGBxIKCxYODxoSExIaGwo2NvZiY - sKKipaKipJycp5aWrZSUtI6OuYuLvYWFwIGBwoCAw4GBw4KCxYSExoSEx4WFxoeHxI+Pu5ycraSkpaKi - ppmZr5CQuouLv4uLu4mJuYiIuIODu4GBwIGBw4GBxIKCxYCAyI2Nu5qarZ6eqp+fqqSkpaSkpaSkpKWl - op+fppOTs4mJvoiIuoaGuYWFuIWFuIaGuIiIuImJuYuLu4uLvIuLvY2Nu5SUsqOjo6SkopubrJaWsZaW - r5SUr5CQtIKCwYCAwoCAwX9/wYGBw4GBxYaGw4yMvpCQupGRt5eXsqOjpaSkpKWlpaWlpaWlpaWlpaWl - paSkpaOjpKKio6Kio6OjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjo6Ojo6OjpKSkpKWl - paWlpaWlpaSkpaOjpKOjo6KioqKioqKioqKioqKio6Kio6Kio6OjpKWlpaWlpaWlpaWlpSAApaWlpKSk - o6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpqampqanpqanpaWmpaWmpaWmpqampqampaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OlpaWmpqampqampaWmpaWlpaWlpaWlpaWlpKSk - o6Oko6OkpaWmpqanpqanpqanpqampaWlnp6nkJC3ioq+jIy7i4u6ioq5ioq6ioq7iYm+jY25mJiqnp6k - oqKgoqKio6Oko6Oko6Oko6Oko6Oko6OhnJyok5OyjY25h4fBhITGgoLGhITCioq+jY28jY29j4+8nZ2t - paWlpaWkoqKioKCgoKCgoqKio6Oho6OinJypkZG1jY27jIy7iYm+iIi/hobCg4PIhITGhITFhobEkZG3 - np6moaGenp6enp6enp6eoKCcm5ukkZGyjIy6i4u8ioq9iYm/hobDhITGhITFhITFhobDjIy8mJiuoqKi - oaGioaGhoaGhoaGhoqKhnZ2olJS0kZG3j4+6jIy8ioq8ioq7i4u8i4u8i4u8ioq8jY27lJSznZ2moqKi - o6OkpKSlpKSlpKSlnp6qlJS1kZG4kpK4iorAg4PGg4PEg4PFhITFg4PGhITEjIy7mZmtoKCjoaGioqKj - oqKjo6OioaGkmZmrl5etkZG1iYm+g4PEgYHGgoLDiYm5kJCvlZWrmZmqnp6no6Ojo6Oko6Oko6Oko6Oj - oKCinp6hnp6jlJSwkZG0i4u8hITEgoLGgoLEf3/CgIDCgoLFhobCiIjAiYnCj4+6l5ewnZ2qoaGlo6Oi - oqKjm5uqjo66i4u+i4u8ioq7iIi6hoa4hoa2hYW7hobAiYnAjY26k5OylJSxlZWunJynoKCjmZmrjY25 - h4e/gYHEgIDDgIDCgIDBhIS8ioq3ioq6jo64kZG2j4+5kZG5mpqvoqKmp6einZ2slJS2lpa0k5O1jo65 - ioq6h4e7goK/gIDDgYHDgoLEg4PFg4PHg4PGiIi/k5O0oaGmpqainZ2pkpKyjIy5iIi+hobBgYHDf3/C - gIDCgYHDgoLEhITHhYXIiYnEjIzAkpK4n5+ro6Omo6OmoaGml5ewjY27i4u8ioq7h4e8goLAgYHCgYHC - gYHCgYHEhYXBjIy5k5O0lpaynJytpaWkpKSlpKSlpaWkoqKmmJiujY25i4u1h4e3hYW4hYW3hoa4hYW9 - hYW+h4fAiIjBh4fCiYm/kZG0n5+lpKSinZ2qlpaxlZWylJSyj4+2iIi+goLCf3/Cf3/CgoLDhYXAjY28 - kJC5kJC4jo66kpK3np6ro6OlpKSkpaWlpaWlpaWlpaWlpaWlpKSko6OjoqKjo6OkpKSkpKSkpKSko6Ok - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlpKSko6OkoqKjoqKioqKioqKi - oqKioqKioqKioqKjo6OkpaWlpaWlpaWlIAClpaWlpaWlpaSjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWl - paWmpqampqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWk - pKSlpaSmpqampqempqempqelpaalpaWlpaWlpaWlpaWkpKSjo6Sjo6SkpKWlpaalpaalpaajo6WcnKmQ - kLWKiruKirqLi7uHh76Hh76Hh76Hh7+Pj7ecnKigoKKhoaGhoaGhoaKioqSjo6Sjo6Sjo6Sjo6OYmK6L - i7yFhcKDg8WEhMSEhMOJib2Li7qLi7yOjryTk7efn6ulpaWmpqWkpKSioqKgoKChoaGhoaGdnaeVla+Q - kLeMjLyKir6FhcSCgseDg8aEhMaEhMaHh8KMjL2Zma+jo6SioqKgoKCenp6enp6enp2Xl6aOjrSMjLiK - iryIiMKFhcWEhMaFhcWFhcWHh8KMjLyRkbWcnKmkpKGioqOhoaKhoaGioqCdnaWXl6yVlbGTk7WMjLyL - i76MjL2MjLyMjLyMjLyLi7yLi7yPj7mYmK2ioqGioqKioqKjo6OkpKSioqebm62WlrKXl7GVlbOKisCD - g8eDg8WDg8WCgsWEhMSNjbuYmK6hoaSjo6KhoaGioqKioqOioqOenqeWlq6QkLaKir6CgsSBgcaEhMaI - iMCRkbONjbONjbOWlqugoKOjo6KioqOjo6Sjo6Sjo6ShoaaenqWamqaPj7GIiLyDg8SCgsWCgsSBgcN/ - f8F/f8GCgsSDg8aEhMeIiMWNjb+RkbqVlbWcnKyioqSioqOcnKqPj7mLi72Kir2Kir2JibqHh7iFhbmB - gcCBgcWBgcmFhcSTk7GWlq+YmKyenqWiop+dnaSOjrWDg8SBgcWBgcSBgcKFhbyIiLeHh7yHh72Hh76I - iMCKir+OjriZma2enqqkpKWenquVlbSTk7aPj7uMjL2JibyDg7+AgMOBgcKBgcODg8WDg8WFhcWJicGN - jbqSkrSgoKalpaKbm62NjbqHh7+GhsGBgcWAgMN/f8F/f8GAgMKBgcODg8SIiMKLi8CMjL+Ojr6UlLad - naykpKampqGbm6qPj7iLi76KisCEhMSBgcSAgMKAgMKBgcKBgcOGhr2Hh72Hh8CKir6VlbOjo6WkpKWk - pKWlpaSgoKmXl7KTk7OSkrGJibaGhraFhbeCgr2AgMSBgcSDg8aDg8aDg8aEhMaKir+Wlq6hoaOioqOb - m6uUlLSPj7mLi72KiryEhMKAgMSAgMGEhL6KirmOjrmOjrqOjrqOjrqRkbiYmLGjo6akpKSjo6SlpaWl - paWlpaWlpaWlpaWkpKWkpKSlpaSmpqampqampqalpaWjo6Sjo6Sjo6Sjo6SkpKSkpKSkpKSkpKSjo6Sj - o6Sjo6SkpKWlpaWlpaWlpaWkpKSjo6SioqOioqKioqKioqKioqKioqOioqKioqOkpKWkpKWkpKUgAKWl - paWlpaWlpaSkpaOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6ampqWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKWlpqamp6amp6amp6amp6WlpaWlpaWl - paWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpJ6eppeXrI6OtYmJuYmJuoaGvYCAxYCAxX9/xoODwoyMuZSU - sJubqKCgoqGhoaGhoaKioqOjpKOjpKKipJycrI+PuYWFxIODxoSExIWFxIqKvYuLu4qKu42NuJOTs5yc - qqOjpaWlpaWlpaWlpaWlpaKioqGhn5ubppWVr4+PuIqKvoqKvoSExYODxoSExYSExYSExIeHwY6Ou5OT - tp6eqqWloqKio6KioqCgoJ+fnpycoZWVqZCQro+Ps4aGwIWFxoWFx4WFxoWFxoiIw42NvZGRt5WVsZ2d - qKOjoqKio6Kio6GhoaGhn5ubqJSUspOTso6OuouLvYuLvYuLvouLv4uLv4uLv4uLvY+PuJeXrp+fpKOj - oaKioqKioqKio6OjpKKip52drJaWs5WVtY2NvIaGxIODxoODxYODxYSEw42NuZiYrKGhpKOjoqKio6Ki - oqGhoaKiop2dqJWVsI+PuImJv4SExYKCxoODxYiIwY2NvIuLvoqKvYuLupSUq52dn6GhoKKioqKio6Oj - o6GhpqCgqJ2dq5OTsoqKuoKCwYCAw4GBw4GBw4CAwn9/wYCAwYGBw4ODxIiIwY+PvY2Nvo2NvpOTt5qa - r6CgqaOjpJ2dqZCQuIuLvYuLvYuLvYqKvIeHu4CAwX9/wYCAwoGBxIeHwJGRtJOTs5KStZeXrpubp5aW - rYqKvISEwoSEw4KCw4aGvoqKt4SEuYCAwoGBxYODxoKCx4iIv5SUsZmZqpubraOjp6GhqJeXso+PuYuL - vYuLvoODwn9/woCAwYCAwYGBwoODxYWFxYmJwIyMvY2NvJSUtKCgpaSkoqCgp5OTtYeHwoKCxYKCxYGB - xICAwn9/wX9/wYGBwYaGv4qKvImJwIiIxIiIxYmJwpeXs6SkpqWlpZmZr42NuomJwISExoSExYKCxYCA - wn9/wYCAwoKCwoCAxIGBxYGBxoSEw46OuZubrKOjpqSkpaamo52drJKSuJSUtZKStYqKuIaGuIKCvX9/ - w4GBwoKCw4SExYSExYSExYSExYaGw5GRt5+fpqOjoKGhpJiYsIyMv4uLv4SExYODxoKCxIODvoeHt4eH - uoiIvYmJv4qKv4yMvY+PupaWsqOjpqWlpaOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpqamp6amp6am - p6ampqSkpKOjpKOjpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaOjpKOjpKKi - o6KioqKioqKioqOjpKOjpKOjpKOjpKOjpKOjpCAApqanpaWlpaWlpaWlpKSlo6Oko6OkpaWlpaWlpaWl - paWlpaWlpaWlpaWlpqampqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWmpqanpqanpqanpqanpaWmpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Okn5+o - mJiulJSwjo62hoa/gIDFgYHEgYHEgoLEgYHFhITBj4+1nJynoaGioaGhoaGhoaGhoaGhoqKknJyqkJC5 - h4fDhITGhITFg4PBiYm8ioq8ioq8jIy6kpKympqooqKio6OjpKSlpaWlpaWlpaWlpaWlo6Ogl5erjY22 - jIy6ioq9hITFhITFhITFhITFhITFh4fCjY27k5O1mZmuoKCmpKSjo6OkoqKjoqKioKCfnJyhlpaojY2x - hIS/g4PEhITGhYXGhYXGiIjDjo68kZG6lZWzm5uroKCko6OjoqKjoqKjoqKjoKCjmZmpkpKzjY25i4u8 - i4u8jIy8iIjCg4PHhITGhITGjo67l5evn5+lo6OhoqKioqKioqKioqKioKCkoKCnoKCqmJixjo68hobE - hITHhITGhITFhYXEjIy6lpasnp6joaGioaGkoqKjoqKjo6OinZ2llpaukJC3iYm/hITFhITFg4PGiIjB - jIy8i4u9i4u9jY27lpavnp6in5+dnp6eoaGhoqKioqKioqKknp6qlJS0i4u+i4u8ioq5hIS/gIDEgIDC - f3/Bf3/Bf3/Bf3/DhYW/jIy7jIy9jY2+k5O4m5uvnp6roaGppaWkoqKklZWyjIy8ioq+jIy9iYm+gYHD - gIDBf3/Bf3/Cg4O+iYm6h4fBh4fBhYXDjo63mpqpl5esioq7ioq7ioq7iYm7ioq5h4e7gYHBgYHBgYHC - goLGiIjBi4u6jIy6lZWxm5uqo6Olo6OmnZ2rlZWzi4u8hITDgYHDgIDBgIDBgIDBgYHCg4PDiYm/jIy8 - jIy+jY28lZW0oqKlo6OioqKimpqrjIy8goLGgoLFgYHEgYHDgIDDgIDBg4O9iYm6h4e/hobBiIjCiorD - j4+8nJyupKSmpKSlmpqujY29hITGhITFg4PFgoLFgIDCf3/BgIDBgYHCgoLEgoLEgoLEgoLFh4fAlZWx - oqKlpKSkpqajnp6rlJS3lJS1jo65ioq6hIS/gIDCgIDBgYHBgYHCg4PEhITFg4PGhobDjY27kJC4m5uq - oqKjpKSgn5+okZG5hITGhITGhITHhobAiIi3hIS4gYHCgoLEgoLGhobCj4+6lpazmpquoKCppKSlpKSl - o6Olo6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpqampaWlpaWlo6OkpaWlpaWlpaWlpaWl - paWlo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpKSko6Oko6Oko6Oko6OkpaWlpaWlpaWlpKSlo6Oko6Ok - IACmpqempqelpaalpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWjo6SkpKSmpqampqempqempqem - pqempqempqempqalpaWlpaWlpaWlpaWlpaWkpKWjo6SlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqem - pqempqalpaWlpaWlpaWlpaWkpKSjo6Sjo6SioqWdnaqXl7GPj7mHh8GCgsWCgsWCgsWCgsSAgMaFhcCM - jLaUlK2fn6GhoaGhoaGhoaGhoaGhoaCgoKKWlrKIiMGEhMeFhcaGhsOJibuKiryKiryNjbiRkbSTk7KU - lLGgoKKioqGjo6Ojo6WkpKWlpaWlpaWnp6SZma6NjbaIiL2Dg8WDg8WDg8WDg8SEhMSEhMaFhcSOjrqZ - ma2hoaakpKSjo6Sjo6Sjo6SioqOgoKWZmaeNjbOEhL+Fhb6FhcCIiMGMjL+Njb6Ojr6Pj72Pj72UlLef - n6mjo6GioqKioqOioqOjo6Kbm6qSkrSNjbmLi7yLi7yKirmFhcGDg8WDg8aFhcaLi7+Tk7Wbm6ygoKSj - o6GioqKioqKioqKioqKhoaOdnamYmK+VlbGIiMCDg8WDg8WDg8WCgsaEhMWRkbaenqWgoKCgoKGioqKi - oqOioqOjo6KZma2NjbmJibyKiruKiryMjL2NjbyJicGFhcWEhMSEhMSPj7ednaejo6GgoKCfn5+enp6h - oaGjo6GenqeWlrGTk7aSkraNjbyLi72JibuIiLiFhbp/f8J/f8F+fsOEhLyJibiJibqKiruMjL2Njb6T - k7mamrCgoKmmpqSkpKWVlbKNjbuMjLyJib+EhMWCgsSBgcKAgMODg7yGhrmFhb6GhsCHh8GIiL+Tk7Kg - oKSenqWPj7aKiruKiruLi7qHh72BgcKBgcGBgcGAgMSHh8GMjLyMjLyMjLyMjLqYmK2goKSjo6OlpaWh - oaiTk7aEhMSAgMaAgMOBgcGAgMGBgcGHh7yKirqLi72OjruVlbScnK2ioqSjo6Ojo6Ofn6aWlq+QkLaQ - kLSLi7qIiLyHh7uHh7mHh7iFhb+GhsCGhsGIiL6Li72Ojr2amrGhoamlpaWioqiXl7OJicCDg8WDg8aC - gsWBgcKAgMF/f8GBgcKBgcOCgsWDg8WFhcGLi7qRkbOfn6ajo6SlpaOfn6uTk7ePj7uOjryGhsKDg8WC - gsOAgMGAgMGBgcKDg8SCgsaHh8KOjrqQkLeQkLibm6qioqOjo6GgoKSXl6+Kir6Kir6Kir+KiruGhrt+ - fsGBgcKBgcWHh8GOjrmVlbGZma2Zma6Zma6hoaelpaSkpKWkpKWjo6SlpaWlpaWlpaWlpaWlpaWlpaWl - paWmpqempqempqempqalpaWlpaWjo6SkpKWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWl - paWkpKSjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWjo6QgAKamp6amp6amp6ampqWlpaWlpaOjpKOjpKOj - pKSkpKWlpaWlpaWlpaSkpaOjpKOjpKSkpaSkpaWlpqWlpqamp6amp6amp6amp6WlpaWlpaWlpaWlpaWl - paWlpaSkpKWlpaWlpaWlpaWlpaWlpaWlpqamp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpKKipJ2d - qpaWsZGRuIiIwYKCxYKCxYODxYODxYGBx4eHv42Nt5KSsJeXqJ+fn6CgoKGhoaGhoaGhoKGhoZ6eppmZ - qouLu4aGwYiIvYiIu4mJuomJvIqKvIqKvI6OuJSUsJiYq6GhoqGhoKKioqKipKOjpKSkpaWlpaSkppqa - sIuLvoKCxYKCxYKCxIODxIODxIODxIODxYWFxIuLvJeXrqCgpaOjo6OjpKOjpKOjpKSkopycqZCQt4aG - wISEv4WFvoWFvYWFwoaGxIaGxIeHxI6OvZOTuJubsKOjqKWlo6KioqKioqKio6SkoZiYrY2NuoqKvouL - vIuLu4WFwoODxYKCxoSExYuLvpOTt5SUtJmZraCgpqOjoqKioqKioqKioqOjoaGho5ycqZSUs4mJv4OD - xISExoSExoKCyIWFxJCQt5KStJubqp+foqGhoKGhoaGhoaKio6Skop2dqZaWsJKStIyMuYqKuoaGw4aG - xIWFxYSExoSExoODx5CQt56ep6SkoqGhop+fn56enp+fn6Kin5+fppeXr5GRto6OvIyMvYyMvYuLuoaG - vYCAwn5+wn5+woODuoaGtoiIuImJuomJuoqKu4yMvY6OvZCQu5iYsqSkpqWlpZ2drY+PuYeHwYWFxIKC - xYGBw4CAw4ODu4aGuISEvoKCxYSExYKCx4yMu5qaq6Cgo52dppaWrouLu4uLuoiIv4ODw4CAwoCAwYCA - woWFvIyMuouLv4aGxIeHw4aGw4+PtZ6epqSkoaSko6Skppubr5GRuI+Pt4qKuYWFvIWFu4SEuoiIuYiI - uoyMuJWVsJubq5ubrJycqqCgpaSko6GhppycqZiYp5WVrYuLt4iIuomJuIiIuYSEvIWFvoWFwImJvYmJ - u4iIvoqKvo2NvpeXs6Ojp6Skpp6erZSUtYmJv4mJvIODwICAwn9/wX9/wYGBwoKCxIODxoeHwoqKvYqK - vIyMu5eXq6Cgo6SkoqGhppeXsIyMvoaGw4KCxoKCxoKCxIGBwYCAwYGBwYCAxIWFwIqKu4yMu4yMvIyM - u5mZraGhpKOjoqCgpJmZq5KStY6Ouo2Nu4iIv4GBwn9/wYCAwoaGvIqKvIyMvZCQuJWVspaWsZWVsqCg - p6WlpKSkpaSkpaSkpaOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6amp6WlpaSkpaOjpKSk - pKWlpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKOjoqSko6WlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWl - paWlpSAApqanpqanpqanpqanpqampaWlpKSlo6Oko6Oko6OkpKSkpaWlpaWlpaWlpKSlo6Olo6Oko6Ok - pKSkpaWlpaWmpqanpqanpqanpqampaWlpaWlpaWlpaWlo6OkoqKjo6OjpaWkpaWlpaWlpaWlpKSkpqam - pqanpqanpqanpqanpqampaWlpaWlpaWlpaWloaGomZmvj4+5h4fChITHgoLGgoLFg4PFhITFiIi/jIy7 - jY23k5OvnZ2jn5+fn5+foKCgoaGhoKCin5+lnp6mmJiskpKykJC0jY23ioq8ioq9ioq9i4u+iYm/jIy7 - lpavoKCioaGhoaGhoaGhoaGioqKko6Olo6Omo6Omnp6rkJC5hITDgoLDgoLDgoLDhITEg4PGhYXEiorA - jo64nJyqoqKkoqKioqKjo6Oko6OkoqKlmJiwi4u+hobDh4e/hoa9g4O/g4PEgoLHhYXFiorAj4+9mpqv - oqKopaWlpaWlo6OkoqKjoqKioaGkmZmtj4+4i4u8i4u9hobBg4PFgoLGhYXDjIy8kpK1lZWzmJixn5+q - pKSlpKSkoqKjoqKioqKioaGjnp6olJSyiIi/goLGg4PFg4PFgoLHh4fDkJC5lpayl5evl5eun5+mo6Og - oaGhoaGhoqKhoaGknJyqlpawkJC3iIi+hYXCgoLFgoLIhITHhITGhITGjY27lpaxoKCmo6OioqKjoqKi - oKCgn5+enZ2hmZmqk5O0jIy7i4u9i4u8i4u7ioq5h4e6g4O7g4O6g4O6hYW3hYW2h4e4ioq5ioq5ioq6 - iYm9iorAiYnCkJC7n5+rpaWlpKSml5eziYnCgYHIgYHGgIDEg4O9hYW5hIS9gYHDgYHGg4PHh4fCkJC3 - l5etm5unnp6lm5unj4+2iIjAg4PFgIDFf3/Df3/BhIS8iYm3iYm8hobFhITIhITHhYXHioq+mJitoaGj - o6OhoqKknZ2smJiykpK3jIy6iYm6iIi3hoa2iIi5i4u1kJCylZWxmZmwmZmyl5e0oqKppqajoaGmm5uq - lpatjo61ioq5iIi6h4e7hIS8hIS9g4PAg4PChobBiIi/iIi+iIi+ioq+l5eyo6OnpaWln5+rmJizjIy+ - hobBgoLCgIDCgIDCf3/BgIDCgIDDhobAioq9ioq9ioq+i4u8l5esoKCjo6Oio6Ojnp6qj4+6iYnBh4e/ - iIi9hITAf3/Df3/CgIDChIS/ioq7i4u6ioq7ioq8ioq+l5exoKClo6Ohn5+mlJSykJC3jo66iYnAhITE - gYHFgIDCg4O7h4e4iIi7jY27kpK3k5O0lJSzk5O1oKCnpaWio6OlpKSlpKSlo6OlpKSkpaWlpaWlpaWl - paWlpaWlpaWlpaWmpaWnpqanpqanpqampaWlpKSko6Oko6OkpaWlpaWlpaWlpKSlpKSlpKSlpKSlo6Ok - oqKjoqKjo6OkpaWlpaWlpaWlpKSlo6Oko6OkpaWkpaWlpaWlIACmpqempqempqempqempqelpaalpaWk - pKSjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWkpKSjo6Sjo6SkpKWlpaWmpqWmpqampqempqelpaalpaWl - paWlpaWkpKSioqOioqOjo6OkpKSkpKSjo6SioqOkpKWmpqampqempqempqempqelpaalpaWlpaSioqac - nK6UlLWLi76Hh8KEhMaDg8aEhMWDg8WEhMWIiMCJib+NjbqXl6ugoJ6fn5+fn5+fn5+goJ+goKScnKmZ - mauVlbCWlq+RkbKMjLqLi7+Li76Li76Li7+NjbyRkbaZmayjo6ChoaGhoaGhoaGhoaGioqGjo6OgoKaf - n6eYmLCNjbuFhcGCgsOCgsOCgsOEhMaGhsWKir+RkbeXl6+hoaSjo6KioqOioqOjo6Sjo6ScnKqQkLmI - iMGIiMGIiMCFhcGDg8WDg8aFhcKJib6MjL2Ojr2cnK2lpaWmpqSlpaWlpaWkpKWjo6Kbm6qUlLKPj7iL - i7yGhsKCgsaDg8WCgsWFhcSLi76Tk7WXl66enqmkpKalpaWkpKWkpKWioqOjo6GdnaiSkrSIiMCCgsaD - g8WDg8WDg8WFhcWPj7uXl7KVlbOYmK6Zmaufn6WioqGhoaGhoaGenqOamqmWlrGPj7qHh8GDg8WBgcaB - gcWCgsaDg8eGhsWOjruZma6fn6iioqSioqOioqOioqOioqKfn6GXl6ePj7KKirqKiruKirqKirqGhr2D - g76Dg7yDg7qEhLiGhrWFhbeFhbaFhbmFhb2Ghr2IiL+FhcGFhcOFhcaKisGamrClpaWnp6Oamq+MjL+F - hcWGhsKFhb+Hh7qDg75/f8J/f8SBgcWDg8WLi72Pj7mPj7mVlbGenqScnKWRkbSIiMGFhcOFhcCFhb6E - hLyHh7WGhrqDg8OEhMeFhceFhceFhceKisGVlbKfn6Wjo6ChoaSYmLCSkriNjb2Li72KiruIiLmGhraG - hreLi7SOjrWOjrmPj7mRkbuRkbyfn66np6WkpKSenqiXl7GOjrmNjbeOjrWLi7eFhb2Dg7+BgcKBgcOC - gsaGhsOKir6Kir2MjLuYmK6kpKWmpqShoamYmLGQkLyIiMODg8WBgcWBgcOAgMKAgMGEhL+IiLuKiruK - ir2NjbqVlbKenqehoaOioqKjo6Cfn6WSkraMjLyKiryLi7qHh7yDg76EhLyDg7yIiLmKirqKiruKiruL - i7qSkraYmK+bm6qgoKWgoKWVlbKMjLyIiMGEhMaDg8iDg8SFhbyHh7eGhrmJibeRkbOVlbKVlbSVlbST - k7Wdnaujo6SkpKSkpKWkpKWkpKWjo6Sjo6WlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqampqempqelpaam - pqalpaakpKWkpKSlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6SioqOioqOjo6OkpKSlpaWlpaWkpKSjo6Sj - o6SkpKWlpaUgAKamp6amp6amp6amp6amp6amp6WlpqWlpaSkpKSkpKSkpKOjpKWlpaWlpaWlpaWlpaWl - paSkpKOjpKOjpKSkpaSkpKSkpKWlpqamp6amp6WlpqWlpaWlpaWlpaOjpKOjpKKio6KioqKioqKioqKi - oqKio6OjpKWlpqamp6amp6amp6amp6WlpqWlpJ2dqZKStI2Nu4uLvoyMvYiIwYWFxYODxYKCxIODxIGB - x4aGw5OTtJ+fpaGhn6CgoJ+fn5+fn6CgnqCgoZubqZSUsJSUsJCQs4uLvIqKwIuLvouLvouLvoqKv4+P - upiYr6CgpaKioqGhoaGhoaGhoaGhoaGhoaGhop2dppaWr4qKvISExYSExYODxIKCw4ODxIWFxIuLv5KS - tpmZr5+fqKKioqKioqKio6Kio6Kio6OjpZubrY2NvYmJwomJwIaGwoSExoSExoWFxYmJvouLu4uLu5GR - tp6eq6SkpqWlpaWlpaWlpaWlpaKippiYr4+PuIqKvoaGwoKCxoODxYODxYODxYWFxIeHw46OvJubqqKi - o6Ojo6SkpaSkpaSkpaOjpaGho5eXr4iIv4GBx4ODxYODxYODxYSEx4qKwZGRuZKSt5KStpiYsJ+fpqKi - oqKioqKioqGhoZycpZSUr42NuYeHwYODxoKCxoKCxYGBxIGBxYSEw46OupqarZ+fqKSko6SkpKKipKKi - o6Kio6Kio52dpZiYqY+PsoiIuoeHu4eHu4eHu4KCwn9/xX9/xICAwIKCu4WFuIWFt4WFt4KCvYCAwoKC - woSExISExYSExoSExomJwJaWs6SkpqWlpZubr5OTt5KSuJGRt4yMuoWFv4CAw39/w39/wn9/w4ODwYqK - vIuLvYiIwY6OuZubqZycp5KSso6OuI6OuYyMuIqKuYqKt4SEuICAwYKCxYSExoSExoWFxoWFxoqKwZiY - s6KipaSkoKCgpJOTsoyMvIuLvYyMu42NuYyMt4iIt4eHtoeHt4iIuoqKvIqKvYuLvYuLwJWVt6GhrKen - paOjpZycrJeXsZOTsZGRsY2Nt4WFvoCAwYGBwoGBw4SExIiIwYuLvYyMvYuLvpaWsaCgqKampKOjp52d - rZqasZSUt4yMv4aGw4SEwYSEv4KCvoiIuomJuomJvIqKvZCQt5ubq5+fpqCgpaGho6KioJ2do5KSsYyM - uIyMuYuLuYyMtouLtImJtoeHtoiIuImJuYmJuoqKu46OuJubq5qarJiYrp6eqKOjopycqY6OuYaGw4WF - w4aGw4eHv4mJt4eHuoeHtYyMspCQs5KStpKSt5KSt5WVs5qaraCgpqSko6OjpKSkpaSkpaSkpaOjpKOj - pKSkpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6amp6amp6WlpqSkpaSkpaWlpaWlpaWlpaWlpaWl - paWlpaSkpKOjpKKio6KioqKioqSkpKWlpaWlpaWlpKOjpKOjpKSkpSAApqanpqanpqanpqanpqanpqan - pqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6OkoqKjoqKipKSlpqanpqan - pqanpaWmpaWlpaWlo6Oko6Oko6OkoqKjoqKioqKioqKioqKio6OjpKSlpqampqanpqanpqanp6enpaWo - mZmvjIy6ioq+i4u9i4u9jIy8iIjBg4PGgoLEgoLEg4PEjIy7mpqroqKioqKhoKCgoKCgn5+fn5+fnZ2i - mJiokpKvkJCyiYm7iYm+jIy/jIy/jIy/jIy/jIy+kJC5nJyspaWhoqKioqKioaGhoaGhoaGhoKChnJyl - lJSuiYm8g4PDgoLEgoLEgYHDg4PEhITEiIjBjo67lpaynp6ppKSjo6OkoqKjoqKioqKjoqKjoqKjnZ2p - kZG5i4u+iIjBhITGhITFhYXFi4u+i4u9jIy7kpKynJymo6OjpaWkpaWlpaWlpaWlpaWloKCqmpqvkJC4 - hYXDgYHHg4PFhITFhITFhITFiYnAjY26kJC3nJyqoqKkoqKio6OkpKSlpKSlpKSln5+pkZG2hobBg4PF - g4PFg4PFhITFg4PGiYnBjIy+i4u/jo68nZ2so6Olo6OioqKioqKioaGjnJymjo62hobAgoLEgYHFgYHE - gYHEgYHDgoLCjIy3l5esnp6po6Olo6Oko6Oko6Oko6OkoqKjoqKjnp6om5uplJSuiYm5goLCgoLBgIDE - gYHDgYHDhIS/h4e4iIi1h4e1hYW3goK9gYHBgoLAg4PBhITEhITFhYXFiIjBjIy9kJC5n5+qpaWloKCp - np6rnp6rmJiyiYnBg4PGgIDEf3/Cfn7BgIC/hYW7iIi6ioq9i4u9kZG2mZmsnZ2nnJynlpaulZWwkJC1 - iYm7h4e8f3/CgIDCgoLDg4PFhITFhYXFhobEi4vAlpa1oKCpo6OioaGjl5etk5O0kZG1kJC2kJC0kJCz - iYm4h4e2hoa2h4e4ioq6ioq7i4u8jIy8jo6+mZmzpaWopKSom5utmpqtlJS0i4u7g4PAgIDDgIDBgIDB - gYHAhYW/iYm+i4u+jIy/jY2+k5O4mZmwoqKopaWloaGooaGpm5uvmZmzkpK3ioq5iIi4hYW3h4e6iIi7 - ioq8i4u9jIy7kZG0lZWxnZ2poaGko6OioaGimpqnlZWukpKykpKykpKxjo60h4e5h4e5hYW4h4e5iIi6 - iIi9i4u9l5evmJiumpqtoKCnpaWioaGlkpKzjY27i4u8i4u8ioq7iIi5iYm3jIyuiYm1iIi9iYm+iYm/ - i4u/k5O1mpqtoaGmpKSjo6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqan - pqanpqanpqanpqanpqano6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OjoqKioqKipaWlpaWl - paWlpKSlo6Oko6OkIACmpqempqempqempqempqempqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6SmpqempqempqempqalpaWlpaWjo6Sjo6Sjo6Sjo6Oi - oqKioqKioqKioqKioqOkpKSlpaampqempqenp6aioquUlLaJib+Li72Li72MjLyGhsKDg8aDg8WDg8WC - gsSLi7eSkq+cnKejo6GioqKioqKgoKChoZ+dnaKXl6mSkq+Pj7KJibmIiLyKir2MjL+MjL+MjL+MjL+T - k7mYmLGfn6ikpKOjo6SioqKioqKhoaGioqCfn6OWlq+Jib2EhMODg8ODg8KCgsKBgcSDg8aDg8aCgseE - hMWNjbybm6yjo6Sjo6Sjo6SioqOioqKioqOgoKWamquQkLiHh8OEhMaFhcWEhMSKir6Li72Li76SkrWd - naehoaChoaGioqOkpKWlpaWlpaWlpaWgoKqbm6+NjbyEhMSCgsWDg8WEhMWDg8aJib+Li72QkLednaei - oqKioqOioqOioqOjo6SkpKWkpKWfn6mRkbeLi72IiMCDg8aEhMWEhMWEhMWEhMWDg8aIiMKWlrOjo6ak - pKSjo6Sjo6OhoaOcnKiVlbCIiL6Dg8WBgcWBgcSBgcSBgcKBgcKLi7aQkLCTk66bm6iioqWjo6Sjo6Sj - o6Sjo6Sjo6SioqObm6uVlbKKir2EhMKEhMKCgsSCgsSBgcSCgsKKireRkayPj62OjqyDg7uAgMCBgb+B - gcCCgsKEhMSEhMWIiMKKisCJicGMjL6Zma+kpKalpaShoamWlrSJicKEhMiDg8eCgsZ/f8OAgL+Dg7qG - hreHh7mHh7uQkLWamquenqadnaeioqKdnaaWlq6Pj7aHh72AgMOAgMGAgMGAgMKCgsSDg8WFhcSMjL2N - jb6KisCUlLahoaijo6SdnaednaaamqaUlKyNjbWJibmIiLeGhreGhreGhreIiLiJibqKiruPj7iQkLmW - lrWhoaylpaicnLGUlLSOjruHh8OCgsaBgcOAgMF/f8GDg7uCgr6BgcSCgsaEhMSNjb6Ojr6Tk7mfn6yl - paOenqeZmbGZmbGamrGXl7GOjrWGhrqFhbiGhrmIiLqKirqKiruLi7yLi7yLi7yWlq+goKWjo6KioqOh - oaKZmaiSkrCRkbKOjraJibyJibqIiLmCgr2BgcGBgcOBgcSEhMSKir2RkbiXl7Gfn6ikpKKhoaaSkrSM - jLuKiryKiryJibyKiriOjrCGhrWGhraFhb+Dg8aEhMWEhMWLi7+YmLGhoaakpKOjo6Sjo6SlpaWlpaWl - paWkpKWjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqempqempqempqejo6SkpKWlpaWl - paWlpaWlpaWlpaWlpaWkpKSjo6Sjo6SioqKioqKkpKSlpaWlpaWlpaWlpaUgAKOjpKWlpqamp6amp6am - p6amp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaSkpKOjpKWlpaWlpaWlpaSkpKOjpKOjpKOjpKOj - pKOjpKWlpqamp6amp6amp6WlpaWlpaSkpKOjpKOjpKOjpKKioqKioqKioqKioqKio6SkpKWlpaamp6en - p6Kiq5mZspGRt4yMuIuLu4aGwoSExYSExYODxoWFw46OuJOTsJiYp56eoaKioaKioqKioqKiop+fopeX - qZOTrZGRr4mJuYODwoODxISExYeHwoyMvo2NvpOTuJmZsaGhqaWlpKOjpKOjpKOjpKKioqKioqOjn56e - pJCQtYSExIKCxIODw4ODw4KCxIGBxYKCxYODxoGByIWFw5OTtKCgp6OjpKOjpKOjpKOjpKKipJ+fppmZ - rY6OuouLvYyMvIiIwIKCxoKCxIKCxYmJv5CQt5GRtZaWr6OjoaGhoaGhoaKio6SkpKSkpqCgqpqar46O - voaGxYSExoSExYODxYSExYODx4iIwY+PuZeXsJ6ep6KioqKioqKio6Kio6Kio6Ojo6WlpZ+fqpKSuIiI - woWFxYSExYODxISExISExYSExYODxoeHwZaWsqOjpqWlpaOjpKSko6CgppWVsYeHv4ODxYKCxoGBxYGB - xIKCw4GBw4aGvY2NtI+PsJKSrJubpaGhoqOjpKOjpKOjpKOjpKKipZ2dqpiYroqKvoSExISExIKCxYKC - xIKCxIGBxoSEwIuLtJKSrJCQroODvYGBv4GBv4CAwICAwYGBwYODxIiIwYqKwIqKwIqKwI2NvZWVtKKi - p6amo52drY+PvYSEx4SExoSExoKCxYKCwYSEu4WFtoaGtoiIuI+Ps5KSsJKSs5WVsZycqKKioqOjoZ6e - pJKSsYaGv4CAw4CAwYCAwYCAwYGBxIaGw4yMvYaGxIaGxISEx42NvpycrqampKKipJ2dqZWVro2NtYmJ - uYiIuIaGt4aGt4aGt4aGt4aGuIiIt4yMtY6OtpSUs5SUs5ycrqiopqOjqpeXtomJwoSExoODxoGBxH9/ - wYWFuIGBvoCAwoCAwoKCxIODxYWFxISEx46OvZ+frKeno6KippmZrJmZrJubq5eXro6OtYiIu4aGuIaG - t4iIuIqKuoqKuoqKuoyMu4uLvJaWr5+fpaKio6OjoqGhpJOTspCQs5CQsYyMtYmJuomJuYODv39/wYCA - woKCw4KCxYODxYSExISExY2NvJycq6WloaKippeXsY+PuI6OuI6Ot4+PtY+PsomJuIaGtYODvYKCxIKC - xYODxYODxYWFxIyMvJiYr6GhpaSkpKWlpaamp6amp6amp6ampqSkpaOjpKOjpKWlpaWlpaWlpaWlpaWl - paWlpaWlpaampqamp6amp6amp6amp6amp6SkpaSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKKi - oqKioqSkpKWlpaWlpaWlpSAAoqKio6OkpaWmpqanpqanpqanpqanpqanpqanpKSlo6OkpaWlpaWlpaWl - paWlpaWlo6Olo6OkpaWlpaWlpaWlpKSlo6Oko6Oko6OkpKSkpaWmpqanpqanpqanpqanpaWlpaWlpKSk - o6Oko6Oko6OkoqKioaGhoaGhoaGio6OjpKSkpqamoaGqm5uwlJS2jo65ioq9hYXDhITGhITGhITGg4PG - hITFjIy9lZWunp6joKCfn5+foaGhoqKipKShmpqrlJSukpKujY23goLDgoLEg4PFg4PGh4fCjo66k5O2 - lJS3mJixoqKopqakpKSlo6Oko6Oko6Oko6OioaGjm5upkpKziIi+iYm+hITCgYHEgYHEgYHFgYHFgIDG - hYXEkJC4nJypo6Oio6Oko6Oko6Oko6Oko6Oknp6nlpati4u7ioq6hoa+goLCgIDEgIDEh4e+kJC2kZG1 - k5Ozm5upo6OhoqKioaGhoaGho6OioqKnmZmyjo6+hobGhITIhITGhITFg4PFg4PFgYHHjIy8mJiwnJys - nZ2qoqKioqKioqKioqKjoqKjoqKknZ2qk5O3iYnChYXGhYXGg4PEgoLDg4PEhITEgoLHiIjBlZWznJyr - pKSlpKSlpKSlpKSknJyrjo65iYm/ioq+hobDgoLFgYHEg4PDiIi9jo61kJCylJStmZmknZ2eoKCgoqKi - o6Oko6OkoqKlnp6pl5ewioq/hYXDg4PEg4PFg4PFg4PFg4PGhYXBi4u4kZGvjY2xg4O/gIDDgIDCf3/B - f3/Bf3/BgYHChoa/iYm/iorBiorBjY29lJS2mZmwoaGmpqajnZ2si4u9g4PIg4PGg4PGg4PDh4e9hoa6 - gYG9gYG/g4PAhYXCiIi+jY23k5OymJitn5+mnp6lmpqrkZG0iIi+goLEgYHCgIDBf3/DhITAioq/h4fE - hYXFhITGh4fDjo69mZmypaWlpaWlmJixjo65ioq7iYm6iYm5hoa3hYW2hoa3hoa4h4e3i4u1jY20kJCx - kpKylJSxm5urpaWlpaWolpa2h4fFgoLJgoLHg4PDh4e6gIC+f3/Bf3/BgIDBgYHCgYHDg4PGgoLIi4vA - m5uwpaWlpaWlo6OmoqKjnp6kk5Owioq8ioq7iIi6h4e4h4e4iIi5ioq6ioq6ioq6i4u8k5OynJypoaGk - o6OioaGkmJitl5etmpqokpKvh4e7hITAgYHCgIDBgYHBgYHCgYHDgoLEgoLGhobCkpKzn5+npaWjoqKl - nZ2pnJyqmpqqlZWujo60ioq4iYm4goK+gIDBgYHEg4PFg4PFhITFhITFg4PFjY25nZ2qpaWjpKSkpaWm - pqanpqanpqanpqanpKSlo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqan - pKSlo6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSkoqKioqKjpKSlpaWlpaWlIACioqOjo6Sjo6Sl - paampqempqempqempqelpaWjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWkpKWkpKSlpaWlpaWlpaWkpKWj - o6Sjo6SmpqempqempqempqempqempqempqalpaWkpKWjo6Wjo6Sjo6Sjo6OhoaGhoaGhoaGhoaGioqOj - o6Sfn6iVlbSNjbyMjLyLi76EhMaEhMaEhMaDg8eDg8aJicCTk7OdnaihoaKhoaCgoKCgoKCioqKhoaOZ - mayUlLGNjbeEhMGBgcWBgcOCgsSEhMSEhMSIiMCPj7mXl7KgoKqlpaalpaWlpaWkpKWjo6Sjo6SkpKOh - oaWbm6qTk7KLi7uHh8CDg8SBgcWBgcWBgcSBgcWFhcCLi7uYmK6jo6KioqKioqOjo6Sjo6SioqSgoKea - mq6SkrWLi7mGhr6CgsOBgcaDg8KHh7yKiriNjbeTk7GcnKmhoaOioqKioqKioqKioqGhoaGcnKqQkLqF - hcaEhMeEhMaEhMWEhMWDg8WCgsaHh8GMjLyWlrKenqqgoKejo6OioqKioqKioqKjo6KgoKWVlbKHh8KD - g8eDg8eEhMWEhMSDg8SCgsSCgsaIiL6UlLOdnaqioqSjo6SkpKWlpaShoaiXl7GOjrqNjbyIiMCFhcSD - g8WFhcOKir6MjLuTk7OUlLGYmKqdnaGenpydnZ2goKChoaGkpKKhoaeUlLOKisCEhMaGhsSEhMSDg8WE - hMWDg8aHh8KNjbqUlK+VlauOjrOGhr2IiLmHh7uFhbyDg7uCgruCgryGhruHh72Jib+OjruVlbScnKyh - oaaioqSlpaOfn6uPj7qEhMWGhsOGhsOJib+Jib2Fhb+AgMGAgMKAgMWGhsSOjryTk7aVlbOXl66enqaY - mKyRkbaMjLyHh8CCgsaCgsSAgMODg76Hh7yHh8GFhcWFhcWIiMKOjruQkLmWlrOkpKWlpaWbm6+Tk7aQ - kLaOjraIiLmGhreFhbaFhbeHh7aKireKiriLi7iMjLePj7SZmamgoKOioqSjo6abm7GLi8KHh8WJicGI - iMCEhMCAgMN/f8F/f8GBgcOBgcOBgcOBgcWHh7+MjLyVlbWfn6umpqSmpqWhoaeVlbGLi7qJib2KiruK - irqIiLmHh7mJibmJib2EhMGFhcCGhsGKir6Tk7Oenqajo6GioqOfn6WenqeYmK6NjbiDg8CBgcOBgcOB - gcKAgMGAgMKBgcOCgsOIiL+Kir2Vla+goKSkpKOkpKSioqWfn6iamq2SkrOLi7iIiLmEhL6AgMKAgMKA - gMSCgsWDg8WEhMWEhMWIiL6RkbWdnaqjo6Ojo6SkpKSmpqWmpqempqempqempqakpKSjo6Sjo6Sjo6Sj - o6SkpKSlpaWlpaWlpaWlpaWlpaWmpqampqempqempqempqekpKWjo6SlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWkpKSjo6Sjo6SkpKSlpaUgAKSkpKOjpKOjpKSkpaWlpqWlpqWlpqWlpqSkpaOjpKOjpKOjpKSk - paWlpaWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaWlpaSkpKOjpKWlpqamp6amp6amp6amp6amp6amp6Wl - pqWlpaWlpKSkpKOjpKOjpKOjo6KioqGhoaGhoaKioqKio56eppSUso2Nu4uLv4eHwoSExoSExoODx4SE - xouLvpeXsaCgpqOjoqKioqGhoqGhoaCgoKCgoJqaqJaWr46OuoWFxIGBxoKCxIGBw4KCxIODxYSExIiI - wY6OupubrKSkpaampKWlpaWlpaWlpaSkpKOjpKKipqCgp5ubqpKSs4eHwYODxoKCxoKCxIGBxIGBxIGB - xIeHvZCQs52dpqSkoKKioqKioqOjo6Sko5+fp5iYsJKSt42Nu4iIv4ODxYKCxoODxYSEw4eHvoeHvoWF - wY6OtZ2dpaOjoKKioqKioqKioqOjoaGhoZeXq4uLvYODxoODxYODxYODxYKCxoKCxYaGwYuLvIiIwJCQ - t56eqKSko6OjpKKio6KioqKioqOjoaCgpZGRtYeHwYeHwYaGwoSExISExIODxIKCxYiIvZGRtJiYrZ6e - qKOjo6Kio6OjpKWlpJycrZGRuI6Ou4mJwYWFxYSExoSExoaGxImJwIiIwYqKvo+PuJiYrZ+fo6Cgn56e - np6enqCgn6GhopycqpCQt4eHw4mJwIaGxISExYSExYWFxImJwI6OuZKStpeXrZmZqJSUrY+PsouLtoqK - uIqKuIeHuIWFuYWFuYWFu4iIu42NuJOTtZeXspqarp2dq5+fqaSkpaKip5aWs4qKv4qKv4uLvoqKvoaG - wYKCw4GBwoGBwYaGv4yMvZKSuZOTuZKSuZaWsZycqJiYrJGRto2Nuo2NuYmJvIaGwIWFv4SEu4ODvoOD - xIWFxIWFxY+Pu5OTt5KSt5eXsaKip6WlpaOjp5qar5KSto2NuomJu4iIuIaGuIaGtYmJtYqKuYmJvYuL - vIqKvIyMuZWVrpycpZ+fpKOjo6KiqJmZtI+PvoqKw4aGxIKCxoGBxICAwYGBwYGBw4CAxICAwoaGu42N - tZCQtJSUsp6erKenpKWlpZ6erI6OvYeHwYmJvImJuoqKuYiIuYeHuIaGu4SEwoKCxoKCxYKCxYKCx4yM - u5ubqKOjoKKio6SkoZycqY2Nu4SExoKCxYCAxIGBw4GBwoCAwYCAwoGBw4KCwYeHvoaGwZCQtZ2dp6Ki - o6GhpaOjpJmZr5GRt42NvImJvoWFv4CAw4CAwX9/wYCAw4KCxYODxYWFw4iIv5SUs5ubrJ2dqqCgp6Oj - pKOjpKSkpKWlpaamp6amp6amp6ampqSkpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaSkpKampqam - p6amp6amp6WlpqSkpaSkpKSkpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKOjpKOjpKSkpSAApqampaWk - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlo6Oko6OlpaWl - paWlpaWlpKSko6OkpKSlpqanpqanpqanpqanpqanpqanpaWnpaWmpaWlpKSko6Oko6Oko6OkoqKioaGg - oKCgn5+imZmrlJSzjY26hobCg4PGhITFhITGhYXFiIjCkZG3n5+npKSjoqKjoqKjoqKjoaGioaGgn5+f - lZWsjY26hYXEg4PHhITFg4PEgoLDgoLEhITEiYnAjo67kJC4nZ2qoqKkpKSkpaWlpaWlpaWlpaWlpaWk - oKCnnp6pmZmujY26goLGgoLFgoLFgoLFgoLFgoLEgYHDiIi6lZWpnp6goaGgoqKioqKioqKio6Oinp6p - lJS1jIy+iIjBg4PHg4PGg4PFg4PFg4PEgoLFgoLEhITDjY21m5umo6OgoqKioqKioqKioqKjoaGimpqp - jY25g4PFg4PFgoLFgoLGgoLGhYXCioq8iYm+i4u8lJSyn5+mpKSjo6Oko6OkoqKjoqKioqKhnZ2oj4+3 - jIy8ioq9hobBg4PFgoLFg4PDiIi+kZGykZGxlZWun5+koqKioqKjoqKjoqKjmZmvjo69iYnBhITHhYXF - hYXFhYXFhITGg4PHg4PGgoLHi4u+mJiuoaGioaGhoKCgnZ2dnp6cnJyimJisk5O1jIy9ioq+hYXEhITG - g4PHhobFjo67k5O1k5O0mZmunp6mm5umkpKwiYm6iYm6iYm5iIi6hoa7hoa6hoa4iYm4jo60j4+0kJC4 - kZG5kZG6mpqvoqKmpaWknZ2skJC5jY28jIy+hobCg4PEgoLDgYHCgYHBh4e9iYm+iYnBiorCjo69lJS2 - mZmtnp6lmpqqlJSxk5OzkZG2i4u7iYm7g4O/f3/CgoLDg4PEhYXEkJC7kpK5kZG5lJS1m5utpaWkp6ei - m5uvj4+8i4vAi4u8ioq6iIi3iYm0iIi2iIi6ioq9iYnAiYnAiIjBiYm/kJC2mZmqoaGho6Oho6OmmZm0 - i4vChYXIhYXHg4PFgYHDgIDBgIDCgoLDhYW/jIy2i4u2j4+0l5esn5+mpKSlpaWloaGplpa1kJC6jo64 - ioq4iYm5h4e5hIS5gYG/gIDEgoLEgoLEg4PFg4PFjIy6m5uro6OioqKio6OimZmui4u9hobEh4fChYXC - gYHEgYHDgIDBgIDBgYHCgYHCgYHEg4PEjY25mJitnZ2onZ2oo6OkmZmvkJC4jY28iIjCgYHHgoLEgYHC - f3/BgIDCgYHEg4PEhYXDiYm/k5O0mJiwmJiwm5uspKSjo6Oko6Oko6OkpaWlpqampqanpqanpqampaWl - o6Oko6OkpKSko6OkpaWlpKSlpKSlpKSlo6OkpKSkpqampqanpqanpqanpqanpKSlo6Oko6Oko6OlpKSl - paWlpaWlpaWlpaWlpaWlpaWlpKSko6OkIACmpqelpaakpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWjo6SkpKSlpaWlpaWlpaWjo6Sjo6Slpaampqempqempqem - pqempqempqempqalpaWlpaWjo6Sjo6Sjo6Sjo6OhoaGenqCbm6aTk7GMjLuFhcODg8eFhcaFhcaFhcaL - i7+MjLyRkbednaqjo6Sjo6SioqOioqOioqKhoaGenqKRkbCFhcGBgceDg8WDg8WEhMWDg8OCgsOHh72L - i7uMjL2SkrWenqijo6Sjo6SkpKSlpaWlpaWlpaWmpqWhoaiZma6Pj7mGhsODg8SDg8aDg8aDg8aDg8aD - g8WFhcKPj7GcnKGgoJ2goKChoaGioqKioqKhoaOdnamVlbOKisCDg8eEhMaEhMaDg8WCgsWCgsWDg8SF - hcGMjLqXl6ufn6ChoaChoaGioqKioqKhoaOhoaObm6iOjraDg8WEhMaEhMaEhMaHh8KLi7uJibyKiryW - lq+fn6aioqOioqOjo6Sjo6Sjo6Sjo6OenqWVlbCKir6Kir6Dg8SBgcaDg8WEhMSHh8KSkrKTk7GQkLOY - mKmjo56hoaGioqOioqOhoaOYmK6Li7+EhMeGhsWFhcaFhcaFhcaFhcaEhMaFhcSGhsKSkrSfn6ejo6Gh - oaGhoaGgoKCenp6bm6GWlqqQkLSKir2EhMWDg8aEhMaEhMaGhsONjbyTk7aYmK+dnaijo6OgoKWSkrCN - jbaKiriKireKiriKiriKiraHh7WIiLiHh7qHh7yJib2Kir2Njbyamq+jo6ampqOgoKmSkreMjL6GhsSF - hcaEhMWCgsOBgcKAgMKAgMWAgMaCgsaIiMKQkLqWlrOcnK6ioqSenqWWlq6Pj7eLi72Li72FhcOBgcOB - gcGBgcGCgsGFhcGKir+Li7+Li7+OjryXl7KioqWmpqObm6+QkLuMjL6MjLyMjLyLi7aIiLmGhrmHh7mH - h76CgsaDg8aDg8aCgseHh8KTk7OenqOioqKjo6OioqeZmbOLi8GEhMiEhMWCgsOBgcKBgcOGhsCLi7uK - ir2Jib6OjraYmKmenqOenqalpaWnp6Ohoamdna6YmLGPj7eJibuIiLyCgsCAgMKBgcKBgcOCgsSDg8KJ - ibuSkrKamqqfn6WioqKjo6GamquTk7SRkbaQkLeLi72Dg8OCgsGBgcCAgMGBgcGBgcKDg8KHh7uOjraU - lLKVlbCZma2ioqOenqiZma6Tk7WKir+EhMaDg8aBgcOAgMGAgMGBgcKBgcOCgsWDg8aHh8KJicCNjbuY - mK6kpKOjo6Sjo6Sjo6SkpKSlpaampqempqempqempqakpKSjo6SlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sj - o6SlpaWmpqampqempqempqempqekpKWjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6QgAKWl - paOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWl - paampqamp6amp6amp6WlpaSkpKOjpKSkpaamp6amp6amp6amp6amp6amp6amp6WlpaWlpaOjpKOjpKOj - pKKipZycqZmZpZWVrYiIv4GBx4ODxYSExYWFxoyMvo2NvpCQuZiYsJ6eqKOjpKOjpKOjpKOjpKKio6Gh - pJmZqo2NuISEwYGBxIGBw4GBw4KCwoKCwoaGvoeHvIaGv4uLu5qaq6KipaOjpKOjpKOjpKSkpKWlpaWl - paKiqJycr5CQuoaGw4eHwoWFwIKCw4KCxYODxYODxYWFxIyMvZeXrZycn56enZ+fn5+fn6GhoaKioqKi - o5ycqZaWsJCQuYSExoSExoSExoKCxYGBxIODxIaGwIyMupaWrJ6eoqGhn6CgoKCgoKGhoaKioqKiop6e - p5WVsomJv4ODxYSExoODx4iIwoyMvYuLvoqKvZaWrp2dpKGhoqKio6Kio6Kio6OjpKSko6Cgp5mZrpKS - tYqKvoSExIKCxYGBxoaGwoyMvIyMvJKStZKSs5aWrZycpKCgnqGhoaGhoaKiop6ep5KStYqKv4yMvoyM - voaGxYWFxoWFxoWFxoWFxYiIwY2Nu5mZraGhpKOjo6Kio6GhoaGhoZ6eopaWp4+Pr4uLtomJuoODxISE - xoSEx4iIw4yMvY2NvJOTtp6eqqCgpqGhpKGhpZqaqpmZp5OTr4+PsY+PsJCQsY6OsoWFt4eHuoiIuoiI - u4mJvIuLupKStJqarqKip6amo6CgqZKSt4eHxIWFxoWFxYWFxYODxYCAw39/wYCAwoGBxYaGwI6OuJaW - s52drZ2drZ6erJmZr4+PtoqKu4mJu4mJu4SEwYGBwoGBwYKCv4SEv4KCxISExYSEx4iIw5CQupmZsJ+f - qaSko5ubrJGRto6Ouo2NuI2NuImJu4iIuoeHt4SEu4GBxIKCxIODxYODxoiIwY2Nu5SUsqCgpKGhoZ6e - pp6eqJqarY+PuoSExoODxIGBwn9/woSEvYmJuomJvIqKvYmJvpSUsJycpp2dpZ6epaKio6SkpZ6erJeX - tJCQu4uLv4uLvYODwoGBw4CAwYCAwYGBwoKCwomJu46OtJiYqp6epZ6epaKioqKiop+fppmZrpWVspGR - t4qKvYmJvIiIuYKCvoCAwoGBwoODwYmJu4mJu4mJuoqKu46OuJaWrqKio6GhpaKipKCgp5aWs4iIwYSE - xoODxYKCw4GBwoGBwoGBw4GBxIKCxYODxYKCx4mJwJiYr6Sko6OjpKWlpaWlpaWlpaWlpaWlpaamp6am - p6amp6ampqSkpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSkpKampqamp6amp6amp6amp6SkpaOj - pKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpSAApaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - o6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqampKSko6OkpKSl - pqanpqanpqanpqanpqanpqanpqanpaWlpaWlpKSko6OjoqKlnZ2ql5euj4+1iYm6iIi8iYm+ioq+i4u+ - jIy+kpK4lJS1l5exnp6oo6Oko6Oko6Oko6Oko6OjoaGknJyqj4+4hYXBgYHEgYHEgYHEgoLDhoa9hoa9 - hYW/ioq5lparnZ2koqKio6Ojo6Oko6Oko6Oko6Okpqaknp6skJC7iIjDiIjDhobCgoLDgoLEg4PFgoLG - hYXEi4u9kZG2np6noaGgnp6dnZ2dn5+fn5+foqKgn5+lmZmsjo65hITFhITGhITGhITGg4PFg4PEhYXB - jY25l5etn5+koaGhoaGgoKCgoKCgoKCgoqKgn5+ll5evkpK1kJC2ioq+i4u9i4u+jIy+i4u+jIy8l5ew - np6nn5+ioKCgoqKioqKjoqKjoqKjpaWhnZ2qkZG3ioq/hITEgoLEgIDGhYW/iYm7jIy7kpK2k5O1l5ev - np6loaGhoaGgn5+foaGho6Ogn5+mk5O1ioq+i4u9hYXEhITGhITGhITGhYXFiIjCjY28l5exoKCmo6Oj - oqKjoqKjoqKjoqKgmpqokZGxjIy2iIi6goLCgYHDgYHFiIjBjY29j4+8lZW1l5exnp6po6Olo6OjoqKj - oKClm5uqk5OwkZGykZGwjY2yh4e5hYW4h4e5iIi6iYm7ioq7ioq7jY27kpK1oKCop6eioqKnmpquk5O2 - kpK3lZW0i4u+gIDGgYHCgIDBf3/ChYW9jo62k5OxlJSxlZWzlpa0m5uvm5uvlJS0jY24iYm7hITBg4PC - goLCgYG/gYG+gYHDgoLEg4PFg4PGiYnBkJC7k5O3mJixo6OmoKCnmJivk5O0kJC1ioq7ioq7ioq5hYW9 - gYHCgYHCgYHDgYHFh4fAjIy7k5OznJyoo6OhoqKinZ2lmZmrkZG0ioq7ioq8iIi6hoa5hIS5hoa6ioq8 - i4u9jIy9kJC4mZmvm5uqmZmpmpqooaGhoqKjmZmxj4+9jIzAi4vAhobFg4PFgoLDf3/Bf3/BhITAioq7 - jY29jIy9kpK4mZmvnZ2noaGhoqKio6Ohm5urkJC3ioq7iYm8ioq7hYXAgYHBgIDCgoLAiYm7ioq8i4u9 - i4u9ioq+jIy7k5OxoKCjo6OinZ2pnJyrmpqvkZG3jIy9hITEgYHDgIDBf3/BgIDCgYHDgYHEgYHGhobD - jY26l5evpKSjo6Oko6OkpKSlpaWlpaWlpaWlpaWlpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWlpKSl - o6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6OkpaWlpqanpqanpqanpqanpaWl - IACjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaWl - paWlpaWlpaWlpaWlpaampqempqempqelpaajo6Sjo6SkpKWmpqempqempqempqempqempqempqelpaWm - pqWjo6WdnamXl6+RkbiMjLaKiriKiruLi7yMjLuNjbuSkraUlLWXl7Kdnayjo6Wjo6Sjo6Sjo6Sjo6Si - oqWenqiXl66OjrmKir2Jib2JibyIiLyHh76IiL2Ghr6MjLWWlqmdnaKfn6ChoaGioqKjo6Sjo6Sjo6Sj - o6SgoKaXl7OMjMCHh8SHh8SEhMWCgsWCgsWBgcaFhcKKir2NjbuTk7Sfn6Wjo6KhoaGenp6dnZ2fn5+c - nKSZmamOjriEhMWDg8aDg8WDg8WEhMWEhMSGhsGMjLqTk62bm6agoKKhoaGhoaGhoaGgoKCgoKCdnaOY - mKyTk7OSkrOSkrOLi7qGhsGFhcOGhsSHh8OOjruamq6goKahoaKhoaGhoaGhoaGioqOioqOgoKWVlbKJ - icGEhMaDg8aCgseGhsCHh7uKirePj7KSkrOVlbGVlbKdnaijo6ChoaGgoKCfn5+dnaSYmKyQkLeJicCF - hcSEhMWDg8WEhMaGhsWIiMKOjruZmbChoaejo6Sjo6Sjo6SioqOioqOkpKGZmayOjraHh72CgsOBgcOB - gcOBgcSEhMOFhcSKisGYmLKenqqgoKeioqWjo6Sjo6OhoaSamqyTk7OSkrKPj7SIiLqHh7mFhbiFhbiI - iLiKirqLi7yMjL2Njb6Tk7ecnK2jo6akpKShoaecnK2YmLGMjL2FhcaDg8aBgcSAgMOFhbuJibmNjbmO - jrqNjbuNjbyRkbegoKqjo6eZmbGMjL2FhcODg8ODg8OEhMCCgr+AgMGBgcKCgsSDg8WEhMWEhMWHh8KQ - kLmcnK2jo6akpKWjo6Wfn6eXl7CKiryKirqFhb+BgcKAgMKAgMKAgMSHh7+OjrmTk7WVlbOYmK+dnamh - oaWhoaKcnKaQkLKHh7uJibmIiLmGhrmFhbiGhrmIiLuKiruPj7mSkraVlbOUlLSUlLKamqihoaChoZ+X - l66NjbuKir+Hh8GDg8aBgcWAgMOAgMGBgb+EhL+GhsCLi72Njb2Njb2OjryUlLSgoKWioqOioqCcnKeY - mK2Wlq6OjrWDg8CAgMN/f8OBgb6GhriJibmKiruLi7yMjL2Li72Li72Pj7mbm6mhoaGcnKmWlrCSkrWM - jLyGhsODg8WCgsSAgMJ/f8F/f8GBgcOAgMSEhMCMjLeRkbSWlrCjo6Gjo6Sjo6Sjo6SkpKSlpaWlpaWl - paWlpaWmpqampqempqempqelpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKWmpqempqempqempqcgAKSkpaOjpKOjpKOjpKOjpKOjpKSkpaSkpaSk - paSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaSkpaSkpKSkpKSkpKSkpKampqamp6amp6amp6Wl - paSkpKOjpKSkpaamp6amp6amp6amp6amp6amp6ampqenpKGhqZWVs4+PuIyMuoyMuIuLu4yMvYuLvYeH - wYiIwYmJv4+Pupqar6SkpqWlpaSkpaOjpKOjpKSko6Cgp5aWsZCQt4yMuoqKvYmJvomJvYqKv4eHwoaG - woODw4uLuJiYpp+fnZ+fn6CgoKGhoaOjoqOjpKOjpKKipZmZro2NvYiIwoeHw4WFxYODxoODxYODxoaG - woqKvo6OupKStZiYrqGhpKOjo6Kio6CgoZ6enZ6enZaWqouLuIODxIGBx4KCxYODxYODxYODxoeHwo+P - uJSUsJWVrZmZpaCgoaKioaGhoaGhoaGhoaKin5eXqpKSsJKSsZGRso2NuIaGwIODxIODxYODxoaGxI2N - vJiYsKCgp6OjpKKioqGhoaGhoaGhoqOjopqarIuLvYODx4ODyIODx4mJwYmJvYuLuZCQtJOTsJOTr5WV - r5iYrZ+fpqOjoqKioqGhoaGhn5aWqo+PtYyMuYiIv4ODx4SExYODxoSExYiIwZCQuZiYsJycraSkpaWl - pKOjpaOjpKOjpKKio6CgpZOTs4iIvoODw4KCxYGBw4GBw4GBw4GBxIGBx4aGxJWVtqGhqKKipaOjpKOj - pKOjpKOjpKCgpZWVsY6OuIqKu4eHvIeHuoWFuYWFt4eHuImJuYuLuYyMu42NvY+PvJGRuZubrqWlpKKi - p5aWs4uLv4KCyIGByYODyIODxIaGvYaGu4eHvIeHwImJwY2NvZCQuZaWsqGhpqeno56erI6OvISEx4WF - woSEwYSEwoKCwoGBwoGBwYKCxISExYODxoSEw4iIv4+Pu56erKSkpaampKOjpZ6eqZaWs4uLvYWFwYGB - xICAxX9/w4CAwYWFvIyMto6OuI6Ouo2Nu42NvJCQuZubrqKipKOjoZeXq4qKuImJuYiIuYaGuIWFuIaG - uYiIuYyMt5KStpOTtZKStpSUtJmZrpycqJ6epaKin5mZqYuLuISEwIWFwISEwYaGvIODvoCAv4GBvoSE - v4iIv4yMvY2Nvo6Ovo2NvZCQuZqaraGhpaKioqCgop6epZmZqpKSs4eHvYWFvYODvISEuIaGtoeHuIqK - uoqKuomJvoiIwYeHwoqKv5aWr6CgoqGhoZiYrIyMu4WFxISExoODxYKCxYGBwoGBwYCAw4KCxIeHv46O - t5KSspSUsZqaq6OjoKOjoqOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpqWlp6amp6amp6amp6WlpaWlpaWl - paWlpaWlpaSkpaSkpaSkpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpqWlpqWlpqWlpaWlpaWlp6am - p6ampyAApKSlo6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlpKSko6Oko6OkpKSlpKSkpKSko6OkoqKj - oqKjoqKjo6Oko6Oko6Oko6OkpKSlpqampqanpqanpqanpqampKSko6OkpKSlpqanpqanpqanpqanpqan - pqanpqamn5+slJS2j4+3j4+1kJC1kpK1jo67h4fEhITGhITHhITGj4+4n5+opqajpKSlpKSlo6Oko6Ok - paWinp6pkZG4jY29i4u/h4fChYXDhYXDhobEhITGhITGhITFjY24mZmmn5+cnp6en5+foKCgoaGho6Oj - pKSjo6OkmpqujIy9hobDhITFgoLGgoLGgoLFhobCioq+jo66k5O0mJisnp6loqKjoqKjoqKjoqKjoKCh - m5ugjo6zhoa/g4PDg4PEgoLEg4PFg4PFg4PGiYnAkpK1l5evmZmsnZ2koKCgoaGgoaGhoaGhoaGhnp6j - k5OvkZGxkJCxi4u3hITAgoLEgoLEgYHFhITCiYm9kZG3nZ2roaGmo6Oko6OkoqKioaGhoaGgoqKimpqs - i4u8hITFh4fDh4fDjIy9jY24kZGzk5Oxk5OwlZWrlpapnp6koqKjoqKjoqKjoaGio6OflJSui4u5iIi9 - hobAhITFhITFhobDiIi+jIy5lJSynZ2qn5+po6OmpKSlpKSlo6Oko6OkoqKkl5evi4u9g4PGgoLHg4PF - goLEgoLEgoLEgoLFgYHGhYXDkpK2oKCopKSlpKSko6Oko6Oko6Oko6OjlZWxjIy9iYnAiYm9iYm6iIi5 - hYW2hoa2hoa6hYW+hoa/iIjBiorAj4+7mZmxo6Omo6OnlJS1iYnCiYnDi4vAiorAh4fAiIi8g4O9g4O/ - hoa/iYm/jo67mZmwn5+oo6OjpaWioaGolpa0jY2/iYnAhobCg4PFgYHEgIDCf3/BgoLDg4PFhYXDioq+ - jIy7jo66mZmuoKCopKSkoqKnl5exjY28i4u+hobDhobChYXAg4O/hIS7ioq0jIy1i4u7iIjAhobDhYXE - hobElJS0oaGnpaWgnp6mkZGziIi8iIi7hoa5hYW5hoa3iYm0jo6yk5O0k5O1lZWzmpqtnp6pnZ2pm5uq - oaGinp6kkJCyh4e8iYm5h4e6h4e7hIS9goK+g4O9hoa8i4u7jIy9jY2+jo6+jY29jo68l5ezo6Olo6Ok - o6OhnZ2mk5Oyjo64i4u7ioq6iIi4hoa3hYW3hYW2iIi4iIi9hITChITEhITFh4fDlJSzn5+jpKSdnJyo - i4u8goLIhITFg4PFgoLFgYHEgIDCgIDCg4PEh4fAioq+jo64l5etn5+koaGjoaGjo6Ojo6Oko6Oko6Ok - pKSlpaWlpaWlpaWlpKSlpKSmpaWmpaWmpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6Ok - o6Oko6Oko6OkpaWlpqampqanpqanpaWmpaWlpaWlpqampqanIACjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sk - pKWlpaWlpaWlpaWkpKSjo6SlpaWlpaWlpaWkpKSjo6OioqKioqKjo6Ojo6Ojo6Ojo6OioqOlpaWmpqam - pqempqempqempqakpKSjo6SkpKWmpqempqempqempqenp6agoKqZmbCWlrOUlLKSkq+Tk6+SkrOKir+D - g8eFhcWHh8OPj7uZmaygoKOjo6OkpKWkpKWkpKWkpKSkpKOenqmSkraLi76IiMKEhMWDg8aDg8aDg8WE - hMWFhcWNjb2YmK2goKKgoJ+enp6fn5+fn5+fn5+hoaGioqOgoKebm62QkLmIiMKFhcOGhsKFhcKFhcKK - iryNjbmRkbaWlrGcnKmioqGioqOioqOioqOjo6OgoKSWlqyKiriIiLuGhr6Dg8OCgsWEhMaEhMaEhMeG - hsSNjbyXl7Cfn6ajo6KhoaCgoKCgoKChoaGgoKKamqiTk6+RkbKLi7eDg8CBgcSCgsOCgsODg8KHh72M - jLeWlrCioqSjo6Sjo6Sjo6Sjo6SioqOhoaKdnaWYmKuRkbaMjLuOjrmOjrmLi7yNjbiOjreNjbmPj7eV - la6cnKOgoKCioqKioqOioqOioqOhoaKTk7GJibuEhMGCgsODg8GHh8CNjbqPj7aRkbKWlq6cnKukpKOk - pKWkpKWkpKWkpKSioqWenqqRkbeHh8KFhcSFhcSEhMWEhMWEhMaEhMaDg8aDg8WJib+VlbGgoKekpKWk - pKWkpKWjo6Sjo6SioqWWlrKOjrqNjbuMjLmKirqJibmIiLeFhbiCgr+AgMSAgMOBgcWLi7yYmLGgoKmk - pKWkpKacnKyYmLCXl7CUlLSOjrqIiL6Fhb+Dg72EhL2Hh7qKirqRkbadnaqioqWhoaaioqSioqSfn6qc - nK+RkbqGhsSDg8aCgsSAgMJ/f8GAgMKEhMGKiryNjbqMjL2NjbuSkrSYmK+ioqekpKWZma+Pj7qRkbiP - j7qOjrqNjbiLi7aKirWMjLSJibqIiL6GhsOEhMaEhMWHh8KQkLegoKelpaKhoaWXl6+Jib2JibuJibuI - iLiJibKMjK6Nja6QkLKSkrSYmLGcnKudnamdnamfn6eioqOioqGXl6uNjbWMjLaIiLqEhMCDg8CDg76E - hLqIiLiKirqLi72MjL6MjL+Njb6QkLuXl7OioqekpKSkpKKdnaiQkLWLi7uKiryLi7uKirqIiLiGhraF - hbaFhbqDg8CDg8SDg8WCgsWFhcSRkbaenqejo6Cbm6iMjLqCgseCgsaCgsaDg8eEhMODg8CAgMGCgsOC - gsaFhcWOjruZma6fn6ecnKicnKmhoaSjo6Kjo6Sjo6Sjo6SkpKWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sk - pKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKSmpqampqempqelpael - paWlpaWmpqYgAKWlpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWl - paWlpaKioqKioqKioqKioqKioqKioqKioqWlpaWlpaampqamp6amp6amp6WlpaOjpKOjpKSkpaamp6am - p6amp6ioppycrZWVspeXsJaWsJOTrZKSsIiIv4ODxoWFxIeHw4+Pu5qarqOjpqSko6KioqOjpKSkpaSk - paWlpKGhp5qarZKStoeHwoSExYODxYODxYODxYODxYaGxI2NvJiYrqGhpKOjoaCgoJ+fn56enp+fn5+f - n6Ghn5+fo5iYrJKSto2NvI2NvYyMu4qKuoqKuouLu4yMupCQs5OTspaWsZ2dqKKio6KioqKio6Kio6Ki - op+fp5KStouLuoSEv4GBwoGBxIKCxYSExoSExoWFxoODx4uLv5ubrqSkoqKioqKioqCgoKCgn6GhoZ2d - o5mZqZOTsYuLuIWFwYKCxoODxIODxIODw4iIvIqKuYyMt5WVraKioaOjo6OjpKOjpKOjpKKipJ6ep5aW - rpCQtY+PtZCQtJCQtJGRs4qKvISEw4ODxoKCxoaGwpOTsp+fpaCgn6CgoKKioqKio6CgpZmZroyMuoWF - w4ODxIKCwoODwImJupGRtJKSs5eXrpqaqJubp6OjpKOjpKSkpaSkpaWlpKKip5eXspCQuYyMvIuLvYiI - wYSEx4WFxoWFxoWFxoWFxIeHwI6OuJycqaGhoqSkpKSkpaSkpaSkpaOjpKGhpp2dq5aWsZOTso6OtIiI - uoiIuYeHuYCAwH5+woGBwYGBwoGBw42NtZqaqqKipqWlpaSkpaOjpqOjpJ2dp5CQtYWFwISEv4WFvoOD - vIeHuoiIuYyMtpOTsJiYrZiYsJeXsZ2dqaOjo6Wlo6WlpZiYs4iIxISEx4ODxICAwn9/wYGBv4iIuYmJ - uomJvYqKvouLvouLvpGRt6Cgqaeno6Ojp5ycrZubrZSUtJGRuJCQt46OtYyMtYiIuoeHvoWFxIWFxYWF - xIeHwY2NuZCQt5ycqqSko6KippeXsYyMvIyMuouLuoyMto2NsI2NrY2Nro+PsJCQspCQt5WVtJubrZ6e - qKOjpKOjpaSkoJubqI6OtoaGvYSEwYSEwISEwIaGvIeHuIeHuImJuYuLvIuLvYuLvpCQupaWtZiYsp6e - q6OjpqWlo5+fp5aWsJCQtYyMuouLu4uLu4mJuYeHuYSEuoGBv4GBwoKCxYODxYODxYWFw42NuJubq6Oj - o56ep5CQtoWFwoWFw4WFwoSExIeHvYeHu4CAwoKCw4SExZGRupWVtpWVtpeXs5WVsZWVsJ+fpaOjoaKi - o6OjpKOjpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paOjpKOjpKOjpKOjpKOjpKOjpKWlpaamp6amp6amp6ampqWlpaWlpSAApaWlpKSkoqKjoqKioqKjo6Ok - o6Oko6Oko6OkpKSkpaWlpaWlpaWlo6Oko6OkpKSlpaWlpaWlpaWloqKioqKioqKioqKioqKio6OkpaWl - paWlpaWlpaWmpqanpqanpqanpaWmpKSko6Oko6Oko6Oko6OkpKSjnp6pmpqum5utmJivk5O0hobAg4PD - hYXEhobDjo67mZmuoqKmo6OlpKSlo6OkoqKio6OkpKSloaGnnJyskZG4hobDhITDgoLFgYHDgYHEgoLG - hITEjIy8mJiuoaGlo6OioqKjoqKjoaGhn5+fnp6en5+foKCenp6hmJirjIy8i4u+jIy9jIy9i4u8iYm6 - ioq6kZGzkpKylZWvnJyno6OioqKjoqKjoqKioqKioaGkmpqsjIy7h4fCg4PEgoLEgoLEg4PFhYXHhYXH - hYXGiIjClJS2oKCoo6OjoqKjoqKioqKioaGgnZ2hmJiqk5OxjIy5hYXBg4PFhITFhITFhYXEioq9ioq7 - jIy2k5Oum5unoKCgoqKho6Oko6OkpKSjoqKlmZmukpK1j4+2j4+0jY23ioq7ioq7hITDhITEhITEhYXE - i4u8mJiroKCioqKhoKCgoKCfoKCjmpqsjY28hobDhITDg4PCgYHDgYHDgYHDiIi8j4+2lpavnJymoqKg - oaGho6Oko6OkpKSkpKSkn5+pkZG4jIy9i4u+h4fCg4PGhITFhYXGhYXGhITGiIjCjY28lZWxoKCkoqKi - o6OjpKSlpKSlpKSlpKSlo6OkpKSjoKCnkpK0iIi8iYm6iIi5gYHAf3/BgIDBgoLDgoLEgoLEh4e8jo60 - lZWwnJyto6OnpaWlnp6rkZG5iIjBhobAhYW+hIS9hoa4hYW5jIyyjo6ziYm8iYm8ioq+ioq/kJC4mpqt - oaGmoqKllZWziIjChITGg4PEgIDCgIC/hYW2iIi3hYXBg4PHhITGhITGhITGkJC5n5+opqaioqKnmpqv - lJS1kJC3kJC3j4+2i4u2iIi6hYW7hITChYXEhITFh4fBjY26kZG0kpK0mZmuoqKloKColZW0kJC5kJC3 - jo63j4+zj4+wjIyujIytjY2tiYm3iYm7ioq+kJC5nZ2rnp6pnp6po6Oknp6ojo63hITDhYXBhITBiIi8 - iIi5hoa3hoa3hoa4iYm6ioq9jo66kZG4kZG5kpK4mJiyo6OnpqakoaGmnp6onJyok5OxjIy6i4u7i4u7 - h4e9gYG+gIDBgYHDg4PFg4PGhobCj4+3lZWxnJypoaGjoaGlmpqsk5OykpKzkpKxjY22hYW/gIDCgYHB - gYHCiYm7jY29jY2+jY2+jY2+jY28k5O0n5+lo6OhoqKioqKjo6Oko6Oko6OkpKSlpaWlpaWlpaWlpaWl - o6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6OkpaWlpqan - pqanpqanpqanpaWlIAClpaWlpaWkpKWioqOioqKjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSj - o6SkpKSlpaWlpaWlpaWjo6OioqKioqKioqKioqOjo6SkpKWlpaWlpaWlpaWmpqempqempqempqakpKSj - o6Sjo6Sjo6ShoaWdnaqbm66Zma+Tk7WHh8KEhMOEhMWIiMCMjLyNjbuTk7SgoKakpKSkpKWkpKWkpKWi - oqKlpaOenquSkriIiMOEhMaDg8WCgsWCgsSBgcWEhMKKiryLi72Skraenqijo6KioqOioqOioqOhoaGg - oJ+enp6enp2cnJ6VlaiLi7qKiryKiruKiruKiruJibqJibqJibuTk7GdnaWhoaGhoaGioqOioqOioqOj - o6Gfn6WTk7SHh8KDg8WDg8WDg8WDg8WDg8WEhMaFhcaKisGOjryYmLCjo6SkpKWjo6SioqOioqKjo6Gg - oKKYmKeSkq6Li7aEhL+CgsODg8OGhsOKir2Kir2OjriUlLCamqafn5+goKCgoKChoaGjo6OkpKSioqWb - m62UlLSTk7SOjriKiruJib2EhMOEhMOEhMSFhcOJib6SkrOdnaahoaGhoaGioqGfn6GXl6mNjbmFhcSF - hcSEhMWDg8WDg8WDg8WDg8WHh7yJibqNjbiYmKyioqChoaGhoaGioqOkpKSioqaZmbCMjL6Li7+MjL2G - hsGBgcaDg8aDg8aEhMiIiMONjb2Tk7ebm66jo6KioqKioqKioqOkpKWkpKWkpKWkpKWioqWdnaqRkbaI - iL2IiLuCgsKBgcJ/f8GAgMKCgsSDg8WEhMWDg8WJicCRkbSamqmioqalpaWbm66Njb+Hh8SHh8GGhsCI - iLqFhbmLi6+NjbGHh72Dg8SEhMSEhMSEhMWHh8OQkLmcnKuenqiQkLSKiruIiLuHh7mFhbmFhbiFhbaC - gsCCgsWEhMWEhMWEhMaEhMaQkLifn6empqGgoKeWlrGQkLiQkLeRkbeNjbmJibuGhryBgb+CgsKDg8SH - h8CMjLuOjrmOjrmOjrqTk7Ofn6eioqWZma6UlLSVlbOSkrOQkLKOjrCNja2Li62GhrWGhreIiLiJibuM - jLqTk7eSkreXl7GhoaahoaWYmK6RkbSQkLSQkLKLi7eIiLmHh7eFhbiBgcCCgsGAgMOHh7+NjbyMjL6O - jryamrCjo6empqSlpaWioqabm62NjbuLi7yLi7qJib2EhMGBgcKAgMGBgcKCgsaGhsSNjbqWlq+dnaih - oaSioqOjo6OgoKaYmK6Tk7KNjbiGhr+BgcKAgMKCgsCIiLmFhcOGhsaFhciIiMSNjb2MjL6Skrqdnami - oqGioqKioqKioqKjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqcgAKOjpKSkpKOjpKOjpKOj - o6KioqOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKWlpaWlpaWlpaOjo6KioqKioqKi - oqKio6OjpKWlpaWlpaWlpaWlpaamp6amp6amp6ampqWlpaOjpKCgpaGho52dqZiYsZOTtY2NvIWFxoSE - xYSExIWFxIaGxIeHwpKStaCgpaOjo6SkpaSkpaSkpaSkpKCgpJeXsYuLwISEx4SExoODxYKCxYGBxoaG - w4qKvouLvJCQt5CQt52dqaOjoqKio6Kio6Kio6Kio6GhoZ+fn5+fnZycnpSUpomJuIiIu4qKvIuLvIuL - vIuLvIiIu4yMtpWVrZ6epKKioKGhoaGhoaKio6Kio6GhpJmZrIyMu4ODxYODxYODxYODxoWFxoWFxoSE - xouLwJCQupWVtJ6erKSkpaSkpaSkpaOjpKOjo6CgpZycp5qap5OTrY2NtISEv4CAw4GBw4ODxIuLvYuL - vo6OuZqaq6KioKCgn5+fn6CgoKCgoKGhoaGhpZ6eqJ2dqZeXsY+Pt4uLu4mJv4WFxISExYSExYSEw4mJ - vpCQtpeXrKGhoaGhoaGhoaKioJ+fo5iYqo+PspCQs4WFwYKCxoODxYODxYSExYODxoiIv4uLt5GRsJqa - qKKioKGhoaGhoaGhoaOjoqOjpZmZr4yMvoyMvYeHwYKCxYGBxYKCxoKCx4eHwYuLv42NvJaWs6GhqKSk - pKKio6KioqKioqKio6OjpKSkpaSkpaKip6KipZubrY2Nu4SExIGBxIGBwoCAwYCAwYGBw4GBxIODxYOD - x4iIwpSUs56epKKioaSkpaGhqZOTuYuLwYqKwIqKv4mJu46Os4qKsoWFu4KCw4GBxYODxoODxYODxYKC - xouLvpqarZ6eqJGRt42NuI2Nt4uLuImJt4eHuIGBv4GBwoKCxIODxYODxYSExYSExouLvpqaraOjpKKi - pJycqZWVr5GRtJCQsoyMtYWFvYCAwoCAwYGBwoaGvoyMuo2NuoyMu4yMvIuLvY+PuJycqKOjoZ6eqZeX - sJOTtZOTtZGRs5CQsI2NsIeHtYKCvoKCvYKCvoWFwIaGwIaGwoeHw5OTtqCgp6SkoqCgp5mZrpGRsoyM - uIiIuomJuIaGuoCAwIGBwoCAxIWFvomJuomJvIuLvZOTtaKipqamo6ampaampKKiqJaWs42NvI6Ouo6O - uYiIv4GBxYGBw4CAwX9/xIWFv4mJvY6OupWVsZaWsJeXr5ycqaGho6CgpZaWsIyMvoWFw4KCxoGBxYOD - voeHuoODwIODxYKCx4eHxIyMwI2NvZGRuZOTuJqar6CgpaOjoaKioqKioqKioqSkpKWlpaWlpaWlpaWl - paWlpaWlpaWlpaSkpaOjpKOjpKOjpKWlpaWlpaWlpaSkpaOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpqamp6ampyAApKSlo6Oko6Oko6Oko6Oko6OjoqKjo6OkpKSkpaWkpaWlpaWlpaWlpaWl - paWlpaWlpKSlo6OkpKSkpaWlpaWlpaWlo6OjoqKioqKioqKioqKio6OkpaWlpaWlpaWlpaWmpaWmpaWm - paWmpaWlo6OkoKCmnJyomJitkpK0jIy8hobEhITFhITFhITFg4PGg4PGiIjClJSyoKClo6Oio6OkpKSl - pKSlpKSloKCmk5OziIjBg4PHhITGhITGgoLGh4fBi4u9jY26kJC3kpK1lJSzn5+no6OioqKjoqKjoqKj - oqKjoqKjoqKgn5+fl5emjIyyiIi5iIi7ioq8i4u8i4u9i4u8j4+2lZWsmJionZ2koqKgoaGhoaGhoaGi - oqKioaGkmJiti4u9goLGgoLGgoLGg4PHhITHhYXFiYnBjIy+j4+5mZmvoqKnpaWlpaWlpKSlpKSlpKSj - oKClmpqql5eukZGzh4e9goLDgYHFgoLEh4e+ioq8ioq+jo65m5uqpKSfoaGhn5+fn5+foKCgoaGfoKCj - nZ2qmZmtkJC3ioq7iIi/hobEhYXGhobFh4fFioq/j4+2lZWtnJymoaGhoaGhoaGhoqKgn5+jmZmqkpKw - iYm6g4PDgoLGhITFhITGg4PGiIjBjY26k5OxmJinnZ2goqKhoaGhoaGhoaGhoaGinZ2nlpaxjo67h4fB - hITFgoLGgIDGgYHFiIjAi4u7jo67kZG5m5uvpaWkpKSlo6OkoqKioqKioqKio6OkpKSlo6Oko6OkoaGm - mJiwi4u/g4PHg4PFgoLDgYHCgIDBgIDBgYHCgoLEiIjBi4u+jo67lZWwn5+koqKhpKSlm5uuk5O4kZG6 - kpK4kJC3jo61hYW7gIDBgIDCgIDCgoLEgoLFg4PEgoLGiIjAl5ewoKCmlJS1k5O1kpKyj4+1iIi7goLA - gIDCgIDBgYHCgoLEgoLGhITEiYm/jIy/kpK2nZ2ppaWioKClmZmtl5esk5OtjIy0hoa8hYW9hYW7hIS7 - h4e4ioq5jIy8jIy9i4u9j4+4kJC2nZ2opaWfoaGlm5uslJSzk5O1lJS0kZGzioq5goK/gYG/gYG/gYHA - gYHCgoLDg4PEg4PFkJC5n5+opqahn5+plJS1k5O0jo62kJCzioq5gYHBf3/DgIDDhYW/iYm7iYm6i4u4 - kZG0lZWxnJyroKCopKSmpqakoqKnmpqumZmulZWyioq9g4PFgIDFgIDDf3/ChIS9iYm5i4u6jIy8jo66 - jIy7kpK0mpqroaGkoqKjnJypk5O0jY28jY26i4u7hoa9g4O/gIDDgYHGhobBi4u9j4+7kpK4l5e0mpqx - nJyuoqKopKSioqKioqKioqKioqKjo6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6OkpKSkpaWl - paWlpaWlpKSlpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqanIACkpKSjo6Sjo6Sj - o6Sjo6Sjo6SioqOioqOjo6Sjo6WkpKWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6SkpKWlpaWlpaWkpKSj - o6OioqOioqKioqKioqOjo6WkpKWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6OZma2RkbSLi7uFhcKDg8WE - hMWEhMWEhMWDg8aEhMSMjLuYmK2hoaSjo6KioqOjo6SkpKWlpaWhoaiTk7WGhsKCgseCgsaDg8aEhMWI - iMGHh8GLi7yUlLOUlLOamqygoKWjo6KioqOioqOioqOioqOjo6OioqOZmaqNjbWGhruIiLmJibqKiruL - i7yMjLqQkLaTk7GWlqyXl6ibm6KgoJ+hoaGhoaGhoaGioqKfn6WWlrCKir6GhsKGhsKHh8KIiMKIiMKJ - icGNjb2Li7+Njbyamq2kpKSlpaWlpaWkpKWkpKWjo6WenqiXl6+RkbaKir+Dg8WCgseFhcWJicCLi7uK - iruJibyOjrmamqujo6CioqKhoaGfn5+fn5+fn6CdnaWXl66Pj7aKiryKirqHh8CEhMeGhsaGhsWLi8CS - krmXl6+cnKagoKKhoaGhoaGhoaGhoaCcnKaTk7GKir2AgMaCgsaDg8WDg8WFhcWIiMGOjrqRkbaVlbGc - nKWgoJ2fn5+hoaGhoaGioqCdnaWVla6OjraJib+Dg8WDg8aBgceBgcSGhr6KiruMjLuRkbaWlrCfn6ml - paSkpKWkpKWjo6SioqOioqKioqKioqOjo6SkpKOenqmRkbeGhsSEhMaEhMWDg8SBgcKAgMGAgMGCgsKF - hb6KirqMjLyJicCNjbuZmayenqWioqKhoaWdna6ZmbSWlraRkbmIiL+CgsN/f8J/f8F/f8GBgcOCgsWC - gsWDg8SIiL2UlLGdnamYmK+Xl7KSkrSLi7uEhMOBgcWBgcOAgMGAgMGAgMKCgsOHh7+Li7yMjL2Li76V - lbOioqWjo6Sfn6mcnKmSkrKKirmIiLqIiLmIiLeIiLWJibaJibmLi72Njb2Pj7iTk7OTk7Obm6qjo6Gh - oaObm6qZma6VlbOTk7aMjLyFhcKDg8KBgb+Bgb+AgL+AgMGBgcOCgsSCgsSPj7efn6impqGfn6mUlLWU - lLSVlbCQkLWFhcCAgMaBgcKEhL6KirmKirqKiruMjLmMjLmMjLqMjL2VlbOhoaimpqSkpKaioqigoKmU - lLSJib+GhsOFhcCEhL6Dg7yFhbuFhbyFhb+Hh8CLi72OjrqTk7SamqygoKWjo6KhoaKenqaZma2UlLKM - jLqFhcKAgMSAgMOEhMCKirqMjLqOjrqRkbmTk7eamrCenqukpKempqSioqOioqOioqOioqOjo6Sjo6Wk - pKWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6SkpKWlpaWlpaWlpaWkpKSkpKSlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWmpqYgAKKioqOjo6OjpKOjpKOjpKOjpKOjpKKioqOjoqOjo6OjpKSkpaWl - paWlpaWlpaWlpaWlpaWlpaSkpKOjpKSkpaWlpaWlpaWlpaSkpaKio6KioqKioqKio6KipKSkpaWlpaWl - paWlpaSkpaOjpKOjpKKio5WVsouLvYWFwoKCxYODxISExYSExYSExYSExomJv5SUr5+fpKKioqKio6Ki - o6Kio6OjpKKipp2drZKSuYiIwYWFw4WFwoODxYSExYODxoODx4qKv5WVspycq6GhpaKio6Kio6Kio6Ki - o6Kio6Kio6Gho52dqpGRt4eHv4mJuoiIuYmJuYuLuoqKvYqKvI6Ot42NuJCQtZiYqp6eoaCgn6CgoKGh - oaGhoZ+fo5mZqpKStYyMvIyMvIyMvI2NvI2NvI2NvI2NvYyMvo2NvpGRuZycq6Sko6WlpaWlpaWlpaWl - pJ+fqZeXsJCQuIiIwIODxoSExoSExYiIwIyMvYuLvouLvYeHvI6OtpubqaOjoKKioqKioqGhoaCgnpub - o5SUrY6OtIqKuoqKuYmJvIaGwoWFxoWFxoWFxoqKwZKSupubr6GhpKKioKGhoaGhoaGhoZ6epZaWromJ - vYCAyIODxYODxYSExYODxoaGw42Nu4+PuY6OupWVsp+fp6KioJ+fn5+fn6GhoaOjoJqaqo6OuIeHv4KC - xoKCxYGBxYKCxIaGv4qKvImJvoiIwJGRtZubqaKipKWlpaSkpaSkpaSkpaSkpaKipKKioqKioqOjo6Sk - o5+fqZKStoaGw4SExoSExYKCxIGBw4CAwoGBwISEvIiIuImJuYmJvIqKvI+PuJWVspqaq6CgoqOjoKGh - ppmZsJCQu4mJwoWFxoODxYCAwn9/wX9/wYGBw4KCxYODxIiIvY+PtJWVrpqaqp+fp5eXsY6OvIaGwoOD - xYODxYGBw4GBwoCAwoGBwIWFvIqKuomJvYqKvYuLvZOTtZ6eqaSko6Sko52drJCQuYuLvIuLuImJt4iI - t4mJtoiItomJuIuLuZCQt5OTs5OTs5OTs5WVsJ2dp6KiopycqZycqpSUtIyMvYaGxIWFxoWFwoGBwYCA - wICAwYGBwoGBwoGBxIGBxI2NtZ+fpqWloqKipZ2dq5OTtI+PuISExIGByIODw4SEvoiIuImJuoqKuoqK - u4WFwIGBxoKCxYKCyI6Oup+fqaamo6WlpaSkpp2dro6OvIuLvo2NvIyMu4qKuYWFuoCAwX9/w4GBxIWF - wYyMupKStpGRuZiYsZ+fqKKio6Gho6Kiopqaqo2Nu4ODxoGBx4KCxISEv4mJuYiIvIeHvoeHv4iIwYmJ - wY6OvZaWtKCgqqampKWlpaSkpaOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpKOj - pKOjpKOjpaSkpaWlpaWlpaOjpKOjpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpSAAo6OkoqKi - o6Ojo6Oko6Oko6Oko6Oko6OkoqKjoqKjo6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6OkpKSl - paWlpaWlpaWlo6OkoqKjoqKioqKioqKjo6OkpaWlpaWlpaWlpaWlpaWloqKmnJysjo66hYXEgoLGg4PE - g4PFg4PFg4PFgoLGhobBk5O0n5+moaGhoqKioqKioqKjoqKjoaGkmpqtlJS1jo68jY29jo68ioq+hITF - hITFhYXFiYnAj4+6lpaxoaGkoqKjoqKjoqKjoqKjoqKjoqKjo6OinJyqlJSyjo66i4u9ioq7i4u5ioq6 - ioq7h4e/g4PEhITFhYXDkZG0n5+loqKfn5+fn5+foKCgoqKgm5uolJSxkZG1kZG3ioq+i4u+i4u+jIy9 - jIy9jIy9jY29kpK3m5uuoqKnpKSko6OkpaWlpaWlp6ejnJytkJC5iYnCg4PHhITFhITGiIjBi4u+i4u+ - i4u+i4u+i4u9lJStn5+io6OioqKioqKioqKioqKgmZmojo60jIy5jIy4ioq6hYXCg4PGhITFhYXFhYXG - g4PIiorCmZmyoqKmo6OjoaGhoaGhnp6ll5etj4+2h4fAg4PFg4PFhITFhITFhITFh4fCi4u9i4u9j4+5 - mpqqoqKjoqKjoKChnp6eoKCfoKCilpauiIi/gYHHgoLFgoLFgYHFh4e/iYm/hITFhITEhITEkJC3np6m - pKSho6OlpKSlpKSlpKSlpKSlpKSlo6OjoqKioqKio6Ojo6OkmZmui4u+g4PGg4PFgoLEgYHEgYHCg4O9 - hoa1hoa4iYm6iYm6jo61k5OylpaxnJypoqKkoqKgnp6jk5Owhoa/goLEg4PFgoLEgIDCf3/Bf3/BgIDC - goLEiYm8kJC0lpatmpqom5unoqKhl5evjo64jY25iYm9goLGgYHDgYHDgIDChIS7iYm4iYm8iYm8i4u9 - kpK1mpqtoKCnpKSjo6OknZ2rmJixlZWylZWvkZGwiYm2iIi4hoa3hYW5ioq3kJCzkZG1lJSylJSykpK0 - mpqrpKSgoKCkmZmtjY27hYXEhITFhYXDhYXCgYHCf3/BgIDCgYHCgIDCgYHDgoLCjo61nJykoqKho6Oj - oaGlk5O1hobDg4PFg4PEhYW/iYm3h4e5iIi5iYm6hYXAgoLFg4PFg4PFgoLGjY27nJyqpKSjpaWlpaWl - np6rkZG6jIy+jIy9jIy8iIi9gYHEgIDCgYHBhYW/iYm7ioq6ioq9jIy9lJS1nJysoaGlo6OioqKjlJSy - h4fBg4PGhITFhYXCiYm5hIS9gYHDgIDFgYHFgoLGg4PHhITIiorAmJiyo6OnpqakpaWlo6Oko6Oko6Ok - o6Oko6OjoqKipaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6OkpKSkpaWlpaWlpaWlo6OkpKSkpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlIACioqKioqKioqKioqOjo6Sjo6Sjo6Sjo6Sjo6SioqOioqKj - o6Sjo6SlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWkpKWioqOioqKioqKioqOj - o6SlpaWlpaWlpaWkpKWfn6qVlbSHh8KDg8aDg8SBgcOCgsSDg8WDg8WBgceJib+YmK2jo6GioqKhoaGi - oqKioqKjo6GgoKWUlLOOjryMjL6NjbyJicCCgsaBgcSCgsWJib+MjL2OjruXl7GkpKOioqOioqOioqOi - oqOioqOioqOjo6KXl6+OjruLi76MjL2MjLuOjraLi7mHh8CFhcOFhcOGhsKMjLmYmKugoKKioqGgoKCf - n5+fn5+goJ+Xl6yRkbOPj7eKir6GhsKGhsOFhcSJicCMjL2NjbySkrabm66ioqelpaSkpKWkpKWjo6Sl - paWnp6Odna6MjL+Dg8iFhcaEhMaIiMCLi76Li76Li76Li76Li76ZmbChoaSgoJ+goKCioqKioqKioqKh - oaOVla6Li7eMjLaJibqEhMKDg8WFhcWFhcWFhcWFhcWFhcaPj7ufn6unp6OlpaWjo6SioqCYmKuQkLaL - i7uHh8CEhMWEhMWEhMWDg8aHh8GMjLyLi7yQkLiYmK6goKWjo6KioqOioqOhoaGfn52ZmaaOjraEhMKC - gsaCgsWCgsaJib+IiMCEhMWFhcSFhcSLi76Zma+hoaSjo6Kjo6Sjo6SkpKWkpKWkpKWkpKWkpKWjo6Si - oqKioqKkpKGdnauNjbyDg8eEhMWDg8WCgsWFhb2Hh7aFhbeGhreHh7mOjrORkbGTk6+bm6mgoKWgoKWi - oqOgoKSUlK+Ghr2BgcOBgcOAgMJ/f8F/f8GAgMOCgsSKir2QkLeXl6+amqqZmamamqihoaGcnKiamqqY - mK2OjrmCgsWCgsOBgcOEhLqHh7eJibuLi76Li76SkraTk7WVlbKcnKqioqSjo6Sjo6Sjo6SkpKOgoKWV - la6IiLqIiLiCgr2AgMCBgcGEhMCLi7qSkrSTk7OWlrCcnKmioqOhoaOWlrCIiMCDg8ODg8GDg8KCgsOB - gcKAgMGBgcKBgcSBgcWCgsOJibqPj7OZmaednaSfn6OgoKKYmKuLi7qJib2KiryJibqIiLmHh7mHh7iE - hL+CgsSCgsWDg8WDg8WDg8WJib2Xl6+hoaWkpKOjo6SioqSVlbKMjLyLi72Jib+CgsWBgcOAgMKDg72H - h7mJibmJibqJibuQkLOVlbKbm62hoaakpKOioqOVlbKOjruLi7yKirqJibuFhb6AgMGAgMKBgcOBgcOB - gcWFhcWLi76Pj7yUlLeenqumpqSlpaWlpaWlpaWlpaWlpaWkpKWjo6SioqKkpKSlpaWlpaWlpaWlpaWl - paWlpaWkpKSjo6Sjo6Sjo6SlpaWlpaWlpaWkpKSkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaUgAKWl - paOjo6KioqKioqKio6OjpKOjpKOjpKOjpKOjpKOjo6KioqOjpKOjpKSkpaWlpaWlpaWlpaOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjo6KioqKioqKio6OjpKWlpKSkpqCgqpiYsouLv4aGxYODxYKC - xIKCxIKCxYODxYGBx4WFw5GRtp2dp6OjoaKioqKioqGhoaKioaGho5ubqpSUs42NvIyMvIiIwIODxYKC - xIGBxIeHvYmJvI2NupSUtJ2drKOjpKOjpKKio6Kio6Kio6Kio6Kio6OjopycqpSUspGRt4+PuYyMvIaG - w4aGxIWFxYSExoWFwo2NuJiYrJ+fo6GhoaGhoaGhoaGhoZ+fn6CgnpaWrI6OuImJvoWFw4WFwoaGw4mJ - wIyMvo2NvJKStpubrKGhpqSkpaSkpaSkpaSkpaSkpaOjpKKiqJWVtYuLwImJwoiIwYiIwYqKvYmJu4qK - vYuLv4yMvZKSt6CgqKSkpKKio6CgoJ+fn6KioqKioqGho5eXr4yMuomJuoODwYODw4ODxIODxYWFxYWF - xoWFxZCQuJmZsKKiqKampKWlpaWlpaKio5WVr4yMuYeHwISExYSExYODxIKCxoeHv4qKvIyMu5GRtZmZ - q6CgpaKio6Kio6Kio6Kio6Kio6CgopOTrYmJuIeHvYiIv4SEwoKCxIODxISExYODxoWFxI2NvZOTuKCg - qaampKWlpaWlpaWlpaWlpaSkpaSkpaSkpaSkpaSkpaOjpKOjpKOjoZ+fp5aWs5CQuJGRt4uLvImJvImJ - uoeHuIaGt4WFtoeHuImJuY6OtZOTsJOTsJSUsJqarKGhpKCgpJWVsIeHvoCAxIGBw4CAwX9/wX9/woKC - wYmJu4qKu4uLvJKStJeXr5SUsJSUrpycpp2dpJmZqpCQtoqKvoqKvYmJvIiIuoeHuYiIuoqKu4uLvoWF - xYaGxISExoiIwpKStp2dqKOjpKOjpKSko5+fqJycrZmZrZCQsoSEv4CAwH9/wIODvoiIuYqKuoyMvZaW - sZubrJubrJ2dqKKiopmZrIyMu4iIvYWFv4GBxIKCw4GBw39/wYCAwX9/xYKCwomJuomJuomJuo2NtpKS - r5qapqGhn6CgopOTsYyMuouLvIqKuomJuIeHuIKCvoGBwoGBxIODxYODxYODxIWFwYWFwo+Ptp2dqKWl - o6OjpKKipJWVsY2NuIaGvoGBw4GBw4GBw4ODvIaGuYeHuYeHuomJuZCQsZKSsZKSspeXsJ+fqaSko6Oj - pJqaq5mZrJeXr46OuIWFwYGBwoCAwX9/wX9/wX9/w4KCw4yMvY2NvI2NvpGRuZ2draeno6WlpaWlpaWl - paWlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKWlpaWlpaam - pqamp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpSAApKSkoqKioqKioqKjo6Oko6Oko6Oko6Oko6Oko6Ok - o6Oko6OjoqKio6OkpKSkpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oj - oqKioqKioqKjpKSioaGolpa0i4vAhobFhYXHhITGgoLFgoLFgoLFgYHGhobBjIy7mJitoqKjoqKjoqKi - oqKioqKioqKhn5+jmpqrlZWxjo66h4fBg4PFgYHFgYHChYW7iIi5h4e7kJC0nZ2poqKko6Oko6Oko6Ok - oqKjoqKjoqKjoqKjoaGjm5uqk5Oxjo62ioq8hYXDhITGhYXGhITHhobDj4+3mZmqoKCioaGhoaGhoaGh - oaGhoaGhoaGgnZ2hkpKviYm8hYXChYXChYXCh4e+i4u+jo68k5O1mpqtnJyroqKlo6OkpKSlpKSlpKSl - pKSlo6OkmZmvjo68iorCi4vBi4vBjIy+ioq8iYm8iYm8iYm+jY29k5O2oaGnpKSjo6OkoqKioKCgoKCg - o6Ohn5+mk5OziIjBhITFgoLDg4PEg4PEg4PEg4PFh4fDkpK3mZmvn5+ppKSlpaWlpaWlpKSmnp6skJC4 - hobAg4PEg4PFg4PEgYHEhoa/iYm8i4u5jo65kJC4l5evoKCko6OioqKjoqKjoqKjoqKjnZ2ojo62h4e8 - h4e7hYXAg4PEg4PFg4PFg4PGhobDjIy9k5O2mpqwoqKnpaWkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlo6Oko6OjoqKinp6nmJiwlZW0jY28i4u9ioq7iIi5hoa5gYG+g4PBg4PBhITAhoa/hobAhoa/ - kpKzoKCloKCmlpawjY25hYXAf3/FgIDFf3/EgIC/hoa5ioq4ioq6ioq7kZG1lpawlZWxlZWxlZWvnJyn - l5eskJC2j4+4kZG2kJC2ioq6iIi7iYm4iIi8hobEhITGgoLIhobEjY28lZWynZ2poqKjo6OkpaWioKCo - mpqvlJS1iIjAhITCgIDCgoK8hoa3ioq4i4u5jIy8j4+4kJC4kpK2mpqsoqKinp6mk5O0h4fAgYHFgIDE - gYHDgIDCf3/Bfn7Dg4PAiYm7ioq6ioq7ioq6iYm6jY21mJipo6OeoaGglJSwjIy7iYm+ioq8iYm8hITA - gYHCgYHCgYHDg4PFhITFhITFhITEg4PGi4u7mpqpo6Ogo6Oko6OjlpaxiIi/gYHFgIDFgIDChIS9hYW4 - hoa2hYW5iIi3jo6xi4u2jY25jY26jo65lpawoqKlo6OknZ2qmZmtkZG2iIjBg4PFgYHEgYHCgIDBfn7C - goK/h4e8hYXDhobEhITGiorAmZmwpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpKSlpaWlpqampqan - pqampqampaWlpaWlpaWlpKSlo6Oko6OkpKSkpKSkpaWlpqanpqanpqanpqanpqampaWlpaWlpaWlpaWl - IACjo6SioqOioqKioqKioqOjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6OioqKjo6OkpKSkpKSlpaWlpaWk - pKWkpKWkpKWkpKWkpKWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6OioqKioqKkpKKhoaaWlrKKisKFhcaFhceF - hceEhMWCgsWCgsWGhsCNjbeQkLSbm6ukpKGioqOioqOioqKioqKjo6GhoaKZmauPj7iHh8GEhMWBgceC - gsSHh72JibmJibmHh7yPj7KdnaSjo6Gjo6Sjo6Sjo6Sjo6Sjo6SioqOfn6Wbm6qVlbKQkLiKir2EhMOD - g8WDg8aDg8aIiMGNjbySkraamqyhoaChoaGhoaGhoaGhoaGhoaGfn6SVla6KirqFhcCFhcKFhcCIiL2J - ibyJib2OjriWlrGYmK+YmLCioqWkpKOjo6Sjo6SkpKWkpKWfn6mQkLqJicGJicGLi8GMjL+KiryJibyJ - ibyJibyJibuNjbmUlLShoaakpKOjo6Sjo6SioqOgoKCgoKCbm6WUlK+MjLqGhsGDg8SDg8SDg8SDg8OF - hcGJib6Pj7mZma+hoaakpKOkpKSmpqWlpaWfn6yRkbqGhsSDg8WDg8SEhMWHh7+Li7uMjLmMjLmOjreT - k7KamquhoaOioqGioqOioqOioqOioqOYmK2Pj7mIiL+EhMKDg8SEhMWDg8eDg8aGhsKKir6OjruZma+g - oKekpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Wjo6KgoKSYmK2Pj7mMjLyK - iryKirmIiLqDg79/f8KAgMOAgMOAgMOAgMWAgMWFhb+SkrCenqShoaOcnKmXl6+RkbaLi7uHh72Ghr2H - h7mHh7aFhbuHh7yGhr+OjraVlbCUlLOTk7OWlq6enqSenqOamqmVla6SkrKSkrKPj7OLi7aGhruDg8GC - gsaDg8aHh8OOjruWlrKenqmjo6Sjo6OioqOhoaWcnKqSkrWGhsGDg8SCgsOEhLyEhLmDg7uEhL6Hh7+N - jbuLi72NjbuTk7WamquioqOioqKWlrCKir6EhMGDg8CAgMR/f8J+fsOBgb6IiLmLi7mKiruLi7qLi7qK - irqMjLeVlaygoJ+goKCXl6uTk7GUlLCRkbOHh76BgcOBgcKBgcKBgcODg8WEhMWEhMWEhMWCgseLi72b - m6qlpaGjo6SkpKOZma2JicCDg8WFhcCEhL6Hh7mFhbeDg7iHh7SMjLCKiraEhMGFhcOFhcSJicCUlLOh - oaajo6Samq6Pj7mHh8KEhMWCgsWBgcSAgMJ+fsOBgb2FhbqDg7+BgcWDg8eGhsSLi7+UlLafn6umpqSl - paWlpaWjo6Sjo6OlpaSlpaWlpaWlpaWlpaWlpaWlpaampqempqempqalpaWlpaSkpKSjo6Sjo6Sjo6Sj - o6Sjo6SlpaWmpqampqempqempqempqempqWlpaWlpaUgAKSkpaSkpaSkpKKio6Kio6OjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKKioqKioqKio6OjpaSkpaSkpaSkpaSkpaSkpaSkpaSkpaSkpaOjpKOjpKOjpKOj - pKOjpKOjpKKio6KioaKioqCgpZiYrYyMvoWFxYSExoSExoODxoKCxYSExIqKu5CQs5OTr5ycp6OjoaKi - o6Kio6KioqKioqKiop2dqJCQtYaGwoGBxoCAxoODw4eHv4qKu4qKvImJu4qKuZOTrJ2doKGhoKKioqOj - pKOjpKOjpKOjo6CgpJmZq5WVspCQuIqKvoWFxIKCx4ODxoeHwYaGwYuLvI6OupKSt5ubraKioqGhoaGh - oaGhoaGhoKCgopiYrIqKvISEw4SEwoWFwYWFwIeHvYmJu4iIu4yMuZKStZaWsZiYrqKipaSkpKOjpKOj - pKWlpKOjpZmZsI2NvYqKwIqKv4uLvoyMvImJu4mJu4mJu4mJu4yMt5GRspmZrKKipaSkpKOjpKOjpKOj - pKGho5+foJmZpJSUq4+PsoiIu4SExYSExIODxIODxISEw4aGwIyMuZubq6KipaOjo6OjpKSkpqKiqZ2d - rI6OvIeHxYWFxYSExISExYiIv4iIwYyMu4+PtpOTsZqaqJ+fpKKioqKioqKio6Kio6Kio5+fppOTs4yM - vYaGw4ODxoODxYSExYeHwoeHwoqKv4yMvZGRt5+fqKSko6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpKSko6CgpZiYrYqKvYqKvYqKuYeHuoODv39/wn9/wYCAwoGBw4KCxIGBxYOD - xI6Ot5eXq5ycpqGhoqCgpJiYrZSUtJGRt4yMuYqKuImJuIWFu4KCvYODvoWFvoqKuI6Oto+PuJOTs5yc - qKCgpKCgoZycpZSUrpGRspGRspCQs4mJuoGBwH9/w4KCxIaGwY2NupOTtZeXsZubrKCgp6KipqOjopyc - q5GRt4aGwYGBxYODwoWFvoaGuYODu4CAv4GBwIiIvoyMuo+PuZOTtpeXsZycqaKipKSkopeXr5GRtZCQ - tIuLt4KCwIODvYKCvoWFuIiIt4mJuYqKuoeHv4eHv4aGwIiIvpCQtJqapJ+fn5ubpZycpZycpZSUroiI - vYGBw4CAwoGBwoKCwoKCw4ODxISExYSExYODxouLv5qasKOjpKSkpKOjpJ+fqJWVs4yMvImJvoiIvIiI - uoaGuoiItIuLsImJtIKCwIGBxoKCxoKCyIeHw5SUtKGhpqOjpJubrI+Pu4WFxYKCx4ODxoKCxYCAxIGB - voODuYKCvYCAxIGBxIaGwoyMvJKSt5aWs56erKampKWlpaWlpaOjpKKio6OjpKSkpKWlpaWlpaWlpaWl - paWlpaWlpqamp6amp6Wlp6SkpaSkpKSkpKSkpKSkpKOjpKOjpKOjpKSkpaamp6amp6amp6amp6amp6Wl - pqWlpSAApaWlpaWlpaWlpaWlpKSkpKSkpKSkpKSko6Oko6Oko6Oko6Oko6Oko6OkoaGioqKjo6Oko6Ok - o6Oko6OkpKSlpKSlpKSlpKSlpKSlpKSlo6Oko6Oko6Oko6Oko6Oko6OkoqKjoKCjnZ2nlZWxioq8g4PD - goLEg4PEgoLEgYHEhITDiIi8kZGymZmon5+ioqKhoqKioqKjoqKjo6OinJypkJC2h4fBhYXDg4PBg4PC - iIi9jIy6ioq8iYm8iIi9jY23mZmln5+anp6foKCgoqKio6Oko6OkpKSjoaGml5ewj4+5ioq+hYXEg4PG - hITFh4fCjIy7jIy7i4u8jo66lpawoKCmo6OkoqKioaGhoaGhoqKgoKCilpauiIi/hITDhYXChYXBhYXB - hobAioq8ioq7iIi9jIy5l5euoKClo6Oko6Oko6Oko6Oko6Okn5+pkZG3jY29jY29jIy9i4u9i4u8ioq6 - ioq6iYm7jIy4kpKxmJionp6ioaGjo6Oko6Oko6Oko6OkoaGloKCkmJipkJCwjIy1iIi7h4fBhYXEhITF - g4PGgoLFiIi8lZWuoaGio6Oio6OkpKSjoqKmmpqvkZG4h4fEhYXGhobFhYXFhITFg4PGg4PGi4u8lJSw - mpqooKCioaGgoqKioqKioqKio6OioaGkmJiui4u8hYXEg4PGg4PFg4PFhITFjIy9jY28jY29jo68lJS0 - oqKko6Oko6Oko6OlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkoqKlmZmui4u+ - i4u9iYm7g4PAf3/DgIDBf3/BgYHDgYHEgYHHg4PGi4u+lpavnJyqmpqpn5+jn5+klJSwjo66jIy8i4u8 - ioq7h4e8g4O+goK8hIS7iIi5iYm6iIi7jIy5kpKzmZmsmpqrmpqplpaskZGykZGyj4+1iYm9goLEf3/E - f3/Bg4O+i4u3kpKykZG3j4+6j4+6kpK2m5uso6Okm5usjIy7hobDh4fChobAiIi7hIS+gYG/gYG9hYW6 - i4u3i4u5kJC3kZG4k5O1mpqro6Ojo6OknJyrmpqrm5uolZWsioq3iIi4h4e2hoa3hoa3h4e4hoa+goLF - g4PGgoLHhYXFj4+6mpqon5+fnJykmpqmlZWrjY22hoa+gYHCgIDAgIDBgYHCgYHCgYHEg4PFhITFhITG - h4fEkZG5n5+rpqakpKSko6Ojn5+nlJS0jIy8jY25i4u4i4u3jY2wiIi1gYHAf3/EgYHEg4PFhYXFiIjC - j4+6m5uupKSkoqKll5ewi4u+hobFh4fDh4fBg4PAhYW6goK9f3/DgoLDh4fBjY26kZG2lZWympqtoKCo - paWkpaWlpaWlpKSlpKSlpKSko6OkpKSlpaWlpaWmpaWmpaWmpaWlpqampqanpqanpqanpqampaWlpaWl - paWlpKSko6Oko6Oko6OkpaWmpqanpqanpqanpqanpqanpaWmIACjo6SlpaWlpaWlpaWlpaWlpaWlpaWl - paWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKWkpKWkpKWkpKWkpKWkpKWj - o6SioqOioqOjo6Sjo6ShoaahoaWamquPj7iIiLyCgsKBgcOCgsOCgsOCgsODg8KJibuWlqugoKGioqCh - oaGhoaGioqOioqKgoKWVlbGMjLuOjrqLi7yJibqKiryLi76Kir6Li72JibyLi7qQkLSamqafn5ydnZ2f - n5+hoaGioqKjo6Sjo6ShoaaYmK+NjbyEhMWEhMaFhcWIiMKNjbyMjL2MjL2NjbqWlrCgoKWjo6Ojo6Sj - o6SioqKhoaGhoaGfn6OYmKuNjbmHh8CGhsGGhsKHh8GLi72Li72KiryKiruOjreXl6yjo6Gjo6Sjo6Sj - o6SkpKOhoaaYmLCNjb2MjL6Njb2MjL2Li7yKiruKiruKiruKiruPj7OYmKidnaOgoKChoaCioqOjo6Sj - o6Sjo6ShoaWamq2Tk7OMjLiIiLqJibmIiLuEhMSEhMaEhMaLi72Xl6ycnKWhoaGioqGjo6OkpKSfn6iR - kbaGhsSGhsWHh8SGhsaFhcaEhMWFhcSKir6RkbeXl6+dnaaioqChoaGhoaGioqKioqKioqGfn6WUlLOI - iMCEhMWDg8WDg8SEhMWHh8KLi72Njb2QkLuSkrmWlrSjo6Wjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWmpqSjo6aamq2NjbyKiryDg8GAgMOBgcKAgMF/f8GAgMOAgMWCgsaK - ir6VlbCamqybm6ucnKmgoKOgoKGYmKuMjLuLi7yLi7yIiMCGhsCEhL2Dg7uGhraIiLmJibuMjLmOjraN - jbeNjbqUlLKbm6mZmauRkbGPj7SJibyDg8OCgsOBgcGCgryJibSQkLCQkLKIiL+FhcaFhcaHh8KWlrGi - oqWhoaaamqySkrWLi72Li7yFhcGCgr+Bgb6EhLmJibSKireJibqJibyKir2OjruYmLGjo6Sjo6Shoaaf - n6WgoKSbm6iPj7KJibiHh7iGhreGhraEhLyAgMWDg8WEhMaDg8eHh8OTk7aenqahoaGcnKOWlqqMjLWE - hL+CgsOCgsGBgcCAgMGAgMGBgcKBgcOBgcSDg8WEhMWEhMaMjL+bm6+mpqSlpaWlpaOfn6iXl7CUlLSV - lbOSkrKQkLGKireBgb9+fsOAgMKBgcSEhMWLi8CNjb6Pj7yYmLKlpaWlpaObm6ySkraPj7qQkLmOjrmJ - ibmCgsB/f8KAgMKDg8KMjLuPj7mQkLaQkLeUlLScnKqjo6OlpaWlpaWlpaWlpaWlpaWlpaWjo6SlpaWm - pqampqempqempqelpaWmpqempqempqempqalpaWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Smpqempqempqem - pqempqempqcgAKKioqOjo6Skpaampqamp6amp6amp6WlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKOjpKSkpaSkpaSkpaSkpaSkpaOjpKKio6Kio6OjpKGhpp6eqZWVsomJv4SE - xoSExYSExYSExYKCxYGBxYODw46OtpubpKGhoKGhoaGhoaGhoaGhoaKiop+fpZmZrZaWsZSUsomJv4OD - w4KCxIODxYaGw4yMvIyMu5GRs5aWrJ6epKGhoJ6enp2dnZ+fn6CgoKKioaCgppqar5CQuIaGxIWFxYSE - xYiIwY2NvIyMvYyMvY2Nu5aWsJ+fpaOjoaKioqOjpKOjpKOjpKOjop+fopeXrI2NuYeHwIaGwYWFwYaG - wYmJv4uLvYuLvYqKvo6Ot5WVrZycpqGhoaKioqOjpKOjpKSko6Cgp5SUto6Ou42NvI2Nu4yMu4uLvIuL - vIuLvImJvI6OtpOTr5iYqZ6eoqCgoKCgoKCgoKKio6OjpKOjpKGhpZaWso6OvIuLvYuLu4iIvYKCxIKC - xIKCxouLvpaWsJ2dp6GhoaCgoKGhoaKioaGhpJmZr4yMvIyMvY6OvYiIw4SEx4SExoSExIuLvIyMvYyM - u5GRtpqaq6KioKGhoaGhoaGhoaKioaKioqCgpJmZrJSUsomJvoSEw4WFwYaGwIuLvYyMvY+PuZGRuZWV - tZ+fqqWlpaOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampKOj - p5WVtIeHw4KCxoGBxIGBwoGBwn9/woGBxICAx4qKvZSUspKStJKStJGRtZeXr5+fpaKin5ycpZCQtIyM - uYeHv4WFwIWFv4WFvIaGt4aGt4eHuYmJuYqKuoqKu4qKu4uLupiYraGho6CgpZWVsYmJvIqKu4qKu4iI - u4mJtYuLr46Oro+PsIeHvYODxISExoSEx4eHxJWVtKKipqWloqGhppaWsYmJv4aGw4aGwoODwoaGuoqK - s4mJtomJuomJuoiIvI6OtpKStJWVtJycrKOjpKOjpKSko6GhppqarJSUspCQsYqKt4mJt4SEvH9/woGB - woGBw4ODxYODx4eHw5GRt56eqaKioqKioJeXqoiIuoGBw4ODwYODwYGBwoGBwYCAwYCAw4GBw4GBw4OD - w4SEw4mJv5CQupqasKampKWlpaampJ+fqZqarZubrJqarpOTtYuLuoODwX9/w39/wYGBwoKCxIqKv4qK - v4+Pu5eXs56eq6WlpaampJycrJeXsJmZrpaWsouLvoODxIGBw4CAwYCAwoKCxIODxYSExYSExYODxoeH - wpKStZ6eqKOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKSkpKampqamp6amp6amp6Wlpaampqamp6amp6am - p6WlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKWlpqamp6amp6amp6ampyAAoqKioqKioqKjpKSkpaWmpqan - pqanpqanpaWmpaWlpKSlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpKSl - pKSlpKSlpKSlpKSloqKjo6Oin5+llJSxiYm/hITFg4PEg4PEg4PFg4PFgoLGg4PEioq6j4+1m5uloKCf - oaGgoaGhoaGhoaGhoaGhoKCjnZ2olZWyiYm/hYXEhYXFhYXGhYXGhITHh4fEkZG1mZmsnp6koaGhoaGh - oaGhn5+fnZ2dnp6eoaGgm5upjo65hYXFhITGhITHiIjBi4u8i4u8jIy9jY27lpaxn5+no6OioqKioqKi - oqKio6OkpKSkoqKlmpqsjY25hobAhYXBg4PEgoLFgoLFhYXDjIy+jIy+i4vAkpK1nZ2moaGhoaGhoaGh - oqKio6OjoqKlnZ2qlpayk5O1kZG3jY27ioq8ioq7i4u8i4u8j4+3k5OwmJipnp6joKCgoKCgoKCgoKCg - oKCgoqKioaGmmpqsj4+6jY29iYnBhITEg4PDgoLEgIDGioq5k5Oyl5evnZ2noqKioaGhoKCgoaGgoaGj - mZmujY28jY28iIjChITFg4PGhYXEiYm7i4u8ioq+kJC4mJiun5+noqKioaGhoaGhoaGhoqKgoaGinZ2o - l5eviYm+hobChYXChoa/ioq8jIy9kJC4kZG5lpa0n5+qpaWlpaWlpaWlpKSko6Oko6Oko6Oko6OkpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqako6OnlZW1hobEg4PHg4PGgoLFgYHEgIDDf3/Fh4e8 - iIi9hYXDhobDhYXDhITFi4u9mJitoaGhn5+jk5Owh4e/hYXBhobBh4e+iIi5hoa3hYW3hYW3iIi4ioq5 - ioq7ioq7kJC0l5eroKCjoKCkmJiukZG1jo61jY22jIy3jY2xi4uvhoa3hYW9g4PEg4PFgoLGhobEjY29 - j4+5nZ2qpKSjnp6pj4+5hITFhYXEhYXFi4u5j4+vi4uyhoa6iYm7iYm6iYm6iYm5ioq6jo65lpayoqKl - pKSjoaGmmpqslJSzk5O0k5Oyi4u2hIS+gIDCgIDCgYHDgoLEgoLFgoLFg4PHiYnAmJiwo6Ojo6OhnZ2l - jo6zhYW9h4e5iIi5goLBgIDCf3/Bf3/BgIDCgYHCgoLCiIi9kJC1lJSymJivoKCopaWlpaWlpaWloaGp - mJivkZGzioq7g4PCgYHEgIDCgIDDgoLCiIi8jIy8jIy9jIy9kJC6mJiynZ2spaWloaGonp6qnJyolZWu - iIi+iIi7ioq5g4O9fn7CgIDBgYHDg4PFhITFhYXDhYXDioq9mJiuoqKlo6OkpKSlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWmpqanpqanpqanpaWlpaWmpqanpqanpqanpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6Ok - paWmpqanpqanpqanIACioqKioqKioqKjo6OkpKWlpaampqempqempqampqWlpaWkpKWjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKWkpKWkpKWkpKWkpKWkpKSenqaTk7KIiL+EhMWE - hMWEhMWCgsWCgsWBgcaEhMSKiryQkLWTk6+dnaOgoJ+goKCgoKChoaGhoaGhoaCenqWVlbGKir+EhMWE - hMWEhMWFhcWEhMeGhsaNjb+UlLWenqeioqGioqGhoaGhoaGhoaGenp6enpybm6GWlqyPj7iKisCKir6K - ir6Li7uLi7qKiryNjbuWlrKfn6ijo6Sjo6Ojo6OioqKioqKioqOkpKOfn6iSkrWGhsKGhsGDg8SCgsWC - gsWBgcaDg8WLi76Li76Pj7ucnK6kpKKioqChoaGhoaGhoaGjo6GioqSenquYmLCSkreOjruKiruJibuK - iruKiryKir6QkLeUlLCZmaqfn6OhoaGgoKCgoKCgoKCgoJ+enqKamqqUlLCNjbmHh8CDg8SCgsWCgsSB - gcWHh76Li7mLi7mRkbOdnaeioqKioqKioqGgoKGcnKaVlbCLi76Hh8OEhMaDg8eGhsOJibyKiruJibyQ - kLeYmK6enqaioqOioqOioqKhoaGhoaGfn6KcnKaWlq+Jib2FhcKEhMOHh8CKiryLi7uNjb2OjruNjb2R - kbmdna2mpqSlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWm - pqSkpKaamq+MjL+Dg8eBgcmBgcmAgMeAgMWGhruFhbyBgcKBgcWDg8aDg8eIiMGMjL2Xl6+ioqOhoaKZ - maqLi7uIiL2Hh72Hh7yHh7mGhriFhbaGhreHh7eIiLmJibmQkLOXl6uZmamgoKGfn6SVlbGQkLiQkLeN - jbaQkLKOjrKIiLeDg72BgcKCgsSBgcaFhcOLi7uOjriQkLmdnaulpaSenqqSkrWMjLuNjbqOjruRkbKN - jbOHh7eHh7eKirqFhcKEhMKDg8KCgsSFhcKPj7efn6mkpKSgoKeYmK+Tk7STk7aNjbuGhsCCgsOAgMKA - gMGBgcOCgsWCgsWDg8WDg8aGhsKRkbeenqmjo6SioqGbm6iPj7OGhryDg75/f8F/f8F/f8GAgMGBgcKE - hMGJibyNjbiPj7WQkLaSkrWYmK6jo6WlpaWmpqSioqeXl7KLi72Dg8SBgcWAgMV/f8SAgMCFhbqJibmG - hsKGhsOFhcWHh8OQkLqcnK6jo6elpaakpKajo6Sfn6WVla2SkrCHh7yAgMJ/f8F/f8GAgMGCgsOEhMSF - hcSDg8aGhsKUlLOhoaSjo6OkpKSlpaSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqempqempqalpaWl - paampqempqempqalpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SlpaampqempqcgAKSkpKKioqKioqKioqKi - o6SkpKampqamp6amp6amp6ampqWlpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKSkpaSkpaSkpaSkpaOjppubrJCQt4aGwoODxoSExYODxYODxYKCxoODw4qKvJGRtZaWr5ycp5+f - oaCgoKCgoKCgoKCgoKCgoZycpZOTsYiIv4SExoSExoSExYWFxYSExoaGxIyMvpSUtpmZsaOjpaOjoqKi - oaKioaGhoaGhoaCgoKGhnJiYpY6Os4yMuYyMuoeHv4eHv4aGwYaGwIyMuJeXrp+fpqSkpKSkpKOjpKOj - pKOjo6KioqKioqOjoZubq4+Pu4iIw4WFxIODxoODxoKCx4SExYmJv4mJvZCQuJKStp6erKamo6Kio6Gh - oaGhoaGhoaCgop2dppeXrJGRtI+Pt4qKu4mJu4mJuomJu4mJvY+Pt5KStZiYrp6epqGhoqGhoaGhoaCg - oKGhn56eopiYqZOTr42NtYWFvYCAwoGBw4KCw4ODwoeHvYuLuYmJu4mJupOTr6CgoqKioqKioqOjoJ2d - ppOTr42Nt4mJvoiIwIiIv4iIv4mJvYqKuomJvI6OtZOTsJqarKCgpaOjoqKio6Kio6KioqOjn52dpJKS - soiIvoODw4SEw4aGv4qKu4yMu4yMvI2NvIyMvYmJwI+PuZ2dq6ampKWlpaWlpaWlpaWlpaOjpaOjpKOj - pKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaKip5mZsY+PvIyMv4yMvIyMu4eHvoWF - voGBwYCAw4GBxIODxYiIwIyMvIqKvpSUs6CgpaOjop+fpZWVr46OtoyMt46OtIuLtIaGuIWFtoaGtoWF - uYmJt4+Ps5GRsJWVrZSUsJqaqJ6epZmZq5KSs5GRtJCQso6OtImJuYSEvoKCwoGBwoCAxYaGwYuLvY2N - uo2Nuo6Oup2drKWlpaKip5qarZaWspWVspWVsY6OtoiIuoeHuIaGt4SEwIGBxYKCxoGByIODxIiIvYyM - uZaWr6KipaSkpJ6eqZeXsZKStpCQuYWFw4GBxYCAwoCAwYGBw4ODxYSExoWFxYWFxYWFxYmJwJWVs6Gh - p6Sko6OjoZqaqYmJvH9/xH9/wn5+wn5+wn9/woODv4eHu4aGv4eHv4eHwIaGwYuLvZaWsKKipKWlpKam - pKKip5aWs4mJwYeHwoaGwIWFvoSEvYWFuoaGtoODvoKCw4KCx4SExoyMvJeXsZycrJ6eqqOjpqenpKWl - pp+fqZeXrouLu4KCw4GBxICAwX9/wX9/wYCAwYKCwoSExYSExYqKvpWVsp6ep6Kio6Ojo6OjpKSkpKWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpqamp6amp6amp6ampqWlpqamp6amp6ampqWlpaWlpaWlpaWlpaSk - paSkpaSkpKSkpaWlpqampyAApaWlpKSjoqKjoqKioqKioqKjpKSlpqampqanpqanpqanpaWmpaWlpKSk - o6Oko6Oko6Oko6Oko6Oko6Ojo6Ojo6Oko6Oko6Oko6Oko6OkpKSlpKSlpKSlo6OmnZ2sl5ezj4+6h4fC - g4PFhITFgoLGgoLGhYXDi4u7kZGzl5eunZ2noaGioKCgoKCgoKCgoKCgn5+hmpqnk5Oyh4e+goLFg4PF - hITFhITFhITGhobEjIy9k5O0mZmvoaGqpaWmpKSkoqKjoqKhoaGhoaGhoaGhn5+hlpapjY2yiYm3hYW+ - g4PDgoLDg4PDiIi+kZGynJymo6Ogo6Oio6Oko6Oko6Oko6OkoqKjo6OioKCklZWyiYnAhYXEg4PGhITG - hITHhobFiorAjY27jo63kpKylZWxnp6qpaWkpKSlo6OjoaGhoaGgoKCimJiqj4+0jY23i4u5iYm6iYm6 - iYm6ioq5jo62k5Oyl5etm5uqoKClo6OhoaGhoaGhoKCgoKCempqmkZGxjY22hoa/gYHEgYHDg4PDg4PE - hITDh4e+ioq7i4u3kJCxmpqmoqKeoaGhoqKio6Ohm5upkZGzjY23jY22ioq5ioq6i4u6ioq8i4u8j4+3 - lJSvkZGxmZmroaGjoqKioqKjoqKjoqKjoaGim5upj4+3hYXAh4e/h4e+iYm6ioq9iYnCiYnBiIjCiorA - j4+7mZmvoqKlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpKSkpaWl - paWlpaWlpaWlpqako6OnoKCrnJytmJiwkJC4iIi+gYHEgIDCf3/DgoLEiIjAjIy8ioq+i4u9k5O0nZ2o - o6Oio6Ojn5+mmpqomJiqk5Oui4u1hoa4hYW2hYW4iIi2jo6yk5OxkpKxkZGykJC0k5Owm5unnZ2kl5er - kpKxjo6zioq3hYW+gYHDgIDDgIDChIS/h4e/iIjAiIjBhobBhobBkpK1oKCqpaWkn5+pmJixl5exlpav - kJCzi4u3h4e6goK+f3/CgYHEgYHFg4PEiYm9jIy5i4u6j4+0np6mpaWhn5+plZWzkpK1k5O0h4fCgYHG - gIDCgIDBgYHDg4PFhYXGhYXHhYXHhITHhobEkZG3n5+oo6OkpaWhn5+lkJC0goLDgoLAgoK/g4O+g4O8 - g4O6hIS9gYHDgoLFgoLGgYHIhYXDkpK0n5+lo6OjpqakoqKolpazjo69kJC6kJC3i4u4iYm4h4e5goK9 - gIDCf3/EhITBioq9kJC3lpaxlpazl5eyoaGop6ejoqKplpa2i4vAgoLIgYHGgoLEgIDCf3/Bf3/Bf3/B - gIDCgYHGiIjAkpK0mJiwmpquoaGloqKioqKjo6OkpKSlpKSlpKSlpaWlpaWlpaWlpaWlpaWlpqampqan - pqanpqanpaWmpaWmpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWlpaWlpaWlpqamIAClpaWlpaWlpaWj - o6OioqKioqKjo6OkpKSlpaampqempqempqelpaalpaWkpKSjo6Sjo6Sjo6Sjo6SioqKioqKjo6Kjo6Oj - o6Sjo6Sjo6Sjo6SkpKWlpaSioqeWlrSQkLuKisGFhcWDg8WDg8WFhcOFhcOKir2OjriTk7Cbm6ehoaGh - oaGhoaGgoKCgoKChoZ+fn6GUlK2Hh7+CgsWCgsSDg8SDg8SCgsSEhMSKir+QkLmVlbOcnKujo6alpaWl - paWkpKWioqOioqKhoaGgoKGcnKaUlK2Pj7KIiLiBgcODg8KEhMGJibqQkLOTk66YmKqenqOioqKjo6Oj - o6Sjo6Sjo6Sjo6Sjo6KamqqMjLuDg8WCgsWCgsWDg8WEhMWKisCNjbyNjbySkrWRkbOZmaqioqWlpaWk - pKWkpKWjo6OhoaKenqOUlK6MjLmMjLiJibuJibqJibqJibuKiriQkLGUlK+cnKienqagoKSioqKioqKh - oaGhoaGhoZ6ZmaiNjbaFhb6CgsWDg8SDg8SDg8WDg8WDg8WCgsaGhsCNjbWXl6mfn6GgoKCgoKChoaGe - nqWYmK2UlLKSkrKPj7OLi7mLi7uMjLyOjr2RkbmVlbOUlLOTk7KcnKWjo5+ioqKioqKioqOjo6KdnamV - lbGQkLaMjLmLi7qLi7qKiryGhsKDg8eEhMeGhsWPj7ybm66jo6SkpKOjo6SkpKWlpaWlpaWlpaWlpaWl - paWkpKSjo6Sjo6SkpKWlpaWlpaWlpaWlpaWjo6Sjo6WlpaWlpaWlpaWlpaWmpqSnp6OgoKmTk7aHh8KC - gsaBgcSAgMGBgcGGhr+Li7qLi7yMjLuSkrSZmaygoKaioqKioqOjo6Kjo6CcnKaQkLOHh7uIiLmGhriH - h7aMjK+Rka6SkrOSkrKSkrKSkrCTk66YmKqbm6eWlqyPj7SJibmJibmGhr2CgsGCgr+Cgr6Hh7qDg8GB - gceCgsaCgsaEhMSNjbmamqylpaShoaiYmLCZma+YmK+Wlq+OjreEhMF/f8N/f8GAgMOCgsKIiL2Li7qK - iruKiruLi7mXl6qioqGcnKuTk7eVlbSSkrWGhsOBgcWAgMKAgMGAgMKCgsSEhMWFhcaFhceEhMiHh8ST - k7WgoKekpKOkpKSioqSZmauNjbeOjrSLi7WIiLWGhreCgrt/f8OBgcKCgsOCgsWDg8SHh8CNjbiZmayh - oaSkpKOhoaicnK2ZmbGXl7OTk7aNjbqKiryFhb9/f8OBgcOCgsGHh7yKiruJib6IiMGIiMKRkbigoKmn - p6Kfn6uPj7yEhMiGhsSGhsOEhMKAgMF/f8F/f8F/f8GAgMSDg8WMjLuUlLGUlLOUlLSfn6ajo6KioqOj - o6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqelpaWmpqampqampqempqalpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaUgAKWlpaWlpaWlpaSkpaOjo6KioqKioqOjpKSkpaampqamp6amp6am - p6WlpaWlpaSkpaOjpKOjpKOjpKKioqKioqKioqKio6OjpKOjpKOjpKOjpKOjpKOjpJ2drI+Pu4qKwYWF - xYSEx4SExoWFwouLuoyMu4uLvImJvpCQtp2dp6GhoKGhoaGhoaGhoaGhoaGhn5+fopKSsIaGv4ODxIOD - xIODxIODxIKCwomJvIuLvIqKv5CQuZycqqGhpaWlpaWlpaWlpaSkpKKio6Kiop6eo5iYqZKSsYiIvIGB - xIODwYWFwYiIvY6OtpCQtI+PtZCQs5eXq5+foqKioaOjo6OjpKOjpKOjpKGhpZWVsYiIwYKCx4ODxYKC - xYODxIqKvo2NvIyMvY2NvI2NvJKStZ2dpaKioKOjpKSkpaSkpaSkpZ+fp5iYrJGRs4yMuoqKvIqKu4mJ - u4mJu4mJuYiIuoqKuJeXqJubpp+foqKioKKioqKioqKioqGhoaGhoJmZqYqKuoCAxYGBw4GBwoKCw4KC - xYKCxYKCxYKCxYODxYyMt5ubpaKinaCgoKCgoKGhn5mZq5OTspOTs5GRtomJvYqKvYqKvYqKv5CQupWV - tJSUtZSUtJqaraCgpKGhoKGhoaKioqKioqOjoZqarJCQuIyMvIyMuouLuYuLvIWFxIODxoWFxYeHw5CQ - u5ubrqSkpqWlo6OjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKSkpKWlpaWlpaWlpaWl - paSkpKSkpKWlpaWlpaWlpaWlpJ6eqpGRuIWFxIODxoSExYKCw4CAwYaGvIuLuYmJu4qKu5GRtZaWr56e - pqKioqGhpKKio6OjopycqY+PuImJv4qKu4mJuYiIuIyMro2Nq46Or5CQspCQs5GRs5OTsJWVrJeXq5WV - rZGRs4mJvIqKvImJuoqKuYmJt4aGtoaGuIGBwoCAw4GBxIKCxYWFw4yMvJWVspqaqKGho6OjpZ6eqJ6e - qZubro6OuoSExYGBxoCAwn9/wYCAwIiIuoqKuYiIvIiIvoiIvoeHv5KSsZ+fop+fpZmZrpiYr5OTtIeH - woGBxYCAw4CAwYCAwYGBw4ODxYSExYWFxoSEyIeHxZWVtqCgpqOjo6OjpKSko6OjpJycqpubqZOTrYqK - tYKCvn5+w39/wYCAwYGBw4GBxIiIvY+Pto6OtpSUsKCgpKOjoqOjo6WlpKSkpp2drI+PvIyMv4eHw4GB - xoGBw4KCwYmJuYSEwYCAx4GBxoKCxoSEw5GRt5+fqKamop+frJGRuY6OvY6OvY6OvImJv4KCwn9/wX9/ - wYCAwoKCxImJvYyMuYmJvIuLvJOTtZ+fp6Sko6OjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWl - paWlpaampqamp6amp6amp6WlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpSAApaWlpaWl - paWlpaWlpaWlo6OkoqKioqKioqKjpKSkpqampqanpqanpqanpaWmpaWlpKSkoqKioqKioqKioqKioqKi - oqKioqKio6Oko6Oko6OkpKSjoKCnlZWziIjBhITGhITGg4PGhobBiYm6iYm8i4u8i4u8jIy7kJC3mZms - oqKgoaGhoaGhoaGhoaGhoaGgnp6ikpKwi4u4hYXBgoLFg4PFhITDiYm6ioq7i4u7ioq9kZG3n5+oo6Ok - o6OkpKSlpaWlpaWlpaWkoaGjmpqsk5OxiYm9goLEg4PChobDi4u9hYXDg4PGgoLGg4PDjIy5mJiqoKCi - oaGgoaGhoqKjo6Oko6OkoaGllpayiYnBgoLGgoLEgYHCh4e6ioq4jIy5jY27jY28kZG3mJiwoKCloqKg - oaGhoqKkpKSlpaWknJytkpK2jIy6iYm8iYm9iYm9iYm9iYm7iIi6ioq4kZGwmJimnZ2hoKCgoaGhoaGh - oqKioqKio6Ohnp6lkZGyhobAgoLEgYHCgoLEgYHEgYHEgoLEgoLFg4PEj4+1l5etnZ2koaGfoKCgoKCg - oaGflZWskZGzkpK0j4+4ioq9hITEg4PFg4PHh4fDkJC6lZW0mZmvoKCnoqKjoqKhoaGhoaGhoqKio6Oh - nZ2olpawkJC2jY25iYm5hYXDhITGhITGh4fDjo67lJS0nJyuo6OnpqakpKSlo6Oko6Oko6OkpKSlpaWl - paWlpaWlpaWlpaWlpKSkoqKjoqKjpKSkpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6OjmJiuioq/goLI - hITFhITFiIi7h4e4h4e5iIi5iYm6iYm7ioq7ioq9j4+4lpavnJyooqKjo6OimJivjY27ioq+i4u8ioq6 - jo6wjY2tjY2sjo6ujo60ioq8ioq7iYm8j4+1l5ermpqmmJiri4u6ioq7ioq7iYm6iIi4hYW4f3/BgIDC - gYHCgIDDhITAi4u6i4u9kpK2mJiunp6ko6Oho6Onm5uuj4+7hobEgoLGgoLEgIDDf3/AhYW4iIi4iIi7 - hoa/hYXDhYXDhITEkZG2np6loaGfm5uklZWskZGxjIy4hIS/gYHCgYHBgIDBgYHCgoLEg4PFhITFhITG - hobGjo69mpqvoaGlo6OjpKSkoqKmmpquk5OzjIy4hIS+gIDCgIDBf3/BgIDBgIDDh4e7jIy1jo60lpat - mJiqn5+ioqKho6OioaGmm5uulZW1j4+8h4fFhITHg4PFg4PCh4e4goLAgYHDgoLEgYHFhITDk5OzmZms - oaGmpaWioKCplZW1kJC6kJC7j4+9h4fCgYHFgIDCf3/BgIDCiYm6hoa/goLFg4PFhYXEkpK2n5+npKSj - o6Oko6Oko6OkoqKjo6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpaWmpaWlpKSl - o6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlIAClpaWlpaWlpaWlpaWlpaWlpaWjo6SioqKioqKioqOkpKSl - paWmpqempqempqempqalpaWlpaWjo6SioqKioqKioqKioqKioqKioqKjo6Sjo6Sjo6Obm6uMjLuDg8aD - g8aCgseHh8KKiryJibqJibmKirqMjLuRkbaYmK6enqaioqKhoaGhoaGhoaGioqChoaGZmaqMjLeFhcGD - g8SCgsWEhMGJibqKiruLi7qJibyPj7WcnKmioqOjo6Sjo6Sjo6SkpKWlpaWlpaWkpKaWlrGIiL+Dg8WC - gsSFhcGLi7yFhcODg8WDg8WCgseGhsKSkrKfn6OhoaGhoaGhoaGhoaGioqKhoaWcnKuWlrOOjruKisCJ - ib2Hh7qKirmLi7mLi7mMjLiSkrWYmLCenqmioqWjo6OhoaGhoaGioqOioqiWlrSOjruLi7yHh76EhMKF - hcKDg8OGhr+NjbeTk6+ZmamdnaGdnZ+enp+goKChoaGhoaGioqKenqWUlLOIiMCDg8SDg8SBgcOBgcOB - gcSBgcSBgcWEhMKPj7SXl6ycnKWgoKGhoaCgoKCgoKCenqKYmKqRkbGNjbaJibyDg8SDg8WEhMWEhMWD - g8aIiMKWlrSfn6ikpKWkpKSjo6OioqGhoaGioqGdnaiWlrCRkbaOjrmLi7yDg8KDg8SDg8aGhsOOjrqU - lLSTk7Samq6jo6empqSlpaWlpaWjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWkpKWioqOioqKjo6Sl - paWlpaWlpaWlpaWkpKWjo6Sjo6SioqScnKqRkbiJicCKir6Kir6JibuIiLmHh7mIiLiIiLuDg8ODg8OD - g8WHh8GRkbabm6qhoaOioqKbm6qYmK6ZmayXl66Pj7OQkLGOjrCNjayLi7GIiLqJibqLi72Li72Kir6S - krOdnaOfn6GSkrKLi7qKiryLi7qIiLyBgcJ/f8GBgcOAgMWEhMCJibqJibqKirqLi72Pj7mamqyjo6Cf - n6SUlLWHh8SFhceDg8WFhb+Hh7mFhbiGhreHh7qGhsCFhcOEhMOEhMOJib+VlbKenqijo6GcnKWQkLGR - kbCOjraFhb6BgcKBgcKAgMGBgcKCgsSDg8WDg8aGhsSMjL2Njb6QkLucnK+ioqWjo6Kioqaamq+OjryF - hcOCgsSBgcKAgMGAgMF/f8KDg7uGhrmLi7eTk6+amqihoaGhoaChoaCjo6Cfn6aTk7KPj7qMjL2Li7+K - ir6JibuIiLuBgcCAgMKBgcKAgMWGhr+SkrKVlbSVlbOamq6hoaaioqSamq6Pj7yPj7yIiMSFhciEhMaB - gcWBgcKJibiFhcCEhMWEhMWDg8aEhMaMjL6amrCkpKelpaSjo6Sjo6Sjo6SioqOjo6Sjo6Sjo6Sjo6Sl - paWlpaWlpaWlpaWlpaWlpaWmpqempqempqelpaalpaWlpaWjo6SlpaWlpaWlpaWlpaWlpaWjo6QgAKWl - paWlpaSkpKSkpKWlpaWlpaWlpaOjo6KioqKioqOjo6SkpKWlpqamp6amp6amp6WlpqSkpKOjpKOjo6Ki - oqKioqKioqKioqKioqKio6Kio6Kio52dqJKSs4iIwImJv4mJv4qKvYqKu4qKu4mJu4mJuY+PtJiYrZ+f - pqKioqKioqKioqGhoaGhoKCgopiYrI2NuYWFxIKCxoGBxoSEwYiIu4qKuIuLuouLu42NuJiYq6KioKKi - oaKio6OjpKOjpKOjpKWlpKWlpaOjp5qar5GRt4mJvImJvomJv4WFwoODxYODxYKCxoSExoyMvJmZq6Gh - oaGhoKGhoaGhoaGhoKCgopubq5WVspKStJKStI+PtomJuoqKuoyMvIyMu42NuZCQtJaWrJ2dp6KipaOj - pKOjpKOjo6KioaGhoaCgppaWtI2NvYiIwYWFw4WFw4ODxIeHvomJu4qKu4+PtJqaqKCgoZ+fn56enp+f - n6CgoaGhoaKioJmZrIuLvoODx4ODxoODxYKCxYKCxIKCxYKCx4WFwY6Os5eXq52dpaCgoqGhoaGhoaCg - oZ2do5mZqZKSsI2NtYiIvIODxIODxYSExoSExoKCyIeHwpKStpqarqOjpaSkpaSkpaSkpKOjoqGhop2d - o5iYq5GRtY2NuoqKvoWFxIKCxIGBxYWFwY2NupOTtpWVs5mZr6Cgp6OjpKWlpKWlpaWlpaSkpaOjpKOj - pKOjpKWlpKWlpaWlpaWlpaOjpKOjpKOjpKOjo6KioqSkpKWlpaWlpaWlpaWlpaSkpaOjpKKipKOjpJqa - ro6OuoqKvYqKu4mJuoiIuYeHt4WFuYODwYKCxIKCxIGBxomJvZeXrqGhpKGho6KioqGho56eppmZq5OT - sJGRspCQsZCQsIuLs4aGuIaGuYmJuouLvYuLvo+PupOTtZiYrZqappGRsoqKuomJu4aGv4KCxICAw39/ - wn9/xIWFv4mJuomJuYmJuYmJuY6Ot5CQt5aWsJ+fpaGho5eXrYqKvomJv4qKvImJuomJuIeHuIaGuYSE - voWFwoSExYWFxIqKvpWVs56eqaCgpaKiop6eppGRs42NtoyMt4SEv4CAw4CAwn9/wYCAwYGBw4GBxYWF - womJvoiIwIiIwYeHxZKSuaCgqaSkoqGhpJ6eppaWrouLuYODw4CAxYCAw39/wYODu4WFuImJs4+PsJSU - rpWVrZiYqpubp5+fo6KioJ+fpJmZrJmZrJiYrZSUso+PtomJu4ODwn9/wX9/wX9/woGBw4SEwomJv4mJ - wYeHw5CQuJ6eqaWlop+fqJCQuIaGxYKCyIODyIKCyIODw4iIuYSEvYKCw4ODxYSExoWFxYuLwJGRuZmZ - saOjqKampKSkpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKSkpKWlpaWlpaWlpaWlpaWlpqWlpqWlpqWl - paWlpaWlpaSkpaOjpKOjpKSkpKSkpKSkpKOjpCAApaWlpaWlpKSko6OkpKSkpaWlpaWlpKSlo6OkoqKi - oqKioqKjpKSkpaWmpaWmpaWmpKSlo6Oko6Oko6Oko6Ojo6OioqKioqKioqKioqKio6OhoKCkm5urk5Oz - jIy9jIy9jIy9i4u8ioq8i4u8i4u5kJCzkpKvl5epn5+kpKSioqKioqKioqKio6Ogn5+ik5OviIi+h4e/ - h4e+h4e+ioq7ioq6hYXBhobAhITDjIy5m5uno6OeoaGhoaGio6Oko6Oko6Oko6OkoqKmnZ2tmJizkpK5 - jo66ioq9hYXDgoLGg4PFg4PGg4PFjIy7mZmtoaGloqKioaGhoaGhoaGhoqKgn5+jkpKykZGzkpKykJC0 - jIy4ioq6ioq7i4u7jo66kpK0lpavl5ernJyjoqKjo6Oko6Oko6Oko6OjoKCinJymkZG2iYnBhobFhITG - hITFiIjAjIy7jIy6iYm+jIy6mpqooaGhoaGgn5+fnp6en5+eoKChnp6ll5evjY26iYm+hobBg4PFg4PF - goLGgoLHhYXEjIy6lZWtmZmln5+goaGgoaGhoaGhoaGhnJylkZGxjIy2h4e8g4PEg4PIhITGhITGg4PH - iYnBk5O2mpqtn5+npKSkpKSlpKSlpKSlpKSkoqKklpatkJCzjY24iYm+hITDg4PHg4PGh4fBjY24kZGy - kpKzlJSyoKCmpKSko6Oko6OkpKSkpaWlpaWlpKSlo6Oko6Oko6OkpKSkpaWlpaWlpKSlo6Oko6Oko6Ok - o6OjoqKjo6OlpaWlpaWlpaWlpaWlpKSlo6OkpKSjmpqtkJC5j4+6i4u7iYm6iIi4hIS6gYG/gYHEgoLE - goLDgIDGiYm9mZmro6OhoqKjoqKipKSfm5uqkZG1kJC1kZGykZGxjY20iIi5hoa5h4e4iYm6i4u8i4u+ - kJC4lpaxmZmsmZmrlZWti4u5iIi8hoa+hYXAhoa9hIS8hIS7h4e5iYm4iYm5iYm5iYm5jIy3jY25kZG3 - m5uso6Ohn5+llZWukpKzjo64ioq7iIi6h4e6g4O+g4PAhITDhobDi4u+k5O2nJyrn5+ooqKkpKShoKCk - mJiujY26hYXAgoLEgYHDgIDBf3/Bf3/Bf3/DhIS/h4e9h4e/hITDhITEjIy9lpa0o6OppqakoKCnnJyo - mJirjo60iYm7h4e9hIS9hIS7hYW2hoa3ioq0i4u3ioq9ioq8iIi/kpK0n5+mo6OgoaGhoKCknZ2nmZmq - k5Ozi4u9g4PEf3/Gfn7Df3/BgIDBgYHBgYHDgoLGg4PHhobDjo67nZ2rpqahoaGmlpayjY28jIy9jY28 - jIy8iIi8hIS9gIDCgYHEg4PFg4PHh4fEk5O2mpqwoaGppaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Ok - o6Oko6Oko6OkpaWlpqampqampqampaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlpKSlo6Oko6Oko6Oko6Ok - IAClpaWlpaWlpaSjo6Sjo6SkpKWlpaWlpaWlpaWjo6SioqKioqKioqSjo6SkpKWkpKWkpKWjo6Sjo6Sj - o6Sjo6Sjo6SioqOioqKioqKioqKjo6CcnKmRkbWNjbuLi72KiryKiryLi7yLi72MjLuRkbSVla+Skq+X - l6aenqCioqGioqKioqKioqKhoaKcnKeTk6+MjLaLi7iJibmKiriJibuGhsGCgsaCgsaEhMKOjrebm6ij - o5+hoaGhoaGhoaKioqOjo6Sjo6Ofn6iUlLWQkLqNjb2Kir+FhcOCgsaDg8WDg8aFhcWNjbqXl66fn6aj - o6KioqOhoaKhoaGhoaGioqChoaGUlK6SkrCQkLOLi7iJibyKiruJibuNjbiRkbOVla+YmK2bm6menqKg - oKCioqKjo6Sjo6SioqWcnKqTk7KIiL6FhcSFhcaGhsSIiMGJicCIiMGHh8KJicCSkrSenqShoaGhoaGh - oaGfn5+fn52enp+WlquSkrOPj7aLi7yGhsKDg8WDg8WGhsKIiMGJib+OjrmVla+Zmaefn6ChoaChoaGh - oaGgoKKamqiMjLaHh72CgsOCgsaEhMaEhMaEhMaFhcWPj7qXl7Gamq2hoaajo6SkpKWkpKWkpKWkpKSi - oqaYmLCOjriIiL6EhMODg8aFhcWIiMGLi7yQkLaQkLSPj7aWlrGjo6Kjo6Sjo6Sjo6Sjo6SkpKWlpaWl - paWkpKSjo6Sjo6Sjo6SkpKWkpKWkpKWjo6Sjo6Sjo6Sjo6SioqOioqOjo6SlpaWlpaWlpaWlpaWkpKSi - oqOXl6+OjrmOjrqLi7yLi7uGhryBgcB/f8KAgMKCgsOBgcSGhsGQkLacnKijo5+ioqCioqKkpKCamquU - lLKVlbCSkrKPj7WIiLmHh7qHh7iGhriJibqLi7uLi7+Tk7Wbm6ydnamenqaenqWQkLSLi7iMjLaLi7eI - iLmHh7eGhrWGhraIiLiJibmKirmLi7mKirqMjLqRkbWbm6ukpKGjo6KcnKiSkrKLi7qJibyIiL2Fhb+C - gsKBgcKEhMCKir2Pj7qSkriVlbSTk7acnK6ioqWioqKenqaQkLeFhcGEhMGDg8KAgMSAgMJ/f8KCgr6G - hruGhr6EhMOFhcCLi7qTk7OZma6hoailpaWhoamWlrKSkrWOjreMjLeLi7eIiLiGhreFhbeHh7WFhbmD - g8GDg8aDg8aIiMCTk7SgoKejo6GhoaGgoKGWlq2RkbWOjrqJicCGhsKGhr+IiLiAgMB/f8GBgcGBgcOC - gsOGhsCOjrqTk7WenqqlpaKioqWenqmZma6VlbKVlbKQkLWGhr9/f8SAgMGBgcOCgsWEhMWMjL2Xl7Ka - mq+ioqimpqSmpqSlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaampqempqempqelpaalpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaSjo6Sjo6Sjo6QgAKWlpaWlpaWlpaWlpaSkpKOjpKSkpaWlpaWl - paWlpaOjpKKioqKio6OjpKSkpaSkpaSkpaSkpaOjpKOjpKOjpKOjpKOjpKKio6KioqKioqOjoZqaq4+P - uIuLvIqKvYmJvImJu4qKu4qKvIuLu5GRtJSUsJWVr5ycpKCgnaCgoKKioqKioqOjoZ6epZeXrpOTs5CQ - tIqKuYqKuoqKvIaGwoODx4SExYaGw46OuJSUsJ2dpqKioKGhoaGhoaGhoaKioqOjoqOjo52dqpCQuIqK - vouLvIaGwoGBx4ODxYODxYWFxImJv5SUs5qaq5ycqKKioqKio6Kio6GhoqGhoaGhoZ6epJiYqpKSsouL - uYiIu4mJuomJuouLt5CQtZSUr5WVr5eXrJ+fpaOjop+fn6CgoKKio6SkpKGhp5aWsoeHwYODxIODxIWF - woiIwIqKv4SExYODxoKCx4uLvZqaq6SkoaGhoqGhoaGhoaGhoaCgn5uboY6OsYyMuIqKvYWFxIKCxoOD - xYODxYmJv4qKv4qKv46OuZeXrpycqJ+foKCgn6GhoaKioaCgopiYqouLuoKCxIGBxoKCxIODxYSExoWF - xYyMvpKSt5eXsZycq6KipaOjpKOjpKSkpaWlpaOjpp6eq5eXso6Ou4eHwYSExYSExoWFxIqKvomJv4mJ - voqKv4+PupmZrqKio6Kio6OjpKOjpKOjpKOjpKSkpaWlpaWlpaSkpKOjpKOjpKOjpKKio6OjpKOjpKOj - pKOjpKOjpKOjpKKioqKioqOjpKSkpaSkpaSkpaOjpKKio5mZrI6OuYqKvouLvYqKvoODwn9/woCAwYCA - wYKCwoWFwpGRt5iYr5ycrJ+fp5+fpaGho6KioZ+fppubqpiYrZCQtoqKvIiIuoiIuYaGuIWFt4iIuYuL - u4yMvJaWspycrJ6eqqGhpaGhpZeXrZSUr5SUrY+PsYiIuIeHuIWFtoaGtoiIuIuLuY2NuY2Nuo6OuZGR - tZaWr52dqKKio6Kio5qarI6OuoqKvYuLuYqKu4WFwISEv4KCv4eHu4yMuYyMvIyMvouLwIuLwJWVt56e - q6Ojo6Kio5WVsI6OuI2Nt4iIvYODw4ODwIKCv4aGuYSEvYSEwYWFwYiIvZCQs5CQtpGRtZmZrqOjpqOj - p5eXs4+PuIyMu4qKu4mJu4iIuYaGuIaGt4aGuIGBvoGBw4WFwoqKvpaWr5ubqp+fpqGhpKOjoqCgo5SU - r42NuoyMvI2Nu4+PuZCQto2Ns4KCv39/woCAwoKCwoWFvouLtpSUsJycqqGhpaSkpKOjpKKipJmZrJOT - spKStIqKvH9/xoGBw4GBwoGBw4KCwoaGwIyMvJCQuY+Pu5WVtZ+fq6WlpaWlpaWlpaWlpaSkpKOjpKOj - pKOjpKOjpKOjpKSkpKWlpaamp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSk - pKOjpCAApaWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpaWlpaWlpKSlo6OkoqKioqKjo6OkpKSlpKSlpKSl - pKSlo6Oko6Oko6Oko6Oko6OkoqKioaGjn5+lnJynl5etj4+3iYm9iIi+h4e+h4e9iYm8ioq9i4u7lZWx - m5unoKCioKCfnp6eoKCgoqKioaGinZ2nl5eukJC2ioq7iYm6ioq8h4fEhYXHhYXGhobFjo6+lJSzm5uo - oKCioaGhoaGhoaGhoaGhoaGhoaGioKCmmpqtkpK2jY29i4u8hobAg4PFhITEhYXDioq9i4u9jo65lpax - nZ2noaGhoqKjoqKjoqKjoqKhn5+jlparj4+zioq6iYm7iYm7iYm8ioq6kZGxkZGxkZGyk5OwmZmqn5+l - oqKioqKioKCgoKCfoqKinp6pkJC2hobEhYXEhYXDiIjAiorAhITHhYXGhYXGiYnBlJSzn5+loqKjoqKj - oaGhoaGhoqKhoKChmZmni4u1iIi6g4PDgoLGg4PFg4PFg4PEg4PGg4PGiIjAk5O0np6noaGioaGhn5+f - n5+foaGgn5+imJiqjIy4hYXCg4PEg4PDhITEhobDjIy9kpK2lZWzm5utoqKlo6Oko6Oko6Oko6OkpKSj - oKCol5ezkZG5jY28jIy9h4fCgoLGg4PFhITGg4PGg4PGh4fCkpK2np6po6OkoqKjoqKjo6Oko6Oko6Ok - o6OkpaWlpaWlpaWlpKSlo6Oko6OkoqKio6Ojo6Oko6Oko6Oko6Oko6Oko6OkoqKjoqKjo6Oko6Oko6Ok - o6OkpKSjnZ2qkpK1jY27i4u9hYXFgoLFgIDCgIDBgYHBhITAkJC1lJS1lJS3k5O5k5O5mJi0nZ2poqKi - oaGkmZmskJC2jIy7i4u9ioq7iIi5hoa3hYW2h4e4iIi7jo62kJC4lJS0mpqumpqvmpqsm5upmpqol5er - kZGwi4u1iIi4hoa2hoa2iIi4i4u6jY28jIy9kZG4kJC2kZG1l5evnp6moqKjl5evkJC2jo64jo63jIy4 - iYm6iYm4h4e2iIi3ioq6jY29jY2+jo69lZW1mpqwoKCrpaWloqKknJyolZWxkpK0jY24iYm8ioq6h4e5 - g4O8goK+hIS+h4e9ioq7iIi/iIi+hYXCj4+4n5+opaWlnZ2sl5eyjo66ioq9iYm7iYm5iIi4hYW5goK+ - gYHBg4PCiYm+k5Oym5uqmpqqmZmrnp6no6OioqKjnJyoj4+1jY26jo65j4+3jo64gYHFgYHCgYHBgYHC - hoa/jo62kpKwmJiqn5+koqKko6Olo6OkoaGmlJS1kpK1jo64h4fAgoLGgYHDgYHCgIDChoa8h4e/goLH - g4PGhYXGiorAlpa0oqKopqakpaWlpaWlpaWlpKSko6Oko6Oko6Oko6OkpaWlpaWlpqampqanpqanpqan - pqanpaWmpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6OkIAClpaWlpaWkpKWioqOioqKioqKjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6SioqKioqKioqSjo6SkpKWkpKWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sfn6afn6Wa - mqiQkLOIiL+Jib6Dg8SDg8WDg8WCgsWEhMKNjbmYmKugoKKioqChoaGgoKCenp6goKCdnaaXl66QkLeL - i7yKirqLi7yGhsOFhceGhseGhseHh8aNjb6amrChoaSioqChoaGhoaGhoaGhoaGioqCdnaWamqmamquR - kbWMjLyJibyJibuJibuJibuJibyKir2Jib+Tk7SenqiioqOioqOhoaGioqOioqOjo6KgoKSXl6uKiruJ - ibuKiryKiryKiryLi7yKirqQkLKSkq+Xl6qenqOioqGioqKioqKioqKgoKCgoKCdnaiQkLaLi7yLi76L - i7uHh7+EhMaFhcWFhcaKisGQkLqbm6ykpKGioqOioqOioqOhoaKhoaChoaGbm6eNjbWCgsGAgMSBgcSD - g8WFhcWFhcWEhMaJicCRkbeYmK6enqeioqOhoaGhoaGfn6CenqCenqKZmamTk7CMjLmJibyJibyJibuK - iruRkbWTk7WVlbSbm62hoaajo6Sjo6Sjo6Sjo6SioqSenqmYmLCUlLWOjryGhsSDg8eEhMaEhMaFhcaE - hMaJicGPj7uYmLCjo6Sjo6Sjo6SioqOioqOioqOjo6Sjo6Sjo6Slpaampqempqempqempqejo6SioqKj - o6Ojo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKOgoKeZma6SkrWLi72FhcSDg8SCgsKA - gMKCgr+NjbKSkrGOjrqMjL6Njb6Njb6SkrmgoKyjo6ShoaSWlq+Li7yMjLyKiruKiruIiLmGhreGhreH - h7qBgcOCgsWCgsaHh8GNjbyOjrqVlbKdnaiamquSkrOMjLiJibmJibmGhraGhrWJibaLi7mJib+FhcaF - hcaFhceGhsWPj7ycnK2ioqOenqaXl62Tk7GPj7eJib2JibuJibqIiLiGhreHh7iKirqNjbyUlLaZmbGg - oKqlpaWlpaWlpaWjo6SVlbGMjLuKir6KiryIiLyFhcGCgr2Dg7+Hh7yKirqIiL6FhcKFhcKDg8SMjLub - m6ujo6KgoKWamqyUlLKOjrmLi72Li7qIiLqDg8GBgb+BgcGFhb+Li7uMjLuSkrSTk7OYmK2fn6Wjo6Ki - oqOioqOWlrCSkrKTk6+NjbeCgsWCgsOBgcKAgMKFhb6OjreTk7GTk7OTk7OSkrSWlq+enqekpKOioqWW - lrKPj7uLi76GhsGBgcSBgcOAgMGCgr6BgcGCgsSEhMaGhsSLi76Tk7eZmbChoaimpqSlpaWlpaWlpaWl - paWkpKWjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaampqempqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaUgAKOjpKKioqKioqKioqKioqKioqKioqOjpKOjpKOjpKOjpKOjpKOjpKKioqKioqKioqKi - o6OjpKSkpaSkpaSkpaSkpaOjpKOjpKOjpKCgppycqZGRtoiIvoiIvoSExIODxYODxYKCx4SExI2NuZiY - q56epaGhoaGhoaGhoaGhoaGhoZ6enpycopCQsoiIvIqKu4uLvYaGxIWFxoWFxoWFyIeHx46OvpubsaKi - qKWlpaSko6GhoaGhoaGhoaGhoaKioJ6epJeXrJOTsZKSsoqKvomJwIiIvoiIvImJu4mJu4iIvpOTsp2d - qKKio6Kio6Kio6Kio6GhoaKioaCgpZiYro+PuIqKu4qKu4uLvIyMvYyMvYyMvYqKvI+PtJeXqZmZpZyc - pKKioaGhoaKioqKioqOjoZ+fopSUq4mJvIqKu4yMuoeHv4ODxYSExoaGxYqKv4yMv5CQupycraWlo6Ki - o6Kio6Kio6Kio6Ghop2do5iYqpGRsomJuoiIuYWFvoKCxYSExYWFxoqKv4uLvZSUs56epqKio6Kio6Ki - o6GhoqKioJ+fopiYp5KSr4uLuImJu4mJu4mJu4mJvIqKu4uLuomJvpOTtZ+fqKSko6OjpKOjpKOjpKOj - pKKipJ+fqJiYsI2Nu4eHxIWFxoSExoODxYWFxYWFxoqKwY+PupeXsqCgqaWlpKOjpKOjpKOjpKKio6Ki - o6OjpKOjpKWlpaamp6amp6amp6amp6amp6amp6SkpaKioqKio6OjpKOjpKOjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKSko5+fqZGRt4SEw4KCxIGBw39/xIODvIuLsImJtIuLuIuLuouLvY2NvpKSuZ2drqSk - p6ampqSko56epZOTsImJvYmJuYmJuoiIuYeHtoWFuYGBwoGBxIKCxYKCxoeHwYyMvY2NvZOTtp+fqJWV - soyMvIuLvImJu4iIuYaGtoeHtIiItYWFvIKCxIODxYSExoWFxYODx4qKwZqasKSkpKKio5ycppCQtImJ - vYqKvIqKvIqKuYqKt4SEvYGBwoODw4SEw5KStZaWtJaWtZmZsZ+fqqSkpaWlpZeXso2Nu4qKvouLvomJ - v4eHvYSEu4aGuYeHuYaGvoWFxISExYWFxYODx4qKv5mZraOjoKGho5WVso2Nu4yMvYyMvYmJvoKCwYGB - wYCAwYSEvIiIuIqKuouLvIuLvJGRtpiYraCgpaSkoqKio6Kio5ycqpSUsJCQs4+PtY2Nt4iIu4iIu4aG - u42NtZKStIyMvYeHxIaGxIWFxYqKv5aWsKGhpaOjpJqarY6Ou4aGxIODxoODxYKCxIKCv4CAwICAwYKC - xIaGxY2NvZWVtZaWtJaWtJqasKGhqKampaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSkpaWlpaWl - paamp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpSAAo6OkoqKjoqKjo6Ojo6OjoqKi - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OjoqKioqKioqKioqKjo6OkpKSlpKSlpKSlpKSlo6OkoqKlnp6p - kZG3iYm/h4fBg4PEg4PFg4PFgoLHhYXCjY25lJSwmpqonp6joaGhoaGhoaGhoaGhoaGhnZ2jlpapjo6w - jY2yj4+0jIy+hYXHhYXHhITJhYXFj4+7nJywnp6upKSnpaWlpaWlo6OjoaGhoaGhoaGhoqKgnp6kl5er - kZG0i4u8iIi+iIi/iIi9iIi8iYm8iYm7j4+0lpatnZ2koqKioqKjoqKjoqKjoqKioaGhmZmsj4+6i4u+ - i4u9ioq7i4u8jIy9jIy9jIy9i4u+j4+3l5epnZ2in5+gn5+foaGhoaGhoqKhoKCkmpqrkpKyjo60ioq5 - hYW/gYHDgYHFhITEioq+jIy9j4+6lZW0n5+rpaWko6OkoqKjoqKjo6Oin5+mmJiskpKvkpKxjY23hoa+ - goLCgoLEhITDioq/jIy9ioq+k5O0oKClo6OhoqKjoqKjo6OioaGjmpqpkZGxiYm6iIi8iIi9iIi9ioq7 - ioq7ioq7iYm8jIy4mZmro6Ojo6Oko6Oko6Oko6Oko6OkoKCmmJiujo66hobEhITGhITGg4PEgoLEhITE - ioq/j4+6l5eyn5+qpKSlpKSlpKSlo6Oko6Oko6Oko6OkoqKjo6OkpaWlpaWmpqanpqanpqanpqanpqan - pqano6OkoqKioqKio6OkpKSlpKSmpKSlpKSlpKSlo6Oko6Oko6Oko6OkpKSjn5+ok5O1jIy8ioq7iYm6 - iYm2iYmziIizhoa3iYm6iYm7i4u7kpK1m5utnp6soKCrpKSnpaWlpKSjnJynjIy2iIi6iYm6ioq4hoa7 - gIDAgIDCgYHEg4PFgoLGhobBjY26kZG2mZmwoaGmm5urk5O1kJC4kJC2j4+0j4+xiYmzg4O7gIDBgIDD - gYHEg4PFg4PHi4vAlJS3mZmwoqKnpKSkn5+lkJC0iIi+i4u8jIy7jY25hYW+gYHBf3/DgoLDiIi8jIy5 - jY27jIy/lJS4oKCqpaWkpaWlmJiyjo67ioq+iYm+iYm/iYm/iIi7h4e5hYW9hITChITFhITFgoLIioq/ - kZG3l5evoKCkoqKjlpavj4+6i4u+ioq+ioq9h4e+hYW7hIS5hoa4iIi4iYm6ioq7kJC2k5OzlZWympqs - oKCkoqKioqKjoqKklpawkJC3kZG0kJCzj4+zj4+yjo6ujo6wioq7hITGhITHhITHhITIhYXGjY27m5uq - oqKin5+mk5O1ioq/iYnAiYnAhITCgoLCgYHBf3/Cg4PBjY26lJS1i4u/iYnBh4fDjo68nZ2tpqakpaWl - paWlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6OkpKSkpaWlpaWmpqanpqanpqanpqanpqampaWlpaWlpaWl - paWlpaWlpaWlpaWlIACkpKWkpKWkpKWkpKWjo6SioqOioqOkpKWkpKWkpKWkpKWjo6Sjo6Sjo6Sjo6Oj - o6KioqKioqKioqOjo6SkpKWkpKWkpKWjo6WcnKqRkbiKisCHh8KEhMSCgsaCgsWDg8aGhsKJib6OjrmU - lLGZmaqfn6KhoaGhoaGhoaGhoaGhoaCdnaSWlqyQkK6OjrCLi7mFhcOEhMaDg8iGhsaNjb6UlLWbm7Cd - na+lpainp6ampqalpaWjo6OhoaGhoaGhoaCdnaSUlLCKiryHh7+Hh72IiLyJibyJibyJibyKiryMjLeV - la2enqSioqChoaKioqOioqOioqOhoaKWlq+Li7yNjbqMjLyLi7uMjLyMjL2MjL6Li76Pj7mVlbGcnKag - oJ+goJ+fn5+goKChoaGjo6Cfn6SYmK2UlLKSkrCLi7iHh76Hh7+Hh8CIiL+Li7uKir6UlLSenqqjo6Wk - pKWkpKWjo6SioqOjo6GcnKqTk7SSkrOTk7CJib2Dg8WCgsSCgsSDg8SLi7uMjLyOjruZmbCjo6Sjo6Ki - oqKioqOgoKWamquUlLGRkbOOjraNjbWOjrWMjLqKiryKiruKiruLi7yOjrWcnKakpKCjo6Ojo6Sjo6Sj - o6SkpKOdnaqPj7mFhcaDg8iDg8eDg8WCgsSDg8GIiL6MjLyWlrKfn6mkpKWlpaWkpKWlpaWkpKWkpKWk - pKWkpKWkpKSioqOkpKSlpaWlpaalpaempqempqempqempqempqekpKWioqOjo6SlpaWlpaalpaalpaal - paakpKWjo6Sjo6Sjo6SkpKOgoKeVlbKQkLiQkLiQkLWNjbOJibSFhbaGhraIiLiLi7iPj7aUlLKXl6+X - l7CXl7Ojo6inp6WlpaWgoKiUlLCPj7SLi7iHh7yCgsGAgMOAgMKBgcSCgsWCgseGhsKOjrmUlLKcnKuj - o6WgoKaZma6UlLSTk7STk7KPj7SFhbt/f8F/f8KAgMGBgcKBgcWEhMORkbmcnK6fn6ugoKmkpKWenqmT - k7SPj7iPj7aLi7uHh7+BgcR+fsSBgcCHh7uJibmJibuJibuOjrmVlbWcnK6hoailpaWbm7CNjb6Hh8KI - iMCJib+Jib2JibuFhbyCgsCCgsODg8WDg8aKir2RkbWYmK+bm6yenqijo6Obm6eZmaqUlLGNjbqKiryK - irqIiLiGhraGhraGhriIiLiOjrWSkrKTk7KTk7OTk7OZmayjo6GioqKjo6OWlrGQkLeRkbWQkLSSkrGT - k62Ojq6Hh7eBgcKBgcaDg8WEhMaDg8eFhcaPj7ucnKuioqGjo6KXl7COjruKir+IiMGGhsSCgsWBgcSB - gb6Hh7iMjLmKir6Dg8eDg8eBgcmHh8OYmLKjo6WkpKWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sj - o6SkpKSlpaWlpaampqempqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaUgAKWlpaWlpaWlpaWlpaWl - paSkpaKio6SkpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKKio6KioqKio6Kio6OjpKOjpKSkpKKipZiY - rYuLvoaGwoSExYODx4ODxoKCxYaGwouLvYyMuo+PtpaWrpycp6GhoaGhoaGhoaGhoaGhoZ+fo52dpZiY - rJSUroyMtoKCwoGBxoKCxoaGxI6OvZSUtpSUtpaWtaGhqqamp6amp6amp6WlpqWlpaOjo6Kiop6eo5WV - rYuLuoaGwIiIvoiIvYmJu4mJvImJvIqKu4qKu4uLuJiYqaCgoaGhoKGhoaKioqKio6Kio5+fppaWsI6O - uY2NuoiIvoeHwYiIwIeHwomJwJGRuJiYsJubrKGhpaKioKCgoKCgoJ+fn6CgoJ+fopubqJeXrpSUspCQ - t4mJvoiIwImJwIqKvoyMvIuLvIuLvJeXr6KipKWlo6SkpaSkpaSkpaOjpKSkopycqpaWspeXr5GRtoSE - w4KCxoKCxYODxIaGv4mJu42NuZOTtJ6eqqWlo6OjpKKio6OjoZ2dp5aWsZKStZOTs5KStJCQs5CQs4yM - uImJvIqKu4qKu42Nt5KSsZ2dpqKin6KioaOjo6OjpKOjpKKipJubq4+PuYaGxIeHwoiIwYSEw4GBxYOD - w4iIv4yMvZqar6OjpaSko6OjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaampaampqam - p6amp6amp6amp6WlpqOjpKOjpKSkpaWlpaWlpqWlpqWlpqWlpqSkpaOjpKOjpKSko6GhppmZr5OTtZOT - tZGRt4yMuYiIuYeHuIaGtoeHuIqKt46Oto+Pt4+PuI6OuI+Pup2drqWlpqWlp6Ghq5iYsJCQtYiIvYKC - xICAxYGBw4CAwoGBwoCAxISEw4iIwI2NupWVsZycqaSkoqGhpZmZrZSUs5OTtZCQt4iIvoGBxH9/w39/ - wYCAwoCAw4ODv4aGvZGRtJ2dq5+fqp6eq6SkpaCgqJmZrpSUs4+PuIeHwIODxYGBxYGBwYaGu4qKuImJ - uoyMu4eHwIuLvYyMvI+Pu5ubsKWlpaCgqpSUtoyMvoqKv4qKvYqKu4eHvoKCwH9/wYCAwoKCwoeHwI+P - t5aWsJubqp6ep6GhpqOjpKCgpJ+fopaWro2NuouLvIuLu4mJuYiIuIWFuIaGt4uLso+PsJGRspOTs5OT - tJKStZiYrqGhoqKioqOjopiYr5KStpOTtJOTspOTsI6OsYiIuYGBwX5+woGBwoODxYSEx4WFxo6OvJqa - sKGhqKGhpaOjoZiYroyMvYaGxIWFxYWFxYaGwIWFwIaGuIeHtoODv4CAx4ODxoKCx4aGxI6OvZmZsaKi - p6SkpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKSkpaWlpaampqamp6amp6amp6amp6Wl - pqWlpaWlpaWlpaWlpaWlpSAApaWlpaWlpaWlpaWlpaWlpaWlpKSkpKSlpaWlpaWlpaWlpaWlpKSko6Ok - o6Oko6Oko6OkoqKjoqKioqKioaGioaGioaGjnp6mmZmtjY28hYXEgoLFhITEhYXDhYXBioq6iYm8jo63 - l5etnZ2moKCioaGhoaGhoaGhoaGhoKCinZ2mm5uol5etkZG0hoa+f3/FgYHEhYXCiYm+kZG3lZW1lZW2 - mZmypaWkpaWlpqanpqanpqanpaWmpaWloKCnlpauioq7hYXBiIi+iIi9iYm7iYm7iIi8iIi9iYm9ioq8 - kpKxn5+ioaGeoKChoaGhoaGhoqKinp6nmJivkpK1jY26iIi/g4PDg4PGg4PGg4PHiYm/lpaxmpqtm5uu - oaGno6OioaGhoKCgoKCgoKCem5uklZWukpK0j4+3iIjAg4PGgoLGgoLHhobCjIy8i4u9jIy8lpauoKCk - o6Ojo6OkpKSlpKSlpKSlpKSjoKCmmpqrlZWxiIi/g4PFgoLGg4PFh4fAi4u6ioq6j4+1l5etn5+mpKSj - o6Oko6OkpKSinp6nl5evk5O0kJC3ioq9ioq9h4e9h4e7ioq6ioq8i4u6k5OvmpqooKCioaGgoaGhoqKi - o6Oko6Oknp6omJivkZG3jY29jY28i4u9hITCgYHGhITGh4fEjIy/mpqwpKSnpaWko6OkpKSlpKSlpaWl - paWlpaWlpaWlpaWlpaWlpKSko6Oko6OlpKSlpaWlpqampqanpqanpqanpqanpqanpKSlo6OkpKSlpaWl - paWlpaWmpaWmpaWmpKSlo6Oko6OkoqKln5+omZmuk5O1jo68jIy9i4u5iYm3hoa3hoa3iIi4ioq7ioq9 - i4u9i4u9ioq+lpayoaGopqalo6OqmZmzjY2+g4PFgIDFgYHDgYHDgIDCf3/BgYHBh4e8jIy5j4+3lJSy - mZmsnp6mn5+mm5urlpaykJC5iIjAg4PGgYHFgIDCf3/BgYHCg4PAiIi6ioq2k5Otm5upm5uum5uuo6Om - pKSknp6pkpK2hobDg4PGhITFhITDh4e7iIi3iYm5ioq7ioq/hITGgoLIgYHJh4fDl5ezpaWlpKSmoKCq - lJS3jIzAjY29i4u8hITCgIDDgIDBgIDCgoLBiYm9h4fAkpKznZ2ooqKkpKSjo6OkpaWknJyoj4+2iYm+ - ioq8ioq8iYm6h4e5h4e3i4uxj4+tj4+xkpK0lJS0lJS1mJiynJyrn5+loqKio6OhmpqrlZWxlpawlZWx - kJC1h4e7gYHCf3/Df3/BgIDDgYHFhobFjIy+mJiyoKCqn5+rnZ2soqKknJypjY26hYXDh4fAiIjAi4u7 - i4u3h4e4goK+gIDDgYHEgYHFhYXDj4+6mJiznJytoaGopKSlpKSlpaWlpaWlpaWlpKSlpKSlpKSkpKSk - pKSkpKSko6Oko6OkpKSlpaWlpqalpqampqanpqanpqanpaWmpaWlpaWlpaWlpaWlIAClpaWlpaWlpaWl - paWlpaWlpaWlpaWjo6SkpKWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6SioqKhoaGgoKChoZ+enqOW - lq6QkLeFhcKEhMOFhcKIiL+Li7qKirmJibuJibyRkbObm6ifn6OhoaGhoaGhoaGhoaGhoaGgoKKbm6iV - la+RkbOFhcJ/f8eCgsSDg8KLi7qLi7uQkLaUlLSZmbKhoamlpaWkpKWlpaampqempqempqelpaaamrGM - jL2Hh8CIiL2Hh7uJibqJibmKirmIiLyHh7+Hh7+KiryVla6fn6OhoaCgoKCgoKChoaGhoaCamqySkrWN - jbuIiMCCgsSDg8WEhMWEhMWJicGPj7mRkbWSkraamq6hoaakpKSioqOhoaGgoKCgoKCcnKOWlqyOjreG - hsCCgsWBgcSBgcSCgsWHh8GMjLyLi72MjLyXl66fn6OioqGjo6Sjo6SkpKWkpKWlpaWfn6iTk7SHh8GD - g8aEhMWDg8aIiMKLi72MjLyRkbSVla6bm6WhoaGjo6Ojo6Sjo6Sjo6ScnKiVlbCPj7iJib6Dg8aCgsWA - gMWEhL+JibuIiL2Li7qXl6qgoKGioqChoaGhoaGhoaGioqKdnaiXl7CQkLeMjLyMjL2Li76Dg8WCgsaD - g8WIiMKPj72Pj7ybm6+kpKampqSkpKWjo6SkpKWkpKWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6SkpKSl - paWlpaWmpqempqempqempqempqempqejo6Sjo6SkpKWlpaWlpaWlpaalpaalpaakpKWjo6Sjo6SioqWd - naqPj7qNjbyOjrqOjreMjLSIiLiGhraIiLiKirqLi7uMjLyMjLyNjbqXl6+goKakpKSkpKecnK+QkL2F - hcSCgsaCgsWBgcOAgMKAgMCHh7mJibmNjbeSkrWQkLaPj7eSkrOamqqfn6aYmK+JicCDg8eCgsaBgcSA - gMKAgMGDg7+IiLiKireUlKqYmKWYmKmamquenqyjo6ampqOdnayNjb6Dg8eFhcSFhcWJibyJibmHh7mI - iLmJib2Dg8eEhMeEhMaDg8eIiMGUlLKkpKampqSioqiXl7SOjr6Njb6Li7yFhcKCgsGBgcCAgMGDg8OF - hcaEhMaOjrudnaukpKOioqWjo6SkpKOamq6RkbaMjLiJibmKirmKirmIiLmMjLGOjqyOjq+QkLGTk7WU - lLaYmLOenqyhoaifn6eioqKjo6GdnaiZma2Zma2WlrCLi76BgcSAgMOAgMF/f8F/f8GCgsGLi72SkreW - lrOYmLKYmLKamrCjo6ajo6SVlbCMjLiNjbWMjLaJibmIiLiCgr5/f8OBgcKBgcOCgsOLi7mRkbaSkriU - lLacnK2kpKWkpKWkpKWkpKWkpKWjo6Sjo6SlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SkpKWlpaWlpaampqem - pqempqempqelpaalpaWlpaWlpaUgAKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaWl - paWlpaSkpKOjpKOjpKOjpKOjpKGhoaGhoaKin5ycpI+PtIWFwoWFwoSEw4iIv4uLu4qKvIqKu4qKu4+P - tZSUr5mZqqCgo6GhoaGhoaGhoaGhoaCgopubp5WVrpKSsYWFwYCAxYGBxYWFwouLu4uLvJGRtZKStZWV - sJ6eqKampKWlpaWlpaSkpaWlpqamp6amp6OjqZSUt46OvYyMvoqKvImJuomJuYmJuYeHvYaGvoaGv4qK - upaWq5ycpqCgoqGhoaGhoaCgoKCgoKKioJeXro6OuIiIwIODxIKCxIKCxIKCxoiIwIyMvIuLvYyMvJKS - tKCgp6SkpKOjpKOjpKOjpKGhoaGhn52dpZGRsYWFvoGBxIGBxIGBw4CAxIWFv4uLu4uLvI2Nu5KStp6e - qKOjoqKioaGhoqOjpKOjpKWlpKGhqJSUtYiIwoODxoSExYODxYODxYODxoaGw42Nu5WVspqaqp+foqGh - oKGhoaKioqOjpJycq5aWspGRtomJvoODxoSExYKCw4KCw4ODxIODxYSEwoyMuJeXq6CgoqKioKGhoaGh - oaGhoaGhoJiYrZCQt4yMu4uLvIqKvoSExYSExYODxoiIwY2NvpCQvZ2dr6WlqKampaWlpaWlpaWlpaOj - pKSkpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKOjpKOjpKWlpaWlpaamp6amp6amp6amp6amp6amp6Sk - paOjpKSkpKWlpaWlpaWlpqWlpqWlpqSkpaOjo6KipZmZrpKStpGRt5KSt4+PuIqKu4mJuYaGtoeHt4mJ - uYmJuoqKvI2NupmZraCgpKGho6KipKSkpp+frZKSuoeHxoODx4KCxIGBxIGBwYaGt4iIuImJuIaGvoOD - xoSExYSExYuLvZmZq52dp5KStIeHw4SExoSExoODxYGBw4KCvYaGt4eHuJOTqZaWppiYqJmZqpycqqKi - o6SkpaWlpKGhqJWVtIuLv42NvYuLvYuLvYqKu4iIuIWFvIKCxYSExoSExoSExoODx4aGxI6Ou5mZrKSk - paKiqJubsJOTuIyMv42NvoyMvYqKuYSEvICAwYKCw4WFxYqKv5eXsZycrJqarp2dq6OjpKOjpJ+fqJ6e - qJiYrZCQs5CQsY+PsY2NsI2Nro2Nro6Or5CQsZKSs5OTtZqasJ6erJ2drZ6erKOjpKOjoqGho5ycqZeX - r5OTtIuLvIKCwoCAw39/wX9/wYKCwImJuYuLvIuLvYuLv5CQu5eXs56eq6Skpaeno5qarpCQtI+Ps4mJ - uYmJuYODv39/wYCAwYGBw4ODxIyMvYaGw4ODxoODxoiIwpSUtKGhpqSkpaSkpKOjpKOjpKOjpKOjpKOj - pKSkpaWlpaWlpaWlpaOjpKOjpKOjpKSkpaWlpaWlpaamp6amp6amp6WlpqWlpaWlpaWlpSAApaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6OkpaWlpaWlpaWlpaWlpKSlo6Oko6OkoqKioaGhoaGhoqKf - nZ2kj4+ziYm7iIi8iYm9i4u9i4u8i4u8ioq9j4+1kJCzk5OunJymoqKhoaGhoaGhoaGhoqKgnZ2mlpat - lpatk5Owi4u6iIi8iIi8ioq9ioq8iIjAiYm/h4fCjo65nJyppKSipaWlpaWlpaWlpKSlpaWmpqano6Op - lZW3jo69jY2/jY29i4u6iYm6hYW8hYW9hYW/h4e9kJCynJyloaGhoaGhoaGhoaGhoaGgoKCgnJylj4+z - hoa+goLCgYHEgoLEgoLEgoLEg4PEhITEhYXEioq/lZWxoKCko6Ojo6Oko6Oko6Oko6OjnZ2lkpKxh4e/ - goLEgYHDgYHDgIDDhYW9iYm6iYm7i4u8kJC3lZWxoKCmo6OioqKjoqKioaGho6OkpaWinJysjIy+g4PI - hYXGhITFg4PFgYHGhYXCjIy7kpK0lJSzmpqroKCjoaGgoKCgoaGin5+nmJivkpK1ioq+hITFhITFg4PE - g4PEg4PEgoLDgYHFhobBkpKxnp6ioaGgoaGhoaGhoaGhoaGhn5+jlparkpKyj4+4iYm/hITFhITFgoLH - h4fBi4u9jIy+kJC7n5+tpaWopqanpqampaWlpaWlpaWlo6OkpKSlpKSlpKSlpaWlpaWlpaWlpaWlpaWl - pKSlo6Oko6OkpaWlpaWlpqampqanpqanpqanpqanpqanpKSlo6OkpKSkpaWlpaWlpaWmpaWmpaWmpaWl - oqKknp6pmZmvlZWzkJC5jIy9i4u7ioq6iIi2g4O8goLAg4PBhobAjo66lJSylZWxmZmsn5+loqKjnZ2s - kZG7hobGg4PJg4PIhITDiIi6h4e2g4O+goLBg4PCgoLFg4PEiYm9iYm/lpawn5+mmJiuiYm+g4PGg4PG - gYHGg4O/hoa5hoa2jIyukJCvkZGwkpKwkZGylpavpKShoqKjpKSkpaWloKCplpazjIy/i4u+i4u+i4u6 - h4e9gYHCgYHCgoLEhITGg4PIh4fDi4u+jo67mpquoaGjpKSkpqaln5+sk5O4lZW3j4+7hoa/gYHAgIDB - goLBiYm8jIy9kpK2lZWzk5O1lZWznZ2ro6Olo6Okn5+omJiwkZG0kJCxkJCxjo6wjo6tjIyyiYm4ioq4 - i4u6kZG1mZmtnp6rnp6tnp6spaWlpKSko6Oinp6mmJiuk5O0jIy7hITDgYHEf3/DgYG+hYW4goLBhITD - hYXEhITFiIjCkpK5nJyuoKCppqaknJytj4+5jIy8ioq7ioq6goLBf3/Cf3/BgYHBhITAhYXDhITFg4PH - hYXEjo66mZmuoaGmpKSlpKSlpKSlo6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6OkpKSk - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlIACjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Wj - o6SlpaWlpaWlpaWlpaWkpKWjo6Sjo6OioqKioqChoaGXl6yKirqJibmKirmFhcCDg8OEhMSHh8CRkbOR - kbOPj7WYmKqgoJ+goKChoaGhoaGhoaGgoKKamqiVla6Tk7GMjLiKiruKirqKirqJibyIiL+IiMGGhsOO - jruYmLCfn6ajo6Kjo6SlpaWlpaWlpaWlpaWjo6agoK2YmLaSkryLi8CIiMCIiL6Hh72Fhb6EhL+Hh7qJ - ibiQkLOdnaSgoKChoaGhoaGhoaGhoaCdnaKSkrCGhr6BgcWBgcWCgsWDg8WDg8WDg8WCgsSBgcaFhcSQ - kLmcnKqhoaSioqKjo6Ojo6Sjo6Sfn6eTk7OIiMCCgsWBgcSBgcOAgMSGhr6KirqJibuKirqPj7WWlq6b - m6qhoaSioqOioqOioqOioqKioqGgoKaZma+OjruGhsWEhMaEhMWBgcSEhMCLi7iRkbKUlLGamqyfn6ai - oqSioqGhoZ+enqKWlq2RkbSKir+FhcWFhcaFhcWEhMWEhMWDg8SCgsSCgsOIiLuWlqyfn6GgoJ+hoaGh - oaGhoaGhoaGdnaWcnKWWlq2JibyCgsWEhMWEhMWKir+MjL2Njb2MjL6Pj7ydna6lpaimpqempqempqal - paWlpaWkpKWlpaWlpaWkpKWkpKWlpaWlpaWlpaWlpaWlpaWkpKWkpKWjo6SlpaWlpaalpaempqempqem - pqempqempqekpKWjo6SlpaWlpaWlpaWlpaalpaalpaakpKWioqWWlrGPj7mMjL2Li76MjLyLi7mEhL2A - gL+AgMGBgcOCgsOFhcOGhsGKir6VlbGfn6Sjo6GgoKaZmbCMjL6IiMOJicKKir6JibmCgr6AgMCAgMKB - gcSEhMOJib2KiryIiL6Ojribm6mfn6STk7KIiMCIiMCIiMCIiL6JibeNja6Nja2NjbCOjrGQkLCRkbGU - lLCenqWjo6Kjo6KlpaOjo6eamq+RkbmSkriOjryHh8GCgsKAgMKAgMGBgcOCgsWIiMGNjbyMjL2Njbya - mq6ioqSjo6KkpKCfn6eSkraQkLmHh7+CgsGAgMKBgb+GhriJibePj7WSkraTk7aTk7WUlLSamq6hoaek - pKOfn6mWlrKSkraSkrSQkLGOjq6KirGGhriEhL2Ghr2Ghr6Li7qSkrKWlrCYmLGfn6umpqSmpqWkpKSj - o6KdnaiQkLaGhsOEhMSDg8WFhb+FhbqAgL+BgcKBgcOCgsSEhMaEhMaHh8OOjr2YmLKkpKahoamTk7eK - ir+Li72KirqIiLqEhL2Bgb6Cgr6CgsCDg8SCgsaFhcOPj7mamqygoKWjo6SkpKWkpKWkpKWkpKWjo6Sj - o6SkpKSlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWkpKSkpKSkpKSkpKQgAKSk - pKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaWlpaWlpaSkpaOjpKOjo6Gh - opmZqo+Pt4mJvIqKuoWFv4GBxIGBxoGBx4SExI6OuJGRtZOTsZycpqKinqCgoKCgoKGhoaKioZ+fo5qa - p5OTsI2NuYqKvYqKu4qKuYmJu4eHvoeHwYeHwoiIwZaWsqGhpqOjpKOjo6KioqOjpKSkpaampaSkpp+f - q5mZspKSuY2Nv4iIwYeHwYeHwYeHv4eHvoqKu4uLt42Ns5SUq5+foaCgoKCgoKGhoaKioZ+fopiYqY+P - tYiIvYeHvoeHvoaGwYSExYSExYSExYODxYGBxYWFwJSUsqGhpKKio6KioqKioqOjo6OjpZeXr4qKv4SE - xoKCxoCAxYGBxIWFvoqKuomJuouLuY2NuI+PtJaWrJ+fo6KioqKio6Kio6Kio6OjoqCgo5iYrJGRtoqK - wIWFxoSExoSExYGBxYaGvo6OtJSUrpeXrJ+fpKOjo6Kio6Kio6OjoJ+fopCQsoeHv4ODxoSExoWFxYWF - xYSExYSExYODxYODxIeHv46OtJmZpZ+foKCgoKCgoKGhoKGhop+fo52dpZ2dpZeXrIyMuYWFw4SExoSE - xoeHw4yMvo2NvY2NvZKStqCgqKWlpqamp6amp6amp6ampqWlpaWlpaWlpaWlpaSkpaOjpKSkpKWlpaam - pqampqampqampqWlpaSkpKSkpKWlpKWlpaWlpqamp6amp6amp6amp6WlpaOjpKSkpKWlpaWlpaWlpaWl - pqWlpqWlpqSkpZeXsY2Nu4yMvI6Ou4uLvIaGv4KCwn9/wX9/wYCAwoGBxIGBxoGByIuLvZmZrKCgpKGh - o6KioqGhpZeXsJWVs5SUsoyMt4ODwIGBwoCAwX9/w4ODwomJvYuLu4mJvYyMupGRs52dp6SkoJ6ep5WV - sZWVsZKStY6Oto2Nso6OrYyMrY2Nro6OrY6Oso2Nto2NtpGRspubqZ+fpaOjop+fqZWVspSUs5WVso+P - u4WFw4GBxYGBwoCAwYGBwoKCxYaGw4iIwoiIwo6Ou5ubraOjpKOjo6OjoZ+fppGRtYaGwYKCw4CAw4KC - wIaGuYiItIuLso6OsJGRsZKStJKStZKStZSUs5qarKKipaOjpJqarpGRt5OTtZOTso6OtIaGuYODvIOD - vYWFvYODwoSEwoaGv4qKvZGRt5qasKGhqqWlpqWlpaWlop6epo6Ot4iIwYmJwImJvYeHvIKCv35+woGB - wYGBwoKCw4SExIWFxIeHwouLvpiYsqOjp6ampJubr5GRuZKSt42Nu4iIvIWFvIKCvoCAwICAwYGBw4WF - wYyMupaWr56ep56epp+fpqOjpKSkpaSkpaSkpaSkpaOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaSkpaOj - pKOjpKOjpKSkpKSkpKSkpKOjpKOjpKOjpKOjpCAApaWlpKSkpKSkpKSkpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpKSkpKSkoKCklZWwi4u7ioq8hobAgIDFgYHEgoLFhITFiIjB - jo66lJSynJypoaGioaGgoKCgoKCgoaGhoKCioKCimpqokJC0ioq9i4u7i4u6iIi6hoa8hoa/iIjAioq/ - jo65mJiuoaGmpKSjo6OkoqKjoqKio6Ojpqako6OpmJizkZG5i4u+h4fBh4fBiYnAi4vAh4fDhobCiIi/ - i4u6k5OtnZ2fnp6doKCgoKCgoaGhoqKgn5+jl5eslpaukZGyioq6iIi+h4fBhITFhITFhITFhITGhITE - ioq5mJipoqKioqKjoqKjoqKioqKioKCmlpayjIy8iIjBhobDhYXChoa/ioq7iYm7iYm7i4u5jY24j4+0 - mZmooKChoqKgoqKioqKjoqKjn5+lm5uqkZG1iIjBg4PGg4PGhITGgoLFhITBh4e8ioq5kJCzmZmon5+h - oqKioqKjoqKjoqKjnp6mkZGxh4e+hYXChITDg4PEg4PEhITFhITFhobEiYm/jo63lZWsn5+gn5+foKCg - oKCgoaGgoKCinJymnZ2lmJirkpKyi4u7hobDhITHhITHhobGi4vBiorAjY29mZmwo6OjpKSjpaWlpqan - pqanpqanpaWmpaWlpaWlpaWlpaWlpKSko6OkpaWlpqampqanpqanpqanpaWmpaWlpKSkpKSkpKSkpaWl - pqampqampaWmpKSlpKSkpKSlpKSkpaWlpaWlpaWlpaWmpaWmpaWmpaWmnZ2slZWzkpKzjY22hIS/gYHC - gYHBf3/Bf3/BgIDCgYHEg4PFh4fCjY26lZWwmZmsnJypo6Oho6Oinp6nm5uqlJSxiIi9gIDEgYHCf3/C - gYHAh4e8ioq6iYm8jY24lJSvmZmpnZ2moaGjoaGinJyompqslZWwkpKwkJCvjIyvjIytjo6sjY2viIi5 - hITAhYXAhYXAjY23lpatoaGknp6nlpavmZmtmJisjo64hITCgIDFgIDDgIDBgYHCg4PEhITGg4PIhYXG - jo67mZmxn5+oo6OlpKSinp6nkZG1h4fBhobAhIS/hoa7iYm1ioqxjY2ujY2sjY2yjY24j4+6j4+7j4+6 - mZmwoaGmpqahn5+plJS0k5O0kZG4iYm9hYW/g4O9g4O8goLAgYHEgoLGgYHHhYXCjY25lJSznJytpaWm - pqalpqakoKCok5O0j4+4jY26ioq8hITAf3/Df3/Bf3/BgYHBgYHCg4PCh4fAjIy9kpK3oaGppqakqKii - oKCqlJS2kpK5i4u+hobChITBgoLCgIDDgIDCg4O/i4u3kZGylZWxlZWxlJSyk5OynZ2oo6OlpKSlpKSl - pKSlpKSlo6Oko6Oko6OlpKSlpaWlpaWlpaWlpaWlpaWkpKSko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - IAClpaWlpaWkpKSjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6WlpaWlpaWlpaWlpaWl - paShoaWUlLCJibyGhsCBgcaBgcSBgcWDg8WJicCQkLeWlrCcnKqioqOioqChoaGhoaGgoKCgoKCenqKf - n6OZmaqPj7aLi7yKiruKiruGhr+EhMGFhcGGhsCNjbqVlbGbm6mhoaSkpKOjo6Sjo6SioqKioqKkpKKe - nquQkLqLi7+IiMGIiMGJicCLi76Li8GFhceEhMaBgciLi7qamqahoZydnZ2enp6goKCgoKChoZ+goKKb - m6ebm6eRkbKGhsCCgsaDg8aEhMWEhMWEhMWFhcSLi76VlbCdnaKgoKCioqOioqOjo6OgoKSbm6qWlrGS - kreOjruMjLyMjLyLi7uKiryKir2KiryKiryMjLmUlK+fn6KhoaGhoaGioqGjo6KhoaSamquSkrWJicCE - hMWDg8WDg8WCgsWEhMKJibuJibuIiLuPj7OamqaenqGhoaGioqKjo6KgoKaYmK+SkrOMjLmJib2FhcKC - gsWDg8SDg8SEhMWGhsKLi7yTk7Obm6ehoZ+fn5+goKCgoKCgoKCgoKGenqOenqSSkrGKiruEhMOCgseE - hMWFhcSJicCJicKKisGRkbienqqjo6Sjo6Sjo6SlpaampqempqempqelpaalpaWlpaWlpaWlpaWkpKSk - pKWlpaWmpqWmpqempqempqelpaalpaWkpKSkpKSlpaWlpaWlpaWjo6Sjo6SkpKSlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaalpaakpKebm6+SkrSJibqBgcOBgcGAgMF/f8F/f8GAgMOCgsWEhMWKir6IiL+Jib+O - jrmZmayjo6Gjo6Gbm6iTk7KHh8CAgMeCgsOAgMJ/f7+FhbqJibiKirqNjbiSkrKXl6yYmKuVla6amqmh - oaKYmK6Tk7OTk7SSkrKPj7CNja6MjKyLi66JibiDg8KAgMWBgcSDg8OEhMKPj7WenqaioqOenqidnaiZ - mauPj7WGhr6CgsGCgsCAgMGBgcODg8WFhcaGhsaIiMKNjb2RkbiYmLChoaalpaKfn6iRkbWNjbuLi7qK - irmKireLi7KMjKyNja6Li7CJibiJib2Kir6Njb6UlLihoaykpKWkpKOhoaaZma+QkLeKir6Hh8GFhb+D - g7yAgL5/f8GBgcKCgsSCgsWGhsGOjreUlLCbm6yjo6elpaWmpqSkpKadnauTk7OKiryDg8SBgcSBgcGA - gMF/f8CBgcCCgsCGhr6Kir2OjryXl7Ohoamjo6empqSgoKqRkbmJicKGhsOHh8OGhsOEhMGCgsCEhL6K - irWQkLCRkbCOjraLi7uMjLuPj7iZmayhoaWkpKSjo6Sjo6Sjo6Wjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWl - paWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6QgAKWlpaWlpaWlpaSkpKOjpKWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaOjpKSkpKWlpaWlpaWlpaampZ6eqJCQtISEwoGBx4KCxYKCxYODxYiIwI6O - uZSUspubq6Kio6OjoqKio6KioaGhoaGhoaCgoJ6eoZqapZWVrZCQtouLvIqKvIeHv4ODw4KCxoODxoWF - xIyMupqaq6Gho6KioaKio6OjpKOjpKOjpKOjoqCgo5eXrouLvYiIwYiIwYeHwYmJvYiIwISEyIWFxoaG - xoqKv5SUsJ6eo6Cgn5+fn52dnZ6enqCgoKCgoJ6eo5iYqpGRs4WFwYGBxYKCxIODxYSExYSExYWFxIuL - vpaWsaCgpaOjoZ+fn6GhoaKio6Ojop6ep5SUso+PuI2NvY2NvY2NvYyMvYuLvYuLvYuLvYqKvI2NuZOT - s5qaqaKioKGhoaGhoaGhoaKioKCgpZSUsomJwIWFw4SExIODxYODxYSEwoqKuomJuoiIupCQsZmZpZyc - n6CgoKCgoKGhoKOjoZ6eqJGRt4yMvIeHwIiIwoaGxISExYSExYODxIODxIKCxomJv5eXr6Cgo6GhoaCg - oJ+fn6CgoKCgoKCgoJ+foZiYqoyMuIODw4KCxoODxYaGw4mJv4mJwImJwZOTt5+fqqOjpaSkpaOjpKOj - pKSkpKampqamp6amp6amp6WlpqWlpaWlpaWlpaWlpaOjpKSkpaWlpaWlpqamp6amp6amp6WlpaWlpaWl - paWlpaWlpaWlpaOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpJqar4uLv4KCxoSE - w4GBw4CAwn9/wX9/wYGBw4KCxIODxYSEx4SEx4KCyImJwJmZrqOjoqOjoZaWr4eHwYKCx4KCxIGBw4GB - wYSEuIWFt4eHuY2Nt5KSsZGRtJGRtZGRtJCQtpaWrqCgo5OTs5OTs5KStJKSs5CQsI+Pr42NroaGt4KC - wYKCxIKCw4ODw4WFwYWFwY+PtpycpqOjn6CgpJiYrZGRtJOTs46OtomJuYeHvICAwYGBwoKCxIKCxYiI - wY2NvYyMvoyMvpiYsaCgpqSkoqCgp5SUs42NuY6Ouo2Nuo+Pto+PsI2NroyMr4eHuYiIuomJu4uLvJGR - t56eq6Ojp6Wlp6WlpKCgppaWsoqKv4eHwYeHwYaGv4ODwH9/wn9/wYCAwYGBw4GBxIaGwI6OuZKStJOT - sZubrKOjpqampaampKSkppOTtYaGw4SExYODwoCAwoCAwYCAv4CAwIWFvYqKu4uLvI2NvJOTtpOTt5ub - r6SkpqKiqJSUtoiIw4mJwoiIwouLvoyMuYmJt4mJtI2Nro+PsIyMtoyMuY2NuI6Ot5WVsJubq6GhpaKi - oqKio6Kio6Kio6OjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOj - pKOjpCAApaWlpaWlpaWlpKSlo6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6OkpKSkpaWl - paWloaGqlpauiIi8gIDHgoLFgYHEgYHFh4e+i4u7jIy9jY27lJSzoaGko6OioqKjoqKjoqKioaGhoaGh - nJyllJStjY22iYm7ioq8ioq8hITDgoLFg4PGh4fEjo68j4+5mZmqoaGjo6OioqKioqKio6Oko6OkpKSj - n5+nkJC1hobCh4fAh4fAhITEg4PFg4PFhITFhYXGjIy/mJiyoaGmoqKgoaGhoKCgn5+fnZ2dn5+dnZ2i - l5eqkZGzhYXCg4PFg4PFg4PFgoLFgoLFg4PFiIjAlZWyn5+mo6OioqKioqKin5+foKCgo6OinJyqkJC4 - jIy8jIy8i4u8i4u9i4u9i4u9i4u9jIy8jo66kpKzmZmrn5+koaGhoaGhoaGhoaGhoaGgnJylkZG1hobB - hITFhITFg4PGhYXCiYm6iYm6iIi7kJCxmpqlnZ2hnJyhnp6eoKCgoKCgoKChmJisjIy8iIjBiIjBhYXE - hITFhITFhITFhITFg4PEhITCj4+2nZ2no6OhoqKioaGhoKCgn5+foKCfn5+il5eri4u5g4PCgoLFg4PG - hYXEiYnAiYnAiIjCkpK1np6qo6OmpKSlpKSlpKSlo6Oko6OkpKSkpaWlpqanpqanpqanpaWmpaWlpaWl - paWlpaWlo6OkpKSkpaWlpaWlpqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpqakoaGplZW1h4fBgoLGgoLFgYHDgIDCgIDBgIDCgoLFhITGhYXIhobH - hYXIiYnDlJS1np6mo6OhmJitiYm/g4PHhITFg4PDh4e6hoa3hIS4iYm0kJCvkJCyioq6i4u8i4u8i4u8 - kpKznZ2mmpqplZWxkpK0kpK0kpKzkJCyiIi5gYHAgYHDgoLEhITDhobCh4fBk5O0mJisnp6ko6Ofnp6l - kZG1kpK0k5O0jo64hobAgYHEgYHCgIDBgIDDhoa9i4u6jIy+jIy+jIy+lJS2m5usoqKloaGmmJivkpK1 - kpK1kpK1kZGzj4+vi4uwhYW3h4e5iIi6iYm9j4+5lpawlZWylpa1nJyvpaWnoaGpkpK2h4fCiIjBiIjB - hYXEgoLFgYHCgIDBf3/Bf3/Choa8iIi8hobBh4fBh4fBkZGzn5+mpaWjpqako6OnlZW1jY28jY28iIjA - gYHDgYHBgYHAhIS8iYm6i4u8jY29jo68jo68jY29mZmxpKSmpKSlnp6rl5ezlJS2lJS2lJS2kpKzj4+w - jIywh4e4iIi5iYm6iIi7i4u4kpKxk5OymZmtoKClo6OjpKSkpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Ok - paWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6OkIAClpaWjo6Sjo6Sjo6Sjo6Sjo6SioqOj - o6SkpKWlpaWlpaWlpaWlpaWlpaWjo6OioqKioqKjo6Wfn6iamq6MjLuEhMSCgsaCgsaCgsaHh7yKirqJ - ibuMjLqTk7SamquhoaSioqOioqOioqOioqOioqKdnaaWlqyOjraKirqKirqJibuDg8KCgsWBgceGhsKN - jbuQkLiWlrKgoKaioqGhoaGioqKioqKioqKjo6SioqWenqmUlLSKir2KiruEhMODg8WDg8WCgsWEhMSM - jL2ZmbCioqikpKSjo6OioqKhoaGgoKCgoJ+cnKCXl6aPj7OEhMGCgsSDg8WCgsWCgsWCgsWCgsWDg8WC - gseNjbucnKmkpKGioqOioqKioqKgoJ+dnaOYmK6Tk7WSkrWMjLyKir2KiruLi7qLi7qMjLyPj7iOjrmS - krSbm6mhoaChoaGhoaGhoaGioqCfn6KWlqyLi7qDg8SDg8WCgsaGhsCIiL2CgsSCgsOAgMWKirmXl6ie - np+fn5+fn5+enp6goJ6dnaSRkbOHh8KIiMKIiMGLi72Hh8CCgsWEhMWEhMWHh8KIiL2UlK6goKKjo6Ki - oqKioqKhoaGhoZ+enqCWlqqKirqCgsOCgsaCgseGhsSKisGLi8GLi8GMjMCUlLWdnaqioqakpKWkpKWk - pKWkpKWkpKWjo6Sjo6SlpaWmpqempqempqempqalpaWlpaWlpaWlpaWkpKSkpKSlpaWlpaWmpqempqem - pqempqalpaWlpaWlpaWlpaWlpaWkpKSjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWgoKmU - lLWHh8KCgsaCgsaCgsSAgMF/f8GBgcSCgsWFhcaGhseGhseGhseOjr6bm62ioqOcnKiTk7OQkLeRkbWQ - kLWPj7KNjbGLi66Li7CIiLmCgsGDg8ODg8ODg8aHh8GSkrOenqWfn6OZmauYmKuWlq6RkbSKirqDg8GB - gcGBgcKBgcSCgsWFhcWNjbyVlbSWlrOamq6hoaWfn6KWlq2Tk7SPj7mIiMGDg8WDg8WCgsSAgMOFhbyJ - ibqKiryKir2Li72MjL6OjryTk7aenqqjo6Ofn6eenqifn6ednamWlq6OjrSIiLeFhbeBgcGBgcSCgsaJ - ib+VlbGVlbGUlLOcnK+kpKekpKecnK2Tk7SMjL2FhcSDg8aDg8WBgcOAgMF+fsKEhLqFhbmDg7+Dg8OD - g8OEhMSPj7adnaWjo6GlpaSjo6eVlbWOjryKisCHh8CEhL+EhL6GhriIiLiJibmMjLuNjbuNjbuNjb2S - kriZmbCioqimpqSlpaWjo6eTk7ORkbWSkrSRkbCNjbCHh7iFhbeGhriHh7mJibqJibqKirqLi7qYmKyh - oaOkpKKjo6Sjo6SlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sj - o6Sjo6Sjo6QgAKampqWlpKOjpKOjpKOjpKOjpKOjpKKio6Ojo6WlpaWlpaWlpaWlpaWlpaSkpKKioqOj - oaKio5eXrYqKvISEw4ODxIWFwoeHvYiIvImJuYiIuoyMtpKSsJaWrJ+fpaKioqKio6Kio6Kio6Kio6Gh - pJaWr4+Pt4uLu4qKuoiIvIODwoKCxICAxYaGwYyMvoyMvZGRuJ2dq6KipaOjo6GhoqGhoaKioqKioqKi - o6KipJ+fqJWVsouLvYaGwoSExYSExYSExYSExYSExYWFw5OTtKKiqKampKSkpaSko6KioaGhoaKinpmZ - pYyMtIODwIGBw4ODxYSExoODxoODxoODxoODxYODxIaGwZKSs5+fpqOjoqKio6Kio6KioqKioZ2dopeX - qpOTs4yMuYqKu4uLuYeHv4ODxISEwoSEw4uLvZKStJmZq5+fpaKioaGhoaGhoaGhoaGhn5ubpo+PtYWF - woSEw4SExIeHv4aGvoKCwoGBxICAxoODwo6OspqapJ+fnp+fn5+fn5+fn56enpWVqoqKuYiIvYqKvIqK - vIeHwYWFxYODxYODxYaGwoyMvJCQtpubqKKioKGhoaKioqKioqOjoqCgoZeXq4yMt4iIu4eHvYmJvYmJ - wYqKwouLwYqKw4qKw4iIxJKSup6eq6Ojo6OjpKSkpaSkpaSkpaSkpaSkpaOjpKOjpKWlpqamp6amp6am - p6amp6WlpaWlpaWlpaWlpaOjpaOjpKWlpaWlpqamp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaOjpaOj - pKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampKKip5mZsJCQu4mJwImJvISEwX9/woCAwYGBwoGBxISE - xIWFxYaGx4WFyYqKw5mZsqOjpaKio5ycp5aWr5KStJOTs5KSspGRr4yMr4WFuIGBwoCAw4KCxYGBxoWF - wYyMuZOTsJycpqGhoZubqJeXrZGRtImJvYODxIKCwoCAwYGBwoGBwoGBxISExYeHw4iIwouLv5aWs6Gh - p6Ojop6eo5OTs4eHwoKCx4KCx4ODxoKCxYaGvIiIuYmJu4qKvYuLvYyMvI2NvI2NvZGRuZ2drKWlo6Ki - pKOjpJ+fqJmZrpGRtoqKuoeHvIGBwH9/w4CAxYKCxoeHwpCQuJeXsJmZrZqarKGhqKampaOjqJubro+P - uoaGw4SExoODxYGBxICAwoSEuYSEuYKCvoGBwoKCxIODxYKCxoyMu5ubqqKioqSkoqOjppaWs4qKwIeH - w4eHwoeHv4iIuYmJuIaGt4iIt4yMuY2Nu46OupOTtJubr5ycraKip6amo6Skpp+fq5WVtJOTtJOTsY+P - s4iIuIeHuYaGt4aGuIaGuIeHuIiIuYmJuoqKu5KSsZqaqKGhpKSkpKOjpKSkpKWlpaWlpaWlpaSkpaOj - pKOjpKWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpCAApqanpqampaWlo6Oko6Oko6Ok - o6OkoqKjoqKjo6OkpaWlpaWlpaWlpaWlpKSlo6OjoqKinZ2ojo63h4e/hobAh4e+iYm8ioq4iYm4iYm5 - iYm5ioq4kJCxmJion5+joqKioqKioqKjoqKjo6OioqKjlJSyj4+5jIy6h4e+goLEgIDFgYHFhYXAioq8 - jIy8j4+5mJivoaGlo6Oko6Oko6OkoqKioaGhoqKio6OhoaGkmZmujY27hYXEhITGhITFhYXFhYXFhITG - hYXFjY28lZWxoKClpaWjpKSlpKSlo6OkoaGhoKChlZWsh4e9f3/FgYHDg4PEhITGhITGhITGhITGhITG - g4PEjIy4m5uooqKioqKjoqKjoqKjoqKjpKShoKCjmJiqkJCyiYm8i4u7iIi/hITEgYHHgYHGgYHGiIjA - k5Oznp6noqKhoqKioqKioaGhoaGhoqKfmpqnjY23hoa/h4e/iIi+h4e/goLCf3/FgYHEhoa/jo60l5eo - nZ2goKCen5+fn5+fn5+fnZ2glpaoj4+yjIy3ioq7h4fAhITFg4PGhYXFh4fDjIy7kpK1mZmtoKCkoqKg - oaGhoaGhoqKipKSgnp6mkZGziYm7ioq5hoa/iIjBh4fDiIjDiorCiYnEiIjFi4vCl5e1oqKppKSko6Ok - o6OkpKSlpKSlpKSlpKSlpKSlo6OkpKSkpaWlpqampqampqampaWlpaWlpaWlpaWlpaWlpKSkpKSkpaWl - paWmpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqak - oaGpnJyumpqxkpK4iIjAgoLEf3/Df3/BgIDBgYHCgoLDg4PEhYXGhITJh4fGlZW4oaGrpKSjn5+mlZWw - j4+3kZG1kpKyj4+zh4e5gIDAf3/DgYHDg4PGiIjCi4u9j4+4lZWymZmsn5+jl5etkJC1jIy5ioq8h4e/ - g4PEgIDCgIDBgIDBgYHCgoLEg4PGhobEjIy+l5eyoaGopaWjoqKkl5esjY24i4u7ioq+hobBh4e+iYm5 - iIi6iIi7ioq6ioq9h4fCh4fBhobDjo67np6rp6eipKSko6OkmJivkZG4jY27iYm+hITCgIDEf3/Df3/D - hIS/iIi9jIy8kZG3k5O0kZG2mZmupKSlpKSolpa1h4fDhITGgoLFgIDFgoLChIS6hIS5goK9gYHBgYHD - gYHEg4PGh4fAjIy9mJiuoaGko6OioaGkmpqrkZG1i4u9ioq/ioq9ioq6iYm5h4e2iYm1i4u2jY23kZG0 - lJSxmJivmJixnZ2so6OlpKSmm5uvlJS2lpa0kZG1ioq5h4e7h4e5hoa3hoa3hoa4hoa4iIi5iYm6iYm5 - jY24kZGynZ2npaWho6Oko6OkpKSkpaWlpaWlpaWlpKSlpKSkpKSkpaWlpaWlpaWlpaWlpaWlpKSlo6Ok - o6Oko6Oko6Oko6OkIACmpqempqempqelpaWkpKSjo6Sjo6Sjo6SioqOioqOjo6SkpKWkpKWkpKWjo6Wj - o6KhoaObm6uQkLeOjreOjreMjLmJibqIiLiJibmJibmJibmGhryMjLWamqaenqGhoaGioqKioqOioqOi - oqOfn6eSkrWPj7mMjLuHh7+EhMKFhcGFhcCKirqKirmNjbeXl66goKaioqKjo6Sjo6Sjo6Sjo6OioqKi - oqGhoaKZmauNjbqEhMaDg8eEhMaEhMWFhcWEhMaEhMaLi76Zma+dnaihoaOjo6OkpKWkpKWkpKWkpKOc - nKiOjreEhMOBgcSBgcOCgsSEhMaEhMaEhMaEhMeFhcaMjL6VlbCfn6Ojo5+ioqKioqOioqOioqOhoaSd - namVlbCMjLaKirqHh76Dg8SCgsaDg8WCgsaFhcKKiryWlq6hoaSjo6GioqKioqKhoaGioqChoaCYmKyM - jLmKiruKiryIiL+Dg8SAgMWBgcOCgsGKirmUlK2amqSenqCfn5+fn5+fn5+fn5+bm6OWlqqPj7GLi7iJ - ibyDg8KEhMOFhcSIiMOOjryUlLSZma2fn6aioqKioqGhoaGhoaGioqKioqKXl6+NjbqKiryGhsCCgsWD - g8aDg8eFhcSJicKJicSMjMGTk7qgoK2np6empqakpKWjo6Sjo6SkpKWkpKWkpKWkpKWjo6Sjo6SkpKSk - pKSkpKSkpKSkpKWlpaWlpaWlpaWlpaWlpaWkpKSkpKWlpaWmpqWmpqempqempqelpaalpaWlpaalpaal - paampqakpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWmpqSioqienqycnK6Tk7eJicOEhMaCgsSAgMGAgMGB - gcGBgcKCgsSCgsaEhMaKisOSkryfn6+lpaeioqebm6uYmK6Vla+QkLOIiL2CgsN/f8J/f8GCgsOHh8GN - jb2Njb2RkbiXl7KZmbCbm6qXl66RkbSQkLWOjreHh7+Dg8WBgcOAgMGBgcGAgMGAgMKFhcCOjrmVlbKZ - ma6fn6qlpaSkpKWenqiWlq2Vla2SkrKMjLmKirqIiLqGhriHh7iIiLuFhcGDg8aDg8aDg8WNjbubm62j - o6akpKSjo6SVlbONjbyJicCGhsSBgceBgcWAgMSCgr6GhriJibeKiruIiL+IiMCGhsKQkLafn6ejo6eV - lbaKisKHh8SFhcGEhL+FhbyGhriBgb6AgMGBgcOBgcOBgcKFhb6MjLiNjbmamqqjo6KioqOioqOgoKSb - m6mPj7eLi72MjLuLi7uKirqKiraIiLWIiLaMjLaPj7WNjbuMjLuMjL6SkridnaukpKSfn6uZmbGTk7iN - jb2Kir2JibqIiLmGhriGhreGhriGhriHh7mIiLqJibmIiLuMjLiZmaujo6Gjo6Sjo6Sjo6SkpKWlpaWl - paWlpaWlpaWkpKSkpKWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6QgAKampqamp6amp6amp6Sk - paOjpKOjpKOjpKOjpKKio6Kio6OjpKOjpKOjpKOjpKOjo6CgpJubq5WVsZOTtJKStI6OtoqKuImJuIqK - uYqKuYqKuoqKuZGRrp2doKCgn6CgoKGhoaKioaOjop+fp5WVso+PuouLvouLvouLvIqKuoqKuouLuYuL - uY2NtZSUrJ2dpKOjoaKio6Kio6OjpKOjpKOjpKOjpKGhopqaqo+PuIeHwoWFxIaGwoSExYSExYSExYSE - xYiIwpCQuJqaq6GhpaKio6KioqKio6OjpKSkpaWlpZqaroyMuoODwoGBxYKCxIKCxYSExoSExoSEx4aG - xY2NvpqasJ+fqKGhoqGhoKGhoaKioqKio6Ojop2dqJWVso6OuouLvYeHvYCAxIKCxYODxYODxYWFwoyM - upKSs5ycpaKioKKioqKioqKioqKioqKiopqaqY+PtomJvomJvYeHv4KCxYGBxoKCxIGBw4KCwYiIu5GR - rZubo5+fn5+fn5+fn5+fn5qapJWVrI6OtImJuYiIuomJu4eHvYiIvomJv4yMvJKStZiYr52dqaKipKOj - oqKioqKioqGhoaKin5ubp5CQt4mJv4eHwYKCxYODxYODxYSExYaGw4iIwYyMv5WVuJubsaSkqaiopqam - p6WlpqOjpKSkpaWlpqWlpqWlpqSkpaSkpaOjpKOjpKOjpKOjpKOjpKOjpKSkpaSkpaSkpaSkpaSkpaWl - paOjpKSkpaWlpaampaampqamp6amp6Wlpqamp6amp6amp6amp6WlpqOjpKOjpaWlpaWlpaWlpaWlpaWl - paWlpaSkpZ2drJSUtZCQuo2NvoeHxIODxYGBwoGBwYCAwYGBwoGBxISExYmJwI6Ou5OTuqGhrKamqKen - pqWlo5+fpZWVsImJvYODxYGBxICAwYCAwYODvoqKu4yMvYyMvpGRuJaWspaWtJeXsp6eqJiYrZGRtImJ - vYGBx4KCxIGBwoCAwYCAwYCAwYWFvo2Nt5KStJiYr5ubraCgqaampKSkpaKiqJmZrpSUrpOTsI6Ot4mJ - vIiIuoaGuIaGuYODv4GBxYODxIODxYyMvJOTs5iYrp6eqqWlpKSkpZaWsoyMvoSExoKCyYODx4KCxISE - wIaGuIaGuIaGu4eHvYSEw4WFxIODx4yMvJubqaOjoqCgqpycr5OTuY2NvouLu4iIu4KCv4CAwYGBwoGB - w4GBxISEwIqKt4+PtJGRtJycqaKioqGho6Kio6Ojo5ycqY6OuIqKvoyMvIyMuo+Pt4uLuIaGuIaGuYeH - u4aGwYSEx4ODx4ODx4mJwZWVs6KipqWlpJ+fqpGRuY6Ovo6OvYqKvImJuoeHuYaGt4aGt4aGt4eHuIiI - uYmJuoiIuouLuZiYrqOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWlpaOj - pKOjpKOjpKOjpKOjpKOjpCAApaWlpqanpqanpqanpqanpaWlo6Oko6OkoqKjoqKioqKioqKjo6Oko6Ok - o6Oko6OjoKCll5eukpK0kZG2kJC2j4+0jIy2ioq8i4u8i4u8i4u+k5OwnJygnp6cnp6eoKCgoKCgoqKh - oqKimpqrjY27i4u9i4u9i4u9i4u9ioq8iYm7iYm7i4u3lJStmZmnnJykoaGgoqKjoqKjoqKjo6Oko6Ok - o6Okn5+nkpKzjY25jIy7i4u8ioq+hITFhITFhITFiYm/jIy7j4+5m5uroKClo6Oko6OjoqKio6OjpKSm - oKCpmpqwk5O2iYm/goLGhITFg4PFg4PFg4PGhYXGjIy+mZmvn5+ppKSmo6OjoaGhoaGhoaGhoqKioqKj - np6okpK2iYnAiYm/goLGgoLFgoLFgoLFhobCjIy7lJSympqooKCioaGgoaGhoqKioqKio6OhnZ2oj4+2 - iIi+iYm9iIi+goLFgoLEgoLEgoLEgoLDgoLBh4e7kpKsnZ2hoKCen5+fn5+fnp6glparj4+zioq4iYm6 - iYm6iYm7iYm7iYm8jY26kZG2k5Ozl5ewnZ2poqKlo6OjoqKioqKioqKioKChlZWujIy5hYXAgYHFg4PF - g4PFg4PFhobCh4fBiYm+kZG2mpqvoaGqpqanpqanpqanpqanpaWmpqanpqanpqanpaWmpKSlpKSlpKSl - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWmpqanpqanpqanpaWm - paWmpqanpqanpqanpaWlo6OkpKSkpaWlpaWlpaWlpaWlpqalpKSlmZmtjY26i4u+hYXFhYXGhITFgoLD - gIDCf3/BgYHCgoLEiYnAjY26j4+4lpazpaWopqanpqampKSomJixioq/g4PFg4PEgoLCgYHBgoK9h4e3 - iYm8ioq+ioq/i4u/i4u/jIy+lJS2oqKlmpqsiYm+gIDIg4PFg4PFgYHDgYHCgYHBhIS+jY23lJS1lJS2 - lJS5mJi0oKCrpaWmpKSloaGom5uvlZWyjo62iYm7ioq6iYm6iIi5g4O/gYHDgoLDg4PEhITDkJC3mpqr - nJyonp6opaWkpKSlmJixh4fDgYHJg4PGg4PFhITAiYm5h4e3goK+gYHFgoLFg4PFg4PFg4PGjIy8mpqs - o6OioqKipqakmpqxkJC8jY2+iIi/gYHDgIDBgYHCgYHEhITDh4e+i4u6kZGzkpK0lJSympqroKCko6Oj - oqKjl5ewkJC2jY23jY23jo62kJCxioq4hoa6hYW8hYXBhITHhYXGhYXGiorBiorAj4+5nZ2rpKSlnp6r - l5eylpazk5O4jIy+ioq7iIi5hoa3hoa3h4e4iYm6ioq7ioq7ioq7jY25mZmuo6OkpKSlpKSlpKSlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpKSko6Oko6Oko6Oko6OkIAClpaWlpaWmpqam - pqempqempqelpaWjo6Sjo6Sjo6OioqKioqKioqKhoaGhoaGgoKKcnKeVla+RkbaRkbaSkrWOjriHh7+D - g8aEhMWDg8aMjLucnKmiop6enp6enp6enp6fn5+goKCgoKGbm6uOjrmLi72Li72Li72Li72Li72KiruK - irqJibuPj7OXl6qdnaOgoKCgoKCioqOioqOioqOjo6OioqWZma6SkrWQkLaNjbeHh7+Dg8eEhMaDg8eJ - ib+Li7yMjLuVlbKioqWjo6Sjo6Sjo6Sjo6OioqGhoaOZma+Tk7aJicKDg8eEhMWEhMaEhMaEhMaFhcWI - iMGQkLmbm66goKmjo6akpKWjo6ShoaGhoaGhoaGcnKeYmK+QkLiHh8GCgsaDg8WDg8WDg8aGhsKMjLqT - k7Kbm6ihoaKhoaGhoaGhoaGhoaGioqKioqKVlbCMjLuJib6Jib2Jib6EhMWDg8SDg8SDg8WEhMOKiruU - lKuZmaKcnJ6enp6goJ+enqCZmaWUlKySkq+NjbaJibyLi72Li72Li72Kir6Pj7iSkrOTk7Obm6uioqWj - o6Sjo6Sjo6SioqKhoaOcnKmOjreFhcGBgcSBgcSDg8WDg8WEhMWEhMWDg8aGhsKQkLacnKekpKWmpqam - pqempqempqempqempqempqempqempqempqelpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqempqempqempqakpKSjo6SlpaWl - paWlpaWlpaWnp6SgoKmPj7mEhMWEhMWEhMWEhMSDg8SBgcOAgMGAgMOHh76MjLuQkLeTk7OUlLKenqmg - oKqlpaikpKmbm7CUlLaLi72Li72KiruHh7mFhbiFhbiHh7mEhMKDg8WEhMaEhMeGhsWRkbmgoKmfn6mT - k7WGhsGDg8aDg8SDg8SBgcSDg72Li7WTk7OUlLaVlbiVlbiUlLiYmLSgoKulpaWlpaWfn6qXl7OTk7WS - krGQkLKKiriCgsGAgMKCgsKDg8WFhcSLi7uKiryUlLKfn6ajo6KioqOkpKWYmLCKisCEhMeFhcWGhsOK - iryKirqCgr+AgMKBgcOCgsSCgsSCgsSJib6MjLuUlLKgoKWioqOcnKmWlrOVlbeSkrqKisKDg8WBgcOB - gcKCgsKIiL+MjLyLi7yLi72Li76JicCSkreenqijo6GioqOdnamcnKqbm6qZmaiWlquJibmFhbuFhbqD - g76CgsSFhcaGhseJicWJicWGhsaLi76amq6kpKWenqudnayenqyamrCRkbmMjL6KiruIiLiHh7iIiLmK - iruLi72Li7yQkLeRkbWbm6ulpaKjo6SkpKWkpKWkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sl - paWlpaWlpaWlpaWlpaWlpaWjo6QgAKOjpKWlpaWlpaWlpqamp6amp6amp6WlpaSkpKOjpKOjo6KioqKi - oqKioqGhopycppWVr5GRtZGRtIeHwIWFw4SEwoODxIODxYKCxoeHwZOTs5+fpqOjoaCgoJ6enp6enp6e - nZ2doZ2dpJycppWVsZCQt4yMvIuLvYuLvYuLvYqKvIqKvI6Ot5SUrpubpaCgoKCgoKCgoKCgoKGhoqKi - o6Gho56eppmZr5KSto+PuYiIwIODxYSExoODx4qKv4yMvYuLvoyMvJSUsqGhpKOjpKOjpKOjpKOjpKOj - o6GhopWVsYiIwYODxoODx4SEx4SEyIWFx4eHxYiIw4aGw4uLvZqar6SkpqSkpaSkpaSkpaSkpKGhopub - ppaWrZGRtIiIv4ODxoSExoSExoSExoSExoiIwY+Pt5WVr5ycqKGhoqGhoaGhoaGhoaGhoaGhopubqY2N - uYmJvoqKvIiIvoSExISExYSExYODxoWFwomJvI6OtZqapZ2dnp2dnZ2dnZ6enZ6eoJiYppOTrIyMtoqK - uYiIvYWFxoWFxYWFx5CQvJWVtpWVs5ubqaGho6Kio6OjpKOjpKOjpKOjo6GhpJaWsIiIwIODxoKCxIGB - w4ODxYSExYSExYSExYODxoeHwpGRtZ2dp6Gho6SkpKampqamp6amp6amp6amp6amp6amp6amp6amp6am - p6WlpaWlpaWlpaSkpaOjpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaamp6amp6amp6ampqSkpKOjpKWlpaWlpaWlpaampKGhqZKSuYWFxISEwoSEwoOD - xIGBxoCAxYCAwoeHu4uLvIuLvIyMu42Nu46OupaWsJ2dqqSkp6WlqJ+frZiYtI6OvYuLvYuLvImJuoaG - uISEuIGBwIGBwoGBw4ODxYSExoWFxZGRuZ+fqaSkpKCgqZOTtYiIv4mJvomJvYeHvomJtY6OrpGRspOT - tY6OvI+Pvo+Pvo+PvpWVt6CgqqWlppqar5SUtJWVs5WVsZGRsoODwIGBwoCAwYCAw4SEwouLuouLu4+P - tZKSspWVsZmZrp6ep6Kio5ycqI6OuIiIv4mJvYqKvYuLu4ODwYGBwoGBwoGBwoGBxIGBxIiIvIyMuIyM - uZOTsqCgpaKio5mZq5OTs5OTtZKSt4uLv4SEw4SEwYGBwYaGvYuLvIyMvIuLvYaGw4aGw4SExoyMvZub - rKSko6KioqGhpKKio6CgpZaWroqKuoeHvYaGu4ODvoGBwYKCw4WFxYmJxYmJxYmJxomJxZKSuZ6eqaOj - pKOjpZ+fqpmZsJGRuIyMvYyMvYqKu4iIuYeHuYiIuYqKvI2NvpGRt5SUtJOTtp2drKamoqOjpKOjpKSk - paSkpaSkpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKWlpaWlpaWlpaWlpaWlpaWlpSAApKSlo6Ok - pKSkpaWlpaWmpqanpqanpqanpaWmo6Oko6Oko6OjoqKio6OhnZ2nlJSwkZG0kJC2hobAg4PFg4PFgoLE - gIDFgoLEh4e/j4+3nJypoqKhoqKioqKioKCgnp6enp6dnZ2fmZmllJSrjo6zi4u5i4u9i4u9i4u9ioq+ - ioq+j4+4l5evnp6moaGhoaGgoKCgoKCgoKCgoaGgo6Ohn5+mlpavkpK2jo68h4fDg4PGg4PGhYXEioq+ - jIy9jIy9jIy9j4+5l5euoqKioqKjo6Oko6Oko6Oko6OknZ2qj4+4iIi/iIjAiorAi4vCi4vAhYXGhobF - hYXHh4fDkZG3nZ2qpKSkpKSlpKSlpKSlpaWkoqKll5eukJC0iIi+hITFg4PGhITFhITGhITGhITGhITG - h4fBkJC1m5uooaGioaGhoaGhoaGhoqKgoaGhmpqokpKzjY27iYnAhYXEg4PFhITFhITGhobCioq9jIy6 - jo60m5uln5+fnp6dnZ2dnZ2dnp6enp6gmpqmjo6zhYW/g4PEhITGhITGg4PKj4+8mpqynJyvnZ2poqKh - oqKioqKjo6OkpKSkoqKlm5usjo66hITEgoLHg4PFgoLEgoLEhITFhITGg4PHhITGjo68mpqsoaGjoqKi - oqKjpaWlpqanpqanpqanpqanpqanpqanpqanpqanpqanpqampaWlpaWlpaWlpKSlo6OkpKSkpaWlpaWl - paWlpKSlo6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpaWm - o6OkpKSkpaWlpaWlpqako6OnmJiyi4u/iYm/iIi9h4e9hoa+hYW9hIS6iYm5jIy5iIi/hYXDhITEhobD - kZG1np6npKSjpKSnn5+vl5e2jY3AjIy/ioq9iYm5hoa6gIDAf3/BgYHCgoLDgoLFhYXEjIy9k5O1nJyt - pKSmo6OmmJivkJC3kJC0j4+zjo60jY2wj4+skZGxjY25jY29jY2/jY3Ajo7AkpK8m5uxpaWmn5+sm5ut - nJyrmJiwjY27hITFgYHEf3/DgoK+iYm5i4u5jY27j4+4jo64jY27kpK1np6ooqKjoaGjlJSwi4u7ioq8 - ioq8hobDgYHDgYHCgYHCgIDDgYHCh4e7ioq4jIy4ioq6kZGznp6moqKjoKCmlZWykJC4i4u9hobChYXD - hYXChoa9h4e5iYm5iYm9h4fDhYXEgoLHiYm/lJSznZ2qpaWjo6Ojo6OioKCkl5ewjIy8iIi/iIi+g4PC - gIDCgIDBgoLBhobCh4fEiYnGiorDkJC9l5e2nZ2uoqKmo6Okn5+ql5eyj4+7iorAi4u9iYm6h4e3hoa3 - hoa5iYm4jo63jo68j4+7jo69lJS2nZ2roaGno6Oko6OkpKSlpKSlpKSlpKSlpaWlpaWlpaWlpaWlpaWl - paWlpKSlo6OkpKSlpaWlpaWlpaWlpaWlIAClpaWkpKSkpKSkpKSlpaWlpaampqempqempqelpaWjo6Sj - o6Sjo6Ojo6GdnaiWlq+Pj7eHh8CCgsWCgsSCgsWBgcWBgcOHh72Pj7WRkbOdnaajo6CioqKioqKioqKg - oKCdnZ+ZmaKTk6uMjLWJibqIiLuJibyLi72Kir6Li7yRkbaYmK6amqugoKWkpKGhoaGgoKCgoKCgoKCg - oKCiop+goKSWlrCRkbaRkbaLi76FhcWDg8aEhMWHh8KKir6NjbyRkbiWlrGcnKiioqKioqKioqOjo6Sk - pKOgoKeUlLSLi72Kir2KiryMjLyMjL2IiMOFhcaEhMeGhsWMjL6Xl7KioqSioqOkpKWkpKWkpKWkpKWf - n6qRkbiJib+CgsOBgcSCgsOCgsSEhMaEhMaDg8eEhMaJicCSkrSfn6OhoaGhoaGhoaGhoaGhoaKdnaaX - l6uRkbONjbmHh8GBgceDg8aEhMWFhcWHh8GIiMGKir2Tk7Gfn6KgoKCfn5+dnZ2dnZyenpycnKGTk66J - ibyDg8SDg8eFhcaEhMeHh8SRkbuYmLWamrKenqykpKOioqKioqKioqOkpKOhoaaUlLSLi72IiMCJicCH - h8KCgsWCgsSEhMWDg8aFhcWOjryamq+hoaWjo6OioqKioqKioqOkpKWmpqampqempqempqempqempqem - pqempqempqempqalpaWlpaWlpaWkpKWjo6SkpKSlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6SkpKSl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqempqempqelpaajo6SkpKSkpKSlpaSlpaWhoamYmLKQkLmO - jriNjbWOjrONjbOHh7eIiLeGhr2EhMSCgsaDg8WIiMCRkbWfn6Wjo6KioqWioqienqyRkbmLi72KiruH - h7uBgb9+fsJ/f8GBgcOCgsSGhsKMjL6Pj7qVlbSamq6ioqaenquVlbSUlLSTk7ORkbGQkLGQkK2MjLGG - hryEhMCFhcKKir+Njb6Njb6Pj72Xl7akpKilpaelpaagoKmTk7eGhsWEhMeBgcaEhL+GhrmHh7qIiLyJ - ib6MjL2MjL2Kir6Pj7ednaejo6Ojo6Kbm6uOjriFhcGDg8OBgceAgMSAgMN/f8OCgsCIiLuLi7iFhb6G - hr+EhMKKiruZmaqioqGjo6OYmK6Li7yEhMSEhMSFhcKHh72IiLmHh7aFhbqFhcCEhMOEhMSKir6VlbGc - nKifn6aioqajo6SkpKKdnamPj7mHh8OJicCIiL+Hh76EhMGBgcGCgsCFhcCGhsGLi8CQkL2Tk7qUlLmW - lredna+kpKWioqWfn6mZma+SkrSOjraIiLqGhrmFhbiHh7WKirOLi7iKiryKir+NjbySkraZma+goKik - pKWjo6SkpKWkpKWkpKWkpKWkpKWlpaWlpaWlpaWlpaWlpaWlpaWkpKSkpKSlpaWlpaWlpaWlpaUgAKWl - paWlpaSkpKSkpKSkpaWlpaampqamp6amp6amp6WlpaOjpKOjpKCgppubqpKSs4eHv4CAxoKCxIKCxIKC - xIKCw4eHvI+Ps5KSsJOTr52dpaOjoKKioqKioqKioqKioZ6eoZOTqoyMs4qKuImJu4qKu4uLu4uLvYuL - vI+PuJSUtJeXsJiYr5+fp6OjoqKioqKioaCgoKCgoKCgoJ+foZycpZqaq5SUs5KStYyMvIaGw4ODxoOD - xoaGw4uLvY6OupOTtpubraKipKKio6KioqKioqOjoqKipJqaroyMvIuLvoqKvYqKvImJvYeHwYSEx4SE - x4eHxI6OvZWVtZycraWlpKOjpKKio6OjpKWlpKKip5aWs4mJwYWFxoKCxYGBw4GBwoGBw4KCxISExoaG - xIyMvpOTtpqaraOjoaGhoaGhoaGhoaKioJ+fo5aWrpCQtIyMuYuLuoiIvYaGwYeHwYWFxIaGw4aGxIWF - xI2NvJubq6KioaGhoKCgoJ+fnp2dnZmZopCQroaGvIKCxYODxoSExYSExoeHxI+PupSUt5SUuZiYtaOj - qqampqOjo6KioqKioqOjop2dqo+PuY2NvI2Nu4uLvYeHwoODxoODxYODxYWFw4yMvJeXsaCgp6Ojo6Oj - pKKio6KioqKioqKioqSkpKampqamp6amp6amp6amp6amp6amp6amp6amp6Wlp6WlpqWlpaWlpaSkpKOj - pKOjpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpqWlpqWlpqWlpqWlpaWlpaampqam - p6amp6amp6SkpaOjpKOjpKOjpaWlpKWlpZ6eq5iYsZaWsZSUsJGRsIyMs4eHuIODuYGBwYGBxYODxIiI - vpCQtZKSs5qarJ2dqKCgpaSkoqOjo5eXsIuLuoaGvYKCwH9/wn9/wX9/wYCAwoKCxYeHw4qKwIqKwJWV - tZubraCgp5ycrJSUtZSUtpOTtpKStJKSsI6OsoSEvH5+xICAw4ODwYqKvY2NvI6OvZCQvJSUuZ6erqWl - p6enpZ6erY+Pu4WFxIiIwoaGwYiIu4WFuYKCvIaGv4iIvoqKvIuLvYqKv46OuZmZq6CgpaKio6GhpZeX - r4yMu4aGv4eHvYSEv4ODv4KCvoaGuoqKuIeHv4KCxIKCxYKCxIiIvJaWrKKin6OjoZubqoyMvIWFxIeH - wYaGvoiIuYiIt4WFuIGBvYGBwYODwIeHwI+PuJSUs5eXsJiYrZubq6OjpKSko5+fp5OTtIqKv4qKvouL - voqKvYaGwISEwIKCv4KCwYODwoiIv4uLwI+PvpCQvZGRvJmZtKWlp6Wlo6WloaGhpJmZrJKSsouLuImJ - t4iItoiIs4iItIiIuoiIuoyMuZOTtJiYsJqarZ+fqaSkpaWlpqSkpaSkpaSkpaSkpaSkpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaSkpKSkpKSkpaWlpaWlpSAApaWlpaWlpaWlpKSko6OkpKSlpaWlpqampqampqan - paWmo6Oko6Okm5utkZG1hobBgIDHgoLDgYHDgoLEgYHFhoa+j4+zkpKvkZGwmZmln5+hoqKhoaGhoqKi - oqKioqKjoKCklJSvi4u2ioq4h4e9iYm+iYnAioq+jY26j4+4jo67jo67l5exoKCmo6OioqKjoqKioaGh - oKCgoaGfnJyll5erlparkZG1ioq+hITFgoLGg4PEhobBjIy7jY27jIy8kJC4nJyspaWjo6OkoqKjoqKi - o6Ohn5+llZWyioq/i4u+jIy+jIy9h4fCgoLHg4PFh4fDjIy/kpK4m5uuo6OnpaWlpKSloqKjoqKjpaWj - oKCpkZG6hITHhYXGhYXFgoLFgYHEgYHDgYHEgoLEh4fCj4+6mZmwoaGno6OkoqKjoaGhoaGhoqKgnJyn - j4+3i4u7jIy6i4u5i4u5i4u6ioq+hobDhobDhYXEiYm/lZWyoKCloqKioaGhoKCgoKCfnJyikZGthYW+ - gIDDgoLFhITFhITFhobCjo67lJS1lJS0k5O3nJywqamlpqanpqampKSko6OhoaGjmJiui4u9jY27i4u9 - hobEg4PHhITGhITGg4PFiYm+kpK0mZmtnp6oo6OkpKSkpKSko6OjoqKioqKio6OkpKSlpaWmpqanpqan - pqanpqanpqanpqanpqanpqanpqanpaWmpaWlpaWlpKSko6Oko6OkpKSlpaWmpaWmpKSlo6Oko6Oko6Ok - o6Oko6OkpKSlpaWmpqanpqanpqanpaWmpaWlpaWlpqalpqampqanpqanpKSlo6Oko6OkpKSko6OmnJyt - nZ2snp6rl5exjY25iIi8hoa8f3/BgIDCgYHDh4e9j4+2j4+2jo63jY25k5OynZ2no6OioqKjnp6nkZG1 - hITBgIDEgYHCgIDBf3/BgYHBgoLDgoLHg4PHiIjDlJS1nJyrnJypnp6pnJytlZW0l5ezlZW1kZG2hoa/ - f3/EgYHAgoK+iIi5i4u4jIy7j4+6lJS3lpa4mpqypKSoo6OpnJyxlZW3jo65jY26i4u6h4e8g4O8g4O8 - h4e9ioq6ioq6i4u7ioq9jo65l5evnJyooaGjpKShoaGlnJyql5eslJSsi4u3h4e3h4e1h4e2hoa9goLE - g4PDhITDiYm7jo60lZWtoKChoaGhnp6lkpK0jIy8jY26i4u5iIi5hIS5gYG9gIC/gYHAg4PBiYm/iIjB - iIjAioq+j4+5mJiuo6Oko6OkpKSjm5utj4+5jIy8i4u+h4fDhYXChITAgYHAf3/BgYHDgoLFgYHHhobE - i4vCjY3Al5e1paWopqampqakoKColpaxkZG1kJC2j4+1jY2zh4e1hIS4iIi4i4u3kZGxlZWxmJiwmpqu - m5uupKSlpaWmpaWmpaWmpaWmpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6OkpKSlpaWl - IAClpaWlpaWlpaWlpaWkpKWjo6SlpaWlpaWlpaWlpaWkpKWjo6SioqWYmLCJicCDg8aDg8SCgsOCgsSB - gcOBgcWKirmTk66RkbGRka+dnZ+fn52goKChoaGhoaGioqKgoKWamquUlLGNjbeGhr6CgsWDg8aDg8aI - iMCMjLyLi72Li72Rkbienqmjo6Sjo6OioqOioqOioqKhoaGhoZ+dnaSWlqyOjrSIiLuCgsOCgsWDg8WG - hsGLi7uKiryLi72MjLyWlq+hoaSkpKSjo6Sjo6SioqKhoaOenqaWlq+MjL2MjL2MjL2Hh8ODg8aDg8SF - hcKMjLuNjb2RkbqenqyoqKKlpaWlpaWkpKWioqSkpKKgoKiSkriGhsWFhcaEhMWCgsWCgsWCgsWCgsWD - g8KDg8SMjL2cnKylpaGjo6Sjo6SioqOioqGgoKKYmKyMjLqNjbiNjbmPj7WNjbWHh72FhcKFhcKGhsOF - hcSNjbubm6qjo6KioqKioqKioqKfn6KYmKiMjLaAgMSAgMOCgsSEhMWHh8KOjrqSkrSUlLWUlLWYmK+h - oamnp6empqempqempqakpKOhoaKZmayNjbuMjL2EhMWEhMeFhcaFhceFhceFhcaKisCRkbaZmayfn6ak - pKSlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaampqempqempqempqempqempqempqelpaWl - paWlpaWlpaWkpKSjo6WmpqempqempqempqakpKSjo6Sjo6Sjo6Sjo6SlpaampqempqempqempqelpaWl - paWlpaWlpaampqempqempqekpKWjo6Sjo6SioqWdnaydnayenquUlLaKir+IiL+CgsSAgMGBgcGGhruO - jrONjbWDg8SEhMOCgsWMjLqcnKmjo6GhoaOioqKXl6+Jib+BgcSAgMKAgMGAgMCAgMGAgMKBgcSFhcKO - jruUlLWcnKyenqmioqSioqWcnK2cnK2VlbWIiMKCgsaCgsKDg76GhraIiLmIiLqIiLyLi7uQkLeVlbSd - na+lpailpamdnbCXl7WUlLeOjryJicGGhr+Dg7yEhLqHh7iJibqJibyJibyJib6NjbqWlrCdnaihoaKi - oqGjo6Kjo6ChoaKXl6uNjbeIiLmGhreDg7yAgMSCgsODg8OJibyPj7WRkbORkbKYmKqgoKOhoaCXl6yR - kbWSkrKQkLKKireCgr2AgL6Bgb2BgcGBgcWCgseBgcmIiMGMjL2Pj7uWlrGioqOjo6SlpaKcnKyQkLmJ - ib+GhsKGhsKGhsGDg8KAgMJ/f8GBgcKBgcOCgsSDg8aDg8iIiMWWlrekpKmmpqeoqKSdnayQkLiRkbiQ - kLeQkLaLi7mGhriFhbaJibaQkLCRkbWRkbaSkraRkbeUlLSjo6akpKWlpaalpaalpaalpaakpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6SlpaUgAKOjpKWlpaWlpaWlpaWlpaWlpaOjpKWlpaWl - paWlpaWlpaSkpZ2dqZiYr4+PuYqKwIaGw4KCxYKCxIKCxoeHv4+PtZOTsJKSsJWVq52dn56enZ6enqCg - oKGhoaGhopqarJWVsY+PuIiIwIODxYODxISExYmJv4yMvIuLvYyMvJGRt5WVsqGhpqSko6OjpKOjpKKi - o6Kio6KioqKioJ6eo5OTroeHvYKCxIGBw4GBxIeHwImJv4ODxYSExIODxY2NupycqKSkoKKioqOjpKOj - pKSko56ep5iYrZOTtIyMu4uLuoSEwoODxYODxoaGw4yMvYyMvZKStpaWs5+fq6ampKWlpaWlpaWlpaWl - paSko6CgpZmZsIyMvYWFxYODxoWFx4WFx4WFx4aGxYSExY2Nt5WVrJ2dp6Sko6OjpKOjpKOjpKOjoqCg - o5mZqZSUsZGRtI6OuIyMuoiIvoSEwoWFwoWFwoSEw4iIv5WVsqCgpaKio6Kio6KioqCgpJqaqZKSr4uL - uIKCxIODxYODxoeHwo6OupOTtJKStZGRtZiYsKGhqKWlpKSkpaamp6amp6amp6ampqSko56eppCQtoWF - xISExYSExoSExoWFxoWFx4WFx4uLwZeXsaCgp6OjpKOjpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOj - pKOjpKSkpKWlpaamp6amp6amp6amp6amp6amp6amp6WlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6am - pqSkpKOjpKWlpaWlpaWlpaWlpqamp6amp6amp6amp6WlpqWlpaWlpaWlpaamp6amp6amp6WlpqOjpKOj - pKOjpKWlpKGhqZWVtomJw4SExYKCw4CAwoWFuo6OsYyMtoODw4ODxISExYODx4qKvZmZq6OjoaGho5ub - qo+PuIaGw4ODxoKCw4GBwoCAwX9/wYCAw4WFvYmJuYuLu5OTtZycq6OjpqWlpKKip5mZrpKStoaGw4WF - xoODxYODv4eHuIeHuYiIuIODwYCAxYGBxYSExI6OvJmZsKOjqaiopaCgrJSUuI6OvoqKwoiIwoaGwIaG - vIeHuIaGt4eHuYODwoKCxYKCxoWFxI6Oupqaq6Cgo6GhoaKioaCgpJeXrY2NuoqKu4qKuYSEvX9/woGB - wYGBwoiIu4qKuYuLvIuLvouLvY+Pt5ycqaKioJmZqZOTsJSUr5OTsJGRsYmJuIaGuIKCvH9/w4CAw4KC - xYKCxomJwJCQupGRuJOTtp+fpqKio6Skop2dqo+PuYaGxIaGwoaGwYODw4GBw4CAwX9/wYGBwoGBwoGB - w4GBxYeHwo2NvY6OvpubsaWlqKenppubsI+PupGRuJGRuIyMvIqKu4eHuYiItI6OrY+PsYuLuoqKvYuL - vYuLvo+Pup2dqqOjpaSkpaWlpqWlpqWlpqWlpqSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOj - pKOjpCAAo6Oko6OkpKSlpaWlpaWlpaWlpaWlo6OkpKSlpaWlpaWlpKSlnZ2ompqtjo67hobEhITGhITG - g4PFh4fBj4+3lJSylJSxlZWsnJymn5+gnp6enp6enp6eoKCfoKChlZWvkJC3iIjAhITFhITFhYXEioq/ - jIy9ioq9jIy7kJC3lZWxm5uroaGko6Ojo6Oko6Oko6OkoqKjo6OioKCjlJSviIi9goLEgoLEgIDFh4e+ - h4e/hITEhITEg4PFhYXBkZG0np6mo6OhoqKioqKio6OkpaWjnJyrkZG1jY26ioq7hYXCg4PEgoLGhobD - jIy+jY28kpK3lpazmpqsoaGmpqalpaWlpaWlpaWlp6eko6OnmZmukZG2i4u9jIy9hYXDg4PFhITGhYXH - hYXGkZG5l5evm5ukoKCfoqKjo6Oko6Oko6Oko6Oknp6nlpaukJC1j4+3iYm+hobBhYXChYXChYXChITD - iIi+j4+3m5urpKSioqKjoqKjo6OinJyplJSxjo63iYm7iIi8ioq+jIy+jY29jo67jo67jY27kJC2nZ2o - pKSjpKSlpKSlpKSlpqanpqanp6enpKSnmpqui4u8hYXEhITFhITFhITFhITHhITIiorBkpK5mpqwoaGn - pKSjo6Oko6Oko6OkpKSlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6OkpaWlpqanpqanpqanpqanpqan - pqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpqanpaWlo6OkpaWlpaWlpaWlpaWmpqanpqan - pqanpqanpqampKSko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OknZ2ql5exlJS1kJC6i4u/iYm8h4e5iYm0 - h4e5g4PBgoLEg4PEg4PEgoLHh4fAlZWwoaGioaGjmJitkZG2i4u8ioq7h4e8gIDDgIDBfn7Dg4O9hoa5 - ioq3kpKykpKylZWyl5exnJyrnZ2rkpK4hobEhITGg4PHh4fBiYm6iIi4iIi4g4PCgYHFgYHFgYHFgYHF - g4PEjIy9mZmwpaWno6Oqk5O4iIjEiYnDiYnDiYm+iYm6iIi3hYW3gIDAgYHCgIDFg4PDioq7k5Ozmpqq - oKCio6OhoKCjl5etjIy7i4u8jIy8hobBgYHEf3/DgYHAhoa6iYm5iYm5ioq8jIy8jY26j4+5lZWxoKCj - np6jlpaskpKxkZGzioq6ioq5g4O+fn7Cfn7Bf3/CgYHFh4e/jo65kZG4kJC5k5O2oKCmoqKjo6OioKCl - l5exjIy+jIy9hYXDgoLEgYHEgIDCf3/BgYHCgoLEgoLGh4fBjIy9i4u+jIy9m5uxpaWop6emnJyxkJC8 - kJC5kJC3kJC1jY2yjIyvi4uviIi1iYm4ioq6i4u9i4u9jo66lZWynZ2qoqKlpKSkpKSlpKSlpaWmpaWm - paWmpKSlpKSlpaWlpaWlpaWlpaWlpaWlpKSko6Oko6Oko6OkIACioqOjo6SkpKSkpKSkpKSkpKSkpKSj - o6Sjo6WlpaWlpaWhoaibm66QkLmHh8OEhMaEhMeFhceKisCSkriVlbSUlLWUlLOZmaqgoKKgoKCfn56e - np6enp6enp+ZmaaOjraHh8CEhMWDg8eGhsWMjL+Njb2Njb6Pj7uRkbeTk7OZma2hoaWioqOioqOioqOj - o6Sjo6Sjo6ShoaSXl6+KiryEhMOEhMODg8OHh72EhL2CgsKCgsWEhMSIiL+NjbiZmaugoKKioqGioqKi - oqKioqOioqWbm6ySkraLi76FhcKDg8SCgsaHh8KMjL+QkL6UlLiYmLSVlbSdnaqkpKOlpaSlpaWlpaWl - paWjo6ebm6+WlrWTk7WMjLyGhsCCgsOCgsWDg8aGhsWQkLuXl7OdnayhoaOgoJ6fn5+ioqKjo6Sjo6Sk - pKOcnKuRkbaNjbmIiL2EhMKDg8SEhMSEhMSFhcKJib2QkLWWlq+enqajo6CioqOioqOkpKGZmayOjrmK - ir2Li7uLi7mGhsGGhsOIiMOIiMOGhsSGhsSRkbeenqakpKGjo6WkpKWkpKWlpaanp6ejo6qamrOOjr2F - hcSEhMWEhMaEhMaDg8aFhcWMjMCSkriZmbGhoaqkpKWkpKWkpKWjo6Sjo6SkpKSlpaWlpaWlpaWkpKSk - pKWkpKWkpKWjo6Sjo6SkpKSmpqampqempqempqempqempqempqelpaalpaWlpaWlpaWlpaWlpaWlpaam - pqempqempqempqakpKSjo6SkpKWlpaWlpaWlpaampqempqempqempqelpaWkpKSjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sbm6uUlLSTk7WTk7SQkLWPj7KLi7SFhbmCgsCCgsWDg8WEhMWDg8aGhsCMjLuSkrObm6ih - oaGcnKiXl6+Pj7iIiMCDg8SBgcWAgMSDg72FhbuMjLSOjrSHh8CHh8CGhsKJib+WlrKdnayVlbeMjL6N - jbuKir6Kir2Li7mIiLqBgcCBgcWCgsWCgsaBgceCgsWJicCKir6Xl7CkpKakpKiamrOSkruTk7qNjb+L - i7+Li7qHh7mAgL9/f8F/f8ODg8GLi7mSkrSWlrSWlrGcnKqioqKgoKSXl66Pj7eLi7yLi7yJib+Hh7+G - hryFhbqGhreJibmJibqKirqNjbmQkLiVlbGZma2hoaSioqCZmaiOjrWLi7qKiruFhcCAgMJ/f8J+fsJ/ - f8KGhr2MjLePj7WQkLeQkLmUlLWdnauioqSjo6Kjo6KdnamPj7qHh8OEhMaDg8aCgsSAgMKAgMGBgcKB - gcWHh8KLi76Li72MjLyTk7Wamq6jo6mnp6afn66UlLmVlbeUlLaTk7OVlamRkauHh7WFhbeIiLiKirmK - iruPj7iWlrGamqybm6uioqWjo6SkpKWkpKWkpKWlpaalpaalpaakpKWkpKWlpaWlpaWlpaWkpKSjo6Sj - o6Sjo6Sjo6QgAKKioqKio6OjpKOjpKOjpKOjpKOjpKOjpKKio6OjoqGhpZiYr4+Pu4WFxYKCx4KCx4WF - xYqKwI6OvpGRuo+PvJCQu5iYsqKipaKioaGhoaCgoZ+fn56enZuboZGRsIWFv4KCxoKCxoWFxIuLv46O - vI6OvY6OvY6OvI+PuZaWsaCgpaKio6Kio6Kio6Kio6Kio6OjpKOjpJubq4yMvISExoSExYaGwoiIvYeH - vYKCwYCAxIODw4aGwIiIvpSUsZ6epKKioKGhoaGhoaKioqOjoJycqZaWsY6OuoWFxIODxYSExYeHwo2N - vY2Nvo6OvZeXtpqatJubsKGhp6Sko6OjpKSkpKWlpaampJ2drpaWtpSUt5CQuoiIwoODxYKCxIKCxoWF - w46Ot5aWsZeXs52draOjpqOjop+fn5+fn6KioqSko6OjpZmZr42NvImJwISExIODxISExIODxoSExIqK - voyMvJGRtZubqaGhoaGhoaGhoqKio6GhpZaWsZGRtpCQt4uLvIeHwYKCxIGBxYODxoODx4SExoqKwJSU - tZ+fp6OjoqKio6OjpKSkpaSkpaWlpKKiqZiYtoqKw4SEx4WFxoWFxoWFxoSExoeHw4+Pu5WVtZubr6Oj - p6ampKWlpaWlpaSkpaOjpKOjpKWlpaampqampqampqWlpaWlpaWlpaSkpaOjpKOjpKSkpKWlpaamp6am - p6amp6amp6ampqSkpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlp6amp6amp6ampqSkpKSkpKSkpKWlpaWl - paWlpqamp6amp6amp6amp6ampqSkpKSkpaSkpaSkpaOjpKOjpKOjpKGhppycrZWVs5KSs5GRsY2NtYeH - uoGBv4CAwYKCw4ODxYODxoeHwYqKu4uLuo2Nt5eXrKKioKGhopeXrY2NuYeHv4aGwIaGvoWFvYWFuouL - souLtIaGv4CAx4GByISExI+PuJycqqGhp5ycrpaWs5CQuYyMvIuLu4mJvIODwX5+w4CAw4GBxIKCxoWF - w4uLvo2NvIyMvZqar6OjpaSkpaCgq5qasZiYtI+PvY2NvYmJvYKCwH9/wn9/woKCwImJt5CQsJOTsZSU - tZSUtZmZrqGhpaKio56eppaWroqKu4qKu4uLu4uLu4qKuoiIt4aGt4mJuYuLuYyMt46OtZKSs5WVspiY - rZ6ep6OjoZ2dpo+Ps4aGvYSEwIGBw4CAxH9/w39/wYODu4qKtI2NtY+PtpCQtpOTs5eXsJmZr6GhpaOj - pKSkoZ6epo+PuYKCyIODx4KCxoGBxoGBxICAw4CAwoWFvoqKu4yMvIqKvYuLvI6Ouo6OupmZr6Wlp6Oj - q5qas5ubspqasJubrZWVroyMtIeHuIaGt4SEv4WFwISEw4yMu5iYrpubqZqaqqKipKOjo6OjpKSkpKWl - paWlpaWlpqWlpqSkpqSkpqSkpaWlpaWlpaSkpKOjpKOjpKOjpKOjpCAAoqKjoqKio6Oio6Oko6Oko6Ok - o6Oko6OkoqKko6OhoKCjlpaviIjAhYXChYXBhYXCiIjAjo67jY29jY2+jo6+kpK5nZ2tp6eio6OjoaGh - oaGhoaGhoKCenJygkZGvhYW/hITBhITBiIi9i4u7iYnAiorBiorBiorBj4+7m5utpKShoqKioqKjoqKj - oqKjoqKjo6OkpKSjmJiwioq/hYXEh4fBiIjAiIi/hITDg4PFhITChoa/iYm7jY21mpqpoKCioaGgoaGh - oaGhoqKioaGjl5evjIy7hobDgoLGg4PEhITFiIjAiIjAioq9kZG4lpa2l5e2oqKspqanpKSlo6Oko6Ok - pKSlp6ejmpqxk5O5kJC8h4fDg4PHg4PFg4PGg4PGioq8lZWvlpaumZmuoKCqpKSmpaWlo6OjoKCgoKCg - oqKim5uskJC4iYnBhYXEhITFhITFg4PGhITFiYnAjIy8j4+5lJSynp6lo6OfoaGhoaGhoqKinZ2pmpqt - lpaxj4+5h4fCg4PGgYHDgYHDgoLEhITFioq/lJS1mpqvoqKopKSjoqKjoqKjo6OkpKSkoaGlm5uukpK7 - iYnFhobIhYXIhYXGhYXGhYXGhobFi4vBlJS3n5+tpKSnpaWmpaWmpaWmpaWlpKSko6OkpKSlpqanpqan - pqanpaWmpaWlpaWlpaWlpKSko6Oko6Oko6OkpaWlpqampqampqampKSko6Oko6OlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpqampqanpqanpqampaWlpKSkpKSlpaWlpaWlpqanpqanpqanpqanpqanpqampaWlpaWl - paWlpKSko6Oko6OkpaWinJyslZW0kZG2jo63i4u7goLBgIDCgIDBgYHCgoLEh4fAjIy7jIy8jIy7kJC2 - mpqso6OhoqKflpaujIy5iYm7iYm6iYm6iYm5i4u2i4uyhIS9fn7HgoLEhobBkZG2mJiroKCkpKSjoKCo - lpazjY2+i4u/iYm+g4PBf3/Ff3/CgIDDgYHDgoLFhobDiorAiYnCiIjDlJS3n5+ppKSioqKmm5uulZW0 - jY27iYnAg4PEf3/Gf3/CgYG+iIi2jo6wkZGwkZGzlJS0mJixn5+po6OlpaWioKCllJSyiYm9iYm8iIi8 - iIi8iYm6iYm5h4e4iYm5jIy5jY25jIy3j4+1kpK0lZWxnJyooqKjoqKjmZmqi4u6gYHFgIDEf3/DgIDC - hIS7iYmzi4uxjY20j4+1kpKyl5etmZmrmpqtnZ2qoqKlpKSin5+mk5Ozioq/hYXChYXChYXAhYXAhIS/ - g4O+iYm5ioq6ioq8ioq9iYm+iIi/jY28lpawoqKnpKSonp6sn5+rnp6rmZmwj4+6iYm8h4e5g4O8gIDE - f3/FgoLEjIy6lpawmJitmJitn5+mo6Oko6Oko6OkpKSlpaWlpaWmpaWmpaWmpaWmpKSlpaWlpaWlpaWl - paWko6Oko6Oko6OkIACjo6SioqOioqKioqKjo6Ojo6Sjo6Sjo6Sjo6Sjo6Ofn6WXl62MjLuLi7uLi7uL - i7qKiruJib+Kir+JicKRkbuamq+ioqempqWlpaWjo6OhoaGhoaGgoKGcnKKVlamLi7eKirqKiriIiLmG - hr+CgseEhMaDg8iJicKXl7Ojo6ekpKOioqKioqOioqOioqOioqOioqOhoaaUlLSNjbyMjL2MjLyJib+D - g8aCgsaEhMSIiL+Li7qOjrSYmKaenqGhoaGhoaGhoaGhoaGhoaGdnaaUlLGJib+Dg8aEhMWEhMWDg8WC - gsaAgMiJib+UlLSVlbSXl7WkpKqnp6ampqekpKWjo6Sjo6SkpKSbm6+Pj7yHh8SCgseDg8WCgsSEhMSJ - ib+OjreSkrOTk7Kbm6ajo6SmpqSlpaWlpaWjo6OhoZ+cnKSRkbSGhsCDg8ODg8SEhMWEhMWFhcWJicCN - jbuQkLmVlbGcnKmgoKOhoaChoaGhoaGhoaCdnaeamquQkLeFhcSDg8aDg8WBgcOAgMOCgsOJibySkrOX - l7CgoKikpKWkpKSjo6SioqOioqOhoaaamq+OjruGhsWFhcmFhciFhciFhcaFhcaFhceEhMiFhceUlLik - pKmnp6ampqempqempqelpaalpaWkpKSkpKSlpaWmpqempqempqelpaalpaWlpaWlpaWkpKSjo6Sjo6Sk - pKWkpKWkpKSkpKSjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqekpKWj - o6SkpKWlpaWmpqempqempqempqempqempqelpaalpaWlpaWlpaWkpKSjo6SkpKOXl7CQkLeQkLmNjbyL - i7qCgsKBgcN/f8GAgMGFhb+KirqLi7uLi72Skreamq6fn6mioqWioqKamqqSkrSMjLmLi7mLi7iLi7eN - jbSDg759fcR/f8KFhb6RkbObm6qbm6udnaiioqOfn6iUlLWOjruQkLqIiMKAgMmBgcWAgMSAgMOBgcOC - gsWDg8eCgsiDg8mDg8mJicKXl7OioqaioqScnKqWlrGNjbuFhcOEhMWDg8OCgr+IiLSOjq+RkbCTk7ST - k7aWlrScnK6hoamjo6elpaSenqmRkbaPj7mOjraOjrWLi7aKiriKiriIiLiGhruHh7+IiMGJib6OjreT - k7CXl66cnKmgoKSkpKGgoKaRkbWEhMKCgsOBgcOFhbyKirOKirCKirCNjbKQkLGTk6+Vla+VlbCWlq+X - l7CgoKelpaOioqWdnaiYmKyPj7SNjbaMjLiKirmJibiIiLiHh7iIiLqJibyJib2Kir2NjbmVlbKbm6yh - oaajo6Sioqafn6mamrCOjryLi76JibyEhL6AgMKAgMKCgsGHh7qNjbeOjriOjrmOjrmWlq+fn6Wjo6Oj - o6Sjo6SkpKWlpaWlpaalpaalpaalpaakpKWlpaWlpaWlpaWlpaWkpKSjo6QgAKOjpKOjpKKio6KioqKi - o6OjpKOjpKOjpKSko6Cgp5aWsY+PuIyMu4yMu4uLvIqKvIeHv4KCx4ODxoODxo+PvJ6eraampKWlpaWl - paWlpaOjo6GhoZ6epJeXq4+Ps4mJuYmJuYiIuIODvoCAxoGBxYODxoODx42NvJ6eq6ioo6WlpaOjpKKi - oqKio6Kio6Kio6GhpJubq46Ou4uLvoyMvYiIwYKCxoODxYKCxYeHvoiIvY2NtpmZpp6eoJ+fn6CgoKGh - oaGhoaGhoaGhopycp5eXrY+Pt4eHwYODxoODxYODxYODxYSExYeHwoyMu5SUtJubraSkqKenp6amp6Wl - pqSkpaOjpZ6eqJaWsYmJv4KCx4SExYSExYODxomJwI2Nuo6Ot46OuI6OuJqapqGhoaSko6WlpaWlpaWl - paOjopiYq4mJu4KCxYODxIODxYODxYSExYmJv42NvI6Ou5OTtJmZraKipKOjoaGhoqGhoaGhoaCgopqa - qY6OuYWFxIODxoSExYSExYKCxIGBxIiIvJGRsZOTrpWVsKKipaWlpKSkpaSkpaOjo6Kio5qaqpCQuYaG - xISEx4WFxoSExoSExoWFxoWFx4WFyIaGxoyMwZmZs6Ojp6ampaamp6amp6amp6amp6WlpaWlpaSkpKOj - pKWlpaamp6amp6amp6ampqWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKWl - paWlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6ampqSkpKOjpKWlpaamp6amp6amp6amp6amp6amp6am - p6WlpqWlpaWlpaWlpaOjpKSko5ubrJCQt4yMvI2Nu4yMvYWFw4KCwoCAwYKCvIiIt4mJuoqKu4mJvZSU - tJycrJubrZycq6OjpKCgpJmZrJSUsZGRsY+PsI6OsoKCwH9/xH9/woKCvY2NspmZqpmZrZmZrpmZrpqa - rJqarJeXsJeXsZeXsoyMv4ODyIODxYGBxYCAwoCAw4CAw4KCxYODxoSExoWFx4aGx5CQu56eq6Wlo6Cg - pZubq4+PuIyMu42NuoyMuoqKt46OrY+Pr5GRspOTtpSUuZSUuZOTuZKSuZiYsqKiqKKippqarJycqZqa - qJmZqJOTrI6OsYuLt4aGvICAwYCAxICAx4iIv5WVsJeXrJmZqZmZqp+fpqSkoZ6ep5KStIyMuouLuYuL - uYyMtYyMsIqKsYiIsoyMso6OsouLt4qKu4uLu4yMupOTs5+fp6Sko6OjpKSko6OjoZycp5WVroyMt4iI - u4iIuYeHuYaGt4aGuYiIvImJvouLu5KStJGRtZaWr6CgpqWlo6KipZqarY2NvIyMvYyMvYaGwoGBxYGB - woGBwIeHuImJt4WFv4KCxoODxoSExpCQt56ep6OjoaKio6OjpKOjpKWlpaWlpaWlpqWlpqWlpqWlpqSk - paWlpaWlpaWlpaWlpaOjpCAAo6Oko6Oko6Oko6OjoqKioqKio6Oko6Oko6OkmZmtjo66jY29jIy7jIy7 - hobCgoLGg4PFg4PFg4PFj4+5l5ewn5+ppaWlpaWlpaWlpaWlpqaloaGml5eskJC0ioq7iYm6iYm5hITA - gIDFgYHEgYHEgYHEiIi/j4+5nJytp6ejpaWlpaWlo6OkoqKjoqKioaGjnp6mmZmsjo66i4u+h4fCg4PH - hITGg4PFiIi9iYm8iYm8kZG0nJyloKCgn5+fn5+foKCgoqKhoKCim5uolpavkJC2h4fAgoLGhITGhITG - hITGhITGiYm/jIy8jY28k5OzoKCmo6OjpaWmpqanpqanpaWnnp6qmZmui4u+g4PGg4PEg4PEg4PFg4PF - goLGh4fBjIy7jo63lZWvoKCioaGgoaGho6OjpaWlpaWloKCqk5O1hobAgYHEgoLEg4PFg4PFiIi/jIy7 - jo66jo65j4+4lZWyoKCmo6OioqKjoqKhoKCimZmpj4+3hYXDg4PGhITFhITFhITFg4PEh4e+jo61kpKv - k5OsmpqmoaGipKSkpKSlpKSlpKSloaGlm5uqkZG2h4fChITGhITEg4PFhITFhITFhITGhobHjY3Ampqy - oKCspKSnpaWlpaWmpqanpqanpqanpqanpaWmpaWlpKSlo6OkpaWlpqanpqanpqanpqampaWlpaWlpaWl - pKSko6OkpKSkpaWlpaWlpaWlpKSko6Oko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqanpqan - pqanpqampaWlo6OkpaWlpqampqanpqanpqanpqanpqanpqanpqampaWlpaWlpaWlpKSkoKCmlJSyi4u9 - i4u9i4u9ioq6iYm5hoa3hoa3iYm6iYm6iYm6iYm7jIy6jY27j4+7lpayoqKlpKSjnZ2nlJSvkJCzjY2z - gYHDgIDCf3/ChIS8jIyzkJCwkpK0jY27jIy8jIy9jo66lJSxnZ2omJivj4+6i4u/i4u+iYm/goLEgIDD - f3/Cf3/CgYHEg4PFhITFhITGg4PIjY29np6spqakoqKmoaGlm5uqmpqrm5upmJiskJCxjY2vjY2vkJCv - jo62iYnAh4fGh4fFhobGkZG7oKCspqajo6OloqKkm5uqk5OwkJCxjY20hoa9gYHDgIDBgYHCgYHFhYXC - j4+3mpqpmZmqmJiqnp6lo6OhoKClmpqtmpqsmZmqmZmolJStj4+wjIyvgYG9gYHBgoLEg4PFg4PGhITE - jIy7l5etn5+ko6Ojo6Oko6Oko6OkoKCkl5eujIy4h4e6hoa4hoa3hYW5h4e7iYm9i4u9jIy9jIy9jIy+ - kJC3nJyopaWhoqKlmpqtjo68jY29h4fDg4PHgoLFgYHChoa3iIi3g4O+gYHCgoLDhITDi4u9l5euoKCk - o6OioqKjoqKjo6Oko6OkpKSlpaWlpaWlpaWmpaWmpaWmo6OkpKSkpaWlpaWlpaWlIACjo6Sjo6Sjo6Sj - o6Sjo6OioqKioqKkpKOfn6eWlrGRkbiRkbiNjbyFhcODg8WDg8WCgsaFhcSRkbaYmK2cnKmgoKakpKSl - paWlpaWlpaWnp6OdnayQkLiLi7uKiruKiruEhMGBgcWBgcWBgcWBgcWGhr+OjreSkrObm6ulpaOlpaWl - paWlpaWkpKWjo6OhoaKenqaZmayPj7mGhsKDg8WDg8aEhMWIiL2IiL2IiL6GhsCLi7qZmamhoaGgoKCf - n5+fn5+goJ+fn6SVlbCQkLaIiMGDg8WEhMaFhceFhceEhMiKisCNjb2NjbuRkbSZmayhoaOjo6Sjo6Sk - pKWnp6elpaiZmbOKisCEhMaFhcaEhMWCgsWCgsWBgceHh8GMjL2Li72OjriamqigoKKhoaGhoaGhoaGj - o6Kmpqabm6+MjL6EhMWCgsWBgcaDg8WIiL+KiryKiryKir2Li72Ojrmbm6qhoaSioqOioqOjo6KgoKST - k7KFhcKBgceCgseFhcOKiruJibyKiruJibyNjbeTk6+ZmaeenqCgoKChoaKjo6SlpaWjo6adnauXl6+R - kbWIiMCDg8eCgsSBgcODg8WEhMWDg8eGhsSSkrigoKylpaelpaalpaalpaWlpaWmpqempqempqempqem - pqalpaWlpaWjo6SlpaWmpqampqempqempqelpaWlpaWlpaWkpKSjo6Sjo6SlpaWlpaWlpaWkpKSjo6Sj - o6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqelpaWjo6SkpKSmpqampqempqem - pqempqempqekpKWjo6SlpaWlpaWlpaWlpaKZma2Pj7eRkbWRkbSRkbOLi7iHh7iHh7iHh7mJibqJibmE - hMGDg8SDg8WHh8GVlbOioqWlpaKZma6RkbWQkLKNjbKLi7WKirWMjLGLi7GJibWJibmMjLuHh8WGhsaF - hciHh8OSkrSenqabm6qOjrmJibyIiL2CgsSAgMN/f8J+fsF/f8GBgcOCgsSDg8WDg8aIiMGPj7ubm7Cl - paWlpaWkpKWhoaWbm6eWlq2SkrKPj7GNja+OjqyNjbKHh76Dg8aEhMeEhMiKisOXl7WioqmmpqSkpKad - nayVlbOTk7OOjraHh76CgsSBgcOAgMF/f8OEhL+IiLqLi7iVlbCXl66Xl6+Zmamfn6KioqOenqienqee - nqecnKeXl6yNjbWCgrx/f8GAgMOCgsSEhMWDg8aGhsOSkrSbm6mcnKifn6Wjo6Kjo6WhoaaioqSbm6uS - krCLi7SGhrmFhbmFhbmGhrqJibqMjLyNjb+Ojr2Tk7iTk7eamrGhoaejo6KhoaaUlLWHh8OCgsiCgsiF - hcSJibuHh7eDg76BgcGAgMODg8KMjLqSkrWUlLOamq6hoaejo6OioqOioqOjo6Sjo6SkpKWlpaWlpaWl - paWlpaWkpKSjo6Sjo6Sjo6Sjo6QgAKKio6Kio6OjpKOjpKOjpKOjo6KioqKio5iYrpGRtZCQt42Nu4aG - w4KCxYKCxYODxoaGxIuLvo6OuZWVsZubqKCgpKOjo6SkpKWlpaWlpaSkpZ2drZaWtZGRuIqKvIWFwYKC - xYKCxoKCx4ODxYeHvo6Ot5KSsZeXq5+fpaOjo6SkpaWlpaWlpaSkpaSko6KiopubqZGRt4eHwYODxYKC - xoSExImJvYmJvYiIvoaGwIqKupSUrpycpqGhoaGhoaCgoJ+fn6Cgnp6eopOTs4eHwIKCxYKCxoSExYSE - x4SEx4mJwo2NvouLwJCQuZycqqGho6Kio6Kio6OjpKOjpKampaamqJycsIyMwIqKwIiIwoODx4ODxoGB - xYeHv4uLvIyMvI6OupWVsqCgpKGhoaGhoaGhoaGhoaGhoZ+fp5SUto2NvoqKwYmJwYmJwImJwIyMvYuL - vYqKvYqKvI6OuJeXrqCgpKKio6Kio6Kio6OjoqKio5mZrIqKvIiIwImJvoiIv4aGwoWFwYWFwoaGwJCQ - tJubp6CgoqCgn5+fn6CgoKKioqWlo6Ojp5iYspOTt4qKv4SExIKCxYGBw4GBw4KCxIKCxoaGwomJvpGR - t6CgqqWlpqWlpqWlpqWlpqWlpqWlpaamp6amp6amp6amp6ampqWlpaSkpaOjpKWlpaamp6amp6amp6am - pqWlpaWlpaWlpaOjpaOjpKSkpKWlpaWlpaWlpaOjpaOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWl - paWlpqWlpqampqampqSkpKOjpKOjpKWlpaamp6amp6amp6amp6amp6WlpqOjpKOjpKWlpaWlpaamo5+f - qZeXr5iYrZmZq5OTr4uLuIiIuoeHuYiIuYuLu4aGwYKCxIKCxoGBx4WFwpOTs6KipaWlopubrJKSto+P - t46OtYyMspKSqY6OrYiItIeHt4mJu4WFw4ODxoODyYaGxoyMv5OTuJmZrqCgpZaWr4iIvoKCxYGBxYCA - xH9/wn9/wYCAwYGBw4KCxYWFxYmJv4yMvI2NvZWVtaKiqKWlpaOjp6Kipp2dqJWVrpCQspCQsY6OroqK - sYWFvIGBw4GBxYSExomJwZCQu5+frKampaampaSkp5ycrpSUtJCQuImJv4ODxYKCxYKCxICAw4SEvomJ - uouLu4uLvIqKvYuLvIiIv5CQtZycpqGhoZ6ep5+fpp2dqZmZrY+PtoWFwICAwn9/wYCAwoKCxIODxYOD - xoWFw46OuZGRtZSUsZycp6OjoKKiop6epZubqpmZq5WVrYyMtIWFuoaGuYaGt4iIuIqKuYyMu46Ovo6O - vZSUt5qasZycrqGhqqamo6GhpJWVtIqKv4iIwomJwYuLvouLuoODv4CAwX9/w4SEvoeHvISEwYiIwIWF - w46Ou5ycrKSko6OjpKKio6Kio6OjpKSkpKSkpKWlpaWlpaWlpaSkpaOjpaKio6KioqKioyAAoqKjoqKj - oqKjoqKjo6Oko6Oko6OjoaGjlZWwjo65i4u8hITDgoLGgYHFgoLFhITFhobDiIjAhobDkZG1nZ2noqKi - oaGioqKkpKSlpaWlo6Omnp6rl5e0jo6+hobEgoLGg4PHhITHhobFioq+j4+2kpKwl5eqnp6koaGhoaGh - oqKjpKSlpaWlpqalo6Omm5utkJC4hITEgoLGgYHHhYXDiYm+ioq9iYm+h4e/jY24lZWtnJykoaGhoaGh - oaGhoaGhoKCgnp6fmJini4u5g4PFgYHGg4PGhITGhYXEiorBjY2/i4vBjo69l5eyoaGopKSioqKioqKj - oqKjoqKjo6Olo6Oonp6tkZG7iorChobFg4PHhYXFiYnAi4u8i4u7ioq8kJC2nZ2po6OjoqKioaGhoaGh - oqKgn5+jl5eskJC3jIy7jIy8jIy9jY29jY29jIy+jIy+ioq9i4u7lJSxoKCjo6OioqKioqKjo6OioqKj - nZ2ol5evjo65jIy6iYm8hYXCg4PGgoLFhYXBioq6k5OwnZ2lo6OfoaGhn5+fn5+foKCgoqKinZ2qkZG5 - iorAhYXGg4PHgoLFgoLEg4PFgoLFhobCiYm+jo64mJiuoaGlpaWmpaWmpaWmpaWmpaWmpaWlpaWmpqan - pqanpqanpqanpqampaWlpKSkpKSkpaWlpqanpqanpqanpqampaWlpaWlpaWlpKSlo6OkpKSkpaWlpaWl - paWlpKSlo6OkpKSlpKSkpaWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpKSkpKSko6Oko6Oko6Oko6OkpaWl - pqampqanpqanpqanpqanpaWlpKSkpKSkpaWlpaWlo6OnoKConZ2olZWwjo63ioq6iYm6iYm5iIi5hobB - g4PGg4PFgoLGg4PGi4u8mZmroqKipKSjoaGnmZmvlJS0lZWwlJStkZGtiYm0hoa3hYW4g4PAgYHFgYHG - hobDi4u/j4+9kJC7lpa0o6Ojnp6njo65goLGgYHGgoLEgIDDgIDBgYHBgYHCgYHEg4PFh4fBhobChYXD - jo66nZ2rpqaloqKpoqKonp6qlpawkJCzkJCwi4u0hIS7gIDBgIDFg4PFi4u/k5O3lZW1n5+spqalpqal - paWmoqKpl5ezi4u/hITGg4PGhITFgoLFhYW+h4e5ioq4ioq8h4fBhobChYXEiIi/kpKznZ2moqKfoKCk - nJyomJiukJC4hobCgYHFgYHDf3/BgIDDgoLEg4PFg4PFhITFhobCiIjAkpK0nZ2moqKfoaGhoKCimZmr - lpauk5Oxj4+zi4u0i4uyh4e2h4e6hoa+hobBiIjDiYnDlZW2nJyvnJyvn5+spaWmo6Oml5eukZG3kJC5 - j4+6ioq/hYXCgIDDfn7DhIS+hoa8g4PAgYHGgIDHg4PFj4+4nJypo6Oio6Oko6OkoqKjo6Oko6Oko6Ok - pKSkpaWlpaWlpaWlpaWlo6OkoqKjoqKiIACioqOioqOioqOioqOjo6Sjo6SioqSioqGXl66Kir2Dg8SA - gMaBgcWEhMCEhMOFhcSFhcSEhMWHh8KVlbKhoaWjo6GhoaKhoaKioqSjo6Whoaibm66Tk7iJicKEhMiE - hMaFhcaEhMeIiMOQkLmVlbOWlq2dnaShoaGhoaGhoaGhoaGioqOkpKWmpqSjo6eXl7OKisKGhsOGhsKF - hcKJib+Li72Jib+Jib+Jib6Pj7eXl6ufn6KhoaChoaGhoaGhoaGioqCfn6KVlauKireGhr6EhMKEhMWF - hceHh8ONjb2MjL+Ojr2UlLabm6+goKmkpKWjo6OioqKioqKioqShoaWfn6eZmbCNjcCFhciDg8mEhMeF - hcWKisGLi7+KiryLi7qVlbCioqOioqOioqOhoaKhoaGiop+goKOTk7GNjbaJibqIiLqLi7uNjb6MjL6M - jL6MjL6Kir+OjrmZmaqjo5+ioqKioqKioqKhoaScnKiVlbGOjrmNjbuKir6FhcOCgsWDg8SHh8GLi7yR - kbGYmKmenqSioqGhoaGhoaGgoKCfn56fn6CZmaqNjbyEhMWEhMaFhcaEhMaEhMaDg8aGhsSKir6Pj7iY - mKygoKKjo6Kjo6SlpaalpaalpaalpaalpaalpaWmpqampqempqempqempqelpaalpaWkpKSkpKSlpaWm - pqampqempqelpaalpaWlpaWlpaWkpKSjo6SkpKWlpaWlpaWlpaWkpKSkpKWlpaWlpaWlpaWkpKSjo6Sk - pKWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSmpqampqempqempqempqempqakpKSkpKWl - paWlpaalpaWgoKiQkLeKir6Kir2Li7qIiLqDg7+BgcSDg8WCgsaDg8SKir2SkrOZmaufn6WioqOkpKOh - oaadnaqbm6yVlbGMjLiJibmGhrmBgb1/f8OAgMSEhMKKir2NjbyLi7+Ojr2YmLKhoaafn6eVlbKLi76E - hMSCgsWBgcSAgMKAgMKBgcKBgcOCgsWCgsaDg8aBgceJib6Zma2lpaSjo6elpaagoKuXl7KRkbaOjreF - hb6BgcGAgMSDg8OIiMCOjryTk7iSkriTk7ebm6+lpaanp6SmpqWYmLSHh8SCgsmEhMeEhMWGhsGJibmI - iLeHh7qGhr6FhcKGhsGLi7yVlbCcnKifn6ShoaCgoKGYmK2OjriFhcKBgcaAgMSBgcOAgMGBgcGCgsOC - gsWCgsWCgsWDg8eLi7ybm6ujo6Kjo6GhoaGhoaGenqSVlbCRkbWRkbKQkLGMjLKIiLmEhL2BgcOBgcaE - hMaIiMKQkLuSkrqRkbuXl7WhoaulpaagoKiXl6+Xl6+UlLOKir2Dg8KDg76CgryFhbuDg8CAgMaCgsaF - hcKQkLeZma2dnaihoaajo6Sjo6SioqOjo6Ojo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWjo6WioqMgAKSk - pKKio6Kio6Kio6Kio6Kio6GhpKGhopeXq4mJvYGBxYODwoSEwoiIvYaGwIWFw4WFw4eHwZGRtp2dqaKi - o6Kio6KioqGhoaKioqKipJubrZSUto6OvYiIw4WFxoWFxoWFxYSExoeHxI2NvZWVtZubq6Gho6KioKGh - oaGhoaGhoaKioqOjoqOjpaGhqJiYsY6OvI2NvIyMvIuLu4mJvYiIv4mJv4mJvouLvIyMu5WVr6CgoaCg - oKGhoaGhoaGhoaGhoZ6eppaWrY6Os4mJuoWFwYSExYWFxoaGxIqKwIuLv5OTt5iYspycrqKiqKSkpaSk - paKio6Kio6GhpJ+fpp2dqpKStoaGxoSEyYWFyIWFx4SExoODx4uLwI6OvJGRtZqaqaOjoKKio6Kio6Ki - o6KioqGhoJycppCQtYqKuomJuomJuoqKu4yMvoyMvoyMvoyMvouLwJSUtaCgpaGhoaGhoaKioqOjoZ2d - p5SUso+PuIuLvoqKvoWFxIODxoSExYWFxIqKvoiIwZGRtJycpaGhn6GhoaGhoaGhoaCgoKCgn56eoJmZ - p46OtoSEw4ODxYSExoSExoSExoeHw4yMvo6OvJiYsqGhpqKioKKioqKio6OjpKSkpaWlpqWlpqWlpqWl - pqWlpaampqamp6amp6amp6amp6WlpaWlpaSkpKOjo6Skpqamp6amp6amp6Wlp6WlpqWlpaWlpaOjpKOj - pKSkpaWlpaWlpaWlpaOjpKSkpaWlpaWlpaSkpaOjpKOjpKWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOj - pKOjpKOjpKSkpaamp6amp6amp6amp6amp6WlpqOjpKSkpKSkpqSkp5+fqpOTto6Ou42NvYqKvISEv39/ - xIGBwoGBxIODxIiIvo6Ot5GRtZGRtpeXrp+fpaOjoqSko6Cgp5aWsY2NvIuLvIiIu4KCwH19w39/wYKC - wYmJvIuLvIuLvYuLvpCQu5iYsp6eq52dq5eXsJCQt4qKvoWFw4ODwYKCv4GBwIGBwoGBxIODxYODxYSE - xYSExYqKvpaWsKGhpaWlpaWlpKCgqJmZsJCQuoeHwYGBxoGBw4GBwIaGu4qKuYqKvYyMv4yMv4uLwJOT - uJ6eraSkp6WlppqasoyMwIaGxYaGxYeHw4yMvImJuYaGt4SEvIODwISEwYiIv5KStJeXr5ubq52dqp+f - pqCgoZaWrYiIvYKCxYGBxYGBxIGBw4GBwoCAwYGBw4GBxIGBxIKCxYaGwo+Pt5ycqaKipKGhpKKio6Gh - oaOjn5eXrJKSspOTsJCQs4eHvYSEv4GBwYGBw4ODxYaGw4qKvoaGw4eHxIaGxY6OvZ2drqampaampZ2d - q5mZq5aWro+PtIqKt4mJtYWFtoCAv39/xYKCxYaGwo6OuZiYrpmZrJeXsJycrKSko6OjpKOjpKKioqKi - oqOjo6OjpKOjpKWlpaWlpaWlpaWlpaWlpaSkpCAApaWlpKSkoqKjoqKjoqKjoqKjoKClm5uqlZWwjo64 - ioq9ioq7ioq9hITFg4PGg4PGhobDj4+4nJyooaGioqKioqKjoqKjoqKjoaGhoKCklZWyjY29iYnCg4PH - hYXGhITGhITGhITGhITGh4fDk5O3n5+qoqKkoqKhoaGhoaGhoaGhoaGho6Ohnp6mm5uqmZmtkpK2jIy9 - jIy9ioq+iIi/iIi+iYm/i4u8jIy6kpKznJynoqKgoaGhoKCgoaGhoqKgnZ2llZWujo63h4e+g4PDg4PD - hYXEhYXGhYXHhITHiorAkpK4mpqwoqKopqakpaWlpKSlpKSlo6OjoaGjnJypk5OzjIy+hobEhITGhITG - hITGg4PFhobFi4u/k5O3mpqun5+loqKgoqKioqKjoqKjo6Ojn5+mlJSviYm9i4u8ioq7iYm6ioq7i4u9 - jIy9jIy+i4u/jo68mZmwo6OkoqKioaGhoaGho6Ogm5upjo64iYm/ioq+hITFg4PGhYXFhYXFhYXFhITG - hYXGjo67mpqqoaGfoKCgoaGhoaGhoaGhoaGhnp6il5eokZGvhoa/hITFhITFg4PGhobEjo67jo66kpK3 - mJixoaGppKSjoaGhoqKioqKjo6OkpaWmpaWmpaWmpaWmpaWmpaWlpqampqanpqanpqanpqanpqamo6Oj - oqKio6OkpaWlpqanpqanpqanpqampaWlo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlo6OkpKSlpaWlpaWl - paWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpaWlpqampqanpqanpqanpqan - paWlo6OkpaWko6OmnJysl5ezlJSzjo67hITCf3/EgYHCgIDBgYHCiYm8i4u6ioq7ioq9jIy8lJSym5ur - oaGjoqKjmJivjIy9jIy9jY28hobDgoLEgYHBgYG/iIi4ioq8i4u+jIy+jo68kZG5kJC6l5eznZ2smZmv - j4+5ioq+jIy8ioq4iIi4g4O+f3/DgoLDg4PFhITFg4PGiYnAjIy8kJC3nJypo6OkoqKnoqKnnZ2tkJC8 - hITHhITEgoLChIS5h4e2iIi5iYm6i4u9jIy/lJS4lpa1l5eznp6rpaWmn5+smpqykpK6jY2+jY29i4u9 - ioq7hIS9goK+g4O+h4e9jIy7jIy9i4u/jo69lJS3nJytoqKhnp6mkZG0hobBgoLGg4PFgoLEgYHDgIDC - gIDCgIDDgYHEg4PCiYm7iYm9jY27lZWznp6qpKSjoqKioqKhnJynmpqpl5esj4+1hYXBgoLFgIDCgIDB - goLDg4PFg4PGhITFh4fCjIy+kJC6mpqxpqalpaWmoKCslpazkJC0kZGxkZGwjIywgIC/f3/EgYHEhobC - j4+6k5O1kJC4kJC3j4+4lpaxo6Ojo6Oko6Oko6OkoqKjoqKjo6Oko6Oko6OkpKSlpaWlpaWlpaWlpaWl - IAClpaWlpaWkpKWioqOioqOhoaOamqmSkrGRkbGOjrWJibuIiL2CgsSDg8WDg8WCgseHh8GVlbCioqKi - oqKioqOioqOioqOioqOhoaSbm6mPj7aFhcKDg8aEhMWDg8WEhMaEhMaDg8eIiMKTk7eamrCfn6mkpKaj - o6ShoaKhoaGhoaGhoaGhoaCdnaSXl62Tk7KSkrWMjL2Li72KiryKiruKiruKiruLi7yLi7uYmK6hoaOh - oaChoaGhoaGgoKCiop+ZmamNjbeIiL2EhMODg8KCgsOCgsSEhMSFhcWFhcaEhMeQkLufn6qmpqOlpaWl - paWlpaWkpKWlpaShoaaVla+Kir2EhMWDg8WDg8WDg8WDg8WEhMOLi72MjL6YmLKioqekpKSioqKhoaGi - oqKjo6KgoKaamqySkrSLi7yKirqJibqJibqJibqJibuLi72MjL2MjL6OjruZmbCjo6WkpKWioqKhoaGi - oqCfn6SVlbCJib6EhMWEhMWDg8SEhMSFhcSFhcWFhcWPj7mamq6hoaaioqKhoaGgoKChoaGioqCfn6Oa - mqiQkLGEhMCEhMaEhMaEhMaEhMaHh8OPj7qRkbeQkLiVlbOfn6qlpaSkpKWioqKioqKioqKjo6Slpaal - paalpaalpaalpaalpaWlpaWmpqempqempqempqelpaaioqOioqKjo6SlpaWlpaWlpaWkpKWjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWkpKSkpKSlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6SioqKjo6Sj - o6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSmpqampqempqempqempqempqakpKShoaWbm6uVlbKNjbyGhsSCgsWC - gsSAgMN/f8CGhrmJibqLi7yLi7yLi7yMjLuUlLKbm6uhoaShoaOYmK6NjbyMjL2MjL2MjL2Li7yJibqH - h7mIiLqJibyLi72Njb2Njb2Njb2Njb2Tk7egoKqbm6+OjryLi76MjL2Li7uDg8F/f8J/f8GAgMOCgsSE - hMWHh8KIiMGHh8KLi72YmK2ioqKhoaWhoaegoKmXl7OMjL+KiryIiLqGhreGhriHh7mIiLmJibqKir2R - kbiamrCdna2enqylpaampqWioqmUlLeLi8CNjb6MjL6Hh8GDg7+Dg76GhryLi7qNjb2Njb6Pj72Ojr6R - kbubm7CmpqSioqKVla+Hh8CCgseDg8WDg8WBgcSAgMJ/f8GAgMGBgcKBgcSBgcSCgsWCgseLi7+amq6j - o6Kjo6Sjo6KenqWYmKuPj7aGhsODg8WCgsSAgMKAgMGAgMKCgsSEhMWHh8KLi72Pj7qQkLqVlbWjo6il - paafn6uYmLWTk7eSkrKOjrOBgcN/f8J/f8OEhL6KiriOjriRkbeRkbeQkLiUlLOcnKqioqSjo6Sjo6Sj - o6Sjo6Sjo6OioqKjo6Sjo6Sjo6SkpKWlpaWlpaWlpaUgAKWlpaWlpaWlpaSkpaOjo6KiopubqZSUsI2N - uIuLuomJvoSExYODxYODxYGBx4iIv5OTspqaqqKioqKioqKioqKio6Kio6Kio6Kio5aWsImJwIODxYOD - xIODxYWFx4WFx4SEyIuLwZOTtpmZrp+fp6SkpaSkpaSkpaOjpKKioqGhoaGhoZ2dpZaWrJOTsJGRtIuL - u4qKvIqKvIqKu4qKu4qKu4qKu4yMupaWsJ+fpaKioqKioqGhoaGhoaGhoZ+fopOTsIeHvoSEw4SEw4OD - xISExYSExYSExYSExYSExoqKwZeXs6Kip6WlpKSkpaWlpaWlpaampKOjppiYsYqKv4SExYKCxYKCxYKC - xYODxoaGw4qKvIuLvImJwJSUtKGhqKWlpKSkpaKio6GhoaKioaCgppycqpeXr42NuouLvImJuomJuYmJ - uomJuomJuouLvYmJwJOTt6CgqaWlpKSkpaSkpaOjoZ6epJiYqpKSs4uLvIqKvYuLvYaGwISEw4SExIWF - w5GRt5mZr6Cgp6OjpKOjpKKio6GhoaCgoJ6eo5ubp5GRs4WFwYODxYSExoSExoODx4mJwZGRtpGRt5GR - t5WVs5ycq6OjpaSkpaSkpaSkpaKio6KioqKioqOjpKSkpaWlpqWlpqWlpqWlpqWlpaWlpaWlpaWlpaWl - paSkpaKio6KioqOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaSk - pKOjpKWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKKioqOjo6OjpKOjpKOjpKOjpKOjpKOjpKSkpKampqam - p6amp6amp6WlpqWlpaWlpJ+fqJOTtYyMu4mJvoiIvYeHu4iIuoaGuYeHtoSEv4ODxIWFxIWFxIaGw4yM - vJiYr6GhpaOjop+fppaWroyMvYyMvYyMvYyMvYqKvIiIuoiIuomJu4yMvI2Nvo2Nvo2Nvo2NvY+Pu5+f - q5ubr5CQupGRuJCQuIWFw4KCxoGBw4CAwYCAwoSExImJwomJwYiIw42NvpWVs5qaqqKioqKio6OjoqCg - pJaWr4yMu4qKvImJu4mJuISEvH9/woGBwoKCw4GBxYmJvpKSt5iYspycrqKiqKampZycsJGRu4yMwIyM - wIyMv4qKvoiIu4aGuYiIuYyMvI2Nvo+PvY6OvpOTuZWVt5qasaenpKampJiYroeHv4GBx4ODxYKCxYGB - xIGBw4CAwYCAwYCAwoGBw4GBxICAxYWFwI6Ot5iYraCgp6OjpKSko52dqY+Pt4WFw4KCxoKCxoKCxIGB - woCAwX9/woKCw4eHwYqKvo+PuZCQuZOTt5ubsKKiqKWlpqSkqJycr5eXtJKSuIuLu4iIu4eHuoWFuYaG - uImJt4qKuIyMupCQuJOTtZWVtJiYsqCgqqWlpaWlpaSkpKOjpKOjpKOjpKKioqOjpKOjpKOjpKSkpKWl - paWlpSAApaWlpaWlpaWlpaWlo6OlnZ2plpawjo63i4u5iIi+hITEhITGhITGgYHJiorAlZWynJynoKCi - oqKioqKioqKioqKio6OioqKinZ2okJC3hobDg4PGg4PFg4PFhITGhYXHg4PIiIjCk5O3m5utoKClo6Ok - pKSlpKSlpKSloqKkoaGioaGgnZ2llpasj4+0i4u6ioq7ioq7ioq7i4u8i4u8ioq8jIy4lZWtn5+koqKi - oqKioqKioqKioaGhoqKgmZmqioq7goLEgoLCg4PEhITFhITFhITFg4PGhITFi4u9kZG2n5+qpKSlpKSl - pKSlpKSlpaWlpaWknJyujY29hITGhITGg4PFgoLFgoLFhITFhobEh4fChYXEi4u8mZmto6OlpaWlpKSl - o6OloaGioqKfoKCjmJiukJC3jIy7ioq7iYm6iYm7iYm7iYm6iYm6h4e9kpK1np6qpKSkpKSlpKSlpKSl - oaGnmpqskpK0jIy6i4u8ioq6hoa+g4PAgoLDh4fAj4+3kpK1l5evoKCmpKSjo6Oko6OkoqKioqKfmpqm - j4+0hobBgoLGg4PFhITGg4PHh4fCjIy9jo67jY28j4+5mpqsoqKko6Oko6OkpKSlpKSlo6OkoqKjoqKi - oqKio6OjpKSlpKSlpKSlpKSkpKSkpaWlpaWlpaWlpaWlpKSloqKjoqKio6OkpaWlpKSlpKSlpKSlo6Ok - o6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpKSkpaWlpaWlpKSlo6Olo6Oko6Oko6Ok - o6OjoqKioqKjo6Oko6Oko6Oko6Oko6Oko6OkpaWlpqampqampaWmpaWlpaWlpqako6Oll5eukZGzkJC0 - kJCyjIy1iYm5iYm3goK9gIDDgoLGhITGhITGhITFhITFjIy6mZmsoqKjoaGkmZmsioq9i4u+ioq9iYm9 - iYm9iIi7h4e5iYm5i4u6jY28jo6+jY29kJC6kJC6mJixm5uvmZmxmpqwlJS1g4PGgoLHgYHFgIDCgIDB - goLDhYXEhYXGiIjDk5O3oKCpo6OkoqKioqKioqKjmJitjY25jIy9i4u9jIy6hoa/gIDDf3/DgIDEgYHG - gYHFgoLEiIjAkJC6lpa1nJyupaWlnp6rlZW0kpK4kpK3kZG3kZGzioq2h4e4iIi5i4u8jo6+j4+9kJC9 - kZG8kJC8lZW3o6OppaWmnp6sj4+5g4PDgIDGgIDFgYHEgYHCgIDBf3/BgIDDgYHEgYHFhobAi4u5lJSu - nJymnp6mo6OkpKSjn5+olZWxi4u8h4fAiYm9goLDgYHCf3/CgIDBhYW+ioq8jo64kJC3kpKzl5eunJys - n5+rpaWlpKSnnp6tlJS3jY2/jIy/i4u7iYm6iIi2h4e1h4e3iYm5i4u6lJS2lpa1lJS2lpa0n5+spqak - paWlpKSlo6Oko6Oko6Oko6OjoqKio6Ojo6OkpKSkpaWlpaWlIACmpqalpaWlpaWnp6Sjo6iVlbOOjrqJ - ibuGhr2Dg8OCgseDg8aDg8iKisCUlLWYmLCbm6mjo5+hoaGioqKioqKioqKioqKdnaiRkbWHh8GDg8aD - g8aEhMaDg8aEhMaEhMeHh8SMjL6UlLadnaykpKSjo6Sjo6SkpKWkpKWkpKWjo6SgoKWZmamSkrGLi7mJ - ibyKiruKiruKiruKiryLi7yNjbqSkrScnKihoaGhoaChoaKioqKioqKioqKdnaaUlLKJib2Dg8KCgsOC - gsOEhMWEhMWDg8aFhcSLi72QkLWVlbChoaalpaSkpKWkpKWkpKWkpKWgoKmYmLSOjr6GhsSCgsaCgsWC - gsSDg8WFhcWEhMaEhMaKir+VlbOfn6Wjo6KkpKWkpKWkpKWkpKShoaOYmKqPj7aKir2KiryKiruKiruK - iruKiruIiLuIiLqPj7KamqehoaKkpKOkpKWkpKWkpKWbm66Tk7eNjbuKiryJibuFhb+CgsKCgsOEhMCI - iLuPj7WVlbCcnKqioqWkpKSjo6Sjo6Sjo6Sjo6GYmKqJibyBgcaDg8WDg8WDg8aHh8OMjL6NjbyMjL6O - jrqUlLWdnaijo6Ojo6Sjo6Sjo6SkpKWkpKWjo6WioqOioqKioqKioqKioqOioqOioqSjo6SkpKSlpaWl - paWlpaWkpKWioqOioqKioqOkpKWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSk - pKSkpKWkpKWjo6SkpKSlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SioqOioqOjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6SkpKSkpKSlpaWlpaWlpaWlpaWlpaWgoKeTk7GSkrCPj7OMjLeJibqEhL9/f8KAgMOCgsSEhMaFhcaE - hMaIiMKPj7qZmayhoaOgoKWXl66OjriPj7iOjriOjriMjLeKiraIiLeFhb2Fhb+Hh8GKisGPj7yTk7eT - k7aYmLGgoKqjo6ecnK6QkLuKisKJicKIiL6Dg75/f8KBgcKCgsWCgsaFhcWNjb2amrCjo6akpKOjo6Gf - n6WWlrCNjbqKir2Li7yHh7+CgsSAgMaAgMN/f8OBgcSBgcSDg8KJib2Pj7iVlbSbm6+kpKakpKSamq6T - k7WVlbOTk7KOjrWIiLeGhriIiLiLi7qNjbuQkLyQkL2QkL6Pj7+Rkbubm7ClpaakpKeZmbGLi7yGhr+G - hr2Dg8CBgcF/f8GAgMKCgsSEhMWJib+OjriWlrCbm6icnKWdnaWjo6Kjo6SioqWhoaaZma2MjLmGhsGB - gcSAgMSBgb+EhLqHh7mLi7mNjbiNjbuXl7GenqmcnKucnKylpaWlpaahoaqUlLiLi8KNjb+MjL+Li7yK - iriIiLaHh7eJibmKirmQkLmUlLaZmbGdna2goKqioqilpaWlpaWlpaWkpKWjo6Sjo6SioqOioqOioqSj - o6SkpKSlpaUgAKampqSkpaWlpKWlpJ+fqpaWs46OuIqKuYODwICAxYKCxoODxYqKvpWVs5eXsZaWspyc - rKSkoqGhoaKioqKioqOjoaGho5mZrYyMvYaGw4eHwYWFxISEx4WFxoSExoeHwouLvpSUtp2draOjp6am - paSkpKOjpKSkpaSkpaSkpaSkpZ6eqpKStIuLuoqKu4qKu4qKu4qKu4qKvIqKvIyMuZKSs5mZrZycqqCg - oqGhoKKioqKioqKioqKiopmZq5aWr5KSs4uLu4SEw4KCxIODxYODxYaGxIuLvo+PuJGRtZiYq6CgpKSk - pKSkpaSkpaSkpaSko5ubrpOTuJCQvIyMv4aGwoWFv4KCwoKCw4ODxYSExYuLvpaWsZ+fqaOjo6OjoaKi - o6OjpKSkpaSkpZqar4+Pt4uLuouLuYqKuoqKu4qKu4qKu4mJvImJu4+PsZqao52doJ+foKKioqOjpKSk - paamo5mZsY6OvIuLv4uLvIqKvIaGwYeHwIeHwYmJvYmJu4qKupiYq6Gho6OjoqOjpKOjpKOjpKOjpKSk - opiYrYeHv4CAx4KCxYKCxISEwIqKvI2NvIuLvo6Ou5aWspubrKCgpqOjpKOjpKOjpKOjpKSkpaSkpaSk - paSkpKOjo6KioqGhoaGhoaKioqKio6Kio6OjpKSkpaSkpaSkpaSkpaOjo6KioqKioqKio6OjpKWlpaWl - paWlpaSkpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaSk - pKOjpKOjpKOjpKSkpKSkpKSkpKSkpKOjpKSkpKSkpKSkpKSkpKOjpKSkpaWlpaWlpaWlpaampaWlppWV - tY+PtoyMuYmJvIWFwIGBxIGBwYGBwYGBwoODxIWFxImJwI2NvZaWs5ubq6CgpKGho5ycqZeXr5SUspOT - s5SUspGRsouLtoWFvICAwoCAw4KCxYWFxYqKwI2NvpKSupqar6SkpaOjp5aWtIuLvo6OvI6Ou4qKvIOD - v35+wYCAwYKCw4ODxIODxYSEx4qKwJaWs6CgqaOjpKGhpJycqJSUsoqKvYeHv4KCxYGBxoGBxYCAw39/ - wYGBwoODwImJuY+Ps5KSspaWsJ2drKOjp6eno56eqpWVs5OTtJCQtYuLuoiIuIeHtoeHtoiIt4qKuY2N - vI+Pvo+PvpGRvJWVt5ubsaSkp6ioo52dr5CQuYuLvImJvIODwICAw4CAwoCAwoKCxIWFxImJv5GRuJaW - s5WVsZSUsZiYrqGhpKOjpKSko6Wlop6eqY6OuYaGw4aGwYSEwYeHuYmJs4eHt4aGvoaGwIeHw5GRupqa - sJubrp2dqqSkpKampKCgqpSUuI2NwI+Pvo6Ovo2NvYuLu4iIuIeHt4mJuYmJuYqKvJCQuZaWtZubsJ6e - rJ+fq6SkpqWlpaWlpaWlpaSkpKOjpKOjpKKioqKio6OjpKOjpKSkpSAApKSko6OkoqKkn5+nnJyrm5us - kJCxiYm5g4PCgYHGgoLFh4fAkpKzlJSzlJSzm5utoqKmpKSlo6OjoaGhoqKhoqKin5+ll5eujY26jIy8 - i4u9h4fChITGhYXFhobEjIy9iYm/k5O1oqKop6ejpaWlpaWlo6Oko6OkpKSkpKSlo6Olnp6qkZG4ioq8 - ioq7i4u7i4u8jIy8jY27jY25kJCzl5esnZ2nnZ2noaGjoqKhoaGhoaGhoqKioqKim5upmZmqlZWvj4+2 - iYm7hYXBhYXChITEiYm+jIy8jIy8kpKznp6koaGhoqKio6OkpKSlpKSlo6Oml5exjo68jIy/jY29jIy8 - iIi7g4PCgYHEg4PDioq8l5evn5+ppKSkpKSkoqKjoqKioqKipKSkn5+pkpK4jY28jo64jIy4ioq6iYm7 - iYm8iYm8iYm9j4+1nJyjnp6fnZ2fnZ2en5+foqKio6Oko6Ollpazjo68jIy+jIy+i4u9jIy8jIy8jIy8 - jIy9ioq9jY23mpqnoKCgoqKho6Ojo6Oko6Oko6OkoqKlmZmtjIy6hYXChITBhITBioq5ioq6i4u8i4u+ - j4+6m5usoKCmo6Oko6Oko6Oko6Oko6Oko6OkpKSlpKSlpKSlo6OkoqKjoqKjoqKio6Ojo6Oio6Oio6Ok - o6Oko6Oko6Oko6Oko6OjoqKioqKioqKioqKio6OkpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Ok - o6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlo6Oko6Oko6OkpKSlpaWlpaWlpaWlo6OkpKSl - paWlpaWlpaWlo6Oko6OkpKSlpaWlpaWlpaWlpKSmmZmyjo68ioq9hobAgYHGgoLEgYHCgIDBgIDBgYHD - hITDi4u+ioq/jo66lZWznp6ppKShoqKjmZmtk5OzkpK0kpK0jo64hYW9gIDDgYHBgYHBgoLEg4PGgoLH - g4PIiIjDlZW1pKSmoKCpkZG4jY27jIy8i4u9hITCf3/Df3/Bf3/BgYHCgoLDgoLFg4PGh4fEjY29mpqw - o6OopaWin5+mk5Ozh4fBgYHGgoLFgYHEgIDEgIDCgIDBgoK/iYm3jY21j4+0j4+zkJC0lZWwn5+ppaWl - pKSnmpqwkJC4jY26jY23jIy1ioq1iIi1hoa3h4e6iIi8ioq/j4+9lZW3mpqynp6upKSnp6eknZ2vkJC8 - iYnChYXDgoLEg4PBgYHAgIDBgYHDgoLFgoLGiIjBioq/iorAiorAkJC5nJyqoqKlpKSjoqKlmJiwjY28 - jY27jIy6i4u5jIy2iYm2goK8gIDEgYHFg4PHhobFjIy+lJS1nJytoaGlpaWjnZ2rlZW1kpK7kZG8jo69 - jY29i4u7iYm5iIi3iIi3iYm4iYm6ioq9iYnBjY2+mJiyn5+rpKSmpaWlpaWlpaWlpaWmpKSlo6OkpKSl - pKSlpKSlpKSlo6OkIACjo6SkpKOfn6idnaqdnauXl7CJib2Dg8SDg8aEhMWIiMGPj7iNjbuLi72QkLad - naqmpqSkpKWkpKWioqKioqCgoKOamquTk7WMjLyLi7yFhcODg8aEhMWFhcSHh8KHh8KFhcOPj7menqum - pqSlpaWlpaWlpaWkpKSjo6Sjo6ShoaecnK2WlrONjbmJib2Kir2Kir2Li72SkrWUlLGXl62Zmambm6ai - oqGioqKioqKioqKhoaGhoaGhoaKamqmTk7KOjreKirmJibuJibqJibuIiL6GhsGGhsKLi7yamquhoaOi - oqGhoaGioqKkpKSkpKaenqyYmLGRkbmMjL2Kir2IiL6Dg8SDg8OCgsSIiLyTk6+cnKaioqGjo6Ojo6Sj - o6Sjo6OioqKhoaOYmLGQkLmPj7qOjruKir2IiLyIiL2IiL2IiL2MjLmWlq2goKGenqGenp+enp6enp6g - oJ+ioqKbm6yPj7uLi7+MjL6Li72KiryLi72Li72Li72Kir6NjbuXl6+hoaCgoKChoaGioqGioqOjo6Si - oqWbm6ybm62Xl7CRkbeNjbmLi7mJibqJibuLi7yMjL6QkLidnamjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6SkpKWkpKWkpKWkpKWjo6SlpaWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6OioqKioqKioqKioqKi - oqOkpKWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSl - paWlpaWlpaWjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWl - paWfn6qTk7iHh8SDg8eDg8WCgsSBgcKAgMGAgMGAgMKBgcSCgsWEhMaEhMeLi76Zma6jo6KgoKSSkrSS - krSSkrSPj7mIiMGBgcSBgcKBgcGBgcODg8WEhMWDg8WDg8WEhMiOjr6fn6yioqeVlbOPj7uLi72EhMSB - gcaBgcOAgMJ/f8GAgMKBgcSBgcWGhsGPj7iVlbOYmLKdnaulpaSenquLi7uBgcaBgcWBgcWBgcWBgcOB - gcKCgr+Hh7aNjbKLi7mKir2Kir2Kir2Li7uYmKyjo6WlpaaamrCOjrqPj7iPj7iRkbKNjbSHh7mEhLiF - hbiIiLqIiLuQkLiVlbaVlbaamrKfn6ylpaagoKuRkbuIiMSKisGJib+KiryEhMB/f8J/f8KBgcSDg8WE - hMWHh8OIiMKHh8OKir+YmLCioqWkpKOioqWYmK+Pj7mQkLiOjrmOjriLi7qEhL9/f8KAgMGBgcODg8WE - hMeHh8OOjruVlbSbm66hoaSgoKScnKqUlLWMjL6Njb2Njb2Li7yJibmHh7iGhriHh7iDg8CCgsSDg8WH - h8SPj7ycnK2kpKampqampqempqempqempqelpaWmpqampqempqelpaajo6QgAKWlpqSkpJ+fp52dq5eX - sYqKvYKCw4KCxIODxoiIwY2Nu4yMvIyMvIyMvJaWsKCgpaSkpKSkpaSkpaSkpaOjop+fo5qaqpOTtIuL - vIWFxIODxYODxYWFxIeHwoeHwoeHw4uLvZiYsKGhpaSkpKWlpaWlpaWlpaWlpaWlpKGhppqarZSUtI2N - vIyMvIeHwIGBxoODxYODxY+Pt5iYrpmZrZqaqaCgoqGhoaKioqKioqKioqKioaCgopubppWVro+PtouL - uYaGvoCAxYGBxIGBxIKCxIKCxYaGwJKSsp6epqKioqKioqGhoaGhoaKioaOjpZ2drJ2drJiYsZCQuIiI - v4ODxYSExIODxYiIvomJvI2NtpubpqGhoaKioqOjo6OjpKOjpKOjpJ6eppGRto+PuI2NuouLvImJv4OD - xYODxYKCxoaGwI2NtpSUr5qaqKCgoqGhoJ+fn56enp+fnZ2doZOTs42NvIyMvoyMvYyMvYuLvYqKvYuL - vYuLvYuLvI+Pt5eXrqKioqCgoKCgoKCgoKKioaGhpJubrJubrJiYr5GRt42NvYuLvYqKu4iIuYmJuomJ - u42NupiYsKSko6OjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaOjpKSkpaWlpaWl - paWlpaOjpKOjpKOjpKOjpKOjo6KioqKioqKioqSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpKSkpKWlpaWl - paWlpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaSkpKOjpKSkpKWlpaWlpaampJubsIuLwYODyISExYODxYKCw4GBwoGB - woGBwoGBw4GBw4KCxYmJwJSUtZ2dqqKipKKipJqaqpWVso+PuoeHwoODxoSExYGBw4CAwYGBw4ODxYOD - xYODxYODxYqKvouLv5aWtaGhqZycro6OvIWFxYODxoKCxICAwn9/wX9/wYGBwoGBxIeHwY+PuZKStZGR - tpKSt5eXsaKip6OjppeXsomJv4ODxYKCxIGBw4CAw4ODwIiIt4yMsYiIuIqKvYuLvYuLvo6OvJaWs52d - q6Kio6CgpJqarJSUsZWVsJWVsYyMt4eHuoaGuYWFuIWFuIeHuYmJuomJuoqKvZCQvJqasqCgrKWlpqSk - p52dr5iYtZmZs5SUtoaGw4GBxYCAw4CAwoGBwoKCxIiIwYeHw4aGxIWFxYiIwpWVs6KipqSko6OjpJ+f - p5iYr5OTto+PuY2Nu4aGwoGBxYCAwX9/wYCAwYGBxIeHwI2NvI2NvY6OvJSUtaKiqKWlop+fpZWVsYuL - vYyMvIuLu4qKuoiIt4SEun9/woCAwYCAwoCAxIWFv4qKvIyMvpaWt6Skqaenpqamp6amp6amp6amp6am - p6WlpaWlpqamp6amp6ampyAApaWmpqaloqKnlpayioq/hITFg4PEg4PEg4PEhITDhobChobChobDj4+4 - nJyooqKhoqKjo6OkpKSlpKSlpaWkoaGlmJirkpKykpK0i4u8hYXDg4PGhITFhYXEh4fCioq+kJC4nZ2r - pKSjo6Oko6OkpaWlpaWlpaWlpqako6Olmpqtjo67jY28h4fBg4PGg4PGhITGg4PHi4u9jo65jo65lZWv - oKChoaGhoaGhoqKioqKioaGjnZ2olpaujo62jIy4h4e+goLEgoLEgYHEgoLEgoLDgYHEioq8mJisoaGh - oqKioqKioqKioaGioaGgoqKinZ2rl5exkJC5jIy9ioq9ioq+ioq+ioq+ioq9iIi+jY23mpqnoKCgoaGh - oqKio6Ojo6Oko6Okn5+nkJC2jIy7jY27ioq/hITFhITFhITFgoLIi4u8lJSvlJStl5esoKCioaGhoaGh - n5+enJyfl5eoi4u4ioq9i4u9i4u9i4u9jIy8i4u8i4u8jIy7j4+3lpawnZ2ooqKioqKioaGhoKCgoaGg - oaGim5uqmJivkZG3jY28jIy9jIy9ioq7ioq7iYm8jIy3k5OwnJyppKSko6Oko6Oko6OkpKSkpaWmpqan - pqanpqanpKSlpKSkpaWlpaWlpaWlpaWlo6OkpKSkpaWlpaWlpaWlo6Oko6Oko6Oko6OjoqKioqKioqKi - pKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlo6Oko6Ok - o6OkpKSkpaWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6Ok - o6Oko6OkpKSjmZmwjo69jIzBi4u/hobAgoLEgYHCgYHCgYHDgYHDgYHDgIDEjY23mpqtnp6qn5+oo6Ok - oqKllpawiIjAgoLGgoLFg4PEgYHDgYHCgYHDgYHDgoLGhITGioq/jY29ioq/lJS1o6OopKSmmZmwjIy+ - hYXFg4PGgYHEgIDBf3/Bf3/DhYW+j4+2jo65hobCh4fBhYXDkpK2oaGppqajn5+qj4+6goLGgoLGgYHF - g4PAioq3jo6xiYm3g4PAhITEhITGiYnBlpaznZ2snp6so6Omo6Oinp6lmZmslJSyj4+5jIy9ioq9h4e5 - hIS4goK+gYHBgoLCgoLEh4fBj4+5mJiynp6tpKSnpqaloqKpm5uwlpa2iIjFhYXHhITGgoLEgIDDgoLC - h4e/iIjDhobGhYXGhITHhobElJS0oaGmpKSjo6OkoqKlm5usj4+5jo67h4fDhITGg4PEgIDCf3/Bf3/C - hoa7hoa/hYXEhobFh4fEkJC6nZ2rpKSlpKSjnJypjo63ioq8iYm6ioq3hYW7f3/Af3/Bf3/BgIDBf3/C - hIS/jY25lJS1m5uvpaWop6enpqanpqanpqanpqanpqanpqanpaWmpaWmpqanpqanIAClpaajo6iYmLOM - jMCEhMWEhMWCgsODg8SEhMOFhcOFhcOEhMSHh8CUlLKgoKWioqChoaGioqOjo6SkpKWioqecnK2VlbKR - kbOLi7uIiMKFhcaEhMaDg8aDg8WKir6RkbeWlrCfn6ekpKOjo6Sjo6SkpKSlpaWmpqWkpKaenqyTk7aN - jbuHh8KEhMWDg8aDg8eEhMaKisCMjL2Kir+QkLibm6qioqGhoaGhoaGhoaGioqGioqObm6uPj7eMjLiG - hr+CgsSCgsWDg8WDg8WDg8SBgcaFhcGQkLOcnKSioqGhoaGioqKioqKioqGhoaKcnKebm6mPj7iKir2K - iryKiryLi72MjLyMjLyLi7yMjLqVla+goKGgoKCgoKChoaCioqKjo6OioqWdnaqUlLOOjrqIiMCEhMSD - g8WDg8WDg8aHh8GLi76RkbWYmKqbm6agoKGhoaGhoaGhoZ+dnZ+WlqeQkLGLi7qJibyKirqJib2FhcSF - hcODg8WIiMCTk7OenqeioqKioqKioqKhoaGhoaCfn6Gbm6aXl66QkLaNjbqLi7yLi7yLi7yLi7uMjLuK - irySkrKcnKahoaKioqOjo6Sjo6Sjo6Sjo6SlpaSmpqampqempqempqekpKWjo6SlpaWlpaWlpaWkpKWj - o6Sjo6SlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6OioqKioqKjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaam - pqempqampqalpaWkpKWjo6Sjo6SlpaWlpaWkpKWjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWjo6Wjo6Sl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SkpKOZmbCQkLqNjb6KisKGhsWEhMWC - gsSAgMKAgMKBgcOBgcOBgcOKiriOjreRkbebm66kpKOjo6SWlrKJib6FhcCFhcGBgcWBgcOBgcOBgcKA - gMSDg8SKir+Njb2Njb2Li7+SkrWenqmjo6idna2QkLuFhcWCgsiBgcV/f8N+fsKDg7uIiLiKiruHh8GD - g8WEhMSIiMGPj7efn6mnp6OhoaeYmLGQkLqOjrqOjriOjrSOjrKKireCgr+BgcJ/f8WEhMOLi72Pj7mR - kbiSkrecnK2kpKWhoaSYmK2NjbuLi72Li72Li7yHh7uBgb5/f8CAgMSAgMWCgsaGhsWHh8OKisGTk7eg - oKunp6SgoKuSkruHh8aEhMmFhciFhceCgsaBgcKEhL2FhcCEhMSFhcaEhMeGhsaNjb6VlbOioqWkpKOk - pKSioqWZma2MjLyHh8KDg8aDg8aCgsSAgMJ+fsGEhLmEhL2CgsKCgsWDg8eFhcWPj7qcnKyjo6WmpqOh - oaaWlq6QkLSLi7eFhb2AgMJ/f8J/f8F/f8F/f8F/f8KCgsOIiMGSkridnaykpKampqampqempqempqem - pqempqempqempqempqWlpaWmpqcgAKampZ6erY2NvoSEyISEx4WFxYODxISEw4WFwoWFw4WFw4eHv5KS - tZycqKGho6KioaGhoaGhoqKipKWlo5ycrZaWs5OTtouLvYSExISEyIWFx4SEyIWFx4iIwI+Pt5aWsJ2d - qKGho6Ojo6OjpKOjpKOjpKSkpKWlpJ6erJOTt46OvYmJwoSExoKCxYKCxYWFxYmJwI2NvIuLvoyMvZiY - r6KioqKioqKioqGhoaGhoaCgop6eppeXroyMuoeHwIKCxYGBxoODxYSExYSExYODxoWFwoyMupeXrKCg - oKCgoKGhoaGhoaKioaGhpJ2dp5qaqpeXrZGRtYuLuomJu4qKu4uLvYiIwYiIwYWFw4yMvJqaq6Ojn6Gh - oaCgoKCgoKCgoKKioaGhpJeXsZGRuIqKv4SExYODxoSExYKCxYaGwYuLvo2NvJOTtJubqJ+foKCgoKGh - oaKioKGhoZqappOTrI2Ns4mJuYqKuomJvYWFw4ODx4KCx4WFw4yMu5aWr5+fpqSkoaKioqKioqKioqOj - oaCgoJiYqI+PtoyMuoqKvImJvomJvomJv4eHwYeHwYWFw46Ot5ycpqKin6GhoaOjo6OjpKOjpKOjpKOj - pKSkpKampqamp6amp6Wlp6SkpaSkpKWlpaWlpaWlpaWlpaSkpKSkpKWlpaWlpaSkpaOjpaOjpKOjpKOj - o6KioqKioqSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6ampqampaSkpKSkpKWlpaWlpaWl - paSkpaOjpaOjpKOjpKSkpKWlpaWlpaWlpaWlpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaSkpaOjpKSko5qarY2Nu4aGxISExoSEx4SExYKCw4CAwoCAwoGBw4GBw4GBwoaGvIiIuI+PtJub - rKSko6OjpJmZr5SUtJWVsJCQs4ODwYCAxICAw39/w4KCwYmJvo2NvYyMvY2NvYyMvo+PupiYr6Cgp52d - ro+PvYmJxIaGw4aGwYaGv4eHuoiIt4aGu4SEwYSExIaGw4mJv4+PuJGRtZubq6SkpKOjpp2drJeXs5SU - s5WVspGRsomJt4ODwH9/wn9/woKCv4eHu4uLu4qKvYuLvo2NvZmZr6OjpqSkpJqaq42NuouLvYyMvYqK - voSEwYCAw35+woCAw4GBxISExoWFyIWFxomJwo+Pu5qasaWlpqGhq5GRvIWFyISEyISEyIODyISExIWF - voODvIKCwYKCw4KCxoaGxYyMwI6OvJCQup2dqqOjpKSko6OjpJycqo6OuoSExYODx4KCxoCAxYGBwYOD - uoKCuoCAwYKCxYODxYODxYWFxI6OupycrKOjpaWlpKKippycrJWVsYmJvIGBw4CAxIGBwn9/wX9/wYCA - woGBxYWFxIiIwo2NvZycraSkpqWlpaamp6amp6amp6amp6amp6amp6amp6amp6WlpqWlpiAAoaGml5e0 - iIjEg4PJhYXHhYXGhYXEhYXChYXDhYXDiIi9kZGznJynoaGjoqKioqKioqKioaGhoqKio6OjmZmvkpK3 - jY29hobFhITHhYXIhYXIhobHjIzBlJS3lpawnJyqoaGkoqKioqKjo6Oko6Oko6Oko6Ojo6OlmZmxjIy/ - iIjDhITIhITHgoLGgoLDiYm/jY28jIy+jY27kpK2nZ2ppKSgoqKioqKioaGhoaGhoKCimpqpj4+2h4fB - goLGgoLGgoLFhITFhITFg4PGhobCjY25lJSwnJyno6OgoKCgoaGhoaGhoqKhn5+lmZmrl5etkpK0kZG1 - i4u6iIi7iYm7h4e/hITEg4PGhobDj4+4m5upoqKgoaGhoKCgoKCgoKCgoaGgnZ2oj4+6iYnBhITGg4PH - hITGg4PFhYW/iYm7jY25k5O0mpqroKCloqKhoKCgoaGgoKCim5unk5OvjY23iIi7iYm5iIi9hITEgoLH - hITFiIjAj4+4lZWwmpqpn5+koqKioqKioqKioqKioqKjnp6mlZWtioq6iYm7h4fBhobEh4fDhYXEg4PG - g4PGgoLIi4u9mZmqo6OfoaGhoaGho6Oio6Oko6Oko6Oko6OkpKSkpqampqanpqanpaWmpKSlpKSkpaWl - paWlpaWlpaWlpKSkpKSlpaWlpaWlpaWlpKSko6Oko6OkoqKjoqKio6OjpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpqampqanpqanpaWnpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSkpKSko6OkpKSlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSkpKSjnp6plJS1ioq/hYXFhITG - g4PFgoLEgIDCgIDBgIDBgYHDgIDEhIS9jo6xmJiln5+hpKSjo6OkoKCnnp6pnJyrlpawi4u4hIS/g4O+ - gYG+hoa7i4u5i4u8i4u9jIy9jo69j4+8l5exo6Ojnp6pk5O1kpK3lJS1kZG4jo66jIy2hoa7goLAgoLB - hITBioq+kZG3lZWxl5evmZmroKCmo6OlnJyrlZW0lJS1k5O2ioq8goLBf3/Cfn7CgoK+iIi5i4u4ioq6 - ioq7jIy8jIy8mJivoqKmpaWknp6qkZG4jIy8ioq+hobCgoLFgIDEf3/CgIDCgoLEhYXGhITJhobFj4+8 - kJC7lJS2oaGppaWmnJywkZG7iIjFh4fEhobDhoa/g4O9gIDAgIDBgIDCg4PAh4fAiorBiIjDh4fElJS1 - oKCmpKSio6OjoKCmlZWziYnBh4fDhobChYXBhYW8hYW6f3/BgIDCgoLDhITEhITFhITFiIjAlJS0oKCp - pqajoaGolpazjY29g4PFgIDGgYHEgIDCf3/Bf3/BgIDDhYXCioq/jo67lZW0n5+ppaWkpqakpaWlpqan - pqanpqanpqanpqanpqanpqanpqanpaWmIACXl62NjbyGhsaEhMiFhceFhceFhcOFhcKFhcKIiL2QkLSY - mKmdnaKhoaKioqKioqKioqKioqKgoKKenqaUlLKLi7+FhcaEhMeEhMaFhceEhMmJicORkbuVlbeZmbKg - oKiioqSioqOioqOioqOjo6Sjo6SkpKOhoaWZma+Li76CgsiEhMaEhMaDg8SHh76Li7qKir2NjbuTk7Wb - m62hoaajo6OioqKioqKioqKioqGhoaKXl6yJibyEhMSDg8WDg8WEhMWEhMWEhMWHh8KPj7iVlbKbm6mf - n6KhoaGhoaGgoKChoaGioqCfn6SYmKyTk7SSkrSLi7uJibyKiruHh7+EhMOFhcOEhMSQkLabm6qfn6Wi - oqGhoaGhoaGgoKChoZ+enqKTk6+IiMGDg8eDg8eDg8aDg8aFhcGKirmKiriOjrSVla+enqekpKGioqOh - oaKhoZ+bm6aSkrCNjbeJibyKiruJibyFhcODg8aDg8WEhMSMjLyQkLeXl66fn6Sjo5+hoaGioqKioqKj - o6GgoKSbm6uSkrSJibyFhcCFhcWFhcaFhcWEhMWEhMWEhMSEhMOPj7ednaijo6ChoaGhoaGioqKjo6Ok - pKSjo6Sjo6Sjo6SkpKWlpaampqempqempqejo6WkpKWlpaWlpaWlpaWlpaWjo6SkpKWlpaWlpaWkpKWj - o6Sjo6Sjo6SioqOioqKjo6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWkpKSlpaampqempqempqalpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWjo6SioqWenqmUlLSIiMCCgsaDg8WBgcSBgcKAgMF/f8GBgcOCgsGHh7uRka6Z - maKenp2goKGioqSlpaKfn6iWlrOTk7eSkrWKirqIiLmGhraHh7iIiLuJibyKir6Kir2QkLqTk7ebm6+l - paSjo6KenqWcnKibm6qUlLKLi7uGhr2BgcCAgL+Cgr+Ghr2MjLiSkrSUlLKcnKqcnKmfn6aioqOdnamY - mK6VlbOMjLyDg8N/f8SAgMCBgb6FhbqHh7uIiL2IiL2IiL2Jib6Hh8GTk7ShoaelpaSfn6qSkriKir2F - hcKCgsWAgMWAgMN/f8KAgMGBgcODg8aFhcaJicONjb6Njb6Tk7egoKqmpqOjo6acnK+Pj7yOjruOjriG - hrx/f8KAgMKAgMGBgcCGhruEhL+BgceEhMiIiMSRkbqenqukpKOkpKOioqScnKqPj7qNjbyOjrqMjLqH - h75/f8OAgMGBgcKBgcKDg8OEhMSFhcSFhcSKir6YmLGkpKWhoaiSkreEhMaDg8aCgsWCgsWBgcOAgMKA - gMKBgcGIiLyKiruRkbaenqiioqWjo6ejo6ekpKampqampqempqempqempqempqempqempqempqcgAJGR - toeHwoSExoWFxoWFxoaGxYWFw4SExIeHwI6Ot5SUr5iYq52do6CgoaKioqKioqKioqGho52dp5WVroqK - vYSExoSExoSExoSExoWFx4SEx4mJwo6Ov4+PvpWVuKGhqqOjpaOjo6Kio6Kio6Kio6OjpKKipZycqpaW - sY6OuoSExoWFxYWFxYiIvYmJuImJuouLuZKStJqaraKipaSko6OjpKOjpKKioqKioqOjop2dppOTsYyM - uouLuoSEw4ODxYSExYSExYeHwo+Pt5WVsZmZq6CgpaOjoaGhoaGhoaGhoaCgoKGhoJ6epJaWrZGRtZCQ - toyMu4uLvYiIwoSExoWFxISEwoiIvpWVsKCgpKSkoKKioqKioqGhoaGhoaGhn5ubpoyMtoODw4ODw4OD - w4KCxIaGwIuLuYqKuo2Nt4yMtpCQspubqaOjoqKio6Kio6OjoJiYqYyMt4mJvIqKu4mJvIODxIODxoSE - xYSExYSExYKCxoiIv5aWr6CgpKKioaGhoaGhoaKioqOjoaCgpZmZrJGRtoiIwoWFxIWFxYWFxYWFxYWF - xYSExYaGwouLvJeXrqGho6KioqKioqGhoaGhoaOjo6WlpaWlpaWlpaWlpaOjpKSkpKampqamp6amp6am - p6OjpKSkpKWlpaWlpaWlpaWlpaOjpKSkpaWlpaWlpaWlpaWlpaOjpKOjpKKio6KioqOjo6WlpaWlpaWl - paWlpaWlpaSkpKKioqOjpKWlpqamp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKSk - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSko6Ghp5WVs4eH - wIGBxIKCxIGBwoCAwn9/wn9/wYGBwIiIuY+PsZCQspOTr5eXp5mZopyco6Ojo5+fqZeXsZWVtJSUtYuL - vImJuoeHuIWFuoWFvoWFvoeHwIqKvpCQt5OTtZaWs56erKSkpaOjo52dqJGRtIqKu4eHvYODwYGBvYCA - vYWFuomJuImJu4qKvJCQtpiYrpmZrJ6eqKOjoqKio6GhoZaWroeHwYGBxYGBwoKCvoWFt4CAwH9/w4GB - xIKCxoKCxoKCxoODxY2Nup2dqaamoqKip5aWs4eHw4KCxoGBxYCAw39/wn9/wYCAwYGBw4ODxYmJwY+P - vI2Nvo2NvpSUtpycrqKipqCgpJmZrJSUspSUsZSUromJuICAwoGBwIGBv4WFuIKCwIGBxYKCxYeHwJWV - tJWVtZqasKGhp6Sko6OjpKCgpZKStJCQtpKStIyMvYKCx4GBw4CAwYCAwYCAwYKCwYSEwoWFw4mJwIeH - wpCQt5+fqaSkpZubrpCQu4aGxYODxoODxYKCxIGBwoKCwYaGuYmJuY+PtZaWrJubqpqarJqarZqar6Gh - qaampKWlpaamp6amp6amp6amp6amp6amp6ampyAAkZG1jY26iIi/hYXDhITFhITFhITFhITFg4PGhobB - j4+0m5unoaGhoaGhoaGhoqKio6OhoaGjlpavioq+hYXFg4PFg4PFg4PFgoLFhYXGhITHiYnCj4+8lpa3 - n5+upqaopqalpKSkoqKjoqKjoqKjo6OinJyqlJSzkpK1kJC3jIy9jIy9jIy9ioq8iIi8i4u4kJCwkZGx - n5+lpKSjo6Oko6Oko6Oko6Oko6Oin5+llJSyi4u9i4u8i4u8hITDgoLEg4PGh4fCj4+4lJSymZmroKCk - o6OhoqKioqKioaGhoaGhoaGhoaGfnp6jlpatkJC2i4u8jIy8iIjChYXGhobFhobEiYm/h4e/kpKzn5+m - o6OhoqKioqKioqKioqKhnp6jlJSujIy4jY23iYm7ioq7ioq7ioq7ioq7ioq6jIy4kpKxl5eonZ2ioqKh - oqKjoqKjo6Oinp6mlJSvjIy3iYm7goLEgYHDgoLEg4PFg4PFg4PFg4PFjo64np6mpKSgoqKioqKioaGh - oaGhoKCkm5upkZG1hobDhYXEhYXEhITFhITFhYXFhYXFh4fDjo6+lJS4oKCspqako6OjoqKioqKioaGh - oqKjpKSlpaWlpaWlpaWlpaWlpKSkpKSkpqampqanpqanpqanpKSlpKSkpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpKSko6Oko6OjoqKio6OkpaWlpaWlpaWlpaWlpaWlpaWloqKioqKjpaWmpqanpqan - pqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlp6eknp6qjo65hITFhITFgoLEgYHDgIDCf3/CgIC/hoa3jo6wj4+w - kJCykJCzkJCzkJCxlZWnoKChnp6mnJyqnJyomJitjIy8ioq6hYW8g4O9hIS8hoa9iYm8ioq9jIy6jY25 - jY26k5O3n5+poKCok5O0i4u9ioq9ioq7iYm6hoa3hoa3h4e4iYm5iYm7ioq8ioq8ioq9j4+4m5urpKSh - oaGkmpqrlJSwjY25iYm8iYm5h4e6gIDBgIDBgIDBgoLEg4PFg4PFg4PFj4+1lpasnp6lpKSioqKlnJyt - j4+7h4fFg4PGgoLEgYHCgIDBf3/BgIDDhoa+jIy7jY2+jY2+jY2+j4+8lJS2oKCqoqKmlpawl5evmJiu - lJSwjIy2hoa5hoa3hYW4gIDAgIDCgIDEhoa+k5OxkpKzlJS1mpqwoqKopaWko6OjoKClkpK0kZG2j4+5 - iYnBhITFgoLDgYHBgIDAgIDAgYHAgoLBg4PChYXDhITGjY27nJyqpaWho6Onlpa0h4fEhITHhYXGg4PF - goLCiIi5hoa4i4uwlZWqmpqpmpqqmpqqm5usmpqtoKCopqakpaWlpaWlpqanpqanpqanpqanpqanpqan - IACMjLuIiL+FhcKEhMSEhMWEhMWEhMWDg8eFhcOOjreamqmhoaGhoaGhoaGhoaGhoaGioqGfn6aSkrSL - i7yKir2Hh8GCgsWDg8SEhMWEhMaIiMKNjb6UlLeenq2lpaimpqempqempqakpKSjo6SioqOioqKdnamW - lrCQkLiMjL2Li72Li72MjL2Li76OjrqTk7SSkrORkbGdnaKioqGjo6Sjo6Sjo6Sjo6Sjo6OamqyPj7iK - ir2Li7yKiruKir2Kir2Kir+OjruTk7OTk7OSkrSenqajo6GioqKioqKioqKhoaGioqCfn6KXl6uOjrSK - irqNjbyIiMKGhsWGhsWHh8SKisKKisKSkrSZmaefn6GioqGioqKioqKioqKhoaOWlq+MjLqMjLmNjbeQ - kLONjbeHh7+Dg8SEhMOEhMOFhcGOjrabm6agoJ6fn6ChoaKioqOenqeWlrCPj7eJibyDg8OCgsODg8WC - gsWCgsWCgsWDg8aGhsSSkrSenqSjo6CioqKioqKioqKioqCbm6eRkbWIiMKEhMWFhcSEhMWEhMWEhMWE - hMWHh8ONjbuTk7eamrGioqmmpqWlpaWjo6OioqKioqKioqKioqOkpKSlpaWlpaWlpaWlpaWkpKSjo6Sl - paWmpqempqempqekpKWjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6SlpaWl - paWlpaWlpaWlpaWlpaWlpaWkpKSioqKioqOkpKWmpqempqempqelpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWkpKWjo6SlpaWlpaWlpaWlpaWlpaampqempqempqelpaalpaWlpaWlpaWlpaWlpaWmpqShoaeU - lLKIiMGEhMWDg8WCgsSAgMWAgMGGhraOjq2Pj66QkK+NjbSLi7iLi7mMjLeYmKidnZ2amqOZmaebm6WY - mKmMjLmHh72EhL2Dg72EhLyJibuJibuKiruHh7+GhsKGhsSKisCYmLCfn6iUlLaLi76Li72Li7yKiruI - iLiIiLWEhLyBgcKCgsOEhMSKiryKiryKir6Tk7Sfn6aioqOZmayamqyUlLCOjreHh72BgcKBgcKAgMGB - gcGCgsOCgsWDg8WJib2RkbKTk7GXl6yenqWjo6Ofn6eTk7aHh8OEhMeEhMaCgsSBgcJ/f8KFhb2JibqN - jbqMjL+GhsaGhsWEhMePj7yfn6ulpaWenqqcnKiamquamqqVla6NjbWGhrmAgL9/f8F/f8OEhL+KirmM - jLmLi7uLi7yXl7Kjo6enp6SlpaShoaWTk7OMjLuLi7yHh8CCgsWCgsOBgcGBgcCBgcCBgcCCgsGDg8KD - g8OHh7+Rkbabm6uioqOhoaWUlLSMjL+Li8GLi8CJib+Hh72IiLqMjK+KirOKireMjLiOjreVlbGamqqd - naienqihoaempqWlpaWlpaWmpqampqempqempqempqcgAIeHwYWFw4SExYSExYSExYSExYODxoaGw5CQ - t5ubqaGhoaGhoaGhoaGhoaGhoaGhoaGhoZycppGRto2NuomJwIODw4GBw4ODxYODxoeHwYyMvZWVtZ6e - rKSkpqampaamp6amp6amp6WlpqOjpaKipKOjop6epZKSsoqKvIqKvYqKu4qKvIuLvY6Ou5GRuJKSt5GR - t5SUsZ6eoqCgn6Kio6OjpKOjpKOjpJ+fqZKSt4uLvYqKvIqKu4yMu4eHwYaGwoWFw4mJvo+Pt5CQt5OT - s5+fpqOjoaKioqKioqKioqKioZ6eo5eXq4+PtYqKuomJuoaGwoSExoSEx4eHxYuLwY2Nv5KSup2drKCg - pKCgoKCgoKGhoaKioqKioqCgpJeXrpGRtJOTsZCQso+Pt4mJv4SExYODx4ODxoODxYiIwJOTr52doqGh - n6CgoJ+fn6CgpJaWsJCQuYqKvoSExIODxYKCxIKCxIKCxYKCxYKCxIaGv5GRtZqaq6GhpKKioaGhoaKi - oqKioqKiopeXrImJvoKCx4ODxYSExIWFw4aGxIaGxYiIwouLvo2Nu5mZsKKiqaWlpqWlpqWlpqSkpqKi - o6KioqKioqKio6OjpKOjpKWlpaWlpaWlpaWlpaOjpaOjpKampqamp6amp6amp6SkpaOjpKWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaSkpaSkpaSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6WlpaWlpqWl - pqWlpaamp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKWlpaWlpaWlpaWlpaWl - pqamp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaSko5ubq4yMvIGBx4KCxoKCx4ODw4mJtYuLsISEvIWF - vIWFvIiIuYuLuYyMuJKSsZ+foaCgn52dnpuboZaWqYyMtIeHvIWFvYSEvYSEvIaGuYmJuYmJuYaGvoWF - wYSExIWFxIyMvJmZraGhppmZso6OvIuLvouLvYuLvIuLuYSEvYCAwX9/xIKCw4mJvYqKvIuLvYqKwJGR - t52dp6KioqCgpZ2dqJOTs4mJv4ODw4GBw4CAwX9/wYCAwYGBxIODw4iIvYqKuoyMuIuLupOTsp2dp6Ki - oqGhpJWVs4iIwoSEyIWFx4ODxoGBxIWFvIiIuIqKt4mJvIaGxYWFxoSEx4iIw46OvZqasKSkpqSkpqOj - pZ2dqZiYrZKStYmJvoKCxH9/xH19w4KCvYiIuYmJuYmJu4qKvIiIvZKSs5+fqaWlpqampaSkpZmZrpGR - to+PuIuLuoWFwYODxIGBwYGBwYGBwIGBwIKCwoODw4iIvYiIvZKSs5ubqqGhpKGhpJOTso6OuY6Ouo+P - uo6OuoyMt46OsImJsoaGt4eHuYmJuouLu4+PuZSUsZiYrpubqqGhpqWlpKWlpaWlpaWlpqamp6amp6am - p6ampyAAhITEhITFhITFhITFhITFg4PGhobCjY25l5eun5+koqKgoaGhoaGhoaGhoaGhoaGhoaGgnp6i - kpKziYm+g4PEgYHEgoLDhITEh4fAjY25lJSympqsoaGnp6ekpaWlpaWmpqanpqanpqanpqalpaWkoKCm - lpawjIy6iYm9ioq8ioq8ioq8jIy+j4+8j4+7jY29jo65mpqtoaGjoaGgoKCgoqKio6Oko6OknZ2pj4+5 - ioq/jIy8ioq8h4fBgoLGgoLGgoLGhITFiIjAj4+5mZmsoKCjo6OhoqKioqKioqKioqKil5etjY23ioq6 - iYm8hITBgoLGg4PGhITGh4fFiIjEiIjDlJS1oqKopaWko6OioKCgoKCgoqKioqKinZ2ompqsmJiulJSx - j4+2h4fBhITGhITGhITFhYXEioq+k5OznJymoKCgoKCgoKCgn5+fnp6hkpKyiYnAhITGg4PGhITFgoLF - gYHEgoLFgYHGhITDjY24mZmpoKCkoqKioqKhoaGhoaGhoqKinZ2olJSzioq9hYXBh4e/iIi/iYm/iorA - iorAi4u+jIy9jIy+mpqupKSlpqakpaWmpaWmpaWmpKSloqKkoqKioqKjo6OkpKSkpaWlpaWlpaWlpaWl - paWlpKSkpKSkpqampqanp6eop6eopaWmpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpqampqaopqaopqampaWmpaWmpqanpqanpqampqalpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqampaWlpaWlpaWlpaWl - paWhnJyojo66hYXEhobDhobEjIy4jIyyhIS7f3/Ef3/Cf3/Eg4PBhYXAiIi+kJCynp6joaGfoaGdm5uh - j4+vhIS+hIS+hYW9hoa8hoa5hoa3h4e4hYW8hITBhITChYXAioq8k5OznJyqoqKkmpquj4+7jIy/jIy9 - jIy8iIjAgYHEf3/EgYG/hoa7i4u5i4u6jY28jIy9kZG3mpqsn5+mo6OimZmti4u+g4PHgYHHgYHDgIDC - f3/Cf3/CgoLAh4e8ioq6ioq7ioq8ioq/kpK3nJysoaGmoqKimJiviorAhYXGhobEh4fDiIjAioq6iYm3 - hoa6hITBg4PGhITGiIjCj4+7j4+7mJiypKSmpqalpqalmpqtkJC3i4u9iYm/hobBhYW+g4O8hoa4iYm5 - iYm7ioq7i4u7i4u9j4+2lpauoKCopqakpqalo6OonZ2qnJypmZmrkJC1hobAhYW+goLAgIDBgYHBhYXB - ioq+jIy6iYm9j4+1mJisn5+loqKjmZmrkJC3jY26jo65kJC2kZGyjIyzh4e3h4e3hoa6hYW/hobBh4fB - jY26kpK1mZmsoKClpKSkpKSkpaWlpaWlpaWmpaWmpaWmpqamIACEhMWEhMWEhMWEhMaEhMaIiMGOjriT - k7KXl66enqajo6GhoaGhoaGhoaGhoaGioqCioqCdnaWPj7WDg8KBgcSDg8SCgsaDg8SLi7uRkbOXl62X - l66cnKulpaOlpaWlpaWmpqampqempqempqejo6ibm62NjbyKir6Li7uKiruMjLyMjL2Njb2Njb6MjL+O - jryVlbSgoKajo6OioqKgoKCgoKChoaKioqSenqmUlLWOjryLi76GhsGCgsaDg8WDg8WDg8aEhMaHh8CU - lLOfn6SioqKioqKioqKioqKioqKhoaOXl6+QkLaLi7uFhcKCgsaDg8WEhMSFhcSEhMaFhcaMjL+VlbWj - o6empqSkpKWioqOgoKCgoKCdnaaamqyYmK6VlbGOjrmHh8CCgsaDg8aEhMWFhcSJib+QkLednaiioqKh - oaCgoKCgoKChoaCdnaKUlK2KiruFhcSDg8aDg8WCgsWCgsWCgsWCgsWFhcKPj7abm6ehoaGioqGioqKi - oqKhoaGioqGcnKqWlrCTk7KRkbSOjreMjLyNjbyNjbyMjLyLi72Njb2UlLaenqmjo6WlpaWlpaWlpaal - paalpaakpKWjo6SioqOkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSkpKSlpaWlpaalpaalpaajo6Sk - pKWkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqam - pqempqempqelpaampqampqempqempqelpaakpKWlpaWlpaalpaalpaalpaalpaWlpaWkpKSkpKWkpKWk - pKWkpKWlpaWmpqampqempqempqelpaalpaWkpKWkpKWkpKKdnaeTk7SSkrWSkrSRkbaOjraGhrx/f8SA - gMGAgMGBgcKAgMSCgsSGhsGKiruRkbObm6ahoZ+cnKOOjrGEhL6GhryGhryHh7qGhriFhbeDg7qBgb+D - g8CHh8CKir2Pj7aVlbCZma2fn6acnKuUlLSOjrqLi76Hh8GEhMaBgcWCgsKGhrqHh7eGhr+Hh7+JicGI - iMKLi76UlLSenqmioqOXl6+IiMCDg8WFhcKEhMGEhL6Dg72Cgr6FhbqJibeJibqGhr+Hh8CIiMKLi8CT - k7idnayjo6Obm6iRkbaNjbyNjbyLi76NjbyLi7qHh7uBgb+AgMODg8OIiMGOjryQkLqOjryWlrSjo6em - pqSlpaWXl7OQkLmMjLyLi72MjLqKiriHh7eHh7eIiLmJibyHh8GHh8CHh8CHh8COjrebm6mkpKKjo6Ok - pKOkpKGkpJ+goKOWlq6Li7qHh76Dg8KBgcGBgcKEhMKIiL+IiMCMjLqRkbWTk7GZmaqjo6GgoKWWlrGU - lLOTk7KSkrOPj7aIiLqIiLiGhrqDg8CBgcWCgsWCgsWKir2OjrmSkrObm6mjo6Ojo6SkpKWlpaWlpaWl - paWlpaWkpKQgAIWFxYWFxYWFxYWFxYmJwY6Ou5OTtJKSs5iYrKCgpKOjoaKioqGhoaGhoaGhoaGhoJyc - pZOTsYmJvIODwoKCxIKCxYODxYaGwo2NupOTspOTsZKStJmZrKSkoqSkpaWlpaWlpaampqamp6WlqKCg - rJmZspCQuo2NvYyMu4qKvImJvomJv4qKv4uLvo+PvJeXtKGhqKSkpKOjpKKipKKioqGhoKCgoKGhopub - rZWVtI6Ou4eHwoGBxoKCxYODxYSExYSExYeHwJGRtZ6ep6KioqKioqKioqKioqKioqKioqCgpJubqpSU - soiIv4CAx4ODxYODxYWFxIWFxIWFxIyMvpiYs5ycrqSkpqampKWlpaWlpaOjo6CgoZiYqZiYrJSUsYyM - uoaGwYGBxYGBxIKCxISEw4mJv4+PuJSUsqCgpqKioqKioaGhoKCgoJ6eopmZp5OTrY6OtYeHv4KCxYKC - xYKCxIKCxYKCxYSEw4mJvZKSspycpaCgoaKioaKioqKioqKioqGhoZ2dqJubqpubqpaWr4+Pt4yMvYyM - vYyMvYyMvY2NvZOTt5+fqKSko6Ojo6SkpaWlpaWlpaWlpqWlpqWlpqWlpqOjo6OjoqWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpKOjo6OjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6amp6WlpaampqWlpqWlpqSkpaOj - pKWlpaamp6amp6amp6ampqWlpaWlpaWlpaSkpKOjpKOjpKOjpKWlpaWlpaampqamp6amp6amp6WlpaOj - pKOjpKOjoqCgpJycqJycqJqaqJOTsYaGwICAxYCAwX9/wYCAwYCAwYGBwYeHvYuLu4mJvIiIvpSUrp6e - oqCgoJaWqouLtoqKt4iIuIiIuYaGuYKCu4CAvoGBvoKCwIeHv4mJwI2Nu5SUspSUspiYrp+fppubqpCQ - t4aGwoODxoODxYKCxIaGu4iItoSEvYGBxoKCxoODx4ODx4iIwpOTtZ+fp6OjpJ6ep5GRtYqKvYmJvYmJ - u4mJuIiIt4aGtoaGt4eHuoWFvoGBxYGBxYGBxoODxo2NvZ2drqWlpKGhpJ2dp5eXr4+PuIuLvouLvYiI - vIGBwX9/wYCAwYODwImJvImJv4uLvYuLwJGRuZ6eq6WlpaWlpZiYspSUtpCQuYuLvYyMvImJuYeHuYWF - t4WFuISEv4GBxoODxoODxoKCxoqKvZmZq6Ojn6GhoaGhoaGhoZ6epZiYrJGRs42Nt4aGwIWFwYODwIGB - wYGBxIGBxYKCxo+PuJSUs5KSs5eXrKKin6Kiop6ep5ycqZiYrZCQtomJvYmJuYiIuoKCwICAw4KCxIOD - xYODxYiIvomJv4uLvZWVsaCgpaOjpKOjpKSkpaWlpaWlpaWlpaOjpCAAhITFhYXGhITHiYnCjY28i4u+ - i4u+j4+4nJyno6OgoqKioqKioqKioaGhoqKgnp6kk5OwiIi+iIi9hITEg4PGg4PFh4fBjo65k5OzlJSz - lJSzmJitnp6lo6OioqKjpaWlpaWlpaWlpqalpaWooKCsmpqzlZW3j4+7jIy9iIjAg4PGg4PGg4PGiYm/ - lZWzoaGop6elpaWlo6Oko6Oko6OjoqKioaGgn5+gk5OxjIy8hYXCgYHFgoLEgoLFg4PEg4PFiIjAj4+4 - mJiuo6OgoqKioqKioqKioqKioqKioaGjmpqqkpKwhobAgIDHg4PEhITGhYXFhYXFhITFi4u9lZWympqu - oqKopaWlpaWlpaWlpaWlpaWloqKjm5umlJStjIy0hYW+gYHFgoLCgoLCg4PBh4e9jo64lJSym5urn5+m - oqKioqKioqKhoKCimZmnk5OvjY23hITBgIDFgoLDg4PEhITFhITFg4PGhobBkZGznZ2loaGhoaGhoaGh - oqKioqKioqKioKClmpqpmZmrlZWwjo65ioq/i4u9jIy9jIy9jIy+kJC5mZmuoKCno6Oko6Oko6OkpKSk - paWlpaWlpaWmpaWmpaWmpKSlo6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqan - o6OkoqKioqKjpaWmpqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWmpqanpqanpqanpaWlpKSko6Oko6Oko6Oko6OkpaWlpqampqanpqanpqanpaWlpaWlpaWl - pKSlo6Oko6Oko6OkpaWlpaWlpqampqanpqanpqanpaWlpKSkoqKjo6OhoKCkl5eskJCxhYXBgYHEgoLC - gYHCgIDBf3/Bf3/Bhoa8ioq6iYm8iYm8ioq7lZWunp6joKCfnJyjlparj4+xioq0iIi3hIS8gIC+gYG9 - gYG9gYHBgYHEgYHGiIi/lJSylJSyk5OzoKClm5uqi4u9g4PHhITEgoLEhoa6h4e2g4O8gIDDgYHDgoLE - g4PFiYm/kJC4lZWzm5uso6Oko6Ojn5+nk5O0ioq9i4u8ioq6iYm5hoa3hoa4hIS9gIDDgYHDgoLEgYHE - hoa/k5O0oKCppaWlpaWlpaWhmZmrjIy4ioq6iYm6g4PBgYHBgIDAgIDBgIDBgIDCg4PEiYm+jIy+jIy+ - lZW0o6OmpaWlmJixj4+8jIy+jY29ioq8iIi5h4e5hIS6goK/gYHDgoLEhITFhYXEiYnAjo65mZmto6Og - oaGhoaGhn5+kmJiqkJCyjIy2jY21iYm5ioq5g4O+f3/DgYHDgYHDgoLDiYm/j4+4lpavnZ2noqKhoaGh - np6mmZmtj4+5iYm/i4u8iYm7goLCgIDCgYHCg4PFg4PFg4PFg4PGgoLHhobCkZG1nZ2oo6Oko6Oko6Ok - o6Oko6Oko6Oko6OkIACGhsKGhsKFhcSFhcaFhcaFhcaEhMaQkLqdnaiioqChoaGioqKioqKioqKjo5+a - mqmNjbeHh76CgsSCgsSBgcWGhsGOjrmTk7OTk7STk7SYmK2fn6aioqGhoaGioqOioqOkpKSmpqWkpKaf - n6uZmbGUlLeQkLuJicGEhMaEhMaDg8WDg8WKir6Li7uUlLKhoaampqWlpaWlpaWkpKSjo6Sjo6OhoaKZ - mamMjLiDg8OBgcaCgsWCgsWDg8SDg8WHh7+Pj7aUlLKYmK6jo6GioqKioqKioqKioqKjo6GhoaOUlLKG - hsKBgcaCgsWCgsWDg8WEhMaEhMeNjb2RkbeRkbaZma2jo6SlpaWlpaWlpaWlpaWlpaWlpaWdnaqOjraI - iLuJibmJibqJibqJibqIiLqLi7aRkbCZmaqfn6WioqKioqKioqKjo6KhoaOamqmOjreFhcKCgsWCgsOC - gsODg8SEhMWEhMWDg8aKiryZmauioqChoaGhoaGhoaGhoaGhoaKgoKWamquamquVlbCOjrmLi76Njb6N - jb6Njb6MjL2MjL2MjL2SkrWgoKejo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaalpaalpaakpKWjo6Sjo6Sl - paWlpaWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqempqejo6Sjo6Slpaampqempqempqempqelpaal - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSkpKSlpaampqempqempqelpaalpaWl - paWlpaWjo6Sjo6SkpKSmpqampqempqempqelpaWlpaWlpaWkpKWjo6Sjo6Sjo6SkpKWlpaWlpaampqem - pqempqelpaakpKSkpKKfn6WQkLSEhMKCgsOCgsSCgsSBgcOBgcKAgMGEhLmIiLmKir2MjL6MjL2MjL2U - lLObm6ugoKOgoKCZmaiMjLiIiLmHh7mHh7mFhbqAgL9/f8GAgMGAgMOFhb+OjreTk7OSkrSVlbCdnaeZ - mayPj7iKir6Li72KiruKirmEhL+AgMKAgMGBgcOCgsSIiL2Li7yLi72MjL2QkLidnaqioqSlpaKbm6qN - jbaJibuJibuIiLmGhreCgrx/f8KAgMKAgMKAgMSGhr6SkrGcnKeenqegoKmlpaWioqiZma6SkrKQkLKO - jrGJibiHh7aCgr1/f8KAgMGBgcKDg8SIiL2Li7yOjryXl7Ojo6alpaWYmLKPj7uNjb6Ojr2Ojr2KiruG - hryAgMB/f8GAgMGBgcKDg8OKir6Li76Pj7ubm66lpaOioqKhoaGgoKOUlLCMjLmNjbaMjLWKiriDg8GA - gMKAgMKBgcOBgcKCgsOBgcSHh8CPj7mWlrCcnKihoaGfn6SYmKyQkLiLi76Li76EhMSBgcN/f8GAgMGB - gcOCgsSDg8WEhMWDg8aHh8GTk7OgoKaioqKjo6Sjo6Sjo6Sjo6Sjo6Sjo6QgAIeHw4WFxIWFxoWFxoWF - xoWFxomJwpWVs6Cgp6SkoqKioaGhoaKioqOjoqCgo5SUsIiIv4ODxYKCxISExYSExYSExIWFwoaGwoeH - wouLvZaWr6CgpaOjoqKio6GhoaKio6Kio6Wlo6KiqZmZsZOTt5CQu4qKwoaGx4SEx4ODxoKCxYiIvo2N - uYuLu5OTs6GhpqSkpKWlpaWlpaWlpaSkpKKio52dqZSUsoWFwoKCxoODxYODxYODxYODxYKCx4eHv4+P - tZaWrpycqaKioqKioqKioqKioqKioqGho5ubqo+PuYeHwYODxIKCxYKCxYKCxYODxYODx4iIwZCQuJiY - r52dqKKio6OjpKSkpaWlpaampKWlpZ+fq5iYs5OTtI2Nt4mJuomJuYmJuYmJuYuLto+Ps5OTr5iYqZ6e - pKKioqKioqKioqKioqGhopycp5KSsYWFwYKCxYODxIODxIODxISExYSExYODxYuLupmZqaKioKGhoaGh - oaGhoaKioJ+fo5mZqZmZrJqaq5eXr4uLvISExoeHxIaGxYaGxoqKwIyMvZCQt5ubraKipKOjpKOjpKOj - pKOjpKOjpKWlpaWlpaWlpaWlpqWlpqWlpqWlpqOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaampqam - p6amp6amp6amp6SkpaSkpKampqamp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaSkpKOjpKWlpaamp6amp6amp6ampqWlpaWlpaWlpaOjpKOjpKOjpKSkpaamp6amp6am - p6WlpqWlpaWlpaWlpaOjpKOjpKOjpKSkpaWlpaWlpaamp6amp6amp6ampqWlpKCgppKSsoaGwoGBxYGB - xYGBxYCAxYCAwoaGu4aGtoODvoSExIaGxYaGxYaGxYiIw5KSt5+fpqGhoZeXqpCQs5GRsouLtoWFu4KC - v4CAwH9/wX9/woSEvIiIuoqKu4qKu42NupeXrp6eppqaq5WVspWVsJWVsY2Nu4aGwoKCxIGBwoCAwoGB - w4eHvIyMu4mJvoeHwYaGwomJwJaWsKKipaSkpJycq5OTso6OtImJuomJuIKCvX9/wX9/wYCAwoCAw4SE - vZCQspeXrJiYrZiYrZmZrqSkpaCgqZ6eq5mZr5GRs4+PsIuLt4ODvYCAwYCAwYGBwYGBwoODxImJvYmJ - u42NuZqar6ampKWlpZ2drZaWtJWVtpSUuI6OvYmJwIODwn9/wX9/wYCAwoKCxISExYWFxYmJw5SUtqCg - qKamo6SkpaKioqKioZubqJOTsI+PtIqKuYODv4GBwoCAwoCAwYGBwYGBwoKCxYeHvomJu4qKvI6OuZaW - sKKioqGhoZ2dpZSUsYmJvoSExIKCxIGBw4CAwn9/wYCAwYGBwoKCxIKCxoiIwIqKvZCQt52dqaGhpKKi - oqOjo6OjpKOjpKOjpKOjpCAAhobEhYXGhYXGhITGhYXGi4vBlpa0oKCpo6Oko6Ojo6OioqKhoaGhoaGj - l5euioq+g4PGg4PGgoLEhITFhITFhITGg4PGhITFiYm/k5OynJyooaGjoqKjoqKjoqKioaGhoaGipKSi - oqKmmpqxj4+8iorChobGhYXHhITHhYXEioq9jo64jIy7kJC0m5upo6OioqKjpKSkpaWlpqalpKSmn5+p - mJiwjY27ioq9hYXCgoLFg4PFg4PFgoLGh4e/iIi9jY24mJisoqKhoqKioqKioqKioqKioqKinJyokJC2 - iIi/hITEgYHEgYHEgoLFgoLFgoLFgYHHi4u/mJixoKCooqKjoqKjoqKjo6OkpaWkpKSmnZ2tl5ezl5e1 - kpK5jIy6iYm6iYm5iYm5jIy2jo60jo61j4+zlpaqn5+goqKioqKio6OhoqKinZ2nl5eulJSxh4fAgYHF - goLDgoLDg4PEhITEhYXEi4u7lZWvnZ2loqKgoaGhoaGhoaGhoaGhnZ2kmJirmZmql5esi4u6hITEgoLG - g4PFhYXGhITHi4vAk5O2m5usoqKlo6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWmpaWm - pKSmo6Oko6OkpaWkpaWlpaWlpaWlpaWlo6OkpKSlpqanpqanpqanpqanpaWmpaWlpaWlpaWmpqanpqan - pqanpqanpqampaWlpaWlpaWlpaWlpKSkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkpaWmpqanpqan - pqanpqampaWlpaWlpKSlo6Oko6Oko6OkpKSlpqanpqanpqampqalpaWlpaWlpKSlo6Oko6Oko6OkpKSk - paWlpaWmpqanpqanpqanpqaloqKmmpqrkZG0iIi9hYW/hoa+hoa+h4e9iYm5g4O8gYHBg4PEhITGhITG - hobFiIjDlZW0oaGmo6OinZ2nlZWsjo61iIi8g4PBgYHCgYHCf3/Cg4O8h4e5iYm7iYm8ioq6i4u6j4+2 - mpqrnZ2mnZ2mnJyok5OzhobCg4PHgoLGgIDEgYHBhoa7ioq5iIi+hobBhYXChobCioq+k5O2oaGmoqKl - n5+onZ2pl5euiYm6hIS/gIDCf3/Cf3/CgIDBhYW8i4u4kpKylpaul5eulpavmpqqoqKjpKSmpqalnp6s - kZG3jY25hYW/gYHBgIDBgIDBgoLDg4PEhYXGi4u+jIy8jIy8kpK0n5+oo6OmpKSmm5uvlJS3kJC7iorB - hYXFgYHEf3/Cf3/BgIDBgoLCg4PFgoLKjY2/mpqwnp6qoKCppKSlo6Oko6OioqKgmpqojo64hITDgYHE - gYHDgIDBgIDBgIDBgYHCh4e9ioq6ioq8jY26kZG1lZWxo6Oho6Ogn5+jk5Owhoa/gIDGgoLEgYHDgIDC - f3/Bf3/BgYHDgoLFiYnAjIy8i4u9jo66mJiuo6OjoqKioqKjo6Oko6Oko6Oko6OkIACFhcWFhcWEhMaF - hcWLi7+WlrSfn6qkpKWlpaWjo6Wjo6Sjo6OioqGcnKiRkbSKir2GhsKBgcSCgsSCgsWDg8WEhMWFhcWK - ir6WlrCenqWioqKioqKioqOioqOioqOhoaKioqKioqOenqiVlbSIiMKFhceEhMiEhMeDg8WDg8KGhr+H - h8CMjLuZmauhoaGioqGioqKioqOkpKWlpaWkpKacnK6RkbmMjL2Kir+FhcODg8WDg8WEhMSHh7+JibyM - jLmRkbOamqiiop+hoaGioqKioqKjo6GgoKWVlbGIiL+Dg8OCgsWBgcSBgcSBgcWCgsWCgsaFhcKNjbqb - m6ykpKOjo6Sjo6SioqOioqOkpKOjo6ebm7CVlbaSkrmOjr6Kir6IiLuJibmMjLeOjrSNjbWOjrSTk66Z - maWfn5+goKCioqGhoaOcnKiWlq6SkrOQkLeGhsKCgsWDg8SDg8SEhMSGhsKIiL+UlLGenqWhoaKhoaGh - oaGhoaGhoaGgoKGcnKWYmKqWlqyLi7mDg8OCgsWDg8SCgsSEhMWEhMeOjr6dna+lpaWlpaSjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaakpKWjo6Sjo6SkpKSlpaWlpaWlpaWkpKSk - pKSlpaWmpqampqempqempqempqempqalpaWlpaampqempqempqempqempqalpaWlpaWlpaWkpKSjo6Sk - pKSlpaWlpaWlpaWlpaWlpaWlpaWkpKSlpaWlpaampqempqempqempqalpaWlpaWlpaWjo6SioqOjo6Sk - pKampqempqempqempqalpaWlpaWioqOioqOioqSjo6SkpKSlpaWlpaampqempqempqelpaahoaWfn6aR - kbOMjLaOjrONjbSJibmEhL6BgcGBgcOCgsWDg8WGhsOLi7+QkLmYmLGgoKmjo6ShoaWVla6Hh72CgsSB - gcWAgMWBgcKEhL2FhbeHh7mKirqJibyGhr+Ghr+FhcGRkbWdnaehoaOamquNjbyHh8CGhsCGhr6Fhb6F - hbuHh7eHh72FhcCFhcKHh8GLi72RkbeVlbOfn6ijo6ShoaWenqmXl7CLi7yBgcSAgMV/f8OAgMCEhLqK - iraMjLqMjLmOjriTk7Kbm6igoKOioqGjo6Knp6OgoKuQkLqHh8OCgsWBgcOAgMGAgMGBgcOCgsSEhMaI - iMSJicOGhsSJib+VlbGhoaampqOdna2QkLuJicKHh8KFhcOFhb2BgcB+fsGAgMGBgcOCgseMjL6UlLaZ - mbGYmLKamrCmpqSkpKWjo6WkpKCcnKaMjLuBgciDg8SCgsOCgsKAgMKAgMGFhbyKirmLi7uLi72NjbqO - jriQkLaenqiioqKhoaKZmaqOjraEhMGCgsSBgcOAgMJ/f8F/f8KBgcKGhr+Li7yMjL2MjL2Li76QkLef - n6WioqKioqKioqKioqSjo6Sjo6QgAISExYSExYWFxIqKv5OTtpubraGhp6SkpaWlpaWlpaSkpKOjpKGh - pZWVsI6Ot4uLvIeHwIGBxYKCxIKCxIKCxYSExImJv5KStZubp6GhoaKioaKio6Kio6Kio6Kio6Kio6Ki - oZ2dppOTsomJv4SExoSExoeHw4SEw4GBxIGBxIGBxoKCxZCQtZ+fpKOjn6GhoaKioqKio6KipKSkpKSk - ppubsY2Nv4mJwIWFxYSExoSExYODxYSExImJv42NuZKSspmZqZ+fo6GhoaGhoaKioqKioqOjoJ6ep4+P - t4ODxIODxYKCxYGBxIGBw4GBxIKCxYWFw4uLuY+PtZqaq6WloqOjpKOjpKKio6KioqCgpZycqpiYspKS - uIyMvYyMv4uLvYiIu4mJuYyMtoyMt4qKuI6OtJeXqJ6enp+fn5+fn6Cgn5+fo5mZq5KSs46OuYmJwIWF - xISExYWFxYWFxYaGw4qKvouLvJWVr5+fo6Kin6GhoaGhoaGhoaGhoaCgopubppWVrYuLuYKCxYGBxYKC - xIKCxIGBxIKCxYGBx46OvKCgqqioo6WlpaSkpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWl - paWlpaWlpaWlpaSkpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaSkpKSkpKampqamp6amp6amp6amp6WlpqWl - paampqamp6amp6amp6amp6WlpqWlpaWlpaWlpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paampqamp6amp6amp6WlpqWlpaWlpaSkpKKio6Kio6Kio6Skpaamp6amp6amp6WlpqSkpKKioqKioqKi - pKKipKOjpKSkpaWlpaampqampqamp6ampqSkpKamopubrJSUr5KSsIyMtoSEvYCAwoGBwoGBw4ODxYWF - womJvouLvZCQuZGRuJeXsqGhqKOjpZeXr4mJvYSEwYSEwYWFwoWFwIiIuIWFuIeHt4iIuoSEwIKCxYKC - xIODw4iIvZeXrZ2dp5OTs4mJv4uLuouLuYuLuImJuIeHuISEuoSEwIWFwYeHwIqKvpCQuJeXr5qaq52d - qaKipKGhppiYrpCQuIyMvYeHwoSEwYODwISEu4mJs4uLtomJuomJvIiIvo6Ot5qaqZ6epqCgpaGhoqWl - op+fq4+PvIODyIWFxoSExYKCw4GBwYGBwYGBw4ODxYSEx4SEx4SEx4uLv5eXr6KipKSko56eqZCQuIiI - woqKv4mJvoeHvIKCv39/wX5+woCAwoiIvZGRt5KSt5CQupCQupiYs6ampKSkpaSkpaWlo56ep4+PtoWF - xIODxYODxYKCxYCAwoODu4eHt4iIuYqKu4uLvIuLvYmJvouLu5iYraGho6OjoqCgpJaWrYiIvYKCxoGB - xYCAwn9/wn9/wYSEvIqKuIuLu4yMvYyMvoyMvpGRuJycqaKioqKioaKioqKioqOjo6OjpCAAh4fDhobE - i4u/kZG4lpa0mpqwoaGnpaWlpaWlpaWlpaWko6Okn5+pkJC3ioq+hYXDgYHHgoLFgoLEgoLDgoLDiIi9 - kJC1l5eunJynoaGioqKioqKioqKioqKjoqKjoqKjoqKkl5eviYm9hITEhobBhobBioq+hYXBgYHFgoLE - hYXBjIy2mJiqoKCioqKgoaGhoaGhoqKioqKjpKSioaGnlpa1iYnChITHhITGhITFhITFhITGhITHg4PH - kJC4mJisoKCioqKfoaGhoaGhoaGhoqKipKSgnZ2ojY26goLGg4PFgoLFgYHEgYHDgYHDhITBi4u5kZGy - lJSvnJynpKSho6Oko6Oko6OkpKSin5+mlpawjo64i4u8i4u9i4u9ioq8iIi6iIi5iYm4iYm5ioq5jo6z - l5eooKCdn5+fn5+fn5+dnZ2hmZmpkZG0iYm/hITFhYXEhYXEhYXEhobDiIjBioq+jIy8l5euoKCioqKg - oaGhoaGhoaGhoqKgnZ2llJSwi4u6gYHFgYHDgYHDgYHDgYHDgYHDgYHEg4PEjY27nZ2rpqajpaWlpaWl - o6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpaWl - paWlpaWlpKSlo6OkpKSlpqanpqanpqanpqanpqanpaWlpaWlpqampqanpqanpqanpqanpaWlpaWlpaWl - pKSlo6Oko6OkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpaWlpaWlpaWlpKSk - o6OioqKioqKipKSlpqanpqanpqano6Olo6Ojo6Ojo6Ojo6Ojo6Oko6OkpaWlpKSlpKSlpKSlpKSlo6Ok - o6OkoKCplpavjY24hYXAgIDDgIDBgYHCgoLDhYXBiIi+iYm+hobBhobDhITGjY29nZ2tpaWkn5+nkZG1 - i4u6ioq6ioq6ioq7iIi6hoa4hYW3gYG+gIDEgoLDhITCiYm8h4e+kJC0mJitlJSyj4+5jo65j4+4jIy6 - h4e7hIS8gYG+g4O9g4PAh4e+iIi/jIy8l5evnp6nn5+moqKkoqKkmZmujIy9jIy9jY28i4u6ioq4iYm1 - iIi0iIi5iYm7ioq7iYm8jIy5kZG1kpK0mpqqoaGjpKSgnJyrjY29hITHhYXGhITFhITFgoLCgYHBgYHD - g4PFhITGhITHiIjDk5O3np6roaGloqKjoaGkl5evjY27ioq9iYm+g4PEgYHEgIDDgIDBhIS5j4+xioq7 - ioq/iorAjo69mZmypqakpaWlpKSlpaWloqKlmZmrjY24hobChITDhITDhYW9h4e2hoa3h4e4iYm5i4u7 - i4u9ioq+jIy7mJiuoKCloqKin5+llpavi4u7hobBg4PCg4PBgoLAhIS8h4e2h4e8iIi9iIi/i4u9kZG3 - mZmvnZ2qoKCloqKjoqKioqKioqKio6OkIACNjb6Njb6Pj7yQkLqSkreZma+jo6akpKWlpaWlpaWlpaWk - pKWenqqSkraHh8KDg8aEhMSEhMSEhMOEhMSJib2QkLSVla6bm6ihoaKioqKioqKioqKioqKioqKioqOj - o6KdnamQkLiKir+Li7yKiryKiruEhMKBgcWCgsSEhMGKireXl6ienp+hoZ+hoaGhoaGhoaGhoaGioqKj - o6Gbm6uNjb2EhMeFhcaFhceDg8aDg8WEhMaEhMaGhsSPj7uamqyhoaKhoaChoaGhoaGhoaGhoaGjo6Cc - nKiMjLqCgsaDg8WDg8WCgsWCgsSFhcGLi7iQkLGSkq+amqmgoKKioqGioqKjo6Sjo6SkpKSfn6iUlLOL - i76Li72Kir2Kir2KiryJibmJibmJibiIiLmOjrOWlqmdnaKgoJ6fn5+fn5+fn5+amqSUlK2QkLWLi7yG - hsKFhcOFhcSFhcSFhcSFhcSFhcSQkLeenqejo6ChoaGhoaGhoaGhoaGioqCamqqMjLuCgsWDg8SDg8SD - g8WDg8WDg8WDg8WEhMSMjL2SkrednaqlpaOlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sk - pKSlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWlpaWlpaWlpaWjo6SlpaWmpqampqempqem - pqempqelpaWlpaWmpqampqempqempqempqelpaalpaWlpaWlpaWjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWjo6SkpKWlpaWlpaWlpaWjo6Sjo6Sjo6SlpaampqempqempqelpaWl - paWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SdnaqSkriHh8OCgsWBgcOAgMF/f8CDg8CI - iL2Hh7+CgseDg8WDg8WDg8eMjL6bm66mpqSkpKWWlrKNjbyJib2JibyJibuIiLqIiLiCgr+AgMOBgcOD - g8KJib2Jib2Li7qPj7SXl6qdnaeVlbGSkrSTk7SPj7eHh72Dg7+CgryCgr2BgcCBgcKCgsSGhsSNjb2Y - mK2hoaSioqKkpKKfn6iRkbeMjL2MjL2KiryLi7mKiraGhreHh7mJibqJibuKiryKiryJibyNjbqZmaqh - oaOkpKGbm6qNjbuEhMeFhcaFhcaFhcaDg8SBgcKBgcKBgcODg8WDg8eHh8SNjbyTk7abm6+hoaWjo6Kf - n6aVlbCJib+EhMaDg8WCgsWBgcSGhrmMjK2Hh7mJibqKiruKir6OjruYmLGmpqSlpaWlpaWkpKWlpaWj - o6WZmauMjLmKirqJibiHh7eGhreGhreHh7iJibqKirqKiruLi72MjLyUlLKbm6uioqOgoKSZmauUlLCS - kq6Li7aJibiJibiIiLeFhbmBgcGBgcSBgcaLi7yYmK6dnaqenqqdnauioqejo6OioqKjo6Sjo6QgAIWF - xoWFx4SEyImJwpaWs6Cgp6SkpaSkpaSkpaWlpaSkpqCgqpmZsZGRt42NvIuLvYuLvYyMvYyMvYyMvpKS - t5WVspSUspeXrqGhoaKioqKioqKioqKioqKioqKiop6eppqarJKStouLvYuLvYmJvYSExIODxYKCxoaG - wYqKu4uLupiYqp6eoJ+fnqCgoKGhoaGhoaGhoaKioJ2dppWVsY2Nu4iIwYmJwIWFxYODxoODxYODxoeH - w5GRuZiYsp2dq6GhpKKioaGhoaGhoaGhoaKioJ+fo5OTsIeHv4SExIKCxIKCxIGBxYWFwI2Nt5GRsZCQ - sZWVqp6eo6KioKGhoaGhoaKioqSko5+fqZaWso6OuYqKvouLvYuLvYqKvIqKu4qKu4qKu4mJuYiIuI2N - spmZpaGhnZ+fn5+fn5+fnpubpZOTro+PsY+Ps4yMu4yMvIyMvIeHwoSExYSExYaGw5GRtpiYraCgpaOj - oaKioqGhoaGhoaKioJycppWVr5CQtomJvYODw4GBxIKCxYODxYODxoWFxY2NvZSUtpqasKKiqKWlpKOj - pKWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaOj - pKOjpKSkpaWlpaWlpaWlpaWlpaOjpKSkpKampqamp6amp6amp6amp6WlpqWlpaWlpqamp6amp6amp6am - p6WlpqWlpaWlpaWlpaWlpaOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKSk - paWlpaWlpaWlpaOjpKOjpKOjpKSkpaamp6amp6amp6WlpqWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpJiYsIqKwIODx4SExoODxYGBxIWFuISEvIGBw4GBxYKCxYKCxYKCxoeHwpKStJ+fp6WlpKSk - pZiYso+PvIyMvYuLu4qKuYmJuYKCwICAwYCAwoODwIiIvYmJvYiIvY+PtpaWrZ2dpJ+foZiYq5KSs5KS - tJOTs46OtoeHuYWFuICAwIGBwYGBw4ODxYSExoWFw5GRtaCgpaOjoqOjop+fp5SUs46Ouo6Ouo6OuYyM - uomJu4aGuIaGt4mJuYaGwoSExoSExoWFxIyMu5iYr5+fpqOjoJ2dqI2NuoODxoSExYSExYSExYKCxICA - woCAwYGBwoGBxIKCxYKCxoODyIaGxY+Pu52drKKipKSkoZ6ep4+PuISExYSExYKCx4mJuYuLr4SEuIaG - uIiIuYiIu42NtpKStJeXsqWlpKWlpaWlpaampaOjpp2dq5aWso+PuY2Nt4uLuYiIuoaGt4WFtoaGt4iI - uYqKuouLu4uLvIuLvI2NuZqarKGhpKOjoqGhoaCgoJ+fn5mZpY2NtIiIuoaGvICAwoGBwYGBw4mJv4yM - vpCQuZmZsJiYsZeXsqGhqKWlpKSkpaOjpKOjpCAAhITFhYXHhITIjIy/m5uupaWko6OkpKSlpKSlpaWk - oqKnmZmxkpK5kZG6jo68i4u9i4u8i4u9jIy+kpK3lZWzlJS0lZWynJypoqKioaGhoqKioqKioqKioqKi - oqKinp6mm5uplpawj4+4iYnAhITEg4PFg4PGiIjBi4u8ioq9ioq7l5eroKCioKCfn5+foKCgoaGhoaGh - nZ2llZWvjY26ioq/iYm/hITEg4PFgoLFgYHGhobCkZG4mJiynp6roqKno6Olo6OjoqKioaGhoaGhnp6k - k5OviYm9g4PDgoLDgoLDgYHEhoa+iYm7iYm8ioq6iYm9k5OunJyhoaGfoaGhoaGhoaGho6OhmJiujo67 - i4u+i4u+i4u9i4u9ioq8ioq7ioq7ioq7i4u5jo6yk5Oqmpqhnp6dn5+fn5+fnZ2hlpapkZGwkJCykpKy - lJS2j4+7iIjChYXFhITHhobDkJC2l5eunp6moqKioqKioqKioqKioaGhnp6ll5etk5OxkJC0ioq9g4PF - goLFhITGhYXIh4fFjo69lJS2mpqwoqKopaWlpaWlpaWlo6OkpaWlpaWlpaWlpKSlo6Oko6OkoqKioqKi - o6Ojo6Oko6Oko6OkpaWlpqanpqanpqanpqampaWlpaWlo6Oko6Oko6OkpKSkpaWlpaWlpaWlo6OkpKSk - pqampqanpqanpqanpqanpaWmpaWlpaWlpqanpqanpqanpqanpqanpqanpqanpqanpaWmpKSko6OkpKSk - paWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Ok - paWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oilpavh4fBgoLIg4PGg4PFiIi7hIS9 - gIDBgIDDgYHDgoLEgoLFhobAk5OxnJynnp6moKCopKSlnJytm5uvnJytlZWyiIi+g4PCgIDCf3/DgoK/ - hoa8iIi9ioq+kJC1k5OzlJSxmJirm5ummZmomZmplZWvjo63ioq6iIi6gIC/gIDAgIDCg4PEg4PHh4fD - k5O2m5uunp6onp6noaGkoKClmZmtmZmukpK0jY25i4u9ioq8h4e4hoa2goLAg4PEhITHh4fEjIy+jY2+ - kpK2nZ2npKSfnp6nkpK1i4u9i4u+hYXDg4PGg4PFgoLDgYHCf3/CgIDDgIDEgoLGhITGhobGiorBl5ez - oqKnpKSjn5+ml5eukJC2kJC2kJC1jIy2h4e3hoa3hoa3iYm4ioq6ioq6i4u6j4+4mpqvnp6rpKSmpqak - pKSlm5utkJC6kJC6jIy7ioq7ioq6iIi4hoa3hoa3iIi5ioq7i4u8i4u8jY25kpK0mZmtoKClo6OioqKi - oaGhnZ2jl5epjo61hYW+gYHBgYHBgIDCh4e8jIy7jY29jo6+j4+8kZG6lZW1oaGppqakpaWmpqanpqan - IACEhMWDg8aLi7+Xl7OgoKqlpaWkpKWjo6SkpKSlpaSenquSkriRkbmPj7uNjb6MjL2KiryMjLuRkbaU - lLWTk7WWlrGdnaqioqSioqOioqKhoaGhoaGioqKioqKjo6GdnaeXl6yRkbaNjbuKir+CgseDg8WCgsaI - iL+Li7yLi7yQkLWdnaShoaGhoaCfn5+fn5+goKCgoKKVla6MjLqJib+IiMCEhMSDg8WDg8WBgceFhcKO - jraWlq6Xl7CgoKqkpKakpKWkpKSjo6KioqGjo5+ZmamLi7qDg8SDg8SDg8SDg8SDg8SEhMKHh72IiLyI - iL6RkbGamqaenqCgoJ+goKChoaGhoaGiop+Wlq2NjbuKir+Li76KiryMjL2Li7yLi7yLi7yLi7yMjLmS - krGamqSenp2dnZ2fn56fn6CYmKmUlK2UlK2Tk66RkbOPj7qJicGGhsSCgsiHh8OSkreZma6enqehoaOi - oqKioqKioqKioqKioqKWlq6Tk7GTk7CNjbeEhMWCgsaCgsSEhMaFhciFhceKisGWlrSioqilpaWlpaWl - paWlpaWkpKWjo6SkpKWlpaWlpaWkpKWkpKSkpKSkpKSjo6Sjo6Sjo6Sjo6SkpKSmpqampqempqempqem - pqalpaWioqKioqOjo6Sjo6SkpKSkpKSkpKSjo6Sjo6SlpaWmpqampqempqempqelpaalpaWlpaWlpaam - pqempqempqempqempqampqempqempqalpaWjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sj - o6SioqOioqOkpKWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sj - o6Sjo6Sjo6SkpKOamquMjLuHh8OJicCJib+Hh8CCgsOAgMOAgMKAgMKBgcODg8SMjLuSkrOTk7KUlLGZ - mayjo6Sjo6agoKmYmLKPj7uKir+Hh8CEhL6EhL6FhbuHh7qLi7qSkraPj7qPj7qOjruRkbaWlqyYmKmU - lK6Pj7WLi7mIiL2Dg8GAgMKAgMGBgcKCgsaFhcWOjryYmLKYmLGXl7GVlbKcnKmioqOenqefn6aUlLKM - jLyJib6KirqIiLmDg76BgcKDg8WDg8eIiMOPj72Njb6NjbyZma2ioqKgoKSYmKyTk7ONjbuGhsODg8aD - g8WBgcSAgMN+fsF/f8KBgcSDg8WDg8WEhMWGhsSSkrihoamlpaOfn6aXl62Tk7OTk7GOjrWJibmGhrmG - hraGhraDg7+EhMKEhMKFhcOGhsOKir+VlbOhoaempqSmpqSfn6qRkbqNjb2Li76Li72KiruIiLiGhreG - hreIiLiKiryMjLyPj7iUlLSVlbKamquhoaSjo6KhoaSenqeYmKyPj7OGhr2CgsOAgMSAgMKEhLqKiriI - iL+Hh8SIiMWHh8WJicOUlLiioqqnp6WmpqampqempqcgAIWFw4uLvJaWsJ+fqaSkpqWlpaWlpaSkpKWl - o6KippmZsJCQuo+Pu42NvY2NvoyMvYmJvIqKu46OuJGRtpaWsZycq6GhpqSkpKOjpKKio6GhoqGhoaKi - oaKiop6eppeXrpCQt4yMu4mJvoaGwoODxYODxYGBx4aGwYyMu5CQt5eXraGhoqKioaGhoaGhoaCgn56e - n5mZpo2NuIiIwImJv4iIwIGBx4ODxYODxoWFxY6OuZaWrZiYrJqaqaGhpaSkpaSkpaSkpaSkpaOjo5+f - o5OTsYaGwYGBxoODxIODxIODxYODxYGBx4ODw4qKuZGRsJubpqCgoaCgoJ+fn5+fn6CgoKKioZ+fo5GR - soqKvIqKvIqKvImJu4yMu42NvI2NvIyMvYyMvJGRtZaWrp+fo6Cgnp2dnZ2dnZ2doZaWqpaWqpWVrJOT - ro6OtISEw4SEx4ODx4mJwZOTtpmZr5ubraGhpqKioqKioqKioqKioqKioqKiopeXrJKSsZKSso6Ot4aG - wYiIv4ODw4KCxYSExoSEx4eHxZaWtKSkpqampKWlpaWlpaWlpaWlpaSkpKSkpKSkpKSkpKWlpaampqam - pqampqWlpaOjpKOjpKOjpKOjpKSkpKWlpaamp6amp6amp6ampqOjo6Kio6OjpKOjpKOjpKOjpKOjpKOj - pKOjpKOjpKSkpKampqWlpqWlpqWlpaWlpaWlpaWlpaWlpqWlpqWlpqSkpaSkpKampqamp6amp6amp6Wl - paOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKKio6Kio6Kio6SkpaSkpaSkpaOjpKKio6Oj - pKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaSkpaOjpaOjpaOjpaOjpaOjpKKipJeXsI2Nu4uLvYiIwYSE - xYKCxYCAw39/wn9/w4GBwoiIvIeHvoeHwYaGw4qKvZaWr6KioqWlop+fqZOTto6OvZGRuJCQt4mJu4eH - uYSEu4KCv4aGv4qKvYyMvY2NvY2Nvo6Ou5WVsJycpZWVrIuLuYaGv4WFwoKCxIGBw4CAwX9/woODwYmJ - vYyMu5CQuZSUtZSUtZaWs52dqKOjoaGho56ep5WVspCQuI2NuomJu4SEv4CAwoCAwYCAw4SEwomJv42N - vo2NvouLv5OTt56eqaOjoZ6eppKSs4iIwISExYSExYODxYGBxX9/w35+woCAwoKCw4ODxYODxYODxYOD - xpCQuaCgqaamo6Kip5iYr5GRtZKStIuLuoeHvIeHt4aGt4KCvICAwoCAxYKCxoODxoODxoiIwZKStaGh - qKampKampKOjqJeXs5GRupCQuoyMvImJvIiIuIeHuIaGt4eHuIuLuo2Nu46OupGRuJGRuJeXsJ2dqKKi - o6GhpJqaq5CQt4eHwYKCxICAxIKCwYWFu4eHtYWFvISExISEx4SEx4SEyYWFyI+PvZ6eraampqamp6am - p6ampyAAhobCjo64mZmsoaGlpaWkpaWlpaWlpaWlpaWjnZ2rkpK2j4+7jIy9jIy9jIy9i4u7iYm6iYm7 - jIy5kpKym5uqn5+ooKCno6Oko6OkoqKjoqKioaGhoqKgoKCjlpavkJC3jIy7iYm9hITCgYHHgoLFgoLF - g4PEiYm+kZG2mZmsn5+loqKioaGhoaGhoaGhoaGgnp6hlZWpioq7iYm+iYm/hYXDg4PGhITHh4fEjo69 - lZWzmZmtmpqqoKCjoqKho6OjpKSlpKSlpKSloaGmmpqrkJC3iIi/hITDg4PEg4PEg4PFg4PGg4PEh4e/ - kZGznJyknJyjn5+hoKCgoKCgn5+fn5+fn5+imJiokJC0i4u7ioq7ioq7ioq6h4e9iIjAiYnBiYnBjo66 - mZmtnJymoKCioaGgn5+fnZ2em5uglpamlZWqk5OvkJCyi4u3hYXBh4fBh4fDjo68lpazmJiwmpquoqKn - oqKjoqKioqKioqKioqKio6OhnZ2olJSxj4+2jIy6iYm+iYm+hITDgoLEhITEhobFjIzAmpqxpKSmpqak - paWlpaWlpaWlpaWlpaWlpKSko6Oko6OkpaWmpqanpqanpqanpqanpaWlpKSko6Oko6Oko6OkpKSlpqal - pqampqanpqanpKSlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpKSlo6OkpKSkpqampqanpqanpqanpqalpKSko6OkpKSlpKSlpKSlpaWlpaWlpaWl - paWlpKSkpKSko6OkoqKjoqKjoqKjoqKjoqKioqKio6Ojo6Oko6Oko6Oko6OlpKSlpaWlpaWlpaWlpaWl - pKSlpKSlpKSlpKSlo6OkpaWhnJysjo67hobDhITFg4PFgoLEgYHDf3/CgIDAhIS9h4e8goLEgYHGgYHI - hobClZWwoqKio6OhoKCnnJyrl5ewkpK1j4+3i4u6h4e7gYG/f3/DgIDDgoLCh4e/iYnAiYnBiorAkpK2 - np6mnp6kk5OviIi9goLEgYHEgIDEgIDCgYG/hoa5ioq4i4u7jo65lZWzlpazmJiwnZ2poqKjoaGkmpqs - lJSzkZG2jY27hobCgYHFgYHCf3/BgYG/h4e6i4u4i4u8jY28j4+7lJS3np6rpaWhoKClj4+3hITFg4PH - g4PGgoLFf3/Df3/CgIDCgYHCgoLDg4PFg4PGg4PGhYXDjo65n5+ppqaio6OmnZ2rlpaxl5exkJC2ioq4 - hoa5g4O8fn7CgYHCgYHDg4PEhobDiYnAjY28kJC3nZ2qpKSkpaWlpKSmn5+qnJyumpqwkpK1i4u5iIi5 - h4e4hoa4h4e3i4u3jY26i4u/iYnBiYnBi4u+lJSznp6no6OinZ2okpK1h4fDhobChYXAhYW8iIi3g4O7 - gIDCgoLFhITGhYXHhYXHhYXHiIjElJS3oqKpp6elpqanpqanIACFhcSKir2Xl62hoaKjo6Kjo6WlpaWl - paWlpaWbm66OjrmMjL+MjL2Li72Li72KiryKirqNjbiUlK+Zmamdnaafn6ehoaajo6Sjo6Sjo6SioqOi - oqKioqGdnaeOjreKiruJib2EhMKAgMWBgcSBgcSDg8OKiryQkLWWlq+enqejo6GioqKioqKhoaGhoaGg - oKKcnKaVlauMjLaJibyFhcKBgceEhMWHh8WMjL+RkbmSkrmUlLWcnKmioqKhoaGhoaGjo6OlpaSioqaZ - ma6UlLSPj7mLi7uHh8CDg8aEhMWEhMWEhMSIiMCOjriXl66dnaScnKKfn6CgoKCgoKCgoJ+enqCXl6eT - k62SkrGNjbeJibyKiruJib2Dg8SBgcaDg8WJicCTk7WenqmioqOhoaGhoaGhoaCenp+amqKVlaiRkbCQ - kLKNjbaIiLyIiLyIiL2Jib6KisCPj7uYmLGfn6qkpKWjo6SioqOioqKioqKioqKhoaSamquSkrSLi7yF - hcODg8eDg8aEhMWEhMWEhMSJib+Tk7afn6ulpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6Sk - pKWmpqempqempqempqekpKWjo6Sjo6Sjo6SkpKWlpaWlpaampqempqempqelpaajo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6SioqKkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SkpKWmpqem - pqempqempqelpaajo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SioqKioqKioqKioqKi - oqKioqKjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWkpKOdnauPj7uEhMWE - hMWDg8WDg8WCgsSBgcCDg7qFhbmAgMSCgsWDg8WCgsaIiL+Xl66ioqKioqKioqGkpJ6enqSQkLOKirqI - iLyCgsJ/f8KAgMKCgsGFhbyBgcSBgcaDg8eGhsSNjbuamq6ioqKenqOTk7CHh72CgsODg8GDg8CGhriH - h7aHh7mLi7mRkbSSkrWSkraQkLiVlbSfn6mioqOamqySkrWLi72FhcSDg8aEhMWCgsOBgcCFhbiHh7iI - iLyJib2Li76UlLWbm6+goKqkpKWhoaaTk7OHh8KEhMWEhMOCgsN/f8N/f8KAgMGBgcGCgsSCgsWEhMWH - h8KOjrqQkLacnKqkpKSlpaSkpKWdna2amqyVlbKNjbmEhL9/f8N/f8GAgMGBgcKDg8OHh8GLi76Kir+J - icCUlLKgoKalpaSkpKWlpaSnp6Kfn6uVlbKNjbeIiLuHh7mIiLWJibWJibiKiryIiMKEhMeEhMaEhMeN - jbycnKqkpJ+hoaObm6qQkLiNjbyMjLqKirmEhLx+fsKBgcKCgsSDg8aFhceFhceFhcaFhceOjr2enq2n - p6WmpqempqcgAIeHwJKStJ6epaKin6GhoaKio6SkpaWlpaSkpqCgqpaWtIyMvYyMvYuLvIqKu4mJvIyM - uJOTr5mZqZiYqpubp6Cgo6Ojo6OjpKOjpKOjpKOjpKOjo6CgpZeXr4mJvYmJu4KCwoCAxYGBxIKCxISE - w4qKu5CQs5GRspWVr56epqKioqKioqKioqKioqKioZ6epJaWrZGRsouLuIKCwYCAxoKCxYWFw42NvoiI - w4eHxIaGxY2NvpubrqKio6KioqGhoaGhoaSkoqKiqJSUtI6OvIyMvYeHw4ODxoSExYSExYWFxImJv4qK - vY2NupWVr56epKGhoZ+fn6CgoKCgoKGhn5+fopOTr5GRsYqKt4iIvImJvIeHvoODxYODxIODxYiIvZGR - tJiYr52dqaOjpaOjoqKioaGhoZ2do5WVq5CQsJCQsIyMuIqKvomJwIODxoODxoGBxYWFwZOTtaGhqKSk - paSkpaSkpaOjpKOjo6KioqCgpJmZrJKStYuLvIWFw4SExoSExYSExYSExYWFxIiIwJGRtp2dqqOjpqWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKWlpaamp6amp6amp6ampqWlpaWlpaWlpaWl - paWlpaWlpaWlpaamp6amp6amp6WlpqOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKKioqKioqSkpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKSkpaampqamp6amp6amp6WlpaOjpKOjpKOjpKSkpKWl - paWlpaWlpaWlpaWlpaSkpaOjpKOjpKKioqKioqKioqKioqKioqKioqOjpKOjpKOjpKOjpKOjpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpKGhppeXsoqKwIODxoSExYODxYKCwoWFu4WFuoCAw4GBxIODxYOD - xYeHwpGRt5ycqaGho6KioqGhoqKioZ+fpJaWq4+PtIODwoGBxICAwoCAwYCAwYCAwoKCxYKCxYaGwYuL - vo+Pu5eXsqOjpZ2dqJSUsI2NtoiIuomJuYmJuIeHuIaGuIeHuYqKu4mJvYWFw4WFxISEx42NvpycrqWl - pJ+fppOTtIeHw4ODx4SExYSExYSEwoaGuIeHtoSEv4KCx4ODx4WFxY+Pt5qar52drqGhqqWlpZubrI+P - uY2Nu42NuoeHvoGBxIGBwn9/wYGBwoGBw4GBxYWFwoyMu5KStJKStpaWsJ+fp6Sko6KipZycrJSUtI2N - u4aGw4KCxoGBw4CAwoCAwYKCwYSEw4SExoWFx4WFxoWFx4+Pup2dqKSkoqSkpaSkpaSkpJeXsY2Nu4qK - vIuLuYqKt42Nr4iIt4iIuoaGv4SExYWFxIWFxIqKv5CQuZycrKWloaGho5qaq5SUso2Nu4uLvYeHvoCA - w4CAwYCAwYCAwoKCxISExoWFxoeHxo6Ov4+Pvpqas6Skp6ampqampyAAlJSympqsoKCkoqKhoaGhoaGh - oqKjoqKlo6OloaGpmpqwlJS3jIy9ioq7iYm6iIi7i4u4kpKxkpKxkJCznJymoqKfoaGioqKjo6Oko6Ok - o6OkpKSjoaGlmJivi4u9g4PDgYHEgYHFgoLGhITDi4u6i4u6i4u6iYm8kZGznp6loqKioqKioqKioqKi - o6Ohnp6mkJCyjIy5hITCgYHFgYHFhYXBioq8hYXFhYXHhITIiIjDlJS2oaGppaWloqKjoqKioqKhoaGi - np6ol5eyjY29hobEhITHhITGhITFhYXEioq+i4u9ioq+jY27l5euo6OhoaGhoaGhoKCgn5+foaGfn5+i - kpKwioq3iYm6ioq7h4e+goLFg4PEgoLFiIi9j4+0lparnZ2mo6Oko6Oko6Oko6Oin5+kl5erkpKykZGx - kJCvjIy2hobBgoLGg4PFg4PFgoLHioq7mZmqpKSjpKSlpKSlpKSlpKSlpKSkoaGlmpqrkpK1jIy7hYXD - g4PGhITFhITFhITFhITDiorAkJC7mZmvpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlo6Oko6OkpKSlpqampqanpqanpqanpqanpqanpqanpqampaWlpaWlpaWlpqanpqanpqanpaWmo6Ok - o6Oko6Oko6Oko6Oko6Oko6OkoqKioqKioqKipKSkpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpaWl - o6OkpKSkpqampqanpqanpqanpaWlpKSko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6OkoqKj - oqKioqKioqKioqKio6Oko6Oko6Oko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqajnp6r - jY27g4PHhITFhITFiYm9hoa8f3/Cf3/BgYHDgYHFh4fBj4+4k5OzlJSympqroaGjoqKhn5+lmJisj4+1 - g4PDgYHCgYHCgYHBf3/Bf3/BgIDCgIDEh4e/ioq7ioq8jY28lpazo6OkmJivjY25ioq8ioq7iYm6iYm5 - iIi3g4O9gYHBhITBhYXCg4PFhITFgoLHi4u/m5uvpqajpKSllZWxh4fBg4PHhITGhYXDioq7iIi4goK+ - gIDDg4PFg4PGhITGjIy9kpK2mJixnp6rpKSlpKSmm5utmpqslpavi4u8gYHHgYHEgIDCgIDBgIDDhYXA - i4u7jIy8jIy8jIy9jo67mZmuo6Ojo6Oko6Oklpaxh4fBgYHHgoLGgYHEgYHDgYG/gYHBg4PEhYXGhYXG - hYXFhITHjIy+mZmuoaGko6OioqKinZ2olZWxkZGzkJCxkJCxj4+yiIi4h4e2goK+gYHFg4PGhYXEi4u8 - i4u9kJC6nJyspaWioqKlmpqqlJSyj4+6iIjCg4PGgoLEgIDCf3/Bf3/BgYHCgoLEhobEj4/AkZG8j4++ - mpqzpKSnpaWlpaWmIACcnKqgoKWioqKioqKioqKhoaGhoaGioqOhoaecnK6UlLeOjr6Ojr2GhsKFhcOE - hMOHh8CPj7mOjriRkbSdnaaiop+hoaGhoaGioqOjo6Sjo6SkpKOioqaYmLCJib+CgsWBgcaBgceFhcOK - ir6MjLyMjLyKiryMjLiYmKuioqChoaGioqKioqKioqGioqOamqyMjLuCgsSBgcaAgMeFhcCHh7yDg8OD - g8WEhMaFhceNjb6cnK6lpaWlpaWlpaWjo6Sjo6GenqaUlLGQkLiNjb2GhsWEhMeEhMaDg8SDg8OEhMSK - ir+Pj7iUlLKbm6mjo6GioqKhoaGhoaGgoJ+enqCZmaiLi7eJibyKirqHh76Dg8SDg8SCgsWIiLyPj7SQ - kLKWlquhoaCioqGjo6Sjo6SlpaOhoaaZmauYmKqTk7CNjbWGhr+CgsaCgsWDg8WEhMWCgseMjLyamqmi - op+jo6SkpKWkpKWkpKWkpKSenqqRkbaKir2GhsOEhMWDg8aDg8aEhMSEhMSJib+KiryQkLmdna+mpqSl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6SkpKSmpqampqempqempqem - pqempqempqempqalpaWlpaWlpaWmpqampqempqempqelpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaampqempqempqelpaakpKSkpKSlpaampqempqempqempqakpKSj - o6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6OioqKioqKioqKjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWmpqShoaiYmLGSkreSkraNjbqGhsCBgcOAgMJ/f8GAgMOG - hryKirqMjLqMjLuOjrmamquhoaOkpKCcnKmNjbqEhMWCgsaCgsSBgcOAgMF/f8F/f8GBgcOCgsOCgsOG - hr+NjbiRkbOVlbKenqmXl7KOjruLi72Li7yKiruJibiDg76Bgb+BgcCCgsKCgsSDg8WBgceGhsKOjruZ - ma+mpqSkpKWdnayNjbyHh8GJib+Jib2Li7qDg8CAgMGAgMGAgMOBgcWDg8aDg8eKir+SkraamrChoaml - paWenquamqyWlq+KiryAgMiBgcaAgMV/f8OCgr2Hh7mKirmKiruNjb6Njb6QkL2YmLWgoKujo6OgoKSZ - ma6QkLeOjrmOjrqJib2IiLuCgsCBgcKBgcODg8WEhMaFhcaOjryUlLWdnayioqWjo6KhoaOYmKiRka+P - j7KQkLCOjrKKiriJibmDg76BgcKCgsSFhcaFhcaFhcWLi8CRkbiZma+goKikpKOioqWbm6mQkLeFhcOB - gcaBgcOAgMJ/f8GAgMF/f8OEhMKNjb2QkLuRkbyUlLmbm7KkpKmmpqWlpaYgAJ2dqaGhpKKioaKioqKi - oqKioqGhoJ6epZqarJOTto6OvI2NvoiIxIWFxoSExoODxoODxYaGw4yMu5iYrqCgpKKioaGhoaGhoaGh - oqKipKOjpKSkoqKippmZsJCQuIyMvIuLvIuLu4uLu4yMu4yMvIuLvY+PuZWVr52dpaKioKGhoaGhoaKi - oqOjoZ6ep5SUs4yMvIiIwIeHv4iIvYeHv4SEw4KCxYODxYGBx4eHwZWVtaKiqaampKWlpaWlpaWlpKOj - o52dp5OTs4qKvYuLvYqKvYaGwoODxYKCxIKCxIKCxYODxoyMvZmZraKio6Kio6KioqKioqGhoaKioJyc - pJCQsYmJu4qKu4eHv4ODxIODxoSExIiIvo+PtpGRsJCQspaWrKGhnqCgoKKioqOjo6Ghp52dq5qarZSU - sI2Nt4aGv4KCxYGBxYKCxYODxISExIiIwI+PuJubqqKin6CgoaOjpKSkpaWlpKKip5eXsYqKv4aGxISE - xYODxoaGw4qKv4qKv4qKv4yMvZCQuJWVsZ6eqqampKWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6ampqam - pqampqampqWlpaWlpaOjpKOjpKSkpaWlpqamp6amp6amp6amp6amp6amp6ampqWlpaWlpaWlpqamp6am - p6amp6ampqWlpaSkpaOjpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKWlpKWlpaWlpqam - p6amp6ampqWlpaOjpKSkpKampqamp6amp6amp6WlpaOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaSkpKOj - pKOjpKOjo6KioqKioqKioqKio6OjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaGhqZqar5GRuImJwIODxYGBxICAw39/wYWFu4SEvoWFwIWFw4eHwo2NuJubqqGho6SkoJ2dqI+P - uYWFxIiIwISExIGBxIGBwoCAwX9/wYGBwoGBw4GBxYaGv46OtZaWrpmZq5ubqpaWsY+Puo2NvY2NvIuL - u4aGv4KCwYGBwIGBwIGBw4GBw4KCxYaGwI6OuJGRt5eXsaWlo6SkpaKippmZr5GRtpCQtY+PtoWFwoCA - w4GBwYCAwoCAw4GBxYKCxoSExIeHw4iIwo+Pup2drKWlpZycrpubr5iYsY6OuYeHwYiIwIeHvoWFvYWF - uYeHt4mJuYqKvIyMvpGRvJmZtZ2dsKGhq6WlpZ+fpZ2dp52dp5ubqJSUsImJvISEwIGBwoCAwYGBwoKC - xISEw4uLvpSUtZaWspubraKip6Sko6Kio5+fppOTr5CQsZCQsY2NtYiIu4SEwYGBw4CAw4KCxISExoWF - xYuLwI2Nvo+PvJGRuJiYrqSkpKSkpJ2dqZOTsouLu4WFwoCAxICAw39/wn5+w4KCv4mJu46Ou46OvY+P - vZCQvZOTupycsKWlp6ampyAAoKCmoqKkoqKjoqKjoqKioqKin5+lmZmqkpKzjY27i4u/h4fChITGhITF - hITFg4PGg4PFiYm+lJSynp6noqKjoqKioqKioaGhoaGhoaGio6OhoaGknJypmJivk5O2kZG3kpK2kJC3 - jY25i4u8i4u8kJC4mJivnZ2noKCioaGhoaGhoaGhoaGhpKSfnJypj4+3i4u8jIy7jIy6iYm9hITDg4PG - hITFg4PGhobAjIy4mpqspaWkpaWlpaWlpaWlpqalo6Olnp6nl5eujo64ioq6iIi9hITCgYHDgoLDgoLE - gYHFhYXCjo66nJyrpKSgoqKjoqKjoqKio6OhoaGjlpauioq7iYm6hoa9g4PDg4PFg4PGhITGjIy9kpK1 - kpKzkpKxmJiooaGfoKCgoKCgoqKgnp6omJiwlZWzjo66hobBgoLGgYHFgoLEg4PFhITEh4fBjo63lpaw - np6oo6OhoaGhoaGho6OjpaWjn5+qkJC5hYXFhITGhITHhobDioq+jIy8jIy9jY28kJC4lpaxnJypoKCk - paWkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpqanpqampKSkpKSlpKSkpKSkpaWlpaWm - pqanpqanpqanpqanpqanpqanpqampaWlpaWlpaWlpaWmpqanpqanpqampaWlpaWlpKSlo6Oko6Oko6Ok - o6Oko6Oko6OkpKSlpKSlpKSlo6Oko6OkpaWkpaWlpaWmpqanpqanpqanpaWlpKSkpKSkpqampqanpqan - pqanpaWmpKSlo6Oko6OkpKSkpaWlpaWlpaWlpKSlo6Oko6Oko6OjoqKioqKioqKioqKioqKjo6Oko6Ok - o6Oko6Oko6OkpKSkpaWlpaWlpaWlpKSkpKSkpaWlpaWlpqakpKSlmpqvjY2+hITGgoLGgYHFgYHBg4O6 - hYW8goLCgYHEgoLFg4PFiIjBlZWxoKCko6OhoaGjmJiuioq9hobCg4PFgoLFgoLDgYHBf3/BgYHCgYHC - gYHEg4PCiYm7k5OxnJyln5+jnJyqkZG3i4u9jIy9h4fBhITDg4PCgYHAgIDBgYHEgYHEhobAiIi9j4+3 - lZWym5uspKSjo6OkpKSko6OlnJyskZG3iYm/g4PGgoLEgYHDgIDDf3/DgYHEhITDhITDhYXEgoLIh4fB - mJivpaWkn5+rnZ2tlZW2jY28jIy9jIy9ioq5iYm4hoa3hoa3iYm5jIy7kpK4lpa2mpqznZ2voqKqpqan - o6OnoqKjoqKhnZ2mj4+0goLDgIDEgYHCgIDBgIDCgYHEg4PEh4fBjIy9i4vAkJC6m5uuo6Olo6Oko6Oi - l5eukJCzjY20iYm4hITAgYHEgYHCgYHBgIDDg4PDiYm/iYnBiYnDh4fFjIzAl5exoqKjo6OknJyrlpay - j4+4iIi+hYW/hYW+hIS8g4O8hoa5i4u5jY29jY29i4vAi4vBiorCk5O6oaGrp6enIACjo6KioqOioqOi - oqOioqKioqKenqeXl66OjreJib6GhsKDg8aDg8WEhMWDg8aEhMWMjL2WlrCfn6eioqKioqKioqOioqOh - oaKhoaGhoaGgoKKamqeVla6SkrOPj7iPj7iPj7mNjbqMjLuNjbmQkLaVlbKamquhoaWjo6KhoaKhoaGh - oaGhoaGhoaGYmK6MjLyKir2Li7uKir+EhMSCgsaEhMWEhMaHh8GPj7eVla6dnaWkpKKkpKSlpaWlpaWm - pqSkpKednayXl7CQkLeJib2Dg8SCgsSCgsSCgsWCgsWFhcGNjbWVla2dnaejo6KioqOioqOioqKkpKGg - oKSWlq+MjLuHh76CgsGCgsSCgsaDg8aHh8KPj7qSkraVlbOZmayenqOgoJ+goKCgoKCenqKcnKeYmK+R - kbiIiMKDg8aDg8WEhMWEhMWEhMWGhsOLi76Tk7KcnKihoaOioqKioqKhoaChoaGkpKGdnauPj7yGhsSH - h8KHh8OLi76Li7uKiryNjb2QkLmWlrGcnKqgoKWjo6Ojo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWm - pqampqempqempqempqekpKWlpaWlpaWlpaWlpaWlpaWmpqampqempqempqempqempqempqelpaalpaWl - paWlpaWmpqampqalpaalpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWkpKSkpKSkpKSl - paWlpaWmpqampqempqempqelpaWjo6SkpKSmpqampqampqempqelpaWkpKSjo6Sjo6SkpKWkpKWkpKWk - pKWjo6Sjo6Sjo6OioqKioqKioqOioqOioqOjo6Ojo6Ojo6Sjo6Sjo6SlpaWmpqalpaalpaakpKWjo6Sk - pKWlpaWmpqWkpKafn6uRkbmIiMGGhsKFhcCEhL2EhLqAgMKBgcKCgsKCgsWDg8SKir2VlbGhoaOjo6Gj - o6GenqWRkbSGhsOHh8KFhcODg8SBgcOAgMGBgcKBgcKCgsOCgsWDg8OJibyVla6enqOioqKXl7CMjL2H - h8SEhMeEhMWDg8SBgcN/f8KBgcGEhL6JibuLi7qPj7eWlrCenqikpKKjo6Sjo6Wjo6Wamq6Kir+BgciD - g8WCgsWBgcWAgMN/f8GCgsGEhMGCgsWCgsaDg8aMjL2bm62kpKOkpKWdnauTk7eOjryQkLmOjriJibmH - h7iGhreIiLeLi7mMjLyPj7yPj7yNjb6SkrqcnLClpainp6ekpKeenqiVla+KiruCgsOBgcOBgcKAgMGA - gMKBgcOCgsSCgsaCgseBgcmHh8OWlrSioqakpKWkpKOcnKqQkLaHh7yDg8CAgMSAgMF/f8F/f8GBgcCF - hb2Hh76Dg8aEhMeCgsqLi8Gbm6+kpKKjo6SgoKeYmLGPj7uKir6Li7qKirmIiLeHh7eHh7iJibqLi72L - i76Hh8SHh8SFhceMjMGdnbCnp6YgAKKio6Kio6Kio6Kio6Kio6Gho5ycqZaWsI2NuoWFw4KCx4ODxYKC - xIODxYWFxIyMvZaWsp+fqaSko6KioqKio6Kio6Kio6Kio6GhoaGhoZqap5WVrZCQso2NuI+Pt5CQtoyM - vIqKvoqKvYuLvJGRtZSUspubqqGhpKOjo6KioqGhoaGhoaKioJ2dpZKSsouLvI2NuomJvoSExYODxYOD - xYSExYeHwo6OuJWVsJubp6CgoaGhoaGho6SkpaWlpaWlpZ+fqpiYs5CQu4iIwYODxoODxYKCxIKCxYKC - xYeHwZGRtpaWrZqapaCgoaOjoqKio6Kio6Kio6Kiop6epZeXrY+Pt4ODxYGBxYCAxIKCxIiIwZCQuJSU - s5aWs5ubrqCgp6KioaCgoKCgoKGhn5qap5eXqpaWrY+PuoODx4WFxYSExYSExYSExYSExYWFxIuLvZiY - rqGho6OjoaKioqKioqKioqCgoKGhoJmZq46OuYuLvYyMvIyMvIuLvYuLvY2Nu5CQuJOTtZqarqGhpqOj - o6OjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampaamp6amp6amp6amp6WlpaWlpaWlpaWl - paWlpaWlpaamp6amp6amp6amp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpaOjpKOjpaWlpaWlpaWlpaOj - pKOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6amp6WlpqOjpKSk - paSkpaSkpaSkpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjo6KioqKioqOjpKOjpKOjpKKi - o6KioqOjo6OjpKOjpKSkpqamp6amp6amp6amp6SkpaOjpKSkpaWlpaampKSkppaWtI+Pu42NvIuLuoWF - vX5+woCAwYGBwYCAw4KCw4qKu5SUrZmZq56epqGho6KioqGho5mZrI2Nu4uLvYaGw4ODxoKCxIGBwYCA - wYGBwoKCw4ODxIODxIWFwYuLuJaWrZ+fopycqI6OuoWFxYeHwoeHwoWFw4ODwYGBwIODvYmJt4qKt5GR - sZGRsZSUsZubqqKio6OjpKSko56eqJKStoaGwoGBxYKCxIGBxYGBxYCAw4GBwIKCwIGBw4KCxIODxIaG - wZKStZ+fp6OjpKOjpJ+fp5iYrZSUspKSso6Os4iIuIaGt4eHtoeHuIiIvImJwIODyIODyYKCyoeHxZWV - uKOjqqamp6Ojq5iYso+PuIuLu4qKvISEwIGBwYCAwoCAwoKCxIODxYSExYSExoODxouLv5eXsqGhp6Sk - paSkpaCgpZWVsoiIwIGBxYGBxICAwX9/wYCAwISEu4WFvICAxYODxYSExYODyIuLwZmZsaSkpaOjpKWl - opmZr5CQuoyMvIuLvIuLu4mJuoiIuYiIuYiIuomJvYiIwoWFxYSEx4WFxo2Nv5ycsaenpiAAoqKjoqKj - oqKjoqKioaGkm5urlZWxjo64hobCgoLGg4PFg4PFg4PEg4PGioq9kZG3lpaznp6qo6Oko6OkoqKioqKi - oqKjoqKjoqKjnZ2ll5erj4+zjY23jo62jo62kpK0h4fCg4PHhITGhITGhobDk5Ozn5+loqKioqKjoqKj - oqKjoaGhoqKgnZ2llZWtkZG0jo66hITGhITGg4PEgoLEhYXBjIy6jY26mpqsoaGjoqKhoaGhoaGhoqKj - paWkoKCqmJizkZG6i4vAhYXGhITFhITFg4PFgYHFhobAkZG0lZWum5uqnp6ioKCeoaGhoqKjoqKjo6Oi - n5+nl5evjIy7g4PGg4PFg4PFgYHEhYW+jY23k5O0kpK0mZmvoKCmo6Ojo6OjoqKhoKCgoKCgnJynlJSu - jY22h4e9g4PDg4PEhITFhITFhITFhITFhobDkpK1n5+mo6OioaGioaGhoqKioqKioqKjnZ2klpasjo63 - ioq9i4u9jIy9jIy9jY28kJC4kpK0lJS0mZmvoaGmpKSjo6OkpKSlpKSlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWmpqanpqanpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpqanpqan - pqanpqanpqampaWlpaWlpaWlo6OkpKSkpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6OkpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpqampqanpqanpqanpaWlo6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpKSlo6Ok - o6Oko6Oko6Oko6Oko6Oko6OjoqKioqKio6Oko6Oko6Oko6OjoqKio6Oko6Oko6OkpaWmpqanpqanpqan - pqanpKSlo6OkpKSkpaWloKCqkpK4jY29jo6+iYnBgYHEgIDBf3/BgIDBgIDDioq4k5OvkZGykJCzk5O0 - mZmtoKCkoqKhm5upjo65hYXEg4PGhITFg4PEgIDCgIDBgYHBgYHCg4PFiIjCjo65kpK0kZG0l5esmJip - k5Oxj4+3kJC2j4+2ioq5iIi7hoa4hYW4h4e5jo6yj4+ykJCzj4+0kpKympqroaGjo6OjoKCnlZWziIjB - goLGg4PEgoLEgYHFgoLBgYG/gIDCgYHDgYHEiIi9iYm8j4+2nZ2po6Oko6OkpKSjn5+nlpaujo61iIi5 - h4e1hoa1h4e1g4O9gIDGgYHFg4PGhITIg4PKiIjDlZW1o6Oqpqano6Oql5e4jo6/i4u9ioq8ioq8goLC - gYHDgYHCgYHDg4PFhYXGhobHi4vAkJC5l5eyn5+qpKSlpKSlo6Oln5+olZWyiYm+g4PDgoLAgYHBhIS5 - g4O7gIDCgYHCg4PFhITGhITGiIjDkZG5np6rpaWlpaWjmJiwk5O2kZG3i4u8jIy7iYm7iYm6iYm5h4e7 - hobChYXFhYXFhITGj4+8mZmynJyupKSpIACjo6SioqOioqOjo6Kfn6aVlbGPj7iFhcKCgsWCgsSCgsSC - gsOCgsSCgsSEhMWGhsOOjrqcnKujo6Sjo6Sjo6Sjo6OioqKioqOioqOZma2QkLWNjbaNjbWNjbWLi7qE - hMKDg8WEhMWEhMWFhcOKir2Xl7ChoaSjo6GioqKioqOioqOioqOfn6KZmaiUlK+MjLmDg8SFhcWFhcWE - hMaHh8CLi7mLi7mNjbuamqyhoaOjo6GioqKhoaGhoaGjo6GamrCQkLyMjL+Njb6Njb6GhsaEhMeCgseF - hcCPj7OVla2bm6ibm6mfn6ShoZ+fn5+goKCioqOjo6KamquMjLyEhMaDg8WDg8WCgsaJib+Li7qJibmK - irqMjLyRkbafn6ilpaOjo6Sjo6SioqKamqaVla2OjrWJibuJibuJibuEhMSEhMWEhMWDg8aFhcSMjLuX - l62goKSjo6KioqOioqKhoaGioqKenqienqmYmKyOjrSKiruLi7yMjL2MjL6QkLmTk7WUlLSbm62amq6h - oaekpKOjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqempqalpaWmpqempqempqempqem - pqalpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqempqempqempqempqelpaWlpaWlpaWjo6Ojo6Ol - paWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqempqem - pqelpaWkpKSjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWkpKWjo6SioqKjo6Sjo6Sjo6Sjo6OioqKioqKioqKj - o6Ojo6Sjo6Sjo6SioqKjo6Sjo6Sjo6SkpKWmpqempqempqempqekpKWjo6Ojo6WgoKqZmbGQkLuHh8SD - g8aCgsOBgcF/f8F+fsOJibaRka+QkLSOjrqOjrmNjbqSkrOdnaejo6Gbm6mOjrmFhcSDg8aEhMWDg8SB - gcKBgcGBgcGBgcOJicCOjryNjb2NjbyNjb2RkbaZmamamqiUlLCQkLOKiruJibyJibyHh7mDg7qBgcGC - gsCCgsKIiLyLi7mLi7uOjrebm6qhoaSkpKKgoKiUlLWIiMCJibyJibuEhL6AgMCAgMGAgMGBgcOCgsWJ - ib+Li7yLi72QkLednaijo6SkpKOfn6iWlrCRkbSRkbKOjrGMjK+Dg7p+fsKAgMOBgcSCgsWDg8aEhMiH - h8WRkbmgoKumpqenp6ahoayUlLmLi7+Kir2Dg8SBgcOAgMGAgMGBgcKBgcSEhMWKisCSkreUlLWWlrKe - nqqlpaWkpKWkpKWlpaShoaaUlLCIiL2JibqIiLiDg71/f8F/f8GBgcKDg8WDg8aIiMGPj7uXl7Senqul - paWmpqSbm6+QkLqMjL6Njb2Li72KiryKiruHh7uDg7+CgsSFhcWEhMaPj7mUlLSTk7aXl7Odna0gAKOj - pKOjpKOjo6Kio5ubq42NuoaGw4ODxYKCxoKCxIKCwoGBw4GBw4GBxICAxoaGwZSUs6CgpaOjpKOjpKOj - pKOjpKOjo6KioqGhpJqarJOTs5GRs4+Ps4mJuoODw4KCxIODxYODxoaGw4qKvZCQtZ2dqKKio6KioqKi - oqKioqKio6CgpZubq5WVr4uLuoODxYSExoSEx4qKwIuLv4yMvY2Nu4yMupCQtZ6epaKioaKioqKioqKi - oqGhoaKioJ2dqJaWs5GRu4+Pvo+PvY2NwI2NuouLuIyMtZKSrZiYp5iYp56eo6GhoaGhoaCgoJ+fn6Gh - oZ+fpZSUs4aGwoGBx4KCxoKCxomJwIuLvIqKuoiIuYmJuZCQs5aWr5+fpqOjo6OjpKOjpKOjo52dpo+P - s4mJuoiIuoaGvYWFw4WFxoWFxoSEx4WFxoyMu5mZq6CgpKKioqKio6Kio6Kio6Kio6GhoZ6eppqarJKS - tYuLu4qKu4yMvIuLvZGRuJOTtpWVs5ubrZubraGhpqOjpKOjpKOjpKOjpKOjpKWlpaWlpaWlpaWlpaWl - paWlpaWlpaampqamp6amp6ampqWlpaamp6amp6amp6amp6ampqWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaampqamp6amp6amp6amp6WlpaSkpKOjpKKio6KioqWlpaWlpaWlpaSkpKOjpKOjpKOjpKOjpKOj - pKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqamp6amp6amp6ampqOjo6KioqOjpKOjpKWlpaWlpaWl - paWlpaWlpaOjpKGhoaKioqKioqKioqKioqKioqKioqKioqOjo6OjpKOjpKOjpKKioqOjo6OjpKOjpKSk - paamp6amp6amp6amp6WlpqOjpKOjpZ2dqpGRt4aGw4KCx4GBxICAw39/w4iIs4+PrY+Ps46OuY+Puo6O - upOTt5GRtpmZq6SkoJ+fppCQtoSExIGBx4KCxoODxIODw4KCwoCAwoWFvIuLuo2NvY6OvY2Nvo2Nv5GR - uJ6ep6CgopOTr4mJvIiIvYiIvYqKu4eHvIGBwIGBwIGBwoODwIiIu4mJuYmJu4yMuZiYqqGhpKOjoqSk - op2dqpCQuYyMvYuLuoSEwICAw4GBwoCAwYGBw4KCxImJvoyMu4uLvo6OvJeXsKKipaSko6Cgp5ubq5eX - r5GRtI+Ps4WFvYCAwn5+wn5+wX9/woGBxIGBxoeHwouLv5CQvJqasaampaenpqKiqpaWt4qKw4WFx4SE - xoODxYKCw4CAwYCAwoKCw4aGwJGRtpWVtJWVtJWVtJmZsJ+fqKSkpaSkpaSkpZ+fqZaWsY+Pt4qKuoSE - wYKCw4CAwn9/wYCAwYKCxIiIwJCQuJmZsJ6erJ6eq5+fqqWlpaCgqpKSuImJwIuLvouLvouLvYmJvYSE - v4GBwYKCxIWFxouLwI6OvI6OvY2NvZCQuZiYsyAAo6Oko6OkpKSioKCmk5O0hobChITFhITFiIjAh4fB - goLEgYHDgYHEgIDFgoLDjIy3m5upo6OioqKjo6Oko6Oko6Oko6OjoqKknJyomJivlJSykZG2ioq8goLC - gYHEgoLEgoLFhYXCi4u8kZG2lpavoKCkoqKioqKioqKioqKio6Oin5+llpaxi4u9goLFgYHHhITFiYnA - jY2+jY2+jIy/jY29kZG2lpauoKCioqKhoqKioqKioqKioqKhnp6kmZmqkpKzjo66jY27jY27kpK1j4+3 - jY24jIy5j4+0mJiom5ujn5+foaGgoaGhoaGhoKCgnp6emJiqkJC3ioq+h4e+iIi+iIi+i4u7i4u7iYm7 - ioq4jo6ykJCwnZ2loqKioqKio6Ojo6OkoKCmmpqukZG1i4u5h4e+g4PDhITGhYXGhITHhYXGj4+8nJyu - oqKkoqKhoqKioqKioqKioqKjoqKjoqKhn5+jkpKyioq7ioq8jIy8i4u9i4u9jIy8j4+5lpaym5utmpqu - oqKko6Ojo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqampaWlpqan - pqanpqanpqanpqampqampaWlpaWlpaWlpaWlpaWlo6OkpKSkpaWlpqanpqanpqanpqanpqampaWlo6Ok - o6OkoqKjo6OjpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6OkpaWkpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWmpqanpqanpqanpaWmo6OjoqKjo6OkpKSkpaWlpaWlpaWlpaWlpKSloqKjoqKio6Oio6Ojo6Ojo6Oj - oqKioqKioqKioqKjo6Oko6Oko6OjoqKioqKjo6Oko6OkpKSlpqanpqanpqanpqanpaWloqKjnZ2pj4+3 - iYnAh4fAhoa+hoa8iYmzjo6sjIyyioq4ioq7jo67k5O2lpa1l5eznZ2po6OgoKCkkpK0ioq+iYm/hobC - goLGgoLFgoLDhYW6hIS9hITBhYXDiYnCjo69jo69j4+9mpqvoKClmJirjo60jo61kJCyiIi6goLBgIDA - gIDAgoK/hoa7iYm5iYm6i4u6kpKyn5+joqKhoqKipKSin5+okZG4jIy9jY28hYXCgYHEgYHCgYHCgIDD - h4e9ioq7i4u9jo67kZG3lJS0oqKlpKSjn5+omJivlJS0kZG4h4e/gYHFf3/Efn7Bfn7Bf3/CgIDChYW+ - i4u6jIy7jIy+kZG6oKCqpaWloaGrlZW5h4fGg4PKhYXHhITGg4PEgIDDgYHBhIS+iYm8jo65jo66j4+7 - jo68kpK4np6qo6OkpKSko6OknZ2rl5eylZWwkJC1hITCgYHFgYHCf3/BgIDBh4e8ioq5jY25kZG4k5O3 - lZW1mZmxpKSmpaWlnp6slJS1kZG3kZG2i4u7hITBf3/Cf3/DgoLCiYm+jY29jY2+jY2/jIy/j4+8lJSz - IACjo6Sjo6Sjo6Oamq2MjLuHh8KJicCKir+JicCGhsOCgsWBgcOBgcWDg8ONjbiYmKmfn6CioqGioqOi - oqOjo6Sjo6SkpKOhoaaXl7CVlbKQkLaKir+EhMWCgsaCgsWDg8SGhsCJib6OjriXl62dnaeioqKioqKi - oqKioqKioqKfn6Sbm6mSkrSJicCGhsKHh8CJicGMjLyLi72Kir+MjL6Skreamq6goKahoaKhoaGioqGi - oqKioqKgoKWamqyRkbOLi7eKirmMjLePj7WPj7aKir6IiMKHh8OJib+Tk6+cnKKfn5+goJ+hoaGhoaGh - oaGhoZ6UlKyMjLeKirqKirqLi7mLi7mLi7qJibyLi7qQkLSRkbGOjrKdnaChoZ+ioqKjo6OioqWZma6U - lLSPj7mJib+EhMSDg8WEhMWEhMaGhsWOjryYmLGenqqjo6SioqOioqKioqKioqKioqKioqOhoaWWlrGL - i7qIiLyKirqLi7yLi72Kir6MjLuQkLeWlrKdnaufn6ijo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaempqempqelpaalpaampqempqempqempqempqempqalpaWlpaWlpaWl - paWkpKSjo6Sjo6SlpaWmpqampqampqempqempqelpaWkpKSjo6SioqOjo6OkpKSlpaWlpaWkpKWjo6Sj - o6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaalpaampqampqakpKSioqKioqOjo6Sk - pKSlpaWlpaWlpaWlpaWkpKWjo6SioqOioqOjo6Sjo6Sjo6Ojo6OioqOioqOjo6Sjo6Sjo6SioqOioqOj - o6Sjo6Sjo6SkpKWmpqempqempqempqelpaahoaWTk7WOjrmPj7eNjbaNjbOPj6uKirGGhreGhrmJibqM - jLyQkLmUlLWbm62goKihoaShoaOYmK2Tk7SOjrqJib+GhsCHh7+Hh76EhLyAgMB/f8SAgMWEhMSIiMKI - iMOMjMGYmLOfn6mbm6qUlK2Skq6MjLaEhMCAgMKBgb+Bgb6FhbuIiLmJibqIiL2Li7qVla+fn6SenqSg - oKKjo6GdnaiQkLeNjbyIiMKFhcaDg8WBgcOBgcGEhLyJibiJibqMjLiSkrSUlLSVlbOjo6SlpaOgoKaX - l6+NjbqIiMGCgseCgseBgcR/f8J+fsJ/f8GAgMGEhL2EhL6Ghr+MjLyTk7acnK2kpKWjo6ecnLCRkb2I - iMWFhcmEhMiDg8aDg8OEhL6Hh7qJibqLi76Li72Li72OjryVlbWenqqjo6Sjo6SioqOgoKafn6mdnaqU - lLOGhsOCgseAgMSAgMCEhLqJibeGhr2FhcGGhsOGhsOJicGTk7ehoamnp6Ojo6abm6+UlLePj7mLi7yG - hr+Dg76CgruEhLqKirmLi7yNjb6Njb6Njb6Ojr2RkbggAKOjpKSkpKGhpZmZr5CQuY6OuoyMvIqKvoWF - xIKCxoKCxIKCxYaGw42NvJmZr6Cgo6Ghnp+fn6GhoqKio6OjpKOjpKSko6Cgp5OTtZCQt4yMvIeHwYaG - w4aGwoaGw4aGxIiIv4iIwI2NuZmZqqGhoqKioqKioqKioqOjoaCgpJmZq5SUso2NuYuLvIuLvIyMvIyM - vIuLvYqKvYyMvZOTtpqarp6eqqSkpKKipKGho6GhoqOjoaGhpJmZrZKStYyMuouLuYqKuIuLuI+PtYmJ - wIWFxIODxoSExYqKvZaWr52do5+fn5+fn5+fn6CgoKGhoaGhopKSsYmJuYiIuYiIuoaGvYaGvYaGvouL - u5CQtJKSspGRs5OTr5ycoJ+fnqCgoKKioZ+fppOTtY+PuomJwYWFxYODxoODxYSExoWFwo6OupiYsJmZ - r5qarqKipqOjpaKio6KioqKioqKiop+fpZaWsYyMvYqKvYuLu4qKu4mJvIqKvY2Nu5KStZOTtJSUtJqa - rqSko6OjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6am - p6Wlpqampqampqamp6amp6amp6amp6WlpqWlpaWlpaWlpaWlpaSkpKOjpKOjpKSkpKSkpaWlpqamp6am - p6amp6WlpaSkpKOjpKKioqOjpKSkpaSkpKSkpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaSkpKKio6KioqOjo6OjpKOjpaSkpaWlpaWlpaWlpaWlpaOjo6KioqOj - o6OjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKSkpaamp6amp6amp6amp6am - o5aWspKStpOTtJOTspGRsYyMs4eHt4WFuIaGt4iIt4qKuoqKvJCQuJaWs5mZsZ2drKOjo5+fppmZq5CQ - to2NuY6OuIuLu4aGvYCAwn9/wX9/wYCAwoGBxYGBxYaGxIyMwJiYs6GhqJ6eqpSUs42Nt4ODwoCAw4GB - wIGBvYODuYaGuIiIuYiIvYuLu4+PtZSUsJeXrJaWrZ6eo6Sknp2dp4+Pt4mJwIODxoSEx4ODxoODw4aG - vIeHt4iIt4iIuIyMtZCQtJCQt5KStp+fqKKipKOjo5ubq4uLvICAx4KCx4KCx4GBxYGBw39/wX9/wYGB - woCAxIGBwoiIu5CQtJeXr52dq6SkpqWlpKOjp5qas4yMwYaGxoeHxoWFxYaGwIeHuoeHuImJuouLvIyM - vYyMvY+PupWVtpqasKKipqOjpKKio6Kio6Ojo6GhpZSUtIiIwIWFw4SEwYSEu4aGtYWFvIGBw4GBxoOD - xoKCx4SExZCQuZ+fq6ampKCgqZeXs5KSuo2NvI2Nu46Ot4uLt4eHt4eHtoiIuImJuoqKu4yMvY2Nvo+P - vJCQuyAAo6OkpKSjoKCmmpqslZWzkJC5jIy8hITEg4PGgoLFgoLEhYXCjo67mJixnZ2roaGmoqKin5+f - oKCfoqKioqKjo6OkpKSjoaGmlJS1jo67jY27jY26jIy7i4u9i4vAiIjDh4fEhYXEjIy7mpqqoqKgoqKi - oqKioqKio6Ohn5+lk5OzjY26ioq9ioq8ioq8i4u9i4u9i4u9jIy8kJC3l5ewnJysnp6ppKSlo6OkoqKj - oaGioqKgoKCllJSzjo65jo66jY25i4u6iIi7h4e/g4PFhITGg4PGh4fCk5O0np6loaGhoKCgn5+fn5+f - oKCfn5+imJirjIy5iYm8ioq5hoa+gIDFgYHEgIDGi4u6kpKykZGyk5Ovm5unnp6fnp6dn5+en5+gm5uq - jo66iIjBhYXFhYXGhYXFhobEhYXDi4u8lpaumpqsmZmwnJyso6OmpKSlo6OkoqKjoqKhoaGjm5upkJC4 - jY26jY27i4u8iYm8iYm8i4u6kpK0k5OzkpK1kpK2lZWzo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpaWmpaWmpqanpqanpqanpqanpqanpqam - paWlpaWlpaWlpaWlpKSko6Oko6Oko6Ojo6OkpaWmpqanpqanpqampaWlo6Oko6Oko6OkoqKjoqKioqKi - o6Oko6Oko6Oko6Oko6Oko6Oko6OjpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkoqKi - oqKio6Ojo6OkpKSkpaWlpaWlpaWlpaWlpKSloqKjoqKio6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - o6Oko6Oko6Oko6Oko6OkpKSlpaWmpqanpqanpqanp6emmZmxlJS2lJS0k5OzkJC3iYm6iIi5hoa3hYW4 - hYW6hoa7iYm8iYm/iYnBjY29mZmxpaWko6Ojm5uplZWxkpKzjo64h4fBgYHFgIDBf3/Bf3/BgIDCgYHD - g4PDioq9iorBkpK5n5+roaGqlJS3hobFg4PDgoLBg4O+hYW6hYW4hYW4h4e6ioq6j4+2kZGykJCzkJC0 - kJC1nJyno6OenZ2mjo65g4PGhITFhITFhITEh4e+ioq3hoa3iIi3h4e6h4e8h4e9iIi+iYm9k5O0nJyr - o6Ojn5+okZG2h4fAh4fChobBhITBgoLCgIDCgIDBgYHCgoLChoa9i4u2jo60j4+1mZmro6OlpqajoqKo - lZW1iorCiYnCiYnCiYnBiYm8iIi3hoa3iIi5ioq7jIy9jIy9i4u+jY28l5eyoqKmpKSlpKSkoqKkoKCl - nZ2nk5Ozjo64jY25i4u4iIi4hIS7gIDDgYHDgoLEgoLFg4PFiIjBkpK4n5+qpqakoaGplpa0kpK4k5O1 - kpK2k5O1jo64iIi7hoa4hoa4iIi5iYm6i4u9jo68kJC7kJC7IACjo6SioqScnKqUlLSOjrqMjL2Li76F - hcOEhMSDg8WFhcKNjbmWlrCdnamenqmhoaekpKShoaKfn5+goKChoaKioqOjo6OioqWcnKyVlbOUlLSP - j7mLi76Li7+JicWJicWJicaLi8CVlbGhoaOioqKhoaGioqKjo6KhoaKamquPj7iLi72Li72KiryKiryM - jL2MjL2MjL2SkraSkrSTk7OXl6+fn6ikpKWkpKWjo6Sjo6SioqGfn6STk7OSkrSTk7OOjrmKir2IiL2D - g8WEhMWEhMWDg8aLi72bm6yjo6KhoaGhoaGhoaGgoJ+enp+amqWPj7aLi7uMjLyHh8GCgseDg8WDg8WC - gsSGhr6NjbaUlK6cnKahoaGgoKCfn5+fn52cnKGSkrCIiMGEhMWEhMWFhcWIiMGMjLyLi7yLi7yVlbGY - mKybm6uioqakpKWkpKWkpKWkpKWjo6OhoaOcnKiXl66UlLKNjbqKir6Kir2Li7qRkbOQkLSQkLaQkLaT - k7OcnKqjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWmpqempqempqempqalpaWlpaWlpaWmpqempqempqempqalpaWlpaWlpaWlpaWkpKWioqOioqKjo6Sj - o6SlpaampqempqempqelpaWlpaWlpaWkpKWioqOioqKioqKjo6Sjo6Sjo6Sjo6Sjo6OioqKjo6SlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6SioqKjo6SkpKWlpaWlpaWlpaWjo6SlpaWlpaWlpaWk - pKWjo6SioqKjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Slpaampqem - pqempqehoauYmLKTk7WPj7iJibuJibmHh7mHh7eCgr1/f8SBgcSDg8aCgsWCgseHh8OTk7WhoaekpKWc - nKuTk7GMjLiFhcCAgMWBgcOAgMF/f8F/f8GAgMGCgsKDg8SDg8aDg8aHh8OUlLeenqyZmbGLi8GJicKH - h8CGhruHh7iFhbiFhbiIiLqPj7KOjraJib2KiryKiruLi7qXl6yhoaGenqSQkLaFhcSFhcSEhMWIiL+L - i7iJibeHh7aGhriCgsGAgMWBgcSCgsWDg8OIiL6UlLOhoaahoaaYmK+UlLSTk7OTk7ONjbeFhb5/f8N/ - f8GBgcCIiLmEhMCAgMV/f8WDg8GRkbOgoKSmpqKhoaqSkriIiMSJicKJicKLi7+KiruHh7iGhreHh7mJ - ibqKiruMjL2Li76QkLmcnKujo6WkpKWkpKWjo6Wfn6iXl6+Tk7ORkbKSkrKNjbaEhL2BgcSBgcKCgsSC - gsSBgcWGhr+QkLSTk7Oamq6ioqekpKWfn6qbm7Cbm6+VlbSOjruLi72KiruHh7iFhbeIiLmKiruLi76L - i7+Li7+MjL8gAKWlpaSko5iYr42Nu4uLvoyMvYyMvYyMvYuLvYuLvYqKvYyMuZmZqpycqKKipqWlpaSk - paSkpaKio5+fn5+fn6GhoqOjo6GhpJubrJWVtI6Ou4yMvoqKwIeHxImJxYmJxY6OwZOTu5ycr6SkoqKi - oqKioqGhoaKioJ+fppaWr5CQt4qKu4qKu4mJuomJuoqKvIuLvYyMvZKSt5SUs5aWr5ycqKOjo6SkpaSk - paSkpaSkpaSko5+fpZGRspKSs42NuouLvYiIv4ODxYSExYSExYSExYaGwo+Pt52dqaOjoqKio6GhoaGh - oaGhoJ+foJqapY6OtIyMuoaGwoODxoSExYSExYSExYiIvo2NtpKSrpiYp5+foqGhoaGhoaGhoaCgnZqa - oo2NtYODxISExYSExomJwY2NvIyMvYuLvJGRtJKSspSUsJqaqqCgpaSkpaSkpaSkpaSkpaSkpaKipJ+f - pJubqo6OuYqKvoqKvoyMuZCQsYmJu4qKu4mJvIyMupaWr6Ojo6OjpKOjpKSkpKampqamp6amp6amp6Wl - paSkpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaamp6amp6amp6ampqWlpaWlpaWlpaam - pqamp6amp6amp6WlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKWlpqamp6amp6amp6WlpaWlpaWlpaSk - paOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKKioqKioqKioqKio6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaOjpKOjpKSkpaWlpaWlpaWlpaOjpKSkpaWlpaWlpaWlpaOjpKKioqOjo6OjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKOjpKWlpqamp6amp6enpZycsY+PvIuLvYuLu4mJuomJuIOD - vn9/woCAwYGBw4KCxYKCxYGBxoaGwZOTtKGhqKSkpZ6eq5CQuIWFw4KCxoKCxYGBxICAwn9/wX9/wICA - wIKCwoODw4KCxIqKwIyMvJCQuJqasJ2drY+PvIyMvoyMvoqKvIeHuYWFuIaGtoiIuIqKuouLvIuLvYuL - vY6OuY2Nt5KSsZ2dpaCgoZaWroqKvYmJvIiIvI2NtpKSsI6OsoaGuYCAwICAwoGBw4GBxISEw4qKvIuL - upGRtZ6eqaSko56eqJiYsJWVtI6OuYWFwIGBw4GBw4GBwIaGt4KCwIGBw4ODxYaGw4uLupKSs5+fo6Oj - oKOjpZycsI6OvY2NvoyMvYyMvYqKu4eHuIaGt4eHuImJuYmJuomJvI6OupWVs5ycrKKipaSkpKSkpaWl - pKGhp5mZrZqaq5OTr42NtYWFv4CAxIGBwoCAwYGBw4GBxYiIwI6Ouo2Nuo6OupGRtZ+fqaamo6KiqJ2d - rp2drZaWtZSUtY6OuIiIu4eHuIWFt4iIuYqKuoeHwoSEx4WFxoWFxiAApaWlpqaknp6ql5ewk5O1i4u+ - jIy9jY26iIjBhITFhITFhYXDk5Oynp6ko6OipKSkpKSlpKSlpKSloqKjn5+goKCeoKCjm5urlZWyjo67 - jIy9iorAh4fDh4fDiIjDkJC/lJS5mZmzoqKrpqako6OjoqKioqKipKSgnZ2nkZG2jIy8i4u9ioq7ioq7 - iYm6iYm5jIy6kpK1k5O1mJiwn5+po6OjoqKioqKjpKSlpKSlpaWloqKmm5uskpKzjIy5i4u6iIjAhITF - hITFhITFhYXEh4fAi4u7lpawoaGkoqKjoqKjoqKjoqKioKChnJyklZWri4u3hITBgoLFg4PFhITFhYXE - ioq+kJC3lZWvlZWsl5eonp6goaGhoaGhoaGhoqKfnZ2hkpKsiIi7iIi8iYm+i4u+i4u+jIy9kpK2k5Oz - lZWvlpavm5upoaGhoqKkpKSlpKSlpKSlo6OloKCnm5urlZWwi4u8iIjAiIi/iYm7ioq4iYm6iIi7jY25 - k5O0mpqqo6OhoqKio6Oko6OkpaWmpqanpqanpqanpqanpqampKSko6Oko6OkpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpqampqanpqanpqanpaWlpaWlpaWlpaWmpqanpqanpqanpaWlpaWlpaWlpaWlpaWl - o6Oko6Oko6Oko6OkpKSlpqanpqanpqanpaWmpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6Ok - oqKioqKioqKioqKjo6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWlo6Ok - pKSkpaWlpaWlpaWlo6Oko6Oko6Oko6Oko6Oko6Oko6Oko6OkpKSlpaWlpaWlpaWlo6Oko6Oko6Oko6Ok - o6OkpKSlpKSlpaWjmpqvjo66ioq7iYm6iIi4g4O/gIDBgIDBgIDDgYHEg4PFgoLHhobBjY25lZWwnJyp - o6OlpKSlmZmxiIjAgYHHg4PFgYHEgIDEgYHCgIDAgIDAgYHCg4PDiIi9i4u6kJC2kpK0mJiwo6OpkpK5 - jIy/i4vAi4u+iYm8iIi4hoa3h4e4iIi5ioq8jIy8jY26jo66jY26kpK0nJyno6OfnZ2mj4+2j4+2j4+2 - kZGykJCxiYm5gIC/f3/BgIDBgIDDhITBiYm8i4u8i4u8jo64nJyppaWhoaGmmZmvjo67hobDg4PGgYHG - goLAhoa4gYG/gYHBf3/DhITAioq8jY28lJSzoKCko6Oio6OioKCmlpaxi4u9ioq8ioq7iYm6h4e4hoa3 - hoa3iYm4ioq5iYm6jY23lpaxnZ2rn5+mn5+ooqKmpaWlpKSlo6OnnZ2qj4+1hITAgYHEgYHDgYHDgYHC - f3/Ehoa8iIi9hYXDhobDhYXEkZG2n5+lpqahoaGomZmwlpa1l5e1kZG6jIy9ioq8iIi5hoa3iIi3hYXB - hITFhITGhYXGhYXGIACmpqWlpaafn6qWlrOOjrqMjL2NjbyIiL+EhMSCgsiEhMWNjbuVlbKfn6KhoaCi - oqOkpKWkpKWkpKWkpKWjo6Kfn6GYmKeSkrKMjLmLi72Jib+GhsOFhcWFhcSGhsWHh8SRkbyfn66mpqam - pqelpaaioqOioqKhoaOYmK2MjLqKiryKiryJibuKirmKireJibmHh72Kir2IiMCRkbafn6mlpaKjo6Oi - oqKjo6SkpKWmpqOhoaiTk7aNjbuLi72Hh8CFhcSEhMaEhMaEhMaDg8aHh8KRkbWdnaejo6KioqOioqOi - oqOioqKhoaGbm6aQkLSFhcCCgsWDg8aDg8aDg8aEhMWLi76RkbaTk7KVla6Zmaafn56goKChoaGioqCg - oKOZmaiRka6JibiJibmKirqLi72NjbuSkraTk7WWlrGWlq6Zmaqfn6ShoaGhoaKjo6SkpKWjo6aioqah - oaeZma+MjLyJib+Jib+Jib2JibqJibqJibmIiLqNjbmXl6+goKSioqKioqKioqOioqOlpaampqempqem - pqempqempqelpaWjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaempqempqempqel - paWlpaWlpaWmpqampqempqempqalpaWlpaWlpaWlpaWkpKWjo6Sjo6SioqOjo6SkpKWkpKWkpKWlpaWl - paWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6OioqKioqKioqKioqKjo6Sjo6SkpKWlpaWl - paWlpaWlpaWlpaWkpKWjo6Wjo6SkpKSlpaWlpaWkpKWjo6Wjo6SkpKSkpKSkpKWkpKWkpKWkpKWjo6Sj - o6Sjo6SkpKWmpqampqempqampqakpKSjo6Sjo6Sjo6Sjo6Sjo6SkpKWmpqOamq+OjruKiryJibqDg7+B - gcJ/f8F/f8GAgMKBgcSCgsaIiMCLi72NjbuQkLeYmK6ioqSmpqSbm66KisGBgcqCgseBgcWHh7uCgr9/ - f8GAgMGBgcCHh7uKirmLi7qMjLqMjLqTk7OgoKeamrCSkrmRkbmSkriOjrmJibuIiLiGhreHh7mMjLmM - jLyIiMOIiMKHh8OOjrqZmaqioqCfn6OWlq2Wlq2ZmauTk7CIiLuBgcGAgMJ/f8GAgMGCgsSFhcSHh8OG - hsSKisCRkbmamqyioqOjo6OcnKuOjruIiMGJicGLi76IiL2Dg7+AgMF/f8KDg7+JibyMjLyMjL2OjrqX - l6+dnamhoaOhoaKXl6uMjLqLi7qKiruKiruIiLmHh7eHh7aDg7+EhMGDg8KHh76QkLWYmK+Zma6cnKuh - oaakpKSkpKOioqOVlbGLi7qGhr+CgsN/f8Z/f8WAgMOFhbuFhbuDg8KCgsaDg8aDg8eLi72ZmayioqOk - pKSgoKqYmLGPj7uMjL6Li72KiruJibmHh7eCgr2BgcOCgsWEhMWEhMWFhcYgAKOjpp+fq5aWtY6OvYyM - v42NvIiIwISExIODxYaGwo6OupaWsJubqaGho6KioaGhoaKio6OjpKSkpaSkpaOjppycqZKSsIuLt4mJ - vIuLu4aGwYODxYSExYSExoSEx4aGxJOTt6Ojqqiopqamp6amp6WlpqOjo6CgpJaWsIqKu4qKu4qKu4qK - uoeHvYaGwIWFwYODw4KCxIWFwJOTtKCgqKSko6OjpKOjo6KioqOjo6OjpZ2drpKSuJCQuo2NvIaGw4SE - xoWFxYSExoODx4aGxI+PupqaqqGhoaKioqKio6Kio6Kio6OjoqGhpJiYrIuLu4KCxIKCxoODxoODxoKC - x4ODxY+PuJKStJCQtpeXrqCgoqCgn5+fn6CgoKCgoJycppOTsYuLuYmJuomJuYqKuYuLuo2NupKSt5SU - tJiYr5ubrJ6epaGhoaGhoaGhoaGhoqOjo6OjpaGhp5ubrpCQuomJwYmJwIqKvYqKuYiIuoeHvIeHvIWF - wI2Nupycq6SkoqKio6Ojo6KioqKio6Wlpaamp6amp6amp6amp6amp6amp6WlpaSkpKOjpKSkpaWlpaWl - paWlpaWlpaSkpKSkpaWlpaWlpaampqampqSkpaWlpqSkpaSkpaSkpKSkpKWlpqamp6amp6ampqampaWl - paWlpaWlpaWlpqWlpqWlpqSkpaKio6OjpKOjpKSkpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOj - pKOjpKOjpKOjo6Ojo6Ojo6Kio6OjpKKio6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKSkpaWl - paWlpaWlpaSkpKOjpKOjpKWlpaWlpaWlpaWlpaSkpaOjpKOjpKSkpaWlpqamp6amp6amp6ampqWlpKOj - pKOjpKOjpKOjpKSkpaWlpJ2drJCQuYmJwYaGwoGBxYGBw4CAwX9/wX9/w4GBxIiIwIiIwIiIwIaGw4eH - wZGRtp6epqSko5ycrJCQuouLwIyMvYiIwIeHvoKCwX5+woCAv4WFuYiIt4mJuImJuYmJuoyMuZSUsZ2d - qJ+fqJubr5eXtJOTuI6Ou4uLvYmJuoaGt4iIuIqKu4eHwYODx4SExoKCx4iIwZOTs56epaGhoZycp52d - ppqaqY2NuYGBxn9/xoCAw39/wYCAwYKCw4ODxoSEx4mJwpGRupeXtJiYsp2dqaOjoZ6ep5WVtJKSt4+P - uouLvoeHwoGBxYCAwoODvoeHuouLuYuLvYmJwIiIwIqKv5KStJ6ep6GhopeXq4uLuouLuoqKu4qKu4qK - uoiIuYODvYCAw4GBxYKCxYODxIaGwIqKvZOTtJ6eqKOjo6OjpKOjo6GhpJaWr4+Pt46OtoyMuImJu4mJ - uYWFvIWFu4KCwYCAxIGBxYODxYeHwYmJwJCQt5ubqaSkoaSko6GhqZGRuYyMvouLvYuLu4mJuoODvX9/ - woCAwoKCw4ODxYSExYWFxiAAm5usmJixj4+7jIy/jIy9iIjBg4PFhITEgoLGiIi/lJSynJypoKCjoqKi - oaGhoaGhoaGhoaGio6OkpaWknZ2slZW1jY26iYm7i4u7iIi9hYXDhITGhITGhITGiIjBjo67nJyspKSl - pqampqanpqanpqanpqaloqKllZWxioq9i4u7ioq6iIi8hITDgoLHgoLGgoLFhoa/jY20mpqnoqKjo6Ok - o6Oko6OkoqKjo6OhoKCmmZmwlJS1lZW0jo67h4fDhITGhITFhITGh4fDkJC4nZ2ro6Ojo6OhoqKioqKj - oqKjoqKioKClm5urk5O0ioq9g4PFg4PGg4PGg4PGg4PFh4fAkZG2kpK0kpK0nJyppKSgoqKioKCgoKCd - m5uklpatj4+2iYm9i4u6ioq5iIi9h4e+hoa/iYnAkpK3mJiwnp6poqKko6OioaGhoaGhoaGhoaGioaGl - mpquj4+6iIjCiIjCh4fCh4fAiIi9h4e+hYXAhITBiIi+lZWzoaGopaWjpKSlo6OkoqKjoqKjo6OkpaWl - pqampqanpqanpqanpqanpqanpqampKSko6OkpKSlpaWlpaWlpaWlpKSko6OkpKSlpaWlpaWlpKSlo6Ok - o6Oko6Oko6Oko6Oko6Oko6OkpaWmpqanpqanpqanpqampaWlpaWlpqanpqanpqanpaWmpKSlo6Oko6Ok - o6OkpKSlpaWlpaWlpaWlpaWlpKSko6Oko6Oko6Oko6Oko6Oko6Ojo6Ojo6Ojo6Ojo6Oko6OkoqKjo6Ok - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSko6OkpKSlpaWlpaWlpaWlpKSko6OkpKSlpaWlpaWlpaWl - paWlpKSko6Oko6Oko6OkpaWlpqampqanpqanpqampaWlo6Oko6Oko6Oko6OkpKSko6OmmJixiYnBgoLI - g4PFgoLEgYHDf3/CgIDAhYW/iYm/hITFgoLHhITFh4fCjo67m5uroqKioaGmnp6rmpquk5O2iYnAhITG - gYHFgoLAhIS6hYW4hoa6h4e8iIi7jIy4kpKxmpqpn5+koKCjmpquk5O3jY29jIy+jIy9iYm6h4e2hYW6 - g4PCgoLGg4PFg4PFhYXEh4fCkJC3np6noqKhnp6lnJynlZWvi4u8h4fAiIi9hYW+f3/Bf3/BgIDCgoLE - iYnAkpK2l5ezmJiymJiznp6ro6Ohnp6lm5uslZW0jo67iIjChITFhITDhIS/hoa4iIi4iIi6hoa9hYXD - hobChobDkZG2np6no6OinJypkZG0ioq6iYm7ioq7iYm7hIS+gIDDgYHDg4PEg4PFg4PGg4PGhobCj4+4 - np6qo6Oko6Oko6Oko6OknZ2olZWxkpKzkpKwkpKvj4+zhYW6gIDBgIDDgIDEgYHEhobAi4u7jIy6jo65 - mJivoqKko6OioqKllpaxj4+4jIy7ioq9hobAgIDDgIDBgYHCgYHCgoLDg4PFhITFIACWlrKVlbOQkLqL - i72Hh7+CgsWDg8WDg8WDg8WHh8CSkrOfn6WioqKioqKioqKioqKhoaGhoaGioqKkpKObm66QkLqLi7+M - jL2Kir6Dg8WDg8aEhMWEhMWGhsKNjbuTk7OgoKelpaOlpaampqempqempqempqigoKuTk7WLi72MjLyK - ir2BgcOBgcSCgsWDg8WHh7+RkbWVlaudnaGiop+jo6Ojo6Sjo6Sjo6SioqKdnaeWlq+SkrSSkraLi76F - hcWDg8aEhMWHh8GRkbecnKujo6SkpKOioqOioqKioqKioqOjo6KcnKmTk7ONjbqIiMCCgsWCgsWDg8aC - gsaFhcOLi76KisCPj7iXl6+fn6ajo6GioqKhoaGfn5+Xl6mOjrSKirqLi7qLi7qKiryFhcOCgsaCgsWF - hcKMjL2Xl7KenqiioqSjo6OioqKhoaGhoaGfn6SZmauOjrmHh8KJicGDg8eDg8eBgcWDg8OGhsKGhsGK - ir6Xl7GgoKmkpKalpaWlpaWjo6Sjo6SioqKioqKkpKSlpaampqempqempqempqempqempqelpaWjo6Sj - o6SkpKWlpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Smpqelpaam - pqempqelpaWlpaWlpaWmpqampqempqempqekpKWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sj - o6Sjo6Sjo6SioqKioqKioqKioqOjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWj - o6Sjo6SkpKWlpaWlpaWlpaWjo6Sjo6SkpKWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6SkpKSlpaampqempqem - pqempqakpKSjo6Sjo6Sjo6Sjo6SmpqKgoKmQkLqFhcaDg8WDg8WCgsWBgcKDg7yGhruCgsaEhMWFhcSJ - ib+MjLyPj7icnKmgoKWjo6KkpKCdnaePj7mDg8aFhcODg8KGhruFhbmCgr+EhMCGhsGKiryQkLaWlq6d - naaioqChoaOUlLKLi72Kir6Li7yLi7uJibmGhriBgcCAgMWCgsSDg8WEhMOJib+Kir6Tk7Ofn6aioqOf - n6WXl6ySkrKTk7KUlLGRkbWJibyBgcGAgMGBgcKGhr+Pj7iTk7OTk7aSkriZmbGioqimpqOioqKamqqO - jruHh8KHh8KIiMGIiL+KirmHh7iHh7mEhL2CgsGEhMGFhcOKir6Xl6+goKSjo6KioqOcnKmOjreKirqJ - ibqEhL9/f8SBgcKBgcKCgsSDg8WDg8aGhsOKir6IiMGRkbecnKuioqSkpKOjo6SenqmYmK6UlLKSkrON - jbaGhr6AgMKAgMGBgcOBgcOFhb+MjLuKiryQkLiSkraWlrKenqiioqObm6qXl6+Vla6Pj7SGhsGBgcaB - gcKAgMGAgMGAgMGBgcOCgsSDg8UgAJeXsZaWs4+PuYeHwYKCxoKCxIKCxIODxYiIv4uLupKSs5+fpKKi - oqKioqKioqKioqKioqGhoaGhoaGho5+fqZWVtYyMvouLwISExoODxYODxYODxYeHwYuLvY2Nu5mZrKGh - pKSkpKSkpaSkpaamp6enpp+frZeXtpSUt5GRtoqKvoSExoODxoGBxIGBw4eHvpCQs5aWrJ2dpp+foJ+f - n6GhoaKio6OjpKSko56eqZaWsJKStJCQt4qKvoSExIODxYSExYeHwo+Pt5ubqpqaraGhpqSko6OjpKOj - pKKioqKioqSkoZmZrY2NuoeHwYODx4ODxoKCxYKCxYSExIWFw4WFxIaGw5CQuJ2dqaOjoqKioqKioqKi - op2dpZeXqo6Os4iIuYmJuYmJvISExIODxYSExIeHwIuLu4uLuZmZrKKipaSkpKOjpKOjpKKioqKioJyc - qI6OuYeHwIeHwYSExoSExoSEx4WFwoWFwIaGwoiIwJOTs5+fq6SkpqWlpaWlpaWlpaWlpaWlpaWlpaOj - o6KioqOjpKWlpaamp6amp6amp6amp6amp6amp6WlpaOjpKOjpKSkpKWlpaWlpaWlpaOjpKOjpKSkpKWl - paWlpaWlpaOjpKOjpKOjpKSkpKWlpaWlpaWlpaSkpKOjpKSkpKWlpaWlpaWlpaWlpaampqamp6amp6am - p6OjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKKio6KioqKioqKioqOjpKOj - pKOjpKOjpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKSkpaWlpaWlpaWlpaOjpKOjpKSk - paWlpaWlpaWlpaWlpaSkpKOjpKOjpKOjpKWlpaamp6amp6amp6ampqSkpaOjpKOjpKOjpKSko6KippiY - sYyMvoaGxYWFxISExYeHvoeHu4CAw4KCxIODxomJv4qKvYyMu5SUsZycqZycqaGhpJ+fpZiYrZKStoyM - vIuLvIqKuoaGvIKCvoKCvYWFv4uLvJKStpSUtZeXsp2dqqGhoqKioJaWro6OuYuLvIyMu4uLuoqKvIKC - woCAw4GBwoGBxIODw4iIvomJvYqKv5GRtpqaqp+fpaKio5ubqJWVr5KSs4+Pt4iIwIKCxYGBwoCAwYWF - vIuLuYuLvYqKvYqKvIqKvpWVtaKiqaenpKSkppiYroqKvoaGwoeHwYiIwIuLu4mJuoiIuYSEvYGBwYGB - w4GBw4GBw4iIvpWVsZ6epaKioqKio6Kio5SUsoyMuoSEwYCAw4GBwoCAwYCAwYGBw4ODxYODxYODxYOD - xoODxYeHwpOTtaCgqKSko6OjpJ2dqZ6eqJ6ep5OTsYaGwIGBxYGBw4CAwYCAwoSEvImJuYqKv4qKvouL - voyMvpCQuJubrKOjpJ2dqpycqZubqJCQs4WFwYKCxoGBw4GBwn9/wX9/wYCAwoGBw4KCxCAAmZmulZWz - ioq+g4PFg4PFg4PFg4PFiIi9jIy7j4+4mJisoqKgoaGhoqKioqKioqKioqKioqKioKCioaGhnJypl5ew - j4+7hITIhYXGgoLEg4PFh4fAioq9jo66mpqroKCkoqKioqKio6OkpKSlpKSloqKqm5uyl5e2k5O6i4vA - g4PFhITFg4PFgoLHhoa/kJCxlpaslpatn5+joqKhoKCgn5+foKCgoqKjnp6omZmvlpazkpK2ioq+g4PF - goLEgoLGh4fBjY27jo65jo65lJSxoKCnpKSjo6Oko6Oko6OkoqKin5+lk5O0hobCgoLHg4PGgoLFgYHE - g4PDhYXChITEhYXDkJC3mZmtoKClo6OioqKioqKioaGinZ2mlZWvkZGxjo6zh4e8g4PEg4PEgoLFh4fA - i4u8jIy7kpKzoKCioqKio6Oko6Oko6Oko6OkoaGjm5uokJC1hobBgoLGg4PFg4PFhobBhobDhYXFhITG - hobDk5O1o6OnpqakpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpqampqanpqanpqanpqan - pqanpaWmpKSko6Oko6OkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWl - paWlpKSlo6Oko6OkpaWlpaWlpaWlpqampqanpqanpqanpqanpKSlo6Oko6Oko6OkpaWlpaWlpaWlpaWl - paWlpaWlo6Oko6Oko6Oko6Oko6OjoqKioqKioqKio6Oko6Oko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWlpaWlpKSko6Oko6Oko6Ok - paWlpqanpqanpqanpqanpaWlo6Oko6Oko6OkpKSjn5+pkpK3jIy+jIy+jIy9h4fBgIDEgIDBgYHCg4PF - hITFg4PGhobCjIy7kJC4lZWyoKClnZ2olpawlpaukZGzjIy7hobAg4O/goK+g4O8iYm5kZG0lZW1lZW0 - lZW0lZW0l5exnJypmZmpk5OxkZG2kJC4ioq+g4PFgYHDgIDBgIDBgYHCgYHDgYHEgYHGiIi/j4+5lZWy - m5uqoqKjo6OinZ2mkZGzhobAgoLFgYHDgYHDhYW6iYm4i4u7i4u8i4u8i4u8i4u9kJC5nZ2tp6ejpaWl - oKCokZG3iYm8iYm8iYm8ioq7iYm6hIS9gYHBgIDDgYHEgoLCiIi6iYm6ioq9k5Ozn5+lo6OioqKjlZWx - iIjBgoLGgYHDgYHCgYHCf3/BgIDBgYHDgYHFgoLFhITEiYm/jIy8kZG2nJyrpaWio6Oko6Oko6OkpKSh - nJypjIy7gYHFgYHCf3/ChYW8iYm3h4e9g4PGg4PFgoLGh4fCk5O2n5+opKSjo6OknZ2okpK0h4fBg4PG - g4PFgoLEgYHDf3/BgIDBgoLDgoLEg4PFIACTk7KKir2EhMWDg8WDg8WDg8WDg8WDg8SHh7+SkrKenqai - oqChoaGhoaGioqKioqKioqKioqKhoaKcnKaWlq6QkLeLi72Kir6Kir6IiL2IiL2Jib2Li7yRkbSfn6Wi - oqKioqKioqKioqKjo6OlpaWgoKmbm7CTk7mLi8OGhsiFhciEhMaEhMWCgsiKir+UlLCVlaqamqWgoKKh - oaGhoaGgoKCfn5+goKGenqeZma2Tk7WLi7+FhcWDg8SDg8WHh8GMjLqOjrmPj7mTk7KamqqgoKOjo6Oj - o6Sjo6Sjo6SkpKOZma2Jib6BgceCgsaDg8WDg8WCgsSCgsOCgsOHh7+RkbSamqygoKWioqOioqOioqKh - oaOdnaiWlq+VlbGRkbSIiLuCgsKDg8SCgsaHh8CLi7yKir2MjLqYmKugoKKhoaChoaKjo6Sjo6SioqSc - nKqXl6+Li72CgsWBgcWBgcWFhcGEhMKFhcSEhMeGhsSQkLqXl7KioqalpaSlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWjo6Sjo6SkpKSmpqampqempqempqempqempqempqakpKSjo6Sjo6Sjo6Sjo6Sjo6Sj - o6Sjo6Sjo6SlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWlpaWlpaam - pqempqempqempqekpKWjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6OioqKi - oqKjo6Sjo6Sjo6Sjo6Sjo6Sjo6SlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKWjo6Sjo6SlpaWlpaWl - paWkpKSjo6Sjo6SlpaWlpaWlpaWlpaWkpKWjo6Sjo6Sjo6SkpKWmpqampqempqempqelpaWjo6Sjo6Sk - pKOfn6mSkreMjL2MjL2Hh8KBgcWAgMOAgMGAgMGBgcKBgcaFhcOLi76MjL2MjLyYmK6hoaSfn6WZmayU - lLKNjbqHh8CEhMCCgsCCgr2Hh7aNjbCQkLGUlLKVlbOVlbSVlbSWlrOdnaufn6SVla6OjrmLi76FhcWE - hMWBgcSAgMJ/f8F/f8GAgMKBgcSHh7yKirqMjLqPj7eXl6+ioqOjo6KdnaiUlLCOjrWNjbWMjLOLi7GH - h7WHh7mKirmKiruLi7yLi72Pj7mUlLGenqmmpqSlpaWkpKacnK2YmK6Xl6uSkrCIiLuFhb6BgcGAgMJ/ - f8SCgsOIiLuJibmJibqIiLyOjribm6ukpKCioqOWlrGMjLuJib+GhsGAgMSAgMOAgMGAgMKBgcKBgcSC - gsSJib2Li7uQkLaQkLaZma2lpaKjo6Sjo6SioqOkpJ+cnKeOjreHh76Hh7yGhruHh7eEhLuAgMKBgcWC - gsaIiMCJib6Tk7ShoaalpaKjo6SdnaqPj7iJicCJib6IiL+Dg8SBgcJ/f8GAgMKCgsOCgsWDg8YgAIiI - v4SExIKCxYODxYSExYSExYSExYKCyIqKvZmZq6KioKGhoaGhoaGhoaGhoaGhoqOjoqKiop2dp5aWr46O - uIqKvIqKvIuLu4qKuoqKu4mJu4qKuo+PtpWVrZ6epKKioqKioqKioqKioqGho5+fp6Cgp5qasJOTuoqK - xYSEyoWFyISExYODxoWFxY+PuZmZrJycpp6en6CgoKGhoaGhoaGhoaCgoKCgnp6epZSUsYqKvYWFxIWF - xYSExYiIwYuLvYuLvIyMu5KSs5ubqaCgpKKioqKioqKipKOjpKOjpKWlop2dq5KStYuLvIeHwYODxYOD - xoKCxYKCxYGBxoaGvpWVrqCgo6KioqKio6Kio6OjoqKio5ubqpWVsZCQtomJvYODxIGBxYODxoeHwIqK - vYqKvIuLu5OTs6Cgo6GhoaGhoaGhoaGho6Ojo6OjpJaWsomJwIKCx4CAyISExImJv4aGxIWFxoSEx4iI - w5CQuZeXsJ2dqqKipaWlpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKWlpaamp6am - p6amp6amp6amp6amp6WlpqSkpaOjpKSkpaSkpaSkpaSkpaOjpKOjpKSkpKWlpaWlpaWlpaSkpaOjpKSk - pKWlpaWlpaWlpaWlpaSkpaOjpKSkpKWlpaWlpaWlpaWlpqamp6amp6amp6amp6WlpaSkpKSkpaOjpKSk - paWlpaWlpaWlpaWlpaSkpaOjpKOjpKOjpKOjpKOjo6KioqKioqOjo6OjpKOjpKOjpKOjpKSkpKWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOjpKSkpKSkpKOjpKOjpKOjpKSkpKWlpaWlpaWlpaWlpaSk - paOjpKOjpKSkpKWlpaamp6amp6amp6ampqSkpKOjpKSko5+fqJKStoyMvYyMvYmJv4iIvoWFvYCAwYCA - wX9/xIWFwIuLvYyMvYyMvYyMvZmZrKCgpKOjop6eqJGRtoWFw4SEw4ODw4SEwIiIt4yMr46OrI+PrJGR - rpOTsZWVs5aWtJaWtJqarqKipJmZrYmJvYGBxYGBxoKCxYaGvIKCvn5+wYCAwYGBwoKCwYWFv4SEv4OD - woeHv5SUsqCgpKOjop2dqJWVsJKSs5OTsJKSr4yMtIiIt4aGuIiIuImJuYyMupGRtZeXrpycp6CgpKKi - paOjp6WlpaCgq52drJ2dqJaWrIiIvIKCw39/wX5+woKCwIeHvImJuomJuoiIuoqKuIyMt5WVsKKio6Ki - opWVsY2NuoyMvIqKvoeHv4eHvIGBwX9/wX9/w4KCwYeHvIyMuJCQs5OTspGRtZmZraSkoaOjpKOjpKSk - o6GhpJWVsIqKvIqKu4qKuouLuYaGvYGBwYCAxIKCxIeHv4qKvIuLvZCQt5qaraGhp6OjpKKipJaWsouL - vIqKvIqKvYODxYGBwn9/wYCAwYGBw4ODw4mJvSAAhYXFhITFgYHEgoLEhITFhITFg4PGhobDkpK2np6m - o6OgoaGhoaGhoaGhoaGhoqKhoaGinZ2olpawkpK1jIy7iYm8iYm6iYm6iYm6iYm7ioq7j4+1lpaum5un - n5+joqKioqKioqKioqKioaGjnJypm5urk5O0i4u/h4fGhYXHhYXHg4PGhITDi4u8lJSynZ2ooaGjoaGg - n5+fn5+goaGhoaGhoaGhnZ2jk5OuiIi8goLEgYHGhYXGiYnCjIy9i4u+jIy9kZG1mZmroaGio6OioqKi - oqKioqKio6Ojo6OkoaGnmpqulJSzjY26hobDg4PGgoLGgoLFgoLFgYHGhoa/lJSuoaGgoqKhoqKjoqKj - oaGknp6onJyql5eui4u8hITFg4PGg4PDiIjBjIy8i4u9ioq9jIy6lZWvo6OgoaGhoaGhoaGhoaGhoaGj - np6ok5O0i4u9ioq9iYm+h4fAiIi/hobGhobHh4fGjo69l5eym5usoqKlo6OkpKSlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6OkpaWlpqampqanpqanpqanpqanpqampaWlpKSlpaWlpaWl - paWlpaWlpKSlo6Oko6OkpKSlpaWlpaWlpaWlpKSlo6OkpKSlpaWlpaWlpaWlpaWlpKSlo6OkpKSlpaWl - paWlpaWlpqampqanpqanpqanpqanpqampaWlpKSkpKSkpaWlpaWlpaWlpaWlpaWlpKSlpKSlpKSlpKSl - o6Oko6OjoaGhoqKio6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlpKSk - o6Oko6Oko6Oko6Oko6Oko6OkpKSkpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6OkpaWlpqampqanpqanpqam - paWlpaWin5+pkZG3i4u+jIy+jY27i4u8hYXBgIDDgIDChIS/iYm6jIy6jIy9i4u+i4u+j4+5mJitoaGj - n5+mkpK0ioq/i4u9ioq9jIy5jo6xjo6si4uvhoa2hoa5iIi6ioq8jY29kpK5lZW0n5+qmZmti4u7hITC - hoa+hoa+hoa9gYHAfn7BgIDBgoLBgoLBgoLEgYHFg4PFiYm/kpK1m5uqoqKjn5+ml5ewkpK0kZG0jo63 - iYm6iIi6iIi2hoa5hIS/hYW+iYm9k5Oym5upnJyonZ2ooaGmpaWlnp6snZ2unJytkpK1hITDgIDGf3/D - gIC+hYW5iIi4iYm5ioq7i4u6jY23jIy3j4+0mpqooqKimZmskZG2kJC4kZG2jo65hYXBgYHEfn7Df3/A - hYW6ioq2ioq3jo60jo62kJC2mpqrpaWgo6Ojo6OkpKSjm5usjo65iIi/i4u8i4u7h4e/goLCgIDEgoLC - hoa+i4u7i4u8i4u8jIy7kJC2mJivo6OkpaWinJyskpK3jY28iYm/g4PFgYHCf3/BgIDBgYHCgoLBh4e+ - IACGhsaFhcWCgsOAgMOCgsWEhMaFhcONjbyZma2hoaOioqGhoaGhoaGhoaGhoaGhoaCenqSXl66RkbaP - j7mMjLuKirqJibmJibqKirqKirmPj7SWlq2amqicnKWhoaGhoaGioqKioqKioqKhoaOdnaeVlbCKir2D - g8WCgsaDg8WDg8aEhMOMjLqRkbSVlbGbm6qioqGioqKgoKCfn5+fn5+hoaCgoKKWlq2KirmEhMCEhMGH - h8GJicGNjb2MjL6Njb2SkriZmbCenqeioqGioqKioqKioqKioqKjo6KioqSZma+SkraMjL2FhcWCgseD - g8aCgsWDg8WDg8WCgsaHh76UlK2goKChoaCioqKjo6GgoKWamqyZma2QkLaGhsKDg8aEhMKGhr6MjLyL - i7yLi7yKir6NjbqXl62ioqGhoaGhoaGhoaGioqCgoKOZmauWlq6VlbKTk7SOjrqGhsGDg8SFhcWHh8SM - jL+UlLecnK+hoaijo6Ojo6Sjo6Sjo6WkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sj - o6SkpKSmpqampqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6SkpKWlpaWlpaWl - paWkpKSjo6SkpKWlpaWlpaWlpaWlpaWkpKSjo6Sjo6WkpKWlpaWlpaWmpqampqempqempqempqelpaal - paWkpKSkpKSkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSjo6SioqOhoaGioqKjo6Sjo6Sjo6Sjo6Sj - o6SkpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWkpKSkpKSkpKSkpKSjo6SkpKSkpKSlpaWlpaWl - paWlpaWlpaWkpKSjo6Sjo6Sjo6SlpaWmpqampqempqempqempqSgoKiTk7WNjbuMjL2Li8CGhsSCgseC - gsSEhL+JibmJibiKirqLi72Kir6Jib+Li72UlLKgoKahoaSamqyXl7CVlbGWlrGUlK+QkK2KirCEhLl/ - f8J/f8N/f8SAgMeFhcSOjrmTk7WYmLCamq6Xl7CSkrOOjrWGhr2BgcN/f8J/f8CAgMCCgsGBgcKDg8WE - hMOJib6QkLiUlLSWlrGhoaSgoKWbm6uVla+Pj7aKir2JibmKiriHh7iCgr5/f8V/f8WCgsKNjbaVla+W - lrCYmK6fn6Wjo6Shoaifn6uYmLKNjb6FhcWFhcKEhMCGhrmGhrWHh7iLi7qMjLyPj7mQkLiQkLiRkbSX - l6qhoaCfn6WamqyWlrCUlLKOjrmEhMOEhMCBgb+EhLmJibSIiLeFhb6Fhb6EhMGJibyXl62ioqGioqKj - o6OkpKKbm62RkbeNjbqKir2Hh8CCgsaAgMaBgcKFhb2KirmLi7yLi7yLi7yJib6Li7uXl66jo6Ojo6Oh - oaacnKyTk7aIiMGDg8aBgcSAgMJ/f8GAgMGBgcKAgMQgAIWFxoSExYODxIGBw4KCw4aGwo2NupKStZ+f - p6SkoaKio6KioqGhoaGhoaGhoKCgo5ubqZSUsY+PuIuLvIyMvIyMvIuLu4qKu4uLu42Nt5KSsZmZqJyc - pJ2dpKGhoaGhoaGhoaKioaGho5+fpZ2dp5OTtIWFw4KCx4ODxYODxYWFw4qKuZKSs5OTspKSs5iYraKi - oaKioqKioqGhoZ+fn6Cgnp+fopGRs4yMuoqKuomJvImJvoqKvomJwIyMvpKSt5SUtpaWs56eqqKio6Gh - oaKioqKioqKioqKiop+fpZOTtYyMvYWFxIKCyIODx4ODxoODxoSExYSExYaGwo2NuJmZqqCgoKCgoKGh - oKKioaCgpZiYro+PuIWFxISExoWFw4eHvoqKuomJv4mJv4iIv4iIv5GRtp6epqGhoaGhoaGhoaGhoaKi - oJ+fopmZqZiYqpSUso2Nu4iIwoWFxIWFwYaGwoyMvJSUtpqasaGhqqampKOjpKOjpKOjpKOjpKSkpKWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpKOjpKOjpKWlpaamp6amp6amp6ampqWlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaSkpaSkpaOjpKSkpKWlpaWlpaWlpaOjpKOjpKSkpaWlpaWlpaWlpaWlpaSk - pKOjpKSkpKWlpaWlpaWlpaampqamp6amp6amp6amp6WlpaWlpaSkpKSkpKWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaOjpKOjpKKioqGhoaKio6OjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpaWlpaSkpaOjpKWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaOjpKOjpKOjo6Ojo6Wlpaam - p6amp6amp6ampqOjppycq5eXsY+PuYaGwoSExoWFxIaGwYqKuImJuYmJuYqKvIqKvoqKvYyMvJSUtJmZ - raCgpaKio5+fpaCgpJubqpubqpaWq42NsISEu35+w4CAwYGBwoKCw4GBxoeHwJOTsZaWspSUtJycrKKi - ppycq5CQt4KCxIODwYCAwX9/wICAwIGBwoGBwoODw4iIvY2NuJKStpOTtZOTtKGhpZ+fpJ6epZqaqpCQ - tYuLuYqKuomJuoODv35+woGBwYSEwImJuI+Ps5GRs5CQtZOTs5qaq6GhoqWloqKiqJSUtouLwI6OvYyM - vIuLu4iIuIWFt4SEuoeHvYmJv42NvY2NvpCQu5iYsp2dqJ2doKKioJ2dppaWro+Pt4qKvYuLuoqKuIiI - tYiItIeHtoODvICAxoCAxYCAxYWFwY+PtpqaqqKioqKioqOjo6Cgp5mZr5GRuIqKvoODxYSExIODw4WF - vImJt4mJuYuLvIuLvIuLvIuLvJOTtJ+fpaKioaOjpKSko6Cgp5aWs4qKvoaGw4ODxIKCw39/wYCAwYGB - wYKCwCAAhITFhITFhITFg4PFhITAi4u3kZGzmZmroKClo6OioqKjoqKjoqKioaGhoqKfnJynk5OyjY24 - i4u7ioq7ioq7i4u7jIy8i4u9i4u9ioq8jo63lpasnp6joqKgoaGhoaGhoaGhoaGhoaGinZ2nlpawi4u8 - hITEg4PGg4PGhobDjY27kpK0kZGxkZGylpavnZ2no6OhoqKioqKioqKioaGhn5+enZ2hkZGyioq7iYm8 - hobBgoLGg4PFg4PFkJC5kpK4kJC6k5O2nJytpKSkoqKjoaGhoaGho6OhoKCjl5etjIy6hITDg4PGg4PG - goLFgoLFhITFhITFhobDj4+4mZmqnp6koaGhoKCgoaGfnp6kmJitkJC2hITFhYXEhYXFh4fAioq5iIi9 - g4PFhITFgoLHioq9mJisoqKioqKioaGhoaGhoaGhoqKgn5+jmJiskpKykZGyjY24iYm9ioq8ioq7ioq7 - kJC2mJiunZ2soaGqpaWmpaWmo6Oko6Oko6Oko6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpKSlo6Oko6OkpaWlpqanpqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqampKSk - o6OkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6OkpKSkpqampqanpqan - pqanpqanpaWmpaWlpKSlo6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6Oko6Oko6OjoqKioqKio6Ok - paWlpqampqanpqanpqanpqanpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlo6OkpaWlpaWl - paWlpaWlpaWlpaWlpaWlo6Oko6OkoqKjoqKio6OkpaWlpaWlpaWlpKSlo6Oko6Oko6OklpayjY26jIy8 - jIy6ioq5iIi4iYm5iIi7iYm+iorAjIy+k5O2kZG3lpaxn5+no6OioqKjoqKim5uplpasj4+yhYW8gIDE - gIDBgIDBgYHCgYHDgIDFhobAk5Oyk5Oyk5O2oKCqo6OnmZmxkpK2jIy7ioq6hIS/gIDCgIDBgYHCgYHC - iIi7ioq6i4u8i4u9jIy8k5OzoKClpKSin5+lmJirkpKzj4+2jY25hITBgIDDf3/BgoK+ioq5iYm5iYm7 - iYm7iYm8jIy7lJSyoKCko6Ohn5+mk5O1ioq/jIy9jIy9i4u8ioq6hIS9f3/CgYHDgoLFgoLHgoLKi4vA - mZmxoKCqnZ2poKCfl5eojo60i4u4ioq4ioq4iYm4jY2uiYmxgoK9fn7Df3/CgIDEhoa7iYm5ioq7kZGz - np6loqKioqKipKShnJyrkJC5jIy9jIy8ioq7iYm6iIi5h4e4iIi5ioq8i4u9ioq/k5O2n5+ppKSkoqKj - oqKioaGknJyrlpaykZG3i4u+hobDg4PDgYHCgIDBg4O/iIi6IACEhMWEhMWDg8aHh8KNjbiQkLGPj7Ke - nqSjo6CioqOioqOioqOioqOioqKhoaGXl6uNjbiLi7yLi7uMjLqFhcGCgsSDg8WFhcSLi72QkLeVla6e - nqSioqCgoKChoaGhoaGhoaGhoaKdnaaVlbCLi76FhcSEhMWDg8aGhsKOjrqSkrSSkrSSkrKVla2bm6eg - oKKhoaGioqKioqKioqKjo6KgoKKVlaqJibuJibuDg8GBgcWDg8aFhcOPj7iQkLeQkLiPj7uWlrOhoaek - pKWkpKWjo6SioqGgoKKcnKmVlbGMjLyEhMSCgseDg8aDg8WCgsSCgsSCgsaMjLyYmK+fn6WhoaChoaGh - oaGiop+bm6aOjraFhcWFhcSFhcSIiMGJib2Ghr+BgcWCgsSCgseLi7yVlbCdnaejo6GioqKioqKhoaGi - oqCfn6OXl6yQkLSRkbOSkrKMjLeIiLuJibqKiruKiruPj7WZmaydnamfn6mmpqalpaalpaakpKWjo6Sj - o6Sjo6Sjo6SmpqempqempqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6SlpaWmpqempqempqempqem - pqelpaWlpaWlpaWlpaWlpaampqempqempqempqempqakpKSjo6SlpaWlpaWlpaWkpKWjo6Sjo6SlpaWl - paWlpaWlpaWkpKWjo6Sjo6Sjo6Sjo6SkpKSmpqampqempqempqelpaalpaWlpaWkpKWjo6SlpaWlpaWl - paWlpaWlpaWlpaWlpaWlpaWkpKSjo6Sjo6OioqKlpaWmpqempqempqempqempqempqempqelpaalpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6SkpKWlpaWlpaWlpaWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Oi - oqKjo6Sjo6Sjo6Sjo6Sjo6SioqWbm6yVlbSSkrWTk7OPj7WIiLmJibmGhrqHh7uKiryIiMCDg8iEhMaD - g8eJicCXl7ChoaSioqOenqeYmK2RkbOHh76AgMSBgcOBgcKAgMGAgMGBgcGAgMODg8GKirqQkLSXl62i - oqWenqySkreUlLWSkraHh8KCgsSBgcKBgcGBgcGBgcOCgsOCgsWHh8CMjLyNjbuUlLOhoaWkpKGdnamT - k7OOjreNjbmEhMOCgsWBgcSDg72Hh7aJibqCgsGCgsODg8OCgsSFhcKPj7ebm6qioqKhoaSWlrCMjLuO - jrmOjrmMjLyFhcGAgMKAgMOBgcSBgcWAgMeMjLyYmLGenqyfn6ufn6uioqOcnKSTk6uQkK+QkK+Ojq6N - ja2JibKBgb19fcJ+fsF/f8KAgMGHh7yLi7mQkLaYmK+fn6ijo6SioqKjo6Gfn6ebm66amq+UlLWNjbuK - irqIiLiFhbyBgcOCgsSCgsaIiMCQkLiVlbOVlbOcnKyioqOhoaObm6qXl7GRkbiFhcWFhcWDg8SBgcOC - gr2GhreHh7kgAISEx4ODyIiIwoyMvo+Pu5WVtJaWrp6eoqGhoKKioaKioqKio6Kio6Kio6KiopiYq4yM - uIqKu4uLuoaGwIKCwoGBw4KCxIWFwpGRtZeXr56epqGhoaGhoaGhoaCgoKGhoaKioJ+fpJeXq4+PtIiI - vYiIvYeHvoeHvomJvIqKvIuLvouLvomJwZGRtZycpaGhn6GhoaGhoaKioqOjoaKiopycqZGRs4mJuYSE - wYGBxIGBxYaGw42Nu5CQt4+Pt42NuZCQuJubrqamo6SkpaSkpaSkpaSkop6eppOTso6OuIyMu4qKvoeH - woODxYGBxIGBw4GBw4CAxouLvJqaqqOjoaKioqGhoaGhoaGhoZaWrYqKuomJvYiIvoODxIODxYODxIKC - xIKCxYGBxoqKupOTsJ2dpqKioqKioqKioqKioqKioqOjoJubqJCQtJGRs5KSso2NuIqKu4qKu4qKvIuL - vYuLvYyMu5WVrp6epKGhpKOjpaWlpqWlpqWlpqSkpaOjpKOjpKOjpKSkpaWlpqamp6amp6amp6WlpaWl - paWlpaWlpaWlpaWlpaWlpaWlpaampqamp6amp6amp6amp6amp6WlpaWlpaWlpaWlpaWlpaamp6amp6am - p6amp6WlpqSkpaOjpKWlpaWlpaWlpaSkpaOjpKOjpKWlpaWlpaWlpaWlpaWlpaOjpKKioqKio6SkpaWl - paWlpaamp6amp6amp6WlpqWlpaWlpaWlpaOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaSkpaOjpKOj - pKWlpaWlpaampqamp6amp6amp6amp6amp6amp6amp6amp6amp6amp6WlpaWlpaWlpaWlpaWlpaWlpaWl - paOjpKSkpKWlpaWlpaWlpaOjpKOjpKOjpKOjpKOjpKOjpKKioqKioqKioqKioqKioqGho5mZq5mZrJqa - qpWVrI2Ns4eHuoaGuoWFuYeHuYWFvoODxYODyIKCyIWFxYSExo6OuZ2dqKOjopycqZGRtoiIwYODxIKC - xIKCxIGBw4CAwYCAwX9/w4ODwIiIu4qKuZCQspiYqpycp5qarJeXspiYsJiYr4yMvIqKv4iIvoODv39/ - wYCAwoKCxIKCxoiIwIyMuoyMupOTs6CgpaSkoZ+fppWVsYqKvoSExYKCx4GByIaGwImJt4aGt4ODwYGB - woODxISExoWFw4yMu5SUsJubqKKioqGhpJaWsYyMuo6OuIyMu4eHwoKCxICAxICAw4GBxYCAxoqKuJaW - rZycqZ+fqaGhqaWlpaWlpKOjoZiYqY+PsZCQr5CQroqKtIKCvX5+wX5+wX9/wYGBwYKCwomJvo+Pt5aW - sZ+fqqSkpaSkpaOjpKKioZ6epZmZrpWVspSUspOTs42Nt4WFvYCAwYCAwoGBxIKCxIODxYmJwIyMvI2N - vJWVs6KipaSkoJycqI+PuYWFxYWFxoWFxoKCxoWFv4eHuYWFuYaGuSAAioq+iorAjY2/jY2+jo69lpa0 - oaGooqKioKCgoKCgoaGhoqKioqKjo6OioaGjlpawjIy7ioq7hYXBg4PEgoLDgYHDgIDFg4PEkpKznp6n - o6Oio6OioqKioaGhoaGhoKCgoaGgmpqpkJC1ioq5iYm6iYm6j4+zjY21ioq7ioq+iIjAh4fDjo66l5eu - n5+koaGfoKCgoaGhoaGhoKCjnZ2olpawjIy7hYXBgIDEgIDEgoLEhYXDhobCh4fBh4fBioq+lJSxoKCm - paWkpKSlpKSlpKSlpaWkoaGmlJSwiYm8jIy8jY26iIjBg4PGgoLFgoLEgYHEgIDFioq6nJyppaWgoqKi - oqKioqKhn5+jmZmpkJCziIi9g4PCgYHEgYHFgYHFgIDGgoLDi4u4k5OvmZmmoKCio6OhoqKioqKioqKi - oqKio6OgnZ2llJSvkpKyjo63ioq6ioq8i4u9i4u9jIy9jIy8ioq/lJSxn5+jo6OgoqKipKSlpaWmpaWm - paWmpKSlo6Oko6Oko6Oko6OkpaWmpqanpqanpqampaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqanpqan - pqanpqanpqanpqampaWlpaWlpaWlpaWlpaWmpqanpqanpqanpqanpqampKSko6OkpKSlpaWlpaWlpKSl - o6OkpKSkpaWlpaWlpaWlpaWlo6OkoqKjoqKio6OjpaWlpaWlpaWmpqanpqanpqanpqampaWlpaWlpKSl - o6OkpKSlpaWlpaWlpaWlpKSkpaWlpaWlpaWlpKSlpKSlpaWlpaWlpaWmpqanpqanpqanpqanpqanpqan - pqanpqanpqanpqanpqampaWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkpKSkpaWlpaWlpKSlo6Oko6Oko6Ok - oqKjoqKjoqKioqKioqKioqKioqKioqKin5+km5upl5etkJC0iYm5iYm5h4e5h4e2goK8gYHDgYHGgYHG - hITEhobFh4fEjY27mpqspKShoKClkZG1hYXEgoLHg4PEgoLEgoLEgYHCf3/Cg4O/iYm7iYm6ioq6kJCy - mZmpmZmonJyonZ2pmpqvmJiykJC6i4u+hobBgYHCgIDCgIDCgoLEg4PFhYXEh4fBjIy6mJisoqKjpKSh - o6OimpqrjY27iIjAh4e9h4e+ioq5h4e4gIC/gYHCgYHDgoLFg4PGh4fCkJC3lpaumpqooaGio6OhmZms - j4+5jIy8hobDg4PFgYHFgYHEf3/EgIDEioq3kZGvlJStlpatl5eumpqwn5+ro6OopqajnJyrkpKxkpKs - j4+wg4O/f3/Efn7Dfn7BgIDBgYHCgoLDhITEiYm/kpK3m5uvoaGopKSlpKSlpKSim5upkpKylJSylZWx - kZG2iIi+gYHDf3/Df3/BgYHCgIDFhobBiYm+jIy7kZG2lZWzn5+ppKSinp6nk5O0i4u9iIi/iIi/h4e+ - hoa7hoa4hYW5goK/IACIiMCMjL6Njb2MjL+Njb2WlrSlpaWlpaSioqKgoKCgoKCioqKioqOhoaWXl6+P - j7mLi76GhsGCgsWCgsSCgsSAgMWCgsOLi7iVla2hoaKjo6GioqKioqKioqKhoaGhoaCenqKSkrGJib2J - ib2JibqKirmLi7qJib6GhsKGhsOJicCPj7mYmKyfn6WioqOioqGgoKCgoKChoaCgoKSYmK2NjbqEhMOC - gsaCgsWDg8OEhMODg8WCgsaCgsaCgseLi72amquioqKjo6OkpKWkpKWkpKWkpKaenquUlLONjbmMjLuJ - ib6FhcODg8aDg8WCgsWDg8SDg8KNjbObm6Sjo6CioqKioqKioqKfn6SXl62MjLqDg8OAgMaBgcWAgMSA - gMSCgsOIiL2OjrWWlqybm6Ofn5+hoaGioqKioqKioqKjo6GioqKcnKeVla+OjreKiryKiruKiruKir2L - i72MjL2MjL2RkbmdnaykpKSkpKOioqOioqOkpKWlpaalpaalpaakpKWjo6Sjo6Sjo6SkpKWmpqempqem - pqempqalpaWlpaWlpaWlpaWlpaWlpaWlpaWmpqWmpqempqempqempqempqempqempqWlpaWlpaWlpaWm - pqampqempqempqempqempqakpKSkpKSlpaWlpaWlpaWkpKWjo6SkpKWlpaWlpaWlpaWkpKWkpKWjo6Oj - o6Ojo6SkpKWlpaWmpqampqampqampqalpaWlpaWlpaWkpKSkpKSkpKSkpKWkpKWjo6SkpKWlpaWlpaWl - paWlpaWlpaWlpaWlpaWmpqWmpqampqempqempqempqempqempqempqempqempqempqalpaWlpaWlpaWl - paWlpaWlpaWkpKSkpKSkpKSlpaWlpaWkpKWjo6WioqOioqKioqKioqKioqKioqKioqKioqKioqKjo6Gc - nKmQkLaJib6Jib6JibqJibiEhLx/f8F+fsSBgcSDg8OFhcOIiMKOjruUlLWbm6yjo6KhoaSYmK6Li76E - hMWDg8WDg8WCgsSAgMOCgr6Hh7mJibqKiruPj7WUlK+Xl6yXl6ybm6ednaeUlLOQkLmLi72GhsGCgsWA - gMSAgMKAgMGCgsSEhMWCgsiFhcSSkrSdnaahoaOgoKSioqOenqiRkbWOjrqMjLmMjLiHh7qBgcB/f8KB - gcGBgcOCgsWDg8aGhsSJicCMjLuSkrOdnaajo5+cnKiNjbqFhcSCgseBgceAgMd/f8eAgMGIiLWSkq6K - irmJib2Kir2Jib6Li7+QkLqbm6+lpaahoaqXl7CRkbCLi7aBgcKAgMOAgMF/f8F/f8GBgcKBgcSBgcmJ - icCRkbaUlLWYmLKjo6akpKWmpqSenqmUlLCSkrGPj7WHh7+CgsSBgcOAgMF/f8GAgMOEhMCJibuMjLuN - jbmQkLaRkbeWlrKhoaehoaSamqqUlLCNjbWKirmIiLqGhrmEhLqBgb+BgcMgAIWFw4qKv42NvY2NvZGR - uZmZsaSkpqampaSkpKGhoaCgoKCgoKKiop2dp5CQt4qKwIeHwoKCxoODxIODxIKCxYSEwoyMuZaWrpmZ - qKCgoqKioaKioqKioqKioqGhoaKioJycppCQs4uLuY2NuYuLu4mJvYSExYKCx4ODxoaGwo2NupmZrZ+f - paKio6Kio6Kio6GhoqCgoKGhn6CgopaWr4iIwIKCx4SExYSExYSExISExIODxYODxYODxYWFwpKStJ+f - paSkoKKioqOjo6SkpaSkpJ6eq5WVtZKSt5KStYqKvoSExYODxoODxYODxYODxYaGwoyMuZaWqZ2dn6Cg - n6GhoaKioqCgpZiYrouLu4KCxYGBxoGBxYGBxYODwYODwYSEv4iIuoiIvJOTrpycpKCgn6GhoKGhoaKi - oqKioqGho5ycqJWVsI+PuIqKvIuLvIuLvIqKu4qKu4qKvYyMvZGRuJ2dq6WlpaampaWlpaSkpaKioqKi - o6OjpKWlpqWlpqWlpqSkpaOjpKOjpKOjpKSkpaWlpqamp6amp6WlpqWlpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaampqamp6amp6amp6amp6amp6WlpqWlpaWlpaWlpaampqamp6amp6amp6amp6ampqSkpKOjpKSk - paWlpaWlpaSkpKOjpKOjpaSkpaWlpaWlpaWlpaWlpaWlpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWl - paWlpaWlpaWlpKOjpKOjpKOjpKOjpKOjpKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaampqamp6am - p6amp6amp6amp6amp6amp6amp6amp6Wlp6WlpqWlpaWlpaWlpaWlpaWlpaSkpaOjpKSkpaWlpaWlpaWl - paOjpKKio6KioqKioqKioqKioqKioqKioqKioqKiop+fppOTso+PuI+Pt4uLuoaGvYCAxH5+w4CAwoKC - woWFwYeHwo6Ou5OTtpaWspmZrZ+fp6Kio56eppOTs4eHwYODx4ODxoKCxYSEwYaGuYeHt4mJuI+PtZOT - sI+PtY+Pto2Nt5KSsJiYq5GRtIiIv4WFwoGBxICAxIGBxIGBw4CAwYGBwoKCxoWFxIyMu5SUs5mZrZiY - rpiYrZ+fpaCgppaWsJCQt42NvIqKvYODwn9/w4CAwYCAwYGBwoKCw4ODxYSExYKCx4ODxoyMvJmZq6Ki - oJ2dppCQtoaGwYeHv4iIwIeHwISEwIiIt4+Pq4qKt4GBxYKCyYODyIKCyIODyIWFxZOTtqKiqKSkppqa - r4+PuYaGwIGBwoGBwYGBwYCAwX9/wYGBwoGBxYWFwZCQtpSUspKStZeXsqOjpqSkpaSkpaOjppycq5CQ - tIWFvoCAxICAxIGBwoCAwn9/woSEv4qKuoyMu42NvI2Nu4yMvIuLvZSUtKCgp6Wlop6eqJWVsY+PtIuL - uYiIvIWFvIKCv4CAw4CAwiAAi4u7i4u9jY29kpK3mpqvoKCqpaWlpaWlpaWlpKSkoqKioKCgoaGhnZ2m - kpK0h4fCgoLHhITFhITFhITFg4PHioq+kpK2k5O0mZmon5+hoaGgoqKioqKioqKioqKin5+jm5unlpas - kpKwjo62iIi/g4PGg4PGhITFh4fDjIy8k5O0mJiuoKClo6OioqKjoqKjoqKjoaGhoKChm5unkJC0h4fA - hYXFhYXEhYXEg4PFg4PFhITFhITFh4fBjo64m5uroqKjoqKhoqKioqKio6Oko6OkmZmvkpK3k5O2kZG4 - hITFgoLGg4PFg4PFg4PFh4fCjY26mJisn5+in5+enp6en5+foqKimpqri4u8goLGgoLGgoLFgoLFg4PD - iIi8iIi7hYW9hYW9h4e9lJSunp6ioaGfoKCgoKCgoaGhoqKhnJyolZWxjo65ioq+i4u8jIy9jIy9jIy9 - i4u8i4u6kJC2m5uso6OkpaWkpaWlpaWlpaWlo6OkoqKioqKjpKSlpaWmpaWmpaWmo6Oko6Oko6Oko6Oj - o6OjpaWmpqanpqanpaWmpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpqanpqanpqampaWl - paWlpaWlpaWlpaWmpqanpqanpqanpqanpqampKSko6OkpaWlpaWlpaWlpKSko6OkpKSkpaWlpaWlpaWl - paWlpaWlpKSlo6Oko6OkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpKSlo6Oko6Oko6Oko6Oko6Ok - pKSkpaWlpaWlpaWlpaWlpaWlpaWlpaWlpaWlpqanpqanpqanpqanpqanpqanpqanpqanpqanpqanpqam - paWlpaWlpaWlpaWlpaWlpaWlpKSlo6OkpaWlpaWlpaWlpKSlo6OjoqKioqKioqKioqKioqKioqKioqKi - oqKio6OhoKClnp6nnJypkZG1g4PFgoLFgYHEgYHCg4PAh4e+jY27j4+5jo65jY28kZG4m5uto6OjpKSh - mpqtioq9g4PFhYXDhYXCioq7iYm5hoa4iYm0j4+xjY22hITCgoLDg4PFi4u5lpaqlpauiIi/hITGgoLF - gYHEgYHEgoLEgYHCgYHDgoLFjIy7kpK1jY28jY29jIy+kJC4nZ2po6OhnJyplZWxjY28hYXFgoLFgoLC - gYHCgIDBgIDBgIDCg4PEhITFhITGhYXEjo65m5uqoqKhn5+imZmplJSvk5OxkpKxk5Oxk5Owj4+viIi2 - fn7EgIDEg4PFhITGhITGhYXFiIjCk5O2oaGopqajnZ2tjo69g4PGg4PDgYHCgYHCgYHCgIDBgIDBg4O/ - j4+ylJSxk5OzlpavnJyppKSlpKSlpKSlpqajoaGokJC4goLGgYHFgYHDgYHDgYHBgoK+iYm4iYm8ioq/ - i4vAi4vAjIy9j4+6mZmuoKCnpKSjn5+pkpK3ioq9iYm+iIi+g4PCgIDEgYHBgYG/IACNjb2MjL6RkbmZ - mbGgoKmkpKWlpaWlpaWlpaWlpaWkpKSioqGgoKCbm6eRkbaHh8KDg8aEhMWEhMWEhMaFhcaEhMeHh8SQ - kLmamqqgoKKhoaCgoKChoaGioqKioqKcnKmamqmWlq2Pj7WHh72CgsWEhMWEhMaHh8KKir6Li72MjLyS - krWfn6ajo6KioqOioqOioqOioqOdnaeQkLOGhsCCgsSDg8ODg8ODg8WEhMWEhMWEhMWGhsKNjbmUlLGe - nqSioqCioqKioqKioqKioqKioqOdnaqYmLGTk7eMjL6FhcWDg8aDg8WDg8WGhsOMjLyWlrCdnaegoKKh - oaCfn5+enp6goKCWlq+Hh8GCgsiDg8aCgsWDg8WJibyIiL2Ghr6Fhb6GhryOjrSZmaWfn6CgoKCgoKCg - oKCgoKCioqCYmK2OjrmLi72Li7yLi72Njb6Njb6Njb6MjL+QkLeamqibm6qhoaWjo6OkpKSlpaWlpaWl - paWjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6OioqKjo6SmpqempqempqempqalpaWlpaWjo6Sj - o6SkpKWlpaWlpaWlpaWmpqempqempqempqempqempqelpaWlpaWlpaWlpaWlpaampqempqempqempqem - pqakpKSjo6SlpaWlpaWlpaWkpKWjo6Sjo6SlpaWmpqempqempqempqalpaWjo6Sjo6SkpKWlpaWlpaWl - paWlpaWlpaWlpaWkpKSjo6Sjo6Sjo6Sjo6Sjo6Sjo6Sjo6SkpKSlpaWlpaWlpaWlpaWlpaWlpaWlpaWl - paWmpqempqempqempqempqempqempqempqempqempqempqelpaWlpaWlpaWlpaWlpaWlpaWlpaWjo6Sk - pKWlpaWlpaWlpaWjo6SioqOioqOioqOioqOioqKioqKioqKioqKioqKjo6GgoKSXl66Li72GhsKDg8KC - gsCEhL2Li7ePj7SGhsKEhMaDg8eKisCZma+kpKOkpKOXl6+NjbqKir6Li72KiryJibqJibmGhriGhreG - hruEhL+FhcGFhcKHh7+RkbKcnKWbm6aPj7eFhcOCgsaDg8WCgsSCgsSBgcOAgMOHh72MjLuNjb6MjL6M - jL6Li7+QkLqcnKukpKCgoKSYmK6MjLuFhcSEhMaDg8WCgsOBgcKAgMGBgcKCgsOEhMWEhMaFhcSRkbef - n6ajo6GioqGfn6OYmKuSkrKRkbGRkbGRka+KirZ/f8N/f8GAgMODg8aFhcaEhMeHh8SVlbWamq2hoaam - pqKgoKqRkbqFhcaFhcSDg8SBgcSBgcOAgMKBgcCPj7CRkbCRkbOWlq+bm6ubm6qioqOkpKSkpKWlpaSg - oKmSkriFhcWDg8WCgsWBgcSDg7+IiLeHh7mDg8KDg8WEhMaHh8SQkLucnK6enqydnauhoaahoaaVlbKJ - icCJib6FhcOCgsWBgcSCgsCGhrYgAA== - - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/AboutBckgnd_370x209.bmp b/PROMS/ReferencedObjectsOld/LibSource/Utils/AboutBckgnd_370x209.bmp deleted file mode 100644 index 21c5ce49..00000000 Binary files a/PROMS/ReferencedObjectsOld/LibSource/Utils/AboutBckgnd_370x209.bmp and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/Utils/AssemblyInfo.cs.bak deleted file mode 100644 index a9833df8..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/AssemblyInfo.cs.bak +++ /dev/null @@ -1,57 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/CurSet.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/CurSet.cs deleted file mode 100644 index 801663ac..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/CurSet.cs +++ /dev/null @@ -1,185 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: CurSet.cs $ $Revision: 2 $ - * $Author: Jsj $ $Date: 5/17/05 11:51a $ - * - * $History: CurSet.cs $ - * - * ***************** Version 2 ***************** - * User: Jsj Date: 5/17/05 Time: 11:51a - * Updated in $/LibSource/Utils - * cleanup - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:34a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; -using System.IO; -using System.Collections; -using System.Text; -using System.Windows.Forms; - -namespace Utils -{ - /// - /// Summary description for CurSet. - /// - public class CurSet - { - public string PathName; - public string DefaultDestFName; //[MAXPATH] - public string DefaultPlantFmt; //[10]; - public string DefaultPrinter; //[4]; - public ArrayList DefaultUserCBMsg; //[2][10]; - public string DefaultUserFmt; //[3]; - public ArrayList DefPenColors; //[8] - public short DefaultChangeBars; - public short DefaultDestination; - public short DefaultOriginals; - public short DefaultPagination; - public short DefaultPaperMacro; - public short DefaultPlotterType,DefaultPlotterPort,DefaultCIEType; - public short DontPrintStatusTree; - public short DisableDuplexPrinting; - - private string[] SettingFiles={"..\\procs\\curset.dat", "~curset.dat"}; - - public CurSet(string pname) - { - PathName = pname; - - } - - public bool Create(UserRunTime usrRT) - { - // find file to copy from procs or system. - bool found = false; - int i=0; - while(found==false) - { - if (File.Exists(usrRT.ExeAdjust(SettingFiles[i])) == true) - found=true; - else - i++; - } - if (found==false) return false; - File.Copy(usrRT.ExeAdjust(SettingFiles[i]),"curset.dat"); - PathName = "curset.dat"; - return true; - } - - private string ReadTheString(BinaryReader bw, int maxlen) - { - StringBuilder retStr = new StringBuilder(maxlen+1); - // read a series of characters until a null is found. - char ac; - bool done = false; - while(done==false) - { - ac = bw.ReadChar(); - if (ac=='\0') - done=true; - else - retStr.Append(ac); - } - return retStr.ToString(); - } - - public bool Read() - { - BinaryReader br; - ArrayList DefaultUserCBMsg = new ArrayList(2); - ArrayList DefPenColors = new ArrayList(8); - FileStream fs; - FileInfo fi = new FileInfo(PathName); - try - { - fs = fi.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite ); - br = new BinaryReader(fs,System.Text.ASCIIEncoding.ASCII); - } - catch (Exception e) - { - MessageBox.Show(e.ToString(),"CURSET.DAT Error"); - return false; - } - - try - { - DefaultDestination=br.ReadSByte(); - DefaultChangeBars= br.ReadSByte(); - DefaultOriginals=br.ReadSByte(); - DefaultPagination=br.ReadSByte(); - DefaultPrinter = ReadTheString(br,4); - DefaultPlantFmt = ReadTheString(br,10); - DefaultDestFName = ReadTheString(br,128); - DefaultPlotterType = br.ReadSByte(); - DefaultPlotterPort = br.ReadSByte(); - DefaultCIEType = br.ReadSByte(); - short tmp; - for (int i=0;i<8;i++) - { - tmp = br.ReadSByte(); - DefPenColors.Add(tmp); - } - - DefaultPaperMacro = br.ReadSByte(); - string stmp; - stmp = ReadTheString(br,10); - DefaultUserCBMsg.Add(stmp); - stmp = ReadTheString(br,10); - DefaultUserCBMsg.Add(stmp); - DontPrintStatusTree = br.ReadSByte(); - DefaultUserFmt = ReadTheString(br,10); - DisableDuplexPrinting = br.ReadSByte(); - br.Close(); - } - catch(Exception e) - { - if(br!=null) br.Close(); - } - fs.Close(); - return true; - } - - public bool Save(string filename) - { - // may be a different pathname, if so, change it. - if (filename.ToUpper() != PathName.ToUpper()) PathName = filename; - - FileStream fs = new FileStream(PathName, FileMode.Create); - BinaryWriter w = new BinaryWriter(fs); - - w.Write(DefaultDestination); - w.Write(DefaultChangeBars); - w.Write(DefaultOriginals); - w.Write(DefaultPagination); - w.Write(DefaultPrinter); - w.Write(DefaultPlantFmt); - w.Write(DefaultDestFName); - w.Write(DefaultPlotterType); - w.Write(DefaultPlotterPort); - w.Write(DefaultCIEType); - w.Write((short)DefPenColors[0]); - w.Write((short)DefPenColors[1]); - w.Write((short)DefPenColors[2]); - w.Write((short)DefPenColors[3]); - w.Write((short)DefPenColors[4]); - w.Write((short)DefPenColors[5]); - w.Write((short)DefPenColors[6]); - w.Write((short)DefPenColors[7]); - w.Write(DefaultPaperMacro); - w.Write((string)DefaultUserCBMsg[0]); - w.Write((string)DefaultUserCBMsg[1]); - w.Write(DontPrintStatusTree); - w.Write(DefaultUserFmt); - w.Write(DisableDuplexPrinting); - w.Close(); - fs.Close(); - return true; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/DTI.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/DTI.cs deleted file mode 100644 index c979ef93..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/DTI.cs +++ /dev/null @@ -1,139 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: DTI.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 3/08/05 1:46p $ - * - * $History: DTI.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:46p - * Created in $/LibSource/Utils - * Approval - *********************************************************************************************/ -using System; -using System.Text; - - -namespace Utils -{ - /// - /// Summary description for DTI. - /// - public class DTI - { - public static string DateTimeInit; - public static string SetDateTimeInit; - public static string Initials; // set from the user's run time. - - public static string CurDate(string delim) - { - DateTime dt = DateTime.Today; - - StringBuilder sdt = new StringBuilder(11); - if (delim == null || delim == "") delim = "-"; - sdt.Append(dt.Month.ToString("D2")); - sdt.Append(delim); - sdt.Append(dt.Day.ToString("D2")); - sdt.Append(delim); - sdt.Append(dt.Year.ToString("D2")); - return sdt.ToString(); - } - - public static string CurTime() - { - DateTime dt = DateTime.Now; - StringBuilder sdt = new StringBuilder(11); - sdt.Append(dt.Hour.ToString("D2")); - sdt.Append(":"); - sdt.Append(dt.Minute.ToString("D2")); - sdt.Append(":"); - sdt.Append(dt.Second.ToString("D2")); - return sdt.ToString(); - } - - // ovrride == 0 default, don't do anything different - // ovrride == 1 means simply override "super" - // ovrride == 2 means force a reset of the DTI - public static void UpdateDateTimeInit(int ovrride) - { - StringBuilder ldti = new StringBuilder(19); - if (ovrride != 2 && (ovrride!=0 || Initials!="super")) - { - string tptr = CurDate(null); - ldti = new StringBuilder(12); - ldti.Insert(0,tptr.Substring(6,4)); - ldti.Insert(4,tptr.Substring(0,2)); - ldti.Insert(6,tptr.Substring(3,2)); - ldti.Insert(8,CurTime().Substring(0,5)); - ldti.Insert(13,Initials.PadRight(5,' ').Substring(0,5)); - } - else - ldti.Insert(0,DTI.SetDateTimeInit); - - // for dbase, replace spaces with '0' in date/time part & shift any non-number - // in first time field back to end of time field (?not sure why - this was - // done in 16-bit code. - for (int i=0;i<13&&ldti[i]!=0;i++) if (ldti[i]==' ') ldti[i]='0'; - char c = ldti[10]; - if (!Char.IsDigit(c)) - { - ldti[10]=ldti[11]; - ldti[11]=ldti[12]; - ldti[12]=c; - } - - if (ldti.ToString().Substring(0,8).Equals("19800101")) - { - ldti.Insert(0,SetDateTimeInit.Substring(0,13)); - } - DateTimeInit = ldti.ToString(); - } - - // MakeDate is passed a date in the form of YYYYMMDD and translates it - // into MM/DD/YY (if ShortYear is true) or MM/DD/YYYY. condense - // removes any leading ' ' or 0 in month or day. - public static string MakeDate(string src, bool condense, bool ShortYear) - { - int[] DateOffset={4,5,47,6,7,47,2,3}; // 47 = '/' - StringBuilder datebuff = new StringBuilder(12); - for (int i=0; i - /// Summary description for DirSpace. - /// - public class DirSpace - { - static DirSpace() - { - } - - [DllImport("kernel32.dll", CharSet=CharSet.Auto, SetLastError=true)] - public static extern bool GetDiskFreeSpaceEx( - [MarshalAs(UnmanagedType.LPTStr)] string lpDirectoryName, - ref long lpFreeBytesAvailable, - ref long lpTotalNumberOfBytes, - ref long lpTotalNumberOfFreeBytes); - - public static long Free() - { - string curdir = Environment.CurrentDirectory; - long freeBytes = new long(); - long totalFreeBytes = new long(); - long totalBytes = new long(); - - bool x = GetDiskFreeSpaceEx(curdir, ref freeBytes, ref totalFreeBytes, ref - totalBytes); - return totalFreeBytes; - } - - private static long DirSize(DirectoryInfo d) - { - long Size = 0; - // Add file sizes. - FileInfo[] fis = d.GetFiles(); - foreach (FileInfo fi in fis) - { - Size += fi.Length; - } - // Add subdirectory sizes. - DirectoryInfo[] dis = d.GetDirectories(); - foreach (DirectoryInfo di in dis) - { - Size += DirSize(di); - } - return(Size); - } - - public static long Get(string TheDirectory) - { - DirectoryInfo d = new DirectoryInfo(TheDirectory); - return DirSize(d); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/FmtFiles.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/FmtFiles.cs deleted file mode 100644 index 3a19b53a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/FmtFiles.cs +++ /dev/null @@ -1,75 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: FmtFiles.cs $ $Revision: 2 $ - * $Author: Jsj $ $Date: 5/17/05 11:51a $ - * - * $History: FmtFiles.cs $ - * - * ***************** Version 2 ***************** - * User: Jsj Date: 5/17/05 Time: 11:51a - * Updated in $/LibSource/Utils - * cleanup - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:34a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; -using System.IO; -using System.Windows.Forms; - -namespace Utils -{ - /// - /// Summary description for FmtFiles. - /// - public class FmtFile - { - public string FmtFileName; - public FmtFile(string fname) - { - if (fname.IndexOf(".fmt",0) > -1) - FmtFileName = fname; - else - FmtFileName = fname + ".fmt"; - } - - public string GetFormatTitle(UserRunTime usrRT) - { - string fmtpath = usrRT.syspath + "\\format\\" + FmtFileName; - FileStream fs; - FileInfo fi = new FileInfo(fmtpath); - try - { - fs = fi.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite ); - } - catch (Exception e) - { - MessageBox.Show(e.ToString(),"Format File Read Error"); - return null; - } - - BinaryReader bw = new BinaryReader(fs,System.Text.ASCIIEncoding.ASCII); - - ushort len; - len = bw.ReadUInt16(); - string retTitle = null; - if (len > 1) - retTitle = new string(bw.ReadChars(len-1)); // -1: remove the null - else - retTitle = "Format not found"; - - return retTitle; - } - } - - public class DocFile - { - public DocFile() - { - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/MenuXML.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/MenuXML.cs deleted file mode 100644 index f2e8ca95..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/MenuXML.cs +++ /dev/null @@ -1,58 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: MenuXML.cs $ $Revision: 2 $ - * $Author: Jsj $ $Date: 5/17/05 11:52a $ - * - * $History: MenuXML.cs $ - * - * ***************** Version 2 ***************** - * User: Jsj Date: 5/17/05 Time: 11:52a - * Updated in $/LibSource/Utils - * cleanup - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:34a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; -using System.Xml; -using System.IO; -using System.Windows.Forms; - -namespace Utils -{ - /// - /// This class reads in an xml menu file, as input and creates an XmlDocument from it. - /// - public class MenuXML - { - private string menuFileName; - private XmlDocument xmlDoc; - public MenuXML(string fn) - { - menuFileName = fn; - try - { - xmlDoc = new XmlDocument(); - XmlTextReader reader = new XmlTextReader(fn); - xmlDoc.Load(reader); - reader.Close(); - } - catch (Exception e) - { - MessageBox.Show(e.Message.ToString(),"XML Menu Error"); - - } - - } - - public XmlDocument GetXmlDoc() - { - return xmlDoc; - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/PrivateProfile.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/PrivateProfile.cs deleted file mode 100644 index a6994172..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/PrivateProfile.cs +++ /dev/null @@ -1,256 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: PrivateProfile.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:34a $ - * - * $History: PrivateProfile.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:34a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; -using System.IO; -using System.Xml; -namespace Utils -{ - /// - /// PrivateProfile opens a private profile string and stores it's contents in an xml document. - /// - public class PrivateProfile - { - private string ppName; - private XmlDocument ppXml; - private XmlNode AddNode(XmlNode xParent, string sName, string sValue ) - { - XmlNode nd; - // Add a node - nd=xParent.OwnerDocument.CreateNode(System.Xml.XmlNodeType.Element,sName,""); - xParent.AppendChild(nd); - nd.Value=sValue; - return nd; - } - private XmlNode AddNode(XmlNode xParent, string sName) - { - XmlNode nd; - // Add a node - nd=xParent.OwnerDocument.CreateNode(System.Xml.XmlNodeType.Element,sName,""); - xParent.AppendChild(nd); - return nd; - } - private void AddAttribute(XmlNode xParent, string sName, string sValue ) - { - XmlNode xa=xParent.Attributes.GetNamedItem(sName); - // bug fix. 09/15/03 - // If there was a space after an equal sign, that space character - // was becomming part of the value string (reading the user.CFG file). - // This was giving us a "Must have semi-colon" error message. - // We now strip spaces before and after any Attribute that is written. - sValue = sValue.Trim(' '); - - // Add an attribute - if(sValue=="") - { - if(xa != null) - { - xParent.Attributes.RemoveNamedItem(sName); - } - } - else - { - if(xa == null) - { - xa = xParent.OwnerDocument.CreateNode(System.Xml.XmlNodeType.Attribute ,sName,""); - xParent.Attributes.SetNamedItem(xa); - } - xa.Value=sValue; - } - - } - private XmlNode AddSection(XmlNode xParent, string sSection ) - { - // Add a section [name] - XmlNode nd =AddNode(xParent,"section"); - AddAttribute(nd,"name",sSection.Substring(1,sSection.IndexOf("]")-1)); - return nd; - } - private XmlNode AddSection_UC(XmlNode xParent, string sSection ) - { - // Add a section [name] - string name_uc = sSection.Substring(1,sSection.IndexOf("]")-1).ToUpper() + "__UC"; - XmlNode nd =AddNode(xParent,"sectionUC"); - AddAttribute(nd,"name",name_uc); - return nd; - } - private void AddComment(XmlNode xParent, string sComment) - { - - if(xParent.ChildNodes.Count > 0) - { - XmlNode ndlast=xParent.ChildNodes.Item(xParent.ChildNodes.Count-1); - if(ndlast.Name=="comment") - { - XmlNode xa = ndlast.Attributes.GetNamedItem("text"); - xa.Value=xa.Value + "\r\n" + sComment; - return; - } - } - // Add a comment text - XmlNode nd =AddNode(xParent,"comment"); - AddAttribute(nd,"text",sComment); - } - private void AddLine(XmlNode xParent, string sLine) - { - // Add a comment text - XmlNode nd =AddNode(xParent,"line"); - AddAttribute(nd,"text",sLine); - } - private void AddParam(XmlNode xParent, string sParam) - { - int i = sParam.IndexOf("="); - // add a param name=value - string sName=sParam.Substring(0,i); - string sValue=sParam.Substring(i+1); - XmlNode nd =AddNode(xParent,"param"); - sName = sName.Trim(' '); - AddAttribute(nd,"name",sName); - AddAttribute(nd,"value",sValue); -// AddAttribute(nd,"srchname",sName.ToUpper()+"__UC"); -// AddAttribute(nd,"value",sValue); - } - private void AddParam_UC(XmlNode xParent, string sParam) - { - int i = sParam.IndexOf("="); - // add a param name=value - string sName=sParam.Substring(0,i); - string sValue=sParam.Substring(i+1); - XmlNode nd =AddNode(xParent,"paramUC"); - sName = sName.Trim(' '); - AddAttribute(nd,"name",sName.ToUpper()+"__UC"); - AddAttribute(nd,"value",sValue); - } - private void LoadXML() - { - string sLine; - ppXml.LoadXml("");// initialize ppXml - XmlNode xmlTop=ppXml.DocumentElement; - XmlNode xmlNd=ppXml.DocumentElement; - XmlNode xmlNd_UC=ppXml.DocumentElement; - StreamReader myReader = new StreamReader(ppName);// Open file - while( (sLine = myReader.ReadLine())!= null)// read line-by-line - { - // add structure - if(sLine.Length > 0) - { - switch (sLine.Substring(0,1)) - { - case "[": - xmlNd=AddSection(xmlTop, sLine); - xmlNd_UC=AddSection_UC(xmlTop, sLine); - break; - case ";": - AddComment(xmlNd, sLine); - break; - default: - if(sLine.IndexOf("=") >= 0) - { - AddParam(xmlNd, sLine); - AddParam_UC(xmlNd_UC, sLine); - } - else - { - AddLine(xmlNd, sLine); - } - break; - } - } - } - myReader.Close(); - // close file - } - public PrivateProfile(string sFileName) - { - ppName=sFileName; // Store file name - ppXml= new XmlDocument();// Allocate XML - LoadXML();// Load XML - } - ~PrivateProfile() - { - // Clean-up - // - } - public string PrettyNode(XmlNode nd,int level) - { - string retval=""; - string prefix=new string(' ',level*2); - if(nd.ChildNodes.Count > 0) - { - retval = prefix + "<" + nd.Name; - for(int i=0;i"; - for(int i=0;i"; - } - else - { - retval = prefix + "<" + nd.Name; - for(int i=0;i"; - } - return retval; - } - public string PrettyXML() - { - return PrettyNode(ppXml.DocumentElement,0); - } - public XmlDocument XML() - { - // return XML Document - return ppXml; - } - public override string ToString() - { - // return string - return ""; - } - public void Save() - { - SaveAs(ppName); - } - public void SaveAs(string sName) - { - } - public string Attr(string sPath) - { - string retval=""; - XmlNode xn = ppXml.SelectSingleNode(sPath); - if(xn != null) - { - string quots = xn.Value; - if (quots.Substring(0,1)=="\"" && quots.Substring(quots.Length-1,1)=="\"") - retval = quots.Substring(1,quots.Length-2); - else - retval=xn.Value; - } - return retval; - } - - public string Attr(string sSection, string sParameter) - { - string findstr = "/ini/sectionUC[@name='" + sSection.ToUpper() + "__UC']/paramUC[@name='" + sParameter.ToUpper() + "__UC']/@value"; - return Attr(findstr); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/Security.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/Security.cs deleted file mode 100644 index 30942424..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/Security.cs +++ /dev/null @@ -1,622 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: Security.cs $ $Revision: 4 $ - * $Author: Jsj $ $Date: 5/17/05 11:52a $ - * - * $History: Security.cs $ - * - * ***************** Version 4 ***************** - * User: Jsj Date: 5/17/05 Time: 11:52a - * Updated in $/LibSource/Utils - * cleanup - * - * ***************** Version 3 ***************** - * User: Kathy Date: 1/24/05 Time: 2:44p - * Updated in $/LibSource/Utils - * B2005-004 fixes - * - * ***************** Version 2 ***************** - * User: Kathy Date: 1/14/05 Time: 10:38a - * Updated in $/LibSource/Utils - * B2004-061: fix security options - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:34a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; -using System.IO; -using System.Collections; -using System.Windows.Forms; -using System.Text; - -namespace Utils -{ - /// - /// Summary description for Security. - /// - public class Security - { - public const long VIEW =0x00000001L; - public const long PRINT =0x00000002L; - public const long PRINTDRAFT =0x00000004L; - public const long PRINTCHANGES =0x00000008L; - public const long EDIT =0x00000010L; - public const long SEARCH =0x00000020L; - public const long STANDARDSTEPS =0x00000040L; - public const long APPROVE =0x00000080L; - public const long APPROVESINGLE =0x00000100L; - public const long LIBRARYDOCS =0x00000200L; - public const long ADDMODDEL =0x00000400L; - public const long CLEAN =0x00000800L; - public const long LOCKPROC =0x00001000L; - public const long LOCKSET =0x00000001L; - public const long UCF =0x00000002L; - public const long LOCKSYSTEM =0x00000001L; - public const long DOCMAINT =0x00000002L; - public const long ROEDITOR =0x00000004L; - public const long SYSADMIN =0x00000008L; - - public const int SUPERUSER =1000; - public const long SUPERACCESS =0xFFFFFFFFL; - - // the following four flags are system security options, - // read in for the user from the security file (vesam.opt) - private bool BlockAccessFlag=false; - public bool PermissionToManageFlag=false; - public bool SystemAdminFlag=false; - public bool PermissionToLockFlag=false; - -// private string optFileName; - private int numsets = 0; - private long uoptions; // user options - private Int16 blockAccess = 0; - private long oldpos; - public int userid = -1; -// private int plantid = -1; -// private int procid = -1; - private string ident; - public string initials; - private const string samoptname = "vesam.opt"; - public string optfilename; - private ArrayList psets; // - public FileStream fs; - public BinaryReader bw; - public bool isDemoMode=false; - - public Security(string pathname) - { - if (File.Exists(pathname + "\\" + samoptname) == false) - { - MessageBox.Show("Could not locate the Security Options file:\n\n" + pathname+"\\"+samoptname,"Security Access Error"); - optfilename = null; - return; - } - optfilename = pathname + "\\" + samoptname; - psets = new ArrayList(); - } - - public bool OpenFile() - { - try - { - fs = new FileStream(optfilename,FileMode.Open,FileAccess.Read,FileShare.Read,1,false); - bw = new BinaryReader(fs); - return true; - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Security File"); - return false; - } - } - - public void CloseFile() - { - bw.Close(); - fs.Close(); - bw=null; - fs=null; - } - - public int CheckUserId(string Name, string Pass) - { - // check for default superuser username/password. - if ((Name=="vlnmsp") && (Pass=="575")) - { - userid = SUPERUSER; - ident = "vlnmsp"; - initials = Name; - return userid; - } - - if (bw==null) - { - bool op; - if ((op = OpenFile()) == false) return -1; - } - byte x; - // read past some header stuff. - for (int jj=0;jj<16;jj++) - x=bw.ReadByte(); - long nxtUs; - uint nmUser; - nxtUs=bw.ReadUInt32(); - nmUser=bw.ReadUInt16(); - - int uid, tmp; - string fName, fPass; - for (int i = 0; i < nmUser; i++) - { - fs.Seek((long)nxtUs,SeekOrigin.Begin); - nxtUs=bw.ReadUInt32(); - uid = bw.ReadUInt16(); - tmp = bw.ReadUInt16(); - byte [] test = new byte[10]; - test = bw.ReadBytes(10); - fName = Encoding.ASCII.GetString(test,0,10); - int indx = fName.IndexOf("\0"); - string fNameTrim = fName.Substring(0,indx); - if (fNameTrim == Name) - { - test = bw.ReadBytes(10); - fPass = Encoding.ASCII.GetString(test,0,10); - indx = fPass.IndexOf("\0"); - string fPassTrim = fPass.Substring(0,indx); - if (fPassTrim == Pass) - { - userid = uid; - ident = Name; - initials = Name; - break; - } - } - } - CloseFile(); - - return userid; - } - - public void SetUserSystemRights() - { - BlockAccessFlag=BlockAccess(); - long userAccessFlags=GetUserSecurity(); - PermissionToManageFlag=(userAccessFlags&Security.DOCMAINT)==0?false:true; - PermissionToLockFlag=(userAccessFlags&Security.LOCKSYSTEM)==0?false:true; - SystemAdminFlag=(userAccessFlags&Security.SYSADMIN)==0?false:true; - } - - public void LoadUserSecurity() - { - // - // get the system level security options for this user here - // - bool op = OpenFile(); - if (op==false) return; - - if( userid == 1000 ) - { // super user priviledge - uoptions = 0xFFFFFFFFL; - SetUserSystemRights(); - CloseFile(); - return; - } - - fs.Seek(32,SeekOrigin.Begin); - blockAccess=bw.ReadInt16(); - - fs.Seek(0,SeekOrigin.Begin); - byte x; - // read past some header stuff. - for (int jj=0;jj<16;jj++) - x=bw.ReadByte(); - - long nxtUs; - uint nmUser; - nxtUs=bw.ReadUInt32(); - nmUser=bw.ReadUInt16(); - - int uid; - for (int i = 0; i < nmUser; i++) - { - oldpos = nxtUs; - fs.Seek((long)nxtUs,SeekOrigin.Begin); - nxtUs=bw.ReadUInt32(); - uid = bw.ReadUInt16(); - if (uid == userid) - { - string junk = new string (bw.ReadChars(22)); - uoptions=bw.ReadUInt16(); - break; - } - } - SetUserSystemRights(); - CloseFile(); - } - - public void SetUpDemoMode() - { - userid=Security.SUPERUSER; // super user so that demo data can be anywhere (doesn't check vesamp.opt) - ident="demo"; - initials="demo"; - isDemoMode = true; - } - public int GetPlantSecurityIndex(string Location) - { - for (int i=0;ipsets.Count-1)return false; - SecurityPlantSets sps = (SecurityPlantSets) psets[idx]; - return sps.HasSecurity; - } - - public bool ProcSetHasSecurity(int idx, string procset) - { - if (userid == SUPERUSER) return true; - if (idx<0 || idx>psets.Count-1)return false; - SecurityPlantSets sps = (SecurityPlantSets) psets[idx]; - return sps.ProcSetHasSecurity(procset); - } - - public long GetPlantSecurity(int idx) - { - if(userid == SUPERUSER ) return SUPERACCESS; - if (idx<0 || idx>psets.Count-1) return 0L; - SecurityPlantSets sps = (SecurityPlantSets) psets[idx]; - return (sps.GetSecurity()); - } - - public bool AnyOptionsSet(int idx) - { - if(userid==SUPERUSER) return true; - if (idx<0 || idx>psets.Count-1) return false; - SecurityPlantSets sps = (SecurityPlantSets) psets[idx]; - return sps.AnyOptionsSet(); - } - - public long GetUserSecurity() - { - if(userid == SUPERUSER) return SUPERACCESS; - return(uoptions); - } - - public bool BlockAccess() - { - if (userid == SUPERUSER) return false; - if(blockAccess!=0) return true; - return false; - } - - public bool IsAllowed(long mask) - { - if(userid == SUPERUSER) return true; - return (uoptions&mask) != 0; - } - - public bool IsAllowed(string plantpath, string procpath, long mask) - { - bool retval = false; - if(userid == SUPERUSER) return true; - for(int i=0; i0) - procs = new ArrayList(numopts); - else - procs = null; - for(int i=0;i - /// Summary description for SerialNo. - /// - public class SerialNo - { - private string sernofile; - public int SerialNum; - private string SerialNumTitle; - private static byte sum =0xcf;// used in serial number code (nextchar) - - public enum SN_Flags - { - SN_NETWORK_ON =0x0001, - SN_BACKGROUND_ON =0x0002, - SN_DEVIATION_ON =0x0004, - SN_CHECKLISTEXPORT_ON =0x0008, - SN_REVISIONFUNCTION_ON =0x0010, - SN_ONLYAPPROVEONCE_ON =0x0020, - SN_BGEPLANTWIDEOPT_ON =0x0040, - SN_REVISESTRIPPC_ON =0x0080, - SN_PROCCOMMENT_ON =0x0400, - SN_REMOVECHGID_ON =0x0800, - SN_OPTIONALACCEDIT_ON =0x1000, - SN_TEMPCHANGE_ON =0X2000, - SN_VOLIANONLY_ON =0x8000 - }; - - public SN_Flags[] SerialNumberOptionsByPlant= - { - /* 0 Volian Enterprises, Inc. */ (SN_Flags)0xFFFF, - /* 1 Entergy Nuclear Northeast - Indian Point Unit 2 */ SN_Flags.SN_BACKGROUND_ON|SN_Flags.SN_NETWORK_ON, - /* 2 Virginia Power - Surry (1A) */ SN_Flags.SN_NETWORK_ON, - /* 3 Virginia Power - North Anna */ SN_Flags.SN_DEVIATION_ON|SN_Flags.SN_NETWORK_ON, - /* 4 Northern States Power - Prairie Island */ SN_Flags.SN_DEVIATION_ON, - /* 5 American Electric Power - D. C. Cook - AOPs */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_BACKGROUND_ON, - /* 6 Wisconsin Electric Power - Point Beach */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_BACKGROUND_ON, - /* 7 Rochester Gas and Electric Corp. - Ginna */ SN_Flags.SN_BACKGROUND_ON, - /* 8 TUEC - Comanche Peak */ 0, - /* 9 Entergy Nuclear Northeast - Indian Point Unit 3 */ SN_Flags.SN_BACKGROUND_ON|SN_Flags.SN_NETWORK_ON, - /*10 Maine Yankee Atomic Power Company - Maine Yankee */ 0, - /*11 Yankee Atomic Electric - Yankee Rowe */ 0, - /*12 Wisconsin Public Service Corp.- Kewaunee */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_BACKGROUND_ON, - /*13 Wisconsin Public Service Corp.- Kewaunee Operating Procedures*/ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_BACKGROUND_ON, - /*14 South Carolina Gas and Electric - V.C. Summer */ 0, - /*15 Louisiana Power and Light - Waterford */ 0, - /*16 Pacific Gas and Electric - Diablo Canyon */ SN_Flags.SN_OPTIONALACCEDIT_ON, - /*17 Southern California Edison - San Onofre */ 0, - /*18 Carolina Power and Light - Robinson */ SN_Flags.SN_NETWORK_ON,/*|SN_BACKGROUND_ON|SN_DEVIATION_ON, */ - /*19 Arkansas Nuclear One - Unit 1 */ 0, - /*20 Arkansas Nuclear One - Unit 2 */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_ONLYAPPROVEONCE_ON|SN_Flags.SN_REVISIONFUNCTION_ON|SN_Flags.SN_REVISESTRIPPC_ON|SN_Flags.SN_PROCCOMMENT_ON, - /*21 Southern Nuclear Operating Company - Vogtle */ SN_Flags.SN_BACKGROUND_ON|SN_Flags.SN_DEVIATION_ON, - /*22 Florida Power and Light - Turkey Point (Unit 3) */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_DEVIATION_ON|SN_Flags.SN_BACKGROUND_ON, - /*23 Houston Lighting & Power Company - South Texas */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_BACKGROUND_ON, - /*24 Carolina Power & Light - Shearon Harris */ 0, - /*25 Virginia Power - EPIP */ SN_Flags.SN_NETWORK_ON, - /*26 Wolf Creek Nuclear Operating Corp. - Wolf Creek */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_BACKGROUND_ON|SN_Flags.SN_OPTIONALACCEDIT_ON|SN_Flags.SN_TEMPCHANGE_ON|SN_Flags.SN_CHECKLISTEXPORT_ON, - /*27 Duke Power - Catawba */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_BACKGROUND_ON|SN_Flags.SN_DEVIATION_ON, - /*28 Duke Power - McGuire */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_BACKGROUND_ON|SN_Flags.SN_DEVIATION_ON, - /*29 Exelon Nuclear - Braidwood */ SN_Flags.SN_NETWORK_ON | SN_Flags.SN_BACKGROUND_ON | SN_Flags.SN_DEVIATION_ON, - /*30 Exelon Nuclear - Byron */ SN_Flags.SN_NETWORK_ON | SN_Flags.SN_BACKGROUND_ON | SN_Flags.SN_DEVIATION_ON, - /*31 Virginia Power - Innsbrook */ SN_Flags.SN_NETWORK_ON, - /*32 Constellation Energy Group - Calvert Cliffs */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_REVISIONFUNCTION_ON|SN_Flags.SN_ONLYAPPROVEONCE_ON|SN_Flags.SN_BGEPLANTWIDEOPT_ON|SN_Flags.SN_OPTIONALACCEDIT_ON|SN_Flags.SN_REMOVECHGID_ON, - /*33 American Electric Power - D. C. Cook - EOPs */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_BACKGROUND_ON, - /*34 American Electric Power - D. C. Cook - Training */ 0, - /*35 North Atlantic Energy Service Corp. - Seabrook Nuclear Plant */ SN_Flags.SN_TEMPCHANGE_ON, - /*36 Entergy - River Bend Nuclear Station */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_REVISIONFUNCTION_ON, - /*37 Southern Nuclear Operating Company - Farley Nuclear Plant */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_BACKGROUND_ON|SN_Flags.SN_DEVIATION_ON, - /*38 AmerenUE - Callaway Plant */ SN_Flags.SN_NETWORK_ON|SN_Flags.SN_BACKGROUND_ON - }; - - public SerialNo(string isernofile,string ucfgpath, UserRunTime usrRT, bool DemoMode) - { - sernofile = isernofile; - PrivateProfile ppCfg; - string sn; -// byte xor=0xCF; - ppCfg = new PrivateProfile(ucfgpath); - // sn=ppCfg.Attr("/ini/section[@name='override']/param[@name='SN']/@value"); - sn=ppCfg.Attr("override","SN"); - if (sn!=null && sn!="") - { - int indx = 0; - if ((indx = sn.IndexOf(";",0,sn.Length))>0) - SerialNum=System.Convert.ToInt32(sn.Substring(0,indx)); - else - SerialNum=System.Convert.ToInt32(sn); - if (SerialNum>SerialNumberOptionsByPlant.Length) - { - MessageBox.Show("Serial number in " + ucfgpath + " is invalid. Demo mode will be used","VE-PROMS"); - SerialNum=-1; - } - SerialNumTitle="Override"; - return; - } - - ppCfg=null; - SerialNum = -1; - if (DemoMode || !File.Exists(usrRT.ExeAdjust(sernofile))) - { - // no serial number file, put into demo mode. - SerialNumTitle = "Demo Mode"; - // MessageBox.Show("No Serial Number. Defaulting to Working Demo Mode.\n\nTo purchase VE-PROMS, contact Volian Enterorices Inc.\n\nPhone: (724) 335-3744\n\nEmail: VEPROMS@VOLIAN.COM\n\nSerial Number Warning"); - if (DemoMode) - { - MessageBox.Show("Thank you for trying our VE-PROMS Working Demo.\n\n"+ - "To purchase VE-PROMS, contact Volian Enterprises, Inc.\n\n"+ - "Phone: (724) 335-3744\n\n"+ - "Email: VolianEnterprises@volian.com", - "VE-PROMS Working Demo"); - } - else - { - MessageBox.Show("No Serial Number. Defaulting to Working Demo Mode.\n\n"+ - "To purchase VE-PROMS, contact Volian Enterprises, Inc.\n\n"+ - "Phone: (724) 335-3744\n\n"+ - "Email: VolianEnterprises@volian.com", - "Serial Number Warning"); - } - return; - } - - // open file & read in serial number - int i; - byte j; - FileStream fssn = null; - BinaryReader brsn = null; - byte xor=0xCF; -// sum=0xcf; - try - { - fssn = new FileStream(usrRT.ExeAdjust(sernofile),FileMode.Open,FileAccess.Read,FileShare.ReadWrite); - brsn = new BinaryReader(fssn); - int length = (int)fssn.Length-1024; - for (i=0;i<1024;i++) - { - j = nextchar(brsn); - xor ^= (byte)j; - if (j==0xCF) - { - if (SerialNum != -1) return; - SerialNum=i; - } - } - if (SerialNum == -1) - { - SerialNumTitle = "Demo Mode"; -// MessageBox.Show("No Serial Number. Defaulting to Working Demo Mode.\n\nTo purchase VE-PROMS, contact Volian Enterorices Inc.\n\nPhone: (724) 335-3744\n\nEmail: VEPROMS@VOLIAN.COM\n\nSerial Number Warning","VE-PROMS"); - MessageBox.Show("No Serial Number. Defaulting to Working Demo Mode.\n\n"+ - "To purchase VE-PROMS, contact Volian Enterprises, Inc.\n\n"+ - "Phone: (724) 335-3744\n\n"+ - "Email: VolianEnterprises@volian.com", - "Serial Number Warning"); - return; - } - // Just read past this byte. At this point we already - // have a serial number. We now just want to get the - // description text (usually plant/utility name) associated - // with the serial number. - j = nextchar(brsn); -// -// This was always failing. Could not find a reason why. Appears that -// the Exclusive OR arithmatic is a little different in .NET. The -// nextchar() funtion seems to be returning the correct values. -// -// if (j!=xor) -// { -// if (brsn!=null) brsn.Close(); -// if (fssn!=null) fssn.Close(); -// return; -// } - char [] title = new char[length]; - i=0; - while((--length) > 0 && (j=nextchar(brsn))!=0xFF) - { - title[i++] = (char)j; - } - SerialNumTitle = new string(title); - // remove the serial number at the beginning of the title - // - we didn't need to do this - jsj 7/18/2006 -// SerialNumTitle = SerialNumTitle.Substring(SerialNumTitle.IndexOf(' ')+1); - } - catch(Exception e) - { - MessageBox.Show(e.Message,"Serial Number Error"); - return; - } - if (brsn!=null) brsn.Close(); - if (fssn!=null) fssn.Close(); - } - - private byte nextchar(BinaryReader br) - { - byte retval = 0xFF; // unsigned -1 - try - { - byte nxt; - retval = br.ReadByte(); - if(retval != 0xFF) - { - nxt=retval; - retval=(byte)((nxt-sum) & 0xFF); - sum=(byte)(((nxt<<1) & 0xFE) | ((nxt>>7) & 0x1)); - } - } - catch(Exception e) - { -// MessageBox.Show(e.Message); - return retval; - } - - return retval; - } - - public uint GetSNOption(uint a) - { - if (SerialNum == -1) - return 0; - else - return ((uint)SerialNumberOptionsByPlant[SerialNum]&(uint)a); - } - - public string SerialNumberString - { - get - { - string rtnstr = ""; - if (SerialNum == -1) // demo - rtnstr = "Thank you for trying VE-PROMS"; - else - rtnstr = "Serial Number: " + SerialNum.ToString(); - - return rtnstr; - } - } - - public string SerialNumberTitleString - { - get - { - return SerialNumTitle; - } - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/ShrtNm.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/ShrtNm.cs deleted file mode 100644 index 44c83100..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/ShrtNm.cs +++ /dev/null @@ -1,51 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ShrtNm.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:34a $ - * - * $History: ShrtNm.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:34a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; -using System.Text; -using System.Runtime.InteropServices; -using System.ComponentModel; - -namespace Utils -{ - /// - /// Summary description for ShrtNm. - /// - public class ShortName - { - [DllImport("kernel32.dll", SetLastError=true, CharSet=CharSet.Auto)] - [return:MarshalAs(UnmanagedType.U4)] - public static extern int GetShortPathName( - [MarshalAs(UnmanagedType.LPTStr)] string lpszLongPath, - [MarshalAs(UnmanagedType.LPTStr)] StringBuilder lpszShortPath, - [MarshalAs(UnmanagedType.U4)] int cchBuffer); - - private string _LongFileName; - private StringBuilder _ShortFileName; - - public ShortName(string longname) - { - _LongFileName = longname; - _ShortFileName = new StringBuilder(256); - int len = GetShortPathName(_LongFileName,_ShortFileName,256); - if (len==256) _ShortFileName=null; - if (len==0) _ShortFileName.Append(longname); - } - - [Description("FileName")]public string ShortFileName - { - get{return _ShortFileName.ToString();} - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/SymbDlg.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/SymbDlg.cs deleted file mode 100644 index 716f7e24..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/SymbDlg.cs +++ /dev/null @@ -1,214 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: SymbDlg.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:34a $ - * - * $History: SymbDlg.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:34a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; -using System.Text; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace Utils -{ - /// - /// Summary description for SymbDlg. - /// - public class SymbDlg : System.Windows.Forms.Form - { - private System.Windows.Forms.TabControl tbctlSymbol; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private ListBox symlistbox; - public SymbolListB SymList1; - public string ReturnText; - private int NumItems; - private System.Windows.Forms.TextBox tbValue; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - public GridItem gridItem; - private string[] SymbolFonts = {"VESymb","Courier New","VolianDraw"}; - - public SymbDlg(SymbolListB symb, GridItem grditm) - { - // - // Required for Windows Form Designer support - // - ReturnText=null; - gridItem = grditm; - - SymList1 = symb; - NumItems = symb.SymbolListStrings.Length; - InitializeComponent(); - - DoListTabPage(); - DoGridTabPage(); - - if (gridItem!=null) - { - tbValue.Text = (string) gridItem.Value; - tbValue.Visible = true; - } - else - tbValue.Visible = false; - } - - private void DoGridTabPage() - { - //TabPage gridTabPage = new TabPage("Grid"); - //tbctlSymbol.TabPages.Add(gridTabPage); - } - - private void symlistbox_DrawItem(object sender, System.Windows.Forms.DrawItemEventArgs e) - { - // Set the DrawMode property to draw fixed sized items. - symlistbox.DrawMode = DrawMode.OwnerDrawFixed; - - // Draw the background of the ListBox control for each item. - e.DrawBackground(); - // Create a new Brush and initialize to a Black colored brush by default. - Brush myBrush = Brushes.Black; - Font fontVESymb = new Font(SymbolFonts[SymList1.SymbolList[e.Index].CharacterSet],e.Font.SizeInPoints); - Font fontregular = new Font("Courier New",e.Font.SizeInPoints); - float x; - // Draw the current item text based on the current Font and the custom brush settings. - e.Graphics.DrawString(SymList1.SymbolList[e.Index].CharacterCode,fontVESymb,myBrush,e.Bounds.Left,e.Bounds.Top); - x=e.Graphics.MeasureString(SymList1.SymbolList[e.Index].CharacterCode,fontVESymb).Width; - e.Graphics.DrawString(SymList1.SymbolListStrings[e.Index],fontregular,myBrush,e.Bounds.Left+x,e.Bounds.Top); - e.DrawFocusRectangle(); - } - - private void DoListTabPage() - { - TabPage listTabPage = new TabPage("List"); - tbctlSymbol.TabPages.Add(listTabPage); - symlistbox = new ListBox(); - symlistbox.Height = 200; - symlistbox.Width = 400; - listTabPage.Controls.Add(symlistbox); - symlistbox.DrawItem += new DrawItemEventHandler(symlistbox_DrawItem); - symlistbox.DoubleClick += new EventHandler(symlistbox_DoubleClick); - symlistbox.DrawMode = DrawMode.OwnerDrawFixed; - // add dummy items, these will be resolved when displayed. - for(int i=0; i - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(SymbDlg)); - this.tbctlSymbol = new System.Windows.Forms.TabControl(); - this.tbValue = new System.Windows.Forms.TextBox(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // tbctlSymbol - // - this.tbctlSymbol.Location = new System.Drawing.Point(8, 0); - this.tbctlSymbol.Name = "tbctlSymbol"; - this.tbctlSymbol.SelectedIndex = 0; - this.tbctlSymbol.Size = new System.Drawing.Size(464, 264); - this.tbctlSymbol.TabIndex = 0; - // - // tbValue - // - this.tbValue.Location = new System.Drawing.Point(8, 280); - this.tbValue.Name = "tbValue"; - this.tbValue.Size = new System.Drawing.Size(504, 20); - this.tbValue.TabIndex = 1; - this.tbValue.Text = ""; - // - // btnOK - // - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnOK.Location = new System.Drawing.Point(72, 320); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(104, 24); - this.btnOK.TabIndex = 2; - this.btnOK.Text = "Save Text"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnCancel.Location = new System.Drawing.Point(208, 320); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(72, 23); - this.btnCancel.TabIndex = 3; - this.btnCancel.Text = "Cancel"; - // - // SymbDlg - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(672, 350); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOK); - this.Controls.Add(this.tbValue); - this.Controls.Add(this.tbctlSymbol); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "SymbDlg"; - this.Text = "Symbol"; - this.ResumeLayout(false); - - } - #endregion - - private void btnOK_Click(object sender, System.EventArgs e) - { - ReturnText = tbValue.Text; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/SymbDlg.resx b/PROMS/ReferencedObjectsOld/LibSource/Utils/SymbDlg.resx deleted file mode 100644 index d350e478..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/SymbDlg.resx +++ /dev/null @@ -1,192 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - False - - - True - - - Private - - - Private - - - 8, 8 - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - SymbDlg - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/SymbLst.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/SymbLst.cs deleted file mode 100644 index ef3a92ab..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/SymbLst.cs +++ /dev/null @@ -1,142 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: SymbLst.cs $ $Revision: 2 $ - * $Author: Kathy $ $Date: 11/15/04 10:54a $ - * - * $History: SymbLst.cs $ - * - * ***************** Version 2 ***************** - * User: Kathy Date: 11/15/04 Time: 10:54a - * Updated in $/LibSource/Utils - * B2004-057: crash on scroll fixed & rest of PSI/Title symbols added - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:34a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; - -namespace Utils -{ - /// - /// Summary description for SymbLst. - /// - /// - public class SymbolListItem - { - public string CharacterCode; - public byte Translation; - public short CharacterSet; - public SymbolListItem(string cc, byte trans, short cs) - { - CharacterCode = cc; - Translation = trans; - CharacterSet = cs; - } - } - public class SymbolListB - { - public string[] SymbolListStrings; - public SymbolListItem[] SymbolList; - public SymbolListB() - { - } - } - - public class SymbolListSteps : SymbolListB // for steps - { - - public SymbolListSteps() - { - SymbolListStrings = new string[] - { - "Degree", - "Delta", - "Greater Than or Equal To", - "Less Than Or Equal To", - "Plus or Minus", - "Sigma", - "Gamma", - "One Half", - "ACCUM Character", - "Solid Bullet", - "Approximatly Equal", - "Similar or Equal", - "Division Symbol", - "Square Root", - "Rho", - "PI", - "Micro", - "Lower Case Delta", - "Lower Case Sigma", - "One Fourth", - "Distinguished Zero", - "Average Disintegration Energy", - "Grave", - "Vertical Line", - "Epsilon", - "Theta", - "Dot in Oval", - "Tau", - "Hard Space", - "Diamond", - "Turn On Bold", - "Turn Off Bold", - "Turn On Underline", - "Turn Off Underline", - "Turn On Italics", - "Turn Off Italics", - "Turn On Superscript", - "Turn Off Superscript", - "Turn On Subscript", - "Turn Off Subscript" - }; - - SymbolList = new SymbolListItem[] { - new SymbolListItem("\xB0",0xF8,0), /* - Degree */ - new SymbolListItem("\x44",0x7F,0), /*  - Delta */ - new SymbolListItem("\xB3",0xF2,0), /* - Greater Than or Equal */ - new SymbolListItem("\xA3",0xF3,0), /* - Less Than or Equal */ - new SymbolListItem("\xB1",0xF1,0), /* - Plus or Minus */ - new SymbolListItem("\x53",0xE4,0), /* - Sigma */ - new SymbolListItem("\x67",0xE7,0), /* - (Printed as a Gamma) */ - new SymbolListItem("\xBD",0xAB,1), /* - One Half */ - new SymbolListItem("\xFE",0xFE,0), /* - ACCUM Character */ - new SymbolListItem("\xB7",0x07,0), /*  - Solid Bullet */ - new SymbolListItem("\xBB",0xF7,0), /* Similar */ - new SymbolListItem("\x40",0xF0,0), /* - Approximately equal */ - new SymbolListItem("\xB8",0xF6,0), /* - Division symbol */ - new SymbolListItem("\xD6",0xFB,0), /* - Square Root */ - new SymbolListItem("\x72",0xE2,0), /* - (Printed as a rho) */ - new SymbolListItem("\x70",0xE3,0), /* - (Printed as pi) */ - new SymbolListItem("\x6D",0xE6,0), /* - micro */ - new SymbolListItem("\x64",0xEB,0), /* - Lower Case Delta */ - new SymbolListItem("\x73",0xE5,0), /* - Lower Case Sigma */ - new SymbolListItem("\xBC",0xAC,1), /* - One Fourth */ - new SymbolListItem("\xC6",0xED,0), /* - Distinguished Zero */ - new SymbolListItem("\x9F",0x90,0), // Average Deintegration Energy - new SymbolListItem("\xEC",0x8D,1), // Grave - new SymbolListItem("\xBD",0xB3,0), // Vertical Bar - new SymbolListItem("\x65",0xEE,0), // Epsilon - new SymbolListItem("\x71",0xE9,0), // Theta - new SymbolListItem("\x9E",0xEC,0), // Dot With Oval - new SymbolListItem("\x74",0xA8,0), // Tau - new SymbolListItem("\xA0",0xFF,1), // Hard Space - new SymbolListItem("\xA8",0xA9,0), // Diamond - new SymbolListItem("\xD5",0xD5,1), // Bold on - new SymbolListItem("\xD6",0xD6,1), // Bold off - new SymbolListItem("\xAE",0xAE,1), // Underline on - new SymbolListItem("\xAF",0xAF,1), // Underline off - new SymbolListItem("\xB2",0xB2,1), // Italics on - new SymbolListItem("\xDD",0xDD,1), // Italics off - new SymbolListItem("\xC6",0xC6,1), // Superscript on - new SymbolListItem("\xC7",0xC7,1), // Superscript off - new SymbolListItem("\xD1",0xD1,1), // Subscript on - new SymbolListItem("\xA6",0xA6,1) // Subscript off - }; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/UsrRunTime.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/UsrRunTime.cs deleted file mode 100644 index 29f06624..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/UsrRunTime.cs +++ /dev/null @@ -1,624 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: UsrRunTime.cs $ $Revision: 9 $ - * $Author: Jsj $ $Date: 10/31/07 10:11a $ - * - * $History: UsrRunTime.cs $ - * - * ***************** Version 9 ***************** - * User: Jsj Date: 10/31/07 Time: 10:11a - * Updated in $/LibSource/Utils - * Bug fix to ExeAdjust() - * - * ***************** Version 8 ***************** - * User: Jsj Date: 7/21/06 Time: 2:57p - * Updated in $/LibSource/Utils - * added comment of logic that might be needed in future. - * - * ***************** Version 7 ***************** - * User: Jsj Date: 5/17/05 Time: 11:54a - * Updated in $/LibSource/Utils - * cleanup - * - * ***************** Version 6 ***************** - * User: Kathy Date: 4/21/05 Time: 10:17a - * Updated in $/LibSource/Utils - * issingleuser - * - * ***************** Version 5 ***************** - * User: Kathy Date: 4/12/05 Time: 1:00p - * Updated in $/LibSource/Utils - * B2004-050: single user needed network info - * - * ***************** Version 4 ***************** - * User: Kathy Date: 1/24/05 Time: 2:44p - * Updated in $/LibSource/Utils - * B2005-004 fixes - * - * ***************** Version 3 ***************** - * User: Kathy Date: 1/10/05 Time: 12:57p - * Updated in $/LibSource/Utils - * B2004-063 fix - * - * ***************** Version 2 ***************** - * User: Jsj Date: 11/12/04 Time: 10:32a - * Updated in $/LibSource/Utils - * Save the user's TEMP dir path ExeAjust() handles TEMP dir and Data Dir - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:34a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; -using System.IO; -using System.Windows.Forms; -using System.Text; -using Org.Mentalis.Files; - -namespace Utils -{ - public enum UserCStatus - { - PRINACTIVE=0, PRACTIVE=1 // process record is NOT active, active respectively - }; - - public class UserData - { - public byte UserStatus; - public string UserNetworkID; - public string UserName; - public string UserPhone1; - public string UserPhone2; - public string UserLoc1; - public string UserLoc2; - public string UserShell; // 1 - vfw; 2 - browser; 3 - 32-bit browser - public string UserProcess; - - // the first constructor loads data from a user's cfg file - public UserData(string ucfgpath) - { - if (File.Exists(ucfgpath)==false) return; - // create an xml node from the [User Data] in the cfg file & transfer - // to this. Note that the UserNetworkID is not set until the serial - // number is read to determine whether in multi-user-mode (B2004-050) - PrivateProfile ppUserData = new PrivateProfile(ucfgpath); - UserName=ppUserData.Attr("User Data","UserName"); - UserPhone1=ppUserData.Attr("User Data","UserPhone1"); - UserPhone2=ppUserData.Attr("User Data","UserPhone2"); - UserLoc1=ppUserData.Attr("User Data","UserLoc1"); - UserLoc2=ppUserData.Attr("User Data","UserLoc2"); - char tmp = '\x03'; - UserShell = tmp.ToString(); // 1 - vfw; 2 - browser; 3 - 32-bit browser - UserProcess=""; - ppUserData=null; - } - - public void SetNetworkID(string ucfgpath, bool inmultiuser) - { - // create an xml node from the [User Data] in the cfg file & transfer - // to this. - PrivateProfile ppUserData = new PrivateProfile(ucfgpath); - UserNetworkID=ppUserData.Attr("User Data","UserNetworkID"); - if (inmultiuser && (UserNetworkID == "" || UserNetworkID==null)) - { - MessageBox.Show("Invalid UserNetworkID from " + ucfgpath +", set before reexecuting VE-PROMS.","VE-PROMS Error"); - Environment.Exit(-1); - } - ppUserData=null; - } - // the next constructor gets the input 'nth' record from the dat file (dat file is - // passed in via a FileStream - public UserData(FileStream dfs, int n) - { - // seek to the position as defined by n. - long skpos = (long)(n * 140); // 140 is the size of the record from old proms. - dfs.Seek(skpos,SeekOrigin.Begin); - byte [] test = new byte[140]; - dfs.Read(test,0,140); - UserStatus = test[0]; - string tmp = Encoding.ASCII.GetString(test,0,140); - UserNetworkID = tmp.Substring(1,9).Replace('\0',' ').Trim(); - UserName = tmp.Substring(10,31).Replace('\0',' ').Trim(); - UserPhone1 = tmp.Substring(41,16).Replace('\0',' ').Trim(); - UserPhone2 = tmp.Substring(57,16).Replace('\0',' ').Trim(); - UserLoc1 = tmp.Substring(73,31).Replace('\0',' ').Trim(); - UserLoc2 = tmp.Substring(104,31).Replace('\0',' ').Trim(); - UserShell = tmp.Substring(135,2).Replace('\0',' ').Trim(); - UserProcess = tmp.Substring(137,3).Replace('\0',' ').Trim(); - } - - // write this user data out to the filestream at the current position in file - // defined in dfs - public void Write(FileStream dfs) - { - dfs.WriteByte(UserStatus); - byte[] btmp = Encoding.ASCII.GetBytes(UserNetworkID.PadRight(9,'\0')); - dfs.Write(btmp,0,9); - btmp = Encoding.ASCII.GetBytes(UserName.PadRight(31,'\0')); - dfs.Write(btmp,0,31); - btmp = Encoding.ASCII.GetBytes(UserPhone1.PadRight(16,'\0')); - dfs.Write(btmp,0,16); - btmp = Encoding.ASCII.GetBytes(UserPhone2.PadRight(16,'\0')); - dfs.Write(btmp,0,16); - btmp = Encoding.ASCII.GetBytes(UserLoc1.PadRight(31,'\0')); - dfs.Write(btmp,0,31); - btmp = Encoding.ASCII.GetBytes(UserLoc2.PadRight(31,'\0')); - dfs.Write(btmp,0,31); - btmp = Encoding.ASCII.GetBytes(UserShell.PadRight(2,'\0')); - dfs.Write(btmp,0,2); - btmp = Encoding.ASCII.GetBytes(UserProcess.PadRight(3,'\0')); - dfs.Write(btmp,0,3); - } - }; - - /// - /// Summary description for UserRunTime. This class contains all pertinent information - /// for the runtime for this instance of the program, including cfg, paths, menu file, - /// security, serial number, options, etc. - /// - public class UserRunTime - { - public string exepath; - public string syspath; - public string netsyspath; - public string TempDirPath; - - public string ucfgpath; // user config file name - public string appcfgpath; // app config file name - - public Security sec; - public SerialNo SerialNumber; - public string OptionsFile; - public string initials; // user login name - public string UserID; // cfg name and/or login - public MenuXML menuwinXML; - public MenuXML menuwin2XML; - public string myUserNetworkID; - public UserData myUserData; - public bool InMultiUserMode; - - // make some form properties here, such as color. - make need it's own class, - // - public UserRunTime() - { - menuwin2XML = null; - SetExeName(); - // load in xml list of plants. Then do exist tests to see if they - // exist on the datapath. - menuwinXML = new MenuXML(syspath + "\\menuwin.xml"); - } - - public void SetSecurity(Security isec) - { - // set the user's run time security settings. also, flag whether this user is - // running in multi user mode (just so we don't have to keep making this check - // later) - sec = isec; - // Do this separate (SetUserMode()) to remove interdependent logic path between - // security(vesam), user CFG file, and the serial number -// InMultiUserMode = (SerialNumber.GetSNOption((uint)Utils.SerialNo.SN_Flags.SN_NETWORK_ON)>0)?true:false; - } - - public void SetUserMode() - { - if (SerialNumber.SerialNum != -1) - InMultiUserMode = (SerialNumber.GetSNOption((uint)Utils.SerialNo.SN_Flags.SN_NETWORK_ON)>0)?true:false; - if (InMultiUserMode) myUserData.SetNetworkID(ucfgpath, InMultiUserMode); - } - - private bool IsSingleUserMode() - { - // Need to do: - // This needs to check if a lock is currently set as well - // - jsj 7/20/06 - return !InMultiUserMode; - } - - // Adjust the input file with the required pathname as follows: - // '~': (system path) i.e. c:\VE-PROMS - // '@': (executable path) i.e. c:\VE-PROMS\BIN - // '\342': current data directory i.e. c:\VEHPR1B\PROCS - // '\347': resolve for single user mode, append tempdir onto data dir i.e. TEMPS\JOHN____.D00 - public string ExeAdjust(string str) - { - if (exepath==null)SetExeName(); - - // This logic will allow me to combine the use of our special - // tokens. For example, I needed a user temp directory in the - // VE-PROMS root for the Search Across Procedure Sets option: - // "~\374results" --> C:\VE-PROMS\TEMPS\JOHN____.D00\RESUTLS - - StringBuilder exebuff = new StringBuilder(); - StringBuilder exetkn = new StringBuilder(str); - string exetkn_str = exetkn.ToString(); - int pos = 0; - char[] tchar = "~@\xE7\xE2".ToCharArray(); - /** Bug Fix: B2007-015 - * If a short file/directory name contained a ~ character, it was - * being processed, when it should not have. - * i.e. we were getting the current directory, then looping back up - * and searching the directory string (finding a ~ char) - * - * I added logic to use a starting position in the IndexOfAny() function - * so that we can skip past the portions already processes. - */ - while ((pos=exetkn_str.IndexOfAny(tchar,pos))>-1) - { - char[] chr; - string curdir = Directory.GetCurrentDirectory(); // for use with '\xE2' - chr = new char[exetkn_str.Length]; - chr = exetkn_str.ToCharArray(); - exetkn.Remove(pos,1); - - switch (chr[0]) - { - case '~': exetkn.Insert(pos,syspath+"\\"); // i.e. c:\VE-PROMS - pos += syspath.Length +1; - break; - case '@': exetkn.Insert(pos,exepath+"\\"); // i.e. c:\VE-PROMS\BIN - pos += exepath.Length + 1; - break; - case '\xE2': // case '\342': - exetkn.Insert(pos,curdir+"\\"); // i.e. c:\VEHPR1B\PROCS - pos += curdir.Length + 1; - break; - case '\xE7': // case '\347': - if (!IsSingleUserMode()&& TempDirPath!=null) - { - exetkn.Insert(pos,TempDirPath+"\\"); // i.e. TEMPS\JOHN____.D00 - pos += TempDirPath.Length + 1; - } - break; - } - exetkn_str = exetkn.ToString(); - } - return exetkn.ToString(); - } - - private void SetExeName() - { - ShortName sname = new ShortName(System.Environment.CommandLine); - string cmdlinepath = sname.ShortFileName; - string upbuff = cmdlinepath.ToUpper(); - string tmp = upbuff.Substring(1,upbuff.LastIndexOf("\\")-1); - int idx = tmp.IndexOf("VE-PROMS.NET"); - if (idx > 0) - { - exepath = tmp.Substring(0,idx+8) + tmp.Substring(idx+12); - syspath = exepath.Substring(0,exepath.IndexOf("\\BIN")); - netsyspath = syspath + ".NET"; - } - else - { - exepath = tmp; - syspath = exepath.Substring(0,exepath.IndexOf("\\BIN")); - netsyspath = syspath + ".NET"; - } - } - - public void SetAppConfig(string pth) - { - appcfgpath = pth; - } - - public bool SetUserConfig() - { - bool Rtnval = true; - PrivateProfile Veproms_ini = new PrivateProfile(ExeAdjust("~veproms.ini")); - // Find the UserId (not the number, he name/initials) - if (UserID==null || UserID.Equals("")) - { - // see if it's defined via an environment variable - UserID = System.Environment.GetEnvironmentVariable("userid"); - if (UserID == null) - { - // Check the VEPROMS.INI file -// UserID = Veproms_ini.Attr("/ini/section[@name='veconfig']/param[@name='userid']/@value"); - UserID = Veproms_ini.Attr("veconfig","userid"); - } - if (UserID == null || UserID.Equals("")) - { - if (sec.initials != null && !sec.initials.Equals("")) - { - // default to the user's login name - UserID = sec.initials; - } - else - { - // default to VEPROMS.CFG - UserID = "VEPROMS"; - } - } - } - // Fing the VECONFIG path - ucfgpath=System.Environment.GetEnvironmentVariable("veconfig"); - // If VECONFIG environment variable not set then check the - // VEPROMS.INI file for VECONFIG settings. - if (ucfgpath == null || ucfgpath.Equals("")) - { -// ucfgpath = Veproms_ini.Attr("/ini/section[@name='veconfig']/param[@name='file']/@value"); - ucfgpath = Veproms_ini.Attr("veconfig","file"); - if (ucfgpath==null || ucfgpath.Equals("")) - { - // still no path, use default cfg file path - ucfgpath = ExeAdjust("~CONFIG"); - } - } - - if (ucfgpath != null) - { - string tmp_UID=""; - // See it the VECONFIG path includes a CFG file name. - // if no CFG file name, then build one based on userid - bool atroot = ucfgpath.EndsWith(":\\"); - if (!atroot) - { - if (ucfgpath.EndsWith("\\")) - { - // trim the ending backslash - ucfgpath = ucfgpath.Substring(0,ucfgpath.Length-1); - } - } - //See if we need to build a CFG file name - if (atroot || Directory.Exists(ucfgpath)) - { - // use the no more than the first 8 chars of the userid - tmp_UID = (UserID.Length > 8)?UserID.Substring(0,8) : UserID; - - // Build the CFG file name and append to the VECONFIG path - ucfgpath = ucfgpath + "\\" + tmp_UID + ".CFG"; - } - } - if (File.Exists(ucfgpath)) - myUserData = new UserData(ucfgpath); - else - { - // error - cfg file does not exist - Rtnval = false; - MessageBox.Show("Configuration file:\n\n" + ucfgpath + "\n\nDoes not exist","Missing CFG file"); - } - return Rtnval; - } - - public void FreeMenuWinXML() - { - menuwinXML=null; - } - public void LoadMenuWin2() - { - if (menuwin2XML == null) - menuwin2XML = new MenuXML(syspath + "\\menuwin2.xml"); - // menuwin2XML = new MenuXML("e:\\ve-proms\\menuwin2.xml"); - } - public void FreeMenuWin2XML() - { - menuwin2XML=null; - } - - // The following methods update the cfg file (delete item, add item & mod) - //public bool DeletePathFromCfg(string delpth) - //{ - // IniReader in1 = new IniReader(ucfgpath); - // string curpath = in1.ReadString("Menu","DataPath",""); - // string modpath = curpath.Replace(delpth,""); - // inifile.WriteINIKeyValueStr("Menu","DataPath",modpath,ucfgpath); - // return true; - //} - - //public void AddPathToCfg(string pth) - //{ - // string newpath=null; - // INIFile inifile = new INIFile(); - // string curpath = inifile.GetINIKeyValueStr("Menu","DataPath","",132,ucfgpath); - // string tmp = curpath.TrimEnd(" \t".ToCharArray()); - // // If none exists, just add that entered, if it ends with ';', don't add another - // if (tmp==null||tmp=="") - // newpath = pth; - // else if (tmp.Substring(tmp.Length-1,1)==";") - // newpath = tmp + pth; - // else - // newpath = tmp+";"+pth; - // inifile.WriteINIKeyValueStr("Menu","DataPath",newpath,ucfgpath); - //} - - //public void ModTitleToCfg(string oldtitle, string newtitle) - //{ - // INIFile inifile = new INIFile(); - // string curpath = inifile.GetINIKeyValueStr("Menu","DataPath","",132,ucfgpath); - // string newpath=curpath.Replace(oldtitle,newtitle); - // inifile.WriteINIKeyValueStr("Menu","DataPath",newpath,ucfgpath); - //} - - // Check if plant (defined by location) is in the menuwin file. Return 0 if not, - // 1 if in file and -1 if error reading file. - public int IsInMenuWin(string location) - { - // see if this plant is already in the file, check menuwin - // and if there, assume in both. - try - { - // Create an instance of StreamReader to read from a file. - // The using statement also closes the StreamReader. - using (StreamReader sr = new StreamReader(syspath+"\\menuwin")) - { - string line; - while ((line = sr.ReadLine()) != null) - { - int indx; - indx = line.ToUpper().IndexOf(location.ToUpper()); - if (indx>-1) - { - sr.Close(); - return 1; - } - } - } - } - catch (Exception e) - { - // Let the user know what went wrong. - Console.WriteLine("Could not test " + e.Message + " for plant existence in menuwin file"); - return -1; - } - return 0; - } - - public bool AddToMenuWin(string title,string location) - { - int inmenufile = IsInMenuWin(location); - if (inmenufile==-1)return false; // error checking for it - if (inmenufile==1)return true; // already there. - - // make backup files in case of failure. - FileInfo menuwinbak = new FileInfo(syspath+"\\menuwin"); - menuwinbak.CopyTo(syspath+"\\menuwin.BAK",true); - menuwinbak=null; - - // add the title and location to the menuwin menuwin.xml files. - // menuwin first. - FileStream fs = new FileStream(syspath+"\\menuwin", - FileMode.Open, FileAccess.ReadWrite, FileShare.None); - - // if the file couldn't open, give an error. - if (fs == null) - { - MessageBox.Show("Could not add plant to menuwin file.","VE-PROMS"); - menuwinbak = new FileInfo(syspath+"\\menuwin.BAK"); - menuwinbak.Delete(); - return false; - } - // go to last character of file & see if we have a /r/n. There - // needs to be a single newline between plants in the menuwin file - // or an error will occur. - fs.Seek(-2,SeekOrigin.End); - StreamReader tmpReader = new StreamReader(fs); - int tmpi1 = tmpReader.Peek(); - bool hasnewline=false; - if (tmpi1==0xD)hasnewline=true; - fs.Seek(0,SeekOrigin.End); - - StreamWriter swFromFileStream = new StreamWriter(fs); - if (hasnewline) - swFromFileStream.Write(title); - else - swFromFileStream.Write("\r\n"+title); - string tmpl = "\r\n{t}" + location + " menu ~menu1a\r\n"; - swFromFileStream.Write(tmpl); - swFromFileStream.Flush(); - swFromFileStream.Close(); - fs.Close(); - - // now add menuwin.xml text, add this before the end tags for - // system attach & menuwin (i.e. that's the seek part of this - // subtracting from end of file the number of characters for - // these two tags. - // make backup files in case of failure. - FileInfo menuwinxbak = new FileInfo(syspath+"\\menuwin"); - menuwinxbak.CopyTo(syspath+"\\menuwinx.BAK",true); - menuwinxbak=null; - - fs = new FileStream(syspath+"\\menuwin.xml", - FileMode.Open, FileAccess.Write, FileShare.None); - if (fs == null) - { - MessageBox.Show("Could not add plant to menuwin.xml file.","VE-PROMS"); - //delete menuwin & rename the bak file. - menuwinbak = new FileInfo(syspath+"\\menuwin"); - menuwinbak.Delete(); - menuwinbak = null; - menuwinbak = new FileInfo(syspath+"\\menuwin.BAK"); - menuwinbak.CopyTo(syspath+"\\menuwin"); - menuwinbak.Delete(); - menuwinxbak = new FileInfo(syspath+"\\menuwinx.BAK"); - menuwinxbak.Delete(); - return false; - } - long flen = fs.Length; - fs.SetLength(flen-27); //remove tags. - fs.Seek(0,SeekOrigin.End); - swFromFileStream = new StreamWriter(fs); - swFromFileStream.Write("\r\n"); - swFromFileStream.Write(title); - swFromFileStream.Write("\r\n{t}"); - swFromFileStream.Write(location); - swFromFileStream.Write(" menu menu1a\r\n\r\n"); - swFromFileStream.Write("\r\n"); - - swFromFileStream.Flush(); - swFromFileStream.Close(); - fs.Close(); - menuwinbak = new FileInfo(syspath+"\\menuwin.BAK"); - menuwinbak.Delete(); - menuwinxbak = new FileInfo(syspath+"\\menuwinx.BAK"); - menuwinxbak.Delete(); - // reload so that the new plant node gets added to the xml tree. - menuwinXML = null; - menuwinXML = new MenuXML(syspath + "\\menuwin.xml"); - MessageBox.Show("Please send \\ve-proms\\menuwin & \\ve-proms\\menuwin.xml files to Volian.","VE-PROMS"); - return true; - } - - public bool ModMenuWin(string newtitle, string oldtitle) - { - // replace the oldtitle with the new in both the menuwin file - // and the menuwin.xml file. - FileInfo menuwinbak = new FileInfo(syspath+"\\menuwin"); - menuwinbak.CopyTo(syspath+"\\menuwin.BAK",true); - menuwinbak=null; - - // read the whole file, replace the plant title string & save the file. - StreamReader sr = File.OpenText(syspath+"\\menuwin"); - string input; - if ((input=sr.ReadToEnd())!=null) - { - sr.Close(); - string output = input.Replace(oldtitle,newtitle); - StreamWriter sw = new StreamWriter(syspath+"\\menuwin",false); - sw.Write(output); - sw.Close(); - } - else - { - sr.Close(); - MessageBox.Show("Could not update menuwin file with new plant title","VE-PROMS"); - menuwinbak = new FileInfo(syspath+"\\menuwin.BAK"); - menuwinbak.CopyTo(syspath+"\\menuwin",true); - menuwinbak.Delete(); - return false; - } - - // now do the xml file. - menuwinbak = new FileInfo(syspath+"\\menuwin.xml"); - menuwinbak.CopyTo(syspath+"\\menuwinx.BAK",true); - menuwinbak=null; - - // read the whole file, replace the plant title string & save the file. - sr = File.OpenText(syspath+"\\menuwin.xml"); - if ((input=sr.ReadToEnd())!=null) - { - sr.Close(); - string output = input.Replace(oldtitle,newtitle); - StreamWriter sw = new StreamWriter(syspath+"\\menuwin.xml",false); - sw.Write(output); - sw.Close(); - } - else - { - sr.Close(); - MessageBox.Show("Could not update menuwin.xml file with new plant title","VE-PROMS"); - menuwinbak = new FileInfo(syspath+"\\menuwin.BAK"); - menuwinbak.CopyTo(syspath+"\\menuwin",true); - menuwinbak.Delete(); - menuwinbak = new FileInfo(syspath+"\\menuwinx.BAK"); - menuwinbak.CopyTo(syspath+"\\menuwin.xml",true); - menuwinbak.Delete(); - return false; - } - - return true; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/Utils.csproj b/PROMS/ReferencedObjectsOld/LibSource/Utils/Utils.csproj deleted file mode 100644 index 0912123e..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/Utils.csproj +++ /dev/null @@ -1,207 +0,0 @@ - - - Local - 8.0.50727 - 2.0 - {680054D3-49C4-40E7-92A5-67B97DCE6308} - Debug - AnyCPU - - - - - Utils - - - JScript - Grid - IE50 - false - Library - Utils - OnBuildSuccess - - - - - 0.0 - - - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - - - - dznet - f:\DynaZip Max\Redist\dznet.dll - hklm\dn\dynazip for .net - - - System - - - System.Data - - - System.Drawing - - - System.Windows.Forms - - - System.XML - - - - - Form - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Code - - - Form - - - Code - - - Code - - - Code - - - Code - - - Form - - - About.cs - - - SymbDlg.cs - - - ZipFuncsDlg.cs - - - - - - False - .NET Framework 2.0 %28x86%29 - true - - - False - .NET Framework 3.0 %28x86%29 - false - - - False - .NET Framework 3.5 - false - - - - - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04} - Org.Mentalis.Files - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/Utils.sln b/PROMS/ReferencedObjectsOld/LibSource/Utils/Utils.sln deleted file mode 100644 index b1e9e435..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/Utils.sln +++ /dev/null @@ -1,19 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 10.00 -# Visual Studio 2008 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Utils", "Utils.csproj", "{680054D3-49C4-40E7-92A5-67B97DCE6308}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Debug|Any CPU.Build.0 = Debug|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Any CPU.ActiveCfg = Release|Any CPU - {680054D3-49C4-40E7-92A5-67B97DCE6308}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/VEdt.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/VEdt.cs deleted file mode 100644 index ad55ff69..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/VEdt.cs +++ /dev/null @@ -1,98 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VEdt.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:35a $ - * - * $History: VEdt.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:35a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; - -namespace Utils -{ - /// - /// Summary description for VEdt. - /// - public class VEDateTime - { - public DateTime dt; - public string dtstr; - - public VEDateTime(long tm) - { - System.Globalization.CultureInfo info = - new System.Globalization.CultureInfo("en-US", false); - - System.Globalization.Calendar calendar = info.Calendar; - - - // do some conversion so that proms will be able to use this - // date/time. Proms had it in seconds since 00:00:00 1/1/1970. - // .NET has it in ticks since 00:00:00 1/1/1 - DateTime promsdt = new DateTime(1970,1,1,0,0,0,0); // Jan 1, 1970 - - // - // Get the offset time between this time zone and UTC (GMT) time. - // Convert the offset to seconds. - // Subtract the offset from the UTC time gotten for Jan 1, 1970 - ThisTimeZone TZ = new ThisTimeZone(); - TimeSpan TimeZoneSpan = TZ.GetUtcOffset(promsdt); // Time Zone offset from UTC - long TimeZoneAdj = Math.Abs(TimeZoneSpan.Ticks / 10000000); // convert to seconds - DateTime cnv = promsdt.AddSeconds(tm-TimeZoneAdj); - dtstr = cnv.ToLongDateString() + " " + cnv.ToLongTimeString(); - } - } - /* - * TimeZone is an Abstract Class. You need to inherit the TimeZone Class - * and overload a couple of it's functions in order to use it. - * - called in CalculatePromsDate() above. - */ - public class ThisTimeZone : TimeZone - { - private TimeZone curTZ; - public TimeSpan SpanTZ; - - public ThisTimeZone() - { - curTZ = CurrentTimeZone; // local timezone - } - - // get the UTC (GMT) value for the given date/time - public override TimeSpan GetUtcOffset(DateTime ForThisDate) - { - SpanTZ = curTZ.GetUtcOffset(ForThisDate); - return SpanTZ; - } - - // Name of the local Daylight savings time zone - public override string DaylightName - { - get - { - return curTZ.DaylightName; - } - } - - // Name of the local standard time zone - public override string StandardName - { - get - { - return curTZ.StandardName; - } - } - - // Get the start and end dates for daylight savings - public override System.Globalization.DaylightTime GetDaylightChanges(int year) - { - return curTZ.GetDaylightChanges(year); - } - } -} - diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/ZipFuncs.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/ZipFuncs.cs deleted file mode 100644 index ebfac433..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/ZipFuncs.cs +++ /dev/null @@ -1,647 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ZipFuncs.cs $ $Revision: 2 $ - * $Author: Kathy $ $Date: 8/10/04 9:12a $ - * - * $History: ZipFuncs.cs $ - * - * ***************** Version 2 ***************** - * User: Kathy Date: 8/10/04 Time: 9:12a - * Updated in $/LibSource/Utils - * force copy for backup of zip file on checks (was crashing) - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:35a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; -using System.Text; -using System.IO; -using System.Runtime.InteropServices; -using System.Collections.Specialized; - -namespace Utils -{ - /// - /// Zip and UnZip functions. - /// - public class ZipFuncs - { - [DllImport("Kernel32.DLL")] public static extern uint GetDriveType(char[] lpRootPathName); - private CDZipNET dzip; - private CDUnZipNET duzip; - - private string _strZipPathAndFile; // full path and zip file name - private bool _CancelZip; - - private bool _zipOnRemovable; // i.e. floppy disk - - private int _ArchiveType; // Full or Partial - - private string _strZipFileExcludeList; // what not to zip - - private string _strComment; // user's zip comment - private string _strFilesToArchive; // what to zip up - - private string _strArcTitle; // user's archive title - - private string _strDestPath; // place to unzip to - - //#define DRIVE_UNKNOWN 0 - //#define DRIVE_NO_ROOT_DIR 1 - //#define DRIVE_REMOVABLE 2 - //#define DRIVE_FIXED 3 - //#define DRIVE_REMOTE 4 - //#define DRIVE_CDROM 5 - //#define DRIVE_RAMDISK 6 - - private enum DriveType - { - DRIVE_UNKNOWN=0, - DRIVE_NO_ROOT_DIR, - DRIVE_REMOVABLE, - DRIVE_FIXED, - DRIVE_REMOTE, - DRIVE_CDROM, - DRIVE_RAMDISK - } - - private enum ZipTypes - { - Full=0, - Partial=1 - } - - // Contstructor for an existing Zip file - public ZipFuncs(string iZipFile) - { - _strZipPathAndFile = iZipFile; - SetupDestinationPath(); - _CancelZip = false; - // populate local variables with Zip file's - // Title, Archive type, and Comment - GetZipCommentInformation(); - } - - // Constructor for a new Zip file - public ZipFuncs() - { - _strZipPathAndFile = ""; - _CancelZip = false; - } - - //public properties - public string strArcTitle - { - get { return _strArcTitle; } - set {_strArcTitle = value.ToString(); } - } - - public string strZipPathAndFile - { - get { return _strZipPathAndFile;} - set - { - _strZipPathAndFile = value.ToString(); - SetupDestinationPath(); - // populate local variables with Zip file's - // Title, Archive type, and Comment - GetZipCommentInformation(); - } - } - - public string strUnZipDestPath - { - get { return _strDestPath; } - set - { - _strDestPath = value.ToString(); - } - } - - public bool CancelZip - { - get { return _CancelZip;} - set { _CancelZip = value; } - } - - public bool zipOnRemovable - { - get { return _zipOnRemovable;} - set { _zipOnRemovable = value;} - } - - public int ArchiveType - { - get { return _ArchiveType;} - set { _ArchiveType = value; } - } - - public string strFilesToArchive - { - get { return _strFilesToArchive; } - set { _strFilesToArchive = value.ToString(); } - } - - public string strZipFileExcludeList - { - get { return _strZipFileExcludeList; } - set { _strZipFileExcludeList = value.ToString(); } - } - - public string strComment - { - get {return _strComment;} - set - { -// if (value == null) -// _strComment = ""; -// else - _strComment = (value == null)?"":value.ToString(); - } - } - - public bool CreateNewZipFile() - { - return _GenerateZipFile(true); - } - - public bool UpdateZipFile() - { - return _GenerateZipFile(false); - } - - - private bool _GenerateZipFile(bool NewFileFile) - { - StringBuilder cmntTxt = new StringBuilder(); - bool rtnval; - ZipFuncsDlg zpDlg = new ZipFuncsDlg(); - - dzip = new CDZipNET(); - _CancelZip = false; - _zipOnRemovable = IsARemovableDisk(); - - // Setup DynaZip - - // build comment field text - cmntTxt.Append(_strArcTitle); - cmntTxt.Append("\n"); - if (_ArchiveType == (int)ZipFuncs.ZipTypes.Partial) - { - // Do not recurse the sub directories when doing a partial archive - cmntTxt.Append("PARTIAL\n"); - dzip.RecurseFlag = false; - } - else - { - cmntTxt.Append("FULL\n"); - dzip.RecurseFlag = true; - } - cmntTxt.Append(_strComment); - dzip.AddCommentFlag = true; - dzip.Comment = cmntTxt.ToString(); // zip file comment string - - // CompressionFactors 10 - 19 are not compatable with older zip programs - // (i.e WinZip 7.0) - dzip.CompressionFactor = 9; // maxium compression - dzip.ExcludeFollowingFlag = true; - dzip.ExcludeFollowing = _strZipFileExcludeList; - dzip.ItemList = _strFilesToArchive; - dzip.LargeZIPFilesFlag = true; - dzip.ZIPFile = _strZipPathAndFile; // zip file name with full path - - // Is the target zip path on a removable dirve? - if (_zipOnRemovable) - { - dzip.MultiVolumeControl = CDZipNET.MULTIVOLCONTROL.MV_USEMULTI; - } - else - { - dzip.MultiVolumeControl = CDZipNET.MULTIVOLCONTROL.MV_NONE; - } - - // setup status bars - dzip.MajorStatusFlag = true; - dzip.MinorStatusFlag = true; - dzip.ZipMajorStatus += new CDZipNET.OnZipMajorStatus(zpDlg.ZipMajorStatus_event); - dzip.ZipMinorStatus += new CDZipNET.OnZipMinorStatus(zpDlg.ZipMinorStatus_event); - _CancelZip = false; - - zpDlg.Show(); - - // Do the Zip function - if (!NewFileFile) - dzip.ActionDZ = CDZipNET.DZACTION.ZIP_UPDATE; //update existing zip file - else - dzip.ActionDZ = CDZipNET.DZACTION.ZIP_ADD; // create new zip file - - rtnval = (zpDlg.DialogResult == System.Windows.Forms.DialogResult.OK); - zpDlg.Dispose(); - - // check for errors during the zip function. - if (rtnval) - rtnval = CheckZipErrorCode(); - - // if we are zipping to a different location than the current procedure - // set directory, we always want to return false so that this newly - // created zip file is not placed in the VE-PROMS tree. - if (_zipOnRemovable || ZipFileNotInCurrentDirectory()) - rtnval = false; - - return rtnval; - } - - // If there is a problem with the Zip file header, try to fix it. - private bool FixZipFile() - { - bool rtnval; - string ZipFileName = _strZipPathAndFile; - string backupName = ZipFileName.Substring(0,ZipFileName.LastIndexOf(".")) + ".bku"; - _CancelZip = false; - // save a copy of the zip file - File.Copy(ZipFileName,backupName,true); - dzip.FixFlag = true; - dzip.ActionDZ = CDZipNET.DZACTION.ZIP_UPDATE; - if (dzip.ErrorCode == CDZipNET.ZIPRESPONSE.ZE_FORM ) - { - dzip.FixFlag = false; - dzip.FixHarderFlag = true; - dzip.ActionDZ = CDZipNET.DZACTION.ZIP_UPDATE; - dzip.FixHarderFlag = false; - } - rtnval = (dzip.ErrorCode == 0); // 0 = success - - if (!rtnval) - { - // not successful, so restore from the backup file - File.Copy(backupName,ZipFileName,true); - } - File.Delete(backupName); // delete the backup file - return rtnval; - } - - private bool CheckZipErrorCode() - { - bool rtnval; - - switch (dzip.ErrorCode) - { - case CDZipNET.ZIPRESPONSE.ZE_OK: // ZE_OK - rtnval = true; - break; - case CDZipNET.ZIPRESPONSE.ZE_FORM: // ZE_FORM - case CDZipNET.ZIPRESPONSE.ZE_TEST: // ZE_TEST - // Internal organization of ZIP file is dammaged. - // Try using the Fix function - // note that you cannot do the fix on removable media - if (!zipOnRemovable) - rtnval = FixZipFile(); - else - rtnval = false; - break; - case CDZipNET.ZIPRESPONSE.ZE_ABORT: // ZE_ABORT - rtnval = false; - break; - default: - rtnval = false; - break; - } - return rtnval; - } - - // If there is a problem with the Zip file header, try to fix it. - private bool FixUnZipFile() - { - bool rtnval; - string ZipFileName = _strZipPathAndFile; - string backupName = ZipFileName.Substring(0,ZipFileName.LastIndexOf(".")) + ".bku"; - _CancelZip = false; - dzip = new CDZipNET(); - dzip.ZIPFile = duzip.ZIPFile; - // save a copy of the zip file - File.Copy(ZipFileName,backupName,true); - dzip.FixFlag = true; - dzip.ActionDZ = CDZipNET.DZACTION.ZIP_UPDATE; - if (dzip.ErrorCode == CDZipNET.ZIPRESPONSE.ZE_FORM) - { - dzip.FixFlag = false; - dzip.FixHarderFlag = true; - dzip.ActionDZ = CDZipNET.DZACTION.ZIP_UPDATE; - dzip.FixHarderFlag = false; - } - rtnval = (dzip.ErrorCode == CDZipNET.ZIPRESPONSE.ZE_OK); // 0 = success - dzip.Dispose(); - - if (!rtnval) - { - // not successful, so restore from the backup file - File.Copy(backupName,ZipFileName,true); - } - File.Delete(backupName); // delete the backup file - return rtnval; - } - - private bool CheckUnZipErrorCode() - { - bool rtnval; - switch (duzip.ErrorCode) - { - case CDUnZipNET.UNZIPRESPONSE.UE_OK: // UE_OK - rtnval = true; - break; - case CDUnZipNET.UNZIPRESPONSE.UE_STRUCT: // UE_STRUCT - // Internal organization of ZIP file is dammaged. - // Try using the Fix function - rtnval = FixUnZipFile(); - break; - case CDUnZipNET.UNZIPRESPONSE.UE_ABORT: // UE_ABORT - case CDUnZipNET.UNZIPRESPONSE.UE_CANCEL: // UE_CANCEL - rtnval = false; - break; - default: - rtnval = false; - break; - } - return rtnval; - } - - public bool AddZipCommentInformation() - { - StringBuilder cmntTxt = new StringBuilder(); - dzip = new CDZipNET(); - _CancelZip = false; - // Save the current attributes of the zip file, update zip file - // and then restore attributes - // - the zip file might be readonly - System.IO.FileAttributes saveAttribs = File.GetAttributes(_strZipPathAndFile); - File.SetAttributes(_strZipPathAndFile,FileAttributes.Normal); - // add comment - cmntTxt.Append(_strArcTitle); - cmntTxt.Append("\n"); - if (_ArchiveType == (int)ZipTypes.Partial) - cmntTxt.Append("PARTIAL\n"); - else - cmntTxt.Append("FULL\n"); - cmntTxt.Append(_strComment); - dzip.AddCommentFlag = true; - dzip.Comment = cmntTxt.ToString(); - dzip.ZIPFile = _strZipPathAndFile; // zip file name with full path - dzip.ActionDZ = CDZipNET.DZACTION.ZIP_ADD; - File.SetAttributes(_strZipPathAndFile,saveAttribs); - return CheckZipErrorCode(); - } - - public bool GetZipCommentInformation() - { - int x; - string ZipComment; - string strArcType; - _CancelZip = false; - if (!(File.Exists(_strZipPathAndFile))) - return false; // !!! no zip file - duzip = new CDUnZipNET(); - duzip.ZIPFile = _strZipPathAndFile; // zip file name with full path - duzip.ActionDZ = CDUnZipNET.DUZACTION.UNZIP_GETCOMMENTSIZE; - if (!CheckUnZipErrorCode()) - return false; // error - if (duzip.ReturnCount <= 0) - return false; // no comment informat - duzip.ActionDZ = CDUnZipNET.DUZACTION.UNZIP_GETCOMMENT; - ZipComment = duzip.ReturnString; - x = ZipComment.IndexOf("\n"); - if (x < 0) return false; // nothing in comment - _strArcTitle = ZipComment.Substring(0,x); - ZipComment = ZipComment.Substring(x+1); - x = ZipComment.IndexOf("\n"); - if (x > 0) - { - strArcType = ZipComment.Substring(0,x); - if (strArcType.Equals("FULL")) - _ArchiveType = (int)ZipTypes.Full; - else - _ArchiveType = (int)ZipTypes.Partial; - _strComment = ZipComment.Substring(x+1); - } - else - { - // at this point, default to a full archive - _ArchiveType = (int)ZipTypes.Full; - // default to path and filename for the comment - _strComment = _strZipPathAndFile; - } - return true; - } - - private bool IsARemovableDisk() - { - uint DrvType; - string tmp = _strZipPathAndFile.Substring(0,2); - DrvType = GetDriveType(tmp.ToCharArray()); - return (DrvType.Equals((uint)DriveType.DRIVE_REMOVABLE)); - } - - private bool ZipFileNotInCurrentDirectory() - { - string curdir = Directory.GetCurrentDirectory(); - string tmpstr = _strZipPathAndFile.ToUpper(); - if (tmpstr.EndsWith(".ZIP")) - tmpstr = tmpstr.Substring(0,tmpstr.LastIndexOf(".")); - return tmpstr.Equals(curdir); - } - - public bool UnzipFromZipFile() - { - return _UnzipFromZipFile(true); // unzip from the archive - } - - public bool TestTheZipFile() - { - return _UnzipFromZipFile(false); // test the archive - } - - private bool _UnzipFromZipFile(bool ExtractFiles) - { - StringBuilder cmntTxt = new StringBuilder(); - bool rtnval; - ZipFuncsDlg zpDlg = new ZipFuncsDlg(); - // StringBuilder cmntTxt = new StringBuilder(); - // VEO_Archive arc = (VEO_Archive) _CurObj; - duzip = new CDUnZipNET(); - _zipOnRemovable = IsARemovableDisk(); - - // Setup DynaZip - - // zip file name with full path - duzip.ZIPFile = _strZipPathAndFile; - - //root of drive letter -// duzip.Destination = Path.GetPathRoot(_strZipPathAndFile); - duzip.Destination = _strDestPath; - - // what files to get from the zip file - duzip.Filespec = "*.*"; // get all files - - //Replace - this combination of flags results in unzipping all files whether - // they were changed or not. - duzip.FreshenFlag = false; - duzip.UpdateFlag = false; - - // Make a reference to a single byte to avoid null access - duzip.MemoryBlock = new Byte[1]; - - // true = Overwrite non-read only files without asking - duzip.OverwriteFlag = true; - - // true = proceed to unzip by traversing into folders - duzip.RecurseFlag = true; - - duzip.UnzipSubOptions = CDUnZipNET.UNZIPSUBOPTION.USO_NONE; - - // set this option to allow the overwriting of ReadOnly Files. - // this option only has meaning when the OverwriteFlag property - // is set to true - duzip.UnzipSubOptions |= CDUnZipNET.UNZIPSUBOPTION.USO_OVERWRITE_RO; - - // allow the MinorCancel event to respond to cancel requests - duzip.UnzipSubOptions |= CDUnZipNET.UNZIPSUBOPTION.USO_MINORCANCEL; - - // debug -// duzip.DiagnosticFlag = true; -// duzip.UnzipSubOptions |= CDUnZipNET.UNZIPSUBOPTION.USO_LOGZIPRESULTS; - - // setup status bars - duzip.MajorStatusFlag = true; - duzip.MinorStatusFlag = true; - duzip.MessageCallbackFlag = true; - duzip.UnZipMajorStatus += new CDUnZipNET.OnUnZipMajorStatus(zpDlg.ZipMajorStatus_event); - duzip.UnZipMinorStatus += new CDUnZipNET.OnUnZipMinorStatus(zpDlg.ZipMinorStatus_event); - - _CancelZip = false; - - zpDlg.Show(); // display the status dialog - - if (!ExtractFiles) - duzip.TestFlag = true; // don't extract, only test each item in zip file - - // Do the UnZip function - duzip.ActionDZ = CDUnZipNET.DUZACTION.UNZIP_EXTRACT; - rtnval = (zpDlg.DialogResult == System.Windows.Forms.DialogResult.OK); - zpDlg.Dispose(); - - // check for errors during the unzip function. - if (!CheckUnZipErrorCode()) - return false; // error - if (duzip.ReturnCount <= 0) - return false; // nothing unzipped - - return rtnval; - } - - public StringCollection ZipFileContents() - { - StringCollection ZipFileList = new StringCollection(); - StringBuilder cmntTxt = new StringBuilder(); - duzip = new CDUnZipNET(); - _zipOnRemovable = false; - - // Setup DynaZip - - // zip file name with full path - duzip.ZIPFile = _strZipPathAndFile; - - // what files to get from the zip file - duzip.Filespec = "*.*"; // get all files - - //Replace - this combination of flags results in unzipping all files whether - // they were changed or not. - duzip.FreshenFlag = false; - duzip.UpdateFlag = false; - - // Make a reference to a single byte to avoid null access - duzip.MemoryBlock = new Byte[1]; - - _CancelZip = false; - - // Do the UnZip function - duzip.ActionDZ = CDUnZipNET.DUZACTION.UNZIP_COUNTALLZIPMEMBERS; - int numItems = duzip.ReturnCount; - string str_tmpDate; - string str_tmpFileName; - for (int i=0;i 0) - { - // Adjust the destination path based on the full or partial - // path in the zip file - char [] trmchar = {'\\'}; - duzip.ActionDZ = CDUnZipNET.DUZACTION.UNZIP_GETNEXTNAMEDZIPINFO; - str_tmpFileName = duzip.zi_FileName; - // trim off the file name - str_tmpFileName = str_tmpFileName.ToUpper(); - str_tmpFileName = str_tmpFileName.Substring(0,str_tmpFileName.LastIndexOf("PROC.INI")); - // trim off any backslash - str_tmpFileName = str_tmpFileName.TrimEnd(trmchar); - str_tmpFileName = str_tmpFileName.ToUpper(); - if (str_tmpFileName.Length > 0) - { - if (strDestPath.LastIndexOf(str_tmpFileName) > 0) - strDestPath = strDestPath.Substring(0,strDestPath.Length - str_tmpFileName.Length); - } - } - _strDestPath = strDestPath; - return; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/ZipFuncsDlg.cs b/PROMS/ReferencedObjectsOld/LibSource/Utils/ZipFuncsDlg.cs deleted file mode 100644 index 5ad12d67..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/ZipFuncsDlg.cs +++ /dev/null @@ -1,164 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ZipFuncsDlg.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:35a $ - * - * $History: ZipFuncsDlg.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:35a - * Created in $/LibSource/Utils - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - - -namespace Utils -{ - /// - /// Dialog used to display the zip/unzip function status - /// - public class ZipFuncsDlg : System.Windows.Forms.Form - { - private System.Windows.Forms.ProgressBar progressBar1; - private System.Windows.Forms.ProgressBar progressBar2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button button1; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - private bool _CancelZip; - - public ZipFuncsDlg() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - _CancelZip = false; - this.DialogResult = System.Windows.Forms.DialogResult.OK; - } - - - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.progressBar1 = new System.Windows.Forms.ProgressBar(); - this.progressBar2 = new System.Windows.Forms.ProgressBar(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.button1 = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // progressBar1 - // - this.progressBar1.Location = new System.Drawing.Point(16, 40); - this.progressBar1.Name = "progressBar1"; - this.progressBar1.Size = new System.Drawing.Size(360, 23); - this.progressBar1.TabIndex = 0; - // - // progressBar2 - // - this.progressBar2.Location = new System.Drawing.Point(16, 104); - this.progressBar2.Name = "progressBar2"; - this.progressBar2.Size = new System.Drawing.Size(360, 23); - this.progressBar2.TabIndex = 1; - // - // label1 - // - this.label1.Location = new System.Drawing.Point(24, 16); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(352, 16); - this.label1.TabIndex = 2; - this.label1.Text = "label1"; - // - // label2 - // - this.label2.Location = new System.Drawing.Point(16, 80); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(360, 16); - this.label2.TabIndex = 3; - this.label2.Text = "label2"; - // - // button1 - // - this.button1.Location = new System.Drawing.Point(144, 144); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(104, 32); - this.button1.TabIndex = 4; - this.button1.Text = "Cancel"; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // ZipFuncs - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(400, 190); - this.Controls.Add(this.button1); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Controls.Add(this.progressBar2); - this.Controls.Add(this.progressBar1); - this.Name = "ZipFuncs"; - this.Text = "ZipFuncs"; - this.ResumeLayout(false); - - } - #endregion - - private void button1_Click(object sender, System.EventArgs e) - { - _CancelZip = true; - this.DialogResult = System.Windows.Forms.DialogResult.Cancel; - } - - public void ZipMajorStatus_event(String lpstrItem, int percent, ref int rc) - { - progressBar1.Value = percent; - label1.Text = lpstrItem; - - if (_CancelZip) - rc = 1; - else - rc = 0; - } - - public void ZipMinorStatus_event(String lpstrItem, int percent, ref int rc) - { - progressBar2.Value = percent; - label2.Text = lpstrItem; - - if (_CancelZip) - rc = 1; - else - rc = 0; - } - - - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/Utils/ZipFuncsDlg.resx b/PROMS/ReferencedObjectsOld/LibSource/Utils/ZipFuncsDlg.resx deleted file mode 100644 index 66e08b20..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/Utils/ZipFuncsDlg.resx +++ /dev/null @@ -1,175 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - ZipFuncs - - - 80 - - - True - - - Private - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/VlnProfiler.cs b/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/VlnProfiler.cs deleted file mode 100644 index b8ac2fa7..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/VlnProfiler.cs +++ /dev/null @@ -1,71 +0,0 @@ -using System; -using System.Collections.Specialized; - -namespace VlnProfiler -{ - /// - /// Summary description for Profiler. - /// - public class Profiler - { - static HybridDictionary dicTiming; - static HybridDictionary dicDuration; - - static Profiler() - { - Reset(); - } - - public static void Reset() - { - dicTiming = new HybridDictionary(); - dicTiming[" Total"]=DateTime.Now; - dicDuration = new HybridDictionary(); - } - - public static void Start(string sName) - { - dicTiming[sName]=DateTime.Now; - } - - public static void End(string sName) - { - if( dicDuration.Contains(sName)) - dicDuration[sName]=((TimeSpan) dicDuration[sName]) + (DateTime.Now - ((DateTime) dicTiming[sName])); - else - dicDuration[sName]=DateTime.Now - ((DateTime) dicTiming[sName]); - } - - public static string ToString(string Format) - { - string str=""; - string sep=""; - if(Format.IndexOf("%")>=0) - { - double ttl = Convert.ToDouble(((TimeSpan) (DateTime.Now - ((DateTime) dicTiming[" Total"]))).Ticks); - double ttlOther=ttl; - foreach(string strKey in dicDuration.Keys) - { - ttlOther-=((TimeSpan) dicDuration[strKey]).Ticks; - double dt = Convert.ToDouble(((TimeSpan) dicDuration[strKey]).Ticks)/ttl; - //TODO: If Percent - Convert to Percent of Total - str+=sep+dt.ToString(Format) + " " + strKey; - sep="\r\n"; - } - ttlOther = ttlOther/ttl; - str+=sep+ttlOther.ToString(Format) + " Other"; - } - else - { - foreach(string strKey in dicDuration.Keys) - { - str+=sep+((TimeSpan)dicDuration[strKey]).ToString(/*Format*/) + " " + strKey; - sep="\r\n"; - } - } - str+=sep + "".PadRight(20,'-'); - str+=sep + ((TimeSpan) (DateTime.Now - ((DateTime) dicTiming[" Total"]))).ToString(/*Format*/) + " Total"; - return str; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/VlnProfiler.csproj b/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/VlnProfiler.csproj deleted file mode 100644 index ec4d19d2..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/VlnProfiler.csproj +++ /dev/null @@ -1,102 +0,0 @@ - - - Local - 8.0.50727 - 2.0 - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC} - Debug - AnyCPU - - - - - VlnProfiler - - - JScript - Grid - IE50 - false - Library - VlnProfiler - OnBuildSuccess - - - - - - - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - - - - System - - - System.Data - - - System.XML - - - - - Code - - - Code - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/VlnProfiler.sln b/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/VlnProfiler.sln deleted file mode 100644 index 1ef8eb3e..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnProfiler/VlnProfiler.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VlnProfiler", "VlnProfiler.csproj", "{38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug.ActiveCfg = Release|.NET - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Debug.Build.0 = Release|.NET - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release.ActiveCfg = Release|.NET - {38044313-1E5E-4F20-A9E7-3CBDDDCADCDC}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/SpinnerFrm.cs b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/SpinnerFrm.cs deleted file mode 100644 index ee5d0fcd..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/SpinnerFrm.cs +++ /dev/null @@ -1,164 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: SpinnerFrm.cs $ $Revision: 2 $ - * $Author: Kathy $ $Date: 7/26/04 1:20p $ - * - * $History: SpinnerFrm.cs $ - * - * ***************** Version 2 ***************** - * User: Kathy Date: 7/26/04 Time: 1:20p - * Updated in $/LibSource/VlnStatus - * doevents for cancel button click - * - * ***************** Version 1 ***************** - * User: Kathy Date: 5/11/04 Time: 9:56a - * Created in $/LibSource/VlnStatus - * volian spinner control - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace VlnStatus -{ - /// - /// Create a status window with a progress bar - /// - public class SpinnerFrm : System.Windows.Forms.Form - { - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Label lblMsg; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private System.Windows.Forms.ProgressBar progressBar1; - - private bool abortFlag; - public SpinnerFrm(bool ab, bool canCancel) - { - abortFlag = ab; - // - // Required for Windows Form Designer support - // - InitializeComponent(); - if (!canCancel) this.btnCancel.Visible=false; - - this.progressBar1.Minimum=0; - this.progressBar1.Maximum=100; - this.progressBar1.Value=1; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.lblMsg = new System.Windows.Forms.Label(); - this.btnCancel = new System.Windows.Forms.Button(); - this.progressBar1 = new System.Windows.Forms.ProgressBar(); - this.SuspendLayout(); - // - // lblMsg - // - this.lblMsg.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; - this.lblMsg.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblMsg.Location = new System.Drawing.Point(16, 16); - this.lblMsg.Name = "lblMsg"; - this.lblMsg.Size = new System.Drawing.Size(288, 48); - this.lblMsg.TabIndex = 2; - this.lblMsg.Tag = "msg1"; - this.lblMsg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // btnCancel - // - this.btnCancel.Location = new System.Drawing.Point(128, 112); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(64, 24); - this.btnCancel.TabIndex = 3; - this.btnCancel.Text = "Cancel"; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // progressBar1 - // - this.progressBar1.Location = new System.Drawing.Point(16, 72); - this.progressBar1.Name = "progressBar1"; - this.progressBar1.Size = new System.Drawing.Size(288, 24); - this.progressBar1.TabIndex = 4; - // - // SpinnerFrm - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(318, 149); - this.ControlBox = false; - this.Controls.Add(this.progressBar1); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.lblMsg); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "SpinnerFrm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "VE-PROMS"; - this.TopMost = true; - this.ResumeLayout(false); - - } - #endregion - - - public void UpdateSpin() - { - if (this.progressBar1.Value==this.progressBar1.Maximum) this.progressBar1.Value=0; - this.progressBar1.Value=this.progressBar1.Value++; - this.progressBar1.PerformStep(); - System.Windows.Forms.Application.DoEvents(); - } - - public void UpdateSpinMsg(string txt) - { - this.lblMsg.Text = txt; - this.lblMsg.Refresh(); - this.Refresh(); - } - - private void btnCancel_Click(object sender, System.EventArgs e) - { - if( abortFlag ) - { - string message = "Are you sure you want to Cancel?"; - string caption = "Network Update"; - MessageBoxButtons buttons = MessageBoxButtons.YesNo; - DialogResult result; - result = MessageBox.Show(this, message, caption, buttons); - - if(result == DialogResult.Yes) - { - Environment.Exit(-1); - } - } - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/SpinnerFrm.resx b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/SpinnerFrm.resx deleted file mode 100644 index 22c1b6ad..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/SpinnerFrm.resx +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - SpinnerFrm - - - Private - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusBarFrm.cs b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusBarFrm.cs deleted file mode 100644 index 6828458b..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusBarFrm.cs +++ /dev/null @@ -1,232 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: StatusBarFrm.cs $ $Revision: 3 $ - * $Author: Jsj $ $Date: 4/08/04 9:50a $ - * - * $History: StatusBarFrm.cs $ - * - * ***************** Version 3 ***************** - * User: Jsj Date: 4/08/04 Time: 9:50a - * Updated in $/LibSource/VlnStatus - * added profile code and try to optimize - * - * ***************** Version 2 ***************** - * User: Jsj Date: 11/26/02 Time: 3:38p - * Updated in $/LibSource/VlnStatus - * Added overbounds check - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -//using ROProfiler; //don't forget to add VlnProfiler to the reference list - -namespace VlnStatus -{ - /// - /// Create a status window with a progress bar - /// - public class StatusBarFrm : System.Windows.Forms.Form - { - private System.Windows.Forms.ProgressBar progressBar1; - private System.Windows.Forms.Label lblBar; - private System.Windows.Forms.Label StatMsg; -// private string strLblLast=""; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public StatusBarFrm() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - Text = "Status"; - } - - public StatusBarFrm(string StatusBoxTitle) - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - Text = StatusBoxTitle; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.progressBar1 = new System.Windows.Forms.ProgressBar(); - this.lblBar = new System.Windows.Forms.Label(); - this.StatMsg = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // progressBar1 - // - this.progressBar1.Location = new System.Drawing.Point(29, 83); - this.progressBar1.Name = "progressBar1"; - this.progressBar1.Size = new System.Drawing.Size(297, 27); - this.progressBar1.TabIndex = 0; - // - // lblBar - // - this.lblBar.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblBar.Location = new System.Drawing.Point(29, 136); - this.lblBar.Name = "lblBar"; - this.lblBar.Size = new System.Drawing.Size(297, 16); - this.lblBar.TabIndex = 1; - this.lblBar.Text = "% Complete"; - this.lblBar.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // StatMsg - // - this.StatMsg.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.StatMsg.Location = new System.Drawing.Point(29, 18); - this.StatMsg.Name = "StatMsg"; - this.StatMsg.Size = new System.Drawing.Size(307, 56); - this.StatMsg.TabIndex = 2; - this.StatMsg.Text = "Progress Bar"; - this.StatMsg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // StatusBarFrm - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(350, 171); - this.ControlBox = false; - this.Controls.Add(this.StatMsg); - this.Controls.Add(this.lblBar); - this.Controls.Add(this.progressBar1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.Fixed3D; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "StatusBarFrm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Status"; - this.TopMost = true; - this.Load += new System.EventHandler(this.StatusBarFrm_Load); - this.ResumeLayout(false); - - } - #endregion - - private void StatusBarFrm_Load(object sender, System.EventArgs e) - { - - } - - public int Value - { - get - { - return progressBar1.Value; - } - set - { - if (value >= progressBar1.Maximum) - progressBar1.Value = progressBar1.Maximum; - else - progressBar1.Value = value; - UpateLabel(); - } - } - - public int Maximum - { - get - { - return progressBar1.Maximum; - } - set - { - progressBar1.Maximum = value; - } - } - - public int Step - { - get - { - return progressBar1.Step; - } - set - { - progressBar1.Step = value; - } - } - - public void PerformStep() - { - progressBar1.PerformStep(); - } - - private void UpateLabel() - { - lblBar.Text = (Math.Round((decimal)(progressBar1.Value * 100) / progressBar1.Maximum)).ToString(); - lblBar.Text += "% Complete"; -// if( lblBar.Text != strLblLast) -// { -// Profiler.Start("UpdateLabel"); - lblBar.Refresh(); -// lblBar.Update(); -// Profiler.End("UpdateLabel"); -// } -// strLblLast = lblBar.Text; - } - - public string StatusMessage - { - get - { - return StatMsg.Text; - } - set - { - StatMsg.Text = value; -// Profiler.Start("StatusMessage"); - StatMsg.Refresh(); -// StatMsg.Update(); -// Profiler.End("StatusMessage"); - } - } - - public string StatusBoxTitle - { - get - { - return Text; - } - set - { - Text = value; - } - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusBarFrm.resx b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusBarFrm.resx deleted file mode 100644 index 63f8de01..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusBarFrm.resx +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - StatusBarFrm - - - True - - - Private - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusMessageFrm.cs b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusMessageFrm.cs deleted file mode 100644 index 9dbf8d70..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusMessageFrm.cs +++ /dev/null @@ -1,140 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: StatusMessageFrm.cs $ $Revision: 3 $ - * $Author: Jsj $ $Date: 5/11/04 9:30a $ - * - * $History: StatusMessageFrm.cs $ - * - * ***************** Version 3 ***************** - * User: Jsj Date: 5/11/04 Time: 9:30a - * Updated in $/LibSource/VlnStatus - * - * ***************** Version 2 ***************** - * User: Jsj Date: 11/26/02 Time: 3:38p - * Updated in $/LibSource/VlnStatus - * Added overbounds check - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace VlnStatus -{ - /// - /// Create status message window. - /// - public class StatusMessageFrm : System.Windows.Forms.Form - { - private System.Windows.Forms.Label lblStatMsg; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public StatusMessageFrm() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - } - - public StatusMessageFrm(string StatTitle) - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - Text = StatTitle; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.lblStatMsg = new System.Windows.Forms.Label(); - this.SuspendLayout(); - // - // lblStatMsg - // - this.lblStatMsg.Location = new System.Drawing.Point(19, 20); - this.lblStatMsg.Name = "lblStatMsg"; - this.lblStatMsg.Size = new System.Drawing.Size(420, 81); - this.lblStatMsg.TabIndex = 0; - this.lblStatMsg.Text = "Put Satus Message Here"; - this.lblStatMsg.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // StatusMessageFrm - // - this.AutoScaleBaseSize = new System.Drawing.Size(7, 19); - this.ClientSize = new System.Drawing.Size(457, 117); - this.ControlBox = false; - this.Controls.Add(this.lblStatMsg); - this.Font = new System.Drawing.Font("Tahoma", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "StatusMessageFrm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Status"; - this.TopMost = true; - this.Load += new System.EventHandler(this.StatusMessageFrm_Load); - this.ResumeLayout(false); - - } - #endregion - - private void StatusMessageFrm_Load(object sender, System.EventArgs e) - { - - } - - public string StatusMessage - { - get - { - return lblStatMsg.Text; - } - set - { - lblStatMsg.Text = value; - lblStatMsg.Refresh(); - } - } - - public string StatusBoxTitle - { - get - { - return Text; - } - set - { - Text = value; - } - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusMessageFrm.resx b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusMessageFrm.resx deleted file mode 100644 index 7edd5b3c..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/StatusMessageFrm.resx +++ /dev/null @@ -1,139 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - StatusMessageFrm - - - True - - - 80 - - - True - - - Private - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/App.ico b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/App.ico deleted file mode 100644 index 3a5525fd..00000000 Binary files a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/App.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/AssemblyInfo.cs.bak deleted file mode 100644 index 2cef92ab..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/Form1.cs b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/Form1.cs deleted file mode 100644 index 3c097662..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/Form1.cs +++ /dev/null @@ -1,191 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: Form1.cs $ $Revision: 5 $ - * $Author: Kathy $ $Date: 7/27/04 11:06a $ - * - * $History: Form1.cs $ - * - * ***************** Version 5 ***************** - * User: Kathy Date: 7/27/04 Time: 11:06a - * Updated in $/LibSource/VlnStatus/Test - * add spinner test - * - * ***************** Version 4 ***************** - * User: Jsj Date: 11/26/02 Time: 4:25p - * Updated in $/LibSource/VlnStatus/Test - * updated test - * - * ***************** Version 3 ***************** - * User: Jsj Date: 11/26/02 Time: 3:37p - * Updated in $/LibSource/VlnStatus/Test - * added header - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using VlnStatus; - -namespace Test -{ - /// - /// Test the status windows. - /// - public class Form1 : System.Windows.Forms.Form - { - private System.Windows.Forms.Button btnTest; - private System.Windows.Forms.Button btnStatMsg; - private System.Windows.Forms.Button btnSpinner; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public Form1() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.btnTest = new System.Windows.Forms.Button(); - this.btnStatMsg = new System.Windows.Forms.Button(); - this.btnSpinner = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // btnTest - // - this.btnTest.Location = new System.Drawing.Point(208, 64); - this.btnTest.Name = "btnTest"; - this.btnTest.Size = new System.Drawing.Size(120, 23); - this.btnTest.TabIndex = 0; - this.btnTest.Text = "Test Status Bar"; - this.btnTest.Click += new System.EventHandler(this.btnTest_Click); - // - // btnStatMsg - // - this.btnStatMsg.Location = new System.Drawing.Point(32, 64); - this.btnStatMsg.Name = "btnStatMsg"; - this.btnStatMsg.Size = new System.Drawing.Size(144, 23); - this.btnStatMsg.TabIndex = 1; - this.btnStatMsg.Text = "Test Status Message"; - this.btnStatMsg.Click += new System.EventHandler(this.btnStatMsg_Click); - // - // btnSpinner - // - this.btnSpinner.Location = new System.Drawing.Point(360, 64); - this.btnSpinner.Name = "btnSpinner"; - this.btnSpinner.Size = new System.Drawing.Size(104, 24); - this.btnSpinner.TabIndex = 2; - this.btnSpinner.Text = "Test Spinner"; - this.btnSpinner.Click += new System.EventHandler(this.btnSpinner_Click); - // - // Form1 - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(504, 149); - this.Controls.Add(this.btnSpinner); - this.Controls.Add(this.btnStatMsg); - this.Controls.Add(this.btnTest); - this.Name = "Form1"; - this.Text = "Form1"; - this.ResumeLayout(false); - - } - #endregion - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.Run(new Form1()); - } - - private void btnTest_Click(object sender, System.EventArgs e) - { - int j=0, cnt = 2000; - string StatStr = "Processing j= "; - string NewStatBoxTitle = "Status left to do: "; -// VlnStatusBar StatWindow = new VlnStatusBar(); // defaults to a title of "Status" - VlnStatusBar StatWindow = new VlnStatusBar("Test Status Bar Window"); - StatWindow.BarMax = 2000; - StatWindow.BarStepValue = 1; - StatWindow.BarValue = 0; - - - for (j=1; j <= 2000; j++) - { - StatWindow.StatMsg = StatStr + j.ToString(); - // can also change the status box title on the fly - StatWindow.StatusBoxTitle = NewStatBoxTitle + cnt.ToString(); -// StatWindow.PerformStep(j); - StatWindow.PerformStep(); - for (int k=0; k<5000; k++); - cnt--; - } - StatWindow.Dispose(); - } - - private void btnStatMsg_Click(object sender, System.EventArgs e) - { - int j=0, cnt =2000; - string StatStr = "Processing j= "; - string NewStatBoxTitle = "Status left to do: "; -// VlnStatusMessage StatMsgWindow = new VlnStatusMessage(); // defaults to a title of "Status" - VlnStatusMessage StatMsgWindow = new VlnStatusMessage("Test Status Message Window"); - - for (j=1; j<= 2000; j++) - { - StatMsgWindow.StatusMessage = StatStr + j.ToString(); - // can also change the status box title on the fly - StatMsgWindow.StatusBoxTitle = NewStatBoxTitle + cnt.ToString(); - for (int k=0; k < 5000; k++); - cnt--; - } - StatMsgWindow.Dispose(); - } - - private void btnSpinner_Click(object sender, System.EventArgs e) - { - int cnt = 0; - VlnSpinner spin = new VlnSpinner(2,25,"- Getting Lock Info for ","filename",true,true,true); - while(spin.SpinnerWait(cnt>1000)) - { - cnt++; - } - spin.Dispose(); - - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/Form1.resx b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/Form1.resx deleted file mode 100644 index bfbf6cad..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/Form1.resx +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - Form1 - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - Private - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/Test.csproj b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/Test.csproj deleted file mode 100644 index 046e43ea..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/Test/Test.csproj +++ /dev/null @@ -1,124 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnSpinner.cs b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnSpinner.cs deleted file mode 100644 index bf9aed39..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnSpinner.cs +++ /dev/null @@ -1,167 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VlnSpinner.cs $ $Revision: 2 $ - * $Author: Kathy $ $Date: 7/26/04 1:21p $ - * - * $History: VlnSpinner.cs $ - * - * ***************** Version 2 ***************** - * User: Kathy Date: 7/26/04 Time: 1:21p - * Updated in $/LibSource/VlnStatus - * add comment - * - * ***************** Version 1 ***************** - * User: Kathy Date: 5/11/04 Time: 9:56a - * Created in $/LibSource/VlnStatus - * volian spinner control - *********************************************************************************************/ - -using System; -using System.Diagnostics; -using System.Text; - -namespace VlnStatus -{ - /* - ** The following values are taken by the Spinner class constructor: - ** - ** spindelay - is the number of seconds to wait before putting - ** up the message and spinner. - ** - ** spinfreq - is the minimum delay time in milliseconds before - ** returning to the caller. - ** - ** spinmsg1 - is a caller message put up with the spinner - ** spinmsg2 - is a second caller message concatenated to spinmsg1 - ** both spinmsg1 and spinmsg2 may be NULL for no messages. - ** - ** AbortFlag - is a flag. If non-zero takes a DB_Exit(255) - ** if the user hits the Esc key while spinning. - ** can be defaulted. - ** - ** - ** SpinnerWait puts up a delayed message with a spinner. - ** - ** AutoTermFlag - spinner returns 0 if this value is non-zero - ** or Esc was pressed and AbortFlag not set. - ** A 1 is returned if AutoTermFlag is zero. - ** - ** The purpose of this function is to generate interruptable/abortable - ** while or do-while loops in code which is waiting for an event to - ** occur. Below is a simple example: - ** - ** { Spinner spin(2,25,"- Waiting for ", filename, 1); - ** while( spin.SpinnerWait( stat(filename,&temp) || temp.st_size ) {;} - ** } - ** - ** This loop returns zero if filename does not exist, or if it does - ** exist and has a non-zero length, otherwise it waits at least - ** 25 milliseconds, and returns 1 so that the predicate test - ** stat(filename,&temp) || temp.st_size - ** is tested again. If the loop continues for 2 seconds, a message - ** and spinner is posted. If the user presses the Esc key, DB_Exit(255) - ** is taken. - ** - ** Note, that the SpinnerWait function will close the message window - ** when the Spinner class object goes out of scope, as the desctructor - ** handles the window closures. Note also, that a new instance of the - ** object must be generated with each use. - */ - public class VlnSpinner - { - SpinnerFrm spinFrm; - private int spinstart; - private int spindelay; - private int spinfreq; - private string spinmsg1; - private string spinmsg2; - private bool abortflag; - private bool canCancel; - private string msgprefix; - private bool firstspin; - private bool firstpass; - - public VlnSpinner(int sd, int sf, string sm1, string sm2, bool af, bool prefix, bool showCancel) - { - spindelay=sd; - spinfreq=sf; - spinmsg1=sm1; - spinmsg2=sm2; - abortflag=af; - canCancel = showCancel; - firstpass=true; - firstspin=true; - - spinFrm = null; - if(prefix) - msgprefix="Database File in Use by another user \n"; - else - msgprefix=" "; - } - - public void Dispose() - { - if(spinFrm!=null) spinFrm.Dispose(); - } - - public bool SpinnerWait(bool AutoTermFlag) - { - if( !AutoTermFlag ) - { - if( firstpass ) - { - // Tick is equal to 100 nanoseconds. - // nanosecond is 1 billionth of a second. - spinstart = (int)(DateTime.Now.Ticks/10000000) + spindelay; - firstpass = false; - } - if( !firstspin ) - { - SpinnerTick(); - TickTock(spinfreq); - } - else - { - if(spinstart <= (int)(DateTime.Now.Ticks/10000000)) SpinnerTick(); - TickTock(spinfreq); - } - } - return (!AutoTermFlag); - } - private void TickTock(int spinfreq) - { - long cur = DateTime.Now.Ticks; - long getto = cur+(spinfreq*100); - while (cur <= getto) - cur = DateTime.Now.Ticks; - } - - private void SpinMessage(string msg1,string msg2,string msg3,int len) - { - StringBuilder buff = new StringBuilder(80); - buff.Append(msg1); - if (msg2!=null)buff.Append(msg2); - if (msg3!=null)buff.Append(msg3); - spinFrm.UpdateSpinMsg(buff.ToString()); - } - - private void SpinnerTick() - { - int windowcol; - if(firstspin) - { - windowcol=msgprefix.Length+2; - if(spinmsg1!=null) windowcol+=spinmsg1.Length; - if(spinmsg2!=null) windowcol+=spinmsg2.Length; - spinFrm = new SpinnerFrm(abortflag, canCancel); - spinFrm.Show(); - SpinMessage(msgprefix,spinmsg1,spinmsg2,windowcol+1); - firstspin = false; - } - spinFrm.UpdateSpin(); - } - } -} - diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatus.csproj b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatus.csproj deleted file mode 100644 index e1347c8e..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatus.csproj +++ /dev/null @@ -1,125 +0,0 @@ - - - Local - 8.0.50727 - 2.0 - {551CB7B3-00B1-11D7-8590-482B59000000} - Debug - AnyCPU - - - - - VlnStatus - - - JScript - Grid - IE50 - false - Library - VlnStatus - OnBuildSuccess - - - - - - - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - - - - System - - - System.Data - - - System.Drawing - - - System.Windows.Forms - - - System.XML - - - - - Code - - - Form - - - Form - - - Code - - - Code - - - StatusBarFrm.cs - Designer - - - StatusMessageFrm.cs - Designer - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatus.sln b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatus.sln deleted file mode 100644 index c32ea981..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatus.sln +++ /dev/null @@ -1,28 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VlnStatus", "VlnStatus.csproj", "{551CB7B3-00B1-11D7-8590-482B59000000}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{551CB7BA-00B1-11D7-8590-482B59000000}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug.ActiveCfg = Debug|.NET - {551CB7B3-00B1-11D7-8590-482B59000000}.Debug.Build.0 = Debug|.NET - {551CB7B3-00B1-11D7-8590-482B59000000}.Release.ActiveCfg = Release|.NET - {551CB7B3-00B1-11D7-8590-482B59000000}.Release.Build.0 = Release|.NET - {551CB7BA-00B1-11D7-8590-482B59000000}.Debug.ActiveCfg = Debug|.NET - {551CB7BA-00B1-11D7-8590-482B59000000}.Release.ActiveCfg = Release|.NET - {551CB7BA-00B1-11D7-8590-482B59000000}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatusBar.cs b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatusBar.cs deleted file mode 100644 index a7a4e2cd..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatusBar.cs +++ /dev/null @@ -1,148 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VlnStatusBar.cs $ $Revision: 4 $ - * $Author: Jsj $ $Date: 11/26/02 4:25p $ - * - * $History: VlnStatusBar.cs $ - * - * ***************** Version 4 ***************** - * User: Jsj Date: 11/26/02 Time: 4:25p - * Updated in $/LibSource/VlnStatus - * fixed problem with counter - * - * ***************** Version 3 ***************** - * User: Jsj Date: 11/26/02 Time: 3:38p - * Updated in $/LibSource/VlnStatus - * Added overbounds check - *********************************************************************************************/ -using System; - -namespace VlnStatus -{ - /// - /// Creates a Status Window with a progression bar control. - /// - /// This class has two constructors. One allows you to pass in the title - /// of the Status Box. The Other provides a default title of "Status". - /// The Status Box Title can also be set/changed via the StatusBoxTitle - /// property. - /// - /// - /// - public class VlnStatusBar - { - StatusBarFrm StatBar; - private int Cnt; - - // Create a status window with the default title of "Status" - public VlnStatusBar() - { - StatBar = new StatusBarFrm(); - StatBar.Show(); - } - - // Create a status window with the passed in title - public VlnStatusBar(string Title) - { - StatBar = new StatusBarFrm(Title); - StatBar.Show(); - } - - // Increament the the status bar by the passed in value. - public void PerformStep(int val) - { -// StatBar.Value = val; -// Cnt = val; - BarValue = val; - StatBar.PerformStep(); - } - - // Increament the the status bar by one - public void PerformStep() - { -// StatBar.Value = StatBar.Value + 1; - Cnt++; - BarValue = Cnt; - StatBar.PerformStep(); - } - - // This property gets or sets the current status bar value. - public int BarValue - { - get - { - return StatBar.Value; - } - set - { - StatBar.Value = value; - Cnt = value; - } - } - - // This property sets or gets the maximum value that the - // BarValue property can be. i.e. when BarValue reaches this - // number, the status bar is completely displayed. - public int BarMax - { - get - { - return StatBar.Maximum; - } - set - { - StatBar.Maximum = value; - } - } - - // This property sets or gets the increamenting value used to - // move the status bar. For example, if set to 5, each tick of - // the status bar represents a value of 5. - public int BarStepValue - { - get - { - return StatBar.Step; - } - set - { - StatBar.Step = value; - } - } - - // This property sets or gets the message above the status bar. - public string StatMsg - { - get - { - return StatBar.StatusMessage; - } - set - { - StatBar.StatusMessage = value; - } - } - - // This property sets or gets the Status Window Title - public string StatusBoxTitle - { - get - { - return StatBar.StatusBoxTitle; - } - set - { - StatBar.StatusBoxTitle = value; - } - } - - public void Dispose() - { - StatBar.Dispose(); - } - - } -} - diff --git a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatusMessage.cs b/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatusMessage.cs deleted file mode 100644 index e0221ee8..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/VlnStatus/VlnStatusMessage.cs +++ /dev/null @@ -1,79 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VlnStatusMessage.cs $ $Revision: 3 $ - * $Author: Jsj $ $Date: 11/26/02 3:38p $ - * - * $History: VlnStatusMessage.cs $ - * - * ***************** Version 3 ***************** - * User: Jsj Date: 11/26/02 Time: 3:38p - * Updated in $/LibSource/VlnStatus - * Added overbounds check - *********************************************************************************************/ - -using System; - -namespace VlnStatus -{ - /// - /// Creates a Status Window to display a status message. - /// - /// This class has two constructors. One allows you to pass in the title - /// of the Status Box. The Other provides a default title of "Status". - /// The Status Box Title can also be set/changed via the StatusBoxTitle - /// property. - /// - /// - public class VlnStatusMessage - { - StatusMessageFrm StatusMessageBox; - - // Create a status window with the default title of "Status" - public VlnStatusMessage() - { - StatusMessageBox = new StatusMessageFrm(); - StatusMessageBox.Show(); - } - - // Create a status window with the passed in title. - public VlnStatusMessage(string StatusBoxTitle) - { - StatusMessageBox = new StatusMessageFrm(StatusBoxTitle); - StatusMessageBox.Show(); - } - - // This property gets or sets the current status message - public string StatusMessage - { - get - { - return StatusMessageBox.StatusMessage; - } - set - { - StatusMessageBox.StatusMessage = value; - } - } - - // This property gets or sets the status box title - public string StatusBoxTitle - { - get - { - return StatusMessageBox.StatusBoxTitle; - } - set - { - StatusMessageBox.StatusBoxTitle = value; - } - } - - public void Dispose() - { - StatusMessageBox.Dispose(); - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/CvtFont/CvtFont.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/CvtFont/CvtFont.cs deleted file mode 100644 index 83d9cc00..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/CvtFont/CvtFont.cs +++ /dev/null @@ -1,175 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace CvtFont -{ - // - - public static class CvtFont - { - private static string [] OldNames = { - "ELITE", - "PICA", - "LN_PRN", - "CONDENSE", - "SANSERIF", - "PICA12", - "PROPORTIONAL", - "PROPT12", - "HVLPT18", - "HVLPT25", - "SPECIALCHARS", - "PT14", - "SANSERIF14", - "SANSERIF17", - "HVLPT12", - "NARRATOR", - "MEDUPUNIVERS", - "LGUPMED16", - "PROPT10", - "LG1275HP4SI", - "HVLPT10", - "HVLPT8", - "HVLPT14", - "SANSERIF25", - "EYECHART", - "TIMES11", - "SANSCOND", - "BIGSCRIPT" - }; - private static string[] NewXML = { - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - }; - private static string[] NewFamily = { - "Prestige Elite Tall", - "Courier New", - "Times New Roman", - "Times New Roman", - "Letter Gothic", - "Courier New", - "Arial", - "Arial", - "Times New Roman", - "Times New Roman", - "VolianDraw XXXXXX", - "Letter Gothic", - "Arial", - "Arial", - "Times New Roman", - "Gothic Ultra", - "NA", - "Letter Gothic Tall", - "Arial", - "Letter Gothic Tall", - "Times New Roman", - "Times New Roman", - "Times New Roman", - "Arial", - "Gothic Ultra", - "Times New Roman", - "Letter Gothic", - "VolianScript" - }; - private static int[] NewSize = { - 10, - 12, - 7, - 7, - 10, - 12, - 18, - 11, - 18, - 25, - 12, - 12, - 14, - 17, - 12, - 12, - 0, - 7, - 0, - 10, - 10, - 8, - 14, - 25, - 14, - 11, - 7, - 32 - }; - - - private static Dictionary OldToNewStrings=null; - public static string ConvertToString(string oldstr) - { - if (OldToNewStrings == null) InitializeDictionary(); - return OldToNewStrings[oldstr]; - } - - public static string ConvertToFamily(string oldstr) - { - int i = 0; - foreach (string str in OldNames) - { - if (str == oldstr) return NewFamily[i]; - i++; - } - return null; - } - public static int ConvertToSize(string oldstr) - { - int i = 0; - foreach (string str in OldNames) - { - if (str == oldstr) return NewSize[i]; - i++; - } - return -1; - } - //public static XmlElement ConvertToXML(string oldstr) - //{ - // if (OldToNewStrings == null) InitializeDictionary(); - // XmlElement xml = new XmlElement(); - // xml.InnerXml = OldToNewStrings[oldstr]; - // return xml; - //} - private static void InitializeDictionary() - { - int i = 0; - foreach (string str in OldNames) - OldToNewStrings.Add(str, NewXML[i]); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/CvtFont/CvtFont.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/CvtFont/CvtFont.csproj deleted file mode 100644 index 2b2c96fe..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/CvtFont/CvtFont.csproj +++ /dev/null @@ -1,47 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D} - Library - Properties - CvtFont - CvtFont - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/CvtFont/Properties/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/CvtFont/Properties/AssemblyInfo.cs deleted file mode 100644 index 06df2886..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/CvtFont/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CvtFont")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Volian Enterprises, Inc.")] -[assembly: AssemblyProduct("CvtFont")] -[assembly: AssemblyCopyright("Copyright © Volian Enterprises, Inc. 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d2266793-0f12-4f71-bbd4-0a1617554b27")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/AssemblyInfo.cpp b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/AssemblyInfo.cpp deleted file mode 100644 index b4591321..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/AssemblyInfo.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include "stdafx.h" - -using namespace System::Reflection; -using namespace System::Runtime::CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly:AssemblyTitleAttribute("")]; -[assembly:AssemblyDescriptionAttribute("")]; -[assembly:AssemblyConfigurationAttribute("")]; -[assembly:AssemblyCompanyAttribute("")]; -[assembly:AssemblyProductAttribute("")]; -[assembly:AssemblyCopyrightAttribute("")]; -[assembly:AssemblyTrademarkAttribute("")]; -[assembly:AssemblyCultureAttribute("")]; - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the value or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly:AssemblyVersionAttribute("1.0.*")]; - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project directory. -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly:AssemblyDelaySignAttribute(false)]; -[assembly:AssemblyKeyFileAttribute("E:\\proms.net\\Public Key\\vlnkey.snk")]; -[assembly:AssemblyKeyNameAttribute("")]; - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.cpp b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.cpp deleted file mode 100644 index 49a084e9..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.cpp +++ /dev/null @@ -1,69 +0,0 @@ -// This is the main DLL file. - -#include "stdafx.h" - -#include "DirectoryAndFileAPI.h" - -using namespace DirectoryAndFileAPI; - -char *DirAndFileFuncts::StringToCharStr(String *InStr) -{ - int len = (InStr->get_Length)(); - char *rtnstr = new char [len+1]; - ZeroMemory(rtnstr,len+1); - for (int i=0; iget_Chars)(i); - return rtnstr; -} - -String *DirAndFileFuncts::GetLongName(String *NameIn) -{ - char *tmpNameIn; - char *tmpNameOut; - char *fnPtr = NULL; - int rtnval; - - tmpNameIn = StringToCharStr(NameIn); - - tmpNameOut = new char[1]; - memset(tmpNameOut,0,1); - - // This will get the buffer size we need - rtnval = GetFullPathName(tmpNameIn,1,tmpNameOut,&fnPtr); - - if (rtnval > 1) - { - delete tmpNameOut; - tmpNameOut = new char[rtnval+1]; - memset(tmpNameOut,0,rtnval+1); - rtnval = GetFullPathName(tmpNameIn,rtnval,tmpNameOut,&fnPtr); - } - - NameOut = new String(tmpNameOut); - return NameOut; -} - -String *DirAndFileFuncts::GetShortName(String *NameIn) -{ - char *tmpNameIn; - char *tmpNameOut; - int rtnval; - - tmpNameIn = StringToCharStr(NameIn); - - tmpNameOut = new char[1]; - memset(tmpNameOut,0,1); - - rtnval = GetShortPathName(tmpNameIn,tmpNameOut,1); - - if (rtnval > 1) - { - delete tmpNameOut; - tmpNameOut = new char[rtnval+1]; - memset(tmpNameOut,0,rtnval+1); - rtnval = GetShortPathName(tmpNameIn,tmpNameOut,rtnval); - } - - NameOut = new String(tmpNameOut); - return NameOut; -} \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.h b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.h deleted file mode 100644 index 3977fffa..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.h +++ /dev/null @@ -1,24 +0,0 @@ -// DirectoryAndFileAPI.h - -#pragma once - -#include -#include -#include - -using namespace System; - -namespace DirectoryAndFileAPI -{ - public __gc class DirAndFileFuncts - { - public: - String *NameOut; - DirAndFileFuncts() {}; - // TODO: Add your methods for this class here. - String *GetLongName(String *NameIn); - String *GetShortName(String *NameIn); - private: - char *StringToCharStr(String *InStr); - }; -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.sln b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.sln deleted file mode 100644 index f662efe8..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 7.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "DirectoryAndFileAPI", "DirectoryAndFileAPI.vcproj", "{A20EE163-393A-11D7-85C8-92B997000000}" -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - ConfigName.0 = Debug - ConfigName.1 = Release - EndGlobalSection - GlobalSection(ProjectDependencies) = postSolution - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {A20EE163-393A-11D7-85C8-92B997000000}.Debug.ActiveCfg = Debug|Win32 - {A20EE163-393A-11D7-85C8-92B997000000}.Debug.Build.0 = Debug|Win32 - {A20EE163-393A-11D7-85C8-92B997000000}.Release.ActiveCfg = Release|Win32 - {A20EE163-393A-11D7-85C8-92B997000000}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.vcproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.vcproj deleted file mode 100644 index 904ea938..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/DirectoryAndFileAPI.vcproj +++ /dev/null @@ -1,136 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/ReadMe.txt b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/ReadMe.txt deleted file mode 100644 index 6ec15bfe..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/ReadMe.txt +++ /dev/null @@ -1,31 +0,0 @@ -======================================================================== - DYNAMIC LINK LIBRARY : DirectoryAndFileAPI Project Overview -======================================================================== - -AppWizard has created this DirectoryAndFileAPI DLL for you. - -This file contains a summary of what you will find in each of the files that -make up your DirectoryAndFileAPI application. - -DirectoryAndFileAPI.vcproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -DirectoryAndFileAPI.cpp - This is the main DLL source file. - -DirectoryAndFileAPI.h - This file contains a class declaration. - -AssemblyInfo.cpp - Contains custom attributes for modifying assembly metadata. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/Stdafx.cpp b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/Stdafx.cpp deleted file mode 100644 index 39ee6e67..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/Stdafx.cpp +++ /dev/null @@ -1,5 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// DirectoryAndFileAPI.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/Stdafx.h b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/Stdafx.h deleted file mode 100644 index 459e5fc4..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/DirectoryAndFileAPI/Stdafx.h +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, -// but are changed infrequently - -#pragma once - -#using - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/AssemblyInfo.cs deleted file mode 100644 index c713863a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/AssemblyInfo.cs.bak deleted file mode 100644 index 9f89a328..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/FMTformat.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/FMTformat.csproj deleted file mode 100644 index c39c855f..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/FMTformat.csproj +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/FMTformat.sln b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/FMTformat.sln deleted file mode 100644 index 1e962598..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/FMTformat.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FMTformat", "FMTformat.csproj", "{6A525742-00CA-450B-ABE7-F52991AEA0F7}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {6A525742-00CA-450B-ABE7-F52991AEA0F7}.Debug.ActiveCfg = Debug|.NET - {6A525742-00CA-450B-ABE7-F52991AEA0F7}.Debug.Build.0 = Debug|.NET - {6A525742-00CA-450B-ABE7-F52991AEA0F7}.Release.ActiveCfg = Release|.NET - {6A525742-00CA-450B-ABE7-F52991AEA0F7}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/FmtFileVars.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/FmtFileVars.cs deleted file mode 100644 index 82c24c8c..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/FMTformat/FmtFileVars.cs +++ /dev/null @@ -1,2169 +0,0 @@ -using System; -using System.IO; -using System.Text; -using System.Collections; -using System.Windows.Forms; -using System.Runtime.Serialization.Formatters.Binary; // read in struct -using System.Xml; -using System.Xml.Serialization; - - -public class fmtDefineAndEnums -{ - // values for AccessableTypes - public static ushort ADDING_CAUTION = 1; - public static ushort ADDING_NOTE = 2; - public static ushort ADDING_RNO = 4; - public static ushort ADDING_SUB = 8; - public static ushort ADDING_TABLE = 16; - public static ushort ADDING_NEXT = 32; - public static ushort ADDING_PREV = 64; - - /* Fonts: index into fonts[NFONTS] array */ - - public static uint ELITE = 0; - public static uint PICA = 1; - public static uint LN_PRN = 2; - public static uint CONDENSE = 3; - public static uint SANSERIF = 4; - public static uint PICA12 = 5; - public static uint PROPORTIONAL = 6; - public static uint PROPT12 = 7; - public static uint HVLPT18 = 8; - public static uint HVLPT25 = 9; - public static uint SPECIALCHARS = 10; - public static uint PT14 = 11; - public static uint SANSERIF14 = 12; - public static uint SANSERIF17 = 13; - public static uint HVLPT12 = 14; - public static uint NARRATOR = 15; - public static uint MEDUPUNIVERS = 16; - public static uint LGUPMED16 = 17; - public static uint PROPT10 = 18; - public static uint LG1275HP4SI = 19; - public static uint HVLPT10 = 20; - public static uint HVLPT8 = 21; - public static uint HVLPT14 = 22; - public static uint SANSERIF25 = 23; - public static uint EYECHART = 24; - public static uint TIMES11 = 25; - public static uint SANSCOND = 26; - - /* text styles */ - public static uint UNDERLINE = 64; - public static uint BOLD = 128; - public static uint LANDSCAPE = 256; - public static uint ITALICS = 512; - public static uint BOXED = 1024; - public static uint BOXELEMENT = 0x00000800; - public static uint TBCENTERED = 4096; - public static uint RTCHECKOFF = 8192; - public static uint LTCHECKOFF = 16384; - public static uint BIGSCRIPT = 32768; - public static uint HLTEXTHL = 65536; - public static uint RTCHECKOFFWITHASTERISK = 131072; /* 0x00020000L */ - public static uint DB_UNDERLINE = 262144; - public static uint COLDOTS = 524288; /* 0x00080000L */ - public static uint MMBOLD = 1048576; - public static uint RIGHTJUSTIFY = 2097152; - public static uint SUBSCRIPT = 4194304; - public static uint SUPERSCRIPT = 8388608; - public static uint PAGELISTITEM = 16777216; /* 0x01000000L */ - public static uint PRINTONTOPOFLINE = 33554432; /* 0x02000000L */ - public static uint HORZCENTER = 67108864; /* 0x04000000L */ - public static uint CIRCLESTRING2 = 0x08000000; - public static uint ALIGNWITHUP1 = 0x10000000; - public static uint ALIGNWSECNUM = 0x20000000; - public static uint MATCHCOLUMNMODE = 0x40000000; - public static uint KEEPRNOSUBSTYLE = 0x80000000; - - /* Replace Words Defines */ - public static ushort REPLACESIZE = 60; // Arrays size for ReplaceWords, **ReplaceWith, - // and ReplaceFlags - public static uint REPLEVERYTHING = 0x0000007F; // Turns on the Replace function for - // all classes of structure types - /*Highest 4 bits are OFF by Default*/ - /*REPLBKGD also OFF by default*/ - /*REPLHLSSETPNT also OFF by default*/ - /*REPLDIFFUNIT also OFF by default*/ - /*REPLTOC also OFF by default*/ - /*REPLPLACKEEP also OFF by default*/ - - public static uint REPLHIGH = 0x0001; //Do ReplaceWords in HIGH LEVEL STEPS - public static uint REPLRNO = 0x0002; //Do ReplaceWords in RNOS - public static uint REPLCAUTION = 0x0004; //Do ReplaceWords in CAUTIONS - public static uint REPLNOTE = 0x0008; //Do ReplaceWords in NOTES - public static uint REPLTABLE = 0x0010; //Do ReplaceWords in TABLES - public static uint REPLSUBSTEP = 0x0020; //Do ReplaceWords in SUBSTEPS - public static uint REPLATTACH = 0x0040; //Do ReplaceWords in ATTACHMENTS - public static uint REPLBKGD = 0x0080; //Do ReplaceWords in BACKGROUNDS - - public static uint REPLDIFFUNIT = 0x0100; //Do ReplaceWords ONLY for different UNIT # - public static uint REPLTOC = 0x0200; //Do in auto table-of-contents - public static uint REPLSTATTREE = 0x0400; - public static uint REPLHLSSETPNT = 0x0800; //Do ReplaceWords in HighLevelStep SETPoiNTs - - /*These bits are used for classes which - **are normally OFF, currently these - **are SETPOINTS and TRANSITIONS*/ - public static uint REPLTRAN = 0x1000; //Do ReplaceWords in TRANSITIONS - public static uint REPLSETPOINT = 0x2000; //Do ReplaceWords in SETPOINTS - - - /* Case Sensitivity Flags - default is off (Case Sensitive Replace)*/ - public static uint REPLCASEINSENS = 0x0000C000; //Do ReplaceWords for all words that - //match, regardless of case, and - //replace with the ReplaceWith string - //as is - - /* Setting either of the following flags individually replaces the ReplaceWord - ** occurrance with the original matched text surrounded by any special - ** characters in the ReplaceWith string*/ - public static uint REPLCASEINSENSFIRST = 0x4000; //Do ReplaceWords for all words that - // exactly match the ReplaceWord, except - // the case of the first character may - // be different - - public static uint REPLCASEINSENSALL = 0x8000; //Do ReplaceWords for all words that - //match the ReplaceWord, regardless of - //case - - public static uint REPLPARTIALS = 0x10000; // Do replace even on partial matches - public static uint REPLPLACKEEP = 0x20000; // Do replace in PlaceKeepers - public static uint REPLINSECTITLE = 0x40000; // replace words in section titles - - /* - ** Max number of substep type groups allowed to be made. - ** for use with TypeGroups - */ - public static short MAXTYPEGROUPS = 10; - public static short ENDGROUP = 99; - public static short MAXENHANCEDTYPES = 20; - - public static short MAXTRANS = 15; /* Max # of format defined transitions */ - - public static short MAXSECLEVELS = 10; - - public static short MAXMATCHPROCNUM = 10; - public static short MAXBOXES = 24; - public static short NUMBOXCHARS = 12; - public static short MAXTABS = 20; - -} - -[Serializable] -public struct FormatFlags -{ - public ushort XtraFlag_0; - public ushort XtraFlag_1; - public ushort XtraFlag_2; - public ushort XtraFlag_3; - public ushort XtraFlag_4; - public ushort XtraFlag_5; - public ushort XtraFlag_6; - public ushort XtraFlag_7; - public ushort XtraFlag_8; - public ushort XtraFlag_9; - public ushort XtraFlag_10; - public ushort XtraFlag_11; - public ushort XtraFlag_12; - public ushort XtraFlag_13; - public ushort XtraFlag_14; - public ushort XtraFlag_15; - public ushort XtraFlag_16; - public ushort XtraFlag_17; - public ushort VEAIRFlag; // VEAIRFlag - public ushort PurchaseOptions; // PurchaseOption -} - -[Serializable] -//public struct MaxRNOColumns -public struct ColunmShortValues -{ - public short OneColumn; - public short TwoColumn; - public short ThreeColumn; -} - -[Serializable] -public struct EditPrintShortValues -{ - public short Edit; - public short Print; -} - -[Serializable] -public struct AlternateRNOWidth -{ - public short FirstColumn; - public short SecondColumn; -} - -[Serializable] -public struct EditPrintStr -{ -// public string ForEdit; -// public string ForPrint; - public Txt ForEdit; - public Txt ForPrint; -} - - -[Serializable] -public struct SeqTab -{ - // Array of 9 substep levels (0-8) - // starting ASCII location for sequential substep tabs - //(0 = numbers, ` = lower case letters, @ = upper case letters) - // The sequence is recycled beyond the defined ones. -// public byte []SeqStart = new byte[9]; - public byte SeqStart; - - // LeftJustSeqTab - // - left justify the tab derived from SeqTab - // (pad tab on the right side with blanks) -// public short []LeftJustSeqTab = new short[9]; - public short LeftJustSeqTab; - - // SeqTab - the ". ", ") ", etc. that follows the sequential - // substep number/letter -// public string []SeqSubStpTabFmt = new string[9]; -// public string SeqSubStpTabFmt; // sequential substep tab format - public Txt SeqSubStpTabFmt; // sequential substep tab format - - // // PreSeqTab - text to pre-append to the substep's SeqTab - // // ex: "(" or "[" - // // [9] levels of seqtab - // // [2] modes: [0] = edit screen, [1] = printed page - // public string [,]PreSeqSubStp = new string[9,2]; -// public EditPrintStr []PreSeqSubStepTab = new EditPrintStr[9]; - public EditPrintStr PreSeqSubStepTab; - - // // PostSeqTab - (ATA format only) - // // - append this text to end of the substep's SeqTab - // // [9] levels of seqtab - // // [2] modes: [0] = edit screen, [1] = printed page - // public string [,]PostSeqSubStp = new string[9,2]; -// public EditPrintStr []PostSeqSubStepTab = new EditPrintStr[9]; - public EditPrintStr PostSeqSubStepTab; -} - -[Serializable] -public struct WidSTable -{ - public EditPrintShortValues OneColumn; - public EditPrintShortValues TwoColumns; - public EditPrintShortValues ThreeColumns; -} - -[Serializable] -public struct fmtTab -{ - public uint TbStyle; // TBStyle (font type) - font - public bool AlignWithParent; // AlignWithParentTab - public EditPrintStr TabFmt; // TBIdent [0]-screen [1]-Print - public EditPrintStr RNOTabFmt; // RNOTBIdent -// public string AltPrintTabFmt; // AltPrintTBIdent - public Txt AltPrintTabFmt; // AltPrintTBIdent -} - -//[Serializable] -public struct NCStr -{ - // [XmlElement] - public Txt ForEdit; - public Txt ForPrint; -} - - -//[Serializable] -//public struct ChkOffItem -//{ -//[XmlElement] -// public string []Item; -//} - -//public struct VerId -//{ -// [System.Xml.Serialization.XmlAttribute] -// public string Text; -//} - -public struct ChkOffSytle -{ - [System.Xml.Serialization.XmlAttribute] - public uint Style; -} - -public struct Txt -{ -// [System.Xml.Serialization.XmlAttribute] - [XmlAttribute] - public string Text; -} - -[Serializable] - public struct fmtChkOff - { - static int MAXCHECKOFFS = 18; - public int maxcheckoffs - { - get { return MAXCHECKOFFS;} - } - - static int MAXCHKHEADINGS = 5; - public int MaxCheckoffHeadings - { - get {return MAXCHKHEADINGS;} - } - - // RightCheckOffBox - // [0]AER - // [1]RNO - // [2]Commitment for Braidwood - // [3] (no supporting code) tied to value of TwoCheckOffspublic -// public short [] CheckoffBoxPosition;// = new int[4]; - public short AERCheckoffBoxPosition; - public short RNOCheckoffBoxPosition; - public short CommitmentMarkPosition; - public short UserSelectedCheckoffPosition; - - // RightCheckOffChars - public byte [] ChkOffScreenNotation;// = new byte[MAXCHECKOFFS]; - - //CheckOffWidAdjust - public byte []WidthAdjustment;// = new byte[MAXCHECKOFFS]; - - // CheckOffHeadStyle -font -// public uint []ChkOffHeaderStyle;// = new uint[MAXCHKHEADINGS]; - public ChkOffSytle []ChkOffHeaderStyle; - - // UseCheckoffIn - public int UseCheckOffsInTheseSections; - - //CheckOffAdjustment (not sure why we need this) - public byte PosAdjustment; - - //RightCheckOffPrompts -// [XmlElement] -// public string [] ChkOffMenuItems;// = new string[MAXCHECKOFFS]; -// [XmlArrayAttribute("MenuItems")] -// public ChkOffItem ChkOffMenuItems; - public Txt []ChkOffMenuItems; - - //CheckOffHeadings - [XmlArrayAttribute("Headings")] -// public string [] ChkOffHeadings;// = new string[MAXCHKHEADINGS]; -// public ChkOffItem []ChkOffHeadings; - public Txt []ChkOffHeadings; - } - - [Serializable] - public struct fmtChgBar - { - public short ChgBarType; // ChangeBarMessage - public short FixedChangeColumn; - public byte FixAERChangeColumn; - public uint ChgBarStyle; // ChangeBarStyle (this is set to font) -// public string ChgBar; // SpecialChangeBar or default to vertical line draw char - public Txt ChgBar; // SpecialChangeBar or default to vertical line draw char - } - - [Serializable] - public struct fmtBox - { - static int NUMBOXCHARS = 12; - public int NumBoxChars - { - get {return NUMBOXCHARS;} - } - - public enum BoxPiece {BXURC, BXHorz, BXULC, BXVert, BXMLS, BXMRS, BXLRC, BXLLC, BXMID, BXLHorz, BXUMID, BXLMID} - - public short BoxStart; //BXStart - public short BoxEnd; // BXEnd - public short BoxTextStart; //BXTxtStart - public short BoxTextWidth; //BXTxtWidth - public short BoxHeight; //BXHeight - public short BoxTabPos; //BXTabPos - public uint BoxStyle; //BXStyle - font - public byte BoxTextRowAdj; //BXTxtRowAdj -// public string []BoxChar;// = new string[NUMBOXCHARS]; // BXChar - index with -// // BoxPiece value - // BXChar - index with BoxPiece value - public Txt []BoxChar;// = new string[NUMBOXCHARS]; - } - - // Current Format design has one of these for each step type - [Serializable] - public struct fmtStep - { - public uint TextStyle; // STStyle (fonts) - public ushort Color; // Att (color on screen) - public short BlankLinesAfter; // STExtralines (# of blank lines after this piece) - public short BxInfoIdx; // STBoxindex; - public short TabIndex; // STTabsindex - public short PrintPosAdjust; // PrintPosAdjust - public ushort AccessableTypes; // AcTable - public short BlankLineAfterGroupOf; // EveryNLines (blank line after group of x items) - public bool UpperCaseTrans; // AlwaysUpperCase (upper case transitions) - public bool PageBreakAtTypeChange; // PageBreakAtTypechange - public bool AlignWithParentTab; //AlignWithParentTab - public short ChkOffGroups; //RtCheckOffGroups - public short WidthOverride; // StepTypeWidthOverride (overide default width) - public byte []VertPos;// = new Byte[15]; // VertPos (used for valves and checklist formats) - public short ColOverride; // StepTypeColOverride (override default col positon) -// public string SeparatorText; // Sep (used for OR step types for example) - public Txt SeparatorText; // Sep (used for OR step types for example) -// public string PrefixText; // StepPrefix - public Txt PrefixText; // StepPrefix -// public string SuffixText; // StepSuppfix - public Txt SuffixText; // StepSuppfix - // UnderlineTheseChar - print will underline these - // characters along with the normal characters -// public string UnderlineThese; - public Txt UnderlineThese; - } - - [Serializable] - public struct RplWord - { - // Used to specify which step types are affected - // by ReplaceWords and ReplaceWith. - public uint ReplaceFlag; - - // List of words/phrases to replace -// public string ReplaceWord; - public Txt ReplaceWord; - - // List of replacement words/phrases -// public string ReplaceWith; - public Txt ReplaceWith; - } - - [Serializable] - public struct TrnsDef // used to override default transition definitions - { - public byte TransType; // the true transition type of format defined transitions -// public string TransFmt; // format string for this transition type -// public string TransMenu; // Menu string for this transition type - public Txt TransFmt; // format string for this transition type - public Txt TransMenu; // Menu string for this transition type - } - - [Serializable] - public struct SectLevSettings - { - // Position of the sub (meta) section number on printed page - public byte SecNumPositionAdj; - - // Sub (meta) Section Title position on printed page - public byte SecTitlePositionAdj; - - // Override ColS and assign HLS a column position based on meta - // section level. Overrides automatic indentation supplied by - // the TieTabToLevel logic - public byte ColSByLevel; - - // Adjust the placement of meta sections in the table of contents - public byte TofCPositionAdj; - - // Adjust the WidS value (print mode) based on the step level - public byte WidSAdjByLevel; - } - - [Serializable] - public struct PrcDescript - { - // Mask to determine which procedures print procedure descriptor text -// public string MatchProcNumber; - public Txt MatchProcNumber; - - // Procedure descriptor text for procs matching the cooresponding - // MatchProcNumber mask. This is then put into the page list via the - // token -// public string ProcDescriptor; - public Txt ProcDescriptor; - - // 2nd procedure descriptor text put into the page list via the -// public string ProcDescriptor2; - public Txt ProcDescriptor2; - } - - - [Serializable] -// public struct CautNoteTypesOverride -public struct MenuItem - { - public short TextTypeValue; // Caution or Note type -// public string TextType; // menu entry corresponding to text type - public Txt TextType; // menu entry corresponding to text type - } - - -[Serializable] -public struct AutoTableOfContents -{ - // Auto Table of Contents formatting - public byte SecNumPos; // position of section number on TOC page - public byte SecTitlePos; // position of section title on TOC page - public byte SecTitleLen; // max length of section title (before it is wrapped) - public byte PageNumPos; // position of page number of the corresponding section - public byte SpaceChar; // charcter used from end of title to page number (ex "...") - public byte LineSpacing; // number of blank lines between TOC entries - public byte Font; // Font to used -} - - - - -[Serializable] -public class FmtFileVars : fmtDefineAndEnums - { - public string Title; // format title - - public int MaxNumBoxes - { - get {return MAXBOXES;} - } - - public int MaxTabs - { - get {return MAXTABS;} - } - - static int NUMStepTextTypes = 47; - public int NumStepSubStepTypes - { - get {return NUMStepTextTypes;} - } - - // Arrays size for ReplaceWords, **ReplaceWith, and ReplaceFlags - public int MaxReplaceItems - { - get { return REPLACESIZE;} - } - - public int MaxSectionLevels - { - get { return MAXSECLEVELS;} - } - - public int MaxTypeGroups - { - get {return MAXTYPEGROUPS;} - } - - public int MaxEnhancedTypes - { - get {return MAXENHANCEDTYPES;} - } - - // Max # of format defined transitions - public int MaxTrans - { - get {return MAXTRANS;} - } - - - enum StepTextTYPES - { - STANDARD, HIGH, IMMEDIATE, AND, OR, CAUTION, NOTE, TABLE, CONTINUOUS, AERTABLE, - EQUIPMENTLIST, TITLE, PAGENUMBER, EQUIPMENTWBLANK, PROCNUMBER, REVNUMBER, - ACCPAGES, LOSSOFAC, EXPLICITAND, CAUTION1, CAUTION2, NOTE1, NOTE2, PARAGRAPH, - DEFAULT, NOTE3, CAUTION3, NOTE4, CAUTION4, EQUIPMENTOPT, EQUIPMENTOPTWBLANK, - NOTE5, BORDERLESSAERTABLE, BORDERLESSTABLE, IMPLICITOR, FIGURE, AERFIGURE, - BORDERLESSFIGURE, BORDERLESSAERFIGURE, RNOTYPE, HIGH5, TITLEWITHTEXTRIGHT, - TITLEWITHTEXTBELOW, CONTACSEQUENTIAL, CONTACAND, CONTACOR, CONTACPARAGRAPH - } // a.k.a. STRUCTDEFTYPES in 16bit code - -// public ushort []XtraFlag = new ushort[18]; // XtraFlag[0-17] -// public ushort VEAIRFlag; // VEAIRFlag -// public ushort PurchaseOptions; // PurchaseOption - - public FormatFlags FmtFlags; // XtraFlag[0-17], VEAIRFlag, PurchaseOption - public bool Emode; // default edit mode (0=insert, 1=overstrike) - public short TopRow; // Top Row On Sreen - this is always set to Zero in p_refresh() - public bool DoPrintDriverAdjustments; // DoPrnDrvrAdjust - - public uint TopOfPageThingStyle; // TopOfPageThingStyle - public short TopOfPageThingCol; // TopOfPageThingCol - - public uint ModifiedTextSytle; // ModifiedText - public uint SeparatorStyle; // SeparatorStyle - - /* SeparatorLocation - Location of separator: - ** 0 - left, 1 - right, - ** 2+ - positions in the middle */ - public short SeparatorLocation; - - public short LastLineToStartStep; // LastLineToStartStep - public bool LineDrawingOption; // LineDrawingOption - always set to one (true) - - public short HLSTextStartPos; // ColS - public short HLSTextStartPosScrnAdj; // ColSScreenAdj - public short RNOTextStartPosScrnAdj; // ScrnSdjRNOText - - public short CautNoteTextStart; // ColT - - public short DefaultHLSTextPos; // ColAbs - If not tab, set ptr->Column to this value - - public short CautNoteTextWidth; // WidT - - public short NumColumns; // Pmode - number of columns - ActualPMode - - public short DefaultNumRNOColumns; //MaxRNO - this should be defined at a section level - - // MaxRNOTable[3] - // Number of RNO columns for sigle, two, and tree column step section formats -// public short []MaxRNOTable = new short[3]; - public ColunmShortValues MaxRNOTable; - - // ColRTable - // - starting position of RNO column this should be defined at a section level -// public short []StartRNOPosition = new short[3]; - public ColunmShortValues StartRNOPosition; - -// // WidSTable - width of HLS [0] - edit [1] - print -// public short [,]HLSwidth = new short[3,2]; - // Array of 3 - for each column mode -// public WidsSTable []HLSwidth = new EditPrintShortValues[3]; - public WidSTable HLSwidth; - - // ColRScreen - adjustment to starting of RNO column on screen - public ColunmShortValues StartRNOPosScrnAdj; - - //AdjRNOCol - adjust position of RNO column - public short RNOPositionAdj; - - // Change Bar Type and Format settings - public fmtChgBar ChangeBarSettings; - - // Number representing the font used in the Summary Of Changes report - public uint ChangeSummaryStyle; - - // TitleLength - Max length of title before it is split - public short TitleWidthBeforeSplitting; - - //CoverTitleLenth - Max length of title before it is split - public short CoverPgTitleWidthBeforeSplit; - - public fmtChkOff CheckOffSettings; // check off settings - - // EndMessagePos - this should be defined at a section level - // overrides the default (calculated) center position of - // the procedure step section's End Message but only if - // a Non-Proportional Font is being used for the End Message - public short EndMessageCenterPos; - - // Array of 9 substep levels (0-8) - // starting ASCII location for sequential substep tabs - //(0 = numbers, ` = lower case letters, @ = upper case letters) - // The sequence is recycled beyond the defined ones. -// public byte []SeqStart = new byte[9]; - - // Starting ASCII location for High Level Steps - // This will override the use default use of numbers for - // the High Level Step Tab (ex. setting to @ = upper case letters) - public byte HighSeqStart; - - // Character used in the ReplaceWith string to start - // an indent for text on following lines (IP2, PACA, PAC, SCE formats) - public byte IndentToken; - - // Column for step header use in Vogtle for the immediate action - // step type - public short ImmStepHdrCol; - // Style for the header - public uint ImmStepHdrStyle; - - // if NOT zero: - // [0] will be the width of the first RNO column, - // [1] the width of the second. - // - KEW OP format -// public short []RNOWidthAlt = new short[2]; - public AlternateRNOWidth RNOWidthAlt; - - // High Level Step Width OVerRiDe: - // when not zero, specify the width of the HLSs, - // overriding the value of WidSTable - // - KEW OP format - public short HLSWidthOVRD; - - // Set to the column format (1,2,3) for which PageList items - // in the range -99 to -1 will be printed with the section - // - either on the line at which the section begins, - // or if the section is being continued from a previous page, - // at the row given by the absolute value of PGrow. - public short SecColHdrforActPmode; - - // Style variables to be applied to section headers and numbering - // that are enabled by the ShowSectionTitles flag - public uint SectionNumberingStyle; - - // Style variables to be applied to section headers and numbering - //that are enabled by the ShowSectionTitles flag - public uint SectionHeaderStyle; - - // Style variables to be applied to section headers and numbering - // that are enabled by the ShowSectionTitles flag - public short SectionNumPos; - public byte SectionNumJust; - public short SectionHeaderPos; - public byte SectionHeaderJust; - public short SectionTitleLength; - - // Indicates which substep types will NOT be influenced by the - // print flag DontPaginateOnFirstSubStep3X. - // Each bit position maps to the substep menu position where - // 0x01 is sequential, 0x02 is the AND, 0x04 is the OR, etc. - public short SubPaginationWght; - - // Adjust the column position by this much of the substeps to the - // right of the TITLEWITHTEXTRIGHT substep type - public short TextTitleAdjustment; - -// // Automatic Table of Contents format settings - public AutoTableOfContents AutoTOC; - - // style used with VertPos - used for valve lineups and checklists formats - public uint VertStyle; - - // column position of centered table on printed page - public byte []TableCenterPos = new byte[3]; - - // LeftJustSeqTab - // - left justify the tab derived from SeqTab - // (pad tab on the right side with blanks) -// public short []LeftJustSeqTab = new short[9]; - - // Specify the number of HLS's that will appear on the HLS choice menu. - // Ex. if set to 2, only the first two HLS menu choices will appear - public byte NumberOfHighLevelSteps; - - // show only this many sub step types in the sub step menu - public short NumberOfSubStepTypes; - - // set to the "Old to New Conversion" setting (ex: A1) of the Continuous - // Action Summary section set up in the Doc Style format file - public uint AutoContActSummarySection; - - // IdentB - default bullet -// public string DefaultBullet; - public Txt DefaultBullet; - - // SeqTab - the ". ", ") ", etc. that follows the sequential - // substep number/letter -// public string []SeqSubStpTabFmt = new string[9]; - - // procedure descriptor text (use in PageList) - public PrcDescript []ProcDescriptors = new PrcDescript[10]; - - // For version id text, DRAFT, APPROVED, TEMPORARY, etc. - // Used for pagelist token -// public string []VersionIdText = new string[5]; -// public VerId []VersionIDText = new VerId[5]; - public Txt []VersionIDText = new Txt[5]; - - // String to apprear before and after the procedure title in a transition. - // ex. quotes around the title -// public string DelimiterForTransitionTitle; - public Txt DelimiterForTransitionTitle; - - // In transitions, delimit step number from substep letter, (ex 2.a vs 2a) -// public string StepSubstepDelimeter; - public Txt StepSubstepDelimeter; - - // Used in Through Transitions: 3a through 3c. - // others: 3a. Thru 3c, 3a THROUGH 3c -// public string ThroughString; - public Txt ThroughString; - - // char in proc number to flag suffix should be used - // - WPB, WPBA formats -// public string ProcedureSuffixFlags; - public Txt ProcedureSuffixFlags; - - // text that will appear next to procedure number - // used by in Page List - // - WPB, WPBA formats -// public string []ProcedureSuffix = new string[10]; - public Txt []ProcedureSuffix = new Txt[10]; - - // Text that appears at the top of the first page of the procedure steps -// public string TopOfPageThing; - public Txt TopOfPageThing; - -// // PreSeqTab - text to pre-append to the substep's SeqTab -// // ex: "(" or "[" -// // [9] levels of seqtab -// // [2] modes: [0] = edit screen, [1] = printed page -// public string [,]PreSeqSubStp = new string[9,2]; -// public EditPrintStr []PreSeqSubStepTab = new EditPrintStr[9]; -// -// // PostSeqTab - (ATA format only) -// // - append this text to end of the substep's SeqTab -// // [9] levels of seqtab -// // [2] modes: [0] = edit screen, [1] = printed page -// public string [,]PostSeqSubStp = new string[9,2]; -// public EditPrintStr []PostSeqSubStepTab = new EditPrintStr[9]; - - // Printed below the last RNO in each step - // ex: "---------------------------" -// public string RNOSepString; - public Txt RNOSepString; - - // Terminate underline if matches one of defined strings -// public string []UnderlineTerminate = new string[10]; - public Txt []UnderlineTerminate = new Txt[10]; - - // printed before and after a group of Immediate actionsteps -// public string []ImmStepHdr = new string[2]; - public Txt []ImmStepHdr = new Txt[2]; - - // override menu of HLS types (descriptions only) -// public string []AlternateStepTypes = new string[5]; - public Txt []AlternateStepTypes = new Txt[5]; - - // override menu of substep types (descriptions) -// public string []AlternateSubTypes = new string[16]; - public Txt []AlternateSubTypes = new Txt[16]; - -// // Holds the string "OBSERVE NOTE|CAUTION PRIOR TO STEP X" -// public string [,]ObserveNCString = new string[4,2]; -// public EditPrintStr []ObserveNCString = new EditPrintStr[4]; - public NCStr []ObserveNCString = new NCStr[4]; - -// public string PSInfFile; // Proc Specific Information file - public Txt PSInfFile; // Proc Specific Information file - - // String to appear on the line following the high Level step text -// public string HLStpSeparatorString; - public Txt HLStpSeparatorString; - - // String to appear on the line following the high level RNO step text -// public string HLRNOStpSeparatorString; - public Txt HLRNOStpSeparatorString; - - // Used to tell the pagination logic how far up the lines array to process - // while looking for a place to break. The default will divide the max lines - // out by "2" to get the lower limit value. -// public string LowerLimitDivisor; - public Txt LowerLimitDivisor; - - // used with Enhance Documents, this will be used for the step number when - // the user manually creates a new high level Enhanced Document step. -// public string NonLinkedStepNumber; - public Txt NonLinkedStepNumber; - - // used with Enhanced Documents, this will be used for the caution or note - // tab when the user manually creates a new Enhanced Caution or Note -// public string NonLinkedCautNoteNumber; - public Txt NonLinkedCautNoteNumber; - - // Name of directory for BG documents that print in duplex - // - Point Beach -// public string DuplexBGDirectory; - public Txt DuplexBGDirectory; - - // Name of directory for Dev Documents that print in duplex - // - Point Beach -// public string DuplexDDDirectory; - public Txt DuplexDDDirectory; - - // used with Enhanced Deviations, this will be used - // when the user does not link to an ERG step. -// public string NonLinkedRNONumber; - public Txt NonLinkedRNONumber; - -// // Format variables based on STRUCTDEFTYPES (step types) - public fmtStep []StepDefinitions = new fmtStep[NUMStepTextTypes]; -// -// // Define Note/Caution boxes - public fmtBox []BoxInfo = new fmtBox[MAXBOXES]; -// -// // Define Step/substep tabs - public fmtTab []TabInfo = new fmtTab[MAXTABS]; - -// // Define override of default Note/Caution type menu -// public CautNoteTypesOverride []CautNoteMenuOverride = new CautNoteTypesOverride[10]; - public MenuItem []CautNoteMenuOverride = new MenuItem[10]; - - // SeqTab definitions (substep tabs) - public SeqTab []SeqTabInfo = new SeqTab[9]; - -// // Define Replace Words list - public RplWord []ReplaceWordList = new RplWord[REPLACESIZE]; -// -// // Override of default transition definitions - public TrnsDef []TransDefs = new TrnsDef[MAXTRANS]; -// -// // Section related format settings - public SectLevSettings []SectionLevelSettings = new SectLevSettings[MAXSECLEVELS]; -} - -namespace procedureformat -{ - public class fmtFormat - { - /// - /// The FMT file variable settings - /// - private BinaryReader brFmt; - private string fmtName; - private byte []AllStrings; - - public fmtFormat(string nm) - { - fmtName = nm; - LoadFMTFile(nm); - } - private string GetStringFromAllStrings(int idx) - { - StringBuilder sb = new StringBuilder(); - while (AllStrings[idx] != 0) - { - sb.Append(Convert.ToChar(AllStrings[idx])); - idx++; - } -// return sb.ToString(); - return GetXMLElementText(sb.ToString()); - } - - private string GetXMLElementText(string instr) - { - string rtnstr; - XmlTextWriter xmlWriter; - StringWriter strWriter = new StringWriter(); - xmlWriter = new XmlTextWriter(strWriter); - xmlWriter.WriteString(instr); - xmlWriter.Flush(); - xmlWriter.Close(); - rtnstr = strWriter.ToString(); - - // Replace the single quote because ODBC fails if it's in a string. - // The single quote represents the beg/end of a string when the string - // is sent to ODBC. - // *** COMMENT OUT FOR NOW - NOT SURE IF WE NEED TO DO THIS - //rtnstr = rtnstr.Replace("\'","'"); - - return rtnstr; - } - - private string GetAsciiStringUntilNull(BinaryReader br) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - bool stillread = true; - do - { - try - { - input = br.ReadByte(); - if (input==0) stillread=false; - inpstr.Append(Convert.ToChar(input)); - } - catch (System.IO.EndOfStreamException) - { - stillread=false; - } - cnt++; - }while (stillread); - - return (inpstr.ToString()); - } - - private string GetAsciiString(BinaryReader br, int len) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - do - { - try - { - input = br.ReadByte(); - inpstr.Append(Convert.ToChar(input)); - } - catch (System.IO.EndOfStreamException) - { - input = 0; - while (cnt < len) - { - inpstr.Append(Convert.ToChar(input)); - cnt++; - } - } - cnt++; - }while (cnt < len); - - return (inpstr.ToString()); - } - - public void LoadFMTFile(string fname) - { - FmtFileVars FmtVars = new FmtFileVars(); - string str = null; - - // read in title. - brFmt = new BinaryReader(File.Open(fname,System.IO.FileMode.Open,System.IO.FileAccess.ReadWrite,FileShare.ReadWrite)); - short len = brFmt.ReadInt16(); - string tstr = GetAsciiString(brFmt,len); - char []nulls = {Convert.ToChar(0)}; - FmtVars.Title = tstr.TrimEnd(nulls); - - // read in struct name/def name/page file name - // - ignore these. - for (int i=0;i<3;i++) - { - len = brFmt.ReadInt16(); - str = GetAsciiString(brFmt,len); - } - - // Get the number of Int's, Long's, Char's (bytes) - // - This is the number of bytes to the character strings part - // of the format file. - short numIntsLongsBytes = brFmt.ReadInt16(); - - // Read in all the Int, Long, and Char variable values - // for the FMT files. Get the order of the format variables - // from the FORMAT.STR file in the 16-bit code (\PROMSNT\FORMAT) - // and maps the old 16-bit variables with the 32-bit structures and classes - -// short BytesReadIn = 0; - - // the first format value is a place holder, read and ignore it. - byte skip_byte; - ushort skip_short; - uint skip_int; - - // FirstChar - skip_byte = brFmt.ReadByte(); - - // XtraFlag[18] -// for (int i=0; i < 18; i++) -// FmtVars.XtraFlag[i] = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_0 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_1 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_2 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_3 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_4 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_5 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_6 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_7 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_8 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_9 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_10 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_11 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_12 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_13 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_14 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_15 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_16 = brFmt.ReadUInt16(); - FmtVars.FmtFlags.XtraFlag_17 = brFmt.ReadUInt16(); - - // VEAIRFlag -// FmtVars.VEAIRFlag = brFmt.ReadUInt16(); - FmtVars.FmtFlags.VEAIRFlag = brFmt.ReadUInt16(); - - // PurchaseOption -// FmtVars.PurchaseOptions = brFmt.ReadUInt16(); - FmtVars.FmtFlags.PurchaseOptions = brFmt.ReadUInt16(); - - // EMode - skip_short = brFmt.ReadUInt16(); - FmtVars.Emode = (skip_short == 1); - - // TopRow - FmtVars.TopRow = brFmt.ReadInt16(); - - // Appendlines (ANO, V.C. Summer) - skip_short = brFmt.ReadUInt16(); - - // DoPrnDrvrAdjusts - skip_short = brFmt.ReadUInt16(); - FmtVars.DoPrintDriverAdjustments = (skip_short == 1); - - // STStyle[STRUCTDEFTYPES] - for (int i=0; i < FmtVars.NumStepSubStepTypes; i++) - FmtVars.StepDefinitions[i].TextStyle = brFmt.ReadUInt32(); - - // Att[STRUCTDEFTYPES] (atribute) - for (int i=0;i 0) -// FmtVars.BoxInfo[i].BoxChar[j] = GetStringFromAllStrings(offset-1); -// FmtVars.BoxInfo[i].BoxChar[j].Item = GetStringFromAllStrings(offset-1); - FmtVars.BoxInfo[i].BoxChar[j].Text = GetStringFromAllStrings(offset-1); - } - } - - // TBIdent[MAXTABS][2] - for (int i=0; i < FmtVars.MaxTabs; i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.TabInfo[i].TabFmt.ForEdit = GetStringFromAllStrings(offset-1); -// FmtVars.TabInfo[i].TabFmt.ForEdit.Item = GetStringFromAllStrings(offset-1); - FmtVars.TabInfo[i].TabFmt.ForEdit.Text = GetStringFromAllStrings(offset-1); - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.TabInfo[i].TabFmt.ForPrint = GetStringFromAllStrings(offset-1); -// FmtVars.TabInfo[i].TabFmt.ForPrint.Item = GetStringFromAllStrings(offset-1); - FmtVars.TabInfo[i].TabFmt.ForPrint.Text = GetStringFromAllStrings(offset-1); - } -// for (int j=0; j < 2; j++) -// { -// offset = brFmt.ReadInt16(); -// if (offset > 0) -// FmtVars.TabInfo[i].TabFmt[j] = GetStringFromAllStrings(offset-1); -// } - - // Sep[STRUCTDEFTYPES] - for (int i=0;i 0) -// FmtVars.StepDefinitions[i].SeparatorText = GetStringFromAllStrings(offset-1); -// FmtVars.StepDefinitions[i].SeparatorText.Item = GetStringFromAllStrings(offset-1); - FmtVars.StepDefinitions[i].SeparatorText.Text = GetStringFromAllStrings(offset-1); - } - - // StepPrefix[STRUCTDEFTYPES] - for (int i=0;i 0) -// FmtVars.StepDefinitions[i].PrefixText = GetStringFromAllStrings(offset-1); -// FmtVars.StepDefinitions[i].PrefixText.Item = GetStringFromAllStrings(offset-1); - FmtVars.StepDefinitions[i].PrefixText.Text = GetStringFromAllStrings(offset-1); - } - - // StepSuffix[STRUCTDEFTYPES] - for (int i=0;i 0) -// FmtVars.StepDefinitions[i].SuffixText = GetStringFromAllStrings(offset-1); -// FmtVars.StepDefinitions[i].SuffixText.Item = GetStringFromAllStrings(offset-1); - FmtVars.StepDefinitions[i].SuffixText.Text = GetStringFromAllStrings(offset-1); - } - - // IdentB - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.DefaultBullet = GetStringFromAllStrings(offset-1); - FmtVars.DefaultBullet.Text = GetStringFromAllStrings(offset-1); - - // SeqTab[9] - for (int i=0; i<9; i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.SeqSubStpTabFmt[i] = GetStringFromAllStrings(offset-1); -// FmtVars.SeqTabInfo[i].SeqSubStpTabFmt = GetStringFromAllStrings(offset-1); -// FmtVars.SeqTabInfo[i].SeqSubStpTabFmt.Item = GetStringFromAllStrings(offset-1); - FmtVars.SeqTabInfo[i].SeqSubStpTabFmt.Text = GetStringFromAllStrings(offset-1); - } - - // ReplaceWord[REPLACESIZE] - for (int i=0;i 0) -// FmtVars.ReplaceWordList[i].ReplaceWord = GetStringFromAllStrings(offset-1); -// FmtVars.ReplaceWordList[i].ReplaceWord.Item = GetStringFromAllStrings(offset-1); - FmtVars.ReplaceWordList[i].ReplaceWord.Text = GetStringFromAllStrings(offset-1); - } - - // ReplaceWith[REPLACESIZE] - for (int i=0;i 0) -// FmtVars.ReplaceWordList[i].ReplaceWith = GetStringFromAllStrings(offset-1); -// FmtVars.ReplaceWordList[i].ReplaceWith.Item = GetStringFromAllStrings(offset-1); - FmtVars.ReplaceWordList[i].ReplaceWith.Text = GetStringFromAllStrings(offset-1); - } - - // MatchProcNumber[10] - for (int i=0;i<10;i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.ProcDescriptors[i].MatchProcNumber = GetStringFromAllStrings(offset-1); -// FmtVars.ProcDescriptors[i].MatchProcNumber.Item = GetStringFromAllStrings(offset-1); - FmtVars.ProcDescriptors[i].MatchProcNumber.Text = GetStringFromAllStrings(offset-1); - } - - // ProcDescriptor[10] - for (int i=0;i<10;i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.ProcDescriptors[i].ProcDescriptor = GetStringFromAllStrings(offset-1); -// FmtVars.ProcDescriptors[i].ProcDescriptor.Item = GetStringFromAllStrings(offset-1); - FmtVars.ProcDescriptors[i].ProcDescriptor.Text = GetStringFromAllStrings(offset-1); - } - - // ProcDescriptor2[10] - for (int i=0;i<10;i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.ProcDescriptors[i].ProcDescriptor2 = GetStringFromAllStrings(offset-1); -// FmtVars.ProcDescriptors[i].ProcDescriptor2.Item = GetStringFromAllStrings(offset-1); - FmtVars.ProcDescriptors[i].ProcDescriptor2.Text = GetStringFromAllStrings(offset-1); - } - - // VersionIdText[5] - for (int i=0; i<5; i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.VersionIdText[i] = GetStringFromAllStrings(offset-1); - FmtVars.VersionIDText[i].Text = GetStringFromAllStrings(offset-1); -// FmtVars.VersionIDText[i].Item = GetStringFromAllStrings(offset-1); - } - - // DelimiterForTransitionTitle - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.DelimiterForTransitionTitle = GetStringFromAllStrings(offset-1); - FmtVars.DelimiterForTransitionTitle.Text = GetStringFromAllStrings(offset-1); - - // SetpSubstepDelimeter - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.StepSubstepDelimeter = GetStringFromAllStrings(offset-1); - FmtVars.StepSubstepDelimeter.Text = GetStringFromAllStrings(offset-1); - - //ThroughString - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.ThroughString = GetStringFromAllStrings(offset-1); -// FmtVars.ThroughString.Item = GetStringFromAllStrings(offset-1); - FmtVars.ThroughString.Text = GetStringFromAllStrings(offset-1); - - // ProcedureSuffixFlags - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.ProcedureSuffixFlags = GetStringFromAllStrings(offset-1); - FmtVars.ProcedureSuffixFlags.Text = GetStringFromAllStrings(offset-1); - - // ProcedureSuffix[10] - for (int i=0;i<10;i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.ProcedureSuffix[i] = GetStringFromAllStrings(offset-1); -// FmtVars.ProcedureSuffix[i].Item = GetStringFromAllStrings(offset-1); - FmtVars.ProcedureSuffix[i].Text = GetStringFromAllStrings(offset-1); - } - - // PlantDnLoad - skip_short = brFmt.ReadUInt16(); - - // TopOfPageThing - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.TopOfPageThing = GetStringFromAllStrings(offset-1); - FmtVars.TopOfPageThing.Text = GetStringFromAllStrings(offset-1); - - // XTitle[3][10] - for (int i=0; i < 30; i++) - skip_short= brFmt.ReadUInt16(); - - // TextType[10] - for(int i=0;i<10;i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.CautNoteMenuOverride[i].TextType = GetStringFromAllStrings(offset-1); -// FmtVars.CautNoteMenuOverride[i].TextType.Item = GetStringFromAllStrings(offset-1); - FmtVars.CautNoteMenuOverride[i].TextType.Text = GetStringFromAllStrings(offset-1); - } - - // SectionsToPrint[10] - for (int i=0; i < 10; i++) - skip_short = brFmt.ReadUInt16(); - - // SectionsNumberMask[10] - for (int i=0; i < 10; i++) - skip_short = brFmt.ReadUInt16(); - - // SectionsToPrintTitle[10] - for (int i=0; i < 10; i++) - skip_short = brFmt.ReadUInt16(); - - // DocumentTitleExtensions[10] - for (int i=0; i < 10; i++) - skip_short = brFmt.ReadUInt16(); - - // DocumentFixFileExtensions[10] - for (int i=0; i < 10; i++) - skip_short = brFmt.ReadUInt16(); - - // PreSeqTab[9][2] - for (int i =0; i < 9; i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.PreSeqSubStepTab[i].ForEdit = GetStringFromAllStrings(offset-1); -// FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForEdit = GetStringFromAllStrings(offset-1); -// FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForEdit.Item = GetStringFromAllStrings(offset-1); - FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForEdit.Text = GetStringFromAllStrings(offset-1); - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.PreSeqSubStepTab[i].ForPrint = GetStringFromAllStrings(offset-1); -// FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForPrint = GetStringFromAllStrings(offset-1); -// FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForPrint.Item = GetStringFromAllStrings(offset-1); - FmtVars.SeqTabInfo[i].PreSeqSubStepTab.ForPrint.Text = GetStringFromAllStrings(offset-1); - } - -// for (int j=0; j < 2; j++) -// { -// offset = brFmt.ReadInt16(); -// if (offset > 0) -// FmtVars.PreSeqSubStp[i,j] = GetStringFromAllStrings(offset-1); -// } - - // PostSeqTab[9][2] - for (int i =0; i<9;i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.PostSeqSubStepTab[i].ForEdit = GetStringFromAllStrings(offset-1); -// FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForEdit = GetStringFromAllStrings(offset-1); -// FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForEdit.Item = GetStringFromAllStrings(offset-1); - FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForEdit.Text = GetStringFromAllStrings(offset-1); - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.PostSeqSubStepTab[i].ForPrint = GetStringFromAllStrings(offset-1); -// FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForPrint = GetStringFromAllStrings(offset-1); -// FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForPrint.Item = GetStringFromAllStrings(offset-1); - FmtVars.SeqTabInfo[i].PostSeqSubStepTab.ForPrint.Text = GetStringFromAllStrings(offset-1); - } -// for (int j=0; j < 2; j++) -// { -// offset = brFmt.ReadInt16(); -// if (offset > 0) -// FmtVars.PostSeqSubStp[i,j] = GetStringFromAllStrings(offset-1); -// } - - // RNOSepString - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.RNOSepString = GetStringFromAllStrings(offset-1); - FmtVars.RNOSepString.Text = GetStringFromAllStrings(offset-1); - - // UnderlineTerminate[10] - for (int i=0; i < 10; i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.UnderlineTerminate[i] = GetStringFromAllStrings(offset-1); -// FmtVars.UnderlineTerminate[i].Item = GetStringFromAllStrings(offset-1); - FmtVars.UnderlineTerminate[i].Text = GetStringFromAllStrings(offset-1); - } - - // ImmStepHdr[2] - for (int i=0; i < 2; i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.ImmStepHdr[i] = GetStringFromAllStrings(offset-1); -// FmtVars.ImmStepHdr[i].Item = GetStringFromAllStrings(offset-1); - FmtVars.ImmStepHdr[i].Text = GetStringFromAllStrings(offset-1); - } - - // AlternateStepTypes[5] - for (int i=0; i < 5; i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.AlternateStepTypes[i] = GetStringFromAllStrings(offset-1); -// FmtVars.AlternateStepTypes[i].Item = GetStringFromAllStrings(offset-1); - FmtVars.AlternateStepTypes[i].Text = GetStringFromAllStrings(offset-1); - } - - // AlternateSubTypes[16] - for (int i=0; i < 16; i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.AlternateSubTypes[i] = GetStringFromAllStrings(offset-1); -// FmtVars.AlternateSubTypes[i].Item = GetStringFromAllStrings(offset-1); - FmtVars.AlternateSubTypes[i].Text = GetStringFromAllStrings(offset-1); - } - - // SpecialChangeBar - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.ChangeBarSettings.ChgBar = GetStringFromAllStrings(offset-1); -// FmtVars.ChangeBarSettings.ChgBar.Item = GetStringFromAllStrings(offset-1); - FmtVars.ChangeBarSettings.ChgBar.Text = GetStringFromAllStrings(offset-1); - - // ImperfectStructureSeparator - skip_short = brFmt.ReadUInt16(); - - // ObserveNCString[4][2] - for (int i=0; i < 4; i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.ObserveNCString[i].ForEdit = GetStringFromAllStrings(offset-1); -// FmtVars.ObserveNCString[i].ForEdit.Item = GetStringFromAllStrings(offset-1); -// FmtVars.ObserveNCString[i].ForEdit.Text = GetStringFromAllStrings(offset-1); - FmtVars.ObserveNCString[i].ForEdit.Text = GetStringFromAllStrings(offset-1); - if (offset > 0) -// FmtVars.ObserveNCString[i].ForPrint = GetStringFromAllStrings(offset-1); -// FmtVars.ObserveNCString[i].ForPrint.Item = GetStringFromAllStrings(offset-1); -// FmtVars.ObserveNCString[i].ForPrint.Text = GetStringFromAllStrings(offset-1); - FmtVars.ObserveNCString[i].ForPrint.Text = GetStringFromAllStrings(offset-1); - } -// for (int j=0; j < 2; j++) -// { -// offset = brFmt.ReadInt16(); -// if (offset > 0) -// FmtVars.ObserveNCString[i,j] = GetStringFromAllStrings(offset-1); -// } - - //UnderlineTheseChar - for (int i=0;i0) -// FmtVars.StepDefinitions[i].UnderlineThese = GetStringFromAllStrings(offset-1); -// FmtVars.StepDefinitions[i].UnderlineThese.Item = GetStringFromAllStrings(offset-1); - FmtVars.StepDefinitions[i].UnderlineThese.Text = GetStringFromAllStrings(offset-1); - } - - // SubScriptTheseChar - skip_short = brFmt.ReadUInt16(); - - // RightCheckoffPrompts[MAXCHECKOFFS] -// FmtVars.CheckOffSettings.ChkOffMenuItems = new string[FmtVars.CheckOffSettings.maxcheckoffs]; -// FmtVars.CheckOffSettings.ChkOffMenuItems = new ChkOffItem[FmtVars.CheckOffSettings.maxcheckoffs]; -// FmtVars.CheckOffSettings.ChkOffMenuItems.Item = new string[FmtVars.CheckOffSettings.maxcheckoffs]; - FmtVars.CheckOffSettings.ChkOffMenuItems = new Txt[FmtVars.CheckOffSettings.maxcheckoffs]; - for (int i=0; i < FmtVars.CheckOffSettings.maxcheckoffs; i++) - { - offset = brFmt.ReadInt16(); - if (offset > 0) - { -// FmtVars.CheckOffSettings.ChkOffMenuItems[i] = GetStringFromAllStrings(offset-1); -// FmtVars.CheckOffSettings.ChkOffMenuItems[i].Item = GetStringFromAllStrings(offset-1); - FmtVars.CheckOffSettings.ChkOffMenuItems[i].Text = GetStringFromAllStrings(offset-1); - } - } - - // CheckOffHeadings[MAXCHKHEADINGS] -// FmtVars.CheckOffSettings.ChkOffHeadings = new string[FmtVars.CheckOffSettings.MaxCheckoffHeadings]; -// FmtVars.CheckOffSettings.ChkOffHeadings = new ChkOffItem[FmtVars.CheckOffSettings.MaxCheckoffHeadings]; - FmtVars.CheckOffSettings.ChkOffHeadings = new Txt[FmtVars.CheckOffSettings.MaxCheckoffHeadings]; - for (int i=0; i < FmtVars.CheckOffSettings.MaxCheckoffHeadings; i++) - { - offset = brFmt.ReadInt16(); - if (offset >0) - { -// FmtVars.CheckOffSettings.ChkOffHeadings[i] = GetStringFromAllStrings(offset-1); -// FmtVars.CheckOffSettings.ChkOffHeadings[i].Item = GetStringFromAllStrings(offset-1); - FmtVars.CheckOffSettings.ChkOffHeadings[i].Text = GetStringFromAllStrings(offset-1); - } - } - - // WindEditFile - skip_short = brFmt.ReadUInt16(); - - // PSInfFile - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.PSInfFile = GetStringFromAllStrings(offset-1); - FmtVars.PSInfFile.Text = GetStringFromAllStrings(offset-1); - - // RNOPreSeqTab[9][2] - for (int i=0;i<9;i++) - for (int j=0; j<2; j++) - skip_short = brFmt.ReadUInt16(); - - // HLStpSeparatorString - offset = brFmt.ReadInt16(); - if (offset >0) -// FmtVars.HLStpSeparatorString = GetStringFromAllStrings(offset-1); - FmtVars.HLStpSeparatorString.Text = GetStringFromAllStrings(offset-1); - - // HLRNOStpSeparatorString - offset = brFmt.ReadInt16(); - if (offset >0) -// FmtVars.HLRNOStpSeparatorString = GetStringFromAllStrings(offset-1); - FmtVars.HLRNOStpSeparatorString.Text = GetStringFromAllStrings(offset-1); - - // RNOTBIdent[MAXTABS][2] - for (int i=0;i 0) -// FmtVars.TabInfo[i].RNOTabFmt.ForEdit = GetStringFromAllStrings(offset-1); -// FmtVars.TabInfo[i].RNOTabFmt.ForEdit.Item = GetStringFromAllStrings(offset-1); - FmtVars.TabInfo[i].RNOTabFmt.ForEdit.Text = GetStringFromAllStrings(offset-1); - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.TabInfo[i].RNOTabFmt.ForPrint = GetStringFromAllStrings(offset-1); -// FmtVars.TabInfo[i].RNOTabFmt.ForPrint.Item = GetStringFromAllStrings(offset-1); - FmtVars.TabInfo[i].RNOTabFmt.ForPrint.Text = GetStringFromAllStrings(offset-1); - } -// for (int j=0;j<2;j++) -// { -// offset = brFmt.ReadInt16(); -// if (offset > 0) -// FmtVars.TabInfo[i].RNOTabFmt[j] = GetStringFromAllStrings(offset-1); -// } - - // LowserLimitDivisor - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.LowerLimitDivisor=GetStringFromAllStrings(offset-1); - FmtVars.LowerLimitDivisor.Text=GetStringFromAllStrings(offset-1); - - // TransFmt[MAXTRANS] - for (int i=0;i 0) -// FmtVars.TransDefs[i].TransFmt = GetStringFromAllStrings(offset-1); -// FmtVars.TransDefs[i].TransFmt.Item = GetStringFromAllStrings(offset-1); - FmtVars.TransDefs[i].TransFmt.Text = GetStringFromAllStrings(offset-1); - } - - // TransMenu[MAXTRANS] - for (int i=0;i 0) -// FmtVars.TransDefs[i].TransMenu = GetStringFromAllStrings(offset-1); -// FmtVars.TransDefs[i].TransMenu.Item = GetStringFromAllStrings(offset-1); - FmtVars.TransDefs[i].TransMenu.Text = GetStringFromAllStrings(offset-1); - } - - // OutsideTransFmt[MAXTRANS] - for (int i=0;i 0) -// FmtVars.NonLinkedStepNumber = GetStringFromAllStrings(offset-1); - FmtVars.NonLinkedStepNumber.Text = GetStringFromAllStrings(offset-1); - - // BldLstFile - skip_short = brFmt.ReadUInt16(); - - // AltPrintTBIdent[MAXTABS] - for (int i=0;i 0) -// FmtVars.TabInfo[i].AltPrintTabFmt = GetStringFromAllStrings(offset-1); -// FmtVars.TabInfo[i].AltPrintTabFmt.Item = GetStringFromAllStrings(offset-1); - FmtVars.TabInfo[i].AltPrintTabFmt.Text = GetStringFromAllStrings(offset-1); - } - - // NonLinkedCautNoteNumber - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.NonLinkedCautNoteNumber = GetStringFromAllStrings(offset-1); - FmtVars.NonLinkedCautNoteNumber.Text = GetStringFromAllStrings(offset-1); - - // F_DuplexBGDirectory - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.DuplexBGDirectory = GetStringFromAllStrings(offset-1); - FmtVars.DuplexBGDirectory.Text = GetStringFromAllStrings(offset-1); - - // F_DuplexDDDirectory - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.DuplexDDDirectory = GetStringFromAllStrings(offset-1); - FmtVars.DuplexDDDirectory.Text = GetStringFromAllStrings(offset-1); - - // NonLinkedRNONumber - offset = brFmt.ReadInt16(); - if (offset > 0) -// FmtVars.NonLinkedRNONumber = GetStringFromAllStrings(offset-1); - FmtVars.NonLinkedRNONumber.Text = GetStringFromAllStrings(offset-1); - - - -/***********************************************/ - - brFmt.Close(); - - // Now try to xml it.... - string XMLFileName = "C:\\" + fname.Substring(fname.LastIndexOf("\\")+1) + ".XML"; - XmlSerializer serializer = new XmlSerializer(typeof(FmtFileVars)); - TextWriter writer = new StreamWriter(XMLFileName); - - serializer.Serialize(writer, FmtVars); - writer.Close(); - MessageBox.Show(XMLFileName,"Created XML File:"); - } - } - -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ArcData.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ArcData.cs deleted file mode 100644 index 9ca71c38..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ArcData.cs +++ /dev/null @@ -1,143 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ArcData.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 3/08/05 1:44p $ - * - * $History: ArcData.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:44p - * Created in $/LibSource/GUI_Utils - * Approval - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:40p - * Created in $/LibSource/GUI_Utils/GUI_Utils - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:33p - * Created in $/LibSource/GUI_Utils/GUI_Utils - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:32p - * Created in $/LibSource/GUI_Utils/GUI_Utils - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:30p - * Created in $/GUI_Utils/GUI_Utils - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:16p - * Created in $/EXE/GUI_Utils - * Approval - *********************************************************************************************/ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace GUI_Utils -{ - /// - /// Summary description for ArcData. - /// - public class ArcData : System.Windows.Forms.Form - { - private System.Windows.Forms.Label lblPrompt; - private System.Windows.Forms.Button btnYes; - private System.Windows.Forms.Button btnNo; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public ArcData(string Caption, string Message) - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - this.Text = Caption; - this.lblPrompt.Text = Message; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ArcData)); - this.lblPrompt = new System.Windows.Forms.Label(); - this.btnYes = new System.Windows.Forms.Button(); - this.btnNo = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // lblPrompt - // - this.lblPrompt.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblPrompt.Location = new System.Drawing.Point(40, 16); - this.lblPrompt.Name = "lblPrompt"; - this.lblPrompt.Size = new System.Drawing.Size(224, 56); - this.lblPrompt.TabIndex = 0; - this.lblPrompt.Text = "Do you want to save the current data to an archive file before proceeding with th" + - "e Approval or Revise?"; - // - // btnYes - // - this.btnYes.DialogResult = System.Windows.Forms.DialogResult.Yes; - this.btnYes.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnYes.Location = new System.Drawing.Point(56, 88); - this.btnYes.Name = "btnYes"; - this.btnYes.Size = new System.Drawing.Size(80, 24); - this.btnYes.TabIndex = 1; - this.btnYes.Text = "Yes"; - // - // btnNo - // - this.btnNo.DialogResult = System.Windows.Forms.DialogResult.No; - this.btnNo.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnNo.Location = new System.Drawing.Point(176, 88); - this.btnNo.Name = "btnNo"; - this.btnNo.Size = new System.Drawing.Size(72, 24); - this.btnNo.TabIndex = 2; - this.btnNo.Text = "No"; - // - // ArcData - // - this.AutoScale = false; - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(292, 126); - this.Controls.Add(this.btnNo); - this.Controls.Add(this.btnYes); - this.Controls.Add(this.lblPrompt); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ArcData"; - this.Text = "Archive Data"; - this.ResumeLayout(false); - - } - #endregion - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ArcData.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ArcData.resx deleted file mode 100644 index 89da3327..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ArcData.resx +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - ArcData - - - True - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/AssemblyInfo.cs.bak deleted file mode 100644 index 2531b7f9..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/GUI_Utils.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/GUI_Utils.csproj deleted file mode 100644 index 93d8eba0..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/GUI_Utils.csproj +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/GUI_Utils.sln b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/GUI_Utils.sln deleted file mode 100644 index 6429ae93..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/GUI_Utils.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "GUI_Utils", "GUI_Utils.csproj", "{0D980CD1-0EFF-4E46-8501-E9DF31A41AC3}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {0D980CD1-0EFF-4E46-8501-E9DF31A41AC3}.Debug.ActiveCfg = Debug|.NET - {0D980CD1-0EFF-4E46-8501-E9DF31A41AC3}.Debug.Build.0 = Debug|.NET - {0D980CD1-0EFF-4E46-8501-E9DF31A41AC3}.Release.ActiveCfg = Release|.NET - {0D980CD1-0EFF-4E46-8501-E9DF31A41AC3}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ReadWord.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ReadWord.cs deleted file mode 100644 index 81a94399..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ReadWord.cs +++ /dev/null @@ -1,161 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ReadWord.cs $ $Revision: 2 $ - * $Author: Jsj $ $Date: 5/17/05 11:45a $ - * - * $History: ReadWord.cs $ - * - * ***************** Version 2 ***************** - * User: Jsj Date: 5/17/05 Time: 11:45a - * Updated in $/LibSource/GUI_Utils - * position in center of screen - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:45p - * Created in $/LibSource/GUI_Utils - * Approval - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:40p - * Created in $/LibSource/GUI_Utils/GUI_Utils - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:33p - * Created in $/LibSource/GUI_Utils/GUI_Utils - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:32p - * Created in $/LibSource/GUI_Utils/GUI_Utils - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:30p - * Created in $/GUI_Utils/GUI_Utils - *********************************************************************************************/ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace GUI_Utils -{ - /// - /// Summary description for ReadWord. - /// - public class frmReadWord : System.Windows.Forms.Form - { - private System.Windows.Forms.TextBox tbInput; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Label lblInput; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public frmReadWord(string inpText,string caption) - { - InitializeComponent(); - this.lblInput.Text = caption; - this.tbInput.Text = inpText; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(frmReadWord)); - this.lblInput = new System.Windows.Forms.Label(); - this.tbInput = new System.Windows.Forms.TextBox(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // lblInput - // - this.lblInput.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblInput.Location = new System.Drawing.Point(19, 9); - this.lblInput.Name = "lblInput"; - this.lblInput.Size = new System.Drawing.Size(451, 28); - this.lblInput.TabIndex = 0; - // - // tbInput - // - this.tbInput.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.tbInput.Location = new System.Drawing.Point(10, 46); - this.tbInput.Name = "tbInput"; - this.tbInput.Size = new System.Drawing.Size(460, 24); - this.tbInput.TabIndex = 1; - this.tbInput.Text = "textBox1"; - // - // btnOK - // - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnOK.Location = new System.Drawing.Point(125, 92); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(96, 28); - this.btnOK.TabIndex = 2; - this.btnOK.Text = "OK"; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnCancel.Location = new System.Drawing.Point(259, 92); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.RightToLeft = System.Windows.Forms.RightToLeft.Yes; - this.btnCancel.Size = new System.Drawing.Size(96, 28); - this.btnCancel.TabIndex = 3; - this.btnCancel.Text = "Cancel"; - // - // frmReadWord - // - this.AutoScale = false; - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(489, 136); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOK); - this.Controls.Add(this.tbInput); - this.Controls.Add(this.lblInput); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "frmReadWord"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "VE-PROMS"; - this.TopMost = true; - this.ResumeLayout(false); - - } - #endregion - - public string ReadWordText - { - get - { - return this.tbInput.Text; - } - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ReadWord.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ReadWord.resx deleted file mode 100644 index 77760ad0..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/ReadWord.resx +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - frmReadWord - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/TreeViewMultiSelect.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/TreeViewMultiSelect.cs deleted file mode 100644 index 4a53a138..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/TreeViewMultiSelect.cs +++ /dev/null @@ -1,439 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: TreeViewMultiSelect.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 3/08/05 1:45p $ - * - * $History: TreeViewMultiSelect.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:45p - * Created in $/LibSource/GUI_Utils - * Approval - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:40p - * Created in $/LibSource/GUI_Utils/GUI_Utils - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:33p - * Created in $/LibSource/GUI_Utils/GUI_Utils - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:32p - * Created in $/LibSource/GUI_Utils/GUI_Utils - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:30p - * Created in $/GUI_Utils/GUI_Utils - *********************************************************************************************/ -using System; -using System.Collections; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Windows.Forms; - -namespace MultiSelectTreeView -{ - /// - /// Summary description for MultiSelectTreeView. - /// The MultiSelectTreeView inherits from System.Windows.Forms.TreeView to - /// allow user to select multiple nodes. - /// The underlying comctl32 TreeView doesn't support multiple selection. - /// Hence this MultiSelectTreeView listens for the BeforeSelect && AfterSelect - /// events to dynamically change the BackColor of the individual treenodes to - /// denote selection. - /// It then adds the TreeNode to the internal arraylist of currently - /// selectedNodes after validation checks. - /// - /// The MultiSelectTreeView supports - /// 1) Select + Control will add the current node to list of SelectedNodes - /// 2) Select + Shift will add the current node and all the nodes between the two - /// (if the start node and end node is at the same level) - /// 3) Control + A when the MultiSelectTreeView has focus will select all Nodes. - /// - /// - /// - public class MultiSelectTreeView : System.Windows.Forms.TreeView - { - /// - /// This is private member which caches the last treenode user clicked - /// - private TreeNode lastNode; - private TreeNode ParentNode; - private int SelectNodes_ImageId; - - /// - /// This is private member stores the list of SelectedNodes - /// - private ArrayList selectedNodes; - - /// - /// This is private member which caches the first treenode user clicked - /// - private TreeNode firstNode; - - /// - /// The constructor which initialises the MultiSelectTreeView. - /// - public MultiSelectTreeView(int imgid) - { - SelectNodes_ImageId=imgid; - selectedNodes = new ArrayList(); - } - - /// - /// The constructor which initialises the MultiSelectTreeView. - /// - [ - Category("Selection"), - Description("Gets or sets the selected nodes as ArrayList") - ] - public ArrayList SelectedNodes - { - get - { - return selectedNodes; - } - set - { - DeselectNodes(); - selectedNodes.Clear(); - selectedNodes = value; - SelectNodes(); - } - } - - #region overrides - /// - /// If the user has pressed "Control+A" keys then select all nodes. - /// - /// - protected override void OnKeyUp(KeyEventArgs e) - { - base.OnKeyDown (e); - bool Pressed = (e.Control && ((e.KeyData & Keys.A) == Keys.A)); - if (Pressed) - { - // SelectAllNodes(this.Nodes); //we won't allow selection of all. - } - } - - /// - /// This Function starts the multiple selection. - /// - /// - protected override void OnBeforeSelect(TreeViewCancelEventArgs e) - { - base.OnBeforeSelect(e); - - //if (e.Node.SelectedImageIndex!=SelectNodes_ImageId)return; - //if (selectedNodes.Count>1 && e.Node.Parent != ParentNode) return; - //ParentNode=e.Node.Parent; - - //Check for the current keys press.. - bool isControlPressed = (ModifierKeys==Keys.Control); - bool isShiftPressed = (ModifierKeys==Keys.Shift); - bool isRightMouse = (Control.MouseButtons==MouseButtons.Right); - - if (isRightMouse)return; - - //If control is pressed and the selectedNodes contains current Node - //Deselect that node... - //Remove from the selectedNodes Collection... - if (isControlPressed && selectedNodes.Contains(e.Node)) - { - DeselectNodes(); - selectedNodes.Remove( e.Node ); - SelectNodes(); - //MultiSelectTreeView has handled this event .... - //Windows.Forms.TreeView should eat this event. - e.Cancel = true; - return; - } - - - //else (if Shift key is pressed) - //Start the multiselection ... - //Since Shift is pressed we would "SELECT" - ///all nodes from first node - to last node - lastNode = e.Node; - - //If Shift not pressed... - //Remember this Node to be the Start Node .. in case user presses Shift to - //select multiple nodes. - if (!isShiftPressed&&!isControlPressed&&(e.Node.ImageIndex==this.SelectNodes_ImageId)) - firstNode = e.Node; - } - - /// - /// This function ends the multi selection. Also adds and removes the node to - /// the selectedNodes depending upon the keys pressed. - /// - /// - protected override void OnAfterSelect(TreeViewEventArgs e) - { - base.OnAfterSelect(e); - //if (e.Node.SelectedImageIndex!=SelectNodes_ImageId)return; - //if (selectedNodes.Count>1 && e.Node.Parent != ParentNode) return; - ParentNode=e.Node.Parent; - //Check for the current keys press.. - bool isControlPressed = (ModifierKeys==Keys.Control); - bool isShiftPressed = (ModifierKeys==Keys.Shift); - bool isRightMouse = (Control.MouseButtons==MouseButtons.Right); - - if (isRightMouse)return; - if (isControlPressed) - { - if ((!selectedNodes.Contains(e.Node ))&& (e.Node.SelectedImageIndex==SelectNodes_ImageId) && (selectedNodes.Count==0 || e.Node.Parent == ParentNode)) - { - //This is a new Node, so add it to the list. - selectedNodes.Add(e.Node); - ParentNode = e.Node.Parent; - SelectNodes(); - } - else if (selectedNodes.Contains(e.Node)) - { - //If control is pressed and the selectedNodes contains current Node - //Deselect that node... - //Remove from the selectedNodes Collection... - DeselectNodes(); - selectedNodes.Remove( e.Node ); - if (selectedNodes.Count==0)ParentNode=null; - SelectNodes(); - } - else - { - //If control is pressed and this is not at the level of multi - // select, clear selectetdNodes. - if (selectedNodes!=null && selectedNodes.Count>0) - { - DeselectNodes(); - selectedNodes.Clear(); - ParentNode=null; - } - selectedNodes.Add( e.Node ); - } - } - else - { - // SHIFT is pressed - - if (isShiftPressed && e.Node.SelectedImageIndex==SelectNodes_ImageId) - { - if (firstNode==null) - firstNode=e.Node; - else - { - //Start Looking for the start and end nodes to select all the nodes between them. - TreeNode uppernode = firstNode; - TreeNode bottomnode = e.Node; - //Check Parenting Upper ---> Bottom - //Is Upper Node parent (direct or indirect) of Bottom Node - bool bParent = CheckIfParent(uppernode, bottomnode); - if (!bParent) - { - //Check Parenting the other way round - bParent = CheckIfParent(bottomnode, uppernode); - if (bParent) // SWAPPING - { - TreeNode temp = uppernode; - uppernode = bottomnode; - bottomnode = temp; - } - } - if (bParent) - { - TreeNode n = bottomnode; - while ( n != uppernode.Parent) - { - if ( !selectedNodes.Contains( n ) ) - selectedNodes.Add( n ); - n = n.Parent; - } - } - // Parenting Fails ... but check if the NODES are on the same LEVEL. - else - { - if ( (uppernode.Parent==null && bottomnode.Parent==null) || (uppernode.Parent!=null && uppernode.Parent.Nodes.Contains( bottomnode )) ) // are they siblings ? - { - int nIndexUpper = uppernode.Index; - int nIndexBottom = bottomnode.Index; - //Need to SWAP if the order is reversed... - if (nIndexBottom < nIndexUpper) - { - TreeNode temp = uppernode; - uppernode = bottomnode; - bottomnode = temp; - nIndexUpper = uppernode.Index; - nIndexBottom = bottomnode.Index; - } - - TreeNode n = uppernode; - selectedNodes.Clear(); - while (nIndexUpper < nIndexBottom) - { - //Add all the nodes if nodes not present in the current - //SelectedNodes list... - - if (!selectedNodes.Contains( n )) - { - selectedNodes.Add(n); - SelectAllNodesInNode(n.Nodes, n); - } - n = n.NextNode; - nIndexUpper++; - } - //Add the Last Node. - selectedNodes.Add(n); - } - else - { - if ( !selectedNodes.Contains( uppernode ) ) selectedNodes.Add( uppernode ); - if ( !selectedNodes.Contains( bottomnode ) )selectedNodes.Add( bottomnode ); - } - } - ParentNode = e.Node.Parent; - SelectNodes(); - //Reset the firstNode counter for subsequent "SHIFT" keys. - firstNode = e.Node; - } - } - else - { - // If Normal selection then add this to SelectedNodes Collection. - if (selectedNodes!=null && selectedNodes.Count>0) - { - DeselectNodes(); - selectedNodes.Clear(); - } - selectedNodes.Add( e.Node ); - } - } - } - - /// - /// Overriden OnLostFocus to mimic TreeView's behavior of de-selecting nodes. - /// - /// - protected override void OnLostFocus(EventArgs e) - { - base.OnLostFocus (e); - DeselectNodes(); - } - - /// - /// Overriden OnGotFocus to mimic TreeView's behavior of selecting nodes. - /// - /// - protected override void OnGotFocus(EventArgs e) - { - base.OnGotFocus (e); - SelectNodes(); - } - - - - #endregion overrides - - /// - /// Private function to check the parenting of the two nodes passed. - /// - /// - /// - /// - private bool CheckIfParent(TreeNode parentNode, TreeNode childNode) - { - if (parentNode == childNode) - return true; - - TreeNode node = childNode; - bool parentFound = false; - while (!parentFound && node != null) - { - node = node.Parent; - parentFound = (node == parentNode); - } - return parentFound; - } - - /// - /// This function provides the user feedback that the node is selected - /// Basically the BackColor and the ForeColor is changed for all - /// the nodes in the selectedNodes collection. - /// - private void SelectNodes() - { - foreach ( TreeNode n in selectedNodes ) - { - n.BackColor = SystemColors.Highlight; - n.ForeColor = SystemColors.HighlightText; - } - } - - /// - /// This function provides the user feedback that the node is de-selected - /// Basically the BackColor and the ForeColor is changed for all - /// the nodes in the selectedNodes collection. - /// - private void DeselectNodes() - { - if (selectedNodes.Count==0) return; - - TreeNode node = (TreeNode) selectedNodes[0]; - if (node.TreeView==null) return; // on dispose, at end of program - - Color backColor = node.TreeView.BackColor; - Color foreColor= node.TreeView.ForeColor; - - foreach ( TreeNode n in selectedNodes ) - { - n.BackColor = backColor; - n.ForeColor = foreColor; - } - - } - - /// - /// This function selects all the Nodes in the MultiSelectTreeView.. - /// - private void SelectAllNodes(TreeNodeCollection nodes) - { - foreach (TreeNode n in this.Nodes) - { - selectedNodes.Add(n); - if (n.Nodes.Count > 1) - { - SelectAllNodesInNode(n.Nodes, n); - } - - } - SelectNodes(); - } - - /// - /// Recursive function selects all the Nodes in the MultiSelectTreeView's Node - /// - private void SelectAllNodesInNode(TreeNodeCollection nodes, TreeNode node) - { - foreach (TreeNode n in node.Nodes) - { - selectedNodes.Add(n); - if (n.Nodes.Count > 1) - { - SelectAllNodesInNode(n.Nodes, n); - } - } - SelectNodes(); - } - - public bool MultiSelectActive() - { - if (selectedNodes.Count>1)return true; - return false; - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/TreeViewMultiSelect.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/TreeViewMultiSelect.resx deleted file mode 100644 index 3f337e08..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/GUI_Utils/TreeViewMultiSelect.resx +++ /dev/null @@ -1,42 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.0.0.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/EopToErgRelations.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/EopToErgRelations.cs deleted file mode 100644 index fe463197..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/EopToErgRelations.cs +++ /dev/null @@ -1,249 +0,0 @@ -/********************************************************************************************* - * Copyright 2003 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: EopToErgRelations.cs $ $Revision: 1 $ - * $Author: Jsj $ $Date: 11/12/04 10:33a $ - * - * $History: EopToErgRelations.cs $ - * - * ***************** Version 1 ***************** - * User: Jsj Date: 11/12/04 Time: 10:33a - * Created in $/LibSource/VDB - * Class to support translation table maintenance. - *********************************************************************************************/ -using System; -using System.IO; -using System.Collections; -using VDB; - -namespace VDB_Set -{ - /// - /// Support for the maintenance of the EOP ot ERG translation table - /// (TRANSL.TBL) which holds the relationships between the EOPs and ERGs - /// - public class EopToErgRelations - { - static string RelationshipFile = "TRANSL.TBL"; - private ArrayList _aryTransTable = null; - - public ArrayList aryTransTable - { - get - { - return _aryTransTable; - } - - set - { - _aryTransTable = value; - } - } - - public EopToErgRelations() - { - _aryTransTable = new ArrayList(); - ReadTranslationTableFile(); - } - - private void ReadTranslationTableFile() - { - string inbuf; - TransFileRecord TranTblRec; - - if (!File.Exists(RelationshipFile)) - return; // file not there to read - StreamReader sr = new StreamReader(RelationshipFile); - while ((inbuf = sr.ReadLine()) != null) - { - TranTblRec = new TransFileRecord(inbuf); - _aryTransTable.Add(TranTblRec); - } - sr.Close(); - } - - public void WriteTranslationTableFile() - { - StreamWriter sw = new StreamWriter(RelationshipFile,false); - foreach (TransFileRecord tfr in _aryTransTable) - { - sw.Write(tfr.StringForFile()); - } - sw.Close(); - } - - // Add to the end of the passed in list either info from the read-in - // translation file (TRANSL.TBL) or a new (empty) record. - public void AddToTranslationList(SetRecordObj SetRecObj, ArrayList NewList) - { - bool found = false; - for (int i = 0; !found && i < _aryTransTable.Count; i++) - { - TransFileRecord tfr = (TransFileRecord)_aryTransTable[i]; - string tfrUpper = tfr.EOPFile.ToUpper(); - string NewUpper = SetRecObj.DatabaseTable.ToUpper(); - - if (tfrUpper.Equals(NewUpper)) - { - NewList.Add(tfr); - found=true; - } - } - if (!found) - { - TransFileRecord newrec = new TransFileRecord(); - newrec.EOPFile = SetRecObj.DatabaseTable; - NewList.Add(newrec); - } - } - - // Assign the ERG information (passed in as RecObj) to the currently - // slected EOP - public bool ChangeTranslationListItem(int EOPidx, object RecObj) - { - bool changedFlag = false; - SetRecordObj SetRecObj = (SetRecordObj)RecObj; - TransFileRecord tfr = (TransFileRecord)_aryTransTable[EOPidx]; - if (tfr.ERGFile == null || - !tfr.ERGFile.Equals(SetRecObj.DatabaseTable) || - !tfr.ERGProcNum.Equals(SetRecObj.ProcNumber)) - { - changedFlag = true; - tfr.ERGFile = SetRecObj.DatabaseTable; - tfr.ERGProcNum = SetRecObj.ProcNumber; - _aryTransTable[EOPidx] = tfr; - } - return changedFlag; - } - - // For a given procecure number, find the position in the translation - // table list. - public int FindEOPInList(String EopFileName) - { - bool found = false; - int rtval = -1; - int cnt = _aryTransTable.Count; - TransFileRecord tfr; - string uEopFileName = EopFileName.ToUpper(); - - for (int i = 0; !found && i < cnt; i++) - { - tfr = (TransFileRecord)_aryTransTable[i]; - string uListEopName = tfr.EOPFile.ToString().ToUpper(); - - if (uListEopName.Equals(uEopFileName)) - { - rtval = i; - found = true; - } - } - return rtval; - } - - // For a given position in the Translation table, get the corresponding - // position in the ERGList array - public int FindInERGList(int idx, ArrayList ERGList) - { - int rtval = 0; - bool found = false; - TransFileRecord tfr = (TransFileRecord)_aryTransTable[idx]; - if (tfr.ERGFile == null) - return 0; // return not selected - string uERGFileName = tfr.ERGFile.ToUpper(); - SetRecordObj SetRec; - string uErgListFName; - int cnt = ERGList.Count; - - for (int i=0; !found && i < cnt; i++) - { - SetRec = (SetRecordObj)ERGList[i]; - uErgListFName = SetRec.DatabaseTable.ToUpper(); - if (uErgListFName.Equals(uERGFileName)) - { - rtval = i; - found = true; - } - } - return rtval; - } - } - - // This class is used to hold the information of a record in the - // Translation table (TRANSL.TBL) - class TransFileRecord - { - private string _EOPFile; - private string _ERGFile; - private string _ERGProcNum; - - public string EOPFile - { - get - { - return _EOPFile; - } - set - { - _EOPFile = value; - } - } - - public string ERGFile - { - get - { - return _ERGFile; - } - set - { - _ERGFile = value; - } - } - - public string ERGProcNum - { - get - { - return _ERGProcNum; - } - set - { - _ERGProcNum = value; - } - } - - public TransFileRecord() - { - _EOPFile = null; - _ERGFile = null; - _ERGProcNum = null; - } - - // "inbuf" is a line read from the TRANSL.TBL file. - // parse out the the EOP's database file name, the ERG's - // database file name, and the ERG's procedure number - public TransFileRecord(string inbuf) - { - int stidx, len; - stidx = 0; - len = inbuf.IndexOf(","); - _EOPFile = inbuf.Substring(stidx,len); - stidx = len+1; - len = inbuf.IndexOf(",",stidx) - stidx; - _ERGFile = inbuf.Substring(stidx,len); - stidx = stidx + len +1; - _ERGProcNum = inbuf.Substring(stidx); - } - - // Create a string of the EOP database name, ERG database name, and - // ERG procedure number for saving in the TRANSL.TBL file - public string StringForFile() - { - string outbuf; - outbuf = _EOPFile + "," + _ERGFile + "," + _ERGProcNum + "\n"; - return outbuf; - } - } - -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/ProcedureSelectionList.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/ProcedureSelectionList.cs deleted file mode 100644 index 310f0925..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/ProcedureSelectionList.cs +++ /dev/null @@ -1,193 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ProcedureSelectionList.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:39a $ - * - * $History: ProcedureSelectionList.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:39a - * Created in $/LibSource/VDB - *********************************************************************************************/ - -using System; -using System.Data; -using System.Drawing; -using System.Collections; -using System.Collections.Specialized; -using System.ComponentModel; -using System.Windows.Forms; -using System.Text; -using VDB; - -namespace VDB_Set -{ - /// - /// Summary description for ProcedureSelectionList. - /// - public class ProcedureSelectionList : System.Windows.Forms.Form - { - private System.Windows.Forms.CheckedListBox checkedListBox1; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public ProcedureSelectionList() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // Changes the selection mode from double-click to single click. - checkedListBox1.CheckOnClick = true; - } - - public void Add(DataRow rw) - { - SetRecordObj SetRec = new SetRecordObj(rw); - checkedListBox1.Items.Add(SetRec); - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.checkedListBox1 = new System.Windows.Forms.CheckedListBox(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // checkedListBox1 - // - this.checkedListBox1.Location = new System.Drawing.Point(16, 8); - this.checkedListBox1.Name = "checkedListBox1"; - this.checkedListBox1.Size = new System.Drawing.Size(528, 274); - this.checkedListBox1.TabIndex = 0; - // - // btnOK - // - this.btnOK.Location = new System.Drawing.Point(136, 296); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(80, 32); - this.btnOK.TabIndex = 1; - this.btnOK.Text = "OK"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.Location = new System.Drawing.Point(272, 296); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(96, 32); - this.btnCancel.TabIndex = 2; - this.btnCancel.Text = "Cancel"; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // ProcedureSelectionList - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(560, 342); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOK); - this.Controls.Add(this.checkedListBox1); - this.Name = "ProcedureSelectionList"; - this.Text = "Select Procedures"; - this.Load += new System.EventHandler(this.ProcedureSelectionList_Load); - this.ResumeLayout(false); - - } - #endregion - - private void ProcedureSelectionList_Load(object sender, System.EventArgs e) - { - - } - - public StringCollection GetListOfSelectedProcs_Files() - { - StringCollection RtnStrings = new StringCollection(); - - for (int i=0; i< checkedListBox1.CheckedItems.Count; i++) - { - SetRecordObj tmpObj = (SetRecordObj)checkedListBox1.CheckedItems[i]; - RtnStrings.Add(tmpObj.DatabaseTable); - } - - return RtnStrings; - } - - private void btnOK_Click(object sender, System.EventArgs e) - { - DialogResult=DialogResult.OK; - this.Close(); - } - - private void btnCancel_Click(object sender, System.EventArgs e) - { - DialogResult=DialogResult.Cancel; - this.Close(); - } - - } - - public class SetRecordObj - { - public string ProcTitle; - public string ProcNumber; - public string RECID; - public string DatabaseTable; - public string Format; - public string ApprvDate; - public string ApprvTime; - public string Initials; - - public DataRow ProcSetRow; - - public SetRecordObj(DataRow Rw) - { - ProcSetRow = Rw; - ProcTitle = ProcSetRow.ItemArray[0].ToString(); - ProcNumber = ProcSetRow.ItemArray[1].ToString(); - Format = ProcSetRow.ItemArray[2].ToString(); - DatabaseTable = ProcSetRow.ItemArray[4].ToString(); - RECID = ProcSetRow.ItemArray[5].ToString(); - ApprvDate = ProcSetRow.ItemArray[7].ToString(); - ApprvTime = ProcSetRow.ItemArray[8].ToString(); - Initials = ProcSetRow.ItemArray[9].ToString(); - } - - public override string ToString() - { - StringBuilder rtnStr = new StringBuilder(); - - rtnStr.Append(ProcNumber); - rtnStr.Append(" "); - rtnStr.Append(ProcTitle); - return rtnStr.ToString(); - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/ProcedureSelectionList.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/ProcedureSelectionList.resx deleted file mode 100644 index b074ca45..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/ProcedureSelectionList.resx +++ /dev/null @@ -1,157 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - ProcedureSelectionList - - - True - - - 80 - - - True - - - Private - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/VDB.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/VDB.cs deleted file mode 100644 index 73fc9b66..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/VDB.cs +++ /dev/null @@ -1,868 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VDB.cs $ $Revision: 9 $ - * $Author: Kathy $ $Date: 8/16/05 2:53p $ - * - * $History: VDB.cs $ - * - * ***************** Version 9 ***************** - * User: Kathy Date: 8/16/05 Time: 2:53p - * Updated in $/LibSource/VDB - * B2005-030: error if missing ndx - * - * ***************** Version 8 ***************** - * User: Kathy Date: 5/19/05 Time: 11:05a - * Updated in $/LibSource/VDB - * speed up approve - * - * ***************** Version 7 ***************** - * User: Jsj Date: 5/17/05 Time: 11:54a - * Updated in $/LibSource/VDB - * cleanup - * - * ***************** Version 6 ***************** - * User: Kathy Date: 5/11/05 Time: 9:28a - * Updated in $/LibSource/VDB - * add selectinto method - * - * ***************** Version 5 ***************** - * User: Kathy Date: 4/21/05 Time: 10:18a - * Updated in $/LibSource/VDB - * if dbt is < 512, make it 512 - * - * ***************** Version 4 ***************** - * User: Kathy Date: 3/08/05 Time: 1:47p - * Updated in $/LibSource/VDB - * Approval - * - * ***************** Version 3 ***************** - * User: Jsj Date: 8/20/04 Time: 4:44p - * Updated in $/LibSource/VDB - * backed out previous change - * - * ***************** Version 2 ***************** - * User: Jsj Date: 8/20/04 Time: 1:14p - * Updated in $/LibSource/VDB - * Added logic to handle a single quote in a string that is in an SQL - * statement. - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:40a - * Created in $/LibSource/VDB - *********************************************************************************************/ - -using System; -using System.Data; -using System.Data.OleDb; -using System.Collections.Specialized; -using System.IO; -using System.Windows.Forms; -using System.Text; -using VDB_ConnType; - -namespace VDB -{ - /// - /// This the base class for a VE-PROMS database (table) - /// The vdbDBConnType class allows us to setup a default database type (ex dBase) - /// and gives us a cential place to add logic that would allow the end user select - /// the type of database (engine) to use via a configuration file (for example). - /// The virtual functions requires the class, that inherits this base class, - /// to define the SQL statements needed for its database operations. - /// - public abstract class VDB_Base - { - private vdb_DBConnType databaseType; - // made this public so that abstract functions that define SQL statements - // can check the type of database (if needed). - public int databaseTypeValue; - private OleDbConnection dbConn; - - private string strDBPath = ""; //database directory path - private string strDBFile = ""; // database file name with extension - private string strDBTable = ""; // database file name without extension - private string strSelectCommand; - private string[] DBExtensions={"DBF","DBT"}; - - public VDB_Base(string strPath) - { - ParsePathAndFile(strPath); - databaseType = new vdb_DBConnType(); // currently defaults to dBase - databaseTypeValue = databaseType.dbType; - - // check if dbt is at least 512, if not append 508 bytes. This is to fix - // a problem where dbts were created with only 4 bytes in the 16-bit code. - if ( isdBaseFile() && File.Exists(strDBTable+".dbt") ) - { - FileInfo fi = new FileInfo(strDBTable + ".dbt"); - if (fi.Length<512) - { - FileStream fs = new FileStream(strDBTable+".dbt",FileMode.Open,FileAccess.Write,FileShare.ReadWrite); - BinaryWriter bw = new BinaryWriter(fs); - bw.Seek(0,SeekOrigin.End); - byte []wrBytes = new byte[512-fi.Length]; - for (int i=0; i<512-fi.Length; i++) wrBytes[i]=0; - wrBytes[4]=0x02; - bw.Write(wrBytes); - bw.Close(); - } - fi = null; - } - dbConn = new OleDbConnection(databaseType.ConnectionString(strDBPath,"")); - - // if needed, create an INF file with index file names listed or if - // index file(s) don't exist, create them (B2005-030) - if ( isdBaseFile() && File.Exists(strDBFile)) - CheckIndxAndINF(); - } - - private void ParsePathAndFile(string strInPath) - { - // do we have a file name with the path? - if (File.Exists(strInPath)) - { - // Get the Path - int lastSlash = strInPath.LastIndexOf("\\"); - if (lastSlash > 0) - { - strDBPath = strInPath.Substring(0,lastSlash); - lastSlash++; // move past slash - } - else // current directory path - { - strDBPath = ".\\"; - lastSlash=0; - } - - // Get the file (with extension) - strDBFile = strInPath.Substring(lastSlash); - - //Get the file (without extension) - strDBTable = strDBFile; - int lastDot = strDBFile.LastIndexOf("."); - if (lastDot >0 ) // trim off the extension - strDBTable = strDBFile.Substring(0,lastDot); - } - else // no file name, just a path to database directory - { - strDBPath = strInPath; - if (strDBPath.Length == 0) // empty string for path - strDBPath = ".\\"; // current directory path - strDBFile = ""; - strDBTable = ""; - } - - } - - - public string DBPath //database directory path - { - get - { - return strDBPath; - } - - set - { - strDBPath = value.ToString(); - } - } - public string DBFile // database file name with extension - { - get - { - return strDBFile; - } - // I don't think was want to set the file name -// set -// { -// strDBFile = value.ToString(); -// } - } - - public string DBTable // also dBase file name without extension - { - get - { - return strDBTable; - } - set - { - string tmp = value.ToString(); - // If a path was passed in inore it. The connection already - // has a path associated with it and we don't want to get it angry. - int j = tmp.LastIndexOf("\\"); - if ((j>0) && tmp[j] == '\\') - tmp = tmp.Substring(j+1); - - tmp = tmp.ToUpper(); - // if there is a file extension, chop it off but save it to assign - // to the strDBFile property - j = tmp.LastIndexOf("."); - if ((j>0) && tmp[j] == '.') // got an extension - { - strDBFile = tmp; - strDBTable = tmp.Substring(0,j); - } - else // no extension, assign the table name - { - strDBTable = tmp; - // if we're connected to dBase, then Tables are Files, - // So create a strDBFile by added .DBF to the table name - if (isdBaseFile()) - strDBFile = tmp + ".DBF"; - } - - // We assigned the strDBTable (DBTable property) with a table name. - // Now we need to make sure there is a corresponding INF file - // for dBase index file information. - CreateINF(); - } - } - -/*** - // To have single quote in a sql command string, you need to - // represent it as '' (two single quotes) - private string FixSingleQuotes(string sqlcmd) - { - string tmpstr1 = "(,= "; - string tmpstr2 = "), "; - string rtnstr = ""; - int idx = 0; - int st = 0; - bool twoquotes; - int len = sqlcmd.Length; - - while ((idx = sqlcmd.IndexOf("'",st)) >= 0) - { - twoquotes = true; - // is there a "(", comma , "=", or a space before the quote? - // if so then we do not want to add another quote - // because it part of the sql command, not the string - if (idx > 0 && (tmpstr1.IndexOf(sqlcmd[idx-1]) >= 0)) - twoquotes = false; - - // is there a ")", comma, or a space after the quote? - // if so then we do not want to add another quote - // because it part of the sql command, not the string - if (twoquotes) - if (idx > 0 && (idx == len) || (tmpstr2.IndexOf(sqlcmd[idx+1]) >= 0)) - twoquotes = false; - - // If there is already a second quote, then increment idx past - // it and set twoqotes to false. - if (twoquotes) - { - if (sqlcmd[idx+1] == '\'') - { - idx++; // second quote already there - twoquotes = false; - } - } - - rtnstr += sqlcmd.Substring(st,(idx-st)+1); - - if (twoquotes) - { - rtnstr += "'"; // add a second quote - } - twoquotes = false; - idx++; - st = idx; - } - rtnstr += sqlcmd.Substring(st); - - return rtnstr; - } -***/ - // Process a list of SQL commands. If an error occures, return 1 - private int ProcessSQLCommands (OleDbCommand cmdSQL,StringCollection strColl) - { - int errs =0; - foreach (string sqlcmd in strColl) - { - try - { -/*** - string fixedSqlCmd = FixSingleQuotes(sqlcmd); - cmdSQL.CommandText = fixedSqlCmd; //sqlcmd; -***/ - cmdSQL.CommandText = sqlcmd; - cmdSQL.ExecuteNonQuery(); - } - catch (Exception err) - { - errs = 1; - MessageBox.Show(err.Message.ToString(),"ProcessSQLCommands Error"); - } - } - return errs; - } - - //memo strings of greater than 255 where getting truncated and needed a separate - // reader. - public string GetMemo(string RecId) - { - string retstr=null; - OleDbCommand cmd=null; - OleDbDataReader dr = null; - StringBuilder tmp = new StringBuilder(); - tmp.Append("SELECT [TEXTM] FROM ["); - tmp.Append(DBTable); - tmp.Append("] WHERE RECID = '"); - tmp.Append(RecId); - tmp.Append("'"); - try - { - dbConn.Open(); - cmd = new OleDbCommand(tmp.ToString(),dbConn); - dr = cmd.ExecuteReader(); - if (dr.Read())retstr = dr.GetString(0); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"VDB Error"); - retstr = null; - } - if (dr !=null) dr.Close(); - if (cmd != null) cmd.Dispose(); - dbConn.Close(); - return retstr; - } - - // The default SQL statement will get all of the records in a database - // This should be suitable for all of our database, but just in case - // it can be overloaded. - public virtual string DefaultSelectCommand() - { - StringBuilder tmp = new StringBuilder(); - tmp.Append("SELECT * FROM ["); - tmp.Append(strDBTable); - tmp.Append("]"); - return tmp.ToString(); - } - - // return and set the SELECT statement used to get a DataSet (DB_Data) - public string SelectCmd - { - get - { - return strSelectCommand; - } - set - { - strSelectCommand = value.ToString(); - } - - } - - public System.Data.DataSet DB_Data - { - // return a DataSet containing the database (table) records - get - { - dbConn.Open(); - // if a select command was not created, then use the default - // select all command - if (strSelectCommand == null || strSelectCommand.Equals("")) - strSelectCommand = DefaultSelectCommand(); - - OleDbDataAdapter da =new OleDbDataAdapter(strSelectCommand,dbConn); - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - } - catch (Exception err) - { - MessageBox.Show(err.Message.ToString(),"VDB Error"); - ds = null; // return null if error getting dataset - } - dbConn.Close(); - return ds; - } - - // update the database (table) with the changes made to the DataSet - set - { - // pass in a dataset, update the changed/added/deleted records - int err = 0; - StringCollection CommandList = new StringCollection(); - // Open a database connection - dbConn.Open(); - - // Setup for a series of database transactions - System.Data.OleDb.OleDbCommand cmdSQL = new OleDbCommand(); - System.Data.OleDb.OleDbTransaction dbTransAct; -// dbTransAct = dbConn.BeginTransaction(IsolationLevel.Serializable); - dbTransAct = dbConn.BeginTransaction(); - cmdSQL.Connection = dbConn; - cmdSQL.Transaction = dbTransAct; - - // Get only the new, modified, and deleted dataset rows - DataSet dsChanges = value.GetChanges(); - - // Get the database Table (the database file in dBase terms) - DataTable tbl = dsChanges.Tables[0]; - - // Spin through the changed rows (in the DataSet) and add - // the proper SQL command to the list of commands - foreach (DataRow row in tbl.Rows) - { - switch (row.RowState) - { - case DataRowState.Modified: - CommandList.Add(GetRecUpdateStr(tbl,row)); - break; - - case DataRowState.Added: - CommandList.Add(GetRecInsertStr(tbl,row)); - break; - - case DataRowState.Deleted: - CommandList.Add(RecDeleteStr(tbl,row)); - break; - - default: - // Ignore the DataRowState.Detached - // and the DataRowState.Unchanged - break; - } - } - - // Process the list of SQL commands - err = ProcessSQLCommands(cmdSQL,CommandList); - - // If no errors in the database transactions, - // commit the changes in both the database - // and the dataset. - if (err == 0) - { - dbTransAct.Commit(); - value.AcceptChanges(); - } - else - { - // If there was an error then roll back the changes - dbTransAct.Rollback(); - } - dbConn.Close(); - } - } - - public bool ProcessACommand(string cmd) - { - // open a connection and setup for the database command - dbConn.Open(); - System.Data.OleDb.OleDbCommand cmdSQL = new OleDbCommand(); - System.Data.OleDb.OleDbTransaction dbTransAct; - dbTransAct = dbConn.BeginTransaction(); - try - { - cmdSQL.Connection = dbConn; - cmdSQL.Transaction = dbTransAct; - cmdSQL.CommandText = cmd; - cmdSQL.ExecuteNonQuery(); - dbTransAct.Commit(); - dbConn.Close(); - } - catch (Exception e) - { - dbTransAct.Rollback(); - dbConn.Close(); - MessageBox.Show(e.Message,"Error writing to database"); - return false; - } - return true; - } - - // Create a function that returns an SQL statement to use for updating - // existing records in a database - public abstract string GetRecUpdateStr(DataTable tbl,DataRow row); - - // Create a function that returns an SQL statement to use for inserting - // records in a database - public abstract string GetRecInsertStr(DataTable tbl,DataRow row); - - // Create a function that returns an SQL statement to use for deleting - // existing records in a database - public abstract string RecDeleteStr(DataTable tbl,DataRow row); - - // Create a function that returns a list of SQL commands that will create - // a new table - public abstract StringCollection CreateTableStatements(string strTblName); - - // Create a function that returns a list of SQL commands that selects from - // given table into another table. (Used for copying to approved/tmpchg). - public virtual StringCollection SelectIntoStatements(string destdb){return null;} - - // Create a function that returns a list of SQL commands that will create - // the index files needed for this database file. - public virtual StringCollection CreateIndexFilesStatements(){return null;} - - // Create a function that returns a list of SQL commands that will create - // the first (empty) record. - public virtual StringCollection CreateFirstRecordStatement(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - // Default to no "first record" (a.k.a record zero) - // Return an empty set of SQL commands - return rtnStrColl; - } - - // Override this function if post processing is needed after creating - // a table. - public virtual int PostCreateTableFunction() - { - return 0; - } - - public int CreateTable(string strTlbName) - { - int errs =0; - dbConn.Open(); - - // Setup for a series of database transactions - System.Data.OleDb.OleDbCommand cmdSQL = new OleDbCommand(); - System.Data.OleDb.OleDbTransaction dbTransAct; -// dbTransAct = dbConn.BeginTransaction(IsolationLevel.Serializable); - dbTransAct = dbConn.BeginTransaction(); - cmdSQL.Connection = dbConn; - cmdSQL.Transaction = dbTransAct; - - // Process the list of SQL commands - // NOTE: if you create an associated INF file (for dBase indexes) - // before calling ProcessSQLCommands(), the INF file will be - // deleted (by the database engine) when the Create Table - // SQL command is run. - errs = ProcessSQLCommands(cmdSQL,CreateTableStatements(strTlbName)); - - // The PostCreateTableFunction() function should: - // - call CreateINF()if using dBase files with indexes - // - create the first "blank" record if required - if (errs == 0) - errs = PostCreateTableFunction(); - // Create the first record - if (errs == 0) - errs = ProcessSQLCommands(cmdSQL,CreateFirstRecordStatement(strTlbName)); - - dbConn.Close(); - return errs; - } - - // Just a pass through, update string is passed in. - public bool UpdateUsing(string updstr) - { - return (ProcessACommand(updstr)); - } - - // Select data from the current table into a new table, where the new table - // is the parameter destfile which includes the pathname to the database - // file. - public int SelectIntoNewTable(string destfile) - { - int errs=0; - dbConn.Open(); - - // Setup for a series of database transactions - System.Data.OleDb.OleDbCommand cmdSQL = new OleDbCommand(); - System.Data.OleDb.OleDbTransaction dbTransAct; - dbTransAct = dbConn.BeginTransaction(); - cmdSQL.Connection = dbConn; - cmdSQL.Transaction = dbTransAct; - - // Process the list of SQL commands, selectinto has no where clause. - // It only requires that the destination database file be included. - errs = ProcessSQLCommands(cmdSQL,SelectIntoStatements(destfile)); - - dbConn.Close(); - return errs; - } - - // make statement to insert into (an existing table). If table specific - // commands are needed, move this to the specific table code. - public StringCollection InsertIntoStatements(string destdb, string WhereStr) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder str = new StringBuilder(); - - str.Append("INSERT INTO "); - str.Append(DBTable); - str.Append(" IN '"); - str.Append(destdb.Substring(0,destdb.LastIndexOf('\\'))); - str.Append("' 'dBase III;' SELECT * FROM "); - str.Append(DBTable); - - if (WhereStr.Length > 0) // Was a WHERE clause passed in? - { - // Add " WHERE " to the beginning if it is not already there - string tmpstr = WhereStr.ToUpper(); - if (tmpstr[0] != ' ') - { - str.Append(" "); - if (!tmpstr.StartsWith("WHERE ")) - str.Append("WHERE "); - } - else if (!tmpstr.StartsWith(" WHERE ")) - str.Append(" WHERE"); - // add the passed in WHERE clause - str.Append(WhereStr); - } - rtnStrColl.Add(str.ToString()); - return rtnStrColl; - } - - public int InsertInto(string destfile, string WhereStr) - { - int errs=0; - dbConn.Open(); - - // Setup for a series of database transactions - System.Data.OleDb.OleDbCommand cmdSQL = new OleDbCommand(); - System.Data.OleDb.OleDbTransaction dbTransAct; - dbTransAct = dbConn.BeginTransaction(); - cmdSQL.Connection = dbConn; - cmdSQL.Transaction = dbTransAct; - - // Process the list of SQL commands, selectinto has no where clause, but - // requires that the index file be created ("",true arguments) - errs = ProcessSQLCommands(cmdSQL,InsertIntoStatements(destfile,WhereStr)); - dbConn.Close(); - return errs; - } - - // make statement to delete records based on input criteria. If table specific - // commands are needed, move this to the specific table code. - public StringCollection DeleteSelectedStr(string whereclause) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder deleteStr = new StringBuilder(); - deleteStr.Append("DELETE FROM ["); - deleteStr.Append(DBTable); - deleteStr.Append("]"); - - // Add the WHERE clause - deleteStr.Append(" WHERE "); - deleteStr.Append(whereclause); - rtnStrColl.Add(deleteStr.ToString()); - return rtnStrColl; - } - - // Delete selected records based on criteria from WhereStr parameter. - public int DeleteSelected(string WhereStr) - { - int errs=0; - dbConn.Open(); - - System.Data.OleDb.OleDbCommand cmdSQL = new OleDbCommand(); - System.Data.OleDb.OleDbTransaction dbTransAct; - dbTransAct = dbConn.BeginTransaction(); - cmdSQL.Connection = dbConn; - cmdSQL.Transaction = dbTransAct; - - // Process the list of SQL commands - errs = ProcessSQLCommands(cmdSQL,DeleteSelectedStr(WhereStr)); - - dbConn.Close(); - return errs; - } - - public abstract StringCollection DeleteTableStatements(string strTblName); - - // Override this function if post processing is needed after removing - // a table. - public int PostDeleteTableFunction() - { - return 0; - } - - public virtual int DeleteTable(string strTblName) - { - int errs =0; - dbConn.Open(); - - // Setup for a series of database transactions - System.Data.OleDb.OleDbCommand cmdSQL = new OleDbCommand(); - System.Data.OleDb.OleDbTransaction dbTransAct; -// dbTransAct = dbConn.BeginTransaction(IsolationLevel.Serializable); - dbTransAct = dbConn.BeginTransaction(); - cmdSQL.Connection = dbConn; - cmdSQL.Transaction = dbTransAct; - - // Process the list of SQL commands - errs = ProcessSQLCommands(cmdSQL,DeleteTableStatements(strTblName)); - - // do any needed post processing - if (errs == 0) - errs = PostDeleteTableFunction(); - - if (errs == 0) // no errors - { - strDBTable = ""; - if (databaseTypeValue.Equals(vdb_DBConnType.DBTypes.DBaseIII)) - { - strDBFile = ""; - } - } - dbConn.Close(); - return errs; - } - - // Override this function to create a text file with the same name as the - // dBase file, except give it an extension of INF instead of DBF. - // Inside this text file should be the index file names associated - // with the dBasefile. (each file name should be on its own line) - // Example, for USAGERO.DBF you should create a USAGERO.INF and inside - // the INF file should be: - // NDX1=USAGERO.NDX - // NDX2=USAGROID.NDX - // - // If the dBase does not use an index file, then there is no need to - // override this virtual funtion. - public virtual int CreateINF() - { - return 0; - } - - public bool isdBaseFile() - { - return databaseTypeValue == (int)vdb_DBConnType.DBTypes.DBaseIII; - } - public virtual string GetCreateIndx1String() - { - return null; - } - public virtual string GetCreateIndx2String() - { - return null; - } - public virtual bool IndexFilesExist() - { - return true; - } - - public virtual void DeleteIndexFiles() - { - } - - // use this to clean up/create index & INF Files. The INF files are used to - // define which index files are used for the given database file. However, if file - // names are listed in the INF file and the NDX file does not exist, an error was - // given - so be sure that the index files exist too. Note that the INF file - // must be created after the NDX file, because an error occurs if creating an NDX - // file when an INF file exists. This was done to fix B2005-030. - public bool CheckIndxAndINF() - { - try - { - if (!IndexFilesExist()) - { - string cwd = Directory.GetCurrentDirectory(); - Directory.SetCurrentDirectory(DBPath); - // if more than one index file exists for a dbf, then delete (in case - // one of them did exist) - DeleteIndexFiles(); - // CreateIndexFiles creates the NDX and also INF. - CreateIndexFiles(); - Directory.SetCurrentDirectory(cwd); - } - else - CreateINF(); // CreateINF creates a new copy (overwrites any existing) - } - catch (Exception e) - { - MessageBox.Show("Could not set up index files " + e.Message,"Check For Indexes"); - return false; - } - return true; - } - - public virtual int CreateIndexFiles() - { - int errs =0; - dbConn.Open(); - - // Setup for a series of database transactions - System.Data.OleDb.OleDbCommand cmdSQL = new OleDbCommand(); - System.Data.OleDb.OleDbTransaction dbTransAct; - dbTransAct = dbConn.BeginTransaction(); - cmdSQL.Connection = dbConn; - cmdSQL.Transaction = dbTransAct; - - // if dbase, delete the inf file. If it exists, an error occurs when - // creating the index. - if (File.Exists(strDBTable+".INF")) File.Delete(strDBTable+".INF"); - // Process the list of SQL commands - errs = ProcessSQLCommands(cmdSQL,CreateIndexFilesStatements()); - dbConn.Close(); - if (errs==0 && isdBaseFile()) CreateINF(); - return errs; - } - - public void Pack() - { - // the database was not getting 'packed' on a delete, i.e. the deleted - // records were still visible in the 16-bit codes. We'll pack here by - // selecting into a temp db & renaming files. - - // first see if there is an index, i.e. GetCreateIndxString will return - // a string if an index file is needed. If so, we know that we'll have - // to create the index(es) & also create an INF file. - string createindx = GetCreateIndx1String(); - - string origname = this.DBTable; - string newtbname=null; - try - { - if (this.DBTable.Length==8) - newtbname = "z" + this.DBTable.Substring(1,7); - else - newtbname = "z" + this.DBTable; - - string sqlcmd = "select * into [" + newtbname + "] from [" + origname + "];"; - - // Setup for a series of database transactions - dbConn = new OleDbConnection(databaseType.ConnectionString(strDBPath,"")); - dbConn.Open(); - System.Data.OleDb.OleDbCommand cmdSQL = new OleDbCommand(sqlcmd,dbConn); - cmdSQL.ExecuteNonQuery(); - dbConn.Close(); - - // delete original & rename (dbf, dbt), then make new index file & INF - // file, if they exist. - foreach(string str in DBExtensions) - { - string orig = strDBPath+"\\"+origname + "." + str; - if (File.Exists(orig)) - { - File.Delete(orig); - string newnm = strDBPath + "\\" + newtbname + "." + str; - File.Move(newnm,orig); - } - } - if (createindx!=null) - { - // delete the index files... - DeleteIndexFiles(); - dbConn.Open(); - cmdSQL = new OleDbCommand(createindx,dbConn); - cmdSQL.ExecuteNonQuery(); - createindx = GetCreateIndx2String(); - if (createindx!=null) - { - cmdSQL.CommandText = createindx; - cmdSQL.ExecuteNonQuery(); - } - dbConn.Close(); - CreateINF(); - } - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Could not pack database, use data integrity checker on procedure"); - } - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/VDB.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/VDB.csproj deleted file mode 100644 index 78d0dba5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/VDB.csproj +++ /dev/null @@ -1,155 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/VDB.sln b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/VDB.sln deleted file mode 100644 index 004e0724..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/VDB.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VDB", "VDB.csproj", "{F6AB1684-FC39-47E8-BEF1-A71EE4082206}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {F6AB1684-FC39-47E8-BEF1-A71EE4082206}.Debug.ActiveCfg = Debug|.NET - {F6AB1684-FC39-47E8-BEF1-A71EE4082206}.Debug.Build.0 = Debug|.NET - {F6AB1684-FC39-47E8-BEF1-A71EE4082206}.Release.ActiveCfg = Release|.NET - {F6AB1684-FC39-47E8-BEF1-A71EE4082206}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdbConnType.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdbConnType.cs deleted file mode 100644 index 72ba21ce..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdbConnType.cs +++ /dev/null @@ -1,66 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: vdbConnType.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:40a $ - * - * $History: vdbConnType.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:40a - * Created in $/LibSource/VDB - *********************************************************************************************/ - -using System; -using System.Text; - -namespace VDB_ConnType -{ - /// - /// This currently defaults to dBase, but logic can be added to - /// select other database types. - /// - public class vdb_DBConnType - { - public enum DBTypes {DBaseIII, Access}; // list of database types - private int CurrentDbType; // current database type - - public vdb_DBConnType() - { - CurrentDbType = (int)DBTypes.DBaseIII; - } - - public int dbType - { - get - { - return CurrentDbType; - } - } - - // The "database" parameter is here for future use of Access (part of the - // Data Source string) and for Sequel (the Initial Catalog) settings. - // for a dBase connection, we only need the "dbpath" parameter. - public string ConnectionString(string dbpath, string database) - { - StringBuilder tmp = new StringBuilder(); - - switch (CurrentDbType) - { - case (int)DBTypes.DBaseIII: - tmp.Append("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="); - tmp.Append(dbpath); - tmp.Append(";Extended Properties=dBase III;Persist Security Info=False"); - break; - case (int)DBTypes.Access: - // build the connect string for an Access database - break; - default: - break; - - } - return tmp.ToString(); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_Proc.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_Proc.cs deleted file mode 100644 index 28c1b5a7..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_Proc.cs +++ /dev/null @@ -1,553 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: vdb_Proc.cs $ $Revision: 11 $ - * $Author: Kathy $ $Date: 9/23/05 8:33a $ - * - * $History: vdb_Proc.cs $ - * - * ***************** Version 11 ***************** - * User: Kathy Date: 9/23/05 Time: 8:33a - * Updated in $/LibSource/VDB - * Fix B2005-043 - cannot select into for files with a '-' (dash). - * - * ***************** Version 10 ***************** - * User: Jsj Date: 9/16/05 Time: 9:54a - * Updated in $/LibSource/VDB - * handle dbase NDX file names that begin with a number. SQL statement - * could not create a NDX file that begins with a number. - * - * ***************** Version 9 ***************** - * User: Kathy Date: 8/16/05 Time: 2:53p - * Updated in $/LibSource/VDB - * B2005-030: error if missing ndx - * - * ***************** Version 8 ***************** - * User: Kathy Date: 7/28/05 Time: 2:06p - * Updated in $/LibSource/VDB - * for mod proc number, select into correct destination file - * - * ***************** Version 7 ***************** - * User: Kathy Date: 5/19/05 Time: 11:05a - * Updated in $/LibSource/VDB - * speed up approve - * - * ***************** Version 6 ***************** - * User: Jsj Date: 5/17/05 Time: 9:39a - * Updated in $/LibSource/VDB - * - * ***************** Version 5 ***************** - * User: Kathy Date: 5/11/05 Time: 9:28a - * Updated in $/LibSource/VDB - * add selectinto support - * - * ***************** Version 4 ***************** - * User: Kathy Date: 4/21/05 Time: 10:19a - * Updated in $/LibSource/VDB - * always write inf file - * - * ***************** Version 3 ***************** - * User: Kathy Date: 3/08/05 Time: 1:47p - * Updated in $/LibSource/VDB - * Approval - * - * ***************** Version 2 ***************** - * User: Jsj Date: 8/23/04 Time: 10:12a - * Updated in $/LibSource/VDB - * Fixed replace of single quote - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:40a - * Created in $/LibSource/VDB - *********************************************************************************************/ - -using System; -using System.Data; -using System.Text; -using System.Collections.Specialized; -using System.IO; -using System.Windows.Forms; -using VDB; - -namespace VDB_Proc -{ - /// - /// Summary description for vdb_Proc. - /// - public class vdb_Proc:VDB_Base - { - public enum SortTypes {NotSorted,StepSeqTypeSort,RECIDsort}; // list of sorting types - public string ProcNDX = ""; - public string TmpNDXFileName = ""; - - public vdb_Proc(String strPath):base(strPath) - { - } - - public string ProcGetTextFromMemo(string RecId) - { - return GetMemo(RecId); - } - - // Build a SQL statement. Optionally sort and filter the select statement. - private void BuildSelectCommand(int SortingType,string WhereStr) - { - StringBuilder tmp = new StringBuilder(); - tmp.Append("SELECT [STEP], [SEQUENCE], [TEXT], [TEXTM], [TYPE], [DATE], [TIME], [INITIALS], [RECID] FROM ["); - tmp.Append(DBTable); - tmp.Append("]"); - - if (WhereStr.Length > 0) // Was a WHERE clause passed in? - { - // Add " WHERE " to the beginning if it is not already there - string tmpstr = WhereStr.ToUpper(); - if (tmpstr[0] != ' ') - { - tmp.Append(" "); - if (!tmpstr.StartsWith("WHERE ")) - tmp.Append("WHERE "); - } - else if (!tmpstr.StartsWith(" WHERE ")) - tmp.Append(" WHERE"); - // add the passed in WHERE clause - tmp.Append(tmpstr); - } - - switch (SortingType) - { - case 0: //NotSorted - break; - case 1: // StepSeqTypeSort - sorted by STEP+SEQUENCE+TYPE - tmp.Append(" GROUP BY [STEP],[SEQUENCE],[TYPE],[TEXT],[TEXTM],[DATE],[TIME],[INITIALS],[RECID]"); - break; - case 2: // RECIDsort - sorted by RECID - tmp.Append(" GROUP BY [RECID],[STEP],[SEQUENCE],[TYPE],[TEXT],[TEXTM],[DATE],[TIME],[INITIALS]"); - break; - } - - SelectCmd = tmp.ToString(); - } - -#if Upgrade2005_Print - // Build a SQL statement for record count on select. - private void BuildCountCommand(string WhereStr) - { - StringBuilder tmp = new StringBuilder(); - tmp.Append("SELECT COUNT(*) FROM ["); - tmp.Append(DBTable); - tmp.Append("]"); - - if (WhereStr.Length > 0) // Was a WHERE clause passed in? - { - // Add " WHERE " to the beginning if it is not already there - string tmpstr = WhereStr.ToUpper(); - if (tmpstr[0] != ' ') - { - tmp.Append(" "); - if (!tmpstr.StartsWith("WHERE ")) - tmp.Append("WHERE "); - } - else if (!tmpstr.StartsWith(" WHERE ")) - tmp.Append(" WHERE"); - // add the passed in WHERE clause - tmp.Append(tmpstr); - } - - SelectCmd = tmp.ToString(); - } -#endif - private void BuildNDXFileNames() - { - ProcNDX = DBTable; - } - - - // Build the SQL command needed to update a row in the Procedure file - public override string GetRecUpdateStr(DataTable tbl,DataRow row) - { - int j = 0; - bool FirstOne = true; - StringBuilder updateStr = new StringBuilder(); - StringBuilder LikeRecID = new StringBuilder(); - bool NullEntry = false; - - updateStr.Append("UPDATE ["); - updateStr.Append(DBTable); - updateStr.Append("] SET"); - - foreach (DataColumn col in tbl.Columns) - { - bool isString = (col.DataType == Type.GetType("System.String")); - if (col.ColumnName.Equals("STEP") && row.ItemArray[j].ToString().Equals("")) - { - NullEntry = true; - j++; - continue; - } - if (col.ColumnName.Equals("RECID")) - { - LikeRecID.Append("___"); // ignore the first 3 positions - LikeRecID.Append(row.ItemArray[j].ToString(),3,5); - } - if (FirstOne) - { - updateStr.Append(" ["); - FirstOne = false; - } - else - updateStr.Append(", ["); - updateStr.Append(col.ColumnName); - updateStr.Append("]="); - - if (row.ItemArray[j].ToString().Equals("")) - { - updateStr.Append("NULL"); - } - else if (isString) - { - String tmpstr = row.ItemArray[j].ToString(); - updateStr.Append("'"); - tmpstr = tmpstr.Replace("'","''"); - updateStr.Append(tmpstr); - updateStr.Append("'"); - } - else if (col.DataType == Type.GetType("System.DateTime")) - { - int jj; - String tmpstr = row.ItemArray[j].ToString(); - updateStr.Append("'"); - jj=tmpstr.IndexOf(" "); - if (jj<0) jj = tmpstr.Length; - updateStr.Append(tmpstr.Substring(0,jj)); - updateStr.Append("'"); - } - j++; - } - if (NullEntry) - { - // So that we can change the RECID number on the first entry - updateStr.Append(" WHERE [STEP] IS NULL"); - } - else - { - updateStr.Append(" WHERE [RECID] LIKE '"); - updateStr.Append(LikeRecID.ToString()); - updateStr.Append("'"); - } - return updateStr.ToString(); - } - - - // Build the SQL command needed to insert a row in the Procedure file - public override string GetRecInsertStr(DataTable tbl,DataRow row) - { - int j = 0; - StringBuilder insrtStr = new StringBuilder(); - StringBuilder valueStr = new StringBuilder(); - - insrtStr.Append("INSERT INTO ["); - insrtStr.Append(DBTable); - insrtStr.Append("] ("); - - valueStr.Append(" VALUES ("); - - foreach (DataColumn col in tbl.Columns) - { - bool isString = (col.DataType == Type.GetType("System.String")); - insrtStr.Append("["); - insrtStr.Append(col.ColumnName); - insrtStr.Append("],"); - - if (row.ItemArray[j].ToString().Equals("")) - { - valueStr.Append("NULL"); - } - else if (isString) - { - String tmpstr = row.ItemArray[j].ToString(); - tmpstr = tmpstr.Replace("'","''"); - valueStr.Append("'"); - valueStr.Append(tmpstr); - valueStr.Append("'"); - } - else if (col.DataType == Type.GetType("System.DateTime")) - { - int jj; - String tmpstr = row.ItemArray[j].ToString(); - valueStr.Append("'"); - jj = tmpstr.IndexOf(" "); - if (jj<0) jj=tmpstr.Length; - valueStr.Append(tmpstr.Substring(0,jj)); - valueStr.Append("'"); - } - else - { - valueStr.Append(row.ItemArray[j].ToString()); - } - valueStr.Append(","); - j++; - } - - insrtStr = insrtStr.Replace(',',')',insrtStr.Length-1,1); - valueStr = valueStr.Replace(',',')',valueStr.Length-1,1); - insrtStr.Append(valueStr.ToString()); - - return insrtStr.ToString(); - } - - // Build the SQL command needed to delete a row in the Procedure file - public override string RecDeleteStr(DataTable tbl,DataRow row) - { - int j = 0; - String RecIDStr = ""; - String StepStr = ""; - String SeqStr = ""; - StringBuilder deleteStr = new StringBuilder(); - - deleteStr.Append("DELETE FROM ["); - deleteStr.Append(DBTable); - deleteStr.Append("] WHERE "); - - row.RejectChanges(); - foreach (DataColumn col in tbl.Columns) - { - if (col.ColumnName.Equals("STEP")) - { - StepStr = row.ItemArray[j].ToString(); - } - else if (col.ColumnName.Equals("SEQUENCE")) - { - SeqStr = row.ItemArray[j].ToString(); - } - else if (col.ColumnName.Equals("RECID")) - { - RecIDStr = row.ItemArray[j].ToString(); - } - j++; - } - // we might want to change this to delete via only the RECID - // but that could be risky if we have duplicate RECIDs - deleteStr.Append("[STEP] = '"); - deleteStr.Append(StepStr); - deleteStr.Append("' AND [SEQUENCE] = '"); - deleteStr.Append(SeqStr); - deleteStr.Append("' AND [RECID] = '"); - deleteStr.Append(RecIDStr); - deleteStr.Append("'"); - - return deleteStr.ToString(); - - } - - public override string GetCreateIndx1String() - { - StringBuilder index1Str = new StringBuilder(); - // Make a temporary index file name if dBase filename - // for any procedure. (those that start with a number - // or had a dash were having a problem here - see - // B2005-040 & 043). - TmpNDXFileName = "ndxtmp"; - index1Str.Append("CREATE INDEX ["); - index1Str.Append(TmpNDXFileName); - index1Str.Append("] ON ["); - index1Str.Append(DBTable); - index1Str.Append("] ([STEP],[SEQUENCE],[TYPE])"); - return (index1Str.ToString()); - } - - public override bool IndexFilesExist() - { - if (ProcNDX == "") BuildNDXFileNames(); - if(File.Exists(DBPath+"\\"+ProcNDX+".NDX")) return true; - return false; - } - - public override void DeleteIndexFiles() - { - if(File.Exists(DBPath+"\\"+ProcNDX+".NDX")) File.Delete(DBPath+"\\"+ProcNDX+".NDX"); - } - - // Build a list of SQL commands needed to create a new Procedure table (file) - // and add the first row - public override StringCollection CreateTableStatements(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder createStr = new StringBuilder(); - - if (strTblName.Length > 0) // was a table name passd in? - { - DBTable = strTblName; // this will create the INI file for dBase - } - - if (DBTable.Equals("")) - { - MessageBox.Show("Trying to Create a new Table without a Name","Create Table Error"); - return rtnStrColl; - } - - // Build the command that creates a new SET table (file) - createStr.Append("CREATE TABLE ["); - createStr.Append(DBTable); - createStr.Append("] "); - createStr.Append("([STEP] Char(2), [SEQUENCE] Char(10), [TEXT] Char(100), "); - createStr.Append("[TEXTM] TEXT, [TYPE] Char(2), [DATE] Date, [TIME] Char(5), "); - createStr.Append("INITIALS Char(5), [RECID] Char(8))"); - - rtnStrColl.Add(createStr.ToString()); // add create table - - // If we are using dBase files, create the index files too - - if (isdBaseFile()) - { - // Build the command that creates the index file - - rtnStrColl.Add(GetCreateIndx1String()); // add create index - } - return rtnStrColl; - } - - // Build a list of SQL commands needed to create the first row (a.k.a record zero) - public override StringCollection CreateFirstRecordStatement(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder firstRecStr = new StringBuilder(); - - // Build the command that adds the first (blank) record - // with the RECID initialize to 00000001 - firstRecStr.Append("INSERT INTO ["); - firstRecStr.Append(DBTable); - firstRecStr.Append("] ([RECID]) VALUES ('00000001')"); - - rtnStrColl.Add(firstRecStr.ToString()); // add insert first record - return rtnStrColl; - } - - // make statement to select into a new table. Table must not exist and - // can include a path to the table. - public override StringCollection SelectIntoStatements(string destdb) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder str = new StringBuilder(); - str.Append("SELECT * INTO ["); - str.Append(destdb.Substring(destdb.LastIndexOf('\\')+1,destdb.Length-destdb.LastIndexOf('\\')-1)); - str.Append("] IN '"); - str.Append(destdb.Substring(0,destdb.LastIndexOf('\\'))); - str.Append("' 'dBase III;' from ["); - str.Append(DBTable); - str.Append("]"); - rtnStrColl.Add(str.ToString()); - return rtnStrColl; - } - - // After the table is created, create the associated INF file - public override int PostCreateTableFunction() - { - CreateINF(); // should already be created - return 0; - } - - // This will be called from CreateTableStatements() - // and this is called if the table name is assigned to the DBTable property - public override int CreateINF() - { - // if we are using dBase files, create an INF file containing - // a list of the associated NDX files. - if (isdBaseFile()) - { - StreamWriter infFile; - string infFileStr; - StringBuilder tmp = new StringBuilder(); - - // build the ndx file names (w/o extensions) - BuildNDXFileNames(); - - //build INF file name - tmp.Append(DBPath); - tmp.Append("\\"); - tmp.Append(DBTable); - tmp.Append(".INF"); - - infFileStr = tmp.ToString(); - - // always recreate it. Some plants' data had invalid files - // and it was felt that it would be quicker to recreate always - // rather than read and check. - infFile = new StreamWriter(infFileStr,false); - infFile.Write("NDX1="); - infFile.Write(ProcNDX); - infFile.Write(".NDX\r\n"); - infFile.Close(); - - // a temp index file name was always used to create the index - // because unusual file names, such as those beginning with - // a number or those with a '-' caused an error to occur - // during ndx file creation. This fixes, B2005-040 & B2005-043. - if (TmpNDXFileName.Length > 0) - { - File.Copy(TmpNDXFileName+".NDX",ProcNDX+".NDX"); - File.Delete(TmpNDXFileName+".NDX"); - TmpNDXFileName = ""; - } - } - return 0; - } - - public override StringCollection CreateIndexFilesStatements() - { - if (isdBaseFile()) - { - StringCollection rtnStrColl = new StringCollection(); - string indx1 = GetCreateIndx1String(); - rtnStrColl.Add(indx1); - return rtnStrColl; - } - return null; - } - - // return a list of SQL commands that will drop (delete) a database table (file) - public override StringCollection DeleteTableStatements(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder DropTableStr = new StringBuilder(); - - DropTableStr.Append("Drop Table ["); - DropTableStr.Append(DBTable); - DropTableStr.Append("]"); - - rtnStrColl.Add(DropTableStr.ToString()); - return rtnStrColl; - } - - // return a dataset of procedure records, not sorted - public System.Data.DataSet GetNotSorted(string WhereStr) - { - BuildSelectCommand((int)SortTypes.NotSorted,WhereStr); - return DB_Data; - } - - // return a dataset of procedure records, sorted by the [STEP] field - public System.Data.DataSet GetSortedByStepSeqType(string WhereStr) - { - BuildSelectCommand((int)SortTypes.StepSeqTypeSort,WhereStr); - return DB_Data; - } - - // return a dataset of procedure records, sorted by the [RECID] field - public System.Data.DataSet GetSortedByRECID(string WhereStr) - { - BuildSelectCommand((int)SortTypes.RECIDsort,WhereStr); - return DB_Data; - } - -#if Upgrade2005_Print - // return integer count of selected records only - public int GetCount(string WhereStr) - { - BuildCountCommand(WhereStr); - DataSet ds = DB_Data; - return ds.Tables[0].Rows.Count; - } -#endif - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_ROUsage.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_ROUsage.cs deleted file mode 100644 index 6637ea6d..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_ROUsage.cs +++ /dev/null @@ -1,478 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: vdb_ROUsage.cs $ $Revision: 6 $ - * $Author: Kathy $ $Date: 5/01/06 11:17a $ - * - * $History: vdb_ROUsage.cs $ - * - * ***************** Version 6 ***************** - * User: Kathy Date: 5/01/06 Time: 11:17a - * Updated in $/LibSource/VDB - * Fix B2006-018: single quote in proc number causes problem on data - * request - * - * ***************** Version 5 ***************** - * User: Kathy Date: 8/16/05 Time: 2:54p - * Updated in $/LibSource/VDB - * B2005-030: error if missing ndx - * - * ***************** Version 4 ***************** - * User: Kathy Date: 4/21/05 Time: 10:19a - * Updated in $/LibSource/VDB - * always write inf file & remove upgrade2005 define - * - * ***************** Version 3 ***************** - * User: Kathy Date: 3/08/05 Time: 1:48p - * Updated in $/LibSource/VDB - * Approval - * - * ***************** Version 2 ***************** - * User: Jsj Date: 8/23/04 Time: 10:12a - * Updated in $/LibSource/VDB - * Fixed replace of single quote - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:40a - * Created in $/LibSource/VDB - *********************************************************************************************/ - -using System; -using System.Data; -using System.Text; -using System.Collections.Specialized; -using System.IO; -using System.Windows.Forms; -using VDB; -using VDB_ConnType; - -namespace VDB_ROUsage -{ - /// - /// Open, Create, Delete, Update functions for RO Usage files (tables) - /// - public class vdb_ROUsage:VDB_Base - { - public enum SortTypes {NotSorted,ProcSort,ROIDsort}; // list of sorting types - - public string UsageROndx = ""; - public string UsagROIDndx = ""; - - public vdb_ROUsage(String strPath):base(strPath) - { - // if no table (file name) specified, then default to USAGERO (USAGERO.DBF) - if (DBTable.Equals("")) - DBTable = "USAGERO"; - } - - // Build a SQL statement. Optionally sort and filter the select statement. - private void BuildSelectCommand(int SortingType,string WhereStr) - { - StringBuilder tmp = new StringBuilder(); - tmp.Append("SELECT [NUMBER], [SEQUENCE], [INSTANCE], [ROID] FROM ["); - tmp.Append(DBTable); - tmp.Append("]"); - - if (WhereStr.Length > 0) // Was a WHERE clause passed in? - { - // Add " WHERE " to the beginning if it is not already there - string tmpstr = WhereStr; //.ToUpper(); - - if (tmpstr[0] != ' ') - { - tmp.Append(" "); - if (!tmpstr.StartsWith("WHERE ")) - tmp.Append("WHERE "); - } - else if (!tmpstr.StartsWith(" WHERE ")) - tmp.Append(" WHERE"); - // add the passed in WHERE clause - tmp.Append(tmpstr); - } - - switch (SortingType) - { - case 0: //NotSorted - break; - case 1: // ProcSort - sorted by procedure number - tmp.Append(" GROUP BY [NUMBER],[SEQUENCE],[INSTANCE],[ROID]"); - break; - case 2: // ROIDsort - sorted by ROID - tmp.Append(" GROUP BY [ROID],[NUMBER],[SEQUENCE],[INSTANCE]"); - break; - } - - SelectCmd = tmp.ToString(); - } - - - private void BuildNDXFileNames() - { - UsageROndx = DBTable; - UsagROIDndx = DBTable.Substring(0,4)+"ROID"; - } - - - // Build the SQL command needed to update a row in the USAGERO file - public override string GetRecUpdateStr(DataTable tbl,DataRow row) - { - int j = 0; - bool FirstOne = true; - StringBuilder updateStr = new StringBuilder(); - string strNumber = ""; - string strSequence = ""; - string strInstance = ""; - - updateStr.Append("UPDATE ["); - updateStr.Append(DBTable); - updateStr.Append("] SET"); - - foreach (DataColumn col in tbl.Columns) - { - bool isString = (col.DataType == Type.GetType("System.String")); - - if (col.ColumnName.Equals("NUMBER")) - { - strNumber = row.ItemArray[j].ToString(); - strNumber = strNumber.Replace("'","''"); - } - else if (col.ColumnName.Equals("SEQUENCE")) - { - strSequence = row.ItemArray[j].ToString(); - strSequence = strSequence.Replace("'","''"); - } - else if (col.ColumnName.Equals("INSTANCE")) - { - strInstance = row.ItemArray[j].ToString(); - strInstance = strInstance.Replace("'","''"); - } - - if (FirstOne) - { - updateStr.Append(" ["); - FirstOne = false; - } - else - updateStr.Append(", ["); - - updateStr.Append(col.ColumnName); - updateStr.Append("]="); - - if (row.ItemArray[j].ToString().Equals("")) - { - updateStr.Append("NULL"); - } - else if (isString) - { - String tmpstr = row.ItemArray[j].ToString(); - updateStr.Append("'"); - tmpstr = tmpstr.Replace("'","''"); - updateStr.Append(tmpstr); - updateStr.Append("'"); - } - j++; - } - // Add the WHERE clause - updateStr.Append(" WHERE [NUMBER] = '"); - updateStr.Append(strNumber.ToString()); - updateStr.Append("' AND [SEQUENCE] = '"); - updateStr.Append(strSequence.ToString()); - updateStr.Append("' AND [INSTANCE] = '"); - updateStr.Append(strInstance.ToString()); - updateStr.Append("'"); - return updateStr.ToString(); - } - - - // Build the SQL command needed to insert a row in the USAGERO file - public override string GetRecInsertStr(DataTable tbl,DataRow row) - { - int j = 0; - StringBuilder insrtStr = new StringBuilder(); - StringBuilder valueStr = new StringBuilder(); - - insrtStr.Append("INSERT INTO ["); - insrtStr.Append(DBTable); - insrtStr.Append("] ("); - - valueStr.Append(" VALUES ("); - - foreach (DataColumn col in tbl.Columns) - { - bool isString = (col.DataType == Type.GetType("System.String")); - insrtStr.Append("["); - insrtStr.Append(col.ColumnName); - insrtStr.Append("],"); - - if (row.ItemArray[j].ToString().Equals("")) - { - valueStr.Append("NULL"); - } - else if (isString) - { - String tmpstr = row.ItemArray[j].ToString(); - tmpstr = tmpstr.Replace("'","''"); - valueStr.Append("'"); - valueStr.Append(tmpstr); - valueStr.Append("'"); - } - else - { - valueStr.Append(row.ItemArray[j].ToString()); - } - valueStr.Append(","); - j++; - } - - insrtStr = insrtStr.Replace(',',')',insrtStr.Length-1,1); - valueStr = valueStr.Replace(',',')',valueStr.Length-1,1); - insrtStr.Append(valueStr.ToString()); - - return insrtStr.ToString(); - } - - // Build the SQL command needed to delete a row in the USAGERO file - public override string RecDeleteStr(DataTable tbl,DataRow row) - { - int j = 0; - string strNumber = ""; - string strSequence = ""; - string strInstance = ""; - StringBuilder deleteStr = new StringBuilder(); - - deleteStr.Append("DELETE FROM ["); - deleteStr.Append(DBTable); - deleteStr.Append("]"); - - row.RejectChanges(); - foreach (DataColumn col in tbl.Columns) - { - if (col.ColumnName.Equals("NUMBER")) - { - strNumber = row.ItemArray[j].ToString(); - strNumber = strNumber.Replace("'","''"); - } - else if (col.ColumnName.Equals("SEQUENCE")) - { - strSequence = row.ItemArray[j].ToString(); - strSequence = strSequence.Replace("'","''"); - } - else if (col.ColumnName.Equals("INSTANCE")) - { - strInstance = row.ItemArray[j].ToString(); - strInstance = strInstance.Replace("'","''"); - } - j++; - } - // Add the WHERE clause - deleteStr.Append(" WHERE [NUMBER] = '"); - deleteStr.Append(strNumber.ToString()); - deleteStr.Append("' AND [SEQUENCE] = '"); - deleteStr.Append(strSequence.ToString()); - deleteStr.Append("' AND [INSTANCE] = '"); - deleteStr.Append(strInstance.ToString()); - deleteStr.Append("'"); - - return deleteStr.ToString(); - - } - - public override string GetCreateIndx1String() - { - StringBuilder index1Str = new StringBuilder(); - index1Str.Append("CREATE INDEX ["); - index1Str.Append(UsageROndx); - index1Str.Append("] ON "); - index1Str.Append(DBTable); - index1Str.Append(".DBF ([NUMBER],[SEQUENCE],[INSTANCE])"); - return (index1Str.ToString()); - } - - public override string GetCreateIndx2String() - { - StringBuilder index2Str = new StringBuilder(); - index2Str.Append("CREATE INDEX ["); - index2Str.Append(UsagROIDndx); - index2Str.Append("] ON "); - index2Str.Append(DBTable); - index2Str.Append(".DBF ([ROID])"); - return (index2Str.ToString()); - } - - public override bool IndexFilesExist() - { - if (UsageROndx==""||UsagROIDndx=="") BuildNDXFileNames(); - if(!File.Exists(DBPath+"\\"+UsageROndx+".NDX") || !File.Exists(DBPath+"\\"+UsagROIDndx+".NDX")) return false; - return true; - } - - public override void DeleteIndexFiles() - { - if(File.Exists(DBPath+"\\"+UsageROndx+".NDX")) File.Delete(DBPath+"\\"+UsageROndx+".NDX"); - if(File.Exists(DBPath+"\\"+UsagROIDndx+".NDX")) File.Delete(DBPath+"\\"+UsagROIDndx+".NDX"); - if(File.Exists(DBPath+"\\"+DBTable+".INF")) File.Delete(DBPath+"\\"+DBTable+".INF"); - } - - public override StringCollection CreateIndexFilesStatements() - { - if (isdBaseFile()) - { - StringCollection rtnStrColl = new StringCollection(); - string indx1 = GetCreateIndx1String(); - rtnStrColl.Add(indx1); - string indx2 = GetCreateIndx2String(); - rtnStrColl.Add(indx2); - return rtnStrColl; - } - return null; - } - - // Build a list of SQL commands needed to create a new USAGERO table (file) - // and add the first row - public override StringCollection CreateTableStatements(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder createStr = new StringBuilder(); - //StringBuilder index1Str = new StringBuilder(); - //StringBuilder index2Str = new StringBuilder(); - - if (strTblName.Length > 0) // was a table name passd in? - { - DBTable = strTblName; - } - - if (DBTable.Equals("")) - { - MessageBox.Show("Trying to Create a new Table without a Name","Create Table Error"); - return rtnStrColl; - } - - // Build the command that creates a new SET table (file) - createStr.Append("CREATE TABLE ["); - createStr.Append(DBTable); - createStr.Append("] "); - createStr.Append("([NUMBER] Char(20), [SEQUENCE] Char(12), "); - createStr.Append("[INSTANCE] Char(1), [ROID] Char(16))"); - - rtnStrColl.Add(createStr.ToString()); // add create table - - if (isdBaseFile()) - { - // build the ndx file names (w/o extensions) -// BuildNDXFileNames(); - - // Build the command that creates the first index file - - - rtnStrColl.Add(GetCreateIndx1String()); // add create 1st index - - // Build the commmand that creates the second index file - string tmp = DBTable; - - - rtnStrColl.Add(GetCreateIndx2String()); // add create 2nd index - } - - return rtnStrColl; - } - - // After the table is created, create the associated INF file - public override int PostCreateTableFunction() - { - CreateINF(); // should already be created - return 0; - } - - // This is called in the class constructor and - // if the table name is assigned to the DBTable property - public override int CreateINF() - { - // if we are using dBase files, create an INF file containing - // a list of the associated NDX files. - if (isdBaseFile()) - { - StreamWriter infFile; - string infFileStr; - StringBuilder tmp = new StringBuilder(); - - // build the ndx file names (w/o extensions) - BuildNDXFileNames(); - - //build INF file name - tmp.Append(DBPath); - tmp.Append("\\"); - tmp.Append(DBTable); - tmp.Append(".INF"); - - infFileStr = tmp.ToString(); - - // if the INF file does not already exist create it - //if (!File.Exists(infFileStr)) - //{ - // always recreate it. Some plants' data had invalid files - // and it was felt that it would be quicker to recreate always - // rather than - infFile = new StreamWriter(infFileStr,false); - infFile.Write("NDX1="); - infFile.Write(UsageROndx); // USAGERO.NDX - infFile.Write(".NDX\r\n"); - infFile.Write("NDX2="); - infFile.Write(UsagROIDndx); //USAGROID.NDX - infFile.Write(".NDX\r\n"); - infFile.Close(); - //} - } - return 0; - } - - // return a list of SQL commands that will drop (delete) a database table (file) - public override StringCollection DeleteTableStatements(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder DropTableStr = new StringBuilder(); - - DropTableStr.Append("Drop Table ["); - DropTableStr.Append(DBTable); - DropTableStr.Append("]"); - - rtnStrColl.Add(DropTableStr.ToString()); - return rtnStrColl; - } - - // return a dataset of RO Usage records, not sorted - public System.Data.DataSet GetNotSorted(string WhereStr) - { - BuildSelectCommand((int)SortTypes.NotSorted,WhereStr); - return DB_Data; - } - - // return a dataset of RO Usage records, sorted by the [NUMBER] field - public System.Data.DataSet GetSortedByProc(string WhereStr) - { - BuildSelectCommand((int)SortTypes.ProcSort,WhereStr); - return DB_Data; - } - - // return a dataset of RO Usage records, sorted by the [ROID] field - public System.Data.DataSet GetSortedByROID(string WhereStr) - { - BuildSelectCommand((int)SortTypes.ROIDsort,WhereStr); - return DB_Data; - } - - public void UpdateProcNumber(string oldnum, string newnum) - { - // Change fromnumber first, then tonumber - StringBuilder updateStr = new StringBuilder(); - updateStr.Append("UPDATE ["); - updateStr.Append(DBTable); - updateStr.Append("] SET [NUMBER] = '"); - updateStr.Append(newnum.Replace("'","''")); - updateStr.Append("' WHERE [NUMBER] = '"); - updateStr.Append(oldnum.Replace("'","''")); - updateStr.Append("'"); - ProcessACommand(updateStr.ToString()); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_Set.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_Set.cs deleted file mode 100644 index 05ade40e..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_Set.cs +++ /dev/null @@ -1,283 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: vdb_Set.cs $ $Revision: 2 $ - * $Author: Jsj $ $Date: 8/23/04 10:12a $ - * - * $History: vdb_Set.cs $ - * - * ***************** Version 2 ***************** - * User: Jsj Date: 8/23/04 Time: 10:12a - * Updated in $/LibSource/VDB - * Fixed replace of single quote - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:40a - * Created in $/LibSource/VDB - *********************************************************************************************/ - -using System; -using System.Data; -using System.Text; -using System.Collections.Specialized; -using System.Windows.Forms; -using VDB; - -namespace VDB_Set -{ - /// - /// Open, Create, Delete, Update functions for SET files (tables) - /// - public class vdb_Set:VDB_Base - { - public vdb_Set(String strPath):base(strPath) - { - // if no table (file name) specified, then default to SET (SET.DBF) - if (DBTable.Equals("")) - DBTable = "SET"; - } - - // Build the SQL command needed to update a row in the SET file - public override string GetRecUpdateStr(DataTable tbl,DataRow row) - { - int j = 0; - bool FirstOne = true; - StringBuilder updateStr = new StringBuilder(); - StringBuilder LikeRecID = new StringBuilder(); - bool NullEntry = false; - - updateStr.Append("UPDATE ["); - updateStr.Append(DBTable); - updateStr.Append("] SET"); - - foreach (DataColumn col in tbl.Columns) - { - bool isString = (col.DataType == Type.GetType("System.String")); - if (col.ColumnName.Equals("ENTRY") && row.ItemArray[j].ToString().Equals("")) - { - NullEntry = true; - j++; - continue; - } - if (col.ColumnName.Equals("RECID")) - { - LikeRecID.Append("___"); // ignore the first 3 positions - LikeRecID.Append(row.ItemArray[j].ToString(),3,5); - } - if (FirstOne) - { - updateStr.Append(" ["); - FirstOne = false; - } - else - updateStr.Append(", ["); - updateStr.Append(col.ColumnName); - updateStr.Append("]="); - - if (row.ItemArray[j].ToString().Equals("")) - { - updateStr.Append("NULL"); - } - else if (isString) - { - String tmpstr = row.ItemArray[j].ToString(); - updateStr.Append("'"); - tmpstr = tmpstr.Replace("'","''"); - updateStr.Append(tmpstr); - updateStr.Append("'"); - } - else if (col.DataType == Type.GetType("System.DateTime")) - { - int jj; - String tmpstr = row.ItemArray[j].ToString(); - updateStr.Append("'"); - jj=tmpstr.IndexOf(" "); - if (jj<0) jj = tmpstr.Length; - updateStr.Append(tmpstr.Substring(0,jj)); - updateStr.Append("'"); - } - j++; - } - if (NullEntry) - { - // So that we can change the RECID number on the first entry - updateStr.Append(" WHERE [ENTRY] IS NULL"); - } - else - { - updateStr.Append(" WHERE [RECID] LIKE '"); - updateStr.Append(LikeRecID.ToString()); - updateStr.Append("' AND [ENTRY] IS NOT NULL"); - } - return updateStr.ToString(); - } - - - // Build the SQL command needed to insert a row in the SET file - public override string GetRecInsertStr(DataTable tbl,DataRow row) - { - int j = 0; - StringBuilder insrtStr = new StringBuilder(); - StringBuilder valueStr = new StringBuilder(); - - insrtStr.Append("INSERT INTO ["); - insrtStr.Append(DBTable); - insrtStr.Append("] ("); - - valueStr.Append(" VALUES ("); - - foreach (DataColumn col in tbl.Columns) - { - bool isString = (col.DataType == Type.GetType("System.String")); - insrtStr.Append("["); - insrtStr.Append(col.ColumnName); - insrtStr.Append("],"); - - if (row.ItemArray[j].ToString().Equals("")) - { - valueStr.Append("NULL"); - } - else if (isString) - { - String tmpstr = row.ItemArray[j].ToString(); - tmpstr = tmpstr.Replace("'","''"); - valueStr.Append("'"); - valueStr.Append(tmpstr); - valueStr.Append("'"); - } - else if (col.DataType == Type.GetType("System.DateTime")) - { - int jj; - String tmpstr = row.ItemArray[j].ToString(); - valueStr.Append("'"); - jj = tmpstr.IndexOf(" "); - if (jj<0) jj=tmpstr.Length; - valueStr.Append(tmpstr.Substring(0,jj)); - valueStr.Append("'"); - } - else - { - valueStr.Append(row.ItemArray[j].ToString()); - } - valueStr.Append(","); - j++; - } - - insrtStr = insrtStr.Replace(',',')',insrtStr.Length-1,1); - valueStr = valueStr.Replace(',',')',valueStr.Length-1,1); - insrtStr.Append(valueStr.ToString()); - - return insrtStr.ToString(); - } - - // Build the SQL command needed to delete a row in the SET file - public override string RecDeleteStr(DataTable tbl,DataRow row) - { - int j = 0; - String RecIDStr = ""; - String NumberStr = ""; - StringBuilder deleteStr = new StringBuilder(); - - deleteStr.Append("DELETE FROM ["); - deleteStr.Append(DBTable); - deleteStr.Append("] WHERE "); - - row.RejectChanges(); - foreach (DataColumn col in tbl.Columns) - { - if (col.ColumnName.Equals("NUMBER")) - { - NumberStr = row.ItemArray[j].ToString(); - NumberStr = NumberStr.Replace("'","''"); - } - else if (col.ColumnName.Equals("RECID")) - { - RecIDStr = row.ItemArray[j].ToString(); - } - j++; - } - deleteStr.Append("[NUMBER] = '"); - deleteStr.Append(NumberStr); - deleteStr.Append("' AND [RECID] = '"); - deleteStr.Append(RecIDStr); - deleteStr.Append("' AND [ENTRY] IS NOT NULL"); - - return deleteStr.ToString(); - - } - - // Build a list of SQL commands needed to create a new SET table (file) - // and add the first row - public override StringCollection CreateTableStatements(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder createStr = new StringBuilder(); -// StringBuilder firstRecStr = new StringBuilder(); - - if (strTblName.Length > 0) // was a table name passd in? - { - DBTable = strTblName; - } - - if (DBTable.Equals("")) - { - MessageBox.Show("Trying to Create a new Table without a Name","Create Table Error"); - return rtnStrColl; - } - - // Build the command that creates a new SET table (file) - createStr.Append("CREATE TABLE ["); - createStr.Append(DBTable); - createStr.Append("] "); - createStr.Append("([TITLE] Char(250), [NUMBER] Char(20), [FORMAT] Char(1), "); - createStr.Append("[SUBDIR] Char(1), [ENTRY] Char(30), [RECID] Char(8), "); - createStr.Append("[PROCCODE] Char(1), [DATE] Date, [TIME] Char(5), "); - createStr.Append("INITIALS Char(5), SERIES Char(100))"); - -// // Build the command that adds the first (blank) record -// // with the RECID initialize to 00000001 -// firstRecStr.Append("INSERT INTO ["); -// firstRecStr.Append(DBTable); -// firstRecStr.Append("] ([RECID]) VALUES ('00000001')"); - - rtnStrColl.Add(createStr.ToString()); // add create table -// rtnStrColl.Add(firstRecStr.ToString()); // add inserst first record - - return rtnStrColl; - } - - // Build a list of SQL commands needed to create the first data row - public override StringCollection CreateFirstRecordStatement(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder firstRecStr = new StringBuilder(); - - // Build the command that adds the first (blank) record - // with the RECID initialize to 00000001 - firstRecStr.Append("INSERT INTO ["); - firstRecStr.Append(DBTable); - firstRecStr.Append("] ([RECID]) VALUES ('00000001')"); - - rtnStrColl.Add(firstRecStr.ToString()); // add inserst first record - - return rtnStrColl; - } - - // return a list of SQL commands that will drop (delete) a database table (file) - public override StringCollection DeleteTableStatements(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder DropTableStr = new StringBuilder(); - - DropTableStr.Append("Drop Table ["); - DropTableStr.Append(DBTable); - DropTableStr.Append("]"); - - rtnStrColl.Add(DropTableStr.ToString()); - return rtnStrColl; - } - - } - -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_SetExt.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_SetExt.cs deleted file mode 100644 index cb7d335a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_SetExt.cs +++ /dev/null @@ -1,255 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: vdb_SetExt.cs $ $Revision: 2 $ - * $Author: Jsj $ $Date: 8/23/04 10:12a $ - * - * $History: vdb_SetExt.cs $ - * - * ***************** Version 2 ***************** - * User: Jsj Date: 8/23/04 Time: 10:12a - * Updated in $/LibSource/VDB - * Fixed replace of single quote - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:40a - * Created in $/LibSource/VDB - *********************************************************************************************/ - -using System; -using System.Data; -using System.Text; -using System.Collections.Specialized; -using System.Windows.Forms; -using VDB; - -namespace VDB_SetExt -{ - /// - /// Open, Create, Delete, Update functions for SETEXT files (tables) - /// (set extension) - /// - public class vdb_SetExt:VDB_Base - { - public vdb_SetExt(String strPath):base(strPath) - { - // if no table (file name) specified, then default to SETEXT (SET.DBF) - if (DBTable.Equals("")) - DBTable = "SETEXT"; - } - - // Build a SQL statement for selecting the data. The select for the set extension - // datta is much more involved because the date field for the approved date needs - // calculated/formatted. - public override string DefaultSelectCommand() - { - StringBuilder tmp = new StringBuilder(); - tmp.Append("select t3.COMMENT, t3.REV, t3.PC, t3.RECID,format(ApprovedDate,'m/d/yyyy hh:nn:ss') "); - tmp.Append(" as ApprovedDate from(select COMMENT, REV, PC, RECID,iif(MyDate=DateValue('1/1/1970'),null,MyDate) "); - tmp.Append(" as ApprovedDate from (select COMMENT, REV, PC, RECID, dateadd(\"S\",(((asc(mid(tdstamp,4,1))*256)+asc(mid(tdstamp,3,1)) )"); - tmp.Append("*256+asc(mid(tdstamp,2,1)) )*256+asc(mid(tdstamp,1,1)),datevalue('1/1/1970')) as MyDate "); - tmp.Append(" from (select COMMENT, REV, PC, RECID,iif(isnull(tdstamp),chr(0)+chr(0)+chr(0)+chr(0),left(tdstamp+chr(0)+chr(0)+chr(0)+chr(0),4)) as tdstamp from setext)t1)t2)t3 "); - SelectCmd = tmp.ToString(); - return SelectCmd; - } - - // Build the SQL command needed to update a row in the SETEXT file - public override string GetRecUpdateStr(DataTable tbl,DataRow row) - { - int j = 0; - StringBuilder updateStr = new StringBuilder(); - StringBuilder LikeRecID = new StringBuilder(); - - updateStr.Append("UPDATE ["); - updateStr.Append(DBTable); - updateStr.Append("] SET"); - - foreach (DataColumn col in tbl.Columns) - { - bool isString = (col.DataType == Type.GetType("System.String")); - if (col.ColumnName.ToUpper().Equals("RECID")) - { - LikeRecID.Append("___"); // ignore the first 3 positions - LikeRecID.Append(row.ItemArray[j].ToString(),3,5); - } - //only comment is updated (at least for initial 32bit veproms - // browser. This may need modified if it is used later - if (col.ColumnName.ToUpper().Equals("COMMENT")) - { - updateStr.Append(" ["); - updateStr.Append(col.ColumnName); - updateStr.Append("]="); - - if (row.ItemArray[j].ToString().Equals("")) - { - updateStr.Append("NULL"); - } - else if (isString) - { - String tmpstr = row.ItemArray[j].ToString(); - updateStr.Append("'"); - tmpstr = tmpstr.Replace("'","''"); - updateStr.Append(tmpstr); - updateStr.Append("'"); - } - else - { - updateStr.Append(row.ItemArray[j].ToString()); - } - } - j++; - } - updateStr.Append(" WHERE [RECID] LIKE '"); - updateStr.Append(LikeRecID.ToString()); - updateStr.Append("'"); - return updateStr.ToString(); - } - - - // Build the SQL command needed to insert a row in the SET file - public override string GetRecInsertStr(DataTable tbl,DataRow row) - { - int j = 0; - StringBuilder insrtStr = new StringBuilder(); - StringBuilder valueStr = new StringBuilder(); - - insrtStr.Append("INSERT INTO ["); - insrtStr.Append(DBTable); - insrtStr.Append("] ("); - - valueStr.Append(" VALUES ("); - - foreach (DataColumn col in tbl.Columns) - { - // the select statement was modified to handle the tdstamp field (which - // is a calculated date). This needs to be handled on insert, i.e. the - // fieldname. - bool isString = (col.DataType == Type.GetType("System.String")); - bool isApprovedDate = col.ColumnName.ToUpper().Equals("APPROVEDDATE"); - insrtStr.Append("["); - if(!isApprovedDate) - insrtStr.Append(col.ColumnName); - else - insrtStr.Append("TDSTAMP"); - insrtStr.Append("],"); - - if (row.ItemArray[j].ToString().Equals("")) - { - valueStr.Append("NULL"); - } - else if (isString) - { - String tmpstr = row.ItemArray[j].ToString(); - tmpstr = tmpstr.Replace("'","''"); - valueStr.Append("'"); - valueStr.Append(tmpstr); - valueStr.Append("'"); - } - else - { - valueStr.Append(row.ItemArray[j].ToString()); - } - valueStr.Append(","); - j++; - } - - insrtStr = insrtStr.Replace(',',')',insrtStr.Length-1,1); - valueStr = valueStr.Replace(',',')',valueStr.Length-1,1); - insrtStr.Append(valueStr.ToString()); - - return insrtStr.ToString(); - } - - // Build the SQL command needed to delete a row in the SET file - public override string RecDeleteStr(DataTable tbl,DataRow row) - { - int j = 0; - String RecIDStr = ""; - StringBuilder deleteStr = new StringBuilder(); - - deleteStr.Append("DELETE FROM ["); - deleteStr.Append(DBTable); - deleteStr.Append("] WHERE "); - - row.RejectChanges(); - foreach (DataColumn col in tbl.Columns) - { - if (col.ColumnName.Equals("RECID")) - { - RecIDStr = row.ItemArray[j].ToString(); - } - j++; - } - deleteStr.Append("[RECID] = '"); - deleteStr.Append(RecIDStr); - deleteStr.Append("'"); - - return deleteStr.ToString(); - - } - - // Build a list of SQL commands needed to create a new SET table (file) - // and add the first row - public override StringCollection CreateTableStatements(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder createStr = new StringBuilder(); - - if (strTblName.Length > 0) // was a table name passd in? - { - DBTable = strTblName; - } - - if (DBTable.Equals("")) - { - MessageBox.Show("Trying to Create a new Table without a Name","Create Table Error"); - return rtnStrColl; - } - - // Build the command that creates a new SET table (file) - createStr.Append("CREATE TABLE ["); - createStr.Append(DBTable); - createStr.Append("] "); - createStr.Append("([COMMENT] Char(250), [REV] Char(30), [PC] Char(10), "); - createStr.Append("[RECID] Char(8), [TDSTAMP] Int)"); - - rtnStrColl.Add(createStr.ToString()); // add create table - - return rtnStrColl; - } - - // Build a list of SQL commands needed to create the first data row - public override StringCollection CreateFirstRecordStatement(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder firstRecStr = new StringBuilder(); - - // Build the command that adds the first (blank) record - // with the RECID initialize to 00000001 - firstRecStr.Append("INSERT INTO ["); - firstRecStr.Append(DBTable); - firstRecStr.Append("] ([RECID]) VALUES ('00000001')"); - - rtnStrColl.Add(firstRecStr.ToString()); // add inserst first record - - return rtnStrColl; - } - - // return a list of SQL commands that will drop (delete) a database table (file) - public override StringCollection DeleteTableStatements(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder DropTableStr = new StringBuilder(); - - DropTableStr.Append("Drop Table ["); - DropTableStr.Append(DBTable); - DropTableStr.Append("]"); - - rtnStrColl.Add(DropTableStr.ToString()); - return rtnStrColl; - } - - } - -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_TransUsage.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_TransUsage.cs deleted file mode 100644 index b55e760e..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VDB/vdb_TransUsage.cs +++ /dev/null @@ -1,495 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: vdb_TransUsage.cs $ $Revision: 7 $ - * $Author: Kathy $ $Date: 5/01/06 11:17a $ - * - * $History: vdb_TransUsage.cs $ - * - * ***************** Version 7 ***************** - * User: Kathy Date: 5/01/06 Time: 11:17a - * Updated in $/LibSource/VDB - * Fix B2006-018: single quote in proc number causes problem on data - * request - * - * ***************** Version 6 ***************** - * User: Kathy Date: 8/16/05 Time: 2:54p - * Updated in $/LibSource/VDB - * B2005-030: error if missing ndx - * - * ***************** Version 5 ***************** - * User: Kathy Date: 4/21/05 Time: 10:20a - * Updated in $/LibSource/VDB - * always write inf file - * - * ***************** Version 4 ***************** - * User: Kathy Date: 3/08/05 Time: 1:48p - * Updated in $/LibSource/VDB - * Approval - * - * ***************** Version 3 ***************** - * User: Jsj Date: 8/30/04 Time: 12:16p - * Updated in $/LibSource/VDB - * upper cased WHERE string did not find mixed cased database items, now - * use the WHERE string as it is passed in. - * - * ***************** Version 2 ***************** - * User: Jsj Date: 8/23/04 Time: 10:13a - * Updated in $/LibSource/VDB - * Fixed replace of single quote - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:40a - * Created in $/LibSource/VDB - *********************************************************************************************/ - -using System; -using System.Data; -using System.Text; -using System.Collections.Specialized; -using System.IO; -using System.Windows.Forms; -using VDB; -using VDB_ConnType; - -namespace VDB_TransUsage -{ - /// - /// Open, Create, Delete, Update functions for Transition Usage files (tables) - /// - public class vdb_TransUsage:VDB_Base - { - public enum SortTypes {NotSorted,FromSort,ToSort}; // list of sorting types - - public string TransFromNDX = ""; - public string TransToNDX = ""; - - public vdb_TransUsage(String strPath):base(strPath) - { - // if no table (file name) specified, then default to TRAN (TRAN.DBF) - if (DBTable.Equals("")) - DBTable = "TRAN"; - } - - // Build a SQL statement. Optionally sort and filter the select statement. - private void BuildSelectCommand(int SortingType,string WhereStr) - { - StringBuilder tmp = new StringBuilder(); - tmp.Append("SELECT [FROMNUMBER],[FROMSEQUEN],[FROMINSTAN],[TYPE],"); - tmp.Append("[TONUMBER],[TOSEQUENCE],[TOINSTANCE],[DTI],[OLDTO] FROM ["); - tmp.Append(DBTable); - tmp.Append("]"); - - if (WhereStr.Length > 0) // Was a WHERE clause passed in? - { - // Add " WHERE " to the beginning if it is not already there - string tmpstr = WhereStr.ToUpper(); - if (tmpstr[0] != ' ') - { - tmp.Append(" "); - if (!tmpstr.StartsWith("WHERE ")) - tmp.Append("WHERE "); - } - else if (!tmpstr.StartsWith(" WHERE ")) - tmp.Append(" WHERE"); - // add the passed in WHERE clause -// When the WhereStr was upper cased, procedure numbers with mixed and/or lower -// cased letters would not be found. Therefore, use the WhereStr exactly as it -// was sent in. -// tmp.Append(tmpstr); - tmp.Append(WhereStr); - } - - switch (SortingType) - { - case 0: //NotSorted - break; - case 1: // FromSort - sorted by FROMNUMBER - tmp.Append(" GROUP BY [FROMNUMBER],[FROMSEQUEN],[FROMINSTAN],[TYPE],"); - tmp.Append("[TONUMBER],[TOSEQUENCE],[TOINSTANCE],[DTI],[OLDTO]"); - break; - case 2: // Tosort - sorted by TONUMBER - tmp.Append(" GROUP BY [TONUMBER],[TOSEQUENCE],[TOINSTANCE],"); - tmp.Append("[FROMNUMBER],[FROMSEQUEN],[FROMINSTAN],[TYPE],[DTI],[OLDTO]"); - break; - } - SelectCmd = tmp.ToString(); - } - - - private void BuildNDXFileNames() - { - TransFromNDX = DBTable +"FROM"; - TransToNDX = DBTable + "TO"; - } - - - // Build the SQL command needed to update a row in the TRAN file - public override string GetRecUpdateStr(DataTable tbl,DataRow row) - { - int j = 0; - bool FirstOne = true; - StringBuilder updateStr = new StringBuilder(); - string strNumber = ""; - string strSequence = ""; - string strInstance = ""; - - updateStr.Append("UPDATE ["); - updateStr.Append(DBTable); - updateStr.Append("] SET"); - - foreach (DataColumn col in tbl.Columns) - { - bool isString = (col.DataType == Type.GetType("System.String")); - - if (col.ColumnName.Equals("FROMNUMBER")) - { - strNumber = row.ItemArray[j].ToString(); - strNumber = strNumber.Replace("'","''"); - } - else if (col.ColumnName.Equals("FROMSEQUEN")) - { - strSequence = row.ItemArray[j].ToString(); - strSequence = strSequence.Replace("'","''"); - } - else if (col.ColumnName.Equals("FROMINSTAN")) - { - strInstance = row.ItemArray[j].ToString(); - strInstance = strInstance.Replace("'","''"); - } - - if (FirstOne) - { - updateStr.Append(" ["); - FirstOne = false; - } - else - updateStr.Append(", ["); - - updateStr.Append(col.ColumnName); - updateStr.Append("]="); - - if (row.ItemArray[j].ToString().Equals("")) - { - updateStr.Append("NULL"); - } - else if (isString) - { - String tmpstr = row.ItemArray[j].ToString(); - updateStr.Append("'"); - tmpstr = tmpstr.Replace("'","''"); - updateStr.Append(tmpstr); - updateStr.Append("'"); - } - j++; - } - // Add the WHERE clause - updateStr.Append(" WHERE [FROMNUMBER] = '"); - updateStr.Append(strNumber.ToString()); - updateStr.Append("' AND [FROMSEQUEN] = '"); - updateStr.Append(strSequence.ToString()); - updateStr.Append("' AND [FROMINSTAN] = '"); - updateStr.Append(strInstance.ToString()); - updateStr.Append("'"); - return updateStr.ToString(); - } - - - // Build the SQL command needed to insert a row in the TRAN file - public override string GetRecInsertStr(DataTable tbl,DataRow row) - { - int j = 0; - StringBuilder insrtStr = new StringBuilder(); - StringBuilder valueStr = new StringBuilder(); - - insrtStr.Append("INSERT INTO ["); - insrtStr.Append(DBTable); - insrtStr.Append("] ("); - - valueStr.Append(" VALUES ("); - - foreach (DataColumn col in tbl.Columns) - { - bool isString = (col.DataType == Type.GetType("System.String")); - insrtStr.Append("["); - insrtStr.Append(col.ColumnName); - insrtStr.Append("],"); - - if (row.ItemArray[j].ToString().Equals("")) - { - valueStr.Append("NULL"); - } - else if (isString) - { - String tmpstr = row.ItemArray[j].ToString(); - tmpstr = tmpstr.Replace("'","''"); - valueStr.Append("'"); - valueStr.Append(tmpstr); - valueStr.Append("'"); - } - else - { - valueStr.Append(row.ItemArray[j].ToString()); - } - valueStr.Append(","); - j++; - } - - insrtStr = insrtStr.Replace(',',')',insrtStr.Length-1,1); - valueStr = valueStr.Replace(',',')',valueStr.Length-1,1); - insrtStr.Append(valueStr.ToString()); - - return insrtStr.ToString(); - } - - // Build the SQL command needed to delete a row in the TRAN file - public override string RecDeleteStr(DataTable tbl,DataRow row) - { - int j = 0; - string strNumber = ""; - string strSequence = ""; - string strInstance = ""; - StringBuilder deleteStr = new StringBuilder(); - - deleteStr.Append("DELETE FROM ["); - deleteStr.Append(DBTable); - deleteStr.Append("]"); - - row.RejectChanges(); - foreach (DataColumn col in tbl.Columns) - { - if (col.ColumnName.Equals("FROMNUMBER")) - { - strNumber = row.ItemArray[j].ToString(); - strNumber = strNumber.Replace("'","''"); - } - else if (col.ColumnName.Equals("FROMSEQUEN")) - { - strSequence = row.ItemArray[j].ToString(); - strSequence = strSequence.Replace("'","''"); - } - else if (col.ColumnName.Equals("FROMINSTAN")) - { - strInstance = row.ItemArray[j].ToString(); - strInstance = strInstance.Replace("'","''"); - } - j++; - } - // Add the WHERE clause - deleteStr.Append(" WHERE [FROMNUMBER] = '"); - deleteStr.Append(strNumber.ToString()); - deleteStr.Append("' AND [FROMSEQUEN] = '"); - deleteStr.Append(strSequence.ToString()); - deleteStr.Append("' AND [FROMINSTAN] = '"); - deleteStr.Append(strInstance.ToString()); - deleteStr.Append("'"); - - return deleteStr.ToString(); - - } - - public override string GetCreateIndx1String() - { - StringBuilder index1Str = new StringBuilder(); - index1Str.Append("CREATE INDEX ["); - index1Str.Append(TransFromNDX); - index1Str.Append("] ON "); - index1Str.Append(DBTable); - index1Str.Append(".DBF ([FROMNUMBER],[FROMSEQUEN],[FROMINSTAN])"); - return (index1Str.ToString()); - } - - public override string GetCreateIndx2String() - { - StringBuilder index2Str = new StringBuilder(); - index2Str.Append("CREATE INDEX ["); - index2Str.Append(TransToNDX); - index2Str.Append("] ON "); - index2Str.Append(DBTable); - index2Str.Append(".DBF ([TONUMBER], [TOSEQUENCE])"); - return (index2Str.ToString()); - } - - public override bool IndexFilesExist() - { - if (TransFromNDX==""||TransToNDX=="")BuildNDXFileNames(); - if(!File.Exists(DBPath+"\\"+TransFromNDX+".NDX") || !File.Exists(DBPath+"\\"+TransToNDX+".NDX")) return false; - return true; - } - public override void DeleteIndexFiles() - { - if(File.Exists(DBPath+"\\"+TransFromNDX+".NDX")) File.Delete(DBPath+"\\"+TransFromNDX+".NDX"); - if(File.Exists(DBPath+"\\"+TransToNDX+".NDX")) File.Delete(DBPath+"\\"+TransToNDX+".NDX"); - if(File.Exists(DBPath+"\\"+DBTable+".INF")) File.Delete(DBPath+"\\"+DBTable+".INF"); - } - - public override StringCollection CreateIndexFilesStatements() - { - if (isdBaseFile()) - { - StringCollection rtnStrColl = new StringCollection(); - string indx1 = GetCreateIndx1String(); - rtnStrColl.Add(indx1); - string indx2 = GetCreateIndx2String(); - rtnStrColl.Add(indx2); - return rtnStrColl; - } - return null; - } - - // Build a list of SQL commands needed to create a new TRAN table (file) - // and add the first row - public override StringCollection CreateTableStatements(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder createStr = new StringBuilder(); - //StringBuilder index1Str = new StringBuilder(); - //StringBuilder index2Str = new StringBuilder(); - - if (strTblName.Length > 0) // was a table name passd in? - { - DBTable = strTblName; - } - - if (DBTable.Equals("")) - { - MessageBox.Show("Trying to Create a new Table without a Name","Create Table Error"); - return rtnStrColl; - } - - // Build the command that creates a new SET table (file) - createStr.Append("CREATE TABLE ["); - createStr.Append(DBTable); - createStr.Append("] "); - createStr.Append("([FROMNUMBER] Char(20), [FROMSEQUEN] Char(12), "); - createStr.Append("[FROMINSTAN] Char(1), [TYPE] Char(1),"); - createStr.Append("[TONUMBER] Char(20), [TOSEQUENCE] Char(12), "); - createStr.Append("[TOINSTANCE] Char(2), [DTI] Char(18), [OLDTO] Char(32))"); - - rtnStrColl.Add(createStr.ToString()); // add create table - - if (isdBaseFile()) - { - // Build the command that creates the first index file - rtnStrColl.Add(GetCreateIndx1String()); // add create 1st index - - // Build the commmand that creates the second index file - //string tmp = DBTable; - - rtnStrColl.Add(GetCreateIndx2String()); // add create 2nd index - } - - return rtnStrColl; - } - - // After the table is created, create the associated INF file - public override int PostCreateTableFunction() - { - CreateINF(); // should already be created - return 0; - } - - // This will be called from CreateTableStatements() - // and this is called if the table name is assigned to the DBTable property - public override int CreateINF() - { - // if we are using dBase files, create an INF file containing - // a list of the associated NDX files. - if (isdBaseFile()) - { - StreamWriter infFile; - string infFileStr; - StringBuilder tmp = new StringBuilder(); - - // build the ndx file names (w/o extensions) - BuildNDXFileNames(); - - //build INF file name - tmp.Append(DBPath); - tmp.Append("\\"); - tmp.Append(DBTable); - tmp.Append(".INF"); - - infFileStr = tmp.ToString(); - - // if the INF file does not already exist create it - //if (!File.Exists(infFileStr)) - //{ - // always recreate it. Some plants' data had invalid files - // and it was felt that it would be quicker to recreate always - // rather than - infFile = new StreamWriter(infFileStr,false); - infFile.Write("NDX1="); - infFile.Write(TransFromNDX); // TRANFROM.NDX - infFile.Write(".NDX\r\n"); - infFile.Write("NDX2="); - infFile.Write(TransToNDX); //TRANTO.NDX - infFile.Write(".NDX\r\n"); - infFile.Close(); - //} - } - return 0; - } - - // return a list of SQL commands that will drop (delete) a database table (file) - public override StringCollection DeleteTableStatements(string strTblName) - { - StringCollection rtnStrColl = new StringCollection(); - StringBuilder DropTableStr = new StringBuilder(); - - DropTableStr.Append("Drop Table ["); - DropTableStr.Append(DBTable); - DropTableStr.Append("]"); - - rtnStrColl.Add(DropTableStr.ToString()); - return rtnStrColl; - } - - // return a dataset of Transition Usage records, not sorted - public System.Data.DataSet GetNotSorted(string WhereStr) - { - BuildSelectCommand((int)SortTypes.NotSorted,WhereStr); - return DB_Data; - } - - // return a dataset or Transition Usage records, sorted by the [FROMNUMBER] field - public System.Data.DataSet GetSortedByFromTrans(string WhereStr) - { - BuildSelectCommand((int)SortTypes.FromSort,WhereStr); - return DB_Data; - } - - // return a dataset or Transition Usage records, sorted by the [TONUMBER] field - public System.Data.DataSet GetSortedByToTrans(string WhereStr) - { - BuildSelectCommand((int)SortTypes.ToSort,WhereStr); - return DB_Data; - } - - public void UpdateProcNumber(string oldnum, string newnum) - { - // Change fromnumber first, then tonumber - StringBuilder updateStr = new StringBuilder(); - updateStr.Append("UPDATE ["); - updateStr.Append(DBTable); - updateStr.Append("] SET [FROMNUMBER] = '"); - updateStr.Append(newnum.Replace("'","''")); - updateStr.Append("' WHERE [FROMNUMBER] = '"); - updateStr.Append(oldnum.Replace("'","''")); - updateStr.Append("'"); - ProcessACommand(updateStr.ToString()); - - // now to... - updateStr.Remove(0,updateStr.Length); - updateStr.Append("UPDATE ["); - updateStr.Append(DBTable); - updateStr.Append("] SET [TONUMBER] = '"); - updateStr.Append(newnum.Replace("'","''")); - updateStr.Append("' WHERE [TONUMBER] = '"); - updateStr.Append(oldnum.Replace("'","''")); - updateStr.Append("'"); - ProcessACommand(updateStr.ToString()); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/VEMessage.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/VEMessage.cs deleted file mode 100644 index 2737993d..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/VEMessage.cs +++ /dev/null @@ -1,113 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VEMessage.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:24a $ - * - * $History: VEMessage.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:24a - * Created in $/LibSource/VEMessage - *********************************************************************************************/ -using System; -using System.Collections.Specialized; -using System.Runtime.InteropServices; -using System.Windows.Forms; - -namespace VEMessageNS -{ - // messages for communication between this app & vfw. - public enum MessageOps - { - WM_USER = 0x0400, - MSG_COMMAND_TERMINATE = WM_USER + 200 + 4, - POSQUERY = WM_USER+0x015, //21, - POSUPDATE = WM_USER+0x016, //22, - GETANSWER = WM_USER+0x017, //23, - RQSTATTACH = WM_USER+0x018, //24, - RQSTFILEOFFSET = WM_USER+0x19, //25, - RQSTFILEMODE = WM_USER+0x01a, //26, - RQSTFILEOWNER = WM_USER+0x01b, //27, - RQSTFILESEEK = WM_USER+0x01c, //28, - RQSTFILECLOSE = WM_USER+0x01d, //29, - RQSTFILEOPEN = WM_USER+0x01e, //30, - RQSTFILEREAD = WM_USER+0x01f, //31, - RQSTFILEWRITE = WM_USER+0x020, //32, - RQSTPROCESSRECORD = WM_USER+0x021, //33, - GETPROCESSREC = WM_USER+0x022, //34, - SETLOCKBYUSER = WM_USER+0x023, // 35 - }; - - - public class Win32 - { - [DllImport("wow32.dll")] - public static extern Int16 WOWHandle16(IntPtr x, int xx); - } - - public class VEMessage - { - public HybridDictionary dicMessage; - static int m_Handle_16bit; - static IntPtr m_Handle_vfw; - public VEMessage() - { - dicMessage = new HybridDictionary(); - dicMessage.Add(0x415,MessageOps.POSQUERY); - dicMessage.Add(0x416,MessageOps.POSUPDATE); - dicMessage.Add(0x417,MessageOps.GETANSWER); - dicMessage.Add(0x418,MessageOps.RQSTATTACH); - dicMessage.Add(0x419,MessageOps.RQSTFILEOFFSET); - dicMessage.Add(0x41a,MessageOps.RQSTFILEMODE); - dicMessage.Add(0x41b,MessageOps.RQSTFILEOWNER); - dicMessage.Add(0x41c,MessageOps.RQSTFILESEEK); - dicMessage.Add(0x41d,MessageOps.RQSTFILECLOSE); - dicMessage.Add(0x41e,MessageOps.RQSTFILEOPEN); - dicMessage.Add(0x41f,MessageOps.RQSTFILEREAD); - dicMessage.Add(0x420,MessageOps.RQSTFILEWRITE); - dicMessage.Add(0x421,MessageOps.RQSTPROCESSRECORD); - dicMessage.Add(0x422,MessageOps.GETPROCESSREC); - dicMessage.Add(0x423,MessageOps.SETLOCKBYUSER); - } - - public bool Exists(int msg) - { - return(dicMessage.Contains(msg)); - } - public static int Handle_16bit - { - set - { - m_Handle_16bit=value; - } - get - { - return m_Handle_16bit; - } - } - - public static IntPtr Handle_Vfw - { - set - { - m_Handle_vfw=value; - } - get - { - return m_Handle_vfw; - } - } - - public int GetMessageOp(int m) - { - return ((int) dicMessage[m]); - } - - public void SetReceiveHandle(Message m) - { - Handle_Vfw = m.WParam; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/VEMessage.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/VEMessage.csproj deleted file mode 100644 index fbcb9aeb..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/VEMessage.csproj +++ /dev/null @@ -1,105 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/VEMessage.sln b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/VEMessage.sln deleted file mode 100644 index b8efca13..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEMessage/VEMessage.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VEMessage", "VEMessage.csproj", "{D6084F16-AF86-4D6D-B53B-13BCA7B90CA0}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {D6084F16-AF86-4D6D-B53B-13BCA7B90CA0}.Debug.ActiveCfg = Debug|.NET - {D6084F16-AF86-4D6D-B53B-13BCA7B90CA0}.Debug.Build.0 = Debug|.NET - {D6084F16-AF86-4D6D-B53B-13BCA7B90CA0}.Release.ActiveCfg = Release|.NET - {D6084F16-AF86-4D6D-B53B-13BCA7B90CA0}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/AssemblyInfo.cs deleted file mode 100644 index cb6b7eb5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/AssemblyInfo.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/AssemblyInfo.cs.bak deleted file mode 100644 index 143d8339..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/AssemblyInfo.cs.bak +++ /dev/null @@ -1,59 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockDlg.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockDlg.cs deleted file mode 100644 index 76a2d654..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockDlg.cs +++ /dev/null @@ -1,147 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: LockDlg.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:44a $ - * - * $History: LockDlg.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:44a - * Created in $/LibSource/VENetwork - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace VENetwork -{ - /// - /// Summary description for LockDlg. - /// - public class LockDlg : System.Windows.Forms.Form - { - private System.Windows.Forms.TextBox tbLockReason; - private System.Windows.Forms.Label lblLckMsg; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button Cancel; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - private string [] LckTypes = {"SYSTEM", "PLANT", "PROCEDURE"}; - - private VELock vlk; - public LockDlg(VELock alock) - { - vlk = alock; - // - // Required for Windows Form Designer support - // - InitializeComponent(); - this.lblLckMsg.Text = "Please enter PURPOSE and estimated DURATION of " + LckTypes[(int)vlk.LockType-1] + " Lock: "; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(LockDlg)); - this.tbLockReason = new System.Windows.Forms.TextBox(); - this.lblLckMsg = new System.Windows.Forms.Label(); - this.btnOK = new System.Windows.Forms.Button(); - this.Cancel = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // tbLockReason - // - this.tbLockReason.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.tbLockReason.Location = new System.Drawing.Point(8, 40); - this.tbLockReason.Name = "tbLockReason"; - this.tbLockReason.Size = new System.Drawing.Size(328, 21); - this.tbLockReason.TabIndex = 0; - this.tbLockReason.Text = ""; - this.tbLockReason.KeyUp += new System.Windows.Forms.KeyEventHandler(this.tbLockReason_KeyUp); - // - // lblLckMsg - // - this.lblLckMsg.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblLckMsg.Location = new System.Drawing.Point(0, 0); - this.lblLckMsg.Name = "lblLckMsg"; - this.lblLckMsg.Size = new System.Drawing.Size(280, 32); - this.lblLckMsg.TabIndex = 1; - this.lblLckMsg.Text = "Please enter PURPOSE and estimated DURATION of Lock: "; - // - // btnOK - // - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnOK.Location = new System.Drawing.Point(176, 72); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(64, 24); - this.btnOK.TabIndex = 2; - this.btnOK.Text = "OK"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // Cancel - // - this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.Cancel.Location = new System.Drawing.Point(264, 72); - this.Cancel.Name = "Cancel"; - this.Cancel.Size = new System.Drawing.Size(64, 24); - this.Cancel.TabIndex = 3; - this.Cancel.Text = "Cancel"; - // - // LockDlg - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(376, 102); - this.Controls.Add(this.Cancel); - this.Controls.Add(this.btnOK); - this.Controls.Add(this.lblLckMsg); - this.Controls.Add(this.tbLockReason); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "LockDlg"; - this.Text = "VE-Proms Lock Purpose"; - this.ResumeLayout(false); - - } - #endregion - - private void btnOK_Click(object sender, System.EventArgs e) - { - vlk.Why = this.tbLockReason.Text; - vlk.WhyDT = System.DateTime.Now; - } - - private void tbLockReason_KeyUp(object sender, System.Windows.Forms.KeyEventArgs e) - { - // if key pressed was a return - treat as ok button. - if (e.KeyCode == Keys.Return) this.btnOK.PerformClick(); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockDlg.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockDlg.resx deleted file mode 100644 index 834afb22..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockDlg.resx +++ /dev/null @@ -1,183 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - Private - - - LockDlg - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockInfoDlg.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockInfoDlg.cs deleted file mode 100644 index f9a22f90..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockInfoDlg.cs +++ /dev/null @@ -1,231 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: LockInfoDlg.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:44a $ - * - * $History: LockInfoDlg.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:44a - * Created in $/LibSource/VENetwork - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace VENetwork -{ - /// - /// Summary description for Form1. - /// - public class LockInfoDlg : System.Windows.Forms.Form - { - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.TextBox tbUserName; - private System.Windows.Forms.TextBox tbLoc; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.TextBox tbPhone1; - private System.Windows.Forms.TextBox tbWhy; - private System.Windows.Forms.TextBox tbWhyDT; - private System.Windows.Forms.TextBox tbPhone2; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private string [] SLockTypes = {"System", "Plant", "Procedure Set"}; - public LockInfoDlg(VELock lck) - { - InitializeComponent(); - this.tbUserName.Text = lck.UserName; - this.tbPhone1.Text = lck.Phone1; - this.tbPhone2.Text = lck.Phone2; - this.tbLoc.Text = lck.Loc1 + " - " + lck.Loc2; - this.tbWhy.Text = lck.Why; - this.tbWhyDT.Text = lck.WhyDT.ToShortDateString() + " " + lck.WhyDT.ToShortTimeString(); - this.Text = SLockTypes[(int)lck.LockType-1] + " Lock"; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(LockInfoDlg)); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.label5 = new System.Windows.Forms.Label(); - this.tbUserName = new System.Windows.Forms.TextBox(); - this.tbLoc = new System.Windows.Forms.TextBox(); - this.tbPhone1 = new System.Windows.Forms.TextBox(); - this.tbWhy = new System.Windows.Forms.TextBox(); - this.tbWhyDT = new System.Windows.Forms.TextBox(); - this.button1 = new System.Windows.Forms.Button(); - this.tbPhone2 = new System.Windows.Forms.TextBox(); - this.SuspendLayout(); - // - // label1 - // - this.label1.Location = new System.Drawing.Point(0, 8); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(80, 16); - this.label1.TabIndex = 0; - this.label1.Text = "Locked by:"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label2 - // - this.label2.Location = new System.Drawing.Point(8, 40); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(72, 16); - this.label2.TabIndex = 1; - this.label2.Text = "Location:"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label3 - // - this.label3.Location = new System.Drawing.Point(0, 72); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(80, 16); - this.label3.TabIndex = 2; - this.label3.Text = "Phone:"; - this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label4 - // - this.label4.Location = new System.Drawing.Point(0, 136); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(80, 16); - this.label4.TabIndex = 3; - this.label4.Text = "Information:"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // label5 - // - this.label5.Location = new System.Drawing.Point(0, 168); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(80, 16); - this.label5.TabIndex = 4; - this.label5.Text = "Lock Created:"; - this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleRight; - // - // tbUserName - // - this.tbUserName.BackColor = System.Drawing.SystemColors.Control; - this.tbUserName.Location = new System.Drawing.Point(96, 8); - this.tbUserName.Name = "tbUserName"; - this.tbUserName.ReadOnly = true; - this.tbUserName.Size = new System.Drawing.Size(304, 20); - this.tbUserName.TabIndex = 5; - this.tbUserName.Text = ""; - // - // tbLoc - // - this.tbLoc.BackColor = System.Drawing.SystemColors.Control; - this.tbLoc.Location = new System.Drawing.Point(96, 40); - this.tbLoc.Name = "tbLoc"; - this.tbLoc.ReadOnly = true; - this.tbLoc.Size = new System.Drawing.Size(304, 20); - this.tbLoc.TabIndex = 6; - this.tbLoc.Text = ""; - // - // tbPhone1 - // - this.tbPhone1.BackColor = System.Drawing.SystemColors.Control; - this.tbPhone1.Location = new System.Drawing.Point(96, 72); - this.tbPhone1.Name = "tbPhone1"; - this.tbPhone1.ReadOnly = true; - this.tbPhone1.Size = new System.Drawing.Size(168, 20); - this.tbPhone1.TabIndex = 7; - this.tbPhone1.Text = ""; - // - // tbWhy - // - this.tbWhy.BackColor = System.Drawing.SystemColors.Control; - this.tbWhy.Location = new System.Drawing.Point(96, 136); - this.tbWhy.Name = "tbWhy"; - this.tbWhy.ReadOnly = true; - this.tbWhy.Size = new System.Drawing.Size(304, 20); - this.tbWhy.TabIndex = 8; - this.tbWhy.Text = ""; - // - // tbWhyDT - // - this.tbWhyDT.BackColor = System.Drawing.SystemColors.Control; - this.tbWhyDT.Location = new System.Drawing.Point(96, 168); - this.tbWhyDT.Name = "tbWhyDT"; - this.tbWhyDT.ReadOnly = true; - this.tbWhyDT.Size = new System.Drawing.Size(208, 20); - this.tbWhyDT.TabIndex = 9; - this.tbWhyDT.Text = ""; - // - // button1 - // - this.button1.DialogResult = System.Windows.Forms.DialogResult.OK; - this.button1.Location = new System.Drawing.Point(168, 200); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(72, 24); - this.button1.TabIndex = 10; - this.button1.Text = "OK"; - // - // tbPhone2 - // - this.tbPhone2.Location = new System.Drawing.Point(96, 104); - this.tbPhone2.Name = "tbPhone2"; - this.tbPhone2.ReadOnly = true; - this.tbPhone2.Size = new System.Drawing.Size(168, 20); - this.tbPhone2.TabIndex = 0; - this.tbPhone2.Text = ""; - // - // LockInfoDlg - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(424, 230); - this.Controls.Add(this.tbPhone2); - this.Controls.Add(this.button1); - this.Controls.Add(this.tbWhyDT); - this.Controls.Add(this.tbWhy); - this.Controls.Add(this.tbPhone1); - this.Controls.Add(this.tbLoc); - this.Controls.Add(this.tbUserName); - this.Controls.Add(this.label5); - this.Controls.Add(this.label4); - this.Controls.Add(this.label3); - this.Controls.Add(this.label2); - this.Controls.Add(this.label1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "LockInfoDlg"; - this.Text = "Form1"; - this.ResumeLayout(false); - - } - #endregion - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockInfoDlg.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockInfoDlg.resx deleted file mode 100644 index 9434a2c0..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockInfoDlg.resx +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - LockInfoDlg - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockRlsDlg.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockRlsDlg.cs deleted file mode 100644 index 5ff40d4a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockRlsDlg.cs +++ /dev/null @@ -1,202 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: LockRlsDlg.cs $ $Revision: 2 $ - * $Author: Jsj $ $Date: 8/17/04 12:54p $ - * - * $History: LockRlsDlg.cs $ - * - * ***************** Version 2 ***************** - * User: Jsj Date: 8/17/04 Time: 12:54p - * Updated in $/LibSource/VENetwork - * Needed to assign an Icon to the form. It was bombing with a resource - * error otherwise. - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:44a - * Created in $/LibSource/VENetwork - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace VENetwork -{ - /// - /// Allows user to Release Locks on exit. - /// - public class LockRlsDlg : System.Windows.Forms.Form - { - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.CheckBox cbSystem; - private System.Windows.Forms.CheckBox cbPlant; - private System.Windows.Forms.CheckBox cbProcSet; - private System.ComponentModel.Container components = null; - private VELock LSystem; - private VELock LPlant; - private VELock LProcSet; - - public LockRlsDlg(VELock lsys, VELock lplt, VELock lps) - { - LSystem = lsys; - LPlant = lplt; - LProcSet = lps; - - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // Set checkboxes depending on whether a lock exists. Note - // that the input locks will be null if not locked by this user. - if (lsys != null) - cbSystem.Checked = true; - else - cbSystem.Enabled = false; - - if (lplt != null) - { - cbPlant.Text = lplt.Path.Substring(0,lplt.Path.LastIndexOf("\\")); - cbPlant.Checked = true; - } - else - cbPlant.Enabled = false; - if (lps != null) - { - cbProcSet.Text = lps.Path.Substring(0,lps.Path.LastIndexOf("\\")); - cbProcSet.Checked = true; - } - else - cbProcSet.Enabled = false; - - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(LockRlsDlg)); - this.label1 = new System.Windows.Forms.Label(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.cbSystem = new System.Windows.Forms.CheckBox(); - this.cbPlant = new System.Windows.Forms.CheckBox(); - this.cbProcSet = new System.Windows.Forms.CheckBox(); - this.SuspendLayout(); - // - // label1 - // - this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.label1.Location = new System.Drawing.Point(29, 9); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(451, 56); - this.label1.TabIndex = 0; - this.label1.Text = "The Following Locks Have Been Detected. Please Click The Appropriate Box To Rele" + - "ase The Lock."; - // - // btnOK - // - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnOK.Location = new System.Drawing.Point(173, 194); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(77, 28); - this.btnOK.TabIndex = 1; - this.btnOK.Text = "OK"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnCancel.Location = new System.Drawing.Point(288, 194); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(77, 28); - this.btnCancel.TabIndex = 2; - this.btnCancel.Text = "Cancel"; - // - // cbSystem - // - this.cbSystem.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.cbSystem.Location = new System.Drawing.Point(86, 74); - this.cbSystem.Name = "cbSystem"; - this.cbSystem.Size = new System.Drawing.Size(375, 28); - this.cbSystem.TabIndex = 3; - this.cbSystem.Text = "System"; - // - // cbPlant - // - this.cbPlant.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.cbPlant.Location = new System.Drawing.Point(86, 111); - this.cbPlant.Name = "cbPlant"; - this.cbPlant.Size = new System.Drawing.Size(375, 27); - this.cbPlant.TabIndex = 4; - this.cbPlant.Text = "Plant"; - // - // cbProcSet - // - this.cbProcSet.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.cbProcSet.Location = new System.Drawing.Point(86, 148); - this.cbProcSet.Name = "cbProcSet"; - this.cbProcSet.Size = new System.Drawing.Size(375, 27); - this.cbProcSet.TabIndex = 5; - this.cbProcSet.Text = "Data"; - // - // LockRlsDlg - // - this.AccessibleRole = System.Windows.Forms.AccessibleRole.TitleBar; - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(537, 228); - this.Controls.Add(this.cbProcSet); - this.Controls.Add(this.cbPlant); - this.Controls.Add(this.cbSystem); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOK); - this.Controls.Add(this.label1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "LockRlsDlg"; - this.Text = "Release Locks"; - this.ResumeLayout(false); - - } - #endregion - - private void btnOK_Click(object sender, System.EventArgs e) - { - // unlock any where the check was removed (kind of backwards but duplicates - // functionality from vfw. - if (this.cbSystem.Visible && this.cbSystem.Enabled && !this.cbSystem.Checked) - LSystem.UnLock(false); - if (this.cbPlant.Visible && this.cbPlant.Enabled && !this.cbPlant.Checked) - LPlant.UnLock(false); - if (this.cbProcSet.Visible && this.cbProcSet.Enabled && !this.cbProcSet.Checked) - LProcSet.UnLock(false); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockRlsDlg.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockRlsDlg.resx deleted file mode 100644 index cd6d2117..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/LockRlsDlg.resx +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - LockRlsDlg - - - True - - - 80 - - - True - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/MonUsrDlg.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/MonUsrDlg.cs deleted file mode 100644 index f2179b42..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/MonUsrDlg.cs +++ /dev/null @@ -1,122 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: MonUsrDlg.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:44a $ - * - * $History: MonUsrDlg.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:44a - * Created in $/LibSource/VENetwork - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using Utils; - -namespace VENetwork -{ - /// - /// Summary description for MonUsrDlg. - /// - public class MonUsrDlg : System.Windows.Forms.Form - { - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private System.Windows.Forms.ListView lvUsers; - private System.Windows.Forms.Button button1; - private string [] SLockTypes = {"System", "Plant", "Procedure Set"}; - public MonUsrDlg(ArrayList usr, int ilb) - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - this.Text = SLockTypes[ilb] + " : Monitor Users"; - DoListView(usr); - } - - private void DoListView(ArrayList usrlst) - { - ListViewItem item=null; - lvUsers.Columns.Add("User Network ID",100, HorizontalAlignment.Left); - lvUsers.Columns.Add("User Phone",100, HorizontalAlignment.Left); - lvUsers.Columns.Add("User Name",200, HorizontalAlignment.Left); - - for (int i=0; i - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(MonUsrDlg)); - this.lvUsers = new System.Windows.Forms.ListView(); - this.button1 = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // lvUsers - // - this.lvUsers.Location = new System.Drawing.Point(0, 0); - this.lvUsers.Name = "lvUsers"; - this.lvUsers.Size = new System.Drawing.Size(400, 224); - this.lvUsers.TabIndex = 0; - this.lvUsers.View = System.Windows.Forms.View.Details; - // - // button1 - // - this.button1.DialogResult = System.Windows.Forms.DialogResult.OK; - this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.button1.Location = new System.Drawing.Point(176, 232); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(64, 24); - this.button1.TabIndex = 1; - this.button1.Text = "OK"; - // - // MonUsrDlg - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(400, 266); - this.Controls.Add(this.button1); - this.Controls.Add(this.lvUsers); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "MonUsrDlg"; - this.Text = "Monitor Users"; - this.ResumeLayout(false); - - } - #endregion - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/MonUsrDlg.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/MonUsrDlg.resx deleted file mode 100644 index 464ccbca..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/MonUsrDlg.resx +++ /dev/null @@ -1,165 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - MonUsrDlg - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/VEConn.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/VEConn.cs deleted file mode 100644 index 243d21c2..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/VEConn.cs +++ /dev/null @@ -1,576 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VEConn.cs $ $Revision: 3 $ - * $Author: Kathy $ $Date: 1/31/05 11:04a $ - * - * $History: VEConn.cs $ - * - * ***************** Version 3 ***************** - * User: Kathy Date: 1/31/05 Time: 11:04a - * Updated in $/LibSource/VENetwork - * Fix B2005-005 (connection & delete directory errors) - * - * ***************** Version 2 ***************** - * User: Jsj Date: 11/12/04 Time: 10:34a - * Updated in $/LibSource/VENetwork - * Save user's Temp dir path - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:44a - * Created in $/LibSource/VENetwork - *********************************************************************************************/ - -using System; -using System.IO; -using System.Collections; -using System.Windows; -using System.Windows.Forms; -using System.ComponentModel; -using System.Text; -using Utils; -using VlnStatus; - -namespace VENetwork -{ - // The following enum is used to set/check the mode for which the dat file connection - // was made (i.e. when the file was opened. - // NWModes: - // exclusive, hold, write - public enum NWModes {XCLUDMODE=1, HOLDMODE=2, WRITMODE=3}; - - // This class manages the connection options for multi-user support, i.e. creation, - // connecting to and removing dat files at the system, plant and procedure set levels. - public class VEConnection - { - private VELock m_Lock; - private string m_Path; - private string CurDir; - private long m_Position; - - private NWModes m_Mode; - private FileStream datFs; - private UserRunTime usrRunTime; - const int ProcessRecLen = 140; - private VETempFile TempFile; - - public VEConnection(VELock ilck, UserRunTime iusrRT) - { - TempFile = null; - datFs = null; - m_Mode = 0; - m_Lock = ilck; - usrRunTime = iusrRT; - SetUserTempDirPath(); - if (m_Lock.LockType == LockTypes.None) return; - string tmp_path = ilck.Path; - CurDir = tmp_path.Substring(0,tmp_path.LastIndexOf("\\")+1); // save directory - // path is same as lock file except extension is dat not lck. - m_Path = tmp_path.Substring(0,tmp_path.Length-3) + "dat"; - } - - ~ VEConnection() - { - // update the record as inactive & close the file (this gets called on - // exit of the program, rather than changing active data in the tree view). - Exit(); - } - - public int GetVfwMode() - { - //given the current mode, get the required filemode to send back to - // vfw. The values were taken from Borland include file - // define BASEMODE (O_NOINHERIT|O_NOCRITERR) - // 0x80 0x2000 - // define XCLUDMODE (BASEMODE|O_COMMIT|O_CREAT|O_DENYALL|O_RDWR) - // 0x4000 0x0100 0x10 0x4 - // define HOLDMODE (BASEMODE|O_DENYNONE|O_RDONLY) - // 0x40 0x1 - // define WRITMODE (BASEMODE|O_COMMIT|O_DENYWRITE|O_RDWR) - // 0x4000 0x20 0x4 - int BASEMODE = 0x80|0x2000; - if(m_Mode==NWModes.HOLDMODE) - return (BASEMODE|0x40|0x1); - else if (m_Mode==NWModes.XCLUDMODE) - return (BASEMODE|0x4000|0x0100|0x10|0x4); - else if (m_Mode==NWModes.WRITMODE) - return (BASEMODE|0x4000|0x20|0x4); - else - return (0); - } - - // if file open is done from vfw, need to open file using that mode, - // get mode from input. - public NWModes GetModeFromVfwMode(int vfwMode) - { - int BASEMODE = 0x80|0x2000; - if (vfwMode==(BASEMODE|0x40|0x1)) - return NWModes.HOLDMODE; - else if (vfwMode==(BASEMODE|0x4000|0x0100|0x10|0x4)) - return NWModes.XCLUDMODE; - else if (vfwMode==(BASEMODE|0x4000|0x20|0x4)) - return NWModes.WRITMODE; - return (NWModes) 0; - } - - [Description("File offset")]public long FileOffset - { - get{return m_Position;} - } - - // reads the dat file for this level, and creates a list of ACTIVE users, i.e. - // those users whose record's status is set to active. - public ArrayList GetUsers() - { - ArrayList retval = new ArrayList(); - if (datFs!=null) - { - // read records in the .dat file and see if any are active. - long howbig = datFs.Length; - int howmany = (int)(howbig/ProcessRecLen) - 1; // the first record is a dummy - for (int rec=1;rec<=howmany;rec++) - { - UserData usrd = new UserData(datFs, rec); - if (usrd.UserStatus==(byte)Utils.UserCStatus.PRACTIVE) - retval.Add(usrd); - else - usrd = null; - } - } - return retval; - } - - // display the monitor users dialog - public void MonitorUsers(int lbstr) - { - ArrayList al = GetUsers(); - // temporarily do separate dialog. eventually, this will be a pane with a list - // on the main window - MonUsrDlg dlg = new MonUsrDlg(al,lbstr); - dlg.ShowDialog(); - } - - // determines whether there are active users, other than myself, currently in this - // level of data - public bool HasActiveUsers() - { - int cntactive=0; - // read records in the .dat file and see if any are active. - long howbig = datFs.Length; - int howmany = (int)(howbig/ProcessRecLen) - 1; // the first record is a dummy - for (int rec=1;rec<=howmany;rec++) - { - UserData usrd = new UserData(datFs, rec); - // if active record and it does not match my user name, there is another - // user in. return true. - if (usrd.UserStatus==(byte)Utils.UserCStatus.PRACTIVE) - { - cntactive++; - if (usrd.UserName.ToUpper()!=usrRunTime.myUserData.UserName.ToUpper())return true; - } - } - // if there is more than one active user that is current user, i.e. multiple - // sessions, return true - if (cntactive>1)return true; - return false; - } - - // This method will attempt to open the *process.dat file in a read/write mode so - // that a process record can be added. - private bool OpenRW() - { - bool retval=true; - VlnSpinner spn=null; - try - { - spn = new VlnSpinner(2,50,"- Opening Process File ",m_Path,true,true,false); - datFs=null; - while(spn.SpinnerWait(datFs!=null)) - { - datFs = new FileStream(m_Path,FileMode.Open,FileAccess.ReadWrite,FileShare.Read); - } - // take this chance to do some cleanup in the procedure set directory - if (m_Lock.LockType == LockTypes.ProcSet) DoProcCleanup(); - datFs.Seek(0L,SeekOrigin.End); - m_Position = datFs.Position; - usrRunTime.myUserData.UserStatus= (byte)Utils.UserCStatus.PRACTIVE; - usrRunTime.myUserData.Write(datFs); - m_Mode=NWModes.WRITMODE; - datFs.Flush(); - } - catch (Exception e) - { - //MessageBox.Show(e.Message,"Error on connecting to data - no lock"); - retval = false; - } - spn.Dispose(); - return retval; - } - - // used upon expand/select an item in tree - open the connection to the - // the dat file. The reenter flag is used when the user is already in at this - // level, but a change in lock state may have occurred. - public bool Enter(bool reenter) - { - // for locktype.none, this level has no lock - so just say that - // enter succeeded. - if (m_Lock.LockType == LockTypes.None) return true; - - bool attchtemp = false; - bool success=false; - - VlnSpinner spin = new VlnSpinner(2,10,"- Connecting to Data ",m_Path,true,true,false); - while( spin.SpinnerWait( false ) ) // spin until break or return - { - // if not reenter refresh the lock. if reenter, the locking logic refreshed - // the lock. - if (!reenter)m_Lock.Refresh(); - - // if it's locked, see if it is locked by me and make sure there isn't an - // active connection by another user or by myself from another window or network - // process - if (m_Lock.LockStatus == Status.Locked || m_Lock.LockStatus == Status.LockPending) - { - // if this is a procedure set lock, also check that the correct temp - // file is attached, i.e. the one that is from the locking process. - if(m_Lock.LockType==LockTypes.ProcSet) - { - if (TempFile==null)TempFile = new VETempFile(this.CurDir); - attchtemp=TempFile.AttachSpecificTemp(usrRunTime.myUserData.UserNetworkID,m_Lock.UserProcess); //usrRunTime.myUserData.UserProcess); - // if failed to connect, but a lock was pending, reset the lock type to - // locked by other. - if(m_Lock.LockStatus == Status.LockPending && !attchtemp) m_Lock.LockStatus = Status.LockedByOther; - } - if (m_Lock.LockType != LockTypes.ProcSet || attchtemp) - { - // try to get exclusive access to it (if I don't already have it) - // first step is to exit from current connect - if (m_Mode !=0 && m_Mode != NWModes.XCLUDMODE) Exit(); - - // try to establish a new exclusive connection. If a new exclusive connection - // cannot be made, then a connection must exist from another process (either myself, - // or another user if pending lock). - // If I'm other user, this should be treated like a nolock for me, i.e. I can - // view data but not modify it. - if (m_Mode == 0) - { - try - { - datFs = new FileStream(m_Path,FileMode.Create,FileAccess.ReadWrite,FileShare.None); - if(m_Lock.LockType == LockTypes.ProcSet) - { // these files are only used at the procedure set level - DeleteFiles("*.own",0); // Cleanup ownership files - DeleteFiles("*.wrq",0); // Cleanup write request files - } - usrRunTime.myUserData.UserProcess=m_Lock.UserProcess; - // truncate file - datFs.SetLength(0L); - m_Mode=NWModes.XCLUDMODE; - // write out a dummy record with the status set to inactive. - usrRunTime.myUserData.UserStatus= (byte)Utils.UserCStatus.PRINACTIVE; - usrRunTime.myUserData.Write(datFs); - m_Position = datFs.Position; - usrRunTime.myUserData.UserStatus= (byte)Utils.UserCStatus.PRACTIVE; - usrRunTime.myUserData.Write(datFs); - success=true; - m_Lock.LockStatus = Status.Locked; // in case it was pending - datFs.Flush(); - break; - } - // if an ioexception occurs, the connect is open either by me - // or another user. Open a non-exlusive connection. - catch (IOException) - { - // if open by another user, reopen as it was. Else return for - // view only mode. - spin.Dispose(); - bool opn = OpenRW(); - if (!opn) - { - m_Lock.LockStatus = Status.LockedByOther; - return false; - } - datFs.Close(); - datFs = new FileStream(m_Path,FileMode.Open,FileAccess.Read,FileShare.ReadWrite); - success=true; - m_Mode=NWModes.HOLDMODE; - break; - } - catch (Exception e) - { - spin.Dispose(); - m_Lock.LockStatus = Status.LockedByOther; - MessageBox.Show(e.Message, "Connecting to data failed - lock exists."); - return false; - } - } - else - { - m_Lock.LockStatus = Status.Locked; - success=true; - break; // already connected. - } - } - else - { - success = false; - break; - } - } - - // Handle case where there is no lock or the current user is the lock owner, - // but they're already connected from another run (either windows session or - // network session) - if (m_Lock.LockStatus == Status.NoLock) - { - // check if already connected, i.e. a filestream exists, or that I'm not - // changing modes (the mode change occurs when going from locked to unlocked) - if (datFs != null && this.m_Mode!=NWModes.XCLUDMODE) - { - success=true; - break; - } - else - { - // if at the procedure set level, need to connect to a temp directory - // as well. - usrRunTime.myUserData.UserProcess=""; - if(m_Lock.LockType==LockTypes.ProcSet && TempFile==null) - { - TempFile = new VETempFile(this.CurDir); - bool got_tmp = TempFile.FindAvailableTempDir(usrRunTime.myUserData.UserNetworkID); - if (got_tmp==false) - { - TempFile = null; - spin.Dispose(); - return false; - } - usrRunTime.myUserData.UserProcess=TempFile.TempNum; - } - // try to get exclusive access to dat file (see following commentary) - try - { - // if this was open with exclusive, exit (this would be the - // case where an unlock occurred. - if (reenter || m_Mode == NWModes.XCLUDMODE) Exit(); - - // if can't get exclusive, an exception is thrown. just continue - // on from there, i.e. the file is being used. - // if we get exclusive access, cleanup the procset directory (if - // this is a procset level enter) and then clean out the dat file - datFs = new FileStream(m_Path,FileMode.Create,FileAccess.ReadWrite,FileShare.None); - if(m_Lock.LockType == LockTypes.ProcSet) - { // these files are only used at the procedure set level - DeleteFiles("*.own",0); // Cleanup ownership files - DeleteFiles("*.wrq",0); // Cleanup write request files - } - - // truncate file - datFs.SetLength(0L); - m_Mode=NWModes.XCLUDMODE; - // write out a dummy record with the status set to inactive. - usrRunTime.myUserData.UserStatus= (byte)Utils.UserCStatus.PRINACTIVE; - usrRunTime.myUserData.Write(datFs); - datFs.Close(); - } - - // if it is an IOException, it means the user could not get exclusive access, - // just continue on, opening with read/write access to add process record - // and then reopen in hold mode. - catch (IOException) - { - } - - // Catch a real error. - catch (Exception e) - { - MessageBox.Show(e.Message, "connect->enter failed"); - spin.Dispose(); - return false; - } - - // Attempt to open the file in Read/write mode to add an active process record - bool opn = OpenRW(); - if (!opn)return false; - - // now close the process file & open in hold mode. - datFs.Close(); - datFs = new FileStream(m_Path,FileMode.Open,FileAccess.Read,FileShare.ReadWrite); - success=true; - m_Mode=NWModes.HOLDMODE; - break; - } - } - if (m_Lock.LockStatus == Status.LockedByOther) - { - success = false; - if (datFs!=null)Exit(); - break; - } - } - spin.Dispose(); // end of spinnerwait while loop - - // if successful connection & at the procedure set level, write out number - // of bytes to the temp directory file (temps\userid_.p##) to flag which - // connection this is associated with. Also, if this is a reenter (locked state change) - // then the tempfile is already the correct length, don't write out bytes. - if (success==true && m_Lock.LockType==LockTypes.ProcSet && TempFile!=null && !reenter) - { - TempFile.WriteBytes((int)(m_Position/140)); - } - SetUserTempDirPath(); - return success; - } - - // if len is !0, try to delete files of the specified length. - // zero length files are normally in transition and will be - // deleted by their owners. - public void DeleteFiles(string tmp, int len) - { - DirectoryInfo di = new DirectoryInfo(Directory.GetCurrentDirectory()); - FileInfo [] fis = di.GetFiles(tmp); - foreach (FileInfo fi in fis) - { - if (len==0 || len==fi.Length) fi.Delete(); - } - } - - // cleanup temp files and active record flags in the dat files. - private void DoProcCleanup() - { - // read records in the .dat file and do check for those that are active. - long howbig = datFs.Length; - int howmany = (int)(howbig/ProcessRecLen); - for (int rec=1;rec - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/VENetwork.sln b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/VENetwork.sln deleted file mode 100644 index 72f727b3..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/VENetwork.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VENetwork", "VENetwork.csproj", "{01986CD0-4C52-4592-881D-0502FCF55A46}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {01986CD0-4C52-4592-881D-0502FCF55A46}.Debug.ActiveCfg = Debug|.NET - {01986CD0-4C52-4592-881D-0502FCF55A46}.Debug.Build.0 = Debug|.NET - {01986CD0-4C52-4592-881D-0502FCF55A46}.Release.ActiveCfg = Release|.NET - {01986CD0-4C52-4592-881D-0502FCF55A46}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/VETempFile.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/VETempFile.cs deleted file mode 100644 index 8f5ca56e..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VENetwork/VETempFile.cs +++ /dev/null @@ -1,199 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VETempFile.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 7/27/04 8:45a $ - * - * $History: VETempFile.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:45a - * Created in $/LibSource/VENetwork - *********************************************************************************************/ - -using System; -using System.IO; -using System.Windows.Forms; - - -namespace VENetwork -{ - // this class manages the temps directory for multi-user support in ve-proms. - // The temps directory is used to handle a user's temporary files in support of - // printing, etc. - public class VETempFile - { - public string TemporaryDirectoryName; - private string TemporaryFileName; - public string TempNum; - FileStream tmpFs; - private string CurrentDir; - - public VETempFile(string cd) - { - CurrentDir = cd; - tmpFs=null; - } - - ~ VETempFile() - { - CloseTempProc(); - } - - // Converts the userid, num & PorD (characters 'P' or 'D') into a file- - // name to be used for temporary file support. This creates the file- - // name. The userid is extended to 8 characters with '_'s. - public string MakeTempName(string userid, string num, char PorD) - { - // first, make the temp directory, i.e. temps, if it doesn't - // exist. - DirectoryInfo di = new DirectoryInfo(CurrentDir + "temps"); - if (!di.Exists) di.Create(); - string tmpuid = userid.PadRight(8,'_'); - string tpath = "temps" + "\\" + tmpuid + "." + PorD.ToString() + num; - return tpath; - } - - // This method truncates the temp file (user___.P##) and then closes it. - public void CloseTempProc() - { - if(tmpFs!=null) - { - try - { - // if called from a destructor, the file may have been closed - reopen - // it if we can't write - if (tmpFs.CanWrite==false) - { - tmpFs=null; - tmpFs = new FileStream(TemporaryFileName,FileMode.OpenOrCreate,FileAccess.ReadWrite,FileShare.None); - } - tmpFs.Seek(0L,SeekOrigin.Begin); - tmpFs.SetLength(0L); // truncate the file - tmpFs.Close(); - tmpFs=null; - TemporaryDirectoryName=null; - } - catch (Exception e) - { - MessageBox.Show(e.Message,this.TemporaryDirectoryName); - } - } - } - - // make all subdirectories, if not exist - private void MakeAllNecessaryDirectories(string path) - { - if (Directory.Exists(CurrentDir + path)) return; - - // Create the directory, and any subdirectories - DirectoryInfo di = Directory.CreateDirectory(CurrentDir + path); - } - - // sets class variables based on input. - private void SetUpTempDir(string userid, string num) - { - string TempPath = MakeTempName(userid,num,'D'); - MakeAllNecessaryDirectories(TempPath); - TemporaryDirectoryName = TempPath + "\\"; - } - - // This method attempts to attach to the specified temp file. - // Userid and num are combined to create a process name and - // TempPathDirectory. If the file is successfully opened and - // a connection is established, a byte count matching the process - // number is written to the file and the file is held open. (This - // byte count is actually written in the connection logic, - // veconn.cs, after a connection is successfully made.) - public bool AttachSpecificTemp(string userid, string num) - { - // if already open, close. - CloseTempProc(); - string pname = CurrentDir + MakeTempName(userid,num,'P'); - - // check to see if this user can use the file, i.e. open - // exclusively. - try - { - tmpFs = new FileStream(pname,FileMode.OpenOrCreate,FileAccess.ReadWrite,FileShare.None); - } - catch - { - return false; - } - TemporaryFileName = pname; - TempNum = num; - SetUpTempDir(userid,num); - return true; - } - - // if len is !0, try to delete files of the specified length. - // zero length files are normally in transition and will be - // deleted by their owners. - public void DeleteFiles(string tmp, int len) - { - DirectoryInfo di = new DirectoryInfo(Directory.GetCurrentDirectory()); - FileInfo [] fis = di.GetFiles(tmp); - foreach (FileInfo fi in fis) - { - if (len==0 || len==fi.Length) fi.Delete(); - } - } - - // find the next available temp directory for a given userid. - public bool FindAvailableTempDir(string userid) - { - // first look for existing temp files for this user to see if any - // can be used. - int i; - string ptmp = MakeTempName(userid,"*",'P'); // create a template - - // check to see if any exist. - DirectoryInfo di = new DirectoryInfo(CurrentDir); - FileInfo [] fis = di.GetFiles(ptmp); - for (i=0;i0) - { - // this was left from a reboot or something. - // delete ownership and wrq files of the - // specified size. Check to see if it is - // consistent with the process file first. - DeleteFiles("*.own",(int)fi.Length); - DeleteFiles("*.wrq",(int)fi.Length); - } - return true; - } - } - fis = null; - - // Couldn't use an existing one, find a new one. - for (i=0;i<99;i++) - if (AttachSpecificTemp(userid,i.ToString("d2"))) return true; - - // if the user got this far, something's wrong - report error & exit. - MessageBox.Show("Too many temporary process files for user.","VE-PROMS error"); - return false; - } - - // this method writes out the requested number of bytes to the file. - public void WriteBytes(int num) - { - if (tmpFs != null) - { - while (num>0) - { - tmpFs.WriteByte((byte)'x'); - num--; - } - tmpFs.Flush(); - - } - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ARProperties.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ARProperties.cs deleted file mode 100644 index ff842961..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ARProperties.cs +++ /dev/null @@ -1,549 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ARProperties.cs $ $Revision: 2 $ - * $Author: Jsj $ $Date: 8/20/04 4:45p $ - * - * $History: ARProperties.cs $ - * - * ***************** Version 2 ***************** - * User: Jsj Date: 8/20/04 Time: 4:45p - * Updated in $/LibSource/VEObject - * fixed cancel of archive selected procedures - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:52a - * Created in $/LibSource/VEObject - *********************************************************************************************/ - -using System; -using System.IO; -using System.Drawing; -using System.Collections; -using System.Collections.Specialized; -using System.ComponentModel; -using System.Windows.Forms; -using System.Text; -using System.Data; -using VDB_Set; -using Utils; - - -namespace VEObject -{ - /// - /// NOTE: cmbType (the combo box that contains the document types) must match - /// the order of document types given in the ArchiveTypeOptions for this dialog - /// to work correctly - /// - - - public class ARProperties : System.Windows.Forms.Form - { - private System.Windows.Forms.PropertyGrid myPropertyGrid; - private System.Windows.Forms.ComboBox cmbType; - private System.Windows.Forms.Label lblType; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnApply; - private VEO_Base _ParentObj; - private VEO_Base _CurObj; - private bool isnew; - private bool glbCancel; - private bool zipInCurProcSet; - private bool hasInvalidEntry; - private string strCurZipPath; - private string strZipFileName; - private string strFilesToArchive; - private string strZipFileExcludeList; - private string strProcSetDir; - - private ZipFuncs ZipFile; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public ARProperties(Object parent, Object curobj) - { - // - // Required for Windows Form Designer support - // - _ParentObj = (VEO_Base) parent; - _CurObj = (VEO_Base) curobj; - VEO_Archive tmpArc = (VEO_Archive)curobj; - if (tmpArc.isnew == true) - isnew=true; - else - isnew=false; - - InitializeComponent(); - this.myPropertyGrid.SelectedObject=curobj; - strCurZipPath = _ParentObj._Location; - strProcSetDir = _ParentObj._Location; - // If new, combo box should have 'Full' - this.cmbType.Visible=false; - this.btnApply.Enabled=false; - glbCancel = false; - zipInCurProcSet = true; - if (isnew == true) - { - this.btnApply.Visible = false; - SetupNewFileName(); - ZipFile = new ZipFuncs(); - // Since this a new Zip File, don't assign ZipFile with the path/name, - // Title, or Comment. These values can be changed prior to the - // actual creation of the Zip file. - } - else - { - VEO_Archive arc = (VEO_Archive)curobj; - ZipFile = new ZipFuncs(arc._Location); - GetCommentInformation(); - this.cmbType.SelectedIndex = (int) arc._ArchiveType; - } - } - - private void SetupNewFileName() - { - int i=0; - StringBuilder newname = new StringBuilder(); - - VEO_Archive arc = (VEO_Archive) _CurObj; - // The old VE-PROMS logic would create SOURCE.ZIP for - // the first archive, then ARCH_xxx.ZIP for the rest. - // Now we will just create ARCH_xxx.ZIP - while(i==0 || arc.Exists(strCurZipPath + "\\" + newname.ToString())) - { - newname.Remove(0,newname.Length); - newname.Append("ARCH_"); - newname.Append(i.ToString("d3")); - newname.Append(".ZIP"); - i++; - } - strZipFileName = newname.ToString(); - _CurObj._Location = strCurZipPath + "\\" + strZipFileName; - _CurObj._Title = "New Archive " + newname.ToString(); - this.myPropertyGrid.SelectedObject=_CurObj; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ARProperties)); - this.myPropertyGrid = new System.Windows.Forms.PropertyGrid(); - this.cmbType = new System.Windows.Forms.ComboBox(); - this.lblType = new System.Windows.Forms.Label(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnApply = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // myPropertyGrid - // - this.myPropertyGrid.CommandsVisibleIfAvailable = true; - this.myPropertyGrid.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.myPropertyGrid.HelpVisible = false; - this.myPropertyGrid.LargeButtons = false; - this.myPropertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; - this.myPropertyGrid.Location = new System.Drawing.Point(0, 48); - this.myPropertyGrid.Name = "myPropertyGrid"; - this.myPropertyGrid.Size = new System.Drawing.Size(736, 112); - this.myPropertyGrid.TabIndex = 2; - this.myPropertyGrid.Text = "Properties"; - this.myPropertyGrid.ToolbarVisible = false; - this.myPropertyGrid.ViewBackColor = System.Drawing.SystemColors.Window; - this.myPropertyGrid.ViewForeColor = System.Drawing.SystemColors.WindowText; - this.myPropertyGrid.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.myPropertyGrid_PropertyValueChanged); - // - // cmbType - // - this.cmbType.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.cmbType.Items.AddRange(new object[] { - "Full", - "Partial"}); - this.cmbType.Location = new System.Drawing.Point(104, 0); - this.cmbType.Name = "cmbType"; - this.cmbType.Size = new System.Drawing.Size(208, 24); - this.cmbType.TabIndex = 3; - this.cmbType.SelectedIndexChanged += new System.EventHandler(this.cmbType_SelectedIndexChanged); - // - // lblType - // - this.lblType.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblType.Location = new System.Drawing.Point(0, 0); - this.lblType.Name = "lblType"; - this.lblType.Size = new System.Drawing.Size(96, 24); - this.lblType.TabIndex = 4; - this.lblType.Text = "Archive Type:"; - this.lblType.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // btnOK - // - this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnOK.Location = new System.Drawing.Point(432, 200); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(64, 24); - this.btnOK.TabIndex = 8; - this.btnOK.Text = "OK"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnCancel.Location = new System.Drawing.Point(512, 200); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(64, 24); - this.btnCancel.TabIndex = 9; - this.btnCancel.Text = "Cancel"; - this.btnCancel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnApply - // - this.btnApply.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnApply.Location = new System.Drawing.Point(592, 200); - this.btnApply.Name = "btnApply"; - this.btnApply.Size = new System.Drawing.Size(56, 24); - this.btnApply.TabIndex = 10; - this.btnApply.Text = "Apply"; - this.btnApply.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnApply.Click += new System.EventHandler(this.btnApply_Click); - // - // ARProperties - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.CausesValidation = false; - this.ClientSize = new System.Drawing.Size(736, 246); - this.Controls.Add(this.btnApply); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOK); - this.Controls.Add(this.lblType); - this.Controls.Add(this.cmbType); - this.Controls.Add(this.myPropertyGrid); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "ARProperties"; - this.Text = "Archive Properties"; - this.ResumeLayout(false); - - } - #endregion - - private void cmbType_SelectedIndexChanged(object sender, System.EventArgs e) - { - } - - // save was clicked, use the objects save methods. - private void btnOK_Click(object sender, System.EventArgs e) - { - btnApply_Click(sender,e); - if (hasInvalidEntry) - { - DialogResult = DialogResult.None; - return; // keep the dialog open - } - if (!glbCancel) - DialogResult=DialogResult.OK; - else - DialogResult=DialogResult.Cancel; - this.Close(); - } - - // Apply changes - private void btnApply_Click(object sender, System.EventArgs e) - { - bool success = true; - - if (!ValidatePropertyEntries()) // check the entry fields - { - return; // has invalid data in a property field - } - - if (isnew) - { - if(_ParentObj==null) - { - DialogResult=DialogResult.Cancel; - return; - } - // generate new zip file - success = GenerateArchiveFile(); - if (success) - { - // save the property values - success=_CurObj.Write(); - } - } - else // update existing ZipFile's Comment Field - { - success=_CurObj.Write(); - if (success) - success = AddCommentInformation(); - } - // if not successful with the archive, set the cancel - // flag so that a false tree item does not appear. - // Note that when archiving outside of the current directory, - // (for example to a floppy disk), success is set to false to - // prevent a false tree item. - glbCancel = !success; - - btnApply.Enabled=false; - } - - - private bool SelectProcsToArchive() - { - StringCollection SelectedFilesToArchive; - bool isfirst = true; - bool rtnval = false; - ProcedureSelectionList ProcList = new ProcedureSelectionList(); - vdb_Set vdbSet=new vdb_Set(strProcSetDir + "\\SET.DBF"); - // Loop thru the procset (process like a dataset) - DataTable tbl = vdbSet.DB_Data.Tables[0]; - foreach (DataRow row in tbl.Rows) - { - // skip the first one (it's always a "blank" record) - if (isfirst) - isfirst = false; - else - { - ProcList.Add(row); - } - } - - if (ProcList.ShowDialog() == DialogResult.OK) - { - StringBuilder tmpstr = new StringBuilder(); - string strZipPath = "\"" + strProcSetDir + "\\"; - // get list of procedures to archive - // Note that there is no file extension in this list of dBase files - SelectedFilesToArchive = ProcList.GetListOfSelectedProcs_Files(); - for(int j=0; j 0) - rtnval = true; - } - - return rtnval; - } - - - // This function generates a new zip file - private bool GenerateArchiveFile() - { - bool rtnval = true; - StringBuilder cmntTxt = new StringBuilder(); - VEO_Archive arc = (VEO_Archive) _CurObj; - this.glbCancel = false; - if (arc._ArchiveType == VEO_Base.ArchiveTypeOptions.Partial) - { - // get list of selected procedures to archive - rtnval = SelectProcsToArchive(); - } - else - { - // Archive entire procedure directory - strFilesToArchive = "\"" + strProcSetDir + "\\*.*\""; - } - - if (rtnval) - { - strZipFileExcludeList = "\"" + strProcSetDir + "\\Approved\\*.*\" \"" + strProcSetDir + "\\Temps\\*.*\" *.zip process.dat ?process.dat *.lck"; - // Setup DynaZip - - ZipFile.strZipPathAndFile = arc.Location; - ZipFile.strZipFileExcludeList = strZipFileExcludeList; - ZipFile.strFilesToArchive = strFilesToArchive; - ZipFile.strArcTitle = arc.Description; - ZipFile.strComment = arc.Comment; - ZipFile.ArchiveType = (int)arc._ArchiveType; - - this.Enabled = false; - rtnval = ZipFile.CreateNewZipFile(); - this.Enabled = true; - } - - return rtnval; - } - - private bool AddCommentInformation() - { - VEO_Archive arc = (VEO_Archive) _CurObj; - // add comment - ZipFile.strArcTitle = arc.Description; - ZipFile.ArchiveType = (int)arc._ArchiveType; - ZipFile.strComment = arc.Comment; - return ZipFile.AddZipCommentInformation(); - } - - private void GetCommentInformation() - { - this.glbCancel = false; - VEO_Archive arc = (VEO_Archive) _CurObj; - if (ZipFile.strArcTitle == null) - arc.Description = arc._Title; - else - arc.Description = ZipFile.strArcTitle; - arc.Comment = ZipFile.strComment; - if (ZipFile.ArchiveType == (int)VEO_Base.ArchiveTypeOptions.Full) - arc.ArchiveType = VEO_Base.ArchiveTypeOptions.Full; - else - arc.ArchiveType = VEO_Base.ArchiveTypeOptions.Partial; - arc.Write(); - return; - } - - private void myPropertyGrid_PropertyValueChanged(object s, System.Windows.Forms.PropertyValueChangedEventArgs e) - { - btnApply.Enabled = true; - } - - private void btnCancel_Click(object sender, System.EventArgs e) - { - this.glbCancel = true; - } - - /* - * Check the property fields for invalid entries - * If an invalid entry is found, display a message and - * return to the property dialog - */ - private bool ValidatePropertyEntries() - { - VEO_Archive arc = (VEO_Archive) _CurObj; - hasInvalidEntry = false; - - // Check the zip file path and filename - if (!IsAValidZipFileLocation()) - { - hasInvalidEntry = true; - return false; // data in fields are not valid - } - - if (zipInCurProcSet && (arc.Description == null || arc.Description.Equals(""))) - { - // put in a default title - arc.Description = "Archive: " + strZipFileName; - } - - return (true); // data in fields are valid - } - - /* - * Check the zip file name and path. - * Display message box to notify user of invalid entry. - * Assign local strArchive variables accordingly. - */ - private bool IsAValidZipFileLocation() - { - string strArchiveLocation; - string strCurDirSave; - - VEO_Archive arc = (VEO_Archive) _CurObj; - strArchiveLocation = arc._Location; - - // Check for a cleared out location field - if (arc._Location == null || arc._Location.Equals("")) - { - MessageBox.Show("Need to Enter the Archive Location and File Name","Archive Error"); - return false; - } - - string strTmp = strArchiveLocation.ToUpper(); - // Check for a zip extension - if (!strTmp.EndsWith(".ZIP")) - { - MessageBox.Show("Need to enter the Archive File Name","Archive Error"); - return false; - } - - // make sure the current working directory is the current procedure set - strCurDirSave = Directory.GetCurrentDirectory(); - Directory.SetCurrentDirectory(strProcSetDir); - - // Get the full path based on the user entry - strArchiveLocation = Path.GetFullPath(strArchiveLocation); - if (!strArchiveLocation.Equals(arc._Location)) - { - if (strArchiveLocation == null || strArchiveLocation.Equals("")) - { - MessageBox.Show("Invalid Archive File Name or File Path","Archive Error"); - // reset the current working directory - Directory.SetCurrentDirectory(strCurDirSave); - return false; - } - - arc._Location = strArchiveLocation; - } - - // parse out the file name - strZipFileName = Path.GetFileName(strArchiveLocation); - - // parse out the path - strCurZipPath = strArchiveLocation.Substring(0,strArchiveLocation.LastIndexOf(strZipFileName)-1); - - // If the zip file path is not the same as the current working directory - // then flag the fact we are creating a zip file outside the procedure directory. - zipInCurProcSet = Directory.Equals(Directory.GetCurrentDirectory(),strCurZipPath); - - // reset the current working directory - Directory.SetCurrentDirectory(strCurDirSave); - - return true; - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ARProperties.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ARProperties.resx deleted file mode 100644 index 7d57c36f..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ARProperties.resx +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - ARProperties - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AppConflict.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AppConflict.cs deleted file mode 100644 index 156ee900..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AppConflict.cs +++ /dev/null @@ -1,293 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: AppConflict.cs $ $Revision: 4 $ - * $Author: Kathy $ $Date: 8/16/05 2:55p $ - * - * $History: AppConflict.cs $ - * - * ***************** Version 4 ***************** - * User: Kathy Date: 8/16/05 Time: 2:55p - * Updated in $/LibSource/VEObject - * B2005-030: error if missing ndx - * - * ***************** Version 3 ***************** - * User: Jsj Date: 6/02/05 Time: 11:32a - * Updated in $/LibSource/VEObject - * fix for approving with conditional ROs - * - * ***************** Version 2 ***************** - * User: Kathy Date: 3/22/05 Time: 10:01a - * Updated in $/LibSource/VEObject - * Add procnum to transition message - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:50p - * Created in $/LibSource/VEObject - * Approval - *********************************************************************************************/ -using System; -using System.Text; -using System.Collections.Specialized; - -namespace VEObject -{ - /// - /// Summary description for AppConflict. - /// - - public enum AppConflictTypes - { - RO=0, Trans=1, LibDoc=2 - }; - - public class AppConflict - { - public AppConflictTypes CType; - public string ProcNum; - public string SeqNum; - public VEO_DummySet DummySet; - - public AppConflict() - { - - } - public string GetLocStr(string pnum, string snum) - { - string locstr=null; - string secnumtitle = DummySet.GetSectionNumAndTitle(pnum,snum); - if (snum.Length>1) - { - char tmp = System.Convert.ToChar(snum.Substring(1,1)); - string stpnum = System.Convert.ToString(tmp-'0'); - locstr = secnumtitle + " Step " + stpnum; - } - else - locstr = secnumtitle; - return locstr; - } - public virtual StringCollection GetStrForDlg() - { - return null; - } - public virtual string GetStrForEdit() - { - return null; - } - } - - public class AppROConflict : AppConflict - { - public string ROID; - public string AccID; - public bool IsImage; - public string Val1, Val2; - - public AppROConflict(VEO_DummySet ds, string rid, string pnum, string snum, bool image, string v1, string v2) - { - CType = AppConflictTypes.RO; - ROID = rid; - DummySet = ds; - ProcNum = pnum; - SeqNum = snum; - IsImage=image; - Val1=v1; //if image, this will contain image file path - Val2=v2; - if (Val1==null) Val1=" not defined "; - if (Val2==null) Val2=" not defined "; - } - - public override string GetStrForEdit() - { - // For ROs: - // reference line is trimmed to 100 chars & consists of... - // 12 chars - sequence number where RO is used - // 20 chars - procedure number where RO is used - // 88 chars - menu item text, i.e. what's shown on dialog. - - StringBuilder sb = new StringBuilder(125); - sb.Append(SeqNum.PadRight(12,' ')); - sb.Append(ProcNum.PadRight(20,' ')); - string locstr = GetLocStr(ProcNum,SeqNum); - string tmp=null; - if (IsImage) - tmp = "RO: Image File Difference: " + Val1.Replace("\n"," ") + " used in " + locstr; - else - tmp = "RO: New Value = " + Val1.Replace("\n"," ") + " Old Value = " + Val2.Replace("\n"," ") + " used in " + locstr; - int len = tmp.Length; - if (len==88) - sb.Append(tmp); - else if (len > 88) - sb.Append(tmp.Substring(0,88)); - else - sb.Append(tmp.PadRight(88,' ')); - return sb.ToString(); - } - - public override StringCollection GetStrForDlg() - { - StringCollection retstrs = new StringCollection(); - StringBuilder sb = new StringBuilder(); - string retstr; - string locstr = GetLocStr(ProcNum,SeqNum); - if (IsImage) - { - sb.Append(" RO Image File Difference At: "); - sb.Append(locstr); - retstrs.Add(sb.ToString()); - sb.Remove(0,sb.Length); - sb.Append(" RO Value: "); - sb.Append(Val1); - retstrs.Add(sb.ToString()); - } - else - { - int nlptr = -1; - int idx = 0; - sb.Append(" RO Difference At: "); - sb.Append(locstr); - retstrs.Add(sb.ToString()); - sb.Remove(0,sb.Length); - sb.Append(" New Value = "); - nlptr = Val1.IndexOf("\n"); - while (nlptr > -1) - { - sb.Append(Val1.Substring(idx,nlptr-idx)); - retstrs.Add(sb.ToString()); - sb.Remove(0,sb.Length); - idx = nlptr+1; - nlptr = Val1.IndexOf("\n",idx); - sb.Append(" "); - } - sb.Append(Val1.Substring(idx)); - retstrs.Add(sb.ToString()); - sb.Remove(0,sb.Length); - sb.Append(" Old Value = "); - idx = 0; - nlptr = Val2.IndexOf("\n"); - while (nlptr > -1) - { - sb.Append(Val2.Substring(idx,nlptr-idx)); - retstrs.Add(sb.ToString()); - sb.Remove(0,sb.Length); - idx = nlptr+1; - nlptr = Val2.IndexOf("\n",idx); - sb.Append(" "); - } - sb.Append(Val2.Substring(idx)); - retstrs.Add(sb.ToString()); - } - return retstrs; - } - } - - public class AppTransConflict : AppConflict - { - public string ToNum; - public string ToSeq; - public string OldTo; - - public AppTransConflict(VEO_DummySet ds, string pnum, string snum, string tpnum, string tsnum, string old) - { - CType = AppConflictTypes.Trans; - DummySet = ds; - ProcNum = pnum; - SeqNum = snum; - ToNum=tpnum; - ToSeq=tsnum; - OldTo = old; - } - - public override StringCollection GetStrForDlg() - { - StringCollection retstrs = new StringCollection(); - StringBuilder sb = new StringBuilder(); - sb.Append(" Transition: From = "); - sb.Append(ProcNum); - sb.Append(" "); - sb.Append(GetLocStr(ProcNum,SeqNum)); - retstrs.Add(sb.ToString()); - sb.Remove(0,sb.Length); - sb.Append(" To = "); - sb.Append(ToNum); - sb.Append(" "); - sb.Append(GetLocStr(ToNum,ToSeq)); - retstrs.Add(sb.ToString()); - return retstrs; - } - - public override string GetStrForEdit() - { - // For Trans: - // reference line is trimmed to 100 chars & consists of... - // 12 chars - sequence number where Tran is used - // 20 chars - procedure number where Tran is used - // 88 chars - menu item text, i.e. what's shown on dialog. - - StringBuilder sb = new StringBuilder(125); - sb.Append(SeqNum.PadRight(12,' ')); - sb.Append(ProcNum.PadRight(20,' ')); - string tmp = "Transition: To = " + " " + GetLocStr(ToNum,ToSeq); - - int len = tmp.Length; - if (len==88) - sb.Append(tmp); - else if (len > 88) - sb.Append(tmp.Substring(0,88)); - else - sb.Append(tmp.PadRight(88,' ')); - return sb.ToString(); - } - } - - public class AppLibDocConflict : AppConflict - { - public string LibDocName; - public AppLibDocConflict(VEO_DummySet ds, string pnum, string seq, string Lname) - { - CType = AppConflictTypes.LibDoc; - DummySet = ds; - ProcNum = pnum; - SeqNum = seq; - LibDocName = Lname; - } - - - public override StringCollection GetStrForDlg() - { - StringCollection retstrs = new StringCollection(); - StringBuilder sb = new StringBuilder(); - sb.Append(" Library Doc = "); - sb.Append(LibDocName); - sb.Append(" used in "); - sb.Append(GetLocStr(ProcNum,SeqNum)); - retstrs.Add(sb.ToString()); - return retstrs; - } - - public override string GetStrForEdit() - { - // For libdoc: - // reference line is trimmed to 100 chars & consists of... - // 12 chars - sequence number where LibDoc is used - // 20 chars - procedure number where LibDoc is used - // 88 chars - menu item text, i.e. what's shown on dialog. - - StringBuilder sb = new StringBuilder(125); - sb.Append(SeqNum.PadRight(12,' ')); - sb.Append(ProcNum.PadRight(20,' ')); - string tmp = "Library Document: File Name = " + LibDocName + " used in " + GetLocStr(ProcNum,SeqNum); - - int len = tmp.Length; - if (len==88) - sb.Append(tmp); - else if (len > 88) - sb.Append(tmp.Substring(0,88)); - else - sb.Append(tmp.PadRight(88,' ')); - return sb.ToString(); - } - } - -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AppIndItm.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AppIndItm.cs deleted file mode 100644 index d9482117..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AppIndItm.cs +++ /dev/null @@ -1,76 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: AppIndItm.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 3/08/05 1:50p $ - * - * $History: AppIndItm.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:50p - * Created in $/LibSource/VEObject - * Approval - *********************************************************************************************/ -using System; -using System.Collections; - -namespace VEObject -{ - /// - /// Summary description for AppIndItm. - /// - public class AppIndItem - { - public VEO_Proc Proc; - public ArrayList ConflictList; - public bool Checked; - - public AppIndItem(VEO_Proc prc) - { - Checked=false; - Proc = prc; - ConflictList = new ArrayList(); - } - - public void AddConflict(AppConflict aconflct) - { - ConflictList.Add(aconflct); - } - - - } - - public class ModLibDoc - { - public string LibFile; - public int status; - public int DocPages; - - public ModLibDoc(string file, int stat) - { - LibFile = file; - status=stat; - DocPages=0; - } - - } - public class ModRO - { - public string roid; - public bool IsImage; - public string Val1; - public string Val2; - public bool IsUsed; - - public ModRO(string r, bool im, string v1, string v2) - { - roid = r; - IsImage = im; - Val1 = v1; - Val2 = v2; - IsUsed=false; - } - } - -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ApproveDlg.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ApproveDlg.cs deleted file mode 100644 index bdf7742b..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ApproveDlg.cs +++ /dev/null @@ -1,235 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ApproveDlg.cs $ $Revision: 2 $ - * $Author: Jsj $ $Date: 5/17/05 11:55a $ - * - * $History: ApproveDlg.cs $ - * - * ***************** Version 2 ***************** - * User: Jsj Date: 5/17/05 Time: 11:55a - * Updated in $/LibSource/VEObject - * cleanup - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:50p - * Created in $/LibSource/VEObject - * Approval - *********************************************************************************************/ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using Utils; - -namespace VEObject -{ - /// - /// Summary description for ApproveDlg. - /// - public class ApproveDlg : System.Windows.Forms.Form - { - private System.Windows.Forms.TextBox tbApprovalDate; - private System.Windows.Forms.Label lblDate; - private System.Windows.Forms.GroupBox grpCB; - private System.Windows.Forms.RadioButton rbWDKeep; - private System.Windows.Forms.RadioButton rbWDRemove; - private System.Windows.Forms.CheckBox cbZipApp; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.CheckBox cbTmpChg; - - public ApprovalOptions ApprovalOptions - { - get - { - ApprovalOptions ao = new ApprovalOptions(); - ao.ApproveDate = this.tbApprovalDate.Text; - ao.ChangeBarsWD = this.rbWDKeep.Checked; - ao.DoZip = this.cbZipApp.Checked; - return ao; - } - } - - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public ApproveDlg() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - this.tbApprovalDate.Text = DTI.MakeDate(DTI.DateTimeInit,false,false); - this.rbWDRemove.Checked = true; - this.cbZipApp.Checked = true; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ApproveDlg)); - this.tbApprovalDate = new System.Windows.Forms.TextBox(); - this.lblDate = new System.Windows.Forms.Label(); - this.grpCB = new System.Windows.Forms.GroupBox(); - this.rbWDRemove = new System.Windows.Forms.RadioButton(); - this.rbWDKeep = new System.Windows.Forms.RadioButton(); - this.cbZipApp = new System.Windows.Forms.CheckBox(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.cbTmpChg = new System.Windows.Forms.CheckBox(); - this.grpCB.SuspendLayout(); - this.SuspendLayout(); - // - // tbApprovalDate - // - this.tbApprovalDate.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.tbApprovalDate.Location = new System.Drawing.Point(221, 9); - this.tbApprovalDate.Name = "tbApprovalDate"; - this.tbApprovalDate.Size = new System.Drawing.Size(249, 24); - this.tbApprovalDate.TabIndex = 3; - this.tbApprovalDate.Text = ""; - // - // lblDate - // - this.lblDate.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblDate.Location = new System.Drawing.Point(19, 18); - this.lblDate.Name = "lblDate"; - this.lblDate.Size = new System.Drawing.Size(183, 19); - this.lblDate.TabIndex = 2; - this.lblDate.Text = "Approval Date:"; - // - // grpCB - // - this.grpCB.Controls.Add(this.rbWDRemove); - this.grpCB.Controls.Add(this.rbWDKeep); - this.grpCB.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.grpCB.Location = new System.Drawing.Point(10, 65); - this.grpCB.Name = "grpCB"; - this.grpCB.Size = new System.Drawing.Size(268, 64); - this.grpCB.TabIndex = 4; - this.grpCB.TabStop = false; - this.grpCB.Text = "Change Bars In Working Draft"; - // - // rbWDRemove - // - this.rbWDRemove.Location = new System.Drawing.Point(154, 28); - this.rbWDRemove.Name = "rbWDRemove"; - this.rbWDRemove.Size = new System.Drawing.Size(86, 27); - this.rbWDRemove.TabIndex = 1; - this.rbWDRemove.Text = "Remove"; - // - // rbWDKeep - // - this.rbWDKeep.Location = new System.Drawing.Point(29, 28); - this.rbWDKeep.Name = "rbWDKeep"; - this.rbWDKeep.Size = new System.Drawing.Size(77, 27); - this.rbWDKeep.TabIndex = 0; - this.rbWDKeep.Text = "Keep"; - // - // cbZipApp - // - this.cbZipApp.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.cbZipApp.Location = new System.Drawing.Point(19, 194); - this.cbZipApp.Name = "cbZipApp"; - this.cbZipApp.Size = new System.Drawing.Size(269, 28); - this.cbZipApp.TabIndex = 6; - this.cbZipApp.Text = "Archive Data Before Approval?"; - // - // btnOK - // - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnOK.Location = new System.Drawing.Point(96, 240); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(182, 28); - this.btnOK.TabIndex = 7; - this.btnOK.Text = "Continue with Approval"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnCancel.Location = new System.Drawing.Point(307, 240); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(183, 28); - this.btnCancel.TabIndex = 8; - this.btnCancel.Text = "Cancel Approval"; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // cbTmpChg - // - this.cbTmpChg.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.cbTmpChg.Location = new System.Drawing.Point(19, 157); - this.cbTmpChg.Name = "cbTmpChg"; - this.cbTmpChg.Size = new System.Drawing.Size(317, 28); - this.cbTmpChg.TabIndex = 9; - this.cbTmpChg.Text = "Create A Temporary Change Version?"; - // - // ApproveDlg - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(604, 293); - this.Controls.Add(this.cbTmpChg); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOK); - this.Controls.Add(this.cbZipApp); - this.Controls.Add(this.grpCB); - this.Controls.Add(this.tbApprovalDate); - this.Controls.Add(this.lblDate); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ApproveDlg"; - this.Text = "Approval Properties"; - this.grpCB.ResumeLayout(false); - this.ResumeLayout(false); - - } - #endregion - - private void btnOK_Click(object sender, System.EventArgs e) - { - - } - - private void btnCancel_Click(object sender, System.EventArgs e) - { - - } - } - public class ApprovalOptions - { - //public string ApproveNameRev; - public string Type; - public string ApproveDate; - public bool ChangeBarsWD; - public bool ChangeBarsApp; - public bool DoZip; - } - -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ApproveDlg.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ApproveDlg.resx deleted file mode 100644 index 12b78b5c..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ApproveDlg.resx +++ /dev/null @@ -1,237 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - Private - - - 8, 8 - - - True - - - False - - - True - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - ApproveDlg - - - True - - - 80 - - - True - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ApproveSelDlg.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ApproveSelDlg.cs deleted file mode 100644 index f448bfa7..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ApproveSelDlg.cs +++ /dev/null @@ -1,615 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ApproveSelDlg.cs $ $Revision: 9 $ - * $Author: Jsj $ $Date: 4/16/07 12:05p $ - * - * $History: ApproveSelDlg.cs $ - * - * ***************** Version 9 ***************** - * User: Jsj Date: 4/16/07 Time: 12:05p - * Updated in $/LibSource/VEObject - * Clear Button needed to clear flag in Modified Lib Doc List - * - * ***************** Version 8 ***************** - * User: Jsj Date: 7/21/06 Time: 2:57p - * Updated in $/LibSource/VEObject - * remove duplicates from dependency list - * - * ***************** Version 7 ***************** - * User: Kathy Date: 6/21/05 Time: 7:25a - * Updated in $/LibSource/VEObject - * cleanup/bug fixes - * - * ***************** Version 6 ***************** - * User: Jsj Date: 6/02/05 Time: 11:33a - * Updated in $/LibSource/VEObject - * fix for approving with conditional ROs - * - * ***************** Version 5 ***************** - * User: Jsj Date: 5/17/05 Time: 11:56a - * Updated in $/LibSource/VEObject - * cleanup - * - * ***************** Version 4 ***************** - * User: Kathy Date: 4/21/05 Time: 10:21a - * Updated in $/LibSource/VEObject - * print all lines for long line in report - * - * ***************** Version 3 ***************** - * User: Kathy Date: 4/12/05 Time: 1:01p - * Updated in $/LibSource/VEObject - * - * ***************** Version 2 ***************** - * User: Kathy Date: 3/22/05 Time: 10:02a - * Updated in $/LibSource/VEObject - * log file & edit conflict - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:50p - * Created in $/LibSource/VEObject - * Approval - *********************************************************************************************/ -using System; -using System.Drawing; -using System.Drawing.Printing; -using System.Collections; -using System.Collections.Specialized; -using System.ComponentModel; -using System.Windows.Forms; -using System.IO; -using VlnStatus; -using Utils; - -namespace VEObject -{ - /// - /// Summary description for ApproveSelDlg. - /// - public class ApproveSelDlg : System.Windows.Forms.Form - { - private System.Windows.Forms.ListBox listAvail; - private System.Windows.Forms.ListBox listSelect; - private System.Windows.Forms.Label lblAvail; - private System.Windows.Forms.Label lblSelected; - private System.Windows.Forms.Button btnSelect; - private System.Windows.Forms.Button btnClear; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnApprove; - private System.Windows.Forms.Button btnResolve; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnRpt; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - private VEO_DummySet CurDSet; - private ArrayList AppItems; - private ArrayList ModROs; - private System.Windows.Forms.ListBox listDepend; - private ArrayList ModLibDocs; - - public ApproveSelDlg(ArrayList items, VEO_ProcSet curset, ArrayList mros, ArrayList mlibdocs) - { - InitializeComponent(); - - // procedures are stored off dummyset, which is children[1] always - CurDSet = (VEO_DummySet) curset.Children[1]; - - AppItems = items; - ModROs = mros; - ModLibDocs = mlibdocs; - - SetUpAvailSelectLists(); - VlnStatusMessage StatMsgWin = new VlnStatusMessage("Looking for Dependencies..."); - StatMsgWin.StatusMessage = "Populating Dependency List"; - PopulateDependList(); - PopulateLogFile(); - StatMsgWin.Dispose(); - } - - private void SetUpAvailSelectLists() - { - // add the list of procs to the selected list and - // see if there are any more selections made. - foreach (object obj in AppItems) - { - AppIndItem apitm = (AppIndItem) obj; - string UnitSpecPrcNum = ROFST_FILE.ROProcessTools.UnitSpecific(apitm.Proc._Prcnum,0,0,CurDSet.LargestNumber); - listSelect.Items.Add(UnitSpecPrcNum); - } - int cnt=0; - while (cnt < CurDSet.Children.Count) - { - VEO_Proc prc = (VEO_Proc) CurDSet.Children[cnt]; - string pnum = ROFST_FILE.ROProcessTools.UnitSpecific(prc._Prcnum,0,0,CurDSet.LargestNumber); - if (!listSelect.Items.Contains(pnum)) listAvail.Items.Add(pnum); - cnt++; - } - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(ApproveSelDlg)); - this.listAvail = new System.Windows.Forms.ListBox(); - this.listSelect = new System.Windows.Forms.ListBox(); - this.lblAvail = new System.Windows.Forms.Label(); - this.lblSelected = new System.Windows.Forms.Label(); - this.btnSelect = new System.Windows.Forms.Button(); - this.btnClear = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.btnApprove = new System.Windows.Forms.Button(); - this.btnResolve = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnRpt = new System.Windows.Forms.Button(); - this.listDepend = new System.Windows.Forms.ListBox(); - this.SuspendLayout(); - // - // listAvail - // - this.listAvail.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.listAvail.ItemHeight = 20; - this.listAvail.Location = new System.Drawing.Point(29, 28); - this.listAvail.Name = "listAvail"; - this.listAvail.Size = new System.Drawing.Size(345, 184); - this.listAvail.TabIndex = 0; - // - // listSelect - // - this.listSelect.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.listSelect.ItemHeight = 20; - this.listSelect.Location = new System.Drawing.Point(509, 28); - this.listSelect.Name = "listSelect"; - this.listSelect.Size = new System.Drawing.Size(355, 184); - this.listSelect.TabIndex = 1; - // - // lblAvail - // - this.lblAvail.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblAvail.Location = new System.Drawing.Point(29, 8); - this.lblAvail.Name = "lblAvail"; - this.lblAvail.Size = new System.Drawing.Size(221, 16); - this.lblAvail.TabIndex = 2; - this.lblAvail.Text = "Available Procedures"; - this.lblAvail.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // lblSelected - // - this.lblSelected.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblSelected.Location = new System.Drawing.Point(509, 8); - this.lblSelected.Name = "lblSelected"; - this.lblSelected.Size = new System.Drawing.Size(249, 16); - this.lblSelected.TabIndex = 3; - this.lblSelected.Text = "Selected Procedures"; - this.lblSelected.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // btnSelect - // - this.btnSelect.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnSelect.Location = new System.Drawing.Point(384, 32); - this.btnSelect.Name = "btnSelect"; - this.btnSelect.Size = new System.Drawing.Size(120, 40); - this.btnSelect.TabIndex = 4; - this.btnSelect.Text = "Select"; - this.btnSelect.Click += new System.EventHandler(this.btnSelect_Click); - // - // btnClear - // - this.btnClear.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnClear.Location = new System.Drawing.Point(384, 96); - this.btnClear.Name = "btnClear"; - this.btnClear.Size = new System.Drawing.Size(120, 40); - this.btnClear.TabIndex = 5; - this.btnClear.Text = "Clear"; - this.btnClear.Click += new System.EventHandler(this.btnClear_Click); - // - // label1 - // - this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.label1.Location = new System.Drawing.Point(29, 216); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(187, 18); - this.label1.TabIndex = 7; - this.label1.Text = "Dependencies Report"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // btnApprove - // - this.btnApprove.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnApprove.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnApprove.Location = new System.Drawing.Point(56, 616); - this.btnApprove.Name = "btnApprove"; - this.btnApprove.Size = new System.Drawing.Size(216, 32); - this.btnApprove.TabIndex = 8; - this.btnApprove.Text = "Continue With Approval"; - // - // btnResolve - // - this.btnResolve.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnResolve.Location = new System.Drawing.Point(360, 616); - this.btnResolve.Name = "btnResolve"; - this.btnResolve.Size = new System.Drawing.Size(200, 32); - this.btnResolve.TabIndex = 9; - this.btnResolve.Text = "Edit Dependencies"; - this.btnResolve.Click += new System.EventHandler(this.btnResolve_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnCancel.Location = new System.Drawing.Point(648, 616); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(192, 32); - this.btnCancel.TabIndex = 10; - this.btnCancel.Text = "Cancel"; - // - // btnRpt - // - this.btnRpt.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnRpt.Location = new System.Drawing.Point(384, 160); - this.btnRpt.Name = "btnRpt"; - this.btnRpt.Size = new System.Drawing.Size(120, 46); - this.btnRpt.TabIndex = 11; - this.btnRpt.Text = "Print Report"; - this.btnRpt.Click += new System.EventHandler(this.btnRpt_Click); - // - // listDepend - // - this.listDepend.Font = new System.Drawing.Font("Courier New", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.listDepend.HorizontalScrollbar = true; - this.listDepend.ItemHeight = 16; - this.listDepend.Location = new System.Drawing.Point(29, 240); - this.listDepend.Name = "listDepend"; - this.listDepend.SelectionMode = System.Windows.Forms.SelectionMode.None; - this.listDepend.Size = new System.Drawing.Size(835, 356); - this.listDepend.TabIndex = 12; - // - // ApproveSelDlg - // - this.AutoScale = false; - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.AutoScroll = true; - this.ClientSize = new System.Drawing.Size(871, 662); - this.Controls.Add(this.listDepend); - this.Controls.Add(this.btnRpt); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnResolve); - this.Controls.Add(this.btnApprove); - this.Controls.Add(this.label1); - this.Controls.Add(this.btnClear); - this.Controls.Add(this.btnSelect); - this.Controls.Add(this.lblSelected); - this.Controls.Add(this.lblAvail); - this.Controls.Add(this.listSelect); - this.Controls.Add(this.listAvail); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ApproveSelDlg"; - this.Text = "Approve Selected Procedures"; - this.ResumeLayout(false); - - } - #endregion - - // if user presses Clear button, clear the selected items list, and - // reset the available to all in procedure set. - private void btnClear_Click(object sender, System.EventArgs e) - { - // reset both lists and will reset available from procedures in set. - listSelect.Items.Clear(); - listAvail.Items.Clear(); - AppItems.Clear(); // no procedures to approve. - SetUpAvailSelectLists(); - listDepend.Items.Clear(); - // Bug Fix: B2007-010 - // If you don't clear the DocPages, then if you re-select - // the same procedure to approve, it will think that - // the library document check was already done - thus - // no depenencies the second time around. - foreach (ModLibDoc ml in ModLibDocs) ml.DocPages = 0; - } - - private bool PopulateEditList() - { - bool hascon = false; - if (AppItems.Count<=0) - { - MessageBox.Show("No conflicts exist","Approve Selected"); - return hascon; - } - VlnStatusMessage StatMsgWin = new VlnStatusMessage("Conflict Resolution..."); - StatMsgWin.StatusMessage = "Populating Edit List"; - - // Create the reference file - use apprcon as filename - // get first item in list & use this as the procedure number. - AppIndItem apitm = (AppIndItem) AppItems[0]; - string pnum = apitm.Proc._Prcnum; - RefList rl = new RefList(pnum,"apprcon",CurDSet.usrRunTime); - rl.Create(); - ArrayList tarry = new ArrayList(); - foreach (object obj in AppItems) - { - apitm = (AppIndItem) obj; - foreach (AppConflict ac in apitm.ConflictList) - { - hascon = true; - string strForEdit; - strForEdit = ac.GetStrForEdit(); - if (!tarry.Contains(strForEdit)) - { - rl.WriteRefLine(strForEdit); - tarry.Add(strForEdit); - } -// rl.WriteRefLine(ac.GetStrForEdit()); - } - } - rl.WriteTotalNumRefs(); - rl.CloseFile(); - StatMsgWin.Dispose(); - if (!hascon) - { - MessageBox.Show("No conflicts exist - cannot edit.","Approve Selected"); - apitm = (AppIndItem) AppItems[0]; - // note that if the following is entered as a single string (rather than - // two strings concatenated) the argument passing changes the string and - // exeadjust does not work correctly - keep as two separate strings. - string fl = apitm.Proc.usrRunTime.ExeAdjust("\xE7" + "apprcon"); - if (File.Exists(fl))File.Delete(fl); - return false; - } - return true; - } - - private void PopulateDependList() - { - listDepend.Items.Clear(); - bool doblank = false; - foreach (object obj in AppItems) - { - AppIndItem apitm = (AppIndItem) obj; - if (doblank) // don't add a blank line the first time. - listDepend.Items.Add(" "); - else - doblank=true; - - listDepend.Items.Add("Dependencies in : " + ROFST_FILE.ROProcessTools.UnitSpecific(apitm.Proc._Prcnum,0,0,CurDSet.LargestNumber)); - if (apitm.ConflictList.Count==0) - listDepend.Items.Add(" None"); - else - { - foreach (AppConflict ac in apitm.ConflictList) - { - StringCollection sc = ac.GetStrForDlg(); - foreach (string tmpstr in sc) - { - listDepend.Items.Add(tmpstr); - } -// listDepend.Items.Add(ac.GetStrForDlg()); - } - } - } - } - private void PopulateLogFile() - { - using (StreamWriter sw = new StreamWriter("Approval.log", true)) - { - sw.Write("APPROVE SELECTED: Conflicts found on "); - sw.Write(DateTime.Now); - sw.WriteLine(" performed by " + DTI.Initials); - foreach (object obj in AppItems) - { - AppIndItem apitm = (AppIndItem) obj; - sw.WriteLine(" Dependencies in : " + ROFST_FILE.ROProcessTools.UnitSpecific(apitm.Proc._Prcnum,0,0,CurDSet.LargestNumber)); - if (apitm.ConflictList.Count==0) - sw.WriteLine(" None"); - else - { - foreach (AppConflict ac in apitm.ConflictList) - { - sw.WriteLine(ac.GetStrForDlg()); - } - } - sw.WriteLine(" "); - } - sw.WriteLine(" "); - } - } - - private void btnSelect_Click(object sender, System.EventArgs e) - { - if (listAvail.SelectedIndex<0) - { - MessageBox.Show("You must select an item in the list."); - return; - } - string prc_sel = (string) listAvail.Items[listAvail.SelectedIndex]; - VEO_ProcSet ps = (VEO_ProcSet) CurDSet.parentObj; - - // find the proc object & add it to the arraylist of procedures to process. Then - // do the individual processing on it. - foreach (Object obj in CurDSet.Children) - { - VEO_Proc prc = (VEO_Proc) obj; - string tst = ROFST_FILE.ROProcessTools.UnitSpecific(prc._Prcnum,0,0,CurDSet.LargestNumber); - if (tst==prc_sel) - { - AppIndItem aii= new AppIndItem(prc); - AppItems.Add(aii); - ps.ProcessInd(AppItems, AppItems.Count-1, ModROs, ModLibDocs); - break; - } - } - int indx=0; - VlnStatusMessage StatMsgWin = null; - while (indx>=0) - { - - AppIndItem CurItem = (AppIndItem) AppItems[indx]; - if (!CurItem.Checked) - { - if (StatMsgWin==null)StatMsgWin = new VlnStatusMessage("Looking for Dependencies..."); - StatMsgWin.StatusMessage = "Checking " + CurItem.Proc._Prcnum; - ps.ProcessInd(AppItems, indx, ModROs, ModLibDocs); - CurItem.Checked=true; - } - indx = -1; - for (int i=0;iev.MarginBounds.Width&&line.Length>85) - { - // going backwards from 85 chars, find a space to use as the line - // breaking point. - int indx = line.LastIndexOf(" ",84,85); - string sline = line.Substring(0,indx); - yPos = topMargin + (count * printFont.GetHeight(ev.Graphics)); - ev.Graphics.DrawString (sline, printFont, Brushes.Black, - leftMargin, yPos, new StringFormat()); - count++; - line = " " + line.Substring(indx,line.Length-indx); - } - yPos = topMargin + (count * printFont.GetHeight(ev.Graphics)); - ev.Graphics.DrawString (line, printFont, Brushes.Black, - leftMargin, yPos, new StringFormat()); - count++; - CurLine++; - } - - // If more lines exist, print another page. - if (CurLine - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - ApproveSelDlg - - - True - - - 80 - - - True - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Archive.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Archive.cs deleted file mode 100644 index 47be5ac2..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Archive.cs +++ /dev/null @@ -1,406 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: Archive.cs $ $Revision: 3 $ - * $Author: Kathy $ $Date: 1/31/05 11:05a $ - * - * $History: Archive.cs $ - * - * ***************** Version 3 ***************** - * User: Kathy Date: 1/31/05 Time: 11:05a - * Updated in $/LibSource/VEObject - * Fix B2005-005 - this just fixed empty icon usage - * - * ***************** Version 2 ***************** - * User: Kathy Date: 1/24/05 Time: 2:45p - * Updated in $/LibSource/VEObject - * B2005-004 fixes - icon clean-up - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:52a - * Created in $/LibSource/VEObject - *********************************************************************************************/ - -using System; -using System.Windows.Forms; -using System.Windows.Forms.Design; -using System.ComponentModel; -using System.IO; -using System.Text; -using Utils; -using System.Collections.Specialized; - -namespace VEObject -{ - /// - /// Archive Object. - /// - public class VEO_Archive: VEO_Base - { - public bool isnew; - - // These three strings are stored in the Zip file's - // comment field - private String tmpArchiveTitle; - private String _Comment; - public ArchiveTypeOptions _ArchiveType; - - private String tmpComment; - - private bool _ReadOnly; - private bool oldReadOnly; - private bool NeedToGetReadOnly; - - private bool changeReadOnly; - private bool changeComment; - private bool changeArchiveTitle; - - public VEO_Archive(string ipath, VEO_DummyZip dz) - { - iconStates = new int[5] {0,0,0,0,0}; - _Location = ipath; // full path to the Zip file - VEObjectType = (int)VEObjectTypesDefs.Archive; - changeReadOnly = false; - changeComment = false; - changeArchiveTitle = false; - NeedToGetReadOnly = true; - isnew = IsThisANewArchive(ipath); - if (isnew) - { - _Title = "New Archive"; - _Comment = "Created: " + System.DateTime.Now.ToString(); - } - else // get the title and comment from the Zip file - { - GetInfoFromZipComment(); - } - LoadLockInfo(); - icon = iconStates[(int)Lock.LockStatus]; - parentObj = dz; - usrRunTime = dz.usrRunTime; - } - - // Read in the Title, Archive Type, and Comment from the Zip file's - // comment field. - private void GetInfoFromZipComment() - { - string tmpstr; - ZipFuncs ZipInfo = new ZipFuncs(_Location); - // just opening the zip file like this will read the zip's comment field - if (ZipInfo.strArcTitle != null) - tmpstr = ZipInfo.strArcTitle.Trim(); - else - tmpstr = ""; - // if the title is blank, then use the zip file name as the title - if (tmpstr.Length == 0) - this._Title = _Location.Substring(_Location.LastIndexOf("\\")+1); - else - this._Title = tmpstr; - _Comment = ZipInfo.strComment; - if (ZipInfo.ArchiveType == (int)VEO_Base.ArchiveTypeOptions.Full) - _ArchiveType = VEO_Base.ArchiveTypeOptions.Full; - else - _ArchiveType = VEO_Base.ArchiveTypeOptions.Partial; - } - - private bool IsThisANewArchive(string arcPath) - { - string tmpstr = arcPath.ToUpper(); - return (!tmpstr.EndsWith(".ZIP") || !File.Exists(tmpstr)); - } - - private string ParseOutZipPath() - { - string zpath = _Location.Substring(0,_Location.LastIndexOf("\\")); - return zpath; - } - - // Gets and Sets for the Property Page - [Description("Location"),Category("Archive"),ReadOnly(true)] - public string Location - { - get{return _Location;} - - //note: we don't allow them to change the zip file name or path. - } - - - [Description("Archive Title"),Category("Archive")]public string Description - { - get - { - if (!changeArchiveTitle) - return _Title; - else - return tmpArchiveTitle; - } - set - { - changeArchiveTitle = true; - tmpArchiveTitle = value; - } - } - - [Description("Archive Type"),Category("Archive"),ReadOnly(true)]public ArchiveTypeOptions ArchiveType - { - get - { - return _ArchiveType; - } - set - { - _ArchiveType=value; - } - } - - [Description("Comment"),Category("Archive")]public string Comment - { get - { - if (!changeComment) - return _Comment; - else - return tmpComment; - } - set - { - changeComment = true; - tmpComment = value; - } - } - - [Description("ReadOnly"),Category("Archive")]public bool ReadOnlyArchiveFile - { - get - { - if (!changeReadOnly && NeedToGetReadOnly) - { - FileAttributes attrib = File.GetAttributes(_Location); - _ReadOnly = (attrib & FileAttributes.ReadOnly) == FileAttributes.ReadOnly; - NeedToGetReadOnly = false; - } - return _ReadOnly; - } - set - { - if (!changeReadOnly) // only save previous value once - oldReadOnly = _ReadOnly; - changeReadOnly = true; - _ReadOnly = value; - } - } - - // When the Save Button is pressed on the Property page, this function - // is called. - public override bool Write() - { - if (changeReadOnly) - { - changeReadOnly = false; - NeedToGetReadOnly = true; - FileAttributes attrib = File.GetAttributes(_Location); - if (_ReadOnly != ((attrib & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)) - attrib ^= FileAttributes.ReadOnly; //toggle - File.SetAttributes(_Location,attrib); - } - - if (changeComment) - { - changeComment = false; - _Comment = tmpComment; - } - - if (changeArchiveTitle) - { - changeArchiveTitle = false; - _Title = tmpArchiveTitle; - } - - return true; - } - - // When the Cancel Button on the Property Page is pressed, - // this function is called. - public override void CancelWrite() - { - if (changeReadOnly) - { - _ReadOnly = oldReadOnly; - } - changeArchiveTitle = false; - changeComment = false; - changeReadOnly = false; - NeedToGetReadOnly = true; - } - - public override bool Read(bool dummy) - { - //load archive file list - return true; - } - - public override void AddToTree(TreeNode parentnd) - { - } - - public override bool Expand(TreeNode parentnd) - { - return true; - } - - public override bool PropertiesDlg(Object parent) - { - ARProperties propdlg = new ARProperties(parent, this); - if (propdlg.ShowDialog() == DialogResult.OK) return true; - return false; - } - - public bool Exists(string dname) - { - if(dname==null||dname=="") return false; - - string archname=null; - // see if this is a pathname, it needs to be for the Exists check. - if (dname.IndexOf("\\") < 0) // it's not a path, prepend the path - archname = _Location + "\\" + dname; - else - archname = dname; - - return File.Exists(archname); - } - - public override bool mnuAllowNew() - { - return false; - } - - public override bool mnuAllowDelete() - { -// VEO_DummyArchive ds = (VEO_DummyArchive) this.parentObj; -// VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; -// if (ps.isApproved == true) return false; -// if (amILockedByMe()==false) return false; -// if ((ps.accessFlags&Security.DOCMAINT)==Security.DOCMAINT) return true; - return true; - } - - public override bool mnuAllowUpdateArch() - { - if (amILockedByMe()==false) return false; - return true; - } - - public override bool mnuAllowExtractArch() - { - if (amILockedByMe()==false) return false; - return true; - } - - public override bool mnuAllowTestArchive() - { - return true; - } - - public override void DoListView(ListView veoListView) - { - ZipFuncs ZipInfo = new ZipFuncs(_Location); - ListViewItem item=null; - veoListView.Columns.Add("Date/Time", 150, HorizontalAlignment.Left); - veoListView.Columns.Add("File", 450, HorizontalAlignment.Left); - StringCollection ZipFileList; -// veoListView.Sorting = SortOrder.Ascending; - - ZipFileList = ZipInfo.ZipFileContents(); - - for (int i=0; i< ZipFileList.Count; i++) - { - string tmpstr = ZipFileList[i].ToString(); - int subIdx = tmpstr.IndexOf('!'); - item = new ListViewItem(tmpstr.Substring(0,subIdx)); - item.SubItems.Add(tmpstr.Substring(subIdx+1)); - item.Tag = this; - veoListView.Items.Add(item); - } - AllowListViewSort = true; - } - - public override bool Delete() - { - if ((File.GetAttributes(_Location) & System.IO.FileAttributes.ReadOnly) == System.IO.FileAttributes.ReadOnly) - File.SetAttributes(_Location,System.IO.FileAttributes.Normal); - File.Delete(_Location); - // if this is the last zip, then change parent's icon to empty - VEO_DummyZip zip = (VEO_DummyZip) this.parentObj; - if (zip.Children.Count==1) zip.IsEmpty=true; // just this one. - return true; - } - } - - // This class is used when creating a new archive - public class VEO_ArchiveN: VEO_Archive - { - public VEO_ArchiveN(string ipath, VEO_DummyZip dz) - : base(ipath, dz) - { - } - - [Description("Location"),Category("Archive"),ReadOnly(false),EditorAttribute(typeof(PropSaveFileAsDlg), typeof(System.Drawing.Design.UITypeEditor))] - public new string Location - { - get{return _Location;} - - set - { - _Location=value.ToString(); - } - } - - [Description("Archive Type"),Category("Archive"),ReadOnly(false)]public new ArchiveTypeOptions ArchiveType - { - get - { - return _ArchiveType; - } - set - { - _ArchiveType=value; - } - } - } - - /* - * Setup a class that will display the SaveFileAs dialog from the property dialog - * when the "..." is pressed. - */ - public class PropSaveFileAsDlg : System.Drawing.Design.UITypeEditor - { - public override System.Drawing.Design.UITypeEditorEditStyle GetEditStyle(System.ComponentModel.ITypeDescriptorContext context) - { - return System.Drawing.Design.UITypeEditorEditStyle.Modal; - } - - public override object EditValue( - System.ComponentModel.ITypeDescriptorContext context, - System.IServiceProvider provider, object value) - { - SaveFileDialog saveFileDialog1 = new SaveFileDialog(); - saveFileDialog1.AddExtension = true; - saveFileDialog1.CheckPathExists = true; - saveFileDialog1.DefaultExt = ".zip"; - saveFileDialog1.Filter = "ZIP Files|*.zip|All Files|*.*||"; - saveFileDialog1.DereferenceLinks = true; - saveFileDialog1.OverwritePrompt = true; - saveFileDialog1.Title = "Archive Location and Name"; - saveFileDialog1.FileName = value.ToString(); - saveFileDialog1.ShowDialog(); - - return saveFileDialog1.FileName; - } - - public override bool GetPaintValueSupported( - System.ComponentModel.ITypeDescriptorContext context) - { - return false; - } - } - } diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AssemblyInfo.cs.bak deleted file mode 100644 index 6b2b0662..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/DataPath.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/DataPath.cs deleted file mode 100644 index de8b4e08..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/DataPath.cs +++ /dev/null @@ -1,421 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: DataPath.cs $ $Revision: 5 $ - * $Author: Jsj $ $Date: 3/06/07 1:26p $ - * - * $History: DataPath.cs $ - * - * ***************** Version 5 ***************** - * User: Jsj Date: 3/06/07 Time: 1:26p - * Updated in $/LibSource/VEObject - * check for a null Location. - * - * ***************** Version 4 ***************** - * User: Kathy Date: 1/24/05 Time: 2:45p - * Updated in $/LibSource/VEObject - * B2005-004 fixes - * - * ***************** Version 3 ***************** - * User: Kathy Date: 1/19/05 Time: 11:59a - * Updated in $/LibSource/VEObject - * Fix B2005-003 - missing plant security setting - * - * ***************** Version 2 ***************** - * User: Kathy Date: 1/14/05 Time: 10:38a - * Updated in $/LibSource/VEObject - * B2004-061: fix security options - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:53a - * Created in $/LibSource/VEObject - *********************************************************************************************/ - -using System; -using System.Windows.Forms; -using System.Collections; -using System.Xml; -using System.IO; -using System.ComponentModel; -using Utils; - -namespace VEObject -{ - /// - /// This defines the DataPath class, which handles the datapath information - /// which tells the program where to search for veproms data. A datapath is of - /// the form "[path],[title];" for example G:\,GDRIVE; - /// Its children are vedata directories as found in the menuwin.xml file. - /// These vedata directories represent plant data. - /// - public class VEO_DataPath : VEO_Base - { - protected string tmpTitle; - protected string tmpLocation; - protected bool changeLocation; - protected bool changeTitle; - private string PrevDirectory; - - public VEO_DataPath(UserRunTime iusrRunTime, string ititle, string iloc) - { - iconStates = new int[5] {6,21,8,22,7}; - _Title = ititle; - _Location = iloc; - usrRunTime = iusrRunTime; - changeTitle=false; - changeLocation=false; - isNew=false; - LoadLockInfo(); - icon = iconStates[(int)Lock.LockStatus]; - } - - // the following properties are used in the properties dialog for modification - // of 'property' data. - [Description("Location"),Category("Data Path"),ReadOnly(true)]public string Location - { - get{return _Location;} - set - { - ShortName sname = new ShortName(value); - _Location=sname.ShortFileName; - sname = null; - } - } - - [Description("Title"),Category("Data Path")]public string Title - { - get - { - if (!changeTitle) - return _Title; - else - return tmpTitle; - } - set - { - changeTitle=true; - tmpTitle=value; - } - } - - public override void Restore() - { - changeTitle = false; - } - - // Make a new child, which is a plant node. - public override Object MakeNewChild() - { - VEO_Plant pl = new VEO_PlantN(usrRunTime,null,null); - return (Object) pl; - - } - - // 'Open' positions in the datapath directory (for creation of plant - // directories (store the previous directory, to position out of this - // directory on end). - public override bool Open() - { - if (Directory.Exists(_Location) == false) return false; - isOpen = true; - PrevDirectory = Directory.GetCurrentDirectory(); - if(_Location!=null)Directory.SetCurrentDirectory(_Location); - return true; - } - - // Close clears any multi-user settings for the system level - public override bool Close() - { - if (!isOpen)return false; - isOpen = false; - Directory.SetCurrentDirectory(PrevDirectory); - return true; - } - - // Save the new plant & add to children if it succeeds. - public override bool SaveChild(Object obj) - { - VEO_Plant plnt = (VEO_Plant)obj; - bool succeed = plnt.SaveNew(this._Location); - - if (succeed == true) - { - plnt._Location = this._Location + plnt._Location; - plnt.parentObj = this; - } - return succeed; - } - - public override bool Delete() - { - // concatenate title/loc so that it can be removed from the datapath string - string delpth = _Location + "," + _Title + ";"; - bool success = usrRunTime.DeletePathFromCfg(delpth); - return success; - } - - // for this data path, read in which plants are available, and add to - // the list. - public override bool Read(bool dummy) - { - ArrayList tmpChildren = new ArrayList(); - - // using the . do exist tests to see if they exist on this datapath. - XmlDocument xmldoc = usrRunTime.menuwinXML.GetXmlDoc(); - - XmlElement top = (XmlElement) xmldoc.FirstChild; - XmlElement sys = (XmlElement) top.SelectSingleNode("SystemAttach"); - XmlElement ele = (XmlElement) sys.SelectSingleNode("Plant"); - while (ele != null) - { - // get plants and test for existence with the location for - // this datapath. If exists, add it to the PlantList. - - //get the TemplateName & if there is a {t} replace the {t} - // with this datapath's path. - - XmlElement tn = (XmlElement) ele.SelectSingleNode("TemplateName"); - if (tn != null) - { - string templatename = tn.InnerText; - if (templatename.IndexOf("{t}",0) != -1) - { - string tpath = templatename.Replace("{t}",this.Location); - string path = tpath.Substring(0,tpath.IndexOf(" menu")); - DirectoryInfo source = new DirectoryInfo(path.Replace("/","//")); - if (source.Exists) - { - XmlElement etitle = (XmlElement) ele.SelectSingleNode("MenuName"); - VEO_Plant plnt = new VEO_Plant(usrRunTime, etitle.InnerText,path); - plnt.parentObj = this; - tmpChildren.Add(plnt); - } - - } - } - ele = (XmlElement) ele.NextSibling; - } - Security lsec = usrRunTime.sec; - if (lsec.OpenFile()==true) - { - for(int i=0;i - /// This module defines the DataRoot class, which is the root of all - /// data that is accessible to this user. (i.e. it is the container - /// for all data within the datapath). Applications accessing the database - /// should create a DataRoot. - /// - public class VEO_DataRoot : VEO_Base - { - protected string tmpLocation; - protected bool changeLocation; - - public VEO_DataRoot(UserRunTime iusrRunTime) - { - VEObjectType=(int)VEObjectTypesDefs.System; - iconStates = new int[5] {6,21,8,22,7}; - _Title = "VE-PROMS Data "+iusrRunTime.ucfgpath; - _Location = iusrRunTime.ucfgpath; - changeLocation = false; - usrRunTime = iusrRunTime; - isNew=false; - LoadLockInfo(); - icon = iconStates[(int)Lock.LockStatus]; - } - - public override void LoadLockInfo() - { - Lock = new VELock(usrRunTime.syspath, usrRunTime.myUserData, usrRunTime.InMultiUserMode?VENetwork.LockTypes.System:VENetwork.LockTypes.None); - } - - // The following properties are used in the 'Properties' dialog. This set is used - // for modify. - [Description("Title"),Category("VE-PROMS Data Paths (CFG File)"),ReadOnly(true)]public string Title - { - get{return _Title;} - set{_Title=value;} - } - - //[Description("Location"),Category("VE-PROMS Data Paths (CFG File)"),EditorAttribute(typeof(DataRootFileDlg), typeof(System.Drawing.Design.UITypeEditor))]public string Location - [Description("Location"),Category("VE-PROMS Data Paths (CFG File)"),ReadOnly(true)]public string Location - { - get - { - if (!changeLocation) - return _Location; - else - return tmpLocation; - } - set - { - FileInfo fi = new FileInfo(value); - if (!fi.Exists) - { - MessageBox.Show("The file that was specified does not exist."); - return; - } - changeLocation = true; - tmpLocation=value; - } - } - - public override bool Open() - { - isOpen = true; - // check current multi-user status - if (Connection!=null)Connection.Enter(false); - return true; - } - - // Close clears any multi-user settings for the system level - public override bool Close() - { - isOpen = false; - if (Connection!=null)Connection.Exit(); - return true; - } - - public override void Restore() - { - changeLocation = false; - } - - public override bool mnuAllowDelete() - { - return false; - } - - public override bool mnuAllowLckDB() - { - if (usrRunTime.InMultiUserMode && usrRunTime.sec.PermissionToLockFlag&&Lock.LockStatus==VENetwork.Status.NoLock) return true; - return false; - } - - public override bool mnuAllowNew() - { -// if (usrRunTime.InMultiUserMode && Lock.LockStatus==VENetwork.Status.LockedByOther)return false; - // B2007-005 - // Standardize the need for a lock. Prevent NEW button on first tree node - // if a lock is not set - if (amILockedByMe()==false) return false; - return true; - } - - public override bool mnuAllowUnlckDB() - { - if (usrRunTime.InMultiUserMode && usrRunTime.sec.PermissionToLockFlag&&(Lock.LockStatus==VENetwork.Status.Locked|| - Lock.LockStatus==VENetwork.Status.LockPending)) return true; - return false; - } - - // Add a Data Path. Private method used below. - private void AddDataPath(string entry) - { - int comma; - string tmp; - string loc; - string title; - - comma = entry.IndexOf(","); - tmp=entry.Substring(0,comma); - loc=tmp.Trim(); - //Make sure datapath has an ending backslash - if (!(loc.EndsWith("\\"))) - loc = loc + "\\"; - - tmp=entry.Substring(comma+1,entry.Length-comma-2); // -2, don't copy ";" - title=tmp.Trim(); - - VEO_DataPath dp = new VEO_DataPath(usrRunTime,title,loc); - dp.parentObj = (VEO_Base) this; - Children.Add(dp); - } - - // Get the datapath list. If in demo mode, use sample list; otherwise read in - // from the user's cfg file. - public override bool Read(bool dummy) - { - PrivateProfile ppCfg; - string dpath; - string entry; - int semi; - int strtindx=0; - int netpth; - - if (usrRunTime.sec.isDemoMode) - { - dpath = usrRunTime.syspath + "\\samples\\,Demo Data;"; - } - else - { - // for this data root, read in the datapath. If a user's cfg exists - // use that data. Otherwise, use the menuwin2.xml data which is part - // of the user's run time. - ppCfg = new PrivateProfile(usrRunTime.ucfgpath); -// dpath=ppCfg.Attr("/ini/section[@name='Menu']/param[@name='DataPath']/@value"); - dpath=ppCfg.Attr("Menu","DataPath"); - if (dpath==null || dpath=="")return false; - } - semi=dpath.IndexOf(";",strtindx); - if (semi == -1) - { - MessageBox.Show("Must have semi-colon in datapath"); - Environment.Exit(-1); - } - while (semi !=-1) - { - entry = dpath.Substring(strtindx,semi-strtindx+1); - netpth = entry.IndexOf("////",0); - if (netpth != -1) - //if(GetNetTempDisk()) AddDataPath(entry); - MessageBox.Show("Need to support network temp disk"); - else - AddDataPath(entry); - - if (semi+1>dpath.Length) - strtindx=-1; - else - { - strtindx=semi+1; - semi=dpath.IndexOf(";",strtindx); - } - } - - return true; - } - - // use the change to the cfg file. - public override bool Write() - { - // check for cfg file existence - FileInfo fi = new FileInfo(Location); - if (fi.Exists) - { - if(changeLocation)_Location=tmpLocation; - changeLocation=false; - this._Title = "VE-PROMS Data " + Location; - usrRunTime.ucfgpath = Location; - return true; - } - else - { - MessageBox.Show("The file that was specified does not exist."); - return false; - } - } - - // add a new datapath - public override Object MakeNewChild() - { - VEO_DataPathN dp = new VEO_DataPathN(usrRunTime,null,null); - return dp; - } - - // check that the directory input by the user exists. If so, add the - // directory & title to the cfg file. - public override bool SaveChild(Object obj) - { - VEO_DataPathN dp = (VEO_DataPathN) obj; - // B2007-005 - // If the user didn't enter a location, then show an error message - //and don't continue with the save. - if (dp.Location == null || dp.Location.Length == 0) - { - MessageBox.Show("No data path Location specified.","Error"); - return false; - } - dp.SaveFields(); - // Check for existance of directory if it doesn't exist give message - // and return; - string pth = dp._Location; - DirectoryInfo di = new DirectoryInfo(pth); - if (di.Exists == false) - { - try - { - di.Create(); - } - catch - { - MessageBox.Show("Directory for data path doesn't exist, and could not be created."); - } - return false; - } - - string newcfgpth = dp._Location+","+dp._Title+";"; - usrRunTime.AddPathToCfg(newcfgpth); - return true; - } - - public override void DoListView(ListView veoListView) - { - ListViewItem item=null; - veoListView.Columns.Add("Location", 120, HorizontalAlignment.Left); - veoListView.Columns.Add("Title", 300, HorizontalAlignment.Left); - - for (int i=0; i - /// NOTE: cmbType (the combo box that contains the document types) must match - /// the order of document types given in the ProcTypeOptions for this dialog - /// to work correctly - /// - public class LDProperties : System.Windows.Forms.Form - { - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnApply; - private VEO_Base _ParentObj; - private VEO_Base _CurObj; - private bool isnew; - private System.Windows.Forms.TabControl tabControl1; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private System.Windows.Forms.TabPage tbPageUsage; - private System.Windows.Forms.PropertyGrid myPropertyGrid; - private System.Windows.Forms.TabPage tbGeneral; - private System.Windows.Forms.Label lblUsage; - private System.Windows.Forms.ListBox lbUsage; - private bool canedit; - - public LDProperties(Object parent, Object curobj) - { - // - // Required for Windows Form Designer support - // - _ParentObj = (VEO_Base) parent; - _CurObj = (VEO_Base) curobj; - VEO_LibDoc ld = (VEO_LibDoc) curobj; - if (ld.isNew == true) - isnew=true; - else - isnew=false; - - InitializeComponent(); - - this.myPropertyGrid.SelectedObject=curobj; - if (isnew == true) - { - this.tabControl1.TabPages.Remove(this.tbPageUsage); - canedit=true; - } - else - { - if (this.tabControl1.TabPages.Contains(this.tbPageUsage)==false) - this.tabControl1.TabPages.Add(this.tbPageUsage); - ld.GetUsages(); - foreach (string usg in ld.usages) - { - this.lbUsage.Items.Add(usg); - } - } - - if((_CurObj.canEdit()==false)&&!isnew) - { - canedit=false; - this.myPropertyGrid.Enabled=false; - } - else if (!isnew) - { - canedit=true; - this.myPropertyGrid.Enabled=true; - } - this.lblUsage.Text = "'" + ld.Title + "' is used in..."; - btnApply.Enabled = false; - // make apply button visible if modify - this.btnApply.Visible = !isnew; - } - - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(LDProperties)); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnApply = new System.Windows.Forms.Button(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tbGeneral = new System.Windows.Forms.TabPage(); - this.myPropertyGrid = new System.Windows.Forms.PropertyGrid(); - this.tbPageUsage = new System.Windows.Forms.TabPage(); - this.lblUsage = new System.Windows.Forms.Label(); - this.lbUsage = new System.Windows.Forms.ListBox(); - this.tabControl1.SuspendLayout(); - this.tbGeneral.SuspendLayout(); - this.tbPageUsage.SuspendLayout(); - this.SuspendLayout(); - // - // btnOK - // - this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnOK.Location = new System.Drawing.Point(424, 296); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(64, 24); - this.btnOK.TabIndex = 8; - this.btnOK.Text = "OK"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnCancel.Location = new System.Drawing.Point(504, 296); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(64, 24); - this.btnCancel.TabIndex = 9; - this.btnCancel.Text = "Cancel"; - this.btnCancel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnApply - // - this.btnApply.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnApply.Location = new System.Drawing.Point(584, 296); - this.btnApply.Name = "btnApply"; - this.btnApply.Size = new System.Drawing.Size(56, 24); - this.btnApply.TabIndex = 10; - this.btnApply.Text = "Apply"; - this.btnApply.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnApply.Click += new System.EventHandler(this.btnApply_Click); - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tbGeneral); - this.tabControl1.Controls.Add(this.tbPageUsage); - this.tabControl1.Location = new System.Drawing.Point(0, 0); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(784, 280); - this.tabControl1.TabIndex = 17; - // - // tbGeneral - // - this.tbGeneral.Controls.Add(this.myPropertyGrid); - this.tbGeneral.Location = new System.Drawing.Point(4, 22); - this.tbGeneral.Name = "tbGeneral"; - this.tbGeneral.Size = new System.Drawing.Size(776, 254); - this.tbGeneral.TabIndex = 0; - this.tbGeneral.Text = "General"; - // - // myPropertyGrid - // - this.myPropertyGrid.CommandsVisibleIfAvailable = true; - this.myPropertyGrid.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.myPropertyGrid.HelpVisible = false; - this.myPropertyGrid.LargeButtons = false; - this.myPropertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; - this.myPropertyGrid.Location = new System.Drawing.Point(8, 39); - this.myPropertyGrid.Name = "myPropertyGrid"; - this.myPropertyGrid.Size = new System.Drawing.Size(736, 94); - this.myPropertyGrid.TabIndex = 16; - this.myPropertyGrid.Text = "Properties"; - this.myPropertyGrid.ToolbarVisible = false; - this.myPropertyGrid.ViewBackColor = System.Drawing.SystemColors.Window; - this.myPropertyGrid.ViewForeColor = System.Drawing.SystemColors.WindowText; - this.myPropertyGrid.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.myPropertyGrid_PropertyValueChanged); - // - // tbPageUsage - // - this.tbPageUsage.Controls.Add(this.lblUsage); - this.tbPageUsage.Controls.Add(this.lbUsage); - this.tbPageUsage.Location = new System.Drawing.Point(4, 22); - this.tbPageUsage.Name = "tbPageUsage"; - this.tbPageUsage.Size = new System.Drawing.Size(776, 254); - this.tbPageUsage.TabIndex = 1; - this.tbPageUsage.Text = "Usages"; - // - // lblUsage - // - this.lblUsage.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblUsage.Location = new System.Drawing.Point(16, 8); - this.lblUsage.Name = "lblUsage"; - this.lblUsage.Size = new System.Drawing.Size(624, 24); - this.lblUsage.TabIndex = 22; - // - // lbUsage - // - this.lbUsage.Location = new System.Drawing.Point(16, 40); - this.lbUsage.Name = "lbUsage"; - this.lbUsage.Size = new System.Drawing.Size(624, 199); - this.lbUsage.TabIndex = 21; - // - // LDProperties - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(768, 326); - this.Controls.Add(this.tabControl1); - this.Controls.Add(this.btnApply); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOK); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "LDProperties"; - this.Text = "Library Document Properties"; - this.tabControl1.ResumeLayout(false); - this.tbGeneral.ResumeLayout(false); - this.tbPageUsage.ResumeLayout(false); - this.ResumeLayout(false); - - } - #endregion - - - // save was clicked, use the objects save methods. - private bool saveclick() - { - bool success = true; - - if (isnew) - { - if(_ParentObj==null) - { - DialogResult=DialogResult.Cancel; - return true; - } - - success=_ParentObj.SaveChild(_CurObj); - } - else - { - success=_CurObj.Write(); - } - return success; - - } - // save was clicked, use the objects save methods. - private void btnOK_Click(object sender, System.EventArgs e) - { - bool success = true; - if(canedit)success = saveclick(); - if (success==true) - { - DialogResult = DialogResult.OK; - this.Close(); - } - } - - private void btnApply_Click(object sender, System.EventArgs e) - { - if(canedit)return; - bool success = saveclick(); - if(success==true)btnApply.Enabled=false; - Refresh(); - } - - private void btnCancel_Click(object sender, System.EventArgs e) - { - if(!canedit)return; - _CurObj.Restore(); - } - - private void myPropertyGrid_PropertyValueChanged(object s, System.Windows.Forms.PropertyValueChangedEventArgs e) - { - btnApply.Enabled = true; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/LDProperties.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/LDProperties.resx deleted file mode 100644 index debd8295..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/LDProperties.resx +++ /dev/null @@ -1,255 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - True - - - False - - - True - - - Private - - - Private - - - 8, 8 - - - True - - - False - - - True - - - Private - - - Private - - - 8, 8 - - - False - - - Private - - - Private - - - False - - - True - - - True - - - Private - - - Private - - - 8, 8 - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - (Default) - - - False - - - LDProperties - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/LibDoc.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/LibDoc.cs deleted file mode 100644 index 9ce3b52b..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/LibDoc.cs +++ /dev/null @@ -1,403 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: LibDoc.cs $ $Revision: 6 $ - * $Author: Kathy $ $Date: 5/31/06 9:47a $ - * - * $History: LibDoc.cs $ - * - * ***************** Version 6 ***************** - * User: Kathy Date: 5/31/06 Time: 9:47a - * Updated in $/LibSource/VEObject - * Fixed B2006-023 - library document usages, duplicates and missing - * procedure titles - * - * ***************** Version 5 ***************** - * User: Kathy Date: 2/08/06 Time: 10:22a - * Updated in $/LibSource/VEObject - * Fix B2006-004 - usages not found - * - * ***************** Version 4 ***************** - * User: Kathy Date: 5/31/05 Time: 12:42p - * Updated in $/LibSource/VEObject - * crash on save if no comment - * - * ***************** Version 3 ***************** - * User: Kathy Date: 5/25/05 Time: 10:32a - * Updated in $/LibSource/VEObject - * Allow edits for tmpchg - * - * ***************** Version 2 ***************** - * User: Kathy Date: 1/31/05 Time: 11:05a - * Updated in $/LibSource/VEObject - * Fix B2005-005 - this just fixed empty icon usage - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:53a - * Created in $/LibSource/VEObject - *********************************************************************************************/ - -using System; -using System.IO; -using System.Windows.Forms; -using System.ComponentModel; -using System.Collections; -using System.Data; -using VDB_TransUsage; -using Utils; - -namespace VEObject -{ - /// - /// Summary description for LibDoc. - /// - public class VEO_LibDoc : VEO_Base - { - string _Comment; - public ArrayList usages; - public string ldname; - private string tmpRtfFileName; - protected bool changeTitle; - protected bool changeComment; - protected string tmpTitle; - protected string tmpComment; - - public VEO_LibDoc(string ipath, VEO_DummyLibDoc ld, bool inew) - { - iconStates = new int[5] {15,15,15,15,15}; - string loctitle=null; - string loccomment=null; - _Location = ipath; - VEObjectType = (int)VEObjectTypesDefs.LibraryDoc; - parentObj = ld; - usages = new ArrayList(); - isNew = inew; - // use the path to open the file & read the title & comment - FileInfo fi = new FileInfo(ipath); - FileStream fs=null; - fs = fi.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite ); - BinaryReader br = new BinaryReader(fs,System.Text.ASCIIEncoding.ASCII); - int cntPage = br.ReadInt16(); - if(cntPage != -1) - { // Not End of File - int nchar = br.ReadInt16(); - string tmp = new string(br.ReadChars(nchar)); - loctitle = tmp.Substring(0,tmp.Length-1); // remove null at end. - nchar = br.ReadInt16(); - if (nchar>0) - { - tmp = new String(br.ReadChars(nchar)); - loccomment = tmp.Substring(0,tmp.Length-1); // remove null at end. - } - } - br.Close(); - fs.Close(); - if (loctitle!=null) - _Title = loctitle; - else - _Title=ipath; - _Comment = loccomment; - VEO_Base tmp1 = (VEO_Base) ld.parentObj; - usrRunTime = tmp1.usrRunTime; - string pthnm = this._Location.Substring(0,_Location.ToUpper().IndexOf(".LIB")); - ldname = pthnm.Substring(_Location.LastIndexOf("\\")+1,8); - LoadLockInfo(); - icon = iconStates[(int) Lock.LockStatus]; - } - - [Description("Location"),Category("Library Document"),ReadOnly(true)]public string Location - { - get{return _Location;} - set{_Location=value;} - } - - [Description("Title"),Category("Library Document")]public string Title - { - get - { - if(!changeTitle) - return _Title; - else - return tmpTitle; - } - set - { - changeTitle=true; - tmpTitle=value; - } - } - - [Description("Comment"),Category("Library Document")]public string Comment - { - get - { - if(!changeComment) - return _Comment; - else - return tmpComment; - } - set - { - changeComment=true; - tmpComment=value; - } - } - - public override bool PropertiesDlg(Object parent) - { - LDProperties propdlg = new LDProperties(parent, this); - if (propdlg.ShowDialog() == DialogResult.OK) return true; - - // for New libdoc, a file was created in order for dialog to work, - // remove it on cancel. - if (this.isNew && File.Exists(_Location)) File.Delete(_Location); - return false; - } - - public void GetUsages() - { - usages.Clear(); - VEO_DummyLibDoc dl = (VEO_DummyLibDoc) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) dl.parentObj; - string pth = ps._curDirectory+"\\"+ps.Location+"\\tran.dbf"; - vdb_TransUsage transusg = new vdb_TransUsage(pth); - DataSet ds = transusg.GetSortedByToTrans("[TONUMBER] = \'"+ldname.ToUpper() + "\' OR [TONUMBER] = \'" + ldname.ToLower()+"\'"); - VEO_DummySet dset = (VEO_DummySet) ps.Children[1]; - if (ds.Tables[0].Rows.Count !=0) - { - foreach(DataRow dr in ds.Tables[0].Rows) - { - string usg = dr["FROMNUMBER"].ToString(); - string titl = null; - if (dset.Children.Count==0) dset.Read(false); - foreach(Object obj in dset.Children) - { - VEO_Proc prc = (VEO_Proc) obj; - if (usg == prc._Prcnum) - { - titl = prc._Title; - break; - } - } - usages.Add(usg + " " + titl); - } - } - transusg = null; - } - - public override bool SaveNew(string dummy) - { - // since the file was created before creating this object, use the 'Write' method - // to save it. - bool success = Write(); - isNew=false; - // the parent icon cannot be empty. - VEO_DummyLibDoc ld = (VEO_DummyLibDoc) parentObj; - ld.icon = ld.iconStates[0]; - ld.IsEmpty=false; - return success; - } - - public override bool Write() - { - string origfile=null; - if (isNew||changeTitle||changeComment) - { - try - { - // rename file extension to bak & rewrite it. - origfile = _Location.Substring(0,_Location.Length-3) + "BAK"; - File.Delete(origfile); - File.Move(_Location,origfile); - - FileStream chgfile = new FileStream(_Location, FileMode.Create); - BinaryWriter bw = new BinaryWriter(chgfile,System.Text.Encoding.ASCII); - - // Write out header to the new file - short j=0; - bw.Seek(0,SeekOrigin.Begin); - bw.Write(j); // temporary page count value (reset on pagination) - j=(short)(Title.Length+1); - bw.Write(j); - char [] xbuf = new char[Title.Length]; - xbuf = Title.ToCharArray(); - bw.Write(xbuf); - bw.Write((byte)0); // add null for end of string - - j=0; - if (Comment != null) j=(short)(Comment.Length+1); - bw.Write(j); - if(j>0) - { - xbuf = new char[Comment.Length]; - xbuf = Comment.ToCharArray(); - bw.Write(xbuf); - bw.Write((byte)0); - } - - // Now open the original file for reading data, get past the header info - // first. - FileStream oldfile = new FileStream(origfile, FileMode.Open, FileAccess.Read); - BinaryReader br = new BinaryReader(oldfile,System.Text.ASCIIEncoding.ASCII); - int cntPage = br.ReadInt16(); - if(cntPage != -1) - { // Not End of File - int nchar = br.ReadInt16(); - string tmp = new string(br.ReadChars(nchar)); - nchar = br.ReadInt16(); - if (nchar>0)tmp = new String(br.ReadChars(nchar)); - } - - byte ac; - bool done = false; - while(done==false) - { - if (br.PeekChar() >0) - { - ac = br.ReadByte(); - bw.Write(ac); - } - else - done=true; - } - br.Close(); - bw.Close(); - oldfile.Close(); - chgfile.Close(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error on library document save."); - if (origfile!=null) - { - File.Delete(_Location); - File.Move(origfile,_Location); - } - return false; - } - if(origfile!=null)File.Delete(origfile); - if(changeComment) - { - _Comment=tmpComment; - changeComment=false; - } - if(changeTitle) - { - _Title=tmpTitle; - changeTitle=false; - } - } - return true; - } - - private bool canDelete() - { - if (usages.Count == 0) GetUsages(); - if (usages.Count > 0) - { - MessageBox.Show("Cannot delete library document, it is used."); - return false; - } - return true; - } - public override bool Delete() - { - // first see if the library document can be deleted (if it is used, it cannot - // be deleted. - if (canDelete()==false) return false; - File.Delete(_Location); - // if this is the only library document. then set the parents, icon to empty - VEO_DummyLibDoc ld = (VEO_DummyLibDoc) this.parentObj; - if (ld.Children.Count==1) IsEmpty=true; // just this one. - return true; - } - - public string GetContentsFile() - { - return tmpRtfFileName; - } - - public void ClearContentsFile() - { - if(tmpRtfFileName!=null)File.Delete(tmpRtfFileName); - tmpRtfFileName=null; - } - - public bool ReadContentsFile() - { - try - { - // Open the file for reading data, get past the header info first. - FileStream ldfile = new FileStream(_Location, FileMode.Open, FileAccess.Read); - BinaryReader br = new BinaryReader(ldfile,System.Text.ASCIIEncoding.ASCII); - tmpRtfFileName = Path.GetTempFileName(); - FileStream tmpfile = new FileStream(tmpRtfFileName, FileMode.Create); - BinaryWriter bw = new BinaryWriter(tmpfile,System.Text.Encoding.ASCII); - - int cntPage = br.ReadInt16(); - if(cntPage != -1) - { - int nchar = br.ReadInt16(); - string tmp = new string(br.ReadChars(nchar)); - nchar = br.ReadInt16(); - if (nchar>0)tmp = new String(br.ReadChars(nchar)); - } - byte ac; - bool done = false; - while(done==false) - { - if (br.PeekChar() >0) - { - ac = br.ReadByte(); - bw.Write(ac); - } - else - done=true; - } - br.Close(); - ldfile.Close(); - bw.Close(); - tmpfile.Close(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error reading Library Document"); - return false; - } - return true; - } - - public override void AddToTree(TreeNode parentnd) - { - } - - public override bool Expand(TreeNode parentnd) - { - return true; - } - - public override bool mnuAllowNew() - { - return false; - } - - public override bool mnuAllowDelete() - { - return AllowMods(); - } - public override bool canEdit() - { - return AllowMods(); - } - private bool AllowMods() - { - VEO_DummyLibDoc ds = (VEO_DummyLibDoc) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - if (ps.isApproved == true) return false; - if (amILockedByMe()==false) return false; - if ((ps.accessFlags&Security.LIBRARYDOCS)==Security.LIBRARYDOCS) return true; - return false; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/PSProperties.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/PSProperties.cs deleted file mode 100644 index 9f78a3f8..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/PSProperties.cs +++ /dev/null @@ -1,1281 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: PSProperties.cs $ $Revision: 16 $ - * $Author: Jsj $ $Date: 1/08/08 11:37a $ - * - * $History: PSProperties.cs $ - * - * ***************** Version 16 ***************** - * User: Jsj Date: 1/08/08 Time: 11:37a - * Updated in $/LibSource/VEObject - * B2008-001 fixed Enum selection problem when creating new Deviation Set - * (for NSP) - * - * ***************** Version 15 ***************** - * User: Jsj Date: 5/15/07 Time: 9:41a - * Updated in $/LibSource/VEObject - * Allow edit of a Slave Set's title. - * - * ***************** Version 14 ***************** - * User: Jsj Date: 10/20/06 Time: 9:35a - * Updated in $/LibSource/VEObject - * Combo box setup and pre select item fix - * - * ***************** Version 13 ***************** - * User: Kathy Date: 6/27/05 Time: 11:35a - * Updated in $/LibSource/VEObject - * Proc.ini & Set.ini readonly rather than enabled property for edit mode - * - * ***************** Version 12 ***************** - * User: Jsj Date: 6/10/05 Time: 9:46a - * Updated in $/LibSource/VEObject - * disable parent list (backgrounds, deviations, slaves) if a lock is NOT - * set. - * - * ***************** Version 11 ***************** - * User: Kathy Date: 5/25/05 Time: 10:32a - * Updated in $/LibSource/VEObject - * Allow edits for tmpchg - * - * ***************** Version 10 ***************** - * User: Jsj Date: 5/12/05 Time: 11:52a - * Updated in $/LibSource/VEObject - * fixed unhandled exception problem when changing enhanced doc parent - * - * ***************** Version 9 ***************** - * User: Jsj Date: 5/06/05 Time: 12:08p - * Updated in $/LibSource/VEObject - * bug fix setting creating new enhanced document set (setting up) - * - * ***************** Version 8 ***************** - * User: Kathy Date: 4/21/05 Time: 10:24a - * Updated in $/LibSource/VEObject - * remove upgrade2005 define - * - * ***************** Version 7 ***************** - * User: Jsj Date: 4/15/05 Time: 9:47a - * Updated in $/LibSource/VEObject - * bug fix B2005-021, parent and erg selection wasn't sticking when - * changed for backgrounds, deviations, and slaves - * - * ***************** Version 6 ***************** - * User: Jsj Date: 4/08/05 Time: 10:56a - * Updated in $/LibSource/VEObject - * added tab for SET.INI - * - * ***************** Version 5 ***************** - * User: Kathy Date: 3/22/05 Time: 10:10a - * Updated in $/LibSource/VEObject - * approve: change bar removal checkbox - * - * ***************** Version 4 ***************** - * User: Kathy Date: 2/10/05 Time: 12:36p - * Updated in $/LibSource/VEObject - * B2005-012: No apply button for new - * - * ***************** Version 3 ***************** - * User: Kathy Date: 1/10/05 Time: 1:01p - * Updated in $/LibSource/VEObject - * B2004-062: allow new set PROCS & PROCS2 - * - * ***************** Version 2 ***************** - * User: Jsj Date: 11/12/04 Time: 10:35a - * Updated in $/LibSource/VEObject - * Logic to support EOP to ERG relationships - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:53a - * Created in $/LibSource/VEObject - *********************************************************************************************/ - -using System; -using System.IO; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Text; -using System.Data; -using Utils; -using VDB_Set; -using IniFileIO; - - -namespace VEObject -{ - /// - /// NOTE: cmbType (the combo box that contains the document types) must match - /// the order of document types given in the ProcTypeOptions for this dialog - /// to work correctly - /// - public class PSProperties : System.Windows.Forms.Form - { - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnApply; - private VEO_Base _ParentObj; - private VEO_Base _CurObj; - private ArrayList ERGPaths; // map to titles in cmbGuildLink; - private ArrayList ParentPaths; // map to titles in cmbPLink; - private ArrayList EopErgRelations; // translation table array - private ArrayList ERGinfoList; // ERG SET file info - private EopToErgRelations RelationshipTbl; // translation file class - private bool isnew; - private System.Windows.Forms.Button btnCurSet; - private System.Windows.Forms.Label lblGdLink; - private System.Windows.Forms.ComboBox cmbGuideLink; - private System.Windows.Forms.Label lblPLink; - private System.Windows.Forms.ComboBox cmbPLink; - private System.Windows.Forms.Label lblType; - private System.Windows.Forms.ComboBox cmbType; - private System.Windows.Forms.PropertyGrid myPropertyGrid; - private System.Windows.Forms.TabPage tbGeneral; - private System.Windows.Forms.TabPage tbPageAdvanced; - private System.Windows.Forms.TextBox tbIniText; - private System.Windows.Forms.Label lblIniFile; - private System.Windows.Forms.Label lblExtraRev; - private System.Windows.Forms.TextBox tbExtraRev; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private bool changeProcIniFile; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.ListBox lbEopRelateList; - private System.Windows.Forms.ComboBox cbErgRelateList; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TabPage tbERG_Relate; - private bool canedit; - private bool blnDontCallChange; // change EOP/ERG relation? - private static bool AlreadySetup; - private System.Windows.Forms.CheckBox cbChgBarApp; - private System.Windows.Forms.Label lblSetINI; - private System.Windows.Forms.TabPage tbpgSetINI; - private bool changeSetIniFile; - private System.Windows.Forms.TextBox tbSetIniText; - private System.Windows.Forms.TabControl tabControl1; - private bool blnNeedToWriteEopErgTable; // write the translation table? - - public PSProperties(Object parent, Object curobj) - { - // - // Required for Windows Form Designer support - // - _ParentObj = (VEO_Base) parent; - _CurObj = (VEO_Base) curobj; - VEO_ProcSet tmpPS = (VEO_ProcSet)curobj; - if (tmpPS.isNew == true) - isnew=true; - else - isnew=false; - - changeProcIniFile=false; - changeSetIniFile=false; - AlreadySetup=false; - blnNeedToWriteEopErgTable=false; - InitializeComponent(); - - this.cmbType.Items.Add("Standard"); - this.cmbType.Items.Add("Slave"); - if (!isnew || (isnew&&_CurObj.usrRunTime.SerialNumber.GetSNOption((uint)Utils.SerialNo.SN_Flags.SN_BACKGROUND_ON)>0)) - this.cmbType.Items.Add("Background"); - if (!isnew || (isnew&&_CurObj.usrRunTime.SerialNumber.GetSNOption((uint)Utils.SerialNo.SN_Flags.SN_DEVIATION_ON)>0)) - this.cmbType.Items.Add("Deviation"); - - this.myPropertyGrid.SelectedObject=curobj; - ERGPaths = new ArrayList(); - ParentPaths = new ArrayList(); - if(tmpPS.hasExtraRevNumber) - { - this.lblExtraRev.Visible = true; - this.tbExtraRev.Visible = true; - } - else - { - this.lblExtraRev.Visible = false; - this.tbExtraRev.Visible = false; - } - - // If new, combo box should have 'Standard' & neither link combo boxes - // are visible. - VEO_ProcSet ps = (VEO_ProcSet)curobj; - - if (isnew == true) - { - this.cmbType.Enabled = true; - // setting selectedindex will set up the new file names too. - this.cmbType.SelectedIndex = (int)VEObject.ProcTypeOptions.Standard; - this.cmbGuideLink.Visible = false; - this.cmbPLink.Visible = false; - this.lblGdLink.Visible = false; - this.lblPLink.Visible = false; - this.btnCurSet.Visible = false; - //this.btnEditIni.Visible = false; NOTE - on note, make advanced tab invisible - lblIniFile.Text = ps._curDirectory + "\\" + ps._Location + "\\proc.ini"; - } - else - { - this.btnCurSet.Visible = true; - //this.btnEditIni.Visible = true; see above comment - this.cmbType.Enabled = false; - // if this isn't a new object, set up the data for type, i.e. - // standard, background & deviation. If it's background or deviation, - // then need to set links to. - - this.cmbType.SelectedIndex = (int) ps._ProcType; - this.lblPLink.Visible = ps._ProcType != VEObject.ProcTypeOptions.Standard; - this.cmbPLink.Visible = ps._ProcType != VEObject.ProcTypeOptions.Standard; - this.cmbPLink.Enabled = (ps._ProcType != VEObject.ProcTypeOptions.Slave && _CurObj.canEdit()); - this.lblGdLink.Visible = ps._ProcType.Equals(VEObject.ProcTypeOptions.Deviation); - this.cmbGuideLink.Visible = ps._ProcType.Equals(VEObject.ProcTypeOptions.Deviation); - if (ps.hasExtraRevNumber) this.tbExtraRev.Text = ps.ExtraRevNumber; - if (ps._ProcType != VEObject.ProcTypeOptions.Standard) SetupComboBoxes(ps._ProcType); - // setup PROC.INI tab - lblIniFile.Text = ps._curDirectory + "\\" + ps._Location + "\\proc.ini"; - if (File.Exists(lblIniFile.Text)) - { - // if proc.ini exists, read it into the text - // box. - StreamReader sr = new StreamReader(lblIniFile.Text); - this.tbIniText.Text = sr.ReadToEnd(); - sr.Close(); - } - // setup SET.INI tab - lblSetINI.Text = ps._curDirectory + "\\" + ps._Location + "\\set.ini"; - if (File.Exists(lblSetINI.Text)) - { - // if set.ini exists, read it into the text - // box. - StreamReader sr = new StreamReader(lblSetINI.Text); - this.tbSetIniText.Text = sr.ReadToEnd(); - sr.Close(); - } - // set this after the text is set because it was getting called when the ini file - // was read. - this.tbIniText.TextChanged += new System.EventHandler(this.tbIniText_TextChanged); - this.tbSetIniText.TextChanged += new System.EventHandler(this.tbSetIniText_TextChanged); - this.cbChgBarApp.Checked=ps.tmpRmChgBarOnApp; - } - if((_CurObj.canEdit()==false)&&!isnew) - { - canedit=false; - this.myPropertyGrid.Enabled=false; - this.tbIniText.ReadOnly=true; - this.tbSetIniText.ReadOnly=true; - this.tbExtraRev.Enabled=false; - this.cbChgBarApp.Enabled=false; - } - else - { - canedit=true; -// Bug fix: B2007-012 -// Could not edit a Slave set's title when a lock was set. -// -// if (ps!=null && ((!ps.isTempChange && ps.isApproved) || ps._ProcType == VEObject.ProcTypeOptions.Slave)) - if (ps!=null && (!ps.isTempChange && ps.isApproved) ) - this.myPropertyGrid.Enabled=false; - else - this.myPropertyGrid.Enabled=true; - if (ps.isApproved||ps.isTempChange) this.cbChgBarApp.Visible=false; - this.tbIniText.ReadOnly=false; - this.tbSetIniText.ReadOnly=false; - this.tbExtraRev.Enabled=true; - } - btnApply.Enabled = false; - // make apply button visible if modify - this.btnApply.Visible = !isnew; - } - - private void SetupComboBoxes(VEObject.ProcTypeOptions setType) - { - if (AlreadySetup) return; - AlreadySetup = true; - if (setType==VEObject.ProcTypeOptions.Standard) return; - // for all of the 'standard' procedure sets in this parent plant directory, - // add to Parent combo box. - VEO_ProcSet ps = (VEO_ProcSet) _CurObj; - string parLink = null; - if (!isnew) parLink = ps.parentLink; // this is current, make active in cmbbox - - int parindx=0; // which combo box item matches the parent set. - bool first = true; - int cntproc=0; - int len = _ParentObj.Children.Count; - for (int i = 0; i-1) - { - DirectoryInfo direct = new DirectoryInfo(parLink); - expand_dir = direct.Name; - } - if (parLink != null && tmppth.ToUpper()==expand_dir.ToUpper()) - { - parLink=null; - parindx = cntproc+1; - } - ParentPaths.Add(tmppth); - cntproc++; - } - } - if (this.cmbPLink.Items.Count<1) - { // could not find any doc sets suitable for linking - this.cmbPLink.Items.Add("No Linkable Document Sets Found"); - this.cmbPLink.Enabled=false; // make read only - this.cmbPLink.SelectedIndex = 0; - } - else - this.cmbPLink.SelectedIndex = parindx; - - if (!isnew) - { - if (parLink != null) - { - this.cmbPLink.Items.RemoveAt(0); - this.cmbPLink.Items.Insert(0,"NOT FOUND: " + parLink); -// this.cmbPLink.Items.Add("NOT FOUND: " + parLink); -// this.cmbPLink.SelectedIndex = this.cmbPLink.Items.Count -1; - } -// jsj allow user to change selected parent if a lock is set -//jsj this.cmbPLink.Enabled = false; - this.cmbPLink.Enabled = _CurObj.canEdit(); - } - - string gdLink = null; - int devindx=0; - if (!isnew /*&& setType==VEObject.ProcTypeOptions.Deviation*/) - { - gdLink = ps.GetGuideLink(); - if (gdLink != null) - gdLink = Path.GetFullPath(gdLink); // get path selected - else - return; //no erg path set, no relationship tab - } - - VEO_Plant plnt = (VEO_Plant) ps.parentObj; - VEO_DataPath dp = (VEO_DataPath) plnt.parentObj; - int numitems = dp.Children.Count; - - VEO_Plant cplnt; - for(int i=0;i-1 || uloc.IndexOf("\\VELP")>-1 - || uloc.IndexOf("\\VEREV")>-1) - { - bool didread=false; - if (cplnt.Children.Count==0) - { - cplnt.Read(false); - didread=true; - } - // loop through the list of procedure set directories, - // but only list the working draft. - first = true; - for (int j=0; j-1)||(gps._Location.IndexOf(".SL")>-1)) - this.cmbGuideLink.Items.Add(gps._Title); - else - this.cmbGuideLink.Items.Add(cplnt._Title); - if (gdLink != null && gdLink.ToUpper() == gps._curDirectory.ToUpper() + "\\" + gps._Location.ToUpper()) - { - gdLink = null; - // bug fix B2006-044 - // we were pre-selecting the wrong ERG -// devindx = j+1; - devindx = this.cmbGuideLink.Items.Count - 1; - } - - ERGPaths.Add(gps._curDirectory+ "\\" + gps._Location); - } - } - if(didread) cplnt.Children.Clear(); - } - } - if (this.cmbGuideLink.Items.Count<1) - { // no Generic Guidline (ERGs) data found - this.cmbGuideLink.Items.Add("Generic Guidelines Not Found"); - this.cmbGuideLink.Enabled = false; - this.cmbGuideLink.SelectedIndex = 0; - } - else - this.cmbGuideLink.SelectedIndex = devindx; - if (!isnew) - { - if (gdLink != null) - { - this.cmbGuideLink.Items.Add("NOT FOUND: "+gdLink); - } -// jsj allow user to change ERG selection -// jsj this.cmbGuideLink.Enabled = false; - this.cmbGuideLink.Enabled = _CurObj.canEdit(); - } - // Read in the Translastion table file (TRANSL.TBL) and setup - // the relationship dialog boxes. - jsj - SetupRelationshipTab(); - } - - private string GetNextSlaveDirExtension(string strMasterPrefix) - { - int slvNum = 1; - string slExt = ".sl" + slvNum.ToString("D"); - string SlaveDir = strMasterPrefix + slExt; - - while (Directory.Exists(SlaveDir)) - { - slvNum++; - string OLDslExt = slExt; - slExt = ".sl" + slvNum.ToString("D"); - SlaveDir = SlaveDir.Replace(OLDslExt,slExt); - } - return SlaveDir; - } - - private void SetupNewFileName() - { - int i=0; - bool skipSlaveExt = true; - StringBuilder newname = new StringBuilder(); - string MstrDir = ""; - - VEO_ProcSet ps = (VEO_ProcSet) _CurObj; - - if (this.cmbType.SelectedIndex == (int)VEObject.ProcTypeOptions.Slave) - { - MstrDir = (string) this.ParentPaths[this.cmbPLink.SelectedIndex]; - if (MstrDir.Equals("Null")) - { - MstrDir = "** SELECT A PARENT SET TO BE THE MASTER **"; - } - else - { - MstrDir = MstrDir.ToLower(); - int idx = MstrDir.LastIndexOf(".prc"); - if (idx > 0) - { - MstrDir = MstrDir.Substring(0,idx); - } - idx = MstrDir.LastIndexOf('\\'); - if (idx > 0) - MstrDir = MstrDir.Substring(idx+1); - skipSlaveExt = false; - } - newname.Append(MstrDir); - } - - bool do_procs=false; - while(i==0 || Directory.Exists(newname.ToString())) - { - newname.Remove(0,newname.Length); - // if there is no procs directory & the user is making a standard - // procedure set, default to Procs (B20054-062) - if ((this.cmbType.Text=="Standard")&&(!Directory.Exists("Procs"))) - { - newname.Append("PROCS"); - do_procs=true; - } - else if (MstrDir.Equals("")) - { - newname.Append("PROC"); - newname.Append(i.ToString("")); - } - if (!do_procs) - { - if (this.cmbType.Text == "Background") - newname.Append(".BCK"); - else if (this.cmbType.Text == "Deviation") - newname.Append(".DVT"); - else if (this.cmbType.SelectedIndex == (int)VEObject.ProcTypeOptions.Slave) - { - if (!skipSlaveExt) - newname.Append(GetNextSlaveDirExtension(MstrDir)); // .SLx - else - newname.Append(MstrDir); - } - else - newname.Append(".PRC"); - } - i++; - } - ps.Location = newname.ToString(); - lblIniFile.Text = ps._curDirectory + "\\" + ps._Location + "\\proc.ini"; - this.myPropertyGrid.SelectedObject=_CurObj; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(PSProperties)); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnApply = new System.Windows.Forms.Button(); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tbGeneral = new System.Windows.Forms.TabPage(); - this.cbChgBarApp = new System.Windows.Forms.CheckBox(); - this.tbExtraRev = new System.Windows.Forms.TextBox(); - this.lblExtraRev = new System.Windows.Forms.Label(); - this.btnCurSet = new System.Windows.Forms.Button(); - this.lblGdLink = new System.Windows.Forms.Label(); - this.cmbGuideLink = new System.Windows.Forms.ComboBox(); - this.lblPLink = new System.Windows.Forms.Label(); - this.cmbPLink = new System.Windows.Forms.ComboBox(); - this.lblType = new System.Windows.Forms.Label(); - this.cmbType = new System.Windows.Forms.ComboBox(); - this.myPropertyGrid = new System.Windows.Forms.PropertyGrid(); - this.tbPageAdvanced = new System.Windows.Forms.TabPage(); - this.lblIniFile = new System.Windows.Forms.Label(); - this.tbIniText = new System.Windows.Forms.TextBox(); - this.tbpgSetINI = new System.Windows.Forms.TabPage(); - this.lblSetINI = new System.Windows.Forms.Label(); - this.tbSetIniText = new System.Windows.Forms.TextBox(); - this.tbERG_Relate = new System.Windows.Forms.TabPage(); - this.label2 = new System.Windows.Forms.Label(); - this.cbErgRelateList = new System.Windows.Forms.ComboBox(); - this.lbEopRelateList = new System.Windows.Forms.ListBox(); - this.label1 = new System.Windows.Forms.Label(); - this.tabControl1.SuspendLayout(); - this.tbGeneral.SuspendLayout(); - this.tbPageAdvanced.SuspendLayout(); - this.tbpgSetINI.SuspendLayout(); - this.tbERG_Relate.SuspendLayout(); - this.SuspendLayout(); - // - // btnOK - // - this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnOK.Location = new System.Drawing.Point(509, 342); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(77, 27); - this.btnOK.TabIndex = 8; - this.btnOK.Text = "OK"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnCancel.Location = new System.Drawing.Point(605, 342); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(77, 27); - this.btnCancel.TabIndex = 9; - this.btnCancel.Text = "Cancel"; - this.btnCancel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnApply - // - this.btnApply.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnApply.Location = new System.Drawing.Point(701, 342); - this.btnApply.Name = "btnApply"; - this.btnApply.Size = new System.Drawing.Size(67, 27); - this.btnApply.TabIndex = 10; - this.btnApply.Text = "Apply"; - this.btnApply.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - this.btnApply.Click += new System.EventHandler(this.btnApply_Click); - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tbGeneral); - this.tabControl1.Controls.Add(this.tbPageAdvanced); - this.tabControl1.Controls.Add(this.tbpgSetINI); - this.tabControl1.Controls.Add(this.tbERG_Relate); - this.tabControl1.Location = new System.Drawing.Point(0, 0); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(941, 323); - this.tabControl1.TabIndex = 17; - this.tabControl1.VisibleChanged += new System.EventHandler(this.tabControl1_VisibleChanged); - // - // tbGeneral - // - this.tbGeneral.Controls.Add(this.cbChgBarApp); - this.tbGeneral.Controls.Add(this.tbExtraRev); - this.tbGeneral.Controls.Add(this.lblExtraRev); - this.tbGeneral.Controls.Add(this.btnCurSet); - this.tbGeneral.Controls.Add(this.lblGdLink); - this.tbGeneral.Controls.Add(this.cmbGuideLink); - this.tbGeneral.Controls.Add(this.lblPLink); - this.tbGeneral.Controls.Add(this.cmbPLink); - this.tbGeneral.Controls.Add(this.lblType); - this.tbGeneral.Controls.Add(this.cmbType); - this.tbGeneral.Controls.Add(this.myPropertyGrid); - this.tbGeneral.Location = new System.Drawing.Point(4, 25); - this.tbGeneral.Name = "tbGeneral"; - this.tbGeneral.Size = new System.Drawing.Size(933, 294); - this.tbGeneral.TabIndex = 0; - this.tbGeneral.Text = "General"; - // - // cbChgBarApp - // - this.cbChgBarApp.Checked = true; - this.cbChgBarApp.CheckState = System.Windows.Forms.CheckState.Checked; - this.cbChgBarApp.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.cbChgBarApp.Location = new System.Drawing.Point(432, 9); - this.cbChgBarApp.Name = "cbChgBarApp"; - this.cbChgBarApp.Size = new System.Drawing.Size(298, 28); - this.cbChgBarApp.TabIndex = 26; - this.cbChgBarApp.Text = "Remove Change Bars on Approval"; - this.cbChgBarApp.CheckedChanged += new System.EventHandler(this.cbChgBarApp_CheckedChanged); - // - // tbExtraRev - // - this.tbExtraRev.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.tbExtraRev.Location = new System.Drawing.Point(182, 249); - this.tbExtraRev.MaxLength = 249; - this.tbExtraRev.Name = "tbExtraRev"; - this.tbExtraRev.Size = new System.Drawing.Size(538, 24); - this.tbExtraRev.TabIndex = 25; - this.tbExtraRev.Text = ""; - this.tbExtraRev.TextChanged += new System.EventHandler(this.tbExtraRev_TextChanged); - // - // lblExtraRev - // - this.lblExtraRev.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblExtraRev.Location = new System.Drawing.Point(10, 249); - this.lblExtraRev.Name = "lblExtraRev"; - this.lblExtraRev.Size = new System.Drawing.Size(153, 28); - this.lblExtraRev.TabIndex = 24; - this.lblExtraRev.Text = "Extra Rev Number"; - this.lblExtraRev.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // btnCurSet - // - this.btnCurSet.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnCurSet.Location = new System.Drawing.Point(730, 185); - this.btnCurSet.Name = "btnCurSet"; - this.btnCurSet.Size = new System.Drawing.Size(134, 46); - this.btnCurSet.TabIndex = 23; - this.btnCurSet.Text = "Change Default Settings"; - this.btnCurSet.Click += new System.EventHandler(this.btnCurSet_Click); - // - // lblGdLink - // - this.lblGdLink.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblGdLink.Location = new System.Drawing.Point(10, 211); - this.lblGdLink.Name = "lblGdLink"; - this.lblGdLink.Size = new System.Drawing.Size(124, 28); - this.lblGdLink.TabIndex = 22; - this.lblGdLink.Text = "Guideline Set:"; - this.lblGdLink.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // cmbGuideLink - // - this.cmbGuideLink.Location = new System.Drawing.Point(134, 211); - this.cmbGuideLink.Name = "cmbGuideLink"; - this.cmbGuideLink.Size = new System.Drawing.Size(442, 24); - this.cmbGuideLink.TabIndex = 21; - this.cmbGuideLink.SelectedIndexChanged += new System.EventHandler(this.cmbGuideLink_SelectedIndexChanged); - // - // lblPLink - // - this.lblPLink.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblPLink.Location = new System.Drawing.Point(19, 175); - this.lblPLink.Name = "lblPLink"; - this.lblPLink.Size = new System.Drawing.Size(106, 28); - this.lblPLink.TabIndex = 20; - this.lblPLink.Text = "Parent Set:"; - this.lblPLink.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // cmbPLink - // - this.cmbPLink.Location = new System.Drawing.Point(134, 174); - this.cmbPLink.Name = "cmbPLink"; - this.cmbPLink.Size = new System.Drawing.Size(442, 24); - this.cmbPLink.TabIndex = 19; - this.cmbPLink.SelectedIndexChanged += new System.EventHandler(this.cmbPLink_SelectedIndexChanged); - // - // lblType - // - this.lblType.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblType.Location = new System.Drawing.Point(10, 8); - this.lblType.Name = "lblType"; - this.lblType.Size = new System.Drawing.Size(57, 28); - this.lblType.TabIndex = 18; - this.lblType.Text = "Type:"; - this.lblType.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // cmbType - // - this.cmbType.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.cmbType.Location = new System.Drawing.Point(86, 8); - this.cmbType.Name = "cmbType"; - this.cmbType.Size = new System.Drawing.Size(250, 28); - this.cmbType.TabIndex = 17; - this.cmbType.SelectedIndexChanged += new System.EventHandler(this.cmbType_SelectedIndexChanged); - // - // myPropertyGrid - // - this.myPropertyGrid.CommandsVisibleIfAvailable = true; - this.myPropertyGrid.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.myPropertyGrid.HelpVisible = false; - this.myPropertyGrid.LargeButtons = false; - this.myPropertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; - this.myPropertyGrid.Location = new System.Drawing.Point(10, 45); - this.myPropertyGrid.Name = "myPropertyGrid"; - this.myPropertyGrid.Size = new System.Drawing.Size(883, 108); - this.myPropertyGrid.TabIndex = 16; - this.myPropertyGrid.Text = "Properties"; - this.myPropertyGrid.ToolbarVisible = false; - this.myPropertyGrid.ViewBackColor = System.Drawing.SystemColors.Window; - this.myPropertyGrid.ViewForeColor = System.Drawing.SystemColors.WindowText; - this.myPropertyGrid.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.myPropertyGrid_PropertyValueChanged); - // - // tbPageAdvanced - // - this.tbPageAdvanced.Controls.Add(this.lblIniFile); - this.tbPageAdvanced.Controls.Add(this.tbIniText); - this.tbPageAdvanced.Location = new System.Drawing.Point(4, 25); - this.tbPageAdvanced.Name = "tbPageAdvanced"; - this.tbPageAdvanced.Size = new System.Drawing.Size(933, 294); - this.tbPageAdvanced.TabIndex = 1; - this.tbPageAdvanced.Text = "PROC.INI"; - // - // lblIniFile - // - this.lblIniFile.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblIniFile.Location = new System.Drawing.Point(19, 0); - this.lblIniFile.Name = "lblIniFile"; - this.lblIniFile.Size = new System.Drawing.Size(720, 18); - this.lblIniFile.TabIndex = 20; - // - // tbIniText - // - this.tbIniText.Location = new System.Drawing.Point(32, 32); - this.tbIniText.Multiline = true; - this.tbIniText.Name = "tbIniText"; - this.tbIniText.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.tbIniText.Size = new System.Drawing.Size(720, 212); - this.tbIniText.TabIndex = 19; - this.tbIniText.Text = ""; - // - // tbpgSetINI - // - this.tbpgSetINI.Controls.Add(this.lblSetINI); - this.tbpgSetINI.Controls.Add(this.tbSetIniText); - this.tbpgSetINI.Location = new System.Drawing.Point(4, 25); - this.tbpgSetINI.Name = "tbpgSetINI"; - this.tbpgSetINI.Size = new System.Drawing.Size(933, 294); - this.tbpgSetINI.TabIndex = 3; - this.tbpgSetINI.Text = "SET.INI"; - // - // lblSetINI - // - this.lblSetINI.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblSetINI.Location = new System.Drawing.Point(24, 0); - this.lblSetINI.Name = "lblSetINI"; - this.lblSetINI.Size = new System.Drawing.Size(720, 18); - this.lblSetINI.TabIndex = 21; - // - // tbSetIniText - // - this.tbSetIniText.Location = new System.Drawing.Point(32, 32); - this.tbSetIniText.Multiline = true; - this.tbSetIniText.Name = "tbSetIniText"; - this.tbSetIniText.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.tbSetIniText.Size = new System.Drawing.Size(720, 212); - this.tbSetIniText.TabIndex = 20; - this.tbSetIniText.Text = ""; - // - // tbERG_Relate - // - this.tbERG_Relate.Controls.Add(this.label2); - this.tbERG_Relate.Controls.Add(this.cbErgRelateList); - this.tbERG_Relate.Controls.Add(this.lbEopRelateList); - this.tbERG_Relate.Controls.Add(this.label1); - this.tbERG_Relate.Location = new System.Drawing.Point(4, 25); - this.tbERG_Relate.Name = "tbERG_Relate"; - this.tbERG_Relate.Size = new System.Drawing.Size(933, 294); - this.tbERG_Relate.TabIndex = 2; - this.tbERG_Relate.Text = "ERG Relationships"; - // - // label2 - // - this.label2.Location = new System.Drawing.Point(0, 144); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(840, 24); - this.label2.TabIndex = 3; - this.label2.Text = "ERG List"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // cbErgRelateList - // - this.cbErgRelateList.Location = new System.Drawing.Point(0, 168); - this.cbErgRelateList.MaxDropDownItems = 5; - this.cbErgRelateList.Name = "cbErgRelateList"; - this.cbErgRelateList.Size = new System.Drawing.Size(840, 24); - this.cbErgRelateList.TabIndex = 2; - this.cbErgRelateList.Text = "comboBox1"; - this.cbErgRelateList.SelectedIndexChanged += new System.EventHandler(this.cbErgRelateList_SelectedIndexChanged); - // - // lbEopRelateList - // - this.lbEopRelateList.ItemHeight = 16; - this.lbEopRelateList.Location = new System.Drawing.Point(0, 24); - this.lbEopRelateList.Name = "lbEopRelateList"; - this.lbEopRelateList.Size = new System.Drawing.Size(840, 100); - this.lbEopRelateList.TabIndex = 1; - this.lbEopRelateList.SelectedIndexChanged += new System.EventHandler(this.lbEopRelateList_SelectedIndexChanged); - // - // label1 - // - this.label1.Location = new System.Drawing.Point(0, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(840, 24); - this.label1.TabIndex = 0; - this.label1.Text = "EOP List"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // PSProperties - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(920, 374); - this.Controls.Add(this.tabControl1); - this.Controls.Add(this.btnApply); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOK); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "PSProperties"; - this.Text = "Procedure Set Properties"; - this.tabControl1.ResumeLayout(false); - this.tbGeneral.ResumeLayout(false); - this.tbPageAdvanced.ResumeLayout(false); - this.tbpgSetINI.ResumeLayout(false); - this.tbERG_Relate.ResumeLayout(false); - this.ResumeLayout(false); - - } - #endregion - - private void cmbType_SelectedIndexChanged(object sender, System.EventArgs e) - { - VEO_ProcSet ps = (VEO_ProcSet) _CurObj; - - // bug fix B2008-001 - // find the value of the selected item -// ps._ProcType = (VEObject.ProcTypeOptions)this.cmbType.SelectedIndex; - ps._ProcType = (VEObject.ProcTypeOptions)Enum.Parse(typeof(VEObject.ProcTypeOptions),this.cmbType.SelectedItem.ToString()); - - // check whether other combo boxes should be shown, i.e. standard doesn't - // show any, background & deviation show some. - - // standard first. -// if (this.cmbType.SelectedIndex == (int)VEObject.ProcTypeOptions.Standard) - if (this.cmbType.SelectedItem.Equals("Standard")) - { - this.cmbGuideLink.Visible = false; - this.cmbPLink.Visible = false; - this.lblGdLink.Visible = false; - this.lblPLink.Visible = false; -// 05/11/05 //jsj remove translation table tab -// this.tabControl1.Controls.Remove(tbERG_Relate); -// this.tabControl1.SelectedIndex = 0; - // return; - } - else - { - - // Otherwise setup combo boxes for linked docs. - this.lblPLink.Visible = true; - this.cmbPLink.Visible = true; - this.lblGdLink.Visible = this.cmbType.Text.Equals("Deviation"); - this.cmbGuideLink.Visible = this.cmbType.Text.Equals("Deviation"); - if (this.cmbType.SelectedIndex != (int)VEObject.ProcTypeOptions.Standard && this.cmbPLink.Items.Count<1) - SetupComboBoxes((VEObject.ProcTypeOptions)this.cmbType.SelectedIndex); -// if (this.cmbGuideLink.Visible) -// this.tabControl1.Controls.Add(tbERG_Relate); - } - // now handle the file name. - if (isnew) SetupNewFileName(); - } - - // save was clicked, use the objects save methods. - private bool saveclick() - { - bool success = true; - VEO_ProcSet ps = (VEO_ProcSet) _CurObj; - - // Get the procedure set type (standard, slave, backgrounds, devitaions) - - // bug fix B2008-001 - // find the value of the selected item - // ps._ProcType = (VEObject.ProcTypeOptions)this.cmbType.SelectedIndex; - ps._ProcType = (VEObject.ProcTypeOptions)Enum.Parse(typeof(VEObject.ProcTypeOptions),this.cmbType.SelectedItem.ToString()); - -// if (isnew) -// { - if(_ParentObj==null) - { - DialogResult=DialogResult.Cancel; - return true; - } - - - // If deviations, get path to ERGs - if (ps._ProcType == VEObject.ProcTypeOptions.Deviation && - (this.cmbGuideLink.Items.Count > 0) && - (this.cmbGuideLink.Items[0].ToString() != "Generic Guidelines Not Found")) - { - ps.guideLink = (string) ERGPaths[this.cmbGuideLink.SelectedIndex]; - ps.SetGuideLink(ps.guideLink); - } - - // If Slave, Backgrounds, or ERGs - get the parent (associated procedure set) path - if (this.cmbPLink.Items.Count > 0 && ps._ProcType != VEObject.ProcTypeOptions.Standard) - { - string selparent = (string) ParentPaths[this.cmbPLink.SelectedIndex]; - bool blnSelectParentChanged; - if (ps.parentLink == null) - blnSelectParentChanged = true; - else - blnSelectParentChanged = !ps.parentLink.ToUpper().Equals(selparent.ToUpper()); - if (blnSelectParentChanged) - ps.parentLink = selparent; - - if (ps.parentLink.Equals("Null")) - { - MessageBox.Show("You need to select a parent procedure set.","Need more information..."); - success = false; - ps.parentLink = null; - } - else - ps.SetParentLink(ps.parentLink, ps._ProcType,blnSelectParentChanged); - } - if (isnew) - { - // Now actually create the new procedure set - if (success) - { - VEO_ProcSetN psn = (VEO_ProcSetN) _CurObj; - psn.SaveFields(); - success=_ParentObj.SaveChild(_CurObj); - } - } - else - { -// VEO_ProcSet ps = (VEO_ProcSet) _CurObj; - if (ps.hasExtraRevNumber) ps.ExtraRevNumber=this.tbExtraRev.Text; - success=_CurObj.Write(); - } - - // check for change of ini file text.... and write out. - // NOTE: When a new Slave procedure set is created, we copy the PROC.INI - // file from the master set (as a default). The following code will - // overwrite this with what the used had entered in the Advanced tab. -// if (success && changeProcIniFile) - if (success) - { - if (changeSetIniFile) - { - //write ini file text box data into set.ini (streamwriter creates - // file if it doesn't exist) - StreamWriter sw = new StreamWriter(lblSetINI.Text,false); - sw.Write(this.tbSetIniText.Text); - sw.Close(); - changeSetIniFile=false; - } - if (changeProcIniFile) - { - //write ini file text box data into proc.ini (streamwriter creates - // file if it doesn't exist) - StreamWriter sw = new StreamWriter(lblIniFile.Text,false); - sw.Write(this.tbIniText.Text); - sw.Close(); - changeProcIniFile=false; - } -// else if (ps._ProcType == VEObject.ProcTypeOptions.Slave) - else if (ps.blnCopiedProcINI) - { - // VE-PROMS automatically created a PROC.INI for the slave. - // Ask the user to check the information on the PROC.INI tab - // for both the Master and Slave procedure sets. - string strMessage = "VE-PROMS had automatically created a PROC.INI file in this\nSlave Procedure Set. Please verify and change (if needed)\nthe Applicability settings in both the Master and Slave sets.\nThis is done from the PROC.INI tab on the properties dialog."; - - MessageBox.Show(strMessage,"F.Y.I."); - } - } - ps.blnCopiedProcINI = false; - - if (blnNeedToWriteEopErgTable) - { - RelationshipTbl.WriteTranslationTableFile(); - blnNeedToWriteEopErgTable = false; - } - - return success; - - } - // save was clicked, use the objects save methods. - private void btnOK_Click(object sender, System.EventArgs e) - { - bool success = true; - if(canedit)success = saveclick(); - if (success==true) - { - DialogResult = DialogResult.OK; - this.Close(); - } - } - - private void btnApply_Click(object sender, System.EventArgs e) - { - if(!canedit)return; - bool success = saveclick(); - if(success==true)btnApply.Enabled=false; - Refresh(); - } - - private void btnCurSet_Click(object sender, System.EventArgs e) - { - bool success; -//jsj if(!canedit)return; - VEO_ProcSet ps = (VEO_ProcSet) this._CurObj; - success=ps.ChgDefSettings(); - if (success) - { - this.myPropertyGrid.SelectedObject=this._CurObj; - } - - } - - private void btnCancel_Click(object sender, System.EventArgs e) - { - if(!canedit)return; - VEO_ProcSet ps = (VEO_ProcSet) _CurObj; - ps.Restore(); - } - - private void myPropertyGrid_PropertyValueChanged(object s, System.Windows.Forms.PropertyValueChangedEventArgs e) - { - btnApply.Enabled = true; - // CurrentGridItem = this.myPropertyGrid.SelectedGridItem; - } - - private void cmbPLink_SelectedIndexChanged(object sender, System.EventArgs e) - { - if (this.cmbType.SelectedIndex == (int)VEObject.ProcTypeOptions.Slave) - { - // VEO_ProcSet ps = (VEO_ProcSet) sender; - // ps.parentLink = (string) ParentPaths[this.cmbPLink.SelectedIndex]; - if (this.isnew) - SetupNewFileName(); - } - else if (this.cmbType.SelectedIndex == (int)VEObject.ProcTypeOptions.Deviation) - { - SetupRelationshipTab(); - } - btnApply.Enabled = true; - } - - private void cmbGuideLink_SelectedIndexChanged(object sender, System.EventArgs e) - { - if (this.cmbType.SelectedIndex == (int)VEObject.ProcTypeOptions.Deviation) - SetupRelationshipTab(); - btnApply.Enabled = true; - } - - private void tbExtraRev_TextChanged(object sender, System.EventArgs e) - { - btnApply.Enabled = true; - } - - private void tbIniText_TextChanged(object sender, System.EventArgs e) - { - btnApply.Enabled = true; - changeProcIniFile=true; - } - - private void tbSetIniText_TextChanged(object sender, System.EventArgs e) - { - btnApply.Enabled = true; - changeSetIniFile=true; - } - - - // set up the list boxes with the current list of EOPs and - // list of ERG procedures - private void SetupRelationshipTab() - { - bool isfirst = true; - if (this.cmbPLink.SelectedIndex < 0 || this.cmbGuideLink.SelectedIndex < 0) return; // EOP or ERG path not set yet, just return - string strPathToParentEOPs = (string) this.ParentPaths[this.cmbPLink.SelectedIndex]; - if (strPathToParentEOPs.Equals("Null")) return; // EOP path not yet selected - if (ERGPaths.Count == 0) return; // No ERG Paths - string strPathToERGs = (string) ERGPaths[this.cmbGuideLink.SelectedIndex]; - - // Read in existing translation table - RelationshipTbl = new EopToErgRelations(); - - EopErgRelations = new ArrayList(); - ERGinfoList = new ArrayList(); - lbEopRelateList.Items.Clear(); - - if (strPathToParentEOPs.Equals("Null")) - { - lbEopRelateList.Items.Add("Parent Set Not Selected"); - } - else - { - // populate the EOP list box - // EopErgRelations (Array) contains a list of procedures in - // the parent's SET file with the latest ERG relation - // information gotten from the translation table (TRANSL.TBL). - // Creating the list in this way will account for added and - // deleted procedures. - vdb_Set vdbSet=new vdb_Set(strPathToParentEOPs + "\\SET.DBF"); - // Loop thru the procset - DataTable tbl = vdbSet.DB_Data.Tables[0]; - foreach (DataRow row in tbl.Rows) - { - // skip the first one (it's always a "blank" record) - if (isfirst) - isfirst = false; - else - { - SetRecordObj SetRec = new SetRecordObj(row); - lbEopRelateList.Items.Add(SetRec); - RelationshipTbl.AddToTranslationList(SetRec,EopErgRelations); - } - } - // replace the read-in relation list with the updated list - // this new list will reflect the current list of procedures - // in the SET file. - RelationshipTbl.aryTransTable.Clear(); - RelationshipTbl.aryTransTable = EopErgRelations; - } - - cbErgRelateList.Items.Clear(); - if (strPathToERGs.Equals("Null")) - { - cbErgRelateList.Items.Add("Guideline Set Not Selected"); - } - else - { - // populate the ERG dropdown box - // and create a list (array) of the ERG information - vdb_Set vdbERGset=new vdb_Set(strPathToERGs + "\\SET.DBF"); - DataTable tbl = vdbERGset.DB_Data.Tables[0]; - isfirst=true; - ERGinfoList.Clear(); - // Loop thru the ERG set - foreach (DataRow row in tbl.Rows) - { - SetRecordObj SetRec = new SetRecordObj(row); - if (isfirst) - { - isfirst = false; - cbErgRelateList.Items.Add("Not Selected"); - } - else - { - cbErgRelateList.Items.Add(SetRec); - } - ERGinfoList.Add(SetRec); - } - } - // position both list boxes - lbEopRelateList.SelectedIndex = 0; - if (strPathToERGs.Equals("Null")) - { - cbErgRelateList.SelectedIndex = 0; - cbErgRelateList.Enabled = _CurObj.canEdit(); - } - else - { - - cbErgRelateList.SelectedIndex = RelationshipTbl.FindInERGList(0,ERGinfoList); - cbErgRelateList.Enabled = _CurObj.canEdit(); - } - } - - private void lbEopRelateList_SelectedIndexChanged(object sender, System.EventArgs e) - { - blnDontCallChange = true; // we're just positioning, not saving selection - if (ERGinfoList.Count > 0) - cbErgRelateList.SelectedIndex = RelationshipTbl.FindInERGList(lbEopRelateList.SelectedIndex,ERGinfoList); - } - - private void cbErgRelateList_SelectedIndexChanged(object sender, System.EventArgs e) - { - if (blnDontCallChange) - { - blnDontCallChange = false; - return; - } - if (RelationshipTbl.ChangeTranslationListItem(lbEopRelateList.SelectedIndex,ERGinfoList[cbErgRelateList.SelectedIndex])) - { - btnApply.Enabled = true; - blnNeedToWriteEopErgTable = true; // there are changes to be saved - } - } - - private void cbChgBarApp_CheckedChanged(object sender, System.EventArgs e) - { - // store changed value in temp variable. Will be written to file when user - // chooses to write changes (ok/apply button). - VEO_ProcSet ps = (VEO_ProcSet)_CurObj; - ps.tmpRmChgBarOnApp=cbChgBarApp.Checked; - btnApply.Enabled = true; - } - - private void tabControl1_VisibleChanged(object sender, System.EventArgs e) - { - if (this.cmbGuideLink.Visible) - this.tabControl1.Controls.Add(tbERG_Relate); - else - { - //jsj remove translation table tab - this.tabControl1.Controls.Remove(tbERG_Relate); - this.tabControl1.SelectedIndex = 0; - } - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/PSProperties.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/PSProperties.resx deleted file mode 100644 index 49554264..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/PSProperties.resx +++ /dev/null @@ -1,435 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - True - - - False - - - True - - - Private - - - Private - - - 8, 8 - - - False - - - True - - - True - - - Private - - - Private - - - 8, 8 - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - True - - - True - - - Private - - - Private - - - 8, 8 - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - True - - - True - - - Private - - - Private - - - 8, 8 - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - True - - - True - - - Private - - - Private - - - False - - - 8, 8 - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - PSProperties - - - True - - - 80 - - - True - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Plant.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Plant.cs deleted file mode 100644 index 4698a404..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Plant.cs +++ /dev/null @@ -1,701 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: Plant.cs $ $Revision: 10 $ - * $Author: Jsj $ $Date: 10/20/06 9:34a $ - * - * $History: Plant.cs $ - * - * ***************** Version 10 ***************** - * User: Jsj Date: 10/20/06 Time: 9:34a - * Updated in $/LibSource/VEObject - * long name fix - * - * ***************** Version 9 ***************** - * User: Jsj Date: 9/26/06 Time: 9:38a - * Updated in $/LibSource/VEObject - * check for a siingle quote in directory name - * - * ***************** Version 8 ***************** - * User: Kathy Date: 6/06/05 Time: 12:35p - * Updated in $/LibSource/VEObject - * Allow lock set even if system lock set - * - * ***************** Version 7 ***************** - * User: Kathy Date: 4/12/05 Time: 1:01p - * Updated in $/LibSource/VEObject - * - * ***************** Version 6 ***************** - * User: Kathy Date: 2/02/05 Time: 10:13a - * Updated in $/LibSource/VEObject - * B2005-006: fix missing proc sets under plant - * - * ***************** Version 5 ***************** - * User: Kathy Date: 1/31/05 Time: 11:06a - * Updated in $/LibSource/VEObject - * Fix B2005-005 (connection & delete directory errors). also, fix icon - * usage & security for new - * - * ***************** Version 4 ***************** - * User: Kathy Date: 1/24/05 Time: 2:45p - * Updated in $/LibSource/VEObject - * B2005-004 fixes - * - * ***************** Version 3 ***************** - * User: Kathy Date: 1/14/05 Time: 10:38a - * Updated in $/LibSource/VEObject - * B2004-061: Fix security optoins - * - * ***************** Version 2 ***************** - * User: Kathy Date: 1/10/05 Time: 12:58p - * Updated in $/LibSource/VEObject - * B2004-063 fix - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:53a - * Created in $/LibSource/VEObject - *********************************************************************************************/ - -using System; -using System.Collections; -using System.Text; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using System.ComponentModel; -using Utils; -using VENetwork; - -namespace VEObject -{ - /// - /// This defines the VEO_Plant class which handles plant data. This contains - /// support for the vexxx layer. - /// - public class VEO_Plant : VEO_Base - { - public long accessFlags; - protected string tmpTitle; - protected string tmpLocation; - protected bool changeLocation; - protected bool changeTitle; - private string PrevDirectory; - public VEO_Plant(UserRunTime iusrRunTime, string ititle, string ipath) - { - // iconStates are the imagelist indexes for the tree view (imglist1) - // the states are Nolock, LockedByMe, LockedByOther, LockPending, Empty. - iconStates = new int[5] {3,21,5,22,4}; - _Title = ititle; - _Location = ipath; - usrRunTime = iusrRunTime; - changeLocation=false; - changeTitle=false; - IsEmpty=false; - VEObjectType=(int)VEObjectTypesDefs.Plant; - isNew=false; - LoadLockInfo(); - icon = iconStates[(int)Lock.LockStatus]; - if (Lock.LockStatus != VENetwork.Status.LockedByOther) - { - if (ipath != null) - { - string[] dirs = new string[40]; - dirs = Directory.GetDirectories(ipath); - if (dirs.Length == 0) - { - IsEmpty=true; - //only reset the icon to empty if there is no lock icon. - //if a lock, show the lock icon - if (Lock.LockStatus == VENetwork.Status.NoLock) icon = iconStates[(int)VEO_IconStates.Empty]; - } - } - } - } - - public override void LoadLockInfo() - { - Lock = new VELock(_Location, usrRunTime.myUserData, usrRunTime.InMultiUserMode?VENetwork.LockTypes.Plant:VENetwork.LockTypes.None); - } - - // Properties used for modify of 'Properties' from File menu. - [Description("Location"),Category("Plant"),ReadOnly(true)]public string Location - { - get{return _Location;} - set{_Location=value;} - } - - [Description("Title"),Category("Plant")]public string Title - { - get - { - if (!changeTitle) - return _Title; - else - return tmpTitle; - } - set - { - changeTitle=true; - tmpTitle=value; - } - } - - // The open method checks for multi-user settings at the plant level. It - // also positions into the plant directory. - public override bool Open() - { - isOpen = true; - PrevDirectory = Directory.GetCurrentDirectory(); - if(_Location!=null)Directory.SetCurrentDirectory(_Location); - if (Connection!=null)Connection.Enter(false); - return true; - } - - // The close method resets, if necessary from any multi-user settings and - // positions back to the datapath directory (which is a level above the - // current level) - public override bool Close() - { - if (!isOpen)return false; - isOpen=false; - if (Connection!=null)Connection.Exit(); - Directory.SetCurrentDirectory(".."); - return true; - } - - public override void Restore() - { - changeTitle=false; - } - - public override bool Delete() - { - DialogResult result = MessageBox.Show("Are you sure you want to delete the entire plant directory " + this._Location,"Confirm Delete Again",MessageBoxButtons.YesNoCancel); - if (result == DialogResult.Yes) - { - // delete the entire directory - if (Directory.Exists(this._Location)) - { - if(isOpen)Close(); - try - { - Directory.Delete(this._Location,true); - } - catch (Exception e) - { - MessageBox.Show("Could not delete directory - manually delete " + this._Location + ". Cause: " + e.Message); - } - if (Directory.Exists(this._Location)) - { - MessageBox.Show("Unable to delete the plant directory."); - return false; - } - return true; - } - } - return false; - } - - private void CreateProcSet(string dirpath, XmlElement nm, string dirname, long flags) - { - // see if there is a title file in the directory and use - // it if there is, otherwise use menuname & if there's no menu - // name, use the directory name. - VEO_ProcSet procset = null; - string titlepath = dirpath + "\\" + "Title"; - FileInfo fi = new FileInfo(titlepath); - if (File.Exists(titlepath)) - { - StreamReader myReader = new StreamReader(titlepath); - titlepath = myReader.ReadLine(); - myReader.Close(); - procset = new VEO_ProcSet(usrRunTime, titlepath.Trim(), dirpath, flags); - } - else - { - if (nm != null) - procset = new VEO_ProcSet(usrRunTime, nm.InnerText, dirpath, flags); - else - { - string tmpdirnm = dirname; - int indx=0; - // if this is temp change directory, tack on text to recognize it - if ((indx=dirpath.ToUpper().IndexOf("TMPCHG"))>-1) - tmpdirnm = dirname + " - Temporary Change Version"; - // if this is approved, tack on Current Approved Version to the title - else if ((indx=dirpath.ToUpper().IndexOf("APPROVED"))>-1) - tmpdirnm = dirname + " - Current Approved Version"; - procset = new VEO_ProcSet(usrRunTime, tmpdirnm, dirpath,flags); - } - } - procset.parentObj = this; - Children.Add(procset); - } - - // private method, used below, to add a directory to the child list - // (list contains proc sets) - private bool ProcessDirName(XmlElement par, string dirname, int plntsecindx) - { - XmlNodeList nodeList = par.SelectNodes("ProcFile"); - if (nodeList == null) return false; - - foreach (XmlNode dirnd in nodeList) - { - XmlElement dele=(XmlElement)dirnd; - string dirpath = _Location + "\\" + dirname; - if (File.Exists(dirpath+"\\"+dirnd.InnerText)) - { - // - // see if there's an exception or a requirement, i.e. use - // the Working Draft if there's no proc2 directory (Except) - // or use the Working Draft Unit 1 if there's a proc2 - // directory (Require) - bool excpt = false; - bool req = true; - string path1=null; - XmlElement except = (XmlElement) par.SelectSingleNode("Exception"); - if (except != null) - { - // if this exception directory exists, don't add this to - // the set. - - path1 = dirpath + "\\" + except.InnerText; - if (Directory.Exists(path1)) excpt = true; - } - XmlElement require = (XmlElement) par.SelectSingleNode("Require"); - if (require != null) - { - // if this require directory exists, add this to set only - // if this exists. - path1 = dirpath + "\\" + require.InnerText; - if (Directory.Exists(path1) == false) req = false; - } - if (excpt == false && req == true) - { - XmlElement nm = (XmlElement) par.SelectSingleNode("MenuName"); - long flags=0L; - // bug fix B2006-045 - // need to convert long folder/file names to short (8.3) - ShortName sname = new ShortName(dirpath); - bool hasSec = usrRunTime.sec.ProcSetHasSecurity(plntsecindx, Path.GetFileName(sname.ShortFileName)); -// bool hasSec = usrRunTime.sec.ProcSetHasSecurity(plntsecindx, dirname); - if (this.usrRunTime.sec==null) flags=Security.SUPERACCESS; - else if (hasSec) flags = usrRunTime.sec.GetProcSecurity(sname.ShortFileName); - // else if (hasSec) flags = usrRunTime.sec.GetProcSecurity(dirpath); - - if((hasSec && flags!=0L) || (!hasSec&&!usrRunTime.sec.BlockAccess())) - { - CreateProcSet(dirpath, nm, dirname, flags); - return true; - } - } - } - } - return false; - } - - // This method processes through the SubDirSearch xmlelement tree in - // menuwin2.xml to see if the input procedure set directory has valid - // procedure set subdirectories. Arguments are: - // subtop is xmlelement for the SubDirSearch in menuwin2.xml, dir is actual - // procset directory name (for example, procs, proc000.dvt, etc) and - // dname is the name to be used for the directory name in the menuwin2.xml - // file under the SubDirSearch xmlelement tree (for example, procs, *.dvt, etc) - private bool ProcessSubDir(XmlElement subtop, string dri, string dname, int plntsecindx) - { - XmlNodeList nodeList; - string xp = "descendant::ProcSet[Dir = \'" + dname + "\']"; - - try - { - nodeList = subtop.SelectNodes(xp); - // for each possible subdirectory for this directory, see if it - // exists. - foreach (XmlNode subdirname in nodeList) - { - XmlElement subdele=(XmlElement)subdirname; - XmlNodeList FnodeList = subdirname.SelectNodes("ProcFile"); - // see if the files listed exist, if so, add them to the - // plant procset list. - foreach (XmlNode dirnd in FnodeList) - { - XmlElement dele=(XmlElement)dirnd; - string dirpath = _Location + "\\" + dri; - if (File.Exists(dirpath+"\\"+dirnd.InnerText)) - { - XmlElement nm = (XmlElement) subdirname.SelectSingleNode("MenuName"); - string subdir = dirnd.InnerText.Substring(0,dirnd.InnerText.LastIndexOf("\\")); - - long flags=0L; - bool hasSec = usrRunTime.sec.ProcSetHasSecurity(plntsecindx, dri+"\\"+subdir); - if (this.usrRunTime.sec==null) flags=Security.SUPERACCESS; - else if (hasSec) flags = usrRunTime.sec.GetProcSecurity(dirpath + "\\" + subdir); - - if((hasSec && flags!=0L) || (!hasSec&&!usrRunTime.sec.BlockAccess())) - CreateProcSet(dirpath+"\\"+subdir, nm, dri, flags); - } - break; // out of file check foreach - } - } - } - catch (Exception e) - { - MessageBox.Show(e.Message); - return false; - } - - return true; - } - - // Using the menuwin2.xml file, read in child list by seeing which - // directories (proc sets) are contained in this vexxx directory. - public override bool Read(bool ChkForChldOnly) - { - bool didone; - Cursor.Current = Cursors.WaitCursor; - - // using the . Then do exist tests to see if they - // exist on this datapath. - usrRunTime.LoadMenuWin2(); - XmlDocument xmldoc = usrRunTime.menuwin2XML.GetXmlDoc(); - - XmlElement top = (XmlElement) xmldoc.FirstChild; - XmlElement sys = (XmlElement) top.SelectSingleNode("PlantAttach"); - XmlElement subtop = (XmlElement) top.SelectSingleNode("SubDirSearch"); - - DirectoryInfo cur = new DirectoryInfo(_Location); - DirectoryInfo[] diArr = cur.GetDirectories(); - int plntsecindx = usrRunTime.sec.GetPlantSecurityIndex(_Location); - - foreach (DirectoryInfo dri in diArr) - { - XmlNodeList nodeList; - string dname = null; - int indx; - if ((indx=dri.Name.IndexOf("."))>-1) - { - //must be *.prc, *.bck, *.dvt, *.sl? - if (indx+4<=dri.Name.Length) - { - dname = "*." + dri.Name.Substring(indx+1,3).ToLower(); - if (dname.StartsWith("*.sl")) - dname = dname.Substring(0,4) + "?"; - } - else - dname = null; - } - else if ((indx=dri.Name.IndexOf("'"))>-1) - { - // bug fix B2006-047 - // if not a .PRC folder, then we get an error looking up - // the directory name in XML (if it has an ' in the name) - dname = null; - } - else - { - dname = dri.Name.ToLower(); - } - - - if (dname!=null) - { - string xp = "descendant::ProcSet[Dir = \'" + dname + "\']"; - - try - { - nodeList = sys.SelectNodes(xp); - foreach (XmlNode dirname in nodeList) - { - XmlElement dele=(XmlElement)dirname; - didone = ProcessDirName(dele, dri.Name, plntsecindx); - if (Children.Count > 0 && ChkForChldOnly) - { - Cursor.Current = Cursors.Default; - return true; - } - // if a directory was found, see if any - // subdirectories exist that need added too. - bool didsub = false; - if (didone) didsub = ProcessSubDir(subtop, dri.Name, dname, plntsecindx); - } - } - catch (Exception e) - { - MessageBox.Show(e.Message.ToString()); - Cursor.Current = Cursors.Default; - return false; - } - } - } - // if no children, change icon to empty (unless it has a lock icon) - if (Children.Count <=0 && Lock.LockStatus == VENetwork.Status.NoLock) icon = iconStates[(int)VEO_IconStates.Empty]; - Cursor.Current = Cursors.Default; - return true; - } - - // write out change (modification of title for plant) for plant to - // the menuwin.xml file - public override bool Write() - { - - string newtitle=null; - if (changeTitle) - { - newtitle = tmpTitle; - bool success = usrRunTime.ModMenuWin(newtitle, this._Title); - if (success==false) - { - MessageBox.Show("Could not modify title for the plant."); - return false; - } - MessageBox.Show("Please send \\ve-proms\\menuwin & \\ve-proms\\menuwin.xml files to Volian."); - _Title=newtitle; - changeTitle=false; - } - return true; - } - - // create a new proc set object (child for this plant) - public override Object MakeNewChild() - { - if (!isOpen)Open(); - VEO_ProcSet ps = new VEO_ProcSetN(usrRunTime,null,_Location); - return ps; - } - - // save a new proc set (child for this plant) - public override bool SaveChild(Object obj) - { - VEO_ProcSetN ps = (VEO_ProcSetN) obj; - - // check for valid child - bool valid = ps.IsValid(); - if (valid == false) return false; - - valid = ps.SaveNew("dummy"); - if (valid == true) - { - // add this item to this plants list of children. - Children.Add((VEO_ProcSet)obj); - ps.parentObj=this; - ps._Location = this._Location + "\\" + ps._Location; - ps.icon=iconStates[0]; - // if this plant's icon is 'empty', change it to either lock (if locked), - // or to not empty. - icon = iconStates[(int)Lock.LockStatus]; - IsEmpty=false; - } - return valid; - } - - // save a new plant directory - public override bool SaveNew(string pth) - { - - // check for non-empty data. - - if (tmpLocation == null || tmpLocation == "" || tmpTitle == null || tmpTitle == "") - { - MessageBox.Show("Need to fill in all data."); - return false; - } - // for this new plant, make the directory and write out - // to the menuwin & menuwin.xml files. - - // if using the file browser dialog, the drive may be included, if so - // check that the directory matches the datapath. - int slash = tmpLocation.LastIndexOf("\\"); - if (slash>0) - { - string drvtmp = tmpLocation.Substring(0,slash+1); - ShortName sname = new ShortName(drvtmp); - string drv=sname.ShortFileName; - sname = null; - if (drv.ToUpper() != pth.ToUpper()) - { - MessageBox.Show("Invalid path, directory must match datapath"); - return false; - } - // remove the drive part of the path, it's added back later. - tmpLocation = tmpLocation.Substring(slash+1,tmpLocation.Length-(slash+1)); - } - - // check for ve* - if (tmpLocation.Substring(0,2).ToUpper() != "VE") - { - MessageBox.Show("First two characters must be 'VE' for new plant directory name."); - return false; - } - - // also check that the name is not greater than 8 characters (an old 16-bit hangover) - if (tmpLocation.Length>8) - { - MessageBox.Show("Directory/plant name must be 8 characters or less."); - return false; - } - - // make path to new directory & check for existence. - string curpath=null; - curpath = pth + "\\" + this.tmpLocation; - DirectoryInfo cur = new DirectoryInfo(curpath); - - if (cur.Exists ) - { - DirectoryInfo[] di = cur.GetDirectories("*"); - FileInfo[] fi = cur.GetFiles("*"); - if (di.Length>0 || fi.Length>0) - { - MessageBox.Show("The plant directory you specified already exists & has contents. Enter a different name."); - return false; - } - } - // if the directory exists & it is already in the menu file, it didn't succeed - // in adding the new item. - if (cur.Exists && (usrRunTime.IsInMenuWin(this.tmpLocation)!=0)) - { - MessageBox.Show("The plant directory you specified already exists and the plant name exists in the menu files."); - return false; - } - try - { - if (cur.Exists == false)cur.Create(); - } - catch (Exception e) - { - MessageBox.Show("Error creating directory: " + e.Message); - return false; - } - - // now add to end of menuwin & menuwin.xml. - bool success = usrRunTime.AddToMenuWin(this.tmpTitle,this.tmpLocation); - if (success==false) - { - MessageBox.Show("Could not add directory to ve-proms menuing files. Could not create plant directory."); - cur.Delete(); - return false; - } - MessageBox.Show("The VE-PROMS Security Access Module (VESAM) may need to be used to set permissions to access the new plant."); - _Title=tmpTitle; - _Location=tmpLocation; - changeTitle=false; - changeLocation=false; - // set a security flag for this. Cases could be that there is no security in vesam, - // that it has security in vesam, though it didn't exist for this user until now, - // or the user could be super user. - accessFlags=0L; - int idx = usrRunTime.sec.GetPlantSecurityIndex(curpath); - accessFlags = usrRunTime.sec.GetPlantSecurity(idx); - return true; - } - - public override void DoListView(ListView veoListView) - { - ListViewItem item=null; - veoListView.Columns.Add("Location", 120, HorizontalAlignment.Left); - veoListView.Columns.Add("Title", 300, HorizontalAlignment.Left); - - for (int i=0; i - /// Summary description for PrcProperties. - /// - public class PrcProperties : System.Windows.Forms.Form - { - private System.Windows.Forms.TabPage generalTPage; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnApply; - private System.Windows.Forms.TabControl tabCtlProc; - private PropertyGrid genPropertyGrid; - private PropertyGrid extPropertyGrid; - private VEO_Base ParentObj; - private VEO_Base ProcObj; - private VEO_Base ProcExtObj; - private bool isnew; - private bool dosuffix; - private System.Windows.Forms.TabPage ExtTPage; - public GridItem CurrentGridItem; - private System.Windows.Forms.Label lblSuffix; - private System.Windows.Forms.ComboBox cmbSuffix; - private bool canedit; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public PrcProperties(Object par, Object prc, Object ext) - { - ParentObj = (VEO_Base) par; - ProcObj = (VEO_Base) prc; - ProcExtObj = (VEO_Base) ext; - if(ProcObj.isNew) - isnew=true; - else - isnew=false; - - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - this.genPropertyGrid.SelectedObject=prc; - if (ext != null) - { - this.extPropertyGrid.SelectedObject=ext; - if (this.tabCtlProc.TabPages.Count<2)this.tabCtlProc.TabPages.Add(ExtTPage); - } - else - this.tabCtlProc.TabPages.Remove(ExtTPage); - - // make apply button visible if modify - this.btnApply.Visible = !isnew; - - // if the parent has suffixes as part of format, then - // turn visibility on to the suffix combo box & label, and - // add each character to the suffix combo box & set current - // value. - - VEO_ProcSet ps = (VEO_ProcSet) ParentObj.parentObj; - if (ps.SuffixFlags != null && ps.SuffixFlags != "") - { - dosuffix=true; - this.lblSuffix.Visible=true; - this.cmbSuffix.Visible=true; - this.cmbSuffix.Items.Add("blank"); - for (int i=0; i - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(PrcProperties)); - this.tabCtlProc = new System.Windows.Forms.TabControl(); - this.generalTPage = new System.Windows.Forms.TabPage(); - this.genPropertyGrid = new System.Windows.Forms.PropertyGrid(); - this.ExtTPage = new System.Windows.Forms.TabPage(); - this.extPropertyGrid = new System.Windows.Forms.PropertyGrid(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnApply = new System.Windows.Forms.Button(); - this.cmbSuffix = new System.Windows.Forms.ComboBox(); - this.lblSuffix = new System.Windows.Forms.Label(); - this.tabCtlProc.SuspendLayout(); - this.generalTPage.SuspendLayout(); - this.ExtTPage.SuspendLayout(); - this.SuspendLayout(); - // - // tabCtlProc - // - this.tabCtlProc.Controls.Add(this.generalTPage); - this.tabCtlProc.Controls.Add(this.ExtTPage); - this.tabCtlProc.Location = new System.Drawing.Point(0, 0); - this.tabCtlProc.Name = "tabCtlProc"; - this.tabCtlProc.SelectedIndex = 0; - this.tabCtlProc.Size = new System.Drawing.Size(704, 192); - this.tabCtlProc.TabIndex = 0; - // - // generalTPage - // - this.generalTPage.Controls.Add(this.genPropertyGrid); - this.generalTPage.Location = new System.Drawing.Point(4, 22); - this.generalTPage.Name = "generalTPage"; - this.generalTPage.Size = new System.Drawing.Size(696, 166); - this.generalTPage.TabIndex = 0; - this.generalTPage.Text = "General"; - // - // genPropertyGrid - // - this.genPropertyGrid.CommandsVisibleIfAvailable = true; - this.genPropertyGrid.Dock = System.Windows.Forms.DockStyle.Top; - this.genPropertyGrid.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.genPropertyGrid.HelpVisible = false; - this.genPropertyGrid.LargeButtons = false; - this.genPropertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; - this.genPropertyGrid.Location = new System.Drawing.Point(0, 0); - this.genPropertyGrid.Name = "genPropertyGrid"; - this.genPropertyGrid.PropertySort = System.Windows.Forms.PropertySort.Categorized; - this.genPropertyGrid.Size = new System.Drawing.Size(696, 416); - this.genPropertyGrid.TabIndex = 1; - this.genPropertyGrid.Text = "Properties"; - this.genPropertyGrid.ToolbarVisible = false; - this.genPropertyGrid.ViewBackColor = System.Drawing.SystemColors.Window; - this.genPropertyGrid.ViewForeColor = System.Drawing.SystemColors.WindowText; - this.genPropertyGrid.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.genPropertyGrid_PropertyValueChanged); - // - // ExtTPage - // - this.ExtTPage.Controls.Add(this.extPropertyGrid); - this.ExtTPage.Location = new System.Drawing.Point(4, 22); - this.ExtTPage.Name = "ExtTPage"; - this.ExtTPage.Size = new System.Drawing.Size(696, 166); - this.ExtTPage.TabIndex = 1; - this.ExtTPage.Text = "Extended"; - // - // extPropertyGrid - // - this.extPropertyGrid.CommandsVisibleIfAvailable = true; - this.extPropertyGrid.Dock = System.Windows.Forms.DockStyle.Top; - this.extPropertyGrid.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.extPropertyGrid.HelpVisible = false; - this.extPropertyGrid.LargeButtons = false; - this.extPropertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; - this.extPropertyGrid.Location = new System.Drawing.Point(0, 0); - this.extPropertyGrid.Name = "extPropertyGrid"; - this.extPropertyGrid.PropertySort = System.Windows.Forms.PropertySort.Categorized; - this.extPropertyGrid.Size = new System.Drawing.Size(696, 416); - this.extPropertyGrid.TabIndex = 0; - this.extPropertyGrid.Text = "PropertyGrid"; - this.extPropertyGrid.ToolbarVisible = false; - this.extPropertyGrid.ViewBackColor = System.Drawing.SystemColors.Window; - this.extPropertyGrid.ViewForeColor = System.Drawing.SystemColors.WindowText; - this.extPropertyGrid.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.extPropertyGrid_PropertyValueChanged); - // - // btnOK - // - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOK.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnOK.Location = new System.Drawing.Point(400, 264); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(88, 32); - this.btnOK.TabIndex = 1; - this.btnOK.Text = "OK"; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnCancel.Location = new System.Drawing.Point(504, 264); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(88, 32); - this.btnCancel.TabIndex = 2; - this.btnCancel.Text = "Cancel"; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnApply - // - this.btnApply.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnApply.Location = new System.Drawing.Point(608, 264); - this.btnApply.Name = "btnApply"; - this.btnApply.Size = new System.Drawing.Size(88, 32); - this.btnApply.TabIndex = 3; - this.btnApply.Text = "Apply"; - this.btnApply.Click += new System.EventHandler(this.btnApply_Click); - // - // cmbSuffix - // - this.cmbSuffix.Location = new System.Drawing.Point(72, 216); - this.cmbSuffix.Name = "cmbSuffix"; - this.cmbSuffix.Size = new System.Drawing.Size(56, 21); - this.cmbSuffix.TabIndex = 4; - this.cmbSuffix.Text = "comboBox1"; - this.cmbSuffix.SelectedIndexChanged += new System.EventHandler(this.cmbSuffix_SelectedIndexChanged); - // - // lblSuffix - // - this.lblSuffix.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.lblSuffix.Location = new System.Drawing.Point(16, 216); - this.lblSuffix.Name = "lblSuffix"; - this.lblSuffix.Size = new System.Drawing.Size(48, 16); - this.lblSuffix.TabIndex = 5; - this.lblSuffix.Text = "Suffix:"; - // - // PrcProperties - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(720, 318); - this.Controls.Add(this.lblSuffix); - this.Controls.Add(this.cmbSuffix); - this.Controls.Add(this.btnApply); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOK); - this.Controls.Add(this.tabCtlProc); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "PrcProperties"; - this.Text = "Procedure Properties"; - this.tabCtlProc.ResumeLayout(false); - this.generalTPage.ResumeLayout(false); - this.ExtTPage.ResumeLayout(false); - this.ResumeLayout(false); - - } - #endregion - private void genPropertyGrid_Click(object sender, System.EventArgs e) - { - CurrentGridItem = this.genPropertyGrid.SelectedGridItem; - } - - private void extPropertyGrid_Click(object sender, System.EventArgs e) - { - CurrentGridItem = this.extPropertyGrid.SelectedGridItem; - } - - private void genPropertyGrid_PropertyValueChanged(object s, System.Windows.Forms.PropertyValueChangedEventArgs e) - { - btnApply.Enabled = true; - CurrentGridItem = this.genPropertyGrid.SelectedGridItem; - } - - private void extPropertyGrid_PropertyValueChanged(object s, System.Windows.Forms.PropertyValueChangedEventArgs e) - { - btnApply.Enabled = true; - CurrentGridItem = this.extPropertyGrid.SelectedGridItem; - } - - // save data for use by ok and apply button clicks - private bool saveclick() - { - bool success = true; - - // save the suffix if using it. Note that this was done - // as a separate combo box since fields cannot be removed - // from the property grid at run time. - if (dosuffix) - { - VEO_Proc prc = (VEO_Proc)ProcObj; - if (cmbSuffix.SelectedIndex == 0) - prc._ProcCode = null; - else - prc._ProcCode = cmbSuffix.SelectedItem.ToString(); - } - - if (isnew) - { - if(ParentObj==null) - { - DialogResult=DialogResult.Cancel; - return success; - } - success=ParentObj.SaveChild(ProcObj); - } - else - { - success=ProcObj.Write(); - } - return success; - } - - // save was clicked, use the objects save methods. - private void btnOK_Click(object sender, System.EventArgs e) - { - bool success = true; - if(canedit)success = saveclick(); - if (success==true) - { - DialogResult = DialogResult.OK; - this.Close(); - } - } - - private void btnApply_Click(object sender, System.EventArgs e) - { - if(canedit)return; - bool success = saveclick(); - if(success==true)btnApply.Enabled=false; - Refresh(); - } - - private void btnCancel_Click(object sender, System.EventArgs e) - { - if(!canedit)return; - ProcObj.Restore(); - } - - private void cmbSuffix_SelectedIndexChanged(object sender, System.EventArgs e) - { - btnApply.Enabled=true; - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/PrcProperties.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/PrcProperties.resx deleted file mode 100644 index 402a88ab..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/PrcProperties.resx +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - False - - - True - - - Private - - - Private - - - 8, 8 - - - False - - - True - - - True - - - Private - - - Private - - - 8, 8 - - - False - - - Private - - - Private - - - False - - - True - - - True - - - Private - - - Private - - - 8, 8 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - PrcProperties - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - True - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Proc.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Proc.cs deleted file mode 100644 index 8d275987..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Proc.cs +++ /dev/null @@ -1,1587 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: Proc.cs $ $Revision: 26 $ - * $Author: Jsj $ $Date: 9/25/06 2:08p $ - * - * $History: Proc.cs $ - * - * ***************** Version 26 ***************** - * User: Jsj Date: 9/25/06 Time: 2:08p - * Updated in $/LibSource/VEObject - * allow user to move a procedure in the approved list - * - * ***************** Version 25 ***************** - * User: Jsj Date: 8/30/06 Time: 10:04a - * Updated in $/LibSource/VEObject - * Added Multi Procedure Data Checker - * - * ***************** Version 24 ***************** - * User: Kathy Date: 5/01/06 Time: 11:17a - * Updated in $/LibSource/VEObject - * Fix B2006-018: single quote in proc number causes problem on data - * request - * - * ***************** Version 23 ***************** - * User: Kathy Date: 2/23/06 Time: 10:52a - * Updated in $/LibSource/VEObject - * Fix B2006-006, use actual database field for column mode in set file - * during approve selected. Also, don't crash on saving of column mode - * from procedure properties if value was null - * - * ***************** Version 22 ***************** - * User: Kathy Date: 8/16/05 Time: 2:56p - * Updated in $/LibSource/VEObject - * B2005-030: error if missing ndx - * - * ***************** Version 21 ***************** - * User: Kathy Date: 7/28/05 Time: 2:08p - * Updated in $/LibSource/VEObject - * for mod proc number, copy data into/from correct file number for - * approve ind - * - * ***************** Version 20 ***************** - * User: Kathy Date: 7/18/05 Time: 10:55a - * Updated in $/LibSource/VEObject - * Lib doc transition reference may be upper or lower case - * - * ***************** Version 19 ***************** - * User: Kathy Date: 6/21/05 Time: 7:25a - * Updated in $/LibSource/VEObject - * clear variable for edit from approve - * - * ***************** Version 18 ***************** - * User: Kathy Date: 5/25/05 Time: 10:32a - * Updated in $/LibSource/VEObject - * Allow edits for tmpchg - * - * ***************** Version 17 ***************** - * User: Kathy Date: 5/19/05 Time: 11:07a - * Updated in $/LibSource/VEObject - * speed up approve - * - * ***************** Version 16 ***************** - * User: Kathy Date: 5/11/05 Time: 9:29a - * Updated in $/LibSource/VEObject - * approve all selectinto - * - * ***************** Version 15 ***************** - * User: Kathy Date: 4/26/05 Time: 10:23a - * Updated in $/LibSource/VEObject - * Check for dbnull on dates - * - * ***************** Version 14 ***************** - * User: Kathy Date: 4/21/05 Time: 10:22a - * Updated in $/LibSource/VEObject - * remove upgrade2005 define - * - * ***************** Version 13 ***************** - * User: Jsj Date: 4/15/05 Time: 9:44a - * Updated in $/LibSource/VEObject - * added check to see if proc number exists in set file before adding to - * dependency list - * - * ***************** Version 12 ***************** - * User: Jsj Date: 4/08/05 Time: 10:55a - * Updated in $/LibSource/VEObject - * comment about enabling slave proc number/title changes - * - * ***************** Version 11 ***************** - * User: Jsj Date: 4/07/05 Time: 11:17a - * Updated in $/LibSource/VEObject - * Unit Specific call - * - * ***************** Version 10 ***************** - * User: Kathy Date: 3/22/05 Time: 10:03a - * Updated in $/LibSource/VEObject - * Remove chgbar - * - * ***************** Version 9 ***************** - * User: Kathy Date: 3/08/05 Time: 1:50p - * Updated in $/LibSource/VEObject - * Approval - * - * ***************** Version 8 ***************** - * User: Kathy Date: 1/31/05 Time: 11:06a - * Updated in $/LibSource/VEObject - * Fix B2005-005 (connection & delete directory errors). also, fix icon - * - * ***************** Version 7 ***************** - * User: Kathy Date: 11/12/04 Time: 8:43a - * Updated in $/LibSource/VEObject - * B2004-056: no date update on set file record when procedure data change - * - * ***************** Version 6 ***************** - * User: Jsj Date: 8/20/04 Time: 9:02a - * Updated in $/LibSource/VEObject - * Disable the main form when we spawn off to VFW.EXE so the user cannot - * select a different tree node while we are bringing up the procedure - * editor. - * - * ***************** Version 5 ***************** - * User: Jsj Date: 8/19/04 Time: 11:37a - * Updated in $/LibSource/VEObject - * fixed typo in transition usage message displayed when trying to delete - * a procedure - * - * ***************** Version 4 ***************** - * User: Jsj Date: 8/16/04 Time: 4:23p - * Updated in $/LibSource/VEObject - * RECID not incremented inserting new procdure - * - * ***************** Version 3 ***************** - * User: Kathy Date: 8/10/04 Time: 3:42p - * Updated in $/LibSource/VEObject - * duplicate file names on new proc & proc has wrong rec ids on new - * - * ***************** Version 2 ***************** - * User: Kathy Date: 8/04/04 Time: 11:12a - * Updated in $/LibSource/VEObject - * stop two vfw sessions from spawning on quick 2 double clicks - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:53a - * Created in $/LibSource/VEObject - *********************************************************************************************/ - -using System; -using System.Windows.Forms; -using System.ComponentModel; -using System.Diagnostics; -using System.Text; -using System.Data; -using System.IO; -using System.Messaging; -using System.Runtime.InteropServices; -using System.Collections; -using Utils; -using VDB; -using VDB_Proc; -using VDB_Set; -using VDB_TransUsage; -using VDB_ROUsage; -using VEMessageNS; -using ROFST_FILE; - -namespace VEObject -{ - /// - /// VEO_Proc support procedure functionality - /// - public class VEO_Proc: VEO_Base - { - public VEO_ProcExt procExt; - public string origDate; - public string origTime; - public string _Prcnum; - public string recid; - public ProcColumnOptions _ProcColumn; - public string _ProcCode; - public string origProcCode; - public DataRow pdatarow; // row from set file. - private string[] DBExtensions={"DBF","DBT","NDX","SCR","FIX","APL","PGN","TCX","LLF","RTF","INF"}; - private bool[] AppExtensions={false,false,false,false,true,false,true,false,false,false,true}; - public string _ModInfo; - protected string tmpTitle; - protected string tmpProcNum; - protected ProcColumnOptions tmpProcCol; - protected bool changeProcNum; - protected bool changeTitle; - protected bool changeProcCol; - private string PrevDirectory; - private Process myProcess; - private Form mainForm; - private bool activeEdit; // flag that vfw is currently being brought up - don't do twice, if delay - - public VEO_Proc(string ilocaltitle, string ipath, string iprcnum, string irecid, VEO_Base.ProcColumnOptions format, string iprccode, DataRow dr, VEO_DummySet dset, bool inew) - { - activeEdit=false; - iconStates = new int[5] {26,26,26,26,26}; - procExt=null; - _Title = ilocaltitle; - _Location = ipath; - _Prcnum = iprcnum; - _ProcCode = iprccode; - origProcCode = _ProcCode; - _ProcColumn=(VEO_Base.ProcColumnOptions)format; - recid = irecid; - pdatarow = dr; - parentObj = dset; - - usrRunTime = dset.usrRunTime; - if(!inew) - { - if (dr["DATE"] is System.DBNull) - { - origDate = null; - origTime = null; - } - else - { - origDate = dr["DATE"].ToString().PadRight(8,' '); - origTime = dr["TIME"].ToString().PadRight(5,' '); - } - SetModString(dr["INITIALS"].ToString(),origDate,origTime); - DTI.SetDateTimeInit=origDate+origTime+dr["INITIALS"].ToString().PadRight(5,' '); - } - isNew = inew; - changeProcNum=false; - changeTitle=false; - changeProcCol=false; - VEObjectType = (int)VEObjectTypesDefs.Procedure; - LoadLockInfo(); - icon = iconStates[(int) Lock.LockStatus]; - } - - [Description("FileName"),Category("Procedure"),ReadOnly(true)]public string File_Name - { - get{return _Location;} - set{_Location=value;} - } - - [Description("Modification Information"),Category("Procedure"),ReadOnly(true)]public string Modification_Information - { - get{return _ModInfo;} - set{_ModInfo=value;} - } - - [Description("Procedure Number"),Category("Procedure"),EditorAttribute(typeof(VESymbDlg), typeof(System.Drawing.Design.UITypeEditor))]public string Procedure_Number - { - get - { - if(!changeProcNum) - return _Prcnum; - else - return tmpProcNum; - } - set - { - changeProcNum=true; - tmpProcNum=value; - } - } - - [Description("Procedure Title"),Category("Procedure"),EditorAttribute(typeof(VESymbDlg), typeof(System.Drawing.Design.UITypeEditor))]public string Title - { - get - { - if (!changeTitle) - return _Title; - else - return tmpTitle; - } - set - { - changeTitle=true; - tmpTitle=value; - } - } - - [Description("Format"),Category("Procedure")]public ProcColumnOptions Procedure_Column - { - get - { - if(!changeProcCol) - return _ProcColumn; - else - return tmpProcCol; - } - set - { - changeProcCol=true; - tmpProcCol=value; - } - } - - private void SetModString(string person, string sdt, string tm) - { - string outtm=null; - string outdt=null; - DateTime dt; - if (tm!=null && tm!="")outtm=tm.Substring(0,2)+":"+tm.Substring(2,2); - if (sdt !=null && sdt != "") - { - dt = System.Convert.ToDateTime(sdt); - outdt = dt.ToShortDateString(); - } - _ModInfo = person + " " + outdt + " " + outtm; - } - - private bool IsInSet(string fname) - { - VEO_DummySet ds = (VEO_DummySet) parentObj; - VEO_Proc prc = null; - foreach (Object chld in ds.Children) - { - prc = (VEO_Proc)chld; - if (prc._Location == fname)return true; - } - return false; - } - private void SetUpNewFileName() - { - int i=0; - StringBuilder newname = new StringBuilder(); - if(!isOpen) Open(); - while(i==0 || (File.Exists(newname.ToString())||IsInSet(newname.ToString()))) - { - newname.Remove(0,newname.Length); - newname.Append("PROC"); - string tmp = i.ToString(); - newname.Append(i.ToString("d3")); - newname.Append(".dbf"); - i++; - } - this._Location = newname.ToString().Substring(0,7); - } - - public override bool PropertiesDlg(Object parent) - { - bool retval = false; - PrcProperties propdlg; - if (isNew) SetUpNewFileName(); - propdlg = new PrcProperties(parent, this, procExt); - if (propdlg.ShowDialog() == DialogResult.OK) - { - SetModString(pdatarow["INITIALS"].ToString(),pdatarow["DATE"].ToString(),pdatarow["TIME"].ToString()); - retval=true; - } - else this.Restore(); - propdlg = null; - return retval; - } - - public override void Restore() - { - changeProcNum=false; - changeTitle=false; - changeProcCol=false; - } - - public override string GetTreeNodeText() - { - VEO_DummySet dset = (VEO_DummySet) this.parentObj; - string UnitSpecPrcNum = ROFST_FILE.ROProcessTools.UnitSpecific(Procedure_Number,0,0,dset.LargestNumber); -// return Procedure_Number + " " + Title; - return UnitSpecPrcNum + " " + Title; - } - - public override bool Open() - { - isOpen = true; - PrevDirectory = Directory.GetCurrentDirectory(); - VEO_DummySet ps = (VEO_DummySet) this.parentObj; - Directory.SetCurrentDirectory(ps._Location); - return true; - } - - // The close method resets, if necessary from any multi-user settings and - // positions back to the datapath directory (which is a level above the - // current level) - public override bool Close() - { - isOpen = false; - Directory.SetCurrentDirectory(PrevDirectory); - return true; - } - - -#if Upgrade2005_Print - public override bool Read(bool ChkForChldOnly) - { - VEO_DummySet ds = (VEO_DummySet) parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - string pth = ps._curDirectory + "\\" + ps._Location + "\\" + this._Location + ".dbf"; - if (ChkForChldOnly) - { - try - { -// vdb_Proc dbprc = new vdb_Proc(pth); -// int cnt = dbprc.GetCount("WHERE [SEQUENCE] like ' %'"); -// if (cnt>0) -// { - VEO_Section sct = new VEO_Section("XX", "XXXX", "TEMP", "XX", "0XXXXXXX"); //, this, true); - this.Children.Add(sct); -// } - } - catch (Exception e) - { - MessageBox.Show("Could not get count of sections " + e.Message); - return false; - } - - } - else - { - try - { - vdb_Proc dbprc = new vdb_Proc(pth); - DataSet sectset = dbprc.GetSortedByStepSeqType("WHERE [SEQUENCE] like ' %'"); - /* see if in order, assuming they are because of get sorted query.. */ - foreach (DataRow row in sectset.Tables[0].Rows) - { - // get properties of section & then create a section. - string Step = row["STEP"].ToString(); - string Sequence = row["SEQUENCE"].ToString(); - string Txt = row["TEXT"].ToString(); - string Type = row["TYPE"].ToString(); - string RecID = row["RECID"].ToString(); - VEO_Section sct = new VEO_Section(Step, Sequence, Txt, Type, RecID, this, false); - Children.Add(sct); - } - } - catch (Exception e) - { - MessageBox.Show("Error reading sections for " + this._Prcnum + ", " + e.Message); - return false; - } - } -#else - public override bool Read(bool dummy) - { - //load procs from set.dbf -#endif - return true; - } - - public override bool EditNode() - { - if(!isOpen) Open(); - if (!activeEdit) - { - ExecVfw(null); - activeEdit=true; - } - return true; - } - - public void ExecVfw(string appendarg) - { - StringBuilder sb = new StringBuilder(); - sb.Append("/c start /separate /w "); - sb.Append(this.usrRunTime.ExeAdjust("@vfw.exe")); - sb.Append(" /u-"); - sb.Append(this.usrRunTime.UserID); //user login/initials - sb.Append(" -o"); - sb.Append(this.usrRunTime.sec.userid.ToString()); - sb.Append(" -i"); // do initials - sb.Append(this.usrRunTime.sec.initials); - sb.Append(" -s\""); - sb.Append(this.usrRunTime.syspath); - sb.Append("\\vesam.opt\" -w"); - sb.Append(System.Convert.ToString(VEMessage.Handle_16bit,16)); - if (appendarg !=null && appendarg=="t") - sb.Append(" -t"); - else if (appendarg !=null && appendarg=="a") - sb.Append(" -a"); - - sb.Append(" -new"); - - // execute vfw using cmd because process was not creating the vfw process in - // its own memory space, i.e. only one copy of vfw came up even if two browsers - // tried to spawn it. - myProcess = new Process(); - myProcess.StartInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; - myProcess.StartInfo.FileName = "cmd"; - myProcess.StartInfo.Arguments = sb.ToString(); - myProcess.StartInfo.UseShellExecute = true; - myProcess.EnableRaisingEvents = true; - myProcess.Exited += new System.EventHandler(MyExitFunc); - // When vfw exits, 'MyExitFunc' method gets called from the above eventhandler - // where form is made visible again & locking/connecting is checked. - - try - { - IntPtr handle = - System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle; - mainForm = (Form)Form.FromHandle(handle); - mainForm.Enabled = false; - - myProcess.Start(); - } - catch (Win32Exception e) - { - MessageBox.Show(e.Message + ". Error on load of vfw."); - } - } - - private void MyExitFunc(object sender, System.EventArgs e) - { - mainForm.Visible = true; - mainForm.Enabled = true; - TreeView tv = null; - foreach (Control ctl in mainForm.Controls) - { - if (ctl is TreeView) tv = (TreeView)ctl; - } - if (tv != null) tv.Focus(); - VEO_DummySet ds = (VEO_DummySet) parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - // enter the connection (reenter). This will check for changes in locking, etc. - ps.Connection.Enter(false); - if (ps.Lock.LockStatus==VENetwork.Status.LockPending) ps.Lock.LockStatus=VENetwork.Status.Locked; - ps.icon = ps.iconStates[(int)ps.Lock.LockStatus]; - ps.treeNode.ImageIndex = ps.icon; - ps.treeNode.SelectedImageIndex = ps.icon; - mainForm = null; - activeEdit=false; - ps.AppSelForEdit=null; - } - - // see if the procedure can be deleted... - private bool canDelete() - { - // check for transitions to this procedure. If they exist, make - // up a search result list & use vfw to resolve. - VEO_DummySet pds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) pds.parentObj; - string pth = ps._curDirectory+"\\"+ps.Location+"\\tran.dbf"; - vdb_TransUsage transusg = new vdb_TransUsage(pth); - DataSet ds = transusg.GetSortedByToTrans("[TONUMBER] = \'"+this._Prcnum.Replace("'","''")+"\'"); - if (ds.Tables[0].Rows.Count !=0) - { - bool is_ext=false; - foreach(DataRow dr in ds.Tables[0].Rows) - { - if (dr["FROMNUMBER"].ToString() != this._Prcnum) - { - is_ext=true; - break; - } - } - if (is_ext) - { - MessageBox.Show("Delete Operation failed!\n\nYou need to remove transition references to this procedure.\n\nThe procedure editor will now display with a list of the transition locations."); - ExecVfw("t"); - return false; - } - } - return true; - } - - public override bool Delete() - { - if (!isOpen) Open(); - // first see if the procedure can be deleted (if the procedure has - // transitions to it, it cannot be deleted). If so, do it. - if (canDelete()==false) return false; - - VEO_DummySet pds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) pds.parentObj; - - //Remove the transitions 'from' in the usage file. - string pth = ps._curDirectory+"\\"+ps.Location+"\\tran.dbf"; - vdb_TransUsage transusg = new vdb_TransUsage(pth); - DataSet ds = transusg.GetSortedByFromTrans("[FROMNUMBER] = \'"+this._Prcnum.Replace("'","''")+"\'"); - int ndr = ds.Tables[0].Rows.Count; - foreach (DataRow dr in ds.Tables[0].Rows) dr.Delete(); - // if deleted any, need to save data & pack database - if (ndr>0) - { - transusg.DB_Data = ds.Tables[0].DataSet; - transusg.Pack(); - } - - // now, do the same for RO references - pth = ps._curDirectory+"\\"+ps.Location+"\\usagero.dbf"; - vdb_ROUsage rousg = new vdb_ROUsage(pth); - ds = rousg.GetSortedByProc("[NUMBER] = \'"+this._Prcnum.Replace("'","''")+"\'"); - ndr = ds.Tables[0].Rows.Count; - foreach (DataRow dr in ds.Tables[0].Rows)dr.Delete(); - if (ndr>0) - { - rousg.DB_Data = ds.Tables[0].DataSet; - rousg.Pack(); - } - - // remove procedure files & related rtffiles - foreach(string str in DBExtensions) - { - // status update function - count); - string filename = pds._Location + "\\" + this._Location + "." + str; - if (File.Exists(filename)) File.Delete(filename); - } - RemoveAccessoryFiles(this._Location,"wpfiles"); - RemoveAccessoryFiles(this._Location,"rtffiles"); - - // delete the record if the above goes ok. - pdatarow.Delete(); - VEO_DummySet dset = (VEO_DummySet) this.parentObj; - dset.vdbSet.DB_Data = pdatarow.Table.DataSet; - - // if there was a set extension record. Delete it too. - if(ps.hasExtensions) - { - procExt.drow.Delete(); - dset.vdbSetExt.DB_Data = procExt.drow.Table.DataSet; - procExt=null; - } - - // if parent dummy set only has this child, set its icon to empty - if (dset.Children.Count<=1) IsEmpty = true; - - // Note that the database is not getting packed - so pack it, and - // then re-read in the data for the procs (from the parent node). - int whichone=0; - for (int i=0;iptlength?ptlength:tmpTitle.Length); - pdatarow["TITLE"] = tmpTitle; - _Title = tmpTitle; - changeTitle=false; - dchange=true; - if (tmpTitle.Length+1 > dset.LargestTitleForMenu) - { - dset.LargestTitleForMenu = tmpTitle.Length+1; - dchnglarge=true; - } - } - if (changeProcNum && (string)pdatarow["NUMBER"]!=tmpProcNum) - { - if(tmpProcNum.Length>20) tmpProcNum= tmpProcNum.Substring(0,20); - oldnumber=_Prcnum; - newnumber=tmpProcNum; - pdatarow["NUMBER"] = tmpProcNum; - _Prcnum = tmpProcNum; - dchange=true; - if (tmpProcNum.Length+1 > dset.LargestNumber) - { - dset.LargestNumber = tmpProcNum.Length+1; - dchnglarge=true; - } - if ((tmpProcNum.Substring(0,1)!=" ") && tmpProcNum.Length+1>dset.LargestNumberForMenu) - { - dset.LargestNumberForMenu = tmpProcNum.Length+1; - dchnglarge= true; - } - } - - int itmpcol = (int)Procedure_Column+1; - string stmpcol=itmpcol.ToString(); - // check that the internal temporary column wasn't set to a default value of 2, - // this is set when the FORMAT field = null or 0. The Browser (and original DMAS) - // did not look at the format file value PMODE, as it should, to determine - // the default. This cannot be fixed at this time because during the format files - // are not read/parsed to get the value of PMODE. - bool deflt = (pdatarow["FORMAT"] is System.DBNull || (string)pdatarow["FORMAT"]=="0")&&stmpcol=="2"; - bool datadiff=false; - if (pdatarow["FORMAT"] is System.DBNull) - { - if (stmpcol!="2") datadiff=true; - } - else - datadiff = (string)pdatarow["FORMAT"]!=stmpcol; - - if (changeProcCol && datadiff && !deflt) - { - pdatarow["FORMAT"] = stmpcol; - _ProcColumn=Procedure_Column; - changeProcCol=false; - dchange=true; - } - - if(origProcCode != _ProcCode) - { - pdatarow["PROCCODE"] = _ProcCode; - dchange=true; - } - if(dchange) - { - try - { - // modify the first record if the largest string length changed. - if (dchnglarge) - { - DataRow recidrow = pdatarow.Table.Rows[0]; - string padstr1 = dset.LargestNumber.ToString("d2").PadLeft(2,'0'); - string padstr2 = dset.LargestNumberForMenu.ToString("d2").PadLeft(2,'0'); - string padstr3 = dset.LargestTitleForMenu.ToString("d2").PadLeft(2,'0'); - recidrow["NUMBER"] = padstr1 + " " + padstr2 + " " + padstr3; - } - dset.vdbSet.DB_Data = pdatarow.Table.DataSet; - } - catch (Exception e) - { - MessageBox.Show(e.Message); - return false; - } - } - // see if this has a setext to save.... - - if (pset.hasExtensions) - { - bool ret = this.procExt.Write(dset); - if (!ret) return false; - } - - // if the procedure number was changed, then need to update usage files - // with the new procnumber - if (changeProcNum && (newnumber != oldnumber)) - { - //Remove the transitions 'from' in the usage file. - string pth = pset._curDirectory+"\\"+pset.Location+"\\tran.dbf"; - vdb_TransUsage transusg = new vdb_TransUsage(pth); - transusg.UpdateProcNumber(oldnumber,newnumber); - transusg=null; - - pth = pset._curDirectory+"\\"+pset.Location+"\\usagero.dbf"; - vdb_ROUsage rousage = new vdb_ROUsage(pth); - rousage.UpdateProcNumber(oldnumber,newnumber); - rousage=null; - changeProcNum=false; - } - return true; - } - - - // Make an initial dummy step. - static void CreateInitStep(vdb_Proc prc) - { - // update the recid - DataTable tbl = prc.DB_Data.Tables[0]; - DataRow recidrow = tbl.Rows[0]; - string tmprecid = recidrow["RECID"].ToString(); - int irecid = System.Convert.ToInt32(tmprecid.Substring(2,6)); - irecid++; - tmprecid = tmprecid.Substring(0,2)+irecid.ToString("d6"); - recidrow["RECID"]=tmprecid; - - // add the new row for the first section - DataRow pdatarow = tbl.NewRow(); - pdatarow["RECID"] = "00000002"; - pdatarow["STEP"] = "A1"; - pdatarow["SEQUENCE"] = "S"; - pdatarow["TEXT"] = "Dummy Step"; - pdatarow["TYPE"] = "01"; - DateTime tm = System.DateTime.Now; - pdatarow["DATE"] = tm.ToString("MM/dd/yyyy"); - pdatarow["TIME"] = tm.ToString("HHmm") + ":"; - tbl.Rows.Add(pdatarow); - prc.DB_Data = pdatarow.Table.DataSet; - } - - // Make an initial procedure step section. - static void CreateInitSection(vdb_Proc prc) - { - // update the recid - DataTable tbl = prc.DB_Data.Tables[0]; - DataRow recidrow = tbl.Rows[0]; - string tmprecid = recidrow["RECID"].ToString(); - int irecid = System.Convert.ToInt32(tmprecid.Substring(2,6)); - irecid++; - tmprecid = tmprecid.Substring(0,2)+irecid.ToString("d6"); - recidrow["RECID"]=tmprecid; - - // add the new row for the first section - DataRow pdatarow = tbl.NewRow(); - pdatarow["RECID"] = "00000001"; - pdatarow["STEP"] = "A0"; - pdatarow["SEQUENCE"] = " 1X"; - pdatarow["TEXT"] = "Procedure Steps"; - pdatarow["TYPE"] = "01"; - DateTime tm = System.DateTime.Now; - pdatarow["DATE"] = tm.ToString("MM/dd/yyyy"); - pdatarow["TIME"] = tm.ToString("HHmm") + ":"; - tbl.Rows.Add(pdatarow); - prc.DB_Data = pdatarow.Table.DataSet; //save the changed dataset info - } - - // Create a new procedure. - public override bool SaveNew(string dummy) - { - try - { - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - // check for a valid name. - // create the new procedure file, create the initial section & initial step. - vdb_Proc newprc = new vdb_Proc(""); - newprc.CreateTable(this._Location); - CreateInitSection(newprc); // Make procedure section - CreateInitStep(newprc); // Add a dummy step - - // Add the record to the set file. - DataTable pdatatable = ds.vdbSet.DB_Data.Tables[0]; - DataRow recidrow = pdatatable.Rows[0]; - string currecid = recidrow["RECID"].ToString(); - string tmprecid = currecid; - int irecid = System.Convert.ToInt32(tmprecid.Substring(2,6)); - irecid++; - tmprecid = tmprecid.Substring(0,2)+irecid.ToString("d6"); - recidrow["RECID"]=tmprecid; - pdatarow = pdatatable.NewRow(); - - // check whether to trim the number & title. - if (Procedure_Number.Length>20)Procedure_Number=Procedure_Number.Substring(0,20); - if (Title.Length>78)Title=Title.Substring(0,78); - pdatarow["RECID"] = currecid; - pdatarow["TITLE"] = Title; - pdatarow["NUMBER"] = Procedure_Number; - int itmpcol = (int)Procedure_Column+1; - pdatarow["FORMAT"] = itmpcol.ToString(); - pdatarow["ENTRY"] = _Location; - DateTime tm = System.DateTime.Now; - pdatarow["DATE"] = tm.ToString("MM/dd/yyyy"); - pdatarow["TIME"] = tm.ToString("HHmm") + ":"; - pdatarow["PROCCODE"] = _ProcCode; - pdatatable.Rows.Add(pdatarow); - - // See if this proc's data changes the largest numbers stored - // in the first record. - bool chg = false; - if (Procedure_Number.Length+1 > ds.LargestNumber) - { - chg=true; - ds.LargestNumber = Procedure_Number.Length+1; - } - if ((Procedure_Number.Substring(0,1)!=" ") && (Procedure_Number.Length+1>ds.LargestNumberForMenu)) - { - chg=true; - ds.LargestNumberForMenu = Procedure_Number.Length+1; - } - if (Title.Length+1 > ds.LargestTitleForMenu) - { - chg=true; - ds.LargestTitleForMenu = Title.Length+1; - } - if (chg) - { - string padstr1 = ds.LargestNumber.ToString("d2").PadLeft(2,'0'); - string padstr2 = ds.LargestNumberForMenu.ToString("d2").PadLeft(2,'0'); - string padstr3 = ds.LargestTitleForMenu.ToString("d2").PadLeft(2,'0'); - recidrow["NUMBER"] = padstr1 + " " + padstr2 + " " + padstr3; - } - ds.vdbSet.DB_Data = pdatarow.Table.DataSet; - _Title=Title; - _Prcnum=Procedure_Number; - _ProcColumn=Procedure_Column; - changeTitle=false; - changeProcCol=false; - changeProcNum=false; - - if (ps.hasExtensions) this.procExt.SaveNew(this, tmprecid); - isNew=false; - ds.icon = ds.iconStates[0]; // in case it was empty - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Could not perform database functions required to add procedure."); - return false; - } - return true; - } - - public override bool updateROValues() - { - // update the ro values for this procset, so get parent's (dummy set), parent - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - return ps.updateROValues(); - } - - public override void CleanTransitionsAndROsUsages(int clntype,string ProcName) - { - // clean, send this procname to procedure set to spawn the clean - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - ps.CleanTransitionsAndROsUsages(clntype,this._Prcnum); - } - - public override void ApproveProcedures(int aptype, ArrayList procs) - { - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - if (aptype == 0) - ps.ApproveProcedures(aptype,null); - else if (procs.Count>0) - ps.ApproveProcedures(aptype,procs); - else - { - ArrayList prcs = new ArrayList(); - prcs.Add(this); - ps.ApproveProcedures(aptype,prcs); - } - } - - public override void DataIntegrityCheck(string ProcName) - { - // send this procname to procedure set to spawn the DataCheck - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - ps.DataIntegrityCheck(this._Prcnum); - } - - private void MoveFixFile(string apname, string appath, VEO_ProcSet ps) - { - string[] FxExt = {".FIX",".FX1",".FX2",".FX3",".FX4",".FX5",".FX6",".FX7",".FX8"}; - string apvname = (apname==null || apname == "")?_Location:apname; - foreach (string str in FxExt) - ps.CopyAnyFileToApproved(_Location+str,apvname+str,appath); - } - - private void FixProcDateAndTime(string apname, VEO_ProcSet ps) - { - string[] extensions = {".dbf",".dbt",".ndx"}; - string appath = null; - string wd = null; - string apvname = (apname==null||apname=="")?_Location:apname; - foreach (string str in extensions) - { - appath = ps.GetApprovedDirectory("\\") + apvname + str; - wd = _Location + str; - FileInfo fi_app = new FileInfo(appath); - FileInfo fi_wd = new FileInfo(wd); - fi_app.LastWriteTime = fi_wd.LastWriteTime; - File.Copy(appath, wd, true); - fi_app = new FileInfo(appath); - fi_wd = new FileInfo(wd); - fi_app.LastWriteTime = fi_wd.LastWriteTime; - fi_wd.LastWriteTime = fi_app.LastWriteTime; - } - } - - public void Copy(string srcdir, string destdir, string prcnum, string prcfile) - { - VEO_DummySet ds = (VEO_DummySet) parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - // if there is a new procedure to add for a modified proc number, - // prcfile will not == the _Location. Use it instead. - string loc=null; - if (prcfile != _Location) - loc = prcfile; - else - loc = _Location; - string destfile = destdir + "\\" + loc; - string srcfile = (srcdir==null)? _Location: srcdir + "\\" + _Location; - - if (!File.Exists(srcfile+".dbf")) return; - if (File.Exists(destfile+".dbf")) File.Delete(destfile+".dbf"); - if (File.Exists(destfile+".ndx")) File.Delete(destfile+".ndx"); - if (File.Exists(destfile+".dbt")) File.Delete(destfile+".dbt"); - - vdb_Proc dbprc = null; - try - { - dbprc = new vdb_Proc(srcfile+".dbf"); - // Use SelectIntoNewTable to create the table & copy it over using - // sql select * into ... Then just make an instance of the table, this - // will set up indexes and inf files as necessary. - dbprc.SelectIntoNewTable(srcdir+"\\"+destfile); - string cwd = Directory.GetCurrentDirectory(); - Directory.SetCurrentDirectory(destdir); - vdb_Proc apprc = new vdb_Proc(loc+".dbf"); - Directory.SetCurrentDirectory(cwd); - apprc=null; - } - catch (Exception e) - { - MessageBox.Show("Could not copy " + _Location + " to approved." + e.Message); - return; - } - - // now copy over rtf files by finding the procedure records that are attachments. - DataSet accset=null; - try - { - accset = dbprc.GetSortedByStepSeqType("WHERE [SEQUENCE] like ' %'"); - } - catch (Exception e) - { - MessageBox.Show("Could not copy over accessory page files " + this._Prcnum + ", " + e.Message); - return; - } - string rtfsrcdir = srcdir + "\\rtffiles\\" + this._Location + ".A"; - string rtfdestdir = destdir + "\\rtffiles\\" + prcfile + ".A"; - foreach (DataRow dr in accset.Tables[0].Rows) - { - bool accpage = (char.IsLetter(dr["STEP"].ToString()[1]))?true:false; - if (accpage) - { - string stpno = (string) dr["STEP"].ToString(); - char accsect = stpno[0]; - string tmpext = (accsect-'@').ToString("D2"); - if (File.Exists(rtfsrcdir+tmpext)) - File.Copy(rtfsrcdir+tmpext,rtfdestdir+tmpext,true); - } - } - - for (int i=0;iptlength?ptlength:_Title.Length); - foundRow["NUMBER"] = _Prcnum; - foundRow["ENTRY"]= _Location==ApProcFile?_Location:ApProcFile; - - foundRow["FORMAT"] = pdatarow["FORMAT"]; // if modified, pdatarow has current - foundRow["PROCCODE"] = _ProcCode; - - // if removing change bars, update the working draft date/time stamp - // for this procedure. - if (ps.RmChgBarOnApp) - { - ps.UpdateSetDTI(false,pdatarow); - ds.vdbSet.DB_Data = pdatarow.Table.DataSet; - } - - vdbSet.DB_Data = foundRow.Table.DataSet; // write it out - - // now make sure we update the largestnumber data in the set header - - recidrow = pdatarow.Table.Rows[0]; - string tmplarge = recidrow["NUMBER"].ToString(); - if (tmplarge == null || tmplarge == "") tmplarge = "00000000"; - bool update=false; - if (ds.LargestNumber != System.Convert.ToInt32(tmplarge.Substring(0,2))) - { - update=true; - tmplarge = ds.LargestNumber.ToString("d2").PadLeft(2,'0') + tmplarge.Substring(2,tmplarge.Length-2); - } - if (ds.LargestNumberForMenu != System.Convert.ToInt32(tmplarge.Substring(3,2))) - { - update = true; - tmplarge = tmplarge.Substring(0,3) + ds.LargestNumberForMenu.ToString("d2").PadLeft(2,'0') + tmplarge.Substring(5,tmplarge.Length-5); - } - if (ds.LargestTitleForMenu != System.Convert.ToInt32(tmplarge.Substring(6,2))) - { - update = true; - tmplarge = tmplarge.Substring(0,6) + ds.LargestTitleForMenu.ToString("d2").PadLeft(2,'0'); - } - if (update) - { - recidrow["NUMBER"] = tmplarge; - vdbSet.DB_Data = recidrow.Table.DataSet; // write it out - } - } - - // pass in approved path & approved procedure number, i.e. original procedure - // number - if the proc number is modified, this stores original otherwise - // it is the current proc number. (if this is a new procedure then ApProcNum=null. - public void FixTransitionReferences(string ApprovedPath, string ApProcNum) - { - string appath=ApprovedPath+"\\tran.dbf"; - VEO_DummySet ds = (VEO_DummySet) parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - try - { - vdb_TransUsage atransusg = new vdb_TransUsage(appath); - // if this procedure existed before this approval, then remove transitions-from - // approved version (they'll be added back later). - if (ApProcNum != null) - { - DataSet adset = atransusg.GetSortedByFromTrans("[FROMNUMBER] = \'"+ApProcNum.Replace("'","''")+"\'"); - int ndr = adset.Tables[0].Rows.Count; - if (ndr > 0) - { - int errs = atransusg.DeleteSelected("[FROMNUMBER] = \'"+ApProcNum.Replace("'","''")+"\'"); - if (errs>0) - { - MessageBox.Show("Error resolving transition records"); - return; - } - atransusg.Pack(); - } - - // if there was a change in procedure number, then update the transitions-to in - // the approved version. - if (ApProcNum!=_Prcnum) - { - adset.Clear(); - adset = atransusg.GetSortedByToTrans("[TONUMBER] = \'"+ApProcNum.Replace("'","''")+"\'"); - ndr = adset.Tables[0].Rows.Count; - foreach (DataRow dr in adset.Tables[0].Rows) dr["TONUMBER"]=_Prcnum; - if (ndr>0) atransusg.DB_Data = adset.Tables[0].DataSet; - } - adset.Clear(); - adset=null; - } - - // now update the approved transitions from data based on data in the working - // draft. - vdb_TransUsage transusg = new vdb_TransUsage(ps._curDirectory+"\\"+ps.Location+"\\tran.dbf"); - DataSet wdset = transusg.GetSortedByFromTrans("[FROMNUMBER] = \'"+_Prcnum.Replace("'","''")+"\'"); - if (wdset.Tables[0].Rows.Count>0) - { - int errs = transusg.InsertInto(ps._curDirectory+"\\"+ps.Location+"\\"+appath,"[FROMNUMBER] = \'"+_Prcnum.Replace("'","''")+"\'"); - if (errs>0) - { - MessageBox.Show("Error resolving transition records"); - return; - } - - // Now update the working draft 'OLDTO' field to contain the current - // working draft 'TONUMBER'+'TOSEQUENCE' fields. - StringBuilder qry = new StringBuilder(); - qry.Append("UPDATE TRAN SET TRAN.OLDTO = [TONUMBER] & Space(20-Len([TONUMBER])) & [TOSEQUENCE] & Space(12-Len([TOSEQUENCE])) "); - qry.Append("WHERE (tran.FROMNUMBER=\'"); - qry.Append(_Prcnum.Replace("'","''")); - qry.Append("\' AND tran.TOSEQUENCE IS NOT NULL)"); - - // This one handles the libdocs (their TOSEQUENCE is null). - bool success = transusg.UpdateUsing(qry.ToString()); - if (!success) MessageBox.Show("Error When Updating Transition history"); - qry.Length=0; - qry.Append("UPDATE TRAN SET TRAN.OLDTO = [TONUMBER] & Space(20-Len([TONUMBER])+12) "); - qry.Append("WHERE (tran.FROMNUMBER=\'"); - qry.Append(_Prcnum.Replace("'","''")); - qry.Append("\' AND tran.TOSEQUENCE IS NULL)"); - success = transusg.UpdateUsing(qry.ToString()); - if (!success) MessageBox.Show("Error When Updating Transition history"); - } - wdset.Dispose(); - transusg=null; - atransusg=null; - } - catch (Exception e) - { - MessageBox.Show("Could not approve transition usages for " + _Prcnum + ", "+e.Message); - } - } - - -#if Upgrade2005_Print -#else - public override void AddToTree(TreeNode parentnd) - { - } - public override bool Expand(TreeNode parentnd) - { - return true; - } -#endif - public override bool mnuAllowUpdRO() - { - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - if (ps.isApproved||ps.IsEmpty||ps.isTempChange) return false; - return (amILockedByMe()); - } - - public override bool mnuAllowClean() - { - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - if (ps.isApproved||ps.IsEmpty) return false; - if (amILockedByMe()==false) return false; - if ((ps.accessFlags&Security.CLEAN)==Security.CLEAN) return true; - return false; - } - - public override bool mnuAllowDataCheck() - { - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - if (ps.isApproved||ps.IsEmpty) return false; - if (amILockedByMe()==false) return false; - if ((ps.accessFlags&Security.CLEAN)==Security.CLEAN) return true; - return false; - } - - public override bool mnuAllowChgDef() - { - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - if (ps.IsEmpty) return false; - return(amILockedByMe()); - } - - public override bool mnuAllowNew() - { - return false; - } - - public override bool mnuAllowApprove() - { - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - if (amILockedByMe()==false) return false; - if ((ps.isApproved == false) && (ps.isTempChange==false)) return true; - return false; - } - - public override bool mnuAllowApproveSel() - { - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - if (ps.isApproved || ps.IsEmpty || ps.isTempChange) return false; - if (amILockedByMe()==false) return false; - if (ps.isSetApproved && ((ps.accessFlags&Security.APPROVESINGLE)==Security.APPROVESINGLE)) return true; - return false; - } - - public override bool mnuAllowApproveAll() - { - bool allowit=false; - bool allowonlyonce=false; - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - if (ps.isApproved || ps.IsEmpty || ps.isTempChange) return false; // cannot approve an approved set - if (amILockedByMe()==false) return false; - if ((ps.accessFlags&Security.APPROVE)==Security.APPROVE) allowit = true; - // also check if there is a serial number option which allows only one - // approve-all, i.e. if an approved version exists, cannot approve all. - if (usrRunTime.SerialNumber.GetSNOption((uint)Utils.SerialNo.SN_Flags.SN_ONLYAPPROVEONCE_ON)>0) - allowonlyonce=true; - if (allowonlyonce && ps.isSetApproved) return false; - if (allowit) return true; - return false; - } - - // the following method is used by various other methods to determine whether modifications - // can be made to the procedure. - private bool AllowMods() - { - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - if (ps.isApproved == true) return false; - if (amILockedByMe()==false) return false; -// Right now we are allowing the slave's procedure number and title be changed -// - but it will be wiped out when/if the master's set file changes. -// - If we want to NOT allow changes to the slave's procedure number and title -// then uncomment the following line. - jsj 04/08/05 -// if (ps._ProcType == ProcTypeOptions.Slave) return false; - if ((ps.accessFlags&Security.ADDMODDEL)==Security.ADDMODDEL) return true; - return false; - } - public override bool mnuAllowDelete() - { - return AllowMods(); - } - public override bool canEdit() - { - return AllowMods(); - } - - // determine whether drag/drop can occur. - public override bool canDoDragDrop() - { - // allow user to change order in approved set list - // return AllowMods(); - VEO_DummySet ds = (VEO_DummySet) this.parentObj; - VEO_ProcSet ps = (VEO_ProcSet) ds.parentObj; - if (amILockedByMe()==false) return false; - if (ps._ProcType == ProcTypeOptions.Slave) return false; - if ((ps.accessFlags&Security.ADDMODDEL)==Security.ADDMODDEL) return true; - return false; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ProcExt.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ProcExt.cs deleted file mode 100644 index 0a338fa4..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ProcExt.cs +++ /dev/null @@ -1,218 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ProcExt.cs $ $Revision: 3 $ - * $Author: Kathy $ $Date: 4/21/05 10:22a $ - * - * $History: ProcExt.cs $ - * - * ***************** Version 3 ***************** - * User: Kathy Date: 4/21/05 Time: 10:22a - * Updated in $/LibSource/VEObject - * remove upgrade2005 define - * - * ***************** Version 2 ***************** - * User: Kathy Date: 3/08/05 Time: 1:51p - * Updated in $/LibSource/VEObject - * Approval - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:53a - * Created in $/LibSource/VEObject - *********************************************************************************************/ - -using System; -using System.Collections; -using System.Text; -using System.IO; -using System.Windows.Forms; -using System.Data; -using System.ComponentModel; -using System.Diagnostics; -using Utils; -using VDB; - -namespace VEObject -{ - /// - /// VEO_ProcExt support procedure set functionality. - /// - public class VEO_ProcExt : VEO_Base - { - public string latestRev; // 30 char long - public string latestPC; // 10 char long - public string recID; // 8 char long - public string approvalTD; - private string tmpComment; - private bool changeComment; - private string _Comment; - public DataRow drow; - - public VEO_ProcExt(string comment, string rev, string pc, string recid, string std, DataRow row) - { - changeComment=false; - _Comment = comment; - latestRev = rev; - latestPC = pc; - recID = recid; - approvalTD = std; - drow = row; - if (std==null || std=="") - approvalTD = "Not Approved"; - else - { - DateTime dtx = System.Convert.ToDateTime(std); - ThisTimeZone TZ = new ThisTimeZone(); - TimeSpan TimeZoneSpan = TZ.GetUtcOffset(dtx); // Time Zone offset from UTC - long TimeZoneAdj = Math.Abs(TimeZoneSpan.Ticks / 10000000); // convert to seconds - DateTime cnv = dtx.AddSeconds(-TimeZoneAdj); - approvalTD = cnv.ToLongDateString() + " " + cnv.ToLongTimeString(); - } - } - - [Description("Approved"),Category("Procedure Extension"),ReadOnly(true)]public string Approved - { - get{return approvalTD;} - } - - [Description("Revision"),Category("Procedure Extension"),ReadOnly(true)]public string Revision - { - get{return latestRev;} - } - - [Description("Change ID"),Category("Procedure Extension"),ReadOnly(true)]public string ChangeID - { - get{return latestPC;} - } - [Description("Comment"),Category("Procedure Extension")]public string Comment - { - get - { - if (!changeComment) - return _Comment; - else - return tmpComment; - } - set - { - changeComment=true; - tmpComment=value; - } - } - - public override void Restore() - { - changeComment=false; - } - - public bool SaveNew(VEO_Proc prc, string srecid) - { - try - { - VEO_DummySet ds = (VEO_DummySet) prc.parentObj; - - // Add the record to the setext file. - DataTable pdatatable = ds.vdbSetExt.DB_Data.Tables[0]; - DataRow recidrow = pdatatable.Rows[0]; - recidrow["RECID"]=srecid; - DataRow pdatarow = pdatatable.NewRow(); - recID = srecid; - pdatarow["RECID"] = srecid; - pdatarow["COMMENT"] = Comment; - pdatarow["REV"] = System.DBNull.Value; - pdatarow["PC"] = System.DBNull.Value; - - pdatatable.Rows.Add(pdatarow); - ds.vdbSetExt.DB_Data = pdatarow.Table.DataSet; - _Comment=Comment; - changeComment=false; - drow=pdatarow; - prc.procExt = this; - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Could not perform database functions required to add procedure."); - return false; - } - return true; - } - - public override bool Read(bool dummy) - { - return true; - } - - public bool Write(VEO_DummySet dset) - { - bool dchange=false; - VEO_ProcSet pset = (VEO_ProcSet) dset.parentObj; - if (changeComment) - { - if((drow["COMMENT"]==System.DBNull.Value && tmpComment!=null) ||((string)drow["COMMENT"]!=tmpComment)) - { - drow["COMMENT"] = tmpComment; - _Comment = tmpComment; - changeComment=false; - dchange=true; - } - } - if(dchange) - { - try - { - dset.vdbSetExt.DB_Data = drow.Table.DataSet; - } - catch (Exception e) - { - MessageBox.Show(e.Message); - return false; - } - } - return true; - } - - public void SetProcApprovedDate(string dbname, string ApprovedPath) - { - MessageBox.Show("Set Extention setting of approval date is not implemented yet"); - - - /* - * string apprfilepath = ApprovedPath + "\\" + dbname + ".dbf"; - DateTime dt = File.GetLastWriteTime(apprfilepath); - - //C - CODE.... - //get the approved file date/time stamp - if ( getftime(apprfile, &ft) == -1) - { - Zfree(&buff); - close(apprfile); - return; - } - close(apprfile); - // assign the file date/time to the Date and Time structures - dt.da_year = ft.ft_year + 1980; - dt.da_mon = (char)ft.ft_month; - dt.da_day = (char)ft.ft_day; - tm.ti_hour = (char)ft.ft_hour; - tm.ti_min = (char)ft.ft_min; - tm.ti_sec = (char)ft.ft_tsec << 1; - - // getdate(&dt); - // gettime(&tm); - (void) VDB_GetSetExtRecord(SetExtfd,rec,(char *)buff); - buff->approvalTD=dostounix(&dt,&tm); - NWSetMode(NWExclusive); - - if (!VDB_LockSetFile(SetExtfd)) - return; - (void) VDB_UpdateSetExtRecord(SetExtfd,rec,(char *)buff); - NWResetMode(); - VDB_UnLockSetFile(SetExtfd); - Zfree(&buff); - - return; - */ - } - } -} \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ProcSet.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ProcSet.cs deleted file mode 100644 index fd852ab1..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/ProcSet.cs +++ /dev/null @@ -1,4582 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ProcSet.cs $ $Revision: 45 $ - * $Author: Jsj $ $Date: 11/09/06 11:33a $ - * - * $History: ProcSet.cs $ - * - * ***************** Version 45 ***************** - * User: Jsj Date: 11/09/06 Time: 11:33a - * Updated in $/LibSource/VEObject - * skip empty library document files - * - * ***************** Version 44 ***************** - * User: Jsj Date: 10/06/06 Time: 11:21a - * Updated in $/LibSource/VEObject - * fixed logic in creating a new Enhanced Document set and in updating an - * Enhanced Document SET file. - * - * ***************** Version 43 ***************** - * User: Jsj Date: 8/30/06 Time: 10:04a - * Updated in $/LibSource/VEObject - * Added Multi Procedure Data Checker - * - * ***************** Version 42 ***************** - * User: Jsj Date: 7/21/06 Time: 2:58p - * Updated in $/LibSource/VEObject - * fixed Unhandled Exception error - * - * ***************** Version 41 ***************** - * User: Jsj Date: 7/06/06 Time: 2:08p - * Updated in $/LibSource/VEObject - * Fixed enhanced document set creation bug. The link files where being - * put in the wrong place. - * - * ***************** Version 40 ***************** - * User: Kathy Date: 6/15/06 Time: 8:59a - * Updated in $/LibSource/VEObject - * B2006-024 fix: check for exclusive connection before approval & lock - * during approval - * - * ***************** Version 39 ***************** - * User: Kathy Date: 5/01/06 Time: 11:18a - * Updated in $/LibSource/VEObject - * Fix B2006-018: single quote in proc number causes problem on data - * request - * - * ***************** Version 38 ***************** - * User: Jsj Date: 9/20/05 Time: 2:48p - * Updated in $/LibSource/VEObject - * ContAct.INI logic for approve and master/slave, also Proc.INI logic for - * approve - * - * ***************** Version 37 ***************** - * User: Kathy Date: 9/20/05 Time: 1:17p - * Updated in $/LibSource/VEObject - * Copy lib docs - initialize a variable - * - * ***************** Version 36 ***************** - * User: Jsj Date: 9/16/05 Time: 9:55a - * Updated in $/LibSource/VEObject - * Additional approval checks for RO Usage, RO directory existance, and - * date of RO.FST file - * - * ***************** Version 35 ***************** - * User: Kathy Date: 9/06/05 Time: 11:25a - * Updated in $/LibSource/VEObject - * B2005-032 (use largest numDatabases for app ind write ro.fst) - * - * ***************** Version 34 ***************** - * User: Kathy Date: 8/31/05 Time: 11:33a - * Updated in $/LibSource/VEObject - * B2005-032: new groups crashed when writing to ro.fst during approve - * sel. - * - * ***************** Version 33 ***************** - * User: Kathy Date: 8/16/05 Time: 2:56p - * Updated in $/LibSource/VEObject - * B2005-030: error if missing ndx - * - * ***************** Version 32 ***************** - * User: Kathy Date: 7/26/05 Time: 2:07p - * Updated in $/LibSource/VEObject - * Improve error message on updatesetdti if bad largestnumber data - * - * ***************** Version 31 ***************** - * User: Jsj Date: 7/15/05 Time: 4:06p - * Updated in $/LibSource/VEObject - * added check for empty RO usage - * - * ***************** Version 30 ***************** - * User: Kathy Date: 7/11/05 Time: 8:02a - * Updated in $/LibSource/VEObject - * Fix status message - * - * ***************** Version 29 ***************** - * User: Kathy Date: 7/07/05 Time: 1:49p - * Updated in $/LibSource/VEObject - * Fix Approve All Remove Change Bars from WD caption - * - * ***************** Version 28 ***************** - * User: Kathy Date: 6/21/05 Time: 7:26a - * Updated in $/LibSource/VEObject - * update ro from procedures & minor fixes - * - * ***************** Version 27 ***************** - * User: Jsj Date: 6/16/05 Time: 2:46p - * Updated in $/LibSource/VEObject - * Check for valid RO path before doing an approval - * - * ***************** Version 26 ***************** - * User: Kathy Date: 6/06/05 Time: 12:35p - * Updated in $/LibSource/VEObject - * Allow lock to be set, even if plant or system lock exists - * - * ***************** Version 25 ***************** - * User: Jsj Date: 6/02/05 Time: 11:35a - * Updated in $/LibSource/VEObject - * fix for approving with conditional ROs - * - * ***************** Version 24 ***************** - * User: Kathy Date: 5/31/05 Time: 12:42p - * Updated in $/LibSource/VEObject - * ? in vfw for ro values if approve selected before vfw - * - * ***************** Version 23 ***************** - * User: Kathy Date: 5/25/05 Time: 10:32a - * Updated in $/LibSource/VEObject - * Allow edits for tmpchg - * - * ***************** Version 22 ***************** - * User: Kathy Date: 5/20/05 Time: 10:23a - * Updated in $/LibSource/VEObject - * explicit close of ro.fst - * - * ***************** Version 21 ***************** - * User: Jsj Date: 5/20/05 Time: 9:22a - * Updated in $/LibSource/VEObject - * get the non-processed ro return value for saving in the RO.FST file - * - * ***************** Version 20 ***************** - * User: Kathy Date: 5/19/05 Time: 11:07a - * Updated in $/LibSource/VEObject - * missed updating oldto transition field on approve all - * - * ***************** Version 19 ***************** - * User: Jsj Date: 5/17/05 Time: 11:58a - * Updated in $/LibSource/VEObject - * Approve Graphic fix, cleanup - * - * ***************** Version 18 ***************** - * User: Jsj Date: 5/12/05 Time: 11:52a - * Updated in $/LibSource/VEObject - * fixed logic dealing with PROC.INI parent (master) identification and - * the EOP.LNK parent identification - * - * ***************** Version 17 ***************** - * User: Kathy Date: 5/11/05 Time: 9:29a - * Updated in $/LibSource/VEObject - * bug fixes/mods for approval testing - * - * ***************** Version 16 ***************** - * User: Jsj Date: 5/06/05 Time: 12:08p - * Updated in $/LibSource/VEObject - * bug fix setting creating new enhanced document set (setting up) - * - * ***************** Version 15 ***************** - * User: Kathy Date: 4/21/05 Time: 10:23a - * Updated in $/LibSource/VEObject - * remove upgrade2005 define & cleanup - * - * ***************** Version 14 ***************** - * User: Jsj Date: 4/15/05 Time: 9:46a - * Updated in $/LibSource/VEObject - * Bug fix B2005-021, parent and erg selections (backgrounds, deviations, - * slaves) was not sticking when changed. - * - * ***************** Version 13 ***************** - * User: Kathy Date: 4/12/05 Time: 1:04p - * Updated in $/LibSource/VEObject - * B2005-008: C2005-001: B2005-020. - * - * ***************** Version 12 ***************** - * User: Jsj Date: 3/31/05 Time: 9:17a - * Updated in $/LibSource/VEObject - * - * ***************** Version 11 ***************** - * User: Jsj Date: 3/28/05 Time: 12:17p - * Updated in $/LibSource/VEObject - * - * ***************** Version 10 ***************** - * User: Kathy Date: 3/22/05 Time: 10:09a - * Updated in $/LibSource/VEObject - * approve: remove chg bar/log file - * - * ***************** Version 9 ***************** - * User: Jsj Date: 3/14/05 Time: 1:37p - * Updated in $/LibSource/VEObject - * - * ***************** Version 8 ***************** - * User: Jsj Date: 3/10/05 Time: 4:01p - * Updated in $/LibSource/VEObject - * hooks to use the new rofst file namespace - * - * ***************** Version 7 ***************** - * User: Kathy Date: 3/08/05 Time: 1:51p - * Updated in $/LibSource/VEObject - * Approval - * - * ***************** Version 6 ***************** - * User: Kathy Date: 1/31/05 Time: 11:06a - * Updated in $/LibSource/VEObject - * Fix B2005-005 (connection & delete directory errors). also, fix icon - * - * ***************** Version 5 ***************** - * User: Kathy Date: 1/24/05 Time: 2:45p - * Updated in $/LibSource/VEObject - * B2005-004 fixes - * - * ***************** Version 4 ***************** - * User: Kathy Date: 1/10/05 Time: 1:07p - * Updated in $/LibSource/VEObject - * B2004-062: Allow new sets name of PROCS & PROCS2, and other fixes - * - * ***************** Version 3 ***************** - * User: Jsj Date: 11/12/04 Time: 10:35a - * Updated in $/LibSource/VEObject - * Change Default Settings fix - * - * ***************** Version 2 ***************** - * User: Kathy Date: 10/25/04 Time: 10:25a - * Updated in $/LibSource/VEObject - * Fix B2004-049 and don't load link info if only checking for child data - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:53a - * Created in $/LibSource/VEObject - *********************************************************************************************/ - -using System; -using System.Collections; -using System.Text; -using System.IO; -using System.Windows.Forms; -using System.Data; -using System.ComponentModel; -using System.Diagnostics; - -using Utils; -using GUI_Utils; -using VlnStatus; -using VDB_Proc; -using VENetwork; -using VDB; -using VDB_Set; -using VDB_SetExt; -using VDB_TransUsage; -using VDB_ROUsage; -using IniFileIO; - -namespace VEObject -{ - /// - /// VEO_ProcSet support procedure set functionality. - /// - public class VEO_ProcSet : VEO_Base - { - public bool isArchived; - public bool isApproved; // flags that this is an approved set - public bool isSetApproved; // flags set that has an approved subdirectory - public bool isTempChange; // flags that this is a temporary change set, - // i.e. tmpchg subdirectory in an approved dir - public bool hasLibDocs; - public bool setExists; - public bool hasExtensions; // has setextension (proccomment) option - public bool cfg_load; // flags whether cfg settings have been loaded yet - public ProcTypeOptions _ProcType; - public string parentLink; - public string guideLink; - public string ROPath; - public string _curDirectory; - public string _formatTitle; - private PSProperties propdlg; - public string ErrorOnPSName; - protected string tmpTitle; - protected string tmpLocation; - protected bool changeLocation; - protected bool changeTitle; - private string[] LinkFiles={"\\BCK.LNK","\\DVT.LNK","\\ERG.LNK"}; - private string PrevDirectory; - public string SuffixFlags; - public string ExtraRevNumber; - public string origExtraRevNumber; // check against for saving - public bool hasExtraRevNumber; - public long accessFlags; - public bool blnCopiedProcINI; - public string DateTimeInit; - public bool HasRevision; // flags that serial number includes approval revising function - public bool UseLongProcTitles; - // flag whether to remove change bars during approval (set on procset properties & - // value saved in proc.ini). Default is true. - public bool RmChgBarOnApp; - public bool tmpRmChgBarOnApp; - // the following should contain one of the procs to approve for approve selected, in case - // of edit conflicts at the set or 'Procedures' level. - public VEO_Proc AppSelForEdit; - - public VEO_ProcSet(UserRunTime iusrRunTime, string ititle, string ipath, long acFlags) - { - isTempChange=false; - isApproved=false; - accessFlags=acFlags; - ErrorOnPSName=null; - ExtraRevNumber=null; - origExtraRevNumber=null; - usrRunTime = iusrRunTime; - cfg_load = false; - hasExtensions = usrRunTime.SerialNumber.GetSNOption((uint)Utils.SerialNo.SN_Flags.SN_PROCCOMMENT_ON)>0; - hasExtraRevNumber=false; - SuffixFlags=null; - blnCopiedProcINI = false; - AppSelForEdit = null; - if (ititle==null) - { - _curDirectory = ipath; - isNew=true; - _Title = "New Procedure Set"; - _Location = ""; - } - else - { - int indx1, indx2; - if (((indx1=ipath.IndexOf("\\approved"))>-1) || ((indx2=ipath.IndexOf("\\APPROVED"))>-1)) - isApproved=true; - - isSetApproved=false; - if(!isApproved) // see if this set has associated approved version - { - string apname = ipath + "\\approved\\set.dbf"; - isSetApproved = File.Exists(apname); - } - changeLocation=false; - changeTitle=false; - isNew=false; - string tmpstr = ipath.ToLower(); - int indxd; - int indxb; - int indxs; - indxd = tmpstr.IndexOf(".dvt"); - indxb = tmpstr.IndexOf(".bck"); - indxs = tmpstr.IndexOf(".sl"); - if (indxd > -1) - _ProcType=ProcTypeOptions.Deviation; - else if (indxb > -1) - _ProcType=ProcTypeOptions.Background; - else if (indxs > -1) - _ProcType=ProcTypeOptions.Slave; - else - _ProcType = ProcTypeOptions.Standard; - - string tmploc=ipath; - - int lstslash = tmploc.LastIndexOf("\\"); - if (lstslash < 0) lstslash = 0; - _curDirectory = tmploc.Substring(0,lstslash==0?tmploc.Length:lstslash); - _Location = tmploc.Substring(lstslash+1,tmploc.Length-lstslash-1); - _Title = ititle; - - VEObjectType = (int)VEObjectTypesDefs.ProcedureSet; - isTempChange = (_Location.ToUpper().IndexOf("TMPCHG",0,_Location.Length)>-1); - if (isTempChange) isApproved=false; - } - UseLongProcTitles=false; - RmChgBarOnApp=true; - FileInfo fi = new FileInfo(_curDirectory+"\\"+_Location+"\\PROC.INI"); - if (fi.Exists) - { - PrivateProfile ppCfg; - ppCfg = new PrivateProfile(_curDirectory+"\\"+_Location+"\\PROC.INI"); - string pptmp=ppCfg.Attr("Set Options","UseLongProcTitles"); - if (pptmp.ToUpper() == "TRUE") UseLongProcTitles=true; - pptmp = ppCfg.Attr("Set Options","RemoveChangeBarOnApproval"); - if (pptmp.ToUpper() == "FALSE") RmChgBarOnApp=false; - } - tmpRmChgBarOnApp=RmChgBarOnApp; - LoadLockInfo(); - if (isTempChange) - iconStates = new int[5] {23,23,25,23,24}; - else if (isApproved) - iconStates = new int[5] {18,18,20,18,19}; - else - iconStates = new int[5] {12,21,14,22,13}; - icon = iconStates[(int)Lock.LockStatus]; - } - - // Return true/false if the "masterdir" setting in the PROC.INI file - // matches the current directory name. Also set "mpath" to the - // "masterdir" value - public bool InMaster(ref string mpath) - { - PrivateProfile procINI; - string iniMasterDir; - procINI = new PrivateProfile(_curDirectory+"\\"+_Location+"\\PROC.INI"); - iniMasterDir=procINI.Attr("Applicability","masterdir"); - if (mpath != null) - mpath = iniMasterDir; - return (iniMasterDir.ToUpper()).Equals(_Location.ToUpper()); - } - - public string GetMasterFromProcINI() - { - string rtnstr=""; - InMaster(ref rtnstr); - return rtnstr; - } - - public override void LoadLockInfo() - { - Lock = new VELock(_curDirectory+"\\"+_Location, usrRunTime.myUserData, usrRunTime.InMultiUserMode?VENetwork.LockTypes.ProcSet:VENetwork.LockTypes.None); - } - - [Description("Location"),Category("Procedure Set"),ReadOnly(true)]public string Location - { - get{return _Location;} - set{_Location=value;} - } - - [Description("Current Directory"),Category("Procedure Set"),ReadOnly(true)]public string CurDirectory - { - get{return _curDirectory;} - set{_curDirectory=value;} - } - - [Description("Title"),Category("Procedure Set"),EditorAttribute(typeof(VESymbDlg), typeof(System.Drawing.Design.UITypeEditor))]public string Title - { - get - { - if (!changeTitle) - return _Title; - else - return tmpTitle; - } - set - { - changeTitle=true; - tmpTitle=value; - } - } - [Description("Format Title"),Category("Procedure Set"),ReadOnly(true)]public string FormatTitle - { - get{return _formatTitle;} - set{_formatTitle=value;} - } - - public override void Restore() - { - changeLocation=false; - changeTitle=false; - tmpRmChgBarOnApp=RmChgBarOnApp; - if(hasExtraRevNumber)ExtraRevNumber=origExtraRevNumber; - } - - public override bool Open() - { - if(_Location!=null) - { - isOpen = true; - if (Directory.GetCurrentDirectory() == _curDirectory+"\\"+_Location) - PrevDirectory = _curDirectory; - else - PrevDirectory = Directory.GetCurrentDirectory(); - Directory.SetCurrentDirectory(_curDirectory+"\\"+_Location); - } - return true; - } - - // The close method resets, if necessary from any multi-user settings and - // positions back to the parent directory (which is a level above the - // current level) - public override bool Close() - { - if (!isOpen)return false; - isOpen = false; - if (Connection !=null)Connection.Exit(); - Directory.SetCurrentDirectory(".."); - return true; - } - - public string GetFormatTitle() - { - if (isNew) - { - _formatTitle = "No format selected"; - return _formatTitle; - } - - // get curset pathname, i.e. whether single or multi user. - // for now, hardcode. - CurSet cs = new CurSet(this._curDirectory+"\\"+this._Location+"\\curset.dat"); - cs.Read(); - FmtFile ff = new FmtFile(cs.DefaultPlantFmt+".fmt"); - _formatTitle = ff.GetFormatTitle(usrRunTime); - return _formatTitle; - } - - public string GetParentLink() - { - if((_ProcType==ProcTypeOptions.Deviation || _ProcType==ProcTypeOptions.Background) - && parentLink==null) - { - string tmpPath = _curDirectory + "\\" + _Location + "\\eop.lnk"; - string line; - try - { - StreamReader sr = new StreamReader(tmpPath); - line = sr.ReadLine(); - sr.Close(); - parentLink=line; - } - catch (Exception) - { - parentLink=null; - } - } - else if (_ProcType==ProcTypeOptions.Slave) - { - parentLink = GetMasterFromProcINI(); - if (parentLink.Equals("")) - parentLink = null; - } - - if (parentLink != null) - { - if (parentLink[1] != ':') - { - // build full path - string CurDirSave = Directory.GetCurrentDirectory(); - if (parentLink.StartsWith(".") || - parentLink.StartsWith("\\")) - Directory.SetCurrentDirectory(_curDirectory + "\\" + _Location); - else - Directory.SetCurrentDirectory(_curDirectory); - Directory.SetCurrentDirectory(parentLink); - parentLink = Directory.GetCurrentDirectory(); - Directory.SetCurrentDirectory(CurDirSave); - } - } - return parentLink; - } - - public string GetGuideLink() - { - if(_ProcType==ProcTypeOptions.Deviation && guideLink==null) - { - string tmpPath = _curDirectory + "\\" + _Location + "\\erg.lnk"; - string line; - try - { - StreamReader sr = new StreamReader(tmpPath); - line = sr.ReadLine(); - sr.Close(); - guideLink=line; - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error Finding ERG Path"); - guideLink=null; - } - } - return guideLink; - } - - public bool CheckParentLink(string EOPSet, ProcTypeOptions linktype) - { - // Setup path to the linked EOP directory, if it's already set, don't allow change - string tmpPath = EOPSet + LinkFiles[(linktype==ProcTypeOptions.Background?0:1)]; - FileInfo fi = new FileInfo(tmpPath); - if (fi.Exists == true && !isNew) return (false); - return (true); - } - - public bool SetParentLink(string EOPSet, ProcTypeOptions linktype) - { - return SetParentLink(EOPSet,linktype,false); - } - - public bool SetParentLink(string EOPSet, ProcTypeOptions linktype, bool SelectionChange) - { - string enhSet=_curDirectory + "\\" + _Location; - // If Slave procedure set, then update the PROC.INI with the - // path to the master procedure set - if (linktype == ProcTypeOptions.Slave) - { - INIFile prcini = new INIFile(); - prcini.WriteINIKeyValueStr("Applicability","masterdir",EOPSet,"proc.ini"); - } - else - { - // Setup path to the linked EOP directory, if it's already set, don't allow change - string tmpPath = EOPSet + LinkFiles[(linktype==ProcTypeOptions.Background?0:1)]; - FileInfo fi = new FileInfo(tmpPath); - if (fi.Exists == true && !SelectionChange) return (false); - - tmpPath = enhSet + "\\EOP.LNK"; - DirectoryInfo di = new DirectoryInfo(enhSet); - if (di.Exists == false) return false; - // tmpPath = _Location + "\\eop.lnk"; - // currently in the directory -// fi = new FileInfo("eop.lnk"); - fi = new FileInfo(tmpPath); - if (fi.Exists) - fi.Delete(); - try - { -// StreamWriter sw = new StreamWriter("eop.lnk"); - StreamWriter sw = new StreamWriter(tmpPath); - sw.WriteLine(EOPSet); - sw.Close(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error Creating EOP.LNK"); - return false; - } - - // Establish link file in EOP directory for use by "LinkTo" -// string enhSet=_curDirectory + "\\" + _Location; - tmpPath = EOPSet + LinkFiles[(linktype==ProcTypeOptions.Background?0:1)]; - try - { - StreamWriter sw = new StreamWriter(tmpPath); - sw.WriteLine(enhSet); - sw.Close(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error Creating Background or Deviation LinkTO File"); - return false; - } - } - return (true); - } - - public bool SetGuideLink(string ERGSet) //,bool full) - { - string enhSet=_curDirectory + "\\" + _Location; - if (ERGSet == null || ERGSet=="") return false; - //string tmpPath = _Location + "\\erg.lnk"; - // Delete existing link file and write a new one. -// FileInfo fi = new FileInfo("erg.lnk"); - string tmpPath = enhSet + "\\erg.lnk"; -// FileInfo fi = new FileInfo("erg.lnk"); - DirectoryInfo di = new DirectoryInfo(enhSet); - if (di.Exists == false) return false; - FileInfo fi = new FileInfo(tmpPath); - if (fi.Exists) - fi.Delete(); - try - { -// StreamWriter sw = new StreamWriter("erg.lnk"); - StreamWriter sw = new StreamWriter(tmpPath); - sw.WriteLine(ERGSet); - sw.Close(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error Creating ERG.LNK File"); - return false; - } - - return true; - } - - public bool Exists(string dname) - { - if(dname==null||dname=="") return false; - - string pname=null; - // see if this is a pathname, it needs to be for the Exists check. - if (dname.IndexOf("\\") < 0) // it's not a path, prepend the path - pname = _curDirectory + "\\" + dname; - else - pname = dname; - - // loop through all subdirectories to see if this one exists. - VEO_Plant plnt = (VEO_Plant) parentObj; - int numsets = plnt.Children.Count; - for (int i=0;i" argument - if (!amILockedByMe()) - { - string UserTempDir = usrRunTime.TempDirPath; - if (UserTempDir != null) - myProcess.StartInfo.Arguments = " -dir" + Directory.GetCurrentDirectory() + "\\" + UserTempDir; - } - - myProcess.Start(); - myProcess.WaitForExit(); - - // reset the format title. - GetFormatTitle(); - return true; - } - - public bool IsValid() - { - // name validity is checked in dialog. - // check for none-empty data. - if (_Location == null || _Location == "" || _Title == null || _Title == "") - { - MessageBox.Show("Need to fill in all data.", "General Error"); - return false; - } - - // check for correct linkage if this is a background or deviation. - if (this._ProcType == VEObject.ProcTypeOptions.Background || - this._ProcType == VEObject.ProcTypeOptions.Deviation) - { - // is the parent link already linked to a different document, if so. - // can't do another. - bool lnk = CheckParentLink(this.parentLink,this._ProcType); - if (!lnk) - { - MessageBox.Show("This document has a link already","General Error"); - return false; - } - } - return true; - } - - public bool CheckForValidPSName(string newdname) - { - bool rtnval = true; - ErrorOnPSName = null; - // get the new name for the procset & check that it ends with - // the correct extension & does not already exist. - // be sure the name doesn't exist. - string newpath = _curDirectory + "\\" + newdname; - if (Directory.Exists(newpath) == true) - { - ErrorOnPSName = "Location name for this set already exists."; - rtnval = false; - } - - // if standard type & procs - it's a valid name - if (rtnval && (this._ProcType==VEObject.ProcTypeOptions.Standard&&newdname.ToUpper() == "PROCS"))return true; - if (rtnval && (this._ProcType==VEObject.ProcTypeOptions.Standard&&newdname.ToUpper() == "PROCS2")) return true; - - if (rtnval && newdname.IndexOf(".") <0) - { - ErrorOnPSName = "Location (directory) name must have an extension."; - rtnval = false; - } - - if (rtnval) - { - int idx = newdname.LastIndexOf('.'); - string ext = ""; - - if (idx > 0) - { - ext = newdname.Substring(idx+1); - ext = ext.ToUpper(); - } - - if (this._ProcType == VEObject.ProcTypeOptions.Standard) - { - if (!ext.Equals("PRC")) - { - ErrorOnPSName = "Standard procedure set location (directory) must end in .PRC"; - rtnval = false; - } - } - else if (this._ProcType == VEObject.ProcTypeOptions.Background) - { - if (!ext.Equals("BCK")) - { - ErrorOnPSName = "Background procedure set location (directory) must end in .BCK"; - rtnval = false; - } - } - else if (this._ProcType == VEObject.ProcTypeOptions.Deviation) - { - if (!ext.Equals("DVT")) - { - ErrorOnPSName = "Deviation procedure set location (directory) must end in .DVT"; - rtnval = false; - } - } - else if (this._ProcType == VEObject.ProcTypeOptions.Slave) - { - if (ext.Length != 3 || !((ext.Substring(0,2)).Equals("SL")) || !System.Char.IsDigit(ext[2])) - { - ErrorOnPSName = "Slave procedure set location (directory) must end in .SL#\n\n Where # is a number from 1 to 9."; - rtnval = false; - } - } - } - - if (!rtnval) - { - MessageBox.Show(ErrorOnPSName,"Check Directory Name..."); - } - return rtnval; - } - - // write out the TITLE file. - private void WriteTextLineToFile(string fname, string title) - { - StreamWriter myWriter = new StreamWriter(fname,false); //overwrite if exist - myWriter.Write(title); - myWriter.Close(); - } - - private void WriteExtraRevNumber() - { - vdb_Set vdbSet=new vdb_Set(_curDirectory+"\\"+_Location+"\\set.dbf"); - DataRow rw = vdbSet.DB_Data.Tables[0].Rows[0]; - rw["TITLE"] = ExtraRevNumber; - vdbSet.DB_Data = rw.Table.DataSet; - vdbSet=null; - } - - public override bool Write() - { - // only write out title. - if (changeTitle) _Title=tmpTitle; - changeTitle=false; - if (RmChgBarOnApp!=tmpRmChgBarOnApp) // flags change. - { - RmChgBarOnApp = tmpRmChgBarOnApp; - INIFile inifile = new INIFile(); - if (RmChgBarOnApp) - inifile.WriteINIKeyValueStr("Set Options","RemoveChangeBarOnApproval","TRUE",_curDirectory+"\\"+_Location+"\\PROC.INI"); - else - inifile.WriteINIKeyValueStr("Set Options","RemoveChangeBarOnApproval","FALSE",_curDirectory+"\\"+_Location+"\\PROC.INI"); - inifile = null; - } - string pathTitle = _curDirectory + "\\" + _Location + "\\TITLE"; - WriteTextLineToFile(pathTitle,_Title); - - // check if hasExtraRevNumber, and if changed, write it to set file. - if (this.hasExtraRevNumber&&(origExtraRevNumber!=ExtraRevNumber)) - WriteExtraRevNumber(); - return true; - } - - static bool AddApplicabilityToMaster(string masterpath) - { - bool bUpdateSlavePROCINI = false; - INIFile ProcINIfile = new INIFile(); - string MasterName, MasterProcFile; - string rtnbuf = ""; - MasterName = masterpath.Substring(masterpath.LastIndexOf('\\')+1); - MasterProcFile = masterpath + "\\PROC.INI"; - rtnbuf = ProcINIfile.GetINIKeyValueStr("Applicability","masterdir","",15,MasterProcFile); - // If Applicability section not yet there, add it - if (rtnbuf.Equals("")) - { - ProcINIfile.WriteINIKeyValueStr("Applicability","masterdir",MasterName,MasterProcFile); - } - rtnbuf = ProcINIfile.GetINIKeyValueStr("Unit","Number","",15,MasterProcFile); - // If Unit section not yet there, add it - if (rtnbuf.Equals("")) - { - ProcINIfile.WriteINIKeyValueStr("Unit","Number","1,2",MasterProcFile); - ProcINIfile.WriteINIKeyValueStr("Unit","Name","Unit 1,Unit 2",MasterProcFile); - ProcINIfile.WriteINIKeyValueStr("Unit","Other Number","2,1",MasterProcFile); - ProcINIfile.WriteINIKeyValueStr("Unit","Other Name","Unit 2,Unit 1",MasterProcFile); - bUpdateSlavePROCINI = true; - } - return bUpdateSlavePROCINI; - } - - static void AddApplicabilityToSlave(string slavepath) - { - INIFile ProcINIfile = new INIFile(); - string SlaveProcFile; - SlaveProcFile = slavepath + "\\PROC.INI"; - // Preset to Slave one - ProcINIfile.WriteINIKeyValueStr("Unit","Number","1",SlaveProcFile); - ProcINIfile.WriteINIKeyValueStr("Unit","Name","Unit 1",SlaveProcFile); - ProcINIfile.WriteINIKeyValueStr("Unit","Other Number","2",SlaveProcFile); - ProcINIfile.WriteINIKeyValueStr("Unit","Other Name","Unit 2",SlaveProcFile); - } - - - // Create a new procedure set. - public override bool SaveNew(string dummy) - { - - // Determine the type of set. Validity of links has already been - // checked. - VEObject.ProcTypeOptions type = this._ProcType; - - // make the directory - string dname = _curDirectory + "\\" + Location; - DirectoryInfo di = new DirectoryInfo(dname); - if (di.Exists) - { - MessageBox.Show("Directory already exists, cannot create this set.","General Error"); - return false; - } - Cursor.Current = Cursors.WaitCursor; - di.Create(); - string prevdir = Directory.GetCurrentDirectory(); - Directory.SetCurrentDirectory(dname); - - // do database files now - vdb_Set newset = new vdb_Set(dname); - - // if a slave set, copy files from master set - if (type == VEObject.ProcTypeOptions.Slave) - { - CopyFileFrom(parentLink,"set.dbf"); - // Add Applicability section to Master's PROC.INI file if that - // information does not yet exist - bool UpdateSlaveUnits = AddApplicabilityToMaster(parentLink); - // Copy needed files from the master set - - // Note that if user manually entered data in the Advanced tab - // (for PROC.INI information, that info will be used instead - // of what is being copied from the master procedure set - CopyFileFrom(parentLink,"proc.ini"); - // If the master uses Automatic Continuous Action Summary sections - // copy the CONTACT.INI file - CopyFileFrom(parentLink,"ContAct.ini"); - blnCopiedProcINI = true; - if (UpdateSlaveUnits) - AddApplicabilityToSlave(this.CurDirectory + "\\" + this.Location); - - CopyFileFrom(parentLink,"curset.dat"); - CopyFileFrom(parentLink,"Tran.dbf"); - CopyFileFrom(parentLink,"Tranfrom.ndx"); - CopyFileFrom(parentLink,"Tranto.ndx"); - CopyFileFrom(parentLink,"Usagero.dbf"); - CopyFileFrom(parentLink,"Usagero.ndx"); - CopyFileFrom(parentLink,"Usagroid.ndx"); - } - // Bug fix: B2006-042 - // copy the SET.DBF file from the parent EOP set into the Enhanced - // Document folder - else if (type == VEObject.ProcTypeOptions.Deviation || type == VEObject.ProcTypeOptions.Background) - { - CopyFileFrom(parentLink,"set.dbf"); - } - else - { - newset.CreateTable("set"); - } - - // do the SET Ext stuff - if(hasExtensions) - { - vdb_SetExt newsetext = new vdb_SetExt(dname); - newsetext.CreateTable("setext"); - } - - // title file - WriteTextLineToFile("TITLE",Title); - - if (type != VEObject.ProcTypeOptions.Slave) - { - // trans & Ro usage files - vdb_TransUsage newtranusage = new vdb_TransUsage(dname); - newtranusage.CreateTable("TRAN"); - vdb_ROUsage newrousage = new vdb_ROUsage(dname); - newrousage.CreateTable("USAGERO"); - } - - // if this set has an extra rev number, write it out in first record, TITLE field. - if (this.hasExtraRevNumber&&(ExtraRevNumber!=null&&ExtraRevNumber!=""))WriteExtraRevNumber(); - - if (type != VEObject.ProcTypeOptions.Slave) - { - // create the PROC.INI file. - FileInfo fi = new FileInfo("PROC.INI"); - FileStream fs = fi.Create(); - fs.Close(); - - // create the current settings file (which sets the format) - CurSet curset = new CurSet(""); // create will set name. - bool success=curset.Create(usrRunTime); - if (success==false) - MessageBox.Show("Could not create a current settings file.","General Error"); - else - curset.Read(); - - if (type == VEObject.ProcTypeOptions.Background) curset.DefaultPlantFmt = "EBCK"; - else if (type == VEObject.ProcTypeOptions.Deviation)curset.DefaultPlantFmt = "ESFDEV"; - - success = ChgDefSettings(); - - // Set up the links if this is a deviation or background. - if (type != VEObject.ProcTypeOptions.Standard) success = SetParentLink(parentLink,type); - success = SetGuideLink(guideLink); - } // end not slave set - - // set up the RO directory path. If it's an enhanced document directory, - // copy the RO.FST file from the parent (EOP.LNK), otherwise, get user - // profile info. - if (type == VEObject.ProcTypeOptions.Standard) - { - if(getROPath()!=null) - { - updateROValues(); - setROPath(ROPath,dname); - } - } - else // slave or enhanced doc, copy RO.FST from parent. - CopyFileFrom(parentLink,"ro.fst"); - - // if the not Removing change bars (as set on the properties page) then - // save this to the proc.ini file. Default is TRUE, so don't bother unless - // it was set to FALSE. - if (!RmChgBarOnApp) - { - INIFile inifile = new INIFile(); - inifile.WriteINIKeyValueStr("Set Options","RemoveChangeBarOnApproval","FALSE",_curDirectory+"\\"+_Location+"\\PROC.INI"); - inifile=null; - } - tmpRmChgBarOnApp=RmChgBarOnApp; // used for mods on propery page. - - // add the dummy nodes for zip files, procedures & lib docs. - VEO_DummyZip zp = new VEO_DummyZip(usrRunTime, "Zip Files", dname); - zp.parentObj=this; - Children.Add(zp); - zp.IsEmpty = true; - zp.icon = zp.iconStates[(int)VEO_IconStates.Empty]; - VEO_DummySet prc = new VEO_DummySet(usrRunTime, "Procedures",dname); - prc.parentObj=this; - prc.vdbSet = newset; - Children.Add(prc); - prc.icon = prc.iconStates[(int)VEO_IconStates.Empty]; - prc.IsEmpty = true; - VEO_DummyLibDoc ld = new VEO_DummyLibDoc(usrRunTime, "Library Documents",dname); - ld.parentObj=this; - Children.Add(ld); - ld.icon = ld.iconStates[(int)VEO_IconStates.Empty]; - ld.IsEmpty = true; - _Title=Title; - _Location=Location; - changeTitle=false; - changeLocation=false; - Cursor.Current = Cursors.Default; - icon = iconStates[(int)VEO_IconStates.Normal]; - - // set a security flag for this. Cases could be that there is no security in vesam, - // that it has security in vesam, though it didn't exist for this user until now, - // or the user could be super user. - accessFlags=0L; - int plntsecindx = usrRunTime.sec.GetPlantSecurityIndex(_curDirectory); - bool hasSec = usrRunTime.sec.ProcSetHasSecurity(plntsecindx, dname); - if (hasSec) accessFlags = usrRunTime.sec.GetProcSecurity(dname); - - // reset directory after adding the new procedure set directory. - if (prevdir != Directory.GetCurrentDirectory()) Directory.SetCurrentDirectory(prevdir); - MessageBox.Show("The VE-PROMS Security Access Module (VESAM) may need to be used to set permissions to access the new procedure set.","VE-PROMS Security Note"); - return true; - } - - private string getROPath() - { - return getROPath(true); - } - - private string getROPath(bool domessage) - { - PrivateProfile ppCfg; - string ropath; - if (this.ROPath!=null) return ROPath; - - ppCfg = new PrivateProfile("PROC.INI"); - ropath=ppCfg.Attr("RO Defaults","ROPATH"); - if (ropath == null || ropath == "") ropath = "..\\RO"; - if (Directory.Exists(ropath)) - { - ROPath = ropath; - return ROPath; - } - // did not find a valid RO Path. Start with the current directory, - // back up a level at a time to see if an RO Directory could be found. - - StringBuilder testPath = new StringBuilder(); - testPath.Append(_curDirectory); - int slash = testPath.ToString().LastIndexOf("\\"); - while (slash > -1) - { - testPath.Remove(slash,testPath.Length-slash); - testPath.Append("\\RO"); - if (Directory.Exists(testPath.ToString())) - { - ROPath=testPath.ToString(); - break; - } - testPath.Remove(slash,3); // remove appended \RO - slash = testPath.ToString().LastIndexOf("\\"); - } - // if an RO directory not found, display an information message - if(ROPath==null && domessage)MessageBox.Show("No Referenced Object Database could be found.","Referenced Objects Path Error"); - return ROPath; - } - - private bool setROPath(string pth, string dstpth) - { - INIFile inifile = new INIFile(); - if (dstpth != null) // add destination path to PROC.INI file. - { - StringBuilder DestPath = new StringBuilder(132); - DestPath.Append(dstpth); - DestPath.Append("\\PROC.INI"); - inifile.WriteINIKeyValueStr("RO Defaults","ROPATH",pth,DestPath.ToString()); - } - else - inifile.WriteINIKeyValueStr("RO Defaults","ROPATH",pth,"PROC.INI"); - ROPath = pth; - return true; - } - - private void CopyFileFrom(string from, string filename) - { - string frmfile; - if (from == null) return; - - // create path to ro.fst in from directory. - // current working directory is the enhanced doc directory - frmfile = from + "\\" + filename; - - if (File.Exists(frmfile) == true) - File.Copy(frmfile,filename,true); - } - - public override bool updateROValues() - { - bool status = false; - - if (ROPath != null) // clear it to find correct path. - ROPath = null; - - // check PROC.INI for ROPath. - if (getROPath() != null) - { - string ROFstFile = ROPath + "\\Ro.fst"; - string ROFstFileLocal = "Ro.fst"; - if (File.Exists(ROFstFile) != true) - { - MessageBox.Show("Ro.fst does not exist. Create from the ROEditor.","RO.FST File Error"); - status = false; - } - else - { - // check to see if the fst file should be updated, i.e. the one - // in the RO directory is more recent. - FileInfo fstfile = new FileInfo(ROFstFile); - FileInfo fstfilelocal = new FileInfo(ROFstFileLocal); - bool cpy = true; - if (fstfilelocal.Exists == false) - cpy = true; - else if (fstfilelocal.LastWriteTime >fstfile.LastWriteTime) - { - System.Windows.Forms.DialogResult rslt; - rslt = MessageBox.Show("The Ro.fst in this procedure set is newer compared to the RO directory.\n\nCopy from the RO directory?","VE-PROMS",MessageBoxButtons.YesNo); - if (rslt == DialogResult.No) cpy = false; - } - else if (fstfilelocal.LastWriteTime == fstfile.LastWriteTime) - { - MessageBox.Show("Referenced Object values are current.","VE-PROMS"); - cpy = false; - } - if (cpy == true) - { - File.Copy(ROFstFile,ROFstFileLocal,true); - MessageBox.Show("Referenced Object values have been updated.","VE-PROMS"); - } - if (File.Exists("ro.fst") == false) - { - MessageBox.Show("Referenced Object Values were not successfully updated.","VE-PROMS Error"); - status = false; - } - else - status = true; - } - } - return status; - } - - /* - ** This function will from all of the backup files created from the - ** Clean Referenced Objects And Transition Usages function (VECLEAN) - */ - public void RestoreUsageAndProcFilesFromBadVECLEAN() - { - string[] FromStr = {"*.DBO","*.NDO","*.DTO"}; - string[] ToStr = {".DBF",".NDX",".DBT"}; - for (int i=0; i< 3; i++) - { - string[] dbfiles = Directory.GetFiles(FromStr[i]); - foreach (string dbfile in dbfiles) - { - string oldname = dbfile; - int indx = dbfile.IndexOf("."); - if (indx>-1) - { - string nname = dbfile.Substring(0,indx); - string newname = nname + ToStr[i]; - File.Delete(newname); - File.Move(oldname,newname); - } - } - } - } - - public void CheckForFailedCleanFunction() - { - // check for failed clean by looking for DBO and NDO files - if( File.Exists("*.dbo") || File.Exists("*.ndo") || File.Exists("*.dto")) - { - MessageBox.Show("An error has occurred running the clean function.\nThe database files will be restored from the backup.", - "VE-PROMS",MessageBoxButtons.OK); - RestoreUsageAndProcFilesFromBadVECLEAN(); // retores from the DBO and NDO backup files - } - } - - public override void CleanTransitionsAndROsUsages(int clntype,string ProcName) - { - bool wasOpen = isOpen; - //change directory before doing the Clean function - if(!isOpen)Open(); - StringBuilder buf = new StringBuilder(); - buf.Append("CLEAN -NOPASS"); - - // if clntype is 2, then we are doing the Clean Selected (single) function - if (clntype == 2) - { - buf.Append(" SELECT"); - // if a procedure number was passed in, append to clean command - if (ProcName != null || ProcName != "")buf.Append(" \""+ProcName+"\""); - } - // create a process & wait until it exits. - Process myProcess = new Process(); - myProcess.StartInfo.FileName = this.usrRunTime.ExeAdjust("@Wapprv.exe"); - myProcess.StartInfo.Arguments = buf.ToString(); - myProcess.Start(); - myProcess.WaitForExit(); - - // check for failed clean by looking for DBO and NDO files - CheckForFailedCleanFunction(); - - if(!wasOpen)Close(); - } - - public override void DataIntegrityCheck(string ProcName) - { - bool wasOpen = isOpen; - //change directory before doing the DataCheck function - if(!isOpen)Open(); - StringBuilder buf = new StringBuilder(); - buf.Append("DATACHK -NOPASS"); - buf.Append(" SELECT"); - // if a procedure number was passed in, append to DataCheck command - if (ProcName != null || ProcName != "")buf.Append(" \""+ProcName+"\""); - // create a process & wait until it exits. - Process myProcess = new Process(); - myProcess.StartInfo.FileName = this.usrRunTime.ExeAdjust("@Wapprv.exe"); - myProcess.StartInfo.Arguments = buf.ToString(); - myProcess.Start(); - myProcess.WaitForExit(); - if(!wasOpen)Close(); - } - - - private bool SetupDateTimeStamp() - { - string newdate=null; - string tempinit = DTI.Initials; - if (tempinit == "super") DTI.Initials=" "; - DTI.UpdateDateTimeInit(0); - DTI.Initials=tempinit; - bool goodfmt = false; - while (!goodfmt) - { - frmReadWord rwdlg = new frmReadWord(DTI.MakeDate(DTI.DateTimeInit,false,false),"Enter Revision Date:"); - rwdlg.ShowDialog(); - if (rwdlg.DialogResult == DialogResult.OK) - { - newdate = rwdlg.ReadWordText; - goodfmt= - Char.IsDigit(newdate[0]) && - Char.IsDigit(newdate[1]) && - ((newdate[2]=='/') || (newdate[2]=='-')) && - Char.IsDigit(newdate[3]) && - Char.IsDigit(newdate[4]) && - ((newdate[5]=='/') || (newdate[5]=='-')) && - Char.IsDigit(newdate[6]) && - Char.IsDigit(newdate[7]) && - Char.IsDigit(newdate[8]) && - Char.IsDigit(newdate[9]); - } - else - return false; - } - - // note that from above validity check, the year must be 4 chars... - // reset datetimeinit to have the input date - if (newdate!=null) - { - // use temp variable, can't write to index of DateTimeInit - StringBuilder tmpdt = new StringBuilder(DTI.DateTimeInit); - for (int i=0;i<4;i++) tmpdt[i]=newdate[i+6]; - for (int i=3;i<5;i++) tmpdt[i+3]=newdate[i]; - for (int i=0;i<2;i++) tmpdt[i+4]=newdate[i]; - DTI.DateTimeInit = tmpdt.ToString(); - } - return true; - } - - public void CopyAnyFileToApproved(string name, string ApproveName, string ApprovedPath) - { - if (!File.Exists(name)) return; - - string ApprovedFileName=null; - int lindx = name.LastIndexOf("//"); - if(lindx<0)lindx=0; - string justname = name.Substring(lindx<0?0:lindx,name.Length-lindx); - string apname = (ApproveName==null)?justname:ApproveName; - if (ApprovedPath==null) - ApprovedFileName = GetApprovedDirectory("\\") + apname; - else - ApprovedFileName = ApprovedPath+"\\"+apname; - File.Copy(name,ApprovedFileName,true); - } - - public string GetApprovedDirectory(string ExtraData) - { - int indx; - string curdir = System.Environment.CurrentDirectory; - if ((indx = curdir.LastIndexOf("\\")) >= 0) - { - string tmp = curdir.Substring(indx,curdir.Length-indx); - if (tmp.ToUpper().Equals("TMPCHG"))return (".."+ExtraData); - } - return("APPROVED"+ExtraData); - } - - public void UpdateSetDTI(bool doAll, DataRow dr) // do single - figure out what to pass in - { - if(doAll) - { - // Loop thru the procset and update the date/time/init info - VEO_DummySet ds = (VEO_DummySet) Children[1]; - DataTable tbl = ds.vdbSet.DB_Data.Tables[0]; - bool isfirst = true; - string dtstr = DTI.MakeDate(DTI.DateTimeInit,false,true).Substring(0,8); - string tmstr = DTI.DateTimeInit.Substring(8,5); - foreach (DataRow row in tbl.Rows) - { - if (isfirst) - isfirst = false; - else - { - row["DATE"]=dtstr; - row["TIME"]=tmstr; - row["INITIALS"]=" "; // approve all clears the init field - } - } - ds.vdbSet.DB_Data = tbl.DataSet; - } - else - { - // only set it, it gets written by caller. - dr["DATE"]=DTI.MakeDate(DTI.DateTimeInit,false,true).Substring(0,8); - dr["TIME"]=DTI.DateTimeInit.Substring(8,5); - dr["INITIALS"]=DTI.DateTimeInit.Substring(13,5); - } - } - - private void MakeApprovedProcs(VlnStatusMessage StatMsgWindow) - { - string aprdir = GetApprovedDirectory(""); - if (aprdir.Equals("APPROVED")&&(!Directory.Exists(aprdir))) Directory.CreateDirectory(aprdir); - - CopyAnyFileToApproved("set.dbf",null,null); - if (usrRunTime.SerialNumber.GetSNOption((uint)Utils.SerialNo.SN_Flags.SN_PROCCOMMENT_ON)>0 && File.Exists("setext.dbf")) - { - /*if (ApprovedPath==null || ApprovedPath =="") - apprfilepath=GetApprovedDirectory("\\"),dbname,".DBF",NULL); - else - strcmb(apprfilepath,BuildPath(ApprovedPath,"\\"),dbname,".DBF",NULL); - * - * for(j=0;j0) - { - rtfdir = GetApprovedDirectory("\\RTFFILES"); - if (!Directory.Exists(rtfdir)) Directory.CreateDirectory(rtfdir); - } - - // for all procedures, copy all of the files over.... - VEO_DummySet ds = (VEO_DummySet) this.Children[1]; - if (ds.Children.Count==0) ds.Read(false); - - foreach (object oproc in ds.Children) - { - VEO_Proc proc = (VEO_Proc) oproc; - if (File.Exists(_curDirectory+"\\"+_Location+"\\"+proc._Location+".dbf")) - { - StatMsgWindow.StatusMessage = "Approving " + proc._Prcnum; - proc.Copy(_curDirectory+"\\"+_Location,aprdir,proc._Prcnum,proc._Location); - } - } - - DTI.SetDateTimeInit=DTI.DateTimeInit; - StatMsgWindow.StatusMessage = "Copying support files"; -// we don't use Password.Dat anymore - VESAM handles the password stuff. -// CopyAnyFileToApproved("password.dat",null,null); - if (File.Exists("datapage.fm1")) CopyAnyFileToApproved("datapage.fm1",null,null); - if (File.Exists("curset.dat") && !File.Exists(GetApprovedDirectory("\\curset.dat"))) - CopyAnyFileToApproved("curset.dat",null,null); - CopyAnyFileToApproved("proc.ini",null,null); - CopyAnyFileToApproved("set.ini",null,null); - VEO_DummyLibDoc lds = (VEO_DummyLibDoc) Children[2]; - if (lds.Children.Count>0) - { - StatMsgWindow.StatusMessage = "Copying library documents"; - lds.Approve(_curDirectory+"\\"+_Location,aprdir); - } - // If they are using Automatic Continuous Action Summary Sections - // copy the the ini file over to the approved as well. - if (File.Exists("ContAct.INI")) - CopyAnyFileToApproved("ContAct.INI",null,null); - } - - private void MoveOutsideTransitions(VlnStatusMessage StatMsgWindow) - { - StatMsgWindow.StatusMessage = "Saving Approved Outside Transition Data"; - - // old code did a pack, but these files don't have database support, just copy - // them over. - CopyAnyFileToApproved("xtsetid.dbf",null,null); - CopyAnyFileToApproved("xtsetid.ndx",null,null); - CopyAnyFileToApproved("xtprocid.dbf",null,null); - CopyAnyFileToApproved("xtpidset.ndx",null,null); - CopyAnyFileToApproved("xtpidsnp.ndx",null,null); - } - - private void MoveTransitions(VlnStatusMessage StatMsgWindow) - { - StatMsgWindow.StatusMessage = "Approving transition usage files"; - vdb_TransUsage transusg = new vdb_TransUsage(_curDirectory+"\\"+_Location+"\\tran.dbf"); - transusg.Pack(); - transusg = null; // close the transusage connection - CopyAnyFileToApproved("tran.dbf",null,null); - CopyAnyFileToApproved("tranfrom.ndx",null,null); - CopyAnyFileToApproved("tranto.ndx",null,null); - - // Now cleanup the 'OLDTO' fields, i.e. make them = TranTo field, i.e. - // working draft 'TONUMBER'+'TOSEQUENCE' fields. The first query if for non-libdocs. - // The second does libdocs. - transusg = new vdb_TransUsage(_curDirectory+"\\"+_Location+"\\tran.dbf"); - StringBuilder qry = new StringBuilder(); - qry.Append("UPDATE TRAN SET TRAN.OLDTO = [TONUMBER] & Space(20-Len([TONUMBER])) & [TOSEQUENCE] & Space(12-Len([TOSEQUENCE])) "); - qry.Append("WHERE tran.TOSEQUENCE IS NOT NULL"); - bool success = transusg.UpdateUsing(qry.ToString()); - if (!success) MessageBox.Show("Error When Updating Old Transition To fields","Approve All"); - qry.Length=0; - qry.Append("UPDATE TRAN SET TRAN.OLDTO = [TONUMBER] & Space(20-Len([TONUMBER])) "); - qry.Append("WHERE tran.TOSEQUENCE IS NULL"); - success = transusg.UpdateUsing(qry.ToString()); - if (!success) MessageBox.Show("Error When Updating Old Transition To fields for library documents","Approve All"); - transusg=null; - } - - private void MoveROs(VlnStatusMessage StatMsgWindow) - { - StatMsgWindow.StatusMessage = "Approving referenced object usage files"; - vdb_ROUsage rousg = new vdb_ROUsage(_curDirectory+"\\"+_Location+"\\usagero.dbf"); - rousg.Pack(); - rousg = null; - this.CopyAnyFileToApproved("usagero.dbf",null,null); - this.CopyAnyFileToApproved("usagero.ndx",null,null); - this.CopyAnyFileToApproved("usagroid.ndx",null,null); - this.CopyAnyFileToApproved("ro.fst",null,null); - } - - public void MoveUserFormats(VlnStatusMessage StatMsgWindow) - { - CurSet cs = new CurSet(_curDirectory+"\\"+_Location+"\\curset.dat"); - cs.Read(); - FmtFile ff = new FmtFile(cs.DefaultPlantFmt+".fmt"); - string [] sfis = Directory.GetFiles(".\\",cs.DefaultPlantFmt+".*"); - if (sfis.Length>0)StatMsgWindow.StatusMessage = "Approving user format files"; - foreach (string sfi in sfis) - { - FileInfo fi = new FileInfo(sfi); - fi.CopyTo(this.GetApprovedDirectory("\\"+fi.Name),true); - } - } - - private void UpdateGraphicFiles(VlnStatusMessage StatMsgWindow) - { - StatMsgWindow.StatusMessage = "Approving graphic files from RO directory"; -// ROFST ro = new ROFST(Directory.GetCurrentDirectory() + "\\ro.fst", usrRunTime); - ROFST ro = new ROFST(Directory.GetCurrentDirectory() + "\\ro.fst"); - ro.CopyImagesToApproved(this.GetApprovedDirectory(null),StatMsgWindow); - ro.Close(); - } - - private void CopyTempChgFiles(string from, string to, string fpattern) - { - DirectoryInfo difrom = new DirectoryInfo(from); - DirectoryInfo dito = new DirectoryInfo(to); - if (!dito.Exists) dito.Create(); - FileInfo[] fis = difrom.GetFiles(fpattern); - foreach (FileInfo fi in fis) - { - if (fi.Extension.ToUpper()!="PIX"&&fi.Name.ToUpper()!="B4APRVAL.ZIP") - { - fi.CopyTo(to+"\\"+fi.Name,true); - // if this is title file, then the version text should state - // 'Temporary Change Version' (either append or change the - // 'Current Approved Version'). - if (fi.Name.ToUpper()=="TITLE") - { - StreamReader myReader = new StreamReader(to+"\\"+fi.Name); - string chgtitle = myReader.ReadLine(); - myReader.Close(); - int indx = chgtitle.IndexOf(" - Current Approved Version"); - if (indx>-1) - WriteTextLineToFile(to+"\\"+fi.Name,chgtitle.Substring(0,indx) + " - Temporary Change Version"); - else - WriteTextLineToFile(to+"\\"+fi.Name,chgtitle + " - Temporary Change Version"); - } - FileInfo fi_tmpchg = new FileInfo(to+"\\"+fi.Name); - fi_tmpchg.LastWriteTime = fi.LastWriteTime; - } - } - } - - private void CopyTempChg(VlnStatusMessage StatMsgWindow) - { - if (usrRunTime.SerialNumber.GetSNOption((uint)Utils.SerialNo.SN_Flags.SN_TEMPCHANGE_ON)>0) - { - StatMsgWindow.StatusMessage = "Updating the Temporary change directory ..."; - - CopyTempChgFiles("approved","approved\\tmpchg","*.*"); - if (Directory.Exists("rtffiles")) - CopyTempChgFiles("approved\\rtffiles","approved\\tmpchg\\rtffiles","*.*"); - } - } - private void UpdateProcedureSetTitleFile(string ApprvPath) - { - if (File.Exists("Title")) - { - string appath = null; - if (ApprvPath == null || ApprvPath=="") - appath = GetApprovedDirectory("\\Title"); - else - appath = ApprvPath+"\\Title"; - File.Copy("Title",appath,true); - - // Tack on Current Approved Version to the title in the approved directory - StreamReader myReader = new StreamReader(appath); - string chgtitle = myReader.ReadLine(); - myReader.Close(); - WriteTextLineToFile(appath,chgtitle + " - Current Approved Version"); - } - } - - private void ZipThis(string path, string ZipName) - { - CDZipNET dz = new CDZipNET(); - dz.ZIPFile = path + "\\" + ZipName + ".zip"; - - StringBuilder sb = new StringBuilder(); - - // Zip up the RTFFILES directory if it exists - string RTFFilesPath = path + "\\RTFFILES"; - if (Directory.Exists(RTFFilesPath)) - { - sb.Append(path); - sb.Append("\\*.* "); - sb.Append(path); - sb.Append("\\RTFFILES\\*.*"); - } - else - { - sb.Append(path); - sb.Append("\\*.*"); - } - - dz.RecurseFlag = false; - dz.ItemList = sb.ToString(); - dz.CompressionFactor = 9; // maxium compression - dz.ExcludeFollowingFlag = true; - dz.ExcludeFollowing = "*.lck process.dat"; - dz.ActionDZ = CDZipNET.DZACTION.ZIP_ADD; - } - - // this can be used to archiving of clean or approval. Approval zips approval - // and tmpchg directories if they exist. - private void Archive(string ZipName, bool approving) - { - // get the path to the working draft directory - string cwd = Directory.GetCurrentDirectory(); - - VlnStatusMessage StatMsgWindow = new VlnStatusMessage("File Archival"); - - // zip the working draft directory - StatMsgWindow.StatusMessage = "Zipping " + cwd; - ZipThis(cwd, ZipName); - - if (approving && Directory.Exists("Approved")) - { - string CurApPath = cwd + "\\APPROVED"; - // Zip the Approved directory - StatMsgWindow.StatusMessage = "Zipping " + CurApPath; - ZipThis(CurApPath, ZipName); - - // Zip the Temporary Change directory - if (Directory.Exists("Approved\\TMPCHG")) - { - string TchgPath = CurApPath+"\\TMPCHG"; - StatMsgWindow.StatusMessage = "Zipping " + TchgPath; - ZipThis(TchgPath, ZipName); - } - } - StatMsgWindow.Dispose(); - } - - private bool NewOrModifiedGraphicFile(string Afname,string Wfname, string defExt) - { - bool rtnval = false; - StringBuilder Agr_pathname = new StringBuilder(Afname.Length+5); - StringBuilder Wgr_pathname = new StringBuilder(Wfname.Length+5); - Agr_pathname.Append(Afname); - Wgr_pathname.Append(Wfname); - // if the file has an extension, just use it, otherwise use - // the passed in default extension. Note that the default - // extension is automatically set up when the RO.FST file - // is read into the ROFST class - if ((Afname.Length<4) || Afname[Afname.Length-4] != '.') - { - if (defExt[0] != '.') Agr_pathname.Append("."); - Agr_pathname.Append(defExt); - } - if ((Wfname.Length<4) || Wfname[Wfname.Length-4] != '.') - { - if (defExt[0] != '.') Wgr_pathname.Append("."); - Wgr_pathname.Append(defExt); - } - string AgrName = Agr_pathname.ToString(); - string WgrName = Wgr_pathname.ToString(); - rtnval = (!File.Exists(AgrName)); - if (!rtnval) - { - // The graphic file exists in Approved directory. - // See if the RO directory has a newer graphics file. - rtnval = (File.GetLastWriteTime(WgrName) > File.GetLastWriteTime(AgrName)); - } - return rtnval; - } - -// private bool GraphicsFileNotInApproved(string fname, string defExt) -// { -// StringBuilder gr_pathname = new StringBuilder(fname.Length + 5); -// gr_pathname.Append(fname); -//// // if the file has an extension, just use it, otherwise get default -//// // extension. This is in veproms.ini or default to .tif. -//// int indx = fname.LastIndexOf("."); -//// if (indx<0) -// -// // if the file has an extension, just use it, otherwise use -// // the passed in default extension. Note that the default -// // extension is automatically set up when the RO.FST file -// // is read into the ROFST class -// if ((fname.Length<4) || fname[fname.Length-4] != '.') -// { -//// PrivateProfile pINI; -//// string fExt; -//// pINI = new PrivateProfile(usrRunTime.ExeAdjust("~veproms.ini")); -//// fExt=pINI.Attr("Graphics","defaultext"); -//// if (fExt == null||fExt=="") fExt=".TIF"; -//// pINI=null; -//// if (fExt.Substring(0,1)!=".") gr_pathname.Append("."); -//// gr_pathname.Append(fExt); -// if (defExt[0] != '.') gr_pathname.Append("."); -// gr_pathname.Append(defExt); -// } -// return (!File.Exists(gr_pathname.ToString())); -// } -// - // Verify we have a valid RO directory path - private bool CheckROPathForApprove() - { - bool rtnval = true; - StringBuilder sbWarning = new StringBuilder(); - - // If Referenced Objects are being used, - // then see if the RO directory exists B2005-038 - - vdb_ROUsage rousg=null; - DataSet ROUsageDataSet=null; - // Open the RO Usage file in the working draft and see if there - // are any records in it. - try - { - rousg = new vdb_ROUsage(_curDirectory+"\\"+_Location+"\\usagero.dbf"); - ROUsageDataSet = rousg.GetSortedByROID(""); - } - catch (Exception e) - { - MessageBox.Show("Could not read RO Usages, cannot approve. " + e.Message,"Approval Error"); - rousg=null; - ROUsageDataSet=null; - return false; // don't allow approval - } - DataTable roTbl = ROUsageDataSet.Tables[0]; - rtnval = (roTbl.Rows.Count > 0); - rousg=null; - ROUsageDataSet=null; - - if (!rtnval) - return true; // ROs are not used, no need to check for RO directory - - // At this point we know that we use RO's so now check to see if - // the RO directory exists - - return CheckROpathAndFST(); - } - - // This function is called after we verify that Referenced Objects are being - // used in the working draft (there are records in the ROUSAGE.DBF file) - private bool CheckROpathAndFST() - { - bool rtnval = true; - bool wdROfstExists; - bool doWarning; - StringBuilder sbMsg = new StringBuilder(); - string rpath = this.getROPath(false); - if (rpath == null || rpath == "") - { - // Cannot find an RO Directory - sbMsg.Append("Cannot find the Referenced Objects folder: "); - sbMsg.Append(rpath); - sbMsg.Append("\n\nReferenced Object usages cannot be validated without access to the RO database folder."); - sbMsg.Append("\n\n * Verify the RO Path in the PROC.INI file."); - sbMsg.Append("\n\n * Verify the RO folder does exist."); - MessageBox.Show(sbMsg.ToString(),"Check Referenced Objects Settings"); - return false; // cancel approval - } - - // Check to see if RO.FST file exists in working draft - wdROfstExists = File.Exists(_curDirectory+"\\"+_Location+"\\ro.fst"); - - // Check to see if the RO.FST file in the working draft is older or newer - // than the one in the RO directory - if (wdROfstExists) - { - DateTime WdDateTime = File.GetLastWriteTime(_curDirectory+"\\"+_Location+"\\ro.fst"); - DateTime RoDateTime = File.GetLastWriteTime(rpath + "\\ro.fst"); - switch (DateTime.Compare(WdDateTime,RoDateTime)) - { - case 1: - doWarning = true; - sbMsg.Append("The Working Draft RO.FST file is Newer than the one last generated"); - sbMsg.Append("\nfrom the RO database."); - break; - case -1: - doWarning = true; - sbMsg.Append("The Working Draft RO.FST file is Older than the one last generated"); - sbMsg.Append("\nfrom the RO database."); - break; - default: - doWarning = false; - break; - } - if (doWarning) - { - sbMsg.Append("\n\nPlease verify that \""); - sbMsg.Append(rpath); - sbMsg.Append("\" is the correct RO database folder and"); - sbMsg.Append("\ncheck to see if the RO.FST needs updated in the Working Draft."); - sbMsg.Append("\n\n\n\nDo You Want To Continue With The Approval Anyway?"); - DialogResult yn = MessageBox.Show(sbMsg.ToString(),"Check Referenced Objects Settings",MessageBoxButtons.YesNo); - rtnval = yn.Equals(DialogResult.Yes); - return rtnval; - } - } - if (!wdROfstExists) - { - //if the working draft does not have a RO.FST file, don't allow approve - sbMsg.Append("The working draft does not have an RO.FST file."); - sbMsg.Append("\n\nReferenced Object usages cannot be validated."); - sbMsg.Append("\n\n * Verify the RO Path in the PROC.INI file."); - sbMsg.Append("\n\n * Run the Update Referenced Objects tool"); - MessageBox.Show(sbMsg.ToString(),"Check Referenced Objects Settings"); - return false; // cancel approval - } - - return true; // fell through the checks, assume it's O.K. to continue - } - - // FindModifiedROs determines which ROs, if any, are different between the working - // draft & the approved version of the ro.fst files. It only looks at those ROs - // that are used in the working draft version of the document, i.e. it compares - // the ro.fst data for those ROs listed in the usage file. - private bool FindModifiedROs(ArrayList ModROs, VlnStatusMessage StatMsgWindow) - { - vdb_ROUsage rousg=null; - DataSet ROUsageDataSet=null; - //Loop through all of the usages. - try - { - rousg = new vdb_ROUsage(_curDirectory+"\\"+_Location+"\\usagero.dbf"); - ROUsageDataSet = rousg.GetSortedByROID(""); - } - catch (Exception e) - { - MessageBox.Show("Could not read RO Usages, cannot approve. " + e.Message,"Approval Error"); - rousg=null; - ROUsageDataSet=null; - return false; - } - DataTable roTbl = ROUsageDataSet.Tables[0]; - if (roTbl.Rows.Count == 0) - return true; // no data -// if (roTbl.Rows.Count>0) StatMsgWindow.StatusMessage = "Finding Modified Referenced Objects"; - - // See if the RO.FST file exists in the working draft. At this point - // we have established that ROs are being used and there should be a - // RO.FST file in the working draft. Also see if the RO folder exists. - // It's needed to check changes to graphic files. - // B2005-038 - if (!CheckROpathAndFST()) return false; - - // Open the RO.FST files so that we can compare ro values - - ROFST WD_ROfst = new ROFST(_curDirectory+"\\"+_Location+"\\ro.fst"); - ROFST App_ROfst = new ROFST(_curDirectory+"\\"+_Location+"\\approved\\ro.fst"); - - string lastROID = null; - VlnStatusBar FndModROsStatWindow = new VlnStatusBar("Processing ROs"); - FndModROsStatWindow.BarMax = roTbl.Rows.Count; - FndModROsStatWindow.BarStepValue = 1; - FndModROsStatWindow.BarValue = 0; - FndModROsStatWindow.StatMsg = "Finding Modified Referenced Objects"; - foreach (DataRow row in roTbl.Rows) - { - FndModROsStatWindow.PerformStep(); - string thisROID = row["ROID"].ToString(); - // we want to always have "0000" at the end of the ROID - // so that we get all possible return options for - // conditional RO's - thisROID = thisROID.Substring(0,12)+"0000"; - // byte ff = 0xff; - // string instance = row["INSTANCE"].ToString(); - // if(System.Char.IsWhiteSpace(instance[0])) - if(thisROID==null || thisROID=="" || System.Char.IsWhiteSpace(thisROID[0])) - { - continue; - } - if (thisROID != lastROID) - { - lastROID = thisROID; - string usagePnum = row["NUMBER"].ToString(); - string wd_val = WD_ROfst.GetRO(thisROID,usagePnum); - string a_val = App_ROfst.GetRO(thisROID,usagePnum); - ROFST.ROTypes rotype = WD_ROfst.GetROType(thisROID); - if (rotype == ROFST.ROTypes.Figure) // image - { - int nline = wd_val.IndexOf("\n"); - if (nline>0) - { - string gr_fname = this._curDirectory + "\\" + this._Location + "\\" + GetApprovedDirectory("\\") + wd_val.Substring(0,nline); - string wd_fname = this.getROPath() + "\\" + wd_val.Substring(0,nline); - if (wd_val!=a_val || NewOrModifiedGraphicFile(gr_fname,wd_fname,WD_ROfst.DefaultGraphicFileExt)) - // if (wd_val!=a_val || GraphicsFileNotInApproved(gr_fname,WD_ROfst.DefaultGraphicFileExt)) - { - ModRO mro = new ModRO(thisROID,true,gr_fname,null); - ModROs.Add(mro); - } - } - } - else - { - if (wd_val != a_val) - { - ModRO mro = null; - if (rotype == ROFST.ROTypes.Table) - mro = new ModRO(thisROID, false, "TABLE", "TABLE"); - else - mro = new ModRO(thisROID, false, wd_val, a_val); - ModROs.Add(mro); - } - } - - } - } - FndModROsStatWindow.Dispose(); - rousg=null; - ROUsageDataSet=null; - WD_ROfst.Close(); - App_ROfst.Close(); - return true; - } - - // determine if the input library document has any Modified Ro references - private bool RoRef(string libname, ArrayList ModROs, ArrayList al) - { - int roref=0; - int i = libname.IndexOf("."); - string fname; - if (i>0) - fname = libname.Substring(0,i); - else - fname = libname; - - if ((roref=Usages.CheckRoReferences(this, _curDirectory+"\\"+_Location, al, ModROs, fname))<=0) - { - return false; - } - return true; - } - - // Determine, based on date/time stamp, whether the Library Document - // file was modified between the working draft & approved. - private void LookForModifiedLibraryDoc(ArrayList ModLibDocs, ArrayList ModROs, ArrayList al, string libname) - { - // Use status codes for later file copying of library documents. - // Stat 0 - No Change - // Stat 1 - Copy working draft file to approved - // Stat 2 - Copy RTFFILES file to approved - // Stat 3 - Copy working draft file to approved and RTF - int stat=0; - DateTime wd=DateTime.Now; // default to now, but reset if file exists. - DateTime wd_rtfdir=DateTime.Now; - DateTime ap=DateTime.Now; - DateTime ap_rtfdir=DateTime.Now; - - if (File.Exists(libname))wd = File.GetLastWriteTime(libname); - if (File.Exists("RTFFILES\\"+libname))wd_rtfdir = File.GetLastWriteTime("RTFFILES\\"+libname); - - string apdir = GetApprovedDirectory(""); - if (File.Exists(apdir+"\\"+libname))ap = File.GetLastWriteTime(apdir+"\\"+libname); - if (File.Exists(apdir+"\\RTFFILES\\"+libname))ap_rtfdir = File.GetLastWriteTime(apdir+"\\RTFFILES\\"+libname); - - // now see if there are any referenced objects in this library document - // that have a modified RO - if so, copy those too. - bool roStat = RoRef(libname, ModROs, al); - - // if approved directory has RTFFILES subdirectory with this libdoc... - if (File.Exists(apdir+"\\RTFFILES\\"+libname)) - { - // if working draft has RTFFiles subdirectory with this libdoc - if (File.Exists("RTFFILES\\"+libname)) - { - // if working draft is newer or contains a modified RO - if (roStat || (wd_rtfdir>ap_rtfdir)) - stat=2; - } - else // if working draft does NOT have libdoc file - stat = 3; - } - // the approved directory does not have RTFFILES directory, but has the - // library document in the APPROVED directory. - else if (File.Exists(apdir+"\\"+libname)) - { - // if the working draft has the library document in the RTFFILES directory - if (File.Exists("RTFFILES\\"+libname)) - { - // if working draft library document is newer or contains modified ro - if (roStat || (wd_rtfdir > ap)) - stat=2; - // if the working draft version is newer or contains a modified RO - } - else - { - if (roStat || (File.Exists(libname) && wd>ap)) stat = 1; - } - } - // else there is no library document in approved at all, add it. - else - { - if (File.Exists("RTFFILES\\"+libname)) - stat=2; - else - stat=1; - } - if (stat!=0) - { - // see if filename is in the list. If not add it, otherwise it's a duplicate. - for (int i=0;i 0) - { - App_ROfst.processAppUpdFile(AppUpdtmp,WD_ROfst.numDatabases>App_ROfst.numDatabases?WD_ROfst.numDatabases:App_ROfst.numDatabases); - App_ROfst.CreateMergedFSTFile(NewFST); - if (File.Exists(NewFST)) - { - string ROFST = this.GetApprovedDirectory("\\RO.FST"); - string ROFSTbck = this.GetApprovedDirectory("\\RO.BAK"); - File.Copy(ROFST,ROFSTbck,true); - File.Copy(NewFST,ROFST,true); - File.Delete(NewFST); - } - } - if (File.Exists(AppUpdtmp))File.Delete(AppUpdtmp); - WD_ROfst.Close(); - App_ROfst.Close(); - } - - private bool SetupProcessInd(ArrayList ModROs, ArrayList ModLibDocs, ArrayList al, VlnStatusMessage StatMsgWindow) - { - bool success; - success = FindModifiedROs(ModROs, StatMsgWindow); - if (!success)return false; - success = FindModifiedLibDocs(ModLibDocs, ModROs, al, StatMsgWindow); - if (!success) return false; - return true; - } - - public bool ProcessInd(ArrayList al, int indx, ArrayList ModROs, ArrayList ModLibDocs) - { - bool success=true; - // process the procedure in the list at 'indx'. First mark it as checked. Then - // see if it has any RO References that have changed & if so, add any other - // procedures to the list that use the changed ROs. Then do the same for - // library documents & transitions (to/from). - AppIndItem appitm = (AppIndItem) al[indx]; - - if ( ModROs.Count>0) - { - int roref = Usages.CheckRoReferences(this, _curDirectory+"\\"+_Location, al, ModROs,appitm.Proc._Prcnum); - success=roref>-1; - } - if (!success) return false; - - if (ModLibDocs.Count>0)success = appitm.Proc.CheckLibraryDocReferences(al, indx, ModLibDocs, ModROs); - if (!success)return false; - success=appitm.Proc.CheckTransitionReferences(al); - return success; - } - - private bool ApproveInd(ArrayList Procs) - { - string tempinit = DTI.Initials; - if (tempinit == "super") DTI.Initials=" "; - DTI.UpdateDateTimeInit(0); - DTI.Initials=tempinit; - - // Don't allow approval unless we have a valid path to the RO directory -/** - BUG FIX B2005-038 - if (!CheckROPathForApprove()) - done in FindModifiedROs() new - return false; -**/ - VlnStatusMessage StatMsgWindow = new VlnStatusMessage("Approving Selected Procedures"); - StatMsgWindow.StatusMessage = "Preparing for Approval"; - - // if children are not loaded, load them here... - VEO_DummySet ds = (VEO_DummySet) this.Children[1]; - if (ds.Children.Count==0) ds.Read(false); - - // find dependencies for those initially selected. - ArrayList ModROs = new ArrayList(); - ArrayList ModLibDocs = new ArrayList(); - ArrayList AppProcess = new ArrayList(); - if (!SetupProcessInd(ModROs,ModLibDocs,AppProcess,StatMsgWindow)) - { - StatMsgWindow.Dispose(); - return false; - } - - // The selected procedures in the passed in list should be put in the - // processing list of AppIndItems. Then for each item in this list, - // check to see if conflicts require other procedures to be approved. - // If a conflict is found, it is added the list of conflicts for the item - // and the procedure found with the conflict is added to the AppIndItems - // list, so that it getes checked too. After all items in the AppIndItems - // list are processed, bring up the dialog with the list of procedures that - // must be approved. Allow the user to add other procedures, to resolve/edit - // conflicts, etc. - - StatMsgWindow.StatusMessage = "Looking for Dependencies..."; - foreach (Object obj in Procs) - { - AppIndItem aii= new AppIndItem((VEO_Proc)obj); - AppProcess.Add(aii); - } - - // while there are items in the list to check, keep looking - // for conflicts. Assume that there is at least one item in the - // list that hasn't been checked or it wouldn't have gotten to here. - int indx=0; - if (AppProcess.Count<1) indx=-1; - while (indx>=0) - { - AppIndItem CurItem = (AppIndItem) AppProcess[indx]; - StatMsgWindow.StatusMessage = "Checking " + CurItem.Proc._Prcnum; - ProcessInd(AppProcess, indx, ModROs, ModLibDocs); - CurItem.Checked=true; - indx = -1; - for (int i=0;i0) - { - string rtfdir = ApprovedPath + "\\RTFFILES"; - if (!Directory.Exists(rtfdir)) Directory.CreateDirectory(rtfdir); - } - fis=null; - } - string appath=null; - if (ApprovedPath==null||ApprovedPath=="") - appath = GetApprovedDirectory(""); - else - appath = ApprovedPath + ""; - - // If the PROC.INI file in the working draft is newer or older than the - // approved, ask the user if this file should be copied to the approved. - INIfileApproveCheck("PROC.INI",appath,"Proc.ini"); - - // If the Continuous Action Summary ini (CONTACT.INI) file in the working - // draft is newer or older than the approved, ask the user if this file - // should be copied to the approved. - INIfileApproveCheck("CONTACT.INI",appath,"Continuous Action Summary ini"); - - // See if this set has long procedure titles. This was a format flag, but - // format flags are temporarily being stored in the proc.ini file. This is - // used in the UpdateSetFile method, but just read it once & reuse. - using (StreamWriter sw = new StreamWriter("Approval.log", true)) - { - sw.Write("APPROVE SELECTED: Approving selected procedures on "); - sw.Write(DateTime.Now); - sw.WriteLine(" performed by " + DTI.Initials); - sw.WriteLine(" "); - foreach (AppIndItem ai in AppProcess) - { - StatMsgWindow.StatusMessage = "Approving Procedure to " + appath + "\\" +ai.Proc._Prcnum; - // For the procedure number, see if it exists in the approved set. If - // not, there is either a new procedure or a modified procedure number. - // Both cases require a new procedure database fileset to be created. - string ApProcFile = null; - string ApProcNum = null; - ai.Proc.GetApProcNumAndFile(appath, ref ApProcFile, ref ApProcNum); - sw.WriteLine(" Approved " + ApProcNum); - ai.Proc.Copy(Directory.GetCurrentDirectory(), appath, ApProcNum, ApProcFile); - ai.Proc.UpdateSetFile(appath, ApProcNum, ApProcFile); - StatMsgWindow.StatusMessage = "Fixing Transition References for "+ai.Proc._Prcnum; - ai.Proc.FixTransitionReferences(appath, ApProcNum); - StatMsgWindow.StatusMessage = "Fixing RO Usages for "+ai.Proc._Prcnum; - Usages.FixROUsages(Directory.GetCurrentDirectory(), appath, ApProcNum, ai.Proc._Prcnum); - } - sw.WriteLine(" "); - } - UpdateProcedureSetTitleFile(ApprovedPath); - } - - private void CopyLibDocToApproved(string fname, string ApprovedPath, int stat) - { - string buff=fname; - if (stat==2) - { - // Create approved rtf directory. - if (!Directory.Exists(ApprovedPath+"\\RTFFILES"))Directory.CreateDirectory(ApprovedPath+"\\RTFFILES"); - // create rtf files name - buff = "RTFFILES\\" + fname; - } - else if (stat==3) - { - // approved rtf version. - if (Exists(ApprovedPath+"\\RTFFILES\\"+fname))File.Delete(ApprovedPath+"\\RTFFILES\\"+fname); - buff=fname; - } - CopyAnyFileToApproved(buff, null, ApprovedPath); - } - - private void MoveChangedDocuments(string ApprovedPath, ArrayList ModLibDocs, VlnStatusMessage StatMsgWindow) - { - int cnt = ModLibDocs.Count; - for (int i = ModLibDocs.Count;i>0;i--) - { - ModLibDoc ld = (ModLibDoc) ModLibDocs[i-1]; - if (ld.DocPages!=0) - { - StatMsgWindow.StatusMessage = "Moving Library Document "+ld.LibFile; - CopyLibDocToApproved(ld.LibFile,ApprovedPath,ld.status); - string lbname = ld.LibFile.Substring(0,8); // don't need extension, i.e. .LIB - Usages.FixROUsages(Directory.GetCurrentDirectory(), ApprovedPath, lbname, lbname); - } - } - } - - public void DoTheApproval(ArrayList AppProcess, ArrayList ModROs, ArrayList ModLibDocs) - { - bool hasTempChange = (Directory.Exists("APPROVED\\TMPCHG") && - (usrRunTime.SerialNumber.GetSNOption((uint)Utils.SerialNo.SN_Flags.SN_TEMPCHANGE_ON)>0) - && (GetApprovedDirectory("")=="APPROVED")); - string ApprovedPath = GetApprovedDirectory(""); - VlnStatusMessage StatMsgWindow = new VlnStatusMessage("Do The Approval"); - MoveApprovedProcedures(AppProcess, ApprovedPath, StatMsgWindow); - if (hasTempChange) MoveApprovedProcedures(AppProcess, "APPROVED\\TMPCHG", StatMsgWindow); - - SaveModifiedROs(ApprovedPath, ModROs, StatMsgWindow); - if (hasTempChange) SaveModifiedROs("APPROVED\\TMPCHG", ModROs, StatMsgWindow); - - MoveChangedDocuments(ApprovedPath, ModLibDocs, StatMsgWindow); - if (hasTempChange) MoveChangedDocuments("APPROVED\\TMPCHG", ModLibDocs, StatMsgWindow); - - // If the temporary change directory does not exist and not in the - // temporary change directory, create the temporary change directory - // and copy the files to it from the approved directory - if (ApprovedPath == "APPROVED" && hasTempChange && !Directory.Exists("APPROVED\\TMPCHG")) CopyTempChg(StatMsgWindow); - StatMsgWindow.Dispose(); - MessageBox.Show("Procedure(s) has been approved.","Approval Complete"); - } - - private void ApproveAll() - { - bool approveflag = false; - - string tempinit = DTI.Initials; - if (tempinit == "super") DTI.Initials=" "; - DTI.UpdateDateTimeInit(0); - DTI.Initials=tempinit; - - // Don't allow approval unless we have a valid path to the RO directory - if (!CheckROPathForApprove()) - return; - - DialogResult rslt = MessageBox.Show("About to Approve All of the Procedures in This Set. Continue With The Approval?","Approve All Procedures",MessageBoxButtons.YesNo); - if (rslt == DialogResult.No) return; - - rslt = MessageBox.Show("Do you want to save the current data to an archive file before proceeding with the Approval?","Archive Data",MessageBoxButtons.YesNo); - if (rslt == DialogResult.Yes) - { - string tmp = "B4APRVAL" + DateTime.Now.ToString("s").Replace(":","-"); - Archive(tmp,true); - } - - if (RmChgBarOnApp) - { - rslt = MessageBox.Show("Remove Change Bars from Working Draft?","Approve All Procedures",MessageBoxButtons.YesNo); - if (rslt==DialogResult.No) RmChgBarOnApp=tmpRmChgBarOnApp=false; - } - else - { - rslt = MessageBox.Show("Keep Change Bars in Working Draft?","Approve All Procedures",MessageBoxButtons.YesNo); - if (rslt==DialogResult.No) RmChgBarOnApp=tmpRmChgBarOnApp=true; - } - - if (!RmChgBarOnApp || SetupDateTimeStamp()) - { - long spfree = DirSpace.Free(); - if( File.Exists(GetApprovedDirectory("\\set.dbf")) && (spfree > 200000L) ) - approveflag = true; - - long tmp = DirSpace.Get(Environment.CurrentDirectory); - if( !approveflag && !(spfree > DirSpace.Get(Environment.CurrentDirectory)) ) - { - MessageBox.Show("Insufficient Disk Space for Approval!","General Approval Error"); - return; - } - - VlnStatusMessage StatMsgWindow = new VlnStatusMessage("Approving All Procedures"); - StatMsgWindow.StatusMessage = "Preparing for Approval"; - - using (StreamWriter sw = new StreamWriter("Approval.log", true)) - { - sw.Write("APPROVE ALL: on "); - sw.Write(DateTime.Now); - sw.WriteLine(" performed by " + DTI.Initials); - sw.WriteLine(" "); - } - - MakeApprovedProcs(StatMsgWindow); - if(File.Exists("xtsetid.dbf"))MoveOutsideTransitions(StatMsgWindow); - MoveTransitions(StatMsgWindow); - MoveROs(StatMsgWindow); - UpdateGraphicFiles(StatMsgWindow); - MoveUserFormats(StatMsgWindow); - UpdateProcedureSetTitleFile(null); - CopyTempChg(StatMsgWindow); - StatMsgWindow.Dispose(); - MessageBox.Show("Procedure Set has been approved.","Approval Complete"); - } - } - - public override void ApproveProcedures(int ApproveType, ArrayList procs) - { - // before doing anything - verify that no one is 'connected' to the - // approved directory. do this by getting approved directory & - // using its object, see if there is an open connection. Make a lock - // in the approved set. If this cannot be done - then can't approve. - bool needtoUnlock = false; - bool needtoDisConnect = false; - VEO_ProcSet lckapp=null; - if (isSetApproved && usrRunTime.InMultiUserMode) - { - bool proceed = true; - VEO_ProcSet ps = null; - VEO_Plant pl = (VEO_Plant) this.parentObj; - for (int i=0; i< pl.Children.Count; i++) - { - VEO_ProcSet aps = (VEO_ProcSet) pl.Children[i]; - string dir = aps._curDirectory.ToUpper()+"\\"+aps._Location.ToUpper(); - if (dir==_curDirectory.ToUpper()+"\\"+_Location.ToUpper()+"\\APPROVED") - { - ps = aps; - break; - } - } - if (ps!=null) - { - // if there are active users in the approved directory approval - // cannot continue, put up message and return. Otherwise lock - // the approved directory. - if (ps.Connection == null) - { - needtoDisConnect=true; - ps.LoadLockInfo(); - ps.Connection = new VEConnection(ps.Lock, ps.usrRunTime); - if (ps.Lock.LockStatus==VENetwork.Status.LockedByOther)proceed=false; - } - if (proceed)ps.Connection.Enter(false); - if (proceed && ps.Connection.HasActiveUsers())proceed=false; - if (proceed && !ps.amILockedByMe()) - { - bool success = ps.Lock.CreateLock(ps.Connection, false); - if (!success) - proceed=false; - else - { - needtoUnlock=true; - lckapp = ps; - } - } - } - if (ps==null||!proceed) - { - MessageBox.Show("Could not connect/lock the associated approval directory.\n Either another user is viewing the data or has a lock on the data.","VE-PROMS"); - if (ps != null) ps.Connection.MonitorUsers((int)ps.Lock.LockType-1); - ps.Connection.Exit(); - if (needtoDisConnect)ps.Connection=null; - return; - } - } - bool wasOpen = isOpen; - // change directory before doing functions - if (!isOpen)Open(); - switch (ApproveType) - { - case 0: // approve the entire set - ApproveAll(); - break; - case 1: - ApproveInd(procs); - break; - } - if(!wasOpen)Close(); - if (needtoUnlock)lckapp.Lock.UnLock(false); -// if (needtoDisConnect) -// Bug Fix: B2006-033 -// Had a lock at VEplant level, thus lckapp was never set - if (needtoDisConnect && lckapp != null) - { - lckapp.Connection.Exit(); - lckapp.Connection=null; - } - } - - public override bool Delete() - { - try - { - bool tst=false; - if ((tst=Open())!=true) return false; - // if this is an enhanced document, remove the bck.lnk or dvt.lnk - // and erg.lnk for dev, files in the parentLink directory. - if (_ProcType == VEObject.ProcTypeOptions.Background || - _ProcType == VEObject.ProcTypeOptions.Deviation) - { - if (parentLink==null) // load in the link. - GetParentLink(); - string lnk = parentLink; - if (lnk != null || lnk != "") - { - string dellnk; - if(this._ProcType != VEObject.ProcTypeOptions.Background) - dellnk = lnk+"\\DVT.LNK"; - else - dellnk = lnk+"\\BCK.LNK"; - File.Delete(dellnk); - } - string tmppath = CurDirectory+"\\"+_Location+"\\eop.lnk"; - if (File.Exists(tmppath)) File.Delete(tmppath); - if (_ProcType == VEObject.ProcTypeOptions.Deviation) - { - if (guideLink==null) GetGuideLink(); - tmppath = this.CurDirectory+"\\"+_Location+"\\ERG.LNK"; - File.Delete(tmppath); - - } - } - - // Now delete the document directory. Close first, which closes - // any open multi-user connections. - Close(); - this.Children.Clear(); - string cwd = Directory.GetCurrentDirectory(); - Directory.Delete(CurDirectory+"\\"+_Location,true); - } - catch (Exception e) - { -// string cwd = Directory.GetCurrentDirectory(); - MessageBox.Show(e.Message,"Error Deleting"); - DirectoryInfo di = new DirectoryInfo(CurDirectory+"\\"+_Location); - di.Delete(true); - return false; - } - if (Directory.Exists(CurDirectory+"\\"+_Location)) return false; - VEO_Plant plnt = (VEO_Plant) parentObj; - if (plnt.Children.Count <=1) - { - plnt.icon = plnt.iconStates[(int)VEO_IconStates.Empty]; - plnt.IsEmpty=true; - } - return true; - } - - public override bool Read(bool ChkForChldOnly) - { - if (Lock.LockStatus == VENetwork.Status.LockedByOther) return false; - string path = _curDirectory + "\\" + _Location; - // for each procset, get its contents, i.e. zip files, whether there's - // a set.dbf (shows that there ar]e procedure files), - StringBuilder fname = new StringBuilder(); - fname.Append(path); - fname.Append("\\SOURCE.ZIP"); - FileInfo source = new FileInfo(fname.ToString()); - if (source.Exists) isArchived=true; - VEO_DummyZip zp = new VEO_DummyZip(usrRunTime,"Zip Files", _curDirectory+"\\"+_Location); - zp.parentObj=this; - Children.Add(zp); - // if !isArchived, check for any other zip files, or make the icon empty - DirectoryInfo di = new DirectoryInfo(path); - FileInfo [] fi = di.GetFiles("*.ZIP"); - if (fi.Length<=0) - { - zp.IsEmpty = true; - zp.icon=zp.iconStates[(int)VEO_IconStates.Empty]; - } - di = null; - fi = null; - - // now check for procedures in the set - fname.Remove(fname.Length-11,11); - fname.Append("\\SET.DBF"); - source = new FileInfo(fname.ToString()); - if (source.Exists) - { - IsEmpty=false; - setExists = true; - if (this.hasExtraRevNumber) - { - vdb_Set vdbSet=new vdb_Set(_curDirectory+"\\"+_Location+"\\set.dbf"); - DataRow rw = vdbSet.DB_Data.Tables[0].Rows[0]; - ExtraRevNumber = rw["TITLE"].ToString(); - origExtraRevNumber=ExtraRevNumber; - vdbSet=null; - } - } - else - IsEmpty=true; - VEO_DummySet prc = new VEO_DummySet(usrRunTime,"Procedures",_curDirectory+"\\"+_Location); - if (IsEmpty) prc.icon = prc.iconStates[(int)VEO_IconStates.Empty]; - prc.parentObj=this; - // Update Enhanced and Slave Set files - if (!ChkForChldOnly) prc.SyncSetFile(); - - // Update the Slave's Continue Actions Summary ini (ContAct.INI) file - if (!ChkForChldOnly) prc.UpdateContActINI(); - - Children.Add(prc); - - // check both rtffiles & procs directory for library documents - di = new DirectoryInfo(path+"\\RTFFILES"); - if (di.Exists) - { - FileInfo[] fiArr = di.GetFiles("DOC_*.LIB"); - if (fiArr.Length>0) hasLibDocs = true; - - } - if (!hasLibDocs) - { - di = new DirectoryInfo(path); - FileInfo[] fiArr = di.GetFiles("DOC_*.LIB"); - if (fiArr.Length>0) hasLibDocs = true; - } - - VEO_DummyLibDoc ld = new VEO_DummyLibDoc(usrRunTime,"Library Documents",_curDirectory+"\\"+_Location); - ld.parentObj=this; - if (!hasLibDocs) - { - ld.icon = ld.iconStates[(int)VEO_IconStates.Empty]; - ld.IsEmpty=true; - } - Children.Add(ld); - - return true; - } - - public override bool CollapseSibling() - { - if (!usrRunTime.InMultiUserMode) return false; - return true; - } - - public override bool mnuAllowLckDB() - { - if (!usrRunTime.InMultiUserMode) return false; - //if (amILockedByMe()) return false; // if I'm already locked, don't allow it - if ((accessFlags&Security.LOCKPROC)==Security.LOCKPROC && Lock.LockStatus==VENetwork.Status.NoLock) return true; - return false; - } - - public override bool mnuAllowUnlckDB() - { - if (!usrRunTime.InMultiUserMode) return false; - if ((accessFlags&Security.LOCKPROC)==Security.LOCKPROC&&(Lock.LockStatus==VENetwork.Status.Locked|| - Lock.LockStatus==VENetwork.Status.LockPending)) return true; - return false; - } - - public override bool mnuAllowUpdRO() - { - if (isApproved||IsEmpty||isTempChange) return false; - if (amILockedByMe()==false) return false; - return true; - } - - public override bool mnuAllowClean() - { - if (isApproved||IsEmpty) return false; - if (Lock.LockStatus!=VENetwork.Status.Locked)return false; - if (amILockedByMe()==false) return false; - if ((accessFlags&Security.CLEAN)==Security.CLEAN) return true; - return false; - } - - public override bool mnuAllowDataCheck() - { - if (isApproved||IsEmpty) return false; - if (Lock.LockStatus!=VENetwork.Status.Locked)return false; - if (amILockedByMe()==false) return false; - if ((accessFlags&Security.CLEAN)==Security.CLEAN) return true; - return false; - } - - public override bool mnuAllowChgDef() - { - if(IsEmpty) return false; - if (amILockedByMe()==false) return false; - return true; - } - - public override bool mnuAllowApprove() - { - if (isApproved || IsEmpty || isTempChange) return false; - if (amILockedByMe()==false) return false; - return true; - } - - public override bool mnuAllowApproveAll() - { - bool allowit=false; - bool allowonlyonce=false; - if (isApproved || IsEmpty || isTempChange) return false; - if (amILockedByMe()==false) return false; - if ((accessFlags&Security.APPROVE)==Security.APPROVE) allowit = true; - // also check if there is a serial number option which allows only one - // approve-all, i.e. if an approved version exists, cannot approve all. - if (usrRunTime.SerialNumber.GetSNOption((uint)Utils.SerialNo.SN_Flags.SN_ONLYAPPROVEONCE_ON)>0) - allowonlyonce=true; - if (allowonlyonce && this.isSetApproved) return false; - if (allowit) return true; - return false; - } - - public override bool mnuAllowApproveSel() - { - if (isApproved || IsEmpty || isTempChange) return false; - if (amILockedByMe()==false) return false; - if (isSetApproved && ((accessFlags&Security.APPROVESINGLE)==Security.APPROVESINGLE)) return true; - return false; - } - - public override bool mnuAllowNew() - { - return false; - } - - public override bool mnuAllowDelete() - { - if (amILockedByMe()==false) return false; - if(usrRunTime.sec.PermissionToManageFlag) return true; - return false; - } - public override bool canEdit() - { - if (amILockedByMe()==false) return false; - if(usrRunTime.sec.PermissionToManageFlag) return true; - return false; - } - - public override void DoListView(ListView veoListView) - { - ListViewItem item=null; - veoListView.Columns.Add("Type", 120, HorizontalAlignment.Left); - - for (int i=0; i= 10)) break; - // get the largest values from the first record's number field - if (isfirst) - { - isfirst = false; - string nm = row["NUMBER"].ToString(); - if (nm != null && nm !="") - { - try - { - LargestNumber = System.Convert.ToInt32(nm.Substring(0,2)); - LargestNumberForMenu=System.Convert.ToInt32(nm.Substring(3,2)); - LargestTitleForMenu=System.Convert.ToInt32(nm.Substring(6,2)); - } - catch (Exception) - { - MessageBox.Show("Invalid data in procedure set.dbf file. Contact Volian!", "set.dbf Error"); - return false; - } - } - } - else - { - string mytitle = row["TITLE"].ToString(); - string mynum = row["NUMBER"].ToString(); - string mypth = row["ENTRY"].ToString(); - string recid = row["RECID"].ToString(); - string tmpcol = row["FORMAT"].ToString(); - string proccode = row["PROCCODE"].ToString(); - int itmpcol; - if (tmpcol==null||tmpcol=="") - itmpcol=1; - else - { - try - { - itmpcol = System.Convert.ToInt32(tmpcol)-1; - } - catch - { - itmpcol = 1; - } - } - if (itmpcol < 0) itmpcol = 1; // if 0 in database, default to 2 col - VEO_Base.ProcColumnOptions format = (VEO_Base.ProcColumnOptions) itmpcol; - - VEO_Proc prc = new VEO_Proc(mytitle,mypth,mynum,recid,format,proccode,row,this,false); - Children.Add(prc); - } - } - - if (ps.hasExtensions) - { - // if not new and we have extensions, check for a setext file. if it doesn't - // exist, notify user & set the flag to false. Just return, if we got to - // this point, no errors were caught. - string setextname = ps._curDirectory+"\\"+ps._Location+"\\setext.dbf"; - if (!isNew) - { - FileInfo fi = new FileInfo(setextname); - if (fi.Exists == false) - { - MessageBox.Show("Procedure comment file (setext.dbf) does not exist.\nThis data will not be available.","Set Extension Error"); - ps.hasExtensions=false; - return true; - } - } - - // the numeric data of the set extension file was not read correctly (an underlying - // driver problem. So, change the data type from numeric (N) to character (C) - // in the file at the 171th byte in the file, if it hasn't been changed. - - try - { - FileStream fs = new FileStream(setextname,FileMode.Open,FileAccess.ReadWrite,FileShare.ReadWrite); - fs.Seek(171,SeekOrigin.Begin); - int by = fs.ReadByte(); - if ((byte)by != (byte)'C') // rewrite it. - { - fs.Seek(171,SeekOrigin.Begin); - fs.WriteByte((byte)'C'); - } - fs.Close(); - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Set Extension Error"); - } - - int chldindx=0; - isfirst=true; - - vdbSetExt=new vdb_SetExt(_Location+"\\setext.dbf"); - // Loop thru the procset (process like a dataset) - tbl = vdbSetExt.DB_Data.Tables[0]; - foreach (DataRow row in tbl.Rows) - { - // if in demo mode, only allow 10 procedures in set - if (usrRunTime.sec.isDemoMode && (chldindx >= 10)) break; - // skip the first one - if (isfirst) - isfirst = false; - else - { - VEO_Proc prc = (VEO_Proc) Children[chldindx]; - - string comment = row["COMMENT"].ToString(); - string rev = row["REV"].ToString(); - string pc = row["PC"].ToString(); - string recid = row["RECID"].ToString(); - string std = row["APPROVEDDATE"].ToString(); - prc.procExt = new VEO_ProcExt(comment, rev, pc, recid, std, row); - chldindx++; - } - } - } - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error reading procedure set"); - return false; - } - return true; - } - - ~ VEO_DummySet() - { - if (vdbtmpSet!=null)vdbtmpSet.Clear(); - vdbtmpSet=null; - vdbSet=null; - vdbSetExt= null; - } - - // This method clears the vdbset, and vdbsetext if used, and reloads from - // database. It then sync's up the datarows to the dummyset's children. - // It is used for moving procedures within the set & on the pack operation. - // Both of these required rewriting of a new database file. - private bool ReLoadRows(int skip) - { - VEO_ProcSet ps = (VEO_ProcSet) parentObj; - try - { - // now reopen a vdbset & vdbsetext & reassign the datarows. - this.vdbSet = null; - this.vdbSetExt = null; - vdbSet=new vdb_Set(_Location+"\\set.dbf"); - // Loop thru the procset (process like a dataset) - DataTable tbl = vdbSet.DB_Data.Tables[0]; - int rec = 1; - for (int i=0;i=11, first - // record is not a procedure) - if (usrRunTime.sec.isDemoMode && (rec >= 11)) break; - - // if not skipping this child (on a delete), sync the database - // row eith the internal proc row - if (skip<0||i!=skip) - { - VEO_Proc prc = (VEO_Proc) Children[i]; - prc.pdatarow = tbl.Rows[rec]; // first table row is blank - rec++; - } - } - if (ps.hasExtensions) - { - this.vdbSetExt=null; - vdbSetExt=new vdb_SetExt(_Location+"\\setext.dbf"); - // Loop thru the procset extensions file - DataTable xtbl = vdbSetExt.DB_Data.Tables[0]; - rec=1; - for (int i=0;i= 11)) break; - if (skip<0||i!=skip) - { - VEO_Proc prc = (VEO_Proc) Children[i]; - VEO_ProcExt pe = prc.procExt; - pe.drow = xtbl.Rows[rec]; - rec++; - } - } - } - return true; - } - catch (Exception e) - { - MessageBox.Show(e.Message, "Problem saving procedure data"); - return false; - } - } - - // When a procedure has been moved within the set, save the new order. - public bool SaveOrder() - { - int rowcount; - VEO_ProcSet ps = (VEO_ProcSet) this.parentObj; - if(!ps.isOpen)ps.Open(); - string tempName = ps._curDirectory + "\\" + ps.Location + "\\NEWSET.DBF"; - if (File.Exists(tempName))File.Delete(tempName); - string name = ps._curDirectory + "\\" + ps.Location + "\\SET.DBF"; - string tempNameEx = null; - string nameEx = null; - if(ps.hasExtensions) - { - tempNameEx = ps._curDirectory + "\\" + ps.Location + "\\NEWEXT.DBF"; - if (File.Exists(tempNameEx))File.Delete(tempNameEx); - nameEx = ps._curDirectory + "\\" + ps.Location + "\\SETEXT.DBF"; - } - - // do set database files now - try - { - vdb_Set newset = new vdb_Set(ps._curDirectory + "\\" + ps.Location); - newset.CreateTable("newset"); - DataTable pdatatable = newset.DB_Data.Tables[0]; - DataTable origtable = vdbSet.DB_Data.Tables[0]; - DataRow recidrow = pdatatable.Rows[0]; - DataRow firstrow = origtable.Rows[0]; - recidrow.ItemArray=firstrow.ItemArray; - rowcount = 1; - foreach (VEO_Proc prc in Children) - { - DataRow pdatarow = pdatatable.NewRow(); - DataRow curold = prc.pdatarow; - pdatarow.ItemArray=curold.ItemArray; - rowcount++; - pdatatable.Rows.Add(pdatarow); - prc.pdatarow = pdatarow; - } - newset.DB_Data = recidrow.Table.DataSet; - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error Saving Procedure Set Order"); - if (File.Exists(tempName))File.Delete(tempName); - if (File.Exists(tempNameEx))File.Delete(tempNameEx); - return false; - } - - // if has setextensions, do the setext file now. - if (ps.hasExtensions) - { - try - { - vdb_SetExt newext = new vdb_SetExt(ps._curDirectory + "\\" + ps.Location); - newext.CreateTable("newext"); - DataTable exttbl = newext.DB_Data.Tables[0]; - DataRow firstdelrow = exttbl.Rows[0]; - // first row was made with a recid of 0001. We want to use the - // first row from the original setext file. - firstdelrow.Delete(); - DataRow firstrow = exttbl.NewRow(); - DataRow orig = vdbSetExt.DB_Data.Tables[0].Rows[0]; - firstrow.ItemArray = orig.ItemArray; - exttbl.Rows.Add(firstrow); - rowcount=1; - foreach (VEO_Proc prc in Children) - { - DataRow pdatarow = exttbl.NewRow(); - DataRow origr = prc.procExt.drow; - pdatarow.ItemArray=origr.ItemArray; - exttbl.Rows.Add(pdatarow); - rowcount++; - prc.procExt.drow = pdatarow; - } - newext.DB_Data = firstrow.Table.DataSet; - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error Saving Procedure Set Order"); - if (File.Exists(tempName))File.Delete(tempName); - if (File.Exists(tempNameEx))File.Delete(tempNameEx); - return false; - } - } - - // rename files & then reload the data (to sync up with internal tree) - File.Delete(name); - File.Move(tempName,name); - if (ps.hasExtensions) - { - File.Delete(nameEx); - File.Move(tempNameEx,nameEx); - } - return (ReLoadRows(-1)); - } - - // back this database, pass in an integer to show the i'th child which was removed - // so that this one is sync'd back up in the reload code. - public bool PackDB(int i) - { - //call the database method for this dataset to pack. It will close the dataset - //and will require a reopen of dataset. - this.vdbSet.Pack(); - VEO_ProcSet ps = (VEO_ProcSet) this.parentObj; - if (ps.hasExtensions) this.vdbSetExt.Pack(); - return (ReLoadRows(i)); - } - - // create a new document object (procedure child for this set) - public override Object MakeNewChild() - { - // if in demo mode, only allow 10 procedures in set - if (usrRunTime.sec.isDemoMode && (Children.Count >= 10)) - { - MessageBox.Show("No more than 10 procedures while in Demo Mode.", "VE-PROMS Demo"); - return null; - } - // for this 'dummy' procedure list node, loop through its - // children to get a unique procnumber. - int i=0; - bool newdc = false; - string newdoc=null; - while(!newdc) - { - if (i==0) - newdoc = "NewDoc"; - else - newdoc = "NewDoc"+(i-1).ToString(); - bool inlist = false; - foreach (VEO_Proc chld in this.Children) - { - if (chld.Procedure_Number == newdoc) - { - inlist=true; - break; - } - } - if(inlist)i++; - else newdc=true; - } - - // now get a unique file name - VEO_Proc prc = new VEO_Proc("New Document",this._Location,newdoc,null,VEO_Base.ProcColumnOptions.TwoColumn, null, null, this, true); - VEO_ProcSet ps = (VEO_ProcSet) parentObj; - if (ps.hasExtensions) - { - prc.procExt = new VEO_ProcExt(null, null, null, null, null, null); - } - return prc; - } - - public override bool SaveChild(Object obj) - { - VEO_Proc proc = (VEO_Proc)obj; - bool succeed = proc.SaveNew(null); - - if (succeed == true) proc.parentObj = this; - return succeed; - } - - public override void DoListView(ListView veoListView) - { - ListViewItem item=null; - veoListView.Columns.Add("ProcNumber", 120, HorizontalAlignment.Left); - veoListView.Columns.Add("Title", 200, HorizontalAlignment.Left); - veoListView.Columns.Add("ProcColumn", 100, HorizontalAlignment.Left); - veoListView.Columns.Add("ModInfo", 150, HorizontalAlignment.Left); - veoListView.Columns.Add("Location", 100, HorizontalAlignment.Left); - - for (int i=0; i0)) - { - // Enhanced Background Documents - if (File.Exists(_Location+"\\SET.DBF")) - UpdateEnhancedSetFile(); - else - { - // no set file, copy from EOPs -// VEO_ProcSet ps = (VEO_ProcSet) this.parentObj; - File.Copy(ps.GetParentLink()+"\\SET.DBF",_Location+"\\SET.DBF"); - } - } -// else if (LOC.EndsWith(".DVT") && - else if (!ps.isApproved && !ps.isTempChange && ps._ProcType.Equals(VEObject.ProcTypeOptions.Deviation) && - (usrRunTime.SerialNumber.GetSNOption((uint)Utils.SerialNo.SN_Flags.SN_DEVIATION_ON)>0)) - { - // Enhanced Deviation Documents - if (File.Exists(_Location+"\\SET.DBF")) - UpdateEnhancedSetFile(); - else - { - // no set file, copy from EOPs -// VEO_ProcSet ps = (VEO_ProcSet) this.parentObj; - File.Copy(ps.GetParentLink()+"\\SET.DBF",_Location+"\\SET.DBF"); - } - } -// else if (LOC.IndexOf(".SL") > 0) - else if (!ps.isApproved && !ps.isTempChange && ps._ProcType.Equals(VEObject.ProcTypeOptions.Slave)) - { - // Slave Procedure Set - UpdateSlaveSetFile(); - } - else - return; // not a enhanced or slave set - - } - - private void UpdateEnhancedSetFile() - { - VEO_ProcSet ps = (VEO_ProcSet) parentObj; - int EnhIdx=1,PrcIdx=1,TmpIdx; -// int EnhExtIdx=0; - int EnhCnt=0, PrcCnt=0, NewCnt=0; -// int EnhExtCnt=0, NewEnhExtCnt=0; - int LargestRecID = 0; - bool NeedToIncLargestRecID = false; - string strEnhRecID, strPrcRecID, strLargestRecID,strNewRecID; -// string NewEnhExtRecID; - int EnhRecID, PrcRecID, NewRecID; - DataRow EnhRow, PrcRow, NewRow; -// DataRow EnhExtRow; - string ParentPath = ps.GetParentLink(); - if (!Directory.Exists(ParentPath)) - { - string cwd = Directory.GetCurrentDirectory(); - MessageBox.Show("Cannot update enhanced set " + ParentPath + ". It does not exist. Check your lnk file setting.", "Enhanced Document Error"); - return; - } - - // compare the date/times of the two set files - DateTime bcksetdt = File.GetLastWriteTimeUtc(_Location+"\\set.dbf"); - DateTime eopsetdt = File.GetLastWriteTimeUtc(ParentPath+"\\set.dbf"); -// if ( bcksetdt.ToUniversalTime() >= eopsetdt.ToUniversalTime()) - if (bcksetdt >= eopsetdt) - return; // Enhanced Set file is up to date - - ArrayList EnhSetList = new ArrayList(); - ArrayList PrcSetList = new ArrayList(); - ArrayList NewEnhSetList = new ArrayList(); - // Array Lists for Set Extension databases -// ArrayList EnhSetExtList = new ArrayList(); -// ArrayList NewEnhSetExtList = new ArrayList(); - - // populate the array lists - EnhCnt = PopulateSetArrayList(_Location,EnhSetList); - PrcCnt = PopulateSetArrayList(ParentPath,PrcSetList); -// if (ps.hasExtensions) -// EnhExtCnt = PopulateSetExtArrayList(_Location,EnhSetExtList); - - // copy the first record from the Enhanced Set file - // - we might modify this later - EnhRow = (DataRow)EnhSetList[0]; - strEnhRecID = EnhRow["RECID"].ToString(); - EnhRecID = Convert.ToInt32(strEnhRecID.Substring(2)); - NewCnt = AddToArrayList(NewEnhSetList,EnhRow,NewCnt,strEnhRecID); - strLargestRecID = strEnhRecID; - LargestRecID = EnhRecID; -// if (ps.hasExtensions) -// { -// // copy the first record from the setext -// EnhExtRow = (DataRow)EnhSetExtList[0]; -// NewEnhExtRecID = EnhExtRow["RECID"].ToString(); -// NewEnhExtCnt = AddToArrayList(NewEnhSetExtList,EnhExtRow,NewEnhExtCnt,NewEnhExtRecID); -// } - - while (EnhIdx < EnhCnt && PrcIdx < PrcCnt) - { - EnhRow = (DataRow)EnhSetList[EnhIdx]; - PrcRow = (DataRow)PrcSetList[PrcIdx]; - strEnhRecID = EnhRow["RECID"].ToString(); - strPrcRecID = PrcRow["RECID"].ToString(); - EnhRecID = Convert.ToInt32(strEnhRecID.Substring(2)); - PrcRecID = Convert.ToInt32(strPrcRecID.Substring(2)); - - if (!(EnhRecID == PrcRecID)) - { - if ((InThisArrayList(strEnhRecID,PrcSetList,PrcIdx,PrcCnt)) == -1) - { - // The EOP probable was deleted. Keep the Background - // procedure around in case user needs to copy info - // from it. - if (EnhRecID > LargestRecID) - { - strLargestRecID = strEnhRecID; - LargestRecID = EnhRecID; - NeedToIncLargestRecID = true; - } - NewCnt = AddToArrayList(NewEnhSetList,EnhRow,NewCnt,strEnhRecID); - } - } - // Copy the Date, Time, and Initials from the old Enhanced Set file - TmpIdx = InThisArrayList(strPrcRecID,EnhSetList,1,EnhCnt); - if (TmpIdx > -1) - { - DataRow TmpRow = (DataRow)EnhSetList[TmpIdx]; - PrcRow["DATE"] = TmpRow["DATE"]; - PrcRow["TIME"] = TmpRow["TIME"]; - PrcRow["INITIALS"] = TmpRow["INITIALS"]; - } - if (PrcRecID > LargestRecID) - { - strLargestRecID = strPrcRecID; - LargestRecID = PrcRecID; - NeedToIncLargestRecID = true; - } - NewCnt = AddToArrayList(NewEnhSetList,PrcRow,NewCnt,strPrcRecID); -// if (ps.hasExtensions) -// { -// // Add Set Extension info. -// EnhExtIdx = InThisArrayList(strEnhRecID,EnhSetExtList,1,EnhExtCnt); -// if (EnhExtIdx > -1) -// { -// EnhExtRow = (DataRow)EnhSetExtList[EnhExtIdx]; -// NewEnhExtRecID = EnhExtRow["RECID"].ToString(); -// NewEnhExtCnt = AddToArrayList(NewEnhSetExtList,EnhExtRow,NewEnhExtCnt,NewEnhExtRecID); -// } -// } - - EnhIdx++; - PrcIdx++; - } - // add any BCK Records that are remaining - while (EnhIdx < EnhCnt) - { - EnhRow = (DataRow)EnhSetList[EnhIdx]; - strEnhRecID = EnhRow["RECID"].ToString(); - EnhRecID = Convert.ToInt32(strEnhRecID.Substring(2)); - if (EnhRecID > LargestRecID) - { - strLargestRecID = strEnhRecID; - LargestRecID = EnhRecID; - NeedToIncLargestRecID = true; - } - NewCnt = AddToArrayList(NewEnhSetList,EnhRow,NewCnt,strEnhRecID); - EnhIdx++; -// if (ps.hasExtensions) -// { -// // Add Set Extension info. -// EnhExtIdx = InThisArrayList(strEnhRecID,EnhSetExtList,1,EnhExtCnt); -// if (EnhExtIdx > -1) -// { -// EnhExtRow = (DataRow)EnhSetExtList[EnhExtIdx]; -// NewEnhExtRecID = EnhExtRow["RECID"].ToString(); -// NewEnhExtCnt = AddToArrayList(NewEnhSetExtList,EnhExtRow,NewEnhExtCnt,NewEnhExtRecID); -// } -// } - } - // add any PRC Records that are remaining - while (PrcIdx < PrcCnt) - { - PrcRow = (DataRow)PrcSetList[PrcIdx]; - strPrcRecID = PrcRow["RECID"].ToString(); - PrcRecID = Convert.ToInt32(strPrcRecID.Substring(2)); - if (PrcRecID > LargestRecID) - { - strLargestRecID = strPrcRecID; - LargestRecID = PrcRecID; - NeedToIncLargestRecID = true; - } - // Copy the Date, Time, and Initials from the old Enhanced Set file - TmpIdx = InThisArrayList(strPrcRecID,EnhSetList,1,EnhCnt); - if (TmpIdx > -1) - { - DataRow TmpRow = (DataRow)EnhSetList[TmpIdx]; - PrcRow["DATE"] = TmpRow["DATE"]; - PrcRow["TIME"] = TmpRow["TIME"]; - PrcRow["INITIALS"] = TmpRow["INITIALS"]; - } - NewCnt = AddToArrayList(NewEnhSetList,PrcRow,NewCnt,strPrcRecID); - PrcIdx++; -// if (ps.hasExtensions) -// { -// // Add Set Extension info. -// EnhExtIdx = InThisArrayList(strPrcRecID,EnhSetExtList,1,EnhExtCnt); -// if (EnhExtIdx > -1) -// { -// EnhExtRow = (DataRow)EnhSetExtList[EnhExtIdx]; -// NewEnhExtRecID = EnhExtRow["RECID"].ToString(); -// NewEnhExtCnt = AddToArrayList(NewEnhSetExtList,EnhExtRow,NewEnhExtCnt,NewEnhExtRecID); -// } -// } - } - // Update Record zero's RECID if needed - NewRow = (DataRow)NewEnhSetList[0]; - strNewRecID = NewRow["RECID"].ToString(); - NewRecID = Convert.ToInt32(strNewRecID.Substring(2)); - if (LargestRecID > NewRecID) - { - if (NeedToIncLargestRecID) LargestRecID++; - strLargestRecID = strLargestRecID.Substring(0,2)+LargestRecID.ToString("d6"); - NewRow["RECID"] = strLargestRecID; - NewEnhSetList[0] = NewRow; -// if (ps.hasExtensions) -// { -// EnhExtRow = (DataRow)EnhSetExtList[0]; -// EnhExtRow["RECID"] = strLargestRecID; -// EnhSetExtList[0] = EnhExtRow; -// } - } - - // Write out new SET.DBF file -// WriteUpdatedSetFile(_Location,NewEnhSetList,EnhSetExtList,ps.hasExtensions); - WriteUpdatedSetFile(_Location,NewEnhSetList,null,false); - } - - static int PopulateSetArrayList(string Loc,ArrayList AryLst) - { - int cnt =0; - string SetFilePath = Loc+"\\set.dbf"; - if (File.Exists(SetFilePath)) - { - try - { - vdb_Set TheSetFile = new vdb_Set(SetFilePath); - // Loop thru the procset (process like a dataset) - DataTable tbl = TheSetFile.DB_Data.Tables[0]; - foreach (DataRow row in tbl.Rows) - { - AryLst.Add(row); - cnt++; - } - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error populating Set Array Lists"); - return 0; - } - } - - return cnt; - } - - static int PopulateSetExtArrayList(string Loc,ArrayList AryLst) - { - int cnt =0; - string SetExtPath = Loc+"\\setext.dbf"; - if (File.Exists(SetExtPath)) - { - try - { - vdb_SetExt TheSetExtFile = new vdb_SetExt(SetExtPath); - // Loop thru the procset (process like a dataset) - DataTable tbl = TheSetExtFile.DB_Data.Tables[0]; - foreach (DataRow row in tbl.Rows) - { - AryLst.Add(row); - cnt++; - } - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error populating SetExt Array Lists"); - return 0; - } - } - - return cnt; - } - - - static int AddToArrayList(ArrayList AryLst,DataRow RowToAdd, int cnt, string AddRecID) - { - bool found=false; - // Bug fix: B2006-043 - // skip the first record (record zero) - int i=1; //0; - while (!found && (i= 0) - { - extTbl.Rows.Add((DataRow)ExtAryLst[ExtAryLstIdx]); - } - else - { - // Create empty set extension record - DataRow newdatarow = extTbl.NewRow(); - newdatarow["RECID"] = AryLstRecID; - newdatarow["COMMENT"] = System.DBNull.Value; // (Comment!=null)&&(Comment!="")?Comment:System.DBNull.Value; - newdatarow["REV"] = System.DBNull.Value; - newdatarow["PC"] = System.DBNull.Value; - newdatarow["TDSTAMP"] = System.DBNull.Value; - extTbl.Rows.Add(newdatarow); - } - } - } - TheSetFile.DB_Data = tbl.DataSet; - if (hasextensions) - { - TheSetExtFile.DB_Data = extTbl.DataSet; - } - } - catch (Exception e) - { - MessageBox.Show(e.Message,"Error writing Enhanced Procedures' Set File"); - return; - } - return; - } - - void UpdateSlaveSetFile() - { - VEO_ProcSet ps = (VEO_ProcSet) parentObj; - bool updateDTS = true; - string MasterDir = ""; - string PathToMaster = ""; - string PathToSlave = ps._curDirectory + "\\" + ps._Location; - - // InMaster() will return the MasterSetPath -// if (InApproved() || InMaster(MasterDir)) return; - if (ps.isApproved || ps.InMaster(ref MasterDir)) return; - - // For Updating the SET.DBF file in Slave procedure sets... - // If the user had approved the slave procedure set: - // - don't copy the Date/Time field from the master - // Else - // - copy the Date/Time field from the master - if (File.Exists(PathToSlave + "\\APPROVED\\SET.DBF")) - updateDTS = false; - - PathToMaster = ps.CurDirectory + "\\" + MasterDir; - - if (SlaveSetFileUpToDate(PathToMaster,PathToSlave)) - return; // Set file is up to date - - ArrayList SlaveSetList = new ArrayList(); - ArrayList MasterSetList = new ArrayList(); - ArrayList NewSlaveSetList = new ArrayList(); - - int SlaveIdx = 0, MasterIdx = 0; //, NewSlaveIdx=0; - int SlaveCnt, MasterCnt; //, NewCnt; - - DataRow SlaveRow, MasterRow; //, NewRow; - - string strMasterRecID; //,strSlaveRecID,strNewRecID; - - SlaveCnt = PopulateSetArrayList(PathToSlave,SlaveSetList); - MasterCnt = PopulateSetArrayList(PathToMaster,MasterSetList); - -// if (ps.hasExtensions) -// SlvExtCnt = PopulateSetExtArrayList(PathToSlave,SlvSetExtList); - - // Update the first record - MasterRow = (DataRow)MasterSetList[0]; - strMasterRecID = MasterRow["RECID"].ToString(); - - if ((InThisArrayList(strMasterRecID,SlaveSetList,0,SlaveCnt)) == 0) - { - //Update the first record - SlaveRow = (DataRow)SlaveSetList[0]; - string MasterNumberField = MasterRow["NUMBER"].ToString(); - string SlaveNumberField = SlaveRow["NUMBER"].ToString(); - SlaveRow["NUMBER"] = MasterNumberField; - NewSlaveSetList.Add(SlaveRow); - } - else - { - //Copy first record from master - NewSlaveSetList.Add(MasterRow); - } - - for(MasterIdx = 1; MasterIdx < MasterCnt; MasterIdx++) - { - MasterRow = (DataRow)MasterSetList[MasterIdx]; - strMasterRecID = MasterRow["RECID"].ToString(); - SlaveIdx = InThisArrayList(strMasterRecID,SlaveSetList,1,SlaveCnt); - if (SlaveIdx > -1) - { - // Update Slave set record - SlaveRow = (DataRow)SlaveSetList[SlaveIdx]; - SlaveRow["TITLE"] = MasterRow["TITLE"]; - SlaveRow["NUMBER"] = MasterRow["NUMBER"]; - SlaveRow["FORMAT"] = MasterRow["FORMAT"]; - if (updateDTS) - { - SlaveRow["DATE"] = MasterRow["DATE"]; - SlaveRow["TIME"] = MasterRow["TIME"]; - } - NewSlaveSetList.Add(SlaveRow); - // remove this item from the Slave list - SlaveSetList.RemoveAt(SlaveIdx); - SlaveCnt--; - } - else - { - // save new entry - NewSlaveSetList.Add(MasterRow); - } - } - // remove the deleted slave procedures - for (SlaveIdx=1; SlaveIdx < SlaveCnt; SlaveIdx++) - { - SlaveRow = (DataRow)SlaveSetList[SlaveIdx]; - string filename = SlaveRow["ENTRY"].ToString(); - // Remove the data files for this procedure - RemoveProcedureFiles(PathToSlave,filename); - // Remove the transitions references - vdb_TransUsage Tusage = new vdb_TransUsage(PathToSlave); - string procnum = SlaveRow["NUMBER"].ToString(); - string WhereStr = "WHERE [FROMNUMBER] = \'" + procnum.Replace("'","''") + "\' OR [TONUMBER] = \'"+ procnum.Replace("'","''") + "\'"; -// string WhereStr = "WHERE [FROMNUMBER] = \'" + procnum + "\'"; - DataSet TransDataSet = Tusage.GetNotSorted(WhereStr); - DataTable tbl = TransDataSet.Tables[0]; - int numrows = tbl.Rows.Count; - foreach (DataRow row in tbl.Rows) - { - row.Delete(); - } - // remove the deleted Trans Usage records - if (tbl.Rows.Count > 0) - Tusage.DB_Data = tbl.DataSet; - - // Remove the RO references - vdb_ROUsage ROusage = new vdb_ROUsage(PathToSlave); - WhereStr = "WHERE NUMBER = '" + procnum.Replace("'","''") + "'"; - DataSet RODataSet = ROusage.GetNotSorted(WhereStr); - DataTable roTbl = RODataSet.Tables[0]; - foreach (DataRow row in roTbl.Rows) - { - row.Delete(); - } - // remove the deleted RO usage records - if (roTbl.Rows.Count >0) - ROusage.DB_Data = roTbl.DataSet; - } - // Write the new SET.DBF file - WriteUpdatedSetFile(PathToSlave,NewSlaveSetList,null,false); - } - - static bool SlaveSetFileUpToDate(string MasterPath, string SlavePath) - { - bool rtnval = true; - string MasterSetFile = MasterPath+"\\set.dbf"; - string SlaveSetFile = SlavePath+"\\set.dbf"; - - if (File.Exists(MasterSetFile)) - { - if (File.Exists(SlaveSetFile)) - { - rtnval = (File.GetLastWriteTimeUtc(MasterSetFile) <= - File.GetLastWriteTimeUtc(SlaveSetFile)); - } - else - rtnval = false; - } - - return rtnval; - } - - static void RemoveProcedureFiles(string SlavePath, string FileName) - { - FileInfo[] fiArr; - DirectoryInfo cur = new DirectoryInfo(SlavePath); - // check for RTFFILES directory, skip this part if it doesn't exist. - DirectoryInfo tstrtf = new DirectoryInfo(SlavePath+"\\RTFFILES"); - if (tstrtf.Exists) - { - fiArr = tstrtf.GetFiles(FileName+".*"); - - // print out the names of the directories - foreach (FileInfo fi in fiArr) - { - fi.Delete(); - } - } - fiArr = cur.GetFiles(FileName+".*"); - foreach (FileInfo fi in fiArr) - { - fi.Delete(); - } - } - - public VEO_Proc GetProcFromNum(string procnum) - { - foreach (Object obj in Children) - { - VEO_Proc prc = (VEO_Proc) obj; - if (prc._Prcnum.ToUpper() == procnum.ToUpper()) - return prc; - } - return null; //not found - } - - public string GetSectionNumAndTitle(string procnum, string stp) - { - // get to the list of procedures and find the procedure for the input - // procedure number. - string retstr = null; - VEO_Proc prc = GetProcFromNum(procnum); - vdb_Proc dbprc=null; - // using the database name, do a select to get the section number & title. - try - { - dbprc = new vdb_Proc(prc._Location+".dbf"); - string wherestr = "STEP LIKE '" + stp.Substring(0,1) + "%' AND SEQUENCE LIKE ' %'"; - DataSet accSet = dbprc.GetNotSorted(wherestr); - DataTable tbl = accSet.Tables[0]; - if (tbl.Rows.Count<1) return null; - DataRow dr = tbl.Rows[0]; - string txt = dr["TEXT"].ToString(); - string title = txt.Substring(0,(txt.LengthSECTITLEBUFSZ+15) - { - int len = (txt.Length-85 0) - { - // create the lib doc to get it's title, then loop through those - // that already are in the list to see if this title is already - // there. - VEO_LibDoc tmp = new VEO_LibDoc(fi.FullName, this, false); - bool inlist = false; - foreach (Object obj in Children) - { - VEO_LibDoc ld = (VEO_LibDoc) obj; - //create the lib doc to get it's title, but only add it to the - // children list if it's unique. - if (ld._Title == tmp._Title) - { - inlist = true; - break; - } - } - if (inlist == false) Children.Add(tmp); - } - } - if (Children.Count==0)IsEmpty=true; - return true; - } - - public override Object MakeNewChild() - { - string comment = null; - VEO_LibDoc ld = null; - int MAXLIBDOCS=10000; - VEO_ProcSet ps = (VEO_ProcSet) parentObj; - ps.Open(); - - // now get a unique file name - OpenFileDialog openFileDialog1 = new OpenFileDialog(); - - openFileDialog1.InitialDirectory = Directory.GetCurrentDirectory(); - openFileDialog1.Filter = "rtf files (*.rtf)|*.rtf|All files (*.*)|*.*" ; - openFileDialog1.FilterIndex = 0 ; - openFileDialog1.RestoreDirectory = true ; - - string rtffile=null; - if(openFileDialog1.ShowDialog() == DialogResult.OK) - { - rtffile = openFileDialog1.FileName; - //currentpath = rtffile.Substring(0,rtffile.LastIndexOf("\\")); - - // first open & read to verify that it is an rtf file. - StreamReader myReader = new StreamReader(rtffile);// Open file - - int nbytes; - char [] tbuf = new char[17]; - - if((nbytes = myReader.Read(tbuf,0,16))<11) // read some - { - myReader.Close(); - MessageBox.Show("File must be an RTF file","Library Document Error"); - } - else - { - myReader.Close(); - string str = new string(tbuf); - if (str.IndexOf("{\\rtf1\\ansi",0)<0) - { - MessageBox.Show("File must be an RTF file","Library Document Error"); - return null; - } - } - - // Make a unique title name - int i=0; - bool used=true; - string newlibtitle = null; - while(used) - { - newlibtitle = "NewLibDoc" + i.ToString(); - bool found=false; - foreach (Object obj in Children) - { - VEO_LibDoc lld = (VEO_LibDoc) obj; - if (lld._Title == newlibtitle) - { - found=true; - break; - } - } - if(!found) - used=false; - else - i++; - } - comment = "New Library Document"; - - // if the 'RTFFILES directory doesn't exist, create it here. - if (Directory.Exists("RTFFILES")!=true) Directory.CreateDirectory("RTFFILES"); - - // now find a unique file name. - i=0; - string buf1 = "DOC_" + i.ToString("D4") + ".lib"; - string buf2 = "RTFFILES\\DOC_" + i.ToString("D4") + ".lib"; - bool fexists=true; - while(fexists) - { - if ((File.Exists(buf1) || File.Exists(buf2)) && i0) - { - xbuf = new char[comment.Length]; - xbuf = comment.ToCharArray(); - bw.Write(xbuf); - bw.Write((byte)0); - } - - //now append the selected file to the new lib file - FileStream fsorig = new FileStream(rtffile,FileMode.Open,FileAccess.Read); - using (BinaryReader br = new BinaryReader(fsorig,Encoding.ASCII)) - { - byte ac; - bool done = false; - while(done==false) - { - if (br.PeekChar() >0) - { - ac = br.ReadByte(); - bw.Write(ac); - } - else - done=true; - } - } - bw.Close(); - fsorig.Close(); - fsnew.Close(); - - if (!File.Exists(pthname)) - { - MessageBox.Show("Could not create rtf file","Library Document Error"); - return null; - } - - ld = new VEO_LibDoc(Directory.GetCurrentDirectory() + "\\"+pthname,this,true); - } - - return ld; - } - - public void Approve(string src, string dst) - { - string[] fis = Directory.GetFiles(src,"DOC_*.LIB"); - foreach (string sfi in fis) - { - FileInfo fi = new FileInfo(sfi); - if (!File.Exists(dst+"\\"+fi.Name)) fi.CopyTo(dst+"\\"+fi.Name,true); - } - string rtfsrc = src + "\\rtffiles\\"; - string rtfdst = dst + "\\rtffiles\\"; - fis = Directory.GetFiles(rtfsrc,"DOC_*.LIB"); - foreach (string sfi in fis) - { - FileInfo fi = new FileInfo(sfi); - fi.CopyTo(rtfdst+"\\"+fi.Name,true); - } - } - - public override bool SaveChild(Object obj) - { - VEO_LibDoc ld = (VEO_LibDoc)obj; - bool succeed = ld.SaveNew(null); - - if (succeed == true) ld.parentObj = this; - return succeed; - } - - public override void DoListView(ListView veoListView) - { - ListViewItem item=null; - veoListView.Columns.Add("Location", 120, HorizontalAlignment.Left); - veoListView.Columns.Add("Title", 300, HorizontalAlignment.Left); - - for (int i=0; i - /// This class provides the 'Properties' dialog box. It includes a property - /// grid which uses Property data from caller to list items in the grid. - /// - public class Properties : System.Windows.Forms.Form - { - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private System.Windows.Forms.PropertyGrid myPropertyGrid; - private System.Windows.Forms.Panel panel1; - private VEO_Base _ParentObj; - private VEO_Base _CurObj; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnSave; - private System.Windows.Forms.Button btnApply; - private bool isnew; - public GridItem CurrentGridItem; - private bool canedit; - - public Properties(Object par, Object obj) - { - _ParentObj = (VEO_Base) par; - _CurObj = (VEO_Base) obj; - if(_CurObj.isNew) - isnew=true; - else - isnew=false; - - // - // Required for Windows Form Designer support - // - InitializeComponent(); - this.btnApply.Enabled=false; - if((_CurObj.canEdit()==false)&&!isnew) - this.myPropertyGrid.Enabled=false; - else - this.myPropertyGrid.Enabled=true; - - this.myPropertyGrid.SelectedObject=obj; - canedit=this.myPropertyGrid.Enabled; - - // make apply button visible if modify - this.btnApply.Visible = !isnew; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(Properties)); - this.myPropertyGrid = new System.Windows.Forms.PropertyGrid(); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnApply = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnSave = new System.Windows.Forms.Button(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // myPropertyGrid - // - this.myPropertyGrid.CommandsVisibleIfAvailable = true; - this.myPropertyGrid.Dock = System.Windows.Forms.DockStyle.Top; - this.myPropertyGrid.Font = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.myPropertyGrid.HelpVisible = false; - this.myPropertyGrid.LargeButtons = false; - this.myPropertyGrid.LineColor = System.Drawing.SystemColors.ScrollBar; - this.myPropertyGrid.Location = new System.Drawing.Point(0, 0); - this.myPropertyGrid.Name = "myPropertyGrid"; - this.myPropertyGrid.PropertySort = System.Windows.Forms.PropertySort.Categorized; - this.myPropertyGrid.Size = new System.Drawing.Size(704, 416); - this.myPropertyGrid.TabIndex = 1; - this.myPropertyGrid.Text = "Properties"; - this.myPropertyGrid.ToolbarVisible = false; - this.myPropertyGrid.ViewBackColor = System.Drawing.SystemColors.Window; - this.myPropertyGrid.ViewForeColor = System.Drawing.SystemColors.WindowText; - this.myPropertyGrid.Click += new System.EventHandler(this.myPropertyGrid_Click); - this.myPropertyGrid.PropertyValueChanged += new System.Windows.Forms.PropertyValueChangedEventHandler(this.myPropertyGrid_PropertyValueChanged); - this.myPropertyGrid.DoubleClick += new System.EventHandler(this.myPropertyGrid_Click); - // - // panel1 - // - this.panel1.Controls.Add(this.btnApply); - this.panel1.Controls.Add(this.btnCancel); - this.panel1.Controls.Add(this.btnSave); - this.panel1.Location = new System.Drawing.Point(0, 128); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(704, 96); - this.panel1.TabIndex = 2; - // - // btnApply - // - this.btnApply.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnApply.Location = new System.Drawing.Point(200, 8); - this.btnApply.Name = "btnApply"; - this.btnApply.Size = new System.Drawing.Size(64, 24); - this.btnApply.TabIndex = 2; - this.btnApply.Text = "Apply"; - this.btnApply.Click += new System.EventHandler(this.btnApply_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnCancel.Location = new System.Drawing.Point(112, 8); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(64, 24); - this.btnCancel.TabIndex = 1; - this.btnCancel.Text = "Cancel"; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnSave - // - this.btnSave.Font = new System.Drawing.Font("Microsoft Sans Serif", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnSave.Location = new System.Drawing.Point(24, 8); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(64, 24); - this.btnSave.TabIndex = 0; - this.btnSave.Text = "OK"; - this.btnSave.Click += new System.EventHandler(this.btnOK_Click); - // - // Properties - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(704, 190); - this.Controls.Add(this.panel1); - this.Controls.Add(this.myPropertyGrid); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "Properties"; - this.Text = "Properties"; - this.panel1.ResumeLayout(false); - this.ResumeLayout(false); - - } - #endregion - - private void myPropertyGrid_Click(object sender, System.EventArgs e) - { - CurrentGridItem = this.myPropertyGrid.SelectedGridItem; - } - - private void myPropertyGrid_PropertyValueChanged(object s, System.Windows.Forms.PropertyValueChangedEventArgs e) - { - btnApply.Enabled = true; - CurrentGridItem = this.myPropertyGrid.SelectedGridItem; - } - - // save data for use by ok and apply button clicks - private bool saveclick() - { - bool success = true; - - if (isnew) - { - if(_ParentObj==null) - { - DialogResult=DialogResult.Cancel; - return success; - } - success=_ParentObj.SaveChild(_CurObj); - } - else - { - success=_CurObj.Write(); - } - return success; - } - - // save was clicked, use the objects save methods. - private void btnOK_Click(object sender, System.EventArgs e) - { - bool success = true; - if (canedit) success = saveclick(); - if (success==true) - { - DialogResult = DialogResult.OK; - this.Close(); - } - } - - private void btnApply_Click(object sender, System.EventArgs e) - { - if(!canedit)return; - bool success = saveclick(); - if(success==true)btnApply.Enabled=false; - this.myPropertyGrid.Refresh(); - } - - private void btnCancel_Click(object sender, System.EventArgs e) - { - if(!canedit)return; - _CurObj.Restore(); - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Properties.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Properties.resx deleted file mode 100644 index 34fba6ad..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/Properties.resx +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - False - - - True - - - Private - - - 8, 8 - - - True - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - Properties - - - 80 - - - True - - - Private - - - - AAABAAEAICAQAAAAAADoAgAAFgAAACgAAAAgAAAAQAAAAAEABAAAAAAAgAIAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAADAAADAAAAAwMAAwAAAAMAAwADAwAAAwMDAAICAgAAAAP8AAP8AAAD//wD/AAAA/wD/AP// - AAD///8AiIiIiIiIiIiIiIiIiIiIiPF3F3F3F3F3F3d3d3d3d3jxdxdxdxdxdxd3d3d3d3d49xdxdxdx - dxdxd3d3d3d3ePcXcXcXcXcXcXd3d3d3d3jxcXcXcXcXcXcXd3d3d3d48XF3F3F3F3F3F3d3d3d3ePdx - F3F3F3F3F3F3d3d3d3j3cRdxdxdxdxdxd3d3d3d49xdxdxdxdxdxdxd3d3d3ePcXcXcXcXcXcXcXd3d3 - d3jxdxcXcXcXcXcXcXd3d3d48XcXF3F3F3F3F3F3d3d3ePdxdxF3F3F3F3F3F3d3d3j3cXcRdxdxdxdx - dxd3d3d49xdxdxdxdxdxdxdxd3d3ePcXcXcXcXcXcXcXcXd3d3jxdxdxcXcXcXcXcXcXd3d48XcXcXF3 - F3F3F3F3F3d3ePdxdxd3F3F3F3F3F3F3d3j3cXcXdxdxdxdxdxdxd3d49xdxd3dxdxdxdxdxdxd3ePcX - cXd3cXcXcXcXcXcXd3jxdxd3d3cXcXcXcXcXcXd48XcXd3d3F3F3F3F3F3F3ePdxd3d3d3F3F3F3F3F3 - F3j3cXd3d3dxdxdxdxdxdxd49xd3d3d3dxdxdxdxdxdxePcXd3d3d3cXcXcXcXcXcXjxd3d3d3d3cXcX - cXcXcXcY8Xd3d3d3d3F3F3F3F3F3GP////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA== - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/RO.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/RO.cs deleted file mode 100644 index 3f7a12bc..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/RO.cs +++ /dev/null @@ -1,436 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: RO.cs $ $Revision: 6 $ - * $Author: Kathy $ $Date: 5/02/06 9:46a $ - * - * $History: RO.cs $ - * - * ***************** Version 6 ***************** - * User: Kathy Date: 5/02/06 Time: 9:46a - * Updated in $/LibSource/VEObject - * B2006-018: ro usages for procnums with single quote - * - * ***************** Version 5 ***************** - * User: Jsj Date: 6/02/05 Time: 11:36a - * Updated in $/LibSource/VEObject - * fix for approving with conditional ROs and code cleanup - * - * ***************** Version 4 ***************** - * User: Kathy Date: 5/19/05 Time: 11:08a - * Updated in $/LibSource/VEObject - * speed up approve - * - * ***************** Version 3 ***************** - * User: Jsj Date: 5/17/05 Time: 12:00p - * Updated in $/LibSource/VEObject - * Approve graphic fix - * - * ***************** Version 2 ***************** - * User: Jsj Date: 3/10/05 Time: 4:02p - * Updated in $/LibSource/VEObject - * hooks to new namespace for RO FST file - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:51p - * Created in $/LibSource/VEObject - * Approval - *********************************************************************************************/ -using System; -using System.IO; -using System.Data; -using System.Windows.Forms; -using System.Collections; -using Utils; -using ROFST_FILE; -using VDB_ROUsage; -using VlnStatus; - -namespace VEObject -{ - /// - /// Summary description for ROFST. Provides support/interface to/from RO.fst file. - /// - public class ROFST : ROFST_File - { - // constructor loads ro.fst databases - public ROFST(string path):base(path) - { - } - - - ~ ROFST() - { - } - - public void CopyImagesToApproved(string appdir, VlnStatusMessage StatMsgWindow) - { - for(int i=0;i0) return true; - return false; - } - - private void CopyROFile(string fname, string ApprovedDir) - { - PrivateProfile ropathINI = new PrivateProfile("PROC.INI"); - string ropath = ropathINI.Attr("RO Defaults","ROPATH"); - if (ropath == null || ropath == "") ropath = "..\\RO"; - string src = ropath + "\\" + fname; - string dst = ApprovedDir + "\\" + fname; - if (File.Exists(src)) - { - File.Copy(src,dst,true); - FileInfo fi_src = new FileInfo(src); - FileInfo fi_dst = new FileInfo(dst); - fi_dst.LastWriteTime = fi_src.LastWriteTime; - } - else - MessageBox.Show("Could not copy " + src); - } - - private long CalculatePromsDate(DateTime imgdate) - { - /* - * do some conversion so that comparison can be made on date/time - * stored on image data from ro.fst to a datetime from .net. - * Proms had it in seconds since 00:00:00 1/1/1970. - * .NET has it in ticks since 00:00:00 1/1/1 - */ - DateTime promsdt = new DateTime(1970,1,1,0,0,0); // Jan 1, 1970 - // Convert the promsdt to UTC (GMT) - DateTime promsdtU = promsdt.ToUniversalTime(); - long promsdtU_num = promsdtU.Ticks / 10000000; - - // Convert the image file datetime to UTC - DateTime imgdateU = imgdate.ToUniversalTime(); - long imgdateu_num = imgdateU.Ticks / 10000000; - - /** - * Get the time adjustment for the current Time Zone with respect - * to the coordinated universal time (UTC) - a.k.a. Greenwich mean time (GMT). - * The time gotten for the Jan 1, 1970 is in UTC time, the imgdate time is - * in EST. - * - * Get the offset time between this time zone and UTC (GMT) time. - * Convert the offset to seconds. - * Subtract the offset from the UTC time gotten for Jan 1, 1970 - */ - ThisTimeZone TZ = new ThisTimeZone(); - TimeSpan TimeZoneSpan = TZ.GetUtcOffset(promsdt); // Time Zone offset from UTC - long TimeZoneAdj = Math.Abs(TimeZoneSpan.Ticks / 10000000); // convert to seconds - - /* - * The file date/time and the Jan 1, 1970 adjustment date are in UTC. - * Subtract the "Jan 1, 1970" date/time from the file date/time - * the add the Time Zone offset to place the date/time value into - * local time. - */ - long lsec = (imgdateu_num - promsdtU_num) + TimeZoneAdj; - return lsec; - } - - - - public void ApproveGraphicsFile(string fstRec, string appdir, VlnStatusMessage StatMsgWindow) - { - long dt; - // position to Graphics file name - int nlindx = fstRec.IndexOf("\n"); - - // Graphics file name - string fbuf = fstRec.Substring(0,nlindx); - - // Grpahics file date/time (stored in RO.FST) - dt = System.Convert.ToInt32(fstRec.Substring(nlindx+1,8),16); - - // Add the graphics file extension if needed - int indx = fbuf.IndexOf("."); - if (indx<0 || (fbuf.Length>indx+1 && fbuf[indx+1]=='\\')) - { - if (DefaultGraphicFileExt[0] != '.') fbuf = fbuf + "."; - fbuf = fbuf + DefaultGraphicFileExt; - } - - // if file doesn't exist in approved - // or if it is more recent than approved, - // copy it to approved. - string appfbuf = appdir + "\\" + fbuf; - FileInfo app_fi = new FileInfo(fbuf); - if (!File.Exists(appfbuf) || (CalculatePromsDate(app_fi.LastWriteTime)!=dt)) - { - if (StatMsgWindow !=null) StatMsgWindow.StatusMessage = "Updating graphic " + fbuf; - CopyROFile(fbuf,appdir); - } - } - - private void ProcessGroupsForImages(string appdir, string tmp,uint x1,string ttl,BinaryReader br, - uint start, short level, ushort tblid, VlnStatusMessage StatMsgWindow) - { - uint id, parid; - short howmany; - long wasAt = br.BaseStream.Position; - br.BaseStream.Seek((long) start, SeekOrigin.Begin); - id = br.ReadUInt32(); - parid = br.ReadUInt32(); - howmany = br.ReadInt16(); - if (howmany <= 0 && (ttl!=null && ttl!="") && wasused(tblid,id)) - { - byte bt = br.ReadByte(); // skip type - bt = br.ReadByte(); - - // Read the Graphics File ROFST record - string dtl = ROFST.GetAsciiString(br); - // Approve the Graphics file - ApproveGraphicsFile(dtl, appdir, StatMsgWindow); - } - - // if count in howmany is greater than zero, this must be a group - // recursively call this to find ros. - if (howmany>0) - { - if (level>=0) - { - string [] title = new string [howmany]; - UInt32 [] offset = new UInt32 [howmany]; - UInt16 [] type = new UInt16 [howmany]; - for (int i=0; i0) - ProcessGroupsForImages(appdir,null,type[i],title[i],br,offset[i],System.Convert.ToInt16(level+1),tblid,StatMsgWindow); - } - } - } - br.BaseStream.Seek(wasAt,SeekOrigin.Begin); - } - } - - public class Usages - { - static Usages() - { - - } - - public static int CheckRoReferences(VEO_ProcSet ps, string path, ArrayList al, ArrayList ModROs, string keystr) - { - // get usage records for the input string 'keystr' and then check to - // see if the RO is in the input Modified list. - // If keystr is a lib-doc (i.e. starts with "DOC") then just return the - // whether there is modified ro in here. - // If keystr is a procedure num, check to see if other procedures use this - // modified RO and add them to the list of items to approve (al). - - // -1 flags failure on return. Otherwise, return count of those found. - int retval=0; - vdb_ROUsage rousg=null; - DataSet dataset=null; - string us_path = path + "\\usagero.dbf"; - try - { - rousg = new vdb_ROUsage(us_path); - dataset = rousg.GetSortedByProc("[NUMBER] = \'"+keystr.Replace("'","''")+"\'"); - } - catch (Exception e) - { - MessageBox.Show("Could not get RO usages for this item " + keystr + ", " + e.Message); - return -1; - } - foreach (DataRow dr in dataset.Tables[0].Rows) - { - // if we find an RO that's in the ModROs list, then here's where - // we see if it's used by other procedures too. - string roid = dr["ROID"].ToString(); - if (roid.Length == 12) - roid = roid + "0000"; - else if (!roid.EndsWith("0000")) - roid = roid.Substring(0,12) + "0000"; - - ModRO wasModRO = null; - foreach (ModRO mro in ModROs) - { - string tmpROID = mro.roid; - if (tmpROID.Length == 12) - tmpROID = tmpROID + "0000"; - if (tmpROID.Equals(roid)) - { - mro.roid = tmpROID; - wasModRO = mro; - mro.IsUsed = true; - break; - } - } - - // if just checking if the library document has any modified ROs, then - // just return (return with a number greater than 0 to flag that it had - // modified ROs. Doc is only passed in as the keystr when checking for - // modified library documents. - if (keystr.Substring(0,3).ToUpper()=="DOC") - { - if (wasModRO != null) return 1; - return 0; - } - // if this was a procedure, then we'll see if other procedures use this. - if (wasModRO != null) - { - us_path = path + "\\approved\\usagero.dbf"; - rousg = null; - rousg = new vdb_ROUsage(us_path); - DataSet dataset_prc = null; - string keyroid = roid.Substring(0,12)+"%"; - try - { - dataset_prc = rousg.GetSortedByROID("[ROID] LIKE \'"+keyroid+"\'"); - //dataset_prc = rousg.GetSortedByROID("[ROID] = \'"+roid+"\'"); - } - catch (Exception e) - { - MessageBox.Show("Could not get procedures using modified RO " + roid + ", " + e.Message); - return -1; - } - foreach (DataRow drroid in dataset_prc.Tables[0].Rows) - { - // first see if this prpc is already in list of procedures to approve - // if so, don't add it, but check to be sure this ro is in the conflict - // list. - bool inlist = false; - AppIndItem cur=null; - foreach (object obal in al) - { - AppIndItem aiiobj = (AppIndItem) obal; - if (aiiobj.Proc._Prcnum == (string)drroid["NUMBER"]) - { - cur=aiiobj; - inlist=true; - break; - } - } - if (!inlist) - { - VEO_DummySet ds = (VEO_DummySet) ps.Children[1]; - // find the procedure object to add it the the approve list - foreach (object ob in ds.Children) - { - VEO_Proc pr = (VEO_Proc) ob; - if (pr._Prcnum == (string) drroid["NUMBER"]) - { - cur = new AppIndItem(pr); - al.Add(cur); - retval++; - break; - } - } - if (cur==null) - { - retval++; - cur = new AppIndItem(null); - } - } - - // is this ROID already in the conflict list. - inlist = false; - foreach (AppConflict aco in cur.ConflictList) - { - if (aco.CType == AppConflictTypes.RO) - { - AppROConflict raco = (AppROConflict) aco; - if (raco.ROID == roid) - { - inlist=true; - break; - } - } - } - - if (!inlist) - { - string val1 = (drroid["NUMBER"]==System.DBNull.Value)?null:(string)drroid["NUMBER"]; - string val2 = (drroid["SEQUENCE"]==System.DBNull.Value)?null:(string)drroid["SEQUENCE"]; - AppROConflict roc = new AppROConflict((VEO_DummySet)ps.Children[1],roid, val1, val2,wasModRO.IsImage,wasModRO.Val1,wasModRO.Val2); - cur.AddConflict(roc); - } - } - } - } - return retval; - } - - // For approve individual, update the approved version with the ro usages for the - // procedure or library defined by input 'WdNum'. 'ApNum' is the procedure number if - // this is a procedure - if libdoc this will be same as 'WdNum', in case of change - // in procedure number. - public static void FixROUsages(string WdPath, string ApprovedPath, string ApNum, string WdNum) - { - string appath=ApprovedPath+"\\usagero.dbf"; - try - { - vdb_ROUsage arousg = new vdb_ROUsage(appath); - - // remove ro usages from the approved ro usage file. ApNum will be null - // if this is a new procedure - in this case we don't need to remove anything - // from the approved usages file. - if (ApNum != null) - { - DataSet adset = arousg.GetSortedByProc("[NUMBER]=\'"+ApNum.Replace("'","''")+"\'"); - int ndr = adset.Tables[0].Rows.Count; - if (ndr>0) - { - int errs = arousg.DeleteSelected("[NUMBER]=\'"+ApNum.Replace("'","''")+"\'"); - if (errs>0) - { - MessageBox.Show("Error resolving transition records"); - return; - } - arousg.Pack(); - } - adset=null; - } - // now update the approved ro usages from data based on data in the working - // draft. - vdb_ROUsage rousg = new vdb_ROUsage(WdPath+"\\usagero.dbf"); - DataSet wdset = rousg.GetSortedByProc("[NUMBER] = \'"+WdNum.Replace("'","''")+"\'"); - if (wdset.Tables[0].Rows.Count>0) - { - int errs = rousg.InsertInto(WdPath+"\\"+ApprovedPath+"\\usagero.dbf","[NUMBER] = \'"+WdNum.Replace("'","''")+"\'"); - if (errs>0) - { - MessageBox.Show("Error resolving RO usage records."); - return; - } - } - wdset.Dispose(); - rousg=null; - arousg=null; - } - catch (Exception e) - { - MessageBox.Show("Could not approve ro usages for " + WdNum + ", "+e.Message); - return; - } - } - } - -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/RefList.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/RefList.cs deleted file mode 100644 index 9db801dd..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/RefList.cs +++ /dev/null @@ -1,121 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: RefList.cs $ $Revision: 3 $ - * $Author: Jsj $ $Date: 7/21/06 2:59p $ - * - * $History: RefList.cs $ - * - * ***************** Version 3 ***************** - * User: Jsj Date: 7/21/06 Time: 2:59p - * Updated in $/LibSource/VEObject - * The File for Edit Depenencies was being created in the wrong place for - * VFW to find. - * - * ***************** Version 2 ***************** - * User: Kathy Date: 3/22/05 Time: 10:11a - * Updated in $/LibSource/VEObject - * clean up code - * - * ***************** Version 1 ***************** - * User: Kathy Date: 3/08/05 Time: 1:51p - * Created in $/LibSource/VEObject - * Approval - *********************************************************************************************/ -using System; -using System.IO; -using System.Text; -using System.Windows.Forms; -using Utils; - - -namespace VEObject -{ - /// - /// Summary description for RefList. - /// - /// The RefList class creates, reads, writes, and deletes a file - /// of the 'input' name to hold procedure numbers/sequence numbers that - /// represent dependencies that need to be addressed (i.e. removed) by - /// the user in the editor. This is either for resolving approve selected - /// conflicts or deleting a procedure with transitions. (actual current use is - /// for approve selected conflicts). - /// The contents of this file is read in and listed via the TranRefsDlg in vfw - /// for now, i.e. as long as vfw is the editor. - /// The 'input' file is created in the user's Temp directory when in multi-user - /// mode or in the procedure directory when a lock is set or when in single user \ - /// mode. - /// - public class RefList - { - private string FileName; - private string FromProcNum; - private FileStream FSRef; - private BinaryWriter BWRef; - private UserRunTime usrRunTime; - private long HeaderOffset; - private Int16 NumRefs; - - public RefList(string frmProcNum, string fname, UserRunTime urt) - { - FileName = fname; - usrRunTime=urt; - FromProcNum=frmProcNum; - NumRefs=0; - BWRef = null; - } - - public bool Create() - { - try - { -// Bug fix B2006-034 -// Note that ExeAdjust() needs to check for a lock set. -// When a lock is set, the xE7 char would act like the xE2 char in -// the ExeAdjust() function. -// This bug fix is taking advantage of the fact that lock must be set -// at the time the approval code reaches this logic. -// -// FSRef = new FileStream(usrRunTime.ExeAdjust("\xE7" + FileName),FileMode.Create,FileAccess.Write,FileShare.ReadWrite); - FSRef = new FileStream(usrRunTime.ExeAdjust("\xE2" + FileName),FileMode.Create,FileAccess.Write,FileShare.ReadWrite); - BWRef = new BinaryWriter(FSRef); - BWRef.Write(NumRefs); // Temporary holding for number of references - Int16 len = (Int16)FromProcNum.Length; - BWRef.Write(len); - byte[] btmp = Encoding.ASCII.GetBytes(FromProcNum); - BWRef.Write(btmp,0,len); - HeaderOffset = FSRef.Length; - } - catch (Exception e) - { - MessageBox.Show(e.Message); - return false; - } - return true; - } - - public void CloseFile() - { - if (BWRef != null) BWRef.Close(); - FSRef=null; - BWRef=null; - NumRefs=0; - HeaderOffset=0; - } - - public void WriteTotalNumRefs() - { - FSRef.Seek(0,System.IO.SeekOrigin.Begin); - BWRef.Write(NumRefs); - FSRef.Seek(0,System.IO.SeekOrigin.End); - } - - public void WriteRefLine(string refline) - { - byte[] btmp = Encoding.ASCII.GetBytes(refline); - BWRef.Write(btmp,0,100); - NumRefs++; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/VEObject.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/VEObject.cs deleted file mode 100644 index 74a594f8..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/VEObject.cs +++ /dev/null @@ -1,810 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VEObject.cs $ $Revision: 9 $ - * $Author: Jsj $ $Date: 8/30/06 10:04a $ - * - * $History: VEObject.cs $ - * - * ***************** Version 9 ***************** - * User: Jsj Date: 8/30/06 Time: 10:04a - * Updated in $/LibSource/VEObject - * Added Multi Procedure Data Checker - * - * ***************** Version 8 ***************** - * User: Kathy Date: 6/21/05 Time: 7:27a - * Updated in $/LibSource/VEObject - * edit for approve if from procset/procedures node - * - * ***************** Version 7 ***************** - * User: Kathy Date: 5/11/05 Time: 9:29a - * Updated in $/LibSource/VEObject - * approve menu from procedures tree node - * - * ***************** Version 6 ***************** - * User: Kathy Date: 4/21/05 Time: 10:24a - * Updated in $/LibSource/VEObject - * remove upgrade2005 define - * - * ***************** Version 5 ***************** - * User: Kathy Date: 3/22/05 Time: 10:14a - * Updated in $/LibSource/VEObject - * approve: remove revise menu enable - * - * ***************** Version 4 ***************** - * User: Kathy Date: 2/03/05 Time: 11:20a - * Updated in $/LibSource/VEObject - * Change 'DUMMY' node to 'TEMP' node (just in case user sees it) - * - * ***************** Version 3 ***************** - * User: Kathy Date: 1/31/05 Time: 11:06a - * Updated in $/LibSource/VEObject - * Fix B2005-005 (connection & delete directory errors). also, fix icon - * - * ***************** Version 2 ***************** - * User: Kathy Date: 10/25/04 Time: 10:24a - * Updated in $/LibSource/VEObject - * Fix B2004-049 - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:53a - * Created in $/LibSource/VEObject - *********************************************************************************************/ - -using System; -using System.Text; -using System.Collections; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using Utils; -using VENetwork; -using VEMessageNS; - -namespace VEObject -{ - /// - /// VEObject namespace provides classes for the Volian Enterprises Objects DataRoot, DataPath, - /// Plant, Procedure Set, Procedures, Library Documents and Archives. - /// - /// This file has the base class, VEO_Base, which all other objects inherits from. - /// - - public enum VEObjectTypesDefs - { - Generic = 0, ProcedureSet = 1, Procedure = 2, Archive = 3, LibraryDoc =4, System = 5, Plant = 6, DummySet = 7 - }; - - public enum VEO_IconStates - { - Normal=0, LckByMe=1, LckByOther=2, LckPending=3, Empty=4 - }; - public enum ProcTypeOptions - { -// Standard=0, Background=1, Deviation=2, Slave=3 - Standard=0, Slave=1, Background=2, Deviation=3 - }; - public class VEO_Base - { - public int [] iconStates; - public int icon; - public string _Title; - public string _Location; - public ArrayList Children; - public Object parentObj; - public UserRunTime usrRunTime; - public bool isOpen; - private bool Expanded; - public bool IsEmpty; - public int VEObjectType; - public bool isNew; - public bool AllowListViewSort; - public VELock Lock; - public VEConnection Connection; - public TreeNode treeNode; - - public enum ProcColumnOptions - { - OneColumn=0, TwoColumn=1, ThreeColumn=2 - }; - public enum ArchiveTypeOptions - { - Full=0, Partial=1 - }; - - // constructor - public VEO_Base() - { - Expanded = false; - isOpen = false; - AllowListViewSort = false; - Children = new ArrayList(); - VEObjectType = (int)VEObjectTypesDefs.Generic; - } - - ~ VEO_Base() - { - if (Connection!=null) Connection.Exit(); - } - - public virtual void LoadLockInfo() - { - Lock = new VELock(_Location, usrRunTime==null?null:usrRunTime.myUserData, VENetwork.LockTypes.None); - } - - public virtual bool mnuAllowDelete() - { - return true; - } - - public virtual bool mnuAllowApprove() - { - return false; - } - - public virtual bool mnuAllowApproveSel() - { - return false; - } - - public virtual bool mnuAllowApproveAll() - { - return false; - } - - public virtual bool mnuAllowProperties() - { - return true; - } - - public virtual bool mnuAllowNew() - { - return true; - } - - public virtual bool mnuAllowUpdRO() - { - return false; - } - - public virtual bool mnuAllowClean() - { - return false; - } - - public virtual bool mnuAllowDataCheck() - { - return false; - } - - public virtual bool mnuAllowChgDef() - { - return false; - } - - public virtual bool mnuAllowUpdateArch() - { - return false; - } - - public virtual bool mnuAllowTestArchive() - { - return false; - } - - public virtual bool mnuAllowExtractArch() - { - return false; - } - public virtual bool mnuAllowLckDB() - { - return false; - } - public virtual bool mnuAllowUnlckDB() - { - return false; - } - public virtual bool mnuAllowMonUsr() - { - if (usrRunTime.InMultiUserMode && !(Lock.LockType==VENetwork.LockTypes.None) && - !(Lock.LockStatus==VENetwork.Status.LockedByOther)) return true; - return false; - } - public virtual bool canEdit() - { - return true; - } - // used to flag whether all siblings of a node should be collapsed before expanding the - // node. This is needed for multi-user support for the plant & procedure set levels so - // that a user does not have open connections all over the tree. - public virtual bool CollapseSibling() - { - return false; - } - public virtual bool amILockedByMe() - { - // if not a newtork serial number, treat it as anything is locked. - if (!usrRunTime.InMultiUserMode)return true; - VEO_Base obj = this; - while (obj!=null) - { - if (obj.Lock.LockStatus == VENetwork.Status.Locked) return true; - obj = (VEO_Base) obj.parentObj; - } - return false; - } - public virtual bool isProcSet() - { - return false; - } - - public virtual bool isArchiveSet() - { - return false; - } - - public virtual bool updateROValues() - { - return false; - } - - public virtual void CleanTransitionsAndROsUsages(int clntype,string ProcName) - { - return; - } - - public virtual void ApproveProcedures(int ApproveType, ArrayList prcs) - { - return; - } - - public virtual void DataIntegrityCheck(string ProcName) - { - return; - } - - // Add TreeNodes to the input TreeNode parent. - public virtual void AddToTree(TreeNode parentnd) - { - for(int i=0; i0) veo.Children.Clear(); - if (nd.Nodes.Count>0) nd.Nodes.Clear(); - veo.Read(false); - veo.AddToTree(nd); - } - - // if the object can have a lock at this level, but it currently doesnot - // have a lock, if it has children add a temp node to the treeview. This - // is done so that if this becomes expanded, the lock is checked again. - else if (veo.Lock.LockStatus!=VENetwork.Status.LockedByOther) - { - veo.Read(true); - if (veo.Children.Count>0) - { - veo.Children.Clear(); - TreeNode dmy = new TreeNode("TEMP"); - nd.Nodes.Add(dmy); - } - } - - // if multi-user serial number, may have to reset lock status icon. - if (usrRunTime.InMultiUserMode) - { - // if no lock & emtpy, show empty. Otherwise, show lock icon - if (IsEmpty && veo.Lock.LockStatus==VENetwork.Status.NoLock) - veo.icon = veo.iconStates[(int)VEO_IconStates.Empty]; - else - veo.icon = veo.iconStates[(int)veo.Lock.LockStatus]; - nd.ImageIndex = veo.icon; - nd.SelectedImageIndex = veo.icon; - } - } - - // When the user collapses the treenode, also, do some object cleanup. - // This removes children, exits connections for all sub-tree children - // and also refreshes locks, updates icons based on lock changes and - // load in children at the current node level. - public void Collapse(TreeNode nd, TreeViewAction act, bool dorefresh,bool closeconn) - { - Expanded=false; - Children.Clear(); - if (Connection != null && closeconn) Connection.Exit(); - - // if this is the actual node that was collapsed, then refresh at this level, - // i.e. refresh the lock, update the icon (in case of lock status change) - // and load children (may make into temp child if necessary) - if (act == TreeViewAction.Collapse||dorefresh) { - RefreshTreeNode(nd); - // need to exit again because refresh tree node opens the connection - // to determine locking status. - if (Connection != null && closeconn) Connection.Exit(); - } - } - - // Expand the TreeNode. This makes a new/reenters connection at the level, sets up - // icons for the level, enters it by loading its children (if it successfully - // entered it, i.e. it's not locked. - public virtual bool Expand(TreeNode mytreend) - { - if (Connection==null) - Connection = new VEConnection(Lock, usrRunTime); - // Enter the connection, i.e. refresh the lock & then see if can get into the - // data level. - bool canenter = Connection.Enter(false); - // update icons (in case of lock status change) - if (usrRunTime.InMultiUserMode) - { - // if no lock & emtpy, show empty. Otherwise, show lock icon - if (IsEmpty && Lock.LockStatus==VENetwork.Status.NoLock) - icon = iconStates[(int)VEO_IconStates.Empty]; - else - icon = iconStates[(int)Lock.LockStatus]; - mytreend.ImageIndex = icon; - mytreend.SelectedImageIndex = icon; - } - // if user cannot enter, it must be locked. Return a false. - if (canenter==false) - { - Collapse(mytreend,TreeViewAction.Unknown,true,false); - mytreend.Nodes.Clear(); - mytreend.TreeView.Refresh(); - return false; - } - if (Expanded) return true; - Expanded = true; - - // load the children. First check for either no children (in case this was locked on - // load, and then subsequently unlocked before the selection or check for a 'TEMP' - // node. If it exists, remove it. Then if this has a lock type of none, load it's - // children. Otherwise, load a temp child under each child. The temp child is - // used because when the user actually expands this node, a recheck of the lock - // status is needed and a change may have occurred (another user may have added, - // deleted or modified children by the time this is entered). - TreeNode frstchld = mytreend.FirstNode; - if (frstchld==null || frstchld.Text == "TEMP") - { - mytreend.Nodes.Clear(); - Read(false); - AddToTree(mytreend); - } - VEO_Base veo; - for (int i=0; i0) - { - veo.Children.Clear(); - TreeNode dmy = new TreeNode("TEMP"); - mytreend.Nodes[i].Nodes.Add(dmy); - } - } - } - return true; - } - - public virtual void LockedDlg() - { - } - - // virtual read - public virtual bool Read(bool dummy) - { - return true; - } - - // virtual write - public virtual bool Write() - { - return false; - } - - public virtual bool Open() - { - return false; - } - - public virtual bool Close() - { - return false; - } - - // virtual cancel write (save) - public virtual void CancelWrite() - { - } - - public virtual bool Delete() - { - return true; - } - - // make a new plain vanilla object (this is really a virtual. - public virtual Object MakeNewChild() - { - return (new Object()); - } - - public virtual Object Copy() - { - return this; //default to returning self - } - - public virtual Object AddNewChild() - { - VEO_Base newobj = (VEO_Base) this.MakeNewChild(); - if (newobj==null) return null; // something happened, just return - newobj.parentObj = (VEO_Base) this; - newobj.isNew=true; - bool prpchg = newobj.PropertiesDlg(this); - if (prpchg == true) - { - // Copy is used so that a VEO-object is created that has editable - // (versus new) properties. When the object is 'new' many fields - // are editable that should not be editable when not new (this is - // mainly an issue with the property grid, since the ReadOnly - // setting can only be done at compile/build time - it CANNOT be - // done at run-time. So when a new object is created, if it's - // successful, it's copied to an object which is edit (not new) - // for the treeview & any further operations. - VEO_Base cpyobj = (VEO_Base) newobj.Copy(); - Children.Add(cpyobj); // add the new one to the children - if(newobj!=cpyobj)Children.Remove(newobj); - cpyobj.Read(false); // read any child data - return cpyobj; - } - else - return null; - } - - public virtual string GetTreeNodeText() - { - return _Title; - } - - public virtual bool SaveChild(Object obj) - { - return false; - } - - // virtual SaveNew - public virtual bool SaveNew(string pth) - { - return false; - } - - public virtual void DoListView(ListView veoListView) - { - return; - } - - public virtual void DoWizzard() - { - return; - } - - // Comunication between this object & vfw - struct COPYDATASTRUCT - { - public IntPtr dwData; - public int cbData; - public IntPtr lpData; - } - const int WM_COPYDATA = 0x004A; - - // sending side - [DllImport("user32.dll")] - static extern bool SendMessage( - IntPtr hWnd, - UInt32 Msg, - UInt32 wParam, - ref COPYDATASTRUCT lParam); - - public struct RqstAttachMsg - { - public Int16 level; - public Int16 flag; - public Int32 longval; - } - - public struct AnswerMsg - { - public Int16 done; - public Int16 intAnswer; - public Int32 longAnswer; - } - - public struct PRecordMsg - { - public Int16 done; - public Int16 cnt; - [MarshalAs(UnmanagedType.ByValTStr,SizeConst=140)] public String buff; - } - - [StructLayout(LayoutKind.Sequential)] - public struct PosUpdateStr - { - [MarshalAs(UnmanagedType.ByValTStr,SizeConst=16)] public String sender; - [MarshalAs(UnmanagedType.ByValTStr,SizeConst=80)] public String directory; - public Int32 docnumindx; - public Int32 recID; - } - - private VEO_Base GetObjectAtLevel(int level) - { - try - { - VEO_Base veo = this; - while (veo != null) - { - if (level == 2 && veo.VEObjectType == (int)VEObjectTypesDefs.ProcedureSet) - return veo; - else if (level == 1 && veo.VEObjectType == (int)VEObjectTypesDefs.Plant) - return veo; - else if (level == 0 && veo.VEObjectType == (int)VEObjectTypesDefs.System) - return veo; - veo = (VEO_Base)veo.parentObj; - } - } - catch (Exception e) - { - MessageBox.Show(e.Message.ToString()); - } - return null; - } - - private bool ReturnProcRecord(VEO_Base veo,Int16 size, IntPtr vfwhndl) - { - bool success=true; - COPYDATASTRUCT cds = new COPYDATASTRUCT(); - PRecordMsg prmsg; - prmsg.done = 1; - - byte [] bt = new byte[size+4]; - prmsg.cnt = veo.Connection.GetProcRecBuff(size, ref bt); - if (prmsg.cnt != size) - { - MessageBox.Show("Could not read multi-user connection information"); - return false; - } - prmsg.buff = Encoding.ASCII.GetString(bt,0,size); - IntPtr p = Marshal.AllocHGlobal(size+4); - Marshal.StructureToPtr(prmsg,p,true); - - cds.dwData = (IntPtr)VEMessageNS.MessageOps.GETPROCESSREC; - // the following would be 'size+4', however marshalling requires space to be - // a multiple of 8 - cds.cbData = 160; - cds.lpData = p; - try - { - SendMessage(vfwhndl,WM_COPYDATA,(UInt32)8, ref cds); - } - catch (Exception e) - { - MessageBox.Show(e.Message.ToString()); - success=false; - } - Marshal.FreeHGlobal(p); - return success; - } - - private bool Reply(Int16 done, Int16 intAnswer, Int32 longAnswer, IntPtr vfwhndl) - { - bool success=true; - COPYDATASTRUCT cds = new COPYDATASTRUCT(); - AnswerMsg ans; - ans.done = done; - ans.intAnswer = intAnswer; - ans.longAnswer = longAnswer; - - IntPtr p=Marshal.AllocHGlobal(8); - Marshal.StructureToPtr(ans,p,true); - - cds.dwData = (IntPtr)VEMessageNS.MessageOps.GETANSWER; - cds.cbData = 8; - cds.lpData = p; - try - { - SendMessage(vfwhndl,WM_COPYDATA,(UInt32)8, ref cds); - } - catch (Exception e) - { - MessageBox.Show(e.Message.ToString()); - success=false; - } - Marshal.FreeHGlobal(p); - return success; - } - - public virtual void ProcessMessage(Message m, IntPtr vfwhndl) - { - VEO_Base veo = null; - bool success=false; - - if (m.Msg==(int)VEMessageNS.MessageOps.POSQUERY) - { - // POSQUERY is only called to get initial procedure - make the main - // form invisible when this request is made. Wait until now so that - // the main form is visible until vfw window is just about to be - // made visible. - IntPtr handle = - System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle; - Form mainForm = (Form)Form.FromHandle(handle); - mainForm.Visible = false; - - COPYDATASTRUCT cds = new COPYDATASTRUCT(); - PosUpdateStr pu; - pu.sender = "NEWBROWSER"; - VEO_Proc prc = null; - if (!(this is VEO_Proc)) - { - // get to a proc, this is either a set or 'procedures' node - // from an approve selected. - VEO_ProcSet ps = null; - if (this is VEO_ProcSet) - ps = (VEO_ProcSet) this; - else if (this is VEO_DummySet) - ps = (VEO_ProcSet) this.parentObj; - else - { - MessageBox.Show("Error finding procedure for edit","VE-PROMS"); - return; - } - prc=ps.AppSelForEdit; - } - else - prc = (VEO_Proc) this; - VEO_DummySet ds = (VEO_DummySet) prc.parentObj; - pu.directory = ds._Location; - pu.docnumindx = ds.Children.IndexOf(prc); - pu.recID = System.Convert.ToInt32(prc.recid,10); - - IntPtr p=Marshal.AllocHGlobal(130); - Marshal.StructureToPtr(pu,p,true); - - cds.dwData = (IntPtr)VEMessageNS.MessageOps.POSUPDATE; - cds.cbData = 130; - cds.lpData = p; - try - { - SendMessage(vfwhndl,WM_COPYDATA,(UInt32)8, ref cds); - } - catch (Exception e) - { - MessageBox.Show(e.Message.ToString()); - } - Marshal.FreeHGlobal(p); - } - else if (m.Msg==WM_COPYDATA) - { - bool reply = true; - Int16 int1=0, int2=0; - int int3=0; - int lvl = 0; - COPYDATASTRUCT cds = (COPYDATASTRUCT) m.GetLParam(typeof(COPYDATASTRUCT)); - int tmpmsg = (int)cds.dwData; - VEMessageNS.MessageOps msg = (VEMessageNS.MessageOps) tmpmsg; - RqstAttachMsg ramsg = (RqstAttachMsg)Marshal.PtrToStructure(cds.lpData,typeof(RqstAttachMsg)); - // get level veobject associated with this request, i.e. system, plant, or procset - // and then connect at level - lvl = ramsg.level; - try - { - veo = GetObjectAtLevel(lvl); - switch (msg) - { - case VEMessageNS.MessageOps.RQSTATTACH: - success = veo.Connection.Enter(false); - int2 = (short)(success?1:0); - break; - case VEMessageNS.MessageOps.RQSTFILEOFFSET: - if (ramsg.flag==0) - int3 = (int)veo.Connection.FileOffset; - //else - // MessageBox.Show("Set file offset" + ramsg.longval.ToString()); - break; - case VEMessageNS.MessageOps.RQSTFILEMODE: - int2 = (short) veo.Connection.GetVfwMode(); - break; - case VEMessageNS.MessageOps.RQSTFILEOWNER: - int2 = 1; - break; - case VEMessageNS.MessageOps.RQSTFILESEEK: - int3 = (int)veo.Connection.Seek(ramsg.longval, ramsg.flag); - break; - case VEMessageNS.MessageOps.RQSTFILECLOSE: //used in lock/unlock - veo.Connection.Close(); - break; - case VEMessageNS.MessageOps.RQSTFILEOPEN: //used in lock/unlock - int2 = (short) veo.Connection.Open(ramsg.flag); - break; - // RQSTFILEREAD - not used in vfw <-> browser communication - case VEMessageNS.MessageOps.RQSTFILEREAD: - MessageBox.Show("RqstFileRead"); - break; - case VEMessageNS.MessageOps.RQSTFILEWRITE: //used in lock/unlock - MessageBox.Show("RqstFileWrite"); - break; - case VEMessageNS.MessageOps.RQSTPROCESSRECORD: - reply=false; - success=ReturnProcRecord(veo,ramsg.flag,vfwhndl); - break; - case VEMessageNS.MessageOps.SETLOCKBYUSER: //do set lock yet. - if (ramsg.flag >= 0) - { - if (ramsg.flag==0) - veo.Lock.LockStatus=VENetwork.Status.NoLock; - else - veo.Lock.LockStatus=VENetwork.Status.Locked; - } - int2 = (Int16)((veo.Lock.LockStatus==VENetwork.Status.Locked)?1:0); - break; - } - if (reply) success = Reply(int1,int2,int3,vfwhndl); - } - catch (Exception e) - { - MessageBox.Show(e.Message); - } - } - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/VEObject.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/VEObject.csproj deleted file mode 100644 index 76ad01e3..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/VEObject.csproj +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/VEObject.sln b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/VEObject.sln deleted file mode 100644 index f4348455..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VEObject/VEObject.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VEObject", "VEObject.csproj", "{9EB41ACC-03B1-4349-86F6-F9165AD77B57}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {9EB41ACC-03B1-4349-86F6-F9165AD77B57}.Debug.ActiveCfg = Debug|.NET - {9EB41ACC-03B1-4349-86F6-F9165AD77B57}.Debug.Build.0 = Debug|.NET - {9EB41ACC-03B1-4349-86F6-F9165AD77B57}.Release.ActiveCfg = Release|.NET - {9EB41ACC-03B1-4349-86F6-F9165AD77B57}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/AssemblyInfo.cs deleted file mode 100644 index c713863a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/AssemblyInfo.cs.bak deleted file mode 100644 index 9f89a328..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/App.ico b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/App.ico deleted file mode 100644 index 3a5525fd..00000000 Binary files a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/App.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/AssemblyInfo.cs deleted file mode 100644 index c713863a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/AssemblyInfo.cs.bak deleted file mode 100644 index 4e8fc68e..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/AssemblyInfo.cs.bak +++ /dev/null @@ -1,56 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/Form1.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/Form1.cs deleted file mode 100644 index b3876a6c..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/Form1.cs +++ /dev/null @@ -1,227 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: Form1.cs $ $Revision: 1 $ - * $Author: Kathy $ $Date: 12/06/05 12:06p $ - * - * $History: Form1.cs $ - * - * ***************** Version 1 ***************** - * User: Kathy Date: 12/06/05 Time: 12:06p - * Created in $/LibSource/VG/Test - * - * ***************** Version 1 ***************** - * User: Kathy Date: 12/06/05 Time: 12:01p - * Created in $/LibSource/VG.root/VG/Test - *********************************************************************************************/ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.Xml; -using System.IO; -using VG; -using C1.C1Pdf; - -namespace TestVG -{ - /// - /// Summary description for Form1. - /// - public class Form1 : System.Windows.Forms.Form - { - private System.Windows.Forms.Button button1; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private System.Windows.Forms.ListBox listBox1; - private System.Windows.Forms.Button button2; - private int ConvertToTwips = 1440; - public Form1() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // - // TODO: Add any constructor code after InitializeComponent call - // - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.button1 = new System.Windows.Forms.Button(); - this.listBox1 = new System.Windows.Forms.ListBox(); - this.button2 = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // button1 - // - this.button1.Location = new System.Drawing.Point(24, 8); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(72, 32); - this.button1.TabIndex = 0; - this.button1.Text = "SVG To PDF"; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // listBox1 - // - this.listBox1.Location = new System.Drawing.Point(24, 72); - this.listBox1.Name = "listBox1"; - this.listBox1.Size = new System.Drawing.Size(584, 381); - this.listBox1.TabIndex = 1; - // - // button2 - // - this.button2.Location = new System.Drawing.Point(544, 8); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(56, 32); - this.button2.TabIndex = 2; - this.button2.Text = "Exit"; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // Form1 - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(752, 494); - this.Controls.Add(this.button2); - this.Controls.Add(this.listBox1); - this.Controls.Add(this.button1); - this.Name = "Form1"; - this.Text = "Form1"; - this.ResumeLayout(false); - - } - #endregion - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.Run(new Form1()); - } - - private void button1_Click(object sender, System.EventArgs e) - { - listBox1.Items.Clear(); - DirectoryInfo di = new DirectoryInfo("E:\\proms.net\\genmac.xml"); - FileInfo[] fis = di.GetFiles("*.svg"); - foreach (FileInfo fi in fis) - { - this.listBox1.Items.Add(fi.Name); - //TestSvgToPdf("E:\\proms.net\\genmac.xml",fi.Name); - VG.Page pg = new Page(true, 0.5f * ConvertToTwips, 0.5f * ConvertToTwips); - XmlDocument xmldoc = new XmlDocument(); - XmlTextReader reader = new XmlTextReader("E:\\proms.net\\genmac.xml\\"+fi.Name); - xmldoc.Load(reader); - reader.Close(); - try - { - GeneratePDFForSVGFile(xmldoc, fi.Name, pg); - } - catch (Exception ex) - { - MessageBox.Show("Error processing: " + fi.Name, ex.Message); - } - } - MessageBox.Show("DONE generating PDF files from SVG"); - } - - private void GeneratePDFForSVGFile(XmlDocument xmldoc, string fname, VG.Page pg) - { - C1.C1Pdf.C1PdfDocument c1pdf = new C1.C1Pdf.C1PdfDocument(); - string rootname = fname.Substring(0,fname.Length-4); - // create a pdf file with a page for each macro (i.e. macro element in xml tree), - // put it into the pdf file. - XmlNode topnode = xmldoc.LastChild; - for (int i=0;i - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - Private - - - Private - - - Private - - - False - - - Private - - - False - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - Form1 - - - True - - - 80 - - - True - - - Private - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/Test.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/Test.csproj deleted file mode 100644 index e47a1e38..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/Test.csproj +++ /dev/null @@ -1,133 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/Test.csproj.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/Test.csproj.bak deleted file mode 100644 index 009eca3c..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/Test.csproj.bak +++ /dev/null @@ -1,137 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/licenses.licx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/licenses.licx deleted file mode 100644 index 984ec9ad..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/Test/licenses.licx +++ /dev/null @@ -1 +0,0 @@ -C1.C1Pdf.C1PdfDocument, C1.C1Pdf, Version=1.1.20052.40, Culture=neutral, PublicKeyToken=bc8d9c59cf1b601f diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/VG.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/VG.cs deleted file mode 100644 index 38139d75..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/VG.cs +++ /dev/null @@ -1,365 +0,0 @@ -/********************************************************************************************* - * Copyright 2005 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VG.cs $ $Revision: 2 $ - * $Author: Jsj $ $Date: 2/28/06 1:33p $ - * - * $History: VG.cs $ - * - * ***************** Version 2 ***************** - * User: Jsj Date: 2/28/06 Time: 1:33p - * Updated in $/LibSource/VG - * updated for X/Y Plots - * - * ***************** Version 1 ***************** - * User: Kathy Date: 12/06/05 Time: 12:06p - * Created in $/LibSource/VG - * - * ***************** Version 1 ***************** - * User: Kathy Date: 12/06/05 Time: 12:01p - * Created in $/LibSource/VG.root/VG - *********************************************************************************************/ -using System; -using System.Xml; -using System.Drawing; -using System.Text; -using C1.C1Pdf; - -namespace VG -{ - /// - /// VG is the class representing vector graphics. It provides objects for: - /// Line, Rectangle, Text, Ellipse, Bitmaps, etc. - /// VG provides constructors for these objects from coordinate system locations - /// (such as starting x,y ending x,y, etc), xml and svg. - /// VG provides output to PDF. (More can be added). - /// VG data is stored in TWIPS (1440 per inch) - /// - - // Temporary page class to store portrait/landscape, Left Margin, Vertical offset, etc - public class Page - { - public bool portrait=true; - public float LeftMargin=0f; - public float VertOffset=0f; - public Page(bool iport, float lm, float voff) - { - portrait=iport; - LeftMargin=lm; - VertOffset=voff; - } - } - - public class VG - { - // Values of vector graphics items are stored as twips (1440 twips in an inch) - public int cx; - public int cy; - public int dx; - public int dy; - public float lnwid; - public Page pg; - public bool MoveAbsolute; // TODO: Not sure what to do with this. - - public VG() - { - cx = 0; - cy = 0; - dx = 0; - dy = 0; - MoveAbsolute = false; - pg=null; - } - - public VG(int sx, int sy, int ex, int ey, bool ima, Page ipg) - { - cx = sx; - cy = sy; - dx = ex; - dy = ey; - MoveAbsolute = ima; - pg=ipg; - } - - public float ToPoints(float twip) - { - float r = ((float)twip) * 0.05f; - return r; - } - - public void UpdatePageInfo(Page pa) - { - pg.LeftMargin=pa.LeftMargin; - pg.portrait=pg.portrait; - pg.VertOffset=pg.VertOffset; - } - - public string AddRTFBUI(string origStr, string bold, string underline, string italics) - { - if (bold==""&&underline==""&&italics=="")return origStr; - StringBuilder sb = new StringBuilder(); - if (bold == "bold")sb.Append("{\\b"); - if (underline == "underline")sb.Append("{\\u"); - if (italics == "italics") sb.Append("{\\i"); - sb.Append(" "); - sb.Append(origStr); - if (bold == "bold")sb.Append("}"); - if (underline == "underline")sb.Append("}"); - if (italics == "italics") sb.Append("}"); - return sb.ToString(); - } - } - - public class VG_Line : VG - { - // Line is defined as starting & ending points. - public VG_Line(int sx, int sy, int ex, int ey, int w, Page ipg) - { - cx = sx; - cy = sy; - dx = ex; - dy = ey; - lnwid = w; - pg=ipg; - } - - public VG_Line(XmlElement svg, Page ipg) - { - cx = System.Convert.ToInt32(svg.GetAttribute("x1")); - cy = System.Convert.ToInt32(svg.GetAttribute("y1")); - dx = System.Convert.ToInt32(svg.GetAttribute("x2")); - dy = System.Convert.ToInt32(svg.GetAttribute("y2")); - lnwid = System.Convert.ToInt32(svg.GetAttribute("stroke-width")); - pg = ipg; - } - - public void ToPdf(C1PdfDocument c1pdf) - { - float startx = pg.portrait ? (cx + pg.LeftMargin): (pg.VertOffset + cy); - float starty = pg.portrait ? (cy + pg.VertOffset): (pg.LeftMargin - cx); - float endx = pg.portrait ? (dx + pg.LeftMargin): (pg.VertOffset + dy); - float endy = pg.portrait ? (dy + pg.VertOffset): (pg.LeftMargin - dx); - Pen pn = new Pen(Brushes.Black,ToPoints(lnwid)); - c1pdf.DrawLine(pn, ToPoints(startx), ToPoints(starty), ToPoints(endx), ToPoints(endy)); - } - - } - - public class VG_Rect : VG - { - // Rectangle is defined as starting point & length/width - public VG_Rect(int sx, int sy, int ex, int ey, int w, Page ipg) - { - cx = sx; - cy = sy; - dx = ex; - dy = ey; - lnwid = w; - pg = ipg; - } - - public VG_Rect(XmlElement svg, Page ipg) - { - cx = System.Convert.ToInt32(svg.GetAttribute("x")); - cy = System.Convert.ToInt32(svg.GetAttribute("y")); - dx = System.Convert.ToInt32(svg.GetAttribute("width")); - dy = System.Convert.ToInt32(svg.GetAttribute("height")); - lnwid = System.Convert.ToInt32(svg.GetAttribute("stroke-width")); - pg = ipg; - } - - public void ToPdf(C1PdfDocument c1pdf) - { - Pen pn = new Pen(Brushes.Black,ToPoints(lnwid)); - - float startx = pg.portrait ? (cx + pg.LeftMargin): (pg.VertOffset + cy) ; - float starty = pg.portrait ? (cy + pg.VertOffset): (pg.LeftMargin - cx); - float endx = pg.portrait ? dx: dy; - float endy = pg.portrait ? dy: dx; - RectangleF rc = new RectangleF(ToPoints(startx), ToPoints(starty), ToPoints(endx), ToPoints(endy)); - c1pdf.DrawRectangle(pn,rc); - } - } - - public class VG_Image : VG - { - private int Scale; - private string FileName; - - // Image is defined as starting point, scale factor (defaults to 1) & image file name - public VG_Image(int sx, int sy, int iscale, string fname) - { - cx = sx; - cy = sy; - Scale = 1; - FileName = fname; - } - - public VG_Image(XmlElement svg, Page ipg) - { - cx = System.Convert.ToInt32(svg.GetAttribute("x")); - cy = System.Convert.ToInt32(svg.GetAttribute("y")); - Scale=1; - if (svg.HasAttribute("scale")) Scale = System.Convert.ToInt32(svg.GetAttribute("scale")); - FileName = svg.GetAttribute("bname"); - pg = ipg; - } - - public void ToPdf(C1PdfDocument c1pdf) - { - Pen pn = new Pen(Brushes.Black,lnwid); - Bitmap bm = new Bitmap(FileName); - RectangleF rc = new RectangleF(); - rc.Height = ToPoints((bm.Height*Scale)*4.8f); - rc.Width = ToPoints((bm.Width*Scale)*4.8f); - rc.X = ToPoints(pg.LeftMargin+cx); - rc.Y = ToPoints(pg.VertOffset+cy); - c1pdf.DrawImage(bm, rc, ContentAlignment.MiddleCenter, ImageSizeModeEnum.Scale); - } - } - - public class VG_Ellipse : VG - { - // Ellipse (circle) is defined by a bounding rectangle specified by a coordinate pair, a width, and a height - public VG_Ellipse(int sx, int sy, int ex, int ey, int w, Page ipg) - { - cx = sx; - cy = sy; - dx = ex; - dy = ey; - lnwid = w; - pg = ipg; - } - - public VG_Ellipse(XmlElement svg, Page ipg) - { - cx = System.Convert.ToInt32(svg.GetAttribute("cx")); - cy = System.Convert.ToInt32(svg.GetAttribute("cy")); - dx = System.Convert.ToInt32(svg.GetAttribute("rx")); - dy = System.Convert.ToInt32(svg.GetAttribute("ry")); - lnwid = System.Convert.ToInt32(svg.GetAttribute("stroke-width")); - pg = ipg; - } - - public void ToPdf(C1PdfDocument c1pdf) - { - Pen pn = new Pen(Brushes.Black,ToPoints(lnwid)); - c1pdf.DrawEllipse(pn,ToPoints(pg.LeftMargin+cx), ToPoints(pg.VertOffset+cy), ToPoints(dx), ToPoints(dy)); - } - } - - public class VG_Text : VG - { - private string FontName; - private int FontSize; - private string Bold; - private string Underline; - private string Italics; - private string Text; - - // Text is defined by a starting location, attributes & the string - public VG_Text(int sx, int sy, int fs, string txt, string fn, string ibold, string iunder, string iitalics, Page ipg) - { - cx = sx; - cy = sy; - FontSize = fs; - FontName = fn; - Text = txt; - Bold = ibold; - Underline = iunder; - Italics = iitalics; - pg = ipg; - // TODO: The following were in the 16-bit code - we may need to use these, wait and see -// strokeWidth = stroke; -// strokeWidthBold = strokebold; -// ULOffset = UnderlineOffset; -// ULWidth = UnderlineWidth; - } - - public VG_Text(XmlElement svg, Page ipg) - { - cx = System.Convert.ToInt32(svg.GetAttribute("x")); - cy = System.Convert.ToInt32(svg.GetAttribute("y")); - FontSize = System.Convert.ToInt32(svg.GetAttribute("font-size")); - Bold = svg.GetAttribute("font-weight"); - Underline = svg.GetAttribute("text-decoration"); - Italics = svg.GetAttribute("font-style"); - FontName = svg.GetAttribute("font-family"); - Text = svg.InnerText; - pg = ipg; - } - - public void ToPdf(C1PdfDocument c1pdf) - { - Font myfont = new Font(FontName,FontSize); - RectangleF rc = new RectangleF(); - // the returned value from c1 pdf code is already in points, - // so need to convert the size. - rc.Size = c1pdf.MeasureStringRtf(Text,myfont,500); // TODO: 500 or pagewidth, or what - rc.X = ToPoints(pg.LeftMargin+cx); - rc.Y = ToPoints(pg.VertOffset+cy)-FontSize; - // add bold, underline & italics for entire object. - string rtfout = AddRTFBUI(Text,Bold,Underline,Italics); - c1pdf.DrawStringRtf(rtfout,myfont,Brushes.Black,rc); - } - } -public class VG_Arc : VG - { - public Single sweepAngle; - public Single startAngle; - public float stX,stY; - public float rWid,rHgt; -#if DEBUG - public static int iColor=0; - public Color [] myColors={Color.Red,Color.Orange,Color.Yellow,Color.Green,Color.Blue,Color.BlueViolet,Color.Violet}; -#endif - // Arc is defined by a bounding rectangle specified by a coordinate pair, a width, and a height - public VG_Arc(float sx, float sy, float width, float hight, float stAngle, float swpAngle, int w, Page ipg) - { - stX = sx; - stY = sy; - rWid = width; - rHgt = hight; - startAngle = stAngle; -// startAngle = 90; - sweepAngle = swpAngle; -// sweepAngle = -45; - lnwid = w; - pg = ipg; - } - -// public VG_Arc(XmlElement svg, Page ipg) -// { -// cx = System.Convert.ToInt32(svg.GetAttribute("cx")); -// cy = System.Convert.ToInt32(svg.GetAttribute("cy")); -// dx = System.Convert.ToInt32(svg.GetAttribute("rx")); -// dy = System.Convert.ToInt32(svg.GetAttribute("ry")); -// lnwid = System.Convert.ToInt32(svg.GetAttribute("stroke-width")); -// pg = ipg; -// } - - public void ToPdf(C1PdfDocument c1pdf) - { -// Pen pn = new Pen(Brushes.Black,ToPoints(lnwid)); -#if DEBUG - Pen pn = new Pen(myColors[iColor],ToPoints(lnwid)); - iColor=(iColor+1)%myColors.Length; -#else - Pen pn = new Pen(Color.Black,ToPoints(lnwid)); -#endif -// PointF startpt = new PointF(stX,stY); -// SizeF recsize = new SizeF(rWid,rHgt); -// RectangleF rc = new RectangleF(startpt,recsize); - float startx = pg.portrait ? (stX + pg.LeftMargin): (pg.VertOffset + stY); - float starty = pg.portrait ? (stY + pg.VertOffset): (pg.LeftMargin - stX); - RectangleF rc = new RectangleF(ToPoints(startx),ToPoints(starty),ToPoints(rWid),ToPoints(rHgt)); -// c1pdf.DrawRectangle(pn,rc); //debug - -// c1pdf.DrawArc(new Pen(Color.Black,ToPoints(lnwid)),new RectangleF(stX,stY,rWid,rHgt),startAngle,sweepAngle); - c1pdf.DrawArc(pn,rc,startAngle,sweepAngle); - // c1pdf.DrawArc(new Pen(Color.Black, 4),rc,startAngle,sweepAngle); - } - } -} - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/VG.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/VG.csproj deleted file mode 100644 index d8b04682..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/VG.csproj +++ /dev/null @@ -1,111 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/VG.sln b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/VG.sln deleted file mode 100644 index 7d514755..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VG/VG.sln +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VG", "VG.csproj", "{52D74078-3822-410E-889B-464BD21AAB9E}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test", "Test\Test.csproj", "{12299365-FD7A-458A-B1E0-574933F7A647}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {52D74078-3822-410E-889B-464BD21AAB9E}.Debug.ActiveCfg = Debug|.NET - {52D74078-3822-410E-889B-464BD21AAB9E}.Debug.Build.0 = Debug|.NET - {52D74078-3822-410E-889B-464BD21AAB9E}.Release.ActiveCfg = Release|.NET - {52D74078-3822-410E-889B-464BD21AAB9E}.Release.Build.0 = Release|.NET - {12299365-FD7A-458A-B1E0-574933F7A647}.Debug.ActiveCfg = Debug|.NET - {12299365-FD7A-458A-B1E0-574933F7A647}.Debug.Build.0 = Debug|.NET - {12299365-FD7A-458A-B1E0-574933F7A647}.Release.ActiveCfg = Release|.NET - {12299365-FD7A-458A-B1E0-574933F7A647}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/AssemblyInfo.cs.bak deleted file mode 100644 index a9833df8..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/AssemblyInfo.cs.bak +++ /dev/null @@ -1,57 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/VerRelCpy.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/VerRelCpy.cs deleted file mode 100644 index ca6bc028..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/VerRelCpy.cs +++ /dev/null @@ -1,249 +0,0 @@ -/********************************************************************************************* - * Copyright 2004 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: VerRelCpy.cs $ $Revision: 36 $ - * $Author: Jsj $ $Date: 1/02/08 1:38p $ - * - * $History: VerRelCpy.cs $ - * - * ***************** Version 36 ***************** - * User: Jsj Date: 1/02/08 Time: 1:38p - * Updated in $/LibSource/VerRelCpyrght - * upped copyright to 2008 - * - * ***************** Version 35 ***************** - * User: Jsj Date: 12/05/07 Time: 1:43p - * Updated in $/LibSource/VerRelCpyrght - * upped to release 21 - * - * ***************** Version 34 ***************** - * User: Jsj Date: 10/25/07 Time: 2:56p - * Updated in $/LibSource/VerRelCpyrght - * upped to 20 - * - * ***************** Version 33 ***************** - * User: Jsj Date: 9/26/07 Time: 2:55p - * Updated in $/LibSource/VerRelCpyrght - * Upped - * - * ***************** Version 32 ***************** - * User: Jsj Date: 7/13/07 Time: 1:29p - * Updated in $/LibSource/VerRelCpyrght - * upped release to 18 - * - * ***************** Version 31 ***************** - * User: Jsj Date: 6/29/07 Time: 11:13a - * Updated in $/LibSource/VerRelCpyrght - * upped releaes to 17 - * - * ***************** Version 30 ***************** - * User: Jsj Date: 6/20/07 Time: 8:46a - * Updated in $/LibSource/VerRelCpyrght - * upped release number to 16 - * - * ***************** Version 29 ***************** - * User: Jsj Date: 6/01/07 Time: 9:26a - * Updated in $/LibSource/VerRelCpyrght - * upped to release 15 - * - * ***************** Version 28 ***************** - * User: Jsj Date: 3/02/07 Time: 8:30a - * Updated in $/LibSource/VerRelCpyrght - * upped to 14 - * - * ***************** Version 27 ***************** - * User: Jsj Date: 1/02/07 Time: 1:54p - * Updated in $/LibSource/VerRelCpyrght - * upped copyright to 2007 - * - * ***************** Version 26 ***************** - * User: Jsj Date: 12/12/06 Time: 2:03p - * Updated in $/LibSource/VerRelCpyrght - * uppded to 13 - * - * ***************** Version 25 ***************** - * User: Jsj Date: 11/30/06 Time: 8:22a - * Updated in $/LibSource/VerRelCpyrght - * upped to 12 - * - * ***************** Version 24 ***************** - * User: Jsj Date: 11/09/06 Time: 11:33a - * Updated in $/LibSource/VerRelCpyrght - * upped release number - * - * ***************** Version 23 ***************** - * User: Jsj Date: 9/12/06 Time: 2:30p - * Updated in $/LibSource/VerRelCpyrght - * upped release number - * - * ***************** Version 22 ***************** - * User: Jsj Date: 7/24/06 Time: 12:04p - * Updated in $/LibSource/VerRelCpyrght - * upped to release 9 - * - * ***************** Version 21 ***************** - * User: Jsj Date: 7/06/06 Time: 10:18a - * Updated in $/LibSource/VerRelCpyrght - * upped - * - * ***************** Version 20 ***************** - * User: Jsj Date: 5/26/06 Time: 12:28p - * Updated in $/LibSource/VerRelCpyrght - * back to 7 - * - * ***************** Version 19 ***************** - * User: Jsj Date: 5/26/06 Time: 11:25a - * Updated in $/LibSource/VerRelCpyrght - * upped to release 8 - * - * ***************** Version 18 ***************** - * User: Jsj Date: 5/16/06 Time: 12:45p - * Updated in $/LibSource/VerRelCpyrght - * upped release to 7 - * - * ***************** Version 17 ***************** - * User: Kathy Date: 5/01/06 Time: 11:16a - * Updated in $/LibSource/VerRelCpyrght - * upped release number - * - * ***************** Version 16 ***************** - * User: Jsj Date: 1/03/06 Time: 9:10a - * Updated in $/LibSource/VerRelCpyrght - * upped copyright to year 2005 and upped release number - * - * ***************** Version 15 ***************** - * User: Jsj Date: 12/12/05 Time: 11:06a - * Updated in $/LibSource/VerRelCpyrght - * upped - * - * ***************** Version 14 ***************** - * User: Kathy Date: 10/03/05 Time: 10:59a - * Updated in $/LibSource/VerRelCpyrght - * upped release number to 3 - * - * ***************** Version 13 ***************** - * User: Kathy Date: 9/06/05 Time: 11:24a - * Updated in $/LibSource/VerRelCpyrght - * Up release number - * - * ***************** Version 12 ***************** - * User: Jsj Date: 7/27/05 Time: 2:09p - * Updated in $/LibSource/VerRelCpyrght - * release one - * - * ***************** Version 11 ***************** - * User: Kathy Date: 4/21/05 Time: 10:25a - * Updated in $/LibSource/VerRelCpyrght - * update rev - * - * ***************** Version 10 ***************** - * User: Jsj Date: 4/12/05 Time: 8:46a - * Updated in $/LibSource/VerRelCpyrght - * uppded - * - * ***************** Version 9 ***************** - * User: Jsj Date: 3/30/05 Time: 11:15a - * Updated in $/LibSource/VerRelCpyrght - * upped - * - * ***************** Version 8 ***************** - * User: Jsj Date: 3/16/05 Time: 2:46p - * Updated in $/LibSource/VerRelCpyrght - * upped release to 7 - * - * ***************** Version 7 ***************** - * User: Kathy Date: 2/23/05 Time: 1:42p - * Updated in $/LibSource/VerRelCpyrght - * Upped release number - * - * ***************** Version 6 ***************** - * User: Jsj Date: 1/19/05 Time: 10:29a - * Updated in $/LibSource/VerRelCpyrght - * upped - * - * ***************** Version 5 ***************** - * User: Jsj Date: 1/13/05 Time: 9:30a - * Updated in $/LibSource/VerRelCpyrght - * changed copyright to 2005 - * - * ***************** Version 4 ***************** - * User: Jsj Date: 10/12/04 Time: 9:28a - * Updated in $/LibSource/VerRelCpyrght - * upped - * - * ***************** Version 3 ***************** - * User: Jsj Date: 9/27/04 Time: 11:07a - * Updated in $/LibSource/VerRelCpyrght - * upped release number - * - * ***************** Version 2 ***************** - * User: Jsj Date: 9/13/04 Time: 11:06a - * Updated in $/LibSource/VerRelCpyrght - * upped release number - * - * ***************** Version 1 ***************** - * User: Kathy Date: 7/27/04 Time: 8:54a - * Created in $/LibSource/VerRelCpyrght - *********************************************************************************************/ -using System; - -namespace VerRelCpyrght -{ - /// - /// Summary description for Class1. - /// - public class VersionAndCopyright - { - private static string _VersionNumber = "10"; - private static string _ReleaseNumber = "21"; - private static string _CopyrightYear = "2008"; - private static string _CopyrightMsg; - private static string _VersionRelMsg; - - static VersionAndCopyright() - { - _CopyrightMsg = string.Format("Copyright \x00A9 1988 - {0}. All Rights Reserved.",_CopyrightYear); - _VersionRelMsg = string.Format("Version {0} Release {1}",_VersionNumber,_ReleaseNumber); - } - - public static string VersionNumber - { - get - { - return _VersionNumber; - } - } - - public static string ReleaseNumber - { - get - { - return _ReleaseNumber; - } - } - - public static string CopyrightYear - { - get - { - return _CopyrightYear; - } - } - - public static string CopyrightMsg - { - get - { - return _CopyrightMsg; - } - } - public static string VersionRelMsg - { - get - { - return _VersionRelMsg; - } - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/VerRelCpyrght.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/VerRelCpyrght.csproj deleted file mode 100644 index 897a0e57..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/VerRelCpyrght.csproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/VerRelCpyrght.sln b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/VerRelCpyrght.sln deleted file mode 100644 index 19693e44..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VerRelCpyrght/VerRelCpyrght.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VerRelCpyrght", "VerRelCpyrght.csproj", "{B6489955-8814-4133-815D-C25F7782EC2C}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {B6489955-8814-4133-815D-C25F7782EC2C}.Debug.ActiveCfg = Debug|.NET - {B6489955-8814-4133-815D-C25F7782EC2C}.Debug.Build.0 = Debug|.NET - {B6489955-8814-4133-815D-C25F7782EC2C}.Release.ActiveCfg = Release|.NET - {B6489955-8814-4133-815D-C25F7782EC2C}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/AssemblyInfo.cs deleted file mode 100644 index c713863a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/AssemblyInfo.cs.bak deleted file mode 100644 index 3d857390..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("E:\\proms.net\\Public Key\\vlnkey.snk")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/VlnXml.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/VlnXml.cs deleted file mode 100644 index 68705bcc..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/VlnXml.cs +++ /dev/null @@ -1,211 +0,0 @@ -using System; -using System.Xml; -using System.Text; - -namespace VlnXml -{ - /// - /// Summary description for Class1. - /// - - public class VlnXmlDocument:XmlDocument - { - public VlnXmlDocument():base() - { - } - - public override XmlElement CreateElement( string prefix, string localname, string nsURI) - { - VlnXmlElement elem = new VlnXmlElement(prefix, localname, nsURI, this); - return elem; - } - - } - - public class VlnXmlElement:XmlElement - { - - public VlnXmlElement( string prefix, string localname, string nsURI, XmlDocument doc ):base( prefix,localname,nsURI, doc ) - { - } - - public string GetMenuString(string grpmenuitm, bool isgrp) - { - VlnXmlElement elm = this; - StringBuilder strbld = new StringBuilder(); - - bool usespecial; // flags need for (Table) or (Graph) - string strspecial=""; - - // use grpmenuitm, parse for field(s) and generate a string to return - int left = grpmenuitm.IndexOf("<"); - int right; - int stindx = 0; - if (left > 0) strbld.Append(grpmenuitm.Substring(0,left)); - - while (left != -1) - { - // get right bracket and then check for valid field & if commas with - // this, check for integer values. - right = grpmenuitm.IndexOf(">",stindx); - string substring = grpmenuitm.Substring(left+1,right-left-1); - // do comma parts now. - string inusename; - substring = substring.Replace(" ","_"); - int comma1 = substring.IndexOf(","); - int frmt1=0, frmt2=0; - if (comma1 != -1) - { - // get any numbers for formatting & check for ints. - int comma2 = substring.IndexOf(",",comma1+1); - if (comma2 != -1) // two ints. - { - if (comma2-comma1 > 1) // first format field - not empty - { - string int1 = substring.Substring(comma1+1,comma2-comma1-1); - frmt1 = System.Convert.ToInt32(int1); - } - if (comma20) - strbld.Append(text.PadRight(frmt2,' ')); - else - strbld.Append(text); - } - else if (frmt1 != frmt2) - { - char[] tmp = text.ToCharArray(); - int cnt = 0; - while (tmp[cnt] <= '9' && tmp[cnt] >= '0') cnt++; - int padcnt = (cnt>frmt1)?0:frmt1-cnt; - StringBuilder strtmp = new StringBuilder(); - cnt = 0; - while(cnt right+1) // append any plain text. - strbld.Append(grpmenuitm.Substring(right+1,left-right-1)); - } - return strbld.ToString(); - } - - public string GetMenuValueTemplate(string menuitm) - { - VlnXmlElement parent; - string grpmenuitm; - VlnXmlElement tmp; - if (menuitm == "GroupMenuItem") - { - // if at top of tree, use this top GroupMenuItem. but if not, - // the parent node defines the GroupMenuItem for the subgroups. - if (this.ParentNode.Name == "RO_Root") - { - tmp = (VlnXmlElement) this.ParentNode; - grpmenuitm=tmp.GetAttribute(menuitm); - return(grpmenuitm); - } - else - parent = (VlnXmlElement) this.ParentNode; - while (parent != null) - { - if (parent.HasAttribute(menuitm) == true) break; - parent = (VlnXmlElement) parent.ParentNode; - } - if (parent == null) return null; - grpmenuitm = parent.GetAttribute(menuitm); - return grpmenuitm; - } - - // Now just do 'MenuItem', which is for ROs - parent = (VlnXmlElement) this; - grpmenuitm = parent.GetAttribute(menuitm); - while (parent != null && grpmenuitm == "") - { - // walk up tree to get parent. - grpmenuitm = parent.GetAttribute(menuitm); - parent = (VlnXmlElement) parent.ParentNode; - } - return grpmenuitm; - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/VlnXml.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/VlnXml.csproj deleted file mode 100644 index 2a347558..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/VlnXml/VlnXml.csproj +++ /dev/null @@ -1,100 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/AssemblyInfo.cpp b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/AssemblyInfo.cpp deleted file mode 100644 index c185863d..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/AssemblyInfo.cpp +++ /dev/null @@ -1,58 +0,0 @@ -#include "stdafx.h" - -using namespace System::Reflection; -using namespace System::Runtime::CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly:AssemblyTitleAttribute("")]; -[assembly:AssemblyDescriptionAttribute("")]; -[assembly:AssemblyConfigurationAttribute("")]; -[assembly:AssemblyCompanyAttribute("")]; -[assembly:AssemblyProductAttribute("")]; -[assembly:AssemblyCopyrightAttribute("")]; -[assembly:AssemblyTrademarkAttribute("")]; -[assembly:AssemblyCultureAttribute("")]; - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the value or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly:AssemblyVersionAttribute("1.1.*")]; - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project directory. -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly:AssemblyDelaySignAttribute(false)]; -[assembly:AssemblyKeyFileAttribute("E:\\proms.net\\Public Key\\vlnkey.snk")]; -[assembly:AssemblyKeyNameAttribute("")]; - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/ReadMe.txt b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/ReadMe.txt deleted file mode 100644 index 3f31f750..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/ReadMe.txt +++ /dev/null @@ -1,31 +0,0 @@ -======================================================================== - DYNAMIC LINK LIBRARY : WinExeClass Project Overview -======================================================================== - -AppWizard has created this WinExeClass DLL for you. - -This file contains a summary of what you will find in each of the files that -make up your WinExeClass application. - -WinExeClass.vcproj - This is the main project file for VC++ projects generated using an Application Wizard. - It contains information about the version of Visual C++ that generated the file, and - information about the platforms, configurations, and project features selected with the - Application Wizard. - -WinExeClass.cpp - This is the main DLL source file. - -WinExeClass.h - This file contains a class declaration. - -AssemblyInfo.cpp - Contains custom attributes for modifying assembly metadata. - -///////////////////////////////////////////////////////////////////////////// -Other notes: - -AppWizard uses "TODO:" to indicate parts of the source code you -should add to or customize. - -///////////////////////////////////////////////////////////////////////////// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/Stdafx.cpp b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/Stdafx.cpp deleted file mode 100644 index e63184df..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/Stdafx.cpp +++ /dev/null @@ -1,5 +0,0 @@ -// stdafx.cpp : source file that includes just the standard includes -// WinExeClass.pch will be the pre-compiled header -// stdafx.obj will contain the pre-compiled type information - -#include "stdafx.h" diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/Stdafx.h b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/Stdafx.h deleted file mode 100644 index 459e5fc4..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/Stdafx.h +++ /dev/null @@ -1,8 +0,0 @@ -// stdafx.h : include file for standard system include files, -// or project specific include files that are used frequently, -// but are changed infrequently - -#pragma once - -#using - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.cpp b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.cpp deleted file mode 100644 index 4c81cffd..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.cpp +++ /dev/null @@ -1,142 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: WinExeClass.cpp $ $Revision: 3 $ - * $Author: Jsj $ $Date: 12/16/03 11:59a $ - * - * $History: WinExeClass.cpp $ - * - * ***************** Version 3 ***************** - * User: Jsj Date: 12/16/03 Time: 11:59a - * Updated in $/LibSource/WinExeClass - * modified to all use in .net 1.0 and .net 1.1 - * - * ***************** Version 2 ***************** - * User: Jsj Date: 1/06/03 Time: 9:52a - * Updated in $/LibSource/WinExeClass - * fixed problem of running a C# program - was returning to main process - * before completing spawned process - * - * ***************** Version 1 ***************** - * User: Jsj Date: 8/23/02 Time: 2:57p - * Created in $/LibSource/WinExeClass - *********************************************************************************************/ - -// This is the main DLL file. - -#include "stdafx.h" - -#include "WinExeClass.h" - -using namespace WinExeClass; - - // Spawn off another process and run the passed in program. - // Note that the documentation for WinExec() says that it's provided - // for 16-bit windows compatibility and that applications should use - // the CreateProcess function. So this class gives you access to - // either the WinExe() or the CreateProcess() functions, just in case - // one works better than the other for your current programming needs. - -bool CLWinExec::RunWinExe(char *prgName) -{ - bool RtnVal = false; - RtnVal = DoWinExe(prgName); - return RtnVal; -} - -bool CLWinExec::RunCreateProcess(char *prgName) -{ - bool RtnVal = false; - RtnVal = DoCreateProcess(prgName); - return RtnVal; -} - -bool CLWinExec::RunWinExe(String *prgName) -{ - USES_CONVERSION; - bool RtnVal = false; -// UINT hInst; - - // Grab the program name from the String class and place - // in a NUll terminated char array. - // Note that String uses unicode chars so not every character - // can be convert to the char array. But this works for - // what we currently need. - int len; - char *tmpstr; - len = (prgName->get_Length)(); - tmpstr = new char(len + 1); - ZeroMemory(tmpstr,len+1); - for (int i=0; i < len; i++) - tmpstr[i] = (prgName->get_Chars)(i); - - RtnVal = DoWinExe(tmpstr); - - return RtnVal; -} - - -bool CLWinExec::RunCreateProcess(String *prgName) -{ - USES_CONVERSION; - bool RtnVal = false; -// UINT hInst; - - // Grab the program name from the String class and place - // in a NUll terminated char array. - // Note that String uses unicode chars so not every character - // can be convert to the char array. But this works for - // what we currently need. - int len; - char tmpstr[256]; - len = (prgName->get_Length)(); -// tmpstr = new char[len + 1]; - ZeroMemory(tmpstr,len+1); - for (int i=0; i < len; i++) - tmpstr[i] = (prgName->get_Chars)(i); - - RtnVal = DoCreateProcess(tmpstr); - - return RtnVal; -} - - -bool CLWinExec::DoWinExe(char *prgName) -{ - bool RtnVal = false; - UINT hInst; - - hInst = WinExec(prgName,SW_NORMAL); - if (hInst > 31){ - RtnVal = true; - // Wait until child process exits. - WaitForSingleObject((HANDLE)hInst,INFINITE); - } - return RtnVal; -} - -bool CLWinExec::DoCreateProcess(char *prgName) -{ - bool RtnVal = false; - STARTUPINFO procIn; - PROCESS_INFORMATION procOut; - - ZeroMemory(&procIn,sizeof(procIn)); - ZeroMemory(&procOut,sizeof(procOut)); - - procIn.dwFlags = STARTF_FORCEOFFFEEDBACK; - procIn.cb = sizeof(STARTUPINFO); - -// if (CreateProcess(prgName,NULL,NULL,NULL,FALSE,CREATE_SEPARATE_WOW_VDM,NULL,NULL,&procIn,&procOut)) - if (CreateProcess(NULL,prgName,NULL,NULL,FALSE,0,NULL,NULL,&procIn,&procOut)) - { - RtnVal = true; // process completed normally - // Wait until child process exits. - WaitForSingleObject(procOut.hProcess,INFINITE); - // Close process and thread handles. - CloseHandle(procOut.hProcess); - CloseHandle(procOut.hThread); - } - return RtnVal; -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.h b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.h deleted file mode 100644 index 088588a6..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.h +++ /dev/null @@ -1,44 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: WinExeClass.h $ $Revision: 2 $ - * $Author: Jsj $ $Date: 12/16/03 11:59a $ - * - * $History: WinExeClass.h $ - * - * ***************** Version 2 ***************** - * User: Jsj Date: 12/16/03 Time: 11:59a - * Updated in $/LibSource/WinExeClass - * modified to all use in .net 1.0 and .net 1.1 - * - * ***************** Version 1 ***************** - * User: Jsj Date: 8/23/02 Time: 2:57p - * Created in $/LibSource/WinExeClass - *********************************************************************************************/ - -// WinExeClass.h - -#pragma once -#include -#include - -using namespace System; - -namespace WinExeClass -{ - public __gc class CLWinExec - { - public: - // TODO: Add your methods for this class here. - CLWinExec(){}; - bool RunWinExe(char *prgName); - bool RunWinExe(String *prgName); - bool RunCreateProcess(char *prgName); - bool RunCreateProcess(String *prgName); - private: -// char *tmpstr; - bool DoWinExe(char *prgName); - bool DoCreateProcess(char *prgName); - }; -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.sln b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.sln deleted file mode 100644 index f359bd14..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "WinExeClass", "WinExeClass.vcproj", "{3A668CA0-A3BC-11D6-8541-ACF0DF000000}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {3A668CA0-A3BC-11D6-8541-ACF0DF000000}.Debug.ActiveCfg = Debug|Win32 - {3A668CA0-A3BC-11D6-8541-ACF0DF000000}.Debug.Build.0 = Debug|Win32 - {3A668CA0-A3BC-11D6-8541-ACF0DF000000}.Release.ActiveCfg = Release|Win32 - {3A668CA0-A3BC-11D6-8541-ACF0DF000000}.Release.Build.0 = Release|Win32 - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.vcproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.vcproj deleted file mode 100644 index 51f51cc7..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/WinExeClass/WinExeClass.vcproj +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/AssemblyInfo.cs deleted file mode 100644 index c713863a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/AssemblyInfo.cs.bak deleted file mode 100644 index 9f89a328..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/App.ico b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/App.ico deleted file mode 100644 index 3a5525fd..00000000 Binary files a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/App.ico and /dev/null differ diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/AssemblyInfo.cs deleted file mode 100644 index c713863a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/AssemblyInfo.cs.bak deleted file mode 100644 index 9f89a328..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/AssemblyInfo.cs.bak +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/Form1.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/Form1.cs deleted file mode 100644 index fa343e40..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/Form1.cs +++ /dev/null @@ -1,154 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.IO; -using XYPlots; - -namespace Test_XYPlots -{ - /// - /// Summary description for Form1. - /// - public class Form1 : System.Windows.Forms.Form - { - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.OpenFileDialog openFileDialog1; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button button2; - private System.Windows.Forms.Label label1; - private C1.C1Pdf.C1PdfDocument c1PdfDocument1; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public Form1() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - - // - // TODO: Add any constructor code after InitializeComponent call - // - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.textBox1 = new System.Windows.Forms.TextBox(); - this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog(); - this.button1 = new System.Windows.Forms.Button(); - this.button2 = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.c1PdfDocument1 = new C1.C1Pdf.C1PdfDocument(); - this.SuspendLayout(); - // - // textBox1 - // - this.textBox1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.textBox1.Location = new System.Drawing.Point(16, 48); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(456, 24); - this.textBox1.TabIndex = 0; - this.textBox1.Text = "Path to XYPlot File"; - // - // button1 - // - this.button1.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.button1.Location = new System.Drawing.Point(480, 48); - this.button1.Name = "button1"; - this.button1.TabIndex = 1; - this.button1.Text = "Browse"; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // button2 - // - this.button2.Font = new System.Drawing.Font("Microsoft Sans Serif", 12F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.button2.Location = new System.Drawing.Point(208, 96); - this.button2.Name = "button2"; - this.button2.Size = new System.Drawing.Size(144, 48); - this.button2.TabIndex = 2; - this.button2.Text = "Run Run Run"; - this.button2.Click += new System.EventHandler(this.button2_Click); - // - // label1 - // - this.label1.Font = new System.Drawing.Font("Microsoft Sans Serif", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.label1.Location = new System.Drawing.Point(16, 16); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(424, 23); - this.label1.TabIndex = 3; - this.label1.Text = "Enter the path and file name of the X/Y Plot text file:"; - // - // Form1 - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(576, 168); - this.Controls.Add(this.label1); - this.Controls.Add(this.button2); - this.Controls.Add(this.button1); - this.Controls.Add(this.textBox1); - this.Name = "Form1"; - this.Text = "X/Y Plot Test"; - this.ResumeLayout(false); - - } - #endregion - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.Run(new Form1()); - } - - private void button1_Click(object sender, System.EventArgs e) - { - openFileDialog1.ShowDialog(); - textBox1.Text = openFileDialog1.FileName; - } - - private void button2_Click(object sender, System.EventArgs e) - { - if (File.Exists(textBox1.Text)) - { - string XYPlotTextFile = textBox1.Text; - int extenIdx = textBox1.Text.LastIndexOf('.'); - if (extenIdx < 0) - extenIdx = textBox1.Text.Length; - string XYPlotPdfFile = textBox1.Text.Substring(0,extenIdx) + ".PDF"; - Cursor.Current = Cursors.AppStarting; - XYPlot plot = new XYPlot(XYPlotTextFile,XYPlotPdfFile); - Cursor.Current = Cursors.Arrow; - } - else - MessageBox.Show(textBox1.Text,"Could not find X/Y Plot text file:"); - } - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/Form1.resx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/Form1.resx deleted file mode 100644 index 1b83c9d0..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/Form1.resx +++ /dev/null @@ -1,184 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Private - - - False - - - Private - - - Private - - - Private - - - 17, 17 - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - False - - - Private - - - Private - - - 162, 17 - - - Private - - - Private - - - False - - - (Default) - - - False - - - False - - - 8, 8 - - - True - - - 80 - - - Form1 - - - True - - - Private - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/Test XYPlots.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/Test XYPlots.csproj deleted file mode 100644 index c37cce4f..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/Test XYPlots.csproj +++ /dev/null @@ -1,140 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/licenses.licx b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/licenses.licx deleted file mode 100644 index 984ec9ad..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/Test XYPlots/licenses.licx +++ /dev/null @@ -1 +0,0 @@ -C1.C1Pdf.C1PdfDocument, C1.C1Pdf, Version=1.1.20052.40, Culture=neutral, PublicKeyToken=bc8d9c59cf1b601f diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/XYPlots.cs b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/XYPlots.cs deleted file mode 100644 index 55bcd425..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/XYPlots.cs +++ /dev/null @@ -1,2226 +0,0 @@ -using System; -using System.Collections; -using System.IO; -using System.Windows.Forms; -using System.Text; -using System.Drawing; -using VG; -using C1.C1Pdf; - -namespace XYPlots -{ - /// - /// Summary description for XYPlot. - /// - public class XYPlot - { -// private int ConvertToTwips = 1440; - private double ConvertToTwips = 4.8; - - static long HP3_HPGL_COMPENSATEX = 1016L; /* OK, so you don't believe it */ - static long HP3_HPGL_COMPENSATEY = 1016L;/* OK, so you don't believe it */ - static long PRINTAPLOT_COMPENSATE = 1020L;/* but these resolve differently*/ - static int MAX_XY_STACK = 8; /* this is max of CIE cursor/font stack */ - - static int DPI = 1440; //300; - static int CWIDEDOTS = 120; //25; - static int CHIGHDOTS = 240; //50; - - static int STRAIGHT = 0; - static int CURVE = 1; - static int DASH = 2; - - static int X = 0; - static int Y = 1; - static int Dimensions = 2; - static int USER = 0; - static int PLOT = 1; - - static double PI=3.141592653; - static double Zero=0.0; - static double ANGLELIMIT=1.0; - - // !!!! NEED REAL SUPERSCRIPT ON/OFF TOKENS - static string []SuperScript = {"##","##"}; - static string []SubScript = {"~~","~~"}; - - FileStream XYPlotFile; - - int []SavedX; - int []SavedY; - int stack; - int HPGLMode; - long HP_FudgeX = HP3_HPGL_COMPENSATEX; - long HP_FudgeY = HP3_HPGL_COMPENSATEY; - - string GoodOldStringX; - string GoodOldStringY; - - - public int LinesUsed; - string valuestring; - string powerstring; - int GridOnFlag,Visible,ShadowFlag; - char[] type = new char[Dimensions]; - double FontPitch = 10.0; - double[] minimum = new double[Dimensions]; - double[] maximum = new double[Dimensions]; - double[] userunits = new double[Dimensions]; - int[] printerunits = new int[Dimensions]; - int[] Position = new int[Dimensions]; - double[,] Scale = new double[2,Dimensions]; - double[,] Offset = new double[2,Dimensions]; - double[] delta = new double[Dimensions]; - int[] cycles = new int[Dimensions]; - int[] onecycle = new int[Dimensions]; - int[] minor = new int[Dimensions]; - int[] spcminor = new int[Dimensions]; - string[] AxisTitles = new string[Dimensions]; - int[] AxisLabel = new int[Dimensions];// = {1,1}; /* 1 for YES(default), 0 for NO*/ - string LineBuff; - int CurPenWidth, DrawDirection, LineFlag, LineDiv; - int EndFlag = 0; - public string Buff; //[4096],*BuffPtr; - int BuffPtr = 0; - - //double (*f[2][2])(double); - - bool [,]doLOG10 = {{false,false},{false,false}}; - - struct point - { - public int[] xyValue; //new int[Dimensions]; - } - - struct BoxList - { - public int Shadow; - public string BoxText; - public point BoxMinimum; - public point BoxMaximum; - //BoxList *NextBox; - }; - ArrayList AllBoxes = new ArrayList(); - - struct ActiveBoxList - { - public ArrayList BoxPtr; - //ActiveBoxList *NextActiveBox; - }; - ArrayList AllActiveBoxes = new ArrayList(); - - class PointList - { - private point m_APoint; - private double m_slope; /* slope of tangent to circle at this point */ - public point APoint - { - get{return m_APoint;} - set{m_APoint=value;} - } - public double slope - { - get{return m_slope;} - set{m_slope=value;} - } - //PointList *NextPoint; - }; -// public ArrayList PointListArray = new ArrayList(); - - struct LineList - { - public int PlotType; - public int PlotDivisions; - // public PointList PlotPoint; - public ArrayList PlotPointsList; -// public LineList NextPlot; - }; - ArrayList AllPlots = new ArrayList(); - - int YLandScape=0; /* y axis title is horizontal */ - point YTitleOrigin; /* y axis title origin if vertical */ - - double FixAngle(double a1) - { - double retval; - int sign; - if(a1 < 0) - { - a1=-a1; - sign=-1; - } - else - sign=1; - retval=sign*Math.Floor(0.5+a1); - return(retval); - } - - double dsquare(int val) - { - double result; - result = (double)(val*val); - return( result ); - } - - double FMin(double f1,double f2) - { - return((f1>=f2)?f2:f1); - } - - double FMax(double f1,double f2) - { - return((f1>=f2)?f1:f2); - } - - double atan_deg(double x) - { - return( Math.Atan(x) * 180.0/PI ); - } - - double cos_deg(double x) - { - return( Math.Cos(x*PI/180.0) ); - } - - double tan_deg(double x) - { - return( Math.Tan(x*PI/180.0) ); - } - - double sin_deg(double x) - { - return( Math.Sin(x*PI/180.0) ); - } - - /* - ** the following function is pointed to by a function pointer - ** and is provided for compatibility with log10() function usage - */ - double linear(double x) - { - return(x); - } - - bool isWhiteSpace(char cptr) - { - bool rtnval = false; - if (!cptr.Equals(null)) - { - int idx = "\t\n\r\f ".IndexOf(cptr); - rtnval = (idx > -1); - } - return rtnval; - // return((c) ? strchr("\t\n\r\f ",c):NULL); - } - - // int NextPiece() - string NextPiece() - { - string rtnval; - // char *ptr; - int ptr; -// int buflen = Buff.Length; - while(BuffPtr >= 0 && Buff[BuffPtr] != 0 && isWhiteSpace(Buff[BuffPtr]))BuffPtr++; -// while(BuffPtr < buflen && Buff[BuffPtr] != 0 && isWhiteSpace(Buff[BuffPtr]))BuffPtr++; - ptr=BuffPtr; - while(BuffPtr >= 0 && Buff[BuffPtr] != 0 && !isWhiteSpace(Buff[BuffPtr]))BuffPtr++; -// while(BuffPtr < buflen && Buff[BuffPtr] != 0 && !isWhiteSpace(Buff[BuffPtr]))BuffPtr++; - if ( EndOfCommand() ) EndFlag=1; - - rtnval = Buff.Substring(ptr,BuffPtr-ptr); - BuffPtr++; - return rtnval; - } - - bool EndOfCommand() - { - int tmpPtr = BuffPtr; -// if (BuffPtr >= Buff.Length) -// return true; - while (!Buff[tmpPtr].Equals('\0') && Buff[tmpPtr].Equals(' ')) tmpPtr++; - if (!Buff[tmpPtr].Equals('\0') && !isWhiteSpace(Buff[tmpPtr])) - return false; - else if (Buff[tmpPtr] == '\r' || Buff[tmpPtr] == '\n' || Buff[tmpPtr] == '\0') - return true; - else - return false; - } - - bool LoadBuff(string FileName) - { - if (!File.Exists(FileName)) - { - // File does not exist, show error message - MessageBox.Show(String.Format("X/Y Plot File {0} Does Not Exist",FileName),"Error Opening X/Y Plot File"); - return false; - } - - // Open the X/Y Plot file - try - { - XYPlotFile = File.OpenRead(FileName); - } - catch (Exception e) - { - // cannot open the x/y plot file - MessageBox.Show(e.Message,String.Format("Error Opening {0} for Reading",FileName)); - return false; - } - - int blen = (int)XYPlotFile.Length; - int bread = 0; - - // initialize a byte array to read into - byte []bbuf = new byte[blen+1]; - for (int i=0; i\r\n<",ptr)) > 0) - { - // blank out ">" - Buff = Buff.Remove(ptr,1); - Buff = Buff.Insert(ptr," "); - // remove "<" - Buff = Buff.Remove(ptr+3,1); - // if command on next line is blank, - // combine with the previous line - if (Buff[ptr+3] == ' ') - Buff = Buff.Remove(ptr,3); - } - ptr = Buff.Length-5; -// if (Buff.EndsWith(">>\r\n")) - if (Buff.IndexOf(">>\r\n",ptr) > 0) - { - Buff = Buff.Remove(ptr,2); - Buff = Buff.Insert(ptr," "); -// Buff[ptr] = ' '; -// Buff[ptr+1] = ' '; - } - } - - void CloseGraph() - { - /* Send back number of lines used assuming 6 lines per inch */ - if( LinesUsed==0 ) - LinesUsed=(int)(1.5 * CHIGHDOTS); /* adjust for x axis tics */ - LinesUsed += printerunits[Y]; - LinesUsed = LinesUsed/CHIGHDOTS; - } - - void GetScaleInfo() - { - GridOnFlag=getint(); - userunits[X]=getdouble(); - userunits[Y]=getdouble(); -// f[USER][X]=linear; /* f is a function pointer */ -// f[USER][Y]=linear; /* linear is a function */ - printerunits[X]=(int)(DPI*userunits[X]); - printerunits[Y]=(int)(DPI*userunits[Y]); - minimum[X]=getdouble(); - maximum[X]=getdouble(); - minimum[Y]=getdouble(); - maximum[Y]=getdouble(); - type[X]=getchr(); - type[Y]=getchr(); - if(EndFlag == 0) delta[X]=getdouble(); - if(EndFlag == 0) delta[Y]=getdouble(); - if(EndFlag == 0) spcminor[X]=getint(); - if(EndFlag == 0) spcminor[Y]=getint(); - Offset[USER,X]=0; - Offset[USER,Y]=0; - Scale[USER,X]=DPI; - Scale[USER,Y]=DPI; - - /* - in the following if blocks, the array variable f is a function - pointer which is set to either the function linear or log10. - */ - /* X-axis function generation and scaling */ - if(type[X] != 'L') - { - // Linear - doLOG10[PLOT,X]=false; - LinearScale(X); - Scale[PLOT,X] = printerunits[X] / (maximum[X]- minimum[X]); - Offset[PLOT,X] =- Scale[PLOT,X] * minimum[X]; - } - else - { - // Log10 - doLOG10[PLOT,X]=true; - LogScale(X); - Scale[PLOT,X] = printerunits[X] / - (Math.Log10(maximum[X])- Math.Log10(minimum[X])); - Offset[PLOT,X] =- Scale[PLOT,X] * Math.Log10(minimum[X]); - } - - /* Y-axis function generation and scaling */ - if(type[Y] != 'L') - { - // Linear - doLOG10[PLOT,Y]=false; - LinearScale(Y); - Scale[PLOT,Y]=printerunits[Y]/ (maximum[Y] - minimum[Y]); - Offset[PLOT,Y] =- Scale[PLOT,Y] * minimum[Y]; - } - else - { - // Log10 - doLOG10[PLOT,Y]=true; - LogScale(Y); - Scale[PLOT,Y]=printerunits[Y]/ - (Math.Log10(maximum[Y]) - Math.Log10(minimum[Y])); - Offset[PLOT,Y] =- Scale[PLOT,Y] * Math.Log10(minimum[Y]); - } - } - - - void GetAxisTitle(int flag) - { - AxisTitles[flag]=GetString(); - } - - string stripSuperSub(string instr) - { - StringBuilder sb = new StringBuilder(instr); - sb.Replace(SuperScript[0],""); - sb.Replace(SuperScript[1],""); - sb.Replace(SubScript[0],""); - sb.Replace(SubScript[1],""); - return sb.ToString(); - } - - point DetermineBoxMax(BoxList boxptr) - { - - point newval = new point(); - newval.xyValue = new int[Dimensions]; - string tmp; - int pos = 0, prevPos = 0; - int nl = 0, xmax = 0, ilen = 0; - tmp = stripSuperSub(boxptr.BoxText); - while ((pos = tmp.IndexOf('\n',pos)) > -1) - { - ilen = pos - prevPos; // -1; this will fix an arythmatic bug - xmax = Math.Max(xmax,ilen); - prevPos = pos; - pos++; - nl++; - } - ilen = tmp.Substring(prevPos+1).Length; - xmax = Math.Max(xmax,ilen) + 2; -// nl += 2; - newval.xyValue[X] = boxptr.BoxMinimum.xyValue[X]+(xmax*CWIDEDOTS); - newval.xyValue[Y] = boxptr.BoxMinimum.xyValue[Y]-(nl*CHIGHDOTS)-(int)(30 * ConvertToTwips); -// newval.xyValue[Y] = boxptr.BoxMinimum.xyValue[Y]+(nl*CHIGHDOTS)-(int)(30 * ConvertToTwips); -// boxptr.BoxMaximum = newval; - return newval; - } - - - void GetBoxParameters() - { - BoxList NewBox = new BoxList(); -// point Origin = new point(); -// Origin.xyValue = new int[Dimensions]; - point Origin; - Origin = GetPair(USER); - string str = GetString(); - NewBox.BoxText = str; - NewBox.BoxMinimum = Origin; - NewBox.Shadow = ShadowFlag; - ShadowFlag = 0; - NewBox.BoxMaximum = DetermineBoxMax(NewBox); - // jsj - point minPoint = new point(); - minPoint.xyValue = new int[Dimensions]; - point maxPoint = new point(); - maxPoint.xyValue = new int[Dimensions]; - minPoint.xyValue[X] = Origin.xyValue[X]; - minPoint.xyValue[Y] = NewBox.BoxMaximum.xyValue[Y]; - maxPoint.xyValue[X] = NewBox.BoxMaximum.xyValue[X]; - maxPoint.xyValue[Y] = Origin.xyValue[Y]; - - NewBox.BoxMinimum = minPoint; - NewBox.BoxMaximum = maxPoint; - //jsj - AllBoxes.Add(NewBox); - } - - void GetLineParameters() - { - // PointList NewPlotData; - // int curptr, prevptr; - ArrayList PointListArray = new ArrayList(); - int pointcount; - pointcount = EndFlag = 0; - while (EndFlag == 0) - { - PointList pl = new PointList(); - pl.APoint = new point(); - //pl.APoint.xyValue = new int[Dimensions]; - pl.APoint = GetPair(PLOT); - pointcount++; - PointListArray.Add(pl); - } - if (LineFlag == CURVE && pointcount > 2) - CalculateSlopes(PointListArray); - else - LineFlag = STRAIGHT; -#if DEBUG - ShowPoints(PointListArray); -#endif - AddAPlot(PointListArray); - } -#if DEBUG - void ShowPoints(ArrayList al) - { - foreach(PointList pl in al) - { - Console.WriteLine("x={0},y={1},slope={2}",pl.APoint.xyValue[0],pl.APoint.xyValue[1], pl.slope); - } - } -#endif - double FindSlope(point first, point last) - { - double dx, dy, result; - dx = last.xyValue[X] - first.xyValue[X]; - dy = (last.xyValue[Y] - first.xyValue[Y]); -// dy = first.xyValue[Y] - last.xyValue[Y]; - if (dx == 0.0) - { - if (dy > 0) - result = Convert.ToDouble("1.E99"); - else - result = Convert.ToDouble("-1.E99"); - } - else - result = dy/dx; - return result; - } - - double FindEndSlope(point first, point last,double s1) - { - double result; - result = 2.0 * FindSlope (first,last) - s1; - if (result * s1 < 0.0) - result = 0.0; - return result; - } - - void CalculateSlopes(ArrayList PlAry) - { - PointList thispt, prevpt, firstpt; - long yval, y1, y3; - int PlAryIdx = 0; - int PlAryNumItems = PlAry.Count; - prevpt = (PointList) PlAry[PlAryIdx]; - PlAryIdx++; - thispt = (PointList) PlAry[PlAryIdx]; - while (PlAryIdx + 1 < PlAry.Count) - { - thispt.slope = Zero; - yval = thispt.APoint.xyValue[Y]; - y1 = prevpt.APoint.xyValue[Y]; - y3 = ((PointList)PlAry[PlAryIdx +1]).APoint.xyValue[Y]; - if ((yval-y1)*(y3-yval) > 0) -// if ((yval-y1)*(y3-yval) < 0) // jsj - thispt.slope = FindSlope(prevpt.APoint,((PointList)PlAry[PlAryIdx +1]).APoint); - prevpt = thispt; - PlAryIdx++; - thispt = (PointList)PlAry[PlAryIdx]; - } - firstpt = (PointList)PlAry[0]; - firstpt.slope = FindEndSlope(firstpt.APoint,((PointList)PlAry[1]).APoint,((PointList)PlAry[1]).slope); - - thispt.slope = FindEndSlope(thispt.APoint,prevpt.APoint,prevpt.slope); - } - - void AddAPlot(ArrayList ptr) - { - LineList NewLine = new LineList(); - NewLine.PlotType = LineFlag; - NewLine.PlotDivisions = LineDiv; - NewLine.PlotPointsList = ptr; - AllPlots.Insert(0,NewLine); - } - - void GenerateGrid(VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - AllActiveBoxes.Clear(); - SetPenDiameter(5); - Position[X]= 0; - Position[Y]= 0; // printerunits[Y]; - SavePosition(); - BoxRelative(printerunits[X],printerunits[Y],CurPenWidth,pg,pdf); - if(GridOnFlag == 0) Visible=0; - DrawDirection=Y; - DoGrid(X,pg,pdf); - DrawDirection=X; - DoGrid(Y,pg,pdf); - Visible=1; - RecallPosition(); - } - - void DoGrid(int flag,VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - if( type[flag] != 'L' ) - DoLinearGrid(flag,pg,pdf); - else - DoLogGrid(flag,pg,pdf); - } - - void DoLinearGrid(int flag,VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - int i,n,ns,subminor; -// int i,n,ns,x1,x2,y1,y2,subminor; - int ptval; - n = (int)(0.5 + (maximum[flag] - minimum[flag]) / delta[flag]); - ns = n * minor[flag]; - if ((minor[flag] % 2) != 0) - subminor = minor[flag]; - else - subminor = minor[flag] / 2; - for(i=0; i <= ns; i++) - { - SetPenDiameter((((i % minor[flag])!=0) ? (((i % subminor)!=0) ? 1 : 2) : 3)); - ptval = ((int)printerunits[flag]) * i / ns; - if (flag ==Y) - ptval = printerunits[Y] - ptval; - MoveAbsolute(((flag == X)? ptval : 0),((flag == Y)? ptval : 0)); -// MoveAbsolute(((flag == X)? ptval : 0),((flag == Y)? ptval : printerunits[Y])); - if(i % minor[flag] == 0) - WriteValue(flag,minimum[flag] + i * delta[flag] / minor[flag],false,pg,pdf); -// DrawGridLine(!flag,ptval); - DrawGridLine((flag==0)?1:0,ptval,pg,pdf); - } - } - - void DoLogGrid(int flag,VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - double showval; - int gs,ge,gd; - int i,ptval; -// int i,x1,x2,y1,y2,ptval; - showval =minimum[flag]; - for (i=0; i < cycles[flag]; i++) - { - gs = gd = 100; - ge = 1000; - ptval=((int)printerunits[flag]) * i / cycles[flag]; - if (flag ==Y) - ptval = printerunits[Y] - ptval; //jj - MoveAbsolute(((flag == X)? ptval : 0),((flag == Y)? ptval : 0)); - SetPenDiameter(3); - WriteValue(flag,showval,false,pg,pdf); - GenGrid(flag,gs,ge,gd,onecycle[flag],2,i * onecycle[flag],pg,pdf); - showval *= 10.0; - } - ptval=((int)printerunits[flag]) * i / cycles[flag]; - if (flag ==Y) - ptval = printerunits[Y] - ptval; //jj - MoveAbsolute(((flag == X)? ptval : 0),((flag == Y)? ptval : 0)); - SetPenDiameter(3); - WriteValue(flag,showval,false,pg,pdf); - } - - void WriteValue(int flag, double val, bool SubLogValue, VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - int size; - size=GenNumberString(val); - SavePosition(); - if (flag == X) - { - MoveRelative(0,-printerunits[Y]); -// DrawGridRelative(0,30,pg,pdf); -// DrawGridRelative(0,(int)(-30 * ConvertToTwips) - printerunits[Y],pg,pdf); - if (!SubLogValue) - DrawGridRelative(0,(int)(-30 * ConvertToTwips),pg,pdf); - // MoveRelative((int)((-150 * size / (int)FontPitch) * ConvertToTwips), (int)(60 * ConvertToTwips)); - MoveRelative((int)((-130 * size / (int)FontPitch) * ConvertToTwips), (int)(-60 * ConvertToTwips)); - if ((AxisLabel[0])!=0) - { - if (SubLogValue) - { - StringBuilder sb = new StringBuilder(); - sb.Append(SuperScript[0]); - sb.Append(valuestring); - sb.Append(SuperScript[1]); - valuestring = sb.ToString(); - MoveRelative(30,30); - } - GraphText(valuestring,pg,pdf); - } - } - else - { -// DrawGridRelative(-30,0,pg,pdf); - if (!SubLogValue) - DrawGridRelative((int)(-30 * ConvertToTwips),0,pg,pdf); -// MoveRelative((int)(-(15 + 300 * size / (int)FontPitch) * ConvertToTwips), (int) (15 * ConvertToTwips)); - MoveRelative((int)(-(15 + 300 * size / (int)FontPitch) * ConvertToTwips), (int) (-15 * ConvertToTwips)); - if((AxisLabel[1])!=0) - { - if (SubLogValue) - { - StringBuilder sb = new StringBuilder(); - sb.Append(SuperScript[0]); - sb.Append(valuestring); - sb.Append(SuperScript[1]); - valuestring = sb.ToString(); - MoveRelative(90,-90); //jj - } - GraphText(valuestring,pg,pdf); - } - } - RecallPosition(); - } - - int GenNumberString(double x) - { - int power,size,sign; - double mantissa; - if(x==0.0) return(savenumber(x)); - if(x<0.0) - { - x=-x; - sign=1; - } - else - sign=0; - mantissa=Math.Log10(x); - power=0; - while(mantissa < 0.999) - { - power--; - mantissa++; - } - while(mantissa >= 0.999) - { - power++; - mantissa--; - } - if(mantissa < 0) - mantissa=0; - if(power > -5 && power < 5) - size=savenumber(x); - else - { - size = savenumber(Math.Pow(10.0,mantissa)); - size += addpower(power); - if (valuestring.StartsWith("1x")) - { - size -= 2; - valuestring = valuestring.Remove(0,2); - } - } - if(sign != 0) - { - valuestring = "-" + valuestring; - size++; - } - return(size); - } - - int savenumber(double x) - { - // valuestring = x.ToString("F"); - valuestring = x.ToString("G"); - return valuestring.Length; - } - - int addpower(int i) - { - int tlen; - powerstring = string.Format("x10{0}{1}{2}",SuperScript[1],i.ToString(),SuperScript[2]); - valuestring = valuestring + powerstring; - tlen=SuperScript[0].Length + SuperScript[1].Length; - return(powerstring.Length - tlen); - } - - void DoAxisTitles(VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - int len,frommargin; -// int axismax,axismin; - string str; - // string []newstr = {"",""}; - - SavePosition(); - if((AxisTitles[X] != null) && (len=AxisTitles[X].Length) > 0 ) - { - frommargin=(int)((0.5 * (printerunits[X])) - (0.5 * (len * CWIDEDOTS))); -// MoveAbsolute(frommargin, -3 * CHIGHDOTS); - MoveAbsolute(frommargin, (3 * CHIGHDOTS) + printerunits[Y]); - PrintText(AxisTitles[X],pg,pdf); - LinesUsed += (3 * CHIGHDOTS); - // Zfree(&AxisTitles[X]); - AxisTitles[X] = null; - } - if((AxisTitles[Y] != null) && (len=AxisTitles[Y].Length) > 0) - { - if(YLandScape > 0) - { - int strIdx = 0; - // newstr[1] = null; - MoveTo(YTitleOrigin); - str = AxisTitles[Y]; - while(strIdx < str.Length) - { - // newstr[0] = *str; - // PrintText( newstr ); - PrintText (str[strIdx].ToString(),pg,pdf); - MoveRelative(0,-CHIGHDOTS); - strIdx ++; - // str++; - } - } - else - { -// MoveAbsolute(-3 * CWIDEDOTS, printerunits[Y] + CHIGHDOTS); - MoveAbsolute(-3 * CWIDEDOTS, - CHIGHDOTS); - PrintText(AxisTitles[Y],pg,pdf); - } - // Zfree(&AxisTitles[Y]); - AxisTitles[Y] = null; - } - RecallPosition(); - } - - void DoBoxes(VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - int dx,dy; - BoxList current; - string str; - //string nextstr; - SavePosition(); - int BoxIdx = 0; - SetPenDiameter(5); - while(BoxIdx < AllBoxes.Count) - { - current=(BoxList)AllBoxes[BoxIdx]; - MoveTo(current.BoxMinimum); - dx=current.BoxMaximum.xyValue[X] - current.BoxMinimum.xyValue[X]; -// dy=current.BoxMinimum.xyValue[Y] - current.BoxMaximum.xyValue[Y]; - dy=current.BoxMaximum.xyValue[Y] - current.BoxMinimum.xyValue[Y]; - if( current.Shadow != 2 ) BoxRelative(dx,dy,CurPenWidth,pg,pdf); - if( current.Shadow == 1 ) - { - int savePenWidth = CurPenWidth; - SavePosition(); - SetPenDiameter(10); - MoveRelative((int)(10 * ConvertToTwips),-(dy+(int)(5*ConvertToTwips))); - DrawRelative(dx,0,pg,pdf); -// BlockRelative(dx,(int)(10 * ConvertToTwips),pg,pdf); - MoveRelative(-(int)(3 * ConvertToTwips),-(int)(5*ConvertToTwips)); -// BlockRelative((int)(10 * ConvertToTwips),dy,pg,pdf); - DrawRelative(0,dy,pg,pdf); - CurPenWidth = savePenWidth; -// MoveRelative(dx + (int)(10 * ConvertToTwips),0); -// BlockRelative(-dx,(int)(10 * ConvertToTwips),pg,pdf); -// BlockRelative((int)(-10 * ConvertToTwips),dy + (int)(10 * ConvertToTwips),pg,pdf); - RecallPosition(); - } -//jj MoveRelative((CWIDEDOTS * (3/2)),dy + (CHIGHDOTS * (5/4))); - MoveRelative((CWIDEDOTS * (3/2)),-(CHIGHDOTS * (5/4))); - str=current.BoxText; - int stridx = 0; - while(stridx < str.Length) - { - string tstr = str; - int idx; - if ((idx = str.IndexOf("\n",stridx)) >= 0) - { - tstr = str.Substring(stridx,idx-stridx); - stridx = idx + 1; - } - // if( (nextstr=strchr(str,'\n')) != NULL ) *nextstr++=0; - PrintText(tstr,pg,pdf); - MoveRelative(0,-CHIGHDOTS); - // str=nextstr; - } - // current=current->NextBox; - BoxIdx++; - } - RecallPosition(); - } - - void DrawLines(VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - int PlotsIdx = 0; - PointList curpoint; - LineList current; - - SavePosition(); - // if( HPGL_Command[0] ) { - // if( UsePP ) { /* PRINTAPLOT third party software */ - // if( (PRT=fopen("HPGL.tmp","wb")) == NULL ) - // {fprintf(stderr,"Could not open HPGL.tmp");PRT=stdprn;return;} - // HP_FudgeX=PRINTAPLOT_COMPENSATE; - // HP_FudgeY=PRINTAPLOT_COMPENSATE; - // - // } else { /* standard HPGL */ - // PRT=stdprn; - // HP_FudgeX=HP3_HPGL_COMPENSATEX; - // HP_FudgeY=HP3_HPGL_COMPENSATEY; - // } - // HPGLMode=1; - // ANGLELIMIT=2.0; - // fprintf(PRT,HPGL_Command[0]); /* Initialization */ - // - // } else { /* All other printers */ - //PRT=stdprn; - //HPGLMode=0; - SetPenDiameter(8); - // } - - /* begin plotting the graph lines, which may be straight or curved */ - while(PlotsIdx < AllPlots.Count) - { - current=(LineList)AllPlots[PlotsIdx]; - int pntListIdx = 0; - LineDiv=current.PlotDivisions; - if( current.PlotType == STRAIGHT ) - { /* straight plot */ - curpoint=(PointList)current.PlotPointsList[pntListIdx]; - MoveTo(curpoint.APoint); - // while( (curpoint=curpoint->NextPoint) != 0 ) - while( ++pntListIdx < current.PlotPointsList.Count ) - { - curpoint = (PointList)current.PlotPointsList[pntListIdx]; - DrawLineTo(curpoint.APoint,pg,pdf); - } - } - else - { - DrawCurve(current,pg,pdf); /* curved plot */ - } - - /* HP printers seem to have a bug (or this code does) which */ - /* requires that each plot or curve be redrawn relative to the */ - /* origin, or plot offsetting occurs. */ - // if(HPGLMode && !UsePP) { - // Graphics(0); - // RecallPosition(); - // SavePosition(); - // Graphics(1); - // fprintf(PRT,HPGL_Command[0]); /* Initialization */ - // } - -// current=current.NextPlot; /* point to next curve */ - PlotsIdx++; -// if (PlotsIdx < AllPlots.Count) -// current=(LineList)AllPlots[PlotsIdx]; - } /* repeat for each plot (while) */ - - // if(HPGLMode) { - // fprintf(PRT,HPGL_Command[1]); /* Cleanup */ - // if( UsePP ) { fclose(PRT); PRT=stdprn; } - // } - RecallPosition(); - } - - point FindCenterOfArc( point StartPoint, double Slope1, point EndPoint, double Slope2) - { - point center = new point(); - double s1,s2; - int x1,y1,x2,y2; - - center.xyValue = new int[Dimensions]; - s1 = tan_deg(FixAngle(atan_deg(Slope1))); - s2=tan_deg(FixAngle(atan_deg(Slope2))); - x1=StartPoint.xyValue[X]; - y1=StartPoint.xyValue[Y]; - x2=EndPoint.xyValue[X]; - y2=EndPoint.xyValue[Y]; - center.xyValue[X]=(int)(((s2*s1)*(y2-y1)+(s1*x2)-(s2*x1))/(s1-s2)); - if(s1==0.0) - center.xyValue[Y] = (int)(y2-((center.xyValue[X]-x2)/s2)); - else - center.xyValue[Y] = (int)(y1-((center.xyValue[X]-x1)/s1)); - return(center); - } - - point FindModifiedCenter(double rprime,point PtOnArc, double ang) - { - point newcenter = new point(); - newcenter.xyValue = new int[Dimensions]; - newcenter.xyValue[X] = (int)(PtOnArc.xyValue[X] - rprime * cos_deg(ang)); - newcenter.xyValue[Y] = (int)(PtOnArc.xyValue[Y] - rprime * sin_deg(ang)); - return(newcenter); - } - - int AddMidPoint(ArrayList ptLstAry, int pt1Idx,int pt2Idx) - { - PointList midpt; - PointList pt1, pt2; - point pt; - double so; - int x1,y1,x2,y2; - pt1 = (PointList)ptLstAry[pt1Idx]; - pt2 = (PointList)ptLstAry[pt2Idx]; - x1=pt1.APoint.xyValue[X]; - y1=pt1.APoint.xyValue[Y]; - x2=pt2.APoint.xyValue[X]; - y2=pt2.APoint.xyValue[Y]; - midpt = new PointList(); - pt=new point(); - pt.xyValue = new int[Dimensions]; - so=FindSlope(pt1.APoint,pt2.APoint); - midpt.slope = (4.0 * so - pt1.slope - pt2.slope)/2.0; - pt.xyValue[X]=x1+(x2-x1)/2; - pt.xyValue[Y]=y1+(y2-y1)/2; - midpt.APoint=pt; - ptLstAry.Insert(pt1Idx+1,midpt); - //midpt->NextPoint=pt2; - return(pt1Idx+1); - } - - double FindTheta(point Endpoint, point Centerpoint) - { - double dy,dx,result; - dx = Endpoint.xyValue[X] - Centerpoint.xyValue[X]; - dy = Endpoint.xyValue[Y] - Centerpoint.xyValue[Y]; - result=90.0 - atan_deg((dy/dx)); - if( dx<0 ) result+=180.0; - return(result); - } - - double FindRadius(point Endpoint, point Centerpoint) - { - double dy,dx,r; -// double dy,dx,ddx,ddy,r; - dx = Centerpoint.xyValue[X] - Endpoint.xyValue[X]; - dy = Centerpoint.xyValue[Y] - Endpoint.xyValue[Y]; - r = Math.Sqrt(((dx*dx)+(dy*dy))); - return(r); - } - - - void DrawCurve(LineList linestart, VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - //PointList curpoint,pt2; - int pltptListIdx = -1; -// int debug = 1; //jj - //curpoint=(PointList)linestart.PlotPointsList[pltptListIdx]; - while( ++pltptListIdx < linestart.PlotPointsList.Count -1 ) - { - DoSubArcs(linestart.PlotPointsList,pltptListIdx,pg,pdf); -// pltptListIdx = linestart.PlotPointsList.Count * debug; // jj -// debug++; //jj - //DoSubArcs(curpoint); - //curpoint=(PointList)linestart.PlotPointsList[pltptListIdx]; - } - } - - double GetAngle(double s1) - { - double t1; - t1=atan_deg(s1); - return(t1); - } - - double GetAngleBetweenPoints(point pt1, point pt2) - { - double retval; - retval=GetAngle(FindSlope(pt1,pt2)); - if(pt2.xyValue[X] < pt1.xyValue[X]) - { - if(retval<0) - retval+=180; - else - retval-=180; - } - return(retval); - } - - double SpecialGetAngleBetweenPoints(point pt1,point pt2, double s1) - { - double retval; - if(s1==0.0) - { - if(pt1.xyValue[Y] < pt2.xyValue[Y]) - s1=Convert.ToDouble("1.E99"); - else - s1=Convert.ToDouble("-1.E99"); - } - else - s1 = -1/s1; - retval=GetAngle(s1); - if(pt2.xyValue[X] < pt1.xyValue[X]) - { - if(retval<0) - retval+=180; - else - retval-=180; - } - return(retval); - } - - double GetArcAngle(double s1, double s2) - { - double result,t1,t2; - t1=GetAngle(s1); - t2=GetAngle(s2); - result=t1-t2; - return(result); - } - - void DoSubArcs(ArrayList ptListAry,int aryIdx, VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - bool debug = false; //jsj - int x,y,x1,x2,y1,y2; - PointList pt1 = (PointList)ptListAry[aryIdx]; - PointList pt2 = (PointList)ptListAry[aryIdx+1]; -#if DEBUG - Console.WriteLine("pt1={0},{1},{2}",pt1.APoint.xyValue[0],pt1.APoint.xyValue[1],pt1.slope); - Console.WriteLine("pt2={0},{1},{2}",pt2.APoint.xyValue[0],pt2.APoint.xyValue[1],pt2.slope); -#endif - double theta,delta1,delta2,r1,r2,t1,t2,theta1,theta2,thetaa,t3,t4; - double c1,c2,s1,s2; -// point cp,cp1,cp2; - point cp1,cp2; - t3=FixAngle(GetAngle(pt1.slope)); - t4=FixAngle(GetAngle(pt2.slope)); - thetaa=GetAngleBetweenPoints(pt1.APoint,pt2.APoint); - if((t3-thetaa)*(t4-thetaa) >= 0.0) - { - double tprime; - tprime=FixAngle(thetaa); - if (Math.Abs(tprime-t3) < ANGLELIMIT ) - { - MoveTo(pt1.APoint); - DrawTo(pt2.APoint,pg,pdf); - return; - } - else - { - pt2=(PointList)ptListAry[AddMidPoint(ptListAry,aryIdx,aryIdx+1)]; - t4=FixAngle(GetAngle(pt2.slope)); - thetaa=GetAngleBetweenPoints(pt1.APoint,pt2.APoint); - } - } -// if (debug) //jsj -// return; - - if(thetaa < t3) - t1=t3+90; - else - t1=t3-90; - if(thetaa > t4) - t2=t4+90; - else - t2=t4-90; - theta=t2-t1; - theta1=FixAngle(thetaa-t3); - theta2=theta-theta1; - if(Math.Abs(theta1) < Math.Abs(theta2)) - { - if(Math.Abs(theta1) < ANGLELIMIT ) - { - theta1=0; - theta2=theta; - } - } - else if(Math.Abs(theta2) < Math.Abs(theta1)) - { - if(Math.Abs(theta2) < ANGLELIMIT ) - { - theta2=0; - theta1=theta; - } - } - x1=pt1.APoint.xyValue[X]; - y1=pt1.APoint.xyValue[Y]; - x2=pt2.APoint.xyValue[X]; - y2=pt2.APoint.xyValue[Y]; - s1=sin_deg(t1+180); - s2=sin_deg(t2+180); - c1=cos_deg(t1+180); - c2=cos_deg(t2+180); - if(s1 == 0.0) - { - r2=(x1-x2)/s2; - r1=(y2+r2*c2-y1)/c1; - } - else if(s2 == 0.0) - { - r1=(x2-x1)/s1; - r2=(y1+r1*c1-y2)/c2; - } - else if(c1 == 0.0) - { - r2=(y1-y2)/c2; - r1=(x2+r2*s2-x1)/s1; - } - else if(c2 == 0.0) - { - r1=(y2-y1)/c1; - r2=(x1+r1*s1-x2)/s2; - } - else - { - r2=(((x2-x1)/c1) - ((y2-y1)/s1)) / (s2/s1 - c2/c1); - r1=(y2-y1+r2*s2)/s1; - } - MoveTo(pt1.APoint); - if (debug) //jsj - { - DrawTo(pt2.APoint,pg,pdf); - return; - } - if(Math.Abs(theta1)>ANGLELIMIT && Math.Abs(theta2)>ANGLELIMIT) - { - delta1=(r2-r1)/( - (1.0-cos_deg(theta1)) + - (1.0-cos_deg(theta2))*sin_deg(theta1)/sin_deg(theta2)); - r1=Math.Floor(0.5+r1+delta1); - cp1=FindModifiedCenter(r1,pt1.APoint,t1); -// cp1 = FindCenterOfArc(pt1.APoint,pt1.slope,pt2.APoint,pt2.slope); // jj - x=(int)(cp1.xyValue[X]+r1*cos_deg(t1+theta1)); - y=(int)(cp1.xyValue[Y]+r1*sin_deg(t1+theta1)); - delta2=delta1*sin_deg(theta1)/sin_deg(theta2); -// x = pt2.APoint.xyValue[X]; //jj -// y = pt2.APoint.xyValue[Y]; //jj - r2=Math.Floor(0.5+r2-delta2); - cp2=FindModifiedCenter(r2,pt2.APoint,t2); -#if DEBUG - Console.WriteLine("DrawArc1"); -#endif - DrawArc(r1,t1,t1+theta1,cp1,x,y,pg,pdf); - MoveTo(pt2.APoint); - if(r2 > 15000) - { -#if DEBUG - Console.WriteLine("DrawAbs1 {0},{1}",x,y); -#endif - DrawAbsolute(x,y,pg,pdf); - } - else - { -#if DEBUG - Console.WriteLine("DrawArc2"); -#endif - DrawArc(r2,t2,t2-theta2,cp2,x,y,pg,pdf); - } -// // Zfree(&cp1); -// // Zfree(&cp2); - } - else if(Math.Abs(theta1)>ANGLELIMIT) - { - delta1=(r2-r1)/(1.0-cos_deg(theta1)); - r1=Math.Floor(0.5+r1+delta1); - cp1=FindModifiedCenter(r1,pt1.APoint,t1); -// cp1=FindCenterOfArc(pt1.APoint,pt1.slope,pt2.APoint,pt2.slope); //jj - x=(int)(cp1.xyValue[X]+r1*cos_deg(t1+theta1)); - y=(int)(cp1.xyValue[Y]+r1*sin_deg(t1+theta1)); - if(r1 > 15000) - { -#if DEBUG - Console.WriteLine("DrawAbs2"); -#endif - DrawAbsolute(x,y,pg,pdf); - } - else - { -#if DEBUG - Console.WriteLine("DrawArc3"); -#endif - DrawArc(r1,t1,t1+theta1,cp1,x,y,pg,pdf); - } - MoveAbsolute(x,y); -#if DEBUG - Console.WriteLine("DrawTo1"); -#endif - DrawTo(pt2.APoint,pg,pdf); -// x = pt2.APoint.xyValue[X]; //jj -// y = pt2.APoint.xyValue[Y]; //jj -#if DEBUG - Console.WriteLine("DrawArc4"); -#endif - DrawArc(r1,t1,t1+theta1,cp1,x,y,pg,pdf); - // Zfree(&cp1); - - } - else if(Math.Abs(theta2)>ANGLELIMIT) - { - delta2=(r2-r1)/(1.0-cos_deg(theta2)); - r2=Math.Floor(0.5+r2-delta2); - cp2=FindModifiedCenter(r2,pt2.APoint,t2); -// cp2=FindCenterOfArc(pt1.APoint,pt1.slope,pt2.APoint,pt2.slope); //jj - x=(int)(cp2.xyValue[X]+r2*cos_deg(t2-theta2)); - y=(int)(cp2.xyValue[Y]+r2*sin_deg(t2-theta2)); -#if DEBUG - Console.WriteLine("DrawAbs3"); -#endif - DrawAbsolute(x,y,pg,pdf); - MoveTo(pt2.APoint); - if(r2 > 15000) - { -#if DEBUG - Console.WriteLine("DrawAbs4"); -#endif - DrawAbsolute(x,y,pg,pdf); - } - else - { -#if DEBUG - Console.WriteLine("DrawArc5"); -#endif - DrawArc(r2,t2,t2-theta2,cp2,x,y,pg,pdf); - } -// x = pt2.APoint.xyValue[X]; //jj -// y = pt2.APoint.xyValue[Y]; //jj -#if DEBUG - Console.WriteLine("DrawArc6"); -#endif - DrawArc(r2,t2,t2-theta2,cp2,x,y,pg,pdf); - // Zfree(&cp2); - - } - else - { -#if DEBUG - Console.WriteLine("DrawTo2"); -#endif - DrawTo(pt2.APoint,pg,pdf); - pt2.slope=FindSlope(pt1.APoint,pt2.APoint); - } - return; - } - - void Graphics(int flag) - { - // if(graph_GraphicsStr[flag]) - // fprintf(stdprn,"%s",graph_GraphicsStr[flag]); - } - - void SetPenDiameter(int pd) - { - if ((pd * ConvertToTwips) != CurPenWidth) - { - CurPenWidth= (int)(pd * ConvertToTwips); - } - } - - void PrintStackError(string relation, int limit) - { - MessageBox.Show(String.Format("Position Stack Pointer {0} {1}",relation,limit.ToString()),"Print Stack Error"); - // printf("Position Stack Pointer %s %d",relation,limit); - // spc_exit(3); - } - - void SavePosition() - { - if(stack >= MAX_XY_STACK) PrintStackError(">=",MAX_XY_STACK); - SavedX[stack]=Position[X]; - SavedY[stack++]=Position[Y]; - } - - void RecallPosition() - { - if(stack <= 0) PrintStackError(" <",0); - Position[X]=SavedX[--stack]; - Position[Y]=SavedY[stack]; - } - - void MoveTo(point pnt) - { - MoveAbsolute(pnt.xyValue[X],pnt.xyValue[Y]); - } - - void DrawTo(point pnt, VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - DrawAbsolute(pnt.xyValue[X],pnt.xyValue[Y],pg,pdf); - } - - void MoveAbsolute(int ptx, int pty) - { - int x,y; - x=ptx-Position[X]; - y=Position[Y]-pty; - MoveRelative(x,y); - } - - void DrawAbsolute(int ptx,int pty, VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - int x,y; - x=ptx-Position[X]; - y=Position[Y]-pty; - DrawRelative(x,y,pg,pdf); - } - - void DrawGridAbsolute(int ptx,int pty,VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - int x,y; - x=ptx-Position[X]; - y=Position[Y]-pty; - DrawGridRelative(x,y,pg,pdf); - } - - void relval(string ptr,int i) - { - ptr = string.Format("+{0}",i.ToString()); - } - - long DotsToPlotterUnitsX(int x) - { - long retval; - retval = (long)((1.0*x*HP_FudgeX) / 300.0 + .5); - return( retval ); - } - - long DotsToPlotterUnitsY(int y) - { - long retval; - retval = (long)((1.0*y*HP_FudgeY) / 300.0 + .5); - return( retval ); - } - - void MoveRelative(int x,int y) - { - long xl,yl; - Position[X]+=x; - Position[Y]-=y; - } - - void DrawRelative(int x,int y,VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { -// long xl,yl; - if(Visible == 0) - MoveRelative(x,y); - else - { - int toX, toY; - toX = Position[X]+x; - toY = Position[Y]-y; -// toY = Position[Y]+y; - VG_Line RelLine = new VG_Line(Position[X],Position[Y],toX,toY,CurPenWidth,pg); -// VG_Line RelLine = new VG_Line(Position[X],Position[Y],x,-y,CurPenWidth,pg); - Position[X]+=x; - Position[Y]-=y; -// Position[Y]+=y; - RelLine.ToPdf(pdf); -// if(HPGLMode != 0) -// { -// xl=DotsToPlotterUnitsX(x); -// yl=DotsToPlotterUnitsY(y); -// // !!! OUTPUT DRAW RELATIVE COMMAND -// MessageBox.Show("!!! OUTPUT DRAW RELATIVE COMMAND 1","DrawRelative()"); -// // fprintf(PRT,HPGL_Command[3],-xl,yl); /* */ -// } -// else -// MessageBox.Show("!!! OUTPUT DRAW RELATIVE COMMAND 2","DrawRelative()"); -// // !!! OUTPUT DRAW RELATIVE COMMAND -// // fprintf(PRT,graph_DrawRelative,x,y); - } - } - - void DrawGridRelative(int x, int y,VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - if(Visible == 0) - MoveRelative(x,y); - else - { -/*** - if(StupidHP == 2) - { //StupidHP==5 is RTF driver - if(x==0) BlockRelative(PrevPen,y); - else if(y==0) BlockRelative(x,PrevPen); - MoveRelative(x,y); - - } - else -***/ - DrawRelative(x,y,pg,pdf); - } - } - - void MoveForArc(point pnt) - { - Position[X]+=pnt.xyValue[X]; - Position[Y]-=pnt.xyValue[Y]; - } - - void DrawArc(double radius,double Sangle,double Eangle,point cp,int x, int y, VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { -#if DEBUG - Console.WriteLine("r={0} sAngle={1} eAngle={2} cp={3},{4} x={5} y={6}",radius,Sangle,Eangle,cp.xyValue[0],cp.xyValue[1],x,y); -#endif - // double inc=2000.,r1; - int dx,dy; - long radchk; - radchk=(long)radius; -// if(radchk > 15000L) - if(radchk > 72000L) - { - DrawAbsolute(x,y,pg,pdf); - return; - } - dx = x - cp.xyValue[X]; //jj -// dx=cp.xyValue[X]-Position[X]; -// dy=cp.xyValue[Y]-Position[Y]; - dy=Math.Abs(cp.xyValue[Y]-Position[Y]); //jj - //r1=radius; - /* - ** for the HP series of printers we recalculate the the x and y positions - ** because of a rounding error that will propagate every time - ** an arc segment is drawn. This has the nasty effect of incorrectly - ** drawing curves. - */ -// if( HPGLMode != 0 ) -// { -// Position[X] += (int)((radius*cos_deg(Eangle) - radius*cos_deg(Sangle))); -// Position[Y] -= (int)((radius*sin_deg(Sangle) - radius*sin_deg(Eangle))); -// } -// Sangle=90-Sangle; -// Eangle=90-Eangle; -// Sangle=180-Sangle; //jj -// Eangle=180-Eangle; //jj - -// if(HPGLMode != 0) -// { -// long xl,yl; -// xl=DotsToPlotterUnitsX(dx); -// yl=DotsToPlotterUnitsY(dy); - // fprintf(PRT,HPGL_Command[4],-xl,-yl,(int)(Sangle-Eangle)); -// VG_Arc arc = new VG_Arc(cp.xyValue[X]-dx,cp.xyValue[Y]+dy,dx*2,dy*2,(float)Sangle,(float)(Sangle - Eangle),5,pg); -// VG_Arc arc = new VG_Arc(cp.xyValue[X]-dx,cp.xyValue[Y]-dy,dx*2,dy*2,(float)Sangle,(float)(Sangle - Eangle),CurPenWidth,pg); - radius=radius; - float x1=cp.xyValue[X]-(float)radius; - float y1=cp.xyValue[Y]-(float)radius; - float w1=(float) radius * 2; - VG_Arc arc = new VG_Arc(x1,y1,w1,w1,(float)Sangle,(float)(Eangle - Sangle),CurPenWidth,pg); - //VG_Arc arc = new VG_Arc(0,0,5000,5000,(float)Sangle,(float)(Eangle - Sangle),CurPenWidth,pg); -#if DEBUG - Console.WriteLine("arc {0},{1},{2},{3},{4},{5}",x1,y1,w1,w1,(float)Sangle,(float)(Eangle - Sangle)); -#endif - arc.ToPdf(pdf); -// MessageBox.Show("!!! HPGL_COMMAND[4]","DrawArc()"); -// } -// else -// { -// SavePosition(); -// if(dx>0) -// MessageBox.Show("!!! graph_MoveRelativeXPos","DrawArc()"); -// // fprintf(PRT,graph_MoveRelativeXPos,dx); -// else -// MessageBox.Show("!!! graph_MoveRelativeXNeg","DrawArc()"); -// // fprintf(PRT,graph_MoveRelativeXNeg,-dx); -// if(dy>0) -// MessageBox.Show("!!! graph_MoveRelativeYPos","DrawArc()"); -// // fprintf(PRT,graph_MoveRelativeYPos,dy); -// else -// MessageBox.Show("!!! graph_MoveRelativeYNeg","DrawArc()"); -// // fprintf(PRT,graph_MoveRelativeYNeg,-dy); -// MessageBox.Show("!!! graph_ArcFunction1","DrawArc()"); -// // fprintf(PRT,graph_ArcFunction1, -// // radius-4,(radius+4),FMin(Sangle,Eangle),FMax(Sangle,Eangle)); -// RecallPosition(); -// } - } - - void DrawGridLine(int flag,int val,VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - ActiveBoxList curbox; - int v1,v2; - int BoxesIdx = 0; - int BoxPtrIdx = 0; -// FindBoxesinArea(val, !flag); - FindBoxesinArea(val,(flag==0)?1:0); - v1=Position[flag]; - if (AllActiveBoxes.Count > 0) - { - curbox=(ActiveBoxList)AllActiveBoxes[BoxesIdx]; - while(BoxesIdx < AllActiveBoxes.Count) - { - int my_x, my_y; - v2=((BoxList)curbox.BoxPtr[BoxPtrIdx]).BoxMinimum.xyValue[flag]; - my_x = (flag==X)? ( (v2 < printerunits[flag])? v2 : printerunits[flag] ) - : val; - my_y = (flag==Y) ? - ( (v2 < printerunits[flag]) ? v2 : printerunits[flag] ) - : val; - DrawGridAbsolute(my_x,my_y,pg,pdf); - v1=((BoxList)curbox.BoxPtr[BoxPtrIdx]).BoxMaximum.xyValue[flag]; - while((BoxesIdx < AllActiveBoxes.Count) && (((BoxList)curbox.BoxPtr[BoxPtrIdx]).BoxMinimum.xyValue[flag] < v1)) - { - v1=(((BoxList)curbox.BoxPtr[BoxPtrIdx]).BoxMaximum.xyValue[flag]); - BoxesIdx++; - if (BoxesIdx < AllActiveBoxes.Count) - curbox=(ActiveBoxList)AllActiveBoxes[BoxesIdx]; - } - MoveAbsolute((flag==X?v1:val),(flag==Y?v1:val)); - } - } - v2=printerunits[flag]; - if (v1 < v2) DrawGridAbsolute((flag==X?v2:val),(flag==Y?v2:val),pg,pdf); - FreeActiveBoxes(); - } - - void LogScale(int flag) - { - double newminimum, newmaximum, maxlimit=maximum[flag]*.9; -// int i; - newminimum=1.0; - while(newminimum < minimum[flag])newminimum *= 10.0; - while(newminimum > minimum[flag])newminimum /= 10.0; - newmaximum=10.0 * newminimum; - cycles[flag]=1; - while( newmaximum < maxlimit ) - { - newmaximum *= 10.0; - cycles[flag]++; - } - onecycle[flag]=printerunits[flag]/cycles[flag]; - minimum[flag]=newminimum; - maximum[flag]=newmaximum; - } - - void LinearScale(int flag) - { - double mantissa,nx; - double newminimum, newmaximum; - int power=0; - if( spcminor[flag] == 0 ) - minor[flag]=10; - else - minor[flag]=spcminor[flag]; - if( delta[flag] == 0 ) - { - delta[flag]=maximum[flag]-minimum[flag]; - mantissa=Math.Log10(delta[flag]); - while(mantissa < 1.2) - { - mantissa++; - power--; - } - while(mantissa > 1.2) - { - mantissa--; - power++; - } - if(mantissa < 0)mantissa=0; - nx=Math.Pow(10.0,mantissa); - if(nx > 5.0) - { - delta[flag]=1.0; - } - else if(nx > 3.001) - { // allow for roundoff - delta[flag]=0.5; - } - else if(nx > 2.001) - { // allow for roundoff - delta[flag]=0.25; - } - else - { - delta[flag]=0.2; - if(spcminor[flag] == 0) minor[flag]=8; - } - while(power>0) - { - power--; - delta[flag] *= 10.0; - } - while(power<0) - { - power++; - delta[flag] /= 10.0; - } - } - if(GridOnFlag==0 || GridOnFlag==1) - minor[flag]=1; - else if(GridOnFlag==2) - minor[flag] /= 2; - newminimum=((int)(0.01+minimum[flag]/delta[flag])) * delta[flag]; - if(newminimum > minimum[flag]+(delta[flag] * 0.001)) - newminimum-=delta[flag]; - newmaximum=((int)(maximum[flag]/delta[flag])) * delta[flag]; - if(newmaximum < maximum[flag]-(delta[flag] * 0.001)) - newmaximum+=delta[flag]; - minimum[flag]=newminimum; - maximum[flag]=newmaximum; - } - - void err_exit(string msg,string msg2) - { - MessageBox.Show(msg + "\n" + msg2 + "\n\n This p=Process Will Terminate","\n## ERROR ## - "); - Environment.Exit(255); - } - - void FindBoxesinArea(int ptval,int flag) - { - BoxList cptr; - int BoxesIdx =0; - while (BoxesIdx < AllBoxes.Count) - { - cptr= (BoxList)AllBoxes[BoxesIdx]; - if ( cptr.BoxMinimum.xyValue[flag] <= ptval && - cptr.BoxMaximum.xyValue[flag] >= ptval ) - AddBoxToActiveList(cptr); - BoxesIdx++; - } - } - - void AddBoxToActiveList(BoxList bptr) - { - ActiveBoxList NewActiveBox = new ActiveBoxList(); - int prevboxIdx = -1; - ActiveBoxList cbox; - - NewActiveBox.BoxPtr = new ArrayList(); - NewActiveBox.BoxPtr.Add(bptr); - int AllActBoxIdx = 0; - if( AllActiveBoxes.Count > 0 ) - { - cbox = (ActiveBoxList)AllActiveBoxes[AllActBoxIdx]; - prevboxIdx = 0; - while ( AllActBoxIdx < AllActiveBoxes.Count && - (cbox.BoxPtr.Count > 0 && (bptr.BoxMinimum.xyValue[DrawDirection] > - ((BoxList)cbox.BoxPtr[AllActBoxIdx]).BoxMinimum.xyValue[DrawDirection])) ) - { - prevboxIdx=AllActBoxIdx; - AllActBoxIdx++; - if (AllActBoxIdx < AllActiveBoxes.Count) - cbox=(ActiveBoxList)AllActiveBoxes[AllActBoxIdx]; - else - prevboxIdx = -1; // will append to end of list - } - if (AllActBoxIdx < AllActiveBoxes.Count) - AllActiveBoxes.Insert(AllActBoxIdx,NewActiveBox); - } - if(prevboxIdx == -1) - AllActiveBoxes.Add(NewActiveBox); - - } - - void FreeActiveBoxes() - { - AllActiveBoxes.Clear(); - } - - void GenGrid(int flag,int ss,int ee,int dd,int w,int lw,int goffset,VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - int val,wn,valn; - double p2; -// double p2,size; - int n,dn,MinorGrid=0; - if((GridOnFlag * lw)<=1)return; - if (ee/ss == 10) MinorGrid=2; - n=ss; - p2=n; -// w = (int)(Math.Log10(ee/p2) / w); //jj - w = (int)(w / Math.Log10(ee/p2)); //jj -// w /= (int)Math.Log10(ee/p2); - val=(int)(Math.Log10(p2/ss)*w + goffset); - MoveAbsolute((flag==X?val:0),(flag==Y?val:0)); - DrawGridLine((flag==0)?1:0,val,pg,pdf); - if((GridOnFlag * lw) == 2)return; - SetPenDiameter(lw); - while(n < ee) - { - n+=dd; - p2=n; - valn=(int)(Math.Log10(p2/ss)*w + goffset); - wn=valn-val; - if(wn > DPI/20 && lw > 1) - { - if(wn > DPI*2/5)dn=dd/10; - else if(wn > DPI/5) dn=dd/5; - else dn=dd/2; - GenGrid(flag,n-dd,n,dn,wn,lw-1,val,pg,pdf); - wn=0; - } - val=valn; - if (flag ==Y) - val = printerunits[Y] - val; //jj - MoveAbsolute((flag==X?val:0),(flag==Y?val:0)); - if((MinorGrid != 0) && (MinorGrid < 10)) - { -// SavePosition(); -// double SaveFontPitch = FontPitch; //jj - // fprintf(PRT,graph_MinorMark[flag],MinorGrid++); -// if (flag == 0) -// MoveRelative((int)(15 * ConvertToTwips),(int)(60 * ConvertToTwips)); // these numbers are in dots -// else -// MoveRelative((int)(-30 * ConvertToTwips),(int)(9 * ConvertToTwips)); -// FontPitch = 5.0; //jj -// if (flag == 0) -// MoveRelative(0,160); // these numbers are in dots -//// MoveRelative(0,40); // these numbers are in dots -// else -// MoveRelative(-30,0); -// SavePosition(); -// if (flag == 0) -// MoveRelative(30,0); // these numbers are in dots -// else -// MoveRelative(0,0); - WriteValue(flag,MinorGrid++,true,pg,pdf); //these numbers are in dots - // FontPitch = SaveFontPitch; //jj -// RecallPosition(); - } - DrawGridLine((flag==0)?1:0,val,pg,pdf); - } - } - - void PrintText(string txt,VG.Page pg, C1.C1Pdf.C1PdfDocument pdf) - { - StringBuilder tstr = new StringBuilder(txt); -// int ptr,sptr; - int ptr; - SavePosition(); /* 'cause TEXT...,E screws up position! */ - ptr=0; -// sptr=0; - while (ptr < tstr.Length) -// while(ptr < txt.Length) - { - if ("`".IndexOf(tstr[ptr]) >= 0) -// if("`".IndexOf(txt[ptr]) >= 0 ) - { - string SpecialChar=""; -// int len = 0; - switch ( (byte)tstr[ptr]) -// switch ( (byte)txt[ptr] ) - { - case 0x60 : /* backquote */ - case 0xF8 : SpecialChar = "\u00B0"; /* degree symbol */ - break; - case 0xF2 : SpecialChar= "\u2265"; /* greaterthanequal */ - break; - case 0xF3 : SpecialChar= "\u2264"; /* lessthanequal */ - break; - } - tstr.Remove(ptr,1); - tstr.Insert(ptr,SpecialChar); - ptr++; -// len = txt.Substring(sptr,ptr-sptr).Length; -// GraphText( txt.Substring(sptr,ptr-sptr),pg,pdf); -// MoveRelative(len * CWIDEDOTS,0); -// sptr = ++ptr; -// GraphText(SpecialChar,pg,pdf); -// MoveRelative(CWIDEDOTS,0); - -// //!!! ADD CALLS TO OUTPUT THESE STRINGS -// MessageBox.Show("ADD CALLS TO OUTPUT SPECIAL CHARS","PrintText()"); -// // fprintf(PRT,graph_PrntStr[2]); -// // fprintf(PRT,"%c",GraphicChar&0x7F); -// // fprintf(PRT,graph_PrntStr[3]); - } - else - { - ptr++; - } - } - GraphText(tstr.ToString(),pg,pdf); -// if( ptr > sptr ) GraphText( txt.Substring(sptr,ptr-sptr),pg,pdf); - RecallPosition(); - } - - void FreeBoxList() - { - AllBoxes.Clear(); - } - - void FreeLineList() - { - AllPlots.Clear(); - } - -// void FreePointList(PointList ptr) -// { -// PointListArray.Clear(); -// // struct PointList *bptr,*nptr; -// // bptr=ptr; -// // while(bptr) -// // { -// // nptr=bptr->NextPoint; -// // Zfree(&bptr->APoint); -// // Zfree(&bptr); -// // bptr=nptr; -// // } -// } - - void Init_Graphic_Vars() - { - int i; - SavedX = new int[MAX_XY_STACK]; - SavedY = new int[MAX_XY_STACK]; - LinesUsed=0; /* Number lines used by graph, in dots */ - Visible=1; - ShadowFlag = 0; - // _setmem(valuestring,100,'\0'); - // _setmem(powerstring,100,'\0'); - CurPenWidth = 0; - DrawDirection = -1; - AxisTitles[X] = null; - AxisTitles[Y] = null; - AxisLabel[0] = 1; - AxisLabel[1] = 1; - EndFlag=0; - for (i=0;i -1) - { - // print text up to the superscript - tstr = txt.Substring(sidx,tidx-sidx); - drawText = new VG_Text(Xpos,Ypos,(int)FontPitch,tstr,"Letter Gothic","","","",pg); - drawText.ToPdf(pdf); - Xpos+= (CWIDEDOTS * tstr.Length); - tidx+= SuperScript[0].Length; - idx = tidx; - sidx = idx; - tidx = txt.IndexOf(SuperScript[1],idx); - if (tidx > 0) - { - // switch font pitch, move up some, and print the superscript text - tstr = txt.Substring(sidx,tidx - sidx); -// Xpos+= (CWIDEDOTS * tstr.Length); - Ypos -= (CHIGHDOTS / 2); // move up half a char heigth - drawText = new VG_Text(Xpos,Ypos,(int)(FontPitch/2),tstr,"Letter Gothic","","","",pg); - drawText.ToPdf(pdf); - Ypos += (CHIGHDOTS / 2); // move back down - Xpos += ((CWIDEDOTS/2) * tstr.Length); // positon half the width of the string - tidx += SuperScript[1].Length; - idx = tidx; - sidx = idx; - continue; // go back to beginning of while loop - } - } - else if ((tidx = txt.IndexOf(SubScript[0],idx)) > -1) - { - // print text up to the superscript - tstr = txt.Substring(sidx,tidx-sidx); - drawText = new VG_Text(Xpos,Ypos,(int)FontPitch,tstr,"Letter Gothic","","","",pg); - drawText.ToPdf(pdf); - Xpos+= (CWIDEDOTS * tstr.Length); - tidx+= SubScript[0].Length; - idx=tidx; - sidx = idx; - tidx = txt.IndexOf(SubScript[1],idx); - if (tidx > 0) - { - // switch font pitch, move up some, and print the superscript text - tstr = txt.Substring(sidx,tidx - sidx); -// Xpos+= (CWIDEDOTS * tstr.Length); -// Ypos += (CHIGHDOTS / 2); // move down half a char heigth - drawText = new VG_Text(Xpos,Ypos,(int)(FontPitch/2),tstr,"Letter Gothic","","","",pg); - drawText.ToPdf(pdf); -// Ypos -= (CHIGHDOTS / 2); // move back up - Xpos += ((CWIDEDOTS/2) * tstr.Length); // positon half the width of the string - tidx += SubScript[1].Length; - idx = tidx; - sidx = idx; - continue; // go back to beginning of while loop - } - } - else - { - idx++; - } - } // end while - - if (sidx < txt.Length) - { - tstr = txt.Substring(sidx); - drawText = new VG_Text(Xpos,Ypos,(int)FontPitch,tstr,"Letter Gothic","","","",pg); - drawText.ToPdf(pdf); - } - } - - -// public XYPlot() -// { -// // -// // TODO: Add constructor logic here -// // -// AxisLabel[0] = 1; -// AxisLabel[1] = 1; -// } - - public XYPlot(string fname, string PdfFileName) - { - char Command, PrevCommand = ' '; - Init_Graphic_Vars(); - LoadBuff(fname); - FixBuffIfNeeded(); - GetScaleInfo(); - - C1.C1Pdf.C1PdfDocument c1pdf = new C1.C1Pdf.C1PdfDocument(); - c1pdf.FontType = C1.C1Pdf.FontTypeEnum.Embedded; // embed fonts - - VG.Page pg = new Page(true,(float)(1440),(float)(1440)); - - while ((Command = char.ToUpper(getchr())) != '\0') - { - LineDiv = 0; - LineFlag = CURVE; - ShadowFlag = 0; - switch (Command) - { - case 'T': - ShadowFlag+=2; // 2 for no box - GetBoxParameters(); - break; - case 'W': - ShadowFlag++; // 1 for shadow box - GetBoxParameters(); - break; - case 'B': - GetBoxParameters(); // 0 for box - break; - case 'D': - LineDiv = getint(); - LineFlag = STRAIGHT; - GetLineParameters(); - break; - case 'L': - LineFlag = STRAIGHT; - GetLineParameters(); - break; - case 'C': - GetLineParameters(); - break; - case 'X': - GetAxisTitle(X); - break; - case 'Y': - GetAxisTitle(Y); - break; - case 'Z': - YLandScape = 1; - YTitleOrigin = GetPair(USER); - GetAxisTitle(Y); - break; - case 'A': - AxisLabel[0] = getint(); - AxisLabel[1] = getint(); - break; - default: - if (PrevCommand.Equals(null)) - MessageBox.Show("Check the first line of the X/Y Plot definition.","Unrecognized Graph Command"); - else - MessageBox.Show(string.Format("Problem with the X/Y Plot Command after {0}",PrevCommand.ToString()),"Unrecognized Graph Command"); - // sprintf(LineBuff,"Unrecognized Graph Command: '%c'",command); - // err_exit(LineBuff,0); - break; - } - PrevCommand = Command; - } - Graphics(1); - GenerateGrid(pg,c1pdf); - DoAxisTitles(pg,c1pdf); - DoBoxes(pg,c1pdf); - DrawLines(pg,c1pdf); - Graphics(0); - c1pdf.Save(PdfFileName); - FreeBoxList(); - FreeLineList(); - - CloseGraph(); -// return(LinesUsed); - } - } - -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/XYPlots.csproj b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/XYPlots.csproj deleted file mode 100644 index 28128396..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/XYPlots.csproj +++ /dev/null @@ -1,122 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/XYPlots.sln b/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/XYPlots.sln deleted file mode 100644 index 53fe3202..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ZZZNotUsed/XYPlots/XYPlots.sln +++ /dev/null @@ -1,29 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XYPlots", "XYPlots.csproj", "{04E168D0-9CC7-43D9-A9F1-93E481EA86A3}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test XYPlots", "Test XYPlots\Test XYPlots.csproj", "{2BB292F1-507C-492F-AE66-CBEA54632B59}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Debug.ActiveCfg = Debug|.NET - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Debug.Build.0 = Debug|.NET - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Release.ActiveCfg = Release|.NET - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Release.Build.0 = Release|.NET - {2BB292F1-507C-492F-AE66-CBEA54632B59}.Debug.ActiveCfg = Debug|.NET - {2BB292F1-507C-492F-AE66-CBEA54632B59}.Debug.Build.0 = Debug|.NET - {2BB292F1-507C-492F-AE66-CBEA54632B59}.Release.ActiveCfg = Release|.NET - {2BB292F1-507C-492F-AE66-CBEA54632B59}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/AssemblyInfo.cs b/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/AssemblyInfo.cs deleted file mode 100644 index 7e3b35a5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/AssemblyInfo.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// diff --git a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/AssemblyInfo.cs.bak b/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/AssemblyInfo.cs.bak deleted file mode 100644 index a9833df8..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/AssemblyInfo.cs.bak +++ /dev/null @@ -1,57 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.1.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ImageDialog.cs b/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ImageDialog.cs deleted file mode 100644 index 381a64c5..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ImageDialog.cs +++ /dev/null @@ -1,119 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ImageDialog.cs $ $Revision: 2 $ - * $Author: Kathy $ $Date: 1/08/03 10:24a $ - * - * $History: ImageDialog.cs $ - * - * ***************** Version 2 ***************** - * User: Kathy Date: 1/08/03 Time: 10:24a - * Updated in $/LibSource/ctlXMLEditLib - * added header - *********************************************************************************************/ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace ctlXMLEditLib -{ - /// - /// Summary description for ViewImage - View Image pops up a dialog - /// which contains a display of the image file. - /// - public class ImageDialog : System.Windows.Forms.Form - { - private System.Windows.Forms.PictureBox roImage; - private System.Windows.Forms.Button btnClose; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - public ImageDialog(string filename) - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - Image.GetThumbnailImageAbort myCallback = - new Image.GetThumbnailImageAbort(ThumbnailCallback); - - Bitmap bm = new Bitmap(filename); - SizeF sizef = new SizeF(bm.Width/bm.HorizontalResolution, - bm.Height/bm.VerticalResolution); - // 504 & 384 is the size of the image window (roImage). - float fscale = Math.Min(504/sizef.Width,384/sizef.Height); - sizef.Width *= fscale; - sizef.Height *= fscale; - Image thmb = bm.GetThumbnailImage((int)sizef.Width, (int)sizef.Height, myCallback, IntPtr.Zero ); - - this.roImage.Image = thmb; - } - - public bool ThumbnailCallback() - { - return false; - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.roImage = new System.Windows.Forms.PictureBox(); - this.btnClose = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // roImage - // - this.roImage.Location = new System.Drawing.Point(32, 8); - this.roImage.Name = "roImage"; - this.roImage.Size = new System.Drawing.Size(504, 384); - this.roImage.TabIndex = 0; - this.roImage.TabStop = false; - // - // btnClose - // - this.btnClose.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnClose.Font = new System.Drawing.Font("Tahoma", 11.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((System.Byte)(0))); - this.btnClose.Location = new System.Drawing.Point(240, 432); - this.btnClose.Name = "btnClose"; - this.btnClose.Size = new System.Drawing.Size(112, 24); - this.btnClose.TabIndex = 1; - this.btnClose.Text = "Close"; - // - // ImageDialog - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(568, 477); - this.Controls.AddRange(new System.Windows.Forms.Control[] { - this.btnClose, - this.roImage}); - this.Name = "ImageDialog"; - this.Text = "View Image"; - this.ResumeLayout(false); - - } - #endregion - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ImageDialog.resx b/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ImageDialog.resx deleted file mode 100644 index a3863deb..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ImageDialog.resx +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ImageDialog - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ZoomDialog.cs b/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ZoomDialog.cs deleted file mode 100644 index c2f238c7..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ZoomDialog.cs +++ /dev/null @@ -1,151 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ZoomDialog.cs $ $Revision: 3 $ - * $Author: Kathy $ $Date: 12/06/02 11:56a $ - * - * $History: ZoomDialog.cs $ - * - * ***************** Version 3 ***************** - * User: Kathy Date: 12/06/02 Time: 11:56a - * Updated in $/LibSource/ctlXMLEditLib - * change font for zoom - * - * ***************** Version 2 ***************** - * User: Kathy Date: 11/04/02 Time: 1:38p - * Updated in $/LibSource/ctlXMLEditLib - * wasn't displaying text & make text fixed font for alignment - * - * ***************** Version 1 ***************** - * User: Jsj Date: 8/23/02 Time: 3:03p - * Created in $/LibSource/ctlXMLEditLib - *********************************************************************************************/ - -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; - -namespace ctlXMLEditLib -{ - /// - /// Summary description for ZoomDialog. - /// - /// - - public class ZoomDialog : System.Windows.Forms.Form - { - private System.Windows.Forms.Button btnSave; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.TextBox tbZoom; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private string edittext; - - public string ZoomText - { - get - { - return tbZoom.Text; - } - } - - public ZoomDialog(string zmtext) - { - // - // Required for Windows Form Designer support - // - edittext = zmtext; - InitializeComponent(); - tbZoom.Text = zmtext; - // - // TODO: Add any constructor code after InitializeComponent call - // - } - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if(components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tbZoom = new System.Windows.Forms.TextBox(); - this.btnSave = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // tbZoom - // - this.tbZoom.Font = new System.Drawing.Font("Letter Gothic", 8.249999F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tbZoom.Location = new System.Drawing.Point(24, 16); - this.tbZoom.Multiline = true; - this.tbZoom.Name = "tbZoom"; - this.tbZoom.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbZoom.Size = new System.Drawing.Size(576, 392); - this.tbZoom.TabIndex = 0; - // - // btnSave - // - this.btnSave.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnSave.Location = new System.Drawing.Point(80, 440); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(80, 32); - this.btnSave.TabIndex = 1; - this.btnSave.Text = "Save"; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(192, 440); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(80, 32); - this.btnCancel.TabIndex = 2; - this.btnCancel.Text = "Cancel"; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // ZoomDialog - // - this.AutoScaleBaseSize = new System.Drawing.Size(5, 13); - this.ClientSize = new System.Drawing.Size(616, 485); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnSave); - this.Controls.Add(this.tbZoom); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.Name = "ZoomDialog"; - this.Text = "Zoom"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - #endregion - private void btnSave_Click(object sender, System.EventArgs e) - { - this.Close(); - } - private void btnCancel_Click(object sender, System.EventArgs e) - { - this.Close(); - } - - } -} diff --git a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ZoomDialog.resx b/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ZoomDialog.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ZoomDialog.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEdit.cs b/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEdit.cs deleted file mode 100644 index 276ac97c..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEdit.cs +++ /dev/null @@ -1,1670 +0,0 @@ -/********************************************************************************************* - * Copyright 2002 - Volian Enterprises, Inc. All rights reserved. - * Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE - * ------------------------------------------------------------------------------ - * $Workfile: ctlXMLEdit.cs $ $Revision: 36 $ - * $Author: Jsj $ $Date: 7/06/06 9:32a $ - * - * $History: ctlXMLEdit.cs $ - * - * ***************** Version 36 ***************** - * User: Jsj Date: 7/06/06 Time: 9:32a - * Updated in $/LibSource/ctlXMLEditLib - * needed full path to read ROAPP.INI - * - * ***************** Version 35 ***************** - * User: Jsj Date: 5/03/05 Time: 11:44a - * Updated in $/LibSource/ctlXMLEditLib - * - * ***************** Version 34 ***************** - * User: Jsj Date: 7/02/03 Time: 9:26a - * Updated in $/LibSource/ctlXMLEditLib - * made messagebox calls modal by removing the parent window reference - * - * ***************** Version 33 ***************** - * User: Kathy Date: 6/11/03 Time: 2:01p - * Updated in $/LibSource/ctlXMLEditLib - * Bug fix B2003-045 (save date as part of graphic) - * - * ***************** Version 32 ***************** - * User: Kathy Date: 5/21/03 Time: 12:41p - * Updated in $/LibSource/ctlXMLEditLib - * B2003-036: save of group data to ro if both have a common field - * - * ***************** Version 31 ***************** - * User: Kathy Date: 2/07/03 Time: 11:19a - * Updated in $/LibSource/ctlXMLEditLib - * Error on pathname compares if long filename - * - * ***************** Version 30 ***************** - * User: Kathy Date: 2/03/03 Time: 10:36a - * Updated in $/LibSource/ctlXMLEditLib - * UI Improve - * - * ***************** Version 29 ***************** - * User: Kathy Date: 1/22/03 Time: 12:17p - * Updated in $/LibSource/ctlXMLEditLib - * duplicate/save as bug - * - * ***************** Version 28 ***************** - * User: Kathy Date: 1/15/03 Time: 1:56p - * Updated in $/LibSource/ctlXMLEditLib - * sizing of labels & form - * - * ***************** Version 27 ***************** - * User: Kathy Date: 1/08/03 Time: 10:05a - * Updated in $/LibSource/ctlXMLEditLib - * Add view image - * - * ***************** Version 26 ***************** - * User: Jsj Date: 1/06/03 Time: 11:29a - * Updated in $/LibSource/ctlXMLEditLib - * INI file logic - * - * ***************** Version 25 ***************** - * User: Jsj Date: 1/02/03 Time: 3:47p - * Updated in $/LibSource/ctlXMLEditLib - * Added logic to check INI files for default graphics file extension - * - * ***************** Version 24 ***************** - * User: Jsj Date: 12/17/02 Time: 4:51p - * Updated in $/LibSource/ctlXMLEditLib - * fixed date/time for graphic files - * - * ***************** Version 23 ***************** - * User: Kathy Date: 12/16/02 Time: 12:11p - * Updated in $/LibSource/ctlXMLEditLib - * once data is saved, don't flag it as changed - * - * ***************** Version 22 ***************** - * User: Kathy Date: 12/13/02 Time: 10:05a - * Updated in $/LibSource/ctlXMLEditLib - * bugs with combo (& more than one field with data) - * - * ***************** Version 21 ***************** - * User: Jsj Date: 12/10/02 Time: 3:35p - * Updated in $/LibSource/ctlXMLEditLib - * Default Graphic file extension fix - * - * ***************** Version 20 ***************** - * User: Kathy Date: 12/10/02 Time: 2:24p - * Updated in $/LibSource/ctlXMLEditLib - * fieldname special chars - * - * ***************** Version 19 ***************** - * User: Kathy Date: 12/02/02 Time: 8:28a - * Updated in $/LibSource/ctlXMLEditLib - * fieldname replace chars - * - * ***************** Version 18 ***************** - * User: Kathy Date: 11/26/02 Time: 11:08a - * Updated in $/LibSource/ctlXMLEditLib - * fix required bug on combo type & fix improve sizing - * - * ***************** Version 17 ***************** - * User: Kathy Date: 11/20/02 Time: 11:36a - * Updated in $/LibSource/ctlXMLEditLib - * zoom button moved on main form - * - * ***************** Version 16 ***************** - * User: Kathy Date: 11/19/02 Time: 11:33a - * Updated in $/LibSource/ctlXMLEditLib - * zoom tool tip & tab order - * - * ***************** Version 15 ***************** - * User: Kathy Date: 10/24/02 Time: 11:15a - * Updated in $/LibSource/ctlXMLEditLib - * some image file date (still needs fixed) - * - * ***************** Version 14 ***************** - * User: Kathy Date: 10/15/02 Time: 2:14p - * Updated in $/LibSource/ctlXMLEditLib - * required fields bug - * - * ***************** Version 13 ***************** - * User: Kathy Date: 10/11/02 Time: 11:35a - * Updated in $/LibSource/ctlXMLEditLib - * Required fields & restore data - * - * ***************** Version 12 ***************** - * User: Kathy Date: 10/10/02 Time: 10:43a - * Updated in $/LibSource/ctlXMLEditLib - * console.writeline->messagebox - * - * ***************** Version 11 ***************** - * User: Kathy Date: 10/07/02 Time: 11:26a - * Updated in $/LibSource/ctlXMLEditLib - * graphics image file support - * - * ***************** Version 10 ***************** - * User: Kathy Date: 9/27/02 Time: 1:12p - * Updated in $/LibSource/ctlXMLEditLib - * fix digit as first char in fieldname - * - * ***************** Version 9 ***************** - * User: Jsj Date: 9/26/02 Time: 12:12p - * Updated in $/LibSource/ctlXMLEditLib - * removed reference - * - * ***************** Version 8 ***************** - * User: Jsj Date: 9/26/02 Time: 11:09a - * Updated in $/LibSource/ctlXMLEditLib - * added reference to VLNXML - * - * ***************** Version 7 ***************** - * User: Kathy Date: 9/25/02 Time: 9:54a - * Updated in $/LibSource/ctlXMLEditLib - * remove xmlvln - * - * ***************** Version 6 ***************** - * User: Kathy Date: 9/19/02 Time: 9:59a - * Updated in $/LibSource/ctlXMLEditLib - * fix minor bugs - * - * ***************** Version 5 ***************** - * User: Kathy Date: 9/11/02 Time: 1:13p - * Updated in $/LibSource/ctlXMLEditLib - * vlnxml - * - * ***************** Version 4 ***************** - * User: Kathy Date: 9/10/02 Time: 12:17p - * Updated in $/LibSource/ctlXMLEditLib - * modify xpath expression to find field contents - * - * ***************** Version 3 ***************** - * User: Kathy Date: 9/05/02 Time: 12:41p - * Updated in $/LibSource/ctlXMLEditLib - * dev - * - * ***************** Version 2 ***************** - * User: Kathy Date: 8/30/02 Time: 9:42a - * Updated in $/LibSource/ctlXMLEditLib - * dev - * - * ***************** Version 1 ***************** - * User: Jsj Date: 8/23/02 Time: 3:02p - * Created in $/LibSource/ctlXMLEditLib - *********************************************************************************************/ - -using System; -using System.IO; -using System.Collections; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Windows.Forms; -using System.Drawing.Imaging; -using System.Runtime.InteropServices; -using System.Xml; -using System.Xml.Schema; -using System.Text; -using RODBInterface; -using Org.Mentalis.Files; -//using IniFileIO; - - - -namespace ctlXMLEditLib -{ - /// - /// This windows control takes an input XML Schema and displays windows controls for the - /// schema elements. - /// If XML is also passed in, it uses that for the data. - /// Methods supported are: - /// ctlXMLEdit(VlnXmlElement myelem, XmlSchema myschema) - /// Constructor - VlnXmlElement contains data for edit and contains top - /// - document node if creating new xml data. - /// - XmlSchema contains field definitions - /// bool SaveData - /// - saves data in windows into passed in VlnXmlElement. - /// - returns true if successful, false if failed. - /// - /// - /// - public class ctlXMLEdit : System.Windows.Forms.UserControl - { - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - private Random random = new Random(); - private XmlSchema myXmlSchema; - private int screenx; - private int screeny; - private int tabindx; - private bool mysavexml; - private Hashtable myHT; - private bool dosaveflag; - private VlnXmlElement editelem; - private XmlDocument editdoc; - private TextBox zoomtextbox; - // the following is used for handling images. Note that if we want to have more - // than one image defined in an ro, this should be become a list. - private TextBox GraphicsFiletextbox; - private TextBox GraphicsWdtextbox; - private TextBox GraphicsHttextbox; - private System.Windows.Forms.Button btnFindFile; - private string GraphicsText; - private ToolTip zmtooltip; - private string DefaultGraphicFileExtension; - int MaxWidth; // largest textbox/groupbox width to size control. - int himage, wimage; - int hmin, hmax; - int wmin, wmax; - int MAXLT = 60; // make these defines - int MAXWT = 84; - int STDCPI = 12; - int STDLPI = 6; - int DPPL = (720/6); - int DPPC = (720/12); - int height, width; - - // use this struct to define attributes for the text box fields, storing - // the pattern, radio button association, required field flag, etc. - struct TextBoxAttrTag - { - - bool required; //whether the field is required - string req_msg; //message to print if required, but not set - string pattern; //pattern for validation - RadioButton radio; // if this text box has associated radio button - bool imagechild; //whether this field is a subchild of an image - string imagename; //if subchild of image, name of image parent (for save) - string imagedate; //if this was filename, save the date/time stamp - public TextBoxAttrTag(bool reqd, string ptn, RadioButton rd, bool img, - string imgname, string imgdate) - { - this.req_msg = null; - this.required = reqd; - this.pattern = ptn; - this.radio = rd; - this.imagechild = img; - this.imagename = imgname; - this.imagedate = imgdate; - } - public void SetPattern(string pattern) {this.pattern = pattern;} - public void SetRequired(bool req) {this.required = req;} - public void SetRequiredMessage(string ireq_msg) {this.req_msg = ireq_msg;} - public string GetPattern { get {return pattern;}} - public string GetRequiredMessage { get {return req_msg;}} - public bool GetRequired { get {return required;}} - public RadioButton GetRadio { get {return radio;}} - public bool GetImageChild { get {return imagechild;}} - public string GetImageName { get {return imagename;}} - public string GetImageDate { get {return imagedate;}} - public void SetImageDate(string imgdate) {this.imagedate = imgdate;} - } - - public ctlXMLEdit(VlnXmlElement myelem, XmlSchema myschema, ArrayList reqfields) - { - // This call is required by the Windows.Forms Form Designer. - InitializeComponent(); - zmtooltip = new ToolTip(); - myHT = new Hashtable(); - tabindx=0; - screenx=8; - screeny=10; - MaxWidth = 0; - mysavexml = false; - dosaveflag = false; - editelem = myelem; - editdoc = myelem.OwnerDocument; - myXmlSchema = myschema; - GraphicsText = null; - GraphicsFiletextbox = null; -// DefaultGraphicFileExtension = ".TIF"; // default graphics file extension - string ApplicationPath = Application.StartupPath; - string ROINI = Directory.GetCurrentDirectory()+ "\\ROAPP.INI"; - - // Get the default file extension for graphic files -// DefaultGraphicFileExtension = TheIniFile.GetINIKeyValueStr("ROApp","Extention","",5,"ROAPP.INI"); - // Bug fix: B2006-025 - // needed to pass the full path of ROAPP.INI - IniReader in1 = new IniReader(ROINI); - DefaultGraphicFileExtension = in1.ReadString("ROApp","Extention",""); - if (DefaultGraphicFileExtension.Equals("")) - { - string ApplPathUp = ApplicationPath.ToUpper(); - int idx = ApplPathUp.IndexOf("VE-PROMS.NET\\BIN"); - if (idx >= 0) - { - string PromsINI = ApplicationPath.Substring(0, idx); - PromsINI += "VE-PROMS\\VEPROMS.INI"; - IniReader in2 = new IniReader(PromsINI); - DefaultGraphicFileExtension = in2.ReadString("Graphics", "defaultext", ".TIF"); - } - else - DefaultGraphicFileExtension = ".TIF"; - } -// if (File.Exists(PromsINI)) -// DefaultGraphicFileExtension = TheIniFile.GetINIKeyValueStr("Graphics","defaultext",".TIF",5,PromsINI); -// if (File.Exists("ROAPP.INI")) -// DefaultGraphicFileExtension = TheIniFile.GetINIKeyValueStr("ROApp","Extention",".TIF",5,"ROAPP.INI"); - if (!DefaultGraphicFileExtension.StartsWith(".")) - DefaultGraphicFileExtension = "." + DefaultGraphicFileExtension; - - // Put out window fields based on schema fields. - DisplaySchemaControls(myXmlSchema); - - // Add field data to fields. - DisplayFieldContents((XmlNode) myelem); - - // Set required fields based on list. (can add message later). - SetRequiredFields(reqfields); - dosaveflag=true; - } - - // set the required fields tag on those fields which are included in the passed - // in required fields list. - private void DoSet(TextBox hwnd, string msg) - { - if (hwnd == null) return; - if (hwnd.Tag != null) - { - TextBoxAttrTag tag = (TextBoxAttrTag) hwnd.Tag; - tag.SetRequired(true); - tag.SetRequiredMessage(msg); - hwnd.Tag = tag; - } - } - - private void SetRequiredFields(ArrayList reqfields) - { - Object o; - TextBox hwnd; - string field, msg; - int indx; - foreach (string strfld in reqfields) - { - indx = strfld.IndexOf("\t"); // message is stored after field, tab delim - field = strfld.Substring(0,indx); - msg = strfld.Substring(indx,strfld.Length-indx); - - o = null; - o = myHT[field]; - if (o == null) - { - // there may be an a,b,c,d tacked on to represent combo types. - // try them. if we have a combo type, then set them all as required - // because the checker will only check the one that is visible. - o = myHT[field+"a"]; - if (o != null) // set all combo types required, the checker - { - DoSet((TextBox)o,msg); - DoSet((TextBox)myHT[field+"b"],msg); - DoSet((TextBox)myHT[field+"c"],msg); - DoSet((TextBox)myHT[field+"d"],msg); - } - } - else if (o != null) - { - hwnd = (TextBox) o; - if (hwnd.Tag != null) - { - TextBoxAttrTag tag = (TextBoxAttrTag) hwnd.Tag; - tag.SetRequired(true); - tag.SetRequiredMessage(msg); - hwnd.Tag = tag; - } - } - } - } - - // Given a parent XmlNode, walk through the child nodes & add the text for the - // node to the associated text box. - private void DisplayFieldContents(XmlNode node) - { - Object o; - TextBox hwnd; - XmlNode nd; - // if we have an image, check it for validity, i.e. file exists, etc.?? - foreach (string str in myHT.Keys) - { - o = myHT[str]; - hwnd = (TextBox) o; - nd = node.SelectSingleNode(str); - // if not found with just the string, search the tree. - if (nd==null)nd = node.SelectSingleNode("*/"+str); - if (nd != null) - { - hwnd.Text = nd.InnerText; // set the field's text from XML - - // check if this window has a button name as part of its tag. If - // so it's a combo type & the radio button/visibility may need to - // be reset. If this button is not checked (during setup), then - // check it. By setting it's Checked property to true, an event - // is thrown which causes the code to be run which turns off/on - // visibility of the text boxes. - if (hwnd.Tag != null) - { - TextBoxAttrTag tag = (TextBoxAttrTag) hwnd.Tag; - RadioButton radio; - radio = tag.GetRadio; - - if (radio != null ) - { - // Use a tag on the groupbox to know that the radio button - // was set - the first xml element in the group is the - // active one. - GroupBox gp = (GroupBox) radio.Parent; - if (gp.Tag == null && radio.Checked == false) - { - // see if this is the first member of the group in the - // xml node. - string nmgr = str.Substring(0,str.Length-1); - XmlNode grpnd = (XmlNode) editelem.FirstChild; - bool first = true; - while (grpnd != null) - { - if (grpnd.Name.Substring(0,grpnd.Name.Length-1) == nmgr) - { - if (grpnd.Name == str) - { - if (first) - { - radio.Checked = true; - radio.Parent.Tag = true; - } - break; - } - first = false; - } - grpnd = grpnd.NextSibling; - } - } - } - bool img; - img = tag.GetImageChild; - if (img==true && str == "Image_Filename") - { - int indx = hwnd.Text.IndexOf(" "); - if (indx>=0) - { - tag.SetImageDate(hwnd.Text.Substring(0,indx)); - hwnd.Tag = tag; - hwnd.Text = hwnd.Text.Substring(indx+1,hwnd.Text.Length-indx-1); - } - } - if (img==true && str == "Image_Width") - width = System.Convert.ToInt32(hwnd.Text); - if (img==true && str == "Image_Height") - height = System.Convert.ToInt32(hwnd.Text); - } - } - } - // if we're doing an image file & all data has been set, update the - // height/width data of the image. - if (GraphicsFiletextbox != null && GraphicsFiletextbox.Text != "") UpdateHtWd(); - } - public TextBox GetGraphicsFiletextbox() - { - return GraphicsFiletextbox; - } - public int GetMaxWidth() - { - // if MaxWidth is small, a scroll bar appears below the fields - // so make this a bit larger, so a scroll bar doesn't appear - if (MaxWidth<30) return MaxWidth+60; - return MaxWidth+30; - } - public int GetMaxLength() - { - return screeny+50; - } - public void SetNotSaved() - { - mysavexml = true; - } - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - zmtooltip.RemoveAll(); - if( disposing ) - { - if( components != null ) - components.Dispose(); - } - base.Dispose( disposing ); - } - - // RestoreData restores the data in the text boxes to be that which was originally - // sent into the control (ctlXMLEdit) - public void RestoreData() - { - dosaveflag=false; - mysavexml=false; - TextBox hwnd; - // first, clear out all of the text boxes. - - foreach (string str in myHT.Keys) - { - object o = myHT[str]; - hwnd = (TextBox) o; - hwnd.Text = ""; - TextBoxAttrTag tag = (TextBoxAttrTag) hwnd.Tag; - RadioButton radio; - radio = tag.GetRadio; - if (radio != null ) - { - GroupBox gp = (GroupBox) radio.Parent; - gp.Tag = null; - } - } - // Add field data to fields. - DisplayFieldContents((XmlNode) editelem); - dosaveflag=true; - } - - public bool DataChanged() - { - if (mysavexml) return true; - return false; - } - - // SaveData saves the data in the element which had been sent to the control. Return - // true if success, false if fail. - public bool SaveData() - { - - if (mysavexml) - { - TextBox hwnd; - TextBoxAttrTag tag; - string imgdate; - - //go thru the hash table to get textboxes. Find the ones that have text. - foreach (string str in myHT.Keys) - { - object o = myHT[str]; - hwnd = (TextBox) o; - imgdate = null; - - // if this is a required field and there is no text, put out an error - // message and get out of here. - if (hwnd.Tag != null) - { - tag = (TextBoxAttrTag) hwnd.Tag; - if (tag.GetRequired == true && hwnd.Visible == true && (hwnd.Text == null || hwnd.Text == "")) - { - string message = CvtFldToUserFld(str) + " must be entered because it is\nused to define the " + tag.GetRequiredMessage; - string caption = "Error on Save RO Data"; - MessageBoxButtons buttons = MessageBoxButtons.OK; - DialogResult result; - result = MessageBox.Show(message, caption, buttons); - return (false); - } - imgdate = tag.GetImageDate; - - } - - // find the element in the current element node. - // if text exists and the element exists, just reset the innertext. - // if text exists and it's a new element, add it. - // if the element is there and there's no text. delete it. - XmlNode elmnode = (XmlNode) editelem; - XmlNode nd = elmnode.SelectSingleNode(str); - if (nd == null) nd = elmnode.SelectSingleNode("*/"+str); - - // handle, element exists - but text removed first (delete element) - if ((hwnd.Text == null || hwnd.Text == "") && nd != null) - { - XmlNode parent = nd.ParentNode; - parent.RemoveChild(nd); - } - else - { - // found the node, just set text and text exists, just modify text. - if (nd != null) - { - if (str == "Image_Filename") - nd.InnerText = imgdate + " " + hwnd.Text; - else - nd.InnerText = hwnd.Text; - } - // node not here. Make a new element - else if (hwnd.Text != null && hwnd.Text != "") - { - // if this is part of an image, then be sure that the - // parent image node was created and if not, create it. - bool ischldimag = false; - if (hwnd.Tag != null) - { - tag = (TextBoxAttrTag) hwnd.Tag; - if (tag.GetImageChild == true) ischldimag = true; - } - if (ischldimag) - { - tag = (TextBoxAttrTag) hwnd.Tag; // yikes, compile errors - string imagnm = tag.GetImageName; - VlnXmlElement ielm; - VlnXmlElement newelem; - nd = elmnode.SelectSingleNode(imagnm); - if (nd == null) // make this image node. - { - newelem = (VlnXmlElement) editdoc.CreateElement(imagnm); - editelem.AppendChild((XmlNode) newelem); - ielm = newelem; - } - else - ielm = (VlnXmlElement) nd; - newelem = (VlnXmlElement) editdoc.CreateElement(str); - if (str == "Image_Filename") - newelem.InnerText = imgdate + " " + hwnd.Text; - else - newelem.InnerText = hwnd.Text; - ielm.AppendChild((XmlNode) newelem); - } - else - { - // just added at the current level - VlnXmlElement newelem = (VlnXmlElement) editdoc.CreateElement(str); - newelem.InnerText = hwnd.Text; - editelem.AppendChild((XmlNode) newelem); - nd = (XmlNode) newelem; - } - } - // check on order of combo types if this was one. Note that the 'active' - // type within the combo, i.e. text, variable, table or xyplot, must - // be the first one in xml tree (before the others) in order to be the - // active one as presented to user. This was done since more than one can have data. - if (hwnd.Tag != null) - { - tag = (TextBoxAttrTag) hwnd.Tag; - RadioButton rb = tag.GetRadio; - if (rb != null) - { - if (rb.Checked == true) - { - // this one needs to be before any others (of the same - // group type) in the xml childlist - just make it 1st. - XmlNode parent = nd.ParentNode; - parent.RemoveChild(nd); - parent.PrependChild(nd); - } - } - } - } - } - mysavexml=false; // data has been saved, don't allow it again. - return(true); - } - return (false); - } - - #region Component Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.btnFindFile = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // btnFindFile - // - this.btnFindFile.Location = new System.Drawing.Point(608, 8); - this.btnFindFile.Name = "btnFindFile"; - this.btnFindFile.Size = new System.Drawing.Size(96, 24); - this.btnFindFile.TabIndex = 1; - this.btnFindFile.Text = "Find File"; - this.btnFindFile.Visible = false; - this.btnFindFile.Click += new System.EventHandler(this.btnFindFile_click); - this.ResumeLayout(false); - - this.Controls.Add(btnFindFile); - - } - #endregion - - // Given a schema, display labels or radio buttons and their associated textboxes - // Radio button names are derived from removing the type from the element name. - private void DisplaySchemaControls(XmlSchema myXmlSchema) - { - // the first element is the group name, get past this to the data. This group - // name is a complex type, which is processed below. - bool first=true; - try - { - foreach(object item in myXmlSchema.Items) - { - if (item is XmlSchemaElement && first) - { - first=false; - } - - // in the RO schema (and any types derived from it), the fields are - // defined within the ComplexType. - if (item is XmlSchemaComplexType) - DisplayXmlSchemaComplexType((XmlSchemaComplexType)item); //complexType - } - } - catch(Exception e) - { - MessageBox.Show(e.ToString(),"Error displaying fields from schema"); - } - } - - - //XmlSchemaComplexType - private void DisplayXmlSchemaComplexType(XmlSchemaComplexType complexType) - { - if (complexType.ContentModel == null) - { - if (complexType.Particle != null) - DisplayXmlSchemaParticle(complexType.Particle); - } - } - - //XmlSchemaSimpleType processes a simple type schema element which contains a fields - // attributes such as patterns, maxLength and whether it is single (type is - // 'normalizedString') or a multiline text box(type is 'string'). Also, a radio - // button is passed in if this was called to handle an element within a combo type. - // This button is saved for a given text box so that initialization of these combo types can occur. - private string DisplayXmlSchemaSimpleType(XmlSchemaSimpleType simpleType, TextBox mytextbox, RadioButton radio, - bool img, string imgname) - { - // set up for text box tag, which stores whether field is required and - // if a pattern exists for validation. - string pattern = null; - string getannot=null; - if (simpleType.Annotation != null) - { - object item = simpleType.Annotation.Items[0]; - if (item is XmlSchemaDocumentation) - { - XmlSchemaDocumentation doc = (XmlSchemaDocumentation) item; - XmlNode[] node = (XmlNode[]) doc.Markup; - - getannot = node[0].InnerText; - if (getannot == "VLN_FINDFILE") - { - this.btnFindFile.Location = new System.Drawing.Point(mytextbox.Location.X+mytextbox.Width+50,mytextbox.Location.Y-(2*(int)mytextbox.Font.GetHeight())); - this.btnFindFile.Visible = true; - GraphicsFiletextbox = mytextbox; - GraphicsFiletextbox.LostFocus += new System.EventHandler(this.GraphicText_lostfocus); - getannot = null; - } - if (getannot!=null && getannot!="") - { - if (getannot.IndexOf("Lines")>=0) - { - GraphicsHttextbox = mytextbox; - mytextbox.LostFocus += new System.EventHandler(this.GraphicsHt_lostfocus); - } - if (getannot.IndexOf("Character")>=0) - { - GraphicsWdtextbox = mytextbox; - mytextbox.LostFocus += new System.EventHandler(this.GraphicsWd_lostfocus); - } - } - } - } - - - if (simpleType.Content is XmlSchemaSimpleTypeRestriction) - { - // A Schema Type Restriction is used to define single or multi-line boxes. - XmlSchemaSimpleTypeRestriction myRestrictions = (XmlSchemaSimpleTypeRestriction) simpleType.Content; - if (myRestrictions.BaseTypeName.Name == "normalizedString") - mytextbox.Multiline = false; - else - { - mytextbox.Multiline = true; - mytextbox.AcceptsReturn = true; - mytextbox.Height = (int) mytextbox.Font.GetHeight() * 4; - mytextbox.ScrollBars = ScrollBars.Vertical; - zmtooltip.SetToolTip(mytextbox, "Press Shift F2 To Zoom"); - } - - // Schema facets were used for maxlength & patterns, process these if found. - foreach(XmlSchemaFacet facet in myRestrictions.Facets) - { - if (facet is XmlSchemaMaxLengthFacet) - { - if (mytextbox.Multiline == false) - mytextbox.MaxLength = System.Convert.ToInt32(facet.Value); - // if the box is small, make the width a little bigger so maxlength text can fit. - int wd = System.Convert.ToInt32(facet.Value); - if (wd<5) wd++; - mytextbox.Width = (int) mytextbox.Font.SizeInPoints * wd; - MaxWidth = (mytextbox.Width>MaxWidth)?mytextbox.Width:MaxWidth; - } - else if (facet is XmlSchemaPatternFacet) - { - pattern = facet.Value; - } - } - } - - // Now setup a tag for the text box which will store attributes associated with it - // for seeing if it is a required field, checking a pattern or processing a radio box - // initialization. - if (mytextbox.Tag == null) - { - TextBoxAttrTag tag = new TextBoxAttrTag(false, pattern, radio, img, (img?imgname:null), null); - mytextbox.Tag = (object) tag; - } - return getannot; - } - - //XmlSchemaParticle's contain the individual schema elements which represent - // fields defined for this given RO group. It may also contain a schema 'choice' - // which was used to handle the combo type data type fields. - private void DisplayXmlSchemaParticle(XmlSchemaParticle particle) - { - if (particle is XmlSchemaElement) - DisplayXmlSchemaElement((XmlSchemaElement)particle); - else if (particle is XmlSchemaSequence) - { - foreach(XmlSchemaParticle particle1 in ((XmlSchemaSequence)particle).Items) - DisplayXmlSchemaParticle(particle1); - } - else if (particle is XmlSchemaChoice) - DisplayXmlSchemaChoice((XmlSchemaChoice) particle); - else - MessageBox.Show(particle.ToString(),"Not Implemented for this type"); - } - - // For a combo field, display the radio button & the text field. Select the first - // button. If data is also sent in during initialization of this control, i.e. - // edit versus new, the selected button will be changed during the XML file - // data load process. - // Return value (set as reference params): 'x' & 'y' size of the text field so that - // the caller can determine the max to set the group box x, y size value and know - // how far to move down on the screen. - private void DisplayXmlSchemaRadioAndTextBox(XmlSchemaElement element, GroupBox gbox, bool first, int x, int y, - int boxx, ref int retx, ref int rety) - { - int ysize; - RadioButton radio = new RadioButton(); - radio.Location = new System.Drawing.Point(x,20); - radio.Name = element.Name + element.SchemaTypeName.Name; - string tmp; - if (element.SchemaTypeName.Name.Length>1 && char.IsDigit(element.SchemaTypeName.Name,1)) - tmp = element.SchemaTypeName.Name.Substring(1,element.SchemaTypeName.Name.Length-1); - else - tmp = element.SchemaTypeName.Name; - radio.Text = CvtFldToUserFld(tmp); - //radio.Width = (int) radio.Font.SizeInPoints * radio.Text.Length + 20; // add 20 for button - - radio.TabIndex = 0; - ysize = (int) radio.Height; - - if (first) radio.Checked = true; - radio.CheckedChanged += new System.EventHandler(this.radiocheckchg); - gbox.Controls.Add(radio); - - TextBox tb = new TextBox(); - tb.Location = new Point(boxx+20, y+25); - if (!first) tb.Visible = false; - myHT.Add(element.Name,tb); - // add the textbox to the ctlxmledit control rather than groupbox - the - // groupbox is just to control the choices, the text box won't display if in - // the groupbox. - Controls.Add(tb); - tb.TextChanged += new System.EventHandler(this.textbox_change); - tb.GotFocus += new System.EventHandler(this.textbox_zoombtn); - tb.KeyDown += new KeyEventHandler(MyOnKeyDown); - gbox.Contains(tb); - // the following will set attributes on the text boxes such as maxlength, multiline, etc. - DisplayXmlSchemaSimpleType((XmlSchemaSimpleType)element.SchemaType, tb, radio,false,null); - rety = (ysize + 25 + tb.Height); - retx = tb.Width; - } - - //XmlSchemaChoice: processes the 'combo data type' which is represented by a - // a schema choice element. This is handled by a group box and using radio - // button/textbox pairs to represent each element within the choice. - private void DisplayXmlSchemaChoice(XmlSchemaChoice choice) - { - bool first = true; - int screenposx, screenposy; - int maxyfortext=0,maxxfortext=0; - GroupBox groupbox = new GroupBox(); - groupbox.SuspendLayout(); - groupbox.Location = new System.Drawing.Point(screenx,screeny); - XmlSchemaElement elem = (XmlSchemaElement) choice.Items[0]; - groupbox.Name = elem.Name; - groupbox.TabStop = false; - - // remove the last character of the name for the title of the group box. - string tstr = CvtFldToUserFld(elem.Name); - groupbox.Text = tstr.Remove((tstr.Length)-1,1); - screenposx = screenx+20; - screenposy = screeny+20; - - foreach (object o in choice.Items) - { - // put out a radio button/text box for each item in the choice. - int xmax=0, ymax=0; - DisplayXmlSchemaRadioAndTextBox((XmlSchemaElement) o,groupbox,first,screenposx,screenposy,screenx,ref xmax,ref ymax); - first = false; - maxyfortext = ymax>maxyfortext?ymax:maxyfortext; - maxxfortext = xmax>maxxfortext?xmax:maxxfortext; - screenposx = screenposx + 160; - } - - // get the widths of all children of this group box & use this to set the size - // of the groupbox. - int gritms = groupbox.Controls.Count; - screeny=screeny+maxyfortext+10; - MaxWidth = (maxxfortext+40>MaxWidth)?maxxfortext+40:MaxWidth; - groupbox.Size = new System.Drawing.Size(maxxfortext+40, maxyfortext+10); - Controls.Add(groupbox); - } - - private void DisplayXmlSchemaElement(XmlSchemaElement element) - { - // always add a label. - Label mylabel; - int sscreeny; - mylabel = new System.Windows.Forms.Label(); - mylabel.Location = new Point(screenx, screeny); - mylabel.Name = element.Name; - mylabel.Text = CvtFldToUserFld(element.Name); - mylabel.AutoSize = true; - Controls.Add(mylabel); - // add 3 onto screeny so that textbox is slightly below label. - screeny = screeny+mylabel.Height+3; - sscreeny = screeny; // save 'y' location in case of annotation. - if (element.SchemaType != null && element.SchemaType is XmlSchemaComplexType) - { - GraphicsText = element.Name; - DisplayXmlSchemaComplexType((XmlSchemaComplexType)element.SchemaType); - screeny+=30; - } - else - { - TextBox mytextbox; - mytextbox = new TextBox(); - mytextbox.Location = new Point(screenx, screeny); - myHT.Add(element.Name,mytextbox); - tabindx++; - Controls.Add(mytextbox); - screeny+=mytextbox.Height; - mytextbox.TextChanged += new System.EventHandler(this.textbox_change); - mytextbox.Validating += new System.ComponentModel.CancelEventHandler(this.textbox_Validating); - mytextbox.GotFocus += new System.EventHandler(this.textbox_zoombtn); - mytextbox.KeyDown += new KeyEventHandler(MyOnKeyDown); - - string labelAnnot; - bool imgchld = false; - if (element.Name == "Image_Filename" || element.Name == "Image_Height" || element.Name == "Image_Width") imgchld = true; - // Pass the textbox in to set attributes such as maxlength, multiline and pattern - labelAnnot = DisplayXmlSchemaSimpleType((XmlSchemaSimpleType)element.SchemaType,mytextbox, null,imgchld,GraphicsText); - if (labelAnnot != null) - { - Label annot; - annot = new System.Windows.Forms.Label(); - annot.Location = new Point(screenx+mytextbox.Width+10, sscreeny); - annot.Name = "annot" + screeny.ToString(); - annot.Text = labelAnnot; - annot.AutoSize = true; - Controls.Add(annot); - } - screeny+=mytextbox.Height; - } - } - - // the following is needed to load the control. - private void ctlXMLEdit_Load(object sender, System.EventArgs e) - { - - } - - // when data in a text box has changed, flag it (except for when this - // happens during loading of original data). This flag will be used - // later to know whether to save data. - private void textbox_change(object sender, System.EventArgs e) - { - if(dosaveflag)mysavexml = true; - } - - // radiocheckchg - called when a radio button is selected. This will set - // visibility for associated text box. - private void radiocheckchg(object sender, System.EventArgs e) - { - RadioButton btnsel = (RadioButton) sender; - TextBox assocbox; - string btntext, str; - - if(dosaveflag)mysavexml = true; - btntext = CvtUserFldToFld(btnsel.Text); - - // now get the actual textbox and set visibility depending - // on whether the box is checked, i.e. turned on(if checked, it should - // be set to visible) - - str = btnsel.Name.Replace(btntext,""); - object o = myHT[str]; - if (o == null) return; - assocbox = (TextBox) o; - // make the text box visible if checked, otherwise, invisible - assocbox.Visible = btnsel.Checked; - } - - // these two methods convert user input field names from/to xml tags. (xml tags - // cannot begin with digit, have spaces or other special chars. - private string CvtUserFldToFld(string fldname) - { - if (fldname.Length < 2) - return fldname; - // a digit cannot start an xml fieldname, prepend a "__" to it. - string tmp0; - if (char.IsDigit(fldname,0)) - tmp0 = "__" + fldname; - else - tmp0 = fldname; - // an xml fieldname cannot have a space, change it to a "__" - string tmpstr = tmp0.Replace(" ","__"); - int len = tmpstr.Length; - int cnt = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval; - - while (cnt < len) - { - char tmpchr = tmpstr[cnt]; - if(!char.IsLetterOrDigit(tmpchr)&& (OKpunch.IndexOf(tmpchr) == -1) ) - { - decval = tmpchr; - outstr += OKpunch + decval.ToString("D3"); - } - else - { - outstr += tmpchr.ToString(); - } - cnt++; - } - return outstr; - } - - private string CvtFldToUserFld(string fldname) - { - string tmpstr0; - if (fldname.Length < 2) return fldname; - // an xml element name cannot begin with a digit. we had prepended a "__" - if (fldname.Substring(0,2) == "__" && char.IsDigit(fldname,2)) - tmpstr0 = fldname.Substring(2,fldname.Length-2); - else - tmpstr0 = fldname; - // an xml element name cannot have a space, we converted to a "__" - string tmpstr = tmpstr0.Replace("__"," "); - int len = tmpstr.Length; - int cur = 0; - - // this is also our sequence that tells us the follow 3 digits is the ascii number (base 10) - // of the character we replaced. - string OKpunch = "-._"; - - string outstr = ""; - int decval, indx; - if (tmpstr.Length <6) - indx = -1; - else - indx=tmpstr.IndexOf(OKpunch,cur); - string asc_spchar; - while (indx>=0) - { - outstr += tmpstr.Substring(cur,indx-cur); - asc_spchar = tmpstr.Substring(indx+3,3); - decval = System.Convert.ToInt16(asc_spchar,10); - outstr += System.Convert.ToChar(decval).ToString(); - cur = indx+6; - if (cur+6 > len) - indx = -1; - else - indx = tmpstr.IndexOf(OKpunch,cur); - } - if (cur0) - lname = iname.Substring(slindx+1,iname.Length-slindx-1); - else - lname = iname; - // now check to see if this is a local file - to do this, check - // to see if either has a "~" which may signify a short filename. - // If so, compare the short file names (Note that comparing long - // filenames didn't work, i.e. the kernel routine did not return - // a long filename if a short one was sent in). - - // open an existing file, or create a new one - - FileInfo lfi = new FileInfo(lname); // local file & info - - if (lfi.Exists == false) // !exist, copy it & move on - { - // Copy the file to the local directory - ifi.CopyTo(lname); - // update fields on window.... - GraphicsFiletextbox.Text = lfi.Name; - TextBoxAttrTag tag = (TextBoxAttrTag) GraphicsFiletextbox.Tag; - tag.SetImageDate(CalculatePromsDate(ifi.LastWriteTime)); - GraphicsFiletextbox.Tag = tag; - UpdateHtWd(); - return true; - } - else // A local file exists by the same name - { - if (ifi.Exists == false) - { - MessageBox.Show("Input file doesn't exist.","Error"); - return false; - } - else - { - // first just check if these are really the same, just the - // user put a path in. - int same = 0; - if (ifi.DirectoryName.IndexOf("~")>=0 || lfi.DirectoryName.IndexOf("~")>=0) - { - - StringBuilder shortlname = new StringBuilder(257); - StringBuilder shortiname = new StringBuilder(257); - GetShortPathName(ifi.DirectoryName,shortiname,257); - GetShortPathName(lfi.DirectoryName,shortlname,257); - same = String.Compare(shortlname.ToString(),shortlname.ToString()); - } - if (same == 0) - { - TextBoxAttrTag tag = (TextBoxAttrTag) GraphicsFiletextbox.Tag; - tag.SetImageDate(CalculatePromsDate(lfi.LastWriteTime)); - GraphicsFiletextbox.Tag = tag; - return true; - } - else - { - // Is the file the same - size, date, time - // old code checked for both findfirst failures?? - string msg=null; - if (lfi.LastWriteTime > ifi.LastWriteTime) - msg = "A newer copy of t"; - else if (lfi.LastWriteTime < ifi.LastWriteTime) - msg = "An older copy of t"; - else if (lfi.Length != ifi.Length) - msg = "A different copy of t"; - msg = msg + "he selected file\nexists in the RO directory\n"; - msg = msg + "Do you want to replace it\n"; - msg = msg + "with the selected file?"; - MessageBoxButtons buttons = MessageBoxButtons.YesNoCancel; - DialogResult result; - result = MessageBox.Show( msg, "Graphics File Copy", buttons); - if (result == DialogResult.Yes) - { - lfi.Delete(); - ifi.CopyTo(lname,true); - // update dialog data & ht/wd - GraphicsFiletextbox.Text = lfi.Name; - TextBoxAttrTag tag = (TextBoxAttrTag) GraphicsFiletextbox.Tag; - tag.SetImageDate(CalculatePromsDate(lfi.LastWriteTime)); - GraphicsFiletextbox.Tag = tag; - UpdateHtWd(); - return true; - } - else if (result != DialogResult.No) // not yes or no. Cancel out. - return false; - } - } - } - } - return false; - } - - // if changed height, calculate associated width - private void GraphicsHt_lostfocus(object sender, System.EventArgs e) - { - TextBox ht = (TextBox) sender; - if (ht.Modified == true) - { - try - { - int newht= System.Convert.ToInt32(ht.Text); - setHtWdBasedUponHeight(newht); - } - catch (Exception ee) - { - MessageBox.Show("Invalid Height Input",ee.ToString()); - } - } - } - // if changed width, calculate associated height - private void GraphicsWd_lostfocus(object sender, System.EventArgs e) - { - TextBox wd = (TextBox) sender; - if (wd.Modified == true) - { - try - { - int newwd= System.Convert.ToInt32(wd.Text); - setHtWdBasedUponWidth(newwd); - } - catch (Exception ee) - { - MessageBox.Show("Invalid Width Input", ee.ToString()); - } - } - } - - private void setHtWdBasedUponHeight(int nuval) - { - int w,h; - if(himage!=0) - { - if(nuval==0)nuval=(himage+DPPL-1)/DPPL; - if(nuval > hmax)nuval=hmax; - else if(nuval < hmin)nuval=hmin; - h=nuval; - // The <<1, +1, and >>1 efectively round the result - // by multiplying by 2 performing the division adding - // 1 and dividing by 2 - w=(((h*STDCPI*wimage)<<1)/(himage*STDLPI)+1)>>1; - } - else - { - w=h=0; - } - GraphicsWdtextbox.Text = w.ToString(); - GraphicsHttextbox.Text = h.ToString(); - } - - private void setHtWdBasedUponWidth(int nuval) - { - int w,h; - if(himage!=0) - { - if(nuval==0)nuval=(wimage+DPPC-1)/DPPC; - if(nuval > wmax)nuval=wmax; - else if(nuval < wmin)nuval=wmin; - w=nuval; - // - // The <<1, +1, and >>1 efectively round the result - // by multiplying by 2 performing the division adding - // 1 and dividing by 2 - h=(((w*STDLPI*himage)<<1)/(wimage*STDCPI)+1)>>1; - } - else - { - w=h=0; - } - GraphicsWdtextbox.Text = w.ToString(); - GraphicsHttextbox.Text = h.ToString(); - } - - private void UpdateHtWd() - { - // copy the file local and also get it's width/height by reading the file. - Bitmap image; - - try - { - string dir = Directory.GetCurrentDirectory(); - string GraphicsFileName = GraphicsFiletextbox.Text; -// FileInfo fi = new FileInfo(GraphicsFiletextbox.Text); - if (GraphicsFileName.IndexOf('.') == -1) - GraphicsFileName += DefaultGraphicFileExtension; // default graphics file extension - FileInfo fi = new FileInfo(GraphicsFileName); - if (fi.Exists == false) - { - MessageBox.Show("Graphics File is missing","Error"); - wimage=himage=height=width=0; - return; - } - - image = new Bitmap(GraphicsFileName); - himage = image.Height; - wimage = image.Width; - hmax=MAXLT; // 60 Lines - int hmxw=STDLPI*MAXWT*himage/(wimage*STDCPI); - if(hmxw < hmax) - {// Size is limited to the width of the paper - hmax=hmxw; - wmax=MAXWT; - } - else - { - wmax=STDCPI*hmax*wimage/(himage*STDLPI); - } - hmin=1; - int hmnw=STDLPI*6*himage/(wimage*STDCPI); - if(hmnw > hmin) - {// Size is limited by the width of the graphic - hmin=hmnw; - wmin=6; - } - else - { - wmin=STDCPI*1*wimage/(himage*STDLPI); - } - setHtWdBasedUponHeight(height); - } - catch (Exception exx) - { - MessageBox.Show(exx.Message.ToString(),"error on processing of graphics file"); - } - } - - private void btnFindFile_click(object sender, System.EventArgs e) - { - bool done = false; - while (done == false) - { - OpenFileDialog openFileDialog1 = new OpenFileDialog(); - openFileDialog1.InitialDirectory = Directory.GetCurrentDirectory(); - openFileDialog1.Filter = - "Bitmap files (*.bmp)|*.bmp|Enhanced Windows metafiles (*.emf)|*.emf|Graphics Interchange Format (*.gif)|*.gif|Icons (*.ico)|*.ico|JPEG (*.jpg)|*.jpg|Portable Network Graphics (*.png)|*.png|TIFF (*.tif)|*.tif|Windows Metafile (*.wmf)|*.wmf" ; - openFileDialog1.FilterIndex = 7 ; - openFileDialog1.RestoreDirectory = true ; - openFileDialog1.CheckFileExists = true; -// try -// { - if(openFileDialog1.ShowDialog() != DialogResult.OK) - done = true; - else - { - string iname = openFileDialog1.FileName; - done = ValidGraphicsFile(iname); - if (done == true) - { - FileInfo fi = new FileInfo(iname); - GraphicsFiletextbox.Text = fi.Name; - UpdateHtWd(); - } - } -// } -// catch (Exception j) -// { -// MessageBox.Show(j.Message,"debug"); -// } - } - - } - } - - /* - * TimeZone is an Abstract Class. You need to inherit the TimeZone Class - * and overload a couple of it's functions in order to use it. - * - called in CalculatePromsDate() above. - */ - public class ThisTimeZone : TimeZone - { - private TimeZone curTZ; - public TimeSpan SpanTZ; - - public ThisTimeZone() - { - curTZ = CurrentTimeZone; // local timezone - } - - // get the UTC (GMT) value for the given date/time - public override TimeSpan GetUtcOffset(DateTime ForThisDate) - { - SpanTZ = curTZ.GetUtcOffset(ForThisDate); - return SpanTZ; - } - - // Name of the local Daylight savings time zone - public override string DaylightName - { - get - { - return curTZ.DaylightName; - } - } - - // Name of the local standard time zone - public override string StandardName - { - get - { - return curTZ.StandardName; - } - } - - // Get the start and end dates for daylight savings - public override System.Globalization.DaylightTime GetDaylightChanges(int year) - { - return curTZ.GetDaylightChanges(year); - } - } -} - diff --git a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEdit.resx b/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEdit.resx deleted file mode 100644 index 8b3cc379..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEdit.resx +++ /dev/null @@ -1,102 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.3 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.3300.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ctlXMLEdit - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEditLib.csproj b/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEditLib.csproj deleted file mode 100644 index c1a57aa9..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEditLib.csproj +++ /dev/null @@ -1,136 +0,0 @@ - - - Local - 8.0.50727 - 2.0 - {DECA8343-6351-11D6-8487-00A0CC271352} - Debug - AnyCPU - - - - - ctlXMLEditLib - - - JScript - Grid - IE50 - false - Library - ctlXMLEditLib - OnBuildSuccess - - - - - - - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - - - bin\Release\ - false - 285212672 - false - - - TRACE - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - - - - System - - - System.Data - - - System.Drawing - - - System.Windows.Forms - - - System.XML - - - - - Code - - - UserControl - - - Form - - - Form - - - ctlXMLEdit.cs - Designer - - - ImageDialog.cs - Designer - - - ZoomDialog.cs - Designer - - - - - {A46428FC-1E35-4B8D-8B06-A1DF8BAC7A04} - Org.Mentalis.Files - - - {0C7825FD-AA05-11D6-84D1-00A0CC271352} - RODBInterface - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEditLib.sln b/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEditLib.sln deleted file mode 100644 index b7383a0a..00000000 --- a/PROMS/ReferencedObjectsOld/LibSource/ctlXMLEditLib/ctlXMLEditLib.sln +++ /dev/null @@ -1,21 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 8.00 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ctlXMLEditLib", "ctlXMLEditLib.csproj", "{DECA8343-6351-11D6-8487-00A0CC271352}" - ProjectSection(ProjectDependencies) = postProject - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfiguration) = preSolution - Debug = Debug - Release = Release - EndGlobalSection - GlobalSection(ProjectConfiguration) = postSolution - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug.ActiveCfg = Debug|.NET - {DECA8343-6351-11D6-8487-00A0CC271352}.Debug.Build.0 = Debug|.NET - {DECA8343-6351-11D6-8487-00A0CC271352}.Release.ActiveCfg = Release|.NET - {DECA8343-6351-11D6-8487-00A0CC271352}.Release.Build.0 = Release|.NET - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - EndGlobalSection - GlobalSection(ExtensibilityAddIns) = postSolution - EndGlobalSection -EndGlobal diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting.sln b/PROMS/RichTextBoxTesting/RichTextBoxTesting.sln deleted file mode 100644 index 1e934bbc..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting.sln +++ /dev/null @@ -1,22 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RichTextBoxTesting", "RichTextBoxTesting\RichTextBoxTesting.csproj", "{2661CB22-CD2A-4EEE-80CF-CE854313C87A}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2661CB22-CD2A-4EEE-80CF-CE854313C87A}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2661CB22-CD2A-4EEE-80CF-CE854313C87A}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2661CB22-CD2A-4EEE-80CF-CE854313C87A}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2661CB22-CD2A-4EEE-80CF-CE854313C87A}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/App.config b/PROMS/RichTextBoxTesting/RichTextBoxTesting/App.config deleted file mode 100644 index 8e156463..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.Designer.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.Designer.cs deleted file mode 100644 index 267d22d7..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.Designer.cs +++ /dev/null @@ -1,84 +0,0 @@ -namespace RichTextBoxTesting -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.RTB = new System.Windows.Forms.RichTextBox(); - this.TB = new System.Windows.Forms.TextBox(); - this.checkedListBox1 = new System.Windows.Forms.CheckedListBox(); - this.SuspendLayout(); - // - // RTB - // - this.RTB.Location = new System.Drawing.Point(62, 36); - this.RTB.Name = "RTB"; - this.RTB.Size = new System.Drawing.Size(521, 152); - this.RTB.TabIndex = 0; - this.RTB.Text = ""; - this.RTB.TextChanged += new System.EventHandler(this.RTB_TextChanged); - // - // TB - // - this.TB.Location = new System.Drawing.Point(68, 235); - this.TB.Multiline = true; - this.TB.Name = "TB"; - this.TB.Size = new System.Drawing.Size(514, 154); - this.TB.TabIndex = 1; - this.TB.TextChanged += new System.EventHandler(this.TB_TextChanged); - // - // checkedListBox1 - // - this.checkedListBox1.FormattingEnabled = true; - this.checkedListBox1.Location = new System.Drawing.Point(206, 143); - this.checkedListBox1.Name = "checkedListBox1"; - this.checkedListBox1.Size = new System.Drawing.Size(8, 4); - this.checkedListBox1.TabIndex = 2; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(903, 517); - this.Controls.Add(this.checkedListBox1); - this.Controls.Add(this.TB); - this.Controls.Add(this.RTB); - this.Name = "Form1"; - this.Text = "Form1"; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.RichTextBox RTB; - private System.Windows.Forms.TextBox TB; - private System.Windows.Forms.CheckedListBox checkedListBox1; - } -} - diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.cs deleted file mode 100644 index a80fac68..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace RichTextBoxTesting -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - - private void RTB_TextChanged(object sender, EventArgs e) - { - if (changing) return; - changing = true; - TB.Text = RTB.Rtf; - changing = false; - } - - bool changing = false; - - private void TB_TextChanged(object sender, EventArgs e) - { - if (changing) return; - changing = true; - RTB.Rtf = TB.Text; - changing = false; - } - } -} diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.resx b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.resx deleted file mode 100644 index 1af7de15..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Program.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Program.cs deleted file mode 100644 index 33e979b5..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace RichTextBoxTesting -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/AssemblyInfo.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/AssemblyInfo.cs deleted file mode 100644 index d302806c..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("RichTextBoxTesting")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Windows User")] -[assembly: AssemblyProduct("RichTextBoxTesting")] -[assembly: AssemblyCopyright("Copyright © Windows User 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("84fce126-50ab-4e9b-92ff-48db5ce2b629")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.Designer.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.Designer.cs deleted file mode 100644 index b5c0ac22..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace RichTextBoxTesting.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("RichTextBoxTesting.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.resx b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.Designer.cs b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.Designer.cs deleted file mode 100644 index ef139a36..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace RichTextBoxTesting.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.settings b/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/RichTextBoxTesting/RichTextBoxTesting/RichTextBoxTesting.csproj b/PROMS/RichTextBoxTesting/RichTextBoxTesting/RichTextBoxTesting.csproj deleted file mode 100644 index 6694636f..00000000 --- a/PROMS/RichTextBoxTesting/RichTextBoxTesting/RichTextBoxTesting.csproj +++ /dev/null @@ -1,88 +0,0 @@ - - - - - Debug - AnyCPU - {2661CB22-CD2A-4EEE-80CF-CE854313C87A} - WinExe - Properties - RichTextBoxTesting - RichTextBoxTesting - v4.5 - 512 - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - Form - - - Form1.cs - - - - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/RoAccessToSql/RoAccessToSql.sln b/PROMS/RoAccessToSql/RoAccessToSql.sln deleted file mode 100644 index 1abeef3b..00000000 --- a/PROMS/RoAccessToSql/RoAccessToSql.sln +++ /dev/null @@ -1,25 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio Version 16 -VisualStudioVersion = 16.0.32901.82 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "RoAccessToSql", "RoAccessToSql.csproj", "{1EC96BDA-01E7-4153-A95D-6A4A36FA278E}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {1EC96BDA-01E7-4153-A95D-6A4A36FA278E}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {1EC96BDA-01E7-4153-A95D-6A4A36FA278E}.Debug|Any CPU.Build.0 = Debug|Any CPU - {1EC96BDA-01E7-4153-A95D-6A4A36FA278E}.Release|Any CPU.ActiveCfg = Release|Any CPU - {1EC96BDA-01E7-4153-A95D-6A4A36FA278E}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(ExtensibilityGlobals) = postSolution - SolutionGuid = {066122E2-5ED5-4DD3-B04E-C2350F0818B1} - EndGlobalSection -EndGlobal diff --git a/PROMS/Sync.7z b/PROMS/Sync.7z deleted file mode 100644 index 25222d44..00000000 Binary files a/PROMS/Sync.7z and /dev/null differ diff --git a/PROMS/Sync/7zip/7z.dll b/PROMS/Sync/7zip/7z.dll deleted file mode 100644 index 2bdaed6a..00000000 Binary files a/PROMS/Sync/7zip/7z.dll and /dev/null differ diff --git a/PROMS/Sync/7zip/7z64.dll b/PROMS/Sync/7zip/7z64.dll deleted file mode 100644 index f4f869f9..00000000 Binary files a/PROMS/Sync/7zip/7z64.dll and /dev/null differ diff --git a/PROMS/Sync/7zip/SevenZipSharp.dll b/PROMS/Sync/7zip/SevenZipSharp.dll deleted file mode 100644 index f588f8a2..00000000 Binary files a/PROMS/Sync/7zip/SevenZipSharp.dll and /dev/null differ diff --git a/PROMS/Sync/ActiveSync_icon_by_alex3305.png b/PROMS/Sync/ActiveSync_icon_by_alex3305.png deleted file mode 100644 index 390fe453..00000000 Binary files a/PROMS/Sync/ActiveSync_icon_by_alex3305.png and /dev/null differ diff --git a/PROMS/Sync/Sync.sln b/PROMS/Sync/Sync.sln deleted file mode 100644 index cdbac3a0..00000000 --- a/PROMS/Sync/Sync.sln +++ /dev/null @@ -1,37 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sync", "Sync\Sync.csproj", "{400F2DAC-E405-4C1B-A388-5120FCF59DF0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SyncMany", "SyncMany\SyncMany.csproj", "{256A41AF-440F-42FE-A9B1-2CE36F1261A2}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 3 - SccLocalPath0 = . - SccProjectUniqueName1 = Sync\\Sync.csproj - SccLocalPath1 = Sync - SccProjectUniqueName2 = SyncMany\\SyncMany.csproj - SccProjectName2 = \u0022$/PROMS/Sync/SyncMany\u0022,\u0020LEEAAAAA - SccLocalPath2 = SyncMany - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.Build.0 = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/Sync/Sync/7z.dll b/PROMS/Sync/Sync/7z.dll deleted file mode 100644 index 2bdaed6a..00000000 Binary files a/PROMS/Sync/Sync/7z.dll and /dev/null differ diff --git a/PROMS/Sync/Sync/7z64.dll b/PROMS/Sync/Sync/7z64.dll deleted file mode 100644 index f4f869f9..00000000 Binary files a/PROMS/Sync/Sync/7z64.dll and /dev/null differ diff --git a/PROMS/Sync/Sync/FileCompare.cs b/PROMS/Sync/Sync/FileCompare.cs deleted file mode 100644 index 648e4ed0..00000000 --- a/PROMS/Sync/Sync/FileCompare.cs +++ /dev/null @@ -1,141 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; - -namespace Sync -{ - public class FileCompare - { - private FileInfo _Developement; - private FileInfo _SourceSafe; - private bool _ToProcess = false; - public bool ToProcess - { - get { return _ToProcess; } - set { _ToProcess = value; } - } - public string FileName - { - get { return _Developement.FullName; } - } - public Nullable DevModified - { - get - { - if (_Developement.Exists) - return _Developement.LastWriteTime; - return null; - } - } - public Nullable SSModified - { - get - { - if(_SourceSafe.Exists) - return _SourceSafe.LastWriteTime; - return null; - } - } - private bool _Different; - public bool Different - { - get { return _Different; } - } - public string SSFileName - { - get { return _SourceSafe.FullName; } - } - private bool _ReadOnly; - public bool ReadOnly - { - get { return _ReadOnly; } - } - private bool _Merge = false; - public bool Merge - { - get { return _Merge; } - set { _Merge = value; } - } - public FileCompare(FileInfo development, FileInfo sourceSafe) - { - _Developement = development; - _SourceSafe = sourceSafe; - _Different = DifferentContents(development, sourceSafe); - _ToProcess = _Different; - _ReadOnly = (development.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly; - } - public static bool DifferentContents(FileInfo development, FileInfo sourceSafe) - { - string strDev =ReadFile(development); - string strSS = ReadFile(sourceSafe); - return strDev != strSS; - } - private static string ReadFile(FileInfo fi) - { - if (fi.Exists == false) return ""; - TextReader tr = fi.OpenText(); - string retval = tr.ReadToEnd(); - tr.Close(); - return retval; - } - public void MoveToDevelopment() - { - if (_Developement.Exists) - { - _Developement.Attributes &= (_Developement.Attributes ^ FileAttributes.ReadOnly);// Turn-Off ReadOnly Attribute - _Developement.Attributes &= (_Developement.Attributes ^ FileAttributes.Hidden);// Turn-Off Hidden Attribute - } - BuildFolder(_Developement.Directory); - if(_SourceSafe.Exists)_SourceSafe.CopyTo(_Developement.FullName , true); - } - public void MoveDevToMailBox(string devFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_Developement.FullName.Replace(devFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if (fi1.Exists) fi1.IsReadOnly = false; - if(_Developement.Exists)_Developement.CopyTo(fi1.FullName,true); - } - } - public void MoveMailBoxToDev(string devFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_Developement.FullName.Replace(devFolder, mailboxFolder)); - BuildFolder(_Developement.Directory); - if (fi1.Exists) fi1.IsReadOnly = false; - if (_Developement.Exists) fi1.CopyTo(_Developement.FullName, true); - } - } - public void MoveSSToMailBox(string SSFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_SourceSafe.FullName.Replace(SSFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if (fi1.Exists) fi1.IsReadOnly = false; - if (_SourceSafe.Exists) _SourceSafe.CopyTo(fi1.FullName, true); - } - } - public void MoveMailBoxToSS(string SSFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_SourceSafe.FullName.Replace(SSFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if (fi1.Exists) fi1.IsReadOnly = false; - if (_SourceSafe.Exists) fi1.CopyTo(_SourceSafe.FullName, true); - } - } - private static void BuildFolder(DirectoryInfo directoryInfo) - { - if (!directoryInfo.Exists) - { - BuildFolder(directoryInfo.Parent); - directoryInfo.Create(); - } - } - } -} diff --git a/PROMS/Sync/Sync/FileCompare.cs.bak b/PROMS/Sync/Sync/FileCompare.cs.bak deleted file mode 100644 index 11f24c99..00000000 --- a/PROMS/Sync/Sync/FileCompare.cs.bak +++ /dev/null @@ -1,122 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; - -namespace Sync -{ - class FileCompare - { - private FileInfo _Developement; - private FileInfo _SourceSafe; - private bool _ToProcess = false; - public bool ToProcess - { - get { return _ToProcess; } - set { _ToProcess = value; } - } - public string FileName - { - get { return _Developement.FullName; } - } - public Nullable DevModified - { - get - { - if (_Developement.Exists) - return _Developement.LastWriteTime; - return null; - } - } - public Nullable SSModified - { - get - { - if(_SourceSafe.Exists) - return _SourceSafe.LastWriteTime; - return null; - } - } - private bool _Different; - public bool Different - { - get { return _Different; } - } - public string SSFileName - { - get { return _SourceSafe.FullName; } - } - public FileCompare(FileInfo development, FileInfo sourceSafe) - { - _Developement = development; - _SourceSafe = sourceSafe; - _Different = DifferentContents(development, sourceSafe); - _ToProcess = _Different; - } - public static bool DifferentContents(FileInfo development, FileInfo sourceSafe) - { - string strDev =ReadFile(development); - string strSS = ReadFile(sourceSafe); - return strDev != strSS; - } - private static string ReadFile(FileInfo fi) - { - if (fi.Exists == false) return ""; - TextReader tr = fi.OpenText(); - string retval = tr.ReadToEnd(); - tr.Close(); - return retval; - } - public void MoveToDevelopment() - { - //if (_Developement.Attributes & FileAttributes.ReadOnly == FileAttributes.ReadOnly) - if (_Developement.Exists) _Developement.Attributes &= (_Developement.Attributes ^ FileAttributes.ReadOnly); - BuildFolder(_Developement.Directory); - if(_SourceSafe.Exists)_SourceSafe.CopyTo(_Developement.FullName , true); - } - public void MoveDevToMailBox(string devFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_Developement.FullName.Replace(devFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if(_Developement.Exists)_Developement.CopyTo(fi1.FullName,true); - } - } - public void MoveMailBoxToDev(string devFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_Developement.FullName.Replace(devFolder, mailboxFolder)); - BuildFolder(_Developement.Directory); - fi1.CopyTo(_Developement.FullName, true); - } - } - public void MoveSSToMailBox(string SSFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_SourceSafe.FullName.Replace(SSFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if(_SourceSafe.Exists) _SourceSafe.CopyTo(fi1.FullName, true); - } - } - public void MoveMailBoxToSS(string SSFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_SourceSafe.FullName.Replace(SSFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if(fi1.Exists)fi1.CopyTo(_SourceSafe.FullName, true); - } - } - private static void BuildFolder(DirectoryInfo directoryInfo) - { - if (!directoryInfo.Exists) - { - BuildFolder(directoryInfo.Parent); - directoryInfo.Create(); - } - } - } -} diff --git a/PROMS/Sync/Sync/Production Sync.sln b/PROMS/Sync/Sync/Production Sync.sln deleted file mode 100644 index 7446513b..00000000 --- a/PROMS/Sync/Sync/Production Sync.sln +++ /dev/null @@ -1,37 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sync", "Sync\Sync.csproj", "{400F2DAC-E405-4C1B-A388-5120FCF59DF0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SyncMany", "SyncMany\SyncMany.csproj", "{256A41AF-440F-42FE-A9B1-2CE36F1261A2}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 3 - SccProjectUniqueName0 = Sync\\Sync.csproj - SccLocalPath0 = Sync - SccProjectUniqueName1 = SyncMany\\SyncMany.csproj - SccProjectName1 = \u0022$/PROMS/Sync/SyncMany\u0022,\u0020LEEAAAAA - SccLocalPath1 = SyncMany - SccLocalPath2 = . - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.Build.0 = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/Sync/Sync/Program.cs b/PROMS/Sync/Sync/Program.cs deleted file mode 100644 index 8de31e2d..00000000 --- a/PROMS/Sync/Sync/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace Sync -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmSync()); - } - } -} \ No newline at end of file diff --git a/PROMS/Sync/Sync/Properties/AssemblyInfo.cs b/PROMS/Sync/Sync/Properties/AssemblyInfo.cs deleted file mode 100644 index fc96276e..00000000 --- a/PROMS/Sync/Sync/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Sync")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Volian Enterprises, Inc.")] -[assembly: AssemblyProduct("Sync")] -[assembly: AssemblyCopyright("Copyright © Volian Enterprises, Inc. 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5e74e740-f6c7-46e4-a77d-2353564108b6")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/Sync/Sync/Properties/Resources.Designer.cs b/PROMS/Sync/Sync/Properties/Resources.Designer.cs deleted file mode 100644 index 3b8c4ead..00000000 --- a/PROMS/Sync/Sync/Properties/Resources.Designer.cs +++ /dev/null @@ -1,133 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Sync.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Sync.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon iSync { - get { - object obj = ResourceManager.GetObject("iSync", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap iSync_128x128 { - get { - object obj = ResourceManager.GetObject("iSync_128x128", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon wi0124_16 { - get { - object obj = ResourceManager.GetObject("wi0124_16", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon wi0124_24 { - get { - object obj = ResourceManager.GetObject("wi0124_24", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon wi0124_32 { - get { - object obj = ResourceManager.GetObject("wi0124_32", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon wi0124_48 { - get { - object obj = ResourceManager.GetObject("wi0124_48", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon wi0124_64 { - get { - object obj = ResourceManager.GetObject("wi0124_64", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - } -} diff --git a/PROMS/Sync/Sync/Properties/Resources.resx b/PROMS/Sync/Sync/Properties/Resources.resx deleted file mode 100644 index 2979ec09..00000000 --- a/PROMS/Sync/Sync/Properties/Resources.resx +++ /dev/null @@ -1,2380 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAQAgIAAAAEAIAAoCAEARgAAADAwAAABACAAqCUAAG4IAQAgIAAAAQAgAKgQAAAWLgEAEBAAAAEA - IABoBAAAvj4BACgAAACAAAAAAAEAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAwAA - AAYAAAAIAAAACgAAAA0AAAAPAAAAEAAAABEAAAATAAAAEwAAABQAAAAUAAAAEwAAABMAAAARAAAAEAAA - AA8AAAANAAAACgAAAAgAAAAGAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAAwAAAAYAAAAKAAAADgAAABMAAAAZAAAAIAAAACUAAAArAAAALgAAADMAAAA2AAAAOAAA - ADoAAAA8AAAAPQAAAD0AAAA8AAAAOgAAADgAAAA2AAAAMwAAAC4AAAArAAAAJQAAACAAAAAZAAAAEwAA - AA4AAAAKAAAABgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAACgAAABAAAAAXAAAAHwAAACgAAAAxAAAAOwAA - AEYAAABPAAAAWAAAAGAAAABmAAAAbAAAAHAAAAB0AAAAeAAAAHoAAAB8AAAAfAAAAHoAAAB4AAAAdAAA - AHAAAABsAAAAZgAAAGAAAABYAAAATwAAAEYAAAA7AAAAMQAAACgAAAAfAAAAFwAAABAAAAAKAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAKAAAAEQAA - ABwAAAAnAAAANAAAAEEAAABPAAAAXQAAAGoAAAB4ExMTkiQkJKotLS27NTU1yT09PddGRkbjS0tL6VBQ - UO9UVFT0WVlZ+llZWfpZWVn6WVlZ+lRUVPRQUFDvS0tL6UZGRuM9PT3XNjY2yS0tLbskJCSqExMTkgAA - AHgAAABqAAAAXQAAAE8AAABBAAAANAAAACcAAAAcAAAAEQAAAAoAAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAAwAAAAcAAAAPAAAAGQAAACcAAAA2AAAARwAAAFkAAABqDw8PiBoaGqMwMDDEQ0ND4E1N - Te9WVlb4Xl5e/2RkZP9vb2//fHx8/4iIiP+RkZH/mZmZ/6Ghof+np6f/q6ur/6urq/+np6f/oaGh/5qa - mv+SkpL/iIiI/3x8fP9wcHD/ZGRk/19fX/9XV1f4Tk5O70REROAxMTHEHBwcow8PD4gAAABqAAAAWQAA - AEcAAAA2AAAAJwAAABkAAAAPAAAABwAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAoAAAATAAAAIQAAADEAAABEAAAAWAAA - AG4RERGRLS0tv0FBQd5RUVH1XFxc/2lpaf+AgID/l5eX/6ysrP++vr7/y8vL/9XV1f/d3d3/5ubm/+zs - 7P/x8fH/9vb2//n5+f/6+vr/+vr6//n5+f/29vb/8vLy/+3t7f/m5ub/39/f/9fX1//Nzc3/v7+//66u - rv+Xl5f/goKC/2pqav9dXV3/UVFR9UFBQd4tLS2/ERERkQAAAG4AAABYAAAARAAAADEAAAAhAAAAEwAA - AAoAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AAoAAAAVAAAAJQAAADkAAABPAAAAZg4ODooqKiq7QkJC41VVVfxkZGT/fn5+/52dnf+3t7f/zc3N/93d - 3f/o6Oj/8fHx//f39//6+vr/+/v7//z8/P/8/Pz//v7+//7+/v////////////////////////////// - //////////////7+/v/+/v7//v7+//v7+//6+vr/9PT0/+vr6//f39//z8/P/7i4uP+enp7/gYGB/2Vl - Zf9WVlb8Q0ND4y0tLbsODg6KAAAAZgAAAE8AAAA5AAAAJQAAABUAAAAKAAAABAAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAoAAAAVAAAAJgAAADwAAABVAAAAbxkZGaI7OzvYTk5O9mJi - Yv+BgYH/o6Oj/8HBwf/X19f/5+fn//Hx8f/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//z8 - /P/+/v7//v7+/////////////////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7 - +//7+/v/+vr6//r6+v/39/f/9PT0/+rq6v/a2tr/w8PD/6ampv+EhIT/ZGRk/1BQUPY8PDzYGhoaogAA - AG8AAABVAAAAPAAAACYAAAAVAAAACgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAASAAAAIwAA - ADoAAABVAgICcyMjI7JCQkLlV1dX/3Nzc/+Xl5f/u7u7/9XV1f/l5eX/7e3t//Hx8f/y8vL/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+/v7//v7+//8/Pz//Pz8//7+/v/+/v7///////////////////////// - ///////////////////+/v7//v7+//z8/P/8/Pz/+/v7//v7+//6+vr/+fn5//n5+f/39/f/9vb2//X1 - 9f/x8fH/6Ojo/9nZ2f+9vb3/m5ub/3V1df9ZWVn/Q0ND5SUlJbICAgJzAAAAVQAAADoAAAAjAAAAEgAA - AAcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAANAAAAHAAAADQAAABQAAAAbiQkJLBDQ0PpXFxc/319ff+mpqb/yMjI/9zc - 3P/n5+f/6+vr/+3t7f/w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/6+vr/+/v7//z8 - /P/8/Pz//v7+//7+/v///////////////////////////////////////v7+//7+/v/+/v7//Pz8//z8 - /P/7+/v/+/v7//r6+v/5+fn/9/f3//f39//29vb/9fX1//T09P/y8vL/8PDw/+zs7P/h4eH/zc3N/6mp - qf+BgYH/XV1d/0ZGRukkJCSwAAAAbgAAAFAAAAA0AAAAHAAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAJAAAAFgAAACsAAABGAAAAZRoa - GqFBQUHnW1tb/4CAgP+pqan/y8vL/9/f3//m5ub/6Ojo/+vr6//s7Oz/7e3t/+/v7//x8fH/8vLy//T0 - 9P/19fX/9vb2//f39//5+fn/+vr6//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//7+/v////////////// - ///////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/39/f/9vb2//X1 - 9f/09PT/9PT0//Ly8v/w8PD/7+/v/+3t7f/r6+v/4uLi/9DQ0P+urq7/g4OD/11dXf9DQ0PnHBwcowAA - AGUAAABGAAAAKwAAABYAAAAJAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAEAAAADgAAACAAAAA6AAAAWQ8PD4g0NDTUUlJS/nl5ef+mpqb/x8fH/9vb2//i4uL/5eXl/+fn - 5//o6Oj/6urq/+vr6//t7e3/7+/v//Dw8P/x8fH/8vLy//T09P/19fX/9/f3//f39//5+fn/+vr6//v7 - +//8/Pz//Pz8//7+/v/+/v7//v7+//////////////////////////////////7+/v/+/v7//v7+//z8 - /P/8/Pz/+/v7//r6+v/6+vr/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7e3t/+zs - 7P/r6+v/5+fn/+Dg4P/Nzc3/qamp/3x8fP9VVVX+Nzc31A8PD4gAAABZAAAAOgAAACAAAAAOAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABwAAABQAAAArAAAASQAAAG0mJia4SEhI9Gxs - bP+ZmZn/v7+//9XV1f/f39//4eHh/+Li4v/l5eX/5ubm/+fn5//q6ur/6+vr/+zs7P/t7e3/8PDw//Hx - 8f/y8vL/9PT0//X19f/29vb/9/f3//n5+f/6+vr/+/v7//v7+//8/Pz//v7+//7+/v/+/v7///////// - /////////////////////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/x8fH/8PDw/+/v7//s7Oz/6+vr/+rq6v/o6Oj/5+fn/+Tk5P/b29v/xMTE/52d - nf9wcHD/SUlJ9CgoKLgAAABtAAAASQAAACsAAAAUAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA - AAoAAAAbAAAANQAAAFgRERGPPDw84l5eXv+FhYX/sLCw/83Nzf/Z2dn/3Nzc/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6 - +v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v/////////////////////////////////+/v7//v7+//7+ - /v/8/Pz/+/v7//v7+//6+vr/+fn5//f39//39/f/9vb2//X19f/09PT/8fHx//Dw8P/v7+//7e3t/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Tk5P/f39//0dHR/7a2tv+Kior/YGBg/z4+PuIRERGPAAAAWAAA - ADUAAAAbAAAACgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAANAAAAIQAAAD8AAABkIyMjtElJSfdxcXH/nZ2d/8HB - wf/R0dH/19fX/9ra2v/c3Nz/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq6v/r6+v/7e3t/+/v - 7//w8PD/8fHx//T09P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//7+/v/+/v7//v7+//// - //////////////////////////////7+/v/+/v7//v7+//z8/P/7+/v/+/v7//r6+v/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/x8fH/8PDw/+/v7//t7e3/6+vr/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Hh - 4f/d3d3/2dnZ/8fHx/+jo6P/dHR0/0tLS/ckJCS0AAAAZAAAAD8AAAAhAAAADQAAAAQAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAADwAA - ACUAAABHBgYGdDIyMtFcXFz/g4OD/66urv/Jycn/0dHR/9XV1f/X19f/2dnZ/9vb2//c3Nz/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+vr6//s7Oz/7e3t//Dw8P/x8fH/8vLy//T09P/19fX/9/f3//n5 - +f/6+vr/+vr6//v7+//8/Pz//v7+//7+/v/+/v7//////////////////////////////////v7+//7+ - /v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7e3t/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/9/f3//c3Nz/2dnZ/9DQ0P+0tLT/h4eH/19f - X/80NDTRBgYGdAAAAEcAAAAlAAAADwAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABEAAAApAAAATREREYc+Pj7lZmZm/5KSkv+4uLj/y8vL/9DQ - 0P/T09P/1dXV/9bW1v/X19f/2tra/9vb2//d3d3/39/f/+Hh4f/i4uL/5eXl/+bm5v/o6Oj/6urq/+zs - 7P/t7e3/7+/v//Hx8f/y8vL/9PT0//X19f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+ - /v/////////////////////////////////+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3d3d/9vb2//a2tr/19fX/9TU1P+/v7//l5eX/2pqav8/Pz/lERERhwAAAE0AAAApAAAAEQAA - AAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAATAAAALQAA - AFIYGBiURkZG8XBwcP+cnJz/vLy8/8rKyv/Ozs7/0NDQ/9HR0f/T09P/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/f39//4ODg/+Hh4f/k5OT/5ubm/+fn5//q6ur/6+vr/+zs7P/v7+//8PDw//Hx8f/09PT/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//////////////////////////////////7+ - /v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/93d3f/c3Nz/29vb/9nZ2f/X19f/1tbW/9HR - 0f/ExMT/o6Oj/3R0dP9KSkrxGBgYlAAAAFIAAAAtAAAAEwAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAGAAAAFAAAAC8AAABVGRkZnkpKSvV2dnb/pKSk/76+vv/IyMj/y8vL/83N - zf/Pz8//0NDQ/9HR0f/U1NT/1tbW/9fX1//a2tr/29vb/93d3f/f39//4eHh/+Li4v/l5eX/5ubm/+jo - 6P/q6ur/7Ozs/+3t7f/w8PD/8fHx//Ly8v/19fX/9vb2//f39//5+fn/+vr6//v7+//8/Pz//Pz8//7+ - /v/+/v7//////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7+//6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/y8vL/8fHx/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3Nzc/9vb2//a2tr/19fX/9bW1v/V1dX/09PT/9DQ0P/FxcX/qamp/3t7e/9PT0/1GxsbngAA - AFUAAAAvAAAAFAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABMAAAAwAAAAWCEh - IapRUVH6enp6/6Wlpf++vr7/xcXF/8jIyP/Kysr/y8vL/87Ozv/Pz8//0NDQ/9PT0//V1dX/1tbW/9nZ - 2f/a2tr/3Nzc/93d3f/g4OD/4eHh/+Tk5P/m5ub/5+fn/+rq6v/r6+v/7e3t/+/v7//x8fH/8vLy//X1 - 9f/29vb/+vr6//v7+//8/Pz//v7+//7+/v/+/v7///////////////////////////////////////// - //////////////7+/v/+/v7//Pz8//z8/P/6+vr/+fn5//b29v/19fX/9PT0//Hx8f/w8PD/7+/v/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/39/f/93d3f/c3Nz/2tra/9nZ2f/W1tb/1dXV/9TU - 1P/R0dH/0NDQ/87Ozv/FxcX/rKys/35+fv9TU1P6JCQkqgAAAFgAAAAwAAAAEwAAAAUAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAATAAAALgAAAFclJSWxUlJS/Hx8fP+mpqb/vLy8/8LCwv/FxcX/x8fH/8jI - yP/Kysr/y8vL/87Ozv/Pz8//0dHR/9PT0//V1dX/19fX/9nZ2f/b29v/3Nzc/9/f3//h4eH/4uLi/+Xl - 5f/m5ub/6Ojo/+vr6//s7Oz/8fHx//T09P/39/f/+vr6//r6+v/7+/v/+/v7//z8/P/g4fn/y8v3/6Gf - 8P+Ni+7/d3Tt/3d07f93dO7/d3Tu/3d07v93dO7/jYvw/6Kg8v+ioPL/ubf1/9nY+P/+/v7//Pz8//z8 - /P/7+/v/+vr6//f39//09PT/8fHx//Dw8P/t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4eHh/+Dg - 4P/d3d3/3Nzc/9vb2//Z2dn/19fX/9XV1f/U1NT/09PT/9DQ0P/Pz8//zs7O/8rKyv/ExMT/ra2t/4OD - g/9WVlb8JiYmsQAAAFcAAAAuAAAAEwAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAACsAAABVIyMjrVhY - WP1+fn7/pqam/7u7u//BwcH/wsLC/8PDw//FxcX/x8fH/8nJyf/Kysr/zc3N/87Ozv/Q0ND/0dHR/9TU - 1P/W1tb/19fX/9ra2v/b29v/3d3d/+Dg4P/h4eH/5OTk/+bm5v/q6ur/8PDw//X19f/29vb/9/f3//n5 - +f/a2fT/qKbs/3t55/9RTeH/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm - 5P8wJuP/MCbh/y8m4f8vJuD/LyXe/zIp3v9UUOL/hoPp/7u68P/19fn/+vr6//n5+f/29vb/8vLy/+3t - 7f/r6+v/6urq/+fn5//m5ub/5OTk/+Li4v/g4OD/39/f/9zc3P/b29v/2tra/9fX1//W1tb/1NTU/9PT - 0//Q0ND/z8/P/87Ozv/Ly8v/ysrK/8nJyf/ExMT/rq6u/4SEhP9cXFz9JiYmrQAAAFUAAAArAAAAEAAA - AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAgAAAA0AAAAnAAAATyIiIqVWVlb8fX19/6ampv+4uLj/vb29/7+/v//BwcH/wsLC/8TE - xP/T09P/ysrK/8nJyf/Kysr/zc3N/8/Pz//Q0ND/09PT/9TU1P/W1tb/2dnZ/9ra2v/c3Nz/39/f/+Hh - 4f/n5+f/7+/v//T09P/09PT/9fX1/7e36v97eeD/PznX/ywl1v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m - 3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m - 2v8uJdn/LSXY/zQt1/9qZ+D/tLPr//f39//39/f/9fX1//Hx8f/q6ur/5+fn/+Xl5f/k5OT/4eHh/+Dg - 4P/d3d3/3Nzc/9ra2v/Z2dn/1tbW/9XV1f/T09P/0dHR/8/Pz//Ozs7/zc3N/8rKyv/Jycn/yMjI/8fH - x//BwcH/ra2t/4SEhP9aWlr8IyMjpQAAAE8AAAAnAAAADQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAKAAAAIAAAAEcZGRmVVVVV+Hp6 - ev+jo6P/tbW1/7q6uv+8vLz/vb29/7+/v//BwcH/wsLC/9PU1f/c3Nz/ysrK/8nJyf/Ly8v/zc3N/8/P - z//R0dH/09PT/9XV1f/X19f/2dnZ/9vb2//h4eH/7Ozs//Dw8P/x8fH/zMzr/3V02/80Mc3/KiTN/ysk - 0P8rJNP/LCXW/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm - 5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdj/LCXW/ywk0/8rJNH/OTTS/4uK - 4f/l5fL/9fX1//Ly8v/s7Oz/5eXl/+Li4v/g4OD/39/f/9zc3P/b29v/2dnZ/9bW1v/V1dX/09PT/9HR - 0f/Q0ND/zs7O/83Nzf/Kysr/ycnJ/8jIyP/Hx8f/xMTE/8PDw/++vr7/qamp/4GBgf9YWFj4HR0dlQAA - AEcAAAAgAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABwAAABkAAAA9ERERgExMTPJ1dXX/nZ2d/7Ozs/+3t7f/uLi4/7q6uv+8vLz/vb29/7+/ - v//BwcH/b3Kp/8jJ2P/c3Nz/ysrK/8nJyf/Ly8v/zs7O/8/Pz//R0dH/1NTU/9bW1v/a2tr/5ubm/+3t - 7f/v7+//qarg/1JQz/8oIsb/KSPK/yoky/8qJM3/KyTQ/ysk0/8sJdb/LSXX/y4l2P8uJtr/Libd/y8l - 3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m - 3f8uJtr/LiXZ/y0l1/8sJdb/LCTT/ysk0f8qJM7/KiTM/y4py/9zctn/3+Dv//Ly8v/v7+//5ubm/9/f - 3//d3d3/29vb/9ra2v/X19f/1dXV/9TU1P/R0dH/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/IyMj/x8fH/8TE - xP/Dw8P/wcHB/7+/v/+7u7v/paWl/3t7e/9RUVHyExMTgAAAAD0AAAAZAAAABwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAATAAAANAUFBWVGRkbjb29v/5aW - lv+tra3/s7Oz/7W1tf+3t7f/uLi4/7q6uv+8vLz/vb29/7+/v/9VWaD/Nzqj/9DR3P/d3d3/ysrK/8rK - yv/Ly8v/zs7O/9DQ0P/T09P/2tra/+jo6P/s7Oz/ubnh/0hGyP8mIsD/JyHE/ygixv8pIsn/KiPL/yok - zf8rJND/KyTT/ywl1v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm - 5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1v8sJNP/KyTR/yok - zv8qJMz/KSPK/ygjx/8vKsb/fH3X/+Xm7v/w8PD/6Ojo/93d3f/a2tr/19fX/9bW1v/U1NT/09PT/9DQ - 0P/Pz8//zc3N/8vLy//Jycn/yMjI/8fHx//ExMT/w8PD/8HBwf+/v7//vr6+/7y8vP+2trb/np6e/3V1 - df9JSUnjBQUFZQAAADQAAAATAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAACAAAADgAAACoAAABVNzc3x2dnZ/+Ojo7/qKio/7CwsP+zs7P/tLS0/7W1tf+3t7f/uLi4/7q6 - uv+8vLz/vb29/1BUn/8cHpn/OTyp/83O3P/f39//y8vL/8rKyv/Nzc3/z8/P/93d3f/o6Oj/0NHk/1hZ - yP8lIbv/JiG+/yYiwP8nIcT/KCLG/ykiyf8qI8v/KiTN/ysk0P8rJNP/LCXU/y0l1/8uJdj/Liba/y4m - 3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l - 3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk0/8rJNH/KiTO/yoky/8pI8r/KCPH/ycixP8mIsL/ODbE/6ip - 3v/t7e3/6+vr/9zc3P/W1tb/1dXV/9PT0//Q0ND/z8/P/83Nzf/Ly8v/ycnJ/8jIyP/Hx8f/xMTE/8PD - w//BwcH/v7+//76+vv+9vb3/vLy8/7q6uv+wsLD/k5OT/2xsbP84ODjHAAAAVQAAACoAAAAOAAAAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAkAAAAgAAAASSUlJaRcXFz+goKC/6Gh - of+tra3/r6+v/7Kysv+zs7P/tLS0/7W1tf+2trb/uLi4/7q6uv+8vLz/Rkqa/xwdmf8dHaD/NTiq/8vM - 2v/f39//zc3N/8rKyv/d3d3/5+fn/6Wl2P8vL7r/JCC6/yUhu/8mIb7/JiLA/ychxP8oIsb/KSLJ/yoj - y/8qI83/KyTQ/ysk0/8sJdT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm - 5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdb/LCTT/ysk - 0f8qJM7/KiTL/ykjyv8oIsf/JyHE/yYiwv8mIb7/JSG9/1layP/f3+j/6urq/93d3f/T09P/0dHR/8/P - z//Ozs7/y8vL/8rKyv/IyMj/x8fH/8TExP/Dw8P/wcHB/7+/v/++vr7/vb29/7u7u/+6urr/uLi4/7a2 - tv+pqan/iIiI/2FhYf4mJiakAAAASQAAACAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAFAAAAFgAAADoTExOCUVFR9Xd3d/+ampr/q6ur/62trf+urq7/r6+v/7CwsP+ysrL/tLS0/7W1 - tf+2trb/uLi4/7q6uv9DRpn/HB2a/x0doP8dHaH/MzWr/8fH2v/g4OD/2tra/+Hh4/9rbcX/IiCz/yMg - tv8kILj/JSG7/yYhvv8mIsD/JyHE/ygixv8pIsn/KiPL/yojzf8rJND/KyTT/ywl1P8tJdf/LiXY/y4m - 2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m - 4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1v8sJNP/KyTR/yokzv8qI8v/KSPK/ygix/8nIcT/JiLC/yYh - vv8lIbz/JCC6/zY2vP+/v97/6urq/9/f3//Q0ND/zs7O/8vLy//Kysr/yMjI/8fHx//ExMT/w8PD/8HB - wf+/v7//vr6+/7y8vP+7u7v/urq6/7i4uP+3t7f/tra2/7Ozs/+jo6P/fHx8/1VVVfUVFRWCAAAAOgAA - ABYAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAA4AAAAsAgICXkVFReFtbW3/kJCQ/6Wl - pf+pqan/q6ur/62trf+urq7/r6+v/7CwsP+ysrL/s7Oz/7W1tf+2trb/uLi4/zxAmP8cHZr/HR2f/x0d - of8eHaT/LzCr/8TF2v/g4OL/WFq+/yIfsP8iILP/IyC2/yQguP8lIbv/JiG+/yYiwP8nIcT/KCLF/yki - yf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm - 4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk - 0/8rJNH/KiTO/yojy/8pIsn/KCLH/ychxP8mIsL/JiG+/yUhvP8kILr/IyC2/ygmtv+QktH/5+fn/+Hh - 4f/Ozs7/ysrK/8jIyP/Hx8f/xMTE/8PDw//BwcH/v7+//76+vv+8vLz/u7u7/7q6uv+4uLj/tra2/7W1 - tf+0tLT/s7Oz/66urv+Xl5f/cnJy/0lJSeECAgJeAAAALAAAAA4AAAACAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAHAAAAHwAAAEktLS2yZGRk/4aGhv+fn5//pqam/6ioqP+pqan/q6ur/6ysrP+tra3/r6+v/7Cw - sP+ysrL/s7Oz/7W1tf+2trb/NjiV/xwdm/8dHZ//HR2h/x4dpP8fHab/Ly+t/1dZvf8hH63/Ih+w/yIg - s/8jILb/JCC4/yUhu/8mIb7/JiLA/ychxP8oIsX/KSLJ/yojy/8qI83/KyTQ/ysj0v8sJNT/LSXX/y4l - 2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m - 4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdT/LCTT/ysj0f8qJM7/KiPL/ykiyf8oIsf/JyHE/yYi - wv8mIb7/JSG8/yQguv8jILb/IiC0/yIgsP9iY8L/3d3j/+Dg4P/Kysr/x8fH/8TExP/Dw8P/wcHB/7+/ - v/+9vb3/vLy8/7u7u/+4uLj/t7e3/7a2tv+1tbX/tLS0/7Ozs/+ysrL/r6+v/6enp/+Ojo7/ampq/zAw - MLIAAABJAAAAHwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABMAAAA1FBQUfVVVVfd5eXn/l5eX/6Sk - pP+mpqb/p6en/6ioqP+pqan/q6ur/6ysrP+tra3/rq6u/6+vr/+ysrL/s7Oz/7S0tP8zN5X/HB2c/x0d - n/8dHaH/Hh2k/x8dpv8fHqf/IB6r/yEerf8iH7D/IiCz/yMhtf8kILj/JSG7/yYhvv8mIsD/JyHD/ygi - xf8pIsn/KiPL/yojzf8rJND/KyPS/ywk1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm - 4P8wJt7/LyXe/y8l3v8vJd7/LyXe/zAm3v8wJt//Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl - 1P8sJNP/KyPR/yojzv8qI8v/KSLJ/ygixv8nIcT/JiLC/yYhvv8lIbz/JCC4/yMgtv8iILT/IiCw/yEf - rv9AQ7b/0NDe/93d3f/Hx8f/w8PD/8HBwf+/v7//vb29/7y8vP+7u7v/uLi4/7e3t/+2trb/tbW1/7S0 - tP+ysrL/sLCw/6+vr/+urq7/rKys/6CgoP+AgID/W1tb9xQUFH0AAAA2AAAAEwAAAAMAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJAAAAFJAQEDVbW1t/46Ojv+enp7/o6Oj/6SkpP+lpaX/pqam/6enp/+oqKj/qamp/6ur - q/+tra3/rq6u/6+vr/+wsLD/s7Oz/ystkv8cHZv/HB2f/x0dof8dHaT/Hh2l/x8ep/8gHqv/IB6t/yEe - sP8iH7P/IyC1/yMguP8kIbv/JSG+/yYiwP8mIcP/JyLF/ykiyf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0k - 1/8uJdj/Liba/y4m2v8uJdj/LibT/y0l0f8tJcz/LSXJ/y0lw/8tJcP/LSXD/y0lw/8tJcP/LSXE/y0l - yf8tJc3/LSXR/y4l1v8uJtr/Liba/y4l2f8tJdf/LCXU/ywk0/8rI9H/KiPO/yojy/8pIsn/KCLG/ych - xP8mIsL/JiG+/yUhvP8kILj/IyC2/yIgtP8iILD/IR+u/yAgq/84ObL/y8za/9vb2//Dw8P/vr6+/729 - vf+8vLz/urq6/7i4uP+3t7f/tbW1/7S0tP+zs7P/srKy/7CwsP+vr6//rq6u/62trf+srKz/p6en/5SU - lP9ycnL/RERE1QAAAFIAAAAkAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABUAAAA6IiIilV9fX/5+fn7/mZmZ/5+f - n/+hoaH/o6Oj/6SkpP+lpaX/paWl/6enp/+oqKj/qamp/6urq/+srKz/ra2t/6+vr/+wsLD/KCmS/xwd - nP8cHZ//HB2h/x0dpP8eHaX/Hx6n/yAeq/8gHq3/IR6w/yIfsv8jILX/IyC4/yQgu/8lIb7/JiK//yYh - w/8nIsX/KCLJ/ykjy/8qI83/KiTO/ysj0v8sJNT/LSTW/y0k0/8tJM7/LCTG/yskvP8qI7L/KSSq/ykj - ov8oI57/KCOa/ygjmv8oI5r/KCOa/ygjmv8oI5r/KCOc/ygjo/8qJKz/KyS3/ywkxP8sJcz/LSTS/y0l - 1P8sJNT/LCPS/ysj0f8qI87/KiPL/ykiyf8oIsb/JyHE/yYiwv8mIb7/JSG8/yQguP8jILb/IiC0/yIg - sP8hH67/IB+r/yAeqf80Nq3/ysvZ/9bW1v++vr7/u7u7/7q6uv+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+wsLD/rq6u/62trf+srKz/q6ur/6urq/+oqKj/oaGh/4aGhv9kZGT+IyMjlQAAADoAAAAVAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJgICAlhLS0vlcXFx/4+Pj/+dnZ3/n5+f/5+fn/+goKD/oaGh/6Ojo/+kpKT/paWl/6am - pv+np6f/qKio/6urq/+srKz/ra2t/6+vr/8jI4//HB2c/xwdn/8cHaH/HR2j/x4dpf8fHqf/IB6r/yAe - rf8hHq//Ih+y/yMgtf8jILj/JCC7/yUhvv8mIr//JiHD/ycixf8oIsn/KSPL/yojzf8qJM7/KyTQ/ysk - zv8rJMX/KiO4/ygjq/8nIp7/JyKW/yYikf8mIoz/JiKK/yomjP9IRZ7/SUaf/0lGn/9JRp//SUaf/0hF - nv8oJIn/JiKL/yYhjv8nIpT/KCKc/ygjqP8qI7X/KyPD/yslzP8sI9H/KyPR/yojzv8qI8v/KSLJ/ygi - xv8nIcP/JiLC/yYhvv8lIbz/JCC4/yMhtf8iILT/Ih+w/yEerv8gH6v/IB6p/x8dpv84Oq3/0NHZ/87O - zv+6urr/t7e3/7a2tv+1tbX/s7Oz/7Kysv+wsLD/r6+v/66urv+tra3/rKys/6urq/+pqan/qKio/6en - p/+lpaX/l5eX/3d3d/9PT0/lAgICWAAAACYAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABUAAAA8KCgon2VlZf+CgoL/l5eX/5yc - nP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ghof+jo6P/pKSk/6Wlpf+np6f/qKio/6mpqf+rq6v/r6+v/xwe - jf8cHZz/HB2f/xwdof8dHaP/Hh2l/x8ep/8gHqv/IB6t/yEer/8iH7L/IyC1/yMguP8kILv/JSC9/yYh - v/8mIcP/JyLF/ygiyf8pI8v/KiPM/yojyf8pIsL/KCK0/yYhov8mIZT/JSGL/yUgh/9RT6D/hIO9/7Cv - 1P/e3e3//Pz8//7+/v///////////////////////v7+//z8/P/V1ej/rq3T/11aqP8qJ4v/JSGL/yYh - kv8mIp//KCOy/yojwv8rI8z/KiPN/yojy/8pIsn/KCLG/yYhw/8mIsD/JSG+/yQhvP8jILj/IyC1/yIf - s/8hH7D/IB6u/yAfq/8gHqn/Hx2m/x4dpP9ESK7/1tbY/8HBwf+2trb/tLS0/7Ozs/+ysrL/sLCw/6+v - r/+tra3/rKys/6urq/+pqan/qKio/6ioqP+np6f/pqam/6Wlpf+fn5//iIiI/2tra/8rKyugAAAAPAAA - ABUAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJQICAlhMTEzmcnJy/46Ojv+ZmZn/m5ub/5ycnP+cnJz/nZ2d/56env+fn5//oKCg/6Gh - of+jo6P/pKSk/6Wlpf+mpqb/p6en/6ioqP+srK3/GxyM/xwcnP8cHZ//HB2g/x0do/8eHaX/Hx6n/yAe - q/8gHqz/IR6v/yIfsv8jILX/IyC4/yQgu/8lIL3/JiG//yYhw/8nIcX/KCLH/ygixf8oIr7/JyKv/yUh - n/8kII//Ix+H/0RClf+QkMD/3t3o//X19f/39/f/+vr6//v7+//8/Pz//v7+//////////////////7+ - /v/+/v7//Pz8//v7+//5+fn/9vb2/+fn7v+dnMf/VlSg/yYih/8kII//JiGi/ygitf8pIsT/KSPJ/ygi - yf8nIsb/JiHD/yYiwP8lIb7/JCC8/yMguP8jILX/Ih+z/yEfsP8gHq7/IB+r/x8eqf8eHaX/HR2k/x0d - ov9maLX/1tbW/7a2tv+ysrL/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qamp/6ioqP+np6f/pqam/6Wl - pf+kpKT/pKSk/6Ghof+VlZX/eHh4/1BQUOYCAgJYAAAAJQAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABMAAAA5KSkpnmVlZf+BgYH/lJSU/5mZ - mf+ampr/mpqa/5ubm/+cnJz/nZ2d/52dnf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+lpaX/p6en/6Kj - qf8bHI3/HByc/xwcnf8cHaD/HR2j/x4dpf8fHqf/IB6q/yAerP8hHq//Ih+y/yMgtf8jILj/JCC6/yUg - vf8mIb//JiHD/ychwv8nIrz/JiKu/yUfnP8jH43/Ix+F/0VElv+np8n/6+vr/+3t7f/x8fH/9PT0//b2 - 9v/5+fn/+/v7//z8/P/+/v7//////////////////v7+//7+/v/8/Pz/+vr6//n5+f/29vb/9PT0//Hx - 8f/v7+//ysrb/05Om/8jH4b/JCCT/yYhqf8oIrz/KCLG/ycixv8mIcP/JiLA/yUgvf8kILz/IyC4/yMg - tf8iH7P/IR+v/yAerv8gH6v/Hx6p/x4dpf8dHaP/HR2i/xwdnf+focb/y8vL/7CwsP+vr6//ra2t/6ys - rP+rq6v/qamp/6ioqP+np6f/pqam/6Wlpf+kpKT/pKSk/6Ojo/+hoaH/oKCg/52dnf+Hh4f/ampq/y0t - LZ4AAAA5AAAAEwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAHAAAAIQMDA1JJSUngcXFx/4qKiv+VlZX/lpaW/5eXl/+ZmZn/mpqa/5qamv+bm5v/nJyc/52d - nf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+lpaX/nJ2o/xsbjf8cHJz/HByd/xwcoP8dHKP/Hh2l/x8d - p/8gHqr/IB6s/yEer/8iH7L/IyC1/yMgt/8kILr/JSC9/yYhv/8mIcD/JiC1/yMfnv8iHov/IR6C/z08 - jv+iocD/4uLi/+bm5v/q6ur/7e3t//Dw8P/09PT/9vb2//n5+f/7+/v//Pz8//7+/v////////////// - ///+/v7//v7+//v7+//6+vr/9/f3//X19f/y8vL/8PDw/+3t7f/q6ur/5+fn/5mYv/8xMIn/Ih6J/yUg - n/8mIbf/JyLD/yYhw/8mIcD/JSC9/yQgu/8jILj/IyC1/yIfs/8hH6//IB6t/yAfq/8fHqn/Hh2l/x0d - o/8cHaH/HB2f/ygroP/HxtH/vb29/62trf+rq6v/qamp/6ioqP+np6f/pqam/6ampv+lpaX/pKSk/6Oj - o/+hoaH/oKCg/6CgoP+fn5//nZ2d/5KSkv93d3f/TU1N4AMDA1IAAAAhAAAABwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA8AAAAxISEhi2RkZP98fHz/kJCQ/5SU - lP+VlZX/lpaW/5aWlv+Xl5f/mZmZ/5qamv+ampr/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Oj - o/+YmKX/GxuN/xwcm/8cHJ3/HByg/x0co/8eHKX/Hx2m/yAdqv8gHaz/IR6v/yIfsv8iILT/IyC3/yQg - uv8lIL3/JiG//yYhv/8kIKz/IR2P/zQyh/+Li7L/2tra/93d3f/h4eH/5eXl/+jo6P/s7Oz/7+/v//Ly - 8v/19fX/9/f3//r6+v/8/Pz//v7+//////////////////7+/v/8/Pz/+/v7//r6+v/39/f/9fX1//Hx - 8f/v7+//7Ozs/+jo6P/l5eX/4uLi/9TU2v9gYKD/IR+F/yMfmv8lIbP/JiG+/yYhwP8lIL3/JCC7/yMg - uP8jILX/Ih+z/yEfr/8gHq3/IB+r/x8eqf8eHaX/HR2j/xwdof8cHZ//HB2c/0tPqf/T09P/r6+v/6mp - qf+oqKj/p6en/6ampv+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//np6e/52dnf+dnZ3/l5eX/4SE - hP9paWn/IiIiiwAAADEAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAEAAAAGgAAAEVDQ0PPbm5u/4aGhv+SkpL/k5OT/5SUlP+UlJT/lZWV/5aWlv+Wlpb/l5eX/5mZ - mf+ampr/mpqa/5ubm/+cnJz/nZ2d/56env+fn5//oKCg/42NoP8bG47/HByb/xwcnf8cHKD/HRyj/x0c - pP8eHab/Hx2q/yAdrP8gHa//IR6y/yIftP8jILf/IyC6/yUgvf8mIb//JiHA/ysmt/+EhL//y8vO/9TU - 1P/X19f/29vb/9/f3//i4uL/5ubm/+rq6v/t7e3/8fHx//X19f/39/f/+vr6//z8/P/+/v7///////// - /////////v7+//z8/P/7+/v/+fn5//b29v/09PT/8fHx/+3t7f/q6ur/5+fn/+Tk5P/g4OD/3Nzc/9ra - 2v97e6v/IB2C/yIelv8kIK//JiG8/yUgvf8kILv/IyC3/yMgtf8iH7P/IR+v/yAerf8gH6r/Hx6p/x4d - pf8dHaP/HB2h/xwdn/8cHJz/Gxua/36Ct//CwsL/p6en/6ampv+lpaX/pKSk/6Ojo/+hoaH/oKCg/5+f - n/+fn5//np6e/52dnf+dnZ3/nJyc/5ubm/+ampr/jo6O/3R0dP9ISEjPAAAARQAAABoAAAAEAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAnExMTa1paWvZ3d3f/i4uL/5GR - kf+SkpL/kpKS/5OTk/+Tk5P/lJSU/5WVlf+Wlpb/lpaW/5eXl/+ZmZn/mpqa/5qamv+bm5v/nJyc/52d - nf+enp7/iIqf/xobjv8bHJv/HByd/xwcoP8dHKP/HRyk/x4dpv8fHar/IB2s/yAdr/8hHrD/Ih+0/yMf - t/8jH7r/JCC8/yUhvv8mIcL/WlnM/+Xl5f/Z2dn/0dHR/9XV1f/Z2dn/3Nzc/+Hh4f/l5eX/6Ojo/+zs - 7P/w8PD/9PT0//b29v/6+vr/+/v7//7+/v/////////////////+/v7//Pz8//v7+//5+fn/9vb2//Ly - 8v/w8PD/7Ozs/+jo6P/l5eX/4eHh/93d3f/b29v/19fX/9TU1P+EhK3/IB6B/yEelf8kIK//JSC7/yQg - u/8jILf/IyC1/yIfs/8hH6//IB6t/yAeqv8fHqn/Hh2l/x0co/8cHaH/HByd/xwcnP8bG5r/ICOZ/7q7 - yf+tra3/pKSk/6Ojo/+hoaH/oKCg/5+fn/+fn5//np6e/52dnf+cnJz/nJyc/5ubm/+ampr/mpqa/5mZ - mf+Tk5P/fX19/19fX/YTExNrAAAAJwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAEgAAADczMzOoaWlp/4GBgf+Ojo7/kJCQ/5GRkf+RkZH/kpKS/5KSkv+Tk5P/k5OT/5SU - lP+VlZX/lZWV/5aWlv+Xl5f/mZmZ/5qamv+ampr/m5ub/5ycnP+Dg53/GhuP/xscm/8cHJ3/HByg/x0c - ov8dHKT/Hh2m/x8dqv8gHaz/IB2u/yEesP8iH7T/Ix+3/yMfuv8kH7z/JSC+/yYhwv8mIcT/fHvU/+Xl - 5f/a2tr/09PT/9bW1v/a2tr/39/f/+Li4v/n5+f/6+vr/+/v7//y8vL/9vb2//n5+f/7+/v//v7+//// - //////////////7+/v/8/Pz/+vr6//f39//19fX/8fHx/+/v7//r6+v/5+fn/+Tk5P/g4OD/3Nzc/9nZ - 2f/V1dX/0dHR/87Ozv+Ojq//IyCC/yEel/8kIK//JCC4/yMgt/8iILT/Ih+z/yEer/8gHa3/IB6q/x8d - p/8eHKX/HRyj/xwdof8cHJ3/HByb/xsbmv8aG5j/VVip/7+/v/+hoaH/oKCg/5+fn/+fn5//np6e/52d - nf+cnJz/nJyc/5ubm/+ampr/mpqa/5mZmf+Xl5f/l5eX/5SUlP+Hh4f/bm5u/zY2NqgAAAA3AAAAEgAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAASUxMTN1xcXH/hoaG/4yM - jP+Pj4//j4+P/5CQkP+QkJD/kZGR/5GRkf+SkpL/kpKS/5OTk/+UlJT/lJSU/5WVlf+Wlpb/l5eX/5mZ - mf+ampr/mpqa/25xjv8XFor/GBeW/xgXmP8YGJn/GRmc/xoYn/8bGaH/Gxmk/xwapv8dGar/Hhqs/x8c - rv8gG7L/IBy0/yEct/8iHrr/Ix29/yQev/8lH8P/d3fF/8vLy//Pz8//1NTU/9fX1//c3Nz/4eHh/+Xl - 5f/q6ur/7e3t//Hx8f/19fX/+fn5//v7+//+/v7//////////////////v7+//z8/P/6+vr/9/f3//T0 - 9P/w8PD/7Ozs/+jo6P/l5eX/4eHh/93d3f/a2tr/1dXV/9HR0f/Ozs7/y8vL/8jIyP+Fhaj/HhuB/yEd - nP8jILP/IyC3/yIftP8hHrL/IB6v/yAdrf8fHqr/Hh2n/x4cpf8dHKP/HB2h/xwcnf8cHJv/GxuZ/xob - mP8cHJf/p6rB/6Wlpf+enp7/np6e/52dnf+cnJz/m5ub/5ubm/+ampr/mZmZ/5mZmf+Xl5f/l5eX/5aW - lv+VlZX/lJSU/4uLi/92dnb/UFBQ3QAAAEkAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAACQAAACcWFhZwYGBg+3l5ef+IiIj/jIyM/46Ojv+Ojo7/j4+P/4+Pj/+Pj4//kJCQ/5CQ - kP+RkZH/kpKS/5KSkv+Tk5P/k5OT/5SUlP+VlZX/lpaW/5eXl/+ZmZn/a2yM/xYWiv8YF5X/GBeX/xgX - mf8ZF5z/Ghif/xsZof8bGaP/HBql/x0Zqf8dGqv/Hhuu/yAbsv8gHLT/IRy3/yIduv8jHb3/Ix6//yUe - w/8mH8X/eXjG/83Nzf/Q0ND/1dXV/9ra2v/f39//4uLi/+fn5//s7Oz/8PDw//T09P/39/f/+/v7//z8 - /P/////////////////+/v7/+/v7//n5+f/29vb/8vLy/+/v7//r6+v/5+fn/+Li4v/f39//29vb/9bW - 1v/T09P/z8/P/8vLy//IyMj/xMTE/8HBwf9naJr/HhuF/yEeo/8iH7P/Ih+0/yEesv8gHq//IB2t/x8e - qv8eHaf/HRyk/x0co/8cHaH/HByd/xscm/8aG5n/GhuY/xoal/9MUKL/tra2/52dnf+cnJz/m5ub/5qa - mv+ampr/mZmZ/5eXl/+Xl5f/lpaW/5aWlv+VlZX/lZWV/5SUlP+UlJT/j4+P/35+fv9kZGT7GRkZcAAA - ACcAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAQAAAAMzk5Oapra2v/gICA/4qK - iv+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//j4+P/5CQkP+QkJD/kZGR/5GRkf+SkpL/k5OT/5OT - k/+UlJT/lZWV/5aWlv9iZIr/FhaK/xcXlf8YF5f/GBeZ/xkYnP8ZF53/Gxig/xsYo/8cGaX/HRmp/x0a - q/8eG67/Hxqy/yAbtP8hHLf/Ih26/yMcvf8jHb//JB7D/yYfxf8nH8f/fn3H/87Ozv/R0dH/1tbW/9vb - 2//g4OD/5eXl/+rq6v/v7+//8vLy//f39//6+vr//Pz8//7+/v////////////7+/v/7+/v/+fn5//X1 - 9f/x8fH/7e3t/+jo6P/l5eX/4ODg/9zc3P/X19f/1NTU/8/Pz//Ly8v/yMjI/8TExP/BwcH/vr6+/7u7 - u/8/Poj/HxyN/yEfqv8iH7L/IR6y/yAerv8gHaz/Hx6q/x4dp/8dHKT/HRyi/xwdof8cHJ3/Gxyb/xob - mf8aG5f/GhuW/xock/+vscD/nZ2d/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5WVlf+VlZX/lJSU/5SU - lP+Tk5P/k5OT/5KSkv+RkZH/hoaG/3BwcP88PDyqAAAANAAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAwAAABcAAABBSkpK0nFxcf+Dg4P/ioqK/4qKiv+Kior/i4uL/4uLi/+Li4v/jIyM/4yM - jP+Ojo7/jo6O/4+Pj/+Pj4//kJCQ/5CQkP+RkZH/kpKS/5KSkv+Tk5P/lJSU/11ghv8WFoj/FxeR/xcX - kf8XF5P/GBeV/xkXl/8aGJn/Gxec/xsYn/8cGaL/HRqj/x0apf8eGqn/Hxur/yAbrv8gHK//Ihyy/yId - s/8jHrb/JB63/yUduv8mH73/goHE/8/Pz//U1NT/2dnZ/93d3f/i4uL/6Ojo/+3t7f/x8fH/9vb2//r6 - +v/8/Pz//v7+/////////////v7+//v7+//39/f/9PT0//Dw8P/r6+v/5+fn/+Li4v/d3d3/2dnZ/9XV - 1f/Q0ND/zc3N/8jIyP/ExMT/wcHB/729vf+7u7v/t7e3/6Skr/8lJH//IB2Z/yEerv8hHrL/IB6u/yAd - rP8fHqr/Hh2n/x0cpP8dHKL/HB2g/xwcnf8bHJv/GhuZ/xobl/8aG5b/GRuV/19jpv+np6f/l5eX/5eX - l/+Wlpb/lZWV/5WVlf+UlJT/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5GRkf+JiYn/dnZ2/01N - TdMAAABBAAAAFwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAHxAQEF5ZWVnwdXV1/4SE - hP+JiYn/iYmJ/4mJif+Kior/ioqK/4qKiv+Li4v/i4uL/4uLi/+MjIz/jIyM/46Ojv+Ojo7/j4+P/4+P - j/+QkJD/kZGR/5GRkf+SkpL/V1mA/xUWeP8WFn7/FhZ9/xYWff8XF37/GBeB/xgXgv8YF4X/GReG/xoY - if8bGYr/GxqM/xwZjv8dGpD/HRqU/x4blf8fGpT/IBuU/yAclv8gHJj/IhyZ/yIem/8jHZ//goK4/9DQ - 0P/V1dX/2tra/+Dg4P/m5ub/6+vr//Dw8P/19fX/+fn5//z8/P/+/v7////////////8/Pz/+vr6//b2 - 9v/y8vL/7+/v/+rq6v/l5eX/4ODg/9vb2//W1tb/0dHR/83Nzf/Jycn/xMTE/8HBwf+9vb3/urq6/7e3 - t/+0tLT/srKy/3N1mP8cGoX/IR6k/yEesP8gHq7/IB2s/x8dqf8eHaf/HRyk/x0bov8cHKD/HBud/xsb - m/8aGpn/GhqX/xoalv8ZGpT/ISSS/7Cytf+VlZX/lZWV/5SUlP+UlJT/k5OT/5OTk/+SkpL/kpKS/5GR - kf+RkZH/kJCQ/5CQkP+QkJD/j4+P/4qKiv97e3v/XFxc8RAQEF4AAAAgAAAABgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAoAAAApJiYmhGhoaP97e3v/hYWF/4iIiP+IiIj/iIiI/4iIiP+JiYn/iYmJ/4mJ - if+Kior/ioqK/4uLi/+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//kJCQ/5CQkP9QUnj/FBVh/xQW - ZP8VFmT/FRVl/xYWZv8WFmf/FhZp/xcWa/8XFmz/GBdu/xgXb/8YGHH/Ghhz/xsYdf8bGHf/Gxp3/xwa - eP8dGnj/HRp6/x0bfP8fG33/IByA/yAcgv8iHoX/iomx/9HR0f/X19f/3Nzc/+Li4v/o6Oj/7+/v//T0 - 9P/39/f/+/v7//7+/v////////////z8/P/6+vr/9vb2//Hx8f/s7Oz/5+fn/+Hh4f/c3Nz/19fX/9PT - 0//Ozs7/ycnJ/8TExP/BwcH/vb29/7q6uv+2trb/s7Oz/7CwsP+urq7/rKys/zU2g/8eG5T/IR6q/yAd - rv8gHaz/Hx2p/x4cpv8dG6T/HRui/xwcoP8cG5z/Gxub/xoamf8aGpf/GhqW/xkalP8YGpH/h4qw/5WV - lf+Tk5P/k5OT/5KSkv+SkpL/kZGR/5GRkf+QkJD/kJCQ/4+Pj/+Pj4//j4+P/46Ojv+Ojo7/i4uL/4CA - gP9sbGz/JiYmhAAAACkAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADwAAADI7OzuwbW1t/35+ - fv+FhYX/h4eH/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/ioqK/4uL - i/+Li4v/jIyM/4yMjP+Ojo7/jo6O/1pbef8mKWP/Jylk/zM1av8/QXD/P0Jx/0BDcv9BQ3P/QkN1/0ND - dv9ERHj/RUV5/0ZGe/9HR33/R0l+/0hKgf9KS4L/Y2KO/2pqkv9ra5X/bW2X/3Bwmv9ycpz/dnWh/3l5 - pP9/fqr/yMjK/9PT0//Z2dn/4ODg/+bm5v/s7Oz/8vLy//f39//7+/v//v7+///////+/v7//Pz8//n5 - +f/09PT/7+/v/+rq6v/k5OT/39/f/9nZ2f/T09P/zs7O/8nJyf/ExMT/v7+//7y8vP+4uLj/tbW1/7Ky - sv+vr6//ra2t/6urq/+oqKj/hYaa/xwagv8gHaH/IB2t/x8drP8fHan/Hhym/x0bpP8dG6L/HByg/xwb - nP8bG5v/GhqZ/xoal/8aGpb/GRqU/xgak/9KTpv/np6e/5GRkf+RkZH/kJCQ/5CQkP+QkJD/j4+P/4+P - j/+Ojo7/jo6O/46Ojv+MjIz/jIyM/4yMjP+Kior/hISE/3Fxcf8+Pj6wAAAAMgAAAA8AAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAUAAAAPE1NTdVxcXH/gICA/4aGhv+Ghob/hoaG/4aGhv+Ghob/h4eH/4eH - h/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/i4uL/4uLi/+MjIz/jIyM/46O - jv+Pj4//j4+P/5CQkP+RkZH/kpKS/5OTk/+Tk5P/lZWV/5aWlv+Xl5f/mpqa/5ubm/+dnZ3/n5+f/6Gh - of+kpKT/pqam/6mpqf+tra3/sLCw/7S0tP+4uLj/vb29/8PDw//IyMj/z8/P/9XV1f/c3Nz/4uLi/+rq - 6v/w8PD/9vb2//v7+//+/v7///////7+/v/7+/v/9/f3//Ly8v/t7e3/5+fn/+Hh4f/b29v/1dXV/8/P - z//Jycn/xMTE/7+/v/+8vLz/t7e3/7S0tP+wsLD/rq6u/6urq/+oqKj/pqam/6Wlpf+jo6P/PDyB/x0b - lf8fHan/Hx2s/x4dqf8dHKb/HRuj/x0bov8cHKD/HBuc/xsbmv8aGpn/GhqX/xoalv8ZGpT/GBqT/x4f - jP+lpaf/kJCQ/4+Pj/+Pj4//j4+P/46Ojv+Ojo7/jIyM/4yMjP+MjIz/i4uL/4uLi/+Li4v/i4uL/4qK - iv+FhYX/dXV1/1JSUtUAAAA8AAAAFAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABoDAwNKV1dX63V1 - df+BgYH/hYWF/4WFhf+FhYX/hYWF/4WFhf+Ghob/hoaG/4aGhv+Ghob/h4eH/4eHh/+Hh4f/h4eH/4iI - iP+IiIj/iIiI/4mJif+JiYn/ioqK/4qKiv+Li4v/i4uL/4yMjP+MjIz/jo6O/4+Pj/+Pj4//kJCQ/5GR - kf+SkpL/k5OT/5SUlP+Wlpb/l5eX/5qamv+bm5v/nZ2d/5+fn/+hoaH/paWl/6enp/+rq6v/r6+v/7Oz - s/+4uLj/vb29/8PDw//Jycn/0NDQ/9fX1//f39//5ubm/+3t7f/19fX/+vr6//7+/v///////v7+//v7 - +//29vb/8fHx/+rq6v/k5OT/3Nzc/9bW1v/Q0ND/ysrK/8TExP+/v7//u7u7/7a2tv+zs7P/r6+v/62t - rf+pqan/p6en/6Wlpf+jo6P/oKCg/5+fn/9+fpL/GxmF/x4dov8fHav/Hh2p/x0cpv8dG6P/HBui/xsc - oP8bG5z/Ghua/xoamP8aGpf/GhqW/xkalP8YGpP/GBqM/4iLpv+Ojo7/jo6O/4yMjP+MjIz/jIyM/4uL - i/+Li4v/i4uL/4qKiv+Kior/ioqK/4qKiv+JiYn/iYmJ/4aGhv95eXn/W1tb6wMDA0oAAAAaAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAGAAAAIBoaGmlfX1/2eHh4/4KCgv+EhIT/hISE/4SEhP+EhIT/hISE/4WF - hf+FhYX/hYWF/4WFhf+FhYX/hoaG/4aGhv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJ - if+JiYn/ioqK/4qKiv+Li4v/jIyM/4yMjP+Ojo7/j4+P/5CQkP+RkZH/kpKS/5OTk/+UlJT/lZWV/5eX - l/+ampr/m5ub/52dnf+goKD/o6Oj/6ampv+pqan/rq6u/7Ozs/+3t7f/vb29/8TExP/Kysr/09PT/9ra - 2v/i4uL/6+vr//Ly8v/5+fn//v7+///////+/v7/+vr6//X19f/v7+//5+fn/+Dg4P/Z2dn/0dHR/8rK - yv/ExMT/vr6+/7q6uv+1tbX/srKy/66urv+rq6v/qKio/6Wlpf+jo6P/oKCg/5+fn/+dnZ3/nJyc/5qa - mv8wMX//Hh2Y/x8dqf8eHan/HRym/x0bo/8cHKH/Gxyg/xsbnP8aG5r/GhqY/xoal/8aGpb/GRqU/xga - k/8YGo7/Y2ie/4yMjP+Li4v/i4uL/4uLi/+Kior/ioqK/4qKiv+JiYn/iYmJ/4mJif+JiYn/iIiI/4iI - iP+IiIj/hoaG/3x8fP9iYmL2HR0daQAAACAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAlLS0th2ho - aP57e3v/goKC/4ODg/+Dg4P/g4OD/4ODg/+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+FhYX/hYWF/4WF - hf+FhYX/hoaG/4aGhv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4mJif+Kior/ioqK/4uL - i/+MjIz/jIyM/46Ojv+Pj4//kJCQ/5GRkf+SkpL/k5OT/5WVlf+Xl5f/mpqa/5ycnP+enp7/oaGh/6Sk - pP+oqKj/ra2t/7Kysv+3t7f/vb29/8TExP/Nzc3/1dXV/9/f3//n5+f/8PDw//f39//8/Pz///////7+ - /v/5+fn/8vLy/+vr6//i4uL/29vb/9PT0//Ly8v/xMTE/76+vv+4uLj/tLS0/7CwsP+srKz/qKio/6am - pv+jo6P/oKCg/56env+dnZ3/m5ub/5qamv+Xl5f/lpaW/2RliP8cGoz/Hxyk/x4cp/8dHKb/HRuj/xwc - of8bHJ//Gxuc/xobmv8aGpj/GRuW/xkalv8YGpT/GBqT/xgZj/9ARZT/jIyM/4qKiv+JiYn/iYmJ/4mJ - if+JiYn/iIiI/4iIiP+IiIj/iIiI/4eHh/+Hh4f/h4eH/4eHh/+Ghob/gICA/2pqav4tLS2HAAAAJQAA - AAgAAAAAAAAAAAAAAAAAAAAAAAAACgAAACs4ODidb29v/3x8fP+BgYH/goKC/4KCgv+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4SEhP+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+FhYX/hYWF/4aG - hv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4mJif+Kior/i4uL/4uLi/+MjIz/jo6O/4+P - j/+QkJD/kpKS/5OTk/+VlZX/lpaW/5qamv+cnJz/n5+f/6Ojo/+mpqb/q6ur/7CwsP+2trb/vb29/8XF - xf/Pz8//2dnZ/+Li4v/t7e3/9vb2//z8/P///////v7+//f39//w8PD/5+fn/93d3f/V1dX/zc3N/8TE - xP+9vb3/t7e3/7Ozs/+urq7/qamp/6ampv+kpKT/oKCg/56env+cnJz/m5ub/5mZmf+Xl5f/lZWV/5SU - lP+Tk5P/jo6R/x8fgv8eHaD/Hhyn/x0bpf8dG6P/HBuh/xsbn/8bG5z/Ghqa/xoamP8ZG5b/GRqV/xga - lP8XGpP/FxmQ/yQniv+Tk5P/iIiI/4iIiP+IiIj/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Ghob/hoaG/4aG - hv+Ghob/hoaG/4WFhf+BgYH/cnJy/zw8PJ0AAAArAAAACgAAAAAAAAAAAAAAAAAAAAAAAAANAAAALkND - Q7JxcXH/fn5+/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hYWF/4WFhf+Ghob/hoaG/4aG - hv+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4qKiv+Li4v/i4uL/4yMjP+Ojo7/kJCQ/5GRkf+SkpL/lJSU/5aW - lv+ampr/nJyc/5+fn/+kpKT/qKio/66urv+1tbX/vb29/8fHx//R0dH/3Nzc/+jo6P/09PT/+/v7//// - ///8/Pz/9vb2/+zs7P/h4eH/19fX/87Ozv/ExMT/vb29/7a2tv+wsLD/rKys/6enp/+kpKT/oKCg/56e - nv+cnJz/mpqa/5eXl/+Wlpb/lJSU/5OTk/+SkpL/kZGR/5CQkP+Pj4//Pz9+/x0bmP8dHKb/HRul/x0b - o/8cG6H/Gxuf/xsanP8aGpr/GhqY/xkalv8ZGpX/GBqU/xcak/8XGZD/FxmF/5GSlv+Hh4f/h4eH/4aG - hv+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WFhf+FhYX/hYWF/4KCgv9zc3P/REREsgAA - AC4AAAANAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAzS0tLx3Jycv99fX3/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4SEhP+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+Ghob/hoaG/4aGhv+Hh4f/h4eH/4iI - iP+JiYn/iYmJ/4qKiv+Li4v/jIyM/4+Pj/+QkJD/kpKS/5OTk/+Wlpb/mpqa/52dnf+hoaH/pqam/62t - rf+0tLT/vb29/8jIyP/V1dX/4uLi//Dw8P/7+/v///////v7+//y8vL/5+fn/9vb2//Pz8//xMTE/7y8 - vP+0tLT/rq6u/6ioqP+lpaX/oKCg/52dnf+bm5v/mZmZ/5aWlv+VlZX/k5OT/5KSkv+RkZH/kJCQ/4+P - j/+Ojo7/jIyM/4yMjP9kZIL/GxqP/x0bo/8dG6X/HBui/xwbof8bG5//Gxqb/xoamv8aGpj/GRqW/xkZ - lf8YGZP/FxmT/xcZkP8XGYb/fX6R/4WFhf+FhYX/hYWF/4WFhf+FhYX/hYWF/4WFhf+EhIT/hISE/4SE - hP+EhIT/hISE/4SEhP+EhIT/gYGB/3V1df9MTEzHAAAAMwAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAEAAA - ADZSUlLVdHR0/35+fv+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hoaG/4aGhv+Hh4f/h4eH/4iIiP+JiYn/ioqK/4uL - i/+MjIz/j4+P/5GRkf+Tk5P/lZWV/5qamv+dnZ3/o6Oj/6mpqf+zs7P/vb29/8rKyv/a2tr/6+vr//n5 - +f//////+vr6/+/v7//g4OD/0dHR/8TExP+6urr/srKy/6urq/+lpaX/oKCg/52dnf+ampr/l5eX/5WV - lf+Tk5P/kpKS/5CQkP+Pj4//jo6O/4yMjP+MjIz/i4uL/4qKiv+Kior/iYmJ/4WFiP8dHIb/HRyf/x0b - pf8cG6L/Gxuh/xsbn/8bGpv/Ghqa/xoamP8ZGpb/GRmV/xgZk/8XGZH/FxiQ/xcZh/9pbIz/hISE/4SE - hP+EhIT/hISE/4SEhP+EhIT/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+BgYH/dnZ2/1VV - VdQAAAA2AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAOVhYWOB2dnb/fX19/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+EhIT/hISE/4SEhP+FhYX/hYWF/4aGhv+Hh4f/h4eH/4iIiP+JiYn/i4uL/4yMjP+Pj4//kpKS/5WV - lf+ampr/n5+f/6ampv+wsLD/vb29/8/Pz//i4uL/9vb2///////39/f/5+fn/9XV1f/ExMT/t7e3/66u - rv+mpqb/oKCg/5ycnP+ZmZn/lZWV/5OTk/+RkZH/kJCQ/4+Pj/+MjIz/i4uL/4uLi/+Kior/iYmJ/4mJ - if+IiIj/h4eH/4eHh/+Hh4f/hoaG/zI0gP8cG47/GxuU/xsakf8aGpD/GhqO/xoai/8aGor/GRmJ/xgZ - h/8YGYb/GBmE/xcZhP8XGIL/Fhl7/2Rmiv+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+CgoL/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4CAgP94eHj/WVlZ4AAAADgAAAASAAAAAAAAAAAAAAAAAAAAAAAA - ABMAAAA6XV1d63d3d/9+fn7/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4SE - hP+EhIT/hYWF/4aGhv+Ghob/h4eH/4mJif+Kior/jIyM/5CQkP+Tk5P/mpqa/6Ghof+tra3/vb29/9XV - 1f/w8PD///////Ly8v/b29v/xMTE/7S0tP+oqKj/oKCg/5ubm/+Wlpb/k5OT/5GRkf+Pj4//jIyM/4uL - i/+Kior/iYmJ/4iIiP+IiIj/h4eH/4eHh/+Ghob/hoaG/4WFhf+FhYX/hYWF/4SEhP+EhIT/RUV0/xYW - bP8VFW3/FRVr/xUVav8UFWn/FBRn/xQUZv8TE2X/EhNj/xIUYv8SFGH/EhRg/xITYP8RE13/S05u/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gICA/3h4 - eP9fX1/rAAAAOgAAABMAAAAAAAAAAAAAAAAAAAAAAAAAEwAAADxhYWHxeHh4/319ff9+fn7/fn5+/35+ - fv9+fn7/fn5+/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4ODg/+Dg4P/hISE/4WF - hf+Ghob/h4eH/4mJif+MjIz/kpKS/5qamv+mpqb/vb29/+Li4v//////5+fn/8TExP+urq7/oKCg/5mZ - mf+Tk5P/kJCQ/4yMjP+Li4v/iYmJ/4iIiP+Hh4f/hoaG/4aGhv+FhYX/hYWF/4SEhP+EhIT/hISE/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/goKC/4KCgv9cW3f/FBVf/xQVXv8UFFz/ExRb/xMUWv8TE1n/ExNY/xIT - V/8SE1b/EhNV/xETVP8RE1P/ERNS/xETUv9FR2n/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP9+fn7/eXl5/2JiYvAAAAA8AAAAEwAAAAAAAAAAAAAAAAAA - AAAAAAATAAAAPWZmZvV5eXn/fX19/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GBgf+CgoL/goKC/4ODg/+FhYX/h4eH/4yM - jP+ampr/vb29///////ExMT/oKCg/5OTk/+MjIz/iYmJ/4eHh/+Ghob/hYWF/4SEhP+Dg4P/g4OD/4OD - g/+CgoL/goKC/4KCgv+CgoL/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/35+ - fv96enr/ZGRk8wAAAD0AAAATAAAAAAAAAAAAAAAAAAAAAAAAABMAAAA9Z2dn+Ht7e/99fX3/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv+bm5v/vLy8/7y8 - vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+SkpL/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fX19/3p6ev9mZmb2AAAAPQAAABMAAAAAAAAAAAAA - AAAAAAAAAAAAEwAAADxoaGj4fHx8/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/2pri/9OUpr/TlKg/05SoP9OU6L/TlOi/09To/9PVKT/T1Sl/1BU - pf9RU6f/UVOo/1FUq/9SVKz/UlWm/4GBk/9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/gICA/4CAgP+AgID/gICA/4GBgf+CgoL/g4OD/4WF - hf+Kior/lpaW/7u7u///////w8PD/6CgoP+Tk5P/jIyM/4mJif+Hh4f/hoaG/4WFhf+EhIT/g4OD/4OD - g/+Dg4P/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/fHx8/2pqavgAAAA8AAAAEwAAAAAAAAAAAAAAAAAAAAAAAAATAAAAOmlpafV8fHz/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/UFOB/xcY - hv8XGY7/FxiP/xcZkf8YGZP/GBmV/xgalv8ZGpf/GhqZ/xsam/8bGpz/Gxug/xwbov8cG5z/b3CW/35+ - fv9+fn7/fn5+/35+fv+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4GBgf+BgYH/gYGB/4KC - gv+CgoL/g4OD/4SEhP+FhYX/h4eH/4qKiv+Pj4//lpaW/6Ojo/+7u7v/4uLi///////l5eX/w8PD/62t - rf+goKD/mZmZ/5OTk/+Pj4//jIyM/4qKiv+JiYn/iIiI/4eHh/+Ghob/hoaG/4WFhf+FhYX/hISE/4SE - hP+EhIT/g4OD/4ODg/+Dg4P/g4OD/4ODg/+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP99fX3/ampq9QAAADoAAAATAAAAAAAA - AAAAAAAAAAAAAAAAABIAAAA5Z2dn8H19ff+AgID/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9QUn7/FxiF/xcZjv8XGI//FxmR/xgZk/8YGZX/GBqW/xka - l/8aGpn/Gxqb/xsanf8bG6D/HBui/xwbn/9naZ7/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GB - gf+BgYH/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hYWF/4aGhv+IiIj/ioqK/4yMjP+RkZH/lpaW/56e - nv+pqan/u7u7/9XV1f/x8fH///////Hx8f/Z2dn/w8PD/7Ozs/+oqKj/oKCg/5qamv+Wlpb/k5OT/5CQ - kP+Pj4//jIyM/4uLi/+Kior/iYmJ/4iIiP+Hh4f/h4eH/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4SE - hP+EhIT/hISE/4SEhP+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4KCgv+CgoL/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/goKC/4CAgP9paWnwAAAAOQAAABIAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADZmZmbqfX19/4CA - gP9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/4CAgP+AgID/gICA/1RW - e/8XGIP/FxiP/xcYj/8XGZH/GBmT/xkZlf8ZGpb/GRqX/xoamf8bGpv/Gxqd/xsboP8cG6L/HRui/1hZ - ov+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hISE/4WFhf+Ghob/h4eH/4iI - iP+Kior/jIyM/4+Pj/+SkpL/lpaW/5ycnP+jo6P/rq6u/7u7u//Ozs7/4uLi//b29v//////9vb2/+Xl - 5f/T09P/w8PD/7a2tv+tra3/pqam/6CgoP+cnJz/mZmZ/5WVlf+Tk5P/kZGR/4+Pj/+Ojo7/jIyM/4uL - i/+Kior/ioqK/4mJif+IiIj/iIiI/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/gYGB/2lpaekAAAA2AAAAEAAA - AAAAAAAAAAAAAAAAAAAAAAAPAAAAM2FhYd59fX3/gYGB/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/WVt3/xcYgf8XGY7/FxiP/xcZkf8YGZP/GRmV/xka - lv8ZGpf/GhqZ/xsam/8bGp3/Gxug/xwbov8dG6T/P0Ch/4yMjP+CgoL/g4OD/4ODg/+EhIT/hISE/4WF - hf+FhYX/hoaG/4eHh/+IiIj/iIiI/4qKiv+Li4v/jo6O/5CQkP+Tk5P/lpaW/5ubm/+goKD/p6en/7Cw - sP+7u7v/ycnJ/9ra2v/r6+v/+vr6///////5+fn/7Ozs/93d3f/Pz8//w8PD/7i4uP+wsLD/qamp/6Wl - pf+goKD/nJyc/5qamv+Wlpb/lJSU/5OTk/+RkZH/kJCQ/4+Pj/+Ojo7/jIyM/4uLi/+Li4v/ioqK/4mJ - if+JiYn/iIiI/4iIiP+IiIj/h4eH/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hISE/4SEhP+EhIT/hISE/4SEhP+EhIT/hISE/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4WFhf+CgoL/ZGRk3QAAADIAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAuX19f0X5+ - fv+CgoL/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gYGB/4GB - gf9oaHn/Fhh7/xcZjf8XGI//FxmR/xgZk/8ZGZX/GRqW/xoamP8aGpn/Gxqb/xsanf8bG6D/HBui/x0b - pP8mJqD/n5+f/4SEhP+FhYX/hYWF/4aGhv+Ghob/h4eH/4iIiP+JiYn/ioqK/4uLi/+MjIz/j4+P/5GR - kf+Tk5P/lpaW/5qamv+enp7/o6Oj/6mpqf+ysrL/u7u7/8fHx//V1dX/4uLi//Hx8f/7+/v///////v7 - +//x8fH/5eXl/9nZ2f/Ozs7/w8PD/7q6uv+zs7P/ra2t/6ioqP+kpKT/oKCg/52dnf+ampr/mZmZ/5aW - lv+UlJT/k5OT/5KSkv+QkJD/j4+P/4+Pj/+Ojo7/jIyM/4uLi/+Li4v/ioqK/4qKiv+JiYn/iYmJ/4iI - iP+IiIj/iIiI/4eHh/+Hh4f/h4eH/4eHh/+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hYWF/4SEhP+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+EhIT/hoaG/4KCgv9gYGDRAAAALgAA - AA0AAAAAAAAAAAAAAAAAAAAAAAAACgAAACpZWVnCfn5+/4KCgv+AgID/gICA/4CAgP+AgID/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/3h5fv8VF3X/FxmL/xcYkP8XGZH/GBmT/xkZ - lf8ZGpb/GhqY/xoamf8bGpv/Gxqd/xsboP8cG6L/HRuk/x0bo/+Ula3/hoaG/4eHh/+Hh4f/iIiI/4mJ - if+Kior/i4uL/4yMjP+Ojo7/kJCQ/5GRkf+Tk5P/lpaW/5qamv+dnZ3/oaGh/6ampv+srKz/s7Oz/7u7 - u//FxcX/0NDQ/9zc3P/q6ur/9fX1//z8/P//////+/v7//X19f/r6+v/4ODg/9XV1f/Ly8v/w8PD/7y8 - vP+1tbX/r6+v/6urq/+mpqb/o6Oj/6CgoP+dnZ3/m5ub/5mZmf+Xl5f/lZWV/5SUlP+Tk5P/kpKS/5GR - kf+QkJD/j4+P/46Ojv+Ojo7/jIyM/4yMjP+Li4v/i4uL/4qKiv+Kior/iYmJ/4mJif+JiYn/iIiI/4iI - iP+IiIj/h4eH/4eHh/+Hh4f/h4eH/4aGhv+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hYWF/4WFhf+Ghob/g4OD/1xcXMIAAAArAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJVJS - Uqt+fn7/g4OD/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4KC - gv+CgoL/goKC/x4hc/8XGIj/FxiQ/xcZkf8YGZP/GRmV/xkalv8aGpj/GhqZ/xsam/8bGp3/Gxug/xwb - ov8dG6T/HRum/2psrv+RkZH/iYmJ/4qKiv+Li4v/jIyM/46Ojv+Pj4//kJCQ/5KSkv+UlJT/lpaW/5mZ - mf+cnJz/n5+f/6Ojo/+oqKj/rq6u/7S0tP+7u7v/xMTE/87Ozv/X19f/4uLi/+3t7f/29vb//Pz8//// - ///8/Pz/9vb2/+/v7//l5eX/3Nzc/9PT0//Kysr/w8PD/7y8vP+2trb/srKy/62trf+pqan/pqam/6Oj - o/+goKD/nZ2d/5ycnP+ampr/mZmZ/5aWlv+VlZX/lJSU/5OTk/+SkpL/kZGR/5CQkP+Pj4//j4+P/46O - jv+Ojo7/jIyM/4yMjP+Li4v/i4uL/4qKiv+Kior/ioqK/4mJif+JiYn/iYmJ/4iIiP+IiIj/iIiI/4iI - iP+Hh4f/h4eH/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4aGhv+Ghob/hoaG/4eHh/+Dg4P/VVVVqwAA - ACUAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAfR0dHk35+fv+EhIT/gYGB/4GBgf+BgYH/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/g4OD/4ODg/+Dg4P/MDRy/xcZhP8XGJD/FxmR/xgZ - k/8ZGZX/GRqW/xoamP8aGpr/Gxqb/xsanf8bG6H/HBui/x0bpP8dG6f/OTuo/6mpqf+Li4v/jIyM/46O - jv+Pj4//kZGR/5KSkv+UlJT/lpaW/5mZmf+bm5v/np6e/6Ghof+lpaX/qamp/6+vr/+1tbX/u7u7/8PD - w//Ly8v/1dXV/93d3f/n5+f/8fHx//n5+f/+/v7///////z8/P/39/f/8fHx/+rq6v/h4eH/2dnZ/9HR - 0f/Kysr/w8PD/729vf+3t7f/s7Oz/6+vr/+rq6v/qKio/6Wlpf+jo6P/oKCg/56env+cnJz/mpqa/5mZ - mf+Xl5f/lpaW/5WVlf+UlJT/k5OT/5KSkv+RkZH/kJCQ/5CQkP+Pj4//j4+P/46Ojv+Ojo7/jIyM/4yM - jP+Li4v/i4uL/4qKiv+Kior/ioqK/4mJif+JiYn/iYmJ/4mJif+IiIj/iIiI/4iIiP+IiIj/h4eH/4eH - h/+Hh4f/h4eH/4eHh/+Ghob/iIiI/4SEhP9ISEiTAAAAIAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAwAA - ABk8PDx6fHx8/oaGhv+Dg4P/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4SE - hP+EhIT/hISE/4SEhP9GSnL/Fhh+/xcYjv8XGZH/GBmT/xkZlf8ZGpb/GhqY/xoamv8bGpv/Gxqd/xwb - of8dG6P/HRuk/x0bp/8eHKf/pKW7/5KSkv+QkJD/kZGR/5OTk/+UlJT/lpaW/5mZmf+bm5v/nZ2d/6Cg - oP+jo6P/p6en/6ysrP+wsLD/tbW1/7u7u//CwsL/ycnJ/9HR0f/a2tr/4uLi/+vr6//09PT/+vr6//7+ - /v///////v7+//n5+f/09PT/7Ozs/+Xl5f/d3d3/1tbW/8/Pz//Jycn/w8PD/729vf+4uLj/tLS0/7Cw - sP+tra3/qamp/6enp/+lpaX/oaGh/6CgoP+enp7/nJyc/5ubm/+ampr/mZmZ/5aWlv+VlZX/lJSU/5SU - lP+Tk5P/kpKS/5KSkv+ZmZn/m5ub/5ubm/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uL - i/+Kior/ioqK/4qKiv+JiYn/iYmJ/4mJif+JiYn/iIiI/4iIiP+IiIj/iIiI/4mJif+Li4v/goKC/kBA - QHoAAAAaAAAABAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAFCkpKVd2dnb0h4eH/4WFhf+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+FhYX/hYWF/2Zmev8VF3X/FxqL/xcZ - k/8YGZP/GRqV/xkalv8aGpj/Ghqa/xsanP8bGp3/HBuh/x0bo/8dG6T/Hhun/x4cqv9gYbL/rKys/5OT - k/+UlJT/lpaW/5mZmf+ampr/nJyc/5+fn/+hoaH/paWl/6ioqP+tra3/sLCw/7a2tv+7u7v/wsLC/8jI - yP/Pz8//19fX/9/f3//n5+f/7+/v//X19f/7+/v//v7+///////+/v7/+vr6//X19f/v7+//6Ojo/+Li - 4v/b29v/1dXV/8/Pz//Jycn/w8PD/76+vv+6urr/tbW1/7Kysv+urq7/rKys/6ioqP+mpqb/pKSk/6Gh - of+goKD/oaGh/6ampv+rq6v/ra2t/7S0tP+1tbX/vr6+/76+vv/IyMj/yMjI/8jIyP/Hx8f/uLi4/5GR - kf+QkJD/kJCQ/4+Pj/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uLi/+Kior/ioqK/4qK - iv+Kior/iYmJ/4mJif+JiYn/i4uL/46Ojv9+fn70KioqWQAAABQAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAOBAQENnJycueIiIj/hoaG/4ODg/+EhIT/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hYWF/4WF - hf+Ghob/hoaG/4aGhv+Hh4f/hYWG/xocbf8XGYb/FxqT/xgalP8ZGpX/GRuW/xoamP8aGpr/Gxuc/xsb - nf8cG6H/HRuj/x0bpf8eHKf/Hxyq/yQjq/+5usP/nJyc/5eXl/+ampr/nJyc/56env+goKD/o6Oj/6am - pv+pqan/rq6u/7Kysv+2trb/u7u7/8HBwf/Hx8f/zs7O/9XV1f/b29v/4uLi/+rq6v/x8fH/9vb2//v7 - +//+/v7///////7+/v/7+/v/9vb2//Hx8f/r6+v/5eXl/9/f3//Z2dn/09PT/87Ozv/IyMj/w8PD/76+ - vv+/v7//vb29/8LCwv/BwcH/xcXF/8XFxf/Kysr/zc3N/9DQ0P/Pz8//z8/P/87Ozv/Bwcr/o6TF/6Kj - xP98fbz/e325/2Fjsv9WWa//SEyp/zU5of9VWZr/k5OT/5KSkv+SkpL/kZGR/5CQkP+QkJD/j4+P/4+P - j/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uLi/+Li4v/ioqK/4qKiv+Ojo7/kJCQ/3h4 - eOcEBAQ2AAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAoaWlpzYmJif+IiIj/hISE/4SE - hP+FhYX/hYWF/4WFhf+FhYX/hoaG/4aGhv+Ghob/h4eH/4eHh/+Hh4f/iIiI/4iIiP+IiIj/NTlw/xcY - gf8YGpD/GBqU/xkalf8ZG5b/GhqY/xobmv8bG5z/Gxuf/xwcof8dG6P/HRyl/x4cp/8fHar/IB2t/2xt - uf+6urr/m5ub/52dnf+fn5//oaGh/6Wlpf+np6f/q6ur/66urv+zs7P/tra2/7u7u//BwcH/x8fH/8vL - y//T09P/2dnZ/+Dg4P/m5ub/7Ozs//Ly8v/39/f//Pz8/////////////v7+//v7+//39/f/8vLy/+3t - 7f/o6Oj/4uLi/9zc3P/X19f/1dXV/9/f3//i4uL/4eHh/9/f3/+5udj/sbHW/5yc0/+Hh87/f3/M/2Fh - xv9gYMT/QUK9/z49uv8sK7X/IB2w/yAdrv8fHaz/Hh2p/x4cpv8dG6T/HRui/xwcoP8cG5z/GxuY/zk8 - kf+VlZX/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5CQkP+QkJD/j4+P/4+Pj/+Pj4//jo6O/46O - jv+MjIz/jIyM/4yMjP+Li4v/i4uL/4+Pj/+RkZH/bm5uzQAAACgAAAAKAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAABgAAAB9VVVWfiYmJ/4qKiv+FhYX/hYWF/4aGhv+Ghob/hoaG/4aGhv+Hh4f/h4eH/4eH - h/+IiIj/iIiI/4iIiP+JiYn/iYmJ/4qKiv9bXHn/FRd0/xgajf8ZGpT/GRqW/xkblv8aGpj/Ghua/xsb - nP8bG5//HByh/x0bo/8dHKX/Hhyp/x8dqv8gHa3/JiWv/7e3yP+srKz/oaGh/6Ojo/+mpqb/qKio/6ys - rP+vr6//s7Oz/7e3t/+7u7v/wcHB/8XFxf/Ly8v/0NDQ/9bW1v/c3Nz/4uLi/+rq6v/v7+//9fX1//n5 - +f/8/Pz////////////+/v7/+/v7//n5+f/19fX/8PDw/+vr6//l5eX/4ODg/9bW2P9WVKD/QD6l/0E9 - u/8pIsb/KiLM/ykhzP8oIcn/JyDG/yYhxP8lIMD/JCC+/yMfvP8jH7r/Ih62/yEes/8hHbD/IB2u/yAd - rP8fHan/Hhym/x0bpP8dG6L/HByg/xwbnP8bG5n/NjmS/5eXl/+Wlpb/lZWV/5WVlf+UlJT/k5OT/5OT - k/+SkpL/kpKS/5GRkf+RkZH/kJCQ/5CQkP+Pj4//j4+P/4+Pj/+Ojo7/jo6O/46Ojv+MjIz/kpKS/5GR - kf9dXV2fAAAAHwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFz09PWyJiYn/jIyM/4iI - iP+Ghob/h4eH/4eHh/+Hh4f/iIiI/4iIiP+IiIj/iIiI/4mJif+JiYn/ioqK/4qKiv+Li4v/i4uL/4eI - iv8YGWn/GBqF/xkak/8aGpb/GhqX/xoamP8aG5r/Gxuc/xsbn/8cG6L/HRuj/x0cpf8eHKn/Hx2r/yAd - rf8gHa//VFW5/8vLy/+oqKj/p6en/6mpqf+tra3/sLCw/7S0tP+3t7f/u7u7/7+/v//ExMT/ycnJ/8/P - z//V1dX/2tra/+Dg4P/m5ub/6+vr//Hx8f/29vb/+vr6//z8/P////////////7+/v/8/Pz/+fn5//X1 - 9f/x8fH/7Ozs/+fn5//i4uL/3d3d/6Wkwv8rKIj/Ix6T/ychrf8oIsD/KSLJ/yghyf8nIMb/JiHE/yYg - wP8lIL//JB+8/yMfuv8jH7b/Ih+z/yEesv8gHa7/IB2s/x8dqf8eHKf/HRyk/x0bov8cHKD/HBud/xsb - mv8vMZL/mpqa/5mZmf+Xl5f/lpaW/5aWlv+VlZX/lJSU/5SUlP+Tk5P/k5OT/5KSkv+SkpL/kZGR/5GR - kf+QkJD/kJCQ/5CQkP+Pj4//j4+P/5CQkP+UlJT/kZGR/0FBQW0AAAAXAAAAAwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAQISEhRX5+fu2RkZH/ioqK/4eHh/+IiIj/iIiI/4iIiP+JiYn/iYmJ/4mJ - if+Kior/ioqK/4uLi/+Li4v/jIyM/4yMjP+Ojo7/jo6O/z5Bcf8WGHn/GRmO/xoalv8aGpf/GhqZ/xsb - mv8cG5z/HBuf/x0bov8dG6P/HRyl/x4cqf8fHav/IB2t/yAdr/8hHrL/mJjH/8fHx/+srKz/rq6u/7Cw - sP+0tLT/t7e3/7u7u/+/v7//xMTE/8nJyf/Ozs7/09PT/9fX1//d3d3/4uLi/+jo6P/t7e3/8vLy//b2 - 9v/6+vr//Pz8/////////////v7+//z8/P/6+vr/9vb2//Ly8v/v7+//6urq/+Xl5f/g4OD/3Nzc/7q5 - y/86N47/Ix2N/yUgpP8nIbv/KCLG/ycgxv8mIcT/JiDC/yUgv/8kH7z/Ix+6/yMftv8iH7T/IR6y/yAe - rv8gHaz/Hx6q/x4dp/8dHKT/HRyi/xwdoP8cHJ3/Gxua/yorkP+cnJz/m5ub/5qamv+ZmZn/mZmZ/5eX - l/+Wlpb/lZWV/5WVlf+UlJT/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5GRkf+QkJD/k5OT/5eX - l/+GhobtISEhRQAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAobW1txpGR - kf+Ojo7/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/i4uL/4uLi/+Li4v/jIyM/46Ojv+Ojo7/j4+P/4+P - j/+QkJD/dXaF/xQWav8ZGoj/GhqV/xoal/8aGpn/Gxua/xwbnP8cG5//HRui/x0bpP8eHKX/Hxyp/yAd - q/8gHK7/IR2w/yEes/8uLbb/w8TR/8XFxf+ysrL/tLS0/7e3t/+7u7v/v7+//8PDw//IyMj/zc3N/9HR - 0f/W1tb/29vb/+Dg4P/m5ub/6+vr/+/v7//09PT/9/f3//v7+//+/v7////////////+/v7//Pz8//r6 - +v/39/f/9PT0//Dw8P/s7Oz/5+fn/+Tk5P/f39//2tra/8vL0v9KSZX/IR2I/yMenP8mIbX/JyHC/yYh - xP8mIML/JSC//yQfvP8jH7r/Ix+3/yIftP8hHrL/IB6u/yAdrP8fHqr/Hh2n/x0cpP8dHKL/HB2h/xwc - nf8bHJv/IySP/5+fn/+dnZ3/nJyc/5ubm/+ampr/mpqa/5mZmf+Xl5f/lpaW/5aWlv+VlZX/lZWV/5SU - lP+UlJT/k5OT/5OTk/+SkpL/kpKS/5GRkf+VlZX/mpqa/3d3d8cAAAAoAAAACQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABxcXFyVkZGR/5GRkf+Kior/ioqK/4qKiv+Li4v/i4uL/4uL - i/+MjIz/jIyM/46Ojv+Ojo7/j4+P/4+Pj/+QkJD/kZGR/5KSkv+SkpL/MjRu/xcZe/8aGZD/GhqX/xoa - mf8bG5v/HBuc/xwbn/8dG6L/HRuk/x4cpv8fHKn/IB2r/yAdrv8hHrD/Ih+z/yMftv9MTb7/1dXX/8nJ - yf+4uLj/u7u7/7+/v//Dw8P/x8fH/8vLy//Q0ND/1dXV/9nZ2f/d3d3/4uLi/+fn5//s7Oz/8fHx//X1 - 9f/5+fn/+/v7//7+/v////////////7+/v/8/Pz/+/v7//f39//19fX/8fHx/+3t7f/q6ur/5eXl/+Hh - 4f/d3d3/2dnZ/9PT1P9nZ6H/IB2E/yIelf8lIK//JiG//yYhwv8lIL//JB+8/yMfuv8jH7f/Ih+0/yEe - sv8gHq7/IB2t/x8eqv8eHaf/HRyk/x0cov8cHaH/HByd/xscm/8dHo3/o6Oj/5+fn/+enp7/nZ2d/5yc - nP+bm5v/mpqa/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5WVlf+VlZX/lJSU/5SUlP+Tk5P/lJSU/5mZ - mf+ampr/YmJilgAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAETEx - MVOMjIz6lZWV/4+Pj/+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//j4+P/5CQkP+QkJD/kZGR/5KS - kv+Tk5P/k5OT/5SUlP91doj/FRZr/xkaiP8aG5X/GhqZ/xsbm/8cG53/HByf/x0bov8dHKT/Hh2m/x8d - qf8gHqv/IB2u/yEesP8iH7T/Ix+2/yMguP9lZMb/29vb/9DQ0P+/v7//w8PD/8fHx//Kysr/z8/P/9PT - 0//X19f/3Nzc/+Hh4f/l5eX/6urq/+3t7f/y8vL/9vb2//n5+f/7+/v//v7+/////////////v7+//z8 - /P/7+/v/+fn5//b29v/y8vL/7+/v/+vr6//n5+f/5OTk/+Dg4P/b29v/19fX/9TU1P+FhK7/IyCF/yId - nP8mIbr/JiHC/yUhv/8kILz/Ix+7/yMft/8iH7T/IR6y/yAer/8gHa3/Hx6q/x4dp/8dHKT/HRyj/xwd - of8cHJ3/HByb/xsbjP+mpqf/oaGh/6CgoP+fn5//np6e/52dnf+cnJz/m5ub/5ubm/+ampr/mZmZ/5mZ - mf+Xl5f/l5eX/5aWlv+VlZX/lZWV/5WVlf+Wlpb/np6e/5SUlPo0NDRTAAAAEQAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAJ3x8fNGZmZn/k5OT/4yMjP+Ojo7/jo6O/4+P - j/+Pj4//j4+P/5CQkP+RkZH/kZGR/5KSkv+Tk5P/k5OT/5SUlP+VlZX/lpaW/5eXl/8wM27/Fxh4/xob - j/8aG5j/Gxub/xwcnf8cHKD/HRyi/x0cpP8eHab/Hx2q/yAdrP8gHa7/IR6w/yIftP8jH7f/IyC4/yQf - vP9vbsr/39/f/9nZ2f/Hx8f/ycnJ/87Ozv/R0dH/1tbW/9ra2v/f39//4uLi/+fn5//r6+v/8PDw//T0 - 9P/29vb/+vr6//z8/P/+/v7////////////+/v7//v7+//v7+//5+fn/9vb2//T09P/w8PD/7Ozs/+jo - 6P/l5eX/4eHh/93d3f/a2tr/1tbW/9PT0/+hoL//Mi2t/yYhvf8mIcL/JiG//yUgvf8jILv/IyC3/yIf - tP8hHrL/IB6v/yAdrf8gHqr/Hx2n/x4cpf8dHKP/HB2h/xwcnf8cHJv/GxuM/6ChqP+kpKT/oaGh/6Gh - of+goKD/n5+f/56env+dnZ3/nJyc/5ycnP+bm5v/mpqa/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5ub - m/+goKD/g4OD0QAAACcAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAQAAAAZX19fjpmZmf+Wlpb/kJCQ/4+Pj/+Pj4//kJCQ/5CQkP+RkZH/kZGR/5KSkv+Tk5P/k5OT/5SU - lP+VlZX/lpaW/5eXl/+ZmZn/mpqa/31+jv8WF2j/GRqE/xobl/8bHJv/HByd/xwcoP8dHKL/HRyk/x4d - pv8fHar/IB2s/yAdrv8hHrD/Ih+0/yMft/8jH7r/JB+8/yUhvv9hYsv/3d3h/9/f3//Q0ND/0NDQ/9XV - 1f/Z2dn/3Nzc/+Hh4f/l5eX/6urq/+3t7f/x8fH/9fX1//f39//6+vr//Pz8//7+/v////////////// - ///+/v7/+/v7//r6+v/39/f/9fX1//Hx8f/t7e3/6+vr/+fn5//k5OT/4ODg/9zc3P/Z2dn/3d3d/+bm - 5v/ExeH/KSPD/yYhwv8mIcD/JSC9/yQgu/8jILf/IyC1/yIfs/8hH6//IB6t/yAeqv8fHaf/Hhyl/x0c - o/8cHaH/HByd/xwcnP8bG43/mZql/6Wlpf+kpKT/o6Oj/6Ghof+goKD/oKCg/5+fn/+enp7/nZ2d/52d - nf+cnJz/m5ub/5qamv+ampr/mZmZ/5mZmf+ZmZn/oKCg/6Ghof9mZmaOAAAAGQAAAAQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA8qKipIkZGR8pycnP+Tk5P/kJCQ/5GR - kf+RkZH/kpKS/5KSkv+Tk5P/lJSU/5SUlP+VlZX/lpaW/5eXl/+ZmZn/mZmZ/5qamv+bm5v/nJyc/0dI - d/8WF3L/GhuN/xscmv8cHJ3/HByg/x0cov8dHKT/Hh2m/x8dqv8gHaz/IB2v/yEesP8iH7T/Ix+3/yMf - uv8kIL3/JSG+/yYhwv9NSsr/2trj/+bm5v/c3Nz/19fX/9vb2//f39//4uLi/+fn5//r6+v/7+/v//Ly - 8v/19fX/+fn5//v7+//8/Pz//v7+//////////////////7+/v/8/Pz/+vr6//f39//19fX/8vLy/+/v - 7//s7Oz/6Ojo/+Xl5f/i4uL/5OTk/+rq6v/r6+v/39/o/19d0f8nIcX/JiHD/yYhwP8lIL3/JCC7/yMg - t/8jILX/Ih+z/yEfr/8gHq3/IB+q/x8eqf8eHaX/HR2j/xwdof8cHJ3/HByc/xscjv+Vlqb/p6en/6am - pv+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//np6e/52dnf+dnZ3/nJyc/5ubm/+bm5v/mpqa/52d - nf+kpKT/mZmZ8i4uLkgAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAABwAAACF6enq9np6e/5mZmf+SkpL/kpKS/5KSkv+Tk5P/lJSU/5SUlP+VlZX/lpaW/5eX - l/+ZmZn/mZmZ/5qamv+bm5v/nJyc/52dnf+enp7/l5ec/yAjaf8YGXv/GxyT/xwcnP8cHKD/HRyj/x0c - pP8eHab/Hx2q/yAdrP8gHa//IR6y/yIftP8jILf/JCC6/yUgvf8mIb//JiHC/ychxP9DQMz/zMvk/+vr - 6//o6Oj/4eHh/+Hh4f/l5eX/6Ojo/+zs7P/w8PD/8vLy//b29v/5+fn/+/v7//z8/P/+/v7///////// - /////////v7+//z8/P/6+vr/+fn5//b29v/09PT/8PDw/+3t7f/q6ur/6urq/+/v7//w8PD/6+vu/5ST - 3v82M8z/KCLH/ychxf8mIcP/JiHA/yUgvf8kILv/IyC4/yMgtf8iH7P/IR+v/yAerf8gH6v/Hx6p/x4d - pf8dHaP/HB2h/xwdn/8cHZz/GxyP/5OUqf+pqan/qKio/6enp/+mpqb/paWl/6SkpP+jo6P/oaGh/6Cg - oP+goKD/n5+f/56env+dnZ3/nZ2d/5ycnP+cnJz/o6Oj/6enp/+Dg4O+AAAAIQAAAAcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAE0xMTGecnJz+n5+f/5aW - lv+Tk5P/lJSU/5WVlf+VlZX/lpaW/5eXl/+Xl5f/mZmZ/5qamv+bm5v/nJyc/52dnf+enp7/n5+f/6Cg - oP+hoaH/bW6K/xYWaf8aG4X/HBuZ/xwcoP8dHKP/Hhyl/x8dpv8gHar/IB2s/yEer/8iH7L/IiC0/yMg - t/8kILr/JSC9/yYhv/8mIcP/JyHE/yghx/8wKsv/j47b/+3t7f/v7+//7e3t/+rq6v/q6ur/7e3t//Hx - 8f/09PT/9vb2//n5+f/7+/v//Pz8//7+/v/////////////////+/v7//Pz8//v7+//5+fn/9vb2//T0 - 9P/x8fH/8fHx//Ly8v/09PT/8vLy/6mp5v9EP9X/KiPN/ykjyv8oIsn/JyHG/yYhw/8mIcD/JSC9/yQg - u/8jILj/IyC1/yIfs/8hH6//IB6t/yAfq/8fHqn/Hh2l/x0do/8cHaH/HB2f/xwdnP8bHJD/jY6n/6ys - rP+rq6v/qamp/6ioqP+np6f/pqam/6Wlpf+kpKT/o6Oj/6Ghof+goKD/oKCg/5+fn/+enp7/nZ2d/6Cg - oP+np6f/pqam/lBQUGgAAAATAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAKBgYGKYmJidOjo6P/nJyc/5WVlf+VlZX/lpaW/5eXl/+Xl5f/mZmZ/5qa - mv+bm5v/nJyc/52dnf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+mpqb/R0l6/xcYb/8bG4z/HByd/x0c - o/8eHaX/Hx2n/yAeqv8gHqz/IR6v/yIfsv8jILX/IyC3/yQguv8lIL3/JiG//yYhw/8nIcX/KCLH/ykj - yv8qI8z/TEnV/7q66P/y8vL/9PT0//X19f/09PT/9PT0//X19f/39/f/+vr6//v7+//+/v7//v7+//// - //////////////7+/v/8/Pz/+/v7//n5+f/5+fn/9/f3//f39//39/f/9vb2/7u77P9NStr/KyPS/yok - 0P8qI83/KSPL/ygiyf8nIsb/JiHD/yYhwP8lIL3/JCC8/yMguP8jILX/Ih+z/yEfr/8gHq7/IB+r/x8e - qf8eHaX/HR2j/x0dov8cHZ//HB2c/xsckf+Ehqf/rq6u/6ysrP+rq6v/qamp/6ioqP+np6f/pqam/6Wl - pf+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//paWl/62trf+RkZHTBgYGKQAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAVYWFhfaam - pv+jo6P/mZmZ/5eXl/+Xl5f/mZmZ/5qamv+bm5v/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Oj - o/+lpaX/pqam/6enp/+kpKb/Ky5v/xkZdf8bHJD/HR2g/x4dpf8fHqf/IB6q/yAerP8hHq//Ih+y/yMg - tf8jILj/JCC6/yUgvf8mIb//JiHD/ychxf8oIsf/KSPK/yojzP8qJM7/KyPS/1ZT2/+sq+v/7u31//f3 - 9//5+fn/+vr6//r6+v/7+/v//Pz8//7+/v///////////////////////v7+//7+/v/8/Pz//Pz8//v7 - +//6+vr/+fn5/7W17/9RTd7/LSTX/ywk1P8rI9L/KiTQ/yojzf8pI8v/KCLJ/ycixv8mIcP/JiLA/yUh - vv8kILz/IyC4/yMgtf8iH7P/IR+w/yAerv8gH6v/Hx6p/x4dpf8dHaP/HR2i/xwdn/8cHZz/GxyT/4CC - p/+vr6//rq6u/62trf+srKz/q6ur/6mpqf+oqKj/p6en/6ampv+lpaX/pKSk/6SkpP+jo6P/oaGh/6Oj - o/+srKz/rq6u/2ZmZn0AAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAoGBgYqk5OT2qioqP+enp7/mZmZ/5qamv+ampr/m5ub/5yc - nP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ojo/+kpKT/paWl/6enp/+oqKj/qamp/6ysrP+SkqD/Hh5p/xkZ - ev8cHJX/Hh2j/x8ep/8gHqv/IB6s/yEer/8iH7L/IyC1/yMguP8kILv/JSC9/yYhv/8mIcP/JyLF/ygi - yf8pI8v/KiPM/yokzv8rI9L/LCTU/y0k1/8zKtn/ZGHi/7Cu8P/z8vr//Pz8//z8/P/+/v7///////// - /////////////////////////v7+//7+/v/8/Pz/xsX1/4J/6v9AOt//Liba/y4l2f8tJNf/LCTU/ysj - 0v8qJND/KiPN/ykjy/8oIsn/JyLG/yYhw/8mIsD/JSG+/yQhvP8jILj/IyC1/yIfs/8hH7D/IB6u/yAf - q/8fHqn/Hh2l/x0dpP8dHaL/HB2f/xwdnP8bG5P/enym/7Kysv+wsLD/r6+v/66urv+srKz/q6ur/6mp - qf+oqKj/qKio/6enp/+mpqb/paWl/6SkpP+jo6P/qamp/7Kysv+ZmZnbBgYGKgAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA - ABVmZmZ8qamp/qenp/+dnZ3/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ghof+jo6P/paWl/6am - pv+np6f/qKio/6urq/+srKz/rq6u/6+vr/+Dg5v/Ghpq/xoafv8dHZf/Hx6k/yAeq/8gHq3/IR6v/yIf - sv8jILX/IyC4/yQgu/8lIL3/JiG//yYhw/8nIsX/KCLJ/ykjy/8qI83/KiTO/ysj0v8sJNT/LSTX/y4l - 2P8uJtr/Libd/zQs3/9VUOX/dnTr/5yZ8P+ioPP/srD1/8/O+f+sq/T/oqDz/5+d8/93dO3/U03m/zcv - 4v8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0k1/8sJNT/LCPS/ysk0P8qI87/KiPL/ykiyf8oIsb/JyHD/yYi - wP8lIb7/JCG8/yMguP8jILX/IiC0/yIfsP8hHq7/IB+p/x8epf8fHaX/Hh2k/x0dov8dHZ//HB2c/xsb - lP91eKX/tLS0/7Kysv+wsLD/r6+v/66urv+tra3/rKys/6urq/+pqan/qKio/6enp/+mpqb/pqam/6en - p/+wsLD/sbGx/mtra3sAAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACgAAACeVlZXXra2t/6SkpP+dnZ3/nZ2d/56e - nv+fn5//oKCg/6Ghof+jo6P/pKSk/6Wlpf+mpqb/qKio/6mpqf+rq6v/ra2t/66urv+vr6//srKy/7Oz - s/91dpb/GBlr/xoagP8eHZj/Hx6m/yAerf8hHq//Ih+y/yMgtf8jILj/JCC7/yUhvv8mIr//JiHD/yci - xf8oIsn/KSPL/yojzf8rJND/KyPS/ywk1P8tJNf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm - 4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywk - 1P8sI9L/KyTQ/yojzv8qI8v/KSLJ/ygixv8nIcP/JiLC/yYhvv8lIbz/JCC4/yMhtf8iILT/Ih+v/yEf - qf8fH5r/HR2T/x4dmf8eHaH/HR2i/x0dn/8cHZ3/GxuV/2tupP+1tbX/tLS0/7Ozs/+ysrL/sLCw/6+v - r/+tra3/rKys/6ysrP+rq6v/qamp/6ioqP+oqKj/ra2t/7W1tf+dnZ3XBgYGJwAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAADAAAAE2BgYGqtra3+ra2t/6Ojo/+fn5//oKCg/6Ghof+jo6P/o6Oj/6Wlpf+mpqb/p6en/6io - qP+pqan/rKys/62trf+urq7/sLCw/7Kysv+0tLT/tbW1/7e3t/9tb5X/GBlr/xsbgP8eHZn/IB+p/yEe - sP8iH7L/IyC1/yMguP8kIbv/JSG+/yYiwP8mIcP/JyLF/ykiyf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0l - 1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm - 4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCTU/ywj0v8rI9H/KiPO/yojy/8pIsn/KCLG/ych - xP8mIsL/JiG+/yUhvP8kILj/IyC2/yIgsv8hIKb/Hh2V/xwcfv8aG3X/GxuB/x0dlP8dHZ//HR2f/xwd - nf8bG5X/Zmmi/7e3t/+2trb/tLS0/7Ozs/+ysrL/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qamp/6ys - rP+2trb/tra2/mZmZmsAAAATAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAHAAAAH5OTk8Czs7P/q6ur/6Oj - o/+hoaH/o6Oj/6SkpP+lpaX/pqam/6enp/+oqKj/q6ur/6ysrP+tra3/r6+v/7CwsP+ysrL/tLS0/7W1 - tf+3t7f/urq6/7u7u/9vcZf/Ghtt/xsbgP8fHpj/IR+q/yIfsv8jILX/IyC4/yUhu/8mIb7/JiLA/ych - w/8oIsX/KSLJ/yojy/8qI83/KyTQ/ysj0v8sJNT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm - 4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l - 1/8sJNT/LCPS/ysj0f8qI87/KiPL/ykiyf8oIsb/JyHE/yYiwv8mIb7/JSG8/yQguP8jIbL/IR+k/x8d - jv8cG3n/HyBu/01Oh/8aG23/Ght7/xwcj/8dHZr/HB2c/xwclv9fY6H/uLi4/7e3t/+2trb/tbW1/7S0 - tP+zs7P/srKy/7CwsP+vr6//ra2t/62trf+tra3/tbW1/7y8vP+bm5vAAAAAHwAAAAcAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAIAAAAOR0dHS62trfK0tLT/qamp/6Ojo/+lpaX/pqam/6enp/+oqKj/qamp/6ur - q/+srKz/rq6u/6+vr/+wsLD/s7Oz/7S0tP+2trb/t7e3/7q6uv+7u7v/vb29/7+/v/+CgqH/HR1u/xsb - fP8fHZX/ISCp/yMhtP8kILj/JSG7/yYhvv8mIsD/JyHE/ygixf8pIsn/KiPL/yojzf8rJND/KyPS/ywk - 1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm - 4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1P8sJNP/KyPR/yojzv8qI8v/KSLJ/ygi - xv8nIcT/JiLC/yYhvv8lIbr/IyCy/yEfoP8eHYn/HBt1/zM0e/+qqrr/ycnJ/4WGpP8dHmz/GRp2/xwc - i/8cHZj/HByW/1peoP+7u7v/urq6/7e3t/+2trb/tbW1/7S0tP+zs7P/srKy/7CwsP+vr6//rq6u/7Oz - s/+8vLz/tbW18kpKSksAAAAOAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAWfn5+jbi4 - uP+zs7P/qKio/6ampv+np6f/qKio/6mpqf+rq6v/ra2t/66urv+vr6//sLCw/7Ozs/+0tLT/tra2/7e3 - t/+6urr/u7u7/729vf+/v7//wsLC/8TExP+Tla3/IyVx/xwbef8fHY7/IiCl/yQgtP8lIbr/JiG+/yYi - wP8nIcT/KCLF/ykiyf8qI8v/KiPN/ysk0P8rJNP/LCXU/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m - 4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l - 2f8tJdf/LCXU/ywk0/8rI9H/KiPO/yojy/8pIsn/KCLH/ychxP8mIsL/JiG8/yQhsP8iH5v/Hh2D/x0c - c/9dXpT/yMjL/83Nzf/Kysr/ycnJ/5SVrP8hJG3/GRpz/xsch/8bHJD/UFOc/7y8vP+7u7v/urq6/7i4 - uP+3t7f/tbW1/7S0tP+zs7P/srKy/7CwsP+zs7P/u7u7/8HBwf+FhYWNAAAAFgAAAAUAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAkHBwcjpKSkzry8vP+ysrL/qamp/6ioqP+rq6v/rKys/62t - rf+urq7/r6+v/7Kysv+zs7P/tLS0/7a2tv+3t7f/urq6/7u7u/+9vb3/v7+//8LCwv/Dw8P/xcXF/8jI - yP+ysb7/OzyA/x0bdv8fHon/Ih+g/yQhsP8mIbz/JiLA/ychxP8oIsb/KSLJ/yojy/8qI83/KyTQ/ysk - 0/8sJdT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm - 5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdT/LCTT/ysk0f8qJM7/KiPL/yki - yf8oIsf/JyHD/yYhvP8kIKz/IR+V/x8cgP8nJ3j/kpSy/9HR0f/Q0ND/zs7O/83Nzf/Kysr/ycnJ/6Ok - s/8nKW7/GBlv/xobgP9JTJb/vr6+/729vf+7u7v/urq6/7i4uP+3t7f/tra2/7W1tf+0tLT/tLS0/7y8 - vP/Dw8P/qqqqzgcHByMAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA - AA1MTExJtLS07ry8vP+ysrL/rKys/6ysrP+tra3/rq6u/7CwsP+ysrL/s7Oz/7W1tf+2trb/t7e3/7q6 - uv+7u7v/vb29/7+/v//BwcH/w8PD/8XFxf/IyMj/ycnJ/8vLy//Jycv/YWOW/x0cc/8eHYL/ISCV/yQg - q/8lIbj/JyHC/ygixv8pIsn/KiPL/yokzf8rJND/KyTT/ywl1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m - 3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m - 2v8uJdn/LSXX/ywl1P8sJNP/KyTR/yokzv8qI8v/KSLJ/ygiw/8mIbb/IyCk/yEejP8fHXv/QkSJ/8DB - y//V1dX/1NTU/9HR0f/Pz8//zs7O/8vLy//Kysr/yMjI/66vuv8vMnP/GBlq/0BDhv+/v7//vr6+/729 - vf+8vLz/urq6/7i4uP+3t7f/tra2/7a2tv+7u7v/xMTE/7u7u+5QUFBJAAAADQAAAAIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABN2dnZ0v7+//by8vP+zs7P/rq6u/6+v - r/+wsLD/srKy/7Ozs/+1tbX/tra2/7i4uP+6urr/u7u7/729vf+/v7//wcHB/8PDw//FxcX/x8fH/8nJ - yf/Ly8v/zs7O/9DQ0P/R0dH/m5u3/zAvfv8fHXv/IR6L/yMgn/8lIrD/JyK+/ykix/8qI8v/KiTN/ysk - 0P8rJNP/LCXW/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm - 5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk0/8rJNH/KiTO/yok - yf8oI73/JSKt/yMgl/8gH4X/IR94/3N0pv/X19r/2dnZ/9bW1v/V1dX/09PT/9HR0f/Pz8//zs7O/8vL - y//Kysr/yMjI/7e4v/85PHb/NTh1/8LCwv+/v7//vr6+/729vf+8vLz/urq6/7i4uP+3t7f/u7u7/8TE - xP/Gxsb9e3t7dAAAABMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABwAAABmWlpakw8PD/7y8vP+zs7P/sLCw/7Kysv+0tLT/tbW1/7a2tv+4uLj/urq6/7u7 - u/+9vb3/v7+//8HBwf/Dw8P/xMTE/8fHx//Jycn/y8vL/83Nzf/Pz8//0dHR/9TU1P/W1tb/0NHV/2xs - oP8hIXn/IB6B/yEfjv8lIaL/JyK0/ygkwP8qI8r/KyTO/ysk0/8sJdb/LSXX/y4l2P8uJtr/Libd/y8l - 3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m - 3f8uJtr/LiXZ/y0l1/8sJdb/LCTS/yokzP8pI8D/JyKz/yUhn/8iH4v/IB59/0FAi/+ztMn/39/f/9zc - 3P/a2tr/2dnZ/9bW1v/U1NT/09PT/9DQ0P/Pz8//zc3N/8vLy//Kysr/yMjI/8C/w/9kZ4//w8PD/8LC - wv+/v7//vr6+/729vf+8vLz/u7u7/729vf/ExMT/y8vL/52dnaUAAAAZAAAABwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACg0NDSWurq7QxMTE/7y8 - vP+1tbX/tLS0/7W1tf+2trb/uLi4/7q6uv+7u7v/vb29/76+vv/BwcH/w8PD/8TExP/Hx8f/yMjI/8rK - yv/Nzc3/z8/P/9DQ0P/T09P/1dXV/9fX1//a2tr/3Nzc/7q7zP9ZWZj/Hx16/yEfg/8jH5L/JiGh/ycj - sv8pJL7/KiTK/ywl0v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm - 5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdj/LCTT/ysly/8qJL//KCKy/yYh - oP8kII7/Ih+D/zIyhf+Wlrv/5OTk/+Hh4f/g4OD/3d3d/9vb2//a2tr/19fX/9bW1v/U1NT/0dHR/9DQ - 0P/Pz8//zc3N/8vLy//Jycn/yMjI/8fHx//ExMT/w8PD/8LCwv+/v7//vr6+/729vf++vr7/xMTE/83N - zf+0tLTRDQ0NJgAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAACAAAADU5OTkG6urrox8fH/729vf+2trb/tra2/7i4uP+6urr/u7u7/729 - vf++vr7/wcHB/8LCwv/ExMT/x8fH/8jIyP/Kysr/y8vL/87Ozv/Q0ND/09PT/9XV1f/W1tb/2dnZ/9vb - 2//d3d3/4ODg/+Hh4f/AwNL/X2Cf/yMhff8iIIT/JCCO/yUhmv8nIqv/KSO4/ysjw/8sJMr/LSXR/y4l - 2f8uJtv/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybe/y4l - 2P8tJdL/LCXL/ywjxP8qI7f/KCOp/yYhmv8kIY7/IyCF/ywrhf+AgLP/4ODl/+bm5v/l5eX/4uLi/+Dg - 4P/f39//3Nzc/9vb2//Z2dn/19fX/9XV1f/U1NT/0dHR/9DQ0P/Ozs7/zc3N/8vLy//Jycn/yMjI/8fH - x//ExMT/w8PD/8LCwv/BwcH/v7+//8XFxf/Ozs7/wsLC6FJSUkEAAAANAAAAAgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEHBw - cFvDw8P0ycnJ/7+/v/+6urr/urq6/7u7u/+9vb3/vr6+/8HBwf/CwsL/xMTE/8XFxf/IyMj/ycnJ/8vL - y//Ozs7/0NDQ/9HR0f/U1NT/1tbW/9fX1//a2tr/3Nzc/9/f3//h4eH/4uLi/+Xl5f/n5+f/0NDd/3t8 - sP82NIr/IyCD/yQgi/8lIZP/JyKc/ygipv8qJLP/KyW9/ywkxP8tJcr/LSXO/y4l0v8uJdT/LiXU/y4l - 1P8uJdT/LiXU/y4l0v8uJdH/LiXN/y0ly/8sJMT/KyS7/yojsv8oI6X/KCKb/yYhk/8kIYr/JCCE/0JB - kv+Vk8D/5OPo/+vr6//o6Oj/5+fn/+Xl5f/k5OT/4eHh/+Dg4P/d3d3/3Nzc/9ra2v/Z2dn/1tbW/9XV - 1f/T09P/0dHR/8/Pz//Ozs7/zc3N/8rKyv/Jycn/yMjI/8fHx//ExMT/w8PD/8PDw//IyMj/z8/P/8vL - y/RycnJbAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAEoSEhG7Jycn6y8vL/8HBwf+8vLz/vb29/76+ - vv/BwcH/wsLC/8TExP/FxcX/yMjI/8nJyf/Ly8v/zc3N/8/Pz//R0dH/09PT/9XV1f/X19f/2tra/9vb - 2//d3d3/4ODg/+Li4v/k5OT/5ubm/+jo6P/q6ur/7Ozs/+/v7/+1tNH/bGyr/zg3j/8kIYb/JSGK/yYh - kf8nIpb/JyKa/ygjoP8pJKb/KiSs/yskr/8rJK//KySw/ysksP8qI67/KiSs/ykjpv8pI6T/KCOf/ygj - m/8nIpX/JiGR/yUiiv8lIIb/RUOX/35+tv/Ozd//8fHx/+/v7//t7e3/6+vr/+rq6v/o6Oj/5ubm/+Xl - 5f/i4uL/4eHh/9/f3//d3d3/29vb/9ra2v/X19f/1tbW/9TU1P/T09P/0NDQ/8/Pz//Ozs7/zc3N/8rK - yv/Jycn/yMjI/8XFxf/FxcX/ycnJ/9PT0//S0tL6h4eHbwAAABMAAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAFAAAAE42NjXnOzs78zs7O/8XFxf+/v7//wcHB/8LCwv/Dw8P/xcXF/8fHx//Jycn/y8vL/83N - zf/Pz8//0NDQ/9PT0//V1dX/1tbW/9nZ2f/a2tr/3Nzc/9/f3//h4eH/4uLi/+Xl5f/n5+f/6urq/+vr - 6//t7e3/7+/v//Hx8f/y8vL/9fX1/9nY6P+bmsj/aWeu/0dFm/8qJ4v/JiKJ/yYii/8mIY//JyKR/yci - kf8nIpL/JyKS/ycikf8nIo//JiGN/yYii/8mIon/MS6P/1NQo/95d7f/rKvS/+bm7v/29vb/9fX1//Ly - 8v/x8fH/8PDw/+3t7f/s7Oz/6+vr/+jo6P/n5+f/5eXl/+Tk5P/h4eH/4ODg/93d3f/c3Nz/29vb/9nZ - 2f/X19f/1dXV/9TU1P/T09P/0NDQ/8/Pz//Ozs7/y8vL/8rKyv/Jycn/ycnJ/83Nzf/U1NT/1NTU/JGR - kXkAAAATAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAFJmZmX3Pz8/50dHR/8jI - yP/ExMT/w8PD/8XFxf/Hx8f/ycnJ/8rKyv/Nzc3/zs7O/9DQ0P/R0dH/1NTU/9bW1v/X19f/2tra/9zc - 3P/d3d3/4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/7Ozs/+3t7f/w8PD/8fHx//T09P/19fX/9vb2//f3 - 9//5+fn/+vr6//v7+//f3u7/zMvl/5+dzv+cm83/nJvN/5ybzv+cm87/nJvO/7u63f/My+X/zMvl//n5 - +//7+/v/+/v7//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Hx8f/w8PD/7+/v/+3t7f/r6+v/6urq/+jo - 6P/m5ub/5eXl/+Li4v/h4eH/39/f/93d3f/c3Nz/2tra/9nZ2f/W1tb/1dXV/9TU1P/R0dH/0NDQ/8/P - z//Nzc3/y8vL/8vLy//Q0ND/19fX/9XV1fmZmZl9AAAAFAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAFAAAAE46OjnHS0tL11dXV/8vLy//Hx8f/x8fH/8jIyP/Kysr/y8vL/87O - zv/Pz8//0dHR/9TU1P/V1dX/19fX/9nZ2f/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/n5+f/6Ojo/+vr - 6//s7Oz/7+/v//Dw8P/y8vL/9PT0//X19f/29vb/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//// - //////////////////////////////7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/39/f/9vb2//X1 - 9f/09PT/8vLy//Hx8f/v7+//7e3t/+zs7P/q6ur/6Ojo/+fn5//l5eX/5OTk/+Li4v/g4OD/39/f/9zc - 3P/b29v/2tra/9fX1//W1tb/1dXV/9PT0//R0dH/0NDQ/8/Pz//Pz8//09PT/9ra2v/Y2Nj1kJCQcQAA - ABMAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAEYKC - gl7Ozs7s19fX/9DQ0P/Kysr/ycnJ/8vLy//Nzc3/z8/P/9DQ0P/T09P/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/d3d3/4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+3t7f/v7+//8fHx//Ly8v/09PT/9vb2//f3 - 9//5+fn/+vr6//v7+//8/Pz//Pz8//7+/v/+/v7//////////////////////////////////v7+//7+ - /v/8/Pz//Pz8//v7+//6+vr/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7Ozs/+vr - 6//q6ur/5+fn/+bm5v/l5eX/4uLi/+Hh4f/g4OD/3d3d/9zc3P/a2tr/2dnZ/9fX1//W1tb/1NTU/9PT - 0//R0dH/0dHR/9bW1v/d3d3/09PT7IKCgl4AAAARAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAD3d3d1HOzs7k3Nzc/9TU1P/Pz8//zc3N/8/P - z//Q0ND/0dHR/9TU1P/W1tb/19fX/9ra2v/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+vr - 6//s7Oz/7e3t//Dw8P/x8fH/8vLy//X19f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+ - /v/////////////////////////////////+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3d3d/9vb2//a2tr/2dnZ/9bW1v/V1dX/1NTU/9bW1v/a2tr/4ODg/9XV1eR6enpRAAAADwAA - AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAEAAAADV9fXzvHx8fL4ODg/9ra2v/T09P/0dHR/9HR0f/U1NT/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/f39//4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+3t7f/v7+//8PDw//Ly8v/09PT/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//////////////////////////////////7+ - /v/+/v7//Pz8//z8/P/7+/v/+vr6//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Ly8v/x8fH/7+/v/+3t - 7f/s7Oz/6+vr/+rq6v/n5+f/5ubm/+Xl5f/i4uL/4eHh/+Dg4P/d3d3/3Nzc/9vb2//a2tr/19fX/9fX - 1//a2tr/39/f/+Tk5P/Ly8vLY2NjOwAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACiYmJiG1tbWi5OTk/9/f - 3//Z2dn/1dXV/9XV1f/W1tb/19fX/9ra2v/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//x8fH/8vLy//T09P/19fX/9vb2//n5+f/5+fn/+vr6//v7+//8/Pz//Pz8//7+ - /v/+/v7//////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5 - +f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs7P/r6+v/6urq/+jo6P/n5+f/5eXl/+Tk - 5P/i4uL/4ODg/9/f3//d3d3/3Nzc/9ra2v/b29v/3d3d/+Tk5P/n5+f/ubm5oiYmJiEAAAAKAAAAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAABwAAABOZmZlu2tra7OTk5P/d3d3/2tra/9nZ2f/Z2dn/29vb/9zc - 3P/f39//4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+zs7P/v7+//8PDw//Hx8f/y8vL/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v////////////////////////////// - ///+/v7//v7+//7+/v/8/Pz/+/v7//v7+//6+vr/+fn5//f39//29vb/9fX1//X19f/y8vL/8fHx//Dw - 8P/v7+//7e3t/+zs7P/r6+v/6Ojo/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/9/f3//f39//39/f/+Li - 4v/n5+f/3d3d7Jubm24AAAATAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AA1vb29Az8/Px+jo6P/k5OT/4ODg/9zc3P/c3Nz/3d3d/+Dg4P/h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq - 6v/r6+v/7e3t/+/v7//w8PD/8fHx//T09P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//7+ - /v/+/v7//v7+//////////////////////////////////7+/v/+/v7//v7+//z8/P/7+/v/+/v7//r6 - +v/5+fn/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/t7e3/7Ozs/+vr6//q6ur/6Ojo/+bm - 5v/l5eX/5OTk/+Li4v/h4eH/4eHh/+Tk5P/o6Oj/6+vr/9DQ0Mdvb29AAAAADQAAAAQAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAkAAAAZqqqqft7e3unq6ur/5eXl/+Li - 4v/g4OD/4ODg/+Li4v/k5OT/5ubm/+fn5//o6Oj/6+vr/+zs7P/t7e3/7+/v//Hx8f/y8vL/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+/v////////////////////////////// - /////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Ly - 8v/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+bm5v/l5eX/5eXl/+Xl5f/o6Oj/7Ozs/+Dg - 4OmsrKx+AAAAGQAAAAkAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAANYmJiNMbGxqzp6en86+vr/+fn5//l5eX/5OTk/+Xl5f/m5ub/5+fn/+rq - 6v/r6+v/7Ozs/+/v7//w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/7+/v//Pz8//z8 - /P/+/v7//v7+///////////////////////////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7 - +//6+vr/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+3t7f/s7Oz/6+vr/+rq - 6v/o6Oj/5+fn/+fn5//r6+v/7e3t/+vr6/zIyMisYmJiNAAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAHAAAAEZeX - l1nZ2dnO7+/v/+3t7f/q6ur/5+fn/+jo6P/o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+vr6//v7+//8/Pz//Pz8//7+/v/+/v7///////////////////////// - //////////////7+/v/+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f39//29vb/9vb2//X1 - 9f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs7P/r6+v/6+vr/+vr6//t7e3/8PDw//Hx8f/b29vOl5eXWQAA - ABEAAAAHAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAACQAAABWoqKht3t7e0vLy8v/w8PD/7e3t/+3t - 7f/s7Oz/7Ozs/+3t7f/w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/6+vr/+/v7//z8 - /P/8/Pz//v7+//7+/v///////////////////////////////////////v7+//7+/v/+/v7//Pz8//z8 - /P/7+/v/+/v7//r6+v/5+fn/9/f3//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7+/v/+/v - 7//w8PD/8vLy//T09P/f39/Sra2tbQAAABUAAAAJAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABAAAAAoKCgoZsLCwb9zc3Mn19fX/9PT0//Ly8v/x8fH/8fHx//Hx8f/x8fH/8vLy//T0 - 9P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//z8/P/+/v7//v7+//////////////////// - ///////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/y8vL/8fHx//Ly8v/09PT/9fX1//b29v/e3t7JsLCwbwoKChkAAAAKAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAKAAAAFZeX - l1TS0tKr6Ojo5vb29v/29vb/9fX1//T09P/19fX/9fX1//b29v/29vb/9/f3//n5+f/6+vr/+/v7//v7 - +//8/Pz//Pz8//7+/v/+/v7///////////////////////////////////////7+/v/+/v7//v7+//z8 - /P/8/Pz/+/v7//v7+//6+vr/+fn5//n5+f/39/f/9vb2//X19f/29vb/9vb2//b29v/39/f/9/f3/+jo - 6ObS0tKsl5eXVAAAABUAAAAKAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAABwAAAA5MTEwor6+vbdjY2Lry8vL1+fn5//n5 - +f/5+fn/+fn5//n5+f/6+vr/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v////////////// - /////////////////////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+/v7//r6+v/6+vr/+vr6//n5 - +f/5+fn/+fn5//r6+v/6+vr/8/Pz9djY2Lqvr69tTExMKAAAAA4AAAAHAAAAAgAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAAIAAAAEHZ2djbBwcGA29vbuu7u7uf7+/v/+/v7//v7+//7+/v/+/v7//z8 - /P/8/Pz//Pz8//7+/v/+/v7//v7+///////////////////////////////////////+/v7//v7+//7+ - /v/8/Pz//Pz8//z8/P/8/Pz/+/v7//v7+//7+/v/+/v7//v7+//u7u7n3NzcusHBwYB2dnY2AAAAEAAA - AAgAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AAkAAAAQaWlpLpqamlHFxcWK4eHhwOvr69/z8/Pw/v7+//7+/v/+/v7//v7+//7+/v/+/v7///////// - //////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/z8/Pw6+vr3+Hh - 4cDFxcWKmpqaUWlpaS4AAAAQAAAACQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABgAAAAoAAAAOCgoKGIOD - gzqurq5fvb29ecvLy5Xd3d2u5eXlxenp6dHw8PDd8PDw5vn5+fT5+fn0+fn59Pn5+fTw8PDm8PDw3enp - 6dHl5eXF3d3drsvLy5W9vb15rq6uX4ODgzoKCgoYAAAADgAAAAoAAAAGAAAAAwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAwAAAAYAAAAIAAAACgAAAA0AAAAPAAAAEAAA - ABEAAAATAAAAEwAAABQAAAAUAAAAEwAAABMAAAARAAAAEAAAAA8AAAANAAAACgAAAAgAAAAGAAAAAwAA - AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA/////////////////////////////+AAAAf///////////////4AAAAAf//////////////w - AAAAAA//////////////gAAAAAAB/////////////AAAAAAAAD////////////AAAAAAAAAP//////// - ///AAAAAAAAAA///////////AAAAAAAAAAD//////////gAAAAAAAAAAf/////////gAAAAAAAAAAB// - ///////gAAAAAAAAAAAH////////wAAAAAAAAAAAA////////4AAAAAAAAAAAAH///////8AAAAAAAAA - AAAA///////8AAAAAAAAAAAAAD//////+AAAAAAAAAAAAAAf//////AAAAAAAAAAAAAAD//////gAAAA - AAAAAAAAAAf/////wAAAAAAAAAAAAAAD/////4AAAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAD///// - AAAAAAAAAAAAAAAA/////gAAAAAAAAAAAAAAAH////wAAAAAAAAAAAAAAAA////4AAAAAAAAAAAAAAAA - H///+AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAB///4AAAAAAAAAAA - AAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAH//wAAAAAA - AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/wA - AAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAP/gAAAAAAAAAAAAAAAAA - AB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAA - AAAAAAAP8AAAAAAAAAAAAAAAAAAAD+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAA - AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA - AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA - AAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAA - AAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA - AAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA - AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA - AAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAA - AAAAAAADwAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAA - AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD/AA - AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA - AB/8AAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA - AAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//4AAAAAA - AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAAAAAAAAAAAAAH///g - AAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////gAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAA - H////AAAAAAAAAAAAAAAAD////4AAAAAAAAAAAAAAAB/////AAAAAAAAAAAAAAAA/////wAAAAAAAAAA - AAAAAP////+AAAAAAAAAAAAAAAH/////wAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAAAB//////wAAAA - AAAAAAAAAA//////+AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAP///////AAAAAAAAAAAAAP////// - /4AAAAAAAAAAAAH////////AAAAAAAAAAAAD////////8AAAAAAAAAAAD/////////gAAAAAAAAAAB// - ///////+AAAAAAAAAAB//////////wAAAAAAAAAA///////////AAAAAAAAAA///////////8AAAAAAA - AA////////////wAAAAAAAA/////////////gAAAAAAB//////////////AAAAAAD//////////////+ - AAAAAH///////////////+AAAAf///////////////////////////////////////////////////// - //////////////////8oAAAAMAAAAGAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAFAAAACwAAAA8AAAARAAAAEQAAAA8AAAALAAAABQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAUAAAAaAAAAPAoKCmAgICCENDQ0nEFBQatLS0uzS0tLs0FBQasyMjKcICAghAoK - CmAAAAA8AAAAGgAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAQAAAAPx8fH4FMTEy/dnZ255qamvu7u7v/0NDQ/+Dg4P/p6en/6enp/+Dg - 4P/S0tL/vb29/5ycnPt3d3fnTU1Nvx8fH4EAAAA/AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAEk0NDSkcXFx566urv/c3Nz/9PT0//z8/P////////////// - ///////////////////////////////////29vb/4ODg/7Gxsf9zc3PnNjY2pAAAAEkAAAAOAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAwKioqlnR0dOu9vb3/5ubm/+/v7//y8vL/8/Pz//b2 - 9v/5+fn//Pz8//7+/v////////////7+/v/9/f3/+/v7//n5+f/39/f/9fX1//X19f/r6+v/wcHB/3Z2 - duwsLCyWAAAAMAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwoKCl1VVVXSpqam/9vb2//k5OT/5ubm/+np - 6f/t7e3/8fHx//X19f/5+fn/+/v7//7+/v////////////7+/v/9/f3/+/v7//j4+P/29vb/8fHx/+7u - 7v/r6+v/6urq/+Hh4f+rq6v/WFhY0g0NDV0AAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATIiIif3Nzc/HCwsL/2NjY/9nZ - 2f/d3d3/4uLi/+fn5//s7Oz/8PDw//T09P/39/j/+/v7/////f///////////////v/9/fz/+vr6//j4 - +P/09PT/8PDw/+zs7P/o6Oj/5OTk/+Dg4P/g4OD/ycnJ/3h4ePEkJCR/AAAAEwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYqKiqRgoKC+sbG - xv/Ozs7/0dHR/9bW1v/a2tr/39/f/+Xl5f/q6un/8/Pw//z89f////r//f38//Dw/P/r6/z/6+v8//Dw - /P/3+Pz////8////+f/39/T/7+/u/+rq6v/m5ub/4eHh/9zc3P/Y2Nj/19fX/87Ozv+Hh4f6LS0tkQAA - ABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAES8v - L5KGhob+wMDA/8fHxv/Ozsz/zc3N/9LS0v/X19j/3d3c/+rq5f/w8O7/1tXu/6mm6v98d+b/Xlfl/0tE - 5f9DO+b/RDvn/0tC5v9VTeX/cGrm/6Ge6//Y1/H/9fXy/+7u6v/j4+P/39/f/9ra2v/V1dX/0dHR/83N - zf/Jycn/jIyM/jAwMJIAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAGJycnen5+fvu5ubn/vb28/7W2vv+ys8n/0tLO/83Nzf/Y2NX/4+Pi/7Kx4P9jYNT/My3P/yQc - 0/8mHdj/KCDd/ysi4P8tI+L/LSPj/ywi4f8qId7/Jx3a/yUc1f80LdL/bWrZ/8TD5v/s7Of/3t7c/9bW - 1v/R0dH/zc3N/8nJyf/FxcX/wcHB/4aGhvspKSl6AAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAASEhJRbW1t7q+vr/+0tLT/ubm4/6iotf84OqL/p6fL/9zc0//Gxtn/YV/J/yMe - v/8hG8X/KCHM/ywk0/8uJdn/Libe/y8m4f8wJuP/MCbk/zAm4v8vJt//LiXb/y0l1v8pIs//IRvI/ykl - xP95eNH/2Njg/9ra1f/Nzc3/ycnJ/8TExP+/v7//vb29/7e3t/9ycnLuEhISUQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVVVVXPoKCg/62trf+vr6//tbWz/6Slsf8hIpr/Kiqn/42N - yf89PLj/Gxi2/yUgv/8oIsb/KiPN/ywk0/8uJdn/Libf/y8m4/8wJuX/MCbm/zAm5P8vJuH/LiXc/y0l - 1v8rI9D/KSLJ/yUfw/8cGLn/SknA/7291//S0s7/xMTE/7+/v/+7u7v/uLi4/7a2tv+pqan/WFhYzwAA - ACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjY2NoyKior/pqam/6enp/+qqqr/sLCu/52e - rP8iI5v/Ghqi/xoZqP8eG6//IyC3/yUhv/8nIsb/KSPN/ywk1P8tJNj/KCDR/yQcxf8kG77/JBy+/yQb - v/8lHcn/KyLW/y0l1/8rI9H/KSLJ/ychw/8lIbv/HBmx/y8vsv+pqcz/ycnE/7q6uv+2trb/s7Oz/7Cw - sP+vr6//kZGR/zg4OIwAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQkJN2ZmZumenp7/oKCg/6Ki - ov+lpaX/q6up/5eXp/8fH5r/HByj/x8eqf8hHrD/IyC3/yUgvv8nIsf/KCLL/yIbvP8rJaj/Uk6r/399 - vP+bmsr/n57M/5eVx/9ua7b/OjWm/yIcsv8nIMr/KSLK/yYhwv8kIbv/IiCz/xsaqv8sK6r/qKnE/7y7 - t/+ysrL/rq6u/6urq/+pqan/pqam/2xsbOkJCQk3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPj4+lIqK - iv+ampr/m5ub/52dnf+goKD/pqak/4+Po/8dHZn/HByi/x8dqP8hHq//IyC3/yUgv/8iHLj/JyOe/2dl - qf/AwNP/8fHx/////f/////////////////9/fr/39/m/5KRvf80MKD/IRy6/yYhw/8kILr/Ih+z/yAe - rP8YF6P/PD2p/7W1vP+urqz/qamp/6ampv+jo6P/o6Oj/5KSkv9DQ0OUAAAABQAAAAAAAAAAAAAAAAAA - AAAAAAAoY2Nj4pSUlP+VlZX/lpaW/5mZmf+bm5v/oaGe/4aHnv8cHJn/HBui/x4dqP8gHa//Ih+3/yEd - vv9LSLj/sbHA/+Li3v/s7Or/8fHx//n5+f/+/v7///////z8/P/29vb/8fHv/+7u6f/Dw87/Skif/x4a - sP8kILv/Ih+z/yAerP8eHaX/FRWd/2Firf+xsa7/o6Oj/6Ghof+enp7/nZ2d/5ycnP9nZ2fiAAAAKAAA - AAAAAAAAAAAAAAAAAAAwMDBqfHx8/5GRkf+RkZH/kpKS/5SUlP+Wlpb/nJyZ/3t7lv8ZGZb/Ghqf/xwb - pf8eG6z/IB20/yAbuv9DP8n/vr7V/9zc1//i4uL/7e3t//f39//+/v7///////v7+//z8/P/6urq/+Dg - 4P/b29n/wcHF/0hGm/8dGrD/Ih+z/x8dq/8dHKT/Gxue/xwdmv+Mjqz/oqKe/5ycnP+ampr/mZmZ/5iY - mP+BgYH/MjIyagAAAAAAAAAAAAAAAAAAAAdRUVGtiYmJ/4yMjP+NjY3/jo6O/5CQkP+RkZH/mJiU/29w - jv8UFJD/FhWX/xkWnv8bF6X/HRis/x8as/8bFbn/OzW+/7a1zP/f39z/6enp//X19f/8/Pz///////n5 - +f/w8PD/5eXl/9nZ2f/Ozs7/yMjG/6mqsv8wLpn/Hhux/x8dq/8dHKT/HBye/xQVlv9LTaD/oaGf/5eX - l/+VlZX/lJSU/5OTk/+QkJD/VVVVrgAAAAgAAAAAAAAAAAAAACFjY2PdioqK/4iIiP+JiYn/ioqK/4uL - i/+NjY3/k5KQ/2lqg/8aG27/ISJz/yMjeP8lJH3/JyWB/yooh/8yMIz/MCyQ/1ZTn//IyM7/4+Ti//Hx - 8f/7+/v//v7+//j4+P/s7Oz/3t7e/9DQ0P/ExMT/urq6/7m5tP95eZz/HBqh/x8drP8dG6T/HBud/xkY - mP8gIpb/iYqc/5SUkv+RkZH/kJCQ/4+Pj/+QkJD/ZmZm3QAAACEAAAAAAAAAAB4eHkJvb2/3h4eH/4WF - hf+Ghob/h4eH/4eHh/+IiIj/ioqK/4WGiP9+foX/g4SJ/4aGi/+JiY7/jY2T/5KSmP+cnKD/pKSo/6ys - sv/CwsX/2dnZ/+vr6//7+/v//v7+//T09P/k5OT/09PT/8TExP+4uLj/r6+v/6ioqP+hoaD/OTiT/xsZ - qf8cG6P/Gxud/xoal/8UFZP/ZWaW/5KSjv+NjY3/i4uL/4qKiv+MjIz/c3Nz9yIiIkIAAAAAAAAAADo6 - OmV5eXn/hISE/4ODg/+EhIT/hISE/4WFhf+FhYX/hoaG/4eHh/+Kion/ioqK/4yMi/+Pj47/kpKQ/5WV - lP+ampn/oaGg/6qqqv+3t7f/ysrK/+Li4v/4+Pj//v7+/+7u7v/Y2Nj/xMTE/7W1tf+qqqr/oqKi/5yc - nP+dnZj/ZmaO/xoYof8cG6T/Gxud/xkal/8UFZP/Q0aQ/46Oiv+IiIj/iIiI/4eHh/+IiIj/fX19/zw8 - PGUAAAAAAAAAAEZGRn5+fn7/goKC/4GBgf+CgoL/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hISE/4WF - hf+Ghob/iIiI/4qKiv+NjY3/kpKS/5mZmf+jo6P/tLS0/9DQ0P/z8/P/+/v7/+Li4v/ExMT/sLCw/6Oj - o/+bm5v/lZWV/5KSkv+QkI//gYGJ/yUkmP8bGab/Gxqe/xkamf8UFpX/MTON/4eHh/+FhYX/hYWF/4SE - hP+FhYX/gYGB/0hISH4AAAAAAAAAAFBQUI6AgID/gICA/4CAgP+AgID/gICA/4CAgP9/f3//f39+/39/ - fv9/f3//gIB//4CAgP+CgoL/goKC/4ODg/+EhIT/hoaG/4mJif+Ojo7/mJiY/66urv/h4eH/9vb2/8TE - xP+lpaX/l5eX/5CQkP+MjIz/iYmJ/4iIiP+Ghob/h4eF/zQ0fv8REX3/FBR5/xMTdf8PEXH/IyVx/319 - gf+Dg4L/gYGB/4GBgf+BgYH/goKC/1VVVY0AAAAAAAAAAFdXV5SBgYH/fn5+/35+fv9+fn7/fn5+/4B/ - gP+NjpH/kJGV/5CQlP+QkJT/kZGV/4qKjP9+fn7/f39//39/f/9/f3//f39//39/f/+AgID/gYGB/4SE - hP+jo6P/u7u7/42Njf+FhYX/g4OD/4KCgv+BgYH/gICA/4CAgP+AgID/gICA/25uef9iYnT/Y2Nz/2Nj - c/9iYnL/ZmZz/319fv+AgH//f39//39/f/9/f3//gYGB/1dXV5QAAAAAAAAAAFtbW5SCgoL/fn5+/35+ - fv9+fn7/fn5+/3p6fv9AQ5H/NTec/zc5n/85OaL/Nzeo/1pam/+BgX3/f39//39/f/9/f3//f39//4CA - gP+CgoL/hYWF/46Ojv+7u7v/1tbW/6CgoP+Ojo7/iIiI/4aGhv+EhIT/g4OD/4KCgv+CgoL/gYGB/4OD - gv+FhYL/hISC/4SEgv+EhIL/g4OC/4GBgf+AgID/gICA/4CAgP+AgID/hISE/1tbW5MAAAAAAAAAAFlZ - WYuDg4P/f39//39/f/9/f3//gIB//3t7fv8kJoP/ERKQ/xUVlP8WFpj/FBOf/zw7nv+FhYP/goKC/4OD - g/+FhYX/h4eH/4yMjP+Tk5P/oKCg/7u7u//r6+v/+vr6/9HR0f+xsbH/oKCg/5eXl/+RkZH/jY2N/4uL - i/+JiYn/h4eH/4eHh/+Ghob/hYWF/4WFhf+EhIT/g4OD/4ODg/+Dg4P/goKC/4KCgv+CgoL/hoaG/1tb - W4sAAAAAAAAAAFZWVnmDg4P/gICA/4GBgf+BgYH/gYGB/4KCgP8wMoD/FBWR/xkZlf8aGpn/GRif/y0s - pf+Hh5H/iIiH/4uLi/+Ojo7/lJSU/5ycnP+oqKj/u7u7/9fX1//29vb//Pz8/+bm5v/Ly8v/t7e3/6mp - qf+goKD/mpqa/5WVlf+SkpL/j4+P/4yMjP+Kior/iYmJ/4iIiP+IiIj/h4eH/4aGhv+Ghob/hoaG/4WF - hf+FhYX/h4eH/1hYWHkAAAAAAAAAAE5OTluCgoL/goKC/4KCgv+Dg4P/g4OD/4eHg/9DRX3/EhSP/xkZ - lf8aGpr/Gxqf/xsap/95eaT/lJSP/5SUlP+ampr/oaGh/6ysrP+7u7v/z8/P/+bm5v/6+vr//f39/+/v - 7//c3Nz/ysrJ/7y8uv+xsa7/q6um/6amof+jo53/pKSd/6Kinf+hoZ7/oaKh/5aWlv+MjIz/i4uL/4qK - iv+JiYn/iYmJ/4iIiP+IiIj/iIiI/1NTU1wAAAAAAAAAAD09PTZ+fn71hYWF/4SEhP+FhYX/hYWF/4uL - h/9iYn7/FBaK/xkalv8aGpr/HBug/xkWpv9MTLH/pKSi/56dnf+lpaX/r6+v/7u7u//Kysr/3Nzc/+7u - 7v/8/Pz//v7+//T09P/m5uX/z8/T/7W1yv+trMv/m5rG/4uLwf99fb7/c3G6/2Rjtf9VVLD/REWp/3Jz - mf+VlZH/kZGR/4+Pj/+Ojo7/jIyM/4yMjP+MjIz/h4eH9T09PTYAAAAAAAAAAAwMDBR+fn7Wi4uL/4eH - h/+IiIj/iIiI/4uLiv+Bgof/IiSA/xgYl/8aG5r/HBuh/x0bp/8fHa7/i4u6/7Gxq/+wsLD/u7u7/8fH - x//V1dX/5eXl//Pz8//9/f3//v7+//f39//u7uz/09PY/1lXqf8jHbb/JyHJ/yIdwf8dGbn/Ghax/xgW - qf8XFqP/EhKb/19glv+dnZj/lZWV/5OTk/+SkpL/kZGR/5CQkP+Tk5P/hYWF1gwMDBQAAAAAAAAAAAAA - AAF3d3egkpKS/4qKiv+Li4v/jY2N/4+Pj/+UlZH/TU5//xQUj/8bG5v/HBuh/x4cp/8dGa3/ODW5/7Oz - xv/Cwrz/xMTF/9HR0f/e3t7/6+vr//b29v/+/v7//v7+//n5+f/w8PD/6Ojn/9HR1f9iYKT/IBur/yQf - wf8jH7n/IR6y/x8dq/8dHKT/FRad/19gmf+kpJ7/m5ub/5iYmP+Xl5f/lZWV/5OTk/+cnJz/fX19oAAA - AAEAAAAAAAAAAAAAAABkZGRUkpKS/o+Pj/+Pj4//kZGR/5KSkv+Xl5b/hoaP/yAhgP8ZGpv/HByh/x4d - qP8gHa7/HRm1/0hFxP/AwNT/2NjS/9nZ2P/k5OT/7+/v//j4+P/+/v7//v7+//r6+v/z8/P/6urq/+Tk - 4f/j49r/dnTE/yAcv/8jILr/IR6y/yAdq/8eHKX/FRad/11dm/+oqaT/n5+f/52dnf+bm5v/mZmZ/5iY - mP+ampr+bW1tVAAAAAAAAAAAAAAAAAAAAAAzMzMUj4+P15iYmP+Tk5P/lZWV/5iYmP+ampr/oqKe/2Bh - h/8VFYv/HByj/x4dqP8gHa//Ix+2/x8avP9APMr/tbTf/+vs5v/w8Or/9PTy//r6+v/+/v7///////z8 - +//4+Pb/9/fw/+jo7P+joeL/RkHO/yMewf8kILr/Ih+z/yAerP8eHaX/Fhed/1lanf+tran/paWl/6Ki - ov+fn5//nZ2d/6Kiov+Xl5fYJCQkFQAAAAAAAAAAAAAAAAAAAAAAAAAAgoKCe6Kiov+Xl5f/mpqa/5yc - nP+fn5//o6Oj/6SkpP9BQoL/FhaX/x8eqv8hHq//IyC3/yUgvv8jHcX/LSbM/3Rw3v/Bv+3/7+73//7/ - /P////////////3+/f/o5/f/rqvs/1VP3P8lHs7/JB7I/yYhwv8kILr/Ih+z/yAerf8eHab/Fhee/1VW - n/+ysq7/qqqq/6enp/+lpaX/oqKi/6ysrP+IiIh7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/HJ2d - nd+hoaH/np6e/6Ghof+kpKT/qKio/6+vrv+hoaj/NDSD/xgXnf8hHrH/IyC3/yUgvv8nIsb/KCLM/yQc - 0v8sI9j/TEXi/21n6v9/eu7/enXu/2Nc6f9COuL/KSDa/yge1P8qI8//KSLJ/yYhwv8kIbv/Ih+0/xsa - oP8ZGZr/Fxef/1BRoP+2trP/r6+v/6ysrP+pqan/rKys/6Wlpd8/Pz8cAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIyMjG2urq7/oqKi/6Wlpf+pqan/ra2t/7Gxsf+6urj/pKSu/zc4h/8ZF5//IyC5/yYh - wP8oIsb/KiPN/ywk0/8tJNn/KiLd/ygf4P8oHeL/KB7j/yog4f8sI9//LiXb/y0k1f8rI9D/KSLJ/ych - xP8jH7r/GRia/0ZGjf9ERYn/ERGN/0tMof+5ubf/tLS0/7CwsP+urq7/t7e3/5GRkW0AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwqlpaW5tLS0/6mpqf+urq7/srKy/7a2tv+6urr/xcXD/7a2 - vP9QUJH/GhiY/yMeuv8oIsj/KiPO/ywk0/8uJdn/Libe/y8m4f8wJuP/MCbk/zAm4v8vJt//LiXb/y0l - 1v8rJNH/KSLL/yEcuv8hHpb/b2+g/8rLy//CwsT/TU6K/z0/jP+9vbz/ubm4/7S0tP++vr7/ra2tuTMz - MwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MqtLS047a2tv+ysrL/t7e3/7u7 - u//AwMD/xcXF/8/Ozf/Pz87/hIWs/y8uk/8dGKr/Jh/G/ywk1f8uJdv/Libf/y8m4v8wJuT/MCbl/zAm - 4/8vJuD/LiXd/ywk1/8mH8j/Hhqp/z49mP+iorz/3d3a/9TU0//Q0M//wsPF/4GCn/+8vL7/vLy8/8DA - wP+8vLzjc3NzKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk5OTUb+/ - v/a7u7v/urq6/7+/v//FxcX/ycnJ/8/Pz//W1tX/4eHe/8nJ0v9+frD/PDqe/yMeqP8iG7v/Jh7N/ykh - 1v8rIdr/KyHa/ykg1v8mHs3/Ihu8/yUfqf9CP6H/jIu4/9na3f/n5+P/29vb/9bW1v/R0dH/zs7N/8zM - yv/ExMT/xcXF/8fHx/aamppRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAKmpqWjHx8f6xMTE/8PDw//Jycn/zs7O/9PT0//Y2Nj/3t7e/+fn5v/w8O3/4eHm/7W0 - 0P+Egrz/YF2w/01Jrf9HQq7/SUSv/1NPr/9kYbL/iojA/7u61P/m5ur/8/Pw/+rq6f/j4+P/3t7e/9nZ - 2f/V1dX/0NDQ/8vLy//MzMz/z8/P+q6urmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvr69kzs7O88/Pz//MzMz/0dHR/9bW1v/b29v/4ODg/+bm - 5v/r6+v/8vLx//v7+P////z////9//b2+f/y8vf/9PT4//v7+/////3////9//z8+f/09PP/7e3u/+rq - 6v/l5eX/4ODg/9zc3P/X19f/09PT/9fX1//V1dXzsrKyZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr6+vTdPT0+Hd3d3/1dXV/9nZ - 2f/e3t7/4+Pj/+jo6P/t7e3/8vLy//X19f/5+fn//Pz8/////////////////////v/7+/v/+vr6//f3 - 9//z8/P/7+/v/+vr6//n5+f/4+Pj/97e3v/b29v/4+Pj/9jY2OGysrJNAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyc - nCfS0tKz4uLi/+Pj4//g4OD/5ubm/+rq6v/u7u7/8vLy//f39//6+vr//Pz8//7+/v////////////7+ - /v/8/Pz/+vr6//f39//09PT/8fHx/+3t7f/o6Oj/5eXl/+jo6P/m5ub/1dXVs5ycnCcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAExcXFYuLi4tjv7+//7+/v/+3t7f/w8PD/9PT0//f39//6+vr//Pz8//7+ - /v////////////7+/v/8/Pz/+vr6//j4+P/19fX/8fHx/+/v7//y8vL/8vLy/+Xl5djIyMhiAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGRkRXW1tZx5+fnzu7u7v38/Pz//Pz8//v7 - +//7+/v//Pz8//7+/v////////////7+/v/8/Pz//Pz8//v7+//9/f3//v7+/+/v7/3p6enO1tbWcZGR - kRUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzCsnJ - yUPh4eGT7Ozsz/Pz8/H7+/v//////////////////////////////////Pz8//T09PHs7OzP4+Pjk8nJ - yUMzMzMKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAHBwcCbW1tSbOzs5K3NzcZuPj43jt7e2B7e3tgePj43jh4eFmzs7OSrW1 - tSYcHBwJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///wD///AAD//wAA//8AAP/8AAA//wAA//AAAA// - AAD/wAAAA/8AAP+AAAAB/wAA/wAAAAD/AAD+AAAAAH8AAPwAAAAAPwAA+AAAAAAfAAD4AAAAAB8AAPAA - AAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAIAAAAAAAQAAgAAAAAAB - AACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAA - AAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAADAAAAAAAMAAMAAAAAAAwAA4AAAAAAH - AADgAAAAAAcAAPAAAAAADwAA8AAAAAAPAAD4AAAAAB8AAPwAAAAAPwAA/gAAAAB/AAD/AAAAAP8AAP+A - AAAB/wAA/8AAAAP/AAD/4AAAB/8AAP/4AAAf/wAA//4AAH//AAD//8AD//8AAP///////wAAKAAAACAA - AABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAoAAAAKAAAABgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAA2MjIyb1lZWZ1xcXG4goKCxIKCgsRxcXG4WVlZnTIy - Mm8AAAA2AAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsiIiJaaWlpu6Ojo/LU1NT/8fHx//39/f////////////// - ///z8/P/19fX/6ampvJqamq7IiIiWgAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4X19fuLCwsP/n5+f/9PT0//f39//6+vr//f39//// - //////////////z8/P/6+vr/+fn5/+zs7P+0tLT/YmJiuAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkYoWFhezS0tL/4uLi/+Tk5P/q6ur/8vLx//v7 - +P////3///////////////7//v/6//b29f/v7+//6urq/+jo6P/Z2dn/ioqK7CcnJ2IAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMXGQkJD80dHP/9LS0f/X19f/4eHf//Dw - 6v/u7vH/19fz/7278/+qp/P/qqf0/7e19P/U0vT/8fH1//X17v/n5+X/3t7e/9nZ2f/X19f/lpaW/DMz - M3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKytdi4uL/MPDwf+xssL/y8vO/9nZ - 0//U1N//kY/b/1BL1v8yK9j/KSDd/yge4v8oHuP/KB/f/zAn2v9RS9n/nJrg/+Dg5f/f39v/0dHS/8zM - zP/Ly8v/kpKS/C4uLl0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFMHd3d+m0tLT/vLy3/2pr - qP9qarn/qqnP/0A9wP8eGcL/JR7N/ywk1/8vJuD/LyXl/y8l5v8vJuL/LSTb/yYf0P8gGsX/TEnG/7m5 - 1v/U1M7/xMTE/76+vv++vr7/fX196QUFBTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVaWlqxpKSk/6mp - qf+0tK//ZGWk/xUVof8jIa7/Hxy3/yciw/8pItD/Jh7R/ycfyP8vJ8P/MSrD/yoixf8lHc//KiLS/ygi - x/8fG7r/LCq0/5ycxv/ExMD/tra2/7Kysv+tra3/YGBgsQAAAAUAAAAAAAAAAAAAAAAAAAAAKysrTIKC - gv6goKD/oaGh/6ysp/9cXZ//Fxeh/x8drP8jILj/JB/A/ygis/9iX7b/razS/9XV5v/c3Or/wsHc/3t5 - v/8wK7T/Ix3E/yUhvP8dG6//JiWp/56euv+zs6//qqqq/6mpqf+JiYn+Li4uTAAAAAAAAAAAAAAAAAAA - AABcXFyulpaW/5aWlv+ampr/o6Oe/1RUm/8XF6H/IB2s/yEduP80ML3/qqrC/+jp4//6+/b///////// - ///+/vv/9PTu/7q6y/8/Par/Hxu4/yEfsP8YGKP/PD2l/6enrP+jo6L/n5+f/5+fn/9gYGCuAAAAAAAA - AAAAAAAADQ0NJXNzc+2RkZH/kJCQ/5KSkv+ampb/RkaR/xAPmv8ZFqT/Gxev/yEbvP9+fMn/29va/+7u - 7f/8/Pz//v7+//T09P/k5OT/2dnW/6+wuv8yMKT/Hhuw/x0dpP8VFZr/a2yi/6Cgm/+Xl5f/mJiY/3h4 - eO0NDQ0lAAAAAAAAAAA/Pz9ZgYGB/4mJif+Kior/jIyM/5GRj/9RUn7/NDR7/zs6g/8+PYr/RUOT/01K - nP+rqsD/6Ojm//n5+f/9/f3/7u7u/9jY2P/ExMT/vL23/3x7oP8cGqb/HRyk/xcXmv8zNZj/k5SW/5GR - kP+QkJD/hoaG/0RERFoAAAAAAAAAAFRUVIiGhob/hYWF/4WFhf+Ghob/h4eH/4qKiP+Njov/kZGO/5WV - kv+dnZr/qaml/7e3t//U1NT/9fX1//z8/P/i4uL/xMTE/7CwsP+lpaT/m5ua/zY1mf8aGaX/Ghqb/xwd - lf96e4//jIyJ/4mJif+Kior/WlpaiAAAAAAAAAAAX19fpYWFhf+BgYH/goKC/4KCgf+CgoH/g4OC/4OD - gv+FhYX/iIiI/4qKiv+QkJD/m5ub/7Ozs//n5+f/9vb2/8TExP+np6f/mZmZ/5KSkv+Sko3/VlWM/xIR - mv8UFZL/DxGL/2Jkhv+JiIX/hISE/4iIiP9hYWGlAAAAAAAAAABkZGSxg4OD/39/f/9/f37/goKE/4iI - jf+IiI3/iIiO/4KCg/+AgID/gICA/4GBgf+CgoL/h4eH/62trf/AwMD/j4+P/4aGhv+EhIT/goKC/4OE - gv9xcX3/R0h0/0hIcv9FRm//a2t5/4KCgf+AgID/hYWF/2ZmZrAAAAAAAAAAAGlpabCDg4P/fn5+/4GB - fv9hYoT/LC6Y/zAxnf8yMqX/bW2M/4KCfv+AgID/goKC/4SEhP+NjY3/vLy8/9DQ0P+ampr/jY2N/4iI - iP+FhYX/hISE/4SEg/+Hh4P/h4eD/4eHg/+Dg4L/gYGB/4GBgf+Ghob/a2trrwAAAAAAAAAAampqoYWF - hf+AgID/hISB/2Bhf/8SE43/FheX/xUToP9eXZr/jIyG/4uLi/+SkpL/n5+f/7u7u//t7e3/+Pj4/83N - zf+urq7/np6e/5aWlf+RkY//jo6M/42Nif+Li4j/h4eH/4aGhv+Ghob/hYWF/4qKiv9tbW2hAAAAAAAA - AABpaWmAiIiI/4ODg/+GhoX/dXWB/xsdiv8ZGZj/GBeg/0FAqf+Zmpn/m5ua/6ioqP+7u7v/2dnZ//f3 - 9//8/Pz/4+Pj/8fHyf+3t7v/qKiw/52dq/+UlKn/iIin/4aGn/+Pj47/jY2M/4uLi/+Kior/j4+P/25u - boEAAAAAAAAAAGBgYE+JiYn/h4eH/4mJif+Li4n/MzSE/xYXmP8cG6D/Hhys/4aGtP+zs6z/u7u7/9DQ - 0P/n5+f/+/v7//39/f/x8u//tbTL/0pGuP87Nsb/Mi+9/yglsf8cG6f/PT2a/5mal/+UlJT/kZGR/5CQ - kP+RkZH/Z2dnTwAAAAAAAAAAMTExGoeHh+eOjo7/jo6O/5aWkv9oaIj/FhaR/x0cov8cGav/NjS6/7Cv - x//T08z/3d3c/+/v7//9/f3//f39//Pz8//n5+T/o6LA/zItuf8gHLv/Hx2v/xkYpP86Opv/oaGf/5yc - nP+ZmZn/mJiY/5CQkOc6OjoaAAAAAAAAAAAAAAAAh4eHoJqamv+UlJT/mZmZ/5ycmv87PIj/Fxeg/yAe - rP8eG7b/PDjG/7Cu3P/t7en//f31/////v/////////4/+zs7v+qqOH/OzbI/yIeuv8hH6//Ghql/zg5 - nf+np6f/pKSj/5+fn/+lpaX/j4+PoAAAAAAAAAAAAAAAAAAAAAB2dnY4mpqa+52dnf+goKD/qKim/5WV - oP8pKY7/Gxms/yMguP8iHcL/LCXO/2Zg4P+no+//xsT3/8PA9/+em+//WFLg/ycf0P8lH8b/JSG8/x4c - rv8WFaH/NTaf/6usr/+sq6v/p6en/6Ojo/t6eno4AAAAAAAAAAAAAAAAAAAAAAAAAACbm5udrKys/6am - pv+tra3/ubm2/5eYqf8tLZX/HBmz/ycixf8pIs7/Jx7W/yce3f8tI+P/LCLj/ycd3/8pINj/KyPR/ygh - yf8dGbP/PTya/0pKlP8rLJT/r6+1/7Ozsv+4uLj/pKSknQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm - ZhmsrKzctLS0/7S0tP+7u7v/ycnG/7Ozvf9RT6H/IBuu/yMdyv8sI9n/Lybg/zAm5f8wJub/Lybi/ywj - 2/8kHcz/Ix6v/2Niqf/Gxsr/y8vJ/3FynP+vsLf/wMC//7S0tNxwcHAZAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJmZmT+5ubn1wMDA/8LCwv/Kysr/19fV/9ra2f+iosP/WVey/zMtuP8oIMT/Jx7N/yce - zf8pIcX/Ni+5/19btf+vrsr/5OTh/9zc2//T09P/zc3L/8jIyP/BwcH1nZ2dPwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKurq0/FxcXzz8/P/9DQ0P/Y2Nj/4eHh/+/w7P/y8u//3Nzn/8HA - 3P+wrtj/tLLZ/8TD3v/f3+n/9fXy//Ly7//l5eX/3d3e/9bW1v/X19f/zMzM87GxsU8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6urjzQ0NDa4eHh/97e3v/k5OT/7Ozs//Pz - 8v/8/Pr///////////////////////z8+//09PT/7u7u/+jo6P/j4+P/5+fn/9TU1Nq7u7s8AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIuLixbU1NSW4ODg+fPz - 8//y8vL/9fX1//n5+f/9/f3////////////9/f3/+vr6//b29v/09PT/9vb2/+Tk5PnW1taWi4uLFgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADMzMwy4ODglurq6uL4+Pj/////////////////////////////////+fn5/+zs7OLi4uKWzMzMMgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAqqqqEtLS0kXk5OR17e3tlfLy8qTy8vKk7e3tleTk5HXS0tJFqqqqEgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//D///8AD//8A - AP/+AAB//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADwAAAA4AAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA - AAGAAAABgAAAAYAAAAHAAAADwAAAA+AAAAfgAAAH8AAAD/gAAB/8AAA//gAAf/+AAf//4Af//////ygA - AAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAbS0tLM0tLSzMAAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVV - VUiioqK1zMzM7OPj4Pvj5OH7z8/O7KamprVVVVVIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnp6 - eY3GxcP/9vbx//r6+//v7v//7+7///z8/v/8/Pb/ycnJ/35+fo0AAAACAAAAAAAAAAAAAAAAAAAAAHR0 - coqwsLr/t7jN/5eW1P9UTtr/OC/j/zct5P9TTd3/n53a/9ra2f/GxsX/eHh4igAAAAAAAAAAAAAAAFVV - VUKbm5j/lpar/ysrqP8gHLv/MCnG/2Ne0/9qZdX/My3I/xoWvv9oaLr/vLy7/6CgoP9VVVVCAAAAAAAA - AAB0dHStnp6b/4GCmf8WFZ//Hhm0/5+dzP/+//b////7/8fH1f9CP7L/FROn/3N0pP+oqKT/enp6rQAA - AAAaGhoTeXl55oyMi/+AgIf/W1uG/2Fgk/+Uk7D/7u7s//T09P/Ly8b/jo2k/xkYov8wMJj/kZGS/39/ - fuYaGhoTVVVVJ3h4ePeBgYL/gYKI/4iIiP+KioT/jY2K/7W1tv/CwsL/kZGR/4mJiP9DQ4f/NTaB/319 - g/97e3r3VVVVJ1BQUCZ6enn3eXqA/ywtk/8/P5v/hoaF/4yMi/+8vLz/ycnJ/5qal/+Skov/j4+G/4eH - g/+EhIT/fHx891BQUCY/Pz8QgIB/5ImJiP8vMIz/HBuk/42NqP/Cwrv/7+/v//f39P+hoMP/Yl+1/1FQ - p/+BgZb/lJSR/4eHh+Q/Pz8QAAAAAIiIiKaenpr/bW6R/xQToP9CP77/v77b//z8+f////v/p6bb/yIe - vv8REKf/fX2h/6mppf+RkZGmAAAAAAAAAACLi4s3oaGh/LCwrf9lZaT/Gha0/y4n1P9fWOn/XVXq/y0l - 1v8lILj/Pj2g/4aGqv+xsa38mZmZNwAAAAAAAAAAAAAAAKysrHvFxcX/z9DM/56dxf9XUsf/OTHS/zsy - 0/9aVcn/qKjM/9HR0P/Bwcf/tra0ewAAAAAAAAAAAAAAAAAAAAAAAAAAw8PDedXV1fz39/P/+vr2/+/v - 9v/w8Pb/+/v4//r69v/b29r8zMzMeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs415eXlofPz - 8+D///v0///79PPz8+Dn5+ehzs7ONQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACwsLAN2NjYIdjY2CGwsLANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/D81e/APAADAAwAAwAPmE4AB - //+AAf//AAD//wAArQAAAP//AAD//4AB//+AAUIAwAOK/+AH///wD////D8AAA== - - - - - iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAP1VJREFUeF7tnQeU - VUX27t+b4Lz/rKWjo5JzDmNAERMGVMxZUdExowgIqICCCKMgQaKERglKE5WMLYqCKKMIIsEhqKgjgtkx - B0zjUO/7VZ/dFodz7r3dBBn/3LVqdfftG86p79vf3rVrV9X/+T+7H7t7YHcP7O6B3T2wuwd+FT3wf3UX - tN+q7aH2/9T+qLan2p/U9lbbR23fqO2nnzT7m//xGl7Le3gvn8Fn8Zn2+b+Kzvo13EQINmDt9cc//rFM - z549j5o5c+aVCxYs6LJs2bK8N998c+Z77733/EcffbTqiy++eFPt/R9++OGbsPEc/+M1vJb38F4+g8/i - M/lsviMiRkiKX0Nf/tfcA6D/Tu1/sNZWrVodOGrUqPOef/75fhs3blz48ccfv/X1119/sXnzZpfUXIZH - 2nt4ns/ks/kOvovv5LsjxeBauCaubfdjB/SAgY4c733rrbc2+vvf/37nG2+8Me+zzz774N///reLt59+ - +slZC4HNlQDh+/k96Tv47n/+85/zuBauKSID17ibDNuBBID+G7U/ILtnnnlmnVmzZrVdt27dvK+++mqT - 5NvF248//uif46cBBnjbQgD7HD7TWvi99pwUYhPXxjVyrZGr4Nq5h93KUAxCmLXj0/e/7777Lly9evW0 - Dz/88P1vv/3W0TZt2uS++eYb/5Nmz3/33XeJBAhJUFwFCAlgwPM9dh323fzkeRrXqmuezrVzD1HMsFsV - spCgCHgFW2Vnz57dXvK61MCW1bsvv/xyi8ZzRgQDIEkBdiQB+H6uw64vfk3r169fyr1wT7uJkMwAi+QJ - pPZ/+OGH26rTVtORisrdp59+6tsnn3ziG7/zPGTIRABzA/E4YFsVwKw8VCIDn+v6/PPPixp/2zW+9dZb - q2fMmNE2UgTu1YaVxRDHX99LzcfvI7ls/tprr62kAwH5X//6l/vggw+QU9/42wjAa4wEaQqwPQkQ+n6T - /0wE4Do1YihqIWkVuK7kXgUlOQeLEX59yOYo93tec801DRcvXjxd4++f6DRA1zjcvfvuu/7n+++/75+D - APyfzg0JkM0NbA8FSCJA3DWZ9Ztaca1cM+Tl+mk8x//186cXXnhhOveufiLh9L8qPsDqkcCyU6dO7S65 - /4iOAuy3337bbdiwwTd+hwRGADrSCEAnQoJsboAA7pciQAg+98D9WeNeILLu86Pp06d3py+iPqFvfrUP - C/L2bN++/fEvvfTSEjoCkAFcAZ9vysD5v5Vw8SQwFTA3YFaUixso7lAwHC6GY38bXhJghiMACwAhosUr - Jv9GAAOf++R+uC8afxup//GPfyyhT37NagD4+Lt9R44c2e7111//hA4AbP3u5Pt9k3/0JFDAlKgCmdyA - DQfThoK55AKyESAEn++LB3+h/Jv0GwEMfMjN/VnjedyD+uKT0aNHt6OPor761eQOkLU/1qpVq+pjjz02 - HuC5eQB/+eWXfXvllVfcq6++6skACSAGr0lTgTAYTHIDNl4vbiBoBDC3Ec8BZLJ+FClu/WE8Y+6N++L+ - IHp4v/QLr3/yySfH01fRkPG/2iUUSf6VV1559JIlS5bBfm56zZo1btWqVb6tXbu2iASQgv/nogIWB4RD - rTQVyDUOSCJALgGgjVxCAgBmkvUb+BCde4X4Rn7IARE0CbXs2muvPfq/2SUY+H+67bbbzlu5cuW7gArY - 8v1uxYoV/qd8XxEJiqMCYTAY5gR2NgHM94cECIM/G83Erd/Ah/DcNypI3/A7pMBQ9Ny7t99++3kiAVPT - /1WjBMD/PePcHj16XCHwP4HhgP3iiy+6pUuXwvAtSIAimCsIVcACwviIwGKBpNFAUkZwWxUgW/AXl/9s - 1m9xD/0C6IAfqiLPce967hP6MMoZ0Ke7fFxg4O87aNCgm5UP3wSwAC4X4JvGv54IPCdyeCUIXQGdYgFh - UixgyaF4TiCeD8g0KZSWDUxzAZkIUBzrRwVD6TfrN/AxEvqDxnMQRRNMm+69996bo+BwlyYB4FMksZ8i - /W66iR8AFsAXLVrknnvuOad5dE8CVAAS4AogQZorCIeFSSoQTw1nmhf4bP1b7r1ly93KB8a6FaPH+LYy - aG/Om+//T/u3hnvZAsC4/IeJn7jvjwd+cemnnwx8+gTjoPEcBiEj+oE+pW+jPt7llKDI8gcOHNhFoP4E - sAD+zDPPOM2Xu2effXYrEuTqCuIjgjAzGHcDxAEfrnvNvTBqtJvZspUb3fQU1792PXdPtVquv9rgqrXc - kGq1fRsaNX4frDZQ/+M1vHbwgQ3chHMvcHNv6+JWT5vuPlMyx9K/4fAvaehnvp9RDP48DPwAPwK1SPoN - fPqMPjFXiaFACFyE2k9DhgzpsisqgQV8f7777rvb6aJ/5CYA/amnnnIqqXJPP/10EQlQA4iBMsTjASzB - 4oH4sDCeHQznB5DhVXMec9NuvNENPvwI17tqDdevak03RICOELCj1PKr13GTa9R102vUc7Nq1PdtdtRm - Vq/nn59cva6bqDZWrx2tlgdR9Bn9qtV0vavUdPed2NQ93r27e2vFSp+FNPnPxfrj0m9+PwQfsA18+od+ - otFP9Itc6o99+vRpH5FglwkMuZC9b7rppssk899wsVj9vHnzfJs/f35OJMjmCpJU4E1J5Ow7urp+DRu5 - nlWqu/5VarhhAn6MgJtcrY57VKAuqFnfLarxF/dizQPcSrXVNQ90axMaz69SW6G2TK/jPfNFkAKRYxKE - 0OcNgwwi1936nqFNTnALh+W5D99516eoLfGTZv0W+MX9Pv6ee4+Dj6s014n7hBC8Vsb1zS233HIZfR6N - Dn7R1DGJij3PPvvsJgL7Qy4ai3/88cd9e+KJJzKSICkoxCLiowJLDlmKePXChW7sVVe6blWrC4xqbpAA - GSXgpwn4J2TBz1Wv714UgKsE5GsC9I1aB7q3ah3kNqhtrHWweydq7+pn2Hie/2/U69arrdN7V+szltX8 - i1tU/S9ursgwRWQYJSIMEhF6iXS96v/FPXrnne49SX3o+y3jZ4FfXPrN7xv4qCbGA9Ah+LhO1BSjQg14 - vZ778Pzzz28S5Ql+sWQR0v/HPffcs6aqZv8BW5F8ZfvcnDlz/M9MJIDVvCckQZgfiLsCOnL5/Hnu/ubN - 3e0VK7uelau6oZWru3ECo6B6bfe05P1FWfxqgfWqQAO81wX8m2rrax5UbAJAFt7H+/kcPm+NSLVMivKM - vqdAipAPEUS+npWruV6HHOLmjxjhEzmh70+S/qSgLw18gMeFmiulz+gn9fEq9X2tKGO404NCy+2XHTFi - xETABPxHH33UqfrFFRQUZCSBBYYhCZLiAUuOvLzqHy5f/r1L1arurkpV3CCBP14WP0cWv7BGHfeiLHOl - 5HqN2is7iAAoCcTi81eLCMtFgoVSm0d1DWN1Lf1Fgm66tv7HN3FL5zzqU9mW7rWoP+73LeLH72P5zz2z - 0A1u2cIHy1h+CD79a+4UEqAYDzzwwCQRgJlE5ll2Kgnw+/uqErajLvI/Br6UwKkosogEECJNCUIShMND - yw/Y0HDu6NGu+0EHu66y+v6Vqrqxkt3ZCsqeVscvqVbXLRP4KwTGP3YiAVCCVfq+lfrepcQZcgszdE33 - 4RIqV3GdRdDJHTu416OcRprft4gf8J95Yq67tfGRrtMRhyWCTzyFS507d64nAiRQHcV/unbt2jEICndK - POD9vipfT5MMfQb4WLzmtX1T2ZODCKYEIQm4+DAwjJMgHBkskz8cce3VrkOFiq5HxUour0pVN01y+4Ss - 7dmqtd1iSfDSBAKs3cEKwOeHBICAXMdzup7H5RImigQDRFQIe89JJ7hlf19YlOpF+i3oC8GfN2um63DI - Qa512TKu94nHb2X5IfgWXxkJ9POzc88997SdFQ8gM//zhz/8ofrEiRNXGvhTpkxxquVz06ZN24IEqAHk - gATEBVx8EgnCHAEkePqRAndn46PdreUrunsqVXb5ktfZCrqeUgcv1Bh9UZwAAsEU4JciwBIR4DldF9c4 - XUTNkwrcWaGy61y7tisYPtRnO1G1eMT/6MQJrl3d2q69wL+zfDk34szTinw+IMfBtxiL/qT/cRcqrFkJ - JmCzo10BqchS3bt3H4gcASzAT5482T300EP+d8gAEUwJzCXkQgJkbUbeMHdzzequS/kKbpCsaJKi/Dnq - 0Hmy/KcDAjwfKsAvQQCNNFbqe00BIADEfFYEhQQQdrSI21PqhYoNv+Jyt0zkDod70/OGu7Y1qroO5cq6 - PhXKu3vVxlxwrgc2Dr4BTz9iVCgsv/M6Rgm9evUaCDZqYLRDHkj/XqeccsoZAvcrGAjYEyZMcJMmTUok - AS4hjAuykWBcjx6uXcWK7o7y5V2ewJ8i2Z+jod4TIsD8HAiwWqCslX/eEaMACwKLXECMALgkIwBEhbAF - cgf5UoJ7RIJOInTXhoe6eVOn+uHexN693I2VKrpbBX7/ChXc/RUruBH6mX/FpUXgo5aoZhL4GBZ9S59G - o6+vTj/99DPASG27Dw0t6q88bNiwhXwpVg7448aN8z/lErYiQugSwuDQhomhO7jv5vaurSTwToF/v2R/ - qjquQBb0mDrxCbWQAEhtkgLsFAKIYKuVE1iVhQBPiQAQt0AEnqh7Qc1QtXZVKrs+Z5/l77Wr2mCBPkqk - HxMRYNy1VxYFe5nAR2GtQRBIoIqihQK/8o4YFVDDvu9VV13VWl+6mS8G9LFjx7r8/PwiEqSpQVJwGJIg - r31b18b7wPJupKxliiLp2QqktiRADbmAmj4GeE4W9rxGAUVBYOQCdkUCPC7yFsiNTZaa5eneugvwTgL+ - Lt3rcAE/NmoPiAB5em58q+t9nAT49FEo+Wb19D99ioGhwvweBYebr7/++jbRqADMtsvDJ3zUaufl5b3K - l2PtGoP69uCDD25FhFAN0uICCw5H3NqpEPxy5SSDldxkWf8MjadnxQkga4IAz2xBgDrywXXdijgBamz/ - RFCRC4gUgKAzjAFwASgTMQAuwBTgMSnAHBFgltRsipRgVOXKbphAh+jj1MbHCDCxXZtUyTfgQ/DpXxr/ - QwmEyat77LFH7Qiz7ZIbYMy/v5h1h9i2mWAP4CU3bsyYMYkkMLcQjw3MJVhcMLpnT9dawHdXu08dMVHg - TxP4aQRYoAmZZ9S5PyvAzwRgTF6kADECvPWXhu69c5u5jzve6r4YOcZ9nT/ebZpd4H5Y+ZL7RjN9/P21 - pok/7Xibe/+sC9zbBx3u08ZhJtATQJ9LjIELSCMACgVRn1IQiOvChUGA2SLATJEadZuk+5wklzAxIAAu - YLgUYFLnTt7yLdBLs3pABwsCcAvCCQwfeeSRzW3atOkKZmpgt00Pb/1iVD35/tf5Uixec9NO6+N9y0SE - MDYIRwkwOH/oUNeqUiV3e9myLk+yOEGd8VBEgOkpCpBGgOU+E7glAV6rd6h7++oW7ouZs92PX329xfqA - XApCNj2/2P3rbz3cW0cd71PBWxKgvgigBJQfBdSVK6qjvERtT8wkAjzKMFbWP1P3NU0EmOIJUEkEqBgp - QAUfAwwTASbfcftW4CdZvIGPkaG49DXuAOIInzfAbHuogLf+q6++uhss40sAX0ubfDMiQIJsRAjVYLIu - uP2B9V0ngc/QJ18dQYdAgKnqpCQCzJML2IIAkluGXi8KgJAAb1xwkftYVr3p0898Db9VBoUVwlT+xB+Z - qoE+l7SuP+u8QAFyIABJq0gB0ggwIU4A9cVDPe702VRUMu7rQ6s34A18U10beUmxKSDZJhUw6697zz33 - rAF8JF9xgG+aA0gkQppbMDWASLefdoprX6a0GyDGP4D1a5zsCSBZTCLAXHVkNgK8fNqZ7kOlS8PSMCqE - rEoIMhgJDOyQBDxni0HCZeDhYtBPNOZ+/fSzvKtJVQCpAER9KkaAWQkKECfAEAjQ+24PftzqQ4sPrR7g - CcRpBOX8D+KoeGSNVKDutqiAj/yV8m0pUDfz4YAuV+CGDx9eYiL0a9fWtSpVyvVSJDxSw6J8I0AFBYAQ - oKIUQM2CQPxnEgEYcy+pqhig3sHujUGD/Zq7cGEphaM8R+EGJKCaB2BtuVhcBeIE4PW8z5akG7H4+b6k - 9uXjTvIuAAXyLkDX411ARID5CQQgtgldAAQYJ+kfq4YLQA0fGjQwI/ihxYfA45qJzXguIstmpYhv2JYR - ATNMVVWavMD8/lD5bWtGBCODKQJuIXQNoSKMkdtoVb2K66qofxhZLxIfEQEmSgUmSwWmigSeAGoFCprm - yH/GCfCsOhkCLD/+RPeuavisIMOWXVGUYevvbN1ArgSwZWBGAFvyBaFotiTtMxWBrB823C0/tJF3Rc9v - BwIMVp9MGT7M+/Ikube8SxLwgE9f03gdJNDGVk+DYZQXKFYwiPz/qV69eqdKSr7iQwFc1alIi28lIcJt - p57ibildyg2U9Y/SzSL/EGC8wE8iALkATwDN+89TWxANBSHAi5Lid1Q1SxEG066UkDH3zjSsLbeCGACG - 1VIrmIsCQABk35Z+Wck3hLIFrMz5W2n6h/q+VZdfmUgAiMsogBgAF4ACTA2CQFMA+gFjGKQ+mTwiryi6 - zyT1ZvEGvMVhBOY8h1LIEL868MADTwVLtWINCQn+ympFzyCsGesG/MGDB/vG73EyQJDQPYSKwEUN6t7N - 3SDw71bq8z4RYHQWAsyUAsQJ8FTlwlzAsmuudhuj5WNMsNAoP2feHTKgBIAVugEAtTjAdgyJxwC4h5AA - yH+0nNsv2woXsvJdFHtCwI3Pq+pZrgBihi4gkQAiAbHOJLk8Yh9cgBFgIMPAUSO9H88m9SHwNiIz9eWn - JegUDA4Cy+IOCX3i54477ljFhwHsgAEDnGr9fTMiGBlCVUgjQrtDD3adFfgNFvj3Q4AoAExTgDgBiKgh - wIvt2hetLbQSc2bYmG2zlTVxFUDGLQ4A4DgBLCiEAKhEKP+Unpv1Qyxb0Mp3UbX0TP44N+OAQ9wCgQ8B - yFMQBM7X9UIAFAxXNov8hkhNkJtEgNFSAILih8fle/AJ7izAI/4yizeZx+LjwDMyw/Bo/B8SyA2sAsso - GMzJDSAV+zRo0OACgf4jET9A9+/f3zeIkESGUBVwDyER+pLtK7W/6yvrzyP4U+LHE0BB4FhcgKZ9zQVM - kXWQDAoJ8LjkHwIsbnGdl3ksnloCpkIhARU1tpgCV5CkAriBMA4Ig8CkAJDXI/+2aYVZP9/Pd1DdM/Pu - Xr4ucEzFapr8MQIUjgDm65pxXVsToLIIoByArD9UACPAQxolpQEfyrxZuw3JAd1GaDZKgzSK0X5s2LDh - BWCaqxtA/iv89a9/zTPL7tevn7NmRMhGhjBOaNfwEAV+pd29ZZXxE/hGgDEQQM0TQG2yZHGK5tCnyVKM - APhPCPD0WWe6VyXzzKQxFc00aEgCW0hhrgBLtVgAK0bOwzggjQDm/03+bfMKs36kf60sf1zLlu5uXWde - Jfn3KEPpFYAhoJSKmCUkAEmgQgX4mQDEPuYCcIkDNTtocyyhxWezdgOegJxmrtiCce1EMgJMc3UDFBXU - adu27WJARPL79u3rlAsoamlkiLsIVKGXrL91qf0KrZ+Ub0SAUVKAOAHwi0UEqKAYoGJV96jk8/EDVLK9 - qHBlkdUbWmmUkYBCEubazRVgqVTm4qMtGMQNADBSn0QA8/+8DrcBccz341Yo7V6tWry80053fXVtYyop - yPOWX1ujEv2skpkAjG4yEWBwjep+LJ/m30OJTwId4C04Bzteg5vQAt0lYKoGthkfyP/eVatWbaqij0/5 - EMDWYgRPAmuZyBB3ETc3OdZ1KVPKDVLWb0QGAkyQAkySRUwRCabJDWAtNhRccv/9Xuoty0XOm3x5SAKK - SVAH4gF8MzJtKoAPJ5gzN2BxgAWB5gJ4Hjdh8m/WbzuYLHtynht0+FFuYEVN8eLno8qkxVWSCYBymQtA - AZIIkB8FgRjEvfXr+WGcWXwo86HEh5YeB91UG+Pjf5Cmd+/en4Ip2GZzAyR/Sh9zzDE3AjJgAro+wJPA - WkiGUB3iytCvbx/XSmP+XuU07pcCGAHuFxFGKRYYo5seyxSo3EAaAZ5sdqGvgLVxMWNkMl2ZSEA8gCuw - pdamAsg6AKcRgAAQN8HrzPpxIxDp2YmTXN869d0wWf0MAb8wqkhaqmSUEWBhTAEgAC6MIBCXBgGIcR4S - yYkBcH0EwcRCEGBog4O8xVq63QI6LDkb6BaDxUdrvA9SNGnShC3qSqtlnCZmcWflZs2ajYUAAKpSI98g - QdjSCGHqwHu7/PUy17H0/m6gCDDcE0CtfFkXJ8A4kkGBApAM8gpQs5Z7QXPjWL7lukklQwaeI2fOfLkp - AaVRuAmLB4jUCQgB0ZI4FgcwEggVwEYA/B/5x20wlMT61+lz8i+8yE069ng3/5gmmvjR/EO1em55VWUB - tyCAytYUAD4V5S0eV3yAC8OVhQQg1iHmMQLgCkdCgCMbeYuNW7sF1KG8A6qBHo7KzA3zEwPmPbz28ssv - Hwu2amCc+mD4V0e7YK8ASKxb6/18MyIkESKNDDcdeZi7S0O/ez0ByigGyE4ArMMI8GTbG31RJJKIX8Q/ - QgTGyWS6mF62sigKIqw+DncBCXAFBG0WC2DVyDtxQBIBeJ7/4y5wGxDHkkwoig0vCQj5fd2TT7pXHnnE - rZFsr5RCLv/b39ziq692i666yi04oYmbd8yx7jGtHJodBbXTKXOj5iGBAPeLAENUFm7WXhLQzf3y04J1 - yAEB2rVrtyKKA8A48YH/3+t3v/tdI609+8CkX+PIIhIYGXIhRG+pRtsK5VxvRf/DypXemgByA7iAB9TG - mQuQVXgCMBKoXsM9N+9J7xOxCqSR34mOGd8SLaMGuARIQHAYJwHxAMAREJoKmBsIA0FiAP7GPfB/s37b - ywgi8Vl+8YaGnqzUIfhktY4t3bKFnLbsPVzrz3tfRJ1UAbxownj3VLc73JPduroClb3Pan6Rm3LmqW6c - jGVU82beb4eWnsnKkwA34M0dowR8RufOnT8AW2GcmhWEAPvVrVv3Yi34+AarxtohQFILyZBEiNuvv951 - kvz3F/jDIIFiAa8Aat4FQIByIoCaEQBZfKg8BKjkCq6+ysu8DWmQRRvWQIRQDawihrjASAAwtqCSgBAw - iegZ2yPzcQIQF/A8/zfrhzgQiJiCANPAR5WovoF0NnNn1dGWxLFMHCS1Kmkrg4NANK7PGqrF8DZJ2k3W - 0wAPh+n8HgbpEIL3K6j/Rql9dihlj4HEtDDBQdnGjRvfrgzgZvw9wGuLkq1aLoS45fSTXXeif7mAIUYA - PxL4mQCjEwlQqALzJ030lmAp5zgRzC2YGuASIAwkABzcASQAOIaGBISoANbNMA/AbSjITwJAnsdN4PsJ - /IghQvCxeEACSL6HYBQF4rtxS5bAQaXi0bz59TCYM0uH2JbkQbKLA3gItrnt+IgNEgjHzccff/ztwric - WmKlkA8AVfY9TGzxsn/XXXcVtSQihM/FSXFLw4Pd3SR/ciJA4UigUAEquoePPtJ3rCWbLP1sySU60RSB - jqPDLTbgfQSHRgKslngASwZUVACZB3AjAPEA/p/nCRbx8cQOEAdJ5zMAn2CToJPPx6qxeoDHHUFEAz4e - yYd+3YKyuLTHQY9Ledyyk8AOYzH7HUO2WO7UU08dJoyrpAWCnHRRU8uOp0EAAA0JkPZ7GjE6VK3k+hIA - phDAZwMjBciPhoI+G6g288bWXgptJBInAp1HR4ZEMLcAGACDNGOptoQKP4wrQAUI8vD3Fgjyk7+Rf6yf - wA+/b+BTco1rQfLN6q1CCuAtcWPAh9ZuPt2k3SL24gIeH3rHwY6P0uIjNvDU6G4aGKuB9VYPosN6zZs3 - fxYCAOydWvcetlwIwWu6d+lc6P8zKEAaARgOztCKmTD3YLkGrCAkQ+ge6HSbCkUNAAiXYKtnCNIIzAAX - K8ffGwGIB/gb9xBt0eZVw1Y9oyZm9XHgUSAbt6dZepKsxy08lPIQ7FyBjo/Swr/NnSu9/6wwrq+WOBJg - 1+oDNQW8Ko0AcUKkEaTLDTe4rvL/A0WAwcVUgPxatXyAFwaWxmbLSMaVwYY6WJsRATkOCyVRAgItXAEq - gNwDPA9+8jfWj/SjFoBPsAeBsHpUhQDPLD60dsu/W8wSWnk4JLNgzcAuLtBpIMcD8vjf9B8GrXUdzAxy - 0BVYb/VgeHCoCkDXd+vWzct/NsDT/n/bZc39+H9QCgHuUyCYpgDjjj/OJzC4YIsr4rkIUwfrQFMGG/IY - EWxKlCCNoA0SEBQSEGLtBII8iAcI/ogRCPoAn2CP9xBT4OcBHjcD8JDMQA+l3ZIvoXVnAzsu3UkgZwI4 - bZQWPs9n0p8tWrR4UxgfEg0FtyLA3nqmkQoI/gUBABclyLWFZOh60YWuJ3P/UYuPAtIIQGZsfPNLMgaf - SaQICQEZIBBWiEUClpVJERdAAiwcFcDv8+An1o/fB3z8PVaP3BvwyDwSD7kA3WTdLDy0biNmGIiFQMdB - TgM4F3DTRmrxAB2DVoLvIzBWA+utHn/WM0e2bNnyi5IQYAuinH+u65WoAGU0DCyjGcFkBWBq+MFWLROV - Jx5/JI1AzG1Y5GtkADCIgFvAoiEBrgDZ58FPpB/wbcUzwJu1WzkcoIeAWySeBHQIchzgbMBmG3HF/58t - NrN4TgT4AozVwHqrB9uUH6UXbVIeIGfLT1KIu7TEuXeOBCAZZKMAcuIjbmq/1Xdnc0VJw1XLYAIEAEEG - AIQIxAaQABXggfUDPlYP8FYFZYDbEAzL5rPMmg3kEOAkcLMBmg3AXP6frY8w6tatW28CYzWwTiRA4xtu - uOH7bSVA/zat3ajzz3b5URt/wdmONuGCc9zEC89xk3w71z10wXnuYbVpF57npl94vpvc7Hw3jFFEMVxP - 0muTglOLKQANQCECJOAB+ABvpW9YtgHN6wE4BLa4FpgNnJ3xfzAVAb4X6o0zEeAYuYDvte+MgzElBYLg - i7FzSRp+u6Tfu/t9yTEbWKq83ym++1bgH5ORAHrRpi5dumwTAbYHENtiFWkuwdwBfhz/TnaPB8Ukv2YF - AA8IoFHA19kI0FjDwC81c5RKgG0BpqTvzeQDswWDSLkVt6AuAE90D/gWA5AehgSMEsIYgESTBX1hwFfS - GOC2y/7qrtx/P3eF2l/3289dtt++7lK15vvu6y5Ru3jfP7uL1JqpXbjvPu4CtfOj1uqUphkzs5n6FgJg - 1KoNJAjM6AKOUuHAx6oh8zJcUsCyvS+XoIbXZJuICvMDYbLIEkWAZ6VRAE+GkEAP8BkFUPjBgxoAZv4g - Aeljkj4QAVdmy+Fs6Jc0CrDgMClAtBiCa+3YtKm7Ucvi2u6/v2uj1lqtlcjQUmS4Xu06keBagX/Nfn92 - V6tdRdPfl4sE7c4+I7E/6KNs/QkeGLWSfB9nCgL9MPCSSy7ZoOlgrwDZgLT/Z7uA4s4jxCPppDqEpFSx - pYktB2BFkWQWsXoSO4BPsifMAzARhApACkjApA9qkCkPYKVX8UxfmPgJ07hc752qjh6kkQ77AAzR6Ode - zYcMUuuv1k/tHs2W9mGrOLW7fSvtemg01bVsKdfv+hapU/PZRhlGAKX5NwjjI9KGgSQHGmky6OWOHTt6 - BSgpsGnWm2n2MKnwJF59FNYkZkoHG/BM0lg6mPE94DPBY5lAMoA8yAgyEcQ8ADOAkIA0MJM/zPpZJpDP - Q0koULGkUJj+tUxgYnKIsjrVAY5lJbQvB6ugOojCmkgmxaiPoE6C6fI8EYH6CRJoTKb10c8BN7ZKLMyJ - j1CShqHggVFrMmgtGKuB9VYPnwo+44wzlqgiyCtArr43jYG5FpMk5f2TLDwJdJsZDOcBAMomhJB8ZB3w - Kb6wuQDkP5wLwA2gArgCFML2Pua9qIFN/dpcgE0C2cxf0qxfSIgeLVq4wQLa1z4WEYB1EekEoJDmXjWq - qoZoaV2mCZ9M6WJw7NSpk9NKb8rDD1UD660efjLoxBNPLLj55pu9AmSTljBfnyvYudQWhuXnludPmgUM - p4StZAy5Z9LGpoSZyQN8JoKwbmYDqfih+MMIYNPBzAdQC8C0MeliSGC7n+M+mF1kXsEmhcL5fyvmDCeG - wnmC7scdpyVxLH4pJABEoBIKApAM20IBpALUUFJKBwF6qY0YOqSoKjtt6jeNIODUoUMHd9JJJxWAsVri - ZBBThPWPOOKIB3SKpSNxEEp5tvRlEgNzATtccxBWFIdL0awgJLR2W/4UAm91gsi2lYcBIFPBWDXp3qR6 - AApDiANQhegQR68ULDQxElgxCGpAOpn4IE6EtKnhISrJ6qHNofLZBEPVTlsRQCQoIoCqpimdCwnQr7bO - QdAcRKbZwzAAjc87gCOqrmqvB8BYLXE62BeEHHDAAX2UDdxMMijJwtOkJhPYaesKQsDDuX5bexguPrX1 - hgAfLxJF7s3qkXx8N4ABvm2vblW9AAzQYWWwlYThBpglhCS4AiaHqAvgM6jhC8vBUAOrAwwrgmwDLYsV - cBF9r2vhBpRTxZOKXSEAKuAVQOXwY9knAQKwaJYYQAQgDigkQBk3WLHA8KbH++FoSaqCfPCpUYCygJvB - FozVEgtCKAmrUq5cuVYaLnzLsAEC5GLZJV03kCvotgmFAR+vBwyrg22dgIFP0GcncFlNIECHJWEQICwK - hSQEhGFZmJEgXhCaVBoWLu+CCH9rcLDfAo9FIYVl4T8TID9GAJbOsYCGdRQQYJDagzdcW5SPKG6pGARA - zZUD+LZixYqtwFgtcW0ARaHlfvvb355+8cUXf0zQgHQk+ZVMi0TSlpHFVw2FS8jCfQes7i8sAo0Dn7Q+ - wBaJYKWAT36fuX87eYuqYFYIUQ5G9U+8KDQsC6diiNXAxAsUhtqZh5CAcnDmEJgytvrAeHGoKQLXOVSx - VK+yqnkU8Cx5CwnASCAbAQaIAJP79y1WoWioFGBFEuiyyy77GGzBWC2xKNSXhas1Puuss14mEEQ6kgKO - eJlSSdYNpoEO8OEmVLYVXbgwBLk3qw+XiYXgW0k40h+uDkL+mf9PWhcQLgxBBQgI46XhRgLmOXAzViFM - bGBqwLVZsehdjRtrSbzWPPqtb+IEKFwaxiwoS8MokokrwIDKihtUkBIu+cqlchilsJVdGDPDe7CNME4s - C/fbwqgdcvTRR8/W6mA/ErD8ebalYDZEy2TpBHNdLrvUXVu3lmuhLdJbH3aou6nJce7mE45zt2if/A4n - NnGdTjzB3Xriia7zSSe5LsqcdT35ZNftlFNcd+0sdtfpp7oeZ5zuBl1zrRvaurXLa9PG3afrHHXTTW6M - gpxxnW51E8X2qd3/5l7UkC/TyqA4ARgJWGk4OQFTgfjiEFQlJAGkszUCqBCENCKM0obQPeT7x2llEEvd - CglQOXFlEPslJBFg9Nmn+zqGcNFnWkVxOOy0mAEXjjEfe+yxs8E2wjh1uxiiw7o6vfpuBYKOQBACpC0G - DUHPtm+AXXRnFYtcrfRnCy0Zb6FNI65TOvR6pUdbqrF7WJtSpZUuLe3alS7j2qvdXKaM61CmnOtUpry7 - jaYhU2d1audyFd3tanfIurqVr6y9+au4Hmq9tB7vkXv6+SGfbRaB72foB7BpS8QhgK0ODheHogK2PMxW - CBkJWIuIuyEuMJfA6MMWi/RsdJiyflroElscmrQ0LIkAQyT/s/v1KUo6Ja0EzrRyCExQ8Rt13A6Ygm3a - CMCSAn5twN57732F0oZfIB0wKGk5eDg+z2WzCPPtdza/2HUW8N0FdreodS9d2t0lsHuo9VLrXbqsu0eg - 95PvHCDAB5XVFmoCe7hanjp0eLnK6tgq2l69irtfbWSFam60gB+rZdtPKHC1PYPiq4OR/3BxaLhHQEiA - pOXhuALiAYjF8DCJBOYSGIXc36mDVkUr8mdxKASIlof71cHRDiHh6uAkAgzVWQKPFcwu2vmjuCuEwQgj - VjXwl2CaKQA0Avjl4WpNtPf8aqSD8X9Jdgixku34bmK9r7rc9RXwQwQ6bZhankC/T6CPFOhjSis9Kksf - L9AnCPBJalPKKYCSlc8U6LMEeIEAf1TbsjyupdpzK2k3joo13YLK2jrurh5+vM/2LbaJk1m/7RkYLg+P - bxKBWyAOsA0ibHsYWyLOZxJTQDBIYMfimhIQHEKCWYpR/lajpjaE1k4nbHodECC+QYTtD8AOISM1FGQD - rRFqeRoOTtbW8SSekraByUYGW1dBClgx3RowjbDNuDzcbxChduiRRx45VZsOewmJZ+Oy7REURvLxncP6 - tbjG9RMB8gT8fQJ+pNqYMmXdAyJAvoCfoDZJ4E8pW9FNE/gzZfEFsvg5An9uhaoCu5pbUKG6e0bW/pzA - f17AL6msTSO7dffZu/gOIbZbmG0Xl7ZTmC0QDfcIsFXCtkzcXAEEiw5x3IIE5AogQd9jj3MDNea3Mw8y - ESDcIiYkwDAtrF34yCy/6MRK0JP2DUjbOwAMCOB1oCcJoKnCtGGEbdbt4thGpHapUqVuUh35vxlCEANk - 2iUsydrTtowbcGObiABYfUQAgT9W1j9Okj9BbZKkcwsCCPw5svwiAgj8Z2T9z1Wq6QmwuHMXb5Gh9Ic7 - hZHitZ3CbIuYcHk4E0IhAcJdQkIV4DPNFRAPJJFg1A0ttQuqtoCT1bM5RO6bRBUqADuoMRIYf+6ZPq7I - tF1Mpi1jGCkQxKsI5N9ly5a9CUyz+X9zA36TKLXTNHnwJm4AJlmpddo+gZapM2kKh3Lh7uKDbm4nAii3 - LfDvhwAK8sZo9ssIMFEEmCwCTJUCTJf0z5QlFYQEkK9f4Amg5eOVRQDVLpCtM+lP2yUs0yZRRgCLA0I3 - kLZNHK4AtbEDn3EHDytgvkvgj2Fvo9Rt4gpjgPg+gewSxiYRngD6/e9TCxecMgKIbxiVtIVMuLEEGBCX - If/aLpa1AJwqlvMmUUgEtQGHH3rooQ+rStgnhGzRRdJOoWn7ByduK6+Ygr0CS7xRpPbmKdwqtpZb2/UO - X9FLsIdFpu0TaPKftk1cEgFsq5ikreJwBRYPGAlmke8X6PexJ6DfJ7hG4T6B2uvY7xSq57PtE0guAAJM - uaSZTziF28XlslegxQoQgGG7NoVwjRo1ehgsI0yzyr+pgN8oct99921z6aWXfkuFEIyKbxEbl/n47qCJ - 5wn0U1YrRgD2y8tlq1j232OnUAiwvPmlRUu5ACFpp9Bwv+Bwo8j4LmEhAcLNIhkN2G5h8c0iw/0CZ7CS - WlF+XgT+fL9RZCEBttoqVq+z8wLiO4X6ZJD2Ul6qI3LtZJZwf2BIkAsRwIXpfFL6YFgc+Q/dACnDppoe - fgkm4QbSZD4n4KPzhfIHDhQBNAfO5kjF2iyavYILTwxhO9a5tXSGrzp+peSfoCy+VzBp3+JuFRtuFx/u - Fk4wyGfFt4tFeaYxaaZof4TfL7DwbMPCnUJTCJCwV7DfLZzDo9Qvc3t09/saJB0IkaYI8TgBtaaoR8vB - XwJDtdT0rwEe/2lZwQbaXqy/Agk/oUCwF+4OXhzgi46R0ZZv7IkbJwA+Mdft4iEBhzMOlq/tc0hDVyB1 - AgzW9tk+wWb94WbR2fYKNgLE9wtO2jD6dZEuX3sB9fLnAGk3MDvWbhu2i59yzhnelZFRLOmO4bgBcje4 - 7mrVqvUXsA3Uir1ZNITw28VrAuH80047bQPBIMPBtOAu24khdpDUww+M8QSA8aECFOfACBTgMW3J9qA6 - vr8sr4ekd1DjY9zCceP9VG5o/eE+wdl2C7eRQHzH8HDLeFTgmftHunsObqBTTZV8krXP5RwjOzKmhATI - r1/HrVq8xGcWLZ0cJ4HNMaRtJI0SoNK4bI39N4AdGEZYphl76vP+wAi1I7Vv0IPXXXedDwZRgLQzg7Kd - IoasTdEmSQOjswI8ASR/bJte3CNj2J3zKXX6TB3SNEajgYEiQy+1ESc1dUv1PQzfintgRLhhZLhpNCMI - VOANTS2PPvts11vfM0wKNIXTwfx5QVueGVTcE0M4Mm7xuLF+NEMq2eYUMp0aAgniRKD/Cf409+809/8g - 2EUYlugIOTsuruZvfvObSzQkfJ+qEvyL7WljO1dnAz48WnaGCikGRATA98UJwEbROR0aFZ0ZxAGST6vN - io5xHyxg+gigvBNOcgvlsj58c71P/4ZHxqRtF5+0afRnsvglY3QSh/YJ7COy8fnjUSBOCtV+gUvTDo3K - 4cwgOzTqsRuu9yMY24XESFCcc4NwsagzdRwa+r0PZgKf4g8C+pyj/7gc+EOj1BrXqVNnLCpAkQh+JtuR - cSb58TOFYffASoVHpEAAMmGhApTk2DgOjVqq9qwAmSNgAGi4Wn/55T6S6PxzznMLet7t1s6a7T4VIZII - EI4EPtQYf80MFYJeernrX7ue/5yh+ryxIkCBjop/Vt+1XOcGFZ4aVnh6eOG5gbmeGlbFxzscGzfz1JP8 - RpSkk9MOi0w6PCp+ogijAxJ2ZG/r16+fD2YRdtt0dJypQC0YpYrh94gFSAbZ/Hz89NBcjpAdXJ0t1otP - gEwHR3JsnD/LT+15tScEzDSB9aCUYYTaEIE3QK0fP2vVcw82PdWNPfm0LRrP3VOjjuuv1wyCRHrfGAH7 - sD7nMX3ecwJ9ec36OjY2+ejYTAdH2rmBhWcGFRJgxlFHuNdWFZ4ozoxieFZwLieGGglIGGGU+P5zzjnn - vcj6a22r9YdDQlTgKEWVeRpbbibFiBuwypzwfEDbxTM8MdSOjrXzg4fWrbMFAZBCiwFMAbY6OjbLyaHh - uYGv6IDHNWor1RbroMenRIgCATi1Rl03XpL9oAAdldLG6PkJatNFqLl63yK9f3lNHRbJoZE1fz44Mtez - gzk61h8cqTZTIwYjwIxGDd1ry1700m9zCHZUfNqZwXGXYHUHyD/DdI3WNlevXj0PrLaH9RsBTAVq6Inz - tdfcyxSLEAvYPjxJVp/pGPmhB9R3o4sUQEmgFAKQQfv58OhinB0cnBzKoY/rdOrnGv1cJQCXqy1Vey6h - LYr+t0I/ee0reh/vLzo4EgKIDGtEihIToIpmM488wr2+fJmfV7DNJ4n+qTIyEqAGmU4NN7eAiyUwJz5T - 2TdVP0T+YLVNvj8eC9iI4LD99tuvm1aYfMckEbJj5VlxXx8eGI3l21nBlFDlHX5opAAcmAABCnMAdnLo - DObQBf6jshrO3o0fH7+tp4dvqHWwW0+rWXg8bFHTc2+pbdSxsYlHx24HAjyuyqf1mk4mZ8FaBQiA/7et - ZyEBM4pUGsWPj48fJ+tPYNUaRmZsVfP3HdgIOFb+MHorUeSfNiYsOj5eLzhNQ4wCkkPIjq27yyT5Bj6M - Rt7yjmgUKcCWBJhx0EFugQpGZkgqjQBIaJwAHBn3ix0fHyqA3IQFgRwdx3WFh0dz2GXoAp699hr3joCn - 4phqZQhAeVlxSGCxAUaF0aHEDPsOPvhgFn0w6bNDjo+HGL9R20vtLwoyrmjatOlGXAHZQfx+muTHwYfZ - 9x/f2I3yLuBnAkw7+CD3uk7felud8/Sll+yyBHjFCOADztwI8HgtJXmG3utTyWQq/ebRIgAziEkkICYw - JUiLC4gHUGCkX4m6jWACNhFGYLVDHr/Xp5YiyNAkQ4/zzjtvE5Enkz62IbKdDM5Y1o53McsHfG5o5Mkn - egJwZjAuYJqKQ1+XNWAZpHTfUSc937aNdwFpCsCwi+EXFmjHx68RKPjoVyXV+H1895tqSPxbkaxvlMS/ - E7V39TNsPM//M7mAJAJwemiaAjzVqJFbr5k95hKoJ6BmwaaQi0sCcwmoAIE36Xm54037779/jyjwAxsw - 2mEPXAEFI1WQm5o1a05UvdlmcgO29j7u7+Pgw+xR2kh6ZESAqUcc5gMiOoeiDjrF9vRdJ2WZJ7eAlM63 - XLuGaEjtLkMAqUASARboel+4tLnjYEnA557I8zNzSe1CriQgOCQmCJUAtWXMr808NqvYc2Ik/WACNiVO - +uTKGnMFHE/e7PDDD1+ifYW8LyIOwPJhqG2NDmvN8gGfGxqrDaJGKhk0RQck/HPlCg8+aVDba58OosOY - 0HlX4+QXtHdgRgJEOYBfRAGMABo6LlLegBhgUaMj3PopDxcdOmkLTJiyhgR2lgCE574pMM3kDsIRAv3L - dC+VvlrHyWrfZmpggXveYdIfJwfZJSLNhr///e+vO/nkk99hQSmzgwxPIACWnwQ+0W6+DkaYcNTh7p8C - F6ABnkZnYBl0kC3nslm9jTqd44WTT9VZPQkKEBAAid6ZLmB5QIDF9Q5yr+owiM/ef8/XEXDtdtAk09WM - +Zm6LgkJbMNqht5Ua8vvv0Pfg0GExTZl/HK1fnudjQo4kvSYffbZ507NFXzFhZEhtPV5ccsHfIY8U25p - 79YtfcHX2wM8FmDgY/3IJB1lFT62pMtv4jB1invp3PO9C0B6lwmAFb8wAZbVPdC9dksH9/mGt4pOHOOa - UTYIwHif2AYSoALcG/do8UAuSoAbINimzFux11eKwe6k79XAgJnbHS79cZJYggjfc4oKD/MUkHzPblQE - KCgAfstk38Cn2OHltWu2Ap9OMPCxEDqKDqP0ig4kerbiTn+sy/Ll7o2OndyKBg13GgHW+eRQlAhSwLm6 - 4ZFuY7/+7iuVpdlh03bgBNPSBLWQAKJzD9wLpDZXECeBGUPcHTAqwO8zG6stfL7XIk+yfadEsdh2TfgU - VwnwOWw2QMXpOUoVT7rooot+ohyJGUBbqxeCz7jX9uLH8kO/b9Jv1k+HYTl0IB0JCezYF0q8aHT8vxRn - bOjS1b165HEeoB3lAiDAqwc0dBtatnYfPzrHzzCGJ41a1RB1iiwu5XohASrAPXAvSSSwoNCC4DAmQDFx - qxR5qDzvJ6V6J9HXUZ/T9zvN76eRA9+ztxobDzTTBc4QS//DfAEksJO8sHwSHmzWYIc+G/jm90Ppx/rp - MCyHDqQj6VA61go+bKUP5VsA4df2vfa6+2Tyw+4DEWLjWedt8zBwfd1D3NvnXug+6tnbfTFvvvshWlls - 9QJ2yhj1B0YAro/rTFIBcwVJ8UA4MrCVRwyrAV+jrf8o4p9BH0d9TZ/vVL+fRgBcgQWFbD9ysYaHj2g1 - 6k+MUyEBbgACGPhIXBj0ZZL+0PrpUKyLDibAotPtXGBb80c1D43iTppf9Llxg/tOAeYXY8e5z/oPdJ92 - vM23z2LtC/3vq/zxvm2a+6T7ft1rfr0AnxEvF+P7cEVWLcR1QACuC5VKUwFzBWE8EAaFliRCKbF8Vmah - qgL/EfpWjT4mAKfPd7rfz0QCEhBc2MFql6iWcKqClR+JCQhe8GMQIAl8k358I5YRSn+S9dPBdLZV/RAc - AgbWiEuw5V9GADsePlwK5rcHy/Cw9xj4kMqsnu8ICWA1g3EVgASQ1s4ZTHMF8aCQfiLPj4pecMEFP9ao - UYOVPRR40Lf0MX29y4BvpOCCWFzKHgMHIVUKDB/UGsNNLFBg0siOSiPit6AP8DNJv/n+uPVDAKyOsi+s - ME4AcwmmBgakAZuGfRx4SGTg85mQywgA4axcjOtIU4FsriDMDwA+AR/Rvub2N5UvX57SLmSfPqVv6eNd - DvyQBKYEB+jJ88uUKTNceYIvWaNGFRHuAPkP/b5F/XHrB/y47w+tnw7H+owAFhSGMcHOIADfn4sKhAFh - 6Aps1TGyzwiKkm4Zzpf0HX2oRl/uspYfdwuwExLso8Z69LOUJ+ijDQre00bUvmqV0YGd7xuCHw/8crH+ - UP53JAHSVMDiAK4jVxWI5wZwAYyUmNxhZu+44457jz6j76I+pC93SdmPgx8qAUEK9egUJp6yxx57dDzk - kENWKZr1gQ3RrR3qGB/zW+CHxSCfRNT4U6w/DP7i8m8ECOU/VIBcYoEkF5CLGwiDwUyxQJgbINbBBZI2 - p5pX1VauYcOGq+gr+izqO/pwlwr40kBPUgIunLEqtenHqbXQMHGO0pjfUVtI1pBxru3mYWN+LCST9YfB - Xy7yX5xgMCSJRf65EsBUwAgQHxFYQMj9AT7DYZN81Vt+p2BvDn0U9RV9Rt/9V4IfkoFEBdmq8mqHqV0i - eRusNetvX3HFFX4LGiY4CArplGzWHwZ/ucr/9iZAPBhMcgNJKoCSQWwIT2EMC220BJ/9e96mT+ibqI/o - K/rsF0/y5Grt2V5ncwdEsSSMqFxpq7HtE1q/9g0zWxSZ4gdtQ0eGTmHkHw/+0uQ/KQDcFgKE43+GgbS0 - 0UBSMGgqAPi2JT3KR1AsJfxG5fZP0BdRn9A39NEvktvPBuK2/t8SRkxbVlGjcrX5n/70p77ye2uVONpM - nSGJI6TRjnwPfX987B8O/0L/n20ImCkfEHcBIQGyDQeNABYM2uYS+H0UjuFdVMSxWdPoa7l3+iDqC/qE - vvmvl/xMRIEEyBqFC1SvwPiT1a7TDqXjmjRp8oGKG32RI53FSME2eIwHf7nIf9oQsCQEyBQHQD5bSh7G - ASgYQR4BL4GvDuNwWm39QYUKFSZwz9G90wf0BX1C3+yyY/xtVYDw/aYGBDnsXMGc9rlq7RQIzVYnfcRo - wSaVyB4SG+AGLABMsv64/Bc3B2Crg3IZCSS5AdtLAPdlFs8MHsArF/IR98Y9RvfKPXPvv4pAr6TkgPH4 - O3Ykqa6GW2imAscOGi0UnHDCCe9p21q/1TljZDvwEbdgCz+xvEzjf/P/thwsl3RwNgLE4wCCQBSKIJbq - HVZKUxuhrfaw+Pc0N1LAPXFv0T1yr9wz9/6rCfRKSgLUgBp2ol5WILGkiXVtdFZ7pZPHa+fSdWefffa3 - 2vDYz4kzdGL4SOIIVbD9fzIFgNuLALZ0HNIRkzB0ZZaT2IVZO8rltTjzW41y1smtjeceonvhnrg37pF7 - 5Z7/V8h9rsQwt2BEIIHE8mbmvq/fa6+9+tWrV2++VOEdFZ78REczWUJETekZkmt1hBAivhq4JAQI9wsA - cNwPMQmzl2QzKc+CkCyaZcZO1v6O1kzM51q55ujauQfuxYD/VQd5uYKd6XUhEch/kxBpoHaSGuPkdhoz - D1FHP6OgcT2l6cQL7IhB8IirYCaNiSeCSIaVEIMpZJs6ts2ibOo4Prdv5VwoDMRieGp1+FRAk67Fr/Pd - XAPXwjVxbdE1cq1cM9fOPUDq3cAXkx3mGvCTpEOpfaPyiKVPpEkZPrVmKCWpnaCVMYtkgRu0M8bnssbv - STKhEnb6CWXUbHJFvoESdlbVsJaBxu88x/oG5ip4LcM1xup8BilaxSLfyw19rvV3Gxo0aLCISD4axrWO - roVr4tq4Rq6Va+bad0t9MYFPenmoCkyMED3T0UTSTdRwE5dDCLXOKpgcyhw6cnzYYYctPeaYY16lclnp - 1o/knz+/8MILv1GA9mPYeI7/8Rpey3u0xdpSPoPP4jP57Og7+C6+k+/mGrgWrolr223t2wHwTB8RkmFv - vZC9jVkPV0cN2T1ajdwCAOEyrlLDH9+odpMaEy0AebvaHVHjd57jf7yG1/Ie3stn8Fl8Jp/Nd/BdfCff - vbfabtDVCb/Ew9wERRKAQCYNn4sEV1Ej+CLRQhkVx6Uh0RycyHCTqJyyahq/8xz/4zW8lvfwXj6Dz+Iz - +Wy+g+/iO3fLuzphV3pAiJAUHI4EWCRb8Ml7qyHTAEkj706zv/kfr+G1vIf38hkh2LuHbrsS4ruvZdt6 - 4P8D1FQWc8pO1OcAAAAASUVORK5CYII= - - - - - AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAcAAAAUAAAAIwAAAC0AAAAwAAAAMAAAADAAAAAwAAAALQAAACMAAAAUAAAABwAA - AAEAAAAAAAAAAAAAAAwAAAAuAAAAVwAAAHYAAACJAAAAjwAAAI8AAACPAAAAjwAAAIkAAAB2AAAAVgAA - AC0AAAALAAAAAAAAAABDBQAvgQcCrKMJBefGQwD/y3EA/9B/AP/bjgD/954A//+iLP/QgkHuejsn1BMB - AKUAAABpAAAAIAAAAAAAAAAAwQoG5cwdAP/CWQD/wmEA/79sAP+/eAD/yoUA/9mVAP//vhX//9Ri///t - u//gqGvyAAAAiAAAACwAAAAAAAAAAMUJCf/44OD//IgT/8JjAP+8cAD/wXsA/86JAP/bmAD//85M///r - qf//8cH//89S/wAAAHcAAAAkAAAAAAAAAADFEATD//Xr///MlP//lgL/9acA/92eAP/bmwD/2pgA///P - Wf//5Jb//+F9//B1CfIAAABOAAAAEAAAAAAAAAAAvgkJQuWKgP///fj//9dw///LK//1vQD/46gA/9iU - AP//3p7//9GH/9ZqAP9UBASUAAAAJwAAAAMAAAAAAAAAAAAAAADGHh7D+vHx///jmP//yiX/8rsA/+Gm - AP/onwD//9uc///Lh//ATCzfAAAAQgAAAA8AAAAAAAAAAAAAAAAAAAAAvgkJQt14eO/69uz0vat0z+zL - VtP5zFPQ68qG0fTkv+y/fnnbZBwchQAAAB8AAAADAAAAAAAAAAAAAAAAAAAAAAAAAADDERG6+e3r+Kie - ib+UhWS8o49hru/FZs3ovn7bszojzQAAADoAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvgkJQuF5 - a+/u37HgxKI82L+SBc7/vwnV3GMA6TsDA2sAAAAiAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADHMAC0///////////awnHpgmUAvaosAMYAAABGAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAACwhoAuf//////////7OK79X1gAMWRLAC8AAAATwAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAB7cJCc3//////////+/kvfJ8YADGhykAyQAAAGkAAAAiAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP/EFDfSZADl+4oA/8BgAP/AYAD/vWIA9KtRANwAAABZAAAAHgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD/ngNCzWwA5/OFErzvoT+c9KQ8me9+AMy8dADkAAAAHgAAAAoAAAAAAAAAAAAA - AAAAAAAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAMADAADAAwAA4AcAAOAHAADwDwAA4A8AAOAP - AADgDwAA4A8AAA== - - - - - AAABAAEAGBgAAAEAIACICQAAFgAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAACAAAABQAAAAgAAAAKQAAAC4AAAAwAAAAMAAAADAAAAAwAAAAMAAA - AC4AAAAnAAAAHQAAABIAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAoAAAAiAAAAPQAA - AFgAAABwAAAAggAAAIwAAACPAAAAjwAAAI8AAACPAAAAjwAAAIsAAAB9AAAAagAAAFQAAAA6AAAAHwAA - AAkAAAABAAAAAAAAAAAAAAAAAAAACwAAADQyAwB+cwgAwZoJA+K2JgD1yF0A/89tAP/PfAD/3JEA/+ae - AP/tjgD//38D/95xFPOoSBnkXgYAyyUDAK0AAACOAAAAZQAAADAAAAAKAAAAAAAAAAAAAAAARQUALq4K - AtrGCgb/zBQA/8VJAP/AYAD/xGcA/7xvAP+9dgD/w30A/8qGAP/alQD/9q0A///AHf//0Vv//+Wt//us - fv+dSz3lEwEAqgAAAGgAAAAfAAAAAAAAAAAAAAAAwhoA2MUJCf/KLAD/wV0A/8BgAP/CYQD/w2kA/7tw - AP+/eAD/xYAA/82JAP/YkwD/25sA/+CjAP/ztAD//9t6///nnf//+/L/zGgZ7gAAAIkAAAAtAAAAAAAA - AAAAAAAAxQkJ/8woKP/607X//JIn/8BgAP/DYwD/wGsA/7pyAP/AegD/xoIA/9CMAP/alQD/3JwA///G - Kf//3nX//+eZ///ebv//1lP//8Yx/wAAAIYAAAArAAAAAAAAAAAAAAAAwwkJ8emQfP///////syd/8Bg - AP/EZgD/vW0A/7x0AP/CfAD/yYQA/9OOAP/bmAD/3Z8A///IKv//77v//9RG////////7rr//7I6/wAA - AGgAAAAcAAAAAAAAAAAAAAAAvwkJg+doLv///////////9RrAP/thwD/7pkA/+2kAP/enwD/3J0A/9ub - AP/bmQD/2pkA///TXf//55n//+SJ///gev//yyr/sTsC1QAAAD8AAAAKAAAAAAAAAAAAAAAAvAkJEcoU - APH+17H////////quf//1Gr//89E///JG//3vwD/67IA/+GlAP/cmgD/0o0A///fnv/5mQD//+TE//uw - AP/8gAD/NQMDdQAAABwAAAABAAAAAAAAAAAAAAAAAAAAAL8JCYPznX/////////67///1Gf//85A///I - GP/1vgD/6rEA/+CjAP/bmQD/0IwA///y1///tDf//6M7/8NaAP+NGgLCAAAANwAAAAcAAAAAAAAAAAAA - AAAAAAAAAAAAALwJCRHOKBzx//nu////////3H7//808///IE//zvAD/6a8A/9+iAP/bmAD//7os///F - Xf//26L/6YEA/9hQIvghAgJgAAAAGQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/CQmD1oGB0f// - ////7sL7/9FD8f/PLvr/yA7//8EF//+9Ev//thb//9R7+v7IZfLgxp/lxopx2ZgzM7EAAAAsAAAABgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRxRgY3+jo6Nn5+fn7jo6OyZOTk7GoqKibsLCvlLGx - rpStrKmX9tuk3ODXxtyjlpC8xFVQ4wAAAEYAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvwkJg85bWdH/////u7q02pCKfLqmnoqitKiPl7aoi5bIsYCn6cd+zdvGmdHLbU3cew8OnQAA - ACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAkJEcUQDujs2czg6ubd75h9 - QMOpiD6xs443qrmQLKj9xEDL9MhZzNaNEMDDKA3lAAAAQwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCYPbWCXT/////7yRCc/HnxnQxZ0T0oFkAMPhqQDJyJkArspW - AOlbBASKAAAAKAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwJ - CRHHDwf39uvC6+/lvfL//////////9zDcuiHaAC2uHEAxbIPBNkAAABSAAAAGwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBCQnk9+zE6vjy3/j//////////9zD - cuiHaAC2tXYAvpAHB64AAABFAAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAC8CQnI+O3E6f///////////////93EcueHaAC2sHcAuJMHB6sAAAA4AAAADwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG7CQnJ78+Q4P// - /////////////93EcueBZAC+p3EAwlkEBI0AAAA+AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy1CQnQ5KZ+7v/////z6s329/He+d7Fc+Z7XwDHmmgA0kkD - A6wAAABiAAAAIgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJt4 - ADTJSADq1HYA+8FhAP/AYAD/wGAA/8BgAP/AYAD/uWIA9IM4ANUAAAB8AAAANAAAAAcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPytAMPMeQD/024A6dx0AdPgdwDP4ncAzeF4 - AMzXbwDax20A9MBuAP9hNQCBAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAALpdAFLHYwDJ8oEOxOmUPqznp2aa6adlmOqoZJjyiBm73YAAwrV0AKxWOQAnAAAACQAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAA8AgAADAIAAAwCAAAMAgAADAIAAAwCAAAMAgAADAIAA - AwDAAAcAwAAHAOAADwDgAB8A8AAfAPAAPwD4AD8A+AB/APwAfwD8AH8A+AB/APgAPwD4AD8A+AA/APgA - PwA= - - - - - AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAADgAAABkAAAAiAAAAKgAAAC4AAAAwAAAAMAAA - ADAAAAAwAAAAMAAAADAAAAAwAAAALgAAACgAAAAgAAAAFwAAAAwAAAADAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAATAAAAJQAAADgAAABMAAAAYQAAAHQAAACDAAAAjAAA - AI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACLAAAAfwAAAHAAAABeAAAASAAAADIAAAAfAAAADgAA - AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAALAAAAKQAAAFMZAgCBWQYAs3sJAM6iHADptCMA9chE - AP/JVwD/zmMA/9RuAP/XdAD/23oA/+B9AP/oewD/41QA/8pHBfOfGQPodggA10MFAL0AAACbAAAAiwAA - AG4AAABIAAAAIQAAAAcAAAAAAAAAAAAAAAAAAAAAAAAACgAAADRyCACmrwsA7ccLA//GCgb/yiwA/8VJ - AP/EZgD/x3EA/8R3AP/DfAD/x4MA/8yJAP/RkAD/4KAA//izAP//uQv//8g7///Ua///0n3//7Vq/+xv - Q/+gKBjqQQUAwwAAAJQAAABjAAAAKAAAAAcAAAAAAAAAAAAAAABHBQAttgsC48YKBv/FCQn/zB0A/8RR - AP/AYAD/wGAA/8RjAP/DaQD/u28A/7t0AP+/eQD/xH4A/8mEAP/QiwD/2JIA/9yZAP/cnQD/4KMA//++ - Bv//3IX//+m8///w0P/0sZf/kyoi5QAAAKAAAABeAAAAGQAAAAAAAAAAAAAAALwLA8rFCQn/xQkJ/8ky - AP/AYAD/wGAA/8BgAP/AYAD/xWYA/8FrAP+6bwD/vHUA/8F6AP/FgAD/yoYA/9ONAP/alAD/25kA/92f - AP/hpQD/5qwA///MN///11v//9xo///57f//7c//lToA4QAAAIUAAAArAAAAAAAAAAAAAAAAxQkJ/8UJ - Cf/TKQv//rBi//ymT//AYAD/wGAA/8JhAP/EZwD/v20A/7pxAP++dwD/wnwA/8aCAP/NiQD/1ZAA/9uW - AP/cmwD/3qEA///MPf//01H//993///ZV///yQ7//9I7///RQ///vyz/AAAAjgAAAC8AAAAAAAAAAAAA - AADFCQn/xQkJ//e4kv///////+vX/8BgAP/AYAD/w2IA/8NpAP+9bgD/u3MA/794AP/DfgD/yIMA/8+K - AP/WkQD/3JgA/9ucAP/fowD//9Zg///ml///xAH///fd////////66j//886///OQf8AAAB9AAAAJwAA - AAAAAAAAAAAAAMEJCcPMHQD//tex/////////////JIn/8BgAP/FZAD/wWoA/7twAP+8dAD/wHoA/8R/ - AP/KhQD/0YwA/9mTAP/cmgD/3J4A/+GkAP//yiz///////C5AP//7Kv///zw///XV///3HP//4EB+QAA - AFYAAAAUAAAAAAAAAAAAAAAAvgkJQswUAP/+sGL////////////+zJ3/wGEA/8VmAP/miQD/24sA/++m - AP/joQD/250A/9ydAP/bnAD/3JoA/9uZAP/bmwD/3J4A///jk///66r/8boA///87v//1kz//8oj//++ - Kv96GgSrAAAAKwAAAAQAAAAAAAAAAAAAAAAAAAAAwgkJwsVJAP//69f/////////////y27//9Zx///S - Wf//zTz//8kf///GBP/xugD/67IA/+OoAP/dnwD/3JkA/9WQAP/KhQD///jr//+zKf//w0L//+2+///J - FP//yyn/0UcA7AAAAEwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkhzBQA//+7eP/////////////s - v///1W///9JX///NOv//yRz//8UB//C6AP/qsQD/46cA/92eAP/bmAD/1I8A//+xGf//8Nf/vXUA///n - wv//jhT/130A//uEAP9UBASVAAAAJQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADACQmj731T///9 - 9f////////rv///Vbf//0VP//8w3///IGf/+xQD/8LkA/+mwAP/ipgD/3J0A/9yXAP/TjQD//9F5///M - dP//pA7//9yw/8RmAP/CXQD/qg0D4wAAAEIAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL0J - CSHKGBL//+Ky/////////////+CX///RUf//zTT//8kW//rCAP/wuAD/6a8A/+GlAP/cnQD/25YA/9KM - AP//6b//6ZMA///Zm//mhAD/3HEA/95PIf83AwNzAAAAHQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMAJCaPTYFPb8vDq8P//////8tH//9BN///MMP//yRP/+MEA/++3AP/orgD/4aUA/9yc - AP/alQD/+qgA///jrf//qxj/+d2z9uWjSuHUjGnhoUBAvwAAADQAAAAIAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAvQkJIcYPD/fIqanC///////////DtIzfyrZ2z//TQdH/0znN/9A1zv/L - Mc7/xy3O+shLzvLCWs7/2YXp3caY2OPax+Krqqm1oZaWrsxRUfEjAgJYAAAAFwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQkJo8M2NtLn5+fl/////8jIyOSHh4fBnp6epa6u - rpWwsLCUsLCvlLGvrpSxr66Ur62rlvjboNysp5q44NnG256ak6fIcGnghQ8PqAAAACwAAAAFAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRwwkJ8b+cmbP/////8/Pz+IWD - fMaXk4qwraibmbSun5S1rpuUtqyYlLeslJS9rouf/daE3dTEoMq2poK0uIRkwcMoIe4AAABGAAAAEAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/CQmDxiwm2ePf - 1+D/////t66b15eFYrqwm22gwKdwlMKna5TEpmWUxaZflOq/XrrSqlC2782G0rmLOa7aSiL1WwQEigAA - ACQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwJ - CRHDCQnxzH1UwPv59fvl3cntoHwowrKKJLDBkx2lw5MTpciVCaTQmwCf/8g4zu65JbfiqgCt0GkA264P - CN0AAAA/AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAL8JCYPNJAXh6dKE1/////+9kgLQgmQAx4FjAMV9YQDHfmEAxIhpALT8uwDDo34Al6p2 - ALPSIwD/NgMDdAAAAB8AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAvAkJEcMJCfLLXwDO/////+vbq/D////////////////t4rv0gWMAv5l2 - AKGmgACUzEkA7o8HB8UAAABFAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvQkJx7lIAND//////////////////////////+3i - u/SBYwC/mXYAoaaAAJTSIwD/QgMDjgAAADQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+CQnGvEkAzf/////38d75//////// - ////////7eK79IFjAL+ZdgChpoAAlNIjAP8AAABtAAAALQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALQJCYu9SgDM/////+/k - vfL////////////////t4rv0gWMAv5l2AKGmgACUziYA+QAAAGIAAAAoAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAkJi8BB - ANP/////8OW+8f///////////////+3iu/SCZAC9mncAoKaAAJTJRQDmAAAAVQAAACEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACzCQmMxicA5vLnv+/v5b3y////////////////7eK79H9iAMKObgCtlnQApLJIAM0AAABaAAAAIwAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAACqQICJnCJgDq8OW+8erbq/Du47zz+9qz/P7Xsf/jzobpel4AyntfAMd9YQDEnEMA1gAA - AIEAAABGAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAfoUIAvcg+APu0bgD1wGAA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wGAA/7Ji - APGyUwDwIhEAsgAAAH4AAAAxAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/GCtbgoAD/y3oA/7BfAPHAYQD/rVcA5ataAMSuXQDAq1cA0cBg - AP+6XQD2u2AA975oAP/AYgD/KhUAkgAAADcAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1nYA/8BgAP/WfSDJwI1Os6+edp+1oXebu6V4lsGp - eJPDqnSSv6ZvlcGbW6DWiyi7xnsA88V/AP9vRgB2AAAAGwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XQBCul0ApM5nALXzegHN7oUdve2M - K7Tmp2aa6alnme2XP6rwhh278YEOxdZ4AL2ybwC6qG0AcgAAABEAAAAEAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA+AAAf+AAAA+AAAAHgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA8AA - AAfAAAAH4AAAD+AAAA/wAAAf8AAAH/gAAD/4AAB//AAAf/wAAP/+AAD//gAB//8AAf//AAP//wAD//8A - A///AAH//gAA//4AAP/+AAD//gAA//4AAf8= - - - - - AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAHAAAADwAA - ABgAAAAfAAAAJQAAACsAAAAvAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAALgAA - ACgAAAAjAAAAHgAAABYAAAANAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAATAAAAIAAA - AC4AAAA8AAAATgAAAGAAAABuAAAAegAAAIYAAACOAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAA - AI8AAACPAAAAiwAAAIAAAAB2AAAAawAAAF0AAABJAAAANgAAACgAAAAbAAAADgAAAAQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAOAAAAIgAA - ADsAAABVAAAAcCoDAJVXBgC2ewgAz5kLAOSiCwDrvg0A+scOAP/HDgD/xS0A/8Q3AP/FOAD/xjkA/8c7 - AP/HPAD/xykA/8cOAP/HDgD/qgwA86ELAO2MCgDidwgA1kMFALwUAQCiAAAAjwAAAH0AAABlAAAASwAA - ADEAAAAaAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACgAA - ACUAAABJMQMAgmcHALmaCwDivg0A+sgMAP/IGgD/yR4A/8VXAP/FYwD/yXoA/8t+AP/SigD/05AA/9WV - AP/ZmwD/3qEA/+y0AP/xugD/+cEA///HDf//ySD//8ov//+uKv//rDD//n0d//FgEP/aNhL/qgwA84AJ - AN9RBgDFAAAAnAAAAIYAAABjAAAAOwAAABkAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAANAAAANVcGAJKdCwDfyAwA/8cLA//GCgb/xQkJ/8sjAP/FTgD/wGAA/8BhAP/FZAD/w2kA/8Bs - AP+6bwD/unIA/712AP/AegD/w30A/8aBAP/KhQD/z4oA/9eSAP/spQD/86sA//+8Fv//xDL//9Jh///a - g///3ZL//+Ge//+3c//rcEb/yCoV+38JAOAjAgCzAAAAiQAAAFgAAAAlAAAABwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAkzAwA/rAwA3ckUAP/GCgb/xQkJ/8UJCf/LIwD/w1YA/8BgAP/AYAD/wGAA/8Jh - AP/FZgD/w2kA/75tAP+6cAD/u3MA/753AP/BegD/xH4A/8aCAP/LhgD/0IsA/9WQAP/ZlAD/3ZgA/9ua - AP/dngD/4KMA//e1AP//yTT//92O///msf//6r7//+7L//evi//OSTj7aAcA1gAAAJwAAABiAAAAIgAA - AAQAAAAAAAAAAAAAAAAAAAAAAAAAAEwFACq3CwDiyhAC/8UJCf/FCQn/xQkJ/8dEAP/AYAD/wGAA/8Bg - AP/AYAD/wGAA/8NiAP/FZwD/wmsA/7xuAP+5cQD/vHUA/794AP/CfAD/xH8A/8eDAP/MiAD/0YwA/9aR - AP/alQD/3ZkA/9ucAP/doAD/4KQA/+OoAP/nrQD//9NY///ouP//7MX//91w///13v//+ez/6JWL/48a - EeUAAACXAAAATgAAABEAAAAAAAAAAAAAAAAAAAAAAAAAALULALDFCgj/xQkJ/8UJCf/FCQn/xUkA/8Bg - AP/AYAD/wGAA/8BgAP/AYAD/wGAA/8RjAP/FaAD/wGwA/7tvAP+6cgD/vXYA/8B5AP/CfQD/xYAA/8iE - AP/NiQD/040A/9iSAP/clwD/25oA/9udAP/eoQD/4aUA/+SqAP/orgD//8UR///VVv//1U///84h///0 - 1v//+/L////+//+7NP9OBQDKAAAAdgAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAMYLBf/FCQn/xQkJ/8UJ - Cf/FSQD/6HQA//ySJ//AYAD/wGAA/8BgAP/AYAD/wmEA/8VkAP/EaQD/v20A/7pvAP+7cwD/vncA/8B6 - AP/DfgD/xoEA/8qFAP/PigD/044A/9mTAP/cmAD/25sA/9yeAP/xrwD//8s8///OPv//z0H//8oh//C5 - AP/xuwD/+cEA///JFv//33j//9po///MMP/ngwDzAAAAiwAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAMUJ - Cf/FCQn/xQkJ/8kyAP/+uHX////////16//UagD/wGAA/8BgAP/AYAD/wmIA/8ZmAP/CagD/vm4A/7pw - AP+8dAD/vngA/8F7AP/EfwD/x4IA/8uGAP/QiwD/1ZAA/9qUAP/dmQD/25sA/92fAP/gowD/9LUA///B - C//7vgD//993///33f//7Kz//9pf///KG///yRj//8om///NNP//xzr/AAAAjwAAADAAAAAAAAAAAAAA - AAAAAAAAAAAAAMUJCf/FCQn/xQkJ//WSRP/////////////////8nDv/wGAA/8BgAP/AYAD/xGMA/8Ro - AP/BawD/u28A/7pxAP+8dQD/v3kA/8J8AP/FgAD/yIQA/82JAP/SjQD/15IA/9uWAP/cmgD/25wA/96g - AP/hpQD//8AI////////1VT/7rcA///VRv//////////////////6Jz//884///MOf//z0X/AAAAgwAA - ACoAAAAAAAAAAAAAAAAAAAAAAAAAAMEJCcPFCQn/zB0A//6wYv/////////////////+4cX/wGAA/8Bg - AP/AYQD/xWQA/8RpAP/AbAD/u3AA/7pyAP+9dgD/wHoA/8N9AP/GgQD/yoUA/86KAP/TjgD/2JMA/9yX - AP/cmgD/3J0A/9+hAP/ipgD/5aoA////////+u7/77gA//G7AP/////////////11P//3nT//+ux///N - PP//rir/AAAAYAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAL4JCULFCQn/yTIA//ymT/////////////// - ////////+34A/8BgAP/CYQD/xWYA/8NpAP++bQD/unAA/7tzAP++dwD/wXoA/8R+AP/GggD/y4YA/9CL - AP/VkAD/2ZQA/92YAP/bmgD/3Z4A/+CjAP/ipwD//8EK////////66r/8LkA///HA/////////jh///M - Jf//yiT//9A////IOP+WLAXDAAAANwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCCQnCyyMA/9Rq - AP//9ev//////////////////sKJ/8BgAP/DYgD/xWcA/8JqAP+9bgD/2osA/9eMAP/ZkgD/46EA/9yd - AP/bngD/3J0A/9ycAP/cmwD/3JoA/9yaAP/bmwD/25sA/9+iAP/jqAD//+GE////////00X/8boA///d - aP///////9I7///IGv//yyj//8w3//hyAfkfAQFlAAAAFwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC9CQkhxQkJ/8RRAP/+sGL///////////////////Xr//+NBv//pCH//79F///OVv//0E7//807///L - KP//yRT//8YD//O9AP/vuAD/67IA/+asAP/hpQD/3Z8A/9ybAP/blgD/1ZAA/86KAP/IgwD//+3G///4 - 6//cngD/6rEA///43f//6qL//8gQ///JHv//yyz//64e/3kGBrYAAAAuAAAABQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAwAkJo8sjAP/UagD///Xr///////////////////ptP//2Hz//9Vu///S - Xv//0Ez//805///KJf//yBP//8UC//K8AP/vuAD/6rEA/+WrAP/hpQD/3Z8A/9yaAP/blQD/1ZAA/82J - AP/unQD////////Lc/+8dAD//6Yg////////sw///8kU///KIv//zDD/zzcE8gAAAE4AAAAQAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvQkJIcUJCf/FTgD//8mG///////////////////3 - 6P//2Hv//9Vs///TXf//z0r//8w3///KJP//yBH//8UA//K8AP/vtwD/6rEA/+WqAP/hpAD/3Z4A/9ya - AP/alQD/044A/82JAP//wlH///////udAP+7cwD//9+t///Iif/FZAD/zG8A//+9E///fwD/VAQElgAA - ACYAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAJCaPPJh7//+i5///9 - 9f//////////////////3Ir//9Vr///RW///z0j//8w2///KIv//yA///cQA//G7AP/utgD/6bAA/+Sq - AP/gowD/3J4A/9yaAP/ZlAD/044A/82IAP//3Z7//+nD/794AP/jjQD//////+p/AP/FZAD/wGAA/9Bo - AP+lCAjkAAAARgAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL0J - CSHFCQn/+Zll///uzP//////////////////7sL//9Rq///SWf//z0f//80z///JIP//yA3/+sIA//G7 - AP/utgD/6bAA/+SpAP/gowD/3J0A/92ZAP/ZkwD/040A/8uHAP///////7Y5/753AP//0Yb//8yI/8Np - AP/EYwD/wGAA/8sjAP9HAwOFAAAAIAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADACQmjzycb///kqv//+e7//////////////Pb//9Ro///SV///z0T//8wx///J - Hv//xwz/+MEA//G6AP/ttQD/6K8A/+OpAP/fogD/250A/9yZAP/ZkwD/0o0A//+4Kv///vv/1YcA/9KD - AP//9+v/5YUA/8NpAP/EYwD/3VAA/5kWFtEAAAA6AAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkhxQkJ/9pzWej/6Lb3/////////////////+Se///R - Vf//zkL//8wv///JHP//xwr/98AA//G6AP/ttQD/6K4A/+OoAP/fogD/25wA/92YAP/YkgD/0YwA///V - gP//0n//wXsA//+7S///1ZX/9o4A//6UG/rklFDs019a9yACAmMAAAAZAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAkJo8UPD/iYiIi16enp7f// - //////////TY///UYf//zkD//8wt///IGv//xgj/9sAA//C6AP/stAD/564A/+OnAP/foQD/3JsA/9yY - AP/YkgD/7qAA///pvP//vUT//64h///y2v/esm/fyqVzwaKioqDMdnblkSEhtQAAADIAAAAHAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvQkJIcMJ - CfG5RUXOsrKyyf///////////////5yYj9q+rn/L7cxlxP/US83/1ELN/9M72v/SPOf/0Djn/8015//K - Muf/xjDn/8Q24fLEWs/xwVvO98hs3f/tw/W0oHm/w8K9xOLg2OGdnZ2mqKiom7aJicLEPj7uIwICWgAA - ABUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAL8JCYPFDw/3mYmJtOPj4+n//////////8vLy+yFhYXEnZ2dpq6urpWwsLCUsLCwlLCw - sJSwsLCUsLCwlLCwsJSwsLCUsLCwlLCwsJSwsLCU4c+oyt/NpteZmZmq8urb6ayrp7WkpKKfqZ2bptRb - Wfp1BgahAAAAKQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAALwJCRHDCQnxuzw81KCgoML///////////j4+Px/f3/NkpKSsqmp - qZqwsLCUsLCwlLCwr5SwsK+UsLCvlLGvrpSxr66UsbCtlLGwrJSvrKiW/+Gm7q2lkrivqZ+06N/J36Ge - lKSoo5eexXFp26wWFt8AAABHAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/CQmDxQkJ/5x7e7rc3Nzl//////// - //+0srLjioiFvqOhnKGyrqiUsq+nlLKuppSzr6SUs66jlLStoZS1rp+Uta2dlLWtmpS6rZGg/92S6aGX - gKnt37retqmNsqyfgKC6h2290jIq/1kEBI0AAAAkAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRwwkJ8b00 - MNuhnpXC///////////k4+HzhoBxyJ6Wg6q0qZGXuKySlLisj5S5q4yUuquJlLuqh5S7qoSUvKmBlL2o - fpTqxnbC475xyLSeb6zu1aHYsZhioreSXajXUTX2oAgI1wAAAD8AAAALAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvwkJg8UJCf+ieGC708y/3P//////////mo5y1JuIYba0nm6cwKZxlMGmbpTDpmmUw6VmlMSl - YZTGpV2Ux6NZlMajVJX/zmPVtZJDpuvIfczLplCuvpY3odNuKNbKFA7/NwMDcgAAABwAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAvAkJEcMJCfHBKB3hpYxZv/v59fv/////zsOp5pp9O8K3kkGly6JDlc6k - PpTQozmU0qMzlNOjLZTWoyaU2KMflNWhF5f/yknVzZgHoP/QXs7NmQCdy4QAt90yBP+EBga+AAAANgAA - AAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCYPFCQn/uF4cxNvJnN3/////9vLp+KN6 - CMm6iQKzyJUAo8SSAKK7jQCktIkApa+GAKSvhgCfsokAmfO2ALLdqACv1qQAptilAKSdegCezlkA8b4J - CfggAgJhAAAAFgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwJCRHECQnwySQC5rCH - AMD9+e/7/////9CuO9qBZADDhWcAu4FkAL99YADFe18Ax31gAMWFZwC5lnQApPO3ALijfgCXpX8AlaJ9 - AJi4bgDPzhYC/28FBaoAAAAtAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC/CQlixQkJ/6hSANHcvE7X/////+3drO7r3Kzv7+W98v///////////////+zhu/XHnAvTj24ArKJ9 - AJimgACUpoAAlKl5AKnPLAD6tgkJ8QAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAxQkJ/8ImAOrUrCPO//////DlvvHv5L3y//////////////////////// - ///KoyHZjm0ArqJ9AJimgACUpoAAlMlYAOHFCQn/TAQEpAAAADYAAAADAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAkJyMMmAOrVrCPO//////DlvvHv5L3y//////// - ///////////////////KoyHZjm0ArqJ9AJimgACUpoAAlMJaANTFCQn/AAAAfQAAAC4AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAkJyMImAOrSqiLQ//////Dl - vvHv5L3y///////////////////////////KoyHZjm0ArqJ9AJimgACUpoAAlMBiAM7FCQn/AAAAcgAA - ACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAkJyMYW - AvXRqSLR//////DlvvHu5L3z///////////////////////////KoyHZjm0ArqJ9AJimgACUpoAAlMBi - AM2xCAjmAAAAaQAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvQkJx8UJCf/UqyPP//////DlvvHu47z0///////////////////////////KoyHZjGwAr6F8 - AJmmgACUpoAAlMFiAMyrCAjbAAAAYwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAugkJqcUJCf/ClQDD//////z47/zt4rv0//////////////////////// - ///IoiHbiWoAs597AJumgACUpoAAlLVmALitCAjZAAAAWQAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAkJi8UJCf+EZgC6///////////t4rv0//////// - ///////////////////XvF7kh2gAtp15AJymgACUpoAAlLZ7ALKnCAjOAAAATwAAABoAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAkJi8UJCf+DZQC8//////// - ///u47zz///////////////////////////fxnTkiGkAtZt4AJ+lfwCVpoAAlLd8ALGQBweuAAAASQAA - ABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtQkJi8UJ - Cf+TXADL///////////v5L3y///////////////////////////hyHXigmQAvYxsALCTcQCnlnQApK52 - ALqNBwexAAAASAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAJqAgIlcUJCf+UVgDV7+W98vDlvvHdpTLl3psd5N6bHeTemx3k3psd5N6bHeTemx3kkGEA1n1h - AMV/YgDBgGMAv4pnAMGBBgbDAAAAZQAAADIAAAAOAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAoAAAAtfhwAn8UJCf+5ZwD2uGwA+cJhAP/AYAD/wGAA/8BgAP/AYAD/wGAA/8Bg - AP/AYAD/wGAA/8BgAP/AYAD/sWEA8qVgAOltHgDNAAAAlgAAAG8AAAA3AAAADQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1UACfHmADB4JwA/9eFAP/AfQD6nF8A55lPAN6iUQDjo1EA4qNS - AOGkUgDgpVMA3qVTAN6kUgDgo1IA4aNRAOKiUQDjuVwA+cBgAP/AYAD/plMA7zUbAKwAAABcAAAAGQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/HGbjpqwD1vngA9LJhAPWxWADywGAA/8Jj - APTGZwDoxWcA6MhsANvKcgDPynMAzsdqAODFaADnxWcA58JjAPPAYAD/uWAA7aliAOenYADsr1wA9ZVL - AOEAAABdAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM5yAKbAYAD/wGAA/81q - AOrDeCDMrpNWp7aZWaC4mVifuZpWn7ubVZ28m1OcvZtRnL6bT5y9nE6cvZpLnbyYSZ/Dkzyl2IUUvst6 - AOS/eAD/xYEA/4lXALwAAAA9AAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALtd - AGK/YADwwGAA/+R+Fse+nXqjrKihmqmnn5ynpJuep6OanqqnnJutqZ2araedmq2onJqtp5uarKWYm6mi - k56qopOex5dUrtSCAODAegD/w4AA85VkAG4AAAATAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAuV0AQrdcAIW4XAC3wmEAv+BwANDodADW7YQdvu6FHb3vhR2974Udve+F - Hb3vhR296XQA1t9wANHCYQDAtmQAuqdmAI+YYABRAAAADAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4AAAD/8AAP4AAAAB/wAA+AAAAAA/ - AADgAAAAAB8AAMAAAAAADwAAwAAAAAAHAADAAAAAAAcAAMAAAAAABwAAwAAAAAAHAADAAAAAAAcAAMAA - AAAABwAAwAAAAAAHAADAAAAAAAcAAOAAAAAABwAA4AAAAAAPAADwAAAAAB8AAPAAAAAAHwAA+AAAAAA/ - AAD4AAAAAD8AAPwAAAAAfwAA/AAAAAB/AAD+AAAAAP8AAP4AAAAA/wAA/wAAAAH/AAD/AAAAA/8AAP+A - AAAD/wAA/4AAAAf/AAD/wAAAB/8AAP/AAAAP/wAA/+AAAA//AAD/4AAAH/8AAP/wAAA//wAA//gAAD// - AAD/+AAAf/8AAP/4AAB//wAA//gAAH//AAD/+AAAf/8AAP/4AAB//wAA//gAAH//AAD/+AAAf/8AAP/4 - AAB//wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA//gAAH// - AAA= - - - - - AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAGAAAADQAAABYAAAAcAAAAIgAAACYAAAArAAAALwAAADAAAAAwAAAAMAAA - ADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAALgAAACgAAAAkAAAAHwAAABkAAAASAAAACgAA - AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAMAAAAMAAAAGAAAACQAAAAwAAAAPAAAAEsAAABbAAAAaAAAAHMAAAB8AAAAhgAA - AI4AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAIsAAACAAAAAdwAA - AG4AAABhAAAAVAAAAEUAAAA0AAAAJwAAAB0AAAASAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAGAAAAEgAAACEAAAAyAAAASAAAAGAAAAB3KQMAmUgFALB7CQDOhAkA2KML - AOqiCwDrvg0A+scOAP/HDgD/xw4A/8cOAP/HDgD/xw4A/8cOAP/HDgD/xw4A/8cOAP/HDgD/xw4A/8cO - AP+qDADzoQsA7ZcKAOd2CADXXwcAyUUFALkAAACaAAAAjgAAAH0AAABqAAAAVAAAAD0AAAArAAAAGgAA - AAsAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAoAAAAeAAAANwAAAFQAAABxTAUAqHwJAM2jCwDpxw4A/8cO - AP/HDgD/xSsA/8YxAP/GRgD/yVMA/8hfAP/McQD/znYA/855AP/TggD/2YsA/9qZAP/enQD/4pcA/+Sb - AP/mnwD/6qIA//WmAP/4pAD/9YgA//1/AP/1bwD/50UD/9s2AP/HDgD/xw4A/6oMAPOLCgDkXgYAyyUD - AK0AAACUAAAAgAAAAGQAAABFAAAAKgAAABMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACAAAAB0AAAA/HAIAc2gHALebCwDixw4A/8cO - AP/HDAL/xgsF/8oXAP/KJQD/xz4A/8RfAP/EcwD/x3cA/8p6AP/KfgD/y4EA/8uEAP/KhwD/zYoA/8+O - AP/SkgD/1ZUA/9iZAP/bnQD/4KMA//C0AP/7vAD//8EM///LKP//zDj//89H///RVv//02T//9Zv//+6 - T///mT//+Hw0/+BEHP/OGgb/tAwA94AJAN8zBAC5AAAAlwAAAH0AAABVAAAALQAAABAAAAADAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADQAAADA1BAB3lQoA1ccO - AP/IDAD/xwsD/8UKCP/FCQn/xQkJ/8osAP/FTgD/wGAA/8BgAP/AYAD/w2IA/8ZmAP/DaQD/wGwA/7xu - AP+6cAD/u3MA/712AP+/eAD/wXsA/8N9AP/FgAD/x4MA/8uGAP/PigD/0o0A/9aRAP/ZlAD/3ZgA//ev - AP//ugv//8Ms///MTv//2X///9yK///elf//4Z7//+Oo//+3eP/rcUf/0ikV/7QMAPdbBgDQAAAAoAAA - AHwAAABJAAAAGwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACy8D - AEOSCgDDxw4A/8cLA//GCgb/xQkJ/8UJCf/FCQn/yyMA/8JZAP/AYAD/wGAA/8BgAP/AYAD/wGEA/8Rj - AP/FZwD/w2oA/79sAP+7bwD/uXEA/7tzAP+9dgD/v3kA/8F7AP/DfgD/xoEA/8iEAP/MiAD/0IsA/9OO - AP/YkgD/2pUA/9yYAP/cmgD/25wA/92fAP/fogD/4aYA///CGv//0Fb//+Gj///krf//57f//+vA///v - yv/4r4f/2Ug0/7QMAPdABADGAAAAkQAAAFUAAAAeAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAABjcEADm0DADlyRQA/8kQBP/FCQn/xQkJ/8UJCf/JDwX/xU4A/8BgAP/AYAD/wGAA/8Bg - AP/AYAD/wGAA/8JhAP/FZAD/xWgA/8FqAP++bQD/um8A/7pxAP+8dAD/vncA/8B5AP/CfAD/xH8A/8aC - AP/KhQD/zYkA/9CMAP/VkAD/2JMA/9uWAP/dmQD/2poA/9ydAP/eoAD/4KMA/+KmAP/kqgD/564A///L - Mv//5bH//+m6///sxf//6rL///PY///24f/3v6v/zyoe/1oGANIAAACVAAAAVAAAABgAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa4DQDgyhEB/8UJCf/FCQn/xQkJ/8UJCf/JDwX/w1YA/8Bg - AP/AYAD/wGAA/8BgAP/AYAD/wGAA/8BgAP/CYgD/xWYA/8RpAP/BawD/vW4A/7lvAP+6cgD/vHUA/754 - AP/AegD/w30A/8WAAP/HgwD/yoUA/86KAP/SjAD/1ZEA/9mTAP/cmAD/3ZoA/9ubAP/cngD/3qEA/+Gk - AP/jpwD/5asA/+iuAP//zkH//+e2///qv///7cn//9RH///jiP//+Ob///rw//3v6f/caV//WgYA0gAA - AIsAAAA9AAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtDACTyhEB/8UJCf/FCQn/xQkJ/8UJ - Cf/JDwX/w1YA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wGAA/8BgAP/AYAD/xGMA/8ZnAP/DaQD/v2wA/7xv - AP+5cAD/u3MA/712AP+/eAD/wXsA/8N+AP/FgQD/x4MA/8uGAP/PigD/040A/9aRAP/alAD/3ZkA/9ya - AP/bnAD/3Z8A/9+iAP/hpQD/46gA/+asAP/psAD/7LMA///JIf//zCX//8ob//W+AP//44z///nq///9 - 9P////7//996/+5lAP8jAgC1AAAAZQAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwgwC5cUJ - Cf/FCQn/xQkJ/8UJCf/JDwX/w1YA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wmEA/8Rl - AP/FZwD/wmoA/79tAP+7bwD/uXEA/7t0AP++dwD/wHkA/8J8AP/EfgD/xoEA/8iEAP/NiAD/0IsA/9OO - AP/YkgD/2pUA/92YAP/bmgD/25wA/92gAP/xsAD//8s8///JLP/4ugD/6rAA/+y0AP/vtwD/8boA//G7 - AP/4wQD//8YD///bYf//7bL//+us///LK///xi//mysA5AAAAIAAAAAoAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMYKBv/FCQn/xQkJ/8UJCf/FCQn/w1YA//yIE//+zJ3//////+h0AP/AYAD/wGAA/8Bg - AP/AYAD/wGAA/8JiAP/FZAD/xGgA/8FrAP+9bQD/um8A/7pyAP+8dQD/vncA/8B6AP/CfAD/xH8A/8aC - AP/KhQD/zYkA/9GMAP/VkAD/2ZMA/9uWAP/cmQD/25oA/9ydAP/eoAD/4KQA/+KnAP/2uAD//89A///d - dv//66n//+SI///VRv//xwT/+sMA///GBv//yA///8kY///KI///yy7//8w4//+eA/cAAACMAAAALgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFCQn/xQkJ/8UJCf/FCQn/yTIA//ycO/////////////// - ///+sGL/wGAA/8BgAP/AYAD/wGAA/8BgAP/DYgD/xWYA/8NpAP/AawD/vG4A/7pwAP+7cwD/vXUA/794 - AP/BewD/w30A/8WAAP/HgwD/y4YA/8+KAP/SjQD/1pEA/9mUAP/dmAD/3JoA/9qbAP/cngD/36EA/+Gl - AP//vgf//9di//q8AP/rsgD/7bYA///omf/////////////xv///22X//8sh///JHP//yib//8wx///N - O///yD3/AAAAjwAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxQkJ/8UJCf/FCQn/xQkJ/+lr - AP///////////////////////+vX/8BgAP/AYAD/wGAA/8BgAP/AYAD/xGMA/8ZnAP/DagD/v2wA/7tv - AP+5cQD/u3MA/712AP+/eQD/wXsA/8N+AP/GgQD/yIQA/8yIAP/QiwD/044A/9eSAP/alAD/3ZkA/9ya - AP/bnAD/3Z8A/9+iAP/hpQD/5KkA///33P//+u7//8oh/+63AP/xugD///C8///////////////////8 - 8P//4YH//8sp///MM///zj7//89J/wAAAIkAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMEK - CMPFCQn/xQkJ/8wdAP/8iBP////////////////////////////8kif/wGAA/8BgAP/AYAD/wmEA/8Vk - AP/FaAD/wWoA/75tAP+6bwD/unEA/7x0AP++dwD/wHkA/8J8AP/EfwD/xoIA/8mEAP/NiQD/0IsA/9WQ - AP/YkgD/25YA/92ZAP/bmwD/3J0A/96gAP/gowD/4qYA/+SqAP//7bn////////rqf/vuAD/8boA///X - Rv//////////////////9dX//+ie///vvf//zDf//85B///AO/8AAABuAAAAHwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAC+CQlCxQkJ/8UJCf/IOQD//IgT/////////////////////////////syd/8Bg - AP/AYAD/wGAA/8JiAP/FZgD/xGgA/8FrAP+9bgD/uW8A/7pyAP+8dQD/vngA/8B6AP/DfQD/xYAA/8eC - AP/KhQD/zYkA/9KMAP/VkAD/2ZMA/9yXAP/dmgD/25sA/9yeAP/eoQD/4KQA/+OnAP/lqwD//+65//// - ////66r/8LkA//G7AP//10b/////////////8sT//8wo///KJP//0kn//914///OQ//JSAfjAAAAQgAA - AAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMEJCcPFCQn/xz4A/9RqAP////////////// - ///////////////////UagD/wGAA/8BgAP/EYwD/xmYA/8NpAP+/bAD/vG4A/7pwAP+7cwD/vXYA/794 - AP/BewD/w34A/8WAAP/HgwD/y4YA/8+KAP/TjQD/1pEA/9qUAP/dmAD/25kA/9ucAP/dnwD/36IA/+Gl - AP/jqAD//8EK/////////////9dW//C5AP/xuwD//+WK////////9NL//8si///JHf//yyf//8wy///N - PP//jBH/NAICeAAAAB0AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkyxQkJ/8ky - AP/AYAD//sKJ/////////////////////////////KZP/8BgAP/CYQD/xGMA/8VnAP/CagD/v20A/7pv - AP+5cQD/yYAA/9WNAP/TjQD/1pIA/9yeAP/bngD/254A/9ydAP/bnAD/25wA/9ybAP/bmgD/3ZoA/9ya - AP/bmwD/3Z8A/+CjAP/ipgD/5KkA///XYv////////ru/++3AP/xugD/8bsA///43v///////9I6///J - Ff//ySD//8sr///NNf//yDf/lBkGywAAADkAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMAJCaPFCQn/wlkA/+h0AP//9ev////////////////////////r1//AYAD/wmEA//KF - AP//ng///7Mn//++MP//yj///806///LLP//yR3//8gP///GAv/0vgD/8boA/++3AP/rsgD/560A/+So - AP/gpAD/3aAA/9ucAP/cmQD/2pUA/9WRAP/QjAD/0I0A/86MAP//5aP////////jh//vuAD/8boA///a - V////////+qi///ID///yRj//8oi///LLf//zDj/5lMD+R4BAWcAAAAZAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkhxQkJ/8kyAP/AYAD//rBi//////////////////// - /////////8l1///Zgv//13j//9Vt///TY///0VX//89I///NOf//yyr//8kc///ID///xQL/9L4A//G6 - AP/utgD/67IA/+etAP/jqAD/4KMA/92fAP/bmwD/3ZkA/9qUAP/VkAD/0IsA/8qGAP/GggD///////// - ///6nAD/wnwA/8+LAP//7Ln////////OKP//yBH//8kb///KJv//zDD//6MZ/4MGBsAAAAAxAAAABgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAJCaPFCQn/wlkA/9Rq - AP//9ev////////////////////////y0///2YH//9d2///VbP//0mH//9FU///PRv//zDj//8sp///J - Gv//xw3//8UA//O9AP/xugD/7rYA/+uxAP/nrAD/46gA/+CjAP/dnwD/25oA/92YAP/alAD/1ZAA/9CL - AP/KhgD//7Up////////6cP/vXcA/7pzAP/2lAD////////Pjf/nmQD//8UP///JHv//yyn//8Us/8Yo - BfMAAABUAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC9CQkhxQkJ/8sjAP/QaQD//9Of/////////////////////////////9uJ///Xdv//1Wz//9Jg///R - Uv//z0P//8w2///KJ///yBr//8cM//7FAP/yvQD/8LoA/+21AP/qsQD/5qwA/+KnAP/fogD/3J4A/9ub - AP/cmAD/2ZQA/9WPAP/PigD/yoUA///Wiv///////7xM/712AP+6cgD//86G///////rfQD/xGUA/8dn - AP//sQP//8ss//pwAP9vBQWpAAAAKgAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAJCaPFCQn//Z1V///qvf///fv////////////////////////p - tv//13T//9Rq///SX///0VH//85D///NNf//yib//8kX///HC//9xAD/8r0A//C5AP/ttQD/6rAA/+as - AP/ipwD/36IA/9yeAP/bmwD/3ZgA/9mTAP/TjgD/z4oA/8qFAP//8dj//////9OFAP+9dgD/zn0A//// - ////yoj/xWgA/8RjAP/AYAD/wGAA//uQAP+lCAjlAAAASQAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkhxQkJ/9lEMP//6Lf//+7N//// - ////////////////////9+f//9d0///Uaf//013//9BP///OQf//zDP//8ol///JFv//xwn/+sIA//G7 - AP/wuQD/7bQA/+mwAP/lqwD/4qYA/9+iAP/cnQD/25oA/9yXAP/YkwD/044A/86JAP//qgT////////b - nP+/eQD/vXYA///BXv//////6YAA/8VoAP/EYwD/wGAA/8BgAP/MHQD/VwQEkAAAACIAAAADAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAJ - CaPFCQn//7d8///krf//+/T////////////////////////ejP//1Gn//9Fc///QT///zkD//8wx///K - I///yRX//8YI//rCAP/xuwD/8LkA/+y0AP/prwD/5aoA/+GmAP/eoQD/250A/9yaAP/blgD/2JIA/9ON - AP/NiQD//8RR////////sSb/v3gA/7x1AP//79b//8yH/8FrAP/FZwD/w2IA/8BgAP/HPgD/kwcH1QAA - AD8AAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAC9CQkhxQkJ/9U0JP//5Kz//+7G////////////////////////78n//9Nn///R - Wv//0E3//84+///MMP//yiH//8gT///GBv/4wQD/8bsA//C4AP/stAD/6a8A/+WqAP/hpQD/3qEA/9ud - AP/cmgD/3JcA/9iSAP/SjQD/zYkA///lr///8Nf/wnwA/794AP//tDX//////+aFAP/CagD/xmcA/8Ji - AP/CWQD/xxYW/zUDA3UAAAAcAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAJCaPFCQn/7I5i9v/jpv//+ez///////// - //////////31///Wb///0ln//9BL///NPP//zC7//8kg///IE///xgX/9sAA//G7AP/vuAD/67MA/+iu - AP/kqQD/4aUA/96gAP/bnAD/3JoA/9uWAP/XkgD/0owA/96TAP//+/L//81v/8F7AP+/eAD//+Ct///O - hf++bgD/0nIA//R/AP/ziiH243Nb/44wML0AAAA2AAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkhwwkJ8cIW - FvOfmo/H2M602v//////////////////////5J7//9JY///PSv//zTz//8wu///JHv//yBH//8YE//bA - AP/xuwD/77cA/+uyAP/orgD/5KkA/+GlAP/eoAD/25wA/92aAP/alQD/1pEA/9CMAP//vTb///jo/+mX - AP/BewD/9poA///+/f//rjT//6cv/+ynU+POonLGun9/0stCQvciAgJdAAAAFgAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAL8JCYPFCQn/qFNT0ImJib7s7Ozq//////////////////fh///VZ///0E3//806///L - LP//yR3//8gP///GAv/0vgD/8boA/++3AP/rsgD/560A/+OoAP/gpAD/3aAA/9ubAP/cmQD/2pUA/+Wa - AP/uoAD//9V+///rwv//sST//7pA+v/js/rm2MHpwKJ2v6mpqZmtra2WrJiYrdViYvp0Dw+mAAAALAAA - AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRwwkJ8cIWFvOMfn7EsrKyyf////////////////// - //+ZmZnasqWDx9LAibj+1VnF/9VNzf/VR9T/zyrn/84g5//MHuf/yRzn/8gZ5//FFuf/whPn/8Uq5//F - L+f/wi/n/8dI5//GTufvv1rP7rxZ0P/vyv/Yw5fdpp6Qrq2srKX49Ov1oaGfsqampp2vr6+UqKiom8t1 - dea9IyPwAAAASwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCYPFCQn/r0FB2oeH - h8Ds7Ozq////////////////0tLS8ISEhMWdnZ2mrq6ulbCwsJSwsLCUsLCwlLCwsJSwsLCUsLCwlLCw - sJSwsLCUsLCwlLCwsJSwsLCUsLCwlLCwsJSwsLCUsLCwlMS7qq//7MP6nZyXt6KioqDX1MrL1tPL1p6e - nqStra2XrKysl7WJh8PSQUH/VgQEkgAAACYAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC8CQkRwwkJ8cQPD/mMfX3EoaGhv/////////////////j4+P1/f3/NkpKSsqmpqZqwsLCUsLCwlLCw - sJSwsLCUsLCwlLCwsJSwsLCUsLCwlLCwsJSwsLCUsLCwlLCwsJSwsLCUsLCwlK+vr5To06XQ7tWj4pmZ - mKqlpKKe+O/c76Shnq+npqKcsK2qlaqdmaXWYV/6qQ8P4QAAAEYAAAANAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCYPFCQn/r0FB2oeHh8Hh4eHg////////////////srKy5ImJ - ib6hoaGhr6+vlLCwsJSwsLCUsLCwlLCwr5SwsK+UsLCvlLGvrpSxr66UsbCtlLGwrZSxsKyUsq+rlLKv - qpSvrKaX/+Gl7r+wkcWhn5ak0Mi1vdzUvtSjnpSjsauel62nmprGeG7cyyEf/0gDA4IAAAAgAAAAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRwwkJ8cQPD/mMfXzFoKCgwf// - /////////////+Li4vWCgYDJmZiVq62sqJeyr6uUsq+rlLKvqpSysKmUsq+olLKwppSyrqaUs6+klLOu - o5S0rqKUtK6glLWun5S1rZ2Uw7STp//goPSdloOsqaCKoPPlwuKtooqsr6OJnLWpjZa6iXG81T81/5cH - B9AAAAA6AAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8J - CYPFCQn/sjk334eFgMPb2tjb////////////////ko+J15GMgrippJedta6flLWunpS1rpyUta2blLat - mZS2rZeUt6yVlLeslJS4rJKUuKuQlLisjpS5q4yUuquKlOfGfsLuyXvVqZl1pcCvhqvm0qbSr5xyobqk - d5eznW+e2l5D9sAPDfgeAQFoAAAAGQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAC8CQkRwwkJ8cUJCf+TcGXKmZSFvvv7+fr//////////8zJwu2Lgm3EpZl/preq - ipW6q4qUu6uIlLurhpS8qoSUvKqClL2pf5S9qX2Uvqh7lL+oeJS/p3aUwKdzlL+lb5X/13vhv6BhtLOY - X6Hz153Vup9iqb2dWpu/nlmZ0HRB1s4gFv+DBga/AAAANAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCYPFCQn/uDEo446BZcPY0sTX//////// - ///4+Pb8iXlXzZ+LY7K3oG+awKZxlMGmb5TCpWuUw6VolMOlZpTEpGSUxaRflMajXZTHo1qUyKRWlMij - U5TDn06Z/9Bl3beSQqTHoUul7cp6ysKYOZ7KnjeYyoYttNk2GP+2CQnyIQICXwAAABUAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRxAkJ8MUJ - Cf+dbEfIo41fv/z6+Pr//////////7uukeSbgES+uJZNocijUZTKpE2Uy6NKlM2jRpTOo0KUzqM/lNCk - OpTRojaU0qIylNOjLpTVoymU9r43u/W9NsfLmRef9cdYwNejGqTWngia05wBneFaBuzFCQn/cAUFqAAA - ACoAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAL8JCWLFCQn/vicX55t7MsTez6vY///////////n4ND0nHgiybiNJarRnyWX16MglNmk - GpTapBWU3KUPlN6lCpTgpQSU3qUAlNqiAJTVoACU0JwAlP/HMs60iQCjuY0Am//JM720iwCXrYYAmcB1 - AM/QGwP/pQgI5AAAAEoAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwwkJ4sUJCf+wWg7QrIAJvvn26PT//////////7CL - H9WqfwC3vpAAn7+RAJu2iwCfr4YAoKuDAKGngAChpH4AoKR+AJ6mgACaqIIAlaeBAJX/xB/MnXkAnKJ9 - AJimgACUpX8AlaV2AK3RQAD7xQkJ/1YEBJIAAAAkAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCWLFCQn/xRwE8Ilp - AMbiwlfQ///////////ZwnXpgGMAw49uAK6LbACwhGYAu4JkAL6BYwC/gWMAv4JkAL6FZwC4kG8Aqp97 - AJrJmgCi2aQAqaR+AJalgACVpoAAlJ56AJvGYADnxQkJ/50HB9wAAABBAAAACwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAwwkJ4sUJCf+hTgDagGMAwPv14vX/////9vHe+ph1AM3nzXfd6dib6e3jvPTt4rv07eK79O3i - u/Tj05jv0rNL4YNlALyZdgCgpoAAlKaAAJSmgACUpoAAlKR/AJWzdQDB0RwA/8UJCf80AgJ5AAAAHQAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCWLFCQn/xBUC93xgAMb268Pr///////////KoyHZ//////// - /////////////////////////////+zhu/V9YADFlnQApKaAAJSmgACUpoAAlKaAAJSofQCe0kAA+sUJ - Cf+IBgbPAAAAPQAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxQkJ/8UJCf97XwDI7dJ71/// - ////////yqMh2f//////////////////////////////////////////e18Ax5VzAKWmgACUpoAAlKaA - AJSmgACUtnsAssUJCf/FCQn/FwEBhgAAACgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMUJ - Cf/FCQn/e18AyevRetj//////////8qjIdn//////////////////////////////////////////3tf - AMeVcwClpoAAlKaAAJSmgACUpoAAlLd8ALHFCQn/owgI5gAAAHcAAAAkAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADFCQn/xQkJ/4hcAM7pz3na///////////JoiHa//////////////////////// - //////////////////97XwDHlXMApaaAAJSmgACUpoAAlKaAAJS5fQCvxQkJ/6QICOUAAAB0AAAAIgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQkJ5MUJCf+VVwDU6c952///////////0rNL4f// - ////////////////////////////////////////e18Ax5VzAKWmgACUpoAAlKaAAJSmgACUpoAAlNEc - AP+lCAjjAAAAawAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwJCcjFCQn/lVcA0+nP - edr//////////9zDcuj//////////////////////////////////////////3tfAMeVcwClpoAAlKaA - AJSmgACUpoAAlKaAAJTSIwD/lAcH1AAAAGMAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC8CQnIxQkJ/5VXANTpz3na///////////cxHLn//////////////////////////////////////// - //97XwDHlXMApaaAAJSmgACUpoAAlKaAAJSmgACU0iMA/4EGBsMAAABeAAAAGAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAvAkJyMUJCf+UVwDV2a8jyv//////////3cRz5v////////////////// - ////////////////////////e18Ax5VzAKWmgACUpoAAlKaAAJSmgACUpoAAlNIjAP+EBga+AAAAVgAA - ABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL4JCcbFCQn/q0MA4teuI8z//////////86s - N9z//////////////////////////////////////////3tfAMeVcwClpoAAlKaAAJSmgACUpoAAlKaA - AJTFJwDnhwYGugAAAEoAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3CQmaxQkJ/6xD - AOHXriPM///////////IoiHb//////////////////////////////////////////97XwDHlXMApaaA - AJSmgACUpoAAlKaAAJSmgACUyEUA52QFBZ0AAABCAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAtAkJi8UJCf+sQwDh1q0jzf//////////17xe5P////////////////////////////////// - ////////e18Ax5VzAKWmgACUpoAAlKaAAJSmgACUpoAAlMlFAOdXBASPAAAAPAAAAAsAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAALQJCYvFCQn/q0MA4dSsI87//////////9/Gc+X///////////// - /////////////////////////////39iAMKUcgCmon0AmKN+AJelfwCVpoAAlKaAAJTGRgDgXAQEiAAA - ADIAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2CQmKxQkJ/7U1AOnQqSLS//////// - ///hyHTi//////////////////////////////////////////9/YgDBiWkAtI5tAK6PbwCrk3IAp5Z0 - AKOZdgCguEgA0kwEBHwAAAAnAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEsAgIj8UJ - Cf+9JQDxeFwAze3dre3fxnPl1psc5I1fANuTYADbomIA46JiAOShYgDkoWIA5KFiAOShYgDkj2EA1o9h - ANeOYADYeV4Ay3tfAMh9YQDEgWQAvq9KAN0AAAB6AAAAQgAAABYAAAAGAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAALAAAAKWIFBYDFCQn/xC8A+KxwAO+4awD4wmEA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wGAA/8Bg - AP/AYAD/wGAA/8BgAP/AYAD/wGAA/8BgAP+9YAD8sWEA8qFiAOSyWgDrAAAAoAAAAIUAAABaAAAAKgAA - AAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAHAAAALopoAKLCfQDr1F0A/816AP/BewD/u3AA/8NlAP/AYAD/wGAA/6JR - AOKiUQDiolEA4qJRAOKjUQDio1EA4qJRAOKyWQDxwGAA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wGAA/7BY - APR0OgDUAAAAmAAAAGMAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlXEAH+24AN3ttQD/4qYA/7R+AOmWYwDcjlUA2oxN - ANiGRADNf0AAwJVLAM2mUwDdplMA3aZTAN6mUwDdp1MA3KZTAN2mUwDdplMA3oNBALuDQgC7nU8A1n4/ - AMKaTQDcjUcA2bBYAPPAYAD/wGAA/51OAOoAAACCAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/HHIj/wQT0s3cA5p5U - AO2vWAD1wGAA/8BgAP/AYAD/xmcA6chpAOLNcwDPznMAzs50AM7OcgDO0X4Au893AMfNcwDNy3MAzstz - AM7JcADUxWgA58RlAO3AYAD/xWcA/75tAP+kZQDqnl4A6aZaAPHAYAD/AAAAhgAAACwAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC+bQBKxmcA/8BgAP/AYAD/wmIA+ctwCdvAhC26u5pQnsOfU5jIo1SVyaNSlMmkUZTKo0+UyqNOlMuk - TJTLo0uUzKRJlMyjSJTNo0aUzaJFlM6jQ5TOo0KUzKE/ld6IDbrOfADcu3QA/8B6AP/FgAD/uXcA9AAA - AG8AAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAu14Ac8BgAP/AYAD/wGAA/7V/QMiVjXy1nJSBraOZhKannYWjqp+GoKuf - hqCpnoShqp2CoaqegqCsoIGfrqCBnq6ff56tnXygrJx7oa2ceaGtnHihrp14n62cd6CqmXKkpZNtqsp+ - AOzBewD/xoEA/8iFAPUAAAA2AAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XQBCu14AtMBgAP/AYAD/4nEA3NWI - Ob3Bl2urp6ennKSkpJ6ioqKgoaGhoqCgoKKhoaGipKSkn6enp5ympqadoqKioaGhn6KgoJ+joaGfoq2e - jKXGjlW16oME08Z3APK9dgD/vHcA5rBzAKJ5UAA2AAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAuV0AQrZbAHayWQCJul0AxrhcAMfEYgDc4HAA3+BwAN/gcADf6HQA1+2EHb7wgA7F4HAA3uBw - AN/gcADf12sA57ZbAMm3XADJtVwArK1gAI6bXQBghVMALQAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA//+AAAAH////+AAAAAA///+AAAAAAAf//gAAAAAAAf/4AAAAAAAAf/AAAAAAAAA/8AAAAAAA - AB/gAAAAAAAAD+AAAAAAAAAP4AAAAAAAAA/gAAAAAAAAD+AAAAAAAAAP4AAAAAAAAA/gAAAAAAAAD+AA - AAAAAAAP4AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAf+AAAAAAAAB/4AAAAAAAAP/wAAAAAAAB//AAAAAAA - AH/+AAAAAAAA//4AAAAAAAD//wAAAAAAAf//AAAAAAAB//+AAAAAAAP//4AAAAAAA///wAAAAAAH///A - AAAAAA///+AAAAAAD///4AAAAAAf///wAAAAAB////AAAAAAP///+AAAAAA////4AAAAAH////wAAAAA - f////AAAAAD////+AAAAAf////8AAAAB/////wAAAAP/////gAAAA/////+AAAAH/////8AAAAf///// - wAAAD//////AAAAP/////8AAAA//////wAAAD//////AAAAP/////8AAAA//////wAAAD//////AAAAP - /////8AAAA//////wAAAD//////AAAAP/////4AAAAf////+AAAAA/////4AAAAD/////gAAAAP////+ - AAAAA/////4AAAAD/////gAAAAP/////AAAAA//////gAAAf//8= - - - \ No newline at end of file diff --git a/PROMS/Sync/Sync/Properties/Settings.Designer.cs b/PROMS/Sync/Sync/Properties/Settings.Designer.cs deleted file mode 100644 index 06191e8a..00000000 --- a/PROMS/Sync/Sync/Properties/Settings.Designer.cs +++ /dev/null @@ -1,107 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Sync.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string DevelopmentFolder { - get { - return ((string)(this["DevelopmentFolder"])); - } - set { - this["DevelopmentFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string SourceSafeFolder { - get { - return ((string)(this["SourceSafeFolder"])); - } - set { - this["SourceSafeFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MailBoxDevelopmentFolder { - get { - return ((string)(this["MailBoxDevelopmentFolder"])); - } - set { - this["MailBoxDevelopmentFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MailBoxSourceSafeFolder { - get { - return ((string)(this["MailBoxSourceSafeFolder"])); - } - set { - this["MailBoxSourceSafeFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Drawing.Point Location { - get { - return ((global::System.Drawing.Point)(this["Location"])); - } - set { - this["Location"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Drawing.Size Size { - get { - return ((global::System.Drawing.Size)(this["Size"])); - } - set { - this["Size"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Collections.Specialized.StringCollection Widths { - get { - return ((global::System.Collections.Specialized.StringCollection)(this["Widths"])); - } - set { - this["Widths"] = value; - } - } - } -} diff --git a/PROMS/Sync/Sync/Properties/Settings.settings b/PROMS/Sync/Sync/Properties/Settings.settings deleted file mode 100644 index 258fd349..00000000 --- a/PROMS/Sync/Sync/Properties/Settings.settings +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/Sync/Sync/Resources/iSync-128x128.png b/PROMS/Sync/Sync/Resources/iSync-128x128.png deleted file mode 100644 index b6293d16..00000000 Binary files a/PROMS/Sync/Sync/Resources/iSync-128x128.png and /dev/null differ diff --git a/PROMS/Sync/Sync/Resources/iSync.ico b/PROMS/Sync/Sync/Resources/iSync.ico deleted file mode 100644 index af4a5cb4..00000000 Binary files a/PROMS/Sync/Sync/Resources/iSync.ico and /dev/null differ diff --git a/PROMS/Sync/Sync/Resources/wi0124-16.ico b/PROMS/Sync/Sync/Resources/wi0124-16.ico deleted file mode 100644 index bdc5fedf..00000000 Binary files a/PROMS/Sync/Sync/Resources/wi0124-16.ico and /dev/null differ diff --git a/PROMS/Sync/Sync/Resources/wi0124-24.ico b/PROMS/Sync/Sync/Resources/wi0124-24.ico deleted file mode 100644 index d2d7b27c..00000000 Binary files a/PROMS/Sync/Sync/Resources/wi0124-24.ico and /dev/null differ diff --git a/PROMS/Sync/Sync/Resources/wi0124-32.ico b/PROMS/Sync/Sync/Resources/wi0124-32.ico deleted file mode 100644 index ef130ac0..00000000 Binary files a/PROMS/Sync/Sync/Resources/wi0124-32.ico and /dev/null differ diff --git a/PROMS/Sync/Sync/Resources/wi0124-48.ico b/PROMS/Sync/Sync/Resources/wi0124-48.ico deleted file mode 100644 index 9a475063..00000000 Binary files a/PROMS/Sync/Sync/Resources/wi0124-48.ico and /dev/null differ diff --git a/PROMS/Sync/Sync/Resources/wi0124-64.ico b/PROMS/Sync/Sync/Resources/wi0124-64.ico deleted file mode 100644 index 3cb97438..00000000 Binary files a/PROMS/Sync/Sync/Resources/wi0124-64.ico and /dev/null differ diff --git a/PROMS/Sync/Sync/SevenZipSharp.dll b/PROMS/Sync/Sync/SevenZipSharp.dll deleted file mode 100644 index f588f8a2..00000000 Binary files a/PROMS/Sync/Sync/SevenZipSharp.dll and /dev/null differ diff --git a/PROMS/Sync/Sync/Sync.csproj b/PROMS/Sync/Sync/Sync.csproj deleted file mode 100644 index 3deece84..00000000 --- a/PROMS/Sync/Sync/Sync.csproj +++ /dev/null @@ -1,121 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {400F2DAC-E405-4C1B-A388-5120FCF59DF0} - WinExe - Properties - Sync - Sync - Resources\iSync.ico - "%24/PROMS/Sync/Sync", KEEAAAAA - . - - - MSSCCI:Microsoft Visual SourceSafe - v2.0 - - - - - 2.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - - - - - - - - - - - - Form - - - frmSync.cs - - - - - Designer - frmSync.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/Sync/Sync/Sync.sln b/PROMS/Sync/Sync/Sync.sln deleted file mode 100644 index aa4d02a8..00000000 --- a/PROMS/Sync/Sync/Sync.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sync", "Sync\Sync.csproj", "{400F2DAC-E405-4C1B-A388-5120FCF59DF0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SyncMany", "SyncMany\SyncMany.csproj", "{256A41AF-440F-42FE-A9B1-2CE36F1261A2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.Build.0 = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/Sync/Sync/Upgrade Sync.sln b/PROMS/Sync/Sync/Upgrade Sync.sln deleted file mode 100644 index 7446513b..00000000 --- a/PROMS/Sync/Sync/Upgrade Sync.sln +++ /dev/null @@ -1,37 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sync", "Sync\Sync.csproj", "{400F2DAC-E405-4C1B-A388-5120FCF59DF0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SyncMany", "SyncMany\SyncMany.csproj", "{256A41AF-440F-42FE-A9B1-2CE36F1261A2}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 3 - SccProjectUniqueName0 = Sync\\Sync.csproj - SccLocalPath0 = Sync - SccProjectUniqueName1 = SyncMany\\SyncMany.csproj - SccProjectName1 = \u0022$/PROMS/Sync/SyncMany\u0022,\u0020LEEAAAAA - SccLocalPath1 = SyncMany - SccLocalPath2 = . - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.Build.0 = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/Sync/Sync/app.config b/PROMS/Sync/Sync/app.config deleted file mode 100644 index 6787e77e..00000000 --- a/PROMS/Sync/Sync/app.config +++ /dev/null @@ -1,24 +0,0 @@ - - - - -
    - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/Sync/Sync/frmSync.Designer.cs b/PROMS/Sync/Sync/frmSync.Designer.cs deleted file mode 100644 index c564aa3d..00000000 --- a/PROMS/Sync/Sync/frmSync.Designer.cs +++ /dev/null @@ -1,511 +0,0 @@ -namespace Sync -{ - partial class frmSync - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmSync)); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnBrwsSSMail = new System.Windows.Forms.Button(); - this.tbSSMailBox = new System.Windows.Forms.TextBox(); - this.label4 = new System.Windows.Forms.Label(); - this.btnBrwsMail = new System.Windows.Forms.Button(); - this.tbMailBox = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.btnBrwsSS = new System.Windows.Forms.Button(); - this.tbSourceSafe = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.btnBrwsDev = new System.Windows.Forms.Button(); - this.tbDevelopment = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.cms = new System.Windows.Forms.ContextMenuStrip(this.components); - this.compareToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.compareSourceSafeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.compareMailboxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.selectNoneToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.mailboxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.clearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.buildToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.checkedOutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.differentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.contentDifferentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.differentAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.sourceSafeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreUnchangedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreSelectedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreReadOnlyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.listToClipboardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.cms.SuspendLayout(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Controls.Add(this.btnBrwsSSMail); - this.panel1.Controls.Add(this.tbSSMailBox); - this.panel1.Controls.Add(this.label4); - this.panel1.Controls.Add(this.btnBrwsMail); - this.panel1.Controls.Add(this.tbMailBox); - this.panel1.Controls.Add(this.label3); - this.panel1.Controls.Add(this.btnBrwsSS); - this.panel1.Controls.Add(this.tbSourceSafe); - this.panel1.Controls.Add(this.label2); - this.panel1.Controls.Add(this.btnBrwsDev); - this.panel1.Controls.Add(this.tbDevelopment); - this.panel1.Controls.Add(this.label1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 24); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(759, 117); - this.panel1.TabIndex = 1; - // - // btnBrwsSSMail - // - this.btnBrwsSSMail.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsSSMail.Location = new System.Drawing.Point(672, 86); - this.btnBrwsSSMail.Name = "btnBrwsSSMail"; - this.btnBrwsSSMail.Size = new System.Drawing.Size(75, 23); - this.btnBrwsSSMail.TabIndex = 14; - this.btnBrwsSSMail.Text = "Browse..."; - this.btnBrwsSSMail.UseVisualStyleBackColor = true; - this.btnBrwsSSMail.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbSSMailBox - // - this.tbSSMailBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSSMailBox.Location = new System.Drawing.Point(120, 88); - this.tbSSMailBox.Name = "tbSSMailBox"; - this.tbSSMailBox.Size = new System.Drawing.Size(546, 20); - this.tbSSMailBox.TabIndex = 13; - this.tbSSMailBox.Text = "E:\\Mailbox\\SourceSafe\\Proms"; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(12, 91); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(92, 13); - this.label4.TabIndex = 12; - this.label4.Text = "SS Mailbox Folder"; - // - // btnBrwsMail - // - this.btnBrwsMail.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsMail.Location = new System.Drawing.Point(672, 60); - this.btnBrwsMail.Name = "btnBrwsMail"; - this.btnBrwsMail.Size = new System.Drawing.Size(75, 23); - this.btnBrwsMail.TabIndex = 8; - this.btnBrwsMail.Text = "Browse..."; - this.btnBrwsMail.UseVisualStyleBackColor = true; - this.btnBrwsMail.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbMailBox - // - this.tbMailBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbMailBox.Location = new System.Drawing.Point(120, 62); - this.tbMailBox.Name = "tbMailBox"; - this.tbMailBox.Size = new System.Drawing.Size(546, 20); - this.tbMailBox.TabIndex = 7; - this.tbMailBox.Text = "E:\\Mailbox\\Proms"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(12, 65); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(75, 13); - this.label3.TabIndex = 6; - this.label3.Text = "Mailbox Folder"; - // - // btnBrwsSS - // - this.btnBrwsSS.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsSS.Location = new System.Drawing.Point(672, 34); - this.btnBrwsSS.Name = "btnBrwsSS"; - this.btnBrwsSS.Size = new System.Drawing.Size(75, 23); - this.btnBrwsSS.TabIndex = 5; - this.btnBrwsSS.Text = "Browse..."; - this.btnBrwsSS.UseVisualStyleBackColor = true; - this.btnBrwsSS.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbSourceSafe - // - this.tbSourceSafe.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSourceSafe.Location = new System.Drawing.Point(120, 36); - this.tbSourceSafe.Name = "tbSourceSafe"; - this.tbSourceSafe.Size = new System.Drawing.Size(546, 20); - this.tbSourceSafe.TabIndex = 4; - this.tbSourceSafe.Text = "E:\\SourceSafe\\Proms"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 39); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(98, 13); - this.label2.TabIndex = 3; - this.label2.Text = "Source Safe Folder"; - // - // btnBrwsDev - // - this.btnBrwsDev.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsDev.Location = new System.Drawing.Point(672, 8); - this.btnBrwsDev.Name = "btnBrwsDev"; - this.btnBrwsDev.Size = new System.Drawing.Size(75, 23); - this.btnBrwsDev.TabIndex = 2; - this.btnBrwsDev.Text = "Browse..."; - this.btnBrwsDev.UseVisualStyleBackColor = true; - this.btnBrwsDev.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbDevelopment - // - this.tbDevelopment.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbDevelopment.Location = new System.Drawing.Point(120, 10); - this.tbDevelopment.Name = "tbDevelopment"; - this.tbDevelopment.Size = new System.Drawing.Size(546, 20); - this.tbDevelopment.TabIndex = 1; - this.tbDevelopment.Text = "E:\\Proms"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 13); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(102, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Development Folder"; - // - // dgv - // - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.ContextMenuStrip = this.cms; - this.dgv.Dock = System.Windows.Forms.DockStyle.Fill; - this.dgv.Location = new System.Drawing.Point(0, 141); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(759, 283); - this.dgv.TabIndex = 2; - this.dgv.ColumnHeaderMouseClick += dgv_ColumnHeaderMouseClick; - this.dgv.ColumnWidthChanged += new System.Windows.Forms.DataGridViewColumnEventHandler(this.dgv_ColumnWidthChanged); - this.dgv.MouseDown += new System.Windows.Forms.MouseEventHandler(this.dgv_MouseDown); - // - // cms - // - this.cms.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.compareToolStripMenuItem, - this.compareSourceSafeToolStripMenuItem, - this.compareMailboxToolStripMenuItem, - this.restoreToolStripMenuItem}); - this.cms.Name = "cms"; - this.cms.Size = new System.Drawing.Size(188, 92); - // - // compareToolStripMenuItem - // - this.compareToolStripMenuItem.Name = "compareToolStripMenuItem"; - this.compareToolStripMenuItem.Size = new System.Drawing.Size(187, 22); - this.compareToolStripMenuItem.Text = "Compare"; - this.compareToolStripMenuItem.Click += new System.EventHandler(this.compareToolStripMenuItem_Click); - // - // compareSourceSafeToolStripMenuItem - // - this.compareSourceSafeToolStripMenuItem.Name = "compareSourceSafeToolStripMenuItem"; - this.compareSourceSafeToolStripMenuItem.Size = new System.Drawing.Size(187, 22); - this.compareSourceSafeToolStripMenuItem.Text = "Compare Source Safe"; - this.compareSourceSafeToolStripMenuItem.Click += new System.EventHandler(this.compareSourceSafeToolStripMenuItem_Click); - // - // compareMailboxToolStripMenuItem - // - this.compareMailboxToolStripMenuItem.Name = "compareMailboxToolStripMenuItem"; - this.compareMailboxToolStripMenuItem.Size = new System.Drawing.Size(187, 22); - this.compareMailboxToolStripMenuItem.Text = "Compare Mailbox"; - this.compareMailboxToolStripMenuItem.Click += new System.EventHandler(this.compareMailboxToolStripMenuItem_Click); - // - // restoreToolStripMenuItem - // - this.restoreToolStripMenuItem.Name = "restoreToolStripMenuItem"; - this.restoreToolStripMenuItem.Size = new System.Drawing.Size(187, 22); - this.restoreToolStripMenuItem.Text = "Restore"; - this.restoreToolStripMenuItem.Click += new System.EventHandler(this.restoreToolStripMenuItem_Click); - // - // statusStrip1 - // - this.statusStrip1.Location = new System.Drawing.Point(0, 424); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(759, 22); - this.statusStrip1.TabIndex = 3; - this.statusStrip1.Text = "statusStrip1"; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.editToolStripMenuItem, - this.mailboxToolStripMenuItem, - this.findToolStripMenuItem, - this.sourceSafeToolStripMenuItem, - this.listToClipboardToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(759, 24); - this.menuStrip1.TabIndex = 4; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // editToolStripMenuItem - // - this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.selectAllToolStripMenuItem, - this.selectNoneToolStripMenuItem}); - this.editToolStripMenuItem.Name = "editToolStripMenuItem"; - this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20); - this.editToolStripMenuItem.Text = "&Edit"; - // - // selectAllToolStripMenuItem - // - this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem"; - this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(137, 22); - this.selectAllToolStripMenuItem.Text = "Select All"; - this.selectAllToolStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click); - // - // selectNoneToolStripMenuItem - // - this.selectNoneToolStripMenuItem.Name = "selectNoneToolStripMenuItem"; - this.selectNoneToolStripMenuItem.Size = new System.Drawing.Size(137, 22); - this.selectNoneToolStripMenuItem.Text = "Select None"; - this.selectNoneToolStripMenuItem.Click += new System.EventHandler(this.selectNoneToolStripMenuItem_Click); - // - // mailboxToolStripMenuItem - // - this.mailboxToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.clearToolStripMenuItem, - this.buildToolStripMenuItem}); - this.mailboxToolStripMenuItem.Name = "mailboxToolStripMenuItem"; - this.mailboxToolStripMenuItem.Size = new System.Drawing.Size(61, 20); - this.mailboxToolStripMenuItem.Text = "Mailbox"; - // - // clearToolStripMenuItem - // - this.clearToolStripMenuItem.Name = "clearToolStripMenuItem"; - this.clearToolStripMenuItem.Size = new System.Drawing.Size(101, 22); - this.clearToolStripMenuItem.Text = "Clear"; - this.clearToolStripMenuItem.Click += new System.EventHandler(this.clearToolStripMenuItem_Click); - // - // buildToolStripMenuItem - // - this.buildToolStripMenuItem.Name = "buildToolStripMenuItem"; - this.buildToolStripMenuItem.Size = new System.Drawing.Size(101, 22); - this.buildToolStripMenuItem.Text = "Build"; - this.buildToolStripMenuItem.Click += new System.EventHandler(this.buildToolStripMenuItem_Click); - // - // findToolStripMenuItem - // - this.findToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.checkedOutToolStripMenuItem, - this.differentToolStripMenuItem, - this.contentDifferentToolStripMenuItem, - this.differentAllToolStripMenuItem}); - this.findToolStripMenuItem.Name = "findToolStripMenuItem"; - this.findToolStripMenuItem.Size = new System.Drawing.Size(42, 20); - this.findToolStripMenuItem.Text = "Find"; - // - // checkedOutToolStripMenuItem - // - this.checkedOutToolStripMenuItem.Name = "checkedOutToolStripMenuItem"; - this.checkedOutToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.checkedOutToolStripMenuItem.Text = "Checked-Out"; - this.checkedOutToolStripMenuItem.Click += new System.EventHandler(this.checkedOutToolStripMenuItem_Click); - // - // differentToolStripMenuItem - // - this.differentToolStripMenuItem.Name = "differentToolStripMenuItem"; - this.differentToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.differentToolStripMenuItem.Text = "Different"; - this.differentToolStripMenuItem.Click += new System.EventHandler(this.differentToolStripMenuItem_Click); - // - // contentDifferentToolStripMenuItem - // - this.contentDifferentToolStripMenuItem.Name = "contentDifferentToolStripMenuItem"; - this.contentDifferentToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.contentDifferentToolStripMenuItem.Text = "Content Different"; - this.contentDifferentToolStripMenuItem.Click += new System.EventHandler(this.contentDifferentToolStripMenuItem_Click); - // - // differentAllToolStripMenuItem - // - this.differentAllToolStripMenuItem.Name = "differentAllToolStripMenuItem"; - this.differentAllToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.differentAllToolStripMenuItem.Text = "DifferentAll"; - this.differentAllToolStripMenuItem.Click += new System.EventHandler(this.differentAllToolStripMenuItem_Click); - // - // sourceSafeToolStripMenuItem - // - this.sourceSafeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.restoreUnchangedToolStripMenuItem, - this.restoreSelectedToolStripMenuItem, - this.restoreAllToolStripMenuItem, - this.restoreReadOnlyToolStripMenuItem}); - this.sourceSafeToolStripMenuItem.Name = "sourceSafeToolStripMenuItem"; - this.sourceSafeToolStripMenuItem.Size = new System.Drawing.Size(80, 20); - this.sourceSafeToolStripMenuItem.Text = "Source Safe"; - // - // restoreUnchangedToolStripMenuItem - // - this.restoreUnchangedToolStripMenuItem.Name = "restoreUnchangedToolStripMenuItem"; - this.restoreUnchangedToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreUnchangedToolStripMenuItem.Text = "Restore Unchanged"; - this.restoreUnchangedToolStripMenuItem.Click += new System.EventHandler(this.restoreUnchangedToolStripMenuItem_Click); - // - // restoreSelectedToolStripMenuItem - // - this.restoreSelectedToolStripMenuItem.Name = "restoreSelectedToolStripMenuItem"; - this.restoreSelectedToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreSelectedToolStripMenuItem.Text = "Restore Selected (To Process)"; - this.restoreSelectedToolStripMenuItem.Click += new System.EventHandler(this.restoreSelectedToolStripMenuItem_Click); - // - // restoreAllToolStripMenuItem - // - this.restoreAllToolStripMenuItem.Name = "restoreAllToolStripMenuItem"; - this.restoreAllToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreAllToolStripMenuItem.Text = "Restore All"; - this.restoreAllToolStripMenuItem.Click += new System.EventHandler(this.restoreAllToolStripMenuItem_Click); - // - // restoreReadOnlyToolStripMenuItem - // - this.restoreReadOnlyToolStripMenuItem.Name = "restoreReadOnlyToolStripMenuItem"; - this.restoreReadOnlyToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreReadOnlyToolStripMenuItem.Text = "Restore Read Only"; - this.restoreReadOnlyToolStripMenuItem.Click += new System.EventHandler(this.restoreReadOnlyToolStripMenuItem_Click); - // - // listToClipboardToolStripMenuItem - // - this.listToClipboardToolStripMenuItem.Name = "listToClipboardToolStripMenuItem"; - this.listToClipboardToolStripMenuItem.Size = new System.Drawing.Size(103, 20); - this.listToClipboardToolStripMenuItem.Text = "List toClipboard"; - this.listToClipboardToolStripMenuItem.Click += new System.EventHandler(this.listToClipboardToolStripMenuItem_Click); - // - // frmSync - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(759, 446); - this.Controls.Add(this.dgv); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmSync"; - this.Text = "Volian Sync"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmSync_FormClosing); - this.Load += new System.EventHandler(this.frmSync_Load); - this.LocationChanged += new System.EventHandler(this.frmSync_LocationChanged); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.cms.ResumeLayout(false); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnBrwsDev; - private System.Windows.Forms.TextBox tbDevelopment; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnBrwsMail; - private System.Windows.Forms.TextBox tbMailBox; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Button btnBrwsSS; - private System.Windows.Forms.TextBox tbSourceSafe; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.Button btnBrwsSSMail; - private System.Windows.Forms.TextBox tbSSMailBox; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem mailboxToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem clearToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem buildToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem findToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem checkedOutToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem differentToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem sourceSafeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreUnchangedToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreSelectedToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreAllToolStripMenuItem; - private System.Windows.Forms.ContextMenuStrip cms; - private System.Windows.Forms.ToolStripMenuItem compareToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem contentDifferentToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreReadOnlyToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem listToClipboardToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem selectAllToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem selectNoneToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem compareSourceSafeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem compareMailboxToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem differentAllToolStripMenuItem; - } -} - diff --git a/PROMS/Sync/Sync/frmSync.Designer.cs.bak b/PROMS/Sync/Sync/frmSync.Designer.cs.bak deleted file mode 100644 index 11723591..00000000 --- a/PROMS/Sync/Sync/frmSync.Designer.cs.bak +++ /dev/null @@ -1,430 +0,0 @@ -namespace Sync -{ - partial class frmSync - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmSync)); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnBrwsSSMail = new System.Windows.Forms.Button(); - this.tbSSMailBox = new System.Windows.Forms.TextBox(); - this.label4 = new System.Windows.Forms.Label(); - this.btnBrwsMail = new System.Windows.Forms.Button(); - this.tbMailBox = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.btnBrwsSS = new System.Windows.Forms.Button(); - this.tbSourceSafe = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.btnBrwsDev = new System.Windows.Forms.Button(); - this.tbDevelopment = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.cms = new System.Windows.Forms.ContextMenuStrip(this.components); - this.compareToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.mailboxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.clearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.buildToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.checkedOutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.differentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.contentDifferentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.sourceSafeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreUnchangedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreSelectedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.cms.SuspendLayout(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Controls.Add(this.btnBrwsSSMail); - this.panel1.Controls.Add(this.tbSSMailBox); - this.panel1.Controls.Add(this.label4); - this.panel1.Controls.Add(this.btnBrwsMail); - this.panel1.Controls.Add(this.tbMailBox); - this.panel1.Controls.Add(this.label3); - this.panel1.Controls.Add(this.btnBrwsSS); - this.panel1.Controls.Add(this.tbSourceSafe); - this.panel1.Controls.Add(this.label2); - this.panel1.Controls.Add(this.btnBrwsDev); - this.panel1.Controls.Add(this.tbDevelopment); - this.panel1.Controls.Add(this.label1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 24); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(759, 117); - this.panel1.TabIndex = 1; - // - // btnBrwsSSMail - // - this.btnBrwsSSMail.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsSSMail.Location = new System.Drawing.Point(672, 86); - this.btnBrwsSSMail.Name = "btnBrwsSSMail"; - this.btnBrwsSSMail.Size = new System.Drawing.Size(75, 23); - this.btnBrwsSSMail.TabIndex = 14; - this.btnBrwsSSMail.Text = "Browse..."; - this.btnBrwsSSMail.UseVisualStyleBackColor = true; - this.btnBrwsSSMail.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbSSMailBox - // - this.tbSSMailBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSSMailBox.Location = new System.Drawing.Point(120, 88); - this.tbSSMailBox.Name = "tbSSMailBox"; - this.tbSSMailBox.Size = new System.Drawing.Size(546, 20); - this.tbSSMailBox.TabIndex = 13; - this.tbSSMailBox.Text = "E:\\Mailbox\\SourceSafe\\Proms"; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(12, 91); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(92, 13); - this.label4.TabIndex = 12; - this.label4.Text = "SS Mailbox Folder"; - // - // btnBrwsMail - // - this.btnBrwsMail.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsMail.Location = new System.Drawing.Point(672, 60); - this.btnBrwsMail.Name = "btnBrwsMail"; - this.btnBrwsMail.Size = new System.Drawing.Size(75, 23); - this.btnBrwsMail.TabIndex = 8; - this.btnBrwsMail.Text = "Browse..."; - this.btnBrwsMail.UseVisualStyleBackColor = true; - this.btnBrwsMail.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbMailBox - // - this.tbMailBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbMailBox.Location = new System.Drawing.Point(120, 62); - this.tbMailBox.Name = "tbMailBox"; - this.tbMailBox.Size = new System.Drawing.Size(546, 20); - this.tbMailBox.TabIndex = 7; - this.tbMailBox.Text = "E:\\Mailbox\\Proms"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(12, 65); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(75, 13); - this.label3.TabIndex = 6; - this.label3.Text = "Mailbox Folder"; - // - // btnBrwsSS - // - this.btnBrwsSS.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsSS.Location = new System.Drawing.Point(672, 34); - this.btnBrwsSS.Name = "btnBrwsSS"; - this.btnBrwsSS.Size = new System.Drawing.Size(75, 23); - this.btnBrwsSS.TabIndex = 5; - this.btnBrwsSS.Text = "Browse..."; - this.btnBrwsSS.UseVisualStyleBackColor = true; - this.btnBrwsSS.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbSourceSafe - // - this.tbSourceSafe.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSourceSafe.Location = new System.Drawing.Point(120, 36); - this.tbSourceSafe.Name = "tbSourceSafe"; - this.tbSourceSafe.Size = new System.Drawing.Size(546, 20); - this.tbSourceSafe.TabIndex = 4; - this.tbSourceSafe.Text = "E:\\SourceSafe\\Proms"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 39); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(98, 13); - this.label2.TabIndex = 3; - this.label2.Text = "Source Safe Folder"; - // - // btnBrwsDev - // - this.btnBrwsDev.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsDev.Location = new System.Drawing.Point(672, 8); - this.btnBrwsDev.Name = "btnBrwsDev"; - this.btnBrwsDev.Size = new System.Drawing.Size(75, 23); - this.btnBrwsDev.TabIndex = 2; - this.btnBrwsDev.Text = "Browse..."; - this.btnBrwsDev.UseVisualStyleBackColor = true; - this.btnBrwsDev.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbDevelopment - // - this.tbDevelopment.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbDevelopment.Location = new System.Drawing.Point(120, 10); - this.tbDevelopment.Name = "tbDevelopment"; - this.tbDevelopment.Size = new System.Drawing.Size(546, 20); - this.tbDevelopment.TabIndex = 1; - this.tbDevelopment.Text = "E:\\Proms"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 13); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(102, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Development Folder"; - // - // dgv - // - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.ContextMenuStrip = this.cms; - this.dgv.Dock = System.Windows.Forms.DockStyle.Fill; - this.dgv.Location = new System.Drawing.Point(0, 141); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(759, 283); - this.dgv.TabIndex = 2; - this.dgv.ColumnWidthChanged += new System.Windows.Forms.DataGridViewColumnEventHandler(this.dgv_ColumnWidthChanged); - // - // cms - // - this.cms.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.compareToolStripMenuItem, - this.restoreToolStripMenuItem}); - this.cms.Name = "cms"; - this.cms.Size = new System.Drawing.Size(124, 48); - // - // compareToolStripMenuItem - // - this.compareToolStripMenuItem.Name = "compareToolStripMenuItem"; - this.compareToolStripMenuItem.Size = new System.Drawing.Size(123, 22); - this.compareToolStripMenuItem.Text = "Compare"; - this.compareToolStripMenuItem.Click += new System.EventHandler(this.compareToolStripMenuItem_Click); - // - // restoreToolStripMenuItem - // - this.restoreToolStripMenuItem.Name = "restoreToolStripMenuItem"; - this.restoreToolStripMenuItem.Size = new System.Drawing.Size(123, 22); - this.restoreToolStripMenuItem.Text = "Restore"; - this.restoreToolStripMenuItem.Click += new System.EventHandler(this.restoreToolStripMenuItem_Click); - // - // statusStrip1 - // - this.statusStrip1.Location = new System.Drawing.Point(0, 424); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(759, 22); - this.statusStrip1.TabIndex = 3; - this.statusStrip1.Text = "statusStrip1"; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.mailboxToolStripMenuItem, - this.findToolStripMenuItem, - this.sourceSafeToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(759, 24); - this.menuStrip1.TabIndex = 4; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // mailboxToolStripMenuItem - // - this.mailboxToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.clearToolStripMenuItem, - this.buildToolStripMenuItem}); - this.mailboxToolStripMenuItem.Name = "mailboxToolStripMenuItem"; - this.mailboxToolStripMenuItem.Size = new System.Drawing.Size(61, 20); - this.mailboxToolStripMenuItem.Text = "Mailbox"; - // - // clearToolStripMenuItem - // - this.clearToolStripMenuItem.Name = "clearToolStripMenuItem"; - this.clearToolStripMenuItem.Size = new System.Drawing.Size(101, 22); - this.clearToolStripMenuItem.Text = "Clear"; - this.clearToolStripMenuItem.Click += new System.EventHandler(this.clearToolStripMenuItem_Click); - // - // buildToolStripMenuItem - // - this.buildToolStripMenuItem.Name = "buildToolStripMenuItem"; - this.buildToolStripMenuItem.Size = new System.Drawing.Size(101, 22); - this.buildToolStripMenuItem.Text = "Build"; - this.buildToolStripMenuItem.Click += new System.EventHandler(this.buildToolStripMenuItem_Click); - // - // findToolStripMenuItem - // - this.findToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.checkedOutToolStripMenuItem, - this.differentToolStripMenuItem, - this.contentDifferentToolStripMenuItem}); - this.findToolStripMenuItem.Name = "findToolStripMenuItem"; - this.findToolStripMenuItem.Size = new System.Drawing.Size(42, 20); - this.findToolStripMenuItem.Text = "Find"; - // - // checkedOutToolStripMenuItem - // - this.checkedOutToolStripMenuItem.Name = "checkedOutToolStripMenuItem"; - this.checkedOutToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.checkedOutToolStripMenuItem.Text = "Checked-Out"; - this.checkedOutToolStripMenuItem.Click += new System.EventHandler(this.checkedOutToolStripMenuItem_Click); - // - // differentToolStripMenuItem - // - this.differentToolStripMenuItem.Name = "differentToolStripMenuItem"; - this.differentToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.differentToolStripMenuItem.Text = "Different"; - this.differentToolStripMenuItem.Click += new System.EventHandler(this.differentToolStripMenuItem_Click); - // - // contentDifferentToolStripMenuItem - // - this.contentDifferentToolStripMenuItem.Name = "contentDifferentToolStripMenuItem"; - this.contentDifferentToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.contentDifferentToolStripMenuItem.Text = "Content Different"; - this.contentDifferentToolStripMenuItem.Click += new System.EventHandler(this.contentDifferentToolStripMenuItem_Click); - // - // sourceSafeToolStripMenuItem - // - this.sourceSafeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.restoreUnchangedToolStripMenuItem, - this.restoreSelectedToolStripMenuItem, - this.restoreAllToolStripMenuItem}); - this.sourceSafeToolStripMenuItem.Name = "sourceSafeToolStripMenuItem"; - this.sourceSafeToolStripMenuItem.Size = new System.Drawing.Size(80, 20); - this.sourceSafeToolStripMenuItem.Text = "Source Safe"; - // - // restoreUnchangedToolStripMenuItem - // - this.restoreUnchangedToolStripMenuItem.Name = "restoreUnchangedToolStripMenuItem"; - this.restoreUnchangedToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreUnchangedToolStripMenuItem.Text = "Restore Unchanged"; - this.restoreUnchangedToolStripMenuItem.Click += new System.EventHandler(this.restoreUnchangedToolStripMenuItem_Click); - // - // restoreSelectedToolStripMenuItem - // - this.restoreSelectedToolStripMenuItem.Name = "restoreSelectedToolStripMenuItem"; - this.restoreSelectedToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreSelectedToolStripMenuItem.Text = "Restore Selected (To Process)"; - this.restoreSelectedToolStripMenuItem.Click += new System.EventHandler(this.restoreSelectedToolStripMenuItem_Click); - // - // restoreAllToolStripMenuItem - // - this.restoreAllToolStripMenuItem.Name = "restoreAllToolStripMenuItem"; - this.restoreAllToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreAllToolStripMenuItem.Text = "Restore All"; - this.restoreAllToolStripMenuItem.Click += new System.EventHandler(this.restoreAllToolStripMenuItem_Click); - // - // frmSync - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(759, 446); - this.Controls.Add(this.dgv); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmSync"; - this.Text = "Volian Sync"; - this.Load += new System.EventHandler(this.frmSync_Load); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmSync_FormClosing); - this.LocationChanged += new System.EventHandler(this.frmSync_LocationChanged); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.cms.ResumeLayout(false); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnBrwsDev; - private System.Windows.Forms.TextBox tbDevelopment; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnBrwsMail; - private System.Windows.Forms.TextBox tbMailBox; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Button btnBrwsSS; - private System.Windows.Forms.TextBox tbSourceSafe; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.Button btnBrwsSSMail; - private System.Windows.Forms.TextBox tbSSMailBox; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem mailboxToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem clearToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem buildToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem findToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem checkedOutToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem differentToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem sourceSafeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreUnchangedToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreSelectedToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreAllToolStripMenuItem; - private System.Windows.Forms.ContextMenuStrip cms; - private System.Windows.Forms.ToolStripMenuItem compareToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem contentDifferentToolStripMenuItem; - } -} - diff --git a/PROMS/Sync/Sync/frmSync.cs b/PROMS/Sync/Sync/frmSync.cs deleted file mode 100644 index 995fc7bf..00000000 --- a/PROMS/Sync/Sync/frmSync.cs +++ /dev/null @@ -1,774 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using SevenZip; - -namespace Sync -{ - public partial class frmSync : Form - { - private List _CheckedOut; - private bool IsLoading = false; - private float _DPI=100; - public frmSync() - { - InitializeComponent(); - using (Graphics gr = CreateGraphics()) - _DPI = gr.DpiX; - } - private void LoadSettings() - { - if (Properties.Settings.Default["Location"] != null) - Location = Properties.Settings.Default.Location; - if (Properties.Settings.Default["Size"] != null) - Size = Properties.Settings.Default.Size; - if (Properties.Settings.Default.DevelopmentFolder != "") - tbDevelopment.Text = Properties.Settings.Default.DevelopmentFolder; - if (Properties.Settings.Default.SourceSafeFolder != "") - tbSourceSafe.Text = Properties.Settings.Default.SourceSafeFolder; - if(Properties.Settings.Default.MailBoxDevelopmentFolder != "") - tbMailBox.Text = Properties.Settings.Default.MailBoxDevelopmentFolder; - if (Properties.Settings.Default.MailBoxSourceSafeFolder != "") - tbSSMailBox.Text = Properties.Settings.Default.MailBoxSourceSafeFolder; - } - private void frmSync_Load(object sender, EventArgs e) - { - LoadSettings(); - Setup(); - } - private void Setup() - { - // Setup Browse Buttons - btnBrwsDev.Tag = this.tbDevelopment; - btnBrwsSS.Tag = this.tbSourceSafe; - btnBrwsMail.Tag = this.tbMailBox; - btnBrwsSSMail.Tag = this.tbSSMailBox; - - } - private void btnBrowse_Click(object sender, EventArgs e) - { - TextBox tb = (TextBox)((Button)sender).Tag; - fbd.SelectedPath = tb.Text; - if (fbd.ShowDialog() == DialogResult.OK) - tb.Text = fbd.SelectedPath; - } - private void ClearResults() - { - _CheckedOut = new List(); - dgv.DataSource = null; - Application.DoEvents(); - } - private void FindCheckedOut(DirectoryInfo di) - { - FindCheckedOut(di.GetFiles()); - FindCheckedOut(di.GetDirectories()); - } - private void FindCheckedOut(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindCheckedOut(di); - } - private void FindCheckedOut(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindCheckedOut(fi); - } - private void FindCheckedOut(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (fi.Name.ToLower().EndsWith("sln")) return; - if (fi.Name.ToLower().EndsWith("config")) return; // exclude app.config - if (fi.Name.ToLower().EndsWith("dll")) return; // exclude dll's - if (fi.Name.ToLower().EndsWith("7z")) return; // exclude 7-zips - - if (fi.Name.ToLower().EndsWith("csproj")) - { - // Find files that have been added to the new Project - List compileList = GetCompileList(fi.FullName); - FileInfo fi1csproj = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if (fi1csproj.Exists) - { - List compileList1 = GetCompileList(fi1csproj.FullName); - CompareLists(compileList, compileList1, fi, fi1csproj); - } - return; - } - if (fi.Name.ToLower().EndsWith("licx")) return; - FileInfo fi1 = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if ((fi1.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly) - AddToResults(fi, fi1); - } - - private void CompareLists(List compileList, List compileList1, FileInfo fi, FileInfo fi1) - { - // If anything is in compileList1 and not in CompileList add it to the results - foreach (string filename in compileList1) - if (!compileList.Contains(filename)) - AddToResults(fi, fi1, filename); - } - private void AddToResults(FileInfo fi, FileInfo fi1, string filename) - { - FileInfo newfi = new FileInfo(fi.DirectoryName + "/" + filename); - FileInfo newfi1 = new FileInfo(fi1.DirectoryName + "/" + filename); - if(!newfi.Exists)AddToResults(newfi, newfi1); // Only add if the file does not exist - } - private List GetCompileList(string fileName) - { - List retval = new List(); - XmlDocument doc = new XmlDocument(); - doc.Load(fileName); - XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); - foreach (XmlAttribute attrib in doc.DocumentElement.Attributes) - if (attrib.Name == "xmlns") - nsmgr.AddNamespace("ns", attrib.Value); - XmlNodeList xl = doc.DocumentElement.SelectNodes(@"//ns:Compile/@Include",nsmgr); - foreach (XmlAttribute xa in xl) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:Content/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - { - if (xa.Value.ToUpper().EndsWith("DLL")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().EndsWith("XML")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().EndsWith("SVG")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().EndsWith("BAS")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().EndsWith("XSL")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().Contains("EULA")) - retval.Add(xa.Value); - } - xl = doc.DocumentElement.SelectNodes(@"//ns:EmbeddedResource/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - if (!xa.Value.ToUpper().EndsWith("LICX")) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:None/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - { - if(xa.Value.ToUpper().EndsWith("SQL")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().EndsWith("FRM")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().EndsWith("FRX")) - retval.Add(xa.Value); - } - return retval; - } - private void AddToResults(FileInfo fiSS,FileInfo fiDev) - { - FileCompare fc = new FileCompare(fiDev, fiSS); - FileInfo fiMB = new FileInfo(fc.FileName.Replace(tbDevelopment.Text, tbSSMailBox.Text)); - if (fiMB.Exists && fiSS.LastWriteTimeUtc != fiMB.LastWriteTimeUtc) - fc.Merge = true; - //if(!_OnlyContentDifferent || (fc.Different && (fc.DevModified != null))) - if (!_OnlyContentDifferent || (fc.Different)) - _CheckedOut.Add(fc); - //if (tbResults.Text == "") tbResults.Text = "Found:"; - //tbResults.Text += "\r\n" + fiDev.FullName + " - " + ((fiDev.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly ? "" : "ReadOnly"); - } - private void ClearMailBox() - { - DeleteFolder(new DirectoryInfo(tbMailBox.Text)); - DeleteFolder(new DirectoryInfo(tbSSMailBox.Text)); - } - private void DeleteFolder(DirectoryInfo directoryInfo) - { - if (directoryInfo.Exists) - { - AdjustAttributes(directoryInfo); - directoryInfo.Delete(true); - } - } - private void AdjustAttributes(DirectoryInfo directoryInfo) - { - foreach (DirectoryInfo di in directoryInfo.GetDirectories()) - AdjustAttributes(di); - foreach (FileInfo fi in directoryInfo.GetFiles()) - AdjustAttribute(fi); - } - private void AdjustAttribute(FileInfo fi) - { - fi.Attributes &= (fi.Attributes ^ FileAttributes.ReadOnly);// Turn-Off ReadOnly Attribute - fi.Attributes &= (fi.Attributes ^ FileAttributes.Hidden);// Turn-Off Hidden Attribute - } - private void frmSync_FormClosing(object sender, FormClosingEventArgs e) - { - Properties.Settings.Default.Location = Location; - WindowState = FormWindowState.Normal; - Properties.Settings.Default.Size = Size; - Properties.Settings.Default.DevelopmentFolder = tbDevelopment.Text; - Properties.Settings.Default.SourceSafeFolder = tbSourceSafe.Text; - Properties.Settings.Default.MailBoxDevelopmentFolder = tbMailBox.Text; - Properties.Settings.Default.MailBoxSourceSafeFolder = tbSSMailBox.Text; - Properties.Settings.Default.Save(); - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - private void clearToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearMailBox(); - } - // Build mailbox - private void buildToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearMailBox(); - if (_CheckedOut == null) - checkedOutToolStripMenuItem_Click(sender, e); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) - { - fc.MoveDevToMailBox(tbDevelopment.Text, tbMailBox.Text); - fc.MoveSSToMailBox(tbSourceSafe.Text, tbSSMailBox.Text); - } - } - BuildZipOfMailBox(tbMailBox.Text); - } - private string _RTFFile = null; - public string RTFFile - { - get { return _RTFFile; } - set { _RTFFile = value; } - } - private void BuildZipOfMailBox(string mailbox) - { - SevenZipCompressor.SetLibraryPath(Application.StartupPath + @"\7z.dll"); - SevenZipCompressor cmpr = new SevenZipCompressor(); - cmpr.PreserveDirectoryRoot = true; - string fileDate = DateTime.Now.ToString("yyyyMMdd HHmm"); - RTFFile = string.Format("{0} To SS {1}.Rtf", mailbox, fileDate); - string zipName = string.Format("{0} To SS {1}.7z", mailbox, fileDate); - cmpr.CompressDirectory(mailbox, zipName, "*.*", true); - MessageBox.Show(string.Format("{0} created!", zipName), "Mailbox Zip Created", MessageBoxButtons.OK, MessageBoxIcon.Information); - - //if (System.IO.File.Exists(@"c:\program files\7-zip\7z.exe")) - //{ - // string args = string.Format(@"a -t7z ""{0} To SS {1}.7z"" ""{0}\*.*"" -r", mailbox, DateTime.Now.ToString("yyyyMMdd HHmm")); - // System.Diagnostics.Process p = System.Diagnostics.Process.Start(@"c:\program files\7-zip\7z", args); - // p.WaitForExit(); - //} - //"c:\program files\7-zip\7z" a -t7z "C:\Development\MailBox\Proms To SS 20120424 1850.7z" "C:\Development\MailBox\Proms\*.*" -r - } - private void checkedOutToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindCheckedOut(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - WasSorted = false; - SetColumnWidth(); - } - private void syncAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - private void restoreUnchangedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if(!fc.Different || fc.DevModified == null) - fc.MoveToDevelopment(); - } - } - private void restoreSelectedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - DialogResult dr = System.Windows.Forms.DialogResult.No; - dr = MessageBox.Show("This will WIPE OUT ALL changes you had made to the Selected (To Process) Files\r\n\n Are you sure?", "Restore Selected", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) - { - MessageBox.Show("A Zip of your checked out files will be place in your mailbox folder prior to restoring all of your source code", "Restoring All Your Source Code", MessageBoxButtons.OK, MessageBoxIcon.Information); - buildToolStripMenuItem_Click(sender, e); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) fc.MoveToDevelopment(); - } - } - } - private void restoreAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - DialogResult dr = System.Windows.Forms.DialogResult.No; - dr = MessageBox.Show("This will WIPE OUT ALL changes you had made to your local code!!!\r\n\n Are you sure?", "Restore All Source Code", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) - { - MessageBox.Show("A Zip of your checked out files will be place in your mailbox folder prior to restoring all of your source code", "Restoring All Your Source Code", MessageBoxButtons.OK, MessageBoxIcon.Information); - buildToolStripMenuItem_Click(sender, e); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - } - private List SelectedList - { - get - { - dgv.EndEdit(); - List fcList = new List(); - foreach (DataGridViewCell dgc in dgv.SelectedCells) - { - FileCompare fc = dgv.Rows[dgc.RowIndex].DataBoundItem as FileCompare; - if (fc != null && fcList.Contains(fc) == false) - fcList.Add(fc); - } - return fcList; - } - } - private void compareToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.FileName, fc.SSFileName); - } - } - private static void CompareOneFile(string fileDev, string fileSS) - { - Console.WriteLine("Compare {0} and {1}", fileDev, fileSS); - string progname = string.Empty; - if (System.IO.File.Exists(@"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe")) - progname = @"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe"; - if (System.IO.File.Exists(@"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe")) - progname = @"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe"; - // string cmd = string.Format("\"{0}\" -t \"{1}\" \"{2}\"", progname, fc.FileName, fc.SSFileName); - System.Diagnostics.ProcessStartInfo psi = - new System.Diagnostics.ProcessStartInfo(progname, string.Format(@" -t ""{0}"" ""{1}""", fileDev, fileSS)); - System.Diagnostics.Process prc = System.Diagnostics.Process.Start(psi); - } - private void restoreToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - fc.MoveToDevelopment(); - } - } - private bool _ExcludeSolutions = true; - private void differentAllToolStripMenuItem_Click(object sender, EventArgs e) - { - _ExcludeSolutions = false; - dgv.EndEdit(); - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - WasSorted = false; - SetColumnWidth(); - _ExcludeSolutions = true; - } - private void differentToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void SetColumnWidth() - { - IsLoading = true; - if (Properties.Settings.Default["Widths"] == null) - { - dgv.Columns[0].Width = 60; - dgv.Columns[1].Visible = false; - dgv.Columns[2].Width = 125; - dgv.Columns[3].Width = 125; - dgv.Columns[4].Width = 50; - dgv.Columns[5].Width = 500; - } - else - { - for (int i = 0; i < Properties.Settings.Default.Widths.Count; i++) - { - string sWidth = Properties.Settings.Default.Widths[i]; - if (sWidth == "Invisible") - dgv.Columns[i].Visible = false; - else - dgv.Columns[i].Width = int.Parse(sWidth); - } - } - dgv.Columns[1].Visible = false; - IsLoading = false; - } - private void FindDifferent(DirectoryInfo di) - { - FindDifferent(di.GetFiles()); - FindDifferent(di.GetDirectories()); - } - private void FindDifferent(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindDifferent(di); - } - private void FindDifferent(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindDifferent(fi); - } - private void FindDifferent(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (_ExcludeSolutions && fi.Name.ToLower().EndsWith("sln")) return; - if (_ExcludeSolutions && fi.Name.ToLower().EndsWith("csproj")) - { - // Find files that have been added to the new Project - List compileList = GetCompileList(fi.FullName); - FileInfo fi1csproj = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if (fi1csproj.Exists) - { - List compileList1 = GetCompileList(fi1csproj.FullName); - CompareLists(compileList, compileList1, fi, fi1csproj); - } - if(_ExcludeSolutions ) return; - } - if (fi.Name.ToLower().EndsWith("licx")) return; - if (fi.Name.ToLower().EndsWith("config")) return; // exclude app.config - if (fi.Name.ToLower().EndsWith("dll")) return; // exclude dll's - if (fi.Name.ToLower().EndsWith("7z")) return; // exclude 7-zips - FileInfo fiD = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - FileInfo fiS = fi; - // Only check Read-Only flag, other attributes are unimportant - if (fiS.LastWriteTimeUtc != fiD.LastWriteTimeUtc || (fiS.Attributes & FileAttributes.ReadOnly ) != (fiD.Attributes & FileAttributes.ReadOnly )) - AddToResults(fi, fiD); - } - private void dgv_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) - { - if (!IsLoading) - { - System.Collections.Specialized.StringCollection widths = new System.Collections.Specialized.StringCollection(); - foreach (DataGridViewColumn col in dgv.Columns) - widths.Add(col.Visible ? col.Width.ToString() : "Invisible"); - Properties.Settings.Default.Widths = widths; - Properties.Settings.Default.Save(); - } - } - private bool _OnlyContentDifferent = false; - private void contentDifferentToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - _OnlyContentDifferent = true; - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - _OnlyContentDifferent = false; - dgv.DataSource = _CheckedOut; - WasSorted = false; - SetColumnWidth(); - } - private void frmSync_LocationChanged(object sender, EventArgs e) - { - Rectangle rec = Screen.GetWorkingArea(this); - int newLeft = Left; - int newTop = Top; - if (Math.Abs(Left - rec.X) < 10) newLeft = rec.X; - if (Math.Abs(Top - rec.Y) < 10) newTop = rec.Y; - if (Math.Abs(rec.X + rec.Width - Right) < 10) newLeft = rec.X + rec.Width - Width; - if (Math.Abs(rec.Y + rec.Height - Bottom) < 10) newTop = rec.Y + rec.Height - Height; - if (newTop != Top || newLeft != Left) - Location = new Point(newLeft, newTop); - } - private void restoreReadOnlyToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ReadOnly) fc.MoveToDevelopment(); - } - differentToolStripMenuItem_Click(sender, e); // do a find different again to reset the list - } - private void listToClipboardToolStripMenuItem_Click(object sender, EventArgs e) - { - RichTextBox rtb = new RichTextBox(); - Font fntNormal = new Font("Arial", 10, FontStyle.Regular); - rtb.Font = fntNormal; - Font fntBold = new Font("Arial", 12, FontStyle.Bold); - Font fntWing = new Font("Wingdings 2", 11, FontStyle.Regular); - Font fntItalic = new Font("Arial", 11, FontStyle.Italic); - Font fntBoldItalic = new Font("Arial", 14, FontStyle.Bold | FontStyle.Italic); - StringBuilder sb = new StringBuilder(); - dgv.EndEdit(); - sb.Append("Applicability:\r\n\r\n"); - AddText(rtb, fntBold, "Applicability:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n"); - if (HasFmtXML(_CheckedOut)) - { - sb.Append("* This change includes format changes which must be loaded into the databases.\r\n\r\n"); - AddText(rtb, fntBoldItalic, "*\tThis change includes format changes\r\n\twhich must be loaded into the databases.",Color.Orange); - AddText(rtb, fntNormal, "\r\n\r\n",Color.Black); - } - if (HasFormats(_CheckedOut)) - { - sb.Append("* This change includes format changes which must be loaded into the databases.\r\n\r\n"); - AddText(rtb, fntBoldItalic, "*\tThis change includes format changes\r\n\twhich must be loaded into the databases.", Color.Orange); - AddText(rtb, fntNormal, "\r\n\r\n", Color.Black); - } - if (HasPromsFixes(_CheckedOut)) - { - sb.Append("* This change includes changes to PROMSFixes.SQL which must be loaded into the databases.\r\n\r\n"); - AddText(rtb, fntBoldItalic, "*\tThis change includes changes to PROMSFixes.SQL\r\n\twhich must be loaded into the databases.\r\n\r\n", Color.Red); - AddText(rtb, fntNormal, "\r\n\r\n", Color.Black); - } - sb.Append("\r\nInternal Data Fixes:\r\n\r\n"); - AddText(rtb, fntBold, "Internal Data Fixes:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n",Color.Magenta); - sb.Append("Code Changes:\r\n\r\n"); - AddText(rtb, fntBold, "Code Changes:"); - AddText(rtb, fntNormal, "\r\n\r\n"); - int lenFolder = tbDevelopment.Text.Length; - string lastFolder = ""; - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) - { - FileInfo fi = new FileInfo(fc.FileName); - FileInfo fis = new FileInfo(fc.SSFileName); - string folder = fi.Directory.FullName.Substring(lenFolder + 1); - if (folder != lastFolder) - { - sb.Append(folder + ":\r\n"); - AddText(rtb, fntItalic, folder + ":\r\n"); - lastFolder = folder; - } - sb.Append((fis.Exists ? "" : " =>NEW") + "\t" + fi.Name + "\r\n"); - AddText(rtb, fntNormal, (fis.Exists ? "" : " =>NEW") + "\t" + fi.Name + "\r\n"); - AddIndent(rtb); - } - } - sb.Append("\r\nInternal Release:\r\n\r\n"); - sb.Append("\r\nGeneric External Release:\r\n\r\n"); - sb.Append("\r\nPlant Specific Information for Release Letter:\r\n\r\n"); - sb.Append("\r\nTesting Performed:\r\n\r\n"); - sb.Append("\r\nTesting Requirements:\r\n\r\n"); - sb.Append("\r\nChanges/Additions to User Documentation:\r\n\r\n"); - - AddText(rtb, fntNormal, "\r\n"); - AddText(rtb, fntBold, "Internal Release:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n"); - AddText(rtb, fntBold, "Generic External Release:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n"); - AddText(rtb, fntBold, "Plant Specific Information for Release Letter:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n"); - AddText(rtb, fntBold, "Testing Performed:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n"); - AddText(rtb, fntBold, "Testing Requirements:"); - AddText(rtb, fntNormal, "\r\n\r\n"); - AddText(rtb, fntWing, "\x51\x52\xA3"); - AddText(rtb, fntNormal, " Sample Checkboxes"); - AddText(rtb, fntNormal, "\r\n\r\n"); - AddText(rtb, fntBold, "Changes/Additions to User Documentation:"); - AddText(rtb, fntNormal, "\r\n\r\n"); - try - { - Clipboard.Clear(); - DataObject dao = new DataObject(); - dao.SetData(DataFormats.Text,sb.ToString()); - dao.SetData(DataFormats.Rtf, rtb.Rtf); - Clipboard.SetDataObject(dao, true, 10, 500); - if (RTFFile != null) - { - rtb.SaveFile(RTFFile); - System.Diagnostics.Process.Start(RTFFile); - } - else - MessageBox.Show(sb.ToString(), "Copied to Clipboard", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - catch (Exception ex) - { - StringBuilder sb2 = new StringBuilder(); - string prefix = ""; - while (ex != null) - { - sb2.AppendLine(string.Format("{0}{1} - {2}",prefix, ex.GetType().Name, ex.Message)); - prefix += " "; - } - MessageBox.Show(sb2.ToString(), "Error saving Clipboard", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - private bool HasPromsFixes(List _CheckedOut) - { - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess && fc.FileName.ToLower().Contains("promsfixes.sql")) - return true; - } - return false; - } - - private bool HasFmtXML(List _CheckedOut) - { - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess && fc.FileName.ToLower().Contains("\\fmtxml\\")) - return true; - } - return false; - } - private bool HasFormats(List _CheckedOut) - { - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess && fc.FileName.ToLower().Contains("\\formats\\")) - return true; - } - return false; - } - private void AddIndent(RichTextBox rtb) - { - rtb.Select(rtb.TextLength, 0); - rtb.SelectionIndent = (int) _DPI; - rtb.SelectedText = "\r\n"; - rtb.Select(rtb.TextLength, 0); - rtb.SelectionIndent = 0; - } - private static void AddText(RichTextBox rtb, Font font, string txt) - { - rtb.Select(rtb.TextLength, 0); - rtb.SelectionFont = font; - rtb.SelectedText = txt; - } - private static void AddText(RichTextBox rtb, Font font, string txt, Color myColor) - { - rtb.Select(rtb.TextLength, 0); - rtb.SelectionFont = font; - rtb.SelectionColor = myColor; - rtb.SelectedText = txt; - rtb.Select(rtb.TextLength, 0); - rtb.SelectionColor = Color.Black; - } - private void dgv_MouseDown(object sender, MouseEventArgs e) - { - dgv.ClearSelection(); - DataGridView.HitTestInfo info = dgv.HitTest(e.X, e.Y); - if (info.RowIndex < 0) return; - dgv.CurrentCell = dgv[0, info.RowIndex]; - dgv.Rows[info.RowIndex].Selected = true; - } - - private void selectAllToolStripMenuItem_Click(object sender, EventArgs e) - { - if (_CheckedOut == null || _CheckedOut.Count == 0) - { - MessageBox.Show("Don't you really think you should get a list first!", "Hey Moron!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - return; - } - foreach (FileCompare fc in _CheckedOut) fc.ToProcess = true; - dgv.Refresh(); - } - - private void selectNoneToolStripMenuItem_Click(object sender, EventArgs e) - { - if (_CheckedOut == null || _CheckedOut.Count == 0) - { - MessageBox.Show("Don't you really think you should get a list first!", "Hey Moron!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - return; - } - foreach (FileCompare fc in _CheckedOut) fc.ToProcess = false; - dgv.Refresh(); - } - - private void compareSourceSafeToolStripMenuItem_Click(object sender, EventArgs e) - { - // Compare SS version with SS version from Mailbox - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.SSFileName, fc.SSFileName.Replace(tbSourceSafe.Text, tbSSMailBox.Text)); - } - } - - private void compareMailboxToolStripMenuItem_Click(object sender, EventArgs e) - { - // Compare MailBox version with Mailbox Source Safe version - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.FileName, fc.FileName.Replace(tbDevelopment.Text, tbSSMailBox.Text)); - } - } - class DescComparer : IComparer - { - public int Compare(T x, T y) - { - return Comparer.Default.Compare(y, x); - } - } - class FwdComparer : IComparer - { - public int Compare(T x, T y) - { - return Comparer.Default.Compare(x, y); - } - } - bool WasSorted = false; - void dgv_ColumnHeaderMouseClick(object sender, System.Windows.Forms.DataGridViewCellMouseEventArgs e) - { - IComparer iCmp= null; - if(WasSorted) - iCmp = new DescComparer(); - else - iCmp = new FwdComparer(); - WasSorted = !WasSorted; - SortedList sorted = new SortedList(iCmp); - List fcnew = new List(); - //ComparerDevModified myComparer = new ComparerDevModified(); - switch (e.ColumnIndex) - { - case 1: - dgv.DataSource = _CheckedOut; - break; - case 2: - foreach (FileCompare fc in _CheckedOut) - sorted.Add(GetUniqueDateTime(sorted,fc.DevModified), fc); - foreach (FileCompare fc in sorted.Values) - fcnew.Add(fc); - dgv.DataSource = fcnew; - break; - case 3: - foreach (FileCompare fc in _CheckedOut) - sorted.Add(GetUniqueDateTime(sorted,fc.SSModified), fc); - foreach (FileCompare fc in sorted.Values) - fcnew.Add(fc); - dgv.DataSource = fcnew; - break; - } - SetColumnWidth(); - } - - private DateTime GetUniqueDateTime(SortedList sorted, DateTime? dt) - { - DateTime dtUnique = dt ?? DateTime.Now; - while (sorted.Keys.Contains(dtUnique)) - dtUnique += TimeSpan.FromTicks(1); - return dtUnique; - } - } -} diff --git a/PROMS/Sync/Sync/frmSync.cs.bak b/PROMS/Sync/Sync/frmSync.cs.bak deleted file mode 100644 index 36cfb160..00000000 --- a/PROMS/Sync/Sync/frmSync.cs.bak +++ /dev/null @@ -1,321 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; - - -namespace Sync -{ - public partial class frmSync : Form - { - private List _CheckedOut; - private bool IsLoading = false; - public frmSync() - { - InitializeComponent(); - } - private void LoadSettings() - { - if (Properties.Settings.Default["Location"] != null) - Location = Properties.Settings.Default.Location; - if (Properties.Settings.Default["Size"] != null) - Size = Properties.Settings.Default.Size; - if (Properties.Settings.Default.DevelopmentFolder != "") - tbDevelopment.Text = Properties.Settings.Default.DevelopmentFolder; - if (Properties.Settings.Default.SourceSafeFolder != "") - tbSourceSafe.Text = Properties.Settings.Default.SourceSafeFolder; - if(Properties.Settings.Default.MailBoxDevelopmentFolder != "") - tbMailBox.Text = Properties.Settings.Default.MailBoxDevelopmentFolder; - if (Properties.Settings.Default.MailBoxSourceSafeFolder != "") - tbSSMailBox.Text = Properties.Settings.Default.MailBoxSourceSafeFolder; - } - private void frmSync_Load(object sender, EventArgs e) - { - LoadSettings(); - Setup(); - } - private void Setup() - { - // Setup Browse Buttons - btnBrwsDev.Tag = this.tbDevelopment; - btnBrwsSS.Tag = this.tbSourceSafe; - btnBrwsMail.Tag = this.tbMailBox; - btnBrwsSSMail.Tag = this.tbSSMailBox; - } - private void btnBrowse_Click(object sender, EventArgs e) - { - TextBox tb = (TextBox)((Button)sender).Tag; - fbd.SelectedPath = tb.Text; - if (fbd.ShowDialog() == DialogResult.OK) - tb.Text = fbd.SelectedPath; - } - private void ClearResults() - { - _CheckedOut = new List(); - } - private void FindCheckedOut(DirectoryInfo di) - { - FindCheckedOut(di.GetFiles()); - FindCheckedOut(di.GetDirectories()); - } - private void FindCheckedOut(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindCheckedOut(di); - } - private void FindCheckedOut(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindCheckedOut(fi); - } - private void FindCheckedOut(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (fi.Name.ToLower().EndsWith("sln")) return; - if (fi.Name.ToLower().EndsWith("csproj")) return; - if (fi.Name.ToLower().EndsWith("licx")) return; - FileInfo fi1 = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if ((fi1.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly) - AddToResults(fi, fi1); - } - private void AddToResults(FileInfo fiSS,FileInfo fiDev) - { - FileCompare fc = new FileCompare(fiDev, fiSS); - if(!_OnlyContentDifferent || (fc.Different && (fc.DevModified != null))) - _CheckedOut.Add(fc); - //if (tbResults.Text == "") tbResults.Text = "Found:"; - //tbResults.Text += "\r\n" + fiDev.FullName + " - " + ((fiDev.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly ? "" : "ReadOnly"); - } - private void ClearMailBox() - { - DeleteFolder(new DirectoryInfo(tbMailBox.Text)); - DeleteFolder(new DirectoryInfo(tbSSMailBox.Text)); - } - private void DeleteFolder(DirectoryInfo directoryInfo) - { - if (directoryInfo.Exists) - { - AdjustAttributes(directoryInfo); - directoryInfo.Delete(true); - } - } - private void AdjustAttributes(DirectoryInfo directoryInfo) - { - foreach (DirectoryInfo di in directoryInfo.GetDirectories()) - AdjustAttributes(di); - foreach (FileInfo fi in directoryInfo.GetFiles()) - AdjustAttribute(fi); - } - private void AdjustAttribute(FileInfo fi) - { - if ((fi.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) - fi.Attributes = fi.Attributes ^ FileAttributes.ReadOnly; - } - private void frmSync_FormClosing(object sender, FormClosingEventArgs e) - { - Properties.Settings.Default.Location = Location; - Properties.Settings.Default.Size = Size; - Properties.Settings.Default.DevelopmentFolder = tbDevelopment.Text; - Properties.Settings.Default.SourceSafeFolder = tbSourceSafe.Text; - Properties.Settings.Default.MailBoxDevelopmentFolder = tbMailBox.Text; - Properties.Settings.Default.MailBoxSourceSafeFolder = tbSSMailBox.Text; - Properties.Settings.Default.Save(); - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - private void clearToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearMailBox(); - } - private void buildToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearMailBox(); - if (_CheckedOut == null) - checkedOutToolStripMenuItem_Click(sender, e); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) - { - fc.MoveDevToMailBox(tbDevelopment.Text, tbMailBox.Text); - fc.MoveSSToMailBox(tbSourceSafe.Text, tbSSMailBox.Text); - } - } - } - private void checkedOutToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindCheckedOut(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void syncAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - private void restoreUnchangedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if(!fc.Different || fc.DevModified == null) - fc.MoveToDevelopment(); - } - } - private void restoreSelectedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) fc.MoveToDevelopment(); - } - } - private void restoreAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - private List SelectedList - { - get - { - dgv.EndEdit(); - List fcList = new List(); - foreach (DataGridViewCell dgc in dgv.SelectedCells) - { - FileCompare fc = dgv.Rows[dgc.RowIndex].DataBoundItem as FileCompare; - if (fc != null && fcList.Contains(fc) == false) - fcList.Add(fc); - } - return fcList; - } - } - private void compareToolStripMenuItem_Click(object sender, EventArgs e) - { - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - Console.WriteLine("Compare {0} and {1}", fc.FileName, fc.SSFileName); - string cmd = string.Format("\"C:\\Program Files\\IDM Computer Solutions\\UltraCompare\\UC.exe\" -t \"{0}\" \"{1}\"", fc.FileName, fc.SSFileName); - System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe", - string.Format(@" -t ""{0}"" ""{1}""", fc.FileName, fc.SSFileName)); - System.Diagnostics.Process prc = System.Diagnostics.Process.Start(psi); - } - } - private void restoreToolStripMenuItem_Click(object sender, EventArgs e) - { - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - fc.MoveToDevelopment(); - } - } - private void differentToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void SetColumnWidth() - { - IsLoading = true; - if (Properties.Settings.Default["Widths"] == null) - { - dgv.Columns[0].Width = 60; - dgv.Columns[1].Visible = false; - dgv.Columns[2].Width = 125; - dgv.Columns[3].Width = 125; - dgv.Columns[4].Width = 50; - dgv.Columns[5].Width = 500; - } - else - { - for (int i = 0; i < Properties.Settings.Default.Widths.Count; i++) - { - string sWidth = Properties.Settings.Default.Widths[i]; - if (sWidth == "Invisible") - dgv.Columns[i].Visible = false; - else - dgv.Columns[i].Width = int.Parse(sWidth); - } - } - dgv.Columns[1].Visible = false; - IsLoading = false; - } - private void FindDifferent(DirectoryInfo di) - { - FindDifferent(di.GetFiles()); - FindDifferent(di.GetDirectories()); - } - private void FindDifferent(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindDifferent(di); - } - private void FindDifferent(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindDifferent(fi); - } - private void FindDifferent(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (fi.Name.ToLower().EndsWith("sln")) return; - if (fi.Name.ToLower().EndsWith("csproj")) return; - if (fi.Name.ToLower().EndsWith("licx")) return; - FileInfo fiD = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - FileInfo fiS = fi; - // Only check Read-Only flag, other attributes are unimportant - if (fiS.LastWriteTimeUtc != fiD.LastWriteTimeUtc || (fiS.Attributes & FileAttributes.ReadOnly ) != (fiD.Attributes & FileAttributes.ReadOnly )) - AddToResults(fi, fiD); - } - private void dgv_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) - { - if (!IsLoading) - { - System.Collections.Specialized.StringCollection widths = new System.Collections.Specialized.StringCollection(); - foreach (DataGridViewColumn col in dgv.Columns) - widths.Add(col.Visible ? col.Width.ToString() : "Invisible"); - Properties.Settings.Default.Widths = widths; - Properties.Settings.Default.Save(); - } - } - private bool _OnlyContentDifferent = false; - private void contentDifferentToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearResults(); - _OnlyContentDifferent = true; - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - _OnlyContentDifferent = false; - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void frmSync_LocationChanged(object sender, EventArgs e) - { - Rectangle rec = Screen.GetWorkingArea(this); - if (Math.Abs(Left - rec.X) < 10) Left = rec.X; - if (Math.Abs(Top - rec.Y) < 10) Top = rec.Y; - if (Math.Abs(rec.X + rec.Width - Right) < 10) Left = rec.X + rec.Width - Width; - if (Math.Abs(rec.Y + rec.Height - Bottom) < 10) Top = rec.Y + rec.Height - Height; - } - } -} \ No newline at end of file diff --git a/PROMS/Sync/Sync/frmSync.resx b/PROMS/Sync/Sync/frmSync.resx deleted file mode 100644 index 88d339a7..00000000 --- a/PROMS/Sync/Sync/frmSync.resx +++ /dev/null @@ -1,1519 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 303, 17 - - - 84, 17 - - - 194, 17 - - - 33 - - - - - AAABAAQAgIAAAAEAIAAoCAEARgAAADAwAAABACAAqCUAAG4IAQAgIAAAAQAgAKgQAAAWLgEAEBAAAAEA - IABoBAAAvj4BACgAAACAAAAAAAEAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAwAA - AAYAAAAIAAAACgAAAA0AAAAPAAAAEAAAABEAAAATAAAAEwAAABQAAAAUAAAAEwAAABMAAAARAAAAEAAA - AA8AAAANAAAACgAAAAgAAAAGAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAAwAAAAYAAAAKAAAADgAAABMAAAAZAAAAIAAAACUAAAArAAAALgAAADMAAAA2AAAAOAAA - ADoAAAA8AAAAPQAAAD0AAAA8AAAAOgAAADgAAAA2AAAAMwAAAC4AAAArAAAAJQAAACAAAAAZAAAAEwAA - AA4AAAAKAAAABgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAACgAAABAAAAAXAAAAHwAAACgAAAAxAAAAOwAA - AEYAAABPAAAAWAAAAGAAAABmAAAAbAAAAHAAAAB0AAAAeAAAAHoAAAB8AAAAfAAAAHoAAAB4AAAAdAAA - AHAAAABsAAAAZgAAAGAAAABYAAAATwAAAEYAAAA7AAAAMQAAACgAAAAfAAAAFwAAABAAAAAKAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAKAAAAEQAA - ABwAAAAnAAAANAAAAEEAAABPAAAAXQAAAGoAAAB4ExMTkiQkJKotLS27NTU1yT09PddGRkbjS0tL6VBQ - UO9UVFT0WVlZ+llZWfpZWVn6WVlZ+lRUVPRQUFDvS0tL6UZGRuM9PT3XNjY2yS0tLbskJCSqExMTkgAA - AHgAAABqAAAAXQAAAE8AAABBAAAANAAAACcAAAAcAAAAEQAAAAoAAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAAwAAAAcAAAAPAAAAGQAAACcAAAA2AAAARwAAAFkAAABqDw8PiBoaGqMwMDDEQ0ND4E1N - Te9WVlb4Xl5e/2RkZP9vb2//fHx8/4iIiP+RkZH/mZmZ/6Ghof+np6f/q6ur/6urq/+np6f/oaGh/5qa - mv+SkpL/iIiI/3x8fP9wcHD/ZGRk/19fX/9XV1f4Tk5O70REROAxMTHEHBwcow8PD4gAAABqAAAAWQAA - AEcAAAA2AAAAJwAAABkAAAAPAAAABwAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAoAAAATAAAAIQAAADEAAABEAAAAWAAA - AG4RERGRLS0tv0FBQd5RUVH1XFxc/2lpaf+AgID/l5eX/6ysrP++vr7/y8vL/9XV1f/d3d3/5ubm/+zs - 7P/x8fH/9vb2//n5+f/6+vr/+vr6//n5+f/29vb/8vLy/+3t7f/m5ub/39/f/9fX1//Nzc3/v7+//66u - rv+Xl5f/goKC/2pqav9dXV3/UVFR9UFBQd4tLS2/ERERkQAAAG4AAABYAAAARAAAADEAAAAhAAAAEwAA - AAoAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AAoAAAAVAAAAJQAAADkAAABPAAAAZg4ODooqKiq7QkJC41VVVfxkZGT/fn5+/52dnf+3t7f/zc3N/93d - 3f/o6Oj/8fHx//f39//6+vr/+/v7//z8/P/8/Pz//v7+//7+/v////////////////////////////// - //////////////7+/v/+/v7//v7+//v7+//6+vr/9PT0/+vr6//f39//z8/P/7i4uP+enp7/gYGB/2Vl - Zf9WVlb8Q0ND4y0tLbsODg6KAAAAZgAAAE8AAAA5AAAAJQAAABUAAAAKAAAABAAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAoAAAAVAAAAJgAAADwAAABVAAAAbxkZGaI7OzvYTk5O9mJi - Yv+BgYH/o6Oj/8HBwf/X19f/5+fn//Hx8f/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//z8 - /P/+/v7//v7+/////////////////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7 - +//7+/v/+vr6//r6+v/39/f/9PT0/+rq6v/a2tr/w8PD/6ampv+EhIT/ZGRk/1BQUPY8PDzYGhoaogAA - AG8AAABVAAAAPAAAACYAAAAVAAAACgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAASAAAAIwAA - ADoAAABVAgICcyMjI7JCQkLlV1dX/3Nzc/+Xl5f/u7u7/9XV1f/l5eX/7e3t//Hx8f/y8vL/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+/v7//v7+//8/Pz//Pz8//7+/v/+/v7///////////////////////// - ///////////////////+/v7//v7+//z8/P/8/Pz/+/v7//v7+//6+vr/+fn5//n5+f/39/f/9vb2//X1 - 9f/x8fH/6Ojo/9nZ2f+9vb3/m5ub/3V1df9ZWVn/Q0ND5SUlJbICAgJzAAAAVQAAADoAAAAjAAAAEgAA - AAcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAANAAAAHAAAADQAAABQAAAAbiQkJLBDQ0PpXFxc/319ff+mpqb/yMjI/9zc - 3P/n5+f/6+vr/+3t7f/w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/6+vr/+/v7//z8 - /P/8/Pz//v7+//7+/v///////////////////////////////////////v7+//7+/v/+/v7//Pz8//z8 - /P/7+/v/+/v7//r6+v/5+fn/9/f3//f39//29vb/9fX1//T09P/y8vL/8PDw/+zs7P/h4eH/zc3N/6mp - qf+BgYH/XV1d/0ZGRukkJCSwAAAAbgAAAFAAAAA0AAAAHAAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAJAAAAFgAAACsAAABGAAAAZRoa - GqFBQUHnW1tb/4CAgP+pqan/y8vL/9/f3//m5ub/6Ojo/+vr6//s7Oz/7e3t/+/v7//x8fH/8vLy//T0 - 9P/19fX/9vb2//f39//5+fn/+vr6//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//7+/v////////////// - ///////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/39/f/9vb2//X1 - 9f/09PT/9PT0//Ly8v/w8PD/7+/v/+3t7f/r6+v/4uLi/9DQ0P+urq7/g4OD/11dXf9DQ0PnHBwcowAA - AGUAAABGAAAAKwAAABYAAAAJAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAEAAAADgAAACAAAAA6AAAAWQ8PD4g0NDTUUlJS/nl5ef+mpqb/x8fH/9vb2//i4uL/5eXl/+fn - 5//o6Oj/6urq/+vr6//t7e3/7+/v//Dw8P/x8fH/8vLy//T09P/19fX/9/f3//f39//5+fn/+vr6//v7 - +//8/Pz//Pz8//7+/v/+/v7//v7+//////////////////////////////////7+/v/+/v7//v7+//z8 - /P/8/Pz/+/v7//r6+v/6+vr/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7e3t/+zs - 7P/r6+v/5+fn/+Dg4P/Nzc3/qamp/3x8fP9VVVX+Nzc31A8PD4gAAABZAAAAOgAAACAAAAAOAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABwAAABQAAAArAAAASQAAAG0mJia4SEhI9Gxs - bP+ZmZn/v7+//9XV1f/f39//4eHh/+Li4v/l5eX/5ubm/+fn5//q6ur/6+vr/+zs7P/t7e3/8PDw//Hx - 8f/y8vL/9PT0//X19f/29vb/9/f3//n5+f/6+vr/+/v7//v7+//8/Pz//v7+//7+/v/+/v7///////// - /////////////////////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/x8fH/8PDw/+/v7//s7Oz/6+vr/+rq6v/o6Oj/5+fn/+Tk5P/b29v/xMTE/52d - nf9wcHD/SUlJ9CgoKLgAAABtAAAASQAAACsAAAAUAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA - AAoAAAAbAAAANQAAAFgRERGPPDw84l5eXv+FhYX/sLCw/83Nzf/Z2dn/3Nzc/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6 - +v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v/////////////////////////////////+/v7//v7+//7+ - /v/8/Pz/+/v7//v7+//6+vr/+fn5//f39//39/f/9vb2//X19f/09PT/8fHx//Dw8P/v7+//7e3t/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Tk5P/f39//0dHR/7a2tv+Kior/YGBg/z4+PuIRERGPAAAAWAAA - ADUAAAAbAAAACgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAANAAAAIQAAAD8AAABkIyMjtElJSfdxcXH/nZ2d/8HB - wf/R0dH/19fX/9ra2v/c3Nz/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq6v/r6+v/7e3t/+/v - 7//w8PD/8fHx//T09P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//7+/v/+/v7//v7+//// - //////////////////////////////7+/v/+/v7//v7+//z8/P/7+/v/+/v7//r6+v/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/x8fH/8PDw/+/v7//t7e3/6+vr/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Hh - 4f/d3d3/2dnZ/8fHx/+jo6P/dHR0/0tLS/ckJCS0AAAAZAAAAD8AAAAhAAAADQAAAAQAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAADwAA - ACUAAABHBgYGdDIyMtFcXFz/g4OD/66urv/Jycn/0dHR/9XV1f/X19f/2dnZ/9vb2//c3Nz/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+vr6//s7Oz/7e3t//Dw8P/x8fH/8vLy//T09P/19fX/9/f3//n5 - +f/6+vr/+vr6//v7+//8/Pz//v7+//7+/v/+/v7//////////////////////////////////v7+//7+ - /v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7e3t/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/9/f3//c3Nz/2dnZ/9DQ0P+0tLT/h4eH/19f - X/80NDTRBgYGdAAAAEcAAAAlAAAADwAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABEAAAApAAAATREREYc+Pj7lZmZm/5KSkv+4uLj/y8vL/9DQ - 0P/T09P/1dXV/9bW1v/X19f/2tra/9vb2//d3d3/39/f/+Hh4f/i4uL/5eXl/+bm5v/o6Oj/6urq/+zs - 7P/t7e3/7+/v//Hx8f/y8vL/9PT0//X19f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+ - /v/////////////////////////////////+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3d3d/9vb2//a2tr/19fX/9TU1P+/v7//l5eX/2pqav8/Pz/lERERhwAAAE0AAAApAAAAEQAA - AAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAATAAAALQAA - AFIYGBiURkZG8XBwcP+cnJz/vLy8/8rKyv/Ozs7/0NDQ/9HR0f/T09P/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/f39//4ODg/+Hh4f/k5OT/5ubm/+fn5//q6ur/6+vr/+zs7P/v7+//8PDw//Hx8f/09PT/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//////////////////////////////////7+ - /v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/93d3f/c3Nz/29vb/9nZ2f/X19f/1tbW/9HR - 0f/ExMT/o6Oj/3R0dP9KSkrxGBgYlAAAAFIAAAAtAAAAEwAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAGAAAAFAAAAC8AAABVGRkZnkpKSvV2dnb/pKSk/76+vv/IyMj/y8vL/83N - zf/Pz8//0NDQ/9HR0f/U1NT/1tbW/9fX1//a2tr/29vb/93d3f/f39//4eHh/+Li4v/l5eX/5ubm/+jo - 6P/q6ur/7Ozs/+3t7f/w8PD/8fHx//Ly8v/19fX/9vb2//f39//5+fn/+vr6//v7+//8/Pz//Pz8//7+ - /v/+/v7//////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7+//6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/y8vL/8fHx/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3Nzc/9vb2//a2tr/19fX/9bW1v/V1dX/09PT/9DQ0P/FxcX/qamp/3t7e/9PT0/1GxsbngAA - AFUAAAAvAAAAFAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABMAAAAwAAAAWCEh - IapRUVH6enp6/6Wlpf++vr7/xcXF/8jIyP/Kysr/y8vL/87Ozv/Pz8//0NDQ/9PT0//V1dX/1tbW/9nZ - 2f/a2tr/3Nzc/93d3f/g4OD/4eHh/+Tk5P/m5ub/5+fn/+rq6v/r6+v/7e3t/+/v7//x8fH/8vLy//X1 - 9f/29vb/+vr6//v7+//8/Pz//v7+//7+/v/+/v7///////////////////////////////////////// - //////////////7+/v/+/v7//Pz8//z8/P/6+vr/+fn5//b29v/19fX/9PT0//Hx8f/w8PD/7+/v/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/39/f/93d3f/c3Nz/2tra/9nZ2f/W1tb/1dXV/9TU - 1P/R0dH/0NDQ/87Ozv/FxcX/rKys/35+fv9TU1P6JCQkqgAAAFgAAAAwAAAAEwAAAAUAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAATAAAALgAAAFclJSWxUlJS/Hx8fP+mpqb/vLy8/8LCwv/FxcX/x8fH/8jI - yP/Kysr/y8vL/87Ozv/Pz8//0dHR/9PT0//V1dX/19fX/9nZ2f/b29v/3Nzc/9/f3//h4eH/4uLi/+Xl - 5f/m5ub/6Ojo/+vr6//s7Oz/8fHx//T09P/39/f/+vr6//r6+v/7+/v/+/v7//z8/P/g4fn/y8v3/6Gf - 8P+Ni+7/d3Tt/3d07f93dO7/d3Tu/3d07v93dO7/jYvw/6Kg8v+ioPL/ubf1/9nY+P/+/v7//Pz8//z8 - /P/7+/v/+vr6//f39//09PT/8fHx//Dw8P/t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4eHh/+Dg - 4P/d3d3/3Nzc/9vb2//Z2dn/19fX/9XV1f/U1NT/09PT/9DQ0P/Pz8//zs7O/8rKyv/ExMT/ra2t/4OD - g/9WVlb8JiYmsQAAAFcAAAAuAAAAEwAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAACsAAABVIyMjrVhY - WP1+fn7/pqam/7u7u//BwcH/wsLC/8PDw//FxcX/x8fH/8nJyf/Kysr/zc3N/87Ozv/Q0ND/0dHR/9TU - 1P/W1tb/19fX/9ra2v/b29v/3d3d/+Dg4P/h4eH/5OTk/+bm5v/q6ur/8PDw//X19f/29vb/9/f3//n5 - +f/a2fT/qKbs/3t55/9RTeH/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm - 5P8wJuP/MCbh/y8m4f8vJuD/LyXe/zIp3v9UUOL/hoPp/7u68P/19fn/+vr6//n5+f/29vb/8vLy/+3t - 7f/r6+v/6urq/+fn5//m5ub/5OTk/+Li4v/g4OD/39/f/9zc3P/b29v/2tra/9fX1//W1tb/1NTU/9PT - 0//Q0ND/z8/P/87Ozv/Ly8v/ysrK/8nJyf/ExMT/rq6u/4SEhP9cXFz9JiYmrQAAAFUAAAArAAAAEAAA - AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAgAAAA0AAAAnAAAATyIiIqVWVlb8fX19/6ampv+4uLj/vb29/7+/v//BwcH/wsLC/8TE - xP/T09P/ysrK/8nJyf/Kysr/zc3N/8/Pz//Q0ND/09PT/9TU1P/W1tb/2dnZ/9ra2v/c3Nz/39/f/+Hh - 4f/n5+f/7+/v//T09P/09PT/9fX1/7e36v97eeD/PznX/ywl1v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m - 3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m - 2v8uJdn/LSXY/zQt1/9qZ+D/tLPr//f39//39/f/9fX1//Hx8f/q6ur/5+fn/+Xl5f/k5OT/4eHh/+Dg - 4P/d3d3/3Nzc/9ra2v/Z2dn/1tbW/9XV1f/T09P/0dHR/8/Pz//Ozs7/zc3N/8rKyv/Jycn/yMjI/8fH - x//BwcH/ra2t/4SEhP9aWlr8IyMjpQAAAE8AAAAnAAAADQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAKAAAAIAAAAEcZGRmVVVVV+Hp6 - ev+jo6P/tbW1/7q6uv+8vLz/vb29/7+/v//BwcH/wsLC/9PU1f/c3Nz/ysrK/8nJyf/Ly8v/zc3N/8/P - z//R0dH/09PT/9XV1f/X19f/2dnZ/9vb2//h4eH/7Ozs//Dw8P/x8fH/zMzr/3V02/80Mc3/KiTN/ysk - 0P8rJNP/LCXW/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm - 5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdj/LCXW/ywk0/8rJNH/OTTS/4uK - 4f/l5fL/9fX1//Ly8v/s7Oz/5eXl/+Li4v/g4OD/39/f/9zc3P/b29v/2dnZ/9bW1v/V1dX/09PT/9HR - 0f/Q0ND/zs7O/83Nzf/Kysr/ycnJ/8jIyP/Hx8f/xMTE/8PDw/++vr7/qamp/4GBgf9YWFj4HR0dlQAA - AEcAAAAgAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABwAAABkAAAA9ERERgExMTPJ1dXX/nZ2d/7Ozs/+3t7f/uLi4/7q6uv+8vLz/vb29/7+/ - v//BwcH/b3Kp/8jJ2P/c3Nz/ysrK/8nJyf/Ly8v/zs7O/8/Pz//R0dH/1NTU/9bW1v/a2tr/5ubm/+3t - 7f/v7+//qarg/1JQz/8oIsb/KSPK/yoky/8qJM3/KyTQ/ysk0/8sJdb/LSXX/y4l2P8uJtr/Libd/y8l - 3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m - 3f8uJtr/LiXZ/y0l1/8sJdb/LCTT/ysk0f8qJM7/KiTM/y4py/9zctn/3+Dv//Ly8v/v7+//5ubm/9/f - 3//d3d3/29vb/9ra2v/X19f/1dXV/9TU1P/R0dH/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/IyMj/x8fH/8TE - xP/Dw8P/wcHB/7+/v/+7u7v/paWl/3t7e/9RUVHyExMTgAAAAD0AAAAZAAAABwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAATAAAANAUFBWVGRkbjb29v/5aW - lv+tra3/s7Oz/7W1tf+3t7f/uLi4/7q6uv+8vLz/vb29/7+/v/9VWaD/Nzqj/9DR3P/d3d3/ysrK/8rK - yv/Ly8v/zs7O/9DQ0P/T09P/2tra/+jo6P/s7Oz/ubnh/0hGyP8mIsD/JyHE/ygixv8pIsn/KiPL/yok - zf8rJND/KyTT/ywl1v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm - 5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1v8sJNP/KyTR/yok - zv8qJMz/KSPK/ygjx/8vKsb/fH3X/+Xm7v/w8PD/6Ojo/93d3f/a2tr/19fX/9bW1v/U1NT/09PT/9DQ - 0P/Pz8//zc3N/8vLy//Jycn/yMjI/8fHx//ExMT/w8PD/8HBwf+/v7//vr6+/7y8vP+2trb/np6e/3V1 - df9JSUnjBQUFZQAAADQAAAATAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAACAAAADgAAACoAAABVNzc3x2dnZ/+Ojo7/qKio/7CwsP+zs7P/tLS0/7W1tf+3t7f/uLi4/7q6 - uv+8vLz/vb29/1BUn/8cHpn/OTyp/83O3P/f39//y8vL/8rKyv/Nzc3/z8/P/93d3f/o6Oj/0NHk/1hZ - yP8lIbv/JiG+/yYiwP8nIcT/KCLG/ykiyf8qI8v/KiTN/ysk0P8rJNP/LCXU/y0l1/8uJdj/Liba/y4m - 3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l - 3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk0/8rJNH/KiTO/yoky/8pI8r/KCPH/ycixP8mIsL/ODbE/6ip - 3v/t7e3/6+vr/9zc3P/W1tb/1dXV/9PT0//Q0ND/z8/P/83Nzf/Ly8v/ycnJ/8jIyP/Hx8f/xMTE/8PD - w//BwcH/v7+//76+vv+9vb3/vLy8/7q6uv+wsLD/k5OT/2xsbP84ODjHAAAAVQAAACoAAAAOAAAAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAkAAAAgAAAASSUlJaRcXFz+goKC/6Gh - of+tra3/r6+v/7Kysv+zs7P/tLS0/7W1tf+2trb/uLi4/7q6uv+8vLz/Rkqa/xwdmf8dHaD/NTiq/8vM - 2v/f39//zc3N/8rKyv/d3d3/5+fn/6Wl2P8vL7r/JCC6/yUhu/8mIb7/JiLA/ychxP8oIsb/KSLJ/yoj - y/8qI83/KyTQ/ysk0/8sJdT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm - 5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdb/LCTT/ysk - 0f8qJM7/KiTL/ykjyv8oIsf/JyHE/yYiwv8mIb7/JSG9/1layP/f3+j/6urq/93d3f/T09P/0dHR/8/P - z//Ozs7/y8vL/8rKyv/IyMj/x8fH/8TExP/Dw8P/wcHB/7+/v/++vr7/vb29/7u7u/+6urr/uLi4/7a2 - tv+pqan/iIiI/2FhYf4mJiakAAAASQAAACAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAFAAAAFgAAADoTExOCUVFR9Xd3d/+ampr/q6ur/62trf+urq7/r6+v/7CwsP+ysrL/tLS0/7W1 - tf+2trb/uLi4/7q6uv9DRpn/HB2a/x0doP8dHaH/MzWr/8fH2v/g4OD/2tra/+Hh4/9rbcX/IiCz/yMg - tv8kILj/JSG7/yYhvv8mIsD/JyHE/ygixv8pIsn/KiPL/yojzf8rJND/KyTT/ywl1P8tJdf/LiXY/y4m - 2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m - 4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1v8sJNP/KyTR/yokzv8qI8v/KSPK/ygix/8nIcT/JiLC/yYh - vv8lIbz/JCC6/zY2vP+/v97/6urq/9/f3//Q0ND/zs7O/8vLy//Kysr/yMjI/8fHx//ExMT/w8PD/8HB - wf+/v7//vr6+/7y8vP+7u7v/urq6/7i4uP+3t7f/tra2/7Ozs/+jo6P/fHx8/1VVVfUVFRWCAAAAOgAA - ABYAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAA4AAAAsAgICXkVFReFtbW3/kJCQ/6Wl - pf+pqan/q6ur/62trf+urq7/r6+v/7CwsP+ysrL/s7Oz/7W1tf+2trb/uLi4/zxAmP8cHZr/HR2f/x0d - of8eHaT/LzCr/8TF2v/g4OL/WFq+/yIfsP8iILP/IyC2/yQguP8lIbv/JiG+/yYiwP8nIcT/KCLF/yki - yf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm - 4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk - 0/8rJNH/KiTO/yojy/8pIsn/KCLH/ychxP8mIsL/JiG+/yUhvP8kILr/IyC2/ygmtv+QktH/5+fn/+Hh - 4f/Ozs7/ysrK/8jIyP/Hx8f/xMTE/8PDw//BwcH/v7+//76+vv+8vLz/u7u7/7q6uv+4uLj/tra2/7W1 - tf+0tLT/s7Oz/66urv+Xl5f/cnJy/0lJSeECAgJeAAAALAAAAA4AAAACAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAHAAAAHwAAAEktLS2yZGRk/4aGhv+fn5//pqam/6ioqP+pqan/q6ur/6ysrP+tra3/r6+v/7Cw - sP+ysrL/s7Oz/7W1tf+2trb/NjiV/xwdm/8dHZ//HR2h/x4dpP8fHab/Ly+t/1dZvf8hH63/Ih+w/yIg - s/8jILb/JCC4/yUhu/8mIb7/JiLA/ychxP8oIsX/KSLJ/yojy/8qI83/KyTQ/ysj0v8sJNT/LSXX/y4l - 2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m - 4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdT/LCTT/ysj0f8qJM7/KiPL/ykiyf8oIsf/JyHE/yYi - wv8mIb7/JSG8/yQguv8jILb/IiC0/yIgsP9iY8L/3d3j/+Dg4P/Kysr/x8fH/8TExP/Dw8P/wcHB/7+/ - v/+9vb3/vLy8/7u7u/+4uLj/t7e3/7a2tv+1tbX/tLS0/7Ozs/+ysrL/r6+v/6enp/+Ojo7/ampq/zAw - MLIAAABJAAAAHwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABMAAAA1FBQUfVVVVfd5eXn/l5eX/6Sk - pP+mpqb/p6en/6ioqP+pqan/q6ur/6ysrP+tra3/rq6u/6+vr/+ysrL/s7Oz/7S0tP8zN5X/HB2c/x0d - n/8dHaH/Hh2k/x8dpv8fHqf/IB6r/yEerf8iH7D/IiCz/yMhtf8kILj/JSG7/yYhvv8mIsD/JyHD/ygi - xf8pIsn/KiPL/yojzf8rJND/KyPS/ywk1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm - 4P8wJt7/LyXe/y8l3v8vJd7/LyXe/zAm3v8wJt//Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl - 1P8sJNP/KyPR/yojzv8qI8v/KSLJ/ygixv8nIcT/JiLC/yYhvv8lIbz/JCC4/yMgtv8iILT/IiCw/yEf - rv9AQ7b/0NDe/93d3f/Hx8f/w8PD/8HBwf+/v7//vb29/7y8vP+7u7v/uLi4/7e3t/+2trb/tbW1/7S0 - tP+ysrL/sLCw/6+vr/+urq7/rKys/6CgoP+AgID/W1tb9xQUFH0AAAA2AAAAEwAAAAMAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJAAAAFJAQEDVbW1t/46Ojv+enp7/o6Oj/6SkpP+lpaX/pqam/6enp/+oqKj/qamp/6ur - q/+tra3/rq6u/6+vr/+wsLD/s7Oz/ystkv8cHZv/HB2f/x0dof8dHaT/Hh2l/x8ep/8gHqv/IB6t/yEe - sP8iH7P/IyC1/yMguP8kIbv/JSG+/yYiwP8mIcP/JyLF/ykiyf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0k - 1/8uJdj/Liba/y4m2v8uJdj/LibT/y0l0f8tJcz/LSXJ/y0lw/8tJcP/LSXD/y0lw/8tJcP/LSXE/y0l - yf8tJc3/LSXR/y4l1v8uJtr/Liba/y4l2f8tJdf/LCXU/ywk0/8rI9H/KiPO/yojy/8pIsn/KCLG/ych - xP8mIsL/JiG+/yUhvP8kILj/IyC2/yIgtP8iILD/IR+u/yAgq/84ObL/y8za/9vb2//Dw8P/vr6+/729 - vf+8vLz/urq6/7i4uP+3t7f/tbW1/7S0tP+zs7P/srKy/7CwsP+vr6//rq6u/62trf+srKz/p6en/5SU - lP9ycnL/RERE1QAAAFIAAAAkAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABUAAAA6IiIilV9fX/5+fn7/mZmZ/5+f - n/+hoaH/o6Oj/6SkpP+lpaX/paWl/6enp/+oqKj/qamp/6urq/+srKz/ra2t/6+vr/+wsLD/KCmS/xwd - nP8cHZ//HB2h/x0dpP8eHaX/Hx6n/yAeq/8gHq3/IR6w/yIfsv8jILX/IyC4/yQgu/8lIb7/JiK//yYh - w/8nIsX/KCLJ/ykjy/8qI83/KiTO/ysj0v8sJNT/LSTW/y0k0/8tJM7/LCTG/yskvP8qI7L/KSSq/ykj - ov8oI57/KCOa/ygjmv8oI5r/KCOa/ygjmv8oI5r/KCOc/ygjo/8qJKz/KyS3/ywkxP8sJcz/LSTS/y0l - 1P8sJNT/LCPS/ysj0f8qI87/KiPL/ykiyf8oIsb/JyHE/yYiwv8mIb7/JSG8/yQguP8jILb/IiC0/yIg - sP8hH67/IB+r/yAeqf80Nq3/ysvZ/9bW1v++vr7/u7u7/7q6uv+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+wsLD/rq6u/62trf+srKz/q6ur/6urq/+oqKj/oaGh/4aGhv9kZGT+IyMjlQAAADoAAAAVAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJgICAlhLS0vlcXFx/4+Pj/+dnZ3/n5+f/5+fn/+goKD/oaGh/6Ojo/+kpKT/paWl/6am - pv+np6f/qKio/6urq/+srKz/ra2t/6+vr/8jI4//HB2c/xwdn/8cHaH/HR2j/x4dpf8fHqf/IB6r/yAe - rf8hHq//Ih+y/yMgtf8jILj/JCC7/yUhvv8mIr//JiHD/ycixf8oIsn/KSPL/yojzf8qJM7/KyTQ/ysk - zv8rJMX/KiO4/ygjq/8nIp7/JyKW/yYikf8mIoz/JiKK/yomjP9IRZ7/SUaf/0lGn/9JRp//SUaf/0hF - nv8oJIn/JiKL/yYhjv8nIpT/KCKc/ygjqP8qI7X/KyPD/yslzP8sI9H/KyPR/yojzv8qI8v/KSLJ/ygi - xv8nIcP/JiLC/yYhvv8lIbz/JCC4/yMhtf8iILT/Ih+w/yEerv8gH6v/IB6p/x8dpv84Oq3/0NHZ/87O - zv+6urr/t7e3/7a2tv+1tbX/s7Oz/7Kysv+wsLD/r6+v/66urv+tra3/rKys/6urq/+pqan/qKio/6en - p/+lpaX/l5eX/3d3d/9PT0/lAgICWAAAACYAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABUAAAA8KCgon2VlZf+CgoL/l5eX/5yc - nP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ghof+jo6P/pKSk/6Wlpf+np6f/qKio/6mpqf+rq6v/r6+v/xwe - jf8cHZz/HB2f/xwdof8dHaP/Hh2l/x8ep/8gHqv/IB6t/yEer/8iH7L/IyC1/yMguP8kILv/JSC9/yYh - v/8mIcP/JyLF/ygiyf8pI8v/KiPM/yojyf8pIsL/KCK0/yYhov8mIZT/JSGL/yUgh/9RT6D/hIO9/7Cv - 1P/e3e3//Pz8//7+/v///////////////////////v7+//z8/P/V1ej/rq3T/11aqP8qJ4v/JSGL/yYh - kv8mIp//KCOy/yojwv8rI8z/KiPN/yojy/8pIsn/KCLG/yYhw/8mIsD/JSG+/yQhvP8jILj/IyC1/yIf - s/8hH7D/IB6u/yAfq/8gHqn/Hx2m/x4dpP9ESK7/1tbY/8HBwf+2trb/tLS0/7Ozs/+ysrL/sLCw/6+v - r/+tra3/rKys/6urq/+pqan/qKio/6ioqP+np6f/pqam/6Wlpf+fn5//iIiI/2tra/8rKyugAAAAPAAA - ABUAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJQICAlhMTEzmcnJy/46Ojv+ZmZn/m5ub/5ycnP+cnJz/nZ2d/56env+fn5//oKCg/6Gh - of+jo6P/pKSk/6Wlpf+mpqb/p6en/6ioqP+srK3/GxyM/xwcnP8cHZ//HB2g/x0do/8eHaX/Hx6n/yAe - q/8gHqz/IR6v/yIfsv8jILX/IyC4/yQgu/8lIL3/JiG//yYhw/8nIcX/KCLH/ygixf8oIr7/JyKv/yUh - n/8kII//Ix+H/0RClf+QkMD/3t3o//X19f/39/f/+vr6//v7+//8/Pz//v7+//////////////////7+ - /v/+/v7//Pz8//v7+//5+fn/9vb2/+fn7v+dnMf/VlSg/yYih/8kII//JiGi/ygitf8pIsT/KSPJ/ygi - yf8nIsb/JiHD/yYiwP8lIb7/JCC8/yMguP8jILX/Ih+z/yEfsP8gHq7/IB+r/x8eqf8eHaX/HR2k/x0d - ov9maLX/1tbW/7a2tv+ysrL/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qamp/6ioqP+np6f/pqam/6Wl - pf+kpKT/pKSk/6Ghof+VlZX/eHh4/1BQUOYCAgJYAAAAJQAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABMAAAA5KSkpnmVlZf+BgYH/lJSU/5mZ - mf+ampr/mpqa/5ubm/+cnJz/nZ2d/52dnf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+lpaX/p6en/6Kj - qf8bHI3/HByc/xwcnf8cHaD/HR2j/x4dpf8fHqf/IB6q/yAerP8hHq//Ih+y/yMgtf8jILj/JCC6/yUg - vf8mIb//JiHD/ychwv8nIrz/JiKu/yUfnP8jH43/Ix+F/0VElv+np8n/6+vr/+3t7f/x8fH/9PT0//b2 - 9v/5+fn/+/v7//z8/P/+/v7//////////////////v7+//7+/v/8/Pz/+vr6//n5+f/29vb/9PT0//Hx - 8f/v7+//ysrb/05Om/8jH4b/JCCT/yYhqf8oIrz/KCLG/ycixv8mIcP/JiLA/yUgvf8kILz/IyC4/yMg - tf8iH7P/IR+v/yAerv8gH6v/Hx6p/x4dpf8dHaP/HR2i/xwdnf+focb/y8vL/7CwsP+vr6//ra2t/6ys - rP+rq6v/qamp/6ioqP+np6f/pqam/6Wlpf+kpKT/pKSk/6Ojo/+hoaH/oKCg/52dnf+Hh4f/ampq/y0t - LZ4AAAA5AAAAEwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAHAAAAIQMDA1JJSUngcXFx/4qKiv+VlZX/lpaW/5eXl/+ZmZn/mpqa/5qamv+bm5v/nJyc/52d - nf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+lpaX/nJ2o/xsbjf8cHJz/HByd/xwcoP8dHKP/Hh2l/x8d - p/8gHqr/IB6s/yEer/8iH7L/IyC1/yMgt/8kILr/JSC9/yYhv/8mIcD/JiC1/yMfnv8iHov/IR6C/z08 - jv+iocD/4uLi/+bm5v/q6ur/7e3t//Dw8P/09PT/9vb2//n5+f/7+/v//Pz8//7+/v////////////// - ///+/v7//v7+//v7+//6+vr/9/f3//X19f/y8vL/8PDw/+3t7f/q6ur/5+fn/5mYv/8xMIn/Ih6J/yUg - n/8mIbf/JyLD/yYhw/8mIcD/JSC9/yQgu/8jILj/IyC1/yIfs/8hH6//IB6t/yAfq/8fHqn/Hh2l/x0d - o/8cHaH/HB2f/ygroP/HxtH/vb29/62trf+rq6v/qamp/6ioqP+np6f/pqam/6ampv+lpaX/pKSk/6Oj - o/+hoaH/oKCg/6CgoP+fn5//nZ2d/5KSkv93d3f/TU1N4AMDA1IAAAAhAAAABwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA8AAAAxISEhi2RkZP98fHz/kJCQ/5SU - lP+VlZX/lpaW/5aWlv+Xl5f/mZmZ/5qamv+ampr/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Oj - o/+YmKX/GxuN/xwcm/8cHJ3/HByg/x0co/8eHKX/Hx2m/yAdqv8gHaz/IR6v/yIfsv8iILT/IyC3/yQg - uv8lIL3/JiG//yYhv/8kIKz/IR2P/zQyh/+Li7L/2tra/93d3f/h4eH/5eXl/+jo6P/s7Oz/7+/v//Ly - 8v/19fX/9/f3//r6+v/8/Pz//v7+//////////////////7+/v/8/Pz/+/v7//r6+v/39/f/9fX1//Hx - 8f/v7+//7Ozs/+jo6P/l5eX/4uLi/9TU2v9gYKD/IR+F/yMfmv8lIbP/JiG+/yYhwP8lIL3/JCC7/yMg - uP8jILX/Ih+z/yEfr/8gHq3/IB+r/x8eqf8eHaX/HR2j/xwdof8cHZ//HB2c/0tPqf/T09P/r6+v/6mp - qf+oqKj/p6en/6ampv+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//np6e/52dnf+dnZ3/l5eX/4SE - hP9paWn/IiIiiwAAADEAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAEAAAAGgAAAEVDQ0PPbm5u/4aGhv+SkpL/k5OT/5SUlP+UlJT/lZWV/5aWlv+Wlpb/l5eX/5mZ - mf+ampr/mpqa/5ubm/+cnJz/nZ2d/56env+fn5//oKCg/42NoP8bG47/HByb/xwcnf8cHKD/HRyj/x0c - pP8eHab/Hx2q/yAdrP8gHa//IR6y/yIftP8jILf/IyC6/yUgvf8mIb//JiHA/ysmt/+EhL//y8vO/9TU - 1P/X19f/29vb/9/f3//i4uL/5ubm/+rq6v/t7e3/8fHx//X19f/39/f/+vr6//z8/P/+/v7///////// - /////////v7+//z8/P/7+/v/+fn5//b29v/09PT/8fHx/+3t7f/q6ur/5+fn/+Tk5P/g4OD/3Nzc/9ra - 2v97e6v/IB2C/yIelv8kIK//JiG8/yUgvf8kILv/IyC3/yMgtf8iH7P/IR+v/yAerf8gH6r/Hx6p/x4d - pf8dHaP/HB2h/xwdn/8cHJz/Gxua/36Ct//CwsL/p6en/6ampv+lpaX/pKSk/6Ojo/+hoaH/oKCg/5+f - n/+fn5//np6e/52dnf+dnZ3/nJyc/5ubm/+ampr/jo6O/3R0dP9ISEjPAAAARQAAABoAAAAEAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAnExMTa1paWvZ3d3f/i4uL/5GR - kf+SkpL/kpKS/5OTk/+Tk5P/lJSU/5WVlf+Wlpb/lpaW/5eXl/+ZmZn/mpqa/5qamv+bm5v/nJyc/52d - nf+enp7/iIqf/xobjv8bHJv/HByd/xwcoP8dHKP/HRyk/x4dpv8fHar/IB2s/yAdr/8hHrD/Ih+0/yMf - t/8jH7r/JCC8/yUhvv8mIcL/WlnM/+Xl5f/Z2dn/0dHR/9XV1f/Z2dn/3Nzc/+Hh4f/l5eX/6Ojo/+zs - 7P/w8PD/9PT0//b29v/6+vr/+/v7//7+/v/////////////////+/v7//Pz8//v7+//5+fn/9vb2//Ly - 8v/w8PD/7Ozs/+jo6P/l5eX/4eHh/93d3f/b29v/19fX/9TU1P+EhK3/IB6B/yEelf8kIK//JSC7/yQg - u/8jILf/IyC1/yIfs/8hH6//IB6t/yAeqv8fHqn/Hh2l/x0co/8cHaH/HByd/xwcnP8bG5r/ICOZ/7q7 - yf+tra3/pKSk/6Ojo/+hoaH/oKCg/5+fn/+fn5//np6e/52dnf+cnJz/nJyc/5ubm/+ampr/mpqa/5mZ - mf+Tk5P/fX19/19fX/YTExNrAAAAJwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAEgAAADczMzOoaWlp/4GBgf+Ojo7/kJCQ/5GRkf+RkZH/kpKS/5KSkv+Tk5P/k5OT/5SU - lP+VlZX/lZWV/5aWlv+Xl5f/mZmZ/5qamv+ampr/m5ub/5ycnP+Dg53/GhuP/xscm/8cHJ3/HByg/x0c - ov8dHKT/Hh2m/x8dqv8gHaz/IB2u/yEesP8iH7T/Ix+3/yMfuv8kH7z/JSC+/yYhwv8mIcT/fHvU/+Xl - 5f/a2tr/09PT/9bW1v/a2tr/39/f/+Li4v/n5+f/6+vr/+/v7//y8vL/9vb2//n5+f/7+/v//v7+//// - //////////////7+/v/8/Pz/+vr6//f39//19fX/8fHx/+/v7//r6+v/5+fn/+Tk5P/g4OD/3Nzc/9nZ - 2f/V1dX/0dHR/87Ozv+Ojq//IyCC/yEel/8kIK//JCC4/yMgt/8iILT/Ih+z/yEer/8gHa3/IB6q/x8d - p/8eHKX/HRyj/xwdof8cHJ3/HByb/xsbmv8aG5j/VVip/7+/v/+hoaH/oKCg/5+fn/+fn5//np6e/52d - nf+cnJz/nJyc/5ubm/+ampr/mpqa/5mZmf+Xl5f/l5eX/5SUlP+Hh4f/bm5u/zY2NqgAAAA3AAAAEgAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAASUxMTN1xcXH/hoaG/4yM - jP+Pj4//j4+P/5CQkP+QkJD/kZGR/5GRkf+SkpL/kpKS/5OTk/+UlJT/lJSU/5WVlf+Wlpb/l5eX/5mZ - mf+ampr/mpqa/25xjv8XFor/GBeW/xgXmP8YGJn/GRmc/xoYn/8bGaH/Gxmk/xwapv8dGar/Hhqs/x8c - rv8gG7L/IBy0/yEct/8iHrr/Ix29/yQev/8lH8P/d3fF/8vLy//Pz8//1NTU/9fX1//c3Nz/4eHh/+Xl - 5f/q6ur/7e3t//Hx8f/19fX/+fn5//v7+//+/v7//////////////////v7+//z8/P/6+vr/9/f3//T0 - 9P/w8PD/7Ozs/+jo6P/l5eX/4eHh/93d3f/a2tr/1dXV/9HR0f/Ozs7/y8vL/8jIyP+Fhaj/HhuB/yEd - nP8jILP/IyC3/yIftP8hHrL/IB6v/yAdrf8fHqr/Hh2n/x4cpf8dHKP/HB2h/xwcnf8cHJv/GxuZ/xob - mP8cHJf/p6rB/6Wlpf+enp7/np6e/52dnf+cnJz/m5ub/5ubm/+ampr/mZmZ/5mZmf+Xl5f/l5eX/5aW - lv+VlZX/lJSU/4uLi/92dnb/UFBQ3QAAAEkAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAACQAAACcWFhZwYGBg+3l5ef+IiIj/jIyM/46Ojv+Ojo7/j4+P/4+Pj/+Pj4//kJCQ/5CQ - kP+RkZH/kpKS/5KSkv+Tk5P/k5OT/5SUlP+VlZX/lpaW/5eXl/+ZmZn/a2yM/xYWiv8YF5X/GBeX/xgX - mf8ZF5z/Ghif/xsZof8bGaP/HBql/x0Zqf8dGqv/Hhuu/yAbsv8gHLT/IRy3/yIduv8jHb3/Ix6//yUe - w/8mH8X/eXjG/83Nzf/Q0ND/1dXV/9ra2v/f39//4uLi/+fn5//s7Oz/8PDw//T09P/39/f/+/v7//z8 - /P/////////////////+/v7/+/v7//n5+f/29vb/8vLy/+/v7//r6+v/5+fn/+Li4v/f39//29vb/9bW - 1v/T09P/z8/P/8vLy//IyMj/xMTE/8HBwf9naJr/HhuF/yEeo/8iH7P/Ih+0/yEesv8gHq//IB2t/x8e - qv8eHaf/HRyk/x0co/8cHaH/HByd/xscm/8aG5n/GhuY/xoal/9MUKL/tra2/52dnf+cnJz/m5ub/5qa - mv+ampr/mZmZ/5eXl/+Xl5f/lpaW/5aWlv+VlZX/lZWV/5SUlP+UlJT/j4+P/35+fv9kZGT7GRkZcAAA - ACcAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAQAAAAMzk5Oapra2v/gICA/4qK - iv+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//j4+P/5CQkP+QkJD/kZGR/5GRkf+SkpL/k5OT/5OT - k/+UlJT/lZWV/5aWlv9iZIr/FhaK/xcXlf8YF5f/GBeZ/xkYnP8ZF53/Gxig/xsYo/8cGaX/HRmp/x0a - q/8eG67/Hxqy/yAbtP8hHLf/Ih26/yMcvf8jHb//JB7D/yYfxf8nH8f/fn3H/87Ozv/R0dH/1tbW/9vb - 2//g4OD/5eXl/+rq6v/v7+//8vLy//f39//6+vr//Pz8//7+/v////////////7+/v/7+/v/+fn5//X1 - 9f/x8fH/7e3t/+jo6P/l5eX/4ODg/9zc3P/X19f/1NTU/8/Pz//Ly8v/yMjI/8TExP/BwcH/vr6+/7u7 - u/8/Poj/HxyN/yEfqv8iH7L/IR6y/yAerv8gHaz/Hx6q/x4dp/8dHKT/HRyi/xwdof8cHJ3/Gxyb/xob - mf8aG5f/GhuW/xock/+vscD/nZ2d/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5WVlf+VlZX/lJSU/5SU - lP+Tk5P/k5OT/5KSkv+RkZH/hoaG/3BwcP88PDyqAAAANAAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAwAAABcAAABBSkpK0nFxcf+Dg4P/ioqK/4qKiv+Kior/i4uL/4uLi/+Li4v/jIyM/4yM - jP+Ojo7/jo6O/4+Pj/+Pj4//kJCQ/5CQkP+RkZH/kpKS/5KSkv+Tk5P/lJSU/11ghv8WFoj/FxeR/xcX - kf8XF5P/GBeV/xkXl/8aGJn/Gxec/xsYn/8cGaL/HRqj/x0apf8eGqn/Hxur/yAbrv8gHK//Ihyy/yId - s/8jHrb/JB63/yUduv8mH73/goHE/8/Pz//U1NT/2dnZ/93d3f/i4uL/6Ojo/+3t7f/x8fH/9vb2//r6 - +v/8/Pz//v7+/////////////v7+//v7+//39/f/9PT0//Dw8P/r6+v/5+fn/+Li4v/d3d3/2dnZ/9XV - 1f/Q0ND/zc3N/8jIyP/ExMT/wcHB/729vf+7u7v/t7e3/6Skr/8lJH//IB2Z/yEerv8hHrL/IB6u/yAd - rP8fHqr/Hh2n/x0cpP8dHKL/HB2g/xwcnf8bHJv/GhuZ/xobl/8aG5b/GRuV/19jpv+np6f/l5eX/5eX - l/+Wlpb/lZWV/5WVlf+UlJT/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5GRkf+JiYn/dnZ2/01N - TdMAAABBAAAAFwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAHxAQEF5ZWVnwdXV1/4SE - hP+JiYn/iYmJ/4mJif+Kior/ioqK/4qKiv+Li4v/i4uL/4uLi/+MjIz/jIyM/46Ojv+Ojo7/j4+P/4+P - j/+QkJD/kZGR/5GRkf+SkpL/V1mA/xUWeP8WFn7/FhZ9/xYWff8XF37/GBeB/xgXgv8YF4X/GReG/xoY - if8bGYr/GxqM/xwZjv8dGpD/HRqU/x4blf8fGpT/IBuU/yAclv8gHJj/IhyZ/yIem/8jHZ//goK4/9DQ - 0P/V1dX/2tra/+Dg4P/m5ub/6+vr//Dw8P/19fX/+fn5//z8/P/+/v7////////////8/Pz/+vr6//b2 - 9v/y8vL/7+/v/+rq6v/l5eX/4ODg/9vb2//W1tb/0dHR/83Nzf/Jycn/xMTE/8HBwf+9vb3/urq6/7e3 - t/+0tLT/srKy/3N1mP8cGoX/IR6k/yEesP8gHq7/IB2s/x8dqf8eHaf/HRyk/x0bov8cHKD/HBud/xsb - m/8aGpn/GhqX/xoalv8ZGpT/ISSS/7Cytf+VlZX/lZWV/5SUlP+UlJT/k5OT/5OTk/+SkpL/kpKS/5GR - kf+RkZH/kJCQ/5CQkP+QkJD/j4+P/4qKiv97e3v/XFxc8RAQEF4AAAAgAAAABgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAoAAAApJiYmhGhoaP97e3v/hYWF/4iIiP+IiIj/iIiI/4iIiP+JiYn/iYmJ/4mJ - if+Kior/ioqK/4uLi/+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//kJCQ/5CQkP9QUnj/FBVh/xQW - ZP8VFmT/FRVl/xYWZv8WFmf/FhZp/xcWa/8XFmz/GBdu/xgXb/8YGHH/Ghhz/xsYdf8bGHf/Gxp3/xwa - eP8dGnj/HRp6/x0bfP8fG33/IByA/yAcgv8iHoX/iomx/9HR0f/X19f/3Nzc/+Li4v/o6Oj/7+/v//T0 - 9P/39/f/+/v7//7+/v////////////z8/P/6+vr/9vb2//Hx8f/s7Oz/5+fn/+Hh4f/c3Nz/19fX/9PT - 0//Ozs7/ycnJ/8TExP/BwcH/vb29/7q6uv+2trb/s7Oz/7CwsP+urq7/rKys/zU2g/8eG5T/IR6q/yAd - rv8gHaz/Hx2p/x4cpv8dG6T/HRui/xwcoP8cG5z/Gxub/xoamf8aGpf/GhqW/xkalP8YGpH/h4qw/5WV - lf+Tk5P/k5OT/5KSkv+SkpL/kZGR/5GRkf+QkJD/kJCQ/4+Pj/+Pj4//j4+P/46Ojv+Ojo7/i4uL/4CA - gP9sbGz/JiYmhAAAACkAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADwAAADI7OzuwbW1t/35+ - fv+FhYX/h4eH/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/ioqK/4uL - i/+Li4v/jIyM/4yMjP+Ojo7/jo6O/1pbef8mKWP/Jylk/zM1av8/QXD/P0Jx/0BDcv9BQ3P/QkN1/0ND - dv9ERHj/RUV5/0ZGe/9HR33/R0l+/0hKgf9KS4L/Y2KO/2pqkv9ra5X/bW2X/3Bwmv9ycpz/dnWh/3l5 - pP9/fqr/yMjK/9PT0//Z2dn/4ODg/+bm5v/s7Oz/8vLy//f39//7+/v//v7+///////+/v7//Pz8//n5 - +f/09PT/7+/v/+rq6v/k5OT/39/f/9nZ2f/T09P/zs7O/8nJyf/ExMT/v7+//7y8vP+4uLj/tbW1/7Ky - sv+vr6//ra2t/6urq/+oqKj/hYaa/xwagv8gHaH/IB2t/x8drP8fHan/Hhym/x0bpP8dG6L/HByg/xwb - nP8bG5v/GhqZ/xoal/8aGpb/GRqU/xgak/9KTpv/np6e/5GRkf+RkZH/kJCQ/5CQkP+QkJD/j4+P/4+P - j/+Ojo7/jo6O/46Ojv+MjIz/jIyM/4yMjP+Kior/hISE/3Fxcf8+Pj6wAAAAMgAAAA8AAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAUAAAAPE1NTdVxcXH/gICA/4aGhv+Ghob/hoaG/4aGhv+Ghob/h4eH/4eH - h/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/i4uL/4uLi/+MjIz/jIyM/46O - jv+Pj4//j4+P/5CQkP+RkZH/kpKS/5OTk/+Tk5P/lZWV/5aWlv+Xl5f/mpqa/5ubm/+dnZ3/n5+f/6Gh - of+kpKT/pqam/6mpqf+tra3/sLCw/7S0tP+4uLj/vb29/8PDw//IyMj/z8/P/9XV1f/c3Nz/4uLi/+rq - 6v/w8PD/9vb2//v7+//+/v7///////7+/v/7+/v/9/f3//Ly8v/t7e3/5+fn/+Hh4f/b29v/1dXV/8/P - z//Jycn/xMTE/7+/v/+8vLz/t7e3/7S0tP+wsLD/rq6u/6urq/+oqKj/pqam/6Wlpf+jo6P/PDyB/x0b - lf8fHan/Hx2s/x4dqf8dHKb/HRuj/x0bov8cHKD/HBuc/xsbmv8aGpn/GhqX/xoalv8ZGpT/GBqT/x4f - jP+lpaf/kJCQ/4+Pj/+Pj4//j4+P/46Ojv+Ojo7/jIyM/4yMjP+MjIz/i4uL/4uLi/+Li4v/i4uL/4qK - iv+FhYX/dXV1/1JSUtUAAAA8AAAAFAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABoDAwNKV1dX63V1 - df+BgYH/hYWF/4WFhf+FhYX/hYWF/4WFhf+Ghob/hoaG/4aGhv+Ghob/h4eH/4eHh/+Hh4f/h4eH/4iI - iP+IiIj/iIiI/4mJif+JiYn/ioqK/4qKiv+Li4v/i4uL/4yMjP+MjIz/jo6O/4+Pj/+Pj4//kJCQ/5GR - kf+SkpL/k5OT/5SUlP+Wlpb/l5eX/5qamv+bm5v/nZ2d/5+fn/+hoaH/paWl/6enp/+rq6v/r6+v/7Oz - s/+4uLj/vb29/8PDw//Jycn/0NDQ/9fX1//f39//5ubm/+3t7f/19fX/+vr6//7+/v///////v7+//v7 - +//29vb/8fHx/+rq6v/k5OT/3Nzc/9bW1v/Q0ND/ysrK/8TExP+/v7//u7u7/7a2tv+zs7P/r6+v/62t - rf+pqan/p6en/6Wlpf+jo6P/oKCg/5+fn/9+fpL/GxmF/x4dov8fHav/Hh2p/x0cpv8dG6P/HBui/xsc - oP8bG5z/Ghua/xoamP8aGpf/GhqW/xkalP8YGpP/GBqM/4iLpv+Ojo7/jo6O/4yMjP+MjIz/jIyM/4uL - i/+Li4v/i4uL/4qKiv+Kior/ioqK/4qKiv+JiYn/iYmJ/4aGhv95eXn/W1tb6wMDA0oAAAAaAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAGAAAAIBoaGmlfX1/2eHh4/4KCgv+EhIT/hISE/4SEhP+EhIT/hISE/4WF - hf+FhYX/hYWF/4WFhf+FhYX/hoaG/4aGhv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJ - if+JiYn/ioqK/4qKiv+Li4v/jIyM/4yMjP+Ojo7/j4+P/5CQkP+RkZH/kpKS/5OTk/+UlJT/lZWV/5eX - l/+ampr/m5ub/52dnf+goKD/o6Oj/6ampv+pqan/rq6u/7Ozs/+3t7f/vb29/8TExP/Kysr/09PT/9ra - 2v/i4uL/6+vr//Ly8v/5+fn//v7+///////+/v7/+vr6//X19f/v7+//5+fn/+Dg4P/Z2dn/0dHR/8rK - yv/ExMT/vr6+/7q6uv+1tbX/srKy/66urv+rq6v/qKio/6Wlpf+jo6P/oKCg/5+fn/+dnZ3/nJyc/5qa - mv8wMX//Hh2Y/x8dqf8eHan/HRym/x0bo/8cHKH/Gxyg/xsbnP8aG5r/GhqY/xoal/8aGpb/GRqU/xga - k/8YGo7/Y2ie/4yMjP+Li4v/i4uL/4uLi/+Kior/ioqK/4qKiv+JiYn/iYmJ/4mJif+JiYn/iIiI/4iI - iP+IiIj/hoaG/3x8fP9iYmL2HR0daQAAACAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAlLS0th2ho - aP57e3v/goKC/4ODg/+Dg4P/g4OD/4ODg/+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+FhYX/hYWF/4WF - hf+FhYX/hoaG/4aGhv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4mJif+Kior/ioqK/4uL - i/+MjIz/jIyM/46Ojv+Pj4//kJCQ/5GRkf+SkpL/k5OT/5WVlf+Xl5f/mpqa/5ycnP+enp7/oaGh/6Sk - pP+oqKj/ra2t/7Kysv+3t7f/vb29/8TExP/Nzc3/1dXV/9/f3//n5+f/8PDw//f39//8/Pz///////7+ - /v/5+fn/8vLy/+vr6//i4uL/29vb/9PT0//Ly8v/xMTE/76+vv+4uLj/tLS0/7CwsP+srKz/qKio/6am - pv+jo6P/oKCg/56env+dnZ3/m5ub/5qamv+Xl5f/lpaW/2RliP8cGoz/Hxyk/x4cp/8dHKb/HRuj/xwc - of8bHJ//Gxuc/xobmv8aGpj/GRuW/xkalv8YGpT/GBqT/xgZj/9ARZT/jIyM/4qKiv+JiYn/iYmJ/4mJ - if+JiYn/iIiI/4iIiP+IiIj/iIiI/4eHh/+Hh4f/h4eH/4eHh/+Ghob/gICA/2pqav4tLS2HAAAAJQAA - AAgAAAAAAAAAAAAAAAAAAAAAAAAACgAAACs4ODidb29v/3x8fP+BgYH/goKC/4KCgv+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4SEhP+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+FhYX/hYWF/4aG - hv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4mJif+Kior/i4uL/4uLi/+MjIz/jo6O/4+P - j/+QkJD/kpKS/5OTk/+VlZX/lpaW/5qamv+cnJz/n5+f/6Ojo/+mpqb/q6ur/7CwsP+2trb/vb29/8XF - xf/Pz8//2dnZ/+Li4v/t7e3/9vb2//z8/P///////v7+//f39//w8PD/5+fn/93d3f/V1dX/zc3N/8TE - xP+9vb3/t7e3/7Ozs/+urq7/qamp/6ampv+kpKT/oKCg/56env+cnJz/m5ub/5mZmf+Xl5f/lZWV/5SU - lP+Tk5P/jo6R/x8fgv8eHaD/Hhyn/x0bpf8dG6P/HBuh/xsbn/8bG5z/Ghqa/xoamP8ZG5b/GRqV/xga - lP8XGpP/FxmQ/yQniv+Tk5P/iIiI/4iIiP+IiIj/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Ghob/hoaG/4aG - hv+Ghob/hoaG/4WFhf+BgYH/cnJy/zw8PJ0AAAArAAAACgAAAAAAAAAAAAAAAAAAAAAAAAANAAAALkND - Q7JxcXH/fn5+/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hYWF/4WFhf+Ghob/hoaG/4aG - hv+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4qKiv+Li4v/i4uL/4yMjP+Ojo7/kJCQ/5GRkf+SkpL/lJSU/5aW - lv+ampr/nJyc/5+fn/+kpKT/qKio/66urv+1tbX/vb29/8fHx//R0dH/3Nzc/+jo6P/09PT/+/v7//// - ///8/Pz/9vb2/+zs7P/h4eH/19fX/87Ozv/ExMT/vb29/7a2tv+wsLD/rKys/6enp/+kpKT/oKCg/56e - nv+cnJz/mpqa/5eXl/+Wlpb/lJSU/5OTk/+SkpL/kZGR/5CQkP+Pj4//Pz9+/x0bmP8dHKb/HRul/x0b - o/8cG6H/Gxuf/xsanP8aGpr/GhqY/xkalv8ZGpX/GBqU/xcak/8XGZD/FxmF/5GSlv+Hh4f/h4eH/4aG - hv+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WFhf+FhYX/hYWF/4KCgv9zc3P/REREsgAA - AC4AAAANAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAzS0tLx3Jycv99fX3/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4SEhP+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+Ghob/hoaG/4aGhv+Hh4f/h4eH/4iI - iP+JiYn/iYmJ/4qKiv+Li4v/jIyM/4+Pj/+QkJD/kpKS/5OTk/+Wlpb/mpqa/52dnf+hoaH/pqam/62t - rf+0tLT/vb29/8jIyP/V1dX/4uLi//Dw8P/7+/v///////v7+//y8vL/5+fn/9vb2//Pz8//xMTE/7y8 - vP+0tLT/rq6u/6ioqP+lpaX/oKCg/52dnf+bm5v/mZmZ/5aWlv+VlZX/k5OT/5KSkv+RkZH/kJCQ/4+P - j/+Ojo7/jIyM/4yMjP9kZIL/GxqP/x0bo/8dG6X/HBui/xwbof8bG5//Gxqb/xoamv8aGpj/GRqW/xkZ - lf8YGZP/FxmT/xcZkP8XGYb/fX6R/4WFhf+FhYX/hYWF/4WFhf+FhYX/hYWF/4WFhf+EhIT/hISE/4SE - hP+EhIT/hISE/4SEhP+EhIT/gYGB/3V1df9MTEzHAAAAMwAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAEAAA - ADZSUlLVdHR0/35+fv+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hoaG/4aGhv+Hh4f/h4eH/4iIiP+JiYn/ioqK/4uL - i/+MjIz/j4+P/5GRkf+Tk5P/lZWV/5qamv+dnZ3/o6Oj/6mpqf+zs7P/vb29/8rKyv/a2tr/6+vr//n5 - +f//////+vr6/+/v7//g4OD/0dHR/8TExP+6urr/srKy/6urq/+lpaX/oKCg/52dnf+ampr/l5eX/5WV - lf+Tk5P/kpKS/5CQkP+Pj4//jo6O/4yMjP+MjIz/i4uL/4qKiv+Kior/iYmJ/4WFiP8dHIb/HRyf/x0b - pf8cG6L/Gxuh/xsbn/8bGpv/Ghqa/xoamP8ZGpb/GRmV/xgZk/8XGZH/FxiQ/xcZh/9pbIz/hISE/4SE - hP+EhIT/hISE/4SEhP+EhIT/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+BgYH/dnZ2/1VV - VdQAAAA2AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAOVhYWOB2dnb/fX19/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+EhIT/hISE/4SEhP+FhYX/hYWF/4aGhv+Hh4f/h4eH/4iIiP+JiYn/i4uL/4yMjP+Pj4//kpKS/5WV - lf+ampr/n5+f/6ampv+wsLD/vb29/8/Pz//i4uL/9vb2///////39/f/5+fn/9XV1f/ExMT/t7e3/66u - rv+mpqb/oKCg/5ycnP+ZmZn/lZWV/5OTk/+RkZH/kJCQ/4+Pj/+MjIz/i4uL/4uLi/+Kior/iYmJ/4mJ - if+IiIj/h4eH/4eHh/+Hh4f/hoaG/zI0gP8cG47/GxuU/xsakf8aGpD/GhqO/xoai/8aGor/GRmJ/xgZ - h/8YGYb/GBmE/xcZhP8XGIL/Fhl7/2Rmiv+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+CgoL/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4CAgP94eHj/WVlZ4AAAADgAAAASAAAAAAAAAAAAAAAAAAAAAAAA - ABMAAAA6XV1d63d3d/9+fn7/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4SE - hP+EhIT/hYWF/4aGhv+Ghob/h4eH/4mJif+Kior/jIyM/5CQkP+Tk5P/mpqa/6Ghof+tra3/vb29/9XV - 1f/w8PD///////Ly8v/b29v/xMTE/7S0tP+oqKj/oKCg/5ubm/+Wlpb/k5OT/5GRkf+Pj4//jIyM/4uL - i/+Kior/iYmJ/4iIiP+IiIj/h4eH/4eHh/+Ghob/hoaG/4WFhf+FhYX/hYWF/4SEhP+EhIT/RUV0/xYW - bP8VFW3/FRVr/xUVav8UFWn/FBRn/xQUZv8TE2X/EhNj/xIUYv8SFGH/EhRg/xITYP8RE13/S05u/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gICA/3h4 - eP9fX1/rAAAAOgAAABMAAAAAAAAAAAAAAAAAAAAAAAAAEwAAADxhYWHxeHh4/319ff9+fn7/fn5+/35+ - fv9+fn7/fn5+/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4ODg/+Dg4P/hISE/4WF - hf+Ghob/h4eH/4mJif+MjIz/kpKS/5qamv+mpqb/vb29/+Li4v//////5+fn/8TExP+urq7/oKCg/5mZ - mf+Tk5P/kJCQ/4yMjP+Li4v/iYmJ/4iIiP+Hh4f/hoaG/4aGhv+FhYX/hYWF/4SEhP+EhIT/hISE/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/goKC/4KCgv9cW3f/FBVf/xQVXv8UFFz/ExRb/xMUWv8TE1n/ExNY/xIT - V/8SE1b/EhNV/xETVP8RE1P/ERNS/xETUv9FR2n/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP9+fn7/eXl5/2JiYvAAAAA8AAAAEwAAAAAAAAAAAAAAAAAA - AAAAAAATAAAAPWZmZvV5eXn/fX19/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GBgf+CgoL/goKC/4ODg/+FhYX/h4eH/4yM - jP+ampr/vb29///////ExMT/oKCg/5OTk/+MjIz/iYmJ/4eHh/+Ghob/hYWF/4SEhP+Dg4P/g4OD/4OD - g/+CgoL/goKC/4KCgv+CgoL/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/35+ - fv96enr/ZGRk8wAAAD0AAAATAAAAAAAAAAAAAAAAAAAAAAAAABMAAAA9Z2dn+Ht7e/99fX3/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv+bm5v/vLy8/7y8 - vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+SkpL/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fX19/3p6ev9mZmb2AAAAPQAAABMAAAAAAAAAAAAA - AAAAAAAAAAAAEwAAADxoaGj4fHx8/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/2pri/9OUpr/TlKg/05SoP9OU6L/TlOi/09To/9PVKT/T1Sl/1BU - pf9RU6f/UVOo/1FUq/9SVKz/UlWm/4GBk/9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/gICA/4CAgP+AgID/gICA/4GBgf+CgoL/g4OD/4WF - hf+Kior/lpaW/7u7u///////w8PD/6CgoP+Tk5P/jIyM/4mJif+Hh4f/hoaG/4WFhf+EhIT/g4OD/4OD - g/+Dg4P/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/fHx8/2pqavgAAAA8AAAAEwAAAAAAAAAAAAAAAAAAAAAAAAATAAAAOmlpafV8fHz/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/UFOB/xcY - hv8XGY7/FxiP/xcZkf8YGZP/GBmV/xgalv8ZGpf/GhqZ/xsam/8bGpz/Gxug/xwbov8cG5z/b3CW/35+ - fv9+fn7/fn5+/35+fv+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4GBgf+BgYH/gYGB/4KC - gv+CgoL/g4OD/4SEhP+FhYX/h4eH/4qKiv+Pj4//lpaW/6Ojo/+7u7v/4uLi///////l5eX/w8PD/62t - rf+goKD/mZmZ/5OTk/+Pj4//jIyM/4qKiv+JiYn/iIiI/4eHh/+Ghob/hoaG/4WFhf+FhYX/hISE/4SE - hP+EhIT/g4OD/4ODg/+Dg4P/g4OD/4ODg/+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP99fX3/ampq9QAAADoAAAATAAAAAAAA - AAAAAAAAAAAAAAAAABIAAAA5Z2dn8H19ff+AgID/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9QUn7/FxiF/xcZjv8XGI//FxmR/xgZk/8YGZX/GBqW/xka - l/8aGpn/Gxqb/xsanf8bG6D/HBui/xwbn/9naZ7/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GB - gf+BgYH/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hYWF/4aGhv+IiIj/ioqK/4yMjP+RkZH/lpaW/56e - nv+pqan/u7u7/9XV1f/x8fH///////Hx8f/Z2dn/w8PD/7Ozs/+oqKj/oKCg/5qamv+Wlpb/k5OT/5CQ - kP+Pj4//jIyM/4uLi/+Kior/iYmJ/4iIiP+Hh4f/h4eH/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4SE - hP+EhIT/hISE/4SEhP+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4KCgv+CgoL/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/goKC/4CAgP9paWnwAAAAOQAAABIAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADZmZmbqfX19/4CA - gP9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/4CAgP+AgID/gICA/1RW - e/8XGIP/FxiP/xcYj/8XGZH/GBmT/xkZlf8ZGpb/GRqX/xoamf8bGpv/Gxqd/xsboP8cG6L/HRui/1hZ - ov+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hISE/4WFhf+Ghob/h4eH/4iI - iP+Kior/jIyM/4+Pj/+SkpL/lpaW/5ycnP+jo6P/rq6u/7u7u//Ozs7/4uLi//b29v//////9vb2/+Xl - 5f/T09P/w8PD/7a2tv+tra3/pqam/6CgoP+cnJz/mZmZ/5WVlf+Tk5P/kZGR/4+Pj/+Ojo7/jIyM/4uL - i/+Kior/ioqK/4mJif+IiIj/iIiI/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/gYGB/2lpaekAAAA2AAAAEAAA - AAAAAAAAAAAAAAAAAAAAAAAPAAAAM2FhYd59fX3/gYGB/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/WVt3/xcYgf8XGY7/FxiP/xcZkf8YGZP/GRmV/xka - lv8ZGpf/GhqZ/xsam/8bGp3/Gxug/xwbov8dG6T/P0Ch/4yMjP+CgoL/g4OD/4ODg/+EhIT/hISE/4WF - hf+FhYX/hoaG/4eHh/+IiIj/iIiI/4qKiv+Li4v/jo6O/5CQkP+Tk5P/lpaW/5ubm/+goKD/p6en/7Cw - sP+7u7v/ycnJ/9ra2v/r6+v/+vr6///////5+fn/7Ozs/93d3f/Pz8//w8PD/7i4uP+wsLD/qamp/6Wl - pf+goKD/nJyc/5qamv+Wlpb/lJSU/5OTk/+RkZH/kJCQ/4+Pj/+Ojo7/jIyM/4uLi/+Li4v/ioqK/4mJ - if+JiYn/iIiI/4iIiP+IiIj/h4eH/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hISE/4SEhP+EhIT/hISE/4SEhP+EhIT/hISE/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4WFhf+CgoL/ZGRk3QAAADIAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAuX19f0X5+ - fv+CgoL/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gYGB/4GB - gf9oaHn/Fhh7/xcZjf8XGI//FxmR/xgZk/8ZGZX/GRqW/xoamP8aGpn/Gxqb/xsanf8bG6D/HBui/x0b - pP8mJqD/n5+f/4SEhP+FhYX/hYWF/4aGhv+Ghob/h4eH/4iIiP+JiYn/ioqK/4uLi/+MjIz/j4+P/5GR - kf+Tk5P/lpaW/5qamv+enp7/o6Oj/6mpqf+ysrL/u7u7/8fHx//V1dX/4uLi//Hx8f/7+/v///////v7 - +//x8fH/5eXl/9nZ2f/Ozs7/w8PD/7q6uv+zs7P/ra2t/6ioqP+kpKT/oKCg/52dnf+ampr/mZmZ/5aW - lv+UlJT/k5OT/5KSkv+QkJD/j4+P/4+Pj/+Ojo7/jIyM/4uLi/+Li4v/ioqK/4qKiv+JiYn/iYmJ/4iI - iP+IiIj/iIiI/4eHh/+Hh4f/h4eH/4eHh/+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hYWF/4SEhP+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+EhIT/hoaG/4KCgv9gYGDRAAAALgAA - AA0AAAAAAAAAAAAAAAAAAAAAAAAACgAAACpZWVnCfn5+/4KCgv+AgID/gICA/4CAgP+AgID/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/3h5fv8VF3X/FxmL/xcYkP8XGZH/GBmT/xkZ - lf8ZGpb/GhqY/xoamf8bGpv/Gxqd/xsboP8cG6L/HRuk/x0bo/+Ula3/hoaG/4eHh/+Hh4f/iIiI/4mJ - if+Kior/i4uL/4yMjP+Ojo7/kJCQ/5GRkf+Tk5P/lpaW/5qamv+dnZ3/oaGh/6ampv+srKz/s7Oz/7u7 - u//FxcX/0NDQ/9zc3P/q6ur/9fX1//z8/P//////+/v7//X19f/r6+v/4ODg/9XV1f/Ly8v/w8PD/7y8 - vP+1tbX/r6+v/6urq/+mpqb/o6Oj/6CgoP+dnZ3/m5ub/5mZmf+Xl5f/lZWV/5SUlP+Tk5P/kpKS/5GR - kf+QkJD/j4+P/46Ojv+Ojo7/jIyM/4yMjP+Li4v/i4uL/4qKiv+Kior/iYmJ/4mJif+JiYn/iIiI/4iI - iP+IiIj/h4eH/4eHh/+Hh4f/h4eH/4aGhv+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hYWF/4WFhf+Ghob/g4OD/1xcXMIAAAArAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJVJS - Uqt+fn7/g4OD/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4KC - gv+CgoL/goKC/x4hc/8XGIj/FxiQ/xcZkf8YGZP/GRmV/xkalv8aGpj/GhqZ/xsam/8bGp3/Gxug/xwb - ov8dG6T/HRum/2psrv+RkZH/iYmJ/4qKiv+Li4v/jIyM/46Ojv+Pj4//kJCQ/5KSkv+UlJT/lpaW/5mZ - mf+cnJz/n5+f/6Ojo/+oqKj/rq6u/7S0tP+7u7v/xMTE/87Ozv/X19f/4uLi/+3t7f/29vb//Pz8//// - ///8/Pz/9vb2/+/v7//l5eX/3Nzc/9PT0//Kysr/w8PD/7y8vP+2trb/srKy/62trf+pqan/pqam/6Oj - o/+goKD/nZ2d/5ycnP+ampr/mZmZ/5aWlv+VlZX/lJSU/5OTk/+SkpL/kZGR/5CQkP+Pj4//j4+P/46O - jv+Ojo7/jIyM/4yMjP+Li4v/i4uL/4qKiv+Kior/ioqK/4mJif+JiYn/iYmJ/4iIiP+IiIj/iIiI/4iI - iP+Hh4f/h4eH/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4aGhv+Ghob/hoaG/4eHh/+Dg4P/VVVVqwAA - ACUAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAfR0dHk35+fv+EhIT/gYGB/4GBgf+BgYH/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/g4OD/4ODg/+Dg4P/MDRy/xcZhP8XGJD/FxmR/xgZ - k/8ZGZX/GRqW/xoamP8aGpr/Gxqb/xsanf8bG6H/HBui/x0bpP8dG6f/OTuo/6mpqf+Li4v/jIyM/46O - jv+Pj4//kZGR/5KSkv+UlJT/lpaW/5mZmf+bm5v/np6e/6Ghof+lpaX/qamp/6+vr/+1tbX/u7u7/8PD - w//Ly8v/1dXV/93d3f/n5+f/8fHx//n5+f/+/v7///////z8/P/39/f/8fHx/+rq6v/h4eH/2dnZ/9HR - 0f/Kysr/w8PD/729vf+3t7f/s7Oz/6+vr/+rq6v/qKio/6Wlpf+jo6P/oKCg/56env+cnJz/mpqa/5mZ - mf+Xl5f/lpaW/5WVlf+UlJT/k5OT/5KSkv+RkZH/kJCQ/5CQkP+Pj4//j4+P/46Ojv+Ojo7/jIyM/4yM - jP+Li4v/i4uL/4qKiv+Kior/ioqK/4mJif+JiYn/iYmJ/4mJif+IiIj/iIiI/4iIiP+IiIj/h4eH/4eH - h/+Hh4f/h4eH/4eHh/+Ghob/iIiI/4SEhP9ISEiTAAAAIAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAwAA - ABk8PDx6fHx8/oaGhv+Dg4P/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4SE - hP+EhIT/hISE/4SEhP9GSnL/Fhh+/xcYjv8XGZH/GBmT/xkZlf8ZGpb/GhqY/xoamv8bGpv/Gxqd/xwb - of8dG6P/HRuk/x0bp/8eHKf/pKW7/5KSkv+QkJD/kZGR/5OTk/+UlJT/lpaW/5mZmf+bm5v/nZ2d/6Cg - oP+jo6P/p6en/6ysrP+wsLD/tbW1/7u7u//CwsL/ycnJ/9HR0f/a2tr/4uLi/+vr6//09PT/+vr6//7+ - /v///////v7+//n5+f/09PT/7Ozs/+Xl5f/d3d3/1tbW/8/Pz//Jycn/w8PD/729vf+4uLj/tLS0/7Cw - sP+tra3/qamp/6enp/+lpaX/oaGh/6CgoP+enp7/nJyc/5ubm/+ampr/mZmZ/5aWlv+VlZX/lJSU/5SU - lP+Tk5P/kpKS/5KSkv+ZmZn/m5ub/5ubm/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uL - i/+Kior/ioqK/4qKiv+JiYn/iYmJ/4mJif+JiYn/iIiI/4iIiP+IiIj/iIiI/4mJif+Li4v/goKC/kBA - QHoAAAAaAAAABAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAFCkpKVd2dnb0h4eH/4WFhf+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+FhYX/hYWF/2Zmev8VF3X/FxqL/xcZ - k/8YGZP/GRqV/xkalv8aGpj/Ghqa/xsanP8bGp3/HBuh/x0bo/8dG6T/Hhun/x4cqv9gYbL/rKys/5OT - k/+UlJT/lpaW/5mZmf+ampr/nJyc/5+fn/+hoaH/paWl/6ioqP+tra3/sLCw/7a2tv+7u7v/wsLC/8jI - yP/Pz8//19fX/9/f3//n5+f/7+/v//X19f/7+/v//v7+///////+/v7/+vr6//X19f/v7+//6Ojo/+Li - 4v/b29v/1dXV/8/Pz//Jycn/w8PD/76+vv+6urr/tbW1/7Kysv+urq7/rKys/6ioqP+mpqb/pKSk/6Gh - of+goKD/oaGh/6ampv+rq6v/ra2t/7S0tP+1tbX/vr6+/76+vv/IyMj/yMjI/8jIyP/Hx8f/uLi4/5GR - kf+QkJD/kJCQ/4+Pj/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uLi/+Kior/ioqK/4qK - iv+Kior/iYmJ/4mJif+JiYn/i4uL/46Ojv9+fn70KioqWQAAABQAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAOBAQENnJycueIiIj/hoaG/4ODg/+EhIT/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hYWF/4WF - hf+Ghob/hoaG/4aGhv+Hh4f/hYWG/xocbf8XGYb/FxqT/xgalP8ZGpX/GRuW/xoamP8aGpr/Gxuc/xsb - nf8cG6H/HRuj/x0bpf8eHKf/Hxyq/yQjq/+5usP/nJyc/5eXl/+ampr/nJyc/56env+goKD/o6Oj/6am - pv+pqan/rq6u/7Kysv+2trb/u7u7/8HBwf/Hx8f/zs7O/9XV1f/b29v/4uLi/+rq6v/x8fH/9vb2//v7 - +//+/v7///////7+/v/7+/v/9vb2//Hx8f/r6+v/5eXl/9/f3//Z2dn/09PT/87Ozv/IyMj/w8PD/76+ - vv+/v7//vb29/8LCwv/BwcH/xcXF/8XFxf/Kysr/zc3N/9DQ0P/Pz8//z8/P/87Ozv/Bwcr/o6TF/6Kj - xP98fbz/e325/2Fjsv9WWa//SEyp/zU5of9VWZr/k5OT/5KSkv+SkpL/kZGR/5CQkP+QkJD/j4+P/4+P - j/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uLi/+Li4v/ioqK/4qKiv+Ojo7/kJCQ/3h4 - eOcEBAQ2AAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAoaWlpzYmJif+IiIj/hISE/4SE - hP+FhYX/hYWF/4WFhf+FhYX/hoaG/4aGhv+Ghob/h4eH/4eHh/+Hh4f/iIiI/4iIiP+IiIj/NTlw/xcY - gf8YGpD/GBqU/xkalf8ZG5b/GhqY/xobmv8bG5z/Gxuf/xwcof8dG6P/HRyl/x4cp/8fHar/IB2t/2xt - uf+6urr/m5ub/52dnf+fn5//oaGh/6Wlpf+np6f/q6ur/66urv+zs7P/tra2/7u7u//BwcH/x8fH/8vL - y//T09P/2dnZ/+Dg4P/m5ub/7Ozs//Ly8v/39/f//Pz8/////////////v7+//v7+//39/f/8vLy/+3t - 7f/o6Oj/4uLi/9zc3P/X19f/1dXV/9/f3//i4uL/4eHh/9/f3/+5udj/sbHW/5yc0/+Hh87/f3/M/2Fh - xv9gYMT/QUK9/z49uv8sK7X/IB2w/yAdrv8fHaz/Hh2p/x4cpv8dG6T/HRui/xwcoP8cG5z/GxuY/zk8 - kf+VlZX/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5CQkP+QkJD/j4+P/4+Pj/+Pj4//jo6O/46O - jv+MjIz/jIyM/4yMjP+Li4v/i4uL/4+Pj/+RkZH/bm5uzQAAACgAAAAKAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAABgAAAB9VVVWfiYmJ/4qKiv+FhYX/hYWF/4aGhv+Ghob/hoaG/4aGhv+Hh4f/h4eH/4eH - h/+IiIj/iIiI/4iIiP+JiYn/iYmJ/4qKiv9bXHn/FRd0/xgajf8ZGpT/GRqW/xkblv8aGpj/Ghua/xsb - nP8bG5//HByh/x0bo/8dHKX/Hhyp/x8dqv8gHa3/JiWv/7e3yP+srKz/oaGh/6Ojo/+mpqb/qKio/6ys - rP+vr6//s7Oz/7e3t/+7u7v/wcHB/8XFxf/Ly8v/0NDQ/9bW1v/c3Nz/4uLi/+rq6v/v7+//9fX1//n5 - +f/8/Pz////////////+/v7/+/v7//n5+f/19fX/8PDw/+vr6//l5eX/4ODg/9bW2P9WVKD/QD6l/0E9 - u/8pIsb/KiLM/ykhzP8oIcn/JyDG/yYhxP8lIMD/JCC+/yMfvP8jH7r/Ih62/yEes/8hHbD/IB2u/yAd - rP8fHan/Hhym/x0bpP8dG6L/HByg/xwbnP8bG5n/NjmS/5eXl/+Wlpb/lZWV/5WVlf+UlJT/k5OT/5OT - k/+SkpL/kpKS/5GRkf+RkZH/kJCQ/5CQkP+Pj4//j4+P/4+Pj/+Ojo7/jo6O/46Ojv+MjIz/kpKS/5GR - kf9dXV2fAAAAHwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFz09PWyJiYn/jIyM/4iI - iP+Ghob/h4eH/4eHh/+Hh4f/iIiI/4iIiP+IiIj/iIiI/4mJif+JiYn/ioqK/4qKiv+Li4v/i4uL/4eI - iv8YGWn/GBqF/xkak/8aGpb/GhqX/xoamP8aG5r/Gxuc/xsbn/8cG6L/HRuj/x0cpf8eHKn/Hx2r/yAd - rf8gHa//VFW5/8vLy/+oqKj/p6en/6mpqf+tra3/sLCw/7S0tP+3t7f/u7u7/7+/v//ExMT/ycnJ/8/P - z//V1dX/2tra/+Dg4P/m5ub/6+vr//Hx8f/29vb/+vr6//z8/P////////////7+/v/8/Pz/+fn5//X1 - 9f/x8fH/7Ozs/+fn5//i4uL/3d3d/6Wkwv8rKIj/Ix6T/ychrf8oIsD/KSLJ/yghyf8nIMb/JiHE/yYg - wP8lIL//JB+8/yMfuv8jH7b/Ih+z/yEesv8gHa7/IB2s/x8dqf8eHKf/HRyk/x0bov8cHKD/HBud/xsb - mv8vMZL/mpqa/5mZmf+Xl5f/lpaW/5aWlv+VlZX/lJSU/5SUlP+Tk5P/k5OT/5KSkv+SkpL/kZGR/5GR - kf+QkJD/kJCQ/5CQkP+Pj4//j4+P/5CQkP+UlJT/kZGR/0FBQW0AAAAXAAAAAwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAQISEhRX5+fu2RkZH/ioqK/4eHh/+IiIj/iIiI/4iIiP+JiYn/iYmJ/4mJ - if+Kior/ioqK/4uLi/+Li4v/jIyM/4yMjP+Ojo7/jo6O/z5Bcf8WGHn/GRmO/xoalv8aGpf/GhqZ/xsb - mv8cG5z/HBuf/x0bov8dG6P/HRyl/x4cqf8fHav/IB2t/yAdr/8hHrL/mJjH/8fHx/+srKz/rq6u/7Cw - sP+0tLT/t7e3/7u7u/+/v7//xMTE/8nJyf/Ozs7/09PT/9fX1//d3d3/4uLi/+jo6P/t7e3/8vLy//b2 - 9v/6+vr//Pz8/////////////v7+//z8/P/6+vr/9vb2//Ly8v/v7+//6urq/+Xl5f/g4OD/3Nzc/7q5 - y/86N47/Ix2N/yUgpP8nIbv/KCLG/ycgxv8mIcT/JiDC/yUgv/8kH7z/Ix+6/yMftv8iH7T/IR6y/yAe - rv8gHaz/Hx6q/x4dp/8dHKT/HRyi/xwdoP8cHJ3/Gxua/yorkP+cnJz/m5ub/5qamv+ZmZn/mZmZ/5eX - l/+Wlpb/lZWV/5WVlf+UlJT/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5GRkf+QkJD/k5OT/5eX - l/+GhobtISEhRQAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAobW1txpGR - kf+Ojo7/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/i4uL/4uLi/+Li4v/jIyM/46Ojv+Ojo7/j4+P/4+P - j/+QkJD/dXaF/xQWav8ZGoj/GhqV/xoal/8aGpn/Gxua/xwbnP8cG5//HRui/x0bpP8eHKX/Hxyp/yAd - q/8gHK7/IR2w/yEes/8uLbb/w8TR/8XFxf+ysrL/tLS0/7e3t/+7u7v/v7+//8PDw//IyMj/zc3N/9HR - 0f/W1tb/29vb/+Dg4P/m5ub/6+vr/+/v7//09PT/9/f3//v7+//+/v7////////////+/v7//Pz8//r6 - +v/39/f/9PT0//Dw8P/s7Oz/5+fn/+Tk5P/f39//2tra/8vL0v9KSZX/IR2I/yMenP8mIbX/JyHC/yYh - xP8mIML/JSC//yQfvP8jH7r/Ix+3/yIftP8hHrL/IB6u/yAdrP8fHqr/Hh2n/x0cpP8dHKL/HB2h/xwc - nf8bHJv/IySP/5+fn/+dnZ3/nJyc/5ubm/+ampr/mpqa/5mZmf+Xl5f/lpaW/5aWlv+VlZX/lZWV/5SU - lP+UlJT/k5OT/5OTk/+SkpL/kpKS/5GRkf+VlZX/mpqa/3d3d8cAAAAoAAAACQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABxcXFyVkZGR/5GRkf+Kior/ioqK/4qKiv+Li4v/i4uL/4uL - i/+MjIz/jIyM/46Ojv+Ojo7/j4+P/4+Pj/+QkJD/kZGR/5KSkv+SkpL/MjRu/xcZe/8aGZD/GhqX/xoa - mf8bG5v/HBuc/xwbn/8dG6L/HRuk/x4cpv8fHKn/IB2r/yAdrv8hHrD/Ih+z/yMftv9MTb7/1dXX/8nJ - yf+4uLj/u7u7/7+/v//Dw8P/x8fH/8vLy//Q0ND/1dXV/9nZ2f/d3d3/4uLi/+fn5//s7Oz/8fHx//X1 - 9f/5+fn/+/v7//7+/v////////////7+/v/8/Pz/+/v7//f39//19fX/8fHx/+3t7f/q6ur/5eXl/+Hh - 4f/d3d3/2dnZ/9PT1P9nZ6H/IB2E/yIelf8lIK//JiG//yYhwv8lIL//JB+8/yMfuv8jH7f/Ih+0/yEe - sv8gHq7/IB2t/x8eqv8eHaf/HRyk/x0cov8cHaH/HByd/xscm/8dHo3/o6Oj/5+fn/+enp7/nZ2d/5yc - nP+bm5v/mpqa/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5WVlf+VlZX/lJSU/5SUlP+Tk5P/lJSU/5mZ - mf+ampr/YmJilgAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAETEx - MVOMjIz6lZWV/4+Pj/+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//j4+P/5CQkP+QkJD/kZGR/5KS - kv+Tk5P/k5OT/5SUlP91doj/FRZr/xkaiP8aG5X/GhqZ/xsbm/8cG53/HByf/x0bov8dHKT/Hh2m/x8d - qf8gHqv/IB2u/yEesP8iH7T/Ix+2/yMguP9lZMb/29vb/9DQ0P+/v7//w8PD/8fHx//Kysr/z8/P/9PT - 0//X19f/3Nzc/+Hh4f/l5eX/6urq/+3t7f/y8vL/9vb2//n5+f/7+/v//v7+/////////////v7+//z8 - /P/7+/v/+fn5//b29v/y8vL/7+/v/+vr6//n5+f/5OTk/+Dg4P/b29v/19fX/9TU1P+FhK7/IyCF/yId - nP8mIbr/JiHC/yUhv/8kILz/Ix+7/yMft/8iH7T/IR6y/yAer/8gHa3/Hx6q/x4dp/8dHKT/HRyj/xwd - of8cHJ3/HByb/xsbjP+mpqf/oaGh/6CgoP+fn5//np6e/52dnf+cnJz/m5ub/5ubm/+ampr/mZmZ/5mZ - mf+Xl5f/l5eX/5aWlv+VlZX/lZWV/5WVlf+Wlpb/np6e/5SUlPo0NDRTAAAAEQAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAJ3x8fNGZmZn/k5OT/4yMjP+Ojo7/jo6O/4+P - j/+Pj4//j4+P/5CQkP+RkZH/kZGR/5KSkv+Tk5P/k5OT/5SUlP+VlZX/lpaW/5eXl/8wM27/Fxh4/xob - j/8aG5j/Gxub/xwcnf8cHKD/HRyi/x0cpP8eHab/Hx2q/yAdrP8gHa7/IR6w/yIftP8jH7f/IyC4/yQf - vP9vbsr/39/f/9nZ2f/Hx8f/ycnJ/87Ozv/R0dH/1tbW/9ra2v/f39//4uLi/+fn5//r6+v/8PDw//T0 - 9P/29vb/+vr6//z8/P/+/v7////////////+/v7//v7+//v7+//5+fn/9vb2//T09P/w8PD/7Ozs/+jo - 6P/l5eX/4eHh/93d3f/a2tr/1tbW/9PT0/+hoL//Mi2t/yYhvf8mIcL/JiG//yUgvf8jILv/IyC3/yIf - tP8hHrL/IB6v/yAdrf8gHqr/Hx2n/x4cpf8dHKP/HB2h/xwcnf8cHJv/GxuM/6ChqP+kpKT/oaGh/6Gh - of+goKD/n5+f/56env+dnZ3/nJyc/5ycnP+bm5v/mpqa/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5ub - m/+goKD/g4OD0QAAACcAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAQAAAAZX19fjpmZmf+Wlpb/kJCQ/4+Pj/+Pj4//kJCQ/5CQkP+RkZH/kZGR/5KSkv+Tk5P/k5OT/5SU - lP+VlZX/lpaW/5eXl/+ZmZn/mpqa/31+jv8WF2j/GRqE/xobl/8bHJv/HByd/xwcoP8dHKL/HRyk/x4d - pv8fHar/IB2s/yAdrv8hHrD/Ih+0/yMft/8jH7r/JB+8/yUhvv9hYsv/3d3h/9/f3//Q0ND/0NDQ/9XV - 1f/Z2dn/3Nzc/+Hh4f/l5eX/6urq/+3t7f/x8fH/9fX1//f39//6+vr//Pz8//7+/v////////////// - ///+/v7/+/v7//r6+v/39/f/9fX1//Hx8f/t7e3/6+vr/+fn5//k5OT/4ODg/9zc3P/Z2dn/3d3d/+bm - 5v/ExeH/KSPD/yYhwv8mIcD/JSC9/yQgu/8jILf/IyC1/yIfs/8hH6//IB6t/yAeqv8fHaf/Hhyl/x0c - o/8cHaH/HByd/xwcnP8bG43/mZql/6Wlpf+kpKT/o6Oj/6Ghof+goKD/oKCg/5+fn/+enp7/nZ2d/52d - nf+cnJz/m5ub/5qamv+ampr/mZmZ/5mZmf+ZmZn/oKCg/6Ghof9mZmaOAAAAGQAAAAQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA8qKipIkZGR8pycnP+Tk5P/kJCQ/5GR - kf+RkZH/kpKS/5KSkv+Tk5P/lJSU/5SUlP+VlZX/lpaW/5eXl/+ZmZn/mZmZ/5qamv+bm5v/nJyc/0dI - d/8WF3L/GhuN/xscmv8cHJ3/HByg/x0cov8dHKT/Hh2m/x8dqv8gHaz/IB2v/yEesP8iH7T/Ix+3/yMf - uv8kIL3/JSG+/yYhwv9NSsr/2trj/+bm5v/c3Nz/19fX/9vb2//f39//4uLi/+fn5//r6+v/7+/v//Ly - 8v/19fX/+fn5//v7+//8/Pz//v7+//////////////////7+/v/8/Pz/+vr6//f39//19fX/8vLy/+/v - 7//s7Oz/6Ojo/+Xl5f/i4uL/5OTk/+rq6v/r6+v/39/o/19d0f8nIcX/JiHD/yYhwP8lIL3/JCC7/yMg - t/8jILX/Ih+z/yEfr/8gHq3/IB+q/x8eqf8eHaX/HR2j/xwdof8cHJ3/HByc/xscjv+Vlqb/p6en/6am - pv+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//np6e/52dnf+dnZ3/nJyc/5ubm/+bm5v/mpqa/52d - nf+kpKT/mZmZ8i4uLkgAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAABwAAACF6enq9np6e/5mZmf+SkpL/kpKS/5KSkv+Tk5P/lJSU/5SUlP+VlZX/lpaW/5eX - l/+ZmZn/mZmZ/5qamv+bm5v/nJyc/52dnf+enp7/l5ec/yAjaf8YGXv/GxyT/xwcnP8cHKD/HRyj/x0c - pP8eHab/Hx2q/yAdrP8gHa//IR6y/yIftP8jILf/JCC6/yUgvf8mIb//JiHC/ychxP9DQMz/zMvk/+vr - 6//o6Oj/4eHh/+Hh4f/l5eX/6Ojo/+zs7P/w8PD/8vLy//b29v/5+fn/+/v7//z8/P/+/v7///////// - /////////v7+//z8/P/6+vr/+fn5//b29v/09PT/8PDw/+3t7f/q6ur/6urq/+/v7//w8PD/6+vu/5ST - 3v82M8z/KCLH/ychxf8mIcP/JiHA/yUgvf8kILv/IyC4/yMgtf8iH7P/IR+v/yAerf8gH6v/Hx6p/x4d - pf8dHaP/HB2h/xwdn/8cHZz/GxyP/5OUqf+pqan/qKio/6enp/+mpqb/paWl/6SkpP+jo6P/oaGh/6Cg - oP+goKD/n5+f/56env+dnZ3/nZ2d/5ycnP+cnJz/o6Oj/6enp/+Dg4O+AAAAIQAAAAcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAE0xMTGecnJz+n5+f/5aW - lv+Tk5P/lJSU/5WVlf+VlZX/lpaW/5eXl/+Xl5f/mZmZ/5qamv+bm5v/nJyc/52dnf+enp7/n5+f/6Cg - oP+hoaH/bW6K/xYWaf8aG4X/HBuZ/xwcoP8dHKP/Hhyl/x8dpv8gHar/IB2s/yEer/8iH7L/IiC0/yMg - t/8kILr/JSC9/yYhv/8mIcP/JyHE/yghx/8wKsv/j47b/+3t7f/v7+//7e3t/+rq6v/q6ur/7e3t//Hx - 8f/09PT/9vb2//n5+f/7+/v//Pz8//7+/v/////////////////+/v7//Pz8//v7+//5+fn/9vb2//T0 - 9P/x8fH/8fHx//Ly8v/09PT/8vLy/6mp5v9EP9X/KiPN/ykjyv8oIsn/JyHG/yYhw/8mIcD/JSC9/yQg - u/8jILj/IyC1/yIfs/8hH6//IB6t/yAfq/8fHqn/Hh2l/x0do/8cHaH/HB2f/xwdnP8bHJD/jY6n/6ys - rP+rq6v/qamp/6ioqP+np6f/pqam/6Wlpf+kpKT/o6Oj/6Ghof+goKD/oKCg/5+fn/+enp7/nZ2d/6Cg - oP+np6f/pqam/lBQUGgAAAATAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAKBgYGKYmJidOjo6P/nJyc/5WVlf+VlZX/lpaW/5eXl/+Xl5f/mZmZ/5qa - mv+bm5v/nJyc/52dnf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+mpqb/R0l6/xcYb/8bG4z/HByd/x0c - o/8eHaX/Hx2n/yAeqv8gHqz/IR6v/yIfsv8jILX/IyC3/yQguv8lIL3/JiG//yYhw/8nIcX/KCLH/ykj - yv8qI8z/TEnV/7q66P/y8vL/9PT0//X19f/09PT/9PT0//X19f/39/f/+vr6//v7+//+/v7//v7+//// - //////////////7+/v/8/Pz/+/v7//n5+f/5+fn/9/f3//f39//39/f/9vb2/7u77P9NStr/KyPS/yok - 0P8qI83/KSPL/ygiyf8nIsb/JiHD/yYhwP8lIL3/JCC8/yMguP8jILX/Ih+z/yEfr/8gHq7/IB+r/x8e - qf8eHaX/HR2j/x0dov8cHZ//HB2c/xsckf+Ehqf/rq6u/6ysrP+rq6v/qamp/6ioqP+np6f/pqam/6Wl - pf+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//paWl/62trf+RkZHTBgYGKQAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAVYWFhfaam - pv+jo6P/mZmZ/5eXl/+Xl5f/mZmZ/5qamv+bm5v/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Oj - o/+lpaX/pqam/6enp/+kpKb/Ky5v/xkZdf8bHJD/HR2g/x4dpf8fHqf/IB6q/yAerP8hHq//Ih+y/yMg - tf8jILj/JCC6/yUgvf8mIb//JiHD/ychxf8oIsf/KSPK/yojzP8qJM7/KyPS/1ZT2/+sq+v/7u31//f3 - 9//5+fn/+vr6//r6+v/7+/v//Pz8//7+/v///////////////////////v7+//7+/v/8/Pz//Pz8//v7 - +//6+vr/+fn5/7W17/9RTd7/LSTX/ywk1P8rI9L/KiTQ/yojzf8pI8v/KCLJ/ycixv8mIcP/JiLA/yUh - vv8kILz/IyC4/yMgtf8iH7P/IR+w/yAerv8gH6v/Hx6p/x4dpf8dHaP/HR2i/xwdn/8cHZz/GxyT/4CC - p/+vr6//rq6u/62trf+srKz/q6ur/6mpqf+oqKj/p6en/6ampv+lpaX/pKSk/6SkpP+jo6P/oaGh/6Oj - o/+srKz/rq6u/2ZmZn0AAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAoGBgYqk5OT2qioqP+enp7/mZmZ/5qamv+ampr/m5ub/5yc - nP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ojo/+kpKT/paWl/6enp/+oqKj/qamp/6ysrP+SkqD/Hh5p/xkZ - ev8cHJX/Hh2j/x8ep/8gHqv/IB6s/yEer/8iH7L/IyC1/yMguP8kILv/JSC9/yYhv/8mIcP/JyLF/ygi - yf8pI8v/KiPM/yokzv8rI9L/LCTU/y0k1/8zKtn/ZGHi/7Cu8P/z8vr//Pz8//z8/P/+/v7///////// - /////////////////////////v7+//7+/v/8/Pz/xsX1/4J/6v9AOt//Liba/y4l2f8tJNf/LCTU/ysj - 0v8qJND/KiPN/ykjy/8oIsn/JyLG/yYhw/8mIsD/JSG+/yQhvP8jILj/IyC1/yIfs/8hH7D/IB6u/yAf - q/8fHqn/Hh2l/x0dpP8dHaL/HB2f/xwdnP8bG5P/enym/7Kysv+wsLD/r6+v/66urv+srKz/q6ur/6mp - qf+oqKj/qKio/6enp/+mpqb/paWl/6SkpP+jo6P/qamp/7Kysv+ZmZnbBgYGKgAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA - ABVmZmZ8qamp/qenp/+dnZ3/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ghof+jo6P/paWl/6am - pv+np6f/qKio/6urq/+srKz/rq6u/6+vr/+Dg5v/Ghpq/xoafv8dHZf/Hx6k/yAeq/8gHq3/IR6v/yIf - sv8jILX/IyC4/yQgu/8lIL3/JiG//yYhw/8nIsX/KCLJ/ykjy/8qI83/KiTO/ysj0v8sJNT/LSTX/y4l - 2P8uJtr/Libd/zQs3/9VUOX/dnTr/5yZ8P+ioPP/srD1/8/O+f+sq/T/oqDz/5+d8/93dO3/U03m/zcv - 4v8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0k1/8sJNT/LCPS/ysk0P8qI87/KiPL/ykiyf8oIsb/JyHD/yYi - wP8lIb7/JCG8/yMguP8jILX/IiC0/yIfsP8hHq7/IB+p/x8epf8fHaX/Hh2k/x0dov8dHZ//HB2c/xsb - lP91eKX/tLS0/7Kysv+wsLD/r6+v/66urv+tra3/rKys/6urq/+pqan/qKio/6enp/+mpqb/pqam/6en - p/+wsLD/sbGx/mtra3sAAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACgAAACeVlZXXra2t/6SkpP+dnZ3/nZ2d/56e - nv+fn5//oKCg/6Ghof+jo6P/pKSk/6Wlpf+mpqb/qKio/6mpqf+rq6v/ra2t/66urv+vr6//srKy/7Oz - s/91dpb/GBlr/xoagP8eHZj/Hx6m/yAerf8hHq//Ih+y/yMgtf8jILj/JCC7/yUhvv8mIr//JiHD/yci - xf8oIsn/KSPL/yojzf8rJND/KyPS/ywk1P8tJNf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm - 4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywk - 1P8sI9L/KyTQ/yojzv8qI8v/KSLJ/ygixv8nIcP/JiLC/yYhvv8lIbz/JCC4/yMhtf8iILT/Ih+v/yEf - qf8fH5r/HR2T/x4dmf8eHaH/HR2i/x0dn/8cHZ3/GxuV/2tupP+1tbX/tLS0/7Ozs/+ysrL/sLCw/6+v - r/+tra3/rKys/6ysrP+rq6v/qamp/6ioqP+oqKj/ra2t/7W1tf+dnZ3XBgYGJwAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAADAAAAE2BgYGqtra3+ra2t/6Ojo/+fn5//oKCg/6Ghof+jo6P/o6Oj/6Wlpf+mpqb/p6en/6io - qP+pqan/rKys/62trf+urq7/sLCw/7Kysv+0tLT/tbW1/7e3t/9tb5X/GBlr/xsbgP8eHZn/IB+p/yEe - sP8iH7L/IyC1/yMguP8kIbv/JSG+/yYiwP8mIcP/JyLF/ykiyf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0l - 1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm - 4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCTU/ywj0v8rI9H/KiPO/yojy/8pIsn/KCLG/ych - xP8mIsL/JiG+/yUhvP8kILj/IyC2/yIgsv8hIKb/Hh2V/xwcfv8aG3X/GxuB/x0dlP8dHZ//HR2f/xwd - nf8bG5X/Zmmi/7e3t/+2trb/tLS0/7Ozs/+ysrL/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qamp/6ys - rP+2trb/tra2/mZmZmsAAAATAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAHAAAAH5OTk8Czs7P/q6ur/6Oj - o/+hoaH/o6Oj/6SkpP+lpaX/pqam/6enp/+oqKj/q6ur/6ysrP+tra3/r6+v/7CwsP+ysrL/tLS0/7W1 - tf+3t7f/urq6/7u7u/9vcZf/Ghtt/xsbgP8fHpj/IR+q/yIfsv8jILX/IyC4/yUhu/8mIb7/JiLA/ych - w/8oIsX/KSLJ/yojy/8qI83/KyTQ/ysj0v8sJNT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm - 4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l - 1/8sJNT/LCPS/ysj0f8qI87/KiPL/ykiyf8oIsb/JyHE/yYiwv8mIb7/JSG8/yQguP8jIbL/IR+k/x8d - jv8cG3n/HyBu/01Oh/8aG23/Ght7/xwcj/8dHZr/HB2c/xwclv9fY6H/uLi4/7e3t/+2trb/tbW1/7S0 - tP+zs7P/srKy/7CwsP+vr6//ra2t/62trf+tra3/tbW1/7y8vP+bm5vAAAAAHwAAAAcAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAIAAAAOR0dHS62trfK0tLT/qamp/6Ojo/+lpaX/pqam/6enp/+oqKj/qamp/6ur - q/+srKz/rq6u/6+vr/+wsLD/s7Oz/7S0tP+2trb/t7e3/7q6uv+7u7v/vb29/7+/v/+CgqH/HR1u/xsb - fP8fHZX/ISCp/yMhtP8kILj/JSG7/yYhvv8mIsD/JyHE/ygixf8pIsn/KiPL/yojzf8rJND/KyPS/ywk - 1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm - 4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1P8sJNP/KyPR/yojzv8qI8v/KSLJ/ygi - xv8nIcT/JiLC/yYhvv8lIbr/IyCy/yEfoP8eHYn/HBt1/zM0e/+qqrr/ycnJ/4WGpP8dHmz/GRp2/xwc - i/8cHZj/HByW/1peoP+7u7v/urq6/7e3t/+2trb/tbW1/7S0tP+zs7P/srKy/7CwsP+vr6//rq6u/7Oz - s/+8vLz/tbW18kpKSksAAAAOAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAWfn5+jbi4 - uP+zs7P/qKio/6ampv+np6f/qKio/6mpqf+rq6v/ra2t/66urv+vr6//sLCw/7Ozs/+0tLT/tra2/7e3 - t/+6urr/u7u7/729vf+/v7//wsLC/8TExP+Tla3/IyVx/xwbef8fHY7/IiCl/yQgtP8lIbr/JiG+/yYi - wP8nIcT/KCLF/ykiyf8qI8v/KiPN/ysk0P8rJNP/LCXU/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m - 4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l - 2f8tJdf/LCXU/ywk0/8rI9H/KiPO/yojy/8pIsn/KCLH/ychxP8mIsL/JiG8/yQhsP8iH5v/Hh2D/x0c - c/9dXpT/yMjL/83Nzf/Kysr/ycnJ/5SVrP8hJG3/GRpz/xsch/8bHJD/UFOc/7y8vP+7u7v/urq6/7i4 - uP+3t7f/tbW1/7S0tP+zs7P/srKy/7CwsP+zs7P/u7u7/8HBwf+FhYWNAAAAFgAAAAUAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAkHBwcjpKSkzry8vP+ysrL/qamp/6ioqP+rq6v/rKys/62t - rf+urq7/r6+v/7Kysv+zs7P/tLS0/7a2tv+3t7f/urq6/7u7u/+9vb3/v7+//8LCwv/Dw8P/xcXF/8jI - yP+ysb7/OzyA/x0bdv8fHon/Ih+g/yQhsP8mIbz/JiLA/ychxP8oIsb/KSLJ/yojy/8qI83/KyTQ/ysk - 0/8sJdT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm - 5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdT/LCTT/ysk0f8qJM7/KiPL/yki - yf8oIsf/JyHD/yYhvP8kIKz/IR+V/x8cgP8nJ3j/kpSy/9HR0f/Q0ND/zs7O/83Nzf/Kysr/ycnJ/6Ok - s/8nKW7/GBlv/xobgP9JTJb/vr6+/729vf+7u7v/urq6/7i4uP+3t7f/tra2/7W1tf+0tLT/tLS0/7y8 - vP/Dw8P/qqqqzgcHByMAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA - AA1MTExJtLS07ry8vP+ysrL/rKys/6ysrP+tra3/rq6u/7CwsP+ysrL/s7Oz/7W1tf+2trb/t7e3/7q6 - uv+7u7v/vb29/7+/v//BwcH/w8PD/8XFxf/IyMj/ycnJ/8vLy//Jycv/YWOW/x0cc/8eHYL/ISCV/yQg - q/8lIbj/JyHC/ygixv8pIsn/KiPL/yokzf8rJND/KyTT/ywl1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m - 3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m - 2v8uJdn/LSXX/ywl1P8sJNP/KyTR/yokzv8qI8v/KSLJ/ygiw/8mIbb/IyCk/yEejP8fHXv/QkSJ/8DB - y//V1dX/1NTU/9HR0f/Pz8//zs7O/8vLy//Kysr/yMjI/66vuv8vMnP/GBlq/0BDhv+/v7//vr6+/729 - vf+8vLz/urq6/7i4uP+3t7f/tra2/7a2tv+7u7v/xMTE/7u7u+5QUFBJAAAADQAAAAIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABN2dnZ0v7+//by8vP+zs7P/rq6u/6+v - r/+wsLD/srKy/7Ozs/+1tbX/tra2/7i4uP+6urr/u7u7/729vf+/v7//wcHB/8PDw//FxcX/x8fH/8nJ - yf/Ly8v/zs7O/9DQ0P/R0dH/m5u3/zAvfv8fHXv/IR6L/yMgn/8lIrD/JyK+/ykix/8qI8v/KiTN/ysk - 0P8rJNP/LCXW/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm - 5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk0/8rJNH/KiTO/yok - yf8oI73/JSKt/yMgl/8gH4X/IR94/3N0pv/X19r/2dnZ/9bW1v/V1dX/09PT/9HR0f/Pz8//zs7O/8vL - y//Kysr/yMjI/7e4v/85PHb/NTh1/8LCwv+/v7//vr6+/729vf+8vLz/urq6/7i4uP+3t7f/u7u7/8TE - xP/Gxsb9e3t7dAAAABMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABwAAABmWlpakw8PD/7y8vP+zs7P/sLCw/7Kysv+0tLT/tbW1/7a2tv+4uLj/urq6/7u7 - u/+9vb3/v7+//8HBwf/Dw8P/xMTE/8fHx//Jycn/y8vL/83Nzf/Pz8//0dHR/9TU1P/W1tb/0NHV/2xs - oP8hIXn/IB6B/yEfjv8lIaL/JyK0/ygkwP8qI8r/KyTO/ysk0/8sJdb/LSXX/y4l2P8uJtr/Libd/y8l - 3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m - 3f8uJtr/LiXZ/y0l1/8sJdb/LCTS/yokzP8pI8D/JyKz/yUhn/8iH4v/IB59/0FAi/+ztMn/39/f/9zc - 3P/a2tr/2dnZ/9bW1v/U1NT/09PT/9DQ0P/Pz8//zc3N/8vLy//Kysr/yMjI/8C/w/9kZ4//w8PD/8LC - wv+/v7//vr6+/729vf+8vLz/u7u7/729vf/ExMT/y8vL/52dnaUAAAAZAAAABwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACg0NDSWurq7QxMTE/7y8 - vP+1tbX/tLS0/7W1tf+2trb/uLi4/7q6uv+7u7v/vb29/76+vv/BwcH/w8PD/8TExP/Hx8f/yMjI/8rK - yv/Nzc3/z8/P/9DQ0P/T09P/1dXV/9fX1//a2tr/3Nzc/7q7zP9ZWZj/Hx16/yEfg/8jH5L/JiGh/ycj - sv8pJL7/KiTK/ywl0v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm - 5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdj/LCTT/ysly/8qJL//KCKy/yYh - oP8kII7/Ih+D/zIyhf+Wlrv/5OTk/+Hh4f/g4OD/3d3d/9vb2//a2tr/19fX/9bW1v/U1NT/0dHR/9DQ - 0P/Pz8//zc3N/8vLy//Jycn/yMjI/8fHx//ExMT/w8PD/8LCwv+/v7//vr6+/729vf++vr7/xMTE/83N - zf+0tLTRDQ0NJgAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAACAAAADU5OTkG6urrox8fH/729vf+2trb/tra2/7i4uP+6urr/u7u7/729 - vf++vr7/wcHB/8LCwv/ExMT/x8fH/8jIyP/Kysr/y8vL/87Ozv/Q0ND/09PT/9XV1f/W1tb/2dnZ/9vb - 2//d3d3/4ODg/+Hh4f/AwNL/X2Cf/yMhff8iIIT/JCCO/yUhmv8nIqv/KSO4/ysjw/8sJMr/LSXR/y4l - 2f8uJtv/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybe/y4l - 2P8tJdL/LCXL/ywjxP8qI7f/KCOp/yYhmv8kIY7/IyCF/ywrhf+AgLP/4ODl/+bm5v/l5eX/4uLi/+Dg - 4P/f39//3Nzc/9vb2//Z2dn/19fX/9XV1f/U1NT/0dHR/9DQ0P/Ozs7/zc3N/8vLy//Jycn/yMjI/8fH - x//ExMT/w8PD/8LCwv/BwcH/v7+//8XFxf/Ozs7/wsLC6FJSUkEAAAANAAAAAgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEHBw - cFvDw8P0ycnJ/7+/v/+6urr/urq6/7u7u/+9vb3/vr6+/8HBwf/CwsL/xMTE/8XFxf/IyMj/ycnJ/8vL - y//Ozs7/0NDQ/9HR0f/U1NT/1tbW/9fX1//a2tr/3Nzc/9/f3//h4eH/4uLi/+Xl5f/n5+f/0NDd/3t8 - sP82NIr/IyCD/yQgi/8lIZP/JyKc/ygipv8qJLP/KyW9/ywkxP8tJcr/LSXO/y4l0v8uJdT/LiXU/y4l - 1P8uJdT/LiXU/y4l0v8uJdH/LiXN/y0ly/8sJMT/KyS7/yojsv8oI6X/KCKb/yYhk/8kIYr/JCCE/0JB - kv+Vk8D/5OPo/+vr6//o6Oj/5+fn/+Xl5f/k5OT/4eHh/+Dg4P/d3d3/3Nzc/9ra2v/Z2dn/1tbW/9XV - 1f/T09P/0dHR/8/Pz//Ozs7/zc3N/8rKyv/Jycn/yMjI/8fHx//ExMT/w8PD/8PDw//IyMj/z8/P/8vL - y/RycnJbAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAEoSEhG7Jycn6y8vL/8HBwf+8vLz/vb29/76+ - vv/BwcH/wsLC/8TExP/FxcX/yMjI/8nJyf/Ly8v/zc3N/8/Pz//R0dH/09PT/9XV1f/X19f/2tra/9vb - 2//d3d3/4ODg/+Li4v/k5OT/5ubm/+jo6P/q6ur/7Ozs/+/v7/+1tNH/bGyr/zg3j/8kIYb/JSGK/yYh - kf8nIpb/JyKa/ygjoP8pJKb/KiSs/yskr/8rJK//KySw/ysksP8qI67/KiSs/ykjpv8pI6T/KCOf/ygj - m/8nIpX/JiGR/yUiiv8lIIb/RUOX/35+tv/Ozd//8fHx/+/v7//t7e3/6+vr/+rq6v/o6Oj/5ubm/+Xl - 5f/i4uL/4eHh/9/f3//d3d3/29vb/9ra2v/X19f/1tbW/9TU1P/T09P/0NDQ/8/Pz//Ozs7/zc3N/8rK - yv/Jycn/yMjI/8XFxf/FxcX/ycnJ/9PT0//S0tL6h4eHbwAAABMAAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAFAAAAE42NjXnOzs78zs7O/8XFxf+/v7//wcHB/8LCwv/Dw8P/xcXF/8fHx//Jycn/y8vL/83N - zf/Pz8//0NDQ/9PT0//V1dX/1tbW/9nZ2f/a2tr/3Nzc/9/f3//h4eH/4uLi/+Xl5f/n5+f/6urq/+vr - 6//t7e3/7+/v//Hx8f/y8vL/9fX1/9nY6P+bmsj/aWeu/0dFm/8qJ4v/JiKJ/yYii/8mIY//JyKR/yci - kf8nIpL/JyKS/ycikf8nIo//JiGN/yYii/8mIon/MS6P/1NQo/95d7f/rKvS/+bm7v/29vb/9fX1//Ly - 8v/x8fH/8PDw/+3t7f/s7Oz/6+vr/+jo6P/n5+f/5eXl/+Tk5P/h4eH/4ODg/93d3f/c3Nz/29vb/9nZ - 2f/X19f/1dXV/9TU1P/T09P/0NDQ/8/Pz//Ozs7/y8vL/8rKyv/Jycn/ycnJ/83Nzf/U1NT/1NTU/JGR - kXkAAAATAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAFJmZmX3Pz8/50dHR/8jI - yP/ExMT/w8PD/8XFxf/Hx8f/ycnJ/8rKyv/Nzc3/zs7O/9DQ0P/R0dH/1NTU/9bW1v/X19f/2tra/9zc - 3P/d3d3/4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/7Ozs/+3t7f/w8PD/8fHx//T09P/19fX/9vb2//f3 - 9//5+fn/+vr6//v7+//f3u7/zMvl/5+dzv+cm83/nJvN/5ybzv+cm87/nJvO/7u63f/My+X/zMvl//n5 - +//7+/v/+/v7//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Hx8f/w8PD/7+/v/+3t7f/r6+v/6urq/+jo - 6P/m5ub/5eXl/+Li4v/h4eH/39/f/93d3f/c3Nz/2tra/9nZ2f/W1tb/1dXV/9TU1P/R0dH/0NDQ/8/P - z//Nzc3/y8vL/8vLy//Q0ND/19fX/9XV1fmZmZl9AAAAFAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAFAAAAE46OjnHS0tL11dXV/8vLy//Hx8f/x8fH/8jIyP/Kysr/y8vL/87O - zv/Pz8//0dHR/9TU1P/V1dX/19fX/9nZ2f/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/n5+f/6Ojo/+vr - 6//s7Oz/7+/v//Dw8P/y8vL/9PT0//X19f/29vb/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//// - //////////////////////////////7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/39/f/9vb2//X1 - 9f/09PT/8vLy//Hx8f/v7+//7e3t/+zs7P/q6ur/6Ojo/+fn5//l5eX/5OTk/+Li4v/g4OD/39/f/9zc - 3P/b29v/2tra/9fX1//W1tb/1dXV/9PT0//R0dH/0NDQ/8/Pz//Pz8//09PT/9ra2v/Y2Nj1kJCQcQAA - ABMAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAEYKC - gl7Ozs7s19fX/9DQ0P/Kysr/ycnJ/8vLy//Nzc3/z8/P/9DQ0P/T09P/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/d3d3/4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+3t7f/v7+//8fHx//Ly8v/09PT/9vb2//f3 - 9//5+fn/+vr6//v7+//8/Pz//Pz8//7+/v/+/v7//////////////////////////////////v7+//7+ - /v/8/Pz//Pz8//v7+//6+vr/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7Ozs/+vr - 6//q6ur/5+fn/+bm5v/l5eX/4uLi/+Hh4f/g4OD/3d3d/9zc3P/a2tr/2dnZ/9fX1//W1tb/1NTU/9PT - 0//R0dH/0dHR/9bW1v/d3d3/09PT7IKCgl4AAAARAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAD3d3d1HOzs7k3Nzc/9TU1P/Pz8//zc3N/8/P - z//Q0ND/0dHR/9TU1P/W1tb/19fX/9ra2v/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+vr - 6//s7Oz/7e3t//Dw8P/x8fH/8vLy//X19f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+ - /v/////////////////////////////////+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3d3d/9vb2//a2tr/2dnZ/9bW1v/V1dX/1NTU/9bW1v/a2tr/4ODg/9XV1eR6enpRAAAADwAA - AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAEAAAADV9fXzvHx8fL4ODg/9ra2v/T09P/0dHR/9HR0f/U1NT/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/f39//4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+3t7f/v7+//8PDw//Ly8v/09PT/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//////////////////////////////////7+ - /v/+/v7//Pz8//z8/P/7+/v/+vr6//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Ly8v/x8fH/7+/v/+3t - 7f/s7Oz/6+vr/+rq6v/n5+f/5ubm/+Xl5f/i4uL/4eHh/+Dg4P/d3d3/3Nzc/9vb2//a2tr/19fX/9fX - 1//a2tr/39/f/+Tk5P/Ly8vLY2NjOwAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACiYmJiG1tbWi5OTk/9/f - 3//Z2dn/1dXV/9XV1f/W1tb/19fX/9ra2v/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//x8fH/8vLy//T09P/19fX/9vb2//n5+f/5+fn/+vr6//v7+//8/Pz//Pz8//7+ - /v/+/v7//////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5 - +f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs7P/r6+v/6urq/+jo6P/n5+f/5eXl/+Tk - 5P/i4uL/4ODg/9/f3//d3d3/3Nzc/9ra2v/b29v/3d3d/+Tk5P/n5+f/ubm5oiYmJiEAAAAKAAAAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAABwAAABOZmZlu2tra7OTk5P/d3d3/2tra/9nZ2f/Z2dn/29vb/9zc - 3P/f39//4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+zs7P/v7+//8PDw//Hx8f/y8vL/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v////////////////////////////// - ///+/v7//v7+//7+/v/8/Pz/+/v7//v7+//6+vr/+fn5//f39//29vb/9fX1//X19f/y8vL/8fHx//Dw - 8P/v7+//7e3t/+zs7P/r6+v/6Ojo/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/9/f3//f39//39/f/+Li - 4v/n5+f/3d3d7Jubm24AAAATAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AA1vb29Az8/Px+jo6P/k5OT/4ODg/9zc3P/c3Nz/3d3d/+Dg4P/h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq - 6v/r6+v/7e3t/+/v7//w8PD/8fHx//T09P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//7+ - /v/+/v7//v7+//////////////////////////////////7+/v/+/v7//v7+//z8/P/7+/v/+/v7//r6 - +v/5+fn/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/t7e3/7Ozs/+vr6//q6ur/6Ojo/+bm - 5v/l5eX/5OTk/+Li4v/h4eH/4eHh/+Tk5P/o6Oj/6+vr/9DQ0Mdvb29AAAAADQAAAAQAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAkAAAAZqqqqft7e3unq6ur/5eXl/+Li - 4v/g4OD/4ODg/+Li4v/k5OT/5ubm/+fn5//o6Oj/6+vr/+zs7P/t7e3/7+/v//Hx8f/y8vL/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+/v////////////////////////////// - /////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Ly - 8v/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+bm5v/l5eX/5eXl/+Xl5f/o6Oj/7Ozs/+Dg - 4OmsrKx+AAAAGQAAAAkAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAANYmJiNMbGxqzp6en86+vr/+fn5//l5eX/5OTk/+Xl5f/m5ub/5+fn/+rq - 6v/r6+v/7Ozs/+/v7//w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/7+/v//Pz8//z8 - /P/+/v7//v7+///////////////////////////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7 - +//6+vr/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+3t7f/s7Oz/6+vr/+rq - 6v/o6Oj/5+fn/+fn5//r6+v/7e3t/+vr6/zIyMisYmJiNAAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAHAAAAEZeX - l1nZ2dnO7+/v/+3t7f/q6ur/5+fn/+jo6P/o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+vr6//v7+//8/Pz//Pz8//7+/v/+/v7///////////////////////// - //////////////7+/v/+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f39//29vb/9vb2//X1 - 9f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs7P/r6+v/6+vr/+vr6//t7e3/8PDw//Hx8f/b29vOl5eXWQAA - ABEAAAAHAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAACQAAABWoqKht3t7e0vLy8v/w8PD/7e3t/+3t - 7f/s7Oz/7Ozs/+3t7f/w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/6+vr/+/v7//z8 - /P/8/Pz//v7+//7+/v///////////////////////////////////////v7+//7+/v/+/v7//Pz8//z8 - /P/7+/v/+/v7//r6+v/5+fn/9/f3//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7+/v/+/v - 7//w8PD/8vLy//T09P/f39/Sra2tbQAAABUAAAAJAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABAAAAAoKCgoZsLCwb9zc3Mn19fX/9PT0//Ly8v/x8fH/8fHx//Hx8f/x8fH/8vLy//T0 - 9P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//z8/P/+/v7//v7+//////////////////// - ///////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/y8vL/8fHx//Ly8v/09PT/9fX1//b29v/e3t7JsLCwbwoKChkAAAAKAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAKAAAAFZeX - l1TS0tKr6Ojo5vb29v/29vb/9fX1//T09P/19fX/9fX1//b29v/29vb/9/f3//n5+f/6+vr/+/v7//v7 - +//8/Pz//Pz8//7+/v/+/v7///////////////////////////////////////7+/v/+/v7//v7+//z8 - /P/8/Pz/+/v7//v7+//6+vr/+fn5//n5+f/39/f/9vb2//X19f/29vb/9vb2//b29v/39/f/9/f3/+jo - 6ObS0tKsl5eXVAAAABUAAAAKAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAABwAAAA5MTEwor6+vbdjY2Lry8vL1+fn5//n5 - +f/5+fn/+fn5//n5+f/6+vr/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v////////////// - /////////////////////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+/v7//r6+v/6+vr/+vr6//n5 - +f/5+fn/+fn5//r6+v/6+vr/8/Pz9djY2Lqvr69tTExMKAAAAA4AAAAHAAAAAgAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAAIAAAAEHZ2djbBwcGA29vbuu7u7uf7+/v/+/v7//v7+//7+/v/+/v7//z8 - /P/8/Pz//Pz8//7+/v/+/v7//v7+///////////////////////////////////////+/v7//v7+//7+ - /v/8/Pz//Pz8//z8/P/8/Pz/+/v7//v7+//7+/v/+/v7//v7+//u7u7n3NzcusHBwYB2dnY2AAAAEAAA - AAgAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AAkAAAAQaWlpLpqamlHFxcWK4eHhwOvr69/z8/Pw/v7+//7+/v/+/v7//v7+//7+/v/+/v7///////// - //////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/z8/Pw6+vr3+Hh - 4cDFxcWKmpqaUWlpaS4AAAAQAAAACQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABgAAAAoAAAAOCgoKGIOD - gzqurq5fvb29ecvLy5Xd3d2u5eXlxenp6dHw8PDd8PDw5vn5+fT5+fn0+fn59Pn5+fTw8PDm8PDw3enp - 6dHl5eXF3d3drsvLy5W9vb15rq6uX4ODgzoKCgoYAAAADgAAAAoAAAAGAAAAAwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAwAAAAYAAAAIAAAACgAAAA0AAAAPAAAAEAAA - ABEAAAATAAAAEwAAABQAAAAUAAAAEwAAABMAAAARAAAAEAAAAA8AAAANAAAACgAAAAgAAAAGAAAAAwAA - AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA/////////////////////////////+AAAAf///////////////4AAAAAf//////////////w - AAAAAA//////////////gAAAAAAB/////////////AAAAAAAAD////////////AAAAAAAAAP//////// - ///AAAAAAAAAA///////////AAAAAAAAAAD//////////gAAAAAAAAAAf/////////gAAAAAAAAAAB// - ///////gAAAAAAAAAAAH////////wAAAAAAAAAAAA////////4AAAAAAAAAAAAH///////8AAAAAAAAA - AAAA///////8AAAAAAAAAAAAAD//////+AAAAAAAAAAAAAAf//////AAAAAAAAAAAAAAD//////gAAAA - AAAAAAAAAAf/////wAAAAAAAAAAAAAAD/////4AAAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAD///// - AAAAAAAAAAAAAAAA/////gAAAAAAAAAAAAAAAH////wAAAAAAAAAAAAAAAA////4AAAAAAAAAAAAAAAA - H///+AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAB///4AAAAAAAAAAA - AAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAH//wAAAAAA - AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/wA - AAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAP/gAAAAAAAAAAAAAAAAA - AB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAA - AAAAAAAP8AAAAAAAAAAAAAAAAAAAD+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAA - AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA - AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA - AAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAA - AAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA - AAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA - AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA - AAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAA - AAAAAAADwAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAA - AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD/AA - AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA - AB/8AAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA - AAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//4AAAAAA - AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAAAAAAAAAAAAAH///g - AAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////gAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAA - H////AAAAAAAAAAAAAAAAD////4AAAAAAAAAAAAAAAB/////AAAAAAAAAAAAAAAA/////wAAAAAAAAAA - AAAAAP////+AAAAAAAAAAAAAAAH/////wAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAAAB//////wAAAA - AAAAAAAAAA//////+AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAP///////AAAAAAAAAAAAAP////// - /4AAAAAAAAAAAAH////////AAAAAAAAAAAAD////////8AAAAAAAAAAAD/////////gAAAAAAAAAAB// - ///////+AAAAAAAAAAB//////////wAAAAAAAAAA///////////AAAAAAAAAA///////////8AAAAAAA - AA////////////wAAAAAAAA/////////////gAAAAAAB//////////////AAAAAAD//////////////+ - AAAAAH///////////////+AAAAf///////////////////////////////////////////////////// - //////////////////8oAAAAMAAAAGAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAFAAAACwAAAA8AAAARAAAAEQAAAA8AAAALAAAABQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAUAAAAaAAAAPAoKCmAgICCENDQ0nEFBQatLS0uzS0tLs0FBQasyMjKcICAghAoK - CmAAAAA8AAAAGgAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAQAAAAPx8fH4FMTEy/dnZ255qamvu7u7v/0NDQ/+Dg4P/p6en/6enp/+Dg - 4P/S0tL/vb29/5ycnPt3d3fnTU1Nvx8fH4EAAAA/AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAEk0NDSkcXFx566urv/c3Nz/9PT0//z8/P////////////// - ///////////////////////////////////29vb/4ODg/7Gxsf9zc3PnNjY2pAAAAEkAAAAOAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAwKioqlnR0dOu9vb3/5ubm/+/v7//y8vL/8/Pz//b2 - 9v/5+fn//Pz8//7+/v////////////7+/v/9/f3/+/v7//n5+f/39/f/9fX1//X19f/r6+v/wcHB/3Z2 - duwsLCyWAAAAMAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwoKCl1VVVXSpqam/9vb2//k5OT/5ubm/+np - 6f/t7e3/8fHx//X19f/5+fn/+/v7//7+/v////////////7+/v/9/f3/+/v7//j4+P/29vb/8fHx/+7u - 7v/r6+v/6urq/+Hh4f+rq6v/WFhY0g0NDV0AAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATIiIif3Nzc/HCwsL/2NjY/9nZ - 2f/d3d3/4uLi/+fn5//s7Oz/8PDw//T09P/39/j/+/v7/////f///////////////v/9/fz/+vr6//j4 - +P/09PT/8PDw/+zs7P/o6Oj/5OTk/+Dg4P/g4OD/ycnJ/3h4ePEkJCR/AAAAEwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYqKiqRgoKC+sbG - xv/Ozs7/0dHR/9bW1v/a2tr/39/f/+Xl5f/q6un/8/Pw//z89f////r//f38//Dw/P/r6/z/6+v8//Dw - /P/3+Pz////8////+f/39/T/7+/u/+rq6v/m5ub/4eHh/9zc3P/Y2Nj/19fX/87Ozv+Hh4f6LS0tkQAA - ABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAES8v - L5KGhob+wMDA/8fHxv/Ozsz/zc3N/9LS0v/X19j/3d3c/+rq5f/w8O7/1tXu/6mm6v98d+b/Xlfl/0tE - 5f9DO+b/RDvn/0tC5v9VTeX/cGrm/6Ge6//Y1/H/9fXy/+7u6v/j4+P/39/f/9ra2v/V1dX/0dHR/83N - zf/Jycn/jIyM/jAwMJIAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAGJycnen5+fvu5ubn/vb28/7W2vv+ys8n/0tLO/83Nzf/Y2NX/4+Pi/7Kx4P9jYNT/My3P/yQc - 0/8mHdj/KCDd/ysi4P8tI+L/LSPj/ywi4f8qId7/Jx3a/yUc1f80LdL/bWrZ/8TD5v/s7Of/3t7c/9bW - 1v/R0dH/zc3N/8nJyf/FxcX/wcHB/4aGhvspKSl6AAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAASEhJRbW1t7q+vr/+0tLT/ubm4/6iotf84OqL/p6fL/9zc0//Gxtn/YV/J/yMe - v/8hG8X/KCHM/ywk0/8uJdn/Libe/y8m4f8wJuP/MCbk/zAm4v8vJt//LiXb/y0l1v8pIs//IRvI/ykl - xP95eNH/2Njg/9ra1f/Nzc3/ycnJ/8TExP+/v7//vb29/7e3t/9ycnLuEhISUQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVVVVXPoKCg/62trf+vr6//tbWz/6Slsf8hIpr/Kiqn/42N - yf89PLj/Gxi2/yUgv/8oIsb/KiPN/ywk0/8uJdn/Libf/y8m4/8wJuX/MCbm/zAm5P8vJuH/LiXc/y0l - 1v8rI9D/KSLJ/yUfw/8cGLn/SknA/7291//S0s7/xMTE/7+/v/+7u7v/uLi4/7a2tv+pqan/WFhYzwAA - ACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjY2NoyKior/pqam/6enp/+qqqr/sLCu/52e - rP8iI5v/Ghqi/xoZqP8eG6//IyC3/yUhv/8nIsb/KSPN/ywk1P8tJNj/KCDR/yQcxf8kG77/JBy+/yQb - v/8lHcn/KyLW/y0l1/8rI9H/KSLJ/ychw/8lIbv/HBmx/y8vsv+pqcz/ycnE/7q6uv+2trb/s7Oz/7Cw - sP+vr6//kZGR/zg4OIwAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQkJN2ZmZumenp7/oKCg/6Ki - ov+lpaX/q6up/5eXp/8fH5r/HByj/x8eqf8hHrD/IyC3/yUgvv8nIsf/KCLL/yIbvP8rJaj/Uk6r/399 - vP+bmsr/n57M/5eVx/9ua7b/OjWm/yIcsv8nIMr/KSLK/yYhwv8kIbv/IiCz/xsaqv8sK6r/qKnE/7y7 - t/+ysrL/rq6u/6urq/+pqan/pqam/2xsbOkJCQk3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPj4+lIqK - iv+ampr/m5ub/52dnf+goKD/pqak/4+Po/8dHZn/HByi/x8dqP8hHq//IyC3/yUgv/8iHLj/JyOe/2dl - qf/AwNP/8fHx/////f/////////////////9/fr/39/m/5KRvf80MKD/IRy6/yYhw/8kILr/Ih+z/yAe - rP8YF6P/PD2p/7W1vP+urqz/qamp/6ampv+jo6P/o6Oj/5KSkv9DQ0OUAAAABQAAAAAAAAAAAAAAAAAA - AAAAAAAoY2Nj4pSUlP+VlZX/lpaW/5mZmf+bm5v/oaGe/4aHnv8cHJn/HBui/x4dqP8gHa//Ih+3/yEd - vv9LSLj/sbHA/+Li3v/s7Or/8fHx//n5+f/+/v7///////z8/P/29vb/8fHv/+7u6f/Dw87/Skif/x4a - sP8kILv/Ih+z/yAerP8eHaX/FRWd/2Firf+xsa7/o6Oj/6Ghof+enp7/nZ2d/5ycnP9nZ2fiAAAAKAAA - AAAAAAAAAAAAAAAAAAAwMDBqfHx8/5GRkf+RkZH/kpKS/5SUlP+Wlpb/nJyZ/3t7lv8ZGZb/Ghqf/xwb - pf8eG6z/IB20/yAbuv9DP8n/vr7V/9zc1//i4uL/7e3t//f39//+/v7///////v7+//z8/P/6urq/+Dg - 4P/b29n/wcHF/0hGm/8dGrD/Ih+z/x8dq/8dHKT/Gxue/xwdmv+Mjqz/oqKe/5ycnP+ampr/mZmZ/5iY - mP+BgYH/MjIyagAAAAAAAAAAAAAAAAAAAAdRUVGtiYmJ/4yMjP+NjY3/jo6O/5CQkP+RkZH/mJiU/29w - jv8UFJD/FhWX/xkWnv8bF6X/HRis/x8as/8bFbn/OzW+/7a1zP/f39z/6enp//X19f/8/Pz///////n5 - +f/w8PD/5eXl/9nZ2f/Ozs7/yMjG/6mqsv8wLpn/Hhux/x8dq/8dHKT/HBye/xQVlv9LTaD/oaGf/5eX - l/+VlZX/lJSU/5OTk/+QkJD/VVVVrgAAAAgAAAAAAAAAAAAAACFjY2PdioqK/4iIiP+JiYn/ioqK/4uL - i/+NjY3/k5KQ/2lqg/8aG27/ISJz/yMjeP8lJH3/JyWB/yooh/8yMIz/MCyQ/1ZTn//IyM7/4+Ti//Hx - 8f/7+/v//v7+//j4+P/s7Oz/3t7e/9DQ0P/ExMT/urq6/7m5tP95eZz/HBqh/x8drP8dG6T/HBud/xkY - mP8gIpb/iYqc/5SUkv+RkZH/kJCQ/4+Pj/+QkJD/ZmZm3QAAACEAAAAAAAAAAB4eHkJvb2/3h4eH/4WF - hf+Ghob/h4eH/4eHh/+IiIj/ioqK/4WGiP9+foX/g4SJ/4aGi/+JiY7/jY2T/5KSmP+cnKD/pKSo/6ys - sv/CwsX/2dnZ/+vr6//7+/v//v7+//T09P/k5OT/09PT/8TExP+4uLj/r6+v/6ioqP+hoaD/OTiT/xsZ - qf8cG6P/Gxud/xoal/8UFZP/ZWaW/5KSjv+NjY3/i4uL/4qKiv+MjIz/c3Nz9yIiIkIAAAAAAAAAADo6 - OmV5eXn/hISE/4ODg/+EhIT/hISE/4WFhf+FhYX/hoaG/4eHh/+Kion/ioqK/4yMi/+Pj47/kpKQ/5WV - lP+ampn/oaGg/6qqqv+3t7f/ysrK/+Li4v/4+Pj//v7+/+7u7v/Y2Nj/xMTE/7W1tf+qqqr/oqKi/5yc - nP+dnZj/ZmaO/xoYof8cG6T/Gxud/xkal/8UFZP/Q0aQ/46Oiv+IiIj/iIiI/4eHh/+IiIj/fX19/zw8 - PGUAAAAAAAAAAEZGRn5+fn7/goKC/4GBgf+CgoL/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hISE/4WF - hf+Ghob/iIiI/4qKiv+NjY3/kpKS/5mZmf+jo6P/tLS0/9DQ0P/z8/P/+/v7/+Li4v/ExMT/sLCw/6Oj - o/+bm5v/lZWV/5KSkv+QkI//gYGJ/yUkmP8bGab/Gxqe/xkamf8UFpX/MTON/4eHh/+FhYX/hYWF/4SE - hP+FhYX/gYGB/0hISH4AAAAAAAAAAFBQUI6AgID/gICA/4CAgP+AgID/gICA/4CAgP9/f3//f39+/39/ - fv9/f3//gIB//4CAgP+CgoL/goKC/4ODg/+EhIT/hoaG/4mJif+Ojo7/mJiY/66urv/h4eH/9vb2/8TE - xP+lpaX/l5eX/5CQkP+MjIz/iYmJ/4iIiP+Ghob/h4eF/zQ0fv8REX3/FBR5/xMTdf8PEXH/IyVx/319 - gf+Dg4L/gYGB/4GBgf+BgYH/goKC/1VVVY0AAAAAAAAAAFdXV5SBgYH/fn5+/35+fv9+fn7/fn5+/4B/ - gP+NjpH/kJGV/5CQlP+QkJT/kZGV/4qKjP9+fn7/f39//39/f/9/f3//f39//39/f/+AgID/gYGB/4SE - hP+jo6P/u7u7/42Njf+FhYX/g4OD/4KCgv+BgYH/gICA/4CAgP+AgID/gICA/25uef9iYnT/Y2Nz/2Nj - c/9iYnL/ZmZz/319fv+AgH//f39//39/f/9/f3//gYGB/1dXV5QAAAAAAAAAAFtbW5SCgoL/fn5+/35+ - fv9+fn7/fn5+/3p6fv9AQ5H/NTec/zc5n/85OaL/Nzeo/1pam/+BgX3/f39//39/f/9/f3//f39//4CA - gP+CgoL/hYWF/46Ojv+7u7v/1tbW/6CgoP+Ojo7/iIiI/4aGhv+EhIT/g4OD/4KCgv+CgoL/gYGB/4OD - gv+FhYL/hISC/4SEgv+EhIL/g4OC/4GBgf+AgID/gICA/4CAgP+AgID/hISE/1tbW5MAAAAAAAAAAFlZ - WYuDg4P/f39//39/f/9/f3//gIB//3t7fv8kJoP/ERKQ/xUVlP8WFpj/FBOf/zw7nv+FhYP/goKC/4OD - g/+FhYX/h4eH/4yMjP+Tk5P/oKCg/7u7u//r6+v/+vr6/9HR0f+xsbH/oKCg/5eXl/+RkZH/jY2N/4uL - i/+JiYn/h4eH/4eHh/+Ghob/hYWF/4WFhf+EhIT/g4OD/4ODg/+Dg4P/goKC/4KCgv+CgoL/hoaG/1tb - W4sAAAAAAAAAAFZWVnmDg4P/gICA/4GBgf+BgYH/gYGB/4KCgP8wMoD/FBWR/xkZlf8aGpn/GRif/y0s - pf+Hh5H/iIiH/4uLi/+Ojo7/lJSU/5ycnP+oqKj/u7u7/9fX1//29vb//Pz8/+bm5v/Ly8v/t7e3/6mp - qf+goKD/mpqa/5WVlf+SkpL/j4+P/4yMjP+Kior/iYmJ/4iIiP+IiIj/h4eH/4aGhv+Ghob/hoaG/4WF - hf+FhYX/h4eH/1hYWHkAAAAAAAAAAE5OTluCgoL/goKC/4KCgv+Dg4P/g4OD/4eHg/9DRX3/EhSP/xkZ - lf8aGpr/Gxqf/xsap/95eaT/lJSP/5SUlP+ampr/oaGh/6ysrP+7u7v/z8/P/+bm5v/6+vr//f39/+/v - 7//c3Nz/ysrJ/7y8uv+xsa7/q6um/6amof+jo53/pKSd/6Kinf+hoZ7/oaKh/5aWlv+MjIz/i4uL/4qK - iv+JiYn/iYmJ/4iIiP+IiIj/iIiI/1NTU1wAAAAAAAAAAD09PTZ+fn71hYWF/4SEhP+FhYX/hYWF/4uL - h/9iYn7/FBaK/xkalv8aGpr/HBug/xkWpv9MTLH/pKSi/56dnf+lpaX/r6+v/7u7u//Kysr/3Nzc/+7u - 7v/8/Pz//v7+//T09P/m5uX/z8/T/7W1yv+trMv/m5rG/4uLwf99fb7/c3G6/2Rjtf9VVLD/REWp/3Jz - mf+VlZH/kZGR/4+Pj/+Ojo7/jIyM/4yMjP+MjIz/h4eH9T09PTYAAAAAAAAAAAwMDBR+fn7Wi4uL/4eH - h/+IiIj/iIiI/4uLiv+Bgof/IiSA/xgYl/8aG5r/HBuh/x0bp/8fHa7/i4u6/7Gxq/+wsLD/u7u7/8fH - x//V1dX/5eXl//Pz8//9/f3//v7+//f39//u7uz/09PY/1lXqf8jHbb/JyHJ/yIdwf8dGbn/Ghax/xgW - qf8XFqP/EhKb/19glv+dnZj/lZWV/5OTk/+SkpL/kZGR/5CQkP+Tk5P/hYWF1gwMDBQAAAAAAAAAAAAA - AAF3d3egkpKS/4qKiv+Li4v/jY2N/4+Pj/+UlZH/TU5//xQUj/8bG5v/HBuh/x4cp/8dGa3/ODW5/7Oz - xv/Cwrz/xMTF/9HR0f/e3t7/6+vr//b29v/+/v7//v7+//n5+f/w8PD/6Ojn/9HR1f9iYKT/IBur/yQf - wf8jH7n/IR6y/x8dq/8dHKT/FRad/19gmf+kpJ7/m5ub/5iYmP+Xl5f/lZWV/5OTk/+cnJz/fX19oAAA - AAEAAAAAAAAAAAAAAABkZGRUkpKS/o+Pj/+Pj4//kZGR/5KSkv+Xl5b/hoaP/yAhgP8ZGpv/HByh/x4d - qP8gHa7/HRm1/0hFxP/AwNT/2NjS/9nZ2P/k5OT/7+/v//j4+P/+/v7//v7+//r6+v/z8/P/6urq/+Tk - 4f/j49r/dnTE/yAcv/8jILr/IR6y/yAdq/8eHKX/FRad/11dm/+oqaT/n5+f/52dnf+bm5v/mZmZ/5iY - mP+ampr+bW1tVAAAAAAAAAAAAAAAAAAAAAAzMzMUj4+P15iYmP+Tk5P/lZWV/5iYmP+ampr/oqKe/2Bh - h/8VFYv/HByj/x4dqP8gHa//Ix+2/x8avP9APMr/tbTf/+vs5v/w8Or/9PTy//r6+v/+/v7///////z8 - +//4+Pb/9/fw/+jo7P+joeL/RkHO/yMewf8kILr/Ih+z/yAerP8eHaX/Fhed/1lanf+tran/paWl/6Ki - ov+fn5//nZ2d/6Kiov+Xl5fYJCQkFQAAAAAAAAAAAAAAAAAAAAAAAAAAgoKCe6Kiov+Xl5f/mpqa/5yc - nP+fn5//o6Oj/6SkpP9BQoL/FhaX/x8eqv8hHq//IyC3/yUgvv8jHcX/LSbM/3Rw3v/Bv+3/7+73//7/ - /P////////////3+/f/o5/f/rqvs/1VP3P8lHs7/JB7I/yYhwv8kILr/Ih+z/yAerf8eHab/Fhee/1VW - n/+ysq7/qqqq/6enp/+lpaX/oqKi/6ysrP+IiIh7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/HJ2d - nd+hoaH/np6e/6Ghof+kpKT/qKio/6+vrv+hoaj/NDSD/xgXnf8hHrH/IyC3/yUgvv8nIsb/KCLM/yQc - 0v8sI9j/TEXi/21n6v9/eu7/enXu/2Nc6f9COuL/KSDa/yge1P8qI8//KSLJ/yYhwv8kIbv/Ih+0/xsa - oP8ZGZr/Fxef/1BRoP+2trP/r6+v/6ysrP+pqan/rKys/6Wlpd8/Pz8cAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIyMjG2urq7/oqKi/6Wlpf+pqan/ra2t/7Gxsf+6urj/pKSu/zc4h/8ZF5//IyC5/yYh - wP8oIsb/KiPN/ywk0/8tJNn/KiLd/ygf4P8oHeL/KB7j/yog4f8sI9//LiXb/y0k1f8rI9D/KSLJ/ych - xP8jH7r/GRia/0ZGjf9ERYn/ERGN/0tMof+5ubf/tLS0/7CwsP+urq7/t7e3/5GRkW0AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwqlpaW5tLS0/6mpqf+urq7/srKy/7a2tv+6urr/xcXD/7a2 - vP9QUJH/GhiY/yMeuv8oIsj/KiPO/ywk0/8uJdn/Libe/y8m4f8wJuP/MCbk/zAm4v8vJt//LiXb/y0l - 1v8rJNH/KSLL/yEcuv8hHpb/b2+g/8rLy//CwsT/TU6K/z0/jP+9vbz/ubm4/7S0tP++vr7/ra2tuTMz - MwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MqtLS047a2tv+ysrL/t7e3/7u7 - u//AwMD/xcXF/8/Ozf/Pz87/hIWs/y8uk/8dGKr/Jh/G/ywk1f8uJdv/Libf/y8m4v8wJuT/MCbl/zAm - 4/8vJuD/LiXd/ywk1/8mH8j/Hhqp/z49mP+iorz/3d3a/9TU0//Q0M//wsPF/4GCn/+8vL7/vLy8/8DA - wP+8vLzjc3NzKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk5OTUb+/ - v/a7u7v/urq6/7+/v//FxcX/ycnJ/8/Pz//W1tX/4eHe/8nJ0v9+frD/PDqe/yMeqP8iG7v/Jh7N/ykh - 1v8rIdr/KyHa/ykg1v8mHs3/Ihu8/yUfqf9CP6H/jIu4/9na3f/n5+P/29vb/9bW1v/R0dH/zs7N/8zM - yv/ExMT/xcXF/8fHx/aamppRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAKmpqWjHx8f6xMTE/8PDw//Jycn/zs7O/9PT0//Y2Nj/3t7e/+fn5v/w8O3/4eHm/7W0 - 0P+Egrz/YF2w/01Jrf9HQq7/SUSv/1NPr/9kYbL/iojA/7u61P/m5ur/8/Pw/+rq6f/j4+P/3t7e/9nZ - 2f/V1dX/0NDQ/8vLy//MzMz/z8/P+q6urmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvr69kzs7O88/Pz//MzMz/0dHR/9bW1v/b29v/4ODg/+bm - 5v/r6+v/8vLx//v7+P////z////9//b2+f/y8vf/9PT4//v7+/////3////9//z8+f/09PP/7e3u/+rq - 6v/l5eX/4ODg/9zc3P/X19f/09PT/9fX1//V1dXzsrKyZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr6+vTdPT0+Hd3d3/1dXV/9nZ - 2f/e3t7/4+Pj/+jo6P/t7e3/8vLy//X19f/5+fn//Pz8/////////////////////v/7+/v/+vr6//f3 - 9//z8/P/7+/v/+vr6//n5+f/4+Pj/97e3v/b29v/4+Pj/9jY2OGysrJNAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyc - nCfS0tKz4uLi/+Pj4//g4OD/5ubm/+rq6v/u7u7/8vLy//f39//6+vr//Pz8//7+/v////////////7+ - /v/8/Pz/+vr6//f39//09PT/8fHx/+3t7f/o6Oj/5eXl/+jo6P/m5ub/1dXVs5ycnCcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAExcXFYuLi4tjv7+//7+/v/+3t7f/w8PD/9PT0//f39//6+vr//Pz8//7+ - /v////////////7+/v/8/Pz/+vr6//j4+P/19fX/8fHx/+/v7//y8vL/8vLy/+Xl5djIyMhiAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGRkRXW1tZx5+fnzu7u7v38/Pz//Pz8//v7 - +//7+/v//Pz8//7+/v////////////7+/v/8/Pz//Pz8//v7+//9/f3//v7+/+/v7/3p6enO1tbWcZGR - kRUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzCsnJ - yUPh4eGT7Ozsz/Pz8/H7+/v//////////////////////////////////Pz8//T09PHs7OzP4+Pjk8nJ - yUMzMzMKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAHBwcCbW1tSbOzs5K3NzcZuPj43jt7e2B7e3tgePj43jh4eFmzs7OSrW1 - tSYcHBwJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///wD///AAD//wAA//8AAP/8AAA//wAA//AAAA// - AAD/wAAAA/8AAP+AAAAB/wAA/wAAAAD/AAD+AAAAAH8AAPwAAAAAPwAA+AAAAAAfAAD4AAAAAB8AAPAA - AAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAIAAAAAAAQAAgAAAAAAB - AACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAA - AAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAADAAAAAAAMAAMAAAAAAAwAA4AAAAAAH - AADgAAAAAAcAAPAAAAAADwAA8AAAAAAPAAD4AAAAAB8AAPwAAAAAPwAA/gAAAAB/AAD/AAAAAP8AAP+A - AAAB/wAA/8AAAAP/AAD/4AAAB/8AAP/4AAAf/wAA//4AAH//AAD//8AD//8AAP///////wAAKAAAACAA - AABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAoAAAAKAAAABgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAA2MjIyb1lZWZ1xcXG4goKCxIKCgsRxcXG4WVlZnTIy - Mm8AAAA2AAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsiIiJaaWlpu6Ojo/LU1NT/8fHx//39/f////////////// - ///z8/P/19fX/6ampvJqamq7IiIiWgAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4X19fuLCwsP/n5+f/9PT0//f39//6+vr//f39//// - //////////////z8/P/6+vr/+fn5/+zs7P+0tLT/YmJiuAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkYoWFhezS0tL/4uLi/+Tk5P/q6ur/8vLx//v7 - +P////3///////////////7//v/6//b29f/v7+//6urq/+jo6P/Z2dn/ioqK7CcnJ2IAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMXGQkJD80dHP/9LS0f/X19f/4eHf//Dw - 6v/u7vH/19fz/7278/+qp/P/qqf0/7e19P/U0vT/8fH1//X17v/n5+X/3t7e/9nZ2f/X19f/lpaW/DMz - M3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKytdi4uL/MPDwf+xssL/y8vO/9nZ - 0//U1N//kY/b/1BL1v8yK9j/KSDd/yge4v8oHuP/KB/f/zAn2v9RS9n/nJrg/+Dg5f/f39v/0dHS/8zM - zP/Ly8v/kpKS/C4uLl0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFMHd3d+m0tLT/vLy3/2pr - qP9qarn/qqnP/0A9wP8eGcL/JR7N/ywk1/8vJuD/LyXl/y8l5v8vJuL/LSTb/yYf0P8gGsX/TEnG/7m5 - 1v/U1M7/xMTE/76+vv++vr7/fX196QUFBTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVaWlqxpKSk/6mp - qf+0tK//ZGWk/xUVof8jIa7/Hxy3/yciw/8pItD/Jh7R/ycfyP8vJ8P/MSrD/yoixf8lHc//KiLS/ygi - x/8fG7r/LCq0/5ycxv/ExMD/tra2/7Kysv+tra3/YGBgsQAAAAUAAAAAAAAAAAAAAAAAAAAAKysrTIKC - gv6goKD/oaGh/6ysp/9cXZ//Fxeh/x8drP8jILj/JB/A/ygis/9iX7b/razS/9XV5v/c3Or/wsHc/3t5 - v/8wK7T/Ix3E/yUhvP8dG6//JiWp/56euv+zs6//qqqq/6mpqf+JiYn+Li4uTAAAAAAAAAAAAAAAAAAA - AABcXFyulpaW/5aWlv+ampr/o6Oe/1RUm/8XF6H/IB2s/yEduP80ML3/qqrC/+jp4//6+/b///////// - ///+/vv/9PTu/7q6y/8/Par/Hxu4/yEfsP8YGKP/PD2l/6enrP+jo6L/n5+f/5+fn/9gYGCuAAAAAAAA - AAAAAAAADQ0NJXNzc+2RkZH/kJCQ/5KSkv+ampb/RkaR/xAPmv8ZFqT/Gxev/yEbvP9+fMn/29va/+7u - 7f/8/Pz//v7+//T09P/k5OT/2dnW/6+wuv8yMKT/Hhuw/x0dpP8VFZr/a2yi/6Cgm/+Xl5f/mJiY/3h4 - eO0NDQ0lAAAAAAAAAAA/Pz9ZgYGB/4mJif+Kior/jIyM/5GRj/9RUn7/NDR7/zs6g/8+PYr/RUOT/01K - nP+rqsD/6Ojm//n5+f/9/f3/7u7u/9jY2P/ExMT/vL23/3x7oP8cGqb/HRyk/xcXmv8zNZj/k5SW/5GR - kP+QkJD/hoaG/0RERFoAAAAAAAAAAFRUVIiGhob/hYWF/4WFhf+Ghob/h4eH/4qKiP+Njov/kZGO/5WV - kv+dnZr/qaml/7e3t//U1NT/9fX1//z8/P/i4uL/xMTE/7CwsP+lpaT/m5ua/zY1mf8aGaX/Ghqb/xwd - lf96e4//jIyJ/4mJif+Kior/WlpaiAAAAAAAAAAAX19fpYWFhf+BgYH/goKC/4KCgf+CgoH/g4OC/4OD - gv+FhYX/iIiI/4qKiv+QkJD/m5ub/7Ozs//n5+f/9vb2/8TExP+np6f/mZmZ/5KSkv+Sko3/VlWM/xIR - mv8UFZL/DxGL/2Jkhv+JiIX/hISE/4iIiP9hYWGlAAAAAAAAAABkZGSxg4OD/39/f/9/f37/goKE/4iI - jf+IiI3/iIiO/4KCg/+AgID/gICA/4GBgf+CgoL/h4eH/62trf/AwMD/j4+P/4aGhv+EhIT/goKC/4OE - gv9xcX3/R0h0/0hIcv9FRm//a2t5/4KCgf+AgID/hYWF/2ZmZrAAAAAAAAAAAGlpabCDg4P/fn5+/4GB - fv9hYoT/LC6Y/zAxnf8yMqX/bW2M/4KCfv+AgID/goKC/4SEhP+NjY3/vLy8/9DQ0P+ampr/jY2N/4iI - iP+FhYX/hISE/4SEg/+Hh4P/h4eD/4eHg/+Dg4L/gYGB/4GBgf+Ghob/a2trrwAAAAAAAAAAampqoYWF - hf+AgID/hISB/2Bhf/8SE43/FheX/xUToP9eXZr/jIyG/4uLi/+SkpL/n5+f/7u7u//t7e3/+Pj4/83N - zf+urq7/np6e/5aWlf+RkY//jo6M/42Nif+Li4j/h4eH/4aGhv+Ghob/hYWF/4qKiv9tbW2hAAAAAAAA - AABpaWmAiIiI/4ODg/+GhoX/dXWB/xsdiv8ZGZj/GBeg/0FAqf+Zmpn/m5ua/6ioqP+7u7v/2dnZ//f3 - 9//8/Pz/4+Pj/8fHyf+3t7v/qKiw/52dq/+UlKn/iIin/4aGn/+Pj47/jY2M/4uLi/+Kior/j4+P/25u - boEAAAAAAAAAAGBgYE+JiYn/h4eH/4mJif+Li4n/MzSE/xYXmP8cG6D/Hhys/4aGtP+zs6z/u7u7/9DQ - 0P/n5+f/+/v7//39/f/x8u//tbTL/0pGuP87Nsb/Mi+9/yglsf8cG6f/PT2a/5mal/+UlJT/kZGR/5CQ - kP+RkZH/Z2dnTwAAAAAAAAAAMTExGoeHh+eOjo7/jo6O/5aWkv9oaIj/FhaR/x0cov8cGav/NjS6/7Cv - x//T08z/3d3c/+/v7//9/f3//f39//Pz8//n5+T/o6LA/zItuf8gHLv/Hx2v/xkYpP86Opv/oaGf/5yc - nP+ZmZn/mJiY/5CQkOc6OjoaAAAAAAAAAAAAAAAAh4eHoJqamv+UlJT/mZmZ/5ycmv87PIj/Fxeg/yAe - rP8eG7b/PDjG/7Cu3P/t7en//f31/////v/////////4/+zs7v+qqOH/OzbI/yIeuv8hH6//Ghql/zg5 - nf+np6f/pKSj/5+fn/+lpaX/j4+PoAAAAAAAAAAAAAAAAAAAAAB2dnY4mpqa+52dnf+goKD/qKim/5WV - oP8pKY7/Gxms/yMguP8iHcL/LCXO/2Zg4P+no+//xsT3/8PA9/+em+//WFLg/ycf0P8lH8b/JSG8/x4c - rv8WFaH/NTaf/6usr/+sq6v/p6en/6Ojo/t6eno4AAAAAAAAAAAAAAAAAAAAAAAAAACbm5udrKys/6am - pv+tra3/ubm2/5eYqf8tLZX/HBmz/ycixf8pIs7/Jx7W/yce3f8tI+P/LCLj/ycd3/8pINj/KyPR/ygh - yf8dGbP/PTya/0pKlP8rLJT/r6+1/7Ozsv+4uLj/pKSknQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm - ZhmsrKzctLS0/7S0tP+7u7v/ycnG/7Ozvf9RT6H/IBuu/yMdyv8sI9n/Lybg/zAm5f8wJub/Lybi/ywj - 2/8kHcz/Ix6v/2Niqf/Gxsr/y8vJ/3FynP+vsLf/wMC//7S0tNxwcHAZAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJmZmT+5ubn1wMDA/8LCwv/Kysr/19fV/9ra2f+iosP/WVey/zMtuP8oIMT/Jx7N/yce - zf8pIcX/Ni+5/19btf+vrsr/5OTh/9zc2//T09P/zc3L/8jIyP/BwcH1nZ2dPwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKurq0/FxcXzz8/P/9DQ0P/Y2Nj/4eHh/+/w7P/y8u//3Nzn/8HA - 3P+wrtj/tLLZ/8TD3v/f3+n/9fXy//Ly7//l5eX/3d3e/9bW1v/X19f/zMzM87GxsU8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6urjzQ0NDa4eHh/97e3v/k5OT/7Ozs//Pz - 8v/8/Pr///////////////////////z8+//09PT/7u7u/+jo6P/j4+P/5+fn/9TU1Nq7u7s8AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIuLixbU1NSW4ODg+fPz - 8//y8vL/9fX1//n5+f/9/f3////////////9/f3/+vr6//b29v/09PT/9vb2/+Tk5PnW1taWi4uLFgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADMzMwy4ODglurq6uL4+Pj/////////////////////////////////+fn5/+zs7OLi4uKWzMzMMgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAqqqqEtLS0kXk5OR17e3tlfLy8qTy8vKk7e3tleTk5HXS0tJFqqqqEgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//D///8AD//8A - AP/+AAB//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADwAAAA4AAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA - AAGAAAABgAAAAYAAAAHAAAADwAAAA+AAAAfgAAAH8AAAD/gAAB/8AAA//gAAf/+AAf//4Af//////ygA - AAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAbS0tLM0tLSzMAAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVV - VUiioqK1zMzM7OPj4Pvj5OH7z8/O7KamprVVVVVIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnp6 - eY3GxcP/9vbx//r6+//v7v//7+7///z8/v/8/Pb/ycnJ/35+fo0AAAACAAAAAAAAAAAAAAAAAAAAAHR0 - coqwsLr/t7jN/5eW1P9UTtr/OC/j/zct5P9TTd3/n53a/9ra2f/GxsX/eHh4igAAAAAAAAAAAAAAAFVV - VUKbm5j/lpar/ysrqP8gHLv/MCnG/2Ne0/9qZdX/My3I/xoWvv9oaLr/vLy7/6CgoP9VVVVCAAAAAAAA - AAB0dHStnp6b/4GCmf8WFZ//Hhm0/5+dzP/+//b////7/8fH1f9CP7L/FROn/3N0pP+oqKT/enp6rQAA - AAAaGhoTeXl55oyMi/+AgIf/W1uG/2Fgk/+Uk7D/7u7s//T09P/Ly8b/jo2k/xkYov8wMJj/kZGS/39/ - fuYaGhoTVVVVJ3h4ePeBgYL/gYKI/4iIiP+KioT/jY2K/7W1tv/CwsL/kZGR/4mJiP9DQ4f/NTaB/319 - g/97e3r3VVVVJ1BQUCZ6enn3eXqA/ywtk/8/P5v/hoaF/4yMi/+8vLz/ycnJ/5qal/+Skov/j4+G/4eH - g/+EhIT/fHx891BQUCY/Pz8QgIB/5ImJiP8vMIz/HBuk/42NqP/Cwrv/7+/v//f39P+hoMP/Yl+1/1FQ - p/+BgZb/lJSR/4eHh+Q/Pz8QAAAAAIiIiKaenpr/bW6R/xQToP9CP77/v77b//z8+f////v/p6bb/yIe - vv8REKf/fX2h/6mppf+RkZGmAAAAAAAAAACLi4s3oaGh/LCwrf9lZaT/Gha0/y4n1P9fWOn/XVXq/y0l - 1v8lILj/Pj2g/4aGqv+xsa38mZmZNwAAAAAAAAAAAAAAAKysrHvFxcX/z9DM/56dxf9XUsf/OTHS/zsy - 0/9aVcn/qKjM/9HR0P/Bwcf/tra0ewAAAAAAAAAAAAAAAAAAAAAAAAAAw8PDedXV1fz39/P/+vr2/+/v - 9v/w8Pb/+/v4//r69v/b29r8zMzMeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs415eXlofPz - 8+D///v0///79PPz8+Dn5+ehzs7ONQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACwsLAN2NjYIdjY2CGwsLANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/D81e/APAADAAwAAwAPmE4AB - //+AAf//AAD//wAArQAAAP//AAD//4AB//+AAUIAwAOK/+AH///wD////D8AAA== - - - \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/CompareItem.cs b/PROMS/Sync/SyncMany/CompareItem.cs deleted file mode 100644 index af9cae84..00000000 --- a/PROMS/Sync/SyncMany/CompareItem.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Xml.Serialization; - -namespace SyncMany -{ - [XmlRoot("SyncFile")] - public class SyncFile - { - private CompareItems _Items=new CompareItems(); - [XmlElement("CompareItem")] - public CompareItems Items - { - get { return _Items; } - set { _Items = value; } - } - } - public partial class CompareItems : List - { - } - public class CompareItem - { - private string _Source; - [XmlAttribute("Source")] - public string Source - { - get { return _Source; } - set { _Source = value; } - } - private string _Destination; - [XmlAttribute("Destination")] - public string DestinationItem - { - get { return _Destination; } - set { _Destination = value; } - } - public CompareItem() - { - } - public CompareItem(string source, string destination) - { - _Source = source; - _Destination = destination; - } - private FileInfo _SourceFile; - [XmlIgnore] - public FileInfo SourceFile - { - get - { - if (_SourceFile == null) - _SourceFile = new FileInfo(_Source); - return _SourceFile; - } - set { _SourceFile = value; } - } - private FileInfo _DestinationFile; - [XmlIgnore] - public FileInfo DestinationFile - { - get - { - if (_DestinationFile == null) - _DestinationFile = new FileInfo(_Destination); - return _DestinationFile; - } - set { _DestinationFile = value; } - } - public bool IsDifferent - { - get - { - string srcText = ReadFile(SourceFile); - string dstText = ReadFile(DestinationFile); - return srcText != dstText; - } - } - private string ReadFile(FileInfo myFile) - { - string retval; - using (StreamReader sr = myFile.OpenText()) - { - retval = sr.ReadToEnd(); - sr.Close(); - } - return retval; - } - public void CopySourceToDestination() - { - _DestinationFile.IsReadOnly = false; - _SourceFile.CopyTo(_Destination,true); - } - public void CopyDestinationToSource() - { - _SourceFile.IsReadOnly = false; - _DestinationFile.CopyTo(Source,true); - } - } -} diff --git a/PROMS/Sync/SyncMany/GenericSerializer.cs b/PROMS/Sync/SyncMany/GenericSerializer.cs deleted file mode 100644 index 107157e8..00000000 --- a/PROMS/Sync/SyncMany/GenericSerializer.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Xml; -using System.Xml.Schema; -using System.Xml.Serialization; - -namespace SyncMany -{ - public static class ObjectSerializer where T : class - { - public static string StringSerialize(T t) - { - string strOutput = string.Empty; - XmlSerializer xs = new XmlSerializer(typeof(T)); - using (MemoryStream ms = new MemoryStream()) - { - xs.Serialize(new NonXsiTextWriter(ms, Encoding.UTF8), t); - //xs.Serialize(ms, t); - ms.Position = 0; - StreamReader sr = new StreamReader(ms); - strOutput = sr.ReadToEnd(); - ms.Close(); - } - return strOutput; - } - public static T StringDeserialize(string s) - { - T t; - XmlSerializer xs = new XmlSerializer(typeof(T)); - UTF8Encoding enc = new UTF8Encoding(); - Byte[] arrBytData = enc.GetBytes(s); - using (MemoryStream ms = new MemoryStream(arrBytData)) - { - t = (T)xs.Deserialize(ms); - } - return t; - } - public static void WriteFile(T t, string fileName) - { - string strOutput = string.Empty; - XmlSerializer xs = new XmlSerializer(typeof(T)); - using (FileStream fs = new FileStream(fileName, FileMode.Create)) - { - xs.Serialize(new NonXsiTextWriter(fs, Encoding.UTF8), t); - fs.Close(); - } - } - public static T ReadFile(string fileName) - { - T t; - XmlSerializer xs = new XmlSerializer(typeof(T)); - using (FileStream fs = new FileStream(fileName, FileMode.Open)) - { - t = (T)xs.Deserialize(fs); - } - return t; - } - } - public class NonXsiTextWriter : XmlTextWriter - { - public NonXsiTextWriter(TextWriter w) : base(w) { } - public NonXsiTextWriter(Stream w, Encoding encoding) - : base(w, encoding) - { - this.Formatting = Formatting.Indented; - } - public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { } - bool _skip = false; - public override void WriteStartAttribute(string prefix, string localName, string ns) - { - if ((prefix == "xmlns" && (localName == "xsd" || localName == "xsi")) || // Omits XSD and XSI declarations. - ns == XmlSchema.InstanceNamespace) // Omits all XSI attributes. - { - _skip = true; - return; - } - if (localName == "xlink_href") - base.WriteStartAttribute(prefix, "xlink:href", ns); - else - base.WriteStartAttribute(prefix, localName, ns); - } - public override void WriteString(string text) - { - if (_skip) return; - base.WriteString(text); - } - public override void WriteEndAttribute() - { - if (_skip) - { // Reset the flag, so we keep writing. - _skip = false; - return; - } - base.WriteEndAttribute(); - } - } -} diff --git a/PROMS/Sync/SyncMany/Program.cs b/PROMS/Sync/SyncMany/Program.cs deleted file mode 100644 index 2b42030b..00000000 --- a/PROMS/Sync/SyncMany/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace SyncMany -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmSyncMany()); - } - } -} \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/Properties/AssemblyInfo.cs b/PROMS/Sync/SyncMany/Properties/AssemblyInfo.cs deleted file mode 100644 index 6cf4b7c6..00000000 --- a/PROMS/Sync/SyncMany/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("SyncMany")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("SyncMany")] -[assembly: AssemblyCopyright("Copyright © 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("1d309448-e6cc-4ad8-97ca-15dd2d5c551a")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/Sync/SyncMany/Properties/DataSources/CompareItems.datasource b/PROMS/Sync/SyncMany/Properties/DataSources/CompareItems.datasource deleted file mode 100644 index 471fcc0d..00000000 --- a/PROMS/Sync/SyncMany/Properties/DataSources/CompareItems.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - SyncMany.CompareItems, SyncMany, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/Properties/Resources.Designer.cs b/PROMS/Sync/SyncMany/Properties/Resources.Designer.cs deleted file mode 100644 index 2b4d39b5..00000000 --- a/PROMS/Sync/SyncMany/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace SyncMany.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SyncMany.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/Sync/SyncMany/Properties/Resources.resx b/PROMS/Sync/SyncMany/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/Sync/SyncMany/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/Properties/Settings.Designer.cs b/PROMS/Sync/SyncMany/Properties/Settings.Designer.cs deleted file mode 100644 index 60e8cac4..00000000 --- a/PROMS/Sync/SyncMany/Properties/Settings.Designer.cs +++ /dev/null @@ -1,96 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace SyncMany.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Drawing.Size Size { - get { - return ((global::System.Drawing.Size)(this["Size"])); - } - set { - this["Size"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Drawing.Point Location { - get { - return ((global::System.Drawing.Point)(this["Location"])); - } - set { - this["Location"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Normal")] - public global::System.Windows.Forms.FormWindowState WindowState { - get { - return ((global::System.Windows.Forms.FormWindowState)(this["WindowState"])); - } - set { - this["WindowState"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string FileName { - get { - return ((string)(this["FileName"])); - } - set { - this["FileName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string SourceFolder { - get { - return ((string)(this["SourceFolder"])); - } - set { - this["SourceFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string DestinationFolder { - get { - return ((string)(this["DestinationFolder"])); - } - set { - this["DestinationFolder"] = value; - } - } - } -} diff --git a/PROMS/Sync/SyncMany/Properties/Settings.settings b/PROMS/Sync/SyncMany/Properties/Settings.settings deleted file mode 100644 index a2e3d8d9..00000000 --- a/PROMS/Sync/SyncMany/Properties/Settings.settings +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - Normal - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/SyncMany.csproj b/PROMS/Sync/SyncMany/SyncMany.csproj deleted file mode 100644 index c79f91a1..00000000 --- a/PROMS/Sync/SyncMany/SyncMany.csproj +++ /dev/null @@ -1,108 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {256A41AF-440F-42FE-A9B1-2CE36F1261A2} - WinExe - Properties - SyncMany - SyncMany - sync.ico - SAK - SAK - SAK - SAK - v2.0 - - - - - 2.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - Form - - - frmAddCompareItem.cs - - - Form - - - frmSyncMany.cs - - - - - - Designer - frmAddCompareItem.cs - - - Designer - frmSyncMany.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/Thumbs.db b/PROMS/Sync/SyncMany/Thumbs.db deleted file mode 100644 index 37de5f2d..00000000 Binary files a/PROMS/Sync/SyncMany/Thumbs.db and /dev/null differ diff --git a/PROMS/Sync/SyncMany/app.config b/PROMS/Sync/SyncMany/app.config deleted file mode 100644 index 217e8909..00000000 --- a/PROMS/Sync/SyncMany/app.config +++ /dev/null @@ -1,24 +0,0 @@ - - - - -
    - - - - - - Normal - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/frmAddCompareItem.Designer.cs b/PROMS/Sync/SyncMany/frmAddCompareItem.Designer.cs deleted file mode 100644 index 21d06f43..00000000 --- a/PROMS/Sync/SyncMany/frmAddCompareItem.Designer.cs +++ /dev/null @@ -1,155 +0,0 @@ -namespace SyncMany -{ - partial class frmAddCompareItem - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.btnSource = new System.Windows.Forms.Button(); - this.tbSource = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.tbDestination = new System.Windows.Forms.TextBox(); - this.btnDestination = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.SuspendLayout(); - // - // btnSource - // - this.btnSource.Location = new System.Drawing.Point(634, 11); - this.btnSource.Name = "btnSource"; - this.btnSource.Size = new System.Drawing.Size(75, 23); - this.btnSource.TabIndex = 0; - this.btnSource.Text = "Browse..."; - this.btnSource.UseVisualStyleBackColor = true; - this.btnSource.Click += new System.EventHandler(this.btnSource_Click); - // - // tbSource - // - this.tbSource.Location = new System.Drawing.Point(90, 13); - this.tbSource.Name = "tbSource"; - this.tbSource.Size = new System.Drawing.Size(538, 20); - this.tbSource.TabIndex = 1; - this.tbSource.TextChanged += new System.EventHandler(this.tbText_TextChanged); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 16); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(41, 13); - this.label1.TabIndex = 2; - this.label1.Text = "Source"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 42); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(60, 13); - this.label2.TabIndex = 5; - this.label2.Text = "Destination"; - // - // tbDestination - // - this.tbDestination.Location = new System.Drawing.Point(90, 39); - this.tbDestination.Name = "tbDestination"; - this.tbDestination.Size = new System.Drawing.Size(538, 20); - this.tbDestination.TabIndex = 4; - this.tbDestination.TextChanged += new System.EventHandler(this.tbText_TextChanged); - // - // btnDestination - // - this.btnDestination.Location = new System.Drawing.Point(634, 37); - this.btnDestination.Name = "btnDestination"; - this.btnDestination.Size = new System.Drawing.Size(75, 23); - this.btnDestination.TabIndex = 3; - this.btnDestination.Text = "Browse..."; - this.btnDestination.UseVisualStyleBackColor = true; - this.btnDestination.Click += new System.EventHandler(this.btnDestination_Click); - // - // btnOK - // - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOK.Location = new System.Drawing.Point(553, 65); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(75, 23); - this.btnOK.TabIndex = 6; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Retry; - this.btnCancel.Location = new System.Drawing.Point(634, 65); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 7; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // ofd - // - this.ofd.Filter = "CSharp Files|*.cs|All Files|*.*"; - // - // frmAddCompareItem - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(782, 145); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOK); - this.Controls.Add(this.label2); - this.Controls.Add(this.tbDestination); - this.Controls.Add(this.btnDestination); - this.Controls.Add(this.label1); - this.Controls.Add(this.tbSource); - this.Controls.Add(this.btnSource); - this.Name = "frmAddCompareItem"; - this.Text = "frmAddCompareItem"; - this.Resize += new System.EventHandler(this.frmAddCompareItem_Resize); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnSource; - private System.Windows.Forms.TextBox tbSource; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox tbDestination; - private System.Windows.Forms.Button btnDestination; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.OpenFileDialog ofd; - } -} \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/frmAddCompareItem.cs b/PROMS/Sync/SyncMany/frmAddCompareItem.cs deleted file mode 100644 index e1ff1436..00000000 --- a/PROMS/Sync/SyncMany/frmAddCompareItem.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; - -namespace SyncMany -{ - public partial class frmAddCompareItem : Form - { - public string SourceName - { get { return tbSource.Text; } } - public string DestinationName - { get { return tbDestination.Text; } } - private string _SourceFolder; - public string SourceFolder - { - get { return _SourceFolder; } - set { _SourceFolder = value; } - } - private string _DestinationFolder; - public string DestinationFolder - { - get { return _DestinationFolder; } - set { _DestinationFolder = value; } - } - public frmAddCompareItem(string sourceFolder, string destinationFolder) - { - InitializeComponent(); - SetupButtons(); - SourceFolder = sourceFolder; - DestinationFolder = destinationFolder; - } - private void SetupButtons() - { - btnOK.Enabled = tbDestination.Text != null && tbSource != null; - } - private void frmAddCompareItem_Resize(object sender, EventArgs e) - { - if(Height != 131) - Height = 131; - } - private void tbText_TextChanged(object sender, EventArgs e) - { - SetupButtons(); - } - private void btnSource_Click(object sender, EventArgs e) - { - if (tbSource.Text != "") - { - SourceFolder = SetupOpenFileDialog(tbSource.Text); - } - else - { - ofd.InitialDirectory = SourceFolder; - } - if (ofd.ShowDialog() != DialogResult.OK) - return; - tbSource.Text = ofd.FileName; - SourceFolder = SetupOpenFileDialog(ofd.FileName); - } - private string SetupOpenFileDialog(string fileName) - { - FileInfo fi = new FileInfo(fileName); - ofd.InitialDirectory = fi.Directory.FullName; - ofd.FileName = fi.Name; - return ofd.InitialDirectory; - } - private void btnDestination_Click(object sender, EventArgs e) - { - if (tbDestination.Text != "") - { - DestinationFolder = SetupOpenFileDialog(tbDestination.Text); - } - else - { - ofd.InitialDirectory = DestinationFolder; - } - if (ofd.ShowDialog() != DialogResult.OK) - return; - tbDestination.Text = ofd.FileName; - DestinationFolder = SetupOpenFileDialog(ofd.FileName); - } - } -} \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/frmAddCompareItem.resx b/PROMS/Sync/SyncMany/frmAddCompareItem.resx deleted file mode 100644 index 86c9308b..00000000 --- a/PROMS/Sync/SyncMany/frmAddCompareItem.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/frmSyncMany.Designer.cs b/PROMS/Sync/SyncMany/frmSyncMany.Designer.cs deleted file mode 100644 index ba41a8a7..00000000 --- a/PROMS/Sync/SyncMany/frmSyncMany.Designer.cs +++ /dev/null @@ -1,285 +0,0 @@ -namespace SyncMany -{ - partial class frmSyncMany - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmSyncMany)); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.sfd = new System.Windows.Forms.SaveFileDialog(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.IsDifferent = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.sourceDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.destinationItemDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.cms = new System.Windows.Forms.ContextMenuStrip(this.components); - this.compareToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.copySourceToDestinationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.copyDestinationToSourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.compareItemsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.cms.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.compareItemsBindingSource)).BeginInit(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.addToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(672, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.openToolStripMenuItem, - this.saveToolStripMenuItem, - this.saveAsToolStripMenuItem, - this.toolStripMenuItem1, - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // openToolStripMenuItem - // - this.openToolStripMenuItem.Name = "openToolStripMenuItem"; - this.openToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.openToolStripMenuItem.Text = "&Open"; - this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); - // - // saveToolStripMenuItem - // - this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; - this.saveToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.saveToolStripMenuItem.Text = "&Save"; - this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); - // - // saveAsToolStripMenuItem - // - this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; - this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.saveAsToolStripMenuItem.Text = "Save&As"; - this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(149, 6); - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // addToolStripMenuItem - // - this.addToolStripMenuItem.Name = "addToolStripMenuItem"; - this.addToolStripMenuItem.Size = new System.Drawing.Size(41, 20); - this.addToolStripMenuItem.Text = "Add"; - this.addToolStripMenuItem.Click += new System.EventHandler(this.addToolStripMenuItem_Click); - // - // ofd - // - this.ofd.FileName = "SyncList.xml"; - this.ofd.Filter = "XML Files|*.xml"; - this.ofd.FileOk += new System.ComponentModel.CancelEventHandler(this.ofd_FileOk); - // - // sfd - // - this.sfd.FileName = "SyncList.XML"; - this.sfd.Filter = "XML Files|*.xml"; - this.sfd.FileOk += new System.ComponentModel.CancelEventHandler(this.sfd_FileOk); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 333); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(672, 22); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // dgv - // - this.dgv.AllowUserToAddRows = false; - this.dgv.AllowUserToDeleteRows = false; - this.dgv.AutoGenerateColumns = false; - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.IsDifferent, - this.sourceDataGridViewTextBoxColumn, - this.destinationItemDataGridViewTextBoxColumn}); - this.dgv.ContextMenuStrip = this.cms; - this.dgv.DataSource = this.compareItemsBindingSource; - this.dgv.Dock = System.Windows.Forms.DockStyle.Fill; - this.dgv.Location = new System.Drawing.Point(0, 24); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(672, 309); - this.dgv.TabIndex = 2; - this.dgv.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dgv_CellMouseDown); - // - // IsDifferent - // - this.IsDifferent.DataPropertyName = "IsDifferent"; - this.IsDifferent.HeaderText = "IsDifferent"; - this.IsDifferent.Name = "IsDifferent"; - this.IsDifferent.ReadOnly = true; - // - // sourceDataGridViewTextBoxColumn - // - this.sourceDataGridViewTextBoxColumn.DataPropertyName = "Source"; - this.sourceDataGridViewTextBoxColumn.HeaderText = "Source"; - this.sourceDataGridViewTextBoxColumn.Name = "sourceDataGridViewTextBoxColumn"; - // - // destinationItemDataGridViewTextBoxColumn - // - this.destinationItemDataGridViewTextBoxColumn.DataPropertyName = "DestinationItem"; - this.destinationItemDataGridViewTextBoxColumn.HeaderText = "DestinationItem"; - this.destinationItemDataGridViewTextBoxColumn.Name = "destinationItemDataGridViewTextBoxColumn"; - // - // cms - // - this.cms.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.compareToolStripMenuItem1, - this.copySourceToDestinationToolStripMenuItem, - this.copyDestinationToSourceToolStripMenuItem, - this.removeToolStripMenuItem}); - this.cms.Name = "cms"; - this.cms.Size = new System.Drawing.Size(219, 92); - // - // compareToolStripMenuItem1 - // - this.compareToolStripMenuItem1.Name = "compareToolStripMenuItem1"; - this.compareToolStripMenuItem1.Size = new System.Drawing.Size(218, 22); - this.compareToolStripMenuItem1.Text = "Compare"; - this.compareToolStripMenuItem1.Click += new System.EventHandler(this.compareToolStripMenuItem1_Click); - // - // copySourceToDestinationToolStripMenuItem - // - this.copySourceToDestinationToolStripMenuItem.Name = "copySourceToDestinationToolStripMenuItem"; - this.copySourceToDestinationToolStripMenuItem.Size = new System.Drawing.Size(218, 22); - this.copySourceToDestinationToolStripMenuItem.Text = "Copy Source to Destination"; - this.copySourceToDestinationToolStripMenuItem.Click += new System.EventHandler(this.copySourceToDestinationToolStripMenuItem_Click); - // - // copyDestinationToSourceToolStripMenuItem - // - this.copyDestinationToSourceToolStripMenuItem.Name = "copyDestinationToSourceToolStripMenuItem"; - this.copyDestinationToSourceToolStripMenuItem.Size = new System.Drawing.Size(218, 22); - this.copyDestinationToSourceToolStripMenuItem.Text = "Copy Destination to Source"; - this.copyDestinationToSourceToolStripMenuItem.Click += new System.EventHandler(this.copyDestinationToSourceToolStripMenuItem_Click); - // - // removeToolStripMenuItem - // - this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; - this.removeToolStripMenuItem.Size = new System.Drawing.Size(218, 22); - this.removeToolStripMenuItem.Text = "Remove"; - this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeToolStripMenuItem_Click); - // - // compareItemsBindingSource - // - this.compareItemsBindingSource.DataSource = typeof(SyncMany.CompareItem); - // - // frmSyncMany - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(672, 355); - this.Controls.Add(this.dgv); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmSyncMany"; - this.Text = "Sync Many"; - this.Load += new System.EventHandler(this.frmSyncMany_Load); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmSyncMany_FormClosing); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.cms.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.compareItemsBindingSource)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem saveAsToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.SaveFileDialog sfd; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.BindingSource compareItemsBindingSource; - private System.Windows.Forms.ContextMenuStrip cms; - private System.Windows.Forms.ToolStripMenuItem compareToolStripMenuItem1; - private System.Windows.Forms.DataGridViewCheckBoxColumn IsDifferent; - private System.Windows.Forms.DataGridViewTextBoxColumn sourceDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn destinationItemDataGridViewTextBoxColumn; - private System.Windows.Forms.ToolStripMenuItem copySourceToDestinationToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem copyDestinationToSourceToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem addToolStripMenuItem; - } -} - diff --git a/PROMS/Sync/SyncMany/frmSyncMany.cs b/PROMS/Sync/SyncMany/frmSyncMany.cs deleted file mode 100644 index 4252ef3a..00000000 --- a/PROMS/Sync/SyncMany/frmSyncMany.cs +++ /dev/null @@ -1,269 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; - -namespace SyncMany -{ - public partial class frmSyncMany : Form - { - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - private string _MyFileName; - public string MyFileName - { - get { return _MyFileName; } - set { _MyFileName = value; ofd.FileName = value; sfd.FileName = value; } - } - SyncFile _MySyncFile = new SyncFile(); - public SyncFile MySyncFile - { - get { return _MySyncFile; } - set - { - _MySyncFile = value; - ResetOriginalSync(); - dgv.DataSource = value.Items; - dgv.AutoResizeColumns(); - } - } - private void ResetOriginalSync() - { - _OriginalSync = ObjectSerializer.StringSerialize(MySyncFile); - } - private string _SourceFolder; - public string SourceFolder - { - get { return _SourceFolder; } - set { _SourceFolder = value; } - } - private string _DestinationFolder; - public string DestinationFolder - { - get { return _DestinationFolder; } - set { _DestinationFolder = value; } - } - public frmSyncMany() - { - InitializeComponent(); - compareItemsBindingSource.DataSource = MySyncFile.Items; - } - public string _OriginalSync = ""; - public bool IsDirty - { - get - { - string tmp = ObjectSerializer.StringSerialize(MySyncFile); - return tmp != _OriginalSync; - } - } - private void openToolStripMenuItem_Click(object sender, EventArgs e) - { - if (ofd.ShowDialog() == DialogResult.OK) - { - MySyncFile = ObjectSerializer.ReadFile(MyFileName); - } - } - private void saveToolStripMenuItem_Click(object sender, EventArgs e) - { - if (MyFileName == null) - saveAsToolStripMenuItem_Click(sender, e); - else - { - ObjectSerializer.WriteFile(MySyncFile, MyFileName); - ResetOriginalSync(); - } - } - private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) - { - if (sfd.ShowDialog() == DialogResult.OK) - { - ObjectSerializer.WriteFile(MySyncFile, MyFileName); - ResetOriginalSync(); - } - } - private void ofd_FileOk(object sender, CancelEventArgs e) - { - MyFileName = ofd.FileName; - } - private void sfd_FileOk(object sender, CancelEventArgs e) - { - MyFileName = sfd.FileName; - } - private void addToolStripMenuItem_Click(object sender, EventArgs e) - { - frmAddCompareItem myCompareItem = new frmAddCompareItem(SourceFolder,DestinationFolder); - if (myCompareItem.ShowDialog() == DialogResult.OK) - { - SourceFolder = myCompareItem.SourceFolder; - DestinationFolder = myCompareItem.DestinationFolder; - MySyncFile.Items.Add(new CompareItem(myCompareItem.SourceName, myCompareItem.DestinationName)); - //compareItemsBindingSource.Add(new CompareItem(myCompareItem.SourceName, myCompareItem.DestinationName)); - compareItemsBindingSource.DataSource = null; - compareItemsBindingSource.DataSource = MySyncFile.Items; - dgv.DataSource = null; - dgv.DataSource = compareItemsBindingSource; - dgv.Refresh(); - } - } - private void compareToolStripMenuItem1_Click(object sender, EventArgs e) - { - foreach (DataGridViewRow row in dgv.SelectedRows) - { - CompareItem item = row.DataBoundItem as CompareItem; - if (item != null) - { - System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe", - string.Format(@" -t ""{0}"" ""{1}""", item.Source, item.DestinationItem)); - System.Diagnostics.Process prc = System.Diagnostics.Process.Start(psi); - } - } - } - private void frmSyncMany_Load(object sender, EventArgs e) - { - LoadSettings(); - this.Move +=new EventHandler(frmSyncMany_Move); - this.Resize +=new EventHandler(frmSyncMany_Resize); - FileInfo myInfo = new FileInfo(MyFileName); - if (myInfo.Exists) - MySyncFile = ObjectSerializer.ReadFile(MyFileName); - else - MySyncFile = new SyncFile(); - } - private void copySourceToDestinationToolStripMenuItem_Click(object sender, EventArgs e) - { - foreach (DataGridViewRow row in dgv.SelectedRows) - { - CompareItem item = row.DataBoundItem as CompareItem; - if (item != null) - { - item.CopySourceToDestination(); - } - dgv.Refresh(); - } - } - private void copyDestinationToSourceToolStripMenuItem_Click(object sender, EventArgs e) - { - foreach (DataGridViewRow row in dgv.SelectedRows) - { - CompareItem item = row.DataBoundItem as CompareItem; - if (item != null) - { - item.CopyDestinationToSource(); - } - } - dgv.Refresh(); - } - private void frmSyncMany_FormClosing(object sender, FormClosingEventArgs e) - { - if (IsDirty) - { - DialogResult result = MessageBox.Show("Do you want to Save changes?","Save Changes", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - switch (result) - { - case DialogResult.Cancel: - // Don't close - e.Cancel = true; - return; - break; - case DialogResult.No: - // Don't do anything - break; - case DialogResult.Yes: - saveToolStripMenuItem_Click(this, e); - break; - } - } - SaveSettings(); - } - private string GetPropertyString(string propertyName) - { - object prop = Properties.Settings.Default[propertyName]; - return prop == null ? "" : prop.ToString(); - } - private void LoadSettings() - { - string myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); - if (GetPropertyString("Location") != "") - this.Location = Properties.Settings.Default.Location; - if ((Properties.Settings.Default["Size"] ?? "") != "") - this.Size = Properties.Settings.Default.Size; - this.WindowState = Properties.Settings.Default.WindowState; - string test = GetPropertyString("FileName"); - if (GetPropertyString("FileName") != "") - MyFileName = Properties.Settings.Default.FileName; - else - MyFileName = myDocuments + @"\SyncList.XML"; - SetupOpenFileDialog(MyFileName); - if (GetPropertyString("SourceFolder") != "") - SourceFolder = Properties.Settings.Default.SourceFolder; - else - SourceFolder = myDocuments; - if (GetPropertyString("DestinationFolder") != "") - DestinationFolder = Properties.Settings.Default.DestinationFolder; - else - DestinationFolder = myDocuments; - } - private string SetupOpenFileDialog(string fileName) - { - FileInfo fi = new FileInfo(fileName); - sfd.InitialDirectory = ofd.InitialDirectory = fi.Directory.FullName; - sfd.FileName = ofd.FileName = fi.Name; - return ofd.InitialDirectory; - } - private void SaveSettings() - { - Properties.Settings.Default.WindowState = this.WindowState; - Properties.Settings.Default.FileName = MyFileName; - Properties.Settings.Default.SourceFolder = SourceFolder; - Properties.Settings.Default.DestinationFolder = DestinationFolder; - Properties.Settings.Default.Save(); - } - private void frmSyncMany_Move(object sender, EventArgs e) - { - if (this.WindowState == FormWindowState.Normal) - { - Properties.Settings.Default.Location = this.Location; - Properties.Settings.Default.Size = this.Size; - } - } - private void frmSyncMany_Resize(object sender, EventArgs e) - { - if (this.WindowState == FormWindowState.Normal) - { - Properties.Settings.Default.Location = this.Location; - Properties.Settings.Default.Size = this.Size; - } - } - private void removeToolStripMenuItem_Click(object sender, EventArgs e) - { - int index = dgv.SelectedRows[0].Index; - dgv.Rows[index].Selected = false; - MySyncFile.Items.RemoveAt(index); - compareItemsBindingSource.DataSource = MySyncFile.Items; - dgv.DataSource = null; - dgv.DataSource = compareItemsBindingSource; - dgv.Refresh(); - } - private void dgv_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) - { - if (e.RowIndex >= 0) - { - dgv.Rows[e.RowIndex].Selected = true; - dgv.CurrentCell = dgv[0, e.RowIndex]; - } - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - - } -} \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/frmSyncMany.resx b/PROMS/Sync/SyncMany/frmSyncMany.resx deleted file mode 100644 index 661f3c7d..00000000 --- a/PROMS/Sync/SyncMany/frmSyncMany.resx +++ /dev/null @@ -1,4653 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 132, 17 - - - 189, 17 - - - 257, 17 - - - True - - - 581, 17 - - - 373, 17 - - - - - AAABAAEAAAAAAAEAIAAoIAQAFgAAACgAAAAAAQAAAAIAAAEAIAAAAAAAACAEAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAMAAAADAAAAAwAAAAIAAAACAAAAAQAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACgAA - AAoAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACgAAAAoAAAAKAAAACAAAAAgAAAAGAAAABQAAAAUAAAADAAAAAwAA - AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAEAAAACAAAABAAAAAUAAAAGAAAACQAAAAsAAAAMAAAADgAAABAAAAARAAAAEgAA - ABMAAAATAAAAEwAAABQAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABQAAAAUAAAAEwAAABMAAAATAAAAEgAAABAAAAAPAAAADgAAAAsAAAAKAAAABwAA - AAUAAAAEAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAEAAAADAAAABAAAAAYAAAAJAAAADAAAAA8AAAASAAAAFAAAABcAAAAZAAAAGwAA - AB0AAAAeAAAAHwAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAB8AAAAfAAAAHgAAABwAAAAaAAAAGQAAABYAAAATAAAAEAAA - AA0AAAAKAAAABwAAAAUAAAADAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAcAAAAKAAAADQAAABIAAAAWAAAAGgAAAB8AAAAjAAAAJgAA - ACkAAAArAAAALQAAAC4AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALQAAACwAAAAqAAAAKAAAACQAAAAhAAAAHQAA - ABgAAAAUAAAADwAAAAsAAAAIAAAABQAAAAMAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAYAAAAJAAAADgAAABMAAAAZAAAAHwAAACUAAAArAAAAMAAA - ADUAAAA5AAAAPAAAAD4AAAA/AAAAQAAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQAAAAD8AAAA9AAAAOgAAADcAAAAzAAAALgAA - ACgAAAAiAAAAHAAAABYAAAAQAAAACwAAAAgAAAAFAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAUAAAAJAAAADQAAABMAAAAZAAAAIQAAACoAAAAxAAAAOgAA - AEAAAABGAAAATAAAAE8AAABSAAAAVAAAAFUAAABWAAAAVgAAAFYAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFYAAABWAAAAVQAAAFUAAABTAAAAUQAAAE4AAABJAAAAQwAA - AD0AAAA2AAAALgAAACYAAAAeAAAAFgAAABAAAAALAAAABwAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAGAAAACwAAABEAAAAYAAAAIAAAACoAAAA0AAAAPwAA - AEgAAABRAAAAWQAAAF8AAABkAAAAaAAAAGoAAABsAAAAbAAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAGwAAABrAAAAagAAAGYAAABiAAAAXQAA - AFUAAABNAAAARAAAADoAAAAvAAAAJQAAABwAAAAUAAAADgAAAAgAAAAEAAAAAgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAACAAAAA0AAAAUAAAAHgAAACcAAAAzAAAAQAAA - AEwAAABXAAAAYQAAAGsAAAByAAAAdwAAAHsAAAB+AAAAgAAAAIAAAACAAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIAAAACAAAAAfwAAAH0AAAB5AAAAdQAA - AG8AAABmAAAAXQAAAFIAAABGAAAAOQAAAC0AAAAiAAAAGQAAABAAAAALAAAABQAAAAIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAkAAAAPAAAAFwAAACEAAAAtAAAAOwAA - AEoAAABXAAAAZQAAAHAAAAB6AAAAggAAAIgAAACNAAAAjwAAAJEAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJAAAACPAAAAiwAA - AIYAAAB+AAAAdQAAAGoAAABeAAAAUQAAAEIAAAA0AAAAKAAAAB0AAAATAAAADAAAAAYAAAADAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAJAAAAEQAAABoAAAAlAAAAMgAA - AEEAAABRCgoIcRUUEaUXFRK8FxUSwRcVEsUXFRLJFxUSyxcVEs0XFRLNFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4WFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhYVEs4WFRLOFhUSzhYVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4WFRLOFhUSzhYVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4WFRLOFhQRzhUUEc4WFRLOFxUSzhYVEs4WFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhYVEs4WFRLOFxUSzhcVEs4XFRLOFxUSzhYVEs4WFRLOFhUSzhYV - Es4WFRLOFhUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4WFRLOFRQRzhUUEc4VFBHOFhUSzhcV - Es4WFRLOFhUSzhYVEs4VFBHOFRQRzhUTEc4WFRLOFhUSzhYVEs4WFRLOFxUSzhcVEs4XFRLNFxUSzBYV - EsoWFRLHFhUSwxYVEr8WFRK5FBIQoAoICGoAAABJAAAAOQAAACsAAAAfAAAAFgAAAA0AAAAHAAAAAwAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAACgAAABIAAAAcAAAAKAAA - ADUAAABGJSIeqjczLPw5NC7/Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ni7/Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ni7/ODQt/zczLP84NC3/OjYu/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo2L/86NS7/Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//OjYv/zk0Lf84NCz/OjYv/zo3L/86Ni7/OjYv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo2 - Lv86Ni7/Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//OjYu/zk0 - Lf84NC3/OjUu/zo1Lv86NS7/Ojcv/zo3L/86Ny//OjYu/zo3L/86Ni7/OjUu/zgzLP83Myv/NzMs/zk0 - Lf86Ny//OjYv/zo1Lv85NS7/ODMs/zYyK/82Myv/OTQt/zo1Lv86NS7/OjUu/zo1Lv86Ni7/Ojcv/zo3 - L/86Ni//OjUu/zo2L/86Ni//OjYu/zYyK/8wLSf8HRsXpQAAAD0AAAAuAAAAIgAAABcAAAAOAAAACAAA - AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAAAoAAAASAAAAHAAA - ACgAAAA3KSYijUM9N/9DPTf/Qz43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9CPTb/Qj03/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/QT02/z87NP8+OzP/QT01/0I9Nv9CPjf/Qz43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0M+N/9EPjf/Qz42/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9DPjf/Qj02/0E9Nf9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9DPjb/Qj02/0Q+N/9EPjf/Qz42/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9CPTb/QT02/0M+Nv9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0M+ - Nv9BPTb/QT01/0I9Nv9CPTb/Qz42/0Q+N/9EPjf/RD43/0M+Nv9EPjf/Qz43/0I9Nv8/PDT/Pzs0/0A8 - NP9CPTb/Qj02/0I9Nv9CPTb/QT02/0A8NP8/OjP/Pzsz/0I9Nv9CPTb/Qj02/0A9Nf9APTX/QT01/0M+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9DPjf/QDs0/zUwK/8aGBaIAAAAMAAAACIAAAAXAAAADgAA - AAcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAJAAAAEQAA - ABsAAAAnBQQEOFtXUOtKRT3/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dBOf9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9GQDj/RkA4/0VAOP9HQTn/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dBOf9GQDn/RkA4/0ZAOP9GQDj/RkA4/0dBOf9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dBOf9GQDj/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/RkA4/0U/N/9FPzf/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0E5/0ZAOP9HQTn/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9GQDj/RT83/0Q/N/9GQTn/RkE5/0dBOf9HQjr/R0I6/0dCOv9HQTn/R0E5/0dCOv9HQjr/R0E5/0ZB - Of9GQTn/R0I6/0dCOv9HQTn/RkA4/0U/N/9EPjb/RD42/0U/N/9GQDj/RkA4/0ZAOP9EPzf/RD43/0U/ - OP9HQjr/R0I6/0dCOv9GQDj/RkA4/0ZAOP9HQjr/R0I6/0dCOv9BPTX/Mi8p6QMCAjEAAAAhAAAAFgAA - AA0AAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAACAAA - ABAAAAAaAAAAJi4tKmNjX1j/SkY9/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0hEO/9HQjr/SUQ8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/R0E5/0VAOP9GQTn/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRDz/SEQ7/0hDO/9IRDv/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9IQzv/SEM7/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0dCOv9FQDj/RkA6/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SEQ8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SEM7/0ZBOv9HQjr/SEQ7/0hEO/9JRDz/SUU8/0lFPP9JRTz/SUU8/0lEPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0dCOv9GQDn/RkA4/0dCOv9IRDv/SEQ7/0hEO/9IQzr/RkA6/0dC - Ov9JRDz/SUU8/0lFPP9JRTz/SEQ7/0hEO/9IRDv/SUU8/0lFPP9JRTz/SEQ7/zo3MP8UExBZAAAAHwAA - ABUAAAAMAQEBBQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA - AAcAAAAOAAAAFwAAACM+PDqOYl5W/0xIP/9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9JRTz/SUU8/0pGPf9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/SkY9/0hDO/9HQzv/SUU8/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0pGPf9KRj3/SkY9/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/SkY9/0pGPf9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9IRDz/RkE5/0lEO/9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/SUU9/0lFPf9LRz7/S0c+/0pG - Pf9LRz7/SkY9/0lGPf9JRj3/SkY9/0pGPf9KRj3/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9JRj3/SEQ8/0hEPP9JRTz/SkY9/0pGPf9KRj3/SkY9/0lG - Pf9KRj3/S0c+/0tHPv9LRz7/S0c+/0lFPf9IRTz/SkY9/0tHPv9LRz7/S0c+/0tHPv9BPTX/GhgVfwAA - AB0AAAASAAAACgMCAgQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAECAQEGAAAACwAAABQAAAAeQkE+kmJeVv9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TUlA/01JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/01JQP9KRj7/SkY+/0xIP/9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9MSD//SkY9/0tH - P/9NSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TUlA/0xIP/9MSD//TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TEg//0lGPf9MSD//TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/01JQP9LRz7/TEg//01J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TUg//0pGPf9KRj3/TEg//01I - P/9MSD//S0c//0xIP/9MSD//TEg//0xIP/9NSD//TEg//01JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/01JQP9MSD//TEg//0xIP/9MSD//TEg//0xIP/9MSD//TEg//0xIP/9MSD//TEg//0xI - P/9NSD//TklA/05JQP9OSUD/TklA/05JQP9MSD//S0c+/0xIP/9OSUD/TklA/05JQP9OSUD/RkI6/xwa - F4sAAAAZAAAADwMDAwkEBAQDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAwMDBAYFBQkAAAAQAAAAGVJPTZNlYFn/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UEtD/09KQv9QSkL/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/T0pB/05J - QP9OSUD/UEtD/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1BKQ/9OSUD/UEpD/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UEtD/1BLQ/9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9PSkL/TUg//01I - QP9QS0P/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/05JQf9KRj7/TEc//05J - Qf9QS0P/UEtD/05JQf9PSUH/T0pC/1BKQv9QSkL/UEtE/1BKQv9QSkL/UEpC/1BLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9QSkL/UEpC/09KQf9QSkL/UEpC/1BKQv9QS0P/UUtE/1FLRP9RS0T/UEpC/1BK - Qv9QS0P/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UEpC/05JQv9QSkL/UUtE/1FLRP9RS0T/UUtE/0pE - Pf8mIyCRAAAAFQAAAAwPDg0HBwYFAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAUFBQIZGRgGAAAADAAAABRsaWWYZmFa/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/UkxF/1NN - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NN - Rv9STET/UUtF/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTUb/UkxE/1JN - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/UkxF/1JMRf9STEX/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/Uk1G/1FL - RP9RS0T/U01G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NNRv9QSkL/T0lB/1FL - Q/9STEX/U01G/1JMRv9RS0X/UUtE/1FLRP9RS0X/UkxF/1JMRf9STEX/UkxF/1JMRf9TTUb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/UkxF/1JMRf9STUX/U01G/1NNRv9TTkb/U05G/1NORv9TTkb/U05G/1NN - Rv9STEX/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NNRv9STEX/UkxF/1NORv9TTkb/U05G/1NO - Rv9NR0D/MS4plgAAABAAAAAJGxkWBQoJCAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAJCAgBLSspBQ4ODQkAAAAPeXZxnWZiWf9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VE9G/1RP - Rv9VUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1RP - Rv9UT0b/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1RPRv9UT0b/VE9G/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VE9G/1RP - Rv9TT0b/U05G/1VQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9VUEf/U05G/1JN - RP9TTkb/VE9G/1VQR/9UT0b/U05F/1JNRf9TTkb/U09G/1RPRv9UT0b/U09G/1NPRv9UT0f/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1RPRv9UT0b/VVBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VE9G/1VQR/9WUEf/VlBH/1ZQ - R/9WUEf/TkpB/zc0LpwAAAAMIR8cBiEfGwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAADQ0MATg2MwMyMC0GAAAACoJ+eqRmYlr/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1ZQ - SP9WUEj/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9WUEj/VlBI/1ZQSP9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9VUEj/U05G/1RPR/9WUEj/VU9H/1VPR/9VT0j/VlBI/1ZQSP9VT0f/VU9H/1VPSP9VT0f/VU9I/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1ZQSP9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1BLQ/87ODKjDw4MCDQwKwUoJSEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGQ0ABTktGBD06NQeHg32qaGNa/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9ZU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9ZU0r/WVNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WVNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WVNK/1hSSf9YUkn/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WFJJ/1dSSf9XUkn/WFJJ/1dRSP9YUkn/WFJJ/1lSSf9ZUkn/V1FJ/1dRSP9XUUj/VlBH/1dR - SP9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9ZU0r/WVNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9ZU0r/WVNK/1hSSf9YUkn/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9TTUX/Pzs0qkE9NgU7NzECMCwnAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFlWUAFZVU4EioZ/sWhjWv9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tUS/9bVUv/W1VL/1tV - S/9bVUv/WlRL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9aVEv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVEv/WlNK/1pTSv9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1pUS/9YUkn/WVJK/1tVS/9bVUv/W1VL/1tUS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1pUS/9aU0r/WlNK/1pTSv9aU0r/WlNK/1pUSv9bVEv/WlNK/1pTSv9YUkn/WFJJ/1dR - SP9ZUkr/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tUS/9bVEv/WlRL/1pTSv9aU0r/WlRK/1tV - S/9bVUv/W1VL/1tVS/9bVUv/VU9G/0E9NrFHQzsCQj03AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkYFkBYVxVAouHgbhmYVj/W1VM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVTP9bVEv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/W1VL/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1pTSv9aVEv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pUS/9bVUv/XFZM/1xWTP9bVUv/W1VL/1pUS/9aVEv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVEv/WFNK/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVEv/WlNK/1tUS/9bVEv/W1RL/1tUS/9bVUv/XFZM/1xWTP9cVkz/W1RL/1pT - Sv9ZU0r/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1VPR/9CPje5TUhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhiWwGLh4HBZ2FY/1tW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9aU0v/W1RL/1tVS/9cVkz/XFZM/1tVS/9bVUv/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tU - S/9aVEv/W1VL/1xWTP9cVkz/XFZM/1pUS/9YUkn/WlNK/1tUS/9bVUv/W1RL/1lTSv9aU0r/WlNK/1tV - S/9cVkz/XFZM/1xWTP9bVUv/WVNK/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1lTSv9ZU0r/WlNK/1tUS/9bVEv/W1VL/1xWTP9cVkz/XFZM/1tV - S/9bVEv/W1RL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9bVUv/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9WUEf/Qz43wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAioaByWZg - V/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1hTSv9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1lT - Sv9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9aVEv/WVNK/1tUS/9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/WlNK/1tVS/9cVkz/XFZM/1xWTP9bVUv/WFNK/1pTSv9bVEv/WlNK/1pTSv9aU0r/W1RL/1tU - S/9bVUv/XFZM/1xWTP9bVUv/WVNL/1lTSv9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/V1JJ/1lSSv9bVEv/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1tUS/9bVEv/XFZM/1xWTP9bVUv/W1RL/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/WlRL/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9bVEv/W1RL/1tUS/9bVEv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/V1FI/0M/OMkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAImF - f9JlX1b/XFZM/1xWTP9cVkz/XFZM/1tVS/9aU0r/WlNK/1pTS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9aU0r/W1RL/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9ZU0r/WFJJ/1tUS/9bVEv/W1RL/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/W1VL/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1tVS/9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9aU0v/W1RL/1tUS/9aU0r/WlNK/1tU - S/9cVkz/XFZM/1xWTP9bVUv/WlNK/1tUS/9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pUS/9ZU0r/WlNK/1tUS/9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tUS/9aU0r/WlNL/1tVS/9aU0v/WFJK/1dRSP9XUUj/WlRL/1xWTP9cVkz/XFZM/1xW - TP9bVUv/W1RL/1lTSv9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1VM/1xWTP9bVUv/WVNK/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1dRSP9EPznSAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACIhH7bY15V/1xWTP9cVkz/XFZM/1xWTP9bVUv/WFJJ/1hSSf9aU0r/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9ZU0r/WFJK/1pTSv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/VlBI/1VQR/9bVEv/W1RL/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9bVEv/XFZM/1tVS/9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9aVEv/WVNK/1pUS/9bVEv/W1RL/1tU - S/9bVEv/XFZM/1xWTP9cVkz/W1VL/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/WlNK/1pTSv9bVEv/W1VL/1xW - TP9cVkz/XFZM/1xWTP9bVUv/WVNK/1lTSv9bVEv/WFJJ/1RPR/9TT0b/VlFI/1tVS/9cVkz/XFZM/1xW - TP9cVkz/WlNK/1hSSv9YUkn/W1RL/1tVS/9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1pT - Sv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9YUUn/RUE52wAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAh4N95GJcU/9cVkz/WlRL/1pUS/9cVkz/XFZM/1tVTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9aVEr/VlFI/1hSSf9aU0r/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1VL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1RL/1RORv9VUEj/W1RL/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1VL/1xWTP9bVUv/W1ZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1tUS/9bVEv/W1RL/1tU - S/9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1lTSv9XUUn/WVNK/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVEv/W1RL/1hSSf9TTkb/VU9H/1hSSf9cVkz/XFZM/1xW - TP9cVkz/XFZM/1pUS/9aU0r/WVNK/1tUS/9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WFJJ/0ZBOuQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIaCe+xhXFL/W1VL/1dRSP9YUkn/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tU - S/9WUUj/VU9H/1VQR/9YU0r/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/WlRL/1dSSf9TTUb/V1FJ/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tVS/9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1tUS/9bVEv/XFZM/1tV - S/9bVEv/W1RL/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1ZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9ZU0r/V1FJ/1hS - Sf9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1RL/1tUS/9ZU0r/VlBI/1dRSP9aVEv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9bVEv/WVNK/1lTSv9bVEv/XFZM/1xWTP9cVkz/XFZM/1tV - TP9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9HQjvsAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACFgXr0YFpR/1pUS/9WUEj/WFJJ/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/WVNK/1hSSv9ZU0r/WlRL/1xWTP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1dRSf9VUEf/VVBH/1pUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1tVS/9bVEv/W1RL/1tV - S/9bVEv/WlNK/1pTS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1pT - Sv9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9cVkz/W1RL/1hSSf9YUkr/W1VL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1lTSv9ZU0r/W1RL/1xWTP9cVkz/XFZM/1tV - S/9YU0r/WFJJ/1lSSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aU0r/R0M79QAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAhIB5/V9ZUP9bVUv/WVNK/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9VUEf/VlBI/1lTSv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pTSv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WlNL/1pTS/9bVEv/W1RL/1tU - S/9bVEv/WlNK/1lTSv9ZU0r/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/W1VM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9bVEv/W1VL/1pTSv9ZU0r/WlNK/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1VL/1xWTP9cVkz/XFZM/1tV - S/9YUkn/VlBI/1dRSP9YUkn/WlRL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WlRK/0hD - O/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAfnpyB4N/eP9fWU//XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9YUkn/VVBH/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1VL/1pTS/9bVEv/W1VL/1tU - S/9bVEv/W1RL/1pTS/9ZU0r/WlRL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1VL/1tUS/9aU0r/WlNK/1tU - S/9bVUz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/V1FJ/1VQR/9XUUj/WFJJ/1pTSv9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pU - S/9JRDz/S0Y+CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH56chCCfnf/X1lP/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/WlNK/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1RL/1pTS/9cVkz/XFZM/1tV - S/9bVEv/W1RL/1tUS/9ZU0r/WlNK/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1RL/1xWTP9cVkz/XFZM/1tV - S/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1pUS/9YUkr/WlNK/1tUS/9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9aVEv/SUQ8/0tGPhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+enIYgXx1/19ZT/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9ZU0r/WlRL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVEv/W1RL/1xW - TP9cVkz/W1RL/1tUS/9ZU0r/WVNK/1pTS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVkz/W1VL/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1RL/0lEPf9KRT0ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf3pzIYB7dP9eWE7/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9ZU0v/WlNK/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9aU0r/V1FJ/1hSSf9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WlNL/1pT - Sv9bVUv/XFZM/1tVS/9aU0v/WlNK/1tUS/9bVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tUS/9JRT3/SkU9IQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH96cyp/eXL/XlhO/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/V1FJ/1lSSv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/WVNK/1ZRSP9XUUj/WFJJ/1pUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9ZU0r/W1VL/1tVS/9bVEv/W1RL/1tUS/9bVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1RL/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVEv/SkU9/0pFPSoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/enMzfXhx/15YTv9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/WlNK/1pTSv9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9XUUj/V1FI/1dRSf9aU0r/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/WlNL/1tUS/9aU0r/WlNK/1pTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9aU0r/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1RL/0tGPv9KRT0zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfnpzO3p2bv9cVk3/WlRL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1pTSv9aU0r/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/WFJK/1hSSf9ZU0r/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tUS/9bVEv/V1FI/1ZQR/9XUUj/WVNK/1pUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9aU0r/WlNK/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9MRj//SkU9PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH55ckV4c2z/WlVL/1pT - Sv9bVUz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9ZU0r/WVNK/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1lTSv9ZU0r/W1RL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/WlNK/1VPR/9STkb/U05G/1dRSP9YUkr/W1RL/1tUS/9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/WVNK/1pTSv9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/TUdA/0pFPkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+eXJNd3Ns/11X - Tf9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/WFJJ/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VM/1tVS/9bVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/WlRL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9UT0b/UkxF/1JNRf9WUEf/WFJJ/1hSSv9ZU0r/W1RL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9bVUv/WVNK/1ZQSP9aU0r/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/01IQf9KRj5OAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfXlyVnZx - av9dV03/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pUS/9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1lTSv9YUkr/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9ZU0r/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/WFJJ/1dRSf9XUUj/V1FJ/1lTSv9ZU0r/WVNK/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/W1RL/1hTSv9XUUn/WlRL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9OSUH/S0Y+VgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH15 - cV50b2j/XFZN/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - TP9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9aVEv/WlRL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tVS/9bVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1pU - S/9ZUkn/WlRK/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVUv/WlRL/1lTSv9bVEv/W1VL/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9ZU0r/WFJJ/1tU - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/UEpC/0tGPl4AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAB9eXFmcm5m/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9aVEv/VlBI/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9aU0r/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1VL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9XUUj/U05G/1VQR/9ZU0r/WlNK/1tVS/9cVkz/W1VL/1tVS/9bVEv/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9aU0r/WVNK/1tWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xW - TP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tVS/9bVEv/WVNK/1dS - Sf9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VM/1BLQ/9KRj5nAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAfXlxb3BsZP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/WVJK/1VQSP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/WFJJ/1lTSv9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9cVkz/XFZM/1xW - TP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/V1FJ/1NNRv9TTkb/VVBH/1VQR/9YUkn/WlNK/1lTSv9YUkr/WlNK/1pTSv9bVUv/XFZM/1xW - TP9cVkz/W1ZM/1tVS/9aU0r/WVNK/1hSSf9cVkz/XFZM/1xWTP9cVkz/W1VL/1tVS/9bVUv/W1VL/1tV - S/9cVkz/XFZM/1pUS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVEv/W1VL/1xWTP9bVUv/WlNK/1dR - SP9XUUj/WVNK/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9RTEP/S0Y+cAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAH14cXlvamH/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/W1ZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1lTSv9XUUn/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1hSSf9ZU0r/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tU - S/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVEv/W1VL/1tV - S/9aVEv/WVNK/1pUS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/2JcUv9pY1r/amRb/2pk - XP9rZV3/a2Ze/2tmXf9rZVz/amRc/2RfVv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1pUS/9YUkn/VE9G/1NORv9STEX/VE9H/1dRSP9XUUj/V1FI/1hSSf9ZU0v/WlRL/1tV - S/9bVEv/W1RL/1pTSv9eWVD/Y15V/2NdVf9bVUv/XFZM/1xWTP9cVkz/XFZM/1tUS/9ZU0r/WlRL/1pU - S/9ZU0r/WlRL/1xWTP9aVEv/WlRL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WlNK/1lTSv9bVEv/W1RL/1lT - Sv9VUEj/VU9H/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9aVEv/UkxE/0tG - PnkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACGgnuBbmhg/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/WVNL/1hSSf9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1RL/1hSSv9WUEj/WVRK/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - TP9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/WlRL/1tU - S/9aU0v/WVNK/1dSSf9YUkn/WlRL/2VfVv9oYln/amVc/3RvaP95dG3/e3dw/396dP+BfXf/gn54/4J9 - d/+CfXf/gX13/4N+eP+FgHr/hYB6/4aBe/+Hgnz/hoF7/4R/ef+BfXb/fnlz/25pYf9sZ17/amVc/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9UUEf/U05G/1VQR/9XUUj/VlFI/1dRSf9YUkn/WlRL/1pT - Sv9YUkr/WlNK/1lTS/9bVkz/ZmFZ/3dzbP95dG3/W1VL/1xWTP9cVkz/XFZM/1tVS/9aU0r/V1FI/1hS - Sf9YUkn/VVBH/1hSSf9aU0r/WFJJ/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9YUkr/WlNL/1tU - S/9aU0r/VlFI/1dRSP9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9YUkr/VU9H/1BL - Q/9GQjqBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAj4yFim1oX/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1pUSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pUS/9WUEj/WVRK/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VM/1ZRSf9WUEj/WFJJ/1tVS/9cVkz/XFZM/1xWTP9cVkz/WlRL/1tVS/9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1RL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tV - S/9bVUv/W1VL/2RdVf9mYFf/cW1l/3dyav97dm//fHhx/3x5cv99eXL/fHhx/3p3cP95dW7/eXVu/3l1 - bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1bv95dW7/eXVu/3p3cP99eXL/gHx1/4J+d/+FgHr/iIN8/4iE - ff+EgHn/f3t0/21oYP9qZFv/XFZM/1xWTP9bVEv/WFNK/1hSSf9YUkn/V1JJ/1hSSf9YUkn/WFJK/1lT - S/9ZU0r/V1JJ/1lTSv9aVkz/XFdO/2diWv94dG7/f3t1/2VfVv9cVkz/XFZM/1tVS/9bVEv/W1RL/1hS - Sv9YUkn/VVBH/1JNRf9UTkb/VlFI/1dRSf9aU0r/W1RL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/WlRL/1pUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/WVNK/1pU - S/9bVUv/WlRL/1hSSf9ZU0r/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WlRK/1ZR - SP9QS0P/QT02igAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAI6LhJNsZ17/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lSSv9WUEj/WlRL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/VlBI/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9UT0f/WVNK/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9gWlD/Z2JZ/3FrZP92cWn/eXVt/3p2bv96dm7/eXVu/3l1bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1 - bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1 - bv96dnD/f3t0/4SAef+IhH7/iIR9/4F9dv9zbmf/Z2FY/1tWTP9bVUv/W1RL/1tUS/9aU0r/WlNK/1tU - S/9bVEv/WVNK/1dRSP9aVEv/XlhO/2VfVv93cmv/eXRt/4F8dv9qZFz/WlRL/1pUS/9bVEv/W1RL/1tU - S/9bVEv/WVNK/1VQR/9RS0T/UUtD/1JMRf9VT0f/WlNK/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tU - S/9cVkz/XFZM/1xWTP9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/VE5G/0I+N5MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOi4Wba2de/1xXTf9cV03/W1ZM/1tVTP9bVkz/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1tWTP9YU0r/Vk9I/1pVTP9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1tVTP9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9bVkz/WlVL/1tWTP9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XllQ/2Nf - Vf9vamL/dHBo/3dza/94dG7/eHVv/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2 - cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2 - cP95dnD/eXZw/3l2cP95dnD/eXZw/3x5c/+EgHr/iYV//4eEff+AfXb/bmpi/2JdVP9cV03/W1ZN/1xX - Tf9cV03/W1ZM/1lUS/9aVEv/XVhO/2RgV/93c23/eXVv/3l1b/9/fHX/d3Ns/1lTSv9aVUz/W1ZM/1tW - TP9bVkz/WlRL/1hSSv9XUEn/VE5G/1JMRP9STEP/U05F/1lTSv9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1tWTP9bVk3/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1RPR/9CPzecAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjYqEpGpmXf9cV03/XFdN/1pVS/9YUkr/WFJJ/1lU - S/9bVkz/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/W1ZM/1lUS/9bVkz/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9fWlD/ZmJZ/21p - Yf9xbWX/dnJr/3h1bv95dm//eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2 - cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dW//eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2 - cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXVv/3l1b/9+enT/hYJ8/4qHgP+DgHn/dHBo/2Ne - Vf9cV03/XFdN/1xXTf9dWE7/XFdN/2NeVf91cmz/eHRu/3l1b/95dW//fHlz/3p2cP9YUkn/WlVM/1tW - TP9bVkz/W1ZM/1hSSv9WUEj/WFJK/1hTSv9XUUn/U01F/1JMRP9WT0j/WlVL/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9bVkz/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9VUEf/Qj44pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI2JhK1pZVz/XFdN/1tWTP9ZU0v/WFJJ/1hS - Sf9YUkr/WVNL/1tWTP9bVkz/W1ZM/1xXTf9cV03/XFdN/1xXTf9cV03/W1ZM/1tWTP9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/15ZUP9mYVn/bmlh/3Ft - Zf91cWr/eHVu/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/enZv/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP95dm//eXZv/3l1bv96dm//enZv/3p2b/96dm//enZv/3p3cP97eHL/hIF7/4qH - gP+FgXv/dXFp/2NeVf9hXFP/X1pQ/2NfVv92cmz/dnJs/3dzbf95dW7/enZv/3p3cP9+e3T/ZmFY/1tW - TP9bVkz/W1ZM/1pVS/9XUEj/VU5H/1hSSv9aVUv/W1ZM/1lTSv9WUEj/VlBI/1pVS/9cV03/XFdN/1xX - Tf9cV03/W1ZM/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/W1ZM/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/VVBI/0I+N64AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMiYK2aGRb/1xXTf9bVkz/WFNK/1pU - S/9aVUv/WlVL/1pUS/9aVUv/W1ZM/1tWTP9bVkz/XFdN/1xXTf9cV03/W1ZM/1dRSf9ZU0r/W1VM/1xX - Tf9cV03/XFdN/1xXTf9bVkz/W1VM/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XllP/2RfV/9rZl7/b2ti/3Vx - av95dm//endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP95dm//eHRu/3d0bf93c23/eXVu/3p2b/96dm//enZv/3p2b/96dm//endw/3p3 - cP97eHH/g4B5/4qHgP+AfHX/a2Ze/2ZhWP94dG3/eHRu/3ZzbP93c23/eHRu/3p2b/96d3D/gHx2/2pm - Xv9bVkz/W1ZM/1tWTP9aVkz/V1FJ/1VOR/9YUkn/W1VM/1xXTf9cV03/W1ZM/1tWTP9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1tWTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1VQSP9DPzi2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAioeBvmdiWf9bVkz/WlVL/1lT - Sv9bVUz/W1ZM/1tWTP9bVkz/W1ZM/1tWTP9bVkz/W1ZM/1xXTf9cV03/XFdN/1pVS/9VT0f/V1FJ/1pU - S/9cV03/XFdN/1xXTf9bVkz/WVRL/1dRSf9bVkz/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/YFtS/2hjW/9saGD/cm9n/3l1 - bv96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP96d3D/endw/3p3cP96dm//endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP96dm//eHRu/3ZxbP91cWv/dnJs/3h1bv95dW7/enZv/3p3cP96d3D/enZv/3p2 - b/96d3D/endw/3p3cP97eHH/gH13/3Rwaf92cmz/eXVu/3l1bv93c23/dnNs/3d0bf96dm//endw/398 - df95dW7/WlRL/1pVS/9bVkz/WlZM/1hSSf9XUEj/V1FI/1lUSv9bVkz/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9WUUj/Qz85vwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAImGgMdnYln/W1ZM/1pV - S/9ZU0v/XFdN/11YTv9dWE7/XVhO/1xXTf9cV03/XFdN/1xXTf9dWE7/XVhO/11YTv9aVEv/V1BJ/1dQ - Sf9aVEv/XFdN/11YTv9cV03/W1ZM/1lTS/9aU0v/XFdN/11YTv9dWE7/XVhO/11YTv9cV03/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9eWVD/ZF9W/2plXP9vamP/d3Rt/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endw/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/enZw/3l1bv94dG7/d3Nt/3dzbf95dG7/enZv/3p3cP96d3H/endx/3p3 - cP96d3D/endw/3p3cf96d3H/endx/3p3cP94dG7/dnJs/3l1b/96d3D/eXZv/3l0bv95dm//endx/3p3 - cf99eXT/f3t0/15ZUP9aVEz/W1ZN/1tWTP9bVUz/WVJK/1lSSv9aVEz/XFdO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/V1NK/0RBOscAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJhoDPZWBX/1tW - TP9ZU0v/WlNL/1xXTf9dWE7/XVhO/11YTv9cV03/XFdN/1xXTf9cV03/XVhO/11YTv9cV03/WVJL/1dQ - SP9WT0j/WlRL/1xXTf9cV03/W1ZM/1lTS/9aVEv/W1ZN/11YTv9dWE7/XVhO/11YTv9dWE7/XFdN/1xX - Tf9cV03/XFdN/1xXTv9cV03/XFdN/1xXTf9cV03/W1ZM/1xXTf9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/1xXTf9cWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9gW1L/Z2JZ/2pmXf9zb2j/enZw/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/enZw/3l0b/95dW7/enZv/3l0bv93dG7/eHRu/3l0bv96dnD/endx/3p3 - cf96d3D/endw/3p3cP96d3H/endx/3p3cf96d3D/d3Nt/3Vxa/95dW7/eXZv/3l1b/96dnD/endw/3p3 - cf96d3H/endx/4J+d/9oZFv/WlNL/1tWTf9bVk3/WlNL/1pUS/9aVEz/W1ZM/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/1hTSv9FQTrPAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIR+2GNe - Vv9bVkz/WlVL/1xXTf9dWE7/XVhO/11YTv9dWE7/XVhO/1xXTv9dWE7/XVhO/11YTv9dWE7/XFdN/1pU - S/9XUUn/V1BJ/1pUS/9cV03/WlVM/1lTSv9ZU0v/XFdN/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/1xXTf9bVUz/W1VM/1tWTP9bVkz/WlRL/1ZQSP9ZUkr/XFdN/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/1xXTf9YUUn/W1VM/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9iXVP/ZmFZ/2tnX/93c23/endx/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p2cP94dG//eXVv/3p3cf96d3H/eXVw/3h0b/93c27/eXVw/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3h0b/93c27/eXVw/3h0b/95dG//endx/3p3 - cf96d3H/endx/3p3cf+BfXj/cW1l/1tWTP9cV03/XFdN/1pVTP9bVk3/XFdN/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9ZU0r/RUI62AAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIaD - feFhXFP/WVJL/1tWTP9cV03/XVhO/11YTv9dWE7/XVhO/1xXTf9bVkz/XVhO/11YTv9cV03/XFdN/1xX - Tf9aU0v/WVNL/1lSSv9aVEv/WlVL/1lSSv9aVEv/XFdN/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9cV03/WlRL/1lTS/9ZU0v/WlRL/1lTSv9XUEn/WlRL/1xXTf9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9cV03/WVNK/1pVTP9cV03/W1ZN/1xX - Tf9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/15ZT/9jXlX/ZmJZ/25qYv95d3H/enhy/3p4 - cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4 - cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4 - cv96eHL/enhy/3p4cv96eHL/enhy/3p4cf96d3D/endw/3p3cP96eHH/enhy/3p4cf95dW//eHRv/3l2 - cP96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cf96eHH/endx/3p3cP94dG7/d3Nu/3p3 - cf96eHL/enhy/3p4cv96eHL/fnx1/3t3cP9cV03/XVhO/11YTv9bV03/XFdN/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/1xXTf9cV03/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/WVRL/0ZDO+IAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACGgnzqYFpS/1pTS/9cV03/XVhO/11YTv9dWE7/XVhO/11YTv9cV03/XFZN/11YTv9dWE7/XVhO/1xX - Tf9bVkz/WlNL/1pTS/9aU0v/WlNL/1pTS/9aVEz/XVdO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XFdO/1pUTP9aU0v/WVNL/1pTS/9ZUkv/V1BI/1xWTf9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9cVk3/XFZN/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/15ZT/9iXVT/ZGBX/3JvZ/96eHL/enhy/3p4 - cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4 - cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/eHVu/3JvaP9taWL/Z2Rd/2RgWf9jX1j/YV1V/2Bc - Vf9jX1j/Y19Y/2ZjXP9raGD/cW5n/3Zzbf96eHL/enhx/3p3cf96eHH/enhy/3p4cv96eHL/endx/3l1 - b/96eHH/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cf96d3H/eHRu/3d0 - bv96d3H/enhy/3p4cv96eHL/enhy/3x5c/+BfXb/Y15V/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/1pVTP9HRDzqAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAhoN982BbUv9cVk3/XVdO/15ZT/9eWU//XllP/15ZT/9eWU//XVdO/1tVTP9cVk7/XllP/15Z - T/9eWU//XVdO/1xVTf9aVEz/WlNM/1pTS/9bVU3/XVdO/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9cVk7/W1RN/1pUTP9bVEz/WVJL/1hSSv9dWE7/XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9dWE7/XllP/15ZT/9eWU//XVhO/11Y - Tv9eWU//XllP/15ZT/9eWU//XVhO/11YTv9eWU//XllP/11YTv9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9iXVP/ZWBX/3Vxav98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv97eHH/dHBp/2tmX/9iXVX/WVNL/1ZQSP9WUUn/V1FJ/1dSSv9aVUz/WlVM/1pV - TP9aVUz/WlRL/1lUS/9WUEj/VVBI/1RPR/9UT0f/VVBI/15aUv9oY1z/cm5n/3t3cP98eXL/e3hy/3p3 - cf96d3H/e3hy/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv97eXL/endx/3l1 - cP95dnD/enhx/3x5cv98eXL/fHly/3x5cv98eXL/hIB5/2tnXv9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XVdO/11YTv9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9cVk3/SEU98wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIWCfPthW1P/XVhO/15ZT/9eWU//XllP/15ZT/9eWU//XllP/11YTv9cVk3/XFZO/15Z - T/9eWU//XllP/15ZT/9dV07/WlRM/1pTS/9ZU0v/XFZN/15ZT/9eWU//XllP/15ZT/9eWU//XllP/11Y - Tv9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XVdO/1xWTv9bVUz/W1RM/1lTS/9aVEz/XVhO/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XVdO/1xWTf9cVk3/XllP/11YTv9dWE7/XllP/11YTv9cVk7/XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9hXFP/ZF9W/3dzbP98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv98eXL/e3hx/3NvaP9mYVr/WlRM/1dRSf9YUkr/WlRL/1tWTf9cV03/XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9dV07/W1VM/1pUTP9YU0r/VVBI/1RPR/9VUEj/YVxV/25q - Y/96dnD/e3hy/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv97eHL/e3hy/3x5cv98eXL/fHly/3x5cv98eXL/fHly/4J+eP92cmr/XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/11YTv9dWE7/XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XFdN/0pF - PvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAHZxagWFgXv/YVxT/15ZT/9eWU//XVhO/11YTv9eWU//XllP/15ZT/9dWE7/XVdO/1xW - Tf9eWU//XllP/15ZT/9eWU//XVhO/1tVTP9aVEz/W1VN/11YTv9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XVdO/11XTv9dWE7/XVhO/1xWTf9bVEz/XFVN/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/11Y - Tv9dWE7/XllP/15ZT/9eWU//XVhO/1xWTf9cVk3/XFZN/15ZT/9dWE7/XVhO/15ZT/9eWU//XVhO/15Z - T/9eWU//XllP/1xWTv9cVk3/XVhO/15ZT/9eWU//XllP/15ZT/9gW1H/ZF9W/3d0bf98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv94dW7/amVd/1tWTv9YUkr/WVRL/1tWTP9dV07/XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9dWE7/XVdO/11XTv9eWU//XllP/15ZT/9cV03/WlVM/1RP - R/9QS0T/VVBJ/2VhWf92c2z/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv+AfXb/fnp0/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/1xX - Tv9KRj//Uk1EBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACAfHUNhIF6/2FcU/9eWU//XllP/11XTv9dV07/XllP/11XTv9eWE//XVdO/11X - Tv9dV07/XllP/15ZT/9eWU//XllP/15YT/9bVU3/XVdO/11YT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XlhP/11XT/9eWU//XllP/15ZT/9eWE//W1VM/1xX - Tv9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9dWE7/XVdO/15YT/9eWU//XllP/1xXTv9aVUz/XFZN/11YTv9eWU//XllP/15ZT/9eWU//XllP/15Y - T/9eWU//XllP/15YT/9dV07/XlhP/15ZT/9eWU//XllP/15ZUP9gW1H/Y11U/3h0bf98eXL/fHly/3x5 - cv98eHL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3h0 - bv9oYlv/WlRM/1pUTP9bVU3/XFdO/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XlhP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15YT/9eWE//XllP/15ZT/9eWU//XllP/15Z - T/9cV07/WVRM/1lTS/9YUkr/WFJK/21oYf98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fnp0/4J+eP9qZFz/XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWE//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9dV07/S0ZA/01IQQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAgHx2F4R/ef9iXFP/X1lQ/11YT/9dV07/XVdO/15YT/9eWE//XlhP/15Y - T/9dV07/XlhP/19ZUP9fWVD/X1lQ/19ZUP9fWVD/XVdO/11XTv9eWE//X1lQ/15YT/9eWE//X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/15YUP9eWFD/X1lQ/19ZUP9fWVD/XlhP/1hT - Sv9aVUz/XlhP/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/15YT/9eWE//XlhP/15YT/9cVk3/W1VN/11XTv9eWE//X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9eWE//X1lQ/19ZUP9fWVD/X1lQ/19ZUP9gWlH/YlxU/3dzbf99enT/fXp0/316 - dP98enT/fHlz/3x5c/98eXP/fHp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/e3dx/2pl - Xv9bVU3/W1VN/1xWTv9eWE//X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/15YT/9eWE//X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/XlhP/15Y - T/9fWVD/XlhP/15YT/9eWE//XlhP/2VgWP97eHL/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316 - dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP+Ef3r/bWhg/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/0xHQP9NSEEXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIF9dh+Cfnj/YVtT/19ZUP9dV07/XVdO/15YT/9fWVD/X1lQ/19Z - UP9eWE//XVdO/15YT/9fWVD/X1lQ/19ZUP9fWVD/XlhP/11XTv9dV07/XlhP/19ZUP9dV07/XlhP/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/XlhP/19ZUP9fWVD/X1lQ/1xX - Tf9XUUn/WVRL/11XTv9eWE//X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/15YT/9eWE//XlhP/15YT/9dV0//W1ZN/1tWTf9dV07/XlhP/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/YFpR/3Vxa/99enT/fXp0/316 - dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/cW1m/15X - UP9bVU3/XVdO/15YT/9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/11XTv9dV07/XlhP/19ZUP9fWVD/XlhP/15YT/9fWVD/X1lQ/19ZUP9fWVD/X1lQ/15Y - T/9eWE//X1lQ/15YT/9gWlH/YVxT/2ljW/98eHL/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316 - dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/g355/3x3 - cf9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/15YT/9MR0H/TEhBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBfXYogX12/2FbU/9fWVD/XlhP/15YT/9eWE//X1lQ/19Z - UP9fWVD/XlhP/11XTv9eWE//X1lQ/19ZUP9fWVD/X1lQ/15YT/9dV07/XVdO/11YT/9eWFD/XVdP/15Y - T/9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9bVk3/VlBI/1pUS/9eWE//X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XVdO/1tVTP9cVk7/XlhP/15YT/9eWE//XVdO/1tWTf9cVk3/XVdO/15YT/9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/3JsZf9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP97d3H/ZmFZ/1tV - Tf9cVk7/XlhP/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/15YT/9dV0//XVdO/15YT/9fWVD/X1lQ/15YT/9eWE//X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9eWE//XlhP/19ZUP9gWlH/YlxT/2lkXP99eHL/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/4F8 - d/+AfHb/X1pR/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9eWE//TUdB/0xIQSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgX12MIB8dP9hXFP/X1pQ/15ZT/9eWU//XllP/19a - UP9fWlD/XllP/15ZT/9dWE7/XlpQ/19aUP9fWlD/X1pQ/19aUP9eWU//XVhO/11YTv9eWU//XllP/15Z - T/9fWlD/X1pQ/19aUP9fWlD/XllP/19aUP9eWlD/X1pQ/15ZT/9eWU//XllP/19aUP9fWlD/X1pQ/19a - UP9eWU//WlVM/1dRSf9bVk3/XllQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/XllP/1tWTf9YUkr/W1ZM/11YTv9fWlD/XllP/15ZT/9dWE7/XVhO/11YTv9eWU//X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/2tnX/9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP92cmv/X1pR/1xX - Tf9dWE7/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9eWU//XVhO/11YTv9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/XllP/19aUP9gW1H/Yl1T/2llXP99eXL/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP99enP/fXpz/356dP9+enT/fnp0/356 - dP9+enT/g4B5/2tmXv9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/15ZT/9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/XllP/01JQv9MSEAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIF9dzl+enP/YFxS/19aUP9eWU//XllP/19a - UP9fWlD/XllP/11YTv9dWE7/XVhO/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/15ZT/9eWU//XllP/15Z - UP9eWU//X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/XllP/19aUP9eWU//XVhO/11YTv9fWlD/X1pQ/19a - UP9fWlD/XVlP/1lUS/9XUUn/XFdN/15ZT/9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/15ZT/9aVUz/WlRL/11YTv9eWU//X1pQ/15ZT/9eWU//XllP/11ZT/9dWE//XVhO/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/XllP/2VgV/99eXP/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9wbGX/XFhO/11Y - Tv9eWU//X1pQ/19aUP9fWlD/XllP/15ZT/9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/15ZT/9dWE7/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/15ZT/9eWU//YVxS/2hkW/99eXL/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/316c/98eXP/fHlz/3x5c/9+enT/fnp0/356 - dP9+enT/fnp0/4SAev9wbGT/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9eWU//X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/15ZT/9OSkL/TEhAOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBfXZCfXlx/2BbUf9fWlD/XllP/11Y - Tv9eWU//XllP/15ZT/9dWE7/XVhO/15ZT/9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/XllP/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/15ZT/9eWU//X1pQ/19a - UP9fWlD/X1pQ/15ZT/9ZVEv/V1FJ/1lUS/9eWU//X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/XVhO/11YTv9eWU//XllP/15ZT/9eWU//XllP/15ZT/9dWE//XVhP/11Y - Tv9eWU//X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/XllQ/19aUf95dm//fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/316dP9rZ1//XFdO/11Y - Tv9eWU//X1pQ/19aUP9fWlD/X1pQ/15ZT/9eWU//X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9eWU//XllP/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9eWU//XVhO/2VhWP98eXL/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/316dP98enP/fHlz/3t5c/98eXP/fnp0/356 - dP9+enT/fnp0/356dP+Cf3j/fXhy/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/XllP/15ZT/9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9eWU//T0tD/0xIQUIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgX12S3x4cP9hXFL/YFtR/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWlD/X1pQ/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/XllP/1tUTP9ZU0v/XllQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWlD/XllP/15ZT/9eWU//XllQ/11Y - T/9dWE//XlpQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/X1pQ/19aUP9yb2f/fnx2/358 - dv9+fHb/fnx2/358dv9+fHb/fnx2/358dv9+fHb/fnx2/358dv9+fHb/fnx2/317df9qZl7/XllP/15a - UP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/X1pQ/19bUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/X1pQ/1pVTP9qZl7/dnNt/317df9+fHb/fnx2/358dv9+fHb/fnx2/358 - dv9+fHb/fnx2/358dv9+fHb/fnx2/358dv9+fHb/fnx2/358dv99e3X/fXp0/316dP99enT/fXp0/357 - df9+fHb/fnx2/358dv9+fHb/gH13/4F9dv9lYFb/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/X1pR/19aUP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/X1pQ/1FMRP9NSUFLAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB9dlR6dm7/YVxS/19a - UP9fWlD/X1pQ/19aUP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWlH/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/19aUP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/X1pQ/19a - UP9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9cV07/WlRM/19aUP9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWlH/XVhP/1xXTf9cV03/XVhO/15Z - T/9eWU//XllQ/15ZUP9fWlD/XllP/19aUP9fW1H/YFtR/2BbUf9gW1H/X1pQ/15aUP9nY1r/f3t1/397 - df9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9rZ17/XllP/19a - UP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9bVk3/WFJK/1ZRSf9YU0v/Y15X/25qY/95dm//f3x2/398 - dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/357df9+enX/fnp0/397df9/fHb/f3x2/398 - dv9/fHb/f3x2/398dv9/fHb/f3t1/316dP+BfHf/amZd/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9STUX/TUlBVAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfHZdeHRt/2Bb - Uf9eWVD/X1pQ/15ZT/9eWU//X1pQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9fWlD/X1pQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9fWlD/YFtR/19a - UP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/X1pQ/11YTv9fWlD/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/XllP/1xXTf9aU0z/W1dN/11Y - Tv9eWU//X1pQ/19aUP9eWlD/XllP/15ZT/9fWlD/YFtR/2BbUf9fWlD/X1pQ/19aUP9fWlD/endw/316 - dP9+enT/f3t1/398dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9uamL/XlpQ/19a - UP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9eWU//XFdO/1hTS/9XUkn/VlBI/1tW - Tv9lYlr/cW5n/3x5cv9/fHb/f3x2/398dv9/fHb/f3t1/356dP97eHL/e3hy/356dP9/e3X/f3x2/398 - dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9+e3X/gn55/3RwaP9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/19aUP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWlD/YFtR/2BbUf9fWlD/U05G/05KQl0AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgHx2ZXZy - a/9fWVD/XllP/15ZT/9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/X1pQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9fWlD/X1pQ/19a - UP9eWVD/X1pQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWVD/XllP/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9dWE//XFVN/1tV - Tf9dV07/X1pQ/19aUP9fWlD/XlpQ/15ZUP9eWE//X1pQ/2BbUf9gW1H/YFtR/2BbUf9eWlD/b2pj/397 - dv97eHP/fXlz/356df9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9xbWX/XVhO/19a - UP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/11Y - T/9cV07/WFNL/1dSSv9WUUn/XllS/2pmXv90cWr/fnt1/397dv99enT/enZx/3t3cv9/e3X/f3t2/398 - dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/4N/ef9/e3T/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9eWVD/XllP/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/X1pQ/19ZUP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/X1pQ/19ZUP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/1RQR/9PSkJlAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB8 - dm10cGj/YFtR/2BbUf9fWlH/YFtR/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2BbUf9gW1H/YFtR/19ZUP9gW1H/YVxS/2FcUv9hXFL/YFtR/15ZUP9eWVD/X1pQ/2Bb - Uf9gW1H/YFtR/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/XllP/1tVTf9fWlD/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/X1lQ/1xX - Tv9aVUz/XFZO/15YT/9fWlH/X1tR/19bUf9fW1H/X1tR/19bUf9hXFL/YVxS/2FcUv9fWlD/Yl1U/356 - df9/e3b/e3hz/3x5dP9+enX/f3x2/4B8d/+AfHf/gHx3/4B8d/+AfHf/gHx3/4B8d/93c23/XllQ/11X - T/9gW1H/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9gW1H/XVhP/1tWTf9YU0v/V1JK/1hTS/9hXVb/a2Zg/3Nvav99eXT/f3x2/4B8 - d/+AfHf/gHx3/4B8d/+AfHf/gHx3/4B8d/+AfHf/gHx3/4B8d/+BfXj/hIB5/2diWf9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/X1pQ/15ZUP9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YFtR/2Bb - Uf9gW1H/YVxS/2FcUv9gW1H/XllQ/1hTS/9XUUr/WFJL/19ZUP9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2BbUf9gW1H/YFtR/2BbUf9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9WUUn/UEtEbgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACAfXZ2c29n/2BbUf9gW1H/YFtR/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2BbUf9gW1H/X1lQ/11YT/9dV07/YFtR/2FcUv9hXFL/YFtR/19ZUP9dV0//XlhP/19a - Uf9gW1H/YFtR/2BbUf9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/15ZUP9bVU3/X1lQ/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Bb - Uf9eWE//WlRM/1tVTf9dWE//X1pQ/19aUf9fW1H/X1tR/19bUf9gW1H/YVxS/2FcUv9gW1H/X1pQ/3Jv - aP+AfXj/fnt2/315dP98eHP/fXl0/357dv9/fXf/gH14/4B9eP+AfXj/gH14/4B9eP99enT/ZF9V/19Z - UP9eWE//YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/19aUP9dWE//W1ZN/1hTSv9VT0j/WVRN/2Vg - Wf9wbGb/e3hz/4B9eP+AfXj/gH14/4B9eP+AfXj/gH14/4B9eP+AfXj/gH14/4aCe/9uamH/YFtR/2Bb - Uf9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/19aUP9gWlH/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Bb - Uf9gW1H/YFtR/2FcUv9hXFL/XVdO/1dRSv9XUUr/V1FK/1dRSv9dV0//YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/V1JK/1BL - RHYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAgXx2f3JuZv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FbUv9gW1L/YFpR/19ZUP9dWE//XFdO/2BaUf9hXFL/YVxS/2FcUv9hW1L/YFtR/2Ba - Uf9gW1H/YFtR/2FbUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9fWlH/XVdO/15Z - UP9hW1L/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FbUv9gW1H/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/X1pR/1xXTv9cV0//XVhP/2BaUf9gW1H/YFtR/2BbUf9gWlH/YVtS/2FcUv9hXFL/X1pR/2Nd - Vf+AfHf/gX14/397d/98eXT/enhy/3p4cv98eXP/fnp1/4B8d/+AfHf/gX14/4F9eP+BfHf/amVd/2Fc - Uv9dWE//XlhP/2FbUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/X1lQ/11Y - T/9ZVEz/WFJL/1dRSv9dWFH/aGNd/3Rvav9/enX/gX14/4F9eP+BfXj/gX14/4F9eP+FgHr/eXRt/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9gW1L/YVtS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9gW1H/YFtR/2FcUv9hXFL/YFtR/1hTS/9XUUr/V1FK/1dRSv9XUUr/X1lQ/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/1hT - S/9QS0SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJOPiohybWb/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9hW1L/YVtS/2BbUv9hW1L/YVtS/2BaUf9gWlH/YVtS/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YVtS/2FbUv9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YVtS/2Ba - Uf9dWVD/YVtS/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9hW1L/YFpR/2BaUf9hW1L/YVtS/2FbUv9hW1L/YVtS/2FcU/9iXFP/YVtS/19Z - UP9zbmf/gn14/4F9eP9/e3f/fXp0/3p4cv96eHL/e3hy/3x5c/98eXT/fHl0/397dv+BfXj/dG9o/2Jc - U/9hW1L/XllQ/19ZUP9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9hW1L/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9eWVD/XVdP/1pTTP9YUkv/WFJL/2FbVP9sZ2D/eHNt/4F8d/+CfXj/f3p0/3t2 - b/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YVtS/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9hW1L/YFpR/2FbUv9iXFP/YVtS/19ZUP9YUkr/WFJK/1hSSv9YUkr/W1VN/2FbUv9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9ZVEz/R0I9iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACSjomQcWxl/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9hW1L/YlxT/2JcU/9iXFP/YFtS/2FbUv9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9hW1L/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Fb - Uv9hW1L/X1lR/2FbUv9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YVtS/2FbUv9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9hW1L/YVtS/2BaUf9gWlL/YVtS/2FbUv9iXFP/YlxT/2Ba - Uf9hW1P/gHt2/4J9eP+BfXj/f3t2/3x6dP97eXP/fXl0/316df99enX/fHl0/3x5c/98eXT/fHhy/2Re - Vf9iXFP/YlxT/2FbUv9hW1L/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9hW1L/YlxT/2FbUv9fWVD/X1lR/2JcU/9iXFP/YVtS/2FbUv9gWlH/YFpR/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9hW1L/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YFtS/15YUP9cVk7/WVNM/1hSSv9ZVEz/ZV9Z/25o - Yf9qZV3/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YVtS/2FbUv9hW1L/YlxT/2FbUv9eWVD/WVRM/1lTS/9ZVEv/XVhP/2FbUv9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/WVRM/0dCPZEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAko6JmXBsZP9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9hXFP/YVxT/2JcU/9iXFP/YlxT/2JcU/9hXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YVtS/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9hW1P/YVtS/2BbUv9gW1L/YVxT/2JcU/9iXFP/YlxT/2JcU/9hXFP/YVxT/2BbUv9fWlH/YFtS/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YVxT/2FbUv9fWVD/X1pR/2BaUv9hW1L/YlxT/2Fc - U/9fWlH/b2pj/4J9ef+CfXn/gX15/398d/9+e3X/fXt1/398d/9/fHf/fXp1/316df98enT/e3hz/2ll - Xv9iXVT/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YVtS/2JcU/9iXFP/YVtS/2FcU/9iXFP/YlxT/2FcU/9gW1L/X1pR/19a - Uf9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FcU/9hW1L/YVtS/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FcU/9hW1L/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9gW1L/XllQ/1xW - Tv9cV0//YFtS/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YVxT/15ZUf9gW1L/YVtS/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/1pVTf9HQj2ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGOiaJwa2T/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/YVxT/2FcU/9hXFP/YFtS/2BbUv9hXFP/Yl1U/2JdVP9hXFP/YFtS/19aUf9fWlL/XllQ/19a - Uf9gXFP/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2FcU/9gW1P/X1pR/19aUP9fWlH/YVxT/2Jd - VP9gXFP/XllR/315dP+Cfnr/gX55/4F+ef+AfXn/gH14/4B9eP+Bfnn/gH15/357dv9/fHf/f3x2/3d0 - bv9fW1L/YFtS/2JdVP9iXVT/Yl1U/2FcU/9hXFP/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/YVxU/2FcU/9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/YVxT/2Fc - U/9hXFP/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9hXFP/YVxT/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9hXFP/YFtT/2FcU/9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9bVk7/R0M9ogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRjomrb2tj/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2FcU/9iXVT/Yl1U/2JdVP9hXFT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2FcVP9iXVT/YVxT/2BbUv9hXFP/Yl1U/2JdVP9hXFP/YFtS/2BbUv9fW1H/YFtS/19a - Uf9eWU//X1pQ/2FcU/9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9hXFP/YVxT/2BbUv9fWlH/YFtS/2Fc - U/9iXVT/X1pR/2diW/+Df3r/g396/4J+ef+Cfnn/g396/4N/ev+Df3r/g396/4F+ef+AfXj/gX15/4F9 - eP9saF//YFtS/11ZT/9hXFP/Yl1U/2FcU/9fWlD/X1pS/2FcU/9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2FcU/9hXFP/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/YVxT/2FcU/9hXVT/YVxT/2FcU/9iXVT/Yl1U/2Fc - U/9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/YVxT/2FcU/9hXFP/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/W1ZO/0dDPasAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkY6Is25qYv9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVP/Yl1U/2JdVP9iXVP/YVxT/2Jd - U/9iXVP/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1T/2FcU/9hXFL/YVxT/2FcU/9iXVP/YVxS/2BbU/9gW1H/YVxS/2Jd - VP9hXFP/YFtS/19aUP9gW1L/Yl1T/2JdVP9iXVT/Yl1U/2JdVP9iXVT/YVxT/2FcU/9hXFP/YVxT/2Fc - U/9iXVP/Yl1T/19aUf90cGn/g395/4J+ef+Cfnn/g395/4N/ev+Df3r/g396/4N/ev+Df3n/gn55/4N/ - ef99eXP/Z2Nb/2JdVP9eWVD/X1pR/2JdU/9iXVP/XlpQ/19aUP9hXFP/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVP/Yl1T/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2FcU/9iXVP/Yl1U/2JdVP9iXVT/Yl1U/2FcU/9gW1H/YVxT/2FcU/9hXFP/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9hXFP/Yl1T/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdU/9iXVP/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/1xXTv9IRD60AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGNh71uamH/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Jd - U/9hXFL/YFtS/2JdU/9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2JdU/9hXFL/YVxS/2JdU/9iXVP/YFtR/2BcUv9gXFL/YVxS/2Jd - U/9jXlT/Y15U/2JdU/9fWlH/XlpQ/2BbUv9iXVP/YVxT/2JdU/9iXVT/Yl1T/2FcUv9hXFL/Yl1T/2Jd - U/9iXVP/Y15U/2FcU/9fWlD/f3t1/4F9eP+BfXj/g395/4SAev+EgHr/hIB6/4SAev+EgHr/hIB6/4SA - ev+EgHr/dG9o/2lkW/9iXVP/YVxT/2BcUv9iXVP/Yl1T/2FcUv9eWVD/XVlP/2BbUf9hXFL/YV1T/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9iXVP/Yl1T/2NeVP9jXlT/Y15U/2NeVP9iXVP/YVxS/2JdU/9iXVP/Yl1T/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Yl1T/2Jd - U/9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2JdU/9iXVP/Yl1T/2JeVP9jXlT/Y15U/2Jd - U/9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9hXVP/YVxT/2JdU/9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9dWE//SEU+vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQjYbFbWhg/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Yl1T/2NeVP9jXlT/Y15U/2Ne - VP9iXVP/X1pR/11YT/9gW1L/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9iXVP/Yl1T/2FcUv9iXVP/Yl1T/2BbUf9hXFL/YFxS/2Bb - Uf9iXVP/Y15U/2NeVP9hXVP/X1pQ/1xXTv9dWE//YVxS/2FcUv9iXVP/Yl1T/2FcUv9fWlD/YFtS/2Fc - Uv9hXFL/YVxS/2FcUv9eWlD/ZGBY/398d/9/e3b/gX54/4N/ef+EgHr/hIB6/4SAev+EgHr/hIB6/4SA - ev+EgHr/gX53/21oYP9nYln/Y15U/2NeVP9iXVP/Y15U/2NeVP9iXVP/YFxS/19aUP9fWlH/XVhP/19a - Uf9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Yl1T/2NeVP9jXlT/Y15U/2NeVP9jXlT/Yl1T/2JdU/9iXVP/Yl1T/2Jd - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Jd - U/9iXVP/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2JdU/9eWVD/XlpQ/2FcUv9iXVP/Yl1T/2Jd - U/9iXVP/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/YV1T/2FcUv9iXVP/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/XVlP/0lFPsYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj4yFzm1oX/9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15U/2JdU/9jXlT/Y15V/2Ne - Vf9jXlX/Y15U/2BbUv9eWVD/X1pR/2JdU/9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Yl1T/2JdU/9iXVP/Yl1T/2FcUv9gW1H/YVxS/2Fc - Uv9fWlH/Yl1T/2JeVP9iXVP/YVxS/15ZUP9bVk7/XVdP/2BaUf9iXVP/Yl1T/2JdU/9hXFL/X1pR/15Z - UP9fWlD/X1pR/15ZUP9eWVD/W1VN/2xoYv9/e3b/gH14/4SAev+EgXr/hIF6/4SBev+EgXr/hIF6/4SB - ev+EgXr/hIF6/3t3cP9taGD/ZWBX/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Yl1U/15Z - UP9eWFD/Yl1T/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlT/Yl1T/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9iXVP/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlT/Y15U/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlT/X1lQ/19ZUf9hXFL/Yl5U/2Ne - VP9iXVP/Y15U/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVP9hXVP/Yl1U/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15U/2JeVP9jXlX/Y15V/2NeVf9jXlX/Y15V/15aUP9KRj/OAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI+LhdZsZ17/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2NeVf9iXVT/Y15V/2Rf - Vv9kX1b/ZF9W/2RfVv9hXFL/X1pR/19ZUP9iXVT/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/Y15U/2NeVP9jXlT/Y15U/2JdU/9gWlL/YFpS/2Jd - U/9iXVP/YVtS/2JdU/9iXVP/Y15U/2BaUv9eWVD/XFdO/11XT/9fWVH/Yl1T/2NeVf9kX1b/Yl1T/2Ba - Uv9fWVD/X1lQ/15YUP9dV0//XFZO/1hTS/94dG7/gXx4/4OAev+Fgnv/hYJ7/4WCe/+Fgnv/hYJ7/4WC - e/+Fgnv/hYJ7/4WCe/91cWn/a2Ze/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Ne - Vf9hXFL/YFpS/2FcUv9jXlX/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/Y15V/2NeVf9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/Y15V/2BbUv9hXFP/Yl1T/2Ne - VP9iXVP/YVtS/2JcU/9jXlX/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/Yl1T/2Ne - Vf9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2NeVf9iXlT/Y15V/2NeVP9jXlT/Y15U/2JdU/9dWE//SkY/1wAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNioPeamVd/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9jXlX/Yl1T/2Ne - VP9jXlX/ZF9W/2RfVv9kX1b/Yl1U/2FcUv9hW1L/Y15V/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/Yl1T/2JdVP9jXlT/Y15U/2NeVP9jXlT/YFpS/2Jd - U/9jXlX/Yl1T/2JdVP9iXVP/Yl1T/2FcUv9hW1L/X1lR/11YT/9fWVH/YFtS/2JdU/9jXlX/Y19W/2Ne - VP9hXFP/YFpS/2BaUv9hXFL/YlxT/19aUf9eWVH/gn14/4N/ef+FgXr/hYJ7/4WCe/+Fgnv/hYF6/4WB - ev+Fgnv/hYJ7/4WCe/+Cf3j/cW1k/2hjWv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/Y15V/2NeVf9jXlT/Yl1T/2NeVf9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9jXlb/Y15U/2FcU/9iXVP/Y15V/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9iXVP/Yl1T/2Ne - VP9jXlX/YVxT/19aUf9gWlL/Yl1T/2RfVv9jXlX/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Ne - Vf9jXlX/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9jXlX/Yl5U/2NeVP9iXlT/Y15U/2NeVP9iXVP/XVdP/0tGQN8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIiD6mpk - XP9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF5V/2NeVf9kXlb/ZF9W/2RfVv9kX1b/ZF5V/2Jd - VP9hW1P/Yl1U/2NeVv9kX1b/ZF9W/2RfVv9jXlX/ZF5W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2ReVf9iXVT/Y15V/2RfVv9jXlX/Y15V/2Fc - VP9jXlX/ZF9W/2RfVv9kX1b/Y15V/2JdVP9hXFT/Y11U/2FcU/9gW1L/YVtT/2FbUv9hXFP/ZF5W/2Rf - Vv9kXlX/Y15V/2JcVP9jXVT/Y15V/2ReVf9hXFP/aWRc/4WBe/+FgXv/hYJ7/4WCe/+Fgnv/hYJ7/4SA - ev+EgHr/hYJ7/4WCe/+Fgnv/fnpz/3FsZP9lX1f/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kXlb/Y15V/2Re - Vf9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2NdVP9kXlX/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kXlb/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kXlb/Yl1T/15YUP9bVk7/X1pR/2JdVP9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF5W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/Y15V/2Ne - Vf9kXlb/ZF9W/2JdVP9fWlH/XllQ/2JdVP9kXlb/Y15V/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF5W/2NeVf9jXlX/YV1U/2FdVP9iXVT/YVxT/15YUP9MSELqAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIuG - gvRpY1v/ZV9X/2RfV/9kXlb/ZF5W/2VfV/9lX1f/ZV9X/2ReVv9iXVX/ZF5W/2VfV/9lX1f/ZV9X/2Re - Vv9jXVb/YFtS/19bUv9iXVT/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9kXlb/Y11W/2ReVv9lX1f/ZF5W/2Re - Vv9kXlb/ZV9X/2VfV/9lX1f/ZV9X/2ReVv9kXlb/ZF5W/2ReVv9kXlb/ZF5W/2NdVv9hXFT/Yl1U/2Vf - V/9lX1f/ZV9X/2VfV/9kXlb/Y11W/2ReVv9lX1f/YFtS/3FsZv+Ggnz/hoJ8/4aCfP+FgXz/hYF8/4WB - e/+EgHv/hIB7/4WBfP+Ggnz/hoJ8/3t2cP9wa2P/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZF5W/2Re - Vv9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9kXlb/ZF5W/2ReVv9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9jXVX/Y11W/2ReVv9kXlb/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/YVxU/1xYT/9bV07/XFhP/2BbU/9kXlb/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Re - Vv9kXlb/ZV9X/2VfV/9iXVT/YFtS/15aUf9jXVX/ZF5W/2NdVv9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9kXlb/ZF5W/2FcVP9gXFP/YVxU/2JdVP9fW1L/TEhC8wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNu - ZwGKhoD+aGJa/2VfV/9kXlb/ZF5W/2VfV/9lX1f/ZV9X/2VfV/9jXlb/Y11V/2ReVv9lX1f/ZV9X/2Vf - V/9kXlb/Y11V/15aUf9eWVH/YVxT/2ReVv9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/Y15V/2Ne - Vf9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2ReVv9kXlb/ZV9X/19aUf95dG7/hoJ9/4aCff+FgXz/hYF7/4SA - e/+DgHr/hYF7/4WBfP+Ggnz/hoJ9/4aCff94c2z/a2Ve/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZF9X/2Re - Vv9kXlb/ZF5W/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2NdVf9jXVX/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/Y11V/2JdVP9kXlb/ZF5W/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZF5X/2BbUv9cV0//XVlQ/2FcVP9kXlb/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZF9X/2VfV/9lX1f/Y11W/2FcU/9hXFT/ZF5W/2VfV/9kXlb/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2ReVv9iXVX/Y11W/2ReVv9kXlb/ZF5W/2NeVv9hXVT/Yl1U/2JdVP9iXVT/X1pS/0xI - Qv0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACFgXoLiYWA/2hjW/9lYFj/ZF9X/2RfV/9kX1f/ZWBY/2VgWP9lYFj/ZF9X/2RfV/9kX1f/ZWBY/2Vg - WP9lYFj/ZF9X/2NeVv9hXVT/YFtT/2JdVf9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9jX1f/Y15W/2RfV/9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9jXlb/ZF9X/2RfV/9fWlL/gHx1/4eDff+Hg33/hoJ8/4WB - e/+DgHr/hIB6/4SBe/+FgXz/hoJ8/4eDff+EgHv/d3Ns/2plXv9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Rf - V/9kX1f/Y15W/2NeVv9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9kX1f/Y15W/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9jXlb/ZF9X/2RfWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9jXlb/YV1U/2NeV/9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9jXlb/ZF9X/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9jXlf/YV1V/2JdVf9jXlb/ZF9X/2RfV/9kX1f/ZF9X/2RfV/9jXlb/Yl5W/2Bb - Uv9NSUP/T0tECQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAhYF6FoiEf/9nY1v/ZWBY/2RfV/9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9kX1f/ZF9X/2Vg - WP9lYFj/ZWBY/2RfV/9kX1f/Yl1W/2JdVP9jXlb/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZF9X/2JdVv9jXlb/Y15W/2NeVv9kX1f/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2RfV/9jXlb/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9jXlb/YVxT/2FcVP9hXFT/XlpR/4WBe/+Hg33/h4N9/4WB - fP+EgHv/g395/4J/ef+Df3r/gn55/4J+ef+Fgnz/gn54/3Zya/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZF9X/2RfV/9kX1f/ZF9X/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZGBY/2RfV/9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2RfV/9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2RfV/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/Yl1V/19bUv9gW1P/YVxU/2JdVf9jXlb/ZF9X/2VgWP9kX1f/Y15W/2Jd - Vf9fW1L/TUlD/09LRBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIWBeyGGgnz/ZmJa/2NeVv9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2Rf - V/9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2RfV/9jXlb/Y15X/2RfV/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZF9X/2NeVv9iXlb/Y15W/2NeVv9jXlb/ZF9X/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZF9X/2RfV/9lYFj/ZWBY/2VgWP9kX1f/Y15W/2JdVv9jXlb/Y15W/2Rf - V/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9jXlf/YV1U/2BbU/9gW1P/YFtS/2FdVf+Hg33/h4N9/4eD - ff+Ggnz/hIF7/4SBe/+EgXv/hIB7/4F+eP+Cfnn/hIB6/4F9d/92cmr/ZWBY/2VgWP9kX1f/Y15W/2Rf - V/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2NeVv9jXlb/Yl1V/2RfV/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9kX1f/ZF9X/2VgWP9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZF9X/2FcVP9gW1P/X1pR/19aUf9eWVD/X1tS/2FcVP9jXlb/Y15W/2Jd - Vf9iXVT/X1pS/05JQ/9PS0QbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACGgXsshYJ7/2ZhWP9iXVT/ZF9W/2ZhWP9mYVj/ZmFY/2ZhWP9lYFf/ZWBX/2Vg - V/9lYFf/ZmFY/2ZhWP9mYVj/ZWBX/2VgV/9mYVj/ZWBX/2VgV/9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9kX1b/ZF9W/2VgV/9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9kX1f/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9jXlX/Y19W/2Rf - Vv9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZWBX/2RfVv9iXlT/YVxT/2BbUv9mYln/iIR+/4iE - fv+IhH7/iIR+/4iEfv+Hg37/h4N+/4aCfP+DgHr/g4B6/4SBe/+AfXb/c29m/2ZhWP9mYVj/ZWBX/2Ne - Vf9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Vg - V/9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9jXlT/YFtS/19aUf9kX1b/ZWBX/2VgV/9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9lYFj/ZWBX/2Vg - V/9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9jXlX/YVxT/2FdU/9gW1L/XVhP/11XT/9dV0//XVhP/2Fc - U/9iXlT/Yl5U/2BbUv9PS0T/T0tEJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAhoJ7N4N/eP9lYVj/Y15V/2VgV/9mYVj/ZmFY/2ZhWP9mYVj/ZWBX/2Vg - V/9lYFf/ZWBX/2ZhWP9mYVj/ZmFY/2VgV/9mYVj/ZmFY/2ZhWP9lYFf/ZWBX/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZWBX/2VgV/9lYFf/ZmFY/2ZhWP9lYFf/ZF9W/2Rf - Vv9lYFf/ZWBX/2VgV/9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9iXlT/amVd/4mF - fv+JhX7/iYV+/4mFfv+JhX7/iYV+/4eEff+Hg3z/hoJ7/4eDff+IhH3/gH11/29rYv9mYVj/ZmFY/2Zh - WP9kX1b/ZWBX/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Vg - V/9kX1b/ZWBX/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9lYFf/Yl5V/2FcU/9hXVP/ZWBX/2VgV/9lYFf/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Vg - V/9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9lYFf/ZF9X/2NeVf9jXlX/Yl1U/11YT/9dV0//XVdP/11X - T/9eWVD/YFxS/2FdU/9gW1L/UUxF/09KRDMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIaBekGCfXb/Z2JZ/2VgV/9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Vg - V/9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZF9W/2VgV/9lYFf/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9jXlX/Y19V/2VgV/9mYVj/ZmFY/2Zh - WP9mYVj/ZWBY/2VgV/9lYFf/ZWBX/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/Y15V/2xp - YP+JhX7/iYV+/4mFfv+JhX7/iYV+/4eEff+Hg3z/h4R9/4iEff+IhH7/iYV+/4B8dv9vamL/ZmFY/2Zh - WP9mYVj/ZF9W/2RfVv9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9lYFf/ZGBX/2RfVv9lYFf/ZWBX/2ZhWP9mYVj/ZWBX/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2RfV/9kX1b/ZWBX/2ZhWP9lYFf/ZWBX/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZWBY/2Zh - WP9lYFf/ZWBX/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9lYFf/ZWBX/2VgV/9kX1b/Y19W/2RfVv9fWVH/XVdP/11X - T/9dV0//XlhQ/19aUf9fWlH/XlpR/1FNRf9PSkQ/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFgXpNgXx1/2hiWv9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/ZmBY/2VfWP9mYFj/ZV9Y/2VfV/9lX1f/ZmBY/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9mYFj/ZF5X/2RfV/9mYFj/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/ZmBY/2ZgWP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2Nd - Vf9uaWL/ioV//4mEfv+JhH7/ioV//4mEfv+Hg33/h4J9/4mEfv+KhX//ioV//4qFf/99eXL/b2pi/2dh - Wf9nYVn/Z2FZ/2VfV/9lX1f/ZmBY/2dhWf9mYFj/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/ZmBY/2VfV/9kX1f/ZF5W/2ReV/9mYFj/ZmBY/2ZgWP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9mYFj/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2Zg - WP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9mYFj/ZWBY/2ReVv9mYFj/Z2FZ/2ZgWP9lYFj/ZWBY/2ZgWP9mYFj/ZWBY/2VfV/9lX1f/Yl1V/15a - Uf9dWFD/XVlQ/15aUf9dWFD/XVhQ/1xYT/9RTEb/T0pESwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhoF6V396c/9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2ZgWP9lX1j/ZV9X/2VfV/9kXlb/ZF5W/2Zg - WP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2ZgWP9mYFj/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2ZgWP9mYFj/ZmBY/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/ZmBZ/2ZgWP9mYFj/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9jXVX/Y11V/25pYv9taGH/bWhi/29qY/9xbGX/cWxl/3JtZv92cWv/d3Js/3dybP96dW7/bmhg/2xm - Xv9nYVn/Z2FZ/2dhWf9lX1j/ZV9X/2ZgWP9mYFj/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9mYFj/ZF5W/2NdVf9jXVb/ZF5W/2ZgWP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2Vf - V/9jXlb/ZV9X/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9mYFj/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/ZF5W/19bUv9fWlL/Y15W/2dhWf9mYFj/ZWBY/2ZgWP9nYVn/ZmBY/2ZgWP9kXlf/ZF5W/2Ne - Vv9kXlf/ZF5W/2NeVv9hXFP/X1pS/11YUP9cV0//UUxG/05JQ1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIaBe2N9d3D/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9mYFj/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9lX1f/YVxU/2Bb - U/9iXVX/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2ZgWP9lX1j/ZmBY/2ZgWP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/ZV9X/2NdVf9iXVT/YVxU/2FbU/9gW1P/YVtT/2FcVP9eWVH/XllR/15ZUf9eWVH/X1pS/2Re - Vv9nYVn/Z2FZ/2dhWf9kX1f/ZF5W/2ReVv9lX1f/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2VfV/9jXVX/ZF5W/2VfV/9mYFj/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/ZmBY/2Re - Vv9eWVH/XVhQ/15ZUf9lX1f/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9mYFj/ZmBY/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2FcVP9dWFD/XVhQ/2NdVf9nYVn/ZmBY/2VgWP9mYFj/Z2FZ/2dhWf9mYFj/ZF5W/2Fc - VP9iXFT/ZF5W/2VfWP9lX1f/Y11V/2JcVf9fWlH/XFhQ/1FMRv9NSUJjAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGgXttenZv/2diWv9mYVn/Z2Ja/2di - Wv9nYlr/ZmFZ/2ZhWf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9mYVn/ZF9X/2Bb - U/9eWlL/YFtT/2VgWP9nYlr/Z2Ja/2ZhWf9lYFn/ZWBY/2ZhWf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9mYVn/ZWBZ/2VhWf9lYFn/ZmFZ/2ZhWf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9mYVn/Yl5W/2FdVf9jXlf/ZWBY/2ZhWf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9mYVn/ZWBY/2VgWP9mYVn/ZmFZ/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2Zh - Wf9gXFT/XllR/15ZUf9eWVH/YFtU/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9lYFj/ZF9X/2NfV/9mYVn/Z2Ja/2ZhWf9lYVn/ZmFZ/2diWv9nYlr/ZmFZ/2Rf - WP9jXlb/Yl1W/2RfV/9lYFj/ZWBY/2VgWP9kX1j/Yl1V/19aUv9UT0n/T0pEbgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhYF6eXhzbP9mYVn/ZWBZ/2Zh - Wf9nYlr/Z2Ja/2ZhWf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2Ne - V/9gW1P/XlpS/2BcVP9lYFj/ZmFZ/2diWv9mYVn/ZWBY/2RfWP9lYFj/ZmFZ/2diWv9nYlr/Z2Ja/2Zh - Wf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9mYVn/Y19X/2RfV/9lYFj/ZWBZ/2VgWf9mYVn/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9mYVn/Y15X/2FdVf9jX1f/ZWBY/2VgWP9mYVn/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2VgWP9mYVn/ZmJa/2ZhWf9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9mYVn/YVxU/15ZUf9eWVH/XllR/2FdVf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmJa/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFa/2ZhWv9nYlr/Z2Ja/2Zh - Wf9lYFj/ZF9X/2NeVv9kX1f/ZWBY/2RfV/9kX1f/ZF9Y/2NeV/9gW1P/VFFK/1BLRXsAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWRjId3cmv/ZmFZ/2Zh - Wf9lYFn/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2Zh - Wf9mYVn/ZGBY/2NeVv9jXlb/ZmFZ/2diWv9mYVn/ZmFZ/2ZhWf9lYFj/ZWBY/2diWv9nYlr/Z2Ja/2di - Wv9mYVn/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9mYVn/ZmFZ/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9mYVn/Y19X/2BbU/9iXVX/ZF9X/2VgWP9lYFj/ZmFZ/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2ZhWf9lYFj/ZmFZ/2ZhWf9mYVn/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2VgWP9lYFj/ZmFZ/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9mYVn/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/ZmFZ/2RfV/9hXFT/X1pS/2NeVv9mYVn/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2ZhWf9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2Zh - Wf9lYVn/ZmFZ/2RfWP9jX1f/ZGBY/2VgWP9lYFj/ZWBY/2VgWP9kYFj/YVxU/1VRSv9FQTyJAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUkYyWdnFq/2hj - W/9oY1v/Z2Ja/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2di - Wv9nYlr/aGNb/2hjW/9nYlv/Z2Ja/2hjW/9oY1v/aGNb/2ZhWf9mYVn/ZmFZ/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/ZmFZ/2Vg - WP9mYVn/Z2Ja/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/ZmJa/2JdVf9gXFP/Y15X/2ZhWf9mYlr/ZmFa/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9nYlr/Z2Ja/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9nYlr/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9nYlr/Z2Ja/2ZhWf9nYlr/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9nYlr/Z2Ja/2diWv9mYVn/ZmFZ/2ZhWf9mYlr/Z2Ja/2ZhWf9mYVr/Z2Ja/2RfV/9YU03/REE8lgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlJCLpHVw - af9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9mYVr/ZmFZ/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2Vh - Wf9kX1j/ZF9Y/2ZhWv9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2VgWP9hXVX/YFxU/2VgWf9nYlr/Z2Ja/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9nYlr/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9nYlr/Z2Ja/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2ZhWf9mYVn/Z2Ja/2dj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2ZhWv9mYVr/ZmFZ/2ZhWf9mYVn/ZmFZ/2diWv9lYFj/W1dQ/0VB - PKUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJOP - i7Nzbmf/aGNb/2hjW/9oY1v/aGNb/2diWv9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9nYlr/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9mYVn/ZmFZ/2diWv9nYlr/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9jXlf/Yl1V/2JeVv9nYlr/Z2Ja/2diWv9nYlr/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9nYlr/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9nYlr/Z2Ja/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9mYVn/ZWBY/2Vg - WP9nYlr/Z2Ja/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9nYlr/Z2Jb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/ZmJa/2ZiWv9mYVr/Z2Ja/2diWv9nYlr/Z2Ja/2ZhWf9mYVn/ZmFZ/2ZhWf9nYlr/Z2Ja/19a - U/9JRT+yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACSjonCcm1l/2hjW/9oY1v/aGNb/2hjW/9nYlr/aGNa/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNa/2diWv9oY1r/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9nYlr/ZGBX/2RfWP9lYVn/aGNa/2hjWv9nYlr/Z2Ja/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjWv9nYlr/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjWv9nYlr/aGNa/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9nY1r/ZmFZ/2diWv9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2di - Wf9lYFj/ZmFY/2diWv9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjWv9lYFj/Y15V/2ZhWf9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNa/2diWv9nYlr/Z2Ja/2hjWv9oY1v/aGNa/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9hXFT/S0dBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAkY2G0XFsZP9pZFv/aWRb/2lkW/9pZFv/aGNa/2hjWv9oY1r/aGNb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2diWf9oY1r/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1r/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2hjWv9oY1r/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/Z2JZ/2VhWP9nYln/aGNa/2lkW/9oY1r/ZmFZ/2di - Wf9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1r/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9nYln/ZmFY/2hj - Wv9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1v/aGNa/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aGNa/2diWv9oY1r/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aGNa/2hjWv9oY1r/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1r/Z2JZ/2VfV/9mYVn/aGNa/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2hjWv9nY1r/Z2Na/2hjWv9pZFv/aWRb/2hjWv9nYln/Z2JZ/2diWf9oY1r/aGNa/2hj - Wv9nYlr/Yl1V/0xIQs4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJCMhd5vamH/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2hjWv9oY1r/aGNa/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9nYln/aGNa/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aGNa/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9nYlr/aGNa/2hjWv9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2diWf9mYln/aGNa/2hjW/9pZFv/Z2JZ/2Zh - WP9mYVj/aGNa/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aGNa/2hj - Wv9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2diWf9oY1r/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/3NuZv+Ggnv/joqE/46K - hP+NiYP/jYmD/42Jgv+MiIH/jIiB/4uIgf+Kh4D/ioZ//4eDfP97d2//aGNa/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oZFv/aGNa/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9oY1r/Z2Na/2hjWv9oY1r/aGNa/2diWf9nY1r/Z2Ja/2ZiWf9nYln/aGNa/2hj - Wv9nYln/Z2JZ/2JdVP9OSkTdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACOioTtbWhg/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1v/Z2Ja/2hj - Wv9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1r/aGNa/2hj - Wv9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2hj - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aGNa/2hjWv9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9nYlr/Z2Na/2hjWv9oY1v/aGNb/2Zh - Wv9lYFj/ZWBY/2diWv9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9nYlr/aGNb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2ZhWf9xbGX/jYmE/42J - hP+NiYT/jYmE/42JhP+NiYT/jYmE/42JhP+OioX/jYqE/42KhP+LiIH/fnpz/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2hjW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aGNa/2hjWv9nY1r/Z2Na/2djWv9nYlr/Z2Na/2diWv9mYln/Z2Ja/2hj - Wv9nYlr/Z2JZ/2diWf9jX1b/T0tF7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAjYmD/GxnX/9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2hj - W/9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9oY1v/aGNb/2hj - W/9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2hj - W/9mYlr/Z2Nb/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGNc/2hjW/9pZFz/aGNb/2hjW/9oY1v/aGNb/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGNb/2diWv9oY1v/aGNc/2hj - W/9mYVn/ZF9X/2RgWP9nYlr/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aGNb/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9lYFj/eXVv/42J - hP+NiYT/jYmE/42JhP+NiYT/jYmE/42JhP+NiYT/jYmE/42JhP+NiYT/g395/3dza/9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9oZFz/aGNb/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aGNb/2diW/9oY1v/aGNb/2lkXP9oY1v/Z2Nb/2ZiWv9mYVn/ZWBZ/2di - Wv9nYlr/ZmFZ/2ZhWv9mYlr/ZGBY/1FNRvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAh4R9DIuHgv9rZl//aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGNb/2lk - XP9oY1v/aGNb/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9nYlr/ZWFZ/2diWv9pZFz/aWRc/2lkXP9pZFz/aWRc/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Jb/2hj - W/9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9nYlv/Z2Jb/2hj - W/9oY1v/Z2Ja/2VgWP9lYFj/aGNb/2lkXP9pZFz/aGNb/2hjW/9oY1v/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2hjW/9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9nYlv/ZF9Y/4aD - ff+NioT/jYqE/42KhP+NioT/jYqE/42KhP+NioT/jYqE/42KhP+NioT/jYqE/3x4cf9vamP/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9oY1v/aGNb/2diW/9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2hkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGNb/2lkXP9pZFz/aWRc/2hjW/9nYlr/ZWBZ/2Vg - WP9lYVn/ZWBY/2RfWP9kX1j/ZF9Y/2NeVv9RTUb/U1BJDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiEfRqJhYD/a2Ze/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2hjW/9pZFz/aWRc/2lkXP9oY1v/Z2Ja/2diWv9oY1v/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aGNb/2diWv9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9nY1v/Z2Nb/2hjW/9oY1v/aGNb/2di - Wv9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/Z2Ja/2di - Wv9pZFz/aWRc/2hjW/9lYVn/Z2Ja/2lkXP9pZFz/aWRc/2diWv9mYVn/ZmFZ/2hkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/ZmFa/2xn - YP+NioT/jYqE/42KhP+NioT/jYqE/42KhP+NioT/jYqE/42KhP+NioT/jYqE/4qGgP94dG3/bmlh/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGRc/2hjW/9oY1v/aGNb/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGNb/2Zh - Wv9mYVr/Z2Ja/2VhWf9kX1j/Y15W/2NeV/9hXVX/UU1H/1NPSBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIhH4piIR+/2xnX/9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/Z2Jb/2diWv9lYFn/aGNb/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2lkXP9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/amVd/2lk - XP9oY1v/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2hj - W/9nY1v/aWRc/2lkXP9pZFz/Z2Ja/2hjW/9qZV3/amVd/2lkXP9mYVr/ZmFZ/2ZhWv9pZFz/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aWRc/2di - Wv97eHH/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+FgXv/dnJq/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXf9pZFz/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9oY1v/Z2Ja/2hjW/9pZFz/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lk - XP9oY1z/aGNc/2lkXP9mYlr/ZWBY/2RfWP9kX1j/ZWBY/1RRSv9TT0krAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIR9OYWCe/9rZl//amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aGNb/2ZiWv9lYFn/ZF9Y/2diWv9pZFz/amVd/2pl - Xf9qZV3/amVd/2plXf9pZFz/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lk - XP9pZFz/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9nY1v/ZmFa/2diWv9nYlr/Z2Jb/2ZiWv9nYlr/aWRc/2lkXP9nY1v/ZmFZ/2diWv9oY1v/aWRc/2lk - XP9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2llXf9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2hj - W/9nYlv/ioeB/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/fnpz/3Rv - aP9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/aGNc/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9oY1v/ZWBZ/2RgWP9mYVr/aGNb/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aWRc/2hkXP9pZFz/amVd/2lk - XP9pZFz/aWRc/2hjXP9nY1v/ZmFZ/2VgWP9mYVn/ZmJa/2ZhWv9WUkv/U1BJPAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiEfkmDf3j/a2Ze/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aWVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/aWRd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9pZFz/Z2Jb/2ZhWf9oY1v/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9pZFz/aWRc/2lkXP9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/aGNb/2VgWf9kX1j/ZF9Y/2RgWP9kYFj/ZmFZ/2ZiWv9nYlr/ZmFZ/2ZhWv9nYlv/aWRc/2pl - Xf9oY1v/aGNb/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lk - XP9nYlv/dXFp/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jImD/3dy - a/9uaWL/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aWRc/2hj - XP9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9pZFz/Z2Ja/2RfWP9jXlf/ZGBY/2hj - W/9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9pZFz/aGNc/2lk - XP9oZFz/aWRc/2hkXP9nYlv/ZmFa/2RfWP9kYFj/ZWFZ/2diWv9nYlr/V1NM/1NQSUwAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIhH1bgHt1/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2lkXP9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9pZFz/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9pZFz/aWRc/2lkXP9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2lkXP9kX1j/Yl1V/2JdVv9kX1j/ZmJa/2ZhWv9mYVr/ZmJa/2ZhWf9mYVr/aGNb/2lk - XP9qZV3/aWRc/2hjW/9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9pZFz/Z2Ja/4iEff+PjIb/j4yG/4+Mhv+PjIb/j4yG/4+Mhv+PjIb/j4yG/4+Mhv+PjIb/j4yG/4WB - e/90cGj/a2Zf/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lk - XP9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aWRc/2lkXP9pZFz/amVd/2lk - XP9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/aWRc/2hjW/9nYlr/ZWBY/2Vg - Wf9nYlv/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lk - XP9pZFz/aGNb/2diWv9nYlr/ZmFa/2VgWf9kX1f/ZF9Y/2VgWf9mYlr/ZmFa/1hVTv9UUElfAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIN9bH14cf9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/aWRc/2lkXP9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/ZWFZ/2JdVv9iXVb/ZWFZ/2hjW/9oY1v/aGNb/2xnYP9+enP/hoJ8/3p2 - b/90b2f/a2Ze/2plXf9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/aWRc/3Rwaf+QjYf/kI2H/4+Mhv+PjIb/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CN - h/98eHH/c25m/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tm - Xv9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2plXf9rZl7/amVd/2hj - XP9oY1v/aWRc/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/aWRc/2diW/9nYlv/Z2Nb/2hjXP9nYlv/ZmFa/2diWv9oY1v/aGNb/2hjW/9cWFH/VVJLcAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI+Lhn96dm//a2Ze/2tm - Xv9rZl7/a2Ze/2plXf9qZV3/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2lkXP9pZFz/amZe/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2ZhWv9jX1f/Yl1W/2RgWP9nYlv/aGNb/2hjW/9lYVn/g4B5/4+M - hv+UkIv/ko+J/46KhP+Cfnj/eXVu/3BrZP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2lkXf+JhoD/kI2H/5CNh/+PjIb/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CN - h/+MiYP/dHBo/25pYf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZl7/amVd/2plXf9rZl7/amVd/2lkXP9qZV3/a2Ze/2tm - Xv9qZV3/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/aWRd/2hjXP9oY1z/aGNb/2lkXP9qZV3/aWRc/2hjW/9oY1v/aWRc/2lkXf9qZV3/YFxU/1JO - SIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXk46QeXRu/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2hjW/9pZFz/amVd/2tm - Xv9rZl7/a2Ze/2plXf9oZFz/aGRc/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9oY1z/ZWBZ/2NeV/9kX1j/ZmFa/2hjW/9nYlv/YVxV/397 - df+QjYf/kI2H/5GNiP+Tj4n/lJCL/5SQi/+RjYj/jIiD/4F9d/94dGz/bGdf/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2lkXf96dm//kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CN - h/+QjYf/gX12/3JtZv9rZl//a2Ze/2tmXv9qZV3/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amZe/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9qZV3/a2Ze/2plXf9qZV3/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVe/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2lkXf9qZV3/aWRd/2lkXf9qZV3/a2Ze/2plXf9qZV3/aWVd/2llXf9qZV3/a2Ze/2Jd - Vv9NSkOUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlpKNondz - bP9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2lkXP9pZFz/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9pZV3/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/aGNc/2lkXP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/aWRd/2diW/9lYFn/ZF9Y/2ZhWf9nYlv/Z2Ja/2Fd - Vf9xbWb/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kY6I/5OPiv+UkIv/lJCK/5CMh/+Lh4H/e3Zv/3hz - bP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2plXf9taGH/jYqE/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CN - h/+QjYf/jouF/3Rwaf9vamL/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVe/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV7/a2Ze/2tmXv9rZl7/amVd/2lkXP9pZF3/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9jXlb/TUlEpQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJSR - jLR1cWr/a2Ze/2tmXv9rZl7/a2Ze/2pmXv9qZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2plXf9oY1v/Z2Jb/2lkXP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2pl - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2lkXf9pZFz/aWRc/2hkXP9pZV3/aWRc/2di - W/9kYFj/ZWBZ/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CNh/+Sjon/lJCK/5SR - jP+Tj4r/j4uF/4iEfv96dm7/cm1m/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/g395/5CNh/+QjYf/kI2H/5CNh/+QjYf/j4yG/5CNh/+QjYf/kI2H/5CN - h/+QjYf/kI2H/4J/eP9ybWX/bGdf/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2plXf9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/a2Ze/2tmXv9rZl7/amZe/2plXf9pZF3/aWRd/2pl - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/Y19X/01KRLcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACTkIrGdG9o/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2pl - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/aWRc/2lkXP9qZV3/a2Ze/2tmXv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2hj - W/9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9pZF3/amVd/2plXf9qZV3/a2Ze/2pl - Xf9nYlv/ZmFa/2FdVf+IhH7/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5OPiv+UkIv/lJCL/5KPif+NioT/gn54/3l1bf9xbGT/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/eHNs/5GNiP+RjYj/kY2I/5GNiP+RjYj/kI2H/46Lhv+PjIb/kI2H/5GN - iP+RjYj/kY2I/5CLhv9zb2f/b2pi/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/aWRc/2hjXP9pZFz/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/a2Ze/2pl - Xf9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2VgWf9OSkTJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAko6H2HJtZf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/amVe/2tmXv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pl - Xf9oY1v/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/aWRd/2plXf9qZV3/amVd/2tm - Xv9pZFz/ZmFa/2hkXP9iXVb/e3dx/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+Sjon/k4+K/5SQi/+UkIv/kY2I/4yIgv9/e3T/eHRs/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/b2tj/4+Lhf+RjYj/kY2I/5GNiP+RjYj/kY2I/5CNh/+OjIb/j4yG/5CN - h/+RjYj/kY2I/5GNiP+BfXf/b2pj/2xnX/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2pl - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2lkXP9mYVr/ZmFZ/2hjW/9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9lYVn/T0tF2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJCMhepwa2P/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/amVd/2pl - Xf9rZl7/aGNb/2VgWf9oZFz/ZF9Y/21oYf+QjYf/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5KOif+UkIr/lZGM/5OQ - iv+QjIb/ioeB/3t2b/93c2z/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9sZ1//bWhg/4qGgP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kI2H/5GN - iP+RjYj/kY2I/5GNiP+OioX/cGtj/21oYf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pl - Xf9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9oZFz/ZmFa/2VgWf9oY1v/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/ZmFa/1FNR+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACOioT6bmlh/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amZe/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2ll - Xf9qZV3/a2Ze/2diW/9lYVn/aWRc/2ZhWv9gXFT/jYqE/4+Mh/+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/k4+K/5SQi/+UkIv/ko+J/42Jg/9/e3T/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9sZ1//bGdf/4aCe/+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/fHhx/21oYP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pl - Xf9pZFz/aWRc/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/aGNb/2ZhWf9mYVn/aWRc/2plXf9rZl7/a2Ze/2tm - Xv9qZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2diW/9ST0j8Yl1WAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACJhH4OjYiD/25pYf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVe/2lk - XP9qZV3/a2Ze/2tmXv9pZFz/aGNc/2lkXP9nYlv/XlpS/4B9d/+Oi4b/kY2I/5CNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+OioX/gHx2/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2xnX/9uaWH/bmlh/4N/eP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/ioaA/21oYP9taGD/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pl - Xv9oY1v/ZWBZ/2ZhWf9pZFz/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2hjXP9lYVn/ZmFZ/2plXf9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9pZFz/VFFK/1dTTBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAiYV+IYqGgP9uaWH/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/a2Ze/2xnX/9sZ1//a2Ze/2plXf9pZFz/aGNb/15aU/9yb2n/jouG/4+Mh/+Ni4b/j4yH/5CN - iP+Rjon/kY6J/5CNiP+RjYj/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GO - if+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+NioX/dG9n/3FsZf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9wa2P/cWxk/4N/eP+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GO - if+Rjon/kY6J/5GOif+Rjon/kI2I/3NuZ/9taGD/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9pZFz/ZF9Y/2NeV/9jXlf/aGNb/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/ZWFZ/2diW/9qZV3/bGdf/2xn - X/9sZ1//a2df/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZl7/amVd/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVe/1dTTP9XU0wlAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAImFfjaGg33/bWhg/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/aWRc/2lkXP9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWVd/2hjW/9jXlf/aGRe/46Lhv+Niob/jImE/46L - hv+QjYj/kY6J/5GOif+RjYj/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GO - if+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+NioX/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/21oYP9wa2P/cWxl/4aCfP+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GO - if+Rjon/kY6J/5GOif+Rjon/kY6J/356c/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pm - Xv9pZV3/aGNb/2VgWf9jX1f/ZF9Y/2diW/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//aWVd/2ZiWv9oY1v/amVd/2xn - X/9sZ1//bGdf/2tmXv9rZl7/amZe/2tmXv9rZl7/a2Ze/2pmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXv9qZl7/a2Ze/2tmXv9rZl//a2Zf/2pm - Xv9qZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9ZVE3/VlNMOQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIhX5LhIB5/21oYP9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2lkXf9pZF3/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/Z2Jb/2FdVf+MiYP/jYqF/42J - hP+QjYf/ko6J/5KPiv+Sjon/ko6J/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko6J/5KOif+Sj4r/ko+K/5KPiv+Oi4b/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/25pYf9ybWb/c25n/4iFf/+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/4mFf/9pZV3/aWRc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/amVd/2llXf9qZV3/aWRd/2tmXv9rZl7/amVe/2plXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9qZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXv9nY1v/aGNb/2tm - Xv9sZ1//bGdf/2xnX/9rZl7/amZe/2pmXv9qZV7/amVe/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmX/9rZl//a2Zf/2tm - Xv9qZl7/a2Ze/2plXf9qZV7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/WlZQ/1dTTE4AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIR+X4B8dP9rZl7/amVd/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9jXlf/fnt1/42L - hf+Ni4X/kY6J/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sjon/ko+K/5KPiv+Oi4b/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/3FsZP90cGj/eXVt/4yJg/+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/4+Lhv9taWH/aGNb/2hkXP9qZV7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2plXf9qZV7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV7/aGNc/2ll - Xf9rZl7/bGdf/2tmXv9qZV3/amVe/2tmXv9qZV7/a2Ze/2tmXv9qZV7/aWRc/2lkXP9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/amZe/2pmXv9rZl7/a2Ze/2tnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/11YUv9XU0xhAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIeDfXN7d3D/aWRc/2hjW/9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/Yl5W/29s - Zf+OjIb/kI2H/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Oi4b/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bmlh/3RvZ/92cWr/f3t0/5CNiP+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5GOif91cWn/Z2Jb/2ZhWv9nYlv/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pl - Xf9rZl7/a2Ze/2tmXv9mYVn/ZF9Y/2VgWf9oY1z/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tnX/9sZ1//bGdf/2tmXv9qZV7/aWVd/2plXf9fWlP/WFNNdgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWk42IeHNt/2hjW/9oY1v/amVd/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRc/2Fd - Vf9hXVb/kI2I/5KOif+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Pi4b/c25n/25pYf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//c25n/3hzbP96dm7/iIR+/5KPiv+Sjon/kY6J/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv96dm//aGNc/2ZhWv9lYFj/ZmFa/2plXf9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/a2Ze/2pmXv9qZV3/amVe/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9qZV3/Y15X/2NeV/9jXlf/ZWFZ/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/YV1V/01K - RIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlZGMnXdzbP9oY1v/aGNb/2pl - Xf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRc/2Rf - WP9gW1T/W1ZP/4qHgf+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KOif+Rjon/ko+K/5KP - iv+Sj4r/ko+K/5KOif+Sj4r/ko+K/5KPiv+Sj4r/i4iC/4iEfv+Ggnz/eXVt/2xnX/9rZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9xbWX/eHNs/3p2b/+Df3j/j4yH/5KPiv+Sj4r/kY6J/5GNiP+Sjon/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv9+enT/amVd/2diW/9mYVr/ZWBZ/2diW/9qZV3/bGdf/2xn - X/9sZ1//bGdf/2tmXv9nYlv/Z2Jb/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2lkXP9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//amVd/2NeV/9jXlf/Y15X/2VhWf9qZV7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVe/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2Je - Vv9NSUOfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJOQirFzb2n/aWRc/2pl - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lkXP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9rZl7/Z2Jb/2Vg - Wf9jXlf/Y15X/1tWT/97eHL/ko6J/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+QjYj/kI2I/5KO - if+Sj4r/ko6J/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/lpKN/5SRi/+NiYP/e3dv/29q - Yv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/3Ju - Zv96dm//fXly/4F9d/+MiIP/kY2I/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KOif+QjYj/kI2I/5GO - if+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Cfnj/a2Ze/2tmXv9pZF3/Z2Jb/2ZiWv9oY1v/amVd/2xn - X/9sZ1//bGdf/2xnX/9qZV7/ZWBZ/2VgWf9nYlv/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2pl - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2hjXP9oY1z/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9lYFj/ZF9Y/2NfV/9nY1v/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl//a2Zf/2tmX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9pZFz/aWRc/2lkXP9qZV3/amVd/2plXf9rZl7/bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2tm - Xv9jX1f/TUpDtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSjojGc25n/2tm - Xv9rZ1//bGdf/2plXf9nY1v/ZWBZ/2djW/9oY1z/aWRd/2tmXv9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lkXP9nYlv/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//amVd/2Nf - V/9jXlf/Y19X/2NeV/9cWFD/a2di/5GNiP+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/j4yH/4+M - h/+Rjon/ko+K/5KOif+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+TkIv/lpKN/5WS - jP+Pi4X/gn53/3dza/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9vamP/d3Jr/315 - cv9+enT/hIF6/42JhP+RjYj/j42I/4+Mh/+Sjon/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Rjon/kI2I/4+N - iP+RjYj/ko+K/5KPiv+Sj4r/ko+K/5KPiv+FgXv/amZe/2tmXv9sZ1//a2Ze/2plXf9pZFz/amVd/2pl - Xv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2VgWf9kX1j/ZGBZ/2plXf9sZ1//bGdf/2xnX/9rZl7/amVd/2pl - Xf9qZV3/a2Ze/2tmXv9rZl7/amVd/2hjW/9nYlv/aGNb/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVe/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2pmXv9qZl7/a2Ze/2xnX/9qZl7/a2Ze/2xnX/9sZ1//a2Ze/2plXf9qZV3/amVe/2pl - Xf9pZF3/aGRc/2hjXP9oY1v/aWRc/2lkXP9pZFz/amVd/2tmXv9rZl7/amVe/2plXv9rZl7/a2Ze/2xn - X/9rZl7/ZWBZ/05LRMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkY2H2nFt - Zf9sZ1//bGdf/2tmXv9oY1v/ZF9Y/2NeV/9jXlf/ZF9Y/2VgWP9pZFz/a2Ze/2ZhWv9kX1j/ZmFZ/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/Z2Nb/2lkXf9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//a2Ze/2di - Wv9jXlf/ZF9Y/2diW/9mYlr/Yl1W/19bVP+QjYj/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5GN - iP+QjYj/kY6J/5KOif+Sjon/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/lZGM/5aSjf+Tj4n/jYmD/356c/95dG3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//c29n/3Vwaf9+enT/gX13/4SA - ev+JhYD/jouG/5KPiv+Rjon/kI2I/4+NiP+PjYj/kY2I/5GOif+Sjon/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+RjYj/ko6J/5KPiv+Sj4r/ko+K/5KPiv+Cf3j/amVd/2plXf9rZl7/bGdf/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9oZFz/Z2Ja/2hjXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2pl - Xf9pZF3/a2Ze/2xnX/9sZ1//a2Ze/2lkXP9mYlr/ZWFZ/2diW/9qZV3/a2Ze/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9qZl7/a2Ze/2xnX/9sZ1//amZe/2tmXv9rZl7/a2Ze/2plXf9qZV3/amVd/2pl - Xf9qZV3/aGNc/2diW/9oY1v/aGNc/2lkXP9nY1v/Z2Jb/2lkXP9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9sZ1//a2Ze/2diWv9RTUfcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI+L - he9wa2P/bGdf/2xnX/9rZl7/Z2Nb/2RfWP9jXlf/ZF9Y/2VgWf9mYVr/aWVd/2lkXf9jX1f/Y15X/2Ne - V/9pZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2plXf9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2hj - W/9jXlf/Y15X/2VgWf9rZl7/a2Ze/2hjXP9iXVb/iYaA/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/lJGL/5WSjf+VkYz/lJCK/5CMh/+LiIH/fHhx/3p2bv94c2z/a2Ze/2pl - Xf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/90b2j/dnJr/3hzbP+Cfnf/hH95/4aCe/+Ig33/ioaA/4+L - hv+Sj4r/k5CL/5OQi/+TkIv/k4+K/5KOiv+Sj4r/kY2J/4+Nh/+QjYf/kY6J/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/9/e3X/aWRd/2plXf9rZl7/bGdf/2tmXv9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9rZ1//a2Ze/2xnX/9pZF3/aGNb/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tmXv9oY1z/ZmFa/2ZhWv9nYlv/aWRd/2tmXv9qZV3/amVd/2pl - Xv9qZV7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/amVd/2hjW/9oY1v/aWRc/2lkXP9pZF3/aWRc/2lkXP9pZFz/amVd/2plXf9rZl7/amVd/2pm - Xv9rZl7/a2Ze/2xnX/9oZFz/U09J8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB8 - dQaNiYP/bmli/2xnX/9sZ1//bGdf/2tmXv9pZFz/Z2Nb/2hjXP9pZFz/aWRc/2plXf9nY1v/Y15X/2Ne - V/9lYFj/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9jX1f/Y15X/2NeV/9pZFz/bGdf/2xnX/9sZ1//Y19Y/3t4cv+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+UkYz/lJGM/5SQi/+TkIv/ko+J/5CM - h/+OioT/joqE/42Jg/+MiIH/jIiB/4yJgv+MiYL/jImC/4yJgv+NiYP/joqF/4+Mhv+Rjoj/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5KPiv+QjYj/joyG/5CNiP+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5KPiv97d3D/aWRc/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2tmXv9qZV3/ZmFa/2RfWP9nYlv/amVe/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9nY1v/ZmJa/2ZhWv9mYlr/aWRc/2plXf9rZl7/aWRc/2lk - XP9pZF3/a2Ze/2tmXv9sZ1//bGdf/2xnX/9rZl7/amVe/2plXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/aWVd/2tmXv9rZl7/a2Ze/2xn - X/9sZ1//a2Ze/2plXf9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXf9pZFz/aWRc/2lkXP9qZV7/amVe/2pl - Xf9qZV3/amVd/2tmXv9sZ1//aWVd/1RRSv9cWFEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACIhH4dioaB/25pYf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9mYVr/ZWBZ/2Vg - Wf9mYVr/aGNc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xn - X/9nYlr/Y15X/2NeV/9kX1j/a2Ze/2xnX/9sZ1//bGdf/2ZhWv9uamT/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k4+K/5KPiv+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+Sj4r/ko+K/5OPiv+Sj4r/ko+J/5KPif+Sj4r/ko6J/5KPiv+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/ko+K/5CMh/+Rjon/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5CNh/92cWv/aWRd/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2df/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9rZl7/aWRd/2RfWP9jXlf/ZmFa/2plXf9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9kX1j/Y15X/2NeV/9lYFn/aGNb/2plXv9rZl7/a2Ze/2pl - Xf9pZF3/amVd/2tmXv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2plXv9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV7/aWRc/2lkXP9qZV3/a2Ze/2xn - X/9rZl7/amVe/2plXf9qZV3/amVd/2lkXP9pZFz/aWRd/2lkXP9pZFz/aGNb/2hjW/9pZFz/amVd/2tm - Xv9pZFz/aWRc/2diW/9qZV3/a2Ze/2lkXf9VUUv/VlJMHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAiYR+M4aDff9taGD/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/Y19Y/2Vg - Wf9oY1z/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2lkXf9pZV3/a2Ze/2xn - X/9sZ1//ZGBY/2NeV/9jXlf/ZmFa/2xnX/9sZ1//bGdf/2xnX/9oY1z/Y19Y/5GOif+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OPiv+Sjon/k4+K/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+Tj4r/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/4mGgP9taWH/aWRc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/amVd/2plXf9qZl7/a2Ze/2lkXP9kX1j/ZF9Y/2diW/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9nYlv/Y15X/2NeV/9jXlf/Y15X/2hjXP9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9qZV3/aWRc/2plXf9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2hjXP9oY1v/aWRd/2tm - Xv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tmXv9qZV3/amVd/2plXf9pZFz/Z2Ja/2RfWP9kYFj/aGNb/2lk - Xf9qZV3/aWRc/2ZiWv9mYVr/aGNb/2plXf9pZV3/VlNM/1ZSSzQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAImEfkuEgHn/bWhg/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2Ne - V/9oY1v/a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xn - X/9sZ1//a2df/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2RfWP9jXlf/Y15X/2hkXP9sZ1//bGdf/2xnX/9sZ1//amVd/2NeV/+Fgnz/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+PjIf/kY6J/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+Tj4v/k4+K/5OPiv+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+Tj4r/k4+K/5OPiv+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k4+K/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/ko+K/357dP9pZFz/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2lkXP9qZV3/a2Ze/2tmXv9qZV3/aGNc/2hjW/9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//aWRc/2NeV/9jXlf/Y15X/2RfWP9pZFz/a2Ze/2xn - X/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9rZl7/aWRd/2lkXP9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9oY1v/Z2Jb/2lk - XP9qZV3/amVe/2plXf9qZV3/amZe/2tmXv9rZl7/aWVd/2lkXf9pZF3/aGRc/2VhWf9jXlf/Y15X/2Zh - Wv9pZF3/a2Ze/2plXf9pZFz/aGNc/2lkXP9qZV3/aWRc/1dUTf9VUUtLAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACIhH5hf3t0/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9qZV3/a2Ze/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9lYFn/Y15X/2VgWP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9kX1j/eHRu/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+PjIb/bWhi/2pmX/+HhH7/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OPiv+Tj4r/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/jImD/3JuZ/9oY1z/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9qZV3/amVd/2tmXv9qZV3/amVd/2llXf9pZF3/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//amVd/2plXf9rZl7/bGdf/2lkXf9kYFj/Y15X/2RfWP9mYVr/amVd/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2xnX/9sZ1//a2Ze/2plXf9qZV3/amZe/2tm - Xv9rZl7/amZe/2pmXv9sZ1//bGdf/2tmXv9qZV3/amVd/2tmXv9rZl7/bGdf/2xnX/9pZF3/Z2Nb/2di - Wv9oY1v/aWRc/2lkXP9pZFz/aWRc/2tmXv9rZl7/amVe/2lkXf9pZFz/aWRd/2hjW/9nYlr/ZF9Y/2Rg - WP9nYlr/amVd/2tmXv9rZl7/a2Ze/2plXf9qZV3/aWRd/2hjXP9aVU//VVJKYQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAh4R9eHt3cP9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/amVd/2lk - XP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/ZWFZ/2NeV/9nYlr/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//Z2Ja/2tn - YP+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+PjIb/cGtk/2hjXP9kX1j/YFxU/3NvaP+Oi4b/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+RjYj/e3dw/2hjW/9oY1z/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2xnX/9sZ1//a2Zf/2xnX/9sZ1//a2Ze/2plXv9qZV7/amVd/2plXf9qZl7/amVd/2pl - Xv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9rZl7/amVd/2lkXP9nYlr/Z2Nb/2lk - XP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV7/a2Ze/2tm - Xv9rZl7/a2Ze/2lkXP9qZV7/amVe/2tmXv9qZV7/aWRc/2plXf9qZV3/a2Ze/2xnX/9qZV3/aWRc/2di - W/9nY1v/aGRc/2lkXP9pZF3/aGRc/2lkXP9rZl7/amVd/2lkXf9pZV3/aWVd/2llXf9oY1v/Z2Ja/2Zh - Wf9mYVr/Z2Nb/2plXf9rZl7/bGdf/2xnX/9rZl//a2Ze/2plXf9pZFz/XFhR/1ZSS3gAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaTjY96dW7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWVd/2hj - XP9mYlr/aWRc/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2VgWf9jX1j/ZmJa/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2hk - XP9iXVb/j4uG/5OQi/+TkIv/k5CL/5OQi/+PjIb/cGtk/2plXf9rZl7/a2Ze/2ZhWv9iXVb/Yl5X/3x4 - cv+Sj4r/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5KPiv+Df3n/a2df/2djW/9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmX/9sZ1//bGdf/2tmX/9sZ1//bGdf/2xnX/9qZV3/amVd/2pmXv9rZl7/amVe/2lk - Xf9pZF3/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2lk - XP9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXv9qZV7/amVd/2lkXP9pZFz/amVd/2tm - Xv9sZ1//bGdf/2tmXv9qZV3/amZe/2pmXv9rZl7/amVd/2hkXP9qZV3/amVd/2tmXv9sZ1//amVd/2hj - W/9nY1v/aGNb/2lkXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9nYlv/aGNb/2lkXP9oY1v/Z2Jb/2Zi - Wv9lYVn/ZWFZ/2diWv9qZV3/a2Ze/2tmXv9rZl7/bGdf/2xnX/9rZl7/aWRd/19aU/9MSUKQAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVkYyld3Ns/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lk - XP9mYVr/ZWBZ/2lkXP9rZl7/a2Ze/2tmX/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2pmXv9lYFn/Y15X/2VgWf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/Y15X/4J+ef+TkIv/k5CL/5OQi/+PjIb/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//amVd/2Vh - Wf9hXFX/ZmJa/357df+Sj4n/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/ko+K/4SAe/9uaWP/Z2Ja/2hkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//a2Ze/2pl - Xf9nYlv/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9qZV3/aWRc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/amVd/2lkXP9pZF3/aWRc/2lk - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pmXv9rZl7/a2Ze/2plXf9qZV3/amVd/2plXf9rZl7/a2Ze/2lk - Xf9mYlr/Z2Jb/2hjXP9qZV3/amVd/2plXf9qZV3/aWVd/2lkXP9nYlv/ZmJa/2diW/9nYlr/ZmFa/2Zh - Wv9mYlr/Z2Jb/2ZhWv9nYlr/amVd/2plXf9qZV3/a2Ze/2tmXv9sZ1//a2Ze/2plXf9hXFX/S0hCpgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk5CKvXVxaf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/aWRd/2hjXP9qZV3/amVe/2tmXv9rZl7/a2Ze/2xnX/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9rZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lk - XP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/ZWBZ/2NeV/9lYFn/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2RgWP90cGr/k5CL/5OQi/+PjIb/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//aWRc/2RfWP9hXFX/ZWFa/3p3cP+PjIb/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+Rjoj/gHx2/2xoYf9mYlr/aGNb/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/bGdf/2xnX/9sZ1//a2Ze/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9oY1v/ZWFZ/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2lkXf9qZV3/a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2plXf9pZFz/amVe/2lk - Xf9pZFz/amVd/2pmXv9rZl7/a2Ze/2tmXv9qZl7/a2Ze/2tmXv9qZV7/amVd/2plXf9pZFz/aWRc/2ll - Xf9oY1v/ZmJa/2ZiWv9pZFz/amVd/2plXf9pZV3/aWRd/2lkXP9oY1z/aGNc/2diW/9nYlr/Z2Jb/2Vh - Wf9jXlf/ZGBY/2ZhWf9mYVr/Z2Ja/2hjXP9oY1z/aWVd/2plXf9rZl7/a2Ze/2tmXv9qZV3/Yl1V/0xI - Q78AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCNh9VybWb/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2tmXv9rZl7/amVd/2hj - XP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9oY1z/aWVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2diWv9jXlf/ZWBZ/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9oY1v/Z2Nc/5OQi/+PjIb/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//aWRd/2VhWf9hXVb/YV1W/3FuZv+Fgnz/ko+K/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/4mF - gP93c23/aGNc/2ZhWv9nY1v/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9qZV3/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/aGNc/2ZiWv9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2tmXv9pZFz/aWRc/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/aWRc/2tm - Xv9pZV3/aGNc/2hkXP9qZV3/a2Ze/2plXf9qZl7/amZe/2tmXv9rZl7/a2Ze/2plXv9pZFz/ZF9Y/2Rf - WP9mYVr/ZmFa/2ZiWv9mYlr/aWRc/2plXf9qZV3/aGNc/2hjW/9oY1v/aGNc/2hjXP9nYlv/Z2Jb/2di - W/9kX1j/Y15X/2NeV/9jXlf/ZWBZ/2ZiWv9nYlr/ZmFa/2djW/9pZFz/amVd/2tmXv9qZV7/aWRc/2Je - Vv9MSUPXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOioTub2tj/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2lk - XP9nY1v/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/aWVd/2plXf9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9mYVn/Y15X/2VhWf9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//aWRc/2JeV/+HhH7/b2pj/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2djW/9jXlf/YVxV/2RgWP90cGr/hIF7/5GO - if+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5GPif+HhH7/eHVu/2pm - Xv9lYFn/ZmFa/2hkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVe/2lkXP9oZFz/amVd/2xnX/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/aWRc/2lkXP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2ll - Xf9pZF3/amVd/2lkXf9pZFz/amVd/2tmXv9pZF3/amVd/2pmXv9rZl7/a2Ze/2lkXf9qZV3/Z2Jb/2Ne - V/9jXlf/Y15X/2ZhWf9nYlr/Z2Jb/2llXf9qZV3/aWRd/2hjXP9pZFz/aWRc/2plXf9pZFz/aGNc/2di - W/9oY1v/ZF9Y/2NeV/9jXlf/Y15X/2NeV/9kX1j/ZGBY/2NfWP9mYVr/aGNb/2plXf9qZV3/amVd/2hj - XP9jX1f/TkpE7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfHUJjIiD/25pYv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2tm - Xv9pZFz/aGNb/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9pZV3/ZWBZ/2NeV/9lYFn/a2Ze/2xn - X/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9kYFj/ZmFa/2hjXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2lkXf9nYlv/Y15W/2Fd - Vf9iXVX/bWli/3l1bv+EgXv/joyG/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5CNiP+Gg33/fHhy/3FuZv9mYVr/ZGBY/2Vh - Wf9oY1v/aWVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tnX/9qZV3/amVe/2xnX/9sZ1//bGdf/2xn - X/9rZl7/amZe/2plXv9qZV7/amVd/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2plXv9qZV7/a2Ze/2lkXf9pZFz/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//amVd/2Vg - Wf9kX1j/ZmFa/2plXf9qZl7/amVd/2tmXv9rZl7/aWRd/2plXf9rZl7/a2Ze/2plXf9pZFz/amVd/2Vg - Wf9jXlf/Y15X/2NeV/9lYFn/ZmJa/2diW/9pZFz/amVd/2lkXf9pZV3/aWVd/2tmXv9rZl7/amVd/2lk - Xf9pZFz/aWRc/2ZhWv9jXlf/Y15X/2NeV/9jXlf/Y15X/2NfV/9kYFj/Z2Jb/2lkXf9qZV3/aWRd/2hk - XP9oY1v/ZWBY/1BMRv9ZVU4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIR+IYmFgP9uaWH/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2plXf9sZ1//bGdf/2xn - X/9rZl7/aWRd/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2djW/9jXlf/ZGBY/2lk - Xf9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//aWVd/2lkXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9qZV3/aGNb/2VhWf9iXlb/YV1V/2BcVf9kYFn/bWli/3NvaP95dnD/f3t1/4F9d/+EgXv/hYJ8/4mF - gP+JhoD/hoN9/4SBe/+Bfnj/f3x2/3t3cf91cWv/b2tl/2hkXP9jXlf/ZF9Y/2VgWf9nYlv/aWRc/2pm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//a2df/2xn - X/9rZl7/amVd/2llXf9qZl7/amZe/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2pmXv9qZV3/aWRc/2lkXP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2di - W/9jXlf/Y15X/2NeV/9pZFz/a2Ze/2tmXv9sZ1//a2Ze/2plXv9qZl7/amZe/2tmXv9pZF3/Z2Nb/2lk - Xf9mYlr/Y15X/2NeV/9kX1j/ZmFa/2diWv9oY1v/aWRc/2lkXf9pZF3/aWVd/2tmXv9sZ1//bGdf/2tm - Xv9rZl7/amVd/2plXf9pZFz/ZmFa/2NfWP9kYFj/ZGBZ/2NeV/9lYFn/Z2Ja/2lkXf9qZV7/amVe/2hk - XP9mYlr/ZmFa/2RfWP9QTEb/U09JIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiEfjmFgnz/bWhg/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9rZl7/bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tmXv9pZF3/ZmFZ/2Nf - WP9mYVn/amVe/2xnX/9rZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2df/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9oY1z/aGNb/2diW/9mYVr/Y15X/2JeV/9iXlf/Yl1W/2Jd - Vv9iXVX/Yl1W/2JeV/9iXlf/Y15X/2NfWP9kX1j/ZmFa/2hjW/9oZFz/aWRc/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2pmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl//bGdf/2xn - X/9rZl7/bGdf/2xnX/9rZl7/amZe/2pmXv9qZl7/amVd/2lkXP9nYlv/aWRc/2tmXv9rZl7/bGdf/2xn - X/9mYVr/Y15X/2NeV/9jX1f/aWVd/2tmXv9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/amVd/2pl - Xf9qZV7/aGNc/2ZhWf9nY1v/Z2Nb/2hjXP9pZFz/amVd/2tmXv9pZFz/aGNb/2llXf9qZV3/bGdf/2xn - X/9sZ1//a2Ze/2plXf9qZV3/aGNc/2ZiWv9lYFn/ZmJa/2ZhWv9lYFn/Z2Jb/2lkXP9rZl7/a2Ze/2pl - Xf9oY1v/Z2Jb/2djW/9kYFj/Uk9I/1NPSToAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIhH1Rgn53/21o - YP9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aGNb/2lkXf9rZl7/bGdf/2xnX/9sZ1//a2Ze/2hj - XP9jXlf/Y15X/2VgWf9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xn - X/9rZl7/amVe/2plXv9qZV3/amVd/2pmXv9qZl7/amZe/2plXf9oY1z/ZmFa/2hjW/9rZl7/a2Zf/2xn - X/9sZ1//aGNc/2RfWP9jXlf/ZWFZ/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2pmXv9rZl7/amVd/2tm - Xv9sZ1//bGdf/2tmXv9rZl7/amVd/2plXf9pZF3/amVd/2plXf9rZl7/aGNc/2hjW/9oZFz/amVd/2pl - Xv9qZV3/amVd/2plXf9oY1z/Z2Nb/2hjW/9mYVr/ZmFZ/2diW/9nYlv/aGNb/2plXf9rZl7/a2Zf/2tm - Xv9qZV3/aWRc/2lkXP9oZFz/aGNb/1hUTf9VUEpUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh4N9bH14 - cf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2hjW/9oZFz/a2Ze/2xnX/9sZ1//bGdf/2tm - Xv9pZF3/ZWBZ/2NeV/9jXlf/Z2Ja/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/aWRc/2tmX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2plXv9qZl7/amZe/2pmXv9qZV7/amZe/2pmXv9qZV3/aGNb/2ZiWv9pZFz/a2Ze/2xn - X/9sZ1//bGdf/2tmXv9qZV3/aGNc/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2pl - Xf9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVd/2plXf9pZF3/aWRc/2hjW/9nY1v/aWVd/2ll - Xf9pZV3/aWVd/2llXf9pZFz/ZmFa/2ZhWv9nY1v/aGNb/2hkXP9qZV3/amVd/2plXf9rZl7/bGdf/2xn - X/9sZ1//a2Ze/2plXv9pZV3/aWRc/2plXf9dWVL/VlJLbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI6K - hIZ6dW//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aGNb/2hkXP9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9qZV3/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9rZl7/amZe/2hkXP9kX1j/Y15X/2VgWf9qZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2llXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2xnX/9pZFz/aGNc/2pl - Xf9rZl7/bGdf/2tmXv9rZl7/amVd/2plXf9qZV3/amVd/2plXf9rZl7/a2Ze/2llXf9pZFz/aWRc/2pm - Xv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9rZl7/bGdf/2xnX/9rZl7/a2df/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/amVd/2hjW/9mYVr/ZmJa/2lk - Xf9qZV3/aWVd/2plXf9qZV3/aWRc/2VgWf9lYVn/aGNb/2lkXP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9qZV3/amVd/2llXf9qZV7/YFxV/1JOSIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACUkYuheHNs/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Zf/2plXf9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/amVe/2tmXv9rZl7/aGNc/2ZhWv9nY1v/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2hj - XP9oY1v/aWRc/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVe/2lkXP9oY1v/aWRd/2tmXv9rZl7/ZmFa/2Vg - Wf9oY1z/amVd/2tmXv9rZl7/a2Ze/2plXv9oY1z/aGNb/2lkXP9pZV3/a2Ze/2tmXv9rZl7/amVd/2lk - Xf9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9qZV7/aWRc/2plXf9sZ1//bGdf/2pmXv9rZl7/amVe/2llXf9nYlr/Y19Y/2Vh - Wf9pZFz/aWVd/2lkXf9pZF3/aWVd/2djW/9kYFj/ZmFa/2djW/9pZF3/amVd/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9rZl7/aWRc/2llXf9pZV3/amVe/2NeVv9MSUOhAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAk5CJvHVxaf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2tmXv9rZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9nYlv/ZmFZ/2hjW/9rZ1//bGdf/2xnX/9pZF3/amVd/2tmXv9pZF3/aGNb/2lkXP9rZl7/a2Ze/2Rg - WP9kYFj/aGNb/2plXf9rZl7/a2Ze/2tmXv9qZV7/Z2Ja/2diW/9oY1v/Z2Nb/2plXf9rZl7/bGdf/2tm - Xv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/bGdf/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//aWRc/2hjW/9pZFz/a2Ze/2tmXv9pZV3/aWVd/2llXf9oZFz/ZGBY/2Ne - V/9kX1j/aGNb/2lkXf9pZF3/aWVd/2lkXP9nY1v/ZWBZ/2VgWf9mYVr/Z2Jb/2plXf9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2tmXv9rZl7/amVe/2plXf9qZV7/aWVd/2llXf9kX1f/TUpEvQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJCNhtZybWb/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVe/2tmXv9rZl7/bGdf/2xnX/9rZl7/amVd/2tmXv9rZl7/a2Ze/2plXf9rZl7/bGdf/2tm - Xv9oY1z/Z2Nb/2hjXP9qZV3/amVe/2plXf9rZl7/a2Ze/2lkXP9oZFz/aWRc/2hjXP9qZV3/a2Ze/2xn - X/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Zf/2lkXf9oY1z/aWRc/2tmXv9qZV3/Z2Jb/2ZiWv9nYlv/Z2Nb/2Ne - V/9jXlf/ZF9Y/2djW/9qZV3/amVd/2tmXv9qZV3/amVd/2plXf9oZFz/Z2Jb/2diW/9qZV3/bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/a2Zf/2tmXv9rZl7/amZe/2lkXf9oZFz/ZGBY/09MRdcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACQjIbxcGxk/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2plXf9qZV3/aWRc/2lkXP9pZFz/amZe/2tmXv9qZV3/amVd/2plXf9qZV3/amZe/2xn - X/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2tmX/9rZl7/bGdf/2tmXv9sZ1//a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVe/2tmXv9sZ1//aWRd/2VhWf9jXlf/ZGBY/2Vh - Wf9jXlf/Y15X/2RfWP9qZV3/a2df/2xnX/9sZ1//a2Ze/2xnX/9sZ1//a2Ze/2lkXP9mYlr/aWRc/2tm - Xv9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVd/2diW/9ST0jyAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAl5SP9nJuZv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9qZV3/a2Ze/2tm - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2tmXv9rZl7/bGdf/2xn - X/9sZ1//bGdf/2tmXv9qZV3/aWRc/2lkXP9oY1v/aGNb/2plXf9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xn - X/9rZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//amVe/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/amVe/2xnX/9sZ1//bGdf/2lkXP9kX1j/Y15X/2Ne - V/9kX1j/Y15X/2NeV/9lYFn/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/aWRc/2lk - XP9qZV7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVd/2plXv9pZFz/VFFK9gAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKShnM96dm//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9qZV3/aWRd/2llXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2tnX/9rZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9qZV3/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9pZFz/Z2Ja/2diW/9pZF3/amZe/2tmXv9rZl7/bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9rZl7/a2Ze/2plXf9sZ1//bGdf/2xnX/9qZl7/ZWBZ/2Ne - V/9jXlf/ZF9Y/2NeV/9jXlf/ZmFZ/2plXf9sZ1//a2Ze/2tmXv9qZV3/bGdf/2xnX/9sZ1//amVd/2lk - XP9oY1v/aWRd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWVd/2pmXv9rZl7/aGNb/1VR - S88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkoZx7j4yF/29qYv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/amVd/2ZhWv9mYlr/aGNc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Zf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZ1//a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/amVd/2djW/9oY1z/aWVd/2plXf9qZl7/a2Ze/2xn - X/9sZ1//a2Ze/2tmXv9sZ1//a2Ze/2tmXv9rZ1//a2Ze/2pmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xnX/9rZl7/aWVd/2llXf9qZV3/a2Ze/2xnX/9sZ1//amVd/2Vg - Wf9jXlf/Y19X/2NfV/9jXlf/Y15X/2ZiWv9pZV3/amVd/2lkXP9oZFz/aWRc/2tmXv9sZ1//a2Ze/2tm - Xv9pZFz/Z2Jb/2hjW/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pmXv9qZl7/a2Ze/2Rg - WP9cV1F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkY2HDKuppeWCfXf/bmlh/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9nYlv/Z2Jb/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tn - X/9rZl7/amVd/2pmXv9rZl7/bGdf/2xnX/9rZl7/amVe/2lkXf9nY1v/aGNb/2lkXP9pZFz/amVd/2tm - Xv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2df/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xnX/9rZl7/amZe/2llXf9qZV7/a2Ze/2tmXv9rZl7/a2Ze/2ll - Xf9mYVr/Y15X/2NeV/9jXlf/Y15X/2RfWP9pZF3/amVd/2lkXf9nYlv/ZmJa/2lkXP9rZl7/a2Ze/2tm - Xv9sZ1//a2Ze/2lkXf9nYlv/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmX/9rZl7/a2Ze/2ll - Xf9iXVblZWFZDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpp6I5q6ij74aDfP9ybmb/bWhg/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRd/2hkXP9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Zf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9sZ1//a2Ze/2plXf9qZV7/a2Ze/2tmX/9rZl7/amZe/2plXv9oY1z/ZmFa/2djW/9pZFz/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tmXv9qZV7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/bGdf/2tnX/9rZl7/a2Ze/2plXf9pZFz/amVd/2tmXv9rZl7/amVd/2lk - Xf9oY1v/ZWFZ/2RfWP9kX1j/Y15X/2NeV/9nYlv/a2Ze/2tmX/9rZl7/amVd/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/aGNc/2hkXP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bWhg/29q - Yv9qZV3vZWFaOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKPiSaxr6q+nZuV/4yI - gv+Cfnj/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/fnpz/315cv97d3H/fHhy/356c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9+eXL/fHdx/3t3cP98eHL/fnly/355 - cv9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/356c/9+enP/fHdy/3x4 - cv9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/fnpz/355 - cv99eXL/fnly/355cv99eHL/fXhy/355cv99eXL/fXly/314cv99eHL/e3dw/3l1bv96dm//e3dx/315 - cv9+eXL/fnpz/355cv9+eXL/fnpz/396c/9/enP/f3pz/396c/9+eXL/fnly/355cv9+eXL/fXhy/314 - cv9+eXL/fnly/355cv9+eXL/fnly/356c/9+enP/fXly/315cv97d3D/e3dw/315cv9+eXL/fnly/315 - cv98d3H/e3dw/3l1bv94dW7/eXVu/3dzbf93c23/e3dw/356c/9/enP/fnpz/356c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/3x4cf98eHH/fXhy/396c/9/enP/f3pz/396c/9+enP/gX11/4OA - ef9+e3TAb2tjJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmW - kSaTj4lii4iCfoqFf790bmb/b2lh/3BqYf9wamH/cGph/29pYf9vaWH/b2lh/29pYf9wamH/cGph/3Bq - Yf9wamH/cGph/29pYf9wamH/cGph/3BqYf9wamH/cGph/29qYf9uaGH/bGZf/2xnX/9sZ1//bGZf/2xm - X/9tZ2D/bmlg/29pYf9vaWH/b2lh/29pYf9taGD/bWdg/29pYf9vaWH/b2lh/29pYf9vaWH/cGph/29p - Yf9wamH/b2lh/29pYf9vaWH/b2lh/29pYf9vaWH/b2lh/29pYf9vaWH/cGph/29pYf9vaWH/b2lh/29p - Yf9vaWH/b2lh/29pYf9tZ2D/bGdf/2xnX/9tZ2D/bmlg/25pYP9vaWH/b2lh/29pYf9vaWH/bmlg/29p - Yf9vaWH/b2lh/29pYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3Bq - Yf9wamH/b2lh/21nX/9sZ1//bmhg/29pYf9wamH/cGph/3BqYf9wamH/b2lh/25oYP9taGD/bmhh/29p - Yf9vamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3Bq - Yf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3Bq - Yf9wamH/cGph/29pYf9uaGD/bWhg/21nX/9taGD/bmlg/3BqYf9wamH/cGph/3BqYf9vamH/b2lh/21o - YP9uaGH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3Bq - Yf9vamH/b2lh/29qYf9vaWH/b2lh/29pYf9vamH/b2ph/29pYf9uaWH/b2lh/25pYf9taGD/bWhg/25p - Yf9vamH/b2ph/29qYf9vamH/b2lh/25pYf9vaWH/cGph/3BqYf9wamH/b2ph/29qYf9vamH/b2ph/29p - Yf9vaWH/b2ph/3BqYf9wamH/cGph/29qYf9vamH/b2ph/29qYf9vaWH/bmhh/25pYf9vaWH/b2ph/29q - Yf9vaWH/bmlh/25oYP9tZ1//bWdf/25oYP9tZ1//a2Zf/21nYP9uaGD/b2lh/29qYf9wamH/cGph/3Bq - Yf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9vaWH/b2lh/29qYf9wamH/cGph/21nX/+EgHl/hIB5foN/ - eGJ+enQmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABybWV/SUM4/0E6L/9BOi//QTov/0A5Lv8/OS3/QDkt/0A5Lf9AOS3/QTov/0E6 - L/9BOi//QTov/0E6L/9BOi7/QDou/0E6L/9BOi//QTov/0E6L/9BOi//QDkt/z43LP89Niv/PDUr/zw1 - K/88NSv/Pjcs/z84Lf8/OCz/QDkt/0A5Lf9AOS3/Pzgt/z43LP8+OCz/QDkt/0A5Lf9AOS7/QDku/0A5 - Lv9AOS3/QTou/0E6L/9AOS3/Pzgt/0A5Lf9AOS3/QDkt/0A5Lf9AOS3/QDkt/0A5Lf9AOS3/QDkt/0A5 - Lf9AOS3/QDkt/0A5Lf8+Nyz/OzQq/zkyKP86Myn/OzUq/z43LP8+Nyz/Pzgt/0A5Lf9AOS3/Pzkt/z84 - Lf9AOS3/QDkt/0A5Lf9BOi7/QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6Lv8+Nyz/PDYr/z84Lf9BOi7/QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0A5 - Lv9AOS3/QDkt/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6Lv8/OCz/PTYs/z02K/89Niz/Pjgs/z84Lf9AOS7/QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTou/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/8+OCz/Pzgt/0A5Lv9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTou/z84Lf8+Niz/PTYs/0E6Lv9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/87NSr/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAc29of09JQP9HQDb/R0A2/0ZANv9FPzX/RT81/0U+Nf9GQDX/RkA1/0hB - Nv9IQTb/SEE3/0hBN/9IQTf/R0E2/0dANv9IQTb/SEE3/0hBN/9IQTf/SEE3/0hBNv9GPzX/RD40/0M9 - M/9EPjT/RT81/0U/Nf9GPzX/Rj81/0Y/Nf9HQDX/R0A2/0dANv9GPzX/RT41/0dANf9HQTb/R0A2/0dA - Nv9HQDX/RkA1/0Y/Nf9HQDX/R0A2/0dANv9IQTb/R0A2/0dANv9HQDb/Rj81/0Y/Nf9GQDb/R0A2/0dA - Nv9HQDb/R0A2/0dANf9GPzX/Qz0z/0A7Mf8/OTD/QDox/0I8Mv9FPjT/RT81/0Y/Nv9GPzb/RkA2/0Y/ - Nv9GPzb/R0A1/0dANv9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/R0A2/0Y/Nf9HQDb/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9HQTb/Rj81/0dANv9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTb/SEE3/0hBN/9HQDb/RT40/0Q+NP9GQDX/R0A2/0dANv9IQTb/SEE2/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTb/R0A2/0hBNv9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/RT80/0Q+M/9FPzX/SEE2/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9HQDb/RD40/0Q+NP9IQTb/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/QTsy/wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRvaX9VUEf/TUc+/01HPv9NRz7/TUc+/01HPv9MRT3/SkQ7/0tF - PP9MRj3/TUc+/09JP/9PST//T0k//01HPv9LRTz/TEY8/05IPv9PST//T0k//09JP/9OSD//TUg+/0xG - Pf9LRDv/S0U8/0xGPf9MRj3/S0U8/0tEPP9LRjz/TEY9/01HPv9OSD7/TUc+/01HPv9NSD7/Tkg+/09J - P/9OSD//TEY9/0tEO/9KRDv/TEc9/01HPv9OSD7/Tkg+/05IPv9OSD7/TUc9/0tFO/9LRTv/TEY8/05I - Pv9OSD7/Tkg+/01IPv9NRz7/TUc9/0pEO/9IQzn/SUM6/0pEO/9KRDv/S0U8/01HPf9NRz3/TUc9/01H - Pf9NSD7/TUc9/0xGPP9OSD7/T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//01HPf9LRTz/Tkg+/09JP/9PST//T0k//09JP/9OST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09J - P/9PST//Tkg+/01IPv9OSD7/T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//05I - Pv9NRz3/S0U8/0tGPP9NRz3/Tkg+/01HPv9OSD7/T0k//09JP/9PST//T0k//09JP/9PST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//05IPv9OSD7/T0k//09JP/9PST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//01HPf9LRTv/SUM6/0tFPP9NSD7/T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//TUc+/0tFPP9NRz3/T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//0dC - Of8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwa2R/W1VM/1JNQ/9STUP/Uk1E/1NNRP9UTkT/U05E/1BL - Qf9RS0H/UEtB/1JNQ/9VT0X/VU9F/1VPRf9TTUT/UEtC/1NNRP9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9TTUP/UUtC/1FMQv9RTEP/UUxC/1BLQf9PS0D/UUtC/1JNQ/9TTkT/U01D/1JNQ/9STEP/Uk1D/1RO - RP9UTkT/U01E/1JNQ/9RTEL/UEtB/1JMQ/9STUP/U01E/1NNQ/9STUP/U05E/1NNQ/9STUP/UkxD/1NN - Q/9VT0X/VU9F/1VPRf9TTkT/VE5E/1NNRP9STEP/Uk1D/1NNQ/9STEP/UkxD/1FLQv9STEL/Uk1D/1FM - Qv9RTEL/UkxC/1JMQv9STUP/U01E/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1RORP9STUP/Uk1D/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1NO - RP9RTEH/T0pA/01IPv9OSUD/U01D/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1RORP9STkT/UUxC/01IPv9OST//UUxC/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VE5E/1FMQv9RTEL/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9MSD7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcWxlf15ZUP9XUUj/V1FJ/1lTSv9aVEv/W1VM/1pV - TP9YUkr/V1FJ/1ZQSP9YUkn/WlRL/1tVTP9aVUv/WlVL/1lTSv9aVUv/W1VM/1tVTP9bVUz/W1VM/1tV - TP9ZVEv/WVNK/1hSSv9XUkn/WVNK/1dRSf9WUEj/VlFI/1hSSf9YUkr/WVNK/1hSSf9WUEj/U05G/1NP - Rv9YUkn/WVNK/1pUS/9ZU0r/WVNK/1hSSv9ZU0r/WVNK/1lTSv9YUkn/WFJJ/1hTSv9ZVEv/WVRL/1lU - S/9ZU0r/WlRL/1pUS/9YUkn/WlVL/1tVTP9bVUz/WlVM/1tVTP9bVUz/WVRL/1lTSv9ZU0r/WVNK/1dS - Sf9WUEj/VVBH/1VQR/9WUUj/WVNK/1pVS/9bVUz/W1VM/1tVTP9bVUz/W1VM/1pVS/9ZU0r/WlVL/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/WlVL/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9aVUv/WVNK/1hSSf9YUkr/WVNK/1pVS/9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1pVS/9YUkr/WFJK/1hSSf9TTkb/Uk5F/1ZQ - SP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1lUS/9XUUn/WFNK/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/Uk1F/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNvaH9gWlP/W1ZN/1tVTP9bVk3/XlhP/2Ba - Uf9gWlH/X1pQ/11YTv9bVUz/XVdO/15YT/9eWU//X1lQ/15ZT/9dWE7/X1lQ/2BaUf9gWlH/YFpR/2Ba - Uf9fWlD/XlhP/11YTv9dWE7/XVhP/11YTv9dWE7/XlhP/15YT/9eWE//XVhP/15YT/9dWE//WlVM/1dS - Sv9VUEn/WlRM/11YTv9fWVD/XlhP/1xWTv9cV07/XVdO/15YT/9eWE//XFZN/1pVTP9cVk3/XVhO/19Z - UP9eWVD/XVhP/15ZT/9eWE//XFZN/19ZUP9gWlH/X1pR/19aUP9gWlH/X1pQ/15ZUP9eWE//XVhP/15Y - T/9cV07/W1ZN/1tWTf9cVk3/XVhO/19ZUP9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/XVhO/15Z - UP9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/19aUP9fWlD/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9fWVD/XVhP/11YT/9fWVD/XVhP/15Y - T/9eWVD/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9dWE//XVdO/19Z - UP9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/1dRSf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2cmt/ZF9X/2BbUv9fWlH/XllQ/2Fc - VP9jXlX/Y15V/2NeVf9iXVT/XllR/2BaUv9hXFP/YFtS/2FbU/9hXFP/X1pR/2JcVP9jXlX/Y15V/2Ne - Vf9jXlX/Y11V/2FcU/9fWlL/X1pS/2FcU/9hXFP/YVxT/2FcU/9hXFP/YlxU/2JcVP9iXVT/Yl1U/2Ba - Uv9cV0//WlRN/11YUP9hW1L/YlxU/2FcU/9fWlH/XllQ/11YUP9gW1L/YVtT/19aUv9cV0//XFdO/19Z - Uf9hXFP/YlxT/2FcU/9fWlH/XllR/19ZUf9iXFT/Y15V/2NdVf9jXVX/Y15V/2NeVf9jXVX/YVtT/2Bb - U/9hXFP/YVxT/2FcU/9hW1P/YVtT/2BbU/9iXVT/Y15V/2NdVf9hXFP/Y11V/2NeVf9jXlX/Y15V/2Jd - VP9iXVT/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXVX/Yl1U/2Nd - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2JdVP9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXVX/YFpS/2Bb - Uv9jXVX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9aVU3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAendwf2tmXv9lYFj/ZWFY/2Zh - WP9nYln/Z2JZ/2diWf9nYln/ZmFZ/2NfVv9kX1b/ZF9W/2JdVP9hXVT/YFxT/2JdVP9kX1f/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9mYVj/ZF9X/2VgV/9nYln/Z2JZ/2VgV/9lYFf/ZWBX/2ZhWP9mYVj/ZmFZ/2Zh - WP9lYFj/ZF9X/2VgV/9mYVj/ZmFZ/2ZhWP9kX1j/ZF9W/2NeVf9hXVT/YV1U/2FdU/9hXVT/XVlQ/11Z - UP9hXFP/ZWBY/2ZhWf9lYFf/Y15V/2JdVP9iXVX/ZWBY/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2Vg - WP9kX1f/ZF9X/2RfV/9lYFj/ZmFZ/2VgWP9kX1f/ZWBY/2VgWP9kX1b/ZF9X/2ZhWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Yl5V/2Fd - VP9kX1f/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/ZmFZ/2VgWP9mYVn/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9mYVn/ZWBX/2Jd - Vf9kX1b/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/XVhQ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH96dH9xbGT/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/aGNb/2djW/9kX1f/YFxU/19bU/9jXlb/Z2Jb/2lk - XP9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9oY1v/Z2Nb/2hjW/9pZFz/amVd/2pl - Xf9oY1v/Z2Nb/2hjW/9qZV3/amVd/2plXf9qZV3/amVd/2hjXP9oY1v/ZmFZ/2NeV/9iXVX/Y15X/2Jd - Vv9jX1f/ZmJa/2lkXP9qZV3/aGNb/2ZhWv9kX1j/ZmFa/2hjW/9qZV3/amVd/2plXf9pZFz/aWRc/2pl - Xf9pZFz/aGNb/2ZhWv9mYlr/aGNb/2lkXP9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2diW/9pZF3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2Rf - WP9hXVX/ZWBY/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2hjW/9nYlr/aGNb/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/aGNc/2di - Wv9lYVn/Z2Jb/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2BbVP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBfHZ/cm1m/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/Z2Jb/2JeV/9fW1P/Y15X/2lk - Xf9qZV7/a2Ze/2plXf9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tm - Xv9rZl7/aWRc/2hkXP9pZFz/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9pZV3/aWVd/2lkXP9jX1f/YV1V/2Nf - V/9kYFj/aGNb/2lkXP9rZl7/amVd/2diWv9kX1j/Yl5X/2djW/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2plXf9oY1v/Z2Ja/2hjW/9pZF3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9pZFz/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9oZFz/a2Ze/2tm - Xv9mYlr/ZF9Y/2hjW/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9pZF3/aGNb/2lk - XP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/Z2Nb/2hj - W/9pZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pl - Xf9pZFz/aWRc/2pmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9hXVX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgn13f3Nu - Zv9sZ1//bGdf/2tmX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9oZFz/ZGBY/2Vg - Wf9qZV3/a2Ze/2xnX/9qZV3/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2plXv9rZl7/a2Ze/2xnX/9sZ1//a2Ze/2plXf9qZV3/amVd/2plXf9qZV7/ZmFa/2Jd - Vv9kYFj/aGNb/2plXf9qZV7/a2Ze/2plXf9nYlr/Y15X/2RgWP9oY1z/a2Ze/2xnX/9sZ1//a2Ze/2xn - X/9sZ1//a2Ze/2plXf9qZV3/aWRc/2hjXP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9sZ1//aWRc/2ZhWf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl//aWVd/2pl - Xf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//aWRc/2Vg - WP9lYFn/aWRc/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//Yl1W/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJ+ - eH9zbmb/bGdf/2xnX/9qZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9qZV3/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2plXf9oY1v/Z2Ja/2hkXP9pZFz/amVd/2hj - W/9kX1j/ZWBZ/2hjW/9pZV3/amVd/2tmXv9rZl7/aGRc/2VgWP9lYFn/aGNb/2tmXv9sZ1//a2Ze/2tm - Xv9sZ1//bGdf/2tmXv9qZV3/amVd/2lkXP9nY1v/aWRd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2lkXP9qZV3/a2Ze/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2tmXv9pZFz/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lk - XP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/a2Zf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2ll - Xf9mYVn/ZWFZ/2diW/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xv9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2JdVv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACBfXd/cm1l/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9rZl7/ZmJa/2ZhWv9nYlv/aWRd/2pl - Xf9qZV3/Z2Jb/2VhWf9mYVn/aGNc/2plXf9rZl7/bGdf/2tmXv9qZV3/amVd/2tmXv9sZ1//a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//amVd/2plXf9oY1z/ZmFZ/2djW/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9lYVn/aGNc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2pl - Xf9qZV3/aWRd/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9pZF3/Z2Nb/2hjW/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9iXVb/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAgHx2f3BrZP9qZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//amVd/2lkXf9pZFz/a2Ze/2xnX/9sZ1//bGdf/2lkXf9nYlr/Z2Jb/2pl - Xf9qZV7/amVd/2lkXP9mYVr/ZmFZ/2diW/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/bGdf/2xnX/9sZ1//bGdf/2plXf9qZV7/aWRc/2ZhWv9oY1v/amVd/2tmXv9sZ1//bGdf/2xn - X/9rZl7/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9pZF3/ZF9Y/2VgWf9qZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/aWRc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pl - Xf9pZFz/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//aWRd/2RgWP9jX1j/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//Yl1W/wAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAH98dX9rZ1//Z2Ja/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV7/amVd/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pmXv9oZFz/ZmJa/2plXf9sZ1//bGdf/2xnX/9rZl7/aWRc/2hj - XP9qZV3/amVe/2plXf9pZFz/Z2Jb/2ZhWv9oY1v/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/amVd/2lkXf9oZFz/aWRc/2lkXP9qZV3/amVd/2pl - Xf9qZV3/aWRd/2diW/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVe/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVd/2RfWP9lYFj/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lkXP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9pZFz/aGNc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2plXf9lYVn/Y19X/2hjXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2JdVv8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACAfHZ/bWlh/2hjXP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/ZmFa/2Fc - Vf9lYVn/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9oY1v/aWRc/2plXf9rZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV7/aGRc/2hjW/9rZl7/bGdf/2xnX/9sZ1//bGdf/2tm - Xv9qZV3/amVd/2plXv9qZV3/amVd/2plXf9pZFz/aWRd/2plXf9qZV3/amVd/2plXf9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2plXv9qZV3/amVd/2plXf9qZV3/aWRc/2lk - XP9qZV3/amVd/2hjXP9kYFj/Z2Jb/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVd/2diW/9oY1v/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9mYVr/aGNb/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9pZFz/Z2Ja/2diWv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/aGNb/2ZhWv9oY1v/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9iXlb2AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAgn13f3FsZf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amZe/2Rg - WP9eWVH/YFtU/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9oY1z/ZmFa/2hjW/9qZV3/amZe/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lkXP9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2plXf9qZV3/a2Ze/2xnX/9sZ1//a2Ze/2tmXv9qZV3/amVd/2plXf9pZFz/amVd/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/amVd/2plXf9qZV3/amVe/2plXf9qZV3/aWRc/2lk - XP9pZFz/a2Ze/2plXf9mYVr/Yl1W/2VhWf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2hjW/9mYlr/Z2Nb/2tnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZ1//aGRc/2llXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVd/2diWv9nY1v/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/Y15XzwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJ+eH9ybWX/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9qZV3/ZmFa/2VhWf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/aWVd/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/amVd/2pl - Xf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aGNc/2di - W/9oY1v/aWRc/2tmXv9rZl7/aGNb/2VgWf9mYVn/aGNc/2tnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9oY1z/aGNb/2hjXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/aWRd/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9pZFz/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2Zh - WXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCfnh/cm1m/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2plXf9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/aWRd/2lkXf9pZF3/amVd/2lk - XP9oY1v/aGNb/2lkXP9qZV3/amVd/2lkXP9oY1z/aGNb/2plXv9rZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//aWVd/2lkXP9qZV3/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2hk - XOVrZl8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg354f3NuZv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/aGNb/2hjXP9pZFz/aWRc/2lk - XP9qZV3/aWRc/2lkXP9oZFz/aWRc/2lkXP9nYlr/aGNb/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9qZV3/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2llXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//cGtj/3Br - Y+9sZ185AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIN/eX9ybWX/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRc/2pl - Xf9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVe/2ZhWv9nYlv/aWRc/2hk - XP9pZFz/a2Ze/2plXf9pZFz/aWRc/2lkXP9pZFz/aWRd/2lkXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9vamL/d3Jr/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3h0bP95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3h0bP94c2z/eXRt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3p1bv+CfXf/jIiC/4yJ - gsB1cWkmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDf3l/cWxl/2tmXv9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lk - Xf9qZl7/a2Ze/2tmXv9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9nYlv/ZmJa/2lk - XP9qZV3/a2Ze/2tmXv9rZl7/amVd/2plXf9qZV3/amVd/2plXf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//amVe/2hjW/9pZF3/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/21oYP91cGn/iYV+25GNh3+YlI9/mZWQf5mVkH+ZlpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+ZlpF/mZaRf5mWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+ZlpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+ZlpF/mZaQf5mWkH+ZlpB/mZaQf5mVkH+ZlpB/mZaQf5mW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5mWkX+YlI9+lpKMYo+L - hCYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhIB6f3FsZf9qZV3/aWRd/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/bGdf/2xnX/9rZl7/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2lk - XP9qZV3/bGdf/2xnX/9sZ1//bGdf/2plXf9qZV3/amVd/2plXf9pZFz/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9oY1z/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2lkXP9qZV3/bGdf/3Vwaf+Df3j0h4N8f3t2bwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIeDfH9zb2f/a2Ze/2tm - Xv9pZFz/aWRc/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Zf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9qZV3/amVd/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2plXf9oY1v/aWRc/2plXf9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//aWRc/2hjXP9pZV3/bGdf/2xn - X/9sZ1//a2Ze/2plXf9uaWH/enVu/4yIgvCOi4WQfXlyGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOi4V3fHdw/2xn - X/9sZ1//a2Ze/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVd/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9qZV3/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV7/aWRd/2tmXv9rZl7/bGdf/2tm - Xv9qZV3/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9pZF3/Z2Ja/2lkXP9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/aGNc/2lk - XP9rZl7/bWhg/3NvZ/+BfXb/ko+K0pKOiGZ/e3UMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmpeSUI6K - hP9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9pZV3/aWRc/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV7/amVd/2tmXv9sZ1//a2Ze/2tmXv9rZ1//bGdf/2xn - X/9sZ1//amVd/2lkXP9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/aGNb/2VgWf9mYVn/aGNb/2pl - Xf9qZV3/aWRc/2lkXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/aWRc/2lkXP9qZV7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/21o - YP9ybmb/gX12/5SQi/OcmZSni4eBPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJSQ - iwyuq6fudG9o/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9nY1v/ZF9Y/2VgWf9oZFz/amVe/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2plXf9pZFz/aGNb/2lkXP9qZV3/bGdf/2xnX/9sZ1//bGdf/2hjW/9iXVb/YVxV/2Rf - WP9qZV3/aWRc/2lkXP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/aWRd/2lkXP9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/bGdf/29qYv90b2j/fXly/46K - hf+bmJPmo6Gcn4+Lhk6EgHkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAuLaycpqXkv9vamL/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9nYlv/YFxU/15aUv9jX1f/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9qZV3/aWRd/2lkXP9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/ZF9Y/2Fd - Vv9kX1j/aWRc/2plXf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2ZiWv9nYlv/amVd/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9taGD/cGtk/3Vwaf96dW7/hoJ8/5SRi/+fnJfhqKahrJKO - iWmTkIkoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJuYkwLPzcumnpuW/3RwaP9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9rZl7/YV1W/11ZUf9dWVH/Yl1W/2hjXP9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2lkXP9nYlv/amVd/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Zf/2di - Wv9lYFn/ZmFa/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXv9mYVr/Z2Jb/2xo - YP9xbGT/c29n/3Zxav94c2z/f3t0/4yIgf+UkIv/m5iT+qSinNeuq6epop+bgZaTjU6Vko0YAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAjIiCAcLBvnO8urbvmpeS/4WBe/96dm7/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf93c2z/dXFq/3Zxa/94dGz/eHNs/29rZf9saWL/bWlj/3NvaP94dGz/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/d3Jr/3Nvaf90cGr/dnJr/3l1 - bf95dW3/eXVt/3l0bf93c2v/dXFq/3h0bP95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf92cmv/dXBq/3Zya/95dG3/fHdw/4N/eP+Ggnv/jImC/5CNh/+PjYb/kI2H/5aTjv+XlI//mZaS/5uY - k/+hn5rvqaei2LCuqcKzsKyqpaKdipiWkGybl5JImpaRKYqGgAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJmTCKyppU2koZxynZqVf5uXkn+alpF/mpaRf5qW - kX+alpF/mpaRf5mWkX+ZlpF/mJWQf5eUj3+XlI9/l5SPf5eTjn+Wko1/lpKNf5aTjn+Xk45/l5SPf5iU - j3+YlZB/mZWQf5mWkX+alpF/mpaRf5qWkX+alpF/mpaRf5mWkX+ZlZB/mZWQf5iVkH+XlI9/l5SPf5eU - j3+ZlZB/mZWQf5mVkH+ZlZB/mZWQf5mVkH+ZlZB/mZWQf5mVkH+ZlZB/mZWQf5mWkH+ZlpB/mZWQf5mV - kH+YlZB/mJSPf5eUj3+XlI9/mJSPf5eUj3KbmJRmm5iTZZ6alUygnZhMoJ2YTJ6blkCfnJcznZqVJJ2a - lRmLiIIGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA//////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/gA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf8AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+AAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAB//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///wAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//8AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - Af//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//4AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - Af//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAA//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//gAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AH/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAB//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//gAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AB/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAf+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+AAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/AAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/+AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAf//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//8AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH///A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - B///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAf//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///wAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAH///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAB///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH///AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///wAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAH///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//8AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH///A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - D///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAH///8AAAAAAAAAAAAAAAAA/////////////////////////wAAAAAAAAAAAAAAAAP////////// - ///////////////AAAAAAAAAAAAAAAAD/////////////////////////8AAAAAAAAAAAAAAAB////// - ////////////////////wAAAAAAAAAAAAAAAf//////////////////////////gAAAAAAAAAAAAAAf/ - /////////////////////////+AAAAAAAAAAAAAAf///////////////////////////8AAAAAAAAAAA - AA/////////////////////////////8AAAAAAAAAAAf//////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////8yNzAzOTg= - - - \ No newline at end of file diff --git a/PROMS/Sync/SyncMany/sync.ico b/PROMS/Sync/SyncMany/sync.ico deleted file mode 100644 index 25da3cb6..00000000 Binary files a/PROMS/Sync/SyncMany/sync.ico and /dev/null differ diff --git a/PROMS/Sync/Thumbs.db b/PROMS/Sync/Thumbs.db deleted file mode 100644 index ac1e1a7f..00000000 Binary files a/PROMS/Sync/Thumbs.db and /dev/null differ diff --git a/PROMS/Sync/frmSync.cs b/PROMS/Sync/frmSync.cs deleted file mode 100644 index dcb91903..00000000 --- a/PROMS/Sync/frmSync.cs +++ /dev/null @@ -1,535 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using SevenZip; - -namespace Sync -{ - public partial class frmSync : Form - { - private List _CheckedOut; - private bool IsLoading = false; - public frmSync() - { - InitializeComponent(); - } - private void LoadSettings() - { - if (Properties.Settings.Default["Location"] != null) - Location = Properties.Settings.Default.Location; - if (Properties.Settings.Default["Size"] != null) - Size = Properties.Settings.Default.Size; - if (Properties.Settings.Default.DevelopmentFolder != "") - tbDevelopment.Text = Properties.Settings.Default.DevelopmentFolder; - if (Properties.Settings.Default.SourceSafeFolder != "") - tbSourceSafe.Text = Properties.Settings.Default.SourceSafeFolder; - if(Properties.Settings.Default.MailBoxDevelopmentFolder != "") - tbMailBox.Text = Properties.Settings.Default.MailBoxDevelopmentFolder; - if (Properties.Settings.Default.MailBoxSourceSafeFolder != "") - tbSSMailBox.Text = Properties.Settings.Default.MailBoxSourceSafeFolder; - } - private void frmSync_Load(object sender, EventArgs e) - { - LoadSettings(); - Setup(); - } - private void Setup() - { - // Setup Browse Buttons - btnBrwsDev.Tag = this.tbDevelopment; - btnBrwsSS.Tag = this.tbSourceSafe; - btnBrwsMail.Tag = this.tbMailBox; - btnBrwsSSMail.Tag = this.tbSSMailBox; - - } - private void btnBrowse_Click(object sender, EventArgs e) - { - TextBox tb = (TextBox)((Button)sender).Tag; - fbd.SelectedPath = tb.Text; - if (fbd.ShowDialog() == DialogResult.OK) - tb.Text = fbd.SelectedPath; - } - private void ClearResults() - { - _CheckedOut = new List(); - dgv.DataSource = null; - Application.DoEvents(); - } - private void FindCheckedOut(DirectoryInfo di) - { - FindCheckedOut(di.GetFiles()); - FindCheckedOut(di.GetDirectories()); - } - private void FindCheckedOut(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindCheckedOut(di); - } - private void FindCheckedOut(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindCheckedOut(fi); - } - private void FindCheckedOut(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (fi.Name.ToLower().EndsWith("sln")) return; - if (fi.Name.ToLower().EndsWith("csproj")) - { - // Find files that have been added to the new Project - List compileList = GetCompileList(fi.FullName); - FileInfo fi1csproj = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if (fi1csproj.Exists) - { - List compileList1 = GetCompileList(fi1csproj.FullName); - CompareLists(compileList, compileList1, fi, fi1csproj); - } - return; - } - if (fi.Name.ToLower().EndsWith("licx")) return; - FileInfo fi1 = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if ((fi1.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly) - AddToResults(fi, fi1); - } - - private void CompareLists(List compileList, List compileList1, FileInfo fi, FileInfo fi1) - { - // If anything is in compileList1 and not in CompileList add it to the results - foreach (string filename in compileList1) - if (!compileList.Contains(filename)) - AddToResults(fi, fi1, filename); - } - private void AddToResults(FileInfo fi, FileInfo fi1, string filename) - { - FileInfo newfi = new FileInfo(fi.DirectoryName + "/" + filename); - FileInfo newfi1 = new FileInfo(fi1.DirectoryName + "/" + filename); - if(!newfi.Exists)AddToResults(newfi, newfi1); // Only add if the file does not exist - } - private List GetCompileList(string fileName) - { - List retval = new List(); - XmlDocument doc = new XmlDocument(); - doc.Load(fileName); - XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); - foreach (XmlAttribute attrib in doc.DocumentElement.Attributes) - if (attrib.Name == "xmlns") - nsmgr.AddNamespace("ns", attrib.Value); - XmlNodeList xl = doc.DocumentElement.SelectNodes(@"//ns:Compile/@Include",nsmgr); - foreach (XmlAttribute xa in xl) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:None/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - if(xa.Value.ToUpper().EndsWith("SQL")) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:Content/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - if (xa.Value.ToUpper().EndsWith("DLL")) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:Content/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - if (xa.Value.ToUpper().EndsWith("XML")) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:EmbeddedResource/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - if (!xa.Value.ToUpper().EndsWith("LICX")) - retval.Add(xa.Value); - return retval; - } - private void AddToResults(FileInfo fiSS,FileInfo fiDev) - { - FileCompare fc = new FileCompare(fiDev, fiSS); - //if(!_OnlyContentDifferent || (fc.Different && (fc.DevModified != null))) - if (!_OnlyContentDifferent || (fc.Different)) - _CheckedOut.Add(fc); - //if (tbResults.Text == "") tbResults.Text = "Found:"; - //tbResults.Text += "\r\n" + fiDev.FullName + " - " + ((fiDev.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly ? "" : "ReadOnly"); - } - private void ClearMailBox() - { - DeleteFolder(new DirectoryInfo(tbMailBox.Text)); - DeleteFolder(new DirectoryInfo(tbSSMailBox.Text)); - } - private void DeleteFolder(DirectoryInfo directoryInfo) - { - if (directoryInfo.Exists) - { - AdjustAttributes(directoryInfo); - directoryInfo.Delete(true); - } - } - private void AdjustAttributes(DirectoryInfo directoryInfo) - { - foreach (DirectoryInfo di in directoryInfo.GetDirectories()) - AdjustAttributes(di); - foreach (FileInfo fi in directoryInfo.GetFiles()) - AdjustAttribute(fi); - } - private void AdjustAttribute(FileInfo fi) - { - fi.Attributes &= (fi.Attributes ^ FileAttributes.ReadOnly);// Turn-Off ReadOnly Attribute - fi.Attributes &= (fi.Attributes ^ FileAttributes.Hidden);// Turn-Off Hidden Attribute - } - private void frmSync_FormClosing(object sender, FormClosingEventArgs e) - { - Properties.Settings.Default.Location = Location; - Properties.Settings.Default.Size = Size; - Properties.Settings.Default.DevelopmentFolder = tbDevelopment.Text; - Properties.Settings.Default.SourceSafeFolder = tbSourceSafe.Text; - Properties.Settings.Default.MailBoxDevelopmentFolder = tbMailBox.Text; - Properties.Settings.Default.MailBoxSourceSafeFolder = tbSSMailBox.Text; - Properties.Settings.Default.Save(); - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - private void clearToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearMailBox(); - } - private void buildToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearMailBox(); - if (_CheckedOut == null) - checkedOutToolStripMenuItem_Click(sender, e); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) - { - fc.MoveDevToMailBox(tbDevelopment.Text, tbMailBox.Text); - fc.MoveSSToMailBox(tbSourceSafe.Text, tbSSMailBox.Text); - } - } - BuildZipOfMailBox(tbMailBox.Text); - } - private void BuildZipOfMailBox(string mailbox) - { - SevenZipCompressor.SetLibraryPath(Application.StartupPath + @"\7z.dll"); - SevenZipCompressor cmpr = new SevenZipCompressor(); - cmpr.PreserveDirectoryRoot = true; - string zipName = string.Format("{0} To SS {1}.7z", mailbox, DateTime.Now.ToString("yyyyMMdd HHmm")); - cmpr.CompressDirectory(mailbox, zipName, "*.*", true); - MessageBox.Show(string.Format("{0} created!", zipName), "Mailbox Zip Created", MessageBoxButtons.OK, MessageBoxIcon.Information); - - //if (System.IO.File.Exists(@"c:\program files\7-zip\7z.exe")) - //{ - // string args = string.Format(@"a -t7z ""{0} To SS {1}.7z"" ""{0}\*.*"" -r", mailbox, DateTime.Now.ToString("yyyyMMdd HHmm")); - // System.Diagnostics.Process p = System.Diagnostics.Process.Start(@"c:\program files\7-zip\7z", args); - // p.WaitForExit(); - //} - //"c:\program files\7-zip\7z" a -t7z "C:\Development\MailBox\Proms To SS 20120424 1850.7z" "C:\Development\MailBox\Proms\*.*" -r - } - private void checkedOutToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindCheckedOut(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void syncAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - private void restoreUnchangedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if(!fc.Different || fc.DevModified == null) - fc.MoveToDevelopment(); - } - } - private void restoreSelectedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) fc.MoveToDevelopment(); - } - } - private void restoreAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - private List SelectedList - { - get - { - dgv.EndEdit(); - List fcList = new List(); - foreach (DataGridViewCell dgc in dgv.SelectedCells) - { - FileCompare fc = dgv.Rows[dgc.RowIndex].DataBoundItem as FileCompare; - if (fc != null && fcList.Contains(fc) == false) - fcList.Add(fc); - } - return fcList; - } - } - private void compareToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.FileName, fc.SSFileName); - } - } - private static void CompareOneFile(string fileDev, string fileSS) - { - Console.WriteLine("Compare {0} and {1}", fileDev, fileSS); - string progname = string.Empty; - if (System.IO.File.Exists(@"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe")) - progname = @"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe"; - if (System.IO.File.Exists(@"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe")) - progname = @"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe"; - // string cmd = string.Format("\"{0}\" -t \"{1}\" \"{2}\"", progname, fc.FileName, fc.SSFileName); - System.Diagnostics.ProcessStartInfo psi = - new System.Diagnostics.ProcessStartInfo(progname, string.Format(@" -t ""{0}"" ""{1}""", fileDev, fileSS)); - System.Diagnostics.Process prc = System.Diagnostics.Process.Start(psi); - } - private void restoreToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - fc.MoveToDevelopment(); - } - } - private void differentToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void SetColumnWidth() - { - IsLoading = true; - if (Properties.Settings.Default["Widths"] == null) - { - dgv.Columns[0].Width = 60; - dgv.Columns[1].Visible = false; - dgv.Columns[2].Width = 125; - dgv.Columns[3].Width = 125; - dgv.Columns[4].Width = 50; - dgv.Columns[5].Width = 500; - } - else - { - for (int i = 0; i < Properties.Settings.Default.Widths.Count; i++) - { - string sWidth = Properties.Settings.Default.Widths[i]; - if (sWidth == "Invisible") - dgv.Columns[i].Visible = false; - else - dgv.Columns[i].Width = int.Parse(sWidth); - } - } - dgv.Columns[1].Visible = false; - IsLoading = false; - } - private void FindDifferent(DirectoryInfo di) - { - FindDifferent(di.GetFiles()); - FindDifferent(di.GetDirectories()); - } - private void FindDifferent(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindDifferent(di); - } - private void FindDifferent(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindDifferent(fi); - } - private void FindDifferent(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (fi.Name.ToLower().EndsWith("sln")) return; - if (fi.Name.ToLower().EndsWith("csproj")) - { - // Find files that have been added to the new Project - List compileList = GetCompileList(fi.FullName); - FileInfo fi1csproj = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if (fi1csproj.Exists) - { - List compileList1 = GetCompileList(fi1csproj.FullName); - CompareLists(compileList, compileList1, fi, fi1csproj); - } - return; - } - if (fi.Name.ToLower().EndsWith("licx")) return; - FileInfo fiD = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - FileInfo fiS = fi; - // Only check Read-Only flag, other attributes are unimportant - if (fiS.LastWriteTimeUtc != fiD.LastWriteTimeUtc || (fiS.Attributes & FileAttributes.ReadOnly ) != (fiD.Attributes & FileAttributes.ReadOnly )) - AddToResults(fi, fiD); - } - private void dgv_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) - { - if (!IsLoading) - { - System.Collections.Specialized.StringCollection widths = new System.Collections.Specialized.StringCollection(); - foreach (DataGridViewColumn col in dgv.Columns) - widths.Add(col.Visible ? col.Width.ToString() : "Invisible"); - Properties.Settings.Default.Widths = widths; - Properties.Settings.Default.Save(); - } - } - private bool _OnlyContentDifferent = false; - private void contentDifferentToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - _OnlyContentDifferent = true; - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - _OnlyContentDifferent = false; - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void frmSync_LocationChanged(object sender, EventArgs e) - { - Rectangle rec = Screen.GetWorkingArea(this); - int newLeft = Left; - int newTop = Top; - if (Math.Abs(Left - rec.X) < 10) newLeft = rec.X; - if (Math.Abs(Top - rec.Y) < 10) newTop = rec.Y; - if (Math.Abs(rec.X + rec.Width - Right) < 10) newLeft = rec.X + rec.Width - Width; - if (Math.Abs(rec.Y + rec.Height - Bottom) < 10) newTop = rec.Y + rec.Height - Height; - if (newTop != Top || newLeft != Left) - Location = new Point(newLeft, newTop); - } - private void restoreReadOnlyToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ReadOnly) fc.MoveToDevelopment(); - } - } - private void listToClipboardToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - StringBuilder sb = new StringBuilder(); - int lenFolder = tbDevelopment.Text.Length; - string lastFolder = ""; - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) - { - FileInfo fi = new FileInfo(fc.FileName); - FileInfo fis = new FileInfo(fc.SSFileName); - string folder = fi.Directory.FullName.Substring(lenFolder + 1); - if (folder != lastFolder) - { - sb.Append(folder + ":\r\n"); - lastFolder = folder; - } - sb.Append((fis.Exists ? "" : " =>NEW") + "\t" + fi.Name + "\r\n"); - } - } - try - { - sb.Append("\r\nInternal Release:\r\n"); - sb.Append("\r\nExternal Release:\r\n"); - sb.Append("\r\nTesting Performed:\r\n"); - sb.Append("\r\nTesting Requirements:\r\n"); - Clipboard.Clear(); - Clipboard.SetText(sb.ToString()); - MessageBox.Show(sb.ToString(), "Copied to Clipboard", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - catch (Exception ex) - { - StringBuilder sb2 = new StringBuilder(); - string prefix = ""; - while (ex != null) - { - sb2.AppendLine(string.Format("{0}{1} - {2}",prefix, ex.GetType().Name, ex.Message)); - prefix += " "; - } - MessageBox.Show(sb2.ToString(), "Error saving Clipboard", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - private void dgv_MouseDown(object sender, MouseEventArgs e) - { - dgv.ClearSelection(); - DataGridView.HitTestInfo info = dgv.HitTest(e.X, e.Y); - if (info.RowIndex < 0) return; - dgv.CurrentCell = dgv[0, info.RowIndex]; - dgv.Rows[info.RowIndex].Selected = true; - } - - private void selectAllToolStripMenuItem_Click(object sender, EventArgs e) - { - if (_CheckedOut == null || _CheckedOut.Count == 0) - { - MessageBox.Show("Don't you really think you should get a list first!", "Hey Moron!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - return; - } - foreach (FileCompare fc in _CheckedOut) fc.ToProcess = true; - dgv.Refresh(); - } - - private void selectNoneToolStripMenuItem_Click(object sender, EventArgs e) - { - if (_CheckedOut == null || _CheckedOut.Count == 0) - { - MessageBox.Show("Don't you really think you should get a list first!", "Hey Moron!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - return; - } - foreach (FileCompare fc in _CheckedOut) fc.ToProcess = false; - dgv.Refresh(); - } - - private void compareSourceSafeToolStripMenuItem_Click(object sender, EventArgs e) - { - // Compare SS version with SS version from Mailbox - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.SSFileName, fc.SSFileName.Replace(tbSourceSafe.Text, tbSSMailBox.Text)); - } - } - - private void compareMailboxToolStripMenuItem_Click(object sender, EventArgs e) - { - // Compare MailBox version with Mailbox Source Safe version - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.FileName, fc.FileName.Replace(tbDevelopment.Text, tbSSMailBox.Text)); - } - } - } -} \ No newline at end of file diff --git a/PROMS/Sync/iSync-128x128.png b/PROMS/Sync/iSync-128x128.png deleted file mode 100644 index b6293d16..00000000 Binary files a/PROMS/Sync/iSync-128x128.png and /dev/null differ diff --git a/PROMS/Sync/iSync.ico b/PROMS/Sync/iSync.ico deleted file mode 100644 index af4a5cb4..00000000 Binary files a/PROMS/Sync/iSync.ico and /dev/null differ diff --git a/PROMS/Sync/sync.ico b/PROMS/Sync/sync.ico deleted file mode 100644 index 25da3cb6..00000000 Binary files a/PROMS/Sync/sync.ico and /dev/null differ diff --git a/PROMS/TestFlexibleMessageBox/App.config b/PROMS/TestFlexibleMessageBox/App.config deleted file mode 100644 index 8e156463..00000000 --- a/PROMS/TestFlexibleMessageBox/App.config +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/TestFlexibleMessageBox/Form1.Designer.cs b/PROMS/TestFlexibleMessageBox/Form1.Designer.cs deleted file mode 100644 index bf21894a..00000000 --- a/PROMS/TestFlexibleMessageBox/Form1.Designer.cs +++ /dev/null @@ -1,61 +0,0 @@ -namespace TestFlexibleMessageBox -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.button1 = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // button1 - // - this.button1.Location = new System.Drawing.Point(356, 224); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(75, 23); - this.button1.TabIndex = 0; - this.button1.Text = "button1"; - this.button1.UseVisualStyleBackColor = true; - this.button1.Click += new System.EventHandler(this.button1_Click); - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(519, 328); - this.Controls.Add(this.button1); - this.Name = "Form1"; - this.Text = "Form1"; - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button button1; - } -} - diff --git a/PROMS/TestFlexibleMessageBox/Form1.cs b/PROMS/TestFlexibleMessageBox/Form1.cs deleted file mode 100644 index 373b0e12..00000000 --- a/PROMS/TestFlexibleMessageBox/Form1.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Forms; -using JR.Utils.GUI.Forms; - -namespace TestFlexibleMessageBox -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - - private void button1_Click(object sender, EventArgs e) - { - string str = "Line 1"; - for (int i = 2; i < 100; i++) - str += string.Format("\nLine {0}", i); - FlexibleMessageBox.Show(str, "A long List",MessageBoxButtons.OK,MessageBoxIcon.Information); - } - } -} diff --git a/PROMS/TestFlexibleMessageBox/Form1.resx b/PROMS/TestFlexibleMessageBox/Form1.resx deleted file mode 100644 index 1af7de15..00000000 --- a/PROMS/TestFlexibleMessageBox/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/TestFlexibleMessageBox/Program.cs b/PROMS/TestFlexibleMessageBox/Program.cs deleted file mode 100644 index 897f9491..00000000 --- a/PROMS/TestFlexibleMessageBox/Program.cs +++ /dev/null @@ -1,22 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Linq; -using System.Threading.Tasks; -using System.Windows.Forms; - -namespace TestFlexibleMessageBox -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} diff --git a/PROMS/TestFlexibleMessageBox/Properties/AssemblyInfo.cs b/PROMS/TestFlexibleMessageBox/Properties/AssemblyInfo.cs deleted file mode 100644 index bf1ee411..00000000 --- a/PROMS/TestFlexibleMessageBox/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TestFlexibleMessageBox")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Windows User")] -[assembly: AssemblyProduct("TestFlexibleMessageBox")] -[assembly: AssemblyCopyright("Copyright © Windows User 2016")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("fc351bba-d426-46e0-9b08-d5a0accb51a7")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Build and Revision Numbers -// by using the '*' as shown below: -// [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/TestFlexibleMessageBox/Properties/Resources.Designer.cs b/PROMS/TestFlexibleMessageBox/Properties/Resources.Designer.cs deleted file mode 100644 index b032eccb..00000000 --- a/PROMS/TestFlexibleMessageBox/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestFlexibleMessageBox.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestFlexibleMessageBox.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/TestFlexibleMessageBox/Properties/Resources.resx b/PROMS/TestFlexibleMessageBox/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/TestFlexibleMessageBox/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/TestFlexibleMessageBox/Properties/Settings.Designer.cs b/PROMS/TestFlexibleMessageBox/Properties/Settings.Designer.cs deleted file mode 100644 index 1749ac5c..00000000 --- a/PROMS/TestFlexibleMessageBox/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.34209 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestFlexibleMessageBox.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/TestFlexibleMessageBox/Properties/Settings.settings b/PROMS/TestFlexibleMessageBox/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/TestFlexibleMessageBox/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/TestFlexibleMessageBox/TestFlexibleMessageBox.csproj b/PROMS/TestFlexibleMessageBox/TestFlexibleMessageBox.csproj deleted file mode 100644 index d5e34f01..00000000 --- a/PROMS/TestFlexibleMessageBox/TestFlexibleMessageBox.csproj +++ /dev/null @@ -1,94 +0,0 @@ - - - - - Debug - AnyCPU - {5C74DC42-BF5C-4064-8C6D-166351782846} - WinExe - Properties - TestFlexibleMessageBox - TestFlexibleMessageBox - v4.5 - 512 - - - AnyCPU - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - AnyCPU - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - Form - - - Form1.cs - - - - - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - {b22ce5ad-288c-44cd-8a22-b3bcf77b7161} - FlexableMessageBox - - - - - \ No newline at end of file diff --git a/PROMS/TestImageZip/Form1.Designer.cs b/PROMS/TestImageZip/Form1.Designer.cs deleted file mode 100644 index 050da71b..00000000 --- a/PROMS/TestImageZip/Form1.Designer.cs +++ /dev/null @@ -1,39 +0,0 @@ -namespace TestImageZip -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Text = "Form1"; - } - - #endregion - } -} - diff --git a/PROMS/TestImageZip/Form1.cs b/PROMS/TestImageZip/Form1.cs deleted file mode 100644 index 473fb999..00000000 --- a/PROMS/TestImageZip/Form1.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; - - -namespace TestImageZip -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - string imgfile = @"C:\16bit\Debug\WCNRO\ro\00-012.bmp"; - byte[] ab; - - using (FileStream fsIn = new FileStream(imgfile, FileMode.Open, FileAccess.Read, FileShare.Read)) - { - // Create an instance of StreamReader that can read characters from the FileStream. - BinaryReader r = new BinaryReader(fsIn); - ab = r.ReadBytes((int)fsIn.Length); - r.Close(); - fsIn.Close(); - // tst first time: - PreviewROImage pvROImg = new PreviewROImage(ab, "Test Zip"); - pvROImg.ShowDialog(); - - } - byte [] compress = ROImageInfo.Compress(ab); - byte[] decompress = ROImageInfo.Decompress(compress); - PreviewROImage pvROImg1 = new PreviewROImage(decompress, "Test Zip"); - pvROImg1.ShowDialog(); - } - } -} \ No newline at end of file diff --git a/PROMS/TestImageZip/Program.cs b/PROMS/TestImageZip/Program.cs deleted file mode 100644 index 88694e09..00000000 --- a/PROMS/TestImageZip/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace TestImageZip -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} \ No newline at end of file diff --git a/PROMS/TestImageZip/Properties/AssemblyInfo.cs b/PROMS/TestImageZip/Properties/AssemblyInfo.cs deleted file mode 100644 index 6ff38c5a..00000000 --- a/PROMS/TestImageZip/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TestImageZip")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TestImageZip")] -[assembly: AssemblyCopyright("Copyright © 2012")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ea4a0200-90d5-429c-a2dc-14c2d4f21500")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/TestImageZip/Properties/Resources.Designer.cs b/PROMS/TestImageZip/Properties/Resources.Designer.cs deleted file mode 100644 index d73a7303..00000000 --- a/PROMS/TestImageZip/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4223 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestImageZip.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestImageZip.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/TestImageZip/Properties/Resources.resx b/PROMS/TestImageZip/Properties/Resources.resx deleted file mode 100644 index 25a61211..00000000 --- a/PROMS/TestImageZip/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/TestImageZip/Properties/Settings.Designer.cs b/PROMS/TestImageZip/Properties/Settings.Designer.cs deleted file mode 100644 index 7198c729..00000000 --- a/PROMS/TestImageZip/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4223 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestImageZip.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/TestImageZip/Properties/Settings.settings b/PROMS/TestImageZip/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/TestImageZip/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/TestImageZip/TestImageZip.csproj b/PROMS/TestImageZip/TestImageZip.csproj deleted file mode 100644 index 51a52aec..00000000 --- a/PROMS/TestImageZip/TestImageZip.csproj +++ /dev/null @@ -1,89 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {2490E54C-BF6A-414E-9B5A-EE2A486B7027} - WinExe - Properties - TestImageZip - TestImageZip - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - Form - - - Form1.cs - - - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {9DA591ED-C570-47AC-8E5D-35B039E07973} - Csla - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - - - \ No newline at end of file diff --git a/PROMS/TestPSI/Form1.Designer.cs b/PROMS/TestPSI/Form1.Designer.cs deleted file mode 100644 index b7d6664c..00000000 --- a/PROMS/TestPSI/Form1.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -namespace TestPSI -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.buttonX1 = new DevComponents.DotNetBar.ButtonX(); - this.SuspendLayout(); - // - // buttonX1 - // - this.buttonX1.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.buttonX1.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.buttonX1.Location = new System.Drawing.Point(64, 40); - this.buttonX1.Name = "buttonX1"; - this.buttonX1.Size = new System.Drawing.Size(106, 41); - this.buttonX1.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.buttonX1.TabIndex = 0; - this.buttonX1.Text = "Convert PSI to XML"; - this.buttonX1.Click += new System.EventHandler(this.buttonX1_Click); - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(282, 257); - this.Controls.Add(this.buttonX1); - this.Name = "Form1"; - this.Text = "Form1"; - this.ResumeLayout(false); - - } - - #endregion - - private DevComponents.DotNetBar.ButtonX buttonX1; - } -} - diff --git a/PROMS/TestPSI/Form1.cs b/PROMS/TestPSI/Form1.cs deleted file mode 100644 index ba5deff6..00000000 --- a/PROMS/TestPSI/Form1.cs +++ /dev/null @@ -1,25 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using fmtxml; - -namespace TestPSI -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - - private void buttonX1_Click(object sender, EventArgs e) - { - PSI psi = new PSI(@"C:\16bit\PROMSNT\FMTFILES\hlp.ini"); - Console.WriteLine(psi.GetXML()); - } - } -} \ No newline at end of file diff --git a/PROMS/TestPSI/Form1.resx b/PROMS/TestPSI/Form1.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/TestPSI/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/TestPSI/Program.cs b/PROMS/TestPSI/Program.cs deleted file mode 100644 index 20d7fdbc..00000000 --- a/PROMS/TestPSI/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace TestPSI -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} \ No newline at end of file diff --git a/PROMS/TestPSI/Properties/AssemblyInfo.cs b/PROMS/TestPSI/Properties/AssemblyInfo.cs deleted file mode 100644 index 7de31447..00000000 --- a/PROMS/TestPSI/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TestPSI")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TestPSI")] -[assembly: AssemblyCopyright("Copyright © 2011")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("58dda072-c8c0-4031-a969-b77505b13314")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/TestPSI/Properties/Resources.Designer.cs b/PROMS/TestPSI/Properties/Resources.Designer.cs deleted file mode 100644 index d657651a..00000000 --- a/PROMS/TestPSI/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4206 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestPSI.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestPSI.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/TestPSI/Properties/Resources.resx b/PROMS/TestPSI/Properties/Resources.resx deleted file mode 100644 index 25a61211..00000000 --- a/PROMS/TestPSI/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/TestPSI/Properties/Settings.Designer.cs b/PROMS/TestPSI/Properties/Settings.Designer.cs deleted file mode 100644 index f31c701e..00000000 --- a/PROMS/TestPSI/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4206 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestPSI.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/TestPSI/Properties/Settings.settings b/PROMS/TestPSI/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/TestPSI/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/TestPSI/TestPSI.csproj b/PROMS/TestPSI/TestPSI.csproj deleted file mode 100644 index 1309f694..00000000 --- a/PROMS/TestPSI/TestPSI.csproj +++ /dev/null @@ -1,85 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {52D1CBD6-A1D4-474C-998D-4AD98C2D36CC} - WinExe - Properties - TestPSI - TestPSI - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - Form - - - Form1.cs - - - - - Designer - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {66A20362-1B7E-4F9D-BABA-86E29EA60994} - fmtxml - - - - - \ No newline at end of file diff --git a/PROMS/TestWndProc/Delete Links.xlsx b/PROMS/TestWndProc/Delete Links.xlsx deleted file mode 100644 index fdecc76a..00000000 Binary files a/PROMS/TestWndProc/Delete Links.xlsx and /dev/null differ diff --git a/PROMS/TestWndProc/TestWndProc.sln b/PROMS/TestWndProc/TestWndProc.sln deleted file mode 100644 index 1e705e2b..00000000 --- a/PROMS/TestWndProc/TestWndProc.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TestWndProc", "TestWndProc\TestWndProc.csproj", "{A672E7A2-94FF-4613-B6AC-52CC6F98EB29}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {A672E7A2-94FF-4613-B6AC-52CC6F98EB29}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {A672E7A2-94FF-4613-B6AC-52CC6F98EB29}.Debug|Any CPU.Build.0 = Debug|Any CPU - {A672E7A2-94FF-4613-B6AC-52CC6F98EB29}.Release|Any CPU.ActiveCfg = Release|Any CPU - {A672E7A2-94FF-4613-B6AC-52CC6F98EB29}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/TestWndProc/TestWndProc/MyPanel.Designer.cs b/PROMS/TestWndProc/TestWndProc/MyPanel.Designer.cs deleted file mode 100644 index 7fb7e530..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyPanel.Designer.cs +++ /dev/null @@ -1,414 +0,0 @@ -namespace TestWndProc -{ - partial class MyPanel - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.btnBoldOn = new System.Windows.Forms.Button(); - this.btnBoldOff = new System.Windows.Forms.Button(); - this.btnLinkOff = new System.Windows.Forms.Button(); - this.btnLinkOn = new System.Windows.Forms.Button(); - this.tbSelRTF = new System.Windows.Forms.TextBox(); - this.lblFind = new System.Windows.Forms.Label(); - this.nudStart = new System.Windows.Forms.NumericUpDown(); - this.nudLength = new System.Windows.Forms.NumericUpDown(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.btnFindAllLinks = new System.Windows.Forms.Button(); - this.tbSelText = new System.Windows.Forms.TextBox(); - this.btnUpdateSel = new System.Windows.Forms.Button(); - this.cbProcess = new System.Windows.Forms.CheckBox(); - this.lbTbSel = new System.Windows.Forms.Label(); - this.btnRefreshText = new System.Windows.Forms.Button(); - this.btnReplaceSelection = new System.Windows.Forms.Button(); - this.lblWith = new System.Windows.Forms.Label(); - this.tbWith = new System.Windows.Forms.TextBox(); - this.tbSendKeys = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.lblRangeStatus = new System.Windows.Forms.Label(); - this.btnPG = new System.Windows.Forms.Button(); - this.tbRTF = new TestWndProc.MyTextBox(this.components); - this.myRTB1 = new TestWndProc.MyRTB(this.components); - this.btnSelHngIndent = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.nudStart)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudLength)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.SuspendLayout(); - // - // btnBoldOn - // - this.btnBoldOn.Location = new System.Drawing.Point(4, 16); - this.btnBoldOn.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnBoldOn.Name = "btnBoldOn"; - this.btnBoldOn.Size = new System.Drawing.Size(81, 28); - this.btnBoldOn.TabIndex = 1; - this.btnBoldOn.Text = "Bold On"; - this.btnBoldOn.UseVisualStyleBackColor = true; - this.btnBoldOn.Click += new System.EventHandler(this.btnBoldOn_Click); - // - // btnBoldOff - // - this.btnBoldOff.Location = new System.Drawing.Point(93, 16); - this.btnBoldOff.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnBoldOff.Name = "btnBoldOff"; - this.btnBoldOff.Size = new System.Drawing.Size(83, 28); - this.btnBoldOff.TabIndex = 2; - this.btnBoldOff.Text = "Bold Off"; - this.btnBoldOff.UseVisualStyleBackColor = true; - this.btnBoldOff.Click += new System.EventHandler(this.btnBoldOff_Click); - // - // btnLinkOff - // - this.btnLinkOff.Location = new System.Drawing.Point(269, 16); - this.btnLinkOff.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnLinkOff.Name = "btnLinkOff"; - this.btnLinkOff.Size = new System.Drawing.Size(71, 28); - this.btnLinkOff.TabIndex = 5; - this.btnLinkOff.Text = "Link Off"; - this.btnLinkOff.UseVisualStyleBackColor = true; - this.btnLinkOff.Click += new System.EventHandler(this.btnLinkOff_Click); - // - // btnLinkOn - // - this.btnLinkOn.Location = new System.Drawing.Point(184, 16); - this.btnLinkOn.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnLinkOn.Name = "btnLinkOn"; - this.btnLinkOn.Size = new System.Drawing.Size(77, 28); - this.btnLinkOn.TabIndex = 4; - this.btnLinkOn.Text = "Link On"; - this.btnLinkOn.UseVisualStyleBackColor = true; - this.btnLinkOn.Click += new System.EventHandler(this.btnLinkOn_Click); - // - // tbSelRTF - // - this.tbSelRTF.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSelRTF.Location = new System.Drawing.Point(4, 370); - this.tbSelRTF.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbSelRTF.Multiline = true; - this.tbSelRTF.Name = "tbSelRTF"; - this.tbSelRTF.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbSelRTF.Size = new System.Drawing.Size(643, 47); - this.tbSelRTF.TabIndex = 8; - // - // lblFind - // - this.lblFind.AutoSize = true; - this.lblFind.Location = new System.Drawing.Point(344, 178); - this.lblFind.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lblFind.Name = "lblFind"; - this.lblFind.Size = new System.Drawing.Size(50, 17); - this.lblFind.TabIndex = 11; - this.lblFind.Text = "Where"; - // - // nudStart - // - this.nudStart.Location = new System.Drawing.Point(416, 176); - this.nudStart.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.nudStart.Maximum = new decimal(new int[] { - 1000, - 0, - 0, - 0}); - this.nudStart.Name = "nudStart"; - this.nudStart.Size = new System.Drawing.Size(57, 22); - this.nudStart.TabIndex = 14; - // - // nudLength - // - this.nudLength.Location = new System.Drawing.Point(481, 176); - this.nudLength.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.nudLength.Maximum = new decimal(new int[] { - 1000, - 0, - 0, - 0}); - this.nudLength.Name = "nudLength"; - this.nudLength.Size = new System.Drawing.Size(49, 22); - this.nudLength.TabIndex = 15; - // - // dgv - // - this.dgv.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Location = new System.Drawing.Point(4, 481); - this.dgv.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.dgv.Name = "dgv"; - this.dgv.RowTemplate.Height = 24; - this.dgv.Size = new System.Drawing.Size(644, 204); - this.dgv.TabIndex = 16; - this.dgv.SelectionChanged += new System.EventHandler(this.dgv_SelectionChanged); - // - // btnFindAllLinks - // - this.btnFindAllLinks.Location = new System.Drawing.Point(17, 174); - this.btnFindAllLinks.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnFindAllLinks.Name = "btnFindAllLinks"; - this.btnFindAllLinks.Size = new System.Drawing.Size(101, 28); - this.btnFindAllLinks.TabIndex = 17; - this.btnFindAllLinks.Text = "Find All Links"; - this.btnFindAllLinks.UseVisualStyleBackColor = true; - this.btnFindAllLinks.Click += new System.EventHandler(this.btnFindAllLinks_Click); - // - // tbSelText - // - this.tbSelText.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSelText.Location = new System.Drawing.Point(4, 426); - this.tbSelText.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbSelText.Multiline = true; - this.tbSelText.Name = "tbSelText"; - this.tbSelText.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbSelText.Size = new System.Drawing.Size(643, 47); - this.tbSelText.TabIndex = 18; - // - // btnUpdateSel - // - this.btnUpdateSel.Location = new System.Drawing.Point(213, 174); - this.btnUpdateSel.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnUpdateSel.Name = "btnUpdateSel"; - this.btnUpdateSel.Size = new System.Drawing.Size(127, 28); - this.btnUpdateSel.TabIndex = 19; - this.btnUpdateSel.Text = "Update Selection"; - this.btnUpdateSel.UseVisualStyleBackColor = true; - this.btnUpdateSel.Click += new System.EventHandler(this.btnUpdateSel_Click); - // - // cbProcess - // - this.cbProcess.AutoSize = true; - this.cbProcess.Checked = true; - this.cbProcess.CheckState = System.Windows.Forms.CheckState.Checked; - this.cbProcess.Location = new System.Drawing.Point(125, 176); - this.cbProcess.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.cbProcess.Name = "cbProcess"; - this.cbProcess.Size = new System.Drawing.Size(81, 21); - this.cbProcess.TabIndex = 20; - this.cbProcess.Text = "Process"; - this.cbProcess.UseVisualStyleBackColor = true; - this.cbProcess.CheckedChanged += new System.EventHandler(this.cbProcess_CheckedChanged); - // - // lbTbSel - // - this.lbTbSel.AutoSize = true; - this.lbTbSel.Location = new System.Drawing.Point(539, 178); - this.lbTbSel.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lbTbSel.Name = "lbTbSel"; - this.lbTbSel.Size = new System.Drawing.Size(50, 17); - this.lbTbSel.TabIndex = 21; - this.lbTbSel.Text = "Where"; - // - // btnRefreshText - // - this.btnRefreshText.Location = new System.Drawing.Point(347, 17); - this.btnRefreshText.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.btnRefreshText.Name = "btnRefreshText"; - this.btnRefreshText.Size = new System.Drawing.Size(111, 26); - this.btnRefreshText.TabIndex = 23; - this.btnRefreshText.Text = "Refresh Text"; - this.btnRefreshText.UseVisualStyleBackColor = true; - this.btnRefreshText.Click += new System.EventHandler(this.btnRefreshText_Click); - // - // btnReplaceSelection - // - this.btnReplaceSelection.Location = new System.Drawing.Point(17, 209); - this.btnReplaceSelection.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.btnReplaceSelection.Name = "btnReplaceSelection"; - this.btnReplaceSelection.Size = new System.Drawing.Size(137, 28); - this.btnReplaceSelection.TabIndex = 25; - this.btnReplaceSelection.Text = "Replace Selection"; - this.btnReplaceSelection.UseVisualStyleBackColor = true; - this.btnReplaceSelection.Click += new System.EventHandler(this.btnReplaceSelection_Click); - // - // lblWith - // - this.lblWith.AutoSize = true; - this.lblWith.Location = new System.Drawing.Point(163, 215); - this.lblWith.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.lblWith.Name = "lblWith"; - this.lblWith.Size = new System.Drawing.Size(36, 17); - this.lblWith.TabIndex = 26; - this.lblWith.Text = "With"; - // - // tbWith - // - this.tbWith.Location = new System.Drawing.Point(207, 212); - this.tbWith.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbWith.Name = "tbWith"; - this.tbWith.Size = new System.Drawing.Size(132, 22); - this.tbWith.TabIndex = 27; - this.tbWith.Text = "X"; - // - // tbSendKeys - // - this.tbSendKeys.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSendKeys.Location = new System.Drawing.Point(429, 212); - this.tbSendKeys.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbSendKeys.Name = "tbSendKeys"; - this.tbSendKeys.Size = new System.Drawing.Size(213, 22); - this.tbSendKeys.TabIndex = 29; - this.tbSendKeys.Text = "{BS}"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(348, 215); - this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(72, 17); - this.label1.TabIndex = 28; - this.label1.Text = "SendKeys"; - // - // lblRangeStatus - // - this.lblRangeStatus.AutoSize = true; - this.lblRangeStatus.Location = new System.Drawing.Point(472, 18); - this.lblRangeStatus.Name = "lblRangeStatus"; - this.lblRangeStatus.Size = new System.Drawing.Size(94, 17); - this.lblRangeStatus.TabIndex = 30; - this.lblRangeStatus.Text = "Range Status"; - // - // btnPG - // - this.btnPG.Location = new System.Drawing.Point(572, 15); - this.btnPG.Name = "btnPG"; - this.btnPG.Size = new System.Drawing.Size(39, 23); - this.btnPG.TabIndex = 31; - this.btnPG.Text = "PG"; - this.btnPG.UseVisualStyleBackColor = true; - this.btnPG.Click += new System.EventHandler(this.btnPG_Click); - // - // tbRTF - // - this.tbRTF.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbRTF.Location = new System.Drawing.Point(4, 244); - this.tbRTF.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.tbRTF.Multiline = true; - this.tbRTF.Name = "tbRTF"; - this.tbRTF.Size = new System.Drawing.Size(643, 120); - this.tbRTF.TabIndex = 24; - this.tbRTF.SelectionChange += new System.EventHandler(this.tbRTF_SelectionChange); - this.tbRTF.TextChanged += new System.EventHandler(this.tbRTF_TextChanged); - // - // myRTB1 - // - this.myRTB1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.myRTB1.HideSelection = false; - this.myRTB1.Location = new System.Drawing.Point(4, 52); - this.myRTB1.Margin = new System.Windows.Forms.Padding(4); - this.myRTB1.Name = "myRTB1"; - this.myRTB1.ProcessKeystrokes = true; - this.myRTB1.RTBRangeStatus = TestWndProc.MyRTB.RangeStatus.NoContainedLinks; - this.myRTB1.ShowDebug = true; - this.myRTB1.Size = new System.Drawing.Size(643, 117); - this.myRTB1.TabIndex = 0; - this.myRTB1.Text = ""; - this.myRTB1.Protected += new System.EventHandler(this.myRTB1_Protected); - // - // btnSelHngIndent - // - this.btnSelHngIndent.Location = new System.Drawing.Point(618, 15); - this.btnSelHngIndent.Name = "btnSelHngIndent"; - this.btnSelHngIndent.Size = new System.Drawing.Size(39, 23); - this.btnSelHngIndent.TabIndex = 32; - this.btnSelHngIndent.Text = "SI"; - this.btnSelHngIndent.UseVisualStyleBackColor = true; - this.btnSelHngIndent.Click += new System.EventHandler(this.btnSelHngIndent_Click); - // - // MyPanel - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.btnSelHngIndent); - this.Controls.Add(this.btnPG); - this.Controls.Add(this.lblRangeStatus); - this.Controls.Add(this.tbSendKeys); - this.Controls.Add(this.label1); - this.Controls.Add(this.tbWith); - this.Controls.Add(this.lblWith); - this.Controls.Add(this.btnReplaceSelection); - this.Controls.Add(this.tbRTF); - this.Controls.Add(this.btnRefreshText); - this.Controls.Add(this.lbTbSel); - this.Controls.Add(this.cbProcess); - this.Controls.Add(this.btnUpdateSel); - this.Controls.Add(this.tbSelText); - this.Controls.Add(this.btnFindAllLinks); - this.Controls.Add(this.dgv); - this.Controls.Add(this.nudLength); - this.Controls.Add(this.nudStart); - this.Controls.Add(this.lblFind); - this.Controls.Add(this.tbSelRTF); - this.Controls.Add(this.btnLinkOff); - this.Controls.Add(this.btnLinkOn); - this.Controls.Add(this.btnBoldOff); - this.Controls.Add(this.btnBoldOn); - this.Controls.Add(this.myRTB1); - this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.Name = "MyPanel"; - this.Size = new System.Drawing.Size(660, 702); - ((System.ComponentModel.ISupportInitialize)(this.nudStart)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.nudLength)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private MyRTB myRTB1; - private System.Windows.Forms.Button btnBoldOn; - private System.Windows.Forms.Button btnBoldOff; - private System.Windows.Forms.Button btnLinkOff; - private System.Windows.Forms.Button btnLinkOn; - private System.Windows.Forms.TextBox tbSelRTF; - private System.Windows.Forms.Label lblFind; - private System.Windows.Forms.NumericUpDown nudStart; - private System.Windows.Forms.NumericUpDown nudLength; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.Button btnFindAllLinks; - private System.Windows.Forms.TextBox tbSelText; - private System.Windows.Forms.Button btnUpdateSel; - private System.Windows.Forms.CheckBox cbProcess; - private System.Windows.Forms.Label lbTbSel; - private System.Windows.Forms.Button btnRefreshText; - private MyTextBox tbRTF; - private System.Windows.Forms.Button btnReplaceSelection; - private System.Windows.Forms.Label lblWith; - private System.Windows.Forms.TextBox tbWith; - private System.Windows.Forms.TextBox tbSendKeys; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label lblRangeStatus; - private System.Windows.Forms.Button btnPG; - private System.Windows.Forms.Button btnSelHngIndent; - } -} diff --git a/PROMS/TestWndProc/TestWndProc/MyPanel.cs b/PROMS/TestWndProc/TestWndProc/MyPanel.cs deleted file mode 100644 index b0b896f0..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyPanel.cs +++ /dev/null @@ -1,215 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Text.RegularExpressions; - -namespace TestWndProc -{ - public partial class MyPanel : UserControl - { - #region Constructors - public MyPanel() - { - InitializeComponent(); - myRTB1.LinkLocationsChanged += new RTBEvent(myRTB1_LinkLocationsChanged); - myRTB1.RTBSelectionChanged += new RTBEvent(myRTB1_RTBSelectionChanged); - myRTB1.RTBTextChanged += new RTBEvent(myRTB1_RTBTextChanged); - myRTB1.RTBRangeStatusChanged += new RTBEvent(myRTB1_RTBRangeStatusChanged); - SetRtfString(); - } - #endregion - #region Debug - private bool _ShowDebug = true; - public bool ShowDebug - { - get { return _ShowDebug; } - set { _ShowDebug = value; } - } - private void DebugPrint(string where, string format, params object[] myParams) - { - DebugPrint(where + string.Format(format, myParams)); - } - private void DebugPrint(string format, params object[] myParams) - { - if (_ShowDebug) - Console.WriteLine(format, myParams); - } - #endregion - #region RTB Event Handlers - void myRTB1_RTBTextChanged(object sender, EventArgs args) - { - DebugPrint("<=====RTBTextChanged"); - if (_TextChanging == false) - { - _TextChanging = true; - tbRTF.Text = myRTB1.Rtf; - _TextChanging = false; - } - } - void myRTB1_RTBRangeStatusChanged(object sender, EventArgs args) - { - DebugPrint("<=====RTBRangeStatusChanged"); - lblRangeStatus.Text = myRTB1.RTBRangeStatus.ToString(); - } - void myRTB1_RTBSelectionChanged(object sender, EventArgs args) - { - DebugPrint("<=====RTBSelectionChanged"); - ShowSelection(); - UpdateNudsFromSelection(); - } - void myRTB1_LinkLocationsChanged(object sender, EventArgs args) - { - DebugPrint("<\v0 " + - @"Some text \v \v0 " + - @"Add some text before \v \v0 " + - @"\v \v0 " + - @"\v \v0 and some more text after " + - @"\v \v0 " + @"\par}"; - } - #endregion - #region Selection - private void ShowSelection() - { - lblFind.Text = string.Format("{0}-{1}", myRTB1.SelectionStart, myRTB1.SelectionStart + myRTB1.SelectionLength); - tbSelRTF.Text = myRTB1.SelectedRtf; - tbSelText.Text = myRTB1.SelectedText; - UpdateNudsFromSelection(); - } - private void tbRTB_SelectionChanged(object sender, EventArgs e) - { - //lbTbSel.Text = string.Format("{0}, {1}", tbRTF.SelectionStart, tbRTF.SelectionLength); - } - private void tbRTF_SelectionChange(object sender, EventArgs e) - { - lbTbSel.Text = string.Format("{0}, {1}", tbRTF.SelectionStart, tbRTF.SelectionLength); - } - private void btnReplaceSelection_Click(object sender, EventArgs e) - { - myRTB1.SelectedText = tbWith.Text; - if (tbSendKeys.Text != "") SendKeys.Send(tbSendKeys.Text); - } - private void dgv_SelectionChanged(object sender, EventArgs e) - { - if (dgv.SelectedRows.Count == 1) - { - LinkLocation ll = myRTB1.LinkLocations[dgv.SelectedRows[0].Index]; - myRTB1.SetSelection(ll); - } - } - #endregion - #region Numeric Up/Down - private void UpdateNudsFromSelection() - { - nudStart.Value = myRTB1.SelectionStart; - nudLength.Value = myRTB1.SelectionLength; - } - private void UpdateNuds(int start, int length) - { - nudStart.Value = start; - nudLength.Value = length; - } - private void UpdateSelectionFromNuds() - { - myRTB1.SetSelection((int)(nudStart.Value), (int)(nudLength.Value)); - } - private void btnUpdateSel_Click(object sender, EventArgs e) - { - UpdateSelectionFromNuds(); - myRTB1.Focus(); - } - #endregion - #region Protection - private void myRTB1_Protected(object sender, EventArgs e) - { - MessageBox.Show("Cannot change protected text that way!"); - } - private void btnProtectOn_Click(object sender, EventArgs e) - { - RTBAPI.Protect(myRTB1); - } - private void btnProtectOff_Click(object sender, EventArgs e) - { - RTBAPI.UnProtect(myRTB1); - } - #endregion - #region Button Handlers - private void btnBoldOn_Click(object sender, EventArgs e) - { - RTBAPI.ToggleBold(true, myRTB1, RTBAPI.RTBSelection.SCF_SELECTION); - } - private void btnBoldOff_Click(object sender, EventArgs e) - { - RTBAPI.ToggleBold(false, myRTB1, RTBAPI.RTBSelection.SCF_SELECTION); - } - private void btnLinkOn_Click(object sender, EventArgs e) - { - RTBAPI.Link(myRTB1); - } - private void btnLinkOff_Click(object sender, EventArgs e) - { - RTBAPI.UnLink(myRTB1); - } - private void btnFindAllLinks_Click(object sender, EventArgs e) - { - myRTB1.FindAllLinks(); - } - #endregion - #region Text Change - private bool _TextChanging = false; - private void tbRTF_TextChanged(object sender, EventArgs e) - { - if (_TextChanging == false) - { - _TextChanging = true; - myRTB1.Rtf = tbRTF.Text; - _TextChanging = false; - } - } - #endregion - #region Process Check Box - private void cbProcess_CheckedChanged(object sender, EventArgs e) - { - myRTB1.ProcessKeystrokes = cbProcess.Checked; - } - #endregion - - private void btnPG_Click(object sender, EventArgs e) - { - frmPG myFrmPG = new frmPG(myRTB1); - myFrmPG.Show(); - } - int hngIndent = 25; - private void btnSelHngIndent_Click(object sender, EventArgs e) - { - //myRTB1.SelectionHangingIndent = hngIndent; - //hngIndent += 25; - myRTB1.SelectAll(); - myRTB1.SelectionHangingIndent = 0; - int indchar = 0; - while ((indchar = myRTB1.Find("@", indchar, RichTextBoxFinds.None)) >= 0) - { - Point indent = myRTB1.GetPositionFromCharIndex(indchar); - myRTB1.SelectionHangingIndent = indent.X; - indchar++; - } - } - } -} diff --git a/PROMS/TestWndProc/TestWndProc/MyPanel.cs.bak b/PROMS/TestWndProc/TestWndProc/MyPanel.cs.bak deleted file mode 100644 index b6603c28..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyPanel.cs.bak +++ /dev/null @@ -1,492 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Text.RegularExpressions; - -namespace TestWndProc -{ - public partial class MyPanel : UserControl - { - private bool _TextChanging=false; - private const int WM_NOTIFY = 0x4E; - public MyPanel() - { - InitializeComponent(); - //RTBAPI.SetNotifyProtect(myRTB1); - //myRTB1.Rtf = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}}\r\n" + - // @"\viewkind4\uc1\pard\sl-240\slmult0\f0\fs20 " + - // @"\v \v0\par" + - // @"\v \v0\v \v0\par" + - // @"Not Protected\par " + - // @"Not Protected\par " + - // @"Not Protected\par " + - // @"Not Protected\par}"; - // KBR's Testing for delete link basic cases (text before & after link): - //myRTB1.Rtf = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}}\r\n" + - // @"\viewkind4\uc1\pard\sl-240\slmult0\f0\fs20 " + - // @"Add some text before \v \v0 and some more text after}"; - // KBR's Testing for delete link at beginning of box (BASIC CASE): - //myRTB1.Rtf = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}}\r\n" + - // @"\viewkind4\uc1\pard\sl-240\slmult0\f0\fs20 " + - // @"\v \v0 and some more text after}"; - // KBR's Testing for delete link with two links in a row: - myRTB1.Rtf = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}}\r\n" + - @"\viewkind4\uc1\pard\sl-240\slmult0\f0\fs20 " + - @"Add some text before \v \v0 "+ - @"\v \v0 and some more text after}"; - // RHM's latest: - //myRTB1.Rtf = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}}\r\n" + - // @"\viewkind4\uc1\pard\sl-240\slmult0\f0\fs20 " + - // @"\v \v0\par" + - // @"\v \v0\v \v0\par" + - // @"Not Protected\par " + - // @"Make sure the flow is at \b least \v \v0 \b0 coming from the Aux Feed Pump\par " + - // @"Not Protected\par " + - // @"Not Protected\par}"; - //myRTB1.Rtf = @"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset0 Arial;}}{\colortbl{\red0\green0\blue0;\red255\green0\blue0}}\r\n" + - // @"\viewkind4\uc1\pard\sl-240\slmult0\f0\fs20 " + - // @"\cf1 Not Protected Link\v #Link data including URL\v0\par" + - // @"30 gpm\v #Link Reference Object A.1\v0 \cf1 20 gpm\v #Link Reference Object A.2\v0\par" + - // @"Not Protected\par " + - // @"Make sure the flow is at least \v \v0 coming from the Aux Feed Pump\par " + - // @"Not Protected\par " + - // @"Not Protected\par}"; - //FindAllLinks(); - this.myRTB1.SelectionChanged += new System.EventHandler(this.myRTB1_SelectionChanged); - } - private void myRTB1_Protected(object sender, EventArgs e) - { - MessageBox.Show("Cannot change protected text that way!"); - } - private void btnBoldOn_Click(object sender, EventArgs e) - { - RTBAPI.ToggleBold(true, myRTB1, RTBAPI.RTBSelection.SCF_SELECTION); - } - - private void btnBoldOff_Click(object sender, EventArgs e) - { - RTBAPI.ToggleBold(false, myRTB1, RTBAPI.RTBSelection.SCF_SELECTION); - } - - private void myRTB1_TextChanged(object sender, EventArgs e) - { - if (_TextChanging == false) - { - _TextChanging = true; - tbRTF.Text = myRTB1.Rtf; - FindAllLinks(); - ShowSelection(); - _TextChanging = false; - } - } - - private void ShowSelection() - { - lblFind.Text = string.Format("{0}-{1}", myRTB1.SelectionStart, myRTB1.SelectionStart + myRTB1.SelectionLength); - tbSelRTF.Text = myRTB1.SelectedRtf; - tbSelText.Text = myRTB1.SelectedText; - UpdateNudsFromSelection(); - - } - - private void UpdateNudsFromSelection() - { - nudStart.Value = myRTB1.SelectionStart; - nudLength.Value = myRTB1.SelectionLength; - } - - private void UpdateNuds(int start, int length) - { - nudStart.Value = start; - nudLength.Value = length; - } - private void btnLinkOn_Click(object sender, EventArgs e) - { - RTBAPI.Link(myRTB1); - } - private void btnLinkOff_Click(object sender, EventArgs e) - { - RTBAPI.UnLink(myRTB1); - } - private void btnProtectOn_Click(object sender, EventArgs e) - { - RTBAPI.Protect(myRTB1); - } - private void btnProtectOff_Click(object sender, EventArgs e) - { - RTBAPI.UnProtect(myRTB1); - } - private void SetSelection(int locStart, int locLength) - { - Application.DoEvents(); - //myRTB1.SelectionStart = myRTB1.TextLength; // Pointing to the end forces the length to zero at the same time. - //myRTB1.SelectionStart = locStart; - //myRTB1.SelectionLength = locLength; - myRTB1.Select(locStart, locLength); - } - private void tbRTF_TextChanged(object sender, EventArgs e) - { - if (_TextChanging == false) - { - _TextChanging = true; - myRTB1.Rtf = tbRTF.Text; - _TextChanging = false; - } - } - private void UpdateSelectionFromNuds() - { - SetSelection((int)(nudStart.Value),(int)(nudLength.Value)); - } - private void myRTB1_MouseUp(object sender, MouseEventArgs e) - { - _MouseDown = false; - HandleSelectionChange(); - } - List _linkLocations; - private void btnFindAllLinks_Click(object sender, EventArgs e) - { - FindAllLinks(); - } - private void FindAllLinks() - { - string str = myRTB1.Text; - _AdjustingSelection = true; - myRTB1.PushSelection(); - _linkLocations = new List(); - MatchCollection matches = Regex.Matches(str, ""); - MatchCollection matchesRtf = Regex.Matches(myRTB1.Rtf, ""); - for (int i = 0; i< matches.Count; i++) //each (Match match in matches) - { //KBR - Match match = matches[i]; - Match matchrtf = matchesRtf[i]; - _linkLocations.Add(new LinkLocation(match.Index + 7, // If the [END> is immediately followed by ll.End) - { - int end = myRTB1.SelectionStart + myRTB1.SelectionLength; - SetSelection(ll.Start, end - ll.Start); - } - else - { - SetSelection(ll.Start, ll.Length); - } - _AdjustingSelection = false; - } - else if (llend != null) - { - Console.WriteLine("LLEND: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", myRTB1.SelectionStart, myRTB1.SelectionLength, llend.Start, llend.Length); - _AdjustingSelection = true; - SetSelection(myRTB1.SelectionStart, llend.End - myRTB1.SelectionStart); - _AdjustingSelection = false; - } - //else - //{ - // if (myRTB1.SelectedText.EndsWith(" 0) - Console.WriteLine("Key down: {0} processing keys = {1}", e.KeyCode, processingkeys); - if (!cbProcess.Checked) return; - //Console.WriteLine("{0}", e.KeyCode); - switch (e.KeyCode) - { - case Keys.Left: - LinkLocation ll = FindLinkSelected(); - if (ll != null) - { - _AdjustingSelection = true; - Console.WriteLine("Adjusting SelectionStart {0} to {1}", myRTB1.SelectionStart, ll.Start - 7); - SetSelection(ll.Start - 7, 0); - _AdjustingSelection = false; - // Does not allow you to stop between two links that are right next to - // each other - if (myRTB1.SelectionStart != ll.Start - 7) - { - Console.WriteLine(" Didn't work - SelectionStart {0}", myRTB1.SelectionStart); - //ll = FindLinkLocation(myRTB1.SelectionStart); - //SetSelection(ll.Start, ll.Length); - SetSelection(ll.Start, 0); - } - e.SuppressKeyPress = true; - } - break; - case Keys.Back: - _CheckSelection = true; - - break; - case Keys.Delete: - //if (myRTB1.SelectionLength == 0) - //{ - // e.SuppressKeyPress = true; - // SendKeys.Send("{RIGHT}{BS}"); - //} else - if (myRTB1.SelectedText.EndsWith(@"[END> sel) return ll; - //if (ll.Start == lastend && ll.Start < sel && ll.End > sel) return ll; - if (ll.Start != lastend && ll.Start <= sel && ll.End > sel) return ll; - lastend = ll.End; - } - return null; - } - private bool _MouseDown = false; - private void myRTB1_MouseDown(object sender, MouseEventArgs e) - { - _MouseDown = true; - } - - private void btnUpdateSel_Click(object sender, EventArgs e) - { - UpdateSelectionFromNuds(); - myRTB1.Focus(); - } - - private void myRTB1_KeyPress(object sender, KeyPressEventArgs e) - { - Console.WriteLine("KeyPress: {0},{1}", e.KeyChar, (int)e.KeyChar); - if (e.KeyChar >= ' ') - { - LinkLocation ll = FindBetweenLinks(); - if (ll != null&&myRTB1.SelectionLength==0) - { - myRTB1.Rtf = myRTB1.Rtf.Substring(0, ll.StartRtf) + @"\v0 " + e.KeyChar.ToString() + @"\v " + myRTB1.Rtf.Substring(ll.StartRtf); - e.Handled = true; - myRTB1.SelectionStart = ll.Start - 6; // account for \v0 " + - @"\v \v0 and some more text after}"; - } - - private void tbRTF_SelectionChange(object sender, EventArgs e) - { - lbTbSel.Text = string.Format("{0}, {1}", tbRTF.SelectionStart, tbRTF.SelectionLength); - } - } - public class LinkLocation - { - private int _Start; - public int Start - { - get { return _Start; } - set { _Start = value; } - } - private int _Length; - public int Length - { - get { return _Length; } - set { _Length = value; } - } - public int End - { - get { return _Length + _Start; } - } - private int _StartRtf; - public int StartRtf - { - get { return _StartRtf; } - set { _StartRtf = value; } - } - private int _LengthRtf; - public int LengthRtf - { - get { return _LengthRtf; } - set { _LengthRtf = value; } - } - public int EndRtf - { - get { return _LengthRtf + _StartRtf; } - } - private string _Text; - public string Text - { - get { return _Text; } - set { _Text = value; } - } - public LinkLocation(int start, int length, string text, int startRtf, int lengthRtf) - { - _Start = start; - _Length = length; - _Text = text; - _StartRtf = startRtf; - _LengthRtf = lengthRtf; - } - } -} diff --git a/PROMS/TestWndProc/TestWndProc/MyPanel.resx b/PROMS/TestWndProc/TestWndProc/MyPanel.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyPanel.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/MyRTB.Designer.cs b/PROMS/TestWndProc/TestWndProc/MyRTB.Designer.cs deleted file mode 100644 index 723a7ddb..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyRTB.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace TestWndProc -{ - partial class MyRTB - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} diff --git a/PROMS/TestWndProc/TestWndProc/MyRTB.cs b/PROMS/TestWndProc/TestWndProc/MyRTB.cs deleted file mode 100644 index d0fbf1d7..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyRTB.cs +++ /dev/null @@ -1,881 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Text.RegularExpressions; - -namespace TestWndProc -{ - public delegate void RTBEvent(object sender, EventArgs args); - public partial class MyRTB : RichTextBox - { - #region Events - public event RTBEvent RTBSelectionChanged; - private void OnRTBSelectionChanged(object sender, EventArgs args) - { - if (RTBSelectionChanged != null) RTBSelectionChanged(sender, args); - } - public event RTBEvent LinkLocationsChanged; - private void OnLinkLocationChanged(object sender, EventArgs args) - { - if(LinkLocationsChanged != null) LinkLocationsChanged(sender, args); - } - public event RTBEvent RTBRangeStatusChanged; - private void OnRTBRangeStatusChanged(object sender, EventArgs args) - { - if (RTBRangeStatusChanged != null) RTBRangeStatusChanged(sender, args); - } - /// - /// This event is not raised during all the in-between changes for link deletions - /// - public event RTBEvent RTBTextChanged; - private void OnRTBTextChanged(object sender, EventArgs args) - { - if (RTBTextChanged != null) RTBTextChanged(sender, args); - } - #endregion - #region public properties - private bool _ProcessKeystrokes = true; - public bool ProcessKeystrokes - { - get { return _ProcessKeystrokes; } - set { _ProcessKeystrokes = value; } - } - #endregion - #region CaretPosition - //[DllImport("user32")] - //private static extern IntPtr SendMessage(HandleRef hWnd, int msg, int wParam, int lParam); - [DllImport("user32")] - private static extern int GetCaretPos(ref Point lpPoint); - [DllImport("user32")] - private static extern bool SetCaretPos(int X, int Y); - //private int EM_LINEINDEX = 0xbb; - //private int EM_LINEFROMCHAR = 0xc9; - //private int EM_GETSEL = 0xb0; - - /// - /// Gets the caret current (X, Y) position. - /// - /// - /// Point struct - /// - public Point CaretXYPosition - { - get - { - Point pt = Point.Empty; - // get a Point struct with the caret current (X, Y) - // position - GetCaretPos(ref pt); - // return the Point struct with the caret current - // (X, Y) position - return pt; - } - } - public int CaretIndex - { - get { return GetCharIndexFromPosition(CaretXYPosition); } - } - public void SetCaretPostoSelectionStart() - { - Point pt = GetPositionFromCharIndex(SelectionStart); - //bool result = SetCaretPos(pt.X,pt.Y); - bool result = SetCaretPos(-1, pt.Y); - DebugPrint("SetCaretPos({0},{1}) = {2}", pt.X, pt.Y, result); - } - #endregion - #region Constructors - public MyRTB() - { - InitializeComponent(); - SetupEventHandlers(); - } - public MyRTB(IContainer container) - { - container.Add(this); - InitializeComponent(); - SetupEventHandlers(); - } - private void SetupEventHandlers() - { - this.MouseDown += new MouseEventHandler(MyRTB_MouseDown); - this.MouseUp += new MouseEventHandler(MyRTB_MouseUp); - this.KeyDown += new KeyEventHandler(MyRTB_KeyDown); - this.KeyPress += new KeyPressEventHandler(MyRTB_KeyPress); - this.TextChanged += new EventHandler(MyRTB_TextChanged); - this.SelectionChanged += new EventHandler(MyRTB_SelectionChanged); - } -#endregion - #region Keyboard Handlers - void MyRTB_KeyPress(object sender, KeyPressEventArgs e) - { - DebugPrint("KeyPress: {0},{1}", e.KeyChar, (int)e.KeyChar); - if (e.KeyChar >= ' ') - { - LinkLocation ll = FindBetweenLinks(); - if (ll != null && SelectionLength == 0) // SelectionLength = 0 means insert - { - InsertCharBetweenLinks(ll, e.KeyChar); - e.Handled = true; - } - else if (ll != null) // Otherwise it is an overstrike or a delete followed by inserting a character - { - DeleteStartBetweenLinks(); - } - else if (SelectedText.EndsWith(@"[END>AdjustingSelection is true in Keydown"); - if (_ProcessingKeys > 0) - DebugPrint("Key down: {0} Shift {1} processing keys = {2}", e.KeyCode, e.Shift, _ProcessingKeys); - if (!ProcessKeystrokes) return; - switch (e.KeyCode) - { - case Keys.Left: - DebugPrint("Key down: {0} Shift {1} processing keys = {2}", e.KeyCode, e.Shift, _ProcessingKeys); - DebugSelection("Left"); - if (e.Shift) return; - LinkLocation ll = FindLinkSelected(); - if (ll != null) - { - _AdjustingSelection = true; - if (ll.StartsBetween || ll.Start == 7) - SetSelection(ll.Start, 0); - else - SetSelection(ll.Start - 7, 0); - _AdjustingSelection = false; - e.SuppressKeyPress = true; - } - break; - case Keys.Back: - if (_SendBackSpace) - { - _SendBackSpace = false; - return; - } - _CheckSelection = true; - if (SelectionLength == 0) - { - foreach (LinkLocation lls in _linkLocations) - { - if (SelectionStart > lls.Start - 7 && SelectionStart <= lls.End) - { - //RtbSendKeys("{Left}");// This should select the ll - SetSelection(lls); - break; - } - } - } - if (SelectionLength > 0) HandleDeleteKeyWithSelectedText(e); - break; - case Keys.Delete: - if (SelectionLength == 0) - { - foreach (LinkLocation lls in _linkLocations) - { - if (SelectionStart >= lls.Start - 7 && SelectionStart < lls.End) - { - SetSelection(lls);// Select the link to the right - HandleDeleteKeyWithSelectedText(e); - e.SuppressKeyPress = true; - return; - } - } - if (SelectionStart != TextLength) - { - SelectionStart++;// A Delete can be accomplished with a right arrow followed by a backspace. - RtbSendKeys("{BS}"); // This is done due to a glitch in the RichTextBox that sometimes causes a beep rather than a delete - e.SuppressKeyPress = true; - } - } - else - HandleDeleteKeyWithSelectedText(e); - break; - } - } - #endregion - #region Mouse Handlers - void MyRTB_MouseUp(object sender, MouseEventArgs e) - { - _MouseDown = false; - HandleSelectionChange(); - } - void MyRTB_MouseDown(object sender, MouseEventArgs e) - { - _MouseDown = true; - } - #endregion - #region Event Handlers - void MyRTB_SelectionChanged(object sender, EventArgs e) - { - HandleSelectionChange(); - } - private bool _ProcessingDelete; - void MyRTB_TextChanged(object sender, EventArgs e) - { - if(!_IdentifyingLinks) - FindAllLinks(); - if (!_ProcessingDelete && !_IdentifyingLinks) - { - OnRTBTextChanged(this, new EventArgs()); - } - } - #endregion - #region SelectionStack - Stack _SelectionStack = new Stack(); - public void PushSelection() - { - _SelectionStack.Push(new SelectionData(this)); - } - public void PopSelection() - { - SelectionData selection = _SelectionStack.Pop(); - Select(selection.SelectionStart, selection.SelectionLength); - } - public class SelectionData - { - int _SelectionStart; - public int SelectionStart - { - get { return _SelectionStart; } - set { _SelectionStart = value; } - } - int _SelectionLength; - public int SelectionLength - { - get { return _SelectionLength; } - set { _SelectionLength = value; } - } - public SelectionData(RichTextBox richTextBox) - { - _SelectionStart = richTextBox.SelectionStart; - _SelectionLength = richTextBox.SelectionLength; - } - } - #endregion - #region Link Support - bool _AdjustingSelection = false; - private bool _CheckSelection = false; - int _ProcessingKeys = 0; - private bool _MouseDown = false; - - List _linkLocations; - public List LinkLocations - { - get { return _linkLocations; } - } - private int _FALLevel = 0; - private bool _IdentifyingLinks = false; - public void FindAllLinks() - { - if (_ProcessingDelete) return; - DebugPrint("FAL{0}vvvvvvvvvvvvvvvvvvvvvvvvv>>",++_FALLevel); - _AdjustingSelection = true; - PushSelection(); - FindLinks(); - IdentifyLinks(); - PopSelection(); - LinkLocation llx = FindLinkLocation(); - if (_CheckSelection) - { - if (llx != null) SetSelection(llx.End, 0); - _CheckSelection = false; - } - _AdjustingSelection = false; - if(!_ProcessingDelete) - OnLinkLocationChanged(this, new EventArgs()); - DebugPrint("FAL{0}^^^^^^^^^^^^^^^^^^^^^^^^^>>", _FALLevel--); - - } - private void FindLinks() - { - string str = Text; - _linkLocations = new List(); - MatchCollection matches = Regex.Matches(str, ""); - MatchCollection matchesRtf = Regex.Matches(Rtf, ""); - LinkLocation thisLink = null; - for (int i = 0; i < matches.Count; i++) //each (Match match in matches) - { //KBR - Match match = matches[i]; - Match matchrtf = matchesRtf[i]; - thisLink = new LinkLocation(match.Index + 7, // If the [END> is immediately followed by "); - foreach (LinkLocation ll in _linkLocations) - if (ll.Start == start && ll.StartsBetween) - return ll; - return null; - } - private LinkLocation FindLinkSelected() - { - DebugPrint("FL----------------Selected>"); - if (_linkLocations == null) return null; - foreach (LinkLocation ll in _linkLocations) - if (ll.Start == SelectionStart && ll.Length == SelectionLength) return ll; - return null; - } - private LinkLocation FindLinkLocation() - { - return FindLinkLocation(SelectionStart); - } - private LinkLocation FindLinkLocation(int sel) - { - DebugPrint("FL----------------Location>"); - if (_linkLocations == null) return null; - foreach (LinkLocation ll in _linkLocations) - { - // Moving right: - // if less than, allows stopping between two links - if (ll.Start < sel && ll.End > sel) - { - DebugPrint("Greater Than {0} {1} {2}", sel, ll.Start, ll.End); - return ll; - } - // if less than or equal, does not stop between two links - if ((!ll.StartsBetween) && ll.Start <= sel && ll.End > sel) - { - DebugPrint("Greater Than or Equal {0} {1} {2}", sel, ll.Start, ll.End); - return ll; - } - } - return null; - } - public void SetSelection(LinkLocation ll) - { - SetSelection(ll.Start, ll.Length); - } - public void SetSelection(int locStart, int locLength) - { - //Application.DoEvents(); // Not needed since SendKeys is always done last. - if(_IdentifyingLinks) - DebugPrint("SS------------------------> {0} {1}", locStart, locLength); - else - DebugPrint("SS========================> {0} {1}", locStart, locLength); - Select(locStart, locLength); - } - #endregion - #region Selection Handlers - private void HandleSelectionChange() - { - bool startingValue = _AdjustingSelection; - if (_IdentifyingLinks || _ProcessingDelete) return; - if (ProcessKeystrokes) - { - if (!_MouseDown && !_AdjustingSelection) - { - if (_linkLocations != null) - { - _AdjustingSelection = true; - LinkLocation ll = FindLinkLocation(); - LinkLocation llend = null; - if (SelectionLength != 0) - llend = FindLinkLocation(SelectionStart + SelectionLength - 1); - if (ll != null) - { - if (SelectionStart == ll.Start && SelectionLength == 0) - { - if (SelectionStart >= 7) - { - DebugPrint("HSC===================>ll Insert: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SelectionStart = ll.Start - 7; - } - } - else if (SelectionStart + SelectionLength > ll.End) // Beyond the end of the starting link - { - int end = SelectionStart + SelectionLength; - if (llend != null) end = llend.End; // If it extends into another link extend the end to the end of that link - DebugPrint("HSC===================>ll After: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SetSelection(ll.Start, end - ll.Start); - } - else if (SelectionStart >= ll.Start || SelectionLength > 0)// Within the starting link - { - DebugPrint("HSC===================>ll: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SetSelection(ll); - } - } - else if (llend != null) - { - DebugPrint("HSC===================>llend: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, llend.Start, llend.Length); - // Check to see if the beginning starts before the Removing ending Removing starting _AdjustingSelection problem"); - DebugPrint("RS------ SelectionChange > {0}", FindRangeStatus()); - OnRTBSelectionChanged(this, new EventArgs()); - } -#endregion - #region Delete Handlers - private void HandleDeleteKeyWithSelectedText(KeyEventArgs e) - { - _ProcessingDelete = true; - FindRangeStatus(); - DebugPrint("RS---------------- Delete > {0}", _RTBRangeStatus); - switch (_RTBRangeStatus) - { - case RangeStatus.NoContainedLinks: - case RangeStatus.Before_After: - case RangeStatus.Before_EndLink: - case RangeStatus.Before_EndBox: - default: - DeleteCurrentSelection(); - e.SuppressKeyPress = true; - break; - case RangeStatus.Before_Between: //myRTB1.SelectedText.EndsWith(@"[END> - /// This inserts a space in between two links. - /// It actually inserts "\v0 {space}\v " between the END tag and the START tag - /// - /// - /// - /// - private void InsertCharBetweenLinks(LinkLocation ll, char charToAdd, bool setSelect) - { - //_InsertingSpaceBetweenLinks = true; - DebugPrint("ICBLvvvvvvvvvvvvvvv>>>"); - Rtf = Rtf.Substring(0, ll.StartRtf) + @"\v0 " + charToAdd.ToString() + @"\v " + Rtf.Substring(ll.StartRtf); - //_InsertingSpaceBetweenLinks = false; - if (setSelect) - SelectionStart = ll.Start - 6; // account for >>"); - } - private void ExpandSelectionToIncludeStart() - { - //_AdjustingSelection = true; - SetSelection(SelectionStart - 7, SelectionLength + 7); // Expand selection to include start - //_AdjustingSelection = false; - } - private void DeleteBetweenBetweenLinks() - { - DebugSelection("DeleteBetweenBetweenLinks"); - int selStart = SelectionStart - 7; - int selLength = SelectionLength + 2; // Include the two added spaces - InsertCharBetweenLinks(_RangeEndLink.NextLink); // Add a space at the end link - InsertCharBetweenLinks(_RangeStartLink); // Add a space a the start link - SetSelection(selStart, selLength);// Select everything including the spaces - DeleteCurrentSelection();// Delete Selection - } - /// - /// This is added to handle a glitch in richtextbox. Depending on - /// which direction that selection is made (left -> right or right -> left) - /// a replacement or delete may not work, you'll just get a 'beep'. - /// This approach consistently works. - /// - private void DeleteCurrentSelection() - { - DebugPrint("vvvvvvvvvvvvxxxxxxxxxxxx>"); - DebugSelection("Before X"); - SelectedText = "X"; // replace text with X - DebugSelection("After X"); - DebugPrint("------------xxxxxxxxxxxx>"); - _SendBackSpace = true; - RtbSendKeys("{BS}"); // remove X - Application.DoEvents(); - DebugSelection("After BS"); - DebugPrint("^^^^^^^^^^^^xxxxxxxxxxxx>"); - } - private void DeleteSelection(int start, int length) - { - SetSelection(start, length); - DeleteCurrentSelection(); - } - private void DeleteEndBetweenLinks() - { - _ProcessingKeys++; - DebugSelection("DeleteEndBetweenLinks"); - int sstart = SelectionStart; - int slen = SelectionLength + 1 - 7; - // This puts a space at the link that starts at the end of the selection - InsertCharBetweenLinks(_RangeEndLink.NextLink); - //_AdjustingSelection = true; - DeleteSelection(sstart, slen); - //_AdjustingSelection = false; - _ProcessingKeys--; - } - private void DeleteStartBetweenLinks() - { - _ProcessingKeys++; - DebugSelection("DeleteStartBetweenLinks"); - int slen = SelectionLength + 8; - int sstart = SelectionStart - 7; - //LinkLocation ll = FindBetweenLinks(SelectionStart); - InsertCharBetweenLinks(_RangeStartLink); - DeleteSelection(sstart, slen); - _ProcessingKeys--; - } - private void DeleteFromStartOfBox() - { - _ProcessingKeys++; - DebugSelection("DeleteFromStartOfBox"); - int slen = SelectionLength; - SetSelection(0, 0); - //RtbSendKeys(" "); // open for space between links which separates END/START tokens - SelectedText = " "; - DeleteSelection(0, slen + 8); - _ProcessingKeys--; - } - private void DeleteFromStartOfBoxEndBetweenLinks() - { - _ProcessingKeys++; - DebugSelection("DeleteFromStartOfBoxEndBetweenLinks"); - // This puts a space at the link that starts at the end of the selection - int sLen = SelectionStart + SelectionLength - 7 + 2;// -7 for = start && ll.Start < end) || (ll.End >= start && ll.End < end))) - foundLink = ll; - if (_RangeStartLink == null && start >= ll.Start - 7 && start < ll.End) - _RangeStartLink = ll; - if (_RangeEndLink == null && end >= ll.Start && end <= ll.End) - _RangeEndLink = ll; - } - //DebugPrint("SelectionStart {0}, SelectionEnd {1}, TextLength {2}", - // SelectionStart, SelectionStart + SelectionLength, - // TextLength); - //if (startLink != null) - // startLink.Show("startLink"); - //if (endLink != null) - // endLink.Show("endLink"); - //if (foundLink != null) - // foundLink.Show("foundLink"); - - if (foundLink == null) - return RTBRangeStatus = RangeStatus.NoContainedLinks; - - StartStatus myStartStatus = StartStatus.Before; - EndStatus myEndStatus = EndStatus.After; - if (_RangeStartLink != null) - { - if (_RangeStartLink.Start == 7) - myStartStatus = StartStatus.StartBox; - else if (_RangeStartLink.StartsBetween) - myStartStatus = StartStatus.Between; - else - myStartStatus = StartStatus.StartLink; - } - if (_RangeEndLink != null) - { - if (_RangeEndLink.End == TextLength) - myEndStatus = EndStatus.EndBox; - else if (_RangeEndLink.NextStart == _RangeEndLink.End) - myEndStatus = EndStatus.Between; - else if (end == _RangeEndLink.Start) - myEndStatus = EndStatus.StartLink; // Should not happen because of code in HandleSelectionChange - else //if (end == endLink.End) - myEndStatus = EndStatus.EndLink; - } - return RTBRangeStatus = (RangeStatus)((int)myStartStatus + (int)myEndStatus); - } - #endregion - } - #region LinkLocation - public class LinkLocation - { - private int _Start; - public int Start - { - get { return _Start; } - set { _Start = value; } - } - private int _Length; - public int Length - { - get { return _Length; } - set { _Length = value; } - } - public int End - { - get { return _Length + _Start; } - } - private int _StartRtf; - public int StartRtf - { - get { return _StartRtf; } - set { _StartRtf = value; } - } - private int _LengthRtf; - public int LengthRtf - { - get { return _LengthRtf; } - set { _LengthRtf = value; } - } - public int EndRtf - { - get { return _LengthRtf + _StartRtf; } - } - private string _Text; - public string Text - { - get { return _Text; } - set { _Text = value; } - } - private LinkLocation _PreviousLink = null; - public LinkLocation PreviousLink - { - get { return _PreviousLink; } - set - { - _PreviousLink = value; - value.NextLink = this; - } - } - private LinkLocation _NextLink = null; - public LinkLocation NextLink - { - get { return _NextLink; } - set { _NextLink = value; } - } - public int PreviousEnd - { - get { return PreviousLink == null ? -1 : PreviousLink.End; } - } - public bool StartsBetween - { - get { return PreviousEnd == Start; } - } - public int NextStart - { - get { return NextLink == null ? -1 : NextLink.Start; } - } - public bool EndsBetween - { - get { return NextStart == End; } - } - public LinkLocation(int start, int length, string text, int startRtf, int lengthRtf, LinkLocation previousLink) - { - _Start = start; - _Length = length; - _Text = text; - _StartRtf = startRtf; - _LengthRtf = lengthRtf; - if (previousLink != null) PreviousLink = previousLink; - } - public override string ToString() - { - return (string.Format("{0}, {1}", Start, End)); - } - public void Show(string str) - { - if (PreviousLink != null) - Console.WriteLine("LinkLocation: {0}.PreviousLink {1}", str, PreviousLink); - Console.WriteLine("LinkLocation: {0} {1}", str, this); - if (NextLink != null) - Console.WriteLine("LinkLocation: {0}.NextLink {1}", str, NextLink); - } - - } - #endregion -} diff --git a/PROMS/TestWndProc/TestWndProc/MyTextBox.Designer.cs b/PROMS/TestWndProc/TestWndProc/MyTextBox.Designer.cs deleted file mode 100644 index d0e7303a..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyTextBox.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace TestWndProc -{ - partial class MyTextBox - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} diff --git a/PROMS/TestWndProc/TestWndProc/MyTextBox.cs b/PROMS/TestWndProc/TestWndProc/MyTextBox.cs deleted file mode 100644 index fb981ed0..00000000 --- a/PROMS/TestWndProc/TestWndProc/MyTextBox.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Windows.Forms; -using System.Drawing; -using System.Data; -using System.Text; -using System.Runtime.InteropServices; - -namespace TestWndProc -{ - public partial class MyTextBox : TextBox - { - public event EventHandler SelectionChange; - public MyTextBox() - { - InitializeComponent(); - } - public MyTextBox(IContainer container) - { - container.Add(this); - InitializeComponent(); - } - private void OnSelectionChange() - { - if (SelectionChange != null) - SelectionChange(this, new EventArgs()); - } - const int WM_IME_NOTIFY = 0x282; - const int IMN_SETCOMPOSITIONWINDOW = 11; - /// - /// Allow SelectionChange - /// - /// - protected override void WndProc(ref Message m) - { - // Watch for SelectionChange Message - if (m.Msg == WM_IME_NOTIFY && m.WParam.ToInt32() == IMN_SETCOMPOSITIONWINDOW) - OnSelectionChange(); - base.WndProc(ref m); - } - } -} diff --git a/PROMS/TestWndProc/TestWndProc/Program.cs b/PROMS/TestWndProc/TestWndProc/Program.cs deleted file mode 100644 index 8acc8e82..00000000 --- a/PROMS/TestWndProc/TestWndProc/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace TestWndProc -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmWndProcTest()); - } - } -} \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/Properties/AssemblyInfo.cs b/PROMS/TestWndProc/TestWndProc/Properties/AssemblyInfo.cs deleted file mode 100644 index 750c5013..00000000 --- a/PROMS/TestWndProc/TestWndProc/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TestWndProc")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TestWndProc")] -[assembly: AssemblyCopyright("Copyright © 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5f8a440e-83ef-405a-99b0-51d2cd0d1037")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/TestWndProc/TestWndProc/Properties/Resources.Designer.cs b/PROMS/TestWndProc/TestWndProc/Properties/Resources.Designer.cs deleted file mode 100644 index 16c5d02b..00000000 --- a/PROMS/TestWndProc/TestWndProc/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.3074 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestWndProc.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestWndProc.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/TestWndProc/TestWndProc/Properties/Resources.resx b/PROMS/TestWndProc/TestWndProc/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/TestWndProc/TestWndProc/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/Properties/Settings.Designer.cs b/PROMS/TestWndProc/TestWndProc/Properties/Settings.Designer.cs deleted file mode 100644 index c87c1938..00000000 --- a/PROMS/TestWndProc/TestWndProc/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.3074 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestWndProc.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/TestWndProc/TestWndProc/Properties/Settings.settings b/PROMS/TestWndProc/TestWndProc/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/TestWndProc/TestWndProc/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/TestWndProc/TestWndProc/RTBAPI.cs b/PROMS/TestWndProc/TestWndProc/RTBAPI.cs deleted file mode 100644 index f7a1f070..00000000 --- a/PROMS/TestWndProc/TestWndProc/RTBAPI.cs +++ /dev/null @@ -1,1005 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using System.Drawing; -using System.Runtime.InteropServices; -using System.ComponentModel; -using System.Drawing.Design; -using System.Windows.Forms.Design; - -namespace TestWndProc -{ - public static class RTBAPI - { - #region SendMessage - [DllImport("user32.dll", SetLastError = true)] - private static extern int SendMessage(HandleRef hWndlock, Messages wMsg, Int32 wParam, ref Point pt); - [DllImport("user32.dll", SetLastError = true)] - private static extern int SendMessage(HandleRef hWndlock, Messages wMsg, Int32 wParam, int lParam); - [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] - public static extern int SendMessage(HandleRef hWndlock, Messages wMsg, RTBSelection wParam, ref CharFormat2 cf2); - [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] - public static extern int SendMessage(HandleRef hWndlock, Messages wMsg, int wParam, ref ParaFormat2 pf2); - #region RTB Messages - // EM_AUTOURLDETECT - An EM_AUTOURLDETECT message enables or disables automatic detection of URLs by a rich edit control. - // EM_CANPASTE - The EM_CANPASTE message determines whether a rich edit control can paste a specified clipboard format. - // EM_CANREDO - The EM_CANREDO message determines whether there are any actions in the control redo queue. - // EM_DISPLAYBAND - The EM_DISPLAYBAND message displays a portion of the contents of a rich edit control, as previously formatted for a device using the EM_FORMATRANGE message. - // EM_EXGETSEL - The EM_EXGETSEL message retrieves the starting and ending character positions of the selection in a rich edit control. - // EM_EXLIMITTEXT - The EM_EXLIMITTEXT message sets an upper limit to the amount of text the user can type or paste into a rich edit control. - // EM_EXLINEFROMCHAR - The EM_EXLINEFROMCHAR message determines which line contains the specified character in a rich edit control. - // EM_EXSETSEL - The EM_EXSETSEL message selects a range of characters or COM objects in a Rich Edit control. - // EM_FINDTEXT - The EM_FINDTEXT message finds text within a rich edit control. - // EM_FINDTEXTEX - The EM_FINDTEXTEX message finds text within a rich edit control. - // EM_FINDTEXTEXW - The EM_FINDTEXTEXW message finds Unicode text within a rich edit control. - // EM_FINDTEXTW - The EM_FINDTEXTW message finds Unicode text within a rich edit control. - // EM_FINDWORDBREAK - The EM_FINDWORDBREAK message finds the next word break before or after the specified character position or retrieves information about the character at that position. - // EM_FORMATRANGE - The EM_FORMATRANGE message formats a range of text in a rich edit control for a specific device. - // EM_GETAUTOURLDETECT - The EM_GETAUTOURLDETECT message indicates whether the auto URL detection is turned on in the rich edit control. - // EM_GETBIDIOPTIONS - The EM_GETBIDIOPTIONS message indicates the current state of the bidirectional options in the rich edit control. - // EM_GETCHARFORMAT - The EM_GETCHARFORMAT message determines the character formatting in a rich edit control. - // EM_GETCTFMODEBIAS - An application sends a EM_GETCTFMODEBIAS message to get the Text Services Framework mode bias values for a Rich Edit control. - // EM_GETCTFOPENSTATUS - An application sends an EM_GETCTFOPENSTATUS message to determine if the Text Services Framework (TSF) keyboard is open or closed. - // EM_GETEDITSTYLE - The EM_GETEDITSTYLE message retrieves the current edit style flags. - // EM_GETEVENTMASK - The EM_GETEVENTMASK message retrieves the event mask for a rich edit control. The event mask specifies which notification messages the control sends to its parent window. - // EM_GETHYPHENATEINFO - An application sends an EM_GETHYPHENATEINFO message to get information about hyphenation for a Rich Edit control. - // EM_GETIMECOLOR - The EM_GETIMECOLOR message retrieves the Input Method Editor (IME) composition color. This message is available only in Asian-language versions of the operating system. - // EM_GETIMECOMPMODE - An application sends an EM_GETIMECOMPMODE message to get the current IME mode for a rich edit control. - // EM_GETIMECOMPTEXT - An application sends an EM_GETIMECOMPTEXT message to get the IME composition text. - // EM_GETIMEMODEBIAS - An application sends an EM_GETIMEMODEBIAS message to get the IME mode bias for a Rich Edit control. - // EM_GETIMEOPTIONS - The EM_GETIMEOPTIONS message retrieves the current IME options. This message is available only in Asian-language versions of the operating system. - // EM_GETIMEPROPERTY - An application sends a EM_GETIMEPROPERTY message to get the property and capabilities of the IME associated with the current input locale. - // EM_GETLANGOPTIONS - An application sends an EM_GETLANGOPTIONS message to get a rich edit control's option settings for IME and Asian language support. - // EM_GETOLEINTERFACE - The EM_GETOLEINTERFACE message retrieves an IRichEditOle object that a client can use to access a rich edit control's COM functionality. - // EM_GETOPTIONS - The EM_GETOPTIONS message retrieves rich edit control options. - // EM_GETPAGEROTATE - Deprecated. An application sends an EM_GETPAGEROTATE message to get the text layout for a Rich Edit control. - // EM_GETPARAFORMAT - The EM_GETPARAFORMAT message retrieves the paragraph formatting of the current selection in a rich edit control. - // EM_GETPUNCTUATION - The EM_GETPUNCTUATION message gets the current punctuation characters for the rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_GETREDONAME - An application sends an EM_GETREDONAME message to a rich edit control to retrieve the type of the next action, if any, in the control's redo queue. - // EM_GETSCROLLPOS - An application sends an EM_GETSCROLLPOS message to obtain the current scroll position of the edit control. - // EM_GETSELTEXT - The EM_GETSELTEXT message retrieves the currently selected text in a rich edit control. - // EM_GETTEXTEX - The EM_GETTEXTEX message allows you to get all of the text from the rich edit control in any particular code base you want. - // EM_GETTEXTLENGTHEX - The EM_GETTEXTLENGTHEX message calculates text length in various ways. It is usually called before creating a buffer to receive the text from the control. - // EM_GETTEXTMODE - An application sends an EM_GETTEXTMODE message to get the current text mode and undo level of a rich edit control. - // EM_GETTEXTRANGE - The EM_GETTEXTRANGE message retrieves a specified range of characters from a rich edit control. - // EM_GETTYPOGRAPHYOPTIONS - The EM_GETTYPOGRAPHYOPTIONS message returns the current state of the typography options of a rich edit control. - // EM_GETUNDONAME - Rich Edit 2.0 and later: An application sends an EM_GETUNDONAME message to a rich edit control to retrieve the type of the next undo action, if any. - // EM_GETWORDBREAKPROCEX - The EM_GETWORDBREAKPROCEX message retrieves the address of the currently registered extended word-break procedure. - // EM_GETWORDWRAPMODE - The EM_GETWORDWRAPMODE message gets the current word wrap and word-break options for the rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_GETZOOM - The EM_GETZOOM message gets the current zoom ratio, which is always between 1/64 and 64. - // EM_HIDESELECTION - The EM_HIDESELECTION message hides or shows the selection in a rich edit control. - // EM_ISIME - An application sends a EM_ISIME message to determine if current input locale is an East Asian locale. - // EM_PASTESPECIAL - The EM_PASTESPECIAL message pastes a specific clipboard format in a rich edit control. - // EM_RECONVERSION - The EM_RECONVERSION message invokes the IME reconversion dialog box. - // EM_REDO - Send an EM_REDO message to a rich edit control to redo the next action in the control's redo queue. - // EM_REQUESTRESIZE - The EM_REQUESTRESIZE message forces a rich edit control to send an EN_REQUESTRESIZE notification message to its parent window. - // EM_SELECTIONTYPE - The EM_SELECTIONTYPE message determines the selection type for a rich edit control. - // EM_SETBIDIOPTIONS - The EM_SETBIDIOPTIONS message sets the current state of the bidirectional options in the rich edit control. - // EM_SETBKGNDCOLOR - The EM_SETBKGNDCOLOR message sets the background color for a rich edit control. - // EM_SETCHARFORMAT - The EM_SETCHARFORMAT message sets character formatting in a rich edit control. - // EM_SETCTFMODEBIAS - An application sends an EM_SETCTFMODEBIAS message to set the Text Services Framework (TSF) mode bias for a Rich Edit control. - // EM_SETCTFOPENSTATUS - An application sends an EM_SETCTFOPENSTATUS message to open or close the Text Services Framework (TSF) keyboard. - // EM_SETEDITSTYLE - The EM_SETEDITSTYLE message sets the current edit style flags. - // EM_SETEVENTMASK - The EM_SETEVENTMASK message sets the event mask for a rich edit control. The event mask specifies which notification messages the control sends to its parent window. - // EM_SETFONTSIZE - The EM_SETFONTSIZE message sets the font size for the selected text. - // EM_SETHYPHENATEINFO - An application sends an EM_SETHYPHENATEINFO message to set the way a Rich Edit control does hyphenation. - // EM_SETIMECOLOR - The EM_SETIMECOLOR message sets the IME composition color. This message is available only in Asian-language versions of the operating system. - // EM_SETIMEMODEBIAS - An application sends an EM_SETIMEMODEBIAS message to set the IME mode bias for a Rich Edit control. - // EM_SETIMEOPTIONS - The EM_SETIMEOPTIONS message sets the IME options. This message is available only in Asian-language versions of the operating system. - // EM_SETLANGOPTIONS - An application sends an EM_SETLANGOPTIONS message to set options for IME and Asian language support in a rich edit control. - // EM_SETOLECALLBACK - The EM_SETOLECALLBACK message gives a rich edit control an IRichEditOleCallback object that the control uses to get OLE-related resources and information from the client. - // EM_SETOPTIONS - The EM_SETOPTIONS message sets the options for a rich edit control. - // EM_SETPAGEROTATE - Deprecated. An application sends an EM_SETPAGEROTATE message to set the text layout for a Rich Edit control. - // EM_SETPALETTE - An application sends an EM_SETPALETTE message to change the palette that rich edit uses for its display window. - // EM_SETPARAFORMAT - The EM_SETPARAFORMAT message sets the paragraph formatting for the current selection in a rich edit control. - // EM_SETPUNCTUATION - The EM_SETPUNCTUATION message sets the punctuation characters for a rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_SETSCROLLPOS - An application sends an EM_SETSCROLLPOS message to tell the rich edit control to scroll to a particular point. - // EM_SETTARGETDEVICE - The EM_SETTARGETDEVICE message sets the target device and line width used for "what you see is what you get" (WYSIWYG) formatting in a rich edit control. - // EM_SETTEXTEX - The EM_SETTEXTEX message combines the functionality of WM_SETTEXT and EM_REPLACESEL and adds the ability to set text using a code page and to use either rich text or plain text. - // EM_SETTEXTMODE - An application sends an EM_SETTEXTMODE message to set the text mode or undo level of a rich edit control. The message fails if the control contains any text. - // EM_SETTYPOGRAPHYOPTIONS - The EM_SETTYPOGRAPHYOPTIONS message sets the current state of the typography options of a rich edit control. - // EM_SETUNDOLIMIT - An application sends an EM_SETUNDOLIMIT message to a rich edit control to set the maximum number of actions that can stored in the undo queue. - // EM_SETWORDBREAKPROCEX - The EM_SETWORDBREAKPROCEX message sets the extended word-break procedure. - // EM_SETWORDWRAPMODE - The EM_SETWORDWRAPMODE message sets the word-wrapping and word-breaking options for the rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_SETZOOM - The EM_SETZOOM message sets the zoom ratio anywhere between 1/64 and 64. - // EM_SHOWSCROLLBAR - The EM_SHOWSCROLLBAR message shows or hides one of the scroll bars in the Text Host window. - // EM_STOPGROUPTYPING - An application sends an EM_STOPGROUPTYPING message to a rich edit control to stop the control from collecting additional typing actions into the current undo action. The control stores the next typing action, if any, into a new action in the undo queue. - // EM_STREAMIN - The EM_STREAMIN message replaces the contents of a rich edit control with a stream of data provided by an application defined - // EM_STREAMOUT - The EM_STREAMOUT message causes a rich edit control to pass its contents to an application - #endregion - #endregion - public struct ParaFormat2 - { - public int cbSize; - public int dwMask; - public ushort wNumbering; - public short wEffects; - public int dxStartIndent; - public int dxRightIndent; - public int dxOffset; - public short wAlignment; - public short cTabCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] - public int[] rgxTabs; - public int dySpaceBefore; - public int dySpaceAfter; - public int dyLineSpacing; - public short sStyle; - public byte bLineSpacingRule; - public byte bOutlineLevel; - public short wShadingWeight; - public short wShadingStyle; - public short wNumberingStart; - public short wNumberingStyle; - public short wNumberingTab; - public short wBorderSpace; - public short wBorderWidth; - public short wBorders; - } - public class ParaFormatTwo - { - private ParaFormat2 _ParaFormat2; - public ParaFormatTwo(ParaFormat2 pf) - { - _ParaFormat2 = pf; - } - public ParaFormat2 ParaFormat2 - { - get { return _ParaFormat2; } - } - public int cbSize - { - get { return _ParaFormat2.cbSize; } - set { _ParaFormat2.cbSize = value; } - } - [Editor(typeof(FlagEnumUIEditor), typeof(System.Drawing.Design.UITypeEditor))] - public ParaFormatMasks dwMask - { - get { return (ParaFormatMasks)_ParaFormat2.dwMask; } - set { _ParaFormat2.dwMask = (int)value; } - } - public ParaNumbering wNumbering - { - get { return (ParaNumbering)_ParaFormat2.wNumbering; } - set { _ParaFormat2.wNumbering = (ushort)value; } - } - public ParaFormatEffects wEffects - { - get { return (ParaFormatEffects)_ParaFormat2.wEffects; } - set { _ParaFormat2.wEffects = (short)value; } - } - public int dxStartIndent - { - get { return _ParaFormat2.dxStartIndent; } - set { _ParaFormat2.dxStartIndent = value; } - } - public int dxRightIndent - { - get { return _ParaFormat2.dxRightIndent; } - set { _ParaFormat2.dxRightIndent = value; } - } - public int dxOffset - { - get { return _ParaFormat2.dxOffset; } - set { _ParaFormat2.dxOffset = value; } - } - public ParaAlignment wAlignment - { - get { return (ParaAlignment)_ParaFormat2.wAlignment; } - set { _ParaFormat2.wAlignment = (short)value; } - } - public short cTabCount - { - get { return _ParaFormat2.cTabCount; } - set { _ParaFormat2.cTabCount = value; } - } - public int[] rgxTabs - { - get { return _ParaFormat2.rgxTabs; } - set { _ParaFormat2.rgxTabs = value; } - } - public int dySpaceBefore - { - get { return _ParaFormat2.dySpaceBefore; } - set { _ParaFormat2.dySpaceBefore = value; } - } - public int dySpaceAfter - { - get { return _ParaFormat2.dySpaceAfter; } - set { _ParaFormat2.dySpaceAfter = value; } - } - public int dyLineSpacing - { - get { return _ParaFormat2.dyLineSpacing; } - set { _ParaFormat2.dyLineSpacing = value; } - } - public short sStyle - { - get { return _ParaFormat2.sStyle; } - set { _ParaFormat2.sStyle = value; } - } - public ParaSpacing bLineSpacingRule - { - get { return (ParaSpacing)_ParaFormat2.bLineSpacingRule; } - set { _ParaFormat2.bLineSpacingRule = (byte)value; } - } - public byte bOutlineLevel - { - get { return _ParaFormat2.bOutlineLevel; } - set { _ParaFormat2.bOutlineLevel = value; } - } - public short wShadingWeight - { - get { return _ParaFormat2.wShadingWeight; } - set { _ParaFormat2.wShadingWeight = value; } - } - public short wShadingStyle - { - get { return _ParaFormat2.wShadingStyle; } - set { _ParaFormat2.wShadingStyle = value; } - } - public short wNumberingStart - { - get { return _ParaFormat2.wNumberingStart; } - set { _ParaFormat2.wNumberingStart = value; } - } - public short wNumberingStyle - { - get { return _ParaFormat2.wNumberingStyle; } - set { _ParaFormat2.wNumberingStyle = value; } - } - public short wNumberingTab - { - get { return _ParaFormat2.wNumberingTab; } - set { _ParaFormat2.wNumberingTab = value; } - } - public short wBorderSpace - { - get { return _ParaFormat2.wBorderSpace; } - set { _ParaFormat2.wBorderSpace = value; } - } - public short wBorderWidth - { - get { return _ParaFormat2.wBorderWidth; } - set { _ParaFormat2.wBorderWidth = value; } - } - public short wBorders - { - get { return _ParaFormat2.wBorders; } - set { _ParaFormat2.wBorders = value; } - } - } - - const int WM_USER = 0x0400; - public enum Messages : int - { - EM_AUTOURLDETECT = WM_USER + 91, - EM_CANPASTE = WM_USER + 50, - EM_CANREDO = WM_USER + 85, - EM_DISPLAYBAND = WM_USER + 51, - EM_EXGETSEL = WM_USER + 52, - EM_EXLIMITTEXT = WM_USER + 53, - EM_EXLINEFROMCHAR = WM_USER + 54, - EM_EXSETSEL = WM_USER + 55, - EM_FINDTEXT = WM_USER + 56, - EM_FINDTEXTEX = WM_USER + 79, - EM_FINDTEXTEXW = WM_USER + 124, - EM_FINDTEXTW = WM_USER + 123, - EM_FINDWORDBREAK = WM_USER + 76, - EM_FORMATRANGE = WM_USER + 57, - EM_GETAUTOURLDETECT = WM_USER + 92, - EM_GETBIDIOPTIONS = WM_USER + 201, - EM_GETCHARFORMAT = WM_USER + 58, - EM_GETCTFMODEBIAS = WM_USER + 237, - EM_GETCTFOPENSTATUS = WM_USER + 240, - EM_GETEDITSTYLE = WM_USER + 205, - EM_GETEVENTMASK = WM_USER + 59, - EM_GETHYPHENATEINFO = WM_USER + 230, - EM_GETIMECOLOR = WM_USER + 105, - EM_GETIMECOMPMODE = WM_USER + 122, - EM_GETIMECOMPTEXT = WM_USER + 242, - EM_GETIMEMODEBIAS = WM_USER + 127, - EM_GETIMEOPTIONS = WM_USER + 107, - EM_GETIMEPROPERTY = WM_USER + 244, - EM_GETLANGOPTIONS = WM_USER + 121, - EM_GETOLEINTERFACE = WM_USER + 60, - EM_GETOPTIONS = WM_USER + 78, - EM_GETPAGEROTATE = WM_USER + 235, - EM_GETPARAFORMAT = WM_USER + 61, - EM_GETPUNCTUATION = WM_USER + 101, - EM_GETREDONAME = WM_USER + 87, - EM_GETSCROLLPOS = WM_USER + 221, - EM_GETSELTEXT = WM_USER + 62, - EM_GETTEXTEX = WM_USER + 94, - EM_GETTEXTLENGTHEX = WM_USER + 95, - EM_GETTEXTMODE = WM_USER + 90, - EM_GETTEXTRANGE = WM_USER + 75, - EM_GETTYPOGRAPHYOPTIONS = WM_USER + 203, - EM_GETUNDONAME = WM_USER + 86, - EM_GETWORDBREAKPROCEX = WM_USER + 80, - EM_GETWORDWRAPMODE = WM_USER + 103, - EM_GETZOOM = WM_USER + 224, - EM_HIDESELECTION = WM_USER + 63, - EM_ISIME = WM_USER + 243, - EM_PASTESPECIAL = WM_USER + 64, - EM_RECONVERSION = WM_USER + 125, - EM_REDO = WM_USER + 84, - EM_REQUESTRESIZE = WM_USER + 65, - EM_SELECTIONTYPE = WM_USER + 66, - EM_SETBIDIOPTIONS = WM_USER + 200, - EM_SETBKGNDCOLOR = WM_USER + 67, - EM_SETCHARFORMAT = WM_USER + 68, - EM_SETCTFMODEBIAS = WM_USER + 238, - EM_SETCTFOPENSTATUS = WM_USER + 241, - EM_SETEDITSTYLE = WM_USER + 204, - EM_SETEVENTMASK = WM_USER + 69, - EM_SETFONTSIZE = WM_USER + 223, - EM_SETHYPHENATEINFO = WM_USER + 231, - EM_SETIMECOLOR = WM_USER + 104, - EM_SETIMEMODEBIAS = WM_USER + 126, - EM_SETIMEOPTIONS = WM_USER + 106, - EM_SETLANGOPTIONS = WM_USER + 120, - EM_SETOLECALLBACK = WM_USER + 70, - EM_SETOPTIONS = WM_USER + 77, - EM_SETPAGEROTATE = WM_USER + 236, - EM_SETPALETTE = WM_USER + 93, - EM_SETPARAFORMAT = WM_USER + 71, - EM_SETPUNCTUATION = WM_USER + 100, - EM_SETSCROLLPOS = WM_USER + 222, - EM_SETTARGETDEVICE = WM_USER + 72, - EM_SETTEXTEX = WM_USER + 97, - EM_SETTEXTMODE = WM_USER + 89, - EM_SETTYPOGRAPHYOPTIONS = WM_USER + 202, - EM_SETUNDOLIMIT = WM_USER + 82, - EM_SETWORDBREAKPROCEX = WM_USER + 81, - EM_SETWORDWRAPMODE = WM_USER + 102, - EM_SETZOOM = WM_USER + 225, - EM_SHOWSCROLLBAR = WM_USER + 96, - EM_STOPGROUPTYPING = WM_USER + 88, - EM_STREAMIN = WM_USER + 73, - EM_STREAMOUT = WM_USER + 74 - }; - const int ENM_PROTECTED = 0x00200000; - - public static void SetNotifyProtect(RichTextBox richTextBox) - { - //int oldEventMask = SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_GETEVENTMASK,0, 0); - int oldEventMask = SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETEVENTMASK, 0, 0); - int newEventMask = oldEventMask | ENM_PROTECTED; - int result = SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETEVENTMASK, 0, newEventMask); - } - public static CharFormatTwo GetCharFormat(RichTextBox richTextBox, RTBSelection selection) - { - CharFormat2 cf = new CharFormat2(); - cf.cbSize = Marshal.SizeOf(cf); - if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_GETCHARFORMAT, selection, ref cf) == 0) - throw new Win32Exception(); - return new CharFormatTwo(cf); - } - public static void SetCharFormat(RichTextBox richTextBox, RTBSelection selection, CharFormatTwo cft) - { - try - { - CharFormat2 cf2 = cft.CharFormat2; - if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETCHARFORMAT, selection, ref cf2) == 0) - throw new Win32Exception(); - } - catch (Exception ex) - { - Console.WriteLine("Error on SetCharFormat {0}", ex.Message); - } - - } - - public static void ToggleBold(bool bSet, RichTextBox richTextBox, RTBSelection selection) - { - CharFormatTwo cft = GetCharFormat(richTextBox, selection); - if (bSet) - { - cft.dwEffects |= CharFormatEffects.CFE_BOLD; - cft.dwMask |= CharFormatMasks.CFM_BOLD; - } - else - { - cft.dwEffects &= ~RTBAPI.CharFormatEffects.CFE_BOLD; - } - SetCharFormat(richTextBox, selection, cft); - } - public static void UnProtect(RichTextBox richTextBox) //, string type, string text, string link) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ; - cft.dwMask = RTBAPI.CharFormatMasks.CFM_PROTECTED; - cft.dwEffects = CharFormatEffects.CFE_NONE; - SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - } - public static void Protect(RichTextBox richTextBox) //, string type, string text, string link) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ; - cft.dwMask = RTBAPI.CharFormatMasks.CFM_PROTECTED; - cft.dwEffects = CharFormatEffects.CFE_PROTECTED; - SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - } - public static void UnLink(RichTextBox richTextBox) //, string type, string text, string link) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ; - cft.dwMask = RTBAPI.CharFormatMasks.CFM_LINK; - cft.dwEffects = CharFormatEffects.CFE_NONE; - SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - } - public static void Link(RichTextBox richTextBox) //, string type, string text, string link) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ; - cft.dwMask = RTBAPI.CharFormatMasks.CFM_LINK; - cft.dwEffects = CharFormatEffects.CFE_LINK; - SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - } - - public enum RTBSelection : int - { - SCF_DEFAULT = 0x0000, - SCF_SELECTION = 0x0001, - SCF_WORD = 0x0002, - SCF_ALL = 0x0004, - SCF_USEUIRULES = 0x0008 - } - public class CharFormatTwo - { - public CharFormatTwo(CharFormat2 cf) - { - _CharFormat2 = cf; - } - private CharFormat2 _CharFormat2; - [Browsable(false)] - public CharFormat2 CharFormat2 - { - get { return _CharFormat2; } - } - [Browsable(false)] - public int cbSize - { - get { return _CharFormat2.cbSize; } - set { _CharFormat2.cbSize = value; } - } - [Editor(typeof(FlagEnumUIEditor), typeof(System.Drawing.Design.UITypeEditor))] - public CharFormatMasks dwMask - { - get { return (CharFormatMasks)_CharFormat2.dwMask; } - set { _CharFormat2.dwMask = (uint)value; } - } - [Editor(typeof(FlagEnumUIEditor), typeof(System.Drawing.Design.UITypeEditor))] - public CharFormatEffects dwEffects - { - get { return (CharFormatEffects)_CharFormat2.dwEffects; } - set { _CharFormat2.dwEffects = (uint)value; } - } - public int yHeight - { - get { return _CharFormat2.yHeight; } - set { _CharFormat2.yHeight = value; } - } - public int yOffset - { - get { return _CharFormat2.yOffset; } - set { _CharFormat2.yOffset = value; } - } - private Color Int2Color(int color) - { - return Color.FromArgb(color % 256, (color / 256) % 256, color / (256 * 256)); - } - private int Color2Int(Color color) - { - return color.R + (color.G * 256) + (color.B * 256 * 256); - } - public Color crTextColor - { - get { return Int2Color(_CharFormat2.crTextColor); } - set { _CharFormat2.crTextColor = Color2Int(value); } - } - public byte bCharSet - { - get { return _CharFormat2.bCharSet; } - set { _CharFormat2.bCharSet = value; } - } - public byte bPitchAndFamily - { - get { return _CharFormat2.bPitchAndFamily; } - set { _CharFormat2.bPitchAndFamily = value; } - } - public string szFaceName - { - get { return _CharFormat2.szFaceName; } - set { _CharFormat2.szFaceName = value; } - } - public short wWeight - { - get { return _CharFormat2.wWeight; } - set { _CharFormat2.wWeight = value; } - } - public short sSpacing - { - get { return _CharFormat2.sSpacing; } - set { _CharFormat2.sSpacing = value; } - } - public Color crBackColor - { - get { return Int2Color(_CharFormat2.crBackColor); } - set { _CharFormat2.crBackColor = Color2Int(value); } - } - public int lcid - { - get { return _CharFormat2.lcid; } - set { _CharFormat2.lcid = value; } - } - public int dwReserved - { - get { return _CharFormat2.dwReserved; } - set { _CharFormat2.dwReserved = value; } - } - public short sStyle - { - get { return _CharFormat2.sStyle; } - set { _CharFormat2.sStyle = value; } - } - public short wKerning - { - get { return _CharFormat2.wKerning; } - set { _CharFormat2.wKerning = value; } - } - public CharUnderline bUnderlineType - { - get { return (CharUnderline)_CharFormat2.bUnderlineType; } - set { _CharFormat2.bUnderlineType = (byte)value; } - } - public byte bAnimation - { - get { return _CharFormat2.bAnimation; } - set { _CharFormat2.bAnimation = value; } - } - public byte bRevAuthor - { - get { return _CharFormat2.bRevAuthor; } - set { _CharFormat2.bRevAuthor = value; } - } - public byte bReserved1 - { - get { return _CharFormat2.bReserved1; } - set { _CharFormat2.bReserved1 = value; } - } - } - public struct CharFormat2 - { - public int cbSize; - public uint dwMask; - public uint dwEffects; - public int yHeight; - public int yOffset; - public int crTextColor; - public byte bCharSet; - public byte bPitchAndFamily; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] - public string szFaceName; - public short wWeight; - public short sSpacing; - public int crBackColor; - public int lcid; - public int dwReserved; - public short sStyle; - public short wKerning; - public byte bUnderlineType; - public byte bAnimation; - public byte bRevAuthor; - public byte bReserved1; - } - public enum CharFormatMasks : uint - { - CFM_NONE = 0, - CFM_BOLD = 0x00000001, - CFM_ITALIC = 0x00000002, - CFM_UNDERLINE = 0x00000004, - CFM_STRIKEOUT = 0x00000008, - CFM_PROTECTED = 0x00000010, - CFM_LINK = 0x00000020, // Exchange hyperlink extension - CFM_SIZE = 0x80000000, - CFM_COLOR = 0x40000000, - CFM_FACE = 0x20000000, - CFM_OFFSET = 0x10000000, - CFM_CHARSET = 0x08000000, - CFM_SMALLCAPS = 0x0040, - CFM_ALLCAPS = 0x0080, - CFM_HIDDEN = 0x0100, - CFM_OUTLINE = 0x0200, - CFM_SHADOW = 0x0400, - CFM_EMBOSS = 0x0800, - CFM_IMPRINT = 0x1000, - CFM_DISABLED = 0x2000, - CFM_REVISED = 0x4000, - CFM_BACKCOLOR = 0x04000000, - CFM_LCID = 0x02000000, - CFM_UNDERLINETYPE = 0x00800000, - CFM_WEIGHT = 0x00400000, - CFM_SPACING = 0x00200000, - CFM_KERNING = 0x00100000, - CFM_STYLE = 0x00080000, - CFM_ANIMATION = 0x00040000, - CFM_REVAUTHOR = 0x00008000, - CFM_SUBSCRIPT = 0x00010000, - CFM_SUPERSCRIPT = 0x00020000 - // CFM_SUBorSUPERSCRIPT = 0x00030000 - } - public enum CharFormatEffects : uint - { - CFE_NONE = 0, - CFE_BOLD = 0x0001, - CFE_ITALIC = 0x0002, - CFE_UNDERLINE = 0x0004, - CFE_STRIKEOUT = 0x0008, - CFE_PROTECTED = 0x0010, - CFE_LINK = 0x0020, - CFE_AUTOBACKCOLOR = 0x04000000, // NOTE: this corresponds to CFM_BACKCOLOR, which controls it - CFE_AUTOCOLOR = 0x40000000, // NOTE: this corresponds to CFM_COLOR, which controls it - CFE_SUBSCRIPT = 0x00010000, // Superscript and subscript are - CFE_SUPERSCRIPT = 0x00020000, // mutually exclusive - CFE_SMALLCAPS = 0x0040, - CFE_ALLCAPS = 0x0080, - CFE_HIDDEN = 0x0100, - CFE_OUTLINE = 0x0200, - CFE_SHADOW = 0x0400, - CFE_EMBOSS = 0x0800, - CFE_IMPRINT = 0x1000, - CFE_DISABLED = 0x2000, - CFE_REVISED = 0x4000 - } - public enum CharUnderline : byte - { - CFU_UNDERLINENONE = 0, - CFU_UNDERLINE = 1, - CFU_UNDERLINEWORD = 2, // displayed as ordinary underline - CFU_UNDERLINEDOUBLE = 3, // displayed as ordinary underline - CFU_UNDERLINEDOTTED = 4, - CFU_UNDERLINEDASH = 5, - CFU_UNDERLINEDASHDOT = 6, - CFU_UNDERLINEDASHDOTDOT = 7, - CFU_UNDERLINEWAVE = 8, - CFU_UNDERLINETHICK = 9, - CFU_INVERT = 0xFE // For IME composition fake a selection. - } - public enum ParaFormatMasks : uint - { - PFM_NONE = 0, - PFM_STARTINDENT = 0x00000001, - PFM_RIGHTINDENT = 0x00000002, - PFM_OFFSET = 0x00000004, - PFM_ALIGNMENT = 0x00000008, - PFM_TABSTOPS = 0x00000010, - PFM_NUMBERING = 0x00000020, - PFM_SPACEBEFORE = 0x00000040, - PFM_SPACEAFTER = 0x00000080, - PFM_LINESPACING = 0x00000100, - PFM_RESERVED = 0x00000200, - PFM_STYLE = 0x00000400, - PFM_BORDER = 0x00000800, - PFM_SHADING = 0x00001000, - PFM_NUMBERINGSTYLE = 0x00002000, - PFM_NUMBERINGTAB = 0x00004000, - PFM_NUMBERINGSTART = 0x00008000, - // PFM_DIR = 0x00010000, - PFM_RTLPARA = 0x00010000, - PFM_KEEP = 0x00020000, - PFM_KEEPNEXT = 0x00040000, - PFM_PAGEBREAKBEFORE = 0x00080000, - PFM_NOLINENUMBER = 0x00100000, - PFM_NOWIDOWCONTROL = 0x00200000, - PFM_DONOTHYPHEN = 0x00400000, - PFM_SIDEBYSIDE = 0x00800000, - PFM_TABLEROWDELIMITER = 0x10000000, - PFM_TEXTWRAPPINGBREAK = 0x20000000, - PFM_TABLE = 0x40000000, - PFM_OFFSETINDENT = 0x80000000 - } - public enum ParaFormatEffects : ushort - { - PFE_RTLPARA = 0x0001, - PFE_KEEP = 0x0002, - PFE_KEEPNEXT = 0x0004, - PFE_PAGEBREAKBEFORE = 0x0008, - PFE_NOLINENUMBER = 0x0010, - PFE_NOWIDOWCONTROL = 0x0020, - PFE_DONOTHYPHEN = 0x0040, - PFE_SIDEBYSIDE = 0x0080, - PFE_TABLEROW = 0xc000, /* These 3 options are mutually */ - PFE_TABLECELLEND = 0x8000, /* exclusive and each imply */ - PFE_TABLECELL = 0x4000, /* that para is part of a table*/ - } - public enum ParaAlignment : ushort - { - PFA_LEFT = 1, - PFA_RIGHT = 2, - PFA_CENTER = 3, - PFA_JUSTIFY = 4, - PFA_FULL_INTERWORD = 5 - } - public enum ParaNumbering : ushort - { - PFN_NONE = 0, - PFN_BULLET = 1, - PFN_ARABIC = 2, - PFN_LOWER = 3, - PFN_UPPER = 4, - PFN_LOWERROMAN = 5, - PFN_UPPERROMAN = 6, - PFN_UNI = 7 - } - public enum ParaSpacing : byte - { - PFS_SINGLE = 0, - PFS_ONEANDONEHALF = 1, - PFS_DOUBLE = 2, - PFS_EXACTSINGLEMIN = 3, - PFS_EXACT = 4, - PFS_EXACT20 = 5 - } - - } - public class FlagEnumUIEditor : UITypeEditor - { - // The checklistbox - private FlagCheckedListBox flagEnumCB; - - public FlagEnumUIEditor() - { - flagEnumCB = new FlagCheckedListBox(); - flagEnumCB.BorderStyle = BorderStyle.None; - } - - public override object EditValue(ITypeDescriptorContext context, IServiceProvider provider, object value) - { - if (context != null - && context.Instance != null - && provider != null) - { - - IWindowsFormsEditorService edSvc = (IWindowsFormsEditorService)provider.GetService(typeof(IWindowsFormsEditorService)); - - if (edSvc != null) - { - - Enum e = (Enum)Convert.ChangeType(value, context.PropertyDescriptor.PropertyType); - flagEnumCB.EnumValue = e; - edSvc.DropDownControl(flagEnumCB); - return flagEnumCB.EnumValue; - - } - } - return null; - } - - public override UITypeEditorEditStyle GetEditStyle(ITypeDescriptorContext context) - { - return UITypeEditorEditStyle.DropDown; - } - - - } - public class FlagCheckedListBox : CheckedListBox - { - private System.ComponentModel.Container components = null; - - public FlagCheckedListBox() - { - // This call is required by the Windows.Forms Form Designer. - InitializeComponent(); - - // TODO: Add any initialization after the InitForm call - - } - - protected override void Dispose(bool disposing) - { - if (disposing) - { - if (components != null) - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - private void InitializeComponent() - { - // - // FlaggedCheckedListBox - // - this.CheckOnClick = true; - - } - #endregion - - // Adds an integer value and its associated description - public FlagCheckedListBoxItem Add(uint v, string c) - { - FlagCheckedListBoxItem item = new FlagCheckedListBoxItem(v, c); - Items.Add(item); - return item; - } - - public FlagCheckedListBoxItem Add(FlagCheckedListBoxItem item) - { - Items.Add(item); - return item; - } - - protected override void OnItemCheck(ItemCheckEventArgs e) - { - base.OnItemCheck(e); - - if (isUpdatingCheckStates) - return; - - // Get the checked/unchecked item - FlagCheckedListBoxItem item = Items[e.Index] as FlagCheckedListBoxItem; - // Update other items - UpdateCheckedItems(item, e.NewValue); - } - - // Checks/Unchecks items depending on the give bitvalue - protected void UpdateCheckedItems(uint value) - { - - isUpdatingCheckStates = true; - - // Iterate over all items - for (int i = 0; i < Items.Count; i++) - { - FlagCheckedListBoxItem item = Items[i] as FlagCheckedListBoxItem; - - if (item.value == 0) - { - SetItemChecked(i, value == 0); - } - else - { - - // If the bit for the current item is on in the bitvalue, check it - if ((item.value & value) == item.value && item.value != 0) - SetItemChecked(i, true); - // Otherwise uncheck it - else - SetItemChecked(i, false); - } - } - - isUpdatingCheckStates = false; - - } - - // Updates items in the checklistbox - // composite = The item that was checked/unchecked - // cs = The check state of that item - protected void UpdateCheckedItems(FlagCheckedListBoxItem composite, CheckState cs) - { - - // If the value of the item is 0, call directly. - if (composite.value == 0) - UpdateCheckedItems(0); - - - // Get the total value of all checked items - uint sum = 0; - for (int i = 0; i < Items.Count; i++) - { - FlagCheckedListBoxItem item = Items[i] as FlagCheckedListBoxItem; - - // If item is checked, add its value to the sum. - if (GetItemChecked(i)) - sum |= item.value; - } - - // If the item has been unchecked, remove its bits from the sum - if (cs == CheckState.Unchecked) - sum = sum & (~composite.value); - // If the item has been checked, combine its bits with the sum - else - sum |= composite.value; - - // Update all items in the checklistbox based on the final bit value - UpdateCheckedItems(sum); - - } - - private bool isUpdatingCheckStates = false; - - // Gets the current bit value corresponding to all checked items - public uint GetCurrentValue() - { - uint sum = 0; - - for (int i = 0; i < Items.Count; i++) - { - FlagCheckedListBoxItem item = Items[i] as FlagCheckedListBoxItem; - - if (GetItemChecked(i)) - sum |= item.value; - } - - return sum; - } - - Type enumType; - Enum enumValue; - - // Adds items to the checklistbox based on the members of the enum - private void FillEnumMembers() - { - foreach (string name in Enum.GetNames(enumType)) - { - object val = Enum.Parse(enumType, name); - uint intVal = (uint)Convert.ChangeType(val, typeof(uint)); - - Add(intVal, name); - } - } - - // Checks/unchecks items based on the current value of the enum variable - private void ApplyEnumValue() - { - uint intVal = (uint)Convert.ChangeType(enumValue, typeof(uint)); - UpdateCheckedItems(intVal); - - } - - [DesignerSerializationVisibilityAttribute(DesignerSerializationVisibility.Hidden)] - public Enum EnumValue - { - get - { - object e = Enum.ToObject(enumType, GetCurrentValue()); - return (Enum)e; - } - set - { - - Items.Clear(); - enumValue = value; // Store the current enum value - enumType = value.GetType(); // Store enum type - FillEnumMembers(); // Add items for enum members - ApplyEnumValue(); // Check/uncheck items depending on enum value - - } - } - - - } - public class FlagCheckedListBoxItem - { - public FlagCheckedListBoxItem(uint v, string c) - { - value = v; - caption = c; - } - - public override string ToString() - { - return caption; - } - - // Returns true if the value corresponds to a single bit being set - public bool IsFlag - { - get - { - return ((value & (value - 1)) == 0); - } - } - - // Returns true if this value is a member of the composite bit value - public bool IsMemberFlag(FlagCheckedListBoxItem composite) - { - return (IsFlag && ((value & composite.value) == value)); - } - - public uint value; - public string caption; - } - -} diff --git a/PROMS/TestWndProc/TestWndProc/TestWndProc.csproj b/PROMS/TestWndProc/TestWndProc/TestWndProc.csproj deleted file mode 100644 index 7f7385b0..00000000 --- a/PROMS/TestWndProc/TestWndProc/TestWndProc.csproj +++ /dev/null @@ -1,113 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {A672E7A2-94FF-4613-B6AC-52CC6F98EB29} - WinExe - Properties - TestWndProc - TestWndProc - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmPG.cs - - - Form - - - frmWndProcTest.cs - - - UserControl - - - MyPanel.cs - - - Component - - - MyRTB.cs - - - Component - - - MyTextBox.cs - - - - - Designer - frmPG.cs - - - Designer - frmWndProcTest.cs - - - Designer - MyPanel.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - Component - - - - - \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/frmPG.Designer.cs b/PROMS/TestWndProc/TestWndProc/frmPG.Designer.cs deleted file mode 100644 index a43267e0..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmPG.Designer.cs +++ /dev/null @@ -1,59 +0,0 @@ -namespace TestWndProc -{ - partial class frmPG - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.pg = new System.Windows.Forms.PropertyGrid(); - this.SuspendLayout(); - // - // pg - // - this.pg.Dock = System.Windows.Forms.DockStyle.Fill; - this.pg.Location = new System.Drawing.Point(0, 0); - this.pg.Name = "pg"; - this.pg.Size = new System.Drawing.Size(498, 382); - this.pg.TabIndex = 0; - // - // frmPG - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(498, 382); - this.Controls.Add(this.pg); - this.Name = "frmPG"; - this.Text = "frmPG"; - this.Load += new System.EventHandler(this.frmPG_Load); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.PropertyGrid pg; - } -} \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/frmPG.cs b/PROMS/TestWndProc/TestWndProc/frmPG.cs deleted file mode 100644 index c02b24a7..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmPG.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace TestWndProc -{ - public partial class frmPG : Form - { - private Object _MyObject = null; - public Object MyObject - { - get { return _MyObject; } - set { _MyObject = value; pg.SelectedObject = _MyObject; } - } - public frmPG(Object myObject) - { - InitializeComponent(); - _MyObject=myObject; - } - - private void frmPG_Load(object sender, EventArgs e) - { - MyObject = _MyObject; - } - - } -} \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/frmPG.resx b/PROMS/TestWndProc/TestWndProc/frmPG.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmPG.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/frmWndProcTest.Designer.cs b/PROMS/TestWndProc/TestWndProc/frmWndProcTest.Designer.cs deleted file mode 100644 index 128bbe86..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmWndProcTest.Designer.cs +++ /dev/null @@ -1,74 +0,0 @@ -namespace TestWndProc -{ - partial class frmWndProcTest - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.myPanel1 = new TestWndProc.MyPanel(); - this.richTextBox1 = new System.Windows.Forms.RichTextBox(); - this.SuspendLayout(); - // - // myPanel1 - // - this.myPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.myPanel1.Location = new System.Drawing.Point(0, 0); - this.myPanel1.Margin = new System.Windows.Forms.Padding(5, 5, 5, 5); - this.myPanel1.Name = "myPanel1"; - this.myPanel1.ShowDebug = true; - this.myPanel1.Size = new System.Drawing.Size(650, 594); - this.myPanel1.TabIndex = 0; - // - // richTextBox1 - // - this.richTextBox1.Location = new System.Drawing.Point(9, 487); - this.richTextBox1.Name = "richTextBox1"; - this.richTextBox1.Size = new System.Drawing.Size(471, 84); - this.richTextBox1.TabIndex = 1; - this.richTextBox1.Text = ""; - // - // frmWndProcTest - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(650, 594); - this.Controls.Add(this.richTextBox1); - this.Controls.Add(this.myPanel1); - this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.Name = "frmWndProcTest"; - this.Text = "WndProcTest"; - this.ResumeLayout(false); - - } - - #endregion - - private MyPanel myPanel1; - private System.Windows.Forms.RichTextBox richTextBox1; - } -} - diff --git a/PROMS/TestWndProc/TestWndProc/frmWndProcTest.cs b/PROMS/TestWndProc/TestWndProc/frmWndProcTest.cs deleted file mode 100644 index b3b03846..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmWndProcTest.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace TestWndProc -{ - public partial class frmWndProcTest : Form - { - public frmWndProcTest() - { - InitializeComponent(); - richTextBox1.Text = "I am going to type some text that should wrap. I am going to type some text that should wrap. I am going to type some text that should wrap. I am going to type some text that should wrap."; - } - } -} \ No newline at end of file diff --git a/PROMS/TestWndProc/TestWndProc/frmWndProcTest.resx b/PROMS/TestWndProc/TestWndProc/frmWndProcTest.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/TestWndProc/TestWndProc/frmWndProcTest.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface.7z b/PROMS/VEPROMS User Interface.7z deleted file mode 100644 index 0a0db5bc..00000000 Binary files a/PROMS/VEPROMS User Interface.7z and /dev/null differ diff --git a/PROMS/VEPROMS User Interface/App - Copy.config b/PROMS/VEPROMS User Interface/App - Copy.config deleted file mode 100644 index 16326062..00000000 --- a/PROMS/VEPROMS User Interface/App - Copy.config +++ /dev/null @@ -1,158 +0,0 @@ - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - 1 - - - 2 - - - 192, 255, 255 - - - True - - - False - - - Normal - - - True - - - False - - - False - - - True - - - - - - - - - 0.0 - - - C:\Development - - - - - False - - - 1 - - - - diff --git a/PROMS/VEPROMS User Interface/App.config.bak b/PROMS/VEPROMS User Interface/App.config.bak deleted file mode 100644 index 8dadd334..00000000 --- a/PROMS/VEPROMS User Interface/App.config.bak +++ /dev/null @@ -1,166 +0,0 @@ - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - 1 - - - 2 - - - 192, 255, 255 - - - True - - - False - - - Normal - - - True - - - False - - - False - - - True - - - - - - - - - 0.0 - - - C:\Development - - - True - - - - - - - - - True - - - - - False - - - 1 - - - - diff --git a/PROMS/VEPROMS User Interface/DlgPrintProcedure.Designer.cs.bak b/PROMS/VEPROMS User Interface/DlgPrintProcedure.Designer.cs.bak deleted file mode 100644 index a0cb7950..00000000 --- a/PROMS/VEPROMS User Interface/DlgPrintProcedure.Designer.cs.bak +++ /dev/null @@ -1,1294 +0,0 @@ -namespace VEPROMS -{ - partial class DlgPrintProcedure - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DlgPrintProcedure)); - this.tabControl1 = new DevComponents.DotNetBar.TabControl(); - this.tabControlPanel3 = new DevComponents.DotNetBar.TabControlPanel(); - this.gpnlDebug = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.cbxDebugText = new System.Windows.Forms.CheckBox(); - this.cbxDebugPagination = new System.Windows.Forms.CheckBox(); - this.grpDateSelector = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.calDateSelector = new DevComponents.Editors.DateTimeAdv.MonthCalendarAdv(); - this.txbReviewDate = new DevComponents.DotNetBar.Controls.TextBoxX(); - this.txbRevDate = new DevComponents.DotNetBar.Controls.TextBoxX(); - this.txbPDFLocation = new DevComponents.DotNetBar.Controls.TextBoxX(); - this.cbxOpenAfterCreate2 = new System.Windows.Forms.CheckBox(); - this.docVersionConfigBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.cbxOverwritePDF2 = new System.Windows.Forms.CheckBox(); - this.txbRevNum = new DevComponents.DotNetBar.Controls.TextBoxX(); - this.lblReviewDate = new DevComponents.DotNetBar.LabelX(); - this.lblRevDate = new DevComponents.DotNetBar.LabelX(); - this.lblRevNum = new DevComponents.DotNetBar.LabelX(); - this.txbPDFName = new DevComponents.DotNetBar.Controls.TextBoxX(); - this.lblPDFFileName = new DevComponents.DotNetBar.LabelX(); - this.lblPDFLoc = new DevComponents.DotNetBar.LabelX(); - this.tbGeneral = new DevComponents.DotNetBar.TabItem(this.components); - this.tabControlPanel2 = new DevComponents.DotNetBar.TabControlPanel(); - this.ppGpbxCBType = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.rbCustom = new System.Windows.Forms.RadioButton(); - this.rbFormatDefault = new System.Windows.Forms.RadioButton(); - this.ppGpbxUserSpecCB = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.ppGpbxUserSpecTxt = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.label14 = new System.Windows.Forms.Label(); - this.ppTxbxChangeBarUserMsgTwo = new System.Windows.Forms.RichTextBox(); - this.label15 = new System.Windows.Forms.Label(); - this.ppTxbxChangeBarUserMsgOne = new System.Windows.Forms.RichTextBox(); - this.ppCmbxChgBarPos = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.label12 = new System.Windows.Forms.Label(); - this.ppCmbxChgBarTxtType = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.label13 = new System.Windows.Forms.Label(); - this.tbChangeBars = new DevComponents.DotNetBar.TabItem(this.components); - this.tabControlPanel1 = new DevComponents.DotNetBar.TabControlPanel(); - this.lblWatermarkS = new DevComponents.DotNetBar.LabelX(); - this.txbPdfLocationS = new DevComponents.DotNetBar.Controls.TextBoxX(); - this.btnPdfLocation = new DevComponents.DotNetBar.ButtonX(); - this.lblPdfLocS = new DevComponents.DotNetBar.LabelX(); - this.btnWaterMarkOff = new DevComponents.DotNetBar.ButtonX(); - this.btnChgBarOff = new DevComponents.DotNetBar.ButtonX(); - this.btnDuplxOff = new DevComponents.DotNetBar.ButtonX(); - this.lblAutoDuplexing = new DevComponents.DotNetBar.LabelX(); - this.btnDuplxOn = new DevComponents.DotNetBar.ButtonX(); - this.btnWaterMarkOn = new DevComponents.DotNetBar.ButtonX(); - this.cbxWaterMark = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.lblChgBars = new DevComponents.DotNetBar.LabelX(); - this.btnChgBarOn = new DevComponents.DotNetBar.ButtonX(); - this.tbSettings = new DevComponents.DotNetBar.TabItem(this.components); - this.btnCreatePDF = new DevComponents.DotNetBar.ButtonX(); - this.btnCancel = new DevComponents.DotNetBar.ButtonX(); - this.DlgBrowseFolder = new System.Windows.Forms.FolderBrowserDialog(); - this.cbxDebug = new System.Windows.Forms.CheckBox(); - this.cbxOrPgBrk = new System.Windows.Forms.CheckBox(); - this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip(); - this.cbxCmpPRMSpfd = new System.Windows.Forms.CheckBox(); - this.cbxMultiunitPdfLocation = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.lblMultiunitPdfLocation = new DevComponents.DotNetBar.LabelX(); - this.muLocNone = new DevComponents.Editors.ComboItem(); - this.muLocName = new DevComponents.Editors.ComboItem(); - this.muLocNumber = new DevComponents.Editors.ComboItem(); - this.muLocText = new DevComponents.Editors.ComboItem(); - this.muLocID = new DevComponents.Editors.ComboItem(); - this.pbPDFsStatus = new DevComponents.DotNetBar.Controls.ProgressBarX(); - ((System.ComponentModel.ISupportInitialize)(this.tabControl1)).BeginInit(); - this.tabControl1.SuspendLayout(); - this.tabControlPanel3.SuspendLayout(); - this.gpnlDebug.SuspendLayout(); - this.grpDateSelector.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.docVersionConfigBindingSource)).BeginInit(); - this.tabControlPanel2.SuspendLayout(); - this.ppGpbxCBType.SuspendLayout(); - this.ppGpbxUserSpecCB.SuspendLayout(); - this.ppGpbxUserSpecTxt.SuspendLayout(); - this.tabControlPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // tabControl1 - // - this.tabControl1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tabControl1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(125)))), ((int)(((byte)(125)))), ((int)(((byte)(125))))); - this.tabControl1.CanReorderTabs = true; - this.tabControl1.Controls.Add(this.tabControlPanel1); - this.tabControl1.Controls.Add(this.tabControlPanel3); - this.tabControl1.Controls.Add(this.tabControlPanel2); - this.tabControl1.Location = new System.Drawing.Point(0, 0); - this.tabControl1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedTabFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold); - this.tabControl1.SelectedTabIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(502, 243); - this.tabControl1.Style = DevComponents.DotNetBar.eTabStripStyle.Office2007Document; - this.tabControl1.TabIndex = 0; - this.tabControl1.TabLayoutType = DevComponents.DotNetBar.eTabLayoutType.FixedWithNavigationBox; - this.tabControl1.Tabs.Add(this.tbGeneral); - this.tabControl1.Tabs.Add(this.tbSettings); - this.tabControl1.Tabs.Add(this.tbChangeBars); - this.tabControl1.Text = "tabControl1"; - // - // tabControlPanel3 - // - this.tabControlPanel3.AutoScroll = true; - this.tabControlPanel3.Controls.Add(this.pbPDFsStatus); - this.tabControlPanel3.Controls.Add(this.gpnlDebug); - this.tabControlPanel3.Controls.Add(this.grpDateSelector); - this.tabControlPanel3.Controls.Add(this.txbReviewDate); - this.tabControlPanel3.Controls.Add(this.txbRevDate); - this.tabControlPanel3.Controls.Add(this.txbPDFLocation); - this.tabControlPanel3.Controls.Add(this.cbxOpenAfterCreate2); - this.tabControlPanel3.Controls.Add(this.cbxOverwritePDF2); - this.tabControlPanel3.Controls.Add(this.txbRevNum); - this.tabControlPanel3.Controls.Add(this.lblReviewDate); - this.tabControlPanel3.Controls.Add(this.lblRevDate); - this.tabControlPanel3.Controls.Add(this.lblRevNum); - this.tabControlPanel3.Controls.Add(this.txbPDFName); - this.tabControlPanel3.Controls.Add(this.lblPDFFileName); - this.tabControlPanel3.Controls.Add(this.lblPDFLoc); - this.tabControlPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControlPanel3.Location = new System.Drawing.Point(0, 22); - this.tabControlPanel3.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.tabControlPanel3.Name = "tabControlPanel3"; - this.tabControlPanel3.Padding = new System.Windows.Forms.Padding(1); - this.tabControlPanel3.Size = new System.Drawing.Size(502, 221); - this.tabControlPanel3.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(253)))), ((int)(((byte)(254))))); - this.tabControlPanel3.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(188)))), ((int)(((byte)(227))))); - this.tabControlPanel3.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tabControlPanel3.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(165)))), ((int)(((byte)(199))))); - this.tabControlPanel3.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tabControlPanel3.Style.GradientAngle = 90; - this.tabControlPanel3.TabIndex = 3; - this.tabControlPanel3.TabItem = this.tbGeneral; - // - // gpnlDebug - // - this.gpnlDebug.BackColor = System.Drawing.Color.Transparent; - this.gpnlDebug.CanvasColor = System.Drawing.SystemColors.Control; - this.gpnlDebug.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.gpnlDebug.Controls.Add(this.cbxDebugText); - this.gpnlDebug.Controls.Add(this.cbxDebugPagination); - this.gpnlDebug.Location = new System.Drawing.Point(385, 75); - this.gpnlDebug.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.gpnlDebug.Name = "gpnlDebug"; - this.gpnlDebug.Size = new System.Drawing.Size(90, 74); - // - // - // - this.gpnlDebug.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.gpnlDebug.Style.BackColorGradientAngle = 90; - this.gpnlDebug.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.gpnlDebug.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpnlDebug.Style.BorderBottomWidth = 1; - this.gpnlDebug.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.gpnlDebug.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpnlDebug.Style.BorderLeftWidth = 1; - this.gpnlDebug.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpnlDebug.Style.BorderRightWidth = 1; - this.gpnlDebug.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.gpnlDebug.Style.BorderTopWidth = 1; - this.gpnlDebug.Style.CornerDiameter = 4; - this.gpnlDebug.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.gpnlDebug.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.gpnlDebug.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.gpnlDebug.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - // - // - // - this.gpnlDebug.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.gpnlDebug.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.gpnlDebug.TabIndex = 86; - this.gpnlDebug.Text = "Debug"; - // - // cbxDebugText - // - this.cbxDebugText.AutoSize = true; - this.cbxDebugText.BackColor = System.Drawing.Color.Transparent; - this.cbxDebugText.Location = new System.Drawing.Point(8, 30); - this.cbxDebugText.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.cbxDebugText.Name = "cbxDebugText"; - this.cbxDebugText.Size = new System.Drawing.Size(47, 17); - this.cbxDebugText.TabIndex = 1; - this.cbxDebugText.Text = "Text"; - this.cbxDebugText.UseVisualStyleBackColor = false; - // - // cbxDebugPagination - // - this.cbxDebugPagination.AutoSize = true; - this.cbxDebugPagination.BackColor = System.Drawing.Color.Transparent; - this.cbxDebugPagination.Location = new System.Drawing.Point(9, 7); - this.cbxDebugPagination.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.cbxDebugPagination.Name = "cbxDebugPagination"; - this.cbxDebugPagination.Size = new System.Drawing.Size(76, 17); - this.cbxDebugPagination.TabIndex = 0; - this.cbxDebugPagination.Text = "Pagination"; - this.cbxDebugPagination.UseVisualStyleBackColor = false; - // - // grpDateSelector - // - this.grpDateSelector.BackColor = System.Drawing.Color.Transparent; - this.grpDateSelector.CanvasColor = System.Drawing.SystemColors.Control; - this.grpDateSelector.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.grpDateSelector.Controls.Add(this.calDateSelector); - this.grpDateSelector.Location = new System.Drawing.Point(210, 75); - this.grpDateSelector.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.grpDateSelector.Name = "grpDateSelector"; - this.grpDateSelector.Size = new System.Drawing.Size(150, 136); - // - // - // - this.grpDateSelector.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.grpDateSelector.Style.BackColorGradientAngle = 90; - this.grpDateSelector.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.grpDateSelector.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.grpDateSelector.Style.BorderBottomWidth = 1; - this.grpDateSelector.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.grpDateSelector.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.grpDateSelector.Style.BorderLeftWidth = 1; - this.grpDateSelector.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.grpDateSelector.Style.BorderRightWidth = 1; - this.grpDateSelector.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.grpDateSelector.Style.BorderTopWidth = 1; - this.grpDateSelector.Style.CornerDiameter = 4; - this.grpDateSelector.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.grpDateSelector.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.grpDateSelector.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.grpDateSelector.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - // - // - // - this.grpDateSelector.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.grpDateSelector.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.grpDateSelector.TabIndex = 85; - this.grpDateSelector.Text = "Select Revision Date"; - this.grpDateSelector.Visible = false; - // - // calDateSelector - // - this.calDateSelector.AnnuallyMarkedDates = new System.DateTime[0]; - this.calDateSelector.AutoSize = true; - // - // - // - this.calDateSelector.BackgroundStyle.BackColor = System.Drawing.SystemColors.Window; - this.calDateSelector.BackgroundStyle.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.calDateSelector.BackgroundStyle.BorderBottomWidth = 1; - this.calDateSelector.BackgroundStyle.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.calDateSelector.BackgroundStyle.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.calDateSelector.BackgroundStyle.BorderLeftWidth = 1; - this.calDateSelector.BackgroundStyle.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.calDateSelector.BackgroundStyle.BorderRightWidth = 1; - this.calDateSelector.BackgroundStyle.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.calDateSelector.BackgroundStyle.BorderTopWidth = 1; - this.calDateSelector.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.calDateSelector.CommandsBackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.calDateSelector.ContainerControlProcessDialogKey = true; - this.calDateSelector.DisplayMonth = new System.DateTime(2010, 8, 1, 0, 0, 0, 0); - this.calDateSelector.Location = new System.Drawing.Point(10, 2); - this.calDateSelector.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.calDateSelector.MarkedDates = new System.DateTime[0]; - this.calDateSelector.MonthlyMarkedDates = new System.DateTime[0]; - this.calDateSelector.Name = "calDateSelector"; - // - // - // - this.calDateSelector.NavigationBackgroundStyle.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground2; - this.calDateSelector.NavigationBackgroundStyle.BackColorGradientAngle = 90; - this.calDateSelector.NavigationBackgroundStyle.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.calDateSelector.NavigationBackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.calDateSelector.Size = new System.Drawing.Size(170, 131); - this.calDateSelector.TabIndex = 84; - this.calDateSelector.Text = "monthCalendarAdv1"; - this.calDateSelector.Visible = false; - this.calDateSelector.WeeklyMarkedDays = new System.DayOfWeek[0]; - this.calDateSelector.DateSelected += new System.Windows.Forms.DateRangeEventHandler(this.calDateSelector_DateSelected); - // - // txbReviewDate - // - // - // - // - this.txbReviewDate.Border.Class = "TextBoxBorder"; - this.txbReviewDate.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.txbReviewDate.Location = new System.Drawing.Point(102, 140); - this.txbReviewDate.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.txbReviewDate.Name = "txbReviewDate"; - this.txbReviewDate.Size = new System.Drawing.Size(91, 20); - this.txbReviewDate.TabIndex = 83; - this.txbReviewDate.Leave += new System.EventHandler(this.txbReviewDate_Leave); - this.txbReviewDate.Enter += new System.EventHandler(this.txbReviewDate_Enter); - // - // txbRevDate - // - // - // - // - this.txbRevDate.Border.Class = "TextBoxBorder"; - this.txbRevDate.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.txbRevDate.Location = new System.Drawing.Point(102, 107); - this.txbRevDate.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.txbRevDate.Name = "txbRevDate"; - this.txbRevDate.Size = new System.Drawing.Size(91, 20); - this.txbRevDate.TabIndex = 82; - this.txbRevDate.Leave += new System.EventHandler(this.txbRevDate_Leave); - this.txbRevDate.Enter += new System.EventHandler(this.txbRevDate_Enter); - // - // txbPDFLocation - // - this.txbPDFLocation.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - // - // - // - this.txbPDFLocation.Border.Class = "TextBoxBorder"; - this.txbPDFLocation.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.txbPDFLocation.Enabled = false; - this.txbPDFLocation.Location = new System.Drawing.Point(102, 8); - this.txbPDFLocation.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.txbPDFLocation.Name = "txbPDFLocation"; - this.txbPDFLocation.ShortcutsEnabled = false; - this.txbPDFLocation.Size = new System.Drawing.Size(388, 20); - this.txbPDFLocation.TabIndex = 81; - this.txbPDFLocation.WatermarkText = "PDF Location"; - this.txbPDFLocation.Leave += new System.EventHandler(this.txbPDFLocation_Leave); - // - // cbxOpenAfterCreate2 - // - this.cbxOpenAfterCreate2.AutoSize = true; - this.cbxOpenAfterCreate2.BackColor = System.Drawing.Color.Transparent; - this.cbxOpenAfterCreate2.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.docVersionConfigBindingSource, "Print_AlwaysViewPDFAfterCreate", true)); - this.cbxOpenAfterCreate2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbxOpenAfterCreate2.Location = new System.Drawing.Point(12, 195); - this.cbxOpenAfterCreate2.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.cbxOpenAfterCreate2.Name = "cbxOpenAfterCreate2"; - this.cbxOpenAfterCreate2.Size = new System.Drawing.Size(145, 19); - this.cbxOpenAfterCreate2.TabIndex = 80; - this.cbxOpenAfterCreate2.Text = "View PDF After Create"; - this.cbxOpenAfterCreate2.UseVisualStyleBackColor = false; - // - // docVersionConfigBindingSource - // - this.docVersionConfigBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.DocVersionConfig); - // - // cbxOverwritePDF2 - // - this.cbxOverwritePDF2.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.cbxOverwritePDF2.AutoSize = true; - this.cbxOverwritePDF2.BackColor = System.Drawing.Color.Transparent; - this.cbxOverwritePDF2.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.docVersionConfigBindingSource, "Print_AlwaysOverwritePDF", true)); - this.cbxOverwritePDF2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbxOverwritePDF2.ForeColor = System.Drawing.SystemColors.ControlText; - this.cbxOverwritePDF2.Location = new System.Drawing.Point(342, 39); - this.cbxOverwritePDF2.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.cbxOverwritePDF2.Name = "cbxOverwritePDF2"; - this.cbxOverwritePDF2.Size = new System.Drawing.Size(127, 19); - this.cbxOverwritePDF2.TabIndex = 79; - this.cbxOverwritePDF2.Text = "Overwrite PDF File"; - this.cbxOverwritePDF2.UseVisualStyleBackColor = false; - // - // txbRevNum - // - // - // - // - this.txbRevNum.Border.Class = "TextBoxBorder"; - this.txbRevNum.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.txbRevNum.Location = new System.Drawing.Point(102, 75); - this.txbRevNum.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.txbRevNum.Name = "txbRevNum"; - this.txbRevNum.Size = new System.Drawing.Size(91, 20); - this.txbRevNum.TabIndex = 73; - this.txbRevNum.Leave += new System.EventHandler(this.txbRevNum_Leave); - // - // lblReviewDate - // - this.lblReviewDate.BackColor = System.Drawing.Color.Transparent; - // - // - // - this.lblReviewDate.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.lblReviewDate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblReviewDate.Location = new System.Drawing.Point(7, 140); - this.lblReviewDate.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.lblReviewDate.Name = "lblReviewDate"; - this.lblReviewDate.Size = new System.Drawing.Size(86, 19); - this.lblReviewDate.TabIndex = 72; - this.lblReviewDate.Text = "Review Date"; - this.lblReviewDate.TextAlignment = System.Drawing.StringAlignment.Far; - // - // lblRevDate - // - this.lblRevDate.BackColor = System.Drawing.Color.Transparent; - // - // - // - this.lblRevDate.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.lblRevDate.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblRevDate.Location = new System.Drawing.Point(7, 107); - this.lblRevDate.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.lblRevDate.Name = "lblRevDate"; - this.lblRevDate.Size = new System.Drawing.Size(86, 19); - this.lblRevDate.TabIndex = 71; - this.lblRevDate.Text = "Revision Date"; - this.lblRevDate.TextAlignment = System.Drawing.StringAlignment.Far; - // - // lblRevNum - // - this.lblRevNum.BackColor = System.Drawing.Color.Transparent; - // - // - // - this.lblRevNum.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.lblRevNum.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblRevNum.Location = new System.Drawing.Point(7, 75); - this.lblRevNum.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.lblRevNum.Name = "lblRevNum"; - this.lblRevNum.Size = new System.Drawing.Size(86, 19); - this.lblRevNum.TabIndex = 70; - this.lblRevNum.Text = "Revision Number"; - this.lblRevNum.TextAlignment = System.Drawing.StringAlignment.Far; - // - // txbPDFName - // - this.txbPDFName.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - // - // - // - this.txbPDFName.Border.Class = "TextBoxBorder"; - this.txbPDFName.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.txbPDFName.Location = new System.Drawing.Point(102, 39); - this.txbPDFName.Name = "txbPDFName"; - this.txbPDFName.Size = new System.Drawing.Size(197, 20); - this.txbPDFName.TabIndex = 8; - // - // lblPDFFileName - // - this.lblPDFFileName.BackColor = System.Drawing.Color.Transparent; - // - // - // - this.lblPDFFileName.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.lblPDFFileName.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblPDFFileName.Location = new System.Drawing.Point(7, 34); - this.lblPDFFileName.Name = "lblPDFFileName"; - this.lblPDFFileName.Size = new System.Drawing.Size(86, 19); - this.lblPDFFileName.TabIndex = 7; - this.lblPDFFileName.Text = "PDF Name"; - this.lblPDFFileName.TextAlignment = System.Drawing.StringAlignment.Far; - // - // lblPDFLoc - // - this.lblPDFLoc.BackColor = System.Drawing.Color.Transparent; - // - // - // - this.lblPDFLoc.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.lblPDFLoc.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblPDFLoc.Location = new System.Drawing.Point(7, 3); - this.lblPDFLoc.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.lblPDFLoc.Name = "lblPDFLoc"; - this.lblPDFLoc.Size = new System.Drawing.Size(86, 19); - this.lblPDFLoc.TabIndex = 4; - this.lblPDFLoc.Text = "PDF Location"; - this.lblPDFLoc.TextAlignment = System.Drawing.StringAlignment.Far; - // - // tbGeneral - // - this.tbGeneral.AttachedControl = this.tabControlPanel3; - this.tbGeneral.Name = "tbGeneral"; - this.tbGeneral.Text = "General"; - // - // tabControlPanel2 - // - this.tabControlPanel2.Controls.Add(this.ppGpbxCBType); - this.tabControlPanel2.Controls.Add(this.ppGpbxUserSpecCB); - this.tabControlPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControlPanel2.Location = new System.Drawing.Point(0, 22); - this.tabControlPanel2.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.tabControlPanel2.Name = "tabControlPanel2"; - this.tabControlPanel2.Padding = new System.Windows.Forms.Padding(1); - this.tabControlPanel2.Size = new System.Drawing.Size(502, 221); - this.tabControlPanel2.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(253)))), ((int)(((byte)(254))))); - this.tabControlPanel2.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(188)))), ((int)(((byte)(227))))); - this.tabControlPanel2.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tabControlPanel2.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(165)))), ((int)(((byte)(199))))); - this.tabControlPanel2.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tabControlPanel2.Style.GradientAngle = 90; - this.tabControlPanel2.TabIndex = 2; - this.tabControlPanel2.TabItem = this.tbChangeBars; - // - // ppGpbxCBType - // - this.ppGpbxCBType.BackColor = System.Drawing.Color.Transparent; - this.ppGpbxCBType.CanvasColor = System.Drawing.SystemColors.Control; - this.ppGpbxCBType.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.ppGpbxCBType.Controls.Add(this.rbCustom); - this.ppGpbxCBType.Controls.Add(this.rbFormatDefault); - this.ppGpbxCBType.Location = new System.Drawing.Point(41, 10); - this.ppGpbxCBType.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.ppGpbxCBType.Name = "ppGpbxCBType"; - this.ppGpbxCBType.Size = new System.Drawing.Size(426, 45); - // - // - // - this.ppGpbxCBType.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.ppGpbxCBType.Style.BackColorGradientAngle = 90; - this.ppGpbxCBType.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.ppGpbxCBType.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxCBType.Style.BorderBottomWidth = 1; - this.ppGpbxCBType.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.ppGpbxCBType.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxCBType.Style.BorderLeftWidth = 1; - this.ppGpbxCBType.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxCBType.Style.BorderRightWidth = 1; - this.ppGpbxCBType.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxCBType.Style.BorderTopWidth = 1; - this.ppGpbxCBType.Style.CornerDiameter = 4; - this.ppGpbxCBType.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.ppGpbxCBType.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.ppGpbxCBType.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.ppGpbxCBType.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - // - // - // - this.ppGpbxCBType.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.ppGpbxCBType.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.ppGpbxCBType.TabIndex = 54; - this.ppGpbxCBType.Text = "Type"; - // - // rbCustom - // - this.rbCustom.AutoSize = true; - this.rbCustom.Location = new System.Drawing.Point(197, 4); - this.rbCustom.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.rbCustom.Name = "rbCustom"; - this.rbCustom.Size = new System.Drawing.Size(143, 17); - this.rbCustom.TabIndex = 1; - this.rbCustom.TabStop = true; - this.rbCustom.Text = "Custom Change Bar Text"; - this.rbCustom.UseVisualStyleBackColor = true; - this.rbCustom.Click += new System.EventHandler(this.rbCustom_Click); - // - // rbFormatDefault - // - this.rbFormatDefault.AutoSize = true; - this.rbFormatDefault.Location = new System.Drawing.Point(26, 4); - this.rbFormatDefault.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.rbFormatDefault.Name = "rbFormatDefault"; - this.rbFormatDefault.Size = new System.Drawing.Size(94, 17); - this.rbFormatDefault.TabIndex = 0; - this.rbFormatDefault.TabStop = true; - this.rbFormatDefault.Text = "Format Default"; - this.rbFormatDefault.UseVisualStyleBackColor = true; - this.rbFormatDefault.Click += new System.EventHandler(this.rbFormatDefault_Click); - this.rbFormatDefault.CheckedChanged += new System.EventHandler(this.rbFormatDefault_CheckedChanged); - // - // ppGpbxUserSpecCB - // - this.ppGpbxUserSpecCB.BackColor = System.Drawing.Color.Transparent; - this.ppGpbxUserSpecCB.CanvasColor = System.Drawing.SystemColors.Control; - this.ppGpbxUserSpecCB.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.ppGpbxUserSpecCB.Controls.Add(this.ppGpbxUserSpecTxt); - this.ppGpbxUserSpecCB.Controls.Add(this.ppCmbxChgBarPos); - this.ppGpbxUserSpecCB.Controls.Add(this.label12); - this.ppGpbxUserSpecCB.Controls.Add(this.ppCmbxChgBarTxtType); - this.ppGpbxUserSpecCB.Controls.Add(this.label13); - this.ppGpbxUserSpecCB.Location = new System.Drawing.Point(41, 68); - this.ppGpbxUserSpecCB.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.ppGpbxUserSpecCB.Name = "ppGpbxUserSpecCB"; - this.ppGpbxUserSpecCB.Size = new System.Drawing.Size(426, 130); - // - // - // - this.ppGpbxUserSpecCB.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.ppGpbxUserSpecCB.Style.BackColorGradientAngle = 90; - this.ppGpbxUserSpecCB.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.ppGpbxUserSpecCB.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecCB.Style.BorderBottomWidth = 1; - this.ppGpbxUserSpecCB.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.ppGpbxUserSpecCB.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecCB.Style.BorderLeftWidth = 1; - this.ppGpbxUserSpecCB.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecCB.Style.BorderRightWidth = 1; - this.ppGpbxUserSpecCB.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecCB.Style.BorderTopWidth = 1; - this.ppGpbxUserSpecCB.Style.CornerDiameter = 4; - this.ppGpbxUserSpecCB.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.ppGpbxUserSpecCB.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.ppGpbxUserSpecCB.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.ppGpbxUserSpecCB.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - // - // - // - this.ppGpbxUserSpecCB.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.ppGpbxUserSpecCB.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.ppGpbxUserSpecCB.TabIndex = 53; - this.ppGpbxUserSpecCB.Text = "Custom Change Bar Text"; - // - // ppGpbxUserSpecTxt - // - this.ppGpbxUserSpecTxt.CanvasColor = System.Drawing.SystemColors.Control; - this.ppGpbxUserSpecTxt.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.ppGpbxUserSpecTxt.Controls.Add(this.label14); - this.ppGpbxUserSpecTxt.Controls.Add(this.ppTxbxChangeBarUserMsgTwo); - this.ppGpbxUserSpecTxt.Controls.Add(this.label15); - this.ppGpbxUserSpecTxt.Controls.Add(this.ppTxbxChangeBarUserMsgOne); - this.ppGpbxUserSpecTxt.Location = new System.Drawing.Point(242, 14); - this.ppGpbxUserSpecTxt.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.ppGpbxUserSpecTxt.Name = "ppGpbxUserSpecTxt"; - this.ppGpbxUserSpecTxt.Size = new System.Drawing.Size(158, 85); - // - // - // - this.ppGpbxUserSpecTxt.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.ppGpbxUserSpecTxt.Style.BackColorGradientAngle = 90; - this.ppGpbxUserSpecTxt.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.ppGpbxUserSpecTxt.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecTxt.Style.BorderBottomWidth = 1; - this.ppGpbxUserSpecTxt.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.ppGpbxUserSpecTxt.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecTxt.Style.BorderLeftWidth = 1; - this.ppGpbxUserSpecTxt.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecTxt.Style.BorderRightWidth = 1; - this.ppGpbxUserSpecTxt.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecTxt.Style.BorderTopWidth = 1; - this.ppGpbxUserSpecTxt.Style.CornerDiameter = 4; - this.ppGpbxUserSpecTxt.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.ppGpbxUserSpecTxt.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.ppGpbxUserSpecTxt.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.ppGpbxUserSpecTxt.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - // - // - // - this.ppGpbxUserSpecTxt.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.ppGpbxUserSpecTxt.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.ppGpbxUserSpecTxt.TabIndex = 51; - this.ppGpbxUserSpecTxt.Text = "Custom Change Bar Text"; - // - // label14 - // - this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(34, 11); - this.label14.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(48, 13); - this.label14.TabIndex = 4; - this.label14.Text = "Line one"; - // - // ppTxbxChangeBarUserMsgTwo - // - this.ppTxbxChangeBarUserMsgTwo.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.docVersionConfigBindingSource, "Print_UserCBMess2", true)); - this.ppTxbxChangeBarUserMsgTwo.Location = new System.Drawing.Point(89, 38); - this.ppTxbxChangeBarUserMsgTwo.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.ppTxbxChangeBarUserMsgTwo.Multiline = false; - this.ppTxbxChangeBarUserMsgTwo.Name = "ppTxbxChangeBarUserMsgTwo"; - this.ppTxbxChangeBarUserMsgTwo.Size = new System.Drawing.Size(44, 20); - this.ppTxbxChangeBarUserMsgTwo.TabIndex = 2; - this.ppTxbxChangeBarUserMsgTwo.Text = ""; - // - // label15 - // - this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(37, 41); - this.label15.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(47, 13); - this.label15.TabIndex = 5; - this.label15.Text = "Line two"; - // - // ppTxbxChangeBarUserMsgOne - // - this.ppTxbxChangeBarUserMsgOne.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.docVersionConfigBindingSource, "Print_UserCBMess1", true)); - this.ppTxbxChangeBarUserMsgOne.Location = new System.Drawing.Point(89, 9); - this.ppTxbxChangeBarUserMsgOne.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.ppTxbxChangeBarUserMsgOne.Multiline = false; - this.ppTxbxChangeBarUserMsgOne.Name = "ppTxbxChangeBarUserMsgOne"; - this.ppTxbxChangeBarUserMsgOne.Size = new System.Drawing.Size(44, 20); - this.ppTxbxChangeBarUserMsgOne.TabIndex = 1; - this.ppTxbxChangeBarUserMsgOne.Text = ""; - // - // ppCmbxChgBarPos - // - this.ppCmbxChgBarPos.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.docVersionConfigBindingSource, "Print_ChangeBarLoc", true)); - this.ppCmbxChgBarPos.DisplayMember = "Text"; - this.ppCmbxChgBarPos.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.ppCmbxChgBarPos.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.ppCmbxChgBarPos.FormattingEnabled = true; - this.ppCmbxChgBarPos.Location = new System.Drawing.Point(82, 80); - this.ppCmbxChgBarPos.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.ppCmbxChgBarPos.Name = "ppCmbxChgBarPos"; - this.ppCmbxChgBarPos.Size = new System.Drawing.Size(135, 21); - this.ppCmbxChgBarPos.TabIndex = 48; - this.ppCmbxChgBarPos.Visible = false; - this.ppCmbxChgBarPos.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppCmbxChgBarPos.WatermarkText = "select change bar position"; - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(34, 82); - this.label12.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(44, 13); - this.label12.TabIndex = 9; - this.label12.Text = "Position"; - this.label12.Visible = false; - // - // ppCmbxChgBarTxtType - // - this.ppCmbxChgBarTxtType.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.docVersionConfigBindingSource, "Print_ChangeBarText", true)); - this.ppCmbxChgBarTxtType.DisplayMember = "Text"; - this.ppCmbxChgBarTxtType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.ppCmbxChgBarTxtType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.ppCmbxChgBarTxtType.FormattingEnabled = true; - this.ppCmbxChgBarTxtType.Location = new System.Drawing.Point(82, 40); - this.ppCmbxChgBarTxtType.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.ppCmbxChgBarTxtType.Name = "ppCmbxChgBarTxtType"; - this.ppCmbxChgBarTxtType.Size = new System.Drawing.Size(140, 21); - this.ppCmbxChgBarTxtType.TabIndex = 48; - this.ppCmbxChgBarTxtType.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppCmbxChgBarTxtType.WatermarkText = "select change bar text type"; - this.ppCmbxChgBarTxtType.SelectedIndexChanged += new System.EventHandler(this.ppCmbxChgBarTxtType_SelectedIndexChanged); - // - // label13 - // - this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(25, 41); - this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(55, 13); - this.label13.TabIndex = 8; - this.label13.Text = "Text Type"; - // - // tbChangeBars - // - this.tbChangeBars.AttachedControl = this.tabControlPanel2; - this.tbChangeBars.Name = "tbChangeBars"; - this.tbChangeBars.Text = "Change Bars"; - this.tbChangeBars.Visible = false; - // - // tabControlPanel1 - // - this.tabControlPanel1.Controls.Add(this.lblMultiunitPdfLocation); - this.tabControlPanel1.Controls.Add(this.cbxMultiunitPdfLocation); - this.tabControlPanel1.Controls.Add(this.lblWatermarkS); - this.tabControlPanel1.Controls.Add(this.txbPdfLocationS); - this.tabControlPanel1.Controls.Add(this.btnPdfLocation); - this.tabControlPanel1.Controls.Add(this.lblPdfLocS); - this.tabControlPanel1.Controls.Add(this.btnWaterMarkOff); - this.tabControlPanel1.Controls.Add(this.btnChgBarOff); - this.tabControlPanel1.Controls.Add(this.btnDuplxOff); - this.tabControlPanel1.Controls.Add(this.lblAutoDuplexing); - this.tabControlPanel1.Controls.Add(this.btnDuplxOn); - this.tabControlPanel1.Controls.Add(this.btnWaterMarkOn); - this.tabControlPanel1.Controls.Add(this.cbxWaterMark); - this.tabControlPanel1.Controls.Add(this.lblChgBars); - this.tabControlPanel1.Controls.Add(this.btnChgBarOn); - this.tabControlPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControlPanel1.Location = new System.Drawing.Point(0, 22); - this.tabControlPanel1.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.tabControlPanel1.Name = "tabControlPanel1"; - this.tabControlPanel1.Padding = new System.Windows.Forms.Padding(1); - this.tabControlPanel1.Size = new System.Drawing.Size(502, 221); - this.tabControlPanel1.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(253)))), ((int)(((byte)(254))))); - this.tabControlPanel1.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(188)))), ((int)(((byte)(227))))); - this.tabControlPanel1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tabControlPanel1.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(165)))), ((int)(((byte)(199))))); - this.tabControlPanel1.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tabControlPanel1.Style.GradientAngle = 90; - this.tabControlPanel1.TabIndex = 5; - this.tabControlPanel1.TabItem = this.tbSettings; - // - // lblWatermarkS - // - this.lblWatermarkS.BackColor = System.Drawing.Color.Transparent; - // - // - // - this.lblWatermarkS.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.lblWatermarkS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblWatermarkS.Location = new System.Drawing.Point(30, 84); - this.lblWatermarkS.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.lblWatermarkS.Name = "lblWatermarkS"; - this.lblWatermarkS.Size = new System.Drawing.Size(86, 19); - this.lblWatermarkS.TabIndex = 106; - this.lblWatermarkS.Text = "Watermark"; - this.lblWatermarkS.TextAlignment = System.Drawing.StringAlignment.Far; - // - // txbPdfLocationS - // - this.txbPdfLocationS.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - // - // - // - this.txbPdfLocationS.Border.Class = "TextBoxBorder"; - this.txbPdfLocationS.Border.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.txbPdfLocationS.Location = new System.Drawing.Point(94, 3); - this.txbPdfLocationS.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.txbPdfLocationS.Name = "txbPdfLocationS"; - this.txbPdfLocationS.ShortcutsEnabled = false; - this.txbPdfLocationS.Size = new System.Drawing.Size(373, 20); - this.txbPdfLocationS.TabIndex = 98; - this.txbPdfLocationS.WatermarkText = "PDF Location"; - // - // btnPdfLocation - // - this.btnPdfLocation.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnPdfLocation.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnPdfLocation.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnPdfLocation.Image = ((System.Drawing.Image)(resources.GetObject("btnPdfLocation.Image"))); - this.btnPdfLocation.Location = new System.Drawing.Point(471, 3); - this.btnPdfLocation.Name = "btnPdfLocation"; - this.btnPdfLocation.Size = new System.Drawing.Size(20, 19); - this.btnPdfLocation.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnPdfLocation.TabIndex = 99; - this.btnPdfLocation.Click += new System.EventHandler(this.btnPdfLocation_Click); - // - // lblPdfLocS - // - this.lblPdfLocS.BackColor = System.Drawing.Color.Transparent; - // - // - // - this.lblPdfLocS.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.lblPdfLocS.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblPdfLocS.Location = new System.Drawing.Point(7, 3); - this.lblPdfLocS.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.lblPdfLocS.Name = "lblPdfLocS"; - this.lblPdfLocS.Size = new System.Drawing.Size(86, 19); - this.lblPdfLocS.TabIndex = 97; - this.lblPdfLocS.Text = "PDF Location"; - this.lblPdfLocS.TextAlignment = System.Drawing.StringAlignment.Far; - // - // btnWaterMarkOff - // - this.btnWaterMarkOff.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnWaterMarkOff.Checked = true; - this.btnWaterMarkOff.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnWaterMarkOff.Location = new System.Drawing.Point(164, 84); - this.btnWaterMarkOff.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.btnWaterMarkOff.Name = "btnWaterMarkOff"; - this.btnWaterMarkOff.Size = new System.Drawing.Size(34, 19); - this.btnWaterMarkOff.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnWaterMarkOff.TabIndex = 93; - this.btnWaterMarkOff.Text = "OFF"; - this.btnWaterMarkOff.Click += new System.EventHandler(this.btnAdvWaterMarkOff_Click); - // - // btnChgBarOff - // - this.btnChgBarOff.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnChgBarOff.Checked = true; - this.btnChgBarOff.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnChgBarOff.Location = new System.Drawing.Point(164, 58); - this.btnChgBarOff.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.btnChgBarOff.Name = "btnChgBarOff"; - this.btnChgBarOff.Size = new System.Drawing.Size(34, 19); - this.btnChgBarOff.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnChgBarOff.TabIndex = 92; - this.btnChgBarOff.Text = "OFF"; - this.btnChgBarOff.Click += new System.EventHandler(this.btnAvChgBarOff_Click); - // - // btnDuplxOff - // - this.btnDuplxOff.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnDuplxOff.Checked = true; - this.btnDuplxOff.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnDuplxOff.Location = new System.Drawing.Point(164, 111); - this.btnDuplxOff.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.btnDuplxOff.Name = "btnDuplxOff"; - this.btnDuplxOff.Size = new System.Drawing.Size(33, 19); - this.btnDuplxOff.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnDuplxOff.TabIndex = 91; - this.btnDuplxOff.Text = "OFF"; - this.btnDuplxOff.Click += new System.EventHandler(this.btnAdvDuplxOff_Click); - // - // lblAutoDuplexing - // - this.lblAutoDuplexing.BackColor = System.Drawing.Color.Transparent; - // - // - // - this.lblAutoDuplexing.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.lblAutoDuplexing.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblAutoDuplexing.Location = new System.Drawing.Point(30, 111); - this.lblAutoDuplexing.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.lblAutoDuplexing.Name = "lblAutoDuplexing"; - this.lblAutoDuplexing.Size = new System.Drawing.Size(86, 19); - this.lblAutoDuplexing.TabIndex = 90; - this.lblAutoDuplexing.Text = "Auto Duplexing"; - this.lblAutoDuplexing.TextAlignment = System.Drawing.StringAlignment.Far; - // - // btnDuplxOn - // - this.btnDuplxOn.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnDuplxOn.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnDuplxOn.Location = new System.Drawing.Point(123, 111); - this.btnDuplxOn.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.btnDuplxOn.Name = "btnDuplxOn"; - this.btnDuplxOn.Size = new System.Drawing.Size(34, 19); - this.btnDuplxOn.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnDuplxOn.TabIndex = 89; - this.btnDuplxOn.Text = "ON"; - this.btnDuplxOn.Click += new System.EventHandler(this.btnAdvDuplxOn_Click); - // - // btnWaterMarkOn - // - this.btnWaterMarkOn.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnWaterMarkOn.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnWaterMarkOn.Location = new System.Drawing.Point(123, 84); - this.btnWaterMarkOn.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.btnWaterMarkOn.Name = "btnWaterMarkOn"; - this.btnWaterMarkOn.Size = new System.Drawing.Size(34, 19); - this.btnWaterMarkOn.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnWaterMarkOn.TabIndex = 88; - this.btnWaterMarkOn.Text = "ON"; - this.btnWaterMarkOn.Click += new System.EventHandler(this.btnAdvWaterMarkOn_Click); - // - // cbxWaterMark - // - this.cbxWaterMark.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.docVersionConfigBindingSource, "Print_Watermark", true)); - this.cbxWaterMark.DisplayMember = "Text"; - this.cbxWaterMark.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.cbxWaterMark.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cbxWaterMark.FormattingEnabled = true; - this.cbxWaterMark.Location = new System.Drawing.Point(202, 84); - this.cbxWaterMark.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.cbxWaterMark.Name = "cbxWaterMark"; - this.cbxWaterMark.Size = new System.Drawing.Size(138, 21); - this.cbxWaterMark.TabIndex = 87; - this.cbxWaterMark.Visible = false; - this.cbxWaterMark.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbxWaterMark.WatermarkText = "select watermark option"; - // - // lblChgBars - // - this.lblChgBars.BackColor = System.Drawing.Color.Transparent; - // - // - // - this.lblChgBars.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.lblChgBars.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblChgBars.Location = new System.Drawing.Point(30, 58); - this.lblChgBars.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.lblChgBars.Name = "lblChgBars"; - this.lblChgBars.Size = new System.Drawing.Size(86, 19); - this.lblChgBars.TabIndex = 85; - this.lblChgBars.Text = "Change Bars"; - this.lblChgBars.TextAlignment = System.Drawing.StringAlignment.Far; - // - // btnChgBarOn - // - this.btnChgBarOn.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnChgBarOn.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnChgBarOn.Location = new System.Drawing.Point(123, 58); - this.btnChgBarOn.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.btnChgBarOn.Name = "btnChgBarOn"; - this.btnChgBarOn.Size = new System.Drawing.Size(34, 19); - this.btnChgBarOn.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnChgBarOn.TabIndex = 84; - this.btnChgBarOn.Text = "ON"; - this.btnChgBarOn.Click += new System.EventHandler(this.btnAvChgBarOn_Click); - // - // tbSettings - // - this.tbSettings.AttachedControl = this.tabControlPanel1; - this.tbSettings.Name = "tbSettings"; - this.tbSettings.Text = "Settings"; - this.tbSettings.Click += new System.EventHandler(this.tbSettings_Click); - // - // btnCreatePDF - // - this.btnCreatePDF.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnCreatePDF.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.btnCreatePDF.BackColor = System.Drawing.SystemColors.Control; - this.btnCreatePDF.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnCreatePDF.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btnCreatePDF.Location = new System.Drawing.Point(15, 249); - this.btnCreatePDF.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.btnCreatePDF.Name = "btnCreatePDF"; - this.btnCreatePDF.Size = new System.Drawing.Size(114, 29); - this.btnCreatePDF.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnCreatePDF.TabIndex = 1; - this.btnCreatePDF.Text = "Create PDF"; - this.btnCreatePDF.Click += new System.EventHandler(this.btnCreatePDF_Click); - // - // btnCancel - // - this.btnCancel.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.BackColor = System.Drawing.SystemColors.Control; - this.btnCancel.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Font = new System.Drawing.Font("Microsoft Sans Serif", 10.8F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.btnCancel.Location = new System.Drawing.Point(401, 249); - this.btnCancel.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(90, 29); - this.btnCancel.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.btnCancel.TabIndex = 2; - this.btnCancel.Text = "Cancel"; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // cbxDebug - // - this.cbxDebug.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.cbxDebug.AutoSize = true; - this.cbxDebug.BackColor = System.Drawing.Color.Transparent; - this.cbxDebug.Checked = true; - this.cbxDebug.CheckState = System.Windows.Forms.CheckState.Checked; - this.cbxDebug.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.docVersionConfigBindingSource, "Print_AlwaysOverwritePDF", true)); - this.cbxDebug.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbxDebug.ForeColor = System.Drawing.SystemColors.ControlText; - this.cbxDebug.Location = new System.Drawing.Point(176, 366); - this.cbxDebug.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.cbxDebug.Name = "cbxDebug"; - this.cbxDebug.Size = new System.Drawing.Size(137, 22); - this.cbxDebug.TabIndex = 98; - this.cbxDebug.Text = "Compare PDF"; - this.cbxDebug.UseVisualStyleBackColor = false; - // - // cbxOrPgBrk - // - this.cbxOrPgBrk.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.cbxOrPgBrk.AutoSize = true; - this.cbxOrPgBrk.BackColor = System.Drawing.Color.Transparent; - this.cbxOrPgBrk.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.docVersionConfigBindingSource, "Print_AlwaysOverwritePDF", true)); - this.cbxOrPgBrk.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbxOrPgBrk.ForeColor = System.Drawing.SystemColors.ControlText; - this.cbxOrPgBrk.Location = new System.Drawing.Point(202, 260); - this.cbxOrPgBrk.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.cbxOrPgBrk.Name = "cbxOrPgBrk"; - this.cbxOrPgBrk.Size = new System.Drawing.Size(167, 19); - this.cbxOrPgBrk.TabIndex = 99; - this.cbxOrPgBrk.Text = "Use Original Page Breaks"; - this.cbxOrPgBrk.UseVisualStyleBackColor = false; - // - // superTooltip1 - // - this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F"; - // - // cbxCmpPRMSpfd - // - this.cbxCmpPRMSpfd.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.cbxCmpPRMSpfd.AutoSize = true; - this.cbxCmpPRMSpfd.BackColor = System.Drawing.Color.Transparent; - this.cbxCmpPRMSpfd.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.docVersionConfigBindingSource, "Print_AlwaysOverwritePDF", true)); - this.cbxCmpPRMSpfd.Font = new System.Drawing.Font("Microsoft Sans Serif", 7F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbxCmpPRMSpfd.ForeColor = System.Drawing.SystemColors.ControlText; - this.cbxCmpPRMSpfd.Location = new System.Drawing.Point(142, 305); - this.cbxCmpPRMSpfd.Margin = new System.Windows.Forms.Padding(2); - this.cbxCmpPRMSpfd.Name = "cbxCmpPRMSpfd"; - this.cbxCmpPRMSpfd.Size = new System.Drawing.Size(165, 17); - this.cbxCmpPRMSpfd.TabIndex = 100; - this.cbxCmpPRMSpfd.Text = "PROMS PDF to PROMS PDF"; - this.cbxCmpPRMSpfd.UseVisualStyleBackColor = false; - this.cbxCmpPRMSpfd.Visible = false; - // - // cbxMultiunitPdfLocation - // - this.cbxMultiunitPdfLocation.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.docVersionConfigBindingSource, "Print_Watermark", true)); - this.cbxMultiunitPdfLocation.DisplayMember = "Text"; - this.cbxMultiunitPdfLocation.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.cbxMultiunitPdfLocation.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.cbxMultiunitPdfLocation.FormattingEnabled = true; - this.cbxMultiunitPdfLocation.Items.AddRange(new object[] { - this.muLocNone, - this.muLocName, - this.muLocNumber, - this.muLocText, - this.muLocID}); - this.cbxMultiunitPdfLocation.Location = new System.Drawing.Point(164, 30); - this.cbxMultiunitPdfLocation.Margin = new System.Windows.Forms.Padding(2); - this.cbxMultiunitPdfLocation.Name = "cbxMultiunitPdfLocation"; - this.cbxMultiunitPdfLocation.Size = new System.Drawing.Size(298, 21); - this.cbxMultiunitPdfLocation.TabIndex = 107; - this.cbxMultiunitPdfLocation.Visible = false; - this.cbxMultiunitPdfLocation.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbxMultiunitPdfLocation.WatermarkText = "select watermark option"; - // - // lblMultiunitPdfLocation - // - this.lblMultiunitPdfLocation.BackColor = System.Drawing.Color.Transparent; - // - this.pbPDFsStatus.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.pbPDFsStatus.Location = new System.Drawing.Point(7, 220); - this.pbPDFsStatus.Name = "pbPDFsStatus"; - this.pbPDFsStatus.Size = new System.Drawing.Size(539, 23); - this.pbPDFsStatus.TabIndex = 87; - this.pbPDFsStatus.Text = "Procedures Converted to PDF"; - this.pbPDFsStatus.Visible = false; - // - // - this.lblMultiunitPdfLocation.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.lblMultiunitPdfLocation.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblMultiunitPdfLocation.Location = new System.Drawing.Point(29, 30); - this.lblMultiunitPdfLocation.Margin = new System.Windows.Forms.Padding(2); - this.lblMultiunitPdfLocation.Name = "lblMultiunitPdfLocation"; - this.lblMultiunitPdfLocation.Size = new System.Drawing.Size(127, 19); - this.lblMultiunitPdfLocation.TabIndex = 108; - this.lblMultiunitPdfLocation.Text = "Multi Unit PDF Location"; - this.lblMultiunitPdfLocation.TextAlignment = System.Drawing.StringAlignment.Far; - this.lblMultiunitPdfLocation.Visible = false; - // - // muLocNone - // - this.muLocNone.Text = "None"; - // - // muLocName - // - this.muLocName.Text = "Unit Name"; - // - // muLocNumber - // - this.muLocNumber.Text = "Unit Number"; - // - // muLocText - // - this.muLocText.Text = "Unit Text"; - // - // muLocID - // - this.muLocID.Text = "Unit ID"; - // - // DlgPrintProcedure - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(506, 279); - this.Controls.Add(this.cbxCmpPRMSpfd); - this.Controls.Add(this.cbxOrPgBrk); - this.Controls.Add(this.cbxDebug); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnCreatePDF); - this.Controls.Add(this.tabControl1); - this.DoubleBuffered = true; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "DlgPrintProcedure"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Create PDF"; - this.Load += new System.EventHandler(this.DlgPrintProcedure_Load); - this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.DlgPrintProcedure_FormClosed); - ((System.ComponentModel.ISupportInitialize)(this.tabControl1)).EndInit(); - this.tabControl1.ResumeLayout(false); - this.tabControlPanel3.ResumeLayout(false); - this.tabControlPanel3.PerformLayout(); - this.gpnlDebug.ResumeLayout(false); - this.gpnlDebug.PerformLayout(); - this.grpDateSelector.ResumeLayout(false); - this.grpDateSelector.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.docVersionConfigBindingSource)).EndInit(); - this.tabControlPanel2.ResumeLayout(false); - this.ppGpbxCBType.ResumeLayout(false); - this.ppGpbxCBType.PerformLayout(); - this.ppGpbxUserSpecCB.ResumeLayout(false); - this.ppGpbxUserSpecCB.PerformLayout(); - this.ppGpbxUserSpecTxt.ResumeLayout(false); - this.ppGpbxUserSpecTxt.PerformLayout(); - this.tabControlPanel1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private DevComponents.DotNetBar.TabControl tabControl1; - private DevComponents.DotNetBar.ButtonX btnCreatePDF; - private DevComponents.DotNetBar.TabControlPanel tabControlPanel2; - private DevComponents.DotNetBar.TabItem tbChangeBars; - private DevComponents.DotNetBar.ButtonX btnCancel; - private DevComponents.DotNetBar.TabControlPanel tabControlPanel3; - private DevComponents.DotNetBar.TabItem tbGeneral; - private DevComponents.DotNetBar.LabelX lblPDFLoc; - private System.Windows.Forms.FolderBrowserDialog DlgBrowseFolder; - private DevComponents.DotNetBar.Controls.TextBoxX txbRevNum; - private DevComponents.DotNetBar.LabelX lblReviewDate; - private DevComponents.DotNetBar.LabelX lblRevDate; - private DevComponents.DotNetBar.LabelX lblRevNum; - private DevComponents.DotNetBar.Controls.TextBoxX txbPDFName; - private DevComponents.DotNetBar.LabelX lblPDFFileName; - private System.Windows.Forms.CheckBox cbxOverwritePDF2; - private System.Windows.Forms.CheckBox cbxOpenAfterCreate2; - private DevComponents.DotNetBar.TabControlPanel tabControlPanel1; - private DevComponents.DotNetBar.ButtonX btnWaterMarkOff; - private DevComponents.DotNetBar.ButtonX btnChgBarOff; - private DevComponents.DotNetBar.ButtonX btnDuplxOff; - private DevComponents.DotNetBar.LabelX lblAutoDuplexing; - private DevComponents.DotNetBar.ButtonX btnDuplxOn; - private DevComponents.DotNetBar.ButtonX btnWaterMarkOn; - private DevComponents.DotNetBar.Controls.ComboBoxEx cbxWaterMark; - private DevComponents.DotNetBar.LabelX lblChgBars; - private DevComponents.DotNetBar.ButtonX btnChgBarOn; - private DevComponents.DotNetBar.TabItem tbSettings; - private DevComponents.DotNetBar.Controls.GroupPanel ppGpbxUserSpecCB; - private DevComponents.DotNetBar.Controls.GroupPanel ppGpbxUserSpecTxt; - private System.Windows.Forms.Label label14; - private System.Windows.Forms.RichTextBox ppTxbxChangeBarUserMsgTwo; - private System.Windows.Forms.Label label15; - private System.Windows.Forms.RichTextBox ppTxbxChangeBarUserMsgOne; - private DevComponents.DotNetBar.Controls.ComboBoxEx ppCmbxChgBarPos; - private System.Windows.Forms.Label label12; - private DevComponents.DotNetBar.Controls.ComboBoxEx ppCmbxChgBarTxtType; - private System.Windows.Forms.BindingSource docVersionConfigBindingSource; - private DevComponents.DotNetBar.Controls.TextBoxX txbPDFLocation; - private System.Windows.Forms.CheckBox cbxDebug; - private DevComponents.DotNetBar.Controls.TextBoxX txbPdfLocationS; - private DevComponents.DotNetBar.ButtonX btnPdfLocation; - private DevComponents.DotNetBar.LabelX lblPdfLocS; - private DevComponents.DotNetBar.Controls.TextBoxX txbRevDate; - private DevComponents.DotNetBar.Controls.TextBoxX txbReviewDate; - private DevComponents.DotNetBar.LabelX lblWatermarkS; - private DevComponents.DotNetBar.Controls.GroupPanel ppGpbxCBType; - private System.Windows.Forms.RadioButton rbCustom; - private System.Windows.Forms.RadioButton rbFormatDefault; - private DevComponents.Editors.DateTimeAdv.MonthCalendarAdv calDateSelector; - private DevComponents.DotNetBar.Controls.GroupPanel grpDateSelector; - private System.Windows.Forms.Label label13; - private DevComponents.DotNetBar.Controls.GroupPanel gpnlDebug; - private System.Windows.Forms.CheckBox cbxDebugText; - private System.Windows.Forms.CheckBox cbxDebugPagination; - private System.Windows.Forms.CheckBox cbxOrPgBrk; - private DevComponents.DotNetBar.SuperTooltip superTooltip1; - private System.Windows.Forms.CheckBox cbxCmpPRMSpfd; - private DevComponents.DotNetBar.LabelX lblMultiunitPdfLocation; - private DevComponents.DotNetBar.Controls.ComboBoxEx cbxMultiunitPdfLocation; - private DevComponents.Editors.ComboItem muLocNone; - private DevComponents.Editors.ComboItem muLocName; - private DevComponents.Editors.ComboItem muLocNumber; - private DevComponents.Editors.ComboItem muLocText; - private DevComponents.Editors.ComboItem muLocID; - private DevComponents.DotNetBar.Controls.ProgressBarX pbPDFsStatus; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs.bak b/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs.bak deleted file mode 100644 index 40669486..00000000 --- a/PROMS/VEPROMS User Interface/DlgPrintProcedure.cs.bak +++ /dev/null @@ -1,878 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using VEPROMS.CSLA.Library; -using Volian.Print.Library; -//using Volian.Controls.Library; -using Volian.Base.Library; - -namespace VEPROMS -{ - public partial class DlgPrintProcedure : DevComponents.DotNetBar.Office2007Form - { - private SessionInfo _MySessionInfo; - public SessionInfo MySessionInfo - { - get { return _MySessionInfo; } - set { _MySessionInfo = value; } - } - private bool _Automatic; - public bool Automatic - { - get { return _Automatic; } - set { _Automatic = value; } - } - private void RunAutomatic() - { - cbxDebugPagination.Checked = true; - cbxDebugText.Checked = true; - Application.DoEvents(); - string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray()); - bool ranAuto = false; - foreach (string parameter in parameters) - { - if (parameter.ToUpper() == "/NT") - cbxDebugText.Checked = false; - else if (parameter.ToUpper() == "/NP") - cbxDebugPagination.Checked = false; - else if (parameter.ToUpper() == "/NC") - cbxDebug.Checked = false; - } - //PromsPrinter.tReset(); - CreatePDFs(); - //PromsPrinter.tShowResults(); - this.Close(); - } - private DocVersionInfo _DocVersionInfo = null; - private bool _AllProcedures; - private DocVersionConfig _DocVersionConfig; - public string RevNum - { - get { return txbRevNum.Text; } - set { txbRevNum.Text = value; } - } - public string RevNumAndDate - { - get - { - // the RevDate and Rev number are stored in the procedure config separtly as strings - // we put these two strings to gether to pass into the Print module. - // the Rev Number followed by a forward slash or backslash logic is from the 16-bit code - // and is treated as just string. - // Therefore we need to build a revison number string with a revdate appended to it but only - // if either the DoRevDate or the RevDateWithForwardSlash is true. otherwise we should use - // only the RevNumber. - if (RevDate == "" || - (RevNum.Contains("\\") || RevNum.Contains("/")) || - (!MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash && - !MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate)) - return RevNum; - if (MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash) - return RevNum + "\\" + RevDate; - else - return RevNum + "/" + RevDate; - } - } - public string ProcNum - { - get { return MyProcedure.DisplayNumber; } - } - public string PDFPath - { - get { return txbPDFLocation.Text; } - set { txbPDFLocation.Text = value; } - } - public string RevDate - { - get { return txbRevDate.Text; } - set { txbRevDate.Text = value; } - } - public string ReviewDate - { - get { return txbReviewDate.Text; } - set { txbReviewDate.Text = value; } - } - public string PDFPathSetting - { - get { return txbPdfLocationS.Text; } - set { txbPdfLocationS.Text = value; } - } - public DlgPrintProcedure(DocVersionInfo dvi, bool automatic) - { - _Automatic = automatic; - InitializeComponent(); - _AllProcedures = true; - _DocVersionConfig = dvi.DocVersionConfig; - _DocVersionInfo = dvi; - _MyProcedure = dvi.Procedures[0].MyProcedure; - btnCreatePDF.Text = "Create PDFs"; - HandleDocVersionSettings(); - PrepForAllOrOne(false); - // don't open all PDFs if doing All Procedures - //cbxOpenAfterCreate2.Checked = dvi.DocVersionConfig.Print_AlwaysViewPDFAfterCreate; - } - public DlgPrintProcedure(DocVersionInfo dvi) - { - _Automatic = false; - InitializeComponent(); - _AllProcedures = true; - _DocVersionConfig = dvi.DocVersionConfig; - _DocVersionInfo = dvi; - _MyProcedure = dvi.Procedures[0].MyProcedure; - btnCreatePDF.Text = "Create PDFs"; - HandleDocVersionSettings(); - PrepForAllOrOne(false); - // don't open all PDFs if doing All Procedures - //cbxOpenAfterCreate2.Checked = dvi.DocVersionConfig.Print_AlwaysViewPDFAfterCreate; - cbxBlankPgsForDuplex.Checked = dvi.DocVersionConfig.Print_AddBlankPagesWhenUsingDuplexFoldouts; - } - private void PrepForAllOrOne(bool oneProcedure) - { - txbPDFName.Visible = lblPDFFileName.Visible = oneProcedure; - txbRevNum.Visible = lblRevNum.Visible = oneProcedure; - txbReviewDate.Visible = lblReviewDate.Visible = oneProcedure; - txbRevDate.Visible = lblRevDate.Visible = oneProcedure; - cbxOpenAfterCreate2.Visible = oneProcedure; - cbxOpenAfterCreate2.Checked = false; - cbxOverwritePDF2.Visible = oneProcedure; - cbxOverwritePDF2.Checked = true; - gpnlDebug.Visible = Volian.Base.Library.VlnSettings.DebugMode; - } - private string _UnitNumber; - public string UnitNumber - { - get { return _UnitNumber; } - set { _UnitNumber = value; } - } - private int _UnitIndex; - public int UnitIndex - { - get { return _UnitIndex; } - set { _UnitIndex = value; } - } - public DlgPrintProcedure(ProcedureInfo pi) - { - InitializeComponent(); - _AllProcedures = false; - _DocVersionConfig = pi.MyDocVersion.DocVersionConfig; - _MyProcedure = pi; - btnCreatePDF.Text = "Create PDF"; - HandleDocVersionSettings(); - PrepForAllOrOne(true); - cbxOpenAfterCreate2.Checked = pi.MyDocVersion.DocVersionConfig.Print_AlwaysViewPDFAfterCreate; - cbxBlankPgsForDuplex.Checked = pi.MyDocVersion.DocVersionConfig.Print_AddBlankPagesWhenUsingDuplexFoldouts; - } - /// - /// RHM 20120925 Added so that the dialog would center over the PROMS window - /// - /// - protected override void OnActivated(EventArgs e) - { - base.OnActivated(e); - if (Owner != null) - Location = new Point(Owner.Left + Owner.Width / 2 - Width / 2, Owner.Top + Owner.Height/2 - Height/2); - } - private void HandleDocVersionSettings() - { - - GetDocVersionSettings(); - - // set to a default PDF location if none was specified in the DocVersions property - if (txbPDFLocation.Text == null || txbPDFLocation.Text.Length == 0 || !Directory.Exists(txbPDFLocation.Text)) - txbPDFLocation.Text = VlnSettings.TemporaryFolder; - SetCompareVisibility(); - // if the default setting is 'SelectBeforePrinting', put up a message box to determine whether the user - // wants change bars. If not, 'Change Bar' on the Setting tab is 'OFF' and no Change bar tab. - // If yes, the Change bar tab is the selected tab. - if (_DocVersionConfig.Print_ChangeBar == PrintChangeBar.SelectBeforePrinting) - { - DialogResult dr = DialogResult.Yes; - if(!Automatic) - dr = MessageBox.Show("Do you want change bars?", "Change Bars", MessageBoxButtons.YesNo); - if (dr == DialogResult.Yes) - { - btnChgBarOn.PerformClick(); - if(!Automatic) tabControl1.SelectedTab = tbChangeBars; - rbFormatDefault.PerformClick(); - rbFormatDefault.Checked = true; // default to 'Format Default' - } - else - { - btnChgBarOff.PerformClick(); - } - } - } - - private void GetDocVersionSettings() - { - _DocVersionConfig.SaveChangesToDocVersionConfig = false; - _DocVersionConfig.ParentLookup = false; - // PDF Location - PDFPath = _DocVersionConfig.Print_PDFLocation; - // Overwrite PDF - cbxOverwritePDF2.Checked = _DocVersionConfig.Print_AlwaysOverwritePDF; - // Open PDF After Create - cbxOpenAfterCreate2.Checked = _DocVersionConfig.Print_AlwaysViewPDFAfterCreate; - // Changebars on/off - if (_DocVersionConfig.Print_ChangeBar == PrintChangeBar.Without) - btnChgBarOff.PerformClick(); - else - btnChgBarOn.PerformClick(); - // Watermark on/off - if (_DocVersionConfig.Print_Watermark == PrintWatermark.None) - btnWaterMarkOff.PerformClick(); - else - btnWaterMarkOn.PerformClick(); - // Auto Duplexing on/off - - if ((_MyProcedure.ActiveParent as DocVersionInfo).ActiveFormat.PlantFormat.FormatData.PrintData.AllowDuplex) - { - lblAutoDuplexing.Visible = true; - btnDuplxOff.Visible = true; - btnDuplxOn.Visible = true; - if (_DocVersionConfig.Print_DisableDuplex) - btnDuplxOff.PerformClick(); - else - btnDuplxOn.PerformClick(); - } - else - { - lblAutoDuplexing.Visible = false; - btnDuplxOff.Visible = false; - btnDuplxOn.Visible = false; - } - SetCompareVisibility(); - - // default to using OriginalPageBreaks (16bit page breaks) if App.config is set - // to true: - cbxOrPgBrk.Visible = VlnSettings.OriginalPageBreak && VlnSettings.DebugMode; - cbxOrPgBrk.Checked = false; - } - - private void SetCompareVisibility() - { - // default to print Debug info if App.config is set to debug mode - // This checkbox is now labeled as "Compare PDF" - // If the PDF location has a Compare folder or we are in Debug Mode - // then make the checkbox visible - string cmpfldr = txbPDFLocation.Text; - if (!cmpfldr.EndsWith("\\")) cmpfldr += "\\"; - cmpfldr += "Compare"; - cbxDebug.Visible = Directory.Exists(cmpfldr) || VlnSettings.DebugMode; - cbxDebug.Checked = VlnSettings.DebugMode; - } - - private void DlgPrintProcedure_Load(object sender, EventArgs e) - { - SetupForProcedure(); - _MyTimer = new Timer(); - _MyTimer.Tick += new EventHandler(_MyTimer_Tick); - _MyTimer.Interval = 100; - _MyTimer.Enabled = true; - btnCreatePDF.Select(); - } - - void _MyTimer_Tick(object sender, EventArgs e) - { - _MyTimer.Enabled = false; - BringToFront(); - if (Automatic) RunAutomatic(); - } - - private Timer _MyTimer; - private void SetupForProcedure() - { - string PDFFilePrefix = _DocVersionConfig.Print_PDFFilePrefix; - string PDFFileSuffix = _DocVersionConfig.Print_PDFFileSuffix; - if(_DocVersionInfo == null)this.Text = "Create PDF for " + ProcNum; - // get list of previous pdf files - // if no previous pdf file, then get path from frmVersionProperties - // dlgSelectFile.InitialDirectory = pdf path from frmVersionProperties - //cbxPDF.Text = string.Format(@"{0}\{1}.pdf", _PDFPath, _ProcNum); - // General 2 settings - //txbPDFLocation.Text = _PDFPath; - string PDFFileName = ""; - if (ProcNum == string.Empty) - //txbPDFName.Text = this.UnitNumber + ".pdf"; - PDFFileName = this.UnitNumber; - else - //txbPDFName.Text = string.Format("{0}.pdf", _MyProcedure.PDFNumber); - PDFFileName = string.Format("{0}", _MyProcedure.PDFNumber); - //if (txbPDFName.Text.StartsWith("*")) - // txbPDFName.Text = txbPDFName.Text.Replace("*", this.UnitNumber); - if ((PDFFileName ?? "") == "") PDFFileName = "NoProcNumber"; - if (PDFFileName.StartsWith("*")) - PDFFileName = PDFFileName.Replace("*", this.UnitNumber); - txbPDFName.Text = PDFFilePrefix + PDFFileName + PDFFileSuffix + ".pdf"; - ProcedureConfig pc = _MyProcedure.MyConfig as ProcedureConfig; - if(SelectedSlave > 0) pc.SelectedSlave = SelectedSlave; - if (pc != null) - { - RevNum = pc.Print_Rev; - RevDate = pc.Print_RevDate; //== null || pc.Print_RevDate=="" ? DateTime.Today : Convert.ToDateTime(pc.Print_RevDate); - ReviewDate = pc.Print_ReviewDate; // == null ? DateTime.Today : Convert.ToDateTime(pc.Print_ReviewDate); - //Now check the format flags to determine if/how the Rev string should be parsed. - // This will covert the old way (16-bit) of setting a RevDate (appending it to the RevNumber) - // to the new way saving the RevNumber and RevDate in there own config fields - if ((_MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate && RevNum.Contains("/")) - || (_MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash && RevNum.Contains("\\"))) - { - int indx = RevNum.IndexOf(_MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash ? '\\' : '/'); - pc.Print_RevDate = RevDate = RevNum.Substring(indx + 1); - pc.Print_Rev = RevNum = RevNum.Substring(0, indx); - // save the RevNumber and RevDate to the procedure's config. - using (Item itm = Item.Get(MyProcedure.ItemID)) - { - itm.MyContent.Config = MyProcedure.MyConfig.ToString(); - itm.Save(); - } - } - } - else - { - RevNum = "0"; - RevDate = DateTime.Today.ToShortDateString(); - ReviewDate = null; - } - cbxWaterMark.DataSource = EnumDetail.Details(); - cbxWaterMark.DisplayMember = "Description"; - cbxWaterMark.ValueMember = "EValue"; - PrintWatermark pw = _DocVersionConfig.Print_Watermark; // MyProcedure.ProcedureConfig.Print_Watermark; - cbxWaterMark.Text = pw.ToString(); - - //ppCmbxChgBarPos.DataSource = EnumDetail.Details(); - //ppCmbxChgBarPos.DisplayMember = "Description"; - //ppCmbxChgBarPos.ValueMember = "EValue"; - //ppCmbxChgBarPos.SelectedIndex = (int)MyProcedure.MyDocVersion.DocVersionConfig.Print_ChangeBarLoc; - - ppCmbxChgBarTxtType.DataSource = EnumDetail.Details(); - ppCmbxChgBarTxtType.DisplayMember = "Description"; - ppCmbxChgBarTxtType.ValueMember = "EValue"; - ppCmbxChgBarTxtType.SelectedIndex = (int)_DocVersionConfig.Print_ChangeBarText; - - ppTxbxChangeBarUserMsgOne.Text = _DocVersionConfig.Print_UserCBMess1; - ppTxbxChangeBarUserMsgTwo.Text = _DocVersionConfig.Print_UserCBMess2; - ppGpbxUserSpecTxt.Enabled = ppCmbxChgBarTxtType.SelectedIndex == (int)PrintChangeBarText.UserDef; - bool hasReviewDate = _MyProcedure.ActiveFormat.PlantFormat.HasPageListToken("{REVIEWDATE}"); - bool usesRevDate = _MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate || _MyProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash; - if (_MyProcedure.Sections != null) - { - foreach (SectionInfo mysection in _MyProcedure.Sections) - hasReviewDate |= mysection.ActiveFormat.PlantFormat.HasPageListToken("{REVIEWDATE}"); - } - // Only the New HLP format and the MYA format use this - // South Texas does not use their new HLP format and MYA (Main Yankee) has dropped us (they closed) - // thus there is no supporting code to print a Review Date - // thus setting "hasReviewDate" to false so the Review Date entry box does not appear on the print dialog - // - jsj 4/3/2013 - hasReviewDate = false; // jsj 4/3/2013 - lblReviewDate.Visible = txbReviewDate.Visible = !_AllProcedures && hasReviewDate; - lblRevDate.Visible = txbRevDate.Visible = !_AllProcedures && usesRevDate; - } - - private void btnCancel_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void btnAvChgBarOn_Click(object sender, EventArgs e) - { - if (!btnChgBarOn.Checked) - { - btnChgBarOn.Checked = true; - btnChgBarOff.Checked = false; - tbChangeBars.Visible = true; - // to set which radio button (Format default or Custom) is checked, look at config data - switch (_DocVersionConfig.Print_ChangeBar) - { - case PrintChangeBar.WithUserSpecified: - rbCustom.Checked = true; - break; - case PrintChangeBar.SelectBeforePrinting: - case PrintChangeBar.WithDefault: - default: - rbFormatDefault.Checked = true; - break; - } - } - } - private void btnAvChgBarOff_Click(object sender, EventArgs e) - { - if (!btnChgBarOff.Checked) - { - btnChgBarOff.Checked = true; - btnChgBarOn.Checked = false; - tbChangeBars.Visible = false; - } - } - - private void btnAdvDuplxOn_Click(object sender, EventArgs e) - { - if (!btnDuplxOn.Checked) - { - btnDuplxOn.Checked = true; - btnDuplxOff.Checked = false; - } - } - - private void btnAdvDuplxOff_Click(object sender, EventArgs e) - { - if (!btnDuplxOff.Checked) - { - btnDuplxOff.Checked = true; ; - btnDuplxOn.Checked = false; - } - } - - private void btnAdvWaterMarkOn_Click(object sender, EventArgs e) - { - if (!btnWaterMarkOn.Checked) - { - btnWaterMarkOn.Checked = true; - btnWaterMarkOff.Checked = false; - cbxWaterMark.Visible = true; - } - } - - private void btnAdvWaterMarkOff_Click(object sender, EventArgs e) - { - if (!btnWaterMarkOff.Checked) - { - btnWaterMarkOff.Checked = true; - btnWaterMarkOn.Checked = false; - cbxWaterMark.Visible = false; - } - } - - private void txbPDFLocation_Leave(object sender, EventArgs e) - { - if (!Directory.Exists(PDFPath)) - { - string msg = string.Format("'{0}' does not exist. \n\nCreate it?", PDFPath); - DialogResult dr= MessageBox.Show(msg, "Folder Not Found", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) - { - try - { - Directory.CreateDirectory(PDFPath); - } - catch (Exception ex) - { - MessageBox.Show(ex.Message, "Error trying to create folder", MessageBoxButtons.OK, MessageBoxIcon.Error); - PDFPath = _DocVersionConfig.Print_PDFLocation; - } - } - else - { - PDFPath = _DocVersionConfig.Print_PDFLocation; - } - } - } - - private void DlgPrintProcedure_FormClosed(object sender, FormClosedEventArgs e) - { - _DocVersionConfig.SaveChangesToDocVersionConfig = true; - //_DocVersionConfig.ParentLookup = true; - - ProcedureConfig pc = _MyProcedure.MyConfig as ProcedureConfig; - if (SelectedSlave > 0) pc.SelectedSlave = 0; - } - - private ProcedureInfo _MyProcedure; - - public ProcedureInfo MyProcedure - { - get { return _MyProcedure; } - set { _MyProcedure = value; } - } - private int _SelectedSlave = 0; - public int SelectedSlave - { - get { return _SelectedSlave; } - set - { - _SelectedSlave = value; - lblMultiunitPdfLocation.Visible = cbxMultiunitPdfLocation.Visible = (value > -1); - cbxMultiunitPdfLocation.SelectedIndex = 1; - } - } - private string _MultiunitPdfLocation = string.Empty; - private void CreatePDFs() - { - StringBuilder sb = new StringBuilder(); - if (MySessionInfo != null) - { - foreach (ProcedureInfo myProc in _DocVersionInfo.Procedures) - { - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(myProc.ItemID, CheckOutType.Procedure, ref message)) - { - sb.AppendLine(message); - } - } - if (sb.Length > 0) - { - if (MessageBox.Show(sb.ToString() + Environment.NewLine + Environment.NewLine + "Do you want to continue to print all procedures?", "Procedures Already Checked Out", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) - return; - } - } - CreateDebugFiles(); - // If file exists, determine if overwrite checkbox allows overwrite, if not prompt. - - Volian.Print.Library.Rtf2Pdf.PdfDebug = true; - PrintWatermark pw = (btnWaterMarkOn.Checked) ? (PrintWatermark)cbxWaterMark.SelectedValue : PrintWatermark.None; - // Determine change bar settings. First get from config & then see if override from dialog. - // Also check that format allows override. - ChangeBarDefinition cbd = DetermineChangeBarSettings(); - int n = _DocVersionInfo.Procedures.Count; - int i = 0; - pbPDFsStatus.Maximum = n; - pbPDFsStatus.Visible = true; - this.Text = string.Format("Processing {0}", _DocVersionInfo.MyFolder.Name); - foreach (ProcedureInfo myProc in _DocVersionInfo.Procedures) - { - MyProcedure = myProc; - if (myProc.Sections != null) - { - // This is master/slave & a slave has been selected for printing (SelectedSlave > 0) - if (SelectedSlave > 0) - { - MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = SelectedSlave; - SetupForProcedure(); - pbPDFsStatus.TextVisible = true; - pbPDFsStatus.Text = string.Format("Creating PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n); - pbPDFsStatus.Value = i; -// this.Text = string.Format("Create PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n); - MyProcedure = ProcedureInfo.GetItemAndChildrenByUnit(MyProcedure.ItemID, 0, MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave); - string myPDFPath = GetMultiunitPDFPath(); - // RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered. - frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, myPDFPath, cbd, txbPDFName.Text, new Point(Left, Bottom - 50),cbxBlankPgsForDuplex.Checked); - frmStatus.CloseWhenDone = true; - Application.DoEvents(); - frmStatus.CancelStop = true; - frmStatus.ShowDialog(); - if (frmStatus.CancelPrinting) break; - } - // This is a master/slave for printing of all slaves (SelectedSave == 0) - else if (SelectedSlave == 0) - { - for (int k = 1; k <= MyProcedure.MyDocVersion.MultiUnitCount; k++) - { - MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = k; - SetupForProcedure(); - pbPDFsStatus.TextVisible = true; - pbPDFsStatus.Text = string.Format("Creating PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n); - pbPDFsStatus.Value = i; -// this.Text = string.Format("Create PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n); - MyProcedure = ProcedureInfo.GetItemAndChildrenByUnit(MyProcedure.ItemID, 0, MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave); - // RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered. - frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, PDFPath, cbd, txbPDFName.Text, new Point(Left, Bottom - 50), cbxBlankPgsForDuplex.Checked); - frmStatus.CloseWhenDone = true; - Application.DoEvents(); - frmStatus.CancelStop = true; - frmStatus.ShowDialog(); - if (frmStatus.CancelPrinting) break; - } - } - // Not master/slave - else - { - SetupForProcedure(); - pbPDFsStatus.TextVisible = true; - pbPDFsStatus.Text = string.Format("Creating PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n); - pbPDFsStatus.Value = i; -// this.Text = string.Format("Create PDF for {0} ({1} of {2})", myProc.DisplayNumber, ++i, n); - // RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered. - if (MyProcedure.ActiveFormat.PlantFormat.FormatData.TransData.UseTransitionModifier || MyProcedure.ActiveFormat.PlantFormat.FormatData.TransData.UseSpecificTransitionModifier) - MyProcedure = ProcedureInfo.GetItemAndChildrenByUnit(MyProcedure.ItemID, 0, MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave); - else - MyProcedure = ProcedureInfo.GetItemAndChildren(MyProcedure.ItemID); - frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, PDFPath, cbd, txbPDFName.Text, new Point(Left, Bottom - 50), cbxBlankPgsForDuplex.Checked); - frmStatus.CloseWhenDone = true; - Application.DoEvents(); - frmStatus.CancelStop = true; - frmStatus.ShowDialog(); - if (frmStatus.CancelPrinting) break; - } - } - } - pbPDFsStatus.Visible = false; - if(!Automatic) - ShowDebugFiles(); - } - - private string GetMultiunitPDFPath() - { - string newPDFPath = string.Empty; - if (_MultiunitPdfLocation == "None") - newPDFPath = PDFPath; - if (_MultiunitPdfLocation == "Unit Name") - newPDFPath = PDFPath + @"\" + MyProcedure.MyDocVersion.DocVersionConfig.Unit_Name; - if (_MultiunitPdfLocation == "Unit Number") - newPDFPath = PDFPath + @"\" + MyProcedure.MyDocVersion.DocVersionConfig.Unit_Number; - if (_MultiunitPdfLocation == "Unit Text") - newPDFPath = PDFPath + @"\" + MyProcedure.MyDocVersion.DocVersionConfig.Unit_Text; - if (_MultiunitPdfLocation == "Unit ID") - newPDFPath = PDFPath + @"\" + MyProcedure.MyDocVersion.DocVersionConfig.Unit_ID; - if (newPDFPath == "") newPDFPath = Volian.Base.Library.VlnSettings.TemporaryFolder; - if (!Directory.Exists(newPDFPath)) - Directory.CreateDirectory(newPDFPath); - return newPDFPath; - } - private void CreateDebugFiles() - { - if (cbxDebugPagination.Checked) - Volian.Base.Library.DebugPagination.Open(PDFPath + "\\DebugPagination.txt"); // RHM 20120925 Corrected spelling - if (cbxDebugText.Checked) - Volian.Base.Library.DebugText.Open(PDFPath + "\\DebugText.txt"); - } - private void ShowDebugFiles() - { - if (cbxDebugPagination.Checked) - Volian.Base.Library.DebugPagination.Show(); - if (cbxDebugText.Checked) - Volian.Base.Library.DebugText.Show(); - } - private void CreatePDF() - { - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(MyProcedure.ItemID, CheckOutType.Procedure, ref message)) - { - if (MessageBox.Show(this, message + Environment.NewLine + Environment.NewLine + "Do you want to continue to print the procedure?", "Procedure Is Checked Out", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) - return; - } - CreateDebugFiles(); - // If file exists, determine if overwrite checkbox allows overwrite, if not prompt. - - Volian.Print.Library.Rtf2Pdf.PdfDebug = true; - PrintWatermark pw = (btnWaterMarkOn.Checked) ? (PrintWatermark)cbxWaterMark.SelectedValue : PrintWatermark.None; - // Determine change bar settings. First get from config & then see if override from dialog. - // Also check that format allows override. - ChangeBarDefinition cbd = DetermineChangeBarSettings(); - if (MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave > 0 || MyProcedure.ActiveFormat.PlantFormat.FormatData.TransData.UseTransitionModifier || MyProcedure.ActiveFormat.PlantFormat.FormatData.TransData.UseSpecificTransitionModifier) - MyProcedure = ProcedureInfo.GetItemAndChildrenByUnit(MyProcedure.ItemID, 0, MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave); - else - MyProcedure = ProcedureInfo.GetItemAndChildren(MyProcedure.ItemID); - // RHM 20120925 Overlay the bottom of the dialog so that cancel button is covered. - frmPDFStatusForm frmStatus = new frmPDFStatusForm(MyProcedure, RevNumAndDate, pw.ToString(), cbxDebug.Checked, cbxOrPgBrk.Checked, cbxOpenAfterCreate2.Checked, cbxOverwritePDF2.Checked, PDFPath, cbd, txbPDFName.Text, new Point(Left, Bottom - 50), cbxBlankPgsForDuplex.Checked); - frmStatus.ShowDialog(); - MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = 0; - this.Close(); - ShowDebugFiles(); - } - - // Determine if any dialog selections for change bars have overridden the data - // supplied in the DocVconfig data or format file. Settings are location and text. - private ChangeBarDefinition DetermineChangeBarSettings() - { - ChangeBarDefinition cbd = new ChangeBarDefinition(); - - // if the dialog has 'without change bar' selected, then just set without and return - if (btnChgBarOff.Checked) - { - cbd.MyChangeBarType = PrintChangeBar.Without; - return cbd; - } - // Get settings from dialog because these are used to set the initial dialog values and - // any changes from user overrides the initial settings. - ChangeBarData changeBarData = MyProcedure.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData; - if (rbFormatDefault.Checked || _DocVersionConfig == null || _DocVersionConfig.Print_ChangeBar == PrintChangeBar.WithDefault) - { - cbd.MyChangeBarType = PrintChangeBar.WithDefault; - cbd.MyChangeBarText = changeBarData.ChangeBarMessage == "ChgID" ? PrintChangeBarText.ChgID : - changeBarData.ChangeBarMessage == "DateAndChgID" ? PrintChangeBarText.DateChgID : - changeBarData.ChangeBarMessage == "None" ? PrintChangeBarText.None : - changeBarData.ChangeBarMessage == "RevNum" ? PrintChangeBarText.RevNum : PrintChangeBarText.UserDef; - } - else if (rbCustom.Checked || _DocVersionConfig.Print_ChangeBar == PrintChangeBar.WithUserSpecified) - { - cbd.MyChangeBarLoc = _DocVersionConfig.Print_ChangeBarLoc; // (PrintChangeBarLoc)ppCmbxChgBarPos.SelectedIndex; - cbd.MyChangeBarText = (PrintChangeBarText)ppCmbxChgBarTxtType.SelectedIndex; - } - else - { - cbd.MyChangeBarLoc = _DocVersionConfig.Print_ChangeBarLoc; - cbd.MyChangeBarText = _DocVersionConfig.Print_ChangeBarText; - } - - // now figure out the location. - if (cbd.MyChangeBarType != PrintChangeBar.Without) - { - // if the format has the absolutefixedchangecolumn format flag, then always use the fixedchangecolumn from the - // format, otherwise, use the default column based on the selected location, stored in the base format. - cbd.MyChangeBarColumn = (changeBarData.AbsoluteFixedChangeColumn) ? - (int)changeBarData.FixedChangeColumn : - System.Convert.ToInt32(changeBarData.DefaultCBLoc.Split(" ,".ToCharArray())[System.Convert.ToInt32(cbd.MyChangeBarLoc)]); - //cbd.MyChangeBarColumn = (int)changeBarData.FixedChangeColumn; - if (cbd.MyChangeBarText == PrintChangeBarText.UserDef) - cbd.MyChangeBarMessage = _DocVersionConfig.Print_UserCBMess1 + @"\n" + _DocVersionConfig.Print_UserCBMess2; - - } - return cbd; - } - private void btnCreatePDF_Click(object sender, EventArgs e) - { - Rtf2iTextSharp.DoingComparison = cbxDebug.Checked; - if (_AllProcedures) - { - DateTime dtStart = DateTime.Now; - _MultiunitPdfLocation = cbxMultiunitPdfLocation.SelectedItem.ToString(); - PromsPrinter.ClearTransPageNumProblems(); - CreatePDFs(); - PromsPrinter.ReportTransPageNumProblems(); - if (VlnSettings.DebugMode) - { - MessageBox.Show(string.Format("{0} Minutes to Print All Procedures" - , TimeSpan.FromTicks(DateTime.Now.Ticks - dtStart.Ticks).TotalMinutes), - "Printing Duration", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - else // Production or Demo mode - { - MessageBox.Show("Completed Successfully", "Print All Procedures", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - this.Close(); - } - else - //Database.Reset("Before Print"); - CreatePDF(); - //Database.Reset("After Print"); - } - private bool _Initializing = false; - private void tbSettings_Click(object sender, EventArgs e) - { - // Fill in the settings from the config. This tab is used - // to update the settings for PdfLocation, RevNum, RevDate and ReviewDate - _Initializing = true; - txbPdfLocationS.Text = txbPDFLocation.Text; - _Initializing = false; - } - - - private void btnPdfLocation_Click(object sender, EventArgs e) - { - DlgBrowseFolder.SelectedPath = PDFPathSetting; - DialogResult drslt = DlgBrowseFolder.ShowDialog(); - if (drslt == DialogResult.OK) - { - //cbxPDFloc.Text = DlgBrowseFolder.SelectedPath; - txbPdfLocationS.Text = DlgBrowseFolder.SelectedPath; - txbPDFLocation.Text = txbPdfLocationS.Text; - //lblCurPDFLoc.Text = cbxPDFloc.Text; - //UpdateDropDown2(); - } - } - - private void rbFormatDefault_Click(object sender, EventArgs e) - { - SetCustomControls(false); - // Make Custom controls invisible - ppGpbxUserSpecCB.Visible = false; - } - - private void SetCustomControls(bool enabled) - { - ppCmbxChgBarPos.Enabled = enabled; - ppCmbxChgBarTxtType.Enabled = enabled; - ppTxbxChangeBarUserMsgOne.Enabled = enabled; - ppTxbxChangeBarUserMsgTwo.Enabled = enabled; - } - - private void rbCustom_Click(object sender, EventArgs e) - { - SetCustomControls(true); - // Make Custom controls visible - ppGpbxUserSpecCB.Visible = true; - } - - private void rbFormatDefault_CheckedChanged(object sender, EventArgs e) - { - SetCustomControls(false); - // Make Custom controls invisible - ppGpbxUserSpecCB.Visible = false; - } - - private void ppCmbxChgBarTxtType_SelectedIndexChanged(object sender, EventArgs e) - { - if (_Initializing) return; - ppGpbxUserSpecTxt.Enabled = ppCmbxChgBarTxtType.SelectedIndex == (int)PrintChangeBarText.UserDef; - } - private void txbRevDate_Enter(object sender, EventArgs e) - { - txbDate = txbRevDate; - grpDateSelector.Text = "Select Revision Date"; - grpDateSelector.Visible = calDateSelector.Visible = true; - - } - - private void txbRevDate_Leave(object sender, EventArgs e) - { - if (_Initializing) return; - txbDate = null; - grpDateSelector.Visible = calDateSelector.Visible = false; - // save the RevDate to the procedure's config. - ProcedureConfig pc = MyProcedure.MyConfig as ProcedureConfig; - if (pc == null) return; - pc.Print_RevDate = txbRevDate.Text; - using (Item itm = Item.Get(MyProcedure.ItemID)) - { - itm.MyContent.Config = MyProcedure.MyConfig.ToString(); - itm.Save(); - } - - } - - private void txbReviewDate_Leave(object sender, EventArgs e) - { - if (_Initializing) return; - txbDate = null; - grpDateSelector.Visible = calDateSelector.Visible = false; - // save the ReviewDate to the procedure's config. - ProcedureConfig pc = MyProcedure.MyConfig as ProcedureConfig; - if (pc == null) return; - pc.Print_ReviewDate = txbReviewDate.Text; - using (Item itm = Item.Get(MyProcedure.ItemID)) - { - itm.MyContent.Config = MyProcedure.MyConfig.ToString(); - itm.Save(); - // need to reset config to !dirty? - } - - } - private void txbReviewDate_Enter(object sender, EventArgs e) - { - txbDate = txbReviewDate; - grpDateSelector.Text = "Select Review Date"; - grpDateSelector.Visible = calDateSelector.Visible = true; - } - - private TextBox txbDate = null; - private void calDateSelector_DateSelected(object sender, DateRangeEventArgs e) - { - if (txbDate != null) - txbDate.Text = e.Start.ToShortDateString(); - } - - private void txbRevNum_Leave(object sender, EventArgs e) - { - if (_Initializing) return; - // save the RevNum to the procedure's config. - ProcedureConfig pc = MyProcedure.MyConfig as ProcedureConfig; - if (pc == null) return; - pc.Print_Rev = txbRevNum.Text; - using (Item itm = Item.Get(MyProcedure.ItemID)) - { - itm.MyContent.Config = MyProcedure.MyConfig.ToString(); - itm.Save(); - } - } - //private void cbxDebug_CheckedChanged(object sender, EventArgs e) - //{ - // cbxCmpPRMSpfd.Visible = cbxDebug.Checked; - //} - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/FindReplace.Designer.cs b/PROMS/VEPROMS User Interface/FindReplace.Designer.cs deleted file mode 100644 index e4acdb5e..00000000 --- a/PROMS/VEPROMS User Interface/FindReplace.Designer.cs +++ /dev/null @@ -1,381 +0,0 @@ -namespace VEPROMS -{ - partial class FindReplace - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(FindReplace)); - this.btnFind = new DevComponents.DotNetBar.ButtonX(); - this.btnReplace = new DevComponents.DotNetBar.ButtonX(); - this.btnFndRplDone = new DevComponents.DotNetBar.ButtonX(); - this.btnFindNext = new DevComponents.DotNetBar.ButtonX(); - this.cmboReplaceText = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.labelX2 = new DevComponents.DotNetBar.LabelX(); - this.cmboFindText = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.labelX3 = new DevComponents.DotNetBar.LabelX(); - this.groupPanel1 = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.cbFndInAllProcs = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.cbFndInProc = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.cbFndInSect = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.groupPanel2 = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.cbRplNoPrmpt = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.cbPrmptRpl = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.cbDontReplace = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.btnRplFndNxt = new DevComponents.DotNetBar.ButtonX(); - this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); - this.groupPanel1.SuspendLayout(); - this.groupPanel2.SuspendLayout(); - this.panelEx1.SuspendLayout(); - this.SuspendLayout(); - // - // btnFind - // - this.btnFind.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnFind.Location = new System.Drawing.Point(11, 223); - this.btnFind.Name = "btnFind"; - this.btnFind.Size = new System.Drawing.Size(83, 34); - this.btnFind.TabIndex = 0; - this.btnFind.Text = "Find"; - this.btnFind.Click += new System.EventHandler(this.btnFind_Click); - // - // btnReplace - // - this.btnReplace.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnReplace.Enabled = false; - this.btnReplace.Location = new System.Drawing.Point(251, 223); - this.btnReplace.Name = "btnReplace"; - this.btnReplace.Size = new System.Drawing.Size(75, 34); - this.btnReplace.TabIndex = 1; - this.btnReplace.Text = "Replace"; - this.btnReplace.Click += new System.EventHandler(this.btnReplace_Click); - // - // btnFndRplDone - // - this.btnFndRplDone.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnFndRplDone.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnFndRplDone.Location = new System.Drawing.Point(497, 222); - this.btnFndRplDone.Name = "btnFndRplDone"; - this.btnFndRplDone.Size = new System.Drawing.Size(75, 33); - this.btnFndRplDone.TabIndex = 2; - this.btnFndRplDone.Text = "Done"; - this.btnFndRplDone.Click += new System.EventHandler(this.btnFndRplDone_Click); - // - // btnFindNext - // - this.btnFindNext.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnFindNext.Location = new System.Drawing.Point(115, 223); - this.btnFindNext.Name = "btnFindNext"; - this.btnFindNext.Size = new System.Drawing.Size(75, 33); - this.btnFindNext.TabIndex = 3; - this.btnFindNext.Text = "Find Next"; - // - // cmboReplaceText - // - this.cmboReplaceText.DisplayMember = "Text"; - this.cmboReplaceText.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.cmboReplaceText.Enabled = false; - this.cmboReplaceText.FormattingEnabled = true; - this.cmboReplaceText.Location = new System.Drawing.Point(113, 58); - this.cmboReplaceText.Name = "cmboReplaceText"; - this.cmboReplaceText.Size = new System.Drawing.Size(445, 23); - this.cmboReplaceText.TabIndex = 7; - this.cmboReplaceText.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cmboReplaceText.WatermarkText = "Enter text to replace here"; - this.cmboReplaceText.SelectedIndexChanged += new System.EventHandler(this.cmboReplaceText_SelectedIndexChanged); - // - // labelX2 - // - this.labelX2.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelX2.Location = new System.Drawing.Point(11, 53); - this.labelX2.Name = "labelX2"; - this.labelX2.Size = new System.Drawing.Size(105, 28); - this.labelX2.TabIndex = 6; - this.labelX2.Text = "Replace Text:"; - // - // cmboFindText - // - this.cmboFindText.DisplayMember = "Text"; - this.cmboFindText.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.cmboFindText.FormattingEnabled = true; - this.cmboFindText.Location = new System.Drawing.Point(113, 18); - this.cmboFindText.Name = "cmboFindText"; - this.cmboFindText.Size = new System.Drawing.Size(445, 23); - this.cmboFindText.TabIndex = 9; - this.cmboFindText.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cmboFindText.WatermarkText = "Enter text to find here"; - this.cmboFindText.SelectedIndexChanged += new System.EventHandler(this.cmboFindText_SelectedIndexChanged); - // - // labelX3 - // - this.labelX3.Font = new System.Drawing.Font("Microsoft Sans Serif", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.labelX3.Location = new System.Drawing.Point(33, 15); - this.labelX3.Name = "labelX3"; - this.labelX3.Size = new System.Drawing.Size(74, 28); - this.labelX3.TabIndex = 8; - this.labelX3.Text = "Find Text: "; - // - // groupPanel1 - // - this.groupPanel1.CanvasColor = System.Drawing.SystemColors.Control; - this.groupPanel1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.groupPanel1.Controls.Add(this.cbFndInAllProcs); - this.groupPanel1.Controls.Add(this.cbFndInProc); - this.groupPanel1.Controls.Add(this.cbFndInSect); - this.groupPanel1.Location = new System.Drawing.Point(53, 100); - this.groupPanel1.Name = "groupPanel1"; - this.groupPanel1.Size = new System.Drawing.Size(185, 102); - // - // - // - this.groupPanel1.Style.BackColor2 = System.Drawing.Color.LightSteelBlue; - this.groupPanel1.Style.BackColorGradientAngle = 90; - this.groupPanel1.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.groupPanel1.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.groupPanel1.Style.BorderBottomWidth = 1; - this.groupPanel1.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.groupPanel1.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.groupPanel1.Style.BorderLeftWidth = 1; - this.groupPanel1.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.groupPanel1.Style.BorderRightWidth = 1; - this.groupPanel1.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.groupPanel1.Style.BorderTopWidth = 1; - this.groupPanel1.Style.CornerDiameter = 4; - this.groupPanel1.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.groupPanel1.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.groupPanel1.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.groupPanel1.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - this.groupPanel1.TabIndex = 10; - this.groupPanel1.Text = "Find Scope"; - // - // cbFndInAllProcs - // - this.cbFndInAllProcs.BackColor = System.Drawing.Color.Transparent; - this.cbFndInAllProcs.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; - this.cbFndInAllProcs.Location = new System.Drawing.Point(7, 49); - this.cbFndInAllProcs.Name = "cbFndInAllProcs"; - this.cbFndInAllProcs.Size = new System.Drawing.Size(169, 23); - this.cbFndInAllProcs.TabIndex = 2; - this.cbFndInAllProcs.Text = "All Procedures in This Set"; - // - // cbFndInProc - // - this.cbFndInProc.BackColor = System.Drawing.Color.Transparent; - this.cbFndInProc.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; - this.cbFndInProc.Location = new System.Drawing.Point(7, 26); - this.cbFndInProc.Name = "cbFndInProc"; - this.cbFndInProc.Size = new System.Drawing.Size(144, 23); - this.cbFndInProc.TabIndex = 1; - this.cbFndInProc.Text = "Only This Procedure"; - // - // cbFndInSect - // - this.cbFndInSect.BackColor = System.Drawing.Color.Transparent; - this.cbFndInSect.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; - this.cbFndInSect.Checked = true; - this.cbFndInSect.Location = new System.Drawing.Point(7, 3); - this.cbFndInSect.Name = "cbFndInSect"; - this.cbFndInSect.Size = new System.Drawing.Size(127, 23); - this.cbFndInSect.TabIndex = 0; - this.cbFndInSect.Text = "Only This Section"; - // - // groupPanel2 - // - this.groupPanel2.CanvasColor = System.Drawing.SystemColors.Control; - this.groupPanel2.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.groupPanel2.Controls.Add(this.cbRplNoPrmpt); - this.groupPanel2.Controls.Add(this.cbPrmptRpl); - this.groupPanel2.Controls.Add(this.cbDontReplace); - this.groupPanel2.Location = new System.Drawing.Point(293, 100); - this.groupPanel2.Name = "groupPanel2"; - this.groupPanel2.Size = new System.Drawing.Size(200, 102); - // - // - // - this.groupPanel2.Style.BackColor2 = System.Drawing.Color.LightSteelBlue; - this.groupPanel2.Style.BackColorGradientAngle = 90; - this.groupPanel2.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.groupPanel2.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.groupPanel2.Style.BorderBottomWidth = 1; - this.groupPanel2.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.groupPanel2.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.groupPanel2.Style.BorderLeftWidth = 1; - this.groupPanel2.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.groupPanel2.Style.BorderRightWidth = 1; - this.groupPanel2.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.groupPanel2.Style.BorderTopWidth = 1; - this.groupPanel2.Style.CornerDiameter = 4; - this.groupPanel2.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.groupPanel2.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.groupPanel2.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.groupPanel2.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - this.groupPanel2.TabIndex = 11; - this.groupPanel2.Text = "Replace Options"; - // - // cbRplNoPrmpt - // - this.cbRplNoPrmpt.BackColor = System.Drawing.Color.Transparent; - this.cbRplNoPrmpt.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; - this.cbRplNoPrmpt.Location = new System.Drawing.Point(13, 49); - this.cbRplNoPrmpt.Name = "cbRplNoPrmpt"; - this.cbRplNoPrmpt.Size = new System.Drawing.Size(178, 23); - this.cbRplNoPrmpt.TabIndex = 2; - this.cbRplNoPrmpt.Text = "Replace Without Prompting"; - // - // cbPrmptRpl - // - this.cbPrmptRpl.BackColor = System.Drawing.Color.Transparent; - this.cbPrmptRpl.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; - this.cbPrmptRpl.Location = new System.Drawing.Point(13, 26); - this.cbPrmptRpl.Name = "cbPrmptRpl"; - this.cbPrmptRpl.Size = new System.Drawing.Size(169, 23); - this.cbPrmptRpl.TabIndex = 1; - this.cbPrmptRpl.Text = "Prompt For Each Replace"; - // - // cbDontReplace - // - this.cbDontReplace.BackColor = System.Drawing.Color.Transparent; - this.cbDontReplace.CheckBoxStyle = DevComponents.DotNetBar.eCheckBoxStyle.RadioButton; - this.cbDontReplace.Checked = true; - this.cbDontReplace.Location = new System.Drawing.Point(13, 3); - this.cbDontReplace.Name = "cbDontReplace"; - this.cbDontReplace.Size = new System.Drawing.Size(126, 23); - this.cbDontReplace.TabIndex = 0; - this.cbDontReplace.Text = "Don\'t Do Replace"; - this.cbDontReplace.CheckedChanged += new System.EventHandler(this.cbDontReplace_CheckedChanged); - // - // btnRplFndNxt - // - this.btnRplFndNxt.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnRplFndNxt.Enabled = false; - this.btnRplFndNxt.Location = new System.Drawing.Point(344, 222); - this.btnRplFndNxt.Name = "btnRplFndNxt"; - this.btnRplFndNxt.Size = new System.Drawing.Size(107, 34); - this.btnRplFndNxt.TabIndex = 12; - this.btnRplFndNxt.Text = "Replace And\r\nFind Next"; - // - // panelEx1 - // - this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control; - this.panelEx1.ColorScheme.BarBackground = System.Drawing.Color.FromArgb(((int)(((byte)(205)))), ((int)(((byte)(208)))), ((int)(((byte)(213))))); - this.panelEx1.ColorScheme.BarBackground2 = System.Drawing.Color.FromArgb(((int)(((byte)(139)))), ((int)(((byte)(146)))), ((int)(((byte)(155))))); - this.panelEx1.ColorScheme.BarCaptionBackground = System.Drawing.Color.FromArgb(((int)(((byte)(118)))), ((int)(((byte)(128)))), ((int)(((byte)(142))))); - this.panelEx1.ColorScheme.BarCaptionBackground2 = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(83)))), ((int)(((byte)(92))))); - this.panelEx1.ColorScheme.BarCaptionInactiveBackground = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(241)))), ((int)(((byte)(242))))); - this.panelEx1.ColorScheme.BarCaptionInactiveBackground2 = System.Drawing.Color.FromArgb(((int)(((byte)(189)))), ((int)(((byte)(194)))), ((int)(((byte)(201))))); - this.panelEx1.ColorScheme.BarCaptionInactiveText = System.Drawing.Color.FromArgb(((int)(((byte)(55)))), ((int)(((byte)(60)))), ((int)(((byte)(67))))); - this.panelEx1.ColorScheme.BarDockedBorder = System.Drawing.Color.FromArgb(((int)(((byte)(76)))), ((int)(((byte)(83)))), ((int)(((byte)(92))))); - this.panelEx1.ColorScheme.BarFloatingBorder = System.Drawing.Color.FromArgb(((int)(((byte)(55)))), ((int)(((byte)(60)))), ((int)(((byte)(67))))); - this.panelEx1.ColorScheme.BarPopupBorder = System.Drawing.Color.FromArgb(((int)(((byte)(145)))), ((int)(((byte)(153)))), ((int)(((byte)(164))))); - this.panelEx1.ColorScheme.BarStripeColor = System.Drawing.Color.FromArgb(((int)(((byte)(55)))), ((int)(((byte)(60)))), ((int)(((byte)(67))))); - this.panelEx1.ColorScheme.CustomizeBackground = System.Drawing.Color.FromArgb(((int)(((byte)(178)))), ((int)(((byte)(183)))), ((int)(((byte)(191))))); - this.panelEx1.ColorScheme.CustomizeBackground2 = System.Drawing.Color.FromArgb(((int)(((byte)(81)))), ((int)(((byte)(88)))), ((int)(((byte)(98))))); - this.panelEx1.ColorScheme.DockSiteBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(83)))), ((int)(((byte)(83)))), ((int)(((byte)(83))))); - this.panelEx1.ColorScheme.ExplorerBarBackground = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(241)))), ((int)(((byte)(242))))); - this.panelEx1.ColorScheme.ExplorerBarBackground2 = System.Drawing.Color.FromArgb(((int)(((byte)(189)))), ((int)(((byte)(194)))), ((int)(((byte)(201))))); - this.panelEx1.ColorScheme.ItemCheckedBackground = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(211)))), ((int)(((byte)(106))))); - this.panelEx1.ColorScheme.ItemDesignTimeBorder = System.Drawing.Color.Black; - this.panelEx1.ColorScheme.ItemExpandedBackground = System.Drawing.Color.FromArgb(((int)(((byte)(145)))), ((int)(((byte)(153)))), ((int)(((byte)(164))))); - this.panelEx1.ColorScheme.ItemExpandedBackground2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(110)))), ((int)(((byte)(122))))); - this.panelEx1.ColorScheme.ItemExpandedBorder = System.Drawing.Color.FromArgb(((int)(((byte)(145)))), ((int)(((byte)(153)))), ((int)(((byte)(164))))); - this.panelEx1.ColorScheme.ItemSeparator = System.Drawing.Color.FromArgb(((int)(((byte)(225)))), ((int)(((byte)(145)))), ((int)(((byte)(153)))), ((int)(((byte)(164))))); - this.panelEx1.ColorScheme.ItemSeparatorShade = System.Drawing.Color.FromArgb(((int)(((byte)(180)))), ((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.panelEx1.ColorScheme.MenuBarBackground = System.Drawing.Color.FromArgb(((int)(((byte)(83)))), ((int)(((byte)(83)))), ((int)(((byte)(83))))); - this.panelEx1.ColorScheme.MenuBorder = System.Drawing.Color.FromArgb(((int)(((byte)(145)))), ((int)(((byte)(153)))), ((int)(((byte)(164))))); - this.panelEx1.ColorScheme.MenuSide = System.Drawing.Color.FromArgb(((int)(((byte)(239)))), ((int)(((byte)(239)))), ((int)(((byte)(239))))); - this.panelEx1.ColorScheme.MenuUnusedSide = System.Drawing.Color.FromArgb(((int)(((byte)(233)))), ((int)(((byte)(233)))), ((int)(((byte)(233))))); - this.panelEx1.ColorScheme.PanelBackground = System.Drawing.Color.FromArgb(((int)(((byte)(240)))), ((int)(((byte)(241)))), ((int)(((byte)(242))))); - this.panelEx1.ColorScheme.PanelBackground2 = System.Drawing.Color.FromArgb(((int)(((byte)(189)))), ((int)(((byte)(194)))), ((int)(((byte)(201))))); - this.panelEx1.ColorScheme.PanelBorder = System.Drawing.Color.FromArgb(((int)(((byte)(167)))), ((int)(((byte)(173)))), ((int)(((byte)(182))))); - this.panelEx1.ColorScheme.PanelText = System.Drawing.Color.Black; - this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.panelEx1.Controls.Add(this.labelX3); - this.panelEx1.Controls.Add(this.labelX2); - this.panelEx1.Controls.Add(this.groupPanel2); - this.panelEx1.Controls.Add(this.cmboReplaceText); - this.panelEx1.Controls.Add(this.groupPanel1); - this.panelEx1.Controls.Add(this.cmboFindText); - this.panelEx1.Location = new System.Drawing.Point(2, 2); - this.panelEx1.Name = "panelEx1"; - this.panelEx1.Size = new System.Drawing.Size(578, 215); - this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.panelEx1.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.panelEx1.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.panelEx1.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.panelEx1.Style.GradientAngle = 90; - this.panelEx1.TabIndex = 13; - // - // FindReplace - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.BackColor = System.Drawing.Color.Gray; - this.CancelButton = this.btnFndRplDone; - this.ClientSize = new System.Drawing.Size(584, 260); - this.Controls.Add(this.panelEx1); - this.Controls.Add(this.btnRplFndNxt); - this.Controls.Add(this.btnFindNext); - this.Controls.Add(this.btnFndRplDone); - this.Controls.Add(this.btnReplace); - this.Controls.Add(this.btnFind); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedToolWindow; - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "FindReplace"; - this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Find and Replace"; - this.TopMost = true; - this.groupPanel1.ResumeLayout(false); - this.groupPanel2.ResumeLayout(false); - this.panelEx1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private DevComponents.DotNetBar.ButtonX btnFind; - private DevComponents.DotNetBar.ButtonX btnReplace; - private DevComponents.DotNetBar.ButtonX btnFndRplDone; - private DevComponents.DotNetBar.ButtonX btnFindNext; - private DevComponents.DotNetBar.Controls.ComboBoxEx cmboReplaceText; - private DevComponents.DotNetBar.LabelX labelX2; - private DevComponents.DotNetBar.Controls.ComboBoxEx cmboFindText; - private DevComponents.DotNetBar.LabelX labelX3; - private DevComponents.DotNetBar.Controls.GroupPanel groupPanel1; - private DevComponents.DotNetBar.Controls.CheckBoxX cbFndInSect; - private DevComponents.DotNetBar.Controls.CheckBoxX cbFndInAllProcs; - private DevComponents.DotNetBar.Controls.CheckBoxX cbFndInProc; - private DevComponents.DotNetBar.Controls.GroupPanel groupPanel2; - private DevComponents.DotNetBar.Controls.CheckBoxX cbRplNoPrmpt; - private DevComponents.DotNetBar.Controls.CheckBoxX cbPrmptRpl; - private DevComponents.DotNetBar.Controls.CheckBoxX cbDontReplace; - private DevComponents.DotNetBar.ButtonX btnRplFndNxt; - private DevComponents.DotNetBar.PanelEx panelEx1; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/FindReplace.cs b/PROMS/VEPROMS User Interface/FindReplace.cs deleted file mode 100644 index 9b63e004..00000000 --- a/PROMS/VEPROMS User Interface/FindReplace.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace VEPROMS -{ - public partial class FindReplace : DevComponents.DotNetBar.Office2007Form - { - bool _selectedReplStr = false; - bool _selectedFindStr = false; - - public FindReplace() - { - InitializeComponent(); - } - - private void cbDontReplace_CheckedChanged(object sender, EventArgs e) - { - cmboReplaceText.Enabled = !cbDontReplace.Checked; - btnReplace.Enabled = !cbDontReplace.Checked; - btnRplFndNxt.Enabled = !cbDontReplace.Checked; - } - - private void cmboReplaceText_SelectedIndexChanged(object sender, EventArgs e) - { - _selectedReplStr = true; - } - - private void btnReplace_Click(object sender, EventArgs e) - { - if (!_selectedReplStr) - cmboReplaceText.Items.Add(cmboReplaceText.Text); - else - _selectedReplStr = false; - } - - private void cmboFindText_SelectedIndexChanged(object sender, EventArgs e) - { - _selectedFindStr = true; - } - - private void btnFind_Click(object sender, EventArgs e) - { - if (!_selectedFindStr) - cmboFindText.Items.Add(cmboFindText.Text); - else - _selectedFindStr = false; - } - - private void btnFndRplDone_Click(object sender, EventArgs e) - { - this.Close(); - } - - - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/FindReplace.resx b/PROMS/VEPROMS User Interface/FindReplace.resx deleted file mode 100644 index 893dcc78..00000000 --- a/PROMS/VEPROMS User Interface/FindReplace.resx +++ /dev/null @@ -1,143 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAIAICAQAAAAAADoAgAAJgAAABAQEAAAAAAAKAEAAA4DAAAoAAAAIAAAAEAAAAABAAQAAAAAAIAC - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/ - AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIhwAAAAAAAAAACIcAAAAACI - cAAAAAAAAAAAiHAAAAAAiHAAAAAAAAAAAIhwAAAAAIhwAAAAAAAAAACIcAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAIgAAAAAAAAACIAAAAAAAACIBwAAAAAAAAiAcAAAAAAAiAcAAAAIAAAI - gHAAAAAAAIgHAAAACAAACIBwAAAAAACIBwAAAAgAAAiAcAAAAAAAiAcAAAAIAAAIgHAAAAAAAAAHAAAA - AAAAAABwAAAAAAAABwAAAAAAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIcAAAAAiIcAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdwAAAAAAdwAAAA - AAAAAAAHcAAAAAAHcAAAAAAAAAAAB3AAAAAAB3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////// - /////////////4A/+AOAP/gDgD/4A4A/+AOAP/gDgAOAA4ADgAOAA4ADgAAAA4AAAAOAAAADgAAAA4AA - AAPAAAAHwAAAB8AAAAf4A4A/+AOAP/gDgD/4A4A//AfAf/wHwH/8B8B//AfAf/////////////////// - //8oAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA - AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAACAAAAAAIAAAIAAAAAAgAAAAAAAAAAAAACHAAAACHAAAIcAAAAIcAAAhwAAAAhwAAAA - AAAAAAAAAAiAAACIAAAAAAAAAAAAAAAAcAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP// - AACH4QAAh+EAAIfhAACBgQAAgAEAAIABAACAAQAAgAEAAMGDAADhhwAA4YcAAOGHAAD//wAA//8AAA== - - - \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/UCFDetails.xsl b/PROMS/VEPROMS User Interface/UCFDetails.xsl deleted file mode 100644 index 8c2c3785..00000000 --- a/PROMS/VEPROMS User Interface/UCFDetails.xsl +++ /dev/null @@ -1,190 +0,0 @@ - - - - - - - - - - -

    User Control of Format Details

    -

    -

    - - - - - - - - - -
    - - - - - - - - - - - - - - -
    FlagValue
    -

    - - - - - - - - - - - - - - - -
    Check Off HeadingActive
    - - - -
    -

    - - - - - - - - - - - - - - -
    Check Off TypeActive
    -

    - - - - - - - - - - - -
    Check Off X Offset Adjust (Inches)
    - -
    -

    - - - - - - - - - - - - - - - - - - -
    Replace WordReplace WithStateFlag
    - - - Add - - - Modify - - - Delete - -
    -

    - - - - - - - - - - - - - - - - -
    Step TypeFont
    -

    - - - - - - - - - - - - - - - - -
    Document StylePage LengthLeft Margin
    -
    - - \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/UCFSummary.xsl b/PROMS/VEPROMS User Interface/UCFSummary.xsl deleted file mode 100644 index c390b319..00000000 --- a/PROMS/VEPROMS User Interface/UCFSummary.xsl +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - , - - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/VEPROMS_UI.csproj.bak b/PROMS/VEPROMS User Interface/VEPROMS_UI.csproj.bak deleted file mode 100644 index 1f5a8b2c..00000000 --- a/PROMS/VEPROMS User Interface/VEPROMS_UI.csproj.bak +++ /dev/null @@ -1,617 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {8D1C47B4-F302-4C5A-87CC-24FDC5529872} - WinExe - Properties - VEPROMS - VEPROMS - veproms.ico - SAK - SAK - SAK - SAK - v4.6.1 - - - - - 2.0 - false - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - true - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - true - bin\Demo\ - DEBUG;TRACE - full - x86 - prompt - false - - - true - bin\Debug\ - DEBUG;TRACE - full - x86 - prompt - false - - - bin\debug\ - TRACE - true - pdbonly - x86 - prompt - false - - - true - bin\Demo\ - TRACE;DEMO - full - x86 - prompt - false - - - - ..\..\Proms3rdPartyLibraries\DSOFramer\AxInterop.DSOFramer.dll - - - - - False - ..\csla20cs-2.1.4-070223\csla20cs\csla20cs\Csla\bin\Debug\Csla.dll - - - True - - - ..\..\Proms3rdPartyLibraries\DSOFramer\Interop.DSOFramer.dll - True - - - False - ..\..\Proms3rdPartyLibraries\Ionic\Ionic.Zip.dll - - - False - ..\..\Proms3rdPartyLibraries\RtfConverter\bin\Debug\Itenso.Rtf.Interpreter.dll - - - False - ..\..\Proms3rdPartyLibraries\RtfConverter\bin\Debug\Itenso.Rtf.Parser.dll - - - ..\..\Log4Net\log4net-1.2.10\bin\net\2.0\debug\log4net.dll - - - - - True - - - - - - - - - - - False - ..\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - - - Form - - - AboutVEPROMS.cs - - - - Form - - - dlgApproveProcedure.cs - - - Form - - - dlgCheckedOutProcedure.cs - - - Form - - - DlgCloseTabsOrExit.cs - - - Form - - - dlgExportImport.cs - - - Form - - - dlgImpHowToHandleROs.cs - - - Form - - - dlgManageSecurity.cs - - - Form - - - dlgPhoneList.cs - - - Form - - - dlgPickROFolder.cs - - - Form - - - DlgPrintProcedure.cs - - - Form - - - dlgSetChangeBarStartDate.cs - - - Form - - - dlgTransitionReport.cs - - - Form - - - dlgUCFDetail.cs - - - Form - - - frmBatchRefresh.cs - - - Form - - - frmBatchRefreshCheckedOut.cs - - - Form - - - frmManageUser.cs - - - Form - - - frmPDFStatusForm.cs - - - Form - - - frmPSI.cs - - - Form - - - frmRODbProperties.cs - - - Form - - - frmSI.cs - - - Form - - - frmUCF.cs - - - Form - - - frmVEPROMS.cs - - - Form - - - frmFolderProperties.cs - - - Form - - - frmProcedureProperties.cs - - - Form - - - frmPropGrid.cs - - - Form - - - frmSectionProperties.cs - - - Form - - - frmSysOptions.cs - - - Form - - - frmVersionsProperties.cs - - - - Designer - AboutVEPROMS.cs - - - DlgCloseTabsOrExit.cs - - - dlgImpHowToHandleROs.cs - - - DlgPrintProcedure.cs - Designer - - - dlgSetChangeBarStartDate.cs - - - dlgUCFDetail.cs - - - frmPDFStatusForm.cs - Designer - - - Designer - frmPSI.cs - - - Designer - frmRODbProperties.cs - - - frmSI.cs - - - frmUCF.cs - - - Designer - frmVEPROMS.cs - - - frmFolderProperties.cs - Designer - - - frmProcedureProperties.cs - Designer - - - Designer - frmPropGrid.cs - - - frmSectionProperties.cs - Designer - - - Designer - frmSysOptions.cs - - - frmVersionsProperties.cs - Designer - - - - ResXFileCodeGenerator - Designer - Resources.Designer.cs - - - ShortcutLists.cs - Designer - - - VlnWeb.cs - Designer - - - PreserveNewest - Designer - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - True - True - Resources.resx - - - True - Settings.settings - True - - - - Form - - - ShortcutLists.cs - - - Form - - - VlnWeb.cs - - - - - - - - - - - - - - - - - - - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - Always - - - Always - - - Always - - - Always - - - Always - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - dlgApproveProcedure.cs - Designer - PreserveNewest - - - dlgCheckedOutProcedure.cs - Designer - - - dlgExportImport.cs - Designer - - - dlgManageSecurity.cs - Designer - - - Designer - dlgPhoneList.cs - - - dlgPickROFolder.cs - Designer - - - dlgTransitionReport.cs - Designer - - - frmBatchRefresh.cs - Designer - - - frmBatchRefreshCheckedOut.cs - Designer - - - frmManageUser.cs - Designer - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - - - - - - - PreserveNewest - - - - - {00020430-0000-0000-C000-000000000046} - 2 - 0 - 0 - primary - False - - - - - {b22ce5ad-288c-44cd-8a22-b3bcf77b7161} - FlexableMessageBox - - - {70F23722-19A3-4AC1-A900-55831C945786} - LBWordLibrary - - - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9} - Volian.Base.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - {94830C07-6A3A-450E-9674-C9B4293A7726} - Volian.Print.Library - - - {62314B9C-DA84-4037-8B68-AA18C1F641F5} - Volian.Utils.Library - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - - - - cmd /c "$(ProjectDir)FixRev.bat" - - \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/VEPROMS_UI.sln b/PROMS/VEPROMS User Interface/VEPROMS_UI.sln deleted file mode 100644 index 92ea81ae..00000000 --- a/PROMS/VEPROMS User Interface/VEPROMS_UI.sln +++ /dev/null @@ -1,31 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VEPROMS_UI", "VEPROMS_UI.csproj", "{8D1C47B4-F302-4C5A-87CC-24FDC5529872}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Demo|Any CPU = Demo|Any CPU - Demo|x86 = Demo|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Debug|x86.ActiveCfg = Debug|x86 - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Debug|x86.Build.0 = Debug|x86 - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Demo|Any CPU.Build.0 = Demo|Any CPU - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Demo|x86.ActiveCfg = Demo|x86 - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Demo|x86.Build.0 = Demo|x86 - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Release|Any CPU.Build.0 = Release|Any CPU - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Release|x86.ActiveCfg = Release|x86 - {8D1C47B4-F302-4C5A-87CC-24FDC5529872}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection diff --git a/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs.bak b/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs.bak deleted file mode 100644 index f35face5..00000000 --- a/PROMS/VEPROMS User Interface/dlgApproveProcedure.cs.bak +++ /dev/null @@ -1,1260 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; -using Volian.Print.Library; -using System.IO; -using System.Text.RegularExpressions; -using DevComponents.DotNetBar; - -namespace VEPROMS -{ - public partial class dlgApproveProcedure : Form - { - public event DisplayConsistencyReportEvent ConsistencyPrintRequest; - private void OnConsistencyPrintRequest(ConsistencyReportArgs args) - { - if (ConsistencyPrintRequest != null) - ConsistencyPrintRequest(this, args); - } - private bool CanApprove - { - get { return btnApprove2.Enabled;} - set - { - btnApprove2.Enabled = value; - tsslStatus.ForeColor = Color.Red; - tsslStatus.BackColor = Color.Yellow; - tsslStatus.Text = value ? "" : "Need to correct the Rev Numbers marked with Question Marks"; - } - } - private int _ApplicabilityIndex = 0; - public int ApplicabilityIndex - { - get { return _ApplicabilityIndex; } - set { _ApplicabilityIndex = value; } - } - private SessionInfo _MySessionInfo; - public SessionInfo MySessionInfo - { - get { return _MySessionInfo; } - set - { - _MySessionInfo = value; - _MyApproval.MySessionInfo = _MySessionInfo; - } - } - private ApprovalInfo _MyApproval = new ApprovalInfo(); - private bool _CheckForMore = false; - private DocVersionInfo _MyDocVersion; - public dlgApproveProcedure(DocVersionInfo myDocVersion) - { - ApplicabilityIndex = myDocVersion.DocVersionConfig.SelectedSlave; - this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); - _MyDocVersion = myDocVersion; - InitializeComponent(); - FlexGridAddEvents(); - _MyApproval.StatusUpdated += new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated); - SetupComboBoxes(); - foreach (ProcedureInfo pi in myDocVersion.Procedures) - { - pi.MyDocVersion.DocVersionConfig.SelectedSlave = ApplicabilityIndex; - _MyApproval.AddProcedure(pi); - } - SetupMyApproval(); - //pnlApprove.LocationChanged += new EventHandler(Panel_LocationChanged); - //pnlSelect.LocationChanged += new EventHandler(Panel_LocationChanged); - pnlApprove.SendToBack(); - this.Width = pnlApprove.Width + this.Width - this.ClientSize.Width; - } - - private void FlexGridAddEvents() - { - //fgProcs.ChangeEdit += new EventHandler(fgProcs_ChangeEdit); - //Console.WriteLine(fgProcs.ComboBoxEditor.GetType().Name); - //Console.WriteLine(fgProcs.Editor.GetType().Name); - //fgProcs.ImeModeChanged += new EventHandler(fgProcs_ImeModeChanged); - //fgProcs.LeaveEdit += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_LeaveEdit); - //fgProcs.SetupEditor += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_SetupEditor); - //fgProcs.StartEdit += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_StartEdit); - //fgProcs.ValidateEdit += new C1.Win.C1FlexGrid.ValidateEditEventHandler(fgProcs_ValidateEdit); - fgProcs.ComboCloseUp += new C1.Win.C1FlexGrid.RowColEventHandler(fgProcs_ComboCloseUp); - //fgProcs.MouseDown += new MouseEventHandler(fgProcs_MouseDown); - //fgProcs.MouseUp += new MouseEventHandler(fgProcs_MouseUp); - } - - void fgProcs_MouseUp(object sender, MouseEventArgs e) - { - C1.Win.C1FlexGrid.HitTestInfo hti = fgProcs.HitTest(e.X, e.Y); - Console.WriteLine("fgProcs_MouseUp X={0},Y={1},Row={2},Col={3}", e.X, e.Y, hti.Row, hti.Column); - } - - void fgProcs_MouseDown(object sender, MouseEventArgs e) - { - C1.Win.C1FlexGrid.HitTestInfo hti = fgProcs.HitTest(e.X, e.Y); - Console.WriteLine("fgProcs_MouseDown X={0},Y={1},Row={2},Col={3}", e.X, e.Y,hti.Row,hti.Column); - - } - - void fgProcs_ComboCloseUp(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - Console.WriteLine("fgProcs_ComboCloseUp e.row={0}, fgprocs.mouserow={1}", e.Row, fgProcs.MouseRow); - if (e.Row == fgProcs.MouseRow) - return; - fgProcs_AfterEdit(sender, e); - //Console.WriteLine("fgProcs_ComboCloseUp row: {0}, col: {1}, val: {2}, etostring: {3}", e.Row, e.Col, fgProcs[e.Row, e.Col], e.ToString()); - } - - void fgProcs_ValidateEdit(object sender, C1.Win.C1FlexGrid.ValidateEditEventArgs e) - { - Console.WriteLine("fgProcs_ValidateEdit"); - } - - void fgProcs_StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - - object val = fgProcs[e.Row, e.Col]; - DateTime dt = (DateTime)val; - if (dt != null) - dt = dt.AddHours(1); - fgProcs[e.Row, e.Col] = dt; - Console.WriteLine("fgProcs_StartEdit val: {0}, dt: {1}",val,dt); - } - - void fgProcs_SetupEditor(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - Console.WriteLine("fgProcs_SetupEditor"); - } - - void fgProcs_LeaveEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - object val = fgProcs[e.Row, e.Col]; - DateTime dt = (DateTime)val; - if (dt != null && dt.Hour != 0) - dt = dt.AddHours(-1); - fgProcs[e.Row, e.Col] = dt; - Console.WriteLine("fgProcs_LeaveEdit val: {0}, dt: {1}, mouserow={2}, mousecol={3}", val, dt,fgProcs.MouseRow,fgProcs.MouseCol); - } - - void fgProcs_ImeModeChanged(object sender, EventArgs e) - { - Console.WriteLine("fgProcs_ImeModeChanged"); - } - - void fgProcs_ChangeEdit(object sender, EventArgs e) - { - Console.WriteLine("fgProcs_ChangeEdit"); - } - void Panel_LocationChanged(object sender, EventArgs e) - { - if (pnlApprove.Location.X == 0 && pnlSelect.Location.X == 0) - return; - if (pnlApprove.Location.X == 0) - { - chkViewPDF.Visible = false; - chkSetAllDates.Visible = true; - if (_MyApproval.MyProcedures.Count == 1) - { - this.Text = "Approve " + _MyApproval.MyProcedures[0].ProcInfo.DisplayNumber; - chkViewPDF.Visible = true; - chkSetAllDates.Visible = false; - } - else if (_MyApproval.MyProcedures.Count == _MyDocVersion.Procedures.Count) - this.Text = "Approve All Procedures"; - else - this.Text = "Approve Selected Procedures"; - InitializePanelApprove(); - } - if (pnlSelect.Location.X == 0) - { - this.Text = "Select Procedures To Approve"; - InitializePanelSelect(); - } - } - private void InitializePanelSelect() - { - if (clbMore.Items.Count == 0) - { - foreach (ProcedureInfo pi in _MyDocVersion.Procedures) - { - pi.MyDocVersion.DocVersionConfig.SelectedSlave = _MyDocVersion.DocVersionConfig.SelectedSlave; - clbMore.Items.Add(pi.DisplayNumber); - tmpProcedures.Add(pi.DisplayNumber, pi); - } - } - for (int i = 0; i < clbMore.Items.Count; i++) - { - ProcedureInfo pi = tmpProcedures[GetDisplayNumberOnly(clbMore.Items[i].ToString())]; - clbMore.SetItemChecked(i, _MyApproval.ProcedureExists(pi)); - } - } - private void InitializePanelApprove() - { - SetupMyApproval(); - } - private Dictionary tmpProcedures = new Dictionary(); - public dlgApproveProcedure(DocVersionInfo myDocVersion, bool selectSome) - { - this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); - _MyDocVersion = myDocVersion; - InitializeComponent(); - FlexGridAddEvents(); - _MyApproval.StatusUpdated += new ApprovalStatusChangeEvent(_MyApproval_StatusUpdated); - _CheckForMore = false; - //pnlApprove.LocationChanged += new EventHandler(Panel_LocationChanged); - //pnlSelect.LocationChanged += new EventHandler(Panel_LocationChanged); - pnlSelect.SendToBack(); - this.Width = pnlSelect.Width + this.Width - this.ClientSize.Width; ; - } - public dlgApproveProcedure(ProcedureInfo myProcedure) - { - this.ConsistencyPrintRequest += new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); - _MyDocVersion = myProcedure.MyDocVersion; - InitializeComponent(); - FlexGridAddEvents(); - SetupComboBoxes(); - _MyApproval.AddProcedure(myProcedure); - //SetupMyApproval(); - //pnlApprove.LocationChanged += new EventHandler(Panel_LocationChanged); - //pnlSelect.LocationChanged += new EventHandler(Panel_LocationChanged); - pnlApprove.SendToBack(); - this.Width = pnlApprove.Width; - } - void _MyApproval_StatusUpdated(ApprovalInfo sender, ApprovalMessageArgs e) - { - tsslMsg2.Text = e.MyStatus; - Application.DoEvents(); - } - private void SetupMyApproval() - { - approvalInfoBindingSource.DataSource = _MyApproval; - //if(_MyApproval.MyProcedures.Count == 1) - // lblOldRevNumber.Text = _MyApproval.RevNumber; - //else if (_MyApproval.MyProcedures.Count > 1) - // lblMaxRevNumber1.Text = GetMaxRevNumber(); - _MyApproval.RevType = (revTypeBindingSource.Current as RevType).TypeID; - _MyApproval.RevStage = (stageInfoBindingSource.Current as StageInfo).StageID; - approvalInfoBindingSource.ResetBindings(false); - approvalProcedureBindingSource.DataSource = _MyApproval.MyProcedures; - approvalProcedureBindingSource.ResetBindings(false); - //this.ConsistencyPrintRequest -= new DisplayConsistencyReportEvent(dlgApproveProcedure_ConsistencyPrintRequest); - } - private string GetMaxRevNumber() - { - string mrn = string.Empty; - foreach (ApprovalProcedure ap in _MyApproval.MyProcedures) - { - int k = _MyApproval.FancyShmancyRevCompare(mrn, ap.RevNumber); - if (k < 0) - mrn = ap.RevNumber; - } - return mrn; - } - void dlgApproveProcedure_ConsistencyPrintRequest(object sender, ConsistencyReportArgs args) - { - foreach (ProcedureInfo pi in args.MyItems) - pi.IsSelected = _MyApproval.ProcedureExists(pi); - PDFConsistencyCheckReport rpt = new PDFConsistencyCheckReport(args.ReportName, args.MyItems); - rpt.BuildReport(); - } - private void SetupComboBoxes() - { - RevTypes rt = new RevTypes(); - foreach (int i in Enum.GetValues(typeof(Rev_Types))) - { - RevType t = new RevType(i, Enum.GetName(typeof(Rev_Types), i)); - rt.Add(t); - } - revTypeBindingSource.DataSource = rt; - stageInfoBindingSource.DataSource = StageInfoList.Get(); - } - private void btnApprove_Click(object sender, EventArgs e) - { - this.Cursor = Cursors.WaitCursor; - if(!_MyApproval.Approve(new Point(Left,Bottom))) - this.DialogResult = DialogResult.None; - this.Cursor = Cursors.Default; - } - private void cmbRevisionType_SelectedIndexChanged(object sender, EventArgs e) - { - RevType rt = cmbRevisionType2.SelectedItem as RevType; - _MyApproval.RevType = rt.TypeID; - } - private void cmbRevisionStage_SelectedIndexChanged(object sender, EventArgs e) - { - StageInfo si = cmbRevisionStage2.SelectedItem as StageInfo; - _MyApproval.RevStage = si.StageID; - } - private void clbMore_ItemCheck(object sender, ItemCheckEventArgs e) - { - if (e.NewValue == CheckState.Checked) - btnOkay.Enabled = true; - else - btnOkay.Enabled = (clbMore.CheckedItems.Count > 1); - btnCheckMore.Enabled = btnOkay.Enabled; - btnReportMore.Enabled = false; - } - private void btnOkay_Click(object sender, EventArgs e) - { - UpdateMyApproval(); - //lbProcs.DataSource = null; - //lbProcs.DataSource = _MyApproval.MyProcedures; - //lbProcs.DisplayMember = "DisplayNumber"; - approvalProcedureBindingSource.DataSource = _MyApproval.MyProcedures; - approvalProcedureBindingSource.ResetCurrentItem(); - pnlApprove.SendToBack(); - } - private void UpdateMyApproval() - { - if (clbMore.CheckedItems.Count == 0) - pnlApprove.SendToBack(); - SetupComboBoxes(); - for (int i = 0; i < clbMore.Items.Count; i++) - { - string xyz = clbMore.Items[i].ToString(); - ProcedureInfo pi = tmpProcedures[GetDisplayNumberOnly(clbMore.Items[i].ToString())]; - if (clbMore.GetItemChecked(i)) - { - if (!_MyApproval.ProcedureExists(pi)) - _MyApproval.AddProcedure(pi); - } - else - { - if (_MyApproval.ProcedureExists(pi)) - _MyApproval.DeleteProcedure(pi); - } - } - SetupMyApproval(); - } - private void btnCheck_Click(object sender, EventArgs e) - { - //if (chkCascade1.Checked || chkCascade2.Checked) - //{ - // MessageBox.Show("cascade"); - //} - //else - //{ - pnlSelect.SendToBack(); - UpdateClbMore(); - //} - } - private ItemInfoList _MyItemInfoList; - private void UpdateClbMore() - { - int checkedCount = clbMore.CheckedItems.Count; - int z = int.Parse("0" + lblPhase.Text); - z++; - lblPhase.Text = z.ToString(); - string oldLabel = lblMore.Text; - pbMore.Visible = true; - pbMore.Maximum = _MyApproval.MyProcedures.Count; - ItemInfoList.ConsistencyCheckUpdated += new ItemInfoListCCEvent(ItemInfoList_ConsistencyCheckUpdated); - List myProcs = new List(); - foreach (ApprovalProcedure ap in _MyApproval.MyProcedures) - myProcs.Add(ap.ProcInfo); - _MyItemInfoList = ItemInfoList.GetMoreProcedures(myProcs); - ItemInfoList.ConsistencyCheckUpdated -= new ItemInfoListCCEvent(ItemInfoList_ConsistencyCheckUpdated); - lblMore.Text = oldLabel; - pbMore.Visible = false; - //clbMore.Items.Clear(); - //tmpProcedures.Clear(); - for (int i = 0; i < clbMore.Items.Count; i++) - { - string info = clbMore.Items[i].ToString(); - if(info.Contains(" - (")) - clbMore.Items[i] = info.Substring(0, info.IndexOf(" - (")); - } - foreach (ProcedureInfo npi in _MyItemInfoList) - { - string info = string.Format(npi.MyDifferenceReasons.StartsWith("No ") ? "{0}" : "{0} - ({1})", npi.DisplayNumber, npi.MyDifferenceReasons); - //checked list box - //int k = clbMore.Items.Add(info); - for (int i = 0; i < clbMore.Items.Count; i++) - { - if (clbMore.Items[i].ToString().StartsWith(npi.DisplayNumber)) - { - clbMore.Items[i] = info; - tmpProcedures[npi.DisplayNumber] = npi; - if (chkCascade2.Checked || chkCascadeMore.Checked) - clbMore.SetItemChecked(i, true); - break; - } - } - } - Application.DoEvents(); - clbMore.Enabled = btnAll.Enabled = btnClear.Enabled = true; - //if (clbMore.Items.Count == 0) - //{ - // clbMore.Items.Add("None Found"); - // clbMore.Enabled = btnAll.Enabled = btnClear.Enabled = false; - //} - lblMore.Text = string.Format("{0} Procedures, {1} Selected", clbMore.Items.Count, clbMore.CheckedItems.Count); - btnReportMore.Enabled = true; - _CheckForMore = true; - - if (chkCascade2.Checked || chkCascadeMore.Checked) - { - if (clbMore.CheckedItems.Count > checkedCount) - { - //btnAll_Click(btnAll, new EventArgs()); - UpdateMyApproval(); - UpdateClbMore(); - } - else - lblPhase.Text = ""; - } - } - void ItemInfoList_ConsistencyCheckUpdated(object sender, ItemInfoListCCEventArgs args) - { - if (sender != null) - { - pbMore.Value = args.MyCount; - lblMore.Text = args.MyProcedure.DisplayNumber; - } - else - { - pbMore.Value = pbMore.Maximum; - lblMore.Text = "Querying Database"; - } - Application.DoEvents(); - } - //private void dtiRevisionDate_ValueChanged(object sender, EventArgs e) - //{ - // DevComponents.Editors.DateTimeAdv.DateTimeInput dti = sender as DevComponents.Editors.DateTimeAdv.DateTimeInput; - //} - private void btnAll_Click(object sender, EventArgs e) - { - for (int i = 0; i < clbMore.Items.Count; i++) - clbMore.SetItemChecked(i, true); - } - private void btnClear_Click(object sender, EventArgs e) - { - for (int i = 0; i < clbMore.Items.Count; i++) - clbMore.SetItemChecked(i, false); - } - private void btnCancelMore_Click(object sender, EventArgs e) - { - if (!_CheckForMore) - { - this.Close(); - return; - } - //if (_MyApproval.MyProcedures.Count == 1) - // pnlOne.SendToBack(); - //else - pnlApprove.SendToBack(); - } - //private void tsmiRemove_Click(object sender, EventArgs e) - //{ - // ApprovalProcedure ap = approvalProcedureBindingSource.Current as ApprovalProcedure; - // _MyApproval.RemoveProcedure(ap.ProcInfo); - // approvalProcedureBindingSource.DataSource = _MyApproval.MyProcedures; - // approvalProcedureBindingSource.ResetCurrentItem(); - // //_MyApproval.RemoveProcedure(lbProcs.SelectedItem as ProcedureInfo); - // //lbProcs.DataSource = null; - // //lbProcs.DataSource = _MyApproval.MyProcedures; - // //lbProcs.DisplayMember = "DisplayNumber"; - //} - private int _LastIndex = -1; - private void clbMore_MouseMove(object sender, MouseEventArgs e) - { - if (_MyApproval.MyProcedures.Count > 0) - { - int itemIndex = clbMore.IndexFromPoint(new Point(e.X, e.Y)); - if (itemIndex == -1) - sttMore.HideTooltip(); - if (itemIndex == _LastIndex) - return; - _LastIndex = itemIndex; - if (itemIndex >= 0) - { - if (clbMore.Items[itemIndex] != null) - { - SuperTooltipInfo stti = sttMore.GetSuperTooltip(clbMore); - //string xyz = GetDisplayNumberOnly(clbMore.Items[itemIndex].ToString()); - //string headerText = tmpProcedures[xyz].DisplayNumber; - //string bodyText = tmpProcedures[xyz].MyDifferencesText; - stti.HeaderText = tmpProcedures[GetDisplayNumberOnly(clbMore.Items[itemIndex].ToString())].DisplayNumber; - stti.BodyText = tmpProcedures[GetDisplayNumberOnly(clbMore.Items[itemIndex].ToString())].MyDifferencesText; - stti.FooterVisible = false; - using (Graphics g = CreateGraphics()) - { - SizeF sf = g.MeasureString(stti.BodyText, this.Font); - stti.CustomSize = new Size(10 + sf.ToSize().Width, 0); - } - sttMore.ShowTooltip(sender); - return; - } - } - } - //sttMore.HideTooltip(); - } - private string GetDisplayNumberOnly(string s) - { - int d = s.IndexOf(" - "); - if (d > -1) - s = s.Substring(0, d).Trim(); - return s; - } - private void btnCheckMore_Click(object sender, EventArgs e) - { - UpdateMyApproval(); - UpdateClbMore(); - } - private void btnReportMore_Click(object sender, EventArgs e) - { - OnConsistencyPrintRequest(new ConsistencyReportArgs(Volian.Base.Library.VlnSettings.TemporaryFolder + @"\MyConsistency.pdf", _MyItemInfoList)); - } - private void CascadeChecksUpdated(object sender, EventArgs e) - { - DevComponents.DotNetBar.Controls.CheckBoxX cb = sender as DevComponents.DotNetBar.Controls.CheckBoxX; - if (cb != null) - { - chkCascade2.Checked = chkCascadeMore.Checked = cb.Checked; - } - } - private void fgProcs_AfterEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - ApprovalProcedure ap = approvalProcedureBindingSource.Current as ApprovalProcedure; - if (e.Col == 1) - { //revnumber - _MyApproval.Refresh(); - approvalInfoBindingSource.ResetBindings(false); - bool ok = true; - foreach (ApprovalProcedure app in _MyApproval.MyProcedures) - { - ok = ok && !app.RevNumber.Contains(" ?"); - } - CanApprove = ok; - } - if (e.Col == 2) - { //revdate - DateTime dts = DateTime.Parse(fgProcs[e.Row, e.Col].ToString()); - //store mouse row because the popup calendar can goof up the datagrid mouse row - int fgmr = fgProcs.MouseRow; - if (e.Row == fgmr && ap.RevDate == dts) - return; - if (chkSetAllDates.Checked) - { - foreach (ApprovalProcedure app in _MyApproval.MyProcedures) - { - app.RevDate = ap.RevDate; - } - approvalProcedureBindingSource.ResetBindings(false); - } - } - } - //private void tsmiAddMore_Click(object sender, EventArgs e) - //{ - // pnlSelect.SendToBack(); - //} - private void btnModifyList_Click(object sender, EventArgs e) - { - pnlSelect.SendToBack(); - } - - private void btnIncrement_Click(object sender, EventArgs e) - { - StringBuilder sb = new StringBuilder(); - string sep = "Procedures that failed to increment\r\n\r\n"; - foreach (ApprovalProcedure ap in _MyApproval.MyProcedures) - if (!IncrementRev(ap)) - { - sb.Append(sep + ap.DisplayNumber); - sep = "\r\n"; - } - approvalProcedureBindingSource.ResetBindings(false); - if (sb.Length > 0) - { - sb.AppendLine(); sb.AppendLine(); - sb.AppendLine("These will be marked with a question mark."); - sb.Append("They need to be corrected before Approval can be run."); - MessageBox.Show(sb.ToString(), "Increment Failures", MessageBoxButtons.OK, MessageBoxIcon.Warning); - CanApprove = false; - } - else - CanApprove = true; - } - private bool IncrementRev(ApprovalProcedure ap) - { - bool rv = true; - if (Regex.IsMatch(ap.RevNumber, "^[0-9]+$")) - ap.RevNumber = (int.Parse(ap.RevNumber) + 1).ToString(); - else if (Regex.IsMatch(ap.RevNumber, "^[0-9]*[a-yA-Y]+$")) - { - char lastCar = ap.RevNumber[ap.RevNumber.Length - 1]; - lastCar++; - ap.RevNumber = ap.RevNumber.Substring(0, ap.RevNumber.Length - 1) + lastCar.ToString(); - } - else if (ap.RevNumber == string.Empty) - ap.RevNumber = "1"; - else if (Regex.IsMatch(ap.RevNumber, "^[0-9.]+[.][0-9]+$")) - { - string[] parts = ap.RevNumber.Split(".".ToCharArray()); - string sep = ""; - string lastPart = parts[parts.Length - 1]; - int w = lastPart.Length; - lastPart = (int.Parse(lastPart) + 1).ToString(); - //if(w > lastPart.Length) - lastPart = lastPart.PadLeft(w, '0'); - parts[parts.Length - 1] = lastPart; - StringBuilder sb = new StringBuilder(); - foreach (string part in parts) - { - sb.Append(sep + part); - sep = "."; - } - ap.RevNumber = sb.ToString(); - } - else if (Regex.IsMatch(ap.RevNumber, "[?]$")) - rv = false; //do nothing - else - { - ap.RevNumber += " ?"; - rv = false; - } - return rv; - } - } - public class ApprovalProcedure - { - private ProcedureInfo _ProcInfo; - public ProcedureInfo ProcInfo - { - get { return _ProcInfo; } - set { _ProcInfo = value; } - } - private string _RevNumber; - public string RevNumber - { - get { return _RevNumber; } - set - { - if (value.Trim() != _RevNumber) - { - _RevNumber = value.Trim(); - //_RevDate = DateTime.Now; // commented out for bug fix B2013-012 - } - } - } - private DateTime _RevDate; - public DateTime RevDate - { - get { return _RevDate; } - set { _RevDate = value; } - } - // added RevNumAndDate to handle the use use of the DoRevDate flag - // this fixes bug B2013-011 where Today's date would print on the approved procedures (Westinghouse data) - // instead of the the Revision Date assigned to the procedure. - public string RevNumAndDate - { - get - { - if (_ProcInfo.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate) - return RevNumber + "/" + RevDate.ToString("M/d/yyyy"); - else - return RevNumber; - } - } - public string DisplayNumber - { - get { return _ProcInfo.DisplayNumber; } - } - public override string ToString() - { - return string.Format("{0}\t{1}\t{2:M/d/yyyy}", _ProcInfo.DisplayNumber, _RevNumber, _RevDate); - } - public ApprovalProcedure(ProcedureInfo proc) - { - proc.ProcedureConfig.SelectedSlave = proc.MyDocVersion.DocVersionConfig.SelectedSlave; - ProcInfo = proc; - RevNumber = proc.ProcedureConfig.Print_Rev == string.Empty ? "0" : proc.ProcedureConfig.Print_Rev; - //AppRevDate Change - //DateTime revdate; - string sRevDate = proc.ProcedureConfig.Print_RevDate; - if (sRevDate == string.Empty) - sRevDate = DateTime.Now.ToString("M/d/y"); - DateTime revDate; - if (!DateTime.TryParse(sRevDate, out revDate)) revDate = DateTime.Now; - RevDate = revDate; - //RevDate = DateTime.Parse(sRevDate); - //RevDate = DateTime.Parse(proc.ProcedureConfig.Print_RevDate); - //if (print_revdate == string.Empty && DateTime.TryParse(RevNumber, out revdate)) - // ; - //else - // revdate = DateTime.TryParse(proc.ProcedureConfig.Print_RevDate.Replace("-", "/").Replace("00/", "01/"), out revdate) ? revdate : DateTime.Now; - //RevDate = revdate; - } - } - public class ApprovalMessageArgs : EventArgs - { - public ApprovalMessageArgs(string msg) - { - _MyStatus = msg; - } - private string _MyStatus; - public string MyStatus - { - get { return _MyStatus; } - set { _MyStatus = value; } - } - } - public delegate void ApprovalStatusChangeEvent(ApprovalInfo sender, ApprovalMessageArgs e); - public class ApprovalInfo - { - public event ApprovalStatusChangeEvent StatusUpdated; - public void OnStatusUpdated(ApprovalInfo sender, ApprovalMessageArgs e) - { - if (StatusUpdated != null) - StatusUpdated(sender, e); - } - private SessionInfo _MySessionInfo; - public SessionInfo MySessionInfo - { - get { return _MySessionInfo; } - set { _MySessionInfo = value; } - } - private int _RevType; - public int RevType - { - get { return _RevType; } - set { _RevType = value; } - } - private string _RevNumber; - public string RevNumber - { - get { return _RevNumber; } - set { _RevNumber = value; } - } - private Nullable _RevDate; - public Nullable RevDate - { - get { return _RevDate == null ? _RevDate : _RevDate.Value; } - set { _RevDate = value; } - } - private int _RevStage; - public int RevStage - { - get { return _RevStage; } - set { _RevStage = value; } - } - private string _RevNote; - public string RevNote - { - get { return _RevNote; } - set { _RevNote = value; } - } - private bool _ViewPDF; - public bool ViewPDF - { - get { return _ViewPDF; } - set { _ViewPDF = value; } - } - private string _MsgNumber; - public string MsgNumber - { - get { return _MsgNumber; } - set { _MsgNumber = value; } - } - private string _MsgDate; - public string MsgDate - { - get { return _MsgDate; } - set { _MsgDate = value; } - } - private bool _CanIncrement; - public bool CanIncrement - { - get { return _CanIncrement; } - set { _CanIncrement = value; } - } - private List _MyProcedures; - public List MyProcedures - { - get { return _MyProcedures; } - //set { _MyProcedures = value; } - } - public ApprovalInfo() - { - _MyProcedures = new List(); - } - private static string FormatRev(Match m) - { - return "".PadLeft(5 - m.Groups[1].Value.Length, '0') + m.Groups[1].Value; - } - public void AddProcedure(ProcedureInfo proc) - { - ApprovalProcedure ap = new ApprovalProcedure(proc); - MyProcedures.Add(ap); - Refresh(); - } - public void RemoveProcedure(ProcedureInfo pi) - { - ApprovalProcedure apr = null; - foreach (ApprovalProcedure ap in MyProcedures) - { - if (ap.ProcInfo == pi) - { - apr = ap; - break; - } - } - MyProcedures.Remove(apr); - Refresh(); - } - public bool ProcedureExists(ProcedureInfo pi) - { - foreach (ApprovalProcedure pp in MyProcedures) - { - if(pp.ProcInfo.ItemID == pi.ItemID) - return true; - } - return false; - } - public void Refresh() - { - bool ok = true; - int rv = 0; - foreach (ApprovalProcedure ap in MyProcedures) - { - ok = ok && int.TryParse(ap.RevNumber, out rv); - } - _CanIncrement = ok; - //if (MyProcedures.Count == 1) - //{ - // ProcedureInfo pi = _MyProcedures[0].ProcInfo; - // RevNumber = pi.ProcedureConfig.Print_Rev == string.Empty ? "0" : pi.ProcedureConfig.Print_Rev; - // DateTime revdate = pi.ProcedureConfig.Print_RevDate == string.Empty ? DateTime.Now : DateTime.TryParse(pi.ProcedureConfig.Print_RevDate, out revdate) ? revdate : DateTime.Now; - // RevDate = revdate; - // RevNote = string.Empty; - // ViewPDF = false; - //} - //else if (MyProcedures.Count > 1) - //{ - // Regex myRegEx = new Regex("^([0-9]{1,5})"); - // SortedList printRevs = new SortedList(); - // SortedList printRevDates = new SortedList(); - // string printRev = string.Empty; - // foreach (ApprovalProcedure pi in MyProcedures) - // { - // printRev = myRegEx.Replace(pi.RevNumber, new MatchEvaluator(FormatRev)); - // printRev = printRev == string.Empty ? "0" : printRev; - // if (printRev != string.Empty) - // if (!printRevs.ContainsKey(printRev)) - // printRevs.Add(printRev, pi.ProcInfo); - // if (pi.RevDate != null) - // if (!printRevDates.ContainsKey(pi.RevDate.ToString())) - // printRevDates.Add(pi.RevDate.ToString(), pi.ProcInfo); - // } - // if (printRevs.Count > 1) - // { - // ProcedureInfo pi = printRevs[printRevs.Keys[printRevs.Count - 1]]; - // RevNumber = "*"; - // MsgNumber = "Multiple Revision Numbers found. Enter asterisk (*) to use current revision numbers or plus sign (+) to increment revision numbers"; - // } - // else if (printRevs.Count == 1) - // { - // ProcedureInfo pi = printRevs[printRevs.Keys[printRevs.Count - 1]]; - // RevNumber = pi.ProcedureConfig.Print_Rev; - // MsgNumber = string.Empty; - // } - // if (printRevDates.Count > 1) - // { - // RevDate = null; - // MsgDate = "Multiple Revision Dates found. Use current revision dates or manually assign revision date by selecting a date"; - // } - // else if (printRevDates.Count == 1) - // { - // ProcedureInfo pi = printRevDates[printRevDates.Keys[printRevDates.Count - 1]]; - // RevDate = DateTime.Parse(pi.ProcedureConfig.Print_RevDate); - // MsgDate = string.Empty; - // } - // else if (printRevDates.Count == 0) - // RevDate = DateTime.Now; - //} - } - public void DeleteProcedure(ProcedureInfo pi) - { - ApprovalProcedure tpi = null; - foreach (ApprovalProcedure pii in MyProcedures) - { - if (pii.ProcInfo.ItemID == pi.ItemID) - tpi = pii; - } - if (tpi != null) - { - MyProcedures.Remove(tpi); - Refresh(); - } - } - public bool CanApprove - { - get { return _RevType > 0 && _RevNumber != string.Empty && _RevStage > 0; } - } - public int FancyShmancyRevCompare(string s1, string s2) - { - if (s1 == s2) - return 0; - while (s1 != string.Empty && s2 != string.Empty) - { - //look for numbers - Match m1 = Regex.Match(s1, "^[0-9]+"); - Match m2 = Regex.Match(s2, "^[0-9]+"); - if (m1.Length > 0 && m2.Length > 0) - { - int i1 = int.Parse(m1.Value); - int i2 = int.Parse(m2.Value); - if (i1 < i2) - return -1; - if (i1 > i2) - return 1; - s1 = s1.Substring(m1.Length); - s2 = s2.Substring(m2.Length); - } - else - { - if (m1.Length > 0) - return 1; - if (m2.Length > 0) - return -1; - } - //look for letters - m1 = Regex.Match(s1, "^[A-Za-z]+"); - m2 = Regex.Match(s2, "^[A-Za-z]+"); - if (m1.Length > 0 && m2.Length > 0) - { - if (m1.Length > m2.Length) - return 1; - if (m1.Length < m2.Length) - return -1; - int c = m1.Value.CompareTo(m2.Value); - if (c != 0) - return c; - s1 = s1.Substring(m1.Length); - s2 = s2.Substring(m2.Length); - } - else - { - if (m1.Length > 0) - return 1; - if (m2.Length > 0) - return -1; - } - //look for symbols - m1 = Regex.Match(s1, "^[^0-9A-Za-z]+"); - m2 = Regex.Match(s2, "^[^0-9A-Za-z]+"); - if (m1.Length > 0 && m2.Length > 0) - { - int c = m1.Value.CompareTo(m2.Value); - if (c != 0) - return c; - s1 = s1.Substring(m1.Length); - s2 = s2.Substring(m2.Length); - } - else - { - if (m1.Length > 0) - return 1; - if (m2.Length > 0) - return -1; - } - } - return s1.CompareTo(s2); - } - public bool Approve(Point location) - { - //verify can checkout procedures - StringBuilder sb = new StringBuilder(); - foreach (ApprovalProcedure ap in MyProcedures) - { - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(ap.ProcInfo.ItemID, ref message)) - { - sb.AppendLine(message); - } -// MySessionInfo.CheckOutItem(pi.ItemID); - } - if (sb.Length > 0) - { - MessageBox.Show(sb.ToString(), "Procedure(s) Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return false; - } - ViewPDF = ViewPDF && MyProcedures.Count == 1; - sb = new StringBuilder(); - StageInfo nsi = StageInfo.Get(RevStage); - foreach (ApprovalProcedure ap in MyProcedures) //spin thru looking for updating current revision - { - //RevisionInfo ric = RevisionInfo.GetCurrentByItemID(ap.ProcInfo.ItemID); - RevisionInfo ric = ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0 ? RevisionInfo.GetCurrentByItemIDandUnitID(ap.ProcInfo.ItemID,ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave) : RevisionInfo.GetCurrentByItemID(ap.ProcInfo.ItemID); - if (ric != null) - { - VersionInfo vi = ric.LatestVersion; - if (ap.RevNumber == ric.RevisionNumber && nsi.IsApproved == 0 && vi.MyStage.IsApproved == 1) - sb.AppendLine(string.Format("{0} - '{1}'", ap.ProcInfo.DisplayNumber, vi.MyStage.Name)); - } - } - if (sb.Length > 0) - { - sb.Insert(0, string.Format("The following procedures will be reverted to '{0}'\r\n\r\n", nsi.Name)); - sb.AppendLine("\r\nThis will restore change bars and summary of change results!"); - sb.AppendLine("\r\nIf you do not want this to occur, answer No to this dialog \r\nand then change the revision number to create a new revision."); - sb.Append(string.Format("\r\nAre you sure you want to revert to '{0}'?",nsi.Name)); - if (MessageBox.Show(sb.ToString(),string.Format("Revert to {0}",nsi.Name),MessageBoxButtons.YesNo,MessageBoxIcon.Stop) == DialogResult.No) - return false; - } - foreach (ApprovalProcedure ap in MyProcedures) - { - ProcedureInfo pi = ap.ProcInfo; - int ownerID = MySessionInfo.CheckOutItem(pi.ItemID); - OnStatusUpdated(this, new ApprovalMessageArgs(string.Format("Processing {0}", pi.DisplayNumber))); - string summaryPDF = string.Format(@"{0}\{1} Summary of Changes.pdf", VlnSettings.TemporaryFolder, pi.PDFNumber); - string pdfTmp = string.Format(@"{0}.pdf", pi.PDFNumber); - string pdfPath = string.Format(@"{0}\{1}", VlnSettings.TemporaryFolder, pdfTmp); - if (!TryToDelete(summaryPDF)) break; - if (!TryToDelete(pdfPath)) break; - RevisionInfo ric = pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0 ? RevisionInfo.GetCurrentByItemIDandUnitID(pi.ItemID, pi.MyDocVersion.DocVersionConfig.SelectedSlave) : RevisionInfo.GetCurrentByItemID(pi.ItemID); -// RevisionInfo rip = RevisionInfo.GetPreviousByItemID(pi.ItemID); - DateTime myDTS = pi.DTS; - string cbDTS = (pi.MyConfig as ProcedureConfig).Print_ChangeBarDate; - if ((cbDTS ?? "") != "") - myDTS = DateTime.Parse(cbDTS); - if (ric != null && ap.RevNumber == ric.RevisionNumber && ric.LatestVersion.MyStage.IsApproved == 1) - { - myDTS = ric.MyConfig.History_StartDate; - //UpdateProcedureDTS(pi, myDTS); - } - if (ric != null && ap.RevNumber != ric.RevisionNumber && ric.LatestVersion.MyStage.IsApproved == 1) - { - myDTS = ric.DTS; -// myDTS = DateTime.Parse(pi.ProcedureConfig.Print_RevDate); - } - ContentAuditInfoList cail; - AnnotationAuditInfoList aail; - if (pi.MyDocVersion.DocVersionConfig.SelectedSlave > 0) - { - pi = ProcedureInfo.GetItemAndChildrenByUnit(pi.ItemID, 0, pi.MyDocVersion.DocVersionConfig.SelectedSlave); - pi.ChangeBarDate = myDTS; - cail = ContentAuditInfoList.GetSummaryByUnit(pi.ItemID, pi.ItemID, false, pi.MyDocVersion.DocVersionConfig.SelectedSlave, pi.ChangeBarDate); - aail = AnnotationAuditInfoList.GetChronologyByUnit(pi.ItemID, pi.ItemID, pi.MyDocVersion.DocVersionConfig.SelectedSlave, pi.ChangeBarDate); - } - else - { - pi = ProcedureInfo.GetItemAndChildren(pi.ItemID); - pi.ChangeBarDate = myDTS; - cail = ContentAuditInfoList.GetSummary(pi.ItemID, pi.ItemID, false, pi.ChangeBarDate); - aail = AnnotationAuditInfoList.GetChronology(pi.ItemID, pi.ItemID, pi.ChangeBarDate); - } - Volian.Print.Library.PDFChronologyReport myChronoRpt = new Volian.Print.Library.PDFChronologyReport(summaryPDF, pi, cail, aail); - myChronoRpt.BuildSummary(ViewPDF); - FileInfo pdfFile = new FileInfo(summaryPDF); - FileStream fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - byte[] summaryBuf = new byte[pdfFile.Length]; - fs.Read(summaryBuf, 0, summaryBuf.Length); - fs.Close(); - Revision revision = null; - if (ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0) - { - revision = Revision.GetByItemIDAndRevisionNumberAndUnitID(pi.ItemID, ap.RevNumber, ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave); - if (revision == null) - { - RevisionConfig cfg = new RevisionConfig(); - cfg.History_StartDate = myDTS; // pi.DTS; - cfg.Applicability_Index = ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave; - //cfg.Save(); - revision = Revision.MakeRevision(pi.ItemID, RevType, ap.RevNumber, ap.RevDate, RevNote, cfg.ToString(), DateTime.Now, Volian.Base.Library.VlnSettings.UserID); - // revision.MyConfig.History_StartDate = pi.DTS; - // revision.MyConfig.Save(); - // revision = revision.Save(); - } - else if (revision.Notes != RevNote || revision.RevisionDate != ap.RevDate) - { - revision.Notes = RevNote; - revision.RevisionDate = ap.RevDate; - revision = revision.Save(); - } - } - else - { - revision = Revision.GetByItemIDAndRevisionNumber(pi.ItemID, ap.RevNumber); - if (revision == null) - { - RevisionConfig cfg = new RevisionConfig(); - cfg.History_StartDate = pi.DTS; - //cfg.Save(); - revision = Revision.MakeRevision(pi.ItemID, RevType, ap.RevNumber, ap.RevDate, RevNote, cfg.ToString(), DateTime.Now, Volian.Base.Library.VlnSettings.UserID); - // revision.MyConfig.History_StartDate = pi.DTS; - // revision.MyConfig.Save(); - // revision = revision.Save(); - } - else if (revision.Notes != RevNote || revision.RevisionDate != ap.RevDate) - { - revision.Notes = RevNote; - revision.RevisionDate = ap.RevDate; - revision = revision.Save(); - } - } - DateTime currentDTS = DateTime.Now; - Check check = Check.MakeCheck(revision, Stage.Get(RevStage), RevisionInfo.BuildRevisionChecks(pi), currentDTS, VlnSettings.UserID); - //make pdf with promsprinter and get byte stream - // Moved to end so that Item and Content are saved at the same time - //UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS); - string waterMark = Stage.Get(RevStage).IsApproved > 0 ? null : Stage.Get(RevStage).Name; - //ProcedureInfo myproc = pi; - //frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - //myproc.ChangeBarDate = myDTS; - frmPDFStatusForm frm = new frmPDFStatusForm(pi, ap.RevNumAndDate, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - frm.AllowAllWatermarks = true; - frm.CloseWhenDone = !ViewPDF; - frm.ShowDialog(); - //if (ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0) - //{ - // using (ProcedureInfo myproc = ProcedureInfo.GetItemAndChildrenByUnit(pi.ItemID, 0, ap.ProcInfo.MyDocVersion.DocVersionConfig.SelectedSlave)) - // { - // //frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - // myproc.ChangeBarDate = myDTS; - // frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumAndDate, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - // frm.AllowAllWatermarks = true; - // frm.CloseWhenDone = !ViewPDF; - // frm.ShowDialog(); - // } - //} - //else - //{ - // using (ProcedureInfo myproc = ProcedureInfo.GetItemAndChildren(pi.ItemID)) - // { - // //frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumber, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - // myproc.ChangeBarDate = myDTS; - // frmPDFStatusForm frm = new frmPDFStatusForm(myproc, ap.RevNumAndDate, /* revdate change: ap.RevDate.ToString("MM/dd/yyyy") ,*/ waterMark, false, false, ViewPDF, true, VlnSettings.TemporaryFolder, new ChangeBarDefinition(pi.MyDocVersion.MyConfig as DocVersionConfig, pi.ActiveFormat), pdfTmp, location); - // frm.AllowAllWatermarks = true; - // frm.CloseWhenDone = !ViewPDF; - // frm.ShowDialog(); - // } - //} - pdfFile = new FileInfo(pdfPath); - fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - byte[] buf = new byte[pdfFile.Length]; - fs.Read(buf, 0, buf.Length); - fs.Close(); - VEPROMS.CSLA.Library.Version version = VEPROMS.CSLA.Library.Version.MakeVersion(revision, Stage.Get(RevStage), buf, summaryBuf, currentDTS, VlnSettings.UserID); - StageInfo si = StageInfo.Get(RevStage); - int selectedSlave = pi.MyDocVersion.DocVersionConfig.SelectedSlave; - pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; - if (si.IsApproved == 1) - UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, DateTime.Now, selectedSlave); - else - UpdateProcedureConfig(pi, ap.RevNumber, ap.RevDate, myDTS, selectedSlave); - //UpdateProcedureDTS(pi, DateTime.Now); - pi.MyDocVersion.DocVersionConfig.SelectedSlave = selectedSlave; - MySessionInfo.CheckInItem(ownerID); - } - return true; - } - private bool TryToDelete(string pdfFile) - { - int cntr = 0; - while (File.Exists(pdfFile)) - { - try - { - File.Delete(pdfFile); - return true; - } - catch - { - cntr++; - StringBuilder sb = new StringBuilder(); - sb.AppendLine("Could not create"); - sb.AppendLine(); - sb.AppendLine(pdfFile + "."); - sb.AppendLine(); - sb.AppendLine("If it is open, close and retry."); - if (cntr >= 3) - { - sb.Insert(0, "PAY ATTENTION!!!\r\n\r\n"); - sb.AppendLine("\r\n\r\nFIRST CLOSE IT, THEN PRESS THE OK BUTTON!!!"); - } - if(MessageBox.Show(sb.ToString(), "Error on CreatePdf", MessageBoxButtons.OKCancel, MessageBoxIcon.Warning) != DialogResult.OK) - return false; - Application.DoEvents(); - } - } - return true; - } - - private void UpdateProcedureDTS(ProcedureInfo pi, DateTime dts) - { - using (Item itm = Item.Get(pi.ItemID)) - { - itm.DTS = dts; - itm.Save(); - } - } - private void UpdateProcedureConfig(ProcedureInfo procedureInfo, string revNumber, DateTime revDate, DateTime dts, int selectedSlave) - { - ProcedureConfig pc = procedureInfo.MyConfig as ProcedureConfig; - if (pc == null) return; - pc.SelectedSlave = selectedSlave; - pc.Print_Rev = revNumber; - //AppRevDate Change - pc.Print_RevDate = revDate.ToString("MM/dd/yyyy"); - pc.Print_ChangeBarDate = dts.ToString("MM/dd/yyyy HH:mm:ss"); - using (Item itm = Item.Get(procedureInfo.ItemID)) - { - itm.MyContent.Config = pc.ToString(); - //itm.DTS = dts; - itm.UserID = Volian.Base.Library.VlnSettings.UserID; - itm.Save(); - } - - } - } - public class RevType - { - private int _TypeID; - public int TypeID - { - get { return _TypeID; } - set { _TypeID = value; } - } - private string _TypeName; - public string TypeName - { - get { return _TypeName; } - set { _TypeName = value; } - } - public RevType(int i, string s) - { - _TypeID = i; - _TypeName = s; - } - } - public class RevTypes : List - { - } - public delegate void DisplayConsistencyReportEvent(object sender, ConsistencyReportArgs args); - public class ConsistencyReportArgs : EventArgs - { - private string _ReportName; - public string ReportName - { - get { return _ReportName; } - set { _ReportName = value; } - } - private ItemInfoList _MyItems; - public ItemInfoList MyItems - { - get { return _MyItems; } - set { _MyItems = value; } - } - public ConsistencyReportArgs(string reportName, ItemInfoList myItems) - { - _ReportName = reportName; - _MyItems = myItems; - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/dlgChgId.Designer.cs b/PROMS/VEPROMS User Interface/dlgChgId.Designer.cs deleted file mode 100644 index a088fda1..00000000 --- a/PROMS/VEPROMS User Interface/dlgChgId.Designer.cs +++ /dev/null @@ -1,113 +0,0 @@ -namespace VEPROMS -{ - partial class dlgChgId - { - ///

    - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.label1 = new System.Windows.Forms.Label(); - this.tbChgId = new System.Windows.Forms.TextBox(); - this.btnOk = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.SuspendLayout(); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(17, 12); - this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(160, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Please enter your change bar ID"; - // - // tbChgId - // - this.tbChgId.Location = new System.Drawing.Point(41, 41); - this.tbChgId.Margin = new System.Windows.Forms.Padding(2); - this.tbChgId.Name = "tbChgId"; - this.tbChgId.Size = new System.Drawing.Size(97, 20); - this.tbChgId.TabIndex = 1; - // - // btnOk - // - this.btnOk.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOk.Location = new System.Drawing.Point(25, 74); - this.btnOk.Margin = new System.Windows.Forms.Padding(2); - this.btnOk.Name = "btnOk"; - this.btnOk.Size = new System.Drawing.Size(46, 24); - this.btnOk.TabIndex = 2; - this.btnOk.Text = "OK"; - this.btnOk.UseVisualStyleBackColor = true; - this.btnOk.Click += new System.EventHandler(this.btnOk_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Location = new System.Drawing.Point(103, 74); - this.btnCancel.Margin = new System.Windows.Forms.Padding(2); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(49, 24); - this.btnCancel.TabIndex = 3; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // dlgChgId - // - this.AcceptButton = this.btnOk; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(186, 113); - this.ControlBox = false; - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOk); - this.Controls.Add(this.tbChgId); - this.Controls.Add(this.label1); - this.Margin = new System.Windows.Forms.Padding(2); - this.MaximizeBox = false; - this.MaximumSize = new System.Drawing.Size(202, 152); - this.MinimizeBox = false; - this.MinimumSize = new System.Drawing.Size(202, 152); - this.Name = "dlgChgId"; - this.SizeGripStyle = System.Windows.Forms.SizeGripStyle.Hide; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "PROMS Change Bar ID"; - this.TopMost = true; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbChgId; - private System.Windows.Forms.Button btnOk; - private System.Windows.Forms.Button btnCancel; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/dlgChgId.cs b/PROMS/VEPROMS User Interface/dlgChgId.cs deleted file mode 100644 index 7367a2cd..00000000 --- a/PROMS/VEPROMS User Interface/dlgChgId.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using Volian.Controls.Library; - -namespace VEPROMS -{ - public partial class dlgChgId : Form - { - DisplayTabControl TabControl; - public dlgChgId(DisplayTabControl tc) - { - InitializeComponent(); - TabControl = tc; - tbChgId.Focus(); - } - - private void btnOk_Click(object sender, EventArgs e) - { - TabControl.ChgId = tbChgId.Text; - } - - private void btnCancel_Click(object sender, EventArgs e) - { - TabControl.ChgId = null; - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/dlgChgId.resx b/PROMS/VEPROMS User Interface/dlgChgId.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/VEPROMS User Interface/dlgChgId.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/dlgExportImport.cs.bak b/PROMS/VEPROMS User Interface/dlgExportImport.cs.bak deleted file mode 100644 index 5e882fc0..00000000 --- a/PROMS/VEPROMS User Interface/dlgExportImport.cs.bak +++ /dev/null @@ -1,3988 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; -using System.Xml; -using System.IO; -using Ionic.Zip; -using System.Text.RegularExpressions; - -namespace VEPROMS -{ - public partial class dlgExportImport : Form -{ - private bool _ConvertROsToTextDuringImport = false; - private bool _ConvertROsAndTransitionsToText = false; // set to true when Approval creates an Export file - private ItemInfo _ExternalTransitionItem = null; - public ItemInfo ExternalTransitionItem - { - get { return _ExternalTransitionItem; } - set { _ExternalTransitionItem = value; } - } - private Dictionary floatFoldout; - private Dictionary oldFormat; - private Dictionary newFormat; - private int oldRODbID; - private int newRODbID; - private FolderInfo _MyNewFolder; - public FolderInfo MyNewFolder - { - get { return _MyNewFolder; } - } - private ProcedureInfo _MyNewProcedure; - public ProcedureInfo MyNewProcedure - { - get { return _MyNewProcedure; } - set { _MyNewProcedure = value; } - } - private string PEIPath; - private string _MyMode; - private FolderInfo MyFolder = null; - private DocVersionInfo MyDocVersion = null; - private ProcedureInfo MyProcedure = null; - private XmlAttribute AddAttribute(XmlDocument xd, string name, string value) - { - XmlAttribute xa = xd.CreateAttribute(name); - xa.InnerText = value; - return xa; - } - public dlgExportImport(string mode, FolderInfo folderInfo) - { - _MyMode = mode; - MyFolder = folderInfo; - InitializeComponent(); - this.Text = mode + " Dialog for " + folderInfo.Name; - } - public dlgExportImport(string mode, DocVersionInfo docVersionInfo) - { - _MyMode = mode; - MyDocVersion = docVersionInfo; - InitializeComponent(); - this.Text = mode + " Dialog for " + docVersionInfo.Name + " of " + docVersionInfo.MyFolder.Name; - } - public dlgExportImport(string mode, ProcedureInfo procedureInfo) - { - _MyMode = mode; - MyProcedure = procedureInfo; - InitializeComponent(); - this.Text = mode + " Dialog for " + procedureInfo.DisplayNumber; - } - private void dlgExportImport_Load(object sender, EventArgs e) - { - PEIPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS\PEI_" + Database.VEPROMS_SqlConnection.Database; - if (!Directory.Exists(PEIPath)) - Directory.CreateDirectory(PEIPath); - if (_MyMode == "Import") - { - //If you try to import a procedure into an empty PROMS folder, the code was deleting the File System Folder including the import file. This happened during D.C. Cook training (12/3/2015). - //if (MyFolder != null && MyFolder.ChildFolderCount == 0 ) - //{ - // Directory.Delete(PEIPath, true); - // Directory.CreateDirectory(PEIPath); - //} - } - pnlExport.Dock = DockStyle.Fill; - pnlImport.Dock = DockStyle.Fill; - if (_MyMode.ToLower() == "export") - { - sfd.InitialDirectory = PEIPath; - pnlExport.BringToFront(); - } - else - { - ofd.InitialDirectory = PEIPath; - pnlImport.BringToFront(); - } - this.Height = this.Height / 2; - } - private void btnExport_Click(object sender, EventArgs e) - { - if (MyFolder != null) - { - //Database.SelectedDatabase - //sfd.FileName = string.Format("{0}.expx", MyFolder.Name); - sfd.FileName = string.Format("{0}-{1}.expx",Database.ActiveDatabase, MyFolder.Name); - if (sfd.ShowDialog(this) == DialogResult.OK) - { - if (sfd.FileName != string.Empty) - { - txtExport.Text = sfd.FileName; - if (File.Exists(txtExport.Text)) - File.Delete(txtExport.Text); - MyExpxZipFile = new ZipFile(txtExport.Text, Encoding.UTF8); - MyExpxZipFile.Save(); - } - } - } - else if (MyProcedure != null) - { - txtExport.Text = string.Format(@"{0}\{1}.pxml", PEIPath, MyProcedure.DisplayNumber.Replace("/", "_").Replace("\\","_")); - } - } - private void txtExport_TextChanged(object sender, EventArgs e) - { - btnDoExport.Enabled = txtExport.TextLength > 0; - if (btnDoExport.Enabled) - lblExportStatus.Text = "Ready To Perform Export"; - else - lblExportStatus.Text = "Awaiting Export File Name:"; - } - private XmlWriter MyWriter = null; - private ZipFile MyExpxZipFile = null; - private ZipFile MyImpxZipFile = null; - private DateTime MyStart; - private void btnDoExport_Click(object sender, EventArgs e) - { - btnExport.Enabled = false; - if (MyFolder != null) - { - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoExport.Enabled = false; - lblExportStatus.Text = "Performing Export"; - SaveExportData(); - //SaveExportDataWriter(); - - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportStatus.Text = "Export Completed in " + elapsed.ToString(); - this.Cursor = Cursors.Default; - } - else if (MyProcedure != null) - { - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoExport.Enabled = false; - lblExportStatus.Text = "Performing Export"; - pbExportProcedure.Maximum = 1; - XmlDocument xd = new XmlDocument(); - ExportItem(xd, MyProcedure, "procedure"); - xd.Save(txtExport.Text); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportStatus.Text = "Export Completed in " + elapsed.ToString(); - this.Cursor = Cursors.Default; - } - btnCloseExport.Enabled = true; - } - private void SaveExportData() - { - XmlDocument xd = new XmlDocument(); - ExportFolder(xd, MyFolder, "folder"); - } - - // appears to not be used -jsj 4-29-2016 - //private void SaveExportDataWriter() - //{ - // XmlWriterSettings ws = new XmlWriterSettings(); - // ws.Indent = true; - // ws.NewLineHandling = NewLineHandling.Entitize; - // ws.CheckCharacters = false; - // MyWriter = XmlWriter.Create(txtExport.Text, ws); - // ExportFolder(MyFolder, "folder"); - // MyWriter.Close(); - //} - - private void btnDoImport_Click(object sender, EventArgs e) - { - bool isImported = false; - bool canceledPressed = false; - btnImport.Enabled = false; - this.Cursor = Cursors.WaitCursor; - MyStart = DateTime.Now; - btnDoImport.Enabled = false; - lblImportStatus.Text = "Performing Import"; - //LoadImportDataReader(); - if (MyFolder != null) // import a folder - a .expx file - { - TurnChangeManagerOff.Execute(); - LoadImportDataDocument(); - MyDocVersion = null; - isImported = true; - TurnChangeManagerOn.Execute(); - } - if (MyDocVersion != null) // import a procedure - a .pxml file - { - // compare the ROPath of MyDocVerion - // if no path set, display Pick RO Folder dialog - // if MyDocVersion ROPath is different than the import file ROPath, then ask user: - // - use MyDocVersion ROPath (warn resulting RO values may be be correct) - // * set oldRODbID to id in import file - // * set newRODbid to MyDocVersion rodbid - // - or convert ROs to text - TurnChangeManagerOff.Execute(); - XmlDocument xd = new XmlDocument(); - xd.Load(txtImport.Text); - pbImportProcedure.Maximum = 1; - string rofolderpath = xd.DocumentElement.Attributes.GetNamedItem("rofolderpath").InnerText; - int rodbid = int.Parse(xd.DocumentElement.Attributes.GetNamedItem("rodbid").InnerText); - int rofstid = int.Parse(xd.DocumentElement.Attributes.GetNamedItem("rofstid").InnerText); - if (MyDocVersion.DocVersionAssociationCount > 0) - { - // use current ROPath - MyRODb = RODb.GetJustRoDb(MyDocVersion.DocVersionAssociations[0].MyROFst.MyRODb.RODbID); - // if the current RO Path and the import file RO Path are not the same - // then ask if we should import using the current workingdraft RO Path, convert the ROs to text, or cancel the import - if (MyRODb.FolderPath != rofolderpath) - { - dlgImpHowToHandleROs dlg = new dlgImpHowToHandleROs(); - dlg.ImportedROFolder = rofolderpath; - dlg.WorkingDraftROFolder = MyRODb.FolderPath; - dlg.ShowDialog(this); - if (dlg.CancelImport) - { - this.Cursor = Cursors.Default; - this.btnImport.Enabled = true; // allow user to select a different export file to import - this.btnDoImport.Enabled = true; // allow user to change mind and perform the import - return; - } - _ConvertROsToTextDuringImport = dlg.ConvertROsToText; - } - // this saves the old RO database ID and the current RO database ID so that we can change the RODBIDs in the RO links - newRODbID = MyRODb.RODbID; - oldRODbID = rodbid; - } - else - { - #region NeedToSelectROPath - // MyDocVersion does not have an RO database (ro folder path) assigned to it so we need to select an RO Path - List localROPaths = new List(); - RODbInfoList rolist = RODbInfoList.Get(); - foreach (RODbInfo dbi in rolist) - { - if (dbi.FolderPath == rofolderpath && dbi.RODbID == rodbid) - { - MyRODb = RODb.GetJustRoDb(rodbid); - oldRODbID = newRODbID = rodbid; - break; - } - // B2016-175 have the correct (matching) RO Path but the rodbid is different (procedure came from a different SQL database) - // We can use the RO Path but we need to change the rodbid in the RO links of the procedure we are importing - else if (dbi.FolderPath == rofolderpath && dbi.RODbID != rodbid) - { - MyRODb = RODb.GetByFolderPath(rofolderpath); - newRODbID = MyRODb.RODbID; - oldRODbID = rodbid; - break; - } - else - { - DirectoryInfo di = new DirectoryInfo(dbi.FolderPath); - if (di.Exists) - localROPaths.Add(dbi.FolderPath); - } - } - if (MyRODb == null) - { - if (localROPaths.Count == 0) - { - MessageBox.Show("There has been no RO folder defined for this database.\r\n\r\nIn order to import a procedure, you need to assign a RO folder path.\r\n\r\nImport process will terminate."); - this.Cursor = Cursors.Default; - return; - } - else - { - this.Cursor = Cursors.Default; - dlgPickROFolder dlg = new dlgPickROFolder(); - dlg.ImportedROFolder = rofolderpath; - dlg.LocalROFolders = localROPaths; - dlg.ShowDialog(this); - if ((dlg.SelectedROFolder ?? string.Empty) != string.Empty) // B2015-216 If the return value is null treat it like an empty string - { - MyRODb = RODb.GetByFolderPath(dlg.SelectedROFolder); - RODbInfo myRODBInfo = RODbInfo.Get(MyRODb.RODbID); - oldRODbID = newRODbID = MyRODb.RODbID; - ROFstInfo fstInfo = null; - foreach (ROFstInfo tmp in myRODBInfo.RODbROFsts) - if (fstInfo == null || tmp.ROFstID > fstInfo.ROFstID) - fstInfo = tmp; - using (DocVersion dv = MyDocVersion.Get()) - { - using (ROFst fst = fstInfo.Get()) - { - dv.DocVersionAssociations.Add(fst); - dv.Save(); - } - dv.Reset_DocVersionAssociations(); - MyDocVersion.RefreshDocVersionAssociations(); - } - } - else - { - MessageBox.Show("Since you did not pick an existing RO folder defined for this database, the import process will terminate."); - this.Close();// Close the Import Window - return; - } - } - } - #endregion - } // end - need to select RO Path - - // use resolvedProcNum to determine if procedure is 'unique', i.e. if the procedure number exists - // and user does not overwrite or copy, then the procedure should NOT be imported. Fix for B2016-045 - bool resolvedProcNum = true; - foreach (ProcedureInfo pi in MyDocVersion.Procedures) - { - // procedure numbers that contain a hyphen may have the hyphen represented as the unicode character - // '\u8209?' or the '-' character. If proc number is same except for hyphen representation, they - // should be considered the same procedure (fix for B2016-084) - string hyphenNum = pi.MyContent.Number == null ? "" : pi.MyContent.Number.Replace(@"\u8209?", "-").Replace("\u2011", "-").Replace("\u9586?","_").Replace("\u2572", @"\"); - string hyphenImpNum = xd.SelectSingleNode("procedure/content/@number").InnerText; - // bug fix C2015-044 - jsj - // - the cancel button would ignor the user's wishes and proceed with the import (overwriting the existing procedure) - // - also found that the message about overwriting or making a copy wasn't appearing because we where not converting the import procedure number - // - our standard unicode dash (\u8209?) before conparing the existing and imported - // - also found the Overrite and make a copy of messages looked too similar - fixed that as well. - //hyphenImpNum = hyphenImpNum == null ? "" : hyphenImpNum.Replace("\u8030?", "-"); -did not find any reason to have this \u8030? - note retested sourcesafe doc for B2016-084 without this logic and it was fine - hyphenImpNum = hyphenImpNum == null ? "" : hyphenImpNum.Replace(@"\u8209?", "-").Replace("\u2011", "-").Replace(@"\u9586?", @"\").Replace("\u2572", @"\"); - - if (hyphenNum == hyphenImpNum) - { - string msg = string.Format("The procedure you are importing{0}already exists in this procedure set.\n\nDo you want to OVERWRITE the existing procedure?", !hyphenImpNum.Equals("")?string.Format(" ({0}) ",hyphenImpNum):" "); - DialogResult dr = MessageBox.Show(this, msg, "Overwrite Existing Procedure", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - if (dr == DialogResult.Yes) - { - ImportProcedureOverwrite(xd, pi); - isImported = true; - break; - } - if (dr == DialogResult.No) - { - msg = string.Format("Do you want to import {0} as a COPY of the existing procedure?\n\nThis will prefix the procedure number with \"Copy of\"", !hyphenImpNum.Equals("") ? string.Format("({0})", hyphenImpNum) : "the procedure"); - dr = MessageBox.Show(this, msg , "Create Copy Of Existing Procedure", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - if (dr == DialogResult.Yes) - { - ImportProcedureCopy(xd); - isImported = true; - break; - } - else - resolvedProcNum = false; - } - if (dr == System.Windows.Forms.DialogResult.Cancel) - { - canceledPressed = true; - resolvedProcNum = false; - } - break; // user selected No or Cancel so break out of the foreach loop - } - } - if (!canceledPressed && !isImported && resolvedProcNum) - { - ImportProcedureNew(xd); - isImported = true; - } - TurnChangeManagerOn.Execute(); - if (isImported) - { - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblImportStatus.Text = "Import Completed in " + elapsed.ToString(); - } - else - { - btnImport.Enabled = true; - btnDoImport.Enabled = true; - } - } - this.Cursor = Cursors.Default; - btnCloseImport.Enabled = true; - if (isImported) - MessageBox.Show(string.Format("Finished Importing:\n\n{0}",txtImport.Text.Substring(txtImport.Text.LastIndexOf("\\")+1)),"Import",MessageBoxButtons.OK,MessageBoxIcon.Information); - if (canceledPressed) - { - MessageBox.Show(string.Format("Canceling the import of:\n\n{0}",txtImport.Text.Substring(txtImport.Text.LastIndexOf("\\")+1)),"Import",MessageBoxButtons.OK,MessageBoxIcon.Information); - btnCloseImport.PerformClick(); - } - } - private void ImportProcedureNew(XmlDocument xd) - { - //add imported procedure - floatFoldout = new Dictionary(); - oldFormat = new Dictionary(); - newFormat = new Dictionary(); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - { - oldFormat.Add(fi.FormatID, fi.Name); - newFormat.Add(fi.Name, fi.FormatID); - } - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - PendingTransitions = new XmlDocument(); - XmlElement xe = PendingTransitions.CreateElement("transitions"); - PendingTransitions.AppendChild(xe); - string fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Save(fn); - ProcedureInfo lastProcedure = null; - foreach (ProcedureInfo pi in MyDocVersion.Procedures) - lastProcedure = pi; - _MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure); - //update transitions - AddTransitions(PendingTransitions); - PendingTransitions.Save(fn); - FixFloatingFoldouts(); - //File.Delete(fn); - } - private void ImportProcedureCopy(XmlDocument xd) - { - floatFoldout = new Dictionary(); - oldFormat = new Dictionary(); - newFormat = new Dictionary(); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - { - oldFormat.Add(fi.FormatID, fi.Name); - newFormat.Add(fi.Name, fi.FormatID); - } - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - PendingTransitions = new XmlDocument(); - XmlElement xe = PendingTransitions.CreateElement("transitions"); - PendingTransitions.AppendChild(xe); - string fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Save(fn); - ProcedureInfo lastProcedure = null; - //determine count of existing procedures with same number - string number = xd.SelectSingleNode("procedure/content/@number").InnerText; - - // kbr - could replace '-' with unicode in number, here. - int count = 0; - foreach (ProcedureInfo pi in MyDocVersion.Procedures) - { - lastProcedure = pi; - if (pi.MyContent.Number.EndsWith(number)) - count++; - } - xd.SelectSingleNode("procedure/content/@number").InnerText = string.Format("Copy({0}) of {1}", count.ToString(), number); - //add imported procedure and copy count - _MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure); - //update transitions - AddTransitions(PendingTransitions); - FixFloatingFoldouts(); - File.Delete(fn); - } - private void ImportProcedureOverwrite(XmlDocument xd, ProcedureInfo pi) - { - floatFoldout = new Dictionary(); - oldFormat = new Dictionary(); - newFormat = new Dictionary(); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - { - oldFormat.Add(fi.FormatID, fi.Name); - newFormat.Add(fi.Name, fi.FormatID); - } - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - PendingTransitions = new XmlDocument(); - XmlElement xe = PendingTransitions.CreateElement("transitions"); - PendingTransitions.AppendChild(xe); - string fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Save(fn); - ProcedureInfo lastProcedure = null; - //delete old procedure - foreach (ProcedureInfo lp in MyDocVersion.Procedures) - lastProcedure = lp; - //delete opi - try - { - TurnChangeManagerOn.Execute(); // Import Turns off the Change Manager - Delete needs to have it on - Item.DeleteItemAndChildren(pi); - TurnChangeManagerOff.Execute(); // Assure that the Change Manager is off - } - catch(Exception ex) - { - ExternalTransitionItem = pi.HandleSqlExceptionOnDelete(ex); - File.Delete(fn); - TurnChangeManagerOff.Execute(); // Assure that the Change Manager is off - return; - } - //add imported procedure - _MyNewProcedure = AddProcedure(xd.DocumentElement, MyDocVersion, lastProcedure); - //update transitions - AddTransitions(PendingTransitions); - FixFloatingFoldouts(); - } - private void LoadImportDataDocument() - { - floatFoldout = new Dictionary(); - ZipEntry ze = MyExpxZipFile[0]; - string fn = PEIPath + @"\" + ze.FileName; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - XmlDocument xd = new XmlDocument(); - xd.Load(fn); - LoadFormats(xd); - Folder ff = AddFolder(Folder.Get(MyFolder.FolderID), xd); - if (ff == null) - { - MessageBox.Show("You can not import the same procedure set more than once", "Duplicate Import Error"); - return; - } - _MyNewFolder = FolderInfo.Get(ff.FolderID); - AddAnnotationTypes(xd); - DocVersionInfo dvi = AddDocVersion(ff, xd); - MyDocVersion = dvi; - xd = null; - lblImportStatus.Text = "Creating Procedures..."; - Application.DoEvents(); - ProcedureInfo pi = null; - pbImportProcedure.Value = 0; - pbImportProcedure.Maximum = MyExpxZipFile.Entries.Count - 1; - for (int i = 1; i < MyExpxZipFile.Entries.Count; i++) - { - ze = MyExpxZipFile[i]; - fn = PEIPath + @"\" + ze.FileName; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - xd = new XmlDocument(); - xd.Load(fn); - pi = AddProcedure(xd.DocumentElement, dvi, pi); - } - DirectoryInfo di = new DirectoryInfo(PEIPath); - DirectoryInfo[] dis = di.GetDirectories(); - for (int d = 0; d < dis.Length; d++) - dis[d].Delete(true); - lblImportStatus.Text = "Updating Transitions"; - AddTransitions(); - FixFloatingFoldouts(); - SaveTransitionAndItemContentIDs(); - } - private void FixSectionStart(ProcedureInfo pi) - { - Content c = Content.Get(pi.MyContent.ContentID); - XmlDocument xd = new XmlDocument(); - // If the config field is empty, add an empty xml node. - if (c.Config == "") c.Config = ""; - xd.LoadXml(c.Config); - XmlNode xn = xd.SelectSingleNode("Config/Procedure/@SectionStart"); - if (xn != null) - { - int iid = int.Parse(xn.InnerText); - if (Old2NewItem.ContainsKey(iid)) - iid = Old2NewItem[iid]; - else - { - int oldid = iid; - iid = pi.ItemID; - XmlAttribute xa = xd.CreateAttribute("ErrorSectionStart"); - xa.InnerText = oldid.ToString(); - XmlNode xp = xd.SelectSingleNode("Config/Procedure"); - xp.Attributes.SetNamedItem(xa); - } - xn.InnerText = iid.ToString(); - c.Config = xd.OuterXml; - c.Save(); - } - } - private void FixFloatingFoldouts() - { - foreach (int key in floatFoldout.Keys) - { - lblImportStatus.Text = "Updating Floating Foldouts"; - int cid = Old2NewContent[key]; - int iid = Old2NewItem[floatFoldout[key]]; - Content c = Content.Get(cid); - XmlDocument xd = new XmlDocument(); - xd.LoadXml(c.Config); - XmlNode xn = xd.SelectSingleNode("Config/Step/@FloatingFoldout"); - xn.InnerText = iid.ToString(); - c.Config = xd.OuterXml; - c.Save(); - } - } - - // note that his is only used when importing a folder - private void LoadFormats(XmlDocument xd) - { - oldFormat = new Dictionary(); - XmlNodeList nl = xd.SelectNodes("folder/formats/format"); - foreach (XmlNode nd in nl) - { - int formatid = int.Parse(nd.Attributes.GetNamedItem("formatid").InnerText); - string name = nd.Attributes.GetNamedItem("name").InnerText; - oldFormat.Add(formatid, name); - } - newFormat = new Dictionary(); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - newFormat.Add(fi.Name, fi.FormatID); - } - - //jsj 4-29-2016 appears to not be used - //Dictionary dicParentItem = null; - //private void UpdateParentItem(int depth, ItemInfo ii) - //{ - // if (dicParentItem == null) dicParentItem = new Dictionary(); - // if (!dicParentItem.ContainsKey(depth)) dicParentItem.Add(depth, null); - // dicParentItem[depth] = ii; - //} - - //jsj 4-29-2016 appears to not be used - //Dictionary dicPreviousItem = null; - //private void UpdatePreviousItem(int depth, ItemInfo ii) - //{ - // if (dicPreviousItem == null) dicPreviousItem = new Dictionary(); - // if (!dicPreviousItem.ContainsKey(depth)) dicPreviousItem.Add(depth, null); - // dicPreviousItem[depth] = ii; - //} - - Dictionary dicItemDepth = null; - - // jsj 4-29-2016 appears to not be used - //private void UpdateItemDepth(int depth, int id) - //{ - // if (dicItemDepth == null) dicItemDepth = new Dictionary(); - // if (!dicItemDepth.ContainsKey(depth)) dicItemDepth.Add(depth, 0); - // dicItemDepth[depth] = id; - //} - // jsj 2016Feb17 - this appears to not be used - //private void LoadImportDataReader() - //{ - // int pCount = 0; - // int sCount = 0; - // Folder folder = null; - // DocVersion docversion = null; - // Dictionary dicRofst = null; - // Dictionary dicEntry = null; - // ROFst rofst = null; - // GetImportDataCounts(); - // pbImportProcedure.Maximum = MyCounts.Count; - // pbImportProcedure.Value = 0; - // Application.DoEvents(); - // FileStream fs = File.OpenRead(txtImport.Text); - // XmlReaderSettings rs = new XmlReaderSettings(); - // rs.CheckCharacters = false; - // XmlReader xr = XmlReader.Create(fs, rs); - // while (xr.Read()) - // { - // if (xr.IsStartElement()) - // { - // switch (xr.Name) - // { - // case "annotation": - // AddAnnotation(xr); - // break; - // //case "association": - // // break; - // case "content": - // { - // if (xr.Depth == 3) //content for procedure - // { - // ItemInfo ii = AddProcedure(xr, docversion, dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // } - // else - // { - - // int fromtype = dicItemDepth.ContainsKey(xr.Depth - 2) ? dicItemDepth[xr.Depth - 2] : 0; - // switch (fromtype) - // { - // case 2: - // { //sections - // ItemInfo ii = AddSection(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // case 3: - // { //cautions - // ItemInfo ii = AddCaution(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // case 4: - // { //notes - // ItemInfo ii = AddNote(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // case 5: - // { //rnos - // ItemInfo ii = AddRNO(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // case 6: - // { //steps - // ItemInfo ii = AddStep(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // case 7: - // { //tables - // ItemInfo ii = AddTable(xr, dicParentItem[xr.Depth], dicPreviousItem[xr.Depth], dicItemDepth[xr.Depth]); - // UpdatePreviousItem(xr.Depth, ii); - // UpdateParentItem(xr.Depth, ii); - // break; - // } - // default: - // break; - // } - // } - // break; - // } - // case "document": - // AddDocument(xr, dicEntry); - // break; - // case "docversion": - // { - // docversion = AddDocVersion(folder, xr); - // UpdatePreviousItem(xr.Depth + 2, null); - // break; - // } - // case "entry": - // dicEntry = AddEntry(xr); - // break; - // case "folder": - // folder = AddFolder(Folder.Get(MyFolder.FolderID), xr); - // break; - // case "grid": - // AddGrid(xr); - // break; - // case "procedure": - // { - // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - // pbImportProcedure.PerformStep(); - // lblImportProcedure.Text = string.Format("{0} of {1} Procedures", pbImportProcedure.Value.ToString(), pbImportProcedure.Maximum.ToString()); - // pCount++; - // pbImportSection.Maximum = MyCounts[pCount].Count; - // pbImportSection.Value = 0; - // sCount = 0; - // Application.DoEvents(); - // break; - // } - // case "section": - // { - // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - // pbImportSection.PerformStep(); - // lblImportSection.Text = string.Format("{0} of {1} Sections", pbImportSection.Value.ToString(), pbImportSection.Maximum.ToString()); - // sCount++; - // pbImportStep.Maximum = MyCounts[pCount][sCount]; - // pbImportStep.Value = 0; - // Application.DoEvents(); - // break; - // } - // case "step": - // { - // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - // if (xr.Depth == 8) - // { - // pbImportStep.PerformStep(); - // lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - // Application.DoEvents(); - // } - // break; - // } - // case "caution": - // case "note": - // case "rno": - // case "table": - // UpdateItemDepth(xr.Depth + 1, int.Parse(xr.GetAttribute("itemid"))); - // break; - // case "cautions": - // case "notes": - // case "rnos": - // case "sections": - // case "steps": - // case "tables": - // { - // UpdateItemDepth(xr.Depth, int.Parse(xr.GetAttribute("fromtype"))); - // UpdatePreviousItem(xr.Depth + 2, null); - // UpdateParentItem(xr.Depth + 2, dicParentItem[xr.Depth - 1]); - // break; - // } - // case "rodb": - // { - // MyRODb = AddRODb(xr); - // rofst = AddROFst(dicRofst); - // docversion.DocVersionAssociations.Add(rofst); - // docversion.Save(); - // break; - // } - // case "rofst": - // dicRofst = GetROFstData(xr); - // break; - // case "rousage": - // AddROUsage(xr); - // break; - // //case "transition": - // // break; - // default: - // break; - // } - // Console.WriteLine("{0} - {1}", xr.Name, xr.Depth.ToString()); - // } - // } - // pbImportProcedure.PerformStep(); - // Application.DoEvents(); - // fs.Close(); - // FixImportDataTransitions(); - // StoreItemContentIDs(); - // ResolveExternalTransitions(folder); - //} - - // This is called only when we are importing an entire folder. - // if there is a .impx file (a zip file generated from the last folder export file and based on location -folder name- of the export file you are importing), then it updates it with new values, - // else it will create a .impx file, and saves the id information listed below. - // This will create and save the ItemIDs (old and new), ContentIDs (old andnew), library document IDs (old and new), and pending transitions each in their own xml file - // the xml files are then added (or replaced) in the .impx file. - private void SaveTransitionAndItemContentIDs() - { - XmlDocument xd = new XmlDocument(); - XmlElement xe = xd.CreateElement("items"); - xd.AppendChild(xe); - string fn = PEIPath + @"\items.xml"; - foreach (int key in Old2NewItem.Keys) - { - xe = xd.CreateElement("item"); - xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewItem[key].ToString())); - xd.DocumentElement.AppendChild(xe); - } - xd.Save(fn); - ZipEntry ze = MyImpxZipFile["items.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - xd = new XmlDocument(); - xe = xd.CreateElement("contents"); - xd.AppendChild(xe); - fn = PEIPath + @"\contents.xml"; - foreach (int key in Old2NewContent.Keys) - { - xe = xd.CreateElement("content"); - xe.Attributes.SetNamedItem(AddAttribute(xd, "old", key.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "new", Old2NewContent[key].ToString())); - xd.DocumentElement.AppendChild(xe); - } - xd.Save(fn); - ze = MyImpxZipFile["contents.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - xd = new XmlDocument(); - xe = xd.CreateElement("transitions"); - xd.AppendChild(xe); - fn = PEIPath + @"\transitions.xml"; - if (PendingTransitions != null && PendingTransitions.DocumentElement.HasChildNodes) - { - foreach (XmlNode nd in PendingTransitions.DocumentElement.ChildNodes) - { - if(nd.InnerText == "") - xd.DocumentElement.AppendChild(xd.ImportNode(nd, true)); - } - } - xd.Save(fn); - ze = MyImpxZipFile["transitions.xml"]; - MyImpxZipFile.RemoveEntry(ze); - MyImpxZipFile.Save(); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - } - // appears to not be used - jsj 4-28-2016 - //private void StoreItemContentIDs() - //{ - // XmlDocument xd = new XmlDocument(); - // string fn = PEIPath + @"\ExternalTransitions.xml"; - // xd.Load(fn); - // XmlElement xe = (XmlElement)xd.SelectSingleNode("externaltransitions/oldtonewitem"); - // foreach (int key in Old2NewItem.Keys) - // { - // XmlElement xee = xd.CreateElement("item"); - // XmlAttribute xa = AddAttribute(xd, "old", key.ToString()); - // xee.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "new", Old2NewItem[key].ToString()); - // xee.Attributes.SetNamedItem(xa); - // xe.AppendChild(xee); - // } - // xd.Save(fn); - // xe = (XmlElement)xd.SelectSingleNode("externaltransitions/oldtonewcontent"); - // foreach (int key in Old2NewContent.Keys) - // { - // XmlElement xee = xd.CreateElement("content"); - // XmlAttribute xa = AddAttribute(xd, "old", key.ToString()); - // xee.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "new", Old2NewContent[key].ToString()); - // xee.Attributes.SetNamedItem(xa); - // xe.AppendChild(xee); - // } - // xd.Save(fn); - //} - //private void ResolveExternalTransitions(Folder folder) - //{ - // XmlDocument xd = new XmlDocument(); - // string fn = PEIPath + @"\ExternalTransitions.xml"; - // xd.Load(fn); - // AddStoredItemContentIDs(xd); - // XmlNodeList nl = xd.SelectNodes("//transition[@folder!='']"); - // foreach (XmlNode nd in nl) - // { - // int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - // int fromid = int.Parse(nd.Attributes.GetNamedItem("fromid").InnerText); - // int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - // int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - // if (Old2NewContent.ContainsKey(fromid) && Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) - // { - // int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - // int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - // string config = nd.Attributes.GetNamedItem("config").InnerText; - // string userid = nd.Attributes.GetNamedItem("userid").InnerText; - // DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - // string lookfor; - // if (isrange == 0) - // lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - // else - // lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - // fromid = Old2NewContent[fromid]; - // toid = Old2NewItem[toid]; - // rangeid = Old2NewItem[rangeid]; - // Content cc = Content.Get(fromid); - // Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - // transitionid = tt.TransitionID; - // string replacewith; - // if (isrange == 0) - // replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - // else - // replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - // cc.Text = cc.Text.Replace(lookfor, replacewith); - // cc.Save(); - // nd.Attributes.GetNamedItem("folder").InnerText = ""; - // } - // } - // xd.Save(fn); - //} - - // This is called only when we are importing an entire folder and there is a .impx file (a zip file) - // the name of the .impx file is based on the folder name containing the export file being imported - // This will read in the saved ItemIDs (old and new), ContentIDs (old andnew), library document IDs (old and new), and pending transitions - private void ReadTransitionAndItemContentIDs() - { - ZipEntry ze = MyImpxZipFile["items.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - string fn = PEIPath + @"\items.xml"; - XmlDocument xd = new XmlDocument(); - xd.Load(fn); - XmlNodeList nl = xd.SelectNodes("//item"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - //if (!Old2NewItem.ContainsKey(oldid)) - Old2NewItem.Add(oldid, newid); - } - File.Delete(fn); - ze = MyImpxZipFile["contents.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\contents.xml"; - xd = new XmlDocument(); - xd.Load(fn); - nl = xd.SelectNodes("//content"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - //if (!Old2NewContent.ContainsKey(oldid)) - Old2NewContent.Add(oldid, newid); - } - File.Delete(fn); - ze = MyImpxZipFile["libdocs.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\libdocs.xml"; - xd = new XmlDocument(); - xd.Load(fn); - nl = xd.SelectNodes("//libdoc"); - foreach (XmlNode nd in nl) - { - int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - //if (!Old2NewContent.ContainsKey(oldid)) - Old2NewLibDoc.Add(oldid, newid); - } - File.Delete(fn); - ze = MyImpxZipFile["transitions.xml"]; - ze.Extract(PEIPath, ExtractExistingFileAction.OverwriteSilently); - fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Load(fn); - File.Delete(fn); - } - // appears not to be used - jsj 4-28-2016 - //private void AddStoredItemContentIDs(XmlDocument xd) - //{ - // XmlNodeList nl = xd.SelectNodes("//item"); - // foreach (XmlNode nd in nl) - // { - // int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - // int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - // if (!Old2NewItem.ContainsKey(oldid)) - // Old2NewItem.Add(oldid, newid); - // } - // nl = xd.SelectNodes("//content"); - // foreach (XmlNode nd in nl) - // { - // int oldid = int.Parse(nd.Attributes.GetNamedItem("old").InnerText); - // int newid = int.Parse(nd.Attributes.GetNamedItem("new").InnerText); - // if (!Old2NewContent.ContainsKey(oldid)) - // Old2NewContent.Add(oldid, newid); - // } - //} - - // appears not to be used - jsj 4-28-2016 - //private void FixImportDataTransitions() - //{ - // XmlDocument xd = new XmlDocument(); - // string fn = PEIPath + @"\ExternalTransitions.xml"; - // if (!File.Exists(fn)) - // { - // XmlElement xe = xd.CreateElement("externaltransitions"); - // XmlElement xee = xd.CreateElement("oldtonewitem"); - // xe.AppendChild(xee); - // xee = xd.CreateElement("oldtonewcontent"); - // xe.AppendChild(xee); - // xee = xd.CreateElement("transitions"); - // xe.AppendChild(xee); - // xd.AppendChild(xe); - // xd.Save(fn); - // } - // else - // { - // xd.Load(fn); - // } - // FileStream fs = File.OpenRead(txtImport.Text); - // XmlReaderSettings rs = new XmlReaderSettings(); - // rs.CheckCharacters = false; - // XmlReader xr = XmlReader.Create(fs, rs); - // while (xr.Read()) - // { - // if (xr.IsStartElement()) - // { - // switch (xr.Name) - // { - // case "transition": - // AddTransitions(xr); - // break; - // case "externaltransition": - // { - // AddExternalTransition(xr, xd); - // break; - // } - // default: - // break; - // } - // } - // } - // fs.Close(); - // xd.Save(fn); - //} - - // jsj 4-29-2016 appears to not be used - //private Dictionary> MyCounts = null; - //private Dictionary MySubCounts = null; - //private void GetImportDataCounts() - //{ - // int pCount = 0; - // int sCount = 0; - // int tCount = 0; - // MyCounts = new Dictionary>(); - // MySubCounts = new Dictionary(); - // FileStream fs = File.OpenRead(txtImport.Text); - // XmlReaderSettings rs = new XmlReaderSettings(); - // rs.CheckCharacters = false; - // XmlReader xr = XmlReader.Create(fs, rs); - // while (xr.Read()) - // { - // if (xr.IsStartElement()) - // { - // switch (xr.Name) - // { - // case "procedure": - // { - // if (pCount > 0) - // { - // MySubCounts.Add(sCount, tCount); - // MyCounts.Add(pCount, MySubCounts); - // sCount = 0; - // tCount = 0; - // MySubCounts = new Dictionary(); - // } - // pCount++; - // break; - // } - // case "section": - // { - // if (sCount > 0) - // { - // MySubCounts.Add(sCount, tCount); - // tCount = 0; - // } - // sCount++; - // break; - // } - // case "step": - // { - // if (xr.Depth == 8) - // tCount++; - // break; - // } - // default: - // break; - // } - // } - // } - // MySubCounts.Add(sCount, tCount); - // MyCounts.Add(pCount, MySubCounts); - // fs.Close(); - //} - - private void btnImport_Click(object sender, EventArgs e) - { - if (MyFolder != null) - { - if (ofd.ShowDialog(this) == DialogResult.OK) - { - if (ofd.FileName != string.Empty) - { - Old2NewItem = new Dictionary(); - Old2NewContent = new Dictionary(); - Old2NewLibDoc = new Dictionary(); - PendingTransitions = new XmlDocument(); - FileInfo fi = new FileInfo(ofd.FileName); - string dn; - if (fi.Name.IndexOf("-") > 0) - dn = fi.Name.Substring(0, fi.Name.IndexOf("-")); - else - dn = fi.Name.Substring(0,fi.Name.IndexOf(".")); - txtImport.Text = ofd.FileName; - ReadOptions ro = new ReadOptions(); - ro.Encoding = Encoding.UTF8; - MyExpxZipFile = ZipFile.Read(txtImport.Text, ro); - string fn = string.Format(@"{0}\{1}.impx", PEIPath, dn); - if (File.Exists(fn)) - { - MyImpxZipFile = ZipFile.Read(fn, ro); - ReadTransitionAndItemContentIDs(); - } - else - { - MyImpxZipFile = new ZipFile(fn, Encoding.UTF8); - //transitions - XmlElement xe = PendingTransitions.CreateElement("transitions"); - PendingTransitions.AppendChild(xe); - fn = PEIPath + @"\transitions.xml"; - PendingTransitions.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - //itemids - XmlDocument xd = new XmlDocument(); - xe = xd.CreateElement("items"); - xd.AppendChild(xe); - fn = PEIPath + @"\items.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - //contentids - xd = new XmlDocument(); - xe = xd.CreateElement("contents"); - xd.AppendChild(xe); - fn = PEIPath + @"\contents.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - //libdocids - xd = new XmlDocument(); - xe = xd.CreateElement("libdocs"); - xd.AppendChild(xe); - fn = PEIPath + @"\libdocs.xml"; - xd.Save(fn); - MyImpxZipFile.AddFile(fn, ""); - MyImpxZipFile.Save(); - File.Delete(fn); - } - } - } - } - if (MyDocVersion != null) - { - ofd.Filter = "PROMS Procedure Export Files|*.pxml"; - if (ofd.ShowDialog(this) == DialogResult.OK) - txtImport.Text = ofd.FileName; - } - } - private void txtImport_TextChanged(object sender, EventArgs e) - { - btnDoImport.Enabled = txtImport.TextLength > 0; - if (btnDoImport.Enabled) - lblImportStatus.Text = "Ready To Perform Import"; - else - lblImportStatus.Text = "Awaiting Import File Name:"; - } - #region Export for Merge - private string FromFolderName = string.Empty; - private void ExportFolder(XmlDocument xd, FolderInfo fi, string nodename) - { - /* - FolderID - ParentID - DBID - Name - Title - ShortName - FormatID - ManualOrder - Config - DTS - UsrID - */ - lblExportStatus.Text = "Exporting Folder..."; - Application.DoEvents(); - string formatFileName = (fi.MyFormat != null)? fi.MyFormat.Name:""; - FromFolderName = fi.Name; - XmlElement xe = xd.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xd, "folderid", fi.FolderID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "parentid", fi.ParentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "dbid", fi.DBID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "name", fi.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "title", fi.Title)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "shortname", fi.ShortName)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "formatid", fi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "manualorder", fi.ManualOrder.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "config", fi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xd, "dts", fi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xd, "usrid", fi.UsrID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xd, "formatfilename",formatFileName)); - xd.AppendChild(xe); - ExportAnnotationTypes(xe, "annotationtypes"); - ExportFormats(xe, "formats"); - if (fi.FolderDocVersionCount > 0) - foreach (DocVersionInfo dvi in fi.FolderDocVersions) - ExportDocVersion(xe, dvi, "docversion"); - } - private void ExportFormats(XmlElement xn, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - FormatInfoList fil = FormatInfoList.Get(); - foreach (FormatInfo fi in fil) - ExportFormat(xe, fi, "format"); - xn.AppendChild(xe); - } - private void ExportFormat(XmlElement xn, FormatInfo fi, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", fi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", fi.Name)); - xn.AppendChild(xe); - } - private void ExportAnnotationTypes(XmlElement xn, string nodename) - { - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - AnnotationTypeInfoList atl = AnnotationTypeInfoList.Get(); - foreach (AnnotationTypeInfo ati in atl) - ExportAnnotationType(xe, ati, "annotationtype"); - xn.AppendChild(xe); - } - private void ExportAnnotationType(XmlElement xn, AnnotationTypeInfo ati, string nodename) - { - /* - TypeID - Name - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typeid", ati.TypeID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", ati.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ati.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ati.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ati.UserID.ToString())); - xn.AppendChild(xe); - } - - // jsj 4-29-2016 appears to not be used - //private void ExportFolder(FolderInfo fi, string nodename) - //{ - // /* - // FolderID - // ParentID - // DBID - // Name - // Title - // ShortName - // FormatID - // ManualOrder - // Config - // DTS - // UsrID - // */ - // string formatFileName = (fi.MyFormat != null) ? fi.MyFormat.Name : ""; - // FromFolderName = fi.Name; - // MyWriter.WriteStartDocument(); - // MyWriter.WriteStartElement(nodename); - // MyWriter.WriteAttributeString("folderid", fi.FolderID.ToString()); - // MyWriter.WriteAttributeString("parentid", fi.ParentID.ToString()); - // MyWriter.WriteAttributeString("dbid", fi.DBID.ToString()); - // MyWriter.WriteAttributeString("name", fi.Name); - // MyWriter.WriteAttributeString("title", fi.Title); - // MyWriter.WriteAttributeString("shortname", fi.ShortName); - // MyWriter.WriteAttributeString("formatid", fi.FormatID.ToString()); - // MyWriter.WriteAttributeString("manualorder", fi.ManualOrder.ToString()); - // MyWriter.WriteAttributeString("config", fi.Config); - // MyWriter.WriteAttributeString("dts", fi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - // MyWriter.WriteAttributeString("usrid", fi.UsrID.ToString()); - // MyWriter.WriteAttributeString("formatfilename", formatFileName); - - // if (fi.FolderDocVersionCount > 0) - // foreach (DocVersionInfo dvi in fi.FolderDocVersions) - // ExportDocVersion(dvi, "docversion"); - // MyWriter.WriteEndElement(); - // MyWriter.WriteEndDocument(); - //} - private void ExportDocVersion(XmlElement xn, DocVersionInfo dvi, string nodename) - { - /* - VersionID - FolderID - VersionType - Name - Title - ItemID - FormatID - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting DocVersion..."; - Application.DoEvents(); - string formatFileName = (dvi.MyFormat != null) ? dvi.MyFormat.Name : ""; - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versionid", dvi.VersionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "folderid", dvi.FolderID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versiontype", dvi.VersionType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "name", dvi.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "title", dvi.Title)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", dvi.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", dvi.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", dvi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", dvi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", dvi.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatfilename", formatFileName)); - xn.AppendChild(xe); - if (dvi.DocVersionAssociationCount > 0) - foreach (AssociationInfo ai in dvi.DocVersionAssociations) - ExportAssociation(xe, ai, "association"); - string fn = PEIPath + @"\folder.xml"; - xn.OwnerDocument.Save(fn); - MyExpxZipFile.AddFile(fn, "folder"); - MyExpxZipFile.Save(); - File.Delete(fn); - //here - lblExportStatus.Text = "Exporting Procedures..."; - Application.DoEvents(); - if (dvi.Procedures.Count > 0) - { - pbExportProcedure.Value = 0; - pbExportProcedure.Maximum = dvi.Procedures.Count; - lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures"; - foreach (ItemInfo ii in dvi.Procedures) - { - XmlDocument xd = new XmlDocument(); - ExportItem(xd, ii, "procedure"); - fn = string.Format(@"{0}\proc{1}.xml", PEIPath, pbExportProcedure.Value.ToString().PadLeft(4, '0')); - xd.Save(fn); - MyExpxZipFile.AddFile(fn, "procedures"); - MyExpxZipFile.Save(); - File.Delete(fn); - xd = null; - } - } - } - private void ExportDocVersion(DocVersionInfo dvi, string nodename) - { - /* - VersionID - FolderID - VersionType - Name - Title - ItemID - FormatID - Config - DTS - UserID - */ - string formatFileName = (dvi.MyFormat != null) ? dvi.MyFormat.Name : ""; - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("versionid", dvi.VersionID.ToString()); - MyWriter.WriteAttributeString("folderid", dvi.FolderID.ToString()); - MyWriter.WriteAttributeString("versiontype", dvi.VersionType.ToString()); - MyWriter.WriteAttributeString("name", dvi.Name); - MyWriter.WriteAttributeString("title", dvi.Title); - MyWriter.WriteAttributeString("itemid", dvi.ItemID.ToString()); - MyWriter.WriteAttributeString("formatid", dvi.FormatID.ToString()); - MyWriter.WriteAttributeString("config", dvi.Config); - MyWriter.WriteAttributeString("dts", dvi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", dvi.UserID.ToString()); - MyWriter.WriteAttributeString("formatfilename", formatFileName); - if (dvi.DocVersionAssociationCount > 0) - foreach (AssociationInfo ai in dvi.DocVersionAssociations) - ExportAssociation(ai, "association"); - if (dvi.Procedures.Count > 0) - { - pbExportProcedure.Value = 0; - pbExportProcedure.Maximum = dvi.Procedures.Count; - lblExportProcedure.Text = pbExportProcedure.Maximum.ToString() + " Procedures"; - foreach (ItemInfo ii in dvi.Procedures) - { - ExportItem(ii, "procedure"); - } - } - MyWriter.WriteEndElement(); - } - private void ExportAssociation(XmlElement xn, AssociationInfo ai, string nodename) - { - /* - AssociationID - VersionID - ROFstID - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting Association..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "associationid", ai.AssociationID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "versionid", ai.VersionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstid", ai.ROFstID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ai.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ai.UserID.ToString())); - xn.AppendChild(xe); - ExportROFst(xe, ai.MyROFst, "rofst"); - } - private void ExportAssociation(AssociationInfo ai, string nodename) - { - /* - AssociationID - VersionID - ROFstID - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("associationid", ai.AssociationID.ToString()); - MyWriter.WriteAttributeString("versionid", ai.VersionID.ToString()); - MyWriter.WriteAttributeString("rofstid", ai.ROFstID.ToString()); - MyWriter.WriteAttributeString("config", ai.Config); - MyWriter.WriteAttributeString("dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ai.UserID.ToString()); - ExportROFst(ai.MyROFst, "rofst"); - MyWriter.WriteEndElement(); - } - private void ExportROFst(XmlElement xn, ROFstInfo fst, string nodename) - { - /* - ROFstID - RODbID - ROLookup - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting ROFst..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstid", fst.ROFstID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", fst.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rolookup", Convert.ToBase64String(fst.ROLookup))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", fst.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", fst.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", fst.UserID.ToString())); - xn.AppendChild(xe); - ExportFigures(xe, fst); - ExportRODb(xe, fst.MyRODb, "rodb"); - } - private void ExportROFst(ROFstInfo fst, string nodename) - { - /* - ROFstID - RODbID - ROLookup - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rofstid", fst.ROFstID.ToString()); - MyWriter.WriteAttributeString("rodbid", fst.RODbID.ToString()); - MyWriter.WriteAttributeString("rolookup", Convert.ToBase64String(fst.ROLookup)); - MyWriter.WriteAttributeString("config", fst.Config); - MyWriter.WriteAttributeString("dts", fst.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", fst.UserID.ToString()); - ExportRODb(fst.MyRODb, "rodb"); - MyWriter.WriteEndElement(); - } - private void ExportFigures(XmlElement xn, ROFstInfo fst) - { - if (fst.ROFstFigureCount > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("figures"); - xn.AppendChild(xe); - foreach (FigureInfo figure in fst.ROFstFigures) - { - XmlElement xee = xn.OwnerDocument.CreateElement("figure"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "figureid", figure.FigureID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "rofstid", figure.ROFstID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "imageid", figure.ImageID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "config", figure.Config)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", figure.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", figure.UserID)); - xe.AppendChild(xee); - ExportROImage(xee, figure.MyROImage); - } - } - } - private void ExportROImage(XmlElement xn, ROImageInfo image) - { - XmlElement xe = xn.OwnerDocument.CreateElement("image"); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "imageid", image.ImageID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", image.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "filename", image.FileName)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "content", Convert.ToBase64String(image.Content))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", image.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", image.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", image.UserID)); - xn.AppendChild(xe); - } - private void ExportRODb(XmlElement xn, RODbInfo db, string nodename) - { - /* - RODbID - ROName - FolderPath - DBConnectionString - Config - DTS - UserID - */ - lblExportStatus.Text = "Exporting RODb..."; - Application.DoEvents(); - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", db.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "roname", db.ROName)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "folderpath", db.FolderPath)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dbconnectionstring", db.DBConnectionString)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", db.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", db.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", db.UserID.ToString())); - xn.AppendChild(xe); - } - private void ExportRODb(RODbInfo db, string nodename) - { - /* - RODbID - ROName - FolderPath - DBConnectionString - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rodbid", db.RODbID.ToString()); - MyWriter.WriteAttributeString("roname", db.ROName); - MyWriter.WriteAttributeString("folderpath", db.FolderPath); - MyWriter.WriteAttributeString("dbconnectionstring", db.DBConnectionString); - MyWriter.WriteAttributeString("config", db.Config); - MyWriter.WriteAttributeString("dts", db.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", db.UserID.ToString()); - MyWriter.WriteEndElement(); - } - public void ExportItem(XmlDocument xd, ItemInfo ii, string nodename) - { - XmlElement xe = xd.CreateElement(nodename); - if (ii.IsProcedure) - { - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", ii.MyDocVersion.DocVersionAssociations[0].MyROFst.MyRODb.RODbID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofolderpath", ii.MyDocVersion.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstid", ii.MyDocVersion.DocVersionAssociations[0].MyROFst.ROFstID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rofstdts", ii.MyDocVersion.DocVersionAssociations[0].MyROFst.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - } - xd.AppendChild(xe); - ExportItem(xe, ii, nodename); - } - private void ExportItem(XmlElement xn, ItemInfo ii, string nodename) - { - /* - ItemID - PreviousID - ContentID - DTS - */ - XmlElement xe = null; - if (xn.Name == "procedure") - xe = xn; - else - { - xe = xn.OwnerDocument.CreateElement(nodename); - xn.AppendChild(xe); - } - if (ii.IsProcedure) - { - pbExportProcedure.PerformStep(); - lblExportProcedure.Text = string.Format("{0} of {1} Procedures", pbExportProcedure.Value.ToString(), pbExportProcedure.Maximum.ToString()); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblExportTime.Text = "Elapsed Time: " + elapsed.ToString(); - Application.DoEvents(); - pbExportSection.Value = 0; - pbExportSection.Maximum = pbExportSection.Value; - pbExportStep.Value = 0; - pbExportStep.Maximum = pbExportStep.Value; - if(ii.Sections != null) - pbExportSection.Maximum = ii.Sections.Count; - else - { - pbExportSection.Maximum = 1; - pbExportSection.PerformStep(); - pbExportStep.Maximum = 1; - pbExportStep.PerformStep(); - lblExportSection.Text = "Sections"; - lblExportStep.Text = "Steps"; - Application.DoEvents(); - } - } - if (ii.IsSection && ii.ActiveParent.IsProcedure) - { - pbExportSection.PerformStep(); - lblExportSection.Text = string.Format("{0} of {1} Sections", pbExportSection.Value.ToString(), pbExportSection.Maximum.ToString()); - Application.DoEvents(); - pbExportStep.Value = 0; - pbExportStep.Maximum = pbExportStep.Value; - if (ii.Steps != null) - pbExportStep.Maximum = ii.Steps.Count; - else - { - pbExportStep.Maximum = 1; - pbExportStep.PerformStep(); - lblExportStep.Text = "Word Section Data"; - Application.DoEvents(); - } - } - if (ii.IsStep && ii.ActiveParent.IsSection && ii.ActiveParent.ActiveParent.IsProcedure) - { - pbExportStep.PerformStep(); - lblExportStep.Text = string.Format("{0} of {1} Steps", pbExportStep.Value.ToString(), pbExportStep.Maximum.ToString()); - Application.DoEvents(); - } - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", ii.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "previousid", ii.PreviousID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ii.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ii.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - //item audits - ExportItemAudits(xe, ii); - ExportContent(xe, ii.MyContent, "content"); - if (ii.ItemAnnotationCount > 0) - foreach (AnnotationInfo ai in ii.ItemAnnotations) - ExportAnnotation(xe, ai, "annotation"); - } - private void ExportItemAudits(XmlElement xn, ItemInfo ii) - { - if (cbxExportAudits.Checked) - { - ItemAuditInfoList audits = ItemAuditInfoList.Get(ii.ItemID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (ItemAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentid", audit.ContentID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "itemid", audit.ItemID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "previousid", audit.PreviousID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xe.AppendChild(xee); - } - } - xn.AppendChild(xe); - } - } - } - // used to save word sections with resolved ROs (export generated from Approve) - private Dictionary _DocReplace; - public Dictionary DocReplace - { - get { return _DocReplace; } - set - { - _DocReplace = value; - _ConvertROsAndTransitionsToText = (value != null); - } - } - private void ExportItem(ItemInfo ii, string nodename) - { - /* - ItemID - PreviousID - ContentID - DTS - */ - if (ii.IsProcedure) - { - pbExportProcedure.PerformStep(); - lblExportProcedure.Text = string.Format("{0} of {1} Procedures", pbExportProcedure.Value.ToString(), pbExportProcedure.Maximum.ToString()); - Application.DoEvents(); - pbExportSection.Value = 0; - pbExportStep.Value = 0; - pbExportSection.Maximum = ii.Sections.Count; - if (ii.Sections != null) - pbExportSection.Maximum = ii.Sections.Count; - else - { - pbExportSection.Maximum = 1; - pbExportSection.PerformStep(); - pbExportStep.Maximum = 1; - pbExportStep.PerformStep(); - lblExportSection.Text = "Sections"; - lblExportStep.Text = "Steps"; - Application.DoEvents(); - } - } - if (ii.IsSection) - { - pbExportSection.PerformStep(); - lblExportSection.Text = string.Format("{0} of {1} Sections", pbExportSection.Value.ToString(), pbExportSection.Maximum.ToString()); - Application.DoEvents(); - pbExportStep.Value = 0; - if (ii.Steps != null) - pbExportStep.Maximum = ii.Steps.Count; - else - { - pbExportStep.Maximum = 1; - pbExportStep.PerformStep(); - lblExportStep.Text = "Word Section Data"; - Application.DoEvents(); - } - } - if (ii.IsStep) - { - pbExportStep.PerformStep(); - lblExportStep.Text = string.Format("{0} of {1} Steps", pbExportStep.Value.ToString(), pbExportStep.Maximum.ToString()); - Application.DoEvents(); - } - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("itemid", ii.ItemID.ToString()); - MyWriter.WriteAttributeString("previousid", ii.PreviousID.ToString()); - MyWriter.WriteAttributeString("contentid", ii.ContentID.ToString()); - MyWriter.WriteAttributeString("dts", ii.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - ExportContent(ii.MyContent, "content"); - if (ii.ItemAnnotationCount > 0) - foreach (AnnotationInfo ai in ii.ItemAnnotations) - ExportAnnotation(ai, "annotation"); - MyWriter.WriteEndElement(); - } - private void ExportContent(XmlElement xn, ContentInfo ci, string nodename) - { - /* - ContentID - Number - Text - Type - FormatID - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - // strip the link information if we are convertingthe RO and Transitions to text - string ciText = (_ConvertROsAndTransitionsToText)?ItemInfo.StripLinks(ci.Text):ci.Text; - string formatFileName = (ci.MyFormat != null) ? ci.MyFormat.Name : ""; - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ci.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "number", ci.Number)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "text", ciText)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "type", ci.Type.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatid", ci.FormatID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ci.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ci.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ci.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "formatfilename", formatFileName)); - //content audits - ExportContentAudits(xe, ci); - xn.AppendChild(xe); - if (ci.ContentTransitionCount > 0) - foreach (TransitionInfo ti in ci.ContentTransitions) - ExportTransition(xe, ti, "transition"); - if (ci.ContentRoUsageCount > 0) - foreach (RoUsageInfo ri in ci.ContentRoUsages) - ExportROUsage(xe, ri, "rousage"); - if (ci.ContentEntryCount > 0) - ExportEntry(xe, ci.MyEntry, "entry"); - if (ci.ContentGridCount > 0) - ExportGrid(xe, ci.MyGrid, "grid"); - if (ci.ContentPartCount > 0) - foreach (PartInfo pi in ci.ContentParts) - ExportPart(xe, pi, ((E_FromTypes)pi.FromType).ToString().ToLower()); - } - private void ExportContentAudits(XmlElement xn, ContentInfo ci) - { - if (cbxExportAudits.Checked) - { - ContentAuditInfoList audits = ContentAuditInfoList.Get(ci.ContentID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (ContentAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentid", audit.ContentID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "number", audit.Number)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "text", audit.Text)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "type", audit.Type.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "formatid", audit.FormatID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "config", audit.Config)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "actiondts", audit.ActionWhen.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.AppendChild(xee); - } - } - } - } - } - private void ExportContent(ContentInfo ci, string nodename) - { - /* - ContentID - Number - Text - Type - FormatID - Config - DTS - UserID - */ - // strip the link information if we are convertinga the ROs and Transitions to text - string ciText = (_ConvertROsAndTransitionsToText) ? ItemInfo.StripLinks(ci.Text) : ci.Text; - string formatFileName = (ci.MyFormat != null) ? ci.MyFormat.Name : ""; - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", ci.ContentID.ToString()); - MyWriter.WriteAttributeString("number", ci.Number); - MyWriter.WriteAttributeString("text", ciText); - MyWriter.WriteAttributeString("type", ci.Type.ToString()); - MyWriter.WriteAttributeString("formatid", ci.FormatID.ToString()); - MyWriter.WriteAttributeString("config", ci.Config); - MyWriter.WriteAttributeString("dts", ci.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ci.UserID.ToString()); - MyWriter.WriteAttributeString("formatfilename", formatFileName); - if (ci.ContentTransitionCount > 0) - foreach (TransitionInfo ti in ci.ContentTransitions) - ExportTransition(ti, "transition"); - if (ci.ContentRoUsageCount > 0) - foreach (RoUsageInfo ri in ci.ContentRoUsages) - ExportROUsage(ri, "rousage"); - if (ci.ContentEntryCount > 0) - ExportEntry(ci.MyEntry, "entry"); - if (ci.ContentGridCount > 0) - ExportGrid(ci.MyGrid, "grid"); - if (ci.ContentPartCount > 0) - foreach (PartInfo pi in ci.ContentParts) - ExportPart(pi, ((E_FromTypes)pi.FromType).ToString().ToLower()); - MyWriter.WriteEndElement(); - } - private void ExportGrid(XmlElement xn, GridInfo gi, string nodename) - { - /* - ContentID - Data - Config - DTS - UserID - */ - string giData = gi.Data; - if (_ConvertROsAndTransitionsToText) - { - giData = giData.Replace("True", "False"); // converts a RO table to a unlinked regular table - giData = ItemInfo.StripLinks(giData); // this converts ROs and transitions to text - } - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", gi.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "data", giData)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", gi.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", gi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", gi.UserID.ToString())); - //grid audits - ExportGridAudits(xe, gi); - xn.AppendChild(xe); - } - private void ExportGridAudits(XmlElement xn, GridInfo gi) - { - if (cbxExportAudits.Checked) - { - GridAuditInfoList audits = GridAuditInfoList.Get(gi.ContentID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (GridAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentid", audit.ContentID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "data", audit.Data)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "config", audit.Config)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentauditid", audit.ContentAuditID.ToString())); - xe.AppendChild(xee); - - } - } - } - } - } - private void ExportGrid(GridInfo gi, string nodename) - { - /* - ContentID - Data - Config - DTS - UserID - */ - string giData = gi.Data; - if (_ConvertROsAndTransitionsToText) - { - giData = giData.Replace("IsRoTable>True", "IsRoTable>False"); // converts a RO table to regular table - giData = ItemInfo.StripLinks(giData); // converts ROs and Transitions to text - } - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", gi.ContentID.ToString()); - MyWriter.WriteAttributeString("data", giData); - MyWriter.WriteAttributeString("config", gi.Config); - MyWriter.WriteAttributeString("dts", gi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", gi.UserID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportEntry(XmlElement xn, EntryInfo ei, string nodename) - { - /* - ContentID - DocID - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ei.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docid", ei.DocID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ei.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ei.UserID.ToString())); - //entry audits - ExportEntryAudits(xe, ei); - xn.AppendChild(xe); - ExportDocument(xe, ei.MyDocument, "document"); - } - private void ExportEntryAudits(XmlElement xn, EntryInfo ei) - { - if (cbxExportAudits.Checked) - { - EntryAuditInfoList audits = EntryAuditInfoList.Get(ei.ContentID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (EntryAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentid", audit.ContentID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "docid", audit.DocID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xe.AppendChild(xee); - } - } - } - } - } - private void ExportEntry(EntryInfo ei, string nodename) - { - /* - ContentID - DocID - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", ei.ContentID.ToString()); - MyWriter.WriteAttributeString("docid", ei.DocID.ToString()); - MyWriter.WriteAttributeString("dts", ei.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ei.UserID.ToString()); - ExportDocument(ei.MyDocument, "document"); - MyWriter.WriteEndElement(); - } - private void ExportDocument(XmlElement xn, DocumentInfo di, string nodename) - { - /* - DocID - LibTitle - DocContent - DocAscii - Config - DTS - UserID - FileExtension - */ - byte[] buf = di.DocContent; - string libDocTitle = di.LibTitle; - if (DocReplace != null && DocReplace.ContainsKey(di.DocID) && _ConvertROsAndTransitionsToText) - { - buf = DocReplace[di.DocID]; - libDocTitle = null; // unlink the word section from the library document - } - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docid", di.DocID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "libtitle", libDocTitle)); // di.LibTitle)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "doccontent", Convert.ToBase64String(buf))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "docascii", di.DocAscii)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", di.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", di.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", di.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fileextension", di.FileExtension)); - //document audits - ExportDocumentAudits(xe, di); - xn.AppendChild(xe); - } - private void ExportDocumentAudits(XmlElement xn, DocumentInfo di) - { - if (cbxExportAudits.Checked) - { - DocumentAuditInfoList audits = DocumentAuditInfoList.Get(di.DocID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (DocumentAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "docid", audit.DocID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "libtitle", audit.LibTitle)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "doccontent",Convert.ToBase64String(audit.DocContent))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "docascii", audit.DocAscii)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "config", audit.Config)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "fileextension", audit.FileExtension)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xe.AppendChild(xee); - } - } - } - } - } - private void ExportDocument(DocumentInfo di, string nodename) - { - /* - DocID - LibTitle - DocContent - DocAscii - Config - DTS - UserID - FileExtension - */ - byte[] buf = di.DocContent; - string libDocTitle = di.LibTitle; - if (DocReplace != null && DocReplace.ContainsKey(di.DocID) && _ConvertROsAndTransitionsToText) - { - buf = DocReplace[di.DocID]; - libDocTitle = null; // unlink the word section from the library document - } - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("docid", di.DocID.ToString()); - MyWriter.WriteAttributeString("libtitle", libDocTitle);// di.LibTitle); - MyWriter.WriteAttributeString("doccontent", Convert.ToBase64String(buf)); - MyWriter.WriteAttributeString("docascii", di.DocAscii); - MyWriter.WriteAttributeString("config", di.Config); - MyWriter.WriteAttributeString("dts", di.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", di.UserID.ToString()); - MyWriter.WriteAttributeString("fileextension", di.FileExtension); - MyWriter.WriteEndElement(); - } - private void ExportROUsage(XmlElement xn, RoUsageInfo ri, string nodename) - { - /* - ROUsageID - ContentID - ROID - Config - DTS - UserID - RODbID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rousageid", ri.ROUsageID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", ri.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "roid", ri.ROID)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ri.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ri.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ri.UserID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rodbid", ri.RODbID.ToString())); - //rousage audits - ExportROUsageAudits(xe, ri); - xn.AppendChild(xe); - } - private void ExportROUsageAudits(XmlElement xe, RoUsageInfo ri) - { - if (cbxExportAudits.Checked) - { - } - } - private void ExportROUsage(RoUsageInfo ri, string nodename) - { - /* - ROUsageID - ContentID - ROID - Config - DTS - UserID - RODbID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("rousageid", ri.ROUsageID.ToString()); - MyWriter.WriteAttributeString("contentid", ri.ContentID.ToString()); - MyWriter.WriteAttributeString("roid", ri.ROID); - MyWriter.WriteAttributeString("config", ri.Config); - MyWriter.WriteAttributeString("dts", ri.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ri.UserID.ToString()); - MyWriter.WriteAttributeString("rodbid", ri.RODbID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportPart(XmlElement xn, PartInfo pi, string nodename) - { - /* - ContentID - FromType - ItemID - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "contentid", pi.ContentID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fromtype", pi.FromType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", pi.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", pi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", pi.UserID.ToString())); - //part audits - ExportPartAudits(xe, pi); - xn.AppendChild(xe); - foreach (ItemInfo ii in pi.MyItems) - ExportItem(xe, ii, pi.PartType.ToString().ToLower()); - } - private void ExportPartAudits(XmlElement xn, PartInfo pi) - { - if (cbxExportAudits.Checked) - { - PartAuditInfoList audits = PartAuditInfoList.Get(pi.ContentID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (PartAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "contentid", audit.ContentID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "fromtype", audit.FromType.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "itemid", audit.ItemID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xe.AppendChild(xee); - } - } - } - } - } - private void ExportPart(PartInfo pi, string nodename) - { - /* - ContentID - FromType - ItemID - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("contentid", pi.ContentID.ToString()); - MyWriter.WriteAttributeString("fromtype", pi.FromType.ToString()); - MyWriter.WriteAttributeString("itemid", pi.ItemID.ToString()); - MyWriter.WriteAttributeString("dts", pi.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", pi.UserID.ToString()); - foreach (ItemInfo ii in pi.MyItems) - ExportItem(ii, pi.PartType.ToString().ToLower()); - MyWriter.WriteEndElement(); - } - private void ExportTransition(XmlElement xn, TransitionInfo ti, string nodename) - { - /* - TransitionID - FromID - ToID - RangeID - IsRange - TranType - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "transitionid", ti.TransitionID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "fromid", ti.FromID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "toid", ti.ToID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rangeid", ti.RangeID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "isrange", ti.IsRange.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "trantype", ti.TranType.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ti.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ti.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ti.UserID.ToString())); - //transition audits - ExportTransitionAudits(xe, ti); - xn.AppendChild(xe); - } - private void ExportTransitionAudits(XmlElement xe, TransitionInfo ti) - { - if (cbxExportAudits.Checked) - { - } - } - private void ExportTransition(TransitionInfo ti, string nodename) - { - /* - TransitionID - FromID - ToID - RangeID - IsRange - TranType - Config - DTS - UserID - */ - string folder = string.Empty; - if (ti.MyItemToID.MyDocVersion != null && ti.MyItemToID.MyDocVersion.MyFolder.Name != MyFolder.Name) - { - nodename = "external" + nodename; - folder = ti.MyItemToID.MyDocVersion.MyFolder.Name; - } - else - { - nodename = "external" + nodename; - folder = "UNKNOWN"; - } - MyWriter.WriteStartElement(nodename); - if (folder != string.Empty) - MyWriter.WriteAttributeString("folder", folder); - MyWriter.WriteAttributeString("transitionid", ti.TransitionID.ToString()); - MyWriter.WriteAttributeString("fromid", ti.FromID.ToString()); - MyWriter.WriteAttributeString("toid", ti.ToID.ToString()); - MyWriter.WriteAttributeString("rangeid", ti.RangeID.ToString()); - MyWriter.WriteAttributeString("isrange", ti.IsRange.ToString()); - MyWriter.WriteAttributeString("trantype", ti.TranType.ToString()); - MyWriter.WriteAttributeString("config", ti.Config); - MyWriter.WriteAttributeString("dts", ti.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ti.UserID.ToString()); - MyWriter.WriteEndElement(); - } - private void ExportAnnotation(XmlElement xn, AnnotationInfo ai, string nodename) - { - /* - AnnotationID - ItemID - TypeID - RtfText - SearchText - Config - DTS - UserID - */ - XmlElement xe = xn.OwnerDocument.CreateElement(nodename); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "annotationid", ai.AnnotationID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "itemid", ai.ItemID.ToString())); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typeid", ai.TypeID.ToString())); - //if(ai.TypeID > 6) - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "typename", ai.MyAnnotationType.Name)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "rtftext", ai.RtfText)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "searchtext", ai.SearchText)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "config", ai.Config)); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.Attributes.SetNamedItem(AddAttribute(xe.OwnerDocument, "userid", ai.UserID.ToString())); - //annotation audits - ExportAnnotationAudits(xe, ai); - xn.AppendChild(xe); - } - private void ExportAnnotationAudits(XmlElement xn, AnnotationInfo ai) - { - if (cbxExportAudits.Checked) - { - AnnotationAuditInfoList audits = AnnotationAuditInfoList.GetByAnnotationID(ai.AnnotationID); - if (audits.Count > 0) - { - XmlElement xe = xn.OwnerDocument.CreateElement("audits"); - foreach (AnnotationAuditInfo audit in audits) - { - if (audit.DeleteStatus == 0) - { - XmlElement xee = xn.OwnerDocument.CreateElement("audit"); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "auditid", audit.AuditID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "annotationid", audit.AnnotationID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "itemid", audit.ItemID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "typeid", audit.TypeID.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "rtftext", audit.RtfText)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "searchtext", audit.SearchText)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "config", audit.Config)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "deletestatus", audit.DeleteStatus.ToString())); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "dts", audit.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "userid", audit.UserID)); - xee.Attributes.SetNamedItem(AddAttribute(xee.OwnerDocument, "actiondts", audit.ActionWhen.ToString("MM/dd/yyyy HH:mm:ss.fff"))); - xe.AppendChild(xee); - } - } - xn.AppendChild(xe); - } - } - } - private void ExportAnnotation(AnnotationInfo ai, string nodename) - { - /* - AnnotationID - ItemID - TypeID - RtfText - SearchText - Config - DTS - UserID - */ - MyWriter.WriteStartElement(nodename); - MyWriter.WriteAttributeString("annotationid", ai.AnnotationID.ToString()); - MyWriter.WriteAttributeString("itemid", ai.ItemID.ToString()); - MyWriter.WriteAttributeString("typeid", ai.TypeID.ToString()); - MyWriter.WriteAttributeString("rtftext", ai.RtfText); - MyWriter.WriteAttributeString("searchtext", ai.SearchText); - MyWriter.WriteAttributeString("config", ai.Config); - MyWriter.WriteAttributeString("dts", ai.DTS.ToString("MM/dd/yyyy HH:mm:ss.fff")); - MyWriter.WriteAttributeString("userid", ai.UserID.ToString()); - MyWriter.WriteEndElement(); - } - #endregion - #region Import for Merge - - // jsj 4-29-2016 appears to not be used - //private void AddExternalTransition(XmlReader xr, XmlDocument xd) - //{ - // XmlElement xe = xd.CreateElement("transition"); - // XmlAttribute xa = AddAttribute(xd, "folder", xr.GetAttribute("folder")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "transitionid", xr.GetAttribute("transitionid")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "fromid", xr.GetAttribute("fromid")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "toid", xr.GetAttribute("toid")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "rangeid", xr.GetAttribute("rangeid")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "isrange", xr.GetAttribute("isrange")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "trantype", xr.GetAttribute("trantype")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "config", xr.GetAttribute("config")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "userid", xr.GetAttribute("userid")); - // xe.Attributes.SetNamedItem(xa); - // xa = AddAttribute(xd, "dts", xr.GetAttribute("dts")); - // xe.Attributes.SetNamedItem(xa); - // xd.SelectSingleNode("externaltransitions/transitions").AppendChild(xe); - //} - - // jsj 4-29-2016 appears to not be used - //private void AddTransitions(XmlReader xr) - //{ - // int transitionid = int.Parse(xr.GetAttribute("transitionid")); - // int fromid = int.Parse(xr.GetAttribute("fromid")); - // int toid = int.Parse(xr.GetAttribute("toid")); - // int rangeid = int.Parse(xr.GetAttribute("rangeid")); - // int isrange = int.Parse(xr.GetAttribute("isrange")); - // int trantype = int.Parse(xr.GetAttribute("trantype")); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // string lookfor; - // if (isrange == 0) - // lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - // else - // lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - // fromid = Old2NewContent[fromid]; - // toid = Old2NewItem[toid]; - // rangeid = Old2NewItem[rangeid]; - // Content cc = Content.Get(fromid); - // Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - // transitionid = tt.TransitionID; - // string replacewith; - // if (isrange == 0) - // replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - // else - // replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - // cc.Text = cc.Text.Replace(lookfor, replacewith); - // cc.Save(); - //} - - private void AddTransitions(Content content, XmlNode xn) - { - /* - Content - Item - Item - int - int - string - dts - string - - - #Link:Transition:1 2 187 - type,id,toid - - #Link:TransitionRange:2 1 175 177 - type,id,toid,rangeid - */ - XmlNodeList nl = xn.SelectNodes("./transition"); - foreach (XmlNode nd in nl) - { - int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - if (Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) - { - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - //fromid = content.ContentID; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Transition tt = Transition.MakeTransition(content, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - content.Text = content.Text.Replace(lookfor, replacewith); - content.FixTransitionText(TransitionInfo.Get(tt.TransitionID)); - content.Save(); - } - else - { - PendingTransitions.DocumentElement.AppendChild(PendingTransitions.ImportNode(nd, true)); - //save to holding pen - } - } - } - private void AddTransitions() - { - AddTransitions(PendingTransitions); - } - private void AddTransitions(XmlDocument xd) - { - /* - Content - Item - Item - int - int - string - dts - string - - - #Link:Transition:1 2 187 - type,id,toid - - #Link:TransitionRange:2 1 175 177 - type,id,toid,rangeid - */ - XmlNodeList nl = xd.SelectNodes("//transition"); - lblImportStatus.Text = string.Format("Updating {0} Tranistions", nl.Count.ToString()); - int cnt = 0; - foreach (XmlNode nd in nl) - { - int fromid = int.Parse(nd.Attributes.GetNamedItem("fromid").InnerText); - int toid = int.Parse(nd.Attributes.GetNamedItem("toid").InnerText); - int rangeid = int.Parse(nd.Attributes.GetNamedItem("rangeid").InnerText); - int trantype = int.Parse(nd.Attributes.GetNamedItem("trantype").InnerText); - { - if (Old2NewItem.ContainsKey(toid) && Old2NewItem.ContainsKey(rangeid)) //transition to new itemid (internal) - { - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - fromid = Old2NewContent[fromid]; - toid = Old2NewItem[toid]; - rangeid = Old2NewItem[rangeid]; - Content cc = Content.Get(fromid); - Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - cc.Text = cc.Text.Replace(lookfor, replacewith); - bool forceConvertToText = false; - if (TransitionInfo.Get(tt.TransitionID).MyItemToID.ActiveSection != null) - { - SectionConfig sc = TransitionInfo.Get(tt.TransitionID).MyItemToID.ActiveSection.MyConfig as SectionConfig; - forceConvertToText = (sc.SubSection_Edit == "N"); - } - cc.FixTransitionText(TransitionInfo.Get(tt.TransitionID), forceConvertToText); - cc.Save(); - nd.InnerText = "done"; - } - else //transition to existing itemid (external) - { - bool forceConvertToText = false; - int transitionid = int.Parse(nd.Attributes.GetNamedItem("transitionid").InnerText); - int isrange = int.Parse(nd.Attributes.GetNamedItem("isrange").InnerText); - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - string lookfor; - if (isrange == 0) - lookfor = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - lookfor = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - fromid = Old2NewContent[fromid]; - //toid = Old2NewItem[toid]; - //rangeid = Old2NewItem[rangeid]; - Content cc = Content.Get(fromid); - Transition tt = Transition.MakeTransition(cc, Item.Get(toid), Item.Get(rangeid), isrange, trantype, config, dts, userid); - if (tt.TransitionID < 0) - { - forceConvertToText = true; - cc.FixTransitionText(TransitionInfo.Get(tt.TransitionID), forceConvertToText); - cc.Save(); - nd.InnerText = "done"; - } - else - { - transitionid = tt.TransitionID; - string replacewith; - if (isrange == 0) - replacewith = string.Format("#Link:Transition:{0} {1} {2}", trantype, transitionid, toid); - else - replacewith = string.Format("#Link:TransitionRange:{0} {1} {2} {3}", trantype, transitionid, toid, rangeid); - cc.Text = cc.Text.Replace(lookfor, replacewith); - if (TransitionInfo.Get(tt.TransitionID).MyItemToID.ActiveSection != null) - { - SectionConfig sc = TransitionInfo.Get(tt.TransitionID).MyItemToID.ActiveSection.MyConfig as SectionConfig; - forceConvertToText = (sc.SubSection_Edit == "N"); - } - if (!forceConvertToText) //check to see if external with internal format - { - TransitionInfo tran = TransitionInfo.Get(transitionid); - if (tran.MyContent.ContentItems[0].MyProcedure.ItemID != tran.MyItemToID.MyProcedure.ItemID) - if (!tran.MyContent.ContentItems[0].ActiveFormat.PlantFormat.FormatData.TransData.TransTypeList[tran.TranType].TransMenu.Contains("Proc")) - forceConvertToText = true; - } - if (!forceConvertToText) //check to see if external to different doc version - { - TransitionInfo tran = TransitionInfo.Get(transitionid); - if (tran.MyContent.ContentItems[0].MyDocVersion.VersionID != tran.MyItemToID.MyDocVersion.VersionID) - forceConvertToText = true; - } - cc.FixTransitionText(TransitionInfo.Get(tt.TransitionID), forceConvertToText); - cc.Save(); - nd.InnerText = "done"; - } - } - } - } - } - - private Dictionary Old2NewItem; - private Dictionary Old2NewContent; - private Dictionary Old2NewLibDoc; - private XmlDocument PendingTransitions; - private RODb MyRODb = null; - - // jsj 4-29-2016 appears to not be used - //private Folder AddFolder(Folder folder, XmlReader xr) - //{ - // Old2NewItem = new Dictionary(); - // Old2NewContent = new Dictionary(); - // Old2NewLibDoc = new Dictionary(); - // string title = xr.GetAttribute("title"); - // string name = xr.GetAttribute("name"); - // string shortname = xr.GetAttribute("shortname"); - // string usrid = xr.GetAttribute("usrid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // string formatid = xr.GetAttribute("formatid"); - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid),formatfilename); - // folder = Folder.MakeFolder(folder, folder.MyConnection, name, title, shortname, format, null, dts, usrid); - // //f.Save(); - // return folder; - //} - - private Folder AddFolder(Folder p, XmlDocument xd) - { - lblImportStatus.Text = "Creating Folder..."; - Application.DoEvents(); - string title = xd.DocumentElement.Attributes.GetNamedItem("title").InnerText; - string name = xd.DocumentElement.Attributes.GetNamedItem("name").InnerText; - string shortname = xd.DocumentElement.Attributes.GetNamedItem("shortname").InnerText; - string usrid = xd.DocumentElement.Attributes.GetNamedItem("usrid").InnerText; - DateTime dts = DateTime.Parse(xd.DocumentElement.Attributes.GetNamedItem("dts").InnerText); - string formatid = xd.DocumentElement.Attributes.GetNamedItem("formatid").InnerText; - XmlNode fnNode = xd.DocumentElement.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid),formatfilename); - if (Folder.GetByParentID_Name(p.FolderID, name) != null) - return null; - Folder f = Folder.MakeFolder(p, p.MyConnection, name, title, shortname, format, null, dts, usrid); - return f; - } - private Format OldToNewFormat(int formatID, string formatFileName) - { - try - { - string formatName = formatFileName; // B2016-103, new export files include the format filename use that if it exists - if (formatFileName == string.Empty) - { - if (formatID >= oldFormat.Count) return null; // formatID not found, use default file name - formatName = oldFormat[formatID]; // for backwards compatibility with older export files - } - formatID = newFormat[formatName]; - return Format.Get(formatID); - } - catch - { - return null; // format not found return null to use default format - } - } - private DocVersion AddDocVersion(Folder f, XmlReader xr) - { - int versiontype = int.Parse(xr.GetAttribute("versiontype")); - string name = xr.GetAttribute("name"); - string config = xr.GetAttribute("config"); - string userid = xr.GetAttribute("userid"); - DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - string formatid = xr.GetAttribute("formatid"); - string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid),formatfilename); - DocVersion dv = DocVersion.MakeDocVersion(f, versiontype, name, null, null, format, config, dts, userid); - return dv; - } - private void AddAnnotationTypes(XmlDocument xd) - { - XmlNodeList nl = xd.SelectNodes("folder/annotationtypes/annotationtype"); - foreach (XmlNode nd in nl) - { - AnnotationTypeInfo ati = AnnotationTypeInfo.GetByName(nd.Attributes.GetNamedItem("name").InnerText); - if (ati == null) - AnnotationType.MakeAnnotationType(nd.Attributes.GetNamedItem("name").InnerText, nd.Attributes.GetNamedItem("config").InnerText, DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText), nd.Attributes.GetNamedItem("userid").InnerText); - } - } - private DocVersionInfo AddDocVersion(Folder f, XmlDocument xd) - { - lblImportStatus.Text = "Creating DocVersion..."; - Application.DoEvents(); - XmlElement xe = (XmlElement)xd.SelectSingleNode("folder/docversion"); - int versiontype = int.Parse(xe.Attributes.GetNamedItem("versiontype").InnerText); - string name = xe.Attributes.GetNamedItem("name").InnerText; - string config = xe.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - string userid = xe.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xe.Attributes.GetNamedItem("dts").InnerText); - string formatid = xe.Attributes.GetNamedItem("formatid").InnerText; - XmlNode fnNode = xe.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - Format format = formatid == string.Empty ? null : OldToNewFormat(int.Parse(formatid),formatfilename); - DocVersion dv = DocVersion.MakeDocVersion(f, versiontype, name, null, null, format, config, dts, userid); - XmlNode xassoc = xe.SelectSingleNode("association"); - if (xassoc != null) - { - XmlNode xrofst = xassoc.SelectSingleNode("rofst"); - XmlNode xrodb = xrofst.SelectSingleNode("rodb"); - MyRODb = AddRODb(xrodb); - ROFst rofst = AddROFst(xrofst); - DocVersionAssociation dva = dv.DocVersionAssociations.Add(rofst); - dv.Save(); - } - return DocVersionInfo.Get(dv.VersionID); - } - - // jsj 4-29-2016 appears to not be used - //private Dictionary GetROFstData(XmlReader xr) - //{ - // Dictionary rv = new Dictionary(); - // rv.Add("rolookup", xr.GetAttribute("rolookup")); - // rv.Add("config", xr.GetAttribute("config")); - // rv.Add("userid", xr.GetAttribute("userid")); - // rv.Add("dts", xr.GetAttribute("dts")); - // return rv; - //} - - // jsj 4-29-2016 appears to not be used - //private ROFst AddROFst(Dictionary dic) - //{ - // byte[] rolookup = Convert.FromBase64String(dic["rolookup"]); - // string config = dic["config"]; - // string userid = dic["userid"]; - // DateTime dts = DateTime.Parse(dic["dts"]); - // ROFst rv = null; - // rv = ROFst.GetByRODbID_DTS(MyRODb.RODbID, dts); //MyRODb.DTS); - // if (rv == null) - // rv = ROFst.MakeROFst(MyRODb, rolookup, config, dts, userid); - // return rv; - //} - - private ROFst AddROFst(XmlNode xrofst) - { - lblImportStatus.Text = "Creating ROFst..."; - Application.DoEvents(); - byte[] rolookup = Convert.FromBase64String(xrofst.Attributes.GetNamedItem("rolookup").InnerText); - string config = xrofst.Attributes.GetNamedItem("config").InnerText; - string userid = xrofst.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xrofst.Attributes.GetNamedItem("dts").InnerText); - ROFst rv = null; - rv = ROFst.GetByRODbID_DTS(MyRODb.RODbID, dts); - // if the RO database is not found in the current data (does not have the same RODBid nor date/time stamp - // then spin through the list of RO databases and compare the FST information. - // If the RO FST information is the same, then use that current RO database when importing - if (rv == null) - { - RODbInfoList rodblst = RODbInfoList.Get(); - foreach (RODbInfo roinfo in rodblst) - { - rv = ROFst.GetByRODbID_DTS(roinfo.RODbID, dts); - if (rv != null && Same(rv.ROLookup,rolookup)) return rv; - } - rv = ROFst.MakeROFst(MyRODb, rolookup, config, dts, userid); - XmlNode xfigures = xrofst.SelectSingleNode("figures"); - if (xfigures != null) - AddFigures(xfigures, rv); - } - return rv; - } - - private bool Same(byte[] p, byte[] rolookup) - { - if (p.Length != rolookup.Length) return false; - for (int i = 0; i < p.Length; i++) - if (p[i] != rolookup[i]) return false; - return true; - } - - private void AddFigures(XmlNode xfigures, ROFst rofst) - { - foreach (XmlNode nd in xfigures.SelectNodes("figure")) - { - XmlNode image = nd.SelectSingleNode("image"); - int imageid = int.Parse(image.Attributes.GetNamedItem("imageid").InnerText); - ROImage roimage = ROImage.Get(imageid); - string config; - DateTime dts; - string userid; - if (roimage == null) - { - string filename = image.Attributes.GetNamedItem("filename").InnerText; - byte[] content = Convert.FromBase64String(image.Attributes.GetNamedItem("content").InnerText); - config = image.Attributes.GetNamedItem("config").InnerText; - dts = DateTime.Parse(image.Attributes.GetNamedItem("dts").InnerText); - userid = image.Attributes.GetNamedItem("userid").InnerText; - roimage = ROImage.MakeROImage(MyRODb, filename, content, config, dts, userid); - } - config = nd.Attributes.GetNamedItem("config").InnerText; - dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - userid = nd.Attributes.GetNamedItem("userid").InnerText; - Figure fig = Figure.MakeFigure(rofst, roimage, config, dts, userid); - } - } - - // jsj 4-29-2016 appears to not be used - //private RODb AddRODb(XmlReader xr) - //{ - // oldRODbID = int.Parse(xr.GetAttribute("rodbid")); - // string roname = xr.GetAttribute("roname"); - // string folderpath = xr.GetAttribute("folderpath"); - // string dbconnectionstring = xr.GetAttribute("dbconnectionstring"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // RODb rv = null; - // rv = RODb.GetByFolderPath(folderpath); - // if (rv == null) - // rv = RODb.MakeRODb(roname, folderpath, dbconnectionstring, config, dts, userid); - // newRODbID = rv.RODbID; - // return rv; - //} - - private RODb AddRODb(XmlNode xrodb) - { - lblImportStatus.Text = "Creating RODb..."; - Application.DoEvents(); - oldRODbID = int.Parse(xrodb.Attributes.GetNamedItem("rodbid").InnerText); - string roname = xrodb.Attributes.GetNamedItem("roname").InnerText; - string folderpath = xrodb.Attributes.GetNamedItem("folderpath").InnerText; - string dbconnectionstring = xrodb.Attributes.GetNamedItem("dbconnectionstring").InnerText; - string config = xrodb.Attributes.GetNamedItem("config").InnerText; - string userid = xrodb.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xrodb.Attributes.GetNamedItem("dts").InnerText); - RODb rv = null; - rv = RODb.GetByFolderPath(folderpath); - if (rv == null) - { - // create a list of the RO databases currently in the database - List roDbNameList = new List(); - RODbInfoList rolist = RODbInfoList.Get(); - foreach (RODbInfo rodbinfo in rolist) - { - if (!roDbNameList.Contains(rodbinfo.ROName)) - roDbNameList.Add(rodbinfo.ROName); - } - rolist.Dispose(); - int cnt = 0; - string roNameNew = roname; - // if the ROname we are importing is the same as one already in the database - // and the ROpaths are different, then rename the one we are importing - while (roDbNameList.Contains(roNameNew)) - roNameNew = string.Format("{0}_{1}",roname,(++cnt).ToString()); - rv = RODb.MakeRODb(roNameNew, folderpath, dbconnectionstring, config, dts, userid); - } - newRODbID = rv.RODbID; - return rv; - } - - // jsj 4-29-2016 appears to not be used - //private int GetProcedureData(XmlReader xr) - //{ - // return int.Parse(xr.GetAttribute("itemid")); - //} - - // jsj 4-29-2016 appears to not be used - //private ItemInfo AddProcedure(XmlReader xr, DocVersion dv, ItemInfo procInfo, int oldid) - //{ - // DocVersionInfo dvInfo = DocVersionInfo.Get(dv.VersionID); - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int proctype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Procedure p = Procedure.MakeProcedure(dvInfo, procInfo, number, text, proctype); - // p.DTS = dts; - // p.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // p.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid),formatfilename); - // p.MyContent.Config = config; - // p.MyContent.DTS = dts; - // p.MyContent.UserID = userid; - // p.Save(); - // Old2NewItem.Add(oldid, p.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), p.MyContent.ContentID); - // procInfo = ProcedureInfo.Get(p.ItemID); - // return procInfo; - //} - private ProcedureInfo AddProcedure(XmlNode xn, DocVersionInfo dvInfo, ProcedureInfo procInfo) - { - pbImportProcedure.PerformStep(); - lblImportProcedure.Text = string.Format("{0} of {1} Procedures", pbImportProcedure.Value.ToString(), pbImportProcedure.Maximum.ToString()); - TimeSpan elapsed = DateTime.Now.Subtract(MyStart); - lblImportTime.Text = "Elapsed Time: " + elapsed.ToString(); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int proctype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - Procedure p = Procedure.MakeProcedure(dvInfo, procInfo, number, text, proctype); - p.DTS = dts; - p.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode !=null)? fnNode.InnerText : ""; - if (formatid != string.Empty) - p.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid),formatfilename); - p.MyContent.Config = config; - p.MyContent.DTS = dts; - p.MyContent.UserID = userid; - p.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), p.ItemID); - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), p.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(p.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(p.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(p.MyContent, xc); - procInfo = ProcedureInfo.Get(p.ItemID); - if (xc.HasChildNodes) - AddParts(xc, procInfo); - FixSectionStart(procInfo); - return procInfo; - } - // jsj 2016Feb16 - This appears to not be used - //private void AddROUsage(XmlReader xr) - //{ - // int contentid = int.Parse(xr.GetAttribute("contentid")); - // contentid = Old2NewContent[contentid]; - // Content content = Content.Get(contentid); - // string rousageid = xr.GetAttribute("rousageid"); - // string roid = xr.GetAttribute("roid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // RoUsage rou = RoUsage.MakeRoUsage(content, roid, config, dts, userid, MyRODb); - // rou.Save(); - // string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); - // string replaceWith = (cbxCvrtROsToText.Checked) ? "" : string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); - // if (lookFor != replaceWith) - // { - // content.Text = content.Text.Replace(lookFor, replaceWith); - // content.Save(); - // } - //} - private string GetMyPrefix(string text, int start, int lastIndex) - { - string defPrefix = text.Substring(start - 3, 3); - if (defPrefix != @"\v ") throw new Exception(string.Format("rtf string {0} does not match expected format", defPrefix)); - string txt = text.Substring(lastIndex, start - lastIndex - 3); - int lastSlash = txt.LastIndexOf(@"\"); - int lastSpace = txt.LastIndexOf(" "); - int lastCR = txt.LastIndexOf("\r"); - if (lastSpace < lastCR) - lastSpace = lastCR; - if (lastSlash <= lastSpace) //this will return "\v " - return defPrefix; - txt = txt.Substring(lastSlash); - if (txt.StartsWith(@"\'")) //this is a hex - return defPrefix; - if (Regex.IsMatch(txt, @"\\u[0-9].*")) //this is unicode - return defPrefix; - return @"\v"; - } - private string GetMySuffix(string text, int start) - { - string txt = text.Substring(start); - int firstSlashVeeZero = txt.IndexOf(@"\v0"); - if (firstSlashVeeZero == 0 && txt.Length > 3 && txt[3] == ' ') //"\v0 " - return text.Substring(start, 4); - return text.Substring(start, firstSlashVeeZero + 3); //everything upto \v0" - } - private void ConvertImportProcedureROsToText(Content content, XmlNode xn) - { - bool processATable = content.MyGrid != null; // content.Type == 20008; - string newvalue = ""; //value; - if (content.MyGrid != null) - Console.WriteLine("stop"); - foreach (XmlNode nd in xn.SelectNodes("rousage")) - { - string rousageid = nd.Attributes.GetNamedItem("rousageid").InnerText; - string roid = nd.Attributes.GetNamedItem("roid").InnerText; - - string findLink = @""; - MatchCollection ms = Regex.Matches(content.Text, findLink); - string lookFor = string.Format(@"^$", rousageid); - int lastIndex = 0; - string newText = content.Text; - foreach (Match mm in ms) - { - int offset = mm.Index; - Match m = Regex.Match(mm.Value, lookFor, RegexOptions.Singleline); - if (m != null && m.Groups.Count > 1) - { - string prefix = GetMyPrefix(content.Text, mm.Index, lastIndex); - string suffix = GetMySuffix(content.Text, mm.Index + mm.Length); - int myIndex = m.Groups[4].Index + mm.Index; - int myLength = m.Groups[4].Length; - if (m.Groups[3].Value != " ") - { - myIndex = m.Groups[3].Index + mm.Index; - myLength += m.Groups[3].Length; - } - string gg = newText.Substring(myIndex, myLength); - //retval = gg; - gg = gg.Replace("{", @"\{").Replace("}", @"\}"); - string part1 = newText.Substring(0, mm.Index); - string part2 = gg; - string part3 = newText.Substring(mm.Index + mm.Length); - //modify part1 based on prefix - if (prefix == @"\v ") - part1 = part1.Substring(0, part1.Length - 3); - else - part1 = part1.Substring(0, part1.Length - 3) + " "; - //modify part3 based on suffix - if (suffix == @"\v0 ") - part3 = part3.Substring(4); - else - part3 = suffix.Replace(@"\v0", "") + part3.Substring(suffix.Length); - if (gg.Contains(@"\u8209?")) - { - Match mmm = Regex.Match(gg, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)"); - if (mmm == null) - newvalue = newvalue.Replace(@"\u8209?", "-"); - else - newvalue = newvalue.Replace(@"\u8209?", m.Groups[1].Value + @"\u8209?" + m.Groups[3].Value); - } - if (gg.Contains(@"\u9586?")) - { - Match mmm = Regex.Match(gg, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)"); - if (mmm == null) - newvalue = newvalue.Replace(@"\u9586?", @"\\"); - else - newvalue = newvalue.Replace(@"\u9586?", m.Groups[1].Value + @"\u9586?" + m.Groups[3].Value); - } - content.Text = part1 + part2 + part3; - break; // Text has been processed - } - lastIndex = mm.Index + mm.Length; - } - } - if (content.MyGrid != null) - { - if (content.Text.StartsWith(@"\v ")) // if change in rotable data... - { - content.Text = newvalue; - //if (origROFstInfo != null) - //{ - // List retlist = origROFstInfo.OnROTableUpdate(this, new ROFstInfoROTableUpdateEventArgs(newvalue, MyGrid.Data)); - // if (MyGrid.Data != retlist[1]) - // { - // MyGrid.Data = retlist[1]; - // retval = Text; - // if (Text != retlist[0]) - // Text = retlist[0]; - // } - //} - } - //else - //{ - // // if it's an ro within a table, need to process into an flex grid to save the grid data: - // string findLinkXml = @"<START\].*?\[END>"; - // //string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* (.*?)(\\[^v '?\\]+)*\\v(\\[^v \\]+)* #Link:ReferencedObject:{0} .*?\[END>", rousg.ROUsageID); - // string lookForXml = string.Format(@"^<START\](\\[^v \\]+)*\\v0(\\[^v '?{{}}\\]+)*( |\\u[0-9]{{1,4}}?|\\'[0-9a-fA-F]{{2}}|\\[{{}}~])(.*?)(\\[^v'?{{}} \\]+)*\\v(\\[^v \\]+)* #Link:ReferencedObject:{0} .*?\[END>$", rousg.ROUsageID); - // MatchCollection msg = Regex.Matches(MyGrid.Data, findLinkXml); - // int nmsg = msg.Count; - // for (int i = nmsg - 1; i >= 0; i--) - // { - // Match mmg = msg[i]; - // int offset = 0; // crashed in substring line below if using mmg.Index; Set to 0 and it worked - KBR. - // Match mg = Regex.Match(mmg.Value, lookForXml);// Regex.Match(MyGrid.Data, lookForXml); - // if (mg != null && mg.Groups.Count > 1) - // { - // int myIndex = mg.Groups[4].Index + mmg.Index; - // int myLength = mg.Groups[4].Length; - // if (mg.Groups[3].Value != " ") - // { - // myIndex = mg.Groups[3].Index + mmg.Index; - // myLength += mg.Groups[3].Length; - // } - // string gg = MyGrid.Data.Substring(myIndex, myLength); - // if (newvalue.Contains(@"\u8209?")) - // { - // Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)"); - // if (m == null) - // newvalue = newvalue.Replace(@"\u8209?", "-"); - // else - // newvalue = newvalue.Replace(@"\u8209?", m.Groups[1].Value + @"\u8209?" + m.Groups[3].Value); - // } - // if (newvalue.Contains(@"\u9586?")) - // { - // Match m = Regex.Match(newvalue, @"(\\f[0-9]+)(\\u[0-9]{1,4}\?)(\\f[0-9]+ ?)"); - // if (m == null) - // newvalue = newvalue.Replace(@"\u9586?", @"\\"); - // else - // newvalue = newvalue.Replace(@"\u9586?", m.Groups[1].Value + @"\u9586?" + m.Groups[3].Value); - // } - // if (gg != newvalue) - // { - // MyGrid.Data = MyGrid.Data.Substring(0, myIndex) + newvalue + MyGrid.Data.Substring(myIndex + myLength); - // } - // //System.Text.RegularExpressions.Group g = mg.Groups[3]; - // //if (g.ToString() != newvalue) - // //{ - // // retval = g.Value; - // // MyGrid.Data = MyGrid.Data.Substring(0, offset + mmg.Index + g.Index) + newvalue + MyGrid.Data.Substring(offset + mmg.Index + g.Index + g.Length); - // //} - // } - // } - //} - } - content.Save(); - } - private void AddROUsages(Content content, XmlNode xn) - { - if (_ConvertROsToTextDuringImport) - { - ConvertImportProcedureROsToText(content, xn); - } - else - { - foreach (XmlNode nd in xn.SelectNodes("rousage")) - { - string rousageid = nd.Attributes.GetNamedItem("rousageid").InnerText; - string roid = nd.Attributes.GetNamedItem("roid").InnerText; - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - if (MyDocVersion.DocVersionAssociations == null) - MyDocVersion.RefreshDocVersionAssociations(); - ROFSTLookup lookup = MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(MyDocVersion); - string roval = lookup.GetRoValue(roid); - if (roval == "?") - { - RoUsageInfo roui = RoUsageInfo.Get(int.Parse(rousageid)); - } - else - { - RoUsage rou = RoUsage.MakeRoUsage(content, roid, config, dts, userid, MyRODb); - rou.Save(); - RoUsageInfo roui = RoUsageInfo.Get(rou.ROUsageID); - string lookFor = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rousageid, roid, oldRODbID.ToString()); - string replaceWith = string.Format("#Link:ReferencedObject:{0} {1} {2}[END>", rou.ROUsageID.ToString(), roid, newRODbID.ToString()); - if (lookFor != replaceWith) - { - content.Text = content.Text.Replace(lookFor, replaceWith); - content.FixContentText(roui, roval, 0, MyDocVersion.DocVersionAssociations[0].MyROFst); - } - } - //content.Save(); - } - content.Save(); - } - } - - // jsj 4-29-2016 appears to not be used - //private void AddAnnotation(XmlReader xr) - //{ - // int itemid = int.Parse(xr.GetAttribute("itemid")); - // itemid = Old2NewItem[itemid]; - // Item itm = Item.Get(itemid); - // int typeid = int.Parse(xr.GetAttribute("typeid")); - // string rtftext = xr.GetAttribute("rtftext"); - // string searchtext = xr.GetAttribute("searchtext"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Annotation ann = Annotation.MakeAnnotation(itm, AnnotationType.Get(typeid), rtftext, searchtext, config, dts, userid); - //} - - private void AddAnnotations(int itemID, XmlNode xn) - { - Item itm = Item.Get(itemID); - foreach (XmlNode nd in xn.SelectNodes("annotation")) - { - int typeid = int.Parse(nd.Attributes.GetNamedItem("typeid").InnerText); - string rtftext = nd.Attributes.GetNamedItem("rtftext").InnerText; - string searchtext = nd.Attributes.GetNamedItem("searchtext").InnerText; - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - AnnotationType annType = AnnotationType.GetByNameOrCreate(nd.Attributes.GetNamedItem("typename").InnerText); - Annotation ann = Annotation.MakeAnnotation(itm, annType, rtftext, searchtext, config, dts, userid); - ann.Save(); - } - } - private void AddParts(XmlNode myNode, ItemInfo parentInfo) - { - foreach (XmlNode xn in myNode.ChildNodes) - { - switch (xn.Name) - { - case "sections": - AddSections(xn, parentInfo); - break; - case "cautions": - AddCautions(xn, parentInfo); - break; - case "notes": - AddNotes(xn, parentInfo); - break; - case "rnos": - AddRNOs(xn, parentInfo); - break; - case "steps": - AddSteps(xn, parentInfo); - break; - case "tables": - AddTables(xn, parentInfo); - break; - case "entry": // this is word section max out the status bar - lblImportStep.Text = "Word Section Data"; - pbImportStep.Maximum = 1; - pbImportStep.PerformStep(); - break; - default: - break; - } - } - } - private void AddTables(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddTable(nd, parentInfo, prevInfo); - } - // jsj 2016Feb16 - This appears to not be used - //private ItemInfo AddTable(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int steptype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Table); - // step.DTS = dts; - // step.UserID = userid; - // if (formatid != string.Empty) - // step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid)); - // step.MyContent.Config = config; - // step.MyContent.DTS = dts; - // step.MyContent.UserID = userid; - // step.Save(); - // Old2NewItem.Add(oldid, step.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - // prevInfo = StepInfo.Get(step.ItemID); - // return prevInfo; - //} - private ItemInfo AddTable(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - using (step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Table)) - { - step.DTS = dts; - step.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xc.SelectNodes("grid").Count > 0) - AddGrid(step.MyContent, xc); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - } - return prevInfo; - } - private void AddSteps(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddStep(nd, parentInfo, prevInfo); - } - - // jsj 4-29-2016 appears to not be used - //private ItemInfo AddStep(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int steptype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Step); - // step.DTS = dts; - // step.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid),formatfilename); - // step.MyContent.Config = config; - // step.MyContent.DTS = dts; - // step.MyContent.UserID = userid; - // step.Save(); - // Old2NewItem.Add(oldid, step.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - // prevInfo = StepInfo.Get(step.ItemID); - // return prevInfo; - //} - private ItemInfo AddStep(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - using (step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Step)) - { - step.DTS = dts; - step.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - } - return prevInfo; - } - private void AddRNOs(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddRNO(nd, parentInfo, prevInfo); - } - - // jsj 4-29-2016 appears to not be used - //private ItemInfo AddRNO(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int steptype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.RNO); - // step.DTS = dts; - // step.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - // step.MyContent.Config = config; - // step.MyContent.DTS = dts; - // step.MyContent.UserID = userid; - // step.Save(); - // Old2NewItem.Add(oldid, step.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - // prevInfo = StepInfo.Get(step.ItemID); - // return prevInfo; - //} - - private ItemInfo AddRNO(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - using (step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.RNO)) - { - step.DTS = dts; - step.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - } - return prevInfo; - } - private void AddNotes(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddNote(nd, parentInfo, prevInfo); - } - - // jsj 4-29-2016 appears to not be used - //private ItemInfo AddNote(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int steptype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Note); - // step.DTS = dts; - // step.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - // step.MyContent.Config = config; - // step.MyContent.DTS = dts; - // step.MyContent.UserID = userid; - // step.Save(); - // Old2NewItem.Add(oldid, step.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - // prevInfo = StepInfo.Get(step.ItemID); - // return prevInfo; - //} - - private ItemInfo AddNote(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - using (step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Note)) - { - step.DTS = dts; - step.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - } - return prevInfo; - } - private void AddCautions(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddCaution(nd, parentInfo, prevInfo); - } - - // jsj 4-29-2016 appears to not be used - //private ItemInfo AddCaution(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int steptype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Step step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Caution); - // step.DTS = dts; - // step.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - // step.MyContent.Config = config; - // step.MyContent.DTS = dts; - // step.MyContent.UserID = userid; - // step.Save(); - // Old2NewItem.Add(oldid, step.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), step.MyContent.ContentID); - // prevInfo = StepInfo.Get(step.ItemID); - // return prevInfo; - //} - - private ItemInfo AddCaution(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportStep.PerformStep(); - lblImportStep.Text = string.Format("{0} of {1} Steps", pbImportStep.Value.ToString(), pbImportStep.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Step step; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int steptype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - using (step = Step.MakeStep(parentInfo, prevInfo, number, text, steptype, E_FromType.Caution)) - { - step.DTS = dts; - step.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - step.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - step.MyContent.Config = config; - step.MyContent.DTS = dts; - step.MyContent.UserID = userid; - step.Save(); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), step.ItemID); - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), step.MyContent.ContentID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(step.ItemID, xn); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(step.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(step.MyContent, xc); - prevInfo = StepInfo.Get(step.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - } - return prevInfo; - } - private void AddSections(XmlNode xn, ItemInfo parentInfo) - { - if (parentInfo.IsProcedure) - { - pbImportSection.Value = 0; - pbImportStep.Value = 0; - pbImportSection.Maximum = xn.ChildNodes.Count; - } - if (parentInfo.IsSection) - { - pbImportStep.Value = 0; - pbImportStep.Maximum = xn.ChildNodes.Count; - } - ItemInfo prevInfo = null; - foreach (XmlNode nd in xn.ChildNodes) - prevInfo = AddSection(nd, parentInfo, prevInfo); - } - private Dictionary GetSectionData(XmlReader xr) - { - Dictionary rv = new Dictionary(); - rv.Add("itemid", xr.GetAttribute("itemid")); - return rv; - } - - // js j4-29-2016 appears to not be used - //private ItemInfo AddSection(XmlReader xr, ItemInfo parentInfo, ItemInfo prevInfo, int oldid) - //{ - // string number = xr.GetAttribute("number"); - // string text = xr.GetAttribute("text"); - // int sectiontype = int.Parse(xr.GetAttribute("type")); - // string formatid = xr.GetAttribute("formatid"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Section sect = Section.MakeSection(parentInfo, prevInfo, number, text, sectiontype); - // sect.DTS = dts; - // sect.UserID = userid; - // string formatfilename = xr.GetAttribute("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - // if (formatid != string.Empty) - // sect.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - // sect.MyContent.Config = config; - // sect.MyContent.DTS = dts; - // sect.MyContent.UserID = userid; - // sect.Save(); - // Old2NewItem.Add(oldid, sect.ItemID); - // Old2NewContent.Add(int.Parse(xr.GetAttribute("contentid")), sect.MyContent.ContentID); - // prevInfo = SectionInfo.Get(sect.ItemID); - // return prevInfo; - //} - - private ItemInfo AddSection(XmlNode xn, ItemInfo parentInfo, ItemInfo prevInfo) - { - pbImportSection.PerformStep(); - lblImportSection.Text = string.Format("{0} of {1} Sections", pbImportSection.Value.ToString(), pbImportSection.Maximum.ToString()); - Application.DoEvents(); - XmlNode xc = xn.SelectSingleNode("content"); - Section sect; - string number = xc.Attributes.GetNamedItem("number").InnerText; - string text = xc.Attributes.GetNamedItem("text").InnerText; - int sectiontype = int.Parse(xc.Attributes.GetNamedItem("type").InnerText); - string formatid = xc.Attributes.GetNamedItem("formatid").InnerText; - string config = xc.Attributes.GetNamedItem("config").InnerText; - config = StripEnhanced(config); - int contentid = int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText); - CheckForFloatingFoldout(contentid, config); - string userid = xc.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(xc.Attributes.GetNamedItem("dts").InnerText); - sect = Section.MakeSection(parentInfo, prevInfo, number, text, sectiontype); - sect.DTS = dts; - sect.UserID = userid; - // check for a null in case an older export file is being imported (the older files will not have the fromatfilename attribute) - XmlNode fnNode = xc.Attributes.GetNamedItem("formatfilename"); //Bug fix B2016-103 the formatid in an Export file may not match the formatid where you are importing to - string formatfilename = (fnNode != null) ? fnNode.InnerText : ""; - if (formatid != string.Empty) - sect.MyContent.MyFormat = OldToNewFormat(int.Parse(formatid), formatfilename); - sect.MyContent.Config = config; - sect.MyContent.DTS = dts; - sect.MyContent.UserID = userid; - sect.Save(); - if (!Old2NewContent.ContainsKey(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText))) - Old2NewContent.Add(int.Parse(xc.Attributes.GetNamedItem("contentid").InnerText), sect.MyContent.ContentID); - if (!Old2NewItem.ContainsKey(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText))) - Old2NewItem.Add(int.Parse(xn.Attributes.GetNamedItem("itemid").InnerText), sect.ItemID); - if (xn.SelectNodes("annotation").Count > 0) - AddAnnotations(sect.ItemID, xn); - if (xc.SelectNodes("entry").Count > 0) - AddEntry(sect.MyContent, xc); - if (xc.SelectNodes("rousage").Count > 0) - AddROUsages(sect.MyContent, xc); - if (xc.SelectNodes("transition").Count > 0) - AddTransitions(sect.MyContent, xc); - prevInfo = SectionInfo.Get(sect.ItemID); - if (xc.HasChildNodes) - AddParts(xc, prevInfo); - return prevInfo; - } - private string StripEnhanced(string config) - { - if (config.Length > 0) - { - XmlDocument xd = new XmlDocument(); - xd.LoadXml(config); - XmlNodeList nl = xd.DocumentElement.SelectNodes("//Enhanced"); - foreach (XmlNode nd in nl) - nd.ParentNode.RemoveChild(nd); - return xd.OuterXml; - } - return config; - } - private void CheckForFloatingFoldout(int contentid, string config) - { - if (config != string.Empty) - { - XmlDocument xd = new XmlDocument(); - xd.LoadXml(config); - XmlNode xn = xd.SelectSingleNode("Config/Step/@FloatingFoldout"); - if (xn != null) - floatFoldout.Add(contentid, int.Parse(xn.InnerText)); - } - } - - // jsj 2016Feb16 - This appears to not be used - //private void AddGrid(XmlReader xr) - //{ - // int contentid = int.Parse(xr.GetAttribute("contentid")); - // contentid = Old2NewContent[contentid]; - // Content content = Content.Get(contentid); - // string data = xr.GetAttribute("data"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // Grid gg = Grid.MakeGrid(content, data, config, dts, userid); - //} - - private void AddGrid(Content content, XmlNode xc) - { - XmlNode nd = xc.SelectSingleNode("grid"); - string data = nd.Attributes.GetNamedItem("data").InnerText; - XmlDocument xd = new XmlDocument(); - xd.LoadXml(data); - XmlNode gn = xd.SelectSingleNode("C1FlexGrid/Control/IsRoTable"); - if (gn.InnerText.ToLower() == "true") - { - gn = xd.SelectSingleNode("C1FlexGrid/Control/RODbId"); - gn.InnerText = newRODbID.ToString(); - data = xd.OuterXml; - } - else - { - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Cells/Cell/Data"); - bool modified = false; - string lookFor = string.Format(" {0}[END", oldRODbID.ToString()); - string replaceWith = string.Format(" {0}[END", newRODbID.ToString()); - foreach (XmlNode nn in nl) - { - if (nn.InnerText.Contains("#Link:ReferencedObject:")) - { - nn.InnerText = nn.InnerText.Replace(lookFor, replaceWith); - modified = true; - } - } - if (modified) - data = xd.OuterXml; - } - string config = nd.Attributes.GetNamedItem("config").InnerText; - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - Grid gg = Grid.MakeGrid(content, data, config, dts, userid); - gg.Save(); - } - - // jsj 4-29-2016 appears to not be used - //private Dictionary AddEntry(XmlReader xr) - //{ - // Dictionary dic = new Dictionary(); - // dic.Add("contentid", xr.GetAttribute("contentid")); - // dic.Add("dts", xr.GetAttribute("dts")); - // dic.Add("userid", xr.GetAttribute("userid")); - // return dic; - //} - - private void AddEntry(Content content, XmlNode xc) - { - XmlNode nd = xc.SelectSingleNode("entry"); - string userid = nd.Attributes.GetNamedItem("userid").InnerText; - DateTime dts = DateTime.Parse(nd.Attributes.GetNamedItem("dts").InnerText); - Document dd = AddDocument(nd.SelectSingleNode("document")); - Entry ee = Entry.MakeEntry(content, dd, dts, userid); - ee.Save(); - } - // jsj 2016Feb16 - This appears to not be used - //private void AddDocument(XmlReader xr, Dictionary dic) - //{ - // string libtitle = xr.GetAttribute("libtitle"); - // byte[] doccontent = Convert.FromBase64String(xr.GetAttribute("doccontent")); - // string docascii = xr.GetAttribute("docascii"); - // string config = xr.GetAttribute("config"); - // string userid = xr.GetAttribute("userid"); - // DateTime dts = DateTime.Parse(xr.GetAttribute("dts")); - // string fileextension = xr.GetAttribute("fileextension"); - // Document dd = Document.MakeDocument(libtitle, doccontent, docascii, config, dts, userid, fileextension); - // int contentid = int.Parse(dic["contentid"]); - // contentid = Old2NewContent[contentid]; - // Content content = Content.Get(contentid); - // dts = DateTime.Parse(dic["dts"]); - // userid = dic["userid"]; - // Entry ee = Entry.MakeEntry(content, dd, dts, userid); - //} - private Document AddDocument(XmlNode xn) - { - Document d; - int docid = int.Parse(xn.Attributes.GetNamedItem("docid").InnerText); - if (Old2NewLibDoc.ContainsKey(docid)) - { - docid = Old2NewLibDoc[docid]; - d = Document.Get(docid); - } - else - { - string libtitle = xn.Attributes.GetNamedItem("libtitle").InnerText; - DateTime dts = DateTime.Parse(xn.Attributes.GetNamedItem("dts").InnerText); - if (libtitle != "") - { - DocumentInfoList dil = DocumentInfoList.GetLibraries(true); - foreach (DocumentInfo di in dil) - { - if (di.LibTitle == libtitle && di.DTS == dts) - return di.Get(); // found library document in exiting database - } - } - byte[] doccontent = Convert.FromBase64String(xn.Attributes.GetNamedItem("doccontent").InnerText); - string docascii = xn.Attributes.GetNamedItem("docascii").InnerText; - string config = xn.Attributes.GetNamedItem("config").InnerText; - string userid = xn.Attributes.GetNamedItem("userid").InnerText; - string fileextension = xn.Attributes.GetNamedItem("fileextension").InnerText; - d = Document.MakeDocument(libtitle, doccontent, docascii, config, dts, userid, fileextension); - d.Save(); - Old2NewLibDoc.Add(docid, d.DocID); - } - return d; - } - #endregion - - private void btnCloseExport_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void btnCloseImport_Click(object sender, EventArgs e) - { - this.Close(); - } - } -} diff --git a/PROMS/VEPROMS User Interface/frm.zip b/PROMS/VEPROMS User Interface/frm.zip deleted file mode 100644 index 6fcb02fd..00000000 Binary files a/PROMS/VEPROMS User Interface/frm.zip and /dev/null differ diff --git a/PROMS/VEPROMS User Interface/frmBatchRefresh - Copy.cs b/PROMS/VEPROMS User Interface/frmBatchRefresh - Copy.cs deleted file mode 100644 index 672218ba..00000000 --- a/PROMS/VEPROMS User Interface/frmBatchRefresh - Copy.cs +++ /dev/null @@ -1,1026 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using System.IO; -using Volian.Controls.Library; -using DevComponents.DotNetBar; -using JR.Utils.GUI.Forms; - -namespace VEPROMS -{ - public partial class frmBatchRefresh : Form - { - private SessionInfo _MySessionInfo; - public SessionInfo MySessionInfo - { - get { return _MySessionInfo; } - set { _MySessionInfo = value; } - } - public frmBatchRefresh() - { - InitializeComponent(); - } - private AdminTools adminToolsList; - private AdminTool selectedAdminTool; - // removed the Refresh ROs and Refresh Transitions and ROs options (now only Transitions can be refreshed) - // the Update ROs and Refresh ROs logic was merged together. The Update ROs will functionally do both - // also annotations will be placed on step elements that have RO changes - private void SetUpAdminTools() - { - adminToolsList = new AdminTools(); - adminToolsList.Add("Update RO Values" - , "Update RO Values Guidance" - , "This allows the user to update referenced objects values for multiple working drafts in a batch mode." - , "It is recommended that this be done during off hours." - , "WARNING:" - , true // True means Exclude Procedures - , false - , UpdateROValues); - adminToolsList.Add("Refresh Transitions", "Refresh Transitions Guidance", "Occasionally, transitions do not get updated.\r\n\r\nThis function will refresh transitions in all procedures selected below whether they were selected individually or as a group via a procedure set.", "If more than one procedure is selected, it is recommened that this be performed during off hours.", "WARNING:", false, false, RefreshTransitions); - adminToolsList.Add("Fix Hyphens", "Fix Hyphens", "Replace various forms of Hyphens with a consistent Hyphen so that search will find all Hyphens", "", "", true, true, "vesp_FixHyphens", FixHyphens); - adminToolsList.Add("Delete PDFs", "Delete PDFs Guidance", "It is sometimes desirable to clean up the database by removing extra pdf files. This process allows for this to occur", "", "", true, true, "vesp_DeletePDFs", DeletePDFs); - adminToolsList.Add("Identify Disconnected Items" - , "Identify Disconnected Items Guidance" - , "Everything in PROMS is inter-related. A working draft knows what is its first procedure and a procedure knows what is its first step. Likewise, a procedure knows what procedure is before it and after it.\r\n\r\nOccasionally, an item will become disconnected and does not know where it fits into the relationships. This tool identifies whether the database has this condition." - , "This tool may take an extended period of time to execute." - , "NOTE:" - , true - , true - , "vesp_GetDisconnectedItemsCount" - , IdentifyDisconnectedItems); - adminToolsList.Add("Purge Disconnected Items" - , "Purge Disconnected Items Guidance" - , "Everything in PROMS is inter-related. A working draft knows what is its first procedure and a procedure knows what is its first step. Likewise, a procedure knows what procedure is before it and after it.\r\n\r\nOccasionally, an item will become disconnected and does not know where it fits into the relationships. This tool removes any disconnected items from the database." - , "Be sure to have a backup prior to running this!!\r\n\r\nThis tool may take an extended period of time to execute." - , "Warning:" - , true - , true - , "vesp_PurgeDisconnectedData" - , PurgeDisconnectedItems); - adminToolsList.Add("Identify Non-Editable Items", "Identify Non-Editable Items Guidance", "Typically, a section in PROMS only has sub-sections or sub-steps. There are times when a section has both. When this occurs, the sub-step data can be marked as non-editable. If this occurs, the user can no longer get to these steps and they can become forgotten.\r\n\r\nThis tool will identify if the database has non-editable steps and provide a listing of these steps.", "This tool may take an extended period of time to execute.", "NOTE:", true, true, "vesp_GetNonEditableItems", IdentifyNonEditableItems); - adminToolsList.Add("Get Database Users", "Get Database Users Guidance", "This administrative tool will return all of the users currently with open sessions in the database and the details of any items they have checked out", "", "", true, true, "vesp_GetDatabaseSessions", GetDatabaseSessions); - adminToolsList.Add("Clean Up Referenced Object Associations" - , "Clean Up Referenced Object Associations Guidance" - , "Referenced Objects are associated with a procedure set (such as Working Draft). If unnecessary associations exist, these can be removed." - , "Be sure to have a backup prior to running this!!" - , "NOTE:" - , true - , true - , "vesp_CleanUpROAssociations" - , CleanUpROAssociations); - adminToolsList.Add("Remove Unused ROFSTs and Figures" - , "Remove Unused ROFSTs and Figures Guidance" - , "This tool removes any ROFSTs and Figures that are no longer used." - , "Be sure to have a backup prior to running this!!" - , "NOTE:" - , true - , true - , "vesp_RemoveUnusedRoFstsAndFigures" - , RemoveUnusedRoFstsAndFigures); - adminToolsList.Add("Identify Unused RO Associations" - , "Identify Unused RO Associations Guidance" - , "Referenced Objects are associated with a procedure set (such as Working Draft). If unnecessary associations exist, these can be removed." - , "" - , "NOTE:" - , true - , true - , "vesp_GetUnusedROAssociationsCount" - , IdentifyROAssociations); - adminToolsList.Add("Identify Unused ROFSTs and Figures" - , "Identify Unused ROFSTs and Figures Guidance" - , "This tool identifies any ROFSTs and Figures that are no longer used." - , "" - , "NOTE:" - , true - , true - , "vesp_GetUnusedRoFstsCount" - , IdentifyUnusedRoFstsAndFigures); - - //adminToolsList.Add("Find Referenced Object Problems", "Find Referenced Object Problems Guidance", "description for find ro problems", "", "", true, true, "vesp_FindROProblems", FindROProblems); - adminToolsList.Sort(); - cbxAdminTools.DataSource = adminToolsList; - cbxAdminTools.DisplayMember = "Title"; - cbxAdminTools.SelectedIndex = -1; - } - private void FixHyphens() - { - this.Cursor = Cursors.WaitCursor; - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - int affectedRows = ESP_FixHyphens.Execute(selectedAdminTool.StoredProcedure)/2;// Two results for each change - txtProcess.AppendText(string.Format("Fixed {0} Hyphens", affectedRows)); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - this.Cursor = Cursors.Default; - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private Dictionary myProcedures = new Dictionary(); - private Dictionary myDocVersions = new Dictionary(); - private void frmBatchRefresh_Load(object sender, EventArgs e) - { - SetUpAdminTools(); - lblWarning.Visible = false; - } - private List myTreeNodePath; - private void ResetTV() - { - ResetTV(false); - } - private void ResetTV(bool noProcs) - { - this.Cursor = Cursors.WaitCursor; - myTreeNodePath = new List(); - myTV.Nodes.Clear(); - if (!selectedAdminTool.NoTreeView) - { - FolderInfo fi = FolderInfo.GetTop(); - TreeNode tn = myTV.Nodes.Add(fi.Name); - tn.Tag = fi; - if (fi.ChildFolderCount > 0) - LoadChildFolders(fi, tn, noProcs); - if (myTV.SelectedNode != null) - myTV.SelectedNode.Expand(); - } - this.Cursor = Cursors.Default; - } - private void LoadChildFolders(FolderInfo fi, TreeNode tn, bool noProcs) - { - foreach (FolderInfo fic in fi.SortedChildFolders) - { - TreeNode tnc = tn.Nodes.Add(fic.Name); - tnc.Tag = fic; - if (fic.ChildFolderCount > 0) - LoadChildFolders(fic, tnc, noProcs); - if (fic.FolderDocVersionCount > 0) - LoadDocVersions(fic, tnc, noProcs); - } - } - private void LoadDocVersions(FolderInfo fic, TreeNode tnc, bool noProcs) - { - foreach (DocVersionInfo dvi in fic.FolderDocVersions) - { - UserInfo ui = UserInfo.GetByUserID(MySessionInfo.UserID); - if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi)) - { - tnc.Tag = dvi; - myDocVersions.Add(tnc, dvi); - if (!noProcs) - { - if (dvi.Procedures.Count > 0) - LoadProcedures(dvi, tnc); - } - myTreeNodePath.Add(tnc.FullPath); - } - else - { - while (tnc != null && tnc.Text != "VEPROMS" && !IsUsedPath(tnc.FullPath)) - { - TreeNode tmp = tnc.Parent; - tnc.Remove(); - tnc = tmp; - } - } - } - } - private bool IsUsedPath(string path) - { - foreach (string s in myTreeNodePath) - { - if (s.StartsWith(path)) - return true; - } - return false; - } - private void LoadProcedures(DocVersionInfo dvi, TreeNode tnc) - { - foreach (ProcedureInfo pi in dvi.Procedures) - { - TreeNode tn = tnc.Nodes.Add(string.Format("{0} {1}", pi.DisplayNumber, pi.DisplayText)); - myProcedures.Add(tn, pi); - tn.Tag = pi; - } - } - private void LoadFolderInfo(FolderInfo f) - { - TreeNode tn = myTV.Nodes.Add(f.Name); - tn.Tag = f; - if (f.ChildFolderCount > 0) - foreach (FolderInfo cf in f.SortedChildFolders) - LoadFolderInfo(cf); - } - private void UpdateROValues() - { - this.Cursor = Cursors.WaitCursor; - List dvil = new List(); - foreach (TreeNode tn in myDocVersions.Keys) - if (tn.Checked) - dvil.Add(myDocVersions[tn]); - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - pbProcess.Minimum = 0; - pbProcess.Maximum = dvil.Count; - pbProcess.Step = 1; - while (dvil.Count > 0) - { - StringBuilder sbDocVersions = new StringBuilder(); - Queue dviq = new Queue(); - foreach (DocVersionInfo dvi in dvil) - dviq.Enqueue(dvi); - dvil.Clear(); - // if we are processing more than one procedure set, use MessageList to hold the summary results for each set - if (dviq.Count > 1) - ROFstInfo.MessageList = new StringBuilder(); - while (dviq.Count > 0) - { - string msg = string.Empty; - DocVersionInfo dq = dviq.Dequeue(); - if (!MySessionInfo.CanCheckOutItem(dq.VersionID, CheckOutType.DocVersion, ref msg)) - { - dvil.Add(dq); - sbDocVersions.AppendLine(msg); - } - else - { - ContentInfo.StaticContentInfoChange += new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange); - ProcessUpdateROValues(dq); - ContentInfo.StaticContentInfoChange -= new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange); - pbProcess.PerformStep(); - Application.DoEvents(); - } - } - // when processing more than one procedure set, display only one completed message after all are processed - if (ROFstInfo.MessageList != null) - { - FlexibleMessageBox.Show(ROFstInfo.MessageList.ToString(), "RO Update Complete"); - ROFstInfo.MessageList = null; - } - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(string.Format("{0} {1} Seconds Elapsed", pEnd.ToString("MM/dd/yyyy @ HH:mm"), TimeSpan.FromTicks(pEnd.Ticks - pStart.Ticks).TotalSeconds)); - Application.DoEvents(); - if (dvil.Count > 0) - { - StringBuilder sb = new StringBuilder(); - sb.AppendLine("The batch update process was not usccessful for all working drafts selected."); - sb.AppendLine("The following working drafts were not able to be refreshed..."); - sb.AppendLine(); - sb.AppendLine(sbDocVersions.ToString()); - sb.AppendLine(); - sb.AppendLine("If you want to update these working drafts, please contact the respective users and have them close any procedures in the working draft."); - sb.AppendLine("Once this is complete you can continue the process otherwise you may terminate the process immediately."); - sb.AppendLine(); - sb.AppendLine("Have you requested the users to close the procedures and do you want to continue the process?"); - frmBatchRefreshCheckedOut frmCO = new frmBatchRefreshCheckedOut(); - frmCO.MySessionInfo = MySessionInfo; - //frmCO.CheckedOutProcedures = dvil; - frmCO.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - frmCO.Width, Screen.PrimaryScreen.WorkingArea.Height - frmCO.Height); - frmCO.Show(this); - while (!this.Visible) - Application.DoEvents(); - } - } - this.Cursor = Cursors.Default; - } - private void RefreshTransitions() - { - this.Cursor = Cursors.WaitCursor; - List pil = new List(); - foreach (TreeNode tn in myProcedures.Keys) - if (tn.Checked) - pil.Add(myProcedures[tn]); - //PopulateTransitionInfoLists(pil); - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - pbProcess.Minimum = 0; - pbProcess.Maximum = pil.Count; - pbProcess.Step = 1; - while (pil.Count > 0) - { - ContentInfo.StaticContentInfoChange += new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange); - StringBuilder sbProcs = new StringBuilder(); - Queue piq = new Queue(); - foreach (ProcedureInfo pi in pil) - piq.Enqueue(pi); - pil.Clear(); - while (piq.Count > 0) - { - string msg = string.Empty; - ProcedureInfo pq = piq.Dequeue(); - if (!MySessionInfo.CanCheckOutItem(pq.ItemID, CheckOutType.Procedure, ref msg)) - { - pil.Add(pq); - sbProcs.AppendLine(msg); - } - else - { - RefreshProcedureTransitions(pq); - pbProcess.PerformStep(); - Application.DoEvents(); - } - } - ContentInfo.StaticContentInfoChange -= new StaticContentInfoEvent(ContentInfo_StaticContentInfoChange); - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - if (pil.Count > 0) - { - StringBuilder sb = new StringBuilder(); - sb.AppendLine("The batch refresh process was not usccessful for all procedures selected."); - sb.AppendLine("The following procedures were not able to be refreshed..."); - sb.AppendLine(); - sb.AppendLine(sbProcs.ToString()); - sb.AppendLine(); - sb.AppendLine("If you want to refresh these prcoedures, please contact the respective users and have them close the procedures."); - sb.AppendLine("Once this is complete you can continue the process otherwise you may terminate the process immediately."); - sb.AppendLine(); - sb.AppendLine("Have you requested the users to close the procedures and do you want to continue the process?"); - frmBatchRefreshCheckedOut frmCO = new frmBatchRefreshCheckedOut(); - frmCO.MySessionInfo = MySessionInfo; - frmCO.CheckedOutProcedures = pil; - frmCO.Location = new Point(Screen.PrimaryScreen.WorkingArea.Width - frmCO.Width, Screen.PrimaryScreen.WorkingArea.Height - frmCO.Height); - frmCO.Show(this); - while (!this.Visible) - Application.DoEvents(); - } - } - this.Cursor = Cursors.Default; - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private void DeletePDFs() - { - this.Cursor = Cursors.WaitCursor; - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - int affectedRows = ESP_DeletePDFs.Execute(selectedAdminTool.StoredProcedure); - txtProcess.AppendText(string.Format("Deleted {0} PDFs", affectedRows)); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - this.Cursor = Cursors.Default; - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private void IdentifyDisconnectedItems() - { - this.Cursor = Cursors.WaitCursor; - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - int rowCount = ESP_IdentifyDisconnectedItems.Execute(selectedAdminTool.StoredProcedure); - txtProcess.AppendText(string.Format("Disconnected Items Count: {0}", rowCount)); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - if (rowCount > 0) - { - txtResults.Clear(); - txtResults.AppendText(string.Format("The database contains {0} disconnected items.", rowCount)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText("It is recommended you contact Volian to assist in resolving this condition"); - } - else - { - txtResults.Text = "No Disconnected Records Found";// B2017-108 Always output results even if there isn't any - } - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - this.Cursor = Cursors.Default; - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private void PurgeDisconnectedItems() - { - this.Cursor = Cursors.WaitCursor; - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - int rowCount = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount"); - if (rowCount > 0) - { - ESP_PurgeDisconnectedItems.Execute(selectedAdminTool.StoredProcedure); - int rowCount2 = ESP_IdentifyDisconnectedItems.Execute("vesp_GetDisconnectedItemsCount"); - txtProcess.AppendText(string.Format("Disconnected Items Purged", rowCount)); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - txtResults.Clear(); - txtResults.AppendText(string.Format("The database contained {0} disconnected items.", rowCount)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(string.Format("The database now contains {0} disconnected items.", rowCount2)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - if (rowCount2 > 0) - txtResults.AppendText("It is recommended you contact Volian to assist in resolving this condition"); - } - else - { - txtResults.Clear(); - txtResults.AppendText(string.Format("The database contained {0} disconnected items.", rowCount)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(string.Format("No Disconnected Data to Purge!")); - } - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - this.Cursor = Cursors.Default; - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private void IdentifyUnusedRoFstsAndFigures() - { - this.Cursor = Cursors.WaitCursor; - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount"); - int rowCountFigures = ESP_GetUnusedFigures.Execute("vesp_GetUnusedFiguresCount"); - txtProcess.AppendText(string.Format("Unused RoFsts Count: {0}, Unused Figures Count: {1}", rowCountRoFst, rowCountFigures)); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - if (rowCountRoFst > 0 || rowCountFigures > 0) - { - txtResults.Clear(); - txtResults.AppendText(string.Format("The database contains {0} unused RoFsts.", rowCountRoFst)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(string.Format("The database contains {0} unused Figures items.", rowCountFigures)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - } - else - { - txtResults.Text = "No Unused Records Found";// B2017-108 Always output results even if there isn't any - } - - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - this.Cursor = Cursors.Default; - - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private void RemoveUnusedRoFstsAndFigures() - { - this.Cursor = Cursors.WaitCursor; - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - int rowCountRoFst = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount"); - int rowCountFigures = ESP_GetUnusedFigures.Execute("vesp_GetUnusedFiguresCount"); - if (rowCountRoFst > 0 || rowCountFigures > 0) - { - ESP_PurgeUnusedRoFstsAndFigures.Execute(selectedAdminTool.StoredProcedure); - int rowCountRoFst2 = ESP_GetUnusedRoFsts.Execute("vesp_GetUnusedRoFstsCount"); - int rowCountFigures2 = ESP_GetUnusedFigures.Execute("vesp_GetUnusedFiguresCount"); - txtProcess.AppendText(string.Format("Unsed RoFsts Purged", rowCountRoFst)); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(string.Format("Unsed Figures Purged", rowCountFigures)); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - txtResults.Clear(); - txtResults.AppendText(string.Format("The database contained {0} unused RoFsts.", rowCountRoFst)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(string.Format("The database contained {0} unused Figures items.", rowCountFigures)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(string.Format("The database now contains {0} unused RoFsts.", rowCountRoFst2)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(string.Format("The database now contains {0} unused Figures.", rowCountFigures2)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - if (rowCountRoFst2 > 0 || rowCountFigures2 > 0) - txtResults.AppendText("It is recommended you contact Volian to assist in resolving this condition"); - } - else - { - txtResults.Clear(); - txtResults.AppendText(string.Format("The database contained {0} unused RoFsts or Figures items.", rowCountRoFst+rowCountFigures)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(string.Format("No Unused Data to Purge!")); - } - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - this.Cursor = Cursors.Default; - - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private void IdentifyROAssociations() - { - this.Cursor = Cursors.WaitCursor; - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount"); - txtProcess.AppendText(string.Format("Unused RO Associations Count: {0}", rowCount)); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - if (rowCount > 0) - { - txtResults.Clear(); - txtResults.AppendText(string.Format("The database contains {0} unused RO Associations.", rowCount)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - } - else - { - txtResults.Text = "No unused RO Associations Found";// B2017-108 Always output results even if there isn't any - } - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - this.Cursor = Cursors.Default; - - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private void CleanUpROAssociations() - { - this.Cursor = Cursors.WaitCursor; - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - int rowCount = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount"); - if (rowCount > 0) - { - ESP_CleanupROAssoc.Execute(selectedAdminTool.StoredProcedure); - int rowCount2 = ESP_GetROAssoc.Execute("vesp_GetUnusedROAssociationsCount"); - txtProcess.AppendText(string.Format("Unused Referenced Object Associations Purged", rowCount)); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - txtResults.Clear(); - txtResults.AppendText(string.Format("The database contained {0} unused items.", rowCount)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(string.Format("The database now contains {0} unused items.", rowCount2)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - if (rowCount2 > 0) - txtResults.AppendText("It is recommended you contact Volian to assist in resolving this condition"); - } - else - { - txtResults.Clear(); - txtResults.AppendText(string.Format("The database contained {0} unused items.", rowCount)); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(string.Format("No Disconnected Data to Purge!")); - } - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - this.Cursor = Cursors.Default; - - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private void IdentifyNonEditableItems() - { - this.Cursor = Cursors.WaitCursor; - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - List myItems = ESP_IdentifyNonEditableItems.Execute(selectedAdminTool.StoredProcedure); - txtProcess.AppendText(string.Format("Non-Editable Items Count: {0}",myItems.Count)); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - if (myItems.Count > 0) - { - txtResults.Clear(); - txtResults.AppendText("The following items are non-editable..."); - txtResults.AppendText(Environment.NewLine); - txtResults.AppendText(Environment.NewLine); - foreach (ItemInfo ii in myItems) - { - txtResults.AppendText(ii.Path); - txtResults.AppendText(Environment.NewLine); - } - } - else - { - txtResults.Text = "No Non-Editable Items Found";// B2017-108 Always output results even if there isn't any - } - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - this.Cursor = Cursors.Default; - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private void GetDatabaseSessions() - { - this.Cursor = Cursors.WaitCursor; - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - txtResults.Clear(); - txtResults.AppendText(ESP_GetDatabaseSessions.Execute(selectedAdminTool.StoredProcedure)); - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - this.Cursor = Cursors.Default; - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private void FindROProblems() - { - this.Cursor = Cursors.WaitCursor; - DateTime pStart = DateTime.Now; - txtProcess.AppendText(pStart.ToString("MM/dd/yyyy @ HH:mm")); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - txtResults.Clear(); - //txtResults.AppendText(ExecuteStoredProcedureString.Execute(selectedAdminTool.StoredProcedure)); - DateTime pEnd = DateTime.Now; - txtProcess.AppendText(pEnd.ToString("MM/dd/yyyy @ HH:mm")); - Application.DoEvents(); - this.Cursor = Cursors.Default; - MessageBox.Show(string.Format("{0} Completed", selectedAdminTool.Title), string.Format("{0} Complete", selectedAdminTool.Title)); - } - private void btnRefresh_Click(object sender, EventArgs e) - { - txtProcess.Clear(); - txtResults.Clear();// C2017-027 - Clear results before admin tool is run - Application.DoEvents(); - if (btnRefresh.Text == "NO OPTION SELECTED") - { - MessageBox.Show("You must select an option under the Option panel", btnRefresh.Text); - return; - } - if (chkLater.Checked) - { - long later = long.Parse(dtpDate.Value.ToString("yyyyMMdd") + dtpTime.Value.ToString("HHmm")); - long now = long.Parse(DateTime.Now.ToString("yyyyMMddHHmm")); - while (now < later) - { - txtProcess.Clear(); - txtProcess.AppendText("Waiting..."); - System.Threading.Thread.Sleep(60000); - now = long.Parse(DateTime.Now.ToString("yyyyMMddHHmm")); - } - } - selectedAdminTool.Execute(); - } - private void ProcessUpdateROValues(DocVersionInfo dq) - { - InitialProgressBarMessage = string.Format("Updating ROs for {0}", dq.MyFolder.Name); - if (dq.DocVersionAssociationCount < 1) - { - ProgressBar.ColorTable = eProgressBarItemColor.Error; - FinalProgressBarMessage = "No ROs associated"; - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText("Error Updating ro.fst. No associated ro.fst"); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - return; - } - ROFstInfo roFstInfo = dq.DocVersionAssociations[0].MyROFst; - string rofstPath = roFstInfo.MyRODb.FolderPath + @"\ro.fst"; - if (!File.Exists(rofstPath)) - { - ProgressBar.ColorTable = eProgressBarItemColor.Error; - FinalProgressBarMessage = "No existing RO.FST"; - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText("No existing ro.fst in path " + roFstInfo.MyRODb.FolderPath + ". Check for invalid path"); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - return; - } - FileInfo fiRofst = new FileInfo(rofstPath); - Cursor = Cursors.WaitCursor; - using (DocVersion dv = DocVersion.Get(dq.VersionID)) - { - roFstInfo.ROTableUpdate += new ROFstInfoROTableUpdateEvent(roFstInfo_ROTableUpdate); - ROFst newrofst = ROFstInfo.RefreshROFst(roFstInfo.MyRODb, dv.DocVersionAssociations[0], dv, roFstInfo, DoProgressBarRefresh, txtProcess); - roFstInfo.ROTableUpdate -= new ROFstInfoROTableUpdateEvent(roFstInfo_ROTableUpdate); - } - Cursor = Cursors.Default; - ProgressBar.ColorTable = eProgressBarItemColor.Normal; - FinalProgressBarMessage = "ROs values updated"; - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText("ROs values updated"); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - return; - } - private void RefreshProcedureTransitions(ProcedureInfo pq) - { - DateTime start = DateTime.Now; - myFixes = new StringBuilder(); - ProcedureInfo.ResetTranCounters(); - ProcedureInfo.RefreshTransitions(pq);//, transitionsToDisconnected, transitionsToNonEditable); - TimeSpan ts = DateTime.Now - start; - txtProcess.AppendText(string.Format("Procedure: {1}{0}Checked {2} Transitions{0}Fixed {3} Transitions{0}Elapsed Seconds:{4}{0}{0}", Environment.NewLine, pq.DisplayNumber, ProcedureInfo.TranCheckCount, ProcedureInfo.TranFixCount, ts.TotalSeconds)); - if (myFixes.Length > 0) - { - txtResults.AppendText(myFixes.ToString()); - txtResults.AppendText(Environment.NewLine); - } - } - public List roFstInfo_ROTableUpdate(object sender, ROFstInfoROTableUpdateEventArgs args) - { - return VlnFlexGrid.ROTableUpdate(sender, args); - } - private void PopulateTransitionInfoLists(List pil) - { - Dictionary dic = new Dictionary(); - StringBuilder sb = new StringBuilder(); - foreach (ProcedureInfo pi in pil) - if (!dic.ContainsKey(pi.MyDocVersion.VersionID)) - { - dic.Add(pi.MyDocVersion.VersionID, pi.MyDocVersion.VersionID); - sb.Append(sb.Length == 0 ? pi.MyDocVersion.VersionID.ToString() : "," + pi.MyDocVersion.VersionID.ToString()); - } - txtProcess.AppendText("Preparing to process..."); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - //transitionsToDisconnected = TransitionInfoList.GetTransitionsToDisconnected(sb.ToString()); - //transitionsToNonEditable = TransitionInfoList.GetTransitionsToNonEditable(sb.ToString()); - } - private void ProgressBarShowText() - { - pbProcess.Refresh(); - int percent = (int)(((double)(pbProcess.Value - pbProcess.Minimum) / - (double)(pbProcess.Maximum - pbProcess.Minimum)) * 100); - using (Graphics gr = pbProcess.CreateGraphics()) - { - gr.DrawString(percent.ToString() + "%", - SystemFonts.DefaultFont, - Brushes.Black, - new PointF(pbProcess.Width / 2 - (gr.MeasureString(percent.ToString() + "%", - SystemFonts.DefaultFont).Width / 2.0F), - pbProcess.Height / 2 - (gr.MeasureString(percent.ToString() + "%", - SystemFonts.DefaultFont).Height / 2.0F))); - } - Application.DoEvents(); - } - StringBuilder myFixes; - // show the changes made in the Results pannel, include the ItemId of the step element - void ContentInfo_StaticContentInfoChange(object sender, StaticContentInfoEventArgs args) - { - if (args.Type == "TX") - { - if (args.NewValue.StartsWith("Reason for Change:")) - myFixes.AppendLine(string.Format("Fixed Transition for {1}({4}){0}Old Text: {2}{0}{3}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue, (sender as ItemInfo).ItemID)); - else - myFixes.AppendLine(string.Format("Fixed Transition for {1}({4}){0}Old Text: {2}{0}New Text: {3}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue, (sender as ItemInfo).ItemID)); - } - else if (args.Type == "RO") - { - txtResults.AppendText(string.Format("Fixed Referenced Object for {1}({4}){0}Old Text: {2}{0}New Text: {3}{0}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue,(sender as ItemInfo).ItemID)); - Application.DoEvents(); - //myFixes.AppendLine(string.Format("Fixed Referenced Object for {1}{0}Old Text: {2}{0}New Text: {3}{0}", Environment.NewLine, (sender as ItemInfo).ShortPath, args.OldValue, args.NewValue)); - } - } - private void btnClear_Click(object sender, EventArgs e) - { - txtResults.Clear(); - } - private void btnSave_Click(object sender, EventArgs e) - { - SaveFileDialog sfd = new SaveFileDialog(); - sfd.DefaultExt = "txt"; - sfd.AddExtension = true; - sfd.Filter = "Text Files (*.txt)|*.txt"; - sfd.FileName = string.Format("BatchRefreshResults_{0}", DateTime.Now.ToString("yyyyMMdd_HHmm")); - sfd.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + @"\VEPROMS"; - DialogResult dr = sfd.ShowDialog(); - if (dr == DialogResult.OK) - { - System.IO.StreamWriter sw = new System.IO.StreamWriter(sfd.FileName); - sw.Write(txtResults.Text); - sw.Close(); - } - } - private void myTV_AfterCheck(object sender, TreeViewEventArgs e) - { - if (e.Action != TreeViewAction.Unknown) - if(e.Node.Nodes.Count > 0) - CheckChildNodes(e.Node, e.Node.Checked); - } - private void CheckChildNodes(TreeNode treeNode, bool ischecked) - { - foreach (TreeNode tn in treeNode.Nodes) - { - tn.Checked = ischecked; - if (tn.Nodes.Count > 0) - CheckChildNodes(tn, ischecked); - } - } - private ProgressBarItem _ProgressBar = null; - public ProgressBarItem ProgressBar - { - get { return _ProgressBar; } - set - { - _ProgressBar = value; - _ProgressBar.TextVisible = true; - } - } - private void DoProgressBarRefresh(int value, int max, string text) - { - if (ProgressBar == null) return; - ProgressBar.Maximum = max; - ProgressBar.Value = value; - ProgressBar.Text = text; - Application.DoEvents(); - } - private string InitialProgressBarMessage - { - set - { - if (ProgressBar == null) return; - ProgressBar.Maximum = 100; - ProgressBar.Value = 0; - ProgressBar.Text = value; - txtProcess.AppendText(value); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - } - } - private string FinalProgressBarMessage - { - set - { - if (ProgressBar == null) return; - ProgressBar.Value = 100; - ProgressBar.Maximum = 100; - ProgressBar.Text = value; - txtProcess.AppendText(value); - txtProcess.AppendText(Environment.NewLine); - txtProcess.AppendText(Environment.NewLine); - Application.DoEvents(); - } - } - private void cbxAdminTools_SelectedIndexChanged(object sender, EventArgs e) - { - selectedAdminTool = cbxAdminTools.SelectedItem as AdminTool; - if (selectedAdminTool == null) - { - lblCaption.Text = string.Empty; - lblDescription.Text = string.Empty; - lblWarning.Text = string.Empty; - myTV.Nodes.Clear(); - btnRefresh.Text = "NO OPTION SELECTED"; - } - else - { - lblCaption.Text = selectedAdminTool.Caption; - lblDescription.Text = selectedAdminTool.Description; - lblWarning.Text = selectedAdminTool.WarningPrefix + " " + selectedAdminTool.Warning; - lblWarning.Visible = selectedAdminTool.Warning.Length > 0; - ResetTV(selectedAdminTool.NoProcedures); - btnRefresh.Text = selectedAdminTool.Title; - lblCaption.Focus(); - } - } - private void chkLater_CheckedChanged(object sender, EventArgs e) - { - pnlLater.Enabled = chkLater.Checked; - } - private void cbxAdminTools_Click(object sender, EventArgs e) - { - cbxAdminTools.DroppedDown = true; // expand dropdown list if user clicks anywhere on the dropdown control - } - } - public class AdminTool : IComparable - { - private string _Title; - public string Title - { - get { return _Title; } - set { _Title = value; } - } - private string _Caption; - public string Caption - { - get { return _Caption; } - set { _Caption = value; } - } - private string _Description; - public string Description - { - get { return _Description; } - set { _Description = value; } - } - private string _Warning; - public string Warning - { - get { return _Warning; } - set { _Warning = value; } - } - private string _WarningPrefix; - public string WarningPrefix - { - get { return _WarningPrefix; } - set { _WarningPrefix = value; } - } - private bool _NoProcedures; - public bool NoProcedures - { - get { return _NoProcedures; } - set { _NoProcedures = value; } - } - private bool _NoTreeView; - public bool NoTreeView - { - get { return _NoTreeView; } - set { _NoTreeView = value; } - } - private AdminToolExecute _MyExecute; - public AdminToolExecute MyExecute - { - get { return _MyExecute; } - set { _MyExecute = value; } - } - private string _StoredProcedure; - public string StoredProcedure - { - get { return _StoredProcedure; } - set { _StoredProcedure = value; } - } - public void Execute() - { - if (MyExecute != null) MyExecute(); - } - public AdminTool() - { - } - public AdminTool(string title, string caption, string description, string warning, string warningPrefix, bool noProcedures, bool noTreeView, AdminToolExecute myExecute) - { - _Title = title; - _Caption = caption; - _Description = description; - _Warning = warning; - _WarningPrefix = warningPrefix; - _NoProcedures = noProcedures; - _NoTreeView = noTreeView; - _MyExecute = myExecute; - } - public AdminTool(string title, string caption, string description, string warning, string warningPrefix, bool noProcedures, bool noTreeView, string storedProcedure, AdminToolExecute myExecute) - { - _Title = title; - _Caption = caption; - _Description = description; - _Warning = warning; - _WarningPrefix = warningPrefix; - _NoProcedures = noProcedures; - _NoTreeView = noTreeView; - _StoredProcedure = storedProcedure; - _MyExecute = myExecute; - } - public int CompareTo(AdminTool at) - { - return this.Title.CompareTo(at.Title); - } - } - public class AdminTools : List - { - public void Add(string title, string caption, string description, string warning, string warningPrefix, bool noProcedures, bool noTreeView, AdminToolExecute myExecute) - { - base.Add(new AdminTool(title, caption, description, warning, warningPrefix, noProcedures, noTreeView, myExecute)); - } - public void Add(string title, string caption, string description, string warning, string warningPrefix, bool noProcedures, bool noTreeView, string storedProcedure, AdminToolExecute myExecute) - { - base.Add(new AdminTool(title, caption, description, warning, warningPrefix, noProcedures, noTreeView, storedProcedure, myExecute)); - } - } - public delegate void AdminToolExecute(); -} diff --git a/PROMS/VEPROMS User Interface/frmBatchRefresh - Copy.designer.cs b/PROMS/VEPROMS User Interface/frmBatchRefresh - Copy.designer.cs deleted file mode 100644 index 37fe2ebf..00000000 --- a/PROMS/VEPROMS User Interface/frmBatchRefresh - Copy.designer.cs +++ /dev/null @@ -1,472 +0,0 @@ -namespace VEPROMS -{ - partial class frmBatchRefresh - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.scBatch = new System.Windows.Forms.SplitContainer(); - this.splitContainer2 = new System.Windows.Forms.SplitContainer(); - this.lblWarning = new System.Windows.Forms.Label(); - this.lblDescription = new System.Windows.Forms.Label(); - this.lblCaption = new System.Windows.Forms.Label(); - this.cbxAdminTools = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.label1 = new System.Windows.Forms.Label(); - this.myTV = new System.Windows.Forms.TreeView(); - this.label2 = new System.Windows.Forms.Label(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.panel2 = new System.Windows.Forms.Panel(); - this.txtProcess = new System.Windows.Forms.TextBox(); - this.pbProcess = new System.Windows.Forms.ProgressBar(); - this.label6 = new System.Windows.Forms.Label(); - this.panel3 = new System.Windows.Forms.Panel(); - this.pnlLater = new System.Windows.Forms.Panel(); - this.label5 = new System.Windows.Forms.Label(); - this.dtpTime = new System.Windows.Forms.DateTimePicker(); - this.dtpDate = new System.Windows.Forms.DateTimePicker(); - this.btnRefresh = new System.Windows.Forms.Button(); - this.chkLater = new System.Windows.Forms.CheckBox(); - this.label4 = new System.Windows.Forms.Label(); - this.txtResults = new System.Windows.Forms.TextBox(); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnSave = new System.Windows.Forms.Button(); - this.btnClear = new System.Windows.Forms.Button(); - this.label3 = new System.Windows.Forms.Label(); - this.scBatch.Panel1.SuspendLayout(); - this.scBatch.Panel2.SuspendLayout(); - this.scBatch.SuspendLayout(); - this.splitContainer2.Panel1.SuspendLayout(); - this.splitContainer2.Panel2.SuspendLayout(); - this.splitContainer2.SuspendLayout(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.panel2.SuspendLayout(); - this.panel3.SuspendLayout(); - this.pnlLater.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // scBatch - // - this.scBatch.Dock = System.Windows.Forms.DockStyle.Fill; - this.scBatch.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; - this.scBatch.IsSplitterFixed = true; - this.scBatch.Location = new System.Drawing.Point(0, 0); - this.scBatch.Name = "scBatch"; - // - // scBatch.Panel1 - // - this.scBatch.Panel1.Controls.Add(this.splitContainer2); - // - // scBatch.Panel2 - // - this.scBatch.Panel2.Controls.Add(this.splitContainer1); - this.scBatch.Size = new System.Drawing.Size(994, 472); - this.scBatch.SplitterDistance = 300; - this.scBatch.TabIndex = 1; - // - // splitContainer2 - // - this.splitContainer2.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer2.Location = new System.Drawing.Point(0, 0); - this.splitContainer2.Name = "splitContainer2"; - this.splitContainer2.Orientation = System.Windows.Forms.Orientation.Horizontal; - // - // splitContainer2.Panel1 - // - this.splitContainer2.Panel1.Controls.Add(this.lblWarning); - this.splitContainer2.Panel1.Controls.Add(this.lblDescription); - this.splitContainer2.Panel1.Controls.Add(this.lblCaption); - this.splitContainer2.Panel1.Controls.Add(this.cbxAdminTools); - this.splitContainer2.Panel1.Controls.Add(this.label1); - // - // splitContainer2.Panel2 - // - this.splitContainer2.Panel2.Controls.Add(this.myTV); - this.splitContainer2.Panel2.Controls.Add(this.label2); - this.splitContainer2.Size = new System.Drawing.Size(300, 472); - this.splitContainer2.SplitterDistance = 219; - this.splitContainer2.TabIndex = 0; - // - // lblWarning - // - this.lblWarning.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblWarning.BackColor = System.Drawing.Color.PaleGoldenrod; - this.lblWarning.ForeColor = System.Drawing.Color.Red; - this.lblWarning.Location = new System.Drawing.Point(5, 175); - this.lblWarning.Name = "lblWarning"; - this.lblWarning.Size = new System.Drawing.Size(290, 38); - this.lblWarning.TabIndex = 4; - this.lblWarning.Visible = false; - // - // lblDescription - // - this.lblDescription.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblDescription.Location = new System.Drawing.Point(5, 66); - this.lblDescription.Name = "lblDescription"; - this.lblDescription.Size = new System.Drawing.Size(290, 109); - this.lblDescription.TabIndex = 3; - // - // lblCaption - // - this.lblCaption.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.lblCaption.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.lblCaption.Location = new System.Drawing.Point(5, 48); - this.lblCaption.Name = "lblCaption"; - this.lblCaption.Size = new System.Drawing.Size(290, 19); - this.lblCaption.TabIndex = 2; - this.lblCaption.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // cbxAdminTools - // - this.cbxAdminTools.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.cbxAdminTools.FlatStyle = System.Windows.Forms.FlatStyle.Standard; - this.cbxAdminTools.FormattingEnabled = true; - this.cbxAdminTools.Location = new System.Drawing.Point(5, 27); - this.cbxAdminTools.Name = "cbxAdminTools"; - this.cbxAdminTools.Size = new System.Drawing.Size(290, 21); - this.cbxAdminTools.TabIndex = 1; - this.cbxAdminTools.WatermarkBehavior = DevComponents.DotNetBar.eWatermarkBehavior.HideNonEmpty; - this.cbxAdminTools.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.cbxAdminTools.WatermarkText = "Select Adminstrative Tool"; - this.cbxAdminTools.SelectedIndexChanged += new System.EventHandler(this.cbxAdminTools_SelectedIndexChanged); - this.cbxAdminTools.Click += new System.EventHandler(this.cbxAdminTools_Click); - // - // label1 - // - this.label1.BackColor = System.Drawing.SystemColors.ActiveCaption; - this.label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.label1.Dock = System.Windows.Forms.DockStyle.Top; - this.label1.Location = new System.Drawing.Point(0, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(300, 23); - this.label1.TabIndex = 0; - this.label1.Text = "Options"; - this.label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // myTV - // - this.myTV.CheckBoxes = true; - this.myTV.Dock = System.Windows.Forms.DockStyle.Fill; - this.myTV.Location = new System.Drawing.Point(0, 23); - this.myTV.Name = "myTV"; - this.myTV.Size = new System.Drawing.Size(300, 226); - this.myTV.TabIndex = 4; - this.myTV.AfterCheck += new System.Windows.Forms.TreeViewEventHandler(this.myTV_AfterCheck); - // - // label2 - // - this.label2.BackColor = System.Drawing.SystemColors.ActiveCaption; - this.label2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.label2.Dock = System.Windows.Forms.DockStyle.Top; - this.label2.Location = new System.Drawing.Point(0, 0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(300, 23); - this.label2.TabIndex = 1; - this.label2.Text = "Selected Procedures Or Sets"; - this.label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1; - this.splitContainer1.Location = new System.Drawing.Point(0, 0); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.panel2); - this.splitContainer1.Panel1.Controls.Add(this.label4); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.txtResults); - this.splitContainer1.Panel2.Controls.Add(this.panel1); - this.splitContainer1.Panel2.Controls.Add(this.label3); - this.splitContainer1.Size = new System.Drawing.Size(690, 472); - this.splitContainer1.SplitterDistance = 300; - this.splitContainer1.TabIndex = 0; - // - // panel2 - // - this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.panel2.Controls.Add(this.txtProcess); - this.panel2.Controls.Add(this.pbProcess); - this.panel2.Controls.Add(this.label6); - this.panel2.Controls.Add(this.panel3); - this.panel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel2.Location = new System.Drawing.Point(0, 23); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(300, 449); - this.panel2.TabIndex = 4; - // - // txtProcess - // - this.txtProcess.AcceptsReturn = true; - this.txtProcess.Dock = System.Windows.Forms.DockStyle.Fill; - this.txtProcess.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.txtProcess.Location = new System.Drawing.Point(0, 145); - this.txtProcess.Multiline = true; - this.txtProcess.Name = "txtProcess"; - this.txtProcess.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.txtProcess.Size = new System.Drawing.Size(298, 302); - this.txtProcess.TabIndex = 5; - // - // pbProcess - // - this.pbProcess.Dock = System.Windows.Forms.DockStyle.Top; - this.pbProcess.Location = new System.Drawing.Point(0, 122); - this.pbProcess.Name = "pbProcess"; - this.pbProcess.Size = new System.Drawing.Size(298, 23); - this.pbProcess.TabIndex = 6; - // - // label6 - // - this.label6.BackColor = System.Drawing.SystemColors.ActiveCaption; - this.label6.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.label6.Dock = System.Windows.Forms.DockStyle.Top; - this.label6.Location = new System.Drawing.Point(0, 99); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(298, 23); - this.label6.TabIndex = 3; - this.label6.Text = "Process Status"; - this.label6.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // panel3 - // - this.panel3.Controls.Add(this.pnlLater); - this.panel3.Controls.Add(this.btnRefresh); - this.panel3.Controls.Add(this.chkLater); - this.panel3.Dock = System.Windows.Forms.DockStyle.Top; - this.panel3.Location = new System.Drawing.Point(0, 0); - this.panel3.Name = "panel3"; - this.panel3.Padding = new System.Windows.Forms.Padding(6); - this.panel3.Size = new System.Drawing.Size(298, 99); - this.panel3.TabIndex = 2; - // - // pnlLater - // - this.pnlLater.Controls.Add(this.label5); - this.pnlLater.Controls.Add(this.dtpTime); - this.pnlLater.Controls.Add(this.dtpDate); - this.pnlLater.Dock = System.Windows.Forms.DockStyle.Top; - this.pnlLater.Enabled = false; - this.pnlLater.Location = new System.Drawing.Point(6, 23); - this.pnlLater.Name = "pnlLater"; - this.pnlLater.Padding = new System.Windows.Forms.Padding(6); - this.pnlLater.Size = new System.Drawing.Size(286, 37); - this.pnlLater.TabIndex = 3; - // - // label5 - // - this.label5.AutoSize = true; - this.label5.Location = new System.Drawing.Point(105, 15); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(18, 13); - this.label5.TabIndex = 5; - this.label5.Text = "@"; - // - // dtpTime - // - this.dtpTime.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.dtpTime.CustomFormat = "HH:mm"; - this.dtpTime.Format = System.Windows.Forms.DateTimePickerFormat.Custom; - this.dtpTime.Location = new System.Drawing.Point(129, 9); - this.dtpTime.Name = "dtpTime"; - this.dtpTime.ShowUpDown = true; - this.dtpTime.Size = new System.Drawing.Size(140, 20); - this.dtpTime.TabIndex = 4; - // - // dtpDate - // - this.dtpDate.Format = System.Windows.Forms.DateTimePickerFormat.Short; - this.dtpDate.Location = new System.Drawing.Point(9, 9); - this.dtpDate.Name = "dtpDate"; - this.dtpDate.Size = new System.Drawing.Size(90, 20); - this.dtpDate.TabIndex = 3; - // - // btnRefresh - // - this.btnRefresh.Dock = System.Windows.Forms.DockStyle.Bottom; - this.btnRefresh.Location = new System.Drawing.Point(6, 65); - this.btnRefresh.Name = "btnRefresh"; - this.btnRefresh.Size = new System.Drawing.Size(286, 28); - this.btnRefresh.TabIndex = 1; - this.btnRefresh.Text = "NO OPTION SELECTED"; - this.btnRefresh.UseVisualStyleBackColor = true; - this.btnRefresh.Click += new System.EventHandler(this.btnRefresh_Click); - // - // chkLater - // - this.chkLater.AutoSize = true; - this.chkLater.Dock = System.Windows.Forms.DockStyle.Top; - this.chkLater.Location = new System.Drawing.Point(6, 6); - this.chkLater.Name = "chkLater"; - this.chkLater.Size = new System.Drawing.Size(286, 17); - this.chkLater.TabIndex = 4; - this.chkLater.Text = "Process Later"; - this.chkLater.UseVisualStyleBackColor = true; - this.chkLater.CheckedChanged += new System.EventHandler(this.chkLater_CheckedChanged); - // - // label4 - // - this.label4.BackColor = System.Drawing.SystemColors.ActiveCaption; - this.label4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.label4.Dock = System.Windows.Forms.DockStyle.Top; - this.label4.Location = new System.Drawing.Point(0, 0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(300, 23); - this.label4.TabIndex = 3; - this.label4.Text = "Process"; - this.label4.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // txtResults - // - this.txtResults.Dock = System.Windows.Forms.DockStyle.Fill; - this.txtResults.Font = new System.Drawing.Font("Consolas", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.txtResults.Location = new System.Drawing.Point(0, 52); - this.txtResults.Multiline = true; - this.txtResults.Name = "txtResults"; - this.txtResults.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.txtResults.Size = new System.Drawing.Size(386, 420); - this.txtResults.TabIndex = 4; - // - // panel1 - // - this.panel1.Controls.Add(this.btnSave); - this.panel1.Controls.Add(this.btnClear); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 23); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(386, 29); - this.panel1.TabIndex = 3; - // - // btnSave - // - this.btnSave.Dock = System.Windows.Forms.DockStyle.Left; - this.btnSave.Location = new System.Drawing.Point(95, 0); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(95, 29); - this.btnSave.TabIndex = 3; - this.btnSave.Text = "Save Results"; - this.btnSave.UseVisualStyleBackColor = true; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // btnClear - // - this.btnClear.Dock = System.Windows.Forms.DockStyle.Left; - this.btnClear.Location = new System.Drawing.Point(0, 0); - this.btnClear.Name = "btnClear"; - this.btnClear.Size = new System.Drawing.Size(95, 29); - this.btnClear.TabIndex = 2; - this.btnClear.Text = "Clear Results"; - this.btnClear.UseVisualStyleBackColor = true; - this.btnClear.Click += new System.EventHandler(this.btnClear_Click); - // - // label3 - // - this.label3.BackColor = System.Drawing.SystemColors.ActiveCaption; - this.label3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.label3.Dock = System.Windows.Forms.DockStyle.Top; - this.label3.Location = new System.Drawing.Point(0, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(386, 23); - this.label3.TabIndex = 2; - this.label3.Text = "Results"; - this.label3.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // frmBatchRefresh - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(994, 472); - this.Controls.Add(this.scBatch); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "frmBatchRefresh"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Administrative Tools"; - this.Load += new System.EventHandler(this.frmBatchRefresh_Load); - this.scBatch.Panel1.ResumeLayout(false); - this.scBatch.Panel2.ResumeLayout(false); - this.scBatch.ResumeLayout(false); - this.splitContainer2.Panel1.ResumeLayout(false); - this.splitContainer2.Panel2.ResumeLayout(false); - this.splitContainer2.ResumeLayout(false); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.Panel2.PerformLayout(); - this.splitContainer1.ResumeLayout(false); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.panel3.ResumeLayout(false); - this.panel3.PerformLayout(); - this.pnlLater.ResumeLayout(false); - this.pnlLater.PerformLayout(); - this.panel1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.SplitContainer scBatch; - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.Button btnSave; - private System.Windows.Forms.Button btnClear; - private System.Windows.Forms.Button btnRefresh; - private System.Windows.Forms.SplitContainer splitContainer2; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.TextBox txtResults; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Panel panel3; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.TreeView myTV; - private System.Windows.Forms.DateTimePicker dtpTime; - private System.Windows.Forms.DateTimePicker dtpDate; - private System.Windows.Forms.Panel pnlLater; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.TextBox txtProcess; - private System.Windows.Forms.ProgressBar pbProcess; - private DevComponents.DotNetBar.Controls.ComboBoxEx cbxAdminTools; - private System.Windows.Forms.Label lblCaption; - private System.Windows.Forms.Label lblDescription; - private System.Windows.Forms.Label lblWarning; - private System.Windows.Forms.CheckBox chkLater; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/frmBatchRefresh - Copy.resx b/PROMS/VEPROMS User Interface/frmBatchRefresh - Copy.resx deleted file mode 100644 index 527d7b26..00000000 --- a/PROMS/VEPROMS User Interface/frmBatchRefresh - Copy.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 38 - - \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.Designer.cs.bak b/PROMS/VEPROMS User Interface/frmVEPROMS.Designer.cs.bak deleted file mode 100644 index a5af8d4a..00000000 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.Designer.cs.bak +++ /dev/null @@ -1,1582 +0,0 @@ -namespace VEPROMS -{ - partial class frmVEPROMS - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmVEPROMS)); - this.ribbonControl1 = new DevComponents.DotNetBar.RibbonControl(); - this.btnHelp = new DevComponents.DotNetBar.ButtonItem(); - this.btnHelpManual = new DevComponents.DotNetBar.ButtonItem(); - this.btnHelpAbout = new DevComponents.DotNetBar.ButtonItem(); - this.btnHelpVWeb = new DevComponents.DotNetBar.ButtonItem(); - this.btnShortCuts = new DevComponents.DotNetBar.ButtonItem(); - this.btnSendErrorLog = new DevComponents.DotNetBar.ButtonItem(); - this.office2007StartButton1 = new DevComponents.DotNetBar.Office2007StartButton(); - this.itemContainer1 = new DevComponents.DotNetBar.ItemContainer(); - this.itemContainer2 = new DevComponents.DotNetBar.ItemContainer(); - this.itemContainer3 = new DevComponents.DotNetBar.ItemContainer(); - this.btnNew = new DevComponents.DotNetBar.ButtonItem(); - this.btnOpen = new DevComponents.DotNetBar.ButtonItem(); - this.btnPrint = new DevComponents.DotNetBar.ButtonItem(); - this.btnPrepare = new DevComponents.DotNetBar.ButtonItem(); - this.btnAdmin = new DevComponents.DotNetBar.ButtonItem(); - this.btnUpdateFormats = new DevComponents.DotNetBar.ButtonItem(); - this.icRecentDocs = new DevComponents.DotNetBar.ItemContainer(); - this.labelItem8 = new DevComponents.DotNetBar.LabelItem(); - this.itemContainer5 = new DevComponents.DotNetBar.ItemContainer(); - this.btnOptions = new DevComponents.DotNetBar.ButtonItem(); - this.btnExit = new DevComponents.DotNetBar.ButtonItem(); - this.qatCustomizeItem1 = new DevComponents.DotNetBar.QatCustomizeItem(); - this.galleryGroup1 = new DevComponents.DotNetBar.GalleryGroup(); - this.galleryGroup2 = new DevComponents.DotNetBar.GalleryGroup(); - this.galleryGroup3 = new DevComponents.DotNetBar.GalleryGroup(); - this.Common = new DevComponents.DotNetBar.GalleryGroup(); - this.Math = new DevComponents.DotNetBar.GalleryGroup(); - this.Misc = new DevComponents.DotNetBar.GalleryGroup(); - this.bottomBar = new DevComponents.DotNetBar.Bar(); - this.cmbFont = new System.Windows.Forms.ComboBox(); - this.labelItem10 = new DevComponents.DotNetBar.LabelItem(); - this.bottomProgBar = new DevComponents.DotNetBar.ProgressBarItem(); - this.labelItem20 = new DevComponents.DotNetBar.LabelItem(); - this.lblLocked = new DevComponents.DotNetBar.LabelItem(); - this.labelItem9 = new DevComponents.DotNetBar.LabelItem(); - this.lblEditView = new DevComponents.DotNetBar.LabelItem(); - this.labelItem11 = new DevComponents.DotNetBar.LabelItem(); - this.btnItemInfo = new DevComponents.DotNetBar.ButtonItem(); - this.lblItemID = new DevComponents.DotNetBar.LabelItem(); - this.lblResolution = new DevComponents.DotNetBar.LabelItem(); - this.btnEditItem = new DevComponents.DotNetBar.ButtonItem(); - this.epAnnotations = new DevComponents.DotNetBar.ExpandablePanel(); - this.ctrlAnnotationDetails = new Volian.Controls.Library.AnnotationDetails(); - this.btnAnnoDetailsPushPin = new DevComponents.DotNetBar.ButtonX(); - this.epProcedures = new DevComponents.DotNetBar.ExpandablePanel(); - this.tv = new Volian.Controls.Library.vlnTreeView(); - this.infoPanel = new DevComponents.DotNetBar.ExpandablePanel(); - this.infoTabs = new DevComponents.DotNetBar.TabControl(); - this.infotabControlPanelTags = new DevComponents.DotNetBar.TabControlPanel(); - this.panelEx1 = new DevComponents.DotNetBar.PanelEx(); - this.displayTags = new Volian.Controls.Library.DisplayTags(); - this.infotabTags = new DevComponents.DotNetBar.TabItem(this.components); - this.tcpApplicability = new DevComponents.DotNetBar.TabControlPanel(); - this.displayApplicability = new Volian.Controls.Library.DisplayApplicability(); - this.infotabApplicability = new DevComponents.DotNetBar.TabItem(this.components); - this.tabControlPanel1 = new DevComponents.DotNetBar.TabControlPanel(); - this.displayHistory = new Volian.Controls.Library.DisplayHistory(); - this.infotabHistory = new DevComponents.DotNetBar.TabItem(this.components); - this.infotabControlPanelRO = new DevComponents.DotNetBar.TabControlPanel(); - this.displayRO = new Volian.Controls.Library.DisplayRO(); - this.infotabRO = new DevComponents.DotNetBar.TabItem(this.components); - this.infotabControlPanelTransitions = new DevComponents.DotNetBar.TabControlPanel(); - this.displayTransition = new Volian.Controls.Library.DisplayTransition(); - this.infotabTransition = new DevComponents.DotNetBar.TabItem(this.components); - this.navigationPanePanel2 = new DevComponents.DotNetBar.NavigationPanePanel(); - this.expandableSplitter1 = new DevComponents.DotNetBar.ExpandableSplitter(); - this.expandableSplitter2 = new DevComponents.DotNetBar.ExpandableSplitter(); - this.expandableSplitter3 = new DevComponents.DotNetBar.ExpandableSplitter(); - this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip(); - this.toolTip1 = new System.Windows.Forms.ToolTip(this.components); - this.tmrTreeView = new System.Windows.Forms.Timer(this.components); - this.tmrAutomatic = new System.Windows.Forms.Timer(this.components); - this.toolsPanel = new DevComponents.DotNetBar.ExpandablePanel(); - this.toolsTabs = new DevComponents.DotNetBar.TabControl(); - this.annotationSearch = new DevComponents.DotNetBar.TabControlPanel(); - this.displaySearch1 = new Volian.Controls.Library.DisplaySearch(); - this.toolstabResults = new DevComponents.DotNetBar.TabItem(this.components); - this.tabControlPanel3 = new DevComponents.DotNetBar.TabControlPanel(); - this.displayReports = new Volian.Controls.Library.DisplayReports(); - this.toosTabReports = new DevComponents.DotNetBar.TabItem(this.components); - this.tabControlPanelLD = new DevComponents.DotNetBar.TabControlPanel(); - this.displayLibDocs = new Volian.Controls.Library.DisplayLibDocs(); - this.tabItemLibDocs = new DevComponents.DotNetBar.TabItem(this.components); - this.tabControlPanel2 = new DevComponents.DotNetBar.TabControlPanel(); - this.panelEx3 = new DevComponents.DotNetBar.PanelEx(); - this.displayBookMarks = new Volian.Controls.Library.DisplayBookMarks(); - this.toolsTabBookMarks = new DevComponents.DotNetBar.TabItem(this.components); - this.expandableSplitter4 = new DevComponents.DotNetBar.ExpandableSplitter(); - this.buttonItem1 = new DevComponents.DotNetBar.ButtonItem(); - this.itemAnnotationsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.tc = new Volian.Controls.Library.DisplayTabControl(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - ((System.ComponentModel.ISupportInitialize)(this.bottomBar)).BeginInit(); - this.bottomBar.SuspendLayout(); - this.epAnnotations.SuspendLayout(); - this.epProcedures.SuspendLayout(); - this.infoPanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.infoTabs)).BeginInit(); - this.infoTabs.SuspendLayout(); - this.infotabControlPanelTags.SuspendLayout(); - this.panelEx1.SuspendLayout(); - this.tcpApplicability.SuspendLayout(); - this.tabControlPanel1.SuspendLayout(); - this.infotabControlPanelRO.SuspendLayout(); - this.infotabControlPanelTransitions.SuspendLayout(); - this.toolsPanel.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.toolsTabs)).BeginInit(); - this.toolsTabs.SuspendLayout(); - this.annotationSearch.SuspendLayout(); - this.tabControlPanel3.SuspendLayout(); - this.tabControlPanelLD.SuspendLayout(); - this.tabControlPanel2.SuspendLayout(); - this.panelEx3.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).BeginInit(); - this.SuspendLayout(); - // - // ribbonControl1 - // - // - // - // - this.ribbonControl1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.ribbonControl1.CaptionVisible = true; - this.ribbonControl1.Dock = System.Windows.Forms.DockStyle.Top; - this.ribbonControl1.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.btnHelp}); - this.ribbonControl1.KeyTipsEnabled = false; - this.ribbonControl1.KeyTipsFont = new System.Drawing.Font("Tahoma", 7F); - this.ribbonControl1.Location = new System.Drawing.Point(5, 1); - this.ribbonControl1.Name = "ribbonControl1"; - this.ribbonControl1.Padding = new System.Windows.Forms.Padding(0, 0, 0, 2); - this.ribbonControl1.QuickToolbarItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.office2007StartButton1, - this.qatCustomizeItem1}); - this.ribbonControl1.Size = new System.Drawing.Size(1185, 56); - this.ribbonControl1.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.ribbonControl1.SystemText.MaximizeRibbonText = "&Maximize the Ribbon"; - this.ribbonControl1.SystemText.MinimizeRibbonText = "Mi&nimize the Ribbon"; - this.ribbonControl1.SystemText.QatAddItemText = "&Add to Quick Access Toolbar"; - this.ribbonControl1.SystemText.QatCustomizeMenuLabel = "Customize Quick Access Toolbar"; - this.ribbonControl1.SystemText.QatCustomizeText = "&Customize Quick Access Toolbar..."; - this.ribbonControl1.SystemText.QatDialogAddButton = "&Add >>"; - this.ribbonControl1.SystemText.QatDialogCancelButton = "Cancel"; - this.ribbonControl1.SystemText.QatDialogCaption = "Customize Quick Access Toolbar"; - this.ribbonControl1.SystemText.QatDialogCategoriesLabel = "&Choose commands from:"; - this.ribbonControl1.SystemText.QatDialogOkButton = "OK"; - this.ribbonControl1.SystemText.QatDialogPlacementCheckbox = "&Place Quick Access Toolbar below the Ribbon"; - this.ribbonControl1.SystemText.QatDialogRemoveButton = "&Remove"; - this.ribbonControl1.SystemText.QatPlaceAboveRibbonText = "&Place Quick Access Toolbar above the Ribbon"; - this.ribbonControl1.SystemText.QatPlaceBelowRibbonText = "&Place Quick Access Toolbar below the Ribbon"; - this.ribbonControl1.SystemText.QatRemoveItemText = "&Remove from Quick Access Toolbar"; - this.ribbonControl1.TabGroupHeight = 14; - this.ribbonControl1.TabIndex = 0; - this.ribbonControl1.Text = "ribbonControl1"; - // - // btnHelp - // - this.btnHelp.AutoExpandOnClick = true; - this.btnHelp.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - this.btnHelp.Image = ((System.Drawing.Image)(resources.GetObject("btnHelp.Image"))); - this.btnHelp.ItemAlignment = DevComponents.DotNetBar.eItemAlignment.Far; - this.btnHelp.KeyTips = "?"; - this.btnHelp.Name = "btnHelp"; - this.btnHelp.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.btnHelpManual, - this.btnHelpAbout, - this.btnHelpVWeb, - this.btnShortCuts, - this.btnSendErrorLog}); - this.btnHelp.Text = "Help"; - // - // btnHelpManual - // - this.btnHelpManual.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - this.btnHelpManual.Image = ((System.Drawing.Image)(resources.GetObject("btnHelpManual.Image"))); - this.btnHelpManual.Name = "btnHelpManual"; - this.btnHelpManual.Text = "User Manual"; - // - // btnHelpAbout - // - this.btnHelpAbout.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - this.btnHelpAbout.Image = ((System.Drawing.Image)(resources.GetObject("btnHelpAbout.Image"))); - this.btnHelpAbout.Name = "btnHelpAbout"; - this.btnHelpAbout.Text = "About"; - this.btnHelpAbout.Click += new System.EventHandler(this.btnAbout_Click); - // - // btnHelpVWeb - // - this.btnHelpVWeb.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - this.btnHelpVWeb.Image = ((System.Drawing.Image)(resources.GetObject("btnHelpVWeb.Image"))); - this.btnHelpVWeb.Name = "btnHelpVWeb"; - this.btnHelpVWeb.Text = "Volian Web"; - this.btnHelpVWeb.Click += new System.EventHandler(this.btnVlnWeb_Click); - // - // btnShortCuts - // - this.btnShortCuts.Image = global::VEPROMS.Properties.Resources.GotoShortcutsHS; - this.btnShortCuts.Name = "btnShortCuts"; - this.btnShortCuts.Text = "Shortcut List"; - this.btnShortCuts.Click += new System.EventHandler(this.btnShortCuts_Click); - // - // btnSendErrorLog - // - this.btnSendErrorLog.Image = global::VEPROMS.Properties.Resources.EnvelopeHS; - this.btnSendErrorLog.Name = "btnSendErrorLog"; - this.btnSendErrorLog.Text = "Send Error Log"; - this.btnSendErrorLog.Click += new System.EventHandler(this.btnSendErrorLog_Click); - // - // office2007StartButton1 - // - this.office2007StartButton1.AutoExpandOnClick = true; - this.office2007StartButton1.CanCustomize = false; - this.office2007StartButton1.Cursor = System.Windows.Forms.Cursors.Hand; - this.office2007StartButton1.HotTrackingStyle = DevComponents.DotNetBar.eHotTrackingStyle.Image; - this.office2007StartButton1.Image = ((System.Drawing.Image)(resources.GetObject("office2007StartButton1.Image"))); - this.office2007StartButton1.ImagePaddingHorizontal = 2; - this.office2007StartButton1.ImagePaddingVertical = 2; - this.office2007StartButton1.KeyTips = "V"; - this.office2007StartButton1.Name = "office2007StartButton1"; - this.office2007StartButton1.ShowSubItems = false; - this.office2007StartButton1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.itemContainer1}); - this.office2007StartButton1.Text = "&File"; - this.office2007StartButton1.Click += new System.EventHandler(this.office2007StartButton1_Click); - // - // itemContainer1 - // - // - // - // - this.itemContainer1.BackgroundStyle.Class = "RibbonFileMenuContainer"; - this.itemContainer1.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.itemContainer1.LayoutOrientation = DevComponents.DotNetBar.eOrientation.Vertical; - this.itemContainer1.Name = "itemContainer1"; - this.itemContainer1.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.itemContainer2, - this.itemContainer5}); - // - // itemContainer2 - // - // - // - // - this.itemContainer2.BackgroundStyle.Class = "RibbonFileMenuTwoColumnContainer"; - this.itemContainer2.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.itemContainer2.ItemSpacing = 0; - this.itemContainer2.Name = "itemContainer2"; - this.itemContainer2.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.itemContainer3, - this.icRecentDocs}); - // - // itemContainer3 - // - // - // - // - this.itemContainer3.BackgroundStyle.Class = "RibbonFileMenuColumnOneContainer"; - this.itemContainer3.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.itemContainer3.LayoutOrientation = DevComponents.DotNetBar.eOrientation.Vertical; - this.itemContainer3.MinimumSize = new System.Drawing.Size(120, 0); - this.itemContainer3.Name = "itemContainer3"; - this.itemContainer3.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.btnNew, - this.btnOpen, - this.btnPrint, - this.btnPrepare, - this.btnAdmin}); - // - // btnNew - // - this.btnNew.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - this.btnNew.Image = ((System.Drawing.Image)(resources.GetObject("btnNew.Image"))); - this.btnNew.Name = "btnNew"; - this.btnNew.SubItemsExpandWidth = 24; - this.btnNew.Text = "&New"; - this.btnNew.Click += new System.EventHandler(this.btnNew_Click); - // - // btnOpen - // - this.btnOpen.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - this.btnOpen.Image = ((System.Drawing.Image)(resources.GetObject("btnOpen.Image"))); - this.btnOpen.Name = "btnOpen"; - this.btnOpen.Shortcuts.Add(DevComponents.DotNetBar.eShortcut.CtrlO); - this.btnOpen.SubItemsExpandWidth = 24; - this.btnOpen.Text = "&Open..."; - this.btnOpen.Click += new System.EventHandler(this.btnOpen_Click); - // - // btnPrint - // - this.btnPrint.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - this.btnPrint.Enabled = false; - this.btnPrint.Image = ((System.Drawing.Image)(resources.GetObject("btnPrint.Image"))); - this.btnPrint.Name = "btnPrint"; - this.btnPrint.SubItemsExpandWidth = 24; - this.btnPrint.Text = "Create &PDF"; - this.btnPrint.Click += new System.EventHandler(this.btnPrint_Click); - // - // btnPrepare - // - this.btnPrepare.BeginGroup = true; - this.btnPrepare.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - this.btnPrepare.CanCustomize = false; - this.btnPrepare.Image = ((System.Drawing.Image)(resources.GetObject("btnPrepare.Image"))); - this.btnPrepare.Name = "btnPrepare"; - this.btnPrepare.SubItemsExpandWidth = 24; - this.btnPrepare.Text = "Pr&epare"; - this.btnPrepare.Visible = false; - // - // btnAdmin - // - this.btnAdmin.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - this.btnAdmin.CanCustomize = false; - this.btnAdmin.Image = global::VEPROMS.Properties.Resources.Admin; - this.btnAdmin.Name = "btnAdmin"; - this.btnAdmin.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.btnUpdateFormats}); - this.btnAdmin.Text = "A&dministration"; - // - // btnUpdateFormats - // - this.btnUpdateFormats.Name = "btnUpdateFormats"; - this.btnUpdateFormats.Text = "Update Formats"; - this.btnUpdateFormats.Click += new System.EventHandler(this.btnUpdateFormat_Click); - // - // icRecentDocs - // - // - // - // - this.icRecentDocs.BackgroundStyle.Class = "RibbonFileMenuColumnTwoContainer"; - this.icRecentDocs.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.icRecentDocs.LayoutOrientation = DevComponents.DotNetBar.eOrientation.Vertical; - this.icRecentDocs.MinimumSize = new System.Drawing.Size(180, 0); - this.icRecentDocs.Name = "icRecentDocs"; - this.icRecentDocs.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.labelItem8}); - // - // labelItem8 - // - this.labelItem8.BorderSide = DevComponents.DotNetBar.eBorderSide.Bottom; - this.labelItem8.BorderType = DevComponents.DotNetBar.eBorderType.Etched; - this.labelItem8.CanCustomize = false; - this.labelItem8.Name = "labelItem8"; - this.labelItem8.PaddingBottom = 2; - this.labelItem8.PaddingTop = 2; - this.labelItem8.Stretch = true; - this.labelItem8.Text = "Recent Documents"; - // - // itemContainer5 - // - // - // - // - this.itemContainer5.BackgroundStyle.Class = "RibbonFileMenuBottomContainer"; - this.itemContainer5.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.itemContainer5.HorizontalItemAlignment = DevComponents.DotNetBar.eHorizontalItemsAlignment.Right; - this.itemContainer5.Name = "itemContainer5"; - this.itemContainer5.SubItems.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.btnOptions, - this.btnExit}); - // - // btnOptions - // - this.btnOptions.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - this.btnOptions.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnOptions.Image = ((System.Drawing.Image)(resources.GetObject("btnOptions.Image"))); - this.btnOptions.Name = "btnOptions"; - this.btnOptions.SubItemsExpandWidth = 24; - this.btnOptions.Text = "Opt&ions"; - this.btnOptions.Click += new System.EventHandler(this.btnOptions_Click); - // - // btnExit - // - this.btnExit.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - this.btnExit.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnExit.Image = ((System.Drawing.Image)(resources.GetObject("btnExit.Image"))); - this.btnExit.Name = "btnExit"; - this.btnExit.SubItemsExpandWidth = 24; - this.btnExit.Text = "E&xit"; - this.btnExit.Click += new System.EventHandler(this.btnExit_Click); - // - // qatCustomizeItem1 - // - this.qatCustomizeItem1.Name = "qatCustomizeItem1"; - // - // galleryGroup1 - // - this.galleryGroup1.Name = "galleryGroup1"; - this.galleryGroup1.Text = "Common"; - // - // galleryGroup2 - // - this.galleryGroup2.DisplayOrder = 1; - this.galleryGroup2.Name = "galleryGroup2"; - this.galleryGroup2.Text = "Math"; - // - // galleryGroup3 - // - this.galleryGroup3.DisplayOrder = 2; - this.galleryGroup3.Name = "galleryGroup3"; - this.galleryGroup3.Text = "Misc."; - // - // Common - // - this.Common.DisplayOrder = 1; - this.Common.Name = "Common"; - this.Common.Text = "Common Symbols"; - // - // Math - // - this.Math.DisplayOrder = 2; - this.Math.Name = "Math"; - this.Math.Text = "Math"; - // - // Misc - // - this.Misc.DisplayOrder = 3; - this.Misc.Name = "Misc"; - this.Misc.Text = "Misc."; - // - // bottomBar - // - this.bottomBar.Controls.Add(this.cmbFont); - this.bottomBar.Dock = System.Windows.Forms.DockStyle.Bottom; - this.bottomBar.Font = new System.Drawing.Font("Segoe UI", 9F); - this.bottomBar.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this.labelItem10, - this.bottomProgBar, - this.labelItem20, - this.lblLocked, - this.labelItem9, - this.lblEditView, - this.labelItem11, - this.btnItemInfo, - this.lblItemID, - this.lblResolution, - this.btnEditItem}); - this.bottomBar.Location = new System.Drawing.Point(5, 597); - this.bottomBar.Name = "bottomBar"; - this.bottomBar.Size = new System.Drawing.Size(1185, 25); - this.bottomBar.Stretch = true; - this.bottomBar.Style = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.bottomBar.TabIndex = 1; - this.bottomBar.TabStop = false; - this.bottomBar.Text = "bar1"; - // - // cmbFont - // - this.cmbFont.Dock = System.Windows.Forms.DockStyle.Right; - this.cmbFont.FormattingEnabled = true; - this.cmbFont.Location = new System.Drawing.Point(1013, 0); - this.cmbFont.Name = "cmbFont"; - this.cmbFont.Size = new System.Drawing.Size(172, 23); - this.cmbFont.TabIndex = 0; - this.cmbFont.SelectedIndexChanged += new System.EventHandler(this.cmbFont_SelectedIndexChanged); - // - // labelItem10 - // - this.labelItem10.BorderSide = DevComponents.DotNetBar.eBorderSide.Left; - this.labelItem10.BorderType = DevComponents.DotNetBar.eBorderType.Bump; - this.labelItem10.Name = "labelItem10"; - // - // bottomProgBar - // - // - // - // - this.bottomProgBar.BackStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.bottomProgBar.ChunkGradientAngle = 0F; - this.bottomProgBar.MenuVisibility = DevComponents.DotNetBar.eMenuVisibility.VisibleAlways; - this.bottomProgBar.Name = "bottomProgBar"; - this.bottomProgBar.RecentlyUsed = false; - this.bottomProgBar.Width = 150; - // - // labelItem20 - // - this.labelItem20.BorderSide = DevComponents.DotNetBar.eBorderSide.Left; - this.labelItem20.BorderType = DevComponents.DotNetBar.eBorderType.Bump; - this.labelItem20.Name = "labelItem20"; - // - // lblLocked - // - this.lblLocked.BackColor = System.Drawing.Color.Transparent; - this.lblLocked.ForeColor = System.Drawing.SystemColors.MenuText; - this.lblLocked.Image = global::VEPROMS.Properties.Resources.UnProtectFormHS; - this.lblLocked.Name = "lblLocked"; - this.lblLocked.Text = "Unlocked"; - // - // labelItem9 - // - this.labelItem9.BorderSide = DevComponents.DotNetBar.eBorderSide.Left; - this.labelItem9.BorderType = DevComponents.DotNetBar.eBorderType.Bump; - this.labelItem9.Name = "labelItem9"; - // - // lblEditView - // - this.lblEditView.BackColor = System.Drawing.Color.Transparent; - this.lblEditView.ForeColor = System.Drawing.SystemColors.MenuText; - this.lblEditView.Name = "lblEditView"; - this.lblEditView.Text = "Edit"; - // - // labelItem11 - // - this.labelItem11.BorderSide = DevComponents.DotNetBar.eBorderSide.Left; - this.labelItem11.BorderType = DevComponents.DotNetBar.eBorderType.Bump; - this.labelItem11.Name = "labelItem11"; - // - // btnItemInfo - // - this.btnItemInfo.ForeColor = System.Drawing.Color.Blue; - this.btnItemInfo.Name = "btnItemInfo"; - this.btnItemInfo.Text = "ItemInfo"; - this.btnItemInfo.Click += new System.EventHandler(this.btnItemInfo_Click); - // - // lblItemID - // - this.lblItemID.Name = "lblItemID"; - this.lblItemID.Text = "ItemID=\"\""; - // - // lblResolution - // - this.lblResolution.BackColor = System.Drawing.Color.Transparent; - this.lblResolution.ForeColor = System.Drawing.SystemColors.MenuText; - this.lblResolution.Name = "lblResolution"; - this.lblResolution.Text = "Edit"; - this.lblResolution.Click += new System.EventHandler(this.lblResolution_Click); - // - // btnEditItem - // - this.btnEditItem.ForeColor = System.Drawing.Color.Blue; - this.btnEditItem.Name = "btnEditItem"; - this.btnEditItem.Text = "EditItem"; - this.btnEditItem.Click += new System.EventHandler(this.btnEditItem_Click); - // - // epAnnotations - // - this.epAnnotations.CanvasColor = System.Drawing.SystemColors.Control; - this.epAnnotations.CollapseDirection = DevComponents.DotNetBar.eCollapseDirection.TopToBottom; - this.epAnnotations.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.epAnnotations.Controls.Add(this.ctrlAnnotationDetails); - this.epAnnotations.Controls.Add(this.btnAnnoDetailsPushPin); - this.epAnnotations.Dock = System.Windows.Forms.DockStyle.Bottom; - this.epAnnotations.Expanded = false; - this.epAnnotations.ExpandedBounds = new System.Drawing.Rectangle(4, 544, 1187, 202); - this.epAnnotations.ExpandOnTitleClick = true; - this.epAnnotations.Location = new System.Drawing.Point(5, 571); - this.epAnnotations.Name = "epAnnotations"; - this.epAnnotations.Size = new System.Drawing.Size(1185, 26); - this.epAnnotations.Style.Alignment = System.Drawing.StringAlignment.Center; - this.epAnnotations.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.epAnnotations.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.epAnnotations.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.epAnnotations.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder; - this.epAnnotations.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.epAnnotations.Style.GradientAngle = 90; - this.epAnnotations.TabIndex = 2; - this.epAnnotations.ThemeAware = true; - this.epAnnotations.TitleStyle.Alignment = System.Drawing.StringAlignment.Center; - this.epAnnotations.TitleStyle.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.epAnnotations.TitleStyle.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.epAnnotations.TitleStyle.Border = DevComponents.DotNetBar.eBorderType.RaisedInner; - this.epAnnotations.TitleStyle.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.epAnnotations.TitleStyle.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.epAnnotations.TitleStyle.GradientAngle = 90; - this.epAnnotations.TitleText = "Annotation Details"; - this.epAnnotations.ExpandedChanged += new DevComponents.DotNetBar.ExpandChangeEventHandler(this.epAnnotations_ExpandedChanged); - this.epAnnotations.Resize += new System.EventHandler(this.epAnnotations_Resize); - this.epAnnotations.ExpandedChanging += new DevComponents.DotNetBar.ExpandChangeEventHandler(this.expandPanelExpandedChanging); - // - // ctrlAnnotationDetails - // - this.ctrlAnnotationDetails.AnnotationRTFText = "{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft S" + - "ans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs20\\par\r\n}\r\n"; - this.ctrlAnnotationDetails.Annotations = null; - this.ctrlAnnotationDetails.AnnotationText = ""; - this.ctrlAnnotationDetails.CurrentAnnotation = null; - this.ctrlAnnotationDetails.Dock = System.Windows.Forms.DockStyle.Fill; - this.ctrlAnnotationDetails.Location = new System.Drawing.Point(0, 26); - this.ctrlAnnotationDetails.Margin = new System.Windows.Forms.Padding(2); - this.ctrlAnnotationDetails.Name = "ctrlAnnotationDetails"; - this.ctrlAnnotationDetails.Size = new System.Drawing.Size(1185, 0); - this.ctrlAnnotationDetails.TabIndex = 15; - // - // btnAnnoDetailsPushPin - // - this.btnAnnoDetailsPushPin.AccessibleRole = System.Windows.Forms.AccessibleRole.CheckButton; - this.btnAnnoDetailsPushPin.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnAnnoDetailsPushPin.AutoCheckOnClick = true; - this.btnAnnoDetailsPushPin.BackColor = System.Drawing.Color.Transparent; - this.btnAnnoDetailsPushPin.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; - this.btnAnnoDetailsPushPin.ColorTable = DevComponents.DotNetBar.eButtonColor.Flat; - this.btnAnnoDetailsPushPin.FocusCuesEnabled = false; - this.btnAnnoDetailsPushPin.Image = ((System.Drawing.Image)(resources.GetObject("btnAnnoDetailsPushPin.Image"))); - this.btnAnnoDetailsPushPin.Location = new System.Drawing.Point(1130, 1); - this.btnAnnoDetailsPushPin.Name = "btnAnnoDetailsPushPin"; - this.btnAnnoDetailsPushPin.PressedImage = ((System.Drawing.Image)(resources.GetObject("btnAnnoDetailsPushPin.PressedImage"))); - this.btnAnnoDetailsPushPin.ShowSubItems = false; - this.btnAnnoDetailsPushPin.Size = new System.Drawing.Size(27, 23); - this.superTooltip1.SetSuperTooltip(this.btnAnnoDetailsPushPin, new DevComponents.DotNetBar.SuperTooltipInfo("Annotation Details Push Pin", "", "This will toggle between keeping the Annotation Details window opened or to open/" + - "close automatically.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); - this.btnAnnoDetailsPushPin.TabIndex = 14; - this.btnAnnoDetailsPushPin.ThemeAware = true; - // - // epProcedures - // - this.epProcedures.CanvasColor = System.Drawing.SystemColors.Control; - this.epProcedures.CollapseDirection = DevComponents.DotNetBar.eCollapseDirection.RightToLeft; - this.epProcedures.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.epProcedures.Controls.Add(this.tv); - this.epProcedures.Dock = System.Windows.Forms.DockStyle.Left; - this.epProcedures.Expanded = false; - this.epProcedures.ExpandedBounds = new System.Drawing.Rectangle(5, 57, 326, 593); - this.epProcedures.ExpandOnTitleClick = true; - this.epProcedures.Location = new System.Drawing.Point(5, 57); - this.epProcedures.Name = "epProcedures"; - this.epProcedures.Size = new System.Drawing.Size(30, 514); - this.epProcedures.Style.Alignment = System.Drawing.StringAlignment.Center; - this.epProcedures.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.epProcedures.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.epProcedures.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.epProcedures.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder; - this.epProcedures.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.epProcedures.Style.GradientAngle = 90; - this.epProcedures.TabIndex = 3; - this.epProcedures.TitleStyle.Alignment = System.Drawing.StringAlignment.Center; - this.epProcedures.TitleStyle.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.epProcedures.TitleStyle.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.epProcedures.TitleStyle.Border = DevComponents.DotNetBar.eBorderType.RaisedInner; - this.epProcedures.TitleStyle.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.epProcedures.TitleStyle.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.epProcedures.TitleStyle.GradientAngle = 90; - this.epProcedures.TitleText = "Procedures"; - this.epProcedures.ExpandedChanged += new DevComponents.DotNetBar.ExpandChangeEventHandler(this.epProcedures_ExpandedChanged); - this.epProcedures.Resize += new System.EventHandler(this.resizeVerticalExpandedPanel); - this.epProcedures.ExpandedChanging += new DevComponents.DotNetBar.ExpandChangeEventHandler(this.expandPanelExpandedChanging); - // - // tv - // - this.tv.AllowDrop = true; - this.tv.Dock = System.Windows.Forms.DockStyle.Fill; - this.tv.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.tv.HideSelection = false; - this.tv.Location = new System.Drawing.Point(0, 26); - this.tv.Name = "tv"; - this.tv.Size = new System.Drawing.Size(30, 508); - this.tv.TabIndex = 1; - this.tv.MouseUp += new System.Windows.Forms.MouseEventHandler(this.tv_MouseUp); - this.tv.SectionShouldClose += new Volian.Controls.Library.vlnTreeViewSectionInfoEvent(this.tv_SectionShouldClose); - this.tv.WordSectionDeleted += new Volian.Controls.Library.WordSectionDeletedEvent(this.tv_WordSectionDeleted); - this.tv.BeforeExpand += new System.Windows.Forms.TreeViewCancelEventHandler(this.tv_BeforeExpand); - // - // infoPanel - // - this.infoPanel.CanvasColor = System.Drawing.SystemColors.Control; - this.infoPanel.CollapseDirection = DevComponents.DotNetBar.eCollapseDirection.LeftToRight; - this.infoPanel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.infoPanel.Controls.Add(this.infoTabs); - this.infoPanel.Dock = System.Windows.Forms.DockStyle.Right; - this.infoPanel.ExpandOnTitleClick = true; - this.infoPanel.Location = new System.Drawing.Point(927, 57); - this.infoPanel.Name = "infoPanel"; - this.infoPanel.Size = new System.Drawing.Size(230, 514); - this.infoPanel.Style.Alignment = System.Drawing.StringAlignment.Center; - this.infoPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.infoPanel.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.infoPanel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.infoPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder; - this.infoPanel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.infoPanel.Style.GradientAngle = 90; - this.infoPanel.TabIndex = 4; - this.infoPanel.TitleStyle.Alignment = System.Drawing.StringAlignment.Center; - this.infoPanel.TitleStyle.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.infoPanel.TitleStyle.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.infoPanel.TitleStyle.Border = DevComponents.DotNetBar.eBorderType.RaisedInner; - this.infoPanel.TitleStyle.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.infoPanel.TitleStyle.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.infoPanel.TitleStyle.GradientAngle = 90; - this.infoPanel.TitleText = "Step Properties"; - this.infoPanel.Click += new System.EventHandler(this.infoPanel_Click); - this.infoPanel.ExpandedChanged += new DevComponents.DotNetBar.ExpandChangeEventHandler(this.infoPanel_ExpandedChanged); - this.infoPanel.Resize += new System.EventHandler(this.resizeVerticalExpandedPanel); - this.infoPanel.ExpandedChanging += new DevComponents.DotNetBar.ExpandChangeEventHandler(this.expandPanelExpandedChanging); - // - // infoTabs - // - this.infoTabs.BackColor = System.Drawing.Color.Transparent; - this.infoTabs.CanReorderTabs = true; - this.infoTabs.Controls.Add(this.infotabControlPanelTags); - this.infoTabs.Controls.Add(this.tcpApplicability); - this.infoTabs.Controls.Add(this.tabControlPanel1); - this.infoTabs.Controls.Add(this.infotabControlPanelRO); - this.infoTabs.Controls.Add(this.infotabControlPanelTransitions); - this.infoTabs.Dock = System.Windows.Forms.DockStyle.Fill; - this.infoTabs.Location = new System.Drawing.Point(0, 26); - this.infoTabs.Name = "infoTabs"; - this.infoTabs.SelectedTabFont = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold); - this.infoTabs.SelectedTabIndex = 0; - this.infoTabs.Size = new System.Drawing.Size(230, 488); - this.infoTabs.TabAlignment = DevComponents.DotNetBar.eTabStripAlignment.Right; - this.infoTabs.TabIndex = 1; - this.infoTabs.TabLayoutType = DevComponents.DotNetBar.eTabLayoutType.FixedWithNavigationBox; - this.infoTabs.Tabs.Add(this.infotabTags); - this.infoTabs.Tabs.Add(this.infotabRO); - this.infoTabs.Tabs.Add(this.infotabTransition); - this.infoTabs.Tabs.Add(this.infotabHistory); - this.infoTabs.Tabs.Add(this.infotabApplicability); - this.infoTabs.Text = "tabControl1"; - this.infoTabs.ThemeAware = true; - this.infoTabs.Visible = false; - // - // infotabControlPanelTags - // - this.infotabControlPanelTags.Controls.Add(this.panelEx1); - this.infotabControlPanelTags.Dock = System.Windows.Forms.DockStyle.Fill; - this.infotabControlPanelTags.Location = new System.Drawing.Point(0, 0); - this.infotabControlPanelTags.Name = "infotabControlPanelTags"; - this.infotabControlPanelTags.Padding = new System.Windows.Forms.Padding(1); - this.infotabControlPanelTags.Size = new System.Drawing.Size(203, 488); - this.infotabControlPanelTags.Style.BackColor1.Color = System.Drawing.SystemColors.Control; - this.infotabControlPanelTags.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.infotabControlPanelTags.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Top) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.infotabControlPanelTags.Style.GradientAngle = 180; - this.infotabControlPanelTags.TabIndex = 1; - this.infotabControlPanelTags.TabItem = this.infotabTags; - this.infotabControlPanelTags.ThemeAware = true; - // - // panelEx1 - // - this.panelEx1.CanvasColor = System.Drawing.SystemColors.Control; - this.panelEx1.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.panelEx1.Controls.Add(this.displayTags); - this.panelEx1.Dock = System.Windows.Forms.DockStyle.Fill; - this.panelEx1.Location = new System.Drawing.Point(1, 1); - this.panelEx1.Name = "panelEx1"; - this.panelEx1.Size = new System.Drawing.Size(201, 486); - this.panelEx1.Style.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx1.Style.BackColor1.Color = System.Drawing.Color.Transparent; - this.panelEx1.Style.BackColor2.Color = System.Drawing.Color.SlateGray; - this.panelEx1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.panelEx1.Style.BorderColor.Color = System.Drawing.Color.Gray; - this.panelEx1.Style.ForeColor.Color = System.Drawing.Color.Transparent; - this.panelEx1.TabIndex = 1; - // - // displayTags - // - this.displayTags.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.displayTags.CurItemInfo = null; - this.displayTags.Dock = System.Windows.Forms.DockStyle.Top; - this.displayTags.IsVisible = false; - this.displayTags.Location = new System.Drawing.Point(0, 0); - this.displayTags.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.displayTags.MinimumSize = new System.Drawing.Size(100, 630); - this.displayTags.MyEditItem = null; - this.displayTags.Name = "displayTags"; - this.displayTags.NotVisibleEditItem = null; - this.displayTags.Size = new System.Drawing.Size(201, 630); - this.displayTags.TabIndex = 0; - // - // infotabTags - // - this.infotabTags.AttachedControl = this.infotabControlPanelTags; - this.infotabTags.Name = "infotabTags"; - this.infotabTags.Text = "Tags"; - this.infotabTags.Visible = false; - this.infotabTags.Click += new System.EventHandler(this.infotabTags_Click); - // - // tcpApplicability - // - this.tcpApplicability.Controls.Add(this.displayApplicability); - this.tcpApplicability.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcpApplicability.Location = new System.Drawing.Point(0, 0); - this.tcpApplicability.Name = "tcpApplicability"; - this.tcpApplicability.Padding = new System.Windows.Forms.Padding(1); - this.tcpApplicability.Size = new System.Drawing.Size(203, 488); - this.tcpApplicability.Style.BackColor1.Color = System.Drawing.SystemColors.Control; - this.tcpApplicability.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tcpApplicability.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Top) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tcpApplicability.Style.GradientAngle = 180; - this.tcpApplicability.TabIndex = 7; - this.tcpApplicability.TabItem = this.infotabApplicability; - this.tcpApplicability.ThemeAware = true; - // - // displayApplicability - // - this.displayApplicability.Dock = System.Windows.Forms.DockStyle.Fill; - this.displayApplicability.Location = new System.Drawing.Point(1, 1); - this.displayApplicability.MyApplicability = ""; - this.displayApplicability.MyItemInfo = null; - this.displayApplicability.Name = "displayApplicability"; - this.displayApplicability.Size = new System.Drawing.Size(201, 486); - this.displayApplicability.TabIndex = 2; - // - // infotabApplicability - // - this.infotabApplicability.AttachedControl = this.tcpApplicability; - this.infotabApplicability.Name = "infotabApplicability"; - this.infotabApplicability.Text = "Applicability"; - this.infotabApplicability.Visible = false; - // - // tabControlPanel1 - // - this.tabControlPanel1.Controls.Add(this.displayHistory); - this.tabControlPanel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControlPanel1.Location = new System.Drawing.Point(0, 0); - this.tabControlPanel1.Name = "tabControlPanel1"; - this.tabControlPanel1.Padding = new System.Windows.Forms.Padding(1); - this.tabControlPanel1.Size = new System.Drawing.Size(203, 488); - this.tabControlPanel1.Style.BackColor1.Color = System.Drawing.SystemColors.Control; - this.tabControlPanel1.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tabControlPanel1.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Top) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tabControlPanel1.Style.GradientAngle = 180; - this.tabControlPanel1.TabIndex = 6; - this.tabControlPanel1.TabItem = this.infotabHistory; - this.tabControlPanel1.ThemeAware = true; - // - // displayHistory - // - this.displayHistory.Dock = System.Windows.Forms.DockStyle.Fill; - this.displayHistory.Location = new System.Drawing.Point(1, 1); - this.displayHistory.Margin = new System.Windows.Forms.Padding(4); - this.displayHistory.MyEditItem = null; - this.displayHistory.MyItemInfo = null; - this.displayHistory.MyProcedureInfo = null; - this.displayHistory.Name = "displayHistory"; - this.displayHistory.Size = new System.Drawing.Size(1, 509); - this.displayHistory.TabIndex = 0; - // - // infotabHistory - // - this.infotabHistory.AttachedControl = this.tabControlPanel1; - this.infotabHistory.Name = "infotabHistory"; - this.infotabHistory.Text = "History"; - this.infotabHistory.Visible = false; - // - // infotabControlPanelRO - // - this.infotabControlPanelRO.Controls.Add(this.displayRO); - this.infotabControlPanelRO.Dock = System.Windows.Forms.DockStyle.Fill; - this.infotabControlPanelRO.Location = new System.Drawing.Point(0, 0); - this.infotabControlPanelRO.Name = "infotabControlPanelRO"; - this.infotabControlPanelRO.Padding = new System.Windows.Forms.Padding(1); - this.infotabControlPanelRO.Size = new System.Drawing.Size(203, 488); - this.infotabControlPanelRO.Style.BackColor1.Color = System.Drawing.SystemColors.Control; - this.infotabControlPanelRO.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.infotabControlPanelRO.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Top) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.infotabControlPanelRO.Style.GradientAngle = 180; - this.infotabControlPanelRO.TabIndex = 4; - this.infotabControlPanelRO.TabItem = this.infotabRO; - this.infotabControlPanelRO.ThemeAware = true; - // - // displayRO - // - this.displayRO.CurROLink = null; - this.displayRO.Dock = System.Windows.Forms.DockStyle.Fill; - this.displayRO.Location = new System.Drawing.Point(1, 1); - this.displayRO.Margin = new System.Windows.Forms.Padding(4); - this.displayRO.Mydvi = null; - this.displayRO.MyROFST = null; - this.displayRO.MyRTB = null; - this.displayRO.Name = "displayRO"; - this.displayRO.ProgressBar = null; - this.displayRO.ROTypeFilter = VEPROMS.CSLA.Library.E_ROValueType.All; - this.displayRO.Size = new System.Drawing.Size(201, 486); - this.displayRO.TabControl = null; - this.displayRO.TabIndex = 0; - // - // infotabRO - // - this.infotabRO.AttachedControl = this.infotabControlPanelRO; - this.infotabRO.Name = "infotabRO"; - this.infotabRO.Text = "RO"; - this.infotabRO.Visible = false; - this.infotabRO.Click += new System.EventHandler(this.infotabRO_Click); - // - // infotabControlPanelTransitions - // - this.infotabControlPanelTransitions.Controls.Add(this.displayTransition); - this.infotabControlPanelTransitions.Dock = System.Windows.Forms.DockStyle.Fill; - this.infotabControlPanelTransitions.Location = new System.Drawing.Point(0, 0); - this.infotabControlPanelTransitions.Name = "infotabControlPanelTransitions"; - this.infotabControlPanelTransitions.Padding = new System.Windows.Forms.Padding(1); - this.infotabControlPanelTransitions.Size = new System.Drawing.Size(203, 488); - this.infotabControlPanelTransitions.Style.BackColor1.Color = System.Drawing.SystemColors.Control; - this.infotabControlPanelTransitions.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.infotabControlPanelTransitions.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Top) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.infotabControlPanelTransitions.Style.GradientAngle = 180; - this.infotabControlPanelTransitions.TabIndex = 5; - this.infotabControlPanelTransitions.TabItem = this.infotabTransition; - this.infotabControlPanelTransitions.ThemeAware = true; - this.infotabControlPanelTransitions.Click += new System.EventHandler(this.infotabTransition_Click); - // - // displayTransition - // - this.displayTransition.AutoSize = true; - this.displayTransition.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.displayTransition.CurTrans = null; - this.displayTransition.Dock = System.Windows.Forms.DockStyle.Fill; - this.displayTransition.Location = new System.Drawing.Point(1, 1); - this.displayTransition.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.displayTransition.MyRTB = null; - this.displayTransition.Name = "displayTransition"; - this.displayTransition.RangeColor = System.Drawing.Color.LightGray; - this.displayTransition.Size = new System.Drawing.Size(201, 486); - this.displayTransition.TabIndex = 0; - // - // infotabTransition - // - this.infotabTransition.AttachedControl = this.infotabControlPanelTransitions; - this.infotabTransition.Name = "infotabTransition"; - this.infotabTransition.Text = "Transition"; - this.infotabTransition.Visible = false; - this.infotabTransition.Click += new System.EventHandler(this.infotabTransition_Click); - // - // navigationPanePanel2 - // - this.navigationPanePanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.navigationPanePanel2.Location = new System.Drawing.Point(1, 1); - this.navigationPanePanel2.Name = "navigationPanePanel2"; - this.navigationPanePanel2.ParentItem = null; - this.navigationPanePanel2.Size = new System.Drawing.Size(199, 401); - this.navigationPanePanel2.Style.Alignment = System.Drawing.StringAlignment.Center; - this.navigationPanePanel2.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.navigationPanePanel2.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground2; - this.navigationPanePanel2.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.navigationPanePanel2.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.navigationPanePanel2.Style.GradientAngle = 90; - this.navigationPanePanel2.TabIndex = 3; - // - // expandableSplitter1 - // - this.expandableSplitter1.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter1.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter1.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.expandableSplitter1.Enabled = false; - this.expandableSplitter1.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter1.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter1.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter1.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter1.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter1.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter1.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); - this.expandableSplitter1.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.expandableSplitter1.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61))))); - this.expandableSplitter1.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94))))); - this.expandableSplitter1.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2; - this.expandableSplitter1.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground; - this.expandableSplitter1.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter1.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter1.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter1.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter1.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter1.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter1.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); - this.expandableSplitter1.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.expandableSplitter1.Location = new System.Drawing.Point(35, 57); - this.expandableSplitter1.Name = "expandableSplitter1"; - this.expandableSplitter1.Size = new System.Drawing.Size(3, 514); - this.expandableSplitter1.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007; - this.expandableSplitter1.TabIndex = 5; - this.expandableSplitter1.TabStop = false; - // - // expandableSplitter2 - // - this.expandableSplitter2.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter2.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter2.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.expandableSplitter2.Dock = System.Windows.Forms.DockStyle.Bottom; - this.expandableSplitter2.Enabled = false; - this.expandableSplitter2.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter2.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter2.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter2.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter2.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter2.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter2.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); - this.expandableSplitter2.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.expandableSplitter2.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61))))); - this.expandableSplitter2.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94))))); - this.expandableSplitter2.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2; - this.expandableSplitter2.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground; - this.expandableSplitter2.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter2.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter2.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter2.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter2.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter2.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter2.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); - this.expandableSplitter2.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.expandableSplitter2.Location = new System.Drawing.Point(38, 568); - this.expandableSplitter2.Name = "expandableSplitter2"; - this.expandableSplitter2.Size = new System.Drawing.Size(889, 3); - this.expandableSplitter2.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007; - this.expandableSplitter2.TabIndex = 6; - this.expandableSplitter2.TabStop = false; - // - // expandableSplitter3 - // - this.expandableSplitter3.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter3.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter3.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.expandableSplitter3.Dock = System.Windows.Forms.DockStyle.Right; - this.expandableSplitter3.Enabled = false; - this.expandableSplitter3.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter3.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter3.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter3.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter3.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter3.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter3.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); - this.expandableSplitter3.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.expandableSplitter3.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61))))); - this.expandableSplitter3.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94))))); - this.expandableSplitter3.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2; - this.expandableSplitter3.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground; - this.expandableSplitter3.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter3.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter3.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter3.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter3.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter3.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter3.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); - this.expandableSplitter3.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.expandableSplitter3.Location = new System.Drawing.Point(924, 57); - this.expandableSplitter3.Name = "expandableSplitter3"; - this.expandableSplitter3.Size = new System.Drawing.Size(3, 511); - this.expandableSplitter3.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007; - this.expandableSplitter3.TabIndex = 7; - this.expandableSplitter3.TabStop = false; - // - // superTooltip1 - // - this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F"; - // - // tmrTreeView - // - this.tmrTreeView.Interval = 10; - this.tmrTreeView.Tick += new System.EventHandler(this.tmrTreeView_Tick); - // - // tmrAutomatic - // - this.tmrAutomatic.Interval = 100; - this.tmrAutomatic.Tick += new System.EventHandler(this.tmrAutomatic_Tick); - // - // toolsPanel - // - this.toolsPanel.CanvasColor = System.Drawing.SystemColors.Control; - this.toolsPanel.CollapseDirection = DevComponents.DotNetBar.eCollapseDirection.LeftToRight; - this.toolsPanel.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.toolsPanel.Controls.Add(this.toolsTabs); - this.toolsPanel.Dock = System.Windows.Forms.DockStyle.Right; - this.toolsPanel.Expanded = false; - this.toolsPanel.ExpandedBounds = new System.Drawing.Rectangle(847, 57, 343, 631); - this.toolsPanel.ExpandOnTitleClick = true; - this.toolsPanel.Location = new System.Drawing.Point(1160, 57); - this.toolsPanel.Name = "toolsPanel"; - this.toolsPanel.Size = new System.Drawing.Size(30, 514); - this.toolsPanel.Style.Alignment = System.Drawing.StringAlignment.Center; - this.toolsPanel.Style.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.toolsPanel.Style.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.toolsPanel.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.toolsPanel.Style.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarDockedBorder; - this.toolsPanel.Style.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.toolsPanel.Style.GradientAngle = 90; - this.toolsPanel.TabIndex = 9; - this.toolsPanel.TitleStyle.Alignment = System.Drawing.StringAlignment.Center; - this.toolsPanel.TitleStyle.BackColor1.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.toolsPanel.TitleStyle.BackColor2.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.toolsPanel.TitleStyle.Border = DevComponents.DotNetBar.eBorderType.RaisedInner; - this.toolsPanel.TitleStyle.BorderColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.toolsPanel.TitleStyle.ForeColor.ColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.toolsPanel.TitleStyle.GradientAngle = 90; - this.toolsPanel.TitleText = "Tools"; - this.toolsPanel.ExpandedChanged += new DevComponents.DotNetBar.ExpandChangeEventHandler(this.toolsPanel_ExpandedChanged); - this.toolsPanel.Resize += new System.EventHandler(this.resizeVerticalExpandedPanel); - this.toolsPanel.ExpandedChanging += new DevComponents.DotNetBar.ExpandChangeEventHandler(this.expandPanelExpandedChanging); - // - // toolsTabs - // - this.toolsTabs.BackColor = System.Drawing.Color.Transparent; - this.toolsTabs.CanReorderTabs = true; - this.toolsTabs.Controls.Add(this.annotationSearch); - this.toolsTabs.Controls.Add(this.tabControlPanel3); - this.toolsTabs.Controls.Add(this.tabControlPanelLD); - this.toolsTabs.Controls.Add(this.tabControlPanel2); - this.toolsTabs.Dock = System.Windows.Forms.DockStyle.Fill; - this.toolsTabs.Location = new System.Drawing.Point(0, 26); - this.toolsTabs.Name = "toolsTabs"; - this.toolsTabs.SelectedTabFont = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Bold); - this.toolsTabs.SelectedTabIndex = 0; - this.toolsTabs.Size = new System.Drawing.Size(30, 605); - this.toolsTabs.TabAlignment = DevComponents.DotNetBar.eTabStripAlignment.Right; - this.toolsTabs.TabIndex = 1; - this.toolsTabs.TabLayoutType = DevComponents.DotNetBar.eTabLayoutType.FixedWithNavigationBox; - this.toolsTabs.Tabs.Add(this.toolstabResults); - this.toolsTabs.Tabs.Add(this.toolsTabBookMarks); - this.toolsTabs.Tabs.Add(this.tabItemLibDocs); - this.toolsTabs.Tabs.Add(this.toosTabReports); - this.toolsTabs.Text = "tabControl1"; - this.toolsTabs.ThemeAware = true; - // - // annotationSearch - // - this.annotationSearch.Controls.Add(this.displaySearch1); - this.annotationSearch.Dock = System.Windows.Forms.DockStyle.Fill; - this.annotationSearch.Location = new System.Drawing.Point(0, 0); - this.annotationSearch.Name = "annotationSearch"; - this.annotationSearch.Padding = new System.Windows.Forms.Padding(1); - this.annotationSearch.Size = new System.Drawing.Size(3, 605); - this.annotationSearch.Style.BackColor1.Color = System.Drawing.SystemColors.Control; - this.annotationSearch.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.annotationSearch.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Top) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.annotationSearch.Style.GradientAngle = 180; - this.annotationSearch.TabIndex = 3; - this.annotationSearch.TabItem = this.toolstabResults; - this.annotationSearch.ThemeAware = true; - // - // displaySearch1 - // - this.displaySearch1.Dock = System.Windows.Forms.DockStyle.Fill; - this.displaySearch1.LoadingList = false; - this.displaySearch1.Location = new System.Drawing.Point(1, 1); - this.displaySearch1.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.displaySearch1.Mydocversion = null; - this.displaySearch1.MyROFSTLookup = null; - this.displaySearch1.Name = "displaySearch1"; - this.displaySearch1.ProgressBar = null; - this.displaySearch1.ReportTitle = null; - this.displaySearch1.RightToLeft = System.Windows.Forms.RightToLeft.Yes; - this.displaySearch1.SearchResults = null; - this.displaySearch1.SearchString = null; - this.displaySearch1.Size = new System.Drawing.Size(1, 603); - this.displaySearch1.TabIndex = 0; - this.displaySearch1.TypesSelected = null; - // - // toolstabResults - // - this.toolstabResults.AttachedControl = this.annotationSearch; - this.toolstabResults.Name = "toolstabResults"; - this.toolstabResults.Text = "Search"; - this.toolstabResults.Click += new System.EventHandler(this.infotabResults_Click); - // - // tabControlPanel3 - // - this.tabControlPanel3.Controls.Add(this.displayReports); - this.tabControlPanel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControlPanel3.Location = new System.Drawing.Point(0, 0); - this.tabControlPanel3.Name = "tabControlPanel3"; - this.tabControlPanel3.Padding = new System.Windows.Forms.Padding(1); - this.tabControlPanel3.Size = new System.Drawing.Size(3, 443); - this.tabControlPanel3.Style.BackColor1.Color = System.Drawing.SystemColors.Control; - this.tabControlPanel3.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tabControlPanel3.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Top) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tabControlPanel3.Style.GradientAngle = 180; - this.tabControlPanel3.TabIndex = 5; - this.tabControlPanel3.TabItem = this.toosTabReports; - this.tabControlPanel3.ThemeAware = true; - // - // displayReports - // - this.displayReports.Dock = System.Windows.Forms.DockStyle.Fill; - this.displayReports.Location = new System.Drawing.Point(1, 1); - this.displayReports.Margin = new System.Windows.Forms.Padding(2); - this.displayReports.Mydocversion = null; - this.displayReports.MyROFSTLookup = null; - this.displayReports.Name = "displayReports"; - this.displayReports.ReportResult = null; - this.displayReports.RightToLeft = System.Windows.Forms.RightToLeft.Yes; - this.displayReports.Size = new System.Drawing.Size(1, 441); - this.displayReports.TabIndex = 0; - // - // toosTabReports - // - this.toosTabReports.AttachedControl = this.tabControlPanel3; - this.toosTabReports.Name = "toosTabReports"; - this.toosTabReports.Text = "Reports"; - this.toosTabReports.Click += new System.EventHandler(this.toosTabReports_Click); - // - // tabControlPanelLD - // - this.tabControlPanelLD.Controls.Add(this.displayLibDocs); - this.tabControlPanelLD.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControlPanelLD.Location = new System.Drawing.Point(0, 0); - this.tabControlPanelLD.Name = "tabControlPanelLD"; - this.tabControlPanelLD.Padding = new System.Windows.Forms.Padding(1); - this.tabControlPanelLD.Size = new System.Drawing.Size(3, 443); - this.tabControlPanelLD.Style.BackColor1.Color = System.Drawing.SystemColors.Control; - this.tabControlPanelLD.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tabControlPanelLD.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Top) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tabControlPanelLD.Style.GradientAngle = 180; - this.tabControlPanelLD.TabIndex = 4; - this.tabControlPanelLD.TabItem = this.tabItemLibDocs; - this.tabControlPanelLD.ThemeAware = true; - // - // displayLibDocs - // - this.displayLibDocs.AutoScroll = true; - this.displayLibDocs.CurLibDoc = null; - this.displayLibDocs.Dock = System.Windows.Forms.DockStyle.Fill; - this.displayLibDocs.LibDocList = null; - this.displayLibDocs.Location = new System.Drawing.Point(1, 1); - this.displayLibDocs.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.displayLibDocs.Name = "displayLibDocs"; - this.displayLibDocs.Size = new System.Drawing.Size(1, 441); - this.displayLibDocs.TabIndex = 0; - // - // tabItemLibDocs - // - this.tabItemLibDocs.AttachedControl = this.tabControlPanelLD; - this.tabItemLibDocs.Name = "tabItemLibDocs"; - this.tabItemLibDocs.Text = "Library Documents"; - this.tabItemLibDocs.Click += new System.EventHandler(this.tabItemLibDocs_Click); - // - // tabControlPanel2 - // - this.tabControlPanel2.Controls.Add(this.panelEx3); - this.tabControlPanel2.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControlPanel2.Location = new System.Drawing.Point(0, 0); - this.tabControlPanel2.Name = "tabControlPanel2"; - this.tabControlPanel2.Padding = new System.Windows.Forms.Padding(1); - this.tabControlPanel2.Size = new System.Drawing.Size(3, 605); - this.tabControlPanel2.Style.BackColor1.Color = System.Drawing.SystemColors.Control; - this.tabControlPanel2.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tabControlPanel2.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Top) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tabControlPanel2.Style.GradientAngle = 180; - this.tabControlPanel2.TabIndex = 2; - this.tabControlPanel2.TabItem = this.toolsTabBookMarks; - this.tabControlPanel2.ThemeAware = true; - // - // panelEx3 - // - this.panelEx3.AutoScroll = true; - this.panelEx3.CanvasColor = System.Drawing.SystemColors.Control; - this.panelEx3.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.panelEx3.Controls.Add(this.displayBookMarks); - this.panelEx3.Dock = System.Windows.Forms.DockStyle.Fill; - this.panelEx3.Location = new System.Drawing.Point(1, 1); - this.panelEx3.Name = "panelEx3"; - this.panelEx3.Size = new System.Drawing.Size(1, 603); - this.panelEx3.Style.Alignment = System.Drawing.StringAlignment.Center; - this.panelEx3.Style.BackColor1.Color = System.Drawing.Color.Transparent; - this.panelEx3.Style.BackColor2.Color = System.Drawing.Color.SlateGray; - this.panelEx3.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.panelEx3.Style.BorderColor.Color = System.Drawing.Color.Gray; - this.panelEx3.Style.ForeColor.Color = System.Drawing.Color.Transparent; - this.panelEx3.TabIndex = 3; - // - // displayBookMarks - // - this.displayBookMarks.Dock = System.Windows.Forms.DockStyle.Fill; - this.displayBookMarks.Location = new System.Drawing.Point(0, 0); - this.displayBookMarks.Margin = new System.Windows.Forms.Padding(2, 2, 2, 2); - this.displayBookMarks.MyDisplayTabControl = null; - this.displayBookMarks.MyEditItem = null; - this.displayBookMarks.Name = "displayBookMarks"; - this.displayBookMarks.Size = new System.Drawing.Size(1, 603); - this.displayBookMarks.TabIndex = 0; - // - // toolsTabBookMarks - // - this.toolsTabBookMarks.AttachedControl = this.tabControlPanel2; - this.toolsTabBookMarks.Name = "toolsTabBookMarks"; - this.toolsTabBookMarks.Text = "Bookmarks"; - // - // tabControlPanelLD - // - this.tabControlPanelLD.Controls.Add(this.displayLibDocs); - this.tabControlPanelLD.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControlPanelLD.Location = new System.Drawing.Point(0, 0); - this.tabControlPanelLD.Name = "tabControlPanelLD"; - this.tabControlPanelLD.Padding = new System.Windows.Forms.Padding(1); - this.tabControlPanelLD.Size = new System.Drawing.Size(3, 605); - this.tabControlPanelLD.Style.BackColor1.Color = System.Drawing.SystemColors.Control; - this.tabControlPanelLD.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tabControlPanelLD.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Top) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tabControlPanelLD.Style.GradientAngle = 180; - this.tabControlPanelLD.TabIndex = 4; - this.tabControlPanelLD.TabItem = this.tabItemLibDocs; - this.tabControlPanelLD.ThemeAware = true; - // - // displayLibDocs - // - this.displayLibDocs.AutoScroll = true; - this.displayLibDocs.CurLibDoc = null; - this.displayLibDocs.Dock = System.Windows.Forms.DockStyle.Fill; - this.displayLibDocs.LibDocList = null; - this.displayLibDocs.Location = new System.Drawing.Point(1, 1); - this.displayLibDocs.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.displayLibDocs.Name = "displayLibDocs"; - this.displayLibDocs.Size = new System.Drawing.Size(1, 603); - this.displayLibDocs.TabIndex = 0; - // - // tabItemLibDocs - // - this.tabItemLibDocs.AttachedControl = this.tabControlPanelLD; - this.tabItemLibDocs.Name = "tabItemLibDocs"; - this.tabItemLibDocs.Text = "Library Documents"; - this.tabItemLibDocs.Click += new System.EventHandler(this.tabItemLibDocs_Click); - // - // expandableSplitter4 - // - this.expandableSplitter4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); - this.expandableSplitter4.BackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter4.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter4.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.expandableSplitter4.Dock = System.Windows.Forms.DockStyle.Right; - this.expandableSplitter4.Enabled = false; - this.expandableSplitter4.ExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter4.ExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter4.ExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter4.ExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter4.GripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter4.GripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter4.GripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); - this.expandableSplitter4.GripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.expandableSplitter4.HotBackColor = System.Drawing.Color.FromArgb(((int)(((byte)(252)))), ((int)(((byte)(151)))), ((int)(((byte)(61))))); - this.expandableSplitter4.HotBackColor2 = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(184)))), ((int)(((byte)(94))))); - this.expandableSplitter4.HotBackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground2; - this.expandableSplitter4.HotBackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemPressedBackground; - this.expandableSplitter4.HotExpandFillColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter4.HotExpandFillColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter4.HotExpandLineColor = System.Drawing.Color.FromArgb(((int)(((byte)(0)))), ((int)(((byte)(0)))), ((int)(((byte)(0))))); - this.expandableSplitter4.HotExpandLineColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.ItemText; - this.expandableSplitter4.HotGripDarkColor = System.Drawing.Color.FromArgb(((int)(((byte)(101)))), ((int)(((byte)(147)))), ((int)(((byte)(207))))); - this.expandableSplitter4.HotGripDarkColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.expandableSplitter4.HotGripLightColor = System.Drawing.Color.FromArgb(((int)(((byte)(227)))), ((int)(((byte)(239)))), ((int)(((byte)(255))))); - this.expandableSplitter4.HotGripLightColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.BarBackground; - this.expandableSplitter4.Location = new System.Drawing.Point(1157, 57); - this.expandableSplitter4.Name = "expandableSplitter4"; - this.expandableSplitter4.Size = new System.Drawing.Size(3, 514); - this.expandableSplitter4.Style = DevComponents.DotNetBar.eSplitterStyle.Office2007; - this.expandableSplitter4.TabIndex = 3; - this.expandableSplitter4.TabStop = false; - // - // buttonItem1 - // - this.buttonItem1.Image = ((System.Drawing.Image)(resources.GetObject("buttonItem1.Image"))); - this.buttonItem1.Name = "buttonItem1"; - this.buttonItem1.Text = "buttonItem19"; - this.buttonItem1.Tooltip = "Degree"; - // - // itemAnnotationsBindingSource - // - this.itemAnnotationsBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.ItemAnnotation); - // - // tc - // - this.tc.Dock = System.Windows.Forms.DockStyle.Fill; - this.tc.ForeColor = System.Drawing.SystemColors.ControlText; - this.tc.Location = new System.Drawing.Point(38, 57); - this.tc.Margin = new System.Windows.Forms.Padding(4); - this.tc.MyCopyStep = null; - this.tc.Name = "tc"; - this.tc.RibbonExpanded = true; - this.tc.SelectedDisplayTabItem = null; - this.tc.Size = new System.Drawing.Size(886, 511); - this.tc.TabIndex = 8; - this.tc.PanelTabDisplay += new Volian.Controls.Library.StepPanelTabDisplayEvent(this.tc_PanelTabDisplay); - this.tc.WordSectionClose += new Volian.Controls.Library.StepPanelWordSectionCloseEvent(this.tc_WordSectionClose); - this.tc.SelectedDisplayTabItemChanged += new Volian.Controls.Library.DisplayTabControlEvent(this.tc_SelectedDisplayTabItemChanged); - this.tc.ModeChange += new Volian.Controls.Library.StepPanelModeChangeEvent(this.tc_StepPanelModeChange); - this.tc.LinkModifyTran += new Volian.Controls.Library.StepPanelLinkEvent(this.tc_LinkModifyTran); - this.tc.WordSectionDeleted += new Volian.Controls.Library.StepPanelWordSectionDeletedEvent(this.tc_WordSectionDeleted); - this.tc.ItemSelectedChanged += new Volian.Controls.Library.ItemSelectedChangedEvent(this.tc_ItemSelectedChanged); - this.tc.LinkModifyRO += new Volian.Controls.Library.StepPanelLinkEvent(this.tc_LinkModifyRO); - // - // frmVEPROMS - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.AutoScroll = true; - this.ClientSize = new System.Drawing.Size(1195, 624); - this.Controls.Add(this.tc); - this.Controls.Add(this.expandableSplitter3); - this.Controls.Add(this.expandableSplitter2); - this.Controls.Add(this.expandableSplitter1); - this.Controls.Add(this.infoPanel); - this.Controls.Add(this.expandableSplitter4); - this.Controls.Add(this.toolsPanel); - this.Controls.Add(this.epProcedures); - this.Controls.Add(this.epAnnotations); - this.Controls.Add(this.bottomBar); - this.Controls.Add(this.ribbonControl1); - this.Font = new System.Drawing.Font("Microsoft Sans Serif", 8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "frmVEPROMS"; - this.Text = "Proms"; - this.Load += new System.EventHandler(this.frmVEPROMS_Load); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmVEPROMS_FormClosing); - this.Resize += new System.EventHandler(this.frmVEPROMS_Resize); - ((System.ComponentModel.ISupportInitialize)(this.bottomBar)).EndInit(); - this.bottomBar.ResumeLayout(false); - this.epAnnotations.ResumeLayout(false); - this.epProcedures.ResumeLayout(false); - this.infoPanel.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.infoTabs)).EndInit(); - this.infoTabs.ResumeLayout(false); - this.infotabControlPanelTags.ResumeLayout(false); - this.panelEx1.ResumeLayout(false); - this.tcpApplicability.ResumeLayout(false); - this.tabControlPanel1.ResumeLayout(false); - this.infotabControlPanelRO.ResumeLayout(false); - this.infotabControlPanelTransitions.ResumeLayout(false); - this.infotabControlPanelTransitions.PerformLayout(); - this.toolsPanel.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.toolsTabs)).EndInit(); - this.toolsTabs.ResumeLayout(false); - this.annotationSearch.ResumeLayout(false); - this.tabControlPanel3.ResumeLayout(false); - this.tabControlPanelLD.ResumeLayout(false); - this.tabControlPanel2.ResumeLayout(false); - this.panelEx3.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.itemAnnotationsBindingSource)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private DevComponents.DotNetBar.RibbonControl ribbonControl1; - private DevComponents.DotNetBar.Office2007StartButton office2007StartButton1; - private DevComponents.DotNetBar.ItemContainer itemContainer1; - private DevComponents.DotNetBar.ItemContainer itemContainer2; - private DevComponents.DotNetBar.ItemContainer itemContainer3; - private DevComponents.DotNetBar.ButtonItem btnNew; - private DevComponents.DotNetBar.ButtonItem btnOpen; - private DevComponents.DotNetBar.ButtonItem btnPrepare; - private DevComponents.DotNetBar.ButtonItem btnPrint; - private DevComponents.DotNetBar.ItemContainer icRecentDocs; - private DevComponents.DotNetBar.LabelItem labelItem8; - private DevComponents.DotNetBar.ItemContainer itemContainer5; - private DevComponents.DotNetBar.ButtonItem btnOptions; - private DevComponents.DotNetBar.ButtonItem btnExit; - private DevComponents.DotNetBar.QatCustomizeItem qatCustomizeItem1; - private DevComponents.DotNetBar.Bar bottomBar; - private DevComponents.DotNetBar.ProgressBarItem bottomProgBar; - private DevComponents.DotNetBar.ExpandablePanel epAnnotations; - private DevComponents.DotNetBar.ExpandablePanel epProcedures; - private DevComponents.DotNetBar.ExpandablePanel infoPanel; - private Volian.Controls.Library.vlnTreeView tv; - private DevComponents.DotNetBar.ExpandableSplitter expandableSplitter1; - private DevComponents.DotNetBar.ExpandableSplitter expandableSplitter2; - private DevComponents.DotNetBar.ExpandableSplitter expandableSplitter3; - private DevComponents.DotNetBar.TabControl infoTabs; - private DevComponents.DotNetBar.TabControlPanel infotabControlPanelTags; - private DevComponents.DotNetBar.TabItem infotabTags; - private DevComponents.DotNetBar.PanelEx panelEx1; - - private DevComponents.DotNetBar.Controls.CheckBoxX checkBoxX1; - private System.Windows.Forms.CheckedListBox checkedListBox1; - - //private System.Windows.Forms.PropertyGrid pg; - private DevComponents.DotNetBar.LabelItem labelItem9; - private DevComponents.DotNetBar.LabelItem labelItem10; - private DevComponents.DotNetBar.LabelItem labelItem11; - private DevComponents.DotNetBar.SuperTooltip superTooltip1; - private System.Windows.Forms.BindingSource itemAnnotationsBindingSource; - - private System.Windows.Forms.CheckBox checkBox1; - //private DevComponents.DotNetBar.Controls.GroupPanel groupPanel2; - //private DevComponents.DotNetBar.Controls.GroupPanel groupPanel1; - //private DevComponents.DotNetBar.Controls.GroupPanel groupPanel3; - - private DevComponents.DotNetBar.LabelItem labelItem20; - private DevComponents.DotNetBar.GalleryGroup Common; - private DevComponents.DotNetBar.GalleryGroup Math; - private DevComponents.DotNetBar.GalleryGroup Misc; - private DevComponents.DotNetBar.GalleryGroup galleryGroup1; - private DevComponents.DotNetBar.GalleryGroup galleryGroup2; - private DevComponents.DotNetBar.GalleryGroup galleryGroup3; - - //private DevComponents.DotNetBar.Controls.GroupPanel groupPanel4; - private DevComponents.DotNetBar.Controls.ComboBoxEx comboBoxEx1; - private DevComponents.DotNetBar.NavigationPanePanel navigationPanePanel2; - private DevComponents.DotNetBar.TabControlPanel infotabControlPanelRO; - private DevComponents.DotNetBar.TabItem infotabRO; - private DevComponents.DotNetBar.TabControlPanel infotabControlPanelTransitions; - private DevComponents.DotNetBar.TabItem infotabTransition; - private Volian.Controls.Library.DisplayTabControl tc; - private Volian.Controls.Library.DisplayTransition displayTransition; - private Volian.Controls.Library.DisplayRO displayRO; - private System.Windows.Forms.ToolTip toolTip1; - //private System.Windows.Forms.ComboBox cbGridAnnoType; - private DevComponents.DotNetBar.ButtonX btnAnnoDetailsPushPin; - private DevComponents.DotNetBar.ButtonItem buttonItem1; - private System.Windows.Forms.Timer tmrTreeView; - private System.Windows.Forms.Timer tmrAutomatic; - private Volian.Controls.Library.AnnotationDetails ctrlAnnotationDetails; - private DevComponents.DotNetBar.ButtonItem btnHelp; - private DevComponents.DotNetBar.ButtonItem btnHelpManual; - private DevComponents.DotNetBar.ButtonItem btnHelpAbout; - private DevComponents.DotNetBar.ButtonItem btnHelpVWeb; - private DevComponents.DotNetBar.ButtonItem btnAdmin; - - //private DevComponents.DotNetBar.ExpandablePanel searchPanel; - //private DevComponents.DotNetBar.TabControl searchTabControl; - private DevComponents.DotNetBar.ExpandablePanel toolsPanel; - private DevComponents.DotNetBar.TabControl toolsTabs; - - private DevComponents.DotNetBar.TabControlPanel annotationSearch; - //private DevComponents.DotNetBar.NavigationPane navpaneResults; - //private DevComponents.DotNetBar.NavigationPanePanel navpanSrchRslts; - //private Volian.Controls.Library.AnnotationSearch CtrlAnnotationSearch; - //private DevComponents.DotNetBar.ButtonItem btnSrchRslt; - //private DevComponents.DotNetBar.NavigationPanePanel navigationPanePanel3; - //private DevComponents.DotNetBar.ButtonItem btnSimStpsRslt; - private DevComponents.DotNetBar.TabItem toolstabResults; - private DevComponents.DotNetBar.TabControlPanel tabControlPanel2; - private DevComponents.DotNetBar.PanelEx panelEx3; - private DevComponents.DotNetBar.TabItem toolsTabBookMarks; - private DevComponents.DotNetBar.ExpandableSplitter expandableSplitter4; - private DevComponents.DotNetBar.TabControlPanel tabControlPanelLD; - private Volian.Controls.Library.DisplayLibDocs displayLibDocs; - private DevComponents.DotNetBar.TabItem tabItemLibDocs; - private Volian.Controls.Library.DisplayTags displayTags; - private Volian.Controls.Library.DisplaySearch displaySearch1; - private DevComponents.DotNetBar.LabelItem lblEditView; - private DevComponents.DotNetBar.ButtonItem btnItemInfo; - private Volian.Controls.Library.DisplayBookMarks displayBookMarks; - private DevComponents.DotNetBar.LabelItem lblLocked; - private DevComponents.DotNetBar.ButtonItem btnShortCuts; - private DevComponents.DotNetBar.LabelItem lblItemID; - private System.Windows.Forms.ComboBox cmbFont; - private DevComponents.DotNetBar.LabelItem lblResolution; - private DevComponents.DotNetBar.ButtonItem btnEditItem; - private DevComponents.DotNetBar.TabControlPanel tabControlPanel1; - private DevComponents.DotNetBar.TabItem infotabHistory; - private Volian.Controls.Library.DisplayHistory displayHistory; - private DevComponents.DotNetBar.ButtonItem btnUpdateFormats; - private System.Windows.Forms.FolderBrowserDialog fbd; - private DevComponents.DotNetBar.TabControlPanel tcpApplicability; - private DevComponents.DotNetBar.TabItem infotabApplicability; - private Volian.Controls.Library.DisplayApplicability displayApplicability; - private DevComponents.DotNetBar.ButtonItem btnSendErrorLog; - private DevComponents.DotNetBar.TabControlPanel tabControlPanel3; - private DevComponents.DotNetBar.TabItem toosTabReports; - private Volian.Controls.Library.DisplayReports displayReports; - } -} - diff --git a/PROMS/VEPROMS User Interface/frmVEPROMS.cs.bak b/PROMS/VEPROMS User Interface/frmVEPROMS.cs.bak deleted file mode 100644 index b6d2a072..00000000 --- a/PROMS/VEPROMS User Interface/frmVEPROMS.cs.bak +++ /dev/null @@ -1,2578 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Collections.Specialized; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using System.Configuration; -using VEPROMS.CSLA.Library; -//using Csla; -using DevComponents; -using DevComponents.DotNetBar; -using DevComponents.DotNetBar.Rendering; -using VEPROMS.Properties; -using Volian.Controls.Library; -using DescriptiveEnum; -using Volian.Base.Library; -using Volian.Print.Library; - -[assembly: log4net.Config.XmlConfigurator(Watch = true)] - -namespace VEPROMS -{ - enum PropPgStyle { Button = 1, Tab = 2, Grid = 3 }; - - public partial class frmVEPROMS : DevComponents.DotNetBar.Office2007RibbonForm - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region PropertiesVariables - private int securityRole; - private bool _panelExpandedChanging = false; - Color _CommentTitleBckColor; - DocVersionInfo _SelectedDVI = null; - StepTabPanel _SelectedStepTabPanel = null; - public FindReplace dlgFindReplace = null; - public VlnSpellCheck SpellChecker = null; - - public StepTabPanel SelectedStepTabPanel - { - get - { - return _SelectedStepTabPanel; - } - set - { - _SelectedStepTabPanel = value; - if (value == null) // DSO Tab Panel - { - dlgFindReplace.Visible = false; // Find/Replace dialog should not be visable for DSO tab panels - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.MyItemInfo != null) // 2nd part is for unassociated libdocs - SelectedDVI = tc.SelectedDisplayTabItem.MyItemInfo.MyDocVersion; - else - SelectedDVI = null; - } - else // Step Tab Panel - { - // The following line was broken into separate lines because a NullReferenceError was occuring. - // Now we should be able to tell what is wrong by which line causes the Null Reference Error - // RHM 20101217 - //SelectedDVI = value.MyStepPanel.MyProcedureItemInfo.MyProcedure.ActiveParent as DocVersionInfo; - StepPanel stepPanel = value.MyStepPanel; - ItemInfo itemInfo = stepPanel.MyProcedureItemInfo; - ProcedureInfo procedureInfo = itemInfo.MyProcedure; - SelectedDVI = procedureInfo.MyDocVersion; - // Remove it first, if it wasn't set, this doesn't do anything, but if it was set, you don't want - // multiple events because the print dialog will be displayed for each time the event was added. - _SelectedStepTabPanel.MyStepTabRibbon.PrintRequest -= new StepTabRibbonEvent(MyStepTabRibbon_PrintRequest); - _SelectedStepTabPanel.MyStepTabRibbon.PrintRequest += new StepTabRibbonEvent(MyStepTabRibbon_PrintRequest); - } - } - } - - public DocVersionInfo SelectedDVI - { - get { return _SelectedDVI; } - set - { - if (_SelectedDVI != value) - { - _SelectedDVI = value; - _SelectedROFst = null; - } - InitiateSearch(false); - InitiateDisplayReports(false); - } - } - // TODO: Should the following be an info - // For the initial release, we are assuming there will be only one rofst fro a docversion. Changes - // will be needed here if more than 1. - private ROFstInfo _SelectedROFst; - public ROFstInfo SelectedROFst - { - get - { - if (_SelectedROFst == null && SelectedDVI != null) - { - if (SelectedDVI.DocVersionAssociationCount <= 0) - { - MessageBox.Show("There is no Referenced Object (RO) data for this procedure set. Use the Properties for the set to define the RO data."); - return null; - } - _SelectedROFst = SelectedDVI.DocVersionAssociations[0].MyROFst; - } - return _SelectedROFst; - } - set { _SelectedROFst = value; } - } - #endregion - public frmVEPROMS() - { - // The following Try/Catch was added to protect against a problem seen by Kathy and Michelle - // on January 1, 2013. Michelle's user.config file was empty and PROMS would not run. - // This logic will delete a "Bad" config file to attempt to eliminate the problem, and - // instructs the user to try again. - try - { - if (Properties.Settings.Default.UpdateSettings) - { - Properties.Settings.Default.Upgrade(); - Properties.Settings.Default.UpdateSettings = false; - Properties.Settings.Default.Save(); - } - } - catch (Exception ex) - { - _MyLog.Error(ex.GetType().Name + " - " + ex.InnerException, ex); - if (ex.Message.StartsWith("Configuration system failed to initialize")) - { - string filename = ex.InnerException.Message; - filename = filename.Substring(filename.IndexOf("(") + 1); - filename = filename.Substring(0, filename.IndexOf("user.config") + 11); - FileInfo myfile = new FileInfo(filename); - myfile.Delete(); - MessageBox.Show("Config file was corrupt, it has been deleted.\r\nTry Again", "Corrupt config file", MessageBoxButtons.OK, MessageBoxIcon.Error); - System.Diagnostics.Process.GetCurrentProcess().Kill(); - } - } - // If first time close any remaining WinWords. These will sometimes get hung in memory and cause problems. - if (System.Diagnostics.Process.GetProcessesByName(System.Diagnostics.Process.GetCurrentProcess().ProcessName).Length == 1) - Volian.MSWord.WordDoc.KillWordApps(); - // cleanup from previous run: - Volian.Base.Library.TmpFile.RemoveAllTmps(); - - if (VlnSettings.DebugMode) - { - //use local data (for development/debug mode) - if (Environment.MachineName == "RMARK-PC") - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_RMARK_DEBUG"; - else if (Environment.UserName.ToUpper() == "BODINE") - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_BODINE_DEBUG"; - else - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_LOCAL"; - } - else - { - // use server data (default) - // - except for the volian laptop and Rich's Demo version where we need to use local data - if (Environment.MachineName == "RMARK-PC") - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_RMARK_DEMO"; - else if (Environment.UserName.ToUpper() == "BODINE") - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_BODINE_DEMO"; - else - VEPROMS.CSLA.Library.Database.ConnectionName = "VEPROMS_LOCAL"; - } - InitializeComponent(); - - // When creating an XY Plot, a System.Drawing.Graphics is needed and it requires a form. Use the main - // form. - if (VlnSettings.DebugMode) - { - MSWordToPDF.DebugStatus = 1; - MSWordToPDF.OverrideColor = Color.Red; - } - else - { - MSWordToPDF.DebugStatus = 0; - MSWordToPDF.OverrideColor = Color.Transparent; - } - MSWordToPDF.FormForPlotGraphics = this; - - // set the color of the ribbon - RibbonPredefinedColorSchemes.ChangeOffice2007ColorTable((eOffice2007ColorScheme)Settings.Default.SystemColor); - - // LATER: get the user setting to control what is displayed for each tree node - // The logic is in the ToString() functions in FolderExt.cs and DocVersionExt.cs - //the GetFolder(1) function will read in the frist node (using ToString() to assign node text) - - // Get the saved Tree Node Diplay settings - //if (Settings.Default["UseNameOnTreeNode"]) - //{ - //} - //if (Settings.Default["UseTitleOnTreeNode"]) - //{ - //} - cmbFont.DataSource = FontFamily.Families; - cmbFont.DisplayMember = "Name"; - cmbFont.SelectedIndex = -1; - string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray()); - foreach (string parameter in parameters) - { - if (parameter.StartsWith("/DB=")) - Database.SelectedDatabase = parameter.Substring(4); - } - if (Properties.Settings.Default["DefaultDB"] != string.Empty) - Database.LastDatabase = Properties.Settings.Default.DefaultDB; - if (!FormatInfo.HasLatestChanges()) - throw new Exception("Inconsistent Formats"); - if (!ItemAuditInfo.IsChangeManagerVersion()) - throw new Exception("Inconsistent Data"); - if ((Database.LastDatabase ?? "") != (Database.SelectedDatabase ?? "")) - { - Properties.Settings.Default.MRIList = null; - Properties.Settings.Default.DefaultDB = Database.SelectedDatabase; - Properties.Settings.Default.Save(); - } - displayBookMarks.SetupBookMarks(); - DateTime dtSunday = DateTime.Now.AddDays(-((int)DateTime.Now.DayOfWeek)); - ChangeLogFileName("LogFileAppender", Database.SelectedDatabase + " " + dtSunday.ToString("yyyyMMdd") + " ErrorLog.txt"); - _MyLog.InfoFormat("\r\nSession Beginning\r\n<========={0}=========== User: {1}/{2} Started {3} =====================>" - , Application.ProductVersion, Environment.UserDomainName,Environment.UserName, DateTime.Now.ToString("dddd MMMM d, yyyy h:mm:ss tt")); - foreach (string parameter in parameters) - { - if (parameter.ToUpper().StartsWith("/UF=")) - UpdateFormats(parameter.Substring(4)); - else if (parameter.ToUpper().StartsWith("/UF")) - UpdateFormats(null); - } - VETreeNode tn = VETreeNode.GetFolder(1); - tv.Nodes.Add(tn); - tv.NodePSI += new vlnTreeViewPSIEvent(tv_NodePSI); - tv.NodeOpenProperty += new vlnTreeViewPropertyEvent(tv_NodeOpenProperty); - tv.NodeSelect += new Volian.Controls.Library.vlnTreeViewEvent(tv_NodeSelect); - tv.NodeNew += new vlnTreeViewEvent(tv_NodeNew); - tv.OpenItem += new vlnTreeViewItemInfoEvent(tv_OpenItem); - tv.DeleteItemInfo += new vlnTreeViewItemInfoDeleteEvent(tv_DeleteItemInfo); - tv.InsertItemInfo += new vlnTreeViewItemInfoInsertEvent(tv_InsertItemInfo); - tv.NodeInsert += new vlnTreeViewEvent(tv_NodeInsert); - tv.PasteItemInfo += new vlnTreeViewItemInfoPasteEvent(tv_PasteItemInfo); - tc.ItemPaste += new StepPanelItemPastedEvent(tc_ItemPasted); - displayHistory.HistorySelectionChanged += new DisplayHistoryEvent(displayHistory_HistorySelectionChanged); - _CommentTitleBckColor = epAnnotations.TitleStyle.BackColor1.Color; - if (!btnAnnoDetailsPushPin.Checked) - epAnnotations.Expanded = false; - infoPanel.Expanded = false; - toolsPanel.Expanded = false; - displayTags.Visible = false; - ribbonControl1.ExpandedChanged += new EventHandler(ribbonControl1_ExpandedChanged); - dlgFindReplace = new FindReplace(); - SpellChecker = new VlnSpellCheck(); - displaySearch1.PrintRequest += new DisplaySearchEvent(displaySearch1_PrintRequest); - displayHistory.ChronologyPrintRequest += new DisplayHistoryReportEvent(displayHistory_ChronologyPrintRequest); - displayHistory.SummaryPrintRequest += new DisplayHistoryReportEvent(displayHistory_SummaryPrintRequest); - displayHistory.AnnotationRestored += new AnnotationRestoredHandler(displayHistory_AnnotationRestored); - displayReports.PrintRequest += new DisplayReportsEvent(displayReports_PrintRequest); - this.Activated += new EventHandler(frmVEPROMS_Activated); - VlnSettings.StepTypeToolType = Settings.Default.StepTypeToolTip; - displayLibDocs.PrintRequest += new DisplayLibDocEvent(displayLibDocs_PrintRequest); - ContentInfo.InfoChanged += new ContentInfoEvent(RefreshDisplayHistory); - AnnotationInfo.InfoChanged += new AnnotationInfoEvent(RefreshDisplayHistory); - ItemInfo.InfoRestored += new ItemInfoEvent(RefreshDisplayHistory); - ItemInfo.ItemDeleted += new ItemInfoEvent(RefreshDisplayHistory); - tv.PrintProcedure += new vlnTreeViewEvent(tv_PrintProcedure); - tv.PrintAllProcedures += new vlnTreeViewEvent(tv_PrintAllProcedures); - tv.ApproveProcedure += new vlnTreeViewEvent(tv_ApproveProcedure); - tv.ApproveAllProcedures += new vlnTreeViewEvent(tv_ApproveAllProcedures); - tv.ApproveSomeProcedures += new vlnTreeViewEvent(tv_ApproveSomeProcedures); - tv.ReportAllProceduresInconsistencies += new vlnTreeViewEvent(tv_ReportAllProceduresInconsistencies); - tv.RefreshCheckedOutProcedures += new vlnTreeViewEvent(tv_RefreshCheckedOutProcedures); - tv.ProcedureCheckedOutTo += new vlnTreeViewEvent(tv_ProcedureCheckedOutTo); - tv.ViewPDF += new vlnTreeViewPdfEvent(tv_ViewPDF); - displayApplicability.ApplicabilityViewModeChanged += new DisplayApplicability.DisplayApplicabilityEvent(displayApplicability_ApplicabilityViewModeChanged); - } - - private void MakeDatabaseChanges() - { - // September 2012: Decided to store roimages as zipped. Any previous data may not have them zipped. - // Check the top folders config to see, and if needed, zip them: - ROImageInfo.CompressAllExistingImages += new ROImageInfoCompressionEvent(ROImageInfo_CompressAllExistingImages); - ROImageInfo.ZipImages(); - ROImageInfo.CompressAllExistingImages -= new ROImageInfoCompressionEvent(ROImageInfo_CompressAllExistingImages); - - } - - void ROImageInfo_CompressAllExistingImages(object sender, ROImageInfoCompressionEventArgs args) - { - switch (args.Type) - { - case ROImageCompressionEventType.Complete: - ProgBarText = "Compressing Complete"; - break; - case ROImageCompressionEventType.Initialize: - ProgBarMax = args.Total; - ProgBarText = "Compressing RO Images"; - break; - case ROImageCompressionEventType.Update: - ProgBarValue = args.Current; - ProgBarText = args.FileName; - break; - default: - break; - } - } - - static string _ErrorLogFileName; - - public static string ErrorLogFileName - { - get { return frmVEPROMS._ErrorLogFileName; } - set { frmVEPROMS._ErrorLogFileName = value; } - } - static bool ChangeLogFileName(string AppenderName, string NewFilename) - { - log4net.Repository.ILoggerRepository RootRep; - RootRep = log4net.LogManager.GetRepository(); - foreach (log4net.Appender.IAppender iApp in RootRep.GetAppenders()) - { - if (iApp.Name.CompareTo(AppenderName) == 0 - && iApp is log4net.Appender.FileAppender) - { - log4net.Appender.FileAppender fApp = (log4net.Appender.FileAppender)iApp; - string folderPath = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); - fApp.File = folderPath + @"\VEPROMS\" + NewFilename; - ErrorLogFileName = fApp.File; - fApp.ActivateOptions(); - return true; // Appender found and name changed to NewFilename - } - } - return false; - } - - void displayApplicability_ApplicabilityViewModeChanged(object sender, EventArgs args) - { - if (tc.SelectedDisplayTabItem == null) return; - StepPanel pnl = tc.SelectedDisplayTabItem.MyStepTabPanel.MyStepPanel; - if (pnl != null) - { - pnl.ApplDisplayMode = displayApplicability.ViewMode; - displayHistory.ApplDisplayMode = pnl.ApplDisplayMode; - //added by jcb 20130718 to support enabling/diabling create pdf button until user selects a unit - if (pnl.ApplDisplayMode > 0) - { - pnl.MyStepTabPanel.MyStepTabRibbon.btnPdfCreate.Enabled = true; - btnPrint.Visible = true; - } - else - { - pnl.MyStepTabPanel.MyStepTabRibbon.btnPdfCreate.Enabled = false; - btnPrint.Visible = false; - } - //end added by jcb 20130718 - } - } - - void tv_ViewPDF(object sender, vlnTreeViewPdfArgs args) - { - byte[] buffer; - if (args.MyWatermark != string.Empty) - buffer = PromsPrinter.WatermarkPDF(args.MyBuffer, args.MyWatermark); - else - buffer = args.MyBuffer; - string fileName = Volian.Base.Library.VlnSettings.TemporaryFolder + "\\" + args.MyFilename; - try - { - FileStream fs = new FileStream(fileName, FileMode.Create); - fs.Write(buffer, 0, buffer.Length); - fs.Close(); - System.Diagnostics.Process.Start(fileName); - } - catch (Exception ex) - { - StringBuilder sb = new StringBuilder(); - sb.AppendLine("Could not create"); - sb.AppendLine(); - sb.AppendLine(fileName + "."); - sb.AppendLine(); - sb.AppendLine("If it is open, close and retry."); - MessageBox.Show(sb.ToString(), "Error on CreatePdf",MessageBoxButtons.OK,MessageBoxIcon.Warning); -// MessageBox.Show("Could not create " + fileName + ". If it is open, close and retry.", "Error on CreatePdf"); - } - } - - void displayHistory_AnnotationRestored(AnnotationInfo restoredAnnotationInfo, ItemInfo currentItem) - { - ctrlAnnotationDetails.UpdateAnnotationGrid(currentItem); - } - - void tv_ReportAllProceduresInconsistencies(object sender, vlnTreeEventArgs args) - { - DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo; - if (dvi == null) return; - this.Cursor = Cursors.WaitCursor; - ItemInfoList iil = ItemInfoList.GetAllInconsistencies(dvi.VersionID); - Volian.Print.Library.PDFConsistencyCheckReport rpt = new Volian.Print.Library.PDFConsistencyCheckReport(Volian.Base.Library.VlnSettings.TemporaryFolder + @"\AllInconsistencies.pdf", iil); - rpt.BuildAllReport(dvi); - this.Cursor = Cursors.Default; - } - - void tv_ApproveSomeProcedures(object sender, vlnTreeEventArgs args) - { - DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo; - if (dvi == null) return; - tc.SaveCurrentEditItem(); - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(dvi.VersionID, CheckOutType.DocVersion, ref message)) - { - MessageBox.Show(this, message, "Working Draft Has Items Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion); - dvi.DocVersionConfig.SelectedSlave = args.UnitIndex; - dlgApproveProcedure dlg = new dlgApproveProcedure(dvi, true); - dlg.MySessionInfo = MySessionInfo; - dlg.ShowDialog(this); - displayHistory.RefreshList(); - dvi.DocVersionConfig.SelectedSlave = 0; - MySessionInfo.CheckInItem(ownerid); - } - - void tv_ApproveAllProcedures(object sender, vlnTreeEventArgs args) - { - DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo; - if (dvi == null) return; - tc.SaveCurrentEditItem(); - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(dvi.VersionID, CheckOutType.DocVersion, ref message)) - { - MessageBox.Show(this, message, "Working Draft Has Items Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - int ownerid = MySessionInfo.CheckOutItem(dvi.VersionID, CheckOutType.DocVersion); - dvi.DocVersionConfig.SelectedSlave = args.UnitIndex; - dlgApproveProcedure dlg = new dlgApproveProcedure(dvi); - dlg.MySessionInfo = MySessionInfo; - dlg.ShowDialog(this); - displayHistory.RefreshList(); - dvi.DocVersionConfig.SelectedSlave = 0; - MySessionInfo.CheckInItem(ownerid); - } - - void tv_RefreshCheckedOutProcedures(object sender, vlnTreeEventArgs args) - { - OwnerInfoList.Reset(); - OwnerInfoList oil = OwnerInfoList.Get(); - Dictionary dicProcCheckedOut = new Dictionary(); - Dictionary dicDocCheckedOut = new Dictionary(); - foreach (OwnerInfo oi in oil) - { - if (oi.SessionID != MySessionInfo.SessionID && oi.OwnerType == (byte)CheckOutType.Procedure) - dicProcCheckedOut.Add(oi.OwnerItemID, oi.OwnerID); - else if (oi.SessionID != MySessionInfo.SessionID && oi.OwnerType == (byte)CheckOutType.Document) - dicDocCheckedOut.Add(oi.OwnerItemID, oi.OwnerID); - } - if (args.Node.IsExpanded) - { - foreach (TreeNode tn in args.Node.Nodes) - { - ProcedureInfo pi = (tn as VETreeNode).VEObject as ProcedureInfo; - if (pi != null && dicProcCheckedOut.ContainsKey(pi.ItemID)) - tn.ForeColor = Color.Red; - else - tn.ForeColor = Color.Black; - bool expanded = tn.IsExpanded; - if (!expanded) - tn.Expand(); - foreach (TreeNode tnn in tn.Nodes) - { - SectionInfo si = (tnn as VETreeNode).VEObject as SectionInfo; - if (si != null && si.MyContent.MyEntry != null) - { - if (dicDocCheckedOut.ContainsKey(si.MyContent.MyEntry.DocID)) - tnn.ForeColor = Color.Red; - else - tnn.ForeColor = Color.Black; - } - } - if (!expanded) - tn.Collapse(); - } - } - } - - void tv_ProcedureCheckedOutTo(object sender, vlnTreeEventArgs args) - { - ProcedureInfo pi = null; - SectionInfo si = null; - pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; - if(pi == null) - si = (args.Node as VETreeNode).VEObject as SectionInfo; - UserInfo ui = UserInfo.GetByUserID(MySessionInfo.UserID); - dlgCheckedOutProcedure cop = new dlgCheckedOutProcedure(pi, si, ui); - cop.ShowDialog(this); - tv_RefreshCheckedOutProcedures(sender, new vlnTreeEventArgs(args.Node.Parent, null, 0)); - } - - void tv_ApproveProcedure(object sender, vlnTreeEventArgs args) - { - ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; - pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex; - if (pi == null) return; - tc.SaveCurrentEditItem(pi); - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - int ownerid = MySessionInfo.CheckOutItem(pi.ItemID, 0); - dlgApproveProcedure dlg = new dlgApproveProcedure(pi); - dlg.MySessionInfo = MySessionInfo; - dlg.ShowDialog(this); - displayHistory.RefreshList(); - pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; - MySessionInfo.CheckInItem(ownerid); - } - - void tv_PrintAllProcedures(object sender, vlnTreeEventArgs args) - { - DocVersionInfo dvi = (args.Node as VETreeNode).VEObject as DocVersionInfo; - if (dvi == null) return; - tc.SaveCurrentEditItem(); - DlgPrintProcedure prnDlg = new DlgPrintProcedure(dvi); - prnDlg.MySessionInfo = MySessionInfo; - prnDlg.SelectedSlave = args.UnitIndex; - prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - } - void tv_PrintProcedure(object sender, vlnTreeEventArgs args) - { - ProcedureInfo pi = (args.Node as VETreeNode).VEObject as ProcedureInfo; - pi.MyDocVersion.DocVersionConfig.SelectedSlave = args.UnitIndex; - if (pi == null) return; - tc.SaveCurrentEditItem(pi); - DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi); - prnDlg.MySessionInfo = MySessionInfo; - prnDlg.SelectedSlave = args.UnitIndex; -// prnDlg.Show(this); // RHM 20120925 - Center dialog over PROMS window - prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; - } - void RefreshDisplayHistory(object sender) - { - displayHistory.RefreshChangeList(); - } - void displayHistory_HistorySelectionChanged(object sender, DisplayHistoryEventArgs args) - { - tc.OpenItem(ItemInfo.Get(args.ItemID)); - } - void displayHistory_SummaryPrintRequest(object sender, DisplayHistoryReportEventArgs args) - { - Volian.Print.Library.PDFChronologyReport myChronoRpt = new Volian.Print.Library.PDFChronologyReport(args.ReportTitle, args.ProcedureInfo, args.AuditList, args.AnnotationList); - myChronoRpt.BuildSummary(); - } - void displayHistory_ChronologyPrintRequest(object sender, DisplayHistoryReportEventArgs args) - { - Volian.Print.Library.PDFChronologyReport myChronoRpt = new Volian.Print.Library.PDFChronologyReport(args.ReportTitle, args.ProcedureInfo, args.AuditList, args.AnnotationList); - myChronoRpt.BuildChronology(); - } - DialogResult tv_NodePSI(object sender, vlnTreeEventArgs args) - { - VETreeNode vNode = (VETreeNode)args.Node; - IVEDrillDownReadOnly veObj = vNode.VEObject; - ProcedureInfo myProc = veObj as ProcedureInfo; - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(myProc.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return DialogResult.None; - } - int ownerID = MySessionInfo.CheckOutItem(myProc.ItemID, 0); - frmPSI fpsi = new frmPSI(myProc); - DialogResult dr = fpsi.ShowDialog(this); - MySessionInfo.CheckInItem(ownerID); - return dr; - } - /// - /// Activate tmrTreeView so that the newly created Step recieves focus - /// - /// - /// - void tv_NodeInsert(object sender, vlnTreeEventArgs args) - { - tmrTreeView.Enabled = true; - } - void frmVEPROMS_Activated(object sender, EventArgs e) - { - if (ActiveControl == tc) tc.HideCaret(); - // refresh anything that pertains to external files or programs: - - // if ro.fst was 'updated' from the roeditor, enable the update ro.fst values on - // the steptabribbon. - if (SelectedStepTabPanel!=null && SelectedStepTabPanel.MyStepTabRibbon != null) - SelectedStepTabPanel.MyStepTabRibbon.SetUpdRoValBtn(SelectedStepTabPanel.MyStepTabRibbon.NewerRoFst()); - } - void MyStepTabRibbon_PrintRequest(object sender, StepTabRibbonEventArgs args) - { - ProcedureInfo pi = args.Proc as ProcedureInfo; - //added by jcb 20130718 to support create pdf button when multiunit and user selects a unit - pi.MyDocVersion.DocVersionConfig.SelectedSlave = pi.ProcedureConfig.SelectedSlave; - //end added by jcb 20130718 - if (pi == null) return; - DlgPrintProcedure prnDlg = new DlgPrintProcedure(pi); - //added by jcb 20130718 to support create pdf button when multiunit and user selects a unit - prnDlg.SelectedSlave = pi.ProcedureConfig.SelectedSlave == 0 ? -1 : pi.ProcedureConfig.SelectedSlave; - prnDlg.MySessionInfo = MySessionInfo; - //end added by jcb 20130718 - prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - //added by jcb 20130718 to support create pdf button when multiunit and user selects a unit - pi.MyDocVersion.DocVersionConfig.SelectedSlave = 0; - //end added by jcb 20130718 - } - void displaySearch1_PrintRequest(object sender, DisplaySearchEventArgs args) - { - Volian.Print.Library.PDFReport myReport = new Volian.Print.Library.PDFReport(args.ReportTitle, args.TypesSelected, args.MyItemInfoList, - Volian.Base.Library.VlnSettings.TemporaryFolder + @"\searchresults.pdf"); - if (args.SearchString != null) - myReport.SearchString = args.SearchString; - myReport.Build(); - } - - void displayLibDocs_PrintRequest(object sender, DisplayLibDocEventArgs args) - { - Volian.Print.Library.PDFReport myReport = new Volian.Print.Library.PDFReport(args.ReportTitle, args.LibDocList, Volian.Base.Library.VlnSettings.TemporaryFolder + @"\LibDocUsage.pdf"); - myReport.Build(); - } - - void displayReports_PrintRequest(object sender, DisplayReportsEventArgs args) - { - if (args.TypesSelected == "RO Usage") - { - Volian.Print.Library.PDFReport myReport = new Volian.Print.Library.PDFReport(args.ReportTitle, args.MyItemInfoList, Volian.Base.Library.VlnSettings.TemporaryFolder + @"\ROUsageReport.pdf", args.SortUsageByProcedure); - myReport.Build(); - } - else if (args.TypesSelected == "RO Report") - { - Volian.Print.Library.PDFReport myReport = new Volian.Print.Library.PDFReport(args.ReportTitle, args.RODataFile, Volian.Base.Library.VlnSettings.TemporaryFolder + @"\ROCompleteReport.pdf", args.CompleteROReport); - myReport.Build(); - } - } - - - bool tv_InsertItemInfo(object sender, vlnTreeItemInfoInsertEventArgs args) - { - // Don't select the newly created Step. This will be handled by tmrTreeView - return tc.InsertRTBItem(args.MyItemInfo, args.StepText, args.InsertType, args.FromType, args.Type, false); - } - private bool tv_DeleteItemInfo(object sender, vlnTreeItemInfoEventArgs args) - { - if (displayHistory.MyEditItem != null && displayHistory.MyItemInfo.MyProcedure.ItemID == args.MyItemInfo.ItemID) - displayHistory.MyEditItem = null; - return tc.DeleteRTBItem(args.MyItemInfo); - //if (si == null) return false; - //si.RemoveItem(); - //return true; - } - private bool tv_PasteItemInfo(object sender, vlnTreeItemInfoPasteEventArgs args) - { - return tc.PasteRTBItem(args.MyItemInfo, args.CopyStartID, args.PasteType, (int)args.Type); - } - private void frmVEPROMS_FormClosing(object sender, FormClosingEventArgs e) - { - if (MyActivityTimer != null) - { - MyActivityTimer.Dispose(); - MySessionInfo.EndSession(); - // Save the location and size of the VE-PROMS appication for this user - if (this.WindowState == FormWindowState.Normal) - { - Settings.Default.Location = this.Location; - Settings.Default.Size = this.Size; - } - Settings.Default.WindowState = this.WindowState; - Settings.Default.QATItems = ribbonControl1.QatLayout; - SaveMRU(); - } - //Settings.Default.Save(); - Volian.Base.Library.DebugPagination.Close(); - Volian.Base.Library.DebugText.Close(); - } - void frmVEPROMS_FormClosed(object sender, System.Windows.Forms.FormClosedEventArgs e) - { - // Close any open documents - tc.Dispose(); - // RHM 20121010 - // Something was causing the process to remain in memory for an extended period of time - // after printing procedures. The following lines kills the process immediately. - System.Diagnostics.Process.GetCurrentProcess().Kill(); - } - // Get the "Procedures" Panel Heading (title). - // by default the heading is "Procedures" (handled in the getting from the config) - // the heading is stored in the "title" field of the folder config. - // we currently only use the "title" field for the top (VEPROMS) tree node. - private string getProcedurePanelHeading() - { - VETreeNode jj_vetn = (VETreeNode)tv.Nodes[0]; // the VEPROMS tree node - return ((FolderConfig)jj_vetn.VEObject.MyConfig).Title; // get the panel heading - } - - private SessionInfo MySessionInfo; - private System.Threading.Timer MyActivityTimer; - private DevComponents.DotNetBar.ButtonItem btnManageSecurity; - private DevComponents.DotNetBar.ButtonItem btnResetSecurity; - private TabItemsToClose _MyCloseTabList = new TabItemsToClose(); - public TabItemsToClose MyCloseTabList - { - get { return _MyCloseTabList; } - } - private void PingSession(Object obj) - { - List myList = MySessionInfo.PingSession(); - foreach (DisplayTabItem dti in tc.MyBar.Items) - { - if (!myList.Contains(dti.OwnerID)) - MyCloseTabList.PushDTI(dti); - } - } - public Timer tmrCloseTabItems; - - private void frmVEPROMS_Load(object sender, EventArgs e) - { - InitializeSecurity(); - UpdateUser(); - btnManageSecurity = new ButtonItem("btnManageSecurity", "Manage Security"); - btnAdmin.SubItems.Add(btnManageSecurity); - btnManageSecurity.Click += new EventHandler(btnManageSecurity_Click); - //added by jcb - //menu item to reset security - //requires password to implement - btnResetSecurity = new ButtonItem("btnResetSecurity", "Reset Security"); - btnAdmin.SubItems.Add(btnResetSecurity); - btnResetSecurity.Click += new EventHandler(btnResetSecurity_Click); - //end added by jcb - UserInfo ui = null; - try - { - ui = UserInfo.GetByUserID(VlnSettings.UserID); - } - catch - { - MessageBox.Show("This database is not compatible with this version of PROMS. The PROMS program will terminate. Please contact Volian to assist in resolution."); - Application.Exit(); - } - if (ui == null) - { - User u = User.MakeUser(VlnSettings.UserID, "", "", "", "", "", "", "", "", "", "", DateTime.Now, VlnSettings.UserID); - Group g = Group.Get(securityRole); - Membership.MakeMembership(u, g, null, ""); - ui = UserInfo.Get(u.UID); - } - ctrlAnnotationDetails.MyUserInfo = ui; - bool isVisible = ui.IsAdministrator(); - btnManageSecurity.Visible = isVisible; - btnUpdateFormats.Visible = isVisible; - btnResetSecurity.Visible = isVisible; - tmrCloseTabItems = new Timer(); - tmrCloseTabItems.Interval = 100; - tmrCloseTabItems.Tick += new EventHandler(tmrCloseTabItems_Tick); - tmrCloseTabItems.Enabled = true; - MySessionInfo = SessionInfo.BeginSession(Environment.MachineName, System.Diagnostics.Process.GetCurrentProcess().Id); - tc.MySessionInfo = MySessionInfo; - tv.MySessionInfo = MySessionInfo; - System.Threading.AutoResetEvent autoEvent = new System.Threading.AutoResetEvent(false); - //System.Threading.TimerCallback timerDelegate = new System.Threading.TimerCallback(MySessionInfo.PingSession); - System.Threading.TimerCallback timerDelegate = new System.Threading.TimerCallback(this.PingSession); - MyActivityTimer = new System.Threading.Timer(timerDelegate, autoEvent, 10000, 10000); - //string debugMode = ConfigurationManager.AppSettings["Debug"]; - //VlnSettings.DebugMode = bool.Parse(debugMode); // set debug for the Volian.Controls.Library - // get the saved location and size of the VE-PROMS appication for this user - if (Settings.Default["Location"] != null) this.Location = Settings.Default.Location; - if (Settings.Default["Size"] != null) this.Size = Settings.Default.Size; - if (Settings.Default["WindowState"] != null) this.WindowState = Settings.Default.WindowState; - //if (Settings.Default.SaveTreeviewExpanded) epProcedures.Expanded = Settings.Default.TreeviewExpanded; - // if the Procedures panel was left open from the last session, then open it - epProcedures.Expanded = Settings.Default.TreeviewExpanded; - if (Settings.Default["QATItems"] != null) ribbonControl1.QatLayout = Settings.Default.QATItems; - - // See if any database 'changes' need done and do them: - MakeDatabaseChanges(); - - _MyMRIList = MostRecentItemList.GetMRILst((System.Collections.Specialized.StringCollection)(Properties.Settings.Default["MRIList"])); - _MyMRIList.AfterRemove += new ItemInfoEvent(_MyMRIList_AfterRemove); - SetupMRU(); - // if the user selected to "Remember Last" (was "Save Expanded") then use the MRU list to - // expand the tree to the last opened procedure - //if (epProcedures.Expanded && _MyMRIList.Count > 0) - if (Settings.Default.SaveTreeviewExpanded && _MyMRIList.Count > 0) - { - tv.AdjustTree(_MyMRIList[0].MyItemInfo.MyProcedure); - tv.SelectedNode.Expand(); - SetCaption(tv.SelectedNode as VETreeNode); - } - // Assign the Procedure Panel's title (heading) - epProcedures.TitleText = getProcedurePanelHeading();// get the panel heading - // if the procedure panel is expanded, make sure we enable the splitter so the user can resize the panel - // Bug fix: B2013-89 - expandableSplitter1.Enabled = epProcedures.Expanded; - - displaySearch1.SetupAnnotationSearch(ctrlAnnotationDetails, tc); - AnnotationTypeInfoList.ListChanged += new AnnotationTypeInfoListEvent(AnnotationTypeInfoList_ListChanged); - ctrlAnnotationDetails.SetupAnnotations(displaySearch1); - SetupButtons(); - displayBookMarks.MyDisplayTabControl = tc; // allows bookmark selection to bring up steps/docs - office2007StartButton1.MouseDown +=new MouseEventHandler(office2007StartButton1_MouseDown); - //displayRO.EnabledChanged += new EventHandler(displayRO_EnabledChanged); - tc.Enter += new EventHandler(tc_Enter); - tc.Leave += new EventHandler(tc_Leave); - tc.StatusChanged += new DisplayTabControlStatusEvent(tc_StatusChanged); - tc.ToggleRibbonExpanded += new DisplayTabControlEvent(tc_ToggleRibbonExpanded); - this.Deactivate += new EventHandler(frmVEPROMS_Deactivate); - if (VlnSettings.DemoMode) StepRTB.MyFontFamily = GetFamily("Bookman Old Style"); - displaySearch1.Enter += new EventHandler(displaySearch1_Enter); - displayHistory.Enter += new EventHandler(displayHistory_Enter); - ctrlAnnotationDetails.Enter += new EventHandler(ctrlAnnotationDetails_Enter); - Application.DoEvents(); - if (RunningNewRevision && ShowEULA() != DialogResult.OK) - { - Timer tmrShutDown = new Timer(); - tmrShutDown.Interval = 250; - tmrShutDown.Tick += new EventHandler(tmrShutDown_Tick); - tmrShutDown.Enabled = true; - } - else - tmrAutomatic.Enabled = true; - //// Shutoff UpdateFormats for Production Mode - //if (Volian.Base.Library.VlnSettings.ProductionMode) - // btnAdmin.Visible = false; - StepTabRibbon.PasteNoReturnsSetting = Properties.Settings.Default.PasteNoReturns; - StepTabRibbon.PastePlainTextSetting = Properties.Settings.Default.PastePlainText; - } - - void tmrCloseTabItems_Tick(object sender, EventArgs e) - { - while(MyCloseTabList.CountDTI > 0) - { - DisplayTabItem dti = MyCloseTabList.PopDTI(); - if (dti.MyDSOTabPanel != null) - dti.MyDSOTabPanel.OverrideClose = true; - tc.CloseTabItem(dti); - } - } - - private void InitializeSecurity() - { - Folder f = Folder.Get(1); - GroupInfo gi = GroupInfo.Get(1); - if (f.FolderConfig.Security_Group == 0) - { - f.FolderConfig.Security_Group = gi.GID; - f.Save(); - } - securityRole = f.FolderConfig.Security_Group; - } - - private string proxyUser; - private void UpdateUser() - { - string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray()); - foreach (string parameter in parameters) - { - if (parameter.ToUpper().StartsWith("/U=")) //this is for testing purposes on same machine to emulate different users - { - VlnSettings.UserID = parameter.Substring(3); - } - else if (parameter.StartsWith("/VeauLeeAnn")) //this is used by volian personnel to act as an existing user - { - //pop up user list to select from - ContextMenuStrip cms = BuildUserMenu(); - while (proxyUser == null) - { - cms.Show(new System.Drawing.Point((System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - cms.Width) / 2, (System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - cms.Height) / 2)); - System.Windows.Forms.Application.DoEvents(); - } - VlnSettings.UserID = proxyUser; - } - else if (parameter.StartsWith("/V3Pr0m5=")) //this is a backdoor to create another administrator - { - VlnSettings.UserID = parameter.Substring(9); - User u = User.MakeUser(VlnSettings.UserID, "", "", "", "", "", "", "", "", "", "", DateTime.Now, VlnSettings.UserID); - Group g = Group.GetByGroupName("Administrators"); - Membership.MakeMembership(u, g, null, ""); - } - } - lblUser.Text = VlnSettings.UserID; - } - - private ContextMenuStrip BuildUserMenu() - { - System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip(); - cms.Items.Add("Choose User"); - System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem; - tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink; - tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText); - tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold); - UserInfoList uil = UserInfoList.Get(); - foreach (UserInfo ui in uil) - { - if (ui.UserMembershipCount > 0) - { - foreach (MembershipInfo mi in ui.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - string txt = string.Format("{0} - {1}", ui.UserID, mi.MyGroup.GroupName); - ToolStripItem tsi = cms.Items.Add(txt, null, new EventHandler(User_Click)); - tsi.Tag = ui; - break; - } - } - } - } - return cms; - } - - private void User_Click(object sender, EventArgs e) - { - ToolStripMenuItem tsmi = sender as ToolStripMenuItem; - if (tsmi != null) - { - UserInfo ui = tsmi.Tag as UserInfo; - proxyUser = ui.UserID; - } - } - void btnManageSecurity_Click(object sender, EventArgs e) - { - dlgManageSecurity dlg = new dlgManageSecurity(); - dlg.ShowDialog(this); - } - void btnResetSecurity_Click(object sender, EventArgs e) - { - string password = string.Empty; - if (ShowInputDialog(ref password) == DialogResult.OK) - { - if(password == "V3Pr0m5") - { - StringBuilder sb = new StringBuilder(); - sb.AppendLine("***** WARNING *****"); - sb.AppendLine(); - sb.AppendLine("This action will delete all Groups, Users and Memberships from the database."); - sb.AppendLine("This action is NOT reversible."); - sb.AppendLine("Following this action the application will terminate."); - sb.AppendLine(); - sb.AppendLine("Are you sure you want to continue?"); - if (MessageBox.Show(sb.ToString(), "Confirm Security Reset", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop) == DialogResult.Yes) - { - ResetSecurity.Execute(); - Application.Exit(); - } - } - else - MessageBox.Show("You have entered an incorrect password."); - } - } - private static DialogResult ShowInputDialog(ref string input) - { - System.Drawing.Size size = new System.Drawing.Size(200, 70); - Form inputBox = new Form(); - - inputBox.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - inputBox.ClientSize = size; - inputBox.Text = "Enter Password"; - inputBox.StartPosition = FormStartPosition.CenterScreen; - - System.Windows.Forms.TextBox textBox = new TextBox(); - textBox.Size = new System.Drawing.Size(size.Width - 10, 23); - textBox.Location = new System.Drawing.Point(5, 5); - textBox.PasswordChar = '*'; - textBox.Text = input; - inputBox.Controls.Add(textBox); - - Button okButton = new Button(); - okButton.DialogResult = System.Windows.Forms.DialogResult.OK; - okButton.Name = "okButton"; - okButton.Size = new System.Drawing.Size(75, 23); - okButton.Text = "&OK"; - okButton.Location = new System.Drawing.Point(size.Width - 80 - 80, 39); - inputBox.Controls.Add(okButton); - - Button cancelButton = new Button(); - cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - cancelButton.Name = "cancelButton"; - cancelButton.Size = new System.Drawing.Size(75, 23); - cancelButton.Text = "&Cancel"; - cancelButton.Location = new System.Drawing.Point(size.Width - 80, 39); - inputBox.Controls.Add(cancelButton); - - - DialogResult result = inputBox.ShowDialog(); - input = textBox.Text; - return result; - } - - void tc_StatusChanged(object sender, DisplayTabControlStatusEventArgs args) - { - switch (args.Type) - { - case VolianStatusType.Initialize: - ProgBarMax = args.Count; - ProgBarText = args.Text; - ProgBarValue = 0; - break; - case VolianStatusType.Update: - ProgBarText = args.Text; - ProgBarValue = args.Count; - break; - case VolianStatusType.Complete: - ProgBarText = args.Text; - ProgBarValue = 0; - break; - default: - break; - } - } - void tmrShutDown_Tick(object sender, EventArgs e) - { - (sender as Timer).Enabled = false; - this.Close(); - } - private DialogResult ShowEULA() - { - string eulaFile = string.Format(@"\{0}", VlnSettings.EULAfile); - string strEULA = System.Environment.CurrentDirectory + eulaFile; - frmViewTextFile ViewFile = new frmViewTextFile(strEULA, RichTextBoxStreamType.PlainText); - ViewFile.Text = "End-User License Agreement"; - ViewFile.ButtonText = "Agree"; - if (ViewFile.ShowDialog() == DialogResult.OK) - { - System.Version ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; - string thisVersion = ver.Major.ToString() + "." + ver.Minor.ToString(); - Properties.Settings.Default.LastVersion = thisVersion; - return DialogResult.OK; - } - return DialogResult.Cancel; - } - private bool RunningNewRevision - { - get - { - string lastVersion = Properties.Settings.Default.LastVersion; - System.Version ver = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version; - string thisVersion = ver.Major.ToString() + "." + ver.Minor.ToString(); - return thisVersion != lastVersion; - } - } - void displayHistory_Enter(object sender, EventArgs e) - { - tc.HideCaret(); - } - void AnnotationTypeInfoList_ListChanged() - { - displaySearch1.SetupAnnotationSearch(ctrlAnnotationDetails, tc); - ctrlAnnotationDetails.SetupAnnotations(displaySearch1); - } - private void RunAutomatic() - { - string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray()); - bool ranAuto = false; - foreach (string parameter in parameters) - { - if(parameter.StartsWith("/P=")) - { - string[] dvstrs = parameter.Substring(3).Split(",".ToCharArray()); - foreach (string dvstr in dvstrs) - { - DocVersionInfo dvi = DocVersionInfo.Get(int.Parse(dvstr)); - if (dvi != null) - { - DlgPrintProcedure prnDlg = new DlgPrintProcedure(dvi,true); - if (dvi.MultiUnitCount == 0) - prnDlg.SelectedSlave = -1; - prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - //prnDlg.FormClosed += new FormClosedEventHandler(prnDlg_FormClosed); - //while (!_RunNext) Application.DoEvents(); - ranAuto = true; - } - } - } - } - if (ranAuto) - { - this.Close(); - } - } - private bool _RunNext = false; - //void prnDlg_FormClosed(object sender, FormClosedEventArgs e) - //{ - // _RunNext = true; - //} - private FontFamily GetFamily(string name) - { - foreach (FontFamily ff in FontFamily.Families) - if (ff.Name == name) return ff; - return null; - } - void tc_ToggleRibbonExpanded(object sender, EventArgs args) - { - Volian.Base.Library.vlnStackTrace.ShowStackLocal("tc_ToggleRibbonExpanded {0}", ribbonControl1.Expanded); - ribbonControl1.Expanded = !ribbonControl1.Expanded; - } - void frmVEPROMS_Deactivate(object sender, EventArgs e) - { - tc.HideCaret(); // Hide the pseudo cursor (caret) - } - void tc_Leave(object sender, EventArgs e) - { - tc.ShowCaret();// Show the pseudo cursor (caret) - } - void tc_Enter(object sender, EventArgs e) - { - tc.HideCaret();// Hide the pseudo cursor (caret) - } - void displaySearch1_Enter(object sender, EventArgs e) - { - tc.HideCaret();// Hide the pseudo cursor (caret) - } - void ctrlAnnotationDetails_Enter(object sender, EventArgs e) - { - tc.HideCaret();// Hide the pseudo cursor (caret) - } - //void displayRO_EnabledChanged(object sender, EventArgs e) - //{ - // Console.WriteLine("here"); - //} - void _MyMRIList_AfterRemove(object sender) - { - SetupMRU(); - } - private void SetupButtons() - { - if (!VlnSettings.DebugMode) - { - lblItemID.Visible = false; - btnItemInfo.Visible = false; - cmbFont.Visible = false; - btnEditItem.Visible = false; - lblResolution.Visible = false; - } - } - #region MRU - private MostRecentItemList _MyMRIList; - private void SetupMRU() - { - icRecentDocs.SubItems.Clear(); - if (_MyMRIList.Count > 0) - { - LabelItem lblItem = new LabelItem(); - lblItem.Text = "Recent Documents:"; - icRecentDocs.SubItems.Add(lblItem); - //icRecentDocs.SubItems.Add(); - for (int i = 0; i < _MyMRIList.Count; i++) - { - MostRecentItem mri = _MyMRIList[i]; - ButtonItem btnItem = new ButtonItem(); - string menuTitle = mri.MenuTitle.Replace("\u2011", "-"); - if (i < 9) - btnItem.Text = string.Format("&{0}. {1}", i + 1, menuTitle); - else - btnItem.Text = string.Format(" {1}", i + 1, menuTitle); - btnItem.Tag = mri.ItemID; - btnItem.Tooltip = mri.ToolTip; - btnItem.Click += new EventHandler(btnItem_Click); - icRecentDocs.SubItems.Add(btnItem); - } - } - } - - void btnItem_Click(object sender, EventArgs e) - { - ButtonItem btnItem = (ButtonItem)sender; - MostRecentItem mri = _MyMRIList.Add((int)(btnItem.Tag)); - //SaveMRU(); - SetupMRU(); - if (mri != null) tc.OpenItem(mri.MyItemInfo); - } - private void SaveMRU() - { - Properties.Settings.Default.MRIList = _MyMRIList.ToSettings(); - Properties.Settings.Default.TreeviewExpanded = epProcedures.Expanded; - Properties.Settings.Default.Save(); - } - #endregion - #region Tree View - /// - /// Get the selected tree node's properties - /// - /// VETreeNode - bool SetupNodes(VETreeNode node) - { - if (_MyMRIList.Add(node.VEObject) != null) - SetupMRU(); - #region Sample Display Table Code - // display an exiting table in that rtf grid thing - //if ((_LastStepInfo.MyContent.Type == 20007) || (_LastStepInfo.MyContent.Type == 20009)) - //{ - // //MessageBox.Show("Source Grid"); - // //frmTable newtable1 = new frmTable(_LastStepInfo.MyContent.Text); - // //newtable1.ShowDialog(); - // //MessageBox.Show("IGrid"); - // //frmIGrid newtable2 = new frmIGrid(_LastStepInfo.MyContent.Text); - // //newtable2.ShowDialog(); - // //MessageBox.Show("GridView"); //standard Visual Studio Control - // //frmGridView newtable3 = new frmGridView(_LastStepInfo.MyContent.Text); - // //newtable3.ShowDialog(); - // MessageBox.Show("FlexCell"); - // frmFlexCell newtable4 = new frmFlexCell(_LastStepInfo.MyContent.Text); - // newtable4.ShowDialog(); - //} - #endregion - ItemInfo ii = node.VEObject as ItemInfo; - if (ii != null) tc.OpenItem(ii); - SetCaption(node); - return (ii != null); // return if successful on opening item in step editor or word - } - // The following code is used to setup the user interface depending on what - // is selected on the tree view (see vlnTreeView.cs) - void tv_NodeNew(object sender, vlnTreeEventArgs args) - { - VETreeNode vNode = (VETreeNode)args.Node; - IVEDrillDownReadOnly veObj = vNode.VEObject; - SectionInfo mySection = veObj as SectionInfo; - if (mySection != null && mySection.MyContent.MyEntry != null) - { - // if it is a word section, find the DisplayTabItem; - DisplayTabItem tabItem = tc.GetProcDisplayTabItem(mySection); - if(tabItem != null)tabItem.MyStepTabPanel.MyStepPanel.Reset(); - } - // Don't select the newly created Step. This will be handled by tmrTreeView - //SetupNodes((VETreeNode)args.Node); - } - private void tv_NodeSelect(object sender, vlnTreeEventArgs args) - { - SetupNodes((VETreeNode)args.Node); - } - private void SetCaption(VETreeNode tn) - { - StringBuilder caption = new StringBuilder(); - string sep = string.Empty; - while (tn != null) - { - if (tn.VEObject.GetType() == typeof(FolderInfo) || tn.VEObject.GetType() == typeof(DocVersionInfo)) - { - //caption.Append(sep + tn.Text); - caption.Insert(0, tn.Text + sep); - sep = " - "; - } - tn = (VETreeNode)tn.Parent; - } - this.Text = caption.ToString(); - } - void tv_OpenItem(object sender, vlnTreeItemInfoEventArgs args) - { - tc.OpenItem(args.MyItemInfo); - } - /// - /// When the treeview is clicked - a timer is set - /// This is done because the focus is returned to the treeview after the click event - /// This approach did not work and was replaced with the code below. - /// The problem was that each time the treeview was clicked, the last selected node - /// was opened again, or the edit window was repositioned. - /// If the item was deleted and another treenode expanded, the click to expand the - /// node would cause the deleted node to be selected. - /// - /// - /// - //private void tv_Click(object sender, EventArgs e) - //{ - //tv.Enabled = false; - //tmrTreeView.Enabled = true; - //} - /// - /// This opens nodes if the mouse is within the bounds of a node. - /// By using the timer, the focus can be passed to the edit window. - /// - /// - /// - void tv_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) - { - _ExpandingTree = false; - } - void tv_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) - { - if (_ExpandingTree) - { - _ExpandingTree = false; - return; - } - if (e.Button != MouseButtons.Right) - { - Point newPoint = new Point(e.X, e.Y); - VETreeNode tn = tv.GetNodeAt(newPoint) as VETreeNode; - // Check to make sure that a node has been selected and - // that the mouse is within the bounds of the node. - if (tn != null && tn.Bounds.Left < newPoint.X) - { - tv.SelectedNode = tn; - tv.Enabled = false; - tmrTreeView.Enabled = true; - } - else - { - if (tn != null && tn.Bounds.Left < newPoint.X + 30) - return; - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.SelectedItemInfo != null) - { - tv.AdjustTree(tc.SelectedDisplayTabItem.SelectedItemInfo); - tc.SelectedDisplayTabItem.Focus(); - SetCaption(tv.SelectedNode as VETreeNode); - } - } - } - } - /// - /// This event is fired from the timer after the treeview click event completes - /// - /// - /// - private void tmrTreeView_Tick(object sender, EventArgs e) - { - bool giveTvFocus = true; - tmrTreeView.Enabled = false; // Timer has now fired - VETreeNode tn = tv.SelectedNode as VETreeNode; - if (tn != null) giveTvFocus = !SetupNodes(tn); - tv.Enabled = true; - if (giveTvFocus) tv.Focus(); - } - private void tmrAutomatic_Tick(object sender, EventArgs e) - { - tmrAutomatic.Enabled = false; // Timer has now fired - RunAutomatic(); - } - private bool _ExpandingTree=false; - private void tv_BeforeExpand(object sender, TreeViewCancelEventArgs e) - { - _ExpandingTree = true; - VETreeNode tn = ((VETreeNode)e.Node); - tn.LoadingChildrenDone += new VETreeNodeEvent(tn_LoadingChildrenDone); - tn.LoadingChildrenMax += new VETreeNodeEvent(tn_LoadingChildrenMax); - tn.LoadingChildrenValue += new VETreeNodeEvent(tn_LoadingChildrenValue); - tn.LoadingChildrenSQL += new VETreeNodeEvent(tn_LoadingChildrenSQL); - tn.LoadChildren(true); - } - #region Property Page and Grid - DialogResult tv_NodeOpenProperty(object sender, vlnTreePropertyEventArgs args) - { - this.Cursor = Cursors.WaitCursor; - DialogResult dr = DialogResult.Cancel; - if ((int)Settings.Default["PropPageStyle"] == (int)PropPgStyle.Grid) - { - frmPropGrid propGrid = new frmPropGrid(args.ConfigObject, args.Title); - dr = propGrid.ShowDialog(); - } - else - { - if (args.FolderConfig != null) - { - frmFolderProperties frmfld = new frmFolderProperties(args.FolderConfig); - dr = frmfld.ShowDialog(); - if (dr == DialogResult.OK) - epProcedures.TitleText = getProcedurePanelHeading();// get the panel heading - } - else if (args.DocVersionConfig != null) - { - frmVersionsProperties frmver = new frmVersionsProperties(args.DocVersionConfig); - dr = frmver.ShowDialog(); - } - else if (args.ProcedureConfig != null) - { - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(args.ProcedureConfig.MyProcedure.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - this.Cursor = Cursors.Default; - return DialogResult.None; - } - int ownerID = MySessionInfo.CheckOutItem(args.ProcedureConfig.MyProcedure.ItemID, 0); - frmProcedureProperties frmproc = new frmProcedureProperties(args.ProcedureConfig); - dr = frmproc.ShowDialog(); - MySessionInfo.CheckInItem(ownerID); - } - else if (args.SectionConfig != null) - { - //// If this is a word document, close any edit sessions... - //ItemInfo ii = null; - //using (Section tmp = args.SectionConfig.MySection) - //{ - // ii = ItemInfo.Get(tmp.ItemID); - // if (!ii.IsStepSection) tc.CloseWordItem(ii); - //} - - frmSectionProperties frmsec = new frmSectionProperties(args.SectionConfig); - dr = frmsec.ShowDialog(); - if (dr == DialogResult.OK && displayLibDocs.LibDocList != null) - { - displayLibDocs.LibDocListFillIn(tc); - displayLibDocs.SetSelectedLibDoc(); - } - } - } - this.Cursor = Cursors.Default; - return dr; - } - #endregion - #endregion - #region ColorStuff - /// - /// Get a System.Drawing.Color from an Argb or color name - /// - /// Color Name or "[(alpha,)red,green,blue]" - /// - private static Color cGetColor(string strColor) - { - // This was copied from frmFolderProperties.CS - Color rtnColor; - if (strColor == null || strColor.Equals("")) - rtnColor = Color.White; - else - { - if (strColor[0] == '[') - { - string[] parts = strColor.Substring(1, strColor.Length - 2).Split(",".ToCharArray()); - int parts_cnt = 0; - foreach (string s in parts) - { - parts[parts_cnt] = parts[parts_cnt].TrimStart(' '); // remove preceeding blanks - parts_cnt++; - } - if (parts_cnt == 3) - rtnColor = Color.FromArgb(Int32.Parse(parts[0]), Int32.Parse(parts[1]), Int32.Parse(parts[2])); - else - rtnColor = Color.FromArgb(Int32.Parse(parts[0].Substring(2)), Int32.Parse(parts[1].Substring(2)), Int32.Parse(parts[2].Substring(2)), Int32.Parse(parts[3].Substring(2))); - } - else rtnColor = Color.FromName(strColor); - } - return rtnColor; - } - //private void SetupEditorColors(DisplayPanel vlnCSLAPanel1, TabPage pg) - //{ - // // setup color - // if (_LastFolderInfo == null) - // { - // // user didn't select a FolderInfo type of node. - // // walk up the tree to find the first FolderInfo node type - // VETreeNode tn = (VETreeNode)(tv.SelectedNode); - // while (tn != null && tn.VEObject.GetType() != typeof(FolderInfo)) - // tn = (VETreeNode)tn.Parent; - // _LastFolderInfo = (FolderInfo)(tn.VEObject); - // _LastFolder = _LastFolderInfo.Get(); - // } - - // if ((_LastFolderInfo.FolderConfig.Color_editbackground != null) && !(_LastFolderInfo.FolderConfig.Color_editbackground.Equals(""))) - // { - // vlnCSLAPanel1.ActiveColor = cGetColor(_LastFolderInfo.FolderConfig.Color_editbackground); - // } - // if ((_LastFolderInfo.FolderConfig.Default_BkColor != null) && !(_LastFolderInfo.FolderConfig.Default_BkColor.Equals(""))) - // { - // vlnCSLAPanel1.InactiveColor = _LastFolderInfo.FolderConfig.Default_BkColor; - // vlnCSLAPanel1.TabColor = vlnCSLAPanel1.InactiveColor; - // vlnCSLAPanel1.PanelColor = vlnCSLAPanel1.InactiveColor; - // pg.BackColor = vlnCSLAPanel1.InactiveColor; - // } - //} - #endregion - #region Table Insert Sample Code - // TODO: for tables - //private void btnInsTable_Click(object sender, EventArgs e) - //{ - // Point loc = btnInsTable.DisplayRectangle.Location; - // loc.X += 300; - // int top = this.Top + (btnInsTable.Size.Height * 2); - // TablePickerDlg(sender, e, loc, top); - //} - - //private void TablePickerDlg(object sender, EventArgs e, Point loc, int top) - //{ - // Accentra.Controls.TablePicker tp = new Accentra.Controls.TablePicker(); - // tp.Location = loc; - // tp.Top += top; - // tp.Show(); - // while (tp.Visible) - // { - // Application.DoEvents(); - // System.Threading.Thread.Sleep(0); - // } - // // This was used to display a dialog containing a table grid - // // using a product called Source Grid - was for demo purposes only - // // - // //if (!tp.Cancel) - // //{ - // // frmTable newtable = new frmTable(tp.SelectedRows, tp.SelectedColumns); - // // newtable.Show(); - // //} - //} - #endregion - #region Progress Bar - - /// - /// Used for the status bar in the lower left corner of the main screen - /// - /// - /// - void tn_LoadingChildrenSQL(object sender, VETreeNodeEventArgs args) - { - ProgBarText = "Loading SQL"; - } - - /// - /// Used for the status bar in the lower left corner of the main screen - /// - /// - /// - void tn_LoadingChildrenValue(object sender, VETreeNodeEventArgs args) - { - ProgBarValue = args.Value; - } - - /// - /// Used for the status bar in the lower left corner of the main screen - /// - /// - /// - void tn_LoadingChildrenMax(object sender, VETreeNodeEventArgs args) - { - ProgBarMax = args.Value; - ProgBarText = "Loading..."; - } - - /// - /// Used for the status bar in the lower left corner of the main screen - /// - /// - /// - void tn_LoadingChildrenDone(object sender, VETreeNodeEventArgs args) - { - if (VlnSettings.DebugMode) - ProgBarText = args.Info + " Seconds"; - else - ProgBarText = ""; - } - - public int ProgBarMax - { - get { return bottomProgBar.Maximum; } - set { bottomProgBar.Maximum = value; } - } - - public int ProgBarValue - { - get { return bottomProgBar.Value; } - set { bottomProgBar.Value = value; } - } - - public string ProgBarText - { - get { return bottomProgBar.Text; } - set - { - bottomProgBar.TextVisible = true; - bottomProgBar.Text = value; - } - } - - #endregion - #region Find/Replace and Search - - /// - /// Find/Replace button on the ribbon - /// Display the Find/Replace dialog - /// - /// - /// - //private void btnFindRplDlg_Click_1(object sender, EventArgs e) - //{ - // FindReplace frmFindRepl = new FindReplace(); - // frmFindRepl.Show(); - //} - - /// - /// Global Search button on the ribbon - /// Opens the Information Pannel and selects the Results tab - /// - /// - /// - //private void btnGlbSrch_Click(object sender, EventArgs e) - //{ - // toolsPanel.Expanded = true; - // toolsTabs.SelectedTab = toolstabResults; - //} - - #endregion - #region Similar Steps - - /// - /// Similar Steps button on the ribbon - /// Opens the Information Pannel and selects the Results tab - /// - /// - /// - private void btnSimStps_Click(object sender, EventArgs e) - { - //infoPanel.Expanded = true; - //infoTabs.SelectedTab = toolstabResults; - //btnSimStpsRslt.Checked = true; - } - - #endregion - #region Help/About - - /// - /// About button on the ribbon - /// Display the About dialog - /// - /// - /// - private void btnAbout_Click(object sender, EventArgs e) - { - AboutVEPROMS about = new AboutVEPROMS(); - about.ShowDialog(); - } - - /// - /// Volian Web button on the ribbon - /// display the Volian web site on a pop up form - /// - /// - /// - private void btnVlnWeb_Click(object sender, EventArgs e) - { - VlnWeb veWWW = new VlnWeb(); - veWWW.Show(); - } - - #endregion - #region Ribbon - /// - /// This Opens the treeView or opens the selected item in the TreeView - /// - /// - /// - private void btnOpen_Click(object sender, EventArgs e) - { - if (!epProcedures.Expanded) // If panel not expanded - expand it. - { - epProcedures.Expanded = true; - if (tv.Nodes.Count > 0 && tv.SelectedNode == null) - tv.SelectedNode = tv.Nodes[0]; - tv.Focus(); - } - else - { - // TODO: DeleteMe - //VETreeNode tn = (VETreeNode)(tv.SelectedNode); - tv.OpenNode(); - } - } - private void btnNew_Click(object sender, EventArgs e) - { - if (!epProcedures.Expanded) return; - VETreeNode vtn = tv.SelectedNode as VETreeNode; - if (vtn == null) return; // nothing was selected. - if (btnNew.SubItems.Count > 0) return; // submenu will be displayed - vtn.Expand(); - - // Determine type of 'new' based on tree node's object type. The - // only options here are those that would not have created, based on - // containers, a submenu (see the office2007buttonstartbutton1_click code) - FolderInfo fi = vtn.VEObject as FolderInfo; - if (fi != null) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Folder); - return; - } - - DocVersionInfo dvi = vtn.VEObject as DocVersionInfo; - if (dvi != null) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Procedure); - return; - } - - // All other types are handled with sub-menus. - - } - - /// - /// Options button on the dialog that appears when the V icon is clicked (top left of application window) - /// note that the "V icon" is also called the Office 2007 Start Button - /// - /// - /// - private void btnOptions_Click(object sender, EventArgs e) - { - frmSysOptions VeSysOpts = new frmSysOptions(); - VeSysOpts.ShowDialog(); - StepTabRibbon.PasteNoReturnsSetting = Properties.Settings.Default.PasteNoReturns; - StepTabRibbon.PastePlainTextSetting = Properties.Settings.Default.PastePlainText; - } - /// - /// Exit button on the dialog that appears when the V icon is clicked (top left of application window) - /// note that the "V icon" is also called the Office 2007 Start Button - /// - /// - /// - private void btnExit_Click(object sender, EventArgs e) - { - this.Close(); - } - #endregion - #region InfoTabRO - private void infotabRO_Click(object sender, EventArgs e) - { - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabRO; - //if (dtp == null) return; - - displayRO.Mydvi = SelectedDVI; - displayRO.MyROFSTLookup = SelectedROFst.GetROFSTLookup(SelectedDVI); - displayRO.MyRTB = (SelectedStepTabPanel == null) ? null : - SelectedStepTabPanel.MyStepPanel.SelectedEditItem == null ? null : SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyStepRTB; - displayRO.TabControl = tc; - - displayRO.ProgressBar = bottomProgBar; - } - #endregion - #region InfoTabTransition - private void infotabTransition_Click(object sender, EventArgs e) - { - if (tc == null || tc.SelectedDisplayTabItem == null) return; - if (SelectedStepTabPanel == null) return; - displayTransition.MyRTB = SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyStepRTB; - //displayTransition.RangeColor = global::VEPROMS.Properties.Settings.Default.TransitionRangeColor; - displayTransition.CurTrans = null; - } - #endregion - #region InfoTabLibDocs - private void tabItemLibDocs_Click(object sender, EventArgs e) - { - displayLibDocs.RefreshLibDocPanel(tc); - //displayLibDocs.LibDocListFillIn(tc); - } - private void tv_SectionShouldClose(object sender, vlnTreeSectionInfoEventArgs args) - { - if (!args.MySectionInfo.IsStepSection) tc.CloseWordItem(args.MySectionInfo, args.IsDeleting); - else - { - if (tc == null) return; - StepTabPanel tp = tc.GetProcedureTabPanel(args.MySectionInfo as ItemInfo); - if (tp == null) return; - DisplayTabItem ti = tp.MyDisplayTabItem; - tc.CloseTabItem(ti); - } - } - private void tv_WordSectionDeleted(object sender, WordSectionEventArgs args) - { - // is it a library document - if so and libdoc panel is visible, update lists on panel. - // entry is null if it's a table of contents. - if ((!args.MySectionInfo.IsStepSection) && (args.MySectionInfo.MyContent.MyEntry != null) && ((args.MySectionInfo.MyContent.MyEntry.MyDocument.LibTitle ?? "") != "") && (toolsPanel.Expanded)) - { - if (toolsTabs.SelectedTab == tabItemLibDocs) - { - displayLibDocs.RefreshLibDocPanel(tc); - } - } - } - #endregion - #region InfoTabTags - private void infotabTags_Click(object sender, EventArgs e) - { - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabTags; - displayTags.MyEditItem = (SelectedStepTabPanel == null) ? null : SelectedStepTabPanel.MyStepPanel.SelectedEditItem; - } - #endregion - #region InfoTabBookMarks - private void infotabBookMarks_Click(object sender, EventArgs e) - { - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabTags; - displayTags.MyEditItem = (SelectedStepTabPanel == null) ? null : SelectedStepTabPanel.MyStepPanel.SelectedEditItem; - } - #endregion - #region PanelSupport - private void tc_WordSectionClose(object sender, WordSectionEventArgs args) - { - if (!args.MySectionInfo.IsStepSection) tc.CloseWordItem(args.MySectionInfo); - } - private void tc_WordSectionDeleted(object sender, WordSectionEventArgs args) - { - // is it a library document - if so and libdoc panel is visible, update lists on panel. - if ((!args.MySectionInfo.IsStepSection) && (args.MySectionInfo.MyContent.MyEntry != null && (args.MySectionInfo.MyContent.MyEntry.MyDocument.LibTitle ?? "") != "") && (toolsPanel.Expanded)) - { - if (toolsTabs.SelectedTab == tabItemLibDocs) - { - displayLibDocs.RefreshLibDocPanel(tc); - } - } - } - private void tc_ItemPasted(object sender, vlnTreeItemInfoPasteEventArgs args) - { - // all this needs to do is refresh the libdoc display - if it is visible - // and the current item is word section, i.e. it may be a lib doc & would - // require refresh of the lib doc panel. - if (toolsTabs.SelectedTab == tabItemLibDocs && args.MyItemInfo.IsSection) - { - SectionInfo si = args.MyItemInfo as SectionInfo; - if (si != null && (si.MyContent.MyEntry.MyDocument.LibTitle ?? "") != "") displayLibDocs.RefreshLibDocPanel(tc); - } - displayHistory.RefreshChangeList(); - } - private void tc_PanelTabDisplay(object sender, StepPanelTabDisplayEventArgs args) - { - if (args.PanelTabName == "Bookmarks") - { - toolsPanel.Expanded = true; - toolsTabs.SelectedTab = toolsTabBookMarks; - if (_CurrentItem != null && !dlgFindReplace.Visible) displayBookMarks.AddBookMark(_CurrentItem); - } - else if (args.PanelTabName == "Global Search") - { - toolsPanel.Expanded = true; - toolsTabs.SelectedTab = toolstabResults; - } - else if (args.PanelTabName == "LibDocs") - { - toolsPanel.Expanded = true; - toolsTabs.SelectedTab = tabItemLibDocs; - toolsTabs.SelectedTab.PerformClick(); - } - else if (args.PanelTabName == "Annots") - { - epAnnotations.Expanded = true; - } - else if (args.PanelTabName == "Change Step Type") - { - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabTags; - displayTags.HighlightChangeStep(); - } - else if (args.PanelTabName == "FndRpl") - { - dlgFindReplace.InApproved = (_SelectedDVI != null && _SelectedDVI.VersionType == 127); - dlgFindReplace.Mydocversion = _SelectedDVI; - dlgFindReplace.Visible = true; - dlgFindReplace.MyDisplayBookMarks = displayBookMarks; - } - else if (args.PanelTabName == "SpellChecker") - { - SpellChecker.DoSpellCheck(); - } - else if (args.PanelTabName == "DisplayROUpdateROFST") - { - _SelectedROFst = null; - displayRO.MyROFSTLookup = SelectedROFst.GetROFSTLookup(SelectedDVI); - displayRO.RefreshRoTree(); - } - } - private void tc_SelectedDisplayTabItemChanged(object sender, EventArgs args) - { - // If the current procedure or section in the treeview doesn't match then change the treeview selection. - //jcb added for error B2012-117 - ItemInfo tvii; - if (tv.SelectedNode == null) - tvii = null; - else - tvii = ((tv.SelectedNode as VETreeNode).VEObject) as ItemInfo; - if (tc.SelectedDisplayTabItem == null) return; - if (tc.SelectedDisplayTabItem.MyItemInfo == null) return; // library document. - if (tc.SelectedDisplayTabItem.MyItemInfo.IsProcedure) - { - if (tvii == null || tvii.IsSection || tc.SelectedDisplayTabItem.MyItemInfo.ItemID != tvii.MyProcedure.ItemID) - tv.AdjustTree(tc.SelectedDisplayTabItem.MyItemInfo); - } - else - { - if (tvii == null || tc.SelectedDisplayTabItem.MyItemInfo.ItemID != tvii.ItemID) - tv.AdjustTree(tc.SelectedDisplayTabItem.MyItemInfo); - } - SetCaption(tv.SelectedNode as VETreeNode); - displayApplicability.MyDisplayTabItem = tc.SelectedDisplayTabItem; - lblUser.Text = tc.SelectedDisplayTabItem.MyUserRole; - if (tc.SelectedDisplayTabItem.MyItemInfo.MyDocVersion.MultiUnitCount > 1) - btnPrint.Visible = false; - else - btnPrint.Visible = true; - } - private void tc_StepPanelModeChange(object sender, StepRTBModeChangeEventArgs args) - { - this.lblEditView.Text = args.ViewMode == E_ViewMode.Edit ? "Edit" : "View"; - this.dlgFindReplace.ToggleReplaceTab(args.ViewMode); - } - private ItemInfo _CurrentItem = null; - private StepRTB _LastStepRTB = null; - private void tc_ItemSelectedChanged(object sender, ItemSelectedChangedEventArgs args) - { - btnFixMSWord.Visible = (args != null && ( args.MyItemInfo != null && args.MyEditItem == null)); - if (_LastStepRTB != null && !_LastStepRTB.Disposing && !_LastStepRTB.Closed) - _LastStepRTB.EditModeChanged -= new StepRTBEvent(_LastStepRTB_EditModeChanged); - _LastStepRTB = args != null && args.MyEditItem != null ? args.MyEditItem.MyStepRTB : null; - if (_LastStepRTB != null) _LastStepRTB.EditModeChanged += new StepRTBEvent(_LastStepRTB_EditModeChanged); - lblEditView.Text = " "; - if (args == null) - { - _CurrentItem = null; - ctrlAnnotationDetails.CurrentAnnotation = null; - ctrlAnnotationDetails.Annotations = null; - infotabFoldoutMaint.Visible = infotabRO.Visible = infotabTransition.Visible = infotabTags.Visible = infotabHistory.Visible = infotabApplicability.Visible = false; - // When infotabTags is set to InVisible, the matching panel also needs to be set to invisible - infotabControlPanelTags.Visible = false; - displayTags.Visible = false; - SelectedStepTabPanel = null; - lblItemID.Text = "No Item Selected"; - lblItemID.ForeColor = Color.Yellow; - } - else - { - lblItemID.Text = string.Format("ItemID = {0}", args.MyItemInfo.ItemID); - lblItemID.ForeColor = Color.DarkBlue; - if (_CurrentItem != args.MyItemInfo) - { - if (_CurrentItem != null) _CurrentItem.Deleted -= new ItemInfoEvent(_CurrentItem_Deleted); - _CurrentItem = args.MyItemInfo; - } - //vlnStackTrace.ShowStack("enter tc_ItemSelectedChanged {0}", _CurrentItem); - if (args.MyEditItem == null) - { - infotabTransition.Visible = false; - infotabRO.Visible = false; - if (args.MyItemInfo.MyDocVersion.DocVersionAssociations != null) - { - displayRO.MyROFSTLookup = args.MyItemInfo.MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(args.MyItemInfo.MyDocVersion); - displayRO.MyRTB = null; - infotabRO.Visible = true; - } - infotabTags.Visible = false; - displayBookMarks.MyEditItem = null; - displayFoldoutMaint.Visible = false; - //vlnStackTrace.ShowStack("enter tc_ItemSelectedChanged {0}", _CurrentItem); - } - else - { - if (args.MyEditItem.MyItemInfo.IsSection || args.MyEditItem.MyItemInfo.IsProcedure) - { - infotabRO.Visible = infotabTransition.Visible = false; - infotabTags.Visible = false; - displayTags.Visible = false; - } - else - { - infotabTags.Visible = true; - if (_LastStepRTB != null) - { - infotabRO.Visible = infotabTransition.Visible = true; - displayRO.Enabled = _LastStepRTB.EditMode || _LastStepRTB.IsRoTable; - displayTransition.Enabled = _LastStepRTB.EditMode; - } - else - infotabRO.Visible = infotabTransition.Visible = false; - - // When infotabTags is set to Visible, the matching panel also needs to be set to visible - // the other panels will appear as they are selected by the user. - infotabControlPanelTags.Visible = true; - displayTags.IsVisible = true; - } - infotabHistory.Visible = true; - if (args.MyItemInfo.MyDocVersion.MultiUnitCount > 1) - { - infotabApplicability.Visible = true; - displayApplicability.MyItemInfo = args.MyEditItem.MyItemInfo; - } - else - infotabApplicability.Visible = false; - if (args.MyEditItem.MyItemInfo.ActiveFormat != null) - { - // see if format has floating foldouts, and if so, display the panel. - if (args.MyEditItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.AlternateFloatingFoldout) - { - - displayFoldoutMaint.Visible = true; - infotabFoldoutMaint.Visible = true; - displayFoldoutMaint.Enabled = true; - displayFoldoutMaint.MyItemInfo = args.MyItemInfo; - } - } - // When infotabTags is set to Visible, it is given focus. The next line returns focus to the StepRTB - args.MyEditItem.SetFocus(); - displayTransition.MyRTB = args.MyEditItem.MyStepRTB; - - displayRO.MyRTB = args.MyEditItem.MyStepRTB; - displayTags.MyEditItem = args.MyEditItem; - displayBookMarks.MyEditItem = args.MyEditItem; - displayHistory.MyEditItem = args.MyEditItem; - - displayRO.ProgressBar = bottomProgBar; - - lblEditView.Text = args.MyEditItem.MyStepPanel.VwMode == E_ViewMode.Edit ? "Edit" : "View" ; - _CurrentItem.Deleted += new ItemInfoEvent(_CurrentItem_Deleted); - dlgFindReplace.MyEditItem = args.MyEditItem; - SpellChecker.MyEditItem = args.MyEditItem; - } - if (args.MyEditItem != null) - { - SelectedStepTabPanel = args.MyEditItem.MyStepPanel.MyStepTabPanel; - displayRO.ROTypeFilter = SelectedStepTabPanel.MyStepPanel.SelectedEditItem is Volian.Controls.Library.GridItem && (SelectedStepTabPanel.MyStepPanel.SelectedEditItem as Volian.Controls.Library.GridItem).MyFlexGrid.IsRoTable ? - E_ROValueType.Table : (SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyItemInfo.IsFigure) ? E_ROValueType.Image : E_ROValueType.Text; - } - else - { - SelectedDVI = args.MyItemInfo.MyDocVersion; - displayRO.ROTypeFilter = E_ROValueType.All; // allow all RO types for Word attachments (but fix) - } - } - ctrlAnnotationDetails.UpdateAnnotationGrid(_CurrentItem); - AnnotationPanelView(); - btnPrint.Enabled = (_CurrentItem != null); - } - - void _LastStepRTB_EditModeChanged(object sender, EventArgs args) - { - if (_LastStepRTB.EditMode) // going into edit mode in a cell of the grid. - displayRO.Enabled = displayTransition.Enabled = _LastStepRTB.EditMode; - else // going out of edit mode in a cell of the grid. - { - if (this.ActiveControl != tc || (!_LastStepRTB.Parent.Focused && (infotabRO.IsSelected || infotabTransition.IsSelected))) return; - displayRO.Enabled = displayTransition.Enabled = _LastStepRTB.EditMode; - } - } - - void _CurrentItem_Deleted(object sender) - { - //displayBookMarks.DeleteItemBookMarkPanel(_CurrentItem); - } - #endregion - #region Annotations - /// - /// Display or hide the Annotation Details panel - /// - private void AnnotationPanelView() - { - if (ctrlAnnotationDetails.Annotations != null && ctrlAnnotationDetails.Annotations.Count != 0) - { - if (Settings.Default.AutoPopUpAnnotations) //cbAnnotationPopup.Checked - epAnnotations.Expanded = true; - else - epAnnotations.TitleStyle.BackColor1.Color = Color.Yellow; - } - else - { - if (!btnAnnoDetailsPushPin.Checked) - epAnnotations.Expanded = false; - epAnnotations.TitleStyle.BackColor1.Color = _CommentTitleBckColor; - ctrlAnnotationDetails.AnnotationText = null; - } - } - #endregion - #region LinkSupport - private void tc_LinkActiveChanged(object sender, StepPanelLinkEventArgs args) - { - // determine if any infotabs are visisble, and if it is the Transition, - // change the curitem for the transition to the current item. - if (infoPanel.Expanded == true && infoTabs.SelectedTab == infotabTransition) - { - displayTransition.CurTrans = null; - } - } - private void tc_LinkModifyTran(object sender, StepPanelLinkEventArgs args) - { - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabTransition; - if (SelectedStepTabPanel == null) return; - //displayTransition.RangeColor = global::VEPROMS.Properties.Settings.Default.TransitionRangeColor; - displayTransition.MyRTB = SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyStepRTB; - displayTransition.CurTrans = args.MyLinkText.MyTransitionInfo; - } - private void tc_LinkModifyRO(object sender, StepPanelLinkEventArgs args) - { - infoPanel.Expanded = true; - infoTabs.SelectedTab = infotabRO; - - if (SelectedStepTabPanel == null) return; - displayRO.MyROFSTLookup = SelectedROFst.GetROFSTLookup(SelectedDVI); - displayRO.MyRTB = SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyStepRTB; - displayRO.CurROLink = args.MyLinkText.MyRoUsageInfo; - displayRO.ROTypeFilter = SelectedStepTabPanel.MyStepPanel.SelectedEditItem is Volian.Controls.Library.GridItem && (SelectedStepTabPanel.MyStepPanel.SelectedEditItem as Volian.Controls.Library.GridItem).MyFlexGrid.IsRoTable ? - E_ROValueType.Table : (SelectedStepTabPanel.MyStepPanel.SelectedEditItem.MyItemInfo.IsFigure) ? E_ROValueType.Image: E_ROValueType.Text; - displayRO.Mydvi = SelectedDVI; - displayRO.ProgressBar = bottomProgBar; - displayRO.TabControl = tc; - } - #endregion - #region VButton - private void office2007StartButton1_Click(object sender, EventArgs e) - { - // If the V-Button is clicked, check to see what tree node is s selected - // to set up the New submenus. The New submenus are dependent on the type of - // object selected, i.e. folder, docversion, etc. - - // reset in case previous selection changed items. - btnNew.SubItems.Clear(); - btnNew.Enabled = false; - - VETreeNode vtn = tv.SelectedNode as VETreeNode; - if (vtn == null) return; - btnNew.Enabled = true; - vtn.Expand(); - - // Folders can have either folders & docversions, but - // not a mix. - FolderInfo fi = vtn.VEObject as FolderInfo; - if (fi != null) - { - if (fi.FolderDocVersionCount > 0) - { - btnNew.Enabled = false; - return; - } - // if at top, 'VEPROMS', folder and childfolders below this only - // option is to create a new (sub)folder, i.e. no submenu items. - if (fi.ChildFolderCount > 0 && fi.MyParent == null) return; - //if (fi.ChildFolderCount == 0) // submenu folders/docversion - //{ - if (fi.MyParent != null) - { - ButtonItem fldbbtn = new ButtonItem("fldbtn", "Folder Before"); - ButtonItem fldabtn = new ButtonItem("fldabtn", "Folder After"); - btnNew.SubItems.Add(fldbbtn); - btnNew.SubItems.Add(fldabtn); - fldbbtn.Click += new EventHandler(fldbbtn_Click); - fldabtn.Click += new EventHandler(fldabtn_Click); - } - ButtonItem fldbtn = new ButtonItem("fldbtn", "Folder"); - btnNew.SubItems.Add(fldbtn); - fldbtn.Click += new EventHandler(fldbtn_Click); - if (fi.ChildFolderCount == 0) - { - ButtonItem dvbtn = new ButtonItem("dvbtn", "Document Version"); - btnNew.SubItems.Add(dvbtn); - dvbtn.Click += new EventHandler(dvbtn_Click); - } - return; - //} - } - - // DocVersions can only have procedures, so no sub-menu - DocVersionInfo dvi = vtn.VEObject as DocVersionInfo; - if (dvi != null) return; - - // Procedures can have a section added or a new procedure before - // or after. - ProcedureInfo pi = vtn.VEObject as ProcedureInfo; - if (pi != null) - { - ButtonItem pbbtn = new ButtonItem("pfbtn", "Procedure Before"); - ButtonItem pabtn = new ButtonItem("pabtn", "Procedure After"); - ButtonItem sctbtn = new ButtonItem("sctbtn", "Section"); - btnNew.SubItems.Add(pbbtn); - btnNew.SubItems.Add(pabtn); - btnNew.SubItems.Add(sctbtn); - pbbtn.Click += new EventHandler(pbbtn_Click); - pabtn.Click += new EventHandler(pabtn_Click); - sctbtn.Click += new EventHandler(sctbtn_Click); - return; - } - - // Sections can have sections before, after, new subsections & if is - // a step section, can have steps - SectionInfo si = vtn.VEObject as SectionInfo; - if (si != null) - { - ButtonItem sbbtn = new ButtonItem("sbbtn", "Section Before"); - ButtonItem sabtn = new ButtonItem("sabtn", "Section After"); - ButtonItem subbtn = new ButtonItem("subbtn", "SubSection"); - btnNew.SubItems.Add(sbbtn); - btnNew.SubItems.Add(sabtn); - btnNew.SubItems.Add(subbtn); - sbbtn.Click += new EventHandler(sbbtn_Click); - sabtn.Click += new EventHandler(sabtn_Click); - subbtn.Click += new EventHandler(subbtn_Click); - if (si.IsStepSection) - { - ButtonItem stpbtn = new ButtonItem("stpbtn", "New Step"); - btnNew.SubItems.Add(stpbtn); - stpbtn.Click += new EventHandler(stpbtn_Click); - } - return; - } - - // Steps can have steps before or after only. - StepInfo stpi = vtn.VEObject as StepInfo; - if (stpi != null) - { - ButtonItem stpbbtn = new ButtonItem("stpbbtn", "New Step Before"); - ButtonItem stpabtn = new ButtonItem("stpabtn", "New Step After"); - btnNew.SubItems.Add(stpbbtn); - btnNew.SubItems.Add(stpabtn); - stpbbtn.Click += new EventHandler(stpbbtn_Click); - stpabtn.Click += new EventHandler(stpabtn_Click); - return; - } - } - - void fldabtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.FolderAfter); - } - - void fldbbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.FolderBefore); - } - - void stpabtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.StepAfter); - } - - void stpbbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.StepBefore); - } - - void subbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Section); - } - - void sabtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.SectionAfter); - } - - void sbbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.SectionBefore); - } - - void stpbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Step); - } - - void sctbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Section); - } - - void pabtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.ProcedureAfter); - } - - void pbbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.ProcedureBefore); - } - - void dvbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.DocVersion); - } - - void fldbtn_Click(object sender, EventArgs e) - { - tv.tv_NodeNew(vlnTreeView.MenuSelections.Folder); - } - private void btnSave_Click(object sender, EventArgs e) - { - } - #endregion - #region PanelEvents - private void infoPanel_Click(object sender, EventArgs e) - { - displayTags.MyEditItem = (SelectedStepTabPanel == null) ? null : SelectedStepTabPanel.MyStepPanel.SelectedEditItem; - } - //private void tv_SectionShouldClose(object sender, vlnTreeSectionInfoEventArgs args) - //{ - // if (!args.MySectionInfo.IsStepSection) tc.CloseWordItem(args.MySectionInfo); - //} - - private void infotabResults_Click(object sender, EventArgs e) - { - toolsPanel.Expanded = true; - InitiateSearch(true); - } - private void InitiateSearch(bool searchFocus) - { - if (toolsPanel.Expanded) - { - if (displaySearch1.Mydocversion == null)//!displaySearch1.OpenDocFromSearch) - { - if (SelectedDVI != null) - { - displaySearch1.Mydocversion = SelectedDVI; - displaySearch1.advTreeStepTypesFillIn(); - } - displaySearch1.advTreeProcSetsFillIn(searchFocus); - } - } - } - - private void toosTabReports_Click(object sender, EventArgs e) - { - toolsPanel.Expanded = true; - InitiateDisplayReports(true); - } - - private void InitiateDisplayReports(bool reportFocus) - { - if (toolsPanel.Expanded) - { - if (SelectedDVI != null) - displayReports.Mydocversion = SelectedDVI; - displayReports.advTreeProcSetsFillIn(reportFocus); - displayReports.advTreeROFillIn(reportFocus); - displayReports.SelectReferencedObjectTab(); // to enable RO selection - } - } - - private void ribbonControl1_ExpandedChanged(object sender, EventArgs e) - { - Console.WriteLine("Size {0}", ribbonControl1.Expanded); - // TODO: Need to send message to all StepTabPanels and tell them to minimize their ribbons. - tc.RibbonExpanded = ribbonControl1.Expanded; - } - - private void btnItemInfo_Click(object sender, EventArgs e) - { - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.SelectedItemInfo != null) - { - frmPropGrid pg = new frmPropGrid(tc.SelectedDisplayTabItem.SelectedItemInfo, tc.SelectedDisplayTabItem.SelectedItemInfo.Path); - pg.Show(); - } - else - MessageBox.Show("Select Item First", "Item not selected", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - private void btnFixMSWord_Click(object sender, EventArgs e) - { - if (tc.SelectedDisplayTabItem != null && tc.SelectedDisplayTabItem.MyDSOTabPanel != null) - { - string btnText = btnFixMSWord.Text; - btnFixMSWord.FixedSize = btnFixMSWord.Size; - btnFixMSWord.Text = "Processing ..."; - this.Cursor = Cursors.WaitCursor; - tc.SelectedDisplayTabItem.MyDSOTabPanel.FixSymbolCharacters(); - btnFixMSWord.Text = btnText; - this.Cursor = Cursors.Default; - } - } - - private void epAnnotations_Resize(object sender, EventArgs e) - { - if (epAnnotations.Expanded && !_panelExpandedChanging) - { - // if the height of the panel is smaller than the titleheight+20 - //(due to the user dragging the splitter down), then un-expand the - // panel and set the height to the titleheight+75 - if (epAnnotations.Size.Height < epAnnotations.TitleHeight + 20) - { - Size sz = new Size(epAnnotations.Size.Width, epAnnotations.TitleHeight + 75); - epAnnotations.Size = sz; - epAnnotations.Expanded = false; - } - } - } - - private void resizeVerticalExpandedPanel(object sender, EventArgs e) - { - ExpandablePanel ep = (ExpandablePanel)sender; - if (ep.Expanded && !_panelExpandedChanging) - { - // if the width of the panel is smaller than the titleheight+20 - //(due to the user dragging the splitter over), then un-expand the - // panel and set the width to the titleheight+50 - if (ep.Size.Width < ep.TitleHeight + 10) - { - Size sz = new Size(ep.TitleHeight + 50, ep.Size.Height); - ep.Size = sz; - ep.Expanded = false; - } - } - } - - private void expandPanelExpandedChanging(object sender, ExpandedChangeEventArgs e) - { - _panelExpandedChanging = true; - } - - private void toolsPanel_ExpandedChanged(object sender, ExpandedChangeEventArgs e) - { - _panelExpandedChanging = false; - expandableSplitter4.Enabled = toolsPanel.Expanded; - if (toolsPanel.Expanded) - { - InitiateSearch(true); - InitiateDisplayReports(true); - } - } - - private void epAnnotations_ExpandedChanged(object sender, ExpandedChangeEventArgs e) - { - _panelExpandedChanging = false; - expandableSplitter2.Enabled = epAnnotations.Expanded; - } - - private void epProcedures_ExpandedChanged(object sender, ExpandedChangeEventArgs e) - { - _panelExpandedChanging = false; - expandableSplitter1.Enabled = epProcedures.Expanded; - } - - private void infoPanel_ExpandedChanged(object sender, ExpandedChangeEventArgs e) - { - _panelExpandedChanging = false; - expandableSplitter3.Enabled = infoPanel.Expanded; - // if our active tab is a Word attachment, call the Click even on the RO tab - // to ensure that the RO FST is loaded. This fixes a bug where if the first thing you - // open is a Word attachment, the RO panel would not have the RO's listed. - if (infoPanel.Expanded && _CurrentItem != null && _CurrentItem.HasWordContent) - infotabRO_Click(sender, e); - } - #endregion - - private void btnShortCuts_Click(object sender, EventArgs e) - { - ShortcutLists scListdlg = new ShortcutLists(); - scListdlg.Show(); - } - - private void cmbFont_SelectedIndexChanged(object sender, EventArgs e) - { - StepRTB.MyFontFamily = cmbFont.SelectedValue as FontFamily; - } - - private void btnPrint_Click(object sender, EventArgs e) - { - //VETreeNode vtn = tv.SelectedNode as VETreeNode; - //DocVersionInfo dvi = vtn.VEObject as DocVersionInfo; - //while (dvi == null) - //{ - // vtn = vtn.Parent as VETreeNode; - // dvi = vtn.VEObject as DocVersionInfo; - //} - //string pnum = DisplayText.StaticStripRtfCommands(this._CurrentItem.MyProcedure.ProcedureConfig.Number).Replace("\\u8209?", "-"); - DlgPrintProcedure prnDlg = new DlgPrintProcedure(this._CurrentItem.MyProcedure);//dvi.DocVersionConfig,pnum); - prnDlg.MySessionInfo = MySessionInfo; - prnDlg.ShowDialog(this); // RHM 20120925 - Center dialog over PROMS window - } - - private void lblResolution_Click(object sender, EventArgs e) - { - if (this.WindowState != FormWindowState.Normal) - { - this.WindowState = FormWindowState.Normal; - } - else if (this.Size.Width != 1280) - { - this.Size = new Size(1280, 800); - } - else - { - this.Size = new Size(1024, 768); - } - } - - private void frmVEPROMS_Resize(object sender, EventArgs e) - { - lblResolution.Text = string.Format("Resolution {0} x {1}", Size.Width, Size.Height); - } - private void office2007StartButton1_MouseDown(object sender, MouseEventArgs e) - { - // Refresh the MostRecentlyUsedList - _MyMRIList.Refresh(); - SetupMRU(); - } - - private void btnEditItem_Click(object sender, EventArgs e) - { - frmPropGrid pg = new frmPropGrid(tc.SelectedDisplayTabItem.MyStepTabPanel.SelectedEditItem, "EditItem"); - pg.Show(); - } - private void btnUpdateFormat_Click(object sender, EventArgs e) - { - UpdateFormats(null); - } - - private void UpdateFormats(string mypath) - { - if (mypath == null) - { - string fmtPath = Properties.Settings.Default.FormatPath ?? ""; - DirectoryInfo di = null; - do - { - fbd.Description = "Select folder containing FmtAll and GenMacAll folders to update formats"; - fbd.SelectedPath = fmtPath; - DialogResult dr = fbd.ShowDialog(); - if (dr == DialogResult.Cancel) - { - bottomProgBar.Text = "Format Update Cancelled"; - return; - } - di = new DirectoryInfo(fbd.SelectedPath); - fmtPath = di.FullName; - } while (((fmtPath ?? "") == "") || (!di.Exists || !Directory.Exists(di.FullName + @"\fmtall") || !Directory.Exists(di.FullName + @"\genmacall"))); - Properties.Settings.Default.FormatPath = fbd.SelectedPath; - Properties.Settings.Default.Save(); - mypath = di.FullName; - } - string fmtPathAll = mypath + @"\fmtall"; - string genmacPathAll = mypath + @"\genmacall"; - Format.FormatLoaded += new FormatEvent(Format_FormatLoaded); - Format.UpdateFormats(fmtPathAll, genmacPathAll); - Format.FormatLoaded -= new FormatEvent(Format_FormatLoaded); - } - - void Format_FormatLoaded(object sender, FormatEventArgs args) - { - if (args.Status.EndsWith("Formats to Load")) - { - bottomProgBar.Value = 0; - bottomProgBar.Maximum = int.Parse(args.Status.Split(" ".ToCharArray())[0]); - } - else - { - if (args.Status.StartsWith("Error")) - MessageBox.Show(args.Status, "Error Loading Format", MessageBoxButtons.OK, MessageBoxIcon.Error); - else if (!args.Status.Contains("SubFormat")) bottomProgBar.Value++; - } - bottomProgBar.Text = args.Status; - bottomProgBar.TextVisible = true; - Application.DoEvents(); - } - - private void btnSendErrorLog_Click(object sender, EventArgs e) - { - - frmSendErrorLog frm = new frmSendErrorLog(Properties.Settings.Default.OutlookEmail, Properties.Settings.Default["SMTPServer"].ToString(), Properties.Settings.Default["SMTPUser"].ToString(),ErrorLogFileName); - if (frm.ShowDialog(this) == DialogResult.OK) - { - Properties.Settings.Default.OutlookEmail = frm.OutlookEmail; - Properties.Settings.Default.SMTPServer = frm.SMTPServer; - Properties.Settings.Default.SMTPUser = frm.SMTPUser; - Properties.Settings.Default.Save(); - MessageBox.Show("PROMS Error Log successfully sent to Volian support"); - } - } - } - #region Lock stuff - public class TabItemsToClose : Stack - { - public void PushDTI(DisplayTabItem dti) - { - lock (this) - { - if(!this.Contains(dti)) - this.Push(dti); - } - } - public DisplayTabItem PopDTI() - { - lock (this) - { - return this.Pop(); - } - } - public int CountDTI - { - get - { - lock (this) - { - return this.Count; - } - } - } - } - #endregion -} diff --git a/PROMS/VEPROMS User Interface/frmVersionsProperties.Designer.cs.bak b/PROMS/VEPROMS User Interface/frmVersionsProperties.Designer.cs.bak deleted file mode 100644 index 7f9aba5b..00000000 --- a/PROMS/VEPROMS User Interface/frmVersionsProperties.Designer.cs.bak +++ /dev/null @@ -1,2136 +0,0 @@ -namespace VEPROMS -{ - partial class frmVersionsProperties - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmVersionsProperties)); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - this.ppBtnCancel = new System.Windows.Forms.Button(); - this.ppBtnOK = new System.Windows.Forms.Button(); - this.ppBtnDefaultChgBar = new DevComponents.DotNetBar.ButtonX(); - this.ppCmbxChangeBarType = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.docVersionConfigBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.ppBtnDefaultFmt = new DevComponents.DotNetBar.ButtonX(); - this.ppCmbxFormat = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.ppLblChangeBarTypeDefault = new System.Windows.Forms.Label(); - this.ppLblFormatDefault = new System.Windows.Forms.Label(); - this.ppBtnDefCbTxtTyp = new DevComponents.DotNetBar.ButtonX(); - this.ppBtnDefaultCbPos = new DevComponents.DotNetBar.ButtonX(); - this.ppCmbxChgBarTxtType = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.ppCmbxChgBarPos = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.ppLblChgBarTxtTypeDefault = new System.Windows.Forms.Label(); - this.ppLblChgBarPosDefault = new System.Windows.Forms.Label(); - this.ppBtnDefCbTxt2 = new DevComponents.DotNetBar.ButtonX(); - this.ppBtnDefCbTxt1 = new DevComponents.DotNetBar.ButtonX(); - this.ppLblChgBarUserMsgTwoDefault = new System.Windows.Forms.Label(); - this.ppLblChgBarUserMsgOneDefault = new System.Windows.Forms.Label(); - this.label14 = new System.Windows.Forms.Label(); - this.ppTxbxChangeBarUserMsgOne = new System.Windows.Forms.RichTextBox(); - this.label15 = new System.Windows.Forms.Label(); - this.ppTxbxChangeBarUserMsgTwo = new System.Windows.Forms.RichTextBox(); - this.label13 = new System.Windows.Forms.Label(); - this.label12 = new System.Windows.Forms.Label(); - this.label10 = new System.Windows.Forms.Label(); - this.label11 = new System.Windows.Forms.Label(); - this.imageCodecInfoBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.ppBtnResetRoVals = new System.Windows.Forms.Button(); - this.ppBtnUpRoVals = new System.Windows.Forms.Button(); - this.label6 = new System.Windows.Forms.Label(); - this.ppCmbxProcSetType = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.label9 = new System.Windows.Forms.Label(); - this.ppRTxtName = new System.Windows.Forms.RichTextBox(); - //added jcb for procedure set rev - this.lblProcSetRev = new System.Windows.Forms.Label(); - this.ppRTxtProcSetRev = new System.Windows.Forms.RichTextBox(); - //end added jcb for procedure set rev - this.ppRTxtTitle = new System.Windows.Forms.RichTextBox(); - this.ppDTPicker = new System.Windows.Forms.DateTimePicker(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.ppTxtBxUserID = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.label4 = new System.Windows.Forms.Label(); - this.ppBtnPDFLoc = new DevComponents.DotNetBar.ButtonX(); - this.ppNumUpDwnOvrdPrnPenWidth = new System.Windows.Forms.NumericUpDown(); - this.label19 = new System.Windows.Forms.Label(); - this.label20 = new System.Windows.Forms.Label(); - this.ppNumUpDwnOverdPrnPenBoldWidth = new System.Windows.Forms.NumericUpDown(); - this.ppNumUpDwnOvrdPrnPenULineWidth = new System.Windows.Forms.NumericUpDown(); - this.label21 = new System.Windows.Forms.Label(); - this.ppNumUpDwnAdjPrnStartPos = new System.Windows.Forms.NumericUpDown(); - this.label22 = new System.Windows.Forms.Label(); - this.ppBtnDeftDisAutoDuplx = new DevComponents.DotNetBar.ButtonX(); - this.ppBtnDefWatermark = new DevComponents.DotNetBar.ButtonX(); - this.ppCmbxWatermark = new DevComponents.DotNetBar.Controls.ComboBoxEx(); - this.ppLblWatermarkDefault = new System.Windows.Forms.Label(); - this.ppTxtBxPDFLoc = new System.Windows.Forms.TextBox(); - this.label18 = new System.Windows.Forms.Label(); - this.ppLblAutoDuplexDefault = new System.Windows.Forms.Label(); - this.ppChbxDisAutoDuplex = new System.Windows.Forms.CheckBox(); - this.label17 = new System.Windows.Forms.Label(); - this.superTooltip1 = new DevComponents.DotNetBar.SuperTooltip(); - this.ppCbShwDefSettings = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.ppGpbxUserSpecCB = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.ppGpbxUserSpecTxt = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.ppLblDefSettingsInfo = new System.Windows.Forms.Label(); - this.dlgROFolder = new System.Windows.Forms.FolderBrowserDialog(); - this.tcVersions = new DevComponents.DotNetBar.TabControl(); - this.tcpGeneral = new DevComponents.DotNetBar.TabControlPanel(); - this.tiGeneral = new DevComponents.DotNetBar.TabItem(this.components); - this.tcpRefereceObjects = new DevComponents.DotNetBar.TabControlPanel(); - this.tbRoDb = new System.Windows.Forms.TextBox(); - this.ppBtnRoDbBrowse = new System.Windows.Forms.Button(); - this.btnRoDbProperties = new DevComponents.DotNetBar.ButtonX(); - this.cmbRoDb = new System.Windows.Forms.ComboBox(); - this.ppGpbxUpROvals = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.tiRefObjs = new DevComponents.DotNetBar.TabItem(this.components); - this.tcpApplicability = new DevComponents.DotNetBar.TabControlPanel(); - this.label28 = new System.Windows.Forms.Label(); - this.label27 = new System.Windows.Forms.Label(); - this.label26 = new System.Windows.Forms.Label(); - this.label25 = new System.Windows.Forms.Label(); - this.label24 = new System.Windows.Forms.Label(); - this.label23 = new System.Windows.Forms.Label(); - this.label16 = new System.Windows.Forms.Label(); - this.label8 = new System.Windows.Forms.Label(); - this.label7 = new System.Windows.Forms.Label(); - this.textBox11 = new System.Windows.Forms.TextBox(); - this.bsMiniApple = new System.Windows.Forms.BindingSource(this.components); - this.textBox10 = new System.Windows.Forms.TextBox(); - this.textBox9 = new System.Windows.Forms.TextBox(); - this.textBox8 = new System.Windows.Forms.TextBox(); - this.textBox7 = new System.Windows.Forms.TextBox(); - this.textBox6 = new System.Windows.Forms.TextBox(); - this.textBox5 = new System.Windows.Forms.TextBox(); - this.textBox4 = new System.Windows.Forms.TextBox(); - this.textBox3 = new System.Windows.Forms.TextBox(); - this.textBox2 = new System.Windows.Forms.TextBox(); - this.textBox1 = new System.Windows.Forms.TextBox(); - this.panel1 = new System.Windows.Forms.Panel(); - this.panel2 = new System.Windows.Forms.Panel(); - this.btnDelApple = new System.Windows.Forms.Button(); - this.btnNewApple = new System.Windows.Forms.Button(); - this.lbApplicabilities = new System.Windows.Forms.ListBox(); - this.bsApples = new System.Windows.Forms.BindingSource(this.components); - this.label5 = new System.Windows.Forms.Label(); - this.tiApplicability = new DevComponents.DotNetBar.TabItem(this.components); - this.tabControlPanel5 = new DevComponents.DotNetBar.TabControlPanel(); - this.ppGrdLibDocList = new DevComponents.DotNetBar.Controls.DataGridViewX(); - this.documentEntryCountDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.libTitleDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.documentInfoListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.tiLibDocs = new DevComponents.DotNetBar.TabItem(this.components); - this.tcpFormatSettings = new DevComponents.DotNetBar.TabControlPanel(); - this.tiFmtSettings = new DevComponents.DotNetBar.TabItem(this.components); - this.tcpOutputSettings = new DevComponents.DotNetBar.TabControlPanel(); - this.ppChbxAddBlankPgs = new System.Windows.Forms.CheckBox(); - this.ppChbxAlwaysViewPDF = new System.Windows.Forms.CheckBox(); - this.ppChbxAlwaysOvrWrtPDF = new System.Windows.Forms.CheckBox(); - this.ppGrpbxPrnAdj = new DevComponents.DotNetBar.Controls.GroupPanel(); - this.tiOutputSettings = new DevComponents.DotNetBar.TabItem(this.components); - this.panVerBtns = new System.Windows.Forms.Panel(); - this.btnApplicability = new DevComponents.DotNetBar.ButtonX(); - this.btnLibDocs = new DevComponents.DotNetBar.ButtonX(); - this.btnFmtSettings = new DevComponents.DotNetBar.ButtonX(); - this.btnOutputSettings = new DevComponents.DotNetBar.ButtonX(); - this.btnRefObjs = new DevComponents.DotNetBar.ButtonX(); - this.btnGeneral = new DevComponents.DotNetBar.ButtonX(); - this.ROPrefixBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.PDFLocationBrowserDialog = new System.Windows.Forms.FolderBrowserDialog(); - this.formatInfoListBindingSource = new System.Windows.Forms.BindingSource(this.components); - ((System.ComponentModel.ISupportInitialize)(this.docVersionConfigBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageCodecInfoBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ppNumUpDwnOvrdPrnPenWidth)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ppNumUpDwnOverdPrnPenBoldWidth)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ppNumUpDwnOvrdPrnPenULineWidth)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ppNumUpDwnAdjPrnStartPos)).BeginInit(); - this.ppGpbxUserSpecCB.SuspendLayout(); - this.ppGpbxUserSpecTxt.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.tcVersions)).BeginInit(); - this.tcVersions.SuspendLayout(); - this.tcpGeneral.SuspendLayout(); - this.tcpRefereceObjects.SuspendLayout(); - this.ppGpbxUpROvals.SuspendLayout(); - this.tcpApplicability.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.bsMiniApple)).BeginInit(); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.bsApples)).BeginInit(); - this.tabControlPanel5.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ppGrdLibDocList)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.documentInfoListBindingSource)).BeginInit(); - this.tcpFormatSettings.SuspendLayout(); - this.tcpOutputSettings.SuspendLayout(); - this.ppGrpbxPrnAdj.SuspendLayout(); - this.panVerBtns.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ROPrefixBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.formatInfoListBindingSource)).BeginInit(); - this.SuspendLayout(); - // - // ppBtnCancel - // - this.ppBtnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.ppBtnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.ppBtnCancel.Location = new System.Drawing.Point(591, 370); - this.ppBtnCancel.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnCancel.Name = "ppBtnCancel"; - this.ppBtnCancel.Size = new System.Drawing.Size(56, 21); - this.ppBtnCancel.TabIndex = 91; - this.ppBtnCancel.Text = "Cancel"; - this.ppBtnCancel.UseVisualStyleBackColor = true; - this.ppBtnCancel.Click += new System.EventHandler(this.btnFldrPropCancel_Click); - // - // ppBtnOK - // - this.ppBtnOK.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.ppBtnOK.Location = new System.Drawing.Point(517, 370); - this.ppBtnOK.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnOK.Name = "ppBtnOK"; - this.ppBtnOK.Size = new System.Drawing.Size(56, 21); - this.ppBtnOK.TabIndex = 90; - this.ppBtnOK.Text = "OK"; - this.ppBtnOK.UseVisualStyleBackColor = true; - this.ppBtnOK.Click += new System.EventHandler(this.btnVersionsPropOK_Click); - // - // ppBtnDefaultChgBar - // - this.ppBtnDefaultChgBar.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.ppBtnDefaultChgBar.Location = new System.Drawing.Point(302, 82); - this.ppBtnDefaultChgBar.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnDefaultChgBar.Name = "ppBtnDefaultChgBar"; - this.ppBtnDefaultChgBar.Size = new System.Drawing.Size(44, 20); - this.superTooltip1.SetSuperTooltip(this.ppBtnDefaultChgBar, new DevComponents.DotNetBar.SuperTooltipInfo("The Default Button", "", "This will revert the Change Bar selection back to using the parent\'s (default) se" + - "tting.\r\n\r\nCheck \"Show Default Settings\" to display the \"default\" Change Bar (bel" + - "ow the Change Bars selection box).", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(250, 145))); - this.ppBtnDefaultChgBar.TabIndex = 43; - this.ppBtnDefaultChgBar.Text = "Default"; - this.ppBtnDefaultChgBar.ThemeAware = true; - this.ppBtnDefaultChgBar.Visible = false; - this.ppBtnDefaultChgBar.Click += new System.EventHandler(this.ppBtnDefaultChgBar_Click); - // - // ppCmbxChangeBarType - // - this.ppCmbxChangeBarType.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.docVersionConfigBindingSource, "Print_ChangeBar", true)); - this.ppCmbxChangeBarType.DisplayMember = "Text"; - this.ppCmbxChangeBarType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.ppCmbxChangeBarType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.ppCmbxChangeBarType.FormattingEnabled = true; - this.ppCmbxChangeBarType.Location = new System.Drawing.Point(89, 82); - this.ppCmbxChangeBarType.Margin = new System.Windows.Forms.Padding(2); - this.ppCmbxChangeBarType.Name = "ppCmbxChangeBarType"; - this.ppCmbxChangeBarType.Size = new System.Drawing.Size(210, 21); - this.ppCmbxChangeBarType.TabIndex = 42; - this.ppCmbxChangeBarType.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppCmbxChangeBarType.WatermarkText = "select change bar setting"; - this.ppCmbxChangeBarType.SelectedValueChanged += new System.EventHandler(this.ppCmbxChangeBarType_SelectedValueChanged); - // - // docVersionConfigBindingSource - // - this.docVersionConfigBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.DocVersionConfig); - // - // ppBtnDefaultFmt - // - this.ppBtnDefaultFmt.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.ppBtnDefaultFmt.Location = new System.Drawing.Point(445, 28); - this.ppBtnDefaultFmt.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnDefaultFmt.Name = "ppBtnDefaultFmt"; - this.ppBtnDefaultFmt.Size = new System.Drawing.Size(38, 19); - this.superTooltip1.SetSuperTooltip(this.ppBtnDefaultFmt, new DevComponents.DotNetBar.SuperTooltipInfo("Default Button", "", "This will revert the format selection back to using the parent\'s format.\r\n\r\nCheck" + - " \"Show Default Settings\" to display the \"default\" format name (below the format " + - "selection box).", null, null, DevComponents.DotNetBar.eTooltipColor.System)); - this.ppBtnDefaultFmt.TabIndex = 41; - this.ppBtnDefaultFmt.Text = "Default"; - this.ppBtnDefaultFmt.ThemeAware = true; - this.ppBtnDefaultFmt.Click += new System.EventHandler(this.ppBtnDefaultFmt_Click); - // - // ppCmbxFormat - // - this.ppCmbxFormat.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.docVersionConfigBindingSource, "FormatSelection", true)); - this.ppCmbxFormat.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.ppCmbxFormat.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.ppCmbxFormat.FormattingEnabled = true; - this.ppCmbxFormat.Location = new System.Drawing.Point(14, 28); - this.ppCmbxFormat.Margin = new System.Windows.Forms.Padding(2); - this.ppCmbxFormat.Name = "ppCmbxFormat"; - this.ppCmbxFormat.Size = new System.Drawing.Size(422, 21); - this.superTooltip1.SetSuperTooltip(this.ppCmbxFormat, new DevComponents.DotNetBar.SuperTooltipInfo("Format Selection", "", resources.GetString("ppCmbxFormat.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.System)); - this.ppCmbxFormat.TabIndex = 40; - this.ppCmbxFormat.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppCmbxFormat.WatermarkText = "Select a Format"; - this.ppCmbxFormat.SelectedValueChanged += new System.EventHandler(this.ppCmbxFormat_SelectedValueChanged); - // - // ppLblChangeBarTypeDefault - // - this.ppLblChangeBarTypeDefault.AutoSize = true; - this.ppLblChangeBarTypeDefault.BackColor = System.Drawing.Color.Transparent; - this.ppLblChangeBarTypeDefault.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppLblChangeBarTypeDefault.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.ppLblChangeBarTypeDefault.Location = new System.Drawing.Point(88, 103); - this.ppLblChangeBarTypeDefault.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.ppLblChangeBarTypeDefault.Name = "ppLblChangeBarTypeDefault"; - this.ppLblChangeBarTypeDefault.Size = new System.Drawing.Size(79, 13); - this.superTooltip1.SetSuperTooltip(this.ppLblChangeBarTypeDefault, new DevComponents.DotNetBar.SuperTooltipInfo("This is the default Change Bar setting", "", "Pressing the Default Button (to the right)\r\nwill set the Change Bar setting back " + - "to this.\r\n", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(270, 70))); - this.ppLblChangeBarTypeDefault.TabIndex = 27; - this.ppLblChangeBarTypeDefault.Text = "(default setting)"; - // - // ppLblFormatDefault - // - this.ppLblFormatDefault.AutoSize = true; - this.ppLblFormatDefault.BackColor = System.Drawing.Color.Transparent; - this.ppLblFormatDefault.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppLblFormatDefault.ForeColor = System.Drawing.Color.Gray; - this.ppLblFormatDefault.Location = new System.Drawing.Point(11, 50); - this.ppLblFormatDefault.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.ppLblFormatDefault.Name = "ppLblFormatDefault"; - this.ppLblFormatDefault.Size = new System.Drawing.Size(45, 13); - this.superTooltip1.SetSuperTooltip(this.ppLblFormatDefault, new DevComponents.DotNetBar.SuperTooltipInfo("The is the default Format setting", "", "Pressing the Reset Button (to the right)\r\nwill set the format setting back to thi" + - "s.\r\n", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(255, 70))); - this.ppLblFormatDefault.TabIndex = 26; - this.ppLblFormatDefault.Text = "(default)"; - // - // ppBtnDefCbTxtTyp - // - this.ppBtnDefCbTxtTyp.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.ppBtnDefCbTxtTyp.Location = new System.Drawing.Point(216, 15); - this.ppBtnDefCbTxtTyp.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnDefCbTxtTyp.Name = "ppBtnDefCbTxtTyp"; - this.ppBtnDefCbTxtTyp.Size = new System.Drawing.Size(44, 20); - this.superTooltip1.SetSuperTooltip(this.ppBtnDefCbTxtTyp, new DevComponents.DotNetBar.SuperTooltipInfo("The Default Button", "", resources.GetString("ppBtnDefCbTxtTyp.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(235, 150))); - this.ppBtnDefCbTxtTyp.TabIndex = 45; - this.ppBtnDefCbTxtTyp.Text = "Default"; - this.ppBtnDefCbTxtTyp.ThemeAware = true; - this.ppBtnDefCbTxtTyp.Visible = false; - this.ppBtnDefCbTxtTyp.Click += new System.EventHandler(this.ppBtnDefCbTxtTyp_Click); - // - // ppBtnDefaultCbPos - // - this.ppBtnDefaultCbPos.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.ppBtnDefaultCbPos.Location = new System.Drawing.Point(210, 66); - this.ppBtnDefaultCbPos.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnDefaultCbPos.Name = "ppBtnDefaultCbPos"; - this.ppBtnDefaultCbPos.Size = new System.Drawing.Size(44, 20); - this.superTooltip1.SetSuperTooltip(this.ppBtnDefaultCbPos, new DevComponents.DotNetBar.SuperTooltipInfo("The Default Button", "", resources.GetString("ppBtnDefaultCbPos.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(250, 145))); - this.ppBtnDefaultCbPos.TabIndex = 51; - this.ppBtnDefaultCbPos.Text = "Default"; - this.ppBtnDefaultCbPos.ThemeAware = true; - this.ppBtnDefaultCbPos.Visible = false; - this.ppBtnDefaultCbPos.Click += new System.EventHandler(this.ppBtnDefaultCbPos_Click); - // - // ppCmbxChgBarTxtType - // - this.ppCmbxChgBarTxtType.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.docVersionConfigBindingSource, "Print_ChangeBarText", true)); - this.ppCmbxChgBarTxtType.DisplayMember = "Text"; - this.ppCmbxChgBarTxtType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.ppCmbxChgBarTxtType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.ppCmbxChgBarTxtType.FormattingEnabled = true; - this.ppCmbxChgBarTxtType.Location = new System.Drawing.Point(72, 16); - this.ppCmbxChgBarTxtType.Margin = new System.Windows.Forms.Padding(2); - this.ppCmbxChgBarTxtType.Name = "ppCmbxChgBarTxtType"; - this.ppCmbxChgBarTxtType.Size = new System.Drawing.Size(140, 21); - this.ppCmbxChgBarTxtType.TabIndex = 44; - this.ppCmbxChgBarTxtType.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppCmbxChgBarTxtType.WatermarkText = "select change bar text type"; - this.ppCmbxChgBarTxtType.SelectedValueChanged += new System.EventHandler(this.ppCmbxChgBarTxtType_SelectedValueChanged); - // - // ppCmbxChgBarPos - // - this.ppCmbxChgBarPos.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.docVersionConfigBindingSource, "Print_ChangeBarLoc", true)); - this.ppCmbxChgBarPos.DisplayMember = "Text"; - this.ppCmbxChgBarPos.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.ppCmbxChgBarPos.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.ppCmbxChgBarPos.FormattingEnabled = true; - this.ppCmbxChgBarPos.Location = new System.Drawing.Point(72, 66); - this.ppCmbxChgBarPos.Margin = new System.Windows.Forms.Padding(2); - this.ppCmbxChgBarPos.Name = "ppCmbxChgBarPos"; - this.ppCmbxChgBarPos.Size = new System.Drawing.Size(135, 21); - this.ppCmbxChgBarPos.TabIndex = 50; - this.ppCmbxChgBarPos.Visible = false; - this.ppCmbxChgBarPos.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppCmbxChgBarPos.WatermarkText = "select change bar position"; - this.ppCmbxChgBarPos.SelectedValueChanged += new System.EventHandler(this.ppCmbxChgBarPos_SelectedValueChanged); - // - // ppLblChgBarTxtTypeDefault - // - this.ppLblChgBarTxtTypeDefault.AutoSize = true; - this.ppLblChgBarTxtTypeDefault.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppLblChgBarTxtTypeDefault.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.ppLblChgBarTxtTypeDefault.Location = new System.Drawing.Point(70, 37); - this.ppLblChgBarTxtTypeDefault.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.ppLblChgBarTxtTypeDefault.Name = "ppLblChgBarTxtTypeDefault"; - this.ppLblChgBarTxtTypeDefault.Size = new System.Drawing.Size(79, 13); - this.superTooltip1.SetSuperTooltip(this.ppLblChgBarTxtTypeDefault, new DevComponents.DotNetBar.SuperTooltipInfo("This is the default Custom Change Bar Text Type", "", "Pressing the Default Button (to the right) will set the Cusotom Change Bar Positi" + - "on setting back to this.\r\n", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(0, 0))); - this.ppLblChgBarTxtTypeDefault.TabIndex = 13; - this.ppLblChgBarTxtTypeDefault.Text = "(default setting)"; - // - // ppLblChgBarPosDefault - // - this.ppLblChgBarPosDefault.AutoSize = true; - this.ppLblChgBarPosDefault.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppLblChgBarPosDefault.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.ppLblChgBarPosDefault.Location = new System.Drawing.Point(74, 86); - this.ppLblChgBarPosDefault.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.ppLblChgBarPosDefault.Name = "ppLblChgBarPosDefault"; - this.ppLblChgBarPosDefault.Size = new System.Drawing.Size(79, 13); - this.superTooltip1.SetSuperTooltip(this.ppLblChgBarPosDefault, new DevComponents.DotNetBar.SuperTooltipInfo("This is the default Custom Change Bar Position", "", "Pressing the Default Button (to the right) will set the Cusotom Change Bar Positi" + - "on setting back to this.\r\n", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(300, 80))); - this.ppLblChgBarPosDefault.TabIndex = 12; - this.ppLblChgBarPosDefault.Text = "(default setting)"; - this.ppLblChgBarPosDefault.Visible = false; - // - // ppBtnDefCbTxt2 - // - this.ppBtnDefCbTxt2.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.ppBtnDefCbTxt2.Location = new System.Drawing.Point(119, 47); - this.ppBtnDefCbTxt2.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnDefCbTxt2.Name = "ppBtnDefCbTxt2"; - this.ppBtnDefCbTxt2.Size = new System.Drawing.Size(44, 20); - this.superTooltip1.SetSuperTooltip(this.ppBtnDefCbTxt2, new DevComponents.DotNetBar.SuperTooltipInfo("The Default Button", "", resources.GetString("ppBtnDefCbTxt2.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(250, 150))); - this.ppBtnDefCbTxt2.TabIndex = 49; - this.ppBtnDefCbTxt2.Text = "Default"; - this.ppBtnDefCbTxt2.ThemeAware = true; - this.ppBtnDefCbTxt2.Visible = false; - this.ppBtnDefCbTxt2.Click += new System.EventHandler(this.ppBtnDefCbTxt2_Click); - // - // ppBtnDefCbTxt1 - // - this.ppBtnDefCbTxt1.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.ppBtnDefCbTxt1.Location = new System.Drawing.Point(119, 6); - this.ppBtnDefCbTxt1.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnDefCbTxt1.Name = "ppBtnDefCbTxt1"; - this.ppBtnDefCbTxt1.Size = new System.Drawing.Size(44, 20); - this.superTooltip1.SetSuperTooltip(this.ppBtnDefCbTxt1, new DevComponents.DotNetBar.SuperTooltipInfo("The Default Button", "", resources.GetString("ppBtnDefCbTxt1.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(250, 150))); - this.ppBtnDefCbTxt1.TabIndex = 47; - this.ppBtnDefCbTxt1.Text = "Default"; - this.ppBtnDefCbTxt1.ThemeAware = true; - this.ppBtnDefCbTxt1.Visible = false; - this.ppBtnDefCbTxt1.Click += new System.EventHandler(this.ppBtnDefCbTxt1_Click); - // - // ppLblChgBarUserMsgTwoDefault - // - this.ppLblChgBarUserMsgTwoDefault.AutoSize = true; - this.ppLblChgBarUserMsgTwoDefault.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppLblChgBarUserMsgTwoDefault.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.ppLblChgBarUserMsgTwoDefault.Location = new System.Drawing.Point(66, 66); - this.ppLblChgBarUserMsgTwoDefault.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.ppLblChgBarUserMsgTwoDefault.Name = "ppLblChgBarUserMsgTwoDefault"; - this.ppLblChgBarUserMsgTwoDefault.Size = new System.Drawing.Size(45, 13); - this.superTooltip1.SetSuperTooltip(this.ppLblChgBarUserMsgTwoDefault, new DevComponents.DotNetBar.SuperTooltipInfo("This is the default Custom Message Line Two", "", "Pressing the Default Button (to the right) will set the Cusotom Change Bar Messag" + - "e Line Two setting back to this.\r\n", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(0, 0))); - this.ppLblChgBarUserMsgTwoDefault.TabIndex = 7; - this.ppLblChgBarUserMsgTwoDefault.Text = "(default)"; - // - // ppLblChgBarUserMsgOneDefault - // - this.ppLblChgBarUserMsgOneDefault.AutoSize = true; - this.ppLblChgBarUserMsgOneDefault.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppLblChgBarUserMsgOneDefault.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(64)))), ((int)(((byte)(64)))), ((int)(((byte)(64))))); - this.ppLblChgBarUserMsgOneDefault.Location = new System.Drawing.Point(66, 28); - this.ppLblChgBarUserMsgOneDefault.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.ppLblChgBarUserMsgOneDefault.Name = "ppLblChgBarUserMsgOneDefault"; - this.ppLblChgBarUserMsgOneDefault.Size = new System.Drawing.Size(45, 13); - this.superTooltip1.SetSuperTooltip(this.ppLblChgBarUserMsgOneDefault, new DevComponents.DotNetBar.SuperTooltipInfo("This is the default Custom Message Line One", "", "Pressing the Default Button (to the right) will set the Cusotom Change Bar Messag" + - "e Line One setting back to this.\r\n", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); - this.ppLblChgBarUserMsgOneDefault.TabIndex = 6; - this.ppLblChgBarUserMsgOneDefault.Text = "(default)"; - // - // label14 - // - this.label14.AutoSize = true; - this.label14.Location = new System.Drawing.Point(16, 9); - this.label14.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label14.Name = "label14"; - this.label14.Size = new System.Drawing.Size(48, 13); - this.label14.TabIndex = 4; - this.label14.Text = "Line one"; - // - // ppTxbxChangeBarUserMsgOne - // - this.ppTxbxChangeBarUserMsgOne.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.docVersionConfigBindingSource, "Print_UserCBMess1", true)); - this.ppTxbxChangeBarUserMsgOne.Location = new System.Drawing.Point(68, 6); - this.ppTxbxChangeBarUserMsgOne.Margin = new System.Windows.Forms.Padding(2); - this.ppTxbxChangeBarUserMsgOne.Multiline = false; - this.ppTxbxChangeBarUserMsgOne.Name = "ppTxbxChangeBarUserMsgOne"; - this.ppTxbxChangeBarUserMsgOne.Size = new System.Drawing.Size(44, 20); - this.superTooltip1.SetSuperTooltip(this.ppTxbxChangeBarUserMsgOne, new DevComponents.DotNetBar.SuperTooltipInfo("User Defined Message", "", "This message will appear on all change bars", null, null, DevComponents.DotNetBar.eTooltipColor.System)); - this.ppTxbxChangeBarUserMsgOne.TabIndex = 46; - this.ppTxbxChangeBarUserMsgOne.Text = ""; - this.ppTxbxChangeBarUserMsgOne.TextChanged += new System.EventHandler(this.ppTxbxChangeBarUserMsgOne_TextChanged); - // - // label15 - // - this.label15.AutoSize = true; - this.label15.Location = new System.Drawing.Point(16, 50); - this.label15.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label15.Name = "label15"; - this.label15.Size = new System.Drawing.Size(47, 13); - this.label15.TabIndex = 5; - this.label15.Text = "Line two"; - // - // ppTxbxChangeBarUserMsgTwo - // - this.ppTxbxChangeBarUserMsgTwo.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.docVersionConfigBindingSource, "Print_UserCBMess2", true)); - this.ppTxbxChangeBarUserMsgTwo.Location = new System.Drawing.Point(68, 47); - this.ppTxbxChangeBarUserMsgTwo.Margin = new System.Windows.Forms.Padding(2); - this.ppTxbxChangeBarUserMsgTwo.Multiline = false; - this.ppTxbxChangeBarUserMsgTwo.Name = "ppTxbxChangeBarUserMsgTwo"; - this.ppTxbxChangeBarUserMsgTwo.Size = new System.Drawing.Size(44, 20); - this.superTooltip1.SetSuperTooltip(this.ppTxbxChangeBarUserMsgTwo, new DevComponents.DotNetBar.SuperTooltipInfo("User Defined Message", "", "This message will appear on all change bars", null, null, DevComponents.DotNetBar.eTooltipColor.System)); - this.ppTxbxChangeBarUserMsgTwo.TabIndex = 48; - this.ppTxbxChangeBarUserMsgTwo.Text = ""; - this.ppTxbxChangeBarUserMsgTwo.TextChanged += new System.EventHandler(this.ppTxbxChangeBarUserMsgTwo_TextChanged); - // - // label13 - // - this.label13.AutoSize = true; - this.label13.Location = new System.Drawing.Point(15, 18); - this.label13.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label13.Name = "label13"; - this.label13.Size = new System.Drawing.Size(55, 13); - this.label13.TabIndex = 8; - this.label13.Text = "Text Type"; - // - // label12 - // - this.label12.AutoSize = true; - this.label12.Location = new System.Drawing.Point(25, 67); - this.label12.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label12.Name = "label12"; - this.label12.Size = new System.Drawing.Size(44, 13); - this.label12.TabIndex = 9; - this.label12.Text = "Position"; - this.label12.Visible = false; - // - // label10 - // - this.label10.AutoSize = true; - this.label10.BackColor = System.Drawing.Color.Transparent; - this.label10.Location = new System.Drawing.Point(11, 11); - this.label10.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label10.Name = "label10"; - this.label10.Size = new System.Drawing.Size(39, 13); - this.label10.TabIndex = 19; - this.label10.Text = "Format"; - // - // label11 - // - this.label11.AutoSize = true; - this.label11.BackColor = System.Drawing.Color.Transparent; - this.label11.Location = new System.Drawing.Point(17, 84); - this.label11.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label11.Name = "label11"; - this.label11.Size = new System.Drawing.Size(68, 13); - this.label11.TabIndex = 3; - this.label11.Text = "Change Bars"; - // - // imageCodecInfoBindingSource - // - this.imageCodecInfoBindingSource.DataSource = typeof(System.Drawing.Imaging.ImageCodecInfo); - // - // ppBtnResetRoVals - // - this.ppBtnResetRoVals.Location = new System.Drawing.Point(24, 73); - this.ppBtnResetRoVals.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnResetRoVals.Name = "ppBtnResetRoVals"; - this.ppBtnResetRoVals.Size = new System.Drawing.Size(57, 63); - this.ppBtnResetRoVals.TabIndex = 20; - this.ppBtnResetRoVals.Text = "Reset to Previous Values"; - this.ppBtnResetRoVals.UseVisualStyleBackColor = true; - this.ppBtnResetRoVals.Visible = false; - this.ppBtnResetRoVals.Click += new System.EventHandler(this.ppBtnResetRoVals_Click); - // - // ppBtnUpRoVals - // - this.ppBtnUpRoVals.Location = new System.Drawing.Point(25, 11); - this.ppBtnUpRoVals.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnUpRoVals.Name = "ppBtnUpRoVals"; - this.ppBtnUpRoVals.Size = new System.Drawing.Size(57, 59); - this.superTooltip1.SetSuperTooltip(this.ppBtnUpRoVals, new DevComponents.DotNetBar.SuperTooltipInfo("Update Referenced Objects Values", "", "This button will update all of the Referenced Objects Values in all of the proced" + - "ures in this procedure set.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray)); - this.ppBtnUpRoVals.TabIndex = 23; - this.ppBtnUpRoVals.Text = "Update RO Values"; - this.ppBtnUpRoVals.UseVisualStyleBackColor = true; - this.ppBtnUpRoVals.Click += new System.EventHandler(this.ppBtnUpRoVals_Click); - // - // label6 - // - this.label6.AutoSize = true; - this.label6.BackColor = System.Drawing.Color.Transparent; - this.label6.Location = new System.Drawing.Point(9, 17); - this.label6.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(72, 13); - this.label6.TabIndex = 12; - this.label6.Text = "RO Database"; - // - // ppCmbxProcSetType - // - this.ppCmbxProcSetType.DisplayMember = "Text"; - this.ppCmbxProcSetType.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.ppCmbxProcSetType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.ppCmbxProcSetType.FormattingEnabled = true; - this.ppCmbxProcSetType.Location = new System.Drawing.Point(175, 236); - this.ppCmbxProcSetType.Margin = new System.Windows.Forms.Padding(2); - this.ppCmbxProcSetType.Name = "ppCmbxProcSetType"; - this.ppCmbxProcSetType.Size = new System.Drawing.Size(133, 21); - this.ppCmbxProcSetType.TabIndex = 2; - this.ppCmbxProcSetType.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppCmbxProcSetType.WatermarkText = "select procedure set type"; - // - // label9 - // - this.label9.AutoSize = true; - this.label9.BackColor = System.Drawing.Color.Transparent; - this.label9.Location = new System.Drawing.Point(24, 238); - this.label9.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label9.Name = "label9"; - this.label9.Size = new System.Drawing.Size(145, 13); - this.label9.TabIndex = 16; - this.label9.Text = "Procedure Set Type (version)"; - // - // ppRTxtName - // - this.ppRTxtName.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.docVersionConfigBindingSource, "Name", true)); - this.ppRTxtName.Location = new System.Drawing.Point(56, 15); - this.ppRTxtName.Margin = new System.Windows.Forms.Padding(2); - this.ppRTxtName.Multiline = false; - this.ppRTxtName.Name = "ppRTxtName"; - this.ppRTxtName.Size = new System.Drawing.Size(210, 19); - this.ppRTxtName.TabIndex = 0; - this.ppRTxtName.Text = ""; - this.ppRTxtName.Leave += new System.EventHandler(this.ppRTxtName_Leave); - //added jcb for procedure set rev - // - // lblProcSetRev - // - this.lblProcSetRev.AutoSize = true; - this.lblProcSetRev.BackColor = System.Drawing.Color.Transparent; - this.lblProcSetRev.Location = new System.Drawing.Point(24, 204); - this.lblProcSetRev.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.lblProcSetRev.Name = "lblProcSetRev"; - this.lblProcSetRev.Size = new System.Drawing.Size(145, 13); - this.lblProcSetRev.TabIndex = 66; - this.lblProcSetRev.Text = "Procedure Set Revision"; - // - // ppRTxtProcSetRev - // - this.ppRTxtProcSetRev.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.docVersionConfigBindingSource, "ProcedureSetRev", true)); - this.ppRTxtProcSetRev.Location = new System.Drawing.Point(175, 201); - this.ppRTxtProcSetRev.Margin = new System.Windows.Forms.Padding(2); - this.ppRTxtProcSetRev.Multiline = false; - this.ppRTxtProcSetRev.Name = "ppRTxtProcSetRev"; - this.ppRTxtProcSetRev.Size = new System.Drawing.Size(210, 19); - this.ppRTxtProcSetRev.TabIndex = 0; - this.ppRTxtProcSetRev.Text = ""; - //end added jcb for procedure set rev - // - // ppRTxtTitle - // - this.ppRTxtTitle.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.docVersionConfigBindingSource, "Title", true)); - this.ppRTxtTitle.Location = new System.Drawing.Point(56, 57); - this.ppRTxtTitle.Margin = new System.Windows.Forms.Padding(2); - this.ppRTxtTitle.Name = "ppRTxtTitle"; - this.ppRTxtTitle.Size = new System.Drawing.Size(407, 50); - this.ppRTxtTitle.TabIndex = 1; - this.ppRTxtTitle.Text = ""; - this.ppRTxtTitle.Visible = false; - // - // ppDTPicker - // - this.ppDTPicker.CustomFormat = "MM\'/\'dd\'/\'yyyy hh\':\'mm:ss tt"; - this.ppDTPicker.Enabled = false; - this.ppDTPicker.Format = System.Windows.Forms.DateTimePickerFormat.Custom; - this.ppDTPicker.Location = new System.Drawing.Point(80, 123); - this.ppDTPicker.Margin = new System.Windows.Forms.Padding(2); - this.ppDTPicker.Name = "ppDTPicker"; - this.ppDTPicker.Size = new System.Drawing.Size(130, 20); - this.ppDTPicker.TabIndex = 12; - this.ppDTPicker.TabStop = false; - this.ppDTPicker.Visible = false; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.BackColor = System.Drawing.Color.Transparent; - this.label1.Location = new System.Drawing.Point(26, 59); - this.label1.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(27, 13); - this.label1.TabIndex = 3; - this.label1.Text = "Title"; - this.label1.Visible = false; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.BackColor = System.Drawing.Color.Transparent; - this.label2.Location = new System.Drawing.Point(17, 18); - this.label2.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(35, 13); - this.label2.TabIndex = 4; - this.label2.Text = "Name"; - // - // ppTxtBxUserID - // - this.ppTxtBxUserID.Enabled = false; - this.ppTxtBxUserID.Location = new System.Drawing.Point(71, 169); - this.ppTxtBxUserID.Margin = new System.Windows.Forms.Padding(2); - this.ppTxtBxUserID.Name = "ppTxtBxUserID"; - this.ppTxtBxUserID.Size = new System.Drawing.Size(116, 20); - this.ppTxtBxUserID.TabIndex = 10; - this.ppTxtBxUserID.TabStop = false; - this.ppTxtBxUserID.Visible = false; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.BackColor = System.Drawing.Color.Transparent; - this.label3.Location = new System.Drawing.Point(26, 171); - this.label3.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(43, 13); - this.label3.TabIndex = 5; - this.label3.Text = "User ID"; - this.label3.Visible = false; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.BackColor = System.Drawing.Color.Transparent; - this.label4.Location = new System.Drawing.Point(20, 125); - this.label4.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(58, 13); - this.label4.TabIndex = 6; - this.label4.Text = "Date/Time"; - this.label4.Visible = false; - // - // ppBtnPDFLoc - // - this.ppBtnPDFLoc.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.ppBtnPDFLoc.Image = ((System.Drawing.Image)(resources.GetObject("ppBtnPDFLoc.Image"))); - this.ppBtnPDFLoc.Location = new System.Drawing.Point(465, 19); - this.ppBtnPDFLoc.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnPDFLoc.Name = "ppBtnPDFLoc"; - this.ppBtnPDFLoc.Size = new System.Drawing.Size(16, 19); - this.ppBtnPDFLoc.TabIndex = 31; - this.ppBtnPDFLoc.Click += new System.EventHandler(this.ppBtnPDFLoc_Click); - // - // ppNumUpDwnOvrdPrnPenWidth - // - this.ppNumUpDwnOvrdPrnPenWidth.Location = new System.Drawing.Point(178, 14); - this.ppNumUpDwnOvrdPrnPenWidth.Margin = new System.Windows.Forms.Padding(2); - this.ppNumUpDwnOvrdPrnPenWidth.Name = "ppNumUpDwnOvrdPrnPenWidth"; - this.ppNumUpDwnOvrdPrnPenWidth.Size = new System.Drawing.Size(36, 20); - this.superTooltip1.SetSuperTooltip(this.ppNumUpDwnOvrdPrnPenWidth, new DevComponents.DotNetBar.SuperTooltipInfo("Normal Pen Width", "", "This will allow you to override pen width used for normal text and line drawing.", null, null, DevComponents.DotNetBar.eTooltipColor.System)); - this.ppNumUpDwnOvrdPrnPenWidth.TabIndex = 1; - // - // label19 - // - this.label19.AutoSize = true; - this.label19.BackColor = System.Drawing.Color.Transparent; - this.label19.Location = new System.Drawing.Point(5, 16); - this.label19.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label19.Name = "label19"; - this.label19.Size = new System.Drawing.Size(165, 13); - this.label19.TabIndex = 0; - this.label19.Text = "Override Normal Pen Width (dots)"; - // - // label20 - // - this.label20.AutoSize = true; - this.label20.BackColor = System.Drawing.Color.Transparent; - this.label20.Location = new System.Drawing.Point(6, 47); - this.label20.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label20.Name = "label20"; - this.label20.Size = new System.Drawing.Size(153, 13); - this.label20.TabIndex = 2; - this.label20.Text = "Override Bold Pen Width (dots)"; - // - // ppNumUpDwnOverdPrnPenBoldWidth - // - this.ppNumUpDwnOverdPrnPenBoldWidth.Location = new System.Drawing.Point(178, 46); - this.ppNumUpDwnOverdPrnPenBoldWidth.Margin = new System.Windows.Forms.Padding(2); - this.ppNumUpDwnOverdPrnPenBoldWidth.Name = "ppNumUpDwnOverdPrnPenBoldWidth"; - this.ppNumUpDwnOverdPrnPenBoldWidth.Size = new System.Drawing.Size(36, 20); - this.superTooltip1.SetSuperTooltip(this.ppNumUpDwnOverdPrnPenBoldWidth, new DevComponents.DotNetBar.SuperTooltipInfo("Bold Pen Width", "", "This will allow you to override the width used for bold text.", null, null, DevComponents.DotNetBar.eTooltipColor.System)); - this.ppNumUpDwnOverdPrnPenBoldWidth.TabIndex = 3; - // - // ppNumUpDwnOvrdPrnPenULineWidth - // - this.ppNumUpDwnOvrdPrnPenULineWidth.Location = new System.Drawing.Point(422, 14); - this.ppNumUpDwnOvrdPrnPenULineWidth.Margin = new System.Windows.Forms.Padding(2); - this.ppNumUpDwnOvrdPrnPenULineWidth.Name = "ppNumUpDwnOvrdPrnPenULineWidth"; - this.ppNumUpDwnOvrdPrnPenULineWidth.Size = new System.Drawing.Size(36, 20); - this.superTooltip1.SetSuperTooltip(this.ppNumUpDwnOvrdPrnPenULineWidth, new DevComponents.DotNetBar.SuperTooltipInfo("Underline Thickness", "", "This will allow you to change the thickness of the uderline.", null, null, DevComponents.DotNetBar.eTooltipColor.System)); - this.ppNumUpDwnOvrdPrnPenULineWidth.TabIndex = 5; - // - // label21 - // - this.label21.AutoSize = true; - this.label21.BackColor = System.Drawing.Color.Transparent; - this.label21.Location = new System.Drawing.Point(239, 16); - this.label21.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label21.Name = "label21"; - this.label21.Size = new System.Drawing.Size(176, 13); - this.label21.TabIndex = 4; - this.label21.Text = "Override Underline Thickness (dots)"; - // - // ppNumUpDwnAdjPrnStartPos - // - this.ppNumUpDwnAdjPrnStartPos.Location = new System.Drawing.Point(422, 46); - this.ppNumUpDwnAdjPrnStartPos.Margin = new System.Windows.Forms.Padding(2); - this.ppNumUpDwnAdjPrnStartPos.Maximum = new decimal(new int[] { - 500, - 0, - 0, - 0}); - this.ppNumUpDwnAdjPrnStartPos.Name = "ppNumUpDwnAdjPrnStartPos"; - this.ppNumUpDwnAdjPrnStartPos.Size = new System.Drawing.Size(36, 20); - this.superTooltip1.SetSuperTooltip(this.ppNumUpDwnAdjPrnStartPos, new DevComponents.DotNetBar.SuperTooltipInfo("Starting Print Position", "", "Allows you to move the starting point on the page of where text and boarder begin" + - " printing.", null, null, DevComponents.DotNetBar.eTooltipColor.System)); - this.ppNumUpDwnAdjPrnStartPos.TabIndex = 7; - // - // label22 - // - this.label22.AutoSize = true; - this.label22.BackColor = System.Drawing.Color.Transparent; - this.label22.Location = new System.Drawing.Point(228, 48); - this.label22.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label22.Name = "label22"; - this.label22.Size = new System.Drawing.Size(187, 13); - this.label22.TabIndex = 6; - this.label22.Text = "Adjust Starting Position on Page (dots)"; - // - // ppBtnDeftDisAutoDuplx - // - this.ppBtnDeftDisAutoDuplx.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.ppBtnDeftDisAutoDuplx.Location = new System.Drawing.Point(433, 60); - this.ppBtnDeftDisAutoDuplx.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnDeftDisAutoDuplx.Name = "ppBtnDeftDisAutoDuplx"; - this.ppBtnDeftDisAutoDuplx.Size = new System.Drawing.Size(44, 20); - this.superTooltip1.SetSuperTooltip(this.ppBtnDeftDisAutoDuplx, new DevComponents.DotNetBar.SuperTooltipInfo("The Default Button", "", resources.GetString("ppBtnDeftDisAutoDuplx.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(255, 150))); - this.ppBtnDeftDisAutoDuplx.TabIndex = 35; - this.ppBtnDeftDisAutoDuplx.Text = "Default"; - this.ppBtnDeftDisAutoDuplx.ThemeAware = true; - this.ppBtnDeftDisAutoDuplx.Click += new System.EventHandler(this.ppBtnDeftDisAutoDuplx_Click); - // - // ppBtnDefWatermark - // - this.ppBtnDefWatermark.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.ppBtnDefWatermark.Location = new System.Drawing.Point(203, 58); - this.ppBtnDefWatermark.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnDefWatermark.Name = "ppBtnDefWatermark"; - this.ppBtnDefWatermark.Size = new System.Drawing.Size(40, 20); - this.superTooltip1.SetSuperTooltip(this.ppBtnDefWatermark, new DevComponents.DotNetBar.SuperTooltipInfo("The Default Button", "", "This will revert the watermark selection back to using the parent\'s (default) set" + - "ting.\r\n\r\nCheck \"Show Default Settings\" to display the \"default\" watermark (below" + - " the Watermark selection box).", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(255, 145))); - this.ppBtnDefWatermark.TabIndex = 33; - this.ppBtnDefWatermark.Text = "Default"; - this.ppBtnDefWatermark.ThemeAware = true; - this.ppBtnDefWatermark.Visible = false; - this.ppBtnDefWatermark.Click += new System.EventHandler(this.ppBtnDefWatermark_Click); - // - // ppCmbxWatermark - // - this.ppCmbxWatermark.DataBindings.Add(new System.Windows.Forms.Binding("SelectedValue", this.docVersionConfigBindingSource, "Print_Watermark", true)); - this.ppCmbxWatermark.DisplayMember = "Text"; - this.ppCmbxWatermark.DrawMode = System.Windows.Forms.DrawMode.OwnerDrawFixed; - this.ppCmbxWatermark.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; - this.ppCmbxWatermark.FormattingEnabled = true; - this.ppCmbxWatermark.Location = new System.Drawing.Point(74, 58); - this.ppCmbxWatermark.Margin = new System.Windows.Forms.Padding(2); - this.ppCmbxWatermark.Name = "ppCmbxWatermark"; - this.ppCmbxWatermark.Size = new System.Drawing.Size(126, 21); - this.ppCmbxWatermark.TabIndex = 32; - this.ppCmbxWatermark.WatermarkFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Italic))), System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppCmbxWatermark.WatermarkText = "select watermark option"; - this.ppCmbxWatermark.SelectedValueChanged += new System.EventHandler(this.ppCmbxWatermark_SelectedValueChanged); - // - // ppLblWatermarkDefault - // - this.ppLblWatermarkDefault.AutoSize = true; - this.ppLblWatermarkDefault.BackColor = System.Drawing.Color.Transparent; - this.ppLblWatermarkDefault.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppLblWatermarkDefault.ForeColor = System.Drawing.Color.Gray; - this.ppLblWatermarkDefault.Location = new System.Drawing.Point(69, 80); - this.ppLblWatermarkDefault.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.ppLblWatermarkDefault.Name = "ppLblWatermarkDefault"; - this.ppLblWatermarkDefault.Size = new System.Drawing.Size(45, 13); - this.superTooltip1.SetSuperTooltip(this.ppLblWatermarkDefault, new DevComponents.DotNetBar.SuperTooltipInfo("This is the default Watermark settings", "", "Pressing the Default Button (to the right)\r\nwill reset the watermark setting back" + - " to \r\nthis default.\r\n", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(0, 0))); - this.ppLblWatermarkDefault.TabIndex = 57; - this.ppLblWatermarkDefault.Text = "(default)"; - // - // ppTxtBxPDFLoc - // - this.ppTxtBxPDFLoc.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.docVersionConfigBindingSource, "Print_PDFLocation", true)); - this.ppTxtBxPDFLoc.Location = new System.Drawing.Point(83, 19); - this.ppTxtBxPDFLoc.Margin = new System.Windows.Forms.Padding(2); - this.ppTxtBxPDFLoc.Name = "ppTxtBxPDFLoc"; - this.ppTxtBxPDFLoc.Size = new System.Drawing.Size(379, 20); - this.ppTxtBxPDFLoc.TabIndex = 30; - // - // label18 - // - this.label18.AutoSize = true; - this.label18.BackColor = System.Drawing.Color.Transparent; - this.label18.Location = new System.Drawing.Point(4, 22); - this.label18.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label18.Name = "label18"; - this.label18.Size = new System.Drawing.Size(72, 13); - this.label18.TabIndex = 54; - this.label18.Text = "PDF Location"; - // - // ppLblAutoDuplexDefault - // - this.ppLblAutoDuplexDefault.AutoSize = true; - this.ppLblAutoDuplexDefault.BackColor = System.Drawing.Color.Transparent; - this.ppLblAutoDuplexDefault.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppLblAutoDuplexDefault.ForeColor = System.Drawing.Color.Gray; - this.ppLblAutoDuplexDefault.Location = new System.Drawing.Point(286, 79); - this.ppLblAutoDuplexDefault.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.ppLblAutoDuplexDefault.Name = "ppLblAutoDuplexDefault"; - this.ppLblAutoDuplexDefault.Size = new System.Drawing.Size(64, 13); - this.superTooltip1.SetSuperTooltip(this.ppLblAutoDuplexDefault, new DevComponents.DotNetBar.SuperTooltipInfo("This is the Automatic Duplex default setting", "", "Pressing the Default Button (to the right)\r\nwill reset the Automatic Duplex setti" + - "ng back\r\nto this default.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(0, 0))); - this.ppLblAutoDuplexDefault.TabIndex = 53; - this.ppLblAutoDuplexDefault.Text = "(default ON)"; - // - // ppChbxDisAutoDuplex - // - this.ppChbxDisAutoDuplex.AutoSize = true; - this.ppChbxDisAutoDuplex.BackColor = System.Drawing.Color.Transparent; - this.ppChbxDisAutoDuplex.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.docVersionConfigBindingSource, "Print_DisableDuplex", true)); - this.ppChbxDisAutoDuplex.Location = new System.Drawing.Point(272, 60); - this.ppChbxDisAutoDuplex.Margin = new System.Windows.Forms.Padding(2); - this.ppChbxDisAutoDuplex.Name = "ppChbxDisAutoDuplex"; - this.ppChbxDisAutoDuplex.Size = new System.Drawing.Size(161, 17); - this.superTooltip1.SetSuperTooltip(this.ppChbxDisAutoDuplex, new DevComponents.DotNetBar.SuperTooltipInfo("Disable Automatic Duplex", "", "Checking this box will turn OFF the automatic duplexing used in some formats for " + - "Foldout pages.", null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, false, new System.Drawing.Size(0, 0))); - this.ppChbxDisAutoDuplex.TabIndex = 34; - this.ppChbxDisAutoDuplex.Text = "Disable Automatic Duplexing"; - this.ppChbxDisAutoDuplex.UseVisualStyleBackColor = false; - this.ppChbxDisAutoDuplex.CheckedChanged += new System.EventHandler(this.ppChbxDisAutoDuplex_CheckedChanged); - // - // label17 - // - this.label17.AutoSize = true; - this.label17.BackColor = System.Drawing.Color.Transparent; - this.label17.Location = new System.Drawing.Point(9, 62); - this.label17.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label17.Name = "label17"; - this.label17.Size = new System.Drawing.Size(59, 13); - this.label17.TabIndex = 27; - this.label17.Text = "Watermark"; - // - // superTooltip1 - // - this.superTooltip1.LicenseKey = "F962CEC7-CD8F-4911-A9E9-CAB39962FC1F"; - // - // ppCbShwDefSettings - // - this.ppCbShwDefSettings.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - // - // - // - this.ppCbShwDefSettings.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.ppCbShwDefSettings.Location = new System.Drawing.Point(17, 371); - this.ppCbShwDefSettings.Margin = new System.Windows.Forms.Padding(2); - this.ppCbShwDefSettings.Name = "ppCbShwDefSettings"; - this.ppCbShwDefSettings.Size = new System.Drawing.Size(154, 20); - this.superTooltip1.SetSuperTooltip(this.ppCbShwDefSettings, new DevComponents.DotNetBar.SuperTooltipInfo("Show Default Settings", "", "When checked, the default (parent\'s) setting will appear below the overridden sel" + - "ection.", null, null, DevComponents.DotNetBar.eTooltipColor.System)); - this.ppCbShwDefSettings.TabIndex = 92; - this.ppCbShwDefSettings.Text = "Show Default Settings"; - this.ppCbShwDefSettings.CheckedChanged += new System.EventHandler(this.tabpage_Enter); - // - // ppGpbxUserSpecCB - // - this.ppGpbxUserSpecCB.BackColor = System.Drawing.Color.Transparent; - this.ppGpbxUserSpecCB.CanvasColor = System.Drawing.SystemColors.Control; - this.ppGpbxUserSpecCB.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.ppGpbxUserSpecCB.Controls.Add(this.ppGpbxUserSpecTxt); - this.ppGpbxUserSpecCB.Controls.Add(this.ppBtnDefCbTxtTyp); - this.ppGpbxUserSpecCB.Controls.Add(this.ppCmbxChgBarPos); - this.ppGpbxUserSpecCB.Controls.Add(this.ppBtnDefaultCbPos); - this.ppGpbxUserSpecCB.Controls.Add(this.label12); - this.ppGpbxUserSpecCB.Controls.Add(this.ppCmbxChgBarTxtType); - this.ppGpbxUserSpecCB.Controls.Add(this.label13); - this.ppGpbxUserSpecCB.Controls.Add(this.ppLblChgBarPosDefault); - this.ppGpbxUserSpecCB.Controls.Add(this.ppLblChgBarTxtTypeDefault); - this.ppGpbxUserSpecCB.Location = new System.Drawing.Point(14, 136); - this.ppGpbxUserSpecCB.Margin = new System.Windows.Forms.Padding(2); - this.ppGpbxUserSpecCB.Name = "ppGpbxUserSpecCB"; - this.ppGpbxUserSpecCB.Size = new System.Drawing.Size(466, 130); - // - // - // - this.ppGpbxUserSpecCB.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.ppGpbxUserSpecCB.Style.BackColorGradientAngle = 90; - this.ppGpbxUserSpecCB.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.ppGpbxUserSpecCB.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecCB.Style.BorderBottomWidth = 1; - this.ppGpbxUserSpecCB.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.ppGpbxUserSpecCB.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecCB.Style.BorderLeftWidth = 1; - this.ppGpbxUserSpecCB.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecCB.Style.BorderRightWidth = 1; - this.ppGpbxUserSpecCB.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecCB.Style.BorderTopWidth = 1; - this.ppGpbxUserSpecCB.Style.CornerDiameter = 4; - this.ppGpbxUserSpecCB.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.ppGpbxUserSpecCB.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.ppGpbxUserSpecCB.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.ppGpbxUserSpecCB.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - // - // - // - this.ppGpbxUserSpecCB.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.ppGpbxUserSpecCB.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.superTooltip1.SetSuperTooltip(this.ppGpbxUserSpecCB, new DevComponents.DotNetBar.SuperTooltipInfo("Change Bar Override Settings", "", resources.GetString("ppGpbxUserSpecCB.SuperTooltip"), null, null, DevComponents.DotNetBar.eTooltipColor.Gray, true, true, new System.Drawing.Size(230, 155))); - this.ppGpbxUserSpecCB.TabIndex = 49; - this.ppGpbxUserSpecCB.Text = "Custom Change Bar Text"; - // - // ppGpbxUserSpecTxt - // - this.ppGpbxUserSpecTxt.CanvasColor = System.Drawing.SystemColors.Control; - this.ppGpbxUserSpecTxt.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.ppGpbxUserSpecTxt.Controls.Add(this.ppBtnDefCbTxt2); - this.ppGpbxUserSpecTxt.Controls.Add(this.label14); - this.ppGpbxUserSpecTxt.Controls.Add(this.ppBtnDefCbTxt1); - this.ppGpbxUserSpecTxt.Controls.Add(this.ppTxbxChangeBarUserMsgTwo); - this.ppGpbxUserSpecTxt.Controls.Add(this.ppLblChgBarUserMsgTwoDefault); - this.ppGpbxUserSpecTxt.Controls.Add(this.label15); - this.ppGpbxUserSpecTxt.Controls.Add(this.ppLblChgBarUserMsgOneDefault); - this.ppGpbxUserSpecTxt.Controls.Add(this.ppTxbxChangeBarUserMsgOne); - this.ppGpbxUserSpecTxt.Location = new System.Drawing.Point(267, 6); - this.ppGpbxUserSpecTxt.Margin = new System.Windows.Forms.Padding(2); - this.ppGpbxUserSpecTxt.Name = "ppGpbxUserSpecTxt"; - this.ppGpbxUserSpecTxt.Size = new System.Drawing.Size(184, 103); - // - // - // - this.ppGpbxUserSpecTxt.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.ppGpbxUserSpecTxt.Style.BackColorGradientAngle = 90; - this.ppGpbxUserSpecTxt.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.ppGpbxUserSpecTxt.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecTxt.Style.BorderBottomWidth = 1; - this.ppGpbxUserSpecTxt.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.ppGpbxUserSpecTxt.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecTxt.Style.BorderLeftWidth = 1; - this.ppGpbxUserSpecTxt.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecTxt.Style.BorderRightWidth = 1; - this.ppGpbxUserSpecTxt.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUserSpecTxt.Style.BorderTopWidth = 1; - this.ppGpbxUserSpecTxt.Style.CornerDiameter = 4; - this.ppGpbxUserSpecTxt.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.ppGpbxUserSpecTxt.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.ppGpbxUserSpecTxt.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.ppGpbxUserSpecTxt.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - // - // - // - this.ppGpbxUserSpecTxt.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.ppGpbxUserSpecTxt.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.ppGpbxUserSpecTxt.TabIndex = 51; - this.ppGpbxUserSpecTxt.Text = "Change Bar Text"; - // - // ppLblDefSettingsInfo - // - this.ppLblDefSettingsInfo.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); - this.ppLblDefSettingsInfo.AutoSize = true; - this.ppLblDefSettingsInfo.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ppLblDefSettingsInfo.Location = new System.Drawing.Point(11, 352); - this.ppLblDefSettingsInfo.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.ppLblDefSettingsInfo.Name = "ppLblDefSettingsInfo"; - this.ppLblDefSettingsInfo.Size = new System.Drawing.Size(156, 13); - this.ppLblDefSettingsInfo.TabIndex = 25; - this.ppLblDefSettingsInfo.Text = "* Default values shown in italics"; - // - // dlgROFolder - // - this.dlgROFolder.RootFolder = System.Environment.SpecialFolder.MyComputer; - // - // tcVersions - // - this.tcVersions.Anchor = System.Windows.Forms.AnchorStyles.Right; - this.tcVersions.BackColor = System.Drawing.Color.Transparent; - this.tcVersions.CanReorderTabs = true; - this.tcVersions.Controls.Add(this.tcpGeneral); - this.tcVersions.Controls.Add(this.tcpRefereceObjects); - this.tcVersions.Controls.Add(this.tcpApplicability); - this.tcVersions.Controls.Add(this.tabControlPanel5); - this.tcVersions.Controls.Add(this.tcpFormatSettings); - this.tcVersions.Controls.Add(this.tcpOutputSettings); - this.tcVersions.Location = new System.Drawing.Point(160, 3); - this.tcVersions.Margin = new System.Windows.Forms.Padding(2); - this.tcVersions.Name = "tcVersions"; - this.tcVersions.SelectedTabFont = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Bold); - this.tcVersions.SelectedTabIndex = 0; - this.tcVersions.Size = new System.Drawing.Size(488, 337); - this.tcVersions.Style = DevComponents.DotNetBar.eTabStripStyle.Office2007Dock; - this.tcVersions.TabIndex = 28; - this.tcVersions.TabLayoutType = DevComponents.DotNetBar.eTabLayoutType.FixedWithNavigationBox; - this.tcVersions.Tabs.Add(this.tiGeneral); - this.tcVersions.Tabs.Add(this.tiRefObjs); - this.tcVersions.Tabs.Add(this.tiOutputSettings); - this.tcVersions.Tabs.Add(this.tiFmtSettings); - this.tcVersions.Tabs.Add(this.tiLibDocs); - this.tcVersions.Tabs.Add(this.tiApplicability); - this.tcVersions.TabsVisible = false; - this.tcVersions.Text = "tabControl1"; - // - // tcpGeneral - // - this.tcpGeneral.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.tcpGeneral.Controls.Add(this.ppCmbxProcSetType); - this.tcpGeneral.Controls.Add(this.ppRTxtName); - this.tcpGeneral.Controls.Add(this.label9); - //added jcb for procedure set rev - this.tcpGeneral.Controls.Add(this.ppRTxtProcSetRev); - this.tcpGeneral.Controls.Add(this.lblProcSetRev); - //end added jcb for procedure set rev - this.tcpGeneral.Controls.Add(this.label4); - this.tcpGeneral.Controls.Add(this.label3); - this.tcpGeneral.Controls.Add(this.ppRTxtTitle); - this.tcpGeneral.Controls.Add(this.ppTxtBxUserID); - this.tcpGeneral.Controls.Add(this.ppDTPicker); - this.tcpGeneral.Controls.Add(this.label2); - this.tcpGeneral.Controls.Add(this.label1); - this.tcpGeneral.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcpGeneral.Location = new System.Drawing.Point(0, 22); - this.tcpGeneral.Margin = new System.Windows.Forms.Padding(2); - this.tcpGeneral.Name = "tcpGeneral"; - this.tcpGeneral.Padding = new System.Windows.Forms.Padding(1); - this.tcpGeneral.Size = new System.Drawing.Size(488, 315); - this.tcpGeneral.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(253)))), ((int)(((byte)(254))))); - this.tcpGeneral.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(188)))), ((int)(((byte)(227))))); - this.tcpGeneral.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tcpGeneral.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(165)))), ((int)(((byte)(199))))); - this.tcpGeneral.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tcpGeneral.Style.GradientAngle = 90; - this.tcpGeneral.TabIndex = 1; - this.tcpGeneral.TabItem = this.tiGeneral; - // - // tiGeneral - // - this.tiGeneral.AttachedControl = this.tcpGeneral; - this.tiGeneral.Name = "tiGeneral"; - this.tiGeneral.Text = "General"; - // - // tcpRefereceObjects - // - this.tcpRefereceObjects.Controls.Add(this.tbRoDb); - this.tcpRefereceObjects.Controls.Add(this.ppBtnRoDbBrowse); - this.tcpRefereceObjects.Controls.Add(this.btnRoDbProperties); - this.tcpRefereceObjects.Controls.Add(this.cmbRoDb); - this.tcpRefereceObjects.Controls.Add(this.ppGpbxUpROvals); - this.tcpRefereceObjects.Controls.Add(this.label6); - this.tcpRefereceObjects.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcpRefereceObjects.Location = new System.Drawing.Point(0, 22); - this.tcpRefereceObjects.Margin = new System.Windows.Forms.Padding(2); - this.tcpRefereceObjects.Name = "tcpRefereceObjects"; - this.tcpRefereceObjects.Padding = new System.Windows.Forms.Padding(1); - this.tcpRefereceObjects.Size = new System.Drawing.Size(488, 315); - this.tcpRefereceObjects.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(253)))), ((int)(((byte)(254))))); - this.tcpRefereceObjects.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(188)))), ((int)(((byte)(227))))); - this.tcpRefereceObjects.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tcpRefereceObjects.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(165)))), ((int)(((byte)(199))))); - this.tcpRefereceObjects.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tcpRefereceObjects.Style.GradientAngle = 90; - this.tcpRefereceObjects.TabIndex = 2; - this.tcpRefereceObjects.TabItem = this.tiRefObjs; - this.tcpRefereceObjects.Enter += new System.EventHandler(this.tabpage_Enter); - // - // tbRoDb - // - this.tbRoDb.Enabled = false; - this.tbRoDb.Location = new System.Drawing.Point(80, 13); - this.tbRoDb.Margin = new System.Windows.Forms.Padding(2); - this.tbRoDb.Name = "tbRoDb"; - this.tbRoDb.Size = new System.Drawing.Size(318, 20); - this.tbRoDb.TabIndex = 20; - // - // ppBtnRoDbBrowse - // - this.ppBtnRoDbBrowse.Location = new System.Drawing.Point(406, 34); - this.ppBtnRoDbBrowse.Margin = new System.Windows.Forms.Padding(2); - this.ppBtnRoDbBrowse.Name = "ppBtnRoDbBrowse"; - this.ppBtnRoDbBrowse.Size = new System.Drawing.Size(51, 20); - this.ppBtnRoDbBrowse.TabIndex = 22; - this.ppBtnRoDbBrowse.Text = "Browse..."; - this.ppBtnRoDbBrowse.UseVisualStyleBackColor = true; - this.ppBtnRoDbBrowse.Click += new System.EventHandler(this.ppBtnRoDbBrowse_Click); - // - // btnRoDbProperties - // - this.btnRoDbProperties.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnRoDbProperties.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnRoDbProperties.Image = ((System.Drawing.Image)(resources.GetObject("btnRoDbProperties.Image"))); - this.btnRoDbProperties.Location = new System.Drawing.Point(406, 10); - this.btnRoDbProperties.Margin = new System.Windows.Forms.Padding(2); - this.btnRoDbProperties.Name = "btnRoDbProperties"; - this.btnRoDbProperties.Size = new System.Drawing.Size(33, 23); - this.btnRoDbProperties.TabIndex = 21; - this.btnRoDbProperties.Click += new System.EventHandler(this.btnRoDbProperties_Click); - // - // cmbRoDb - // - this.cmbRoDb.FormattingEnabled = true; - this.cmbRoDb.Location = new System.Drawing.Point(80, 13); - this.cmbRoDb.Margin = new System.Windows.Forms.Padding(2); - this.cmbRoDb.Name = "cmbRoDb"; - this.cmbRoDb.Size = new System.Drawing.Size(318, 21); - this.cmbRoDb.TabIndex = 47; - this.cmbRoDb.SelectedIndexChanged += new System.EventHandler(this.cmbRoDb_SelectedIndexChanged); - // - // ppGpbxUpROvals - // - this.ppGpbxUpROvals.BackColor = System.Drawing.Color.Transparent; - this.ppGpbxUpROvals.CanvasColor = System.Drawing.SystemColors.Control; - this.ppGpbxUpROvals.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.ppGpbxUpROvals.Controls.Add(this.ppBtnResetRoVals); - this.ppGpbxUpROvals.Controls.Add(this.ppBtnUpRoVals); - this.ppGpbxUpROvals.Location = new System.Drawing.Point(34, 69); - this.ppGpbxUpROvals.Margin = new System.Windows.Forms.Padding(2); - this.ppGpbxUpROvals.Name = "ppGpbxUpROvals"; - this.ppGpbxUpROvals.Size = new System.Drawing.Size(112, 162); - // - // - // - this.ppGpbxUpROvals.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.ppGpbxUpROvals.Style.BackColorGradientAngle = 90; - this.ppGpbxUpROvals.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.ppGpbxUpROvals.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUpROvals.Style.BorderBottomWidth = 1; - this.ppGpbxUpROvals.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.ppGpbxUpROvals.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUpROvals.Style.BorderLeftWidth = 1; - this.ppGpbxUpROvals.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUpROvals.Style.BorderRightWidth = 1; - this.ppGpbxUpROvals.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGpbxUpROvals.Style.BorderTopWidth = 1; - this.ppGpbxUpROvals.Style.CornerDiameter = 4; - this.ppGpbxUpROvals.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.ppGpbxUpROvals.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.ppGpbxUpROvals.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.ppGpbxUpROvals.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - // - // - // - this.ppGpbxUpROvals.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.ppGpbxUpROvals.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.ppGpbxUpROvals.TabIndex = 46; - this.ppGpbxUpROvals.Text = "RO Values"; - // - // tiRefObjs - // - this.tiRefObjs.AttachedControl = this.tcpRefereceObjects; - this.tiRefObjs.Name = "tiRefObjs"; - this.tiRefObjs.Text = "Referenced Objects"; - // - // tcpApplicability - // - this.tcpApplicability.Controls.Add(this.label28); - this.tcpApplicability.Controls.Add(this.label27); - this.tcpApplicability.Controls.Add(this.label26); - this.tcpApplicability.Controls.Add(this.label25); - this.tcpApplicability.Controls.Add(this.label24); - this.tcpApplicability.Controls.Add(this.label23); - this.tcpApplicability.Controls.Add(this.label16); - this.tcpApplicability.Controls.Add(this.label8); - this.tcpApplicability.Controls.Add(this.label7); - this.tcpApplicability.Controls.Add(this.textBox11); - this.tcpApplicability.Controls.Add(this.textBox10); - this.tcpApplicability.Controls.Add(this.textBox9); - this.tcpApplicability.Controls.Add(this.textBox8); - this.tcpApplicability.Controls.Add(this.textBox7); - this.tcpApplicability.Controls.Add(this.textBox6); - this.tcpApplicability.Controls.Add(this.textBox5); - this.tcpApplicability.Controls.Add(this.textBox4); - this.tcpApplicability.Controls.Add(this.textBox3); - this.tcpApplicability.Controls.Add(this.textBox2); - this.tcpApplicability.Controls.Add(this.textBox1); - this.tcpApplicability.Controls.Add(this.panel1); - this.tcpApplicability.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcpApplicability.Location = new System.Drawing.Point(0, 22); - this.tcpApplicability.Margin = new System.Windows.Forms.Padding(2); - this.tcpApplicability.Name = "tcpApplicability"; - this.tcpApplicability.Padding = new System.Windows.Forms.Padding(1); - this.tcpApplicability.Size = new System.Drawing.Size(488, 315); - this.tcpApplicability.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(253)))), ((int)(((byte)(254))))); - this.tcpApplicability.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(188)))), ((int)(((byte)(227))))); - this.tcpApplicability.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tcpApplicability.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(165)))), ((int)(((byte)(199))))); - this.tcpApplicability.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tcpApplicability.Style.GradientAngle = 90; - this.tcpApplicability.TabIndex = 6; - this.tcpApplicability.TabItem = this.tiApplicability; - // - // label28 - // - this.label28.AutoSize = true; - this.label28.BackColor = System.Drawing.Color.Transparent; - this.label28.Location = new System.Drawing.Point(160, 161); - this.label28.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label28.Name = "label28"; - this.label28.Size = new System.Drawing.Size(54, 13); - this.label28.TabIndex = 21; - this.label28.Text = "Set Name"; - // - // label27 - // - this.label27.AutoSize = true; - this.label27.BackColor = System.Drawing.Color.Transparent; - this.label27.Location = new System.Drawing.Point(177, 140); - this.label27.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label27.Name = "label27"; - this.label27.Size = new System.Drawing.Size(37, 13); - this.label27.TabIndex = 20; - this.label27.Text = "Set ID"; - // - // label26 - // - this.label26.AutoSize = true; - this.label26.BackColor = System.Drawing.Color.Transparent; - this.label26.Location = new System.Drawing.Point(118, 119); - this.label26.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label26.Name = "label26"; - this.label26.Size = new System.Drawing.Size(96, 13); - this.label26.TabIndex = 19; - this.label26.Text = "Procedure Number"; - // - // label25 - // - this.label25.AutoSize = true; - this.label25.BackColor = System.Drawing.Color.Transparent; - this.label25.Location = new System.Drawing.Point(129, 85); - this.label25.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label25.Name = "label25"; - this.label25.Size = new System.Drawing.Size(28, 13); - this.label25.TabIndex = 18; - this.label25.Text = "Text"; - // - // label24 - // - this.label24.AutoSize = true; - this.label24.BackColor = System.Drawing.Color.Transparent; - this.label24.Location = new System.Drawing.Point(118, 64); - this.label24.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label24.Name = "label24"; - this.label24.Size = new System.Drawing.Size(44, 13); - this.label24.TabIndex = 17; - this.label24.Text = "Number"; - // - // label23 - // - this.label23.AutoSize = true; - this.label23.BackColor = System.Drawing.Color.Transparent; - this.label23.Location = new System.Drawing.Point(124, 44); - this.label23.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label23.Name = "label23"; - this.label23.Size = new System.Drawing.Size(35, 13); - this.label23.TabIndex = 16; - this.label23.Text = "Name"; - // - // label16 - // - this.label16.AutoSize = true; - this.label16.BackColor = System.Drawing.Color.Transparent; - this.label16.Location = new System.Drawing.Point(136, 23); - this.label16.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label16.Name = "label16"; - this.label16.Size = new System.Drawing.Size(18, 13); - this.label16.TabIndex = 15; - this.label16.Text = "ID"; - // - // label8 - // - this.label8.AutoSize = true; - this.label8.BackColor = System.Drawing.Color.Transparent; - this.label8.Location = new System.Drawing.Point(330, 6); - this.label8.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label8.Name = "label8"; - this.label8.Size = new System.Drawing.Size(128, 13); - this.label8.TabIndex = 14; - this.label8.Text = "Other Unit/Train/Channel"; - // - // label7 - // - this.label7.AutoSize = true; - this.label7.BackColor = System.Drawing.Color.Transparent; - this.label7.Location = new System.Drawing.Point(165, 6); - this.label7.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(99, 13); - this.label7.TabIndex = 13; - this.label7.Text = "Unit/Train/Channel"; - // - // textBox11 - // - this.textBox11.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMiniApple, "OtherText", true)); - this.textBox11.Location = new System.Drawing.Point(330, 83); - this.textBox11.Margin = new System.Windows.Forms.Padding(2); - this.textBox11.Name = "textBox11"; - this.textBox11.Size = new System.Drawing.Size(151, 20); - this.textBox11.TabIndex = 12; - // - // bsMiniApple - // - this.bsMiniApple.DataSource = typeof(VEPROMS.MiniConfig); - // - // textBox10 - // - this.textBox10.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMiniApple, "OtherNumber", true)); - this.textBox10.Location = new System.Drawing.Point(330, 62); - this.textBox10.Margin = new System.Windows.Forms.Padding(2); - this.textBox10.Name = "textBox10"; - this.textBox10.Size = new System.Drawing.Size(151, 20); - this.textBox10.TabIndex = 11; - // - // textBox9 - // - this.textBox9.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMiniApple, "OtherName", true)); - this.textBox9.Location = new System.Drawing.Point(330, 41); - this.textBox9.Margin = new System.Windows.Forms.Padding(2); - this.textBox9.Name = "textBox9"; - this.textBox9.Size = new System.Drawing.Size(151, 20); - this.textBox9.TabIndex = 10; - // - // textBox8 - // - this.textBox8.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMiniApple, "OtherID", true)); - this.textBox8.Location = new System.Drawing.Point(330, 20); - this.textBox8.Margin = new System.Windows.Forms.Padding(2); - this.textBox8.Name = "textBox8"; - this.textBox8.Size = new System.Drawing.Size(151, 20); - this.textBox8.TabIndex = 9; - // - // textBox7 - // - this.textBox7.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMiniApple, "SetName", true)); - this.textBox7.Location = new System.Drawing.Point(225, 158); - this.textBox7.Margin = new System.Windows.Forms.Padding(2); - this.textBox7.Name = "textBox7"; - this.textBox7.Size = new System.Drawing.Size(151, 20); - this.textBox7.TabIndex = 8; - // - // textBox6 - // - this.textBox6.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMiniApple, "SetID", true)); - this.textBox6.Location = new System.Drawing.Point(225, 137); - this.textBox6.Margin = new System.Windows.Forms.Padding(2); - this.textBox6.Name = "textBox6"; - this.textBox6.Size = new System.Drawing.Size(151, 20); - this.textBox6.TabIndex = 7; - // - // textBox5 - // - this.textBox5.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMiniApple, "ProcedureNumber", true)); - this.textBox5.Location = new System.Drawing.Point(225, 116); - this.textBox5.Margin = new System.Windows.Forms.Padding(2); - this.textBox5.Name = "textBox5"; - this.textBox5.Size = new System.Drawing.Size(151, 20); - this.textBox5.TabIndex = 6; - // - // textBox4 - // - this.textBox4.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMiniApple, "Text", true)); - this.textBox4.Location = new System.Drawing.Point(165, 83); - this.textBox4.Margin = new System.Windows.Forms.Padding(2); - this.textBox4.Name = "textBox4"; - this.textBox4.Size = new System.Drawing.Size(151, 20); - this.textBox4.TabIndex = 5; - // - // textBox3 - // - this.textBox3.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMiniApple, "Number", true)); - this.textBox3.Location = new System.Drawing.Point(165, 62); - this.textBox3.Margin = new System.Windows.Forms.Padding(2); - this.textBox3.Name = "textBox3"; - this.textBox3.Size = new System.Drawing.Size(151, 20); - this.textBox3.TabIndex = 4; - // - // textBox2 - // - this.textBox2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMiniApple, "Name", true)); - this.textBox2.Location = new System.Drawing.Point(165, 41); - this.textBox2.Margin = new System.Windows.Forms.Padding(2); - this.textBox2.Name = "textBox2"; - this.textBox2.Size = new System.Drawing.Size(151, 20); - this.textBox2.TabIndex = 3; - // - // textBox1 - // - this.textBox1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.bsMiniApple, "ID", true)); - this.textBox1.Location = new System.Drawing.Point(165, 20); - this.textBox1.Margin = new System.Windows.Forms.Padding(2); - this.textBox1.Name = "textBox1"; - this.textBox1.Size = new System.Drawing.Size(151, 20); - this.textBox1.TabIndex = 2; - // - // panel1 - // - this.panel1.BackColor = System.Drawing.Color.Transparent; - this.panel1.Controls.Add(this.panel2); - this.panel1.Controls.Add(this.lbApplicabilities); - this.panel1.Controls.Add(this.label5); - this.panel1.Dock = System.Windows.Forms.DockStyle.Left; - this.panel1.Location = new System.Drawing.Point(1, 1); - this.panel1.Margin = new System.Windows.Forms.Padding(2); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(112, 313); - this.panel1.TabIndex = 1; - // - // panel2 - // - this.panel2.Controls.Add(this.btnDelApple); - this.panel2.Controls.Add(this.btnNewApple); - this.panel2.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel2.Location = new System.Drawing.Point(0, 290); - this.panel2.Margin = new System.Windows.Forms.Padding(2); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(112, 23); - this.panel2.TabIndex = 1; - // - // btnDelApple - // - this.btnDelApple.Dock = System.Windows.Forms.DockStyle.Fill; - this.btnDelApple.Location = new System.Drawing.Point(56, 0); - this.btnDelApple.Margin = new System.Windows.Forms.Padding(2); - this.btnDelApple.Name = "btnDelApple"; - this.btnDelApple.Size = new System.Drawing.Size(56, 23); - this.btnDelApple.TabIndex = 1; - this.btnDelApple.Text = "Remove"; - this.btnDelApple.UseVisualStyleBackColor = true; - this.btnDelApple.Click += new System.EventHandler(this.btnDelApple_Click); - // - // btnNewApple - // - this.btnNewApple.Dock = System.Windows.Forms.DockStyle.Left; - this.btnNewApple.Location = new System.Drawing.Point(0, 0); - this.btnNewApple.Margin = new System.Windows.Forms.Padding(2); - this.btnNewApple.Name = "btnNewApple"; - this.btnNewApple.Size = new System.Drawing.Size(56, 23); - this.btnNewApple.TabIndex = 0; - this.btnNewApple.Text = "New"; - this.btnNewApple.UseVisualStyleBackColor = true; - this.btnNewApple.Click += new System.EventHandler(this.btnNewApple_Click); - // - // lbApplicabilities - // - this.lbApplicabilities.DataSource = this.bsApples; - this.lbApplicabilities.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbApplicabilities.FormattingEnabled = true; - this.lbApplicabilities.Location = new System.Drawing.Point(0, 17); - this.lbApplicabilities.Margin = new System.Windows.Forms.Padding(2); - this.lbApplicabilities.Name = "lbApplicabilities"; - this.lbApplicabilities.Size = new System.Drawing.Size(112, 290); - this.lbApplicabilities.TabIndex = 0; - this.lbApplicabilities.SelectedIndexChanged += new System.EventHandler(this.lbApplicabilities_SelectedIndexChanged); - // - // bsApples - // - this.bsApples.DataSource = typeof(VEPROMS.MiniConfig); - // - // label5 - // - this.label5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; - this.label5.Dock = System.Windows.Forms.DockStyle.Top; - this.label5.Location = new System.Drawing.Point(0, 0); - this.label5.Margin = new System.Windows.Forms.Padding(2, 0, 2, 0); - this.label5.Name = "label5"; - this.label5.Size = new System.Drawing.Size(112, 17); - this.label5.TabIndex = 0; - this.label5.Text = "Applicabilities"; - this.label5.TextAlign = System.Drawing.ContentAlignment.MiddleCenter; - // - // tiApplicability - // - this.tiApplicability.AttachedControl = this.tcpApplicability; - this.tiApplicability.Name = "tiApplicability"; - this.tiApplicability.Text = "Applicability"; - // - // tabControlPanel5 - // - this.tabControlPanel5.AutoScroll = true; - this.tabControlPanel5.Controls.Add(this.ppGrdLibDocList); - this.tabControlPanel5.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControlPanel5.Location = new System.Drawing.Point(0, 22); - this.tabControlPanel5.Margin = new System.Windows.Forms.Padding(2); - this.tabControlPanel5.Name = "tabControlPanel5"; - this.tabControlPanel5.Padding = new System.Windows.Forms.Padding(1); - this.tabControlPanel5.Size = new System.Drawing.Size(488, 315); - this.tabControlPanel5.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(253)))), ((int)(((byte)(254))))); - this.tabControlPanel5.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(188)))), ((int)(((byte)(227))))); - this.tabControlPanel5.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tabControlPanel5.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(165)))), ((int)(((byte)(199))))); - this.tabControlPanel5.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tabControlPanel5.Style.GradientAngle = 90; - this.tabControlPanel5.TabIndex = 5; - this.tabControlPanel5.TabItem = this.tiLibDocs; - this.tabControlPanel5.Enter += new System.EventHandler(this.tabpage_Enter); - // - // ppGrdLibDocList - // - this.ppGrdLibDocList.AllowUserToAddRows = false; - this.ppGrdLibDocList.AutoGenerateColumns = false; - this.ppGrdLibDocList.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.ppGrdLibDocList.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.documentEntryCountDataGridViewTextBoxColumn, - this.libTitleDataGridViewTextBoxColumn}); - this.ppGrdLibDocList.DataSource = this.documentInfoListBindingSource; - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleLeft; - dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Window; - dataGridViewCellStyle2.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.ControlText; - dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.False; - this.ppGrdLibDocList.DefaultCellStyle = dataGridViewCellStyle2; - this.ppGrdLibDocList.Dock = System.Windows.Forms.DockStyle.Fill; - this.ppGrdLibDocList.GridColor = System.Drawing.Color.FromArgb(((int)(((byte)(208)))), ((int)(((byte)(215)))), ((int)(((byte)(229))))); - this.ppGrdLibDocList.HighlightSelectedColumnHeaders = false; - this.ppGrdLibDocList.Location = new System.Drawing.Point(1, 1); - this.ppGrdLibDocList.Margin = new System.Windows.Forms.Padding(2); - this.ppGrdLibDocList.Name = "ppGrdLibDocList"; - this.ppGrdLibDocList.RowHeadersVisible = false; - this.ppGrdLibDocList.RowTemplate.Height = 24; - this.ppGrdLibDocList.SelectAllSignVisible = false; - this.ppGrdLibDocList.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.ppGrdLibDocList.Size = new System.Drawing.Size(486, 313); - this.ppGrdLibDocList.TabIndex = 1; - // - // documentEntryCountDataGridViewTextBoxColumn - // - this.documentEntryCountDataGridViewTextBoxColumn.DataPropertyName = "DocumentEntryCount"; - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.documentEntryCountDataGridViewTextBoxColumn.DefaultCellStyle = dataGridViewCellStyle1; - this.documentEntryCountDataGridViewTextBoxColumn.HeaderText = "Number of Usages"; - this.documentEntryCountDataGridViewTextBoxColumn.Name = "documentEntryCountDataGridViewTextBoxColumn"; - this.documentEntryCountDataGridViewTextBoxColumn.ReadOnly = true; - this.documentEntryCountDataGridViewTextBoxColumn.Width = 95; - // - // libTitleDataGridViewTextBoxColumn - // - this.libTitleDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.libTitleDataGridViewTextBoxColumn.DataPropertyName = "LibTitle"; - this.libTitleDataGridViewTextBoxColumn.HeaderText = "Library Document Title"; - this.libTitleDataGridViewTextBoxColumn.Name = "libTitleDataGridViewTextBoxColumn"; - this.libTitleDataGridViewTextBoxColumn.ReadOnly = true; - // - // documentInfoListBindingSource - // - this.documentInfoListBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.DocumentInfo); - // - // tiLibDocs - // - this.tiLibDocs.AttachedControl = this.tabControlPanel5; - this.tiLibDocs.Name = "tiLibDocs"; - this.tiLibDocs.Text = "Library Documents"; - // - // tcpFormatSettings - // - this.tcpFormatSettings.Controls.Add(this.ppGpbxUserSpecCB); - this.tcpFormatSettings.Controls.Add(this.ppBtnDefaultChgBar); - this.tcpFormatSettings.Controls.Add(this.ppCmbxFormat); - this.tcpFormatSettings.Controls.Add(this.ppCmbxChangeBarType); - this.tcpFormatSettings.Controls.Add(this.label11); - this.tcpFormatSettings.Controls.Add(this.ppBtnDefaultFmt); - this.tcpFormatSettings.Controls.Add(this.label10); - this.tcpFormatSettings.Controls.Add(this.ppLblChangeBarTypeDefault); - this.tcpFormatSettings.Controls.Add(this.ppLblFormatDefault); - this.tcpFormatSettings.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcpFormatSettings.Location = new System.Drawing.Point(0, 22); - this.tcpFormatSettings.Margin = new System.Windows.Forms.Padding(2); - this.tcpFormatSettings.Name = "tcpFormatSettings"; - this.tcpFormatSettings.Padding = new System.Windows.Forms.Padding(1); - this.tcpFormatSettings.Size = new System.Drawing.Size(488, 315); - this.tcpFormatSettings.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(253)))), ((int)(((byte)(254))))); - this.tcpFormatSettings.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(188)))), ((int)(((byte)(227))))); - this.tcpFormatSettings.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tcpFormatSettings.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(165)))), ((int)(((byte)(199))))); - this.tcpFormatSettings.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tcpFormatSettings.Style.GradientAngle = 90; - this.tcpFormatSettings.TabIndex = 4; - this.tcpFormatSettings.TabItem = this.tiFmtSettings; - this.tcpFormatSettings.Enter += new System.EventHandler(this.tabpage_Enter); - // - // tiFmtSettings - // - this.tiFmtSettings.AttachedControl = this.tcpFormatSettings; - this.tiFmtSettings.Name = "tiFmtSettings"; - this.tiFmtSettings.Text = "Format Settings"; - // - // tcpOutputSettings - // - this.tcpOutputSettings.Controls.Add(this.ppChbxAddBlankPgs); - this.tcpOutputSettings.Controls.Add(this.ppTxtBxPDFLoc); - this.tcpOutputSettings.Controls.Add(this.label18); - this.tcpOutputSettings.Controls.Add(this.ppChbxAlwaysViewPDF); - this.tcpOutputSettings.Controls.Add(this.ppBtnPDFLoc); - this.tcpOutputSettings.Controls.Add(this.ppChbxAlwaysOvrWrtPDF); - this.tcpOutputSettings.Controls.Add(this.ppGrpbxPrnAdj); - this.tcpOutputSettings.Controls.Add(this.label17); - this.tcpOutputSettings.Controls.Add(this.ppBtnDeftDisAutoDuplx); - this.tcpOutputSettings.Controls.Add(this.ppBtnDefWatermark); - this.tcpOutputSettings.Controls.Add(this.ppChbxDisAutoDuplex); - this.tcpOutputSettings.Controls.Add(this.ppLblAutoDuplexDefault); - this.tcpOutputSettings.Controls.Add(this.ppCmbxWatermark); - this.tcpOutputSettings.Controls.Add(this.ppLblWatermarkDefault); - this.tcpOutputSettings.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcpOutputSettings.Location = new System.Drawing.Point(0, 22); - this.tcpOutputSettings.Margin = new System.Windows.Forms.Padding(2); - this.tcpOutputSettings.Name = "tcpOutputSettings"; - this.tcpOutputSettings.Padding = new System.Windows.Forms.Padding(1); - this.tcpOutputSettings.Size = new System.Drawing.Size(488, 315); - this.tcpOutputSettings.Style.BackColor1.Color = System.Drawing.Color.FromArgb(((int)(((byte)(253)))), ((int)(((byte)(253)))), ((int)(((byte)(254))))); - this.tcpOutputSettings.Style.BackColor2.Color = System.Drawing.Color.FromArgb(((int)(((byte)(157)))), ((int)(((byte)(188)))), ((int)(((byte)(227))))); - this.tcpOutputSettings.Style.Border = DevComponents.DotNetBar.eBorderType.SingleLine; - this.tcpOutputSettings.Style.BorderColor.Color = System.Drawing.Color.FromArgb(((int)(((byte)(146)))), ((int)(((byte)(165)))), ((int)(((byte)(199))))); - this.tcpOutputSettings.Style.BorderSide = ((DevComponents.DotNetBar.eBorderSide)(((DevComponents.DotNetBar.eBorderSide.Left | DevComponents.DotNetBar.eBorderSide.Right) - | DevComponents.DotNetBar.eBorderSide.Bottom))); - this.tcpOutputSettings.Style.GradientAngle = 90; - this.tcpOutputSettings.TabIndex = 3; - this.tcpOutputSettings.TabItem = this.tiOutputSettings; - this.tcpOutputSettings.Enter += new System.EventHandler(this.tabpage_Enter); - // - // ppChbxAddBlankPgs - // - this.ppChbxAddBlankPgs.AutoSize = true; - this.ppChbxAddBlankPgs.BackColor = System.Drawing.Color.Transparent; - this.ppChbxAddBlankPgs.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.docVersionConfigBindingSource, "Print_AddBlankPagesWhenUsingDuplexFoldouts", true)); - this.ppChbxAddBlankPgs.Location = new System.Drawing.Point(9, 285); - this.ppChbxAddBlankPgs.Margin = new System.Windows.Forms.Padding(2); - this.ppChbxAddBlankPgs.Name = "ppChbxAddBlankPgs"; - this.ppChbxAddBlankPgs.Size = new System.Drawing.Size(249, 17); - this.ppChbxAddBlankPgs.TabIndex = 66; - this.ppChbxAddBlankPgs.Text = "Add Blank Pages When Using Duplex Foldouts"; - this.ppChbxAddBlankPgs.UseVisualStyleBackColor = false; - // - // ppChbxAlwaysViewPDF - // - this.ppChbxAlwaysViewPDF.AutoSize = true; - this.ppChbxAlwaysViewPDF.BackColor = System.Drawing.Color.Transparent; - this.ppChbxAlwaysViewPDF.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.docVersionConfigBindingSource, "Print_AlwaysViewPDFAfterCreate", true)); - this.ppChbxAlwaysViewPDF.Location = new System.Drawing.Point(9, 263); - this.ppChbxAlwaysViewPDF.Margin = new System.Windows.Forms.Padding(2); - this.ppChbxAlwaysViewPDF.Name = "ppChbxAlwaysViewPDF"; - this.ppChbxAlwaysViewPDF.Size = new System.Drawing.Size(175, 17); - this.ppChbxAlwaysViewPDF.TabIndex = 37; - this.ppChbxAlwaysViewPDF.Text = "Always View PDF after Creation"; - this.ppChbxAlwaysViewPDF.UseVisualStyleBackColor = false; - // - // ppChbxAlwaysOvrWrtPDF - // - this.ppChbxAlwaysOvrWrtPDF.AutoSize = true; - this.ppChbxAlwaysOvrWrtPDF.BackColor = System.Drawing.Color.Transparent; - this.ppChbxAlwaysOvrWrtPDF.DataBindings.Add(new System.Windows.Forms.Binding("Checked", this.docVersionConfigBindingSource, "Print_AlwaysOverwritePDF", true)); - this.ppChbxAlwaysOvrWrtPDF.Location = new System.Drawing.Point(9, 241); - this.ppChbxAlwaysOvrWrtPDF.Margin = new System.Windows.Forms.Padding(2); - this.ppChbxAlwaysOvrWrtPDF.Name = "ppChbxAlwaysOvrWrtPDF"; - this.ppChbxAlwaysOvrWrtPDF.Size = new System.Drawing.Size(131, 17); - this.ppChbxAlwaysOvrWrtPDF.TabIndex = 36; - this.ppChbxAlwaysOvrWrtPDF.Text = "Always Overwrite PDF"; - this.ppChbxAlwaysOvrWrtPDF.UseVisualStyleBackColor = false; - // - // ppGrpbxPrnAdj - // - this.ppGrpbxPrnAdj.BackColor = System.Drawing.Color.Transparent; - this.ppGrpbxPrnAdj.CanvasColor = System.Drawing.SystemColors.Control; - this.ppGrpbxPrnAdj.ColorSchemeStyle = DevComponents.DotNetBar.eDotNetBarStyle.Office2007; - this.ppGrpbxPrnAdj.Controls.Add(this.ppNumUpDwnOvrdPrnPenWidth); - this.ppGrpbxPrnAdj.Controls.Add(this.label19); - this.ppGrpbxPrnAdj.Controls.Add(this.label22); - this.ppGrpbxPrnAdj.Controls.Add(this.label20); - this.ppGrpbxPrnAdj.Controls.Add(this.ppNumUpDwnAdjPrnStartPos); - this.ppGrpbxPrnAdj.Controls.Add(this.ppNumUpDwnOverdPrnPenBoldWidth); - this.ppGrpbxPrnAdj.Controls.Add(this.label21); - this.ppGrpbxPrnAdj.Controls.Add(this.ppNumUpDwnOvrdPrnPenULineWidth); - this.ppGrpbxPrnAdj.Location = new System.Drawing.Point(9, 112); - this.ppGrpbxPrnAdj.Margin = new System.Windows.Forms.Padding(2); - this.ppGrpbxPrnAdj.Name = "ppGrpbxPrnAdj"; - this.ppGrpbxPrnAdj.Size = new System.Drawing.Size(467, 97); - // - // - // - this.ppGrpbxPrnAdj.Style.BackColor2SchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground2; - this.ppGrpbxPrnAdj.Style.BackColorGradientAngle = 90; - this.ppGrpbxPrnAdj.Style.BackColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBackground; - this.ppGrpbxPrnAdj.Style.BorderBottom = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGrpbxPrnAdj.Style.BorderBottomWidth = 1; - this.ppGrpbxPrnAdj.Style.BorderColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelBorder; - this.ppGrpbxPrnAdj.Style.BorderLeft = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGrpbxPrnAdj.Style.BorderLeftWidth = 1; - this.ppGrpbxPrnAdj.Style.BorderRight = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGrpbxPrnAdj.Style.BorderRightWidth = 1; - this.ppGrpbxPrnAdj.Style.BorderTop = DevComponents.DotNetBar.eStyleBorderType.Solid; - this.ppGrpbxPrnAdj.Style.BorderTopWidth = 1; - this.ppGrpbxPrnAdj.Style.CornerDiameter = 4; - this.ppGrpbxPrnAdj.Style.CornerType = DevComponents.DotNetBar.eCornerType.Rounded; - this.ppGrpbxPrnAdj.Style.TextAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Center; - this.ppGrpbxPrnAdj.Style.TextColorSchemePart = DevComponents.DotNetBar.eColorSchemePart.PanelText; - this.ppGrpbxPrnAdj.Style.TextLineAlignment = DevComponents.DotNetBar.eStyleTextAlignment.Near; - // - // - // - this.ppGrpbxPrnAdj.StyleMouseDown.CornerType = DevComponents.DotNetBar.eCornerType.Square; - // - // - // - this.ppGrpbxPrnAdj.StyleMouseOver.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.ppGrpbxPrnAdj.TabIndex = 65; - this.ppGrpbxPrnAdj.Text = "Output Adjustments"; - this.ppGrpbxPrnAdj.Visible = false; - // - // tiOutputSettings - // - this.tiOutputSettings.AttachedControl = this.tcpOutputSettings; - this.tiOutputSettings.Name = "tiOutputSettings"; - this.tiOutputSettings.Text = "Output Settings"; - // - // panVerBtns - // - this.panVerBtns.BackColor = System.Drawing.Color.Transparent; - this.panVerBtns.Controls.Add(this.btnApplicability); - this.panVerBtns.Controls.Add(this.btnLibDocs); - this.panVerBtns.Controls.Add(this.btnFmtSettings); - this.panVerBtns.Controls.Add(this.btnOutputSettings); - this.panVerBtns.Controls.Add(this.btnRefObjs); - this.panVerBtns.Controls.Add(this.btnGeneral); - this.panVerBtns.Location = new System.Drawing.Point(5, 2); - this.panVerBtns.Margin = new System.Windows.Forms.Padding(2); - this.panVerBtns.Name = "panVerBtns"; - this.panVerBtns.Size = new System.Drawing.Size(151, 280); - this.panVerBtns.TabIndex = 27; - // - // btnApplicability - // - this.btnApplicability.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnApplicability.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnApplicability.Dock = System.Windows.Forms.DockStyle.Top; - this.btnApplicability.Location = new System.Drawing.Point(0, 92); - this.btnApplicability.Margin = new System.Windows.Forms.Padding(2); - this.btnApplicability.Name = "btnApplicability"; - this.btnApplicability.Size = new System.Drawing.Size(151, 15); - this.btnApplicability.TabIndex = 98; - this.btnApplicability.Text = "Applicability"; - this.btnApplicability.Click += new System.EventHandler(this.btnApplicability_Click); - // - // btnLibDocs - // - this.btnLibDocs.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnLibDocs.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnLibDocs.Dock = System.Windows.Forms.DockStyle.Top; - this.btnLibDocs.Location = new System.Drawing.Point(0, 73); - this.btnLibDocs.Margin = new System.Windows.Forms.Padding(2); - this.btnLibDocs.Name = "btnLibDocs"; - this.btnLibDocs.Size = new System.Drawing.Size(151, 19); - this.btnLibDocs.TabIndex = 97; - this.btnLibDocs.Text = "Library Documents"; - this.btnLibDocs.Click += new System.EventHandler(this.btnLibDocs_Click); - // - // btnFmtSettings - // - this.btnFmtSettings.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnFmtSettings.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnFmtSettings.Dock = System.Windows.Forms.DockStyle.Top; - this.btnFmtSettings.Location = new System.Drawing.Point(0, 54); - this.btnFmtSettings.Margin = new System.Windows.Forms.Padding(2); - this.btnFmtSettings.Name = "btnFmtSettings"; - this.btnFmtSettings.Size = new System.Drawing.Size(151, 19); - this.btnFmtSettings.TabIndex = 96; - this.btnFmtSettings.Text = "Format Settings"; - this.btnFmtSettings.Click += new System.EventHandler(this.btnFmtSettings_Click); - // - // btnOutputSettings - // - this.btnOutputSettings.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnOutputSettings.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnOutputSettings.Dock = System.Windows.Forms.DockStyle.Top; - this.btnOutputSettings.Location = new System.Drawing.Point(0, 35); - this.btnOutputSettings.Margin = new System.Windows.Forms.Padding(2); - this.btnOutputSettings.Name = "btnOutputSettings"; - this.btnOutputSettings.Size = new System.Drawing.Size(151, 19); - this.btnOutputSettings.TabIndex = 95; - this.btnOutputSettings.Text = "Output Settings"; - this.btnOutputSettings.Click += new System.EventHandler(this.btnOutputSettings_Click); - // - // btnRefObjs - // - this.btnRefObjs.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnRefObjs.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnRefObjs.Dock = System.Windows.Forms.DockStyle.Top; - this.btnRefObjs.Location = new System.Drawing.Point(0, 19); - this.btnRefObjs.Margin = new System.Windows.Forms.Padding(2); - this.btnRefObjs.Name = "btnRefObjs"; - this.btnRefObjs.Size = new System.Drawing.Size(151, 16); - this.btnRefObjs.TabIndex = 94; - this.btnRefObjs.Text = "Referenced Objects"; - this.btnRefObjs.Click += new System.EventHandler(this.btnRefObjs_Click); - // - // btnGeneral - // - this.btnGeneral.AccessibleRole = System.Windows.Forms.AccessibleRole.PushButton; - this.btnGeneral.ColorTable = DevComponents.DotNetBar.eButtonColor.OrangeWithBackground; - this.btnGeneral.Dock = System.Windows.Forms.DockStyle.Top; - this.btnGeneral.Location = new System.Drawing.Point(0, 0); - this.btnGeneral.Margin = new System.Windows.Forms.Padding(2); - this.btnGeneral.Name = "btnGeneral"; - this.btnGeneral.Size = new System.Drawing.Size(151, 19); - this.btnGeneral.TabIndex = 93; - this.btnGeneral.Text = "General"; - this.btnGeneral.Click += new System.EventHandler(this.btnGeneral_Click); - // - // formatInfoListBindingSource - // - this.formatInfoListBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.FormatInfo); - // - // frmVersionsProperties - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink; - this.CancelButton = this.ppBtnCancel; - this.CaptionFont = new System.Drawing.Font("Microsoft Sans Serif", 10.2F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this.ClientSize = new System.Drawing.Size(654, 395); - this.ControlBox = false; - this.Controls.Add(this.panVerBtns); - this.Controls.Add(this.tcVersions); - this.Controls.Add(this.ppCbShwDefSettings); - this.Controls.Add(this.ppLblDefSettingsInfo); - this.Controls.Add(this.ppBtnCancel); - this.Controls.Add(this.ppBtnOK); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle; - this.Margin = new System.Windows.Forms.Padding(2); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "frmVersionsProperties"; - this.ShowIcon = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen; - this.Text = "Versions Properties"; - this.Load += new System.EventHandler(this.frmVersionsProperties_Load); - this.Shown += new System.EventHandler(this.frmVersionsProperties_Shown); - ((System.ComponentModel.ISupportInitialize)(this.docVersionConfigBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.imageCodecInfoBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ppNumUpDwnOvrdPrnPenWidth)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ppNumUpDwnOverdPrnPenBoldWidth)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ppNumUpDwnOvrdPrnPenULineWidth)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ppNumUpDwnAdjPrnStartPos)).EndInit(); - this.ppGpbxUserSpecCB.ResumeLayout(false); - this.ppGpbxUserSpecCB.PerformLayout(); - this.ppGpbxUserSpecTxt.ResumeLayout(false); - this.ppGpbxUserSpecTxt.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.tcVersions)).EndInit(); - this.tcVersions.ResumeLayout(false); - this.tcpGeneral.ResumeLayout(false); - this.tcpGeneral.PerformLayout(); - this.tcpRefereceObjects.ResumeLayout(false); - this.tcpRefereceObjects.PerformLayout(); - this.ppGpbxUpROvals.ResumeLayout(false); - this.tcpApplicability.ResumeLayout(false); - this.tcpApplicability.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.bsMiniApple)).EndInit(); - this.panel1.ResumeLayout(false); - this.panel2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.bsApples)).EndInit(); - this.tabControlPanel5.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.ppGrdLibDocList)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.documentInfoListBindingSource)).EndInit(); - this.tcpFormatSettings.ResumeLayout(false); - this.tcpFormatSettings.PerformLayout(); - this.tcpOutputSettings.ResumeLayout(false); - this.tcpOutputSettings.PerformLayout(); - this.ppGrpbxPrnAdj.ResumeLayout(false); - this.ppGrpbxPrnAdj.PerformLayout(); - this.panVerBtns.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.ROPrefixBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.formatInfoListBindingSource)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button ppBtnCancel; - private System.Windows.Forms.Button ppBtnOK; - private System.Windows.Forms.Label label15; - private System.Windows.Forms.Label label14; - private System.Windows.Forms.RichTextBox ppTxbxChangeBarUserMsgTwo; - private System.Windows.Forms.RichTextBox ppTxbxChangeBarUserMsgOne; - private System.Windows.Forms.Label label13; - private System.Windows.Forms.Label label12; - private System.Windows.Forms.Label label10; - private System.Windows.Forms.Label label11; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.Label label9; - private System.Windows.Forms.RichTextBox ppRTxtName; - //added jcb for procedure set rev - private System.Windows.Forms.Label lblProcSetRev; - private System.Windows.Forms.RichTextBox ppRTxtProcSetRev; - //end added jcb for procedure set rev - private System.Windows.Forms.RichTextBox ppRTxtTitle; - private System.Windows.Forms.DateTimePicker ppDTPicker; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox ppTxtBxUserID; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.Button ppBtnUpRoVals; - private System.Windows.Forms.Button ppBtnResetRoVals; - private System.Windows.Forms.BindingSource docVersionConfigBindingSource; - private System.Windows.Forms.Label label17; - private System.Windows.Forms.TextBox ppTxtBxPDFLoc; - private System.Windows.Forms.Label label18; - private System.Windows.Forms.Label ppLblAutoDuplexDefault; - private System.Windows.Forms.CheckBox ppChbxDisAutoDuplex; - private System.Windows.Forms.Label ppLblFormatDefault; - private DevComponents.DotNetBar.SuperTooltip superTooltip1; - private System.Windows.Forms.Label ppLblWatermarkDefault; - private System.Windows.Forms.Label ppLblChangeBarTypeDefault; - private System.Windows.Forms.Label ppLblChgBarPosDefault; - private System.Windows.Forms.Label ppLblChgBarTxtTypeDefault; - private System.Windows.Forms.Label ppLblChgBarUserMsgTwoDefault; - private System.Windows.Forms.Label ppLblChgBarUserMsgOneDefault; -// private C1.Win.C1FlexGrid.C1FlexGrid ppGrdLibDocList; - private System.Windows.Forms.BindingSource formatInfoListBindingSource; - private DevComponents.DotNetBar.Controls.ComboBoxEx ppCmbxWatermark; - private DevComponents.DotNetBar.Controls.ComboBoxEx ppCmbxProcSetType; - private DevComponents.DotNetBar.Controls.ComboBoxEx ppCmbxFormat; - private DevComponents.DotNetBar.ButtonX ppBtnDefaultFmt; - private DevComponents.DotNetBar.Controls.ComboBoxEx ppCmbxChangeBarType; - private DevComponents.DotNetBar.Controls.ComboBoxEx ppCmbxChgBarPos; - private DevComponents.DotNetBar.Controls.ComboBoxEx ppCmbxChgBarTxtType; - private System.Windows.Forms.BindingSource imageCodecInfoBindingSource; - private System.Windows.Forms.Label ppLblDefSettingsInfo; - private DevComponents.DotNetBar.Controls.CheckBoxX ppCbShwDefSettings; - private DevComponents.DotNetBar.ButtonX ppBtnDefWatermark; - private DevComponents.DotNetBar.ButtonX ppBtnDeftDisAutoDuplx; - private System.Windows.Forms.NumericUpDown ppNumUpDwnOvrdPrnPenWidth; - private System.Windows.Forms.Label label19; - private System.Windows.Forms.Label label20; - private System.Windows.Forms.NumericUpDown ppNumUpDwnOverdPrnPenBoldWidth; - private System.Windows.Forms.NumericUpDown ppNumUpDwnOvrdPrnPenULineWidth; - private System.Windows.Forms.Label label21; - private System.Windows.Forms.NumericUpDown ppNumUpDwnAdjPrnStartPos; - private System.Windows.Forms.Label label22; - private DevComponents.DotNetBar.ButtonX ppBtnPDFLoc; - private DevComponents.DotNetBar.ButtonX ppBtnDefaultChgBar; - private DevComponents.DotNetBar.ButtonX ppBtnDefCbTxt1; - private DevComponents.DotNetBar.ButtonX ppBtnDefCbTxt2; - private DevComponents.DotNetBar.ButtonX ppBtnDefaultCbPos; - private DevComponents.DotNetBar.ButtonX ppBtnDefCbTxtTyp; - private System.Windows.Forms.FolderBrowserDialog dlgROFolder; - private DevComponents.DotNetBar.TabControl tcVersions; - private DevComponents.DotNetBar.TabControlPanel tcpRefereceObjects; - private DevComponents.DotNetBar.TabItem tiRefObjs; - private DevComponents.DotNetBar.TabControlPanel tcpGeneral; - private DevComponents.DotNetBar.TabItem tiGeneral; - private DevComponents.DotNetBar.TabControlPanel tabControlPanel5; - private DevComponents.DotNetBar.TabItem tiLibDocs; - private DevComponents.DotNetBar.TabControlPanel tcpFormatSettings; - private DevComponents.DotNetBar.TabItem tiFmtSettings; - private DevComponents.DotNetBar.TabControlPanel tcpOutputSettings; - private DevComponents.DotNetBar.TabItem tiOutputSettings; - private DevComponents.DotNetBar.Controls.GroupPanel ppGpbxUpROvals; - private DevComponents.DotNetBar.Controls.GroupPanel ppGrpbxPrnAdj; - private DevComponents.DotNetBar.Controls.GroupPanel ppGpbxUserSpecCB; - private DevComponents.DotNetBar.Controls.GroupPanel ppGpbxUserSpecTxt; - private System.Windows.Forms.Panel panVerBtns; - private DevComponents.DotNetBar.ButtonX btnLibDocs; - private DevComponents.DotNetBar.ButtonX btnFmtSettings; - private DevComponents.DotNetBar.ButtonX btnOutputSettings; - private DevComponents.DotNetBar.ButtonX btnRefObjs; - private DevComponents.DotNetBar.ButtonX btnGeneral; - private System.Windows.Forms.BindingSource documentInfoListBindingSource; - private System.Windows.Forms.ComboBox cmbRoDb; - private DevComponents.DotNetBar.ButtonX btnRoDbProperties; - private System.Windows.Forms.TextBox tbRoDb; - private System.Windows.Forms.Button ppBtnRoDbBrowse; - private System.Windows.Forms.BindingSource ROPrefixBindingSource; - private DevComponents.DotNetBar.Controls.DataGridViewX ppGrdLibDocList; - private System.Windows.Forms.DataGridViewTextBoxColumn documentEntryCountDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn libTitleDataGridViewTextBoxColumn; - private System.Windows.Forms.FolderBrowserDialog PDFLocationBrowserDialog; - private System.Windows.Forms.CheckBox ppChbxAlwaysViewPDF; - private System.Windows.Forms.CheckBox ppChbxAlwaysOvrWrtPDF; - private DevComponents.DotNetBar.ButtonX btnApplicability; - private DevComponents.DotNetBar.TabControlPanel tcpApplicability; - private DevComponents.DotNetBar.TabItem tiApplicability; - private System.Windows.Forms.ListBox lbApplicabilities; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Label label5; - private System.Windows.Forms.Button btnDelApple; - private System.Windows.Forms.Button btnNewApple; - private System.Windows.Forms.TextBox textBox1; - private System.Windows.Forms.BindingSource bsMiniApple; - private System.Windows.Forms.TextBox textBox11; - private System.Windows.Forms.TextBox textBox10; - private System.Windows.Forms.TextBox textBox9; - private System.Windows.Forms.TextBox textBox8; - private System.Windows.Forms.TextBox textBox7; - private System.Windows.Forms.TextBox textBox6; - private System.Windows.Forms.TextBox textBox5; - private System.Windows.Forms.TextBox textBox4; - private System.Windows.Forms.TextBox textBox3; - private System.Windows.Forms.TextBox textBox2; - private System.Windows.Forms.BindingSource bsApples; - private System.Windows.Forms.Label label24; - private System.Windows.Forms.Label label23; - private System.Windows.Forms.Label label16; - private System.Windows.Forms.Label label8; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.Label label28; - private System.Windows.Forms.Label label27; - private System.Windows.Forms.Label label26; - private System.Windows.Forms.Label label25; - private System.Windows.Forms.CheckBox ppChbxAddBlankPgs; - - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface/frmVersionsProperties.cs.bak b/PROMS/VEPROMS User Interface/frmVersionsProperties.cs.bak deleted file mode 100644 index d575e2e5..00000000 --- a/PROMS/VEPROMS User Interface/frmVersionsProperties.cs.bak +++ /dev/null @@ -1,1752 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using VEPROMS.CSLA.Library; -using System.Drawing.Imaging; -using VEPROMS.Properties; -using Volian.Controls.Library; -using DescriptiveEnum; -using DevComponents.DotNetBar; -using DevComponents.DotNetBar.Controls; -using System.Xml.Serialization; -using Volian.Base.Library; - -namespace VEPROMS -{ - public partial class frmVersionsProperties : DevComponents.DotNetBar.Office2007Form - { - private List _Apples; - private List _DeletedApples; - private List _Enhanced; - private bool _Initializing = false; - private DocVersionConfig _DocVersionConfig; - - // Default values - private string _DefaultFormatName = null; - private string _DefaultROPrefix = null; - private string _DefaultImagePrefix = null; - //private string _DefaultPagination = null; - private string _DefaultWatermark = null; - private string _DefaultChgBarType = null; - private string _DefaultChgBarLoc = null; - private string _DefaultChgBarText = null; - private string _DefaultChgBarUsrMsg1 = null; - private string _DefaultChgBarUsrMsg2 = null; - private bool _DefaultDisableDuplex = false; - - // For the initial release, we are assuming there will be only one rofst for a docversion. Changes - // will be needed here if more than 1. - private ROFstInfo _SelectedROFst; - public ROFstInfo SelectedROFst - { - get - { - if (_SelectedROFst == null) - { - if (_DocVersionConfig.MyDocVersion.DocVersionAssociationCount < 1) return null; - _SelectedROFst = ROFstInfo.GetJustROFst(_DocVersionConfig.MyDocVersion.DocVersionAssociations[0].ROFstID); - } - return _SelectedROFst; - } - set { _SelectedROFst = value; } - } - // - - public frmVersionsProperties(DocVersionConfig docVersionConfig) - { - _DocVersionConfig = docVersionConfig; - _Initializing = true; - InitializeComponent(); - btnGeneral.PerformClick(); // always start with General tab or button - _Initializing = false; - //build the caption - this.Text = string.Format("{0} Properties", _DocVersionConfig.Name); - } - private string AddSlaveNode(MiniConfig mc) - { - System.Xml.XmlDocument xd = new System.Xml.XmlDocument(); - xd.LoadXml(_DocVersionConfig.ToString()); - System.Xml.XmlNodeList nl = xd.SelectNodes("//Slave"); - int max = 0; - foreach (System.Xml.XmlNode n in nl) - { - max = int.Parse(n.Attributes.GetNamedItem("index").InnerText); - } - max++; - System.Xml.XmlNode nn = xd.CreateElement("Slave"); - AddSlaveAttribute(nn, "index", max.ToString()); - AddSlaveAttribute(nn, "ID", mc.ID); - AddSlaveAttribute(nn, "Name", mc.Name); - AddSlaveAttribute(nn, "Number", mc.Number); - AddSlaveAttribute(nn, "Text", mc.Text); - AddSlaveAttribute(nn, "ProcedureNumber", mc.ProcedureNumber); - AddSlaveAttribute(nn, "SetID", mc.SetID); - AddSlaveAttribute(nn, "SetName", mc.SetName); - AddSlaveAttribute(nn, "OtherID", mc.OtherID); - AddSlaveAttribute(nn, "OtherName", mc.OtherName); - AddSlaveAttribute(nn, "OtherNumber", mc.OtherNumber); - AddSlaveAttribute(nn, "OtherText", mc.OtherText); - System.Xml.XmlNode sn = xd.SelectSingleNode("//Slaves"); - sn.AppendChild(nn); - return xd.OuterXml; - } - private void AddSlaveAttribute(System.Xml.XmlNode nn, string name, string value) - { - System.Xml.XmlAttribute xa = nn.OwnerDocument.CreateAttribute(name); - xa.InnerText = value; - nn.Attributes.SetNamedItem(xa); - } - private void btnVersionsPropOK_Click(object sender, EventArgs e) - { - docVersionConfigBindingSource.EndEdit(); // need to end the edit session first or any format selection chanage will not stick B2015-157 - if (_DocVersionConfig.Unit_Count > 0 || (_Apples != null && _Apples.Count > 0)) - { - if (_DeletedApples != null && _DeletedApples.Count > 0) - { - foreach (MiniConfig mc in _DeletedApples) - _DocVersionConfig.RemoveSlave(mc.Index); - } - foreach (MiniConfig mc in _Apples) - { - if (mc.IsDirty) - { - if (mc.Index < 0) - { - mc.Index = _DocVersionConfig.MaxSlaveIndex + 1; - _DocVersionConfig.AddSlave(mc.MyXml); - } - else - { - int k = _DocVersionConfig.SelectedSlave; - _DocVersionConfig.SelectedSlave = mc.Index; - _DocVersionConfig.Unit_ID = mc.ID; - _DocVersionConfig.Unit_Name = mc.Name; - _DocVersionConfig.Unit_Number = mc.Number; - _DocVersionConfig.Unit_Text = mc.Text; - _DocVersionConfig.Unit_ProcedureNumber = mc.ProcedureNumber; - _DocVersionConfig.Unit_ProcedureSetID = mc.SetID; - _DocVersionConfig.Unit_ProcedureSetName = mc.SetName; - _DocVersionConfig.Other_Unit_ID = mc.OtherID; - _DocVersionConfig.Other_Unit_Name = mc.OtherName; - _DocVersionConfig.Other_Unit_Number = mc.OtherNumber; - _DocVersionConfig.Other_Unit_Text = mc.OtherText; - _DocVersionConfig.SelectedSlave = k; - } - } - } - } - if (_Enhanced != null) - { - foreach (EnhancedMiniConfig emc in _Enhanced) - { - if (emc.IsDirty) - { - bool isnew = true; - foreach (DVEnhancedDocument dved in _DocVersionConfig.MyEnhancedDocuments) - { - if (dved.Type == Convert.ToInt32(emc.Type)) - { - isnew = false; - dved.Name = emc.Name; - dved.PdfToken = emc.PdfToken; - try - { - dved.PdfX = Convert.ToInt32(emc.PdfXOffset); - } - catch (Exception ex) - { - dved.PdfX = 10; - } - } - } - if (isnew) // make new link for this and the enhanced it points to. - { - int ipdfx = 0; - try - { - ipdfx = Convert.ToInt32(emc.PdfXOffset); - } - catch (Exception ex) - { - ipdfx = (emc.PdfToken==null||emc.PdfToken=="")?0:10; - } - int itype = 0; - try - { - itype = Convert.ToInt32(emc.Type); - } - catch (Exception ex) - { - itype = 1; - } - // get index into combo box for doc version selected. - int selindx = cbxEnhVersions.SelectedIndex; - DocVersionInfo dvisel = NewEnhVersions[selindx]; - _DocVersionConfig.MyEnhancedDocuments.Add(new DVEnhancedDocument(emc.Name, itype, dvisel.VersionID, ipdfx, emc.PdfToken)); - using (DocVersion dv = DocVersion.Get(dvisel.VersionID)) - { - DocVersionConfig dvc = dv.MyConfig as DocVersionConfig; - dvc.MyEnhancedDocuments.Add(new DVEnhancedDocument("Source", 0, (int)_DocVersionConfig.MyDocVersion.VersionID, 10, "S")); - dvc.SaveDVEnhancedDocuments(); - dv.Config = dvc.ToString(); - dv.Save(); - } - } - } - } - _DocVersionConfig.SaveDVEnhancedDocuments(); - } - - _DocVersionConfig.Print_UnitNumberForPageList = ppTxbxUnitNum.Text; - - //docVersionConfigBindingSource.EndEdit(); - // Save Default settings for User - // - // Save whether we should display the default values on this property page - Settings.Default.ShowDefaultVersionProp = ppCbShwDefSettings.Checked; - Settings.Default.Save(); - DialogResult = DialogResult.OK; - _DocVersionConfig.MyDocVersion.Config = _DocVersionConfig.ToString(); - _DocVersionConfig.MyDocVersion.Save().Dispose(); - if (_EnhNeedToUnlink) - { - this.Cursor = Cursors.WaitCursor; - _DocVersionConfig.MyDocVersion.MyDocVersionInfo.DoUnlinkEnhancedDocVersion(); - this.Cursor = Cursors.Default; - } - this.Close(); - } - - private void btnFldrPropCancel_Click(object sender, EventArgs e) - { - docVersionConfigBindingSource.CancelEdit(); - this.Close(); - } - - /// - /// Use the ParentLookup to grab the default values - /// - set the watermark property (where applicable) of the control with that value - /// - set the default setting labels with that value - /// ** the default setting labels appear when the Show Default Values checkbox is checked by the user. - /// - private void FindDefaultValues() - { - _DocVersionConfig.ParentLookup = true; - - // get default format - _DefaultFormatName = _DocVersionConfig.DefaultFormatSelection; - SetupDefault(_DefaultFormatName, ppLblFormatDefault, ppCmbxFormat); - - // Get the default Change Bar Type - _DefaultChgBarType = _DocVersionConfig.Print_ChangeBar.ToString(); - SetupDefault(EnumDescConverter.GetEnumDescription(_DocVersionConfig.Print_ChangeBar), ppLblChangeBarTypeDefault, ppCmbxChangeBarType); - - // Get the default Change Bar Location - _DefaultChgBarLoc = _DocVersionConfig.Print_ChangeBarLoc.ToString(); - SetupDefault(EnumDescConverter.GetEnumDescription(_DocVersionConfig.Print_ChangeBarLoc), ppLblChgBarPosDefault, ppCmbxChgBarPos); - - // Get the default Change Bar text - _DefaultChgBarText = _DocVersionConfig.Print_ChangeBarText.ToString(); - SetupDefault(EnumDescConverter.GetEnumDescription(_DocVersionConfig.Print_ChangeBarText), ppLblChgBarTxtTypeDefault, ppCmbxChgBarTxtType); - - // Get the default User Change Bar Message 1 - _DefaultChgBarUsrMsg1 = _DocVersionConfig.Print_UserCBMess1; - if (!(_DefaultChgBarUsrMsg1.Equals(""))) - { - ppLblChgBarUserMsgOneDefault.Text = string.Format("({0})", _DefaultChgBarUsrMsg1); - } - - // Get the default User Change Bar Message 2 - _DefaultChgBarUsrMsg2 = _DocVersionConfig.Print_UserCBMess2; - if (!(_DefaultChgBarUsrMsg2.Equals(""))) - { - ppLblChgBarUserMsgTwoDefault.Text = string.Format("{0}", _DefaultChgBarUsrMsg2); - } - - // Get the ro path - there is no 'default' - if (_DocVersionConfig.MyDocVersion.DocVersionAssociationCount < 0 && _DocVersionConfig.MyDocVersion.DocVersionAssociations.Count == 0) - ;// The line above refreshes the data - if (_DocVersionConfig.MyDocVersion.DocVersionAssociationCount > 0) - { - RODbInfo rdi = RODbInfo.GetJustRODB(SelectedROFst.RODbID); - tbRoDb.Text = string.Format("{0} ({1})", rdi.ROName, rdi.FolderPath); - } - else - { - int selindx = -1; - cmbRoDb.Items.Clear(); - int myrodbid = -1; - if (_DocVersionConfig.MyDocVersion.DocVersionAssociationCount >= 1) myrodbid = SelectedROFst.RODbID; - foreach (RODbInfo rdi in RODbInfoList.Get()) - { - int i = cmbRoDb.Items.Add(string.Format("{0} ({1})", rdi.ROName, rdi.FolderPath)); - if (rdi.RODbID == myrodbid) selindx = i; - } - if (cmbRoDb.Items.Count > 0) cmbRoDb.SelectedIndex = selindx; - } - - // Get the default Print Pagination - //_DefaultPagination = _DocVersionConfig.Print_Pagination.ToString(); - //SetupDefault(EnumDescConverter.GetEnumDescription(_DocVersionConfig.Print_Pagination), ppLblPaginationDefault, ppCmbxPagination); - - // Get the default Watermark - _DefaultWatermark = _DocVersionConfig.Print_Watermark.ToString(); - SetupDefault(EnumDescConverter.GetEnumDescription(_DocVersionConfig.Print_Watermark), ppLblWatermarkDefault, ppCmbxWatermark); - - // Get the default Disable Duplex - _DefaultDisableDuplex = _DocVersionConfig.Print_DisableDuplex; - ppLblAutoDuplexDefault.Text = string.Format("(Duplex {0})", (_DefaultDisableDuplex) ? "OFF" : "ON"); - - _DocVersionConfig.ParentLookup = false; - } - - - private void frmVersionsProperties_Load(object sender, EventArgs e) - { - _Initializing = true; - docVersionConfigBindingSource.DataSource = _DocVersionConfig; - - //formatInfoListBindingSource.DataSource = FormatInfoList.Get(); - imageCodecInfoBindingSource.DataSource = ImageCodecInfo.GetImageDecoders(); - - ppCmbxFormat.DataSource = null; - ppCmbxFormat.DisplayMember = "FullName"; - ppCmbxFormat.ValueMember = "FullName"; - ppCmbxFormat.DataSource = FormatInfoList.SortedFormatInfoList; - if (_DocVersionConfig.FormatSelection != null) - { - ppCmbxFormat.SelectedValue = _DocVersionConfig.FormatSelection; - ppBtnDefaultFmt.Visible = true; //bug fix B2016-102 make the default button visable if other the the default format is being used - } - else - ppCmbxFormat.SelectedIndex = -1; // default format - - // Get the saved settings for this user - // - // Get setting telling us whether to display the default values on this property page - ppCbShwDefSettings.Checked = (Settings.Default["ShowDefaultVersionProp"] != null) ? Settings.Default.ShowDefaultVersionProp : false; - - // Get the User's property page style "PropPageStyle" (this is a system wide user setting) - // 1 - Button Dialog (default) - // 2 - Tab Dialog - if ((int)Settings.Default["PropPageStyle"] == (int)PropPgStyle.Tab) - { - tcVersions.TabsVisible = true; - panVerBtns.Visible = false; - this.Width -= panVerBtns.Width; - } - - // Get the default values for the property page information - FindDefaultValues(); - - ppCmbxChangeBarType.DataSource = EnumDetail.Details(); - ppCmbxChangeBarType.DisplayMember = "Description"; - ppCmbxChangeBarType.ValueMember = "EValue"; - ppCmbxChangeBarType.SelectedIndex = -1; - - ppCmbxChgBarPos.DataSource = EnumDetail.Details(); - ppCmbxChgBarPos.DisplayMember = "Description"; - ppCmbxChgBarPos.ValueMember = "EValue"; - ppCmbxChgBarPos.SelectedIndex = -1; - - ppCmbxChgBarTxtType.DataSource = EnumDetail.Details(); - ppCmbxChgBarTxtType.DisplayMember = "Description"; - ppCmbxChgBarTxtType.ValueMember = "EValue"; - ppCmbxChgBarTxtType.SelectedItem = -1; - - ppCmbxWatermark.DataSource = EnumDetail.Details(); - ppCmbxWatermark.DisplayMember = "Description"; - ppCmbxWatermark.ValueMember = "EValue"; - ppCmbxWatermark.SelectedIndex = -1; - - //ppCmbxPagination.DataSource = EnumDetail.Details(); - //ppCmbxPagination.DisplayMember = "Description"; - //ppCmbxPagination.ValueMember = "EValue"; - //ppCmbxPagination.SelectedIndex = -1; - - ppCmbxProcSetType.DataSource = EnumDetail.Details(); - ppCmbxProcSetType.DisplayMember = "Description"; - ppCmbxProcSetType.ValueMember = "EValue"; - ppCmbxProcSetType.Enabled = false; // maybe enable this if used for version creation - - // check active format to see if the unit number text box on the format tab is visible. - if (_DocVersionConfig.MyDocVersion.MyDocVersionInfo.ActiveFormat.PlantFormat.FormatData.PrintData.UnitNumber) - { - ppLblUnitNum.Visible = true; - ppTxbxUnitNum.Visible = true; - ppTxbxUnitNum.Text = _DocVersionConfig.Print_UnitNumberForPageList; - } - else - { - ppLblUnitNum.Visible = false; - ppTxbxUnitNum.Visible = false; - } - - documentInfoListBindingSource.DataSource = DocumentInfoList.GetLibraries(false); - - ppBtnRoDbBrowse.Visible = cmbRoDb.Visible = _DocVersionConfig.MyDocVersion.DocVersionAssociationCount == 0; - btnRoDbProperties.Visible = tbRoDb.Visible = !(_DocVersionConfig.MyDocVersion.DocVersionAssociationCount == 0); - ppBtnUpRoVals.Enabled = _DocVersionConfig.MyDocVersion.DocVersionAssociations != null && _DocVersionConfig.MyDocVersion.DocVersionAssociations.Count > 0; // only allow update if association - - // Set the auto duplex controls based on whether the format allows this: - // Note that the controls' visibility would not set correctly using the following two lines of code. That - // is why the more explicit logic was done. - //ppChbxDisAutoDuplex.Visible = _DocVersionConfig.MyDocVersion.MyFormat.PlantFormat.FormatData.PrintData.AllowDuplex; - //ppLblAutoDuplexDefault.Visible = ppBtnDeftDisAutoDuplx.Visible = ppLblAutoDuplexDefault.Visible; - if (_DocVersionConfig.MyDocVersion.MyFormat != null && _DocVersionConfig.MyDocVersion.MyFormat.PlantFormat.FormatData.PrintData.AllowDuplex) - { - ppChbxDisAutoDuplex.Visible = true; - ppLblAutoDuplexDefault.Visible = true; - ppBtnDeftDisAutoDuplx.Visible = true; - } - else - { - ppChbxDisAutoDuplex.Visible = false; - ppLblAutoDuplexDefault.Visible = false; - ppBtnDeftDisAutoDuplx.Visible = false; - } - //add new applicability stuff - if (_DocVersionConfig.Unit_Count > 0) - { - int k = _DocVersionConfig.SelectedSlave; - _Apples = new List(); - for (int i = 1; i <= _DocVersionConfig.MaxSlaveIndex; i++) - { - _DocVersionConfig.SelectedSlave = i; - try - { - MiniConfig cfg = new MiniConfig(i, _DocVersionConfig.Unit_ID, _DocVersionConfig.Unit_Name, _DocVersionConfig.Unit_Number, _DocVersionConfig.Unit_Text, _DocVersionConfig.Unit_ProcedureNumber, _DocVersionConfig.Unit_ProcedureSetID, _DocVersionConfig.Unit_ProcedureSetName, _DocVersionConfig.Other_Unit_ID, _DocVersionConfig.Other_Unit_Name, _DocVersionConfig.Other_Unit_Number, _DocVersionConfig.Other_Unit_Text); - _Apples.Add(cfg); - } - catch - { - } - } - _DocVersionConfig.SelectedSlave = k; - bsApples.DataSource = _Apples; - } - else - { - Button btnPC = new Button(); - btnPC.Text = "Add Applicability to Working Draft"; - btnPC.Width = 250; - btnPC.Location = new Point(25, 271); - btnPC.Parent = tcpGeneral; - btnPC.Click += new EventHandler(btnPC_Click); - btnApplicability.Visible = false; - tiApplicability.Visible = false; - } - ppTxtBxPDFLoc.TextChanged += new EventHandler(ppTxtBxPDFLoc_TextChanged); - //end add new applicability stuff - lblProcSetRev.Visible = ppRTxtProcSetRev.Visible = _DocVersionConfig.MyDocVersion.MyDocVersionInfo.ActiveFormat.MyStepSectionPrintData.UseXtraRevNumber; - - // the phone list button is only visible if the format has the print/phonelist format flag. - btnPhoneList.Visible = _DocVersionConfig.MyDocVersion.MyDocVersionInfo.ActiveFormat.PlantFormat.FormatData.SectData.PrintPhoneList; - btnUnlinkDocVersion.Visible = false; - InitEnhanced(); - _Initializing = false; - } - private void InitEnhanced() - { - // if this working draft has no enhanced documents, then put display a button for creating the enhanced links - - // but only if there are enhanced docversions to link to. - // Otherwise, set up the form with the data as it is. - if (_DocVersionConfig.MyEnhancedDocuments == null || _DocVersionConfig.MyEnhancedDocuments.Count == 0) - { - // also check that the format for this docversion does NOT have enhanced back/dev, i.e. it's format is an enhanced - // document - if (!(((_DocVersionConfig.MyDocVersion.MyDocVersionInfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds) || - ((_DocVersionConfig.MyDocVersion.MyDocVersionInfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedDeviations) == E_PurchaseOptions.EnhancedDeviations))) - { - bool validEmptyEnhancedExists = false; - // See if there are available (enhanced) DocVersions that can be linked to from this (source) DocVersion - DocVersionInfoList nonenhdvs = DocVersionInfoList.GetNonEnhancedDocVersions(); // this is a list of docversions that have no 'Enhanced' in config data - foreach (DocVersionInfo nonenhdv in nonenhdvs) - { - if (nonenhdv.VersionID != _DocVersionConfig.MyDocVersion.VersionID) - { - if (((nonenhdv.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds) || - ((nonenhdv.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedDeviations) == E_PurchaseOptions.EnhancedDeviations)) - { - validEmptyEnhancedExists = true; - break; - } - } - if (validEmptyEnhancedExists) break; - } - if (validEmptyEnhancedExists) - { - Button btnEnh = new Button(); - btnEnh.Text = "Link to Enhanced Document(s)"; - btnEnh.Width = 220; - btnEnh.Location = new Point(290, 271); - btnEnh.Parent = tcpGeneral; - btnEnh.Click += new EventHandler(btnEnh_Click); - } - } - btnEnhanced.Visible = false; - tiEnhanced.Visible = false; - return; - } - btnEnhanced.Visible = true; - tiEnhanced.Visible = true; - // get enhanced tab's data if: - // 1) hasEnhancedPO: this is source and format file has the purchase options for enhanced deviation or enhanced background - // 2) isEnhanced: this docversion has a config/enhanced node that defines it as an enhanced document. - bool hasEnhancedPO = true; // for now all can be enhanced - bool isEnhanced = (_DocVersionConfig.MyEnhancedDocuments != null && _DocVersionConfig.MyEnhancedDocuments.Count == 1 && _DocVersionConfig.MyEnhancedDocuments[0].Type == 0); - // isEnhanced is an already existing enhanced document. Only allow the user to change the Pdf settings: - if (isEnhanced) - { - _Enhanced = new List(); - // only display the data from the config setting. And only allow modify of PdfID and PdfXoffset - lbEnhanced.Visible = false; - lblEnhSet.Visible = false; - DocVersionInfo dvi = DocVersionInfo.Get(_DocVersionConfig.MyEnhancedDocuments[0].VersionID); - DVEnhancedDocument dvedUseData = _DocVersionConfig.MyEnhancedDocuments[0]; - DocVersionConfig dvc = dvi.MyConfig as DocVersionConfig; - EnhancedMiniConfig ecfg = new EnhancedMiniConfig(0, dvi.VersionID, "?", dvi.SearchDVPath, dvedUseData.Name, dvedUseData.Type.ToString(), dvedUseData.PdfToken, dvedUseData.PdfX.ToString()); - cbxEnhVersions.Items.Add(dvi.SearchDVPath); - tbEnhName.Enabled = false; - tbEnhType.Enabled = false; - _Enhanced.Add(ecfg); - bsMiniEnhanced.DataSource = _Enhanced; - cbxEnhVersions.SelectedIndex = 0; - cbxEnhVersions.Enabled = false; - btnNewEnh.Visible = false; - - // when in an enhanced doc version, make visible the button that allows user to unlink, need to get its 'title' - // from the source. - DocVersionInfo srcDVInfo = DocVersionInfo.Get(_DocVersionConfig.MyEnhancedDocuments[0].VersionID); - DocVersionConfig srcDVConfig = srcDVInfo.MyConfig as DocVersionConfig; - DVEnhancedDocuments dveds = srcDVConfig.MyEnhancedDocuments; - string ename = null; - foreach (DVEnhancedDocument dved in dveds) - { - if (dved.VersionID == _DocVersionConfig.MyDocVersion.VersionID) - { - ename = dved.Name; - break; - } - } - if (ename != null) - { - btnUnlinkDocVersion.Visible = true; - btnUnlinkDocVersion.Text = string.Format("Remove All {0} Links", ename); - } - } - else if (hasEnhancedPO) - { - // first set up existing enhanced linked documents (this is a listbox on left of form) - _Enhanced = new List(); - lbEnhanced.Visible = true; - lblEnhSet.Visible = true; - btnUnlinkDocVersion.Visible = false; // no unlink button when on a Source Document - foreach (DVEnhancedDocument dved in _DocVersionConfig.MyEnhancedDocuments) - { - DocVersionInfo dvi = DocVersionInfo.Get(dved.VersionID); - DocVersionConfig dvc = dvi.MyConfig as DocVersionConfig; - EnhancedMiniConfig ecfg = new EnhancedMiniConfig(0, dvi.VersionID, "?", dvi.SearchDVPath, dved.Name, dved.Type.ToString(), dved.PdfToken, dved.PdfX.ToString()); - cbxEnhVersions.Items.Add(dvi.SearchDVPath); - _Enhanced.Add(ecfg); - } - tbEnhName.Enabled = true; - tbEnhType.Enabled = false; - cbxEnhVersions.Enabled = false; - bsEnhanced.DataSource = _Enhanced; - if (cbxEnhVersions.Items.Count>0) cbxEnhVersions.SelectedIndex = 0; - if (lbEnhanced.Items.Count > 0) lbEnhanced.SelectedIndex = 0; - bsMiniEnhanced.DataSource = bsEnhanced.Current as EnhancedMiniConfig; - - // only allow new if there are available non-linked 'enhanced format' docversions. - int cntAvailForLinkEnh = 0; - DocVersionInfoList nonenhdvs = DocVersionInfoList.GetNonEnhancedDocVersions(); - foreach (DocVersionInfo nonenhdv in nonenhdvs) - { - if (nonenhdv.VersionID != _DocVersionConfig.MyDocVersion.VersionID) - { - if (((nonenhdv.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds) || - ((nonenhdv.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedDeviations) == E_PurchaseOptions.EnhancedDeviations)) - { - cntAvailForLinkEnh++; - } - } - } - btnNewEnh.Visible = (cntAvailForLinkEnh > 0); - } - } - - void btnEnh_Click(object sender, EventArgs e) - { - if (MessageBox.Show(this, "Are you sure you want to Link Enhanced Document(s) to this Working Draft?", "Add Enhanced Link", MessageBoxButtons.YesNoCancel) == DialogResult.Yes) - { - btnEnhanced.Visible = true; - tiEnhanced.Visible = true; - Button btnEnh = (Button)sender; - btnEnh.Visible = false; - btnEnhanced_Click(sender, e); - } - } - void btnPC_Click(object sender, EventArgs e) - { - if (MessageBox.Show(this, "Are you sure you want to add Applicability to this Working Draft?", "Add Applicability", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop) == DialogResult.Yes) - { - btnApplicability.Visible = true; - tiApplicability.Visible = true; - Button btnPC = (Button)sender; - btnPC.Visible = false; - btnApplicability_Click(sender, e); - } - } - // The following code was added to fix Bug B2013-117 - void ppTxtBxPDFLoc_TextChanged(object sender, EventArgs e) - { - if (_Initializing == false) - _DocVersionConfig.Print_PDFLocation = ppTxtBxPDFLoc.Text; - } - #region General tab - - /// - /// This is the General button used on the button interface design - /// - /// object - /// EventArgs - private void btnGeneral_Click(object sender, EventArgs e) - { - ProcessButtonClick(tiGeneral, btnGeneral); - } - - #endregion - - #region Referenced Objects - - /// - /// This is the Referenced Objects button used on the button interface design - /// - /// object - /// EventArgs - private void btnRefObjs_Click(object sender, EventArgs e) - { - ProcessButtonClick(tiRefObjs, btnRefObjs); - } - - #endregion - - #region Output Settings - - /// - /// This is the Output Settings button used on the button interface design - /// - /// object - /// EventArgs - private void btnOutputSettings_Click(object sender, EventArgs e) - { - ProcessButtonClick(tiOutputSettings, btnOutputSettings); - } - - /// - /// Selection in Pagination combo box changed. - /// - /// object - /// EventArgs - //private void ppCmbxPagination_SelectedValueChanged(object sender, EventArgs e) - //{ - // if (!_Initializing) - // { - // PrintPagination pgtn = (PrintPagination)Enum.Parse(typeof(PrintPagination), _DefaultPagination); - // ProcessCmbxSelectionEnumChanged(ppCmbxPagination, pgtn, ppBtnDefPagination, ppLblPaginationDefault); - // } - //} - - /// - /// Reset to the parent setting. - /// Find the parent setting and assign it to _DocVersionConfig.Print_Pagination. - /// This will force the database to be updated. - /// - /// - /// - //private void ppBtnDefPagination_Click(object sender, EventArgs e) - //{ - // // Get the parent setting - // PrintPagination pgtn = (PrintPagination)Enum.Parse(typeof(PrintPagination), _DefaultPagination); - // // Compare parent setting with current setting - // if (pgtn != _DocVersionConfig.Print_Pagination) - // _DocVersionConfig.Print_Pagination = pgtn; // this will force a database update (write) - // ppCmbxPagination.SelectedIndex = -1; - // //tcpOutputSettings.Focus(); - //} - - /// - /// Selection in Watermark combo box changed. - /// - /// object - /// EventArgs - private void ppCmbxWatermark_SelectedValueChanged(object sender, EventArgs e) - { - if (!_Initializing) - { - PrintWatermark wtr = (PrintWatermark)Enum.Parse(typeof(PrintWatermark), _DefaultWatermark); - ProcessCmbxSelectionEnumChanged(ppCmbxWatermark, wtr, ppBtnDefWatermark, ppLblWatermarkDefault); - } - } - - /// - /// Reset to the parent setting. - /// Find the parent setting and assign it to _DocVersionConfig.Print_Watermark. - /// This will force the database to be updated. - /// - /// - /// - private void ppBtnDefWatermark_Click(object sender, EventArgs e) - { - // Get the parent setting - PrintWatermark wtr = (PrintWatermark)Enum.Parse(typeof(PrintWatermark), _DefaultWatermark); - // Compare parent setting with current setting - if (wtr != _DocVersionConfig.Print_Watermark) - _DocVersionConfig.Print_Watermark = wtr; // this will force a database update (write) - ppCmbxWatermark.SelectedIndex = -1; - //tcpOutputSettings.Focus(); - } - - #endregion - - #region Format Settings - - /// - /// This is the Format Settings button used on the button interface design - /// - /// object - /// EventArgs - private void btnFmtSettings_Click(object sender, EventArgs e) - { - ProcessButtonClick(tiFmtSettings, btnFmtSettings); - // added for code change C2017-004 - select default format in dropdown list - if (_InitialIndex < -1) _InitialIndex = ppCmbxFormat.SelectedIndex; // save the current format selection (happens here when current section is set to the default format) - } - - private void ppBtnDefaultFmt_Click(object sender, EventArgs e) - { - ppCmbxFormat.SelectedIndex = -1; - //tcpFormatSettings.Focus(); - } - - /// - /// If checked, will disable automatic duplexing (ex Foldout Pages) - /// - /// - /// - private void ppChbxDisAutoDuplex_CheckedChanged(object sender, EventArgs e) - { - if (!_Initializing) - { - _DocVersionConfig.Print_DisableDuplex = ppChbxDisAutoDuplex.Checked; - ppBtnDeftDisAutoDuplx.Visible = (_DefaultDisableDuplex != ppChbxDisAutoDuplex.Checked); - ppLblAutoDuplexDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDeftDisAutoDuplx.Visible; - } - - } - - // commented out as part of code change C2017-004. this also makes it consistent with section properties - ///// - ///// Selection in Format combo box changed. - ///// - ///// object - ///// EventArgs - //private void ppCmbxFormat_SelectedValueChanged(object sender, EventArgs e) - //{ - // if (!_Initializing) - // ProcessCmbxSelectedValueChange(ppCmbxFormat, _DefaultFormatName, ppBtnDefaultFmt, ppLblFormatDefault); - //} - - /// - /// Enable or disable the user specified change bar options base on the type - /// of change bar selected. - /// - private void setEnabledUserSpecifiedChgBarCombos(PrintChangeBar pcb) - { - //ppGpbxUserSpecCB.Enabled = - //ppCmbxChgBarPos.Enabled = - //ppCmbxChgBarTxtType.Enabled = - //ppBtnDefaultCbPos.Enabled = - //ppBtnDefCbTxtTyp.Enabled = (ppCmbxChangeBarType.SelectedValue != null && - //ppCmbxChangeBarType.SelectedValue.Equals(DocVersionConfig.PrintChangeBar.WithUserSpecified)) || - //(ppCmbxChangeBarType.SelectedValue == null && pcb.Equals(DocVersionConfig.PrintChangeBar.WithUserSpecified)); - - ppGpbxUserSpecCB.Enabled = (ppCmbxChangeBarType.SelectedValue != null && - ppCmbxChangeBarType.SelectedValue.Equals(PrintChangeBar.WithUserSpecified)) || - (ppCmbxChangeBarType.SelectedValue == null && pcb.Equals(PrintChangeBar.WithUserSpecified)); - - } - - /// - /// Selection in Change Bar combo box changed. - /// - /// object - /// EventArgs - private void ppCmbxChangeBarType_SelectedValueChanged(object sender, EventArgs e) - { - if (!_Initializing) - { - PrintChangeBar pcb = (PrintChangeBar)Enum.Parse(typeof(PrintChangeBar), _DefaultChgBarType); - ProcessCmbxSelectionEnumChanged(ppCmbxChangeBarType, pcb, ppBtnDefaultChgBar, ppLblChangeBarTypeDefault); - setEnabledUserSpecifiedChgBarCombos(pcb); - } - } - - /// - /// Reset to the parent setting. - /// Find the parent setting and assign it to _DocVersionConfig.PrintChangeBar. - /// This will force the database to be updated. - /// - /// - /// - private void ppBtnDefaultChgBar_Click(object sender, EventArgs e) - { - // Get the parent setting - PrintChangeBar pcb = (PrintChangeBar)Enum.Parse(typeof(PrintChangeBar), _DefaultChgBarType); - // Compare parent setting with current setting - if (pcb != _DocVersionConfig.Print_ChangeBar) - _DocVersionConfig.Print_ChangeBar = pcb; // this will force a database update (write) - ppCmbxChangeBarType.SelectedIndex = -1; //reset combo box to the default Change Bar setting - //tcpFormatSettings.Focus(); - } - - /// - /// Selection in Change Bar Position combo box changed. - /// - /// object - /// EventArgs - private void ppCmbxChgBarPos_SelectedValueChanged(object sender, EventArgs e) - { - if (!_Initializing) - { - PrintChangeBarLoc cbl = (PrintChangeBarLoc)Enum.Parse(typeof(PrintChangeBarLoc), _DefaultChgBarLoc); - ProcessCmbxSelectionEnumChanged(ppCmbxChgBarPos, cbl, ppBtnDefaultCbPos, ppLblChgBarPosDefault); - } - } - - /// - /// Reset to the parent setting. - /// Find the parent setting and assign it to _DocVersionConfig.Print_ChangeBarLoc. - /// This will force the database to be updated. - /// - /// - /// - private void ppBtnDefaultCbPos_Click(object sender, EventArgs e) - { - // Get the parent setting - PrintChangeBarLoc cbl = (PrintChangeBarLoc)Enum.Parse(typeof(PrintChangeBarLoc), _DefaultChgBarLoc); - // Compare parent setting with current setting - if (cbl != _DocVersionConfig.Print_ChangeBarLoc) - _DocVersionConfig.Print_ChangeBarLoc = cbl; // this will force a database update (write) - ppCmbxChgBarPos.SelectedIndex = -1; - //tcpFormatSettings.Focus(); - } - - /// - /// Enable or disable the user specified change bar text based on the selected - /// change bar text type (selected in the user specific change bar grouping) - /// - private void setEnabledUserSpecifiedChgBarText() - { - //ppGpbxUserSpecTxt.Enabled = - //ppTxbxChangeBarUserMsgOne.Enabled = - //ppTxbxChangeBarUserMsgTwo.Enabled = - //ppBtnDefCbTxt1.Enabled = - //ppBtnDefCbTxt2.Enabled = (ppCmbxChgBarTxtType.SelectedValue != null && - //ppCmbxChgBarTxtType.SelectedValue.Equals(DocVersionConfig.PrintChangeBarText.UserDef)); - - //string decUserDef = EnumDescConverter.GetEnumDescription(DocVersionConfig.PrintChangeBarText.UserDef); - - // This string is used to check against our default setting to see if User Defined Changebar Text is active - string decUserDef = PrintChangeBarText.UserDef.ToString(); - - ppGpbxUserSpecTxt.Enabled = (ppCmbxChgBarTxtType.SelectedValue != null && - ppCmbxChgBarTxtType.SelectedValue.Equals(PrintChangeBarText.UserDef)) || - (ppCmbxChgBarTxtType.SelectedIndex == -1 && _DefaultChgBarText.Equals(decUserDef)); - - } - - /// - /// Selection in Change Bar Text Type combo box changed. - /// - /// object - /// EventArgs - private void ppCmbxChgBarTxtType_SelectedValueChanged(object sender, EventArgs e) - { - if (!_Initializing) - { - PrintChangeBarText cbt = (PrintChangeBarText)Enum.Parse(typeof(PrintChangeBarText), _DefaultChgBarText); - ProcessCmbxSelectionEnumChanged(ppCmbxChgBarTxtType, cbt, ppBtnDefCbTxtTyp, ppLblChgBarTxtTypeDefault); - setEnabledUserSpecifiedChgBarText(); - } - } - - /// - /// Reset to the parent setting. - /// Find the parent setting and assign it to _DocVersionConfig.Print_ChangeBarText. - /// This will force the database to be updated. - /// - /// - /// - private void ppBtnDefCbTxtTyp_Click(object sender, EventArgs e) - { - // Get the parent setting - PrintChangeBarText cbt = (PrintChangeBarText)Enum.Parse(typeof(PrintChangeBarText), _DefaultChgBarText); - // Compare parent setting with current setting - if (cbt != _DocVersionConfig.Print_ChangeBarText) - _DocVersionConfig.Print_ChangeBarText = cbt; // this will force a database update (write) - ppCmbxChgBarTxtType.SelectedIndex = -1; - //tcpFormatSettings.Focus(); - } - - /// - /// Selection in Change Bar User Message One text changed. - /// - /// object - /// EventArgs - private void ppTxbxChangeBarUserMsgOne_TextChanged(object sender, EventArgs e) - { - ppBtnDefCbTxt1.Visible = ((ppTxbxChangeBarUserMsgOne.Text != null) && !ppTxbxChangeBarUserMsgOne.Text.Equals(_DefaultChgBarUsrMsg1)); - ppLblChgBarUserMsgOneDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefCbTxt1.Visible; - } - - /// - /// Selection in Change Bar User Message Two text changed. - /// - /// object - /// EventArgs - private void ppTxbxChangeBarUserMsgTwo_TextChanged(object sender, EventArgs e) - { - ppBtnDefCbTxt2.Visible = ((ppTxbxChangeBarUserMsgTwo.Text != null) && !ppTxbxChangeBarUserMsgTwo.Text.Equals(_DefaultChgBarUsrMsg2)); - ppLblChgBarUserMsgTwoDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefCbTxt2.Visible; - } - - #endregion - - #region Library Documents - - /// - /// This is the Library Documents button used on the button interface design - /// - /// object - /// EventArgs - private void btnLibDocs_Click(object sender, EventArgs e) - { - ProcessButtonClick(tiLibDocs, btnLibDocs); - } - - #endregion - - #region Generic functions used on this property page - - /// - /// This is a generic Enter Event function for use with all of the property page tabs. - /// Found that the visiblity value of buttons is not recorded until the property page in which it resides is diplayed. - /// Thus we need to call defaultSettingVisiblity() to check and set visiblity states. - /// - /// type object - /// type EventArgs - private void tabpage_Enter(object sender, EventArgs e) - { - // Show or hide the labels containing the default values - //if (!_Initializing) - defaultSettingsVisiblity(); - } - - /// - /// Determines what labels (showing default values) are visable on the property pages - /// - private void defaultSettingsVisiblity() - { - ppLblDefSettingsInfo.Visible = ppCbShwDefSettings.Checked; - - ppLblChgBarUserMsgOneDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefCbTxt1.Visible; - ppLblChgBarUserMsgTwoDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefCbTxt2.Visible; - - ppLblFormatDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultFmt.Visible; - ppLblChangeBarTypeDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultChgBar.Visible; - ppLblChgBarPosDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultCbPos.Visible; - ppLblChgBarTxtTypeDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefCbTxtTyp.Visible; - //ppLblPaginationDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefPagination.Visible; - ppLblWatermarkDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefWatermark.Visible; - ppLblAutoDuplexDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDeftDisAutoDuplx.Visible; - } - - /// - /// For the Button Interface property page style, when a button is selected (pressed), - /// it will remain in the checked state even when a different button is selected. Thus - /// we must clear the checked state of the buttons when a button is selected, then set - /// the newly selected button's state to checked. - /// - private void ClearAllCheckedButtons() - { - btnGeneral.Checked = false; - btnRefObjs.Checked = false; - btnOutputSettings.Checked = false; - btnFmtSettings.Checked = false; - btnLibDocs.Checked = false; - btnApplicability.Checked = false; - } - - /// - /// Select the corresponding tab and set the button's state to checked - /// - /// Property Page Tab - /// Corresponding Property Page Button - private void ProcessButtonClick(TabItem tab, ButtonX button) - { - ClearAllCheckedButtons(); - tcVersions.SelectedTab = tab; - button.Checked = true; - } - - /// - /// Process a change in the enum combo box selection - /// - /// Combo Box Name - /// the default enum value - /// button to reset to default value - /// label containing the default - private void ProcessCmbxSelectionEnumChanged(ComboBoxEx cmbx, object enumval, ButtonX button, Label deflabel) - { - if ((cmbx.SelectedIndex != -1) && - cmbx.SelectedValue.Equals(enumval)) - { - _Initializing = true; - button.Visible = true; - button.Focus(); - button.PerformClick(); - cmbx.SelectedIndex = -1; // This will hide the Default button - _Initializing = false; - } - button.Visible = (cmbx.SelectedValue != null); - deflabel.Visible = ppCbShwDefSettings.Checked && button.Visible; - } - - /// - /// Process a change in the combo box selection - /// - /// Combo Box Name - /// string containing default text - /// button to reset to default value - /// label containing the default - private void ProcessCmbxSelectedValueChange(ComboBoxEx cmbx, string defstr, ButtonX button, Label deflabel) - { - if ((cmbx.SelectedIndex != -1) && defstr != null && defstr.Equals(cmbx.SelectedValue)) - { - button.Visible = true; - button.Focus(); - button.PerformClick(); - } - button.Visible = cmbx.SelectedValue != null; - deflabel.Visible = ppCbShwDefSettings.Checked && button.Visible; - } - /// - /// Set the watermark and default label - /// - /// The default text - /// Label that displays the current default when view defaults is set - /// Combo box with a watermark property - private static void SetupDefault(string defaultText, Label lbl, ComboBoxEx cmbo) - { - if (defaultText != null && !(defaultText.Equals(""))) - { - string deftext = string.Format("{0}", defaultText); - lbl.Text = deftext; - cmbo.WatermarkText = deftext; - } - } - - #endregion - - private void btnRoDbProperties_Click(object sender, EventArgs e) - { - frmRODbProperties dlgROProperties = new frmRODbProperties(_DocVersionConfig.MyDocVersion, SelectedROFst == null ? null : SelectedROFst.MyRODb); - dlgROProperties.ParentLocation = Location; - if (dlgROProperties.ShowDialog() == DialogResult.OK) - { - tbRoDb.Text = string.Format("{0} ({1})", SelectedROFst.MyRODb.ROName, SelectedROFst.MyRODb.FolderPath); - ppBtnUpRoVals.Enabled = _DocVersionConfig.MyDocVersion.DocVersionAssociations != null && _DocVersionConfig.MyDocVersion.DocVersionAssociations.Count > 0; // only allow update if association - } - } - - private void ppBtnUpRoVals_Click(object sender, EventArgs e) - { - InitialProgressBarMessage = "Updating ROs"; - // use rodb directory path of the first rofst for the this document version. Bring up a file - // selection dialog starting with this path. The user can select another path. - // RHM question - we talked about just using the current path, but what is the current path when - // a docversion can have more than one rofst (for now, just use first?) - should I bring up a dialog? - if (_DocVersionConfig.MyDocVersion.DocVersionAssociations.Count < 1) - { - MessageBox.Show("Error Updating ro.fst. No associated ro.fst"); - return; - } - foreach (DocVersionAssociation dva in _DocVersionConfig.MyDocVersion.DocVersionAssociations) - { - RODbInfo rdi = RODbInfo.Get(dva.ROFst_RODbID); - - string rofstPath = rdi.FolderPath + @"\ro.fst"; - if (!File.Exists(rofstPath)) - { - FinalProgressBarMessage = "No existing RO.FST"; - MessageBox.Show("No existing ro.fst in path " + rdi.FolderPath + ". Check for invalid path"); - break; - } - FileInfo fiRofst = new FileInfo(rofstPath); - if (SelectedROFst.DTS == fiRofst.LastWriteTimeUtc) - { - FinalProgressBarMessage = "RO.FST up to date"; - MessageBox.Show("ro.fst files are same for path " + rdi.FolderPath + ", import of that ro.fst will not be done"); - break; - } - if (SelectedROFst.DTS > fiRofst.LastWriteTimeUtc) - { - FinalProgressBarMessage = "RO.FST is older"; - MessageBox.Show("Cannot copy older ro.fst from " + rdi.FolderPath + ", import of that ro.fst will not be done"); - break; - } - Cursor = Cursors.WaitCursor; - SelectedROFst.ROTableUpdate += new ROFstInfoROTableUpdateEvent(roFstInfo_ROTableUpdate); - ROFst newrofst = ROFstInfo.RefreshROFst(rdi, dva, _DocVersionConfig.MyDocVersion, SelectedROFst, DoProgressBarRefresh, null); - SelectedROFst.ROTableUpdate -= new ROFstInfoROTableUpdateEvent(roFstInfo_ROTableUpdate); - ppBtnUpRoVals.Enabled = _DocVersionConfig.MyDocVersion.DocVersionAssociations != null && _DocVersionConfig.MyDocVersion.DocVersionAssociations.Count > 0; - Cursor = Cursors.Default; - } - FinalProgressBarMessage = "ROs values updated"; - } - private ProgressBarItem _ProgressBar = null; - public ProgressBarItem ProgressBar - { - get { return _ProgressBar; } - set { _ProgressBar = value; } - } - private void DoProgressBarRefresh(int value, int max, string text) - { - if (ProgressBar == null) return; - ProgressBar.Maximum = max; - ProgressBar.Value = value; - ProgressBar.Text = text; - Application.DoEvents(); - } - private string InitialProgressBarMessage - { - set - { - if (ProgressBar == null) return; - ProgressBar.Value = 0; - ProgressBar.Maximum = 100; - ProgressBar.Text = value; - Application.DoEvents(); - } - } - private string FinalProgressBarMessage - { - set - { - if (ProgressBar == null) return; - ProgressBar.Maximum = 100; - ProgressBar.Value = 100; - ProgressBar.Text = value; - Application.DoEvents(); - } - } - public List roFstInfo_ROTableUpdate(object sender, ROFstInfoROTableUpdateEventArgs args) - { - string xml = null; - string srchtxt = null; - using (VlnFlexGrid myGrid = new VlnFlexGrid()) - { - using (StringReader sr = new StringReader(args.OldGridXml)) - { - myGrid.ReadXml(sr); - myGrid.KeyActionTab = C1.Win.C1FlexGrid.KeyActionEnum.MoveAcross; - sr.Close(); - } - string roid = myGrid.ROID; - int rodbid = myGrid.RODbId; - Font GridFont = myGrid.Font; - myGrid.Clear(); - myGrid.ParseTableFromText(args.ROText, GridLinePattern.Single); - myGrid.AutoSizeCols(); - myGrid.AutoSizeRows(); - myGrid.MakeRTFcells(); - myGrid.RODbId = rodbid; - myGrid.ROID = roid; - myGrid.IsRoTable = true; - using (StringWriter sw = new StringWriter()) - { - myGrid.WriteXml(sw); - xml = sw.GetStringBuilder().ToString(); - sw.Close(); - } - srchtxt = myGrid.GetSearchableText(); - } - List retlist = new List(); - retlist.Add(srchtxt); - retlist.Add(xml); - return retlist; - } - private void ppBtnResetRoVals_Click(object sender, EventArgs e) - { - // This will not be supported in the first release. A discussion was held on 1/6/09 with MRC, JSJ, RHM & - // KBR & it was decided that we'd wait to see if users end up needing this. It can be done by going - // into the sql database and modify/delete records if needed. - } - - private void cmbRoDb_SelectedIndexChanged(object sender, EventArgs e) - { - // The only way that a selected index can change on the rodb combo box is if there was no rofst - // to docversion association. If a selection is made, make that association and then change the - // combo box to a non-editable text box with button becoming a properties rather than browse. - if (_Initializing) return; - // add the rofst for the selected rodb (note that it may already exist, and will use the current - // one. - // get the rodb from the selection - and then do an 'update rofst'... - RODbInfoList rdil = RODbInfoList.Get(); - RODbInfo rdi = rdil[cmbRoDb.SelectedIndex]; - ROFstInfo fst=null; - foreach(ROFstInfo inf in rdi.RODbROFsts) - if(fst == null || inf.ROFstID > fst.ROFstID) - fst = inf; - if (fst != null) - { - using(ROFst fst1 = fst.Get()) - _DocVersionConfig.MyDocVersion.DocVersionAssociations.Add(fst1); - cmbRoDb.Visible = ppBtnRoDbBrowse.Visible = false; - tbRoDb.Visible = btnRoDbProperties.Visible = true; - tbRoDb.Text = string.Format("{0} ({1})", fst.MyRODb.ROName, fst.MyRODb.FolderPath); - - } - else - { - ROFst tmp = ROFstInfo.AddRoFst(rdi, _DocVersionConfig.MyDocVersion, DoProgressBarRefresh); // RHM Needs To Include Delegate - if (tmp == null) - { - MessageBox.Show("Invalid ro fst directory, use the Property dialog to fix directory path to ro.fst."); - frmRODbProperties dlgROProperties = new frmRODbProperties(_DocVersionConfig.MyDocVersion, rdi); - dlgROProperties.ProgressBar = ProgressBar; - if (dlgROProperties.ShowDialog() == DialogResult.OK) - { - tbRoDb.Text = string.Format("{0} ({1})", SelectedROFst.MyRODb.ROName, SelectedROFst.MyRODb.FolderPath); - ppBtnUpRoVals.Enabled = _DocVersionConfig.MyDocVersion.DocVersionAssociations != null && _DocVersionConfig.MyDocVersion.DocVersionAssociations.Count > 0; // only allow update if association - } - else - return; - } - cmbRoDb.Visible = ppBtnRoDbBrowse.Visible = false; - tbRoDb.Visible = btnRoDbProperties.Visible = true; - tbRoDb.Text = string.Format("{0} ({1})", tmp.MyRODb.ROName, tmp.MyRODb.FolderPath); - } - } - - private void ppBtnRoDbBrowse_Click(object sender, EventArgs e) - { - frmRODbProperties dlgROProperties = new frmRODbProperties(_DocVersionConfig.MyDocVersion, SelectedROFst == null ? null : SelectedROFst.MyRODb); - dlgROProperties.ParentLocation = Location; - // if a user has entered a valid rodb, then this docversion will be conntected to it - change - // to a non-editable text box and the button becomes a properties button rather than browse. - if (dlgROProperties.ShowDialog() == DialogResult.OK) - { - cmbRoDb.Items.Clear(); - _DocVersionConfig.MyDocVersion.Reset_DocVersionAssociations(); - if (_DocVersionConfig.MyDocVersion.DocVersionAssociations != null && _DocVersionConfig.MyDocVersion.DocVersionAssociationCount > 0) - { - cmbRoDb.Visible = ppBtnRoDbBrowse.Visible = false; - tbRoDb.Visible = btnRoDbProperties.Visible = true; - tbRoDb.Text = string.Format("{0} ({1})", SelectedROFst.MyRODb.ROName, SelectedROFst.MyRODb.FolderPath); - return; - } - RODbInfoList.Reset(); - int selindx = -1; - int myrodbid = (SelectedROFst == null) ? -1 : SelectedROFst.RODbID; - foreach (RODbInfo rdi in RODbInfoList.Get()) - { - int i = cmbRoDb.Items.Add(rdi.ROName + " (" + rdi.FolderPath + ")"); - if (rdi.RODbID == myrodbid) selindx = i; - } - if (cmbRoDb.Items.Count > 0) cmbRoDb.SelectedIndex = selindx; - } - } - - private void ppBtnPDFLoc_Click(object sender, EventArgs e) - { - PDFLocationBrowserDialog.SelectedPath = ppTxtBxPDFLoc.Text; - DialogResult dr = PDFLocationBrowserDialog.ShowDialog(); - if (dr == DialogResult.OK) - ppTxtBxPDFLoc.Text = PDFLocationBrowserDialog.SelectedPath; - } - - private void ppBtnDefCbTxt1_Click(object sender, EventArgs e) - { - // Compare default setting with current setting - // Reset with the default and hide the default button and label - if (_DefaultChgBarUsrMsg1 != _DocVersionConfig.Print_UserCBMess1) - { - _DocVersionConfig.Print_UserCBMess1 = _DefaultChgBarUsrMsg1; - ppLblChgBarUserMsgOneDefault.Visible = false; - ppBtnDefCbTxt1.Visible = false; - //tcpFormatSettings.Focus(); - } - } - - private void ppBtnDefCbTxt2_Click(object sender, EventArgs e) - { - // Compare default setting with current setting - // Reset with the default and hide the default button and label - if (_DefaultChgBarUsrMsg2 != _DocVersionConfig.Print_UserCBMess2) - { - _DocVersionConfig.Print_UserCBMess2 = _DefaultChgBarUsrMsg2; - ppLblChgBarUserMsgTwoDefault.Visible = false; - ppBtnDefCbTxt2.Visible = false; - //tcpFormatSettings.Focus(); - } - } - - private void ppBtnDeftDisAutoDuplx_Click(object sender, EventArgs e) - { - ppChbxDisAutoDuplex.Checked = _DefaultDisableDuplex; - _DocVersionConfig.Print_DisableDuplex = ppChbxDisAutoDuplex.Checked; - ppBtnDeftDisAutoDuplx.Visible = false; - ppLblAutoDuplexDefault.Visible = false; - //tcpOutputSettings.Focus(); - } - - private void frmVersionsProperties_Shown(object sender, EventArgs e) - { - ppRTxtName.Focus(); - } - - private void ppRTxtName_Leave(object sender, EventArgs e) - { - if (ppRTxtName.Text == null || ppRTxtName.Text == "") - { - MessageBox.Show("Cannot have a blank Name."); - return; - } - } - - private void btnApplicability_Click(object sender, EventArgs e) - { - ProcessButtonClick(tiApplicability, btnApplicability); - } - - private void lbApplicabilities_SelectedIndexChanged(object sender, EventArgs e) - { - if (lbApplicabilities.SelectedIndex > -1) - { - bsMiniApple.DataSource = bsApples.Current as MiniConfig; - btnDelApple.Enabled = true; - } - - } - private void btnNewApple_Click(object sender, EventArgs e) - { - MiniConfig cfg = new MiniConfig(); - cfg.Name = "New Applicability"; - if (_Apples == null) - _Apples = new List(); - _Apples.Add(cfg); - bsApples.DataSource = null; - bsApples.DataSource = _Apples; - lbApplicabilities.SelectedItem = cfg; - } - private void btnDelApple_Click(object sender, EventArgs e) - { - MiniConfig cfg = bsApples.Current as MiniConfig; - if (MessageBox.Show(string.Format("Are you sure you want to delete {0}", cfg.Name), "Confirm Delete", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) - { - if (_DeletedApples == null) - _DeletedApples = new List(); - _DeletedApples.Add(cfg); - _Apples.Remove(cfg); - bsApples.DataSource = null; - bsApples.DataSource = _Apples; - } - } - - private void btnPhoneList_Click(object sender, EventArgs e) - { - dlgPhoneList dlgPL = new dlgPhoneList(_DocVersionConfig); - dlgPL.ShowDialog(); - } - - private void btnEnhanced_Click(object sender, EventArgs e) - { - ProcessButtonClick(tiEnhanced, btnEnhanced); - } - - private void lbEnhanced_SelectedIndexChanged(object sender, EventArgs e) - { - if (!_Initializing && lbEnhanced.SelectedIndex > -1 && !doingNew) - { - bsMiniEnhanced.DataSource = bsEnhanced.Current as EnhancedMiniConfig; - if (cbxEnhVersions.Items.Count >= lbEnhanced.Items.Count) - cbxEnhVersions.SelectedIndex = lbEnhanced.SelectedIndex; - } - } - private List NewEnhVersions = new List(); - private bool doingNew = false; - private void btnNewEnh_Click(object sender, EventArgs e) - { - _Initializing = true; - doingNew = true; - // the 'New' button is only enabled for Source documents. - EnhancedMiniConfig cfg = new EnhancedMiniConfig(); - cfg.Name = "New Enhanced"; - // need to have a unique number for this enhanced link, find largest and then increment by 1. - int maxtype = -1; - if (_DocVersionConfig.MyEnhancedDocuments != null && _DocVersionConfig.MyEnhancedDocuments.Count > 0) - { - foreach (DVEnhancedDocument dve in _DocVersionConfig.MyEnhancedDocuments) - { - maxtype = Math.Max(maxtype, dve.Type); - } - } - if (maxtype < 0) maxtype = 1; - else maxtype++; - cfg.Type = maxtype.ToString(); - - if (_Enhanced == null) - _Enhanced = new List(); - _Enhanced.Add(cfg); - bsEnhanced.DataSource = null; - bsEnhanced.DataSource = _Enhanced; - cbxEnhVersions.Items.Clear(); - NewEnhVersions.Clear(); - DocVersionInfoList nonenhdvs = DocVersionInfoList.GetNonEnhancedDocVersions(); // this is a list of docversions that have no 'Enhanced' in config data - foreach (DocVersionInfo nonenhdv in nonenhdvs) - { - if (nonenhdv.VersionID != _DocVersionConfig.MyDocVersion.VersionID) - { - if (((nonenhdv.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds) || - ((nonenhdv.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedDeviations) == E_PurchaseOptions.EnhancedDeviations)) - { - NewEnhVersions.Add(nonenhdv); - cbxEnhVersions.Items.Add(nonenhdv.SearchDVPath); - } - } - } - if (cbxEnhVersions.Items.Count > 0) - { - cbxEnhVersions.Enabled = true; - cbxEnhVersions.SelectedIndex = 0; - } - else - cbxEnhVersions.Enabled = false; - bsMiniEnhanced.DataSource = cfg; - lbEnhanced.SelectedItem = cfg; - tbEnhType.Enabled = false; - btnNewEnh.Enabled = false; // for now, only do 1 at a time. - _Initializing = false; - } - private bool _EnhNeedToUnlink = false; - private void btnUnlinkDocVersion_Click(object sender, EventArgs e) - { - if (MessageBox.Show(this, "Are you sure you want to Unlink? Your documents will no longer link to Enhanced. NOTE that this processing occurs when 'OK' button is selected!", "Unlink", MessageBoxButtons.YesNo) == DialogResult.Yes) - { - _EnhNeedToUnlink = true; // do the unlink when 'OK' button is selected - } - } - - private void ppCmbxFormat_DropDown(object sender, EventArgs e) - { - _Initializing = true; - // C2017-004 - if using the default format, position the dropdown to the default format - if (ppCmbxFormat.SelectedIndex == -1) - ppCmbxFormat.SelectedValue = _DefaultFormatName; - _Initializing = false; - } - - private void ppCmbxFormat_DropDownClosed(object sender, EventArgs e) - { - // upon exit of the dropdown if the default format is selected - click the Default button - if ((string)(ppCmbxFormat.SelectedValue) == _DefaultFormatName) - { - ppBtnDefaultFmt.PerformClick(); - ppCmbxChangeBarType.Focus(); - } - } - - // added as part of code change C2017-004. this also makes it consistent with section properties - int _InitialIndex = -2; - private void ppCmbxFormat_SelectedIndexChanged(object sender, EventArgs e) - { - if (_Initializing) - { - // determine if the default button and the default description text should visable - ppBtnDefaultFmt.Visible = !(ppCmbxFormat.SelectedValue == null || ppCmbxFormat.SelectedIndex == -1); - ppLblFormatDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultFmt.Visible; - return; - } - if (_InitialIndex < -1) _InitialIndex = ppCmbxFormat.SelectedIndex; // save the current format selection (happens here when current section format is not the default section) - if ((ppCmbxFormat.SelectedIndex != -1) && _DefaultFormatName != null && _DefaultFormatName.Equals(ppCmbxFormat.SelectedValue)) - { - ppBtnDefaultFmt.Focus(); - ppBtnDefaultFmt.PerformClick(); - } - // determine if the default button and the default description text should visable - ppBtnDefaultFmt.Visible = !(ppCmbxFormat.SelectedValue == null || ppCmbxFormat.SelectedIndex == -1); - ppLblFormatDefault.Visible = ppCbShwDefSettings.Checked && ppBtnDefaultFmt.Visible; - } - } - [XmlRoot("Enhanced")] - public class EnhancedMiniConfig - { - private static int lastindex = 0; - private bool _isDeleted; - [XmlIgnore] - public bool IsDeleted - { - get { return _isDeleted; } - set { _isDeleted = value; } - } - private bool _isDirty; - [XmlIgnore] - public bool IsDirty - { - get { return _isDirty; } - set { _isDirty = value; } - } - private int _index; - [XmlAttribute("index")] - public int Index - { - get { return _index; } - set { _index = value; IsDirty = true; } - } - private int _versionID; - [XmlAttribute("VersionID")] - public int VersionID - { - get { return _versionID; } - set { _versionID = value; IsDirty = true; } - } - private string _versionPathName; - [XmlAttribute("VersionPathName")] - public string VersionPathName - { - get { return _versionPathName; } - set { _versionPathName = value; IsDirty = true; } - } - private string _name; - [XmlAttribute("Name")] - public string Name - { - get { return _name; } - set { _name = value; IsDirty = true; } - } - private string _type; - [XmlAttribute("Type")] - public string Type - { - get { return _type; } - set { _type = value; IsDirty = true; } - } - private string _pdfToken; - [XmlAttribute("PdfToken")] - public string PdfToken - { - get { return _pdfToken; } - set { _pdfToken = value; IsDirty = true; } - } - private string _pdfXOffset; - [XmlAttribute("PdfXOffset")] - public string PdfXOffset - { - get { return _pdfXOffset; } - set { _pdfXOffset = value; IsDirty = true; } - } - public EnhancedMiniConfig() - { - _index = --lastindex; - _versionID = -1; - _versionPathName = string.Empty; - _name = string.Empty; - _type = string.Empty; - _pdfToken = string.Empty; - _pdfXOffset = string.Empty; - _isDirty = false; - } - public EnhancedMiniConfig(int index, int versionid, string id, string versionPathName, string name, string type, string pdftoken, string pdfxoffset) - { - _index = index; - _versionID = versionid; - _versionPathName = versionPathName; - _name = name; - _type = type; - _pdfToken = pdftoken; - _pdfXOffset = pdfxoffset; - _isDirty = false; - } - public override string ToString() - { - return Name; - } - } - [XmlRoot("Slave")] - public class MiniConfig - { - private static int lastindex = 0; - private bool _isDeleted; - [XmlIgnore] - public bool IsDeleted - { - get { return _isDeleted; } - set { _isDeleted = value; } - } - private bool _isDirty; - [XmlIgnore] - public bool IsDirty - { - get { return _isDirty; } - set { _isDirty = value; } - } - private int _index; - [XmlAttribute("index")] - public int Index - { - get { return _index; } - set { _index = value; IsDirty = true; } - } - private string _iD; - [XmlAttribute("ID")] - public string ID - { - get { return _iD; } - set { _iD = value; IsDirty = true; } - } - private string _name; - [XmlAttribute("Name")] - public string Name - { - get { return _name; } - set { _name = value; IsDirty = true; } - } - private string _number; - [XmlAttribute("Number")] - public string Number - { - get { return _number; } - set { _number = value; IsDirty = true; } - } - private string _text; - [XmlAttribute("Text")] - public string Text - { - get { return _text; } - set { _text = value; IsDirty = true; } - } - private string _procedureNumber; - [XmlAttribute("ProcedureNumber")] - public string ProcedureNumber - { - get { return _procedureNumber; } - set { _procedureNumber = value; IsDirty = true; } - } - private string _setID; - [XmlAttribute("SetID")] - public string SetID - { - get { return _setID; } - set { _setID = value; IsDirty = true; } - } - private string _setName; - [XmlAttribute("SetName")] - public string SetName - { - get { return _setName; } - set { _setName = value; IsDirty = true; } - } - private string _otherID; - [XmlAttribute("OtherID")] - public string OtherID - { - get { return _otherID; } - set { _otherID = value; IsDirty = true; } - } - private string _otherName; - [XmlAttribute("OtherName")] - public string OtherName - { - get { return _otherName; } - set { _otherName = value; IsDirty = true; } - } - private string _otherNumber; - [XmlAttribute("OtherNumber")] - public string OtherNumber - { - get { return _otherNumber; } - set { _otherNumber = value; IsDirty = true; } - } - private string _otherText; - [XmlAttribute("OyherText")] - public string OtherText - { - get { return _otherText; } - set { _otherText = value; IsDirty = true; } - } - public MiniConfig() - { - _index = --lastindex; - _iD = string.Empty; - _name = string.Empty; - _number = string.Empty; - _text = string.Empty; - _procedureNumber = string.Empty; - _setID = string.Empty; - _setName = string.Empty; - _otherID = string.Empty; - _otherName = string.Empty; - _otherNumber = string.Empty; - _otherText = string.Empty; - _isDirty = false; - } - public MiniConfig(int index, string id, string name, string number, string text, string procedurenumber, string setid, string setname, string otherid, string othername, string othernumber, string othertext) - { - _index = index; - _iD = id; - _name = name; - _number = number; - _text = text; - _procedureNumber = procedurenumber; - _setID = setid; - _setName = setname; - _otherID = otherid; - _otherName = othername; - _otherNumber = othernumber; - _otherText = othertext; - _isDirty = false; - } - public override string ToString() - { - return Name; - } - public string MyXml - { - get { return GenericSerializer.StringSerialize(this); } - } - //#region XML Serializer Namespaces - //private XmlSerializerNamespaces _Namespaces = null; - //[XmlNamespaceDeclarations] - //public XmlSerializerNamespaces Namespaces - //{ - // get - // { - // if (_Namespaces == null) - // { - // _Namespaces = new XmlSerializerNamespaces(); - // } - // return _Namespaces; - // } - // set { _Namespaces = value; } - //} - //#endregion - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS User Interface_2017Aug01_1458.7z b/PROMS/VEPROMS User Interface_2017Aug01_1458.7z deleted file mode 100644 index ad02686a..00000000 Binary files a/PROMS/VEPROMS User Interface_2017Aug01_1458.7z and /dev/null differ diff --git a/PROMS/VEPROMS User Interface_2017Jul31_1050.7z b/PROMS/VEPROMS User Interface_2017Jul31_1050.7z deleted file mode 100644 index d71e874c..00000000 Binary files a/PROMS/VEPROMS User Interface_2017Jul31_1050.7z and /dev/null differ diff --git a/PROMS/VEPROMS.CSLA.Library/Config/AssocConfig - Copy (2).cs b/PROMS/VEPROMS.CSLA.Library/Config/AssocConfig - Copy (2).cs deleted file mode 100644 index bc0b72dc..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Config/AssocConfig - Copy (2).cs +++ /dev/null @@ -1,120 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; - -namespace VEPROMS.CSLA.Library -{ - [Serializable] - [TypeConverter(typeof(ExpandableObjectConverter))] - public class AssociationConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged - { - #region DynamicTypeDescriptor - internal override bool IsReadOnly - { - get { return _Association == null; } - } - #endregion - #region XML - private XMLProperties _Xp; - private XMLProperties Xp - { - get { return _Xp; } - } - #endregion - #region Constructors - private Association _Association; - public AssociationConfig(Association association) - { - _Association = association; - string xml = association.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - } - private AssociationInfo _AssociationInfo; - public AssociationConfig(AssociationInfo association) - { - _AssociationInfo = association; - string xml = association.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - } - public AssociationConfig(string xml) - { - _Xp = new XMLProperties(xml); - } - public AssociationConfig() - { - string xml = ""; - _Xp = new XMLProperties(xml); - } - internal string GetValue(string group, string item) - { - return _Xp[group, item]; - } - #endregion - public Association MyAssociation - { get { return _Association; } } - #region RODefaults // From proc.ini - [Category("Referenced Objects")] - [DisplayName("Default RO Prefix")] - [RefreshProperties(RefreshProperties.All)] - [Description("Setpoint Prefix")] - public string RODefaults_setpointprefix - { - get - { - string s = _Xp["RODefaults", "Setpoint"];// get the saved value - return s; - } - set - { - _Xp["RODefaults", "Setpoint"] = value; // save selected value - OnPropertyChanged("RODefaults_setpointprefix"); - } - } - [Category("Referenced Objects")] - [DisplayName("Default Graphics Prefix")] - [RefreshProperties(RefreshProperties.All)] - [Description("Graphics Prefix")] - public string RODefaults_graphicsprefix - { - get - { - string s = _Xp["RODefaults", "Graphics"];// get the saved value - return s; - } - set - { - _Xp["RODefaults", "Graphics"] = value; // save selected value - } - } - #endregion - #region ROUpdate - [Category("RO Update")] - [DisplayName("Last Completed")] - [RefreshProperties(RefreshProperties.All)] - [Description("Last RO Update Completed")] - public string ROUpdate_LastCompleted - { - get - { - string s = _Xp["ROUpdate", "LastCompleted"];// get the saved value - return s; - } - set - { - _Xp["ROUpdate", "LastCompleted"] = value; // save selected value - } - } - #endregion // ROUpdate - #region ToString - public override string ToString() - { - string s = _Xp.ToString(); - if (s == "" || s == "") return string.Empty; - return s; - } - #endregion - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Config/AssocConfig - Copy.cs b/PROMS/VEPROMS.CSLA.Library/Config/AssocConfig - Copy.cs deleted file mode 100644 index a109f629..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Config/AssocConfig - Copy.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; - -namespace VEPROMS.CSLA.Library -{ - [Serializable] - [TypeConverter(typeof(ExpandableObjectConverter))] - public class AssociationConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged - { - #region DynamicTypeDescriptor - internal override bool IsReadOnly - { - get { return _Association == null; } - } - #endregion - #region XML - private XMLProperties _Xp; - private XMLProperties Xp - { - get { return _Xp; } - } - #endregion - #region Constructors - private Association _Association; - public AssociationConfig(Association association) - { - _Association = association; - string xml = association.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - } - private AssociationInfo _AssociationInfo; - public AssociationConfig(AssociationInfo association) - { - _AssociationInfo = association; - string xml = association.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - } - public AssociationConfig(string xml) - { - _Xp = new XMLProperties(xml); - } - public AssociationConfig() - { - string xml = ""; - _Xp = new XMLProperties(xml); - } - internal string GetValue(string group, string item) - { - return _Xp[group, item]; - } - #endregion - public Association MyAssociation - { get { return _Association; } } - #region RODefaults // From proc.ini - [Category("Referenced Objects")] - [DisplayName("Default RO Prefix")] - [RefreshProperties(RefreshProperties.All)] - [Description("Setpoint Prefix")] - public string RODefaults_setpointprefix - { - get - { - string s = _Xp["RODefaults", "Setpoint"];// get the saved value - return s; - } - set - { - _Xp["RODefaults", "Setpoint"] = value; // save selected value - OnPropertyChanged("RODefaults_setpointprefix"); - } - } - #endregion - #region ROUpdate - [Category("RO Update")] - [DisplayName("Last Completed")] - [RefreshProperties(RefreshProperties.All)] - [Description("Last RO Update Completed")] - public string ROUpdate_LastCompleted - { - get - { - string s = _Xp["ROUpdate", "LastCompleted"];// get the saved value - return s; - } - set - { - _Xp["ROUpdate", "LastCompleted"] = value; // save selected value - } - } - #endregion // ROUpdate - #region ToString - public override string ToString() - { - string s = _Xp.ToString(); - if (s == "" || s == "") return string.Empty; - return s; - } - #endregion - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Config/ProcConfig.cs.bak b/PROMS/VEPROMS.CSLA.Library/Config/ProcConfig.cs.bak deleted file mode 100644 index 06823f8a..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Config/ProcConfig.cs.bak +++ /dev/null @@ -1,798 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using DescriptiveEnum; - -namespace VEPROMS.CSLA.Library -{ - [Serializable] - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ProcedureConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged, IItemConfig - { - #region DynamicTypeDescriptor - internal override bool IsReadOnly - { - get { return _Procedure == null; } - } - #endregion - #region XML - private XMLProperties _Xp; - private XMLProperties Xp - { - get { return _Xp; } - } - #endregion - #region Constructors - //PROPGRID: Hide ParentLookup - [Browsable(false)] - public bool ParentLookup - { - get { return _Xp.ParentLookup; } - set { _Xp.ParentLookup = value; } - } - //PROPGRID: Needed to comment out [NonSerialized] in order to hide AncestorLookup from property grid - //[NonSerialized] - //private bool _AncestorLookup; - ////PROPGRID: Hide AncestorLookup - //[Browsable(false)] - //public bool AncestorLookup - //{ - // get { return _AncestorLookup; } - // set { _AncestorLookup = value; } - //} - private Procedure _Procedure; - private ProcedureInfo _ProcedureInfo; - public ProcedureConfig(Procedure procedure) - { - _Procedure = procedure; - string xml = procedure.MyContent.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - if (procedure.MyProcedureInfo.ActiveParent != null) _Xp.LookInAncestor += new XMLPropertiesEvent(Xp_LookInAncestorFolder); - } - private string Xp_LookInAncestorFolder(object sender, XMLPropertiesArgs args) - { - if (args.AncestorLookup || ParentLookup) - { - string retval; - // There may be levels of procedures, i.e. procedures within a procedure. - ProcedureInfo proc = _Procedure != null ? _Procedure.MyProcedureInfo : _ProcedureInfo; - while (proc.ActiveParent.IsProcedure) - { - retval = proc.ProcedureConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - proc = (ProcedureInfo)proc.ActiveParent; - } - DocVersionInfo docVersion = proc.ActiveParent as DocVersionInfo; - if (docVersion == null) return string.Empty; - retval = docVersion.DocVersionConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - for (FolderInfo folder = docVersion.MyFolder; folder != null; folder = folder.MyParent) - { - retval = folder.FolderConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - } - } - return string.Empty; - } - //private string Xp_LookInAncestorFolderInfo(object sender, XMLPropertiesArgs args) - //{ - // if (args.AncestorLookup || ParentLookup) - // { - - // DocVersionInfo docVersion = (DocVersionInfo)_Procedure.ActiveParent; - // string retval = docVersion.DocVersionConfig.GetValue(args.Group, args.Item); - // if (retval != string.Empty) return retval; - // for (FolderInfo folder = docVersion.MyFolder; folder != null; folder = folder.MyParent) - // { - // retval = folder.FolderConfig.GetValue(args.Group, args.Item); - // if (retval != string.Empty) return retval; - // } - // } - // return string.Empty; - //} - public ProcedureConfig(ProcedureInfo procedureInfo) - { - _ProcedureInfo = procedureInfo; - string xml = procedureInfo.MyContent.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - _Xp.AncestorLookup = true; - if (procedureInfo.ActiveParent != null) _Xp.LookInAncestor += new XMLPropertiesEvent(Xp_LookInAncestorFolder); - } - private int _SelectedSlave = 0; - //[Browsable(false)] - public int SelectedSlave - { - get { return _SelectedSlave; } - set { _SelectedSlave = value; } - } - public ProcedureConfig(string xml) - { - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - } - //public ProcedureConfig() - //{ - // _Xp = new XMLProperties(); - //} - public string GetValue(string group, string item) - { - return _Xp[group, item]; - } - public void SetValue(string group, string item, string newvalue) - { - _Xp[group, item] = newvalue; - } - #endregion - #region Local Properties - [Category("General")] - [DisplayName("Number")] - [Description("Number")] - public string Number - { - get { return (_Procedure != null ? _Procedure.MyContent.Number : _ProcedureInfo.MyContent.Number); } - set { if (_Procedure != null) _Procedure.MyContent.Number = value; } - } - [Category("General")] - [DisplayName("Title")] - [Description("Title")] - public string Title - { - get { return (_Procedure != null ? _Procedure.MyContent.Text : _ProcedureInfo.MyContent.Text); } - set { if (_Procedure != null) _Procedure.MyContent.Text = value; } - } - [Category("Identification")] - //PROPGRID: Hide Old Sequence - [Browsable(false)] - [DisplayName("Old Sequence")] - [Description("Old Sequence")] - public string OldSequence - { - get { return (_Procedure != null ? _Procedure.MyContent.MyZContent.OldStepSequence : (_ProcedureInfo.MyContent.MyZContent == null ? null : _ProcedureInfo.MyContent.MyZContent.OldStepSequence)); } - set { if (_Procedure != null) _Procedure.MyContent.MyZContent.OldStepSequence = value; } - } - [Category("Identification")] - //PROPGRID: Hide Dirty - [Browsable(false)] - [DisplayName("Dirty")] - [Description("Dirty")] - public bool Dirty - { - get { return (_Procedure != null ? _Procedure.IsDirty : false); } - } - [Category("Format Settings")] - [DisplayName("Format")] - [Description("Format")] - [TypeConverter(typeof(FormatList))] - public string FormatSelection - { - get - { - if (_Procedure != null && _Procedure.MyContent.MyFormat != null) return _Procedure.MyContent.MyFormat.FullName; //.PlantFormat.FormatData.Name; - if (_ProcedureInfo != null && _ProcedureInfo.MyContent.MyFormat != null) return _ProcedureInfo.MyContent.MyFormat.FullName;//.PlantFormat.FormatData.Name; - return null; - } - set - { - if (_Procedure != null) - { - _Procedure.MyContent.MyFormat = FormatList.ToFormat(value); // Can only be set if _DocVersion is set - //_Procedure.ActiveFormat = null; - } - } - } - [Category("Format Settings")] - [DisplayName("Default Format")] - [Description("Default Format")] - [TypeConverter(typeof(FormatList))] - public string DefaultFormatSelection - { - get - { - if (_Procedure != null && _Procedure.MyProcedureInfo.ActiveParent != null && _Procedure.MyProcedureInfo.ActiveParent.ActiveFormat != null) return _Procedure.MyProcedureInfo.ActiveParent.ActiveFormat.FullName; - if (_ProcedureInfo != null && _ProcedureInfo.MyParent != null && _ProcedureInfo.MyParent.ActiveFormat != null) return _ProcedureInfo.MyParent.ActiveFormat.FullName; - return null; - } - } - public Procedure MyProcedure - { get { return _Procedure; } } - #endregion - #region ToString - public override string ToString() - { - string s = _Xp.ToString(); - if (s == "" || s == "") return string.Empty; - return s; - } - #endregion - #region FormatCategory - //[TypeConverter(typeof(EnumDescConverter))] - //public enum FormatColumns : int - //{ - // Default = 0, - // [Description("Single Column")] - // OneColumn, - // [Description("Dual Column")] - // TwoColumn, - // [Description("Triple Column")] - // ThreeColumn, - // [Description("Quad Column")] - // FourColumns - //} - [Category("General")] - [DisplayName("Default Column Mode")] - [RefreshProperties(RefreshProperties.All)] - [Description("Column Layout")] - public FormatColumns Format_Columns - { - get - { - string s = _Xp["Format", "Columns"]; - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("Format", "Columns"); // get the parent value - // If there is no parent value, then use the volian default - if (s == string.Empty) - return FormatColumns.TwoColumn;// At the procedure level, default to Two column - - return (FormatColumns)int.Parse(s); - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("Format", "Columns"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - parval = ((int)(FormatColumns.Default)).ToString(); - - if (parval.Equals(((int)value).ToString())) - _Xp["Format", "Columns"] = string.Empty; // reset to parent value - else - _Xp["Format", "Columns"] = ((int)value).ToString(); // save selected value - - OnPropertyChanged("Format_Columns"); - } - } - [Category("Format")] - //PROPGRID: Hide Plant Format Name (using Format and Default Format) - [Browsable(false)] - [DisplayName("Plant Format Name")] - [RefreshProperties(RefreshProperties.All)] - [Description("Default Plant Format")] - public string Format_Plant - { - get - { - return _Xp["format", "plant"]; - } - set - { - _Xp["format", "plant"] = value; - OnPropertyChanged("Format_Plant"); - } - } - #endregion - #region PrintSettingsCategory // originally from first entry in fix file and curset.dat - [Category("Print Settings")] //Note that this print setting is stored under 'Procedure' element - [Browsable(false)] - [DisplayName("Revision Number")] - [RefreshProperties(RefreshProperties.All)] - [Description("Revision Number")] - public string Print_Rev - { - get - { - string s = _Xp["Procedure", "Rev"]; - if (SelectedSlave > 0) - s = _Xp["Slave[@index='" + SelectedSlave.ToString() + "']", "Rev"]; - return s; - } - set - { - if (SelectedSlave > 0) - _Xp["Slave[@index='" + SelectedSlave.ToString() + "']", "Rev"] = value; // save selected value - else - _Xp["Procedure", "Rev"] = value; - OnPropertyChanged("Print_Rev"); - } - } - [Category("Print Settings")] //Note that this print setting is stored under 'Procedure' element - [Browsable(false)] - [DisplayName("Revision Date")] - [RefreshProperties(RefreshProperties.All)] - [Description("Revision Date")] - public string Print_RevDate - { - get - { - string s = _Xp["Procedure", "RevDate"]; - if (SelectedSlave > 0) - s = _Xp["Slave[@index='" + SelectedSlave.ToString() + "']", "RevDate"]; - return s; - } - set - { - if (SelectedSlave > 0) - _Xp["Slave[@index='" + SelectedSlave.ToString() + "']", "RevDate"] = value; // save selected value - else - _Xp["Procedure", "RevDate"] = value; - OnPropertyChanged("Print_RevDate"); - } - } - [Category("Print Settings")] //Note that this print setting is stored under 'Procedure' element - [Browsable(false)] - [DisplayName("Review Date")] - [RefreshProperties(RefreshProperties.All)] - [Description("Review Date")] - public string Print_ReviewDate - { - get - { - string s = _Xp["Procedure", "ReviewDate"]; - if (SelectedSlave > 0) - s = _Xp["Slave[@index='" + SelectedSlave.ToString() + "']", "ReviewDate"]; - return s; - } - set - { - if (SelectedSlave > 0) - _Xp["Slave[@index='" + SelectedSlave.ToString() + "']", "ReviewDate"] = value; // save selected value - else - _Xp["Procedure", "ReviewDate"] = value; - OnPropertyChanged("Print_ReviewDate"); - } - } - [Category("Print Settings")] - //PROPGRID: Hide Number of Copies - [Browsable(false)] - [DisplayName("Number of Copies")] - [RefreshProperties(RefreshProperties.All)] - [Description("Number of Copies")] - public int Print_NumCopies - { - get - { - string s = _Xp["PrintSettings", "numcopies"]; - if (s == string.Empty) return 1; - return int.Parse(_Xp["PrintSettings", "numcopies"]); - } - set - { - _Xp["PrintSettings", "numcopies"] = value.ToString(); - OnPropertyChanged("Print_NumCopies"); - } - } - //public enum PrintPagination : int - //{ - // Free = 0, Fixed, - // [Description("Automatic")] - // Auto - //} - [Category("Print Settings")] - [DisplayName("Pagination")] - [RefreshProperties(RefreshProperties.All)] - [Description("Pagination")] - public PrintPagination Print_Pagination - { - get - { - - string s = _Xp["PrintSettings", "Pagination"]; - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("PrintSettings", "Pagination"); // get the parent value - // If there is no parent value, then use the volian default - if (s == string.Empty) - return PrintPagination.Auto;// default to volian default - - return (PrintPagination)int.Parse(s); - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("PrintSettings", "Pagination"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - parval = ((int)(PrintPagination.Auto)).ToString(); - - if (parval.Equals(((int)value).ToString())) - _Xp["PrintSettings", "Pagination"] = string.Empty; // reset to parent value - else - _Xp["PrintSettings", "Pagination"] = ((int)value).ToString(); // save selected value - - OnPropertyChanged("Print_Pagination"); - } - } - //[TypeConverter(typeof(EnumDescConverter))] - //public enum PrintWatermark : int - //{ - // None = 0, Reference, Draft, Master, Sample, - // [Description("Information Only")] - // InformationOnly - //} - [Category("Print Settings")] - [DisplayName("Watermark")] - [RefreshProperties(RefreshProperties.All)] - [Description("Watermark")] - public PrintWatermark Print_Watermark - { - get - { - string s = _Xp["PrintSettings", "Watermark"]; - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("PrintSettings", "Watermark"); // get the parent value - // If there is no parent value, then use the volian default - if (s == string.Empty) - return PrintWatermark.Draft;// default to volian default - - return (PrintWatermark)int.Parse(s); - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("PrintSettings", "Watermark"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - parval = ((int)(PrintWatermark.Draft)).ToString(); - - if (parval.Equals(((int)value).ToString())) - _Xp["PrintSettings", "Watermark"] = string.Empty; // reset to parent value - else - _Xp["PrintSettings", "Watermark"] = ((int)value).ToString(); // save selected value - - OnPropertyChanged("Print_Watermark"); - } - } - [Category("Print Settings")] - [DisplayName("Disable Automatic Duplexing")] - [RefreshProperties(RefreshProperties.All)] - [Description("Disable Duplex Printing")] - public bool Print_DisableDuplex - { - get - { - string s = _Xp["PrintSettings", "disableduplex"]; - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("PrintSettings", "disableduplex"); // get the parent value - // If there is no parent value, then use the volian default - if (s == string.Empty) - s = "false";// default to volian default - - return bool.Parse(s); - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("PrintSettings", "disableduplex"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - parval = "false"; - - if (parval.Equals(value.ToString())) - _Xp["PrintSettings", "disableduplex"] = string.Empty; // reset to parent value - else - _Xp["PrintSettings", "disableduplex"] = value.ToString(); // save selected value - - OnPropertyChanged("Print_DisableDuplex"); - } - } - // Change Bar Use from 16-bit code: - // No Default - // Without Change Bars - // With Default Change Bars - // With User Specified Change Bars - //[TypeConverter(typeof(EnumDescConverter))] - //public enum PrintChangeBar : int - //{ - // [Description("Select Before Printing")] - // SelectBeforePrinting = 0, - // [Description("Without Change Bars")] - // Without, - // [Description("With Default Change Bars")] - // WithDefault, - // [Description("Use Custom Change Bars")] - // WithUserSpecified - //} - [Category("Format Settings")] - [DisplayName("Change Bar")] - [RefreshProperties(RefreshProperties.All)] - [Description("Change Bar Use")] - public PrintChangeBar Print_ChangeBar - { - get - { - string s = _Xp["PrintSettings", "ChangeBar"]; - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("PrintSettings", "ChangeBar"); // get the parent value - // If there is no parent value, then use the volian default - if (s == string.Empty) - return PrintChangeBar.SelectBeforePrinting;// default to volian default - - return (PrintChangeBar)int.Parse(s); - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("PrintSettings", "ChangeBar"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - parval = ((int)(PrintChangeBar.SelectBeforePrinting)).ToString(); - - if (parval.Equals(((int)value).ToString())) - _Xp["PrintSettings", "ChangeBar"] = string.Empty; // reset to parent value - else - _Xp["PrintSettings", "ChangeBar"] = ((int)value).ToString(); // save selected value - - OnPropertyChanged("Print_ChangeBar"); - } - } - // User Specified Change Bar Location from16-bit code: - // With Text - // Outside Box - // AER on LEFT, RNO on Right - // To the Left of Text - //[TypeConverter(typeof(EnumDescConverter))] - //public enum PrintChangeBarLoc : int - //{ - // [Description("With Text")] - // WithText = 0, - // [Description("Outside Box")] - // OutsideBox, - // [Description("AER on Left RNO on Right")] - // AERleftRNOright, - // [Description("To the Left of the Text")] - // LeftOfText - //} - [Category("Format Settings")] - [DisplayName("Change Bar Position")] - [RefreshProperties(RefreshProperties.All)] - [Description("User Specified Change Bar Location")] - public PrintChangeBarLoc Print_ChangeBarLoc - { - get - { - string s = _Xp["PrintSettings", "ChangeBarLoc"]; - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("PrintSettings", "ChangeBarLoc"); // get the parent value - // If there is no parent value, then use the volian default - if (s == string.Empty) - return PrintChangeBarLoc.WithText;// default to volian default - - return (PrintChangeBarLoc)int.Parse(s); - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("PrintSettings", "ChangeBarLoc"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - parval = ((int)(PrintChangeBarLoc.WithText)).ToString(); - - if (parval.Equals(((int)value).ToString())) - _Xp["PrintSettings", "ChangeBarLoc"] = string.Empty; // reset to parent value - else - _Xp["PrintSettings", "ChangeBarLoc"] = ((int)value).ToString(); // save selected value - - OnPropertyChanged("Print_ChangeBarLoc"); - } - } - - // Change Bar Text from16-bit code: - // Date and Change ID - // Revision Number - // Change ID - // No Change Bar Message - // User Defined Message - //[TypeConverter(typeof(EnumDescConverter))] - //public enum PrintChangeBarText : int - //{ - // [Description("Date and Change ID")] - // DateChgID = 0, - // [Description("Revision Number")] - // RevNum, - // [Description("Change ID")] - // ChgID, - // [Description("No Change Bar Text")] - // None, - // [Description("Custom Change Bar Text")] - // UserDef - //} - [Category("Format Settings")] - [DisplayName("Change Bar Text Type")] - [RefreshProperties(RefreshProperties.All)] - [Description("Change Bar Text")] - public PrintChangeBarText Print_ChangeBarText - { - get - { - string s = _Xp["PrintSettings", "ChangeBarText"]; - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("PrintSettings", "ChangeBarText"); // get the parent value - // If there is no parent value, then use the volian default - if (s == string.Empty) - return PrintChangeBarText.DateChgID;// default to volian default - - return (PrintChangeBarText)int.Parse(s); - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("PrintSettings", "ChangeBarText"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - parval = ((int)(PrintChangeBarText.DateChgID)).ToString(); - - if (parval.Equals(((int)value).ToString())) - _Xp["PrintSettings", "ChangeBarText"] = string.Empty; // reset to parent value - else - _Xp["PrintSettings", "ChangeBarText"] = ((int)value).ToString(); // save selected value - - OnPropertyChanged("Print_ChangeBarText"); - } - } - - [Category("Print Settings")] - //PROPGRID: Hide User Format - [Browsable(false)] - [DisplayName("User Format")] - [RefreshProperties(RefreshProperties.All)] - [Description("User Format")] - public string Print_UserFormat - { - get - { - return _Xp["PrintSettings", "userformat"]; - } - set - { - _Xp["PrintSettings", "userformat"] = value; - OnPropertyChanged("Print_UserFormat"); - } - } - - [Category("Format Settings")] - [DisplayName("Custom Change Bar Message Line One")] - [RefreshProperties(RefreshProperties.All)] - [Description("User Change Bar Message1")] - public string Print_UserCBMess1 - { - get - { - string s = _Xp["PrintSettings", "usercbmess1"];// get the saved value - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("PrintSettings", "usercbmess1"); // get the parent value - // If there is no parent value, then use the volian default - if (s == string.Empty) - s = "";// default to volian default - - return s; - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("PrintSettings", "usercbmess1"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - parval = ""; - - if (parval.Equals(value)) - _Xp["PrintSettings", "usercbmess1"] = string.Empty; // reset to parent value - else - _Xp["PrintSettings", "usercbmess1"] = value; // save selected value - - OnPropertyChanged("Print_UserCBMess1"); - } - } - - [Category("Format Settings")] - [DisplayName("Custom Change Bar Message Line Two")] - [RefreshProperties(RefreshProperties.All)] - [Description("User Change Bar Message2")] - public string Print_UserCBMess2 - { - get - { - string s = _Xp["PrintSettings", "usercbmess2"];// get the saved value - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("PrintSettings", "usercbmess2"); // get the parent value - // If there is no parent value, then use the volian default - if (s == string.Empty) - s = "";// default to volian default - - return s; - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("PrintSettings", "usercbmess2"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - parval = ""; - - if (parval.Equals(value)) - _Xp["PrintSettings", "usercbmess2"] = string.Empty; // reset to parent value - else - _Xp["PrintSettings", "usercbmess2"] = value; // save selected value - - OnPropertyChanged("Print_UserCBMess2"); - } - } - - // the following is for internal use only: - [Browsable(false)] - public string SectionStart - { - get - { - return _Xp["Procedure", "SectionStart"]; - } - set - { - _Xp["Procedure", "SectionStart"] = value; - OnPropertyChanged("Proceduret_SectionStart"); - } - } - #endregion - - #region IItemConfig Members - - [Category("Master/Slave Settings")] - [DisplayName("Applicability")] - [RefreshProperties(RefreshProperties.All)] - [Description("Scope Applicability")] - public Volian.Base.Library.BigNum MasterSlave_Applicability - { - get - { - string s = _Xp["MasterSlave", "Applicability"]; - return new Volian.Base.Library.BigNum(s); - } - set - { - _Xp["MasterSlave", "Applicability"] = value.FlagList; - OnPropertyChanged("MasterSlave_Applicability"); - } - } - - #endregion - } - public interface IItemConfig - { - Volian.Base.Library.BigNum MasterSlave_Applicability { get; set;} - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup MultiValRO.csx b/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup MultiValRO.csx deleted file mode 100644 index ed9d2fe3..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup MultiValRO.csx +++ /dev/null @@ -1,1115 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.Specialized; -using System.Text; -using System.ComponentModel; -using System.Text.RegularExpressions; -using System.IO; - -namespace VEPROMS.CSLA.Library -{ - [Serializable] - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ROFSTLookup - { - #region Log4Net - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Structs - [Serializable] - public struct roHdr - { - public int hSize; - public int hYear; - public byte hMonth; - public byte hDay; - public int hcYear; - public byte hcMonth; - public byte hcDay; - public byte hcHour; - public byte hcMin; - public byte hcSec; - public byte hcHund; - public rodbi[] myDbs; - }; - [Serializable] - public struct rodbi - { - public int dbiID; - public int dbiType; - public int dbiAW; - public string dbiTitle; - public string dbiAP; - public int ID; - public int ParentID; - public rochild[] children; - }; - public struct rogrp - { - public int ID; - public int ParentID; - public rochild[] children; - public string value; - public string appid; - }; - public struct rochild - { - public int ID; - public int ParentID; - public int type; - public string title; - public string roid; - public string appid; - public string value; - public rochild[] children; - }; - public class roChild - { - rochild _MyChild; - public rochild MyChild - { - get { return _MyChild; } - set { _MyChild = value; } - } - public roChild(rochild myChild) - { - _MyChild = myChild; - } - public override string ToString() - { - return _MyChild.title; - } - }; - #endregion - #region Local Data - private string _ROValue = ""; - private List lstRoValues; - private List lstRoValuesMulti; - private Dictionary DictROVar = new Dictionary(); - #endregion - #region Constructors - private ROFst _ROFst; - private ROFstInfo _ROFstInfo; - private int _SelectedSlave; - - private DocVersionInfo _DocVersionInfo; - - public DocVersionInfo DocVersionInfo - { - get { return _DocVersionInfo; } - set - { - _DocVersionInfo = value; - if (_DocVersionInfo.DocVersionConfig.SelectedSlave != _SelectedSlave) - { - _SelectedSlave = _DocVersionInfo.DocVersionConfig.SelectedSlave; - Reset(); - } - } - } - public ROFSTLookup(ROFst rofst) - { - _ROFst = rofst; - _ROFstInfo = null; - using (ROFstInfo rfi = ROFstInfo.GetJustROFst(_ROFst.ROFstID)) - { - _DocVersionInfo = rfi.docVer;//==null?null: DocVersionInfo.Get(rfi.docVer.VersionID); - } - ParseIntoDictionary(rofst.ROLookup); - } - public ROFSTLookup(ROFstInfo rofstinfo) - { - _ROFstInfo = rofstinfo; - _ROFst = null; - // docversion will be null if we're working with an ro.fst that is not currently connected - // to a docversion. One example of this is when updating ro.fst and comparing the original - // with the new to find differences. The docversioninfo is only used to get unit/master - // slave info, thus is not needed to compare the raw values. - _DocVersionInfo = _ROFstInfo.docVer;//==null?null: DocVersionInfo.Get(_ROFstInfo.docVer.VersionID); - ParseIntoDictionary(rofstinfo.ROLookup); - } - public ROFSTLookup(string filePath) - { - _ROFstInfo = null; - _ROFst = null; - _DocVersionInfo = null; - FileInfo rofstFile = new FileInfo(filePath); - FileStream fs = rofstFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - byte[] buf = new byte[rofstFile.Length]; - fs.Read(buf, 0, buf.Length); - fs.Close(); - ParseIntoDictionary(buf); - } - #endregion - #region PropertiesAndData - public roHdr myHdr; - private int TableID; - private Dictionary dicRos; - private Dictionary dicRosIntIDs; - public void Reset() - { - dicRos = null; - dicRosIntIDs = null; - } - #endregion - #region AppSupport - public void Close() - { - // remove the dictionary - if (dicRosIntIDs != null)dicRosIntIDs.Clear(); - dicRosIntIDs = null; - if (dicRos != null)dicRos.Clear(); - dicRos = null; - } - public List GetValueDifferences(ROFSTLookup origROFst, ref List delList) - { - // use this list to see what differences are between it and the original - List modList = new List(); - // assume each rofstlookup has a parsed dictionary - foreach (string key in origROFst.dicRos.Keys) - { - string cvalue = null; - string ovalue = origROFst.dicRos[key].value; - if (dicRos.ContainsKey(key)) - cvalue = dicRos[key].value; - if (cvalue == null && cvalue != ovalue) - delList.Add(key); - else if (cvalue != ovalue) - { - // Value Change - modList.Add(key); - //Console.WriteLine("RO{0}\t\"{1}\"\t\"{2}\"", key, cvalue, ovalue); - } - } - return modList; - } - //public static ROImageInfo Get(RODbInfo rodbinfo, string filename) - //{ - // if (rodbinfo.RODbROImageCount != 0) - // { - // foreach (ROImageInfo ri in rodbinfo.RODbROImages) - // { - // if (ri.FileName == filename) return ri; - // } - // } - // return null; - //} - - public string GetTranslatedRoValue(string ROID16, bool DoCaret) - { - string retval = GetRoValue(ROID16); - retval = ReplaceUnicode(retval, DoCaret); - retval = ConvertFortranFormatToScienctificNotation(retval); - return retval.Replace("\r\n", @"\par "); - } - private string ReplaceUnicode(string s2, bool DoCaret) - { - string orig = s2; - s2 = s2.Replace("`", @"\'b0"); // convert backquote to degree - left over from DOS days. - s2 = s2.Replace("\xa0", @"\u160?"); // hardspace - s2 = s2.Replace("\xb0", @"\'b0"); // degree - s2 = s2.Replace("\x7f", @"\u916?"); // delta - s2 = s2.Replace("\x2265", @"\u8805?"); // greater than or equal - s2 = s2.Replace("\x2264", @"\u8804?"); // less than or equal - s2 = s2.Replace("\xB1", @"\'b1"); // plus minus - s2 = s2.Replace("\x3A3", @"\u931?"); // sigma - s2 = s2.Replace("\x3C4", @"\u947?"); // gamma - s2 = s2.Replace("\xBD", @"\'bd"); // half - s2 = s2.Replace("\x25A0", @"\u9604?"); // accum 2584 - s2 = s2.Replace("\x7", @"\u9679?"); // bullet 25CF - s2 = s2.Replace("\x2248", @"\u8776?"); // approx eq - s2 = s2.Replace("\x2261", @"\u8773?"); // similar eq 2245 - s2 = s2.Replace("\xF7", @"\'f7"); // division - s2 = s2.Replace("\x221A", @"\u8730?"); // square root - s2 = s2.Replace("\x393", @"\u961?"); // rho 3C1 - s2 = s2.Replace("\x3C0", @"\u960?"); // pi - s2 = s2.Replace("\xb5", @"\u956?"); // micro 3BC (try e6, if not work try 109) - s2 = s2.Replace("\x3B4", @"\u948?"); // lower case delta - s2 = s2.Replace("\x3C3", @"\u963?"); // lower case sigma - s2 = s2.Replace("\xBC", @"\'bc"); // quarter - s2 = s2.Replace("\x3C6", @"\'d8"); // dist zero, D8 - s2 = s2.Replace("\xC9", @"\u274?"); // energy, 112 - s2 = s2.Replace("\xEC", @"\'ec"); // grave - s2 = s2.Replace("\x2502", @"\u9474?"); // bar - s2 = s2.Replace("\x3B5", @"\u949?"); // epsilon - s2 = s2.Replace("\x398", @"\u952?"); // theta, 3B8 - s2 = s2.Replace("\x221E", @"\u8857?"); // dot in oval, 2299 - s2 = s2.Replace("\xBF", @"\u964?"); // tau, 3C4 - s2 = s2.Replace("\x2310", @"\u9830?"); // diamond, 2666 - s2 = s2.Replace("\x2192", @"\u8594?"); - s2 = s2.Replace("\x2190", @"\u8592?"); - s2 = s2.Replace("\x2191", @"\u8593?"); - s2 = s2.Replace("\x2193", @"\u8595?"); - s2 = s2.Replace("\x2207", @"\u8711?"); - s2 = s2.Replace("\x2591", @"\'b0"); // Degree Symbol - s2 = s2.Replace("\xFF", @"\u8593?"); // Up Arrow - s2 = s2.Replace("\xD6", @"\u8595?"); // Down Arrow - - if (DoCaret) s2 = s2.Replace("^", @"\u916?"); - // Convert dash to a non-breaking dash. This is a unicode character. - // This character will be used in veproms rather than a dash. - //if the dash is preceeded byte a token remove the space following the token - s2 = Regex.Replace(s2, @"(\\[^ \\?]*) \-", @"$1\u8209?"); - s2 = s2.Replace("-", @"\u8209?"); - return s2; - } - // this only gets rochild values. Later we may want another - // dictionary to get groups. - public string GetRoValue(string ROID16) - { - string ROID = ROID16.Substring(0,12); - if (dicRos == null) ParseIntoDictionary(_ROFst!=null?_ROFst.ROLookup:_ROFstInfo.ROLookup); - // Use the ROID to get the value from the dictionary - if (dicRos.ContainsKey(ROID.ToUpper())) - { - rochild rochld = (rochild)dicRos[ROID.ToUpper()]; - if (rochld.value != null && rochld.value != string.Empty) - return rochld.value; - if (rochld.children != null) - { - foreach (rochild child in rochld.children) - if (child.roid.ToUpper() == ROID16 || (child.roid.EndsWith("0041") && ROID16.EndsWith("0000"))) - return child.value; - // if there isn't a specific match for multi-return values, default to the first child. - return rochld.children[0].value; - } - } - //if (ROID == "FFFF00000001") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Number; - //if (ROID == "FFFF00000002") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Number; - //if (ROID == "FFFF00000003") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Text; - //if (ROID == "FFFF00000004") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Text; - //if (ROID == "FFFF00000005") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_ID; - //if (ROID == "FFFF00000006") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_ID; - //if (ROID == "FFFF00000007") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Name; - //if (ROID == "FFFF00000008") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Name; - //new stuff - if (ROID == "FFFF00000001") return _ROFstInfo.docVer.DocVersionConfig.Unit_Number; - if (ROID == "FFFF00000002") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Number; - if (ROID == "FFFF00000003") return _ROFstInfo.docVer.DocVersionConfig.Unit_Text; - if (ROID == "FFFF00000004") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Text; - if (ROID == "FFFF00000005") return _ROFstInfo.docVer.DocVersionConfig.Unit_ID; - if (ROID == "FFFF00000006") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_ID; - if (ROID == "FFFF00000007") return _ROFstInfo.docVer.DocVersionConfig.Unit_Name; - if (ROID == "FFFF00000008") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Name; - //end new stuff - if (ROID.StartsWith("FFFF")) return "?"; // string.Format("Invalid Unit RO '{0}'", ROID); - return "?"; // string.Format("Invalid RO '{0}'", ROID); - } - // Get the the RO's Accessory Page ID - public string GetRoACID(string ROID16) - { - string ROID = ROID16.Substring(0,12); - if (dicRos == null) ParseIntoDictionary(_ROFst!=null?_ROFst.ROLookup:_ROFstInfo.ROLookup); - // Use the ROID to get the value from the dictionary - if (dicRos.ContainsKey(ROID.ToUpper())) - { - rochild rochld = (rochild)dicRos[ROID.ToUpper()]; - if (rochld.value != null && rochld.value != string.Empty) - return rochld.appid; - if (rochld.children != null) - { - foreach (rochild child in rochld.children) - if (child.roid.ToUpper() == ROID16 || (child.roid.EndsWith("0041") && ROID16.EndsWith("0000"))) - return child.appid; - // if there isn't a specific match for multi-return values, default to the first child. - return rochld.children[0].appid; - } - } - return ""; // no accessory page ID found - } - public rochild GetRoChild12(string ROID16) - { - string ROID = ROID16.Substring(0, 12); - if (dicRos == null) ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - // Use the ROID to get the value from the dictionary - if (dicRos.ContainsKey(ROID.ToUpper())) - { - rochild rochld = (rochild)dicRos[ROID.ToUpper()]; - return rochld; - } - rochild tmp = new rochild(); - tmp.ID = -1; - return tmp; - } - public rochild GetRoChild(string ROID) - { - if (dicRos == null) ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - // Use the ROID to get the value from the dictionary - if (dicRos.ContainsKey(ROID.ToUpper())) - { - rochild rochld = (rochild)dicRos[ROID.ToUpper()]; - return rochld; - } - rochild tmp = new rochild(); - tmp.ID = -1; - return tmp; - } - public string GetROTitle(string ROID) - { - StringBuilder sb = new StringBuilder(); - rochild roc = GetRoChild12(ROID); - if (roc.value == null) - roc = GetRoChild(ROID); - sb.Append(roc.title.Replace(roc.appid,"").Replace(roc.value,"").Trim()); - do - { - string parent = ROID.Substring(0, 4) + string.Format("{0:X8}", roc.ParentID); - roc = GetRoChild12(parent); - if (roc.ID > 0) - sb.Insert(0, roc.title + " - "); - } while (roc.ID > 0); - return sb.ToString(); - } - // Return the RO Title in a list of strings - // The last item in the list is the actual RO title, the items preceding it are the - // titles of the groups and sub-groups containing the RO - public List GetROTitleAndGroupPath(string ROID) - { - List titlePath = new List(); - rochild roc = GetRoChild12(ROID); - //string tmp = roc.title.Replace(roc.appid, "").Replace(roc.value, "").Trim(); - string tmp = roc.title.Replace(roc.appid, string.Format("<{0}>",roc.appid)).Trim(); - titlePath.Add(tmp); - do - { - string parent = ROID.Substring(0, 4) + string.Format("{0:X8}", roc.ParentID); - roc = GetRoChild12(parent); - if (roc.ID > 0) - titlePath.Add(roc.title); - } while (roc.ID > 0); - titlePath.Reverse(); - return titlePath; - } - - // The following Method is not correct. It needs to have a RO database id as well as an id. Without that, - // the first RO with a specific id will be found regardless of the RO Database id. - //public rochild GetRoChildFromID(int id) - //{ - // if (dicRosIntIDs == null) ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - // // Use the id to get the value from the dictionary - // if (dicRosIntIDs.ContainsKey(id)) - // { - // rochild rochld = (rochild)dicRosIntIDs[id]; - // return rochld; - // } - // rochild tmp = new rochild(); - // tmp.ID = -1; - // return tmp; - //} - public rodbi[] GetRODatabaseList() - { - return myHdr.myDbs; - } - //public string GetDefaultROPrefix() - //{ - // if (docVer != null) - // return docVer.DocVersionConfig.RODefaults_setpointprefix; - // else - // return "SP1"; // Not Sure about this... - //} - //public string GetDefaultGraphicsPrefix() - //{ - // if (docVer != null) - // return docVer.DocVersionConfig.RODefaults_graphicsprefix; - // else - // return "IG1"; // Not Sure about this... - //} - #region Update Ro Values - /// - /// Updates an ro.fst into a sql database. - /// - /// - /// ROFst: Returns the created rofst object - //public static ROFst UpdateRoFst(RODbInfo rdi, DocVersionAssociation dva, DocVersion docver) - //{ - // // file validity checks are done before getting here - just do the import - // // here. - // string rofstfilepath = rdi.FolderPath + @"\ro.fst"; - - // DirectoryInfo di = new DirectoryInfo(rdi.FolderPath); - - // // There may be more than 1 'ro' as the 'ROName' field (ROName is derived from the ropath). - // // Get new name be incrementing, if so. - // string newname = NewROName(di.Name); - - // // Next read in the rofst & make the rofst record. - // FileStream fsIn = new FileStream(rofstfilepath, FileMode.Open, FileAccess.Read, FileShare.Read); - // // Create an instance of StreamReader that can read characters from the FileStream. - // BinaryReader r = new BinaryReader(fsIn); - // byte[] ab = r.ReadBytes((int)fsIn.Length); - // fsIn.Close(); - - // using (RODb rd = RODb.Get(rdi.RODbID)) - // { - // ROFst rofst = ROFst.MakeROFst(rd, ab, null, di.LastWriteTimeUtc, rdi.UserID); - // // Hook this into the current docversion by replacing the rofstid field in the doc version - // // association object: - // dva.MyROFst = rofst; - // docver.Save(); - - // // Now load any images in... type 8 - integrated graphics ro type - // ROFstInfo rofstInfo = ROFstInfo.Get(rofst.ROFstID); - // rofstInfo.ParseIntoDictionary(rofstInfo.ROFST); - // for (int i = 0; i < rofstInfo.myHdr.myDbs.Length; i++) - // { - // // walk through the rofst 'database' searching for all nodes that are integrated graphics, type 8: - // if (rofstInfo.myHdr.myDbs[i].children != null) rofstInfo.MigrateRoFstGraphics(rdi, rofstInfo.myHdr.myDbs[i].children); - // } - // return rofst; - // } - //} - //private static string RoAppConfigExt(string fstPath) - //{ - // string inipath = fstPath + @"\roapp.ini"; - // if (!File.Exists(inipath)) return null; - // StreamReader myReader = new StreamReader(inipath); - // string sLine; - // int indx = -1; - // while ((sLine = myReader.ReadLine()) != null) - // { - // if (sLine.Length > 0 && sLine.Substring(0, 1) != ";") - // { - // if ((indx = sLine.ToLower().IndexOf("extention")) >= 0) - // { - // indx = sLine.IndexOf("=", indx + 9); - // return sLine.Substring(indx + 1, sLine.Length - indx - 1).Trim(); - // } - // } - // } - // myReader.Close(); - // return null; - //} - //private static string NewROName(string roName) - //{ - // string retval = roName; - // int iSuffix = -1; - // RODbInfoList rodblist = RODbInfoList.Get(); - - - // foreach (RODbInfo rdi in rodblist) - // { - // if (rdi.ROName.StartsWith(roName)) - // { - // if (rdi.ROName == roName) - // iSuffix = 0; - // else if (Regex.IsMatch(rdi.ROName, roName + "[_][0-9]+")) - // { - // int ii = int.Parse(rdi.ROName.Substring(1 + roName.Length)); - // if (ii > iSuffix) iSuffix = ii; - // } - // } - // } - // if (iSuffix >= 0) - // retval = string.Format("{0}_{1}", roName, iSuffix + 1); - // return retval; - //} - //private void MigrateRoFstGraphics(RODbInfo rdi, ROFstInfo.rochild[] rochild) - //{ - // for (int i = 0; i < rochild.Length; i++) - // { - // if (rochild[i].type == 8) AddGraphic(rdi, rochild[i].value); - // if (rochild[i].children != null) MigrateRoFstGraphics(rdi, rochild[i].children); - // } - //} - //private void AddGraphic(RODbInfo rdi, string p) - //{ - // if (p == null) return; - // string imgname = p.Substring(0, p.IndexOf('\n')); - // int thedot = imgname.LastIndexOf('.'); - // string fname = imgname; - // if (thedot == -1 || (thedot != (imgname.Length - 4))) - // { - // RODbConfig roDbCfg = new RODbConfig(rdi.Config); - // fname += string.Format(".{0}", roDbCfg.GetDefaultGraphicExtension()); - // } - - // string imgfile = rdi.FolderPath + @"\" + fname; - - // ROImage roImg = null; - // if (File.Exists(imgfile)) - // { - // FileInfo fi = new FileInfo(imgfile); - // // if the roimage record exists, don't create a new one... - // using (roImg = ROImage.GetByRODbID_FileName_DTS(rdi.RODbID, imgname, fi.LastWriteTimeUtc)) - // { - // if (roImg == null) - // { - // FileStream fsIn = new FileStream(imgfile, FileMode.Open, FileAccess.Read, FileShare.Read); - // BinaryReader r = new BinaryReader(fsIn); - // byte[] ab = r.ReadBytes((int)fsIn.Length); - // r.Close(); - // fsIn.Close(); - // using (RODb rodb = RODb.Get(rdi.RODbID)) - // { - // roImg = ROImage.MakeROImage(rodb, imgname, ab, null, fi.LastWriteTimeUtc, "Migration"); - // } - // } - // Figure figure = Figure.GetByROFstID_ImageID(this.ROFstID, roImg.ImageID); - // if (figure != null) return; - // using (ROFst rofst = ROFst.Get(this.ROFstID)) - // { - // figure = Figure.MakeFigure(rofst, roImg, null); - // } - // } - // } - // else - // Console.WriteLine(string.Format("{0}", imgfile), "Cannot Find Image File"); - //} - #endregion - #endregion - #region LoadStructs - private int StringLength(byte[] ab, int offset) - { - int i = 0; - while (ab[i + offset] != 0) i++; - return i; - } - private rogrp LoadGroup(byte[] ab, int offset) - { - rogrp myGrp = new rogrp(); - myGrp.ID = BitConverter.ToInt32(ab, offset); - myGrp.ParentID = BitConverter.ToInt32(ab, offset + 4); - int howmany = BitConverter.ToInt16(ab, offset + 8); - if (howmany > 0) - { - myGrp.children = new rochild[howmany]; - int myOffset = offset + 10; - for (int i = 0; i < myGrp.children.Length; i++) - { - int childOffset = BitConverter.ToInt32(ab, myOffset); - rochild tmp = new rochild(); - //tmp.offset=BitConverter.ToInt32(ab,myOffset); - tmp.type = BitConverter.ToInt16(ab, myOffset + 4); - int slen = StringLength(ab, myOffset + 6); - tmp.title = Encoding.Default.GetString(ab, myOffset + 6, slen); - myOffset += (7 + slen); - rogrp tmpg = LoadGroup(ab, childOffset); - MultipleReturnValuesInheritType(ref tmpg, tmp.type); - tmp.ID = tmpg.ID; - tmp.ParentID = tmpg.ParentID; - tmp.children = tmpg.children; - tmp.value = tmpg.value; - tmp.appid = tmpg.appid; - tmp.roid = TableID.ToString("X4") + tmp.ID.ToString("X8"); - // Add dictionary entries for children - if (tmp.children != null) - { - foreach (rochild child in tmp.children) - if (!dicRos.ContainsKey(child.roid.ToUpper())) - dicRos.Add(child.roid.ToUpper(), child); - } - dicRos.Add(tmp.roid.ToUpper(), tmp); - if (!dicRosIntIDs.ContainsKey(tmp.ID)) dicRosIntIDs.Add(tmp.ID, tmp); - int j; - for (j = i - 1; j >= 0 && tmp.ID < myGrp.children[j].ID; j--) - { - myGrp.children[j + 1] = myGrp.children[j]; - } - myGrp.children[j + 1] = tmp; - } - } - else - { - int slen = StringLength(ab, offset + 12); - //myGrp.value = Encoding.Default.GetString(ab, offset + 12, slen); - ProcessROReturnValue(ref myGrp, Encoding.Default.GetString(ab, offset + 12, slen)); - int slen2 = StringLength(ab, offset + 13 + slen); - myGrp.appid = Encoding.Default.GetString(ab, offset + 13 + slen, slen2); - } - return myGrp; - } - - /// - /// This function will take the raw RO return value and resolve any macros, conditionals, and - /// generated the return value or a list of multiple return values. - /// - /// - /// - private void ProcessROReturnValue(ref rogrp myGrp, string rawvalue) - { - if (dicRos == null) ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - List lstROVals = GetROReturnValue(rawvalue); - if (lstROVals.Count > 1) // mulitple return values - { - myGrp.children = new rochild[lstROVals.Count]; - for (int i = 0; i < lstROVals.Count; i++) - { - myGrp.children[i].value = lstROVals[i]; - myGrp.children[i].roid = TableID.ToString("X4") + myGrp.ID.ToString("X8") + (0x41+i).ToString("X4"); - myGrp.children[i].type = -1; // Multiple return value inherit type from parent - myGrp.children[i].title = lstROVals[i]; - } - } - else - myGrp.value = lstROVals[0]; - return; - - } - /// - /// Multiple return values need to get the type from the parent node. - /// - /// - /// - private void MultipleReturnValuesInheritType(ref rogrp myGrp, int parenttype) - { - if (myGrp.children != null) - { - for (int cnt = 0; cnt < myGrp.children.Length; cnt++) - { - if (myGrp.children[cnt].type == -1) - { - myGrp.children[cnt].type = parenttype; - myGrp.children[cnt].appid = myGrp.appid; - } - } - } - } - - private void ParseIntoDictionary(byte[] ab) - { - if (dicRos == null) dicRos = new Dictionary(); - if (dicRosIntIDs == null) dicRosIntIDs = new Dictionary(); - - myHdr.hSize = BitConverter.ToInt32(ab, 0); - myHdr.hYear = BitConverter.ToInt16(ab, 4); - myHdr.hMonth = ab[6]; - myHdr.hDay = ab[7]; - myHdr.hcYear = BitConverter.ToInt16(ab, 8); - myHdr.hcMonth = ab[10]; - myHdr.hcDay = ab[11]; - myHdr.hcHour = ab[12]; - myHdr.hcMin = ab[13]; - myHdr.hcSec = ab[14]; - myHdr.hcHund = ab[15]; - int hdrOffset = BitConverter.ToInt32(ab, 16); - int howbig = BitConverter.ToInt32(ab, hdrOffset); - int dbs = BitConverter.ToInt16(ab, hdrOffset + 4); - myHdr.myDbs = new rodbi[dbs]; - for (int i = 0; i < dbs; i++) - { - int offset = hdrOffset + 6 + (i * 30); - myHdr.myDbs[i].dbiID = BitConverter.ToInt16(ab, offset + 0); - TableID = myHdr.myDbs[i].dbiID; - myHdr.myDbs[i].dbiType = BitConverter.ToInt16(ab, offset + 2); - myHdr.myDbs[i].dbiAW = BitConverter.ToInt16(ab, offset + 4); - rogrp tmp = LoadGroup(ab, BitConverter.ToInt32(ab, offset + 6)); - myHdr.myDbs[i].ID = tmp.ID; - myHdr.myDbs[i].children = tmp.children; - int iPtr = BitConverter.ToInt32(ab, offset + 22) + hdrOffset + 6; - myHdr.myDbs[i].dbiTitle = Encoding.Default.GetString(ab, iPtr, StringLength(ab, iPtr)); - iPtr = BitConverter.ToInt32(ab, offset + 26) + hdrOffset + 6; - myHdr.myDbs[i].dbiAP = Encoding.Default.GetString(ab, iPtr, StringLength(ab, iPtr)); - } - } - #endregion - #region GetRoValues - public List GetROReturnValue(string roval) - { - lstRoValues = new List(); - lstRoValuesMulti = new List(); - DictROVar = new Dictionary(); // set up a dictionary of RO defined Variables - string tmp = ProcessRO(_DocVersionInfo==null?roval:_DocVersionInfo.ProcessDocVersionSpecificInfo(roval), false); - if (lstRoValues.Count == 0) // was not a multiple return value - lstRoValues.Add(tmp); - else - { - // DictROVar has the variables with their 'key'. Sort these and then put them in the lstRoValues in - // the order of their keys. - List tmpSortRoVar = new List(); - foreach (KeyValuePair kvp in DictROVar) - tmpSortRoVar.Add(kvp.Key + "#" + kvp.Value); - tmpSortRoVar.Sort(); - lstRoValues.Clear(); - foreach (string strRoVar in tmpSortRoVar) - lstRoValues.Add(strRoVar.Substring(strRoVar.IndexOf("#")+1)); - - // we need to order the lstRoValues by the A, B, C, D order in the DictROVar - //lstRoValues.Clear(); - //// in dictionary, find the 'lowest' variable, i.e. the value: - ////char starttmp = ((char)Convert.ToInt32(roval.Substring(12, 4), 16)); - //for (int i = 0; i < DictROVar.Count; i++) - //{ - // bool notfound = true; - // int k = 0; - // while (notfound || k < DictROVar.Count) - // { - // if (DictROVar.ContainsKey(tmp.ToString())) - // lstRoValues.Add(DictROVar[tmp]); - // } - //} - } - return lstRoValues; - } - - private string ProcessRO(string roval, bool multiRtnVal) - { - string str = roval; - string rtnstr = ""; - int l = roval.Length; - while (l > 0) - { - int ptr = NextDelimiter("{", str); - if (ptr == -1) - { // add remaining text - //add(new seText(str, l)); - rtnstr += str; - l = 0; // break out of while loop - } - else - { - int cnt = ptr; //(int)(ptr - str); - if (cnt > 0) - { // add text - //add(new seText(str, cnt)); - rtnstr += str.Substring(0, cnt); - l -= cnt; - //str = ptr; - str = str.Substring(ptr); - } - ptr = MatchingBrace(str) + 1; - cnt = ptr; //(int)(ptr - str); - bool nfnd = false; - string pbstr = ProcessBrace(str.Substring(1, cnt - 2), cnt - 2, ref nfnd, multiRtnVal); - if (nfnd) - rtnstr += str.Substring(0, cnt); - // add(new seText(str, cnt)); - else - rtnstr += pbstr; - l -= cnt; - //str = ptr; - str = str.Substring(ptr); - } - } - //rtnstr = rtnstr.Replace("`", @"\'b0"); // convert backquote to degree - left over from DOS days. - rtnstr = ProcessMacros(rtnstr); - return rtnstr; - } - - // - // Takes the ro text value and sees if a macro has been used. If so it will perform the macro - // operation on the substring in the text value - // - // right now the only macro is @HSP(), where every space between the "(" and ")" will be replaced with a hardspace - // - private string ProcessMacros(string str) - { - if( str == null || str == "" ) return str; - string rtnstr = str; - int indx = -1; - while ((indx = rtnstr.ToUpper().IndexOf("@HSP("))>-1) - { - string resstr = rtnstr.Substring(0,indx); - int endHsp = rtnstr.IndexOf(")",indx); - string tmpstr = rtnstr.Substring(indx+5,endHsp-indx-5); - tmpstr = tmpstr.Replace(" ", @"\u160?"); - resstr = resstr + tmpstr; - rtnstr = resstr + rtnstr.Substring(endHsp+1); - } - return rtnstr; - } - - private string ProcessConditional(string cnd, string opt, int lencnd, int lenopt, bool multiRtnVal) - { - // equaluate condition - string stat = (_DocVersionInfo != null) ? this._DocVersionInfo.Evaluate(cnd, lencnd) : ""; - int ls = stat.Length;//strlen(stat); - if (ls == 0) - return ""; // if evaluation not defined then return an empty string - no matches can be made - // look for match - remember default - string match = null; - int matchlen = 0; - string def = null; - int deflen = 0; - while (lenopt > 0 && match == null) - { - int end = MatchingBrace(opt); - int eq = opt.IndexOf('=');// strchr(opt, '='); - int len = end + 1; //(int)((end + 1) - opt); // +1 to include the '}' - int li = eq - 1;//(int)(eq - opt) - 1; - int ld = len - li - 3;// One for '{', '=' and '}' - if (def == null || eq == 1) // (!def || eq == opt+1) - { - def = opt.Substring(eq + 1); //def=eq+1; - deflen = ld; - } - if (ls == li && opt.Substring(1).StartsWith(stat+"=")) // (stat.IndexOf(opt.Substring(1), li) > -1)) //(ls == li && !strncmp(stat, opt + 1, li)) - { - match = opt.Substring(eq + 1, ld);// match = eq + 1; - matchlen = ld; - } - opt = opt.Substring(len); //opt += len;// point to the next piece - lenopt -= len; - } - // if match process option - or process default - if (match == null) //(!match) - { - match = def.Substring(0, deflen); - matchlen = deflen; - } - return ProcessRO(match, multiRtnVal); //process(match, matchlen); - } - - private string ProcessBrace(string str, int l, ref bool nfnd, bool multiRtnVal) - { - string rtnstr = ""; - int nxt = NextDelimiter("{=", str); //nextDelimiter("{=", str, l); - if (nxt == -1) // no delimiter found - { // VarUse - //strList *found=vl->lookFor(str,l); - bool found = DictROVar.ContainsKey(str); - if (found) - rtnstr = DictROVar[str]; - //add(new seVarUse(found)); - else - nfnd = true; - } - else - { - if (str[nxt] == '{') - { // conditonal or menu - if (nxt == 0) // if (nxt == str) - { // menu - // TODO: implement Menu logic - //ml->process(str, l, vl); - //add(new seMenuUse(ml)); - //lstRoValues.Add(ProcessRO(str.Substring(0,l), true)); - ProcessMultiReturnValues(str, l); - - } - else - { // conditional - rtnstr = ProcessConditional(str, str.Substring(nxt), nxt, str.Length - nxt - 1, multiRtnVal);//processCondition(str, nxt, (int)(nxt - str), l - (int)(nxt - str)); - } - } - else - { // must be variable definiton - //vl->add(str, nxt+1, (int)(nxt-str), (l - (int)(nxt-str))-1, ml); - - // 'l' is the lenght up to the matching brace of the variable definition - string tmpval = ProcessRO(str.Substring(nxt + 1, l - nxt - 1), multiRtnVal); - if (tmpval.Equals(string.Empty)) tmpval = " "; // nothing assinged to variable - DictROVar.Add(str.Substring(0, nxt), tmpval); - if (multiRtnVal) - rtnstr = tmpval; - } - } - return rtnstr; - } - private Dictionary> _ValueLookupDictionary = null; - public List GetRosByValue(string value) - { - if (_ValueLookupDictionary == null) - BuildValueDictionary(); - if (value == string.Empty) - return null; - if(_ValueLookupDictionary.ContainsKey(value.ToUpper())) - return _ValueLookupDictionary[value.ToUpper()]; - return null; - } - private void BuildValueDictionary() - { - _ValueLookupDictionary = new Dictionary>(); - if (dicRos == null) - ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - foreach (rochild child in dicRos.Values) - { - if (child.value != null) - { - string value = child.value.ToUpper(); - if (_ValueLookupDictionary.ContainsKey(value)) - _ValueLookupDictionary[value].Add(new roChild(child)); - else - { - List children = new List(); - children.Add(new roChild(child)); - _ValueLookupDictionary.Add(value, children); - } - } - } - } - private Dictionary _dicROAPID = null; - public rochild? GetROChildByAccPageID(string accPageID, string spDefault, string igDefault) - { - rochild? child = GetRoChildByAccPagID(accPageID, spDefault, igDefault); - if (child == null) - { - if(Regex.IsMatch(accPageID, @".*\.[A-Z]")) - { - string accpage = accPageID.Substring(0, accPageID.Length - 3); - int index = accPageID.Substring(accPageID.Length - 2, 1)[0] - 'A'; - child = GetRoChildByAccPagID(accpage, spDefault, igDefault); - if (child == null) return null; - if (((rochild)child).children != null && ((rochild)child).children.Length > 0 && ((rochild)child).children.Length > index) - return ((rochild)child).children[index]; - } - return null; - } - if (((rochild)child).children != null && ((rochild)child).children.Length > 0) - return ((rochild)child).children[0]; - return (rochild)child; - } - public string GetROValueByAccPagID(string accPageID, string spDefault, string igDefault) - { - rochild? child = GetROChildByAccPageID(accPageID, spDefault, igDefault); - if (child == null) return null; - return ((rochild)child).value; - } - public int? GetROTypeByAccPagID(string accPageID, string spDefault, string igDefault) - { - rochild? child = GetROChildByAccPageID(accPageID, spDefault, igDefault); - if (child == null) return null; - return ((rochild)child).type; - } - public string GetROIDByAccPagID(string accPageID, string spDefault, string igDefault) - { - rochild? child = GetROChildByAccPageID(accPageID, spDefault, igDefault); - if (child == null) return null; - return ((rochild)child).roid; - } - public rochild? GetRoChildByAccPagID(string accPageID, string spDefault, string igDefault) - { - if (_dicROAPID == null) - BuildROAPIDDictionary(); - accPageID = accPageID.Replace("".ToCharArray()); // String < and > - if (_dicROAPID.ContainsKey(accPageID)) - return _dicROAPID[accPageID]; - return null; - } - private void BuildROAPIDDictionary() - { - if (dicRos == null) - ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - _dicROAPID = new Dictionary(); - foreach (rodbi dbi in myHdr.myDbs) - { - if (dbi.children != null) - BuildROAPIDDictionary(dbi.dbiAP, dbi.children); - } - } - private void BuildROAPIDDictionary(string prefix, rochild[] children) - { - foreach (rochild child in children) - { - if (child.appid != null && child.appid != "" && child.ID != 0) - { - string key = string.Format("{0}-{1}", prefix, child.appid); - if (!_dicROAPID.ContainsKey(key)) - _dicROAPID.Add(key, child); - } - if (child.children != null) - BuildROAPIDDictionary(prefix, child.children); - } - } - private void ProcessMultiReturnValues(string str, int len) - { - string tstr = str.Substring(0, len); - while (tstr.Length > 0) - { - int idx = MatchingBrace(tstr); - string tmpro = ProcessRO(tstr.Substring(0, idx + 1), true); - lstRoValues.Add(tmpro); - tstr = tstr.Substring(idx + 1); - } - } - - - private int MatchingBrace(string str) - { - int level = 1; - int idx = 0; // the while will skip the first position (the first brace) - while (level > 0 && idx++ < str.Length) - { - switch (str[idx]) - { - case '{': - level++; - break; - case '}': - level--; - break; - } - } - if (level != 0) - idx = -1; // didn't find matching brace - - return idx; //length including end brace - } - - private int NextDelimiter(string delim, string str) - { - int idx; - idx = str.IndexOfAny(delim.ToCharArray()); - return idx; - } - public List GetRoChildrenByType(int type) - { - List children = new List(); - AddRoChildByType(children, type); - return children; - } - private void AddRoChildByType(List children, int type) - { - foreach (rodbi dbi in myHdr.myDbs) - { - if (dbi.children != null) - AddRoChildByType(dbi.children,children,type); - } - } - private void AddRoChildByType(rochild[] roChildren, List children, int type) - { - foreach (rochild child in roChildren) - { - if (child.type == type && child.value != null) - children.Add(child); - if (child.children != null) - AddRoChildByType(child.children,children,type); - } - } - #endregion - #region FortranFormat - public static string ConvertFortranFormatToScienctificNotation(string str) - { - // ([+-]?|\\u8209\?) either an optional single character Plus (+) or Minus (-) or non-breaking dash (\u8209?) - // ([0-9]+) a group of at least one digits - // [.] a decimal point - // ([0-9]*?) a group of zero or more digits - // 0*E optional zeros (spare zeros) followed - // ([+-]?|\\u8209\?) either an optional single character Plus (+) or Minus (-) or non-breaking dash (\u8209?) - // ([0-9]+) a group of at least one digits - string retval = Regex.Replace(str, @"([+-]?|\\u8209\?)([0-9]+)[.]([0-9]*?)0*E([+-]?|\\u8209\?)([0-9]+)", new MatchEvaluator(FixFortranNumber)); - // don't convert # and ~ to super/subscripts, this is a DOS holdout and is done only for non-procedure step sections - //retval = Regex.Replace(retval, "[#](.*?)[#]", "\\up2 $1\\up0 ");// DOS Superscript - //retval = Regex.Replace(retval, "[~](.*?)[~]", "\\dn2 $1\\up0 ");// DOS Subscript - return retval; - } - private static string FixFortranNumber(Match match) - { - StringBuilder sb = new StringBuilder(match.Groups[1].Value.Replace("-",@"\u8209?")); - if (match.Groups[3].Length == 0) // Nothing to the right of the decimal - if (match.Groups[2].Value != "1") // Other than "1", multiply it times 10 raised to a power - sb.Append(match.Groups[2].Value + "x10"); - else // The number is simply 1 so it can be ignored and 10 can be raised to a power - sb.Append("10"); - else // A number with a decimal point - sb.Append(match.Groups[2].Value + "." + match.Groups[3].Value + "x10"); - // Add the exponent as superscript - return sb.ToString() + "\\up2 " + match.Groups[4].Value.Replace("-",@"\u8209?") + match.Groups[5].Value + "\\up0 "; - } - #endregion - } - [Flags] - public enum E_ROValueType : uint - { - All = 0, - Text = 1, - Table = 2, - Graph = 4, - Image = 8, - Video = 16, - Hologram = 32 - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup.cs.bak b/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup.cs.bak deleted file mode 100644 index e454de1c..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Config/ROFSTLookup.cs.bak +++ /dev/null @@ -1,1156 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections.Specialized; -using System.Text; -using System.ComponentModel; -using System.Text.RegularExpressions; -using System.IO; - -namespace VEPROMS.CSLA.Library -{ - [Serializable] - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ROFSTLookup - { - #region Log4Net - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Structs - [Serializable] - public struct roHdr - { - public int hSize; - public int hYear; - public byte hMonth; - public byte hDay; - public int hcYear; - public byte hcMonth; - public byte hcDay; - public byte hcHour; - public byte hcMin; - public byte hcSec; - public byte hcHund; - public rodbi[] myDbs; - }; - [Serializable] - public struct rodbi - { - public int dbiID; - public int dbiType; - public int dbiAW; - public string dbiTitle; - public string dbiAP; - public int ID; - public int ParentID; - public rochild[] children; - }; - public struct rogrp - { - public int ID; - public int ParentID; - public rochild[] children; - public string value; - public string appid; - }; - public struct rochild - { - public int ID; - public int ParentID; - public int type; - public string title; - public string roid; - public string appid; - public string value; - public rochild[] children; - }; - public class roChild - { - rochild _MyChild; - public rochild MyChild - { - get { return _MyChild; } - set { _MyChild = value; } - } - public roChild(rochild myChild) - { - _MyChild = myChild; - } - public override string ToString() - { - return _MyChild.title; - } - }; - #endregion - #region Local Data - private string _ROValue = ""; - private List lstRoValues; - private List multiRoValues; - private Dictionary DictROVar = new Dictionary(); - #endregion - #region Constructors - private ROFst _ROFst; - private ROFstInfo _ROFstInfo; - private int _SelectedSlave; - - private DocVersionInfo _DocVersionInfo; - - public DocVersionInfo DocVersionInfo - { - get { return _DocVersionInfo; } - set - { - _DocVersionInfo = value; - if (_DocVersionInfo.DocVersionConfig.SelectedSlave != _SelectedSlave) - { - _SelectedSlave = _DocVersionInfo.DocVersionConfig.SelectedSlave; - Reset(); - } - } - } - public ROFSTLookup(ROFst rofst) - { - _ROFst = rofst; - _ROFstInfo = null; - using (ROFstInfo rfi = ROFstInfo.GetJustROFst(_ROFst.ROFstID)) - { - _DocVersionInfo = rfi.docVer;//==null?null: DocVersionInfo.Get(rfi.docVer.VersionID); - } - ParseIntoDictionary(rofst.ROLookup); - } - public ROFSTLookup(ROFstInfo rofstinfo) - { - _ROFstInfo = rofstinfo; - _ROFst = null; - // docversion will be null if we're working with an ro.fst that is not currently connected - // to a docversion. One example of this is when updating ro.fst and comparing the original - // with the new to find differences. The docversioninfo is only used to get unit/master - // slave info, thus is not needed to compare the raw values. - _DocVersionInfo = _ROFstInfo.docVer;//==null?null: DocVersionInfo.Get(_ROFstInfo.docVer.VersionID); - ParseIntoDictionary(rofstinfo.ROLookup); - } - public ROFSTLookup(string filePath) - { - _ROFstInfo = null; - _ROFst = null; - _DocVersionInfo = null; - FileInfo rofstFile = new FileInfo(filePath); - FileStream fs = rofstFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - byte[] buf = new byte[rofstFile.Length]; - fs.Read(buf, 0, buf.Length); - fs.Close(); - ParseIntoDictionary(buf); - } - #endregion - #region PropertiesAndData - public roHdr myHdr; - private int TableID; - private Dictionary dicRos; - private Dictionary dicRosIntIDs; - public void Reset() - { - dicRos = null; - dicRosIntIDs = null; - } - #endregion - #region AppSupport - public void Close() - { - // remove the dictionary - if (dicRosIntIDs != null)dicRosIntIDs.Clear(); - dicRosIntIDs = null; - if (dicRos != null)dicRos.Clear(); - dicRos = null; - } - public List GetValueDifferences(ROFSTLookup origROFst, ref List delList) - { - // use this list to see what differences are between it and the original - List modList = new List(); - // assume each rofstlookup has a parsed dictionary - foreach (string key in origROFst.dicRos.Keys) - { - string cvalue = null; - string ovalue = origROFst.dicRos[key].value; - if (dicRos.ContainsKey(key)) - cvalue = dicRos[key].value; - if (cvalue == null && cvalue != ovalue) - delList.Add(key); - else if (cvalue != ovalue) - { - // Value Change - modList.Add(key); - //Console.WriteLine("RO{0}\t\"{1}\"\t\"{2}\"", key, cvalue, ovalue); - } - } - return modList; - } - //public static ROImageInfo Get(RODbInfo rodbinfo, string filename) - //{ - // if (rodbinfo.RODbROImageCount != 0) - // { - // foreach (ROImageInfo ri in rodbinfo.RODbROImages) - // { - // if (ri.FileName == filename) return ri; - // } - // } - // return null; - //} - - public string GetTranslatedRoValue(string ROID16, bool DoCaret) - { - string retval = GetRoValue(ROID16); - retval = ReplaceUnicode(retval, DoCaret); - retval = ConvertFortranFormatToScienctificNotation(retval); - return retval.Replace("\r\n", @"\par "); - } - private string ReplaceUnicode(string s2, bool DoCaret) - { - string orig = s2; - s2 = s2.Replace("`", @"\'b0"); // convert backquote to degree - left over from DOS days. - s2 = s2.Replace("\xa0", @"\u160?"); // hardspace - s2 = s2.Replace("\xb0", @"\'b0"); // degree - s2 = s2.Replace("\x7f", @"\u916?"); // delta - s2 = s2.Replace("\x2265", @"\u8805?"); // greater than or equal - s2 = s2.Replace("\x2264", @"\u8804?"); // less than or equal - s2 = s2.Replace("\xB1", @"\'b1"); // plus minus - s2 = s2.Replace("\x3A3", @"\u931?"); // sigma - s2 = s2.Replace("\x3C4", @"\u947?"); // gamma - s2 = s2.Replace("\xBD", @"\'bd"); // half - s2 = s2.Replace("\x25A0", @"\u9604?"); // accum 2584 - s2 = s2.Replace("\x7", @"\u9679?"); // bullet 25CF - s2 = s2.Replace("\x2248", @"\u8776?"); // approx eq - s2 = s2.Replace("\x2261", @"\u8773?"); // similar eq 2245 - s2 = s2.Replace("\xF7", @"\'f7"); // division - s2 = s2.Replace("\x221A", @"\u8730?"); // square root - s2 = s2.Replace("\x393", @"\u961?"); // rho 3C1 - s2 = s2.Replace("\x3C0", @"\u960?"); // pi - s2 = s2.Replace("\xb5", @"\u956?"); // micro 3BC (try e6, if not work try 109) - s2 = s2.Replace("\x3B4", @"\u948?"); // lower case delta - s2 = s2.Replace("\x3C3", @"\u963?"); // lower case sigma - s2 = s2.Replace("\xBC", @"\'bc"); // quarter - s2 = s2.Replace("\x3C6", @"\'d8"); // dist zero, D8 - s2 = s2.Replace("\xC9", @"\u274?"); // energy, 112 - s2 = s2.Replace("\xEC", @"\'ec"); // grave - s2 = s2.Replace("\x2502", @"\u9474?"); // bar - s2 = s2.Replace("\x3B5", @"\u949?"); // epsilon - s2 = s2.Replace("\x398", @"\u952?"); // theta, 3B8 - s2 = s2.Replace("\x221E", @"\u8857?"); // dot in oval, 2299 - s2 = s2.Replace("\xBF", @"\u964?"); // tau, 3C4 - s2 = s2.Replace("\x2310", @"\u9830?"); // diamond, 2666 - s2 = s2.Replace("\x2192", @"\u8594?"); - s2 = s2.Replace("\x2190", @"\u8592?"); - s2 = s2.Replace("\x2191", @"\u8593?"); - s2 = s2.Replace("\x2193", @"\u8595?"); - s2 = s2.Replace("\x2207", @"\u8711?"); - s2 = s2.Replace("\x2591", @"\'b0"); // Degree Symbol - s2 = s2.Replace("\xFF", @"\u8593?"); // Up Arrow - s2 = s2.Replace("\xD6", @"\u8595?"); // Down Arrow - - if (DoCaret) s2 = s2.Replace("^", @"\u916?"); - // Convert dash to a non-breaking dash. This is a unicode character. - // This character will be used in veproms rather than a dash. - //if the dash is preceeded byte a token remove the space following the token - s2 = Regex.Replace(s2, @"(\\[^ \\?]*) \-", @"$1\u8209?"); - s2 = s2.Replace("-", @"\u8209?"); - return s2; - } - private string FixUnitROs(string val) - { - if (val.StartsWith("") val = _ROFstInfo.docVer.DocVersionConfig.Unit_Text; - else if (val.ToUpper() == "") val = _ROFstInfo.docVer.DocVersionConfig.Unit_Number; - else if (val.ToUpper() == "") val = _ROFstInfo.docVer.DocVersionConfig.Unit_Name; - else if (val.ToUpper() == "") val = _ROFstInfo.docVer.DocVersionConfig.Unit_ID; - else if (val.ToUpper() == "") val = _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Text; - else if (val.ToUpper() == "") val = _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Number; - else if (val.ToUpper() == "") val = _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Name; - else if (val.ToUpper() == "") val = _ROFstInfo.docVer.DocVersionConfig.Other_Unit_ID; - } - return val; - } - // this only gets rochild values. Later we may want another - // dictionary to get groups. - public string GetRoValue(string ROID16) - { - string ROID = ROID16.Substring(0,12); - if (dicRos == null) ParseIntoDictionary(_ROFst!=null?_ROFst.ROLookup:_ROFstInfo.ROLookup); - // Use the ROID to get the value from the dictionary - if (dicRos.ContainsKey(ROID.ToUpper())) - { - rochild rochld = (rochild)dicRos[ROID.ToUpper()]; - if (rochld.value != null && rochld.value != string.Empty) - return FixUnitROs( rochld.value); - if (rochld.children != null) - { - foreach (rochild child in rochld.children) - if (child.roid.ToUpper() == ROID16.ToUpper() || (child.roid.EndsWith("0041") && ROID16.EndsWith("0000"))) - return FixUnitROs(child.value); - // if there isn't a specific match for multi-return values, default to the first child. - return FixUnitROs(rochld.children[0].value); - } - } - //if (ROID == "FFFF00000001") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Number; - //if (ROID == "FFFF00000002") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Number; - //if (ROID == "FFFF00000003") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Text; - //if (ROID == "FFFF00000004") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Text; - //if (ROID == "FFFF00000005") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_ID; - //if (ROID == "FFFF00000006") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_ID; - //if (ROID == "FFFF00000007") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Unit_Name; - //if (ROID == "FFFF00000008") return _ROFstInfo.ROFstAssociations[0].MyDocVersion.DocVersionConfig.Other_Unit_Name; - //new stuff - if (ROID == "FFFF00000001") return _ROFstInfo.docVer.DocVersionConfig.Unit_Number; - if (ROID == "FFFF00000002") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Number; - if (ROID == "FFFF00000003") return _ROFstInfo.docVer.DocVersionConfig.Unit_Text; - if (ROID == "FFFF00000004") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Text; - if (ROID == "FFFF00000005") return _ROFstInfo.docVer.DocVersionConfig.Unit_ID; - if (ROID == "FFFF00000006") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_ID; - if (ROID == "FFFF00000007") return _ROFstInfo.docVer.DocVersionConfig.Unit_Name; - if (ROID == "FFFF00000008") return _ROFstInfo.docVer.DocVersionConfig.Other_Unit_Name; - //end new stuff - if (ROID.StartsWith("FFFF")) return "?"; // string.Format("Invalid Unit RO '{0}'", ROID); - return "?"; // string.Format("Invalid RO '{0}'", ROID); - } - // Get the the RO's Accessory Page ID - public string GetRoACID(string ROID16) - { - string ROID = ROID16.Substring(0,12); - if (dicRos == null) ParseIntoDictionary(_ROFst!=null?_ROFst.ROLookup:_ROFstInfo.ROLookup); - // Use the ROID to get the value from the dictionary - if (dicRos.ContainsKey(ROID.ToUpper())) - { - rochild rochld = (rochild)dicRos[ROID.ToUpper()]; - if (rochld.value != null && rochld.value != string.Empty) - return rochld.appid; - if (rochld.children != null) - { - foreach (rochild child in rochld.children) - if (child.roid.ToUpper() == ROID16 || (child.roid.EndsWith("0041") && ROID16.EndsWith("0000"))) - return child.appid; - // if there isn't a specific match for multi-return values, default to the first child. - return rochld.children[0].appid; - } - } - return ""; // no accessory page ID found - } - public rochild GetRoChild12(string ROID16) - { - string ROID = ROID16.Substring(0, 12); - if (dicRos == null) ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - // Use the ROID to get the value from the dictionary - if (dicRos.ContainsKey(ROID.ToUpper())) - { - rochild rochld = (rochild)dicRos[ROID.ToUpper()]; - return rochld; - } - rochild tmp = new rochild(); - tmp.ID = -1; - return tmp; - } - public rochild GetRoChild(string ROID) - { - if (dicRos == null) ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - // Use the ROID to get the value from the dictionary - if (dicRos.ContainsKey(ROID.ToUpper())) - { - rochild rochld = (rochild)dicRos[ROID.ToUpper()]; - return rochld; - } - if (ROID.StartsWith("FFFF")) - { - rochild roc = new rochild(); - roc.roid = ROID; - roc.type = 1; - int selectedSlave = _ROFstInfo.docVer.DocVersionConfig.SelectedSlave; - _ROFstInfo.docVer.DocVersionConfig.SelectedSlave = 0; - roc.value = GetRoValue(ROID); - _ROFstInfo.docVer.DocVersionConfig.SelectedSlave = selectedSlave; - switch (ROID) - { - case "FFFF00000001": - roc.appid = "U-Number"; - break; - case "FFFF00000002": - roc.appid = "U-Other Number"; - break; - case "FFFF00000003": - roc.appid = "U-Text"; - break; - case "FFFF00000004": - roc.appid = "U-Other Text"; - break; - case "FFFF00000005": - roc.appid = "U-ID"; - break; - case "FFFF00000006": - roc.appid = "U-Other ID"; - break; - case "FFFF00000007": - roc.appid = "U-Name"; - break; - case "FFFF00000008": - roc.appid = "U-Other Name"; - break; - default: - roc.appid = "U-Unknown"; - break; - } - return roc; - } - rochild tmp = new rochild(); - tmp.ID = -1; - return tmp; - } - public string GetROTitle(string ROID) - { - StringBuilder sb = new StringBuilder(); - rochild roc = GetRoChild12(ROID); - if (roc.value == null) - roc = GetRoChild(ROID); - sb.Append(roc.title.Replace(roc.appid,"").Replace(roc.value,"").Trim()); - do - { - string parent = ROID.Substring(0, 4) + string.Format("{0:X8}", roc.ParentID); - roc = GetRoChild12(parent); - if (roc.ID > 0) - sb.Insert(0, roc.title + " - "); - } while (roc.ID > 0); - return sb.ToString(); - } - // Return the RO Title in a list of strings - // The last item in the list is the actual RO title, the items preceding it are the - // titles of the groups and sub-groups containing the RO - public List GetROTitleAndGroupPath(string ROID) - { - List titlePath = new List(); - rochild roc = GetRoChild12(ROID); - //string tmp = roc.title.Replace(roc.appid, "").Replace(roc.value, "").Trim(); - string tmp = roc.title.Replace(roc.appid, string.Format("<{0}>",roc.appid)).Trim(); - titlePath.Add(tmp); - do - { - string parent = ROID.Substring(0, 4) + string.Format("{0:X8}", roc.ParentID); - roc = GetRoChild12(parent); - if (roc.ID > 0) - titlePath.Add(roc.title); - } while (roc.ID > 0); - titlePath.Reverse(); - return titlePath; - } - - // The following Method is not correct. It needs to have a RO database id as well as an id. Without that, - // the first RO with a specific id will be found regardless of the RO Database id. - //public rochild GetRoChildFromID(int id) - //{ - // if (dicRosIntIDs == null) ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - // // Use the id to get the value from the dictionary - // if (dicRosIntIDs.ContainsKey(id)) - // { - // rochild rochld = (rochild)dicRosIntIDs[id]; - // return rochld; - // } - // rochild tmp = new rochild(); - // tmp.ID = -1; - // return tmp; - //} - public rodbi[] GetRODatabaseList() - { - return myHdr.myDbs; - } - //public string GetDefaultROPrefix() - //{ - // if (docVer != null) - // return docVer.DocVersionConfig.RODefaults_setpointprefix; - // else - // return "SP1"; // Not Sure about this... - //} - //public string GetDefaultGraphicsPrefix() - //{ - // if (docVer != null) - // return docVer.DocVersionConfig.RODefaults_graphicsprefix; - // else - // return "IG1"; // Not Sure about this... - //} - #region Update Ro Values - /// - /// Updates an ro.fst into a sql database. - /// - /// - /// ROFst: Returns the created rofst object - //public static ROFst UpdateRoFst(RODbInfo rdi, DocVersionAssociation dva, DocVersion docver) - //{ - // // file validity checks are done before getting here - just do the import - // // here. - // string rofstfilepath = rdi.FolderPath + @"\ro.fst"; - - // DirectoryInfo di = new DirectoryInfo(rdi.FolderPath); - - // // There may be more than 1 'ro' as the 'ROName' field (ROName is derived from the ropath). - // // Get new name be incrementing, if so. - // string newname = NewROName(di.Name); - - // // Next read in the rofst & make the rofst record. - // FileStream fsIn = new FileStream(rofstfilepath, FileMode.Open, FileAccess.Read, FileShare.Read); - // // Create an instance of StreamReader that can read characters from the FileStream. - // BinaryReader r = new BinaryReader(fsIn); - // byte[] ab = r.ReadBytes((int)fsIn.Length); - // fsIn.Close(); - - // using (RODb rd = RODb.Get(rdi.RODbID)) - // { - // ROFst rofst = ROFst.MakeROFst(rd, ab, null, di.LastWriteTimeUtc, rdi.UserID); - // // Hook this into the current docversion by replacing the rofstid field in the doc version - // // association object: - // dva.MyROFst = rofst; - // docver.Save(); - - // // Now load any images in... type 8 - integrated graphics ro type - // ROFstInfo rofstInfo = ROFstInfo.Get(rofst.ROFstID); - // rofstInfo.ParseIntoDictionary(rofstInfo.ROFST); - // for (int i = 0; i < rofstInfo.myHdr.myDbs.Length; i++) - // { - // // walk through the rofst 'database' searching for all nodes that are integrated graphics, type 8: - // if (rofstInfo.myHdr.myDbs[i].children != null) rofstInfo.MigrateRoFstGraphics(rdi, rofstInfo.myHdr.myDbs[i].children); - // } - // return rofst; - // } - //} - //private static string RoAppConfigExt(string fstPath) - //{ - // string inipath = fstPath + @"\roapp.ini"; - // if (!File.Exists(inipath)) return null; - // StreamReader myReader = new StreamReader(inipath); - // string sLine; - // int indx = -1; - // while ((sLine = myReader.ReadLine()) != null) - // { - // if (sLine.Length > 0 && sLine.Substring(0, 1) != ";") - // { - // if ((indx = sLine.ToLower().IndexOf("extention")) >= 0) - // { - // indx = sLine.IndexOf("=", indx + 9); - // return sLine.Substring(indx + 1, sLine.Length - indx - 1).Trim(); - // } - // } - // } - // myReader.Close(); - // return null; - //} - //private static string NewROName(string roName) - //{ - // string retval = roName; - // int iSuffix = -1; - // RODbInfoList rodblist = RODbInfoList.Get(); - - - // foreach (RODbInfo rdi in rodblist) - // { - // if (rdi.ROName.StartsWith(roName)) - // { - // if (rdi.ROName == roName) - // iSuffix = 0; - // else if (Regex.IsMatch(rdi.ROName, roName + "[_][0-9]+")) - // { - // int ii = int.Parse(rdi.ROName.Substring(1 + roName.Length)); - // if (ii > iSuffix) iSuffix = ii; - // } - // } - // } - // if (iSuffix >= 0) - // retval = string.Format("{0}_{1}", roName, iSuffix + 1); - // return retval; - //} - //private void MigrateRoFstGraphics(RODbInfo rdi, ROFstInfo.rochild[] rochild) - //{ - // for (int i = 0; i < rochild.Length; i++) - // { - // if (rochild[i].type == 8) AddGraphic(rdi, rochild[i].value); - // if (rochild[i].children != null) MigrateRoFstGraphics(rdi, rochild[i].children); - // } - //} - //private void AddGraphic(RODbInfo rdi, string p) - //{ - // if (p == null) return; - // string imgname = p.Substring(0, p.IndexOf('\n')); - // int thedot = imgname.LastIndexOf('.'); - // string fname = imgname; - // if (thedot == -1 || (thedot != (imgname.Length - 4))) - // { - // RODbConfig roDbCfg = new RODbConfig(rdi.Config); - // fname += string.Format(".{0}", roDbCfg.GetDefaultGraphicExtension()); - // } - - // string imgfile = rdi.FolderPath + @"\" + fname; - - // ROImage roImg = null; - // if (File.Exists(imgfile)) - // { - // FileInfo fi = new FileInfo(imgfile); - // // if the roimage record exists, don't create a new one... - // using (roImg = ROImage.GetByRODbID_FileName_DTS(rdi.RODbID, imgname, fi.LastWriteTimeUtc)) - // { - // if (roImg == null) - // { - // FileStream fsIn = new FileStream(imgfile, FileMode.Open, FileAccess.Read, FileShare.Read); - // BinaryReader r = new BinaryReader(fsIn); - // byte[] ab = r.ReadBytes((int)fsIn.Length); - // r.Close(); - // fsIn.Close(); - // using (RODb rodb = RODb.Get(rdi.RODbID)) - // { - // roImg = ROImage.MakeROImage(rodb, imgname, ab, null, fi.LastWriteTimeUtc, "Migration"); - // } - // } - // Figure figure = Figure.GetByROFstID_ImageID(this.ROFstID, roImg.ImageID); - // if (figure != null) return; - // using (ROFst rofst = ROFst.Get(this.ROFstID)) - // { - // figure = Figure.MakeFigure(rofst, roImg, null); - // } - // } - // } - // else - // Console.WriteLine(string.Format("{0}", imgfile), "Cannot Find Image File"); - //} - #endregion - #endregion - #region LoadStructs - private int StringLength(byte[] ab, int offset) - { - int i = 0; - while (ab[i + offset] != 0) i++; - return i; - } - private rogrp LoadGroup(byte[] ab, int offset) - { - rogrp myGrp = new rogrp(); - myGrp.ID = BitConverter.ToInt32(ab, offset); - if (myGrp.ID == 1195) - Console.WriteLine("jcb"); - myGrp.ParentID = BitConverter.ToInt32(ab, offset + 4); - int howmany = BitConverter.ToInt16(ab, offset + 8); - if (howmany > 0) - { - myGrp.children = new rochild[howmany]; - int myOffset = offset + 10; - for (int i = 0; i < myGrp.children.Length; i++) - { - int childOffset = BitConverter.ToInt32(ab, myOffset); - rochild tmp = new rochild(); - //tmp.offset=BitConverter.ToInt32(ab,myOffset); - tmp.type = BitConverter.ToInt16(ab, myOffset + 4); - int slen = StringLength(ab, myOffset + 6); - tmp.title = Encoding.Default.GetString(ab, myOffset + 6, slen); - myOffset += (7 + slen); - rogrp tmpg = LoadGroup(ab, childOffset); - MultipleReturnValuesInheritType(ref tmpg, tmp.type); - tmp.ID = tmpg.ID; - tmp.ParentID = tmpg.ParentID; - tmp.children = tmpg.children; - tmp.value = tmpg.value; - tmp.appid = tmpg.appid; - tmp.roid = TableID.ToString("X4") + tmp.ID.ToString("X8"); - // Add dictionary entries for children - if (tmp.children != null) - { - foreach (rochild child in tmp.children) - if (!dicRos.ContainsKey(child.roid.ToUpper())) - dicRos.Add(child.roid.ToUpper(), child); - } - dicRos.Add(tmp.roid.ToUpper(), tmp); - if (!dicRosIntIDs.ContainsKey(tmp.ID)) dicRosIntIDs.Add(tmp.ID, tmp); - int j; - for (j = i - 1; j >= 0 && tmp.ID < myGrp.children[j].ID; j--) - { - myGrp.children[j + 1] = myGrp.children[j]; - } - myGrp.children[j + 1] = tmp; - } - } - else - { - int slen = StringLength(ab, offset + 12); - //myGrp.value = Encoding.Default.GetString(ab, offset + 12, slen); - ProcessROReturnValue(ref myGrp, Encoding.Default.GetString(ab, offset + 12, slen)); - int slen2 = StringLength(ab, offset + 13 + slen); - myGrp.appid = Encoding.Default.GetString(ab, offset + 13 + slen, slen2); - } - return myGrp; - } - - /// - /// This function will take the raw RO return value and resolve any macros, conditionals, and - /// generated the return value or a list of multiple return values. - /// - /// - /// - private void ProcessROReturnValue(ref rogrp myGrp, string rawvalue) - { - if (dicRos == null) ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - List lstROVals = GetROReturnValue(rawvalue); - if (lstROVals.Count > 1) // mulitple return values - { - myGrp.children = new rochild[lstROVals.Count]; - for (int i = 0; i < lstROVals.Count; i++) - { - string tsts = Convert.ToInt32(multiRoValues[i][0]).ToString("X4"); - myGrp.children[i].value = lstROVals[i]; - myGrp.children[i].roid = TableID.ToString("X4") + myGrp.ID.ToString("X8") + tsts; - myGrp.children[i].type = -1; // Multiple return value inherit type from parent - myGrp.children[i].title = lstROVals[i]; - } - } - else - myGrp.value = lstROVals[0]; - return; - - } - /// - /// Multiple return values need to get the type from the parent node. - /// - /// - /// - private void MultipleReturnValuesInheritType(ref rogrp myGrp, int parenttype) - { - if (myGrp.children != null) - { - for (int cnt = 0; cnt < myGrp.children.Length; cnt++) - { - if (myGrp.children[cnt].type == -1) - { - myGrp.children[cnt].type = parenttype; - myGrp.children[cnt].appid = myGrp.appid; - } - } - } - } - - private void ParseIntoDictionary(byte[] ab) - { - if (dicRos == null) dicRos = new Dictionary(); - if (dicRosIntIDs == null) dicRosIntIDs = new Dictionary(); - - myHdr.hSize = BitConverter.ToInt32(ab, 0); - myHdr.hYear = BitConverter.ToInt16(ab, 4); - myHdr.hMonth = ab[6]; - myHdr.hDay = ab[7]; - myHdr.hcYear = BitConverter.ToInt16(ab, 8); - myHdr.hcMonth = ab[10]; - myHdr.hcDay = ab[11]; - myHdr.hcHour = ab[12]; - myHdr.hcMin = ab[13]; - myHdr.hcSec = ab[14]; - myHdr.hcHund = ab[15]; - int hdrOffset = BitConverter.ToInt32(ab, 16); - int howbig = BitConverter.ToInt32(ab, hdrOffset); - int dbs = BitConverter.ToInt16(ab, hdrOffset + 4); - myHdr.myDbs = new rodbi[dbs]; - for (int i = 0; i < dbs; i++) - { - int offset = hdrOffset + 6 + (i * 30); - myHdr.myDbs[i].dbiID = BitConverter.ToInt16(ab, offset + 0); - TableID = myHdr.myDbs[i].dbiID; - myHdr.myDbs[i].dbiType = BitConverter.ToInt16(ab, offset + 2); - myHdr.myDbs[i].dbiAW = BitConverter.ToInt16(ab, offset + 4); - rogrp tmp = LoadGroup(ab, BitConverter.ToInt32(ab, offset + 6)); - myHdr.myDbs[i].ID = tmp.ID; - myHdr.myDbs[i].children = tmp.children; - int iPtr = BitConverter.ToInt32(ab, offset + 22) + hdrOffset + 6; - myHdr.myDbs[i].dbiTitle = Encoding.Default.GetString(ab, iPtr, StringLength(ab, iPtr)); - iPtr = BitConverter.ToInt32(ab, offset + 26) + hdrOffset + 6; - myHdr.myDbs[i].dbiAP = Encoding.Default.GetString(ab, iPtr, StringLength(ab, iPtr)); - } - } - #endregion - #region GetRoValues - public List GetROReturnValue(string roval) - { - lstRoValues = new List(); - multiRoValues = new List(); - DictROVar = new Dictionary(); // set up a dictionary of RO defined Variables - string tmp = ProcessRO(_DocVersionInfo==null?roval:_DocVersionInfo.ProcessDocVersionSpecificInfo(roval), false); - if (tmp != null && lstRoValues.Count == 0) // was not a multiple return value - lstRoValues.Add(tmp); - return lstRoValues; - } - - private string ProcessRO(string roval, bool multiRtnVal) - { - string str = roval; - string rtnstr = ""; - int l = roval.Length; - while (l > 0) - { - int ptr = NextDelimiter("{", str); - if (ptr == -1) - { // add remaining text - //add(new seText(str, l)); - rtnstr += str; - l = 0; // break out of while loop - } - else - { - int cnt = ptr; //(int)(ptr - str); - if (cnt > 0) - { // add text - //add(new seText(str, cnt)); - rtnstr += str.Substring(0, cnt); - l -= cnt; - //str = ptr; - str = str.Substring(ptr); - } - ptr = MatchingBrace(str) + 1; - cnt = ptr; //(int)(ptr - str); - bool nfnd = false; - string pbstr = ProcessBrace(str.Substring(1, cnt - 2), cnt - 2, ref nfnd, multiRtnVal); - if (pbstr == null) return null; - if (nfnd) - rtnstr += str.Substring(0, cnt); - // add(new seText(str, cnt)); - else - rtnstr += pbstr; - l -= cnt; - //str = ptr; - str = str.Substring(ptr); - } - } - //rtnstr = rtnstr.Replace("`", @"\'b0"); // convert backquote to degree - left over from DOS days. - rtnstr = ProcessMacros(rtnstr); - return rtnstr; - } - - // - // Takes the ro text value and sees if a macro has been used. If so it will perform the macro - // operation on the substring in the text value - // - // right now the only macro is @HSP(), where every space between the "(" and ")" will be replaced with a hardspace - // - private string ProcessMacros(string str) - { - if( str == null || str == "" ) return str; - string rtnstr = str; - int indx = -1; - while ((indx = rtnstr.ToUpper().IndexOf("@HSP("))>-1) - { - string resstr = rtnstr.Substring(0,indx); - int endHsp = rtnstr.IndexOf(")",indx); - string tmpstr = rtnstr.Substring(indx+5,endHsp-indx-5); - tmpstr = tmpstr.Replace(" ", @"\u160?"); - resstr = resstr + tmpstr; - rtnstr = resstr + rtnstr.Substring(endHsp+1); - } - return rtnstr; - } - - private string ProcessConditional(string cnd, string opt, int lencnd, int lenopt, bool multiRtnVal) - { - // equaluate condition - string stat = (_DocVersionInfo != null) ? this._DocVersionInfo.Evaluate(cnd, lencnd) : ""; - int ls = stat.Length;//strlen(stat); - if (ls == 0) - return ""; // if evaluation not defined then return an empty string - no matches can be made - // look for match - remember default - string match = null; - int matchlen = 0; - string def = null; - int deflen = 0; - while (lenopt > 0 && match == null) - { - int end = MatchingBrace(opt); - int eq = opt.IndexOf('=');// strchr(opt, '='); - int len = end + 1; //(int)((end + 1) - opt); // +1 to include the '}' - int li = eq - 1;//(int)(eq - opt) - 1; - int ld = len - li - 3;// One for '{', '=' and '}' - if (def == null || eq == 1) // (!def || eq == opt+1) - { - def = opt.Substring(eq + 1); //def=eq+1; - deflen = ld; - } - if (ls == li && opt.Substring(1).StartsWith(stat+"=")) // (stat.IndexOf(opt.Substring(1), li) > -1)) //(ls == li && !strncmp(stat, opt + 1, li)) - { - match = opt.Substring(eq + 1, ld);// match = eq + 1; - matchlen = ld; - } - opt = opt.Substring(len); //opt += len;// point to the next piece - lenopt -= len; - } - // if match process option - or process default - if (match == null) //(!match) - { - match = def.Substring(0, deflen); - matchlen = deflen; - } - return ProcessRO(match, multiRtnVal); //process(match, matchlen); - } - - private string ProcessBrace(string str, int l, ref bool nfnd, bool multiRtnVal) - { - string rtnstr = ""; - int nxt = NextDelimiter("{=", str); //nextDelimiter("{=", str, l); - if (nxt == -1) // no delimiter found - { // VarUse - //strList *found=vl->lookFor(str,l); - bool found = DictROVar.ContainsKey(str); - if (found) - rtnstr = DictROVar[str]; - //add(new seVarUse(found)); - else - nfnd = true; - } - else - { - if (str[nxt] == '{') - { // conditonal or menu - if (nxt == 0) // if (nxt == str) - { // menu - // TODO: implement Menu logic - //ml->process(str, l, vl); - //add(new seMenuUse(ml)); - //lstRoValues.Add(ProcessRO(str.Substring(0,l), true)); - ProcessMultiReturnValues(str, l); - } - else - { // conditional - rtnstr = ProcessConditional(str, str.Substring(nxt), nxt, str.Length - nxt - 1, multiRtnVal);//processCondition(str, nxt, (int)(nxt - str), l - (int)(nxt - str)); - } - } - else - { // must be variable definiton - //vl->add(str, nxt+1, (int)(nxt-str), (l - (int)(nxt-str))-1, ml); - - // 'l' is the lenght up to the matching brace of the variable definition - string tmpval = ProcessRO(str.Substring(nxt + 1, l - nxt - 1), multiRtnVal); - if (tmpval.Equals(string.Empty)) tmpval = " "; // nothing assinged to variable - if (!DictROVar.ContainsKey(str.Substring(0, nxt))) // need a try/catch here. - { - DictROVar.Add(str.Substring(0, nxt), tmpval); - if(nxt == 1) - multiRoValues.Add(str.Substring(0, nxt)); - } - else - return null; - if (multiRtnVal) - rtnstr = tmpval; - } - } - return rtnstr; - } - private Dictionary> _ValueLookupDictionary = null; - public List GetRosByValue(string value) - { - if (_ValueLookupDictionary == null) - BuildValueDictionary(); - if (value == string.Empty) - return null; - if(_ValueLookupDictionary.ContainsKey(value.ToUpper())) - return _ValueLookupDictionary[value.ToUpper()]; - return null; - } - private void BuildValueDictionary() - { - _ValueLookupDictionary = new Dictionary>(); - if (dicRos == null) - ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - foreach (rochild child in dicRos.Values) - { - if (child.value != null) - { - string value = child.value.ToUpper(); - if (_ValueLookupDictionary.ContainsKey(value)) - _ValueLookupDictionary[value].Add(new roChild(child)); - else - { - List children = new List(); - children.Add(new roChild(child)); - _ValueLookupDictionary.Add(value, children); - } - } - } - } - private Dictionary _dicROAPID = null; - public rochild? GetROChildByAccPageID(string accPageID, string spDefault, string igDefault) - { - rochild? child = GetRoChildByAccPagID(accPageID, spDefault, igDefault); - if (child == null) - { - if(Regex.IsMatch(accPageID, @".*\.[A-Z]")) - { - string accpage = accPageID.Substring(0, accPageID.Length - 3); - int index = accPageID.Substring(accPageID.Length - 2, 1)[0] - 'A'; - child = GetRoChildByAccPagID(accpage, spDefault, igDefault); - if (child == null) return null; - if (((rochild)child).children != null && ((rochild)child).children.Length > 0 && ((rochild)child).children.Length > index) - return ((rochild)child).children[index]; - } - return null; - } - if (((rochild)child).children != null && ((rochild)child).children.Length > 0) - return ((rochild)child).children[0]; - return (rochild)child; - } - public string GetROValueByAccPagID(string accPageID, string spDefault, string igDefault) - { - rochild? child = GetROChildByAccPageID(accPageID, spDefault, igDefault); - if (child == null) return null; - return ((rochild)child).value; - } - public int? GetROTypeByAccPagID(string accPageID, string spDefault, string igDefault) - { - rochild? child = GetROChildByAccPageID(accPageID, spDefault, igDefault); - if (child == null) return null; - return ((rochild)child).type; - } - public string GetROIDByAccPagID(string accPageID, string spDefault, string igDefault) - { - rochild? child = GetROChildByAccPageID(accPageID, spDefault, igDefault); - if (child == null) return null; - return ((rochild)child).roid; - } - public rochild? GetRoChildByAccPagID(string accPageID, string spDefault, string igDefault) - { - if (_dicROAPID == null) - BuildROAPIDDictionary(); - accPageID = accPageID.Replace("".ToCharArray()); // String < and > - if (_dicROAPID.ContainsKey(accPageID)) - return _dicROAPID[accPageID]; - return null; - } - private void BuildROAPIDDictionary() - { - if (dicRos == null) - ParseIntoDictionary(_ROFst != null ? _ROFst.ROLookup : _ROFstInfo.ROLookup); - _dicROAPID = new Dictionary(); - foreach (rodbi dbi in myHdr.myDbs) - { - if (dbi.children != null) - BuildROAPIDDictionary(dbi.dbiAP, dbi.children); - } - } - private void BuildROAPIDDictionary(string prefix, rochild[] children) - { - foreach (rochild child in children) - { - if (child.appid != null && child.appid != "" && child.ID != 0) - { - string key = string.Format("{0}-{1}", prefix, child.appid); - if (!_dicROAPID.ContainsKey(key)) - _dicROAPID.Add(key, child); - } - if (child.children != null) - BuildROAPIDDictionary(prefix, child.children); - } - } - private void ProcessMultiReturnValues(string str, int len) - { - if (str.Contains("{A={EQ}}")) // .StartsWith("{EQ=}")) - Console.WriteLine("jcb"); - string tstr = str.Substring(0, len); - while (tstr.Length > 0) - { - int idx = MatchingBrace(tstr); - string tmpVal = ProcessRO(tstr.Substring(0, idx + 1), true); - if (tmpVal != null) lstRoValues.Add(tmpVal); // duplicates get returned as null - tstr = tstr.Substring(idx + 1); - } - } - - - private int MatchingBrace(string str) - { - int level = 1; - int idx = 0; // the while will skip the first position (the first brace) - while (level > 0 && idx++ < str.Length) - { - switch (str[idx]) - { - case '{': - level++; - break; - case '}': - level--; - break; - } - } - if (level != 0) - idx = -1; // didn't find matching brace - - return idx; //length including end brace - } - - private int NextDelimiter(string delim, string str) - { - int idx; - idx = str.IndexOfAny(delim.ToCharArray()); - return idx; - } - public List GetRoChildrenByType(int type) - { - List children = new List(); - AddRoChildByType(children, type); - return children; - } - private void AddRoChildByType(List children, int type) - { - foreach (rodbi dbi in myHdr.myDbs) - { - if (dbi.children != null) - AddRoChildByType(dbi.children,children,type); - } - } - private void AddRoChildByType(rochild[] roChildren, List children, int type) - { - foreach (rochild child in roChildren) - { - if (child.type == type && child.value != null) - children.Add(child); - if (child.children != null) - AddRoChildByType(child.children,children,type); - } - } - #endregion - #region FortranFormat - public static string ConvertFortranFormatToScienctificNotation(string str) - { - // ([+-]?|\\u8209\?) either an optional single character Plus (+) or Minus (-) or non-breaking dash (\u8209?) - // ([0-9]+) a group of at least one digits - // [.] a decimal point - // ([0-9]*?) a group of zero or more digits - // 0*E optional zeros (spare zeros) followed - // ([+-]?|\\u8209\?) either an optional single character Plus (+) or Minus (-) or non-breaking dash (\u8209?) - // ([0-9]+) a group of at least one digits - string retval = Regex.Replace(str, @"([+-]?|\\u8209\?)([0-9]+)[.]([0-9]*?)0*E([+-]?|\\u8209\?)([0-9]+)", new MatchEvaluator(FixFortranNumber)); - // don't convert # and ~ to super/subscripts, this is a DOS holdout and is done only for non-procedure step sections - //retval = Regex.Replace(retval, "[#](.*?)[#]", "\\up2 $1\\up0 ");// DOS Superscript - //retval = Regex.Replace(retval, "[~](.*?)[~]", "\\dn2 $1\\up0 ");// DOS Subscript - return retval; - } - private static string FixFortranNumber(Match match) - { - StringBuilder sb = new StringBuilder(match.Groups[1].Value.Replace("-",@"\u8209?")); - if (match.Groups[3].Length == 0) // Nothing to the right of the decimal - if (match.Groups[2].Value != "1") // Other than "1", multiply it times 10 raised to a power - sb.Append(match.Groups[2].Value + "x10"); - else // The number is simply 1 so it can be ignored and 10 can be raised to a power - sb.Append("10"); - else // A number with a decimal point - sb.Append(match.Groups[2].Value + "." + match.Groups[3].Value + "x10"); - // Add the exponent as superscript - return sb.ToString() + "\\up2 " + match.Groups[4].Value.Replace("-",@"\u8209?") + match.Groups[5].Value + "\\up0 "; - } - #endregion - } - [Flags] - public enum E_ROValueType : uint - { - All = 0, - Text = 1, - Table = 2, - Graph = 4, - Image = 8, - Video = 16, - Hologram = 32 - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs.bak b/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs.bak deleted file mode 100644 index 76e7fec5..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs.bak +++ /dev/null @@ -1,777 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using DescriptiveEnum; - -namespace VEPROMS.CSLA.Library -{ - [Serializable] - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectionConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged, IItemConfig - { - #region DynamicTypeDescriptor - internal override bool IsReadOnly - { - get { return false; }//_Section == null; } - } - #endregion - #region XML - private XMLProperties _Xp; - private XMLProperties Xp - { - get { return _Xp; } - } - #endregion - #region Constructors - //PROPGRID: Hide ParentLookup - [Browsable(false)] - public bool ParentLookup - { - get { return _Xp.ParentLookup; } - set { _Xp.ParentLookup = value; } - } - //PROPGRID: Had to comment out NonSerialized to hide AncestorLookup from Property Grid - //[NonSerialized] - private bool _AncestorLookup; - //PROPGRID: Hide AncestorLookup - //[Browsable(false)] - //public bool AncestorLookup - //{ - // get { return _AncestorLookup; } - // set { _AncestorLookup = value; } - //} - private Section _Section; - private SectionInfo _SectionInfo; - private static int _SectionConfigUnique = 0; - private static int SectionConfigUnique - { get { return ++_SectionConfigUnique; } } - private int _MySectionConfigUnique = SectionConfigUnique; - public int MySectionConfigUnique // Absolutely Unique ID - Info - { get { return _MySectionConfigUnique; } } - - public SectionConfig(Section section) - { - _Section = section; - string xml = section.MyContent.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - if (section.MySectionInfo.ActiveParent != null) _Xp.LookInAncestor += new XMLPropertiesEvent(Xp_LookInAncestorFolder); - } - private string Xp_LookInAncestorFolder(object sender, XMLPropertiesArgs args) - { - if (args.AncestorLookup || ParentLookup) - { - string retval; - // There may be levels of sections, i.e. sections within a section. - SectionInfo sect = _Section != null ? _Section.MySectionInfo : _SectionInfo; - while (sect.ActiveParent.IsSection) - { - retval = sect.SectionConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - sect = (sect.ActiveParent as SectionInfo) ?? SectionInfo.Get((sect.ActiveParent as ItemInfo).ItemID); - } - // There may be levels of procedures, i.e. procedures within a procedure. - ProcedureInfo proc = sect.MyProcedure; - retval = proc.ProcedureConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - while (proc.ActiveParent.IsProcedure) - { - retval = proc.ProcedureConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - proc = (ProcedureInfo)proc.ActiveParent; - } - DocVersionInfo docVersion = proc.ActiveParent as DocVersionInfo; - if (docVersion == null) return string.Empty; - retval = docVersion.DocVersionConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - for (FolderInfo folder = docVersion.MyFolder; folder != null; folder = folder.MyParent) - { - retval = folder.FolderConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - } - } - return string.Empty; - } - public SectionConfig(SectionInfo sectionInfo) - { - _SectionInfo = sectionInfo; - string xml = sectionInfo.MyContent.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - if (_SectionInfo.ActiveParent != null) _Xp.LookInAncestor += new XMLPropertiesEvent(Xp_LookInAncestorFolder); - } - public SectionConfig(string xml) - { - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - } - public SectionConfig() - { - _Xp = new XMLProperties(); - } - internal string GetValue(string group, string item) - { - return _Xp[group, item]; - } - #endregion - #region Local Properties - //[Category("Identification")] - [Category("General")] - [DisplayName("Number")] - [Description("Number")] - public string Number - { - get { return (_Section != null ? _Section.MyContent.Number : _SectionInfo.MyContent.Number); } - set { if (_Section != null) _Section.MyContent.Number = value; } - } - //[Category("Identification")] - [Category("General")] - [DisplayName("Title")] - [Description("Title")] - public string Title - { - get { return (_Section != null ? _Section.MyContent.Text : _SectionInfo.MyContent.Text); } - set { if (_Section != null) _Section.MyContent.Text = value; } - } - [Category("Identification")] - //PROPGRID: Hide Old Sequence - [Browsable(false)] - [DisplayName("Old Sequence")] - [Description("Old Sequence")] - public string OldSequence - { - get { return (_Section != null ? _Section.MyContent.MyZContent.OldStepSequence : (_SectionInfo.MyContent.MyZContent == null ? null : _SectionInfo.MyContent.MyZContent.OldStepSequence)); } - set { if (_Section != null) _Section.MyContent.MyZContent.OldStepSequence = value; } - } - [Category("Identification")] - //PROPGRID: Hide Dirty - [Browsable(false)] - [DisplayName("Dirty")] - [Description("Dirty")] - public bool Dirty - { - get { return (_Section != null ? _Section.IsDirty : false); } - } - [Category("Format")] - [DisplayName("Format")] - [Description("Format")] - [TypeConverter(typeof(FormatList))] - public string FormatSelection - { - get - { - if (_Section != null && _Section.MyContent.MyFormat != null) return _Section.MyContent.MyFormat.FullName; - if (_SectionInfo != null && _SectionInfo.MyContent.MyFormat != null) return _SectionInfo.MyContent.MyFormat.FullName; - return null; - } - set - { - if (_Section != null) - { - _Section.MyContent.MyFormat = FormatList.ToFormat(value); // Can only be set if _DocVersion is set - //_Section.ActiveFormat = null; - DocStyleListConverter.MySection = _Section; - } - } - } - [Browsable(false)] - public FormatInfo MyFormat - { - get - { - if (_Section != null) - { - SectionInfo sectionInfo = SectionInfo.Get(_Section.ItemID); - return sectionInfo.LocalFormat; - } - if (_SectionInfo != null)return _SectionInfo.LocalFormat; - return null; - } - set - { - if (_Section != null) - _Section.MyContent.MyFormat = value == null ? null : value.GetJustFormat(); - } - } - [Category("Format")] - [DisplayName("Default Format")] - [Description("Default Format")] - [TypeConverter(typeof(FormatList))] - public string DefaultFormatSelection - { - get - { - if (_Section != null && _Section.MySectionInfo.ActiveParent != null && _Section.MySectionInfo.ActiveParent.ActiveFormat != null) return _Section.MySectionInfo.ActiveParent.ActiveFormat.FullName; - if (_SectionInfo != null && _SectionInfo.MyParent != null && _SectionInfo.MyParent.ActiveFormat != null) return _SectionInfo.MyParent.ActiveFormat.FullName; - return null; - } - } - [Browsable(false)] - public FormatInfo MyDefaultFormat - { - get - { - if (_Section != null) return _Section.MySectionInfo.ActiveParent.ActiveFormat; - return _SectionInfo.ActiveParent.ActiveFormat; - } - } - //[Browsable(false)] - [Category("Format")] - [DisplayName("Section Type")] - [Description("Section Type")] - [TypeConverter(typeof(DocStyleListConverter))] - public string MySectionType - { - get - { - if (_Section != null) - { - return DocStyleListConverter.ToString(_Section.MyContent.Type); - } - return string.Empty; - } - set - { - if (_Section != null) - _Section.MyContent.Type = DocStyleListConverter.ToSectionType(value); - } - } - [Browsable(false)] - public int? SectionType - { - get - { - if (_Section != null) - { - return _Section.MyContent.Type-10000; - } - return null; - } - set - { - if (_Section != null) - _Section.MyContent.Type = value+10000; - } - } - public Section MySection - { get { return _Section; } } - [Category("Format")] - [DisplayName("Keep Word Document Margins")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section WordMargin")] - public string Section_WordMargin - { - get - { - string tmp = _Xp["Section", "WordMargin"]; - return tmp == null || tmp == "" ? "N" : tmp; - } - set - { - _Xp["Section", "WordMargin"] = value; - OnPropertyChanged("Section_WordMargin"); - } - } - #endregion - #region ToString - public override string ToString() - { - string s = _Xp.ToString(); - if (s == "" || s == "") return string.Empty; - return s; - } - #endregion - #region SectionCategory // from sequence number in 16-bit database. - [TypeConverter(typeof(EnumDescConverter))] - public enum SectionPagination : int - { - //Default = 0, Continuous, Separate - Continuous = 1, Separate = 2 - } - [Category("Format")] - [DisplayName("Section Pagination")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section Pagination")] - public SectionPagination Section_Pagination - { - get - { - string s = _Xp["Section", "Pagination"]; - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("Section", "Pagination"); // get the parent value - //If there is no parent value, then use the volian default - if (s == string.Empty) - { - if (MyFormat != null) - { - bool rval = MyFormat.MyStepSectionLayoutData.BreakOnSections; - return (rval) ? SectionPagination.Separate : SectionPagination.Continuous;// default to volian default - } - else - { - bool rval = MyDefaultFormat.MyStepSectionLayoutData.BreakOnSections; - return (rval) ? SectionPagination.Separate : SectionPagination.Continuous;// default to volian default - } - } - return (SectionPagination)int.Parse(s); - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("Section", "Pagination"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - { - bool rval = _Section.MySectionInfo.ActiveFormat.MyStepSectionLayoutData.BreakOnSections; - parval = (rval) ? ((int)(SectionPagination.Separate)).ToString() : ((int)(SectionPagination.Continuous)).ToString(); - //parval = ((int)(SectionPagination.Default)).ToString(); - } - - if (parval.Equals(((int)value).ToString())) - _Xp["Section", "Pagination"] = string.Empty; // reset to parent value - else - _Xp["Section", "Pagination"] = ((int)value).ToString(); // save selected value - - OnPropertyChanged("Section_Pagination"); - } - } - [Category("View Settings")] - //PROPGRID: Hide Include in Background/Deviation - [DisplayName("Include in Background/Deviation")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section LinkEnhanced")] - public string Section_LnkEnh - { - get - { - return _Xp["Section", "LnkEnh"]; - } - set - { - _Xp["Section", "LnkEnh"] = value; - OnPropertyChanged("Section_LnkEnh"); - } - } - [Category("General")] - //PROPGRID: Hide Include On Table Of Contents - [DisplayName("Include On Table Of Contents")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section TOC")] - public string Section_TOC - { - get - { - string tmp = _Xp["Section", "TOC"]; - return tmp == null || tmp == "" ? "N" : tmp; - } - set - { - _Xp["Section", "TOC"] = value; - OnPropertyChanged("Section_TOC"); - } - } - [Category("Section")] - //PROPGRID: Hide AutoGen - [DisplayName("Section AutoGen")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section AutoGen")] - public string Section_AutoGen - { - get - { - return _Xp["Section", "AutoGen"]; - } - set - { - _Xp["Section", "AutoGen"] = value; - OnPropertyChanged("Section_AutoGen"); - } - } - [Category("Section")] - //PROPGRID: Hide Subsection PH - [DisplayName("Section PrintHdr")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section PrintHdr")] - public string Section_PrintHdr - { - get - { - // if null - return a "Y" - string tmp = _Xp["Section", "PrintHdr"]; - return tmp == null || tmp == "" ? "Y" : tmp; - } - set - { - _Xp["Section", "PrintHdr"] = value; - OnPropertyChanged("Section_PrintHdr"); - } - } - [Browsable(false)] - [DisplayName("Section OriginalSteps")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section OriginalSteps")] - public string Section_OriginalSteps - { - get - { - return _Xp["Section", "OriginalSteps"]; - } - set - { - _Xp["Section", "OriginalSteps"] = value; - OnPropertyChanged("Section_OriginalSteps"); - } - } - [Category("Section")] - //PROPGRID: Hide Section NumPages - [Browsable(false)] - [DisplayName("Section NumPages")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section NumPages")] - public string Section_NumPages - { - get - { - return _Xp["Section", "NumPages"]; - } - set - { - _Xp["Section", "NumPages"] = value; - OnPropertyChanged("Section_NumPages"); - } - } - [TypeConverter(typeof(EnumDescConverter))] - public enum SectionColumnMode : int - { - //[Description("Format Default")] - //Default = 0, - [Description("Single Column")] - One = 1, - [Description("Dual Column")] - Two = 2, - [Description("Triple Column")] - Three = 3, - [Description("Quad Column")] - Four = 4 - } - [Category("Format")] - [DisplayName("Columns")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section ColumnMode")] - public SectionColumnMode Section_ColumnMode - { - get - { - string s = _Xp["Section", "ColumnMode"]; - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("Section", "ColumnMode"); // get the parent value - // If there is no parent value, then use the volian default - if (s == string.Empty) - { - int rval = 0; - if (MyFormat != null) - { - rval = (int)MyFormat.MyStepSectionLayoutData.PMode; - //int rval = (int)MyFormat.MyStepSectionLayoutData.PMode; - //return (SectionColumnMode)rval;//SectionColumnMode.Two; //SectionColumnMode.Default;// default to volian default - } - else - { - //int rval = (int)MyDefaultFormat.MyStepSectionLayoutData.PMode; - rval = (int)MyDefaultFormat.MyStepSectionLayoutData.PMode; - //return (SectionColumnMode)rval; - } - // if no pmode is defined, i.e. rval = 0, then go up to the procedure level & get - // it's format column. - if (rval == 0) - { - SectionInfo si = _SectionInfo != null? _SectionInfo: SectionInfo.Get(_Section.ItemID); - if (si != null) - { - switch (si.MyProcedure.ProcedureConfig.Format_Columns) - { - case FormatColumns.OneColumn: - return SectionColumnMode.One; - break; - case FormatColumns.TwoColumn: - return SectionColumnMode.Two; - break; - default: - return SectionColumnMode.One; - break; - } - } - else - return SectionColumnMode.One; // 16bit's default if nothing defined - } - return (SectionColumnMode)rval; - } - else - return (SectionColumnMode)int.Parse(s); - - //if (s == string.Empty) - // return SectionColumnMode.Default; - - //return (SectionColumnMode)int.Parse(s); - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("Section", "ColumnMode"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - { - int rval = 0; - // Use Inherited Format (ActiveFormat for Section) if MyFormat is Null - if (MyFormat == null) - { - FormatInfo myFormat = _Section == null ? _SectionInfo.ActiveFormat : SectionInfo.Get(_Section.ItemID).ActiveFormat; - rval = (int)myFormat.MyStepSectionLayoutData.PMode; - } - else - rval =(int)MyFormat.MyStepSectionLayoutData.PMode; - parval = ((rval > 0)?((SectionColumnMode)rval).ToString() : "2"); // if PMode is zero default to 2 column mode - //parval = ((SectionColumnMode)rval).ToString(); - //parval = ((int)(SectionColumnMode.Default)).ToString(); - } - - if (parval.Equals(((int)value).ToString())) - _Xp["Section", "ColumnMode"] = string.Empty; // reset to parent value - else - _Xp["Section", "ColumnMode"] = ((int)value).ToString(); // save selected value - - OnPropertyChanged("Section_ColumnMode"); - } - } -//char * far printtypes[] = { -// "Compressed, 8 lines per inch", -// "Elite, 6 lines per inch", -// "Pica, 6 lines per inch", -// "Default font, 4 Lines Per Inch", -// "Default font, 6 Lines Per Inch", -// "Compressed 6 LPI", -// "Default font, 7 Lines Per Inch", -// "Special Landscape, Elite, 6 lines per inch" -//}; - //[TypeConverter(typeof(EnumDescConverter))] - //public enum AttPrintSize : int - //{ - // [Description("Compressed, 8 lines per inch")] - // Cmp8lpi = 0, - // [Description("Elite, 6 lines per inch")] - // Elite6lpi = 1, - // [Description("Pica, 6 lines per inch")] - // Pica6lpi = 2, - // [Description("Default font, 4 Lines Per Inch")] - // Def4lpi = 3, - // [Description("Default font, 6 Lines Per Inch")] - // Def6lpi = 4, - // [Description("Compressed 6 LPI")] - // Cmp6lpi = 5, - // [Description("Default font, 7 Lines Per Inch")] - // Def7lpi = 6, - // [Description("Landscape, Elite, 6 lines per inch")] - // landElite6lpi = 7 - //} - - //[Category("Format")] - //[DisplayName("Attachment PrintSize")] - //[RefreshProperties(RefreshProperties.All)] - //[Description("Attachment Print Size")] - //public AttPrintSize Section_AttachmentPrintSize - //{ - // get - // { - // string lpiSettings = "*pP46f7L"; - // string s = _Xp["Section", "OldType"]; - // int idx = -1; - - // //If there is no value to get, then get the parent value (a.k.a. default value). - // if (s == string.Empty) - // s = _Xp.ParentValue("Section", "OldType"); // get the parent value - // // If there is no parent value, then use the volian default - // if (s == string.Empty) - // return AttPrintSize.Def6lpi;// default to volian default - - // idx = lpiSettings.IndexOf(s[1]); - // if (idx == -1) idx = 4; - // return (AttPrintSize)idx; - // //return (AttPrintSize)int.Parse(s); - // } - // set - // { - // // if value being saved is same as the parent value, then clear the value (save blank). This will - // // reset the data to use the parent value. - - // string lpiSettings = "*pP46f7L"; - // string parval = _Xp.ParentValue("Section", "OldType"); // get the parent value - // StringBuilder sb = new StringBuilder(); - // string curval = parval[1].ToString(); - - // sb.Append(parval[0]); // save first part of OldType - - // if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - // { - // //parval = ((int)(AttPrintSize.Def6lpi)).ToString(); - // //sb.Append(((int)(AttPrintSize.Def6lpi)).ToString()); - // sb.Append(lpiSettings[(int)(AttPrintSize.Def6lpi)]); - // } - - // if (curval.Equals(((int)value).ToString())) - // _Xp["Section", "OldType"] = string.Empty; // reset to parent value - // else - // { - // //sb.Append(((int)value).ToString()); - // sb.Append(lpiSettings[(int)value]); - // _Xp["Section", "OldType"] = sb.ToString(); // save selected value - // } - - // OnPropertyChanged("Section_AttachmentPrintSize"); - // } - //} - /* - int chkOffType = (rid[0] & 0x007F) - '0'; - if (chkOffType > 0) - ci.AddItem("Section", "CheckoffSelection", chkOffType.ToString()); - - if (stype.Length > 1) - { - int chkOffHeading = (stype[1] & 0x007F) - '0'; - if (chkOffHeading > 0) - ci.AddItem("Section", "CheckoffHeading", chkOffHeading.ToString()); - */ - [Category("Format")] - [DisplayName("Checkoff List Selection")] - [Description("Checkoff List Selection")] - public int Section_CheckoffListSelection - { - get - { - string s = _Xp["Section", "CheckoffSelection"]; - if (s != null && !s.Equals(string.Empty)) - return Convert.ToInt32(s); - return 0; - } - set - { - string s = value.ToString(); - _Xp["Section", "CheckoffSelection"] = s; - } - } - [Category("Format")] - [DisplayName("Checkoff Header Selection")] - [RefreshProperties(RefreshProperties.All)] - [Description("Checkoff Header Selection")] - public int Section_CheckoffHeaderSelection - { - get - { - string s = _Xp["Section", "CheckoffHeading"]; - if (s != null && !s.Equals(string.Empty)) - return Convert.ToInt32(s); - return 0; - } - set - { - string s = value.ToString(); - _Xp["Section", "CheckoffHeading"] = s; - } - } - #endregion - #region SubSectionCategory // from sequence number in 16-bit database. - [Category("SubSection")] - //PROPGRID: Hide SubSection Edit - [Browsable(false)] - [DisplayName("SubSection Edit")] - [RefreshProperties(RefreshProperties.All)] - [Description("SubSection Edit")] - public string SubSection_Edit - { - get - { - // if null - return a "Y" - string tmp = _Xp["SubSection", "Edit"]; - return tmp == null || tmp == "" ? "N" : tmp; - } - set - { - _Xp["SubSection", "Edit"] = value; - OnPropertyChanged("SubSection_Edit"); - } - } - - [Category("SubSection")] - //PROPGRID: Hide Subsection AutoIndent - [Browsable(false)] - [DisplayName("SubSection AutoIndent")] - [RefreshProperties(RefreshProperties.All)] - [Description("SubSection AutoIndent")] - public string SubSection_AutoIndent - { - get - { - // if null - return a "Y" - string tmp = _Xp["SubSection", "AutoIndent"]; - return tmp==null||tmp==""?"Y":tmp; - } - set - { - _Xp["SubSection", "AutoIndent"] = value; - OnPropertyChanged("SubSection_AutoIndent"); - } - } - #endregion - #region LibDocCategory // from library document file during migration - [Category("LibraryDocument")] - //PROPGRID: Hide Libary Document Comment - [Browsable(false)] - [DisplayName("LibraryDocument Comment")] - [RefreshProperties(RefreshProperties.All)] - [Description("LibraryDocument Comment")] - public string LibDoc_Comment - { - get - { - return _Xp["LibraryDocument", "Comment"]; - } - set - { - _Xp["LibraryDocument", "Comment"] = value; - OnPropertyChanged("LibDoc_Comment"); - } - } - - #endregion - - #region IItemConfig Members - - [Category("Master/Slave Settings")] - [DisplayName("Applicability")] - [RefreshProperties(RefreshProperties.All)] - [Description("Scope Applicability")] - public Volian.Base.Library.BigNum MasterSlave_Applicability - { - get - { - string s = _Xp["MasterSlave", "Applicability"]; - return new Volian.Base.Library.BigNum(s); - } - set - { - _Xp["MasterSlave", "Applicability"] = value.FlagList; - OnPropertyChanged("MasterSlave_Applicability"); - } - } - - #endregion - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs.org b/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs.org deleted file mode 100644 index c83de056..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Config/SectionConfig.cs.org +++ /dev/null @@ -1,753 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using DescriptiveEnum; - -namespace VEPROMS.CSLA.Library -{ - [Serializable] - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectionConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged - { - #region DynamicTypeDescriptor - internal override bool IsReadOnly - { - get { return false; }//_Section == null; } - } - #endregion - #region XML - private XMLProperties _Xp; - private XMLProperties Xp - { - get { return _Xp; } - } - #endregion - #region Constructors - //PROPGRID: Hide ParentLookup - [Browsable(false)] - public bool ParentLookup - { - get { return _Xp.ParentLookup; } - set { _Xp.ParentLookup = value; } - } - //PROPGRID: Had to comment out NonSerialized to hide AncestorLookup from Property Grid - //[NonSerialized] - private bool _AncestorLookup; - //PROPGRID: Hide AncestorLookup - //[Browsable(false)] - //public bool AncestorLookup - //{ - // get { return _AncestorLookup; } - // set { _AncestorLookup = value; } - //} - private Section _Section; - private SectionInfo _SectionInfo; - private static int _SectionConfigUnique = 0; - private static int SectionConfigUnique - { get { return ++_SectionConfigUnique; } } - private int _MySectionConfigUnique = SectionConfigUnique; - public int MySectionConfigUnique // Absolutely Unique ID - Info - { get { return _MySectionConfigUnique; } } - - public SectionConfig(Section section) - { - _Section = section; - string xml = section.MyContent.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - if (section.MySectionInfo.ActiveParent != null) _Xp.LookInAncestor += new XMLPropertiesEvent(Xp_LookInAncestorFolder); - } - private string Xp_LookInAncestorFolder(object sender, XMLPropertiesArgs args) - { - if (args.AncestorLookup || ParentLookup) - { - string retval; - SectionInfo sect = _Section != null ? _Section.MySectionInfo : _SectionInfo; - while (sect.ActiveParent.GetType() == typeof(SectionInfo)) - { - retval = sect.SectionConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - sect = (SectionInfo)sect.ActiveParent; - } - ProcedureInfo proc = ProcedureInfo.Get(((ItemInfo)sect.ActiveParent).ItemID); - //ProcedureInfo proc = (ProcedureInfo)sect.ActiveParent; - retval = proc.ProcedureConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - while (proc.ActiveParent.GetType() == typeof(ProcedureInfo)) - { - retval = proc.ProcedureConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - proc = (ProcedureInfo)proc.ActiveParent; - } - DocVersionInfo docVersion = proc.ActiveParent as DocVersionInfo; - if (docVersion == null) return string.Empty; - retval = docVersion.DocVersionConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - for (FolderInfo folder = docVersion.MyFolder; folder != null; folder = folder.MyParent) - { - retval = folder.FolderConfig.GetValue(args.Group, args.Item); - if (retval != string.Empty) return retval; - } - } - return string.Empty; - } - public SectionConfig(SectionInfo sectionInfo) - { - _SectionInfo = sectionInfo; - string xml = sectionInfo.MyContent.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - if (_SectionInfo.ActiveParent != null) _Xp.LookInAncestor += new XMLPropertiesEvent(Xp_LookInAncestorFolder); - } - public SectionConfig(string xml) - { - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - } - public SectionConfig() - { - _Xp = new XMLProperties(); - } - internal string GetValue(string group, string item) - { - return _Xp[group, item]; - } - #endregion - #region Local Properties - //[Category("Identification")] - [Category("General")] - [DisplayName("Number")] - [Description("Number")] - public string Number - { - get { return (_Section != null ? _Section.MyContent.Number : _SectionInfo.MyContent.Number); } - set { if (_Section != null) _Section.MyContent.Number = value; } - } - //[Category("Identification")] - [Category("General")] - [DisplayName("Title")] - [Description("Title")] - public string Title - { - get { return (_Section != null ? _Section.MyContent.Text : _SectionInfo.MyContent.Text); } - set { if (_Section != null) _Section.MyContent.Text = value; } - } - [Category("Identification")] - //PROPGRID: Hide Old Sequence - [Browsable(false)] - [DisplayName("Old Sequence")] - [Description("Old Sequence")] - public string OldSequence - { - get { return (_Section != null ? _Section.MyContent.MyZContent.OldStepSequence : (_SectionInfo.MyContent.MyZContent == null ? null : _SectionInfo.MyContent.MyZContent.OldStepSequence)); } - set { if (_Section != null) _Section.MyContent.MyZContent.OldStepSequence = value; } - } - [Category("Identification")] - //PROPGRID: Hide Dirty - [Browsable(false)] - [DisplayName("Dirty")] - [Description("Dirty")] - public bool Dirty - { - get { return (_Section != null ? _Section.IsDirty : false); } - } - [Category("Format")] - [DisplayName("Format")] - [Description("Format")] - [TypeConverter(typeof(FormatList))] - public string FormatSelection - { - get - { - if (_Section != null && _Section.MyContent.MyFormat != null) return _Section.MyContent.MyFormat.FullName; - if (_SectionInfo != null && _SectionInfo.MyContent.MyFormat != null) return _SectionInfo.MyContent.MyFormat.FullName; - return null; - } - set - { - if (_Section != null) - { - _Section.MyContent.MyFormat = FormatList.ToFormat(value); // Can only be set if _DocVersion is set - //_Section.ActiveFormat = null; - DocStyleListConverter.MySection = _Section; - } - } - } - [Browsable(false)] - public FormatInfo MyFormat - { - get - { - if (_Section != null) - { - SectionInfo sectionInfo = SectionInfo.Get(_Section.ItemID); - return sectionInfo.LocalFormat; - } - if (_SectionInfo != null)return _SectionInfo.LocalFormat; - return null; - } - set - { - if (_Section != null) - _Section.MyContent.MyFormat = value == null ? null : value.Get(); - } - } - [Category("Format")] - [DisplayName("Default Format")] - [Description("Default Format")] - [TypeConverter(typeof(FormatList))] - public string DefaultFormatSelection - { - get - { - if (_Section != null && _Section.MySectionInfo.ActiveParent != null && _Section.MySectionInfo.ActiveParent.ActiveFormat != null) return _Section.MySectionInfo.ActiveParent.ActiveFormat.FullName; - if (_SectionInfo != null && _SectionInfo.MyParent != null && _SectionInfo.MyParent.ActiveFormat != null) return _SectionInfo.MyParent.ActiveFormat.FullName; - return null; - } - } - [Browsable(false)] - public FormatInfo MyDefaultFormat - { - get - { - if (_Section != null) return _Section.MySectionInfo.ActiveParent.ActiveFormat; - return _SectionInfo.ActiveParent.ActiveFormat; - } - } - //[Browsable(false)] - [Category("Format")] - [DisplayName("Section Type")] - [Description("Section Type")] - [TypeConverter(typeof(DocStyleListConverter))] - public string MySectionType - { - get - { - if (_Section != null) - { - return DocStyleListConverter.ToString(_Section.MyContent.Type); - } - return string.Empty; - } - set - { - if (_Section != null) - _Section.MyContent.Type = DocStyleListConverter.ToSectionType(value); - } - } - [Browsable(false)] - public int? SectionType - { - get - { - if (_Section != null) - { - return _Section.MyContent.Type-10000; - } - return null; - } - set - { - if (_Section != null) - _Section.MyContent.Type = value+10000; - } - } - public Section MySection - { get { return _Section; } } - [Category("Format")] - [DisplayName("Keep Word Document Margins")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section WordMargin")] - public string Section_WordMargin - { - get - { - string tmp = _Xp["Section", "WordMargin"]; - return tmp == null || tmp == "" ? "N" : tmp; - } - set - { - _Xp["Section", "WordMargin"] = value; - OnPropertyChanged("Section_WordMargin"); - } - } - #endregion - #region ToString - public override string ToString() - { - string s = _Xp.ToString(); - if (s == "" || s == "") return string.Empty; - return s; - } - #endregion - #region SectionCategory // from sequence number in 16-bit database. - [TypeConverter(typeof(EnumDescConverter))] - public enum SectionPagination : int - { - //Default = 0, Continuous, Separate - Continuous = 1, Separate = 2 - } - [Category("Format")] - [DisplayName("Section Pagination")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section Pagination")] - public SectionPagination Section_Pagination - { - get - { - string s = _Xp["Section", "Pagination"]; - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("Section", "Pagination"); // get the parent value - //If there is no parent value, then use the volian default - if (s == string.Empty) - { - if (MyFormat != null) - { - bool rval = MyFormat.MyStepSectionLayoutData.BreakOnSections; - return (rval) ? SectionPagination.Separate : SectionPagination.Continuous;// default to volian default - } - else - { - bool rval = MyDefaultFormat.MyStepSectionLayoutData.BreakOnSections; - return (rval) ? SectionPagination.Separate : SectionPagination.Continuous;// default to volian default - } - } - return (SectionPagination)int.Parse(s); - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("Section", "Pagination"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - { - bool rval = _Section.MySectionInfo.ActiveFormat.MyStepSectionLayoutData.BreakOnSections; - parval = (rval) ? ((int)(SectionPagination.Separate)).ToString() : ((int)(SectionPagination.Continuous)).ToString(); - //parval = ((int)(SectionPagination.Default)).ToString(); - } - - if (parval.Equals(((int)value).ToString())) - _Xp["Section", "Pagination"] = string.Empty; // reset to parent value - else - _Xp["Section", "Pagination"] = ((int)value).ToString(); // save selected value - - OnPropertyChanged("Section_Pagination"); - } - } - [Category("View Settings")] - //PROPGRID: Hide Include in Background/Deviation - [DisplayName("Include in Background/Deviation")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section LinkEnhanced")] - public string Section_LnkEnh - { - get - { - return _Xp["Section", "LnkEnh"]; - } - set - { - _Xp["Section", "LnkEnh"] = value; - OnPropertyChanged("Section_LnkEnh"); - } - } - [Category("General")] - //PROPGRID: Hide Include On Table Of Contents - [DisplayName("Include On Table Of Contents")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section TOC")] - public string Section_TOC - { - get - { - string tmp = _Xp["Section", "TOC"]; - return tmp == null || tmp == "" ? "N" : tmp; - } - set - { - _Xp["Section", "TOC"] = value; - OnPropertyChanged("Section_TOC"); - } - } - [Category("Section")] - //PROPGRID: Hide AutoGen - [DisplayName("Section AutoGen")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section AutoGen")] - public string Section_AutoGen - { - get - { - return _Xp["Section", "AutoGen"]; - } - set - { - _Xp["Section", "AutoGen"] = value; - OnPropertyChanged("Section_AutoGen"); - } - } - [Category("Section")] - //PROPGRID: Hide Subsection PH - [DisplayName("Section PrintHdr")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section PrintHdr")] - public string Section_PrintHdr - { - get - { - // if null - return a "Y" - string tmp = _Xp["Section", "PrintHdr"]; - return tmp == null || tmp == "" ? "Y" : tmp; - } - set - { - _Xp["Section", "PrintHdr"] = value; - OnPropertyChanged("Section_PrintHdr"); - } - } - [Browsable(false)] - [DisplayName("Section OriginalSteps")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section OriginalSteps")] - public string Section_OriginalSteps - { - get - { - return _Xp["Section", "OriginalSteps"]; - } - set - { - _Xp["Section", "OriginalSteps"] = value; - OnPropertyChanged("Section_OriginalSteps"); - } - } - [Category("Section")] - //PROPGRID: Hide Section NumPages - [Browsable(false)] - [DisplayName("Section NumPages")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section NumPages")] - public string Section_NumPages - { - get - { - return _Xp["Section", "NumPages"]; - } - set - { - _Xp["Section", "NumPages"] = value; - OnPropertyChanged("Section_NumPages"); - } - } - [TypeConverter(typeof(EnumDescConverter))] - public enum SectionColumnMode : int - { - //[Description("Format Default")] - //Default = 0, - [Description("Single Column")] - One = 1, - [Description("Dual Column")] - Two = 2, - [Description("Triple Column")] - Three = 3, - [Description("Quad Column")] - Four = 4 - } - [Category("Format")] - [DisplayName("Columns")] - [RefreshProperties(RefreshProperties.All)] - [Description("Section ColumnMode")] - public SectionColumnMode Section_ColumnMode - { - get - { - string s = _Xp["Section", "ColumnMode"]; - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) - s = _Xp.ParentValue("Section", "ColumnMode"); // get the parent value - // If there is no parent value, then use the volian default - if (s == string.Empty) - { - int rval = 0; - if (MyFormat != null) - { - rval = (int)MyFormat.MyStepSectionLayoutData.PMode; - //int rval = (int)MyFormat.MyStepSectionLayoutData.PMode; - //return (SectionColumnMode)rval;//SectionColumnMode.Two; //SectionColumnMode.Default;// default to volian default - } - else - { - //int rval = (int)MyDefaultFormat.MyStepSectionLayoutData.PMode; - rval = (int)MyDefaultFormat.MyStepSectionLayoutData.PMode; - //return (SectionColumnMode)rval; - } - // if no pmode is defined, i.e. rval = 0, then go up to the procedure level & get - // it's format column. - if (rval == 0) - { - SectionInfo si = _SectionInfo != null? _SectionInfo: SectionInfo.Get(_Section.ItemID); - if (si != null) - { - switch (si.MyProcedure.ProcedureConfig.Format_Columns) - { - case FormatColumns.OneColumn: - return SectionColumnMode.One; - break; - case FormatColumns.TwoColumn: - return SectionColumnMode.Two; - break; - default: - return SectionColumnMode.One; - break; - } - } - else - return SectionColumnMode.One; // 16bit's default if nothing defined - } - return (SectionColumnMode)rval; - } - else - return (SectionColumnMode)int.Parse(s); - - //if (s == string.Empty) - // return SectionColumnMode.Default; - - //return (SectionColumnMode)int.Parse(s); - } - set - { - // if value being saved is same as the parent value, then clear the value (save blank). This will - // reset the data to use the parent value. - - string parval = _Xp.ParentValue("Section", "ColumnMode"); // get the parent value - - if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - { - int rval = 0; - // Use Inherited Format (ActiveFormat for Section) if MyFormat is Null - if (MyFormat == null) - { - FormatInfo myFormat = _Section == null ? _SectionInfo.ActiveFormat : SectionInfo.Get(_Section.ItemID).ActiveFormat; - rval = (int)myFormat.MyStepSectionLayoutData.PMode; - } - else - rval =(int)MyFormat.MyStepSectionLayoutData.PMode; - parval = ((rval > 0)?((SectionColumnMode)rval).ToString() : "2"); // if PMode is zero default to 2 column mode - //parval = ((SectionColumnMode)rval).ToString(); - //parval = ((int)(SectionColumnMode.Default)).ToString(); - } - - if (parval.Equals(((int)value).ToString())) - _Xp["Section", "ColumnMode"] = string.Empty; // reset to parent value - else - _Xp["Section", "ColumnMode"] = ((int)value).ToString(); // save selected value - - OnPropertyChanged("Section_ColumnMode"); - } - } -//char * far printtypes[] = { -// "Compressed, 8 lines per inch", -// "Elite, 6 lines per inch", -// "Pica, 6 lines per inch", -// "Default font, 4 Lines Per Inch", -// "Default font, 6 Lines Per Inch", -// "Compressed 6 LPI", -// "Default font, 7 Lines Per Inch", -// "Special Landscape, Elite, 6 lines per inch" -//}; - //[TypeConverter(typeof(EnumDescConverter))] - //public enum AttPrintSize : int - //{ - // [Description("Compressed, 8 lines per inch")] - // Cmp8lpi = 0, - // [Description("Elite, 6 lines per inch")] - // Elite6lpi = 1, - // [Description("Pica, 6 lines per inch")] - // Pica6lpi = 2, - // [Description("Default font, 4 Lines Per Inch")] - // Def4lpi = 3, - // [Description("Default font, 6 Lines Per Inch")] - // Def6lpi = 4, - // [Description("Compressed 6 LPI")] - // Cmp6lpi = 5, - // [Description("Default font, 7 Lines Per Inch")] - // Def7lpi = 6, - // [Description("Landscape, Elite, 6 lines per inch")] - // landElite6lpi = 7 - //} - - //[Category("Format")] - //[DisplayName("Attachment PrintSize")] - //[RefreshProperties(RefreshProperties.All)] - //[Description("Attachment Print Size")] - //public AttPrintSize Section_AttachmentPrintSize - //{ - // get - // { - // string lpiSettings = "*pP46f7L"; - // string s = _Xp["Section", "OldType"]; - // int idx = -1; - - // //If there is no value to get, then get the parent value (a.k.a. default value). - // if (s == string.Empty) - // s = _Xp.ParentValue("Section", "OldType"); // get the parent value - // // If there is no parent value, then use the volian default - // if (s == string.Empty) - // return AttPrintSize.Def6lpi;// default to volian default - - // idx = lpiSettings.IndexOf(s[1]); - // if (idx == -1) idx = 4; - // return (AttPrintSize)idx; - // //return (AttPrintSize)int.Parse(s); - // } - // set - // { - // // if value being saved is same as the parent value, then clear the value (save blank). This will - // // reset the data to use the parent value. - - // string lpiSettings = "*pP46f7L"; - // string parval = _Xp.ParentValue("Section", "OldType"); // get the parent value - // StringBuilder sb = new StringBuilder(); - // string curval = parval[1].ToString(); - - // sb.Append(parval[0]); // save first part of OldType - - // if (parval.Equals(string.Empty)) // if the parent value is empty, then use the volian default - // { - // //parval = ((int)(AttPrintSize.Def6lpi)).ToString(); - // //sb.Append(((int)(AttPrintSize.Def6lpi)).ToString()); - // sb.Append(lpiSettings[(int)(AttPrintSize.Def6lpi)]); - // } - - // if (curval.Equals(((int)value).ToString())) - // _Xp["Section", "OldType"] = string.Empty; // reset to parent value - // else - // { - // //sb.Append(((int)value).ToString()); - // sb.Append(lpiSettings[(int)value]); - // _Xp["Section", "OldType"] = sb.ToString(); // save selected value - // } - - // OnPropertyChanged("Section_AttachmentPrintSize"); - // } - //} - /* - int chkOffType = (rid[0] & 0x007F) - '0'; - if (chkOffType > 0) - ci.AddItem("Section", "CheckoffSelection", chkOffType.ToString()); - - if (stype.Length > 1) - { - int chkOffHeading = (stype[1] & 0x007F) - '0'; - if (chkOffHeading > 0) - ci.AddItem("Section", "CheckoffHeading", chkOffHeading.ToString()); - */ - [Category("Format")] - [DisplayName("Checkoff List Selection")] - [Description("Checkoff List Selection")] - public int Section_CheckoffListSelection - { - get - { - string s = _Xp["Section", "CheckoffSelection"]; - if (s != null && !s.Equals(string.Empty)) - return Convert.ToInt32(s); - return 0; - } - set - { - string s = value.ToString(); - _Xp["Section", "CheckoffSelection"] = s; - } - } - [Category("Format")] - [DisplayName("Checkoff Header Selection")] - [RefreshProperties(RefreshProperties.All)] - [Description("Checkoff Header Selection")] - public int Section_CheckoffHeaderSelection - { - get - { - string s = _Xp["Section", "CheckoffHeading"]; - if (s != null && !s.Equals(string.Empty)) - return Convert.ToInt32(s); - return 0; - } - set - { - string s = value.ToString(); - _Xp["Section", "CheckoffHeading"] = s; - } - } - #endregion - #region SubSectionCategory // from sequence number in 16-bit database. - [Category("SubSection")] - //PROPGRID: Hide SubSection Edit - [Browsable(false)] - [DisplayName("SubSection Edit")] - [RefreshProperties(RefreshProperties.All)] - [Description("SubSection Edit")] - public string SubSection_Edit - { - get - { - // if null - return a "Y" - string tmp = _Xp["SubSection", "Edit"]; - return tmp == null || tmp == "" ? "N" : tmp; - } - set - { - _Xp["SubSection", "Edit"] = value; - OnPropertyChanged("SubSection_Edit"); - } - } - - [Category("SubSection")] - //PROPGRID: Hide Subsection AutoIndent - [Browsable(false)] - [DisplayName("SubSection AutoIndent")] - [RefreshProperties(RefreshProperties.All)] - [Description("SubSection AutoIndent")] - public string SubSection_AutoIndent - { - get - { - // if null - return a "Y" - string tmp = _Xp["SubSection", "AutoIndent"]; - return tmp==null||tmp==""?"Y":tmp; - } - set - { - _Xp["SubSection", "AutoIndent"] = value; - OnPropertyChanged("SubSection_AutoIndent"); - } - } - #endregion - #region LibDocCategory // from library document file during migration - [Category("LibraryDocument")] - //PROPGRID: Hide Libary Document Comment - [Browsable(false)] - [DisplayName("LibraryDocument Comment")] - [RefreshProperties(RefreshProperties.All)] - [Description("LibraryDocument Comment")] - public string LibDoc_Comment - { - get - { - return _Xp["LibraryDocument", "Comment"]; - } - set - { - _Xp["LibraryDocument", "Comment"] = value; - OnPropertyChanged("LibDoc_Comment"); - } - } - - #endregion - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Config/StepConfig.cs.bak b/PROMS/VEPROMS.CSLA.Library/Config/StepConfig.cs.bak deleted file mode 100644 index 490afb5e..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Config/StepConfig.cs.bak +++ /dev/null @@ -1,240 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using DescriptiveEnum; - -namespace VEPROMS.CSLA.Library -{ - [Serializable] - [TypeConverter(typeof(ExpandableObjectConverter))] - public class StepConfig : ConfigDynamicTypeDescriptor, INotifyPropertyChanged, IItemConfig - { - #region DynamicTypeDescriptor - internal override bool IsReadOnly - { - get { return false; }//_Section == null; } - } - #endregion - #region XML - private XMLProperties _Xp; - private XMLProperties Xp - { - get { return _Xp; } - } - #endregion - #region Constructors - //PROPGRID: Hide ParentLookup - [Browsable(false)] - public bool ParentLookup - { - get { return _Xp.ParentLookup; } - set { _Xp.ParentLookup = value; } - } - //PROPGRID: Had to comment out NonSerialized to hide AncestorLookup from Property Grid - //[NonSerialized] - //private bool _AncestorLookup; - ////PROPGRID: Hide AncestorLookup - //[Browsable(false)] - //public bool AncestorLookup - //{ - // get { return _AncestorLookup; } - // set { _AncestorLookup = value; } - //} - private Step _Step; - private StepInfo _StepInfo; - public StepConfig(Step step) - { - _Step = step; - string xml = step.MyContent.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - } - public StepConfig(StepInfo stepInfo) - { - _StepInfo = stepInfo; - string xml = stepInfo.MyContent.Config; - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - } - public StepConfig(string xml) - { - if (xml == string.Empty) xml = ""; - _Xp = new XMLProperties(xml); - } - public StepConfig() - { - _Xp = new XMLProperties(); - } - internal string GetValue(string group, string item) - { - return _Xp[group, item]; - } - #endregion - #region Local Properties - - #endregion - #region ToString - public override string ToString() - { - string s = _Xp.ToString(); - if (s == "" || s == "") return string.Empty; - return s; - } - #endregion - #region StepAttr - //[Category("Step Attributes")] - //[DisplayName("Step Continuous Action Summary")] - //[RefreshProperties(RefreshProperties.All)] - //[Description("Step Continuous Action Summary")] - public bool Step_CAS - { - get - { - string s = _Xp["Step", "ContActSum"]; - - //If there is no value to get, then get the parent value (a.k.a. default value). - if (s == string.Empty) return false; - if (s == "True") return true; - return false; - } - set - { - string s = _Xp["Step", "ContActSum"]; - if (value.ToString() == s) return; - _Xp["Step", "ContActSum"] = value.ToString(); - OnPropertyChanged("Step_CAS"); - } - } - //[Category("Step Attributes")] - //[DisplayName("Step Check Off Index")] - //[RefreshProperties(RefreshProperties.All)] - //[Description("Step Check Off Index")] - public int Step_CheckOffIndex - { - get - { - string s = _Xp["Step", "CheckOffIndex"]; - - if (s == string.Empty) return 0; - - return int.Parse(s); - } - set - { - string s = _Xp["Step", "CheckOffIndex"]; - if (value.ToString() == s) return; - _Xp["Step", "CheckOffIndex"] = value.ToString(); - OnPropertyChanged("Step_CheckOffIndex"); - } - } - //[Category("Step Attributes")] - //[DisplayName("Step Manual Pagebreak")] - //[RefreshProperties(RefreshProperties.All)] - //[Description("Step Manual Pagebreak")] - public bool Step_ManualPagebreak - { - get - { - string s = _Xp["Step", "ManualPagebreak"]; - - if (s == string.Empty) return false; - if (s == "True") return true; - return false; - } - set - { - string s = _Xp["Step", "ManualPagebreak"]; - if (value.ToString() == s) return; - _Xp["Step", "ManualPagebreak"] = value.ToString(); - OnPropertyChanged("Step_ManualPagebreak"); - } - } - public bool Step_NewManualPagebreak - { - get - { - string s = _Xp["Step", "NewManualPagebreak"]; - - if (s == string.Empty) return false; - if (s == "True") return true; - return false; - } - set - { - string s = _Xp["Step", "NewManualPagebreak"]; - if (value.ToString() == s) return; - _Xp["Step", "NewManualPagebreak"] = value.ToString(); - OnPropertyChanged("Step_NewManualPagebreak"); - } - } - //[Category("Step Attributes")] - //[DisplayName("Step Change Bar Override")] - //[RefreshProperties(RefreshProperties.All)] - //[Description("Step Change Bar Override")] - public string Step_CBOverride - { - get - { - string s = _Xp["Step", "CBOverride"]; - - if (s == string.Empty) return null; - return s; - } - set - { - string s = _Xp["Step", "CBOverride"]; - - if (value != null && value.ToString() == s) return; - if (value == null && s != null) _Xp["Step", "CBOverride"] = null; - else _Xp["Step", "CBOverride"] = value.ToString(); - OnPropertyChanged("Step_CBOverride"); - } - } - public string Step_MultipleChangeID - { - get - { - string s = _Xp["Step", "MultipleChangeID"]; - - if (s == string.Empty) return null; - return s; - } - set - { - string s = _Xp["Step", "MultipleChangeID"]; - - if (value != null && value.ToString() == s) return; - if (value == null && s != null) _Xp["Step", "MultipleChangeID"] = null; - else _Xp["Step", "MultipleChangeID"] = value.ToString(); - OnPropertyChanged("Step_MultipleChangeID"); - } - } - #endregion - - #region IItemConfig Members - - [Category("Master/Slave Settings")] - [DisplayName("Applicability")] - [RefreshProperties(RefreshProperties.All)] - [Description("Scope Applicability")] - public Volian.Base.Library.BigNum MasterSlave_Applicability - { - get - { - string s = _Xp["MasterSlave", "Applicability"]; - return new Volian.Base.Library.BigNum(s); - } - set - { - if (value != null) - _Xp["MasterSlave", "Applicability"] = value.FlagList; - else - _Xp["MasterSlave", "Applicability"] = null; - OnPropertyChanged("MasterSlave_Applicability"); - } - } - - #endregion - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension.zip b/PROMS/VEPROMS.CSLA.Library/Extension.zip deleted file mode 100644 index 5b84a912..00000000 Binary files a/PROMS/VEPROMS.CSLA.Library/Extension.zip and /dev/null differ diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/AnnotationExt.cs.bak b/PROMS/VEPROMS.CSLA.Library/Extension/AnnotationExt.cs.bak deleted file mode 100644 index 10000df0..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/AnnotationExt.cs.bak +++ /dev/null @@ -1,326 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.SqlClient; -using System.Text.RegularExpressions; -using Csla; -using Csla.Data; - -namespace VEPROMS.CSLA.Library -{ - public partial class AnnotationInfo - { - public override string ToString() - { - return _SearchText; - } - #region JCB Annotation Status - private bool _IsAnnotationNew = false; - - public bool IsAnnotationNew - { - get - { - ProcedureInfo pi = this.MyItem.MyProcedure; - if (pi != null) - //todo figure out audit count - _IsAnnotationNew = (this.DTS > pi.DTS); - return _IsAnnotationNew; - } - } - private bool _IsAnnotationChanged; - - public bool IsAnnotationChanged - { - get - { - ProcedureInfo pi = this.MyItem.MyProcedure; - if (pi != null) - { - //todo figure out audit count - _IsAnnotationChanged = (this.DTS > pi.DTS); - } - return _IsAnnotationChanged; - } - } - #endregion - - } - public partial class AnnotationType - { - public override string ToString() - { - return _Name; - } - public static AnnotationType GetByName2(string name) - { - try - { - AnnotationType tmp = DataPortal.Fetch(new GetByNameCriteria(name)); - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up AnnotationType - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationType.GetByName", ex); - } - } - [Serializable()] - protected class GetByNameCriteria - { - private string _Name; - public string Name { get { return _Name; } } - public GetByNameCriteria(string name) - { - _Name = name; - } - } - private void DataPortal_Fetch(GetByNameCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationType.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 = "getAnnotationTypeByName"; - cm.Parameters.AddWithValue("@Name", criteria.Name); - 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("AnnotationType.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationType.DataPortal_Fetch", ex); - } - } - } - public partial class AnnotationTypeInfo - { - public static List AllList() - { - //return _AllList; - return AnnotationTypeInfo._CacheList; - } - public override string ToString() - { - return _Name; - } - public static AnnotationTypeInfo GetByName(string name) - { - try - { - AnnotationTypeInfo tmp = DataPortal.Fetch(new GetByNameCriteria(name)); - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up AnnotationTypeInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationTypeInfo.GetByName", ex); - } - } - [Serializable()] - protected class GetByNameCriteria - { - private string _Name; - public string Name { get { return _Name; } } - public GetByNameCriteria(string name) - { - _Name = name; - } - } - private void DataPortal_Fetch(GetByNameCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationTypeInfo.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 = "getAnnotationTypeByName"; - cm.Parameters.AddWithValue("@Name", criteria.Name); - 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("AnnotationTypeInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationTypeInfo.DataPortal_Fetch", ex); - } - } - } - public partial class AnnotationTypeInfoList - { - public static void Refresh() - { - Reset(); - _AnnotationTypeInfoList = Get(); - } - } - public partial class Annotation - { - /// - /// Change the annotation type and update the Annotation record - /// - /// - public void Update(int anotypeid) - { - if (_TypeID != anotypeid) - { - _TypeID = anotypeid; - MarkDirty(); // force the record update - Save(); - //Update(); // commit record to database - } - } - public void CommitChanges() - { - MarkDirty(); // force the record update - Save(true); - //Update(); - } - - public static void DeleteAnnotation(AnnotationInfo obj) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Annotation"); - try - { - // ItemInfo nextItem = item.NextItem; - // ItemInfo prevItem = item.MyPrevious; - // item.OnBeforeDelete(); - DataPortal.Delete(new DeleteCriteria(obj.AnnotationID, Volian.Base.Library.VlnSettings.UserID)); - AnnotationInfo.StaticOnInfoChanged(); - // if (nextItem != null) // Adjust PreviousID for NextItem - // { - // ItemInfo.RefreshPrevious(nextItem.ItemID, item.PreviousID); - // // The order of the next two methods was required to fix a null reference - // // when getting myparent. This bug was found when deleting a node from the - // // tree when the RTBItem was not open (i.e. in the step editor window). - // nextItem.RefreshItemParts(); - // //nextItem.ResetOrdinal(); - UpdateTransitionText calls ResetOrdinal - // nextItem.UpdateTransitionText(); - // } - // else if (prevItem != null) - // { - // prevItem.RefreshNextItems(); - // if (prevItem.IsCaution || prevItem.IsNote) prevItem.ResetOrdinal(); - // prevItem.UpdateTransitionText(); - // } - // ItemInfo.DeleteItemInfoAndChildren(item.ItemID); // Dispose ItemInfo and Children - } - catch (Exception ex) - { - Console.WriteLine("AnnotationExt: Stacktrace = {0}", ex.StackTrace); - System.Data.SqlClient.SqlException exSQL = SqlException(ex); - if (exSQL != null && exSQL.Message.Contains("###Cannot Delete Item###")) - //return false; - throw exSQL; - else - throw new DbCslaException("Error on Annotation.Delete", ex); - } - } - private static System.Data.SqlClient.SqlException SqlException(Exception ex) - { - Type sqlExType = typeof(System.Data.SqlClient.SqlException); - while (ex != null) - { - if (ex.GetType() == sqlExType) return ex as System.Data.SqlClient.SqlException; - ex = ex.InnerException; - } - return null; - } - - [Serializable()] - protected class DeleteCriteria - { - private int _AnnotationID; - public int AnnotationID - { get { return _AnnotationID; } } - private string _UserID; - public string UserID - { - get { return _UserID; } - set { _UserID = value; } - } - public DeleteCriteria(int annotationID, String userID) - { - _AnnotationID = annotationID; - _UserID = userID; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(DeleteCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAnnotationWithUserID"; - cm.Parameters.AddWithValue("@AnnotationID", criteria.AnnotationID); - cm.Parameters.AddWithValue("@UserID", criteria.UserID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Item.DataPortal_Delete", ex); - } - } - } - //public partial class AnnotationTypeAnnotations - //{ - // public static int GetAnnotationID() - // { - // return AnnotationTypeAnnotat - // } - //} -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/AuditExt.cs.bak b/PROMS/VEPROMS.CSLA.Library/Extension/AuditExt.cs.bak deleted file mode 100644 index 58dd9bef..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/AuditExt.cs.bak +++ /dev/null @@ -1,1790 +0,0 @@ -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 System.Text.RegularExpressions; - -namespace VEPROMS.CSLA.Library -{ - public partial class AnnotationAuditInfo - { - internal string _ActionWhat; - public string ActionWhat - { - get { return _ActionWhat; } - set { _ActionWhat = value; } - } - internal DateTime _ActionWhen; - public DateTime ActionWhen - { - get { return _ActionWhen; } - set { _ActionWhen = value; } - } - internal int _IContentID; - public int IContentID - { - get { return _IContentID; } - set { _IContentID = value; } - } - public ItemInfo MyItemInfo - { - get {return ItemInfo.Get(this.ItemID);} - } - public string ListString() - { - string who = string.Empty; - string when = string.Empty; - if (this.UserID != "Migration" || this.TypeID != 1) - who = string.Format(" by {0}", this.UserID); - if (this.DTS != DateTime.Parse("1/1/1980")) - when = string.Format(" on {0}", this.DTS.ToString("MM/dd/yyyy @ HH:mm:ss")); - //return string.Format("{0}{1}{2}", this.ActionWhat, who, when); - return string.Format("{0}{1}{2}", this.DeleteStatus == 0 ? "Changed" : "Deleted", who, when); - } - public override string ToString() - { - string itemTitle = Regex.Replace(this.MyItemInfo.SearchPath, "^..+?\\u0007", ""); - itemTitle = itemTitle.Replace("\x11", itemTitle[0] == '\x11' ? "" : " - ").Replace("\\u8209?", "-"); - return string.Format("{0} Annotation {1}", itemTitle, this.ListString()); - } - } - - public partial class ContentAuditInfo - { - internal string _ActionWhat; - public string ActionWhat - { - get { return _ActionWhat; } - set { _ActionWhat = value; } - } - internal DateTime _ActionWhen; - public DateTime ActionWhen - { - get { return _ActionWhen; } - set { _ActionWhen = value; } - } - internal string _Path; - public string Path - { - get { return _Path; } - set { _Path = value; } - } - internal int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - internal string _Typename; - public string TypeName - { - get { return _Typename; } - set { _Typename = value; } - } - public override string ToString() - { - string itemTitle = Regex.Replace(this.Path, "^..+?\\u0007", ""); - itemTitle = itemTitle.Replace("\x11", itemTitle[0] == '\x11' ? "" : " - ").Replace("\\u8209?", "-"); - return string.Format("{4} item {0} by {1} on {2} @ {3}", this.ActionWhat, this.UserID, this.ActionWhen == DateTime.MinValue ? this.DTS.ToShortDateString() : this.ActionWhen.ToShortDateString(), this.ActionWhen == DateTime.MinValue ? this.DTS.ToShortTimeString() : this.ActionWhen.ToShortTimeString(), itemTitle); - //return string.Format("{0} by {1} on {2}", this.DeleteStatus == 0 ? "Changed" : "Deleted", this.UserID, this.DTS.ToString("MM/dd/yyyy @ HH:mm:ss")); - //return string.Format("{0} - {1} {2}", this.UserID, this.DTS, this.DeleteStatus == 0 ? "" : "Deleted"); - } - public string ListString() - { - string who = string.Empty; - string when = string.Empty; - if (this.UserID != "Migration") - who = string.Format(" by {0}", this.UserID); - if (this.DTS != DateTime.Parse("1/1/1980")) - when = string.Format(" on {0}", this.DTS.ToString("MM/dd/yyyy @ HH:mm:ss")); - return string.Format("{0}{1}{2}", this.ActionWhat, who, when); - } - } - - public partial class DocumentAuditInfo - { - public override string ToString() - { - return string.Format("{0} - {1} {2}", this.UserID, this.DTS, this.DeleteStatus == 0 ? "" : "Deleted"); - } - } - - public partial class EntryAuditInfo - { - public override string ToString() - { - return string.Format("{0} - {1} {2}", this.UserID, this.DTS, this.DeleteStatus == 0 ? "" : "Deleted"); - } - } - - public partial class GridAuditInfo - { - public override string ToString() - { - return string.Format("{0} by {1} on {2}", this.DeleteStatus == 0 ? "Changed" : "Deleted", this.UserID, this.DTS.ToString("MM/dd/yyyy @ HH:mm:ss")); - //return string.Format("{0} - {1} {2}", this.UserID, this.DTS, this.DeleteStatus == 0 ? "" : "Deleted"); - } - } - - public partial class ImageAuditInfo - { - public override string ToString() - { - return string.Format("{0} - {1} {2}", this.UserID, this.DTS, this.DeleteStatus == 0 ? "" : "Deleted"); - } - } - - public partial class ItemAuditInfo - { - public static bool IsChangeManagerVersion() - { - try - { - using (ItemAuditInfoList list = ItemAuditInfoList.Get()) - { - ; - } - } - catch (Exception ex1) - { - Exception ex = ex1; - while (ex.InnerException != null) - ex = ex.InnerException; - if (ex.Message.StartsWith("Could not find stored procedure")) - { - System.Windows.Forms.MessageBox.Show("Running Change Manager Code with Non-Change Manager Data", "Inconsistent Data", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Error); - return false; - } - throw new Exception("Failed on check of Change Manager Data",ex1); - } - return true; - } - internal int _Level; - public int Level - { - get { return _Level; } - } - internal string _ItemType; - public string ItemType - { - get { return _ItemType; } - } - - public override string ToString() - { - return string.Format("{0}{1} deleted by {2} on {3} @ {4}", this.Level == 0 ? "Previous " : this.Level == 1 ? "Next " : "", this.ItemType, this.UserID, this.DTS.ToShortDateString(), this.DTS.ToShortTimeString()); -// return string.Format("Deleted by {0} on {1} @ {2}", this.UserID, this.DTS.ToShortDateString(), this.DTS.ToShortTimeString()); -// return string.Format("(ItemID: {4}, DeleteID: {5}, {0} by {1} on {2} Level: {3}", this.DeleteStatus == 0 ? "Changed" : "Deleted", this.UserID, this.DTS.ToString("MM/dd/yyyy @ HH:mm:ss"), Level.ToString(), this.ItemID.ToString(), this.DeleteStatus.ToString()); -// return string.Format("Level: {3}, {0} - {1} {2}", this.UserID, this.DTS, this.DeleteStatus == 0 ? "" : "Deleted", this.Level.ToString()); - } - } - - public partial class PartAuditInfo - { - public override string ToString() - { - return string.Format("{0} - {1} {2}", this.UserID, this.DTS, this.DeleteStatus == 0 ? "" : "Deleted"); - } - } - - public partial class AnnotationAuditInfoList - { - /// - /// Return a list of all AnnotationAuditInfo by ItemID. - /// - /// Selected ItemID for Annotation Audit Records - /// - public static AnnotationAuditInfoList GetByItemID(int itemID) - { - try - { - //if (_AnnotationAuditInfoList != null) - // return _AnnotationAuditInfoList; - AnnotationAuditInfoList tmp = DataPortal.Fetch(new ItemIDCriteria(itemID)); - //AnnotationAuditInfo.AddList(tmp); - //tmp.AddEvents(); - //_AnnotationAuditInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationAuditInfoList.GetByItemID", ex); - } - } - [Serializable()] - protected class ItemIDCriteria - { - private int _ItemID; - public int ItemID - { get { return _ItemID; } } - public ItemIDCriteria(int itemID) - { - _ItemID = itemID; - } - } - private void DataPortal_Fetch(ItemIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAnnotationAuditsByItemID"; - 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 AnnotationAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("AnnotationAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - - public static AnnotationAuditInfoList GetByAnnotationID(int annotationID) - { - try - { - //if (_AnnotationAuditInfoList != null) - // return _AnnotationAuditInfoList; - AnnotationAuditInfoList tmp = DataPortal.Fetch(new AnnotationIDCriteria(annotationID)); - //AnnotationAuditInfo.AddList(tmp); - //tmp.AddEvents(); - //_AnnotationAuditInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationAuditInfoList.GetByAnnotationID", ex); - } - } - [Serializable()] - protected class AnnotationIDCriteria - { - private int _AnnotationID; - public int AnnotationID - { get { return _AnnotationID; } } - public AnnotationIDCriteria(int annotationID) - { - _AnnotationID = annotationID; - } - } - private void DataPortal_Fetch(AnnotationIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAnnotationAuditsByAnnotationID"; - cm.Parameters.AddWithValue("@AnnotationID", criteria.AnnotationID); - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new AnnotationAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("AnnotationAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - - #region ChronologyReport - //chronology report - public static AnnotationAuditInfoList GetChronology(int @procItemID, int itemID) - { - try - { - AnnotationAuditInfoList tmp = DataPortal.Fetch(new ChronologyCriteria(procItemID, itemID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationAuditInfoList.GetChronology", ex); - } - } - [Serializable()] - protected class ChronologyCriteria - { - private int _procItemID; - public int ProcItemID - { - get { return _procItemID; } - } - private int _itemID; - public int ItemID - { - get { return _itemID; } - } - public ChronologyCriteria(int procItemID, int itemID) - { - _procItemID = procItemID; - _itemID = itemID; - } - } - private void DataPortal_Fetch(ChronologyCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAnnotationAuditsChronologyByItemID"; - cm.Parameters.AddWithValue("@ProcItemID", criteria.ProcItemID); - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - AnnotationAuditInfo aai = new AnnotationAuditInfo(dr); - aai.ActionWhat = dr.GetString("ActionWhat"); - aai.ActionWhen = dr.GetDateTime("ActionWhen"); - aai.IContentID = dr.GetInt32("IContentID"); - this.Add(aai); - - } - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("AnnotationAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - //chronology report by unit - public static AnnotationAuditInfoList GetChronologyByUnit(int @procItemID, int itemID, int unitID) - { - try - { - AnnotationAuditInfoList tmp = DataPortal.Fetch(new ChronologyCriteriaByUnit(procItemID, itemID, unitID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationAuditInfoList.GetChronologyByUnit", ex); - } - } - [Serializable()] - protected class ChronologyCriteriaByUnit - { - private int _procItemID; - public int ProcItemID - { - get { return _procItemID; } - } - private int _itemID; - public int ItemID - { - get { return _itemID; } - } - private int _UnitID; - public int UnitID - { - get { return _UnitID; } - } - public ChronologyCriteriaByUnit(int procItemID, int itemID, int unitID) - { - _procItemID = procItemID; - _itemID = itemID; - _UnitID = unitID; - } - } - private void DataPortal_Fetch(ChronologyCriteriaByUnit criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAnnotationAuditsChronologyByItemIDandUnitID"; - cm.Parameters.AddWithValue("@ProcItemID", criteria.ProcItemID); - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - cm.Parameters.AddWithValue("@UnitID", criteria.UnitID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - AnnotationAuditInfo aai = new AnnotationAuditInfo(dr); - aai.ActionWhat = dr.GetString("ActionWhat"); - aai.ActionWhen = dr.GetDateTime("ActionWhen"); - aai.IContentID = dr.GetInt32("IContentID"); - this.Add(aai); - - } - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("AnnotationAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - - } - - public partial class ContentAuditInfoList - { - /// - /// Return a list of all ContentAuditInfo by ContentID. - /// - /// Selected ContentID for Content Audit Records - /// - public static ContentAuditInfoList Get(int contentID) - { - try - { - //if (_ContentAuditInfoList != null) - // return _ContentAuditInfoList; - ContentAuditInfoList tmp = DataPortal.Fetch(new ContentIDCriteria(contentID)); - //ContentAuditInfo.AddList(tmp); - //tmp.AddEvents(); - //_ContentAuditInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAuditInfoList.Get", ex); - } - } - [Serializable()] - protected class ContentIDCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getContentAuditsByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ContentAuditInfo cai = new ContentAuditInfo(dr); - cai.ActionWhat = dr.GetString("ActionWhat"); - this.Add(cai); -// this.Add(new ContentAuditInfo(dr)); - } - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ContentAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - //byDTS - public static ContentAuditInfoList Get(int contentID, DateTime dts) - { - try - { - //if (_ContentAuditInfoList != null) - // return _ContentAuditInfoList; - ContentAuditInfoList tmp = DataPortal.Fetch(new ContentIDandDTSCriteria(contentID, dts)); - //ContentAuditInfo.AddList(tmp); - //tmp.AddEvents(); - //_ContentAuditInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAuditInfoList.Get", ex); - } - } - [Serializable()] - protected class ContentIDandDTSCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - private DateTime _DTS; - public DateTime DTS - { - get { return _DTS; } - } - public ContentIDandDTSCriteria(int contentID, DateTime dts) - { - _ContentID = contentID; - _DTS = dts; - } - } - private void DataPortal_Fetch(ContentIDandDTSCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getContentAuditsByContentIDandDTS"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.Parameters.AddWithValue("@DTS", criteria.DTS); - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ContentAuditInfo cai = new ContentAuditInfo(dr); - cai.ActionWhat = dr.GetString("ActionWhat"); - this.Add(cai); - // this.Add(new ContentAuditInfo(dr)); - } - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ContentAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - //by delete status - public static ContentAuditInfoList GetByDeleteStatus(int deleteStatus) - { - try - { - //if (_ContentAuditInfoList != null) - // return _ContentAuditInfoList; - ContentAuditInfoList tmp = DataPortal.Fetch(new DeleteStatusCriteria(deleteStatus)); - //ContentAuditInfo.AddList(tmp); - //tmp.AddEvents(); - //_ContentAuditInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAuditInfoList.GetByDeleteStatus", ex); - } - } - [Serializable()] - protected class DeleteStatusCriteria - { - private int _DeleteStatus; - public int DeleteStatus - { get { return _DeleteStatus; } } - public DeleteStatusCriteria(int deleteStatus) - { - _DeleteStatus = deleteStatus; - } - } - private void DataPortal_Fetch(DeleteStatusCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getContentAuditsByDeleteStatus"; - cm.Parameters.AddWithValue("@DeleteStatus", criteria.DeleteStatus); - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ContentAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ContentAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - - #region ChronologyReport - //chronology report - public static ContentAuditInfoList GetChronology(int procedureItemID, int currentItemID, bool includeDeletedChildren) - { - try - { - ContentAuditInfoList tmp = DataPortal.Fetch(new ChronologyCriteria(procedureItemID, currentItemID, includeDeletedChildren)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAuditInfoList.GetChronology", ex); - } - } - [Serializable()] - protected class ChronologyCriteria - { - private int _ProcedureItemID; - public int ProcedureItemID - { - get { return _ProcedureItemID; } - } - private int _CurrentItemID; - public int CurrentItemID - { - get { return _CurrentItemID; } - } - private bool _IncludeDeletedChildren; - public bool IncludeDeletedChildren - { - get { return _IncludeDeletedChildren; } - } - public ChronologyCriteria(int procedureItemID, int currentItemID, bool includeDeletedChildren) - { - _ProcedureItemID = procedureItemID; - _CurrentItemID = currentItemID; - _IncludeDeletedChildren = includeDeletedChildren; - } - } - private void DataPortal_Fetch(ChronologyCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getContentAuditsChronologyByItemID"; - cm.Parameters.AddWithValue("@ProcedureItemID", criteria.ProcedureItemID); - cm.Parameters.AddWithValue("@SelectedItemID", criteria.CurrentItemID); - cm.Parameters.AddWithValue("@IncludeDeletedChildren", criteria.IncludeDeletedChildren ? 1 : 0); - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ContentAuditInfo cai = new ContentAuditInfo(dr); - cai.ActionWhat = dr.GetString("ActionWhat"); - cai.ActionWhen = dr.GetDateTime("ActionWhen"); - cai.Path = dr.GetString("Path"); - cai.ItemID = dr.GetInt32("ItemID"); - cai.TypeName = dr.GetString("TypeName"); - this.Add(cai); - - } - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ContentAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - //chronology report by unit - public static ContentAuditInfoList GetChronologyByUnit(int procedureItemID, int currentItemID, bool includeDeletedChildren, int unitID) - { - try - { - ContentAuditInfoList tmp = DataPortal.Fetch(new ChronologyCriteriaByUnit(procedureItemID, currentItemID, includeDeletedChildren, unitID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAuditInfoList.GetChronologyByUnit", ex); - } - } - [Serializable()] - protected class ChronologyCriteriaByUnit - { - private int _ProcedureItemID; - public int ProcedureItemID - { - get { return _ProcedureItemID; } - } - private int _CurrentItemID; - public int CurrentItemID - { - get { return _CurrentItemID; } - } - private bool _IncludeDeletedChildren; - public bool IncludeDeletedChildren - { - get { return _IncludeDeletedChildren; } - } - private int _UnitID; - public int UnitID - { - get { return _UnitID; } - } - public ChronologyCriteriaByUnit(int procedureItemID, int currentItemID, bool includeDeletedChildren, int unitID) - { - _ProcedureItemID = procedureItemID; - _CurrentItemID = currentItemID; - _IncludeDeletedChildren = includeDeletedChildren; - _UnitID = unitID; - } - } - private void DataPortal_Fetch(ChronologyCriteriaByUnit criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getContentAuditsChronologyByItemIDandUnitID"; - cm.Parameters.AddWithValue("@ProcedureItemID", criteria.ProcedureItemID); - cm.Parameters.AddWithValue("@SelectedItemID", criteria.CurrentItemID); - cm.Parameters.AddWithValue("@IncludeDeletedChildren", criteria.IncludeDeletedChildren ? 1 : 0); - cm.Parameters.AddWithValue("@UnitID", criteria.UnitID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ContentAuditInfo cai = new ContentAuditInfo(dr); - cai.ActionWhat = dr.GetString("ActionWhat"); - cai.ActionWhen = dr.GetDateTime("ActionWhen"); - cai.Path = dr.GetString("Path"); - cai.ItemID = dr.GetInt32("ItemID"); - cai.TypeName = dr.GetString("TypeName"); - this.Add(cai); - - } - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ContentAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - - #region SummaryReport - //summary report - public static ContentAuditInfoList GetSummary(int procedureItemID, int currentItemID, bool includeDeletedChildren) - { - try - { - ContentAuditInfoList tmp = DataPortal.Fetch(new SummaryCriteria(procedureItemID, currentItemID, includeDeletedChildren)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAuditInfoList.GetSummary", ex); - } - } - [Serializable()] - protected class SummaryCriteria - { - private int _ProcedureItemID; - public int ProcedureItemID - { - get { return _ProcedureItemID; } - } - private int _CurrentItemID; - public int CurrentItemID - { - get { return _CurrentItemID; } - } - private bool _IncludeDeletedChildren; - public bool IncludeDeletedChildren - { - get { return _IncludeDeletedChildren; } - } - public SummaryCriteria(int procedureItemID, int currentItemID, bool includeDeletedChildren) - { - _ProcedureItemID = procedureItemID; - _CurrentItemID = currentItemID; - _IncludeDeletedChildren = includeDeletedChildren; - } - } - private void DataPortal_Fetch(SummaryCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getContentAuditsSummaryByItemID"; - cm.Parameters.AddWithValue("@ProcedureItemID", criteria.ProcedureItemID); - cm.Parameters.AddWithValue("@SelectedItemID", criteria.CurrentItemID); - cm.Parameters.AddWithValue("@IncludeDeletedChildren", criteria.IncludeDeletedChildren ? 1 : 0); - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ContentAuditInfo cai = new ContentAuditInfo(dr); - cai.ActionWhat = dr.GetString("ActionWhat"); - cai.ActionWhen = dr.GetDateTime("ActionWhen"); - cai.Path = dr.GetString("Path"); - cai.ItemID = dr.GetInt32("ItemID"); - cai.TypeName = dr.GetString("TypeName"); - this.Add(cai); - - } - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ContentAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - //summary report by unit - public static ContentAuditInfoList GetSummaryByUnit(int procedureItemID, int currentItemID, bool includeDeletedChildren, int unitID) - { - try - { - ContentAuditInfoList tmp = DataPortal.Fetch(new SummaryCriteriaByUnit(procedureItemID, currentItemID, includeDeletedChildren, unitID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAuditInfoList.GetSummaryByUnit", ex); - } - } - [Serializable()] - protected class SummaryCriteriaByUnit - { - private int _ProcedureItemID; - public int ProcedureItemID - { - get { return _ProcedureItemID; } - } - private int _CurrentItemID; - public int CurrentItemID - { - get { return _CurrentItemID; } - } - private bool _IncludeDeletedChildren; - public bool IncludeDeletedChildren - { - get { return _IncludeDeletedChildren; } - } - private int _UnitID; - public int UnitID - { - get { return _UnitID; } - } - public SummaryCriteriaByUnit(int procedureItemID, int currentItemID, bool includeDeletedChildren, int unitID) - { - _ProcedureItemID = procedureItemID; - _CurrentItemID = currentItemID; - _IncludeDeletedChildren = includeDeletedChildren; - _UnitID = unitID; - } - } - private void DataPortal_Fetch(SummaryCriteriaByUnit criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getContentAuditsSummaryByItemIDandUnitID"; - cm.Parameters.AddWithValue("@ProcedureItemID", criteria.ProcedureItemID); - cm.Parameters.AddWithValue("@SelectedItemID", criteria.CurrentItemID); - cm.Parameters.AddWithValue("@IncludeDeletedChildren", criteria.IncludeDeletedChildren ? 1 : 0); - cm.Parameters.AddWithValue("@UnitID", criteria.UnitID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ContentAuditInfo cai = new ContentAuditInfo(dr); - cai.ActionWhat = dr.GetString("ActionWhat"); - cai.ActionWhen = dr.GetDateTime("ActionWhen"); - cai.Path = dr.GetString("Path"); - cai.ItemID = dr.GetInt32("ItemID"); - cai.TypeName = dr.GetString("TypeName"); - this.Add(cai); - - } - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ContentAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - - } - - public partial class DocumentAuditInfoList - { - /// - /// Return a list of all DocumentAuditInfo by DocID. - /// - /// Selected DocID for Document Audit Records - /// - public static DocumentAuditInfoList Get(int docID) - { - try - { - DocumentAuditInfoList tmp = DataPortal.Fetch(new DocumentIDCriteria(docID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocumentAuditInfoList.Get", ex); - } - } - [Serializable()] - protected class DocumentIDCriteria - { - private int _DocID; - public int DocID - { get { return _DocID; } } - public DocumentIDCriteria(int docID) - { - _DocID = docID; - } - } - private void DataPortal_Fetch(DocumentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocumentAuditsByDocID"; - cm.Parameters.AddWithValue("@DocID", criteria.DocID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new DocumentAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("DocumentAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - } - - public partial class EntryAuditInfoList - { - /// - /// Return a list of all EntryAuditInfo by ContentID. - /// - /// Selected ContentID for Entry Audit Records - /// - public static EntryAuditInfoList Get(int contentID) - { - try - { - EntryAuditInfoList tmp = DataPortal.Fetch(new ContentIDCriteria(contentID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on EntryAuditInfoList.Get", ex); - } - } - [Serializable()] - protected class ContentIDCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getEntryAuditsByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new EntryAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("EntryAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - } - - public partial class GridAuditInfoList - { - /// - /// Return a list of all GridAuditInfo by ContentID. - /// - /// Selected ContentID for Grid Audit Records - /// - public static GridAuditInfoList Get(int contentID) - { - try - { - GridAuditInfoList tmp = DataPortal.Fetch(new ContentIDCriteria(contentID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on GridAuditInfoList.Get", ex); - } - } - [Serializable()] - protected class ContentIDCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] GridAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getGridAuditsByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new GridAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("GridAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("GridAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - } - - public partial class ImageAuditInfoList - { - /// - /// Return a list of all ImageAuditInfo by ContentID. - /// - /// Selected ContentID for Image Audit Records - /// - public static ImageAuditInfoList Get(int contentID) - { - try - { - ImageAuditInfoList tmp = DataPortal.Fetch(new ContentIDCriteria(contentID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ImageAuditInfoList.Get", ex); - } - } - [Serializable()] - protected class ContentIDCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ImageAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getImageAuditsByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ImageAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ImageAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ImageAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - } - - public partial class ItemAuditInfoList - { - /// - /// Return a list of all ItemAuditInfo by ItemID. - /// - /// Selected ItemID for Item Audit Records - /// - public static ItemAuditInfoList Get(int itemID) - { - try - { - ItemAuditInfoList tmp = DataPortal.Fetch(new ItemIDCriteria(itemID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemAuditInfoList.Get", ex); - } - } - [Serializable()] - protected class ItemIDCriteria - { - private int _ItemID; - public int ItemID - { get { return _ItemID; } } - public ItemIDCriteria(int itemID) - { - _ItemID = itemID; - } - } - private void DataPortal_Fetch(ItemIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getItemAuditsByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ItemAuditInfo iai = new ItemAuditInfo(dr); - iai._Level = dr.GetInt32("Level"); - iai._ItemType = dr.GetString("ItemType"); - this.Add(iai); - } - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ItemAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - - } - - public partial class PartAuditInfoList - { - /// - /// Return a list of all PartAuditInfo by ContentID. - /// - /// Selected ContentID for Part Audit Records - /// - public static PartAuditInfoList Get(int contentID) - { - try - { - PartAuditInfoList tmp = DataPortal.Fetch(new ContentIDCriteria(contentID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on PartAuditInfoList.Get", ex); - } - } - [Serializable()] - protected class ContentIDCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PartAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPartAuditsByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new PartAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PartAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("PartAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - - public static PartAuditInfoList GetByDeleteStatus(int deleteStatus) - { - try - { - PartAuditInfoList tmp = DataPortal.Fetch(new DeleteStatusCriteria(deleteStatus)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on PartAuditInfoList.GetByDeleteStatus", ex); - } - } - [Serializable()] - protected class DeleteStatusCriteria - { - private int _DeleteStatus; - public int DeleteStatus - { get { return _DeleteStatus; } } - public DeleteStatusCriteria(int deleteStatus) - { - _DeleteStatus = deleteStatus; - } - } - private void DataPortal_Fetch(DeleteStatusCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PartAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPartAuditsByDeleteStatus"; - cm.Parameters.AddWithValue("@DeleteStatus", criteria.DeleteStatus); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new PartAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PartAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("PartAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - - public static PartAuditInfoList GetByItemID(int itemID) - { - try - { - PartAuditInfoList tmp = DataPortal.Fetch(new ItemIDCriteria(itemID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on PartAuditInfoList.GetByItemID", ex); - } - } - [Serializable()] - protected class ItemIDCriteria - { - private int _ItemID; - public int ItemID - { get { return _ItemID; } } - public ItemIDCriteria(int itemID) - { - _ItemID = itemID; - } - } - private void DataPortal_Fetch(ItemIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PartAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPartAuditsByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new PartAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PartAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("PartAuditInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - - } - - public partial class ItemInfo - { - public static event ItemInfoEvent InfoRestored; - private void OnInfoRestored(ItemInfo itemInfo) - { - if (InfoRestored != null) - InfoRestored(this); - } - public ItemInfo RestoreSibling(ItemAuditInfo iai) - { - if (iai.DeleteStatus == 0) - return null; - int nextID = iai.Level == 0 ? ItemID : NextItem == null ? 0 : NextItem.ItemID; - ItemInfo tmp = RestoreItem(iai); - if(nextID > 0) - using (Item item = Item.Get(nextID)) ItemInfo.Refresh(item); - if (iai.Level == 0) - OnNewSiblingBefore(new ItemInfoInsertEventArgs(tmp, EAddpingPart.Before)); - else - OnNewSiblingAfter(new ItemInfoInsertEventArgs(tmp, EAddpingPart.After)); - ((ItemInfo)ActiveParent).MyContent.RefreshContentParts(); - tmp.OnInfoRestored(tmp); - return tmp; - } - public ItemInfo RestoreItem(ItemAuditInfo iai) - { - ItemInfo tmp2 = null; - try - { - ItemInfo tmp = DataPortal.Fetch(new RestoreCriteria(iai, this)); - tmp2 = tmp; - AddToCache(tmp); - if (tmp.ErrorMessage == "No Record Found") tmp = null; - if(iai.Level == 2) - OnNewChild(new ItemInfoInsertEventArgs(tmp, EAddpingPart.Child)); - int? nextID = null; - if (tmp.NextItem != null) - { - nextID = tmp.NextItem.ItemID; - ItemInfo.RefreshPrevious(nextID, tmp.ItemID); - tmp.NextItem.ResetOrdinal(); - } - //tmp.UpdateTransitionText(); - if (tmp.MyContent.ContentTransitions != null) - { - foreach (TransitionInfo tran in tmp.MyContent.ContentTransitions) - { - if(tran.MyItemToID != null) - tran.MyItemToID.UpdateTransitionText(); - } - } - using (Content cont = tmp.MyContent.Get()) - { - if (cont.ContentTransitionCount > 0) - { - foreach (ContentTransition tran in cont.ContentTransitions) - { - cont.FixTransitionText(TransitionInfo.Get(tran.TransitionID)); - } - cont.Save(); - } - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfo.RestoreItem", ex); - } - } - // Criteria to get Item and children - [Serializable()] - private class RestoreCriteria - { - public RestoreCriteria(ItemAuditInfo iai, ItemInfo ii) - { - _MyAudit = iai; - _MyInfo = ii; - } - private ItemAuditInfo _MyAudit; - public ItemAuditInfo MyAudit - { - get { return _MyAudit; } - set { _MyAudit = value; } - } - private ItemInfo _MyInfo; - public ItemInfo MyInfo - { - get { return _MyInfo; } - set { _MyInfo = value; } - } - } - private void DataPortal_Fetch(RestoreCriteria criteria) - { - ItemAuditInfo iai = criteria.MyAudit; - ItemInfo ii = criteria.MyInfo; - //if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "restoreDeletedItem"; - cm.Parameters.AddWithValue("@ItemID", iai.ItemID); - cm.Parameters.AddWithValue("@DeleteID", iai.DeleteStatus); - cm.Parameters.AddWithValue("@CurrentID", ii.ItemID); - cm.Parameters.AddWithValue("@Level", iai.Level); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - //if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemAuditInfoList.DataPortal_Fetch", ex); - //throw new DbCslaException("ItemAuditInfoList.DataPortal_Fetch", ex); - } - DataPortal_Fetch(new PKCriteria(iai.ItemID)); - } - } - - public partial class AnnotationInfo - { - public static AnnotationInfo RestoreAnnotation(AnnotationAuditInfo aai) - { - try - { - AnnotationInfo tmp = DataPortal.Fetch(new RestoreCriteria(aai)); - AddToCache(tmp); - if (tmp.ErrorMessage == "No Record Found") tmp = null; - tmp.MyItem.RefreshItemAnnotations(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotaionInfo.RestoreAnnotation", ex); - } - } - //criteria to get annotation - [Serializable] - private class RestoreCriteria - { - public RestoreCriteria(AnnotationAuditInfo aai) - { - _MyAudit = aai; - } - private AnnotationAuditInfo _MyAudit; - - public AnnotationAuditInfo MyAudit - { - get { return _MyAudit; } - set { _MyAudit = value; } - } - } - private void DataPortal_Fetch(RestoreCriteria criteria) - { - AnnotationAuditInfo aai = criteria.MyAudit; - if (aai.DeleteStatus == 0) - { - //if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "restoreChangedAnnotation"; - cm.Parameters.AddWithValue("@AuditID", aai.AuditID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - //if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemAuditInfoList.DataPortal_Fetch", ex); - //throw new DbCslaException("ItemAuditInfoList.DataPortal_Fetch", ex); - } - } - else - { - //if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "restoreDeletedAnnotation"; - cm.Parameters.AddWithValue("@AnnotationID", aai.AnnotationID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - //if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemAuditInfoList.DataPortal_Fetch", ex); - //throw new DbCslaException("ItemAuditInfoList.DataPortal_Fetch", ex); - } - } - DataPortal_Fetch(new PKCriteria(aai.AnnotationID)); - } - } - - public partial class ContentInfo - { - public static ContentInfo RestoreContent(ContentAuditInfo cai) - { - try - { - ContentInfo tmp = DataPortal.Fetch(new RestoreCriteria(cai)); - AddToCache(tmp); - if (tmp.ErrorMessage == "No Record Found") tmp = null; - tmp.RefreshContentDetails(); - tmp.RefreshContentItems(); - tmp.RefreshContentParts(); - tmp.RefreshContentRoUsages(); - tmp.RefreshContentTransitions(); - using (Content ctmp = tmp.Get()) - { - ROFstInfo myrofst = tmp.ContentItems[0].MyProcedure.MyDocVersion.DocVersionAssociations[0].MyROFst; - ROFSTLookup mylookup = myrofst.ROFSTLookup; - foreach(RoUsageInfo rou in tmp.ContentRoUsages) - { - ROFSTLookup.rochild rocc = mylookup.GetRoChild12(rou.ROID); - string myvalue = rocc.value; - int mytype = rocc.type; - ctmp.FixContentText(rou, myvalue, mytype, null); - } - Content cctmp = ctmp; - if (ctmp.IsDirty) - { - cctmp.DTS = DateTime.Now; - cctmp = ctmp.Save(); - } - ContentInfo.Refresh(cctmp); - } - //FixContentText(RoUsageInfo rousg, string value, int rotype, ROFstInfo origROFstInfo - - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentInfo.RestoreContent", ex); - } - } - //criteria to get content - [Serializable] - private class RestoreCriteria - { - public RestoreCriteria(ContentAuditInfo cai) - { - _MyAudit = cai; - } - private ContentAuditInfo _MyAudit; - public ContentAuditInfo MyAudit - { - get { return _MyAudit; } - set { _MyAudit = value; } - } - } - private void DataPortal_Fetch(RestoreCriteria criteria) - { - ContentAuditInfo cai = criteria.MyAudit; - //if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "restoreChangedContent"; - cm.Parameters.AddWithValue("@AuditID", cai.AuditID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - //if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemAuditInfoList.DataPortal_Fetch", ex); - //throw new DbCslaException("ItemAuditInfoList.DataPortal_Fetch", ex); - } - DataPortal_Fetch(new PKCriteria(cai.ContentID)); - } - } - public partial class StageInfoList - { - public static void Refresh() - { - Reset(); - _StageInfoList = Get(); - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs.bak b/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs.bak deleted file mode 100644 index 06131a2c..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs.bak +++ /dev/null @@ -1,509 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; -using Csla.Data; -using System.Xml; -using System.Data.SqlClient; -using System.Data; -using System.Text.RegularExpressions; - -namespace VEPROMS.CSLA.Library -{ - public partial class Content - { - public override string ToString() - { - return string.Format("{0} {1}", Number, Text); - } - public void FixTransitionText(TransitionInfo tran) - { - string transText = tran.ResolvePathTo(); - string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - //string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - Match m = Regex.Match(Text, lookFor); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - if (g.ToString() != transText) - Text = Text.Substring(0, g.Index) + transText + Text.Substring(g.Index + g.Length); - } - // see if there is a grid to update too. - if (tran.MyContent.MyGrid != null) - { - string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* ([^#]*?)(\\[^v'? \\]+)*\\v(\\[^v \\]+)* #Link:Transition[^:]*?:{0} {1}( [0-9]*){{1,2}}\[END>", tran.TranType, tran.TransitionID); - Match mg = Regex.Match(MyGrid.Data, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = mg.Groups[3]; - if (g.ToString() != transText) - MyGrid.Data = MyGrid.Data.Substring(0, g.Index) + transText + MyGrid.Data.Substring(g.Index + g.Length); - } - } - } - private string GetMySuffix(int start) - { - string txt = Text.Substring(start); - int firstSlashVeeZero = txt.IndexOf(@"\v0"); - if (firstSlashVeeZero == 0 && txt.Length > 3 && txt[3] == ' ') //"\v0 " - return Text.Substring(start, 4); - return Text.Substring(start, firstSlashVeeZero + 3); //everything upto \v0" - } - private string GetMyPrefix(int start, int lastIndex) - { - string defPrefix = Text.Substring(start - 3, 3); - if (defPrefix != @"\v ") throw new Exception(string.Format("rtf string {0} does not match expected format", defPrefix)); - string txt = Text.Substring(lastIndex, start - lastIndex - 3); - int lastSlash = txt.LastIndexOf(@"\"); - int lastSpace = txt.LastIndexOf(" "); - int lastCR = txt.LastIndexOf("\r"); - if (lastSpace < lastCR) - lastSpace = lastCR; - if (lastSlash <= lastSpace) //this will return "\v " - return defPrefix; - txt = txt.Substring(lastSlash); - if(txt.StartsWith(@"\'")) //this is a hex - return defPrefix; - if (Regex.IsMatch(txt, @"\\u[0-9].*")) //this is unicode - return defPrefix; - return @"\v"; - } - public string ConvertROToText(RoUsageInfo rousg, string value, int rotype, ROFstInfo origROFstInfo) - { - string retval = null; - string newvalue = value; - string findLink = @""; - MatchCollection ms = Regex.Matches(Text, findLink); - string lookFor = string.Format(@"", rousg.ROUsageID); - int lastIndex = 0; - string newText = Text; - foreach (Match mm in ms) - { - int offset = mm.Index; - Match m = Regex.Match(mm.Value, lookFor, RegexOptions.Singleline); - if (m != null && m.Groups.Count > 1) - { - string prefix = GetMyPrefix(mm.Index, lastIndex); - string suffix = GetMySuffix(mm.Index + mm.Length); - System.Text.RegularExpressions.Group g = m.Groups[3]; - string part1 = newText.Substring(0, mm.Index); - string part2 = g.Value; - string part3 = newText.Substring(mm.Index + mm.Length); - //modify part1 based on prefix - if (prefix == @"\v ") - part1 = part1.Substring(0, part1.Length - 3); - else - part1 = part1.Substring(0, part1.Length - 3) + " "; - //modify part3 based on suffix - if (suffix == @"\v0 ") - part3 = part3.Substring(4); - else - part3 = suffix.Replace(@"\v0","") + part3.Substring(suffix.Length); - System.Text.RegularExpressions.Group g2 = m.Groups[2]; - if (g2.Value.StartsWith(@"\u8209?")) - { - string gg = g2.Value + " " + g.Value; - retval = gg; - part2 = retval; - } - else - //else if (g.ToString() != newvalue) - { - retval = g.Value; - part2 = retval; - } - Text = part1 + part2 + part3; - break; // Text has been processed - } - lastIndex = mm.Index + mm.Length; - } - Console.WriteLine("Text: {0} NewText: {1}", Text, newText); - // see if there is a grid to update too. - if (rousg.MyContent.MyGrid != null) - { - if (rotype == (int)E_ROValueType.Table) // if change in rotable data... - { - if (origROFstInfo != null) - { - List retlist = origROFstInfo.OnROTableUpdate(this, new ROFstInfoROTableUpdateEventArgs(newvalue, MyGrid.Data)); - if (MyGrid.Data != retlist[1]) - { - MyGrid.Data = retlist[1]; - retval = Text; - if (Text != retlist[0]) - Text = retlist[0]; - } - } - } - else - { - // if it's an ro within a table, need to process into an flex grid to save the grid data: - string findLinkXml = @"<START\].*?\[END>"; - string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* (.*?)(\\[^v '?\\]+)*\\v(\\[^v \\]+)* #Link:ReferencedObject:{0} .*?\[END>", rousg.ROUsageID); - MatchCollection msg = Regex.Matches(MyGrid.Data, findLinkXml); - int nmsg = msg.Count; - for (int i = nmsg - 1; i >= 0; i--) - { - Match mmg = msg[i]; - int offset = 0; // crashed in substring line below if using mmg.Index; Set to 0 and it worked - KBR. - Match mg = Regex.Match(mmg.Value, lookForXml);// Regex.Match(MyGrid.Data, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = mg.Groups[3]; - if (g.ToString() != newvalue) - { - retval = g.Value; - MyGrid.Data = MyGrid.Data.Substring(0, offset + mmg.Index + g.Index) + newvalue + MyGrid.Data.Substring(offset + mmg.Index + g.Index + g.Length); - } - } - } - } - } - return retval; - } - public string FixContentText(RoUsageInfo rousg, string value, int rotype, ROFstInfo origROFstInfo) // string newvalue) - { - return FixContentText(rousg, value, rotype, origROFstInfo, null); - } - public string FixContentText(RoUsageInfo rousg, string value, int rotype, ROFstInfo origROFstInfo,string fileNameOnly) // string newvalue) - { - string retval = null; - string newvalue = value; - string findLink = @""; - MatchCollection ms = Regex.Matches(Text, findLink); - //string lookFor = string.Format(@"", rousg.ROUsageID); - string lookFor = string.Format(@"^$", rousg.ROUsageID); - foreach (Match mm in ms) - { - Match m = Regex.Match(mm.Value, lookFor, RegexOptions.Singleline); - if (m != null && m.Groups.Count > 1) - { - int myIndex = m.Groups[4].Index + mm.Index; - int myLength = m.Groups[4].Length; - if(m.Groups[3] != " ") - { - myIndex = m.Groups[3].Index + mm.Index; - myLength += m.Groups[3].Length; - } - string gg = Text.Substring(myIndex,myLength); - if ((gg.Replace(@"\'b0", @"\'B0") != newvalue.Replace(@"\'b0", @"\'B0")) && ((fileNameOnly == null) || (gg != fileNameOnly))) - { - retval = gg; - Text = Text.Substring(0, myIndex) + newvalue + Text.Substring(myIndex + myLength); - break; // Text has been processed - } - } - } - // see if there is a grid to update too. - if (rousg.MyContent.MyGrid != null) - { - if (rotype == (int)E_ROValueType.Table) // if change in rotable data... - { - if (origROFstInfo != null) - { - List retlist = origROFstInfo.OnROTableUpdate(this, new ROFstInfoROTableUpdateEventArgs(newvalue, MyGrid.Data)); - if (MyGrid.Data != retlist[1]) - { - MyGrid.Data = retlist[1]; - retval = Text; - if (Text != retlist[0]) - Text = retlist[0]; - } - } - } - else - { - // if it's an ro within a table, need to process into an flex grid to save the grid data: - string findLinkXml = @"<START\].*?\[END>"; - //string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* (.*?)(\\[^v '?\\]+)*\\v(\\[^v \\]+)* #Link:ReferencedObject:{0} .*?\[END>", rousg.ROUsageID); - string lookFor = string.Format(@"^<START\](\\[^v \\]+)*\\v0(\\[^v '?{}\\]+)*( |\\u[0-9]{1,4}?|\\'[0-9a-fA-F]{2})(.*?)(\\[^v'?{} \\]+)*\\v(\\[^v \\]+)* #Link:ReferencedObject:{0} .*?\[END>$", rousg.ROUsageID); - MatchCollection msg = Regex.Matches(MyGrid.Data, findLinkXml); - foreach (Match mmg in msg) - { - Match mg = Regex.Match(mmg.Value, lookForXml);// Regex.Match(MyGrid.Data, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - int myIndex = m.Groups[4].Index + mmg.Index; - int myLength = m.Groups[4].Length; - if (m.Groups[3] != " ") - { - myIndex = m.Groups[3].Index + mmg.Index; - myLength += m.Groups[3].Length; - } - string gg = Text.Substring(myIndex, myLength); - if (gg != newvalue) - { - retval = gg; - MyGrid.Data = MyGrid.Data.Substring(0, myIndex) + newvalue + MyGrid.Data.Substring(myIndex + myLength); - } - } - } - } - } - return retval; - } - } - public partial class ContentInfo - { - public void FixTransitionText(TransitionInfo tran) - { - string transText = tran.ResolvePathTo(); - string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - //string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - Match m = Regex.Match(Text, lookFor); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - if (g.ToString() != transText) - _Text = Text.Substring(0, g.Index) + transText + Text.Substring(g.Index + g.Length); - } - // see if there is a grid to update too. - if (tran.MyContent.MyGrid != null) - { - string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* ([^#]*?)(\\[^v'? \\]+)*\\v(\\[^v \\]+)* #Link:Transition[^:]*?:{0} {1}( [0-9]*){{1,2}}\[END>", tran.TranType, tran.TransitionID); - Match mg = Regex.Match(MyGrid.Data, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = mg.Groups[3]; - //if (g.ToString() != transText) - // MyGrid.Data = MyGrid.Data.Substring(0, g.Index) + transText + MyGrid.Data.Substring(g.Index + g.Length); - } - } - } - public void FixTransitionText(TransitionInfo tran, TransitionLookup tranLookup) - { - string transText = tran.ResolvePathTo(tranLookup); - string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - //string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - Match m = Regex.Match(Text, lookFor); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - if (g.ToString() != transText) - _Text = Text.Substring(0, g.Index) + transText + Text.Substring(g.Index + g.Length); - } - // see if there is a grid to update too. - if (MyGrid != null) - { - string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* ([^#]*?)(\\[^v'? \\]+)*\\v(\\[^v \\]+)* #Link:Transition[^:]*?:{0} {1}( [0-9]*){{1,2}}\[END>", tran.TranType, tran.TransitionID); - Match mg = Regex.Match(MyGrid.Data, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = mg.Groups[3]; - if (g.ToString() != transText) - MyGrid.SetData(MyGrid.Data.Substring(0, g.Index) + transText + MyGrid.Data.Substring(g.Index + g.Length)); - } - } - } - public void FixContentText(RoUsageInfo rousg, string value, int rotype, ROFstInfo origROFstInfo) // string newvalue) - { - string newvalue = value; - string findLink = @""; - MatchCollection ms = Regex.Matches(Text, findLink); - string lookFor = string.Format(@"", rousg.ROUsageID); - foreach (Match mm in ms) - { - int offset = mm.Index; - Match m = Regex.Match(mm.Value, lookFor, RegexOptions.Singleline); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - if (g.ToString() != newvalue) - { - _Text = Text.Substring(0, offset + g.Index) + newvalue + Text.Substring(offset + g.Index + g.Length); - break; // Text has been processed - } - } - } - // see if there is a grid to update too. - if (MyGrid != null) - { - if (rotype == (int)E_ROValueType.Table) // if change in rotable data... - { - List retlist = origROFstInfo.OnROTableUpdate(this, new ROFstInfoROTableUpdateEventArgs(newvalue, MyGrid.Data)); - if (Text != retlist[0]) _Text = retlist[0]; - //if (MyGrid.Data != retlist[1]) MyGrid.Data = retlist[1]; - } - else - { - // if it's an ro within a table, need to process into an flex grid to save the grid data: - string findLinkXml = @"<START\].*?\[END>"; - string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* (.*?)(\\[^v '?\\]+)*\\v(\\[^v \\]+)* #Link:ReferencedObject:{0} .*?\[END>", rousg.ROUsageID); - MatchCollection msg = Regex.Matches(MyGrid.Data, findLinkXml); - foreach (Match mmg in msg) - { - //int offset = 0; // crashed in substring line below if using mmg.Index; Set to 0 and it worked - KBR. - Match mg = Regex.Match(mmg.Value, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = mg.Groups[3]; - if (g.ToString() != newvalue) - { - string prefix1 = MyGrid.Data.Substring(0,mmg.Index); - string prefix2 = mmg.Value.Substring(0,g.Index); - string suffix1 = MyGrid.Data.Substring(mmg.Index + mmg.Length); - string suffix2 = mmg.Value.Substring(g.Index + g.Length); - MyGrid.SetData(prefix1 + prefix2 + newvalue + suffix2 + suffix1); - break; - } - } - } - } - } - if (_Text == string.Empty) - _Text = "?"; - } - public void LoadNonCachedGrid() - { - _MyGrid = GridInfo.GetNonCached(ContentID); - //Console.WriteLine("LoadNonCachedGrid {0},{1},{2}",ContentID,_MyGrid==null,_MyContentInfoUnique); - } - public PartInfoList LocalContentParts - { - get { return _ContentParts; } - } - public void AddPart(SafeDataReader dr, ItemInfo itemInfo) - { - if (_ContentParts == null) - _ContentParts = new PartInfoList(dr, itemInfo); - else - _ContentParts.AddPartInfo(dr, itemInfo); - } - public override string ToString() - { - return string.Format("{0} {1}", Number, Text); - } - public void ShowChange() - { - OnChange(); - } - //public XmlNode ToXml(XmlNode xn) - //{ - // XmlNode nd = xn.OwnerDocument.CreateElement("Content"); - // xn.AppendChild(nd); - // AddAttribute(nd, "Number", _Number); - // AddAttribute(nd, "Text", _Text); - // AddAttribute(nd, "FormatID", _FormatID); - // AddAttribute(nd, "Config", _Config); - // return nd; - //} - //public void AddAttribute(XmlNode xn, string name, object o) - //{ - // if (o != null && o.ToString() != "") - // { - // XmlAttribute xa = xn.OwnerDocument.CreateAttribute(name); - // xa.Value = o.ToString(); - // xn.Attributes.Append(xa); - // } - //} - internal ContentInfo(SafeDataReader dr,bool ForItem) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentInfo.Constructor", GetHashCode()); - try - { - ReadDataItemList(dr); - _CacheList.Add(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentInfo.Constructor", ex); - throw new DbCslaException("ContentInfo.Constructor", ex); - } - } - private void ReadDataItemList(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentInfo.ReadDataItemList", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _Number = dr.GetString("Number"); - _Text = dr.GetString("Text"); - _Type = (int?)dr.GetValue("Type"); - _FormatID = (int?)dr.GetValue("FormatID"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("cDTS"); - _UserID = dr.GetString("cUserID"); - _ContentDetailCount = dr.GetInt32("DetailCount"); - _ContentEntryCount = dr.GetInt32("EntryCount"); - _ContentGridCount = dr.GetInt32("GridCount"); - _ContentImageCount = dr.GetInt32("ImageCount"); - _ContentItemCount = dr.GetInt32("ItemCount"); - _ContentPartCount = dr.GetInt32("cPartCount"); - _ContentRoUsageCount = dr.GetInt32("RoUsageCount"); - _ContentTransitionCount = dr.GetInt32("TransitionCount"); - _ContentZContentCount = dr.GetInt32("ZContentCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ContentInfo.ReadData", ex); - } - } - - } - public partial class ContentInfoList - { - public static ContentInfoList GetList(int? itemID) - { - try - { - ContentInfoList tmp = DataPortal.Fetch(new ContentListCriteria(itemID)); - ContentInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - [Serializable()] - private class ContentListCriteria - { - public ContentListCriteria(int? itemID) - { - _ItemID = itemID; - } - private int? _ItemID; - public int? ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - private void DataPortal_Fetch(ContentListCriteria criteria) - { - this.RaiseListChangedEvents = false; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_ListContentsByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ContentInfo contentInfo = new ContentInfo(dr); - this.Add(contentInfo); - } - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - Database.LogException("ContentInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ContentInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs.org b/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs.org deleted file mode 100644 index 59946a36..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ContentExt.cs.org +++ /dev/null @@ -1,343 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; -using Csla.Data; -using System.Xml; -using System.Data.SqlClient; -using System.Data; -using System.Text.RegularExpressions; - -namespace VEPROMS.CSLA.Library -{ - public partial class Content - { - public override string ToString() - { - return string.Format("{0} {1}", Number, Text); - } - public void FixTransitionText(TransitionInfo tran) - { - string transText = tran.ResolvePathTo(); - string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - //string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - Match m = Regex.Match(Text, lookFor); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - if (g.ToString() != transText) - Text = Text.Substring(0, g.Index) + transText + Text.Substring(g.Index + g.Length); - } - // see if there is a grid to update too. - if (tran.MyContent.MyGrid != null) - { - string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* ([^#]*?)(\\[^v'? \\]+)*\\v(\\[^v \\]+)* #Link:Transition[^:]*?:{0} {1}( [0-9]*){{1,2}}\[END>", tran.TranType, tran.TransitionID); - Match mg = Regex.Match(MyGrid.Data, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = mg.Groups[3]; - if (g.ToString() != transText) - MyGrid.Data = MyGrid.Data.Substring(0, g.Index) + transText + MyGrid.Data.Substring(g.Index + g.Length); - } - } - } - public void FixContentText(RoUsageInfo rousg, string value, int rotype, ROFstInfo origROFstInfo) // string newvalue) - { - string newvalue = value; - string findLink = @""; - MatchCollection ms = Regex.Matches(Text, findLink); - string lookFor = string.Format(@"", rousg.ROUsageID); - foreach (Match mm in ms) - { - int offset = mm.Index; - Match m = Regex.Match(mm.Value, lookFor, RegexOptions.Singleline); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - if (g.ToString() != newvalue) - { - Text = Text.Substring(0, offset + g.Index) + newvalue + Text.Substring(offset + g.Index + g.Length); - break; // Text has been processed - } - } - } - // see if there is a grid to update too. - if (rousg.MyContent.MyGrid != null) - { - if (rotype == (int)E_ROValueType.Table) // if change in rotable data... - { - List retlist = origROFstInfo.OnROTableUpdate(this, new ROFstInfoROTableUpdateEventArgs(newvalue, MyGrid.Data)); - if (Text != retlist[0]) Text = retlist[0]; - if (MyGrid.Data != retlist[1]) MyGrid.Data = retlist[1]; - } - else - { - // if it's an ro within a table, need to process into an flex grid to save the grid data: - string findLinkXml = @"<START\].*?\[END>"; - string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* (.*?)(\\[^v '?\\]+)*\\v(\\[^v \\]+)* #Link:ReferencedObject:{0} .*?\[END>", rousg.ROUsageID); - MatchCollection msg = Regex.Matches(MyGrid.Data, findLinkXml); - foreach (Match mmg in msg) - { - int offset = 0; // crashed in substring line below if using mmg.Index; Set to 0 and it worked - KBR. - Match mg = Regex.Match(MyGrid.Data, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = mg.Groups[3]; - if (g.ToString() != newvalue) - MyGrid.Data = MyGrid.Data.Substring(0, offset + g.Index) + newvalue + MyGrid.Data.Substring(offset + g.Index + g.Length); - } - } - } - } - } - } - public partial class ContentInfo - { - public void FixTransitionText(TransitionInfo tran) - { - string transText = tran.ResolvePathTo(); - string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - //string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - Match m = Regex.Match(Text, lookFor); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - if (g.ToString() != transText) - _Text = Text.Substring(0, g.Index) + transText + Text.Substring(g.Index + g.Length); - } - // see if there is a grid to update too. - if (tran.MyContent.MyGrid != null) - { - string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* ([^#]*?)(\\[^v'? \\]+)*\\v(\\[^v \\]+)* #Link:Transition[^:]*?:{0} {1}( [0-9]*){{1,2}}\[END>", tran.TranType, tran.TransitionID); - Match mg = Regex.Match(MyGrid.Data, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = mg.Groups[3]; - //if (g.ToString() != transText) - // MyGrid.Data = MyGrid.Data.Substring(0, g.Index) + transText + MyGrid.Data.Substring(g.Index + g.Length); - } - } - } - public void FixTransitionText(TransitionInfo tran, TransitionLookup tranLookup) - { - string transText = tran.ResolvePathTo(tranLookup); - string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - //string lookFor = string.Format(@"", tran.TranType, tran.TransitionID); - Match m = Regex.Match(Text, lookFor); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - if (g.ToString() != transText) - _Text = Text.Substring(0, g.Index) + transText + Text.Substring(g.Index + g.Length); - } - // see if there is a grid to update too. - if (tran.MyContent.MyGrid != null) - { - string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* ([^#]*?)(\\[^v'? \\]+)*\\v(\\[^v \\]+)* #Link:Transition[^:]*?:{0} {1}( [0-9]*){{1,2}}\[END>", tran.TranType, tran.TransitionID); - Match mg = Regex.Match(MyGrid.Data, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = mg.Groups[3]; - //if (g.ToString() != transText) - // MyGrid.Data = MyGrid.Data.Substring(0, g.Index) + transText + MyGrid.Data.Substring(g.Index + g.Length); - } - } - } - public void FixContentText(RoUsageInfo rousg, string value, int rotype, ROFstInfo origROFstInfo) // string newvalue) - { - string newvalue = value; - string findLink = @""; - MatchCollection ms = Regex.Matches(Text, findLink); - string lookFor = string.Format(@"", rousg.ROUsageID); - foreach (Match mm in ms) - { - int offset = mm.Index; - Match m = Regex.Match(mm.Value, lookFor, RegexOptions.Singleline); - if (m != null && m.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - if (g.ToString() != newvalue) - { - _Text = Text.Substring(0, offset + g.Index) + newvalue + Text.Substring(offset + g.Index + g.Length); - break; // Text has been processed - } - } - } - // see if there is a grid to update too. - if (rousg.MyContent.MyGrid != null) - { - if (rotype == (int)E_ROValueType.Table) // if change in rotable data... - { - List retlist = origROFstInfo.OnROTableUpdate(this, new ROFstInfoROTableUpdateEventArgs(newvalue, MyGrid.Data)); - if (Text != retlist[0]) _Text = retlist[0]; - //if (MyGrid.Data != retlist[1]) MyGrid.Data = retlist[1]; - } - else - { - // if it's an ro within a table, need to process into an flex grid to save the grid data: - string findLinkXml = @"<START\].*?\[END>"; - string lookForXml = string.Format(@"<START\](\\[^v \\]+)*\\v0(\\[^v \\]+)* (.*?)(\\[^v '?\\]+)*\\v(\\[^v \\]+)* #Link:ReferencedObject:{0} .*?\[END>", rousg.ROUsageID); - MatchCollection msg = Regex.Matches(MyGrid.Data, findLinkXml); - foreach (Match mmg in msg) - { - int offset = 0; // crashed in substring line below if using mmg.Index; Set to 0 and it worked - KBR. - Match mg = Regex.Match(MyGrid.Data, lookForXml); - if (mg != null && mg.Groups.Count > 1) - { - System.Text.RegularExpressions.Group g = mg.Groups[3]; - //if (g.ToString() != newvalue) - // MyGrid.Data = MyGrid.Data.Substring(0, offset + g.Index) + newvalue + MyGrid.Data.Substring(offset + g.Index + g.Length); - } - } - } - } - } - public PartInfoList LocalContentParts - { - get { return _ContentParts; } - } - public void AddPart(SafeDataReader dr, ItemInfo itemInfo) - { - if (_ContentParts == null) - _ContentParts = new PartInfoList(dr, itemInfo); - else - _ContentParts.AddPartInfo(dr, itemInfo); - } - public override string ToString() - { - return string.Format("{0} {1}", Number, Text); - } - public void ShowChange() - { - OnChange(); - } - //public XmlNode ToXml(XmlNode xn) - //{ - // XmlNode nd = xn.OwnerDocument.CreateElement("Content"); - // xn.AppendChild(nd); - // AddAttribute(nd, "Number", _Number); - // AddAttribute(nd, "Text", _Text); - // AddAttribute(nd, "FormatID", _FormatID); - // AddAttribute(nd, "Config", _Config); - // return nd; - //} - //public void AddAttribute(XmlNode xn, string name, object o) - //{ - // if (o != null && o.ToString() != "") - // { - // XmlAttribute xa = xn.OwnerDocument.CreateAttribute(name); - // xa.Value = o.ToString(); - // xn.Attributes.Append(xa); - // } - //} - internal ContentInfo(SafeDataReader dr,bool ForItem) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentInfo.Constructor", GetHashCode()); - try - { - ReadDataItemList(dr); - _CacheList.Add(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentInfo.Constructor", ex); - throw new DbCslaException("ContentInfo.Constructor", ex); - } - } - private void ReadDataItemList(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentInfo.ReadDataItemList", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _Number = dr.GetString("Number"); - _Text = dr.GetString("Text"); - _Type = (int?)dr.GetValue("Type"); - _FormatID = (int?)dr.GetValue("FormatID"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("cDTS"); - _UserID = dr.GetString("cUserID"); - _ContentDetailCount = dr.GetInt32("DetailCount"); - _ContentEntryCount = dr.GetInt32("EntryCount"); - _ContentGridCount = dr.GetInt32("GridCount"); - _ContentImageCount = dr.GetInt32("ImageCount"); - _ContentItemCount = dr.GetInt32("ItemCount"); - _ContentPartCount = dr.GetInt32("cPartCount"); - _ContentRoUsageCount = dr.GetInt32("RoUsageCount"); - _ContentTransitionCount = dr.GetInt32("TransitionCount"); - _ContentZContentCount = dr.GetInt32("ZContentCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ContentInfo.ReadData", ex); - } - } - - } - public partial class ContentInfoList - { - public static ContentInfoList GetList(int? itemID) - { - try - { - ContentInfoList tmp = DataPortal.Fetch(new ContentListCriteria(itemID)); - ContentInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - [Serializable()] - private class ContentListCriteria - { - public ContentListCriteria(int? itemID) - { - _ItemID = itemID; - } - private int? _ItemID; - public int? ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - private void DataPortal_Fetch(ContentListCriteria criteria) - { - this.RaiseListChangedEvents = false; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_ListContentsByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ContentInfo contentInfo = new ContentInfo(dr); - this.Add(contentInfo); - } - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - Database.LogException("ContentInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ContentInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/DisplayTextANSI.cs b/PROMS/VEPROMS.CSLA.Library/Extension/DisplayTextANSI.cs deleted file mode 100644 index 0b0adad8..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/DisplayTextANSI.cs +++ /dev/null @@ -1,824 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using System.Text.RegularExpressions; -using System.Drawing; - -namespace VEPROMS.CSLA.Library -{ - public class DisplayText - { - #region Properties - private ItemInfo _MyItemInfo; - // list of 'pieces of text' for this item. Pieces include symbols, ros, - // transitions & plain text. - private List _DisplayTextElementList; - public List DisplayTextElementList - { - get { return _DisplayTextElementList; } - set { _DisplayTextElementList = value; } - } - // dictionary for the font table for this item. Note that this may - // go away (it is not really used). - private Dictionary _dicRtfFontTable; - public Dictionary dicRtfFontTable - { - get { return _dicRtfFontTable; } - set { _dicRtfFontTable = value; } - } - private VE_Font _textFont; // Font from format for this item - public VE_Font TextFont - { - get { return _textFont; } - set { _textFont = value; } - } - public string StartText; - public string OriginalText; // compare for save to see if change. - private FormatInfo _MyFormat; - #endregion - #region Constructors - /// - /// DisplayText constructor: - /// Creates a DisplayText object that converts the database text into rtf text - /// Arguments are: - /// ItemInfo itemInfo - the item whose text will be resolved - /// E_EditPrintMode ep_mode - edit or print. - /// E_ViewMode vw_mode - view or edit. - /// bool noEdit - flags whether to edit or not (used to set data in - /// rtb as resolved replacewords for non-active rtb. - /// - public DisplayText(ItemInfo itemInfo, E_EditPrintMode epMode, E_ViewMode vwMode, bool noEdit) - { - _MyItemInfo = itemInfo; - OriginalText = itemInfo.MyContent.Text; - TextFont = GetItemFont(); - string text = _MyItemInfo.MyContent.Text; - - // if in print mode, view mode, or non-active richtextbox do replace words. Only if in - // actual edit mode are replace words left as is. - _MyFormat = itemInfo.ActiveFormat; - if (epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View || noEdit) text = DoReplaceWords(text); - - // adjust formatting of exponents - if (!_MyFormat.PlantFormat.FormatData.SectData.StepSectionData.FortranFormatNumbers && (epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View || noEdit)) text = DoFortranFormat(text); - - // as a precaution, convert any \~ to \u160?. This is for Hard spaces. see the commentary in the - // save portion of this code for an explanation. - text = text.Replace(@"\~", @"\u160?"); - text = text.Replace(@"\r\n", @"\par "); - - text = text.Replace(@"\line", @"\par"); - - // add colors around links: - text = Regex.Replace(text, @"( x103 where 3 is superscripted - // and 10.E5 -> 10x10-5 where 5 is superscripted - string pat = @"(\d*).E([+-]*\d+)"; - string retstr = text; - // for each one that needs translated: - foreach (Match m in Regex.Matches(text, pat)) - { - string fnum = m.Groups[1].Value; - string supnum = m.Groups[2].Value; - string newstr = string.Format(@"{0}x10\super {1}\nosupersub ", fnum, supnum); - retstr = retstr.Replace(m.Value, newstr); - } - return retstr; - } - #endregion - #region SaveData - public bool Save(RichTextBox rtb) - { - try - { - Item itm = _MyItemInfo.Get(); - // check for different text, i.e. text from this itm doesn't match - // original text, a change occurred in database, but not from this user. - if (OriginalText != itm.MyContent.Text) - { - Console.WriteLine("Save Failed because text changed outside of this edit session."); - return false; - } - - // remove rtf codes that aren't defining attributes, symbols, or links - string modtext = RtfToDbText(rtb.Rtf); - - if (modtext != OriginalText) - { - // if there are links, we'll need to do extra processing to see if - // there were additions, deletions or modifications. - bool haslinks = ((modtext.IndexOf(@" -1) || (OriginalText != null && OriginalText != "" && OriginalText.IndexOf(@" -1)); - if (haslinks) - { - // Get all links in original list - RtfToDisplayTextElements(OriginalText); - List origList = GetLinkList(DisplayTextElementList); - // now get new text into displaytext elements for comparison for links: - RtfToDisplayTextElements(rtb.Rtf); - - // Compare ro/transition lists and delete or add any to the item for any ros/transitions that have been - // added/deleted or modified. - ProcessRoTranChanges(itm, origList); - itm.MyContent.Text = DteToString(); - } - else - { - itm.MyContent.Text = modtext; - itm.Save(); - } - - if (haslinks) - { - // if new transitions/ros, we need to 'fix' the string in the embedded link to contain the - // transition or usage record. - Dictionary ctReplacements = BuildCtReplacements(itm.MyContent.ContentTransitions); - Dictionary roUsgReplacements = BuildRoUsgReplacements(itm.MyContent.ContentRoUsages); - itm.Save(); - if (ctReplacements.Count > 0) - { - itm.MyContent.Text = FixCtReplacements(itm.MyContent.Text, ctReplacements); - itm.Save(); - } - if (roUsgReplacements.Count > 0) - { - itm.MyContent.Text = FixRoUsgReplacements(itm.MyContent.Text, roUsgReplacements); - itm.Save(); - } - modtext = itm.MyContent.Text; - } - OriginalText = modtext; - } - else - return true; // no text changed, but did not fail so return true. - } - catch (Exception ex) - { - Console.WriteLine("Save Failed with error: {0}", ex.Message); - return false; - } - return true; - } - private string DteToString() - { - StringBuilder sret = new StringBuilder(); - foreach (displayTextElement vte in DisplayTextElementList) - { - if (vte.Type == E_TextElementType.Text || vte.Type == E_TextElementType.Symbol) - sret.Append(vte.Text); - else - { - displayLinkElement dle = vte as displayLinkElement; - if (vte != null) sret.Append(dle.TextAndLink); - } - } - string modtext = sret.ToString(); - return modtext; - } - private string FixRoUsgReplacements(string p, Dictionary roUsgReplacements) - { - foreach (int oldid in roUsgReplacements.Keys) - { - p = p.Replace(string.Format("", oldid), roUsgReplacements[oldid].ROUsageID.ToString()); - } - return p; - } - private Dictionary BuildRoUsgReplacements(ContentRoUsages contentRoUsages) - { - Dictionary retval = new Dictionary(); - foreach (ContentRoUsage rou in contentRoUsages) - { - if (rou.ROUsageID < 0) retval.Add(rou.ROUsageID, rou); - } - return retval; - } - private string FixCtReplacements(string p, Dictionary ctReplacements) - { - foreach (int oldid in ctReplacements.Keys) - { - p = p.Replace(string.Format("",oldid),ctReplacements[oldid].TransitionID.ToString()); - } - return p; - } - private Dictionary BuildCtReplacements(ContentTransitions contentTransitions) - { - Dictionary retval = new Dictionary(); - foreach (ContentTransition ct in contentTransitions) - { - if (ct.TransitionID < 0) retval.Add(ct.TransitionID, ct); - } - return retval; - } - private void ProcessRoTranChanges(Item itm, List origList) - { - // go through list. Note that only linked items are in the origList. - // 1) delete any that are in origList but not in the DisplayTextElementList - // (that represents the current text & links) - // 2) add any that are only in DisplayTextElementList - // 3) delete/add for modify? - - // delete first - if in original, but not in current list, delete the one - // in the original list. - foreach (displayLinkElement odte in origList) - { - bool found = false; - foreach (displayTextElement dte in DisplayTextElementList) - { - if (dte.Type == odte.Type) - { - displayLinkElement l_dte = (displayLinkElement)dte; - if (odte.Link == l_dte.Link) - { - found = true; - break; - } - } - } - // remove the link element from the item. - if (!found) - { - // Get record id for ro or trans and then find the associated ro or transition - // in the item's list. remove it. - int recid = -1; - if (odte.Type != E_TextElementType.ReferencedObject) - { - int sp = odte.Link.IndexOf(" ") + 1; // get past tran type - string srecid = odte.Link.Substring(sp, odte.Link.IndexOf(" ", sp) - sp); - recid = System.Convert.ToInt32(srecid); - foreach (ContentTransition ct in itm.MyContent.ContentTransitions) - { - if (ct.TransitionID == recid) - { - itm.MyContent.ContentTransitions.Remove(ct); - break; - } - } - } - else - { - int sp = odte.Link.IndexOf(" "); - //rousageid starts after "ReferencedObject:", i.e. index in link of 17 - string srecid = odte.Link.Substring(17, sp-17); - recid = System.Convert.ToInt32(srecid); - foreach (ContentRoUsage cr in itm.MyContent.ContentRoUsages) - { - if (cr.ROUsageID == recid) - { - itm.MyContent.ContentRoUsages.Remove(cr); - break; - } - } - } - } - } - // now do insert, i.e. in new list, but not in old. - foreach (displayTextElement dte in DisplayTextElementList) - { - bool found = false; - if (dte.Type == E_TextElementType.ReferencedObject || dte.Type == E_TextElementType.Transition || dte.Type == E_TextElementType.TransitionRange) - { - foreach (displayLinkElement odte in origList) - { - if (dte.Type == odte.Type) - { - // if the link is the same, it exists, so no action is required. - displayLinkElement l_dte = (displayLinkElement)dte; - if (odte.Link == l_dte.Link) - { - found = true; - break; - } - } - } - // Insert the link (ro or transition) to the item - if (!found) - { - if (dte.Type == E_TextElementType.ReferencedObject) // do ro - { - displayLinkElement l_dte = (displayLinkElement)dte; - Match m = Regex.Match(l_dte.Link, "([A-Za-z]*):(.*)"); - string linkstr = m.Groups[2].Value; - string[] roparts = linkstr.Split(" ".ToCharArray()); - ContentRoUsage rousg = null; - using (RODb rodb = RODb.Get(Convert.ToInt32(roparts[2]))) - { - rousg = itm.MyContent.ContentRoUsages.Add(roparts[1], rodb); - } - l_dte.Link = l_dte.Link.Replace("", string.Format("", rousg.ROUsageID)); - l_dte.TextAndLink = l_dte.TextAndLink.Replace("", string.Format("", rousg.ROUsageID)); - break; - } - else if (dte.Type == E_TextElementType.TransitionRange || dte.Type == E_TextElementType.Transition) - { - displayLinkElement l_dte = (displayLinkElement)dte; - Match m = Regex.Match(l_dte.Link, "([A-Za-z]*):(.*)"); - string linkstr = m.Groups[2].Value; - string[] tparts = linkstr.Split(" ".ToCharArray()); - int type = System.Convert.ToInt32(tparts[0]); - int tr1 = System.Convert.ToInt32(tparts[2]); // tparts[1] is token for tranid - Item itm1 = Item.Get(tr1); - Item itm2 = null; - if (dte.Type == E_TextElementType.TransitionRange) - { - itm2 = Item.Get(System.Convert.ToInt32(tparts[2])); - } - else - itm2 = itm1; - ContentTransition ct = itm.MyContent.ContentTransitions.Add(itm1, itm2); - ct.TranType = type; - l_dte.Link = l_dte.Link.Replace("", string.Format("", ct.TransitionID)); - l_dte.TextAndLink = l_dte.TextAndLink.Replace("", string.Format("", ct.TransitionID)); - } - } - } - } - } - private List GetLinkList(List locDisplayTextElementList) - { - List retList = new List(); - foreach (displayTextElement vte in locDisplayTextElementList) - { - if (vte.Type == E_TextElementType.ReferencedObject || vte.Type == E_TextElementType.TransitionRange || vte.Type == E_TextElementType.Transition) - { - displayLinkElement tmp = (displayLinkElement)vte; - displayLinkElement copy_vte = new displayLinkElement(); - copy_vte.Type = tmp.Type; - copy_vte.Link = tmp.Link; - copy_vte.Text = tmp.Text; - retList.Add(copy_vte); - } - } - return retList; - } - private void RtfToDisplayTextElements(string text) - { - // get original text into displaytext elements for comparison for links: - if (DisplayTextElementList == null) - DisplayTextElementList = new List(); - else - DisplayTextElementList.Clear(); - - if (text == null || text == "") return; - - string noExtraRtfStr = RtfToDbText(text); - - int startIndex = 0; - int index = -1; - while ((index = FindTokenChar(noExtraRtfStr, startIndex)) > -1) - { - // Do any 'plain' text that preceeds the token. - if (index > startIndex) DoTextElement(noExtraRtfStr, startIndex, index); - - if (noExtraRtfStr[index + 1] == 'v') - index = DoLink(noExtraRtfStr, index); - else - index = DoSymbol(noExtraRtfStr, startIndex, index); - startIndex = index; // +1; - if (startIndex >= noExtraRtfStr.Length) break; - } - // Add any remaining text. - if (startIndex < noExtraRtfStr.Length) DoTextElement(noExtraRtfStr, startIndex, index); - } - private string RtfToDbText(string text) - { - // For hardspaces, the windows richtextbox does some 'quirky' things: - // A unicode representation of \u160? is sent INTO the rtb. Coming out, - // that \u160? was translated to a \~ (by the underlying windows rtb). - // Note that if the \~ is sent to the rtb, it is treated as a regular space, - // i.e. no longer a hardspace, and actually is converted to a regular space. - // SO, on the way out, convert any \~ to \u160? - string noExtraRtfStr = text.Replace(@"\~", @"\u160?"); - - // Check for two links in a row & if found, add separating rtf comment - // commands (these get removed in the richtextbox: - noExtraRtfStr = noExtraRtfStr.Replace(@"[END>\v0 \v -1) noExtraRtfStr = noExtraRtfStr.Replace(@"\'05", "\x05"); - - return noExtraRtfStr; - } - private string RemoveRtfStyles(string rtf) - { - string retval = rtf; - // remove rtf commands for any styles that were added. Note that if - // the entire item has a style, and also contains 'pieces' of text with - // the same style, the underlying rtf box removes the embedded rtf commands, - // for example, if the entire step is bolded, and 'THEN' has bold on/off - // surrounding it, the rtf box removes the bold around the 'THEN' - // These remove the command with a following space or the command alone, - // either case may exist, because if there are rtf commands following the - // style command, there will be no space character following the style command. - if (((TextFont.Style & E_Style.Bold) > 0) || ((TextFont.Style & E_Style.MmBold) > 0)) - { - retval = Regex.Replace(retval, @"\\b0 ?", ""); - retval = Regex.Replace(retval, @"\\b ?",""); - } - if ((TextFont.Style & E_Style.Underline) > 0) - { - retval = Regex.Replace(retval, @"\\ulnone ?", ""); - retval = Regex.Replace(retval, @"\\ul ?", ""); - } - if ((TextFont.Style & E_Style.Italics) > 0) - { - retval = Regex.Replace(retval, @"\\i0 ?", ""); - retval = Regex.Replace(retval, @"\\i ?", ""); - } - return retval; - } - public string ReplaceRTFClause(Match m) - { - switch (m.Value[1]) - { - case 'u': - if (Regex.IsMatch(m.Value, @"\\u[0-9]+")) - return m.Value; // Special Charcaters - if (Regex.IsMatch(m.Value, @"\\ulnone")) - return m.Value; - if (Regex.IsMatch(m.Value, @"\\ul.*")) - return m.Value; // Underline - break; - case '\'': // Special Character - return m.Value; - case 'b': // Bold - return m.Value; - case 's': // sub or super.... - if (m.Value == @"\sub") return m.Value; - if (m.Value == @"\super") return m.Value; - break; - case 'n': // nosubsuper... - if (m.Value == @"\nosupersub") return m.Value; - break; - case 'i': // Italics - return m.Value; - case '{': // look for escape for curly braces: - return m.Value; - case '}': - return m.Value; - case 'v': // save link hidden info - if (m.Value == @"\v") return m.Value; // comment part of link - // end comment may end in space or may end in '\' if another rtf command, - // or may end at end of string. First check for space, keep it in string - // if it is there. - if (Regex.IsMatch(m.Value, @"\\v0 ")) - return m.Value; - if (Regex.IsMatch(m.Value, @"\\v0")) - return m.Value; - break; - case 'l': - if (m.Value == @"\line") return m.Value; - break; - case 'p': - if (m.Value == @"\par") return @"\par"; - //if (m.Value == @"\protect") - // return m.Value; - //if (m.Value == @"\protect0") - // return m.Value; - if (m.Value.Length>=6 && m.Value.Substring(0,6) == "\\par\r\n") return m.Value.Replace("\r\n", " "); - break; - case 'f': // handle fonts separately because they may or may not have a space after them - if (m.Value[2]>='0' && m.Value[2]<='9')return m.Value; - break; - } - return "";//Strip All - } - private string StripRtfCommands(string rtf) - { - // replace \{ & \} with (![ & (!] respectively and then redo at end. The curly braces - // are rtf so were getting removed and/or not handled correctly. - string retval = rtf.Replace(@"\{", @"(!["); - retval = retval.Replace(@"\}", @"(!]"); - - // remove carriage return/newlines after \par commands (these are introduced by rtb - // for hard returns, goes into rtb as \par and comes out as \par\r\n): - retval = Regex.Replace(retval, @"\\par\r\n([^\\.*?])", "\\par $1"); - retval = Regex.Replace(retval, @"\\par\r\n([\\.*?])", "\\par$1"); - - retval = Regex.Replace(retval, @"[\r\n]", "", RegexOptions.Singleline); // Strip Carriage Returns and Newlines - retval = Regex.Replace(retval, @"^\{(.*)\}$", "$1", RegexOptions.Singleline); // Strip Opening and Closing Braces - retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - retval = Regex.Replace(retval, @"\\f[0-9] ", ""); // remove font command with ending space - retval = Regex.Replace(retval, @"\\f[0-9]", ""); // remove font command without ending space - retval = Regex.Replace(retval, @"\\[^ \\?]+", new MatchEvaluator(ReplaceRTFClause)); // take backslash xyz and evaluates them - // remove a space if there is one as the first character or the last character - if (retval[0]==' ')retval = retval.Remove(0, 1); - retval = retval.TrimEnd(' '); - // remove \r\n and \par at end of string. - if (retval.Substring(retval.Length - 2, 2) == "\r\n") retval = retval.Remove(retval.Length - 2, 2); - if (retval.Substring(retval.Length - 4, 4) == @"\par") retval = retval.Remove(retval.Length - 4, 4); - - if (retval.Length == 0) return ""; - if (retval.Substring(retval.Length - 2, 2) == @"\v") retval = retval.Remove(retval.Length - 2, 2); - retval = RemoveRtfStyles(retval); - retval = retval.Replace(@"(![", @"\{"); - retval = retval.Replace(@"(!]", @"\}"); - return retval; - } - #endregion - #region StyleData - private VE_Font GetItemFont() - { - VE_Font font = null; - FormatInfo format = _MyItemInfo.ActiveFormat; - int type = (int)_MyItemInfo.MyContent.Type; - switch (type/10000) - { - case 0: // procedure - font = format.PlantFormat.FormatData.Font; - break; - case 1: // section - font = format.PlantFormat.FormatData.SectData.SectionHeader.Font; - break; - case 2: // step types - int typindx = type - 20000; // what to do for other types rather than steps - font = format.PlantFormat.FormatData.StepDataList[typindx].Font; - break; - } - TextFont = font; - return font; - } - #endregion - #region DoListElements - private int FindTokenChar(string txt, int startIndex) - { - // 'tokens' are for symbols and links (ro & transitions). symbols are represented by \u - // and links are represented by \v \v0 - bool done = false; - while (!done) - { - int indx = txt.IndexOf('\\', startIndex); - if (indx < 0) return indx; - // see if symbol (but not underline) or another rtf command: has a 'u' - // followed by a non-underline or single quote, and if so, return it. - if (((txt[indx + 1] == 'u' && txt[indx + 2] != 'l')) || (txt[indx + 1] == '\'')) return indx; - // see if link - if (txt[indx + 1] == 'v') return indx; - // Otherwise, get next index, must have been a slash or other rtf command. - startIndex = indx + 1; - } - return -1; - } - private int DoTextElement(string text, int startIndex, int index) - { - displayTextElement vte = new displayTextElement(); - vte.Type = E_TextElementType.Text; - int len = (index == -1) ? text.Length - startIndex : index - startIndex; - vte.Text = text.Substring(startIndex, len); - DisplayTextElementList.Add(vte); - return index+1; - } - private int DoLink(string text, int startIndex) - { - int retval = -1; - int fnd = text.IndexOf("#Link:", startIndex); - if (text.Substring(fnd + 6, 3) == "Ref") - retval = DoRO(text, startIndex); - else - retval = DoTran(text, startIndex); - return retval; - } - private int DoRO(string text, int index) - { - displayLinkElement vte = new displayLinkElement(); - vte.Type = E_TextElementType.ReferencedObject; - return DoLinkElements(text, index, vte); - } - private string FixTransition(string link, string text) - { - if (link.IndexOf("") != -1) return text; - int transitionID = Convert.ToInt32(link.Split(" ".ToCharArray())[1]); - // Find the transition - if (_MyItemInfo.MyContent.ContentTransitionCount <= 0) return "*Resolved Transition Text*"; - foreach (TransitionInfo ti in _MyItemInfo.MyContent.ContentTransitions) - { - if (ti.TransitionID == transitionID) - { - string path = ti.ResolvePathTo(_MyFormat, _MyItemInfo, ItemInfo.Get(ti.ToID), ti.RangeID==0?null:ItemInfo.Get(ti.RangeID)); - return path; - } - } - return text; - } - private int DoTran(string text,int index) - { - displayLinkElement vte = new displayLinkElement(); - - // determine if Range by checking for "R" after Transition (otherwise ":") - int linkindx = text.IndexOf(@"#Link", index); - vte.Type = (text[linkindx+16]=='R')?E_TextElementType.TransitionRange:E_TextElementType.Transition; - return DoLinkElements(text, index, vte); - } - private int DoLinkElements(string text, int index, displayLinkElement vte) - { - // Find the 'end comment' for the - int endLinkIndxV = text.IndexOf(@"\v0 ", linkIndx); - if (endLinkIndxV == -1) endLinkIndxV = text.IndexOf(@"\v0", linkIndx); // at end of string - int endLinkIndxE = text.IndexOf(@"[END>", linkIndx); - int endLinkIndx = (endLinkIndxV < endLinkIndxE) ? endLinkIndxV : endLinkIndxE; - vte.Link = text.Substring(linkIndx + 6, endLinkIndx - linkIndx - 6); // 6 for #Link: - - string tmptxt = null; - if (vte.Type != E_TextElementType.ReferencedObject) - { - tmptxt = FixTransition(vte.Link, vte.Text); - vte.Text = tmptxt; - } - - // Now get the entire text & link. Account for various ending possibilities: - // ends with '\v0\'; ends with '\v0 '; ends with '\v0' (end of string); - // ends with '[END>' if two in a row - will have ", endLinkIndx + 3); // get past end of link - int endComment = text.IndexOf(@"\v0", endToken); - - int rettoken = 0; - int retlen = 4; - if (endComment + 3 == text.Length) retlen = 3; - else if (text[endComment + 3] == '\\') retlen = 3; - vte.TextAndLink = text.Substring(index, endComment - index + retlen); - rettoken = endComment + retlen; - if (vte.Type != E_TextElementType.ReferencedObject) vte.TextAndLink = vte.TextAndLink = vte.TextAndLink.Replace("(Resolved Transition Text)", tmptxt); - DisplayTextElementList.Add(vte); - return rettoken; - } - private int DoSymbol(string text, int startIndex, int index) - { - displayTextElement vte = new displayTextElement(); - vte.Type = E_TextElementType.Symbol; - // symbols are the unicode/rtf command. A symbol can be represented by \'xy or - // in the text from the database \uxyz?. If the \'xy is used the length of the - // symbol number will always be two, otherwise find the index of the '?' to - // find the end. - int endindx = -1; - if (text[index + 1] == '\'') endindx = index + 3; - else endindx = text.IndexOf("?", index); - vte.Text = text.Substring(index, endindx - index + 1); - DisplayTextElementList.Add(vte); - return endindx+1; - } - #endregion - #region ReplaceWords - private ReplaceStr _rs; - //private string ReplaceIt(Match m) - //{ - // string s = m.ToString(); - // string t = s.Replace(_rs.ReplaceWord, _rs.ReplaceWith); - // return m.ToString().Replace(_rs.ReplaceWord, _rs.ReplaceWith); - //} - private string DoReplaceWords(string Text) - { - ReplaceStrList rsl = _MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList; - foreach (ReplaceStr rs in rsl) - { - if (_MyItemInfo.MyContent.Type < 20000) return Text; // for now only replace in steps. - bool replaceit = false; - - // note that the order of this check is important. Check in this order... - // background here - if (_MyItemInfo.IsHigh && (rs.Flag & E_ReplaceFlags.High)>0) replaceit = true; - else if ((_MyItemInfo.IsTable || _MyItemInfo.IsFigure) && (rs.Flag & E_ReplaceFlags.Table) > 0) replaceit = true; - else if (_MyItemInfo.IsInRNO && (rs.Flag & E_ReplaceFlags.RNO) > 0) replaceit = true; - else if (_MyItemInfo.IsCaution && (rs.Flag & E_ReplaceFlags.Caution) > 0) replaceit = true; - else if (_MyItemInfo.IsNote && (rs.Flag & E_ReplaceFlags.Note) > 0) replaceit = true; - else if (_MyItemInfo.IsInFirstLevelSubStep && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - else if (_MyItemInfo.IsAccPages & (rs.Flag & E_ReplaceFlags.Attach) > 0) replaceit = true; - - if (replaceit) - { - // CASEINSENS: Do ReplaceWords for all words that match, regardless of case, and replace - // with the ReplaceWith string as is - if ((rs.Flag & E_ReplaceFlags.CaseInsens) > 0) - { - string res = ""; - string fortest = Text.ToUpper(); - string pat = @"(?<=\W|^)" + rs.ReplaceWord.ToUpper() + @"(?=\W|$)"; - int cpindx = 0; - foreach (Match m in Regex.Matches(fortest, pat)) - { - res += Text.Substring(cpindx, m.Index-cpindx); - cpindx += (m.Index - cpindx); - res += rs.ReplaceWith; - cpindx += rs.ReplaceWord.Length; - } - if (cpindx < Text.Length) res += Text.Substring(cpindx, Text.Length - cpindx); - Text = res; - } - // CASEINSENSALL: Do ReplaceWords for all words that match the ReplaceWord, regardless of case - else if ((rs.Flag & E_ReplaceFlags.CaseInsensAll) > 0) - { - // not in hlp - } - // CASEINSENSFIRST: Do ReplaceWords for all words that exactly match the ReplaceWord, - // except the case where the first character may be different - else if ((rs.Flag & E_ReplaceFlags.CaseInsensFirst) > 0) - { - // not in hlp - } - else - { - string pat = @"(?<=\W|^)" + rs.ReplaceWord + @"(?=\W|$)"; - Text = Regex.Replace(Text, pat, rs.ReplaceWith); - } - - } - } - return Text; - } - #endregion - } - #region displayTextElementClass - public enum E_TextElementType : uint - { - Text = 0, - Transition = 1, - TransitionRange = 2, - ReferencedObject = 3, - Symbol = 4 - }; - public class displayTextElement - { - private E_TextElementType _Type; - public E_TextElementType Type - { - get { return _Type; } - set { _Type = value; } - } - private string _Text; - public string Text - { - get { return _Text; } - set { _Text = value; } - } - } - public class displayLinkElement : displayTextElement - { - private string _Link; - public string Link - { - get { return _Link; } - set { _Link = value; } - } - private string _TextAndLink; - public string TextAndLink - { - get { return _TextAndLink; } - set { _TextAndLink = value; } - } - } - #endregion - -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/DocVersionExt.cs.bak b/PROMS/VEPROMS.CSLA.Library/Extension/DocVersionExt.cs.bak deleted file mode 100644 index 8ead7849..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/DocVersionExt.cs.bak +++ /dev/null @@ -1,512 +0,0 @@ -// ======================================================================== -// Copyright 2006 - 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.Collections.Generic; -//using VEPROMS.Properties; - -namespace VEPROMS.CSLA.Library -{ - public partial class DocVersion: IVEDrillDown - { - #region VersionType - public VersionTypeEnum eVersionType - { - get { return (VersionTypeEnum)_VersionType; } - set { _VersionType = (int)value; } - } - #endregion - #region DocVersion Config - [NonSerialized] - private DocVersionConfig _DocVersionConfig; - public DocVersionConfig DocVersionConfig - { - get - { - if (_DocVersionConfig == null) - { - _DocVersionConfig = new DocVersionConfig(this); - _DocVersionConfig.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_DocVersionConfig_PropertyChanged); - } - return _DocVersionConfig; - } - } - private void _DocVersionConfig_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) - { - Config = _DocVersionConfig.ToString(); - } - #endregion - #region UserSettings - /// - /// These settings are set on the user interface side. - /// This is used to control whether the Name and/or Title is displayed - /// next to the tree nodes in the user interface - /// - private bool _DisplayTreeNodeNames = true; - public bool DisplayTreeNodeNames - { - get { return _DisplayTreeNodeNames; } - set { _DisplayTreeNodeNames = value; } - } - private bool _DisplayTreeNodeTitles = false; - - public bool DisplayTreeNodeTitles - { - get { return _DisplayTreeNodeTitles; } - set { _DisplayTreeNodeTitles = value; } - } - #endregion - public override string ToString() - { - // assume that at least one of the two options was selected - string rtnstr = ""; - if (_DisplayTreeNodeNames) rtnstr = Name; - if (_DisplayTreeNodeTitles) - { - if (rtnstr.Length > 0) rtnstr += " - "; - rtnstr += Title; - } - return rtnstr; - //return string.Format("{0} - {1}", Name, Title); - } - #region IVEDrillDown - //public System.Collections.IList GetChildren() - //{ - // return null; - //} - //public bool HasChildren - //{ - // get { return _ItemID > 0; } - //} - //public IVEDrillDown ActiveParent - //{ - // get - // { - // return MyFolder; - // } - //} - //private Format _ActiveFormat = null; - //public Format ActiveFormat - //{ - // get - // { - // if (_ActiveFormat == null) - // _ActiveFormat = LocalFormat != null ? LocalFormat : ActiveParent.ActiveFormat; - // return _ActiveFormat; - // } - // set - // { - // _ActiveFormat = null; - // } - //} - //public Format LocalFormat - //{ - // get { return MyFormat; } - //} - public ConfigDynamicTypeDescriptor MyConfig - { - get { return DocVersionConfig; } - } - #endregion - public DocVersionInfo MyDocVersionInfo - { get { return DocVersionInfo.Get(VersionID); } } - } - public partial class DocVersionInfo : IVEDrillDownReadOnly - { - #region SearchPaths - public string _SearchDVPath; - public string SearchDVPath - { - get - { - if (_SearchDVPath == null) - _SearchDVPath = ActiveParent.SearchDVPath + "\u0007" + Name; - return _SearchDVPath; - } - } - public string SearchPath { get { return ""; } } - #endregion - - #region DocVersion Config - [NonSerialized] - private DocVersionConfig _DocVersionConfig; - public DocVersionConfig DocVersionConfig - { get { return (_DocVersionConfig != null ? _DocVersionConfig : _DocVersionConfig = new DocVersionConfig(this)); } } - private void DocVersionConfigRefresh() - { - _DocVersionConfig = null; - } - #endregion - #region MOVE TO DOCVERSION CONFIG - private string GetProfile(string grp, string nam) - { - return GetProfile(grp, nam, false); - } - - private string GetProfile(string grp, string nam, bool flag) - { - DocVersionConfig dvcfg = DocVersionConfig; - string buff = null; - if (grp != null && !grp.Equals(string.Empty)) - { - buff = dvcfg.GetValue(grp, nam); // get the value of 'nam' in 'grp' - if (buff == null || buff.Equals(string.Empty)) - { - if (!flag) - buff = string.Format("<{0}-{1}>", grp, nam); - else - buff = null; - } - } - return buff; - } - - - public string UnitSpecific(string str, int len) - { - - // This routine retrieves the procedure number format from the - // current directory and uses it to adjust the procedure number - // in the specified string - string retvalu = ""; - string asis = "#"; - if (str == null || str.Equals(string.Empty)) return retvalu; // return a null (empty) string - /* - * Bug fix: B2005-017 3/2/2005 - * Need to use the largest procedure number length that's in the - * SET.DFF file. "LargestNumber" is the largest length after the - * procedure number is replaced via the SET.INI file "replace" list. - * - if(len==0)len=LargestNumber; - */ - // TODO: Do we need this line?-->>> if(len==0)len=LargestRawSetNumber; - - //GetPrivateProfileString("unit", "procedure number", asis, mstr, MAXPATH, "proc.ini"); - string pnum = asis; - //rhm/jcb stuff 20120511 - //string mstr = GetProfile("Unit", "ProcedureNumber", true); - string mstr = DocVersionConfig.Unit_ProcedureNumber; - if (mstr != null && !mstr.Equals(string.Empty)) - pnum = mstr; - if (pnum.Equals(asis)) - retvalu = str; - else if (pnum[0] == '!') - { - // look for mstr in SET.INI - // GetPrivateProfileString("replace", mstr, mstr, tonum, 24, "set.ini"); - - // TODO: NOT SURE IF SET.INI AND PROC.INI HAVE UNIQUE GROUP NAMES!!!!!!! - //mstr = GetProfile("Replace", mstr); - mstr = GetProfile("Replace", mstr, true); // true allow it to return a null if not found - if (mstr == null) retvalu = str; // no replacement, use procedure number as is - } - else - { - retvalu = ""; - string[] pnumsplit = pnum.Split(new Char[] { '#' }); - int cnt = 0; - foreach (string s in pnumsplit) - { - if (!s.Equals(string.Empty)) - { - if ((cnt == 0) && (str.StartsWith(" "))) - { - string padding = new string(' ', s.Length); - retvalu += padding; - } - else - retvalu += s; - } - else - retvalu += str.Trim(); - cnt++; - } - // append trailing blanks or procedure number (str) - if (str.EndsWith(" ")) - { - // count number of trailing blanks and append them to retvalu - cnt = str.Length - 1; - while (cnt > 0 && str[cnt] == ' ') cnt--; - retvalu += new string(' ', str.Length - cnt - 1); - } - } - return retvalu; - } - - public string Evaluate(string str, int len) - { - string retval = null; - string swhir = "PSU"; /* order inwhich to check */ - string pn; - if (str.Length > 1 && str[1] == '-') - { - int swptr = swhir.IndexOf((str.ToUpper())[0]); - //char swchar = ''; - //if (swptr != -1) - // swchar = swhir[swptr]; - - string sav = str.Substring(len); - str = str.Substring(0, len); - string substr = str.Substring(2); - substr = substr.Replace(" ",""); - while (swptr >= 0 && swptr < swhir.Length && retval == null) //retval.Equals(string.Empty)) - { - switch (swhir[swptr]) - { - case 'U': - //retval = GetProfile("Unit", substr, true); - if (substr.ToLower() == "id") - retval = this.DocVersionConfig.Unit_ID; - if (substr.ToLower() == "name") - retval = this.DocVersionConfig.Unit_Name; - if (substr.ToLower() == "number") - retval = this.DocVersionConfig.Unit_Number; - if (substr.ToLower() == "text") - retval = this.DocVersionConfig.Unit_Text; - //retval = this.DocVersionConfig.Other_Unit_ID; - //retval = this.DocVersionConfig.Other_Unit_Name; - //retval = this.DocVersionConfig.Other_Unit_Number; - //retval = this.DocVersionConfig.Other_Unit_Text; - break; - case 'S': - //retval = GetProfile("Procedure_Set", substr, true); - if(substr.ToLower() == "id") - retval = this.DocVersionConfig.Unit_ProcedureSetID; - if (substr.ToLower() == "name") - retval = this.DocVersionConfig.Unit_ProcedureSetName; - break; - case 'P': - //TODO: THIS IS A GLOBAL IN THE 16 BIT CODE!!!! - string procnumber = ""; - pn = UnitSpecific(procnumber, 0); - retval = GetProfile(pn, substr, true); - break; - } - if (retval == null) // .Equals(string.Empty)) - swptr++; - } - str += sav; - } - else if (len == 1 && (str.ToUpper())[0] == 'U') - { - retval = this.DocVersionConfig.Unit_Number; - } - else if (len == 2 && str.StartsWith("ID")) - { - retval = this.DocVersionConfig.Unit_ID; - } - // if the return value is empty, then the resulting - // evaluation should repeat the token string including - // the braces. - the beginning brace is not passed in. - //if (retval.Equals(string.Empty)) - //{ - // retval = (char*)mallocq(len + 3); - // strncpy(retval, str - 1, len + 2); - //} - if (retval == null) - retval = string.Format("<{0}>", str.Substring(0, len)); - - return retval; - } - - - public string ProcessDocVersionSpecificInfo(string rawvalue) - { - string str = rawvalue; - string rtnstr = ""; - int l = rawvalue.Length; - while (l > 0) - { - int ptr = str.IndexOf('<'); //nextDelimiter("<", str, l); - int cptr = (ptr == -1) ? -1 : str.IndexOf('>'); //nextDelimiter(">", ptr, strlen(ptr)); - // jsj 2/5/10 added "|| (ptr > cptr)" to fix bug where rawvalue = "Insert token for ->Step<- to transition back to." - if (ptr == -1 || (ptr > -1 && ((cptr == -1) || (ptr > cptr)))) - { - //add(new seText(str, l)); - //str += l; - rtnstr += str; - l = 0; // jump out of while loop - } - else - { - int cnt = ptr; - if (cnt > 0) - { - //add(new seText(str, cnt)); - rtnstr += str.Substring(0, cnt); - l -= cnt; - str = str.Substring(ptr); - } - ptr = str.IndexOf('>')+1; //nextDelimiter(">", str, l) + 1; - cnt = ptr; //(int)(ptr - str); - //add(new seUser(str + 1, cnt - 2)); - rtnstr += Evaluate(str.Substring(1, cnt - 2),cnt-2); - l -= cnt; - str = str.Substring(ptr); //ptr; - } - } - return rtnstr; - } - - - #endregion - - ItemInfoList _Procedures = null; - public ItemInfoList Procedures - { get { return (_Procedures != null ? _Procedures : _Procedures = ItemInfoList.GetList(_ItemID, (int)E_FromType.Procedure)); } } - public void ResetProcedures() - { - _Procedures = null; - } - #region IVEReadOnlyItem - public System.Collections.IList GetChildren() - { - return Procedures; - } - //public bool ChildrenAreLoaded - //{ - // get { return _iil == null; } - //} - public bool HasChildren - { - get { return _ItemID > 0; } - } - public IVEDrillDownReadOnly ActiveParent - { - get - { - return MyFolder; - } - } - public FormatInfo ActiveFormat - { - get {return LocalFormat != null ? LocalFormat : ActiveParent.ActiveFormat;} - } - public FormatInfo LocalFormat - { - get { - //Console.WriteLine("DV Local {0} {1} {2}", (MyFormat == null) ? "MYformat is null" : MyFormat.Name,FormatID,(MyFormat == null)?0:MyFormat.FormatID); - return MyFormat; - } - } - public ConfigDynamicTypeDescriptor MyConfig - { - get { return Get().DocVersionConfig; } - } - //public bool HasStandardSteps() - //{ return false; } - #region UserSettings - /// - /// These settings are set on the user interface side. - /// This is used to control whether the Name and/or Title is displayed - /// next to the tree nodes in the user interface - /// - private bool _DisplayTreeNodeNames = true; - public bool DisplayTreeNodeNames - { - get { return _DisplayTreeNodeNames; } - set { _DisplayTreeNodeNames = value; } - } - private bool _DisplayTreeNodeTitles = false; - - public bool DisplayTreeNodeTitles - { - get { return _DisplayTreeNodeTitles; } - set { _DisplayTreeNodeTitles = value; } - } - #endregion - public override string ToString() - { - // assume that at least one of the two options was selected - string rtnstr = ""; - if (_DisplayTreeNodeNames) rtnstr = Name; - if (_DisplayTreeNodeTitles) - { - if (rtnstr.Length > 0) rtnstr += " - "; - rtnstr += Title; - } - return rtnstr; - //return string.Format("{0} - {1}", Name, Title); - } - //public string ToString(string str,System.IFormatProvider ifp) - //{ - // return ToString(); - //} - public ItemInfo LastChild() - { - return MyItem.LastSibling; - } - public ItemInfo FirstChild() - { - return MyItem; - } - #endregion - #region Extension - partial class DocVersionInfoExtension : extensionBase - { - public override void Refresh(DocVersionInfo tmp) - { - tmp.DocVersionConfigRefresh(); - } - - } - #endregion - public ROFstInfo GetROFst(int rodbid) - { - foreach (AssociationInfo dva in DocVersionAssociations) - { - if (dva.MyROFst.RODbID == rodbid) - return dva.MyROFst; - } - return null; - } - public int MultiUnitCount - { - get - { - return DocVersionConfig.Unit_Count; - } - } - private string[] _UnitNames; - public string[] UnitNames - { - get - { - if (_UnitNames == null) - { -// _UnitNames = DocVersionConfig.Unit_Name.Split(','); - _UnitNames = new string[DocVersionConfig.Unit_Count]; - int j = 0; - for (int k = 1; k <= DocVersionConfig.MaxSlaveIndex; k++) - { - DocVersionConfig.SelectedSlave = k; - try - { - _UnitNames[j] = DocVersionConfig.Unit_Name; - j++; - } - catch - { - } - } - } - return _UnitNames; - } - } - } - public enum VersionTypeEnum : int - { - WorkingDraft = 0, Temporary = 1, Revision = 128, Approved = 129 - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs.bak b/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs.bak deleted file mode 100644 index 40f03bb8..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/DocumentExt.cs.bak +++ /dev/null @@ -1,1387 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using Csla; -using Csla.Data; -using System.Data; -using System.Data.SqlClient; -//----------------- -using System.Drawing; -using System.Text.RegularExpressions; -using LBWordLibrary; -using System.Drawing.Imaging; -using Volian.Base.Library; -using System.Diagnostics; - - -namespace VEPROMS.CSLA.Library -{ - public enum VolianStatusType - { - Initialize, - Update, - Complete - } - public delegate void VolianStatusChange(VolianStatusType type, int count, string text); - public partial class Document - { - public string DocumentTitle - { - get - { - if (_LibTitle == "") return string.Format("Document {0}", _DocID); - return _LibTitle; - } - } - private static LBApplicationClass _MyApp = null; - public static LBApplicationClass MyApp - { - get - { - if (_MyApp == null) - _MyApp = new LBApplicationClass(); - return _MyApp; - } - } - public void UpdateDRoUsages(List roids) - { - _DocumentDROUsageCount = -1; - if (DocumentDROUsages.Count > 0) - { - List delList = new List(); - foreach (DocumentDROUsage myUsage in DocumentDROUsages) - { - string roidkey = string.Format("{0}:{1}", myUsage.RODbID, myUsage.ROID); - if (roids.Contains(roidkey)) - roids.Remove(roidkey);// If in both, nothing to do - else - delList.Add(myUsage); - } - foreach (DocumentDROUsage myUsage in delList) - DocumentDROUsages.Remove(myUsage); // If only in old, remove it - } - foreach (string roidkey in roids) - { - string [] parts = roidkey.Split(":".ToCharArray()); - DocumentDROUsages.Add(parts[1], RODb.GetJustRoDb(int.Parse(parts[0]))); - } - } - private int _Unique = 0; - private string Unique - { - get - { - string retval = ""; - if (_Unique != 0) retval = "_" + _Unique.ToString(); - _Unique++; - return retval; - } - } - public void StatusChanged(VolianStatusType type, int count, string text) - { - //if (Parent != null && Parent.Parent != null && Parent.Parent.Parent is DisplayTabControl) - //{ - // DisplayTabControl tc = Parent.Parent.Parent as DisplayTabControl; - // tc.ONStatusChanged(this, new DisplayTabControlStatusEventArgs(type, count, text)); - //} - } - public void RestoreWordDoc(ItemInfo myItemInfo) - { - DocumentAuditInfo savDocAuditInfo = null; - using (DocumentAuditInfoList dail = DocumentAuditInfoList.Get(DocID)) - { - if (dail.Count > 0) - { - DocumentAuditInfo dai = dail[0]; - foreach (DocumentAuditInfo tmpa in dail) - { - FileInfo tmpFile = new FileInfo(string.Format(@"{0}\tmp_{1}{2}{3}", VlnSettings.TemporaryFolder, DocID, Unique, tmpa.FileExtension)); - while (tmpFile.Exists) - { - tmpFile = new FileInfo(string.Format(@"{0}\tmp_{1}{2}{3}", VlnSettings.TemporaryFolder, DocID, Unique, tmpa.FileExtension)); - } - FileStream fs = tmpFile.Create(); - if (tmpa.DocContent != null) fs.Write(tmpa.DocContent, 0, tmpa.DocContent.Length); - fs.Close(); - LBDocumentClass myDoc = null; - try - { - myDoc = MyApp.Documents.Open(tmpFile.FullName, false); - savDocAuditInfo = tmpa; - myDoc.Close(); - break; - } - catch (Exception ex) - { - if (myDoc != null) myDoc.Close(); - continue; // get next document audit item. - } - } - } - if (savDocAuditInfo != null) - { - FileExtension = savDocAuditInfo.FileExtension; - DocContent = savDocAuditInfo.DocContent; - DocAscii = savDocAuditInfo.DocAscii; - Config = savDocAuditInfo.Config; - UserID = savDocAuditInfo.UserID; - DTS = savDocAuditInfo.DTS; - Save(); - List roids = new List(); - DocumentInfo docinfo = DocumentInfo.Get(DocID); - - string pdfTmp = MSWordToPDF.ToPDFReplaceROs(docinfo, roids, myItemInfo, StatusChanged); - FileInfo pdfFile = new FileInfo(pdfTmp); - FileStream fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - Byte[] buf = new byte[pdfFile.Length]; - fs.Read(buf, 0, buf.Length); - fs.Close(); - pdfFile.Delete(); - Pdf.DeleteAll(DocID); // clear the PDF table for DocID first - DocStyle myDocStyle = myItemInfo.ActiveSection.MyDocStyle; - SectionConfig sc = myItemInfo.ActiveSection.MyConfig as SectionConfig; - if (sc != null && sc.Section_WordMargin == "Y") - { - using (Pdf myPdf = Pdf.MakePdf(this, MSWordToPDF.DebugStatus, 0, 0, 0, 0, (double)myItemInfo.MSWordPageCount, buf)) { ;} - } - else - { - using (Pdf myPdf = Pdf.MakePdf(this, MSWordToPDF.DebugStatus, (int)myDocStyle.Layout.TopMargin, (int)myDocStyle.Layout.PageLength, - (int)myDocStyle.Layout.LeftMargin, (int)myDocStyle.Layout.PageWidth, (double)myItemInfo.MSWordPageCount, buf)) { ;} - } - UpdateDRoUsages(roids); - Save(); - } - } - } - /// - /// FixString processes the string returned and changes any symbols (0xF0??) to normal characters - /// - /// - /// - //private static string FixString(string str) - //{ - // StringBuilder results = new StringBuilder(); - // foreach (char c in str) - // { - // if ((c & 0xFF00) == 0xF000) - // results.Append((char)(c & 0xFF)); - // else - // results.Append((char)(c)); - // } - // return results.ToString(); - //} - } - public partial class DocumentInfo - { - public string DocumentTitle - { - get - { - if (_LibTitle == "") return string.Format("Document {0}", _DocID); - return _LibTitle; - } - } - public string LibraryDocumentUsage - { - get - { - StringBuilder sb = new StringBuilder(); - string sep = "\r\nUsed In:\r\n "; - if (DocumentEntries == null) - sb.Append("None"); - else - { - int limit = 20; - foreach (EntryInfo myEntry in DocumentEntries) - { - foreach (ItemInfo myItem in myEntry.MyContent.ContentItems) - { - --limit; - if (limit < 0) - { - sb.Append(sep + "..."); - return sb.ToString(); - } - ItemInfo proc = myItem.MyProcedure; - sb.Append(sep + proc.DisplayNumber + " - " + proc.DisplayText); - sep = "\r\n "; - } - } - } - return sb.ToString(); - } - } - public ItemInfoList LibraryDocumentUsageList - { - get - { - bool first = true; - ItemInfoList iil = null; - if (DocumentEntries == null) return null; - foreach (EntryInfo myEntry in DocumentEntries) - { - foreach (ItemInfo myitem in myEntry.MyContent.ContentItems) - { - if (first) - { - iil = new ItemInfoList(myitem); - first = false; - } - else - iil.AddItem(myitem); - } - } - return iil; - } - } - #region DocumentConfig - [NonSerialized] - private DocumentConfig _DocumentConfig; - public DocumentConfig DocumentConfig - { get { return (_DocumentConfig != null ? _DocumentConfig : _DocumentConfig = new DocumentConfig(this)); } } - public void RefreshConfig() - { - _DocumentConfig = null; - } - #endregion - public static DocumentInfo GetByLibDocName(string libdoc, int versionID) - { - try - { - DocumentInfo tmp = DataPortal.Fetch(new LibDocCriteria(libdoc, versionID)); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocumentInfo.GetByLibDocName", ex); - } - } - [Serializable()] - protected class LibDocCriteria - { - private string _LibDoc; - public string LibDoc - { get { return _LibDoc; } } - private int _VersionID; - public int VersionID - { get { return _VersionID; } } - public LibDocCriteria(string libdoc, int versionid) - { - _LibDoc = libdoc; - _VersionID = versionid; - } - } - private void DataPortal_Fetch(LibDocCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentInfo.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocumentByLibDoc"; - cm.Parameters.AddWithValue("@LibDoc", criteria.LibDoc); - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentInfo.DataPortal_Fetch", ex); - throw new DbCslaException("DocumentInfo.DataPortal_Fetch", ex); - } - } - - } - public partial class DocumentInfoList - { - public static DocumentInfoList GetLibraries(bool forceload) - { - try - { - if (!forceload && _DocumentInfoList != null) - return _DocumentInfoList; - DocumentInfoList tmp = DataPortal.Fetch(new LibraryCriteria(true)); - DocumentInfo.AddList(tmp); - tmp.AddEvents(); - _DocumentInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocumentInfoList.Get", ex); - } - } - [Serializable()] - protected class LibraryCriteria - { - private bool _IsLibrary; - - public bool IsLibrary - { - get { return _IsLibrary; } - set { _IsLibrary = value; } - } - public LibraryCriteria(bool islibrary) - { - _IsLibrary = islibrary; - } - } - private void DataPortal_Fetch(LibraryCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getLibraryDocuments"; - 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_Fetch", ex); - throw new DbCslaException("DocumentInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - } - public class DSOFile : IDisposable - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #region Fields - private bool _IsDisposed; - private DocumentInfo _MyDocument = null; - private FileInfo _MyFile = null; - private string _Extension = "DOC"; - #endregion - #region Properties - public DocumentInfo MyDocument - { - get { return _MyDocument; } - set - { - TryDelete(); - _MyDocument = value; - CreateFile(); - } - } - public FileInfo MyFile - { - get { return _MyFile; } - } - public string Extension - { - get { return _Extension; } - set { _Extension = value; } - } - #endregion - #region Private Methods - private void TryDelete() - { - if (_MyDocument == null) return; - if (_MyFile == null) return; - if (_MyFile.Exists) - { - try - { - _MyFile.Delete(); - } - catch (IOException ex) - { - // _MyLog.Error("TryDelete", ex); - } - finally - { - _MyFile = null; - _MyDocument = null; - } - } - } - private bool _Created = false; - private int _Unique = 0; - private string Unique - { - get - { - string retval = ""; - if (_Unique != 0) retval = "_" + _Unique.ToString(); - _Unique++; - return retval; - } - } - private void CreateFile() - { - while (!_Created) - CreateTemporaryFile(); - } - - private void CreateTemporaryFile() - { - try - { - if (_MyDocument != null) - { - _MyFile = new FileInfo(string.Format(@"{0}\tmp_{1}{2}{3}", VlnSettings.TemporaryFolder, MyDocument.DocID, Unique, MyDocument.FileExtension)); - while (_MyFile.Exists) - { - _MyFile = new FileInfo(string.Format(@"{0}\tmp_{1}{2}{3}", VlnSettings.TemporaryFolder, MyDocument.DocID, Unique, MyDocument.FileExtension)); - } - FileStream fs = _MyFile.Create(); - if (MyDocument.DocContent != null) fs.Write(MyDocument.DocContent, 0, MyDocument.DocContent.Length); - fs.Close(); - _MyFile.CreationTimeUtc = _MyDocument.DTS; - _MyFile.LastWriteTimeUtc = _MyDocument.DTS; - _Created = true; - } - } - catch (Exception ex) - { - _MyLog.Error("***** Could not create " + _MyFile.FullName, ex); - Console.WriteLine(ex.Message); - } - } - public string FullName - { - get { return _MyFile.FullName; } - set - { - if (FullName != value) - _MyFile = new FileInfo(value); - } - } - public void SaveFile(float length, string ascii, ItemInfo myItemInfo, bool cvtLibDoc, VolianStatusChange statusChange) - { - // TODO: Add Try & Catch logic - if (_MyDocument == null) return; - Document doc = _MyDocument.Get(); - FileStream fs = _MyFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - long savLen = _MyFile.Length; - Byte[] buf = new byte[_MyFile.Length]; - fs.Read(buf, 0, buf.Length); - fs.Close(); - - // Handle if this is a libdoc & the user wanted to convert to a non-library document. - if (cvtLibDoc) - { - // if just one usage (this one), then just convert this to a non-library document. If there is more - // than one usage, make a copy so that the rest of the usages still point to the library document. - if (doc.DocumentEntryCount == 1) - doc.LibTitle = null; - else - { - // make new document with 'no' libtitle. Then link this to the item/content via the entry. - // the data gets set below. - Document tdoc = Document.MakeDocument(null, null, null, null); - _MyDocument = DocumentInfo.Get(doc.DocID); - doc = tdoc; - using (Entry ent = myItemInfo.MyContent.MyEntry.Get()) - { - ent.MyDocument = tdoc; - ent.Save(); - } - } - } - doc.FileExtension = MyFile.Extension; - doc.DocContent = buf; - doc.DocAscii = ascii; - //doc.UpdateDocAscii(_MyFile.FullName); - DocumentConfig cfg = new DocumentConfig(doc); - cfg.Edit_Initialized = true; - doc.Config = cfg.ToString(); - doc.UserID = Volian.Base.Library.VlnSettings.UserID; - //doc.DTS = _MyFile.LastWriteTimeUtc; - doc.DTS = DateTime.Now.ToUniversalTime(); - doc = doc.Save(); - List roids = new List(); - string pdfTmp = MSWordToPDF.ToPDFReplaceROs(_MyDocument, roids, myItemInfo,statusChange); - FileInfo pdfFile = new FileInfo(pdfTmp); - fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - buf = new byte[pdfFile.Length]; - fs.Read(buf, 0, buf.Length); - fs.Close(); - pdfFile.Delete(); - Pdf.DeleteAll(doc.DocID); // clear the PDF table for DocID first - DocStyle myDocStyle = myItemInfo.ActiveSection.MyDocStyle; - SectionConfig sc = myItemInfo.ActiveSection.MyConfig as SectionConfig; - if (sc != null && sc.Section_WordMargin == "Y") - { - using (Pdf myPdf = Pdf.MakePdf(doc, MSWordToPDF.DebugStatus, 0, 0, 0, 0, (double)myItemInfo.MSWordPageCount, buf)) { ;} - } - else - { - using (Pdf myPdf = Pdf.MakePdf(doc, MSWordToPDF.DebugStatus, (int)myDocStyle.Layout.TopMargin, (int)myDocStyle.Layout.PageLength, - (int)myDocStyle.Layout.LeftMargin, (int)myDocStyle.Layout.PageWidth, (double)myItemInfo.MSWordPageCount, buf)) { ;} - } - doc.UpdateDRoUsages(roids); - doc.Save(); - if (savLen != _MyFile.Length) _MyLog.ErrorFormat("DSO FRAMER: File size changed during Save for Word Document, beginSize = {0}, endSize = {1}", savLen, _MyFile.Length); - } - #endregion - #region Constructors - public DSOFile(DocumentInfo myDocument) - { - MyDocument = myDocument; - } - #endregion - #region Destructor - ~DSOFile() - { - Dispose(false); - } - public void Dispose() - { - Dispose(false); - GC.SuppressFinalize(this); - } - - protected void Dispose(bool disposing) - { - if (!_IsDisposed) - { - _IsDisposed = true; - TryDelete(); - } - } - #endregion - } - public static class MSWordToPDF - { - private static bool _CloseWordWhenDone = true; - public static bool CloseWordWhenDone - { - get { return MSWordToPDF._CloseWordWhenDone; } - set { MSWordToPDF._CloseWordWhenDone = value; } - } - private static LBApplicationClass _MyApp = null; - public static LBApplicationClass MyApp - { - get - { - if (_MyApp == null) - _MyApp = new LBApplicationClass(); - return _MyApp; - } - } - private static int _DebugStatus = 0; - public static int DebugStatus - { - get { return MSWordToPDF._DebugStatus; } - set { MSWordToPDF._DebugStatus = value; } - } - private static System.Drawing.Color _OverrideColor = System.Drawing.Color.Transparent; - public static System.Drawing.Color OverrideColor - { - get { return MSWordToPDF._OverrideColor; } - set { MSWordToPDF._OverrideColor = value; } - } - private static System.Windows.Forms.Form _FormForPlotGraphics=null; - public static System.Windows.Forms.Form FormForPlotGraphics - { - get { return MSWordToPDF._FormForPlotGraphics; } - set { MSWordToPDF._FormForPlotGraphics = value; } - } - private static SectionInfo _MySection; - public static string GetDocPdf(SectionInfo sect, Color overrideColor) - { - _MySection = sect; - DocumentInfo mydoc = sect.MyContent.MyEntry.MyDocument; - UpdateDocPdf(mydoc, overrideColor,sect); - string fileName = GetFileName(sect); - FileInfo fi = new FileInfo(fileName); - FileStream fs = fi.Create(); - PdfInfo myPdf = PdfInfo.Get(sect); - if (myPdf != null && myPdf.DocPdf != null) fs.Write(myPdf.DocPdf, 0, myPdf.DocPdf.Length); - fs.Close(); - return fileName; - } - - public static bool UpdateDocPdf(DocumentInfo mydoc, Color overrideColor, ItemInfo sect) - { - MSWordToPDF.OverrideColor = overrideColor; - PdfInfo myPdf = PdfInfo.Get(sect); - return true; - } - public static bool SetDocPdf(DocumentInfo docInfo, ItemInfo sect) - { - string pdfTmp = null; - List roids = new List(); - try - { - pdfTmp = MSWordToPDF.ToPDFReplaceROs(docInfo,roids,sect,null); - } - catch (Exception ex) - { - return false; - } - if (pdfTmp == null) return false; - FileInfo pdfFile = new FileInfo(pdfTmp); - FileStream fs = pdfFile.Open(FileMode.Open, FileAccess.Read, FileShare.ReadWrite); - Byte[] buf = new byte[pdfFile.Length]; - fs.Read(buf, 0, buf.Length); - fs.Close(); - pdfFile.Delete(); - using (Document doc = docInfo.Get()) - { - DocStyle myDocStyle = sect.ActiveSection.MyDocStyle; - SectionConfig sc = sect.ActiveSection.MyConfig as SectionConfig; - int ss = sect.MyDocVersion.DocVersionConfig.SelectedSlave; - if (sc != null && sc.Section_WordMargin == "Y") - { - using (Pdf myPdf = Pdf.MakePdf(doc, ss*10 + MSWordToPDF.DebugStatus, 0, 0, 0, 0, (double)sect.MSWordPageCount, buf)) { ;} - } - else - { - using (Pdf myPdf1 = Pdf.MakePdf(doc, ss*10 + MSWordToPDF.DebugStatus, (int)myDocStyle.Layout.TopMargin, (int)myDocStyle.Layout.PageLength, - (int)myDocStyle.Layout.LeftMargin, (int)myDocStyle.Layout.PageWidth, (double)sect.MSWordPageCount, buf)) { ;} - } - doc.UpdateDRoUsages(roids); - doc.Save(); - } - docInfo.RefreshConfig(); - return true; - } - public static string ToPDFReplaceROs(DocumentInfo doc, List roids, ItemInfo sect, VolianStatusChange statusChange) - { - //ItemInfo sect = doc.DocumentEntries[0].MyContent.ContentItems[0]; - return ToPDFReplaceROs(sect, false, roids, statusChange); - } - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - public static string ToPDFReplaceROs(ItemInfo sect, bool openPdf, List roids, VolianStatusChange statusChange) //, System.Drawing.Color overrideColor, System.Windows.Forms.Form myForm) - { - string fileName = GetFileName(sect); - // TODO: do we want to cache the word pdfs - //if (System.IO.File.Exists(@"C:\Temp\" + fileName + ".pdf")) - // return @"C:\Temp\" + fileName + ".pdf"; - //int docStyleIndex = ((int)sect.MyContent.Type) % 10000; - //DocStyle myDocStyle = sect.ActiveFormat.PlantFormat.DocStyles.DocStyleList[docStyleIndex]; - DocStyle myDocStyle = sect.MyDocStyle; - //PageStyle myPageStyle = myDocStyle.pagestyle; - ProcedureInfo proc = sect.MyProcedure; - DocVersionInfo dvi = proc.ActiveParent as DocVersionInfo; - bool hasRos = false; - ROFstInfo rofst = null; - ROFSTLookup lookup = null; - string igPrefix = null; - string spPrefix = null; - - if (dvi.DocVersionAssociationCount > 0) - { - hasRos = true; - rofst = dvi.DocVersionAssociations[0].MyROFst; - lookup = rofst.GetROFSTLookup(dvi); - igPrefix = dvi.DocVersionConfig.RODefaults_graphicsprefix; - spPrefix = dvi.DocVersionConfig.RODefaults_setpointprefix; - } - // string AccPageID = string.Format("<{0}-{1}>", accPrefix, roch.appid); - using (DSOFile myFile = new DSOFile(sect.MyContent.MyEntry.MyDocument)) - { - // Increase the priority of the Word Process so that the pdf creation happens quickly - Process[] myProcessess = Process.GetProcessesByName("winword"); - foreach (Process myProcess in myProcessess) - { - try - { - if (myProcess.PriorityClass != ProcessPriorityClass.High && myProcess.MainWindowTitle == "") - myProcess.PriorityClass = ProcessPriorityClass.High; - } - catch (Exception ex) - { - while (ex != null) - { - Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); - ex = ex.InnerException; - } - } - } - LBDocumentClass myDoc = MyApp.Documents.Open(myFile.FullName, false); - try - { - SectionConfig sc = sect.ActiveSection.MyConfig as SectionConfig; - if (sc == null || sc.Section_WordMargin == "N") - { - AdjustMargins(myDocStyle, myDoc, true); - } - } - catch (Exception ex) - { - _MyLog.Error("Could not Adjust Margins", ex); - } - LBSelection selxy = hasRos ? FindXyPlot() : null; - string pngFile = VlnSettings.TemporaryFolder + @"\XYPlot1.png"; //@"C:\Temp\XYPlot1.png"; - if (File.Exists(pngFile)) File.Delete(pngFile); - int filecount = 1; - while (selxy != null) - { - string xyplot = selxy.Text; - xyplot = xyplot.Replace("`", "\xB0"); - // The 16bit code must have kept the carriage returns in the word doc, if there - // are carriage returns in the plot language. Count number of carriage return/newlines - // so that they can be added back. - int cnt = 0; - int indxCr = xyplot.IndexOf("\r"); - while (indxCr > 0) - { - cnt++; - indxCr = xyplot.IndexOf("\r", indxCr + 1); - } - // Setting the selected text to "" actually sets it to "\r", thus cnt-- (subtract one - // from cnt since there's already a return in the string. - cnt--; - float x = (float)selxy.get_Information(LBWdInformation.wdHorizontalPositionRelativeToPage); - float y = (float)selxy.get_Information(LBWdInformation.wdVerticalPositionRelativeToPage); - LBRange myRange = selxy.Paragraphs.First.Range; - float yTop = (float)myRange.get_Information(LBWdInformation.wdVerticalPositionRelativeToPage); - float yTop1 = (float)myRange.get_Information(LBWdInformation.wdVerticalPositionRelativeToTextBoundary); - - // some data had regular text embedded in the xyplot definition. If so, the plain text must - // be left in the file. Otherwise, we can replace with empty text. - string resXyPlot = xyplot; - string txt = FindEmbeddedText(selxy.Text, ref resXyPlot); - if (txt != null) - { - selxy.Text = txt; - xyplot = resXyPlot.Replace(">\r>", ">>\r"); - } - else - { - selxy.Text = ""; - if (cnt > 0) for (int icnt = 0; icnt < cnt; icnt++) selxy.Text = selxy.Text + "\r"; - } - - pngFile = VlnSettings.TemporaryFolder + @"\XYPlot" + filecount.ToString() + @".png"; //@"C:\Temp\XYPlot1.png"; - //FileInfo fi = new FileInfo(pngFile); - //_MyLog.WarnFormat("PNG Name = {0}, size = {1}", fi.Name, fi.Length); - filecount++; - RectangleF plotRect = CreatePlot(pngFile, xyplot, 600F, FormForPlotGraphics); - - float xAdjust = (float)-sect.MyDocStyle.Layout.LeftMargin; - float yAdjust = selxy.Font.Size; - LBShape shape = myDoc.Shapes.AddPicture(pngFile, x + xAdjust + plotRect.X, yAdjust + y - yTop + plotRect.Y, selxy.Range); - File.Delete(pngFile); - shape.LockAspectRatio = LBMsoTriState.msoTrue; - shape.Width = plotRect.Width; - selxy.WholeStory(); - selxy = FindXyPlot(); - } - LBSelection sel = MyApp.Selection; - sel.WholeStory(); - if (statusChange != null) statusChange(VolianStatusType.Initialize, sel.End, "Refreshing ROs"); - sel = hasRos ? FindRO() : null; - int roCount = 0; - // force Print of MS Word Attachment to Final without revisions and comments - myDoc.ActiveWindow.View.ShowRevisionsAndComments = false; - myDoc.ActiveWindow.View.RevisionsView = LBWdRevisionsView.wdRevisionsViewFinal; - while (sel != null) - { - if (statusChange != null) statusChange(VolianStatusType.Update, sel.Start, string.Format("{0} ROs Refreshed", ++roCount)); - string val = lookup.GetROValueByAccPagID(sel.Text, spPrefix, igPrefix); - int? type = lookup.GetROTypeByAccPagID(sel.Text, spPrefix, igPrefix); - // if type is null, then set type to zero so that InsertROValue will put in "RO Not Found" for the value - if (type == null) - type = 0; - // If multiple return values includes X-Y Plot, check to see if it is an X-Y Plot - if (val == null) - { - if(sel.Text.ToUpper() == "") val =lookup.MyDocVersionInfo.DocVersionConfig.Unit_Text; - else if (sel.Text.ToUpper() == "") val = lookup.MyDocVersionInfo.DocVersionConfig.Unit_Number; - else if (sel.Text.ToUpper() == "") val = lookup.MyDocVersionInfo.DocVersionConfig.Unit_Name; - else if (sel.Text.ToUpper() == "") val = lookup.MyDocVersionInfo.DocVersionConfig.Unit_ID; - else if (sel.Text.ToUpper() == "") val = lookup.MyDocVersionInfo.DocVersionConfig.Other_Unit_Text; - else if (sel.Text.ToUpper() == "") val = lookup.MyDocVersionInfo.DocVersionConfig.Other_Unit_Number; - else if (sel.Text.ToUpper() == "") val = lookup.MyDocVersionInfo.DocVersionConfig.Other_Unit_Name; - else if (sel.Text.ToUpper() == "") val = lookup.MyDocVersionInfo.DocVersionConfig.Other_Unit_ID; - //val = "",MyDocVersion.DocVersionConfig.Unit_ID); - //text = text.Replace(@"", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_ProcedureSetID); - //text = text.Replace("", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Number); - } - if ((type & 4) == 4 && val.StartsWith("< 0) && (idx < sel.Text.Length + 1)) - { - idx = sel.Text.IndexOf("\r", idx + 1); - y += (float)sel.ParagraphFormat.LineSpacing; // get_Information(LBWdLineSpacing.wdLineSpaceSingle); - } - //LBInlineShape shape = sel.InlineShapes.AddPicture(pngFile); - LBRange myRange = sel.Paragraphs.First.Range; - float yTop = (float)myRange.get_Information(LBWdInformation.wdVerticalPositionRelativeToPage); - float yTop1 = (float)myRange.get_Information(LBWdInformation.wdVerticalPositionRelativeToTextBoundary); - float xAdjust = (float)-sect.MyDocStyle.Layout.LeftMargin; - float yAdjust = sel.Font.Size; - // The following two lines made the xyplot location for WCN2 match the 16bit output. However, how the - // xTweak value is determined is phantom of Rich's mind. Word document location of the RO token - // will be modified in data before delivery so that this xTweak is not needed. - //float xTweak = -(30 + xAdjust) / 3; // Used to align plots for WCN2. - //LBShape shape = myDoc.Shapes.AddPicture(pngFile, x + xAdjust + plotRect.X + xTweak, yAdjust + y - yTop + plotRect.Y, sel.Range); - LBShape shape = myDoc.Shapes.AddPicture(pngFile, x + xAdjust + plotRect.X, yAdjust + y - yTop + plotRect.Y, sel.Range); - File.Delete(pngFile); - shape.LockAspectRatio = LBMsoTriState.msoTrue; - //shape.Width = .89F * shape.Width; - //shape.Width = float.Parse(tbAdjust.Text) * shape.Width; - shape.Width = plotRect.Width; - //shape.Height = .89F * shape.Height; - sel.WholeStory(); - // TODO: Do we want to color code ROs - //sel.Range.Font.Color = LBWdColor.wdColorRed; - //shape.Width = width; - //shape.Height = height; - //imageROTokenReplaced = true; - } - catch (Exception ex) - { - // something is wrong with the X/Y plot RO. - // print out the un-processed X/Y plot RO value - sel.Text = val; - //return null; - } - } - else - { - if (val != null) - val = val.Replace("`", "\xB0"); - //AddInfo("\tRO Found {0} = '{1}'", sel.Text, val); - // if val is null, then InsertROValue will put in "RO Not Found" for the value - InsertROValue(sel, val, sect.ActiveFormat.PlantFormat.FormatData.ROData.UpRoIfPrevUpper); - } - sel = FindRO(); - } - if (statusChange != null) statusChange(VolianStatusType.Update, 0, "Creating PDF"); - sel = MyApp.Selection; - sel.WholeStory(); - //sel.Range.Font.Color = (LBWdColor)WordColor(PrintOverride.OverrideTextColor(System.Drawing.Color.Black)); - sel.Range.Font.Color = (LBWdColor)WordColor(OverrideColor == System.Drawing.Color.Transparent ? System.Drawing.Color.Black : OverrideColor); - sect.MSWordPageCount = myDoc.Length; - fileName = CreatePDF(fileName, openPdf,MSWordToPDF.DebugStatus); - CloseDocument(); - if (CloseWordWhenDone) - { - CloseAppAfterWait(); - } - if (statusChange != null) statusChange(VolianStatusType.Complete, 0, ""); - return fileName; - } - } - private static void CloseDocument() - { - int attempts = 0; - while (++attempts < 11) - { - if (TryToClose(attempts)) return; - WaitMS(1000); - } - } - private static bool TryToClose(int attempts) - { - try - { - MyApp.ActiveDocument.Close(false); - return true; - } - catch (Exception ex) - { - _MyLog.WarnFormat("{0} - {1}, Attempt {2}", ex.GetType().Name, ex.Message, attempts); - if (attempts >= 10) - _MyLog.Error("Failed to close 10 times.", ex); - return false; - } - } - private static string FindEmbeddedText(string p, ref string resXyPlot) - { - StringBuilder sb = new StringBuilder(); // contains embedded text - StringBuilder xy = new StringBuilder(); // contains xyplot without embedded text. - string origXy = p; - bool findEmbeddedText = false; - // get past opening command: - int indxCmd = p.IndexOf("<"); - indxCmd = p.IndexOf("<", indxCmd + 1); - xy.Append(p.Substring(0, indxCmd)); - // While there are xyplot commands, check for beginning/ending. - // Any text not in a command, save. - while (indxCmd > 0) - { - // find end of command. Look for another beginning of command, newline, - // regular text, or end of graph and handle each of these cases. - int indxClose = GetNonStringCmdClose(p, indxCmd + 1); // p.IndexOf(">", indxCmd + 1); - int nxtIndxCmd = p.IndexOf("<", indxCmd + 1); - xy.Append(p.Substring(indxCmd, indxClose - indxCmd+1)); - xy.Append("\r"); // the xyplot code assumes a return exists. - // get substrings between end index & start of next and if any - // non white space text, add it to return string and flag that we have - // embedded text. If there's a newline and just other white space put a - // newline in return string. - if (nxtIndxCmd > 0) - { - string mydebug = p.Substring(indxClose + 1); - for (int i = indxClose + 1; i < nxtIndxCmd; i++) - { - if (!System.Char.IsWhiteSpace(p[i])) - { - sb.Append(p[i]); - findEmbeddedText = true; - } - if (p[i] == '\r' || p[i] == ' ') sb.Append(p[i]); - } - } - indxCmd = nxtIndxCmd; - } - xy.Append(">"); - if (findEmbeddedText) - { - resXyPlot = xy.ToString(); - return sb.ToString(); - } - resXyPlot = origXy; - return null; - } - - private static int GetNonStringCmdClose(string p, int indxCmd) - { - int indxClose = p.IndexOf(">", indxCmd); - if (indxClose >= 0) - { - // if there are any quotes between the open of command and close, - // need to see if the close command is quoted. - if (p.IndexOf('"', indxCmd, indxClose - indxCmd) > -1) - { - // see how many quotes between open/close command, if - // an odd number, the close command char '>' is in quotes. - int countQuotes = 0; - for (int i = indxCmd; i < indxClose; i++) if (p[i] == '"') countQuotes++; - if ((countQuotes % 2) != 0) - { - // find quote after close, and then get next close. - int closeQuote = p.IndexOf('"', indxClose); - if (closeQuote < 0) return -1; // this is error, so return end not found. - return p.IndexOf(">", closeQuote + 1); - } - } - } - return indxClose; - } - public static void AddPrecedingText(LBSelection sel, string val) - { - if (val.IndexOf("_") == -1) // Is some of the text underlined? - { - sel.Text = val; // nothing is underlined, use text as is - return; - } - // Back in the DOS days, an underbar was used to toggle underlining on/off - // Spit the val text on the underbar characters - string[] parts = val.Split("_".ToCharArray()); - foreach (string part in parts) - { - // If there is a carrage return, and underline is turned on, then turn off the underline - if (sel.Font.Underline != LBWdUnderline.wdUnderlineNone && part.Contains("\r")) - { - int idx = part.IndexOf("\r"); - string part1 = part.Substring(0, idx); - string part2 = part.Substring(idx); - sel.TypeText(part1); - sel.Font.Underline = LBWdUnderline.wdUnderlineNone; - sel.TypeText(part2); - } - else // put out each part of the split text and toggle the underline on/off - { - // Farley had a case where the underlining of text with spaces at end of line was - // not underlining the spaces. To fix this, test for spaces at the end of text - // and ireplace last space with a hard space. Note that the underlying issue - // existed in MS Word, so this is a work around from our code to make MS Word work. - // The problem was in Farley's FNP-1-ECP-3.1, Table 1 - 'ro': W.4T. - if (part.EndsWith(" ")) - { - sel.TypeText(part.Substring(0,part.Length-1)); - sel.InsertSymbol(160); - } - else - sel.TypeText(part); - - if (sel.Font.Underline == LBWdUnderline.wdUnderlineNone) - sel.Font.Underline = LBWdUnderline.wdUnderlineSingle; - else - sel.Font.Underline = LBWdUnderline.wdUnderlineNone; - } - } - // We are done processing the text in val, if underline is on, turn it off - if (sel.Font.Underline != LBWdUnderline.wdUnderlineNone) - sel.Font.Underline = LBWdUnderline.wdUnderlineNone; - } - - public static void AdjustMargins(DocStyle myDocStyle, LBDocumentClass myDoc, bool printingMode) - { - float newTop = (float)myDocStyle.Layout.TopMargin; - float newLeft = (float)myDocStyle.Layout.LeftMargin; - float newLength = (float)myDocStyle.Layout.PageLength; - float newWidth = (float)myDocStyle.Layout.PageWidth; - float oldTop = myDoc.PageSetup.TopMargin; - float oldLeft = myDoc.PageSetup.LeftMargin; - float oldBottom = myDoc.PageSetup.BottomMargin; - float oldRight = myDoc.PageSetup.RightMargin; - float oldHeight = myDoc.PageSetup.PageHeight; - float oldWidth = myDoc.PageSetup.PageWidth; - // in the following line, the 2 accounts for a difference between how word treats margin versus - // ours, we are not exactly sure why. - float newRight = Math.Max(0, oldWidth - (newWidth + 2)); - float newBottom = Math.Max(0, oldHeight - (newLength + newTop + 1)); - //Console.WriteLine("{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}", newTop, newLeft, newLength, newWidth, oldTop, oldLeft, oldBottom, oldRight,oldHeight,oldWidth); - if (printingMode) - { - if (myDoc.PageSetup.BottomMargin != 9999999) - { - // the + 1 in the next line allows for rounding. - if ((newWidth > (8.5f * 72)) && newWidth > newLength) - if(myDoc.PageSetup.Orientation != LBWdOrientation.wdOrientLandscape) - myDoc.PageSetup.Orientation = LBWdOrientation.wdOrientLandscape; - myDoc.PageSetup.BottomMargin = newBottom; - myDoc.PageSetup.RightMargin = newRight; - myDoc.PageSetup.LeftMargin = newLeft; - myDoc.PageSetup.TopMargin = newTop; - } - else - { - try - { - // the + 1 in the next line allows for rounding. - myDoc.PageSetup.BottomMargin = newBottom; - myDoc.PageSetup.RightMargin = newRight; - myDoc.PageSetup.LeftMargin = newLeft; - myDoc.PageSetup.TopMargin = newTop; - } - catch (Exception ex) - { - if (_MySection != null) - { - _MyLog.ErrorFormat("<<< ERROR >>> MSWord could not set margins\r\n==>'MSWord could not set margins',{0},'{1}','{2}'" - , _MySection.ItemID, _MySection.MyDocVersion.MyFolder.Name, _MySection.ShortPath); - } - else - _MyLog.Error("Could not set margins", ex); - } - } - } - else - { - myDoc.PageSetup.TopMargin = 0; - myDoc.PageSetup.LeftMargin = 0; - myDoc.PageSetup.RightMargin = (8.5F * 72) - newWidth + newLeft; - // For OHLP, docstyle (ohlpdoc.in) in 16-bit for "Cover Page", pagelen seems to be incorrect. It would - // put out text on a second page. The following code is to catch this condition and reset the bottom margin. - // 11 * 72 -> 11 inches converted to points. newLength is printable part so BottomMargin is unprintable part - if (newTop + 36 > ((11 * 72) - newLength)) // 36 is 1/2 inch - myDoc.PageSetup.BottomMargin = newTop + 36; // makes an 1/2 inch bottom margin - else - myDoc.PageSetup.BottomMargin = (11 * 72) - newLength; - } - } - public static void CloseApp() - { - //WaitMS(900);// This was added because MSWord will sometimes get the error below - // Microsoft Office Word has stopped working - // It appears that this is caused by quiting the MS Word application - // to soon after closing the document or doing an export. - MyApp.Quit(false); - _MyApp = null; - } - /// - /// This closes the MS Word Application, but, delays for about 1 second. - /// It appears that closing MSWord to quickly causes a: - /// "Microsoft Office Word has stopped working" error. - /// - public static void CloseAppAfterWait() - { - System.Windows.Forms.Application.DoEvents(); - new CloseWordApp(_MyApp, 1000); - _MyApp = null; - } - private class CloseWordApp:System.Windows.Forms.Timer - { - LBApplicationClass _MyApp; - public LBApplicationClass MyApp - { - get { return _MyApp; } - set { _MyApp = value; } - } - public CloseWordApp(LBApplicationClass myApp, int interval) - { - MyApp = myApp; - Interval = interval; - Tick += new EventHandler(CloseWordApp_Tick); - Enabled = true; - } - void CloseWordApp_Tick(object sender, EventArgs e) - { - Enabled = false; - MyApp.Quit(false); - Dispose(); - } - } - private static void WaitMS(int n) - { - DateTime dtw = DateTime.Now.AddMilliseconds(n); - while (DateTime.Now < dtw) - { - System.Windows.Forms.Application.DoEvents(); - } - } - private static int WordColor(System.Drawing.Color color) - { - System.Drawing.Color c1 = System.Drawing.Color.FromArgb(0, color.B, color.G, color.R); - return c1.ToArgb(); - } - private static string GetFileName(ItemInfo sect) - { - string fileName = VlnSettings.TemporaryFolder + @"\Doc " + sect.MyContent.MyEntry.DocID.ToString(); // +" " + (sect.DisplayNumber == "" ? sect.DisplayText : sect.DisplayNumber); - return fileName; - } - private static RectangleF CreatePlot(string pngFile, string xyPlot, float resolution, System.Windows.Forms.Form myForm) - { - RectangleF retval = new RectangleF(0, 0, 0, 0); - //Form frm = Application.OpenForms[0]; - System.Windows.Forms.Form frm = myForm; - Graphics grfx = frm.CreateGraphics(); - string emfFile = pngFile.Replace(".png", ".emf"); - Metafile mf = new Metafile(emfFile, grfx.GetHdc()); - grfx.Dispose(); - grfx = Graphics.FromImage(mf); - float dpi = grfx.DpiX; - //grfx.ScaleTransform(resolution / grfx.DpiX, (resolution +1F) / grfx.DpiY); - grfx.ScaleTransform(resolution / grfx.DpiX, resolution / grfx.DpiY); - grfx.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.NearestNeighbor; - grfx.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; - grfx.TextRenderingHint = System.Drawing.Text.TextRenderingHint.AntiAlias; - grfx.Clear(MSWordToPDF.DebugStatus==1 ? System.Drawing.Color.Transparent : System.Drawing.Color.White); - //grfx.Clear(System.Drawing.Color.SlateGray); - XYPlots.XYPlot.BlackColor = MSWordToPDF.OverrideColor == Color.Red ? Color.Red : Color.Black; - XYPlots.XYPlot myPlot = new XYPlots.XYPlot(xyPlot); - myPlot.SetMargins(0, 0, 0, 0); - VG.IVGOutput vgOut = new VG.VGOut_Graphics(grfx); - vgOut.DebugStatus = MSWordToPDF.DebugStatus; - myPlot.Process(vgOut); - grfx.Dispose(); - GraphicsUnit gu = new GraphicsUnit(); - retval = mf.GetBounds(ref gu); - retval.Width *= dpi / resolution; - retval.Height *= dpi / resolution; - retval.X *= dpi / resolution; - retval.Y *= dpi / resolution; - //retval.X = myPlot.Width-retval.Width; - //AddInfo("{0},{1},{2},{3},{4},{5}", myPlot.Width, myPlot.Height, retval.Width, retval.Height,retval.X,retval.Y); - //Console.Write("{0},{1},{2},{3}", myPlot.Width, myPlot.Height, retval.Width, retval.Height); - mf.Save(pngFile, ImageFormat.Png); - //Console.WriteLine("'pngfile','{0}'", pngFile); - mf.Dispose(); - FileInfo myFile = new System.IO.FileInfo(emfFile); - myFile.Delete(); - return retval; - } - private static void InsertROValue(LBSelection sel, string roValue, bool upRoIfPrevUpper) - { - if (roValue == null) - { - sel.Text = "RO Not Found"; - sel.Font.Color = LBWdColor.wdColorRed; - } - else - { - if (upRoIfPrevUpper && sel.LastWasUpper) roValue = roValue.ToUpper(); - // Convert fortran formatted numbers to scientific notation. - - //string tmp = DisplayRO.ConvertFortranFormatToScienctificNotation(roValue); - string tmp = ROFSTLookup.ConvertFortranFormatToScienctificNotation(roValue); - // Only in Word sections, convert the # to superscripts and ~ to subscrtipts - tmp = Regex.Replace(tmp, "[#](.*?)[#]", "\\up2 $1\\up0 ");// DOS Superscript - tmp = Regex.Replace(tmp, "[~](.*?)[~]", "\\dn2 $1\\up0 ");// DOS Subscript - tmp = tmp.Replace(@"\u160?", "\xA0"); - tmp = tmp.Replace(@"\U160?", "\xA0"); - tmp = tmp.Replace(@"[xB3]", "\xB3"); - tmp = tmp.Replace(@"\U8209?", "-"); // fixes negative value in scienctific notation - tmp = tmp.Replace(@"\u8209?", "-"); - // Look for superscript or subscript and insert the appropriate commands - Match roMatch = Regex.Match(tmp, @"(.*?)\\(up2|dn2) (.*?)\\(up0|dn0) "); - if (roMatch.Groups.Count == 5)// Superscript or subscript found - { - sel.Font.Color = LBWdColor.wdColorRed; - while (roMatch.Groups.Count == 5) - { - sel.TypeText(roMatch.Groups[1].Value); // output the text preceeding the super or sub command - sel.Font.Position = roMatch.Groups[2].Value == "up2" ? 2 : -2; // Shift the vertical position for super or sub - sel.TypeText(roMatch.Groups[3].Value); // output the superscript or subscript - sel.Font.Position = 0; // restore the vertical position - tmp = tmp.Substring(roMatch.Length); // remove the processed text - roMatch = Regex.Match(tmp, @"(.*?)\\(up2|dn2) (.*?)\\(up0|dn0) "); // check to see if the text contain another super or sub - } - if (tmp != "")// Add any remaining text - sel.TypeText(tmp); - sel.Font.Color = LBWdColor.wdColorAutomatic; - } - else // if no superscripts or subscripts just output the text - { - roValue = roValue.Replace(@"\u160?", "\xA0"); - roValue = roValue.Replace(@"\U160?", "\xA0"); - roValue = roValue.Replace(@"[xB3]", "\xB3"); - roValue = roValue.Replace(@"[XB3]", "\xB3"); - sel.Text = roValue; - // look for toggling of '_' to turn underlining on/off: - AddPrecedingText(sel, roValue); // parse underlining - sel.Font.Color = LBWdColor.wdColorRed; - } - } - } - private static LBSelection FindXyPlot() - { - LBSelection sel = MyApp.Selection; - LBFind find = sel.Find; - find.ClearFormatting(); - // Search string format - this is MSWord wildcard format - // If you do a search in MSWord, make sure wildcard box is checked and then press the - // Special button to see the definitions of the various wildcards - // [<] - Less-Than Character - // [!<> ]@ - 1 or more characters not including Less-Than, Greater-Than or Space - // - Dash - // [!<> ]@ - 1 or more characters not including Less-Than, Greater-Than or Space - // [>] - Greater-Than Character - find.Text = "[<][<]*[>][>]"; - //find.Wrap = LBWdFindWrap.wdFindStop; - find.Wrap = LBWdFindWrap.wdFindContinue; - find.MatchCase = false; - find.MatchWholeWord = false; - find.MatchWildcards = true; - find.MatchSoundsLike = false; - find.MatchAllWordForms = false; - if (find.Execute()) return sel; - return null; - } - private static LBSelection FindRO() - { - int firstStart = 0; - bool executeResult = false; - LBSelection sel = null; - while (!executeResult) - { - sel = MyApp.Selection; - LBFind find = sel.Find; - find.ClearFormatting(); - // Search string format - this is MSWord wildcard format - // If you do a search in MSWord, make sure wildcard box is checked and then press the - // Special button to see the definitions of the various wildcards - // [<] - Less-Than Character - // [!<> ]@ - 1 or more characters not including Less-Than, Greater-Than or Space - // - Dash - // [!<>]@ - 1 or more characters not including Less-Than, Greater-Than. - // a space be included as part of the accessory page id (Callaway, EOP Addendum 37) - // [>] - Greater-Than Character - find.Text = "[<][!<> ]@-[!<>]@[>]"; - find.Wrap = LBWdFindWrap.wdFindContinue; - find.MatchCase = false; - find.MatchWholeWord = false; - find.MatchWildcards = true; - find.MatchSoundsLike = false; - find.MatchAllWordForms = false; - executeResult = find.Execute(); - if (!executeResult) return null; - // MS Word found 'invalid' ro when text had "[335.0 - { - public string User_FullName - { - get { return User_LastName + ", " + User_FirstName; } - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs.bak b/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs.bak deleted file mode 100644 index ab43df9f..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemExt.cs.bak +++ /dev/null @@ -1,3721 +0,0 @@ -#define ItemWithContent - -using System; -using System.Collections.Generic; -using System.Text; -using Csla; -using Csla.Data; -using System.Data; -using System.Data.SqlClient; -using System.Xml; -using System.Drawing; -using System.Text.RegularExpressions; - -namespace VEPROMS.CSLA.Library -{ - - #region Item - public partial class Item : IVEDrillDown - { - // put in for debug - //public static int CacheCountPrimaryKey - //{ get { return _CacheByPrimaryKey.Count; } } - //public static int CacheCountList - //{ get { return _CacheList.Count; } } - - public string DisplayNumber - { - get { return ItemInfo.ConvertToDisplayText(MyContent.Number); } - } - public ItemInfo MyItemInfo /* Return Info version of the current Item */ - { get { return ItemInfo.Get(ItemID); } } - public static void ShowAllocated(string title) - { - Console.WriteLine("{0} - {1} Items in the dictionary", title, _CacheByPrimaryKey.Count); - foreach (List itmlst in _CacheByPrimaryKey.Values) - foreach(Item itm in itmlst) - Console.WriteLine("Item {0} UniqueID {1}", itm.ItemID, itm.MyItemUnique); - Console.WriteLine("- - - - - -"); - } - - public override string ToString() - { - return string.Format("{0} {1}", MyContent.Number, MyContent.Text).Trim(); - } - // TODO: Move to ItemInfo Extension - - #region IVEDrillDown - //public System.Collections.IList GetChildren() - //{ - // return this.MyContent.ContentParts; - //} - //public bool HasChildren - //{ - // get { return this.MyContent.ContentPartCount > 0; } - //} - //public Item MyProcedure - //{ - // get - // { - // // Walk up active parents until the parent is not an item - // Item tmp = this; - // while (tmp.ActiveParent.GetType() != typeof(DocVersion)) tmp = (Item)tmp.ActiveParent; - // return tmp; - // } - //} - //private IVEDrillDown _ActiveParent = null; - //public IVEDrillDown ActiveParent - //{ - // get - // { - // if (_ActiveParent == null) - // { - // if (MyPrevious != null) - // _ActiveParent = _MyPrevious.ActiveParent; - // else - // { - // if (ItemDocVersionCount > 0) - // _ActiveParent = this.ItemDocVersions[0].MyDocVersion; - // else - // { - // if (this.ItemParts == null || this.ItemPartCount == 0) - // _ActiveParent = this; - // else - // _ActiveParent = this.ItemParts[0].MyContent.ContentItems[0].MyItem; - // } - // } - // } - // return _ActiveParent == this ? null : _ActiveParent; - // } - //} - //private Format _ActiveFormat = null;// Added to cache ActiveFormat - //public Format ActiveFormat - //{ - // get - // { - // if (_ActiveFormat == null) - // _ActiveFormat = (LocalFormat != null ? LocalFormat : ActiveParent.ActiveFormat); - // return _ActiveFormat; - // } - // set - // { - // _ActiveFormat = null; // Reset - // } - //} - //public Format LocalFormat - //{ - // get { return MyContent.MyFormat; } - //} - public ConfigDynamicTypeDescriptor MyConfig - { - get { return null; } - } - #endregion - public void MoveItem(IVEDrillDownReadOnly pInfo, int index) - { - bool wasfirstchild = false; - ItemInfo parentInfo = pInfo as ItemInfo; - DocVersionInfo parentInfoDV = pInfo as DocVersionInfo; - IList children = null; - E_FromType partType = 0; // this is needed later to determine sub-group type. - if (parentInfo != null) - { - // this may have subgroups, need to use part type to get children list... - ItemInfo thisinfo = ItemInfo.Get(ItemID); - partType = thisinfo.FirstSibling.ItemParts[0].PartType; - children = (IList)parentInfo.Lookup((int)partType); - } - else - children = (IList)parentInfoDV.GetChildren(); - int numChild = children.Count; - - if (this.MyPrevious == null) wasfirstchild = true; - Item origNextItem = null; - - // First, remove from this item from its list. To do this, get the current item's next point and redirect it's myprevious - // to this item's previous... - if (NextItems != null && NextItems.Count > 0) - { - origNextItem = NextItems.Items[0]; - origNextItem.MyPrevious = this.MyPrevious; - this.Save(); - } - - // check to see if the item is being moved into the middle of some items. newPreviousItem is the item defined - // by index-1, i.e. inserting below newPreviousItem. - ItemInfo newPreviousInfo = (index == 0) ? null : children[index - 1]; - ItemInfo newNextInfo = (index == children.Count) ? null : children[index]; - - // Adjust the new next proc to be me. - if (newNextInfo != null) - { - using (Item newNextItem = newNextInfo.Get()) - { - newNextItem.MyPrevious = this; - newNextItem.Save().Dispose(); - } - } - - // adjust the previous node, i.e. may either be at same level or, if first in list, adjust the parent... - // if 'newPreviousItem' isn't null, then adding to the middle of the list. - if (newPreviousInfo != null) - { - using (Item newPreviousItem = newPreviousInfo.Get()) - { - MyPrevious = newPreviousItem; - Save(); - } - } - // newPreviousInfo == null if moving into first child, and wasfirstchild == true if moving out of first child. - // This will require adjusting the DocVersion to point to the correct first child if a procedure is moved. - if (newPreviousInfo == null || wasfirstchild) - { - if (parentInfo != null) // Moving Item within procedure, i.e. moving a section or step - { - using (Item parentItem = parentInfo.Get()) - { - // moving first child out... reset parent to point to the original next item - if (wasfirstchild) - { - parentItem.MyContent.ContentParts[(int)partType].MyItem = origNextItem; - newPreviousInfo.RefreshItemParts(); - } - else - parentItem.MyContent.ContentParts[(int)partType].MyItem = this; - parentItem.Save().Dispose(); - } - } - else if (parentInfoDV != null) // Moving Item (Procedure) within DocVersion - { - using (DocVersion parentItemDV = parentInfoDV.Get()) - { - ItemInfo firstinfo = parentInfoDV.FirstChild(); - parentItemDV.MyItem = wasfirstchild?parentInfoDV.Procedures[1].Get():this; - parentItemDV.Save().Dispose(); - if (!wasfirstchild && firstinfo != null) - { - using (Item firstchild = firstinfo.Get()) - { - firstchild.MyPrevious = this; - firstchild.Save().Dispose(); - } - } - } - } - if (!wasfirstchild) - { - this.MyPrevious = null; - this.Save(); - } - if (origNextItem != null) origNextItem.Dispose(); - if (parentInfo != null) - parentInfo.MyContent.RefreshContentParts(); - if (parentInfoDV != null) - parentInfoDV.ResetProcedures(); - } - - } - protected static int MakeNewItem(IVEDrillDownReadOnly parentInfoDD, ItemInfo previousInfo, string number, string title, int type, E_FromType partType) - { - int newitemid = 0; - if (parentInfoDD == null) - parentInfoDD = previousInfo.ActiveParent; - ItemInfo parentInfo = parentInfoDD as ItemInfo; - DocVersionInfo parentInfoDV = parentInfoDD as DocVersionInfo; - using (Content cont = Content.New(number, title, type, null, null)) - { - using (Item fromitem = previousInfo == null ? null : previousInfo.Get()) - { - ItemInfo nextInfo = null; // Check to see if the item is being inserted in the middle of some items. - if (previousInfo != null && previousInfo.NextItems != null && previousInfo.NextItems.Count > 0) - nextInfo = previousInfo.NextItems[0]; - using (Item itm = Item.MakeItem(fromitem, cont)) - { - newitemid = itm.ItemID; - if (nextInfo != null) - { - using (Item nextItem = nextInfo.Get()) - { - nextItem.MyPrevious = itm;// Aim the next item back at the new item. - nextItem.Save().Dispose(); - } - } - if (fromitem == null) - { - if (parentInfo != null) // Adding Item to Procedure, Section or Step - { - using (Item parentItem = parentInfo.Get()) - { - ItemInfo firstinfo = parentInfo.FirstChild(partType); - if (firstinfo != null) - { - using (Item firstchild = firstinfo.Get()) - { - parentItem.MyContent.ContentParts[(int)partType].MyItem = itm;// First update the parent to point to the new first child - parentItem.Save().Dispose(); - firstchild.MyPrevious = itm;// Aim the old first child to point to the new first child. - firstchild.Save().Dispose(); - } - } - else - { - parentItem.MyContent.ContentParts.Add((int)partType, itm);// update the parent to point to the new first child - parentItem.Save().Dispose(); - } - } - } - if (parentInfoDV != null) // Adding Item (Procedure) to DocVersion - { - using (DocVersion parentItemDV = parentInfoDV.Get()) - { - ItemInfo firstinfo = parentInfoDV.FirstChild(); - parentItemDV.MyItem = itm;// First update the parent to point to the new first child - parentItemDV.Save().Dispose(); - if (firstinfo != null) - { - using (Item firstchild = firstinfo.Get()) - { - firstchild.MyPrevious = itm;// Aim the old first child to point to the new first child. - firstchild.Save().Dispose(); - } - } - } - } - - } - } - } - } - if (parentInfo != null) - parentInfo.MyContent.RefreshContentParts(); - if (parentInfoDV != null) - parentInfoDV.ResetProcedures(); - return newitemid; - } - } - #endregion - #region ItemInfo - public partial class ItemInfo:IVEDrillDownReadOnly - { - // put in for debugging - //public static int CacheCountPrimaryKey - //{ get { return _CacheByPrimaryKey.Count; } } - //public static int CacheCountList - //{ get { return _CacheList.Count; } } - - //public override bool Equals(object obj) - //{ - // ItemInfo ii = obj as ItemInfo; - // if (ii != null) - // return ii._ItemID == _ItemID; - // return false; - //} - private int _PrintBias = 0; - public int PrintBias - { - get { return _PrintBias; } - set { _PrintBias = value; } - } - private int _PrintLevel = 0; - public int PrintLevel - { - get - { - if (_PrintLevel != 0) return _PrintLevel; - int _PrintBias = 0; - _PrintLevel = GetStepLevel(ref _PrintBias); - - return _PrintLevel; - } - set { _PrintLevel = value; } - } - private float _MSWordPageCount = 0; - public float MSWordPageCount - { - get { return _MSWordPageCount; } - set { _MSWordPageCount = value; } - } - public event ItemInfoEvent OrdinalChanged; - private void OnOrdinalChange() - { - if (OrdinalChanged != null) OrdinalChanged(this); - } - public static void OnOrdinalChange(int itemID) - { - ConvertListToDictionary(); - string key = itemID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ItemInfo item in _CacheByPrimaryKey[key]) - item.OnOrdinalChange(); - } - public bool IsFirstSubStep - { - get - { - if (!IsStepPart) return false; - if (IsHigh) return false; - return (MyPrevious == null); - } - } - public bool IsAutoTOCSection - { - get - { - if (!IsSection) return false; - if (MyDocStyle.StructureStyle.Style == null) return false; - return ((ActiveFormat.PlantFormat.FormatData.PurchaseOptions & E_PurchaseOptions.AutoTableOfContents) == E_PurchaseOptions.AutoTableOfContents && - (MyDocStyle.StructureStyle.Style & E_DocStructStyle.TableOfContents) == E_DocStructStyle.TableOfContents); - } - } - #region StepLevel - private int _StepLevel = -2;// Not yet calculated - public int StepLevel - { - get - { - if (_StepLevel == -2) - { - _StepLevel = CalcStepLevel(this); - //ItemInfo parent = ActiveParent as ItemInfo; - //Console.WriteLine("{0},{1},{2},{3},{4},{5},{6}",ItemID, DBSequence, _StepLevel, MyContent.Type % 10000, parent.MyContent.Type % 10000,HasCautionOrNote ? 1 : 0, parent.Cautions == null? 0 : 1); - } - return _StepLevel; - } - set { _StepLevel = value; } - } - public string ToolTip - { - get - { - if (IsStep) - return FormatStepData.StepEditData.TypeMenu.MenuItem; //FormatStepData.Type; - else if (IsSection) - return MyDocStyle.Name; - return "Procedure Title"; - } - } - public bool HasCautionOrNote - { - get { return Cautions != null || Notes != null; } - } - private static Regex regexDBSeqPass1 = new Regex("([^.]*)[.]S([^.]*)[.]S([0-9]*)[.](.*)"); - private static Regex regexDBSeqPass2 = new Regex("[.](.)([^.]*)[.]"); - public string DBSequence - { - get - { - Match m1 = regexDBSeqPass1.Match(ShortPath); - MatchCollection m2s = regexDBSeqPass2.Matches(m1.Groups[4].Value); - StringBuilder retval = new StringBuilder(string.Format("\"{0}\"\t\"{1}\"\t\"{2}\"", m1.Groups[1].Value, m1.Groups[2].Value, m1.Groups[3].Value)); - string prefix = "S"; - string suffix = ""; - foreach (Match m2 in m2s) - { - int i = ((int) '0') + int.Parse(m2.Groups[2].Value); - char c = (char)i; - suffix = c.ToString(); - switch (m2.Groups[1].Value) - { - case "S": - break; - case "R": - prefix += "$"; - suffix = ""; - break; - case "C": - prefix = "!"; - break; - case "N": - prefix = "*"; - break; - case "T": - prefix += "#"; - suffix = ""; - break; - default: - break; - } - retval.Append(prefix + suffix); - prefix = ""; - } - retval.Append(prefix + "'"); - //Volian.Base.Library.DebugText.WriteLine("'{0}','{1}','{2}'", retval, ShortPath, Path); - return retval.ToString(); - } - } - private static int CalcStepLevel(ItemInfo item) - { - if(item == null) return 0; - int id=0; - // Determines the substep level. - int level = CountLevels(item); - - // PaginateOnFirstSubstep allows orphans, first child can be separated from its parent. - int firstInc = item.ActiveFormat.MyStepSectionLayoutData.PaginateOnFirstSubstep ? 0 : 1; - ItemInfo parent = item.ActiveParent as ItemInfo; - - // TODO: Format flag 'TreatAsSequential': - // The following needs to account for use of format flag 'TreatAsSequential' when doing - // formats that have it. - if (item.IsExactType("And") || item.IsExactType("Or") || item.IsExactType("ImplicitOr")) - level++; - if (parent != null && (parent.IsExactType("And") || parent.IsExactType("Or"))) - level++; - - // First substep, this is where it uses the orphan logic from above. - if (!item.IsRNOPart && !item.IsHigh && item.MyPrevious == null) - level += firstInc; - else - firstInc = 0; - - // Try not to paginate on a step that has Cautions & Notes, keep the Caution/Note with - // the step. - if (item.IsStepPart) - { - if (item.Cautions != null || item.Notes != null) - level += 2; - } - // Paginate before first caution, not between cautions. - else if (item.IsCautionPart) - { - if (item.MyPrevious == null) level-=(1 + firstInc); - else level++; - } - // Paginate before first note, if the step does not have a caution. - // Otherwise, try to keep the notes together. - else if (item.IsNotePart) - { - if (parent.Cautions == null && item.MyPrevious == null) level-=(1 + firstInc); - else level++; - } - // Try not to paginate on a table. - else if (item.IsTablePart) - { - level += 2; - } - // For an RNO to the right, make it the same level as the AER item. - else if(item.IsRNOPart) - { - level = (item.ActiveParent as ItemInfo).StepLevel + item.RNOLevel - item.ColumnMode; - } - return level; - } - - /// - /// Count all levels, including substeps within RNOs. Ignore RNOs that are to the right of - /// the AER, but count those that are below higher level RNOs. - /// - /// - /// - private static int CountLevels(ItemInfo item) - { - int level = 0; - if (item.IsProcedure) return 0; - int ignoreRNOs = item.ActiveSection.ColumnMode; - while (item != null && !item.IsHigh) - { - if (ignoreRNOs > 0 && item.IsRNOPart) - ignoreRNOs--; - else - level++; - item = item.ActiveParent as ItemInfo; - } - return level; - } - #endregion - public bool HasHeader - { - get - { - if (MyHeader==null)return false; - if (MyHeader.CleanText==null) return false; - if (MyHeader.CleanText=="") return false; - return true; - } - } - protected void ExtensionRefreshFields(Item tmp) - { - _ActiveParent = null; - } - #region LoadAtOnce2 - public static ItemInfo GetItemAndChildren2(int? itemID) - { - try - { - ItemInfo tmp = DataPortal.Fetch(new ItemAndChildrenCriteria2(itemID)); - AddToCache(tmp); - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetItemAndChildren2", ex); - } - } - // Criteria to get Item and children - [Serializable()] - private class ItemAndChildrenCriteria2 - { - public ItemAndChildrenCriteria2(int? itemID) - { - _ItemID = itemID; - } - private int? _ItemID; - public int? ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - // Data Portal to Get Item and Children - private void DataPortal_Fetch(ItemAndChildrenCriteria2 criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - ApplicationContext.LocalContext["cn"] = cn; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getItem"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - } - } - SpinThroughChildren(); - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - catch (Exception ex) - { - Database.LogException("ItemInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ItemInfoList.DataPortal_Fetch", ex); - } - RemoveFromCache(this); - } - private void SpinThroughChildren() - { - if(MyContent.ContentPartCount > 0) - foreach(PartInfo partInfo in MyContent.ContentParts) - foreach (ItemInfo itemInfo in partInfo.MyItems) - itemInfo.SpinThroughChildren(); - } - #endregion - #region LoadAtOnce - // Method to Get Item and children - public static ItemInfo GetItemAndChildren(int? itemID,int? parentID) - { - try - { - ItemInfo tmp = DataPortal.Fetch(new ItemAndChildrenCriteria(itemID,parentID)); - AddToCache(tmp); - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - // Criteria to get Item and children - [Serializable()] - private class ItemAndChildrenCriteria - { - public ItemAndChildrenCriteria(int? itemID, int? parentID) - { - _ItemID = itemID; - _ParentID = parentID; - } - private int? _ItemID; - public int? ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private int? _ParentID; - public int? ParentID - { - get { return _ParentID; } - set { _ParentID = value; } - } - } - // Data Portal to Get Item and Children - private void DataPortal_Fetch(ItemAndChildrenCriteria criteria) - { - //ItemInfo tmp = null; - Dictionary lookup = new Dictionary(); ; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_ListItemAndChildren"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - cm.Parameters.AddWithValue("@ParentID", criteria.ParentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) - { - if (dr.GetInt32("Level")==0) - { - //tmp = itemInfo; - ReadData(dr); - AddContent(dr); - lookup[this.ItemID] = this; - } - else - { - 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; - case 2: - itemInfo = new StepInfo(dr); - break; - } - // Load Children - itemInfo.AddContent(dr); - ItemInfo parent = lookup[dr.GetInt32("ParentID")]; - itemInfo._ActiveParent = parent; - itemInfo._ActiveSection = (itemInfo.IsSection ? itemInfo : parent._ActiveSection); - parent.AddPart(dr, itemInfo); - lookup.Add(itemInfo.ItemID, itemInfo); - } - } - //Console.WriteLine("I'm here {0}",this.MyContent.ContentPartCount); - } - } - } - } - catch (Exception ex) - { - Database.LogException("ItemInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ItemInfoList.DataPortal_Fetch", ex); - } - } - private void AddPart(SafeDataReader dr, ItemInfo itemInfo) - { - // Either a new PartInfo or an existing PartInfo - if (dr.IsDBNull(dr.GetOrdinal("PreviousID"))) - { - //PartInfo prt = new PartInfo(dr, itemInfo); - _MyContent.AddPart(dr, itemInfo); - } - else - { - foreach (PartInfo pi in MyContent.ContentParts) - { - if (dr.GetInt32("FromType") == (int)pi.PartType) - { - if (pi._MyItems == null) - pi._MyItems = new ItemInfoList(itemInfo); - else - pi.MyItems.AddItem(itemInfo); - } - } - } - } - #endregion - #region IsType - public bool IsFirstCautionPart - { - get - { - return ((ItemPartCount > 0) && (ItemParts[0].PartType == E_FromType.Caution)); - } - } - public bool IsFirstNotePart - { - get - { - return ((ItemPartCount > 0) && (ItemParts[0].PartType == E_FromType.Note)); - } - } - - public bool IsCautionPart - { - get - { - return ((FirstSibling.ItemPartCount > 0) && (FirstSibling.ItemParts[0].PartType == E_FromType.Caution)); - } - } - public bool IsNotePart - { - get - { - return ((FirstSibling.ItemPartCount > 0) && (FirstSibling.ItemParts[0].PartType == E_FromType.Note)); - } - } - - public bool IsType(string type) - { - if ((int)MyContent.Type < 20000) return false; - int stepType = ((int)MyContent.Type) % 10000; - StepDataList sdlist = ActiveFormat.PlantFormat.FormatData.StepDataList; - if (stepType > sdlist.Count) - { - Console.WriteLine("Error getting type - contentid = {0}", MyContent.ContentID); - return false; - } - StepData sd = sdlist[stepType]; - while (sd.Index != 0) - { - if (sd.Type == type) return true; - sd = sdlist[sd.ParentType]; - } - return false; - } - public bool IsExactType(string type) - { - if ((int)MyContent.Type < 20000) return false; - int stepType = ((int)MyContent.Type) % 10000; - StepDataList sdlist = ActiveFormat.PlantFormat.FormatData.StepDataList; - if (stepType > sdlist.Count) - { - Console.WriteLine("Error getting type - contentid = {0}", MyContent.ContentID); - return false; - } - StepData sd = sdlist[stepType]; - return (sd.Type == type); - } - public bool IsCaution - { - get - { - return IsType("Caution"); - } - } - public bool IsNote - { - get - { - return IsType("Note"); - } - } - public bool IsTable - { - get - { - return IsType("Table"); - } - } - public bool IsFigure - { - get - { - return IsType("Figure"); - } - } - public bool IsOr - { - get - { - return IsType("Or"); - } - } - public bool IsAnd - { - get - { - return IsType("And"); - } - } - public bool IsEquipmentList - { - get - { - return IsType("EquipmentList"); - } - } - public bool IsTitle - { - get - { - return IsType("Title"); - } - } - public bool IsAccPages - { - get - { - return IsType("AccPages"); - } - } - public bool IsParagraph - { - get - { - return IsType("Paragraph"); - } - } - public bool IsDefault - { - get - { - return IsType("Default"); - } - } - public bool IsContAcSequential - { - get - { - return IsType("ContAcSequential"); - } - } - public bool IsHigh - { - get - { - // check to see if ActiveParent is a section, if so it is a high level step - if (MyContent.Type / 10000 != 2) return false; - ItemInfo parent = ActiveParent as ItemInfo; - if (parent == null) return false; - if ((parent.MyContent.Type / 10000) == 1) - return true; - return false; - } - } - public bool IsSequential - { - get - { - if ((MyContent.Type / 10000) != 2) return false; - string tabstr = FormatStepData.TabData.IdentPrint; - if (tabstr.Contains("{seq}")) return true; - return false; - } - } - public bool IsTablePart - { - get - { - return ((ItemPartCount > 0) && (ItemParts[0].PartType == E_FromType.Table)); - } - } - public bool IsRNOPart - { - get - { - return ((ItemPartCount > 0) && (ItemParts[0].PartType == E_FromType.RNO)); - } - } - public bool IsInRNO - { - get - { - if (IsHigh) return false; - if (IsRNOPart) return true; - ItemInfo parent = ActiveParent as ItemInfo; - if (parent == null) return false; - return parent.IsInRNO; - } - } - #endregion - #region Level Columns Relationships - public int RNOLevel - { - get - { - return ((IsProcedure || IsSection || IsHigh)?0:(IsRNOPart?1:0)+((ItemInfo)ActiveParent).RNOLevel); - } - } - public int ColumnMode - { - get - { - // check config value on my section, if null/default use Pmode of active format - if (ActiveSection != null) - { - SectionInfo si = SectionInfo.Get(ActiveSection.ItemID); //ActiveSection as SectionInfo; - if (si != null) - { - // there is no longer a "default" ENUM item - SectionConfig will return format default if needed - //if (si.SectionConfig.Section_ColumnMode != SectionConfig.SectionColumnMode.Default) - return (int)si.SectionConfig.Section_ColumnMode - 1; - } - } - return (ActiveFormat.MyStepSectionLayoutData.PMode ?? 2) -1; - } - } - /// - /// FormatStepType - Maps to step type in format file. All types map directly from step type in content - /// to step type in format - /// - public int FormatStepType - { - get - { - return (((int)MyContent.Type) % 10000); - } - } - /// - /// returns the format's stepdata for the given content type. - /// - public StepData FormatStepData - { - get - { - int typ = (int)MyContent.Type - 20000; - foreach (StepData sd in ActiveFormat.PlantFormat.FormatData.StepDataList) - { - if (sd.Index == typ) return sd; - } - return null; - } - } - public ItemInfo FirstSibling - { - get - { - ItemInfo temp = this; - while (temp.MyPrevious != null) temp = temp.MyPrevious; - return temp; - } - } - public ItemInfo LastSibling - { - get - { - ItemInfo temp = this; - while (temp.NextItems != null && temp.NextItems.Count > 0) temp = temp.NextItems[0]; - return temp; - } - } - public ItemInfo LastChild(E_FromType partType) - { - ItemInfoList myitems = Lookup((int)partType); - if (myitems !=null) return myitems[myitems.Count-1]; - return null; - } - public ItemInfo FirstChild(E_FromType partType) - { - ItemInfoList myitems = Lookup((int)partType); - if (myitems != null) return myitems[0]; - return null; - } - public bool HasAncestor(ItemInfo ancestor) - { - if (ancestor == null) return false; - ItemInfo parent = ActiveParent as ItemInfo; - if (parent == null) return false; - if (ancestor.ItemID == parent.ItemID) return true; - return parent.HasAncestor(ancestor); - } - #endregion - #region More IsType - public bool IsProcedurePart - { - get - { - return ((FirstSibling.ItemPartCount > 0) && (FirstSibling.ItemParts[0].PartType == E_FromType.Procedure)); - } - } - public bool IsSectionPart - { - get - { - return ((FirstSibling.ItemPartCount > 0) && (FirstSibling.ItemParts[0].PartType == E_FromType.Section)); - } - } - public bool IsStepPart - { - get - { - return ((FirstSibling.ItemPartCount > 0) && (FirstSibling.ItemParts[0].PartType == E_FromType.Step)); - } - } - public bool IsInSubStep - { - get - { - if (IsHigh) return false; - if (IsStepPart) return true; - ItemInfo parent = ActiveParent as ItemInfo; - if (parent == null) return false; - return parent.IsInSubStep; - } - } - public bool IsInFirstLevelSubStep - { - get - { - ItemInfo temp = FirstSibling; - if(temp.ActiveParent.GetType() == typeof(VEPROMS.CSLA.Library.DocVersionInfo))return false; - if (temp.MyParent.IsSection) return false; // already at hls - if (temp.IsProcedure || temp.IsSection) return false; - while (((ItemInfo)temp.ActiveParent).IsHigh == false) - temp = ((ItemInfo)temp.ActiveParent).FirstSibling; - return temp.IsStepPart; - } - } - public bool IsStepSection - { - get - { - if (IsSection && MyDocStyle.IsStepSection) return true; - return false; - } - } - public bool IsSection - { - get - { - if ((MyContent.Type / 10000) == 1) return true; - return false; - } - } - public bool IsDefaultSection - { - get - { - // check to see if ActiveParent is a section, if so it is a high level step - if (MyContent.Type / 10000 != 1) return false; - // get procedure section and then - ItemInfo parent = (ItemInfo)ActiveParent; - if (!parent.IsProcedure) return false; - ProcedureConfig pc = (ProcedureConfig)parent.MyConfig; - int sectstartid = -1; - string ss = pc == null ? null : pc.SectionStart; - if (ss != null) sectstartid = System.Convert.ToInt32(ss); - else return false; - if (ItemID == sectstartid) return true; - return false; - } - } - public bool IsProcedure - { - get - { - if ((MyContent.Type / 10000) == 0) return true; - return false; - } - } - public bool IsStep - { - get - { - if ((MyContent.Type / 10000) == 2) return true; - return false; - } - } - private E_FromType ItemType - { - get - { - if (MyContent.Type == 0) return E_FromType.Procedure; - if (MyContent.Type < 20000) return E_FromType.Section; - return E_FromType.Step; - } - } - public Item GetByType() - { - Item tmp = null; - switch (ItemType) - { - case E_FromType.Procedure: - tmp = Procedure.Get(_ItemID); - break; - //case E_FromType.Section: - // itemInfo = new Section(dr); - // break; - //default: - // itemInfo = new Step(dr); - // break; - } - return tmp; - } - #endregion - #region Ordinal CslaType and Tostring - [NonSerialized] - private int? _Ordinal; - public int Ordinal - { - get - { - if (_Ordinal == null) - { - if (MyPrevious != null) - _Ordinal = MyPrevious.Ordinal + 1; - else - _Ordinal = 1; - } - return (int) _Ordinal; - } - } - public string CslaType - { get { return this.GetType().FullName; } } - public override string ToString() - { - //Item editable = Item.GetExistingByPrimaryKey(_ItemID); - //return string.Format("{0}{1} {2}", (editable == null ? "" : (editable.IsDirty ? "* " : "")), - // (MyContent.Type >= 20000 ? Ordinal.ToString() + "." : MyContent.Number), MyContent.Text); - ContentInfo cont = MyContent; - //string number = cont.Number; - string number = DisplayNumber; - //if (cont.Type >= 20000) number = Ordinal.ToString() + "."; - if (cont.Type >= 20000) number = MyTab.CleanText; - return string.Format("{0} {1}", number, DisplayText).Trim(); - //return string.Format("{0} {1}", number, cont.Text).Trim(); - //return string.Format("{0} {1}", cont.Number, cont.Text); - //return "Now is the time for all good men to come to the aid of their country!"; - } - //public string ToString(string str,System.IFormatProvider ifp) - //{ - // return ToString(); - //} - #endregion - #region Search - internal string _SearchDVPath; - public string SearchDVPath - { - get - { - if (_SearchDVPath == null) - _SearchDVPath = ActiveParent.SearchDVPath; - return _SearchDVPath; - } - } - internal string _SearchPath; - public string SearchPath - { - get - { - if (_SearchPath==null) - { - if (IsProcedure) - _SearchPath = ActiveParent.SearchPath + "\u0007" + (DisplayNumber ?? "") + "\u0011" + DisplayText ; - else if (IsSection) - _SearchPath = ActiveParent.SearchPath + "\u0007" + (DisplayNumber ?? "") + "\u0011" + DisplayText; - else - { - PartInfo myPart = FirstSibling.ItemPartCount > 0 ? FirstSibling.ItemParts[0] : null; - if(myPart != null) - _SearchPath = myPart.SearchPath + (!IsHigh ? "." : "\u0007") + Ordinal.ToString(); - else - _SearchPath = ActiveParent.SearchPath + (!IsHigh ? "." : "\u0007") + Ordinal.ToString(); - } - } - return _SearchPath; - } - } - public string ShortSearchPath - { - get { return ConvertToDisplayText(Regex.Replace(_SearchPath ?? "", "\x11.*?\x07", "\x07")); } - } - internal int _SearchAnnotationID; - public int SearchAnnotationID - { - get { return _SearchAnnotationID; } - } - internal string _SearchAnnotationText; - public string SearchAnnotationText - { - get { return _SearchAnnotationText; } - set { _SearchAnnotationText = value; } - } - internal string _SearchAnnotationType; - public string SearchAnnotationType - { - get { return _SearchAnnotationType; } - } - #endregion - #region ProcedureConfig - [NonSerialized] - private ProcedureConfig _ProcedureConfig = null; - public PrintChangeBar PrintChangeBar - { - get - { - if (_ProcedureConfig == null) SetProcedureConfig(); - return _ProcedureConfig.Print_ChangeBar; - } - } - public PrintChangeBarLoc PrintChangeBarLoc - { - get - { - if (_ProcedureConfig == null) SetProcedureConfig(); - return _ProcedureConfig.Print_ChangeBarLoc; - } - } - public PrintChangeBarText PrintChangeBarText - { - get - { - if (_ProcedureConfig == null) SetProcedureConfig(); - return _ProcedureConfig.Print_ChangeBarText; - } - } - public string PrintChangeBarUsrMsg1 - { - get - { - if (_ProcedureConfig == null) SetProcedureConfig(); - return _ProcedureConfig.Print_UserCBMess1; - } - } - public string PrintChangeBarUsrMsg2 - { - get - { - if (_ProcedureConfig == null) SetProcedureConfig(); - return _ProcedureConfig.Print_UserCBMess2; - } - } - private void SetProcedureConfig() - { - // Walk up tree until find my procedure. Then get its change bar (default will - // get inherited information if not set at this level). - // Find the procedure level and its config. - ItemInfo tmpitm = this; - while (tmpitm.MyContent.Type != 0) - tmpitm = tmpitm.MyParent; - - ProcedureInfo pi = ProcedureInfo.Get(tmpitm.ItemID); - if (pi == null) return; - _ProcedureConfig = pi.MyConfig as ProcedureConfig; - } - #endregion - #region Formatting of Text - public string DisplayText - { - get { return ConvertToDisplayText(MyContent.Text); } - } - public string DisplayNumber - { - get - { - string str = (this.IsProcedure)?MyDocVersion.UnitSpecific(MyContent.Number,0):MyContent.Number; - return ConvertToDisplayText(str); - } - //get { return ConvertToDisplayText(MyContent.Number); } - } - public static string ConvertToDisplayText(string txt) - { - string retval = txt; - retval = StripRtfFormatting(retval); - retval = StripLinks(retval); - retval = ReplaceSpecialCharacters(retval); - retval = retval.Replace("\u2011","-"); - retval = retval.Replace("\r\n", ";"); - retval = retval.Replace("\n", ";"); //added for consistency checking with approved version - return retval; - } - public static string StripRtfFormatting(string rtf) - { - string retval = rtf; - retval = Regex.Replace(retval, @"\\b0 ?", ""); - retval = Regex.Replace(retval, @"\\b ?", ""); - retval = Regex.Replace(retval, @"\\ulnone ?", ""); - retval = Regex.Replace(retval, @"\\ul0 ?", ""); - retval = Regex.Replace(retval, @"\\ul ?", ""); - retval = Regex.Replace(retval, @"\\i0 ?", ""); - retval = Regex.Replace(retval, @"\\i ?", ""); - //retval = Regex.Replace(retval, @"\\super ?", ""); - //retval = Regex.Replace(retval, @"\\sub ?", ""); - //retval = Regex.Replace(retval, @"\\nosupersub ?", ""); - retval = Regex.Replace(retval, @"\\up[320] ?", ""); - retval = Regex.Replace(retval, @"\\dn[320] ?", ""); - return retval; - } - public static string StripLinks(string rtf) - { - string retval = rtf; - retval = Regex.Replace(retval, @"\\v.*?\\v0", ""); - retval = retval.Replace("\u252C", "");// Unicode 9516 Transition - retval = retval.Replace("\u2566", "");// Unicode 9574 Transition - retval = retval.Replace("\u0015", "");// Unicode 21 RO - return retval; - } - private static string ReplaceSpecialCharacter(Match m) - { - StringBuilder sb = new StringBuilder(); - int i = int.Parse(m.ToString().Substring(2,m.ToString().Length-3)); - sb.Append((char)i); - return sb.ToString(); - } - private static string ReplaceSpecialHexCharacter(Match m) - { - StringBuilder sb = new StringBuilder(); - int i = int.Parse(m.ToString().Substring(2), System.Globalization.NumberStyles.HexNumber); - sb.Append((char)i); - return sb.ToString(); - } - private static string ReplaceSpecialCharacters(string rtf) - { - string retval = rtf; - retval = retval.Replace("`", "\u00B0");// Degree - retval = Regex.Replace(retval, @"\\u[0-9]+[?]", new MatchEvaluator(ReplaceSpecialCharacter)); - retval = Regex.Replace(retval, @"\\'[0-9A-Fa-f][0-9A-Fa-f]", new MatchEvaluator(ReplaceSpecialHexCharacter)); - return retval; - } - - public VE_Font GetItemFont() - { - return GetItemFont(ActiveFormat); - } - - public VE_Font GetItemFont(FormatInfo fmt) - { - VE_Font font = null; - try - { - FormatInfo format = (LocalFormat != null || fmt == null) ? LocalFormat : fmt;//_MyItemInfo.ActiveFormat; - int type = (int)MyContent.Type;//_MyItemInfo.MyContent.Type; - switch (type / 10000) - { - case 0: // procedure - font = format.PlantFormat.FormatData.Font; - break; - case 1: // section - font = format.PlantFormat.FormatData.SectData.SectionHeader.Font; - break; - case 2: // step types - int typindx = type - 20000; // what to do for other types rather than steps - font = format.PlantFormat.FormatData.StepDataList[typindx].Font; - if (typindx == _ParagraphType) font = AdjustForTextSubFollowsTextStyle(format,typindx,font); - break; - } - } - catch (Exception ex) - { - Console.WriteLine("GetItemFont(): {0} - {1}", ex.GetType(), ex.Message); - } - return font; - } - private const int _ParagraphType=24; - protected VE_Font AdjustForTextSubFollowsTextStyle(VE_Font font) - { - return AdjustForTextSubFollowsTextStyle(ActiveFormat, this.FormatStepType, font); - } - private VE_Font AdjustForTextSubFollowsTextStyle(FormatInfo format, int typindx, VE_Font font) - { - StepData myFormatStepData = format.PlantFormat.FormatData.StepDataList[typindx]; - if (myFormatStepData.TextSubFollowsTextStyle && ParentNoteOrCaution != null) - { - bool isBold = (myFormatStepData.Font.Style & E_Style.Bold) > 0; - bool isMmBold = (myFormatStepData.Font.Style & E_Style.MmBold) > 0; - myFormatStepData = format.PlantFormat.FormatData.StepDataList[ParentNoteOrCaution.FormatStepType]; - font = myFormatStepData.Font; - E_Style myStyle = (E_Style) font.Style; - myStyle ^= (myStyle & E_Style.Bold); - myStyle ^= (myStyle & E_Style.MmBold); - myStyle |= isBold ? E_Style.Bold : 0; - myStyle |= isMmBold ? E_Style.MmBold : 0; - if (myStyle != font.Style) - font = new VE_Font(font.Family, (int)font.Size, myStyle, (float)font.CPI); - } - return font; - } - private string RemoveToken(string str, string token) - { - // if this token is preceeded by another token and followed by a space - // leave the preceeding token the ending space - string retval = Regex.Replace(str, @"(\\[^ \\?\r\n\t]*)" + token + " ", "$1 "); - //if (retval != str) // Show the token replacement - // Console.WriteLine("Leave the preceeding token the ending space '{0}'\r\n{1}\r\n{2}",token,str,retval); - // otherwise replace the token optionally followed by a space - retval = Regex.Replace(retval, token + " ?", ""); - return retval; - } - public string RemoveRtfStyles(string rtf) - { - return RemoveRtfStyles(rtf, ActiveFormat); - } - public string RemoveRtfStyles(string rtf, FormatInfo fmt) - { - string retval = rtf; - VE_Font TextFont = GetItemFont(fmt); - if (TextFont != null) - { - // remove rtf commands for any styles that were added. Note that if - // the entire item has a style, and also contains 'pieces' of text with - // the same style, the underlying rtf box removes the embedded rtf commands, - // for example, if the entire step is bolded, and 'THEN' has bold on/off - // surrounding it, the rtf box removes the bold around the 'THEN' - // These remove the command with a following space or the command alone, - // either case may exist, because if there are rtf commands following the - // style command, there will be no space character following the style command. - if (((TextFont.Style & E_Style.Bold) > 0) || ((TextFont.Style & E_Style.MmBold) > 0)) - { - retval = RemoveToken(retval, @"\\b0"); - retval = RemoveToken(retval, @"\\b"); - } - if ((TextFont.Style & E_Style.Underline) > 0) - { - retval = RemoveToken(retval, @"\\ulnone"); - retval = RemoveToken(retval, @"\\ul"); - } - if ((TextFont.Style & E_Style.Italics) > 0) - { - retval = RemoveToken(retval, @"\\i0"); - retval = RemoveToken(retval, @"\\i"); - } - } - return retval; - } - #endregion - #region Path and Parent - public string Path - { - get - { - string number = (MyContent.Type >= 20000 ? Ordinal.ToString() + "." : ((DisplayNumber ?? "")==""? DisplayText: DisplayNumber)); - ItemInfo parent = this; - while (parent.MyPrevious != null) parent = parent.MyPrevious; - if (parent.ItemPartCount == 0) - return number + ", " + DisplayText; - else - { - PartInfo partInfo = parent.ItemParts[0]; - return partInfo.MyContent.ContentItems.Items[0].Path + " " + ((E_FromType)partInfo.FromType).ToString() + " " + number; - } - } - } - public string ShortPath - { - get - { - string number = (MyContent.Type >= 20000 ? Ordinal.ToString() + "." : ((DisplayNumber ?? "") == "" ? DisplayText : DisplayNumber)); - ItemInfo parent = this; - while (parent.MyPrevious != null) parent = parent.MyPrevious; - if (parent.ItemPartCount == 0) - return number; - else - { - PartInfo partInfo = parent.ItemParts[0]; - return partInfo.MyContent.ContentItems.Items[0].ShortPath + "." + ((E_FromType)partInfo.FromType).ToString().Substring(0,1) + number; - } - } - } - public ContentInfo ParentContent - { - get - { - string number = (MyContent.Type >= 20000 ? Ordinal.ToString() + "." : ((MyContent.Number ?? "") == "" ? MyContent.Text : MyContent.Number)); - ItemInfo parent = this; - while (parent.MyPrevious != null) parent = parent.MyPrevious; - if (parent.ItemPartCount <= 0 || parent.ItemParts.Count == 0) - return null; - else - { - return parent.ItemParts[0].MyContent; - } - } - } - public ItemInfo MyParent - { - get - { - //if (ItemDocVersionCount > 0) return ItemDocVersions[0]; Need to create one interface to support Folders, DocVersions and Items - ContentInfo parentContent = ParentContent; - if (parentContent == null || parentContent.ContentItemCount == 0) return null; - return parentContent.ContentItems[0]; - } - } - #endregion - #region Lookups and More Related - private ItemInfoList Lookup(int fromType, ref ItemInfoList itemInfoList) - { - if (itemInfoList == null) - itemInfoList = Lookup(fromType); - return itemInfoList; - } - internal ItemInfoList Lookup(int fromType) - { - ItemInfoList itemInfoList = null; - if (MyContent.ContentPartCount != 0) - foreach (PartInfo partInfo in MyContent.ContentParts) - if (partInfo.FromType == fromType) - { - itemInfoList = partInfo._MyItems = ItemInfoList.GetList(partInfo.ItemID, partInfo.FromType); - return itemInfoList; - } - return null; - } - public static void ResetParts(int itemID) - { - string key = itemID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) - { - bool firstContent = true; - foreach (ItemInfo itm in _CacheByPrimaryKey[key]) - { - itm.ResetParts(); - if (itm._MyContent != null && firstContent) - { - firstContent = false;// Only need to do this once. - //RefreshContentParts looks through ContentInfo objects - itm._MyContent.RefreshContentParts(); - } - } - } - } - public void ResetParts() - { - _Procedures = null; - _Sections = null; - _Cautions = null; - _Notes = null; - _RNOs = null; - _Steps = null; - _Tables = null; - } - private ItemInfoList _Procedures; - public ItemInfoList Procedures - { get { return Lookup(1,ref _Procedures); } } - private ItemInfoList _Sections; - public ItemInfoList Sections - { get { return Lookup(2,ref _Sections); } } - private ItemInfoList _Cautions; - public ItemInfoList Cautions - { get { return Lookup(3,ref _Cautions); } } - private ItemInfoList _Notes; - public ItemInfoList Notes - { get { return Lookup(4,ref _Notes); } } - private ItemInfoList _RNOs; - public ItemInfoList RNOs - { get { return Lookup(5,ref _RNOs); } } - private ItemInfoList _Steps; - public ItemInfoList Steps - { get { return Lookup(6,ref _Steps); } } - private ItemInfoList _Tables; - public ItemInfoList Tables - { get { return Lookup(7,ref _Tables); } } - //public void ResetChildren() - //{ - // _Procedures = null; - // _Sections = null; - // _Steps = null; - // _Cautions = null; - // _Notes = null; - // _RNOs = null; - // _Steps = null; - // _Tables = null; - //} - //public XmlDocument ToXml() - //{ - // XmlDocument retval = new XmlDocument(); - // retval.LoadXml(""); - // return ToXml(retval.DocumentElement); - //} - //public void AddList(XmlNode xn,string name, ItemInfoList itemInfoList) - //{ - // if (itemInfoList != null) - // { - // XmlNode nd = xn.OwnerDocument.CreateElement(name); - // xn.AppendChild(nd); - // itemInfoList.ToXml(xn); - // } - //} - //public XmlDocument ToXml(XmlNode xn) - //{ - // XmlNode nd = MyContent.ToXml(xn); - // // Now add the children - // AddList(nd, "Procedures", Procedures); - // AddList(nd, "Sections", Sections); - // AddList(nd, "Cautions", Cautions); - // AddList(nd, "Notes", Notes); - // AddList(nd, "RNOs", RNOs); - // AddList(nd, "Steps", SubItems); - // AddList(nd, "Tables", Tables); - // return xn.OwnerDocument; - //} - #endregion - #region UI Tab - public string TabToolTip - { - get - { - if (MyContent.MyEntry == null) - return DisplayNumber + " - " + DisplayText; - string toolTip = MyProcedure.TabToolTip + "\r\n"; - if (MyContent.Number != "") - toolTip += DisplayNumber + " - " + DisplayText; - else - toolTip += DisplayText; - DocumentInfo myDocument = MyContent.MyEntry.MyDocument; - if (myDocument.LibTitle != "") - { - toolTip += string.Format("\r\n(Library Document - {0})\r\n", myDocument.LibTitle); - toolTip += myDocument.LibraryDocumentUsage; - } - return toolTip; - } - } - public string TabTitle - { - get - { - if (MyContent.MyEntry == null) - if(DisplayNumber == string.Empty) - return DisplayText.Replace("\u2011", "-").Split(" ,.;:-_".ToCharArray())[0] + "..."; - return DisplayNumber.Replace("\u2011","-"); - if (MyContent.Number != "") - return ((MyContent.MyEntry.MyDocument.LibTitle ?? "") == "" ? "" : "\u1D38\u1D35\u1D2E ") + DisplayNumber; - if (MyContent.MyEntry.MyDocument.LibTitle != "") - { - if (DisplayText.Length <= 7) return "\u1D38\u1D35\u1D2E " + DisplayText.Replace("\u2011", "-"); - return "\u1D38\u1D35\u1D2E " + DisplayText.Replace("\u2011", "-").Split(" ,.;:-_".ToCharArray())[0] + "..."; - } - if (DisplayText.Length <= 10) - return DisplayText.Replace("\u2011", "-"); - return DisplayText.Replace("\u2011", "-").Split(" ,.;:-_".ToCharArray())[0]+ "..."; - } - } - #endregion - #region Change Bar - public bool HasChangeBar - { - get - { - if (this.IsAccPages || this.IsProcedure || this.IsSection) return false; - StepInfo si = this as StepInfo; - if (si == null) return false; - StepConfig sc = si.MyConfig as StepConfig; - if (sc == null) return false; - // if there is no override & return whether there was a change to the text. - if (sc.Step_CBOverride == null) - return (MyContent.DTS > MyProcedure.DTS); - else // override is on: - return (sc.Step_CBOverride == "On"); - } - } - #endregion - #region IVEReadOnlyItem - PartInfoList _PartInfoList; - public System.Collections.IList GetChildren() - { - _PartInfoList = this.MyContent.ContentParts; - if (_PartInfoList.Count == 1 && ((IsProcedure && _PartInfoList[0].ToString() == "Sections") || _PartInfoList[0].ToString() == "Steps")) - return _PartInfoList[0].GetChildren(); - return _PartInfoList; - } - public System.Collections.IList GetChildren(bool allParts) - { - _PartInfoList = this.MyContent.ContentParts; - if (allParts) - { - if (_PartInfoList.Count == 1 && ((IsProcedure && _PartInfoList[0].ToString() == "Sections") || _PartInfoList[0].ToString() == "Steps")) - - return _PartInfoList[0].GetChildren(); - return _PartInfoList; - } - else // Steps and Sections only - { - for(int i = 0;i<_PartInfoList.Count;i++) - if(_PartInfoList[i].ToString() == "Sections" || _PartInfoList[i].ToString() == "Steps") - return _PartInfoList[i].GetChildren(); - return null; - } - } - //public bool ChildrenAreLoaded - //{ - // get { return _PartInfoList == null; } - //} - public bool HasChildren - { - get { return this.MyContent.ContentPartCount > 0; } - } - public bool HasWordContent - { - get { return this.MyContent.MyEntry != null; } - } - public bool HasStepContent - { - get - { - if (MyContent.ContentPartCount == 0) return false; - if (MyContent.ContentPartCount == 1 && MyContent.ContentParts[0].PartType == E_FromType.Section) return false; - return true; - } - } - public ProcedureInfo MyProcedure - { - get - { - // Walk up active parents until the parent is not an item - ItemInfo tmp = this; - while (tmp.ActiveParent != null && tmp.ActiveParent.GetType() != typeof(DocVersionInfo)) - tmp = (ItemInfo)tmp.ActiveParent; - if (tmp is ProcedureInfo) - return tmp as ProcedureInfo; - return ProcedureInfo.Get(tmp.ItemID); - } - } - private ItemInfo _MyHLS = null; - public ItemInfo MyHLS - { - get - { - if (_MyHLS == null) - { - if (IsHigh) _MyHLS = this; - else - { - if(MyActiveParent is ItemInfo) - _MyHLS = ((ItemInfo)MyActiveParent).MyHLS; - } - } - return _MyHLS; - } - } - - private DocVersionInfo _MyDocVersion = null; - - public DocVersionInfo MyDocVersion - { - get - { - if (_MyDocVersion == null) - { - if (ActiveParent is DocVersionInfo) - _MyDocVersion = ActiveParent as DocVersionInfo; - else - _MyDocVersion = (ActiveParent as ItemInfo).MyDocVersion; - } - return _MyDocVersion; - } - } - private IVEDrillDownReadOnly _ActiveParent = null; - public IVEDrillDownReadOnly MyActiveParent { get { return _ActiveParent; } } - public IVEDrillDownReadOnly ActiveParent - { - get - { - //if (_ActiveParent == this)_ActiveParent = null; - if (_ActiveParent == null) - { - if (MyPrevious != null) - _ActiveParent = _MyPrevious.ActiveParent; - else - { - if (this.ItemDocVersions != null && this.ItemDocVersions.Count > 0) - _ActiveParent = this.ItemDocVersions[0]; - else - { - //The following using command caused a cached iteminfo to be disposed. - //using (ContentInfo parentContent = ParentContent) - //{ - ContentInfo parentContent = ParentContent; - if (parentContent == null)// || parentContent.ContentItemCount == 0) - _ActiveParent = this; - else - { - int itemID = 0; - if (parentContent.ContentItems.Count == 0) - parentContent.RefreshContentItems(); - using(ItemInfoList list = parentContent.ContentItems) - itemID = list[0].ItemID; - if (itemID == 0) - _ActiveParent = this; - else - _ActiveParent = ItemInfo.Get(itemID); - } - //} - } - } - } - return _ActiveParent==this ? null : _ActiveParent; - } - internal set - //set - { - _ActiveParent = value; - } - } - private ItemInfo _ActiveSection = null; - /// - /// MyActiveSection is used to determine if _ActiveSection is null or not. - /// - public ItemInfo MyActiveSection { get { return _ActiveSection; } } - public ItemInfo ActiveSection - { - get - { - if (_ActiveSection == null) - { - if (IsSection) - _ActiveSection = this; - else - { - ItemInfo parent = ActiveParent as ItemInfo; - if (parent != null) - _ActiveSection = parent.ActiveSection; - else - _ActiveSection = this; - } - } - return _ActiveSection.IsSection ? _ActiveSection : null; - } - set - { - _ActiveSection = value; - } - } - //private int _PageNumForDocStyle = 0; - //public int PageNumForDocStyle - //{ - // get { return _PageNumForDocStyle; } - // set { _PageNumForDocStyle = value; } - //} - private DocStyle _MyDocStyle; - //private DocStyle _MyDocStyleOtherThanFirstPage; - public DocStyle MyDocStyle - { - get - { - if (_MyDocStyle == null && ActiveSection != null) - { - int typ = (int)ActiveSection.MyContent.Type; - int subtyp = typ % 10000; - _MyDocStyle = ActiveFormat.PlantFormat.DocStyles.DocStyleList[subtyp]; - // if (((MyDocStyle.StructureStyle.Where & E_DocStyleUse.UseOnFirstPage) != 0) && PageNumForDocStyle > 1) - // { - // if (_MyDocStyleOtherThanFirstPage == null) - // { - // foreach (DocStyle ds in ActiveFormat.PlantFormat.DocStyles.DocStyleList) - // { - // if ((ds.StructureStyle.Where & E_DocStyleUse.UseOnAllButFirstPage) != 0) - // { - // _MyDocStyleOtherThanFirstPage = ds; - // break; - // } - // } - // } - // } - } - //if (PageNumForDocStyle <= 1) - return _MyDocStyle; - //else - // return _MyDocStyleOtherThanFirstPage; - } - } - private FormatInfo _ActiveFormat = null; - public FormatInfo ActiveFormat - { - get - { - //if (_ActiveFormat == null) // jsj added check for NULL ActiveParent - _ActiveFormat = (LocalFormat != null ? LocalFormat : (ActiveParent != null)? ActiveParent.ActiveFormat : null); - //Console.WriteLine("Active {0}", (_ActiveFormat == null) ? "_ActiveFormat is null" : _ActiveFormat.Name); - return _ActiveFormat; - } - //get { return LocalFormat != null ? LocalFormat : ActiveParent.ActiveFormat; } - } - public FormatInfo LocalFormat - { - get { - //Console.WriteLine("Local {0}", (MyContent.MyFormat==null)?"MYformat is null": MyContent.MyFormat.Name); - return MyContent.MyFormat; } - } - private bool _IsDeleted = false; - public bool IsDeleted - { - get { return _IsDeleted; } - set - { - _IsDeleted = value; - if (value == true) - UpdateCacheIsDeleted(ItemID); - } - } - private static void UpdateCacheIsDeleted(int itemID) - { - ConvertListToDictionary(); - string key = itemID.ToString(); - if (key != null && _CacheByPrimaryKey.ContainsKey(key)) - { - ItemInfo[] items = _CacheByPrimaryKey[key].ToArray(); - foreach (ItemInfo item in items) - item._IsDeleted = true; - } - } - private ConfigDynamicTypeDescriptor _MyConfig = null; - public ConfigDynamicTypeDescriptor MyConfig - { - get - { - if (_MyConfig == null) - { - switch (MyContent.Type / 10000) - { - case 0: - _MyConfig = new ProcedureConfig(MyContent.Config); - break; - case 1: - _MyConfig = new SectionConfig(MyContent.Config); - if (ItemID == 317) - Console.WriteLine("Myconfig: id = {0}, column mode = {1}", MyItemInfoUnique, (_MyConfig as SectionConfig).Section_ColumnMode); - break; - case 2: - _MyConfig = new StepConfig(MyContent.Config); - break; - } - } - return _MyConfig; - } - set - { - if (_MyConfig == null) return; - _MyConfig = null; - //MyContent.Config = value; - } - } - public void RefreshConfig() - { - Console.WriteLine("refreshconfig: Itemid = {0}", ItemID); - string key = ItemID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ItemInfo tmpInfo in _CacheByPrimaryKey[key]) - { - if (tmpInfo.ItemID == 317) Console.WriteLine("RefreshConfig: id = {0}", tmpInfo.MyItemInfoUnique); - tmpInfo.MyConfig = null; - } - } - static public void RefreshConfig(string key) - { - Console.WriteLine("Static refreshconfig: Itemid = {0}", key); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ItemInfo tmpInfo in _CacheByPrimaryKey[key]) - { - if (tmpInfo.ItemID == 317) Console.WriteLine("Static RefreshConfig: id = {0}", tmpInfo.MyItemInfoUnique); - tmpInfo.MyConfig = null; - } - } - //public bool HasStandardSteps() - //{ return MyContent.ContentItemCount > 1; } - public Color ForeColor - { get { return (HasBrokenRules != null ? Color.Red : (MyContent.ContentItemCount > 1 ? Color.Blue : Color.Black)); } } - public Color BackColor - { get { return (ItemAnnotationCount > 0 ? Color.Yellow : Color.White); } } - #endregion - #region Constructor - internal ItemInfo(SafeDataReader dr, bool forIRichtem) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - AddContent(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfo.Constructor", ex); - throw new DbCslaException("ItemInfo.Constructor", ex); - } - } - internal void AddContent(SafeDataReader dr) - { - _MyContent = new ContentInfo(dr, true); - } - #endregion - #region MetaTags - Tabs, Headers, Footers - [NonSerialized] - protected Tab _MyTab; - public Tab MyTab - { - get - { - if (!_TagsSetup) SetupTags(); - return _MyTab; - } - set - { - _MyTab = value; - } - } - [NonSerialized] - protected MetaTag _MyHeader; - public MetaTag MyHeader - { - get - { - if (!_TagsSetup) SetupTags(); - return _MyHeader; - } - set - { - _MyHeader = value; - } - } - [NonSerialized] - protected MetaTag _MyFooter; - public MetaTag MyFooter - { - get - { - if (!_TagsSetup) SetupTags(); - return _MyFooter; - } - set { _MyFooter = value; } - } - [NonSerialized] - protected bool _TagsSetup = false; - public virtual void SetupTags() - { - if (IsStep) - { - MyTab = new Tab(AdjustForTextSubFollowsTextStyle(FormatStepData.TabData.Font)); - _MyHeader = new MetaTag(FormatStepData.TabData.Font); - _MyFooter = new MetaTag(FormatStepData.TabData.Font); - SetTabText(); - } - else - { - _MyTab = new Tab(ActiveFormat.PlantFormat.FormatData.Font); - _MyHeader = null; - _MyFooter = null; - _MyTab.CleanText = DisplayNumber; - } - _TagsSetup = true; - } - protected void SetTabText() - { - string cltext = null; - if (IsParagraph) - { - _MyTab.Text = ""; - _MyTab.CleanText = ""; - return; - } - int stepType = (int)(MyContent.Type % 10000); - string tbformat = IsInRNO ? FormatStepData.TabData.RNOIdentPrint : FormatStepData.TabData.IdentPrint; - // rno gets parent tab - if (IsRNOPart) - { - try - { - if ((((ItemInfo)ActiveParent).IsHigh && FormatStepData.NumberHighLevel) || ((!((ItemInfo)ActiveParent).IsHigh) && ((tbformat == null || tbformat == "") && (RNOLevel <= ColumnMode)))) - { - _MyTab.CleanText = ((ItemInfo)ActiveParent).MyTab.CleanText; - _MyTab.Text = ((ItemInfo)ActiveParent).MyTab.Text; - return; - } - } - catch (Exception ex) - { - Console.WriteLine("SetTabText IsRNO error {0}", ex.Message); - } - } - if (tbformat == null) - { - _MyTab.Text = ""; - _MyTab.CleanText = ""; - return; - } - - // account for metasection indenting/tabbing in the 'PrintLevel', i.e. if we have metasection, we may be in - // a subsection. Index into the seqtabs array has to account for metasection level. - int localPrintLevel = PrintLevel; - StepSectionData sd = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData; - if (sd.StepSectionLayoutData.TieTabToLevel && ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) - { - if (sd.StepSectionLayoutData.ShowSectionTitles - && !MyDocStyle.CancelSectTitle - && !(MyDocStyle.SpecialStepsFoldout && MyDocStyle.UseColSByLevel)) - localPrintLevel = PrintLevel + CurrentSectionLevel(); - } - // Start with basic cases of alpha/numeric/seq: - if (tbformat.IndexOf("{seq}") > -1) - { - SeqTabFmtList seqtabs = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList; - int itmp = (localPrintLevel + PrintBias) % seqtabs.Count; - tbformat = seqtabs[itmp].PrintTabFormat; // seqtab in 16bit, i.e. '. or )' etc. - string tbtoken = seqtabs[localPrintLevel % seqtabs.Count].TabToken; // seqstart in 16bit, number/letter - tbformat = tbformat.Replace("{seq}", tbtoken); - } - - // If token includes 'Wpar', the parent tab prefix's the tab. - if (localPrintLevel > 0 && (tbformat.IndexOf("{numericWpar}") > -1 || tbformat.IndexOf("{alphaWpar}") > -1 || tbformat.IndexOf("{ALPHAWpar}") > -1)) - { - string parentTab = ((ItemInfo)(ActiveParent)).MyTab.CleanText.Trim(); - tbformat = parentTab + (parentTab.EndsWith(".") ? "" : ".") + tbformat.TrimStart(); - } - if (tbformat.IndexOf("#2#") > -1 || tbformat.IndexOf("#1#") > -1) - { - string ofst = tbformat.Substring(0, 3); - _MyTab.Offset = Convert.ToInt32(ofst.Substring(1, 1)); - cltext = tbformat.Replace("#2#", ""); - cltext = cltext.Replace("#1#", ""); - } - // if this is a caution/note type determine where 'NOTE/CAUTION' tab goes, as tab or as 'header' - // and also determine whether the tab itself gets converted to a bullet. - if (IsCaution || IsNote) tbformat = CheckNoteCautionTab(tbformat); - - int ordinal = Ordinal; - bool trimTabStart = false; - if (!IsSection && !IsProcedure && tbformat.IndexOf("{Section Prefix}") >= 0) - { - // if there is a section prefix, trim any spaces from the start of this tab, so we don't have - // a tab that looks like "1. 1" - string tmpsectpref = SectionPrefix(tbformat) ?? string.Empty; - if (ActiveSection.MyTab.CleanText != null && ActiveSection.MyTab.CleanText != "" && tmpsectpref != string.Empty) trimTabStart = true; - tbformat = tbformat.Replace("{Section Prefix}", SectionPrefix(tbformat)); - } - string alpha = AlphabeticalNumbering(ordinal); - tbformat = tbformat.Replace("{alpha}", alpha.ToLower()); - tbformat = tbformat.Replace("{alphaWpar}", alpha.ToLower()); - tbformat = tbformat.Replace("{ALPHA}", alpha); - tbformat = tbformat.Replace("{ALPHAWpar}", alpha); - string roman = RomanNumbering(ordinal); - tbformat = tbformat.Replace("{roman}", roman.ToLower()); - tbformat = tbformat.Replace("{ROMAN}", roman); - tbformat = tbformat.Replace("{numeric}", trimTabStart ? ordinal.ToString() : ordinal.ToString().PadLeft(2)); - tbformat = tbformat.Replace("{numericWpar}", ordinal.ToString()); - - if (tbformat.IndexOf("{!C0}") > -1) // wolf creek uses this to get lines above/below step number - { - cltext = cltext == null ? tbformat.Replace("{!C0}", "") : cltext.Replace("{!C0}", ""); - cltext = cltext + " "; - } - - // "{Null}" was introduced so that inheritance in format files could differentiate between an - // empty string, and null. And also, so that if a tab was null but it's parent had text in the - // tab, don't inherit the parent's tab, use a null. - if (MyPrevious != null && FormatStepData.Sep != null && FormatStepData.Sep != "{Null}") - { - if (_MyHeader == null) _MyHeader = new MetaTag(FormatStepData.TabData.Font); - _MyHeader.Text = FormatStepData.Sep; - _MyHeader.CleanText = StripRtfFormatting(_MyHeader.Text); - _MyHeader.Justify = ContentAlignment.MiddleCenter; - } - #region Non Converted Plants tab TODO - // other possible 'tokens' - // Position offset - do this one here, so don't get background substitution below.. - // ##-3# - Offset of -3 from Parent (FNP) - // "{Pos-3}" - - // Background/Deviation Documents - check for E_PurchaseOptions.(ENHANCEDBACKGROUNDS or ENHANCEDDEVIATIONS) - // # - Related Caution or Note number - // ~ - Linked Step Number - //"{LNK C/N Num}" - //"{LNK Step Num}" - - // Position offset - // \257 - Indent (CALLOWAY BACKGROUNDS) - // Newline within a tab (calbck) - //"{indent}"); - //"{par}"); - - //Macros - // - draws a diamond around the stepnumber - // - A macro - // - // <> - ignored - // \241 - circle macro around step, same as - // Also note, the format files had "<>", these get converted during input in this - // format converter code. - //wkstr = wkstr.Replace("{!asterisk}", "\\fs10 \\b*\\b0"); // was font size 20 in 16-bit - //wkstr = Regex.Replace(wkstr, @"{![.*?]}", @"{!$1}"); - //wkstr = wkstr.Replace("{}", ""); - //if (vefont != null && vefont.HasCircleString2()) wkstr.Insert(0,"{!C0}"); - - //wkstr = wkstr.Replace("", @"{Box Step}"); - #endregion - _MyTab.Text = tbformat; - _MyTab.CleanText = cltext != null ? cltext : tbformat; - } - - private string GetToken(string tbformat) - { - int stindx = tbformat.IndexOf("{"); - return (tbformat.Substring(stindx, tbformat.IndexOf("}")-stindx+1)); - } - - public int GetStepLevel(ref int bias) - { - int level = 0; - ItemInfo par = this; - ItemInfo LastRNO = null; - while (par != null && !par.IsSection && !par.IsProcedure && !par.IsHigh) - { - if (par.IsRNOPart) LastRNO = par.MyParent; - if (!par.IsRNOPart && (par.IsSequential || (!(par.IsCaution || par.IsNote) - && ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.CountAllSubLevels))) - level++; - par = par.MyParent; - } - bias = 0; - if (par.FormatStepData.TabData.IdentPrint.Contains("{ALPHA}")) - level--; - - // ImperfectStructure is used so that the sequential numbering for substeps under an RNO is not same - // numbering (alpha vs numeric), if the HLS has substeps - WCN uses this, as well as other plants. - if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructure && IsSequential - && (LastRNO != null) && LastRNO.IsHigh && LastRNO.HasChildren - && LastRNO.FirstChild(E_FromType.Step) != null && LastRNO.FirstChild(E_FromType.Step).IsSequential) - { - level++; // 16bit has this: I didn't and mine worked most of time. - if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4) level += 2; - if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectSubstep && !ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4) - bias = -1; - } - // ImperfectStructure for substeps - only good for level 1 RNOs - else if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectSubstep && RNOLevel == 1) - { - par = this; - while (!par.IsRNOPart) par = par.MyParent; // get to the rno. - if (par.MyParent.HasChildren) // if parent has children? - { - ItemInfo tchild = par.MyParent.FirstChild(E_FromType.Step); - if (tchild != null) - { - int typ = (int)tchild.MyContent.Type - 20000; - if (ActiveFormat.PlantFormat.FormatData.StepDataList[typ].TabData.IdentPrint.Contains("{seq}")) - { - level++; - if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4) level += 1; - if (!ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ImperfectStructurePlus4) bias = -1; - } - } - } - } - return level; - } - public int CurrentSectionLevel() - { - int countlev = 0; - if ((MyActiveSection.MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.DSS_TreatAsTrueSectNum) != 0) - { - ItemInfo ii = ActiveSection.MyParent; - while (!ii.IsProcedure) - { - if (ii.DisplayNumber != null && ii.DisplayNumber != "") - { - SectionConfig sc = MyActiveSection.MyConfig as SectionConfig; - if (sc != null && sc.SubSection_AutoIndent == "Y") - countlev++; - } - ii = ii.MyParent; - } - } - return countlev; - } - private string SectionPrefix(string tbformat) - { - // if not metasection/tietabtolevel, return the 'section number'. (where the '.' may or may not exist) - if (!ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel) - { - // If the Section's 'tab' is a character or has a character preceding the '.' is an alpha character, - // just return the alpha (no '.') - // If the character preceding the '. 'is a number, return the section tab up to and including the '.' - // Otherwise, just return the section tab. - // Before checking for anything, if the DisplayNumber starts with 'ATTACHMENT ', don't use that in the Section - // prefix for the tabstring. - string attNum = ActiveSection.DisplayNumber.ToUpper().StartsWith("ATTACHMENT ") ? ActiveSection.DisplayNumber.Substring(11) : ActiveSection.DisplayNumber; - Match m = Regex.Match(attNum, @"[a-zA-Z]"); // for alpha, use non-touched displaynumber - int indx = -1; - if (m.Success) - { - indx = attNum.IndexOf("."); - if (indx < 0) return attNum; - return attNum.Substring(0, indx); - } - indx = ActiveSection.MyTab.CleanText.IndexOf("."); - if (indx > 0) return ActiveSection.MyTab.CleanText.Substring(0, indx + 1); // include the '.' - return ActiveSection.MyTab.CleanText.TrimEnd(); - } - - // the rest of this is for metasections (tietabtolevel format flag) - - SectionInfo si = SectionInfo.Get(ActiveSection.ItemID); - // A 'TrueSectionNum' must have a '.' and cannot have lettters after the '.'. - if (si != null && si.TrueSectionNum()) - { - string attNum = ActiveSection.DisplayNumber; // ActiveSection.DisplayNumber.ToUpper().StartsWith("ATTACHMENT ") ? ActiveSection.DisplayNumber.Substring(11) : ActiveSection.DisplayNumber; - // If section number is of form '1.0', return '1.' - if (attNum.Length > 1 && attNum[attNum.Length - 1] == '0' && attNum[attNum.Length - 2] == '.') - return attNum.Substring(0, attNum.Length - 1); - // If section number is of form '1', return '1.' - else if (attNum.Length > 0 && attNum[attNum.Length - 1] != '.') - return attNum + '.'; - } - // For the docstyle flag DSS_TreatAsTrueSectNum, look for last space, and if one is - // found, the the Section Prefix is the text after the space with a '.' appended - for - // example, 'Attachment A' becomes 'A.'. - if ((MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.DSS_TreatAsTrueSectNum) != 0) - { - int lindx = ActiveSection.DisplayNumber.LastIndexOf(" "); - if (lindx > 0) - { - return ActiveSection.DisplayNumber.Substring(lindx + 1) + "."; - } - } - - // If we're in a subsection, be sure there is a '.' at the end. - int subsection = CurrentSectionLevel(); - if (subsection >= 1) - { - string tmptab = ActiveSection.MyTab.CleanText.TrimEnd(); - if (tmptab.LastIndexOf(".") != tmptab.Length - 1) tmptab = tmptab + "."; - return tmptab; - } - return ActiveSection.MyTab.CleanText.TrimEnd(); - } - - private string CheckNoteCautionTab(string tbformat) - { - string prevTbFormat = null; - string nextTbFormat = null; - StepData nextStepData = null; - if (MyPrevious != null) - { - // int prevStepType = ((int)MyPrevious.MyContent.Type) % 10000; - StepData prevStepData = MyPrevious.FormatStepData; // ActiveFormat.PlantFormat.FormatData.StepDataList[prevStepType]; - prevTbFormat = MyPrevious.IsInRNO ? prevStepData.TabData.RNOIdentPrint : prevStepData.TabData.IdentPrint; - } - if (NextItem != null) - { - nextStepData = NextItem.FormatStepData; - // tried to duplicate functionality from 16-bit code. - nextTbFormat = NextItem.IsInRNO ? nextStepData.TabData.RNOIdentPrint : nextStepData.TabData.IdentPrint; - } - // Handle the centered tab - if this tab is centered make it a header. - if (FormatStepData.TabData.Justify == "Center") - { - _MyHeader.Justify = ContentAlignment.MiddleCenter; - _MyHeader.Text = tbformat.Trim(); ; - _MyHeader.CleanText = StripRtfFormatting(_MyHeader.Text); - // if there is only step in the group - no bullet is used, if more that one replace the tab - // with a bullet. Also, if only one in group and tab text ends with 'S', remove it: - if (MyPrevious == null && NextItem == null) - { - if (_MyHeader.CleanText.ToUpper().EndsWith("S")) - { - string origTxt = _MyHeader.CleanText; - _MyHeader.CleanText = _MyHeader.CleanText.Substring(0, _MyHeader.CleanText.Length - 1); - // Text may have rtf commands: - _MyHeader.Text = _MyHeader.Text.Replace(origTxt, _MyHeader.CleanText); - } - tbformat = ""; - } - else - { - if (MyPrevious != null) _MyHeader = null; - tbformat = ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IdentB; - TabToIdentBAdjustFont(); - - } - return tbformat; - } - - // If this has a previous, and the tabs of this & previous match - if (tbformat != null && MyPrevious != null && !FormatStepData.AlwaysTab && (!FormatStepData.MixCautionsAndNotes || (tbformat == prevTbFormat))) - { - tbformat = tbformat + ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IdentB; - TabToIdentBAdjustFont(); - } - // else if this has a next - else if (tbformat != null && NextItem != null && !FormatStepData.AlwaysTab && - (!FormatStepData.MixCautionsAndNotes || - (FormatStepData.TabData.UsePreviousStyle && !nextStepData.TabData.UsePreviousStyle && tbformat == nextTbFormat) || - ((prevTbFormat != tbformat && (NextItem.MyContent.Type == (int)(MyContent.Type % 10000)))))) - { - tbformat = tbformat + ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IdentB; - _MyTab.RemovedStyleUnderline = true; - TabToIdentBAdjustFont(); - } - return tbformat; - } - - private void TabToIdentBAdjustFont() - { - if ((FormatStepData.TabData.Font.Style & E_Style.Underline) > 0) - { - FontStyle style = FontStyle.Regular; - if ((FormatStepData.TabData.Font.Style & E_Style.Bold) > 0) style |= FontStyle.Bold; - if ((FormatStepData.TabData.Font.Style & E_Style.Italics) > 0) style |= FontStyle.Italic; - _MyTab.MyFont.WindowsFont = new Font(FormatStepData.TabData.Font.WindowsFont.FontFamily, FormatStepData.TabData.Font.WindowsFont.Size, style); - } - } - private string AlphabeticalNumbering(int number) - { - string retval = string.Empty; - if (number > 26) retval += Letter((number - 1) / 26); - retval += Letter(1 + ((number - 1) % 26)); - return retval; - } - private string Letter(int number) - { - char c = (char)(number + 64); - return c.ToString(); - } - private enum RomanOffset : int - { - Hundreds = 2, - Tens = 4, - Units = 6 - } - private string _Romans = "MDCLXVI"; - private string RomanPart(RomanOffset offset, int value) - { - int iFive = value / 5; - int iUnits = value % 5; - int iFour = iUnits / 4; - return _Romans.Substring(((int)offset), iFour) + - _Romans.Substring(((int)offset) - iFive - iFour, iFive | iFour) + - "".PadRight(iUnits % 4, _Romans[((int)offset)]); - } - private string RomanNumbering(int number) - { - int thousands = number / 1000; - int hundreds = (number % 1000) / 100; - int tens = (number % 100) / 10; - int units = number % 10; - return "".PadRight(thousands, _Romans[0]) + - RomanPart(RomanOffset.Hundreds, hundreds) + - RomanPart(RomanOffset.Tens, tens) + - RomanPart(RomanOffset.Units, units); - } - public static void ResetTabString(int itemID) - { - ConvertListToDictionary(); - string key = itemID.ToString(); - if (key != null && _CacheByPrimaryKey.ContainsKey(key)) - { - ItemInfo[] items = _CacheByPrimaryKey[key].ToArray(); - foreach (ItemInfo item in items) - { - item._TagsSetup = false; - } - } - } - #endregion - #region ParentNoteOrCaution - private bool _ParentNoteOrCautionLoaded = false; - private ItemInfo _ParentNoteOrCaution; - public ItemInfo ParentNoteOrCaution - { - get - { - if (!_ParentNoteOrCautionLoaded) - { - ItemInfo parent = ActiveParent as ItemInfo; - if (parent != null) - { - if (parent.IsCautionPart || parent.IsNotePart) - _ParentNoteOrCaution = parent; - else if(!parent.IsHigh) - { - _ParentNoteOrCaution = parent.ParentNoteOrCaution; - } - } - _ParentNoteOrCautionLoaded = true; - } - return _ParentNoteOrCaution; - } - } - #endregion - #region Macro List - [NonSerialized] - protected List _MyMacros; - protected bool _MacrosSetup = false; - public List MyMacros - { - get - { - if (!_MacrosSetup) SetupMacros(); - return _MyMacros; - } - set - { - _MyMacros = value; - } - } - private void SetupMacros() - { - if (FormatStepData == null) return; - // see if each macro should be printed based on its attributes and the item we're on. - // Attributes to check are NotInRNO, i.e. only add this macro to the result list if - // the item is not in the RNO column. Also, Groupings is used to only have the macro if - // there are N or more of the type in the grouping. - List tmp = new List(); - StepData myStepData = (FormatStepData.TextSubFollowsTextStyle && ParentNoteOrCaution != null) ? ParentNoteOrCaution.FormatStepData : FormatStepData; - // foreach (Macro macro in ActiveFormat.PlantFormat.FormatData.StepDataList[FormatStepType].TabData.MacroList) - foreach (Macro macro in myStepData.TabData.MacroList) - { - bool addToList = true; - if (macro.NotInRNO && IsInRNO) addToList = false; - if (macro.Grouping != null && macro.Grouping > 0) - { - int count = 0; - ItemInfo ii = FirstSibling; - while (ii != null) - { - if (ii.MyContent.Type == MyContent.Type) count++; - ii = ii.NextItem; - } - if (count <= macro.Grouping) addToList = false; - } - if (addToList) tmp.Add(macro); - } - if (tmp.Count > 0) _MyMacros = tmp; - } - #endregion - #region CheckOffs - private string _SectionCheckOffHeader; - public string SectionCheckOffHeader - { - get - { - if (_SectionCheckOffHeader == null) - { - // first check if format has checkoff data, including checkoffheaders. - ProcData pd = ActiveFormat.PlantFormat.FormatData.ProcData; - if (pd.CheckOffData == null || pd.CheckOffData.CheckOffHeaderList == null || pd.CheckOffData.CheckOffHeaderList.Count <= 1) _SectionCheckOffHeader = string.Empty; - else - { - SectionConfig sc = ActiveSection.MyConfig as SectionConfig; - if (sc == null) _SectionCheckOffHeader = string.Empty; - else if (sc.Section_CheckoffHeaderSelection <= 0) _SectionCheckOffHeader = string.Empty; - else - { - _SectionCheckOffHeader = pd.CheckOffData.CheckOffHeaderList[sc.Section_CheckoffHeaderSelection].CheckOffHeading; - if (_SectionCheckOffHeader.Contains("{NO HEADING}")) _SectionCheckOffHeader = string.Empty; - } - } - } - return _SectionCheckOffHeader; - } - } - public bool SectionHasCheckOffs() - { - // To determine if the section has a checkoff... - // Section won't have checkoffs if there is no checkofflist, or - ProcData pd = ActiveFormat.PlantFormat.FormatData.ProcData; - if (pd.CheckOffData == null || pd.CheckOffData.CheckOffList == null || pd.CheckOffData.CheckOffList.Count <= 0) return false; - if (pd.CheckOffData.CheckOffHeaderList == null || pd.CheckOffData.CheckOffHeaderList.Count <= 1) return true; - //if (pd.CheckOffData == null || pd.CheckOffData.CheckOffHeaderList == null || pd.CheckOffData.CheckOffHeaderList.Count <= 1) return false; - - // To find whether the step has a checkoff, first check that the section - // has a check off header. If it doesn't, just return -1. - // if config item is set for checkoffindex, use it. If it == 0, then use - // the section default. - SectionConfig sc = ActiveSection.MyConfig as SectionConfig; - if (sc == null) return false; - if (sc.Section_CheckoffHeaderSelection < 0) return false; - return true; - } - private int CheckOffIndex() - { - StepConfig stc = MyConfig as StepConfig; - if (stc == null) return 0; //section default. - if (stc != null && stc.Step_CheckOffIndex == 1) return -1; // index of 1, always means 'No Checkoff' - return stc.Step_CheckOffIndex; - } - private int SectionDefaultCheckOffIndex() - { - ProcData pd = ActiveFormat.PlantFormat.FormatData.ProcData; - if (pd.CheckOffData != null && pd.CheckOffData.CheckOffList != null && pd.CheckOffData.CheckOffList.Count == 2) return 0; // if only two items, first is macro - use it. - SectionConfig sc = ActiveSection.MyConfig as SectionConfig; - return sc.Section_CheckoffListSelection; - } - public CheckOff GetCheckOffStep() - { - if (!IsStep || !SectionHasCheckOffs()) return null; - int stpCoIndx = CheckOffIndex(); // this step has a checkoff defined - if (stpCoIndx == -1) return null; - if (stpCoIndx > 1) return ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffList[stpCoIndx]; - int sectCoIndx = SectionDefaultCheckOffIndex(); // no checkoff on step, see if there is a section default. - if (sectCoIndx == -1) return null; - if ((ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffOnHLSOnly && IsHigh) - || (!ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffOnHLSOnly && IsLowestLevelStep() && !RNOsHighHasCheckOff())) - return ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffList[sectCoIndx]; - return null; - } - private bool IsLowestLevelStep() - { - // This test only checks if using the section default, otherwise the code above, uses what the checkoff - // that is set in the config. - StepConfig stc = MyConfig as StepConfig; - if (stc != null && stc.Step_CheckOffIndex == 0) - { - if (!(IsCaution || IsNote || IsTable || Steps != null || MyParent.IsCaution || MyParent.IsNote)) return true; - } - return false; - } - private bool RNOsHighHasCheckOff() - { - // If this is a High Level Step's RNO, the checkoff would be placed on the HLS, not the RNO. - if (IsRNOPart && MyParent.IsHigh && MyParent.CheckOffIndex() != -1) return true; - return false; - } - #endregion - #region JCB Item Status - private bool _IsItemNew = false; - public bool IsItemNew - { - get - { - ProcedureInfo pi = this.MyProcedure; - if (pi != null) - _IsItemNew = (this.DTS > pi.DTS); - return _IsItemNew; - } - } - private bool _IsItemChanged; - public bool IsItemChanged - { - get - { - ProcedureInfo pi = this.MyProcedure; - if (pi != null) - _IsItemChanged = (this.MyContent.DTS > pi.DTS); - return _IsItemChanged; - } - } - #endregion - } - #endregion ItemInfo - #region Tab - public class MetaTag - { - public VE_Font MyFont; - public ContentAlignment Justify = ContentAlignment.MiddleLeft; - public string Text; // may include tokens, such as macros for circles/diamonds, etc - public string CleanText; // all tokens removed - public MetaTag() - { - } - public MetaTag(VE_Font font) - { - MyFont = new VE_Font(font.XmlNode); - } - } - public class Tab : MetaTag - { - private bool _RemovedStyleUnderline = false; - public bool RemovedStyleUnderline - { - get { return _RemovedStyleUnderline; } - set { _RemovedStyleUnderline = value; } - } - public Tab(VE_Font font) - { - MyFont = font; - } - public int Offset; - private static Regex _ReplaceSymbols = new Regex("^[^0-9A-Za-z]*"); // trim anything that isn't an ascii alpha/numeric from the beginning - public string CleanTextNoSymbols - { - get - { - // this trims off any symbols at the start of the tab - return _ReplaceSymbols.Replace(CleanText, ""); - } - } - - } - public class Header : MetaTag - { - } - #endregion - #region ItemInfoList - public partial class ItemInfoList - { - //public void ToXml(XmlNode xn) - //{ - // foreach (ItemInfo itemInfo in this) - // { - // itemInfo.ToXml(xn); - // } - //} - internal ItemInfoList(ItemInfo itemInfo) - { - AddItem(itemInfo); - } - public static ItemInfoList GetList(int? itemID,int type) - { - try - { - ItemInfoList tmp = DataPortal.Fetch(new ItemListCriteria(itemID,type)); - ItemInfo.AddList(tmp); - tmp.AddEvents(); -#if (!ItemWithContent) // If ItemWithContent is set, the content is returned with the ItemInfoList - ContentInfoList.GetList(itemID); // Performance - Load All Content -#endif - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - public static ItemInfoList GetListByPartType(E_FromType fromType) - { - try - { - ItemInfoList tmp = DataPortal.Fetch(new ItemListPartTypeCriteria(fromType)); - ItemInfo.AddList(tmp); - tmp.AddEvents(); -#if (!ItemWithContent) // If ItemWithContent is set, the content is returned with the ItemInfoList - ContentInfoList.GetList(itemID); // Performance - Load All Content -#endif - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - [Serializable()] - private class ItemListCriteria - { - public ItemListCriteria(int? itemID,int type) - { - _ItemID = itemID; - _Type = type; - } - private int? _ItemID; - public int? ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private int _Type; - public int Type - { - get { return _Type; } - set { _Type = value; } - } - } - [Serializable()] - private class ItemListPartTypeCriteria - { - public ItemListPartTypeCriteria(E_FromType type) - { - _Type = type; - } - private E_FromType _Type; - public E_FromType Type - { - get { return _Type; } - set { _Type = value; } - } - } - private void DataPortal_Fetch(ItemListCriteria criteria) - { - this.RaiseListChangedEvents = false; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; -#if ItemWithContent - cm.CommandText = "vesp_ListItemsAndContent"; -#else - cm.CommandText = "vesp_ListItems"; -#endif - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) - { - ItemInfo itemInfo = null; - switch ((E_FromType)criteria.Type) - { - case E_FromType.Procedure: - itemInfo = new ProcedureInfo(dr); - break; - case E_FromType.Section: - itemInfo = new SectionInfo(dr); - break; - default: - itemInfo = new StepInfo(dr); - break; - } - 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; - } - private void DataPortal_Fetch(ItemListPartTypeCriteria criteria) - { - this.RaiseListChangedEvents = false; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; -#if ItemWithContent - cm.CommandText = "getItemsByPartTypeAndContent"; -#else - cm.CommandText = "getItemsByPartType"; -#endif - cm.Parameters.AddWithValue("@FromType", (int) criteria.Type); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) - { - ItemInfo itemInfo = null; - switch (criteria.Type) - { - case E_FromType.Procedure: - itemInfo = new ProcedureInfo(dr); - break; - case E_FromType.Section: - itemInfo = new SectionInfo(dr); - break; - default: - itemInfo = new StepInfo(dr); - break; - } - 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; - } - internal void AddItem(ItemInfo itemInfo) - { - IsReadOnly = false; - this.Add(itemInfo); - IsReadOnly = true; - } - #region Text Search - public static ItemInfoList GetListFromTextSearch(string docVersionList, string stepTypeList, string searchString, int caseSensitive, ItemSearchIncludeLinks includeLinks, bool includeRtfFormatting, bool includeSpecialCharacters, string unitPrefix) - { - try - { - ItemInfoList tmp = DataPortal.Fetch(new ItemListSearchCriteria(docVersionList, stepTypeList, searchString, caseSensitive, includeLinks, includeRtfFormatting, includeSpecialCharacters,unitPrefix)); - ItemInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetListFromTextSearch", ex); - } - } - [Serializable()] - private class ItemListSearchCriteria - { - private string _DocVersionList; - public string DocVersionList - { - get { return _DocVersionList; } - set { _DocVersionList = value; } - } - private string _StepTypeList; - public string StepTypeList - { - get { return _StepTypeList; } - set { _StepTypeList = value; } - } - private string _SearchString; - public string SearchString - { - get { return _SearchString; } - set { _SearchString = value; } - } - private int _CaseSensitive; - public int CaseSensitive - { - get { return _CaseSensitive; } - set { _CaseSensitive = value; } - } - private ItemSearchIncludeLinks _IncludeLinks; - public ItemSearchIncludeLinks IncludeLinks - { - get { return _IncludeLinks; } - set { _IncludeLinks = value; } - } - private bool _IncludeRtfFormatting; - public bool IncludeRtfFormatting - { - get { return _IncludeRtfFormatting; } - set { _IncludeRtfFormatting = value; } - } - private bool _IncludeSpecialCharacters; - public bool IncludeSpecialCharacters - { - get { return _IncludeSpecialCharacters; } - set { _IncludeSpecialCharacters = value; } - } - private string _UnitPrefix; - - public string UnitPrefix - { - get { return _UnitPrefix; } - set { _UnitPrefix = value; } - } - public ItemListSearchCriteria(string docVersionList, string stepTypeList, string searchString, - int caseSensitive, ItemSearchIncludeLinks includeLinks, bool includeRtfFormatting, bool includeSpecialCharacters, string unitPrefix) - { - _DocVersionList = docVersionList; - _StepTypeList = stepTypeList; - _SearchString = searchString; - _CaseSensitive = caseSensitive; - _IncludeLinks = includeLinks; - _IncludeRtfFormatting = includeRtfFormatting; - _IncludeSpecialCharacters = includeSpecialCharacters; - _UnitPrefix = unitPrefix; - } - } - private void DataPortal_Fetch(ItemListSearchCriteria criteria) - { - this.RaiseListChangedEvents = false; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_SearchItemAndChildrenNew"; - cm.Parameters.AddWithValue("@DocVersionList", criteria.DocVersionList); - cm.Parameters.AddWithValue("@StepTypeList", criteria.StepTypeList); - cm.Parameters.AddWithValue("@SearchString", criteria.SearchString); - cm.Parameters.AddWithValue("@CaseSensitive", criteria.CaseSensitive); - cm.Parameters.AddWithValue("@IncludeLinks", (int) criteria.IncludeLinks); - cm.Parameters.AddWithValue("@IncludeRtfFormatting", criteria.IncludeRtfFormatting ? 1 : 0); - cm.Parameters.AddWithValue("@IncludeSpecialCharacters", criteria.IncludeSpecialCharacters ? 1 : 0); - cm.Parameters.AddWithValue("@UnitPrefix", criteria.UnitPrefix); - cm.CommandTimeout = 120; - 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._SearchDVPath = dr.GetString("DVPath"); - itemInfo._SearchPath = dr.GetString("Path"); - 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; - } - #endregion - #region RO Search - public static ItemInfoList GetListFromROSearch(string docVersionList, string stepTypeList, string roSearchString, string unitPrefix) - { - try - { - ItemInfoList tmp = DataPortal.Fetch(new ItemListROSearchCriteria(docVersionList, stepTypeList, roSearchString, unitPrefix)); - ItemInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - [Serializable()] - private class ItemListROSearchCriteria - { - private string _DocVersionList; - public string DocVersionList - { - get { return _DocVersionList; } - set { _DocVersionList = value; } - } - private string _StepTypeList; - public string StepTypeList - { - get { return _StepTypeList; } - set { _StepTypeList = value; } - } - private string _ROSearchString; - public string ROSearchString - { - get { return _ROSearchString; } - set { _ROSearchString = value; } - } - private string _UnitPrefix; - public string UnitPrefix - { - get { return _UnitPrefix; } - set { _UnitPrefix = value; } - } - public ItemListROSearchCriteria(string docVersionList, string stepTypeList, string roSearchString, string unitPrefix) - { - _DocVersionList = docVersionList; - _StepTypeList = stepTypeList; - _ROSearchString = roSearchString; - _UnitPrefix = unitPrefix; - } - } - private void DataPortal_Fetch(ItemListROSearchCriteria criteria) - { - this.RaiseListChangedEvents = false; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_SearchROItemAndChildren"; - cm.Parameters.AddWithValue("@DocVersionList", criteria.DocVersionList); - cm.Parameters.AddWithValue("@StepTypeList", criteria.StepTypeList); - cm.Parameters.AddWithValue("@ROSearchString", criteria.ROSearchString); - cm.Parameters.AddWithValue("@UnitPrefix", criteria.UnitPrefix); - 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._SearchDVPath = dr.GetString("DVPath"); - itemInfo._SearchPath = dr.GetString("Path"); - 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; - } - #endregion - #region Annotation Search - public static ItemInfoList GetListFromAnnotationSearch(string docVersionList, string stepTypeList, string annotationTypeList, string searchString, bool caseSensitive, string unitPrefix) - { - try - { - ItemInfoList tmp = DataPortal.Fetch(new ItemListAnnotationSearchCriteria(docVersionList, stepTypeList, annotationTypeList, searchString, caseSensitive, unitPrefix)); - ItemInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - [Serializable()] - private class ItemListAnnotationSearchCriteria - { - private string _DocVersionList; - public string DocVersionList - { - get { return _DocVersionList; } - set { _DocVersionList = value; } - } - private string _StepTypeList; - public string StepTypeList - { - get { return _StepTypeList; } - set { _StepTypeList = value; } - } - private string _AnnotationTypeList; - public string AnnotationTypeList - { - get { return _AnnotationTypeList; } - set { _AnnotationTypeList = value; } - } - private string _SearchString; - public string SearchString - { - get { return _SearchString; } - set { _SearchString = value; } - } - private bool _CaseSensitive; - public bool CaseSensitive - { - get { return _CaseSensitive; } - set { _CaseSensitive = value; } - } - private string _UnitPrefix; - public string UnitPrefix - { - get { return _UnitPrefix; } - set { _UnitPrefix = value; } - } - - public ItemListAnnotationSearchCriteria(string docVersionList, string stepTypeList, string annotationTypeList, string searchString, bool caseSensitive, string unitPrefix) - { - _DocVersionList = docVersionList; - _StepTypeList = stepTypeList; - _AnnotationTypeList = annotationTypeList; - _SearchString = searchString; - _CaseSensitive = caseSensitive; - _UnitPrefix = unitPrefix; - } - } - private void DataPortal_Fetch(ItemListAnnotationSearchCriteria criteria) - { - this.RaiseListChangedEvents = false; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_SearchAnnotationItemAndChildren"; - cm.Parameters.AddWithValue("@DocVersionList", criteria.DocVersionList); - cm.Parameters.AddWithValue("@StepTypeList", criteria.StepTypeList); - cm.Parameters.AddWithValue("@AnnotationTypeList", criteria.AnnotationTypeList); - cm.Parameters.AddWithValue("@SearchString", criteria.SearchString); - cm.Parameters.AddWithValue("@CaseSensitive", criteria.CaseSensitive ? 1 : 0); - cm.Parameters.AddWithValue("@UnitPrefix", criteria.UnitPrefix); - 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._SearchDVPath = dr.GetString("DVPath"); - itemInfo._SearchPath = dr.GetString("Path"); - itemInfo._SearchAnnotationID = dr.GetInt32("SearchAnnotationID"); - itemInfo._SearchAnnotationText = dr.GetString("SearchText"); - itemInfo._SearchAnnotationType = dr.GetString("AnnotationType"); - 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; - } - #endregion - } - #endregion - #region ProcedureInfo - [Serializable()] - public partial class ProcedureInfo : ItemInfo, IVEDrillDownReadOnly - { - public override void SetupTags() - { - base.SetupTags(); - } - protected override void RefreshFields(Item tmp) - { - base.RefreshFields(tmp); - ExtensionRefreshFields(tmp); - } -#if ItemWithContent - public ProcedureInfo(SafeDataReader dr) : base(dr, true) { } -#else - public ProcedureInfo(SafeDataReader dr) : base(dr) { } -#endif - private ProcedureInfo() : base() { ;} - public new static ProcedureInfo Get(int itemID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - ProcedureInfo tmp = GetCachedByPrimaryKey(itemID) as ProcedureInfo; - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - public void MoveProcedure(IVEDrillDownReadOnly pInfo, int index) - { - using (Item ii = Item.Get(this.ItemID)) - { - ii.MoveItem(pInfo, index); - } - } - public new Procedure Get() - { - return (Procedure) (_Editable = Procedure.Get(ItemID)); - } - #region ProcedureConfig - [NonSerialized] - private ProcedureConfig _ProcedureConfig; - public ProcedureConfig ProcedureConfig - { get { return (_ProcedureConfig != null ? _ProcedureConfig : _ProcedureConfig = new ProcedureConfig(this)); } } - #endregion - public new ConfigDynamicTypeDescriptor MyConfig - { - get { return ProcedureConfig ; } - set { _ProcedureConfig = null; } - } - public DocVersionInfo MyDocVersion - { - get { return ActiveParent as DocVersionInfo; } - } - } - #endregion - #region Procedure - [Serializable()] - public partial class Procedure : Item - { - public ProcedureInfo MyProcedureInfo /* Return Info version of the current Item */ - { get { return ProcedureInfo.Get(ItemID); } } - public new static Procedure Get(int itemID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - Item itm = GetCachedByPrimaryKey(itemID); - Procedure tmp = itm as Procedure; - //Procedure tmp = (Procedure)GetExistingByPrimaryKey(itemID); - if (tmp == null) - { - if (itm != null) Console.WriteLine("type = {0}", itm.GetType().Name); - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - public new Procedure Save() - { - return (Procedure)base.Save(); - } - public static Procedure MakeProcedure(IVEDrillDownReadOnly parentInfo, ItemInfo previousInfo, string procNumber, string procTitle, int procType) - { - int newitemid = MakeNewItem(parentInfo, previousInfo, procNumber, procTitle, procType, E_FromType.Procedure); - return Procedure.Get(newitemid); - } - #region ProcedureConfig - [NonSerialized] - private ProcedureConfig _ProcedureConfig; - public ProcedureConfig ProcedureConfig - { - get - { - if (_ProcedureConfig == null) - { - _ProcedureConfig = new ProcedureConfig(this); - _ProcedureConfig.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_ProcedureConfig_PropertyChanged); - } - return _ProcedureConfig; - } - } - private void _ProcedureConfig_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) - { - MyContent.Config = _ProcedureConfig.ToString(); - } - #endregion - } - #endregion - #region SectionInfo - [Serializable()] - public partial class SectionInfo : ItemInfo, IVEDrillDownReadOnly - { - public override void SetupTags() - { - MyTab = new Tab(ActiveFormat.PlantFormat.FormatData.SectData.SectionNumber.Font); - string sectTab = GetSectionTab(false); - _MyTab.Text = sectTab; - _MyTab.CleanText = sectTab.PadRight(20); - MyHeader = new MetaTag(ActiveFormat.PlantFormat.FormatData.SectData.SectionHeader.Font); - _MyHeader.Text = null; - MyFooter = null; - _TagsSetup = true; - } - private string GetSectionTab(bool underline) - { - if (DisplayNumber == null || DisplayNumber == "" || !IsStepSection) return DisplayNumber; - if (MyDocStyle.SpecialStepsFoldout) return DisplayNumber; - if (ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel) - { - if (underline) - return @"\ul " + DisplayNumber + @"\ul0 "; - else - return DisplayNumber; - } - string retStr = null; - string ch = DisplayNumber != null && DisplayNumber != "" ? DisplayNumber.Substring(0,1) : null; - int Snum = GetSectionNum(); - if (Snum == -1) - retStr = ch + "."; - else { - string tmp = DisplayNumber.IndexOf(".")>-1?DisplayNumber.Substring(0,DisplayNumber.IndexOf(".")):DisplayNumber; - if (underline) - retStr = @"\ul " + tmp + "." + Snum.ToString() + @"\ul0 "; - else - retStr = tmp + "." + Snum.ToString(); - } - return retStr; - } - - private int GetSectionNum() - { - int indx = -1; - if (DisplayNumber != null && DisplayNumber != "" && (indx = DisplayNumber.IndexOf("."))>-1) - { - // if there is a number after the '.', return it as a number. For example if it is 001, return a 1: - string tmpstr = indx+1 '9') return false; - return true; - } - // the following returns the 'index' into the format's CheckOffHeaderList. - // It returns a -1 if not set or none exist. - public int CheckOffHeadingIndex() - { - if (ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList == null || ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList.Count == 0) return -1; - SectionConfig sc = MyConfig as SectionConfig; - if (sc == null) return -1; - return sc.Section_CheckoffHeaderSelection; - } - protected override void RefreshFields(Item tmp) - { - base.RefreshFields(tmp); - ExtensionRefreshFields(tmp); - } -#if ItemWithContent - public SectionInfo(SafeDataReader dr) : base(dr, true) { } -#else - public SectionInfo(SafeDataReader dr) : base(dr) { } -#endif - private SectionInfo() : base() { ;} - public new static SectionInfo Get(int itemID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - SectionInfo tmp = GetCachedByPrimaryKey(itemID) as SectionInfo; - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - public void MoveSection(IVEDrillDownReadOnly pInfo, int index) - { - using (Item ii = Item.Get(this.ItemID)) - { - ii.MoveItem(pInfo, index); - } - } - public new Section Get() - { - return (Section)(_Editable = Section.Get(ItemID)); - } - - #region SectionConfig - [NonSerialized] - private SectionConfig _SectionConfig; - public SectionConfig SectionConfig - { get { return (_SectionConfig != null ? _SectionConfig : _SectionConfig = new SectionConfig(this)); } } - #endregion - public new ConfigDynamicTypeDescriptor MyConfig - { - get { return SectionConfig; } - set { _SectionConfig = null; } - } - } - #endregion - #region Section - [Serializable()] - public partial class Section : Item - { - public SectionInfo MySectionInfo /* Return Info version of the current Item */ - { get { return SectionInfo.Get(ItemID); } } - public new static Section Get(int itemID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - Section tmp = GetCachedByPrimaryKey(itemID) as Section; - if (tmp == null) - { - tmp = DataPortal.Fetch
    (new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - public new Section Save() - { - return (Section)base.Save(); - } - public static Section MakeSection(IVEDrillDownReadOnly parentInfo, ItemInfo previousInfo, string sectNumber, string sectTitle, int sectType) - { - int newitemid = MakeNewItem(parentInfo, previousInfo, sectNumber, sectTitle, sectType, E_FromType.Section); - return Section.Get(newitemid); - } - #region SectionConfig - [NonSerialized] - private SectionConfig _SectionConfig; - public SectionConfig SectionConfig - { - get - { - if (_SectionConfig == null) - { - _SectionConfig = new SectionConfig(this); - _SectionConfig.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_SectionConfig_PropertyChanged); - } - return _SectionConfig; - } - } - private void _SectionConfig_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) - { - MyContent.Config = _SectionConfig.ToString(); - ItemInfo.RefreshConfig(ItemID.ToString()); - } - #endregion - } - #endregion - #region StepInfo - [Serializable()] - public partial class StepInfo : ItemInfo - { - #region Tab - public override void SetupTags() - { - _TagsSetup = true; - MyTab = new Tab(AdjustForTextSubFollowsTextStyle(FormatStepData.TabData.Font)); - MyHeader = new MetaTag(FormatStepData.TabData.Font); - MyFooter = new MetaTag(FormatStepData.TabData.Font); - SetTabText(); - } - - #endregion - protected override void RefreshFields(Item tmp) - { - base.RefreshFields(tmp); - ExtensionRefreshFields(tmp); - } - //public override string ToString() - //{ - // return "Step " + base.ToString(); - //} -#if ItemWithContent - public StepInfo(SafeDataReader dr) : base(dr, true) { } -#else - public StepInfo(SafeDataReader dr) : base(dr) { } -#endif - private StepInfo() : base() { ;} - public new static StepInfo Get(int itemID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - StepInfo tmp = GetCachedByPrimaryKey(itemID) as StepInfo; - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - public void MoveStep(IVEDrillDownReadOnly pInfo, int index) - { - using (Item ii = Item.Get(this.ItemID)) - { - ii.MoveItem(pInfo, index); - } - } - public new Step Get() - { - return (Step)(_Editable = Step.Get(ItemID)); - } - //public E_FromType FromType - //{ get { return E_FromType.Step; } } - } - - #endregion - #region Step - [Serializable()] - public partial class Step : Item - { - public new static Step Get(int itemID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - Step tmp = (Step)GetCachedByPrimaryKey(itemID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - // TODO :MakeCaution; - // TODO :MakeNote; - // TODO :MakeRNO; - // TODO :MakeSection; - // TODO :MakeSubStep; - // TODO :MakeTable; - public static Step MakeStep(IVEDrillDownReadOnly parentInfo, ItemInfo previousInfo, string stepNumber, string stepTitle, int stepType, E_FromType fromType) - { - int newitemid = MakeNewItem(parentInfo, previousInfo, stepNumber, stepTitle, stepType, fromType); - return Step.Get(newitemid); - } - //#region StepConfig - //[NonSerialized] - //private StepConfig _StepConfig; - //public StepConfig StepConfig - //{ - // get - // { - // if (_StepConfig == null) - // { - // _StepConfig = new StepConfig(this); - // _StepConfig.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_StepConfig_PropertyChanged); - // } - // return _SectionConfig; - // } - //} - //private void _StepConfig_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) - //{ - // MyContent.Config = _StepConfig.ToString(); - //} - //#endregion - } - #endregion - public enum ItemSearchIncludeLinks - { - Nothing = 0, - Value = 1, - Everything =2 - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs.bak b/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs.bak deleted file mode 100644 index eebcb8e3..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.cs.bak +++ /dev/null @@ -1,1081 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.SqlClient; -using System.Text.RegularExpressions; -using Csla; -using Csla.Data; - -namespace VEPROMS.CSLA.Library -{ - public delegate void ItemInfoInsertEvent(object sender, ItemInfoInsertEventArgs args); - public class ItemInfoInsertEventArgs - { - private ItemInfo _ItemInserted; - public ItemInfo ItemInserted - { - get { return _ItemInserted; } - set { _ItemInserted = value; } - } - private ItemInfo.EAddpingPart _AddingPart; - public ItemInfo.EAddpingPart AddingPart - { - get { return _AddingPart; } - set { _AddingPart = value; } - } - public ItemInfoInsertEventArgs(ItemInfo itemInserted,ItemInfo.EAddpingPart addingPart) - { - _ItemInserted = itemInserted; - _AddingPart = addingPart; - } - } - public partial class ItemInfo - { - #region Old Insert - //public ItemInfo InsertSiblingBeforeOld(string text) - //{ - // return InsertSiblingBefore(text, null); - //} - //public ItemInfo InsertSiblingBeforeOld(string text, string number) - //{ - // ItemInfo prevItemInfo = MyPrevious; - // ItemInfo newItemInfo = null; - // PartInfoList partInfoList = null; - // if (MyParent != null && MyParent.MyContent != null) - // { - // MyParent.MyContent.RefreshContentParts(); - // partInfoList = MyParent.MyContent.ContentParts; - // } - // using (Item prevItem = prevItemInfo == null ? null : prevItemInfo.Get()) // Get the previous Item - // { - // using (Item newItem = Item.MakeItem(prevItem, Content.MakeContent(number, text, MyContent.Type, null, null))) // Create the new Item - // { - // using (Item thisItem = Get()) // Get the next item in the list - // { - // thisItem.MyPrevious = newItem; // Point to the new item - // thisItem.Save(); // Save Changes - // if (prevItem == null) - // { - // PartInfo partInfo = partInfoList.Find(this); - // using (Part part = partInfo.Get()) - // { - // part.MyItem = newItem; - // part.Save(); - // } - // } - // } - // // ToDo: Need change PartInfo in PartInfoList - // newItemInfo = ItemInfo.Get(newItem.ItemID); - // newItemInfo.ResetOrdinal(); - // } - // } - // return newItemInfo; - //} - //public ItemInfo InsertSiblingAfterOld(string text) - //{ - // return InsertSiblingAfter(text, null); - //} - //public ItemInfo InsertSiblingAfterOld(string text, string number) - //{ - // return InsertSiblingAfter(text, number, MyContent.Type); - //} - //public ItemInfo InsertSiblingAfterOld(string text, string number, int? type) - //{ - // ItemInfo nextItemInfo = NextItem; - // ItemInfo newItemInfo = null; - // using (Item thisItem = Get()) // Get the Current Item - // { - // using (Item newItem = Item.MakeItem(thisItem, Content.MakeContent(number, text, type, null, null))) // Create the new Item - // { - // if (nextItemInfo != null) // Simple case, adding to end of list: - // using (Item nextItem = nextItemInfo.Get()) // Get the next item in the list - // { - // nextItem.MyPrevious = newItem; // Point to the new item - // nextItem.Save(); // Save Changes - // } - // // ToDo: Need change PartInfo in PartInfoList - // newItemInfo = ItemInfo.Get(newItem.ItemID); - // newItemInfo.ResetOrdinal(); - // } - // } - // return newItemInfo; - //} - //public ItemInfo InsertChildOld(E_FromType fromType, int type, string text) - //{ - // return InsertChild(fromType, type, text, null); - //} - //public ItemInfo InsertChildOld(E_FromType fromType, int type, string text, string number) - //{ - // ItemInfo newItemInfo = null; - // using (Item thisItem = Get()) // Get the Current Item - // { - // using (Item newItem = Item.MakeItem(null, Content.MakeContent(number, text, type, null, null))) // Create the new Item - // { - // PartInfo partInfo = MyContent.ContentParts == null ? null : MyContent.ContentParts.Find(fromType); - // if (partInfo != null) - // { - // //this could be equivalent to adding a sibling with a specific type - // using (Part part = partInfo.Get()) - // { - // part.MyItem.MyPrevious = newItem; - // part.MyItem.Save(); - // part.MyItem = newItem; - // part.Save(); - // } - // } - // else - // { - // // This means that a part needs to be added to point to the new item - // //using (Part part = Part.MakePart(thisItem.MyContent, )) - // //{ ;} - // thisItem.MyContent.ContentParts.Add((int)fromType, newItem); - // thisItem.Save(); - // } - // newItemInfo = ItemInfo.Get(newItem.ItemID); - // } - // } - // ResetParts(); - // return newItemInfo; - //} - #endregion - #region Events - public event ItemInfoEvent BeforeDelete; - public void OnBeforeDelete() - { - OnBeforeDelete(ItemID); - - if (MyContent.ContentPartCount > 0) - { - foreach (PartInfo pi in MyContent.ContentParts) - { - foreach (ItemInfo ii in pi.MyItems) - { - ii.OnBeforeDelete(); - } - } - } - //if (ItemPartCount > 0) - //{ - // foreach (PartInfo pi in ItemParts) - // { - // foreach (ItemInfo ii in pi.MyItems) - // { - // ii.OnBeforeDelete(); - // } - // } - //} - } - - private void OnBeforeDelete(int ItemID) - { - if (_CacheByPrimaryKey.ContainsKey(ItemID.ToString())) - { - List itmlst = _CacheByPrimaryKey[ItemID.ToString()]; - foreach (ItemInfo itm in itmlst) - if (itm.BeforeDelete != null) - { - itm.BeforeDelete(itm); - } - } - } - public static event ItemInfoEvent ItemDeleted; - - public event ItemInfoEvent Deleted; - internal void OnDeleted(object sender) - { - if (Deleted != null) Deleted(sender); - if (ItemDeleted != null) ItemDeleted(sender); - if (MyParent != null) - { - MyParent.OnChildrenDeleted(sender); - MyParent.MyContent.RefreshContentParts(); - } - } - //internal void OnDeleted(object sender, Volian.Base.Library.VlnTimer tmr) - //{ - //tmr.ActiveProcess = "Deleted"; - //if (Deleted != null) Deleted(sender); - //tmr.ActiveProcess = "ItemDeleted"; - //if (ItemDeleted != null) ItemDeleted(sender); - //if (MyParent != null) - //{ - //tmr.ActiveProcess = "OnChildrenDeleted"; - //MyParent.OnChildrenDeleted(sender); - //tmr.ActiveProcess = "RefreshContentParts"; - //MyParent.MyContent.RefreshContentParts(); - //} - //} - public event ItemInfoEvent ChildrenDeleted; - internal void OnChildrenDeleted(object sender) - { - if (_CacheByPrimaryKey.ContainsKey(ItemID.ToString())) - { - List itmlst = _CacheByPrimaryKey[ItemID.ToString()]; - foreach (ItemInfo itm in itmlst) - if (itm.ChildrenDeleted != null) - { - itm.ChildrenDeleted(itm); - } - } - } - public event ItemInfoInsertEvent NewSiblingAfter; - internal void OnNewSiblingAfter(object sender, ItemInfoInsertEventArgs args) - { - if (NewSiblingAfter != null) NewSiblingAfter(sender,args); - if (MyParent != null) - MyParent.MyContent.RefreshContentParts(); - } - internal void OnNewSiblingAfter(ItemInfoInsertEventArgs args) - { - string key = ItemID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) - { - ItemInfo[] items = _CacheByPrimaryKey[key].ToArray(); - foreach (ItemInfo item in items) - { - item.OnNewSiblingAfter(item,args); - } - } - } - public event ItemInfoInsertEvent NewSiblingBefore; - internal void OnNewSiblingBefore(object sender, ItemInfoInsertEventArgs args) - { - if (NewSiblingBefore != null) NewSiblingBefore(sender,args); - if (MyParent != null) - MyParent.MyContent.RefreshContentParts(); - } - internal void OnNewSiblingBefore(ItemInfoInsertEventArgs args) - { - string key = ItemID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) - { - ItemInfo[] items = _CacheByPrimaryKey[key].ToArray(); - foreach (ItemInfo item in items) - { - item.OnNewSiblingBefore(item,args); - } - } - } - public event ItemInfoInsertEvent NewChild; - internal void OnNewChild(object sender, ItemInfoInsertEventArgs args) - { - if (NewChild != null) NewChild(sender, args); - MyContent.RefreshContentParts(); - } - internal void OnNewChild(ItemInfoInsertEventArgs args) - { - string key = ItemID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) - { - ItemInfo[] items = _CacheByPrimaryKey[key].ToArray(); - foreach (ItemInfo item in items) - { - item.OnNewChild(item, args); - } - } - } - #endregion - #region Insert Before - public ItemInfo InsertSiblingBefore(string text) - { - return InsertSiblingBefore(text, null); - } - public ItemInfo InsertSiblingBefore(string text, string number) - { - ItemInfo tmp = NewItemInfoFetch(ItemID, EAddpingPart.Before, number, text, null, null, null, null, DateTime.Now, Volian.Base.Library.VlnSettings.UserID); - // this item is updated in SQL so we have to manually force the iteminfo updates - // Refresh ItemInfo to update Previous - using (Item item = Get()) ItemInfo.Refresh(item); - // Update all of the content records that have transitions that point to the Siblings or Sibling Children of the new item - tmp.UpdateTransitionText(); - OnNewSiblingBefore(new ItemInfoInsertEventArgs(tmp, EAddpingPart.Before)); - ((ItemInfo)ActiveParent).MyContent.RefreshContentParts(); - return tmp; - } - #endregion - #region PasteSiblingBefore - public ItemInfo PasteSiblingBefore(int copyStartID) - { - // To determine 'type' of pasted item, if it's a step (type >=20000), use the originating - // item, i.e. item inserting after. If it's a section or procedure, use the copied item's type. - ItemInfo cpItem = ItemInfo.Get(copyStartID); - int? type = MyContent.Type >= 20000 ? MyContent.Type : cpItem.MyContent.Type; - ItemInfo tmp = CopyPasteItemInfoFetch(copyStartID, this.ItemID, type, type, EAddpingPart.Before); - using (Item item = Get()) ItemInfo.Refresh(item); - tmp.UpdateTransitionText(); - tmp.UpdatePastedStepTransitionText(); - OnNewSiblingBefore(new ItemInfoInsertEventArgs(tmp, EAddpingPart.Before)); - return tmp; - } - public ItemInfo PasteSiblingAfter(int copyStartID) - { - // To determine 'type' of pasted item, if it's a step (type >=20000), use the originating - // item, i.e. item inserting after. If it's a section or procedure, use the copied item's type. - ItemInfo cpItem = ItemInfo.Get(copyStartID); - int? type = MyContent.Type >= 20000 ? MyContent.Type : cpItem.MyContent.Type; - ItemInfo tmp = CopyPasteItemInfoFetch(copyStartID, this.ItemID, type, type, EAddpingPart.After); - using (Item item = Get()) ItemInfo.Refresh(item); - if (tmp.NextItem != null) using (Item item = tmp.NextItem.Get()) ItemInfo.Refresh(item); - RefreshNextItems(); - // if inserting after a caution or note, refreshes tabs. This will adjust bullets - // of any previous cautions or notes. - if (tmp.IsCaution || tmp.IsNote) ResetOrdinal(); - tmp.UpdateTransitionText(); - tmp.UpdatePastedStepTransitionText(); - OnNewSiblingAfter(new ItemInfoInsertEventArgs(tmp, EAddpingPart.After)); - return tmp; - } - private ItemInfo CopyPasteItemInfoFetch(int copyStartID, int itemID, int? type, int? fromType, EAddpingPart addType) - { - ItemInfo tmp=null; - if (addType == EAddpingPart.Child) // has to add in child relationship - uses 'fromtype' - { - // adding children. Type is based on 'fromType' - switch ((E_FromType)fromType) - { - case E_FromType.Procedure: - tmp = DataPortal.Fetch(new PastingPartCriteria(copyStartID, itemID, addType, type, fromType, DateTime.Now, Volian.Base.Library.VlnSettings.UserID)); - break; - case E_FromType.Section: - tmp = DataPortal.Fetch(new PastingPartCriteria(copyStartID, itemID, addType, type, fromType, DateTime.Now, Volian.Base.Library.VlnSettings.UserID)); - break; - default: - tmp = DataPortal.Fetch(new PastingPartCriteria(copyStartID, itemID, addType, type, fromType, DateTime.Now, Volian.Base.Library.VlnSettings.UserID)); - break; - } - } - else - { - if (GetType() == typeof(ProcedureInfo)) - tmp = DataPortal.Fetch(new PastingPartCriteria(copyStartID, itemID, addType, type, fromType, DateTime.Now, Volian.Base.Library.VlnSettings.UserID)); - else if (GetType() == typeof(SectionInfo)) - tmp = DataPortal.Fetch(new PastingPartCriteria(copyStartID, itemID, addType, type, fromType, DateTime.Now, Volian.Base.Library.VlnSettings.UserID)); - else - tmp = DataPortal.Fetch(new PastingPartCriteria(copyStartID, itemID, addType, type, fromType, DateTime.Now, Volian.Base.Library.VlnSettings.UserID)); - } - return tmp; - - } - #endregion - #region Insert After - public ItemInfo InsertSiblingAfter(string text) - { - return InsertSiblingAfter(text, null); - } - public ItemInfo InsertSiblingAfter(string text, string number) - { - return InsertSiblingAfter(text, number, MyContent.Type); - } - public ItemInfo InsertSiblingAfter(string text, string number, int? type) - { - ItemInfo tmp = NewItemInfoFetch(ItemID, EAddpingPart.After, number, text, type, null, null, null, DateTime.Now, Volian.Base.Library.VlnSettings.UserID); - //tmp = DataPortal.Fetch(new AddingPartCriteria(ItemID, EAddpingPart.After, number, text, type, null, null, null, DateTime.Now, Volian.Base.Library.VlnSettings.UserID)); - // if next exists, it is updated in SQL so we have to manually force the iteminfo updates - // Refresh ItemInfo to update PreviousID field - if (tmp.NextItem != null) using (Item item = tmp.NextItem.Get()) ItemInfo.Refresh(item); - RefreshNextItems(); - // if inserting after a caution or note, refreshes tabs. This will adjust bullets - // of any previous cautions or notes. - if (tmp.IsCaution || tmp.IsNote) ResetOrdinal(); - // Update all of the content records that have transitions that point to the Siblings or Sibling Children of the new item - tmp.UpdateTransitionText(); - OnNewSiblingAfter(new ItemInfoInsertEventArgs(tmp, EAddpingPart.After)); - return tmp; - } - - private ItemInfo NewItemInfoFetch(int itemID, EAddpingPart addType, string number, string text, int? type, int? fromType, int? formatID, string config, DateTime dts, string userID) - { - ItemInfo tmp; - if (addType == EAddpingPart.Child) - { - // adding children. Type is based on 'fromType' - switch ((E_FromType)fromType) - { - case E_FromType.Procedure: - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - break; - case E_FromType.Section: - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - break; - default: - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - break; - } - } - else - { - if (GetType() == typeof(ProcedureInfo)) - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - else if (GetType() == typeof(SectionInfo)) - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - else - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - } - return tmp; - } - public void UpdateTransitionText() - { - // Update Ordinals from here down for Steps - if (!IsStep) return; - ResetOrdinal(); - // This returns a list of all of the transitions that may have been affected - using(TransitionInfoList trans = TransitionInfoList.GetAffected(this.ItemID)) - { - #region B2012-071 fix JCB - foreach (TransitionInfo tran in trans) - { - Content oldContent = null; - using (Content content = tran.MyContent.Get()) - { - if (oldContent != null && content.ContentID != oldContent.ContentID) - { - if (oldContent.IsDirty) - { - oldContent.DTS = DateTime.Now; - #region B2012-079 fix JCB - oldContent.UserID = Volian.Base.Library.VlnSettings.UserID + " - Renumber"; - #endregion B2012-079 fix JCB - oldContent.Save(); - } - else // Update ContentInfo objects to reflect the change in the transition - ContentInfo.Refresh(oldContent); - oldContent = content; - } - if (oldContent == null) oldContent = content; - oldContent.FixTransitionText(tran); - //if (content.IsDirty) - //{ - // content.DTS = DateTime.Now; - // content.Save(); - //} - if (oldContent != null) - { - if (oldContent.IsDirty) - { - oldContent.DTS = DateTime.Now; - #region B2012-079 fix JCB - oldContent.UserID = Volian.Base.Library.VlnSettings.UserID + " - Renumber"; - #endregion B2012-079 fix JCB - oldContent.Save(); - } - else // Update ContentInfo objects to reflect the change in the transition - ContentInfo.Refresh(oldContent); - } - } - } - - #endregion B2012-071 fix JCB - } - } - public void UpdatePastedStepTransitionText() - { - // Get a list of all of the transitions included in this step & its children. - // Their transition text may have been affected, i.e. depending on the format, etc - using (TransitionInfoList trans = TransitionInfoList.GetPastedAffected(this.ItemID)) - { - foreach (TransitionInfo tran in trans) - { - using (Content content = tran.MyContent.Get()) - { - content.FixTransitionText(tran); - if (content.IsDirty) - content.Save(); - else // Update ContentInfo objects to reflect the change in the transition - ContentInfo.Refresh(content); - } - } - } - } - #endregion - #region Insert Child - public ItemInfo InsertChild(E_FromType fromType, int type, string text) - { - return InsertChild(fromType, type, text, null); - } - public ItemInfo InsertChild(E_FromType fromType, int type, string text, string number) - { - ItemInfo tmp = NewItemInfoFetch(ItemID, EAddpingPart.Child, number, text, type, (int?)fromType, null, null, DateTime.Now, Volian.Base.Library.VlnSettings.UserID); - // if next exists, it is updated in SQL so we have to manually force the iteminfo updates - // Refresh ItemInfo to update PreviousID field - if (tmp.NextItem != null) using (Item item = tmp.NextItem.Get()) ItemInfo.Refresh(item); - // Update all of the content records that have transitions that point to the Siblings or Sibling Children of the new item - tmp.UpdateTransitionText(); - MyContent.RefreshContentParts(); - OnNewChild(new ItemInfoInsertEventArgs(tmp, EAddpingPart.Child)); - return tmp; - } - #endregion - #region DataPortal - private void DataPortal_Fetch(PastingPartCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - ApplicationContext.LocalContext["cn"] = cn; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.Parameters.AddWithValue("@StartItemID", criteria.StartItemID); - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); //ABC After Before Child - cm.Parameters.AddWithValue("@Type", criteria.Type); //ABC - cm.Parameters.AddWithValue("@DTS", criteria.DTS); //ABC - cm.Parameters.AddWithValue("@UserID", criteria.UserID); //ABC - SqlParameter param_ContentID = new SqlParameter("@NewItemID", SqlDbType.Int); - param_ContentID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_ContentID); - switch (criteria.AddType) - { - case EAddpingPart.Child: - //cm.CommandText = "addItemChild"; - //cm.Parameters.AddWithValue("@FromType", criteria.FromType); //--C - break; - case EAddpingPart.Before: - cm.CommandText = "PasteItemSiblingBefore"; - break; - case EAddpingPart.After: - cm.CommandText = "PasteItemSiblingAfter"; - break; - case EAddpingPart.Replace: - cm.CommandText = "PasteItemReplace"; - break; - } - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - //newItemID = (int)cm.Parameters["@newContentID"].Value; - 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("ItemInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ItemInfo.DataPortal_Fetch", ex); - } - } - private void DataPortal_Fetch(AddingPartCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - ApplicationContext.LocalContext["cn"] = cn; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); //ABC After Before Child - cm.Parameters.AddWithValue("@Number", criteria.Number); //ABC - cm.Parameters.AddWithValue("@Text", criteria.Text); //ABC - cm.Parameters.AddWithValue("@FormatID", criteria.FormatID); //ABC - cm.Parameters.AddWithValue("@Config", criteria.Config); //ABC - cm.Parameters.AddWithValue("@Type", criteria.Type); //ABC - cm.Parameters.AddWithValue("@DTS", criteria.DTS); //ABC - cm.Parameters.AddWithValue("@UserID", criteria.UserID); //ABC - SqlParameter param_ContentID = new SqlParameter("@newItemID", SqlDbType.Int); - param_ContentID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_ContentID); - switch (criteria.AddType) - { - case EAddpingPart.Child: - cm.CommandText = "addItemChild"; - cm.Parameters.AddWithValue("@FromType", criteria.FromType); //--C - break; - case EAddpingPart.Before: - cm.CommandText = "addItemSiblingBefore"; - break; - case EAddpingPart.After: - cm.CommandText = "addItemSiblingAfter"; - break; - } - cm.CommandTimeout = Database.DefaultTimeout; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - //newItemID = (int)cm.Parameters["@newContentID"].Value; - 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("ItemInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ItemInfo.DataPortal_Fetch", ex); - } - } - #endregion - #region PastingPartCriteria - [Serializable()] - public class PastingPartCriteria - { - #region Properties - private int _StartItemID; - public int StartItemID - { - get { return _StartItemID; } - set { _StartItemID = value; } - } - //private int _CopyEndID; - //public int CopyEndID - //{ - // get { return _CopyEndID; } - // set { _CopyEndID = value; } - //} - private int _ItemID; // paste relative to this itemid - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private EAddpingPart _AddType; - public EAddpingPart AddType - { - get { return _AddType; } - set { _AddType = value; } - } - private int? _FromType = null; - public int? FromType - { - get { return _FromType; } - set { _FromType = value; } - } - private int? _Type = null; - public int? Type - { - get { return _Type; } - set { _Type = value; } - } - private DateTime _DTS; - public DateTime DTS - { - get { return _DTS; } - set { _DTS = value; } - } - private string _UserID; - public string UserID - { - get { return _UserID; } - set { _UserID = value; } - } - #endregion - #region Constructor - public PastingPartCriteria(int startItemid, int itemID, EAddpingPart addType, int? type, int? fromType, DateTime dts, string userID) - { - _StartItemID = startItemid; - _ItemID = itemID; - _AddType = addType; - _Type = type; - _FromType = fromType; - _DTS = dts; - _UserID = userID; - } - #endregion - } - #endregion - [Serializable()] - protected class AddingPartCriteria - { - #region Properties - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private EAddpingPart _AddType; - public EAddpingPart AddType - { - get { return _AddType; } - set { _AddType = value; } - } - private string _Number=null; - public string Number - { - get { return _Number; } - set { _Number = value; } - } - private string _Text=null; - public string Text - { - get { return _Text; } - set { _Text = value; } - } - private int? _FromType = null; - public int? FromType - { - get { return _FromType; } - set { _FromType = value; } - } - private int? _Type=null; - public int? Type - { - get { return _Type; } - set { _Type = value; } - } - private int? _FormatID=null; - public int? FormatID - { - get { return _FormatID; } - set { _FormatID = value; } - } - private string _Config=null; - public string Config - { - get { return _Config; } - set { _Config = value; } - } - private DateTime _DTS; - public DateTime DTS - { - get { return _DTS; } - set { _DTS = value; } - } - private string _UserID; - public string UserID - { - get { return _UserID; } - set { _UserID = value; } - } - #endregion - #region Constructor - public AddingPartCriteria(int itemID, EAddpingPart addType, string number, string text, int? type, int? fromType, int? formatID, string config, DateTime dts, string userID) - { - _ItemID = itemID; - _AddType = addType; - _Number = number; - _Text = text; - _Type = type; - _FromType = fromType; - _FormatID = formatID; - _Config = config; - _DTS = dts; - _UserID = userID; - } - #endregion - } - public enum EAddpingPart - { - Child=0, - Before=1, - After=2, - Replace=3 - } - public ItemInfo NextItem - { - get - { - if (NextItemCount > 0 && NextItems != null && NextItems.Count > 0) - return NextItems[0]; - return null; - } - } - private static void ResetOrdinal(int itemID) - { - ConvertListToDictionary(); - string key = itemID.ToString(); - while (key != null && _CacheByPrimaryKey.ContainsKey(key)) - { - ItemInfo[] items = _CacheByPrimaryKey[key].ToArray(); - key = null; - foreach (ItemInfo item in items) - { - item._Ordinal = null; - item._TagsSetup = false; - //item.MyContent.ShowChange(); // Replaced with OnOrdinalChange below - if (key == null && item.NextItem != null) - key = item.NextItem.ItemID.ToString(); - } - ItemInfo.OnOrdinalChange(items[0].ItemID); // After _Ordinal reset trigger event - } - } - public void ResetOrdinal() - { - ResetOrdinal(ItemID); - } - public static void DeleteItemInfoAndChildren(int itemID) - { - //Volian.Base.Library.VlnTimer _MyTimer = new Volian.Base.Library.VlnTimer(); - //_MyTimer.ActiveProcess = "ConvertListToDictionary"; - ConvertListToDictionary(); - string key = itemID.ToString(); - if(_CacheByPrimaryKey.ContainsKey(key)) - { - - ItemInfo [] items = _CacheByPrimaryKey[key].ToArray(); - ItemInfo parent = items[0].ActiveParent as ItemInfo; - //_MyTimer.ActiveProcess = "ResetParts"; - if (parent != null) - ItemInfo.ResetParts(parent.ItemID); - //Console.WriteLine("\r\n\r\n'Deleting Item {0}'\r\n{0}'Type ','ParentID','ParentUnique','ItemID','Unique'",itemID); - foreach (ItemInfo item in items) - { - //_MyTimer.ActiveProcess = "IsDeleted"; - item.IsDeleted = true; - //_MyTimer.ActiveProcess = string.Format("OnDeleted {0}", items.Length); - item.OnDeleted(item); - //item.OnDeleted(item, _MyTimer); - //_MyTimer.ActiveProcess = "DeleteItemInfoAndChildren"; - item.DeleteItemInfoAndChildren(" "); - } - //Console.WriteLine("\r\n'Item Deleted'"); - - } - //_MyTimer.ShowElapsedTimes("DeleteItemInfoAndChildren"); - } - - private void DeleteItemInfoAndChildren(string depth) - { - if (MyContent.LocalContentParts != null) - { - foreach (PartInfo part in MyContent.LocalContentParts) - { - if (part._MyItems != null) - { - int whereami = 1; - try - { - List items = new List(); - foreach (ItemInfo item in part._MyItems) - { - items.Add(item); - } - foreach (ItemInfo item in items) - { - string key = item.ItemID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) - { - ItemInfo[] itemz = _CacheByPrimaryKey[key].ToArray(); - foreach (ItemInfo itm in itemz) - { - //Console.WriteLine("'{0}cache ',{1},{2},{3},{4}", depth + depth, this.ItemID, this._MyItemInfoUnique, itm.ItemID, itm._MyItemInfoUnique); - //whereami = 2; - itm.OnDeleted(itm); - //whereami = 4; - itm.DeleteItemInfoAndChildren(depth + " "); - //whereami = 3; - } - } - else - { - //Console.WriteLine("'{0}noncache',{1},{2},{3},{4}", depth + depth, this.ItemID, this._MyItemInfoUnique, item.ItemID, item._MyItemInfoUnique); - //whereami = 5; - item.OnDeleted(item); - //whereami = 7; - item.DeleteItemInfoAndChildren(depth + " "); - //whereami = 6; - } - } - } - catch (Exception ex) - { - Console.WriteLine("where = {0}, type = {1}, msg = {2}", whereami, ex.GetType().Name, ex.Message); - } - } - } - } - Dispose(); - } - public static void RefreshPrevious(int? itemID, int? previousID) - { - if (itemID == null) return; - string key = itemID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ItemInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshPrevious(previousID); - } - private void RefreshPrevious(int? previousID) - { - if (_PreviousID != previousID) - { - if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for old value - _PreviousID = previousID; // Update the value - } - _MyPrevious = null; // Reset list so that the next line gets a new list - if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value - } - } - public partial class Item - { - #region DeleteItemAndChildren - public static void DeleteItemAndChildren(ItemInfo item) - { - //Volian.Base.Library.VlnTimer _MyTimer = new Volian.Base.Library.VlnTimer(); - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Item"); - try - { - ItemInfo nextItem = item.NextItem; - ItemInfo prevItem = item.MyPrevious; - DocVersionInfo docVersion = item.ItemDocVersionCount == 1 ? item.ItemDocVersions[0] : null; - item.OnBeforeDelete(); - //_MyTimer.ActiveProcess = "DataPortal.Delete"; - DataPortal.Delete(new DeleteCriteria(item.ItemID, Volian.Base.Library.VlnSettings.UserID)); - if (nextItem != null) // Adjust PreviousID for NextItem - { - if (docVersion != null) - using (DocVersion dv = docVersion.Get()) - DocVersionInfo.Refresh(dv); - //_MyTimer.ActiveProcess = "RefreshPrevious"; - ItemInfo.RefreshPrevious(nextItem.ItemID, item.PreviousID); - // The order of the next two methods was required to fix a null reference - // when getting myparent. This bug was found when deleting a node from the - // tree when the RTBItem was not open (i.e. in the step editor window). - //_MyTimer.ActiveProcess = "RefreshItemParts"; - nextItem.RefreshItemParts(); - //nextItem.ResetOrdinal(); - UpdateTransitionText calls ResetOrdinal - //_MyTimer.ActiveProcess = "UpdateTransitionText"; - nextItem.UpdateTransitionText(); - } - else if (prevItem != null) - { - //_MyTimer.ActiveProcess = "RefreshNextItems"; - prevItem.RefreshNextItems(); - //_MyTimer.ActiveProcess = "ResetOrdinal"; - if (prevItem.IsCaution || prevItem.IsNote) prevItem.ResetOrdinal(); - //_MyTimer.ActiveProcess = "UpdateTransitionText"; - prevItem.UpdateTransitionText(); - } - //_MyTimer.ActiveProcess = "DeleteItemInfoAndChildren"; - ItemInfo.DeleteItemInfoAndChildren(item.ItemID); // Dispose ItemInfo and Children - } - catch (Exception ex) - { - Console.WriteLine("ItemInsertExt: Stacktrace = {0}", ex.StackTrace); - System.Data.SqlClient.SqlException exSQL = SqlException(ex); - if (exSQL != null && exSQL.Message.Contains("###Cannot Delete Item###")) - //return false; - throw exSQL; - else - throw new DbCslaException("Error on Item.DeleteItemAndChildren", ex); - } - //_MyTimer.ShowElapsedTimes("DeleteItemAndChildren"); - } - private static System.Data.SqlClient.SqlException SqlException(Exception ex) - { - Type sqlExType = typeof(System.Data.SqlClient.SqlException); - while (ex != null) - { - if (ex.GetType() == sqlExType) return ex as System.Data.SqlClient.SqlException; - ex = ex.InnerException; - } - return null; - } - [Serializable()] - protected class DeleteCriteria - { - private int _ItemID; - public int ItemID - { get { return _ItemID; } } - private string _UserID; - public string UserID - { - get { return _UserID; } - set { _UserID = value; } - } - public DeleteCriteria(int itemID,String userID) - { - _ItemID = itemID; - _UserID = userID; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(DeleteCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "DeleteItemAndChildren"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - cm.Parameters.AddWithValue("@UserID", criteria.UserID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Item.DataPortal_Delete", ex); - } - } - #endregion - #region PasteReplace - public static ItemInfo PasteReplace(ItemInfo itemInfo, int copyStartID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Item"); - ItemInfo newItemInfo = CopyPasteReplaceItemInfoFetch(copyStartID, itemInfo); //itemInfo.ItemID, itemInfo.MyContent.Type, itemInfo.MyContent.Type); - // Delete business objects, including remove from tree - ItemInfo.DeleteItemInfoAndChildren(itemInfo.ItemID); // Dispose ItemInfo and Children - using (Item item = Get(newItemInfo.ItemID)) ItemInfo.Refresh(item); - if (newItemInfo.NextItem != null) using (Item item = newItemInfo.NextItem.Get()) ItemInfo.Refresh(item); - newItemInfo.RefreshNextItems(); - // if inserting after a caution or note, refreshes tabs. This will adjust bullets - // of any previous cautions or notes. - if (newItemInfo.IsCaution || newItemInfo.IsNote) newItemInfo.ResetOrdinal(); - newItemInfo.UpdateTransitionText(); - newItemInfo.UpdatePastedStepTransitionText(); - // Add to tree - if (newItemInfo.NextItemCount > 0) - { - using (ItemInfo itm = ItemInfo.Get(newItemInfo.NextItem.ItemID)) - { - itm.OnNewSiblingBefore(new ItemInfoInsertEventArgs(newItemInfo, ItemInfo.EAddpingPart.Before)); - } - } - else if (newItemInfo.PreviousID != null) - { - using (ItemInfo itm2 = ItemInfo.Get((int)newItemInfo.PreviousID)) - { - itm2.OnNewSiblingAfter(new ItemInfoInsertEventArgs(newItemInfo, ItemInfo.EAddpingPart.After)); - } - } - else - { - newItemInfo.MyParent.OnNewChild(new ItemInfoInsertEventArgs(newItemInfo, ItemInfo.EAddpingPart.Child)); - } - return newItemInfo; - } - private static ItemInfo CopyPasteReplaceItemInfoFetch(int copyStartID, ItemInfo itemInfo) // int itemID, int? type, int? fromType) - { - ItemInfo tmp = null; - if (itemInfo.GetType() == typeof(ProcedureInfo)) - tmp = DataPortal.Fetch(new ItemInfo.PastingPartCriteria(copyStartID, itemInfo.ItemID, ItemInfo.EAddpingPart.Replace, itemInfo.MyContent.Type, itemInfo.MyContent.Type, DateTime.Now, Volian.Base.Library.VlnSettings.UserID)); - else if (itemInfo.GetType() == typeof(SectionInfo)) - tmp = DataPortal.Fetch(new ItemInfo.PastingPartCriteria(copyStartID, itemInfo.ItemID, ItemInfo.EAddpingPart.Replace, itemInfo.MyContent.Type, itemInfo.MyContent.Type, DateTime.Now, Volian.Base.Library.VlnSettings.UserID)); - else - tmp = DataPortal.Fetch(new ItemInfo.PastingPartCriteria(copyStartID, itemInfo.ItemID, ItemInfo.EAddpingPart.Replace, itemInfo.MyContent.Type, itemInfo.MyContent.Type, DateTime.Now, Volian.Base.Library.VlnSettings.UserID)); - - return tmp; - } - #endregion - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.org b/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.org deleted file mode 100644 index 9c028db0..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ItemInsertExt.org +++ /dev/null @@ -1,401 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.SqlClient; -using System.Text.RegularExpressions; -using Csla; -using Csla.Data; - -namespace VEPROMS.CSLA.Library -{ - public partial class ItemInfo - { - #region Old Insert - //public ItemInfo InsertSiblingBeforeOld(string text) - //{ - // return InsertSiblingBefore(text, null); - //} - //public ItemInfo InsertSiblingBeforeOld(string text, string number) - //{ - // ItemInfo prevItemInfo = MyPrevious; - // ItemInfo newItemInfo = null; - // PartInfoList partInfoList = null; - // if (MyParent != null && MyParent.MyContent != null) - // { - // MyParent.MyContent.RefreshContentParts(); - // partInfoList = MyParent.MyContent.ContentParts; - // } - // using (Item prevItem = prevItemInfo == null ? null : prevItemInfo.Get()) // Get the previous Item - // { - // using (Item newItem = Item.MakeItem(prevItem, Content.MakeContent(number, text, MyContent.Type, null, null))) // Create the new Item - // { - // using (Item thisItem = Get()) // Get the next item in the list - // { - // thisItem.MyPrevious = newItem; // Point to the new item - // thisItem.Save(); // Save Changes - // if (prevItem == null) - // { - // PartInfo partInfo = partInfoList.Find(this); - // using (Part part = partInfo.Get()) - // { - // part.MyItem = newItem; - // part.Save(); - // } - // } - // } - // // ToDo: Need change PartInfo in PartInfoList - // newItemInfo = ItemInfo.Get(newItem.ItemID); - // newItemInfo.ResetOrdinal(); - // } - // } - // return newItemInfo; - //} - //public ItemInfo InsertSiblingAfterOld(string text) - //{ - // return InsertSiblingAfter(text, null); - //} - //public ItemInfo InsertSiblingAfterOld(string text, string number) - //{ - // return InsertSiblingAfter(text, number, MyContent.Type); - //} - //public ItemInfo InsertSiblingAfterOld(string text, string number, int? type) - //{ - // ItemInfo nextItemInfo = NextItem; - // ItemInfo newItemInfo = null; - // using (Item thisItem = Get()) // Get the Current Item - // { - // using (Item newItem = Item.MakeItem(thisItem, Content.MakeContent(number, text, type, null, null))) // Create the new Item - // { - // if (nextItemInfo != null) // Simple case, adding to end of list: - // using (Item nextItem = nextItemInfo.Get()) // Get the next item in the list - // { - // nextItem.MyPrevious = newItem; // Point to the new item - // nextItem.Save(); // Save Changes - // } - // // ToDo: Need change PartInfo in PartInfoList - // newItemInfo = ItemInfo.Get(newItem.ItemID); - // newItemInfo.ResetOrdinal(); - // } - // } - // return newItemInfo; - //} - //public ItemInfo InsertChildOld(E_FromType fromType, int type, string text) - //{ - // return InsertChild(fromType, type, text, null); - //} - //public ItemInfo InsertChildOld(E_FromType fromType, int type, string text, string number) - //{ - // ItemInfo newItemInfo = null; - // using (Item thisItem = Get()) // Get the Current Item - // { - // using (Item newItem = Item.MakeItem(null, Content.MakeContent(number, text, type, null, null))) // Create the new Item - // { - // PartInfo partInfo = MyContent.ContentParts == null ? null : MyContent.ContentParts.Find(fromType); - // if (partInfo != null) - // { - // //this could be equivalent to adding a sibling with a specific type - // using (Part part = partInfo.Get()) - // { - // part.MyItem.MyPrevious = newItem; - // part.MyItem.Save(); - // part.MyItem = newItem; - // part.Save(); - // } - // } - // else - // { - // // This means that a part needs to be added to point to the new item - // //using (Part part = Part.MakePart(thisItem.MyContent, )) - // //{ ;} - // thisItem.MyContent.ContentParts.Add((int)fromType, newItem); - // thisItem.Save(); - // } - // newItemInfo = ItemInfo.Get(newItem.ItemID); - // } - // } - // ResetParts(); - // return newItemInfo; - //} - #endregion - #region Insert Before - public ItemInfo InsertSiblingBefore(string text) - { - return InsertSiblingBefore(text, null); - } - public ItemInfo InsertSiblingBefore(string text, string number) - { - ItemInfo tmp = NewItemInfoFetch(ItemID, EAddpingPart.Before, number, text, null, null, null, null, DateTime.Now, Environment.UserName); - // this item is updated in SQL so we have to manually force the iteminfo updates - // Refresh ItemInfo to update Previous - using (Item item = Get()) ItemInfo.Refresh(item); - // Update all of the content records that have transitions that point to the Siblings or Sibling Children of the new item - tmp.UpdateTransitionText(); - return tmp; - } - #endregion - #region Insert After - public ItemInfo InsertSiblingAfter(string text) - { - return InsertSiblingAfter(text, null); - } - public ItemInfo InsertSiblingAfter(string text, string number) - { - return InsertSiblingAfter(text, number, MyContent.Type); - } - public ItemInfo InsertSiblingAfter(string text, string number, int? type) - { - ItemInfo tmp = NewItemInfoFetch(ItemID, EAddpingPart.After, number, text, type, null, null, null, DateTime.Now, Environment.UserName); - //tmp = DataPortal.Fetch(new AddingPartCriteria(ItemID, EAddpingPart.After, number, text, type, null, null, null, DateTime.Now, Environment.UserName)); - // if next exists, it is updated in SQL so we have to manually force the iteminfo updates - // Refresh ItemInfo to update PreviousID field - if (tmp.NextItem != null) using (Item item = tmp.NextItem.Get()) ItemInfo.Refresh(item); - // Update all of the content records that have transitions that point to the Siblings or Sibling Children of the new item - tmp.UpdateTransitionText(); - return tmp; - } - private ItemInfo NewItemInfoFetch(int itemID, EAddpingPart addType, string number, string text, int? type, int? fromType, int? formatID, string config, DateTime dts, string userID) - { - ItemInfo tmp; - if (addType == EAddpingPart.Child) - { - // adding children. Type is based on 'fromType' - switch ((E_FromType)fromType) - { - case E_FromType.Procedure: - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - break; - case E_FromType.Section: - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - break; - default: - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - break; - } - } - else - { - if (GetType() == typeof(ProcedureInfo)) - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - else if (GetType() == typeof(SectionInfo)) - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - else - tmp = DataPortal.Fetch(new AddingPartCriteria(itemID, addType, number, text, type, fromType, formatID, config, dts, userID)); - } - return tmp; - } - public void UpdateTransitionText() - { - // Update Ordinals from here down - ResetOrdinal(); - // This returns a list of all of the transitions that may have been affected - using(TransitionInfoList trans = TransitionInfoList.GetAffected(this.ItemID)) - { - foreach (TransitionInfo tran in trans) - { - using (Content content = tran.MyContent.Get()) - { - content.FixTransitionText(tran); - if (content.IsDirty) - content.Save(); - } - } - } - } - #endregion - #region Insert Child - public ItemInfo InsertChild(E_FromType fromType, int type, string text) - { - return InsertChild(fromType, type, text, null); - } - public ItemInfo InsertChild(E_FromType fromType, int type, string text, string number) - { - ItemInfo tmp = NewItemInfoFetch(ItemID, EAddpingPart.Child, number, text, type, (int?) fromType, null, null, DateTime.Now, Environment.UserName); - // if next exists, it is updated in SQL so we have to manually force the iteminfo updates - // Refresh ItemInfo to update PreviousID field - if (tmp.NextItem != null) using (Item item = tmp.NextItem.Get()) ItemInfo.Refresh(item); - // Update all of the content records that have transitions that point to the Siblings or Sibling Children of the new item - tmp.UpdateTransitionText(); - return tmp; - } - #endregion - #region DataPortal - private void DataPortal_Fetch(AddingPartCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - ApplicationContext.LocalContext["cn"] = cn; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); //ABC After Before Child - cm.Parameters.AddWithValue("@Number", criteria.Number); //ABC - cm.Parameters.AddWithValue("@Text", criteria.Text); //ABC - cm.Parameters.AddWithValue("@FormatID", criteria.FormatID); //ABC - cm.Parameters.AddWithValue("@Config", criteria.Config); //ABC - cm.Parameters.AddWithValue("@Type", criteria.Type); //ABC - cm.Parameters.AddWithValue("@DTS", criteria.DTS); //ABC - cm.Parameters.AddWithValue("@UserID", criteria.UserID); //ABC - SqlParameter param_ContentID = new SqlParameter("@newItemID", SqlDbType.Int); - param_ContentID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_ContentID); - switch (criteria.AddType) - { - case EAddpingPart.Child: - cm.CommandText = "addItemChild"; - cm.Parameters.AddWithValue("@FromType", criteria.FromType); //--C - break; - case EAddpingPart.Before: - cm.CommandText = "addItemSiblingBefore"; - break; - case EAddpingPart.After: - cm.CommandText = "addItemSiblingAfter"; - break; - } - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - //newItemID = (int)cm.Parameters["@newContentID"].Value; - 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("ItemInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ItemInfo.DataPortal_Fetch", ex); - } - } - #endregion - [Serializable()] - protected class AddingPartCriteria - { - #region Properties - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private EAddpingPart _AddType; - public EAddpingPart AddType - { - get { return _AddType; } - set { _AddType = value; } - } - private string _Number=null; - public string Number - { - get { return _Number; } - set { _Number = value; } - } - private string _Text=null; - public string Text - { - get { return _Text; } - set { _Text = value; } - } - private int? _FromType = null; - public int? FromType - { - get { return _FromType; } - set { _FromType = value; } - } - private int? _Type=null; - public int? Type - { - get { return _Type; } - set { _Type = value; } - } - private int? _FormatID=null; - public int? FormatID - { - get { return _FormatID; } - set { _FormatID = value; } - } - private string _Config=null; - public string Config - { - get { return _Config; } - set { _Config = value; } - } - private DateTime _DTS; - public DateTime DTS - { - get { return _DTS; } - set { _DTS = value; } - } - private string _UserID; - public string UserID - { - get { return _UserID; } - set { _UserID = value; } - } - #endregion - #region Constructor - public AddingPartCriteria(int itemID, EAddpingPart addType, string number, string text, int? type, int? fromType, int? formatID, string config, DateTime dts, string userID) - { - _ItemID = itemID; - _AddType = addType; - _Number = number; - _Text = text; - _Type = type; - _FromType = fromType; - _FormatID = formatID; - _Config = config; - _DTS = dts; - _UserID = userID; - } - #endregion - } - public enum EAddpingPart - { - Child=0, - Before=1, - After=2 - } - public ItemInfo NextItem - { - get - { - if (NextItemCount > 0 && NextItems.Count > 0) - return NextItems[0]; - return null; - } - } - private static void ResetOrdinal(int itemID) - { - ConvertListToDictionary(); - string key = itemID.ToString(); - while (key != null && _CacheByPrimaryKey.ContainsKey(key)) - { - ItemInfo[] items = _CacheByPrimaryKey[key].ToArray(); - key = null; - foreach (ItemInfo item in items) - { - //Console.WriteLine("item = {0}, ordinal = {1}",item,item.Ordinal); - item._Ordinal = null; - item._TagsSetup = false; - if (key == null && item.NextItem != null) - key = item.NextItem.ItemID.ToString(); - } - } - } - private void ResetOrdinal() - { - ResetOrdinal(ItemID); - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/LinkText.cs b/PROMS/VEPROMS.CSLA.Library/Extension/LinkText.cs deleted file mode 100644 index e7b6b81a..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/LinkText.cs +++ /dev/null @@ -1,115 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Text.RegularExpressions; -namespace VEPROMS.CSLA.Library -{ - public partial class LinkText - { - public LinkText(string linkInfoText) - { - _LinkInfoText = linkInfoText; - } - public void ParseLink() - { - if (_MyParsedLinkType == ParsedLinkType.NotParsed) - { - if (_LinkInfoText == null) return; - // First parse the string - _LinkInfoText = _LinkInfoText.Replace(@"\v ", ""); - // for tran : "2, #, #, # and 4#Link:TransitionRange:2 10 173 166" - Match m = Regex.Match(_LinkInfoText, @"(.*)[#]Link:([A-Za-z]*):(.*)"); - _MyValue = m.Groups[1].Value; - _MyLink = "#Link:" + m.Groups[2].Value + ":" + m.Groups[3].Value; - switch (m.Groups[2].Value) - { - case "ReferencedObject": - _MyParsedLinkType = ParsedLinkType.ReferencedObject; - string[] subs = m.Groups[3].Value.Split(" ".ToCharArray()); - if (subs[0] == "") - _MyRoUsageInfo = null; - else - { - int roUsageid = Convert.ToInt32(subs[0]); - _MyRoUsageInfo = RoUsageInfo.Get(roUsageid); - } - break; - case "Transition": - case "TransitionRange": - _MyParsedLinkType = (ParsedLinkType)Enum.Parse(_MyParsedLinkType.GetType(), m.Groups[2].Value); - if (m.Groups[3].Value.Split(" ".ToCharArray())[1] == "") - _MyTransitionInfo = null; - else - { - int transitionID = Convert.ToInt32(m.Groups[3].Value.Split(" ".ToCharArray())[1]); - _MyTransitionInfo = TransitionInfo.Get(transitionID); - } - break; - } - } - } - private string _LinkInfoText; - public string LinkInfoText - { - get { return _LinkInfoText; } - } - private TransitionInfo _MyTransitionInfo = null; - public TransitionInfo MyTransitionInfo - { - get { ParseLink(); return _MyTransitionInfo; } - } - public ItemInfo MyTranToItemInfo - { - get { ParseLink(); return _MyTransitionInfo.MyItemToID; } - } - public ItemInfo MyTranRangeItemInfo - { - get { ParseLink(); return _MyTransitionInfo.MyItemRangeID; } - } - private string _MyValue = null; - public string MyValue - { - get { ParseLink(); return _MyValue; } - } - private string _MyLink = null; - public string MyLink - { - get { ParseLink(); return _MyLink; } - } - private RoUsageInfo _MyRoUsageInfo; - public RoUsageInfo MyRoUsageInfo - { - get { ParseLink(); return _MyRoUsageInfo; } - } - //private string _Roid = null; // TODO: need to return Referenced Object rather than just roid - //public string Roid - //{ - // get { ParseLink(); return _Roid; } - //} - //private string _RoUsageid = null; // TODO: need to return Referenced Object rather than just roid - //public string RoUsageid - //{ - // get { ParseLink(); return _RoUsageid; } - //} - //private string _RoDbid = null; // TODO: need to return Referenced Object rather than just roid - //public string RoDbid - //{ - // get { ParseLink(); return _RoDbid; } - //} - private ParsedLinkType _MyParsedLinkType = ParsedLinkType.NotParsed; - public ParsedLinkType MyParsedLinkType - { - get { ParseLink(); return _MyParsedLinkType; } - } - - } - #region enums - public enum ParsedLinkType : int - { - NotParsed = 0, - Transition = 1, - TransitionRange = 2, - ReferencedObject = 3 - } - #endregion -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs.bak b/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs.bak deleted file mode 100644 index cac677ad..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs.bak +++ /dev/null @@ -1,890 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.SqlClient; -using System.Text.RegularExpressions; -using Csla; -using Csla.Data; - -namespace VEPROMS.CSLA.Library -{ - #region Enum stuff - public enum CheckOutType : int - { - Procedure = 0, Document = 1, DocVersion = 2 - } - #endregion - #region SessionInfoList stuff - public partial class SessionInfoList - { - [Serializable()] - public class CanCheckOutItemCriteria - { - private int _ObjectID; - public int ObjectID - { get { return _ObjectID; } } - private CheckOutType _ObjectType; - public CheckOutType ObjectType - { get { return _ObjectType; } } - public CanCheckOutItemCriteria(int objectID, CheckOutType objectType) - { - _ObjectID = objectID; - _ObjectType = objectType; - } - } - private void DataPortal_Fetch(CanCheckOutItemCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_SessionCanCheckOutItem"; - cm.Parameters.AddWithValue("@ObjectID", criteria.ObjectID); - cm.Parameters.AddWithValue("@ObjectType", criteria.ObjectType); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new SessionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("SessionInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("SessionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - } - #endregion - #region SessionInfo stuff - public partial class SessionInfo - { - public static SessionInfo BeginSession(string machineName, int processID) - { - try - { - SessionInfo tmp = DataPortal.Fetch(new BeginSessionCriteria(Volian.Base.Library.VlnSettings.UserID, machineName, processID)); - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up SessionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on SessionInfo.BeginSession", ex); - } - } - public List PingSession() - { - List myList = new List(); - SessionPing.Execute(this.SessionID); - OwnerInfoList oil = OwnerInfoList.GetBySessionID(this.SessionID); - foreach (OwnerInfo oi in oil) - myList.Add(oi.OwnerID); - return myList; - } - public void EndSession() - { - SessionEnd.Execute(this.SessionID); - } - public bool CanCheckOutItem(int objectID, CheckOutType objectType, ref string message) - { - try - { - SessionInfoList sil = DataPortal.Fetch(new SessionInfoList.CanCheckOutItemCriteria(objectID, objectType)); - if (sil.Count == 0) - return true; - bool rv = true; - foreach (SessionInfo si in sil) - { - if (si.SessionID != this.SessionID && objectType == CheckOutType.Procedure) - { - message = string.Format("The procedure {0} is already checked out to {1}", ItemInfo.Get(objectID).MyProcedure.DisplayNumber, si.UserID); - rv = rv && false; - } - else if (si.SessionID != this.SessionID && objectType == CheckOutType.Document) - { - message = string.Format("The document {0} is already checked out to {1}", DocumentInfo.Get(objectID).DocumentEntries[0].MyContent.Text, si.UserID); - rv = rv && false; - } - else if (si.SessionID != this.SessionID && objectType == CheckOutType.DocVersion) - { - OwnerInfo oi = OwnerInfo.GetBySessionIDandVersionID(si.SessionID, objectID); - if(oi.OwnerType == 0) - message = message + string.Format("The procedure {0} is already checked out to {1}", ItemInfo.Get(oi.OwnerItemID).MyProcedure.DisplayNumber, si.UserID) + Environment.NewLine; - else if (oi.OwnerType == 1) - message = message + string.Format("The document {0} is already checked out to {1}", DocumentInfo.Get(oi.OwnerItemID).DocumentEntries[0].MyContent.Text, si.UserID) + Environment.NewLine; - else if (oi.OwnerType == 2) - message = message + string.Format("The working draft is already checked out to {0}", si.UserID); - rv = rv && false; - } - } - return rv; - } - catch (Exception ex) - { - throw new DbCslaException("Error on SessionInfo.Get", ex); - } - } - public int CheckOutItem(int itemID, CheckOutType itemType) - { - int ownerID = SessionCheckOutItem.Execute(this.SessionID, itemID, itemType); - return ownerID; - } - public void CheckInItem(int ownerID) - { - SessionCheckInItem.Execute(ownerID); - } - private void DataPortal_Fetch(BeginSessionCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfo.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 = "vesp_SessionBegin"; - cm.Parameters.AddWithValue("@UserID", criteria.UserID); - cm.Parameters.AddWithValue("@MachineName", criteria.MachineName); - cm.Parameters.AddWithValue("@ProcessID", criteria.ProcessID); - 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("SessionInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("SessionInfo.DataPortal_Fetch", ex); - } - } - //private void DataPortal_Fetch(CanCheckOutItemCriteria criteria) - //{ - // if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfo.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 = "vesp_SessionCanCheckOutItem"; - // cm.Parameters.AddWithValue("@ObjectID", criteria.ObjectID); - // cm.Parameters.AddWithValue("@ObjectType", criteria.ObjectType); - // using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - // { - // while(dr.Read()) - - // 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("SessionInfo.DataPortal_Fetch", ex); - // _ErrorMessage = ex.Message; - // throw new DbCslaException("SessionInfo.DataPortal_Fetch", ex); - // } - //} - [Serializable()] - protected class BeginSessionCriteria - { - private string _UserID; - public string UserID - { get { return _UserID; } } - private string _MachineName; - public string MachineName - { get { return _MachineName; } } - private int _ProcessID; - public int ProcessID - { get { return _ProcessID; } } - public BeginSessionCriteria(string userID, string machineName, int processID) - { - _UserID = userID; - _MachineName = machineName; - _ProcessID = processID; - } - } - //[Serializable()] - //protected class CanCheckOutItemCriteria - //{ - // private int _ObjectID; - // public int ObjectID - // { get { return _ObjectID; } } - // private CheckOutType _ObjectType; - // public CheckOutType ObjectType - // { get { return _ObjectType; } } - // public CanCheckOutItemCriteria(int objectID, CheckOutType objectType) - // { - // _ObjectID = objectID; - // _ObjectType = objectType; - // } - //} - } - public class ResetSecurity : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #region Factory Methods - public static void Execute() - { - ResetSecurity cmd = new ResetSecurity(); - DataPortal.Execute(cmd); - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_ResetSecurity", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Reset Security Error", ex); - throw new ApplicationException("Failure on Reset Security", ex); - } - } - #endregion - } - public class SessionPing : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private int _SessionID; - public int SessionID - { - get { return _SessionID; } - set { _SessionID = value; } - } - #region Factory Methods - public static void Execute(int sessionID) - { - SessionPing cmd = new SessionPing(); - cmd.SessionID = sessionID; - DataPortal.Execute(cmd); - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_SessionPing", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.Parameters.AddWithValue("@SessionID", SessionID); - cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session Ping Error", ex); - throw new ApplicationException("Failure on Session Ping", ex); - } - } - #endregion - } - public class SessionEnd : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private int _SessionID; - public int SessionID - { - get { return _SessionID; } - set { _SessionID = value; } - } - #region Factory Methods - public static void Execute(int sessionID) - { - SessionEnd cmd = new SessionEnd(); - cmd.SessionID = sessionID; - DataPortal.Execute(cmd); - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_SessionEnd", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.Parameters.AddWithValue("@SessionID", SessionID); - cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session End Error", ex); - throw new ApplicationException("Failure on Session End", ex); - } - } - #endregion - } - public class SessionCheckOutItem : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private int _SessionID; - public int SessionID - { - get { return _SessionID; } - set { _SessionID = value; } - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private int _ItemType; - public int ItemType - { - get { return _ItemType; } - set { _ItemType = value; } - } - private int _OwnerID; - public int OwnerID - { - get { return _OwnerID; } - set { _OwnerID = value; } - } - #region Factory Methods - public static int Execute(int sessionID, int itemID, CheckOutType itemType) - { - SessionCheckOutItem cmd = new SessionCheckOutItem(); - cmd.SessionID = sessionID; - cmd.ItemID = itemID; - cmd.ItemType = (int)itemType; - cmd = DataPortal.Execute(cmd); - return cmd.OwnerID; - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_SessionCheckOutItem", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.Parameters.AddWithValue("@SessionID", SessionID); - cmd.Parameters.AddWithValue("@ItemID", ItemID); - cmd.Parameters.AddWithValue("@ItemType", ItemType); - SqlParameter parm = cmd.Parameters.AddWithValue("@OwnerID", 0); - parm.Direction = ParameterDirection.Output; - cmd.ExecuteNonQuery(); - OwnerID = (int)cmd.Parameters["@OwnerID"].Value; - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session End Error", ex); - throw new ApplicationException("Failure on Session End", ex); - } - } - #endregion - } - public class SessionCheckInItem : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private int _OwnerID; - public int OwnerID - { - get { return _OwnerID; } - set { _OwnerID = value; } - } - private int _ItemID; - #region Factory Methods - public static void Execute(int ownerID) - { - SessionCheckInItem cmd = new SessionCheckInItem(); - cmd.OwnerID = ownerID; - DataPortal.Execute(cmd); - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_SessionCheckInItem", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.Parameters.AddWithValue("@OwnerID", OwnerID); - cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session End Error", ex); - throw new ApplicationException("Failure on Session End", ex); - } - } - #endregion - } - #endregion - #region OwnerInfo stuff - public partial class OwnerInfoList - { - public static OwnerInfoList GetBySessionID(int sessionID) - { - OwnerInfoList tmp = DataPortal.Fetch(new GetBySessionIDCriteria(sessionID)); - return tmp; - } - [Serializable()] - protected class GetBySessionIDCriteria - { - private int _SessionID; - public int SessionID { get { return _SessionID; } } - public GetBySessionIDCriteria(int sessionID) - { - _SessionID = sessionID; - } - } - private void DataPortal_Fetch(GetBySessionIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getOwnersBySessionID"; - cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new OwnerInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("OwnerInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("OwberInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - } - public partial class OwnerInfo - { - public static OwnerInfo GetBySessionIDandVersionID(int sessionID, int versionID) - { - try - { - OwnerInfo tmp = DataPortal.Fetch(new GetBySessionIDandVersionIDCriteria(sessionID, versionID)); - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up SessionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on OwnerInfo.GetBySessionIDandVersionID", ex); - } - } - [Serializable()] - protected class GetBySessionIDandVersionIDCriteria - { - private int _SessionID; - public int SessionID - { get { return _SessionID; } } - private int _VersionID; - public int VersionID - { get { return _VersionID; } } - public GetBySessionIDandVersionIDCriteria(int sessionID, int versionID) - { - _SessionID = sessionID; - _VersionID = versionID; - } - } - private void DataPortal_Fetch(GetBySessionIDandVersionIDCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfo.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 = "getOwnerBySessionIDandVersionID"; - cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - 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("OwnerInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("OwnerInfo.DataPortal_Fetch", ex); - } - } - public static OwnerInfo GetByItemID(int itemID, CheckOutType itemType) - { - try - { - OwnerInfo tmp = DataPortal.Fetch(new GetByItemIDCriteria(itemID, itemType)); - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up SessionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on OwnerInfo.GetByItemID", ex); - } - } - [Serializable()] - protected class GetByItemIDCriteria - { - private int _ItemID; - public int ItemID - { get { return _ItemID; } } - private CheckOutType _ItemType; - public CheckOutType ItemType - { get { return _ItemType; } } - public GetByItemIDCriteria(int itemID, CheckOutType itemType) - { - _ItemID = itemID; - _ItemType = itemType; - } - } - private void DataPortal_Fetch(GetByItemIDCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfo.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 = "getOwnerByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - cm.Parameters.AddWithValue("@ItemType", (int)criteria.ItemType); - 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("OwnerInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("OwnerInfo.DataPortal_Fetch", ex); - } - } - public string SessionUserID - { - get - { - SessionInfo si = SessionInfo.Get(this.SessionID); - return si.UserID; - } - } - } - #endregion - #region UserInfo stuff - public partial class UserInfo - { - public bool IsAdministrator() - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (ai.FolderID == 1 && ai.MyRole.Name == "Administrator") - return true; - } - } - } - return false; - } - public bool IsSetAdministrator(FolderInfo fi) - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - Dictionary folders = new Dictionary(); - //FolderInfo fi = FolderInfo.Get(dv.MyFolder.FolderID); - while (fi.FolderID > 1) - { - folders.Add(fi.FolderID, fi.FolderID); - fi = fi.MyParent; - } - folders.Add(1, 1); - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (folders.ContainsKey(ai.FolderID) && ai.MyRole.Name == "Set Administrator") - return true; - } - } - } - return false; - } - public bool IsSetAdministrator(DocVersionInfo dv) - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - Dictionary folders = new Dictionary(); - FolderInfo fi = FolderInfo.Get(dv.MyFolder.FolderID); - while (fi.FolderID > 1) - { - folders.Add(fi.FolderID, fi.FolderID); - fi = fi.MyParent; - } - folders.Add(1, 1); - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (folders.ContainsKey(ai.FolderID) && ai.MyRole.Name == "Set Administrator") - return true; - } - } - } - return false; - } - public bool IsWriter(DocVersionInfo dv) - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - Dictionary folders = new Dictionary(); - FolderInfo fi = FolderInfo.Get(dv.MyFolder.FolderID); - while (fi.FolderID > 1) - { - folders.Add(fi.FolderID, fi.FolderID); - fi = fi.MyParent; - } - folders.Add(1, 1); - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (folders.ContainsKey(ai.FolderID) && ai.MyRole.Name == "Writer") - return true; - } - } - } - return false; - } - public bool IsReviewer(DocVersionInfo dv) - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - Dictionary folders = new Dictionary(); - FolderInfo fi = FolderInfo.Get(dv.MyFolder.FolderID); - while (fi.FolderID > 1) - { - folders.Add(fi.FolderID, fi.FolderID); - fi = fi.MyParent; - } - folders.Add(1, 1); - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (folders.ContainsKey(ai.FolderID) && ai.MyRole.Name == "Reviewer") - return true; - } - } - } - return false; - } - public bool IsROEditor(DocVersionInfo dv) - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - Dictionary folders = new Dictionary(); - FolderInfo fi = FolderInfo.Get(dv.MyFolder.FolderID); - while (fi.FolderID > 1) - { - folders.Add(fi.FolderID, fi.FolderID); - fi = fi.MyParent; - } - folders.Add(1, 1); - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (folders.ContainsKey(ai.FolderID) && ai.MyRole.Name == "RO Editor") - return true; - } - } - } - return false; - } - public static UserInfo GetByUserID(string userID) - { - try - { - UserInfo tmp = DataPortal.Fetch(new GetByUserIDCriteria(userID)); - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up SessionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on UserInfo.GetByUserID", ex); - } - } - [Serializable()] - protected class GetByUserIDCriteria - { - private string _UserID; - public string UserID - { get { return _UserID; } } - public GetByUserIDCriteria(string userID) - { - _UserID = userID; - } - } - private void DataPortal_Fetch(GetByUserIDCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] UserInfo.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 = "getUserByUserID"; - cm.Parameters.AddWithValue("@UserID", criteria.UserID); - 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("UserInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("UserInfo.DataPortal_Fetch", ex); - } - } - } - #endregion -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs.org b/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs.org deleted file mode 100644 index 8454e66f..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/MultiUserExt.cs.org +++ /dev/null @@ -1,1286 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.SqlClient; -using System.Text.RegularExpressions; -using Csla; -using Csla.Data; - -namespace VEPROMS.CSLA.Library -{ - #region Enum stuff - public enum CheckOutType : int - { - Procedure = 0, Document = 1, DocVersion = 2, Folder = 3, Session = 4 - } - #endregion - #region SessionInfoList stuff - public partial class SessionInfoList - { - [Serializable()] - public class CanCheckOutItemCriteria - { - private int _ObjectID; - public int ObjectID - { get { return _ObjectID; } } - private CheckOutType _ObjectType; - public CheckOutType ObjectType - { get { return _ObjectType; } } - public CanCheckOutItemCriteria(int objectID, CheckOutType objectType) - { - _ObjectID = objectID; - _ObjectType = objectType; - } - } - private void DataPortal_Fetch(CanCheckOutItemCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_SessionCanCheckOutItem"; - cm.Parameters.AddWithValue("@ObjectID", criteria.ObjectID); - cm.Parameters.AddWithValue("@ObjectType", criteria.ObjectType); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new SessionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("SessionInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("SessionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - } - #endregion - #region SessionInfo stuff - public partial class SessionInfo - { - private Int64 _LastContentChange; - public Int64 LastContentChange - { - get { return _LastContentChange; } - set { _LastContentChange = value; } - } - private byte[] _LastChanged = new byte[8]; - public byte[] LastChanged - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _LastChanged; - } - set { _LastChanged = value; } - } - public string LastChangedString - { - get { return ContentInfo.FormatByteArray(_LastChanged); } - } - public Int64 LastChangedInt64 - { - get { return Convert.ToInt64(LastChangedString, 16); } - } - public static SessionInfo BeginSession(string machineName, int processID) - { - try - { - SessionInfo tmp = DataPortal.Fetch(new BeginSessionCriteria(Volian.Base.Library.VlnSettings.UserID, machineName, processID)); - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up SessionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on SessionInfo.BeginSession", ex); - } - } - private Dictionary _ChangedContents; - public Dictionary ChangedContents - { - get { return _ChangedContents; } - set { _ChangedContents = value; } - } - private Dictionary _ChangedItems; - public Dictionary ChangedItems - { - get { return _ChangedItems; } - set { _ChangedItems = value; } - } - public List PingSession() - { - List myList = new List(); - SessionPing.Execute(this.SessionID); - ChangedContents = SessionChangedContents.Execute(this.LastContentChange); - ChangedItems = SessionChangedItems.Execute(this.LastContentChange); - OwnerInfoList oil = OwnerInfoList.GetBySessionID(this.SessionID); - foreach (OwnerInfo oi in oil) - myList.Add(oi.OwnerID); - return myList; - } - public void EndSession() - { - SessionEnd.Execute(this.SessionID); - } - public bool CanCheckOutItem(int objectID, CheckOutType objectType, ref string message) - { - try - { - SessionInfoList sil = DataPortal.Fetch(new SessionInfoList.CanCheckOutItemCriteria(objectID, objectType)); - if (sil.Count == 0) - return true; - if (objectType == CheckOutType.Session) - { - if (sil.Count == 1) - { - OwnerInfoList oil = OwnerInfoList.GetBySessionID(sil[0].SessionID); - if (oil.Count == 0) - return true; - else - { - message = "Export Procedure Set and Import Procedure Set are not available because you have open procedures or documents"; - return false; - } - } - else - { - message = "Export Procedure Set and Import Procedure Set are not available because there are other sessions open in the database"; - return false; - } - } - bool rv = true; - foreach (SessionInfo si in sil) - { - //if (si.SessionID != this.SessionID && objectType == CheckOutType.Procedure) - if (si.ProcessID != this.ProcessID && objectType == CheckOutType.Procedure) - { - message = string.Format("The procedure {0} is already checked out to {1}", ItemInfo.Get(objectID).MyProcedure.DisplayNumber, si.UserID); - rv = rv && false; - } - //else if (si.SessionID != this.SessionID && objectType == CheckOutType.Document) - else if (si.ProcessID != this.ProcessID && objectType == CheckOutType.Document) - { - message = string.Format("The document {0} is already checked out to {1}", DocumentInfo.Get(objectID).DocumentEntries[0].MyContent.Text, si.UserID); - rv = rv && false; - } - else if (si.SessionID != this.SessionID && objectType == CheckOutType.DocVersion) - //else if (si.ProcessID != this.ProcessID && objectType == CheckOutType.DocVersion) - { - // gets here if other session has working draft open & click on sam working draft. - OwnerInfo oi = OwnerInfo.GetBySessionIDandVersionID(si.SessionID, objectID); - if (oi == null) - message = message + string.Format("The working draft is already checked out to {0}", si.UserID) + Environment.NewLine; - else if(oi.OwnerType == 0) - message = message + string.Format("The procedure {0} is already checked out to {1}", ItemInfo.Get(oi.OwnerItemID).MyProcedure.DisplayNumber, si.UserID) + Environment.NewLine; - else if (oi.OwnerType == 1) - message = message + string.Format("The document {0} is already checked out to {1}", DocumentInfo.Get(oi.OwnerItemID).DocumentEntries[0].MyContent.Text, si.UserID) + Environment.NewLine; - else if (oi.OwnerType == 2) - message = message + string.Format("The working draft is already checked out to {0}", si.UserID); - rv = rv && false; - } - else if (si.SessionID != this.SessionID && objectType == CheckOutType.Folder) - //else if (si.ProcessID != this.ProcessID && objectType == CheckOutType.Folder) - { - // gets here if other session has working draft open & click on folder above. Gets here - // if other session has wd open and click on top folder - query returns empty. - OwnerInfo oi = OwnerInfo.GetBySessionIDandFolderID(si.SessionID, objectID); - if (oi != null) - { - if (oi.OwnerType == 0) - message = message + string.Format("The procedure {0} is already checked out to {1}", ItemInfo.Get(oi.OwnerItemID).MyProcedure.DisplayNumber, si.UserID) + Environment.NewLine; - else if (oi.OwnerType == 1) - message = message + string.Format("The document {0} is already checked out to {1}", DocumentInfo.Get(oi.OwnerItemID).DocumentEntries[0].MyContent.Text, si.UserID) + Environment.NewLine; - else if (oi.OwnerType == 2) - message = message + string.Format("The working draft is already checked out to {0}", si.UserID); - else if (oi.OwnerType == 3) - message = message + string.Format("The folder is already checked out to {0}", si.UserID); - rv = rv && false; - } - } - } - return rv; - } - catch (Exception ex) - { - throw new DbCslaException("Error on SessionInfo.Get", ex); - } - } - public int CheckOutItem(int itemID, CheckOutType itemType) - { - int ownerID = SessionCheckOutItem.Execute(this.SessionID, itemID, itemType); - return ownerID; - } - public void CheckInItem(int ownerID) - { - SessionCheckInItem.Execute(ownerID); - } - private void DataPortal_Fetch(BeginSessionCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfo.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 = "vesp_SessionBegin"; - cm.Parameters.AddWithValue("@UserID", criteria.UserID); - cm.Parameters.AddWithValue("@MachineName", criteria.MachineName); - cm.Parameters.AddWithValue("@ProcessID", criteria.ProcessID); - 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("SessionInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("SessionInfo.DataPortal_Fetch", ex); - } - } - //private void DataPortal_Fetch(CanCheckOutItemCriteria criteria) - //{ - // if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfo.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 = "vesp_SessionCanCheckOutItem"; - // cm.Parameters.AddWithValue("@ObjectID", criteria.ObjectID); - // cm.Parameters.AddWithValue("@ObjectType", criteria.ObjectType); - // using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - // { - // while(dr.Read()) - - // 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("SessionInfo.DataPortal_Fetch", ex); - // _ErrorMessage = ex.Message; - // throw new DbCslaException("SessionInfo.DataPortal_Fetch", ex); - // } - //} - [Serializable()] - protected class BeginSessionCriteria - { - private string _UserID; - public string UserID - { get { return _UserID; } } - private string _MachineName; - public string MachineName - { get { return _MachineName; } } - private int _ProcessID; - public int ProcessID - { get { return _ProcessID; } } - public BeginSessionCriteria(string userID, string machineName, int processID) - { - _UserID = userID; - _MachineName = machineName; - _ProcessID = processID; - } - } - //[Serializable()] - //protected class CanCheckOutItemCriteria - //{ - // private int _ObjectID; - // public int ObjectID - // { get { return _ObjectID; } } - // private CheckOutType _ObjectType; - // public CheckOutType ObjectType - // { get { return _ObjectType; } } - // public CanCheckOutItemCriteria(int objectID, CheckOutType objectType) - // { - // _ObjectID = objectID; - // _ObjectType = objectType; - // } - //} - } - public class TurnChangeManagerOff : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #region Factory Methods - public static void Execute() - { - TurnChangeManagerOff cmd = new TurnChangeManagerOff(); - DataPortal.Execute(cmd); - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_TurnChangeManagerOFF", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TurnChangeManagerOff Error", ex); - throw new ApplicationException("Failure on TurnChangeManagerOff", ex); - } - } - #endregion - } - public class TurnChangeManagerOn : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #region Factory Methods - public static void Execute() - { - TurnChangeManagerOn cmd = new TurnChangeManagerOn(); - DataPortal.Execute(cmd); - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_TurnChangeManagerON", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TurnChangeManagerOn Error", ex); - throw new ApplicationException("Failure on TurnChangeManagerOn", ex); - } - } - #endregion - } - public class ResetSecurity : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #region Factory Methods - public static void Execute() - { - ResetSecurity cmd = new ResetSecurity(); - DataPortal.Execute(cmd); - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_ResetSecurity", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Reset Security Error", ex); - throw new ApplicationException("Failure on Reset Security", ex); - } - } - #endregion - } - public class SessionPing : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private int _SessionID; - public int SessionID - { - get { return _SessionID; } - set { _SessionID = value; } - } - #region Factory Methods - public static void Execute(int sessionID) - { - try - { - SessionPing cmd = new SessionPing(); - cmd.SessionID = sessionID; - DataPortal.Execute(cmd); - } - catch (Exception ex) - { - _MyLog.Warn("Session Ping Failure", ex); - } - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_SessionPing", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.Parameters.AddWithValue("@SessionID", SessionID); - cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session Ping Error", ex); - throw new ApplicationException("Failure on Session Ping", ex); - } - } - #endregion - } - public class SessionEnd : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private int _SessionID; - public int SessionID - { - get { return _SessionID; } - set { _SessionID = value; } - } - #region Factory Methods - public static void Execute(int sessionID) - { - SessionEnd cmd = new SessionEnd(); - cmd.SessionID = sessionID; - DataPortal.Execute(cmd); - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_SessionEnd", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.Parameters.AddWithValue("@SessionID", SessionID); - cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session End Error", ex); - throw new ApplicationException("Failure on Session End", ex); - } - } - #endregion - } - public class SessionCheckOutItem : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private int _SessionID; - public int SessionID - { - get { return _SessionID; } - set { _SessionID = value; } - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private int _ItemType; - public int ItemType - { - get { return _ItemType; } - set { _ItemType = value; } - } - private int _OwnerID; - public int OwnerID - { - get { return _OwnerID; } - set { _OwnerID = value; } - } - #region Factory Methods - public static int Execute(int sessionID, int itemID, CheckOutType itemType) - { - SessionCheckOutItem cmd = new SessionCheckOutItem(); - cmd.SessionID = sessionID; - cmd.ItemID = itemID; - cmd.ItemType = (int)itemType; - cmd = DataPortal.Execute(cmd); - return cmd.OwnerID; - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_SessionCheckOutItem", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.Parameters.AddWithValue("@SessionID", SessionID); - cmd.Parameters.AddWithValue("@ItemID", ItemID); - cmd.Parameters.AddWithValue("@ItemType", ItemType); - SqlParameter parm = cmd.Parameters.AddWithValue("@OwnerID", 0); - parm.Direction = ParameterDirection.Output; - cmd.ExecuteNonQuery(); - OwnerID = (int)cmd.Parameters["@OwnerID"].Value; - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session End Error", ex); - throw new ApplicationException("Failure on Session End", ex); - } - } - #endregion - } - public class SessionCheckInItem : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private int _OwnerID; - public int OwnerID - { - get { return _OwnerID; } - set { _OwnerID = value; } - } - private int _ItemID; - #region Factory Methods - public static void Execute(int ownerID) - { - SessionCheckInItem cmd = new SessionCheckInItem(); - cmd.OwnerID = ownerID; - DataPortal.Execute(cmd); - } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_SessionCheckInItem", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.Parameters.AddWithValue("@OwnerID", OwnerID); - cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session End Error", ex); - throw new ApplicationException("Failure on Session End", ex); - } - } - #endregion - } - public class SessionChangedContents : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private Int64 _LastContentChange; - public Int64 LastContentChange - { - get { return _LastContentChange; } - set { _LastContentChange = value; } - } - private Dictionary _ChangedContents; - public Dictionary ChangedContents - { - get { return _ChangedContents; } - set { _ChangedContents = value; } - } - #region Factory Methods - public static Dictionary Execute(Int64 lastContentChanged) - { - SessionChangedContents cmd = new SessionChangedContents(); - cmd.LastContentChange = lastContentChanged; - cmd = DataPortal.Execute(cmd); - return cmd.ChangedContents; - } - #endregion - #region Server-Side Code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_ListContentsAfterLastChanged2", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.Parameters.AddWithValue("@LastChanged", LastContentChange); - cmd.Parameters.AddWithValue("@UserID", Volian.Base.Library.VlnSettings.UserID); - SqlDataReader dr = cmd.ExecuteReader(); - ChangedContents = new Dictionary(); - while (dr.Read()) - ChangedContents.Add(dr.GetInt32(0), (Int64)dr.GetSqlInt64(1)); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("SessionChangedContents Error", ex); - throw new ApplicationException("Failure on SessionChangedContents", ex); - } - } - #endregion - } - public class SessionChangedItems : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private Int64 _LastContentChange; - public Int64 LastContentChange - { - get { return _LastContentChange; } - set { _LastContentChange = value; } - } - private Dictionary _ChangedItems; - public Dictionary ChangedItems - { - get { return _ChangedItems; } - set { _ChangedItems = value; } - } - #region Factory Methods - public static Dictionary Execute(Int64 lastContentChanged) - { - SessionChangedItems cmd = new SessionChangedItems(); - cmd.LastContentChange = lastContentChanged; - cmd = DataPortal.Execute(cmd); - return cmd.ChangedItems; - } - #endregion - #region Server-Side Code - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_ListItemsAfterLastChanged", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.Parameters.AddWithValue("@LastChanged", LastContentChange); - cmd.Parameters.AddWithValue("@UserID", Volian.Base.Library.VlnSettings.UserID); - SqlDataReader dr = cmd.ExecuteReader(); - ChangedItems = new Dictionary(); - while (dr.Read()) - ChangedItems.Add(dr.GetInt32(0), (Int64)dr.GetSqlInt64(1)); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("SessionChangedItems Error", ex); - throw new ApplicationException("Failure on SessionChangedItems", ex); - } - } - #endregion - } - #endregion - #region OwnerInfo stuff - public partial class OwnerInfoList - { - public static OwnerInfoList GetBySessionID(int sessionID) - { - OwnerInfoList tmp = DataPortal.Fetch(new GetBySessionIDCriteria(sessionID)); - return tmp; - } - [Serializable()] - protected class GetBySessionIDCriteria - { - private int _SessionID; - public int SessionID { get { return _SessionID; } } - public GetBySessionIDCriteria(int sessionID) - { - _SessionID = sessionID; - } - } - private void DataPortal_Fetch(GetBySessionIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getOwnersBySessionID"; - cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new OwnerInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("OwnerInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("OwnerInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - public static OwnerInfoList GetByVersionID(int versionID) - { - try - { - OwnerInfoList tmp = DataPortal.Fetch(new GetByVersionIDCriteria(versionID)); - return tmp; - } - catch (Exception ex) - { - if (ex.Message.Contains("Could not find stored procedure")) - System.Windows.Forms.MessageBox.Show("Have your DBA run the latest version of PROMSFixes.SQL", "SQL code is not current", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Exclamation); - return null; - } - } - [Serializable()] - protected class GetByVersionIDCriteria - { - private int _VersionID; - public int VersionID { get { return _VersionID; } } - public GetByVersionIDCriteria(int versionID) - { - _VersionID = versionID; - } - } - private void DataPortal_Fetch(GetByVersionIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getOwnersByVersionID"; - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new OwnerInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("OwnerInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("OwnerInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - } - public partial class OwnerInfo - { - public static OwnerInfo GetBySessionIDandFolderID(int sessionID, int folderID) - { - try - { - OwnerInfo tmp = DataPortal.Fetch(new GetBySessionIDandFolderIDCriteria(sessionID, folderID)); - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up SessionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on OwnerInfo.GetBySessionIDandFolderID", ex); - } - } - [Serializable()] - protected class GetBySessionIDandFolderIDCriteria - { - private int _SessionID; - public int SessionID - { get { return _SessionID; } } - private int _FolderID; - public int FolderID - { get { return _FolderID; } } - public GetBySessionIDandFolderIDCriteria(int sessionID, int folderID) - { - _SessionID = sessionID; - _FolderID = folderID; - } - } - private void DataPortal_Fetch(GetBySessionIDandFolderIDCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfo.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 = "getOwnerBySessionIDandFolderID"; - cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); - cm.Parameters.AddWithValue("@FolderID", criteria.FolderID); - 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("OwnerInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("OwnerInfo.DataPortal_Fetch", ex); - } - } - public static OwnerInfo GetBySessionIDandVersionID(int sessionID, int versionID) - { - try - { - OwnerInfo tmp = DataPortal.Fetch(new GetBySessionIDandVersionIDCriteria(sessionID, versionID)); - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up SessionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on OwnerInfo.GetBySessionIDandVersionID", ex); - } - } - [Serializable()] - protected class GetBySessionIDandVersionIDCriteria - { - private int _SessionID; - public int SessionID - { get { return _SessionID; } } - private int _VersionID; - public int VersionID - { get { return _VersionID; } } - public GetBySessionIDandVersionIDCriteria(int sessionID, int versionID) - { - _SessionID = sessionID; - _VersionID = versionID; - } - } - private void DataPortal_Fetch(GetBySessionIDandVersionIDCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfo.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 = "getOwnerBySessionIDandVersionID"; - cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - 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("OwnerInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("OwnerInfo.DataPortal_Fetch", ex); - } - } - public static OwnerInfo GetByItemID(int itemID, CheckOutType itemType) - { - try - { - OwnerInfo tmp = DataPortal.Fetch(new GetByItemIDCriteria(itemID, itemType)); - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up SessionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on OwnerInfo.GetByItemID", ex); - } - } - [Serializable()] - protected class GetByItemIDCriteria - { - private int _ItemID; - public int ItemID - { get { return _ItemID; } } - private CheckOutType _ItemType; - public CheckOutType ItemType - { get { return _ItemType; } } - public GetByItemIDCriteria(int itemID, CheckOutType itemType) - { - _ItemID = itemID; - _ItemType = itemType; - } - } - private void DataPortal_Fetch(GetByItemIDCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfo.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 = "getOwnerByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - cm.Parameters.AddWithValue("@ItemType", (int)criteria.ItemType); - 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("OwnerInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("OwnerInfo.DataPortal_Fetch", ex); - } - } - public string SessionUserID - { - get - { - SessionInfo si = SessionInfo.Get(this.SessionID); - return si.UserID; - } - } - } - #endregion - #region UserInfo stuff - public partial class UserInfo - { - public static bool CanEdit(UserInfo myUserInfo, DocVersionInfo myDVI) - { - return myUserInfo!=null && myDVI!=null && (myUserInfo.IsAdministrator() || myUserInfo.IsSetAdministrator(myDVI) || myUserInfo.IsWriter(myDVI)); - } - public static bool CanEditROs(UserInfo myUserInfo, DocVersionInfo myDVI) - { - return myUserInfo != null && myDVI != null && myUserInfo.IsAdministrator() || myUserInfo.IsSetAdministrator(myDVI) || myUserInfo.IsROEditor(myDVI); - } - public static bool CanCreateFolders(UserInfo myUserInfo, DocVersionInfo myDVI) - { - return myUserInfo != null && myDVI != null && myUserInfo.IsAdministrator() || myUserInfo.IsSetAdministrator(myDVI); - } - public static bool CanCreateFolders(UserInfo myUserInfo, FolderInfo fi) - { - return myUserInfo != null && fi != null && myUserInfo.IsAdministrator() || myUserInfo.IsSetAdministrator(fi); - } - public bool IsAdministrator() - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (ai.FolderID == 1 && ai.MyRole.Name == "Administrator") - return true; - } - } - } - return false; - } - public bool IsSetAdministrator(FolderInfo fi) - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - Dictionary folders = new Dictionary(); - //FolderInfo fi = FolderInfo.Get(dv.MyFolder.FolderID); - while (fi.FolderID > 1) - { - folders.Add(fi.FolderID, fi.FolderID); - fi = fi.MyParent; - } - folders.Add(1, 1); - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (folders.ContainsKey(ai.FolderID) && ai.MyRole.Name == "Set Administrator") - return true; - } - } - } - return false; - } - public bool IsSetAdministrator(DocVersionInfo dv) - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - Dictionary folders = new Dictionary(); - FolderInfo fi = FolderInfo.Get(dv.MyFolder.FolderID); - while (fi.FolderID > 1) - { - folders.Add(fi.FolderID, fi.FolderID); - fi = fi.MyParent; - } - folders.Add(1, 1); - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (folders.ContainsKey(ai.FolderID) && ai.MyRole.Name == "Set Administrator") - return true; - } - } - } - return false; - } - public bool IsWriter(DocVersionInfo dv) - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - Dictionary folders = new Dictionary(); - FolderInfo fi = FolderInfo.Get(dv.MyFolder.FolderID); - while (fi.FolderID > 1) - { - folders.Add(fi.FolderID, fi.FolderID); - fi = fi.MyParent; - } - folders.Add(1, 1); - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (folders.ContainsKey(ai.FolderID) && ai.MyRole.Name == "Writer") - return true; - } - } - } - return false; - } - public bool IsReviewer(DocVersionInfo dv) - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - Dictionary folders = new Dictionary(); - FolderInfo fi = FolderInfo.Get(dv.MyFolder.FolderID); - while (fi.FolderID > 1) - { - folders.Add(fi.FolderID, fi.FolderID); - fi = fi.MyParent; - } - folders.Add(1, 1); - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (folders.ContainsKey(ai.FolderID) && ai.MyRole.Name == "Reviewer") - return true; - } - } - } - return false; - } - public bool IsROEditor(DocVersionInfo dv) - { - if (this.UserMembershipCount == 0) - return false; - foreach (MembershipInfo mi in this.UserMemberships) - { - if (mi.EndDate == string.Empty) - { - Dictionary folders = new Dictionary(); - FolderInfo fi = FolderInfo.Get(dv.MyFolder.FolderID); - while (fi.FolderID > 1) - { - folders.Add(fi.FolderID, fi.FolderID); - fi = fi.MyParent; - } - folders.Add(1, 1); - foreach (AssignmentInfo ai in mi.MyGroup.GroupAssignments) - { - if (folders.ContainsKey(ai.FolderID) && ai.MyRole.Name == "RO Editor") - return true; - } - } - } - return false; - } - public static UserInfo GetByUserID(string userID) - { - try - { - UserInfo tmp = DataPortal.Fetch(new GetByUserIDCriteria(userID)); - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up SessionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on UserInfo.GetByUserID", ex); - } - } - [Serializable()] - protected class GetByUserIDCriteria - { - private string _UserID; - public string UserID - { get { return _UserID; } } - public GetByUserIDCriteria(string userID) - { - _UserID = userID; - } - } - private void DataPortal_Fetch(GetByUserIDCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] UserInfo.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 = "getUserByUserID"; - cm.Parameters.AddWithValue("@UserID", criteria.UserID); - 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("UserInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("UserInfo.DataPortal_Fetch", ex); - } - } - } - #endregion -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/PermissionExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/PermissionExt.cs deleted file mode 100644 index cd20042e..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/PermissionExt.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace VEPROMS.CSLA.Library -{ - public partial class Permission - { - private static List _permADLookup; - private static List _permLevelLookup; - private static void setupLookup() - { - if (_permADLookup == null) - { - _permADLookup = new List(); - _permADLookup.Add(new vlnValueKey(0,"Allow")); - _permADLookup.Add(new vlnValueKey(1, "Deny")); - } - if (_permLevelLookup == null) - { - _permLevelLookup = new List(); - _permLevelLookup.Add(new vlnValueKey(0, "Security")); - _permLevelLookup.Add(new vlnValueKey(1, "System")); - _permLevelLookup.Add(new vlnValueKey(2, "RO")); - _permLevelLookup.Add(new vlnValueKey(3, "Procedure")); - _permLevelLookup.Add(new vlnValueKey(4, "Sections")); - _permLevelLookup.Add(new vlnValueKey(5, "Steps")); - _permLevelLookup.Add(new vlnValueKey(6, "Comments")); - } - } - public static List PermADLookup - { - get { setupLookup(); return _permADLookup; } - } - public static List PermLevelLookup - { - get { setupLookup(); return _permLevelLookup; } - } - public bool ReadAccess - { - get { return ((PermValue & 1) == 1); } - set { PermValue = (value?PermValue|1:PermValue^(PermValue&1));} - } - public bool WriteAccess - { - get { return ((PermValue & 2) == 2); } - set { PermValue = (value ? PermValue | 2 : PermValue ^ (PermValue & 2)); } - } - public bool CreateAccess - { - get { return ((PermValue & 4) == 4); } - set { PermValue = (value ? PermValue | 4 : PermValue ^ (PermValue & 4)); } - } - public bool DeleteAccess - { - get { return ((PermValue & 8) == 8); } - set { PermValue = (value ? PermValue | 8 : PermValue ^ (PermValue & 8)); } - } - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual int DefaultPermad - // { - // get { return 0; } - // } - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ROFSTExt.cs.bak b/PROMS/VEPROMS.CSLA.Library/Extension/ROFSTExt.cs.bak deleted file mode 100644 index 592ff8c8..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ROFSTExt.cs.bak +++ /dev/null @@ -1,808 +0,0 @@ -// ======================================================================== -// Copyright 2006 - Volian Enterprises, Inc. All rights reserved. -// Volian Enterprises - Proprietary Information - DO NOT COPY OR DISTRIBUTE -// ------------------------------------------------------------------------ -// $Workfile: $ $Revision: $ -// $Author: $ $Date: $ -// -// $History: $ -// ======================================================================== - -using System; -using System.Collections.Generic; -using System.Collections.Specialized; -using System.Text; -using System.IO; -using System.Xml.Serialization; -using System.Xml; -using System.Xml.XPath; -using System.Text.RegularExpressions; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace VEPROMS.CSLA.Library -{ - public partial class ROFst - { - // put in for debug - //public static int CacheCountPrimaryKey - //{ get { return _CacheByPrimaryKey.Count; } } - //public static int CacheCountByRODbID_DTS - //{ get { return _CacheByRODbID_DTS.Count; } } - //public static int CacheCountList - //{ get { return _CacheList.Count; } } - - [NonSerialized] - private ROFSTLookup _ROFSTLookup; - public ROFSTLookup ROFSTLookup - { - get - { - if (_ROFSTLookup == null) - { - _ROFSTLookup = new ROFSTLookup(this); - } - return _ROFSTLookup; - } - } - public static ROFst GetJustROFst(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 PKCriteriaJustROFst(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); - } - } - [Serializable()] - protected class PKCriteriaJustROFst - { - private int _ROFstID; - public int ROFstID - { get { return _ROFstID; } } - public PKCriteriaJustROFst(int rOFstID) - { - _ROFstID = rOFstID; - } - } - private void DataPortal_Fetch(PKCriteriaJustROFst 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 = "getJustROFst"; - 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); - } - } - - } - public delegate List ROFstInfoROTableUpdateEvent(object sender, ROFstInfoROTableUpdateEventArgs args); - public partial class ROFstInfo - { - // put in for debug - //public static int CacheCountPrimaryKey - //{ get { return _CacheByPrimaryKey.Count; } } - //public static int CacheCountList - //{ get { return _CacheList.Count; } } - #region Log4Net - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region PropertiesAndData - private DocVersionInfo _docVer; - public DocVersionInfo docVer - { - get - { - if (_docVer == null) - { - if (ROFstAssociations.Count == 0) return null; -// _docVer = DocVersion.Get(this.ROFstAssociations[0].MyDocVersion.VersionID); - _docVer = this.ROFstAssociations[0].MyDocVersion; - } - return _docVer; - } - set - { - _docVer = value; - - } - } - [NonSerialized] - private ROFSTLookup _ROFSTLookup; - public ROFSTLookup ROFSTLookup - { - get - { - if (_ROFSTLookup == null) - { - _ROFSTLookup = new ROFSTLookup(this); - } - return _ROFSTLookup; - } - } - #endregion - #region AppSupport - //public static ROImageInfo Get(RODbInfo rodbinfo, string filename) - //{ - // if (rodbinfo.RODbROImageCount != 0) - // { - // foreach (ROImageInfo ri in rodbinfo.RODbROImages) - // { - // if (ri.FileName == filename) return ri; - // } - // } - // return null; - //} - public string GetDefaultROPrefix() - { - if (docVer != null) - return docVer.DocVersionConfig.RODefaults_setpointprefix; - else - return "SP1"; // Not Sure about this... - } - public string GetDefaultGraphicsPrefix() - { - if (docVer != null) - return docVer.DocVersionConfig.RODefaults_graphicsprefix; - else - return "IG1"; // Not Sure about this... - } - #region Add New Ro Fst - /// - /// Adds an ro.fst into a sql database. - /// - /// - /// ROFst: Returns the created rofst object - public static ROFst AddRoFst(RODbInfo rdi, DocVersion docver) - { - string rofstfilepath = rdi.FolderPath + @"\ro.fst"; - DirectoryInfo di = new DirectoryInfo(rdi.FolderPath); - if (!di.Exists) return null; - if (!File.Exists(rofstfilepath)) return null; - - // check if this rofst has been loaded, i.e. dts on file versus dts in db... - // if so, just make association with docversion. - ROFst rofst = ROFst.GetByRODbID_DTS(rdi.RODbID, di.LastWriteTimeUtc); - if (rofst != null) - { - docver.DocVersionAssociations.Add(rofst); - docver.Save(); - return rofst; - } - - // Next read in the rofst & make the rofst record. - FileStream fsIn = new FileStream(rofstfilepath, FileMode.Open, FileAccess.Read, FileShare.Read); - // Create an instance of StreamReader that can read characters from the FileStream. - BinaryReader r = new BinaryReader(fsIn); - byte[] ab = r.ReadBytes((int)fsIn.Length); - fsIn.Close(); - - using (RODb rodb = RODb.Get(rdi.RODbID)) - { - using (ROImageInfoList myROImages = ROImageInfoList.GetByRODbID(rdi.RODbID)) - { - Dictionary myExistingROImages = BuildROImagesList(myROImages); - List myUnChangedROImages = new List(); - List myAddedROImages = new List(); - rofst = ROFst.MakeROFst(rodb, ab, null, di.LastWriteTimeUtc, rdi.UserID); - // Hook this into the current docversion by replacing the rofstid field in the doc version - // association object: - docver.DocVersionAssociations.Add(rofst); - docver.Save(); - - // Now load any images in... type 8 - integrated graphics ro type - for (int i = 0; i < rofst.ROFSTLookup.myHdr.myDbs.Length; i++) - { - // walk through the rofst 'database' searching for all nodes that are integrated graphics, type 8: - if (rofst.ROFSTLookup.myHdr.myDbs[i].children != null) - { - using (ROFstInfo rfi = ROFstInfo.Get(rofst.ROFstID)) - { - rfi.MigrateRoFstGraphics(rdi, rofst.ROFSTLookup.myHdr.myDbs[i].children, rodb, rofst, myExistingROImages, myUnChangedROImages, myAddedROImages);// TODO: Need to add MyImages - } - } - } - if (myUnChangedROImages.Count > 0) - using (FigureInfoList fil = FigureInfoList.AddByROFstIDImageIDs(rofst.ROFstID, buildImageIDString(myUnChangedROImages))) ; - return rofst; - } - } - } - #endregion - #region Update Ro Values - /// - /// Updates an ro.fst into a sql database. - /// - /// - /// ROFst: Returns the created rofst object - public static ROFst UpdateRoFst(RODbInfo rdi, DocVersionAssociation dva, DocVersion docver, ROFstInfo origROFst) - { - DirectoryInfo di = new DirectoryInfo(rdi.FolderPath); - // check if this rofst has been loaded, i.e. dts on file versus dts in db... - // if so, just make association to existing with docversion. - ROFst rofst = ROFst.GetByRODbID_DTS(rdi.RODbID, di.LastWriteTimeUtc); - if (rofst != null) - { - docver.DocVersionAssociations[0].MyROFst = rofst; - docver.Save(); - return rofst; - } - - // Read in the rofst & make the rofst record. - string rofstfilepath = rdi.FolderPath + @"\ro.fst"; - FileStream fsIn = new FileStream(rofstfilepath, FileMode.Open, FileAccess.Read, FileShare.Read); - // Create an instance of StreamReader that can read characters from the FileStream. - BinaryReader r = new BinaryReader(fsIn); - byte[] ab = r.ReadBytes((int)fsIn.Length); - fsIn.Close(); - using (RODb rodb = RODb.GetJustRoDb(rdi.RODbID)) - { - rofst = ROFst.MakeROFst(rodb, ab, null, di.LastWriteTimeUtc, rdi.UserID); - // Hook this into the current docversion by replacing the rofstid field in the doc version - // association object: - dva.MyROFst = rofst; - docver.Save(); - // Now load any images in... type 8 - integrated graphics ro type - using (ROImageInfoList myROImages = ROImageInfoList.GetByRODbIDNoData(rdi.RODbID)) - { - Dictionary myExistingROImages = BuildROImagesList(myROImages); - List myUnChangedROImages = new List(); - List myAddedROImages = new List(); - using (ROFstInfo rfi = ROFstInfo.Get(rofst.ROFstID)) - { - for (int i = 0; i < rofst.ROFSTLookup.myHdr.myDbs.Length; i++) - { - // walk through the rofst 'database' searching for all nodes that are integrated graphics, type 8: - if (rofst.ROFSTLookup.myHdr.myDbs[i].children != null) - { - rfi.MigrateRoFstGraphics(rdi, rofst.ROFSTLookup.myHdr.myDbs[i].children, rodb, rofst, myExistingROImages, myUnChangedROImages, myAddedROImages); - } - } - } - // Add references for existing RO Images to the Figure table (Figure table relates ro.fst with its images) - if (myUnChangedROImages.Count > 0) - using (FigureInfoList fil = FigureInfoList.AddByROFstIDImageIDs(rofst.ROFstID, buildImageIDString(myUnChangedROImages))) ; - } - // Now update the usages: compare old to new rofsts and update usages accordingly, i.e. modified - // values, deleted ros, etc. - UpdateROValuesText(origROFst, rofst); - return rofst; - } - } - private static Dictionary BuildROImagesList(ROImageInfoList myROImages) - { - Dictionary myRoImagesList = new Dictionary(); - foreach (ROImageInfo myROImage in myROImages) - myRoImagesList.Add(ROImageKey(myROImage.FileName, myROImage.DTS),myROImage.ImageID); - return myRoImagesList; - } - private static string ROImageKey(string fileName, DateTime dts) - { - return string.Format("{0}:{1}", fileName, dts); - } - private static string buildImageIDString(List myROImageIDs) - { - StringBuilder sb = new StringBuilder(); - string sep = ""; - foreach (int imageID in myROImageIDs) - { - sb.Append(sep + imageID.ToString()); - sep = ","; - } - return sb.ToString(); - } - private static void UpdateROValuesText(ROFstInfo origROFstInfo, ROFst newROFst) - { - ROFSTLookup origLU = new ROFSTLookup(origROFstInfo); - ROFSTLookup newLU = new ROFSTLookup(newROFst); - List delList = new List(); - List chgList = newLU.GetValueDifferences(origLU, ref delList); - string RoidList = GetRoidList(newROFst.RODbID, chgList); - List activeRoids = BuildActiveROIDsForRoUsages(RoidList); - foreach (string chg in chgList) - { - if (activeRoids.Contains(chg)) - { - ROFSTLookup.rochild roch = newLU.GetRoChild(chg); - string desc = string.Format("Change in RO Values: Old value = {0}, New value = {1}", origLU.GetRoValue(chg), roch.value); - // roid's are stored in database as 16 characters long in the rousages table. They may be stored - // as 12 characters in the ro.fst. - string padroid = chg.Length <= 12 ? chg + "0000" : chg; - using (RoUsageInfoList affected = RoUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, padroid, desc, "Changed")) - { - foreach (RoUsageInfo roUsg in affected) - { - using (Content content = Content.Get(roUsg.MyContent.ContentID)) - { - foreach (ItemInfo ii in roUsg.MyContent.ContentItems) - { - string val = newLU.GetTranslatedRoValue(padroid, ii.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); - content.FixContentText(roUsg, val, roch.type, origROFstInfo); - if (content.IsDirty) - { - // Update UserID and DTS when RO Value is updated. - content.UserID = Volian.Base.Library.VlnSettings.UserID; - content.DTS = DateTime.Now; - content.Save(); - } - } - } - } - } - } - } - activeRoids = BuildActiveROIDsForDRoUsages(RoidList); - foreach (string chg in chgList) - { - if (activeRoids.Contains(chg)) - { - ROFSTLookup.rochild roch = newLU.GetRoChild(chg); - string desc = string.Format("Change in RO Values: Old value = {0}, New value = {1}", origLU.GetRoValue(chg), roch.value); - // roid's are stored in database as 16 characters long in the rousages table. They may be stored - // as 12 characters in the ro.fst. - string padroid = chg.Length <= 12 ? chg + "0000" : chg; - using (DROUsageInfoList affected = DROUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, padroid.Substring(0,12), desc, "Changed")) - { - foreach (DROUsageInfo droUsg in affected) - { - Pdf.DeleteAll(droUsg.DocID); - } - } - } - } - foreach (string del in delList) - { - string desc = string.Format("Deleted RO: Value = {0}", origLU.GetRoValue(del)); - string padroiddel = del.Length <= 12 ? del + "0000" : del; - using (RoUsageInfoList affected = RoUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, padroiddel, desc, "Deleted")) - { - foreach (RoUsageInfo roUsg in affected) - { - using (Content content = Content.Get(roUsg.MyContent.ContentID)) - { - content.FixContentText(roUsg, "?", 0, origROFstInfo); - if (content.IsDirty) - { - // Update UserID and DTS when RO Value is updated. - content.UserID = Volian.Base.Library.VlnSettings.UserID; - content.DTS = DateTime.Now; - content.Save(); - } - } - } - } - using (DROUsageInfoList Daffected = DROUsageInfoList.GetAffected(origROFstInfo.MyRODb.RODbID, del.Substring(0,12), desc, "Deleted")) - { - foreach (DROUsageInfo droUsg in Daffected) - { - Pdf.DeleteAll(droUsg.DocID); - } - } - } - } - private static List BuildActiveROIDsForRoUsages(string RoidList) - { - List activeRoids = new List(); - using (RoUsageInfoList activeList = RoUsageInfoList.GetROUSagesByROIDs(RoidList)) - { - foreach (RoUsageInfo roui in activeList) - { - string roid = roui.ROID.ToUpper(); - if (roid.EndsWith("0000")) roid = roid.Substring(0, 12); - if (!activeRoids.Contains(roid)) - activeRoids.Add(roid); - } - } - return activeRoids; - } - private static List BuildActiveROIDsForDRoUsages(string RoidList) - { - List activeRoids = new List(); - using (DROUsageInfoList activeList = DROUsageInfoList.GetDROUsagesByROIDs(RoidList)) - { - foreach (DROUsageInfo roui in activeList) - { - string roid = roui.ROID; - if (roid.EndsWith("0000")) roid = roid.Substring(0, 12); - if (!activeRoids.Contains(roid)) - activeRoids.Add(roid); - } - } - return activeRoids; - } - private static string GetRoidList(int dbid, List chgList) - { - StringBuilder sb = new StringBuilder(string.Format("{0}", dbid)); - string sep=":"; - foreach (string roid in chgList) - { - sb.Append(sep + roid); - sep = ","; - } - return sb.ToString(); - } - private static string NewROName(string roName) - { - string retval = roName; - int iSuffix = -1; - RODbInfoList rodblist = RODbInfoList.Get(); - - - foreach (RODbInfo rdi in rodblist) - { - if (rdi.ROName.StartsWith(roName)) - { - if (rdi.ROName == roName) - iSuffix = 0; - else if (Regex.IsMatch(rdi.ROName, roName + "[_][0-9]+")) - { - int ii = int.Parse(rdi.ROName.Substring(1 + roName.Length)); - if (ii > iSuffix) iSuffix = ii; - } - } - } - if (iSuffix >= 0) - retval = string.Format("{0}_{1}", roName, iSuffix + 1); - return retval; - } - private void MigrateRoFstGraphics(RODbInfo rdi, ROFSTLookup.rochild[] rochild, RODb rodb, ROFst rofst, Dictionary myExistingROImages, List myUnChangedROImages, List myAddedROImages) - { - for (int i = 0; i < rochild.Length; i++) - { - if (rochild[i].type == 8) this.AddGraphic(rdi, rochild[i].value, rodb, rofst, myExistingROImages, myUnChangedROImages, myAddedROImages); - if (rochild[i].children != null) this.MigrateRoFstGraphics(rdi, rochild[i].children, rodb, rofst, myExistingROImages, myUnChangedROImages, myAddedROImages); - } - } - private void AddGraphic(RODbInfo rdi, string p, RODb rodb, ROFst rofst, Dictionary myExistingROImages, List myUnChangedROImages, List myAddedROImages) - { - if (p == null) return; - string imgname = p.Substring(0, p.IndexOf('\n')); - int thedot = imgname.LastIndexOf('.'); - string fname = imgname; - if (thedot == -1 || (thedot != (imgname.Length - 4))) - { - RODbConfig roDbCfg = new RODbConfig(rdi.Config); - fname += string.Format(".{0}", roDbCfg.GetDefaultGraphicExtension()); - } - - string imgfile = rdi.FolderPath + @"\" + fname; - - ROImage roImg = null; - if (File.Exists(imgfile)) - { - FileInfo fi = new FileInfo(imgfile); - // if the roimage record exists, don't create a new one... - string key = ROImageKey(imgname, fi.LastWriteTimeUtc); - if (myExistingROImages.ContainsKey(key)) - { - int imageID = myExistingROImages[key]; - if (!myUnChangedROImages.Contains(imageID)) - myUnChangedROImages.Add(imageID); - } - else - { - if (!myAddedROImages.Contains(key)) - { - FileStream fsIn = new FileStream(imgfile, FileMode.Open, FileAccess.Read, FileShare.Read); - BinaryReader r = new BinaryReader(fsIn); - byte[] ab = r.ReadBytes((int)fsIn.Length); - r.Close(); - fsIn.Close(); - byte[] cmp = ROImageInfo.Compress(ab); - int existingImageID = FindExisting(myExistingROImages, imgname, imgfile, cmp, ab); - if (existingImageID != 0) - { - if (!myUnChangedROImages.Contains(existingImageID)) - myUnChangedROImages.Add(existingImageID); - return; - } - ROImageConfig rc = new ROImageConfig(); - rc.Image_Size = ab.Length.ToString(); - using (roImg = ROImage.MakeROImage(rodb, imgname, ROImageInfo.Compress(ab), rc.ToString(), fi.LastWriteTimeUtc, "Migration")) - { - using (Figure figure = Figure.GetByROFstID_ImageID(this.ROFstID, roImg.ImageID)) - { - if (figure != null) return; - Figure.MakeFigure(rofst, roImg, null).Dispose(); - myAddedROImages.Add(key); - } - } - } - } - } - } - - private int FindExisting(Dictionary myExistingROImages, string imgname, string imgfile, byte[] cmpFileContents, byte[] fileContents) - { - // the reason the following check is necessary is that the DTS can be off by hours - // because of the way windows handles Daylight savings time for file DTS. - - FileInfo fi = new FileInfo(imgfile); - DateTime dts = fi.LastWriteTimeUtc; - - // loop through myExistingROImages looking for matching name. - foreach (string key in myExistingROImages.Keys) - { - // if found, compare the date/time stamp - string part1 = Regex.Replace(key, ":.*$", ""); - string part2 = Regex.Replace(key, "^.*?:", ""); - if (part1.ToUpper() == imgname.ToUpper()) - { - // if date/time stamps matches date, minutes & seconds, compare contents - string cmp1 = Regex.Replace(dts.ToString(), " [0-9]*:", " x:"); - cmp1 = Regex.Replace(cmp1, " [AP]", " x"); - string cmp2 = Regex.Replace(part2, " [0-9]*:", " x:"); - cmp2 = Regex.Replace(cmp2, " [AP]", " x"); - if (cmp1==cmp2) - { - // compare contents - int imgId = myExistingROImages[key]; - using (ROImageInfo roii = ROImageInfo.Get(imgId)) - { - ROImageConfig roicfg = new ROImageConfig(roii); - int size = Convert.ToInt32(roicfg.Image_Size); - byte[] tmpb = ROImageInfo.Decompress(roii.Content, size); - - if (ByteArrayCompare(roii.Content, cmpFileContents)) - return imgId; - if (ByteArrayCompare(tmpb, fileContents)) - return imgId; - } - } - } - } - return 0; - } - - private bool ByteArrayCompare(byte[] ba1, byte[] ba2) - { - // we wrote our own byte array comparinson because the system's 'equals' did not work! - if (ba1.Length != ba2.Length) return false; - for (int i = 0; i < ba1.Length; i++) - if (ba1[i] != ba2[i]) return false; - return true; - } - - private ROImageInfo GetMyImage(Dictionary myImages, string imgname, DateTime dts) - { - string key = string.Format("{0}:{1}", imgname, dts); - if(myImages.ContainsKey(key)) - return myImages[key]; - return null; - } - #endregion - #endregion - public bool IsSetpointDB(int id) - { - ROFSTLookup.rodbi[] dbs = ROFSTLookup.GetRODatabaseList(); - foreach (ROFSTLookup.rodbi rodbi in dbs) - { - if (id == rodbi.dbiID) - return (rodbi.dbiAP.StartsWith("SP")); - } - return false; - } - public event ROFstInfoROTableUpdateEvent ROTableUpdate; - public List OnROTableUpdate(object sender, ROFstInfoROTableUpdateEventArgs args) - { - if (ROTableUpdate != null) return ROTableUpdate(sender, args); - return null; - } - public static ROFstInfo GetJustROFst(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 PKCriteriaJustROFst(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); - } - } - [Serializable()] - protected class PKCriteriaJustROFst - { - private int _ROFstID; - public int ROFstID - { get { return _ROFstID; } } - public PKCriteriaJustROFst(int rOFstID) - { - _ROFstID = rOFstID; - } - } - private void DataPortal_Fetch(PKCriteriaJustROFst 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 = "getJustROFst"; - 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); - } - } - - } - public class ROFstInfoROTableUpdateEventArgs - { - private string _ROText; - public string ROText - { - get { return _ROText; } - set { _ROText = value; } - } - private string _OldGridXml; - public string OldGridXml - { - get { return _OldGridXml; } - set { _OldGridXml = value; } - } - public ROFstInfoROTableUpdateEventArgs(string rotext, string oldgridxml) - { - _ROText = rotext; - _OldGridXml = oldgridxml; - } - } - public partial class ROFstInfoList - { - [Serializable()] - private class RoFstSizeCriteria - { - public RoFstSizeCriteria(int roDbID, int len) - { - _RODbID = roDbID; - _Len = len; - } - private int _RODbID; - public int RODbID - { - get { return _RODbID; } - set { _RODbID = value; } - } - private int _Len; - public int Len - { - get { return _Len; } - set { _Len = value; } - } - } - public static ROFstInfoList GetBySize(int roDbID, int len) - { - try - { - ROFstInfoList tmp = DataPortal.Fetch(new RoFstSizeCriteria(roDbID, len)); - ROFstInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RoFstInfoList.GetBySize", ex); - } - } - private void DataPortal_Fetch(RoFstSizeCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstInfoList.DataPortal_FetchBySize", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRoFstBySize"; - cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); - cm.Parameters.AddWithValue("@Len", criteria.Len); - - 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_FetchBySize", ex); - throw new DbCslaException("ROFstInfoList.DataPortal_FetchBySize", ex); - } - this.RaiseListChangedEvents = true; - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/ROFSTValue.cs b/PROMS/VEPROMS.CSLA.Library/Extension/ROFSTValue.cs deleted file mode 100644 index c57f7997..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/ROFSTValue.cs +++ /dev/null @@ -1,195 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace VEPROMS.CSLA.Library -{ - public partial class ROFST - { - private string _ROValue = ""; - private List lstRoValues; - private Dictionary DictROVar = new Dictionary(); - - public List GetROReturnValue(string roval /*, DocVersionInfo docverinfo */) - { - lstRoValues = new List(); - DictROVar = new Dictionary(); // set up a diction of RO defined Variables - string tmp = ProcessRO(docVerInfo.ProcessDocVersionSpecificInfo(roval), false /*, docverinfo */); - if (lstRoValues.Count == 0) // was not a multiple return value - lstRoValues.Add(tmp); - return lstRoValues; - } - - private string ProcessRO(string roval, bool multiRtnVal /*, DocVersionInfo docverinfo*/) - { - string str = roval; - string rtnstr = ""; - int l = roval.Length; - while (l > 0) - { - int ptr = NextDelimiter("{", str); - if (ptr == -1) - { // add remaining text - //add(new seText(str, l)); - rtnstr += str; - l = 0; // break out of while loop - } - else - { - int cnt = ptr; //(int)(ptr - str); - if (cnt > 0) - { // add text - //add(new seText(str, cnt)); - rtnstr += str.Substring(0, cnt); - l -= cnt; - //str = ptr; - str = str.Substring(ptr); - } - ptr = MatchingBrace(str) + 1; - cnt = ptr; //(int)(ptr - str); - bool nfnd = false; - string pbstr = ProcessBrace(str.Substring(1, cnt - 2), cnt - 2, ref nfnd, multiRtnVal /*, docverinfo */); - if (nfnd) - rtnstr += str.Substring(0, cnt); - // add(new seText(str, cnt)); - else - rtnstr += pbstr; - l -= cnt; - //str = ptr; - str = str.Substring(ptr); - } - } - //rtnstr = rtnstr.Replace("`", @"\'b0"); // convert backquote to degree - left over from DOS days. - return rtnstr; - } - - private string ProcessConditional(string cnd, string opt, int lencnd, int lenopt, bool multiRtnVal /*, DocVersionInfo docverinfo */) - { - // equaluate condition - string stat = (docVerInfo != null) ? docVerInfo.Evaluate(cnd,lencnd) : ""; - int ls = stat.Length;//strlen(stat); - if (ls == 0) - return ""; // if evaluation not defined then return an empty string - no matches can be made - // look for match - remember default - string match = null; - int matchlen = 0; - string def = null; - int deflen = 0; - while (lenopt > 0 && match == null) - { - int end = MatchingBrace(opt); - int eq = opt.IndexOf('=');// strchr(opt, '='); - int len = end + 1; //(int)((end + 1) - opt); // +1 to include the '}' - int li = eq - 1;//(int)(eq - opt) - 1; - int ld = len - li - 3;// One for '{', '=' and '}' - if (def == null || eq == 1) // (!def || eq == opt+1) - { - def = opt.Substring(eq + 1); //def=eq+1; - deflen = ld; - } - if (ls == li && (stat.IndexOf(opt.Substring(1),li) > -1)) //(ls == li && !strncmp(stat, opt + 1, li)) - { - match = opt.Substring(eq + 1,ld);// match = eq + 1; - matchlen = ld; - } - opt = opt.Substring(len); //opt += len;// point to the next piece - lenopt -= len; - } - // if match process option - or process default - if (match == null) //(!match) - { - match = def.Substring(0,deflen); - matchlen = deflen; - } - return ProcessRO(match, multiRtnVal /*, docverinfo */); //process(match, matchlen); - } - - private string ProcessBrace(string str, int l, ref bool nfnd, bool multiRtnVal /*, DocVersionInfo docverinfo */) - { - string rtnstr = ""; - int nxt = NextDelimiter("{=", str); //nextDelimiter("{=", str, l); - if (nxt == -1) // no delimiter found - { // VarUse - //strList *found=vl->lookFor(str,l); - bool found = DictROVar.ContainsKey(str); - if (found) - rtnstr = DictROVar[str]; - //add(new seVarUse(found)); - else - nfnd = true; - } - else - { - if (str[nxt] == '{') - { // conditonal or menu - if (nxt == 0) // if (nxt == str) - { // menu - // TODO: implement Menu logic - //ml->process(str, l, vl); - //add(new seMenuUse(ml)); - //lstRoValues.Add(ProcessRO(str.Substring(0,l), true)); - ProcessMultiReturnValues(str, l); - } - else - { // conditional - rtnstr = ProcessConditional(str, str.Substring(nxt), nxt, str.Length - nxt - 1, multiRtnVal /*, docverinfo */);//processCondition(str, nxt, (int)(nxt - str), l - (int)(nxt - str)); - } - } - else - { // must be variable definiton - //vl->add(str, nxt+1, (int)(nxt-str), (l - (int)(nxt-str))-1, ml); - - // 'l' is the lenght up to the matching brace of the variable definition - string tmpval = ProcessRO(str.Substring(nxt + 1, l - nxt - 1), multiRtnVal /*,docverinfo */); - if (tmpval.Equals(string.Empty)) tmpval = " "; // nothing assinged to variable - DictROVar.Add(str.Substring(0, nxt), tmpval); - if (multiRtnVal) - rtnstr = tmpval; - } - } - return rtnstr; - } - - private void ProcessMultiReturnValues(string str, int len) - { - string tstr = str.Substring(0, len); - while (tstr.Length > 0) - { - int idx = MatchingBrace(tstr); - lstRoValues.Add(ProcessRO(tstr.Substring(0,idx+1),true)); - tstr = tstr.Substring(idx+1); - } - } - - - private int MatchingBrace(string str) - { - int level = 1; - int idx = 0; // the while will skip the first position (the first brace) - while (level > 0 && idx++ < str.Length) - { - switch (str[idx]) - { - case '{': - level++; - break; - case '}': - level--; - break; - } - } - if (level != 0) - idx = -1; // didn't find matching brace - - return idx; //length including end brace - } - - private int NextDelimiter(string delim, string str) - { - int idx; - idx = str.IndexOfAny(delim.ToCharArray()); - return idx; - } - - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/RevisionInfoExt.cs.bak b/PROMS/VEPROMS.CSLA.Library/Extension/RevisionInfoExt.cs.bak deleted file mode 100644 index a4ca0812..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/RevisionInfoExt.cs.bak +++ /dev/null @@ -1,1596 +0,0 @@ -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.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 procs) - { - StringBuilder sb = new StringBuilder(""); - 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(""); - OnConsistencyCheckUpdated(null, new ItemInfoListCCEventArgs(null, -1)); - try - { - ItemInfoList tmp = DataPortal.Fetch(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(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(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(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(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(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(new PKCriteria(revisionID)); - // AddToCache(tmp); - //} - RevisionInfo tmp = DataPortal.Fetch(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(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(new PKCriteria(revisionID)); - // AddToCache(tmp); - //} - RevisionInfo tmp = DataPortal.Fetch(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 myROIDs = new List(); - //_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 \v0 - string lookFor = string.Format(@"", myTI.TranType, myTI.TransitionID); - //string lookFor = string.Format(@"", 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(@"", myTI.TranType, myTI.TransitionID); - //string lookFor = string.Format(@"", 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(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(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(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(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.StringDeserialize(xml); - } - public override string ToString() - { - return GenericSerializer.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 _ROCheckList = new SortedDictionary(); - [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(); - 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 _TransitionCheckList = new SortedDictionary(); - [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(); - 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 _LibDocCheckList = new SortedDictionary(); - [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(); - 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 - } - -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/RolePermissionExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/RolePermissionExt.cs deleted file mode 100644 index 333b1975..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/RolePermissionExt.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace VEPROMS.CSLA.Library -{ - public partial class RolePermission : BusinessBase - { - public static RolePermission New() - { - return new RolePermission(1, 1, 1); - } - public bool ReadAccess - { - get { return ((PermValue & 1) == 1); } - set { PermValue = (value ? PermValue | 1 : PermValue ^ (PermValue & 1)); } - } - public bool WriteAccess - { - get { return ((PermValue & 2) == 2); } - set { PermValue = (value ? PermValue | 2 : PermValue ^ (PermValue & 2)); } - } - public bool CreateAccess - { - get { return ((PermValue & 4) == 4); } - set { PermValue = (value ? PermValue | 4 : PermValue ^ (PermValue & 4)); } - } - public bool DeleteAccess - { - get { return ((PermValue & 8) == 8); } - set { PermValue = (value ? PermValue | 8 : PermValue ^ (PermValue & 8)); } - } - public List PermADLookup - { - get { return Permission.PermADLookup; } - } - public List PermLevelLookup - { - get { return Permission.PermLevelLookup; } - } - } - public class PermLookup - { - public List PermADLookup - { - get { return Permission.PermADLookup; } - } - public List PermLevelLookup - { - get { return Permission.PermLevelLookup; } - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/Security/PermissionExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/Security/PermissionExt.cs deleted file mode 100644 index cd20042e..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/Security/PermissionExt.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace VEPROMS.CSLA.Library -{ - public partial class Permission - { - private static List _permADLookup; - private static List _permLevelLookup; - private static void setupLookup() - { - if (_permADLookup == null) - { - _permADLookup = new List(); - _permADLookup.Add(new vlnValueKey(0,"Allow")); - _permADLookup.Add(new vlnValueKey(1, "Deny")); - } - if (_permLevelLookup == null) - { - _permLevelLookup = new List(); - _permLevelLookup.Add(new vlnValueKey(0, "Security")); - _permLevelLookup.Add(new vlnValueKey(1, "System")); - _permLevelLookup.Add(new vlnValueKey(2, "RO")); - _permLevelLookup.Add(new vlnValueKey(3, "Procedure")); - _permLevelLookup.Add(new vlnValueKey(4, "Sections")); - _permLevelLookup.Add(new vlnValueKey(5, "Steps")); - _permLevelLookup.Add(new vlnValueKey(6, "Comments")); - } - } - public static List PermADLookup - { - get { setupLookup(); return _permADLookup; } - } - public static List PermLevelLookup - { - get { setupLookup(); return _permLevelLookup; } - } - public bool ReadAccess - { - get { return ((PermValue & 1) == 1); } - set { PermValue = (value?PermValue|1:PermValue^(PermValue&1));} - } - public bool WriteAccess - { - get { return ((PermValue & 2) == 2); } - set { PermValue = (value ? PermValue | 2 : PermValue ^ (PermValue & 2)); } - } - public bool CreateAccess - { - get { return ((PermValue & 4) == 4); } - set { PermValue = (value ? PermValue | 4 : PermValue ^ (PermValue & 4)); } - } - public bool DeleteAccess - { - get { return ((PermValue & 8) == 8); } - set { PermValue = (value ? PermValue | 8 : PermValue ^ (PermValue & 8)); } - } - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual int DefaultPermad - // { - // get { return 0; } - // } - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/Security/RolePermissionExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/Security/RolePermissionExt.cs deleted file mode 100644 index 333b1975..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/Security/RolePermissionExt.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace VEPROMS.CSLA.Library -{ - public partial class RolePermission : BusinessBase - { - public static RolePermission New() - { - return new RolePermission(1, 1, 1); - } - public bool ReadAccess - { - get { return ((PermValue & 1) == 1); } - set { PermValue = (value ? PermValue | 1 : PermValue ^ (PermValue & 1)); } - } - public bool WriteAccess - { - get { return ((PermValue & 2) == 2); } - set { PermValue = (value ? PermValue | 2 : PermValue ^ (PermValue & 2)); } - } - public bool CreateAccess - { - get { return ((PermValue & 4) == 4); } - set { PermValue = (value ? PermValue | 4 : PermValue ^ (PermValue & 4)); } - } - public bool DeleteAccess - { - get { return ((PermValue & 8) == 8); } - set { PermValue = (value ? PermValue | 8 : PermValue ^ (PermValue & 8)); } - } - public List PermADLookup - { - get { return Permission.PermADLookup; } - } - public List PermLevelLookup - { - get { return Permission.PermLevelLookup; } - } - } - public class PermLookup - { - public List PermADLookup - { - get { return Permission.PermADLookup; } - } - public List PermLevelLookup - { - get { return Permission.PermLevelLookup; } - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/Security/vlnValueKey.cs b/PROMS/VEPROMS.CSLA.Library/Extension/Security/vlnValueKey.cs deleted file mode 100644 index 7b32485f..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/Security/vlnValueKey.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace VEPROMS.CSLA.Library -{ - public class vlnValueKey - { - public vlnValueKey() { ;} - public vlnValueKey(int key, string value) - { - _key = key; - _value = value; - } - private int _key; - public int Key - { - get { return _key; } - } - private string _value; - public string Value - { - get { return _value; } - } - public override string ToString() - { - return _value; - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/TransitionExt.cs.bak b/PROMS/VEPROMS.CSLA.Library/Extension/TransitionExt.cs.bak deleted file mode 100644 index a8ec4eec..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/TransitionExt.cs.bak +++ /dev/null @@ -1,1153 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.SqlClient; -using System.Text.RegularExpressions; -using Csla; -using Csla.Data; - -namespace VEPROMS.CSLA.Library -{ - public partial class TransitionInfo - { - private bool _NewTransToUnNumberedItem = false; - public bool NewTransToUnNumberedItem - { - get { return _NewTransToUnNumberedItem; } - set { _NewTransToUnNumberedItem = value; } - } - public string PathTo - { - get - { - return MyItemToID.Path; - } - } - public string PathFrom - { - get - { - return MyContent.ContentItems[0].Path; - } - } - [NonSerialized] - private TransitionConfig _TransitionConfig; - public TransitionConfig TransitionConfig - { - get - { - if (_TransitionConfig == null) - { - _TransitionConfig = new TransitionConfig(this); - } - return _TransitionConfig; - } - } - public bool HasPageNum - { - get - { - return TransitionConfig.Transition_Formatted.ToUpper() == "TRUE"; - } - } - public string ResolvePathTo(FormatInfo fi, ItemInfo itminfo, int tranType, ItemInfo toitem, ItemInfo rangeitem, bool hasPageNum) - { - try - { - return TransitionText.GetResolvedText(fi, itminfo, tranType, toitem, rangeitem, HasPageNum); - } - catch (Exception ex) - { - if (tranType == 2 && ex.Message == "Cannot find Next Item") - return TransitionText.GetResolvedText(fi, itminfo, tranType, toitem, toitem, HasPageNum); - _MyLog.Error("Error Processing Transition Text", ex); - return "(Resolved Transition Text)"; - } - } - public string ResolvePathTo(FormatInfo fi, ItemInfo itminfo, int tranType, ItemInfo toitem, ItemInfo rangeitem) - { - try - { - return TransitionText.GetResolvedText(fi, itminfo, tranType, toitem, rangeitem, HasPageNum); - } - catch (Exception ex) - { - if (tranType == 2 && ex.Message == "Cannot find Next Item") - return TransitionText.GetResolvedText(fi, itminfo, tranType, toitem, toitem, HasPageNum); - _MyLog.Error("Error Processing Transition Text", ex); - return "(Resolved Transition Text)"; - } - } - public string ResolvePathTo() - { - MyContent.RefreshContentItems(); - ItemInfo item = MyContent.ContentItems[0]; - //Console.WriteLine("Format = {0}", item.ActiveFormat); - //Console.WriteLine("item = {0}", item.ItemID); - //Console.WriteLine("TranType = {0}", TranType); - //Console.WriteLine("MyItemToID = {0}", MyItemToID); - //Console.WriteLine("MyItemRangeID = {0}", MyItemRangeID); - return ResolvePathTo(item.ActiveFormat, item, TranType, MyItemToID, MyItemRangeID); - } - public string ResolvePathTo(TransitionLookup tranLookup) - { - MyContent.RefreshContentItems(); - ItemInfo item = MyContent.ContentItems[0]; - ItemInfo myItemToID = MyItemToID; - if (tranLookup.ContainsKey(item.ItemID)) item = tranLookup[item.ItemID]; - bool hasPageNum = false; - if (item.ActiveFormat.PlantFormat.FormatData.TransData.UseTransitionModifier || - item.ActiveFormat.PlantFormat.FormatData.TransData.UseSpecificTransitionModifier) - { - TransitionConfig tc = new TransitionConfig(Config); - if (tc != null && tc.Transition_Formatted.ToUpper() == "TRUE") hasPageNum = true; - } - if (tranLookup.ContainsKey(ToID)) - { - myItemToID = tranLookup[ToID]; - } - else - { - //different proc - //_MyLog.WarnFormat("Transition May Not Be Correct at Location From {0} To {1}", item.SearchPath, myItemToID.SearchPath); - if (!tranLookup.MyLookups.ContainsKey(myItemToID.MyProcedure.ItemID)) - tranLookup.AddProcLookup(myItemToID.MyProcedure.ItemID, ProcedureInfo.GetNewLookup(tranLookup, new TransitionLookupEventArgs(myItemToID.MyProcedure.ItemID, tranLookup.ApplicabilityUnit, MyItemToID.MyDocVersion, tranLookup)).MyLookup); - if (tranLookup.ContainsKey(ToID)) - myItemToID = tranLookup[ToID]; - else - _MyLog.WarnFormat("Invalid Unit Transition: from,to '{0}','{1}'", MyContent.ContentItems[0].ShortPath, myItemToID.ShortPath); - } - ItemInfo myItemRangeID = MyItemRangeID; - if (tranLookup.ContainsKey(RangeID)) - myItemRangeID = tranLookup[RangeID]; - else - { - //different proc - //_MyLog.WarnFormat("Transition May Not Be Correct at Location From {0} To {1}", item.SearchPath, myItemRangeID.SearchPath); - if (!tranLookup.MyLookups.ContainsKey(MyItemRangeID.MyProcedure.ItemID)) - tranLookup.AddProcLookup(MyItemRangeID.MyProcedure.ItemID, ProcedureInfo.GetNewLookup(tranLookup, new TransitionLookupEventArgs(MyItemRangeID.MyProcedure.ItemID, tranLookup.ApplicabilityUnit, MyItemRangeID.MyDocVersion, tranLookup)).MyLookup); - if (tranLookup.ContainsKey(RangeID)) - myItemRangeID = tranLookup[RangeID]; - else - if (myItemRangeID.ItemID != myItemToID.ItemID) - _MyLog.WarnFormat("Invalid Unit Range Transition: from,to '{0}','{1}'", MyContent.ContentItems[0].ShortPath, myItemRangeID.ShortPath); - //Console.WriteLine("Format = {0}", item.ActiveFormat); - //Console.WriteLine("item = {0}", item.ItemID); - //Console.WriteLine("TranType = {0}", TranType); - //Console.WriteLine("MyItemToID = {0}", MyItemToID); - //Console.WriteLine("MyItemRangeID = {0}", MyItemRangeID); - } - return ResolvePathTo(item.ActiveFormat, item, TranType, myItemToID, myItemRangeID, hasPageNum); - } - } - #region AffectedTransitons - public partial class TransitionInfoList - { - [Serializable()] - private class AffectedTransitonsCriteria - { - public AffectedTransitonsCriteria(int itemID) - { - _ItemID = itemID; - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - public static TransitionInfoList GetAffected(int itemID) - { - try - { - TransitionInfoList tmp = DataPortal.Fetch(new AffectedTransitonsCriteria(itemID)); - TransitionInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on TransitionInfoList.GetAffected", ex); - } - } - private void DataPortal_Fetch(AffectedTransitonsCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfoList.DataPortal_FetchAffected", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAffectedTransitions"; - 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 TransitionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TransitionInfoList.DataPortal_FetchAffected", ex); - throw new DbCslaException("TransitionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - public string Summarize() - { - StringBuilder sb = new StringBuilder(""); - foreach (TransitionInfo trans in this) - sb.Append("\r\n" + trans.PathFrom); - return sb.ToString(); - } - #endregion - #region ExternalTransitionsToChildren - private class ExternalTransitionsToChildrenCriteria - { - public ExternalTransitionsToChildrenCriteria(int itemID) - { - _ItemID = itemID; - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - public static TransitionInfoList GetExternalTransitionsToChildren(int itemID) - { - try - { - TransitionInfoList tmp = DataPortal.Fetch(new ExternalTransitionsToChildrenCriteria(itemID)); - TransitionInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on TransitionInfoList.GetExternalTransitionsToChildren", ex); - } - } - private void DataPortal_Fetch(ExternalTransitionsToChildrenCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfoList.DataPortal_FetchExternalTransitionsToChildren", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getExternalTransitionsToChildren"; - 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 TransitionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TransitionInfoList.DataPortal_FetchExternalTransitionsToChildren", ex); - throw new DbCslaException("TransitionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - #region ExternalTransitions - private class ExternalTransitionsCriteria - { - public ExternalTransitionsCriteria(int itemID) - { - _ItemID = itemID; - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - public static TransitionInfoList GetExternalTransitions(int itemID) - { - try - { - TransitionInfoList tmp = DataPortal.Fetch(new ExternalTransitionsCriteria(itemID)); - TransitionInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on TransitionInfoList.GetExternalTransitions", ex); - } - } - private void DataPortal_Fetch(ExternalTransitionsCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfoList.DataPortal_FetchExternalTransitions", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getExternalTransitions"; - 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 TransitionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TransitionInfoList.DataPortal_FetchExternalTransitions", ex); - throw new DbCslaException("TransitionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - #region PastedAffectedTransitions - private class PastedAffectedTransitonsCriteria - { - public PastedAffectedTransitonsCriteria(int itemID) - { - _ItemID = itemID; - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - internal static TransitionInfoList GetPastedAffected(int itemID) - { - try - { - TransitionInfoList tmp = DataPortal.Fetch(new PastedAffectedTransitonsCriteria(itemID)); - TransitionInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on TransitionInfoList.GetPastedAffected", ex); - } - } - private void DataPortal_Fetch(PastedAffectedTransitonsCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfoList.DataPortal_FetchPastedAffected", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPastedAffectedTransitions"; - 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 TransitionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TransitionInfoList.DataPortal_FetchPastedAffected", ex); - throw new DbCslaException("TransitionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - } - public class TransitionBuilder - { - private StringBuilder _Results = new StringBuilder(); - public FormatData _FormatData; - public string _TransFormat; - public E_TransUI _TransUI; - public ItemInfo _FromItem; - public int _TranType; - public ItemInfo _ToItem; - public ItemInfo _RangeItem; - public bool _UsedRangeAncestor; - private string _Token; - public bool SectNumWithStepNum; - public string Token - { - get { return _Token; } - set { _Token = value; } - } - private string _Prefix; - public string Prefix - { - get { return _Prefix; } - set { if(_Prefix==null)_Prefix = value; } - } - public void ResetPrefix(string str) - { - _Prefix = str; - } - public bool HasText - { - get - { - return _Results.Length > 0; - } - } - public StringBuilder Append(string str) - { - return _Results.Append(str); - } - public StringBuilder ReplaceToken(string str) - { - if (str == null || str == "") return _Results; - if (_FormatData.TransData.XchngTranSpForHard && str[0]!=',' && str[0] != ' ') - { - int indx = str.IndexOf(' '); // 16 bit code only processes 1st occurance - if (indx > -1) // Not a while loop in 16 bit. - { // (see \promsnt\lib\edit\gettran.c:TransitionCat) - str = str.Remove(indx, 1); - str = str.Insert(indx, @"\u160?"); - } - } - return _Results.Append(str); - } - public override string ToString() - { - return _Results.ToString(); - } - public StringBuilder Remove(int startIndex, int length) - { - return _Results.Remove(startIndex, length); - } - public int Length - { - get { return _Results.Length; } - } - public void AppendPrefix() - { - if (HasText && Prefix != null) - { - if (!_Results.ToString().EndsWith(_Prefix)) - _Results.Append(Prefix); - _Prefix = null; - } - else if (_TranType == 4 && _ToItem.MoreThanOneStepSection()) - { - if (!HasText && Prefix != null && Prefix.ToUpper().StartsWith(", STEP")) - { - _Prefix = null; - return; - } - _Results.Append(Prefix); - _Prefix = null; - } - else if (_TranType == 5 && Prefix != null) - { - if (!HasText && Prefix.StartsWith(", ")) - _Results.Append(Prefix.TrimStart(", ".ToCharArray())); - else - _Results.Append(Prefix); - _Prefix = null; - } - // If the prefix contains an open paren, we want to add the open paren regardless - // of whether there already is text in the resulting string. - else if (!HasText && Prefix != null && Prefix.Contains("(")) - { - _Results.Append(Prefix.TrimStart(" ".ToCharArray())); // since no text in result, trim starting space. - } - } - - public string OverridePrefix - { - set { _Prefix = value; } - } - } - public static class TransitionText - { - private delegate bool TransitionAppendFunction(TransitionBuilder tb); - - private static Dictionary _AppendMethods; - private static void SetupMethods() - { - _AppendMethods = new Dictionary(); - _AppendMethods.Add("{Proc Num}", AddTransitionProcNum); - _AppendMethods.Add("{?.Proc Num}", AddOptionalTransitionProcNum); - _AppendMethods.Add("{Proc Title}", AddTransitionProcTitle); - _AppendMethods.Add("{?.Proc Title}", AddOptionalTransitionProcTitle); - _AppendMethods.Add("{First Step}", AddStepNumber); - _AppendMethods.Add("{Step Number}", AddStepNumber); // WCN2, tran type 6 - _AppendMethods.Add("{Last Step}", AddRangeStepNumber); - _AppendMethods.Add("{.}", AddIncludedStepNumber); - _AppendMethods.Add("{Sect Hdr}", AddTranGetSectionHdr); - _AppendMethods.Add("{?.Sect Hdr}", AddOptionalTranGetSectionHdr); - _AppendMethods.Add("{Sect Title}", AddTranGetSectionTitle); - _AppendMethods.Add("{?.Sect Title}", AddOptionalTranGetSectionTitle); - _AppendMethods.Add("{?.Sect Num}", AddOptionalTranGetSectionNum); - _AppendMethods.Add("{Sect Num}", AddTranGetSectionNumber); - _AppendMethods.Add("{Sect Number}", AddTranGetSectionNumber); // WCN2, tran type 6 - _AppendMethods.Add("{Page Num}", AddPageNumber); - _AppendMethods.Add("{Step Text}", AddStepText); - } - public static string GetResolvedText(ItemInfo fromInfo, int tranType, ItemInfo toItem, ItemInfo rangeItem, bool hasPageNum) - { - return GetResolvedText(fromInfo.ActiveFormat, fromInfo, tranType, toItem, rangeItem, hasPageNum); - } - public static string GetResolvedText(FormatInfo formatInfo, ItemInfo fromInfo, int tranType, ItemInfo toItem, ItemInfo rangeItem, bool pagenum) - { - if (!pagenum) - { - TransitionInfo ct = fromInfo.MyContent.ContentTransitionCount > 0 ? fromInfo.MyContent.ContentTransitions[0] : null; - int trIU = -1; - string cfg = string.Empty; - if (ct != null) - { - trIU = fromInfo.MyContent.ContentTransitions[0].MyTransitionInfoUnique; - cfg = fromInfo.MyContent.ContentTransitions[0].Config; - } - else - { - string pattern = string.Format(@"( [0-9]*){{1,2}}\[END>"); - //string pattern = string.Format(@".*\\v ( [0-9]*){{1,2}}\[END>"); - Match m = Regex.Match(fromInfo.MyContent.Text, pattern); - if (m.Groups.Count > 1 && m.Groups[1].Value.Contains("(Page ~)")) - pagenum = true; - } - } - if (toItem == null || rangeItem == null || toItem.IsDeleted || rangeItem.IsDeleted) - return "Invalid Transition Destination"; - TransitionBuilder tb = SetupTransitionBuilder(formatInfo, fromInfo, tranType, toItem, - toItem.ItemID==rangeItem.ItemID && !toItem.IsHigh?toItem.LastSibling:rangeItem); - if (pagenum && (tranType==1||tranType==2||tranType==4)) - { - // if range transition, the page number token needs to go after the first step, else it's at the end: - if (tranType == 2 && tb._TransFormat.Contains("{First Step")) - { - tb._TransFormat = tb._TransFormat.Insert(tb._TransFormat.IndexOf("{First Step}")+12, " {Page Num}"); - } - else - tb._TransFormat = tb._TransFormat + " {Page Num}"; - } - if(_AppendMethods==null) - SetupMethods(); - string retval = BuildString(tb); - // Added for transitions to un-numbered steps - if (retval == string.Empty) - { - retval = toItem.Ordinal.ToString(); - fromInfo.NewTransToUnNumberedItem = true; - //Volian.Base.Library.vlnStackTrace.ShowStackLocal("Setting Flag", 3, 10); - //using (Item itm = fromInfo.Get()) - //{ - // ItemAnnotation ia = itm.ItemAnnotations.Add(AnnotationType.GetByName("Verifcation Required")); - // ia.SearchText = "Transition to Un-Numbered Step"; - //itm.Save(); - //} - } - return retval; - - } - private static TransitionBuilder SetupTransitionBuilder(FormatInfo formatInfo, ItemInfo fromInfo, int tranType, ItemInfo toItem, ItemInfo rangeItem) - { - TransitionBuilder tb = new TransitionBuilder(); - tb._FormatData = formatInfo.PlantFormat.FormatData; - // get the format of the transition string based on this transition's index into the TransData part of - // format.... - if (tranType > tb._FormatData.TransData.TransTypeList.Count) - tranType = 0; - // Replace 3 tokens ", {.}, {.}, {.}" with a single token "{.}" - tb._TransFormat = tb._FormatData.TransData.TransTypeList[tranType].TransFormat.Replace(", {.}, {.}, {.}", "{.}"); - if (formatInfo.PlantFormat.FormatData.TransData.UpcaseTranAnd) tb._TransFormat = tb._TransFormat.Replace("and", "AND"); - tb._TransUI = (E_TransUI)tb._FormatData.TransData.TransTypeList[tranType].TransUI; - tb._FromItem = fromInfo; - tb._TranType = tranType; - tb._ToItem = toItem; - tb._RangeItem = rangeItem; - return tb; - } - private static string BuildString(TransitionBuilder tb) - { - //Invalid Transition Check - if (tb._ToItem.ActiveParent == null || tb._RangeItem.ActiveParent == null) - return "?"; - int startIndex = 0; - int index = -1; - int rexIndex = -1; - string prefix = null; - string prevToken = null; - bool lastAdded = false; - MatchCollection mc = Regex.Matches(tb._TransFormat, @"{(Proc Num|\?\.Proc Num|Proc Title|\?\.Proc Title|" + - @"First Step|Step Number|Last Step|\.|Sect Hdr|\?\.Sect Hdr|Sect Title|\?\.Sect Title|\?\.Sect Num|Sect Num|" + - @"Sect Number|Page Num|Step Text)}"); - foreach (Match m in mc) - { - string tmppref = prefix; - prefix = null; - rexIndex = m.Index; - int rexEndToken = m.Index + m.Length - 1; - if (rexIndex > startIndex) prefix = tb._TransFormat.Substring(startIndex, rexIndex - startIndex); - if (prefix == null) prevToken = null; - // if the last token did not add anything to the buffer, still want to put the text prefix in: - if (!lastAdded && prefix == null) prefix = tmppref; - if (startIndex == 0 && prefix != null && prefix.Length > 0) - { - tb.Append(prefix); - prefix = ""; - } - string token = tb._TransFormat.Substring(rexIndex, rexEndToken - rexIndex + 1); - // we need to flag condition where the step number already has the section number in it. For example, Wolf Creek - // using WCN2, has some sections whose section number is 'D' and the step number is 'D1', or 'D2'. The resolved - // transition text was coming out as 'DD1'. The format's HLS tab format contains '{Section Prefix}' whose implementation - // adds the section number to the tab. - if (token.Contains("Sect Num") && tb._TransFormat.Length > rexEndToken + 1) - { - int nxtTokenS = tb._TransFormat.IndexOf("{", rexEndToken); - if (nxtTokenS > -1 && nxtTokenS == rexEndToken + 1) // the {step} token has to immediately follow the section num token - { - int nxtTokenE = tb._TransFormat.IndexOf("}", nxtTokenS); - string nxtToken = tb._TransFormat.Substring(nxtTokenS, nxtTokenE - nxtTokenS + 1); - tb.SectNumWithStepNum = tb._ToItem.IsStep && nxtToken.Contains("Step") - && tb._ToItem.MyHLS.FormatStepData.TabData.IdentPrint.Contains("{Section Prefix}"); - } - } - if (token == "{.}" && tb._ToItem.ItemID == tb._RangeItem.ItemID) - { - startIndex = tb._TransFormat.Length; // skip the rest of the trans format - break; - } - if (_AppendMethods.ContainsKey(token)) - { - tb.Token = token; - if (token[1] == '?') // If it's a conditional token, only update the prefix if the prefix is null - tb.Prefix = prefix; - else // If not conditional, force the prefix to be updated - tb.OverridePrefix = prefix; - lastAdded = _AppendMethods[token](tb); - } - else - tb.Append("\\" + token.Substring(0, token.Length - 1) + "\\}"); - startIndex = rexEndToken + 1; - prevToken = token; - if (startIndex >= tb._TransFormat.Length) break; - } - if ((startIndex < tb._TransFormat.Length) && lastAdded) tb.Append(tb._TransFormat.Substring(startIndex, tb._TransFormat.Length - startIndex)); - return (tb.ToString()); - } - - // TODO: For hlp: LowerCaseTranNumber - lower case substep numbers in transitions - private static bool AddTransitionProcNum(TransitionBuilder tb) // Coded for HLP - { - string retstr = tb._ToItem.MyProcedure.MyContent.Number; - // start with UnitSpecific procedure number. - string unitnum = null; - if (tb._ToItem.MyDocVersion != null && tb._ToItem.MyDocVersion.DocVersionConfig != null) - unitnum = tb._ToItem.MyDocVersion.DocVersionConfig.Unit_ProcedureNumber; - if (unitnum != null && unitnum.Length > 0) - { - unitnum = unitnum.Replace("-", @"\u8209?"); - retstr = unitnum.Replace("#", retstr); - } - // LATER: Format Flag TruncateProcNmAfter1stSpace (dropped plants) - // LATER: Format Flag HardSpTranProcNumb (active plants) - tb.AppendPrefix(); - if (tb._FormatData.TransData.HardSpTranProcNumb) retstr = retstr.Replace(" ", @"\u160?"); - tb.ReplaceToken(retstr); - return (retstr != null && retstr != ""); - } - private static bool AddOptionalTransitionProcNum(TransitionBuilder tb) - { - // token is passed in for future use, i.e. if text is placed between "?" and "." to - // request other processing. - - // for now the only test is to check if the toitem is in the current procedure. - if (tb._FromItem.MyProcedure.ItemID == tb._ToItem.MyProcedure.ItemID) return false; // tb.TextAdded; - return AddTransitionProcNum(tb); - } - - private static bool AddTransitionProcTitle(TransitionBuilder tb)// Coded for HLP - { - tb.AppendPrefix(); - - // if can't find procedure, just put in a question mark. - if (tb._ToItem.PreviousID == null && tb._ToItem.ItemPartCount == 0 && tb._ToItem.ItemDocVersionCount == 0) - { - if (tb._ToItem.ActiveParent is ItemInfo && (tb._ToItem.ActiveParent as ItemInfo).Steps[0].ItemID == tb._ToItem.ItemID) - { - // If the transition is to the first applicable step, then use the location rather than outputting a question mark. - } - else - { - tb.Append("?"); - return true; // (tb.TextAdded = true); - } - } - string parenstr = tb._ToItem.MyProcedure.MyContent.Text; - parenstr = parenstr.Replace("\\LINE ", " ").Replace("\r\n", " "); - StringBuilder lretstr = new StringBuilder(); - // LATER: For an else - Do I need to strip underlining here? See promsnt\lib\edit\gettran.c - if (parenstr != "" || tb._FormatData.ProcData.PrintNoTitle) - { - lretstr.Append(tb._FormatData.TransData.DelimiterForTransitionTitle); - lretstr.Append(tb._FormatData.TransData.CapsTransitions ? parenstr.ToUpper().Replace(@"\U", @"\u") : - tb._FormatData.TransData.Cap1stCharTrans ? CapFirstLetterOnly(parenstr, 0) : - parenstr); - lretstr.Append(tb._FormatData.TransData.DelimiterForTransitionTitle); - } - tb.ReplaceToken(lretstr.ToString()); - return (lretstr.Length != 0); - } - private static bool AddOptionalTransitionProcTitle(TransitionBuilder tb) - { - // token is passed in for future use, i.e. if text is placed between "?" and "." to - // request other processing. - - // for now the only test is to check if the toitem is in the current procedure. - if (tb._FromItem.MyProcedure.ItemID == tb._ToItem.MyProcedure.ItemID) return false; // tb.TextAdded; - return AddTransitionProcTitle(tb); - } - private static string Tab(ItemInfo item, bool doStep) - { - // if this section has the DSS_AddDotZeroStdHLS, then we need to account for this when - // concatenating text onto the tabs. - bool hasDotZero = (item.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_AddDotZeroStdHLS) == E_DocStructStyle.DSS_AddDotZeroStdHLS; - if (item == null) return ""; - string sret = ""; - switch (item.MyContent.Type / 10000) - { - case 0: //procedure - sret = ProcedureInfo.Get(item.ItemID).MyTab.CleanText; - break; - case 1: // section - sret = SectionInfo.Get(item.ItemID).MyTab.CleanText; - break; - case 2: // step - - ItemInfo pitem = item; - bool hasDelim = item.ActiveFormat.PlantFormat.FormatData.TransData.StepSubstepDelimeter != null; - List DelimList = null; - if (!hasDelim) - { - DelimList = new List(); - SeqTabFmtList seqtabs = item.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList; - foreach (SeqTabFmt seqtab in seqtabs) - { - string delim = seqtab.PrintTabFormat.Replace("{seq}", ""); - DelimList.Add(delim.Trim()); - } - } - while (!pitem.IsHigh) - { - //string thisTab = StepInfo.Get(pitem.ItemID).MyTab.CleanText; - string thisTab = pitem.MyTab.CleanText;// StepInfo.Get(pitem.ItemID).MyTab.CleanText; - // remove delimiters of '.' and ')' in tab. - if (!hasDelim) - { - // get list of delimiters to remove from the format: - foreach (string rmvDelim in DelimList) thisTab = thisTab.Replace(rmvDelim, ""); - } - if (pitem.IsRNOPart) - { - if (thisTab == null || thisTab == "") - sret = "RNO." + sret; - else - { - thisTab = thisTab.Trim(" ".ToCharArray()); - sret = "RNO." + thisTab + sret; - } - } - else - { - if (thisTab != null && thisTab != "") - { - thisTab = thisTab.Trim(" ".ToCharArray()); - if (hasDelim && !thisTab.EndsWith(".") && !thisTab.EndsWith(")")) thisTab = thisTab + "."; - if (hasDotZero && thisTab.EndsWith(".0.")) thisTab = thisTab.Substring(0, thisTab.Length - 2); - } - // RHM 20130326 2039 - I added the logic to limit the addition of the section tab to - // the existing tab if it starts the same. - // Westinghouse/System Procs/WRS-101/Add6/4.2.7 Transition to 4.2.5 - if(sret == "" || !sret.StartsWith(thisTab)) sret = thisTab + sret; - } - pitem = pitem.ActiveParent as ItemInfo; - if (pitem == null) break; - } - // add hls tab if it's not already in the tab. doStep was added to handle the TStepNoFlag - // which is used to define whether the step number is included in the range transition text - // if the 'to' transition is a substep. Note that only skip the following if going to a substep - // thus change 'doStep' to true if the 'to' transition is a hls. - if (!doStep && item.IsHigh) doStep = true; - if (doStep && pitem.IsHigh) - { - Tab myTab = pitem.MyDocVersion.DocVersionConfig.SelectedSlave == 0 ? StepInfo.Get(pitem.ItemID).MyTab : pitem.MyTab; - string hlsTab = myTab.BasicTab ?? myTab.CleanTextNoSymbols; - if (!sret.StartsWith(hlsTab.Trim(" ".ToCharArray()))) - { - if (!hasDelim) - foreach (string rmvDelim in DelimList) hlsTab = hlsTab.Replace(rmvDelim, ""); - hlsTab = hlsTab.Trim(" ".ToCharArray()); - if (hasDelim && !hlsTab.EndsWith(".") && !hlsTab.EndsWith(")")) hlsTab = hlsTab + "."; - if (hasDotZero) - { - if (item.IsHigh) - hlsTab = hlsTab.Substring(0, hlsTab.Length - 1); - else if (hlsTab.EndsWith(".0.")) - hlsTab = hlsTab.Substring(0, hlsTab.Length - 2); - if (sret == "" || !sret.StartsWith(hlsTab)) sret = hlsTab + sret; - } - else - sret = hlsTab + sret; - } - } - break; - } - sret = sret.Trim(" .)".ToCharArray()); - return sret; - } - private static bool AddPageNumber(TransitionBuilder tb) - { - if (tb._ToItem.PageNumber != 0 && tb._FromItem.PageNumber != 0) - { - int pgoffset = tb._ToItem.PageNumber - tb._FromItem.PageNumber; - tb._ToItem.PageNumberUsed = tb._ToItem.PageNumber; - switch (pgoffset) - { - case 1: - tb.Append(" (Next Page)"); - //Console.WriteLine("Next Page: {0}", tb._FromItem.ShortPath); - break; - case -1: - tb.Append(" (Previous Page)"); - //Console.WriteLine("Prev Page: {0}", tb._FromItem.ShortPath); - break; - case 0: - break; - default: - tb.Append(string.Format(" (Page {0})", tb._ToItem.PageNumber + 1)); - //Console.WriteLine("Page: {0}, {1}", tb._FromItem.ShortPath, tb._ToItem.PageNumber); - break; - } - } - else - { - tb.Append(" (Page ~)"); - } - return true; - } - private static bool AddStepNumber(TransitionBuilder tb) - { - // If we're on a step put out the step number. - ItemInfo secitm = TranGetSectionItem(tb._ToItem); - if ((!((tb._TransUI & E_TransUI.StepAllowNone) == E_TransUI.StepAllowNone)) || tb._ToItem.MyContent.Type > 20000) - { - if (tb.HasText) - { - // check for transition that goes to a procedure step section with title of 'Procedure steps' followed - // by ', Step'. This should output as 'Procedure step xyz' rather than 'Procedure steps, step xyz' - // TODO: NEED TO USE A FORMAT VARIABLE TO CONTROL THE FOLLOWING - if ((tb._FormatData.TransData.AdjustStepTransitionText || tb._ToItem.ActiveFormat.Name.StartsWith("OHLP")) && !tb._TransFormat.Contains("{Last Step}") && tb.Prefix != null && tb.Prefix.ToUpper().Contains(", STEP") && tb.ToString().ToUpper().EndsWith("PROCEDURE STEPS")) - { - tb.Remove(tb.Length - 15, 15); // remove "procedure steps" - tb.Append("procedure Step"); - tb.ResetPrefix(" "); // just setting = to a space wasn't resetting prefix. - } - string tmpStr = tb.ToString(); - if (tmpStr.ToUpper().EndsWith(", STEP ") && (tb.Prefix.ToUpper().EndsWith(", STEP "))) - tb.Remove(tb.Length - 7, 7); // 7 is length of ", Step " - tb.AppendPrefix(); - } - //else if (tb._TranType == 4 && tb._ToItem.MoreThanOneStepSection()) - else if (tb._TranType == 4 && tb._ToItem.MoreThanOneStepSection() || tb._TranType == 5) - { - tb.AppendPrefix(); - } - if (tb._ToItem.PreviousID == null && tb._ToItem.ItemPartCount == 0 && tb._ToItem.ItemDocVersionCount == 0) - { - // Logic added for handling applicability. If the first item is not applicable, then the second item will effectively become - // the first item but it's itempartcount will be zero - if(tb._ToItem.ActiveParent is ItemInfo && (tb._ToItem.ActiveParent as ItemInfo).Steps[0].ItemID == tb._ToItem.ItemID) - tb.ReplaceToken(Tab(tb._ToItem, true)); - else - tb.Append("?"); - } - else - tb.ReplaceToken(Tab(tb._ToItem, true)); - return true; - } - else if ((tb._ToItem.IsSection || tb._ToItem.IsProcedure) && ((tb._TransUI & E_TransUI.StepAllowNone) == E_TransUI.StepAllowNone)) - { - string tmpStr = tb.ToString(); - if (tmpStr.ToUpper().EndsWith(", STEP ")) - tb.Remove(tb.Length - 7, 7); // 7 is length of ", Step " - else if (tb.Prefix != null && tb.Prefix.StartsWith(")") && (tb.ToString().IndexOf("(")>-1)) - tb.Append(")"); - return true; - } - else - return false; - } - private static bool AddRangeStepNumber(TransitionBuilder tb) - { - tb.AppendPrefix(); - if (tb._RangeItem.PreviousID == null && tb._RangeItem.ItemPartCount == 0 && tb._RangeItem.ItemDocVersionCount == 0) - tb.Append("?"); - else - tb.ReplaceToken(Tab(tb._RangeItem, tb._RangeItem.ActiveFormat.PlantFormat.FormatData.TransData.TStepNoFlag)); - return true; - } - private static bool AddIncludedStepNumber(TransitionBuilder tb) - { - Dictionary rangeAncestors = GetAncestors(tb._RangeItem); - tb.AppendPrefix(); - bool usedRangeAncestor = false; - ItemInfo next = GetNextItem(tb._ToItem, rangeAncestors, ref usedRangeAncestor); - string lastTab = Tab(tb._RangeItem, tb._RangeItem.ActiveFormat.PlantFormat.FormatData.TransData.TStepNoFlag); - while (next.ItemID != tb._RangeItem.ItemID) - { - string thisTab = Tab(next, tb._RangeItem.ActiveFormat.PlantFormat.FormatData.TransData.TStepNoFlag); - if (lastTab == thisTab) break; - tb.ReplaceToken(", " + thisTab); - next = GetNextItem(next, rangeAncestors, ref usedRangeAncestor); - } - tb._UsedRangeAncestor = usedRangeAncestor; - return true; - } - private static bool AddStepText(TransitionBuilder tb) - { - tb.AppendPrefix(); - string txt = tb._ToItem.MyContent.Text; - tb.Append(txt); - return true; - } - private static Dictionary GetAncestors(ItemInfo itemInfo) - { - Dictionary retval = new Dictionary(); - while (!itemInfo.IsHigh) - { - ItemInfo parent = itemInfo.MyActiveParent as ItemInfo; - retval.Add(parent.ItemID, itemInfo.FirstSibling); - itemInfo = parent; - } - return retval; - } - private static ItemInfo GetNextItem(ItemInfo next, Dictionary rangeAncestors, ref bool usedRangeAncestor) - { - if (rangeAncestors.ContainsKey(next.ItemID)) - return rangeAncestors[next.ItemID]; - while (next.GetNextItem() == null) - { - next = next.ActiveParent as ItemInfo; - if(next == null) throw(new Exception("Cannot find Next Item")); - } - return next.GetNextItem(); - } - private static bool AddOptionalTranGetSectionHdr(TransitionBuilder tb) - { - // first handle 'to' non-step section. Always add it. - if (tb._ToItem.IsSection && !tb._ToItem.IsStepSection) return AddTranGetSectionHdr(tb); - - int cntsect = 0; - ItemInfo sect = TranGetSectionItem(tb._ToItem); - if (tb._ToItem.MyProcedure.Sections == null) - tb._ToItem.MyProcedure.MyContent.RefreshContentParts(); - foreach (ItemInfo ii in tb._ToItem.MyProcedure.Sections) if (ii.IsStepSection) cntsect++; - // If Procedure going to has only 1 step section, do not add it. - if (cntsect == 1) return false; // tb.TextAdded; - - // If procedure going to has more than 1 step section and is NOT same procedure - // and going to default section, do not add it. - if (tb._ToItem.MyProcedure.ItemID != tb._FromItem.MyProcedure.ItemID && sect != null && - sect.IsDefaultSection) return false; // tb.TextAdded; - - // if in same procedure and same section do not add it. - if (tb._ToItem.MyProcedure.ItemID == tb._FromItem.MyProcedure.ItemID && - sect == TranGetSectionItem(tb._FromItem) && - ! tb._ToItem.IsSection) - return false; - - // If a 'thru' range, only put out the section if it's to a different section - // that is not the default section. - if (((tb._TransUI & E_TransUI.StepLast) == E_TransUI.StepLast) && ((tb._TransUI & E_TransUI.SectMenuStep) == E_TransUI.SectMenuStep)) - { - ItemInfo fi = tb._FromItem; - while (!fi.IsSection)fi = fi.ActiveParent as ItemInfo; - ItemInfo ti = tb._ToItem; - while (!ti.IsSection) ti = ti.ActiveParent as ItemInfo; - if (fi.ItemID == ti.ItemID || ti.IsDefaultSection) return false; // tb.TextAdded; - } - return AddTranGetSectionHdr(tb); - } - private static bool AddTranGetSectionHdr(TransitionBuilder tb) - { - // output from 16-bit code looks like section header - // if this is a step section & the default section, just return - //if (TranGetSectionItem(itminfo).IsDefaultSection) return; - StringBuilder retstr = new StringBuilder(); - retstr.Append(TranGetSectionNumber(tb._ToItem)); - string txt; - if(retstr.Length > 0) - txt = TranGetSectionTitle(tb,tb._ToItem); - else - txt = TranGetSectionTitle(tb,tb._ToItem, true); - if (retstr.Length > 0 && (txt!=null && txt.Length > 0)) retstr.Append(", "); - retstr.Append(txt); - tb.AppendPrefix(); - tb.ReplaceToken(retstr.ToString()); - return (retstr.Length != 0); - } - private static bool AddOptionalTranGetSectionTitle(TransitionBuilder tb) - { - // token is passed in for future use, i.e. if text is placed between "?" and "." to - // request other processing. - - // for now the only test is to check if the toitem is in the current section. - if (TranGetSectionItem(tb._FromItem).ItemID == TranGetSectionItem(tb._ToItem).ItemID) return false; // tb.TextAdded; - tb.AppendPrefix(); - string retstr = TranGetSectionTitle(tb,tb._ToItem); - tb.ReplaceToken(retstr); - return (retstr != null && retstr != ""); - } - private static bool AddOptionalTranGetSectionNum(TransitionBuilder tb) - { - if (TranGetSectionItem(tb._FromItem).ItemID == TranGetSectionItem(tb._ToItem).ItemID) return false; - if (tb.SectNumWithStepNum) return false; - if (tb._ToItem.IsSection) return false; - tb.AppendPrefix(); - string retstr = TranGetSectionNumber(tb._ToItem); - tb.ReplaceToken(retstr); - return (retstr != null && retstr != ""); - } - private static bool AddTranGetSectionTitle(TransitionBuilder tb) - { - // LATER: Cap1stSectionTitle, CapFirstLetterOnly - if (tb._FormatData.TransData.UseSecTitles) - { - string retstr = TranGetSectionTitle(tb,tb._ToItem); - tb.AppendPrefix(); - tb.ReplaceToken(retstr); - return (retstr != null && retstr != ""); - } - return false; - } - private static bool AddTranGetSectionNumber(TransitionBuilder tb) - { - if (tb._TranType == 1 && tb._ToItem.ActiveSection.ItemID == tb._FromItem.ActiveSection.ItemID) return false; - if (tb.SectNumWithStepNum) return false; - if (tb._TranType == 0 && (tb._ToItem.IsSection || tb._ToItem.IsProcedure) && ((tb._TransUI & E_TransUI.StepAllowNone) == E_TransUI.StepAllowNone)) - { - string tmpStr = tb.ToString(); - if (tmpStr.ToUpper().EndsWith(", STEP ")) tb.Remove(tb.Length - 7, 7); // 7 is length of ", Step " - else if (tb.Prefix != null && tb.Prefix.StartsWith(")")) - tb.Append(")"); - return true; - } - string retstr = TranGetSectionNumber(tb._ToItem); - if (retstr != null && retstr != "") - { - int indx = retstr.IndexOf(' '); // 16 bit code only processes 1st occurance - if (indx > -1) // Not a while loop in 16 bit. - { // (see \promsnt\lib\edit\gettran.c:TransitionCat) - retstr = retstr.Remove(indx, 1); - retstr = retstr.Insert(indx, @"\u160?"); - } - } - // *** DO NOT DELETE - to fix a problem where the word ,step was appearing twice when there was no - // section tab. - //if (retstr!=null&&retstr!="") tb.AppendPrefix(); - tb.AppendPrefix(); - tb.ReplaceToken(retstr); - return (retstr != null && retstr != ""); - } - private static string FixTitleCase(Match m) - { - if (Regex.IsMatch(m.Value, @"^[A-Za-z]+\.?$")) - { - // don't title case "words" that have no vowles - if (Regex.IsMatch(m.Value.ToUpper(), @"^[BCDFGHJKLMNPQRSTVWXZ]+\.?$")) - return m.Value; - string part1 = m.Value.Substring(0, 1); - string part2 = m.Value.Substring(1); - return part1.ToUpper() + part2.ToLower(); - } - return m.Value; - } - private static string CapFirstLetterOnly(string retstr, int p) - { - // LATER: write code to capitalize first letter (active plants) - string lretstr = Regex.Replace(retstr, @"([^ ,]+)", new MatchEvaluator(FixTitleCase)); - return lretstr; - } - // TODO: Section methods are not complete.... - private static ItemInfo TranGetSectionItem(ItemInfo itminfo) - { - ItemInfo tmpitm = itminfo; - while (tmpitm.MyContent.Type >= 20000) tmpitm = tmpitm.MyParent; - return tmpitm; - } - private static string TranGetSectionNumber(ItemInfo itminfo) - { - ItemInfo tmpitm = TranGetSectionItem(itminfo); - if (!tmpitm.IsSection) return ""; - string str = tmpitm.MyContent.Number; - str = Regex.Replace(str, @"\", itminfo.MyDocVersion.DocVersionConfig.Unit_Number, RegexOptions.IgnoreCase ); - str = Regex.Replace(str, @"\", itminfo.MyDocVersion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase); - return (str); - } - private static string TranGetSectionTitle(TransitionBuilder tb, ItemInfo itminfo) - { - // LATER: Cap1stSectionTitle, CapFirstLetterOnly - if (tb._FormatData.TransData.UseSecTitles) - { - ItemInfo tmpitm = TranGetSectionItem(itminfo); - string sectionTitle = tmpitm.MyContent.Text; - sectionTitle = (tb._FormatData.TransData.CapsTransitionsSection ? sectionTitle.ToUpper().Replace(@"\U", @"\u") : - tb._FormatData.TransData.Cap1stCharTransSection ? CapFirstLetterOnly(sectionTitle, 0) : - sectionTitle); - return (sectionTitle); - } - return null; - } - private static string TranGetSectionTitle(TransitionBuilder tb, ItemInfo itminfo, bool overRide) - { - // LATER: Cap1stSectionTitle, CapFirstLetterOnly - if (overRide) - { - ItemInfo tmpitm = TranGetSectionItem(itminfo); - string sectionTitle = tmpitm.MyContent.Text; - sectionTitle = (tb._FormatData.TransData.CapsTransitionsSection ? sectionTitle.ToUpper().Replace(@"\U", @"\u") : - tb._FormatData.TransData.Cap1stCharTransSection ? CapFirstLetterOnly(sectionTitle, 0) : - sectionTitle); - return (sectionTitle); - } - return null; - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/UserInfoListExt.cs b/PROMS/VEPROMS.CSLA.Library/Extension/UserInfoListExt.cs deleted file mode 100644 index 9431a685..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/UserInfoListExt.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; -namespace Volian.Object.Library -{ - /// - /// Extensions - /// - public partial class UserInfo : ReadOnlyBase - { - public string FullName - { - get { return LastName + ", " + FirstName; } - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/transtypes.TXT b/PROMS/VEPROMS.CSLA.Library/Extension/transtypes.TXT deleted file mode 100644 index e92e9cfe..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/transtypes.TXT +++ /dev/null @@ -1,40 +0,0 @@ -Adding special flag chars to tokens: - -?. means the following for !section transitions - -for proc - if current, don't put out text, if !current, put out text -for sect - if curproc: if cursect, don't put out text; if !cursect, put out text - if !curproc: if default sect, don't put out text; if !default sect, put out text - -DONE: "0" TransFormat="{Proc Num}, {Proc Title}, Step {First Step}" TransUI="ProcMenu, SectDefault, StepAllowNone, StepFirst" -DONE: "1" TransFormat="{First Step}" TransUI="ProcCur, SectCur, StepFirst" -DONE: "2" TransFormat="{First Step}, {.}, {.}, {.} and {Last Step}" TransUI="ProcCur, SectCur, StepFirst, StepLast" -DONE: "3" TransFormat="{First Step} thru {Last Step} of {?.Proc Num}, {?.Proc Title}, {?.Sect Hdr}" TransUI="ProcMenu, SectMenuStep, StepFirst, StepLast" -DONE: "4" TransFormat="{?.Sect Title}, Step {First Step}" TransUI="ProcCur, SectMenuAny, StepAllowNone, StepFirst" -DONE: "5" TransFormat="{Proc Num}, {Proc Title}, {?.Sect Hdr}, Step {First Step}"TransUI="ProcMenu, SectMenuAny, StepAllowNone, StepFirst" - - -SECTION TRANSITIONS (calloway used as test... - -Menu [format] comment - -"{Proc Num}, {Proc Title}, Step {Sect Num}{First Step}", same as menu -"{Sect Num}{First Step} ( Within the current section )", {Sect Num}{First Step} -"{Sect Num}{First Step}, {.}, {.}, {.} and {Sect Num}{Last Step}", same as menu current section -"{Sect Num}{First Step} thru {Sect Num}{Last Step}", same as menu step section in current proc -"{Sect Num}{First Step} ( To a different section )", {Sect Num}, Step {?.Sect Num}{?.First Step} - no stepnumber needed -"{Sect Num}{First Step}, {Sect Title} ( To a different section )" {Sect Hdr}, Step{{Sect Num}{First Step} - puts all out even if current. -"{Sect Num}" {Sect Num} - prompts for step too, but only lists sect num, Go To step though -"{Step}" {Step} - prompts for proc, step sect & step number. (sometimes gives ?) - - // made up the following string so that the token processing for setting - // up the menu enums would work as expected. - private string[] DefaultSectionTransTokenStr = - { - "{Proc Num}, {Proc Title}, Step {First Step}", - "{First Step} ( Within the current section )", - "{First Step}, {.}, {.}, {.} and {Last Step}", - "{Sect Num}.{First Step} thru {Sect Num}.{Last Step}", - "{Sect Num}.{First Step} ( To a different section )", - "{Sect Num}.{First Step}, {Sect Title} ( To a different section )" - }; \ No newline at end of file diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/transtypes.TXT.bak b/PROMS/VEPROMS.CSLA.Library/Extension/transtypes.TXT.bak deleted file mode 100644 index 0e71ee90..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/transtypes.TXT.bak +++ /dev/null @@ -1,39 +0,0 @@ -Adding special flag chars to tokens: - -?. means the following for !section transitions - -for proc - if current, don't put out text, if !current, put out text -for sect - if curproc: if cursect, don't put out text; if !cursect, put out text - if !curproc: if default sect, don't put out text; if !default sect, put out text - -DONE: "0" TransFormat="{Proc Num}, {Proc Title}, Step {First Step}" TransUI="ProcMenu, SectDefault, StepAllowNone, StepFirst" -DONE: "1" TransFormat="{First Step}" TransUI="ProcCur, SectCur, StepFirst" -DONE: "2" TransFormat="{First Step}, {.}, {.}, {.} and {Last Step}" TransUI="ProcCur, SectCur, StepFirst, StepLast" -DONE: "3" TransFormat="{First Step} thru {Last Step} of {?.Proc Num}, {?.Proc Title}, {?.Sect Hdr}" TransUI="ProcMenu, SectMenuStep, StepFirst, StepLast" -DONE: "4" TransFormat="{?.Sect Title}, Step {First Step}" TransUI="ProcCur, SectMenuAny, StepAllowNone, StepFirst" -DONE: "5" TransFormat="{Proc Num}, {Proc Title}, {?.Sect Hdr}, Step {First Step}"TransUI="ProcMenu, SectMenuAny, StepAllowNone, StepFirst" - - -SECTION TRANSITIONS (calloway used as test... - -Menu [format] comment - -"{Proc Num}, {Proc Title}, Step {Sect Num}{First Step}", same as menu -"{Sect Num}{First Step} ( Within the current section )", {Sect Num}{First Step} -"{Sect Num}{First Step}, {.}, {.}, {.} and {Sect Num}{Last Step}", same as menu current section -"{Sect Num}{First Step} thru {Sect Num}{Last Step}", same as menu step section in current proc -"{Sect Num}{First Step} ( To a different section )", {Sect Num}, Step {?.Sect Num}{?.First Step} - no stepnumber needed -"{Sect Num}{First Step}, {Sect Title} ( To a different section )" {Sect Hdr}, Step{{Sect Num}{First Step} - puts all out even if current. - - - // made up the following string so that the token processing for setting - // up the menu enums would work as expected. - private string[] DefaultSectionTransTokenStr = - { - "{Proc Num}, {Proc Title}, Step {First Step}", - "{First Step} ( Within the current section )", - "{First Step}, {.}, {.}, {.} and {Last Step}", - "{Sect Num}.{First Step} thru {Sect Num}.{Last Step}", - "{Sect Num}.{First Step} ( To a different section )", - "{Sect Num}.{First Step}, {Sect Title} ( To a different section )" - }; \ No newline at end of file diff --git a/PROMS/VEPROMS.CSLA.Library/Extension/vlnValueKey.cs b/PROMS/VEPROMS.CSLA.Library/Extension/vlnValueKey.cs deleted file mode 100644 index 7b32485f..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Extension/vlnValueKey.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace VEPROMS.CSLA.Library -{ - public class vlnValueKey - { - public vlnValueKey() { ;} - public vlnValueKey(int key, string value) - { - _key = key; - _value = value; - } - private int _key; - public int Key - { - get { return _key; } - } - private string _value; - public string Value - { - get { return _value; } - } - public override string ToString() - { - return _value; - } - } -} diff --git a/PROMS/VEPROMS.CSLA.Library/Format/DocStyles.cs.org b/PROMS/VEPROMS.CSLA.Library/Format/DocStyles.cs.org deleted file mode 100644 index 2e7058d9..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Format/DocStyles.cs.org +++ /dev/null @@ -1,974 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; -using System.Xml; - -namespace VEPROMS.CSLA.Library -{ - #region DocStyles - [TypeConverter(typeof(ExpandableObjectConverter))] - public class DocStyles : vlnFormatItem - { - [Description("Document Styles Name")] - private LazyLoad _Name; - public string Name - { - get - { - return LazyLoad(ref _Name, "@Name"); - } - } - private DocStyleList _DocStyleList; - public DocStyleList DocStyleList - { - get - { - if (_DocStyleList == null) - { - DocStyleList tmp = new DocStyleList(SelectNodes("DocStyle")); - DocStyleList retval = new DocStyleList(null); - foreach (DocStyle ds in tmp) - { - if (!ds.Inactive) retval.Add(ds); - } - _DocStyleList = retval; - } - return (_DocStyleList); - } - set { _DocStyleList = value; } - } - public DocStyles(XmlNode xmlNode) : base(xmlNode) { } - } - #endregion - #region DocStyleAll - #region DocStyle - [TypeConverter(typeof(ExpandableObjectConverter))] - public class DocStyle : vlnFormatItem, IVlnIndexedFormatItem - { - public DocStyle(XmlNode xmlNode) : base(xmlNode) { } - public DocStyle() : base() { } - #region IndexName - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - [Description("Document Styles Name")] - private LazyLoad _Name; - public string Name - { - get - { - return LazyLoad(ref _Name, "@Name"); - } - } - #endregion - #region Font - private VE_Font _Font; - [Category("Font")] - [DisplayName("Font")] - [Description("Font")] - public VE_Font Font - { - get - { - return(_Font == null) ?_Font = new VE_Font(XmlNode): _Font; - } - } - #endregion - #region numberingsequence - [Category("Miscellaneous")] - [Description("Numbering Sequence")] - private LazyLoad _NumberingSequence; - public E_NumberingSequence? NumberingSequence - { - get - { - return LazyLoad(ref _NumberingSequence, "@NumberingSequence"); - } - } - #endregion - #region IndexOtherThanFirstPage - [Category("Miscellaneous")] - [Description("IndexOtherThanFirstPage")] - private LazyLoad _IndexOtherThanFirstPage; - public int? IndexOtherThanFirstPage - { - get - { - return LazyLoad(ref _IndexOtherThanFirstPage, "@IndexOtherThanFirstPage"); - } - } - #endregion - #region IsStepSection - [Category("Miscellaneous")] - [Description("Is a Step Section")] - private LazyLoad _IsStepSection; - public bool IsStepSection - { - get - { - return LazyLoad(ref _IsStepSection, "@IsStepSection"); - } - } - #endregion - #region Inactive - [Category("Miscellaneous")] - [Description("Is Active Section Type")] - private LazyLoad _Inactive; - public bool Inactive - { - get - { - return LazyLoad(ref _Inactive, "@Inactive"); - } - } - #endregion - #region LandscapePageList - [Category("Miscellaneous")] - [Description("Should PageList be landscape")] - private LazyLoad _LandscapePageList; - public bool LandscapePageList - { - get - { - return LazyLoad(ref _LandscapePageList, "@LandscapePageList"); - } - } - #endregion - #region ShowSectionTitles - [Category("Miscellaneous")] - [Description("Should Section Titles be shown")] - private LazyLoad _ShowSectionTitles; - public bool ShowSectionTitles - { - get - { - return LazyLoad(ref _ShowSectionTitles, "@ShowSectionTitles"); - } - } - #endregion - #region ResetFirstPageOnSection - [Category("Miscellaneous")] - [Description("Reset first page of section on Separate pagination section")] - private LazyLoad _ResetFirstPageOnSection; - public bool ResetFirstPageOnSection - { - get - { - return LazyLoad(ref _ResetFirstPageOnSection, "@ResetFirstPageOnSection"); - } - } - #endregion - #region IncludeInTOC - [Category("Miscellaneous")] - [Description("Include in Auto Table Of Contents")] - private LazyLoad _IncludeInTOC; - public bool IncludeInTOC - { - get - { - return LazyLoad(ref _IncludeInTOC, "@IncludeInTOC"); - } - } - #endregion - #region UseCheckOffs - [Category("Miscellaneous")] - [Description("Section Uses Checkoffs")] - private LazyLoad _UseCheckOffs; - public bool UseCheckOffs - { - get - { - return LazyLoad(ref _UseCheckOffs, "@UseCheckOffs"); - } - } - #endregion - #region UseCheckOffs - [Category("Miscellaneous")] - [Description("Section Uses MetaSection ColSByLevel")] - private LazyLoad _UseColSByLevel; - public bool UseColSByLevel - { - get - { - return LazyLoad(ref _UseColSByLevel, "@UseColSByLevel"); - } - } - #endregion - #region Oldtonew - [Category("Miscellaneous")] - [Description("Convert from old to new")] - private LazyLoad _OldToNew; - public int? OldToNew - { - get - { - return LazyLoad(ref _OldToNew, "@OldToNew"); - } - } - #endregion - #region CancelSectTitle - [Category("Miscellaneous")] - [Description("Section Cancel Section Title")] - private LazyLoad _CancelSectTitle; - public bool CancelSectTitle - { - get - { - return LazyLoad(ref _CancelSectTitle, "@CancelSectTitle"); - } - } - #endregion - #region CenterLine - //CenterLineX="261.9" CenterLineYTop="673.2" CenterLineYBottom="44.2" - private LazyLoad _CenterLineX; - [Category("CenterLine")] - [DisplayName("X Location")] - [Description("Distance from left side of page")] - public float? CenterLineX - { - get - { - return LazyLoad(ref _CenterLineX, "@CenterLineX"); - } - } - private LazyLoad _CenterLineYTop; - [Category("CenterLine")] - [DisplayName("Y Top Location")] - [Description("starting vertical point of line")] - public float? CenterLineYTop - { - get - { - return LazyLoad(ref _CenterLineYTop, "@CenterLineYTop"); - } - } - private LazyLoad _CenterLineYBottom; - [Category("CenterLine")] - [DisplayName("Y Bottom Location")] - [Description("ending vertical point of line")] - public float? CenterLineYBottom - { - get - { - return LazyLoad(ref _CenterLineYBottom, "@CenterLineYBottom"); - } - } - private LazyLoad _CLineWidth; - [Category("CenterLine")] - [DisplayName("Line Width")] - [Description("Width of Lines Internal to Boxes")] - public float? CLineWidth - { - get - { - return LazyLoad(ref _CLineWidth, "@CLineWidth"); - } - } - #endregion - #region OptionalSectionContent - [Category("Miscellaneous")] - [Description("Section Optional Content")] - private LazyLoad _OptionalSectionContent; - public bool OptionalSectionContent - { - get - { - return LazyLoad(ref _OptionalSectionContent, "@OptionalSectionContent"); - } - } - #endregion - #region SpecialStepsFoldout - [Category("Miscellaneous")] - [Description("Section Special Steps Foldout")] - private LazyLoad _SpecialStepsFoldout; - public bool SpecialStepsFoldout - { - get - { - return LazyLoad(ref _SpecialStepsFoldout, "@SpecialStepsFoldout"); - } - } - [Category("Miscellaneous")] - [Description("Section Extra Line Header")] - private LazyLoad _ExtraLineHeader; - public bool ExtraLineHeader - { - get - { - return LazyLoad(ref _ExtraLineHeader, "@ExtraLineHeader"); - } - } - #endregion - #region UndSpecialStepsFoldout - [Category("Miscellaneous")] - [Description("Section Cancel Section Title")] - private LazyLoad _UndSpecialStepsFoldout; - public bool UndSpecialStepsFoldout - { - get - { - return LazyLoad(ref _UndSpecialStepsFoldout, "@UndSpecialStepsFoldout"); - } - } - #endregion - #region AlignHLSTabWithSect - [Category("Miscellaneous")] - [Description("Align HLS Tab With Sect")] - private LazyLoad _AlignHLSTabWithSect; - public bool AlignHLSTabWithSect - { - get - { - return LazyLoad(ref _AlignHLSTabWithSect, "@AlignHLSTabWithSect"); - } - } - #endregion - #region ComponentList - [Category("Miscellaneous")] - [Description("Component List")] - private LazyLoad _ComponentList; - public bool ComponentList - { - get - { - return LazyLoad(ref _ComponentList, "@ComponentList"); - } - } - #endregion - #region pagestyle - private PageStyle _pagestyle; - [Category("Miscellaneous")] - [DisplayName("Page Style")] - [Description("Page Style")] - public PageStyle pagestyle - { - get - { - string str = "//PageStyles/PageStyle[" + (IntLookup("@PageStyle") + 1).ToString() + "]"; - XmlNode xn = SelectSingleNode(str); - if (_pagestyle == null) _pagestyle = new PageStyle(SelectSingleNode("//PageStyles/PageStyle[" + (IntLookup("@PageStyle") + 1).ToString() + "]")); - return _pagestyle; - } - } - #endregion - #region SubElements - private Layout _Layout; - public Layout Layout - { - get - { - return (_Layout == null ? _Layout = new Layout(SelectSingleNode("Layout")) : _Layout); - } - } - private SectTop _SectTop; - public SectTop SectTop - { - get - { - return (_SectTop == null ? _SectTop = new SectTop(SelectSingleNode("SectTop")) : _SectTop); - } - } - private Continue _Continue; - public Continue Continue - { - get - { - return (_Continue == null ? _Continue = new Continue(SelectSingleNode("Continue")) : _Continue); - } - } - private End _End; - public End End - { - get - { - return (_End == null ? _End = new End(SelectSingleNode("End")) : _End); - } - } - private Final _Final; - public Final Final - { - get - { - return (_Final == null ? _Final = new Final(SelectSingleNode("Final")) : _Final); - } - } - private StructureStyle _StructureStyle; - public StructureStyle StructureStyle - { - get - { - return (_StructureStyle == null ? _StructureStyle = new StructureStyle(SelectSingleNode("StructureStyle")) : _StructureStyle); - } - } - #endregion - public override string ToString() - { - return String.Format("{0:D2} - {1}", Index, Name); - } - } - #endregion - #region DocStyleList - [TypeConverter(typeof(vlnListConverter))] - public class DocStyleList : vlnIndexedFormatList - { - public DocStyleList(XmlNodeList xmlNodeList) : base(xmlNodeList, null) { } - } - #endregion - #region Layout - [TypeConverter(typeof(ExpandableObjectConverter))] - public class Layout : vlnFormatItem - { - public Layout(XmlNode xmlNode) : base(xmlNode) { } - public Layout() : base() { } - #region TopMargin - private LazyLoad _TopMargin; - [Category("Layout")] - [DisplayName("Top Margin on Printed Page")] - [Description("Top Margin on Printed Page")] - public float? TopMargin - { - get - { - return LazyLoad(ref _TopMargin, "@TopMargin"); - } - } - #endregion - #region FooterLength - private LazyLoad _FooterLength; - [Category("Location")] - [DisplayName("Number of lines required for footer")] - [Description("Number of lines required for footer")] - public float? FooterLength - { - get - { - return LazyLoad(ref _FooterLength, "@FooterLength"); - } - } - #endregion - #region LeftMargin - private LazyLoad _LeftMargin; - [Category("Location")] - [DisplayName("Size of left margin")] - [Description("Size of left margin")] - public float? LeftMargin - { - get - { - return LazyLoad(ref _LeftMargin, "@LeftMargin"); - } - } - #endregion - #region PageLength - private LazyLoad _PageLength; - [Category("Location")] - [DisplayName("Length of Page")] - [Description("Length of Page")] - public float? PageLength - { - get - { - return LazyLoad(ref _PageLength, "@PageLength"); - } - } - #endregion - #region PageWidth - private LazyLoad _PageWidth; - [Category("Location")] - [DisplayName("Width of Page")] - [Description("Width of Page")] - public float? PageWidth - { - get - { - return LazyLoad(ref _PageWidth, "@PageWidth"); - } - } - #endregion - #region TableUpperLimit - private LazyLoad _TableUpperLimit; - [Category("Location")] - [DisplayName("Table's right margin")] - [Description("Table's right margin")] - public float? TableUpperLimit - { - get - { - return LazyLoad(ref _TableUpperLimit, "@TableUpperLimit"); - } - } - #endregion - #region MSWordXAdj - private LazyLoad _MSWordXAdj; - [Category("Location")] - [DisplayName("MSWord X Adjustment")] - [Description("X Placement of PDF during Print")] - public float? MSWordXAdj - { - get - { - return LazyLoad(ref _MSWordXAdj, "@MSWordXAdj"); - } - } - #endregion - #region MSWordYAdj - private LazyLoad _MSWordYAdj; - [Category("Location")] - [DisplayName("MSWord Y Adjustment")] - [Description("Y Placement of PDF during Print")] - public float? MSWordYAdj - { - get - { - return LazyLoad(ref _MSWordYAdj, "@MSWordYAdj"); - } - } - #endregion - #region SectionMacro - private LazyLoad _SectionMacro; - [Category("Extras")] - [DisplayName("Section Macro")] - [Description("Section Macro Prints With Title")] - public string SectionMacro - { - get - { - return LazyLoad(ref _SectionMacro, "@SectionMacro"); - } - } - #endregion - #region CenterToStepThenPage - [Category("Layout")] - [Description("CenterToStepThenPage")] - private LazyLoad _CenterToStepThenPage; - public bool CenterToStepThenPage - { - get - { - return LazyLoad(ref _CenterToStepThenPage, "@CenterToStepThenPage"); - } - } - #endregion - } - #endregion - #region SectTop - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectTop : vlnFormatItem - { - public SectTop(XmlNode xmlNode) : base(xmlNode) { } - public SectTop() : base() { } - #region Font - private VE_Font _Font; - [Category("Font")] - [DisplayName("Font")] - [Description("Font")] - public VE_Font Font - { - get - { - return (_Font == null) ? _Font = new VE_Font(XmlNode) : _Font; - } - } - #endregion - #region Margin - private LazyLoad _Margin; - [Category("Section Continue Msg")] - [DisplayName("Margin for Section top msg")] - [Description("Margin for Section top msg")] - public float? Margin - { - get - { - return LazyLoad(ref _Margin, "@Margin"); - } - } - #endregion - #region MaxLen - private LazyLoad _MaxLen; - [Category("Section Continue Msg")] - [DisplayName("MaxLen for text within the column")] - [Description("MaxLen for text within the column")] - public int? MaxLen - { - get - { - return LazyLoad(ref _MaxLen, "@MaxLen"); - } - } - #endregion - #region Message - private LazyLoad _Message; - [Category("Continue Msg")] - [DisplayName("Section Top Continue Msg")] - [Description("Section Top Continue Msg")] - public string Message - { - get - { - return LazyLoad(ref _Message, "@Message"); - } - } - #endregion - } - #endregion - #region ContinueAll - #region Continue - [TypeConverter(typeof(ExpandableObjectConverter))] - public class Continue : vlnFormatItem - { - public Continue(XmlNode xmlNode) : base(xmlNode) { } - public Continue() : base() { } - #region Font - private VE_Font _Font; - [Category("Continue Msg")] - [DisplayName("Font")] - [Description("Font")] - public VE_Font Font - { - get - { - return (_Font == null ? _Font = new VE_Font(base.XmlNode) : _Font); - } - } - #endregion - #region SubElements - private Top _Top; - public Top Top - { - get - { - return (_Top == null? _Top = new Top(SelectSingleNode("Top")): _Top); - } - } - private Bottom _Bottom; - public Bottom Bottom - { - get - { - return (_Bottom == null ? _Bottom = new Bottom(SelectSingleNode("Bottom")) : _Bottom); - } - } - private SectionTitle _SectionTitle; - public SectionTitle SectionTitle - { - get - { - return (_SectionTitle == null ? _SectionTitle = new SectionTitle(SelectSingleNode("SectionTitle")) : _SectionTitle); - } - } - #endregion - } - #endregion - #region Top - [TypeConverter(typeof(ExpandableObjectConverter))] - public class Top : vlnFormatItem - { - public Top(XmlNode xmlNode) : base(xmlNode) { } - public Top() : base() { } - #region Font - private VE_Font _Font; - [Category("Font")] - [DisplayName("Font")] - [Description("Font")] - public VE_Font Font - { - get - { - return (_Font == null) ? _Font = new VE_Font(XmlNode) : _Font; - } - } - #endregion - #region Margin - private LazyLoad _Margin; - [Category("Continue Msg")] - [DisplayName("Margin for top msg")] - [Description("Margin for top msg")] - public float? Margin - { - get - { - return LazyLoad(ref _Margin, "@Margin"); - } - } - #endregion - #region UseStepTabs - private LazyLoad _UseStepTabs; - [Category("Continue Msg")] - [DisplayName("Flag to use step tabs")] - [Description("Flag to use step tabs")] - public bool UseStepTabs - { - get - { - return LazyLoad(ref _UseStepTabs, "@UseStepTabs"); - } - } - #endregion - #region HLS - private LazyLoad _HLS; - [Category("Continue Msg")] - [DisplayName("Include HLS in top continue msg")] - [Description("Include HLS in top continue msg")] - public int? HLS - { - get - { - return LazyLoad(ref _HLS, "@HLS"); - } - } - #endregion - #region Message - private LazyLoad _Message; - [Category("Continue Msg")] - [DisplayName("Top Continue Msg")] - [Description("Top Continue Msg")] - public string Message - { - get - { - return LazyLoad(ref _Message, "@Message"); - } - } - #endregion - } - #endregion - #region Bottom - [TypeConverter(typeof(ExpandableObjectConverter))] - public class Bottom : vlnFormatItem - { - public Bottom(XmlNode xmlNode) : base(xmlNode) { } - public Bottom() : base() { } - #region Font - private VE_Font _Font; - [Category("Font")] - [DisplayName("Font")] - [Description("Font")] - public VE_Font Font - { - get - { - return (_Font == null) ? _Font = new VE_Font(XmlNode) : _Font; - } - } - #endregion - #region Margin - private LazyLoad _Margin; - [Category("Continue Msg")] - [DisplayName("Margin for bottom msg")] - [Description("Margin for bottom msg")] - public float? Margin - { - get - { - return LazyLoad(ref _Margin, "@Margin"); - } - } - #endregion - #region MarginR BGE - private LazyLoad _MarginR; - [Category("Continue Msg")] - [DisplayName("Margin for bottom msg RNO Column (if in both columns)")] - [Description("Margin for bottom msg RNO Column (if in both columns)")] - public float? MarginR - { - get - { - return LazyLoad(ref _MarginR, "@MarginR"); - } - } - #endregion - #region Location - [Category("Continue Msg")] - [Description("Bottom Continue Location")] - - private LazyLoad _NumberingSequence; - public E_NumberingSequence? NumberingSequence - { - get - { - return LazyLoad(ref _NumberingSequence, "@NumberingSequence"); - } - } - private LazyLoad _Location; - public E_ContBottomLoc? Location - { - get - { - return LazyLoad(ref _Location, "@Location"); - } - } - private LazyLoad _NoOverrideSpace; - public bool NoOverrideSpace - { - get - { - return LazyLoad(ref _NoOverrideSpace, "@NoOverrideSpace"); - } - } - #endregion - #region Message - private LazyLoad _Message; - [Category("Continue Msg")] - [DisplayName("Bottom Continue Msg")] - [Description("Bottom Continue Msg")] - public string Message - { - get - { - return LazyLoad(ref _Message, "@Message"); - } - } - #endregion - } - #endregion - #region SectionTitle - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectionTitle : vlnFormatItem - { - public SectionTitle(XmlNode xmlNode) : base(xmlNode) { } - public SectionTitle() : base() { } - #region AppendToTitle - private LazyLoad _AppendToTitle; - [Category("Section Title Continue Msg")] - [DisplayName("AppendToTitle")] - [Description("Append Text to Section Title For Continue Msg")] - public string AppendToTitle - { - get - { - return LazyLoad(ref _AppendToTitle, "@AppendToTitle"); - } - } - #endregion - } - #endregion //SectionTitle - continue setting - #endregion - #region End - [TypeConverter(typeof(ExpandableObjectConverter))] - public class End : vlnFormatItem - { - public End(XmlNode xmlNode) : base(xmlNode) { } - public End() : base() { } - #region Font - private VE_Font _Font; - [Category("End Msg")] - [DisplayName("Font")] - [Description("Font")] - public VE_Font Font - { - get - { - return (_Font == null ? _Font = new VE_Font(XmlNode) : _Font); - } - } - #endregion - #region Flag - private LazyLoad _Flag; - [Category("End Msg")] - [DisplayName("End Msg Exists")] - [Description("End Msg Exists")] - public int? Flag - { - get - { - return LazyLoad(ref _Flag, "@Flag"); - } - } - #endregion - #region Message - private LazyLoad _Message; - [Category("End Msg")] - [DisplayName("End Message")] - [Description("End Message")] - public string Message - { - get - { - return LazyLoad(ref _Message, "@Message"); - } - } - public string FixedMessage - { - get - { - return Message == null ? null : Message.Replace("\n","\r\n").Replace(@"{par}","\r\n"); - } - } - private LazyLoad _Margin; - public float? Margin - { - get - { - return LazyLoad(ref _Margin, "@Margin"); - } - } - private LazyLoad _EndMessageOnEachSubSection; - public bool EndMessageOnEachSubSection - { - get - { - return LazyLoad(ref _EndMessageOnEachSubSection, "@EndMessageOnEachSubSection"); - } - } - #endregion - } - #endregion - #region Final - [TypeConverter(typeof(ExpandableObjectConverter))] - public class Final : vlnFormatItem - { - public Final(XmlNode xmlNode) : base(xmlNode) { } - public Final() : base() { } - private LazyLoad _Message; - [Category("Final Msg")] - [DisplayName("Final Message")] - [Description("Final Message")] - public string Message - { - get - { - return LazyLoad(ref _Message, "@Message"); - } - } - } - #endregion - #region StructureStyle - [TypeConverter(typeof(ExpandableObjectConverter))] - public class StructureStyle : vlnFormatItem - { - public StructureStyle(XmlNode xmlNode) : base(xmlNode) { } - public StructureStyle() : base() { } - #region Where - [Category("Structure Style")] - [Description("Where Used")] - private LazyLoad _Where; - public E_DocStyleUse? Where - { - get - { - return LazyLoad(ref _Where, "@Where"); - } - } - #endregion - #region Style - [Category("Structure Style")] - [Description("Style")] - private LazyLoad _Style; - public E_DocStructStyle? Style - { - get - { - return LazyLoad(ref _Style, "@Style"); - } - } - #endregion - } - #endregion - #endregion -} diff --git a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs.bak b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs.bak deleted file mode 100644 index 6b99fcbb..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.cs.bak +++ /dev/null @@ -1,5480 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; -using System.ComponentModel; -using System.Drawing; - -namespace VEPROMS.CSLA.Library -{ - #region PlantFormat - [TypeConverter(typeof(ExpandableObjectConverter))] - public class PlantFormat - { - public PlantFormat(IFormatOrFormatInfo format) - { - _MyFormat = format; - } - private IFormatOrFormatInfo _MyFormat; - public IFormatOrFormatInfo MyFormat - { - get { return _MyFormat; } - set { _MyFormat = value; } - } - private vlnFormatDocument _XmlDoc; - internal vlnFormatDocument XmlDoc - { - get - { - if (_XmlDoc == null) - _XmlDoc = new vlnFormatDocument(_MyFormat); - return _XmlDoc; - } - } - private FormatData _FormatData; - public FormatData FormatData - { - get - { - if (_FormatData == null) _FormatData = new FormatData(XmlDoc.SelectSingleNode("/PlantFormat/FormatData")); - return _FormatData; - } - } - private PageStyles _PageStyles; - public PageStyles PageStyles - { - get - { - if (_PageStyles == null) _PageStyles = new PageStyles(XmlDoc.SelectNodes("/PlantFormat/PageStyles/PageStyle")); - return _PageStyles; - } - } - private DocStyles _DocStyles; - public DocStyles DocStyles - { - get - { - if (_DocStyles == null) _DocStyles = new DocStyles(XmlDoc.SelectSingleNode("/PlantFormat/DocStyles")); - return _DocStyles; - } - } - public bool HasPageListToken(string token) - {; - string xpath = string.Format("/PlantFormat/PageStyles/PageStyle/Item[@Token = '{0}']", token); - XmlNodeList nl = XmlDoc.SelectNodes(xpath); - return nl.Count > 0; - } - } - #endregion - #region VE_Font - [TypeConverter(typeof(ExpandableObjectConverter))] - public class VE_Font : vlnFormatItem - { - public VE_Font(XmlNode xmlNode) : base(xmlNode) { } - public VE_Font(string family, int size, E_Style style, float CPI) - { - _Family = new LazyLoad(family); - _Size = new LazyLoad(size); - _Style = new LazyLoad(style); - _CPI = new LazyLoad(CPI); - } - private LazyLoad _Family; - private Font _WindowsFont; - public Font WindowsFont - { - get - { - if (_WindowsFont == null) - { - //FontStyle style = (Family == "Cornet")?FontStyle.Italic : FontStyle.Regular; - FontStyle style = FontStyle.Regular; - if (Style != E_Style.None) - { - if (((Style & E_Style.Bold) != 0) || ((Style & E_Style.MmBold) !=0)) - style |= FontStyle.Bold; - if ((Style & E_Style.Italics) != 0) - style |= FontStyle.Italic; - if ((Style & E_Style.Underline) != 0) - style |= FontStyle.Underline; - } - // for now - check size to be 0 and set to 10 if so, error in fmtxml? - if (Family == null) // Need to get inherited font - _WindowsFont = new Font("Arial", 10, FontStyle.Regular); - else - _WindowsFont = new Font(Family, Size == 0 ? 10 : (float)Size, style); - } - return _WindowsFont; - } - set - { - _WindowsFont = value; - } - } - [Description("Font Family")] - public string Family - { - get - { - return LazyLoad(ref _Family,"Font/@Family"); - } - } - private LazyLoad _Size; - [Description("Font Size (in Double Points)")] - public int? Size - { - get - { - return LazyLoad(ref _Size, "Font/@Size"); - } - } - private LazyLoad _Style; - public E_Style? Style - { - get - { - return LazyLoad(ref _Style, "Font/@Style"); - } - //set - //{ - // _Style.Value = value; - //} - } - private LazyLoad _CPI; - public float? CPI - { - get - { - return LazyLoad(ref _CPI, "Font/@CPI"); - } - } - public float CharsToTwips - { - get - { - return (72 / (CPI ?? 12)); - } - - } - public override string ToString() - { - return string.Format("{0}, {1} pt, {2}", Family, Size, Style); - } - public bool FontIsProportional() - { - if (Family.Contains("Arial") || Family.Contains("Times New Roman")) return true; - return false; - } - } - #endregion - #region FormatData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class FormatData : vlnFormatItem - { - public FormatData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _Name; - public string Name - { - get - { - return LazyLoad(ref _Name, "@Name"); - } - } - // TPL represents Templates which are sizes of columns for 'table' type data. If the format - // has the 'UseSmartTemplate' format flag, this table will have starting location & widths, and - // other data for the listed step types. Data from this table overrides width data as specified - // by the step type format data. The only active format that has 'UseSmartTemplate' is WCNCKL. - // The TPL data is also used by other formats, many of which are using it for Enhanced Background - // & Deviations. The actual format of the template can be in an old or new format. The old format - // uses spaces as delimiters, the new uses commas. - private LazyLoad _TPL; - public string TPL - { - get - { - return LazyLoad(ref _TPL, "@TPL"); - } - } - private bool _NewTemplateFormat; - public bool NewTemplateFormat - { - get { return _NewTemplateFormat; } - set { _NewTemplateFormat = value; } - } - private Dictionary _TopTemplateTypes; - public Dictionary TopTemplateTypes - { - get - { - if (_TopTemplateTypes == null && Templates != null) - { - _TopTemplateTypes = new Dictionary(); - // loop through all of templates to find those that are top level, i.e. - // right below the '0'. - int indx = 0; - while (indx < Templates.Count) - { - // level of 0 starts a new group. - if (Templates[indx].level == 0) TopTemplateTypes[Templates[indx + 1].type] = indx+1; - indx++; - } - } - return _TopTemplateTypes; - } - } - private List _Templates; - public List Templates - { - get - { - if (_Templates == null) // Load template class from format's string data. - { - NewTemplateFormat = false; - // count newlines - which gives number of template records. - int NumTemplates = 0; - if (TPL == null) return null; - int indx = TPL.IndexOf('\n'); - while (indx > -1) - { - NumTemplates++; - indx = TPL.Length > indx + 1 ? TPL.IndexOf('\n', indx + 1) : -1; - } - if (NumTemplates == 0) return null; - - _Templates = new List(NumTemplates); - // for each item, create and add to list - if (TPL.IndexOf(',') > -1) NewTemplateFormat = true; - int cnt = 0; - - int tmpStrIndxStart = 0; - int tmpStrIndxEnd = 0; - while (cnt < NumTemplates) - { - tmpStrIndxEnd = TPL.IndexOf("\n", tmpStrIndxStart); - if (tmpStrIndxEnd < 0) - { - cnt++; - continue; // maybe extra newlines at end of string. - } - string tpl = TPL.Substring(tmpStrIndxStart, tmpStrIndxEnd-tmpStrIndxStart); - tmpStrIndxStart = tmpStrIndxEnd + 1; - int level = 0; - int type = 0; - int start = 0; - int width = 0; - int nocol = 0; - int row = 0; - string stmp = null; - if (!NewTemplateFormat) - { - string[] tmpOld = tpl.Split(" ".ToCharArray()); - level = Convert.ToInt32(tmpOld[0]); - type = Convert.ToInt32(tmpOld[1]); - stmp = tmpOld.Length <= 2 ? null : tmpOld[2]; - } - else - { - string[] tmpNew = tpl.Split(",".ToCharArray()); - if (tmpNew.Length < 5) - { - cnt++; - continue; // may be extra newlines at end of string - } - level = Convert.ToInt32(tmpNew[0]); - type = Convert.ToInt32(tmpNew[1]); - start = Convert.ToInt32(tmpNew[2]); - width = Convert.ToInt32(tmpNew[3]); - row = Convert.ToInt32(tmpNew[4]); - nocol = Convert.ToInt32(tmpNew[5]); - stmp = tmpNew.Length <= 6 ? null : tmpNew[6]; - } - TPlate tp = new TPlate(level, type, start, width, row, nocol, stmp); - _Templates.Add(tp); - cnt++; - } - } - return _Templates; - } - } - - private LazyLoad _PurchaseOptions; - public E_PurchaseOptions? PurchaseOptions - { - get - { - return LazyLoad(ref _PurchaseOptions, "@PurchaseOptions"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return _Font == null? _Font = new VE_Font(base.XmlNode): _Font; - } - } - private SymbolList _SymbolList; - public SymbolList SymbolList - { - get - { - return (_SymbolList == null) ? _SymbolList = new SymbolList(SelectNodes("Symbols/Symbol")) : _SymbolList; - } - set { _SymbolList = value; } - } - private EditData _EditData; - public EditData EditData - { - get - { - return _EditData == null ? _EditData = new EditData(SelectSingleNode("EditData")): _EditData; - } - } - private PrintData _PrintData; - public PrintData PrintData - { - get - { - return _PrintData == null? _PrintData = new PrintData(SelectSingleNode("PrintData")):_PrintData; - } - } - private ProcData _ProcData; - public ProcData ProcData - { - get - { - return _ProcData == null? _ProcData = new ProcData(SelectSingleNode("ProcData")):_ProcData; - } - } - private SectData _SectData; - public SectData SectData - { - get - { - return _SectData == null? _SectData = new SectData(SelectSingleNode("SectData")):_SectData; - } - } - private BoxList _BoxList; - public BoxList BoxList - { - get - { - return _BoxList == null? _BoxList = new BoxList(SelectNodes("BoxData/Box"),MyFormat):_BoxList; - } - set { _BoxList = value; } - } - private TransData _TransData; - public TransData TransData - { - get - { - return _TransData == null? _TransData = new TransData(SelectSingleNode("TransData")):_TransData; - } - } - private ROData _ROData; - public ROData ROData - { - get - { - return _ROData == null ? _ROData = new ROData(SelectSingleNode("ROData")) : _ROData; - } - } - private StepDataList _StepDataList; - public StepDataList StepDataList - { - get - { - return _StepDataList == null? _StepDataList = new StepDataList(SelectNodes("StepData/Step"),MyFormat):_StepDataList; - } - set { _StepDataList = value; } - } - public List GetSearchableSteps() - { - List sds = new List(); - foreach (StepData sd in StepDataList) - { - if (!sd.Inactive && sd.StepEditData.Searchable && sd.StepEditData.TypeMenu.InMenu) - sds.Add(new StepDataRetval(sd.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(sd.Index))); - } - return sds; - } - public StepData StepTopUnderBase(StepData sd, int formatStepType) - { - StepData top = sd; - while (top.ParentType != "Base") - { - string sParStp = StepDataList[formatStepType].ParentType; - foreach (StepData stp in StepDataList) - { - if (top.ParentType == stp.Type) - { - top = stp; - break; - } - } - } - return top; - } - public List StepGetLevelTypes(bool alwaysAdd, StepData topType, ref int cursel, string curType, ItemInfo _CurItemInfo) - { - List sds = new List(); - int retval = -1; - int cntitm = 0; - // if there are alternatenames for this item, use that list, otherwise, get list from - // xml for current node & its children.... - if (topType.StepEditData.TypeMenu.AlternateNameList != null && topType.StepEditData.TypeMenu.AlternateNameList != "") - { - // loop through the AlternateName string, it has indices for step types.. - string[] split = topType.StepEditData.TypeMenu.AlternateNameList.Split(new Char[] { ',' }); - foreach (string s in split) - { - foreach (StepData sd in this.StepDataList) - { - if (sd.Type == s && !sd.Inactive) - { - sds.Add(new StepDataRetval(sd.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(sd.Index))); - if (curType == sd.Type) retval = cntitm; - cntitm++; - break; - } - } - } - } - - // some menu items (step change types) can only be done in aer column, check for that.... - // also tables and figures off caution/notes must use rno data. - else if (alwaysAdd || (topType.StepEditData.TypeMenu.InMenu && ((topType.StepEditData.TypeMenu.RnoInMenu) || - (!topType.StepEditData.TypeMenu.RnoInMenu && !_CurItemInfo.IsInRNO && !_CurItemInfo.IsCaution && !_CurItemInfo.IsNote) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsInRNO) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsCaution) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsNote)))) - { - if (!topType.Inactive) - { - if ((_CurItemInfo.IsInRNO||_CurItemInfo.IsCaution||_CurItemInfo.IsNote) && topType.StepEditData.TypeMenu.RnoMenuItem != null && topType.StepEditData.TypeMenu.RnoMenuItem != "") - sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.RnoMenuItem, Convert.ToInt32(topType.Index))); - else - sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(topType.Index))); - - if (topType.Type == curType) retval = cntitm; - cntitm++; - } - foreach (StepData sd in StepDataList) - { - if (sd.ParentType == topType.Type) - { - int tmpindx = DoListChildStepTypes(alwaysAdd, ref sds, sd, curType, _CurItemInfo, ref cntitm); - if (sd.Type == curType) retval = tmpindx; - if (retval < 0 && tmpindx > 0) retval = tmpindx; - } - } - } - cursel = retval; - return sds; - } - - private int DoListChildStepTypes(bool alwaysAdd, ref List sds, StepData topType, string curType, ItemInfo _CurItemInfo, ref int cntitm) - { - int retval = -1; - if (alwaysAdd || (topType.StepEditData.TypeMenu.InMenu && ((topType.StepEditData.TypeMenu.RnoInMenu) || - (!topType.StepEditData.TypeMenu.RnoInMenu && !_CurItemInfo.IsInRNO&&!_CurItemInfo.IsCaution&&!_CurItemInfo.IsNote) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsInRNO) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsCaution) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsNote)))) - { - if (!topType.Inactive) - { - if ((_CurItemInfo.IsInRNO||_CurItemInfo.IsCaution||_CurItemInfo.IsNote) && topType.StepEditData.TypeMenu.RnoMenuItem != null && topType.StepEditData.TypeMenu.RnoMenuItem != "") - sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.RnoMenuItem, Convert.ToInt32(topType.Index))); - else - sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(topType.Index))); - - if (topType.Type == curType) retval = cntitm; - cntitm++; - } - foreach (StepData sd in StepDataList) - { - if (sd.ParentType == topType.Type) - { - int tmpindx = DoListChildStepTypes(alwaysAdd, ref sds, sd, curType, _CurItemInfo, ref cntitm); - if (sd.Type == curType) retval = tmpindx; - if (retval < 0 && tmpindx > 0) retval = tmpindx; - } - } - } - return retval; - } - /// - /// for format data given a string representing the Type of step, find the index. - /// - public int GetIndexFromType(string type) - { - foreach (StepData sd in StepDataList) - { - if (sd.Type == type) return (int)sd.Index; - } - return 0; // default to the base - } - } - #endregion - #region Symbols - [TypeConverter(typeof(ExpandableObjectConverter))] - public class Symbol : vlnFormatItem - { - public Symbol(XmlNode xmlNode) : base(xmlNode) { } - public Symbol() : base() { } - [Category("Ints")] - private LazyLoad _Unicode; - public int? Unicode - { - get - { - return LazyLoad(ref _Unicode, "@Unicode"); - } - } - [Category("Strings")] - private LazyLoad _Desc; - public string Desc - { - get - { - return LazyLoad(ref _Desc, "@Desc"); - } - } - public override string GetPDDisplayName() - { return Desc; } - public override string GetPDDescription() - { return string.Format("Symbol Unicode '{0}' Description '{1}'", Unicode, Desc); } - public override string GetPDCategory() - { return "Supported Symbols"; } - public override string ToString() - { - return Desc; - } - } - [TypeConverter(typeof(vlnListConverter))] - public class SymbolList : vlnFormatList - { - public SymbolList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region Templates - public class TPlate - { - public int level; // sub-step level - public int type; // type of step/substep - public int start; // starting position (for horizontal only) - public int width; // width of text in characters (") - public int row; - public int nocolm; // 1 or 2 columns - default(0) is one column - public string text; // text to be automatically entered - public TPlate(int l, int t, int s, int w, int r, int c, string x) - { - level = l; - type = t; - start = s; - width = w; - row = r; - nocolm = c; - text = x; - } - } - #endregion - #region EditData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class EditData : vlnFormatItem - { - public EditData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _EMode; - public E_EMode? EMode - { - get - { - return LazyLoad(ref _EMode, "@EMode"); - } - } - private LazyLoad _PromptForCautionType; - public bool PromptForCautionType - { - get - { - return LazyLoad(ref _PromptForCautionType, "@PromptForCautionType"); - } - } - } - #endregion - #region PrintDataAll - #region PrintData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class PrintData : vlnFormatItem - { - public PrintData(XmlNode xmlNode) : base(xmlNode) { } - private VersionIdTextList _VersionIdTextList; - public VersionIdTextList VersionIdTextList - { - get - { - return _VersionIdTextList == null? _VersionIdTextList = new VersionIdTextList(SelectNodes("VersionIdText/string")):_VersionIdTextList; - } - set { _VersionIdTextList = value; } - } - private ProcDescrList _ProcDescrList; - public ProcDescrList ProcDescrList - { - get - { - return _ProcDescrList == null? _ProcDescrList = new ProcDescrList(SelectNodes("ProcDescrList/ProcDescr")):_ProcDescrList; - } - } - private LazyLoad _DoPrnDrvrAdjusts; - public int? DoPrnDrvrAdjusts - { - get - { - return LazyLoad(ref _DoPrnDrvrAdjusts, "@DoPrnDrvrAdjusts"); - } - } - private LazyLoad _TopOfPageThing; - public string TopOfPageThing - { - get - { - return LazyLoad(ref _TopOfPageThing, "@TopOfPageThing"); - } - } - private LazyLoad _DoRevDate; - public bool DoRevDate - { - get - { - return LazyLoad(ref _DoRevDate, "@DoRevDate"); - } - } - private LazyLoad _AlternateFoldoutPages; - public bool AlternateFoldoutPages - { - get - { - return LazyLoad(ref _AlternateFoldoutPages, "@AlternateFoldoutPages"); - } - } - private LazyLoad _AlternateFloatingFoldout; - public bool AlternateFloatingFoldout - { - get - { - return LazyLoad(ref _AlternateFloatingFoldout, "@AlternateFloatingFoldout"); - } - } - private LazyLoad _SectionLevelFoldouts; - public bool SectionLevelFoldouts - { - get - { - return LazyLoad(ref _SectionLevelFoldouts, "@SectionLevelFoldouts"); - } - } - private LazyLoad _SlashReplace; - public string SlashReplace - { - get - { - return LazyLoad(ref _SlashReplace, "@SlashReplace"); - } - } - private LazyLoad _RevDateWithForwardSlash; - public bool RevDateWithForwardSlash - { - get - { - return LazyLoad(ref _RevDateWithForwardSlash, "@RevDateWithForwardSlash"); - } - } - private LazyLoad _SpecialStepsFoldout; - public bool SpecialStepsFoldout - { - get - { - return LazyLoad(ref _SpecialStepsFoldout, "@SpecialStepsFoldout"); - } - } - private LazyLoad _AllowDuplex; - public bool AllowDuplex - { - get - { - return LazyLoad(ref _AllowDuplex, "@AllowDuplex"); - } - } - private LazyLoad _AccessoryDocsInDuplex; - public bool AccessoryDocsInDuplex - { - get - { - return LazyLoad(ref _AccessoryDocsInDuplex, "@AccessoryDocsInDuplex"); - } - } - private LazyLoad _FoldoutsInDuplex; - public bool FoldoutsInDuplex - { - get - { - return LazyLoad(ref _FoldoutsInDuplex, "@FoldoutsInDuplex"); - } - } - private LazyLoad _PagelistChangeIDsWithCommas; - public bool PagelistChangeIDsWithCommas - { - get - { - return LazyLoad(ref _PagelistChangeIDsWithCommas, "@PagelistChangeIDsWithCommas"); - } - } - } - #endregion - #region VersionIdText - [TypeConverter(typeof(ExpandableObjectConverter))] - public class VersionIdText : vlnFormatItem - { - public VersionIdText(XmlNode xmlNode) : base(xmlNode) { } - public VersionIdText() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("VersionIdText '{0}'", Text); } - public override string GetPDCategory() - { return "Version Id Text"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region VersionIdTextList - [TypeConverter(typeof(vlnListConverter))] - public class VersionIdTextList : vlnFormatList - { - public VersionIdTextList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region ProcDescr - [TypeConverter(typeof(ExpandableObjectConverter))] - public partial class ProcDescr : vlnFormatItem //: BusinessBase, IDisposable - { - public ProcDescr(XmlNode xmlNode) : base(xmlNode) { } - public ProcDescr() : base() { } - private LazyLoad _MatchProcNumber; - public string MatchProcNumber - { - get - { - return LazyLoad(ref _MatchProcNumber, "@MatchProcNumber"); - } - } - private LazyLoad _ProcDescr1; - public string ProcDescr1 - { - get - { - return LazyLoad(ref _ProcDescr1, "@ProcDescr1"); - } - } - private LazyLoad _ProcDescr2; - public string ProcDescr2 - { - get - { - return LazyLoad(ref _ProcDescr2, "@ProcDescr2"); - } - } - public override string ToString() - { - return string.Format("{0}, {1}", ProcDescr1, MatchProcNumber); - } - } - #region ProcDescrList - [TypeConverter(typeof(vlnListConverter))] - public class ProcDescrList : vlnFormatList - { - public ProcDescrList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #endregion - #endregion - #region ProcDataAll - #region ProcData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ProcData : vlnFormatItem - { - public ProcData(XmlNode xmlNode): base(xmlNode) {} - private ProcedureSuffixList _ProcedureSuffixList; - public ProcedureSuffixList ProcedureSuffixList - { - get - { - return _ProcedureSuffixList == null? _ProcedureSuffixList = new ProcedureSuffixList(SelectNodes("ProcedureSuffix/string")): _ProcedureSuffixList; - } - set { _ProcedureSuffixList = value; } - } - private ChangeBarData _ChangeBarData; - public ChangeBarData ChangeBarData - { - get - { - return _ChangeBarData == null? _ChangeBarData = new ChangeBarData(SelectSingleNode("ChangeBarData")):_ChangeBarData; - } - } - private CheckOffData _CheckOffData; - public CheckOffData CheckOffData - { - get - { - return _CheckOffData == null? _CheckOffData = new CheckOffData(SelectSingleNode("CheckOffData")):_CheckOffData; - } - } - private PSI _PSI; - public PSI PSI - { - get - { - return _PSI == null ? _PSI = new PSI(SelectSingleNode("PSI")) : _PSI; - } - } - private LazyLoad _TitleLength; - public int? TitleLength - { - get - { - return LazyLoad(ref _TitleLength, "@TitleLength"); - } - } - private LazyLoad _CoverTitleLength; - public int? CoverTitleLength - { - get - { - return LazyLoad(ref _CoverTitleLength, "@CoverTitleLength"); - } - } - private LazyLoad _ProcedureSuffixFlags; - public string ProcedureSuffixFlags - { - get - { - return LazyLoad(ref _ProcedureSuffixFlags, "@ProcedureSuffixFlags"); - } - } - private LazyLoad _CapitalizeTitle; - public bool CapitalizeTitle - { - get - { - return LazyLoad(ref _CapitalizeTitle, "@CapitalizeTitle"); - } - } - private LazyLoad _ChangeStyleForEverySection; - public bool ChangeStyleForEverySection - { - get - { - return LazyLoad(ref _ChangeStyleForEverySection, "@ChangeStyleForEverySection"); - } - } - private LazyLoad _PrintNoTitle; - public bool PrintNoTitle - { - get - { - return LazyLoad(ref _PrintNoTitle, "@PrintNoTitle"); - } - } - private LazyLoad _CountFoldoutPages; - public bool CountFoldoutPages - { - get - { - return LazyLoad(ref _CountFoldoutPages, "@CountFoldoutPages"); - } - } - private LazyLoad _ForeColor; - public string ForeColor - { - get - { - return LazyLoad(ref _ForeColor, "@ForeColor"); - } - } - private LazyLoad _BackColor; - public string BackColor - { - get - { - return LazyLoad(ref _BackColor, "@BackColor"); - } - } - } - #endregion - #region ProcedureSuffix - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ProcedureSuffix : vlnFormatItem - { - public ProcedureSuffix(XmlNode xmlNode) : base(xmlNode) { } - public ProcedureSuffix() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("ProcedureSuffix '{0}'", Text); } - public override string GetPDCategory() - { return "Procedure Suffix"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region ProcedureSuffixList - [TypeConverter(typeof(vlnListConverter))] - public class ProcedureSuffixList : vlnFormatList - { - public ProcedureSuffixList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region PsiAll - [TypeConverter(typeof(ExpandableObjectConverter))] - public class PSI : vlnFormatItem - { - public PSI(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _x; - public int? x - { - get - { - return LazyLoad(ref _x, "@x"); - } - } - private LazyLoad _y; - public int? y - { - get - { - return LazyLoad(ref _y, "@y"); - } - } - private LazyLoad _Caption; - public string Caption - { - get - { - return LazyLoad(ref _Caption, "@Caption"); - } - } - private LazyLoad _ButtonsOnBottom; // change to bool - public string ButtonsOnBottom - { - get - { - return LazyLoad(ref _ButtonsOnBottom, "@ButtonsOnBottom"); - } - } - private PsiLabels _LabelList; - public PsiLabels LabelList - { - get - { - return _LabelList == null ? _LabelList = new PsiLabels(SelectNodes("/PlantFormat/FormatData/ProcData/PSI/Label")) : _LabelList; - } - } - private PsiFields _FieldList; - public PsiFields FieldList - { - get - { - return _FieldList == null ? _FieldList = new PsiFields(SelectNodes("/PlantFormat/FormatData/ProcData/PSI/Field")) : _FieldList; - } - } - } - public class PsiLabels : vlnFormatList - { - public PsiLabels(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - - public class PsiLabel : vlnFormatItem - { - public PsiLabel(XmlNode xmlNode) : base(xmlNode) { } - public PsiLabel() : base() { } - private LazyLoad _text; - public string text - { - get - { - return LazyLoad(ref _text, "@text"); - } - } - private LazyLoad _Justify; - public string Justify - { - get - { - return LazyLoad(ref _Justify, "@Justify"); - } - } - private LazyLoad _x; - public int? x - { - get - { - return LazyLoad(ref _x, "@x"); - } - } - private LazyLoad _y; - public int? y - { - get - { - return LazyLoad(ref _y, "@y"); - } - } - private LazyLoad _width; - public int? width - { - get - { - return LazyLoad(ref _width, "@width"); - } - } - private LazyLoad _height; - public int? height - { - get - { - return LazyLoad(ref _height, "@height"); - } - } - } - public class PsiFields : vlnFormatList - { - public PsiFields(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - public class PsiField : vlnFormatItem - { - public PsiField(XmlNode xmlNode) : base(xmlNode) { } - public PsiField() : base() { } - private LazyLoad _name; - public string name - { - get - { - return LazyLoad(ref _name, "@name"); - } - } - private LazyLoad _type; - public string type - { - get - { - return LazyLoad(ref _type, "@type"); - } - } - private LazyLoad _text; - public string text - { - get - { - return LazyLoad(ref _text, "@text"); - } - } - private LazyLoad _Length; - public int? Length - { - get - { - return LazyLoad(ref _Length, "@Length"); - } - } - private LazyLoad _x; - public int? x - { - get - { - return LazyLoad(ref _x, "@x"); - } - } - private LazyLoad _y; - public int? y - { - get - { - return LazyLoad(ref _y, "@y"); - } - } - private LazyLoad _width; - public int? width - { - get - { - return LazyLoad(ref _width, "@width"); - } - } - private LazyLoad _height; - public int? height - { - get - { - return LazyLoad(ref _height, "@height"); - } - } - } - #endregion - #region CheckOffAll - #region CheckOffData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class CheckOffData : vlnFormatItem - { - public CheckOffData(XmlNode xmlNode) : base(xmlNode) { } - private CheckOffList _CheckOffList; - public CheckOffList CheckOffList - { - get - { - return _CheckOffList == null? _CheckOffList = new CheckOffList(SelectNodes("CheckOffList/CheckOff"),MyFormat):_CheckOffList; - } - } - private CheckOffHeaderList _CheckOffHeaderList; - public CheckOffHeaderList CheckOffHeaderList - { - get - { - return _CheckOffHeaderList == null? _CheckOffHeaderList = new CheckOffHeaderList(SelectNodes("CheckOffHeaderList/CheckOffHeader"),MyFormat): _CheckOffHeaderList; - } - } - private LazyLoad _Menu; - public string Menu - { - get - { - return LazyLoad(ref _Menu, "@Menu"); - } - } - private LazyLoad _AllowSectEdit; - public bool AllowSectEdit - { - get - { - return LazyLoad(ref _AllowSectEdit, "@AllowSectEdit"); - } - } - private LazyLoad _AllowStepEdit; - public bool AllowStepEdit - { - get - { - return LazyLoad(ref _AllowStepEdit, "@AllowStepEdit"); - } - } - private LazyLoad _UseCheckOffsIn; - public int? UseCheckOffsIn - { - get - { - return LazyLoad(ref _UseCheckOffsIn, "@UseCheckOffsIn"); - } - } - private LazyLoad _CheckOffAdjustment; - public float? CheckOffAdjustment - { - get - { - return LazyLoad(ref _CheckOffAdjustment, "@CheckOffAdjustment"); - } - } - private LazyLoad _XLocation; - public float? XLocation - { - get - { - return LazyLoad(ref _XLocation, "@XLocation"); - } - } - private LazyLoad _RelXLocation; - public float? RelXLocation - { - get - { - return LazyLoad(ref _RelXLocation, "@RelXLocation"); - } - } - private LazyLoad _CheckOffXtraLines; - public int? CheckOffXtraLines - { - get - { - return LazyLoad(ref _CheckOffXtraLines, "@CheckOffXtraLines"); - } - } - private LazyLoad _DropCheckOff; - public bool DropCheckOff - { - get - { - return LazyLoad(ref _DropCheckOff, "@DropCheckOff"); - } - } - private LazyLoad _CheckOffOnHLSOnly; - public bool CheckOffOnHLSOnly - { - get - { - return LazyLoad(ref _CheckOffOnHLSOnly, "@CheckOffOnHLSOnly"); - } - } - private LazyLoad _SkipSpaces; - public bool SkipSpaces - { - get - { - return LazyLoad(ref _SkipSpaces, "@SkipSpaces"); - } - } - } - #endregion - //#region RightCheckOffBox - //[TypeConverter(typeof(ExpandableObjectConverter))] - //public class RightCheckOffBox : vlnFormatItem, IVlnIndexedFormatItem - //{ - // public RightCheckOffBox(XmlNode xmlNode) : base(xmlNode) { } - // public RightCheckOffBox() : base() { } - // private LazyLoad _Index; - // public int? Index - // { - // get - // { - // return LazyLoad(ref _Index, "@Index"); - // } - // } - // private LazyLoad _RightCheckOffBoxChar; - // public int? RightCheckOffBoxChar - // { - // get - // { - // return LazyLoad(ref _RightCheckOffBoxChar, "@RightCheckOffBoxChar"); - // } - // } - // public override string GetPDDisplayName() - // { return string.Format("[{0}]", Index); } - // public override string GetPDDescription() - // { return string.Format("[{0}] - {1}", Index, RightCheckOffBoxChar); } - // public override string GetPDCategory() - // { return "RightCheckOffBox Data"; } - // public override string ToString() - // { - // return RightCheckOffBoxChar.ToString(); - // } - //} - //#endregion - //#region RightCheckOffBoxList - //[TypeConverter(typeof(vlnIndexedListConverter))] - //public class RightCheckOffBoxList : vlnIndexedFormatList - //{ - // public RightCheckOffBoxList(XmlNodeList xmlNodeList,IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - // public override vlnIndexedFormatList InheritedList - // { - // get - // { - // IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - // if (parentFormat != null) - // return parentFormat.PlantFormat.FormatData.ProcData.CheckOffData.RightCheckOffBoxList; - // return null; - // } - // } - //} - //#endregion - #region CheckOff - [TypeConverter(typeof(ExpandableObjectConverter))] - public class CheckOff : vlnFormatItem,IVlnIndexedFormatItem - { - public CheckOff(XmlNode xmlNode) : base(xmlNode) { } - public CheckOff() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _UIMark; - public int? UIMark - { - get - { - return LazyLoad(ref _UIMark, "@UIMark"); - } - } - private LazyLoad _CheckOffWidAdjust; - public float? CheckOffWidAdjust - { - get - { - return LazyLoad(ref _CheckOffWidAdjust, "@CheckOffWidAdjust"); - } - } - private LazyLoad _MenuItem; - public string MenuItem - { - get - { - return LazyLoad(ref _MenuItem, "@MenuItem"); - } - } - private LazyLoad _Macro; - public string Macro - { - get - { - return LazyLoad(ref _Macro, "@Macro"); - } - } - private LazyLoad _NotOnEmpty; - public bool NotOnEmpty - { - get - { - return LazyLoad(ref _NotOnEmpty, "@NotOnEmpty"); - } - } - public override string GetPDDisplayName() - { return string.Format("[{0}]",Index); } - public override string GetPDDescription() - { return string.Format("[{0}] - {1}", Index, MenuItem); } - public override string GetPDCategory() - { return "Checkoff Data"; } - public override string ToString() - { - return MenuItem; - } - } - #endregion - #region CheckOffList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class CheckOffList : vlnIndexedFormatList - { - public CheckOffList(XmlNodeList xmlNodeList,IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffList; - return null; - } - } - } - #endregion - #region CheckOffHeader - [TypeConverter(typeof(ExpandableObjectConverter))] - public class CheckOffHeader : vlnFormatItem,IVlnIndexedFormatItem - { - public CheckOffHeader(XmlNode xmlNode) : base(xmlNode) { } - public CheckOffHeader() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null ? _Font = new VE_Font(base.XmlNode) : _Font); - } - } - private LazyLoad _CheckOffHeading; - public string CheckOffHeading - { - get - { - return LazyLoad(ref _CheckOffHeading, "@CheckOffHeading"); - } - } - public override string GetPDDisplayName() - { return string.Format("[{0}]", Index); } - public override string GetPDDescription() - { return string.Format("[{0}] - {1}", Index, CheckOffHeading); } - public override string GetPDCategory() - { return "Checkoff Header Data"; } - public override string ToString() - { - return CheckOffHeading; - } - } - #endregion - #region CheckOffHeaderList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class CheckOffHeaderList : vlnIndexedFormatList - { - public CheckOffHeaderList(XmlNodeList xmlNodeList,IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList; - return null; - } - } - } - #endregion - #endregion - #region ChangeBarData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ChangeBarData : vlnFormatItem - { - public ChangeBarData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _DefaultCBLoc; - public string DefaultCBLoc - { - get - { - return LazyLoad(ref _DefaultCBLoc, "@DefaultCBLoc"); - } - } - private LazyLoad _ChangeBarMessage; - public string ChangeBarMessage - { - get - { - return LazyLoad(ref _ChangeBarMessage, "@ChangeBarMessage"); - } - } - private LazyLoad _FixedChangeColumn; - public int? FixedChangeColumn - { - get - { - return LazyLoad(ref _FixedChangeColumn, "@FixedChangeColumn"); - } - } - private LazyLoad _FixedAERChangeColumn; - public int? FixedAERChangeColumn - { - get - { - return LazyLoad(ref _FixedAERChangeColumn, "@FixedAERChangeColumn"); - } - } - private LazyLoad _ChangeSummaryStyle; - public E_Style? ChangeSummaryStyle - { - get - { - return LazyLoad(ref _ChangeSummaryStyle, "@ChangeSummaryStyle"); - } - } - private LazyLoad _ChangeBarStyle; - public E_Style? ChangeBarStyle - { - get - { - return LazyLoad(ref _ChangeBarStyle, "@ChangeBarStyle"); - } - } - private LazyLoad _SpecialChangeBar; - public string SpecialChangeBar - { - get - { - return LazyLoad(ref _SpecialChangeBar, "@SpecialChangeBar"); - } - } - private LazyLoad _CondensedChangeBar; - public bool CondensedChangeBar - { - get - { - return LazyLoad(ref _CondensedChangeBar, "@CondensedChangeBar"); - } - } - private LazyLoad _AbsoluteFixedChangeColumn; - public bool AbsoluteFixedChangeColumn - { - get - { - return LazyLoad(ref _AbsoluteFixedChangeColumn, "@AbsoluteFixedChangeColumn"); - } - } - private LazyLoad _ContinuousChangeBars; - public bool ContinuousChangeBars - { - get - { - return LazyLoad(ref _ContinuousChangeBars, "@ContinuousChangeBars"); - } - } - private LazyLoad _ChgBarMessageFromEdit; - public bool ChgBarMessageFromEdit - { - get - { - return LazyLoad(ref _ChgBarMessageFromEdit, "@ChgBarMessageFromEdit"); - } - } - private LazyLoad _MultipleChangeIds; - public bool MultipleChangeIds - { - get - { - return LazyLoad(ref _MultipleChangeIds, "@MultipleChangeIds"); - } - } - private LazyLoad _ChangeBarToRNOSep; - public bool ChangeBarToRNOSep - { - get - { - return LazyLoad(ref _ChangeBarToRNOSep, "@ChangeBarToRNOSep"); - } - } - private LazyLoad _ChangeBarsOnLinkedText; - public bool ChangeBarsOnLinkedText - { - get - { - return LazyLoad(ref _ChangeBarsOnLinkedText, "@ChangeBarsOnLinkedText"); - } - } - } - #endregion - #endregion - #region SectDataAll - #region SectData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectData : vlnFormatItem - { - public SectData(XmlNode xmlNode) : base(xmlNode) { } - private SectionNumber _SectionNumber; - public SectionNumber SectionNumber - { - get - { - if (_SectionNumber == null) _SectionNumber = new SectionNumber(SelectSingleNode("SectionNumber")); - return _SectionNumber; - } - } - private SectionHeader _SectionHeader; - public SectionHeader SectionHeader - { - get - { - if (_SectionHeader == null) _SectionHeader = new SectionHeader(SelectSingleNode("SectionHeader")); - return _SectionHeader; - } - } - private StepSectionData _StepSectionData; - public StepSectionData StepSectionData - { - get - { - if (_StepSectionData == null) _StepSectionData = new StepSectionData(SelectSingleNode("StepSectionData")); - return _StepSectionData; - } - } - private AccSectionData _AccSectionData; - public AccSectionData AccSectionData - { - get - { - if (_AccSectionData == null) _AccSectionData = new AccSectionData(SelectSingleNode("AccSectionData")); - return _AccSectionData; - } - } - private MetaSectionList _MetaSectionList; - public MetaSectionList MetaSectionList - { - get - { - if (_MetaSectionList == null) _MetaSectionList = new MetaSectionList(SelectNodes("MetaSectionData/MetaSection"),MyFormat); - return _MetaSectionList; - } - set { _MetaSectionList = value; } - } - private ReplaceStrList _ReplaceStrList; - public ReplaceStrList ReplaceStrList - { - get - { - return (_ReplaceStrList == null) ? _ReplaceStrList = new ReplaceStrList(SelectNodes("ReplaceStrData/ReplaceStr")) : _ReplaceStrList; - } - set { _ReplaceStrList = value; } - } - private LazyLoad _SectionTitleLength; - public int? SectionTitleLength - { - get - { - return LazyLoad(ref _SectionTitleLength, "@SectionTitleLength"); - } - } - private LazyLoad _ForeColor; - public string ForeColor - { - get - { - return LazyLoad(ref _ForeColor, "@ForeColor"); - } - } - private LazyLoad _BackColor; - public string BackColor - { - get - { - return LazyLoad(ref _BackColor, "@BackColor"); - } - } - private LazyLoad _MetaSectEndMessage; - public bool MetaSectEndMessage - { - get - { - return LazyLoad(ref _MetaSectEndMessage, "@MetaSectEndMessage"); - } - } - private LazyLoad _ReadOnlyTypeInContMsg; - public bool ReadOnlyTypeInContMsg - { - get - { - return LazyLoad(ref _ReadOnlyTypeInContMsg, "@ReadOnlyTypeInContMsg"); - } - } - private LazyLoad _ReplaceWordsInROs; - public bool ReplaceWordsInROs - { - get - { - return LazyLoad(ref _ReplaceWordsInROs, "@ReplaceWordsInROs"); - } - } - private LazyLoad _UseMetaSections; - public bool UseMetaSections - { - get - { - return LazyLoad(ref _UseMetaSections, "@UseMetaSections"); - } - } - private LazyLoad _DefaultNoSubAutoIndent; - public bool DefaultNoSubAutoIndent - { - get - { - return LazyLoad(ref _DefaultNoSubAutoIndent, "@DefaultNoSubAutoIndent"); - } - } - private LazyLoad _NonEditableSteps; - public bool NonEditableSteps - { - get - { - return LazyLoad(ref _NonEditableSteps, "@NonEditableSteps"); - } - } - private LazyLoad _SearchAllReplaceWords; - public bool SearchAllReplaceWords - { - get - { - return LazyLoad(ref _SearchAllReplaceWords, "@SearchAllReplaceWords"); - } - } - private LazyLoad _SecTitleContinue; - public bool SecTitleContinue - { - get - { - return LazyLoad(ref _SecTitleContinue, "@SecTitleContinue"); - } - } - private LazyLoad _ConvertCaretToDelta; - public bool ConvertCaretToDelta - { - get - { - return LazyLoad(ref _ConvertCaretToDelta, "@ConvertCaretToDelta"); - } - } - // This format flag turns off the Replace Words functionality. - // in 16-bit proms, this was done simply by having an empty Replace Words list. - // in 32-bit the inheiradence logic finds a replace words list in the base format - // if the plant format does not have one. Thus the need of this format flag. - private LazyLoad _TurnOffReplaceWords; - public bool TurnOffReplaceWords - { - get - { - return LazyLoad(ref _TurnOffReplaceWords, "@TurnOffReplaceWords"); - } - } - } - #endregion - #region SectionNumber - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectionNumber : vlnFormatItem - { - public SectionNumber(XmlNode xmlNode) : base(xmlNode) { } - public SectionNumber() : base() { } - private LazyLoad _Pos; - public float? Pos - { - get - { - return LazyLoad(ref _Pos, "@Pos"); - } - } - private LazyLoad _Just; - public string Just - { - get - { - return LazyLoad(ref _Just, "@Just"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null ? _Font = new VE_Font(base.XmlNode) : _Font); - } - } - } - #endregion - #region SectionHeader - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectionHeader : vlnFormatItem - { - public SectionHeader(XmlNode xmlNode) : base(xmlNode) { } - public SectionHeader() : base() { } - private LazyLoad _Pos; - public float? Pos - { - get - { - return LazyLoad(ref _Pos, "@Pos"); - } - } - private LazyLoad _Just; - public string Just - { - get - { - return LazyLoad(ref _Just, "@Just"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null ? _Font = new VE_Font(base.XmlNode) : _Font); - } - } - } - #endregion - #region StepSectionDataAll - #region StepSectionData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class StepSectionData : vlnFormatItem - { - public StepSectionData(XmlNode xmlNode) : base(xmlNode) { } - private TextTypeValueList _TextTypeValueList; - public TextTypeValueList TextTypeValueList - { - get - { - return (_TextTypeValueList == null)? _TextTypeValueList = new TextTypeValueList(SelectNodes("TextTypeValue/short")): _TextTypeValueList; - } - set { _TextTypeValueList = value; } - } - private TextTypeList _TextTypeList; - public TextTypeList TextTypeList - { - get - { - return (_TextTypeList == null)? _TextTypeList = new TextTypeList(SelectNodes("TextType/string")): _TextTypeList; - } - set { _TextTypeList = value; } - } - //private SeqTabList _SeqTabList; - //public SeqTabList SeqTabList - //{ - // get - // { - // return (_SeqTabList == null)? _SeqTabList = new SeqTabList(SelectNodes("SeqTab/string")): _SeqTabList; - // } - // set { _SeqTabList = value; } - //} - //private PreSeqTabEditList _PreSeqTabEditList; - //public PreSeqTabEditList PreSeqTabEditList - //{ - // get - // { - // return (_PreSeqTabEditList == null) ?_PreSeqTabEditList = new PreSeqTabEditList(SelectNodes("PreSeqTabEdit/string")): _PreSeqTabEditList; - // } - // set { _PreSeqTabEditList = value; } - //} - //private PreSeqTabPrintList _PreSeqTabPrintList; - //public PreSeqTabPrintList PreSeqTabPrintList - //{ - // get - // { - // return (_PreSeqTabPrintList == null)? _PreSeqTabPrintList = new PreSeqTabPrintList(SelectNodes("PreSeqTabPrint/string")):_PreSeqTabPrintList; - // } - // set { _PreSeqTabPrintList = value; } - //} - //private PostSeqTabEditList _PostSeqTabEditList; - //public PostSeqTabEditList PostSeqTabEditList - //{ - // get - // { - // return (_PostSeqTabEditList == null)? _PostSeqTabEditList = new PostSeqTabEditList(SelectNodes("PostSeqTabEdit/string")): _PostSeqTabEditList; - // } - // set { _PostSeqTabEditList = value; } - //} - //private PostSeqTabPrintList _PostSeqTabPrintList; - //public PostSeqTabPrintList PostSeqTabPrintList - //{ - // get - // { - // return (_PostSeqTabPrintList == null)? _PostSeqTabPrintList = new PostSeqTabPrintList(SelectNodes("PostSeqTabPrint/string")): _PostSeqTabPrintList; - // } - // set { _PostSeqTabPrintList = value; } - //} - private UnderlineTerminateList _UnderlineTerminateList; - public UnderlineTerminateList UnderlineTerminateList - { - get - { - return (_UnderlineTerminateList == null)? _UnderlineTerminateList = new UnderlineTerminateList(SelectNodes("UnderlineTerminate/string")):_UnderlineTerminateList; - } - set { _UnderlineTerminateList = value; } - } - private ObserveNCString1List _ObserveNCString1List; - public ObserveNCString1List ObserveNCString1List - { - get - { - return (_ObserveNCString1List == null)? _ObserveNCString1List = new ObserveNCString1List(SelectNodes("ObserveNCString1/string")): _ObserveNCString1List; - } - set { _ObserveNCString1List = value; } - } - private ObserveNCString2List _ObserveNCString2List; - public ObserveNCString2List ObserveNCString2List - { - get - { - return (_ObserveNCString2List == null)? _ObserveNCString2List = new ObserveNCString2List(SelectNodes("ObserveNCString2/string")):_ObserveNCString2List; - } - set { _ObserveNCString2List = value; } - } - private StepSectionLayoutData _StepSectionLayoutData; - public StepSectionLayoutData StepSectionLayoutData - { - get - { - return (_StepSectionLayoutData == null)? _StepSectionLayoutData = new StepSectionLayoutData(SelectSingleNode("StpSectLayData")):_StepSectionLayoutData; - } - } - private StepSectionEditData _StepSectionEditData; - public StepSectionEditData StepSectionEditData - { - get - { - return (_StepSectionEditData == null)? _StepSectionEditData = new StepSectionEditData(SelectSingleNode("StpSectEditData")): _StepSectionEditData; - } - } - private SeqTabFmtList _SeqTabFmtList; - public SeqTabFmtList SeqTabFmtList - { - get - { - return (_SeqTabFmtList == null) ? _SeqTabFmtList = new SeqTabFmtList(SelectNodes("SequentialTabFormat/SeqTabFmt"),MyFormat) : _SeqTabFmtList; - } - } - private StepSectionPrintData _StepSectionPrintData; - public StepSectionPrintData StepSectionPrintData - { - get - { - return (_StepSectionPrintData == null) ? _StepSectionPrintData = new StepSectionPrintData(SelectSingleNode("StpSectPrtData")) : _StepSectionPrintData; - } - } - private LazyLoad _TopRow; - public int? TopRow - { - get - { - return LazyLoad(ref _TopRow, "@TopRow"); - } - } - //private LazyLoad _SeqStart; - //public string SeqStart - //{ - // get - // { - // return LazyLoad(ref _SeqStart, "@SeqStart"); - // } - //} - //private LazyLoad _LeftJustSeqTab; - //public string LeftJustSeqTab - //{ - // get - // { - // return LazyLoad(ref _LeftJustSeqTab, "@LeftJustSeqTab") ; - // } - //} - //private LazyLoad _HighSeqStart; - //public int? HighSeqStart - //{ - // get - // { - // return LazyLoad(ref _HighSeqStart, "@HighSeqStart"); - // } - //} - private LazyLoad _IndentToken; - public string IndentToken - { - get - { - return LazyLoad(ref _IndentToken, "@IndentToken"); - } - } - private LazyLoad _NumberOfHighLevelSteps; - public int? NumberOfHighLevelSteps - { - get - { - return LazyLoad(ref _NumberOfHighLevelSteps, "@NumberOfHighLevelSteps"); - } - } - private LazyLoad _NumberOfSubStypeTypes; - public int? NumberOfSubStypeTypes - { - get - { - return LazyLoad(ref _NumberOfSubStypeTypes, "@NumberOfSubStepTypes"); - } - } - private LazyLoad _IdentB; - public string IdentB - { - get - { - return LazyLoad(ref _IdentB, "@IdentB"); - } - } - private LazyLoad _WolfCreekBackgroundFormat; - public bool WolfCreekBackgroundFormat - { - get - { - return LazyLoad(ref _WolfCreekBackgroundFormat, "@WolfCreekBackgroundFormat"); - } - } - private LazyLoad _WolfcreekCKLFormat; - public bool WolfcreekCKLFormat - { - get - { - return LazyLoad(ref _WolfcreekCKLFormat, "@WolfcreekCKLFormat"); - } - } - private LazyLoad _WolfcreekCKLBackgndFormat; - public bool WolfcreekCKLBackgndFormat - { - get - { - return LazyLoad(ref _WolfcreekCKLBackgndFormat, "@WolfcreekCKLBackgndFormat"); - } - } - private LazyLoad _FortranFormatNumbers; - public bool FortranFormatNumbers - { - get - { - return LazyLoad(ref _FortranFormatNumbers, "@FortranFormatNumbers"); - } - } - private LazyLoad _UseTopContinueMessageAtEnd; - public bool UseTopContinueMessageAtEnd - { - get - { - return LazyLoad(ref _UseTopContinueMessageAtEnd, "@UseTopContinueMessageAtEnd"); - } - } - private LazyLoad _FloatingContinueMessage; - public bool FloatingContinueMessage - { - get - { - return LazyLoad(ref _FloatingContinueMessage, "@FloatingContinueMessage"); - } - } - private LazyLoad _WrapSameAsEdit; - public bool WrapSameAsEdit - { - get - { - return LazyLoad(ref _WrapSameAsEdit, "@WrapSameAsEdit"); - } - } - private LazyLoad _ContinueSectionHeader; - public bool ContinueSectionHeader - { - get - { - return LazyLoad(ref _ContinueSectionHeader, "@ContinueSectionHeader"); - } - } - private LazyLoad _CompressHPSub; - public bool CompressHPSub - { - get - { - return LazyLoad(ref _CompressHPSub, "@CompressHPSub"); - } - } - private LazyLoad _CompressHPSuper; - public bool CompressHPSuper - { - get - { - return LazyLoad(ref _CompressHPSuper, "@CompressHPSuper"); - } - } - private LazyLoad _UndSpecialStepsFoldout; - public bool UndSpecialStepsFoldout - { - get - { - return LazyLoad(ref _UndSpecialStepsFoldout, "@UndSpecialStepsFoldout"); - } - } - private LazyLoad _UnderlineAllMetaTitles; - public bool UnderlineAllMetaTitles - { - get - { - return LazyLoad(ref _UnderlineAllMetaTitles, "@UnderlineAllMetaTitles"); - } - } - private LazyLoad _BoldOnlySectionZero; - public bool BoldOnlySectionZero - { - get - { - return LazyLoad(ref _BoldOnlySectionZero, "@BoldOnlySectionZero"); - } - } - private LazyLoad _ImperfectStructure; - public bool ImperfectStructure - { - get - { - return LazyLoad(ref _ImperfectStructure, "@ImperfectStructure"); - } - } - private LazyLoad _ImperfectSubstep; - public bool ImperfectSubstep - { - get - { - return LazyLoad(ref _ImperfectSubstep, "@ImperfectSubstep"); - } - } - private LazyLoad _ImperfectStructurePlus4; - public bool ImperfectStructurePlus4 - { - get - { - return LazyLoad(ref _ImperfectStructurePlus4, "@ImperfectStructurePlus4"); - } - } - private LazyLoad _CountAllSubLevels; - public bool CountAllSubLevels - { - get - { - return LazyLoad(ref _CountAllSubLevels, "@CountAllSubLevels"); - } - } - private LazyLoad _UseMultiLineSectionTitle; - public bool UseMultiLineSectionTitle - { - get - { - return LazyLoad(ref _UseMultiLineSectionTitle, "@UseMultiLineSectionTitle"); - } - } - private LazyLoad _AdjustRNOCautionNoteWidth; - public bool AdjustRNOCautionNoteWidth - { - get - { - return LazyLoad(ref _AdjustRNOCautionNoteWidth, "@AdjustRNOCautionNoteWidth"); - } - } - } - #endregion - #region TextTypeValue - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TextTypeValue : vlnFormatItem - { - public TextTypeValue(XmlNode xmlNode) : base(xmlNode) { } - public TextTypeValue() : base() { } - private LazyLoad _TheValue; - public int? TheValue - { - get - { - return LazyLoad(ref _TheValue, "text()"); - } - } - public override string GetPDDisplayName() - { return "Value"; } - public override string GetPDDescription() - { return string.Format("TextTypeValue '{0}'", TheValue); } - public override string GetPDCategory() - { return "Text Type Value"; } - public override string ToString() - { - return TheValue.ToString(); - } - } - #endregion - #region TextTypeValueList - [TypeConverter(typeof(vlnListConverter))] - public class TextTypeValueList : vlnFormatList - { - public TextTypeValueList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region TextType - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TextType : vlnFormatItem - { - public TextType(XmlNode xmlNode) : base(xmlNode) { } - public TextType() : base() { } - //[Category("Strings")] - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("TextType '{0}'", Text); } - public override string GetPDCategory() - { return "Text Type"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region TextTypeList - [TypeConverter(typeof(vlnListConverter))] - public class TextTypeList : vlnFormatList - { - public TextTypeList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region OLD - SeqTab - //[TypeConverter(typeof(ExpandableObjectConverter))] - //public class SeqTab : vlnFormatItem - //{ - // public SeqTab(XmlNode xmlNode) : base(xmlNode) { } - // public SeqTab() : base() { } - // private LazyLoad _Text; - // public string Text - // { - // get - // { - // return LazyLoad(ref _Text, "text()"); - // } - // } - // public override string GetPDDisplayName() - // { return "Text"; } - // public override string GetPDDescription() - // { return string.Format("SeqTab '{0}'", Text); } - // public override string GetPDCategory() - // { return "Seq Tab"; } - // public override string ToString() - // { - // return Text; - // } - //} - #endregion - #region OLD - SeqTabList - //[TypeConverter(typeof(vlnListConverter))] - //public class SeqTabList : vlnFormatList - //{ - // public SeqTabList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - //} - #endregion - #region OLD - PreSeqTabEdit - //[TypeConverter(typeof(ExpandableObjectConverter))] - //public class PreSeqTabEdit : vlnFormatItem - //{ - // public PreSeqTabEdit(XmlNode xmlNode) : base(xmlNode) { } - // public PreSeqTabEdit() : base() { } - // //[Category("Strings")] - // private LazyLoad _Text; - // public string Text - // { - // get - // { - // return LazyLoad(ref _Text, "text()"); - // } - // } - // public override string GetPDDisplayName() - // { return "Text"; } - // public override string GetPDDescription() - // { return string.Format("PreSeqTabEdit '{0}'", Text); } - // public override string GetPDCategory() - // { return "PreSeq Tab Edit"; } - // public override string ToString() - // { - // return Text; - // } - //} - #endregion - #region OLD - PreSeqTabEditList - //[TypeConverter(typeof(vlnListConverter))] - //public class PreSeqTabEditList : vlnFormatList - //{ - // public PreSeqTabEditList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - //} - #endregion - #region OLD - PreSeqTabPrint - //[TypeConverter(typeof(ExpandableObjectConverter))] - //public class PreSeqTabPrint : vlnFormatItem - //{ - // public PreSeqTabPrint(XmlNode xmlNode) : base(xmlNode) { } - // public PreSeqTabPrint() : base() { } - // private LazyLoad _Text; - // public string Text - // { - // get - // { - // return LazyLoad(ref _Text, "text()"); - // } - // } - // public override string GetPDDisplayName() - // { return "Text"; } - // public override string GetPDDescription() - // { return string.Format("PreSeqTabPrint '{0}'", Text); } - // public override string GetPDCategory() - // { return "PreSeq Tab Printt"; } - // public override string ToString() - // { - // return Text; - // } - //} - #endregion - #region OLD - PreSeqTabPrintList - //[TypeConverter(typeof(vlnListConverter))] - //public class PreSeqTabPrintList : vlnFormatList - //{ - // public PreSeqTabPrintList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - //} - #endregion - #region OLD - PostSeqTabEdit - //[TypeConverter(typeof(ExpandableObjectConverter))] - //public class PostSeqTabEdit : vlnFormatItem - //{ - // public PostSeqTabEdit(XmlNode xmlNode) : base(xmlNode) { } - // public PostSeqTabEdit() : base() { } - // private LazyLoad _Text; - // public string Text - // { - // get - // { - // return LazyLoad(ref _Text, "text()"); - // } - // } - // public override string GetPDDisplayName() - // { return "Text"; } - // public override string GetPDDescription() - // { return string.Format("PostSeqTabEdit '{0}'", Text); } - // public override string GetPDCategory() - // { return "PostSeq Tab Edit"; } - // public override string ToString() - // { - // return Text; - // } - //} - #endregion - #region OLD - PostSeqTabEditList - //[TypeConverter(typeof(vlnListConverter))] - //public class PostSeqTabEditList : vlnFormatList - //{ - // public PostSeqTabEditList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - //} - #endregion - #region OLD - PostSeqTabPrint - //[TypeConverter(typeof(ExpandableObjectConverter))] - //public class PostSeqTabPrint : vlnFormatItem - //{ - // public PostSeqTabPrint(XmlNode xmlNode) : base(xmlNode) { } - // public PostSeqTabPrint() : base() { } - // private LazyLoad _Text; - // public string Text - // { - // get - // { - // return LazyLoad(ref _Text, "text()"); - // } - // } - // public override string GetPDDisplayName() - // { return "Text"; } - // public override string GetPDDescription() - // { return string.Format("PostSeqTabPrint '{0}'", Text); } - // public override string GetPDCategory() - // { return "PostSeq Tab Printt"; } - // public override string ToString() - // { - // return Text; - // } - //} - #endregion - #region OLD - PostSeqTabPrintList - //[TypeConverter(typeof(vlnListConverter))] - //public class PostSeqTabPrintList : vlnFormatList - //{ - // public PostSeqTabPrintList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - //} - #endregion - #region UnderlineTerminate - [TypeConverter(typeof(ExpandableObjectConverter))] - public class UnderlineTerminate : vlnFormatItem - { - public UnderlineTerminate(XmlNode xmlNode) : base(xmlNode) { } - public UnderlineTerminate() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("UnderlineTerminate '{0}'", Text); } - public override string GetPDCategory() - { return "Underline Terminate"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region UnderlineTerminateList - [TypeConverter(typeof(vlnListConverter))] - public class UnderlineTerminateList : vlnFormatList - { - public UnderlineTerminateList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region ObserveNCString1 - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ObserveNCString1 : vlnFormatItem - { - public ObserveNCString1(XmlNode xmlNode) : base(xmlNode) { } - public ObserveNCString1() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("ObserveNCString1 '{0}'", Text); } - public override string GetPDCategory() - { return "ObserveNCString1"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region ObserveNCString1List - [TypeConverter(typeof(vlnListConverter))] - public class ObserveNCString1List : vlnFormatList - { - public ObserveNCString1List(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region ObserveNCString2 - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ObserveNCString2 : vlnFormatItem - { - public ObserveNCString2(XmlNode xmlNode) : base(xmlNode) { } - public ObserveNCString2() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("ObserveNCString2 '{0}'", Text); } - public override string GetPDCategory() - { return "ObserveNCString2"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region ObserveNCString2List - [TypeConverter(typeof(vlnListConverter))] - public class ObserveNCString2List : vlnFormatList - { - public ObserveNCString2List(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region ReplaceStr - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ReplaceStr : vlnFormatItem - { - public ReplaceStr(XmlNode xmlNode) : base(xmlNode) { } - public ReplaceStr() : base() { } - [Category("Strings")] - private LazyLoad _ReplaceWord; - public string ReplaceWord - { - get - { - return LazyLoad(ref _ReplaceWord, "@ReplaceWord"); - } - } - [Category("Strings")] - private LazyLoad _ReplaceWith; - public string ReplaceWith - { - get - { - return LazyLoad(ref _ReplaceWith, "@ReplaceWith"); - } - } - private LazyLoad _Flag; - public E_ReplaceFlags? Flag - { - get - { - return LazyLoad(ref _Flag, "@Flag"); - } - } - public override string GetPDDisplayName() - { return ReplaceWord; } - public override string GetPDDescription() - { return string.Format("Replace '{0}' with '{1}'",ReplaceWord,ReplaceWith); } - public override string GetPDCategory() - { return "Words to Replace"; } - public override string ToString() - { - return ReplaceWith; - } - } - - #endregion - #region ReplaceStrList - [TypeConverter(typeof(vlnListConverter))] - public class ReplaceStrList : vlnFormatList - { - public ReplaceStrList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region StepSectionLayoutData - public class StepSectionLayoutData : vlnFormatItem - { - public StepSectionLayoutData(XmlNode xmlNode) : base(xmlNode) { } - private TopOfPage _TopOfPage; - public TopOfPage TopOfPage - { - get - { - return (_TopOfPage == null)? _TopOfPage = new TopOfPage(SelectSingleNode("TopOfPage")): _TopOfPage; - } - } - private Separator _Separator; - public Separator Separator - { - get - { - return (_Separator == null) ?_Separator = new Separator(SelectSingleNode("Separator")):_Separator; - } - } - private LazyLoad _LastLineToStartStep; - public float? LastLineToStartStep - { - get - { - return LazyLoad(ref _LastLineToStartStep, "@LastLineToStartStep"); - } - } - private LazyLoad _LineDrawingOption; - public int? LineDrawingOption - { - get - { - return LazyLoad(ref _LineDrawingOption, "@LineDrawingOption"); - } - } - private LazyLoad _TabPtsPerChar; - public float? TabPtsPerChar - { - get - { - return LazyLoad(ref _TabPtsPerChar, "@TabPtsPerChar"); - } - } - private LazyLoad _ColS; - public float? ColS - { - get - { - return LazyLoad(ref _ColS, "@ColS"); - } - } - private LazyLoad _ColT; - public float? ColT - { - get - { - return LazyLoad(ref _ColT, "@ColT"); - } - } - private LazyLoad _ColAbs; - public float? ColAbs - { - get - { - return LazyLoad(ref _ColAbs, "@ColAbs"); - } - } - private LazyLoad _WidT; - public float? WidT - { - get - { - return LazyLoad(ref _WidT, "@WidT"); - } - } - private LazyLoad _PMode; - public int? PMode - { - get - { - return LazyLoad(ref _PMode, "@PMode"); - } - } - private LazyLoad _MaxRNO; - public int? MaxRNO - { - get - { - return LazyLoad(ref _MaxRNO, "@MaxRNO"); - } - } - private LazyLoad _MaxRNOTable; - public string MaxRNOTable - { - get - { - return LazyLoad(ref _MaxRNOTable, "@MaxRNOTable"); - } - } - private LazyLoad _RNOWidthSameAsHighParent; - public bool RNOWidthSameAsHighParent - { - get - { - return LazyLoad(ref _RNOWidthSameAsHighParent, "@RNOWidthSameAsHighParent"); - } - } - private LazyLoad _SingleColumnRNOIndent; - public float? SingleColumnRNOIndent - { - get - { - return LazyLoad(ref _SingleColumnRNOIndent, "@SingleColumnRNOIndent"); - } - } - private LazyLoad _ColRTable; - public string ColRTable - { - get - { - return LazyLoad(ref _ColRTable, "@ColRTable"); - } - } - private LazyLoad _WidSTableEdit; - public string WidSTableEdit - { - get - { - return LazyLoad(ref _WidSTableEdit, "@WidSTableEdit"); - } - } - private LazyLoad _WidSTablePrint; - public string WidSTablePrint - { - get - { - return LazyLoad(ref _WidSTablePrint, "@WidSTablePrint"); - } - } - private LazyLoad _AdjRNOCol; - public float? AdjRNOCol - { - get - { - return LazyLoad(ref _AdjRNOCol, "@AdjRNOCol"); - } - } - private LazyLoad _EndMessagePos; - public int? EndMessagePos - { - get - { - return LazyLoad(ref _EndMessagePos, "@EndMessagePos"); - } - } - private LazyLoad _RNOWidthAlt; - public string RNOWidthAlt - { - get - { - return LazyLoad(ref _RNOWidthAlt, "@RNOWidthAlt"); - } - } - private LazyLoad _RNOWidthAdj; - public string RNOWidthAdj - { - get - { - return LazyLoad(ref _RNOWidthAdj, "@RNOWidthAdj"); - } - } - private LazyLoad _BoxLeftAdj; - public string BoxLeftAdj - { - get - { - return LazyLoad(ref _BoxLeftAdj, "@BoxLeftAdj"); - } - } - private LazyLoad _HLSWidthOVRD; - public int? HLSWidthOVRD - { - get - { - return LazyLoad(ref _HLSWidthOVRD, "@HLSWidthOVRD"); - } - } - private LazyLoad _SubPaginationWght; - public int? SubPaginationWght - { - get - { - return LazyLoad(ref _SubPaginationWght, "@SubPaginationWght"); - } - } - private LazyLoad _TextTitleAdjustment; - public int? TextTitleAdjustment - { - get - { - return LazyLoad(ref _TextTitleAdjustment, "@TextTitleAdjustment"); - } - } - private VE_Font _VertStyle; - public VE_Font VertStyle - { - get - { - return (_VertStyle == null)? _VertStyle = new VE_Font(base.XmlNode): _VertStyle; - } - } - private LazyLoad _TableCenterPos; - public string TableCenterPos - { - get - { - return LazyLoad(ref _TableCenterPos, "@TableCenterPos"); - } - } - private LazyLoad _LowerLimitDivisor; - public string LowerLimitDivisor - { - get - { - return LazyLoad(ref _LowerLimitDivisor, "@LowerLimitDivisor"); - } - } - private LazyLoad _NonLinkedStepNumber; - public string NonLinkedStepNumber - { - get - { - return LazyLoad(ref _NonLinkedStepNumber, "@NonLinkedStepNumber"); - } - } - private LazyLoad _NonLinkedCautNoteNumber; - public string NonLinkedCautNoteNumber - { - get - { - return LazyLoad(ref _NonLinkedCautNoteNumber, "@NonLinkedCautNoteNumber"); - } - } - private LazyLoad _NonLinkedRNONumber; - public string NonLinkedRNONumber - { - get - { - return LazyLoad(ref _NonLinkedRNONumber, "@NonLinkedRNONumber"); - } - } - private LazyLoad _Dev_Format; - public bool Dev_Format - { - get - { - return LazyLoad(ref _Dev_Format, "@Dev_Format"); - } - } - private LazyLoad _EnhancedShortFormDev; - public bool EnhancedShortFormDev - { - get - { - return LazyLoad(ref _EnhancedShortFormDev, "@EnhancedShortFormDev"); - } - } - private LazyLoad _SpecialPageBreakFlag; - public bool SpecialPageBreakFlag - { - get - { - return LazyLoad(ref _SpecialPageBreakFlag, "@SpecialPageBreakFlag"); - } - } - private LazyLoad _PaginateOnFirstSubstep; - public bool PaginateOnFirstSubstep - { - get - { - return LazyLoad(ref _PaginateOnFirstSubstep, "@PaginateOnFirstSubstep"); - } - } - private LazyLoad _PaginateOnFirstSubstep2X; - public bool PaginateOnFirstSubstep2X - { - get - { - return LazyLoad(ref _PaginateOnFirstSubstep2X, "@PaginateOnFirstSubstep2X"); - } - } - private LazyLoad _UseHalfLines; - public bool UseHalfLines - { - get - { - return LazyLoad(ref _UseHalfLines, "@UseHalfLines"); - } - } - private LazyLoad _TryToFillHalfOfPage; - public bool TryToFillHalfOfPage - { - get - { - return LazyLoad(ref _TryToFillHalfOfPage, "@TryToFillHalfOfPage"); - } - } - private LazyLoad _CompressSteps; - public bool CompressSteps - { - get - { - return LazyLoad(ref _CompressSteps, "@CompressSteps"); - } - } - private LazyLoad _DoSTExtraAtTop; - public bool DoSTExtraAtTop - { - get - { - return LazyLoad(ref _DoSTExtraAtTop, "@DoSTExtraAtTop"); - } - } - private LazyLoad _KeepStepsOnPage; - public bool KeepStepsOnPage - { - get - { - return LazyLoad(ref _KeepStepsOnPage, "@KeepStepsOnPage"); - } - } - private LazyLoad _BreakOnSections; - public bool BreakOnSections - { - get - { - return LazyLoad(ref _BreakOnSections, "@BreakOnSections"); - } - } - private LazyLoad _ShowSectionTitles; - public bool ShowSectionTitles - { - get - { - return LazyLoad(ref _ShowSectionTitles, "@ShowSectionTitles"); - } - } - private LazyLoad _EndForSingle; - public bool EndForSingle - { - get - { - return LazyLoad(ref _EndForSingle, "@EndForSingle"); - } - } - private LazyLoad _PaginateOnFirstSubstep3X; - public bool PaginateOnFirstSubstep3X - { - get - { - return LazyLoad(ref _PaginateOnFirstSubstep3X, "@PaginateOnFirstSubstep3X"); - } - } - private LazyLoad _PaginateOnLowerStepLevel; - public bool PaginateOnLowerStepLevel - { - get - { - return LazyLoad(ref _PaginateOnLowerStepLevel, "@PaginateOnLowerStepLevel"); - } - } - private LazyLoad _CustomSpacing; - public bool CustomSpacing - { - get - { - return LazyLoad(ref _CustomSpacing, "@CustomSpacing"); - } - } - private LazyLoad _SplitStepInPrntStep; - public bool SplitStepInPrntStep - { - get - { - return LazyLoad(ref _SplitStepInPrntStep, "@SplitStepInPrntStep"); - } - } - private LazyLoad _LineAboveUnderSection; - public bool LineAboveUnderSection - { - get - { - return LazyLoad(ref _LineAboveUnderSection, "@LineAboveUnderSection"); - } - } - private LazyLoad _PicaIgnoreFiveSixths; - public bool PicaIgnoreFiveSixths - { - get - { - return LazyLoad(ref _PicaIgnoreFiveSixths, "@PicaIgnoreFiveSixths"); - } - } - private LazyLoad _SpaceForNoSecNumb; - public bool SpaceForNoSecNumb - { - get - { - return LazyLoad(ref _SpaceForNoSecNumb, "@SpaceForNoSecNumb"); - } - } - private LazyLoad _PageBreakOnFirstBlankLine; - public bool PageBreakOnFirstBlankLine - { - get - { - return LazyLoad(ref _PageBreakOnFirstBlankLine, "@PageBreakOnFirstBlankLine"); - } - } - private LazyLoad _PutOnPageByItself; - public bool PutOnPageByItself - { - get - { - return LazyLoad(ref _PutOnPageByItself, "@PutOnPageByItself"); - } - } - private LazyLoad _PaginateAtHighestPaginLevel; - public bool PaginateAtHighestPaginLevel - { - get - { - return LazyLoad(ref _PaginateAtHighestPaginLevel, "@PaginateAtHighestPaginLevel"); - } - } - private LazyLoad _UseSTExtraRealValue; - public bool UseSTExtraRealValue - { - get - { - return LazyLoad(ref _UseSTExtraRealValue, "@UseSTExtraRealValue"); - } - } - private LazyLoad _DoSectionSeparatorLine; - public bool DoSectionSeparatorLine - { - get - { - return LazyLoad(ref _DoSectionSeparatorLine, "@DoSectionSeparatorLine"); - } - } - private LazyLoad _TieTabToLevel; - public bool TieTabToLevel - { - get - { - return LazyLoad(ref _TieTabToLevel, "@TieTabToLevel"); - } - } - private LazyLoad _HighLevelRNOBeforeAERSubsteps; - public bool HighLevelRNOBeforeAERSubsteps - { - get - { - return LazyLoad(ref _HighLevelRNOBeforeAERSubsteps, "@HighLevelRNOBeforeAERSubsteps"); - } - } - private LazyLoad _UseStepTypeWidthOverride; - public bool UseStepTypeWidthOverride - { - get - { - return LazyLoad(ref _UseStepTypeWidthOverride, "@UseStepTypeWidthOverride"); - } - } - private LazyLoad _UseStepTypeWidthOverrideEditPrint; - public bool UseStepTypeWidthOverrideEditPrint - { - get - { - return LazyLoad(ref _UseStepTypeWidthOverrideEditPrint, "@UseStepTypeWidthOverrideEditPrint"); - } - } - private LazyLoad _PartialStepCompression; - public bool PartialStepCompression - { - get - { - return LazyLoad(ref _PartialStepCompression, "@PartialStepCompression"); - } - } - private LazyLoad _VirtualDotInHLSTab; - public bool VirtualDotInHLSTab - { - get - { - return LazyLoad(ref _VirtualDotInHLSTab, "@VirtualDotInHLSTab"); - } - } - private LazyLoad _OverrideEnhancedTabs; - public bool OverrideEnhancedTabs - { - get - { - return LazyLoad(ref _OverrideEnhancedTabs, "@OverrideEnhancedTabs"); - } - } - private LazyLoad _RNO; - public bool RNO - { - get - { - return LazyLoad(ref _RNO, "@RNO"); - } - } - private LazyLoad _OnlySingleColumn; - public bool OnlySingleColumn - { - get - { - return LazyLoad(ref _OnlySingleColumn, "@OnlySingleColumn"); - } - } - private LazyLoad _NullBox; - public bool NullBox - { - get - { - return LazyLoad(ref _NullBox, "@NullBox"); - } - } - private LazyLoad _AllowNoteCautionAdd; - public bool AllowNoteCautionAdd - { - get - { - return LazyLoad(ref _AllowNoteCautionAdd, "@AllowNoteCautionAdd"); - } - } - } - #endregion - #region TopOfPage - public class TopOfPage : vlnFormatItem - { - public TopOfPage(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _Row; - public float? Row - { - get - { - return LazyLoad(ref _Row, "@Row"); - } - } - private LazyLoad _Col; - public float? Col - { - get - { - return LazyLoad(ref _Col, "@Col"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null? _Font = new VE_Font(base.XmlNode): _Font); - } - } - } - #endregion - #region Separator - public class Separator : vlnFormatItem - { - public Separator(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _Location; - public int? Location - { - get - { - return LazyLoad(ref _Location, "@Location"); - //return LazyLoad(ref _SeparatorLocation, "@SeparatorLocation"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null ? _Font = new VE_Font(base.XmlNode) : _Font); - } - } - } - #endregion - #region StepSectionEditData - public class StepSectionEditData : vlnFormatItem - { - public StepSectionEditData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _ColSScreenAdj; - public float? ColSScreenAdj - { - get - { - return LazyLoad(ref _ColSScreenAdj, "@ColSScreenAdj"); - } - } - private LazyLoad _ScrnAdjRNOText; - public float? ScrnAdjRNOText - { - get - { - return LazyLoad(ref _ScrnAdjRNOText, "@ScrnAdjRNOText"); - } - } - private LazyLoad _ColRScreen; - public string ColRScreen - { - get - { - return LazyLoad(ref _ColRScreen, "@ColRScreen"); - } - } - } - #endregion - #region StepSectionPrintData - public class StepSectionPrintData : vlnFormatItem - { - public StepSectionPrintData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _ImmStepHdrCol; - public float? ImmStepHdrCol - { - get - { - return LazyLoad(ref _ImmStepHdrCol, "@ImmStepHdrCol"); - } - } - private LazyLoad _SecColHdrforActPMode; - public int? SecColHdrforActPMode - { - get - { - return LazyLoad(ref _SecColHdrforActPMode, "@SecColHdrforActPMode"); - } - } - private LazyLoad _RNOSepString; - public string RNOSepString - { - get - { - return LazyLoad(ref _RNOSepString, "@RNOSepString"); - } - } - private LazyLoad _RNOSepLineLength; - public float? RNOSepLineLength - { - get - { - return LazyLoad(ref _RNOSepLineLength, "@RNOSepLineLength"); - } - } - private LazyLoad _HLStpSeparatorString; - public string HLStpSeparatorString - { - get - { - return LazyLoad(ref _HLStpSeparatorString, "@HLStpSeparatorString"); - } - } - private LazyLoad _HLRNOStpSeparatorString; - public string HLRNOStpSeparatorString - { - get - { - return LazyLoad(ref _HLRNOStpSeparatorString, "@HLRNOStpSeparatorString"); - } - } - private LazyLoad _LowerCaseRevNum; - public bool LowerCaseRevNum - { - get - { - return LazyLoad(ref _LowerCaseRevNum, "@LowerCaseRevNum"); - } - } - private LazyLoad _UseXtraRevNumber; - public bool UseXtraRevNumber - { - get - { - return LazyLoad(ref _UseXtraRevNumber, "@UseXtraRevNumber"); - } - } - private LazyLoad _SpecialLandscapeMode; - public bool SpecialLandscapeMode - { - get - { - return LazyLoad(ref _SpecialLandscapeMode, "@SpecialLandscapeMode"); - } - } - private VE_Font _ModifiedTextStyle; - public VE_Font ModifiedTextStyle - { - get - { - return (_ModifiedTextStyle == null)? _ModifiedTextStyle = new VE_Font(base.XmlNode):_ModifiedTextStyle; - } - } - private VE_Font _ImmStepHdrStyle; - public VE_Font ImmStepHdrStyle - { - get - { - return (_ImmStepHdrStyle == null)? _ImmStepHdrStyle = new VE_Font(base.XmlNode):_ImmStepHdrStyle; - } - } - private ImmStepHdrList _ImmStepHdrList; - public ImmStepHdrList ImmStepHdrList - { - get - { - return (_ImmStepHdrList == null)? _ImmStepHdrList = new ImmStepHdrList(SelectNodes("ImmStepHdrList/string")):_ImmStepHdrList; - } - set { _ImmStepHdrList = value; } - } - private LeftJustifyList _LeftJustifyList; - public LeftJustifyList LeftJustifyList - { - get - { - return (_LeftJustifyList == null) ? _LeftJustifyList = new LeftJustifyList(SelectNodes("LeftJustifyList/LeftJustify")) : _LeftJustifyList; - } - set { _LeftJustifyList = value; } - } - } - #region ImmStepHdr - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ImmStepHdr : vlnFormatItem - { - public ImmStepHdr(XmlNode xmlNode) : base(xmlNode) { } - public ImmStepHdr() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("ImmStepHdr '{0}'", Text); } - public override string GetPDCategory() - { return "Imm Step Hdr"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region ImmStepHdrList - [TypeConverter(typeof(vlnListConverter))] - public class ImmStepHdrList : vlnFormatList - { - public ImmStepHdrList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region LeftJustifyList - [TypeConverter(typeof(vlnListConverter))] - public class LeftJustifyList : vlnFormatList - { - public LeftJustifyList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region LeftJustify - [TypeConverter(typeof(ExpandableObjectConverter))] - public class LeftJustify : vlnFormatItem, IVlnIndexedFormatItem - { - public LeftJustify(XmlNode xmlNode) : base(xmlNode) { } - public LeftJustify() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _Size; - public float? Size - { - get - { - return LazyLoad(ref _Size, "@Size"); - } - } - } - #endregion - #endregion - #region SeqTabFmtAll - #region SeqTabFmt - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SeqTabFmt : vlnFormatItem,IVlnIndexedFormatItem - { - public SeqTabFmt() : base() { } - private LazyLoad _Index; //not included - is it needed? - [Description("SeqTab Index")] - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _TabToken; - public string TabToken - { - get - { - return LazyLoad(ref _TabToken, "@TabToken"); - } - } - private LazyLoad _TabFormat; - public string TabFormat - { - get - { - return LazyLoad(ref _TabFormat, "@TabFormat"); - } - } - private LazyLoad _PrintTabFormat; - public string PrintTabFormat - { - get - { - return LazyLoad(ref _TabFormat, "@PrintTabFormat"); - } - } - public override string GetPDDisplayName() - { return string.Format("Index [{0}]",Index); } - public override string GetPDDescription() - { return string.Format("Sequential Tab Format Index '{0}' Format '{1}'", Index, TabFormat); } - public override string GetPDCategory() - { return "Sequential Tab Formatting"; } - public override string ToString() - { - return TabFormat; - } - } - #endregion - #region SeqTabFmtList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class SeqTabFmtList : vlnIndexedFormatList - { - public SeqTabFmtList(XmlNodeList xmlNodeList,IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList; - return null; - } - } - } - #endregion - #endregion - #endregion - #region AccSectionDataAll - #region AccSectionData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class AccSectionData : vlnFormatItem - { - public AccSectionData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _AutoContActSumSection; - public int? AutoContActSumSection - { - get - { - return LazyLoad(ref _AutoContActSumSection, "@AutoContActSumSection"); - } - } - private TableOfContentsData _TableOfContentsData; - public TableOfContentsData TableOfContentsData - { - get - { - return (_TableOfContentsData == null ? _TableOfContentsData = new TableOfContentsData(SelectSingleNode("TableOfContentsData")) : _TableOfContentsData); - } - } - } - #endregion - #region TableOfContentsData - public class TableOfContentsData : vlnFormatItem - { - public TableOfContentsData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _TofCSecNumPos; - public float? TofCSecNumPos - { - get - { - return LazyLoad(ref _TofCSecNumPos, "@TofCSecNumPos"); - } - } - private LazyLoad _TofCSecTitlePos; - public float? TofCSecTitlePos - { - get - { - return LazyLoad(ref _TofCSecTitlePos, "@TofCSecTitlePos"); - } - } - private LazyLoad _TofCSecTitleLen; - public int? TofCSecTitleLen - { - get - { - return LazyLoad(ref _TofCSecTitleLen, "@TofCSecTitleLen"); - } - } - private LazyLoad _TofCPageNumPos; - public float? TofCPageNumPos - { - get - { - return LazyLoad(ref _TofCPageNumPos, "@TofCPageNumPos"); - } - } - private LazyLoad _TofCSpaceChar; - public string TofCSpaceChar - { - get - { - return LazyLoad(ref _TofCSpaceChar, "@TofCSpaceChar"); - } - } - private LazyLoad _TofCLineSpacing; - public int? TofCLineSpacing - { - get - { - return LazyLoad(ref _TofCLineSpacing, "@TofCLineSpacing"); - } - } - private LazyLoad _TofCNumLevels; - public int? TofCNumLevels - { - get - { - return LazyLoad(ref _TofCNumLevels, "@TofCNumLevels"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null) ?_Font = new VE_Font(base.XmlNode):_Font; - } - } - } - #endregion - #endregion - #region MetaSectionAll - #region MetaSection - [TypeConverter(typeof(ExpandableObjectConverter))] - public class MetaSection : vlnFormatItem,IVlnIndexedFormatItem - { - public MetaSection(XmlNode xmlNode) : base(xmlNode) { } - public MetaSection() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _SecNumPositionAdj; - public float? SecNumPositionAdj - { - get - { - return LazyLoad(ref _SecNumPositionAdj, "@SecNumPositionAdj"); - } - } - private LazyLoad _SecTitlePositionAdj; - public float? SecTitlePositionAdj - { - get - { - return LazyLoad(ref _SecTitlePositionAdj, "@SecTitlePositionAdj"); - } - } - private LazyLoad _ColSByLevel; - public float? ColSByLevel - { - get - { - return LazyLoad(ref _ColSByLevel, "@ColSByLevel"); - } - } - private LazyLoad _TofCPositionAdj; - public float? TofCPositionAdj - { - get - { - return LazyLoad(ref _TofCPositionAdj, "@TofCPositionAdj"); - } - } - private LazyLoad _WidSAdjByLevel; - public float? WidSAdjByLevel - { - get - { - return LazyLoad(ref _WidSAdjByLevel, "@WidSAdjByLevel"); - } - } - public override string GetPDDisplayName() - { return string.Format("[{0}]", Index); } - public override string GetPDCategory() - { return "Meta Section Values"; } - public override string ToString() - { - return String.Format("{0}, {1}, {2}, {3}, {4}", SecNumPositionAdj, SecTitlePositionAdj, ColSByLevel, TofCPositionAdj, TofCPositionAdj); - } - } - - #endregion - #region MetaSectionList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class MetaSectionList : vlnIndexedFormatList - { - public MetaSectionList(XmlNodeList xmlNodeList,IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.SectData.MetaSectionList; - return null; - } - } - - - } - #endregion - #endregion - #endregion - #region StepDataAll - #region Step - [TypeConverter(typeof(ExpandableObjectConverter))] - public class StepData : vlnFormatItem,IVlnIndexedFormatItem - { - public StepData() : base() { } - private LazyLoad _Index; - [Description("Step Index")] - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _Type; - public string Type - { - get - { - return LazyLoad(ref _Type, "@Type"); - } - } - private LazyLoad _ParentType; - public string ParentType - { - get - { - return LazyLoad(ref _ParentType, "@ParentType"); - } - } - private LazyLoad _ReadOnly; - public bool ReadOnly - { - get - { - return LazyLoad(ref _ReadOnly, "@ReadOnly"); - } - } - private LazyLoad _Inactive; - public bool Inactive - { - get - { - return LazyLoad(ref _Inactive, "@Inactive"); - } - } - private LazyLoad _ColOverride; - public float? ColOverride - { - get - { - return LazyLoad(ref _ColOverride, "@ColOverride"); - } - } - private LazyLoad _ColOverrideEdit; - - public float? ColOverrideEdit - { - get - { - return LazyLoad(ref _ColOverrideEdit, "@ColOverrideEdit"); - } - } - private LazyLoad _WidthOverride; - - public string WidthOverride - { - get - { - return LazyLoad(ref _WidthOverride, "@WidthOverride"); - } - } - //private LazyLoad _WidthOverride; - - //public float? WidthOverride - //{ - // get - // { - // return LazyLoad(ref _WidthOverride, "@WidthOverride"); - // } - //} - private LazyLoad _WidthOverrideEdit; - - public float? WidthOverrideEdit - { - get - { - return LazyLoad(ref _WidthOverrideEdit, "@WidthOverrideEdit"); - } - } - private LazyLoad _Sep; - public string Sep - { - get - { - return LazyLoad(ref _Sep, "@Sep"); - } - } - private LazyLoad _Prefix; - public string Prefix - { - get - { - return LazyLoad(ref _Prefix, "@Prefix"); - } - } - private LazyLoad _Suffix; - public string Suffix - { - get - { - return LazyLoad(ref _Suffix, "@Suffix"); - } - } - private LazyLoad _UnderlineTheseChar; - public string UnderlineTheseChar - { - get - { - return LazyLoad(ref _UnderlineTheseChar, "@UnderlineTheseChar"); - } - } - private LazyLoad _VertPos; - public string VertPos - { - get - { - return LazyLoad(ref _VertPos, "@VertPos"); - } - } - - private LazyLoad _DoubleSpace; - public bool DoubleSpace - { - get - { - return LazyLoad(ref _DoubleSpace, "@DoubleSpace"); - } - } - private LazyLoad _EnhancedStepNumFromPrev; - public bool EnhancedStepNumFromPrev - { - get - { - return LazyLoad(ref _EnhancedStepNumFromPrev, "@EnhancedStepNumFromPrev"); - } - } - private LazyLoad _UseSmartTemplate; - public bool UseSmartTemplate - { - get - { - return LazyLoad(ref _UseSmartTemplate, "@UseSmartTemplate"); - } - } - private LazyLoad _UseOldTemplate; - public bool UseOldTemplate - { - get - { - return LazyLoad(ref _UseOldTemplate, "@UseOldTemplate"); - } - } - private LazyLoad _AlwaysUseExtraLines; - public bool AlwaysUseExtraLines - { - get - { - return LazyLoad(ref _AlwaysUseExtraLines, "@AlwaysUseExtraLines"); - } - } - private LazyLoad _SeparateBox; - public bool SeparateBox - { - get - { - return LazyLoad(ref _SeparateBox, "@SeparateBox"); - } - } - private LazyLoad _SeparateBoxCautions; - public bool SeparateBoxCautions - { - get - { - return LazyLoad(ref _SeparateBoxCautions, "@SeparateBoxCautions"); - } - } - private LazyLoad _SpaceDouble; - public bool SpaceDouble - { - get - { - return LazyLoad(ref _SpaceDouble, "@SpaceDouble"); - } - } - private LazyLoad _ReduceLineAfter; - public bool ReduceLineAfter - { - get - { - return LazyLoad(ref _ReduceLineAfter, "@ReduceLineAfter"); - } - } - private LazyLoad _SameLevel; - public bool SameLevel - { - get - { - return LazyLoad(ref _SameLevel, "@SameLevel"); - } - } - private LazyLoad _BoldHighLevel; - public bool BoldHighLevel - { - get - { - return LazyLoad(ref _BoldHighLevel, "@BoldHighLevel"); - } - } - private LazyLoad _OneLineBeforeTab; - public bool OneLineBeforeTab - { - get - { - return LazyLoad(ref _OneLineBeforeTab, "@OneLineBeforeTab"); - } - } - private LazyLoad _CheckOffOnAllSteps; - public bool CheckOffOnAllSteps - { - get - { - return LazyLoad(ref _CheckOffOnAllSteps, "@CheckOffOnAllSteps"); - } - } - private LazyLoad _BoxIt; - public bool BoxIt - { - get - { - return LazyLoad(ref _BoxIt, "@BoxIt"); - } - } - private LazyLoad _Boxed; - public bool Boxed - { - get - { - return LazyLoad(ref _Boxed, "@Boxed"); - } - } - private LazyLoad _XLines_StepFix; - public bool XLines_StepFix - { - get - { - return LazyLoad(ref _XLines_StepFix, "@XLines_StepFix"); - } - } - private LazyLoad _Rebox; - public bool Rebox - { - get - { - return LazyLoad(ref _Rebox, "@Rebox"); - } - } - private LazyLoad _SpcHdr; - public bool SpcHdr - { - get - { - return LazyLoad(ref _SpcHdr, "@SpcHdr"); - } - } - private LazyLoad _ContinueOnly; - public bool ContinueOnly - { - get - { - return LazyLoad(ref _ContinueOnly, "@ContinueOnly"); - } - } - private LazyLoad _SepAfterAER; - public bool SepAfterAER - { - get - { - return LazyLoad(ref _SepAfterAER, "@SepAfterAER"); - } - } - private LazyLoad _UseAlternateStepBox; - public bool UseAlternateStepBox - { - get - { - return LazyLoad(ref _UseAlternateStepBox, "@UseAlternateStepBox"); - } - } - private LazyLoad _UnderlineAfterDashSpace; - public bool UnderlineAfterDashSpace - { - get - { - return LazyLoad(ref _UnderlineAfterDashSpace, "@UnderlineAfterDashSpace"); - } - } - private LazyLoad _SpaceIn; - public bool SpaceIn - { - get - { - return LazyLoad(ref _SpaceIn, "@SpaceIn"); - } - } - private LazyLoad _PageBreakOnStep; - public bool PageBreakOnStep - { - get - { - return LazyLoad(ref _PageBreakOnStep, "@PageBreakOnStep"); - } - } - private LazyLoad _AlignNullTabWSectHead; - public bool AlignNullTabWSectHead - { - get - { - return LazyLoad(ref _AlignNullTabWSectHead, "@AlignNullTabWSectHead"); - } - } - private LazyLoad _AlignHLSTabWithSectOvride; - public bool AlignHLSTabWithSectOvride - { - get - { - return LazyLoad(ref _AlignHLSTabWithSectOvride, "@AlignHLSTabWithSectOvride"); - } - } - private LazyLoad _TextSubFollowsTextStyle; - public bool TextSubFollowsTextStyle - { - get - { - return LazyLoad(ref _TextSubFollowsTextStyle, "@TextSubFollowsTextStyle"); - } - } - private LazyLoad _CautionOrNoteSubstepIndent; - public int? CautionOrNoteSubstepIndent - { - get - { - return LazyLoad(ref _CautionOrNoteSubstepIndent, "@CautionOrNoteSubstepIndent"); - } - } - private LazyLoad _TreatAsSequential; - public bool TreatAsSequential - { - get - { - return LazyLoad(ref _TreatAsSequential, "@TreatAsSequential"); - } - } - private LazyLoad _MatchUpRNO; - public bool MatchUpRNO - { - get - { - return LazyLoad(ref _MatchUpRNO, "@MatchUpRNO"); - } - } - private LazyLoad _InPageList; - public bool InPageList - { - get - { - return LazyLoad(ref _InPageList, "@InPageList"); - } - } - private LazyLoad _CenterOneLineOnly; - public bool CenterOneLineOnly - { - get - { - return LazyLoad(ref _CenterOneLineOnly, "@CenterOneLineOnly"); - } - } - private LazyLoad _SubTableGetsUp1Level; - public bool SubTableGetsUp1Level - { - get - { - return LazyLoad(ref _SubTableGetsUp1Level, "@SubTableGetsUp1Level"); - } - } - private LazyLoad _Remember; - public bool Remember - { - get - { - return LazyLoad(ref _Remember, "@Remember"); - } - } - private LazyLoad _CenterOneLineAdjust; - public bool CenterOneLineAdjust - { - get - { - return LazyLoad(ref _CenterOneLineAdjust, "@CenterOneLineAdjust"); - } - } - private LazyLoad _Break; - public bool Break - { - get - { - return LazyLoad(ref _Break, "@Break"); - } - } - private LazyLoad _BreakEquipmentList; - public bool BreakEquipmentList - { - get - { - return LazyLoad(ref _BreakEquipmentList, "@BreakEquipmentList"); - } - } - private LazyLoad _BreakCautionsNotesOnSubstps; - public bool BreakCautionsNotesOnSubstps - { - get - { - return LazyLoad(ref _BreakCautionsNotesOnSubstps, "@BreakCautionsNotesOnSubstps"); - } - } - private LazyLoad _CenterTextWithinWidth; - public bool CenterTextWithinWidth - { - get - { - return LazyLoad(ref _CenterTextWithinWidth, "@CenterTextWithinWidth"); - } - } - private LazyLoad _NewlineAfter; - public bool NewlineAfter - { - get - { - return LazyLoad(ref _NewlineAfter, "@NewlineAfter"); - } - } - private LazyLoad _StartLineWithDash; - public bool StartLineWithDash - { - get - { - return LazyLoad(ref _StartLineWithDash, "@StartLineWithDash"); - } - } - private LazyLoad _BlankLineBeforeSubStep; - public bool BlankLineBeforeSubStep - { - get - { - return LazyLoad(ref _BlankLineBeforeSubStep, "@BlankLineBeforeSubStep"); - } - } - private LazyLoad _AlwaysTab; - public bool AlwaysTab - { - get - { - return LazyLoad(ref _AlwaysTab, "@AlwaysTab"); - } - } - private LazyLoad _NoSpaceMultipleRNOs; - public bool NoSpaceMultipleRNOs - { - get - { - return LazyLoad(ref _NoSpaceMultipleRNOs, "@NoSpaceMultipleRNOs"); - } - } - private LazyLoad _MixCautionsAndNotes; - public bool MixCautionsAndNotes - { - get - { - return LazyLoad(ref _MixCautionsAndNotes, "@MixCautionsAndNotes"); - } - } - private LazyLoad _NumberHighLevel; - public bool NumberHighLevel - { - get - { - return LazyLoad(ref _NumberHighLevel, "@NumberHighLevel"); - } - } - private LazyLoad _OffsetTab; - public bool OffsetTab - { - get - { - return LazyLoad(ref _OffsetTab, "@OffsetTab"); - } - } - private LazyLoad _AdjHighLevelTab; - public float? AdjHighLevelTab - { - get - { - return LazyLoad(ref _AdjHighLevelTab, "@AdjHighLevelTab"); - } - } - private LazyLoad _ChildIndent; - public float? ChildIndent - { - get - { - return LazyLoad(ref _ChildIndent, "@ChildIndent"); - } - } - private LazyLoad _LeftJustifyBorderless; - public bool LeftJustifyBorderless - { - get - { - return LazyLoad(ref _LeftJustifyBorderless, "@LeftJustifyBorderless"); - } - } - private LazyLoad _StepNumIfOnlyOne; - public bool StepNumIfOnlyOne - { - get - { - return LazyLoad(ref _StepNumIfOnlyOne, "@StepNumIfOnlyOne"); - } - } - private LazyLoad _LJTabs; - public bool LJTabs - { - get - { - return LazyLoad(ref _LJTabs, "@LJTabs"); - } - } - private LazyLoad _NumberSubs; - public bool NumberSubs - { - get - { - return LazyLoad(ref _NumberSubs, "@NumberSubs"); - } - } - private LazyLoad _BulletOnContinuous; - public bool BulletOnContinuous - { - get - { - return LazyLoad(ref _BulletOnContinuous, "@BulletOnContinuous"); - } - } - private LazyLoad _StepNumberForHighLevel; - public bool StepNumberForHighLevel - { - get - { - return LazyLoad(ref _StepNumberForHighLevel, "@StepNumberForHighLevel"); - } - } - private LazyLoad _SameRowAsParent; - public bool SameRowAsParent - { - get - { - return LazyLoad(ref _SameRowAsParent, "@SameRowAsParent"); - } - } - private LazyLoad _CheckOffSameAsParent; - public bool CheckOffSameAsParent - { - get - { - return LazyLoad(ref _CheckOffSameAsParent, "@CheckOffSameAsParent"); - } - } - private LazyLoad _AtLeastTwoDigits; - public bool AtLeastTwoDigits - { - get - { - return LazyLoad(ref _AtLeastTwoDigits, "@AtLeastTwoDigits"); - } - } - private LazyLoad _UseInAcTable; - public bool UseInAcTable - { - get - { - return LazyLoad(ref _UseInAcTable, "@UseInAcTable"); - } - } - private LazyLoad _Number; - public bool Number - { - get - { - return LazyLoad(ref _Number, "@Number"); - } - } - private LazyLoad _ThreeBlanksAbove; - public bool ThreeBlanksAbove - { - get - { - return LazyLoad(ref _ThreeBlanksAbove, "@ThreeBlanksAbove"); - } - } - private LazyLoad _CheckOffs; - public bool CheckOffs - { - get - { - return LazyLoad(ref _CheckOffs, "@CheckOffs"); - } - } - private LazyLoad _Quoted; - public bool Quoted - { - get - { - return LazyLoad(ref _Quoted, "@Quoted"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null) ?_Font = new VE_Font(base.XmlNode): _Font; - } - } - private StepLayoutData _StepLayoutData; - public StepLayoutData StepLayoutData - { - get - { - return (_StepLayoutData == null)? _StepLayoutData = new StepLayoutData(base.XmlNode): _StepLayoutData; - } - } - private StepEditData _StepEditData; - public StepEditData StepEditData - { - get - { - return (_StepEditData == null) ? _StepEditData = new StepEditData(base.XmlNode) : _StepEditData; - } - } - private StepPrintData _StepPrintData; - public StepPrintData StepPrintData - { - get - { - return (_StepPrintData == null) ? _StepPrintData = new StepPrintData(base.XmlNode) : _StepPrintData; - } - } - private TabData _TabData; - public TabData TabData - { - get - { - return (_TabData == null) ? _TabData = new TabData(base.XmlNode) : _TabData; - } - } - public override string ToString() - { - return string.Format("{0}", Type); - } - } - #endregion - #region StepDataList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class StepDataList : vlnIndexedFormatList - { - //public new StepData this[int index] - //{ - // get - // { - // foreach (StepData stepData in this) - // if (stepData.Index == index) return stepData; - // return null; - // } - //} - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.StepDataList; - return null; - } - } - public StepData this[string type] - { - get - { - foreach (StepData stepData in this) - if (stepData.Type == type) return stepData; - return null; - } - } - public StepData this[int index] - { - get - { - foreach (StepData stepData in this) - if (stepData.Index == index) return stepData; - return null; - } - } - public StepDataList(XmlNodeList xmlNodeList, IFormatOrFormatInfo myFormat) : base(xmlNodeList, myFormat) { } - private StepData _HLS; - public StepData HLS - { - get - { - if (_HLS!=null) return _HLS; - foreach (StepData sd in this) - { - if (sd.Type == "High") - { - _HLS = sd; - return sd; - } - } - return null; - } - } - private StepData _Caution; - public StepData Caution - { - get - { - if (_Caution != null) return _Caution; - foreach (StepData sd in this) - { - if (sd.Type == "Caution") - { - _Caution = sd; - return sd; - } - } - return null; - } - } - private StepData _Note; - public StepData Note - { - get - { - if (_Note != null) return _Note; - foreach (StepData sd in this) - { - if (sd.Type == "Note") - { - _Note = sd; - return sd; - } - } - return null; - } - } - private StepData _RNO; - public StepData RNO - { - get - { - if (_RNO != null) return _RNO; - foreach (StepData sd in this) - { - if (sd.Type == "RNOType") - { - _RNO = sd; - return sd; - } - } - return null; - } - } - private StepData _Fig; - public StepData Fig - { - get - { - if (_Fig != null) return _Fig; - foreach (StepData sd in this) - { - if (sd.Type == "Figure") - { - _Fig = sd; - return sd; - } - } - return null; - } - } - private StepData _Table; - public StepData Table - { - get - { - if (_Table != null) return _Table; - foreach (StepData sd in this) - { - if (sd.Type == "Table") - { - _Table = sd; - return sd; - } - } - return null; - } - } - private StepData _Substep; - public StepData Substep - { - get - { - if (_Substep != null) return _Substep; - foreach (StepData sd in this) - { - if (sd.Type == "Substep") - { - _Substep = sd; - return sd; - } - } - return null; - } - } - } - #endregion - #region StepLayoutData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class StepLayoutData : vlnFormatItem - { - public StepLayoutData(XmlNode xmlNode) - : base(xmlNode) - { - } - private LazyLoad _ForeColor; - public string ForeColor - { - get - { - return LazyLoad(ref _ForeColor, "StepLayoutData/@ForeColor"); - } - } - private LazyLoad _BackColor; - public string BackColor - { - get - { - return LazyLoad(ref _BackColor, "StepLayoutData/@BackColor"); - } - } - private LazyLoad _STExtraSpace; - public int? STExtraSpace - { - get - { - return LazyLoad(ref _STExtraSpace, "StepLayoutData/@STExtraSpace"); - } - } - private LazyLoad _STBoxindex; - public int? STBoxindex - { - get - { - return LazyLoad(ref _STBoxindex, "StepLayoutData/@STBoxindex"); - } - } - private LazyLoad _EveryNLines; - public int? EveryNLines - { - get - { - return LazyLoad(ref _EveryNLines, "StepLayoutData/@EveryNLines"); - } - } - private LazyLoad _AlignWithParentTab; - public bool AlignWithParentTab - { - get - { - return LazyLoad(ref _AlignWithParentTab, "StepLayoutData/@AlignWithParentTab"); - } - } - - } - #endregion - #region StepEditData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class StepEditData : vlnFormatItem - { - public StepEditData(XmlNode xmlNode) - : base(xmlNode) - { - } - private TypeMenu _TypeMenu; - public TypeMenu TypeMenu - { - get - { - return (_TypeMenu == null) ? _TypeMenu = new TypeMenu(base.XmlNode) : _TypeMenu; - } - } - private LazyLoad _ForeColor; - public string ForeColor - { - get - { - return LazyLoad(ref _ForeColor, "StepEditData/@ForeColor"); - } - } - private LazyLoad _BackColor; - public string BackColor - { - get - { - return LazyLoad(ref _BackColor, "StepEditData/@BackColor"); - } - } - private LazyLoad _AcTable; - public E_AccStep? AcTable - { - get - { - return LazyLoad(ref _AcTable, "StepEditData/@AcTable"); - } - } - private LazyLoad _Searchable; - public bool Searchable - { - get - { - return LazyLoad(ref _Searchable, "StepEditData/@Searchable"); - } - } - } - #endregion - #region StepPrintData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class StepPrintData : vlnFormatItem - { - public StepPrintData(XmlNode xmlNode) - : base(xmlNode) - { - } - private LazyLoad _PosAdjust; - public float? PosAdjust - { - get - { - return LazyLoad(ref _PosAdjust, "StepPrintData/@PosAdjust"); - } - } - private LazyLoad _Justify; - public string Justify - { - get - { - return LazyLoad(ref _Justify, "StepPrintData/@Justify"); - } - } - } - #endregion - #region TypeMenu - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TypeMenu : vlnFormatItem - { - public TypeMenu(XmlNode xmlNode) - : base(xmlNode) - { - } - private LazyLoad _InMenu; - public bool InMenu - { - get - { - return LazyLoad(ref _InMenu, "StepEditData/TypeMenu/@InMenu"); - } - } - private LazyLoad _RnoInMenu; - public bool RnoInMenu - { - get - { - return LazyLoad(ref _RnoInMenu, "StepEditData/TypeMenu/@RnoInMenu"); - } - } - private LazyLoad _MenuItem; - public string MenuItem - { - get - { - return LazyLoad(ref _MenuItem, "StepEditData/TypeMenu/@MenuItem"); - } - } - private LazyLoad _RnoMenuItem; - public string RnoMenuItem - { - get - { - return LazyLoad(ref _RnoMenuItem, "StepEditData/TypeMenu/@RnoMenuItem"); - } - } - private LazyLoad _NoChgReason; - public string NoChgReason - { - get - { - return LazyLoad(ref _NoChgReason, "StepEditData/TypeMenu/@NoChgReason"); - } - } - private LazyLoad _AlternateNameList; - public string AlternateNameList - { - get - { - return LazyLoad(ref _AlternateNameList, "StepEditData/TypeMenu/@AlternateNameList"); - } - } - } - #endregion - #region Bullet - [TypeConverter(typeof(ExpandableObjectConverter))] - public class Bullet : vlnFormatItem - { - public Bullet(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _Separate; - public bool Separate - { - get - { - return LazyLoad(ref _Separate, "TabData/Bullet/@Separate"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - if (_Font == null) - { - XmlNode xn = vlnFormatDocument.LookupSingleStepNode(base.XmlNode, "Bullet[Font]"); - _Font = new VE_Font(xn); - } - return _Font; - } - } - } - - #endregion - #region StepTab - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TabData : vlnFormatItem - { - public TabData(XmlNode xmlNode) - : base(xmlNode) - { - } - private MacroList _MacroList; - public MacroList MacroList - { - get - { - return _MacroList == null ? _MacroList = new MacroList(SelectNodes("TabData/MacroList/Macro")) : _MacroList; - } - } - private LazyLoad _IdentEdit; - public string IdentEdit - { - get - { - return LazyLoad(ref _IdentEdit, "TabData/@IdentEdit"); - } - } - private LazyLoad _IdentPrint; - public string IdentPrint - { - get - { - return LazyLoad(ref _IdentPrint, "TabData/@Ident"); - } - } - private LazyLoad _IdentAltPrint; - public string IdentAltPrint - { - get - { - return LazyLoad(ref _IdentAltPrint, "TabData/@IdentAltPrint"); - } - } - private LazyLoad _RNOIdentEdit; - public string RNOIdentEdit - { - get - { - return LazyLoad(ref _RNOIdentEdit, "TabData/@RNOIdentEdit"); - } - } - private LazyLoad _RNOIdent; - public string RNOIdent - { - get - { - return LazyLoad(ref _RNOIdent, "TabData/@RNOIdent"); - } - } - private LazyLoad _RNOIdentPrint; - public string RNOIdentPrint - { - get - { - return LazyLoad(ref _RNOIdentPrint, "TabData/@RNOIdent"); - } - } - private LazyLoad _RNOExcludeMacros; - public bool RNOExcludeMacros - { - get - { - return LazyLoad(ref _RNOExcludeMacros, "TabData/@RNOExcludeMacros"); - } - } - private LazyLoad _Justify; - public string Justify - { - get - { - return LazyLoad(ref _Justify, "TabData/@Justify"); - } - } - private LazyLoad _UsePreviousStyle; - public bool UsePreviousStyle - { - get - { - return LazyLoad(ref _UsePreviousStyle, "TabData/@UsePreviousStyle"); - } - } - private LazyLoad _IsTransition; - public bool IsTransition - { - get - { - return LazyLoad(ref _IsTransition, "TabData/@IsTransition"); - } - } - private LazyLoad _IdentWidth; - public float? IdentWidth - { - get - { - return LazyLoad(ref _IdentWidth, "TabData/@IdentWidth"); - } - } - private LazyLoad _RNOAdjustTabSize; - public float? RNOAdjustTabSize - { - get - { - return LazyLoad(ref _RNOAdjustTabSize, "TabData/@RNOAdjustTabSize"); - } - } - private LazyLoad _MacroTabAdjust; - public float? MacroTabAdjust - { - get - { - return LazyLoad(ref _MacroTabAdjust, "TabData/@MacroTabAdjust"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - if (_Font == null) - { - XmlNode xn = vlnFormatDocument.LookupSingleStepNode(base.XmlNode, "TabData[Font]"); - _Font = new VE_Font(xn); - } - return _Font; - } - } - private Bullet _Bullet; - public Bullet Bullet - { - get - { - return (_Bullet == null) ? _Bullet = new Bullet(base.XmlNode) : _Bullet; - } - } - private LazyLoad _NoTrim; - public bool NoTrim - { - get - { - return LazyLoad(ref _NoTrim, "TabData/@NoTrim"); - } - } - - } - #endregion - #region MacroList - [TypeConverter(typeof(vlnListConverter))] - public class MacroList : vlnNamedFormatList - { - public MacroList(XmlNodeList xmlNodeList) : base(xmlNodeList, null) { } - public override vlnNamedFormatList InheritedList - { - get - { - - return null; - } - } - } - #endregion - #region Macro - [TypeConverter(typeof(ExpandableObjectConverter))] - public class Macro : vlnFormatItem, IVlnNamedFormatItem - { - public Macro(XmlNode xmlNode) : base(xmlNode) { } - public Macro() : base() { } - private LazyLoad _Name; - public string Name - { - get - { - return LazyLoad(ref _Name, "@Name"); - } - } - private LazyLoad _MacroDef; - public string MacroDef - { - get - { - if (_Inherited == null) SetupStepInheritance(); - return LazyLoad(ref _MacroDef, "@Macro"); - } - } - private LazyLoad _LocWithXOff; - public bool? LocWithXOff - { - get - { - return LazyLoad(ref _LocWithXOff, "@LocWithXOff"); - } - } - - private LazyLoad _Grouping; - public int? Grouping - { - get - { - if (_Inherited == null) SetupStepInheritance(); - return LazyLoad(ref _Grouping, "@Grouping"); - } - } - private LazyLoad _NotInRNO; - public bool NotInRNO - { - get - { - if (_Inherited == null) SetupStepInheritance(); - return LazyLoad(ref _NotInRNO, "@NotInRNO"); - } - } - - private bool? _Inherited; - public bool Inherited - { - get - { - if (_Inherited == null) SetupStepInheritance(); - return (bool) _Inherited; - } - } - private void SetupStepInheritance() - { - if (_Inherited != null) return; - LazyLoad macroName = null; - _Inherited = (LazyLoad(ref macroName, "@Macro") == null); - // No MacroName, Find parent that has data - string path = string.Format("TabData/MacroList/Macro[@Name='{0}' and @Macro]", Name); - XmlNode xn = vlnFormatDocument.LookupSingleStepNode(XmlNode.ParentNode.ParentNode.ParentNode, path); - if (xn != null) - { - _MacroDef = new LazyLoad(RetrieveString(xn.SelectSingleNode("@Macro"))); - _Grouping = new LazyLoad(RetrieveInt("@Grouping" ,xn.SelectSingleNode("@Grouping"))); - _NotInRNO = new LazyLoad(RetrieveBool( xn.SelectSingleNode("@NotInRNO"))); - } - } - } -#endregion - #endregion - #region BoxDataAll - #region Box - [TypeConverter(typeof(ExpandableObjectConverter))] - public class Box : vlnFormatItem,IVlnIndexedFormatItem - { - public Box(XmlNode xmlNode) : base(xmlNode) { } - public Box() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _Start; - public float? Start - { - get - { - return LazyLoad(ref _Start, "@Start"); - } - } - private LazyLoad _End; - public float? End - { - get - { - return LazyLoad(ref _End, "@End"); - } - } - private LazyLoad _TxtStart; - public float? TxtStart - { - get - { - return LazyLoad(ref _TxtStart, "@TxtStart"); - } - } - private LazyLoad _TxtWidth; - public float? TxtWidth - { - get - { - return LazyLoad(ref _TxtWidth, "@TxtWidth"); - } - } - private LazyLoad _Height; - public float? Height - { - get - { - return LazyLoad(ref _Height, "@Height"); - } - } - private LazyLoad _TabPos; - public float? TabPos - { - get - { - return LazyLoad(ref _TabPos, "@TabPos"); - } - } - private LazyLoad _TxtRowAdj; - public int? TxtRowAdj - { - get - { - return LazyLoad(ref _TxtRowAdj, "@TxtRowAdj"); - } - } - private LazyLoad _BXURC; - public string BXURC - { - get - { - return LazyLoad(ref _BXURC, "@BXURC"); - } - } - private LazyLoad _BXHorz; - public string BXHorz - { - get - { - return LazyLoad(ref _BXHorz, "@BXHorz"); - } - } - private LazyLoad _BXULC; - public string BXULC - { - get - { - return LazyLoad(ref _BXULC, "@BXULC"); - } - } - private LazyLoad _BXVert; - public string BXVert - { - get - { - return LazyLoad(ref _BXVert, "@BXVert"); - } - } - private LazyLoad _BXMLS; - public string BXMLS - { - get - { - return LazyLoad(ref _BXMLS, "@BXMLS"); - } - } - private LazyLoad _BXMRS; - public string BXMRS - { - get - { - return LazyLoad(ref _BXMRS, "@BXMRS"); - } - } - private LazyLoad _BXLRC; - public string BXLRC - { - get - { - return LazyLoad(ref _BXLRC, "@BXLRC"); - } - } - private LazyLoad _BXLLC; - public string BXLLC - { - get - { - return LazyLoad(ref _BXLLC, "@BXLLC"); - } - } - private LazyLoad _BXMID; - public string BXMID - { - get - { - return LazyLoad(ref _BXMID, "@BXMID"); - } - } - private LazyLoad _BXLHorz; - public string BXLHorz - { - get - { - return LazyLoad(ref _BXLHorz, "@BXLHorz"); - } - } - private LazyLoad _BXUMID; - public string BXUMID - { - get - { - return LazyLoad(ref _BXUMID, "@BXUMID"); - } - } - private LazyLoad _BXLMID; - public string BXLMID - { - get - { - return LazyLoad(ref _BXLMID, "@BXLMID"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null) ?_Font = new VE_Font(base.XmlNode):_Font; - } - } - public override string GetPDDisplayName() - { return string.Format("[{0}]", Index); } - public override string GetPDCategory() - { return "Box Definition"; } - public override string ToString() - { - return String.Format("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}", - BXURC, BXHorz, BXULC, BXVert, BXMLS, BXMRS, BXLRC, BXLLC, BXMID, BXLHorz, BXUMID, BXLMID); - } - public string BoxStyle - { - get - { - return String.Format("{0}.{1}.{2}.{3}.{4}.{5}.{6}.{7}.{8}.{9}.{10}.{11}", - BXURC ?? " ", BXHorz ?? " ", BXULC ?? " ", BXVert ?? " ", BXMLS ?? " ", BXMRS ?? " ", BXLRC ?? " ", BXLLC ?? " ", BXMID ?? " ", BXLHorz ?? BXHorz, BXUMID ?? " ", BXLMID ?? " "); - } - } - } - #endregion - #region BoxList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class BoxList : vlnIndexedFormatList - { - public BoxList(XmlNodeList xmlNodeList, IFormatOrFormatInfo myFormat) : base(xmlNodeList, myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.BoxList; - return null; - } - } - - } - #endregion - #endregion - #region TransDataAll - #region TransData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TransData : vlnFormatItem - { - private TransTypeList _TransTypeList; - public TransTypeList TransTypeList - { - get - { - return(_TransTypeList == null || _TransTypeList.Count==0)? _TransTypeList = new TransTypeList(SelectNodes("TransTypeData/TransTypes"),MyFormat): _TransTypeList; - } - } - public TransData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _DelimiterForTransitionTitle; - public string DelimiterForTransitionTitle - { - get - { - return LazyLoad(ref _DelimiterForTransitionTitle, "@DelimiterForTransitionTitle"); - } - } - private LazyLoad _StepSubstepDelimeter; - public string StepSubstepDelimeter - { - get - { - return LazyLoad(ref _StepSubstepDelimeter, "@StepSubstepDelimeter"); - } - } - private LazyLoad _ThroughString; - public string ThroughString - { - get - { - return LazyLoad(ref _ThroughString, "@ThroughString"); - } - } - private LazyLoad _SpecifiedSubstepsOnly; - public bool SpecifiedSubstepsOnly - { - get - { - return LazyLoad(ref _SpecifiedSubstepsOnly, "@SpecifiedSubstepsOnly"); - } - } - private LazyLoad _CapsTransitions; - public bool CapsTransitions - { - get - { - return LazyLoad(ref _CapsTransitions, "@CapsTransitions"); - } - } - private LazyLoad _CapsTransitionsSection; - public bool CapsTransitionsSection - { - get - { - return LazyLoad(ref _CapsTransitionsSection, "@CapsTransitionsSection"); - } - } - private LazyLoad _CapTranStep; - public bool CapTranStep - { - get - { - return LazyLoad(ref _CapTranStep, "@CapTranStep"); - } - } - private LazyLoad _TStepNoFlag; - public bool TStepNoFlag - { - get - { - return LazyLoad(ref _TStepNoFlag, "@TStepNoFlag"); - } - } - private LazyLoad _LowerCaseTranNumber; - public bool LowerCaseTranNumber - { - get - { - return LazyLoad(ref _LowerCaseTranNumber, "@LowerCaseTranNumber"); - } - } - private LazyLoad _UpcaseTranAnd; - public bool UpcaseTranAnd - { - get - { - return LazyLoad(ref _UpcaseTranAnd, "@UpcaseTranAnd"); - } - } - private LazyLoad _SuppressAndInTran; - public bool SuppressAndInTran - { - get - { - return LazyLoad(ref _SuppressAndInTran, "@SuppressAndInTran"); - } - } - private LazyLoad _Cap1stCharTrans; - public bool Cap1stCharTrans - { - get - { - return LazyLoad(ref _Cap1stCharTrans, "@Cap1stCharTrans"); - } - } - private LazyLoad _Cap1stCharTransSection; - public bool Cap1stCharTransSection - { - get - { - return LazyLoad(ref _Cap1stCharTransSection, "@Cap1stCharTransSection"); - } - } - private LazyLoad _UseTransitionModifier; - public bool UseTransitionModifier - { - get - { - return LazyLoad(ref _UseTransitionModifier, "@UseTransitionModifier"); - } - } - private LazyLoad _UseSecTitles; - public bool UseSecTitles - { - get - { - return LazyLoad(ref _UseSecTitles, "@UseSecTitles"); - } - } - private LazyLoad _DoSectionTransitions; - public bool DoSectionTransitions - { - get - { - return LazyLoad(ref _DoSectionTransitions, "@DoSectionTransitions"); - } - } - private LazyLoad _HardSpTranProcNumb; - public bool HardSpTranProcNumb - { - get - { - return LazyLoad(ref _HardSpTranProcNumb, "@HardSpTranProcNumb"); - } - } - private LazyLoad _XchngTranSpForHard; - public bool XchngTranSpForHard - { - get - { - return LazyLoad(ref _XchngTranSpForHard, "@XchngTranSpForHard"); - } - } - private LazyLoad _AbsoluteTransitionUpdate; - public bool AbsoluteTransitionUpdate - { - get - { - return LazyLoad(ref _AbsoluteTransitionUpdate, "@AbsoluteTransitionUpdate"); - } - } - private LazyLoad _LowerCaseStepInTran; - public bool LowerCaseStepInTran - { - get - { - return LazyLoad(ref _LowerCaseStepInTran, "@LowerCaseStepInTran"); - } - } - private LazyLoad _BoldTransition; - public bool BoldTransition - { - get - { - return LazyLoad(ref _BoldTransition, "@BoldTransition"); - } - } - private LazyLoad _BoldTransitionExceptHLS; - public bool BoldTransitionExceptHLS - { - get - { - return LazyLoad(ref _BoldTransitionExceptHLS, "@BoldTransitionExceptHLS"); - } - } - private LazyLoad _AdjustStepTransitionText; - public bool AdjustStepTransitionText - { - get - { - return LazyLoad(ref _AdjustStepTransitionText, "@AdjustStepTransitionText"); - } - } - } - #endregion - #region TransType - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TransType : vlnFormatItem,IVlnIndexedFormatItem - { - public TransType(XmlNode xmlNode) : base(xmlNode) { } - public TransType() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _Type; - public int? Type - { - get - { - return LazyLoad(ref _Type, "@TransType"); - } - } - private LazyLoad _TransFormat; - public string TransFormat - { - get - { - return LazyLoad(ref _TransFormat, "@TransFormat"); - } - } - private LazyLoad _TransUI; - public E_TransUI? TransUI - { - get - { - return LazyLoad(ref _TransUI, "@TransUI"); - } - } - private LazyLoad _TransMenu; - public string TransMenu - { - get - { - return LazyLoad(ref _TransMenu, "@TransMenu"); - } - } - public override string GetPDDisplayName() - { return string.Format("[{0}] - Type {1}", Index, Type); } - public override string GetPDCategory() - { return "Transition Type Data"; } - public override string ToString() - { - return string.Format("{0} - {1}",TransFormat, TransMenu); - } - } - #endregion - #region TransTypeList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class TransTypeList : vlnIndexedFormatList - { - public TransTypeList(XmlNodeList xmlNodeList, IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.TransData.TransTypeList; - return null; - } - } - } - #endregion - #region RoData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ROData : vlnFormatItem - { - public ROData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _AllUnits; - public bool AllUnits - { - get - { - return LazyLoad(ref _AllUnits, "@AllUnits"); - } - } - private LazyLoad _UpRoAftrDash; - public bool UpRoAftrDash - { - get - { - return LazyLoad(ref _UpRoAftrDash, "@UpRoAftrDash"); - } - } - private LazyLoad _UpcaseAllRoUnits; - public bool UpcaseAllRoUnits - { - get - { - return LazyLoad(ref _UpcaseAllRoUnits, "@UpcaseAllRoUnits"); - } - } - private LazyLoad _CapHighRo; - public bool CapHighRo - { - get - { - return LazyLoad(ref _CapHighRo, "@CapHighRo"); - } - } - private LazyLoad _CapRoIfLastLower; - public bool CapRoIfLastLower - { - get - { - return LazyLoad(ref _CapRoIfLastLower, "@CapRoIfLastLower"); - } - } - private LazyLoad _UpRoIfPrevUpper; - public bool UpRoIfPrevUpper - { - get - { - return LazyLoad(ref _UpRoIfPrevUpper, "@UpRoIfPrevUpper"); - } - } - private LazyLoad _UnderlineRo; - public bool UnderlineRo - { - get - { - return LazyLoad(ref _UnderlineRo, "@UnderlineRo"); - } - } - private LazyLoad _CapFirstLetterInHighRO; - public bool CapFirstLetterInHighRO - { - get - { - return LazyLoad(ref _CapFirstLetterInHighRO, "@CapFirstLetterInHighRO"); - } - } - } - #endregion - #endregion - #region SupportClasses - public class StepDataRetval - { - private string _Name; - public string Name - { - get { return _Name; } - set { _Name = value; } - } - private int _Index; - public int Index - { - get { return _Index; } - set { _Index = value; } - } - public StepDataRetval(string name, int index) - { - Name = name; - Index = index; - } - } - #endregion -} - diff --git a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.org b/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.org deleted file mode 100644 index 8962a610..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Format/PlantFormat.org +++ /dev/null @@ -1,4530 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; -using System.ComponentModel; -using System.Drawing; - -namespace VEPROMS.CSLA.Library -{ - #region PlantFormat - [TypeConverter(typeof(ExpandableObjectConverter))] - public class PlantFormat - { - public PlantFormat(IFormatOrFormatInfo format) - { - _MyFormat = format; - } - private IFormatOrFormatInfo _MyFormat; - public IFormatOrFormatInfo MyFormat - { - get { return _MyFormat; } - set { _MyFormat = value; } - } - private vlnFormatDocument _XmlDoc; - internal vlnFormatDocument XmlDoc - { - get - { - if (_XmlDoc == null) - _XmlDoc = new vlnFormatDocument(_MyFormat); - return _XmlDoc; - } - } - private FormatData _FormatData; - public FormatData FormatData - { - get - { - if (_FormatData == null) _FormatData = new FormatData(XmlDoc.SelectSingleNode("/PlantFormat/FormatData")); - return _FormatData; - } - } - private PageStyles _PageStyles; - public PageStyles PageStyles - { - get - { - if (_PageStyles == null) _PageStyles = new PageStyles(XmlDoc.SelectNodes("/PlantFormat/PageStyles/PageStyle")); - return _PageStyles; - } - } - private DocStyles _DocStyles; - public DocStyles DocStyles - { - get - { - if (_DocStyles == null) _DocStyles = new DocStyles(XmlDoc.SelectSingleNode("/PlantFormat/DocStyles")); - return _DocStyles; - } - } - } - #endregion - #region VE_Font - [TypeConverter(typeof(ExpandableObjectConverter))] - public class VE_Font : vlnFormatItem - { - public VE_Font(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _Family; - private Font _WindowsFont; - public Font WindowsFont - { - get - { - if (_WindowsFont == null) - { - FontStyle style = FontStyle.Regular; - if (Style != E_Style.None) - { - if (((Style & E_Style.Bold) != 0) || ((Style & E_Style.MmBold) !=0)) - style |= FontStyle.Bold; - if ((Style & E_Style.Italics) != 0) - style |= FontStyle.Italic; - if ((Style & E_Style.Underline) != 0) - style |= FontStyle.Underline; - } - _WindowsFont = new Font(Family, (float)Size, style); - } - return _WindowsFont; - } - } - [Description("Font Family")] - public string Family - { - get - { - return LazyLoad(ref _Family,"Font/@Family"); - } - } - private LazyLoad _Size; - [Description("Font Size (in Double Points)")] - public int? Size - { - get - { - return LazyLoad(ref _Size, "Font/@Size"); - } - } - private LazyLoad _Style; - public E_Style? Style - { - get - { - return LazyLoad(ref _Style, "Font/@Style"); - } - } - public override string ToString() - { - return string.Format("{0}, {1} pt, {2}", Family, Size, Style); - } - } - #endregion - #region FormatData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class FormatData : vlnFormatItem - { - public FormatData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _Name; - public string Name - { - get - { - return LazyLoad(ref _Name, "@Name"); - } - } - //private LazyLoad _XtraFlags; - //public string XtraFlags - //{ - // get - // { - // return LazyLoad(ref _XtraFlags, "XtraFlags"); - // } - //} - //public bool XtraOptions(string attr) - //{ - // XmlNode nd = this.SelectSingleNode("XtraFlags/@" + attr); - // if (nd == null) return false; - // if (nd.InnerText.ToUpper() == "TRUE") return true; - // return false; - //} - private LazyLoad _PurchaseOptions; - public E_PurchaseOptions? PurchaseOptions - { - get - { - return LazyLoad(ref _PurchaseOptions, "@PurchaseOptions"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return _Font == null? _Font = new VE_Font(base.XmlNode): _Font; - } - } - private SymbolList _SymbolList; - public SymbolList SymbolList - { - get - { - return (_SymbolList == null) ? _SymbolList = new SymbolList(SelectNodes("Symbols/Symbol")) : _SymbolList; - } - set { _SymbolList = value; } - } - private EditData _EditData; - public EditData EditData - { - get - { - return _EditData == null ? _EditData = new EditData(SelectSingleNode("EditData")): _EditData; - } - } - private PrintData _PrintData; - public PrintData PrintData - { - get - { - return _PrintData == null? _PrintData = new PrintData(SelectSingleNode("PrintData")):_PrintData; - } - } - private ProcData _ProcData; - public ProcData ProcData - { - get - { - return _ProcData == null? _ProcData = new ProcData(SelectSingleNode("ProcData")):_ProcData; - } - } - private SectData _SectData; - public SectData SectData - { - get - { - return _SectData == null? _SectData = new SectData(SelectSingleNode("SectData")):_SectData; - } - } - private BoxList _BoxList; - public BoxList BoxList - { - get - { - return _BoxList == null? _BoxList = new BoxList(SelectNodes("BoxData/Box"),MyFormat):_BoxList; - } - set { _BoxList = value; } - } - private TransData _TransData; - public TransData TransData - { - get - { - return _TransData == null? _TransData = new TransData(SelectSingleNode("TransData")):_TransData; - } - } - private StepDataList _StepDataList; - public StepDataList StepDataList - { - get - { - return _StepDataList == null? _StepDataList = new StepDataList(SelectNodes("StepData/Step"),MyFormat):_StepDataList; - } - set { _StepDataList = value; } - } - public List GetSearchableSteps() - { - List sds = new List(); - foreach (StepData sd in StepDataList) - { - if (!sd.Inactive && sd.StepEditData.Searchable && sd.StepEditData.TypeMenu.InMenu) - sds.Add(new StepDataRetval(sd.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(sd.Index))); - } - return sds; - } - public StepData StepTopUnderBase(StepData sd, int formatStepType) - { - StepData top = sd; - while (top.ParentType != "Base") - { - string sParStp = StepDataList[formatStepType].ParentType; - foreach (StepData stp in StepDataList) - { - if (top.ParentType == stp.Type) - { - top = stp; - break; - } - } - } - return top; - } - public List StepGetLevelTypes(bool alwaysAdd, StepData topType, ref int cursel, string curType, ItemInfo _CurItemInfo) - { - List sds = new List(); - int retval = -1; - int cntitm = 0; - // if there are alternatenames for this item, use that list, otherwise, get list from - // xml for current node & its children.... - if (topType.StepEditData.TypeMenu.AlternateNameList != null && topType.StepEditData.TypeMenu.AlternateNameList != "") - { - // loop through the AlternateName string, it has indices for step types.. - string[] split = topType.StepEditData.TypeMenu.AlternateNameList.Split(new Char[] { ',' }); - foreach (string s in split) - { - foreach (StepData sd in this.StepDataList) - { - if (sd.Type == s && !sd.Inactive) - { - sds.Add(new StepDataRetval(sd.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(sd.Index))); - if (topType.Type == sd.Type) retval = cntitm; - cntitm++; - break; - } - } - } - } - - // some menu items (step change types) can only be done in aer column, check for that.... - // also tables and figures off caution/notes must use rno data. - else if (alwaysAdd || (topType.StepEditData.TypeMenu.InMenu && ((topType.StepEditData.TypeMenu.RnoInMenu) || - (!topType.StepEditData.TypeMenu.RnoInMenu && !_CurItemInfo.IsInRNO && !_CurItemInfo.IsCaution && !_CurItemInfo.IsNote) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsInRNO) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsCaution) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsNote)))) - { - if (!topType.Inactive) - { - if ((_CurItemInfo.IsInRNO||_CurItemInfo.IsCaution||_CurItemInfo.IsNote) && topType.StepEditData.TypeMenu.RnoMenuItem != null && topType.StepEditData.TypeMenu.RnoMenuItem != "") - sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.RnoMenuItem, Convert.ToInt32(topType.Index))); - else - sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(topType.Index))); - - if (topType.Type == curType) retval = cntitm; - cntitm++; - } - foreach (StepData sd in StepDataList) - { - if (sd.ParentType == topType.Type) - { - int tmpindx = DoListChildStepTypes(alwaysAdd, ref sds, sd, curType, _CurItemInfo, ref cntitm); - if (sd.Type == curType) retval = tmpindx; - if (retval < 0 && tmpindx > 0) retval = tmpindx; - } - } - } - cursel = retval; - return sds; - } - - private int DoListChildStepTypes(bool alwaysAdd, ref List sds, StepData topType, string curType, ItemInfo _CurItemInfo, ref int cntitm) - { - int retval = -1; - if (alwaysAdd || (topType.StepEditData.TypeMenu.InMenu && ((topType.StepEditData.TypeMenu.RnoInMenu) || - (!topType.StepEditData.TypeMenu.RnoInMenu && !_CurItemInfo.IsInRNO&&!_CurItemInfo.IsCaution&&!_CurItemInfo.IsNote) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsInRNO) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsCaution) || - (topType.StepEditData.TypeMenu.RnoInMenu && _CurItemInfo.IsNote)))) - { - if (!topType.Inactive) - { - if ((_CurItemInfo.IsInRNO||_CurItemInfo.IsCaution||_CurItemInfo.IsNote) && topType.StepEditData.TypeMenu.RnoMenuItem != null && topType.StepEditData.TypeMenu.RnoMenuItem != "") - sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.RnoMenuItem, Convert.ToInt32(topType.Index))); - else - sds.Add(new StepDataRetval(topType.StepEditData.TypeMenu.MenuItem, Convert.ToInt32(topType.Index))); - - if (topType.Type == curType) retval = cntitm; - cntitm++; - } - foreach (StepData sd in StepDataList) - { - if (sd.ParentType == topType.Type) - { - int tmpindx = DoListChildStepTypes(alwaysAdd, ref sds, sd, curType, _CurItemInfo, ref cntitm); - if (sd.Type == curType) retval = tmpindx; - if (retval < 0 && tmpindx > 0) retval = tmpindx; - } - } - } - return retval; - } - /// - /// for format data given a string representing the Type of step, find the index. - /// - public int GetIndexFromType(string type) - { - foreach (StepData sd in StepDataList) - { - if (sd.Type == type) return (int)sd.Index; - } - return 0; // default to the base - } - } - #endregion - #region Symbols - [TypeConverter(typeof(ExpandableObjectConverter))] - public class Symbol : vlnFormatItem - { - public Symbol(XmlNode xmlNode) : base(xmlNode) { } - public Symbol() : base() { } - [Category("Ints")] - private LazyLoad _Unicode; - public int? Unicode - { - get - { - return LazyLoad(ref _Unicode, "@Unicode"); - } - } - [Category("Strings")] - private LazyLoad _Desc; - public string Desc - { - get - { - return LazyLoad(ref _Desc, "@Desc"); - } - } - public override string GetPDDisplayName() - { return Desc; } - public override string GetPDDescription() - { return string.Format("Symbol Unicode '{0}' Description '{1}'", Unicode, Desc); } - public override string GetPDCategory() - { return "Supported Symbols"; } - public override string ToString() - { - return Desc; - } - } - [TypeConverter(typeof(vlnListConverter))] - public class SymbolList : vlnFormatList - { - public SymbolList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region EditData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class EditData : vlnFormatItem - { - public EditData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _EMode; - public E_EMode? EMode - { - get - { - return LazyLoad(ref _EMode, "@EMode"); - } - } - private LazyLoad _PromptForCautionType; - public bool PromptForCautionType - { - get - { - return LazyLoad(ref _PromptForCautionType, "@PromptForCautionType"); - } - } - } - #endregion - #region PrintDataAll - #region PrintData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class PrintData : vlnFormatItem - { - public PrintData(XmlNode xmlNode) : base(xmlNode) { } - private VersionIdTextList _VersionIdTextList; - public VersionIdTextList VersionIdTextList - { - get - { - return _VersionIdTextList == null? _VersionIdTextList = new VersionIdTextList(SelectNodes("VersionIdText/string")):_VersionIdTextList; - } - set { _VersionIdTextList = value; } - } - private ProcDescrList _ProcDescrList; - public ProcDescrList ProcDescrList - { - get - { - return _ProcDescrList == null? _ProcDescrList = new ProcDescrList(SelectNodes("ProcDescrList/ProcDescr")):_ProcDescrList; - } - } - private LazyLoad _DoPrnDrvrAdjusts; - public int? DoPrnDrvrAdjusts - { - get - { - return LazyLoad(ref _DoPrnDrvrAdjusts, "@DoPrnDrvrAdjusts"); - } - } - private LazyLoad _TopOfPageThing; - public string TopOfPageThing - { - get - { - return LazyLoad(ref _TopOfPageThing, "@TopOfPageThing"); - } - } - private LazyLoad _DoRevDate; - public bool DoRevDate - { - get - { - return LazyLoad(ref _DoRevDate, "@DoRevDate"); - } - } - private LazyLoad _AlternateFoldoutPages; - public bool AlternateFoldoutPages - { - get - { - return LazyLoad(ref _AlternateFoldoutPages, "@AlternateFoldoutPages"); - } - } - private LazyLoad _AlternateFloatingFoldout; - public bool AlternateFloatingFoldout - { - get - { - return LazyLoad(ref _AlternateFloatingFoldout, "@AlternateFloatingFoldout"); - } - } - private LazyLoad _SectionLevelFoldouts; - public bool SectionLevelFoldouts - { - get - { - return LazyLoad(ref _SectionLevelFoldouts, "@SectionLevelFoldouts"); - } - } - private LazyLoad _RevDateWithForwardSlash; - public bool RevDateWithForwardSlash - { - get - { - return LazyLoad(ref _RevDateWithForwardSlash, "@RevDateWithForwardSlash"); - } - } - private LazyLoad _SpecialStepsFoldout; - public bool SpecialStepsFoldout - { - get - { - return LazyLoad(ref _SpecialStepsFoldout, "@SpecialStepsFoldout"); - } - } - private LazyLoad _AccessoryDocsInDuplex; - public bool AccessoryDocsInDuplex - { - get - { - return LazyLoad(ref _AccessoryDocsInDuplex, "@AccessoryDocsInDuplex"); - } - } - private LazyLoad _FoldoutsInDuplex; - public bool FoldoutsInDuplex - { - get - { - return LazyLoad(ref _FoldoutsInDuplex, "@FoldoutsInDuplex"); - } - } - private LazyLoad _PagelistChangeIDsWithCommas; - public bool PagelistChangeIDsWithCommas - { - get - { - return LazyLoad(ref _PagelistChangeIDsWithCommas, "@PagelistChangeIDsWithCommas"); - } - } - } - #endregion - #region VersionIdText - [TypeConverter(typeof(ExpandableObjectConverter))] - public class VersionIdText : vlnFormatItem - { - public VersionIdText(XmlNode xmlNode) : base(xmlNode) { } - public VersionIdText() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("VersionIdText '{0}'", Text); } - public override string GetPDCategory() - { return "Version Id Text"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region VersionIdTextList - [TypeConverter(typeof(vlnListConverter))] - public class VersionIdTextList : vlnFormatList - { - public VersionIdTextList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region ProcDescr - [TypeConverter(typeof(ExpandableObjectConverter))] - public partial class ProcDescr : vlnFormatItem //: BusinessBase, IDisposable - { - public ProcDescr(XmlNode xmlNode) : base(xmlNode) { } - public ProcDescr() : base() { } - private LazyLoad _MatchProcNumber; - public string MatchProcNumber - { - get - { - return LazyLoad(ref _MatchProcNumber, "@MatchProcNumber"); - } - } - private LazyLoad _ProcDescr1; - public string ProcDescr1 - { - get - { - return LazyLoad(ref _ProcDescr1, "@ProcDescr1"); - } - } - private LazyLoad _ProcDescr2; - public string ProcDescr2 - { - get - { - return LazyLoad(ref _ProcDescr2, "@ProcDescr2"); - } - } - public override string ToString() - { - return string.Format("{0}, {1}", ProcDescr1, MatchProcNumber); - } - } - #region ProcDescrList - [TypeConverter(typeof(vlnListConverter))] - public class ProcDescrList : vlnFormatList - { - public ProcDescrList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #endregion - #endregion - #region ProcDataAll - #region ProcData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ProcData : vlnFormatItem - { - public ProcData(XmlNode xmlNode): base(xmlNode) {} - private ProcedureSuffixList _ProcedureSuffixList; - public ProcedureSuffixList ProcedureSuffixList - { - get - { - return _ProcedureSuffixList == null? _ProcedureSuffixList = new ProcedureSuffixList(SelectNodes("ProcedureSuffix/string")): _ProcedureSuffixList; - } - set { _ProcedureSuffixList = value; } - } - private ChangeBarData _ChangeBarData; - public ChangeBarData ChangeBarData - { - get - { - return _ChangeBarData == null? _ChangeBarData = new ChangeBarData(SelectSingleNode("ChangeBarData")):_ChangeBarData; - } - } - private CheckOffData _CheckOffData; - public CheckOffData CheckOffData - { - get - { - return _CheckOffData == null? _CheckOffData = new CheckOffData(SelectSingleNode("CheckOffData")):_CheckOffData; - } - } - private LazyLoad _TitleLength; - public int? TitleLength - { - get - { - return LazyLoad(ref _TitleLength, "@TitleLength"); - } - } - private LazyLoad _CoverTitleLength; - public int? CoverTitleLength - { - get - { - return LazyLoad(ref _CoverTitleLength, "@CoverTitleLength"); - } - } - private LazyLoad _ProcedureSuffixFlags; - public string ProcedureSuffixFlags - { - get - { - return LazyLoad(ref _ProcedureSuffixFlags, "@ProcedureSuffixFlags"); - } - } - private LazyLoad _CapitalizeTitle; - public bool CapitalizeTitle - { - get - { - return LazyLoad(ref _CapitalizeTitle, "@CapitalizeTitle"); - } - } - private LazyLoad _ChangeStyleForEverySection; - public bool ChangeStyleForEverySection - { - get - { - return LazyLoad(ref _ChangeStyleForEverySection, "@ChangeStyleForEverySection"); - } - } - private LazyLoad _PrintNoTitle; - public bool PrintNoTitle - { - get - { - return LazyLoad(ref _PrintNoTitle, "@PrintNoTitle"); - } - } - private LazyLoad _CountFoldoutPages; - public bool CountFoldoutPages - { - get - { - return LazyLoad(ref _CountFoldoutPages, "@CountFoldoutPages"); - } - } - private LazyLoad _PSInfFile; - public string PSInfFile - { - get - { - return LazyLoad(ref _PSInfFile, "@PSInfFile"); - } - } - private LazyLoad _ForeColor; - public string ForeColor - { - get - { - return LazyLoad(ref _ForeColor, "@ForeColor"); - } - } - private LazyLoad _BackColor; - public string BackColor - { - get - { - return LazyLoad(ref _BackColor, "@BackColor"); - } - } - } - #endregion - #region ProcedureSuffix - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ProcedureSuffix : vlnFormatItem - { - public ProcedureSuffix(XmlNode xmlNode) : base(xmlNode) { } - public ProcedureSuffix() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("ProcedureSuffix '{0}'", Text); } - public override string GetPDCategory() - { return "Procedure Suffix"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region ProcedureSuffixList - [TypeConverter(typeof(vlnListConverter))] - public class ProcedureSuffixList : vlnFormatList - { - public ProcedureSuffixList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region CheckOffAll - #region CheckOffData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class CheckOffData : vlnFormatItem - { - public CheckOffData(XmlNode xmlNode) : base(xmlNode) { } - private RightCheckOffBoxList _RightCheckOffBoxList; - public RightCheckOffBoxList RightCheckOffBoxList - { - get - { - return _RightCheckOffBoxList == null? _RightCheckOffBoxList = new RightCheckOffBoxList(SelectNodes("RightCheckOffBoxList/RightCheckOffBox"),MyFormat):_RightCheckOffBoxList; - } - } - private CheckOffList _CheckOffList; - public CheckOffList CheckOffList - { - get - { - return _CheckOffList == null? _CheckOffList = new CheckOffList(SelectNodes("CheckOffList/CheckOff"),MyFormat):_CheckOffList; - } - } - private CheckOffHeaderList _CheckOffHeaderList; - public CheckOffHeaderList CheckOffHeaderList - { - get - { - return _CheckOffHeaderList == null? _CheckOffHeaderList = new CheckOffHeaderList(SelectNodes("CheckOffHeaderList/CheckOffHeader"),MyFormat): _CheckOffHeaderList; - } - } - private LazyLoad _UseCheckOffsIn; - public int? UseCheckOffsIn - { - get - { - return LazyLoad(ref _UseCheckOffsIn, "@UseCheckOffsIn"); - } - } - private LazyLoad _CheckOffAdjustment; - public int? CheckOffAdjustment - { - get - { - return LazyLoad(ref _CheckOffAdjustment, "@CheckOffAdjustment"); - } - } - private LazyLoad _DropCheckOff; - public bool DropCheckOff - { - get - { - return LazyLoad(ref _DropCheckOff, "@DropCheckOff"); - } - } - private LazyLoad _CheckOffOnHLSOnly; - public bool CheckOffOnHLSOnly - { - get - { - return LazyLoad(ref _CheckOffOnHLSOnly, "@CheckOffOnHLSOnly"); - } - } - } - #endregion - #region RightCheckOffBox - [TypeConverter(typeof(ExpandableObjectConverter))] - public class RightCheckOffBox : vlnFormatItem, IVlnIndexedFormatItem - { - public RightCheckOffBox(XmlNode xmlNode) : base(xmlNode) { } - public RightCheckOffBox() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _RightCheckOffBoxChar; - public int? RightCheckOffBoxChar - { - get - { - return LazyLoad(ref _RightCheckOffBoxChar, "@RightCheckOffBoxChar"); - } - } - public override string GetPDDisplayName() - { return string.Format("[{0}]", Index); } - public override string GetPDDescription() - { return string.Format("[{0}] - {1}", Index, RightCheckOffBoxChar); } - public override string GetPDCategory() - { return "RightCheckOffBox Data"; } - public override string ToString() - { - return RightCheckOffBoxChar.ToString(); - } - } - #endregion - #region RightCheckOffBoxList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class RightCheckOffBoxList : vlnIndexedFormatList - { - public RightCheckOffBoxList(XmlNodeList xmlNodeList,IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.ProcData.CheckOffData.RightCheckOffBoxList; - return null; - } - } - - } - #endregion - #region CheckOff - [TypeConverter(typeof(ExpandableObjectConverter))] - public class CheckOff : vlnFormatItem,IVlnIndexedFormatItem - { - public CheckOff(XmlNode xmlNode) : base(xmlNode) { } - public CheckOff() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _RightCheckOffChars; - public int? RightCheckOffChars - { - get - { - return LazyLoad(ref _RightCheckOffChars, "@RightCheckOffChars"); - } - } - private LazyLoad _CheckOffWidAdjust; - public int? CheckOffWidAdjust - { - get - { - return LazyLoad(ref _CheckOffWidAdjust, "@CheckOffWidAdjust"); - } - } - private LazyLoad _RightCheckOffPrompt; - public string RightCheckOffPrompt - { - get - { - return LazyLoad(ref _RightCheckOffPrompt, "@RightCheckOffPrompt"); - } - } - public override string GetPDDisplayName() - { return string.Format("[{0}]",Index); } - public override string GetPDDescription() - { return string.Format("[{0}] - {1}", Index, RightCheckOffPrompt); } - public override string GetPDCategory() - { return "Checkoff Data"; } - public override string ToString() - { - return RightCheckOffPrompt; - } - } - #endregion - #region CheckOffList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class CheckOffList : vlnIndexedFormatList - { - public CheckOffList(XmlNodeList xmlNodeList,IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffList; - return null; - } - } - } - #endregion - #region CheckOffHeader - [TypeConverter(typeof(ExpandableObjectConverter))] - public class CheckOffHeader : vlnFormatItem,IVlnIndexedFormatItem - { - public CheckOffHeader(XmlNode xmlNode) : base(xmlNode) { } - public CheckOffHeader() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null ? _Font = new VE_Font(base.XmlNode) : _Font); - } - } - private LazyLoad _CheckOffHeading; - public string CheckOffHeading - { - get - { - return LazyLoad(ref _CheckOffHeading, "@CheckOffHeading"); - } - } - public override string GetPDDisplayName() - { return string.Format("[{0}]", Index); } - public override string GetPDDescription() - { return string.Format("[{0}] - {1}", Index, CheckOffHeading); } - public override string GetPDCategory() - { return "Checkoff Header Data"; } - public override string ToString() - { - return CheckOffHeading; - } - } - #endregion - #region CheckOffHeaderList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class CheckOffHeaderList : vlnIndexedFormatList - { - public CheckOffHeaderList(XmlNodeList xmlNodeList,IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList; - return null; - } - } - } - #endregion - #endregion - #region ChangeBarData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ChangeBarData : vlnFormatItem - { - public ChangeBarData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _ChangeBarMessage; - public string ChangeBarMessage - { - get - { - return LazyLoad(ref _ChangeBarMessage, "@ChangeBarMessage"); - } - } - private LazyLoad _FixedChangeColumn; - public int? FixedChangeColumn - { - get - { - return LazyLoad(ref _FixedChangeColumn, "@FixedChangeColumn"); - } - } - private LazyLoad _FixedAERChangeColumn; - public int? FixedAERChangeColumn - { - get - { - return LazyLoad(ref _FixedAERChangeColumn, "@FixedAERChangeColumn"); - } - } - private LazyLoad _ChangeSummaryStyle; - public E_Style? ChangeSummaryStyle - { - get - { - return LazyLoad(ref _ChangeSummaryStyle, "@ChangeSummaryStyle"); - } - } - private LazyLoad _ChangeBarStyle; - public E_Style? ChangeBarStyle - { - get - { - return LazyLoad(ref _ChangeBarStyle, "@ChangeBarStyle"); - } - } - private LazyLoad _SpecialChangeBar; - public string SpecialChangeBar - { - get - { - return LazyLoad(ref _SpecialChangeBar, "@SpecialChangeBar"); - } - } - private LazyLoad _CondensedChangeBar; - public bool CondensedChangeBar - { - get - { - return LazyLoad(ref _CondensedChangeBar, "@CondensedChangeBar"); - } - } - private LazyLoad _AbsoluteFixedChangeColumn; - public bool AbsoluteFixedChangeColumn - { - get - { - return LazyLoad(ref _AbsoluteFixedChangeColumn, "@AbsoluteFixedChangeColumn"); - } - } - private LazyLoad _ContinuousChangeBars; - public bool ContinuousChangeBars - { - get - { - return LazyLoad(ref _ContinuousChangeBars, "@ContinuousChangeBars"); - } - } - private LazyLoad _ChgBarMessageFromEdit; - public bool ChgBarMessageFromEdit - { - get - { - return LazyLoad(ref _ChgBarMessageFromEdit, "@ChgBarMessageFromEdit"); - } - } - private LazyLoad _MultipleChangeIds; - public bool MultipleChangeIds - { - get - { - return LazyLoad(ref _MultipleChangeIds, "@MultipleChangeIds"); - } - } - private LazyLoad _ChangeBarToRNOSep; - public bool ChangeBarToRNOSep - { - get - { - return LazyLoad(ref _ChangeBarToRNOSep, "@ChangeBarToRNOSep"); - } - } - private LazyLoad _ChangeBarsOnLinkedText; - public bool ChangeBarsOnLinkedText - { - get - { - return LazyLoad(ref _ChangeBarsOnLinkedText, "@ChangeBarsOnLinkedText"); - } - } - } - #endregion - #endregion - #region SectDataAll - #region SectData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectData : vlnFormatItem - { - public SectData(XmlNode xmlNode) : base(xmlNode) { } - private SectionNumber _SectionNumber; - public SectionNumber SectionNumber - { - get - { - if (_SectionNumber == null) _SectionNumber = new SectionNumber(SelectSingleNode("SectionNumber")); - return _SectionNumber; - } - } - private SectionHeader _SectionHeader; - public SectionHeader SectionHeader - { - get - { - if (_SectionHeader == null) _SectionHeader = new SectionHeader(SelectSingleNode("SectionHeader")); - return _SectionHeader; - } - } - private StepSectionData _StepSectionData; - public StepSectionData StepSectionData - { - get - { - if (_StepSectionData == null) _StepSectionData = new StepSectionData(SelectSingleNode("StepSectionData")); - return _StepSectionData; - } - } - private AccSectionData _AccSectionData; - public AccSectionData AccSectionData - { - get - { - if (_AccSectionData == null) _AccSectionData = new AccSectionData(SelectSingleNode("AccSectionData")); - return _AccSectionData; - } - } - private MetaSectionList _MetaSectionList; - public MetaSectionList MetaSectionList - { - get - { - if (_MetaSectionList == null) _MetaSectionList = new MetaSectionList(SelectNodes("MetaSectionData/MetaSection"),MyFormat); - return _MetaSectionList; - } - set { _MetaSectionList = value; } - } - private ReplaceStrList _ReplaceStrList; - public ReplaceStrList ReplaceStrList - { - get - { - return (_ReplaceStrList == null) ? _ReplaceStrList = new ReplaceStrList(SelectNodes("ReplaceStrData/ReplaceStr")) : _ReplaceStrList; - } - set { _ReplaceStrList = value; } - } - private LazyLoad _SectionTitleLength; - public int? SectionTitleLength - { - get - { - return LazyLoad(ref _SectionTitleLength, "@SectionTitleLength"); - } - } - private LazyLoad _ForeColor; - public string ForeColor - { - get - { - return LazyLoad(ref _ForeColor, "@ForeColor"); - } - } - private LazyLoad _BackColor; - public string BackColor - { - get - { - return LazyLoad(ref _BackColor, "@BackColor"); - } - } - private LazyLoad _CancelSecTitlesOnS1; - public bool CancelSecTitlesOnS1 - { - get - { - return LazyLoad(ref _CancelSecTitlesOnS1, "@CancelSecTitlesOnS1"); - } - } - private LazyLoad _CancelSecTitlesOnS2; - public bool CancelSecTitlesOnS2 - { - get - { - return LazyLoad(ref _CancelSecTitlesOnS2, "@CancelSecTitlesOnS2"); - } - } - private LazyLoad _CancelSecTitlesOnE0; - public bool CancelSecTitlesOnE0 - { - get - { - return LazyLoad(ref _CancelSecTitlesOnE0, "@CancelSecTitlesOnE0"); - } - } - private LazyLoad _CancelSecTitlesOnE2; - public bool CancelSecTitlesOnE2 - { - get - { - return LazyLoad(ref _CancelSecTitlesOnE2, "@CancelSecTitlesOnE2"); - } - } - private LazyLoad _MetaSectEndMessage; - public bool MetaSectEndMessage - { - get - { - return LazyLoad(ref _MetaSectEndMessage, "@MetaSectEndMessage"); - } - } - private LazyLoad _ReadOnlyTypeInContMsg; - public bool ReadOnlyTypeInContMsg - { - get - { - return LazyLoad(ref _ReadOnlyTypeInContMsg, "@ReadOnlyTypeInContMsg"); - } - } - private LazyLoad _ReplaceWordsInROs; - public bool ReplaceWordsInROs - { - get - { - return LazyLoad(ref _ReplaceWordsInROs, "@ReplaceWordsInROs"); - } - } - private LazyLoad _UseMetaSections; - public bool UseMetaSections - { - get - { - return LazyLoad(ref _UseMetaSections, "@UseMetaSections"); - } - } - private LazyLoad _NonEditableSteps; - public bool NonEditableSteps - { - get - { - return LazyLoad(ref _NonEditableSteps, "@NonEditableSteps"); - } - } - private LazyLoad _SearchAllReplaceWords; - public bool SearchAllReplaceWords - { - get - { - return LazyLoad(ref _SearchAllReplaceWords, "@SearchAllReplaceWords"); - } - } - private LazyLoad _SecTitleContinue; - public bool SecTitleContinue - { - get - { - return LazyLoad(ref _SecTitleContinue, "@SecTitleContinue"); - } - } - private LazyLoad _ConvertCaretToDelta; - public bool ConvertCaretToDelta - { - get - { - return LazyLoad(ref _ConvertCaretToDelta, "@ConvertCaretToDelta"); - } - } - } - #endregion - #region SectionNumber - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectionNumber : vlnFormatItem - { - public SectionNumber(XmlNode xmlNode) : base(xmlNode) { } - public SectionNumber() : base() { } - private LazyLoad _Pos; - public int? Pos - { - get - { - return LazyLoad(ref _Pos, "@Pos"); - } - } - private LazyLoad _Just; - public string Just - { - get - { - return LazyLoad(ref _Just, "@Just"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null ? _Font = new VE_Font(base.XmlNode) : _Font); - } - } - } - #endregion - #region SectionHeader - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SectionHeader : vlnFormatItem - { - public SectionHeader(XmlNode xmlNode) : base(xmlNode) { } - public SectionHeader() : base() { } - private LazyLoad _Pos; - public int? Pos - { - get - { - return LazyLoad(ref _Pos, "@Pos"); - } - } - private LazyLoad _Just; - public string Just - { - get - { - return LazyLoad(ref _Just, "@Just"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null ? _Font = new VE_Font(base.XmlNode) : _Font); - } - } - } - #endregion - #region StepSectionDataAll - #region StepSectionData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class StepSectionData : vlnFormatItem - { - public StepSectionData(XmlNode xmlNode) : base(xmlNode) { } - private TextTypeValueList _TextTypeValueList; - public TextTypeValueList TextTypeValueList - { - get - { - return (_TextTypeValueList == null)? _TextTypeValueList = new TextTypeValueList(SelectNodes("TextTypeValue/short")): _TextTypeValueList; - } - set { _TextTypeValueList = value; } - } - private TextTypeList _TextTypeList; - public TextTypeList TextTypeList - { - get - { - return (_TextTypeList == null)? _TextTypeList = new TextTypeList(SelectNodes("TextType/string")): _TextTypeList; - } - set { _TextTypeList = value; } - } - //private SeqTabList _SeqTabList; - //public SeqTabList SeqTabList - //{ - // get - // { - // return (_SeqTabList == null)? _SeqTabList = new SeqTabList(SelectNodes("SeqTab/string")): _SeqTabList; - // } - // set { _SeqTabList = value; } - //} - //private PreSeqTabEditList _PreSeqTabEditList; - //public PreSeqTabEditList PreSeqTabEditList - //{ - // get - // { - // return (_PreSeqTabEditList == null) ?_PreSeqTabEditList = new PreSeqTabEditList(SelectNodes("PreSeqTabEdit/string")): _PreSeqTabEditList; - // } - // set { _PreSeqTabEditList = value; } - //} - //private PreSeqTabPrintList _PreSeqTabPrintList; - //public PreSeqTabPrintList PreSeqTabPrintList - //{ - // get - // { - // return (_PreSeqTabPrintList == null)? _PreSeqTabPrintList = new PreSeqTabPrintList(SelectNodes("PreSeqTabPrint/string")):_PreSeqTabPrintList; - // } - // set { _PreSeqTabPrintList = value; } - //} - //private PostSeqTabEditList _PostSeqTabEditList; - //public PostSeqTabEditList PostSeqTabEditList - //{ - // get - // { - // return (_PostSeqTabEditList == null)? _PostSeqTabEditList = new PostSeqTabEditList(SelectNodes("PostSeqTabEdit/string")): _PostSeqTabEditList; - // } - // set { _PostSeqTabEditList = value; } - //} - //private PostSeqTabPrintList _PostSeqTabPrintList; - //public PostSeqTabPrintList PostSeqTabPrintList - //{ - // get - // { - // return (_PostSeqTabPrintList == null)? _PostSeqTabPrintList = new PostSeqTabPrintList(SelectNodes("PostSeqTabPrint/string")): _PostSeqTabPrintList; - // } - // set { _PostSeqTabPrintList = value; } - //} - private UnderlineTerminateList _UnderlineTerminateList; - public UnderlineTerminateList UnderlineTerminateList - { - get - { - return (_UnderlineTerminateList == null)? _UnderlineTerminateList = new UnderlineTerminateList(SelectNodes("UnderlineTerminate/string")):_UnderlineTerminateList; - } - set { _UnderlineTerminateList = value; } - } - private ObserveNCString1List _ObserveNCString1List; - public ObserveNCString1List ObserveNCString1List - { - get - { - return (_ObserveNCString1List == null)? _ObserveNCString1List = new ObserveNCString1List(SelectNodes("ObserveNCString1/string")): _ObserveNCString1List; - } - set { _ObserveNCString1List = value; } - } - private ObserveNCString2List _ObserveNCString2List; - public ObserveNCString2List ObserveNCString2List - { - get - { - return (_ObserveNCString2List == null)? _ObserveNCString2List = new ObserveNCString2List(SelectNodes("ObserveNCString2/string")):_ObserveNCString2List; - } - set { _ObserveNCString2List = value; } - } - private StepSectionLayoutData _StepSectionLayoutData; - public StepSectionLayoutData StepSectionLayoutData - { - get - { - return (_StepSectionLayoutData == null)? _StepSectionLayoutData = new StepSectionLayoutData(SelectSingleNode("StpSectLayData")):_StepSectionLayoutData; - } - } - private StepSectionEditData _StepSectionEditData; - public StepSectionEditData StepSectionEditData - { - get - { - return (_StepSectionEditData == null)? _StepSectionEditData = new StepSectionEditData(SelectSingleNode("StpSectEditData")): _StepSectionEditData; - } - } - private SeqTabFmtList _SeqTabFmtList; - public SeqTabFmtList SeqTabFmtList - { - get - { - return (_SeqTabFmtList == null) ? _SeqTabFmtList = new SeqTabFmtList(SelectNodes("SequentialTabFormat/SeqTabFmt"),MyFormat) : _SeqTabFmtList; - } - } - private StepSectionPrintData _StepSectionPrintData; - public StepSectionPrintData StepSectionPrintData - { - get - { - return (_StepSectionPrintData == null) ? _StepSectionPrintData = new StepSectionPrintData(SelectSingleNode("StpSectPrtData")) : _StepSectionPrintData; - } - } - private LazyLoad _TopRow; - public int? TopRow - { - get - { - return LazyLoad(ref _TopRow, "@TopRow"); - } - } - //private LazyLoad _SeqStart; - //public string SeqStart - //{ - // get - // { - // return LazyLoad(ref _SeqStart, "@SeqStart"); - // } - //} - //private LazyLoad _LeftJustSeqTab; - //public string LeftJustSeqTab - //{ - // get - // { - // return LazyLoad(ref _LeftJustSeqTab, "@LeftJustSeqTab") ; - // } - //} - //private LazyLoad _HighSeqStart; - //public int? HighSeqStart - //{ - // get - // { - // return LazyLoad(ref _HighSeqStart, "@HighSeqStart"); - // } - //} - private LazyLoad _IndentToken; - public string IndentToken - { - get - { - return LazyLoad(ref _IndentToken, "@IndentToken"); - } - } - private LazyLoad _NumberOfHighLevelSteps; - public int? NumberOfHighLevelSteps - { - get - { - return LazyLoad(ref _NumberOfHighLevelSteps, "@NumberOfHighLevelSteps"); - } - } - private LazyLoad _NumberOfSubStypeTypes; - public int? NumberOfSubStypeTypes - { - get - { - return LazyLoad(ref _NumberOfSubStypeTypes, "@NumberOfSubStepTypes"); - } - } - private LazyLoad _IdentB; - public string IdentB - { - get - { - return LazyLoad(ref _IdentB, "@IdentB"); - } - } - private LazyLoad _WolfCreekBackgroundFormat; - public bool WolfCreekBackgroundFormat - { - get - { - return LazyLoad(ref _WolfCreekBackgroundFormat, "@WolfCreekBackgroundFormat"); - } - } - private LazyLoad _WolfcreekCKLFormat; - public bool WolfcreekCKLFormat - { - get - { - return LazyLoad(ref _WolfcreekCKLFormat, "@WolfcreekCKLFormat"); - } - } - private LazyLoad _WolfcreekCKLBackgndFormat; - public bool WolfcreekCKLBackgndFormat - { - get - { - return LazyLoad(ref _WolfcreekCKLBackgndFormat, "@WolfcreekCKLBackgndFormat"); - } - } - private LazyLoad _FortranFormatNumbers; - public bool FortranFormatNumbers - { - get - { - return LazyLoad(ref _FortranFormatNumbers, "@FortranFormatNumbers"); - } - } - private LazyLoad _UseTopContinueMessageAtEnd; - public bool UseTopContinueMessageAtEnd - { - get - { - return LazyLoad(ref _UseTopContinueMessageAtEnd, "@UseTopContinueMessageAtEnd"); - } - } - private LazyLoad _FloatingContinueMessage; - public bool FloatingContinueMessage - { - get - { - return LazyLoad(ref _FloatingContinueMessage, "@FloatingContinueMessage"); - } - } - private LazyLoad _WrapSameAsEdit; - public bool WrapSameAsEdit - { - get - { - return LazyLoad(ref _WrapSameAsEdit, "@WrapSameAsEdit"); - } - } - private LazyLoad _ContinueSectionHeader; - public bool ContinueSectionHeader - { - get - { - return LazyLoad(ref _ContinueSectionHeader, "@ContinueSectionHeader"); - } - } - private LazyLoad _CompressHPSub; - public bool CompressHPSub - { - get - { - return LazyLoad(ref _CompressHPSub, "@CompressHPSub"); - } - } - private LazyLoad _CompressHPSuper; - public bool CompressHPSuper - { - get - { - return LazyLoad(ref _CompressHPSuper, "@CompressHPSuper"); - } - } - private LazyLoad _UndSpecialStepsFoldout; - public bool UndSpecialStepsFoldout - { - get - { - return LazyLoad(ref _UndSpecialStepsFoldout, "@UndSpecialStepsFoldout"); - } - } - private LazyLoad _UnderlineAllMetaTitles; - public bool UnderlineAllMetaTitles - { - get - { - return LazyLoad(ref _UnderlineAllMetaTitles, "@UnderlineAllMetaTitles"); - } - } - private LazyLoad _BoldOnlySectionZero; - public bool BoldOnlySectionZero - { - get - { - return LazyLoad(ref _BoldOnlySectionZero, "@BoldOnlySectionZero"); - } - } - private LazyLoad _ImperfectStructure; - public bool ImperfectStructure - { - get - { - return LazyLoad(ref _ImperfectStructure, "@ImperfectStructure"); - } - } - private LazyLoad _ImperfectSubstep; - public bool ImperfectSubstep - { - get - { - return LazyLoad(ref _ImperfectSubstep, "@ImperfectSubstep"); - } - } - private LazyLoad _ImperfectStructurePlus4; - public bool ImperfectStructurePlus4 - { - get - { - return LazyLoad(ref _ImperfectStructurePlus4, "@ImperfectStructurePlus4"); - } - } - private LazyLoad _CountAllSubLevels; - public bool CountAllSubLevels - { - get - { - return LazyLoad(ref _CountAllSubLevels, "@CountAllSubLevels"); - } - } - private LazyLoad _UseMultiLineSectionTitle; - public bool UseMultiLineSectionTitle - { - get - { - return LazyLoad(ref _UseMultiLineSectionTitle, "@UseMultiLineSectionTitle"); - } - } - } - #endregion - #region TextTypeValue - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TextTypeValue : vlnFormatItem - { - public TextTypeValue(XmlNode xmlNode) : base(xmlNode) { } - public TextTypeValue() : base() { } - private LazyLoad _TheValue; - public int? TheValue - { - get - { - return LazyLoad(ref _TheValue, "text()"); - } - } - public override string GetPDDisplayName() - { return "Value"; } - public override string GetPDDescription() - { return string.Format("TextTypeValue '{0}'", TheValue); } - public override string GetPDCategory() - { return "Text Type Value"; } - public override string ToString() - { - return TheValue.ToString(); - } - } - #endregion - #region TextTypeValueList - [TypeConverter(typeof(vlnListConverter))] - public class TextTypeValueList : vlnFormatList - { - public TextTypeValueList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region TextType - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TextType : vlnFormatItem - { - public TextType(XmlNode xmlNode) : base(xmlNode) { } - public TextType() : base() { } - //[Category("Strings")] - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("TextType '{0}'", Text); } - public override string GetPDCategory() - { return "Text Type"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region TextTypeList - [TypeConverter(typeof(vlnListConverter))] - public class TextTypeList : vlnFormatList - { - public TextTypeList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region OLD - SeqTab - //[TypeConverter(typeof(ExpandableObjectConverter))] - //public class SeqTab : vlnFormatItem - //{ - // public SeqTab(XmlNode xmlNode) : base(xmlNode) { } - // public SeqTab() : base() { } - // private LazyLoad _Text; - // public string Text - // { - // get - // { - // return LazyLoad(ref _Text, "text()"); - // } - // } - // public override string GetPDDisplayName() - // { return "Text"; } - // public override string GetPDDescription() - // { return string.Format("SeqTab '{0}'", Text); } - // public override string GetPDCategory() - // { return "Seq Tab"; } - // public override string ToString() - // { - // return Text; - // } - //} - #endregion - #region OLD - SeqTabList - //[TypeConverter(typeof(vlnListConverter))] - //public class SeqTabList : vlnFormatList - //{ - // public SeqTabList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - //} - #endregion - #region OLD - PreSeqTabEdit - //[TypeConverter(typeof(ExpandableObjectConverter))] - //public class PreSeqTabEdit : vlnFormatItem - //{ - // public PreSeqTabEdit(XmlNode xmlNode) : base(xmlNode) { } - // public PreSeqTabEdit() : base() { } - // //[Category("Strings")] - // private LazyLoad _Text; - // public string Text - // { - // get - // { - // return LazyLoad(ref _Text, "text()"); - // } - // } - // public override string GetPDDisplayName() - // { return "Text"; } - // public override string GetPDDescription() - // { return string.Format("PreSeqTabEdit '{0}'", Text); } - // public override string GetPDCategory() - // { return "PreSeq Tab Edit"; } - // public override string ToString() - // { - // return Text; - // } - //} - #endregion - #region OLD - PreSeqTabEditList - //[TypeConverter(typeof(vlnListConverter))] - //public class PreSeqTabEditList : vlnFormatList - //{ - // public PreSeqTabEditList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - //} - #endregion - #region OLD - PreSeqTabPrint - //[TypeConverter(typeof(ExpandableObjectConverter))] - //public class PreSeqTabPrint : vlnFormatItem - //{ - // public PreSeqTabPrint(XmlNode xmlNode) : base(xmlNode) { } - // public PreSeqTabPrint() : base() { } - // private LazyLoad _Text; - // public string Text - // { - // get - // { - // return LazyLoad(ref _Text, "text()"); - // } - // } - // public override string GetPDDisplayName() - // { return "Text"; } - // public override string GetPDDescription() - // { return string.Format("PreSeqTabPrint '{0}'", Text); } - // public override string GetPDCategory() - // { return "PreSeq Tab Printt"; } - // public override string ToString() - // { - // return Text; - // } - //} - #endregion - #region OLD - PreSeqTabPrintList - //[TypeConverter(typeof(vlnListConverter))] - //public class PreSeqTabPrintList : vlnFormatList - //{ - // public PreSeqTabPrintList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - //} - #endregion - #region OLD - PostSeqTabEdit - //[TypeConverter(typeof(ExpandableObjectConverter))] - //public class PostSeqTabEdit : vlnFormatItem - //{ - // public PostSeqTabEdit(XmlNode xmlNode) : base(xmlNode) { } - // public PostSeqTabEdit() : base() { } - // private LazyLoad _Text; - // public string Text - // { - // get - // { - // return LazyLoad(ref _Text, "text()"); - // } - // } - // public override string GetPDDisplayName() - // { return "Text"; } - // public override string GetPDDescription() - // { return string.Format("PostSeqTabEdit '{0}'", Text); } - // public override string GetPDCategory() - // { return "PostSeq Tab Edit"; } - // public override string ToString() - // { - // return Text; - // } - //} - #endregion - #region OLD - PostSeqTabEditList - //[TypeConverter(typeof(vlnListConverter))] - //public class PostSeqTabEditList : vlnFormatList - //{ - // public PostSeqTabEditList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - //} - #endregion - #region OLD - PostSeqTabPrint - //[TypeConverter(typeof(ExpandableObjectConverter))] - //public class PostSeqTabPrint : vlnFormatItem - //{ - // public PostSeqTabPrint(XmlNode xmlNode) : base(xmlNode) { } - // public PostSeqTabPrint() : base() { } - // private LazyLoad _Text; - // public string Text - // { - // get - // { - // return LazyLoad(ref _Text, "text()"); - // } - // } - // public override string GetPDDisplayName() - // { return "Text"; } - // public override string GetPDDescription() - // { return string.Format("PostSeqTabPrint '{0}'", Text); } - // public override string GetPDCategory() - // { return "PostSeq Tab Printt"; } - // public override string ToString() - // { - // return Text; - // } - //} - #endregion - #region OLD - PostSeqTabPrintList - //[TypeConverter(typeof(vlnListConverter))] - //public class PostSeqTabPrintList : vlnFormatList - //{ - // public PostSeqTabPrintList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - //} - #endregion - #region UnderlineTerminate - [TypeConverter(typeof(ExpandableObjectConverter))] - public class UnderlineTerminate : vlnFormatItem - { - public UnderlineTerminate(XmlNode xmlNode) : base(xmlNode) { } - public UnderlineTerminate() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("UnderlineTerminate '{0}'", Text); } - public override string GetPDCategory() - { return "Underline Terminate"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region UnderlineTerminateList - [TypeConverter(typeof(vlnListConverter))] - public class UnderlineTerminateList : vlnFormatList - { - public UnderlineTerminateList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region ObserveNCString1 - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ObserveNCString1 : vlnFormatItem - { - public ObserveNCString1(XmlNode xmlNode) : base(xmlNode) { } - public ObserveNCString1() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("ObserveNCString1 '{0}'", Text); } - public override string GetPDCategory() - { return "ObserveNCString1"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region ObserveNCString1List - [TypeConverter(typeof(vlnListConverter))] - public class ObserveNCString1List : vlnFormatList - { - public ObserveNCString1List(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region ObserveNCString2 - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ObserveNCString2 : vlnFormatItem - { - public ObserveNCString2(XmlNode xmlNode) : base(xmlNode) { } - public ObserveNCString2() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("ObserveNCString2 '{0}'", Text); } - public override string GetPDCategory() - { return "ObserveNCString2"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region ObserveNCString2List - [TypeConverter(typeof(vlnListConverter))] - public class ObserveNCString2List : vlnFormatList - { - public ObserveNCString2List(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region ReplaceStr - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ReplaceStr : vlnFormatItem - { - public ReplaceStr(XmlNode xmlNode) : base(xmlNode) { } - public ReplaceStr() : base() { } - [Category("Strings")] - private LazyLoad _ReplaceWord; - public string ReplaceWord - { - get - { - return LazyLoad(ref _ReplaceWord, "@ReplaceWord"); - } - } - [Category("Strings")] - private LazyLoad _ReplaceWith; - public string ReplaceWith - { - get - { - return LazyLoad(ref _ReplaceWith, "@ReplaceWith"); - } - } - private LazyLoad _Flag; - public E_ReplaceFlags? Flag - { - get - { - return LazyLoad(ref _Flag, "@Flag"); - } - } - public override string GetPDDisplayName() - { return ReplaceWord; } - public override string GetPDDescription() - { return string.Format("Replace '{0}' with '{1}'",ReplaceWord,ReplaceWith); } - public override string GetPDCategory() - { return "Words to Replace"; } - public override string ToString() - { - return ReplaceWith; - } - } - - #endregion - #region ReplaceStrList - [TypeConverter(typeof(vlnListConverter))] - public class ReplaceStrList : vlnFormatList - { - public ReplaceStrList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #region StepSectionLayoutData - public class StepSectionLayoutData : vlnFormatItem - { - public StepSectionLayoutData(XmlNode xmlNode) : base(xmlNode) { } - private TopOfPage _TopOfPage; - public TopOfPage TopOfPage - { - get - { - return (_TopOfPage == null)? _TopOfPage = new TopOfPage(SelectSingleNode("TopOfPage")): _TopOfPage; - } - } - private Separator _Separator; - public Separator Separator - { - get - { - return (_Separator == null) ?_Separator = new Separator(SelectSingleNode("Separator")):_Separator; - } - } - private LazyLoad _LastLineToStartStep; - public int? LastLineToStartStep - { - get - { - return LazyLoad(ref _LastLineToStartStep, "@LastLineToStartStep"); - } - } - private LazyLoad _LineDrawingOption; - public int? LineDrawingOption - { - get - { - return LazyLoad(ref _LineDrawingOption, "@LineDrawingOption"); - } - } - private LazyLoad _ColS; - public int? ColS - { - get - { - return LazyLoad(ref _ColS, "@ColS"); - } - } - private LazyLoad _ColT; - public int? ColT - { - get - { - return LazyLoad(ref _ColT, "@ColT"); - } - } - private LazyLoad _ColAbs; - public int? ColAbs - { - get - { - return LazyLoad(ref _ColAbs, "@ColAbs"); - } - } - private LazyLoad _WidT; - public int? WidT - { - get - { - return LazyLoad(ref _WidT, "@WidT"); - } - } - private LazyLoad _PMode; - public int? PMode - { - get - { - return LazyLoad(ref _PMode, "@PMode"); - } - } - private LazyLoad _MaxRNO; - public int? MaxRNO - { - get - { - return LazyLoad(ref _MaxRNO, "@MaxRNO"); - } - } - private LazyLoad _MaxRNOTable; - public string MaxRNOTable - { - get - { - return LazyLoad(ref _MaxRNOTable, "@MaxRNOTable"); - } - } - private LazyLoad _ColRTable; - public string ColRTable - { - get - { - return LazyLoad(ref _ColRTable, "@ColRTable"); - } - } - private LazyLoad _WidSTableEdit; - public string WidSTableEdit - { - get - { - return LazyLoad(ref _WidSTableEdit, "@WidSTableEdit"); - } - } - private LazyLoad _WidSTablePrint; - public string WidSTablePrint - { - get - { - return LazyLoad(ref _WidSTablePrint, "@WidSTablePrint"); - } - } - private LazyLoad _AdjRNOCol; - public int? AdjRNOCol - { - get - { - return LazyLoad(ref _AdjRNOCol, "@AdjRNOCol"); - } - } - private LazyLoad _EndMessagePos; - public int? EndMessagePos - { - get - { - return LazyLoad(ref _EndMessagePos, "@EndMessagePos"); - } - } - private LazyLoad _RNOWidthAlt; - public string RNOWidthAlt - { - get - { - return LazyLoad(ref _RNOWidthAlt, "@RNOWidthAlt"); - } - } - private LazyLoad _HLSWidthOVRD; - public int? HLSWidthOVRD - { - get - { - return LazyLoad(ref _HLSWidthOVRD, "@HLSWidthOVRD"); - } - } - private LazyLoad _SubPaginationWght; - public int? SubPaginationWght - { - get - { - return LazyLoad(ref _SubPaginationWght, "@SubPaginationWght"); - } - } - private LazyLoad _TextTitleAdjustment; - public int? TextTitleAdjustment - { - get - { - return LazyLoad(ref _TextTitleAdjustment, "@TextTitleAdjustment"); - } - } - private VE_Font _VertStyle; - public VE_Font VertStyle - { - get - { - return (_VertStyle == null)? _VertStyle = new VE_Font(base.XmlNode): _VertStyle; - } - } - private LazyLoad _TableCenterPos; - public string TableCenterPos - { - get - { - return LazyLoad(ref _TableCenterPos, "@TableCenterPos"); - } - } - private LazyLoad _LowerLimitDivisor; - public string LowerLimitDivisor - { - get - { - return LazyLoad(ref _LowerLimitDivisor, "@LowerLimitDivisor"); - } - } - private LazyLoad _NonLinkedStepNumber; - public string NonLinkedStepNumber - { - get - { - return LazyLoad(ref _NonLinkedStepNumber, "@NonLinkedStepNumber"); - } - } - private LazyLoad _NonLinkedCautNoteNumber; - public string NonLinkedCautNoteNumber - { - get - { - return LazyLoad(ref _NonLinkedCautNoteNumber, "@NonLinkedCautNoteNumber"); - } - } - private LazyLoad _NonLinkedRNONumber; - public string NonLinkedRNONumber - { - get - { - return LazyLoad(ref _NonLinkedRNONumber, "@NonLinkedRNONumber"); - } - } - private LazyLoad _Dev_Format; - public bool Dev_Format - { - get - { - return LazyLoad(ref _Dev_Format, "@Dev_Format"); - } - } - private LazyLoad _EnhancedShortFormDev; - public bool EnhancedShortFormDev - { - get - { - return LazyLoad(ref _EnhancedShortFormDev, "@EnhancedShortFormDev"); - } - } - private LazyLoad _SpecialPageBreakFlag; - public bool SpecialPageBreakFlag - { - get - { - return LazyLoad(ref _SpecialPageBreakFlag, "@SpecialPageBreakFlag"); - } - } - private LazyLoad _PaginateOnFirstSubstep; - public bool PaginateOnFirstSubstep - { - get - { - return LazyLoad(ref _PaginateOnFirstSubstep, "@PaginateOnFirstSubstep"); - } - } - private LazyLoad _PaginateOnFirstSubstep2X; - public bool PaginateOnFirstSubstep2X - { - get - { - return LazyLoad(ref _PaginateOnFirstSubstep2X, "@PaginateOnFirstSubstep2X"); - } - } - private LazyLoad _UseHalfLines; - public bool UseHalfLines - { - get - { - return LazyLoad(ref _UseHalfLines, "@UseHalfLines"); - } - } - private LazyLoad _TryToFillHalfOfPage; - public bool TryToFillHalfOfPage - { - get - { - return LazyLoad(ref _TryToFillHalfOfPage, "@TryToFillHalfOfPage"); - } - } - private LazyLoad _CompressSteps; - public bool CompressSteps - { - get - { - return LazyLoad(ref _CompressSteps, "@CompressSteps"); - } - } - private LazyLoad _DoSTExtraAtTop; - public bool DoSTExtraAtTop - { - get - { - return LazyLoad(ref _DoSTExtraAtTop, "@DoSTExtraAtTop"); - } - } - private LazyLoad _KeepStepsOnPage; - public bool KeepStepsOnPage - { - get - { - return LazyLoad(ref _KeepStepsOnPage, "@KeepStepsOnPage"); - } - } - private LazyLoad _BreakOnSections; - public bool BreakOnSections - { - get - { - return LazyLoad(ref _BreakOnSections, "@BreakOnSections"); - } - } - private LazyLoad _ShowSectionTitles; - public bool ShowSectionTitles - { - get - { - return LazyLoad(ref _ShowSectionTitles, "@ShowSectionTitles"); - } - } - private LazyLoad _EndForSingle; - public bool EndForSingle - { - get - { - return LazyLoad(ref _EndForSingle, "@EndForSingle"); - } - } - private LazyLoad _PaginateOnFirstSubstep3X; - public bool PaginateOnFirstSubstep3X - { - get - { - return LazyLoad(ref _PaginateOnFirstSubstep3X, "@PaginateOnFirstSubstep3X"); - } - } - private LazyLoad _PaginateOnLowerStepLevel; - public bool PaginateOnLowerStepLevel - { - get - { - return LazyLoad(ref _PaginateOnLowerStepLevel, "@PaginateOnLowerStepLevel"); - } - } - private LazyLoad _CustomSpacing; - public bool CustomSpacing - { - get - { - return LazyLoad(ref _CustomSpacing, "@CustomSpacing"); - } - } - private LazyLoad _SplitStepInPrntStep; - public bool SplitStepInPrntStep - { - get - { - return LazyLoad(ref _SplitStepInPrntStep, "@SplitStepInPrntStep"); - } - } - private LazyLoad _LineAboveUnderSection; - public bool LineAboveUnderSection - { - get - { - return LazyLoad(ref _LineAboveUnderSection, "@LineAboveUnderSection"); - } - } - private LazyLoad _PicaIgnoreFiveSixths; - public bool PicaIgnoreFiveSixths - { - get - { - return LazyLoad(ref _PicaIgnoreFiveSixths, "@PicaIgnoreFiveSixths"); - } - } - private LazyLoad _SpaceForNoSecNumb; - public bool SpaceForNoSecNumb - { - get - { - return LazyLoad(ref _SpaceForNoSecNumb, "@SpaceForNoSecNumb"); - } - } - private LazyLoad _PageBreakOnFirstBlankLine; - public bool PageBreakOnFirstBlankLine - { - get - { - return LazyLoad(ref _PageBreakOnFirstBlankLine, "@PageBreakOnFirstBlankLine"); - } - } - private LazyLoad _PutOnPageByItself; - public bool PutOnPageByItself - { - get - { - return LazyLoad(ref _PutOnPageByItself, "@PutOnPageByItself"); - } - } - private LazyLoad _PaginateAtHighestPaginLevel; - public bool PaginateAtHighestPaginLevel - { - get - { - return LazyLoad(ref _PaginateAtHighestPaginLevel, "@PaginateAtHighestPaginLevel"); - } - } - private LazyLoad _UseSTExtraRealValue; - public bool UseSTExtraRealValue - { - get - { - return LazyLoad(ref _UseSTExtraRealValue, "@UseSTExtraRealValue"); - } - } - private LazyLoad _DoSectionSeparatorLine; - public bool DoSectionSeparatorLine - { - get - { - return LazyLoad(ref _DoSectionSeparatorLine, "@DoSectionSeparatorLine"); - } - } - private LazyLoad _TieTabToLevel; - public bool TieTabToLevel - { - get - { - return LazyLoad(ref _TieTabToLevel, "@TieTabToLevel"); - } - } - private LazyLoad _HighLevelRNOBeforeAERSubsteps; - public bool HighLevelRNOBeforeAERSubsteps - { - get - { - return LazyLoad(ref _HighLevelRNOBeforeAERSubsteps, "@HighLevelRNOBeforeAERSubsteps"); - } - } - private LazyLoad _UseStepTypeWidthOverride; - public bool UseStepTypeWidthOverride - { - get - { - return LazyLoad(ref _UseStepTypeWidthOverride, "@UseStepTypeWidthOverride"); - } - } - private LazyLoad _UseStepTypeWidthOverrideEditPrint; - public bool UseStepTypeWidthOverrideEditPrint - { - get - { - return LazyLoad(ref _UseStepTypeWidthOverrideEditPrint, "@UseStepTypeWidthOverrideEditPrint"); - } - } - private LazyLoad _PartialStepCompression; - public bool PartialStepCompression - { - get - { - return LazyLoad(ref _PartialStepCompression, "@PartialStepCompression"); - } - } - private LazyLoad _VirtualDotInHLSTab; - public bool VirtualDotInHLSTab - { - get - { - return LazyLoad(ref _VirtualDotInHLSTab, "@VirtualDotInHLSTab"); - } - } - private LazyLoad _OverrideEnhancedTabs; - public bool OverrideEnhancedTabs - { - get - { - return LazyLoad(ref _OverrideEnhancedTabs, "@OverrideEnhancedTabs"); - } - } - private LazyLoad _RNO; - public bool RNO - { - get - { - return LazyLoad(ref _RNO, "@RNO"); - } - } - private LazyLoad _OnlySingleColumn; - public bool OnlySingleColumn - { - get - { - return LazyLoad(ref _OnlySingleColumn, "@OnlySingleColumn"); - } - } - } - #endregion - #region TopOfPage - public class TopOfPage : vlnFormatItem - { - public TopOfPage(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _Row; - public int? Row - { - get - { - return LazyLoad(ref _Row, "@Row"); - } - } - private LazyLoad _Col; - public int? Col - { - get - { - return LazyLoad(ref _Col, "@Col"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null? _Font = new VE_Font(base.XmlNode): _Font); - } - } - } - #endregion - #region Separator - public class Separator : vlnFormatItem - { - public Separator(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _Location; - public int? Location - { - get - { - return LazyLoad(ref _Location, "@Location"); - //return LazyLoad(ref _SeparatorLocation, "@SeparatorLocation"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null ? _Font = new VE_Font(base.XmlNode) : _Font); - } - } - } - #endregion - #region StepSectionEditData - public class StepSectionEditData : vlnFormatItem - { - public StepSectionEditData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _ColSScreenAdj; - public int? ColSScreenAdj - { - get - { - return LazyLoad(ref _ColSScreenAdj, "@ColSScreenAdj"); - } - } - private LazyLoad _ScrnAdjRNOText; - public int? ScrnAdjRNOText - { - get - { - return LazyLoad(ref _ScrnAdjRNOText, "@ScrnAdjRNOText"); - } - } - private LazyLoad _ColRScreen; - public string ColRScreen - { - get - { - return LazyLoad(ref _ColRScreen, "@ColRScreen"); - } - } - } - #endregion - #region StepSectionPrintData - public class StepSectionPrintData : vlnFormatItem - { - public StepSectionPrintData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _ImmStepHdrCol; - public int? ImmStepHdrCol - { - get - { - return LazyLoad(ref _ImmStepHdrCol, "@ImmStepHdrCol"); - } - } - private LazyLoad _SecColHdrforActPMode; - public int? SecColHdrforActPMode - { - get - { - return LazyLoad(ref _SecColHdrforActPMode, "@SecColHdrforActPMode"); - } - } - private LazyLoad _RNOSepString; - public string RNOSepString - { - get - { - return LazyLoad(ref _RNOSepString, "@RNOSepString"); - } - } - private LazyLoad _HLStpSeparatorString; - public string HLStpSeparatorString - { - get - { - return LazyLoad(ref _HLStpSeparatorString, "@HLStpSeparatorString"); - } - } - private LazyLoad _HLRNOStpSeparatorString; - public string HLRNOStpSeparatorString - { - get - { - return LazyLoad(ref _HLRNOStpSeparatorString, "@HLRNOStpSeparatorString"); - } - } - private LazyLoad _LowerCaseRevNum; - public bool LowerCaseRevNum - { - get - { - return LazyLoad(ref _LowerCaseRevNum, "@LowerCaseRevNum"); - } - } - private LazyLoad _UseXtraRevNumber; - public bool UseXtraRevNumber - { - get - { - return LazyLoad(ref _UseXtraRevNumber, "@UseXtraRevNumber"); - } - } - private LazyLoad _SpecialLandscapeMode; - public bool SpecialLandscapeMode - { - get - { - return LazyLoad(ref _SpecialLandscapeMode, "@SpecialLandscapeMode"); - } - } - private VE_Font _ModifiedTextStyle; - public VE_Font ModifiedTextStyle - { - get - { - return (_ModifiedTextStyle == null)? _ModifiedTextStyle = new VE_Font(base.XmlNode):_ModifiedTextStyle; - } - } - private VE_Font _ImmStepHdrStyle; - public VE_Font ImmStepHdrStyle - { - get - { - return (_ImmStepHdrStyle == null)? _ImmStepHdrStyle = new VE_Font(base.XmlNode):_ImmStepHdrStyle; - } - } - private ImmStepHdrList _ImmStepHdrList; - public ImmStepHdrList ImmStepHdrList - { - get - { - return (_ImmStepHdrList == null)? _ImmStepHdrList = new ImmStepHdrList(SelectNodes("ImmStepHdrList/string")):_ImmStepHdrList; - } - set { _ImmStepHdrList = value; } - } - } - #region ImmStepHdr - [TypeConverter(typeof(ExpandableObjectConverter))] - public class ImmStepHdr : vlnFormatItem - { - public ImmStepHdr(XmlNode xmlNode) : base(xmlNode) { } - public ImmStepHdr() : base() { } - private LazyLoad _Text; - public string Text - { - get - { - return LazyLoad(ref _Text, "text()"); - } - } - public override string GetPDDisplayName() - { return "Text"; } - public override string GetPDDescription() - { return string.Format("ImmStepHdr '{0}'", Text); } - public override string GetPDCategory() - { return "Imm Step Hdr"; } - public override string ToString() - { - return Text; - } - } - #endregion - #region ImmStepHdrList - [TypeConverter(typeof(vlnListConverter))] - public class ImmStepHdrList : vlnFormatList - { - public ImmStepHdrList(XmlNodeList xmlNodeList) : base(xmlNodeList) { } - } - #endregion - #endregion - #region SeqTabFmtAll - #region SeqTabFmt - [TypeConverter(typeof(ExpandableObjectConverter))] - public class SeqTabFmt : vlnFormatItem,IVlnIndexedFormatItem - { - public SeqTabFmt() : base() { } - private LazyLoad _Index; //not included - is it needed? - [Description("SeqTab Index")] - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _LeftJustify; - public int? LeftJustify - { - get - { - return LazyLoad(ref _LeftJustify, "@LeftJustify"); - } - } - private LazyLoad _TabFormat; - public string TabFormat - { - get - { - return LazyLoad(ref _TabFormat, "@TabFormat"); - } - } - private LazyLoad _PrintTabFormat; - public string PrintTabFormat - { - get - { - return LazyLoad(ref _TabFormat, "@PrintTabFormat"); - } - } - public override string GetPDDisplayName() - { return string.Format("Index [{0}]",Index); } - public override string GetPDDescription() - { return string.Format("Sequential Tab Format Index '{0}' Format '{1}'", Index, TabFormat); } - public override string GetPDCategory() - { return "Sequential Tab Formatting"; } - public override string ToString() - { - return TabFormat; - } - } - #endregion - #region SeqTabFmtList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class SeqTabFmtList : vlnIndexedFormatList - { - public SeqTabFmtList(XmlNodeList xmlNodeList,IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.SectData.StepSectionData.SeqTabFmtList; - return null; - } - } - } - #endregion - #endregion - #endregion - #region AccSectionDataAll - #region AccSectionData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class AccSectionData : vlnFormatItem - { - public AccSectionData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _AutoContActSumSection; - public int? AutoContActSumSection - { - get - { - return LazyLoad(ref _AutoContActSumSection, "@AutoContActSumSection"); - } - } - private TableOfContentsData _TableOfContentsData; - public TableOfContentsData TableOfContentsData - { - get - { - return (_TableOfContentsData == null ? _TableOfContentsData = new TableOfContentsData(SelectSingleNode("TableOfContentsData")) : _TableOfContentsData); - } - } - } - #endregion - #region TableOfContentsData - public class TableOfContentsData : vlnFormatItem - { - public TableOfContentsData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _TofCSecNumPos; - public int? TofCSecNumPos - { - get - { - return LazyLoad(ref _TofCSecNumPos, "@TofCSecNumPos"); - } - } - private LazyLoad _TofCSecTitlePos; - public int? TofCSecTitlePos - { - get - { - return LazyLoad(ref _TofCSecTitlePos, "@TofCSecTitlePos"); - } - } - private LazyLoad _TofCSecTitleLen; - public int? TofCSecTitleLen - { - get - { - return LazyLoad(ref _TofCSecTitleLen, "@TofCSecTitleLen"); - } - } - private LazyLoad _TofCPageNumPos; - public int? TofCPageNumPos - { - get - { - return LazyLoad(ref _TofCPageNumPos, "@TofCPageNumPos"); - } - } - private LazyLoad _TofCSpaceChar; - public int? TofCSpaceChar - { - get - { - return LazyLoad(ref _TofCSpaceChar, "@TofCSpaceChar"); - } - } - private LazyLoad _TofCLineSpacing; - public int? TofCLineSpacing - { - get - { - return LazyLoad(ref _TofCLineSpacing, "@TofCLineSpacing"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null) ?_Font = new VE_Font(base.XmlNode):_Font; - } - } - } - #endregion - #endregion - #region MetaSectionAll - #region MetaSection - [TypeConverter(typeof(ExpandableObjectConverter))] - public class MetaSection : vlnFormatItem,IVlnIndexedFormatItem - { - public MetaSection(XmlNode xmlNode) : base(xmlNode) { } - public MetaSection() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _SecNumPositionAdj; - public int? SecNumPositionAdj - { - get - { - return LazyLoad(ref _SecNumPositionAdj, "@SecNumPositionAdj"); - } - } - private LazyLoad _SecTitlePositionAdj; - public int? SecTitlePositionAdj - { - get - { - return LazyLoad(ref _SecTitlePositionAdj, "@SecTitlePositionAdj"); - } - } - private LazyLoad _ColSByLevel; - public int? ColSByLevel - { - get - { - return LazyLoad(ref _ColSByLevel, "@ColSByLevel"); - } - } - private LazyLoad _TofCPositionAdj; - public int? TofCPositionAdj - { - get - { - return LazyLoad(ref _TofCPositionAdj, "@TofCPositionAdj"); - } - } - private LazyLoad _WidSAdjByLevel; - public int? WidSAdjByLevel - { - get - { - return LazyLoad(ref _WidSAdjByLevel, "@WidSAdjByLevel"); - } - } - public override string GetPDDisplayName() - { return string.Format("[{0}]", Index); } - public override string GetPDCategory() - { return "Meta Section Values"; } - public override string ToString() - { - return String.Format("{0}, {1}, {2}, {3}, {4}", SecNumPositionAdj, SecTitlePositionAdj, ColSByLevel, TofCPositionAdj, TofCPositionAdj); - } - } - - #endregion - #region MetaSectionList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class MetaSectionList : vlnIndexedFormatList - { - public MetaSectionList(XmlNodeList xmlNodeList,IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.SectData.MetaSectionList; - return null; - } - } - - - } - #endregion - #endregion - #endregion - #region StepDataAll - #region Step - [TypeConverter(typeof(ExpandableObjectConverter))] - public class StepData : vlnFormatItem,IVlnIndexedFormatItem - { - public StepData() : base() { } - private LazyLoad _Index; - [Description("Step Index")] - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _Type; - public string Type - { - get - { - return LazyLoad(ref _Type, "@Type"); - } - } - private LazyLoad _ParentType; - public string ParentType - { - get - { - return LazyLoad(ref _ParentType, "@ParentType"); - } - } - private LazyLoad _Inactive; - public bool Inactive - { - get - { - return LazyLoad(ref _Inactive, "@Inactive"); - } - } - private LazyLoad _StepTypeColOverride; - public string StepTypeColOverride - { - get - { - - return LazyLoad(ref _StepTypeColOverride, "@StepTypeColOverride"); - } - } - private LazyLoad _Sep; - public string Sep - { - get - { - return LazyLoad(ref _Sep, "@Sep"); - } - } - private LazyLoad _Prefix; - public string Prefix - { - get - { - return LazyLoad(ref _Prefix, "@Prefix"); - } - } - private LazyLoad _Suffix; - public string Suffix - { - get - { - return LazyLoad(ref _Suffix, "@Suffix"); - } - } - private LazyLoad _UnderlineTheseChar; - public string UnderlineTheseChar - { - get - { - return LazyLoad(ref _UnderlineTheseChar, "@UnderlineTheseChar"); - } - } - private LazyLoad _VertPos; - public string VertPos - { - get - { - return LazyLoad(ref _VertPos, "@VertPos"); - } - } - private LazyLoad _DoubleSpace; - public bool DoubleSpace - { - get - { - return LazyLoad(ref _DoubleSpace, "@DoubleSpace"); - } - } - private LazyLoad _EnhancedStepNumFromPrev; - public bool EnhancedStepNumFromPrev - { - get - { - return LazyLoad(ref _EnhancedStepNumFromPrev, "@EnhancedStepNumFromPrev"); - } - } - private LazyLoad _UseSmartTemplate; - public bool UseSmartTemplate - { - get - { - return LazyLoad(ref _UseSmartTemplate, "@UseSmartTemplate"); - } - } - private LazyLoad _AlwaysUseExtraLines; - public bool AlwaysUseExtraLines - { - get - { - return LazyLoad(ref _AlwaysUseExtraLines, "@AlwaysUseExtraLines"); - } - } - private LazyLoad _SeparateBox; - public bool SeparateBox - { - get - { - return LazyLoad(ref _SeparateBox, "@SeparateBox"); - } - } - private LazyLoad _SeparateBoxCautions; - public bool SeparateBoxCautions - { - get - { - return LazyLoad(ref _SeparateBoxCautions, "@SeparateBoxCautions"); - } - } - private LazyLoad _SpaceDouble; - public bool SpaceDouble - { - get - { - return LazyLoad(ref _SpaceDouble, "@SpaceDouble"); - } - } - private LazyLoad _ReduceLineAfter; - public bool ReduceLineAfter - { - get - { - return LazyLoad(ref _ReduceLineAfter, "@ReduceLineAfter"); - } - } - private LazyLoad _SameLevel; - public bool SameLevel - { - get - { - return LazyLoad(ref _SameLevel, "@SameLevel"); - } - } - private LazyLoad _BoldHighLevel; - public bool BoldHighLevel - { - get - { - return LazyLoad(ref _BoldHighLevel, "@BoldHighLevel"); - } - } - private LazyLoad _OneLineBeforeTab; - public bool OneLineBeforeTab - { - get - { - return LazyLoad(ref _OneLineBeforeTab, "@OneLineBeforeTab"); - } - } - private LazyLoad _CheckOffOnAllSteps; - public bool CheckOffOnAllSteps - { - get - { - return LazyLoad(ref _CheckOffOnAllSteps, "@CheckOffOnAllSteps"); - } - } - private LazyLoad _BoxIt; - public bool BoxIt - { - get - { - return LazyLoad(ref _BoxIt, "@BoxIt"); - } - } - private LazyLoad _Boxed; - public bool Boxed - { - get - { - return LazyLoad(ref _Boxed, "@Boxed"); - } - } - private LazyLoad _XLines_StepFix; - public bool XLines_StepFix - { - get - { - return LazyLoad(ref _XLines_StepFix, "@XLines_StepFix"); - } - } - private LazyLoad _Rebox; - public bool Rebox - { - get - { - return LazyLoad(ref _Rebox, "@Rebox"); - } - } - private LazyLoad _SpcHdr; - public bool SpcHdr - { - get - { - return LazyLoad(ref _SpcHdr, "@SpcHdr"); - } - } - private LazyLoad _ContinueOnly; - public bool ContinueOnly - { - get - { - return LazyLoad(ref _ContinueOnly, "@ContinueOnly"); - } - } - private LazyLoad _SepAfterAER; - public bool SepAfterAER - { - get - { - return LazyLoad(ref _SepAfterAER, "@SepAfterAER"); - } - } - private LazyLoad _UseAlternateStepBox; - public bool UseAlternateStepBox - { - get - { - return LazyLoad(ref _UseAlternateStepBox, "@UseAlternateStepBox"); - } - } - private LazyLoad _UnderlineAfterDashSpace; - public bool UnderlineAfterDashSpace - { - get - { - return LazyLoad(ref _UnderlineAfterDashSpace, "@UnderlineAfterDashSpace"); - } - } - private LazyLoad _SpaceIn; - public bool SpaceIn - { - get - { - return LazyLoad(ref _SpaceIn, "@SpaceIn"); - } - } - private LazyLoad _PageBreakOnStep; - public bool PageBreakOnStep - { - get - { - return LazyLoad(ref _PageBreakOnStep, "@PageBreakOnStep"); - } - } - private LazyLoad _AlignNullTabWSectHead; - public bool AlignNullTabWSectHead - { - get - { - return LazyLoad(ref _AlignNullTabWSectHead, "@AlignNullTabWSectHead"); - } - } - private LazyLoad _TextSubFollowsTextStyle; - public bool TextSubFollowsTextStyle - { - get - { - return LazyLoad(ref _TextSubFollowsTextStyle, "@TextSubFollowsTextStyle"); - } - } - private LazyLoad _TreatAsSequential; - public bool TreatAsSequential - { - get - { - return LazyLoad(ref _TreatAsSequential, "@TreatAsSequential"); - } - } - private LazyLoad _MatchUpRNO; - public bool MatchUpRNO - { - get - { - return LazyLoad(ref _MatchUpRNO, "@MatchUpRNO"); - } - } - private LazyLoad _InPageList; - public bool InPageList - { - get - { - return LazyLoad(ref _InPageList, "@InPageList"); - } - } - private LazyLoad _CenterOneLineOnly; - public bool CenterOneLineOnly - { - get - { - return LazyLoad(ref _CenterOneLineOnly, "@CenterOneLineOnly"); - } - } - private LazyLoad _SubTableGetsUp1Level; - public bool SubTableGetsUp1Level - { - get - { - return LazyLoad(ref _SubTableGetsUp1Level, "@SubTableGetsUp1Level"); - } - } - private LazyLoad _Remember; - public bool Remember - { - get - { - return LazyLoad(ref _Remember, "@Remember"); - } - } - private LazyLoad _CenterOneLineAdjust; - public bool CenterOneLineAdjust - { - get - { - return LazyLoad(ref _CenterOneLineAdjust, "@CenterOneLineAdjust"); - } - } - private LazyLoad _Break; - public bool Break - { - get - { - return LazyLoad(ref _Break, "@Break"); - } - } - private LazyLoad _BreakEquipmentList; - public bool BreakEquipmentList - { - get - { - return LazyLoad(ref _BreakEquipmentList, "@BreakEquipmentList"); - } - } - private LazyLoad _BreakCautionsNotesOnSubstps; - public bool BreakCautionsNotesOnSubstps - { - get - { - return LazyLoad(ref _BreakCautionsNotesOnSubstps, "@BreakCautionsNotesOnSubstps"); - } - } - private LazyLoad _CenterTextWithinWidth; - public bool CenterTextWithinWidth - { - get - { - return LazyLoad(ref _CenterTextWithinWidth, "@CenterTextWithinWidth"); - } - } - private LazyLoad _NewlineAfter; - public bool NewlineAfter - { - get - { - return LazyLoad(ref _NewlineAfter, "@NewlineAfter"); - } - } - private LazyLoad _StartLineWithDash; - public bool StartLineWithDash - { - get - { - return LazyLoad(ref _StartLineWithDash, "@StartLineWithDash"); - } - } - private LazyLoad _BlankLineBeforeSubStep; - public bool BlankLineBeforeSubStep - { - get - { - return LazyLoad(ref _BlankLineBeforeSubStep, "@BlankLineBeforeSubStep"); - } - } - private LazyLoad _AlwaysTab; - public bool AlwaysTab - { - get - { - return LazyLoad(ref _AlwaysTab, "@AlwaysTab"); - } - } - private LazyLoad _MixCautionsAndNotes; - public bool MixCautionsAndNotes - { - get - { - return LazyLoad(ref _MixCautionsAndNotes, "@MixCautionsAndNotes"); - } - } - private LazyLoad _NumberHighLevel; - public bool NumberHighLevel - { - get - { - return LazyLoad(ref _NumberHighLevel, "@NumberHighLevel"); - } - } - private LazyLoad _OffsetTab; - public bool OffsetTab - { - get - { - return LazyLoad(ref _OffsetTab, "@OffsetTab"); - } - } - private LazyLoad _LeftJustifyBorderless; - public bool LeftJustifyBorderless - { - get - { - return LazyLoad(ref _LeftJustifyBorderless, "@LeftJustifyBorderless"); - } - } - private LazyLoad _StepNumIfOnlyOne; - public bool StepNumIfOnlyOne - { - get - { - return LazyLoad(ref _StepNumIfOnlyOne, "@StepNumIfOnlyOne"); - } - } - private LazyLoad _LJTabs; - public bool LJTabs - { - get - { - return LazyLoad(ref _LJTabs, "@LJTabs"); - } - } - private LazyLoad _NumberSubs; - public bool NumberSubs - { - get - { - return LazyLoad(ref _NumberSubs, "@NumberSubs"); - } - } - private LazyLoad _Bullet; - public bool Bullet - { - get - { - return LazyLoad(ref _Bullet, "@Bullet"); - } - } - private LazyLoad _StepNumberForHighLevel; - public bool StepNumberForHighLevel - { - get - { - return LazyLoad(ref _StepNumberForHighLevel, "@StepNumberForHighLevel"); - } - } - private LazyLoad _SameRowAsParent; - public bool SameRowAsParent - { - get - { - return LazyLoad(ref _SameRowAsParent, "@SameRowAsParent"); - } - } - private LazyLoad _CheckOffSameAsParent; - public bool CheckOffSameAsParent - { - get - { - return LazyLoad(ref _CheckOffSameAsParent, "@CheckOffSameAsParent"); - } - } - private LazyLoad _AtLeastTwoDigits; - public bool AtLeastTwoDigits - { - get - { - return LazyLoad(ref _AtLeastTwoDigits, "@AtLeastTwoDigits"); - } - } - private LazyLoad _UseInAcTable; - public bool UseInAcTable - { - get - { - return LazyLoad(ref _UseInAcTable, "@UseInAcTable"); - } - } - private LazyLoad _Number; - public bool Number - { - get - { - return LazyLoad(ref _Number, "@Number"); - } - } - private LazyLoad _ThreeBlanksAbove; - public bool ThreeBlanksAbove - { - get - { - return LazyLoad(ref _ThreeBlanksAbove, "@ThreeBlanksAbove"); - } - } - private LazyLoad _CheckOffs; - public bool CheckOffs - { - get - { - return LazyLoad(ref _CheckOffs, "@CheckOffs"); - } - } - private LazyLoad _Quoted; - public bool Quoted - { - get - { - return LazyLoad(ref _Quoted, "@Quoted"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null) ?_Font = new VE_Font(base.XmlNode): _Font; - } - } - private StepLayoutData _StepLayoutData; - public StepLayoutData StepLayoutData - { - get - { - return (_StepLayoutData == null)? _StepLayoutData = new StepLayoutData(base.XmlNode): _StepLayoutData; - } - } - private StepEditData _StepEditData; - public StepEditData StepEditData - { - get - { - return (_StepEditData == null) ? _StepEditData = new StepEditData(base.XmlNode) : _StepEditData; - } - } - private TabData _TabData; - public TabData TabData - { - get - { - return (_TabData == null) ? _TabData = new TabData(base.XmlNode) : _TabData; - } - } - public override string ToString() - { - return string.Format("{0:00} - {1}", Index, Type); - } - } - #endregion - #region StepDataList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class StepDataList : vlnIndexedFormatList - { - //public new StepData this[int index] - //{ - // get - // { - // foreach (StepData stepData in this) - // if (stepData.Index == index) return stepData; - // return null; - // } - //} - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.StepDataList; - return null; - } - } - public StepData this[string type] - { - get - { - foreach (StepData stepData in this) - if (stepData.Type == type) return stepData; - return null; - } - } - public StepDataList(XmlNodeList xmlNodeList,IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - private StepData _HLS; - public StepData HLS - { - get - { - if (_HLS!=null) return _HLS; - foreach (StepData sd in this) - { - if (sd.Type == "High") - { - _HLS = sd; - return sd; - } - } - return null; - } - } - private StepData _Caution; - public StepData Caution - { - get - { - if (_Caution != null) return _Caution; - foreach (StepData sd in this) - { - if (sd.Type == "Caution") - { - _Caution = sd; - return sd; - } - } - return null; - } - } - private StepData _Note; - public StepData Note - { - get - { - if (_Note != null) return _Note; - foreach (StepData sd in this) - { - if (sd.Type == "Note") - { - _Note = sd; - return sd; - } - } - return null; - } - } - private StepData _RNO; - public StepData RNO - { - get - { - if (_RNO != null) return _RNO; - foreach (StepData sd in this) - { - if (sd.Type == "RNOType") - { - _RNO = sd; - return sd; - } - } - return null; - } - } - private StepData _Fig; - public StepData Fig - { - get - { - if (_Fig != null) return _Fig; - foreach (StepData sd in this) - { - if (sd.Type == "Figure") - { - _Fig = sd; - return sd; - } - } - return null; - } - } - private StepData _Table; - public StepData Table - { - get - { - if (_Table != null) return _Table; - foreach (StepData sd in this) - { - if (sd.Type == "Table") - { - _Table = sd; - return sd; - } - } - return null; - } - } - private StepData _Substep; - public StepData Substep - { - get - { - if (_Substep != null) return _Substep; - foreach (StepData sd in this) - { - if (sd.Type == "Substep") - { - _Substep = sd; - return sd; - } - } - return null; - } - } - } - #endregion - #region StepLayoutData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class StepLayoutData : vlnFormatItem - { - public StepLayoutData(XmlNode xmlNode) - : base(xmlNode) - { - } - private LazyLoad _ForeColor; - public string ForeColor - { - get - { - return LazyLoad(ref _ForeColor, "StepLayoutData/@ForeColor"); - } - } - private LazyLoad _BackColor; - public string BackColor - { - get - { - return LazyLoad(ref _BackColor, "StepLayoutData/@BackColor"); - } - } - //private LazyLoad _STExtralines; Replaced with STExtraSpace - //public int? STExtralines - //{ - // get - // { - // return LazyLoad(ref _STExtralines, "StepLayoutData/@STExtralines"); - // } - //} - private LazyLoad _STExtraSpace; - public int? STExtraSpace - { - get - { - return LazyLoad(ref _STExtraSpace, "StepLayoutData/@STExtraSpace"); - } - } - private LazyLoad _STBoxindex; - public int? STBoxindex - { - get - { - return LazyLoad(ref _STBoxindex, "StepLayoutData/@STBoxindex"); - } - } - private LazyLoad _EveryNLines; - public int? EveryNLines - { - get - { - return LazyLoad(ref _EveryNLines, "StepLayoutData/@EveryNLines"); - } - } - } - #endregion - #region StepEditData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class StepEditData : vlnFormatItem - { - public StepEditData(XmlNode xmlNode) - : base(xmlNode) - { - } - private TypeMenu _TypeMenu; - public TypeMenu TypeMenu - { - get - { - return (_TypeMenu == null) ? _TypeMenu = new TypeMenu(base.XmlNode) : _TypeMenu; - } - } - private LazyLoad _ForeColor; - public string ForeColor - { - get - { - return LazyLoad(ref _ForeColor, "StepEditData/@ForeColor"); - } - } - private LazyLoad _BackColor; - public string BackColor - { - get - { - return LazyLoad(ref _BackColor, "StepEditData/@BackColor"); - } - } - private LazyLoad _AcTable; - public E_AccStep? AcTable - { - get - { - return LazyLoad(ref _AcTable, "StepEditData/@AcTable"); - } - } - private LazyLoad _Searchable; - public bool Searchable - { - get - { - return LazyLoad(ref _Searchable, "StepEditData/@Searchable"); - } - } - } - #endregion - #region TypeMenu - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TypeMenu : vlnFormatItem - { - public TypeMenu(XmlNode xmlNode) - : base(xmlNode) - { - } - private LazyLoad _InMenu; - public bool InMenu - { - get - { - return LazyLoad(ref _InMenu, "StepEditData/TypeMenu/@InMenu"); - } - } - private LazyLoad _RnoInMenu; - public bool RnoInMenu - { - get - { - return LazyLoad(ref _RnoInMenu, "StepEditData/TypeMenu/@RnoInMenu"); - } - } - private LazyLoad _MenuItem; - public string MenuItem - { - get - { - return LazyLoad(ref _MenuItem, "StepEditData/TypeMenu/@MenuItem"); - } - } - private LazyLoad _RnoMenuItem; - public string RnoMenuItem - { - get - { - return LazyLoad(ref _RnoMenuItem, "StepEditData/TypeMenu/@RnoMenuItem"); - } - } - private LazyLoad _NoChgReason; - public string NoChgReason - { - get - { - return LazyLoad(ref _NoChgReason, "StepEditData/TypeMenu/@NoChgReason"); - } - } - private LazyLoad _AlternateNameList; - public string AlternateNameList - { - get - { - return LazyLoad(ref _AlternateNameList, "StepEditData/TypeMenu/@AlternateNameList"); - } - } - } - #endregion - #region StepTab - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TabData : vlnFormatItem - { - public TabData(XmlNode xmlNode) - : base(xmlNode) - { - } - private LazyLoad _IdentEdit; - public string IdentEdit - { - get - { - return LazyLoad(ref _IdentEdit, "TabData/@IdentEdit"); - } - } - private LazyLoad _IdentPrint; - public string IdentPrint - { - get - { - return LazyLoad(ref _IdentPrint, "TabData/@Ident"); - } - } - private LazyLoad _IdentAltPrint; - public string IdentAltPrint - { - get - { - return LazyLoad(ref _IdentAltPrint, "TabData/@IdentAltPrint"); - } - } - private LazyLoad _RNOIdentEdit; - public string RNOIdentEdit - { - get - { - return LazyLoad(ref _RNOIdentEdit, "TabData/@RNOIdentEdit"); - } - } - private LazyLoad _RNOIdentPrint; - public string RNOIdentPrint - { - get - { - return LazyLoad(ref _RNOIdentPrint, "TabData/@RNOIdent"); - } - } - private LazyLoad _Justify; - public string Justify - { - get - { - return LazyLoad(ref _Justify, "TabData/@Justify"); - } - } - private LazyLoad _CheckOff; - public string CheckOff - { - get - { - return LazyLoad(ref _CheckOff, "TabData/@CheckOff"); - } - } - private LazyLoad _UsePreviousStyle; - public bool UsePreviousStyle - { - get - { - return LazyLoad(ref _UsePreviousStyle, "TabData/@UsePreviousStyle"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - XmlNode xn = vlnFormatDocument.LookupSingleStepNode(base.XmlNode, "TabData[Font]"); - return (_Font == null ? _Font = new VE_Font(xn) : _Font); - } - } - } - #endregion - #endregion - #region BoxDataAll - #region Box - [TypeConverter(typeof(ExpandableObjectConverter))] - public class Box : vlnFormatItem,IVlnIndexedFormatItem - { - public Box(XmlNode xmlNode) : base(xmlNode) { } - public Box() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _Start; - public int? Start - { - get - { - return LazyLoad(ref _Start, "@Start"); - } - } - private LazyLoad _End; - public int? End - { - get - { - return LazyLoad(ref _End, "@End"); - } - } - private LazyLoad _TxtStart; - public int? TxtStart - { - get - { - return LazyLoad(ref _TxtStart, "@TxtStart"); - } - } - private LazyLoad _TxtWidth; - public int? TxtWidth - { - get - { - return LazyLoad(ref _TxtWidth, "@TxtWidth"); - } - } - private LazyLoad _Height; - public int? Height - { - get - { - return LazyLoad(ref _Height, "@Height"); - } - } - private LazyLoad _TabPos; - public int? TabPos - { - get - { - return LazyLoad(ref _TabPos, "@TabPos"); - } - } - private LazyLoad _TxtRowAdj; - public int? TxtRowAdj - { - get - { - return LazyLoad(ref _TxtRowAdj, "@TxtRowAdj"); - } - } - private LazyLoad _BXURC; - public string BXURC - { - get - { - return LazyLoad(ref _BXURC, "@BXURC"); - } - } - private LazyLoad _BXHorz; - public string BXHorz - { - get - { - return LazyLoad(ref _BXHorz, "@BXHorz"); - } - } - private LazyLoad _BXULC; - public string BXULC - { - get - { - return LazyLoad(ref _BXULC, "@BXULC"); - } - } - private LazyLoad _BXVert; - public string BXVert - { - get - { - return LazyLoad(ref _BXVert, "@BXVert"); - } - } - private LazyLoad _BXMLS; - public string BXMLS - { - get - { - return LazyLoad(ref _BXMLS, "@BXMLS"); - } - } - private LazyLoad _BXMRS; - public string BXMRS - { - get - { - return LazyLoad(ref _BXMRS, "@BXMRS"); - } - } - private LazyLoad _BXLRC; - public string BXLRC - { - get - { - return LazyLoad(ref _BXLRC, "@BXLRC"); - } - } - private LazyLoad _BXLLC; - public string BXLLC - { - get - { - return LazyLoad(ref _BXLLC, "@BXLLC"); - } - } - private LazyLoad _BXMID; - public string BXMID - { - get - { - return LazyLoad(ref _BXMID, "@BXMID"); - } - } - private LazyLoad _BXLHorz; - public string BXLHorz - { - get - { - return LazyLoad(ref _BXLHorz, "@BXLHorz"); - } - } - private LazyLoad _BXUMID; - public string BXUMID - { - get - { - return LazyLoad(ref _BXUMID, "@BXUMID"); - } - } - private LazyLoad _BXLMID; - public string BXLMID - { - get - { - return LazyLoad(ref _BXLMID, "@BXLMID"); - } - } - private VE_Font _Font; - public VE_Font Font - { - get - { - return (_Font == null) ?_Font = new VE_Font(base.XmlNode):_Font; - } - } - public override string GetPDDisplayName() - { return string.Format("[{0}]", Index); } - public override string GetPDCategory() - { return "Box Definition"; } - public override string ToString() - { - return String.Format("{0}, {1}, {2}, {3}, {4}, {5}, {6}, {7}, {8}, {9}, {10}, {11}", - BXURC, BXHorz, BXULC, BXVert, BXMLS, BXMRS, BXLRC, BXLLC, BXMID, BXLHorz, BXUMID, BXLMID); - } - } - #endregion - #region BoxList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class BoxList : vlnIndexedFormatList - { - public BoxList(XmlNodeList xmlNodeList, IFormatOrFormatInfo myFormat) : base(xmlNodeList, myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.BoxList; - return null; - } - } - - } - #endregion - #endregion - #region TransDataAll - #region TransData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TransData : vlnFormatItem - { - private TransTypeList _TransTypeList; - public TransTypeList TransTypeList - { - get - { - return(_TransTypeList == null || _TransTypeList.Count==0)? _TransTypeList = new TransTypeList(SelectNodes("TransTypeData/TransTypes"),MyFormat): _TransTypeList; - } - } - public TransData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _DelimiterForTransitionTitle; - public string DelimiterForTransitionTitle - { - get - { - return LazyLoad(ref _DelimiterForTransitionTitle, "@DelimiterForTransitionTitle"); - } - } - private LazyLoad _StepSubstepDelimeter; - public string StepSubstepDelimeter - { - get - { - return LazyLoad(ref _StepSubstepDelimeter, "@StepSubstepDelimeter"); - } - } - private LazyLoad _ThroughString; - public string ThroughString - { - get - { - return LazyLoad(ref _ThroughString, "@ThroughString"); - } - } - private LazyLoad _SpecifiedSubstepsOnly; - public bool SpecifiedSubstepsOnly - { - get - { - return LazyLoad(ref _SpecifiedSubstepsOnly, "@SpecifiedSubstepsOnly"); - } - } - private LazyLoad _CapsTransitions; - public bool CapsTransitions - { - get - { - return LazyLoad(ref _CapsTransitions, "@CapsTransitions"); - } - } - private LazyLoad _CapTranStep; - public bool CapTranStep - { - get - { - return LazyLoad(ref _CapTranStep, "@CapTranStep"); - } - } - private LazyLoad _TStepNoFlag; - public bool TStepNoFlag - { - get - { - return LazyLoad(ref _TStepNoFlag, "@TStepNoFlag"); - } - } - private LazyLoad _LowerCaseTranNumber; - public bool LowerCaseTranNumber - { - get - { - return LazyLoad(ref _LowerCaseTranNumber, "@LowerCaseTranNumber"); - } - } - private LazyLoad _UpcaseTranAnd; - public bool UpcaseTranAnd - { - get - { - return LazyLoad(ref _UpcaseTranAnd, "@UpcaseTranAnd"); - } - } - private LazyLoad _SuppressAndInTran; - public bool SuppressAndInTran - { - get - { - return LazyLoad(ref _SuppressAndInTran, "@SuppressAndInTran"); - } - } - private LazyLoad _Cap1stCharTrans; - public bool Cap1stCharTrans - { - get - { - return LazyLoad(ref _Cap1stCharTrans, "@Cap1stCharTrans"); - } - } - private LazyLoad _UseTransitionModifier; - public bool UseTransitionModifier - { - get - { - return LazyLoad(ref _UseTransitionModifier, "@UseTransitionModifier"); - } - } - private LazyLoad _UseSecTitles; - public bool UseSecTitles - { - get - { - return LazyLoad(ref _UseSecTitles, "@UseSecTitles"); - } - } - private LazyLoad _HardSpTranProcNumb; - public bool HardSpTranProcNumb - { - get - { - return LazyLoad(ref _HardSpTranProcNumb, "@HardSpTranProcNumb"); - } - } - private LazyLoad _XchngTranSpForHard; - public bool XchngTranSpForHard - { - get - { - return LazyLoad(ref _XchngTranSpForHard, "@XchngTranSpForHard"); - } - } - private LazyLoad _AbsoluteTransitionUpdate; - public bool AbsoluteTransitionUpdate - { - get - { - return LazyLoad(ref _AbsoluteTransitionUpdate, "@AbsoluteTransitionUpdate"); - } - } - private LazyLoad _LowerCaseStepInTran; - public bool LowerCaseStepInTran - { - get - { - return LazyLoad(ref _LowerCaseStepInTran, "@LowerCaseStepInTran"); - } - } - } - #endregion - #region TransType - [TypeConverter(typeof(ExpandableObjectConverter))] - public class TransType : vlnFormatItem,IVlnIndexedFormatItem - { - public TransType(XmlNode xmlNode) : base(xmlNode) { } - public TransType() : base() { } - private LazyLoad _Index; - public int? Index - { - get - { - return LazyLoad(ref _Index, "@Index"); - } - } - private LazyLoad _Type; - public int? Type - { - get - { - return LazyLoad(ref _Type, "@TransType"); - } - } - private LazyLoad _TransFormat; - public string TransFormat - { - get - { - return LazyLoad(ref _TransFormat, "@TransFormat"); - } - } - private LazyLoad _TransUI; - public E_TransUI? TransUI - { - get - { - return LazyLoad(ref _TransUI, "@TransUI"); - } - } - private LazyLoad _TransMenu; - public string TransMenu - { - get - { - return LazyLoad(ref _TransMenu, "@TransMenu"); - } - } - public override string GetPDDisplayName() - { return string.Format("[{0}] - Type {1}", Index, Type); } - public override string GetPDCategory() - { return "Transition Type Data"; } - public override string ToString() - { - return string.Format("{0} - {1}",TransFormat, TransMenu); - } - } - #endregion - #region TransTypeList - [TypeConverter(typeof(vlnIndexedListConverter))] - public class TransTypeList : vlnIndexedFormatList - { - public TransTypeList(XmlNodeList xmlNodeList, IFormatOrFormatInfo myFormat) : base(xmlNodeList,myFormat) { } - public override vlnIndexedFormatList InheritedList - { - get - { - IFormatOrFormatInfo parentFormat = MyFormat.MyIParent; - if (parentFormat != null) - return parentFormat.PlantFormat.FormatData.TransData.TransTypeList; - return null; - } - } - } - #endregion - #region RoData - [TypeConverter(typeof(ExpandableObjectConverter))] - public class RoData : vlnFormatItem - { - public RoData(XmlNode xmlNode) : base(xmlNode) { } - private LazyLoad _AllUnits; - public bool AllUnits - { - get - { - return LazyLoad(ref _AllUnits, "@AllUnits"); - } - } - private LazyLoad _UpRoAftrDash; - public bool UpRoAftrDash - { - get - { - return LazyLoad(ref _UpRoAftrDash, "@UpRoAftrDash"); - } - } - private LazyLoad _UpcaseAllRoUnits; - public bool UpcaseAllRoUnits - { - get - { - return LazyLoad(ref _UpcaseAllRoUnits, "@UpcaseAllRoUnits"); - } - } - private LazyLoad _CapHighRo; - public bool CapHighRo - { - get - { - return LazyLoad(ref _CapHighRo, "@CapHighRo"); - } - } - private LazyLoad _CapRoIfLastLower; - public bool CapRoIfLastLower - { - get - { - return LazyLoad(ref _CapRoIfLastLower, "@CapRoIfLastLower"); - } - } - private LazyLoad _UpRoIfPrevUpper; - public bool UpRoIfPrevUpper - { - get - { - return LazyLoad(ref _UpRoIfPrevUpper, "@UpRoIfPrevUpper"); - } - } - private LazyLoad _UnderlineRo; - public bool UnderlineRo - { - get - { - return LazyLoad(ref _UnderlineRo, "@UnderlineRo"); - } - } - } - #endregion - #endregion - #region SupportClasses - public class StepDataRetval - { - private string _Name; - public string Name - { - get { return _Name; } - set { _Name = value; } - } - private int _Index; - public int Index - { - get { return _Index; } - set { _Index = value; } - } - public StepDataRetval(string name, int index) - { - Name = name; - Index = index; - } - } - #endregion -} - diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of AnnotationAudit.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Copy of AnnotationAudit.cs deleted file mode 100644 index fe11cf1e..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of AnnotationAudit.cs +++ /dev/null @@ -1,1071 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// AnnotationAudit Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AnnotationAuditConverter))] - public partial class AnnotationAudit : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshAnnotationAudits = new List(); - private void AddToRefreshList(List refreshAnnotationAudits) - { - if (IsDirty) - refreshAnnotationAudits.Add(this); - } - private void BuildRefreshList() - { - _RefreshAnnotationAudits = new List(); - AddToRefreshList(_RefreshAnnotationAudits); - } - private void ProcessRefreshList() - { - foreach (AnnotationAudit tmp in _RefreshAnnotationAudits) - { - AnnotationAuditInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(AnnotationAudit annotationAudit) - { - if (!_CacheList.Contains(annotationAudit)) _CacheList.Add(annotationAudit); // In AddToCache - } - protected static void RemoveFromCache(AnnotationAudit annotationAudit) - { - while (_CacheList.Contains(annotationAudit)) _CacheList.Remove(annotationAudit); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move AnnotationAudit(s) from temporary _CacheList to _CacheByPrimaryKey - { - AnnotationAudit tmp = _CacheList[0]; // Get the first AnnotationAudit - string pKey = tmp.AuditID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first AnnotationAudit - } - } - protected static AnnotationAudit GetCachedByPrimaryKey(long auditID) - { - ConvertListToDictionary(); - string key = auditID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextAuditID = -1; - public static int NextAuditID - { - get { return _nextAuditID--; } - } - private long _AuditID; - [System.ComponentModel.DataObjectField(true, true)] - public long AuditID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AuditID; - } - } - private int _AnnotationID; - public int AnnotationID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AnnotationID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_AnnotationID != value) - { - _AnnotationID = value; - PropertyHasChanged(); - } - } - } - private int _ItemID; - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ItemID != value) - { - _ItemID = value; - PropertyHasChanged(); - } - } - } - private int _TypeID; - public int TypeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TypeID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_TypeID != value) - { - _TypeID = value; - PropertyHasChanged(); - } - } - } - private string _RtfText = string.Empty; - public string RtfText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RtfText; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_RtfText != value) - { - _RtfText = value; - PropertyHasChanged(); - } - } - } - private string _SearchText = string.Empty; - public string SearchText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _SearchText; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_SearchText != value) - { - _SearchText = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private int _DeleteStatus; - public int DeleteStatus - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DeleteStatus; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DeleteStatus != value) - { - _DeleteStatus = value; - PropertyHasChanged(); - } - } - } - public override bool IsDirty - { - get { return base.IsDirty; } - } - public bool IsDirtyList(List list) - { - return base.IsDirty; - } - public override bool IsValid - { - get { return (IsNew && !IsDirty) ? true : base.IsValid; } - } - public bool IsValidList(List list) - { - return (IsNew && !IsDirty) ? true : base.IsValid; - } - // CSLATODO: Replace base AnnotationAudit.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current AnnotationAudit - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check AnnotationAudit.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 AnnotationAudit - protected override object GetIdValue() - { - return MyAnnotationAuditUnique; // Absolutely Unique ID - } - #endregion - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - { - get - { - if (_CheckingBrokenRules) return null; - if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null; - 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("RtfText", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("SearchText", 1073741823)); - 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", 200)); - //ValidationRules.AddDependantProperty("x", "y"); - _AnnotationAuditExtension.AddValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _AnnotationAuditExtension.AddInstanceValidationRules(ValidationRules); - // CSLATODO: 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() - { - //CSLATODO: Who can read/write which fields - //AuthorizationRules.AllowRead(AuditID, ""); - //AuthorizationRules.AllowRead(AnnotationID, ""); - //AuthorizationRules.AllowRead(ItemID, ""); - //AuthorizationRules.AllowRead(TypeID, ""); - //AuthorizationRules.AllowRead(RtfText, ""); - //AuthorizationRules.AllowRead(SearchText, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowRead(DeleteStatus, ""); - //AuthorizationRules.AllowWrite(AnnotationID, ""); - //AuthorizationRules.AllowWrite(ItemID, ""); - //AuthorizationRules.AllowWrite(TypeID, ""); - //AuthorizationRules.AllowWrite(RtfText, ""); - //AuthorizationRules.AllowWrite(SearchText, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - //AuthorizationRules.AllowWrite(DeleteStatus, ""); - _AnnotationAuditExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //CSLATODO: Who can read/write which fields - _AnnotationAuditExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // CSLATODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // CSLATODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // CSLATODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // CSLATODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _AnnotationAuditUnique = 0; - protected static int AnnotationAuditUnique - { get { return ++_AnnotationAuditUnique; } } - private int _MyAnnotationAuditUnique = AnnotationAuditUnique; - public int MyAnnotationAuditUnique // Absolutely Unique ID - Editable - { get { return _MyAnnotationAuditUnique; } } - protected AnnotationAudit() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(AuditID.ToString())) - { - List listAnnotationAudit = _CacheByPrimaryKey[AuditID.ToString()]; // Get the list of items - while (listAnnotationAudit.Contains(this)) listAnnotationAudit.Remove(this); // Remove the item from the list - if (listAnnotationAudit.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(AuditID.ToString()); // remove the list - } - } - public static AnnotationAudit New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a AnnotationAudit"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationAudit.New", ex); - } - } - public static AnnotationAudit New(int annotationID, int itemID, int typeID, DateTime dts, string userID, int deleteStatus) - { - AnnotationAudit tmp = AnnotationAudit.New(); - tmp.AnnotationID = annotationID; - tmp.ItemID = itemID; - tmp.TypeID = typeID; - tmp.DTS = dts; - tmp.UserID = userID; - tmp.DeleteStatus = deleteStatus; - return tmp; - } - public static AnnotationAudit New(int annotationID, int itemID, int typeID, string rtfText, string searchText, string config, DateTime dts, string userID, int deleteStatus) - { - AnnotationAudit tmp = AnnotationAudit.New(); - tmp.AnnotationID = annotationID; - tmp.ItemID = itemID; - tmp.TypeID = typeID; - tmp.RtfText = rtfText; - tmp.SearchText = searchText; - tmp.Config = config; - tmp.DTS = dts; - tmp.UserID = userID; - tmp.DeleteStatus = deleteStatus; - return tmp; - } - public static AnnotationAudit MakeAnnotationAudit(int annotationID, int itemID, int typeID, string rtfText, string searchText, string config, DateTime dts, string userID, int deleteStatus) - { - AnnotationAudit tmp = AnnotationAudit.New(annotationID, itemID, typeID, rtfText, searchText, config, dts, userID, deleteStatus); - if (tmp.IsSavable) - { - AnnotationAudit 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 AnnotationAudit Get(long auditID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a AnnotationAudit"); - try - { - AnnotationAudit tmp = GetCachedByPrimaryKey(auditID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(auditID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up AnnotationAudit - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationAudit.Get", ex); - } - } - public static AnnotationAudit Get(SafeDataReader dr) - { - if (dr.Read()) return new AnnotationAudit(dr); - return null; - } - internal AnnotationAudit(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(long auditID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a AnnotationAudit"); - try - { - DataPortal.Delete(new PKCriteria(auditID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationAudit.Delete", ex); - } - } - public override AnnotationAudit Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a AnnotationAudit"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a AnnotationAudit"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a AnnotationAudit"); - try - { - BuildRefreshList(); - AnnotationAudit annotationAudit = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(annotationAudit);//Refresh the item in AllList - ProcessRefreshList(); - return annotationAudit; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private long _AuditID; - public long AuditID - { get { return _AuditID; } } - public PKCriteria(long auditID) - { - _AuditID = auditID; - } - } - // CSLATODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _AuditID = NextAuditID; - // Database Defaults - - // CSLATODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAudit.ReadData", GetHashCode()); - try - { - _AuditID = dr.GetInt64("AuditID"); - _AnnotationID = dr.GetInt32("AnnotationID"); - _ItemID = dr.GetInt32("ItemID"); - _TypeID = dr.GetInt32("TypeID"); - _RtfText = dr.GetString("RtfText"); - _SearchText = dr.GetString("SearchText"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _DeleteStatus = dr.GetInt32("DeleteStatus"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAudit.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationAudit.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAudit.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 = "getAnnotationAudit"; - cm.Parameters.AddWithValue("@AuditID", criteria.AuditID); - 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("AnnotationAudit.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationAudit.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("AnnotationAudit.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationAudit.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAudit.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addAnnotationAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@AnnotationID", _AnnotationID); - cm.Parameters.AddWithValue("@ItemID", _ItemID); - cm.Parameters.AddWithValue("@TypeID", _TypeID); - cm.Parameters.AddWithValue("@RtfText", _RtfText); - cm.Parameters.AddWithValue("@SearchText", _SearchText); - 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("@DeleteStatus", _DeleteStatus); - // Output Calculated Columns - SqlParameter param_AuditID = new SqlParameter("@newAuditID", SqlDbType.BigInt); - param_AuditID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AuditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _AuditID = (long)cm.Parameters["@newAuditID"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAudit.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAudit.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationAudit.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Add(SqlConnection cn, ref long auditID, int annotationID, int itemID, int typeID, string rtfText, string searchText, string config, DateTime dts, string userID, int deleteStatus) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAudit.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addAnnotationAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@AnnotationID", annotationID); - cm.Parameters.AddWithValue("@ItemID", itemID); - cm.Parameters.AddWithValue("@TypeID", typeID); - cm.Parameters.AddWithValue("@RtfText", rtfText); - cm.Parameters.AddWithValue("@SearchText", searchText); - 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("@DeleteStatus", deleteStatus); - // Output Calculated Columns - SqlParameter param_AuditID = new SqlParameter("@newAuditID", SqlDbType.BigInt); - param_AuditID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AuditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - auditID = (long)cm.Parameters["@newAuditID"].Value; - // No Timestamp value to return - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAudit.Add", ex); - throw new DbCslaException("AnnotationAudit.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}] AnnotationAudit.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("AnnotationAudit.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}] AnnotationAudit.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateAnnotationAudit"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@AuditID", _AuditID); - cm.Parameters.AddWithValue("@AnnotationID", _AnnotationID); - cm.Parameters.AddWithValue("@ItemID", _ItemID); - cm.Parameters.AddWithValue("@TypeID", _TypeID); - cm.Parameters.AddWithValue("@RtfText", _RtfText); - cm.Parameters.AddWithValue("@SearchText", _SearchText); - 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("@DeleteStatus", _DeleteStatus); - // Output Calculated Columns - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAudit.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) - AnnotationAudit.Add(cn, ref _AuditID, _AnnotationID, _ItemID, _TypeID, _RtfText, _SearchText, _Config, _DTS, _UserID, _DeleteStatus); - else - AnnotationAudit.Update(cn, ref _AuditID, _AnnotationID, _ItemID, _TypeID, _RtfText, _SearchText, _Config, _DTS, _UserID, _DeleteStatus); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Update(SqlConnection cn, ref long auditID, int annotationID, int itemID, int typeID, string rtfText, string searchText, string config, DateTime dts, string userID, int deleteStatus) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAudit.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateAnnotationAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@AuditID", auditID); - cm.Parameters.AddWithValue("@AnnotationID", annotationID); - cm.Parameters.AddWithValue("@ItemID", itemID); - cm.Parameters.AddWithValue("@TypeID", typeID); - cm.Parameters.AddWithValue("@RtfText", rtfText); - cm.Parameters.AddWithValue("@SearchText", searchText); - 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("@DeleteStatus", deleteStatus); - // Output Calculated Columns - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - // No Timestamp value to return - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAudit.Update", ex); - throw new DbCslaException("AnnotationAudit.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_AuditID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAudit.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAnnotationAudit"; - cm.Parameters.AddWithValue("@AuditID", criteria.AuditID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAudit.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationAudit.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, long auditID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAudit.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAnnotationAudit"; - // Input PK Fields - cm.Parameters.AddWithValue("@AuditID", auditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAudit.Remove", ex); - throw new DbCslaException("AnnotationAudit.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(long auditID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(auditID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationAudit.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private long _AuditID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(long auditID) - { - _AuditID = auditID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAudit.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsAnnotationAudit"; - cm.Parameters.AddWithValue("@AuditID", _AuditID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAudit.DataPortal_Execute", ex); - throw new DbCslaException("AnnotationAudit.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - AnnotationAuditExtension _AnnotationAuditExtension = new AnnotationAuditExtension(); - [Serializable()] - partial class AnnotationAuditExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - // 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 AnnotationAuditConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AnnotationAudit) - { - // Return the ToString value - return ((AnnotationAudit)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create AnnotationAuditExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class AnnotationAudit -// { -// partial class AnnotationAuditExtension : extensionBase -// { -// // CSLATODO: Override automatic defaults -// 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/Copy of AnnotationAuditInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Copy of AnnotationAuditInfo.cs deleted file mode 100644 index 9bbfd86d..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of AnnotationAuditInfo.cs +++ /dev/null @@ -1,384 +0,0 @@ -// ======================================================================== -// 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 AnnotationAuditInfoEvent(object sender); - /// - /// AnnotationAuditInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AnnotationAuditInfoConverter))] - public partial class AnnotationAuditInfo : ReadOnlyBase, IDisposable - { - public event AnnotationAuditInfoEvent 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(AnnotationAuditInfo annotationAuditInfo) - { - if (!_CacheList.Contains(annotationAuditInfo)) _CacheList.Add(annotationAuditInfo); // In AddToCache - } - protected static void RemoveFromCache(AnnotationAuditInfo annotationAuditInfo) - { - while (_CacheList.Contains(annotationAuditInfo)) _CacheList.Remove(annotationAuditInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move AnnotationAuditInfo(s) from temporary _CacheList to _CacheByPrimaryKey - { - AnnotationAuditInfo tmp = _CacheList[0]; // Get the first AnnotationAuditInfo - string pKey = tmp.AuditID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first AnnotationAuditInfo - } - } - internal static void AddList(AnnotationAuditInfoList lst) - { - foreach (AnnotationAuditInfo item in lst) AddToCache(item); - } - protected static AnnotationAuditInfo GetCachedByPrimaryKey(long auditID) - { - ConvertListToDictionary(); - string key = auditID.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 AnnotationAudit _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private long _AuditID; - [System.ComponentModel.DataObjectField(true, true)] - public long AuditID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AuditID; - } - } - private int _AnnotationID; - public int AnnotationID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AnnotationID; - } - } - private int _ItemID; - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemID; - } - } - private int _TypeID; - public int TypeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TypeID; - } - } - private string _RtfText = string.Empty; - public string RtfText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RtfText; - } - } - private string _SearchText = string.Empty; - public string SearchText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _SearchText; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _DeleteStatus; - public int DeleteStatus - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DeleteStatus; - } - } - // CSLATODO: Replace base AnnotationAuditInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current AnnotationAuditInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check AnnotationAuditInfo.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 AnnotationAuditInfo - protected override object GetIdValue() - { - return MyAnnotationAuditInfoUnique; // Absolutely Unique ID - } - #endregion - #region Factory Methods - private static int _AnnotationAuditInfoUnique = 0; - private static int AnnotationAuditInfoUnique - { get { return ++_AnnotationAuditInfoUnique; } } - private int _MyAnnotationAuditInfoUnique = AnnotationAuditInfoUnique; - public int MyAnnotationAuditInfoUnique // Absolutely Unique ID - Info - { get { return _MyAnnotationAuditInfoUnique; } } - protected AnnotationAuditInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(AuditID.ToString())) return; - List listAnnotationAuditInfo = _CacheByPrimaryKey[AuditID.ToString()]; // Get the list of items - while (listAnnotationAuditInfo.Contains(this)) listAnnotationAuditInfo.Remove(this); // Remove the item from the list - if (listAnnotationAuditInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(AuditID.ToString()); // remove the list - } - public virtual AnnotationAudit Get() - { - return _Editable = AnnotationAudit.Get(_AuditID); - } - public static void Refresh(AnnotationAudit tmp) - { - string key = tmp.AuditID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (AnnotationAuditInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(AnnotationAudit tmp) - { - _AnnotationID = tmp.AnnotationID; - _ItemID = tmp.ItemID; - _TypeID = tmp.TypeID; - _RtfText = tmp.RtfText; - _SearchText = tmp.SearchText; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DeleteStatus = tmp.DeleteStatus; - _AnnotationAuditInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static AnnotationAuditInfo Get(long auditID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a AnnotationAudit"); - try - { - AnnotationAuditInfo tmp = GetCachedByPrimaryKey(auditID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(auditID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up AnnotationAuditInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationAuditInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal AnnotationAuditInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAuditInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAuditInfo.Constructor", ex); - throw new DbCslaException("AnnotationAuditInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private long _AuditID; - public long AuditID - { get { return _AuditID; } } - public PKCriteria(long auditID) - { - _AuditID = auditID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAuditInfo.ReadData", GetHashCode()); - try - { - _AuditID = dr.GetInt64("AuditID"); - _AnnotationID = dr.GetInt32("AnnotationID"); - _ItemID = dr.GetInt32("ItemID"); - _TypeID = dr.GetInt32("TypeID"); - _RtfText = dr.GetString("RtfText"); - _SearchText = dr.GetString("SearchText"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _DeleteStatus = dr.GetInt32("DeleteStatus"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAuditInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationAuditInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAuditInfo.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 = "getAnnotationAudit"; - cm.Parameters.AddWithValue("@AuditID", criteria.AuditID); - 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("AnnotationAuditInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationAuditInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - AnnotationAuditInfoExtension _AnnotationAuditInfoExtension = new AnnotationAuditInfoExtension(); - [Serializable()] - partial class AnnotationAuditInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(AnnotationAuditInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class AnnotationAuditInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AnnotationAuditInfo) - { - // Return the ToString value - return ((AnnotationAuditInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of AnnotationAuditInfoList.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Copy of AnnotationAuditInfoList.cs deleted file mode 100644 index ccd56d4d..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of AnnotationAuditInfoList.cs +++ /dev/null @@ -1,205 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// AnnotationAuditInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AnnotationAuditInfoListConverter))] - public partial class AnnotationAuditInfoList : 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 (AnnotationAuditInfo tmp in this) - { - tmp.Changed += new AnnotationAuditInfoEvent(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 (AnnotationAuditInfo tmp in this) - { - tmp.Changed -= new AnnotationAuditInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static AnnotationAuditInfoList _AnnotationAuditInfoList = null; - /// - /// Return a list of all AnnotationAuditInfo. - /// - public static AnnotationAuditInfoList Get() - { - try - { - if (_AnnotationAuditInfoList != null) - return _AnnotationAuditInfoList; - AnnotationAuditInfoList tmp = DataPortal.Fetch(); - AnnotationAuditInfo.AddList(tmp); - tmp.AddEvents(); - _AnnotationAuditInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationAuditInfoList.Get", ex); - } - } - /// - /// Reset the list of all AnnotationAuditInfo. - /// - public static void Reset() - { - _AnnotationAuditInfoList = null; - } - // CSLATODO: Add alternative gets - - //public static AnnotationAuditInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on AnnotationAuditInfoList.Get", ex); - // } - //} - private AnnotationAuditInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAnnotationAudits"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new AnnotationAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("AnnotationAuditInfoList.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 - AnnotationAuditInfoListPropertyDescriptor pd = new AnnotationAuditInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class AnnotationAuditInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private AnnotationAuditInfo Item { get { return (AnnotationAuditInfo)_Item; } } - public AnnotationAuditInfoListPropertyDescriptor(AnnotationAuditInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class AnnotationAuditInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AnnotationAuditInfoList) - { - // Return department and department role separated by comma. - return ((AnnotationAuditInfoList)value).Items.Count.ToString() + " AnnotationAudits"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of ContentAudit.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Copy of ContentAudit.cs deleted file mode 100644 index 3fcd5f44..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of ContentAudit.cs +++ /dev/null @@ -1,1016 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentAudit Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentAuditConverter))] - public partial class ContentAudit : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshContentAudits = new List(); - private void AddToRefreshList(List refreshContentAudits) - { - if (IsDirty) - refreshContentAudits.Add(this); - } - private void BuildRefreshList() - { - _RefreshContentAudits = new List(); - AddToRefreshList(_RefreshContentAudits); - } - private void ProcessRefreshList() - { - foreach (ContentAudit tmp in _RefreshContentAudits) - { - ContentAuditInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(ContentAudit contentAudit) - { - if (!_CacheList.Contains(contentAudit)) _CacheList.Add(contentAudit); // In AddToCache - } - protected static void RemoveFromCache(ContentAudit contentAudit) - { - while (_CacheList.Contains(contentAudit)) _CacheList.Remove(contentAudit); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move ContentAudit(s) from temporary _CacheList to _CacheByPrimaryKey - { - ContentAudit tmp = _CacheList[0]; // Get the first ContentAudit - string pKey = tmp.AuditID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first ContentAudit - } - } - protected static ContentAudit GetCachedByPrimaryKey(long auditID) - { - ConvertListToDictionary(); - string key = auditID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextAuditID = -1; - public static int NextAuditID - { - get { return _nextAuditID--; } - } - private long _AuditID; - [System.ComponentModel.DataObjectField(true, true)] - public long AuditID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AuditID; - } - } - private int _ContentID; - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ContentID != value) - { - _ContentID = value; - PropertyHasChanged(); - } - } - } - private string _Number = string.Empty; - public string Number - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Number; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Number != value) - { - _Number = value; - PropertyHasChanged(); - } - } - } - private string _Text = string.Empty; - public string Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Text; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Text != value) - { - _Text = value; - PropertyHasChanged(); - } - } - } - private int? _Type; - public int? Type - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Type; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_Type != value) - { - _Type = value; - PropertyHasChanged(); - } - } - } - private int? _FormatID; - public int? FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FormatID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_FormatID != value) - { - _FormatID = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private int _DeleteStatus; - public int DeleteStatus - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DeleteStatus; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DeleteStatus != value) - { - _DeleteStatus = value; - PropertyHasChanged(); - } - } - } - public override bool IsDirty - { - get { return base.IsDirty; } - } - public bool IsDirtyList(List list) - { - return base.IsDirty; - } - public override bool IsValid - { - get { return (IsNew && !IsDirty) ? true : base.IsValid; } - } - public bool IsValidList(List list) - { - return (IsNew && !IsDirty) ? true : base.IsValid; - } - // CSLATODO: Replace base ContentAudit.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ContentAudit - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check ContentAudit.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 ContentAudit - protected override object GetIdValue() - { - return MyContentAuditUnique; // Absolutely Unique ID - } - #endregion - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - { - get - { - if (_CheckingBrokenRules) return null; - if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null; - 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("Number", 512)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Text", 1073741823)); - 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", 200)); - //ValidationRules.AddDependantProperty("x", "y"); - _ContentAuditExtension.AddValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _ContentAuditExtension.AddInstanceValidationRules(ValidationRules); - // CSLATODO: 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() - { - //CSLATODO: Who can read/write which fields - //AuthorizationRules.AllowRead(AuditID, ""); - //AuthorizationRules.AllowRead(ContentID, ""); - //AuthorizationRules.AllowRead(Number, ""); - //AuthorizationRules.AllowRead(Text, ""); - //AuthorizationRules.AllowRead(Type, ""); - //AuthorizationRules.AllowRead(FormatID, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowRead(DeleteStatus, ""); - //AuthorizationRules.AllowWrite(ContentID, ""); - //AuthorizationRules.AllowWrite(Number, ""); - //AuthorizationRules.AllowWrite(Text, ""); - //AuthorizationRules.AllowWrite(Type, ""); - //AuthorizationRules.AllowWrite(FormatID, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - //AuthorizationRules.AllowWrite(DeleteStatus, ""); - _ContentAuditExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //CSLATODO: Who can read/write which fields - _ContentAuditExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // CSLATODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // CSLATODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // CSLATODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // CSLATODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _ContentAuditUnique = 0; - protected static int ContentAuditUnique - { get { return ++_ContentAuditUnique; } } - private int _MyContentAuditUnique = ContentAuditUnique; - public int MyContentAuditUnique // Absolutely Unique ID - Editable - { get { return _MyContentAuditUnique; } } - protected ContentAudit() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(AuditID.ToString())) - { - List listContentAudit = _CacheByPrimaryKey[AuditID.ToString()]; // Get the list of items - while (listContentAudit.Contains(this)) listContentAudit.Remove(this); // Remove the item from the list - if (listContentAudit.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(AuditID.ToString()); // remove the list - } - } - public static ContentAudit New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a ContentAudit"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAudit.New", ex); - } - } - public static ContentAudit New(int contentID, DateTime dts, string userID, int deleteStatus) - { - ContentAudit tmp = ContentAudit.New(); - tmp.ContentID = contentID; - tmp.DTS = dts; - tmp.UserID = userID; - tmp.DeleteStatus = deleteStatus; - return tmp; - } - public static ContentAudit New(int contentID, string number, string text, int? type, int? formatID, string config, DateTime dts, string userID, int deleteStatus) - { - ContentAudit tmp = ContentAudit.New(); - tmp.ContentID = contentID; - tmp.Number = number; - tmp.Text = text; - tmp.Type = type; - tmp.FormatID = formatID; - tmp.Config = config; - tmp.DTS = dts; - tmp.UserID = userID; - tmp.DeleteStatus = deleteStatus; - return tmp; - } - public static ContentAudit MakeContentAudit(int contentID, string number, string text, int? type, int? formatID, string config, DateTime dts, string userID, int deleteStatus) - { - ContentAudit tmp = ContentAudit.New(contentID, number, text, type, formatID, config, dts, userID, deleteStatus); - if (tmp.IsSavable) - { - ContentAudit 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 ContentAudit Get(long auditID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a ContentAudit"); - try - { - ContentAudit tmp = GetCachedByPrimaryKey(auditID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(auditID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ContentAudit - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAudit.Get", ex); - } - } - public static ContentAudit Get(SafeDataReader dr) - { - if (dr.Read()) return new ContentAudit(dr); - return null; - } - internal ContentAudit(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(long auditID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a ContentAudit"); - try - { - DataPortal.Delete(new PKCriteria(auditID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAudit.Delete", ex); - } - } - public override ContentAudit Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a ContentAudit"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a ContentAudit"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a ContentAudit"); - try - { - BuildRefreshList(); - ContentAudit contentAudit = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(contentAudit);//Refresh the item in AllList - ProcessRefreshList(); - return contentAudit; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private long _AuditID; - public long AuditID - { get { return _AuditID; } } - public PKCriteria(long auditID) - { - _AuditID = auditID; - } - } - // CSLATODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _AuditID = NextAuditID; - // Database Defaults - - // CSLATODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAudit.ReadData", GetHashCode()); - try - { - _AuditID = dr.GetInt64("AuditID"); - _ContentID = dr.GetInt32("ContentID"); - _Number = dr.GetString("Number"); - _Text = dr.GetString("Text"); - _Type = (int?)dr.GetValue("Type"); - _FormatID = (int?)dr.GetValue("FormatID"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _DeleteStatus = dr.GetInt32("DeleteStatus"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAudit.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ContentAudit.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAudit.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 = "getContentAudit"; - cm.Parameters.AddWithValue("@AuditID", criteria.AuditID); - 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("ContentAudit.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ContentAudit.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("ContentAudit.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ContentAudit.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAudit.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addContentAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", _ContentID); - cm.Parameters.AddWithValue("@Number", _Number); - cm.Parameters.AddWithValue("@Text", _Text); - cm.Parameters.AddWithValue("@Type", _Type); - cm.Parameters.AddWithValue("@FormatID", _FormatID); - 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("@DeleteStatus", _DeleteStatus); - // Output Calculated Columns - SqlParameter param_AuditID = new SqlParameter("@newAuditID", SqlDbType.BigInt); - param_AuditID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AuditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _AuditID = (long)cm.Parameters["@newAuditID"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAudit.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAudit.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ContentAudit.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Add(SqlConnection cn, ref long auditID, int contentID, string number, string text, int? type, int? formatID, string config, DateTime dts, string userID, int deleteStatus) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAudit.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addContentAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", contentID); - cm.Parameters.AddWithValue("@Number", number); - cm.Parameters.AddWithValue("@Text", text); - cm.Parameters.AddWithValue("@Type", type); - cm.Parameters.AddWithValue("@FormatID", formatID); - 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("@DeleteStatus", deleteStatus); - // Output Calculated Columns - SqlParameter param_AuditID = new SqlParameter("@newAuditID", SqlDbType.BigInt); - param_AuditID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AuditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - auditID = (long)cm.Parameters["@newAuditID"].Value; - // No Timestamp value to return - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAudit.Add", ex); - throw new DbCslaException("ContentAudit.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}] ContentAudit.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("ContentAudit.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}] ContentAudit.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateContentAudit"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@AuditID", _AuditID); - cm.Parameters.AddWithValue("@ContentID", _ContentID); - cm.Parameters.AddWithValue("@Number", _Number); - cm.Parameters.AddWithValue("@Text", _Text); - cm.Parameters.AddWithValue("@Type", _Type); - cm.Parameters.AddWithValue("@FormatID", _FormatID); - 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("@DeleteStatus", _DeleteStatus); - // Output Calculated Columns - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAudit.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) - ContentAudit.Add(cn, ref _AuditID, _ContentID, _Number, _Text, _Type, _FormatID, _Config, _DTS, _UserID, _DeleteStatus); - else - ContentAudit.Update(cn, ref _AuditID, _ContentID, _Number, _Text, _Type, _FormatID, _Config, _DTS, _UserID, _DeleteStatus); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Update(SqlConnection cn, ref long auditID, int contentID, string number, string text, int? type, int? formatID, string config, DateTime dts, string userID, int deleteStatus) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAudit.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateContentAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@AuditID", auditID); - cm.Parameters.AddWithValue("@ContentID", contentID); - cm.Parameters.AddWithValue("@Number", number); - cm.Parameters.AddWithValue("@Text", text); - cm.Parameters.AddWithValue("@Type", type); - cm.Parameters.AddWithValue("@FormatID", formatID); - 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("@DeleteStatus", deleteStatus); - // Output Calculated Columns - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - // No Timestamp value to return - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAudit.Update", ex); - throw new DbCslaException("ContentAudit.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_AuditID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAudit.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteContentAudit"; - cm.Parameters.AddWithValue("@AuditID", criteria.AuditID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAudit.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ContentAudit.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, long auditID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAudit.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteContentAudit"; - // Input PK Fields - cm.Parameters.AddWithValue("@AuditID", auditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAudit.Remove", ex); - throw new DbCslaException("ContentAudit.Remove", ex); - } - } - #endregion - // Standard Default Code - #region extension - ContentAuditExtension _ContentAuditExtension = new ContentAuditExtension(); - [Serializable()] - partial class ContentAuditExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - // 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 ContentAuditConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentAudit) - { - // Return the ToString value - return ((ContentAudit)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ContentAuditExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ContentAudit -// { -// partial class ContentAuditExtension : extensionBase -// { -// // CSLATODO: Override automatic defaults -// 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/Copy of ContentAuditInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Copy of ContentAuditInfo.cs deleted file mode 100644 index 68303647..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of ContentAuditInfo.cs +++ /dev/null @@ -1,384 +0,0 @@ -// ======================================================================== -// 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 ContentAuditInfoEvent(object sender); - /// - /// ContentAuditInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentAuditInfoConverter))] - public partial class ContentAuditInfo : ReadOnlyBase, IDisposable - { - public event ContentAuditInfoEvent 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(ContentAuditInfo contentAuditInfo) - { - if (!_CacheList.Contains(contentAuditInfo)) _CacheList.Add(contentAuditInfo); // In AddToCache - } - protected static void RemoveFromCache(ContentAuditInfo contentAuditInfo) - { - while (_CacheList.Contains(contentAuditInfo)) _CacheList.Remove(contentAuditInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move ContentAuditInfo(s) from temporary _CacheList to _CacheByPrimaryKey - { - ContentAuditInfo tmp = _CacheList[0]; // Get the first ContentAuditInfo - string pKey = tmp.AuditID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first ContentAuditInfo - } - } - internal static void AddList(ContentAuditInfoList lst) - { - foreach (ContentAuditInfo item in lst) AddToCache(item); - } - protected static ContentAuditInfo GetCachedByPrimaryKey(long auditID) - { - ConvertListToDictionary(); - string key = auditID.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 ContentAudit _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private long _AuditID; - [System.ComponentModel.DataObjectField(true, true)] - public long AuditID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AuditID; - } - } - private int _ContentID; - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentID; - } - } - private string _Number = string.Empty; - public string Number - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Number; - } - } - private string _Text = string.Empty; - public string Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Text; - } - } - private int? _Type; - public int? Type - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Type; - } - } - private int? _FormatID; - public int? FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FormatID; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _DeleteStatus; - public int DeleteStatus - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DeleteStatus; - } - } - // CSLATODO: Replace base ContentAuditInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ContentAuditInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check ContentAuditInfo.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 ContentAuditInfo - protected override object GetIdValue() - { - return MyContentAuditInfoUnique; // Absolutely Unique ID - } - #endregion - #region Factory Methods - private static int _ContentAuditInfoUnique = 0; - private static int ContentAuditInfoUnique - { get { return ++_ContentAuditInfoUnique; } } - private int _MyContentAuditInfoUnique = ContentAuditInfoUnique; - public int MyContentAuditInfoUnique // Absolutely Unique ID - Info - { get { return _MyContentAuditInfoUnique; } } - protected ContentAuditInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(AuditID.ToString())) return; - List listContentAuditInfo = _CacheByPrimaryKey[AuditID.ToString()]; // Get the list of items - while (listContentAuditInfo.Contains(this)) listContentAuditInfo.Remove(this); // Remove the item from the list - if (listContentAuditInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(AuditID.ToString()); // remove the list - } - public virtual ContentAudit Get() - { - return _Editable = ContentAudit.Get(_AuditID); - } - public static void Refresh(ContentAudit tmp) - { - string key = tmp.AuditID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ContentAuditInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ContentAudit tmp) - { - _ContentID = tmp.ContentID; - _Number = tmp.Number; - _Text = tmp.Text; - _Type = tmp.Type; - _FormatID = tmp.FormatID; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DeleteStatus = tmp.DeleteStatus; - _ContentAuditInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static ContentAuditInfo Get(long auditID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a ContentAudit"); - try - { - ContentAuditInfo tmp = GetCachedByPrimaryKey(auditID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(auditID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ContentAuditInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAuditInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal ContentAuditInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAuditInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAuditInfo.Constructor", ex); - throw new DbCslaException("ContentAuditInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private long _AuditID; - public long AuditID - { get { return _AuditID; } } - public PKCriteria(long auditID) - { - _AuditID = auditID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAuditInfo.ReadData", GetHashCode()); - try - { - _AuditID = dr.GetInt64("AuditID"); - _ContentID = dr.GetInt32("ContentID"); - _Number = dr.GetString("Number"); - _Text = dr.GetString("Text"); - _Type = (int?)dr.GetValue("Type"); - _FormatID = (int?)dr.GetValue("FormatID"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _DeleteStatus = dr.GetInt32("DeleteStatus"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAuditInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ContentAuditInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAuditInfo.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 = "getContentAudit"; - cm.Parameters.AddWithValue("@AuditID", criteria.AuditID); - 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("ContentAuditInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ContentAuditInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - ContentAuditInfoExtension _ContentAuditInfoExtension = new ContentAuditInfoExtension(); - [Serializable()] - partial class ContentAuditInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(ContentAuditInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class ContentAuditInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentAuditInfo) - { - // Return the ToString value - return ((ContentAuditInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of ContentAuditInfoList.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Copy of ContentAuditInfoList.cs deleted file mode 100644 index 048c26df..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of ContentAuditInfoList.cs +++ /dev/null @@ -1,205 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentAuditInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentAuditInfoListConverter))] - public partial class ContentAuditInfoList : 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 (ContentAuditInfo tmp in this) - { - tmp.Changed += new ContentAuditInfoEvent(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 (ContentAuditInfo tmp in this) - { - tmp.Changed -= new ContentAuditInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static ContentAuditInfoList _ContentAuditInfoList = null; - /// - /// Return a list of all ContentAuditInfo. - /// - public static ContentAuditInfoList Get() - { - try - { - if (_ContentAuditInfoList != null) - return _ContentAuditInfoList; - ContentAuditInfoList tmp = DataPortal.Fetch(); - ContentAuditInfo.AddList(tmp); - tmp.AddEvents(); - _ContentAuditInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentAuditInfoList.Get", ex); - } - } - /// - /// Reset the list of all ContentAuditInfo. - /// - public static void Reset() - { - _ContentAuditInfoList = null; - } - // CSLATODO: Add alternative gets - - //public static ContentAuditInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on ContentAuditInfoList.Get", ex); - // } - //} - private ContentAuditInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getContentAudits"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ContentAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ContentAuditInfoList.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 - ContentAuditInfoListPropertyDescriptor pd = new ContentAuditInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ContentAuditInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private ContentAuditInfo Item { get { return (ContentAuditInfo)_Item; } } - public ContentAuditInfoListPropertyDescriptor(ContentAuditInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ContentAuditInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentAuditInfoList) - { - // Return department and department role separated by comma. - return ((ContentAuditInfoList)value).Items.Count.ToString() + " ContentAudits"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of DocumentAudit.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Copy of DocumentAudit.cs deleted file mode 100644 index 340ceadb..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of DocumentAudit.cs +++ /dev/null @@ -1,1049 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DocumentAudit Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocumentAuditConverter))] - public partial class DocumentAudit : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshDocumentAudits = new List(); - private void AddToRefreshList(List refreshDocumentAudits) - { - if (IsDirty) - refreshDocumentAudits.Add(this); - } - private void BuildRefreshList() - { - _RefreshDocumentAudits = new List(); - AddToRefreshList(_RefreshDocumentAudits); - } - private void ProcessRefreshList() - { - foreach (DocumentAudit tmp in _RefreshDocumentAudits) - { - DocumentAuditInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(DocumentAudit documentAudit) - { - if (!_CacheList.Contains(documentAudit)) _CacheList.Add(documentAudit); // In AddToCache - } - protected static void RemoveFromCache(DocumentAudit documentAudit) - { - while (_CacheList.Contains(documentAudit)) _CacheList.Remove(documentAudit); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move DocumentAudit(s) from temporary _CacheList to _CacheByPrimaryKey - { - DocumentAudit tmp = _CacheList[0]; // Get the first DocumentAudit - string pKey = tmp.AuditID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first DocumentAudit - } - } - protected static DocumentAudit GetCachedByPrimaryKey(long auditID) - { - ConvertListToDictionary(); - string key = auditID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextAuditID = -1; - public static int NextAuditID - { - get { return _nextAuditID--; } - } - private long _AuditID; - [System.ComponentModel.DataObjectField(true, true)] - public long AuditID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AuditID; - } - } - private int _DocID; - public int DocID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DocID != value) - { - _DocID = value; - PropertyHasChanged(); - } - } - } - private string _LibTitle = string.Empty; - public string LibTitle - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _LibTitle; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_LibTitle != value) - { - _LibTitle = value; - PropertyHasChanged(); - } - } - } - private byte[] _DocContent; - public byte[] DocContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocContent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DocContent != value) - { - _DocContent = value; - PropertyHasChanged(); - } - } - } - private string _DocAscii = string.Empty; - public string DocAscii - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocAscii; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_DocAscii != value) - { - _DocAscii = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private string _FileExtension = string.Empty; - public string FileExtension - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FileExtension; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_FileExtension != value) - { - _FileExtension = value; - PropertyHasChanged(); - } - } - } - private byte[] _DocPdf; - public byte[] DocPdf - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocPdf; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DocPdf != value) - { - _DocPdf = value; - PropertyHasChanged(); - } - } - } - private int _DeleteStatus; - public int DeleteStatus - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DeleteStatus; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DeleteStatus != value) - { - _DeleteStatus = value; - PropertyHasChanged(); - } - } - } - public override bool IsDirty - { - get { return base.IsDirty; } - } - public bool IsDirtyList(List list) - { - return base.IsDirty; - } - public override bool IsValid - { - get { return (IsNew && !IsDirty) ? true : base.IsValid; } - } - public bool IsValidList(List list) - { - return (IsNew && !IsDirty) ? true : base.IsValid; - } - // CSLATODO: Replace base DocumentAudit.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current DocumentAudit - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check DocumentAudit.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 DocumentAudit - protected override object GetIdValue() - { - return MyDocumentAuditUnique; // Absolutely Unique ID - } - #endregion - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - { - get - { - if (_CheckingBrokenRules) return null; - if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null; - 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("LibTitle", 2048)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("DocAscii", 1073741823)); - 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", 200)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "FileExtension"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("FileExtension", 20)); - //ValidationRules.AddDependantProperty("x", "y"); - _DocumentAuditExtension.AddValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _DocumentAuditExtension.AddInstanceValidationRules(ValidationRules); - // CSLATODO: 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() - { - //CSLATODO: Who can read/write which fields - //AuthorizationRules.AllowRead(AuditID, ""); - //AuthorizationRules.AllowRead(DocID, ""); - //AuthorizationRules.AllowRead(LibTitle, ""); - //AuthorizationRules.AllowRead(DocContent, ""); - //AuthorizationRules.AllowRead(DocAscii, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowRead(FileExtension, ""); - //AuthorizationRules.AllowRead(DocPdf, ""); - //AuthorizationRules.AllowRead(DeleteStatus, ""); - //AuthorizationRules.AllowWrite(DocID, ""); - //AuthorizationRules.AllowWrite(LibTitle, ""); - //AuthorizationRules.AllowWrite(DocContent, ""); - //AuthorizationRules.AllowWrite(DocAscii, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - //AuthorizationRules.AllowWrite(FileExtension, ""); - //AuthorizationRules.AllowWrite(DocPdf, ""); - //AuthorizationRules.AllowWrite(DeleteStatus, ""); - _DocumentAuditExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //CSLATODO: Who can read/write which fields - _DocumentAuditExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // CSLATODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // CSLATODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // CSLATODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // CSLATODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _DocumentAuditUnique = 0; - protected static int DocumentAuditUnique - { get { return ++_DocumentAuditUnique; } } - private int _MyDocumentAuditUnique = DocumentAuditUnique; - public int MyDocumentAuditUnique // Absolutely Unique ID - Editable - { get { return _MyDocumentAuditUnique; } } - protected DocumentAudit() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(AuditID.ToString())) - { - List listDocumentAudit = _CacheByPrimaryKey[AuditID.ToString()]; // Get the list of items - while (listDocumentAudit.Contains(this)) listDocumentAudit.Remove(this); // Remove the item from the list - if (listDocumentAudit.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(AuditID.ToString()); // remove the list - } - } - public static DocumentAudit New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a DocumentAudit"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocumentAudit.New", ex); - } - } - public static DocumentAudit New(int docID, DateTime dts, string userID, string fileExtension, int deleteStatus) - { - DocumentAudit tmp = DocumentAudit.New(); - tmp.DocID = docID; - tmp.DTS = dts; - tmp.UserID = userID; - tmp.FileExtension = fileExtension; - tmp.DeleteStatus = deleteStatus; - return tmp; - } - public static DocumentAudit New(int docID, string libTitle, byte[] docContent, string docAscii, string config, DateTime dts, string userID, string fileExtension, byte[] docPdf, int deleteStatus) - { - DocumentAudit tmp = DocumentAudit.New(); - tmp.DocID = docID; - tmp.LibTitle = libTitle; - tmp.DocContent = docContent; - tmp.DocAscii = docAscii; - tmp.Config = config; - tmp.DTS = dts; - tmp.UserID = userID; - tmp.FileExtension = fileExtension; - tmp.DocPdf = docPdf; - tmp.DeleteStatus = deleteStatus; - return tmp; - } - public static DocumentAudit MakeDocumentAudit(int docID, string libTitle, byte[] docContent, string docAscii, string config, DateTime dts, string userID, string fileExtension, byte[] docPdf, int deleteStatus) - { - DocumentAudit tmp = DocumentAudit.New(docID, libTitle, docContent, docAscii, config, dts, userID, fileExtension, docPdf, deleteStatus); - if (tmp.IsSavable) - { - DocumentAudit 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 DocumentAudit Get(long auditID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a DocumentAudit"); - try - { - DocumentAudit tmp = GetCachedByPrimaryKey(auditID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(auditID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up DocumentAudit - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocumentAudit.Get", ex); - } - } - public static DocumentAudit Get(SafeDataReader dr) - { - if (dr.Read()) return new DocumentAudit(dr); - return null; - } - internal DocumentAudit(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(long auditID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a DocumentAudit"); - try - { - DataPortal.Delete(new PKCriteria(auditID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocumentAudit.Delete", ex); - } - } - public override DocumentAudit Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a DocumentAudit"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a DocumentAudit"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a DocumentAudit"); - try - { - BuildRefreshList(); - DocumentAudit documentAudit = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(documentAudit);//Refresh the item in AllList - ProcessRefreshList(); - return documentAudit; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private long _AuditID; - public long AuditID - { get { return _AuditID; } } - public PKCriteria(long auditID) - { - _AuditID = auditID; - } - } - // CSLATODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _AuditID = NextAuditID; - // Database Defaults - - // CSLATODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAudit.ReadData", GetHashCode()); - try - { - _AuditID = dr.GetInt64("AuditID"); - _DocID = dr.GetInt32("DocID"); - _LibTitle = dr.GetString("LibTitle"); - _DocContent = (byte[])dr.GetValue("DocContent"); - _DocAscii = dr.GetString("DocAscii"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _FileExtension = dr.GetString("FileExtension"); - _DocPdf = (byte[])dr.GetValue("DocPdf"); - _DeleteStatus = dr.GetInt32("DeleteStatus"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentAudit.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocumentAudit.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAudit.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 = "getDocumentAudit"; - cm.Parameters.AddWithValue("@AuditID", criteria.AuditID); - 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("DocumentAudit.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocumentAudit.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("DocumentAudit.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocumentAudit.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAudit.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addDocumentAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@DocID", _DocID); - cm.Parameters.AddWithValue("@LibTitle", _LibTitle); - cm.Parameters.AddWithValue("@DocContent", _DocContent); - cm.Parameters.AddWithValue("@DocAscii", _DocAscii); - 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("@FileExtension", _FileExtension); - cm.Parameters.AddWithValue("@DocPdf", _DocPdf); - cm.Parameters.AddWithValue("@DeleteStatus", _DeleteStatus); - // Output Calculated Columns - SqlParameter param_AuditID = new SqlParameter("@newAuditID", SqlDbType.BigInt); - param_AuditID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AuditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _AuditID = (long)cm.Parameters["@newAuditID"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAudit.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentAudit.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocumentAudit.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Add(SqlConnection cn, ref long auditID, int docID, string libTitle, byte[] docContent, string docAscii, string config, DateTime dts, string userID, string fileExtension, byte[] docPdf, int deleteStatus) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAudit.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addDocumentAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@DocID", docID); - cm.Parameters.AddWithValue("@LibTitle", libTitle); - cm.Parameters.AddWithValue("@DocContent", docContent); - cm.Parameters.AddWithValue("@DocAscii", docAscii); - 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("@FileExtension", fileExtension); - cm.Parameters.AddWithValue("@DocPdf", docPdf); - cm.Parameters.AddWithValue("@DeleteStatus", deleteStatus); - // Output Calculated Columns - SqlParameter param_AuditID = new SqlParameter("@newAuditID", SqlDbType.BigInt); - param_AuditID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AuditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - auditID = (long)cm.Parameters["@newAuditID"].Value; - // No Timestamp value to return - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentAudit.Add", ex); - throw new DbCslaException("DocumentAudit.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}] DocumentAudit.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("DocumentAudit.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}] DocumentAudit.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateDocumentAudit"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@AuditID", _AuditID); - cm.Parameters.AddWithValue("@DocID", _DocID); - cm.Parameters.AddWithValue("@LibTitle", _LibTitle); - cm.Parameters.AddWithValue("@DocContent", _DocContent); - cm.Parameters.AddWithValue("@DocAscii", _DocAscii); - 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("@FileExtension", _FileExtension); - cm.Parameters.AddWithValue("@DocPdf", _DocPdf); - cm.Parameters.AddWithValue("@DeleteStatus", _DeleteStatus); - // Output Calculated Columns - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentAudit.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) - DocumentAudit.Add(cn, ref _AuditID, _DocID, _LibTitle, _DocContent, _DocAscii, _Config, _DTS, _UserID, _FileExtension, _DocPdf, _DeleteStatus); - else - DocumentAudit.Update(cn, ref _AuditID, _DocID, _LibTitle, _DocContent, _DocAscii, _Config, _DTS, _UserID, _FileExtension, _DocPdf, _DeleteStatus); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Update(SqlConnection cn, ref long auditID, int docID, string libTitle, byte[] docContent, string docAscii, string config, DateTime dts, string userID, string fileExtension, byte[] docPdf, int deleteStatus) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAudit.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateDocumentAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@AuditID", auditID); - cm.Parameters.AddWithValue("@DocID", docID); - cm.Parameters.AddWithValue("@LibTitle", libTitle); - cm.Parameters.AddWithValue("@DocContent", docContent); - cm.Parameters.AddWithValue("@DocAscii", docAscii); - 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("@FileExtension", fileExtension); - cm.Parameters.AddWithValue("@DocPdf", docPdf); - cm.Parameters.AddWithValue("@DeleteStatus", deleteStatus); - // Output Calculated Columns - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - // No Timestamp value to return - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentAudit.Update", ex); - throw new DbCslaException("DocumentAudit.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_AuditID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAudit.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteDocumentAudit"; - cm.Parameters.AddWithValue("@AuditID", criteria.AuditID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentAudit.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocumentAudit.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, long auditID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAudit.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteDocumentAudit"; - // Input PK Fields - cm.Parameters.AddWithValue("@AuditID", auditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentAudit.Remove", ex); - throw new DbCslaException("DocumentAudit.Remove", ex); - } - } - #endregion - // Standard Default Code - #region extension - DocumentAuditExtension _DocumentAuditExtension = new DocumentAuditExtension(); - [Serializable()] - partial class DocumentAuditExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - // 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 DocumentAuditConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocumentAudit) - { - // Return the ToString value - return ((DocumentAudit)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create DocumentAuditExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class DocumentAudit -// { -// partial class DocumentAuditExtension : extensionBase -// { -// // CSLATODO: Override automatic defaults -// 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/Copy of DocumentAuditInfo.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Copy of DocumentAuditInfo.cs deleted file mode 100644 index 6a414a83..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of DocumentAuditInfo.cs +++ /dev/null @@ -1,395 +0,0 @@ -// ======================================================================== -// 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 DocumentAuditInfoEvent(object sender); - /// - /// DocumentAuditInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocumentAuditInfoConverter))] - public partial class DocumentAuditInfo : ReadOnlyBase, IDisposable - { - public event DocumentAuditInfoEvent 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(DocumentAuditInfo documentAuditInfo) - { - if (!_CacheList.Contains(documentAuditInfo)) _CacheList.Add(documentAuditInfo); // In AddToCache - } - protected static void RemoveFromCache(DocumentAuditInfo documentAuditInfo) - { - while (_CacheList.Contains(documentAuditInfo)) _CacheList.Remove(documentAuditInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move DocumentAuditInfo(s) from temporary _CacheList to _CacheByPrimaryKey - { - DocumentAuditInfo tmp = _CacheList[0]; // Get the first DocumentAuditInfo - string pKey = tmp.AuditID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first DocumentAuditInfo - } - } - internal static void AddList(DocumentAuditInfoList lst) - { - foreach (DocumentAuditInfo item in lst) AddToCache(item); - } - protected static DocumentAuditInfo GetCachedByPrimaryKey(long auditID) - { - ConvertListToDictionary(); - string key = auditID.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 DocumentAudit _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private long _AuditID; - [System.ComponentModel.DataObjectField(true, true)] - public long AuditID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AuditID; - } - } - private int _DocID; - public int DocID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocID; - } - } - private string _LibTitle = string.Empty; - public string LibTitle - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _LibTitle; - } - } - private byte[] _DocContent; - public byte[] DocContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocContent; - } - } - private string _DocAscii = string.Empty; - public string DocAscii - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocAscii; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private string _FileExtension = string.Empty; - public string FileExtension - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FileExtension; - } - } - private byte[] _DocPdf; - public byte[] DocPdf - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocPdf; - } - } - private int _DeleteStatus; - public int DeleteStatus - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DeleteStatus; - } - } - // CSLATODO: Replace base DocumentAuditInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current DocumentAuditInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check DocumentAuditInfo.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 DocumentAuditInfo - protected override object GetIdValue() - { - return MyDocumentAuditInfoUnique; // Absolutely Unique ID - } - #endregion - #region Factory Methods - private static int _DocumentAuditInfoUnique = 0; - private static int DocumentAuditInfoUnique - { get { return ++_DocumentAuditInfoUnique; } } - private int _MyDocumentAuditInfoUnique = DocumentAuditInfoUnique; - public int MyDocumentAuditInfoUnique // Absolutely Unique ID - Info - { get { return _MyDocumentAuditInfoUnique; } } - protected DocumentAuditInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(AuditID.ToString())) return; - List listDocumentAuditInfo = _CacheByPrimaryKey[AuditID.ToString()]; // Get the list of items - while (listDocumentAuditInfo.Contains(this)) listDocumentAuditInfo.Remove(this); // Remove the item from the list - if (listDocumentAuditInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(AuditID.ToString()); // remove the list - } - public virtual DocumentAudit Get() - { - return _Editable = DocumentAudit.Get(_AuditID); - } - public static void Refresh(DocumentAudit tmp) - { - string key = tmp.AuditID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (DocumentAuditInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(DocumentAudit tmp) - { - _DocID = tmp.DocID; - _LibTitle = tmp.LibTitle; - _DocContent = tmp.DocContent; - _DocAscii = tmp.DocAscii; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _FileExtension = tmp.FileExtension; - _DocPdf = tmp.DocPdf; - _DeleteStatus = tmp.DeleteStatus; - _DocumentAuditInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static DocumentAuditInfo Get(long auditID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a DocumentAudit"); - try - { - DocumentAuditInfo tmp = GetCachedByPrimaryKey(auditID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(auditID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up DocumentAuditInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocumentAuditInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal DocumentAuditInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAuditInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentAuditInfo.Constructor", ex); - throw new DbCslaException("DocumentAuditInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private long _AuditID; - public long AuditID - { get { return _AuditID; } } - public PKCriteria(long auditID) - { - _AuditID = auditID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAuditInfo.ReadData", GetHashCode()); - try - { - _AuditID = dr.GetInt64("AuditID"); - _DocID = dr.GetInt32("DocID"); - _LibTitle = dr.GetString("LibTitle"); - _DocContent = (byte[])dr.GetValue("DocContent"); - _DocAscii = dr.GetString("DocAscii"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _FileExtension = dr.GetString("FileExtension"); - _DocPdf = (byte[])dr.GetValue("DocPdf"); - _DeleteStatus = dr.GetInt32("DeleteStatus"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentAuditInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocumentAuditInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAuditInfo.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 = "getDocumentAudit"; - cm.Parameters.AddWithValue("@AuditID", criteria.AuditID); - 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("DocumentAuditInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocumentAuditInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - DocumentAuditInfoExtension _DocumentAuditInfoExtension = new DocumentAuditInfoExtension(); - [Serializable()] - partial class DocumentAuditInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(DocumentAuditInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class DocumentAuditInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocumentAuditInfo) - { - // Return the ToString value - return ((DocumentAuditInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of DocumentAuditInfoList.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Copy of DocumentAuditInfoList.cs deleted file mode 100644 index 24119f8d..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of DocumentAuditInfoList.cs +++ /dev/null @@ -1,205 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DocumentAuditInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocumentAuditInfoListConverter))] - public partial class DocumentAuditInfoList : 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 (DocumentAuditInfo tmp in this) - { - tmp.Changed += new DocumentAuditInfoEvent(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 (DocumentAuditInfo tmp in this) - { - tmp.Changed -= new DocumentAuditInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static DocumentAuditInfoList _DocumentAuditInfoList = null; - /// - /// Return a list of all DocumentAuditInfo. - /// - public static DocumentAuditInfoList Get() - { - try - { - if (_DocumentAuditInfoList != null) - return _DocumentAuditInfoList; - DocumentAuditInfoList tmp = DataPortal.Fetch(); - DocumentAuditInfo.AddList(tmp); - tmp.AddEvents(); - _DocumentAuditInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocumentAuditInfoList.Get", ex); - } - } - /// - /// Reset the list of all DocumentAuditInfo. - /// - public static void Reset() - { - _DocumentAuditInfoList = null; - } - // CSLATODO: Add alternative gets - - //public static DocumentAuditInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on DocumentAuditInfoList.Get", ex); - // } - //} - private DocumentAuditInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentAuditInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocumentAudits"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new DocumentAuditInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentAuditInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("DocumentAuditInfoList.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 - DocumentAuditInfoListPropertyDescriptor pd = new DocumentAuditInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class DocumentAuditInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private DocumentAuditInfo Item { get { return (DocumentAuditInfo)_Item; } } - public DocumentAuditInfoListPropertyDescriptor(DocumentAuditInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class DocumentAuditInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocumentAuditInfoList) - { - // Return department and department role separated by comma. - return ((DocumentAuditInfoList)value).Items.Count.ToString() + " DocumentAudits"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of EntryAudit.cs b/PROMS/VEPROMS.CSLA.Library/Generated/Copy of EntryAudit.cs deleted file mode 100644 index 1949a3da..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Copy of EntryAudit.cs +++ /dev/null @@ -1,891 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// EntryAudit Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(EntryAuditConverter))] - public partial class EntryAudit : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshEntryAudits = new List(); - private void AddToRefreshList(List refreshEntryAudits) - { - if (IsDirty) - refreshEntryAudits.Add(this); - } - private void BuildRefreshList() - { - _RefreshEntryAudits = new List(); - AddToRefreshList(_RefreshEntryAudits); - } - private void ProcessRefreshList() - { - foreach (EntryAudit tmp in _RefreshEntryAudits) - { - EntryAuditInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(EntryAudit entryAudit) - { - if (!_CacheList.Contains(entryAudit)) _CacheList.Add(entryAudit); // In AddToCache - } - protected static void RemoveFromCache(EntryAudit entryAudit) - { - while (_CacheList.Contains(entryAudit)) _CacheList.Remove(entryAudit); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move EntryAudit(s) from temporary _CacheList to _CacheByPrimaryKey - { - EntryAudit tmp = _CacheList[0]; // Get the first EntryAudit - string pKey = tmp.AuditID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first EntryAudit - } - } - protected static EntryAudit GetCachedByPrimaryKey(long auditID) - { - ConvertListToDictionary(); - string key = auditID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextAuditID = -1; - public static int NextAuditID - { - get { return _nextAuditID--; } - } - private long _AuditID; - [System.ComponentModel.DataObjectField(true, true)] - public long AuditID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AuditID; - } - } - private int _ContentID; - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ContentID != value) - { - _ContentID = value; - PropertyHasChanged(); - } - } - } - private int _DocID; - public int DocID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DocID != value) - { - _DocID = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private int _DeleteStatus; - public int DeleteStatus - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DeleteStatus; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DeleteStatus != value) - { - _DeleteStatus = value; - PropertyHasChanged(); - } - } - } - public override bool IsDirty - { - get { return base.IsDirty; } - } - public bool IsDirtyList(List list) - { - return base.IsDirty; - } - public override bool IsValid - { - get { return (IsNew && !IsDirty) ? true : base.IsValid; } - } - public bool IsValidList(List list) - { - return (IsNew && !IsDirty) ? true : base.IsValid; - } - // CSLATODO: Replace base EntryAudit.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current EntryAudit - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check EntryAudit.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 EntryAudit - protected override object GetIdValue() - { - return MyEntryAuditUnique; // Absolutely Unique ID - } - #endregion - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - { - get - { - if (_CheckingBrokenRules) return null; - if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null; - 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, "UserID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 200)); - //ValidationRules.AddDependantProperty("x", "y"); - _EntryAuditExtension.AddValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _EntryAuditExtension.AddInstanceValidationRules(ValidationRules); - // CSLATODO: 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() - { - //CSLATODO: Who can read/write which fields - //AuthorizationRules.AllowRead(AuditID, ""); - //AuthorizationRules.AllowRead(ContentID, ""); - //AuthorizationRules.AllowRead(DocID, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowRead(DeleteStatus, ""); - //AuthorizationRules.AllowWrite(ContentID, ""); - //AuthorizationRules.AllowWrite(DocID, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - //AuthorizationRules.AllowWrite(DeleteStatus, ""); - _EntryAuditExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //CSLATODO: Who can read/write which fields - _EntryAuditExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // CSLATODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // CSLATODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // CSLATODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // CSLATODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _EntryAuditUnique = 0; - protected static int EntryAuditUnique - { get { return ++_EntryAuditUnique; } } - private int _MyEntryAuditUnique = EntryAuditUnique; - public int MyEntryAuditUnique // Absolutely Unique ID - Editable - { get { return _MyEntryAuditUnique; } } - protected EntryAudit() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(AuditID.ToString())) - { - List listEntryAudit = _CacheByPrimaryKey[AuditID.ToString()]; // Get the list of items - while (listEntryAudit.Contains(this)) listEntryAudit.Remove(this); // Remove the item from the list - if (listEntryAudit.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(AuditID.ToString()); // remove the list - } - } - public static EntryAudit New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a EntryAudit"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on EntryAudit.New", ex); - } - } - public static EntryAudit New(int contentID, int docID, DateTime dts, string userID, int deleteStatus) - { - EntryAudit tmp = EntryAudit.New(); - tmp.ContentID = contentID; - tmp.DocID = docID; - tmp.DTS = dts; - tmp.UserID = userID; - tmp.DeleteStatus = deleteStatus; - return tmp; - } - public static EntryAudit MakeEntryAudit(int contentID, int docID, DateTime dts, string userID, int deleteStatus) - { - EntryAudit tmp = EntryAudit.New(contentID, docID, dts, userID, deleteStatus); - if (tmp.IsSavable) - { - EntryAudit 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 EntryAudit Get(long auditID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a EntryAudit"); - try - { - EntryAudit tmp = GetCachedByPrimaryKey(auditID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(auditID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up EntryAudit - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on EntryAudit.Get", ex); - } - } - public static EntryAudit Get(SafeDataReader dr) - { - if (dr.Read()) return new EntryAudit(dr); - return null; - } - internal EntryAudit(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(long auditID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a EntryAudit"); - try - { - DataPortal.Delete(new PKCriteria(auditID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on EntryAudit.Delete", ex); - } - } - public override EntryAudit Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a EntryAudit"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a EntryAudit"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a EntryAudit"); - try - { - BuildRefreshList(); - EntryAudit entryAudit = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(entryAudit);//Refresh the item in AllList - ProcessRefreshList(); - return entryAudit; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private long _AuditID; - public long AuditID - { get { return _AuditID; } } - public PKCriteria(long auditID) - { - _AuditID = auditID; - } - } - // CSLATODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _AuditID = NextAuditID; - // Database Defaults - - // CSLATODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryAudit.ReadData", GetHashCode()); - try - { - _AuditID = dr.GetInt64("AuditID"); - _ContentID = dr.GetInt32("ContentID"); - _DocID = dr.GetInt32("DocID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _DeleteStatus = dr.GetInt32("DeleteStatus"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryAudit.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("EntryAudit.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryAudit.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 = "getEntryAudit"; - cm.Parameters.AddWithValue("@AuditID", criteria.AuditID); - 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("EntryAudit.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("EntryAudit.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("EntryAudit.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("EntryAudit.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryAudit.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addEntryAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", _ContentID); - cm.Parameters.AddWithValue("@DocID", _DocID); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@DeleteStatus", _DeleteStatus); - // Output Calculated Columns - SqlParameter param_AuditID = new SqlParameter("@newAuditID", SqlDbType.BigInt); - param_AuditID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AuditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _AuditID = (long)cm.Parameters["@newAuditID"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryAudit.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryAudit.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("EntryAudit.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Add(SqlConnection cn, ref long auditID, int contentID, int docID, DateTime dts, string userID, int deleteStatus) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryAudit.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addEntryAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", contentID); - cm.Parameters.AddWithValue("@DocID", docID); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UserID", userID); - cm.Parameters.AddWithValue("@DeleteStatus", deleteStatus); - // Output Calculated Columns - SqlParameter param_AuditID = new SqlParameter("@newAuditID", SqlDbType.BigInt); - param_AuditID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AuditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - auditID = (long)cm.Parameters["@newAuditID"].Value; - // No Timestamp value to return - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryAudit.Add", ex); - throw new DbCslaException("EntryAudit.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}] EntryAudit.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("EntryAudit.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}] EntryAudit.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateEntryAudit"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@AuditID", _AuditID); - cm.Parameters.AddWithValue("@ContentID", _ContentID); - cm.Parameters.AddWithValue("@DocID", _DocID); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@DeleteStatus", _DeleteStatus); - // Output Calculated Columns - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryAudit.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) - EntryAudit.Add(cn, ref _AuditID, _ContentID, _DocID, _DTS, _UserID, _DeleteStatus); - else - EntryAudit.Update(cn, ref _AuditID, _ContentID, _DocID, _DTS, _UserID, _DeleteStatus); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Update(SqlConnection cn, ref long auditID, int contentID, int docID, DateTime dts, string userID, int deleteStatus) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryAudit.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateEntryAudit"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@AuditID", auditID); - cm.Parameters.AddWithValue("@ContentID", contentID); - cm.Parameters.AddWithValue("@DocID", docID); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UserID", userID); - cm.Parameters.AddWithValue("@DeleteStatus", deleteStatus); - // Output Calculated Columns - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - // No Timestamp value to return - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryAudit.Update", ex); - throw new DbCslaException("EntryAudit.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_AuditID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryAudit.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteEntryAudit"; - cm.Parameters.AddWithValue("@AuditID", criteria.AuditID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryAudit.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("EntryAudit.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, long auditID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryAudit.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteEntryAudit"; - // Input PK Fields - cm.Parameters.AddWithValue("@AuditID", auditID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryAudit.Remove", ex); - throw new DbCslaException("EntryAudit.Remove", ex); - } - } - #endregion - // Standard Default Code - #region extension - EntryAuditExtension _EntryAuditExtension = new EntryAuditExtension(); - [Serializable()] - partial class EntryAuditExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - // 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 EntryAuditConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is EntryAudit) - { - // Return the ToString value - return ((EntryAudit)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create EntryAuditExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class EntryAudit -// { -// partial class EntryAuditExtension : extensionBase -// { -// // CSLATODO: Override automatic defaults -// 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/Database.cs.bak b/PROMS/VEPROMS.CSLA.Library/Generated/Database.cs.bak deleted file mode 100644 index 70efdc76..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Database.cs.bak +++ /dev/null @@ -1,210 +0,0 @@ -// ======================================================================== -// 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.Diagnostics; -namespace VEPROMS.CSLA.Library -{ - /// - /// Database Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public static partial class Database - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - public static void LogException(string s, Exception ex) - { - int i = 0; - Console.WriteLine("Error - {0}", s); - for (; ex != null; ex = ex.InnerException) - { - Console.WriteLine("{0}{1} - {2}", "".PadLeft(++i * 2), ex.GetType().ToString(), ex.Message); - } - } - private static bool _LoggingInfo = false; // By default don't log info - public static bool LoggingInfo - { - get { return _LoggingInfo; } - set { _LoggingInfo = value; } - } - static System.Diagnostics.Process _CurrentProcess = System.Diagnostics.Process.GetCurrentProcess(); - public static void LogInfo(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - public static void LogDebug(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - private static string _ConnectionName = "VEPROMS"; - public static string ConnectionName - { - get { return Database._ConnectionName; } - set { Database._ConnectionName = value; _VEPROMS_Connection = null; /* Reset Connection */ } - } - private static string _VEPROMS_Connection; - public static string VEPROMS_Connection - { - get - { - if (_VEPROMS_Connection != null) // Use Lazy Load - return _VEPROMS_Connection; - DateTime.Today.ToLongDateString(); - // If DBConnection.XML exists, use the connection string from DBConnection.XML - string cnOverride = System.Windows.Forms.Application.StartupPath + @"\DBConnection.XML"; - if (System.IO.File.Exists(cnOverride)) - { - System.Xml.XmlDocument xd = new System.Xml.XmlDocument(); - xd.Load(cnOverride); - System.Xml.XmlNode xn = xd.SelectSingleNode("DBConnection/@string"); - if (xn != null) - { - return _VEPROMS_Connection = xn.InnerText; - } - } - // Otherwise get the value from the ConfigurationManager - ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings[ConnectionName]; - if (cs == null) - { - throw new ApplicationException("Database.cs Could not find connection " + ConnectionName); - } - string constr = cs.ConnectionString; - if (constr.Contains("{MENU}")) - { - constr = ChooseDatabase(constr); - } - return _VEPROMS_Connection = constr; - } - } - private static string _SelectedDatabase; - - public static string SelectedDatabase - { - get { return Database._SelectedDatabase; } - set { Database._SelectedDatabase = value; } - } - private static string ChooseDatabase(string constr) - { - string tmp = constr.Replace("{MENU}", "master"); - SqlConnection cn = new SqlConnection(tmp); - cn.Open(); -// SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn); - SqlDataAdapter da = new SqlDataAdapter("select name,case when object_id(name + '..Revisions') is not null then 'Approval' when object_id(name + '..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name like 'VEP%' order by name", cn); - DataSet ds = new DataSet(); - da.Fill(ds); - cn.Close(); - System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip(); - cms.Items.Add("Choose Database"); - System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem; - tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink; - tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText); - tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold); - foreach (DataRow dr in ds.Tables[0].Rows) - { - if(dr["functionality"].ToString() == "Approval") - cms.Items.Add(dr["name"].ToString(), null, new EventHandler(Database_Click)); - } - while (_SelectedDatabase == null) - { - cms.Show(new System.Drawing.Point((System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - cms.Width) / 2, (System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - cms.Height) / 2)); - System.Windows.Forms.Application.DoEvents(); - } - return constr.Replace("{MENU}", _SelectedDatabase); - } - - static void Database_Click(object sender, EventArgs e) - { - System.Windows.Forms.ToolStripMenuItem tsmi = sender as System.Windows.Forms.ToolStripMenuItem; - if (tsmi != null) - { - _SelectedDatabase = tsmi.Text; - } - } - - public static SqlConnection VEPROMS_SqlConnection - { - get - { - string strConn = VEPROMS_Connection; // If failure - Fail (Don't try to catch) - // Attempt to make a connection - try - { - SqlConnection cn = new SqlConnection(strConn); - cn.Open(); - return cn; - } - catch (SqlException exsql) - { - const string strAttachError = "An attempt to attach an auto-named database for file "; - if (exsql.Message.StartsWith(strAttachError)) - {// Check to see if the file is missing - string sFile = exsql.Message.Substring(strAttachError.Length); - sFile = sFile.Substring(0, sFile.IndexOf(" failed")); - // "An attempt to attach an auto-named database for file failed" - if (strConn.ToLower().IndexOf("user instance=true") < 0) - { - throw new ApplicationException("Connection String missing attribute: User Instance=True"); - } - if (System.IO.File.Exists(sFile)) - { - throw new ApplicationException("Database file " + sFile + " Cannot be opened\r\n", exsql); - } - else - { - throw new FileNotFoundException("Database file " + sFile + " Not Found", exsql); - } - } - else - { - throw new ApplicationException("Failure on Connect", exsql); - } - } - catch (Exception ex)// Throw Application Exception on Failure - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection Error", ex); - throw new ApplicationException("Failure on Connect", ex); - } - } - } - public static void PurgeData() - { - try - { - SqlConnection cn = VEPROMS_SqlConnection; - SqlCommand cmd = new SqlCommand("purgedata", cn); - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.ExecuteNonQuery(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Purge Error", ex); - throw new ApplicationException("Failure on Purge", ex); - } - } - } - public class DbCslaException : Exception - { - internal DbCslaException(string message, Exception innerException) : base(message, innerException) { ;} - internal DbCslaException(string message) : base(message) { ;} - internal DbCslaException() : base() { ;} - } // Class -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/Database.cs.org b/PROMS/VEPROMS.CSLA.Library/Generated/Database.cs.org deleted file mode 100644 index a997f4af..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/Database.cs.org +++ /dev/null @@ -1,575 +0,0 @@ -// ======================================================================== -// 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.Diagnostics; -using System.Collections.Generic; - -namespace VEPROMS.CSLA.Library -{ - /// - /// Database Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public static partial class Database - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - private static int _DefaultTimeout = 600; // 600 seconds, i.e. 10 minutes - - public static int DefaultTimeout - { - get { return _DefaultTimeout; } - set { _DefaultTimeout = value; } - } - - public static void LogException(string s, Exception ex) - { - int i = 0; - Console.WriteLine("Error - {0}", s); - for (; ex != null; ex = ex.InnerException) - { - Console.WriteLine("{0}{1} - {2}", "".PadLeft(++i * 2), ex.GetType().ToString(), ex.Message); - } - } - private static bool _LoggingInfo = false; // By default don't log info - public static bool LoggingInfo - { - get { return _LoggingInfo; } - set { _LoggingInfo = value; } - } - static System.Diagnostics.Process _CurrentProcess = System.Diagnostics.Process.GetCurrentProcess(); - public static void LogInfo(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - public static void LogDebug(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - private static string _ConnectionName = "VEPROMS"; - public static string ConnectionName - { - get { return Database._ConnectionName; } - set { Database._ConnectionName = value; _VEPROMS_Connection = null; /* Reset Connection */ } - } - private static string _VEPROMS_Connection; - public static string VEPROMS_Connection - { - get - { - if (_VEPROMS_Connection != null) // Use Lazy Load - return _VEPROMS_Connection; - DateTime.Today.ToLongDateString(); - // If DBConnection.XML exists, use the connection string from DBConnection.XML - string cnOverride = System.Windows.Forms.Application.StartupPath + @"\DBConnection.XML"; - if (System.IO.File.Exists(cnOverride)) - { - System.Xml.XmlDocument xd = new System.Xml.XmlDocument(); - xd.Load(cnOverride); - System.Xml.XmlNode xn = xd.SelectSingleNode("DBConnection/@string"); - // bug fix: B2013-079 - // If we are using the DBConnection.xml file, - // Check to see if "{MENU}" is being used and if a database was specified (ex."VEPROMS.EXE \DB=VEPROMS_xxx") - // If both conditions are true, then call the ChooseDatabases() funtion which will return a valid connection string (we hope) - // otherwise use the connection string as it is in the DBConnection.xml - if (xn != null) - { - if (xn.InnerText.Contains("{MENU}") && SelectedDatabase != null && SelectedDatabase.Length > 0) - _VEPROMS_Connection = ChooseDatabase(xn.InnerText); - else - _VEPROMS_Connection = xn.InnerText; - return _VEPROMS_Connection; - } - } - // Otherwise get the value from the ConfigurationManager - ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings[ConnectionName]; - if (cs == null) - { - throw new ApplicationException("Database.cs Could not find connection " + ConnectionName); - } - string constr = cs.ConnectionString; - if (constr.Contains("{MENU}")) - { - constr = ChooseDatabase(constr); - } - return _VEPROMS_Connection = constr; - } - set { _VEPROMS_Connection = value; } - } - private static string _SelectedDatabase; - public static string SelectedDatabase - { - get { return Database._SelectedDatabase; } - set { Database._SelectedDatabase = value; } - } - private static string _LastDatabase="NoDefault"; - public static string LastDatabase - { - get { return Database._LastDatabase; } - set { Database._LastDatabase = value; } - } - private static string ChooseDatabase(string constr) - { - if (_SelectedDatabase == null) - { - if (LastDatabase != "NoDefault" && LastDatabase != "") - { - if (System.Windows.Forms.MessageBox.Show("Open " + LastDatabase, "Reopen Last Database", System.Windows.Forms.MessageBoxButtons.YesNo, System.Windows.Forms.MessageBoxIcon.Question) == System.Windows.Forms.DialogResult.Yes) - { - SelectedDatabase = LastDatabase; - return constr.Replace("{MENU}", _SelectedDatabase); - } - } - System.Windows.Forms.ContextMenuStrip cms = BuildDatabaseMenu(constr); - while (_SelectedDatabase == null) - { - cms.Show(new System.Drawing.Point((System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width - cms.Width) / 2, (System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height - cms.Height) / 2)); - System.Windows.Forms.Application.DoEvents(); - } - } - return constr.Replace("{MENU}", _SelectedDatabase); - } - private static System.Windows.Forms.ContextMenuStrip BuildDatabaseMenu(string constr) - { - string tmp = constr.Replace("{MENU}", "master"); - SqlConnection cn = new SqlConnection(tmp); - cn.Open(); - // SqlDataAdapter da = new SqlDataAdapter("select name from sysdatabases where name like 'VEP%' order by name", cn); - //SqlDataAdapter da = new SqlDataAdapter("select name, case when object_id('[' + name + ']..Items') is null then 'Not PROMS' when object_id('[' + name + ']..Revisions') is not null then 'Approval' when object_id('[' + name + ']..ContentAudits') is not null then 'Change Manager' else 'Original' end functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - SqlDataAdapter da = new SqlDataAdapter("select name, 'Approval' functionality from sysdatabases where name not in ('master','model','msdb','tempdb') order by name", cn); - da.SelectCommand.CommandTimeout = 300; // 300 sec timeout - DataSet ds = new DataSet(); - try - { - da.Fill(ds); - } - catch (Exception ex) - { - System.Windows.Forms.MessageBox.Show(ex.GetType().Name, ex.Message); - throw(new Exception("Cannot Load Data List",ex)); - } - cn.Close(); - System.Windows.Forms.ContextMenuStrip cms = new System.Windows.Forms.ContextMenuStrip(); - cms.Items.Add("Choose Database"); - System.Windows.Forms.ToolStripMenuItem tsmi = cms.Items[0] as System.Windows.Forms.ToolStripMenuItem; - tsmi.BackColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaption);// System.Drawing.Color.Pink; - tsmi.ForeColor = System.Drawing.Color.FromKnownColor(System.Drawing.KnownColor.ActiveCaptionText); - tsmi.Font = new System.Drawing.Font(tsmi.Font, System.Drawing.FontStyle.Bold); - foreach (DataRow dr in ds.Tables[0].Rows) - { - if (dr["functionality"].ToString() == "Approval") - cms.Items.Add(dr["name"].ToString(), null, new EventHandler(Database_Click)); - } - return cms; - } - - static void Database_Click(object sender, EventArgs e) - { - System.Windows.Forms.ToolStripMenuItem tsmi = sender as System.Windows.Forms.ToolStripMenuItem; - if (tsmi != null) - { - _SelectedDatabase = tsmi.Text; - } - } - - public static SqlConnection VEPROMS_SqlConnection - { - get - { - string strConn = VEPROMS_Connection; // If failure - Fail (Don't try to catch) - // Attempt to make a connection - try - { - SqlConnection cn = new SqlConnection(strConn); - cn.Open(); - return cn; - } - catch (SqlException exsql) - { - const string strAttachError = "An attempt to attach an auto-named database for file "; - if (exsql.Message.StartsWith(strAttachError)) - {// Check to see if the file is missing - string sFile = exsql.Message.Substring(strAttachError.Length); - sFile = sFile.Substring(0, sFile.IndexOf(" failed")); - // "An attempt to attach an auto-named database for file failed" - if (strConn.ToLower().IndexOf("user instance=true") < 0) - { - throw new ApplicationException("Connection String missing attribute: User Instance=True"); - } - if (System.IO.File.Exists(sFile)) - { - throw new ApplicationException("Database file " + sFile + " Cannot be opened\r\n", exsql); - } - else - { - throw new FileNotFoundException("Database file " + sFile + " Not Found", exsql); - } - } - else - { - throw new ApplicationException("Failure on Connect", exsql); - } - } - catch (Exception ex)// Throw Application Exception on Failure - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection Error", ex); - throw new ApplicationException("Failure on Connect", ex); - } - } - } - public static void PurgeData() - { - try - { - //SqlConnection cn = VEPROMS_SqlConnection; - //SqlCommand cmd = new SqlCommand("purgedata", cn); - using (SqlConnection cn = VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("purgedata", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Purge Error", ex); - throw new ApplicationException("Failure on Purge", ex); - } - } - } - public class DbCslaException : Exception - { - internal DbCslaException(string message, Exception innerException) : base(message, innerException) { ;} - internal DbCslaException(string message) : base(message) { ;} - internal DbCslaException() : base() { ;} - } // Class - #region commandbase object jcb - [Serializable()] - public class PurgeDataCommand : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private int _RowsAffected; - public int RowsAffected - { - get { return _RowsAffected; } - set { _RowsAffected = value; } - } - #region Factory Methods - public static int Execute() - { - PurgeDataCommand cmd = new PurgeDataCommand(); - cmd = DataPortal.Execute(cmd); - return cmd.RowsAffected; - } - private PurgeDataCommand() - { /* require use of factory methods */ } - #endregion - #region Server-Side code - protected override void DataPortal_Execute() - { - try - { - //SqlConnection cn = VEPROMS_SqlConnection; - //SqlCommand cmd = new SqlCommand("purgedata", cn); - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("purgedata", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - RowsAffected = cmd.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Purge Error", ex); - throw new ApplicationException("Failure on Purge", ex); - } - } - #endregion - } - [Serializable()] - public class CanTransitionBeCreatedCommand : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private ProposedTransition _ProposedTransition; - public ProposedTransition ProposedTransition - { - get { return _ProposedTransition; } - set { _ProposedTransition = value; } - } - private int _FromID; - public int FromID - { - get { return _FromID; } - set { _FromID = value; } - } - private int _ToID; - public int ToID - { - get { return _ToID; } - set { _ToID = value; } - } - #region Factory Methods - public static ProposedTransition Execute(int fromID, int toID) - { - CanTransitionBeCreatedCommand cmd = new CanTransitionBeCreatedCommand(); - cmd.FromID = fromID; - cmd.ToID = toID; - cmd = DataPortal.Execute(cmd); - return cmd.ProposedTransition; - } - private CanTransitionBeCreatedCommand() - { /* require use of factory methods */ } - #endregion - #region Server-Side code - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] CanTransitionBeCreatedCommand.ReadData", GetHashCode()); - try - { - _ProposedTransition = new ProposedTransition(dr.GetInt32("status"), dr.GetString("fromappl"), dr.GetString("toappl"), dr.GetString("fromstep"), dr.GetString("tostep")); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Detail.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("CanTransitionBeCreatedCommand.ReadData", ex); - } - } - protected override void DataPortal_Execute() - { - try - { - //SqlConnection cn = VEPROMS_SqlConnection; - //SqlCommand cmd = new SqlCommand("purgedata", cn); - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_CanTransitionBeCreated", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.Parameters.AddWithValue("fromItemID", _FromID); - cmd.Parameters.AddWithValue("toItemID", _ToID); - using (SafeDataReader dr = new SafeDataReader(cmd.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("CanTransitionBeCreatedCommand Error", ex); - throw new ApplicationException("Failure on CanTransitionBeCreatedCommand", ex); - } - } - #endregion - } - [Serializable()] - public class WillTransitionsBeValidCommand : CommandBase - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private List _InvalidTransitions; - public List InvalidTransitions - { - get { return _InvalidTransitions; } - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private string _NewAppl; - public string NewAppl - { - get { return _NewAppl; } - set { _NewAppl = value; } - } - #region Factory Methods - public static List Execute(int itemID, string newAppl) - { - WillTransitionsBeValidCommand cmd = new WillTransitionsBeValidCommand(); - cmd.ItemID = itemID; - cmd.NewAppl = newAppl; - cmd = DataPortal.Execute(cmd); - return cmd.InvalidTransitions; - } - private WillTransitionsBeValidCommand() - { /* require use of factory methods */ } - #endregion - #region Server-Side code - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Detail.ReadData", GetHashCode()); - try - { - do - { - _InvalidTransitions.Add(new InvalidTransition(dr.GetInt32("myitemid"), dr.GetString("srcappl"), dr.GetString("tgtappl"), dr.GetString("srcstep"), dr.GetString("tgtstep"))); - } while (dr.Read()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("WillTransitionsBeValidCommand.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("WillTransitionsBeValidCommand.ReadData", ex); - } - } - protected override void DataPortal_Execute() - { - try - { - //SqlConnection cn = VEPROMS_SqlConnection; - //SqlCommand cmd = new SqlCommand("purgedata", cn); - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cmd = new SqlCommand("vesp_WillTransitionsBeValid", cn)) - { - cmd.CommandType = CommandType.StoredProcedure; - cmd.Parameters.AddWithValue("ItemID", _ItemID); - cmd.Parameters.AddWithValue("NewAppl", _NewAppl); - using (SafeDataReader dr = new SafeDataReader(cmd.ExecuteReader())) - { - _InvalidTransitions = new List(); - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("WillTransitionsBeValidCommand Error", ex); - throw new ApplicationException("Failure on WillTransitionsBeValidCommand", ex); - } - } - #endregion - } - [Serializable()] - public class InvalidTransition - { - private int _MyItemID; - public int MyItemID - { - get { return _MyItemID; } - set { _MyItemID = value; } - } - private string _SrcAppl; - public string SrcAppl - { - get { return _SrcAppl; } - set { _SrcAppl = value; } - } - private string _TgtAppl; - public string TgtAppl - { - get { return _TgtAppl; } - set { _TgtAppl = value; } - } - private string _SrcStep; - public string SrcStep - { - get { return _SrcStep; } - set { _SrcStep = value; } - } - private string _TgtStep; - public string TgtStep - { - get { return _TgtStep; } - set { _TgtStep = value; } - } - public InvalidTransition(int myItemID, string srcAppl, string tgtAppl, string srcStep, string tgtStep) - { - _MyItemID = myItemID; - _SrcAppl = srcAppl; - _TgtAppl = tgtAppl; - _SrcStep = srcStep; - _TgtStep = tgtStep; - } - } - [Serializable()] - public class ProposedTransition - { - private int _Status; - public int Status - { - get { return _Status; } - set { _Status = value; } - } - private string _FromAppl; - public string FromAppl - { - get { return _FromAppl; } - set { _FromAppl = value; } - } - private string _ToAppl; - public string ToAppl - { - get { return _ToAppl; } - set { _ToAppl = value; } - } - private string _FromStep; - public string FromStep - { - get { return _FromStep; } - set { _FromStep = value; } - } - private string _ToStep; - public string ToStep - { - get { return _ToStep; } - set { _ToStep = value; } - } - public ProposedTransition(int status, string fromAppl, string toAppl, string fromStep, string toStep) - { - _Status = status; - _FromAppl = fromAppl; - _ToAppl = toAppl; - _FromStep = fromStep; - _ToStep = toStep; - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/FigureInfoList.cs.bak b/PROMS/VEPROMS.CSLA.Library/Generated/FigureInfoList.cs.bak deleted file mode 100644 index df8b4b7d..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/FigureInfoList.cs.bak +++ /dev/null @@ -1,312 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FigureInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FigureInfoListConverter))] - public partial class FigureInfoList : 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 (FigureInfo tmp in this) - { - tmp.Changed += new FigureInfoEvent(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 (FigureInfo tmp in this) - { - tmp.Changed -= new FigureInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static FigureInfoList _FigureInfoList = null; - /// - /// Return a list of all projects. - /// - public static FigureInfoList Get() - { - try - { - if (_FigureInfoList != null) - return _FigureInfoList; - FigureInfoList tmp = DataPortal.Fetch(); - FigureInfo.AddList(tmp); - tmp.AddEvents(); - _FigureInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on FigureInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static FigureInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on FigureInfoList.Get", ex); - // } - //} - public static FigureInfoList GetByROFstID(int rOFstID) - { - try - { - FigureInfoList tmp = DataPortal.Fetch(new ROFstIDCriteria(rOFstID)); - FigureInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on FigureInfoList.GetByROFstID", ex); - } - } - public static FigureInfoList GetByImageID(int imageID) - { - try - { - FigureInfoList tmp = DataPortal.Fetch(new ImageIDCriteria(imageID)); - FigureInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on FigureInfoList.GetByImageID", ex); - } - } - private FigureInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FigureInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getFigures"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new FigureInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FigureInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("FigureInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ROFstIDCriteria - { - public ROFstIDCriteria(int rOFstID) - { - _ROFstID = rOFstID; - } - private int _ROFstID; - public int ROFstID - { - get { return _ROFstID; } - set { _ROFstID = value; } - } - } - private void DataPortal_Fetch(ROFstIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FigureInfoList.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())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new FigureInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FigureInfoList.DataPortal_FetchROFstID", ex); - throw new DbCslaException("FigureInfoList.DataPortal_Fetch", ex); - } - 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}] FigureInfoList.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())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new FigureInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FigureInfoList.DataPortal_FetchImageID", ex); - throw new DbCslaException("FigureInfoList.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 - FigureInfoListPropertyDescriptor pd = new FigureInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class FigureInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private FigureInfo Item { get { return (FigureInfo)_Item; } } - public FigureInfoListPropertyDescriptor(FigureInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class FigureInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FigureInfoList) - { - // Return department and department role separated by comma. - return ((FigureInfoList)value).Items.Count.ToString() + " Figures"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/ItemInfo.cs.bak b/PROMS/VEPROMS.CSLA.Library/Generated/ItemInfo.cs.bak deleted file mode 100644 index 0fa82c48..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/ItemInfo.cs.bak +++ /dev/null @@ -1,692 +0,0 @@ -// ======================================================================== -// 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 ItemInfoEvent(object sender); - /// - /// ItemInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemInfoConverter))] - public partial class ItemInfo : ReadOnlyBase, IDisposable - { - public event ItemInfoEvent 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(ItemInfo itemInfo) - { - if (!_CacheList.Contains(itemInfo)) _CacheList.Add(itemInfo); // In AddToCache - } - protected static void RemoveFromCache(ItemInfo itemInfo) - { - while (_CacheList.Contains(itemInfo)) _CacheList.Remove(itemInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move ItemInfo(s) from temporary _CacheList to _CacheByPrimaryKey - { - ItemInfo tmp = _CacheList[0]; // Get the first ItemInfo - string pKey = tmp.ItemID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first ItemInfo - } - } - internal static void AddList(ItemInfoList lst) - { - foreach (ItemInfo item in lst) AddToCache(item); - } - protected static ItemInfo GetCachedByPrimaryKey(int itemID) - { - ConvertListToDictionary(); - string key = itemID.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 Item _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _ItemID; - [System.ComponentModel.DataObjectField(true, true)] - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemID", true); - return _ItemID; - } - } - private int? _PreviousID; - public int? PreviousID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("PreviousID", true); - if (_MyPrevious != null) _PreviousID = _MyPrevious.ItemID; - return _PreviousID; - } - } - private ItemInfo _MyPrevious; - public ItemInfo MyPrevious - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("MyPrevious", true); - if (_MyPrevious == null && _PreviousID != null) _MyPrevious = ItemInfo.Get((int)_PreviousID); - return _MyPrevious; - } - } - 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 ContentInfo _MyContent; - public ContentInfo MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("MyContent", true); - if (_MyContent == null && _ContentID != 0) _MyContent = ContentInfo.Get(_ContentID); - return _MyContent; - } - } - 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 _ItemAnnotationCount = 0; - /// - /// Count of ItemAnnotations for this Item - /// - public int ItemAnnotationCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemAnnotationCount", true); - if (_ItemAnnotationCount < 0) - _ItemAnnotationCount = ItemAnnotations.Count; - return _ItemAnnotationCount; - } - } - private AnnotationInfoList _ItemAnnotations = null; - [TypeConverter(typeof(AnnotationInfoListConverter))] - public AnnotationInfoList ItemAnnotations - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemAnnotations", true); - if (_ItemAnnotationCount < 0 || (_ItemAnnotationCount > 0 && _ItemAnnotations == null)) - _ItemAnnotations = AnnotationInfoList.GetByItemID(_ItemID); - if (_ItemAnnotationCount < 0) - _ItemAnnotationCount = _ItemAnnotations.Count; - return _ItemAnnotations; - } - } - public void RefreshItemAnnotations() - { - _ItemAnnotationCount = -1; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._ItemAnnotationCount = -1; // This will cause the data to be requeried - } - private int _ItemDocVersionCount = 0; - /// - /// Count of ItemDocVersions for this Item - /// - public int ItemDocVersionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemDocVersionCount", true); - if (_ItemDocVersionCount < 0) - _ItemDocVersionCount = ItemDocVersions.Count; - return _ItemDocVersionCount; - } - } - private DocVersionInfoList _ItemDocVersions = null; - [TypeConverter(typeof(DocVersionInfoListConverter))] - public DocVersionInfoList ItemDocVersions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemDocVersions", true); - if (_ItemDocVersionCount < 0 || (_ItemDocVersionCount > 0 && _ItemDocVersions == null)) - _ItemDocVersions = DocVersionInfoList.GetByItemID(_ItemID); - if (_ItemDocVersionCount < 0) - _ItemDocVersionCount = _ItemDocVersions.Count; - return _ItemDocVersions; - } - } - public void RefreshItemDocVersions() - { - _ItemDocVersionCount = -1; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._ItemDocVersionCount = -1; // This will cause the data to be requeried - } - private int _NextItemCount = 0; - /// - /// Count of NextItems for this Item - /// - public int NextItemCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("NextItemCount", true); - if (_NextItemCount < 0) - _NextItemCount = NextItems.Count; - return _NextItemCount; - } - } - private ItemInfoList _NextItems = null; - [TypeConverter(typeof(ItemInfoListConverter))] - public ItemInfoList NextItems - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("NextItems", true); - if (_NextItemCount < 0 || (_NextItemCount > 0 && _NextItems == null)) - _NextItems = ItemInfoList.GetNext(_ItemID); - if (_NextItemCount < 0) - _NextItemCount = _NextItems.Count; - return _NextItems; - } - } - public void RefreshNextItems() - { - _NextItemCount = -1; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._NextItemCount = -1; // This will cause the data to be requeried - } - private int _ItemPartCount = 0; - /// - /// Count of ItemParts for this Item - /// - public int ItemPartCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemPartCount", true); - if (_ItemPartCount < 0) - _ItemPartCount = ItemParts.Count; - return _ItemPartCount; - } - } - private PartInfoList _ItemParts = null; - [TypeConverter(typeof(PartInfoListConverter))] - public PartInfoList ItemParts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemParts", true); - if (_ItemPartCount < 0 || (_ItemPartCount > 0 && _ItemParts == null)) - _ItemParts = PartInfoList.GetByItemID(_ItemID); - if (_ItemPartCount < 0) - _ItemPartCount = _ItemParts.Count; - return _ItemParts; - } - } - public void RefreshItemParts() - { - _ItemPartCount = -1; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._ItemPartCount = -1; // This will cause the data to be requeried - } - private int _ItemTransition_RangeIDCount = 0; - /// - /// Count of ItemTransitions_RangeID for this Item - /// - public int ItemTransition_RangeIDCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemTransition_RangeIDCount", true); - if (_ItemTransition_RangeIDCount < 0) - _ItemTransition_RangeIDCount = ItemTransitions_RangeID.Count; - return _ItemTransition_RangeIDCount; - } - } - private TransitionInfoList _ItemTransitions_RangeID = null; - [TypeConverter(typeof(TransitionInfoListConverter))] - public TransitionInfoList ItemTransitions_RangeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemTransitions_RangeID", true); - if (_ItemTransition_RangeIDCount < 0 || (_ItemTransition_RangeIDCount > 0 && _ItemTransitions_RangeID == null)) - _ItemTransitions_RangeID = TransitionInfoList.GetByRangeID(_ItemID); - if (_ItemTransition_RangeIDCount < 0) - _ItemTransition_RangeIDCount = _ItemTransitions_RangeID.Count; - return _ItemTransitions_RangeID; - } - } - public void RefreshItemTransitions_RangeID() - { - _ItemTransition_RangeIDCount = -1; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._ItemTransition_RangeIDCount = -1; // This will cause the data to be requeried - } - private int _ItemTransition_ToIDCount = 0; - /// - /// Count of ItemTransitions_ToID for this Item - /// - public int ItemTransition_ToIDCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemTransition_ToIDCount", true); - if (_ItemTransition_ToIDCount < 0) - _ItemTransition_ToIDCount = ItemTransitions_ToID.Count; - return _ItemTransition_ToIDCount; - } - } - private TransitionInfoList _ItemTransitions_ToID = null; - [TypeConverter(typeof(TransitionInfoListConverter))] - public TransitionInfoList ItemTransitions_ToID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemTransitions_ToID", true); - if (_ItemTransition_ToIDCount < 0 || (_ItemTransition_ToIDCount > 0 && _ItemTransitions_ToID == null)) - _ItemTransitions_ToID = TransitionInfoList.GetByToID(_ItemID); - if (_ItemTransition_ToIDCount < 0) - _ItemTransition_ToIDCount = _ItemTransitions_ToID.Count; - return _ItemTransitions_ToID; - } - } - public void RefreshItemTransitions_ToID() - { - _ItemTransition_ToIDCount = -1; - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._ItemTransition_ToIDCount = -1; // This will cause the data to be requeried - } - // CSLATODO: Replace base ItemInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ItemInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check ItemInfo.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 ItemInfo - protected override object GetIdValue() - { - return MyItemInfoUnique; // Absolutely Unique ID - } - #endregion - #region Factory Methods - private static int _ItemInfoUnique = 0; - private static int ItemInfoUnique - { get { return ++_ItemInfoUnique; } } - private int _MyItemInfoUnique = ItemInfoUnique; - public int MyItemInfoUnique // Absolutely Unique ID - Info - { get { return _MyItemInfoUnique; } } - protected ItemInfo() - {/* require use of factory methods */ - AddToCache(this); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~ItemInfo() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(ItemID.ToString())) return; - List listItemInfo = _CacheByPrimaryKey[ItemID.ToString()]; // Get the list of items - while (listItemInfo.Contains(this)) listItemInfo.Remove(this); // Remove the item from the list - if (listItemInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(ItemID.ToString()); // remove the list - if (_MyContent != null) - _MyContent = null; - if (_MyPrevious != null) - _MyPrevious = null; - //if (_ActiveFormat != null) - // _ActiveFormat = null; - //if (_ActiveParent != null) - // _ActiveParent = null; - //if (_ActiveSection != null) - // _ActiveSection = null; - //if (_MyDocVersion != null) - // _MyDocVersion = null; - //if (_ParentNoteOrCaution != null) - // _ParentNoteOrCaution = null; - } - public virtual Item Get() - { - return _Editable = Item.Get(_ItemID); - } - public static void Refresh(Item tmp) - { - string key = tmp.ItemID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ItemInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Item tmp) - { - if (_PreviousID != tmp.PreviousID) - { - if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for old value - _PreviousID = tmp.PreviousID; // Update the value - } - _MyPrevious = null; // Reset list so that the next line gets a new list - if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value - //if (_ContentID != tmp.ContentID) - //{ - if (MyContent != null) MyContent.RefreshContentItems(); // 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.RefreshContentItems(); // Update List for new value - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _ItemInfoExtension.Refresh(this); -//RHM Removed 20090724 - Duplicates function of code above. -// - Dispose caused error when a new step was added. -// - Resequence of transitions did not work properly. -// if(_MyPrevious != null) -// { -// _MyPrevious.Dispose();// Dispose related value -// _MyPrevious = null;// Reset related value -// } -//RHM Removed 20090724 - Duplicates function of code above. -// - Dispose caused error when a new step was added. -// - Resequence of transitions did not work properly. -// if(_MyContent != null) -// { -// _MyContent.Dispose();// Dispose related value -// _MyContent = null;// Reset related value -// } - OnChange();// raise an event - } - public static void Refresh(ContentItem tmp) - { - string key = tmp.ItemID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ItemInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ContentItem tmp) - { - if (_PreviousID != tmp.PreviousID) - { - if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for old value - _PreviousID = tmp.PreviousID; // Update the value - } - _MyPrevious = null; // Reset list so that the next line gets a new list - if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _ItemInfoExtension.Refresh(this); -//RHM Removed 20090724 - Duplicates function of code above. -// - Dispose caused error when a new step was added. -// - Resequence of transitions did not work properly. -// if(_MyPrevious != null) -// { -// _MyPrevious.Dispose();// Dispose related value -// _MyPrevious = null;// Reset related value -// } -//RHM Removed 20090724 - Duplicates function of code above. -// - Dispose caused error when a new step was added. -// - Resequence of transitions did not work properly. -// if(_MyContent != null) -// { -// _MyContent.Dispose();// Dispose related value -// _MyContent = null;// Reset related value -// } - OnChange();// raise an event - } - public static ItemInfo Get(int itemID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - ItemInfo tmp = GetCachedByPrimaryKey(itemID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ItemInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal ItemInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfo.Constructor", ex); - throw new DbCslaException("ItemInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _ItemID; - public int ItemID - { get { return _ItemID; } } - public PKCriteria(int itemID) - { - _ItemID = itemID; - } - } - protected void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.ReadData", GetHashCode()); - try - { - _ItemID = dr.GetInt32("ItemID"); - _PreviousID = (int?)dr.GetValue("PreviousID"); - _ContentID = dr.GetInt32("ContentID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _ItemAnnotationCount = dr.GetInt32("AnnotationCount"); - _ItemDocVersionCount = dr.GetInt32("DocVersionCount"); - _NextItemCount = dr.GetInt32("NextCount"); - _ItemPartCount = dr.GetInt32("PartCount"); - _ItemTransition_RangeIDCount = dr.GetInt32("Transition_RangeIDCount"); - _ItemTransition_ToIDCount = dr.GetInt32("Transition_ToIDCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ItemInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.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 = "getItem"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - 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("ItemInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ItemInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - ItemInfoExtension _ItemInfoExtension = new ItemInfoExtension(); - [Serializable()] - partial class ItemInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(ItemInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class ItemInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemInfo) - { - // Return the ToString value - return ((ItemInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Generated/RevisionROCheck.cs.bak b/PROMS/VEPROMS.CSLA.Library/Generated/RevisionROCheck.cs.bak deleted file mode 100644 index b16b77a2..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/RevisionROCheck.cs.bak +++ /dev/null @@ -1,956 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// RevisionROCheck Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RevisionROCheckConverter))] - public partial class RevisionROCheck : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshRevisionROChecks = new List(); - private void AddToRefreshList(List refreshRevisionROChecks) - { - if (IsDirty) - refreshRevisionROChecks.Add(this); - } - private void BuildRefreshList() - { - _RefreshRevisionROChecks = new List(); - AddToRefreshList(_RefreshRevisionROChecks); - } - private void ProcessRefreshList() - { - foreach (RevisionROCheck tmp in _RefreshRevisionROChecks) - { - RevisionROCheckInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(RevisionROCheck revisionROCheck) - { - if (!_CacheList.Contains(revisionROCheck)) _CacheList.Add(revisionROCheck); // In AddToCache - } - protected static void RemoveFromCache(RevisionROCheck revisionROCheck) - { - while (_CacheList.Contains(revisionROCheck)) _CacheList.Remove(revisionROCheck); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move RevisionROCheck(s) from temporary _CacheList to _CacheByPrimaryKey - { - RevisionROCheck tmp = _CacheList[0]; // Get the first RevisionROCheck - string pKey = tmp.CheckID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first RevisionROCheck - } - } - protected static RevisionROCheck GetCachedByPrimaryKey(int checkID) - { - ConvertListToDictionary(); - string key = checkID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextCheckID = -1; - public static int NextCheckID - { - get { return _nextCheckID--; } - } - private int _CheckID; - [System.ComponentModel.DataObjectField(true, true)] - public int CheckID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("CheckID", true); - return _CheckID; - } - } - private int _ItemID; - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemID", true); - return _ItemID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty("ItemID", true); - if (_ItemID != value) - { - _ItemID = value; - PropertyHasChanged(); - } - } - } - private int _ROID; - public int 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 (_ROID != value) - { - _ROID = value; - PropertyHasChanged(); - } - } - } - private string _RODate = string.Empty; - public string RODate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("RODate", true); - return _RODate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty("RODate", true); - if (value == null) value = string.Empty; - _RODate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_RODate != tmp.ToString()) - { - _RODate = tmp.ToString(); - // CSLATODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _ROValue = string.Empty; - public string ROValue - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ROValue", true); - return _ROValue; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty("ROValue", true); - if (value == null) value = string.Empty; - if (_ROValue != value) - { - _ROValue = value; - PropertyHasChanged(); - } - } - } - public override bool IsDirty - { - get { return base.IsDirty; } - } - public bool IsDirtyList(List list) - { - return base.IsDirty; - } - public override bool IsValid - { - get { return (IsNew && !IsDirty) ? true : base.IsValid; } - } - public bool IsValidList(List list) - { - return (IsNew && !IsDirty) ? true : base.IsValid; - } - // CSLATODO: Replace base RevisionROCheck.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RevisionROCheck - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check RevisionROCheck.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 RevisionROCheck - protected override object GetIdValue() - { - return MyRevisionROCheckUnique; // Absolutely Unique ID - } - #endregion - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - { - get - { - if (_CheckingBrokenRules) return null; - if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null; - 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(RODateValid, "RODate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("ROValue", 1073741823)); - //ValidationRules.AddDependantProperty("x", "y"); - _RevisionROCheckExtension.AddValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _RevisionROCheckExtension.AddInstanceValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - } - private static bool RODateValid(RevisionROCheck target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._RODate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - // Sample data comparison validation rule - //private bool StartDateGTEndDate(object target, Csla.Validation.RuleArgs e) - //{ - // if (_started > _ended) - // { - // e.Description = "Start date can't be after end date"; - // return false; - // } - // else - // return true; - //} - #endregion - #region Authorization Rules - protected override void AddAuthorizationRules() - { - //CSLATODO: Who can read/write which fields - //AuthorizationRules.AllowRead(CheckID, ""); - //AuthorizationRules.AllowRead(ItemID, ""); - //AuthorizationRules.AllowRead(ROID, ""); - //AuthorizationRules.AllowRead(RODate, ""); - //AuthorizationRules.AllowRead(ROValue, ""); - //AuthorizationRules.AllowWrite(ItemID, ""); - //AuthorizationRules.AllowWrite(ROID, ""); - //AuthorizationRules.AllowWrite(RODate, ""); - //AuthorizationRules.AllowWrite(ROValue, ""); - _RevisionROCheckExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //CSLATODO: Who can read/write which fields - _RevisionROCheckExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // CSLATODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // CSLATODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // CSLATODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // CSLATODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _RevisionROCheckUnique = 0; - protected static int RevisionROCheckUnique - { get { return ++_RevisionROCheckUnique; } } - private int _MyRevisionROCheckUnique = RevisionROCheckUnique; - public int MyRevisionROCheckUnique // Absolutely Unique ID - Editable - { get { return _MyRevisionROCheckUnique; } } - protected RevisionROCheck() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(CheckID.ToString())) - { - List listRevisionROCheck = _CacheByPrimaryKey[CheckID.ToString()]; // Get the list of items - while (listRevisionROCheck.Contains(this)) listRevisionROCheck.Remove(this); // Remove the item from the list - if (listRevisionROCheck.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(CheckID.ToString()); // remove the list - } - } - public static RevisionROCheck New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a RevisionROCheck"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on RevisionROCheck.New", ex); - } - } - public static RevisionROCheck New(int itemID, int roid) - { - RevisionROCheck tmp = RevisionROCheck.New(); - tmp.ItemID = itemID; - tmp.ROID = roid; - return tmp; - } - public static RevisionROCheck New(int itemID, int roid, string rODate, string rOValue) - { - RevisionROCheck tmp = RevisionROCheck.New(); - tmp.ItemID = itemID; - tmp.ROID = roid; - tmp.RODate = rODate; - tmp.ROValue = rOValue; - return tmp; - } - public static RevisionROCheck MakeRevisionROCheck(int itemID, int roid, string rODate, string rOValue) - { - RevisionROCheck tmp = RevisionROCheck.New(itemID, roid, rODate, rOValue); - if (tmp.IsSavable) - { - RevisionROCheck 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 RevisionROCheck Get(int checkID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a RevisionROCheck"); - try - { - RevisionROCheck tmp = GetCachedByPrimaryKey(checkID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(checkID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up RevisionROCheck - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RevisionROCheck.Get", ex); - } - } - public static RevisionROCheck Get(SafeDataReader dr) - { - if (dr.Read()) return new RevisionROCheck(dr); - return null; - } - internal RevisionROCheck(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int checkID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a RevisionROCheck"); - try - { - DataPortal.Delete(new PKCriteria(checkID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on RevisionROCheck.Delete", ex); - } - } - public override RevisionROCheck Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a RevisionROCheck"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a RevisionROCheck"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a RevisionROCheck"); - try - { - BuildRefreshList(); - RevisionROCheck revisionROCheck = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(revisionROCheck);//Refresh the item in AllList - ProcessRefreshList(); - return revisionROCheck; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _CheckID; - public int CheckID - { get { return _CheckID; } } - public PKCriteria(int checkID) - { - _CheckID = checkID; - } - } - // CSLATODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _CheckID = NextCheckID; - // Database Defaults - - // CSLATODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheck.ReadData", GetHashCode()); - try - { - _CheckID = dr.GetInt32("CheckID"); - _ItemID = dr.GetInt32("ItemID"); - _ROID = dr.GetInt32("ROID"); - _RODate = dr.GetSmartDate("RODate").Text; - _ROValue = dr.GetString("ROValue"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionROCheck.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RevisionROCheck.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheck.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 = "getRevisionROCheck"; - cm.Parameters.AddWithValue("@CheckID", criteria.CheckID); - 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("RevisionROCheck.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RevisionROCheck.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("RevisionROCheck.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RevisionROCheck.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheck.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addRevisionROCheck"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ItemID", _ItemID); - cm.Parameters.AddWithValue("@ROID", _ROID); - cm.Parameters.AddWithValue("@RODate", new SmartDate(_RODate).DBValue); - cm.Parameters.AddWithValue("@ROValue", _ROValue); - // Output Calculated Columns - SqlParameter param_CheckID = new SqlParameter("@newCheckID", SqlDbType.Int); - param_CheckID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_CheckID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _CheckID = (int)cm.Parameters["@newCheckID"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheck.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionROCheck.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RevisionROCheck.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Add(SqlConnection cn, ref int checkID, int itemID, int roid, SmartDate rODate, string rOValue) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheck.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addRevisionROCheck"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ItemID", itemID); - cm.Parameters.AddWithValue("@ROID", roid); - cm.Parameters.AddWithValue("@RODate", rODate.DBValue); - cm.Parameters.AddWithValue("@ROValue", rOValue); - // Output Calculated Columns - SqlParameter param_CheckID = new SqlParameter("@newCheckID", SqlDbType.Int); - param_CheckID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_CheckID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - checkID = (int)cm.Parameters["@newCheckID"].Value; - // No Timestamp value to return - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionROCheck.Add", ex); - throw new DbCslaException("RevisionROCheck.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}] RevisionROCheck.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("RevisionROCheck.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}] RevisionROCheck.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateRevisionROCheck"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@CheckID", _CheckID); - cm.Parameters.AddWithValue("@ItemID", _ItemID); - cm.Parameters.AddWithValue("@ROID", _ROID); - cm.Parameters.AddWithValue("@RODate", new SmartDate(_RODate).DBValue); - cm.Parameters.AddWithValue("@ROValue", _ROValue); - // Output Calculated Columns - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionROCheck.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) - RevisionROCheck.Add(cn, ref _CheckID, _ItemID, _ROID, new SmartDate(_RODate), _ROValue); - else - RevisionROCheck.Update(cn, ref _CheckID, _ItemID, _ROID, new SmartDate(_RODate), _ROValue); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Update(SqlConnection cn, ref int checkID, int itemID, int roid, SmartDate rODate, string rOValue) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheck.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateRevisionROCheck"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@CheckID", checkID); - cm.Parameters.AddWithValue("@ItemID", itemID); - cm.Parameters.AddWithValue("@ROID", roid); - cm.Parameters.AddWithValue("@RODate", rODate); - cm.Parameters.AddWithValue("@ROValue", rOValue); - // Output Calculated Columns - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - // No Timestamp value to return - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionROCheck.Update", ex); - throw new DbCslaException("RevisionROCheck.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_CheckID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheck.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRevisionROCheck"; - cm.Parameters.AddWithValue("@CheckID", criteria.CheckID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionROCheck.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RevisionROCheck.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int checkID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheck.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRevisionROCheck"; - // Input PK Fields - cm.Parameters.AddWithValue("@CheckID", checkID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionROCheck.Remove", ex); - throw new DbCslaException("RevisionROCheck.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int checkID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(checkID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RevisionROCheck.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _CheckID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int checkID) - { - _CheckID = checkID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheck.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsRevisionROCheck"; - cm.Parameters.AddWithValue("@CheckID", _CheckID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionROCheck.DataPortal_Execute", ex); - throw new DbCslaException("RevisionROCheck.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - RevisionROCheckExtension _RevisionROCheckExtension = new RevisionROCheckExtension(); - [Serializable()] - partial class RevisionROCheckExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - // 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 RevisionROCheckConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RevisionROCheck) - { - // Return the ToString value - return ((RevisionROCheck)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create RevisionROCheckExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS_.CSLA.Library -//{ -// public partial class RevisionROCheck -// { -// partial class RevisionROCheckExtension : extensionBase -// { -// // CSLATODO: Override automatic defaults -// 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/RevisionROCheckInfo.cs.bak b/PROMS/VEPROMS.CSLA.Library/Generated/RevisionROCheckInfo.cs.bak deleted file mode 100644 index 68c336cc..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Generated/RevisionROCheckInfo.cs.bak +++ /dev/null @@ -1,334 +0,0 @@ -// ======================================================================== -// 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 RevisionROCheckInfoEvent(object sender); - /// - /// RevisionROCheckInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RevisionROCheckInfoConverter))] - public partial class RevisionROCheckInfo : ReadOnlyBase, IDisposable - { - public event RevisionROCheckInfoEvent 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(RevisionROCheckInfo revisionROCheckInfo) - { - if (!_CacheList.Contains(revisionROCheckInfo)) _CacheList.Add(revisionROCheckInfo); // In AddToCache - } - protected static void RemoveFromCache(RevisionROCheckInfo revisionROCheckInfo) - { - while (_CacheList.Contains(revisionROCheckInfo)) _CacheList.Remove(revisionROCheckInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move RevisionROCheckInfo(s) from temporary _CacheList to _CacheByPrimaryKey - { - RevisionROCheckInfo tmp = _CacheList[0]; // Get the first RevisionROCheckInfo - string pKey = tmp.CheckID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first RevisionROCheckInfo - } - } - internal static void AddList(RevisionROCheckInfoList lst) - { - foreach (RevisionROCheckInfo item in lst) AddToCache(item); - } - protected static RevisionROCheckInfo GetCachedByPrimaryKey(int checkID) - { - ConvertListToDictionary(); - string key = checkID.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 RevisionROCheck _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _CheckID; - [System.ComponentModel.DataObjectField(true, true)] - public int CheckID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("CheckID", true); - return _CheckID; - } - } - private int _ItemID; - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ItemID", true); - return _ItemID; - } - } - private int _ROID; - public int ROID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ROID", true); - return _ROID; - } - } - private string _RODate = string.Empty; - public string RODate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("RODate", true); - return _RODate; - } - } - private string _ROValue = string.Empty; - public string ROValue - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty("ROValue", true); - return _ROValue; - } - } - // CSLATODO: Replace base RevisionROCheckInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RevisionROCheckInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check RevisionROCheckInfo.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 RevisionROCheckInfo - protected override object GetIdValue() - { - return MyRevisionROCheckInfoUnique; // Absolutely Unique ID - } - #endregion - #region Factory Methods - private static int _RevisionROCheckInfoUnique = 0; - private static int RevisionROCheckInfoUnique - { get { return ++_RevisionROCheckInfoUnique; } } - private int _MyRevisionROCheckInfoUnique = RevisionROCheckInfoUnique; - public int MyRevisionROCheckInfoUnique // Absolutely Unique ID - Info - { get { return _MyRevisionROCheckInfoUnique; } } - protected RevisionROCheckInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(CheckID.ToString())) return; - List listRevisionROCheckInfo = _CacheByPrimaryKey[CheckID.ToString()]; // Get the list of items - while (listRevisionROCheckInfo.Contains(this)) listRevisionROCheckInfo.Remove(this); // Remove the item from the list - if (listRevisionROCheckInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(CheckID.ToString()); // remove the list - } - public virtual RevisionROCheck Get() - { - return _Editable = RevisionROCheck.Get(_CheckID); - } - public static void Refresh(RevisionROCheck tmp) - { - string key = tmp.CheckID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (RevisionROCheckInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(RevisionROCheck tmp) - { - _ItemID = tmp.ItemID; - _ROID = tmp.ROID; - _RODate = tmp.RODate; - _ROValue = tmp.ROValue; - _RevisionROCheckInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static RevisionROCheckInfo Get(int checkID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a RevisionROCheck"); - try - { - RevisionROCheckInfo tmp = GetCachedByPrimaryKey(checkID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(checkID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up RevisionROCheckInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RevisionROCheckInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal RevisionROCheckInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheckInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionROCheckInfo.Constructor", ex); - throw new DbCslaException("RevisionROCheckInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _CheckID; - public int CheckID - { get { return _CheckID; } } - public PKCriteria(int checkID) - { - _CheckID = checkID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheckInfo.ReadData", GetHashCode()); - try - { - _CheckID = dr.GetInt32("CheckID"); - _ItemID = dr.GetInt32("ItemID"); - _ROID = dr.GetInt32("ROID"); - _RODate = dr.GetSmartDate("RODate").Text; - _ROValue = dr.GetString("ROValue"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RevisionROCheckInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RevisionROCheckInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RevisionROCheckInfo.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 = "getRevisionROCheck"; - cm.Parameters.AddWithValue("@CheckID", criteria.CheckID); - 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("RevisionROCheckInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RevisionROCheckInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - RevisionROCheckInfoExtension _RevisionROCheckInfoExtension = new RevisionROCheckInfoExtension(); - [Serializable()] - partial class RevisionROCheckInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(RevisionROCheckInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class RevisionROCheckInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RevisionROCheckInfo) - { - // Return the ToString value - return ((RevisionROCheckInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/CommonRules.cs b/PROMS/VEPROMS.CSLA.Library/NewGenerated/CommonRules.cs deleted file mode 100644 index b59fd468..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/CommonRules.cs +++ /dev/null @@ -1,40 +0,0 @@ -// ======================================================================== -// 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; -using System.Reflection; -namespace VEPROMS.CSLA.Library -{ - /// - /// CommonRules Generated by MyGeneration using the CSLA Object Mapping template - /// - public static class CommonRules - { - public static bool Required(object target, Csla.Validation.RuleArgs e) - { - PropertyInfo propertyInfoObj = target.GetType().GetProperty(e.PropertyName); - if (propertyInfoObj == null) return true; - if (propertyInfoObj.GetValue(target, null) == null) - { - e.Description = e.PropertyName + " is a required field"; - return false; - } - return true; - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/Database.cs b/PROMS/VEPROMS.CSLA.Library/NewGenerated/Database.cs deleted file mode 100644 index a92a62b8..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/Database.cs +++ /dev/null @@ -1,144 +0,0 @@ -// ======================================================================== -// 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.Diagnostics; -namespace VEPROMS.CSLA.Library -{ - /// - /// Database Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public static partial class Database - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - public static void LogException(string s, Exception ex) - { - int i = 0; - Console.WriteLine("Error - {0}", s); - for (; ex != null; ex = ex.InnerException) - { - Console.WriteLine("{0}{1} - {2}", "".PadLeft(++i * 2), ex.GetType().ToString(), ex.Message); - } - } - private static bool _LoggingInfo = false; // By default don't log info - public static bool LoggingInfo - { - get { return _LoggingInfo; } - set { _LoggingInfo = value; } - } - static System.Diagnostics.Process _CurrentProcess = System.Diagnostics.Process.GetCurrentProcess(); - public static void LogInfo(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - public static void LogDebug(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - private static string _ConnectionName = "VEPROMS"; - public static string ConnectionName - { - get { return Database._ConnectionName; } - set { Database._ConnectionName = value; } - } - public static string VEPROMS_Connection - { - get - { - DateTime.Today.ToLongDateString(); - ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings[ConnectionName]; - if (cs == null) - { - throw new ApplicationException("Database.cs Could not find connection " + ConnectionName); - } - return cs.ConnectionString; - } - } - public static SqlConnection VEPROMS_SqlConnection - { - get - { - string strConn = VEPROMS_Connection; // If failure - Fail (Don't try to catch) - // Attempt to make a connection - try - { - SqlConnection cn = new SqlConnection(strConn); - cn.Open(); - return cn; - } - catch (SqlException exsql) - { - const string strAttachError = "An attempt to attach an auto-named database for file "; - if (exsql.Message.StartsWith(strAttachError)) - {// Check to see if the file is missing - string sFile = exsql.Message.Substring(strAttachError.Length); - sFile = sFile.Substring(0, sFile.IndexOf(" failed")); - // "An attempt to attach an auto-named database for file failed" - if (strConn.ToLower().IndexOf("user instance=true") < 0) - { - throw new ApplicationException("Connection String missing attribute: User Instance=True"); - } - if (System.IO.File.Exists(sFile)) - { - throw new ApplicationException("Database file " + sFile + " Cannot be opened\r\n", exsql); - } - else - { - throw new FileNotFoundException("Database file " + sFile + " Not Found", exsql); - } - } - else - { - throw new ApplicationException("Failure on Connect", exsql); - } - } - catch (Exception ex)// Throw Application Exception on Failure - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection Error", ex); - throw new ApplicationException("Failure on Connect", ex); - } - } - } - public static void PurgeData() - { - try - { - SqlConnection cn = VEPROMS_SqlConnection; - SqlCommand cmd = new SqlCommand("purgedata", cn); - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.ExecuteNonQuery(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Purge Error", ex); - throw new ApplicationException("Failure on Purge", ex); - } - } - } - public class DbCslaException : Exception - { - internal DbCslaException(string message, Exception innerException) : base(message, innerException) { ;} - internal DbCslaException(string message) : base(message) { ;} - internal DbCslaException() : base() { ;} - } // Class -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/Owner.cs b/PROMS/VEPROMS.CSLA.Library/NewGenerated/Owner.cs deleted file mode 100644 index 30a7d78c..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/Owner.cs +++ /dev/null @@ -1,986 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Owner Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(OwnerConverter))] - public partial class Owner : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshOwners = new List(); - private void AddToRefreshList(List refreshOwners) - { - if (IsDirty) - refreshOwners.Add(this); - } - private void ClearRefreshList() - { - _RefreshOwners = new List(); - } - private void BuildRefreshList() - { - ClearRefreshList(); - AddToRefreshList(_RefreshOwners); - } - private void ProcessRefreshList() - { - foreach (Owner tmp in _RefreshOwners) - { - OwnerInfo.Refresh(tmp); - } - ClearRefreshList(); - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Owner owner) - { - if (!_CacheList.Contains(owner)) _CacheList.Add(owner); // In AddToCache - } - protected static void RemoveFromCache(Owner owner) - { - while (_CacheList.Contains(owner)) _CacheList.Remove(owner); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move Owner(s) from temporary _CacheList to _CacheByPrimaryKey - { - Owner tmp = _CacheList[0]; // Get the first Owner - string pKey = tmp.OwnerID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first Owner - } - } - protected static Owner GetCachedByPrimaryKey(int ownerID) - { - ConvertListToDictionary(); - string key = ownerID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextOwnerID = -1; - public static int NextOwnerID - { - get { return _nextOwnerID--; } - } - private int _OwnerID; - [System.ComponentModel.DataObjectField(true, true)] - public int OwnerID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _OwnerID; - } - } - private int _SessionID; - public int SessionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _SessionID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_SessionID != value) - { - _SessionID = value; - PropertyHasChanged(); - } - } - } - private byte _OwnerType; - public byte OwnerType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _OwnerType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_OwnerType != value) - { - _OwnerType = value; - PropertyHasChanged(); - } - } - } - private int _OwnerItemID; - public int OwnerItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _OwnerItemID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_OwnerItemID != value) - { - _OwnerItemID = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTSStart = new DateTime(); - public DateTime DTSStart - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTSStart; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTSStart != value) - { - _DTSStart = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsDirty - { - get { return base.IsDirty; } - } - public bool IsDirtyList(List list) - { - return base.IsDirty; - } - public override bool IsValid - { - get { return (IsNew && !IsDirty) ? true : base.IsValid; } - } - public bool IsValidList(List list) - { - return (IsNew && !IsDirty) ? true : base.IsValid; - } - // CSLATODO: Replace base Owner.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Owner - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check Owner.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 Owner - protected override object GetIdValue() - { - return MyOwnerUnique; // Absolutely Unique ID - } - #endregion - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - { - get - { - if (_CheckingBrokenRules) return null; - if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null; - 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.AddDependantProperty("x", "y"); - _OwnerExtension.AddValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _OwnerExtension.AddInstanceValidationRules(ValidationRules); - // CSLATODO: 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() - { - //CSLATODO: Who can read/write which fields - //AuthorizationRules.AllowRead(OwnerID, ""); - //AuthorizationRules.AllowRead(SessionID, ""); - //AuthorizationRules.AllowRead(OwnerType, ""); - //AuthorizationRules.AllowRead(OwnerItemID, ""); - //AuthorizationRules.AllowRead(DTSStart, ""); - //AuthorizationRules.AllowWrite(SessionID, ""); - //AuthorizationRules.AllowWrite(OwnerType, ""); - //AuthorizationRules.AllowWrite(OwnerItemID, ""); - //AuthorizationRules.AllowWrite(DTSStart, ""); - _OwnerExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //CSLATODO: Who can read/write which fields - _OwnerExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // CSLATODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // CSLATODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // CSLATODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // CSLATODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _OwnerUnique = 0; - protected static int OwnerUnique - { get { return ++_OwnerUnique; } } - private int _MyOwnerUnique = OwnerUnique; - public int MyOwnerUnique // Absolutely Unique ID - Editable - { get { return _MyOwnerUnique; } } - protected Owner() - {/* require use of factory methods */ - AddToCache(this); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~Owner() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(OwnerID.ToString())) - { - List listOwner = _CacheByPrimaryKey[OwnerID.ToString()]; // Get the list of items - while (listOwner.Contains(this)) listOwner.Remove(this); // Remove the item from the list - if (listOwner.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(OwnerID.ToString()); // remove the list - } - } - public static Owner New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Owner"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Owner.New", ex); - } - } - public static Owner New(int sessionID, byte ownerType, int ownerItemID, DateTime dTSStart) - { - Owner tmp = Owner.New(); - tmp.SessionID = sessionID; - tmp.OwnerType = ownerType; - tmp.OwnerItemID = ownerItemID; - tmp.DTSStart = dTSStart; - return tmp; - } - public static Owner MakeOwner(int sessionID, byte ownerType, int ownerItemID, DateTime dTSStart) - { - Owner tmp = Owner.New(sessionID, ownerType, ownerItemID, dTSStart); - if (tmp.IsSavable) - tmp = tmp.Save(); - 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 Owner Get(int ownerID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Owner"); - try - { - Owner tmp = GetCachedByPrimaryKey(ownerID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(ownerID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Owner - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Owner.Get", ex); - } - } - public static Owner Get(SafeDataReader dr) - { - if (dr.Read()) return new Owner(dr); - return null; - } - internal Owner(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int ownerID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Owner"); - try - { - DataPortal.Delete(new PKCriteria(ownerID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Owner.Delete", ex); - } - } - public override Owner Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Owner"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Owner"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Owner"); - try - { - BuildRefreshList(); - Owner owner = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(owner);//Refresh the item in AllList - ProcessRefreshList(); - return owner; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _OwnerID; - public int OwnerID - { get { return _OwnerID; } } - public PKCriteria(int ownerID) - { - _OwnerID = ownerID; - } - } - // CSLATODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _OwnerID = NextOwnerID; - // Database Defaults - _SessionID = _OwnerExtension.DefaultSessionID; - _OwnerType = _OwnerExtension.DefaultOwnerType; - _OwnerItemID = _OwnerExtension.DefaultOwnerItemID; - _DTSStart = _OwnerExtension.DefaultDTSStart; - // CSLATODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.ReadData", GetHashCode()); - try - { - _OwnerID = dr.GetInt32("OwnerID"); - _SessionID = dr.GetInt32("SessionID"); - _OwnerType = dr.GetByte("OwnerType"); - _OwnerItemID = dr.GetInt32("OwnerItemID"); - _DTSStart = dr.GetDateTime("DTSStart"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Owner.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.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 = "getOwner"; - cm.Parameters.AddWithValue("@OwnerID", criteria.OwnerID); - 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("Owner.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Owner.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("Owner.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Owner.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addOwner"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@SessionID", _SessionID); - cm.Parameters.AddWithValue("@OwnerType", _OwnerType); - cm.Parameters.AddWithValue("@OwnerItemID", _OwnerItemID); - if (_DTSStart.Year >= 1753 && _DTSStart.Year <= 9999) cm.Parameters.AddWithValue("@DTSStart", _DTSStart); - // Output Calculated Columns - SqlParameter param_OwnerID = new SqlParameter("@newOwnerID", SqlDbType.Int); - param_OwnerID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_OwnerID); - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _OwnerID = (int)cm.Parameters["@newOwnerID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Owner.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int ownerID, int sessionID, byte ownerType, int ownerItemID, DateTime dTSStart) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addOwner"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@SessionID", sessionID); - cm.Parameters.AddWithValue("@OwnerType", ownerType); - cm.Parameters.AddWithValue("@OwnerItemID", ownerItemID); - if (dTSStart.Year >= 1753 && dTSStart.Year <= 9999) cm.Parameters.AddWithValue("@DTSStart", dTSStart); - // Output Calculated Columns - SqlParameter param_OwnerID = new SqlParameter("@newOwnerID", SqlDbType.Int); - param_OwnerID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_OwnerID); - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - ownerID = (int)cm.Parameters["@newOwnerID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.Add", ex); - throw new DbCslaException("Owner.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}] Owner.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("Owner.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}] Owner.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateOwner"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@OwnerID", _OwnerID); - cm.Parameters.AddWithValue("@SessionID", _SessionID); - cm.Parameters.AddWithValue("@OwnerType", _OwnerType); - cm.Parameters.AddWithValue("@OwnerItemID", _OwnerItemID); - if (_DTSStart.Year >= 1753 && _DTSStart.Year <= 9999) cm.Parameters.AddWithValue("@DTSStart", _DTSStart); - 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); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.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 = Owner.Add(cn, ref _OwnerID, _SessionID, _OwnerType, _OwnerItemID, _DTSStart); - else - _LastChanged = Owner.Update(cn, ref _OwnerID, _SessionID, _OwnerType, _OwnerItemID, _DTSStart, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int ownerID, int sessionID, byte ownerType, int ownerItemID, DateTime dTSStart, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateOwner"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@OwnerID", ownerID); - cm.Parameters.AddWithValue("@SessionID", sessionID); - cm.Parameters.AddWithValue("@OwnerType", ownerType); - cm.Parameters.AddWithValue("@OwnerItemID", ownerItemID); - if (dTSStart.Year >= 1753 && dTSStart.Year <= 9999) cm.Parameters.AddWithValue("@DTSStart", dTSStart); - 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); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.Update", ex); - throw new DbCslaException("Owner.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_OwnerID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteOwner"; - cm.Parameters.AddWithValue("@OwnerID", criteria.OwnerID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Owner.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int ownerID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteOwner"; - // Input PK Fields - cm.Parameters.AddWithValue("@OwnerID", ownerID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.Remove", ex); - throw new DbCslaException("Owner.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int ownerID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(ownerID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Owner.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _OwnerID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int ownerID) - { - _OwnerID = ownerID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Owner.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsOwner"; - cm.Parameters.AddWithValue("@OwnerID", _OwnerID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Owner.DataPortal_Execute", ex); - throw new DbCslaException("Owner.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - OwnerExtension _OwnerExtension = new OwnerExtension(); - [Serializable()] - partial class OwnerExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultSessionID - { - get { return 0; } - } - public virtual byte DefaultOwnerType - { - get { return 0; } - } - public virtual int DefaultOwnerItemID - { - get { return 0; } - } - public virtual DateTime DefaultDTSStart - { - get { return DateTime.Now; } - } - // 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 OwnerConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Owner) - { - // Return the ToString value - return ((Owner)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create OwnerExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Owner -// { -// partial class OwnerExtension : extensionBase -// { -// // CSLATODO: Override automatic defaults -// public virtual int DefaultSessionID -// { -// get { return 0; } -// } -// public virtual byte DefaultOwnerType -// { -// get { return 0; } -// } -// public virtual int DefaultOwnerItemID -// { -// get { return 0; } -// } -// public virtual DateTime DefaultDTSStart -// { -// get { return DateTime.Now; } -// } -// 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/NewGenerated/OwnerInfo.cs b/PROMS/VEPROMS.CSLA.Library/NewGenerated/OwnerInfo.cs deleted file mode 100644 index c01d2795..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/OwnerInfo.cs +++ /dev/null @@ -1,349 +0,0 @@ -// ======================================================================== -// 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 OwnerInfoEvent(object sender); - /// - /// OwnerInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(OwnerInfoConverter))] - public partial class OwnerInfo : ReadOnlyBase, IDisposable - { - public event OwnerInfoEvent 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(OwnerInfo ownerInfo) - { - if (!_CacheList.Contains(ownerInfo)) _CacheList.Add(ownerInfo); // In AddToCache - } - protected static void RemoveFromCache(OwnerInfo ownerInfo) - { - while (_CacheList.Contains(ownerInfo)) _CacheList.Remove(ownerInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move OwnerInfo(s) from temporary _CacheList to _CacheByPrimaryKey - { - OwnerInfo tmp = _CacheList[0]; // Get the first OwnerInfo - string pKey = tmp.OwnerID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first OwnerInfo - } - } - internal static void AddList(OwnerInfoList lst) - { - foreach (OwnerInfo item in lst) AddToCache(item); - } - protected static OwnerInfo GetCachedByPrimaryKey(int ownerID) - { - ConvertListToDictionary(); - string key = ownerID.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 Owner _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _OwnerID; - [System.ComponentModel.DataObjectField(true, true)] - public int OwnerID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _OwnerID; - } - } - private int _SessionID; - public int SessionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _SessionID; - } - } - private byte _OwnerType; - public byte OwnerType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _OwnerType; - } - } - private int _OwnerItemID; - public int OwnerItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _OwnerItemID; - } - } - private DateTime _DTSStart = new DateTime(); - public DateTime DTSStart - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTSStart; - } - } - // CSLATODO: Replace base OwnerInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current OwnerInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check OwnerInfo.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 OwnerInfo - protected override object GetIdValue() - { - return MyOwnerInfoUnique; // Absolutely Unique ID - } - #endregion - #region Factory Methods - private static int _OwnerInfoUnique = 0; - private static int OwnerInfoUnique - { get { return ++_OwnerInfoUnique; } } - private int _MyOwnerInfoUnique = OwnerInfoUnique; - public int MyOwnerInfoUnique // Absolutely Unique ID - Info - { get { return _MyOwnerInfoUnique; } } - protected OwnerInfo() - {/* require use of factory methods */ - AddToCache(this); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~OwnerInfo() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(OwnerID.ToString())) return; - List listOwnerInfo = _CacheByPrimaryKey[OwnerID.ToString()]; // Get the list of items - while (listOwnerInfo.Contains(this)) listOwnerInfo.Remove(this); // Remove the item from the list - if (listOwnerInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(OwnerID.ToString()); // remove the list - } - public virtual Owner Get() - { - return _Editable = Owner.Get(_OwnerID); - } - public static void Refresh(Owner tmp) - { - string key = tmp.OwnerID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (OwnerInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Owner tmp) - { - _SessionID = tmp.SessionID; - _OwnerType = tmp.OwnerType; - _OwnerItemID = tmp.OwnerItemID; - _DTSStart = tmp.DTSStart; - _OwnerInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static OwnerInfo Get(int ownerID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Owner"); - try - { - OwnerInfo tmp = GetCachedByPrimaryKey(ownerID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(ownerID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up OwnerInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on OwnerInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal OwnerInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("OwnerInfo.Constructor", ex); - throw new DbCslaException("OwnerInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _OwnerID; - public int OwnerID - { get { return _OwnerID; } } - public PKCriteria(int ownerID) - { - _OwnerID = ownerID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfo.ReadData", GetHashCode()); - try - { - _OwnerID = dr.GetInt32("OwnerID"); - _SessionID = dr.GetInt32("SessionID"); - _OwnerType = dr.GetByte("OwnerType"); - _OwnerItemID = dr.GetInt32("OwnerItemID"); - _DTSStart = dr.GetDateTime("DTSStart"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("OwnerInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("OwnerInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfo.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 = "getOwner"; - cm.Parameters.AddWithValue("@OwnerID", criteria.OwnerID); - 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("OwnerInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("OwnerInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - OwnerInfoExtension _OwnerInfoExtension = new OwnerInfoExtension(); - [Serializable()] - partial class OwnerInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(OwnerInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class OwnerInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is OwnerInfo) - { - // Return the ToString value - return ((OwnerInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/OwnerInfoList.cs b/PROMS/VEPROMS.CSLA.Library/NewGenerated/OwnerInfoList.cs deleted file mode 100644 index 746db559..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/OwnerInfoList.cs +++ /dev/null @@ -1,225 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// OwnerInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(OwnerInfoListConverter))] - public partial class OwnerInfoList : 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 (OwnerInfo tmp in this) - { - tmp.Changed += new OwnerInfoEvent(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)); - } - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~OwnerInfoList() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - foreach (OwnerInfo tmp in this) - { - tmp.Changed -= new OwnerInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static OwnerInfoList _OwnerInfoList = null; - /// - /// Return a list of all OwnerInfo. - /// - public static OwnerInfoList Get() - { - try - { - if (_OwnerInfoList != null) - return _OwnerInfoList; - OwnerInfoList tmp = DataPortal.Fetch(); - OwnerInfo.AddList(tmp); - tmp.AddEvents(); - _OwnerInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on OwnerInfoList.Get", ex); - } - } - /// - /// Reset the list of all OwnerInfo. - /// - public static void Reset() - { - _OwnerInfoList = null; - } - // CSLATODO: Add alternative gets - - //public static OwnerInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on OwnerInfoList.Get", ex); - // } - //} - private OwnerInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] OwnerInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getOwners"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new OwnerInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("OwnerInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("OwnerInfoList.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 - OwnerInfoListPropertyDescriptor pd = new OwnerInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class OwnerInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private OwnerInfo Item { get { return (OwnerInfo)_Item; } } - public OwnerInfoListPropertyDescriptor(OwnerInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class OwnerInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is OwnerInfoList) - { - // Return department and department role separated by comma. - return ((OwnerInfoList)value).Items.Count.ToString() + " Owners"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/PropertyDescriptor.cs b/PROMS/VEPROMS.CSLA.Library/NewGenerated/PropertyDescriptor.cs deleted file mode 100644 index 020ffbe7..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/PropertyDescriptor.cs +++ /dev/null @@ -1,67 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// PropertyDescriptor Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class vlnListPropertyDescriptor : PropertyDescriptor - { - protected object _Item = null; - public vlnListPropertyDescriptor(System.Collections.IList collection, int index) - : base("#" + index.ToString(), null) - { _Item = collection[index]; } - public override bool CanResetValue(object component) - { return true; } - public override Type ComponentType - { get { return _Item.GetType(); } } - public override object GetValue(object component) - { return _Item; } - public override bool IsReadOnly - { get { return false; } } - public override Type PropertyType - { get { return _Item.GetType(); } } - public override void ResetValue(object component) - { ;} - public override bool ShouldSerializeValue(object component) - { return true; } - public override void SetValue(object component, object value) - { /*_Item = value*/;} - //public override AttributeCollection Attributes - //{ get { return new AttributeCollection(null); } } - public override string DisplayName - { get { return _Item.ToString(); } } - public override string Description - { get { return _Item.ToString(); } } - public override string Name - { get { return _Item.ToString(); } } - } // Class - public interface IVEHasBrokenRules - { - IVEHasBrokenRules HasBrokenRules { get; } - BrokenRulesCollection BrokenRules { get; } - } -} // Namespace -// The following are samples of ToString overrides -// public partial class Owner -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class OwnerInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } \ No newline at end of file diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/Session.cs b/PROMS/VEPROMS.CSLA.Library/NewGenerated/Session.cs deleted file mode 100644 index 59026810..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/Session.cs +++ /dev/null @@ -1,1072 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Session Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(SessionConverter))] - public partial class Session : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshSessions = new List(); - private void AddToRefreshList(List refreshSessions) - { - if (IsDirty) - refreshSessions.Add(this); - } - private void ClearRefreshList() - { - _RefreshSessions = new List(); - } - private void BuildRefreshList() - { - ClearRefreshList(); - AddToRefreshList(_RefreshSessions); - } - private void ProcessRefreshList() - { - foreach (Session tmp in _RefreshSessions) - { - SessionInfo.Refresh(tmp); - } - ClearRefreshList(); - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Session session) - { - if (!_CacheList.Contains(session)) _CacheList.Add(session); // In AddToCache - } - protected static void RemoveFromCache(Session session) - { - while (_CacheList.Contains(session)) _CacheList.Remove(session); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move Session(s) from temporary _CacheList to _CacheByPrimaryKey - { - Session tmp = _CacheList[0]; // Get the first Session - string pKey = tmp.SessionID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first Session - } - } - protected static Session GetCachedByPrimaryKey(int sessionID) - { - ConvertListToDictionary(); - string key = sessionID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextSessionID = -1; - public static int NextSessionID - { - get { return _nextSessionID--; } - } - private int _SessionID; - [System.ComponentModel.DataObjectField(true, true)] - public int SessionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _SessionID; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTSDtart = new DateTime(); - public DateTime DTSDtart - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTSDtart; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTSDtart != value) - { - _DTSDtart = value; - PropertyHasChanged(); - } - } - } - private DateTime? _DTSEnd; - public DateTime? DTSEnd - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTSEnd; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTSEnd != value) - { - _DTSEnd = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTSActivity = new DateTime(); - public DateTime DTSActivity - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTSActivity; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTSActivity != value) - { - _DTSActivity = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private string _MachineName = string.Empty; - public string MachineName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _MachineName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_MachineName != value) - { - _MachineName = value; - PropertyHasChanged(); - } - } - } - private int _ProcessID; - public int ProcessID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ProcessID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ProcessID != value) - { - _ProcessID = value; - PropertyHasChanged(); - } - } - } - public override bool IsDirty - { - get { return base.IsDirty; } - } - public bool IsDirtyList(List list) - { - return base.IsDirty; - } - public override bool IsValid - { - get { return (IsNew && !IsDirty) ? true : base.IsValid; } - } - public bool IsValidList(List list) - { - return (IsNew && !IsDirty) ? true : base.IsValid; - } - // CSLATODO: Replace base Session.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Session - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check Session.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 Session - protected override object GetIdValue() - { - return MySessionUnique; // Absolutely Unique ID - } - #endregion - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - { - get - { - if (_CheckingBrokenRules) return null; - if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null; - 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, "UserID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "MachineName"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("MachineName", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _SessionExtension.AddValidationRules(ValidationRules); - // CSLATODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _SessionExtension.AddInstanceValidationRules(ValidationRules); - // CSLATODO: 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() - { - //CSLATODO: Who can read/write which fields - //AuthorizationRules.AllowRead(SessionID, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowRead(DTSDtart, ""); - //AuthorizationRules.AllowRead(DTSEnd, ""); - //AuthorizationRules.AllowRead(DTSActivity, ""); - //AuthorizationRules.AllowRead(MachineName, ""); - //AuthorizationRules.AllowRead(ProcessID, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - //AuthorizationRules.AllowWrite(DTSDtart, ""); - //AuthorizationRules.AllowWrite(DTSEnd, ""); - //AuthorizationRules.AllowWrite(DTSActivity, ""); - //AuthorizationRules.AllowWrite(MachineName, ""); - //AuthorizationRules.AllowWrite(ProcessID, ""); - _SessionExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //CSLATODO: Who can read/write which fields - _SessionExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // CSLATODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // CSLATODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // CSLATODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // CSLATODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _SessionUnique = 0; - protected static int SessionUnique - { get { return ++_SessionUnique; } } - private int _MySessionUnique = SessionUnique; - public int MySessionUnique // Absolutely Unique ID - Editable - { get { return _MySessionUnique; } } - protected Session() - {/* require use of factory methods */ - AddToCache(this); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~Session() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(SessionID.ToString())) - { - List listSession = _CacheByPrimaryKey[SessionID.ToString()]; // Get the list of items - while (listSession.Contains(this)) listSession.Remove(this); // Remove the item from the list - if (listSession.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(SessionID.ToString()); // remove the list - } - } - public static Session New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Session"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Session.New", ex); - } - } - public static Session New(string machineName, int processID) - { - Session tmp = Session.New(); - tmp.MachineName = machineName; - tmp.ProcessID = processID; - return tmp; - } - public static Session New(string userID, DateTime dTSDtart, DateTime? dTSEnd, DateTime dTSActivity, string machineName, int processID) - { - Session tmp = Session.New(); - tmp.UserID = userID; - tmp.DTSDtart = dTSDtart; - tmp.DTSEnd = dTSEnd; - tmp.DTSActivity = dTSActivity; - tmp.MachineName = machineName; - tmp.ProcessID = processID; - return tmp; - } - public static Session MakeSession(string userID, DateTime dTSDtart, DateTime? dTSEnd, DateTime dTSActivity, string machineName, int processID) - { - Session tmp = Session.New(userID, dTSDtart, dTSEnd, dTSActivity, machineName, processID); - if (tmp.IsSavable) - tmp = tmp.Save(); - 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 Session New(DateTime? dTSEnd, string machineName, int processID) - { - Session tmp = Session.New(); - tmp.DTSEnd = dTSEnd; - tmp.MachineName = machineName; - tmp.ProcessID = processID; - return tmp; - } - public static Session MakeSession(DateTime? dTSEnd, string machineName, int processID) - { - Session tmp = Session.New(dTSEnd, machineName, processID); - if (tmp.IsSavable) - tmp = tmp.Save(); - 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 Session Get(int sessionID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Session"); - try - { - Session tmp = GetCachedByPrimaryKey(sessionID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(sessionID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Session - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Session.Get", ex); - } - } - public static Session Get(SafeDataReader dr) - { - if (dr.Read()) return new Session(dr); - return null; - } - internal Session(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int sessionID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Session"); - try - { - DataPortal.Delete(new PKCriteria(sessionID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Session.Delete", ex); - } - } - public override Session Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Session"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Session"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Session"); - try - { - BuildRefreshList(); - Session session = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(session);//Refresh the item in AllList - ProcessRefreshList(); - return session; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _SessionID; - public int SessionID - { get { return _SessionID; } } - public PKCriteria(int sessionID) - { - _SessionID = sessionID; - } - } - // CSLATODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _SessionID = NextSessionID; - // Database Defaults - _UserID = _SessionExtension.DefaultUserID; - _DTSDtart = _SessionExtension.DefaultDTSDtart; - _DTSActivity = _SessionExtension.DefaultDTSActivity; - // CSLATODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.ReadData", GetHashCode()); - try - { - _SessionID = dr.GetInt32("SessionID"); - _UserID = dr.GetString("UserID"); - _DTSDtart = dr.GetDateTime("DTSDtart"); - if (!dr.IsDBNull(dr.GetOrdinal("DTSEnd"))) _DTSEnd = dr.GetDateTime("DTSEnd"); - _DTSActivity = dr.GetDateTime("DTSActivity"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _MachineName = dr.GetString("MachineName"); - _ProcessID = dr.GetInt32("ProcessID"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Session.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.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 = "getSession"; - cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); - 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("Session.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Session.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("Session.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Session.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addSession"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@UserID", _UserID); - if (_DTSDtart.Year >= 1753 && _DTSDtart.Year <= 9999) cm.Parameters.AddWithValue("@DTSDtart", _DTSDtart); - if (_DTSEnd != null && ((DateTime)_DTSEnd).Year >= 1753 && ((DateTime)_DTSEnd).Year <= 9999) cm.Parameters.AddWithValue("@DTSEnd", _DTSEnd); - if (_DTSActivity.Year >= 1753 && _DTSActivity.Year <= 9999) cm.Parameters.AddWithValue("@DTSActivity", _DTSActivity); - cm.Parameters.AddWithValue("@MachineName", _MachineName); - cm.Parameters.AddWithValue("@ProcessID", _ProcessID); - // Output Calculated Columns - SqlParameter param_SessionID = new SqlParameter("@newSessionID", SqlDbType.Int); - param_SessionID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_SessionID); - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _SessionID = (int)cm.Parameters["@newSessionID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Session.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int sessionID, string userID, DateTime dTSDtart, DateTime? dTSEnd, DateTime dTSActivity, string machineName, int processID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addSession"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@UserID", userID); - if (dTSDtart.Year >= 1753 && dTSDtart.Year <= 9999) cm.Parameters.AddWithValue("@DTSDtart", dTSDtart); - if (dTSEnd != null && ((DateTime)dTSEnd).Year >= 1753 && ((DateTime)dTSEnd).Year <= 9999) cm.Parameters.AddWithValue("@DTSEnd", dTSEnd); - if (dTSActivity.Year >= 1753 && dTSActivity.Year <= 9999) cm.Parameters.AddWithValue("@DTSActivity", dTSActivity); - cm.Parameters.AddWithValue("@MachineName", machineName); - cm.Parameters.AddWithValue("@ProcessID", processID); - // Output Calculated Columns - SqlParameter param_SessionID = new SqlParameter("@newSessionID", SqlDbType.Int); - param_SessionID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_SessionID); - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - sessionID = (int)cm.Parameters["@newSessionID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.Add", ex); - throw new DbCslaException("Session.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}] Session.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("Session.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}] Session.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateSession"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@SessionID", _SessionID); - cm.Parameters.AddWithValue("@UserID", _UserID); - if (_DTSDtart.Year >= 1753 && _DTSDtart.Year <= 9999) cm.Parameters.AddWithValue("@DTSDtart", _DTSDtart); - if (_DTSEnd != null && ((DateTime)_DTSEnd).Year >= 1753 && ((DateTime)_DTSEnd).Year <= 9999) cm.Parameters.AddWithValue("@DTSEnd", _DTSEnd); - if (_DTSActivity.Year >= 1753 && _DTSActivity.Year <= 9999) cm.Parameters.AddWithValue("@DTSActivity", _DTSActivity); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - cm.Parameters.AddWithValue("@MachineName", _MachineName); - cm.Parameters.AddWithValue("@ProcessID", _ProcessID); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.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 = Session.Add(cn, ref _SessionID, _UserID, _DTSDtart, _DTSEnd, _DTSActivity, _MachineName, _ProcessID); - else - _LastChanged = Session.Update(cn, ref _SessionID, _UserID, _DTSDtart, _DTSEnd, _DTSActivity, ref _LastChanged, _MachineName, _ProcessID); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int sessionID, string userID, DateTime dTSDtart, DateTime? dTSEnd, DateTime dTSActivity, ref byte[] lastChanged, string machineName, int processID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateSession"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@SessionID", sessionID); - cm.Parameters.AddWithValue("@UserID", userID); - if (dTSDtart.Year >= 1753 && dTSDtart.Year <= 9999) cm.Parameters.AddWithValue("@DTSDtart", dTSDtart); - if (dTSEnd != null && ((DateTime)dTSEnd).Year >= 1753 && ((DateTime)dTSEnd).Year <= 9999) cm.Parameters.AddWithValue("@DTSEnd", dTSEnd); - if (dTSActivity.Year >= 1753 && dTSActivity.Year <= 9999) cm.Parameters.AddWithValue("@DTSActivity", dTSActivity); - cm.Parameters.AddWithValue("@LastChanged", lastChanged); - cm.Parameters.AddWithValue("@MachineName", machineName); - cm.Parameters.AddWithValue("@ProcessID", processID); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.Update", ex); - throw new DbCslaException("Session.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_SessionID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteSession"; - cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Session.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int sessionID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteSession"; - // Input PK Fields - cm.Parameters.AddWithValue("@SessionID", sessionID); - // CSLATODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.Remove", ex); - throw new DbCslaException("Session.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int sessionID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(sessionID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Session.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _SessionID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int sessionID) - { - _SessionID = sessionID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Session.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsSession"; - cm.Parameters.AddWithValue("@SessionID", _SessionID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Session.DataPortal_Execute", ex); - throw new DbCslaException("Session.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - SessionExtension _SessionExtension = new SessionExtension(); - [Serializable()] - partial class SessionExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultUserID - { - get { return Environment.UserName.ToUpper(); } - } - public virtual DateTime DefaultDTSDtart - { - get { return DateTime.Now; } - } - public virtual DateTime DefaultDTSActivity - { - get { return DateTime.Now; } - } - // 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 SessionConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Session) - { - // Return the ToString value - return ((Session)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create SessionExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Session -// { -// partial class SessionExtension : extensionBase -// { -// // CSLATODO: Override automatic defaults -// public virtual string DefaultUserID -// { -// get { return Environment.UserName.ToUpper(); } -// } -// public virtual DateTime DefaultDTSDtart -// { -// get { return DateTime.Now; } -// } -// public virtual DateTime DefaultDTSActivity -// { -// get { return DateTime.Now; } -// } -// 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/NewGenerated/SessionInfo.cs b/PROMS/VEPROMS.CSLA.Library/NewGenerated/SessionInfo.cs deleted file mode 100644 index 38d9ff98..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/SessionInfo.cs +++ /dev/null @@ -1,371 +0,0 @@ -// ======================================================================== -// 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 SessionInfoEvent(object sender); - /// - /// SessionInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(SessionInfoConverter))] - public partial class SessionInfo : ReadOnlyBase, IDisposable - { - public event SessionInfoEvent 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(SessionInfo sessionInfo) - { - if (!_CacheList.Contains(sessionInfo)) _CacheList.Add(sessionInfo); // In AddToCache - } - protected static void RemoveFromCache(SessionInfo sessionInfo) - { - while (_CacheList.Contains(sessionInfo)) _CacheList.Remove(sessionInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - while (_CacheList.Count > 0) // Move SessionInfo(s) from temporary _CacheList to _CacheByPrimaryKey - { - SessionInfo tmp = _CacheList[0]; // Get the first SessionInfo - string pKey = tmp.SessionID.ToString(); - if (!_CacheByPrimaryKey.ContainsKey(pKey)) - { - _CacheByPrimaryKey[pKey] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[pKey].Add(tmp); // Add to Primary Key list - _CacheList.RemoveAt(0); // Remove the first SessionInfo - } - } - internal static void AddList(SessionInfoList lst) - { - foreach (SessionInfo item in lst) AddToCache(item); - } - protected static SessionInfo GetCachedByPrimaryKey(int sessionID) - { - ConvertListToDictionary(); - string key = sessionID.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 Session _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _SessionID; - [System.ComponentModel.DataObjectField(true, true)] - public int SessionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _SessionID; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private DateTime _DTSDtart = new DateTime(); - public DateTime DTSDtart - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTSDtart; - } - } - private DateTime? _DTSEnd; - public DateTime? DTSEnd - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTSEnd; - } - } - private DateTime _DTSActivity = new DateTime(); - public DateTime DTSActivity - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTSActivity; - } - } - private string _MachineName = string.Empty; - public string MachineName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _MachineName; - } - } - private int _ProcessID; - public int ProcessID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ProcessID; - } - } - // CSLATODO: Replace base SessionInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current SessionInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // CSLATODO: Check SessionInfo.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 SessionInfo - protected override object GetIdValue() - { - return MySessionInfoUnique; // Absolutely Unique ID - } - #endregion - #region Factory Methods - private static int _SessionInfoUnique = 0; - private static int SessionInfoUnique - { get { return ++_SessionInfoUnique; } } - private int _MySessionInfoUnique = SessionInfoUnique; - public int MySessionInfoUnique // Absolutely Unique ID - Info - { get { return _MySessionInfoUnique; } } - protected SessionInfo() - {/* require use of factory methods */ - AddToCache(this); - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~SessionInfo() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(SessionID.ToString())) return; - List listSessionInfo = _CacheByPrimaryKey[SessionID.ToString()]; // Get the list of items - while (listSessionInfo.Contains(this)) listSessionInfo.Remove(this); // Remove the item from the list - if (listSessionInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(SessionID.ToString()); // remove the list - } - public virtual Session Get() - { - return _Editable = Session.Get(_SessionID); - } - public static void Refresh(Session tmp) - { - string key = tmp.SessionID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (SessionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Session tmp) - { - _UserID = tmp.UserID; - _DTSDtart = tmp.DTSDtart; - _DTSEnd = tmp.DTSEnd; - _DTSActivity = tmp.DTSActivity; - _MachineName = tmp.MachineName; - _ProcessID = tmp.ProcessID; - _SessionInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static SessionInfo Get(int sessionID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Session"); - try - { - SessionInfo tmp = GetCachedByPrimaryKey(sessionID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(sessionID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up SessionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on SessionInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal SessionInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("SessionInfo.Constructor", ex); - throw new DbCslaException("SessionInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _SessionID; - public int SessionID - { get { return _SessionID; } } - public PKCriteria(int sessionID) - { - _SessionID = sessionID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfo.ReadData", GetHashCode()); - try - { - _SessionID = dr.GetInt32("SessionID"); - _UserID = dr.GetString("UserID"); - _DTSDtart = dr.GetDateTime("DTSDtart"); - if (!dr.IsDBNull(dr.GetOrdinal("DTSEnd"))) _DTSEnd = dr.GetDateTime("DTSEnd"); - _DTSActivity = dr.GetDateTime("DTSActivity"); - _MachineName = dr.GetString("MachineName"); - _ProcessID = dr.GetInt32("ProcessID"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("SessionInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("SessionInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfo.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 = "getSession"; - cm.Parameters.AddWithValue("@SessionID", criteria.SessionID); - 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("SessionInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("SessionInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - SessionInfoExtension _SessionInfoExtension = new SessionInfoExtension(); - [Serializable()] - partial class SessionInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(SessionInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class SessionInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is SessionInfo) - { - // Return the ToString value - return ((SessionInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/SessionInfoList.cs b/PROMS/VEPROMS.CSLA.Library/NewGenerated/SessionInfoList.cs deleted file mode 100644 index 75d8c7c0..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/SessionInfoList.cs +++ /dev/null @@ -1,225 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// SessionInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(SessionInfoListConverter))] - public partial class SessionInfoList : 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 (SessionInfo tmp in this) - { - tmp.Changed += new SessionInfoEvent(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)); - } - } - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - ~SessionInfoList() - { - _CountFinalized++; - } - public void Dispose() - { - if (_Disposed) return; - _CountDisposed++; - _Disposed = true; - foreach (SessionInfo tmp in this) - { - tmp.Changed -= new SessionInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static SessionInfoList _SessionInfoList = null; - /// - /// Return a list of all SessionInfo. - /// - public static SessionInfoList Get() - { - try - { - if (_SessionInfoList != null) - return _SessionInfoList; - SessionInfoList tmp = DataPortal.Fetch(); - SessionInfo.AddList(tmp); - tmp.AddEvents(); - _SessionInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on SessionInfoList.Get", ex); - } - } - /// - /// Reset the list of all SessionInfo. - /// - public static void Reset() - { - _SessionInfoList = null; - } - // CSLATODO: Add alternative gets - - //public static SessionInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on SessionInfoList.Get", ex); - // } - //} - private SessionInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] SessionInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getSessions"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new SessionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("SessionInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("SessionInfoList.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 - SessionInfoListPropertyDescriptor pd = new SessionInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class SessionInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private SessionInfo Item { get { return (SessionInfo)_Item; } } - public SessionInfoListPropertyDescriptor(SessionInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class SessionInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is SessionInfoList) - { - // Return department and department role separated by comma. - return ((SessionInfoList)value).Items.Count.ToString() + " Sessions"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/addSession.SQL b/PROMS/VEPROMS.CSLA.Library/NewGenerated/addSession.SQL deleted file mode 100644 index 84ed266e..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/addSession.SQL +++ /dev/null @@ -1,55 +0,0 @@ - -/****** Object: StoredProcedure [addSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[addSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [addSession]; -GO - -CREATE PROCEDURE [dbo].[addSession] - -( - @UserID nvarchar(100), - @DTSDtart datetime, - @DTSEnd datetime=null, - @DTSActivity datetime, - @MachineName nvarchar(100), - @ProcessID int, - @newSessionID int output, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - INSERT INTO [Sessions] - ( - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [MachineName], - [ProcessID] - ) - VALUES - ( - @UserID, - @DTSDtart, - @DTSEnd, - @DTSActivity, - @MachineName, - @ProcessID - ) - SELECT @newSessionID= SCOPE_IDENTITY() - SELECT @newLastChanged=[LastChanged] - FROM [Sessions] WHERE [SessionID]=@newSessionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: addSession Succeeded' -ELSE PRINT 'Procedure Creation: addSession Error on Creation' -GO diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/deleteSession.SQL b/PROMS/VEPROMS.CSLA.Library/NewGenerated/deleteSession.SQL deleted file mode 100644 index 19689e7f..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/deleteSession.SQL +++ /dev/null @@ -1,29 +0,0 @@ - -/****** Object: StoredProcedure [deleteSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[deleteSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [deleteSession]; -GO - -CREATE PROCEDURE [dbo].[deleteSession] - -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - DELETE [Sessions] - WHERE [SessionID] = @SessionID - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: deleteSession Succeeded' -ELSE PRINT 'Procedure Creation: deleteSession Error on Creation' -GO diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/existsSession.SQL b/PROMS/VEPROMS.CSLA.Library/NewGenerated/existsSession.SQL deleted file mode 100644 index 461fdec8..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/existsSession.SQL +++ /dev/null @@ -1,21 +0,0 @@ - -/****** Object: StoredProcedure [existsSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[existsSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [existsSession]; -GO - -CREATE PROCEDURE [dbo].[existsSession] - -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS - SELECT COUNT(*) - FROM [Sessions] WHERE [SessionID]=@SessionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: existsSession Succeeded' -ELSE PRINT 'Procedure Creation: existsSession Error on Creation' -GO diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/getSession.SQL b/PROMS/VEPROMS.CSLA.Library/NewGenerated/getSession.SQL deleted file mode 100644 index eb9cf136..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/getSession.SQL +++ /dev/null @@ -1,30 +0,0 @@ - -/****** Object: StoredProcedure [getSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getSession]; -GO - -CREATE PROCEDURE [dbo].[getSession] - -( - @SessionID int -) -WITH EXECUTE AS OWNER -AS - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID] - FROM [Sessions] - WHERE [SessionID]=@SessionID - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getSession Succeeded' -ELSE PRINT 'Procedure Creation: getSession Error on Creation' -GO diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/getSessions.SQL b/PROMS/VEPROMS.CSLA.Library/NewGenerated/getSessions.SQL deleted file mode 100644 index 5fd39159..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/getSessions.SQL +++ /dev/null @@ -1,26 +0,0 @@ - -/****** Object: StoredProcedure [getSessions] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[getSessions]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [getSessions]; -GO - -CREATE PROCEDURE [dbo].[getSessions] - -WITH EXECUTE AS OWNER -AS - SELECT - [SessionID], - [UserID], - [DTSDtart], - [DTSEnd], - [DTSActivity], - [LastChanged], - [MachineName], - [ProcessID] - FROM [Sessions] - RETURN -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: getSessions Succeeded' -ELSE PRINT 'Procedure Creation: getSessions Error on Creation' -GO diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/purgeData.SQL b/PROMS/VEPROMS.CSLA.Library/NewGenerated/purgeData.SQL deleted file mode 100644 index eff19871..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/purgeData.SQL +++ /dev/null @@ -1,26 +0,0 @@ - -/****** Object: StoredProcedure [purgeData] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[purgeData]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [purgeData]; -GO - -CREATE PROCEDURE [dbo].[purgeData] - -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - delete from [Sessions] - dbcc checkident([Sessions],reseed,0) - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: purgeData Succeeded' -ELSE PRINT 'Procedure Creation: purgeData Error on Creation' -GO diff --git a/PROMS/VEPROMS.CSLA.Library/NewGenerated/updateSession.SQL b/PROMS/VEPROMS.CSLA.Library/NewGenerated/updateSession.SQL deleted file mode 100644 index fd23b06d..00000000 --- a/PROMS/VEPROMS.CSLA.Library/NewGenerated/updateSession.SQL +++ /dev/null @@ -1,55 +0,0 @@ - -/****** Object: StoredProcedure [updateSession] ******/ -IF EXISTS (SELECT * FROM dbo.sysobjects WHERE id = OBJECT_ID(N'[updateSession]') AND OBJECTPROPERTY(id,N'IsProcedure') = 1) - DROP PROCEDURE [updateSession]; -GO - -CREATE PROCEDURE [dbo].[updateSession] - -( - @SessionID int, - @UserID nvarchar(100), - @DTSDtart datetime, - @DTSEnd datetime=null, - @DTSActivity datetime, - @LastChanged timestamp, - @MachineName nvarchar(100), - @ProcessID int, - @newLastChanged timestamp output -) -WITH EXECUTE AS OWNER -AS -BEGIN TRY -- Try Block - BEGIN TRANSACTION - UPDATE [Sessions] - SET - [UserID]=@UserID, - [DTSDtart]=@DTSDtart, - [DTSEnd]=@DTSEnd, - [DTSActivity]=@DTSActivity, - [MachineName]=@MachineName, - [ProcessID]=@ProcessID - WHERE [SessionID]=@SessionID AND [LastChanged]=@LastChanged - IF @@ROWCOUNT = 0 - BEGIN - IF NOT exists(select * from [Sessions] WHERE [SessionID]=@SessionID) - RAISERROR('Session record has been deleted by another user', 16, 1) - ELSE - RAISERROR('Session has been edited by another user', 16, 1) - END - - SELECT @newLastChanged=[LastChanged] - FROM [Sessions] WHERE [SessionID]=@SessionID - - IF( @@TRANCOUNT > 0 ) COMMIT -END TRY -BEGIN CATCH -- Catch Block - IF( @@TRANCOUNT = 1 ) ROLLBACK -- Only rollback if top level - ELSE IF( @@TRANCOUNT > 1 ) COMMIT -- Otherwise commit. Top level will rollback - EXEC vlnErrorHandler -END CATCH -GO --- Display the status of Proc creation -IF (@@Error = 0) PRINT 'Procedure Creation: updateSession Succeeded' -ELSE PRINT 'Procedure Creation: updateSession Error on Creation' -GO diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Annotation.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Annotation.cs deleted file mode 100644 index 5b2cf069..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Annotation.cs +++ /dev/null @@ -1,1123 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Annotation Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AnnotationConverter))] - public partial class Annotation : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshAnnotations = new List(); - private void AddToRefreshList(List refreshAnnotations) - { - if (IsDirty) - refreshAnnotations.Add(this); - } - private void BuildRefreshList() - { - _RefreshAnnotations = new List(); - AddToRefreshList(_RefreshAnnotations); - } - private void ProcessRefreshList() - { - foreach (Annotation tmp in _RefreshAnnotations) - { - AnnotationInfo.Refresh(tmp); - if (tmp._MyAnnotationType != null) AnnotationTypeInfo.Refresh(tmp._MyAnnotationType); - if (tmp._MyItem != null) ItemInfo.Refresh(tmp._MyItem); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Annotation annotation) - { - if (!_CacheList.Contains(annotation)) _CacheList.Add(annotation); // In AddToCache - } - protected static void RemoveFromCache(Annotation annotation) - { - while (_CacheList.Contains(annotation)) _CacheList.Remove(annotation); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Annotation tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.AnnotationID.ToString())) - { - _CacheByPrimaryKey[tmp.AnnotationID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.AnnotationID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (Annotation tmp in remove) - RemoveFromCache(tmp); - } - protected static Annotation GetCachedByPrimaryKey(int annotationID) - { - ConvertListToDictionary(); - string key = annotationID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextAnnotationID = -1; - public static int NextAnnotationID - { - get { return _nextAnnotationID--; } - } - private int _AnnotationID; - [System.ComponentModel.DataObjectField(true, true)] - public int AnnotationID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AnnotationID; - } - } - private int _ItemID; - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem != null) _ItemID = _MyItem.ItemID; - return _ItemID; - } - } - private Item _MyItem; - public Item MyItem - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem == null && _ItemID != 0) _MyItem = Item.Get(_ItemID); - return _MyItem; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyItem != value) - { - _MyItem = value; - PropertyHasChanged(); - } - } - } - private int _TypeID; - public int TypeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAnnotationType != null) _TypeID = _MyAnnotationType.TypeID; - return _TypeID; - } - } - private AnnotationType _MyAnnotationType; - public AnnotationType MyAnnotationType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAnnotationType == null && _TypeID != 0) _MyAnnotationType = AnnotationType.Get(_TypeID); - return _MyAnnotationType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyAnnotationType != value) - { - _MyAnnotationType = value; - PropertyHasChanged(); - } - } - } - private string _RtfText = string.Empty; - public string RtfText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RtfText; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_RtfText != value) - { - _RtfText = value; - PropertyHasChanged(); - } - } - } - private string _SearchText = string.Empty; - public string SearchText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _SearchText; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_SearchText != value) - { - _SearchText = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsDirty - { - get { return base.IsDirty || (_MyAnnotationType == null ? false : _MyAnnotationType.IsDirty) || (_MyItem == null ? false : _MyItem.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyAnnotationType == null ? true : _MyAnnotationType.IsValid) && (_MyItem == null ? true : _MyItem.IsValid); } - } - // TODO: Replace base Annotation.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Annotation - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Annotation.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 Annotation - protected override object GetIdValue() - { - return _AnnotationID; - } - #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 (_MyItem != null && (hasBrokenRules = _MyItem.HasBrokenRules) != null) return hasBrokenRules; - if (_MyAnnotationType != null && (hasBrokenRules = _MyAnnotationType.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(MyItemRequired, "MyItem"); - ValidationRules.AddRule(MyAnnotationTypeRequired, "MyAnnotationType"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("RtfText", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("SearchText", 1073741823)); - 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"); - _AnnotationExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _AnnotationExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool MyItemRequired(Annotation target, Csla.Validation.RuleArgs e) - { - if (target._ItemID == 0 && target._MyItem == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - private static bool MyAnnotationTypeRequired(Annotation target, Csla.Validation.RuleArgs e) - { - if (target._TypeID == 0 && target._MyAnnotationType == 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(AnnotationID, ""); - //AuthorizationRules.AllowRead(ItemID, ""); - //AuthorizationRules.AllowRead(TypeID, ""); - //AuthorizationRules.AllowRead(RtfText, ""); - //AuthorizationRules.AllowRead(SearchText, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(ItemID, ""); - //AuthorizationRules.AllowWrite(TypeID, ""); - //AuthorizationRules.AllowWrite(RtfText, ""); - //AuthorizationRules.AllowWrite(SearchText, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _AnnotationExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _AnnotationExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _AnnotationUnique = 0; - protected static int AnnotationUnique - { get { return ++_AnnotationUnique; } } - private int _MyAnnotationUnique = AnnotationUnique; - public int MyAnnotationUnique - { get { return _MyAnnotationUnique; } } - protected Annotation() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(AnnotationID.ToString())) - { - List listAnnotation = _CacheByPrimaryKey[AnnotationID.ToString()]; // Get the list of items - while (listAnnotation.Contains(this)) listAnnotation.Remove(this); // Remove the item from the list - if (listAnnotation.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(AnnotationID.ToString()); // remove the list - } - } - public static Annotation New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Annotation"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Annotation.New", ex); - } - } - public static Annotation New(Item myItem, AnnotationType myAnnotationType) - { - Annotation tmp = Annotation.New(); - tmp.MyItem = myItem; - tmp.MyAnnotationType = myAnnotationType; - return tmp; - } - public static Annotation New(Item myItem, AnnotationType myAnnotationType, string rtfText, string searchText, string config, DateTime dts, string userID) - { - Annotation tmp = Annotation.New(); - tmp.MyItem = myItem; - tmp.MyAnnotationType = myAnnotationType; - tmp.RtfText = rtfText; - tmp.SearchText = searchText; - tmp.Config = config; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static Annotation MakeAnnotation(Item myItem, AnnotationType myAnnotationType, string rtfText, string searchText, string config, DateTime dts, string userID) - { - Annotation tmp = Annotation.New(myItem, myAnnotationType, rtfText, searchText, config, dts, userID); - if (tmp.IsSavable) - { - Annotation 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 Annotation New(Item myItem, AnnotationType myAnnotationType, string rtfText, string searchText, string config) - { - Annotation tmp = Annotation.New(); - tmp.MyItem = myItem; - tmp.MyAnnotationType = myAnnotationType; - tmp.RtfText = rtfText; - tmp.SearchText = searchText; - tmp.Config = config; - return tmp; - } - public static Annotation MakeAnnotation(Item myItem, AnnotationType myAnnotationType, string rtfText, string searchText, string config) - { - Annotation tmp = Annotation.New(myItem, myAnnotationType, rtfText, searchText, config); - if (tmp.IsSavable) - { - Annotation 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 Annotation Get(int annotationID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Annotation"); - try - { - Annotation tmp = GetCachedByPrimaryKey(annotationID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(annotationID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Annotation - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Annotation.Get", ex); - } - } - public static Annotation Get(SafeDataReader dr) - { - if (dr.Read()) return new Annotation(dr); - return null; - } - internal Annotation(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int annotationID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Annotation"); - try - { - DataPortal.Delete(new PKCriteria(annotationID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Annotation.Delete", ex); - } - } - public override Annotation Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Annotation"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Annotation"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Annotation"); - try - { - BuildRefreshList(); - Annotation annotation = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(annotation);//Refresh the item in AllList - ProcessRefreshList(); - return annotation; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _AnnotationID; - public int AnnotationID - { get { return _AnnotationID; } } - public PKCriteria(int annotationID) - { - _AnnotationID = annotationID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _AnnotationID = NextAnnotationID; - // Database Defaults - _DTS = _AnnotationExtension.DefaultDTS; - _UserID = _AnnotationExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.ReadData", GetHashCode()); - try - { - _AnnotationID = dr.GetInt32("AnnotationID"); - _ItemID = dr.GetInt32("ItemID"); - _TypeID = dr.GetInt32("TypeID"); - _RtfText = dr.GetString("RtfText"); - _SearchText = dr.GetString("SearchText"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Annotation.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Annotation.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.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 = "getAnnotation"; - cm.Parameters.AddWithValue("@AnnotationID", criteria.AnnotationID); - 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("Annotation.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Annotation.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("Annotation.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Annotation.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyAnnotationType != null) _MyAnnotationType.Update(); - if (_MyItem != null) _MyItem.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addAnnotation"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ItemID", ItemID); - cm.Parameters.AddWithValue("@TypeID", TypeID); - cm.Parameters.AddWithValue("@RtfText", _RtfText); - cm.Parameters.AddWithValue("@SearchText", _SearchText); - 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_AnnotationID = new SqlParameter("@newAnnotationID", SqlDbType.Int); - param_AnnotationID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AnnotationID); - 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 - _AnnotationID = (int)cm.Parameters["@newAnnotationID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Annotation.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Annotation.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int annotationID, Item myItem, AnnotationType myAnnotationType, string rtfText, string searchText, string config, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addAnnotation"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ItemID", myItem.ItemID); - cm.Parameters.AddWithValue("@TypeID", myAnnotationType.TypeID); - cm.Parameters.AddWithValue("@RtfText", rtfText); - cm.Parameters.AddWithValue("@SearchText", searchText); - 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_AnnotationID = new SqlParameter("@newAnnotationID", SqlDbType.Int); - param_AnnotationID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AnnotationID); - 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 - annotationID = (int)cm.Parameters["@newAnnotationID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Annotation.Add", ex); - throw new DbCslaException("Annotation.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}] Annotation.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("Annotation.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}] Annotation.SQLUpdate", GetHashCode()); - try - { - if (_MyAnnotationType != null) _MyAnnotationType.Update(); - if (_MyItem != null) _MyItem.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateAnnotation"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@AnnotationID", _AnnotationID); - cm.Parameters.AddWithValue("@ItemID", ItemID); - cm.Parameters.AddWithValue("@TypeID", TypeID); - cm.Parameters.AddWithValue("@RtfText", _RtfText); - cm.Parameters.AddWithValue("@SearchText", _SearchText); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Annotation.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 = Annotation.Add(cn, ref _AnnotationID, _MyItem, _MyAnnotationType, _RtfText, _SearchText, _Config, _DTS, _UserID); - else - _LastChanged = Annotation.Update(cn, ref _AnnotationID, _MyItem, _MyAnnotationType, _RtfText, _SearchText, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int annotationID, Item myItem, AnnotationType myAnnotationType, string rtfText, string searchText, string config, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateAnnotation"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@AnnotationID", annotationID); - cm.Parameters.AddWithValue("@ItemID", myItem.ItemID); - cm.Parameters.AddWithValue("@TypeID", myAnnotationType.TypeID); - cm.Parameters.AddWithValue("@RtfText", rtfText); - cm.Parameters.AddWithValue("@SearchText", searchText); - 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("Annotation.Update", ex); - throw new DbCslaException("Annotation.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_AnnotationID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAnnotation"; - cm.Parameters.AddWithValue("@AnnotationID", criteria.AnnotationID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Annotation.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Annotation.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int annotationID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAnnotation"; - // Input PK Fields - cm.Parameters.AddWithValue("@AnnotationID", annotationID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Annotation.Remove", ex); - throw new DbCslaException("Annotation.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int annotationID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(annotationID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Annotation.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _AnnotationID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int annotationID) - { - _AnnotationID = annotationID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Annotation.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsAnnotation"; - cm.Parameters.AddWithValue("@AnnotationID", _AnnotationID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Annotation.DataPortal_Execute", ex); - throw new DbCslaException("Annotation.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - AnnotationExtension _AnnotationExtension = new AnnotationExtension(); - [Serializable()] - partial class AnnotationExtension : 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 AnnotationConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Annotation) - { - // Return the ToString value - return ((Annotation)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create AnnotationExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Annotation -// { -// partial class AnnotationExtension : 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/OldGenerated/AnnotationInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationInfo.cs deleted file mode 100644 index 93229620..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationInfo.cs +++ /dev/null @@ -1,477 +0,0 @@ -// ======================================================================== -// 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 AnnotationInfoEvent(object sender); - /// - /// AnnotationInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AnnotationInfoConverter))] - public partial class AnnotationInfo : ReadOnlyBase, IDisposable - { - public event AnnotationInfoEvent 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(AnnotationInfo annotationInfo) - { - if (!_CacheList.Contains(annotationInfo)) _CacheList.Add(annotationInfo); // In AddToCache - } - protected static void RemoveFromCache(AnnotationInfo annotationInfo) - { - while (_CacheList.Contains(annotationInfo)) _CacheList.Remove(annotationInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (AnnotationInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.AnnotationID.ToString())) - { - _CacheByPrimaryKey[tmp.AnnotationID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.AnnotationID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (AnnotationInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(AnnotationInfoList lst) - { - foreach (AnnotationInfo item in lst) AddToCache(item); - } - protected static AnnotationInfo GetCachedByPrimaryKey(int annotationID) - { - ConvertListToDictionary(); - string key = annotationID.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 Annotation _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _AnnotationID; - [System.ComponentModel.DataObjectField(true, true)] - public int AnnotationID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AnnotationID; - } - } - private int _ItemID; - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem != null) _ItemID = _MyItem.ItemID; - return _ItemID; - } - } - private ItemInfo _MyItem; - public ItemInfo MyItem - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem == null && _ItemID != 0) _MyItem = ItemInfo.Get(_ItemID); - return _MyItem; - } - } - private int _TypeID; - public int TypeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAnnotationType != null) _TypeID = _MyAnnotationType.TypeID; - return _TypeID; - } - } - private AnnotationTypeInfo _MyAnnotationType; - public AnnotationTypeInfo MyAnnotationType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAnnotationType == null && _TypeID != 0) _MyAnnotationType = AnnotationTypeInfo.Get(_TypeID); - return _MyAnnotationType; - } - } - private string _RtfText = string.Empty; - public string RtfText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RtfText; - } - } - private string _SearchText = string.Empty; - public string SearchText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _SearchText; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - // TODO: Replace base AnnotationInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current AnnotationInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check AnnotationInfo.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 AnnotationInfo - protected override object GetIdValue() - { - return _AnnotationID; - } - #endregion - #region Factory Methods - private static int _AnnotationInfoUnique = 0; - private static int AnnotationInfoUnique - { get { return ++_AnnotationInfoUnique; } } - private int _MyAnnotationInfoUnique = AnnotationInfoUnique; - public int MyAnnotationInfoUnique - { get { return _MyAnnotationInfoUnique; } } - protected AnnotationInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(AnnotationID.ToString())) return; - List listAnnotationInfo = _CacheByPrimaryKey[AnnotationID.ToString()]; // Get the list of items - while (listAnnotationInfo.Contains(this)) listAnnotationInfo.Remove(this); // Remove the item from the list - if (listAnnotationInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(AnnotationID.ToString()); // remove the list - } - public virtual Annotation Get() - { - return _Editable = Annotation.Get(_AnnotationID); - } - public static void Refresh(Annotation tmp) - { - string key = tmp.AnnotationID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (AnnotationInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Annotation tmp) - { - if (_ItemID != tmp.ItemID) - { - if (MyItem != null) MyItem.RefreshItemAnnotations(); // Update List for old value - _ItemID = tmp.ItemID; // Update the value - } - _MyItem = null; // Reset list so that the next line gets a new list - if (MyItem != null) MyItem.RefreshItemAnnotations(); // Update List for new value - if (_TypeID != tmp.TypeID) - { - if (MyAnnotationType != null) MyAnnotationType.RefreshAnnotationTypeAnnotations(); // Update List for old value - _TypeID = tmp.TypeID; // Update the value - } - _MyAnnotationType = null; // Reset list so that the next line gets a new list - if (MyAnnotationType != null) MyAnnotationType.RefreshAnnotationTypeAnnotations(); // Update List for new value - _RtfText = tmp.RtfText; - _SearchText = tmp.SearchText; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _AnnotationInfoExtension.Refresh(this); - if (_MyItem != null) - { - _MyItem.Dispose();// Dispose related value - _MyItem = null;// Reset related value - } - if (_MyAnnotationType != null) - { - _MyAnnotationType.Dispose();// Dispose related value - _MyAnnotationType = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(AnnotationTypeAnnotation tmp) - { - string key = tmp.AnnotationID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (AnnotationInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(AnnotationTypeAnnotation tmp) - { - if (_ItemID != tmp.ItemID) - { - if (MyItem != null) MyItem.RefreshItemAnnotations(); // Update List for old value - _ItemID = tmp.ItemID; // Update the value - } - _MyItem = null; // Reset list so that the next line gets a new list - if (MyItem != null) MyItem.RefreshItemAnnotations(); // Update List for new value - _RtfText = tmp.RtfText; - _SearchText = tmp.SearchText; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _AnnotationInfoExtension.Refresh(this); - if (_MyItem != null) - { - _MyItem.Dispose();// Dispose related value - _MyItem = null;// Reset related value - } - if (_MyAnnotationType != null) - { - _MyAnnotationType.Dispose();// Dispose related value - _MyAnnotationType = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(ItemAnnotation tmp) - { - string key = tmp.AnnotationID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (AnnotationInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ItemAnnotation tmp) - { - if (_TypeID != tmp.TypeID) - { - if (MyAnnotationType != null) MyAnnotationType.RefreshAnnotationTypeAnnotations(); // Update List for old value - _TypeID = tmp.TypeID; // Update the value - } - _MyAnnotationType = null; // Reset list so that the next line gets a new list - if (MyAnnotationType != null) MyAnnotationType.RefreshAnnotationTypeAnnotations(); // Update List for new value - _RtfText = tmp.RtfText; - _SearchText = tmp.SearchText; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _AnnotationInfoExtension.Refresh(this); - if (_MyItem != null) - { - _MyItem.Dispose();// Dispose related value - _MyItem = null;// Reset related value - } - if (_MyAnnotationType != null) - { - _MyAnnotationType.Dispose();// Dispose related value - _MyAnnotationType = null;// Reset related value - } - OnChange();// raise an event - } - public static AnnotationInfo Get(int annotationID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Annotation"); - try - { - AnnotationInfo tmp = GetCachedByPrimaryKey(annotationID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(annotationID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up AnnotationInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal AnnotationInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationInfo.Constructor", ex); - throw new DbCslaException("AnnotationInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _AnnotationID; - public int AnnotationID - { get { return _AnnotationID; } } - public PKCriteria(int annotationID) - { - _AnnotationID = annotationID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationInfo.ReadData", GetHashCode()); - try - { - _AnnotationID = dr.GetInt32("AnnotationID"); - _ItemID = dr.GetInt32("ItemID"); - _TypeID = dr.GetInt32("TypeID"); - _RtfText = dr.GetString("RtfText"); - _SearchText = dr.GetString("SearchText"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationInfo.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 = "getAnnotation"; - cm.Parameters.AddWithValue("@AnnotationID", criteria.AnnotationID); - 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("AnnotationInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - AnnotationInfoExtension _AnnotationInfoExtension = new AnnotationInfoExtension(); - [Serializable()] - partial class AnnotationInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(AnnotationInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class AnnotationInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AnnotationInfo) - { - // Return the ToString value - return ((AnnotationInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationInfoList.cs deleted file mode 100644 index 07442abd..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationInfoList.cs +++ /dev/null @@ -1,312 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// AnnotationInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AnnotationInfoListConverter))] - public partial class AnnotationInfoList : 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 (AnnotationInfo tmp in this) - { - tmp.Changed += new AnnotationInfoEvent(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 (AnnotationInfo tmp in this) - { - tmp.Changed -= new AnnotationInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static AnnotationInfoList _AnnotationInfoList = null; - /// - /// Return a list of all projects. - /// - public static AnnotationInfoList Get() - { - try - { - if (_AnnotationInfoList != null) - return _AnnotationInfoList; - AnnotationInfoList tmp = DataPortal.Fetch(); - AnnotationInfo.AddList(tmp); - tmp.AddEvents(); - _AnnotationInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static AnnotationInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on AnnotationInfoList.Get", ex); - // } - //} - public static AnnotationInfoList GetByTypeID(int typeID) - { - try - { - AnnotationInfoList tmp = DataPortal.Fetch(new TypeIDCriteria(typeID)); - AnnotationInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationInfoList.GetByTypeID", ex); - } - } - public static AnnotationInfoList GetByItemID(int itemID) - { - try - { - AnnotationInfoList tmp = DataPortal.Fetch(new ItemIDCriteria(itemID)); - AnnotationInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationInfoList.GetByItemID", ex); - } - } - private AnnotationInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAnnotations"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new AnnotationInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("AnnotationInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class TypeIDCriteria - { - public TypeIDCriteria(int typeID) - { - _TypeID = typeID; - } - private int _TypeID; - public int TypeID - { - get { return _TypeID; } - set { _TypeID = value; } - } - } - private void DataPortal_Fetch(TypeIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationInfoList.DataPortal_FetchTypeID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAnnotationsByTypeID"; - cm.Parameters.AddWithValue("@TypeID", criteria.TypeID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new AnnotationInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationInfoList.DataPortal_FetchTypeID", ex); - throw new DbCslaException("AnnotationInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ItemIDCriteria - { - public ItemIDCriteria(int itemID) - { - _ItemID = itemID; - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - private void DataPortal_Fetch(ItemIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationInfoList.DataPortal_FetchItemID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAnnotationsByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new AnnotationInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationInfoList.DataPortal_FetchItemID", ex); - throw new DbCslaException("AnnotationInfoList.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 - AnnotationInfoListPropertyDescriptor pd = new AnnotationInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class AnnotationInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private AnnotationInfo Item { get { return (AnnotationInfo)_Item; } } - public AnnotationInfoListPropertyDescriptor(AnnotationInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class AnnotationInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AnnotationInfoList) - { - // Return department and department role separated by comma. - return ((AnnotationInfoList)value).Items.Count.ToString() + " Annotations"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationType.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationType.cs deleted file mode 100644 index adb76aa2..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationType.cs +++ /dev/null @@ -1,1144 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// AnnotationType Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AnnotationTypeConverter))] - public partial class AnnotationType : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshAnnotationTypes = new List(); - private List _RefreshAnnotationTypeAnnotations = new List(); - private void AddToRefreshList(List refreshAnnotationTypes, List refreshAnnotationTypeAnnotations) - { - if (IsDirty) - refreshAnnotationTypes.Add(this); - if (_AnnotationTypeAnnotations != null && _AnnotationTypeAnnotations.IsDirty) - { - foreach (AnnotationTypeAnnotation tmp in _AnnotationTypeAnnotations) - { - if (tmp.IsDirty) refreshAnnotationTypeAnnotations.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshAnnotationTypes = new List(); - _RefreshAnnotationTypeAnnotations = new List(); - AddToRefreshList(_RefreshAnnotationTypes, _RefreshAnnotationTypeAnnotations); - } - private void ProcessRefreshList() - { - foreach (AnnotationType tmp in _RefreshAnnotationTypes) - { - AnnotationTypeInfo.Refresh(tmp); - } - foreach (AnnotationTypeAnnotation tmp in _RefreshAnnotationTypeAnnotations) - { - AnnotationInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(AnnotationType annotationType) - { - if (!_CacheList.Contains(annotationType)) _CacheList.Add(annotationType); // In AddToCache - } - protected static void RemoveFromCache(AnnotationType annotationType) - { - while (_CacheList.Contains(annotationType)) _CacheList.Remove(annotationType); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static Dictionary> _CacheByName = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (AnnotationType tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.TypeID.ToString())) - { - _CacheByPrimaryKey[tmp.TypeID.ToString()] = new List(); // Add new list for PrimaryKey - _CacheByName[tmp.Name.ToString()] = new List(); // Add new list for Name - } - _CacheByPrimaryKey[tmp.TypeID.ToString()].Add(tmp); // Add to Primary Key list - _CacheByName[tmp.Name.ToString()].Add(tmp); // Unique Index - remove.Add(tmp); - } - foreach (AnnotationType tmp in remove) - RemoveFromCache(tmp); - } - protected static AnnotationType GetCachedByPrimaryKey(int typeID) - { - ConvertListToDictionary(); - string key = typeID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - protected static AnnotationType GetCachedByName(string name) - { - ConvertListToDictionary(); - string key = name.ToString(); - if (_CacheByName.ContainsKey(key)) return _CacheByName[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextTypeID = -1; - public static int NextTypeID - { - get { return _nextTypeID--; } - } - private int _TypeID; - [System.ComponentModel.DataObjectField(true, true)] - public int TypeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TypeID; - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Name != value) - { - _Name = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _AnnotationTypeAnnotationCount = 0; - /// - /// Count of AnnotationTypeAnnotations for this AnnotationType - /// - public int AnnotationTypeAnnotationCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AnnotationTypeAnnotationCount; - } - } - private AnnotationTypeAnnotations _AnnotationTypeAnnotations = null; - /// - /// Related Field - /// - [TypeConverter(typeof(AnnotationTypeAnnotationsConverter))] - public AnnotationTypeAnnotations AnnotationTypeAnnotations - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_AnnotationTypeAnnotationCount > 0 && _AnnotationTypeAnnotations == null) - _AnnotationTypeAnnotations = AnnotationTypeAnnotations.GetByTypeID(TypeID); - else if (_AnnotationTypeAnnotations == null) - _AnnotationTypeAnnotations = AnnotationTypeAnnotations.New(); - return _AnnotationTypeAnnotations; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_AnnotationTypeAnnotations == null ? false : _AnnotationTypeAnnotations.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_AnnotationTypeAnnotations == null ? true : _AnnotationTypeAnnotations.IsValid); } - } - // TODO: Replace base AnnotationType.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current AnnotationType - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check AnnotationType.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 AnnotationType - protected override object GetIdValue() - { - return _TypeID; - } - #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 (_AnnotationTypeAnnotations != null && (hasBrokenRules = _AnnotationTypeAnnotations.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - 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"); - _AnnotationTypeExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _AnnotationTypeExtension.AddInstanceValidationRules(ValidationRules); - // 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(TypeID, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _AnnotationTypeExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _AnnotationTypeExtension.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 += _AnnotationTypeAnnotationCount; - 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 _AnnotationTypeUnique = 0; - protected static int AnnotationTypeUnique - { get { return ++_AnnotationTypeUnique; } } - private int _MyAnnotationTypeUnique = AnnotationTypeUnique; - public int MyAnnotationTypeUnique - { get { return _MyAnnotationTypeUnique; } } - protected AnnotationType() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(TypeID.ToString())) - { - List listAnnotationType = _CacheByPrimaryKey[TypeID.ToString()]; // Get the list of items - while (listAnnotationType.Contains(this)) listAnnotationType.Remove(this); // Remove the item from the list - if (listAnnotationType.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(TypeID.ToString()); // remove the list - } - string myKey; - myKey = null; - foreach (string key in _CacheByName.Keys) - if (_CacheByName[key].Contains(this)) - myKey = key; - if (myKey != null) - { - List listAnnotationType = _CacheByName[myKey]; // Get the list of items - listAnnotationType.Remove(this); // Remove the item from the list - if (listAnnotationType.Count == 0) //If there are no items left in the list - _CacheByName.Remove(myKey); // remove the list - } - } - public static AnnotationType New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a AnnotationType"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationType.New", ex); - } - } - public static AnnotationType New(string name) - { - AnnotationType tmp = AnnotationType.New(); - tmp.Name = name; - return tmp; - } - public static AnnotationType New(string name, string config, DateTime dts, string userID) - { - AnnotationType tmp = AnnotationType.New(); - tmp.Name = name; - tmp.Config = config; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static AnnotationType MakeAnnotationType(string name, string config, DateTime dts, string userID) - { - AnnotationType tmp = AnnotationType.New(name, config, dts, userID); - if (tmp.IsSavable) - { - AnnotationType 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 AnnotationType New(string name, string config) - { - AnnotationType tmp = AnnotationType.New(); - tmp.Name = name; - tmp.Config = config; - return tmp; - } - public static AnnotationType MakeAnnotationType(string name, string config) - { - AnnotationType tmp = AnnotationType.New(name, config); - if (tmp.IsSavable) - { - AnnotationType 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 AnnotationType Get(int typeID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a AnnotationType"); - try - { - AnnotationType tmp = GetCachedByPrimaryKey(typeID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(typeID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up AnnotationType - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationType.Get", ex); - } - } - public static AnnotationType GetByName(string name) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a AnnotationType"); - try - { - AnnotationType tmp = GetCachedByName(name); - if (tmp == null) - { - tmp = DataPortal.Fetch(new NameCriteria(name)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up AnnotationType - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationType.GetByName", ex); - } - } - public static AnnotationType Get(SafeDataReader dr) - { - if (dr.Read()) return new AnnotationType(dr); - return null; - } - internal AnnotationType(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int typeID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a AnnotationType"); - try - { - DataPortal.Delete(new PKCriteria(typeID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationType.Delete", ex); - } - } - public override AnnotationType Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a AnnotationType"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a AnnotationType"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a AnnotationType"); - try - { - BuildRefreshList(); - AnnotationType annotationType = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(annotationType);//Refresh the item in AllList - ProcessRefreshList(); - return annotationType; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _TypeID; - public int TypeID - { get { return _TypeID; } } - public PKCriteria(int typeID) - { - _TypeID = typeID; - } - } - [Serializable()] - private class NameCriteria - { - private string _Name; - public string Name - { get { return _Name; } } - public NameCriteria(string name) - { - _Name = name; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _TypeID = NextTypeID; - // Database Defaults - _DTS = _AnnotationTypeExtension.DefaultDTS; - _UserID = _AnnotationTypeExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationType.ReadData", GetHashCode()); - try - { - _TypeID = dr.GetInt32("TypeID"); - _Name = dr.GetString("Name"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationType.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationType.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationType.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 = "getAnnotationType"; - cm.Parameters.AddWithValue("@TypeID", criteria.TypeID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _AnnotationTypeAnnotations = AnnotationTypeAnnotations.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("AnnotationType.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationType.DataPortal_Fetch", ex); - } - } - private void DataPortal_Fetch(NameCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationType.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 = "getAnnotationTypeByName"; - cm.Parameters.AddWithValue("@Name", criteria.Name); - 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("AnnotationType.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationType.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("AnnotationType.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationType.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationType.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addAnnotationType"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@Name", _Name); - 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_TypeID = new SqlParameter("@newTypeID", SqlDbType.Int); - param_TypeID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_TypeID); - 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 - _TypeID = (int)cm.Parameters["@newTypeID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_AnnotationTypeAnnotations != null) _AnnotationTypeAnnotations.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationType.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationType.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationType.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int typeID, string name, string config, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationType.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addAnnotationType"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@Name", name); - 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_TypeID = new SqlParameter("@newTypeID", SqlDbType.Int); - param_TypeID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_TypeID); - 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 - typeID = (int)cm.Parameters["@newTypeID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationType.Add", ex); - throw new DbCslaException("AnnotationType.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}] AnnotationType.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("AnnotationType.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}] AnnotationType.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateAnnotationType"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@TypeID", _TypeID); - cm.Parameters.AddWithValue("@Name", _Name); - 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 (_AnnotationTypeAnnotations != null) _AnnotationTypeAnnotations.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationType.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 = AnnotationType.Add(cn, ref _TypeID, _Name, _Config, _DTS, _UserID); - else - _LastChanged = AnnotationType.Update(cn, ref _TypeID, _Name, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - if (_AnnotationTypeAnnotations != null) _AnnotationTypeAnnotations.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int typeID, string name, string config, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationType.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateAnnotationType"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@TypeID", typeID); - cm.Parameters.AddWithValue("@Name", name); - 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("AnnotationType.Update", ex); - throw new DbCslaException("AnnotationType.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_TypeID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationType.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAnnotationType"; - cm.Parameters.AddWithValue("@TypeID", criteria.TypeID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationType.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationType.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int typeID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationType.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAnnotationType"; - // Input PK Fields - cm.Parameters.AddWithValue("@TypeID", typeID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationType.Remove", ex); - throw new DbCslaException("AnnotationType.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int typeID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(typeID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationType.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _TypeID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int typeID) - { - _TypeID = typeID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationType.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsAnnotationType"; - cm.Parameters.AddWithValue("@TypeID", _TypeID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationType.DataPortal_Execute", ex); - throw new DbCslaException("AnnotationType.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - AnnotationTypeExtension _AnnotationTypeExtension = new AnnotationTypeExtension(); - [Serializable()] - partial class AnnotationTypeExtension : 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 AnnotationTypeConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AnnotationType) - { - // Return the ToString value - return ((AnnotationType)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create AnnotationTypeExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class AnnotationType -// { -// partial class AnnotationTypeExtension : 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/OldGenerated/AnnotationTypeAnnotation.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationTypeAnnotation.cs deleted file mode 100644 index 4a9d793c..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationTypeAnnotation.cs +++ /dev/null @@ -1,550 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// AnnotationTypeAnnotation Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AnnotationTypeAnnotationConverter))] - public partial class AnnotationTypeAnnotation : 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 _AnnotationID; - [System.ComponentModel.DataObjectField(true, true)] - public int AnnotationID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAnnotation != null) _AnnotationID = _MyAnnotation.AnnotationID; - return _AnnotationID; - } - } - private Annotation _MyAnnotation; - [System.ComponentModel.DataObjectField(true, true)] - public Annotation MyAnnotation - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAnnotation == null && _AnnotationID != 0) _MyAnnotation = Annotation.Get(_AnnotationID); - return _MyAnnotation; - } - } - private int _ItemID; - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem != null) _ItemID = _MyItem.ItemID; - return _ItemID; - } - } - private Item _MyItem; - public Item MyItem - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem == null && _ItemID != 0) _MyItem = Item.Get(_ItemID); - return _MyItem; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyItem != value) - { - _MyItem = value; - PropertyHasChanged(); - } - } - } - private string _RtfText = string.Empty; - public string RtfText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RtfText; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_RtfText != value) - { - _RtfText = value; - PropertyHasChanged(); - } - } - } - private string _SearchText = string.Empty; - public string SearchText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _SearchText; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_SearchText != value) - { - _SearchText = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int? _Item_PreviousID; - public int? Item_PreviousID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_PreviousID; - } - } - private int _Item_ContentID; - public int Item_ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_ContentID; - } - } - private DateTime _Item_DTS = new DateTime(); - public DateTime Item_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_DTS; - } - } - private string _Item_UserID = string.Empty; - public string Item_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_UserID; - } - } - // TODO: Check AnnotationTypeAnnotation.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 AnnotationTypeAnnotation - protected override object GetIdValue() - { - return _AnnotationID; - } - // TODO: Replace base AnnotationTypeAnnotation.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current AnnotationTypeAnnotation - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyItem == null ? false : _MyItem.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyItem == null ? true : _MyItem.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 (_MyItem != null && (hasBrokenRules = _MyItem.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(MyItemRequired, "MyItem"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("RtfText", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("SearchText", 1073741823)); - 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 MyItemRequired(AnnotationTypeAnnotation target, Csla.Validation.RuleArgs e) - { - if (target._ItemID == 0 && target._MyItem == 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(AnnotationID, ""); - //AuthorizationRules.AllowRead(ItemID, ""); - //AuthorizationRules.AllowWrite(ItemID, ""); - //AuthorizationRules.AllowRead(RtfText, ""); - //AuthorizationRules.AllowWrite(RtfText, ""); - //AuthorizationRules.AllowRead(SearchText, ""); - //AuthorizationRules.AllowWrite(SearchText, ""); - //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 AnnotationTypeAnnotation New(Item myItem) - { - return new AnnotationTypeAnnotation(myItem); - } - internal static AnnotationTypeAnnotation Get(SafeDataReader dr) - { - return new AnnotationTypeAnnotation(dr); - } - public AnnotationTypeAnnotation() - { - MarkAsChild(); - _AnnotationID = Annotation.NextAnnotationID; - _DTS = _AnnotationTypeAnnotationExtension.DefaultDTS; - _UserID = _AnnotationTypeAnnotationExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private AnnotationTypeAnnotation(Item myItem) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _AnnotationTypeAnnotationExtension.DefaultDTS; - _UserID = _AnnotationTypeAnnotationExtension.DefaultUserID; - _MyItem = myItem; - ValidationRules.CheckRules(); - } - internal AnnotationTypeAnnotation(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationTypeAnnotation.FetchDR", GetHashCode()); - try - { - _AnnotationID = dr.GetInt32("AnnotationID"); - _ItemID = dr.GetInt32("ItemID"); - _RtfText = dr.GetString("RtfText"); - _SearchText = dr.GetString("SearchText"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _Item_PreviousID = (int?)dr.GetValue("Item_PreviousID"); - _Item_ContentID = dr.GetInt32("Item_ContentID"); - _Item_DTS = dr.GetDateTime("Item_DTS"); - _Item_UserID = dr.GetString("Item_UserID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationTypeAnnotation.FetchDR", ex); - throw new DbCslaException("AnnotationTypeAnnotation.Fetch", ex); - } - MarkOld(); - } - internal void Insert(AnnotationType myAnnotationType) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Annotation.Add(cn, ref _AnnotationID, _MyItem, myAnnotationType, _RtfText, _SearchText, _Config, _DTS, _UserID); - MarkOld(); - } - internal void Update(AnnotationType myAnnotationType) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Annotation.Update(cn, ref _AnnotationID, _MyItem, myAnnotationType, _RtfText, _SearchText, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(AnnotationType myAnnotationType) - { - // 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"]; - Annotation.Remove(cn, _AnnotationID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - AnnotationTypeAnnotationExtension _AnnotationTypeAnnotationExtension = new AnnotationTypeAnnotationExtension(); - [Serializable()] - partial class AnnotationTypeAnnotationExtension : 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 AnnotationTypeAnnotationConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AnnotationTypeAnnotation) - { - // Return the ToString value - return ((AnnotationTypeAnnotation)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create AnnotationTypeAnnotationExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class AnnotationTypeAnnotation -// { -// partial class AnnotationTypeAnnotationExtension : 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/OldGenerated/AnnotationTypeAnnotations.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationTypeAnnotations.cs deleted file mode 100644 index b05ade0f..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationTypeAnnotations.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// AnnotationTypeAnnotations Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AnnotationTypeAnnotationsConverter))] - public partial class AnnotationTypeAnnotations : 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 AnnotationTypeAnnotation this[Annotation myAnnotation] - { - get - { - foreach (AnnotationTypeAnnotation annotation in this) - if (annotation.AnnotationID == myAnnotation.AnnotationID) - return annotation; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public AnnotationTypeAnnotation GetItem(Annotation myAnnotation) - { - foreach (AnnotationTypeAnnotation annotation in this) - if (annotation.AnnotationID == myAnnotation.AnnotationID) - return annotation; - return null; - } - public AnnotationTypeAnnotation Add(Item myItem) // One to Many - { - AnnotationTypeAnnotation annotation = AnnotationTypeAnnotation.New(myItem); - this.Add(annotation); - return annotation; - } - public void Remove(Annotation myAnnotation) - { - foreach (AnnotationTypeAnnotation annotation in this) - { - if (annotation.AnnotationID == myAnnotation.AnnotationID) - { - Remove(annotation); - break; - } - } - } - public bool Contains(Annotation myAnnotation) - { - foreach (AnnotationTypeAnnotation annotation in this) - if (annotation.AnnotationID == myAnnotation.AnnotationID) - return true; - return false; - } - public bool ContainsDeleted(Annotation myAnnotation) - { - foreach (AnnotationTypeAnnotation annotation in DeletedList) - if (annotation.AnnotationID == myAnnotation.AnnotationID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (AnnotationTypeAnnotation annotationTypeAnnotation in this) - if ((hasBrokenRules = annotationTypeAnnotation.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 AnnotationTypeAnnotations New() - { - return new AnnotationTypeAnnotations(); - } - internal static AnnotationTypeAnnotations Get(SafeDataReader dr) - { - return new AnnotationTypeAnnotations(dr); - } - public static AnnotationTypeAnnotations GetByTypeID(int typeID) - { - try - { - return DataPortal.Fetch(new TypeIDCriteria(typeID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationTypeAnnotations.GetByTypeID", ex); - } - } - private AnnotationTypeAnnotations() - { - MarkAsChild(); - } - internal AnnotationTypeAnnotations(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(AnnotationTypeAnnotation.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class TypeIDCriteria - { - public TypeIDCriteria(int typeID) - { - _TypeID = typeID; - } - private int _TypeID; - public int TypeID - { - get { return _TypeID; } - set { _TypeID = value; } - } - } - private void DataPortal_Fetch(TypeIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationTypeAnnotations.DataPortal_FetchTypeID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAnnotationsByTypeID"; - cm.Parameters.AddWithValue("@TypeID", criteria.TypeID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new AnnotationTypeAnnotation(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationTypeAnnotations.DataPortal_FetchTypeID", ex); - throw new DbCslaException("AnnotationTypeAnnotations.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(AnnotationType annotationType) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (AnnotationTypeAnnotation obj in DeletedList) - obj.DeleteSelf(annotationType);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (AnnotationTypeAnnotation obj in this) - { - if (obj.IsNew) - obj.Insert(annotationType); - else - obj.Update(annotationType); - } - } - 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 - AnnotationTypeAnnotationsPropertyDescriptor pd = new AnnotationTypeAnnotationsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class AnnotationTypeAnnotationsPropertyDescriptor : vlnListPropertyDescriptor - { - private AnnotationTypeAnnotation Item { get { return (AnnotationTypeAnnotation)_Item; } } - public AnnotationTypeAnnotationsPropertyDescriptor(AnnotationTypeAnnotations collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class AnnotationTypeAnnotationsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AnnotationTypeAnnotations) - { - // Return department and department role separated by comma. - return ((AnnotationTypeAnnotations)value).Items.Count.ToString() + " Annotations"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationTypeInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationTypeInfo.cs deleted file mode 100644 index 65643f64..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationTypeInfo.cs +++ /dev/null @@ -1,364 +0,0 @@ -// ======================================================================== -// 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 AnnotationTypeInfoEvent(object sender); - /// - /// AnnotationTypeInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AnnotationTypeInfoConverter))] - public partial class AnnotationTypeInfo : ReadOnlyBase, IDisposable - { - public event AnnotationTypeInfoEvent 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(AnnotationTypeInfo annotationTypeInfo) - { - if (!_CacheList.Contains(annotationTypeInfo)) _CacheList.Add(annotationTypeInfo); // In AddToCache - } - protected static void RemoveFromCache(AnnotationTypeInfo annotationTypeInfo) - { - while (_CacheList.Contains(annotationTypeInfo)) _CacheList.Remove(annotationTypeInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (AnnotationTypeInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.TypeID.ToString())) - { - _CacheByPrimaryKey[tmp.TypeID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.TypeID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (AnnotationTypeInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(AnnotationTypeInfoList lst) - { - foreach (AnnotationTypeInfo item in lst) AddToCache(item); - } - protected static AnnotationTypeInfo GetCachedByPrimaryKey(int typeID) - { - ConvertListToDictionary(); - string key = typeID.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 AnnotationType _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _TypeID; - [System.ComponentModel.DataObjectField(true, true)] - public int TypeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TypeID; - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _AnnotationTypeAnnotationCount = 0; - /// - /// Count of AnnotationTypeAnnotations for this AnnotationType - /// - public int AnnotationTypeAnnotationCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AnnotationTypeAnnotationCount; - } - } - private AnnotationInfoList _AnnotationTypeAnnotations = null; - [TypeConverter(typeof(AnnotationInfoListConverter))] - public AnnotationInfoList AnnotationTypeAnnotations - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_AnnotationTypeAnnotationCount < 0 || (_AnnotationTypeAnnotationCount > 0 && _AnnotationTypeAnnotations == null)) - _AnnotationTypeAnnotations = AnnotationInfoList.GetByTypeID(_TypeID); - if (_AnnotationTypeAnnotationCount < 0) - _AnnotationTypeAnnotationCount = _AnnotationTypeAnnotations.Count; - return _AnnotationTypeAnnotations; - } - } - public void RefreshAnnotationTypeAnnotations() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_TypeID.ToString())) - foreach (AnnotationTypeInfo tmp in _CacheByPrimaryKey[_TypeID.ToString()]) - tmp._AnnotationTypeAnnotationCount = -1; // This will cause the data to be requeried - } - // TODO: Replace base AnnotationTypeInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current AnnotationTypeInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check AnnotationTypeInfo.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 AnnotationTypeInfo - protected override object GetIdValue() - { - return _TypeID; - } - #endregion - #region Factory Methods - private static int _AnnotationTypeInfoUnique = 0; - private static int AnnotationTypeInfoUnique - { get { return ++_AnnotationTypeInfoUnique; } } - private int _MyAnnotationTypeInfoUnique = AnnotationTypeInfoUnique; - public int MyAnnotationTypeInfoUnique - { get { return _MyAnnotationTypeInfoUnique; } } - protected AnnotationTypeInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(TypeID.ToString())) return; - List listAnnotationTypeInfo = _CacheByPrimaryKey[TypeID.ToString()]; // Get the list of items - while (listAnnotationTypeInfo.Contains(this)) listAnnotationTypeInfo.Remove(this); // Remove the item from the list - if (listAnnotationTypeInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(TypeID.ToString()); // remove the list - } - public virtual AnnotationType Get() - { - return _Editable = AnnotationType.Get(_TypeID); - } - public static void Refresh(AnnotationType tmp) - { - string key = tmp.TypeID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (AnnotationTypeInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(AnnotationType tmp) - { - _Name = tmp.Name; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _AnnotationTypeInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static AnnotationTypeInfo Get(int typeID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a AnnotationType"); - try - { - AnnotationTypeInfo tmp = GetCachedByPrimaryKey(typeID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(typeID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up AnnotationTypeInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationTypeInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal AnnotationTypeInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationTypeInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationTypeInfo.Constructor", ex); - throw new DbCslaException("AnnotationTypeInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _TypeID; - public int TypeID - { get { return _TypeID; } } - public PKCriteria(int typeID) - { - _TypeID = typeID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationTypeInfo.ReadData", GetHashCode()); - try - { - _TypeID = dr.GetInt32("TypeID"); - _Name = dr.GetString("Name"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _AnnotationTypeAnnotationCount = dr.GetInt32("AnnotationCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationTypeInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationTypeInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationTypeInfo.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 = "getAnnotationType"; - cm.Parameters.AddWithValue("@TypeID", criteria.TypeID); - 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("AnnotationTypeInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AnnotationTypeInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - AnnotationTypeInfoExtension _AnnotationTypeInfoExtension = new AnnotationTypeInfoExtension(); - [Serializable()] - partial class AnnotationTypeInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(AnnotationTypeInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class AnnotationTypeInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AnnotationTypeInfo) - { - // Return the ToString value - return ((AnnotationTypeInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationTypeInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationTypeInfoList.cs deleted file mode 100644 index 7f04a375..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AnnotationTypeInfoList.cs +++ /dev/null @@ -1,198 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// AnnotationTypeInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AnnotationTypeInfoListConverter))] - public partial class AnnotationTypeInfoList : 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 (AnnotationTypeInfo tmp in this) - { - tmp.Changed += new AnnotationTypeInfoEvent(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 (AnnotationTypeInfo tmp in this) - { - tmp.Changed -= new AnnotationTypeInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static AnnotationTypeInfoList _AnnotationTypeInfoList = null; - /// - /// Return a list of all projects. - /// - public static AnnotationTypeInfoList Get() - { - try - { - if (_AnnotationTypeInfoList != null) - return _AnnotationTypeInfoList; - AnnotationTypeInfoList tmp = DataPortal.Fetch(); - AnnotationTypeInfo.AddList(tmp); - tmp.AddEvents(); - _AnnotationTypeInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AnnotationTypeInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static AnnotationTypeInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on AnnotationTypeInfoList.Get", ex); - // } - //} - private AnnotationTypeInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AnnotationTypeInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAnnotationTypes"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new AnnotationTypeInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AnnotationTypeInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("AnnotationTypeInfoList.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 - AnnotationTypeInfoListPropertyDescriptor pd = new AnnotationTypeInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class AnnotationTypeInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private AnnotationTypeInfo Item { get { return (AnnotationTypeInfo)_Item; } } - public AnnotationTypeInfoListPropertyDescriptor(AnnotationTypeInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class AnnotationTypeInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AnnotationTypeInfoList) - { - // Return department and department role separated by comma. - return ((AnnotationTypeInfoList)value).Items.Count.ToString() + " AnnotationTypes"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Assignment.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Assignment.cs deleted file mode 100644 index c62380cd..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Assignment.cs +++ /dev/null @@ -1,1195 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Assignment Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AssignmentConverter))] - public partial class Assignment : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshAssignments = new List(); - private void AddToRefreshList(List refreshAssignments) - { - if (IsDirty) - refreshAssignments.Add(this); - } - private void BuildRefreshList() - { - _RefreshAssignments = new List(); - AddToRefreshList(_RefreshAssignments); - } - private void ProcessRefreshList() - { - foreach (Assignment tmp in _RefreshAssignments) - { - AssignmentInfo.Refresh(tmp); - if (tmp._MyFolder != null) FolderInfo.Refresh(tmp._MyFolder); - if (tmp._MyGroup != null) GroupInfo.Refresh(tmp._MyGroup); - if (tmp._MyRole != null) RoleInfo.Refresh(tmp._MyRole); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Assignment assignment) - { - if (!_CacheList.Contains(assignment)) _CacheList.Add(assignment); // In AddToCache - } - protected static void RemoveFromCache(Assignment assignment) - { - while (_CacheList.Contains(assignment)) _CacheList.Remove(assignment); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Assignment tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.AID.ToString())) - { - _CacheByPrimaryKey[tmp.AID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.AID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (Assignment tmp in remove) - RemoveFromCache(tmp); - } - protected static Assignment GetCachedByPrimaryKey(int aid) - { - ConvertListToDictionary(); - string key = aid.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextAID = -1; - public static int NextAID - { - get { return _nextAID--; } - } - private int _AID; - [System.ComponentModel.DataObjectField(true, true)] - public int AID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AID; - } - } - private int _GID; - public int GID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup != null) _GID = _MyGroup.GID; - return _GID; - } - } - private Group _MyGroup; - public Group MyGroup - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup == null && _GID != 0) _MyGroup = Group.Get(_GID); - return _MyGroup; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyGroup != value) - { - _MyGroup = value; - PropertyHasChanged(); - } - } - } - private int _RID; - public int RID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole != null) _RID = _MyRole.RID; - return _RID; - } - } - private Role _MyRole; - public Role MyRole - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole == null && _RID != 0) _MyRole = Role.Get(_RID); - return _MyRole; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyRole != value) - { - _MyRole = value; - PropertyHasChanged(); - } - } - } - private int _FolderID; - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder != null) _FolderID = _MyFolder.FolderID; - return _FolderID; - } - } - private Folder _MyFolder; - public Folder MyFolder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder == null && _FolderID != 0) _MyFolder = Folder.Get(_FolderID); - return _MyFolder; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyFolder != value) - { - _MyFolder = value; - PropertyHasChanged(); - } - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _StartDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_StartDate != tmp.ToString()) - { - _StartDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _EndDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_EndDate != tmp.ToString()) - { - _EndDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsDirty - { - get { return base.IsDirty || (_MyFolder == null ? false : _MyFolder.IsDirty) || (_MyGroup == null ? false : _MyGroup.IsDirty) || (_MyRole == null ? false : _MyRole.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyFolder == null ? true : _MyFolder.IsValid) && (_MyGroup == null ? true : _MyGroup.IsValid) && (_MyRole == null ? true : _MyRole.IsValid); } - } - // TODO: Replace base Assignment.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Assignment - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Assignment.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 Assignment - protected override object GetIdValue() - { - return _AID; - } - #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 (_MyGroup != null && (hasBrokenRules = _MyGroup.HasBrokenRules) != null) return hasBrokenRules; - if (_MyRole != null && (hasBrokenRules = _MyRole.HasBrokenRules) != null) return hasBrokenRules; - if (_MyFolder != null && (hasBrokenRules = _MyFolder.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(MyGroupRequired, "MyGroup"); - ValidationRules.AddRule(MyRoleRequired, "MyRole"); - ValidationRules.AddRule(MyFolderRequired, "MyFolder"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "StartDate"); - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _AssignmentExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _AssignmentExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool StartDateValid(Assignment target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._StartDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool EndDateValid(Assignment target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._EndDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool MyGroupRequired(Assignment target, Csla.Validation.RuleArgs e) - { - if (target._GID == 0 && target._MyGroup == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - private static bool MyRoleRequired(Assignment target, Csla.Validation.RuleArgs e) - { - if (target._RID == 0 && target._MyRole == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - private static bool MyFolderRequired(Assignment target, Csla.Validation.RuleArgs e) - { - if (target._FolderID == 0 && target._MyFolder == 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(AID, ""); - //AuthorizationRules.AllowRead(GID, ""); - //AuthorizationRules.AllowRead(RID, ""); - //AuthorizationRules.AllowRead(FolderID, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(GID, ""); - //AuthorizationRules.AllowWrite(RID, ""); - //AuthorizationRules.AllowWrite(FolderID, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - _AssignmentExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _AssignmentExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _AssignmentUnique = 0; - protected static int AssignmentUnique - { get { return ++_AssignmentUnique; } } - private int _MyAssignmentUnique = AssignmentUnique; - public int MyAssignmentUnique - { get { return _MyAssignmentUnique; } } - protected Assignment() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(AID.ToString())) - { - List listAssignment = _CacheByPrimaryKey[AID.ToString()]; // Get the list of items - while (listAssignment.Contains(this)) listAssignment.Remove(this); // Remove the item from the list - if (listAssignment.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(AID.ToString()); // remove the list - } - } - public static Assignment New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Assignment"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Assignment.New", ex); - } - } - public static Assignment New(Group myGroup, Role myRole, Folder myFolder) - { - Assignment tmp = Assignment.New(); - tmp.MyGroup = myGroup; - tmp.MyRole = myRole; - tmp.MyFolder = myFolder; - return tmp; - } - public static Assignment New(Group myGroup, Role myRole, Folder myFolder, string startDate, string endDate, DateTime dts, string usrID) - { - Assignment tmp = Assignment.New(); - tmp.MyGroup = myGroup; - tmp.MyRole = myRole; - tmp.MyFolder = myFolder; - tmp.StartDate = startDate; - tmp.EndDate = endDate; - tmp.DTS = dts; - tmp.UsrID = usrID; - return tmp; - } - public static Assignment MakeAssignment(Group myGroup, Role myRole, Folder myFolder, string startDate, string endDate, DateTime dts, string usrID) - { - Assignment tmp = Assignment.New(myGroup, myRole, myFolder, startDate, endDate, dts, usrID); - if (tmp.IsSavable) - { - Assignment 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 Assignment New(Group myGroup, Role myRole, Folder myFolder, string endDate) - { - Assignment tmp = Assignment.New(); - tmp.MyGroup = myGroup; - tmp.MyRole = myRole; - tmp.MyFolder = myFolder; - tmp.EndDate = endDate; - return tmp; - } - public static Assignment MakeAssignment(Group myGroup, Role myRole, Folder myFolder, string endDate) - { - Assignment tmp = Assignment.New(myGroup, myRole, myFolder, endDate); - if (tmp.IsSavable) - { - Assignment 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 Assignment Get(int aid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Assignment"); - try - { - Assignment tmp = GetCachedByPrimaryKey(aid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(aid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Assignment - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Assignment.Get", ex); - } - } - public static Assignment Get(SafeDataReader dr) - { - if (dr.Read()) return new Assignment(dr); - return null; - } - internal Assignment(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int aid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Assignment"); - try - { - DataPortal.Delete(new PKCriteria(aid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Assignment.Delete", ex); - } - } - public override Assignment Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Assignment"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Assignment"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Assignment"); - try - { - BuildRefreshList(); - Assignment assignment = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(assignment);//Refresh the item in AllList - ProcessRefreshList(); - return assignment; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _AID; - public int AID - { get { return _AID; } } - public PKCriteria(int aid) - { - _AID = aid; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _AID = NextAID; - // Database Defaults - _StartDate = _AssignmentExtension.DefaultStartDate; - _DTS = _AssignmentExtension.DefaultDTS; - _UsrID = _AssignmentExtension.DefaultUsrID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Assignment.ReadData", GetHashCode()); - try - { - _AID = dr.GetInt32("AID"); - _GID = dr.GetInt32("GID"); - _RID = dr.GetInt32("RID"); - _FolderID = dr.GetInt32("FolderID"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Assignment.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Assignment.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Assignment.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 = "getAssignment"; - cm.Parameters.AddWithValue("@AID", criteria.AID); - 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("Assignment.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Assignment.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("Assignment.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Assignment.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Assignment.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyFolder != null) _MyFolder.Update(); - if (_MyGroup != null) _MyGroup.Update(); - if (_MyRole != null) _MyRole.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addAssignment"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@GID", GID); - cm.Parameters.AddWithValue("@RID", RID); - cm.Parameters.AddWithValue("@FolderID", FolderID); - cm.Parameters.AddWithValue("@StartDate", new SmartDate(_StartDate).DBValue); - cm.Parameters.AddWithValue("@EndDate", new SmartDate(_EndDate).DBValue); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - // Output Calculated Columns - SqlParameter param_AID = new SqlParameter("@newAID", SqlDbType.Int); - param_AID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AID); - 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 - _AID = (int)cm.Parameters["@newAID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Assignment.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Assignment.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Assignment.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int aid, Group myGroup, Role myRole, Folder myFolder, SmartDate startDate, SmartDate endDate, DateTime dts, string usrID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Assignment.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addAssignment"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@GID", myGroup.GID); - cm.Parameters.AddWithValue("@RID", myRole.RID); - cm.Parameters.AddWithValue("@FolderID", myFolder.FolderID); - cm.Parameters.AddWithValue("@StartDate", startDate.DBValue); - cm.Parameters.AddWithValue("@EndDate", endDate.DBValue); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - // Output Calculated Columns - SqlParameter param_AID = new SqlParameter("@newAID", SqlDbType.Int); - param_AID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_AID); - 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 - aid = (int)cm.Parameters["@newAID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Assignment.Add", ex); - throw new DbCslaException("Assignment.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}] Assignment.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("Assignment.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}] Assignment.SQLUpdate", GetHashCode()); - try - { - if (_MyFolder != null) _MyFolder.Update(); - if (_MyGroup != null) _MyGroup.Update(); - if (_MyRole != null) _MyRole.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateAssignment"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@AID", _AID); - cm.Parameters.AddWithValue("@GID", GID); - cm.Parameters.AddWithValue("@RID", RID); - cm.Parameters.AddWithValue("@FolderID", FolderID); - cm.Parameters.AddWithValue("@StartDate", new SmartDate(_StartDate).DBValue); - cm.Parameters.AddWithValue("@EndDate", new SmartDate(_EndDate).DBValue); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Assignment.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 = Assignment.Add(cn, ref _AID, _MyGroup, _MyRole, _MyFolder, new SmartDate(_StartDate), new SmartDate(_EndDate), _DTS, _UsrID); - else - _LastChanged = Assignment.Update(cn, ref _AID, _MyGroup, _MyRole, _MyFolder, new SmartDate(_StartDate), new SmartDate(_EndDate), _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int aid, Group myGroup, Role myRole, Folder myFolder, SmartDate startDate, SmartDate endDate, DateTime dts, string usrID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Assignment.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateAssignment"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@AID", aid); - cm.Parameters.AddWithValue("@GID", myGroup.GID); - cm.Parameters.AddWithValue("@RID", myRole.RID); - cm.Parameters.AddWithValue("@FolderID", myFolder.FolderID); - cm.Parameters.AddWithValue("@StartDate", startDate.DBValue); - cm.Parameters.AddWithValue("@EndDate", endDate.DBValue); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - 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("Assignment.Update", ex); - throw new DbCslaException("Assignment.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_AID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Assignment.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAssignment"; - cm.Parameters.AddWithValue("@AID", criteria.AID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Assignment.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Assignment.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int aid) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Assignment.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAssignment"; - // Input PK Fields - cm.Parameters.AddWithValue("@AID", aid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Assignment.Remove", ex); - throw new DbCslaException("Assignment.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int aid) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(aid)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Assignment.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _AID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int aid) - { - _AID = aid; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Assignment.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsAssignment"; - cm.Parameters.AddWithValue("@AID", _AID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Assignment.DataPortal_Execute", ex); - throw new DbCslaException("Assignment.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - AssignmentExtension _AssignmentExtension = new AssignmentExtension(); - [Serializable()] - partial class AssignmentExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 AssignmentConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Assignment) - { - // Return the ToString value - return ((Assignment)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create AssignmentExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Assignment -// { -// partial class AssignmentExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual SmartDate DefaultStartDate -// { -// get { return DateTime.Now.ToShortDateString(); } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/AssignmentInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/AssignmentInfo.cs deleted file mode 100644 index 28b4bbd4..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AssignmentInfo.cs +++ /dev/null @@ -1,567 +0,0 @@ -// ======================================================================== -// 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 AssignmentInfoEvent(object sender); - /// - /// AssignmentInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AssignmentInfoConverter))] - public partial class AssignmentInfo : ReadOnlyBase, IDisposable - { - public event AssignmentInfoEvent 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(AssignmentInfo assignmentInfo) - { - if (!_CacheList.Contains(assignmentInfo)) _CacheList.Add(assignmentInfo); // In AddToCache - } - protected static void RemoveFromCache(AssignmentInfo assignmentInfo) - { - while (_CacheList.Contains(assignmentInfo)) _CacheList.Remove(assignmentInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (AssignmentInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.AID.ToString())) - { - _CacheByPrimaryKey[tmp.AID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.AID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (AssignmentInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(AssignmentInfoList lst) - { - foreach (AssignmentInfo item in lst) AddToCache(item); - } - protected static AssignmentInfo GetCachedByPrimaryKey(int aid) - { - ConvertListToDictionary(); - string key = aid.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 Assignment _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _AID; - [System.ComponentModel.DataObjectField(true, true)] - public int AID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AID; - } - } - private int _GID; - public int GID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup != null) _GID = _MyGroup.GID; - return _GID; - } - } - private GroupInfo _MyGroup; - public GroupInfo MyGroup - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup == null && _GID != 0) _MyGroup = GroupInfo.Get(_GID); - return _MyGroup; - } - } - private int _RID; - public int RID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole != null) _RID = _MyRole.RID; - return _RID; - } - } - private RoleInfo _MyRole; - public RoleInfo MyRole - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole == null && _RID != 0) _MyRole = RoleInfo.Get(_RID); - return _MyRole; - } - } - private int _FolderID; - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder != null) _FolderID = _MyFolder.FolderID; - return _FolderID; - } - } - private FolderInfo _MyFolder; - public FolderInfo MyFolder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder == null && _FolderID != 0) _MyFolder = FolderInfo.Get(_FolderID); - return _MyFolder; - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - } - // TODO: Replace base AssignmentInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current AssignmentInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check AssignmentInfo.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 AssignmentInfo - protected override object GetIdValue() - { - return _AID; - } - #endregion - #region Factory Methods - private static int _AssignmentInfoUnique = 0; - private static int AssignmentInfoUnique - { get { return ++_AssignmentInfoUnique; } } - private int _MyAssignmentInfoUnique = AssignmentInfoUnique; - public int MyAssignmentInfoUnique - { get { return _MyAssignmentInfoUnique; } } - protected AssignmentInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(AID.ToString())) return; - List listAssignmentInfo = _CacheByPrimaryKey[AID.ToString()]; // Get the list of items - while (listAssignmentInfo.Contains(this)) listAssignmentInfo.Remove(this); // Remove the item from the list - if (listAssignmentInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(AID.ToString()); // remove the list - } - public virtual Assignment Get() - { - return _Editable = Assignment.Get(_AID); - } - public static void Refresh(Assignment tmp) - { - string key = tmp.AID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (AssignmentInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Assignment tmp) - { - if (_GID != tmp.GID) - { - if (MyGroup != null) MyGroup.RefreshGroupAssignments(); // Update List for old value - _GID = tmp.GID; // Update the value - } - _MyGroup = null; // Reset list so that the next line gets a new list - if (MyGroup != null) MyGroup.RefreshGroupAssignments(); // Update List for new value - if (_RID != tmp.RID) - { - if (MyRole != null) MyRole.RefreshRoleAssignments(); // Update List for old value - _RID = tmp.RID; // Update the value - } - _MyRole = null; // Reset list so that the next line gets a new list - if (MyRole != null) MyRole.RefreshRoleAssignments(); // Update List for new value - if (_FolderID != tmp.FolderID) - { - if (MyFolder != null) MyFolder.RefreshFolderAssignments(); // Update List for old value - _FolderID = tmp.FolderID; // Update the value - } - _MyFolder = null; // Reset list so that the next line gets a new list - if (MyFolder != null) MyFolder.RefreshFolderAssignments(); // Update List for new value - _StartDate = tmp.StartDate; - _EndDate = tmp.EndDate; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _AssignmentInfoExtension.Refresh(this); - if (_MyGroup != null) - { - _MyGroup.Dispose();// Dispose related value - _MyGroup = null;// Reset related value - } - if (_MyRole != null) - { - _MyRole.Dispose();// Dispose related value - _MyRole = null;// Reset related value - } - if (_MyFolder != null) - { - _MyFolder.Dispose();// Dispose related value - _MyFolder = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(FolderAssignment tmp) - { - string key = tmp.AID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (AssignmentInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(FolderAssignment tmp) - { - if (_GID != tmp.GID) - { - if (MyGroup != null) MyGroup.RefreshGroupAssignments(); // Update List for old value - _GID = tmp.GID; // Update the value - } - _MyGroup = null; // Reset list so that the next line gets a new list - if (MyGroup != null) MyGroup.RefreshGroupAssignments(); // Update List for new value - if (_RID != tmp.RID) - { - if (MyRole != null) MyRole.RefreshRoleAssignments(); // Update List for old value - _RID = tmp.RID; // Update the value - } - _MyRole = null; // Reset list so that the next line gets a new list - if (MyRole != null) MyRole.RefreshRoleAssignments(); // Update List for new value - _StartDate = tmp.StartDate; - _EndDate = tmp.EndDate; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _AssignmentInfoExtension.Refresh(this); - if (_MyGroup != null) - { - _MyGroup.Dispose();// Dispose related value - _MyGroup = null;// Reset related value - } - if (_MyRole != null) - { - _MyRole.Dispose();// Dispose related value - _MyRole = null;// Reset related value - } - if (_MyFolder != null) - { - _MyFolder.Dispose();// Dispose related value - _MyFolder = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(GroupAssignment tmp) - { - string key = tmp.AID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (AssignmentInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(GroupAssignment tmp) - { - if (_RID != tmp.RID) - { - if (MyRole != null) MyRole.RefreshRoleAssignments(); // Update List for old value - _RID = tmp.RID; // Update the value - } - _MyRole = null; // Reset list so that the next line gets a new list - if (MyRole != null) MyRole.RefreshRoleAssignments(); // Update List for new value - if (_FolderID != tmp.FolderID) - { - if (MyFolder != null) MyFolder.RefreshFolderAssignments(); // Update List for old value - _FolderID = tmp.FolderID; // Update the value - } - _MyFolder = null; // Reset list so that the next line gets a new list - if (MyFolder != null) MyFolder.RefreshFolderAssignments(); // Update List for new value - _StartDate = tmp.StartDate; - _EndDate = tmp.EndDate; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _AssignmentInfoExtension.Refresh(this); - if (_MyGroup != null) - { - _MyGroup.Dispose();// Dispose related value - _MyGroup = null;// Reset related value - } - if (_MyRole != null) - { - _MyRole.Dispose();// Dispose related value - _MyRole = null;// Reset related value - } - if (_MyFolder != null) - { - _MyFolder.Dispose();// Dispose related value - _MyFolder = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(RoleAssignment tmp) - { - string key = tmp.AID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (AssignmentInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(RoleAssignment tmp) - { - if (_GID != tmp.GID) - { - if (MyGroup != null) MyGroup.RefreshGroupAssignments(); // Update List for old value - _GID = tmp.GID; // Update the value - } - _MyGroup = null; // Reset list so that the next line gets a new list - if (MyGroup != null) MyGroup.RefreshGroupAssignments(); // Update List for new value - if (_FolderID != tmp.FolderID) - { - if (MyFolder != null) MyFolder.RefreshFolderAssignments(); // Update List for old value - _FolderID = tmp.FolderID; // Update the value - } - _MyFolder = null; // Reset list so that the next line gets a new list - if (MyFolder != null) MyFolder.RefreshFolderAssignments(); // Update List for new value - _StartDate = tmp.StartDate; - _EndDate = tmp.EndDate; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _AssignmentInfoExtension.Refresh(this); - if (_MyGroup != null) - { - _MyGroup.Dispose();// Dispose related value - _MyGroup = null;// Reset related value - } - if (_MyRole != null) - { - _MyRole.Dispose();// Dispose related value - _MyRole = null;// Reset related value - } - if (_MyFolder != null) - { - _MyFolder.Dispose();// Dispose related value - _MyFolder = null;// Reset related value - } - OnChange();// raise an event - } - public static AssignmentInfo Get(int aid) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Assignment"); - try - { - AssignmentInfo tmp = GetCachedByPrimaryKey(aid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(aid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up AssignmentInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AssignmentInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal AssignmentInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssignmentInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AssignmentInfo.Constructor", ex); - throw new DbCslaException("AssignmentInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _AID; - public int AID - { get { return _AID; } } - public PKCriteria(int aid) - { - _AID = aid; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssignmentInfo.ReadData", GetHashCode()); - try - { - _AID = dr.GetInt32("AID"); - _GID = dr.GetInt32("GID"); - _RID = dr.GetInt32("RID"); - _FolderID = dr.GetInt32("FolderID"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AssignmentInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AssignmentInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssignmentInfo.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 = "getAssignment"; - cm.Parameters.AddWithValue("@AID", criteria.AID); - 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("AssignmentInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("AssignmentInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - AssignmentInfoExtension _AssignmentInfoExtension = new AssignmentInfoExtension(); - [Serializable()] - partial class AssignmentInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(AssignmentInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class AssignmentInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AssignmentInfo) - { - // Return the ToString value - return ((AssignmentInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AssignmentInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/AssignmentInfoList.cs deleted file mode 100644 index ff4a630a..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/AssignmentInfoList.cs +++ /dev/null @@ -1,369 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// AssignmentInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(AssignmentInfoListConverter))] - public partial class AssignmentInfoList : 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 (AssignmentInfo tmp in this) - { - tmp.Changed += new AssignmentInfoEvent(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 (AssignmentInfo tmp in this) - { - tmp.Changed -= new AssignmentInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static AssignmentInfoList _AssignmentInfoList = null; - /// - /// Return a list of all projects. - /// - public static AssignmentInfoList Get() - { - try - { - if (_AssignmentInfoList != null) - return _AssignmentInfoList; - AssignmentInfoList tmp = DataPortal.Fetch(); - AssignmentInfo.AddList(tmp); - tmp.AddEvents(); - _AssignmentInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AssignmentInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static AssignmentInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on AssignmentInfoList.Get", ex); - // } - //} - public static AssignmentInfoList GetByFolderID(int folderID) - { - try - { - AssignmentInfoList tmp = DataPortal.Fetch(new FolderIDCriteria(folderID)); - AssignmentInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AssignmentInfoList.GetByFolderID", ex); - } - } - public static AssignmentInfoList GetByGID(int gid) - { - try - { - AssignmentInfoList tmp = DataPortal.Fetch(new GIDCriteria(gid)); - AssignmentInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AssignmentInfoList.GetByGID", ex); - } - } - public static AssignmentInfoList GetByRID(int rid) - { - try - { - AssignmentInfoList tmp = DataPortal.Fetch(new RIDCriteria(rid)); - AssignmentInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on AssignmentInfoList.GetByRID", ex); - } - } - private AssignmentInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssignmentInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAssignments"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new AssignmentInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AssignmentInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("AssignmentInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FolderIDCriteria - { - public FolderIDCriteria(int folderID) - { - _FolderID = folderID; - } - private int _FolderID; - public int FolderID - { - get { return _FolderID; } - set { _FolderID = value; } - } - } - private void DataPortal_Fetch(FolderIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssignmentInfoList.DataPortal_FetchFolderID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAssignmentsByFolderID"; - cm.Parameters.AddWithValue("@FolderID", criteria.FolderID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new AssignmentInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AssignmentInfoList.DataPortal_FetchFolderID", ex); - throw new DbCslaException("AssignmentInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class GIDCriteria - { - public GIDCriteria(int gid) - { - _GID = gid; - } - private int _GID; - public int GID - { - get { return _GID; } - set { _GID = value; } - } - } - private void DataPortal_Fetch(GIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssignmentInfoList.DataPortal_FetchGID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAssignmentsByGID"; - cm.Parameters.AddWithValue("@GID", criteria.GID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new AssignmentInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AssignmentInfoList.DataPortal_FetchGID", ex); - throw new DbCslaException("AssignmentInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class RIDCriteria - { - public RIDCriteria(int rid) - { - _RID = rid; - } - private int _RID; - public int RID - { - get { return _RID; } - set { _RID = value; } - } - } - private void DataPortal_Fetch(RIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] AssignmentInfoList.DataPortal_FetchRID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAssignmentsByRID"; - cm.Parameters.AddWithValue("@RID", criteria.RID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new AssignmentInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("AssignmentInfoList.DataPortal_FetchRID", ex); - throw new DbCslaException("AssignmentInfoList.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 - AssignmentInfoListPropertyDescriptor pd = new AssignmentInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class AssignmentInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private AssignmentInfo Item { get { return (AssignmentInfo)_Item; } } - public AssignmentInfoListPropertyDescriptor(AssignmentInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class AssignmentInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is AssignmentInfoList) - { - // Return department and department role separated by comma. - return ((AssignmentInfoList)value).Items.Count.ToString() + " Assignments"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ChildFolders.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ChildFolders.cs deleted file mode 100644 index 4fe873d8..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ChildFolders.cs +++ /dev/null @@ -1,309 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ChildFolders Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ChildFoldersConverter))] - public partial class ChildFolders : 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 new Folder this[int folderID] - { - get - { - foreach (Folder folder in this) - if (folder.FolderID == folderID) - return folder; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public Folder GetItem(int folderID) - { - foreach (Folder folder in this) - if (folder.FolderID == folderID) - return folder; - return null; - } - public Folder Add(Folder myParent, string name, string shortName) // One to Many with unique fields - { - if (!Contains(name)) - { - Folder folder = Folder.New(myParent, name, shortName); - this.Add(folder); - return folder; - } - else - throw new InvalidOperationException("folder already exists"); - } - public void Remove(int folderID) - { - foreach (Folder folder in this) - { - if (folder.FolderID == folderID) - { - Remove(folder); - break; - } - } - } - public bool Contains(int folderID) - { - foreach (Folder folder in this) - if (folder.FolderID == folderID) - return true; - return false; - } - public bool ContainsDeleted(int folderID) - { - foreach (Folder folder in DeletedList) - if (folder.FolderID == folderID) - return true; - return false; - } - public bool Contains(string name) - { - foreach (Folder folder in this) - if (folder.Name == name) - return true; - return false; - } - public bool ContainsDeleted(string name) - { - foreach (Folder folder in DeletedList) - if (folder.Name == name) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (Folder folder in this) - if ((hasBrokenRules = folder.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 ChildFolders New() - { - return new ChildFolders(); - } - internal static ChildFolders Get(SafeDataReader dr, Folder parent) - { - return new ChildFolders(dr, parent); - } - public static ChildFolders GetByParentID(int parentID) - { - try - { - return DataPortal.Fetch(new ParentIDCriteria(parentID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ChildFolders.GetByParentID", ex); - } - } - private ChildFolders() - { - MarkAsChild(); - } - internal ChildFolders(SafeDataReader dr, Folder parent) - { - MarkAsChild(); - Fetch(dr, parent); - } - #endregion - #region Data Access Portal - // called to load data from the database - private void Fetch(SafeDataReader dr, Folder parent) - { - this.RaiseListChangedEvents = false; - while (dr.Read()) - this.Add(Folder.Get(dr, parent)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ParentIDCriteria - { - public ParentIDCriteria(int parentID) - { - _ParentID = parentID; - } - private int _ParentID; - public int ParentID - { - get { return _ParentID; } - set { _ParentID = value; } - } - } - private void DataPortal_Fetch(ParentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ChildFolders.DataPortal_FetchParentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getChildFolders"; - cm.Parameters.AddWithValue("@ParentID", criteria.ParentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new Folder(dr, criteria.ParentID)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ChildFolders.DataPortal_FetchParentID", ex); - throw new DbCslaException("ChildFolders.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Folder folder) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (Folder obj in DeletedList) - obj.DeleteSelf(folder);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (Folder obj in this) - { - if (obj.IsNew) - obj.SQLInsert(); - else - obj.SQLUpdate(); - } - } - 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 - ChildFoldersPropertyDescriptor pd = new ChildFoldersPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ChildFoldersPropertyDescriptor : vlnListPropertyDescriptor - { - private Folder Item { get { return (Folder)_Item; } } - public ChildFoldersPropertyDescriptor(ChildFolders collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ChildFoldersConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ChildFolders) - { - // Return department and department role separated by comma. - return ((ChildFolders)value).Items.Count.ToString() + " Folders"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ChildFormats.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ChildFormats.cs deleted file mode 100644 index 3969d506..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ChildFormats.cs +++ /dev/null @@ -1,309 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ChildFormats Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ChildFormatsConverter))] - public partial class ChildFormats : 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 new Format this[int formatID] - { - get - { - foreach (Format format in this) - if (format.FormatID == formatID) - return format; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public Format GetItem(int formatID) - { - foreach (Format format in this) - if (format.FormatID == formatID) - return format; - return null; - } - public Format Add(Format myParent, string name, string data) // One to Many with unique fields - { - if (!Contains(name)) - { - Format format = Format.New(myParent, name, data); - this.Add(format); - return format; - } - else - throw new InvalidOperationException("format already exists"); - } - public void Remove(int formatID) - { - foreach (Format format in this) - { - if (format.FormatID == formatID) - { - Remove(format); - break; - } - } - } - public bool Contains(int formatID) - { - foreach (Format format in this) - if (format.FormatID == formatID) - return true; - return false; - } - public bool ContainsDeleted(int formatID) - { - foreach (Format format in DeletedList) - if (format.FormatID == formatID) - return true; - return false; - } - public bool Contains(string name) - { - foreach (Format format in this) - if (format.Name == name) - return true; - return false; - } - public bool ContainsDeleted(string name) - { - foreach (Format format in DeletedList) - if (format.Name == name) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (Format format in this) - if ((hasBrokenRules = format.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 ChildFormats New() - { - return new ChildFormats(); - } - internal static ChildFormats Get(SafeDataReader dr, Format parent) - { - return new ChildFormats(dr, parent); - } - public static ChildFormats GetByParentID(int parentID) - { - try - { - return DataPortal.Fetch(new ParentIDCriteria(parentID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ChildFormats.GetByParentID", ex); - } - } - private ChildFormats() - { - MarkAsChild(); - } - internal ChildFormats(SafeDataReader dr, Format parent) - { - MarkAsChild(); - Fetch(dr, parent); - } - #endregion - #region Data Access Portal - // called to load data from the database - private void Fetch(SafeDataReader dr, Format parent) - { - this.RaiseListChangedEvents = false; - while (dr.Read()) - this.Add(Format.Get(dr, parent)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ParentIDCriteria - { - public ParentIDCriteria(int parentID) - { - _ParentID = parentID; - } - private int _ParentID; - public int ParentID - { - get { return _ParentID; } - set { _ParentID = value; } - } - } - private void DataPortal_Fetch(ParentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ChildFormats.DataPortal_FetchParentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getChildFormats"; - cm.Parameters.AddWithValue("@ParentID", criteria.ParentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new Format(dr, criteria.ParentID)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ChildFormats.DataPortal_FetchParentID", ex); - throw new DbCslaException("ChildFormats.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Format format) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (Format obj in DeletedList) - obj.DeleteSelf(format);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (Format obj in this) - { - if (obj.IsNew) - obj.SQLInsert(); - else - obj.SQLUpdate(); - } - } - 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 - ChildFormatsPropertyDescriptor pd = new ChildFormatsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ChildFormatsPropertyDescriptor : vlnListPropertyDescriptor - { - private Format Item { get { return (Format)_Item; } } - public ChildFormatsPropertyDescriptor(ChildFormats collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ChildFormatsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ChildFormats) - { - // Return department and department role separated by comma. - return ((ChildFormats)value).Items.Count.ToString() + " Formats"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/CommonRules.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/CommonRules.cs deleted file mode 100644 index b59fd468..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/CommonRules.cs +++ /dev/null @@ -1,40 +0,0 @@ -// ======================================================================== -// 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; -using System.Reflection; -namespace VEPROMS.CSLA.Library -{ - /// - /// CommonRules Generated by MyGeneration using the CSLA Object Mapping template - /// - public static class CommonRules - { - public static bool Required(object target, Csla.Validation.RuleArgs e) - { - PropertyInfo propertyInfoObj = target.GetType().GetProperty(e.PropertyName); - if (propertyInfoObj == null) return true; - if (propertyInfoObj.GetValue(target, null) == null) - { - e.Description = e.PropertyName + " is a required field"; - return false; - } - return true; - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Connection.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Connection.cs deleted file mode 100644 index 5744f913..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Connection.cs +++ /dev/null @@ -1,1236 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Connection Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ConnectionConverter))] - public partial class Connection : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshConnections = new List(); - private List _RefreshConnectionFolders = new List(); - private void AddToRefreshList(List refreshConnections, List refreshConnectionFolders) - { - if (IsDirty) - refreshConnections.Add(this); - if (_ConnectionFolders != null && _ConnectionFolders.IsDirty) - { - foreach (ConnectionFolder tmp in _ConnectionFolders) - { - if (tmp.IsDirty) refreshConnectionFolders.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshConnections = new List(); - _RefreshConnectionFolders = new List(); - AddToRefreshList(_RefreshConnections, _RefreshConnectionFolders); - } - private void ProcessRefreshList() - { - foreach (Connection tmp in _RefreshConnections) - { - ConnectionInfo.Refresh(tmp); - } - foreach (ConnectionFolder tmp in _RefreshConnectionFolders) - { - FolderInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Connection connection) - { - if (!_CacheList.Contains(connection)) _CacheList.Add(connection); // In AddToCache - } - protected static void RemoveFromCache(Connection connection) - { - while (_CacheList.Contains(connection)) _CacheList.Remove(connection); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static Dictionary> _CacheByName = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Connection tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.DBID.ToString())) - { - _CacheByPrimaryKey[tmp.DBID.ToString()] = new List(); // Add new list for PrimaryKey - _CacheByName[tmp.Name.ToString()] = new List(); // Add new list for Name - } - _CacheByPrimaryKey[tmp.DBID.ToString()].Add(tmp); // Add to Primary Key list - _CacheByName[tmp.Name.ToString()].Add(tmp); // Unique Index - remove.Add(tmp); - } - foreach (Connection tmp in remove) - RemoveFromCache(tmp); - } - protected static Connection GetCachedByPrimaryKey(int dbid) - { - ConvertListToDictionary(); - string key = dbid.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - protected static Connection GetCachedByName(string name) - { - ConvertListToDictionary(); - string key = name.ToString(); - if (_CacheByName.ContainsKey(key)) return _CacheByName[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextDBID = -1; - public static int NextDBID - { - get { return _nextDBID--; } - } - private int _DBID; - [System.ComponentModel.DataObjectField(true, true)] - public int DBID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DBID; - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Name != value) - { - _Name = value; - PropertyHasChanged(); - } - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Title != value) - { - _Title = value; - PropertyHasChanged(); - } - } - } - private string _ConnectionString = string.Empty; - public string ConnectionString - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ConnectionString; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_ConnectionString != value) - { - _ConnectionString = value; - PropertyHasChanged(); - } - } - } - private int _ServerType; - /// - /// 0 SQL Server - /// - public int ServerType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ServerType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ServerType != value) - { - _ServerType = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _ConnectionFolderCount = 0; - /// - /// Count of ConnectionFolders for this Connection - /// - public int ConnectionFolderCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ConnectionFolderCount; - } - } - private ConnectionFolders _ConnectionFolders = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ConnectionFoldersConverter))] - public ConnectionFolders ConnectionFolders - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ConnectionFolderCount > 0 && _ConnectionFolders == null) - _ConnectionFolders = ConnectionFolders.GetByDBID(DBID); - else if (_ConnectionFolders == null) - _ConnectionFolders = ConnectionFolders.New(); - return _ConnectionFolders; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_ConnectionFolders == null ? false : _ConnectionFolders.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_ConnectionFolders == null ? true : _ConnectionFolders.IsValid); } - } - // TODO: Replace base Connection.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Connection - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Connection.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 Connection - protected override object GetIdValue() - { - return _DBID; - } - #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 (_ConnectionFolders != null && (hasBrokenRules = _ConnectionFolders.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 510)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("ConnectionString", 510)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _ConnectionExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _ConnectionExtension.AddInstanceValidationRules(ValidationRules); - // 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(DBID, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowRead(ConnectionString, ""); - //AuthorizationRules.AllowRead(ServerType, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowWrite(ConnectionString, ""); - //AuthorizationRules.AllowWrite(ServerType, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - _ConnectionExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _ConnectionExtension.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 += _ConnectionFolderCount; - 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 _ConnectionUnique = 0; - protected static int ConnectionUnique - { get { return ++_ConnectionUnique; } } - private int _MyConnectionUnique = ConnectionUnique; - public int MyConnectionUnique - { get { return _MyConnectionUnique; } } - protected Connection() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(DBID.ToString())) - { - List listConnection = _CacheByPrimaryKey[DBID.ToString()]; // Get the list of items - while (listConnection.Contains(this)) listConnection.Remove(this); // Remove the item from the list - if (listConnection.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(DBID.ToString()); // remove the list - } - string myKey; - myKey = null; - foreach (string key in _CacheByName.Keys) - if (_CacheByName[key].Contains(this)) - myKey = key; - if (myKey != null) - { - List listConnection = _CacheByName[myKey]; // Get the list of items - listConnection.Remove(this); // Remove the item from the list - if (listConnection.Count == 0) //If there are no items left in the list - _CacheByName.Remove(myKey); // remove the list - } - } - public static Connection New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Connection"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Connection.New", ex); - } - } - public static Connection New(string name, string title, string connectionString, int serverType, string config, DateTime dts, string usrID) - { - Connection tmp = Connection.New(); - tmp.Name = name; - tmp.Title = title; - tmp.ConnectionString = connectionString; - tmp.ServerType = serverType; - tmp.Config = config; - tmp.DTS = dts; - tmp.UsrID = usrID; - return tmp; - } - public static Connection MakeConnection(string name, string title, string connectionString, int serverType, string config, DateTime dts, string usrID) - { - Connection tmp = Connection.New(name, title, connectionString, serverType, config, dts, usrID); - if (tmp.IsSavable) - { - Connection 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 Connection New(string name, string title, string connectionString, string config) - { - Connection tmp = Connection.New(); - tmp.Name = name; - tmp.Title = title; - tmp.ConnectionString = connectionString; - tmp.Config = config; - return tmp; - } - public static Connection MakeConnection(string name, string title, string connectionString, string config) - { - Connection tmp = Connection.New(name, title, connectionString, config); - if (tmp.IsSavable) - { - Connection 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 Connection Get(int dbid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Connection"); - try - { - Connection tmp = GetCachedByPrimaryKey(dbid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(dbid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Connection - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Connection.Get", ex); - } - } - public static Connection GetByName(string name) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Connection"); - try - { - Connection tmp = GetCachedByName(name); - if (tmp == null) - { - tmp = DataPortal.Fetch(new NameCriteria(name)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Connection - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Connection.GetByName", ex); - } - } - public static Connection Get(SafeDataReader dr) - { - if (dr.Read()) return new Connection(dr); - return null; - } - internal Connection(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int dbid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Connection"); - try - { - DataPortal.Delete(new PKCriteria(dbid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Connection.Delete", ex); - } - } - public override Connection Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Connection"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Connection"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Connection"); - try - { - BuildRefreshList(); - Connection connection = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(connection);//Refresh the item in AllList - ProcessRefreshList(); - return connection; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _DBID; - public int DBID - { get { return _DBID; } } - public PKCriteria(int dbid) - { - _DBID = dbid; - } - } - [Serializable()] - private class NameCriteria - { - private string _Name; - public string Name - { get { return _Name; } } - public NameCriteria(string name) - { - _Name = name; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _DBID = NextDBID; - // Database Defaults - _ServerType = _ConnectionExtension.DefaultServerType; - _DTS = _ConnectionExtension.DefaultDTS; - _UsrID = _ConnectionExtension.DefaultUsrID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Connection.ReadData", GetHashCode()); - try - { - _DBID = dr.GetInt32("DBID"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _ConnectionString = dr.GetString("ConnectionString"); - _ServerType = dr.GetInt32("ServerType"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _ConnectionFolderCount = dr.GetInt32("FolderCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Connection.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Connection.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 = "getConnection"; - cm.Parameters.AddWithValue("@DBID", criteria.DBID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _ConnectionFolders = ConnectionFolders.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("Connection.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Connection.DataPortal_Fetch", ex); - } - } - private void DataPortal_Fetch(NameCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Connection.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 = "getConnectionByName"; - cm.Parameters.AddWithValue("@Name", criteria.Name); - 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("Connection.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Connection.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("Connection.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Connection.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Connection.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addConnection"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@Name", _Name); - cm.Parameters.AddWithValue("@Title", _Title); - cm.Parameters.AddWithValue("@ConnectionString", _ConnectionString); - cm.Parameters.AddWithValue("@ServerType", _ServerType); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - // Output Calculated Columns - SqlParameter param_DBID = new SqlParameter("@newDBID", SqlDbType.Int); - param_DBID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_DBID); - 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 - _DBID = (int)cm.Parameters["@newDBID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_ConnectionFolders != null) _ConnectionFolders.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Connection.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Connection.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int dbid, string name, string title, string connectionString, int serverType, string config, DateTime dts, string usrID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Connection.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addConnection"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@Name", name); - cm.Parameters.AddWithValue("@Title", title); - cm.Parameters.AddWithValue("@ConnectionString", connectionString); - cm.Parameters.AddWithValue("@ServerType", serverType); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - // Output Calculated Columns - SqlParameter param_DBID = new SqlParameter("@newDBID", SqlDbType.Int); - param_DBID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_DBID); - 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 - dbid = (int)cm.Parameters["@newDBID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection.Add", ex); - throw new DbCslaException("Connection.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}] Connection.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("Connection.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}] Connection.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateConnection"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@DBID", _DBID); - cm.Parameters.AddWithValue("@Name", _Name); - cm.Parameters.AddWithValue("@Title", _Title); - cm.Parameters.AddWithValue("@ConnectionString", _ConnectionString); - cm.Parameters.AddWithValue("@ServerType", _ServerType); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - 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 (_ConnectionFolders != null) _ConnectionFolders.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection.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 = Connection.Add(cn, ref _DBID, _Name, _Title, _ConnectionString, _ServerType, _Config, _DTS, _UsrID); - else - _LastChanged = Connection.Update(cn, ref _DBID, _Name, _Title, _ConnectionString, _ServerType, _Config, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - if (_ConnectionFolders != null) _ConnectionFolders.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int dbid, string name, string title, string connectionString, int serverType, string config, DateTime dts, string usrID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Connection.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateConnection"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@DBID", dbid); - cm.Parameters.AddWithValue("@Name", name); - cm.Parameters.AddWithValue("@Title", title); - cm.Parameters.AddWithValue("@ConnectionString", connectionString); - cm.Parameters.AddWithValue("@ServerType", serverType); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - 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("Connection.Update", ex); - throw new DbCslaException("Connection.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_DBID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Connection.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteConnection"; - cm.Parameters.AddWithValue("@DBID", criteria.DBID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Connection.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int dbid) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Connection.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteConnection"; - // Input PK Fields - cm.Parameters.AddWithValue("@DBID", dbid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection.Remove", ex); - throw new DbCslaException("Connection.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int dbid) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(dbid)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Connection.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _DBID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int dbid) - { - _DBID = dbid; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Connection.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsConnection"; - cm.Parameters.AddWithValue("@DBID", _DBID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection.DataPortal_Execute", ex); - throw new DbCslaException("Connection.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - ConnectionExtension _ConnectionExtension = new ConnectionExtension(); - [Serializable()] - partial class ConnectionExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultServerType - { - get { return 1; } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 ConnectionConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Connection) - { - // Return the ToString value - return ((Connection)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ConnectionExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Connection -// { -// partial class ConnectionExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultServerType -// { -// get { return 1; } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/ConnectionFolder.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ConnectionFolder.cs deleted file mode 100644 index 14a2e92b..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ConnectionFolder.cs +++ /dev/null @@ -1,614 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ConnectionFolder Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ConnectionFolderConverter))] - public partial class ConnectionFolder : 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 _FolderID; - [System.ComponentModel.DataObjectField(true, true)] - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder != null) _FolderID = _MyFolder.FolderID; - return _FolderID; - } - } - private Folder _MyFolder; - [System.ComponentModel.DataObjectField(true, true)] - public Folder MyFolder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder == null && _FolderID != 0) _MyFolder = Folder.Get(_FolderID); - return _MyFolder; - } - } - private int _ParentID; - public int ParentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent != null) _ParentID = _MyParent.FolderID; - return _ParentID; - } - } - private Folder _MyParent; - public Folder MyParent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent == null && _ParentID != _FolderID) _MyParent = Folder.Get(_ParentID); - return _MyParent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyParent != value) - { - _MyParent = value; - PropertyHasChanged(); - } - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Name != value) - { - _Name = value; - PropertyHasChanged(); - } - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Title != value) - { - _Title = value; - PropertyHasChanged(); - } - } - } - private string _ShortName = string.Empty; - public string ShortName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ShortName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_ShortName != value) - { - _ShortName = value; - PropertyHasChanged(); - } - } - } - private int? _FormatID; - public int? FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat != null) _FormatID = _MyFormat.FormatID; - return _FormatID; - } - } - private Format _MyFormat; - public Format MyFormat - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat == null && _FormatID != null) _MyFormat = Format.Get((int)_FormatID); - return _MyFormat; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if ((_MyFormat == null ? _FormatID : (int?)_MyFormat.FormatID) != (value == null ? null : (int?)value.FormatID)) - { - _MyFormat = value; - _FormatID = (value == null ? null : (int?)value.FormatID); - PropertyHasChanged(); - } - } - } - private double? _ManualOrder; - public double? ManualOrder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ManualOrder; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ManualOrder != value) - { - _ManualOrder = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - // TODO: Check ConnectionFolder.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 ConnectionFolder - protected override object GetIdValue() - { - return _FolderID; - } - // TODO: Replace base ConnectionFolder.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ConnectionFolder - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyFolder == null ? false : _MyFolder.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyFolder == null ? true : _MyFolder.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 (_MyFolder != null && (hasBrokenRules = _MyFolder.HasBrokenRules) != null) return hasBrokenRules; - if (_MyFormat != null && (hasBrokenRules = _MyFormat.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(MyFolderRequired, "MyFolder"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 510)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "ShortName"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("ShortName", 20)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - // TODO: Add other validation rules - } - private static bool MyFolderRequired(ConnectionFolder target, Csla.Validation.RuleArgs e) - { - if (target._ParentID == 0 && target._MyFolder == 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(FolderID, ""); - //AuthorizationRules.AllowRead(ParentID, ""); - //AuthorizationRules.AllowWrite(ParentID, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowRead(ShortName, ""); - //AuthorizationRules.AllowWrite(ShortName, ""); - //AuthorizationRules.AllowRead(FormatID, ""); - //AuthorizationRules.AllowWrite(FormatID, ""); - //AuthorizationRules.AllowRead(ManualOrder, ""); - //AuthorizationRules.AllowWrite(ManualOrder, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - } - 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 ConnectionFolder New(Folder myParent, string name, string shortName) - { - return new ConnectionFolder(myParent, name, shortName); - } - internal static ConnectionFolder Get(SafeDataReader dr) - { - return new ConnectionFolder(dr); - } - public ConnectionFolder() - { - MarkAsChild(); - _FolderID = Folder.NextFolderID; - _ParentID = _ConnectionFolderExtension.DefaultParentID; - _DTS = _ConnectionFolderExtension.DefaultDTS; - _UsrID = _ConnectionFolderExtension.DefaultUsrID; - ValidationRules.CheckRules(); - } - private ConnectionFolder(Folder myParent, string name, string shortName) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _ParentID = _ConnectionFolderExtension.DefaultParentID; - _DTS = _ConnectionFolderExtension.DefaultDTS; - _UsrID = _ConnectionFolderExtension.DefaultUsrID; - _MyParent = myParent; - _Name = name; - _ShortName = shortName; - ValidationRules.CheckRules(); - } - internal ConnectionFolder(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ConnectionFolder.FetchDR", GetHashCode()); - try - { - _FolderID = dr.GetInt32("FolderID"); - _ParentID = dr.GetInt32("ParentID"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _ShortName = dr.GetString("ShortName"); - _FormatID = (int?)dr.GetValue("FormatID"); - _ManualOrder = (double?)dr.GetValue("ManualOrder"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ConnectionFolder.FetchDR", ex); - throw new DbCslaException("ConnectionFolder.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Connection myConnection) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Folder.Add(cn, ref _FolderID, Folder.Get(_ParentID), myConnection, _Name, _Title, _ShortName, _MyFormat, _ManualOrder, _Config, _DTS, _UsrID); - MarkOld(); - } - internal void Update(Connection myConnection) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Folder.Update(cn, ref _FolderID, Folder.Get(_ParentID), myConnection, _Name, _Title, _ShortName, _MyFormat, _ManualOrder, _Config, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Connection myConnection) - { - // 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"]; - Folder.Remove(cn, _FolderID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ConnectionFolderExtension _ConnectionFolderExtension = new ConnectionFolderExtension(); - [Serializable()] - partial class ConnectionFolderExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultParentID - { - get { return 1; } - } - public virtual int DefaultDBID - { - get { return 1; } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 ConnectionFolderConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ConnectionFolder) - { - // Return the ToString value - return ((ConnectionFolder)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ConnectionFolderExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ConnectionFolder -// { -// partial class ConnectionFolderExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultParentID -// { -// get { return 1; } -// } -// public virtual int DefaultDBID -// { -// get { return 1; } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/ConnectionFolders.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ConnectionFolders.cs deleted file mode 100644 index 722fbc92..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ConnectionFolders.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ConnectionFolders Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ConnectionFoldersConverter))] - public partial class ConnectionFolders : 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 ConnectionFolder this[Folder myFolder] - { - get - { - foreach (ConnectionFolder folder in this) - if (folder.FolderID == myFolder.FolderID) - return folder; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ConnectionFolder GetItem(Folder myFolder) - { - foreach (ConnectionFolder folder in this) - if (folder.FolderID == myFolder.FolderID) - return folder; - return null; - } - public ConnectionFolder Add(Folder myParent, string name, string shortName) // One to Many - { - ConnectionFolder folder = ConnectionFolder.New(myParent, name, shortName); - this.Add(folder); - return folder; - } - public void Remove(Folder myFolder) - { - foreach (ConnectionFolder folder in this) - { - if (folder.FolderID == myFolder.FolderID) - { - Remove(folder); - break; - } - } - } - public bool Contains(Folder myFolder) - { - foreach (ConnectionFolder folder in this) - if (folder.FolderID == myFolder.FolderID) - return true; - return false; - } - public bool ContainsDeleted(Folder myFolder) - { - foreach (ConnectionFolder folder in DeletedList) - if (folder.FolderID == myFolder.FolderID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ConnectionFolder connectionFolder in this) - if ((hasBrokenRules = connectionFolder.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 ConnectionFolders New() - { - return new ConnectionFolders(); - } - internal static ConnectionFolders Get(SafeDataReader dr) - { - return new ConnectionFolders(dr); - } - public static ConnectionFolders GetByDBID(int dbid) - { - try - { - return DataPortal.Fetch(new DBIDCriteria(dbid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ConnectionFolders.GetByDBID", ex); - } - } - private ConnectionFolders() - { - MarkAsChild(); - } - internal ConnectionFolders(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(ConnectionFolder.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class DBIDCriteria - { - public DBIDCriteria(int dbid) - { - _DBID = dbid; - } - private int _DBID; - public int DBID - { - get { return _DBID; } - set { _DBID = value; } - } - } - private void DataPortal_Fetch(DBIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ConnectionFolders.DataPortal_FetchDBID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getFoldersByDBID"; - cm.Parameters.AddWithValue("@DBID", criteria.DBID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ConnectionFolder(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ConnectionFolders.DataPortal_FetchDBID", ex); - throw new DbCslaException("ConnectionFolders.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Connection connection) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ConnectionFolder obj in DeletedList) - obj.DeleteSelf(connection);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (ConnectionFolder obj in this) - { - if (obj.IsNew) - obj.Insert(connection); - else - obj.Update(connection); - } - } - 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 - ConnectionFoldersPropertyDescriptor pd = new ConnectionFoldersPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ConnectionFoldersPropertyDescriptor : vlnListPropertyDescriptor - { - private ConnectionFolder Item { get { return (ConnectionFolder)_Item; } } - public ConnectionFoldersPropertyDescriptor(ConnectionFolders collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ConnectionFoldersConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ConnectionFolders) - { - // Return department and department role separated by comma. - return ((ConnectionFolders)value).Items.Count.ToString() + " Folders"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ConnectionInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ConnectionInfo.cs deleted file mode 100644 index 74808061..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ConnectionInfo.cs +++ /dev/null @@ -1,400 +0,0 @@ -// ======================================================================== -// 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 ConnectionInfoEvent(object sender); - /// - /// ConnectionInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ConnectionInfoConverter))] - public partial class ConnectionInfo : ReadOnlyBase, IDisposable - { - public event ConnectionInfoEvent 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(ConnectionInfo connectionInfo) - { - if (!_CacheList.Contains(connectionInfo)) _CacheList.Add(connectionInfo); // In AddToCache - } - protected static void RemoveFromCache(ConnectionInfo connectionInfo) - { - while (_CacheList.Contains(connectionInfo)) _CacheList.Remove(connectionInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (ConnectionInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.DBID.ToString())) - { - _CacheByPrimaryKey[tmp.DBID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.DBID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (ConnectionInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(ConnectionInfoList lst) - { - foreach (ConnectionInfo item in lst) AddToCache(item); - } - protected static ConnectionInfo GetCachedByPrimaryKey(int dbid) - { - ConvertListToDictionary(); - string key = dbid.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 Connection _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _DBID; - [System.ComponentModel.DataObjectField(true, true)] - public int DBID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DBID; - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - } - private string _ConnectionString = string.Empty; - public string ConnectionString - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ConnectionString; - } - } - private int _ServerType; - /// - /// 0 SQL Server - /// - public int ServerType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ServerType; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - } - private int _ConnectionFolderCount = 0; - /// - /// Count of ConnectionFolders for this Connection - /// - public int ConnectionFolderCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ConnectionFolderCount; - } - } - private FolderInfoList _ConnectionFolders = null; - [TypeConverter(typeof(FolderInfoListConverter))] - public FolderInfoList ConnectionFolders - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ConnectionFolderCount < 0 || (_ConnectionFolderCount > 0 && _ConnectionFolders == null)) - _ConnectionFolders = FolderInfoList.GetByDBID(_DBID); - if (_ConnectionFolderCount < 0) - _ConnectionFolderCount = _ConnectionFolders.Count; - return _ConnectionFolders; - } - } - public void RefreshConnectionFolders() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_DBID.ToString())) - foreach (ConnectionInfo tmp in _CacheByPrimaryKey[_DBID.ToString()]) - tmp._ConnectionFolderCount = -1; // This will cause the data to be requeried - } - // TODO: Replace base ConnectionInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ConnectionInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check ConnectionInfo.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 ConnectionInfo - protected override object GetIdValue() - { - return _DBID; - } - #endregion - #region Factory Methods - private static int _ConnectionInfoUnique = 0; - private static int ConnectionInfoUnique - { get { return ++_ConnectionInfoUnique; } } - private int _MyConnectionInfoUnique = ConnectionInfoUnique; - public int MyConnectionInfoUnique - { get { return _MyConnectionInfoUnique; } } - protected ConnectionInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(DBID.ToString())) return; - List listConnectionInfo = _CacheByPrimaryKey[DBID.ToString()]; // Get the list of items - while (listConnectionInfo.Contains(this)) listConnectionInfo.Remove(this); // Remove the item from the list - if (listConnectionInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(DBID.ToString()); // remove the list - } - public virtual Connection Get() - { - return _Editable = Connection.Get(_DBID); - } - public static void Refresh(Connection tmp) - { - string key = tmp.DBID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ConnectionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Connection tmp) - { - _Name = tmp.Name; - _Title = tmp.Title; - _ConnectionString = tmp.ConnectionString; - _ServerType = tmp.ServerType; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _ConnectionInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static ConnectionInfo Get(int dbid) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Connection"); - try - { - ConnectionInfo tmp = GetCachedByPrimaryKey(dbid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(dbid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ConnectionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ConnectionInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal ConnectionInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ConnectionInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ConnectionInfo.Constructor", ex); - throw new DbCslaException("ConnectionInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _DBID; - public int DBID - { get { return _DBID; } } - public PKCriteria(int dbid) - { - _DBID = dbid; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ConnectionInfo.ReadData", GetHashCode()); - try - { - _DBID = dr.GetInt32("DBID"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _ConnectionString = dr.GetString("ConnectionString"); - _ServerType = dr.GetInt32("ServerType"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - _ConnectionFolderCount = dr.GetInt32("FolderCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ConnectionInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ConnectionInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ConnectionInfo.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 = "getConnection"; - cm.Parameters.AddWithValue("@DBID", criteria.DBID); - 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("ConnectionInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ConnectionInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - ConnectionInfoExtension _ConnectionInfoExtension = new ConnectionInfoExtension(); - [Serializable()] - partial class ConnectionInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(ConnectionInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class ConnectionInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ConnectionInfo) - { - // Return the ToString value - return ((ConnectionInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ConnectionInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ConnectionInfoList.cs deleted file mode 100644 index 31d27679..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ConnectionInfoList.cs +++ /dev/null @@ -1,198 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ConnectionInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ConnectionInfoListConverter))] - public partial class ConnectionInfoList : 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 (ConnectionInfo tmp in this) - { - tmp.Changed += new ConnectionInfoEvent(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 (ConnectionInfo tmp in this) - { - tmp.Changed -= new ConnectionInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static ConnectionInfoList _ConnectionInfoList = null; - /// - /// Return a list of all projects. - /// - public static ConnectionInfoList Get() - { - try - { - if (_ConnectionInfoList != null) - return _ConnectionInfoList; - ConnectionInfoList tmp = DataPortal.Fetch(); - ConnectionInfo.AddList(tmp); - tmp.AddEvents(); - _ConnectionInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ConnectionInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static ConnectionInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on ConnectionInfoList.Get", ex); - // } - //} - private ConnectionInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ConnectionInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getConnections"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ConnectionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ConnectionInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ConnectionInfoList.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 - ConnectionInfoListPropertyDescriptor pd = new ConnectionInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ConnectionInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private ConnectionInfo Item { get { return (ConnectionInfo)_Item; } } - public ConnectionInfoListPropertyDescriptor(ConnectionInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ConnectionInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ConnectionInfoList) - { - // Return department and department role separated by comma. - return ((ConnectionInfoList)value).Items.Count.ToString() + " Connections"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Content.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Content.cs deleted file mode 100644 index 2dc2d6f6..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Content.cs +++ /dev/null @@ -1,1422 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Content Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentConverter))] - public partial class Content : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshContents = new List(); - private List _RefreshContentDetails = new List(); - private List _RefreshContentItems = new List(); - private List _RefreshContentParts = new List(); - private List _RefreshContentRoUsages = new List(); - private List _RefreshContentTransitions = new List(); - private void AddToRefreshList(List refreshContents, List refreshContentDetails, List refreshContentItems, List refreshContentParts, List refreshContentRoUsages, List refreshContentTransitions) - { - if (IsDirty) - refreshContents.Add(this); - if (_ContentDetails != null && _ContentDetails.IsDirty) - { - foreach (ContentDetail tmp in _ContentDetails) - { - if (tmp.IsDirty) refreshContentDetails.Add(tmp); - } - } - if (_ContentItems != null && _ContentItems.IsDirty) - { - foreach (ContentItem tmp in _ContentItems) - { - if (tmp.IsDirty) refreshContentItems.Add(tmp); - } - } - if (_ContentParts != null && _ContentParts.IsDirty) - { - foreach (ContentPart tmp in _ContentParts) - { - if (tmp.IsDirty) refreshContentParts.Add(tmp); - } - } - if (_ContentRoUsages != null && _ContentRoUsages.IsDirty) - { - foreach (ContentRoUsage tmp in _ContentRoUsages) - { - if (tmp.IsDirty) refreshContentRoUsages.Add(tmp); - } - } - if (_ContentTransitions != null && _ContentTransitions.IsDirty) - { - foreach (ContentTransition tmp in _ContentTransitions) - { - if (tmp.IsDirty) refreshContentTransitions.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshContents = new List(); - _RefreshContentDetails = new List(); - _RefreshContentItems = new List(); - _RefreshContentParts = new List(); - _RefreshContentRoUsages = new List(); - _RefreshContentTransitions = new List(); - AddToRefreshList(_RefreshContents, _RefreshContentDetails, _RefreshContentItems, _RefreshContentParts, _RefreshContentRoUsages, _RefreshContentTransitions); - } - private void ProcessRefreshList() - { - foreach (Content tmp in _RefreshContents) - { - ContentInfo.Refresh(tmp); - if (tmp._MyFormat != null) FormatInfo.Refresh(tmp._MyFormat); - } - foreach (ContentDetail tmp in _RefreshContentDetails) - { - DetailInfo.Refresh(tmp); - } - foreach (ContentItem tmp in _RefreshContentItems) - { - ItemInfo.Refresh(tmp); - } - foreach (ContentPart tmp in _RefreshContentParts) - { - PartInfo.Refresh(this, tmp); - } - foreach (ContentRoUsage tmp in _RefreshContentRoUsages) - { - RoUsageInfo.Refresh(tmp); - } - foreach (ContentTransition tmp in _RefreshContentTransitions) - { - TransitionInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Content content) - { - if (!_CacheList.Contains(content)) _CacheList.Add(content); // In AddToCache - } - protected static void RemoveFromCache(Content content) - { - while (_CacheList.Contains(content)) _CacheList.Remove(content); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Content tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ContentID.ToString())) - { - _CacheByPrimaryKey[tmp.ContentID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ContentID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (Content tmp in remove) - RemoveFromCache(tmp); - } - protected static Content GetCachedByPrimaryKey(int contentID) - { - ConvertListToDictionary(); - string key = contentID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextContentID = -1; - public static int NextContentID - { - get { return _nextContentID--; } - } - private int _ContentID; - [System.ComponentModel.DataObjectField(true, true)] - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentID; - } - } - private string _Number = string.Empty; - public string Number - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Number; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Number != value) - { - _Number = value; - PropertyHasChanged(); - } - } - } - private string _Text = string.Empty; - public string Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Text; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Text != value) - { - _Text = value; - PropertyHasChanged(); - } - } - } - private int? _Type; - /// - /// 0 - Procedure, 10000 - Section, 20000 Step - /// - public int? Type - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Type; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_Type != value) - { - _Type = value; - PropertyHasChanged(); - } - } - } - private int? _FormatID; - public int? FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat != null) _FormatID = _MyFormat.FormatID; - return _FormatID; - } - } - private Format _MyFormat; - public Format MyFormat - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat == null && _FormatID != null) _MyFormat = Format.Get((int)_FormatID); - return _MyFormat; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if ((_MyFormat == null ? _FormatID : (int?)_MyFormat.FormatID) != (value == null ? null : (int?)value.FormatID)) - { - _MyFormat = value; - _FormatID = (value == null ? null : (int?)value.FormatID); - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _ContentDetailCount = 0; - /// - /// Count of ContentDetails for this Content - /// - public int ContentDetailCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentDetailCount; - } - } - private ContentDetails _ContentDetails = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ContentDetailsConverter))] - public ContentDetails ContentDetails - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentDetailCount > 0 && _ContentDetails == null) - _ContentDetails = ContentDetails.GetByContentID(ContentID); - else if (_ContentDetails == null) - _ContentDetails = ContentDetails.New(); - return _ContentDetails; - } - } - private int _ContentEntryCount = 0; - /// - /// Count of ContentEntries for this Content - /// - public int ContentEntryCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentEntryCount; - } - } - private Entry _MyEntry = null; - /// - /// Related Field - /// - [TypeConverter(typeof(EntryConverter))] - public Entry MyEntry - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyEntry == null) _MyEntry = Entry.New(this); - return _MyEntry; - } - } - private int _ContentItemCount = 0; - /// - /// Count of ContentItems for this Content - /// - public int ContentItemCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentItemCount; - } - } - private ContentItems _ContentItems = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ContentItemsConverter))] - public ContentItems ContentItems - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentItemCount > 0 && _ContentItems == null) - _ContentItems = ContentItems.GetByContentID(ContentID); - else if (_ContentItems == null) - _ContentItems = ContentItems.New(); - return _ContentItems; - } - } - private int _ContentPartCount = 0; - /// - /// Count of ContentParts for this Content - /// - public int ContentPartCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentPartCount; - } - } - private ContentParts _ContentParts = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ContentPartsConverter))] - public ContentParts ContentParts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentPartCount > 0 && _ContentParts == null) - _ContentParts = ContentParts.GetByContentID(ContentID); - else if (_ContentParts == null) - _ContentParts = ContentParts.New(); - return _ContentParts; - } - } - private int _ContentRoUsageCount = 0; - /// - /// Count of ContentRoUsages for this Content - /// - public int ContentRoUsageCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentRoUsageCount; - } - } - private ContentRoUsages _ContentRoUsages = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ContentRoUsagesConverter))] - public ContentRoUsages ContentRoUsages - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentRoUsageCount > 0 && _ContentRoUsages == null) - _ContentRoUsages = ContentRoUsages.GetByContentID(ContentID); - else if (_ContentRoUsages == null) - _ContentRoUsages = ContentRoUsages.New(); - return _ContentRoUsages; - } - } - private int _ContentTransitionCount = 0; - /// - /// Count of ContentTransitions for this Content - /// - public int ContentTransitionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentTransitionCount; - } - } - private ContentTransitions _ContentTransitions = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ContentTransitionsConverter))] - public ContentTransitions ContentTransitions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentTransitionCount > 0 && _ContentTransitions == null) - _ContentTransitions = ContentTransitions.GetByFromID(ContentID); - else if (_ContentTransitions == null) - _ContentTransitions = ContentTransitions.New(); - return _ContentTransitions; - } - } - private int _ContentZContentCount = 0; - /// - /// Count of ContentZContents for this Content - /// - public int ContentZContentCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentZContentCount; - } - } - private ZContent _MyZContent = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ZContentConverter))] - public ZContent MyZContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyZContent == null) _MyZContent = ZContent.New(this); - return _MyZContent; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_ContentDetails == null ? false : _ContentDetails.IsDirty) || (_MyEntry == null ? false : _MyEntry.IsDirty) || (_ContentItems == null ? false : _ContentItems.IsDirty) || (_ContentParts == null ? false : _ContentParts.IsDirty) || (_ContentRoUsages == null ? false : _ContentRoUsages.IsDirty) || (_ContentTransitions == null ? false : _ContentTransitions.IsDirty) || (_MyZContent == null ? false : _MyZContent.IsDirty) || (_MyFormat == null ? false : _MyFormat.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_ContentDetails == null ? true : _ContentDetails.IsValid) && (_MyEntry == null ? true : _MyEntry.IsValid) && (_ContentItems == null ? true : _ContentItems.IsValid) && (_ContentParts == null ? true : _ContentParts.IsValid) && (_ContentRoUsages == null ? true : _ContentRoUsages.IsValid) && (_ContentTransitions == null ? true : _ContentTransitions.IsValid) && (_MyZContent == null ? true : _MyZContent.IsValid) && (_MyFormat == null ? true : _MyFormat.IsValid); } - } - // TODO: Replace base Content.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Content - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Content.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 Content - protected override object GetIdValue() - { - return _ContentID; - } - #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 (_ContentItems != null && (hasBrokenRules = _ContentItems.HasBrokenRules) != null) return hasBrokenRules; - if (_ContentDetails != null && (hasBrokenRules = _ContentDetails.HasBrokenRules) != null) return hasBrokenRules; - if (_MyEntry != null && (hasBrokenRules = _MyEntry.HasBrokenRules) != null) return hasBrokenRules; - if (_ContentParts != null && (hasBrokenRules = _ContentParts.HasBrokenRules) != null) return hasBrokenRules; - if (_ContentRoUsages != null && (hasBrokenRules = _ContentRoUsages.HasBrokenRules) != null) return hasBrokenRules; - if (_ContentTransitions != null && (hasBrokenRules = _ContentTransitions.HasBrokenRules) != null) return hasBrokenRules; - if (_MyZContent != null && (hasBrokenRules = _MyZContent.HasBrokenRules) != null) return hasBrokenRules; - if (_MyFormat != null && (hasBrokenRules = _MyFormat.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Number", 30)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Text", 1073741823)); - 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"); - _ContentExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _ContentExtension.AddInstanceValidationRules(ValidationRules); - // 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(ContentID, ""); - //AuthorizationRules.AllowRead(Number, ""); - //AuthorizationRules.AllowRead(Text, ""); - //AuthorizationRules.AllowRead(Type, ""); - //AuthorizationRules.AllowRead(FormatID, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(Number, ""); - //AuthorizationRules.AllowWrite(Text, ""); - //AuthorizationRules.AllowWrite(Type, ""); - //AuthorizationRules.AllowWrite(FormatID, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _ContentExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _ContentExtension.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 += _ContentDetailCount; - usedByCount += _ContentEntryCount; - usedByCount += _ContentItemCount; - usedByCount += _ContentPartCount; - usedByCount += _ContentRoUsageCount; - usedByCount += _ContentTransitionCount; - usedByCount += _ContentZContentCount; - 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 _ContentUnique = 0; - protected static int ContentUnique - { get { return ++_ContentUnique; } } - private int _MyContentUnique = ContentUnique; - public int MyContentUnique - { get { return _MyContentUnique; } } - protected Content() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(ContentID.ToString())) - { - List listContent = _CacheByPrimaryKey[ContentID.ToString()]; // Get the list of items - while (listContent.Contains(this)) listContent.Remove(this); // Remove the item from the list - if (listContent.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(ContentID.ToString()); // remove the list - } - } - public static Content New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Content"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Content.New", ex); - } - } - public static Content New(string number, string text, int? type, Format myFormat, string config, DateTime dts, string userID) - { - Content tmp = Content.New(); - tmp.Number = number; - tmp.Text = text; - tmp.Type = type; - tmp.MyFormat = myFormat; - tmp.Config = config; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static Content MakeContent(string number, string text, int? type, Format myFormat, string config, DateTime dts, string userID) - { - Content tmp = Content.New(number, text, type, myFormat, config, dts, userID); - if (tmp.IsSavable) - { - Content 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 Content New(string number, string text, int? type, Format myFormat, string config) - { - Content tmp = Content.New(); - tmp.Number = number; - tmp.Text = text; - tmp.Type = type; - tmp.MyFormat = myFormat; - tmp.Config = config; - return tmp; - } - public static Content MakeContent(string number, string text, int? type, Format myFormat, string config) - { - Content tmp = Content.New(number, text, type, myFormat, config); - if (tmp.IsSavable) - { - Content 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 Content Get(int contentID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Content"); - try - { - Content tmp = GetCachedByPrimaryKey(contentID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(contentID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Content - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Content.Get", ex); - } - } - public static Content Get(SafeDataReader dr) - { - if (dr.Read()) return new Content(dr); - return null; - } - internal Content(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int contentID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Content"); - try - { - DataPortal.Delete(new PKCriteria(contentID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Content.Delete", ex); - } - } - public override Content Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Content"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Content"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Content"); - try - { - BuildRefreshList(); - Content content = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(content);//Refresh the item in AllList - ProcessRefreshList(); - return content; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - public PKCriteria(int contentID) - { - _ContentID = contentID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _ContentID = NextContentID; - // Database Defaults - _DTS = _ContentExtension.DefaultDTS; - _UserID = _ContentExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Content.ReadData", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _Number = dr.GetString("Number"); - _Text = dr.GetString("Text"); - _Type = (int?)dr.GetValue("Type"); - _FormatID = (int?)dr.GetValue("FormatID"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _ContentDetailCount = dr.GetInt32("DetailCount"); - _ContentEntryCount = dr.GetInt32("EntryCount"); - _ContentItemCount = dr.GetInt32("ItemCount"); - _ContentPartCount = dr.GetInt32("PartCount"); - _ContentRoUsageCount = dr.GetInt32("RoUsageCount"); - _ContentTransitionCount = dr.GetInt32("TransitionCount"); - _ContentZContentCount = dr.GetInt32("ZContentCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Content.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Content.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Content.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 = "getContent"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _ContentDetails = ContentDetails.Get(dr); - // load child objects - dr.NextResult(); - _MyEntry = Entry.Get(dr); - // load child objects - dr.NextResult(); - _ContentItems = ContentItems.Get(dr); - // load child objects - dr.NextResult(); - _ContentParts = ContentParts.Get(dr); - // load child objects - dr.NextResult(); - _ContentRoUsages = ContentRoUsages.Get(dr); - // load child objects - dr.NextResult(); - _ContentTransitions = ContentTransitions.Get(dr); - // load child objects - dr.NextResult(); - _MyZContent = ZContent.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("Content.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Content.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("Content.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Content.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Content.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyFormat != null) _MyFormat.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addContent"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@Number", _Number); - cm.Parameters.AddWithValue("@Text", _Text); - cm.Parameters.AddWithValue("@Type", _Type); - cm.Parameters.AddWithValue("@FormatID", FormatID); - 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_ContentID = new SqlParameter("@newContentID", SqlDbType.Int); - param_ContentID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_ContentID); - 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 - _ContentID = (int)cm.Parameters["@newContentID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_ContentItems != null) _ContentItems.Update(this); - if (_ContentDetails != null) _ContentDetails.Update(this); - if (_MyEntry != null) _MyEntry.Update(this); - if (_ContentParts != null) _ContentParts.Update(this); - if (_ContentRoUsages != null) _ContentRoUsages.Update(this); - if (_ContentTransitions != null) _ContentTransitions.Update(this); - if (_MyZContent != null) _MyZContent.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Content.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Content.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Content.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int contentID, string number, string text, int? type, Format myFormat, string config, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Content.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addContent"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@Number", number); - cm.Parameters.AddWithValue("@Text", text); - cm.Parameters.AddWithValue("@Type", type); - if (myFormat != null) cm.Parameters.AddWithValue("@FormatID", myFormat.FormatID); - 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_ContentID = new SqlParameter("@newContentID", SqlDbType.Int); - param_ContentID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_ContentID); - 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 - contentID = (int)cm.Parameters["@newContentID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Content.Add", ex); - throw new DbCslaException("Content.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}] Content.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("Content.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}] Content.SQLUpdate", GetHashCode()); - try - { - if (_MyFormat != null) _MyFormat.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateContent"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@ContentID", _ContentID); - cm.Parameters.AddWithValue("@Number", _Number); - cm.Parameters.AddWithValue("@Text", _Text); - cm.Parameters.AddWithValue("@Type", _Type); - cm.Parameters.AddWithValue("@FormatID", FormatID); - 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 (_ContentItems != null) _ContentItems.Update(this); - if (_ContentDetails != null) _ContentDetails.Update(this); - if (_MyEntry != null) _MyEntry.Update(this); - if (_ContentParts != null) _ContentParts.Update(this); - if (_ContentRoUsages != null) _ContentRoUsages.Update(this); - if (_ContentTransitions != null) _ContentTransitions.Update(this); - if (_MyZContent != null) _MyZContent.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Content.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 = Content.Add(cn, ref _ContentID, _Number, _Text, _Type, _MyFormat, _Config, _DTS, _UserID); - else - _LastChanged = Content.Update(cn, ref _ContentID, _Number, _Text, _Type, _MyFormat, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - if (_ContentItems != null) _ContentItems.Update(this); - if (_ContentDetails != null) _ContentDetails.Update(this); - if (_MyEntry != null) _MyEntry.Update(this); - if (_ContentParts != null) _ContentParts.Update(this); - if (_ContentRoUsages != null) _ContentRoUsages.Update(this); - if (_ContentTransitions != null) _ContentTransitions.Update(this); - if (_MyZContent != null) _MyZContent.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int contentID, string number, string text, int? type, Format myFormat, string config, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Content.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateContent"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", contentID); - cm.Parameters.AddWithValue("@Number", number); - cm.Parameters.AddWithValue("@Text", text); - cm.Parameters.AddWithValue("@Type", type); - if (myFormat != null) cm.Parameters.AddWithValue("@FormatID", myFormat.FormatID); - 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("Content.Update", ex); - throw new DbCslaException("Content.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_ContentID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Content.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteContent"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Content.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Content.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int contentID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Content.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteContent"; - // Input PK Fields - cm.Parameters.AddWithValue("@ContentID", contentID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Content.Remove", ex); - throw new DbCslaException("Content.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int contentID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(contentID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Content.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _ContentID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int contentID) - { - _ContentID = contentID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Content.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsContent"; - cm.Parameters.AddWithValue("@ContentID", _ContentID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Content.DataPortal_Execute", ex); - throw new DbCslaException("Content.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - ContentExtension _ContentExtension = new ContentExtension(); - [Serializable()] - partial class ContentExtension : 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 ContentConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Content) - { - // Return the ToString value - return ((Content)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ContentExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Content -// { -// partial class ContentExtension : 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/OldGenerated/ContentDetail.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentDetail.cs deleted file mode 100644 index fd8a3418..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentDetail.cs +++ /dev/null @@ -1,458 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentDetail Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentDetailConverter))] - public partial class ContentDetail : 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 _DetailID; - [System.ComponentModel.DataObjectField(true, true)] - public int DetailID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDetail != null) _DetailID = _MyDetail.DetailID; - return _DetailID; - } - } - private Detail _MyDetail; - [System.ComponentModel.DataObjectField(true, true)] - public Detail MyDetail - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDetail == null && _DetailID != 0) _MyDetail = Detail.Get(_DetailID); - return _MyDetail; - } - } - private int _ItemType; - public int ItemType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ItemType != value) - { - _ItemType = value; - PropertyHasChanged(); - } - } - } - private string _Text = string.Empty; - public string Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Text; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Text != value) - { - _Text = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - // TODO: Check ContentDetail.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 ContentDetail - protected override object GetIdValue() - { - return _DetailID; - } - // TODO: Replace base ContentDetail.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ContentDetail - //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, "Text"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Text", 1073741823)); - 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(DetailID, ""); - //AuthorizationRules.AllowRead(ItemType, ""); - //AuthorizationRules.AllowWrite(ItemType, ""); - //AuthorizationRules.AllowRead(Text, ""); - //AuthorizationRules.AllowWrite(Text, ""); - //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 ContentDetail New(int itemType, string text) - { - return new ContentDetail(itemType, text); - } - internal static ContentDetail Get(SafeDataReader dr) - { - return new ContentDetail(dr); - } - public ContentDetail() - { - MarkAsChild(); - _DetailID = Detail.NextDetailID; - _DTS = _ContentDetailExtension.DefaultDTS; - _UserID = _ContentDetailExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ContentDetail(int itemType, string text) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _ContentDetailExtension.DefaultDTS; - _UserID = _ContentDetailExtension.DefaultUserID; - _ItemType = itemType; - _Text = text; - ValidationRules.CheckRules(); - } - internal ContentDetail(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentDetail.FetchDR", GetHashCode()); - try - { - _DetailID = dr.GetInt32("DetailID"); - _ItemType = dr.GetInt32("ItemType"); - _Text = dr.GetString("Text"); - _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("ContentDetail.FetchDR", ex); - throw new DbCslaException("ContentDetail.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Content myContent) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Detail.Add(cn, ref _DetailID, myContent, _ItemType, _Text, _Config, _DTS, _UserID); - MarkOld(); - } - internal void Update(Content myContent) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Detail.Update(cn, ref _DetailID, myContent, _ItemType, _Text, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Content myContent) - { - // 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"]; - Detail.Remove(cn, _DetailID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ContentDetailExtension _ContentDetailExtension = new ContentDetailExtension(); - [Serializable()] - partial class ContentDetailExtension : 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 ContentDetailConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentDetail) - { - // Return the ToString value - return ((ContentDetail)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ContentDetailExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ContentDetail -// { -// partial class ContentDetailExtension : 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/OldGenerated/ContentDetails.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentDetails.cs deleted file mode 100644 index 071c3bac..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentDetails.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentDetails Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentDetailsConverter))] - public partial class ContentDetails : 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 ContentDetail this[Detail myDetail] - { - get - { - foreach (ContentDetail detail in this) - if (detail.DetailID == myDetail.DetailID) - return detail; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ContentDetail GetItem(Detail myDetail) - { - foreach (ContentDetail detail in this) - if (detail.DetailID == myDetail.DetailID) - return detail; - return null; - } - public ContentDetail Add(int itemType, string text) // One to Many - { - ContentDetail detail = ContentDetail.New(itemType, text); - this.Add(detail); - return detail; - } - public void Remove(Detail myDetail) - { - foreach (ContentDetail detail in this) - { - if (detail.DetailID == myDetail.DetailID) - { - Remove(detail); - break; - } - } - } - public bool Contains(Detail myDetail) - { - foreach (ContentDetail detail in this) - if (detail.DetailID == myDetail.DetailID) - return true; - return false; - } - public bool ContainsDeleted(Detail myDetail) - { - foreach (ContentDetail detail in DeletedList) - if (detail.DetailID == myDetail.DetailID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ContentDetail contentDetail in this) - if ((hasBrokenRules = contentDetail.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 ContentDetails New() - { - return new ContentDetails(); - } - internal static ContentDetails Get(SafeDataReader dr) - { - return new ContentDetails(dr); - } - public static ContentDetails GetByContentID(int contentID) - { - try - { - return DataPortal.Fetch(new ContentIDCriteria(contentID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentDetails.GetByContentID", ex); - } - } - private ContentDetails() - { - MarkAsChild(); - } - internal ContentDetails(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(ContentDetail.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ContentIDCriteria - { - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - private int _ContentID; - public int ContentID - { - get { return _ContentID; } - set { _ContentID = value; } - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentDetails.DataPortal_FetchContentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDetailsByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ContentDetail(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentDetails.DataPortal_FetchContentID", ex); - throw new DbCslaException("ContentDetails.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Content content) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ContentDetail obj in DeletedList) - obj.DeleteSelf(content);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (ContentDetail obj in this) - { - if (obj.IsNew) - obj.Insert(content); - else - obj.Update(content); - } - } - 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 - ContentDetailsPropertyDescriptor pd = new ContentDetailsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ContentDetailsPropertyDescriptor : vlnListPropertyDescriptor - { - private ContentDetail Item { get { return (ContentDetail)_Item; } } - public ContentDetailsPropertyDescriptor(ContentDetails collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ContentDetailsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentDetails) - { - // Return department and department role separated by comma. - return ((ContentDetails)value).Items.Count.ToString() + " Details"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentInfo.cs deleted file mode 100644 index 13462b31..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentInfo.cs +++ /dev/null @@ -1,662 +0,0 @@ -// ======================================================================== -// 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 ContentInfoEvent(object sender); - /// - /// ContentInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentInfoConverter))] - public partial class ContentInfo : ReadOnlyBase, IDisposable - { - public event ContentInfoEvent 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(ContentInfo contentInfo) - { - if (!_CacheList.Contains(contentInfo)) _CacheList.Add(contentInfo); // In AddToCache - } - protected static void RemoveFromCache(ContentInfo contentInfo) - { - while (_CacheList.Contains(contentInfo)) _CacheList.Remove(contentInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (ContentInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ContentID.ToString())) - { - _CacheByPrimaryKey[tmp.ContentID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ContentID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (ContentInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(ContentInfoList lst) - { - foreach (ContentInfo item in lst) AddToCache(item); - } - protected static ContentInfo GetCachedByPrimaryKey(int contentID) - { - ConvertListToDictionary(); - string key = contentID.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 Content _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _ContentID; - [System.ComponentModel.DataObjectField(true, true)] - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentID; - } - } - private string _Number = string.Empty; - public string Number - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Number; - } - } - private string _Text = string.Empty; - public string Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Text; - } - } - private int? _Type; - /// - /// 0 - Procedure, 10000 - Section, 20000 Step - /// - public int? Type - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Type; - } - } - private int? _FormatID; - public int? FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat != null) _FormatID = _MyFormat.FormatID; - return _FormatID; - } - } - private FormatInfo _MyFormat; - public FormatInfo MyFormat - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat == null && _FormatID != null) _MyFormat = FormatInfo.Get((int)_FormatID); - return _MyFormat; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _ContentDetailCount = 0; - /// - /// Count of ContentDetails for this Content - /// - public int ContentDetailCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentDetailCount; - } - } - private DetailInfoList _ContentDetails = null; - [TypeConverter(typeof(DetailInfoListConverter))] - public DetailInfoList ContentDetails - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentDetailCount < 0 || (_ContentDetailCount > 0 && _ContentDetails == null)) - _ContentDetails = DetailInfoList.GetByContentID(_ContentID); - if (_ContentDetailCount < 0) - _ContentDetailCount = _ContentDetails.Count; - return _ContentDetails; - } - } - public void RefreshContentDetails() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ContentID.ToString())) - foreach (ContentInfo tmp in _CacheByPrimaryKey[_ContentID.ToString()]) - tmp._ContentDetailCount = -1; // This will cause the data to be requeried - } - private int _ContentEntryCount = 0; - /// - /// Count of ContentEntries for this Content - /// - public int ContentEntryCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentEntryCount; - } - } - private EntryInfo _MyEntry = null; - [TypeConverter(typeof(EntryInfoConverter))] - public EntryInfo MyEntry - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentEntryCount != 0 && _MyEntry == null) - { - _MyEntry = EntryInfo.Get(_ContentID); - _ContentEntryCount = _MyEntry == null ? 0 : 1; - } - return _MyEntry; - } - } - private int _ContentItemCount = 0; - /// - /// Count of ContentItems for this Content - /// - public int ContentItemCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentItemCount; - } - } - private ItemInfoList _ContentItems = null; - [TypeConverter(typeof(ItemInfoListConverter))] - public ItemInfoList ContentItems - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentItemCount < 0 || (_ContentItemCount > 0 && _ContentItems == null)) - _ContentItems = ItemInfoList.GetByContentID(_ContentID); - if (_ContentItemCount < 0) - _ContentItemCount = _ContentItems.Count; - return _ContentItems; - } - } - public void RefreshContentItems() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ContentID.ToString())) - foreach (ContentInfo tmp in _CacheByPrimaryKey[_ContentID.ToString()]) - tmp._ContentItemCount = -1; // This will cause the data to be requeried - } - private int _ContentPartCount = 0; - /// - /// Count of ContentParts for this Content - /// - public int ContentPartCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentPartCount; - } - } - private PartInfoList _ContentParts = null; - [TypeConverter(typeof(PartInfoListConverter))] - public PartInfoList ContentParts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentPartCount < 0 || (_ContentPartCount > 0 && _ContentParts == null)) - _ContentParts = PartInfoList.GetByContentID(_ContentID); - if (_ContentPartCount < 0) - _ContentPartCount = _ContentParts.Count; - return _ContentParts; - } - } - public void RefreshContentParts() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ContentID.ToString())) - foreach (ContentInfo tmp in _CacheByPrimaryKey[_ContentID.ToString()]) - tmp._ContentPartCount = -1; // This will cause the data to be requeried - } - private int _ContentRoUsageCount = 0; - /// - /// Count of ContentRoUsages for this Content - /// - public int ContentRoUsageCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentRoUsageCount; - } - } - private RoUsageInfoList _ContentRoUsages = null; - [TypeConverter(typeof(RoUsageInfoListConverter))] - public RoUsageInfoList ContentRoUsages - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentRoUsageCount < 0 || (_ContentRoUsageCount > 0 && _ContentRoUsages == null)) - _ContentRoUsages = RoUsageInfoList.GetByContentID(_ContentID); - if (_ContentRoUsageCount < 0) - _ContentRoUsageCount = _ContentRoUsages.Count; - return _ContentRoUsages; - } - } - public void RefreshContentRoUsages() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ContentID.ToString())) - foreach (ContentInfo tmp in _CacheByPrimaryKey[_ContentID.ToString()]) - tmp._ContentRoUsageCount = -1; // This will cause the data to be requeried - } - private int _ContentTransitionCount = 0; - /// - /// Count of ContentTransitions for this Content - /// - public int ContentTransitionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentTransitionCount; - } - } - private TransitionInfoList _ContentTransitions = null; - [TypeConverter(typeof(TransitionInfoListConverter))] - public TransitionInfoList ContentTransitions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentTransitionCount < 0 || (_ContentTransitionCount > 0 && _ContentTransitions == null)) - _ContentTransitions = TransitionInfoList.GetByFromID(_ContentID); - if (_ContentTransitionCount < 0) - _ContentTransitionCount = _ContentTransitions.Count; - return _ContentTransitions; - } - } - public void RefreshContentTransitions() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ContentID.ToString())) - foreach (ContentInfo tmp in _CacheByPrimaryKey[_ContentID.ToString()]) - tmp._ContentTransitionCount = -1; // This will cause the data to be requeried - } - private int _ContentZContentCount = 0; - /// - /// Count of ContentZContents for this Content - /// - public int ContentZContentCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ContentZContentCount; - } - } - private ZContentInfo _MyZContent = null; - [TypeConverter(typeof(ZContentInfoConverter))] - public ZContentInfo MyZContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ContentZContentCount != 0 && _MyZContent == null) - { - _MyZContent = ZContentInfo.Get(_ContentID); - _ContentZContentCount = _MyZContent == null ? 0 : 1; - } - return _MyZContent; - } - } - // TODO: Replace base ContentInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ContentInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check ContentInfo.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 ContentInfo - protected override object GetIdValue() - { - return _ContentID; - } - #endregion - #region Factory Methods - private static int _ContentInfoUnique = 0; - private static int ContentInfoUnique - { get { return ++_ContentInfoUnique; } } - private int _MyContentInfoUnique = ContentInfoUnique; - public int MyContentInfoUnique - { get { return _MyContentInfoUnique; } } - protected ContentInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(ContentID.ToString())) return; - List listContentInfo = _CacheByPrimaryKey[ContentID.ToString()]; // Get the list of items - while (listContentInfo.Contains(this)) listContentInfo.Remove(this); // Remove the item from the list - if (listContentInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(ContentID.ToString()); // remove the list - } - public virtual Content Get() - { - return _Editable = Content.Get(_ContentID); - } - public static void Refresh(Content tmp) - { - string key = tmp.ContentID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ContentInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Content tmp) - { - _Number = tmp.Number; - _Text = tmp.Text; - _Type = tmp.Type; - if (_FormatID != tmp.FormatID) - { - if (MyFormat != null) MyFormat.RefreshFormatContents(); // Update List for old value - _FormatID = tmp.FormatID; // Update the value - } - _MyFormat = null; // Reset list so that the next line gets a new list - if (MyFormat != null) MyFormat.RefreshFormatContents(); // Update List for new value - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _ContentInfoExtension.Refresh(this); - if (_MyFormat != null) - { - _MyFormat.Dispose();// Dispose related value - _MyFormat = null;// Reset related value - } - if (_MyEntry != null) - { - _MyEntry.Dispose();// Dispose related value - _MyEntry = null;// Reset related value - } - _ContentEntryCount = -1;// Reset Count - if (_MyZContent != null) - { - _MyZContent.Dispose();// Dispose related value - _MyZContent = null;// Reset related value - } - _ContentZContentCount = -1;// Reset Count - OnChange();// raise an event - } - public static void Refresh(FormatContent tmp) - { - string key = tmp.ContentID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ContentInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(FormatContent tmp) - { - _Number = tmp.Number; - _Text = tmp.Text; - _Type = tmp.Type; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _ContentInfoExtension.Refresh(this); - if (_MyFormat != null) - { - _MyFormat.Dispose();// Dispose related value - _MyFormat = null;// Reset related value - } - if (_MyEntry != null) - { - _MyEntry.Dispose();// Dispose related value - _MyEntry = null;// Reset related value - } - _ContentEntryCount = -1;// Reset Count - if (_MyZContent != null) - { - _MyZContent.Dispose();// Dispose related value - _MyZContent = null;// Reset related value - } - _ContentZContentCount = -1;// Reset Count - OnChange();// raise an event - } - public static ContentInfo Get(int contentID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Content"); - try - { - ContentInfo tmp = GetCachedByPrimaryKey(contentID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(contentID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ContentInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal ContentInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentInfo.Constructor", ex); - throw new DbCslaException("ContentInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - public PKCriteria(int contentID) - { - _ContentID = contentID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentInfo.ReadData", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _Number = dr.GetString("Number"); - _Text = dr.GetString("Text"); - _Type = (int?)dr.GetValue("Type"); - _FormatID = (int?)dr.GetValue("FormatID"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _ContentDetailCount = dr.GetInt32("DetailCount"); - _ContentEntryCount = dr.GetInt32("EntryCount"); - _ContentItemCount = dr.GetInt32("ItemCount"); - _ContentPartCount = dr.GetInt32("PartCount"); - _ContentRoUsageCount = dr.GetInt32("RoUsageCount"); - _ContentTransitionCount = dr.GetInt32("TransitionCount"); - _ContentZContentCount = dr.GetInt32("ZContentCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ContentInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentInfo.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 = "getContent"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - 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("ContentInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ContentInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - ContentInfoExtension _ContentInfoExtension = new ContentInfoExtension(); - [Serializable()] - partial class ContentInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(ContentInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class ContentInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentInfo) - { - // Return the ToString value - return ((ContentInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentInfoList.cs deleted file mode 100644 index d4dc4da8..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentInfoList.cs +++ /dev/null @@ -1,255 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentInfoListConverter))] - public partial class ContentInfoList : 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 (ContentInfo tmp in this) - { - tmp.Changed += new ContentInfoEvent(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 (ContentInfo tmp in this) - { - tmp.Changed -= new ContentInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static ContentInfoList _ContentInfoList = null; - /// - /// Return a list of all projects. - /// - public static ContentInfoList Get() - { - try - { - if (_ContentInfoList != null) - return _ContentInfoList; - ContentInfoList tmp = DataPortal.Fetch(); - ContentInfo.AddList(tmp); - tmp.AddEvents(); - _ContentInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static ContentInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on ContentInfoList.Get", ex); - // } - //} - public static ContentInfoList GetByFormatID(int? formatID) - { - try - { - ContentInfoList tmp = DataPortal.Fetch(new FormatIDCriteria(formatID)); - ContentInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentInfoList.GetByFormatID", ex); - } - } - private ContentInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getContents"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ContentInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ContentInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FormatIDCriteria - { - public FormatIDCriteria(int? formatID) - { - _FormatID = formatID; - } - private int? _FormatID; - public int? FormatID - { - get { return _FormatID; } - set { _FormatID = value; } - } - } - private void DataPortal_Fetch(FormatIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentInfoList.DataPortal_FetchFormatID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getContentsByFormatID"; - cm.Parameters.AddWithValue("@FormatID", criteria.FormatID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ContentInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentInfoList.DataPortal_FetchFormatID", ex); - throw new DbCslaException("ContentInfoList.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 - ContentInfoListPropertyDescriptor pd = new ContentInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ContentInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private ContentInfo Item { get { return (ContentInfo)_Item; } } - public ContentInfoListPropertyDescriptor(ContentInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ContentInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentInfoList) - { - // Return department and department role separated by comma. - return ((ContentInfoList)value).Items.Count.ToString() + " Contents"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentItem.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentItem.cs deleted file mode 100644 index 3b7aeb06..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentItem.cs +++ /dev/null @@ -1,409 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentItem Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentItemConverter))] - public partial class ContentItem : 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 _ItemID; - [System.ComponentModel.DataObjectField(true, true)] - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem != null) _ItemID = _MyItem.ItemID; - return _ItemID; - } - } - private Item _MyItem; - [System.ComponentModel.DataObjectField(true, true)] - public Item MyItem - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem == null && _ItemID != 0) _MyItem = Item.Get(_ItemID); - return _MyItem; - } - } - private int? _PreviousID; - public int? PreviousID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyPrevious != null) _PreviousID = _MyPrevious.ItemID; - return _PreviousID; - } - } - private Item _MyPrevious; - public Item MyPrevious - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyPrevious == null && _PreviousID != null) _MyPrevious = Item.Get((int)_PreviousID); - return _MyPrevious; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if ((_MyPrevious == null ? _PreviousID : (int?)_MyPrevious.ItemID) != (value == null ? null : (int?)value.ItemID)) - { - _MyPrevious = value; - _PreviousID = (value == null ? null : (int?)value.ItemID); - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - // TODO: Check ContentItem.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 ContentItem - protected override object GetIdValue() - { - return _ItemID; - } - // TODO: Replace base ContentItem.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ContentItem - //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; - if (_MyItem != null && (hasBrokenRules = _MyItem.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "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(ItemID, ""); - //AuthorizationRules.AllowRead(PreviousID, ""); - //AuthorizationRules.AllowWrite(PreviousID, ""); - //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 ContentItem New() - { - return new ContentItem(); - } - internal static ContentItem Get(SafeDataReader dr) - { - return new ContentItem(dr); - } - public ContentItem() - { - MarkAsChild(); - _ItemID = Item.NextItemID; - _DTS = _ContentItemExtension.DefaultDTS; - _UserID = _ContentItemExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - internal ContentItem(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentItem.FetchDR", GetHashCode()); - try - { - _ItemID = dr.GetInt32("ItemID"); - _PreviousID = (int?)dr.GetValue("PreviousID"); - _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("ContentItem.FetchDR", ex); - throw new DbCslaException("ContentItem.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Content myContent) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Item.Add(cn, ref _ItemID, Item.Get((int)_PreviousID), myContent, _DTS, _UserID); - MarkOld(); - } - internal void Update(Content myContent) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Item.Update(cn, ref _ItemID, Item.Get((int)_PreviousID), myContent, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Content myContent) - { - // 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"]; - Item.Remove(cn, _ItemID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ContentItemExtension _ContentItemExtension = new ContentItemExtension(); - [Serializable()] - partial class ContentItemExtension : 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 ContentItemConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentItem) - { - // Return the ToString value - return ((ContentItem)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ContentItemExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ContentItem -// { -// partial class ContentItemExtension : 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/OldGenerated/ContentItems.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentItems.cs deleted file mode 100644 index d4069fc9..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentItems.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentItems Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentItemsConverter))] - public partial class ContentItems : 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 ContentItem this[Item myItem] - { - get - { - foreach (ContentItem item in this) - if (item.ItemID == myItem.ItemID) - return item; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ContentItem GetItem(Item myItem) - { - foreach (ContentItem item in this) - if (item.ItemID == myItem.ItemID) - return item; - return null; - } - public ContentItem Add() // One to Many - { - ContentItem item = ContentItem.New(); - this.Add(item); - return item; - } - public void Remove(Item myItem) - { - foreach (ContentItem item in this) - { - if (item.ItemID == myItem.ItemID) - { - Remove(item); - break; - } - } - } - public bool Contains(Item myItem) - { - foreach (ContentItem item in this) - if (item.ItemID == myItem.ItemID) - return true; - return false; - } - public bool ContainsDeleted(Item myItem) - { - foreach (ContentItem item in DeletedList) - if (item.ItemID == myItem.ItemID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ContentItem contentItem in this) - if ((hasBrokenRules = contentItem.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 ContentItems New() - { - return new ContentItems(); - } - internal static ContentItems Get(SafeDataReader dr) - { - return new ContentItems(dr); - } - public static ContentItems GetByContentID(int contentID) - { - try - { - return DataPortal.Fetch(new ContentIDCriteria(contentID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentItems.GetByContentID", ex); - } - } - private ContentItems() - { - MarkAsChild(); - } - internal ContentItems(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(ContentItem.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ContentIDCriteria - { - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - private int _ContentID; - public int ContentID - { - get { return _ContentID; } - set { _ContentID = value; } - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentItems.DataPortal_FetchContentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getItemsByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ContentItem(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentItems.DataPortal_FetchContentID", ex); - throw new DbCslaException("ContentItems.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Content content) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ContentItem obj in DeletedList) - obj.DeleteSelf(content);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (ContentItem obj in this) - { - if (obj.IsNew) - obj.Insert(content); - else - obj.Update(content); - } - } - 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 - ContentItemsPropertyDescriptor pd = new ContentItemsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ContentItemsPropertyDescriptor : vlnListPropertyDescriptor - { - private ContentItem Item { get { return (ContentItem)_Item; } } - public ContentItemsPropertyDescriptor(ContentItems collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ContentItemsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentItems) - { - // Return department and department role separated by comma. - return ((ContentItems)value).Items.Count.ToString() + " Items"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentPart.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentPart.cs deleted file mode 100644 index 71935b96..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentPart.cs +++ /dev/null @@ -1,464 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentPart Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentPartConverter))] - public partial class ContentPart : 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 _FromType; - [System.ComponentModel.DataObjectField(true, true)] - public int FromType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FromType; - } - } - private int _ItemID; - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem != null) _ItemID = _MyItem.ItemID; - return _ItemID; - } - } - private Item _MyItem; - public Item MyItem - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem == null && _ItemID != 0) _MyItem = Item.Get(_ItemID); - return _MyItem; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyItem != value) - { - _MyItem = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int? _Item_PreviousID; - public int? Item_PreviousID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_PreviousID; - } - } - private int _Item_ContentID; - public int Item_ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_ContentID; - } - } - private DateTime _Item_DTS = new DateTime(); - public DateTime Item_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_DTS; - } - } - private string _Item_UserID = string.Empty; - public string Item_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_UserID; - } - } - // TODO: Check ContentPart.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 ContentPart - protected override object GetIdValue() - { - return _FromType; - } - // TODO: Replace base ContentPart.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ContentPart - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyItem == null ? false : _MyItem.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyItem == null ? true : _MyItem.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 (_MyItem != null && (hasBrokenRules = _MyItem.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(MyItemRequired, "MyItem"); - 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 MyItemRequired(ContentPart target, Csla.Validation.RuleArgs e) - { - if (target._ItemID == 0 && target._MyItem == 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(FromType, ""); - //AuthorizationRules.AllowRead(ItemID, ""); - //AuthorizationRules.AllowWrite(ItemID, ""); - //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 ContentPart New(int fromType, Item myItem) - { - return new ContentPart(fromType, myItem); - } - internal static ContentPart Get(SafeDataReader dr) - { - return new ContentPart(dr); - } - public ContentPart() - { - MarkAsChild(); - - _DTS = _ContentPartExtension.DefaultDTS; - _UserID = _ContentPartExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ContentPart(int fromType, Item myItem) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _ContentPartExtension.DefaultDTS; - _UserID = _ContentPartExtension.DefaultUserID; - _FromType = fromType; - _MyItem = myItem; - ValidationRules.CheckRules(); - } - internal ContentPart(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentPart.FetchDR", GetHashCode()); - try - { - _FromType = dr.GetInt32("FromType"); - _ItemID = dr.GetInt32("ItemID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _Item_PreviousID = (int?)dr.GetValue("Item_PreviousID"); - _Item_ContentID = dr.GetInt32("Item_ContentID"); - _Item_DTS = dr.GetDateTime("Item_DTS"); - _Item_UserID = dr.GetString("Item_UserID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentPart.FetchDR", ex); - throw new DbCslaException("ContentPart.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Content myContent) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Part.Add(cn, myContent, _FromType, _MyItem, _DTS, _UserID); - MarkOld(); - } - internal void Update(Content myContent) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Part.Update(cn, myContent, _FromType, _MyItem, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Content myContent) - { - // 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"]; - Part.Remove(cn, myContent.ContentID, _FromType); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ContentPartExtension _ContentPartExtension = new ContentPartExtension(); - [Serializable()] - partial class ContentPartExtension : 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 ContentPartConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentPart) - { - // Return the ToString value - return ((ContentPart)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ContentPartExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ContentPart -// { -// partial class ContentPartExtension : 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/OldGenerated/ContentParts.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentParts.cs deleted file mode 100644 index 66bccb98..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentParts.cs +++ /dev/null @@ -1,295 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentParts Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentPartsConverter))] - public partial class ContentParts : 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 new ContentPart this[int fromType] - { - get - { - foreach (ContentPart part in this) - if (part.FromType == fromType) - return part; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ContentPart GetItem(int fromType) - { - foreach (ContentPart part in this) - if (part.FromType == fromType) - return part; - return null; - } - public ContentPart Add(int fromType, Item myItem) // One to Many with unique fields - { - if (!Contains(fromType)) - { - ContentPart part = ContentPart.New(fromType, myItem); - this.Add(part); - return part; - } - else - throw new InvalidOperationException("part already exists"); - } - public void Remove(int fromType) - { - foreach (ContentPart part in this) - { - if (part.FromType == fromType) - { - Remove(part); - break; - } - } - } - public bool Contains(int fromType) - { - foreach (ContentPart part in this) - if (part.FromType == fromType) - return true; - return false; - } - public bool ContainsDeleted(int fromType) - { - foreach (ContentPart part in DeletedList) - if (part.FromType == fromType) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ContentPart contentPart in this) - if ((hasBrokenRules = contentPart.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 ContentParts New() - { - return new ContentParts(); - } - internal static ContentParts Get(SafeDataReader dr) - { - return new ContentParts(dr); - } - public static ContentParts GetByContentID(int contentID) - { - try - { - return DataPortal.Fetch(new ContentIDCriteria(contentID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentParts.GetByContentID", ex); - } - } - private ContentParts() - { - MarkAsChild(); - } - internal ContentParts(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(ContentPart.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ContentIDCriteria - { - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - private int _ContentID; - public int ContentID - { - get { return _ContentID; } - set { _ContentID = value; } - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentParts.DataPortal_FetchContentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPartsByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ContentPart(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentParts.DataPortal_FetchContentID", ex); - throw new DbCslaException("ContentParts.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Content content) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ContentPart obj in DeletedList) - obj.DeleteSelf(content);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (ContentPart obj in this) - { - if (obj.IsNew) - obj.Insert(content); - else - obj.Update(content); - } - } - 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 - ContentPartsPropertyDescriptor pd = new ContentPartsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ContentPartsPropertyDescriptor : vlnListPropertyDescriptor - { - private ContentPart Item { get { return (ContentPart)_Item; } } - public ContentPartsPropertyDescriptor(ContentParts collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ContentPartsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentParts) - { - // Return department and department role separated by comma. - return ((ContentParts)value).Items.Count.ToString() + " Parts"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentRoUsage.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentRoUsage.cs deleted file mode 100644 index 24726558..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentRoUsage.cs +++ /dev/null @@ -1,555 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentRoUsage Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentRoUsageConverter))] - public partial class ContentRoUsage : 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 - { - 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 - { - if (_MyRoUsage == null && _ROUsageID != 0) _MyRoUsage = RoUsage.Get(_ROUsageID); - return _MyRoUsage; - } - } - private string _ROID = string.Empty; - public string ROID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _RODbID; - public int RODbID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb != null) _RODbID = _MyRODb.RODbID; - return _RODbID; - } - } - private RODb _MyRODb; - public RODb MyRODb - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb == null && _RODbID != 0) _MyRODb = RODb.Get(_RODbID); - return _MyRODb; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyRODb != value) - { - _MyRODb = value; - PropertyHasChanged(); - } - } - } - private string _RODb_ROName = string.Empty; - /// - /// Hook for future - to allow the user to select multiple RO Databases assocaiated with on DocVersion - /// - public string RODb_ROName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODb_ROName; - } - } - private string _RODb_FolderPath = string.Empty; - /// - /// Path to the RO database - /// - public string RODb_FolderPath - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODb_FolderPath; - } - } - private string _RODb_DBConnectionString = string.Empty; - /// - /// Connection String - Default could just be the full path and name of the database - /// - public string RODb_DBConnectionString - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODb_DBConnectionString; - } - } - private DateTime _RODb_DTS = new DateTime(); - public DateTime RODb_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODb_DTS; - } - } - private string _RODb_UserID = string.Empty; - public string RODb_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODb_UserID; - } - } - // TODO: Check ContentRoUsage.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 ContentRoUsage - protected override object GetIdValue() - { - return _ROUsageID; - } - // TODO: Replace base ContentRoUsage.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ContentRoUsage - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyRODb == null ? false : _MyRODb.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyRODb == null ? true : _MyRODb.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 (_MyRODb != null && (hasBrokenRules = _MyRODb.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "ROID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("ROID", 16)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UserID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); - ValidationRules.AddRule(MyRODbRequired, "MyRODb"); - // TODO: Add other validation rules - } - private static bool MyRODbRequired(ContentRoUsage 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(ROUsageID, ""); - //AuthorizationRules.AllowRead(ROID, ""); - //AuthorizationRules.AllowWrite(ROID, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - //AuthorizationRules.AllowRead(RODbID, ""); - //AuthorizationRules.AllowWrite(RODbID, ""); - } - public static bool CanAddObject() - { - // 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 ContentRoUsage New(string roid, RODb myRODb) - { - return new ContentRoUsage(roid, myRODb); - } - internal static ContentRoUsage Get(SafeDataReader dr) - { - return new ContentRoUsage(dr); - } - public ContentRoUsage() - { - MarkAsChild(); - _ROUsageID = RoUsage.NextROUsageID; - _DTS = _ContentRoUsageExtension.DefaultDTS; - _UserID = _ContentRoUsageExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ContentRoUsage(string roid, RODb myRODb) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _ContentRoUsageExtension.DefaultDTS; - _UserID = _ContentRoUsageExtension.DefaultUserID; - _ROID = roid; - _MyRODb = myRODb; - ValidationRules.CheckRules(); - } - internal ContentRoUsage(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentRoUsage.FetchDR", GetHashCode()); - try - { - _ROUsageID = dr.GetInt32("ROUsageID"); - _ROID = dr.GetString("ROID"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _RODbID = dr.GetInt32("RODbID"); - _RODb_ROName = dr.GetString("RODb_ROName"); - _RODb_FolderPath = dr.GetString("RODb_FolderPath"); - _RODb_DBConnectionString = dr.GetString("RODb_DBConnectionString"); - _RODb_DTS = dr.GetDateTime("RODb_DTS"); - _RODb_UserID = dr.GetString("RODb_UserID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentRoUsage.FetchDR", ex); - throw new DbCslaException("ContentRoUsage.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Content myContent) - { - // 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(Content myContent) - { - // 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(Content myContent) - { - // 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 - ContentRoUsageExtension _ContentRoUsageExtension = new ContentRoUsageExtension(); - [Serializable()] - partial class ContentRoUsageExtension : 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 ContentRoUsageConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentRoUsage) - { - // Return the ToString value - return ((ContentRoUsage)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ContentRoUsageExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ContentRoUsage -// { -// partial class ContentRoUsageExtension : 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/OldGenerated/ContentRoUsages.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentRoUsages.cs deleted file mode 100644 index ecac510e..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentRoUsages.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentRoUsages Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentRoUsagesConverter))] - public partial class ContentRoUsages : 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 ContentRoUsage this[RoUsage myRoUsage] - { - get - { - foreach (ContentRoUsage roUsage in this) - if (roUsage.ROUsageID == myRoUsage.ROUsageID) - return roUsage; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ContentRoUsage GetItem(RoUsage myRoUsage) - { - foreach (ContentRoUsage roUsage in this) - if (roUsage.ROUsageID == myRoUsage.ROUsageID) - return roUsage; - return null; - } - public ContentRoUsage Add(string roid, RODb myRODb) // One to Many - { - ContentRoUsage roUsage = ContentRoUsage.New(roid, myRODb); - this.Add(roUsage); - return roUsage; - } - public void Remove(RoUsage myRoUsage) - { - foreach (ContentRoUsage roUsage in this) - { - if (roUsage.ROUsageID == myRoUsage.ROUsageID) - { - Remove(roUsage); - break; - } - } - } - public bool Contains(RoUsage myRoUsage) - { - foreach (ContentRoUsage roUsage in this) - if (roUsage.ROUsageID == myRoUsage.ROUsageID) - return true; - return false; - } - public bool ContainsDeleted(RoUsage myRoUsage) - { - foreach (ContentRoUsage roUsage in DeletedList) - if (roUsage.ROUsageID == myRoUsage.ROUsageID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ContentRoUsage contentRoUsage in this) - if ((hasBrokenRules = contentRoUsage.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 ContentRoUsages New() - { - return new ContentRoUsages(); - } - internal static ContentRoUsages Get(SafeDataReader dr) - { - return new ContentRoUsages(dr); - } - public static ContentRoUsages GetByContentID(int contentID) - { - try - { - return DataPortal.Fetch(new ContentIDCriteria(contentID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentRoUsages.GetByContentID", ex); - } - } - private ContentRoUsages() - { - MarkAsChild(); - } - internal ContentRoUsages(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(ContentRoUsage.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ContentIDCriteria - { - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - private int _ContentID; - public int ContentID - { - get { return _ContentID; } - set { _ContentID = value; } - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentRoUsages.DataPortal_FetchContentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRoUsagesByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ContentRoUsage(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentRoUsages.DataPortal_FetchContentID", ex); - throw new DbCslaException("ContentRoUsages.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Content content) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ContentRoUsage obj in DeletedList) - obj.DeleteSelf(content);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (ContentRoUsage obj in this) - { - if (obj.IsNew) - obj.Insert(content); - else - obj.Update(content); - } - } - 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 - ContentRoUsagesPropertyDescriptor pd = new ContentRoUsagesPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ContentRoUsagesPropertyDescriptor : vlnListPropertyDescriptor - { - private ContentRoUsage Item { get { return (ContentRoUsage)_Item; } } - public ContentRoUsagesPropertyDescriptor(ContentRoUsages collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ContentRoUsagesConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentRoUsages) - { - // Return department and department role separated by comma. - return ((ContentRoUsages)value).Items.Count.ToString() + " RoUsages"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentTransition.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentTransition.cs deleted file mode 100644 index 68616915..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentTransition.cs +++ /dev/null @@ -1,618 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentTransition Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentTransitionConverter))] - public partial class ContentTransition : 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 _TransitionID; - [System.ComponentModel.DataObjectField(true, true)] - public int TransitionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyTransition != null) _TransitionID = _MyTransition.TransitionID; - return _TransitionID; - } - } - private Transition _MyTransition; - [System.ComponentModel.DataObjectField(true, true)] - public Transition MyTransition - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyTransition == null && _TransitionID != 0) _MyTransition = Transition.Get(_TransitionID); - return _MyTransition; - } - } - private int _ToID; - /// - /// StructureID - /// - public int ToID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemToID != null) _ToID = _MyItemToID.ItemID; - return _ToID; - } - } - private Item _MyItemToID; - public Item MyItemToID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemToID == null && _ToID != 0) _MyItemToID = Item.Get(_ToID); - return _MyItemToID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyItemToID != value) - { - _MyItemToID = value; - PropertyHasChanged(); - } - } - } - private int _RangeID; - public int RangeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemRangeID != null) _RangeID = _MyItemRangeID.ItemID; - return _RangeID; - } - } - private Item _MyItemRangeID; - public Item MyItemRangeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemRangeID == null && _RangeID != 0) _MyItemRangeID = Item.Get(_RangeID); - return _MyItemRangeID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyItemRangeID != value) - { - _MyItemRangeID = value; - PropertyHasChanged(); - } - } - } - private int _TranType; - public int TranType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TranType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_TranType != value) - { - _TranType = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int? _Item_RangeID_PreviousID; - public int? Item_RangeID_PreviousID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_RangeID_PreviousID; - } - } - private int _Item_RangeID_ContentID; - public int Item_RangeID_ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_RangeID_ContentID; - } - } - private DateTime _Item_RangeID_DTS = new DateTime(); - public DateTime Item_RangeID_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_RangeID_DTS; - } - } - private string _Item_RangeID_UserID = string.Empty; - public string Item_RangeID_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_RangeID_UserID; - } - } - private int? _Item_ToID_PreviousID; - public int? Item_ToID_PreviousID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_ToID_PreviousID; - } - } - private int _Item_ToID_ContentID; - public int Item_ToID_ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_ToID_ContentID; - } - } - private DateTime _Item_ToID_DTS = new DateTime(); - public DateTime Item_ToID_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_ToID_DTS; - } - } - private string _Item_ToID_UserID = string.Empty; - public string Item_ToID_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Item_ToID_UserID; - } - } - // TODO: Check ContentTransition.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 ContentTransition - protected override object GetIdValue() - { - return _TransitionID; - } - // TODO: Replace base ContentTransition.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ContentTransition - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyItemToID == null ? false : _MyItemToID.IsDirty) || (_MyItemRangeID == null ? false : _MyItemRangeID.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyItemToID == null ? true : _MyItemToID.IsValid) && (_MyItemRangeID == null ? true : _MyItemRangeID.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 (_MyItemToID != null && (hasBrokenRules = _MyItemToID.HasBrokenRules) != null) return hasBrokenRules; - if (_MyItemRangeID != null && (hasBrokenRules = _MyItemRangeID.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(MyItemToIDRequired, "MyItemToID"); - ValidationRules.AddRule(MyItemRangeIDRequired, "MyItemRangeID"); - 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 MyItemToIDRequired(ContentTransition target, Csla.Validation.RuleArgs e) - { - if (target._ToID == 0 && target._MyItemToID == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - private static bool MyItemRangeIDRequired(ContentTransition target, Csla.Validation.RuleArgs e) - { - if (target._RangeID == 0 && target._MyItemRangeID == 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(TransitionID, ""); - //AuthorizationRules.AllowRead(ToID, ""); - //AuthorizationRules.AllowWrite(ToID, ""); - //AuthorizationRules.AllowRead(RangeID, ""); - //AuthorizationRules.AllowWrite(RangeID, ""); - //AuthorizationRules.AllowRead(TranType, ""); - //AuthorizationRules.AllowWrite(TranType, ""); - //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 ContentTransition New(Item myItemToID, Item myItemRangeID) - { - return new ContentTransition(myItemToID, myItemRangeID); - } - internal static ContentTransition Get(SafeDataReader dr) - { - return new ContentTransition(dr); - } - public ContentTransition() - { - MarkAsChild(); - _TransitionID = Transition.NextTransitionID; - _TranType = _ContentTransitionExtension.DefaultTranType; - _DTS = _ContentTransitionExtension.DefaultDTS; - _UserID = _ContentTransitionExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ContentTransition(Item myItemToID, Item myItemRangeID) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _TranType = _ContentTransitionExtension.DefaultTranType; - _DTS = _ContentTransitionExtension.DefaultDTS; - _UserID = _ContentTransitionExtension.DefaultUserID; - _MyItemToID = myItemToID; - _MyItemRangeID = myItemRangeID; - ValidationRules.CheckRules(); - } - internal ContentTransition(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentTransition.FetchDR", GetHashCode()); - try - { - _TransitionID = dr.GetInt32("TransitionID"); - _ToID = dr.GetInt32("ToID"); - _RangeID = dr.GetInt32("RangeID"); - _TranType = dr.GetInt32("TranType"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _Item_RangeID_PreviousID = (int?)dr.GetValue("Item_RangeID_PreviousID"); - _Item_RangeID_ContentID = dr.GetInt32("Item_RangeID_ContentID"); - _Item_RangeID_DTS = dr.GetDateTime("Item_RangeID_DTS"); - _Item_RangeID_UserID = dr.GetString("Item_RangeID_UserID"); - _Item_ToID_PreviousID = (int?)dr.GetValue("Item_ToID_PreviousID"); - _Item_ToID_ContentID = dr.GetInt32("Item_ToID_ContentID"); - _Item_ToID_DTS = dr.GetDateTime("Item_ToID_DTS"); - _Item_ToID_UserID = dr.GetString("Item_ToID_UserID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentTransition.FetchDR", ex); - throw new DbCslaException("ContentTransition.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Content myContent) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Transition.Add(cn, ref _TransitionID, myContent, _MyItemToID, _MyItemRangeID, _TranType, _Config, _DTS, _UserID); - MarkOld(); - } - internal void Update(Content myContent) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Transition.Update(cn, ref _TransitionID, myContent, _MyItemToID, _MyItemRangeID, _TranType, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Content myContent) - { - // 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"]; - Transition.Remove(cn, _TransitionID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ContentTransitionExtension _ContentTransitionExtension = new ContentTransitionExtension(); - [Serializable()] - partial class ContentTransitionExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultTranType - { - 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 ContentTransitionConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentTransition) - { - // Return the ToString value - return ((ContentTransition)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ContentTransitionExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ContentTransition -// { -// partial class ContentTransitionExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultTranType -// { -// 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/OldGenerated/ContentTransitions.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentTransitions.cs deleted file mode 100644 index 0d8270e4..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ContentTransitions.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ContentTransitions Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ContentTransitionsConverter))] - public partial class ContentTransitions : 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 ContentTransition this[Transition myTransition] - { - get - { - foreach (ContentTransition transition in this) - if (transition.TransitionID == myTransition.TransitionID) - return transition; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ContentTransition GetItem(Transition myTransition) - { - foreach (ContentTransition transition in this) - if (transition.TransitionID == myTransition.TransitionID) - return transition; - return null; - } - public ContentTransition Add(Item myItemToID, Item myItemRangeID) // One to Many - { - ContentTransition transition = ContentTransition.New(myItemToID, myItemRangeID); - this.Add(transition); - return transition; - } - public void Remove(Transition myTransition) - { - foreach (ContentTransition transition in this) - { - if (transition.TransitionID == myTransition.TransitionID) - { - Remove(transition); - break; - } - } - } - public bool Contains(Transition myTransition) - { - foreach (ContentTransition transition in this) - if (transition.TransitionID == myTransition.TransitionID) - return true; - return false; - } - public bool ContainsDeleted(Transition myTransition) - { - foreach (ContentTransition transition in DeletedList) - if (transition.TransitionID == myTransition.TransitionID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ContentTransition contentTransition in this) - if ((hasBrokenRules = contentTransition.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 ContentTransitions New() - { - return new ContentTransitions(); - } - internal static ContentTransitions Get(SafeDataReader dr) - { - return new ContentTransitions(dr); - } - public static ContentTransitions GetByFromID(int fromID) - { - try - { - return DataPortal.Fetch(new FromIDCriteria(fromID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ContentTransitions.GetByFromID", ex); - } - } - private ContentTransitions() - { - MarkAsChild(); - } - internal ContentTransitions(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(ContentTransition.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FromIDCriteria - { - public FromIDCriteria(int fromID) - { - _FromID = fromID; - } - private int _FromID; - public int FromID - { - get { return _FromID; } - set { _FromID = value; } - } - } - private void DataPortal_Fetch(FromIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ContentTransitions.DataPortal_FetchFromID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getTransitionsByFromID"; - cm.Parameters.AddWithValue("@FromID", criteria.FromID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ContentTransition(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ContentTransitions.DataPortal_FetchFromID", ex); - throw new DbCslaException("ContentTransitions.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Content content) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ContentTransition obj in DeletedList) - obj.DeleteSelf(content);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (ContentTransition obj in this) - { - if (obj.IsNew) - obj.Insert(content); - else - obj.Update(content); - } - } - 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 - ContentTransitionsPropertyDescriptor pd = new ContentTransitionsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ContentTransitionsPropertyDescriptor : vlnListPropertyDescriptor - { - private ContentTransition Item { get { return (ContentTransition)_Item; } } - public ContentTransitionsPropertyDescriptor(ContentTransitions collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ContentTransitionsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ContentTransitions) - { - // Return department and department role separated by comma. - return ((ContentTransitions)value).Items.Count.ToString() + " Transitions"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Database.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Database.cs deleted file mode 100644 index 92120328..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Database.cs +++ /dev/null @@ -1,138 +0,0 @@ -// ======================================================================== -// 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.Diagnostics; -namespace VEPROMS.CSLA.Library -{ - /// - /// Database Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public static partial class Database - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - public static void LogException(string s, Exception ex) - { - int i = 0; - Console.WriteLine("Error - {0}", s); - for (; ex != null; ex = ex.InnerException) - { - Console.WriteLine("{0}{1} - {2}", "".PadLeft(++i * 2), ex.GetType().ToString(), ex.Message); - } - } - private static bool _LoggingInfo = false; // By default don't log info - public static bool LoggingInfo - { - get { return _LoggingInfo; } - set { _LoggingInfo = value; } - } - static System.Diagnostics.Process _CurrentProcess = System.Diagnostics.Process.GetCurrentProcess(); - public static void LogInfo(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - public static void LogDebug(string s, int hashCode) - { - if (_LoggingInfo) - Console.WriteLine("{0} MB {1}", _CurrentProcess.WorkingSet64 / 1000000, string.Format(s, hashCode)); - } - public static string VEPROMS_Connection - { - get - { - DateTime.Today.ToLongDateString(); - ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings["VEPROMS"]; - if (cs == null) - { - throw new ApplicationException("Database.cs Could not find connection VEPROMS"); - } - return cs.ConnectionString; - } - } - public static SqlConnection VEPROMS_SqlConnection - { - get - { - string strConn = VEPROMS_Connection; // If failure - Fail (Don't try to catch) - // Attempt to make a connection - try - { - SqlConnection cn = new SqlConnection(strConn); - cn.Open(); - return cn; - } - catch (SqlException exsql) - { - const string strAttachError = "An attempt to attach an auto-named database for file "; - if (exsql.Message.StartsWith(strAttachError)) - {// Check to see if the file is missing - string sFile = exsql.Message.Substring(strAttachError.Length); - sFile = sFile.Substring(0, sFile.IndexOf(" failed")); - // "An attempt to attach an auto-named database for file failed" - if (strConn.ToLower().IndexOf("user instance=true") < 0) - { - throw new ApplicationException("Connection String missing attribute: User Instance=True"); - } - if (System.IO.File.Exists(sFile)) - { - throw new ApplicationException("Database file " + sFile + " Cannot be opened\r\n", exsql); - } - else - { - throw new FileNotFoundException("Database file " + sFile + " Not Found", exsql); - } - } - else - { - throw new ApplicationException("Failure on Connect", exsql); - } - } - catch (Exception ex)// Throw Application Exception on Failure - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Connection Error", ex); - throw new ApplicationException("Failure on Connect", ex); - } - } - } - public static void PurgeData() - { - try - { - SqlConnection cn = VEPROMS_SqlConnection; - SqlCommand cmd = new SqlCommand("purgedata", cn); - cmd.CommandType = CommandType.StoredProcedure; - cmd.CommandTimeout = 0; - cmd.ExecuteNonQuery(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Purge Error", ex); - throw new ApplicationException("Failure on Purge", ex); - } - } - } - public class DbCslaException : Exception - { - internal DbCslaException(string message, Exception innerException) : base(message, innerException) { ;} - internal DbCslaException(string message) : base(message) { ;} - internal DbCslaException() : base() { ;} - } // Class -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Detail.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Detail.cs deleted file mode 100644 index ddffe616..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Detail.cs +++ /dev/null @@ -1,1070 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Detail Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DetailConverter))] - public partial class Detail : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshDetails = new List(); - private void AddToRefreshList(List refreshDetails) - { - if (IsDirty) - refreshDetails.Add(this); - } - private void BuildRefreshList() - { - _RefreshDetails = new List(); - AddToRefreshList(_RefreshDetails); - } - private void ProcessRefreshList() - { - foreach (Detail tmp in _RefreshDetails) - { - DetailInfo.Refresh(tmp); - if (tmp._MyContent != null) ContentInfo.Refresh(tmp._MyContent); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Detail detail) - { - if (!_CacheList.Contains(detail)) _CacheList.Add(detail); // In AddToCache - } - protected static void RemoveFromCache(Detail detail) - { - while (_CacheList.Contains(detail)) _CacheList.Remove(detail); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Detail tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.DetailID.ToString())) - { - _CacheByPrimaryKey[tmp.DetailID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.DetailID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (Detail tmp in remove) - RemoveFromCache(tmp); - } - protected static Detail GetCachedByPrimaryKey(int detailID) - { - ConvertListToDictionary(); - string key = detailID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextDetailID = -1; - public static int NextDetailID - { - get { return _nextDetailID--; } - } - private int _DetailID; - [System.ComponentModel.DataObjectField(true, true)] - public int DetailID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DetailID; - } - } - private int _ContentID; - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private Content _MyContent; - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = Content.Get(_ContentID); - return _MyContent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyContent != value) - { - _MyContent = value; - PropertyHasChanged(); - } - } - } - private int _ItemType; - public int ItemType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ItemType != value) - { - _ItemType = value; - PropertyHasChanged(); - } - } - } - private string _Text = string.Empty; - public string Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Text; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Text != value) - { - _Text = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsDirty - { - get { return base.IsDirty || (_MyContent == null ? false : _MyContent.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyContent == null ? true : _MyContent.IsValid); } - } - // TODO: Replace base Detail.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Detail - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Detail.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 Detail - protected override object GetIdValue() - { - return _DetailID; - } - #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 (_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, "Text"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Text", 1073741823)); - 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"); - _DetailExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _DetailExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool MyContentRequired(Detail 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(DetailID, ""); - //AuthorizationRules.AllowRead(ContentID, ""); - //AuthorizationRules.AllowRead(ItemType, ""); - //AuthorizationRules.AllowRead(Text, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(ContentID, ""); - //AuthorizationRules.AllowWrite(ItemType, ""); - //AuthorizationRules.AllowWrite(Text, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _DetailExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _DetailExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _DetailUnique = 0; - protected static int DetailUnique - { get { return ++_DetailUnique; } } - private int _MyDetailUnique = DetailUnique; - public int MyDetailUnique - { get { return _MyDetailUnique; } } - protected Detail() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(DetailID.ToString())) - { - List listDetail = _CacheByPrimaryKey[DetailID.ToString()]; // Get the list of items - while (listDetail.Contains(this)) listDetail.Remove(this); // Remove the item from the list - if (listDetail.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(DetailID.ToString()); // remove the list - } - } - public static Detail New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Detail"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Detail.New", ex); - } - } - public static Detail New(Content myContent, int itemType, string text) - { - Detail tmp = Detail.New(); - tmp.MyContent = myContent; - tmp.ItemType = itemType; - tmp.Text = text; - return tmp; - } - public static Detail New(Content myContent, int itemType, string text, string config, DateTime dts, string userID) - { - Detail tmp = Detail.New(); - tmp.MyContent = myContent; - tmp.ItemType = itemType; - tmp.Text = text; - tmp.Config = config; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static Detail MakeDetail(Content myContent, int itemType, string text, string config, DateTime dts, string userID) - { - Detail tmp = Detail.New(myContent, itemType, text, config, dts, userID); - if (tmp.IsSavable) - { - Detail 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 Detail New(Content myContent, int itemType, string text, string config) - { - Detail tmp = Detail.New(); - tmp.MyContent = myContent; - tmp.ItemType = itemType; - tmp.Text = text; - tmp.Config = config; - return tmp; - } - public static Detail MakeDetail(Content myContent, int itemType, string text, string config) - { - Detail tmp = Detail.New(myContent, itemType, text, config); - if (tmp.IsSavable) - { - Detail 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 Detail Get(int detailID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Detail"); - try - { - Detail tmp = GetCachedByPrimaryKey(detailID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(detailID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Detail - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Detail.Get", ex); - } - } - public static Detail Get(SafeDataReader dr) - { - if (dr.Read()) return new Detail(dr); - return null; - } - internal Detail(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int detailID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Detail"); - try - { - DataPortal.Delete(new PKCriteria(detailID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Detail.Delete", ex); - } - } - public override Detail Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Detail"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Detail"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Detail"); - try - { - BuildRefreshList(); - Detail detail = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(detail);//Refresh the item in AllList - ProcessRefreshList(); - return detail; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _DetailID; - public int DetailID - { get { return _DetailID; } } - public PKCriteria(int detailID) - { - _DetailID = detailID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _DetailID = NextDetailID; - // Database Defaults - _DTS = _DetailExtension.DefaultDTS; - _UserID = _DetailExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Detail.ReadData", GetHashCode()); - try - { - _DetailID = dr.GetInt32("DetailID"); - _ContentID = dr.GetInt32("ContentID"); - _ItemType = dr.GetInt32("ItemType"); - _Text = dr.GetString("Text"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Detail.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Detail.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Detail.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 = "getDetail"; - cm.Parameters.AddWithValue("@DetailID", criteria.DetailID); - 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("Detail.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Detail.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("Detail.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Detail.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Detail.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyContent != null) _MyContent.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addDetail"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", ContentID); - cm.Parameters.AddWithValue("@ItemType", _ItemType); - cm.Parameters.AddWithValue("@Text", _Text); - 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_DetailID = new SqlParameter("@newDetailID", SqlDbType.Int); - param_DetailID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_DetailID); - 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 - _DetailID = (int)cm.Parameters["@newDetailID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Detail.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Detail.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Detail.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int detailID, Content myContent, int itemType, string text, string config, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Detail.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addDetail"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - cm.Parameters.AddWithValue("@ItemType", itemType); - cm.Parameters.AddWithValue("@Text", text); - 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_DetailID = new SqlParameter("@newDetailID", SqlDbType.Int); - param_DetailID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_DetailID); - 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 - detailID = (int)cm.Parameters["@newDetailID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Detail.Add", ex); - throw new DbCslaException("Detail.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}] Detail.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("Detail.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}] Detail.SQLUpdate", GetHashCode()); - try - { - if (_MyContent != null) _MyContent.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateDetail"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@DetailID", _DetailID); - cm.Parameters.AddWithValue("@ContentID", ContentID); - cm.Parameters.AddWithValue("@ItemType", _ItemType); - cm.Parameters.AddWithValue("@Text", _Text); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Detail.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 = Detail.Add(cn, ref _DetailID, _MyContent, _ItemType, _Text, _Config, _DTS, _UserID); - else - _LastChanged = Detail.Update(cn, ref _DetailID, _MyContent, _ItemType, _Text, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int detailID, Content myContent, int itemType, string text, string config, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Detail.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateDetail"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@DetailID", detailID); - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - cm.Parameters.AddWithValue("@ItemType", itemType); - cm.Parameters.AddWithValue("@Text", text); - 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("Detail.Update", ex); - throw new DbCslaException("Detail.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_DetailID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Detail.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteDetail"; - cm.Parameters.AddWithValue("@DetailID", criteria.DetailID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Detail.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Detail.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int detailID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Detail.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteDetail"; - // Input PK Fields - cm.Parameters.AddWithValue("@DetailID", detailID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Detail.Remove", ex); - throw new DbCslaException("Detail.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int detailID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(detailID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Detail.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _DetailID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int detailID) - { - _DetailID = detailID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Detail.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsDetail"; - cm.Parameters.AddWithValue("@DetailID", _DetailID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Detail.DataPortal_Execute", ex); - throw new DbCslaException("Detail.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - DetailExtension _DetailExtension = new DetailExtension(); - [Serializable()] - partial class DetailExtension : 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 DetailConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Detail) - { - // Return the ToString value - return ((Detail)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create DetailExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Detail -// { -// partial class DetailExtension : 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/OldGenerated/DetailInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DetailInfo.cs deleted file mode 100644 index ef781538..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DetailInfo.cs +++ /dev/null @@ -1,397 +0,0 @@ -// ======================================================================== -// 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 DetailInfoEvent(object sender); - /// - /// DetailInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DetailInfoConverter))] - public partial class DetailInfo : ReadOnlyBase, IDisposable - { - public event DetailInfoEvent 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(DetailInfo detailInfo) - { - if (!_CacheList.Contains(detailInfo)) _CacheList.Add(detailInfo); // In AddToCache - } - protected static void RemoveFromCache(DetailInfo detailInfo) - { - while (_CacheList.Contains(detailInfo)) _CacheList.Remove(detailInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (DetailInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.DetailID.ToString())) - { - _CacheByPrimaryKey[tmp.DetailID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.DetailID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (DetailInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(DetailInfoList lst) - { - foreach (DetailInfo item in lst) AddToCache(item); - } - protected static DetailInfo GetCachedByPrimaryKey(int detailID) - { - ConvertListToDictionary(); - string key = detailID.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 Detail _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _DetailID; - [System.ComponentModel.DataObjectField(true, true)] - public int DetailID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DetailID; - } - } - private int _ContentID; - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private ContentInfo _MyContent; - public ContentInfo MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = ContentInfo.Get(_ContentID); - return _MyContent; - } - } - private int _ItemType; - public int ItemType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemType; - } - } - private string _Text = string.Empty; - public string Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Text; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - // TODO: Replace base DetailInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current DetailInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check DetailInfo.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 DetailInfo - protected override object GetIdValue() - { - return _DetailID; - } - #endregion - #region Factory Methods - private static int _DetailInfoUnique = 0; - private static int DetailInfoUnique - { get { return ++_DetailInfoUnique; } } - private int _MyDetailInfoUnique = DetailInfoUnique; - public int MyDetailInfoUnique - { get { return _MyDetailInfoUnique; } } - protected DetailInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(DetailID.ToString())) return; - List listDetailInfo = _CacheByPrimaryKey[DetailID.ToString()]; // Get the list of items - while (listDetailInfo.Contains(this)) listDetailInfo.Remove(this); // Remove the item from the list - if (listDetailInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(DetailID.ToString()); // remove the list - } - public virtual Detail Get() - { - return _Editable = Detail.Get(_DetailID); - } - public static void Refresh(Detail tmp) - { - string key = tmp.DetailID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (DetailInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Detail tmp) - { - if (_ContentID != tmp.ContentID) - { - if (MyContent != null) MyContent.RefreshContentDetails(); // 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.RefreshContentDetails(); // Update List for new value - _ItemType = tmp.ItemType; - _Text = tmp.Text; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DetailInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(ContentDetail tmp) - { - string key = tmp.DetailID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (DetailInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ContentDetail tmp) - { - _ItemType = tmp.ItemType; - _Text = tmp.Text; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DetailInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - OnChange();// raise an event - } - public static DetailInfo Get(int detailID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Detail"); - try - { - DetailInfo tmp = GetCachedByPrimaryKey(detailID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(detailID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up DetailInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DetailInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal DetailInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DetailInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DetailInfo.Constructor", ex); - throw new DbCslaException("DetailInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _DetailID; - public int DetailID - { get { return _DetailID; } } - public PKCriteria(int detailID) - { - _DetailID = detailID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DetailInfo.ReadData", GetHashCode()); - try - { - _DetailID = dr.GetInt32("DetailID"); - _ContentID = dr.GetInt32("ContentID"); - _ItemType = dr.GetInt32("ItemType"); - _Text = dr.GetString("Text"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DetailInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DetailInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DetailInfo.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 = "getDetail"; - cm.Parameters.AddWithValue("@DetailID", criteria.DetailID); - 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("DetailInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DetailInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - DetailInfoExtension _DetailInfoExtension = new DetailInfoExtension(); - [Serializable()] - partial class DetailInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(DetailInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class DetailInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DetailInfo) - { - // Return the ToString value - return ((DetailInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DetailInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DetailInfoList.cs deleted file mode 100644 index 229d6851..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DetailInfoList.cs +++ /dev/null @@ -1,255 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DetailInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DetailInfoListConverter))] - public partial class DetailInfoList : 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 (DetailInfo tmp in this) - { - tmp.Changed += new DetailInfoEvent(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 (DetailInfo tmp in this) - { - tmp.Changed -= new DetailInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static DetailInfoList _DetailInfoList = null; - /// - /// Return a list of all projects. - /// - public static DetailInfoList Get() - { - try - { - if (_DetailInfoList != null) - return _DetailInfoList; - DetailInfoList tmp = DataPortal.Fetch(); - DetailInfo.AddList(tmp); - tmp.AddEvents(); - _DetailInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DetailInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static DetailInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on DetailInfoList.Get", ex); - // } - //} - public static DetailInfoList GetByContentID(int contentID) - { - try - { - DetailInfoList tmp = DataPortal.Fetch(new ContentIDCriteria(contentID)); - DetailInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DetailInfoList.GetByContentID", ex); - } - } - private DetailInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DetailInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDetails"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new DetailInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DetailInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("DetailInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ContentIDCriteria - { - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - private int _ContentID; - public int ContentID - { - get { return _ContentID; } - set { _ContentID = value; } - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DetailInfoList.DataPortal_FetchContentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDetailsByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new DetailInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DetailInfoList.DataPortal_FetchContentID", ex); - throw new DbCslaException("DetailInfoList.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 - DetailInfoListPropertyDescriptor pd = new DetailInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class DetailInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private DetailInfo Item { get { return (DetailInfo)_Item; } } - public DetailInfoListPropertyDescriptor(DetailInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class DetailInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DetailInfoList) - { - // Return department and department role separated by comma. - return ((DetailInfoList)value).Items.Count.ToString() + " Details"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersion.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersion.cs deleted file mode 100644 index dc19b6ee..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersion.cs +++ /dev/null @@ -1,1260 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DocVersion Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocVersionConverter))] - public partial class DocVersion : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshDocVersions = new List(); - private List _RefreshDocVersionDocVersionROFsts = new List(); - private void AddToRefreshList(List refreshDocVersions, List refreshDocVersionDocVersionROFsts) - { - if (IsDirty) - refreshDocVersions.Add(this); - if (_DocVersionDocVersionROFsts != null && _DocVersionDocVersionROFsts.IsDirty) - { - foreach (DocVersionDocVersionROFst tmp in _DocVersionDocVersionROFsts) - { - if (tmp.IsDirty) refreshDocVersionDocVersionROFsts.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshDocVersions = new List(); - _RefreshDocVersionDocVersionROFsts = new List(); - AddToRefreshList(_RefreshDocVersions, _RefreshDocVersionDocVersionROFsts); - } - private void ProcessRefreshList() - { - foreach (DocVersion tmp in _RefreshDocVersions) - { - DocVersionInfo.Refresh(tmp); - if (tmp._MyFolder != null) FolderInfo.Refresh(tmp._MyFolder); - if (tmp._MyFormat != null) FormatInfo.Refresh(tmp._MyFormat); - if (tmp._MyItem != null) ItemInfo.Refresh(tmp._MyItem); - } - foreach (DocVersionDocVersionROFst tmp in _RefreshDocVersionDocVersionROFsts) - { - DocVersionROFstInfo.Refresh(this, tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(DocVersion docVersion) - { - if (!_CacheList.Contains(docVersion)) _CacheList.Add(docVersion); // In AddToCache - } - protected static void RemoveFromCache(DocVersion docVersion) - { - while (_CacheList.Contains(docVersion)) _CacheList.Remove(docVersion); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (DocVersion tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.VersionID.ToString())) - { - _CacheByPrimaryKey[tmp.VersionID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.VersionID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (DocVersion tmp in remove) - RemoveFromCache(tmp); - } - protected static DocVersion GetCachedByPrimaryKey(int versionID) - { - ConvertListToDictionary(); - string key = versionID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextVersionID = -1; - public static int NextVersionID - { - get { return _nextVersionID--; } - } - private int _VersionID; - [System.ComponentModel.DataObjectField(true, true)] - public int VersionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _VersionID; - } - } - private int _FolderID; - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder != null) _FolderID = _MyFolder.FolderID; - return _FolderID; - } - } - private Folder _MyFolder; - public Folder MyFolder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder == null && _FolderID != 0) _MyFolder = Folder.Get(_FolderID); - return _MyFolder; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyFolder != value) - { - _MyFolder = value; - PropertyHasChanged(); - } - } - } - private int _VersionType; - /// - /// 0 Working Draft, 1 Temporary, 128 Revision, 129 Approved (Greater than 127 - non editable) - /// - public int VersionType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _VersionType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_VersionType != value) - { - _VersionType = value; - PropertyHasChanged(); - } - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Name != value) - { - _Name = value; - PropertyHasChanged(); - } - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Title != value) - { - _Title = value; - PropertyHasChanged(); - } - } - } - private int? _ItemID; - public int? ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem != null) _ItemID = _MyItem.ItemID; - return _ItemID; - } - } - private Item _MyItem; - public Item MyItem - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem == null && _ItemID != null) _MyItem = Item.Get((int)_ItemID); - return _MyItem; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if ((_MyItem == null ? _ItemID : (int?)_MyItem.ItemID) != (value == null ? null : (int?)value.ItemID)) - { - _MyItem = value; - _ItemID = (value == null ? null : (int?)value.ItemID); - PropertyHasChanged(); - } - } - } - private int? _FormatID; - public int? FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat != null) _FormatID = _MyFormat.FormatID; - return _FormatID; - } - } - private Format _MyFormat; - public Format MyFormat - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat == null && _FormatID != null) _MyFormat = Format.Get((int)_FormatID); - return _MyFormat; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if ((_MyFormat == null ? _FormatID : (int?)_MyFormat.FormatID) != (value == null ? null : (int?)value.FormatID)) - { - _MyFormat = value; - _FormatID = (value == null ? null : (int?)value.FormatID); - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _DocVersionDocVersionROFstCount = 0; - /// - /// Count of DocVersionDocVersionROFsts for this DocVersion - /// - public int DocVersionDocVersionROFstCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocVersionDocVersionROFstCount; - } - } - private DocVersionDocVersionROFsts _DocVersionDocVersionROFsts = null; - /// - /// Related Field - /// - [TypeConverter(typeof(DocVersionDocVersionROFstsConverter))] - public DocVersionDocVersionROFsts DocVersionDocVersionROFsts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_DocVersionDocVersionROFstCount > 0 && _DocVersionDocVersionROFsts == null) - _DocVersionDocVersionROFsts = DocVersionDocVersionROFsts.GetByVersionID(VersionID); - else if (_DocVersionDocVersionROFsts == null) - _DocVersionDocVersionROFsts = DocVersionDocVersionROFsts.New(); - return _DocVersionDocVersionROFsts; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_DocVersionDocVersionROFsts == null ? false : _DocVersionDocVersionROFsts.IsDirty) || (_MyFolder == null ? false : _MyFolder.IsDirty) || (_MyFormat == null ? false : _MyFormat.IsDirty) || (_MyItem == null ? false : _MyItem.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_DocVersionDocVersionROFsts == null ? true : _DocVersionDocVersionROFsts.IsValid) && (_MyFolder == null ? true : _MyFolder.IsValid) && (_MyFormat == null ? true : _MyFormat.IsValid) && (_MyItem == null ? true : _MyItem.IsValid); } - } - // TODO: Replace base DocVersion.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current DocVersion - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check DocVersion.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 DocVersion - protected override object GetIdValue() - { - return _VersionID; - } - #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 (_DocVersionDocVersionROFsts != null && (hasBrokenRules = _DocVersionDocVersionROFsts.HasBrokenRules) != null) return hasBrokenRules; - if (_MyFolder != null && (hasBrokenRules = _MyFolder.HasBrokenRules) != null) return hasBrokenRules; - if (_MyItem != null && (hasBrokenRules = _MyItem.HasBrokenRules) != null) return hasBrokenRules; - if (_MyFormat != null && (hasBrokenRules = _MyFormat.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(MyFolderRequired, "MyFolder"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 510)); - 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"); - _DocVersionExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _DocVersionExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool MyFolderRequired(DocVersion target, Csla.Validation.RuleArgs e) - { - if (target._FolderID == 0 && target._MyFolder == 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(VersionID, ""); - //AuthorizationRules.AllowRead(FolderID, ""); - //AuthorizationRules.AllowRead(VersionType, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowRead(ItemID, ""); - //AuthorizationRules.AllowRead(FormatID, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(FolderID, ""); - //AuthorizationRules.AllowWrite(VersionType, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowWrite(ItemID, ""); - //AuthorizationRules.AllowWrite(FormatID, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _DocVersionExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _DocVersionExtension.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 += _DocVersionDocVersionROFstCount; - 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 _DocVersionUnique = 0; - protected static int DocVersionUnique - { get { return ++_DocVersionUnique; } } - private int _MyDocVersionUnique = DocVersionUnique; - public int MyDocVersionUnique - { get { return _MyDocVersionUnique; } } - protected DocVersion() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(VersionID.ToString())) - { - List listDocVersion = _CacheByPrimaryKey[VersionID.ToString()]; // Get the list of items - while (listDocVersion.Contains(this)) listDocVersion.Remove(this); // Remove the item from the list - if (listDocVersion.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(VersionID.ToString()); // remove the list - } - } - public static DocVersion New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a DocVersion"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersion.New", ex); - } - } - public static DocVersion New(Folder myFolder, string name) - { - DocVersion tmp = DocVersion.New(); - tmp.MyFolder = myFolder; - tmp.Name = name; - return tmp; - } - public static DocVersion New(Folder myFolder, int versionType, string name, string title, Item myItem, Format myFormat, string config, DateTime dts, string userID) - { - DocVersion tmp = DocVersion.New(); - tmp.MyFolder = myFolder; - tmp.VersionType = versionType; - tmp.Name = name; - tmp.Title = title; - tmp.MyItem = myItem; - tmp.MyFormat = myFormat; - tmp.Config = config; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static DocVersion MakeDocVersion(Folder myFolder, int versionType, string name, string title, Item myItem, Format myFormat, string config, DateTime dts, string userID) - { - DocVersion tmp = DocVersion.New(myFolder, versionType, name, title, myItem, myFormat, config, dts, userID); - if (tmp.IsSavable) - { - DocVersion 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 DocVersion New(Folder myFolder, string name, string title, Item myItem, Format myFormat, string config) - { - DocVersion tmp = DocVersion.New(); - tmp.MyFolder = myFolder; - tmp.Name = name; - tmp.Title = title; - tmp.MyItem = myItem; - tmp.MyFormat = myFormat; - tmp.Config = config; - return tmp; - } - public static DocVersion MakeDocVersion(Folder myFolder, string name, string title, Item myItem, Format myFormat, string config) - { - DocVersion tmp = DocVersion.New(myFolder, name, title, myItem, myFormat, config); - if (tmp.IsSavable) - { - DocVersion 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 DocVersion Get(int versionID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a DocVersion"); - try - { - DocVersion tmp = GetCachedByPrimaryKey(versionID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(versionID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up DocVersion - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersion.Get", ex); - } - } - public static DocVersion Get(SafeDataReader dr) - { - if (dr.Read()) return new DocVersion(dr); - return null; - } - internal DocVersion(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int versionID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a DocVersion"); - try - { - DataPortal.Delete(new PKCriteria(versionID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersion.Delete", ex); - } - } - public override DocVersion Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a DocVersion"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a DocVersion"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a DocVersion"); - try - { - BuildRefreshList(); - DocVersion docVersion = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(docVersion);//Refresh the item in AllList - ProcessRefreshList(); - return docVersion; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _VersionID; - public int VersionID - { get { return _VersionID; } } - public PKCriteria(int versionID) - { - _VersionID = versionID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _VersionID = NextVersionID; - // Database Defaults - _VersionType = _DocVersionExtension.DefaultVersionType; - _DTS = _DocVersionExtension.DefaultDTS; - _UserID = _DocVersionExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersion.ReadData", GetHashCode()); - try - { - _VersionID = dr.GetInt32("VersionID"); - _FolderID = dr.GetInt32("FolderID"); - _VersionType = dr.GetInt32("VersionType"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _ItemID = (int?)dr.GetValue("ItemID"); - _FormatID = (int?)dr.GetValue("FormatID"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _DocVersionDocVersionROFstCount = dr.GetInt32("DocVersionROFstCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersion.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersion.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersion.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 = "getDocVersion"; - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _DocVersionDocVersionROFsts = DocVersionDocVersionROFsts.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("DocVersion.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersion.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("DocVersion.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersion.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersion.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyFolder != null) _MyFolder.Update(); - if (_MyFormat != null) _MyFormat.Update(); - if (_MyItem != null) _MyItem.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addDocVersion"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@FolderID", FolderID); - cm.Parameters.AddWithValue("@VersionType", _VersionType); - cm.Parameters.AddWithValue("@Name", _Name); - cm.Parameters.AddWithValue("@Title", _Title); - cm.Parameters.AddWithValue("@ItemID", ItemID); - cm.Parameters.AddWithValue("@FormatID", FormatID); - 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_VersionID = new SqlParameter("@newVersionID", SqlDbType.Int); - param_VersionID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_VersionID); - 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 - _VersionID = (int)cm.Parameters["@newVersionID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_DocVersionDocVersionROFsts != null) _DocVersionDocVersionROFsts.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersion.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersion.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersion.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int versionID, Folder myFolder, int versionType, string name, string title, Item myItem, Format myFormat, string config, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersion.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addDocVersion"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@FolderID", myFolder.FolderID); - cm.Parameters.AddWithValue("@VersionType", versionType); - cm.Parameters.AddWithValue("@Name", name); - cm.Parameters.AddWithValue("@Title", title); - if (myItem != null) cm.Parameters.AddWithValue("@ItemID", myItem.ItemID); - if (myFormat != null) cm.Parameters.AddWithValue("@FormatID", myFormat.FormatID); - 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_VersionID = new SqlParameter("@newVersionID", SqlDbType.Int); - param_VersionID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_VersionID); - 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 - versionID = (int)cm.Parameters["@newVersionID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersion.Add", ex); - throw new DbCslaException("DocVersion.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}] DocVersion.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("DocVersion.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}] DocVersion.SQLUpdate", GetHashCode()); - try - { - if (_MyFolder != null) _MyFolder.Update(); - if (_MyFormat != null) _MyFormat.Update(); - if (_MyItem != null) _MyItem.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateDocVersion"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@VersionID", _VersionID); - cm.Parameters.AddWithValue("@FolderID", FolderID); - cm.Parameters.AddWithValue("@VersionType", _VersionType); - cm.Parameters.AddWithValue("@Name", _Name); - cm.Parameters.AddWithValue("@Title", _Title); - cm.Parameters.AddWithValue("@ItemID", ItemID); - cm.Parameters.AddWithValue("@FormatID", FormatID); - 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 (_DocVersionDocVersionROFsts != null) _DocVersionDocVersionROFsts.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersion.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 = DocVersion.Add(cn, ref _VersionID, _MyFolder, _VersionType, _Name, _Title, _MyItem, _MyFormat, _Config, _DTS, _UserID); - else - _LastChanged = DocVersion.Update(cn, ref _VersionID, _MyFolder, _VersionType, _Name, _Title, _MyItem, _MyFormat, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - if (_DocVersionDocVersionROFsts != null) _DocVersionDocVersionROFsts.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int versionID, Folder myFolder, int versionType, string name, string title, Item myItem, Format myFormat, string config, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersion.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateDocVersion"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@VersionID", versionID); - cm.Parameters.AddWithValue("@FolderID", myFolder.FolderID); - cm.Parameters.AddWithValue("@VersionType", versionType); - cm.Parameters.AddWithValue("@Name", name); - cm.Parameters.AddWithValue("@Title", title); - if (myItem != null) cm.Parameters.AddWithValue("@ItemID", myItem.ItemID); - if (myFormat != null) cm.Parameters.AddWithValue("@FormatID", myFormat.FormatID); - 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("DocVersion.Update", ex); - throw new DbCslaException("DocVersion.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_VersionID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersion.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteDocVersion"; - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersion.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersion.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int versionID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersion.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteDocVersion"; - // Input PK Fields - cm.Parameters.AddWithValue("@VersionID", versionID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersion.Remove", ex); - throw new DbCslaException("DocVersion.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int versionID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(versionID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersion.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _VersionID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int versionID) - { - _VersionID = versionID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersion.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsDocVersion"; - cm.Parameters.AddWithValue("@VersionID", _VersionID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersion.DataPortal_Execute", ex); - throw new DbCslaException("DocVersion.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - DocVersionExtension _DocVersionExtension = new DocVersionExtension(); - [Serializable()] - partial class DocVersionExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultVersionType - { - 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 DocVersionConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocVersion) - { - // Return the ToString value - return ((DocVersion)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create DocVersionExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class DocVersion -// { -// partial class DocVersionExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultVersionType -// { -// 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/OldGenerated/DocVersionDocVersionROFst.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionDocVersionROFst.cs deleted file mode 100644 index 69b87e07..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionDocVersionROFst.cs +++ /dev/null @@ -1,423 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DocVersionDocVersionROFst Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocVersionDocVersionROFstConverter))] - public partial class DocVersionDocVersionROFst : 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 - { - if (_MyROFst != null) _ROFstID = _MyROFst.ROFstID; - } - } - private ROFst _MyROFst; - [System.ComponentModel.DataObjectField(true, true)] - public ROFst MyROFst - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyROFst == null && _ROFstID != 0) _MyROFst = ROFst.Get(_ROFstID); - return _MyROFst; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _ROFst_RODbID; - } - } - private byte[] _ROFst_ROFST; - public byte[] ROFst_ROFST - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFst_ROFST; - } - } - private DateTime _ROFst_DTS = new DateTime(); - public DateTime ROFst_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFst_DTS; - } - } - private string _ROFst_UserID = string.Empty; - public string ROFst_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFst_UserID; - } - } - // TODO: Check DocVersionDocVersionROFst.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 DocVersionDocVersionROFst - protected override object GetIdValue() - { - return _ROFstID; - } - // TODO: Replace base DocVersionDocVersionROFst.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current DocVersionDocVersionROFst - //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, "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(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 DocVersionDocVersionROFst New(ROFst myROFst) - { - return new DocVersionDocVersionROFst(myROFst); - } - internal static DocVersionDocVersionROFst Get(SafeDataReader dr) - { - return new DocVersionDocVersionROFst(dr); - } - public DocVersionDocVersionROFst() - { - MarkAsChild(); - - _DTS = _DocVersionDocVersionROFstExtension.DefaultDTS; - _UserID = _DocVersionDocVersionROFstExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private DocVersionDocVersionROFst(ROFst myROFst) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _DocVersionDocVersionROFstExtension.DefaultDTS; - _UserID = _DocVersionDocVersionROFstExtension.DefaultUserID; - _MyROFst = myROFst; - ValidationRules.CheckRules(); - } - internal DocVersionDocVersionROFst(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionDocVersionROFst.FetchDR", GetHashCode()); - try - { - _ROFstID = dr.GetInt32("ROFstID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _ROFst_RODbID = dr.GetInt32("ROFst_RODbID"); - _ROFst_ROFST = (byte[])dr.GetValue("ROFst_ROFST"); - _ROFst_DTS = dr.GetDateTime("ROFst_DTS"); - _ROFst_UserID = dr.GetString("ROFst_UserID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionDocVersionROFst.FetchDR", ex); - throw new DbCslaException("DocVersionDocVersionROFst.Fetch", ex); - } - MarkOld(); - } - internal void Insert(DocVersion myDocVersion) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = DocVersionROFst.Add(cn, myDocVersion, _MyROFst, _DTS, _UserID); - MarkOld(); - } - internal void Update(DocVersion myDocVersion) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = DocVersionROFst.Update(cn, myDocVersion, _MyROFst, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(DocVersion myDocVersion) - { - // 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"]; - DocVersionROFst.Remove(cn, myDocVersion.VersionID, _ROFstID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - DocVersionDocVersionROFstExtension _DocVersionDocVersionROFstExtension = new DocVersionDocVersionROFstExtension(); - [Serializable()] - partial class DocVersionDocVersionROFstExtension : 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 DocVersionDocVersionROFstConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocVersionDocVersionROFst) - { - // Return the ToString value - return ((DocVersionDocVersionROFst)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create DocVersionDocVersionROFstExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class DocVersionDocVersionROFst -// { -// partial class DocVersionDocVersionROFstExtension : 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/OldGenerated/DocVersionDocVersionROFsts.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionDocVersionROFsts.cs deleted file mode 100644 index d9808498..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionDocVersionROFsts.cs +++ /dev/null @@ -1,295 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DocVersionDocVersionROFsts Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocVersionDocVersionROFstsConverter))] - public partial class DocVersionDocVersionROFsts : 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; } - } - // Many To Many - public DocVersionDocVersionROFst this[ROFst myROFst] - { - get - { - foreach (DocVersionDocVersionROFst docVersionROFst in this) - if (docVersionROFst.ROFstID == myROFst.ROFstID) - return docVersionROFst; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public DocVersionDocVersionROFst GetItem(ROFst myROFst) - { - foreach (DocVersionDocVersionROFst docVersionROFst in this) - if (docVersionROFst.ROFstID == myROFst.ROFstID) - return docVersionROFst; - return null; - } - public DocVersionDocVersionROFst Add(ROFst myROFst)// Many to Many with required fields - { - if (!Contains(myROFst)) - { - DocVersionDocVersionROFst docVersionROFst = DocVersionDocVersionROFst.New(myROFst); - this.Add(docVersionROFst); - return docVersionROFst; - } - else - throw new InvalidOperationException("docVersionROFst already exists"); - } - public void Remove(ROFst myROFst) - { - foreach (DocVersionDocVersionROFst docVersionROFst in this) - { - if (docVersionROFst.ROFstID == myROFst.ROFstID) - { - Remove(docVersionROFst); - break; - } - } - } - public bool Contains(ROFst myROFst) - { - foreach (DocVersionDocVersionROFst docVersionROFst in this) - if (docVersionROFst.ROFstID == myROFst.ROFstID) - return true; - return false; - } - public bool ContainsDeleted(ROFst myROFst) - { - foreach (DocVersionDocVersionROFst docVersionROFst in DeletedList) - if (docVersionROFst.ROFstID == myROFst.ROFstID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (DocVersionDocVersionROFst docVersionDocVersionROFst in this) - if ((hasBrokenRules = docVersionDocVersionROFst.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 DocVersionDocVersionROFsts New() - { - return new DocVersionDocVersionROFsts(); - } - internal static DocVersionDocVersionROFsts Get(SafeDataReader dr) - { - return new DocVersionDocVersionROFsts(dr); - } - public static DocVersionDocVersionROFsts GetByVersionID(int versionID) - { - try - { - return DataPortal.Fetch(new VersionIDCriteria(versionID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionDocVersionROFsts.GetByVersionID", ex); - } - } - private DocVersionDocVersionROFsts() - { - MarkAsChild(); - } - internal DocVersionDocVersionROFsts(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(DocVersionDocVersionROFst.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class VersionIDCriteria - { - public VersionIDCriteria(int versionID) - { - _VersionID = versionID; - } - private int _VersionID; - public int VersionID - { - get { return _VersionID; } - set { _VersionID = value; } - } - } - private void DataPortal_Fetch(VersionIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionDocVersionROFsts.DataPortal_FetchVersionID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersionROFstsByVersionID"; - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new DocVersionDocVersionROFst(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionDocVersionROFsts.DataPortal_FetchVersionID", ex); - throw new DbCslaException("DocVersionDocVersionROFsts.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(DocVersion docVersion) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (DocVersionDocVersionROFst obj in DeletedList) - obj.DeleteSelf(docVersion);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (DocVersionDocVersionROFst obj in this) - { - if (obj.IsNew) - obj.Insert(docVersion); - else - obj.Update(docVersion); - } - } - 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 - DocVersionDocVersionROFstsPropertyDescriptor pd = new DocVersionDocVersionROFstsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class DocVersionDocVersionROFstsPropertyDescriptor : vlnListPropertyDescriptor - { - private DocVersionDocVersionROFst Item { get { return (DocVersionDocVersionROFst)_Item; } } - public DocVersionDocVersionROFstsPropertyDescriptor(DocVersionDocVersionROFsts collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class DocVersionDocVersionROFstsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocVersionDocVersionROFsts) - { - // Return department and department role separated by comma. - return ((DocVersionDocVersionROFsts)value).Items.Count.ToString() + " DocVersionROFsts"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionInfo.cs deleted file mode 100644 index 47aae191..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionInfo.cs +++ /dev/null @@ -1,632 +0,0 @@ -// ======================================================================== -// 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 DocVersionInfoEvent(object sender); - /// - /// DocVersionInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocVersionInfoConverter))] - public partial class DocVersionInfo : ReadOnlyBase, IDisposable - { - public event DocVersionInfoEvent 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(DocVersionInfo docVersionInfo) - { - if (!_CacheList.Contains(docVersionInfo)) _CacheList.Add(docVersionInfo); // In AddToCache - } - protected static void RemoveFromCache(DocVersionInfo docVersionInfo) - { - while (_CacheList.Contains(docVersionInfo)) _CacheList.Remove(docVersionInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (DocVersionInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.VersionID.ToString())) - { - _CacheByPrimaryKey[tmp.VersionID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.VersionID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (DocVersionInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(DocVersionInfoList lst) - { - foreach (DocVersionInfo item in lst) AddToCache(item); - } - protected static DocVersionInfo GetCachedByPrimaryKey(int versionID) - { - ConvertListToDictionary(); - string key = versionID.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 DocVersion _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _VersionID; - [System.ComponentModel.DataObjectField(true, true)] - public int VersionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _VersionID; - } - } - private int _FolderID; - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder != null) _FolderID = _MyFolder.FolderID; - return _FolderID; - } - } - private FolderInfo _MyFolder; - public FolderInfo MyFolder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder == null && _FolderID != 0) _MyFolder = FolderInfo.Get(_FolderID); - return _MyFolder; - } - } - private int _VersionType; - /// - /// 0 Working Draft, 1 Temporary, 128 Revision, 129 Approved (Greater than 127 - non editable) - /// - public int VersionType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _VersionType; - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - } - private int? _ItemID; - public int? ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem != null) _ItemID = _MyItem.ItemID; - return _ItemID; - } - } - private ItemInfo _MyItem; - public ItemInfo MyItem - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem == null && _ItemID != null) _MyItem = ItemInfo.Get((int)_ItemID); - return _MyItem; - } - } - private int? _FormatID; - public int? FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat != null) _FormatID = _MyFormat.FormatID; - return _FormatID; - } - } - private FormatInfo _MyFormat; - public FormatInfo MyFormat - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat == null && _FormatID != null) _MyFormat = FormatInfo.Get((int)_FormatID); - return _MyFormat; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _DocVersionDocVersionROFstCount = 0; - /// - /// Count of DocVersionDocVersionROFsts for this DocVersion - /// - public int DocVersionDocVersionROFstCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocVersionDocVersionROFstCount; - } - } - private DocVersionROFstInfoList _DocVersionDocVersionROFsts = null; - [TypeConverter(typeof(DocVersionROFstInfoListConverter))] - public DocVersionROFstInfoList DocVersionDocVersionROFsts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_DocVersionDocVersionROFstCount < 0 || (_DocVersionDocVersionROFstCount > 0 && _DocVersionDocVersionROFsts == null)) - _DocVersionDocVersionROFsts = DocVersionROFstInfoList.GetByVersionID(_VersionID); - if (_DocVersionDocVersionROFstCount < 0) - _DocVersionDocVersionROFstCount = _DocVersionDocVersionROFsts.Count; - return _DocVersionDocVersionROFsts; - } - } - public void RefreshDocVersionDocVersionROFsts() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_VersionID.ToString())) - foreach (DocVersionInfo tmp in _CacheByPrimaryKey[_VersionID.ToString()]) - tmp._DocVersionDocVersionROFstCount = -1; // This will cause the data to be requeried - } - // TODO: Replace base DocVersionInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current DocVersionInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check DocVersionInfo.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 DocVersionInfo - protected override object GetIdValue() - { - return _VersionID; - } - #endregion - #region Factory Methods - private static int _DocVersionInfoUnique = 0; - private static int DocVersionInfoUnique - { get { return ++_DocVersionInfoUnique; } } - private int _MyDocVersionInfoUnique = DocVersionInfoUnique; - public int MyDocVersionInfoUnique - { get { return _MyDocVersionInfoUnique; } } - protected DocVersionInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(VersionID.ToString())) return; - List listDocVersionInfo = _CacheByPrimaryKey[VersionID.ToString()]; // Get the list of items - while (listDocVersionInfo.Contains(this)) listDocVersionInfo.Remove(this); // Remove the item from the list - if (listDocVersionInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(VersionID.ToString()); // remove the list - } - public virtual DocVersion Get() - { - return _Editable = DocVersion.Get(_VersionID); - } - public static void Refresh(DocVersion tmp) - { - string key = tmp.VersionID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (DocVersionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(DocVersion tmp) - { - if (_FolderID != tmp.FolderID) - { - if (MyFolder != null) MyFolder.RefreshFolderDocVersions(); // Update List for old value - _FolderID = tmp.FolderID; // Update the value - } - _MyFolder = null; // Reset list so that the next line gets a new list - if (MyFolder != null) MyFolder.RefreshFolderDocVersions(); // Update List for new value - _VersionType = tmp.VersionType; - _Name = tmp.Name; - _Title = tmp.Title; - if (_ItemID != tmp.ItemID) - { - if (MyItem != null) MyItem.RefreshItemDocVersions(); // Update List for old value - _ItemID = tmp.ItemID; // Update the value - } - _MyItem = null; // Reset list so that the next line gets a new list - if (MyItem != null) MyItem.RefreshItemDocVersions(); // Update List for new value - if (_FormatID != tmp.FormatID) - { - if (MyFormat != null) MyFormat.RefreshFormatDocVersions(); // Update List for old value - _FormatID = tmp.FormatID; // Update the value - } - _MyFormat = null; // Reset list so that the next line gets a new list - if (MyFormat != null) MyFormat.RefreshFormatDocVersions(); // Update List for new value - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DocVersionInfoExtension.Refresh(this); - if (_MyFolder != null) - { - _MyFolder.Dispose();// Dispose related value - _MyFolder = null;// Reset related value - } - if (_MyItem != null) - { - _MyItem.Dispose();// Dispose related value - _MyItem = null;// Reset related value - } - if (_MyFormat != null) - { - _MyFormat.Dispose();// Dispose related value - _MyFormat = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(FolderDocVersion tmp) - { - string key = tmp.VersionID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (DocVersionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(FolderDocVersion tmp) - { - _VersionType = tmp.VersionType; - _Name = tmp.Name; - _Title = tmp.Title; - if (_ItemID != tmp.ItemID) - { - if (MyItem != null) MyItem.RefreshItemDocVersions(); // Update List for old value - _ItemID = tmp.ItemID; // Update the value - } - _MyItem = null; // Reset list so that the next line gets a new list - if (MyItem != null) MyItem.RefreshItemDocVersions(); // Update List for new value - if (_FormatID != tmp.FormatID) - { - if (MyFormat != null) MyFormat.RefreshFormatDocVersions(); // Update List for old value - _FormatID = tmp.FormatID; // Update the value - } - _MyFormat = null; // Reset list so that the next line gets a new list - if (MyFormat != null) MyFormat.RefreshFormatDocVersions(); // Update List for new value - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DocVersionInfoExtension.Refresh(this); - if (_MyFolder != null) - { - _MyFolder.Dispose();// Dispose related value - _MyFolder = null;// Reset related value - } - if (_MyItem != null) - { - _MyItem.Dispose();// Dispose related value - _MyItem = null;// Reset related value - } - if (_MyFormat != null) - { - _MyFormat.Dispose();// Dispose related value - _MyFormat = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(FormatDocVersion tmp) - { - string key = tmp.VersionID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (DocVersionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(FormatDocVersion tmp) - { - if (_FolderID != tmp.FolderID) - { - if (MyFolder != null) MyFolder.RefreshFolderDocVersions(); // Update List for old value - _FolderID = tmp.FolderID; // Update the value - } - _MyFolder = null; // Reset list so that the next line gets a new list - if (MyFolder != null) MyFolder.RefreshFolderDocVersions(); // Update List for new value - _VersionType = tmp.VersionType; - _Name = tmp.Name; - _Title = tmp.Title; - if (_ItemID != tmp.ItemID) - { - if (MyItem != null) MyItem.RefreshItemDocVersions(); // Update List for old value - _ItemID = tmp.ItemID; // Update the value - } - _MyItem = null; // Reset list so that the next line gets a new list - if (MyItem != null) MyItem.RefreshItemDocVersions(); // Update List for new value - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DocVersionInfoExtension.Refresh(this); - if (_MyFolder != null) - { - _MyFolder.Dispose();// Dispose related value - _MyFolder = null;// Reset related value - } - if (_MyItem != null) - { - _MyItem.Dispose();// Dispose related value - _MyItem = null;// Reset related value - } - if (_MyFormat != null) - { - _MyFormat.Dispose();// Dispose related value - _MyFormat = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(ItemDocVersion tmp) - { - string key = tmp.VersionID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (DocVersionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ItemDocVersion tmp) - { - if (_FolderID != tmp.FolderID) - { - if (MyFolder != null) MyFolder.RefreshFolderDocVersions(); // Update List for old value - _FolderID = tmp.FolderID; // Update the value - } - _MyFolder = null; // Reset list so that the next line gets a new list - if (MyFolder != null) MyFolder.RefreshFolderDocVersions(); // Update List for new value - _VersionType = tmp.VersionType; - _Name = tmp.Name; - _Title = tmp.Title; - if (_FormatID != tmp.FormatID) - { - if (MyFormat != null) MyFormat.RefreshFormatDocVersions(); // Update List for old value - _FormatID = tmp.FormatID; // Update the value - } - _MyFormat = null; // Reset list so that the next line gets a new list - if (MyFormat != null) MyFormat.RefreshFormatDocVersions(); // Update List for new value - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DocVersionInfoExtension.Refresh(this); - if (_MyFolder != null) - { - _MyFolder.Dispose();// Dispose related value - _MyFolder = null;// Reset related value - } - if (_MyItem != null) - { - _MyItem.Dispose();// Dispose related value - _MyItem = null;// Reset related value - } - if (_MyFormat != null) - { - _MyFormat.Dispose();// Dispose related value - _MyFormat = null;// Reset related value - } - OnChange();// raise an event - } - public static DocVersionInfo Get(int versionID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a DocVersion"); - try - { - DocVersionInfo tmp = GetCachedByPrimaryKey(versionID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(versionID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up DocVersionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal DocVersionInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionInfo.Constructor", ex); - throw new DbCslaException("DocVersionInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _VersionID; - public int VersionID - { get { return _VersionID; } } - public PKCriteria(int versionID) - { - _VersionID = versionID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionInfo.ReadData", GetHashCode()); - try - { - _VersionID = dr.GetInt32("VersionID"); - _FolderID = dr.GetInt32("FolderID"); - _VersionType = dr.GetInt32("VersionType"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _ItemID = (int?)dr.GetValue("ItemID"); - _FormatID = (int?)dr.GetValue("FormatID"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _DocVersionDocVersionROFstCount = dr.GetInt32("DocVersionROFstCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersionInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionInfo.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 = "getDocVersion"; - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - 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("DocVersionInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersionInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - DocVersionInfoExtension _DocVersionInfoExtension = new DocVersionInfoExtension(); - [Serializable()] - partial class DocVersionInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(DocVersionInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class DocVersionInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocVersionInfo) - { - // Return the ToString value - return ((DocVersionInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionInfoList.cs deleted file mode 100644 index 2ee6798b..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionInfoList.cs +++ /dev/null @@ -1,369 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DocVersionInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocVersionInfoListConverter))] - public partial class DocVersionInfoList : 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 (DocVersionInfo tmp in this) - { - tmp.Changed += new DocVersionInfoEvent(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 (DocVersionInfo tmp in this) - { - tmp.Changed -= new DocVersionInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static DocVersionInfoList _DocVersionInfoList = null; - /// - /// Return a list of all projects. - /// - public static DocVersionInfoList Get() - { - try - { - if (_DocVersionInfoList != null) - return _DocVersionInfoList; - DocVersionInfoList tmp = DataPortal.Fetch(); - DocVersionInfo.AddList(tmp); - tmp.AddEvents(); - _DocVersionInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static DocVersionInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on DocVersionInfoList.Get", ex); - // } - //} - public static DocVersionInfoList GetByFolderID(int folderID) - { - try - { - DocVersionInfoList tmp = DataPortal.Fetch(new FolderIDCriteria(folderID)); - DocVersionInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionInfoList.GetByFolderID", ex); - } - } - public static DocVersionInfoList GetByFormatID(int? formatID) - { - try - { - DocVersionInfoList tmp = DataPortal.Fetch(new FormatIDCriteria(formatID)); - DocVersionInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionInfoList.GetByFormatID", ex); - } - } - public static DocVersionInfoList GetByItemID(int? itemID) - { - try - { - DocVersionInfoList tmp = DataPortal.Fetch(new ItemIDCriteria(itemID)); - DocVersionInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionInfoList.GetByItemID", ex); - } - } - private DocVersionInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersions"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new DocVersionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("DocVersionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FolderIDCriteria - { - public FolderIDCriteria(int folderID) - { - _FolderID = folderID; - } - private int _FolderID; - public int FolderID - { - get { return _FolderID; } - set { _FolderID = value; } - } - } - private void DataPortal_Fetch(FolderIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionInfoList.DataPortal_FetchFolderID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersionsByFolderID"; - cm.Parameters.AddWithValue("@FolderID", criteria.FolderID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new DocVersionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionInfoList.DataPortal_FetchFolderID", ex); - throw new DbCslaException("DocVersionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FormatIDCriteria - { - public FormatIDCriteria(int? formatID) - { - _FormatID = formatID; - } - private int? _FormatID; - public int? FormatID - { - get { return _FormatID; } - set { _FormatID = value; } - } - } - private void DataPortal_Fetch(FormatIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionInfoList.DataPortal_FetchFormatID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersionsByFormatID"; - cm.Parameters.AddWithValue("@FormatID", criteria.FormatID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new DocVersionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionInfoList.DataPortal_FetchFormatID", ex); - throw new DbCslaException("DocVersionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ItemIDCriteria - { - public ItemIDCriteria(int? itemID) - { - _ItemID = itemID; - } - private int? _ItemID; - public int? ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - private void DataPortal_Fetch(ItemIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionInfoList.DataPortal_FetchItemID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersionsByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new DocVersionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionInfoList.DataPortal_FetchItemID", ex); - throw new DbCslaException("DocVersionInfoList.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 - DocVersionInfoListPropertyDescriptor pd = new DocVersionInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class DocVersionInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private DocVersionInfo Item { get { return (DocVersionInfo)_Item; } } - public DocVersionInfoListPropertyDescriptor(DocVersionInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class DocVersionInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocVersionInfoList) - { - // Return department and department role separated by comma. - return ((DocVersionInfoList)value).Items.Count.ToString() + " DocVersions"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionROFst.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionROFst.cs deleted file mode 100644 index 76fe5a16..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionROFst.cs +++ /dev/null @@ -1,968 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DocVersionROFst Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocVersionROFstConverter))] - public partial class DocVersionROFst : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshDocVersionROFsts = new List(); - private void AddToRefreshList(List refreshDocVersionROFsts) - { - if (IsDirty) - refreshDocVersionROFsts.Add(this); - } - private void BuildRefreshList() - { - _RefreshDocVersionROFsts = new List(); - AddToRefreshList(_RefreshDocVersionROFsts); - } - private void ProcessRefreshList() - { - foreach (DocVersionROFst tmp in _RefreshDocVersionROFsts) - { - DocVersionROFstInfo.Refresh(tmp); - if (tmp._MyDocVersion != null) DocVersionInfo.Refresh(tmp._MyDocVersion); - if (tmp._MyROFst != null) ROFstInfo.Refresh(tmp._MyROFst); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(DocVersionROFst docVersionROFst) - { - if (!_CacheList.Contains(docVersionROFst)) _CacheList.Add(docVersionROFst); // In AddToCache - } - protected static void RemoveFromCache(DocVersionROFst docVersionROFst) - { - while (_CacheList.Contains(docVersionROFst)) _CacheList.Remove(docVersionROFst); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (DocVersionROFst tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.VersionID.ToString() + "_" + tmp.ROFstID.ToString())) - { - _CacheByPrimaryKey[tmp.VersionID.ToString() + "_" + tmp.ROFstID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.VersionID.ToString() + "_" + tmp.ROFstID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (DocVersionROFst tmp in remove) - RemoveFromCache(tmp); - } - protected static DocVersionROFst GetCachedByPrimaryKey(int versionID, int rOFstID) - { - ConvertListToDictionary(); - string key = versionID.ToString() + "_" + 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; } - } - private int _VersionID; - [System.ComponentModel.DataObjectField(true, true)] - public int VersionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion != null) _VersionID = _MyDocVersion.VersionID; - return _VersionID; - } - } - private DocVersion _MyDocVersion; - [System.ComponentModel.DataObjectField(true, true)] - public DocVersion MyDocVersion - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion == null && _VersionID != 0) _MyDocVersion = DocVersion.Get(_VersionID); - return _MyDocVersion; - } - } - private int _ROFstID; - [System.ComponentModel.DataObjectField(true, true)] - public int ROFstID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - 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 - { - if (_MyROFst == null && _ROFstID != 0) _MyROFst = ROFst.Get(_ROFstID); - return _MyROFst; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsDirty - { - get { return base.IsDirty || (_MyDocVersion == null ? false : _MyDocVersion.IsDirty) || (_MyROFst == null ? false : _MyROFst.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyDocVersion == null ? true : _MyDocVersion.IsValid) && (_MyROFst == null ? true : _MyROFst.IsValid); } - } - // TODO: Replace base DocVersionROFst.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current DocVersionROFst - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check DocVersionROFst.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 DocVersionROFst - protected override object GetIdValue() - { - return (_VersionID.ToString() + "." + _ROFstID.ToString()).GetHashCode(); - } - #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; - 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, "UserID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _DocVersionROFstExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _DocVersionROFstExtension.AddInstanceValidationRules(ValidationRules); - // 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(VersionID, ""); - //AuthorizationRules.AllowRead(ROFstID, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _DocVersionROFstExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _DocVersionROFstExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _DocVersionROFstUnique = 0; - protected static int DocVersionROFstUnique - { get { return ++_DocVersionROFstUnique; } } - private int _MyDocVersionROFstUnique = DocVersionROFstUnique; - public int MyDocVersionROFstUnique - { get { return _MyDocVersionROFstUnique; } } - protected DocVersionROFst() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(VersionID.ToString() + "_" + ROFstID.ToString())) - { - List listDocVersionROFst = _CacheByPrimaryKey[VersionID.ToString() + "_" + ROFstID.ToString()]; // Get the list of items - while (listDocVersionROFst.Contains(this)) listDocVersionROFst.Remove(this); // Remove the item from the list - if (listDocVersionROFst.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(VersionID.ToString() + "_" + ROFstID.ToString()); // remove the list - } - } - public static DocVersionROFst New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a DocVersionROFst"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionROFst.New", ex); - } - } - public static DocVersionROFst New(DocVersion myDocVersion, ROFst myROFst) - { - DocVersionROFst tmp = DocVersionROFst.New(); - tmp._MyDocVersion = myDocVersion; - tmp._MyROFst = myROFst; - return tmp; - } - public static DocVersionROFst MakeDocVersionROFst(DocVersion myDocVersion, ROFst myROFst) - { - DocVersionROFst tmp = DocVersionROFst.New(myDocVersion, myROFst); - if (tmp.IsSavable) - { - DocVersionROFst 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 DocVersionROFst New(DocVersion myDocVersion, ROFst myROFst, DateTime dts, string userID) - { - DocVersionROFst tmp = DocVersionROFst.New(); - tmp._MyDocVersion = myDocVersion; - tmp._MyROFst = myROFst; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static DocVersionROFst MakeDocVersionROFst(DocVersion myDocVersion, ROFst myROFst, DateTime dts, string userID) - { - DocVersionROFst tmp = DocVersionROFst.New(myDocVersion, myROFst, dts, userID); - if (tmp.IsSavable) - { - DocVersionROFst 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 DocVersionROFst Get(int versionID, int rOFstID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a DocVersionROFst"); - try - { - DocVersionROFst tmp = GetCachedByPrimaryKey(versionID, rOFstID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(versionID, rOFstID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up DocVersionROFst - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionROFst.Get", ex); - } - } - public static DocVersionROFst Get(SafeDataReader dr) - { - if (dr.Read()) return new DocVersionROFst(dr); - return null; - } - internal DocVersionROFst(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int versionID, int rOFstID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a DocVersionROFst"); - try - { - DataPortal.Delete(new PKCriteria(versionID, rOFstID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionROFst.Delete", ex); - } - } - public override DocVersionROFst Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a DocVersionROFst"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a DocVersionROFst"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a DocVersionROFst"); - try - { - BuildRefreshList(); - DocVersionROFst docVersionROFst = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(docVersionROFst);//Refresh the item in AllList - ProcessRefreshList(); - return docVersionROFst; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _VersionID; - public int VersionID - { get { return _VersionID; } } - private int _ROFstID; - public int ROFstID - { get { return _ROFstID; } } - public PKCriteria(int versionID, int rOFstID) - { - _VersionID = versionID; - _ROFstID = rOFstID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - - // Database Defaults - _DTS = _DocVersionROFstExtension.DefaultDTS; - _UserID = _DocVersionROFstExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFst.ReadData", GetHashCode()); - try - { - _VersionID = dr.GetInt32("VersionID"); - _ROFstID = dr.GetInt32("ROFstID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFst.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersionROFst.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFst.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 = "getDocVersionROFst"; - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - } - } - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFst.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersionROFst.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("DocVersionROFst.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersionROFst.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFst.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyDocVersion != null) _MyDocVersion.Update(); - if (_MyROFst != null) _MyROFst.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addDocVersionROFst"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@VersionID", VersionID); - cm.Parameters.AddWithValue("@ROFstID", ROFstID); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - // 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(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFst.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFst.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersionROFst.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, DocVersion myDocVersion, ROFst myROFst, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFst.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addDocVersionROFst"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@VersionID", myDocVersion.VersionID); - cm.Parameters.AddWithValue("@ROFstID", myROFst.ROFstID); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UserID", userID); - // 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("DocVersionROFst.Add", ex); - throw new DbCslaException("DocVersionROFst.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}] DocVersionROFst.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("DocVersionROFst.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}] DocVersionROFst.SQLUpdate", GetHashCode()); - try - { - if (_MyDocVersion != null) _MyDocVersion.Update(); - if (_MyROFst != null) _MyROFst.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateDocVersionROFst"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@VersionID", VersionID); - cm.Parameters.AddWithValue("@ROFstID", ROFstID); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFst.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 = DocVersionROFst.Add(cn, _MyDocVersion, _MyROFst, _DTS, _UserID); - else - _LastChanged = DocVersionROFst.Update(cn, _MyDocVersion, _MyROFst, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, DocVersion myDocVersion, ROFst myROFst, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFst.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateDocVersionROFst"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@VersionID", myDocVersion.VersionID); - cm.Parameters.AddWithValue("@ROFstID", myROFst.ROFstID); - 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("DocVersionROFst.Update", ex); - throw new DbCslaException("DocVersionROFst.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_VersionID, _ROFstID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFst.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteDocVersionROFst"; - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFst.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersionROFst.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int versionID, int rOFstID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFst.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteDocVersionROFst"; - // Input PK Fields - cm.Parameters.AddWithValue("@VersionID", versionID); - cm.Parameters.AddWithValue("@ROFstID", rOFstID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFst.Remove", ex); - throw new DbCslaException("DocVersionROFst.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int versionID, int rOFstID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(versionID, rOFstID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionROFst.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _VersionID; - private int _ROFstID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int versionID, int rOFstID) - { - _VersionID = versionID; - _ROFstID = rOFstID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFst.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsDocVersionROFst"; - cm.Parameters.AddWithValue("@VersionID", _VersionID); - cm.Parameters.AddWithValue("@ROFstID", _ROFstID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFst.DataPortal_Execute", ex); - throw new DbCslaException("DocVersionROFst.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - DocVersionROFstExtension _DocVersionROFstExtension = new DocVersionROFstExtension(); - [Serializable()] - partial class DocVersionROFstExtension : 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 DocVersionROFstConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocVersionROFst) - { - // Return the ToString value - return ((DocVersionROFst)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create DocVersionROFstExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class DocVersionROFst -// { -// partial class DocVersionROFstExtension : 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/OldGenerated/DocVersionROFstInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionROFstInfo.cs deleted file mode 100644 index 272e22de..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionROFstInfo.cs +++ /dev/null @@ -1,408 +0,0 @@ -// ======================================================================== -// 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 DocVersionROFstInfoEvent(object sender); - /// - /// DocVersionROFstInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocVersionROFstInfoConverter))] - public partial class DocVersionROFstInfo : ReadOnlyBase, IDisposable - { - public event DocVersionROFstInfoEvent 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(DocVersionROFstInfo docVersionROFstInfo) - { - if (!_CacheList.Contains(docVersionROFstInfo)) _CacheList.Add(docVersionROFstInfo); // In AddToCache - } - protected static void RemoveFromCache(DocVersionROFstInfo docVersionROFstInfo) - { - while (_CacheList.Contains(docVersionROFstInfo)) _CacheList.Remove(docVersionROFstInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (DocVersionROFstInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.VersionID.ToString() + "_" + tmp.ROFstID.ToString())) - { - _CacheByPrimaryKey[tmp.VersionID.ToString() + "_" + tmp.ROFstID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.VersionID.ToString() + "_" + tmp.ROFstID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (DocVersionROFstInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(DocVersionROFstInfoList lst) - { - foreach (DocVersionROFstInfo item in lst) AddToCache(item); - } - protected static DocVersionROFstInfo GetCachedByPrimaryKey(int versionID, int rOFstID) - { - ConvertListToDictionary(); - string key = versionID.ToString() + "_" + 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 DocVersionROFst _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _VersionID; - [System.ComponentModel.DataObjectField(true, true)] - public int VersionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion != null) _VersionID = _MyDocVersion.VersionID; - return _VersionID; - } - } - private DocVersionInfo _MyDocVersion; - [System.ComponentModel.DataObjectField(true, true)] - public DocVersionInfo MyDocVersion - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion == null && _VersionID != 0) _MyDocVersion = DocVersionInfo.Get(_VersionID); - return _MyDocVersion; - } - } - private int _ROFstID; - [System.ComponentModel.DataObjectField(true, true)] - public int ROFstID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyROFst != null) _ROFstID = _MyROFst.ROFstID; - return _ROFstID; - } - } - private ROFstInfo _MyROFst; - [System.ComponentModel.DataObjectField(true, true)] - public ROFstInfo MyROFst - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyROFst == null && _ROFstID != 0) _MyROFst = ROFstInfo.Get(_ROFstID); - return _MyROFst; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - // TODO: Replace base DocVersionROFstInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current DocVersionROFstInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check DocVersionROFstInfo.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 DocVersionROFstInfo - protected override object GetIdValue() - { - return (_VersionID.ToString() + "." + _ROFstID.ToString()).GetHashCode(); - } - #endregion - #region Factory Methods - private static int _DocVersionROFstInfoUnique = 0; - private static int DocVersionROFstInfoUnique - { get { return ++_DocVersionROFstInfoUnique; } } - private int _MyDocVersionROFstInfoUnique = DocVersionROFstInfoUnique; - public int MyDocVersionROFstInfoUnique - { get { return _MyDocVersionROFstInfoUnique; } } - protected DocVersionROFstInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(VersionID.ToString() + "_" + ROFstID.ToString())) return; - List listDocVersionROFstInfo = _CacheByPrimaryKey[VersionID.ToString() + "_" + ROFstID.ToString()]; // Get the list of items - while (listDocVersionROFstInfo.Contains(this)) listDocVersionROFstInfo.Remove(this); // Remove the item from the list - if (listDocVersionROFstInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(VersionID.ToString() + "_" + ROFstID.ToString()); // remove the list - } - public virtual DocVersionROFst Get() - { - return _Editable = DocVersionROFst.Get(_VersionID, _ROFstID); - } - public static void Refresh(DocVersionROFst tmp) - { - string key = tmp.VersionID.ToString() + "_" + tmp.ROFstID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (DocVersionROFstInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(DocVersionROFst tmp) - { - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DocVersionROFstInfoExtension.Refresh(this); - if (_MyDocVersion != null) - { - _MyDocVersion.Dispose();// Dispose related value - _MyDocVersion = null;// Reset related value - } - if (_MyROFst != null) - { - _MyROFst.Dispose();// Dispose related value - _MyROFst = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(DocVersion myDocVersion, DocVersionDocVersionROFst tmp) - { - string key = myDocVersion.VersionID.ToString() + "_" + tmp.ROFstID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (DocVersionROFstInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(DocVersionDocVersionROFst tmp) - { - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DocVersionROFstInfoExtension.Refresh(this); - if (_MyDocVersion != null) - { - _MyDocVersion.Dispose();// Dispose related value - _MyDocVersion = null;// Reset related value - } - if (_MyROFst != null) - { - _MyROFst.Dispose();// Dispose related value - _MyROFst = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(ROFst myROFst, ROFstDocVersionROFst tmp) - { - string key = tmp.VersionID.ToString() + "_" + myROFst.ROFstID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (DocVersionROFstInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ROFstDocVersionROFst tmp) - { - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DocVersionROFstInfoExtension.Refresh(this); - if (_MyDocVersion != null) - { - _MyDocVersion.Dispose();// Dispose related value - _MyDocVersion = null;// Reset related value - } - if (_MyROFst != null) - { - _MyROFst.Dispose();// Dispose related value - _MyROFst = null;// Reset related value - } - OnChange();// raise an event - } - public static DocVersionROFstInfo Get(int versionID, int rOFstID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a DocVersionROFst"); - try - { - DocVersionROFstInfo tmp = GetCachedByPrimaryKey(versionID, rOFstID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(versionID, rOFstID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up DocVersionROFstInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionROFstInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal DocVersionROFstInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFstInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFstInfo.Constructor", ex); - throw new DbCslaException("DocVersionROFstInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _VersionID; - public int VersionID - { get { return _VersionID; } } - private int _ROFstID; - public int ROFstID - { get { return _ROFstID; } } - public PKCriteria(int versionID, int rOFstID) - { - _VersionID = versionID; - _ROFstID = rOFstID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFstInfo.ReadData", GetHashCode()); - try - { - _VersionID = dr.GetInt32("VersionID"); - _ROFstID = dr.GetInt32("ROFstID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFstInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersionROFstInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFstInfo.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 = "getDocVersionROFst"; - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - } - } - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFstInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocVersionROFstInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - DocVersionROFstInfoExtension _DocVersionROFstInfoExtension = new DocVersionROFstInfoExtension(); - [Serializable()] - partial class DocVersionROFstInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(DocVersionROFstInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class DocVersionROFstInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocVersionROFstInfo) - { - // Return the ToString value - return ((DocVersionROFstInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionROFstInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionROFstInfoList.cs deleted file mode 100644 index 913a1f55..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocVersionROFstInfoList.cs +++ /dev/null @@ -1,312 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DocVersionROFstInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocVersionROFstInfoListConverter))] - public partial class DocVersionROFstInfoList : 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 (DocVersionROFstInfo tmp in this) - { - tmp.Changed += new DocVersionROFstInfoEvent(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 (DocVersionROFstInfo tmp in this) - { - tmp.Changed -= new DocVersionROFstInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static DocVersionROFstInfoList _DocVersionROFstInfoList = null; - /// - /// Return a list of all projects. - /// - public static DocVersionROFstInfoList Get() - { - try - { - if (_DocVersionROFstInfoList != null) - return _DocVersionROFstInfoList; - DocVersionROFstInfoList tmp = DataPortal.Fetch(); - DocVersionROFstInfo.AddList(tmp); - tmp.AddEvents(); - _DocVersionROFstInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionROFstInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static DocVersionROFstInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on DocVersionROFstInfoList.Get", ex); - // } - //} - public static DocVersionROFstInfoList GetByVersionID(int versionID) - { - try - { - DocVersionROFstInfoList tmp = DataPortal.Fetch(new VersionIDCriteria(versionID)); - DocVersionROFstInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionROFstInfoList.GetByVersionID", ex); - } - } - public static DocVersionROFstInfoList GetByROFstID(int rOFstID) - { - try - { - DocVersionROFstInfoList tmp = DataPortal.Fetch(new ROFstIDCriteria(rOFstID)); - DocVersionROFstInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocVersionROFstInfoList.GetByROFstID", ex); - } - } - private DocVersionROFstInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFstInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersionROFsts"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new DocVersionROFstInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFstInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("DocVersionROFstInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class VersionIDCriteria - { - public VersionIDCriteria(int versionID) - { - _VersionID = versionID; - } - private int _VersionID; - public int VersionID - { - get { return _VersionID; } - set { _VersionID = value; } - } - } - private void DataPortal_Fetch(VersionIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFstInfoList.DataPortal_FetchVersionID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersionROFstsByVersionID"; - cm.Parameters.AddWithValue("@VersionID", criteria.VersionID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new DocVersionROFstInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFstInfoList.DataPortal_FetchVersionID", ex); - throw new DbCslaException("DocVersionROFstInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ROFstIDCriteria - { - public ROFstIDCriteria(int rOFstID) - { - _ROFstID = rOFstID; - } - private int _ROFstID; - public int ROFstID - { - get { return _ROFstID; } - set { _ROFstID = value; } - } - } - private void DataPortal_Fetch(ROFstIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocVersionROFstInfoList.DataPortal_FetchROFstID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersionROFstsByROFstID"; - cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new DocVersionROFstInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocVersionROFstInfoList.DataPortal_FetchROFstID", ex); - throw new DbCslaException("DocVersionROFstInfoList.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 - DocVersionROFstInfoListPropertyDescriptor pd = new DocVersionROFstInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class DocVersionROFstInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private DocVersionROFstInfo Item { get { return (DocVersionROFstInfo)_Item; } } - public DocVersionROFstInfoListPropertyDescriptor(DocVersionROFstInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class DocVersionROFstInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocVersionROFstInfoList) - { - // Return department and department role separated by comma. - return ((DocVersionROFstInfoList)value).Items.Count.ToString() + " DocVersionROFsts"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Document.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Document.cs deleted file mode 100644 index cb398069..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Document.cs +++ /dev/null @@ -1,1108 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Document Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocumentConverter))] - public partial class Document : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshDocuments = new List(); - private List _RefreshDocumentEntries = new List(); - private void AddToRefreshList(List refreshDocuments, List refreshDocumentEntries) - { - if (IsDirty) - refreshDocuments.Add(this); - if (_DocumentEntries != null && _DocumentEntries.IsDirty) - { - foreach (DocumentEntry tmp in _DocumentEntries) - { - if (tmp.IsDirty) refreshDocumentEntries.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshDocuments = new List(); - _RefreshDocumentEntries = new List(); - AddToRefreshList(_RefreshDocuments, _RefreshDocumentEntries); - } - private void ProcessRefreshList() - { - foreach (Document tmp in _RefreshDocuments) - { - DocumentInfo.Refresh(tmp); - } - foreach (DocumentEntry tmp in _RefreshDocumentEntries) - { - EntryInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Document document) - { - if (!_CacheList.Contains(document)) _CacheList.Add(document); // In AddToCache - } - protected static void RemoveFromCache(Document document) - { - while (_CacheList.Contains(document)) _CacheList.Remove(document); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Document tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.DocID.ToString())) - { - _CacheByPrimaryKey[tmp.DocID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.DocID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (Document tmp in remove) - RemoveFromCache(tmp); - } - protected static Document GetCachedByPrimaryKey(int docID) - { - ConvertListToDictionary(); - string key = docID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextDocID = -1; - public static int NextDocID - { - get { return _nextDocID--; } - } - private int _DocID; - [System.ComponentModel.DataObjectField(true, true)] - public int DocID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocID; - } - } - private string _LibTitle = string.Empty; - public string LibTitle - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _LibTitle; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_LibTitle != value) - { - _LibTitle = value; - PropertyHasChanged(); - } - } - } - private byte[] _DocContent; - /// - /// Actual content of a Word Document (RTF, DOC or XML Format) - /// - public byte[] DocContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocContent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DocContent != value) - { - _DocContent = value; - PropertyHasChanged(); - } - } - } - private string _DocAscii = string.Empty; - /// - /// Used for searching - /// - public string DocAscii - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocAscii; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_DocAscii != value) - { - _DocAscii = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _DocumentEntryCount = 0; - /// - /// Count of DocumentEntries for this Document - /// - public int DocumentEntryCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocumentEntryCount; - } - } - private DocumentEntries _DocumentEntries = null; - /// - /// Related Field - /// - [TypeConverter(typeof(DocumentEntriesConverter))] - public DocumentEntries DocumentEntries - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_DocumentEntryCount > 0 && _DocumentEntries == null) - _DocumentEntries = DocumentEntries.GetByDocID(DocID); - else if (_DocumentEntries == null) - _DocumentEntries = DocumentEntries.New(); - return _DocumentEntries; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_DocumentEntries == null ? false : _DocumentEntries.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_DocumentEntries == null ? true : _DocumentEntries.IsValid); } - } - // TODO: Replace base Document.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Document - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Document.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 Document - protected override object GetIdValue() - { - return _DocID; - } - #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 (_DocumentEntries != null && (hasBrokenRules = _DocumentEntries.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("LibTitle", 1024)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("DocAscii", 1073741823)); - 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"); - _DocumentExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _DocumentExtension.AddInstanceValidationRules(ValidationRules); - // 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(DocID, ""); - //AuthorizationRules.AllowRead(LibTitle, ""); - //AuthorizationRules.AllowRead(DocContent, ""); - //AuthorizationRules.AllowRead(DocAscii, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(LibTitle, ""); - //AuthorizationRules.AllowWrite(DocContent, ""); - //AuthorizationRules.AllowWrite(DocAscii, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _DocumentExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _DocumentExtension.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 += _DocumentEntryCount; - 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 _DocumentUnique = 0; - protected static int DocumentUnique - { get { return ++_DocumentUnique; } } - private int _MyDocumentUnique = DocumentUnique; - public int MyDocumentUnique - { get { return _MyDocumentUnique; } } - protected Document() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(DocID.ToString())) - { - List listDocument = _CacheByPrimaryKey[DocID.ToString()]; // Get the list of items - while (listDocument.Contains(this)) listDocument.Remove(this); // Remove the item from the list - if (listDocument.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(DocID.ToString()); // remove the list - } - } - public static Document New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Document"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Document.New", ex); - } - } - public static Document New(string libTitle, byte[] docContent, string docAscii, string config, DateTime dts, string userID) - { - Document tmp = Document.New(); - tmp.LibTitle = libTitle; - tmp.DocContent = docContent; - tmp.DocAscii = docAscii; - tmp.Config = config; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static Document MakeDocument(string libTitle, byte[] docContent, string docAscii, string config, DateTime dts, string userID) - { - Document tmp = Document.New(libTitle, docContent, docAscii, config, dts, userID); - if (tmp.IsSavable) - { - Document 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 Document New(string libTitle, byte[] docContent, string docAscii, string config) - { - Document tmp = Document.New(); - tmp.LibTitle = libTitle; - tmp.DocContent = docContent; - tmp.DocAscii = docAscii; - tmp.Config = config; - return tmp; - } - public static Document MakeDocument(string libTitle, byte[] docContent, string docAscii, string config) - { - Document tmp = Document.New(libTitle, docContent, docAscii, config); - if (tmp.IsSavable) - { - Document 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 Document Get(int docID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Document"); - try - { - Document tmp = GetCachedByPrimaryKey(docID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(docID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Document - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Document.Get", ex); - } - } - public static Document Get(SafeDataReader dr) - { - if (dr.Read()) return new Document(dr); - return null; - } - internal Document(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int docID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Document"); - try - { - DataPortal.Delete(new PKCriteria(docID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Document.Delete", ex); - } - } - public override Document Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Document"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Document"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Document"); - try - { - BuildRefreshList(); - Document document = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(document);//Refresh the item in AllList - ProcessRefreshList(); - return document; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _DocID; - public int DocID - { get { return _DocID; } } - public PKCriteria(int docID) - { - _DocID = docID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _DocID = NextDocID; - // Database Defaults - _DTS = _DocumentExtension.DefaultDTS; - _UserID = _DocumentExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Document.ReadData", GetHashCode()); - try - { - _DocID = dr.GetInt32("DocID"); - _LibTitle = dr.GetString("LibTitle"); - _DocContent = (byte[])dr.GetValue("DocContent"); - _DocAscii = dr.GetString("DocAscii"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _DocumentEntryCount = dr.GetInt32("EntryCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Document.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Document.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Document.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 = "getDocument"; - cm.Parameters.AddWithValue("@DocID", criteria.DocID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _DocumentEntries = DocumentEntries.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("Document.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Document.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("Document.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Document.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Document.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addDocument"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@LibTitle", _LibTitle); - cm.Parameters.AddWithValue("@DocContent", _DocContent); - cm.Parameters.AddWithValue("@DocAscii", _DocAscii); - 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_DocID = new SqlParameter("@newDocID", SqlDbType.Int); - param_DocID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_DocID); - 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 - _DocID = (int)cm.Parameters["@newDocID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_DocumentEntries != null) _DocumentEntries.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Document.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Document.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Document.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int docID, string libTitle, byte[] docContent, string docAscii, string config, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Document.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addDocument"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@LibTitle", libTitle); - cm.Parameters.AddWithValue("@DocContent", docContent); - cm.Parameters.AddWithValue("@DocAscii", docAscii); - 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_DocID = new SqlParameter("@newDocID", SqlDbType.Int); - param_DocID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_DocID); - 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 - docID = (int)cm.Parameters["@newDocID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Document.Add", ex); - throw new DbCslaException("Document.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}] Document.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("Document.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}] Document.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateDocument"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@DocID", _DocID); - cm.Parameters.AddWithValue("@LibTitle", _LibTitle); - cm.Parameters.AddWithValue("@DocContent", _DocContent); - cm.Parameters.AddWithValue("@DocAscii", _DocAscii); - 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 (_DocumentEntries != null) _DocumentEntries.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Document.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 = Document.Add(cn, ref _DocID, _LibTitle, _DocContent, _DocAscii, _Config, _DTS, _UserID); - else - _LastChanged = Document.Update(cn, ref _DocID, _LibTitle, _DocContent, _DocAscii, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - if (_DocumentEntries != null) _DocumentEntries.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int docID, string libTitle, byte[] docContent, string docAscii, string config, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Document.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateDocument"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@DocID", docID); - cm.Parameters.AddWithValue("@LibTitle", libTitle); - cm.Parameters.AddWithValue("@DocContent", docContent); - cm.Parameters.AddWithValue("@DocAscii", docAscii); - 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("Document.Update", ex); - throw new DbCslaException("Document.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_DocID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Document.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteDocument"; - cm.Parameters.AddWithValue("@DocID", criteria.DocID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Document.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Document.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int docID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Document.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteDocument"; - // Input PK Fields - cm.Parameters.AddWithValue("@DocID", docID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Document.Remove", ex); - throw new DbCslaException("Document.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int docID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(docID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Document.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _DocID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int docID) - { - _DocID = docID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Document.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsDocument"; - cm.Parameters.AddWithValue("@DocID", _DocID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Document.DataPortal_Execute", ex); - throw new DbCslaException("Document.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - DocumentExtension _DocumentExtension = new DocumentExtension(); - [Serializable()] - partial class DocumentExtension : 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 DocumentConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Document) - { - // Return the ToString value - return ((Document)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create DocumentExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Document -// { -// partial class DocumentExtension : 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/OldGenerated/DocumentEntries.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocumentEntries.cs deleted file mode 100644 index 4485f12d..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocumentEntries.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DocumentEntries Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocumentEntriesConverter))] - public partial class DocumentEntries : 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 DocumentEntry this[Entry myEntry] - { - get - { - foreach (DocumentEntry entry in this) - if (entry.ContentID == myEntry.ContentID) - return entry; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public DocumentEntry GetItem(Entry myEntry) - { - foreach (DocumentEntry entry in this) - if (entry.ContentID == myEntry.ContentID) - return entry; - return null; - } - public DocumentEntry Add(Entry myEntry) // One to Many - { - DocumentEntry entry = DocumentEntry.New(myEntry); - this.Add(entry); - return entry; - } - public void Remove(Entry myEntry) - { - foreach (DocumentEntry entry in this) - { - if (entry.ContentID == myEntry.ContentID) - { - Remove(entry); - break; - } - } - } - public bool Contains(Entry myEntry) - { - foreach (DocumentEntry entry in this) - if (entry.ContentID == myEntry.ContentID) - return true; - return false; - } - public bool ContainsDeleted(Entry myEntry) - { - foreach (DocumentEntry entry in DeletedList) - if (entry.ContentID == myEntry.ContentID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (DocumentEntry documentEntry in this) - if ((hasBrokenRules = documentEntry.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 DocumentEntries New() - { - return new DocumentEntries(); - } - internal static DocumentEntries Get(SafeDataReader dr) - { - return new DocumentEntries(dr); - } - public static DocumentEntries GetByDocID(int docID) - { - try - { - return DataPortal.Fetch(new DocIDCriteria(docID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocumentEntries.GetByDocID", ex); - } - } - private DocumentEntries() - { - MarkAsChild(); - } - internal DocumentEntries(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(DocumentEntry.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class DocIDCriteria - { - public DocIDCriteria(int docID) - { - _DocID = docID; - } - private int _DocID; - public int DocID - { - get { return _DocID; } - set { _DocID = value; } - } - } - private void DataPortal_Fetch(DocIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentEntries.DataPortal_FetchDocID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getEntriesByDocID"; - cm.Parameters.AddWithValue("@DocID", criteria.DocID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new DocumentEntry(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentEntries.DataPortal_FetchDocID", ex); - throw new DbCslaException("DocumentEntries.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Document document) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (DocumentEntry obj in DeletedList) - obj.DeleteSelf(document);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (DocumentEntry obj in this) - { - if (obj.IsNew) - obj.Insert(document); - else - obj.Update(document); - } - } - finally - { - this.RaiseListChangedEvents = true; - } - } - #endregion - #region ICustomTypeDescriptor impl - public String GetClassName() - { return TypeDescriptor.GetClassName(this, true); } - public AttributeCollection GetAttributes() - { return TypeDescriptor.GetAttributes(this, true); } - public String GetComponentName() - { return TypeDescriptor.GetComponentName(this, true); } - public TypeConverter GetConverter() - { return TypeDescriptor.GetConverter(this, true); } - public EventDescriptor GetDefaultEvent() - { return TypeDescriptor.GetDefaultEvent(this, true); } - public PropertyDescriptor GetDefaultProperty() - { return TypeDescriptor.GetDefaultProperty(this, true); } - public object GetEditor(Type editorBaseType) - { return TypeDescriptor.GetEditor(this, editorBaseType, true); } - public EventDescriptorCollection GetEvents(Attribute[] attributes) - { return TypeDescriptor.GetEvents(this, attributes, true); } - public EventDescriptorCollection GetEvents() - { return TypeDescriptor.GetEvents(this, true); } - public object GetPropertyOwner(PropertyDescriptor pd) - { return this; } - /// - /// Called to get the properties of this type. Returns properties with certain - /// attributes. this restriction is not implemented here. - /// - /// - /// - public PropertyDescriptorCollection GetProperties(Attribute[] attributes) - { return GetProperties(); } - /// - /// Called to get the properties of this type. - /// - /// - public PropertyDescriptorCollection GetProperties() - { - // Create a collection object to hold property descriptors - PropertyDescriptorCollection pds = new PropertyDescriptorCollection(null); - // Iterate the list - for (int i = 0; i < this.Items.Count; i++) - { - // Create a property descriptor for the item and add to the property descriptor collection - DocumentEntriesPropertyDescriptor pd = new DocumentEntriesPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class DocumentEntriesPropertyDescriptor : vlnListPropertyDescriptor - { - private DocumentEntry Item { get { return (DocumentEntry)_Item; } } - public DocumentEntriesPropertyDescriptor(DocumentEntries collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class DocumentEntriesConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocumentEntries) - { - // Return department and department role separated by comma. - return ((DocumentEntries)value).Items.Count.ToString() + " Entries"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocumentEntry.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocumentEntry.cs deleted file mode 100644 index bc29e416..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocumentEntry.cs +++ /dev/null @@ -1,457 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DocumentEntry Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocumentEntryConverter))] - public partial class DocumentEntry : 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 _ContentID; - [System.ComponentModel.DataObjectField(true, true)] - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyEntry != null) _ContentID = _MyEntry.ContentID; - return _ContentID; - } - } - private Entry _MyEntry; - [System.ComponentModel.DataObjectField(true, true)] - public Entry MyEntry - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyEntry == null && _ContentID != 0) _MyEntry = Entry.Get(_ContentID); - return _MyEntry; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _Content_Number; - } - } - private string _Content_Text = string.Empty; - public string Content_Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - 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 - { - return _Content_Type; - } - } - private int? _Content_FormatID; - public int? Content_FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_FormatID; - } - } - private string _Content_Config = string.Empty; - public string Content_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_Config; - } - } - private DateTime _Content_DTS = new DateTime(); - public DateTime Content_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_DTS; - } - } - private string _Content_UserID = string.Empty; - public string Content_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_UserID; - } - } - // TODO: Check DocumentEntry.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 DocumentEntry - protected override object GetIdValue() - { - return _ContentID; - } - // TODO: Replace base DocumentEntry.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current DocumentEntry - //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, "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(ContentID, ""); - //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 DocumentEntry New(Entry myEntry) - { - return new DocumentEntry(myEntry); - } - internal static DocumentEntry Get(SafeDataReader dr) - { - return new DocumentEntry(dr); - } - public DocumentEntry() - { - MarkAsChild(); - - _DTS = _DocumentEntryExtension.DefaultDTS; - _UserID = _DocumentEntryExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private DocumentEntry(Entry myEntry) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _DocumentEntryExtension.DefaultDTS; - _UserID = _DocumentEntryExtension.DefaultUserID; - _MyEntry = myEntry; - ValidationRules.CheckRules(); - } - internal DocumentEntry(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentEntry.FetchDR", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _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("DocumentEntry.FetchDR", ex); - throw new DbCslaException("DocumentEntry.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Document myDocument) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Entry.Add(cn, _MyEntry.MyContent, myDocument, _DTS, _UserID); - MarkOld(); - } - internal void Update(Document myDocument) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Entry.Update(cn, _MyEntry.MyContent, myDocument, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Document myDocument) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - // if we're new then don't update the database - if (this.IsNew) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - Entry.Remove(cn, _ContentID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - DocumentEntryExtension _DocumentEntryExtension = new DocumentEntryExtension(); - [Serializable()] - partial class DocumentEntryExtension : 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 DocumentEntryConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocumentEntry) - { - // Return the ToString value - return ((DocumentEntry)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create DocumentEntryExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class DocumentEntry -// { -// partial class DocumentEntryExtension : 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/OldGenerated/DocumentInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocumentInfo.cs deleted file mode 100644 index df013431..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocumentInfo.cs +++ /dev/null @@ -1,392 +0,0 @@ -// ======================================================================== -// 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 DocumentInfoEvent(object sender); - /// - /// DocumentInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocumentInfoConverter))] - public partial class DocumentInfo : ReadOnlyBase, IDisposable - { - public event DocumentInfoEvent 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(DocumentInfo documentInfo) - { - if (!_CacheList.Contains(documentInfo)) _CacheList.Add(documentInfo); // In AddToCache - } - protected static void RemoveFromCache(DocumentInfo documentInfo) - { - while (_CacheList.Contains(documentInfo)) _CacheList.Remove(documentInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (DocumentInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.DocID.ToString())) - { - _CacheByPrimaryKey[tmp.DocID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.DocID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (DocumentInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(DocumentInfoList lst) - { - foreach (DocumentInfo item in lst) AddToCache(item); - } - protected static DocumentInfo GetCachedByPrimaryKey(int docID) - { - ConvertListToDictionary(); - string key = docID.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 Document _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _DocID; - [System.ComponentModel.DataObjectField(true, true)] - public int DocID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocID; - } - } - private string _LibTitle = string.Empty; - public string LibTitle - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _LibTitle; - } - } - private byte[] _DocContent; - /// - /// Actual content of a Word Document (RTF, DOC or XML Format) - /// - public byte[] DocContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocContent; - } - } - private string _DocAscii = string.Empty; - /// - /// Used for searching - /// - public string DocAscii - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocAscii; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _DocumentEntryCount = 0; - /// - /// Count of DocumentEntries for this Document - /// - public int DocumentEntryCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocumentEntryCount; - } - } - private EntryInfoList _DocumentEntries = null; - [TypeConverter(typeof(EntryInfoListConverter))] - public EntryInfoList DocumentEntries - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_DocumentEntryCount < 0 || (_DocumentEntryCount > 0 && _DocumentEntries == null)) - _DocumentEntries = EntryInfoList.GetByDocID(_DocID); - if (_DocumentEntryCount < 0) - _DocumentEntryCount = _DocumentEntries.Count; - return _DocumentEntries; - } - } - public void RefreshDocumentEntries() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_DocID.ToString())) - foreach (DocumentInfo tmp in _CacheByPrimaryKey[_DocID.ToString()]) - tmp._DocumentEntryCount = -1; // This will cause the data to be requeried - } - // TODO: Replace base DocumentInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current DocumentInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check DocumentInfo.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 DocumentInfo - protected override object GetIdValue() - { - return _DocID; - } - #endregion - #region Factory Methods - private static int _DocumentInfoUnique = 0; - private static int DocumentInfoUnique - { get { return ++_DocumentInfoUnique; } } - private int _MyDocumentInfoUnique = DocumentInfoUnique; - public int MyDocumentInfoUnique - { get { return _MyDocumentInfoUnique; } } - protected DocumentInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(DocID.ToString())) return; - List listDocumentInfo = _CacheByPrimaryKey[DocID.ToString()]; // Get the list of items - while (listDocumentInfo.Contains(this)) listDocumentInfo.Remove(this); // Remove the item from the list - if (listDocumentInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(DocID.ToString()); // remove the list - } - public virtual Document Get() - { - return _Editable = Document.Get(_DocID); - } - public static void Refresh(Document tmp) - { - string key = tmp.DocID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (DocumentInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Document tmp) - { - _LibTitle = tmp.LibTitle; - _DocContent = tmp.DocContent; - _DocAscii = tmp.DocAscii; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _DocumentInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static DocumentInfo Get(int docID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Document"); - try - { - DocumentInfo tmp = GetCachedByPrimaryKey(docID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(docID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up DocumentInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocumentInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal DocumentInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentInfo.Constructor", ex); - throw new DbCslaException("DocumentInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _DocID; - public int DocID - { get { return _DocID; } } - public PKCriteria(int docID) - { - _DocID = docID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentInfo.ReadData", GetHashCode()); - try - { - _DocID = dr.GetInt32("DocID"); - _LibTitle = dr.GetString("LibTitle"); - _DocContent = (byte[])dr.GetValue("DocContent"); - _DocAscii = dr.GetString("DocAscii"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _DocumentEntryCount = dr.GetInt32("EntryCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("DocumentInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocumentInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentInfo.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 = "getDocument"; - cm.Parameters.AddWithValue("@DocID", criteria.DocID); - 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("DocumentInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("DocumentInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - DocumentInfoExtension _DocumentInfoExtension = new DocumentInfoExtension(); - [Serializable()] - partial class DocumentInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(DocumentInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class DocumentInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocumentInfo) - { - // Return the ToString value - return ((DocumentInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocumentInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocumentInfoList.cs deleted file mode 100644 index ff96c69d..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/DocumentInfoList.cs +++ /dev/null @@ -1,198 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// DocumentInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(DocumentInfoListConverter))] - public partial class DocumentInfoList : 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 (DocumentInfo tmp in this) - { - tmp.Changed += new DocumentInfoEvent(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 (DocumentInfo tmp in this) - { - tmp.Changed -= new DocumentInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static DocumentInfoList _DocumentInfoList = null; - /// - /// Return a list of all projects. - /// - public static DocumentInfoList Get() - { - try - { - if (_DocumentInfoList != null) - return _DocumentInfoList; - DocumentInfoList tmp = DataPortal.Fetch(); - DocumentInfo.AddList(tmp); - tmp.AddEvents(); - _DocumentInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on DocumentInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static DocumentInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on DocumentInfoList.Get", ex); - // } - //} - private DocumentInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] DocumentInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocuments"; - 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_Fetch", ex); - throw new DbCslaException("DocumentInfoList.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 - DocumentInfoListPropertyDescriptor pd = new DocumentInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class DocumentInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private DocumentInfo Item { get { return (DocumentInfo)_Item; } } - public DocumentInfoListPropertyDescriptor(DocumentInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class DocumentInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is DocumentInfoList) - { - // Return department and department role separated by comma. - return ((DocumentInfoList)value).Items.Count.ToString() + " Documents"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Entry.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Entry.cs deleted file mode 100644 index 38d96df3..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Entry.cs +++ /dev/null @@ -1,982 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Entry Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(EntryConverter))] - public partial class Entry : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshEntries = new List(); - private void AddToRefreshList(List refreshEntries) - { - if (IsDirty) - refreshEntries.Add(this); - } - private void BuildRefreshList() - { - _RefreshEntries = new List(); - AddToRefreshList(_RefreshEntries); - } - private void ProcessRefreshList() - { - foreach (Entry tmp in _RefreshEntries) - { - EntryInfo.Refresh(tmp); - if (tmp._MyDocument != null) DocumentInfo.Refresh(tmp._MyDocument); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Entry entry) - { - if (!_CacheList.Contains(entry)) _CacheList.Add(entry); // In AddToCache - } - protected static void RemoveFromCache(Entry entry) - { - while (_CacheList.Contains(entry)) _CacheList.Remove(entry); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Entry tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ContentID.ToString())) - { - _CacheByPrimaryKey[tmp.ContentID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ContentID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (Entry tmp in remove) - RemoveFromCache(tmp); - } - protected static Entry GetCachedByPrimaryKey(int contentID) - { - ConvertListToDictionary(); - string key = contentID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private int _ContentID; - [System.ComponentModel.DataObjectField(true, true)] - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private Content _MyContent; - [System.ComponentModel.DataObjectField(true, true)] - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = Content.Get(_ContentID); - return _MyContent; - } - } - private int _DocID; - public int DocID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocument != null) _DocID = _MyDocument.DocID; - return _DocID; - } - } - private Document _MyDocument; - public Document MyDocument - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocument == null && _DocID != 0) _MyDocument = Document.Get(_DocID); - return _MyDocument; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyDocument != value) - { - _MyDocument = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsDirty - { - get { return base.IsDirty || (_MyDocument == null ? false : _MyDocument.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyDocument == null ? true : _MyDocument.IsValid); } - } - // TODO: Replace base Entry.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Entry - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Entry.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 Entry - protected override object GetIdValue() - { - return _ContentID; - } - #endregion - #region ValidationRules - [NonSerialized] - private bool _CheckingBrokenRules = false; - public IVEHasBrokenRules HasBrokenRules - { - get - { - if (_CheckingBrokenRules) return null; - if ((IsDirty || !IsNew) && BrokenRulesCollection.Count > 0) return this; - try - { - _CheckingBrokenRules = true; - IVEHasBrokenRules hasBrokenRules = null; - if (_MyDocument != null && (hasBrokenRules = _MyDocument.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule(MyDocumentRequired, "MyDocument"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UserID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _EntryExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _EntryExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool MyDocumentRequired(Entry target, Csla.Validation.RuleArgs e) - { - if (target._DocID == 0 && target._MyDocument == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - // Sample data comparison validation rule - //private bool StartDateGTEndDate(object target, Csla.Validation.RuleArgs e) - //{ - // if (_started > _ended) - // { - // e.Description = "Start date can't be after end date"; - // return false; - // } - // else - // return true; - //} - #endregion - #region Authorization Rules - protected override void AddAuthorizationRules() - { - //TODO: Who can read/write which fields - //AuthorizationRules.AllowRead(ContentID, ""); - //AuthorizationRules.AllowRead(DocID, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(DocID, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _EntryExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _EntryExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _EntryUnique = 0; - protected static int EntryUnique - { get { return ++_EntryUnique; } } - private int _MyEntryUnique = EntryUnique; - public int MyEntryUnique - { get { return _MyEntryUnique; } } - protected Entry() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(ContentID.ToString())) - { - List listEntry = _CacheByPrimaryKey[ContentID.ToString()]; // Get the list of items - while (listEntry.Contains(this)) listEntry.Remove(this); // Remove the item from the list - if (listEntry.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(ContentID.ToString()); // remove the list - } - } - public static Entry New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Entry"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Entry.New", ex); - } - } - public static Entry New(Content myContent, Document myDocument) - { - Entry tmp = Entry.New(); - tmp._MyContent = myContent; - tmp.MyDocument = myDocument; - return tmp; - } - public static Entry MakeEntry(Content myContent, Document myDocument) - { - Entry tmp = Entry.New(myContent, myDocument); - if (tmp.IsSavable) - { - Entry 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 Entry New(Content myContent, Document myDocument, DateTime dts, string userID) - { - Entry tmp = Entry.New(); - tmp._MyContent = myContent; - tmp.MyDocument = myDocument; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static Entry MakeEntry(Content myContent, Document myDocument, DateTime dts, string userID) - { - Entry tmp = Entry.New(myContent, myDocument, dts, userID); - if (tmp.IsSavable) - { - Entry 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 Entry New(Content myContent) - { - Entry tmp = Entry.New(); - tmp._MyContent = myContent; - tmp.MarkClean(); - tmp.MarkAsChild(); - return tmp; - } - public static Entry Get(int contentID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Entry"); - try - { - Entry tmp = GetCachedByPrimaryKey(contentID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(contentID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Entry - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Entry.Get", ex); - } - } - public static Entry Get(SafeDataReader dr) - { - if (dr.Read()) return new Entry(dr); - return null; - } - internal Entry(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int contentID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Entry"); - try - { - DataPortal.Delete(new PKCriteria(contentID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Entry.Delete", ex); - } - } - public override Entry Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Entry"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Entry"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Entry"); - try - { - BuildRefreshList(); - Entry entry = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(entry);//Refresh the item in AllList - ProcessRefreshList(); - return entry; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - public PKCriteria(int contentID) - { - _ContentID = contentID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - - // Database Defaults - _DTS = _EntryExtension.DefaultDTS; - _UserID = _EntryExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Entry.ReadData", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _DocID = dr.GetInt32("DocID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Entry.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Entry.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Entry.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 = "getEntry"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - 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("Entry.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Entry.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("Entry.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Entry.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Entry.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyDocument != null) _MyDocument.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addEntry"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", ContentID); - cm.Parameters.AddWithValue("@DocID", DocID); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - // 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(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Entry.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Entry.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Entry.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, Content myContent, Document myDocument, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Entry.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addEntry"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - cm.Parameters.AddWithValue("@DocID", myDocument.DocID); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UserID", userID); - // 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("Entry.Add", ex); - throw new DbCslaException("Entry.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}] Entry.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("Entry.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}] Entry.SQLUpdate", GetHashCode()); - try - { - if (_MyDocument != null) _MyDocument.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateEntry"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@ContentID", ContentID); - cm.Parameters.AddWithValue("@DocID", DocID); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Entry.SQLUpdate", ex); - _ErrorMessage = ex.Message; - if (!ex.Message.EndsWith("has been edited by another user.")) throw ex; - } - } - internal void Update(Content content) - { - if (!this.IsDirty) return; - if (base.IsDirty) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (IsNew) - _LastChanged = Entry.Add(cn, content, MyDocument, _DTS, _UserID); - else - _LastChanged = Entry.Update(cn, content, MyDocument, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, Content myContent, Document myDocument, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Entry.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateEntry"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - cm.Parameters.AddWithValue("@DocID", myDocument.DocID); - 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("Entry.Update", ex); - throw new DbCslaException("Entry.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_ContentID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Entry.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteEntry"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Entry.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Entry.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int contentID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Entry.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteEntry"; - // Input PK Fields - cm.Parameters.AddWithValue("@ContentID", contentID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Entry.Remove", ex); - throw new DbCslaException("Entry.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int contentID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(contentID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Entry.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _ContentID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int contentID) - { - _ContentID = contentID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Entry.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsEntry"; - cm.Parameters.AddWithValue("@ContentID", _ContentID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Entry.DataPortal_Execute", ex); - throw new DbCslaException("Entry.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - EntryExtension _EntryExtension = new EntryExtension(); - [Serializable()] - partial class EntryExtension : 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 EntryConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Entry) - { - // Return the ToString value - return ((Entry)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create EntryExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Entry -// { -// partial class EntryExtension : 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/OldGenerated/EntryInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/EntryInfo.cs deleted file mode 100644 index f8886485..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/EntryInfo.cs +++ /dev/null @@ -1,383 +0,0 @@ -// ======================================================================== -// 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 EntryInfoEvent(object sender); - /// - /// EntryInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(EntryInfoConverter))] - public partial class EntryInfo : ReadOnlyBase, IDisposable - { - public event EntryInfoEvent 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(EntryInfo entryInfo) - { - if (!_CacheList.Contains(entryInfo)) _CacheList.Add(entryInfo); // In AddToCache - } - protected static void RemoveFromCache(EntryInfo entryInfo) - { - while (_CacheList.Contains(entryInfo)) _CacheList.Remove(entryInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (EntryInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ContentID.ToString())) - { - _CacheByPrimaryKey[tmp.ContentID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ContentID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (EntryInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(EntryInfoList lst) - { - foreach (EntryInfo item in lst) AddToCache(item); - } - protected static EntryInfo GetCachedByPrimaryKey(int contentID) - { - ConvertListToDictionary(); - string key = contentID.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 Entry _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _ContentID; - [System.ComponentModel.DataObjectField(true, true)] - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private ContentInfo _MyContent; - [System.ComponentModel.DataObjectField(true, true)] - public ContentInfo MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = ContentInfo.Get(_ContentID); - return _MyContent; - } - } - private int _DocID; - public int DocID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocument != null) _DocID = _MyDocument.DocID; - return _DocID; - } - } - private DocumentInfo _MyDocument; - public DocumentInfo MyDocument - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocument == null && _DocID != 0) _MyDocument = DocumentInfo.Get(_DocID); - return _MyDocument; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - // TODO: Replace base EntryInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current EntryInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check EntryInfo.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 EntryInfo - protected override object GetIdValue() - { - return _ContentID; - } - #endregion - #region Factory Methods - private static int _EntryInfoUnique = 0; - private static int EntryInfoUnique - { get { return ++_EntryInfoUnique; } } - private int _MyEntryInfoUnique = EntryInfoUnique; - public int MyEntryInfoUnique - { get { return _MyEntryInfoUnique; } } - protected EntryInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(ContentID.ToString())) return; - List listEntryInfo = _CacheByPrimaryKey[ContentID.ToString()]; // Get the list of items - while (listEntryInfo.Contains(this)) listEntryInfo.Remove(this); // Remove the item from the list - if (listEntryInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(ContentID.ToString()); // remove the list - } - public virtual Entry Get() - { - return _Editable = Entry.Get(_ContentID); - } - public static void Refresh(Entry tmp) - { - string key = tmp.ContentID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (EntryInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Entry tmp) - { - if (_DocID != tmp.DocID) - { - if (MyDocument != null) MyDocument.RefreshDocumentEntries(); // Update List for old value - _DocID = tmp.DocID; // Update the value - } - _MyDocument = null; // Reset list so that the next line gets a new list - if (MyDocument != null) MyDocument.RefreshDocumentEntries(); // Update List for new value - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _EntryInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - if (_MyDocument != null) - { - _MyDocument.Dispose();// Dispose related value - _MyDocument = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(DocumentEntry tmp) - { - string key = tmp.ContentID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (EntryInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(DocumentEntry tmp) - { - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _EntryInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - if (_MyDocument != null) - { - _MyDocument.Dispose();// Dispose related value - _MyDocument = null;// Reset related value - } - OnChange();// raise an event - } - public static EntryInfo Get(int contentID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Entry"); - try - { - EntryInfo tmp = GetCachedByPrimaryKey(contentID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(contentID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up EntryInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on EntryInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal EntryInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryInfo.Constructor", ex); - throw new DbCslaException("EntryInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - public PKCriteria(int contentID) - { - _ContentID = contentID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryInfo.ReadData", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _DocID = dr.GetInt32("DocID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("EntryInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryInfo.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 = "getEntry"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - 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("EntryInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("EntryInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - EntryInfoExtension _EntryInfoExtension = new EntryInfoExtension(); - [Serializable()] - partial class EntryInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(EntryInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class EntryInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is EntryInfo) - { - // Return the ToString value - return ((EntryInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/EntryInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/EntryInfoList.cs deleted file mode 100644 index 4825d65b..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/EntryInfoList.cs +++ /dev/null @@ -1,312 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// EntryInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(EntryInfoListConverter))] - public partial class EntryInfoList : 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 (EntryInfo tmp in this) - { - tmp.Changed += new EntryInfoEvent(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 (EntryInfo tmp in this) - { - tmp.Changed -= new EntryInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static EntryInfoList _EntryInfoList = null; - /// - /// Return a list of all projects. - /// - public static EntryInfoList Get() - { - try - { - if (_EntryInfoList != null) - return _EntryInfoList; - EntryInfoList tmp = DataPortal.Fetch(); - EntryInfo.AddList(tmp); - tmp.AddEvents(); - _EntryInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on EntryInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static EntryInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on EntryInfoList.Get", ex); - // } - //} - public static EntryInfoList GetByContentID(int contentID) - { - try - { - EntryInfoList tmp = DataPortal.Fetch(new ContentIDCriteria(contentID)); - EntryInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on EntryInfoList.GetByContentID", ex); - } - } - public static EntryInfoList GetByDocID(int docID) - { - try - { - EntryInfoList tmp = DataPortal.Fetch(new DocIDCriteria(docID)); - EntryInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on EntryInfoList.GetByDocID", ex); - } - } - private EntryInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getEntries"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new EntryInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("EntryInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ContentIDCriteria - { - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - private int _ContentID; - public int ContentID - { - get { return _ContentID; } - set { _ContentID = value; } - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryInfoList.DataPortal_FetchContentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getEntriesByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new EntryInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryInfoList.DataPortal_FetchContentID", ex); - throw new DbCslaException("EntryInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class DocIDCriteria - { - public DocIDCriteria(int docID) - { - _DocID = docID; - } - private int _DocID; - public int DocID - { - get { return _DocID; } - set { _DocID = value; } - } - } - private void DataPortal_Fetch(DocIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] EntryInfoList.DataPortal_FetchDocID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getEntriesByDocID"; - cm.Parameters.AddWithValue("@DocID", criteria.DocID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new EntryInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("EntryInfoList.DataPortal_FetchDocID", ex); - throw new DbCslaException("EntryInfoList.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 - EntryInfoListPropertyDescriptor pd = new EntryInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class EntryInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private EntryInfo Item { get { return (EntryInfo)_Item; } } - public EntryInfoListPropertyDescriptor(EntryInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class EntryInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is EntryInfoList) - { - // Return department and department role separated by comma. - return ((EntryInfoList)value).Items.Count.ToString() + " Entries"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Folder.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Folder.cs deleted file mode 100644 index fbf54664..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Folder.cs +++ /dev/null @@ -1,1506 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Folder Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FolderConverter))] - public partial class Folder : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshFolders = new List(); - private List _RefreshFolderAssignments = new List(); - private List _RefreshFolderDocVersions = new List(); - private void AddToRefreshList(List refreshFolders, List refreshFolderAssignments, List refreshFolderDocVersions) - { - if (IsDirty) - refreshFolders.Add(this); - if (_FolderAssignments != null && _FolderAssignments.IsDirty) - { - foreach (FolderAssignment tmp in _FolderAssignments) - { - if (tmp.IsDirty) refreshFolderAssignments.Add(tmp); - } - } - if (_FolderDocVersions != null && _FolderDocVersions.IsDirty) - { - foreach (FolderDocVersion tmp in _FolderDocVersions) - { - if (tmp.IsDirty) refreshFolderDocVersions.Add(tmp); - } - } - if (_ChildFolders != null && _ChildFolders.IsDirty) - { - foreach (Folder tmp in _ChildFolders) - { - tmp.AddToRefreshList(refreshFolders, refreshFolderAssignments, refreshFolderDocVersions); - } - } - } - private void BuildRefreshList() - { - _RefreshFolders = new List(); - _RefreshFolderAssignments = new List(); - _RefreshFolderDocVersions = new List(); - AddToRefreshList(_RefreshFolders, _RefreshFolderAssignments, _RefreshFolderDocVersions); - } - private void ProcessRefreshList() - { - foreach (Folder tmp in _RefreshFolders) - { - FolderInfo.Refresh(tmp); - if (tmp._MyConnection != null) ConnectionInfo.Refresh(tmp._MyConnection); - if (tmp._MyFormat != null) FormatInfo.Refresh(tmp._MyFormat); - } - foreach (FolderAssignment tmp in _RefreshFolderAssignments) - { - AssignmentInfo.Refresh(tmp); - } - foreach (FolderDocVersion tmp in _RefreshFolderDocVersions) - { - DocVersionInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Folder folder) - { - if (!_CacheList.Contains(folder)) _CacheList.Add(folder); // In AddToCache - } - protected static void RemoveFromCache(Folder folder) - { - while (_CacheList.Contains(folder)) _CacheList.Remove(folder); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static Dictionary> _CacheByParentID_Name = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Folder tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.FolderID.ToString())) - { - _CacheByPrimaryKey[tmp.FolderID.ToString()] = new List(); // Add new list for PrimaryKey - _CacheByParentID_Name[tmp.ParentID.ToString() + "_" + tmp.Name.ToString()] = new List(); // Add new list for ParentID_Name - } - _CacheByPrimaryKey[tmp.FolderID.ToString()].Add(tmp); // Add to Primary Key list - _CacheByParentID_Name[tmp.ParentID.ToString() + "_" + tmp.Name.ToString()].Add(tmp); // Unique Index - remove.Add(tmp); - } - foreach (Folder tmp in remove) - RemoveFromCache(tmp); - } - protected static Folder GetCachedByPrimaryKey(int folderID) - { - ConvertListToDictionary(); - string key = folderID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - protected static Folder GetCachedByParentID_Name(int parentID, string name) - { - ConvertListToDictionary(); - string key = parentID.ToString() + "_" + name.ToString(); - if (_CacheByParentID_Name.ContainsKey(key)) return _CacheByParentID_Name[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextFolderID = -1; - public static int NextFolderID - { - get { return _nextFolderID--; } - } - private int _FolderID; - [System.ComponentModel.DataObjectField(true, true)] - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FolderID; - } - } - private int _ParentID; - public int ParentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent != null) _ParentID = _MyParent.FolderID; - return _ParentID; - } - } - private Folder _MyParent; - public Folder MyParent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent == null && _ParentID != _FolderID) _MyParent = Folder.Get(_ParentID); - return _MyParent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyParent != value) - { - _MyParent = value; - PropertyHasChanged(); - } - } - } - private int _DBID; - public int DBID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyConnection != null) _DBID = _MyConnection.DBID; - return _DBID; - } - } - private Connection _MyConnection; - public Connection MyConnection - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyConnection == null && _DBID != 0) _MyConnection = Connection.Get(_DBID); - return _MyConnection; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyConnection != value) - { - _MyConnection = value; - PropertyHasChanged(); - } - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Name != value) - { - _Name = value; - PropertyHasChanged(); - } - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Title != value) - { - _Title = value; - PropertyHasChanged(); - } - } - } - private string _ShortName = string.Empty; - public string ShortName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ShortName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_ShortName != value) - { - _ShortName = value; - PropertyHasChanged(); - } - } - } - private int? _FormatID; - public int? FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat != null) _FormatID = _MyFormat.FormatID; - return _FormatID; - } - } - private Format _MyFormat; - public Format MyFormat - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat == null && _FormatID != null) _MyFormat = Format.Get((int)_FormatID); - return _MyFormat; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if ((_MyFormat == null ? _FormatID : (int?)_MyFormat.FormatID) != (value == null ? null : (int?)value.FormatID)) - { - _MyFormat = value; - _FormatID = (value == null ? null : (int?)value.FormatID); - PropertyHasChanged(); - } - } - } - private double? _ManualOrder; - public double? ManualOrder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ManualOrder; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ManualOrder != value) - { - _ManualOrder = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _FolderAssignmentCount = 0; - /// - /// Count of FolderAssignments for this Folder - /// - public int FolderAssignmentCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FolderAssignmentCount; - } - } - private FolderAssignments _FolderAssignments = null; - /// - /// Related Field - /// - [TypeConverter(typeof(FolderAssignmentsConverter))] - public FolderAssignments FolderAssignments - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_FolderAssignmentCount > 0 && _FolderAssignments == null) - _FolderAssignments = FolderAssignments.GetByFolderID(FolderID); - else if (_FolderAssignments == null) - _FolderAssignments = FolderAssignments.New(); - return _FolderAssignments; - } - } - private int _FolderDocVersionCount = 0; - /// - /// Count of FolderDocVersions for this Folder - /// - public int FolderDocVersionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FolderDocVersionCount; - } - } - private FolderDocVersions _FolderDocVersions = null; - /// - /// Related Field - /// - [TypeConverter(typeof(FolderDocVersionsConverter))] - public FolderDocVersions FolderDocVersions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_FolderDocVersionCount > 0 && _FolderDocVersions == null) - _FolderDocVersions = FolderDocVersions.GetByFolderID(FolderID); - else if (_FolderDocVersions == null) - _FolderDocVersions = FolderDocVersions.New(); - return _FolderDocVersions; - } - } - private int _ChildFolderCount = 0; - /// - /// Count of ChildFolders for this Folder - /// - public int ChildFolderCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ChildFolderCount; - } - } - private ChildFolders _ChildFolders = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ChildFoldersConverter))] - public ChildFolders ChildFolders - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ChildFolderCount > 0 && _ChildFolders == null) - _ChildFolders = ChildFolders.GetByParentID(FolderID); - else if (_ChildFolders == null) - _ChildFolders = ChildFolders.New(); - return _ChildFolders; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_FolderAssignments == null ? false : _FolderAssignments.IsDirty) || (_FolderDocVersions == null ? false : _FolderDocVersions.IsDirty) || (_ChildFolders == null ? false : _ChildFolders.IsDirty) || (_MyConnection == null ? false : _MyConnection.IsDirty) || (_MyFormat == null ? false : _MyFormat.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_FolderAssignments == null ? true : _FolderAssignments.IsValid) && (_FolderDocVersions == null ? true : _FolderDocVersions.IsValid) && (_ChildFolders == null ? true : _ChildFolders.IsValid) && (_MyConnection == null ? true : _MyConnection.IsValid) && (_MyFormat == null ? true : _MyFormat.IsValid); } - } - // TODO: Replace base Folder.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Folder - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Folder.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 Folder - protected override object GetIdValue() - { - return _FolderID; - } - #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 (_FolderAssignments != null && (hasBrokenRules = _FolderAssignments.HasBrokenRules) != null) return hasBrokenRules; - if (_FolderDocVersions != null && (hasBrokenRules = _FolderDocVersions.HasBrokenRules) != null) return hasBrokenRules; - if (_ChildFolders != null && (hasBrokenRules = _ChildFolders.HasBrokenRules) != null) return hasBrokenRules; - if (_MyConnection != null && (hasBrokenRules = _MyConnection.HasBrokenRules) != null) return hasBrokenRules; - if (_MyFormat != null && (hasBrokenRules = _MyFormat.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(MyConnectionRequired, "MyConnection"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 510)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "ShortName"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("ShortName", 20)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _FolderExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _FolderExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool MyConnectionRequired(Folder target, Csla.Validation.RuleArgs e) - { - if (target._DBID == 0 && target._MyConnection == 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(FolderID, ""); - //AuthorizationRules.AllowRead(ParentID, ""); - //AuthorizationRules.AllowRead(DBID, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowRead(ShortName, ""); - //AuthorizationRules.AllowRead(FormatID, ""); - //AuthorizationRules.AllowRead(ManualOrder, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(ParentID, ""); - //AuthorizationRules.AllowWrite(DBID, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowWrite(ShortName, ""); - //AuthorizationRules.AllowWrite(FormatID, ""); - //AuthorizationRules.AllowWrite(ManualOrder, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - _FolderExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _FolderExtension.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 += _FolderAssignmentCount; - usedByCount += _FolderDocVersionCount; - usedByCount += _ChildFolderCount; - 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 _FolderUnique = 0; - protected static int FolderUnique - { get { return ++_FolderUnique; } } - private int _MyFolderUnique = FolderUnique; - public int MyFolderUnique - { get { return _MyFolderUnique; } } - protected Folder() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(FolderID.ToString())) - { - List listFolder = _CacheByPrimaryKey[FolderID.ToString()]; // Get the list of items - while (listFolder.Contains(this)) listFolder.Remove(this); // Remove the item from the list - if (listFolder.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(FolderID.ToString()); // remove the list - } - string myKey; - myKey = null; - foreach (string key in _CacheByParentID_Name.Keys) - if (_CacheByParentID_Name[key].Contains(this)) - myKey = key; - if (myKey != null) - { - List listFolder = _CacheByParentID_Name[myKey]; // Get the list of items - listFolder.Remove(this); // Remove the item from the list - if (listFolder.Count == 0) //If there are no items left in the list - _CacheByParentID_Name.Remove(myKey); // remove the list - } - } - public static Folder New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Folder"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Folder.New", ex); - } - } - public static Folder New(Folder myParent, string name, string shortName) - { - Folder tmp = Folder.New(); - tmp.MyParent = myParent; - tmp.Name = name; - tmp.ShortName = shortName; - return tmp; - } - public static Folder New(Folder myParent, Connection myConnection, string name, string title, string shortName, Format myFormat, double? manualOrder, string config, DateTime dts, string usrID) - { - Folder tmp = Folder.New(); - tmp.MyParent = myParent; - tmp.MyConnection = myConnection; - tmp.Name = name; - tmp.Title = title; - tmp.ShortName = shortName; - tmp.MyFormat = myFormat; - tmp.ManualOrder = manualOrder; - tmp.Config = config; - tmp.DTS = dts; - tmp.UsrID = usrID; - return tmp; - } - public static Folder MakeFolder(Folder myParent, Connection myConnection, string name, string title, string shortName, Format myFormat, double? manualOrder, string config, DateTime dts, string usrID) - { - Folder tmp = Folder.New(myParent, myConnection, name, title, shortName, myFormat, manualOrder, config, dts, usrID); - if (tmp.IsSavable) - { - Folder 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 Folder New(Folder myParent, Connection myConnection, string name, string title, string shortName, Format myFormat, double? manualOrder, string config) - { - Folder tmp = Folder.New(); - tmp.MyParent = myParent; - tmp.MyConnection = myConnection; - tmp.Name = name; - tmp.Title = title; - tmp.ShortName = shortName; - tmp.MyFormat = myFormat; - tmp.ManualOrder = manualOrder; - tmp.Config = config; - return tmp; - } - public static Folder MakeFolder(Folder myParent, Connection myConnection, string name, string title, string shortName, Format myFormat, double? manualOrder, string config) - { - Folder tmp = Folder.New(myParent, myConnection, name, title, shortName, myFormat, manualOrder, config); - if (tmp.IsSavable) - { - Folder 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 Folder Get(int folderID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Folder"); - try - { - Folder tmp = GetCachedByPrimaryKey(folderID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(folderID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Folder - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Folder.Get", ex); - } - } - public static Folder GetByParentID_Name(int parentID, string name) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Folder"); - try - { - Folder tmp = GetCachedByParentID_Name(parentID, name); - if (tmp == null) - { - tmp = DataPortal.Fetch(new ParentID_NameCriteria(parentID, name)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Folder - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Folder.GetByParentID_Name", ex); - } - } - public static Folder Get(SafeDataReader dr, Folder parent) - { - if (dr.Read()) return new Folder(dr, parent); - return null; - } - internal Folder(SafeDataReader dr) - { - ReadData(dr); - } - private Folder(SafeDataReader dr, Folder parent) - { - ReadData(dr); - MarkAsChild(); - } - internal Folder(SafeDataReader dr, int parentID) - { - ReadData(dr); - MarkAsChild(); - } - public static void Delete(int folderID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Folder"); - try - { - DataPortal.Delete(new PKCriteria(folderID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Folder.Delete", ex); - } - } - public override Folder Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Folder"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Folder"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Folder"); - try - { - BuildRefreshList(); - Folder folder = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(folder);//Refresh the item in AllList - ProcessRefreshList(); - return folder; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _FolderID; - public int FolderID - { get { return _FolderID; } } - public PKCriteria(int folderID) - { - _FolderID = folderID; - } - } - [Serializable()] - private class ParentID_NameCriteria - { - private int _ParentID; - public int ParentID - { get { return _ParentID; } } - private string _Name; - public string Name - { get { return _Name; } } - public ParentID_NameCriteria(int parentID, string name) - { - _ParentID = parentID; - _Name = name; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _FolderID = NextFolderID; - // Database Defaults - _ParentID = _FolderExtension.DefaultParentID; - _DBID = _FolderExtension.DefaultDBID; - _DTS = _FolderExtension.DefaultDTS; - _UsrID = _FolderExtension.DefaultUsrID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Folder.ReadData", GetHashCode()); - try - { - _FolderID = dr.GetInt32("FolderID"); - _ParentID = dr.GetInt32("ParentID"); - _DBID = dr.GetInt32("DBID"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _ShortName = dr.GetString("ShortName"); - _FormatID = (int?)dr.GetValue("FormatID"); - _ManualOrder = (double?)dr.GetValue("ManualOrder"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _FolderAssignmentCount = dr.GetInt32("AssignmentCount"); - _FolderDocVersionCount = dr.GetInt32("DocVersionCount"); - _ChildFolderCount = dr.GetInt32("ChildCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Folder.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Folder.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Folder.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 = "getFolder"; - cm.Parameters.AddWithValue("@FolderID", criteria.FolderID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _FolderAssignments = FolderAssignments.Get(dr); - // load child objects - dr.NextResult(); - _FolderDocVersions = FolderDocVersions.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("Folder.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Folder.DataPortal_Fetch", ex); - } - } - private void DataPortal_Fetch(ParentID_NameCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Folder.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 = "getFolderByParentID_Name"; - cm.Parameters.AddWithValue("@ParentID", criteria.ParentID); - cm.Parameters.AddWithValue("@Name", criteria.Name); - 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("Folder.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Folder.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("Folder.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Folder.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Folder.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyConnection != null) _MyConnection.Update(); - if (_MyFormat != null) _MyFormat.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addFolder"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ParentID", ParentID); - cm.Parameters.AddWithValue("@DBID", DBID); - cm.Parameters.AddWithValue("@Name", _Name); - cm.Parameters.AddWithValue("@Title", _Title); - cm.Parameters.AddWithValue("@ShortName", _ShortName); - cm.Parameters.AddWithValue("@FormatID", FormatID); - cm.Parameters.AddWithValue("@ManualOrder", _ManualOrder); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - // Output Calculated Columns - SqlParameter param_FolderID = new SqlParameter("@newFolderID", SqlDbType.Int); - param_FolderID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_FolderID); - 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 - _FolderID = (int)cm.Parameters["@newFolderID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_FolderAssignments != null) _FolderAssignments.Update(this); - if (_FolderDocVersions != null) _FolderDocVersions.Update(this); - if (_ChildFolders != null) _ChildFolders.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Folder.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Folder.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Folder.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int folderID, Folder myParent, Connection myConnection, string name, string title, string shortName, Format myFormat, double? manualOrder, string config, DateTime dts, string usrID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Folder.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addFolder"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ParentID", myParent.FolderID); - cm.Parameters.AddWithValue("@DBID", myConnection.DBID); - cm.Parameters.AddWithValue("@Name", name); - cm.Parameters.AddWithValue("@Title", title); - cm.Parameters.AddWithValue("@ShortName", shortName); - if (myFormat != null) cm.Parameters.AddWithValue("@FormatID", myFormat.FormatID); - cm.Parameters.AddWithValue("@ManualOrder", manualOrder); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - // Output Calculated Columns - SqlParameter param_FolderID = new SqlParameter("@newFolderID", SqlDbType.Int); - param_FolderID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_FolderID); - 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 - folderID = (int)cm.Parameters["@newFolderID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Folder.Add", ex); - throw new DbCslaException("Folder.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}] Folder.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("Folder.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}] Folder.SQLUpdate", GetHashCode()); - try - { - if (_MyConnection != null) _MyConnection.Update(); - if (_MyFormat != null) _MyFormat.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateFolder"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@FolderID", _FolderID); - cm.Parameters.AddWithValue("@ParentID", ParentID); - cm.Parameters.AddWithValue("@DBID", DBID); - cm.Parameters.AddWithValue("@Name", _Name); - cm.Parameters.AddWithValue("@Title", _Title); - cm.Parameters.AddWithValue("@ShortName", _ShortName); - cm.Parameters.AddWithValue("@FormatID", FormatID); - cm.Parameters.AddWithValue("@ManualOrder", _ManualOrder); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - 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 (_FolderAssignments != null) _FolderAssignments.Update(this); - if (_FolderDocVersions != null) _FolderDocVersions.Update(this); - if (_ChildFolders != null) _ChildFolders.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Folder.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 = Folder.Add(cn, ref _FolderID, _MyParent, _MyConnection, _Name, _Title, _ShortName, _MyFormat, _ManualOrder, _Config, _DTS, _UsrID); - else - _LastChanged = Folder.Update(cn, ref _FolderID, _MyParent, _MyConnection, _Name, _Title, _ShortName, _MyFormat, _ManualOrder, _Config, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - if (_FolderAssignments != null) _FolderAssignments.Update(this); - if (_FolderDocVersions != null) _FolderDocVersions.Update(this); - if (_ChildFolders != null) _ChildFolders.Update(this); - } - internal void DeleteSelf(Folder folder) - { - // 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"]; - Folder.Remove(cn, _FolderID); - MarkNew(); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int folderID, Folder myParent, Connection myConnection, string name, string title, string shortName, Format myFormat, double? manualOrder, string config, DateTime dts, string usrID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Folder.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateFolder"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@FolderID", folderID); - cm.Parameters.AddWithValue("@ParentID", myParent.FolderID); - cm.Parameters.AddWithValue("@DBID", myConnection.DBID); - cm.Parameters.AddWithValue("@Name", name); - cm.Parameters.AddWithValue("@Title", title); - cm.Parameters.AddWithValue("@ShortName", shortName); - if (myFormat != null) cm.Parameters.AddWithValue("@FormatID", myFormat.FormatID); - cm.Parameters.AddWithValue("@ManualOrder", manualOrder); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - 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("Folder.Update", ex); - throw new DbCslaException("Folder.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_FolderID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Folder.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteFolder"; - cm.Parameters.AddWithValue("@FolderID", criteria.FolderID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Folder.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Folder.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int folderID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Folder.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteFolder"; - // Input PK Fields - cm.Parameters.AddWithValue("@FolderID", folderID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Folder.Remove", ex); - throw new DbCslaException("Folder.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int folderID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(folderID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Folder.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _FolderID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int folderID) - { - _FolderID = folderID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Folder.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsFolder"; - cm.Parameters.AddWithValue("@FolderID", _FolderID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Folder.DataPortal_Execute", ex); - throw new DbCslaException("Folder.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - FolderExtension _FolderExtension = new FolderExtension(); - [Serializable()] - partial class FolderExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultParentID - { - get { return 1; } - } - public virtual int DefaultDBID - { - get { return 1; } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 FolderConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Folder) - { - // Return the ToString value - return ((Folder)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create FolderExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Folder -// { -// partial class FolderExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultParentID -// { -// get { return 1; } -// } -// public virtual int DefaultDBID -// { -// get { return 1; } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/FolderAssignment.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderAssignment.cs deleted file mode 100644 index bed984bb..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderAssignment.cs +++ /dev/null @@ -1,671 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FolderAssignment Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FolderAssignmentConverter))] - public partial class FolderAssignment : 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 _AID; - [System.ComponentModel.DataObjectField(true, true)] - public int AID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAssignment != null) _AID = _MyAssignment.AID; - return _AID; - } - } - private Assignment _MyAssignment; - [System.ComponentModel.DataObjectField(true, true)] - public Assignment MyAssignment - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAssignment == null && _AID != 0) _MyAssignment = Assignment.Get(_AID); - return _MyAssignment; - } - } - private int _GID; - public int GID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup != null) _GID = _MyGroup.GID; - return _GID; - } - } - private Group _MyGroup; - public Group MyGroup - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup == null && _GID != 0) _MyGroup = Group.Get(_GID); - return _MyGroup; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyGroup != value) - { - _MyGroup = value; - PropertyHasChanged(); - } - } - } - private int _RID; - public int RID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole != null) _RID = _MyRole.RID; - return _RID; - } - } - private Role _MyRole; - public Role MyRole - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole == null && _RID != 0) _MyRole = Role.Get(_RID); - return _MyRole; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyRole != value) - { - _MyRole = value; - PropertyHasChanged(); - } - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _StartDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_StartDate != tmp.ToString()) - { - _StartDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _EndDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_EndDate != tmp.ToString()) - { - _EndDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private string _Group_GroupName = string.Empty; - public string Group_GroupName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_GroupName; - } - } - private int? _Group_GroupType; - public int? Group_GroupType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_GroupType; - } - } - private string _Group_Config = string.Empty; - public string Group_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_Config; - } - } - private DateTime _Group_DTS = new DateTime(); - public DateTime Group_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_DTS; - } - } - private string _Group_UsrID = string.Empty; - public string Group_UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_UsrID; - } - } - private string _Role_Name = string.Empty; - public string Role_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Role_Name; - } - } - private string _Role_Title = string.Empty; - public string Role_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Role_Title; - } - } - private DateTime _Role_DTS = new DateTime(); - public DateTime Role_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Role_DTS; - } - } - private string _Role_UsrID = string.Empty; - public string Role_UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Role_UsrID; - } - } - // TODO: Check FolderAssignment.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 FolderAssignment - protected override object GetIdValue() - { - return _AID; - } - // TODO: Replace base FolderAssignment.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current FolderAssignment - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyGroup == null ? false : _MyGroup.IsDirty) || (_MyRole == null ? false : _MyRole.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyGroup == null ? true : _MyGroup.IsValid) && (_MyRole == null ? true : _MyRole.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 (_MyGroup != null && (hasBrokenRules = _MyGroup.HasBrokenRules) != null) return hasBrokenRules; - if (_MyRole != null && (hasBrokenRules = _MyRole.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(MyGroupRequired, "MyGroup"); - ValidationRules.AddRule(MyRoleRequired, "MyRole"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "StartDate"); - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - // TODO: Add other validation rules - } - private static bool StartDateValid(FolderAssignment target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._StartDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool EndDateValid(FolderAssignment target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._EndDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool MyGroupRequired(FolderAssignment target, Csla.Validation.RuleArgs e) - { - if (target._GID == 0 && target._MyGroup == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - private static bool MyRoleRequired(FolderAssignment target, Csla.Validation.RuleArgs e) - { - if (target._RID == 0 && target._MyRole == 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(AID, ""); - //AuthorizationRules.AllowRead(GID, ""); - //AuthorizationRules.AllowWrite(GID, ""); - //AuthorizationRules.AllowRead(RID, ""); - //AuthorizationRules.AllowWrite(RID, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - } - 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 FolderAssignment New(Group myGroup, Role myRole) - { - return new FolderAssignment(myGroup, myRole); - } - internal static FolderAssignment Get(SafeDataReader dr) - { - return new FolderAssignment(dr); - } - public FolderAssignment() - { - MarkAsChild(); - _AID = Assignment.NextAID; - _StartDate = _FolderAssignmentExtension.DefaultStartDate; - _DTS = _FolderAssignmentExtension.DefaultDTS; - _UsrID = _FolderAssignmentExtension.DefaultUsrID; - ValidationRules.CheckRules(); - } - private FolderAssignment(Group myGroup, Role myRole) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _StartDate = _FolderAssignmentExtension.DefaultStartDate; - _DTS = _FolderAssignmentExtension.DefaultDTS; - _UsrID = _FolderAssignmentExtension.DefaultUsrID; - _MyGroup = myGroup; - _MyRole = myRole; - ValidationRules.CheckRules(); - } - internal FolderAssignment(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FolderAssignment.FetchDR", GetHashCode()); - try - { - _AID = dr.GetInt32("AID"); - _GID = dr.GetInt32("GID"); - _RID = dr.GetInt32("RID"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _Group_GroupName = dr.GetString("Group_GroupName"); - _Group_GroupType = (int?)dr.GetValue("Group_GroupType"); - _Group_Config = dr.GetString("Group_Config"); - _Group_DTS = dr.GetDateTime("Group_DTS"); - _Group_UsrID = dr.GetString("Group_UsrID"); - _Role_Name = dr.GetString("Role_Name"); - _Role_Title = dr.GetString("Role_Title"); - _Role_DTS = dr.GetDateTime("Role_DTS"); - _Role_UsrID = dr.GetString("Role_UsrID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FolderAssignment.FetchDR", ex); - throw new DbCslaException("FolderAssignment.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Folder myFolder) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Assignment.Add(cn, ref _AID, _MyGroup, _MyRole, myFolder, new SmartDate(_StartDate), new SmartDate(_EndDate), _DTS, _UsrID); - MarkOld(); - } - internal void Update(Folder myFolder) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Assignment.Update(cn, ref _AID, _MyGroup, _MyRole, myFolder, new SmartDate(_StartDate), new SmartDate(_EndDate), _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Folder myFolder) - { - // 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"]; - Assignment.Remove(cn, _AID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - FolderAssignmentExtension _FolderAssignmentExtension = new FolderAssignmentExtension(); - [Serializable()] - partial class FolderAssignmentExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 FolderAssignmentConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FolderAssignment) - { - // Return the ToString value - return ((FolderAssignment)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create FolderAssignmentExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class FolderAssignment -// { -// partial class FolderAssignmentExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual SmartDate DefaultStartDate -// { -// get { return DateTime.Now.ToShortDateString(); } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/FolderAssignments.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderAssignments.cs deleted file mode 100644 index 7184e3be..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderAssignments.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FolderAssignments Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FolderAssignmentsConverter))] - public partial class FolderAssignments : 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 FolderAssignment this[Assignment myAssignment] - { - get - { - foreach (FolderAssignment assignment in this) - if (assignment.AID == myAssignment.AID) - return assignment; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public FolderAssignment GetItem(Assignment myAssignment) - { - foreach (FolderAssignment assignment in this) - if (assignment.AID == myAssignment.AID) - return assignment; - return null; - } - public FolderAssignment Add(Group myGroup, Role myRole) // One to Many - { - FolderAssignment assignment = FolderAssignment.New(myGroup, myRole); - this.Add(assignment); - return assignment; - } - public void Remove(Assignment myAssignment) - { - foreach (FolderAssignment assignment in this) - { - if (assignment.AID == myAssignment.AID) - { - Remove(assignment); - break; - } - } - } - public bool Contains(Assignment myAssignment) - { - foreach (FolderAssignment assignment in this) - if (assignment.AID == myAssignment.AID) - return true; - return false; - } - public bool ContainsDeleted(Assignment myAssignment) - { - foreach (FolderAssignment assignment in DeletedList) - if (assignment.AID == myAssignment.AID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (FolderAssignment folderAssignment in this) - if ((hasBrokenRules = folderAssignment.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 FolderAssignments New() - { - return new FolderAssignments(); - } - internal static FolderAssignments Get(SafeDataReader dr) - { - return new FolderAssignments(dr); - } - public static FolderAssignments GetByFolderID(int folderID) - { - try - { - return DataPortal.Fetch(new FolderIDCriteria(folderID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on FolderAssignments.GetByFolderID", ex); - } - } - private FolderAssignments() - { - MarkAsChild(); - } - internal FolderAssignments(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(FolderAssignment.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FolderIDCriteria - { - public FolderIDCriteria(int folderID) - { - _FolderID = folderID; - } - private int _FolderID; - public int FolderID - { - get { return _FolderID; } - set { _FolderID = value; } - } - } - private void DataPortal_Fetch(FolderIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FolderAssignments.DataPortal_FetchFolderID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAssignmentsByFolderID"; - cm.Parameters.AddWithValue("@FolderID", criteria.FolderID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new FolderAssignment(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FolderAssignments.DataPortal_FetchFolderID", ex); - throw new DbCslaException("FolderAssignments.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Folder folder) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (FolderAssignment obj in DeletedList) - obj.DeleteSelf(folder);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (FolderAssignment obj in this) - { - if (obj.IsNew) - obj.Insert(folder); - else - obj.Update(folder); - } - } - 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 - FolderAssignmentsPropertyDescriptor pd = new FolderAssignmentsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class FolderAssignmentsPropertyDescriptor : vlnListPropertyDescriptor - { - private FolderAssignment Item { get { return (FolderAssignment)_Item; } } - public FolderAssignmentsPropertyDescriptor(FolderAssignments collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class FolderAssignmentsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FolderAssignments) - { - // Return department and department role separated by comma. - return ((FolderAssignments)value).Items.Count.ToString() + " Assignments"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderDocVersion.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderDocVersion.cs deleted file mode 100644 index 03f3908f..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderDocVersion.cs +++ /dev/null @@ -1,563 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FolderDocVersion Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FolderDocVersionConverter))] - public partial class FolderDocVersion : 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 _VersionID; - [System.ComponentModel.DataObjectField(true, true)] - public int VersionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion != null) _VersionID = _MyDocVersion.VersionID; - return _VersionID; - } - } - private DocVersion _MyDocVersion; - [System.ComponentModel.DataObjectField(true, true)] - public DocVersion MyDocVersion - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion == null && _VersionID != 0) _MyDocVersion = DocVersion.Get(_VersionID); - return _MyDocVersion; - } - } - private int _VersionType; - /// - /// 0 Working Draft, 1 Temporary, 128 Revision, 129 Approved (Greater than 127 - non editable) - /// - public int VersionType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _VersionType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_VersionType != value) - { - _VersionType = value; - PropertyHasChanged(); - } - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Name != value) - { - _Name = value; - PropertyHasChanged(); - } - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Title != value) - { - _Title = value; - PropertyHasChanged(); - } - } - } - private int? _ItemID; - public int? ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem != null) _ItemID = _MyItem.ItemID; - return _ItemID; - } - } - private Item _MyItem; - public Item MyItem - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem == null && _ItemID != null) _MyItem = Item.Get((int)_ItemID); - return _MyItem; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if ((_MyItem == null ? _ItemID : (int?)_MyItem.ItemID) != (value == null ? null : (int?)value.ItemID)) - { - _MyItem = value; - _ItemID = (value == null ? null : (int?)value.ItemID); - PropertyHasChanged(); - } - } - } - private int? _FormatID; - public int? FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat != null) _FormatID = _MyFormat.FormatID; - return _FormatID; - } - } - private Format _MyFormat; - public Format MyFormat - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat == null && _FormatID != null) _MyFormat = Format.Get((int)_FormatID); - return _MyFormat; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if ((_MyFormat == null ? _FormatID : (int?)_MyFormat.FormatID) != (value == null ? null : (int?)value.FormatID)) - { - _MyFormat = value; - _FormatID = (value == null ? null : (int?)value.FormatID); - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - // TODO: Check FolderDocVersion.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 FolderDocVersion - protected override object GetIdValue() - { - return _VersionID; - } - // TODO: Replace base FolderDocVersion.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current FolderDocVersion - //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; - if (_MyItem != null && (hasBrokenRules = _MyItem.HasBrokenRules) != null) return hasBrokenRules; - if (_MyFormat != null && (hasBrokenRules = _MyFormat.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 510)); - 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(VersionID, ""); - //AuthorizationRules.AllowRead(VersionType, ""); - //AuthorizationRules.AllowWrite(VersionType, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowRead(ItemID, ""); - //AuthorizationRules.AllowWrite(ItemID, ""); - //AuthorizationRules.AllowRead(FormatID, ""); - //AuthorizationRules.AllowWrite(FormatID, ""); - //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 FolderDocVersion New(string name) - { - return new FolderDocVersion(name); - } - internal static FolderDocVersion Get(SafeDataReader dr) - { - return new FolderDocVersion(dr); - } - public FolderDocVersion() - { - MarkAsChild(); - _VersionID = DocVersion.NextVersionID; - _VersionType = _FolderDocVersionExtension.DefaultVersionType; - _DTS = _FolderDocVersionExtension.DefaultDTS; - _UserID = _FolderDocVersionExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private FolderDocVersion(string name) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _VersionType = _FolderDocVersionExtension.DefaultVersionType; - _DTS = _FolderDocVersionExtension.DefaultDTS; - _UserID = _FolderDocVersionExtension.DefaultUserID; - _Name = name; - ValidationRules.CheckRules(); - } - internal FolderDocVersion(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FolderDocVersion.FetchDR", GetHashCode()); - try - { - _VersionID = dr.GetInt32("VersionID"); - _VersionType = dr.GetInt32("VersionType"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _ItemID = (int?)dr.GetValue("ItemID"); - _FormatID = (int?)dr.GetValue("FormatID"); - _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("FolderDocVersion.FetchDR", ex); - throw new DbCslaException("FolderDocVersion.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Folder myFolder) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = DocVersion.Add(cn, ref _VersionID, myFolder, _VersionType, _Name, _Title, _MyItem, _MyFormat, _Config, _DTS, _UserID); - MarkOld(); - } - internal void Update(Folder myFolder) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = DocVersion.Update(cn, ref _VersionID, myFolder, _VersionType, _Name, _Title, _MyItem, _MyFormat, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Folder myFolder) - { - // 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"]; - DocVersion.Remove(cn, _VersionID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - FolderDocVersionExtension _FolderDocVersionExtension = new FolderDocVersionExtension(); - [Serializable()] - partial class FolderDocVersionExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultVersionType - { - 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 FolderDocVersionConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FolderDocVersion) - { - // Return the ToString value - return ((FolderDocVersion)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create FolderDocVersionExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class FolderDocVersion -// { -// partial class FolderDocVersionExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultVersionType -// { -// 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/OldGenerated/FolderDocVersions.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderDocVersions.cs deleted file mode 100644 index 8bfbdd5c..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderDocVersions.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FolderDocVersions Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FolderDocVersionsConverter))] - public partial class FolderDocVersions : 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 FolderDocVersion this[DocVersion myDocVersion] - { - get - { - foreach (FolderDocVersion docVersion in this) - if (docVersion.VersionID == myDocVersion.VersionID) - return docVersion; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public FolderDocVersion GetItem(DocVersion myDocVersion) - { - foreach (FolderDocVersion docVersion in this) - if (docVersion.VersionID == myDocVersion.VersionID) - return docVersion; - return null; - } - public FolderDocVersion Add(string name) // One to Many - { - FolderDocVersion docVersion = FolderDocVersion.New(name); - this.Add(docVersion); - return docVersion; - } - public void Remove(DocVersion myDocVersion) - { - foreach (FolderDocVersion docVersion in this) - { - if (docVersion.VersionID == myDocVersion.VersionID) - { - Remove(docVersion); - break; - } - } - } - public bool Contains(DocVersion myDocVersion) - { - foreach (FolderDocVersion docVersion in this) - if (docVersion.VersionID == myDocVersion.VersionID) - return true; - return false; - } - public bool ContainsDeleted(DocVersion myDocVersion) - { - foreach (FolderDocVersion docVersion in DeletedList) - if (docVersion.VersionID == myDocVersion.VersionID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (FolderDocVersion folderDocVersion in this) - if ((hasBrokenRules = folderDocVersion.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 FolderDocVersions New() - { - return new FolderDocVersions(); - } - internal static FolderDocVersions Get(SafeDataReader dr) - { - return new FolderDocVersions(dr); - } - public static FolderDocVersions GetByFolderID(int folderID) - { - try - { - return DataPortal.Fetch(new FolderIDCriteria(folderID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on FolderDocVersions.GetByFolderID", ex); - } - } - private FolderDocVersions() - { - MarkAsChild(); - } - internal FolderDocVersions(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(FolderDocVersion.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FolderIDCriteria - { - public FolderIDCriteria(int folderID) - { - _FolderID = folderID; - } - private int _FolderID; - public int FolderID - { - get { return _FolderID; } - set { _FolderID = value; } - } - } - private void DataPortal_Fetch(FolderIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FolderDocVersions.DataPortal_FetchFolderID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersionsByFolderID"; - cm.Parameters.AddWithValue("@FolderID", criteria.FolderID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new FolderDocVersion(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FolderDocVersions.DataPortal_FetchFolderID", ex); - throw new DbCslaException("FolderDocVersions.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Folder folder) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (FolderDocVersion obj in DeletedList) - obj.DeleteSelf(folder);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (FolderDocVersion obj in this) - { - if (obj.IsNew) - obj.Insert(folder); - else - obj.Update(folder); - } - } - 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 - FolderDocVersionsPropertyDescriptor pd = new FolderDocVersionsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class FolderDocVersionsPropertyDescriptor : vlnListPropertyDescriptor - { - private FolderDocVersion Item { get { return (FolderDocVersion)_Item; } } - public FolderDocVersionsPropertyDescriptor(FolderDocVersions collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class FolderDocVersionsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FolderDocVersions) - { - // Return department and department role separated by comma. - return ((FolderDocVersions)value).Items.Count.ToString() + " DocVersions"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderInfo.cs deleted file mode 100644 index a8e7fd3e..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderInfo.cs +++ /dev/null @@ -1,662 +0,0 @@ -// ======================================================================== -// 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 FolderInfoEvent(object sender); - /// - /// FolderInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FolderInfoConverter))] - public partial class FolderInfo : ReadOnlyBase, IDisposable - { - public event FolderInfoEvent 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(FolderInfo folderInfo) - { - if (!_CacheList.Contains(folderInfo)) _CacheList.Add(folderInfo); // In AddToCache - } - protected static void RemoveFromCache(FolderInfo folderInfo) - { - while (_CacheList.Contains(folderInfo)) _CacheList.Remove(folderInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (FolderInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.FolderID.ToString())) - { - _CacheByPrimaryKey[tmp.FolderID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.FolderID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (FolderInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(FolderInfoList lst) - { - foreach (FolderInfo item in lst) AddToCache(item); - } - protected static FolderInfo GetCachedByPrimaryKey(int folderID) - { - ConvertListToDictionary(); - string key = folderID.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 Folder _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _FolderID; - [System.ComponentModel.DataObjectField(true, true)] - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FolderID; - } - } - private int _ParentID; - public int ParentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent != null) _ParentID = _MyParent.FolderID; - return _ParentID; - } - } - private FolderInfo _MyParent; - public FolderInfo MyParent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent == null && _ParentID != _FolderID) _MyParent = FolderInfo.Get(_ParentID); - return _MyParent; - } - } - private int _DBID; - public int DBID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyConnection != null) _DBID = _MyConnection.DBID; - return _DBID; - } - } - private ConnectionInfo _MyConnection; - public ConnectionInfo MyConnection - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyConnection == null && _DBID != 0) _MyConnection = ConnectionInfo.Get(_DBID); - return _MyConnection; - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - } - private string _ShortName = string.Empty; - public string ShortName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ShortName; - } - } - private int? _FormatID; - public int? FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat != null) _FormatID = _MyFormat.FormatID; - return _FormatID; - } - } - private FormatInfo _MyFormat; - public FormatInfo MyFormat - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat == null && _FormatID != null) _MyFormat = FormatInfo.Get((int)_FormatID); - return _MyFormat; - } - } - private double? _ManualOrder; - public double? ManualOrder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ManualOrder; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - } - private int _FolderAssignmentCount = 0; - /// - /// Count of FolderAssignments for this Folder - /// - public int FolderAssignmentCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FolderAssignmentCount; - } - } - private AssignmentInfoList _FolderAssignments = null; - [TypeConverter(typeof(AssignmentInfoListConverter))] - public AssignmentInfoList FolderAssignments - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_FolderAssignmentCount < 0 || (_FolderAssignmentCount > 0 && _FolderAssignments == null)) - _FolderAssignments = AssignmentInfoList.GetByFolderID(_FolderID); - if (_FolderAssignmentCount < 0) - _FolderAssignmentCount = _FolderAssignments.Count; - return _FolderAssignments; - } - } - public void RefreshFolderAssignments() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_FolderID.ToString())) - foreach (FolderInfo tmp in _CacheByPrimaryKey[_FolderID.ToString()]) - tmp._FolderAssignmentCount = -1; // This will cause the data to be requeried - } - private int _FolderDocVersionCount = 0; - /// - /// Count of FolderDocVersions for this Folder - /// - public int FolderDocVersionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FolderDocVersionCount; - } - } - private DocVersionInfoList _FolderDocVersions = null; - [TypeConverter(typeof(DocVersionInfoListConverter))] - public DocVersionInfoList FolderDocVersions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_FolderDocVersionCount < 0 || (_FolderDocVersionCount > 0 && _FolderDocVersions == null)) - _FolderDocVersions = DocVersionInfoList.GetByFolderID(_FolderID); - if (_FolderDocVersionCount < 0) - _FolderDocVersionCount = _FolderDocVersions.Count; - return _FolderDocVersions; - } - } - public void RefreshFolderDocVersions() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_FolderID.ToString())) - foreach (FolderInfo tmp in _CacheByPrimaryKey[_FolderID.ToString()]) - tmp._FolderDocVersionCount = -1; // This will cause the data to be requeried - } - private int _ChildFolderCount = 0; - /// - /// Count of ChildFolders for this Folder - /// - public int ChildFolderCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ChildFolderCount; - } - } - private FolderInfoList _ChildFolders = null; - [TypeConverter(typeof(FolderInfoListConverter))] - public FolderInfoList ChildFolders - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ChildFolderCount < 0 || (_ChildFolderCount > 0 && _ChildFolders == null)) - _ChildFolders = FolderInfoList.GetChildren(_FolderID); - if (_ChildFolderCount < 0) - _ChildFolderCount = _ChildFolders.Count; - return _ChildFolders; - } - } - public void RefreshChildFolders() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_FolderID.ToString())) - foreach (FolderInfo tmp in _CacheByPrimaryKey[_FolderID.ToString()]) - tmp._ChildFolderCount = -1; // This will cause the data to be requeried - } - // TODO: Replace base FolderInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current FolderInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check FolderInfo.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 FolderInfo - protected override object GetIdValue() - { - return _FolderID; - } - #endregion - #region Factory Methods - private static int _FolderInfoUnique = 0; - private static int FolderInfoUnique - { get { return ++_FolderInfoUnique; } } - private int _MyFolderInfoUnique = FolderInfoUnique; - public int MyFolderInfoUnique - { get { return _MyFolderInfoUnique; } } - protected FolderInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(FolderID.ToString())) return; - List listFolderInfo = _CacheByPrimaryKey[FolderID.ToString()]; // Get the list of items - while (listFolderInfo.Contains(this)) listFolderInfo.Remove(this); // Remove the item from the list - if (listFolderInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(FolderID.ToString()); // remove the list - } - public virtual Folder Get() - { - return _Editable = Folder.Get(_FolderID); - } - public static void Refresh(Folder tmp) - { - string key = tmp.FolderID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (FolderInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Folder tmp) - { - if (_ParentID != tmp.ParentID) - { - if (MyParent != null) MyParent.RefreshChildFolders(); // Update List for old value - _ParentID = tmp.ParentID; // Update the value - } - _MyParent = null; // Reset list so that the next line gets a new list - if (MyParent != null) MyParent.RefreshChildFolders(); // Update List for new value - if (_DBID != tmp.DBID) - { - if (MyConnection != null) MyConnection.RefreshConnectionFolders(); // Update List for old value - _DBID = tmp.DBID; // Update the value - } - _MyConnection = null; // Reset list so that the next line gets a new list - if (MyConnection != null) MyConnection.RefreshConnectionFolders(); // Update List for new value - _Name = tmp.Name; - _Title = tmp.Title; - _ShortName = tmp.ShortName; - if (_FormatID != tmp.FormatID) - { - if (MyFormat != null) MyFormat.RefreshFormatFolders(); // Update List for old value - _FormatID = tmp.FormatID; // Update the value - } - _MyFormat = null; // Reset list so that the next line gets a new list - if (MyFormat != null) MyFormat.RefreshFormatFolders(); // Update List for new value - _ManualOrder = tmp.ManualOrder; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _FolderInfoExtension.Refresh(this); - if (_MyParent != null) - { - _MyParent.Dispose();// Dispose related value - _MyParent = null;// Reset related value - } - if (_MyConnection != null) - { - _MyConnection.Dispose();// Dispose related value - _MyConnection = null;// Reset related value - } - if (_MyFormat != null) - { - _MyFormat.Dispose();// Dispose related value - _MyFormat = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(ConnectionFolder tmp) - { - string key = tmp.FolderID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (FolderInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ConnectionFolder tmp) - { - if (_ParentID != tmp.ParentID) - { - if (MyParent != null) MyParent.RefreshChildFolders(); // Update List for old value - _ParentID = tmp.ParentID; // Update the value - } - _MyParent = null; // Reset list so that the next line gets a new list - if (MyParent != null) MyParent.RefreshChildFolders(); // Update List for new value - _Name = tmp.Name; - _Title = tmp.Title; - _ShortName = tmp.ShortName; - if (_FormatID != tmp.FormatID) - { - if (MyFormat != null) MyFormat.RefreshFormatFolders(); // Update List for old value - _FormatID = tmp.FormatID; // Update the value - } - _MyFormat = null; // Reset list so that the next line gets a new list - if (MyFormat != null) MyFormat.RefreshFormatFolders(); // Update List for new value - _ManualOrder = tmp.ManualOrder; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _FolderInfoExtension.Refresh(this); - if (_MyParent != null) - { - _MyParent.Dispose();// Dispose related value - _MyParent = null;// Reset related value - } - if (_MyConnection != null) - { - _MyConnection.Dispose();// Dispose related value - _MyConnection = null;// Reset related value - } - if (_MyFormat != null) - { - _MyFormat.Dispose();// Dispose related value - _MyFormat = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(FormatFolder tmp) - { - string key = tmp.FolderID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (FolderInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(FormatFolder tmp) - { - if (_ParentID != tmp.ParentID) - { - if (MyParent != null) MyParent.RefreshChildFolders(); // Update List for old value - _ParentID = tmp.ParentID; // Update the value - } - _MyParent = null; // Reset list so that the next line gets a new list - if (MyParent != null) MyParent.RefreshChildFolders(); // Update List for new value - if (_DBID != tmp.DBID) - { - if (MyConnection != null) MyConnection.RefreshConnectionFolders(); // Update List for old value - _DBID = tmp.DBID; // Update the value - } - _MyConnection = null; // Reset list so that the next line gets a new list - if (MyConnection != null) MyConnection.RefreshConnectionFolders(); // Update List for new value - _Name = tmp.Name; - _Title = tmp.Title; - _ShortName = tmp.ShortName; - _ManualOrder = tmp.ManualOrder; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _FolderInfoExtension.Refresh(this); - if (_MyParent != null) - { - _MyParent.Dispose();// Dispose related value - _MyParent = null;// Reset related value - } - if (_MyConnection != null) - { - _MyConnection.Dispose();// Dispose related value - _MyConnection = null;// Reset related value - } - if (_MyFormat != null) - { - _MyFormat.Dispose();// Dispose related value - _MyFormat = null;// Reset related value - } - OnChange();// raise an event - } - public static FolderInfo Get(int folderID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Folder"); - try - { - FolderInfo tmp = GetCachedByPrimaryKey(folderID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(folderID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up FolderInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on FolderInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal FolderInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FolderInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FolderInfo.Constructor", ex); - throw new DbCslaException("FolderInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _FolderID; - public int FolderID - { get { return _FolderID; } } - public PKCriteria(int folderID) - { - _FolderID = folderID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FolderInfo.ReadData", GetHashCode()); - try - { - _FolderID = dr.GetInt32("FolderID"); - _ParentID = dr.GetInt32("ParentID"); - _DBID = dr.GetInt32("DBID"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _ShortName = dr.GetString("ShortName"); - _FormatID = (int?)dr.GetValue("FormatID"); - _ManualOrder = (double?)dr.GetValue("ManualOrder"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - _FolderAssignmentCount = dr.GetInt32("AssignmentCount"); - _FolderDocVersionCount = dr.GetInt32("DocVersionCount"); - _ChildFolderCount = dr.GetInt32("ChildCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FolderInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("FolderInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FolderInfo.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 = "getFolder"; - cm.Parameters.AddWithValue("@FolderID", criteria.FolderID); - 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("FolderInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("FolderInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - FolderInfoExtension _FolderInfoExtension = new FolderInfoExtension(); - [Serializable()] - partial class FolderInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(FolderInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class FolderInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FolderInfo) - { - // Return the ToString value - return ((FolderInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderInfoList.cs deleted file mode 100644 index 3239b29d..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FolderInfoList.cs +++ /dev/null @@ -1,369 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FolderInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FolderInfoListConverter))] - public partial class FolderInfoList : 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 (FolderInfo tmp in this) - { - tmp.Changed += new FolderInfoEvent(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 (FolderInfo tmp in this) - { - tmp.Changed -= new FolderInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static FolderInfoList _FolderInfoList = null; - /// - /// Return a list of all projects. - /// - public static FolderInfoList Get() - { - try - { - if (_FolderInfoList != null) - return _FolderInfoList; - FolderInfoList tmp = DataPortal.Fetch(); - FolderInfo.AddList(tmp); - tmp.AddEvents(); - _FolderInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on FolderInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static FolderInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on FolderInfoList.Get", ex); - // } - //} - public static FolderInfoList GetChildren(int parentID) - { - try - { - FolderInfoList tmp = DataPortal.Fetch(new ParentIDCriteria(parentID)); - FolderInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on FolderInfoList.GetChildren", ex); - } - } - public static FolderInfoList GetByDBID(int dbid) - { - try - { - FolderInfoList tmp = DataPortal.Fetch(new DBIDCriteria(dbid)); - FolderInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on FolderInfoList.GetByDBID", ex); - } - } - public static FolderInfoList GetByFormatID(int? formatID) - { - try - { - FolderInfoList tmp = DataPortal.Fetch(new FormatIDCriteria(formatID)); - FolderInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on FolderInfoList.GetByFormatID", ex); - } - } - private FolderInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FolderInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getFolders"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new FolderInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FolderInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("FolderInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ParentIDCriteria - { - public ParentIDCriteria(int parentID) - { - _ParentID = parentID; - } - private int _ParentID; - public int ParentID - { - get { return _ParentID; } - set { _ParentID = value; } - } - } - private void DataPortal_Fetch(ParentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FolderInfoList.DataPortal_FetchParentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getChildFolders"; - cm.Parameters.AddWithValue("@ParentID", criteria.ParentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new FolderInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FolderInfoList.DataPortal_FetchParentID", ex); - throw new DbCslaException("FolderInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class DBIDCriteria - { - public DBIDCriteria(int dbid) - { - _DBID = dbid; - } - private int _DBID; - public int DBID - { - get { return _DBID; } - set { _DBID = value; } - } - } - private void DataPortal_Fetch(DBIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FolderInfoList.DataPortal_FetchDBID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getFoldersByDBID"; - cm.Parameters.AddWithValue("@DBID", criteria.DBID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new FolderInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FolderInfoList.DataPortal_FetchDBID", ex); - throw new DbCslaException("FolderInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FormatIDCriteria - { - public FormatIDCriteria(int? formatID) - { - _FormatID = formatID; - } - private int? _FormatID; - public int? FormatID - { - get { return _FormatID; } - set { _FormatID = value; } - } - } - private void DataPortal_Fetch(FormatIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FolderInfoList.DataPortal_FetchFormatID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getFoldersByFormatID"; - cm.Parameters.AddWithValue("@FormatID", criteria.FormatID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new FolderInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FolderInfoList.DataPortal_FetchFormatID", ex); - throw new DbCslaException("FolderInfoList.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 - FolderInfoListPropertyDescriptor pd = new FolderInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class FolderInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private FolderInfo Item { get { return (FolderInfo)_Item; } } - public FolderInfoListPropertyDescriptor(FolderInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class FolderInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FolderInfoList) - { - // Return department and department role separated by comma. - return ((FolderInfoList)value).Items.Count.ToString() + " Folders"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Format.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Format.cs deleted file mode 100644 index 5cde382a..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Format.cs +++ /dev/null @@ -1,1426 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Format Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FormatConverter))] - public partial class Format : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshFormats = new List(); - private List _RefreshFormatContents = new List(); - private List _RefreshFormatDocVersions = new List(); - private List _RefreshFormatFolders = new List(); - private void AddToRefreshList(List refreshFormats, List refreshFormatContents, List refreshFormatDocVersions, List refreshFormatFolders) - { - if (IsDirty) - refreshFormats.Add(this); - if (_FormatContents != null && _FormatContents.IsDirty) - { - foreach (FormatContent tmp in _FormatContents) - { - if (tmp.IsDirty) refreshFormatContents.Add(tmp); - } - } - if (_FormatDocVersions != null && _FormatDocVersions.IsDirty) - { - foreach (FormatDocVersion tmp in _FormatDocVersions) - { - if (tmp.IsDirty) refreshFormatDocVersions.Add(tmp); - } - } - if (_FormatFolders != null && _FormatFolders.IsDirty) - { - foreach (FormatFolder tmp in _FormatFolders) - { - if (tmp.IsDirty) refreshFormatFolders.Add(tmp); - } - } - if (_ChildFormats != null && _ChildFormats.IsDirty) - { - foreach (Format tmp in _ChildFormats) - { - tmp.AddToRefreshList(refreshFormats, refreshFormatContents, refreshFormatDocVersions, refreshFormatFolders); - } - } - } - private void BuildRefreshList() - { - _RefreshFormats = new List(); - _RefreshFormatContents = new List(); - _RefreshFormatDocVersions = new List(); - _RefreshFormatFolders = new List(); - AddToRefreshList(_RefreshFormats, _RefreshFormatContents, _RefreshFormatDocVersions, _RefreshFormatFolders); - } - private void ProcessRefreshList() - { - foreach (Format tmp in _RefreshFormats) - { - FormatInfo.Refresh(tmp); - } - foreach (FormatContent tmp in _RefreshFormatContents) - { - ContentInfo.Refresh(tmp); - } - foreach (FormatDocVersion tmp in _RefreshFormatDocVersions) - { - DocVersionInfo.Refresh(tmp); - } - foreach (FormatFolder tmp in _RefreshFormatFolders) - { - FolderInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Format format) - { - if (!_CacheList.Contains(format)) _CacheList.Add(format); // In AddToCache - } - protected static void RemoveFromCache(Format format) - { - while (_CacheList.Contains(format)) _CacheList.Remove(format); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static Dictionary> _CacheByParentID_Name = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Format tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.FormatID.ToString())) - { - _CacheByPrimaryKey[tmp.FormatID.ToString()] = new List(); // Add new list for PrimaryKey - _CacheByParentID_Name[tmp.ParentID.ToString() + "_" + tmp.Name.ToString()] = new List(); // Add new list for ParentID_Name - } - _CacheByPrimaryKey[tmp.FormatID.ToString()].Add(tmp); // Add to Primary Key list - _CacheByParentID_Name[tmp.ParentID.ToString() + "_" + tmp.Name.ToString()].Add(tmp); // Unique Index - remove.Add(tmp); - } - foreach (Format tmp in remove) - RemoveFromCache(tmp); - } - protected static Format GetCachedByPrimaryKey(int formatID) - { - ConvertListToDictionary(); - string key = formatID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - protected static Format GetCachedByParentID_Name(int parentID, string name) - { - ConvertListToDictionary(); - string key = parentID.ToString() + "_" + name.ToString(); - if (_CacheByParentID_Name.ContainsKey(key)) return _CacheByParentID_Name[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextFormatID = -1; - public static int NextFormatID - { - get { return _nextFormatID--; } - } - private int _FormatID; - [System.ComponentModel.DataObjectField(true, true)] - public int FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FormatID; - } - } - private int _ParentID; - public int ParentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent != null) _ParentID = _MyParent.FormatID; - return _ParentID; - } - } - private Format _MyParent; - public Format MyParent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent == null && _ParentID != _FormatID) _MyParent = Format.Get(_ParentID); - return _MyParent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyParent != value) - { - _MyParent = value; - PropertyHasChanged(); - } - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Name != value) - { - _Name = value; - PropertyHasChanged(); - } - } - } - private string _Description = string.Empty; - public string Description - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Description; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Description != value) - { - _Description = value; - PropertyHasChanged(); - } - } - } - private string _Data = string.Empty; - public string Data - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Data; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Data != value) - { - _Data = value; - PropertyHasChanged(); - } - } - } - private string _GenMac = string.Empty; - public string GenMac - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GenMac; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_GenMac != value) - { - _GenMac = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _FormatContentCount = 0; - /// - /// Count of FormatContents for this Format - /// - public int FormatContentCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FormatContentCount; - } - } - private FormatContents _FormatContents = null; - /// - /// Related Field - /// - [TypeConverter(typeof(FormatContentsConverter))] - public FormatContents FormatContents - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_FormatContentCount > 0 && _FormatContents == null) - _FormatContents = FormatContents.GetByFormatID(FormatID); - else if (_FormatContents == null) - _FormatContents = FormatContents.New(); - return _FormatContents; - } - } - private int _FormatDocVersionCount = 0; - /// - /// Count of FormatDocVersions for this Format - /// - public int FormatDocVersionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FormatDocVersionCount; - } - } - private FormatDocVersions _FormatDocVersions = null; - /// - /// Related Field - /// - [TypeConverter(typeof(FormatDocVersionsConverter))] - public FormatDocVersions FormatDocVersions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_FormatDocVersionCount > 0 && _FormatDocVersions == null) - _FormatDocVersions = FormatDocVersions.GetByFormatID(FormatID); - else if (_FormatDocVersions == null) - _FormatDocVersions = FormatDocVersions.New(); - return _FormatDocVersions; - } - } - private int _FormatFolderCount = 0; - /// - /// Count of FormatFolders for this Format - /// - public int FormatFolderCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FormatFolderCount; - } - } - private FormatFolders _FormatFolders = null; - /// - /// Related Field - /// - [TypeConverter(typeof(FormatFoldersConverter))] - public FormatFolders FormatFolders - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_FormatFolderCount > 0 && _FormatFolders == null) - _FormatFolders = FormatFolders.GetByFormatID(FormatID); - else if (_FormatFolders == null) - _FormatFolders = FormatFolders.New(); - return _FormatFolders; - } - } - private int _ChildFormatCount = 0; - /// - /// Count of ChildFormats for this Format - /// - public int ChildFormatCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ChildFormatCount; - } - } - private ChildFormats _ChildFormats = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ChildFormatsConverter))] - public ChildFormats ChildFormats - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ChildFormatCount > 0 && _ChildFormats == null) - _ChildFormats = ChildFormats.GetByParentID(FormatID); - else if (_ChildFormats == null) - _ChildFormats = ChildFormats.New(); - return _ChildFormats; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_FormatContents == null ? false : _FormatContents.IsDirty) || (_FormatDocVersions == null ? false : _FormatDocVersions.IsDirty) || (_FormatFolders == null ? false : _FormatFolders.IsDirty) || (_ChildFormats == null ? false : _ChildFormats.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_FormatContents == null ? true : _FormatContents.IsValid) && (_FormatDocVersions == null ? true : _FormatDocVersions.IsValid) && (_FormatFolders == null ? true : _FormatFolders.IsValid) && (_ChildFormats == null ? true : _ChildFormats.IsValid); } - } - // TODO: Replace base Format.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Format - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Format.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 Format - protected override object GetIdValue() - { - return _FormatID; - } - #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 (_FormatFolders != null && (hasBrokenRules = _FormatFolders.HasBrokenRules) != null) return hasBrokenRules; - if (_FormatContents != null && (hasBrokenRules = _FormatContents.HasBrokenRules) != null) return hasBrokenRules; - if (_FormatDocVersions != null && (hasBrokenRules = _FormatDocVersions.HasBrokenRules) != null) return hasBrokenRules; - if (_ChildFormats != null && (hasBrokenRules = _ChildFormats.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 20)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Description", 250)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Data"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Data", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("GenMac", 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"); - _FormatExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _FormatExtension.AddInstanceValidationRules(ValidationRules); - // 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(FormatID, ""); - //AuthorizationRules.AllowRead(ParentID, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowRead(Description, ""); - //AuthorizationRules.AllowRead(Data, ""); - //AuthorizationRules.AllowRead(GenMac, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(ParentID, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowWrite(Description, ""); - //AuthorizationRules.AllowWrite(Data, ""); - //AuthorizationRules.AllowWrite(GenMac, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _FormatExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _FormatExtension.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 += _FormatContentCount; - usedByCount += _FormatDocVersionCount; - usedByCount += _FormatFolderCount; - usedByCount += _ChildFormatCount; - 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 _FormatUnique = 0; - protected static int FormatUnique - { get { return ++_FormatUnique; } } - private int _MyFormatUnique = FormatUnique; - public int MyFormatUnique - { get { return _MyFormatUnique; } } - protected Format() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(FormatID.ToString())) - { - List listFormat = _CacheByPrimaryKey[FormatID.ToString()]; // Get the list of items - while (listFormat.Contains(this)) listFormat.Remove(this); // Remove the item from the list - if (listFormat.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(FormatID.ToString()); // remove the list - } - string myKey; - myKey = null; - foreach (string key in _CacheByParentID_Name.Keys) - if (_CacheByParentID_Name[key].Contains(this)) - myKey = key; - if (myKey != null) - { - List listFormat = _CacheByParentID_Name[myKey]; // Get the list of items - listFormat.Remove(this); // Remove the item from the list - if (listFormat.Count == 0) //If there are no items left in the list - _CacheByParentID_Name.Remove(myKey); // remove the list - } - } - public static Format New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Format"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Format.New", ex); - } - } - public static Format New(Format myParent, string name, string data) - { - Format tmp = Format.New(); - tmp.MyParent = myParent; - tmp.Name = name; - tmp.Data = data; - return tmp; - } - public static Format New(Format myParent, string name, string description, string data, string genMac, DateTime dts, string userID) - { - Format tmp = Format.New(); - tmp.MyParent = myParent; - tmp.Name = name; - tmp.Description = description; - tmp.Data = data; - tmp.GenMac = genMac; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static Format MakeFormat(Format myParent, string name, string description, string data, string genMac, DateTime dts, string userID) - { - Format tmp = Format.New(myParent, name, description, data, genMac, dts, userID); - if (tmp.IsSavable) - { - Format 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 Format New(Format myParent, string name, string description, string data, string genMac) - { - Format tmp = Format.New(); - tmp.MyParent = myParent; - tmp.Name = name; - tmp.Description = description; - tmp.Data = data; - tmp.GenMac = genMac; - return tmp; - } - public static Format MakeFormat(Format myParent, string name, string description, string data, string genMac) - { - Format tmp = Format.New(myParent, name, description, data, genMac); - if (tmp.IsSavable) - { - Format 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 Format Get(int formatID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Format"); - try - { - Format tmp = GetCachedByPrimaryKey(formatID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(formatID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Format - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Format.Get", ex); - } - } - public static Format GetByParentID_Name(int parentID, string name) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Format"); - try - { - Format tmp = GetCachedByParentID_Name(parentID, name); - if (tmp == null) - { - tmp = DataPortal.Fetch(new ParentID_NameCriteria(parentID, name)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Format - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Format.GetByParentID_Name", ex); - } - } - public static Format Get(SafeDataReader dr, Format parent) - { - if (dr.Read()) return new Format(dr, parent); - return null; - } - internal Format(SafeDataReader dr) - { - ReadData(dr); - } - private Format(SafeDataReader dr, Format parent) - { - ReadData(dr); - MarkAsChild(); - } - internal Format(SafeDataReader dr, int parentID) - { - ReadData(dr); - MarkAsChild(); - } - public static void Delete(int formatID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Format"); - try - { - DataPortal.Delete(new PKCriteria(formatID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Format.Delete", ex); - } - } - public override Format Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Format"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Format"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Format"); - try - { - BuildRefreshList(); - Format format = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(format);//Refresh the item in AllList - ProcessRefreshList(); - return format; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _FormatID; - public int FormatID - { get { return _FormatID; } } - public PKCriteria(int formatID) - { - _FormatID = formatID; - } - } - [Serializable()] - private class ParentID_NameCriteria - { - private int _ParentID; - public int ParentID - { get { return _ParentID; } } - private string _Name; - public string Name - { get { return _Name; } } - public ParentID_NameCriteria(int parentID, string name) - { - _ParentID = parentID; - _Name = name; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _FormatID = NextFormatID; - // Database Defaults - _ParentID = _FormatExtension.DefaultParentID; - _DTS = _FormatExtension.DefaultDTS; - _UserID = _FormatExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Format.ReadData", GetHashCode()); - try - { - _FormatID = dr.GetInt32("FormatID"); - _ParentID = dr.GetInt32("ParentID"); - _Name = dr.GetString("Name"); - _Description = dr.GetString("Description"); - _Data = dr.GetString("Data"); - _GenMac = dr.GetString("GenMac"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _FormatContentCount = dr.GetInt32("ContentCount"); - _FormatDocVersionCount = dr.GetInt32("DocVersionCount"); - _FormatFolderCount = dr.GetInt32("FolderCount"); - _ChildFormatCount = dr.GetInt32("ChildCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Format.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Format.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Format.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 = "getFormat"; - cm.Parameters.AddWithValue("@FormatID", criteria.FormatID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _FormatContents = FormatContents.Get(dr); - // load child objects - dr.NextResult(); - _FormatDocVersions = FormatDocVersions.Get(dr); - // load child objects - dr.NextResult(); - _FormatFolders = FormatFolders.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("Format.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Format.DataPortal_Fetch", ex); - } - } - private void DataPortal_Fetch(ParentID_NameCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Format.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 = "getFormatByParentID_Name"; - cm.Parameters.AddWithValue("@ParentID", criteria.ParentID); - cm.Parameters.AddWithValue("@Name", criteria.Name); - 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("Format.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Format.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("Format.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Format.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Format.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addFormat"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ParentID", ParentID); - cm.Parameters.AddWithValue("@Name", _Name); - cm.Parameters.AddWithValue("@Description", _Description); - cm.Parameters.AddWithValue("@Data", _Data); - cm.Parameters.AddWithValue("@GenMac", _GenMac); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - // Output Calculated Columns - SqlParameter param_FormatID = new SqlParameter("@newFormatID", SqlDbType.Int); - param_FormatID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_FormatID); - 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 - _FormatID = (int)cm.Parameters["@newFormatID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_FormatFolders != null) _FormatFolders.Update(this); - if (_FormatContents != null) _FormatContents.Update(this); - if (_FormatDocVersions != null) _FormatDocVersions.Update(this); - if (_ChildFormats != null) _ChildFormats.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Format.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Format.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Format.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int formatID, Format myParent, string name, string description, string data, string genMac, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Format.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addFormat"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ParentID", myParent.FormatID); - cm.Parameters.AddWithValue("@Name", name); - cm.Parameters.AddWithValue("@Description", description); - cm.Parameters.AddWithValue("@Data", data); - cm.Parameters.AddWithValue("@GenMac", genMac); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UserID", userID); - // Output Calculated Columns - SqlParameter param_FormatID = new SqlParameter("@newFormatID", SqlDbType.Int); - param_FormatID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_FormatID); - 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 - formatID = (int)cm.Parameters["@newFormatID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Format.Add", ex); - throw new DbCslaException("Format.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}] Format.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("Format.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}] Format.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateFormat"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@FormatID", _FormatID); - cm.Parameters.AddWithValue("@ParentID", ParentID); - cm.Parameters.AddWithValue("@Name", _Name); - cm.Parameters.AddWithValue("@Description", _Description); - cm.Parameters.AddWithValue("@Data", _Data); - cm.Parameters.AddWithValue("@GenMac", _GenMac); - 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 (_FormatFolders != null) _FormatFolders.Update(this); - if (_FormatContents != null) _FormatContents.Update(this); - if (_FormatDocVersions != null) _FormatDocVersions.Update(this); - if (_ChildFormats != null) _ChildFormats.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Format.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 = Format.Add(cn, ref _FormatID, _MyParent, _Name, _Description, _Data, _GenMac, _DTS, _UserID); - else - _LastChanged = Format.Update(cn, ref _FormatID, _MyParent, _Name, _Description, _Data, _GenMac, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - if (_FormatFolders != null) _FormatFolders.Update(this); - if (_FormatContents != null) _FormatContents.Update(this); - if (_FormatDocVersions != null) _FormatDocVersions.Update(this); - if (_ChildFormats != null) _ChildFormats.Update(this); - } - internal void DeleteSelf(Format format) - { - // 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"]; - Format.Remove(cn, _FormatID); - MarkNew(); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int formatID, Format myParent, string name, string description, string data, string genMac, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Format.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateFormat"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@FormatID", formatID); - cm.Parameters.AddWithValue("@ParentID", myParent.FormatID); - cm.Parameters.AddWithValue("@Name", name); - cm.Parameters.AddWithValue("@Description", description); - cm.Parameters.AddWithValue("@Data", data); - cm.Parameters.AddWithValue("@GenMac", genMac); - 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("Format.Update", ex); - throw new DbCslaException("Format.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_FormatID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Format.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteFormat"; - cm.Parameters.AddWithValue("@FormatID", criteria.FormatID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Format.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Format.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int formatID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Format.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteFormat"; - // Input PK Fields - cm.Parameters.AddWithValue("@FormatID", formatID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Format.Remove", ex); - throw new DbCslaException("Format.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int formatID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(formatID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Format.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _FormatID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int formatID) - { - _FormatID = formatID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Format.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsFormat"; - cm.Parameters.AddWithValue("@FormatID", _FormatID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Format.DataPortal_Execute", ex); - throw new DbCslaException("Format.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - FormatExtension _FormatExtension = new FormatExtension(); - [Serializable()] - partial class FormatExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultParentID - { - get { return 1; } - } - 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 FormatConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Format) - { - // Return the ToString value - return ((Format)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create FormatExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Format -// { -// partial class FormatExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultParentID -// { -// get { return 1; } -// } -// 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/OldGenerated/FormatContent.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatContent.cs deleted file mode 100644 index 3a8441a6..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatContent.cs +++ /dev/null @@ -1,474 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FormatContent Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FormatContentConverter))] - public partial class FormatContent : 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 _ContentID; - [System.ComponentModel.DataObjectField(true, true)] - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private Content _MyContent; - [System.ComponentModel.DataObjectField(true, true)] - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = Content.Get(_ContentID); - return _MyContent; - } - } - private string _Number = string.Empty; - public string Number - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Number; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Number != value) - { - _Number = value; - PropertyHasChanged(); - } - } - } - private string _Text = string.Empty; - public string Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Text; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Text != value) - { - _Text = value; - PropertyHasChanged(); - } - } - } - private int? _Type; - /// - /// 0 - Procedure, 10000 - Section, 20000 Step - /// - public int? Type - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Type; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_Type != value) - { - _Type = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - // TODO: Check FormatContent.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 FormatContent - protected override object GetIdValue() - { - return _ContentID; - } - // TODO: Replace base FormatContent.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current FormatContent - //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("Number", 30)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Text", 1073741823)); - 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(ContentID, ""); - //AuthorizationRules.AllowRead(Number, ""); - //AuthorizationRules.AllowWrite(Number, ""); - //AuthorizationRules.AllowRead(Text, ""); - //AuthorizationRules.AllowWrite(Text, ""); - //AuthorizationRules.AllowRead(Type, ""); - //AuthorizationRules.AllowWrite(Type, ""); - //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 FormatContent New() - { - return new FormatContent(); - } - internal static FormatContent Get(SafeDataReader dr) - { - return new FormatContent(dr); - } - public FormatContent() - { - MarkAsChild(); - _ContentID = Content.NextContentID; - _DTS = _FormatContentExtension.DefaultDTS; - _UserID = _FormatContentExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - internal FormatContent(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FormatContent.FetchDR", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _Number = dr.GetString("Number"); - _Text = dr.GetString("Text"); - _Type = (int?)dr.GetValue("Type"); - _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("FormatContent.FetchDR", ex); - throw new DbCslaException("FormatContent.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Format myFormat) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Content.Add(cn, ref _ContentID, _Number, _Text, _Type, myFormat, _Config, _DTS, _UserID); - MarkOld(); - } - internal void Update(Format myFormat) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Content.Update(cn, ref _ContentID, _Number, _Text, _Type, myFormat, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Format myFormat) - { - // 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"]; - Content.Remove(cn, _ContentID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - FormatContentExtension _FormatContentExtension = new FormatContentExtension(); - [Serializable()] - partial class FormatContentExtension : 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 FormatContentConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FormatContent) - { - // Return the ToString value - return ((FormatContent)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create FormatContentExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class FormatContent -// { -// partial class FormatContentExtension : 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/OldGenerated/FormatContents.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatContents.cs deleted file mode 100644 index 9b957a92..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatContents.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FormatContents Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FormatContentsConverter))] - public partial class FormatContents : 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 FormatContent this[Content myContent] - { - get - { - foreach (FormatContent content in this) - if (content.ContentID == myContent.ContentID) - return content; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public FormatContent GetItem(Content myContent) - { - foreach (FormatContent content in this) - if (content.ContentID == myContent.ContentID) - return content; - return null; - } - public FormatContent Add() // One to Many - { - FormatContent content = FormatContent.New(); - this.Add(content); - return content; - } - public void Remove(Content myContent) - { - foreach (FormatContent content in this) - { - if (content.ContentID == myContent.ContentID) - { - Remove(content); - break; - } - } - } - public bool Contains(Content myContent) - { - foreach (FormatContent content in this) - if (content.ContentID == myContent.ContentID) - return true; - return false; - } - public bool ContainsDeleted(Content myContent) - { - foreach (FormatContent content in DeletedList) - if (content.ContentID == myContent.ContentID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (FormatContent formatContent in this) - if ((hasBrokenRules = formatContent.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 FormatContents New() - { - return new FormatContents(); - } - internal static FormatContents Get(SafeDataReader dr) - { - return new FormatContents(dr); - } - public static FormatContents GetByFormatID(int formatID) - { - try - { - return DataPortal.Fetch(new FormatIDCriteria(formatID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on FormatContents.GetByFormatID", ex); - } - } - private FormatContents() - { - MarkAsChild(); - } - internal FormatContents(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(FormatContent.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FormatIDCriteria - { - public FormatIDCriteria(int formatID) - { - _FormatID = formatID; - } - private int _FormatID; - public int FormatID - { - get { return _FormatID; } - set { _FormatID = value; } - } - } - private void DataPortal_Fetch(FormatIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FormatContents.DataPortal_FetchFormatID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getContentsByFormatID"; - cm.Parameters.AddWithValue("@FormatID", criteria.FormatID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new FormatContent(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FormatContents.DataPortal_FetchFormatID", ex); - throw new DbCslaException("FormatContents.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Format format) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (FormatContent obj in DeletedList) - obj.DeleteSelf(format);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (FormatContent obj in this) - { - if (obj.IsNew) - obj.Insert(format); - else - obj.Update(format); - } - } - 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 - FormatContentsPropertyDescriptor pd = new FormatContentsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class FormatContentsPropertyDescriptor : vlnListPropertyDescriptor - { - private FormatContent Item { get { return (FormatContent)_Item; } } - public FormatContentsPropertyDescriptor(FormatContents collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class FormatContentsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FormatContents) - { - // Return department and department role separated by comma. - return ((FormatContents)value).Items.Count.ToString() + " Contents"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatDocVersion.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatDocVersion.cs deleted file mode 100644 index dcb0150a..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatDocVersion.cs +++ /dev/null @@ -1,681 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FormatDocVersion Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FormatDocVersionConverter))] - public partial class FormatDocVersion : 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 _VersionID; - [System.ComponentModel.DataObjectField(true, true)] - public int VersionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion != null) _VersionID = _MyDocVersion.VersionID; - return _VersionID; - } - } - private DocVersion _MyDocVersion; - [System.ComponentModel.DataObjectField(true, true)] - public DocVersion MyDocVersion - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion == null && _VersionID != 0) _MyDocVersion = DocVersion.Get(_VersionID); - return _MyDocVersion; - } - } - private int _FolderID; - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder != null) _FolderID = _MyFolder.FolderID; - return _FolderID; - } - } - private Folder _MyFolder; - public Folder MyFolder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder == null && _FolderID != 0) _MyFolder = Folder.Get(_FolderID); - return _MyFolder; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyFolder != value) - { - _MyFolder = value; - PropertyHasChanged(); - } - } - } - private int _VersionType; - /// - /// 0 Working Draft, 1 Temporary, 128 Revision, 129 Approved (Greater than 127 - non editable) - /// - public int VersionType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _VersionType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_VersionType != value) - { - _VersionType = value; - PropertyHasChanged(); - } - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Name != value) - { - _Name = value; - PropertyHasChanged(); - } - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Title != value) - { - _Title = value; - PropertyHasChanged(); - } - } - } - private int? _ItemID; - public int? ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem != null) _ItemID = _MyItem.ItemID; - return _ItemID; - } - } - private Item _MyItem; - public Item MyItem - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem == null && _ItemID != null) _MyItem = Item.Get((int)_ItemID); - return _MyItem; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if ((_MyItem == null ? _ItemID : (int?)_MyItem.ItemID) != (value == null ? null : (int?)value.ItemID)) - { - _MyItem = value; - _ItemID = (value == null ? null : (int?)value.ItemID); - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _Folder_ParentID; - public int Folder_ParentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ParentID; - } - } - private int _Folder_DBID; - public int Folder_DBID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_DBID; - } - } - private string _Folder_Name = string.Empty; - public string Folder_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Name; - } - } - private string _Folder_Title = string.Empty; - public string Folder_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Title; - } - } - private string _Folder_ShortName = string.Empty; - public string Folder_ShortName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ShortName; - } - } - private int? _Folder_FormatID; - public int? Folder_FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_FormatID; - } - } - private double? _Folder_ManualOrder; - public double? Folder_ManualOrder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ManualOrder; - } - } - private string _Folder_Config = string.Empty; - public string Folder_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Config; - } - } - private DateTime _Folder_DTS = new DateTime(); - public DateTime Folder_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_DTS; - } - } - private string _Folder_UsrID = string.Empty; - public string Folder_UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_UsrID; - } - } - // TODO: Check FormatDocVersion.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 FormatDocVersion - protected override object GetIdValue() - { - return _VersionID; - } - // TODO: Replace base FormatDocVersion.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current FormatDocVersion - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyFolder == null ? false : _MyFolder.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyFolder == null ? true : _MyFolder.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 (_MyFolder != null && (hasBrokenRules = _MyFolder.HasBrokenRules) != null) return hasBrokenRules; - if (_MyItem != null && (hasBrokenRules = _MyItem.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(MyFolderRequired, "MyFolder"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 510)); - 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 MyFolderRequired(FormatDocVersion target, Csla.Validation.RuleArgs e) - { - if (target._FolderID == 0 && target._MyFolder == 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(VersionID, ""); - //AuthorizationRules.AllowRead(FolderID, ""); - //AuthorizationRules.AllowWrite(FolderID, ""); - //AuthorizationRules.AllowRead(VersionType, ""); - //AuthorizationRules.AllowWrite(VersionType, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowRead(ItemID, ""); - //AuthorizationRules.AllowWrite(ItemID, ""); - //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 FormatDocVersion New(Folder myFolder, string name) - { - return new FormatDocVersion(myFolder, name); - } - internal static FormatDocVersion Get(SafeDataReader dr) - { - return new FormatDocVersion(dr); - } - public FormatDocVersion() - { - MarkAsChild(); - _VersionID = DocVersion.NextVersionID; - _VersionType = _FormatDocVersionExtension.DefaultVersionType; - _DTS = _FormatDocVersionExtension.DefaultDTS; - _UserID = _FormatDocVersionExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private FormatDocVersion(Folder myFolder, string name) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _VersionType = _FormatDocVersionExtension.DefaultVersionType; - _DTS = _FormatDocVersionExtension.DefaultDTS; - _UserID = _FormatDocVersionExtension.DefaultUserID; - _MyFolder = myFolder; - _Name = name; - ValidationRules.CheckRules(); - } - internal FormatDocVersion(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FormatDocVersion.FetchDR", GetHashCode()); - try - { - _VersionID = dr.GetInt32("VersionID"); - _FolderID = dr.GetInt32("FolderID"); - _VersionType = dr.GetInt32("VersionType"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _ItemID = (int?)dr.GetValue("ItemID"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _Folder_ParentID = dr.GetInt32("Folder_ParentID"); - _Folder_DBID = dr.GetInt32("Folder_DBID"); - _Folder_Name = dr.GetString("Folder_Name"); - _Folder_Title = dr.GetString("Folder_Title"); - _Folder_ShortName = dr.GetString("Folder_ShortName"); - _Folder_FormatID = (int?)dr.GetValue("Folder_FormatID"); - _Folder_ManualOrder = (double?)dr.GetValue("Folder_ManualOrder"); - _Folder_Config = dr.GetString("Folder_Config"); - _Folder_DTS = dr.GetDateTime("Folder_DTS"); - _Folder_UsrID = dr.GetString("Folder_UsrID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FormatDocVersion.FetchDR", ex); - throw new DbCslaException("FormatDocVersion.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Format myFormat) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = DocVersion.Add(cn, ref _VersionID, _MyFolder, _VersionType, _Name, _Title, _MyItem, myFormat, _Config, _DTS, _UserID); - MarkOld(); - } - internal void Update(Format myFormat) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = DocVersion.Update(cn, ref _VersionID, _MyFolder, _VersionType, _Name, _Title, _MyItem, myFormat, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Format myFormat) - { - // 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"]; - DocVersion.Remove(cn, _VersionID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - FormatDocVersionExtension _FormatDocVersionExtension = new FormatDocVersionExtension(); - [Serializable()] - partial class FormatDocVersionExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultVersionType - { - 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 FormatDocVersionConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FormatDocVersion) - { - // Return the ToString value - return ((FormatDocVersion)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create FormatDocVersionExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class FormatDocVersion -// { -// partial class FormatDocVersionExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultVersionType -// { -// 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/OldGenerated/FormatDocVersions.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatDocVersions.cs deleted file mode 100644 index d51663f1..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatDocVersions.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FormatDocVersions Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FormatDocVersionsConverter))] - public partial class FormatDocVersions : 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 FormatDocVersion this[DocVersion myDocVersion] - { - get - { - foreach (FormatDocVersion docVersion in this) - if (docVersion.VersionID == myDocVersion.VersionID) - return docVersion; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public FormatDocVersion GetItem(DocVersion myDocVersion) - { - foreach (FormatDocVersion docVersion in this) - if (docVersion.VersionID == myDocVersion.VersionID) - return docVersion; - return null; - } - public FormatDocVersion Add(Folder myFolder, string name) // One to Many - { - FormatDocVersion docVersion = FormatDocVersion.New(myFolder, name); - this.Add(docVersion); - return docVersion; - } - public void Remove(DocVersion myDocVersion) - { - foreach (FormatDocVersion docVersion in this) - { - if (docVersion.VersionID == myDocVersion.VersionID) - { - Remove(docVersion); - break; - } - } - } - public bool Contains(DocVersion myDocVersion) - { - foreach (FormatDocVersion docVersion in this) - if (docVersion.VersionID == myDocVersion.VersionID) - return true; - return false; - } - public bool ContainsDeleted(DocVersion myDocVersion) - { - foreach (FormatDocVersion docVersion in DeletedList) - if (docVersion.VersionID == myDocVersion.VersionID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (FormatDocVersion formatDocVersion in this) - if ((hasBrokenRules = formatDocVersion.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 FormatDocVersions New() - { - return new FormatDocVersions(); - } - internal static FormatDocVersions Get(SafeDataReader dr) - { - return new FormatDocVersions(dr); - } - public static FormatDocVersions GetByFormatID(int formatID) - { - try - { - return DataPortal.Fetch(new FormatIDCriteria(formatID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on FormatDocVersions.GetByFormatID", ex); - } - } - private FormatDocVersions() - { - MarkAsChild(); - } - internal FormatDocVersions(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(FormatDocVersion.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FormatIDCriteria - { - public FormatIDCriteria(int formatID) - { - _FormatID = formatID; - } - private int _FormatID; - public int FormatID - { - get { return _FormatID; } - set { _FormatID = value; } - } - } - private void DataPortal_Fetch(FormatIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FormatDocVersions.DataPortal_FetchFormatID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersionsByFormatID"; - cm.Parameters.AddWithValue("@FormatID", criteria.FormatID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new FormatDocVersion(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FormatDocVersions.DataPortal_FetchFormatID", ex); - throw new DbCslaException("FormatDocVersions.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Format format) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (FormatDocVersion obj in DeletedList) - obj.DeleteSelf(format);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (FormatDocVersion obj in this) - { - if (obj.IsNew) - obj.Insert(format); - else - obj.Update(format); - } - } - 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 - FormatDocVersionsPropertyDescriptor pd = new FormatDocVersionsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class FormatDocVersionsPropertyDescriptor : vlnListPropertyDescriptor - { - private FormatDocVersion Item { get { return (FormatDocVersion)_Item; } } - public FormatDocVersionsPropertyDescriptor(FormatDocVersions collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class FormatDocVersionsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FormatDocVersions) - { - // Return department and department role separated by comma. - return ((FormatDocVersions)value).Items.Count.ToString() + " DocVersions"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatFolder.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatFolder.cs deleted file mode 100644 index 2fbf77be..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatFolder.cs +++ /dev/null @@ -1,698 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FormatFolder Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FormatFolderConverter))] - public partial class FormatFolder : 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 _FolderID; - [System.ComponentModel.DataObjectField(true, true)] - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder != null) _FolderID = _MyFolder.FolderID; - return _FolderID; - } - } - private Folder _MyFolder; - [System.ComponentModel.DataObjectField(true, true)] - public Folder MyFolder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder == null && _FolderID != 0) _MyFolder = Folder.Get(_FolderID); - return _MyFolder; - } - } - private int _ParentID; - public int ParentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent != null) _ParentID = _MyParent.FolderID; - return _ParentID; - } - } - private Folder _MyParent; - public Folder MyParent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent == null && _ParentID != _FolderID) _MyParent = Folder.Get(_ParentID); - return _MyParent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyParent != value) - { - _MyParent = value; - PropertyHasChanged(); - } - } - } - private int _DBID; - public int DBID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyConnection != null) _DBID = _MyConnection.DBID; - return _DBID; - } - } - private Connection _MyConnection; - public Connection MyConnection - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyConnection == null && _DBID != 0) _MyConnection = Connection.Get(_DBID); - return _MyConnection; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyConnection != value) - { - _MyConnection = value; - PropertyHasChanged(); - } - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Name != value) - { - _Name = value; - PropertyHasChanged(); - } - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Title != value) - { - _Title = value; - PropertyHasChanged(); - } - } - } - private string _ShortName = string.Empty; - public string ShortName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ShortName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_ShortName != value) - { - _ShortName = value; - PropertyHasChanged(); - } - } - } - private double? _ManualOrder; - public double? ManualOrder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ManualOrder; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ManualOrder != value) - { - _ManualOrder = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private string _Connection_Name = string.Empty; - public string Connection_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Connection_Name; - } - } - private string _Connection_Title = string.Empty; - public string Connection_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Connection_Title; - } - } - private string _Connection_ConnectionString = string.Empty; - public string Connection_ConnectionString - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Connection_ConnectionString; - } - } - private int _Connection_ServerType; - /// - /// 0 SQL Server - /// - public int Connection_ServerType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Connection_ServerType; - } - } - private string _Connection_Config = string.Empty; - public string Connection_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Connection_Config; - } - } - private DateTime _Connection_DTS = new DateTime(); - public DateTime Connection_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Connection_DTS; - } - } - private string _Connection_UsrID = string.Empty; - public string Connection_UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Connection_UsrID; - } - } - // TODO: Check FormatFolder.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 FormatFolder - protected override object GetIdValue() - { - return _FolderID; - } - // TODO: Replace base FormatFolder.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current FormatFolder - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyFolder == null ? false : _MyFolder.IsDirty) || (_MyConnection == null ? false : _MyConnection.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyFolder == null ? true : _MyFolder.IsValid) && (_MyConnection == null ? true : _MyConnection.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 (_MyFolder != null && (hasBrokenRules = _MyFolder.HasBrokenRules) != null) return hasBrokenRules; - if (_MyConnection != null && (hasBrokenRules = _MyConnection.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(MyFolderRequired, "MyFolder"); - ValidationRules.AddRule(MyConnectionRequired, "MyConnection"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 510)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "ShortName"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("ShortName", 20)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - // TODO: Add other validation rules - } - private static bool MyFolderRequired(FormatFolder target, Csla.Validation.RuleArgs e) - { - if (target._ParentID == 0 && target._MyFolder == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - private static bool MyConnectionRequired(FormatFolder target, Csla.Validation.RuleArgs e) - { - if (target._DBID == 0 && target._MyConnection == 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(FolderID, ""); - //AuthorizationRules.AllowRead(ParentID, ""); - //AuthorizationRules.AllowWrite(ParentID, ""); - //AuthorizationRules.AllowRead(DBID, ""); - //AuthorizationRules.AllowWrite(DBID, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowRead(ShortName, ""); - //AuthorizationRules.AllowWrite(ShortName, ""); - //AuthorizationRules.AllowRead(ManualOrder, ""); - //AuthorizationRules.AllowWrite(ManualOrder, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - } - 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 FormatFolder New(Folder myParent, string name, string shortName) - { - return new FormatFolder(myParent, name, shortName); - } - internal static FormatFolder Get(SafeDataReader dr) - { - return new FormatFolder(dr); - } - public FormatFolder() - { - MarkAsChild(); - _FolderID = Folder.NextFolderID; - _ParentID = _FormatFolderExtension.DefaultParentID; - _DBID = _FormatFolderExtension.DefaultDBID; - _DTS = _FormatFolderExtension.DefaultDTS; - _UsrID = _FormatFolderExtension.DefaultUsrID; - ValidationRules.CheckRules(); - } - private FormatFolder(Folder myParent, string name, string shortName) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _ParentID = _FormatFolderExtension.DefaultParentID; - _DBID = _FormatFolderExtension.DefaultDBID; - _DTS = _FormatFolderExtension.DefaultDTS; - _UsrID = _FormatFolderExtension.DefaultUsrID; - _MyParent = myParent; - _Name = name; - _ShortName = shortName; - ValidationRules.CheckRules(); - } - internal FormatFolder(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FormatFolder.FetchDR", GetHashCode()); - try - { - _FolderID = dr.GetInt32("FolderID"); - _ParentID = dr.GetInt32("ParentID"); - _DBID = dr.GetInt32("DBID"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _ShortName = dr.GetString("ShortName"); - _ManualOrder = (double?)dr.GetValue("ManualOrder"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _Connection_Name = dr.GetString("Connection_Name"); - _Connection_Title = dr.GetString("Connection_Title"); - _Connection_ConnectionString = dr.GetString("Connection_ConnectionString"); - _Connection_ServerType = dr.GetInt32("Connection_ServerType"); - _Connection_Config = dr.GetString("Connection_Config"); - _Connection_DTS = dr.GetDateTime("Connection_DTS"); - _Connection_UsrID = dr.GetString("Connection_UsrID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FormatFolder.FetchDR", ex); - throw new DbCslaException("FormatFolder.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Format myFormat) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Folder.Add(cn, ref _FolderID, Folder.Get(_ParentID), _MyConnection, _Name, _Title, _ShortName, myFormat, _ManualOrder, _Config, _DTS, _UsrID); - MarkOld(); - } - internal void Update(Format myFormat) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Folder.Update(cn, ref _FolderID, Folder.Get(_ParentID), _MyConnection, _Name, _Title, _ShortName, myFormat, _ManualOrder, _Config, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Format myFormat) - { - // 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"]; - Folder.Remove(cn, _FolderID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - FormatFolderExtension _FormatFolderExtension = new FormatFolderExtension(); - [Serializable()] - partial class FormatFolderExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultParentID - { - get { return 1; } - } - public virtual int DefaultDBID - { - get { return 1; } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 FormatFolderConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FormatFolder) - { - // Return the ToString value - return ((FormatFolder)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create FormatFolderExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class FormatFolder -// { -// partial class FormatFolderExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultParentID -// { -// get { return 1; } -// } -// public virtual int DefaultDBID -// { -// get { return 1; } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/FormatFolders.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatFolders.cs deleted file mode 100644 index e7eae2c4..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatFolders.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FormatFolders Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FormatFoldersConverter))] - public partial class FormatFolders : 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 FormatFolder this[Folder myFolder] - { - get - { - foreach (FormatFolder folder in this) - if (folder.FolderID == myFolder.FolderID) - return folder; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public FormatFolder GetItem(Folder myFolder) - { - foreach (FormatFolder folder in this) - if (folder.FolderID == myFolder.FolderID) - return folder; - return null; - } - public FormatFolder Add(Folder myParent, string name, string shortName) // One to Many - { - FormatFolder folder = FormatFolder.New(myParent, name, shortName); - this.Add(folder); - return folder; - } - public void Remove(Folder myFolder) - { - foreach (FormatFolder folder in this) - { - if (folder.FolderID == myFolder.FolderID) - { - Remove(folder); - break; - } - } - } - public bool Contains(Folder myFolder) - { - foreach (FormatFolder folder in this) - if (folder.FolderID == myFolder.FolderID) - return true; - return false; - } - public bool ContainsDeleted(Folder myFolder) - { - foreach (FormatFolder folder in DeletedList) - if (folder.FolderID == myFolder.FolderID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (FormatFolder formatFolder in this) - if ((hasBrokenRules = formatFolder.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 FormatFolders New() - { - return new FormatFolders(); - } - internal static FormatFolders Get(SafeDataReader dr) - { - return new FormatFolders(dr); - } - public static FormatFolders GetByFormatID(int formatID) - { - try - { - return DataPortal.Fetch(new FormatIDCriteria(formatID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on FormatFolders.GetByFormatID", ex); - } - } - private FormatFolders() - { - MarkAsChild(); - } - internal FormatFolders(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(FormatFolder.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FormatIDCriteria - { - public FormatIDCriteria(int formatID) - { - _FormatID = formatID; - } - private int _FormatID; - public int FormatID - { - get { return _FormatID; } - set { _FormatID = value; } - } - } - private void DataPortal_Fetch(FormatIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FormatFolders.DataPortal_FetchFormatID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getFoldersByFormatID"; - cm.Parameters.AddWithValue("@FormatID", criteria.FormatID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new FormatFolder(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FormatFolders.DataPortal_FetchFormatID", ex); - throw new DbCslaException("FormatFolders.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Format format) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (FormatFolder obj in DeletedList) - obj.DeleteSelf(format);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (FormatFolder obj in this) - { - if (obj.IsNew) - obj.Insert(format); - else - obj.Update(format); - } - } - 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 - FormatFoldersPropertyDescriptor pd = new FormatFoldersPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class FormatFoldersPropertyDescriptor : vlnListPropertyDescriptor - { - private FormatFolder Item { get { return (FormatFolder)_Item; } } - public FormatFoldersPropertyDescriptor(FormatFolders collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class FormatFoldersConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FormatFolders) - { - // Return department and department role separated by comma. - return ((FormatFolders)value).Items.Count.ToString() + " Folders"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatInfo.cs deleted file mode 100644 index d620ce93..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatInfo.cs +++ /dev/null @@ -1,521 +0,0 @@ -// ======================================================================== -// 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 FormatInfoEvent(object sender); - /// - /// FormatInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FormatInfoConverter))] - public partial class FormatInfo : ReadOnlyBase, IDisposable - { - public event FormatInfoEvent 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(FormatInfo formatInfo) - { - if (!_CacheList.Contains(formatInfo)) _CacheList.Add(formatInfo); // In AddToCache - } - protected static void RemoveFromCache(FormatInfo formatInfo) - { - while (_CacheList.Contains(formatInfo)) _CacheList.Remove(formatInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (FormatInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.FormatID.ToString())) - { - _CacheByPrimaryKey[tmp.FormatID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.FormatID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (FormatInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(FormatInfoList lst) - { - foreach (FormatInfo item in lst) AddToCache(item); - } - protected static FormatInfo GetCachedByPrimaryKey(int formatID) - { - ConvertListToDictionary(); - string key = formatID.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 Format _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _FormatID; - [System.ComponentModel.DataObjectField(true, true)] - public int FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FormatID; - } - } - private int _ParentID; - public int ParentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent != null) _ParentID = _MyParent.FormatID; - return _ParentID; - } - } - private FormatInfo _MyParent; - public FormatInfo MyParent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyParent == null && _ParentID != _FormatID) _MyParent = FormatInfo.Get(_ParentID); - return _MyParent; - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - } - private string _Description = string.Empty; - public string Description - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Description; - } - } - private string _Data = string.Empty; - public string Data - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Data; - } - } - private string _GenMac = string.Empty; - public string GenMac - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GenMac; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _FormatContentCount = 0; - /// - /// Count of FormatContents for this Format - /// - public int FormatContentCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FormatContentCount; - } - } - private ContentInfoList _FormatContents = null; - [TypeConverter(typeof(ContentInfoListConverter))] - public ContentInfoList FormatContents - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_FormatContentCount < 0 || (_FormatContentCount > 0 && _FormatContents == null)) - _FormatContents = ContentInfoList.GetByFormatID(_FormatID); - if (_FormatContentCount < 0) - _FormatContentCount = _FormatContents.Count; - return _FormatContents; - } - } - public void RefreshFormatContents() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_FormatID.ToString())) - foreach (FormatInfo tmp in _CacheByPrimaryKey[_FormatID.ToString()]) - tmp._FormatContentCount = -1; // This will cause the data to be requeried - } - private int _FormatDocVersionCount = 0; - /// - /// Count of FormatDocVersions for this Format - /// - public int FormatDocVersionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FormatDocVersionCount; - } - } - private DocVersionInfoList _FormatDocVersions = null; - [TypeConverter(typeof(DocVersionInfoListConverter))] - public DocVersionInfoList FormatDocVersions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_FormatDocVersionCount < 0 || (_FormatDocVersionCount > 0 && _FormatDocVersions == null)) - _FormatDocVersions = DocVersionInfoList.GetByFormatID(_FormatID); - if (_FormatDocVersionCount < 0) - _FormatDocVersionCount = _FormatDocVersions.Count; - return _FormatDocVersions; - } - } - public void RefreshFormatDocVersions() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_FormatID.ToString())) - foreach (FormatInfo tmp in _CacheByPrimaryKey[_FormatID.ToString()]) - tmp._FormatDocVersionCount = -1; // This will cause the data to be requeried - } - private int _FormatFolderCount = 0; - /// - /// Count of FormatFolders for this Format - /// - public int FormatFolderCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FormatFolderCount; - } - } - private FolderInfoList _FormatFolders = null; - [TypeConverter(typeof(FolderInfoListConverter))] - public FolderInfoList FormatFolders - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_FormatFolderCount < 0 || (_FormatFolderCount > 0 && _FormatFolders == null)) - _FormatFolders = FolderInfoList.GetByFormatID(_FormatID); - if (_FormatFolderCount < 0) - _FormatFolderCount = _FormatFolders.Count; - return _FormatFolders; - } - } - public void RefreshFormatFolders() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_FormatID.ToString())) - foreach (FormatInfo tmp in _CacheByPrimaryKey[_FormatID.ToString()]) - tmp._FormatFolderCount = -1; // This will cause the data to be requeried - } - private int _ChildFormatCount = 0; - /// - /// Count of ChildFormats for this Format - /// - public int ChildFormatCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ChildFormatCount; - } - } - private FormatInfoList _ChildFormats = null; - [TypeConverter(typeof(FormatInfoListConverter))] - public FormatInfoList ChildFormats - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ChildFormatCount < 0 || (_ChildFormatCount > 0 && _ChildFormats == null)) - _ChildFormats = FormatInfoList.GetChildren(_FormatID); - if (_ChildFormatCount < 0) - _ChildFormatCount = _ChildFormats.Count; - return _ChildFormats; - } - } - public void RefreshChildFormats() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_FormatID.ToString())) - foreach (FormatInfo tmp in _CacheByPrimaryKey[_FormatID.ToString()]) - tmp._ChildFormatCount = -1; // This will cause the data to be requeried - } - // TODO: Replace base FormatInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current FormatInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check FormatInfo.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 FormatInfo - protected override object GetIdValue() - { - return _FormatID; - } - #endregion - #region Factory Methods - private static int _FormatInfoUnique = 0; - private static int FormatInfoUnique - { get { return ++_FormatInfoUnique; } } - private int _MyFormatInfoUnique = FormatInfoUnique; - public int MyFormatInfoUnique - { get { return _MyFormatInfoUnique; } } - protected FormatInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(FormatID.ToString())) return; - List listFormatInfo = _CacheByPrimaryKey[FormatID.ToString()]; // Get the list of items - while (listFormatInfo.Contains(this)) listFormatInfo.Remove(this); // Remove the item from the list - if (listFormatInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(FormatID.ToString()); // remove the list - } - public virtual Format Get() - { - return _Editable = Format.Get(_FormatID); - } - public static void Refresh(Format tmp) - { - string key = tmp.FormatID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (FormatInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Format tmp) - { - if (_ParentID != tmp.ParentID) - { - if (MyParent != null) MyParent.RefreshChildFormats(); // Update List for old value - _ParentID = tmp.ParentID; // Update the value - } - _MyParent = null; // Reset list so that the next line gets a new list - if (MyParent != null) MyParent.RefreshChildFormats(); // Update List for new value - _Name = tmp.Name; - _Description = tmp.Description; - _Data = tmp.Data; - _GenMac = tmp.GenMac; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _FormatInfoExtension.Refresh(this); - if (_MyParent != null) - { - _MyParent.Dispose();// Dispose related value - _MyParent = null;// Reset related value - } - OnChange();// raise an event - } - public static FormatInfo Get(int formatID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Format"); - try - { - FormatInfo tmp = GetCachedByPrimaryKey(formatID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(formatID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up FormatInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on FormatInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal FormatInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FormatInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FormatInfo.Constructor", ex); - throw new DbCslaException("FormatInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _FormatID; - public int FormatID - { get { return _FormatID; } } - public PKCriteria(int formatID) - { - _FormatID = formatID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FormatInfo.ReadData", GetHashCode()); - try - { - _FormatID = dr.GetInt32("FormatID"); - _ParentID = dr.GetInt32("ParentID"); - _Name = dr.GetString("Name"); - _Description = dr.GetString("Description"); - _Data = dr.GetString("Data"); - _GenMac = dr.GetString("GenMac"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _FormatContentCount = dr.GetInt32("ContentCount"); - _FormatDocVersionCount = dr.GetInt32("DocVersionCount"); - _FormatFolderCount = dr.GetInt32("FolderCount"); - _ChildFormatCount = dr.GetInt32("ChildCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FormatInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("FormatInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FormatInfo.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 = "getFormat"; - cm.Parameters.AddWithValue("@FormatID", criteria.FormatID); - 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("FormatInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("FormatInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - FormatInfoExtension _FormatInfoExtension = new FormatInfoExtension(); - [Serializable()] - partial class FormatInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(FormatInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class FormatInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FormatInfo) - { - // Return the ToString value - return ((FormatInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatInfoList.cs deleted file mode 100644 index e7ec741b..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/FormatInfoList.cs +++ /dev/null @@ -1,255 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// FormatInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(FormatInfoListConverter))] - public partial class FormatInfoList : 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 (FormatInfo tmp in this) - { - tmp.Changed += new FormatInfoEvent(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 (FormatInfo tmp in this) - { - tmp.Changed -= new FormatInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static FormatInfoList _FormatInfoList = null; - /// - /// Return a list of all projects. - /// - public static FormatInfoList Get() - { - try - { - if (_FormatInfoList != null) - return _FormatInfoList; - FormatInfoList tmp = DataPortal.Fetch(); - FormatInfo.AddList(tmp); - tmp.AddEvents(); - _FormatInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on FormatInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static FormatInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on FormatInfoList.Get", ex); - // } - //} - public static FormatInfoList GetChildren(int parentID) - { - try - { - FormatInfoList tmp = DataPortal.Fetch(new ParentIDCriteria(parentID)); - FormatInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on FormatInfoList.GetChildren", ex); - } - } - private FormatInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FormatInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getFormats"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new FormatInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FormatInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("FormatInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ParentIDCriteria - { - public ParentIDCriteria(int parentID) - { - _ParentID = parentID; - } - private int _ParentID; - public int ParentID - { - get { return _ParentID; } - set { _ParentID = value; } - } - } - private void DataPortal_Fetch(ParentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] FormatInfoList.DataPortal_FetchParentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getChildFormats"; - cm.Parameters.AddWithValue("@ParentID", criteria.ParentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new FormatInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("FormatInfoList.DataPortal_FetchParentID", ex); - throw new DbCslaException("FormatInfoList.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 - FormatInfoListPropertyDescriptor pd = new FormatInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class FormatInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private FormatInfo Item { get { return (FormatInfo)_Item; } } - public FormatInfoListPropertyDescriptor(FormatInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class FormatInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is FormatInfoList) - { - // Return department and department role separated by comma. - return ((FormatInfoList)value).Items.Count.ToString() + " Formats"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Generated.zip b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Generated.zip deleted file mode 100644 index 26fe22ed..00000000 Binary files a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Generated.zip and /dev/null differ diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Group.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Group.cs deleted file mode 100644 index 7da64e38..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Group.cs +++ /dev/null @@ -1,1222 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Group Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(GroupConverter))] - public partial class Group : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshGroups = new List(); - private List _RefreshGroupAssignments = new List(); - private List _RefreshGroupMemberships = new List(); - private void AddToRefreshList(List refreshGroups, List refreshGroupAssignments, List refreshGroupMemberships) - { - if (IsDirty) - refreshGroups.Add(this); - if (_GroupAssignments != null && _GroupAssignments.IsDirty) - { - foreach (GroupAssignment tmp in _GroupAssignments) - { - if (tmp.IsDirty) refreshGroupAssignments.Add(tmp); - } - } - if (_GroupMemberships != null && _GroupMemberships.IsDirty) - { - foreach (GroupMembership tmp in _GroupMemberships) - { - if (tmp.IsDirty) refreshGroupMemberships.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshGroups = new List(); - _RefreshGroupAssignments = new List(); - _RefreshGroupMemberships = new List(); - AddToRefreshList(_RefreshGroups, _RefreshGroupAssignments, _RefreshGroupMemberships); - } - private void ProcessRefreshList() - { - foreach (Group tmp in _RefreshGroups) - { - GroupInfo.Refresh(tmp); - } - foreach (GroupAssignment tmp in _RefreshGroupAssignments) - { - AssignmentInfo.Refresh(tmp); - } - foreach (GroupMembership tmp in _RefreshGroupMemberships) - { - MembershipInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Group group) - { - if (!_CacheList.Contains(group)) _CacheList.Add(group); // In AddToCache - } - protected static void RemoveFromCache(Group group) - { - while (_CacheList.Contains(group)) _CacheList.Remove(group); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static Dictionary> _CacheByGroupName = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Group tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.GID.ToString())) - { - _CacheByPrimaryKey[tmp.GID.ToString()] = new List(); // Add new list for PrimaryKey - _CacheByGroupName[tmp.GroupName.ToString()] = new List(); // Add new list for GroupName - } - _CacheByPrimaryKey[tmp.GID.ToString()].Add(tmp); // Add to Primary Key list - _CacheByGroupName[tmp.GroupName.ToString()].Add(tmp); // Unique Index - remove.Add(tmp); - } - foreach (Group tmp in remove) - RemoveFromCache(tmp); - } - protected static Group GetCachedByPrimaryKey(int gid) - { - ConvertListToDictionary(); - string key = gid.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - protected static Group GetCachedByGroupName(string groupName) - { - ConvertListToDictionary(); - string key = groupName.ToString(); - if (_CacheByGroupName.ContainsKey(key)) return _CacheByGroupName[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextGID = -1; - public static int NextGID - { - get { return _nextGID--; } - } - private int _GID; - [System.ComponentModel.DataObjectField(true, true)] - public int GID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GID; - } - } - private string _GroupName = string.Empty; - public string GroupName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GroupName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_GroupName != value) - { - _GroupName = value; - PropertyHasChanged(); - } - } - } - private int? _GroupType; - public int? GroupType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GroupType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_GroupType != value) - { - _GroupType = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _GroupAssignmentCount = 0; - /// - /// Count of GroupAssignments for this Group - /// - public int GroupAssignmentCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GroupAssignmentCount; - } - } - private GroupAssignments _GroupAssignments = null; - /// - /// Related Field - /// - [TypeConverter(typeof(GroupAssignmentsConverter))] - public GroupAssignments GroupAssignments - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_GroupAssignmentCount > 0 && _GroupAssignments == null) - _GroupAssignments = GroupAssignments.GetByGID(GID); - else if (_GroupAssignments == null) - _GroupAssignments = GroupAssignments.New(); - return _GroupAssignments; - } - } - private int _GroupMembershipCount = 0; - /// - /// Count of GroupMemberships for this Group - /// - public int GroupMembershipCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GroupMembershipCount; - } - } - private GroupMemberships _GroupMemberships = null; - /// - /// Related Field - /// - [TypeConverter(typeof(GroupMembershipsConverter))] - public GroupMemberships GroupMemberships - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_GroupMembershipCount > 0 && _GroupMemberships == null) - _GroupMemberships = GroupMemberships.GetByGID(GID); - else if (_GroupMemberships == null) - _GroupMemberships = GroupMemberships.New(); - return _GroupMemberships; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_GroupAssignments == null ? false : _GroupAssignments.IsDirty) || (_GroupMemberships == null ? false : _GroupMemberships.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_GroupAssignments == null ? true : _GroupAssignments.IsValid) && (_GroupMemberships == null ? true : _GroupMemberships.IsValid); } - } - // TODO: Replace base Group.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Group - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Group.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 Group - protected override object GetIdValue() - { - return _GID; - } - #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 (_GroupAssignments != null && (hasBrokenRules = _GroupAssignments.HasBrokenRules) != null) return hasBrokenRules; - if (_GroupMemberships != null && (hasBrokenRules = _GroupMemberships.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "GroupName"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("GroupName", 50)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _GroupExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _GroupExtension.AddInstanceValidationRules(ValidationRules); - // 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(GID, ""); - //AuthorizationRules.AllowRead(GroupName, ""); - //AuthorizationRules.AllowRead(GroupType, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(GroupName, ""); - //AuthorizationRules.AllowWrite(GroupType, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - _GroupExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _GroupExtension.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 += _GroupAssignmentCount; - usedByCount += _GroupMembershipCount; - 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 _GroupUnique = 0; - protected static int GroupUnique - { get { return ++_GroupUnique; } } - private int _MyGroupUnique = GroupUnique; - public int MyGroupUnique - { get { return _MyGroupUnique; } } - protected Group() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(GID.ToString())) - { - List listGroup = _CacheByPrimaryKey[GID.ToString()]; // Get the list of items - while (listGroup.Contains(this)) listGroup.Remove(this); // Remove the item from the list - if (listGroup.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(GID.ToString()); // remove the list - } - string myKey; - myKey = null; - foreach (string key in _CacheByGroupName.Keys) - if (_CacheByGroupName[key].Contains(this)) - myKey = key; - if (myKey != null) - { - List listGroup = _CacheByGroupName[myKey]; // Get the list of items - listGroup.Remove(this); // Remove the item from the list - if (listGroup.Count == 0) //If there are no items left in the list - _CacheByGroupName.Remove(myKey); // remove the list - } - } - public static Group New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Group"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Group.New", ex); - } - } - public static Group New(string groupName) - { - Group tmp = Group.New(); - tmp.GroupName = groupName; - return tmp; - } - public static Group New(string groupName, int? groupType, string config, DateTime dts, string usrID) - { - Group tmp = Group.New(); - tmp.GroupName = groupName; - tmp.GroupType = groupType; - tmp.Config = config; - tmp.DTS = dts; - tmp.UsrID = usrID; - return tmp; - } - public static Group MakeGroup(string groupName, int? groupType, string config, DateTime dts, string usrID) - { - Group tmp = Group.New(groupName, groupType, config, dts, usrID); - if (tmp.IsSavable) - { - Group 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 Group New(string groupName, int? groupType, string config) - { - Group tmp = Group.New(); - tmp.GroupName = groupName; - tmp.GroupType = groupType; - tmp.Config = config; - return tmp; - } - public static Group MakeGroup(string groupName, int? groupType, string config) - { - Group tmp = Group.New(groupName, groupType, config); - if (tmp.IsSavable) - { - Group 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 Group Get(int gid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Group"); - try - { - Group tmp = GetCachedByPrimaryKey(gid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(gid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Group - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Group.Get", ex); - } - } - public static Group GetByGroupName(string groupName) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Group"); - try - { - Group tmp = GetCachedByGroupName(groupName); - if (tmp == null) - { - tmp = DataPortal.Fetch(new GroupNameCriteria(groupName)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Group - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Group.GetByGroupName", ex); - } - } - public static Group Get(SafeDataReader dr) - { - if (dr.Read()) return new Group(dr); - return null; - } - internal Group(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int gid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Group"); - try - { - DataPortal.Delete(new PKCriteria(gid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Group.Delete", ex); - } - } - public override Group Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Group"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Group"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Group"); - try - { - BuildRefreshList(); - Group group = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(group);//Refresh the item in AllList - ProcessRefreshList(); - return group; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _GID; - public int GID - { get { return _GID; } } - public PKCriteria(int gid) - { - _GID = gid; - } - } - [Serializable()] - private class GroupNameCriteria - { - private string _GroupName; - public string GroupName - { get { return _GroupName; } } - public GroupNameCriteria(string groupName) - { - _GroupName = groupName; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _GID = NextGID; - // Database Defaults - _DTS = _GroupExtension.DefaultDTS; - _UsrID = _GroupExtension.DefaultUsrID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Group.ReadData", GetHashCode()); - try - { - _GID = dr.GetInt32("GID"); - _GroupName = dr.GetString("GroupName"); - _GroupType = (int?)dr.GetValue("GroupType"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _GroupAssignmentCount = dr.GetInt32("AssignmentCount"); - _GroupMembershipCount = dr.GetInt32("MembershipCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Group.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Group.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Group.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 = "getGroup"; - cm.Parameters.AddWithValue("@GID", criteria.GID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _GroupAssignments = GroupAssignments.Get(dr); - // load child objects - dr.NextResult(); - _GroupMemberships = GroupMemberships.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("Group.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Group.DataPortal_Fetch", ex); - } - } - private void DataPortal_Fetch(GroupNameCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Group.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 = "getGroupByGroupName"; - cm.Parameters.AddWithValue("@GroupName", criteria.GroupName); - 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("Group.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Group.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("Group.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Group.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Group.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addGroup"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@GroupName", _GroupName); - cm.Parameters.AddWithValue("@GroupType", _GroupType); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - // Output Calculated Columns - SqlParameter param_GID = new SqlParameter("@newGID", SqlDbType.Int); - param_GID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_GID); - 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 - _GID = (int)cm.Parameters["@newGID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_GroupAssignments != null) _GroupAssignments.Update(this); - if (_GroupMemberships != null) _GroupMemberships.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Group.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Group.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Group.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int gid, string groupName, int? groupType, string config, DateTime dts, string usrID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Group.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addGroup"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@GroupName", groupName); - cm.Parameters.AddWithValue("@GroupType", groupType); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - // Output Calculated Columns - SqlParameter param_GID = new SqlParameter("@newGID", SqlDbType.Int); - param_GID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_GID); - 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 - gid = (int)cm.Parameters["@newGID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Group.Add", ex); - throw new DbCslaException("Group.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}] Group.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("Group.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}] Group.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateGroup"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@GID", _GID); - cm.Parameters.AddWithValue("@GroupName", _GroupName); - cm.Parameters.AddWithValue("@GroupType", _GroupType); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - 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 (_GroupAssignments != null) _GroupAssignments.Update(this); - if (_GroupMemberships != null) _GroupMemberships.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Group.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 = Group.Add(cn, ref _GID, _GroupName, _GroupType, _Config, _DTS, _UsrID); - else - _LastChanged = Group.Update(cn, ref _GID, _GroupName, _GroupType, _Config, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - if (_GroupAssignments != null) _GroupAssignments.Update(this); - if (_GroupMemberships != null) _GroupMemberships.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int gid, string groupName, int? groupType, string config, DateTime dts, string usrID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Group.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateGroup"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@GID", gid); - cm.Parameters.AddWithValue("@GroupName", groupName); - cm.Parameters.AddWithValue("@GroupType", groupType); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - 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("Group.Update", ex); - throw new DbCslaException("Group.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_GID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Group.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteGroup"; - cm.Parameters.AddWithValue("@GID", criteria.GID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Group.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Group.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int gid) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Group.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteGroup"; - // Input PK Fields - cm.Parameters.AddWithValue("@GID", gid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Group.Remove", ex); - throw new DbCslaException("Group.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int gid) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(gid)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Group.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _GID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int gid) - { - _GID = gid; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Group.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsGroup"; - cm.Parameters.AddWithValue("@GID", _GID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Group.DataPortal_Execute", ex); - throw new DbCslaException("Group.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - GroupExtension _GroupExtension = new GroupExtension(); - [Serializable()] - partial class GroupExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 GroupConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Group) - { - // Return the ToString value - return ((Group)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create GroupExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Group -// { -// partial class GroupExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/GroupAssignment.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupAssignment.cs deleted file mode 100644 index 6db324b0..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupAssignment.cs +++ /dev/null @@ -1,721 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// GroupAssignment Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(GroupAssignmentConverter))] - public partial class GroupAssignment : 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 _AID; - [System.ComponentModel.DataObjectField(true, true)] - public int AID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAssignment != null) _AID = _MyAssignment.AID; - return _AID; - } - } - private Assignment _MyAssignment; - [System.ComponentModel.DataObjectField(true, true)] - public Assignment MyAssignment - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAssignment == null && _AID != 0) _MyAssignment = Assignment.Get(_AID); - return _MyAssignment; - } - } - private int _RID; - public int RID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole != null) _RID = _MyRole.RID; - return _RID; - } - } - private Role _MyRole; - public Role MyRole - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole == null && _RID != 0) _MyRole = Role.Get(_RID); - return _MyRole; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyRole != value) - { - _MyRole = value; - PropertyHasChanged(); - } - } - } - private int _FolderID; - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder != null) _FolderID = _MyFolder.FolderID; - return _FolderID; - } - } - private Folder _MyFolder; - public Folder MyFolder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder == null && _FolderID != 0) _MyFolder = Folder.Get(_FolderID); - return _MyFolder; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyFolder != value) - { - _MyFolder = value; - PropertyHasChanged(); - } - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _StartDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_StartDate != tmp.ToString()) - { - _StartDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _EndDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_EndDate != tmp.ToString()) - { - _EndDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _Folder_ParentID; - public int Folder_ParentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ParentID; - } - } - private int _Folder_DBID; - public int Folder_DBID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_DBID; - } - } - private string _Folder_Name = string.Empty; - public string Folder_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Name; - } - } - private string _Folder_Title = string.Empty; - public string Folder_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Title; - } - } - private string _Folder_ShortName = string.Empty; - public string Folder_ShortName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ShortName; - } - } - private int? _Folder_FormatID; - public int? Folder_FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_FormatID; - } - } - private double? _Folder_ManualOrder; - public double? Folder_ManualOrder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ManualOrder; - } - } - private string _Folder_Config = string.Empty; - public string Folder_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Config; - } - } - private DateTime _Folder_DTS = new DateTime(); - public DateTime Folder_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_DTS; - } - } - private string _Folder_UsrID = string.Empty; - public string Folder_UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_UsrID; - } - } - private string _Role_Name = string.Empty; - public string Role_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Role_Name; - } - } - private string _Role_Title = string.Empty; - public string Role_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Role_Title; - } - } - private DateTime _Role_DTS = new DateTime(); - public DateTime Role_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Role_DTS; - } - } - private string _Role_UsrID = string.Empty; - public string Role_UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Role_UsrID; - } - } - // TODO: Check GroupAssignment.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 GroupAssignment - protected override object GetIdValue() - { - return _AID; - } - // TODO: Replace base GroupAssignment.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current GroupAssignment - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyRole == null ? false : _MyRole.IsDirty) || (_MyFolder == null ? false : _MyFolder.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyRole == null ? true : _MyRole.IsValid) && (_MyFolder == null ? true : _MyFolder.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 (_MyRole != null && (hasBrokenRules = _MyRole.HasBrokenRules) != null) return hasBrokenRules; - if (_MyFolder != null && (hasBrokenRules = _MyFolder.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(MyRoleRequired, "MyRole"); - ValidationRules.AddRule(MyFolderRequired, "MyFolder"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "StartDate"); - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - // TODO: Add other validation rules - } - private static bool StartDateValid(GroupAssignment target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._StartDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool EndDateValid(GroupAssignment target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._EndDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool MyRoleRequired(GroupAssignment target, Csla.Validation.RuleArgs e) - { - if (target._RID == 0 && target._MyRole == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - private static bool MyFolderRequired(GroupAssignment target, Csla.Validation.RuleArgs e) - { - if (target._FolderID == 0 && target._MyFolder == 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(AID, ""); - //AuthorizationRules.AllowRead(RID, ""); - //AuthorizationRules.AllowWrite(RID, ""); - //AuthorizationRules.AllowRead(FolderID, ""); - //AuthorizationRules.AllowWrite(FolderID, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - } - 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 GroupAssignment New(Role myRole, Folder myFolder) - { - return new GroupAssignment(myRole, myFolder); - } - internal static GroupAssignment Get(SafeDataReader dr) - { - return new GroupAssignment(dr); - } - public GroupAssignment() - { - MarkAsChild(); - _AID = Assignment.NextAID; - _StartDate = _GroupAssignmentExtension.DefaultStartDate; - _DTS = _GroupAssignmentExtension.DefaultDTS; - _UsrID = _GroupAssignmentExtension.DefaultUsrID; - ValidationRules.CheckRules(); - } - private GroupAssignment(Role myRole, Folder myFolder) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _StartDate = _GroupAssignmentExtension.DefaultStartDate; - _DTS = _GroupAssignmentExtension.DefaultDTS; - _UsrID = _GroupAssignmentExtension.DefaultUsrID; - _MyRole = myRole; - _MyFolder = myFolder; - ValidationRules.CheckRules(); - } - internal GroupAssignment(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] GroupAssignment.FetchDR", GetHashCode()); - try - { - _AID = dr.GetInt32("AID"); - _RID = dr.GetInt32("RID"); - _FolderID = dr.GetInt32("FolderID"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _Folder_ParentID = dr.GetInt32("Folder_ParentID"); - _Folder_DBID = dr.GetInt32("Folder_DBID"); - _Folder_Name = dr.GetString("Folder_Name"); - _Folder_Title = dr.GetString("Folder_Title"); - _Folder_ShortName = dr.GetString("Folder_ShortName"); - _Folder_FormatID = (int?)dr.GetValue("Folder_FormatID"); - _Folder_ManualOrder = (double?)dr.GetValue("Folder_ManualOrder"); - _Folder_Config = dr.GetString("Folder_Config"); - _Folder_DTS = dr.GetDateTime("Folder_DTS"); - _Folder_UsrID = dr.GetString("Folder_UsrID"); - _Role_Name = dr.GetString("Role_Name"); - _Role_Title = dr.GetString("Role_Title"); - _Role_DTS = dr.GetDateTime("Role_DTS"); - _Role_UsrID = dr.GetString("Role_UsrID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("GroupAssignment.FetchDR", ex); - throw new DbCslaException("GroupAssignment.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Group myGroup) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Assignment.Add(cn, ref _AID, myGroup, _MyRole, _MyFolder, new SmartDate(_StartDate), new SmartDate(_EndDate), _DTS, _UsrID); - MarkOld(); - } - internal void Update(Group myGroup) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Assignment.Update(cn, ref _AID, myGroup, _MyRole, _MyFolder, new SmartDate(_StartDate), new SmartDate(_EndDate), _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Group myGroup) - { - // 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"]; - Assignment.Remove(cn, _AID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - GroupAssignmentExtension _GroupAssignmentExtension = new GroupAssignmentExtension(); - [Serializable()] - partial class GroupAssignmentExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 GroupAssignmentConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is GroupAssignment) - { - // Return the ToString value - return ((GroupAssignment)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create GroupAssignmentExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class GroupAssignment -// { -// partial class GroupAssignmentExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual SmartDate DefaultStartDate -// { -// get { return DateTime.Now.ToShortDateString(); } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/GroupAssignments.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupAssignments.cs deleted file mode 100644 index 03944b15..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupAssignments.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// GroupAssignments Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(GroupAssignmentsConverter))] - public partial class GroupAssignments : 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 GroupAssignment this[Assignment myAssignment] - { - get - { - foreach (GroupAssignment assignment in this) - if (assignment.AID == myAssignment.AID) - return assignment; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public GroupAssignment GetItem(Assignment myAssignment) - { - foreach (GroupAssignment assignment in this) - if (assignment.AID == myAssignment.AID) - return assignment; - return null; - } - public GroupAssignment Add(Role myRole, Folder myFolder) // One to Many - { - GroupAssignment assignment = GroupAssignment.New(myRole, myFolder); - this.Add(assignment); - return assignment; - } - public void Remove(Assignment myAssignment) - { - foreach (GroupAssignment assignment in this) - { - if (assignment.AID == myAssignment.AID) - { - Remove(assignment); - break; - } - } - } - public bool Contains(Assignment myAssignment) - { - foreach (GroupAssignment assignment in this) - if (assignment.AID == myAssignment.AID) - return true; - return false; - } - public bool ContainsDeleted(Assignment myAssignment) - { - foreach (GroupAssignment assignment in DeletedList) - if (assignment.AID == myAssignment.AID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (GroupAssignment groupAssignment in this) - if ((hasBrokenRules = groupAssignment.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 GroupAssignments New() - { - return new GroupAssignments(); - } - internal static GroupAssignments Get(SafeDataReader dr) - { - return new GroupAssignments(dr); - } - public static GroupAssignments GetByGID(int gid) - { - try - { - return DataPortal.Fetch(new GIDCriteria(gid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on GroupAssignments.GetByGID", ex); - } - } - private GroupAssignments() - { - MarkAsChild(); - } - internal GroupAssignments(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(GroupAssignment.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class GIDCriteria - { - public GIDCriteria(int gid) - { - _GID = gid; - } - private int _GID; - public int GID - { - get { return _GID; } - set { _GID = value; } - } - } - private void DataPortal_Fetch(GIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] GroupAssignments.DataPortal_FetchGID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAssignmentsByGID"; - cm.Parameters.AddWithValue("@GID", criteria.GID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new GroupAssignment(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("GroupAssignments.DataPortal_FetchGID", ex); - throw new DbCslaException("GroupAssignments.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Group group) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (GroupAssignment obj in DeletedList) - obj.DeleteSelf(group);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (GroupAssignment obj in this) - { - if (obj.IsNew) - obj.Insert(group); - else - obj.Update(group); - } - } - 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 - GroupAssignmentsPropertyDescriptor pd = new GroupAssignmentsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class GroupAssignmentsPropertyDescriptor : vlnListPropertyDescriptor - { - private GroupAssignment Item { get { return (GroupAssignment)_Item; } } - public GroupAssignmentsPropertyDescriptor(GroupAssignments collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class GroupAssignmentsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is GroupAssignments) - { - // Return department and department role separated by comma. - return ((GroupAssignments)value).Items.Count.ToString() + " Assignments"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupInfo.cs deleted file mode 100644 index 08715aaf..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupInfo.cs +++ /dev/null @@ -1,409 +0,0 @@ -// ======================================================================== -// 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 GroupInfoEvent(object sender); - /// - /// GroupInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(GroupInfoConverter))] - public partial class GroupInfo : ReadOnlyBase, IDisposable - { - public event GroupInfoEvent 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(GroupInfo groupInfo) - { - if (!_CacheList.Contains(groupInfo)) _CacheList.Add(groupInfo); // In AddToCache - } - protected static void RemoveFromCache(GroupInfo groupInfo) - { - while (_CacheList.Contains(groupInfo)) _CacheList.Remove(groupInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (GroupInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.GID.ToString())) - { - _CacheByPrimaryKey[tmp.GID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.GID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (GroupInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(GroupInfoList lst) - { - foreach (GroupInfo item in lst) AddToCache(item); - } - protected static GroupInfo GetCachedByPrimaryKey(int gid) - { - ConvertListToDictionary(); - string key = gid.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 Group _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _GID; - [System.ComponentModel.DataObjectField(true, true)] - public int GID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GID; - } - } - private string _GroupName = string.Empty; - public string GroupName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GroupName; - } - } - private int? _GroupType; - public int? GroupType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GroupType; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - } - private int _GroupAssignmentCount = 0; - /// - /// Count of GroupAssignments for this Group - /// - public int GroupAssignmentCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GroupAssignmentCount; - } - } - private AssignmentInfoList _GroupAssignments = null; - [TypeConverter(typeof(AssignmentInfoListConverter))] - public AssignmentInfoList GroupAssignments - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_GroupAssignmentCount < 0 || (_GroupAssignmentCount > 0 && _GroupAssignments == null)) - _GroupAssignments = AssignmentInfoList.GetByGID(_GID); - if (_GroupAssignmentCount < 0) - _GroupAssignmentCount = _GroupAssignments.Count; - return _GroupAssignments; - } - } - public void RefreshGroupAssignments() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_GID.ToString())) - foreach (GroupInfo tmp in _CacheByPrimaryKey[_GID.ToString()]) - tmp._GroupAssignmentCount = -1; // This will cause the data to be requeried - } - private int _GroupMembershipCount = 0; - /// - /// Count of GroupMemberships for this Group - /// - public int GroupMembershipCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _GroupMembershipCount; - } - } - private MembershipInfoList _GroupMemberships = null; - [TypeConverter(typeof(MembershipInfoListConverter))] - public MembershipInfoList GroupMemberships - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_GroupMembershipCount < 0 || (_GroupMembershipCount > 0 && _GroupMemberships == null)) - _GroupMemberships = MembershipInfoList.GetByGID(_GID); - if (_GroupMembershipCount < 0) - _GroupMembershipCount = _GroupMemberships.Count; - return _GroupMemberships; - } - } - public void RefreshGroupMemberships() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_GID.ToString())) - foreach (GroupInfo tmp in _CacheByPrimaryKey[_GID.ToString()]) - tmp._GroupMembershipCount = -1; // This will cause the data to be requeried - } - // TODO: Replace base GroupInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current GroupInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check GroupInfo.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 GroupInfo - protected override object GetIdValue() - { - return _GID; - } - #endregion - #region Factory Methods - private static int _GroupInfoUnique = 0; - private static int GroupInfoUnique - { get { return ++_GroupInfoUnique; } } - private int _MyGroupInfoUnique = GroupInfoUnique; - public int MyGroupInfoUnique - { get { return _MyGroupInfoUnique; } } - protected GroupInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(GID.ToString())) return; - List listGroupInfo = _CacheByPrimaryKey[GID.ToString()]; // Get the list of items - while (listGroupInfo.Contains(this)) listGroupInfo.Remove(this); // Remove the item from the list - if (listGroupInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(GID.ToString()); // remove the list - } - public virtual Group Get() - { - return _Editable = Group.Get(_GID); - } - public static void Refresh(Group tmp) - { - string key = tmp.GID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (GroupInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Group tmp) - { - _GroupName = tmp.GroupName; - _GroupType = tmp.GroupType; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _GroupInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static GroupInfo Get(int gid) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Group"); - try - { - GroupInfo tmp = GetCachedByPrimaryKey(gid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(gid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up GroupInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on GroupInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal GroupInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] GroupInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("GroupInfo.Constructor", ex); - throw new DbCslaException("GroupInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _GID; - public int GID - { get { return _GID; } } - public PKCriteria(int gid) - { - _GID = gid; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] GroupInfo.ReadData", GetHashCode()); - try - { - _GID = dr.GetInt32("GID"); - _GroupName = dr.GetString("GroupName"); - _GroupType = (int?)dr.GetValue("GroupType"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - _GroupAssignmentCount = dr.GetInt32("AssignmentCount"); - _GroupMembershipCount = dr.GetInt32("MembershipCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("GroupInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("GroupInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] GroupInfo.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 = "getGroup"; - cm.Parameters.AddWithValue("@GID", criteria.GID); - 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("GroupInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("GroupInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - GroupInfoExtension _GroupInfoExtension = new GroupInfoExtension(); - [Serializable()] - partial class GroupInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(GroupInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class GroupInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is GroupInfo) - { - // Return the ToString value - return ((GroupInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupInfoList.cs deleted file mode 100644 index c90417fb..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupInfoList.cs +++ /dev/null @@ -1,198 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// GroupInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(GroupInfoListConverter))] - public partial class GroupInfoList : 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 (GroupInfo tmp in this) - { - tmp.Changed += new GroupInfoEvent(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 (GroupInfo tmp in this) - { - tmp.Changed -= new GroupInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static GroupInfoList _GroupInfoList = null; - /// - /// Return a list of all projects. - /// - public static GroupInfoList Get() - { - try - { - if (_GroupInfoList != null) - return _GroupInfoList; - GroupInfoList tmp = DataPortal.Fetch(); - GroupInfo.AddList(tmp); - tmp.AddEvents(); - _GroupInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on GroupInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static GroupInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on GroupInfoList.Get", ex); - // } - //} - private GroupInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] GroupInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getGroups"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new GroupInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("GroupInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("GroupInfoList.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 - GroupInfoListPropertyDescriptor pd = new GroupInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class GroupInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private GroupInfo Item { get { return (GroupInfo)_Item; } } - public GroupInfoListPropertyDescriptor(GroupInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class GroupInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is GroupInfoList) - { - // Return department and department role separated by comma. - return ((GroupInfoList)value).Items.Count.ToString() + " Groups"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupMembership.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupMembership.cs deleted file mode 100644 index 1e5460e3..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupMembership.cs +++ /dev/null @@ -1,692 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// GroupMembership Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(GroupMembershipConverter))] - public partial class GroupMembership : 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 _UGID; - [System.ComponentModel.DataObjectField(true, true)] - public int UGID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyMembership != null) _UGID = _MyMembership.UGID; - return _UGID; - } - } - private Membership _MyMembership; - [System.ComponentModel.DataObjectField(true, true)] - public Membership MyMembership - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyMembership == null && _UGID != 0) _MyMembership = Membership.Get(_UGID); - return _MyMembership; - } - } - private int _UID; - public int UID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyUser != null) _UID = _MyUser.UID; - return _UID; - } - } - private User _MyUser; - public User MyUser - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyUser == null && _UID != 0) _MyUser = User.Get(_UID); - return _MyUser; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyUser != value) - { - _MyUser = value; - PropertyHasChanged(); - } - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _StartDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_StartDate != tmp.ToString()) - { - _StartDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _EndDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_EndDate != tmp.ToString()) - { - _EndDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private string _User_UserID = string.Empty; - public string User_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_UserID; - } - } - private string _User_FirstName = string.Empty; - public string User_FirstName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_FirstName; - } - } - private string _User_MiddleName = string.Empty; - public string User_MiddleName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_MiddleName; - } - } - private string _User_LastName = string.Empty; - public string User_LastName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_LastName; - } - } - private string _User_Suffix = string.Empty; - public string User_Suffix - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_Suffix; - } - } - private string _User_CourtesyTitle = string.Empty; - public string User_CourtesyTitle - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_CourtesyTitle; - } - } - private string _User_PhoneNumber = string.Empty; - public string User_PhoneNumber - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_PhoneNumber; - } - } - private string _User_CFGName = string.Empty; - public string User_CFGName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_CFGName; - } - } - private string _User_UserLogin = string.Empty; - public string User_UserLogin - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_UserLogin; - } - } - private string _User_UserName = string.Empty; - public string User_UserName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_UserName; - } - } - private string _User_Config = string.Empty; - public string User_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_Config; - } - } - private DateTime _User_DTS = new DateTime(); - public DateTime User_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_DTS; - } - } - private string _User_UsrID = string.Empty; - public string User_UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _User_UsrID; - } - } - // TODO: Check GroupMembership.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 GroupMembership - protected override object GetIdValue() - { - return _UGID; - } - // TODO: Replace base GroupMembership.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current GroupMembership - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyUser == null ? false : _MyUser.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyUser == null ? true : _MyUser.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 (_MyUser != null && (hasBrokenRules = _MyUser.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(MyUserRequired, "MyUser"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "StartDate"); - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - // TODO: Add other validation rules - } - private static bool StartDateValid(GroupMembership target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._StartDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool EndDateValid(GroupMembership target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._EndDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool MyUserRequired(GroupMembership target, Csla.Validation.RuleArgs e) - { - if (target._UID == 0 && target._MyUser == 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(UGID, ""); - //AuthorizationRules.AllowRead(UID, ""); - //AuthorizationRules.AllowWrite(UID, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - } - 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 GroupMembership New(User myUser) - { - return new GroupMembership(myUser); - } - internal static GroupMembership Get(SafeDataReader dr) - { - return new GroupMembership(dr); - } - public GroupMembership() - { - MarkAsChild(); - _UGID = Membership.NextUGID; - _StartDate = _GroupMembershipExtension.DefaultStartDate; - _DTS = _GroupMembershipExtension.DefaultDTS; - _UsrID = _GroupMembershipExtension.DefaultUsrID; - ValidationRules.CheckRules(); - } - private GroupMembership(User myUser) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _StartDate = _GroupMembershipExtension.DefaultStartDate; - _DTS = _GroupMembershipExtension.DefaultDTS; - _UsrID = _GroupMembershipExtension.DefaultUsrID; - _MyUser = myUser; - ValidationRules.CheckRules(); - } - internal GroupMembership(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] GroupMembership.FetchDR", GetHashCode()); - try - { - _UGID = dr.GetInt32("UGID"); - _UID = dr.GetInt32("UID"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _User_UserID = dr.GetString("User_UserID"); - _User_FirstName = dr.GetString("User_FirstName"); - _User_MiddleName = dr.GetString("User_MiddleName"); - _User_LastName = dr.GetString("User_LastName"); - _User_Suffix = dr.GetString("User_Suffix"); - _User_CourtesyTitle = dr.GetString("User_CourtesyTitle"); - _User_PhoneNumber = dr.GetString("User_PhoneNumber"); - _User_CFGName = dr.GetString("User_CFGName"); - _User_UserLogin = dr.GetString("User_UserLogin"); - _User_UserName = dr.GetString("User_UserName"); - _User_Config = dr.GetString("User_Config"); - _User_DTS = dr.GetDateTime("User_DTS"); - _User_UsrID = dr.GetString("User_UsrID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("GroupMembership.FetchDR", ex); - throw new DbCslaException("GroupMembership.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Group myGroup) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Membership.Add(cn, ref _UGID, _MyUser, myGroup, new SmartDate(_StartDate), new SmartDate(_EndDate), _Config, _DTS, _UsrID); - MarkOld(); - } - internal void Update(Group myGroup) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Membership.Update(cn, ref _UGID, _MyUser, myGroup, new SmartDate(_StartDate), new SmartDate(_EndDate), _Config, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Group myGroup) - { - // 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"]; - Membership.Remove(cn, _UGID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - GroupMembershipExtension _GroupMembershipExtension = new GroupMembershipExtension(); - [Serializable()] - partial class GroupMembershipExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 GroupMembershipConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is GroupMembership) - { - // Return the ToString value - return ((GroupMembership)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create GroupMembershipExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class GroupMembership -// { -// partial class GroupMembershipExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual SmartDate DefaultStartDate -// { -// get { return DateTime.Now.ToShortDateString(); } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/GroupMemberships.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupMemberships.cs deleted file mode 100644 index 8de03e73..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/GroupMemberships.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// GroupMemberships Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(GroupMembershipsConverter))] - public partial class GroupMemberships : 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 GroupMembership this[Membership myMembership] - { - get - { - foreach (GroupMembership membership in this) - if (membership.UGID == myMembership.UGID) - return membership; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public GroupMembership GetItem(Membership myMembership) - { - foreach (GroupMembership membership in this) - if (membership.UGID == myMembership.UGID) - return membership; - return null; - } - public GroupMembership Add(User myUser) // One to Many - { - GroupMembership membership = GroupMembership.New(myUser); - this.Add(membership); - return membership; - } - public void Remove(Membership myMembership) - { - foreach (GroupMembership membership in this) - { - if (membership.UGID == myMembership.UGID) - { - Remove(membership); - break; - } - } - } - public bool Contains(Membership myMembership) - { - foreach (GroupMembership membership in this) - if (membership.UGID == myMembership.UGID) - return true; - return false; - } - public bool ContainsDeleted(Membership myMembership) - { - foreach (GroupMembership membership in DeletedList) - if (membership.UGID == myMembership.UGID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (GroupMembership groupMembership in this) - if ((hasBrokenRules = groupMembership.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 GroupMemberships New() - { - return new GroupMemberships(); - } - internal static GroupMemberships Get(SafeDataReader dr) - { - return new GroupMemberships(dr); - } - public static GroupMemberships GetByGID(int gid) - { - try - { - return DataPortal.Fetch(new GIDCriteria(gid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on GroupMemberships.GetByGID", ex); - } - } - private GroupMemberships() - { - MarkAsChild(); - } - internal GroupMemberships(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(GroupMembership.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class GIDCriteria - { - public GIDCriteria(int gid) - { - _GID = gid; - } - private int _GID; - public int GID - { - get { return _GID; } - set { _GID = value; } - } - } - private void DataPortal_Fetch(GIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] GroupMemberships.DataPortal_FetchGID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getMembershipsByGID"; - cm.Parameters.AddWithValue("@GID", criteria.GID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new GroupMembership(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("GroupMemberships.DataPortal_FetchGID", ex); - throw new DbCslaException("GroupMemberships.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Group group) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (GroupMembership obj in DeletedList) - obj.DeleteSelf(group);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (GroupMembership obj in this) - { - if (obj.IsNew) - obj.Insert(group); - else - obj.Update(group); - } - } - 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 - GroupMembershipsPropertyDescriptor pd = new GroupMembershipsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class GroupMembershipsPropertyDescriptor : vlnListPropertyDescriptor - { - private GroupMembership Item { get { return (GroupMembership)_Item; } } - public GroupMembershipsPropertyDescriptor(GroupMemberships collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class GroupMembershipsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is GroupMemberships) - { - // Return department and department role separated by comma. - return ((GroupMemberships)value).Items.Count.ToString() + " Memberships"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Item.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Item.cs deleted file mode 100644 index 07cc77d7..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Item.cs +++ /dev/null @@ -1,1345 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Item Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemConverter))] - public partial class Item : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshItems = new List(); - private List _RefreshItemAnnotations = new List(); - private List _RefreshItemDocVersions = new List(); - private List _RefreshItemParts = new List(); - private List _RefreshItemTransitions_RangeID = new List(); - private List _RefreshItemTransitions_ToID = new List(); - private void AddToRefreshList(List refreshItems, List refreshItemAnnotations, List refreshItemDocVersions, List refreshItemParts, List refreshItemTransitions_RangeID, List refreshItemTransitions_ToID) - { - if (IsDirty) - refreshItems.Add(this); - if (_ItemAnnotations != null && _ItemAnnotations.IsDirty) - { - foreach (ItemAnnotation tmp in _ItemAnnotations) - { - if (tmp.IsDirty) refreshItemAnnotations.Add(tmp); - } - } - if (_ItemDocVersions != null && _ItemDocVersions.IsDirty) - { - foreach (ItemDocVersion tmp in _ItemDocVersions) - { - if (tmp.IsDirty) refreshItemDocVersions.Add(tmp); - } - } - if (_NextItems != null && _NextItems.IsDirty) - { - foreach (Item tmp in _NextItems) - { - tmp.AddToRefreshList(refreshItems, refreshItemAnnotations, refreshItemDocVersions, refreshItemParts, refreshItemTransitions_RangeID, refreshItemTransitions_ToID); - } - } - if (_ItemParts != null && _ItemParts.IsDirty) - { - foreach (ItemPart tmp in _ItemParts) - { - if (tmp.IsDirty) refreshItemParts.Add(tmp); - } - } - if (_ItemTransitions_RangeID != null && _ItemTransitions_RangeID.IsDirty) - { - foreach (ItemTransition_RangeID tmp in _ItemTransitions_RangeID) - { - if (tmp.IsDirty) refreshItemTransitions_RangeID.Add(tmp); - } - } - if (_ItemTransitions_ToID != null && _ItemTransitions_ToID.IsDirty) - { - foreach (ItemTransition_ToID tmp in _ItemTransitions_ToID) - { - if (tmp.IsDirty) refreshItemTransitions_ToID.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshItems = new List(); - _RefreshItemAnnotations = new List(); - _RefreshItemDocVersions = new List(); - _RefreshItemParts = new List(); - _RefreshItemTransitions_RangeID = new List(); - _RefreshItemTransitions_ToID = new List(); - AddToRefreshList(_RefreshItems, _RefreshItemAnnotations, _RefreshItemDocVersions, _RefreshItemParts, _RefreshItemTransitions_RangeID, _RefreshItemTransitions_ToID); - } - private void ProcessRefreshList() - { - foreach (Item tmp in _RefreshItems) - { - ItemInfo.Refresh(tmp); - if (tmp._MyContent != null) ContentInfo.Refresh(tmp._MyContent); - } - foreach (ItemAnnotation tmp in _RefreshItemAnnotations) - { - AnnotationInfo.Refresh(tmp); - } - foreach (ItemDocVersion tmp in _RefreshItemDocVersions) - { - DocVersionInfo.Refresh(tmp); - } - foreach (ItemPart tmp in _RefreshItemParts) - { - PartInfo.Refresh(tmp); - } - foreach (ItemTransition_RangeID tmp in _RefreshItemTransitions_RangeID) - { - TransitionInfo.Refresh(tmp); - } - foreach (ItemTransition_ToID tmp in _RefreshItemTransitions_ToID) - { - TransitionInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Item item) - { - if (!_CacheList.Contains(item)) _CacheList.Add(item); // In AddToCache - } - protected static void RemoveFromCache(Item item) - { - while (_CacheList.Contains(item)) _CacheList.Remove(item); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Item tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ItemID.ToString())) - { - _CacheByPrimaryKey[tmp.ItemID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ItemID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (Item tmp in remove) - RemoveFromCache(tmp); - } - protected static Item GetCachedByPrimaryKey(int itemID) - { - ConvertListToDictionary(); - string key = itemID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextItemID = -1; - public static int NextItemID - { - get { return _nextItemID--; } - } - private int _ItemID; - [System.ComponentModel.DataObjectField(true, true)] - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemID; - } - } - private int? _PreviousID; - public int? PreviousID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyPrevious != null) _PreviousID = _MyPrevious.ItemID; - return _PreviousID; - } - } - private Item _MyPrevious; - public Item MyPrevious - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyPrevious == null && _PreviousID != null) _MyPrevious = Item.Get((int)_PreviousID); - return _MyPrevious; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if ((_MyPrevious == null ? _PreviousID : (int?)_MyPrevious.ItemID) != (value == null ? null : (int?)value.ItemID)) - { - _MyPrevious = value; - _PreviousID = (value == null ? null : (int?)value.ItemID); - PropertyHasChanged(); - } - } - } - private int _ContentID; - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private Content _MyContent; - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = Content.Get(_ContentID); - return _MyContent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyContent != value) - { - _MyContent = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _ItemAnnotationCount = 0; - /// - /// Count of ItemAnnotations for this Item - /// - public int ItemAnnotationCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemAnnotationCount; - } - } - private ItemAnnotations _ItemAnnotations = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ItemAnnotationsConverter))] - public ItemAnnotations ItemAnnotations - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ItemAnnotationCount > 0 && _ItemAnnotations == null) - _ItemAnnotations = ItemAnnotations.GetByItemID(ItemID); - else if (_ItemAnnotations == null) - _ItemAnnotations = ItemAnnotations.New(); - return _ItemAnnotations; - } - } - private int _ItemDocVersionCount = 0; - /// - /// Count of ItemDocVersions for this Item - /// - public int ItemDocVersionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemDocVersionCount; - } - } - private ItemDocVersions _ItemDocVersions = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ItemDocVersionsConverter))] - public ItemDocVersions ItemDocVersions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ItemDocVersionCount > 0 && _ItemDocVersions == null) - _ItemDocVersions = ItemDocVersions.GetByItemID(ItemID); - else if (_ItemDocVersions == null) - _ItemDocVersions = ItemDocVersions.New(); - return _ItemDocVersions; - } - } - private int _NextItemCount = 0; - /// - /// Count of NextItems for this Item - /// - public int NextItemCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _NextItemCount; - } - } - private NextItems _NextItems = null; - /// - /// Related Field - /// - [TypeConverter(typeof(NextItemsConverter))] - public NextItems NextItems - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_NextItemCount > 0 && _NextItems == null) - _NextItems = NextItems.GetByPreviousID(ItemID); - else if (_NextItems == null) - _NextItems = NextItems.New(); - return _NextItems; - } - } - private int _ItemPartCount = 0; - /// - /// Count of ItemParts for this Item - /// - public int ItemPartCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemPartCount; - } - } - private ItemParts _ItemParts = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ItemPartsConverter))] - public ItemParts ItemParts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ItemPartCount > 0 && _ItemParts == null) - _ItemParts = ItemParts.GetByItemID(ItemID); - else if (_ItemParts == null) - _ItemParts = ItemParts.New(); - return _ItemParts; - } - } - private int _ItemTransition_RangeIDCount = 0; - /// - /// Count of ItemTransitions for this Item - /// - public int ItemTransition_RangeIDCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemTransition_RangeIDCount; - } - } - private ItemTransitions_RangeID _ItemTransitions_RangeID = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ItemTransitions_RangeIDConverter))] - public ItemTransitions_RangeID ItemTransitions_RangeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ItemTransition_RangeIDCount > 0 && _ItemTransitions_RangeID == null) - _ItemTransitions_RangeID = ItemTransitions_RangeID.GetByRangeID(ItemID); - else if (_ItemTransitions_RangeID == null) - _ItemTransitions_RangeID = ItemTransitions_RangeID.New(); - return _ItemTransitions_RangeID; - } - } - private int _ItemTransition_ToIDCount = 0; - /// - /// Count of ItemTransitions for this Item - /// - public int ItemTransition_ToIDCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemTransition_ToIDCount; - } - } - private ItemTransitions_ToID _ItemTransitions_ToID = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ItemTransitions_ToIDConverter))] - public ItemTransitions_ToID ItemTransitions_ToID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ItemTransition_ToIDCount > 0 && _ItemTransitions_ToID == null) - _ItemTransitions_ToID = ItemTransitions_ToID.GetByToID(ItemID); - else if (_ItemTransitions_ToID == null) - _ItemTransitions_ToID = ItemTransitions_ToID.New(); - return _ItemTransitions_ToID; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_ItemAnnotations == null ? false : _ItemAnnotations.IsDirty) || (_ItemDocVersions == null ? false : _ItemDocVersions.IsDirty) || (_NextItems == null ? false : _NextItems.IsDirty) || (_ItemParts == null ? false : _ItemParts.IsDirty) || (_ItemTransitions_RangeID == null ? false : _ItemTransitions_RangeID.IsDirty) || (_ItemTransitions_ToID == null ? false : _ItemTransitions_ToID.IsDirty) || (_MyContent == null ? false : _MyContent.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_ItemAnnotations == null ? true : _ItemAnnotations.IsValid) && (_ItemDocVersions == null ? true : _ItemDocVersions.IsValid) && (_NextItems == null ? true : _NextItems.IsValid) && (_ItemParts == null ? true : _ItemParts.IsValid) && (_ItemTransitions_RangeID == null ? true : _ItemTransitions_RangeID.IsValid) && (_ItemTransitions_ToID == null ? true : _ItemTransitions_ToID.IsValid) && (_MyContent == null ? true : _MyContent.IsValid); } - } - // TODO: Replace base Item.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Item - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Item.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 Item - protected override object GetIdValue() - { - return _ItemID; - } - #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 (_ItemAnnotations != null && (hasBrokenRules = _ItemAnnotations.HasBrokenRules) != null) return hasBrokenRules; - if (_ItemDocVersions != null && (hasBrokenRules = _ItemDocVersions.HasBrokenRules) != null) return hasBrokenRules; - if (_NextItems != null && (hasBrokenRules = _NextItems.HasBrokenRules) != null) return hasBrokenRules; - if (_ItemParts != null && (hasBrokenRules = _ItemParts.HasBrokenRules) != null) return hasBrokenRules; - if (_ItemTransitions_RangeID != null && (hasBrokenRules = _ItemTransitions_RangeID.HasBrokenRules) != null) return hasBrokenRules; - if (_ItemTransitions_ToID != null && (hasBrokenRules = _ItemTransitions_ToID.HasBrokenRules) != null) return hasBrokenRules; - 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, "UserID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _ItemExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _ItemExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool MyContentRequired(Item 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(ItemID, ""); - //AuthorizationRules.AllowRead(PreviousID, ""); - //AuthorizationRules.AllowRead(ContentID, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(PreviousID, ""); - //AuthorizationRules.AllowWrite(ContentID, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _ItemExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _ItemExtension.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 += _ItemAnnotationCount; - usedByCount += _ItemDocVersionCount; - usedByCount += _ItemPartCount; - usedByCount += _ItemTransition_RangeIDCount; - usedByCount += _ItemTransition_ToIDCount; - usedByCount += _NextItemCount; - 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 _ItemUnique = 0; - protected static int ItemUnique - { get { return ++_ItemUnique; } } - private int _MyItemUnique = ItemUnique; - public int MyItemUnique - { get { return _MyItemUnique; } } - protected Item() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(ItemID.ToString())) - { - List listItem = _CacheByPrimaryKey[ItemID.ToString()]; // Get the list of items - while (listItem.Contains(this)) listItem.Remove(this); // Remove the item from the list - if (listItem.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(ItemID.ToString()); // remove the list - } - } - public static Item New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Item"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.New", ex); - } - } - public static Item New(Content myContent) - { - Item tmp = Item.New(); - tmp.MyContent = myContent; - return tmp; - } - public static Item New(Item myPrevious, Content myContent, DateTime dts, string userID) - { - Item tmp = Item.New(); - tmp.MyPrevious = myPrevious; - tmp.MyContent = myContent; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static Item MakeItem(Item myPrevious, Content myContent, DateTime dts, string userID) - { - Item tmp = Item.New(myPrevious, myContent, dts, userID); - if (tmp.IsSavable) - { - Item 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 Item New(Item myPrevious, Content myContent) - { - Item tmp = Item.New(); - tmp.MyPrevious = myPrevious; - tmp.MyContent = myContent; - return tmp; - } - public static Item MakeItem(Item myPrevious, Content myContent) - { - Item tmp = Item.New(myPrevious, myContent); - if (tmp.IsSavable) - { - Item 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 Item Get(int itemID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - Item tmp = GetCachedByPrimaryKey(itemID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Item - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - public static Item Get(SafeDataReader dr, Item previous) - { - if (dr.Read()) return new Item(dr, previous); - return null; - } - internal Item(SafeDataReader dr) - { - ReadData(dr); - } - private Item(SafeDataReader dr, Item previous) - { - ReadData(dr); - MarkAsChild(); - } - internal Item(SafeDataReader dr, int parentID) - { - ReadData(dr); - MarkAsChild(); - } - public static void Delete(int itemID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Item"); - try - { - DataPortal.Delete(new PKCriteria(itemID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Delete", ex); - } - } - public override Item Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Item"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Item"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Item"); - try - { - BuildRefreshList(); - Item item = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(item);//Refresh the item in AllList - ProcessRefreshList(); - return item; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _ItemID; - public int ItemID - { get { return _ItemID; } } - public PKCriteria(int itemID) - { - _ItemID = itemID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _ItemID = NextItemID; - // Database Defaults - _DTS = _ItemExtension.DefaultDTS; - _UserID = _ItemExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.ReadData", GetHashCode()); - try - { - _ItemID = dr.GetInt32("ItemID"); - _PreviousID = (int?)dr.GetValue("PreviousID"); - _ContentID = dr.GetInt32("ContentID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _ItemAnnotationCount = dr.GetInt32("AnnotationCount"); - _ItemDocVersionCount = dr.GetInt32("DocVersionCount"); - _NextItemCount = dr.GetInt32("NextCount"); - _ItemPartCount = dr.GetInt32("PartCount"); - _ItemTransition_RangeIDCount = dr.GetInt32("Transition_RangeIDCount"); - _ItemTransition_ToIDCount = dr.GetInt32("Transition_ToIDCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Item.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.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 = "getItem"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _ItemAnnotations = ItemAnnotations.Get(dr); - // load child objects - dr.NextResult(); - _ItemDocVersions = ItemDocVersions.Get(dr); - // load child objects - dr.NextResult(); - _ItemParts = ItemParts.Get(dr); - // load child objects - dr.NextResult(); - _ItemTransitions_RangeID = ItemTransitions_RangeID.Get(dr); - // load child objects - dr.NextResult(); - _ItemTransitions_ToID = ItemTransitions_ToID.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("Item.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Item.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("Item.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Item.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyContent != null) _MyContent.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addItem"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@PreviousID", PreviousID); - cm.Parameters.AddWithValue("@ContentID", ContentID); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - // Output Calculated Columns - SqlParameter param_ItemID = new SqlParameter("@newItemID", SqlDbType.Int); - param_ItemID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_ItemID); - 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 - _ItemID = (int)cm.Parameters["@newItemID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_ItemAnnotations != null) _ItemAnnotations.Update(this); - if (_ItemDocVersions != null) _ItemDocVersions.Update(this); - if (_NextItems != null) _NextItems.Update(this); - if (_ItemParts != null) _ItemParts.Update(this); - if (_ItemTransitions_RangeID != null) _ItemTransitions_RangeID.Update(this); - if (_ItemTransitions_ToID != null) _ItemTransitions_ToID.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Item.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int itemID, Item myPrevious, Content myContent, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addItem"; - // Input All Fields - Except Calculated Columns - if (myPrevious != null) cm.Parameters.AddWithValue("@PreviousID", myPrevious.ItemID); - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UserID", userID); - // Output Calculated Columns - SqlParameter param_ItemID = new SqlParameter("@newItemID", SqlDbType.Int); - param_ItemID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_ItemID); - 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 - itemID = (int)cm.Parameters["@newItemID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.Add", ex); - throw new DbCslaException("Item.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}] Item.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("Item.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}] Item.SQLUpdate", GetHashCode()); - try - { - if (_MyContent != null) _MyContent.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateItem"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@ItemID", _ItemID); - cm.Parameters.AddWithValue("@PreviousID", PreviousID); - cm.Parameters.AddWithValue("@ContentID", ContentID); - 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 (_ItemAnnotations != null) _ItemAnnotations.Update(this); - if (_ItemDocVersions != null) _ItemDocVersions.Update(this); - if (_NextItems != null) _NextItems.Update(this); - if (_ItemParts != null) _ItemParts.Update(this); - if (_ItemTransitions_RangeID != null) _ItemTransitions_RangeID.Update(this); - if (_ItemTransitions_ToID != null) _ItemTransitions_ToID.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.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 = Item.Add(cn, ref _ItemID, _MyPrevious, _MyContent, _DTS, _UserID); - else - _LastChanged = Item.Update(cn, ref _ItemID, _MyPrevious, _MyContent, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - if (_ItemAnnotations != null) _ItemAnnotations.Update(this); - if (_ItemDocVersions != null) _ItemDocVersions.Update(this); - if (_NextItems != null) _NextItems.Update(this); - if (_ItemParts != null) _ItemParts.Update(this); - if (_ItemTransitions_RangeID != null) _ItemTransitions_RangeID.Update(this); - if (_ItemTransitions_ToID != null) _ItemTransitions_ToID.Update(this); - } - internal void DeleteSelf(Item item) - { - // 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"]; - Item.Remove(cn, _ItemID); - MarkNew(); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int itemID, Item myPrevious, Content myContent, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateItem"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ItemID", itemID); - if (myPrevious != null) cm.Parameters.AddWithValue("@PreviousID", myPrevious.ItemID); - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - 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("Item.Update", ex); - throw new DbCslaException("Item.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_ItemID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteItem"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Item.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int itemID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteItem"; - // Input PK Fields - cm.Parameters.AddWithValue("@ItemID", itemID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.Remove", ex); - throw new DbCslaException("Item.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int itemID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(itemID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _ItemID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int itemID) - { - _ItemID = itemID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Item.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsItem"; - cm.Parameters.AddWithValue("@ItemID", _ItemID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Item.DataPortal_Execute", ex); - throw new DbCslaException("Item.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - ItemExtension _ItemExtension = new ItemExtension(); - [Serializable()] - partial class ItemExtension : 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 ItemConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Item) - { - // Return the ToString value - return ((Item)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ItemExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Item -// { -// partial class ItemExtension : 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/OldGenerated/ItemAnnotation.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemAnnotation.cs deleted file mode 100644 index b0cbd41b..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemAnnotation.cs +++ /dev/null @@ -1,550 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ItemAnnotation Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemAnnotationConverter))] - public partial class ItemAnnotation : 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 _AnnotationID; - [System.ComponentModel.DataObjectField(true, true)] - public int AnnotationID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAnnotation != null) _AnnotationID = _MyAnnotation.AnnotationID; - return _AnnotationID; - } - } - private Annotation _MyAnnotation; - [System.ComponentModel.DataObjectField(true, true)] - public Annotation MyAnnotation - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAnnotation == null && _AnnotationID != 0) _MyAnnotation = Annotation.Get(_AnnotationID); - return _MyAnnotation; - } - } - private int _TypeID; - public int TypeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAnnotationType != null) _TypeID = _MyAnnotationType.TypeID; - return _TypeID; - } - } - private AnnotationType _MyAnnotationType; - public AnnotationType MyAnnotationType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAnnotationType == null && _TypeID != 0) _MyAnnotationType = AnnotationType.Get(_TypeID); - return _MyAnnotationType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyAnnotationType != value) - { - _MyAnnotationType = value; - PropertyHasChanged(); - } - } - } - private string _RtfText = string.Empty; - public string RtfText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RtfText; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_RtfText != value) - { - _RtfText = value; - PropertyHasChanged(); - } - } - } - private string _SearchText = string.Empty; - public string SearchText - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _SearchText; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_SearchText != value) - { - _SearchText = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private string _AnnotationType_Name = string.Empty; - public string AnnotationType_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AnnotationType_Name; - } - } - private string _AnnotationType_Config = string.Empty; - public string AnnotationType_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AnnotationType_Config; - } - } - private DateTime _AnnotationType_DTS = new DateTime(); - public DateTime AnnotationType_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AnnotationType_DTS; - } - } - private string _AnnotationType_UserID = string.Empty; - public string AnnotationType_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _AnnotationType_UserID; - } - } - // TODO: Check ItemAnnotation.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 ItemAnnotation - protected override object GetIdValue() - { - return _AnnotationID; - } - // TODO: Replace base ItemAnnotation.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ItemAnnotation - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyAnnotationType == null ? false : _MyAnnotationType.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyAnnotationType == null ? true : _MyAnnotationType.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 (_MyAnnotationType != null && (hasBrokenRules = _MyAnnotationType.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(MyAnnotationTypeRequired, "MyAnnotationType"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("RtfText", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("SearchText", 1073741823)); - 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 MyAnnotationTypeRequired(ItemAnnotation target, Csla.Validation.RuleArgs e) - { - if (target._TypeID == 0 && target._MyAnnotationType == 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(AnnotationID, ""); - //AuthorizationRules.AllowRead(TypeID, ""); - //AuthorizationRules.AllowWrite(TypeID, ""); - //AuthorizationRules.AllowRead(RtfText, ""); - //AuthorizationRules.AllowWrite(RtfText, ""); - //AuthorizationRules.AllowRead(SearchText, ""); - //AuthorizationRules.AllowWrite(SearchText, ""); - //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 ItemAnnotation New(AnnotationType myAnnotationType) - { - return new ItemAnnotation(myAnnotationType); - } - internal static ItemAnnotation Get(SafeDataReader dr) - { - return new ItemAnnotation(dr); - } - public ItemAnnotation() - { - MarkAsChild(); - _AnnotationID = Annotation.NextAnnotationID; - _DTS = _ItemAnnotationExtension.DefaultDTS; - _UserID = _ItemAnnotationExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ItemAnnotation(AnnotationType myAnnotationType) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _ItemAnnotationExtension.DefaultDTS; - _UserID = _ItemAnnotationExtension.DefaultUserID; - _MyAnnotationType = myAnnotationType; - ValidationRules.CheckRules(); - } - internal ItemAnnotation(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemAnnotation.FetchDR", GetHashCode()); - try - { - _AnnotationID = dr.GetInt32("AnnotationID"); - _TypeID = dr.GetInt32("TypeID"); - _RtfText = dr.GetString("RtfText"); - _SearchText = dr.GetString("SearchText"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _AnnotationType_Name = dr.GetString("AnnotationType_Name"); - _AnnotationType_Config = dr.GetString("AnnotationType_Config"); - _AnnotationType_DTS = dr.GetDateTime("AnnotationType_DTS"); - _AnnotationType_UserID = dr.GetString("AnnotationType_UserID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemAnnotation.FetchDR", ex); - throw new DbCslaException("ItemAnnotation.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Item myItem) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Annotation.Add(cn, ref _AnnotationID, myItem, _MyAnnotationType, _RtfText, _SearchText, _Config, _DTS, _UserID); - MarkOld(); - } - internal void Update(Item myItem) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Annotation.Update(cn, ref _AnnotationID, myItem, _MyAnnotationType, _RtfText, _SearchText, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Item myItem) - { - // 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"]; - Annotation.Remove(cn, _AnnotationID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ItemAnnotationExtension _ItemAnnotationExtension = new ItemAnnotationExtension(); - [Serializable()] - partial class ItemAnnotationExtension : 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 ItemAnnotationConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemAnnotation) - { - // Return the ToString value - return ((ItemAnnotation)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ItemAnnotationExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ItemAnnotation -// { -// partial class ItemAnnotationExtension : 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/OldGenerated/ItemAnnotations.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemAnnotations.cs deleted file mode 100644 index 6a595bc4..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemAnnotations.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ItemAnnotations Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemAnnotationsConverter))] - public partial class ItemAnnotations : 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 ItemAnnotation this[Annotation myAnnotation] - { - get - { - foreach (ItemAnnotation annotation in this) - if (annotation.AnnotationID == myAnnotation.AnnotationID) - return annotation; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ItemAnnotation GetItem(Annotation myAnnotation) - { - foreach (ItemAnnotation annotation in this) - if (annotation.AnnotationID == myAnnotation.AnnotationID) - return annotation; - return null; - } - public ItemAnnotation Add(AnnotationType myAnnotationType) // One to Many - { - ItemAnnotation annotation = ItemAnnotation.New(myAnnotationType); - this.Add(annotation); - return annotation; - } - public void Remove(Annotation myAnnotation) - { - foreach (ItemAnnotation annotation in this) - { - if (annotation.AnnotationID == myAnnotation.AnnotationID) - { - Remove(annotation); - break; - } - } - } - public bool Contains(Annotation myAnnotation) - { - foreach (ItemAnnotation annotation in this) - if (annotation.AnnotationID == myAnnotation.AnnotationID) - return true; - return false; - } - public bool ContainsDeleted(Annotation myAnnotation) - { - foreach (ItemAnnotation annotation in DeletedList) - if (annotation.AnnotationID == myAnnotation.AnnotationID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ItemAnnotation itemAnnotation in this) - if ((hasBrokenRules = itemAnnotation.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 ItemAnnotations New() - { - return new ItemAnnotations(); - } - internal static ItemAnnotations Get(SafeDataReader dr) - { - return new ItemAnnotations(dr); - } - public static ItemAnnotations GetByItemID(int itemID) - { - try - { - return DataPortal.Fetch(new ItemIDCriteria(itemID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemAnnotations.GetByItemID", ex); - } - } - private ItemAnnotations() - { - MarkAsChild(); - } - internal ItemAnnotations(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(ItemAnnotation.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ItemIDCriteria - { - public ItemIDCriteria(int itemID) - { - _ItemID = itemID; - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - private void DataPortal_Fetch(ItemIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemAnnotations.DataPortal_FetchItemID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAnnotationsByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ItemAnnotation(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemAnnotations.DataPortal_FetchItemID", ex); - throw new DbCslaException("ItemAnnotations.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Item item) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ItemAnnotation obj in DeletedList) - obj.DeleteSelf(item);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (ItemAnnotation obj in this) - { - if (obj.IsNew) - obj.Insert(item); - else - obj.Update(item); - } - } - 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 - ItemAnnotationsPropertyDescriptor pd = new ItemAnnotationsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ItemAnnotationsPropertyDescriptor : vlnListPropertyDescriptor - { - private ItemAnnotation Item { get { return (ItemAnnotation)_Item; } } - public ItemAnnotationsPropertyDescriptor(ItemAnnotations collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ItemAnnotationsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemAnnotations) - { - // Return department and department role separated by comma. - return ((ItemAnnotations)value).Items.Count.ToString() + " Annotations"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemDocVersion.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemDocVersion.cs deleted file mode 100644 index c7de8343..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemDocVersion.cs +++ /dev/null @@ -1,681 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ItemDocVersion Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemDocVersionConverter))] - public partial class ItemDocVersion : 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 _VersionID; - [System.ComponentModel.DataObjectField(true, true)] - public int VersionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion != null) _VersionID = _MyDocVersion.VersionID; - return _VersionID; - } - } - private DocVersion _MyDocVersion; - [System.ComponentModel.DataObjectField(true, true)] - public DocVersion MyDocVersion - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion == null && _VersionID != 0) _MyDocVersion = DocVersion.Get(_VersionID); - return _MyDocVersion; - } - } - private int _FolderID; - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder != null) _FolderID = _MyFolder.FolderID; - return _FolderID; - } - } - private Folder _MyFolder; - public Folder MyFolder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder == null && _FolderID != 0) _MyFolder = Folder.Get(_FolderID); - return _MyFolder; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyFolder != value) - { - _MyFolder = value; - PropertyHasChanged(); - } - } - } - private int _VersionType; - /// - /// 0 Working Draft, 1 Temporary, 128 Revision, 129 Approved (Greater than 127 - non editable) - /// - public int VersionType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _VersionType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_VersionType != value) - { - _VersionType = value; - PropertyHasChanged(); - } - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Name != value) - { - _Name = value; - PropertyHasChanged(); - } - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Title != value) - { - _Title = value; - PropertyHasChanged(); - } - } - } - private int? _FormatID; - public int? FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat != null) _FormatID = _MyFormat.FormatID; - return _FormatID; - } - } - private Format _MyFormat; - public Format MyFormat - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFormat == null && _FormatID != null) _MyFormat = Format.Get((int)_FormatID); - return _MyFormat; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if ((_MyFormat == null ? _FormatID : (int?)_MyFormat.FormatID) != (value == null ? null : (int?)value.FormatID)) - { - _MyFormat = value; - _FormatID = (value == null ? null : (int?)value.FormatID); - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _Folder_ParentID; - public int Folder_ParentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ParentID; - } - } - private int _Folder_DBID; - public int Folder_DBID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_DBID; - } - } - private string _Folder_Name = string.Empty; - public string Folder_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Name; - } - } - private string _Folder_Title = string.Empty; - public string Folder_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Title; - } - } - private string _Folder_ShortName = string.Empty; - public string Folder_ShortName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ShortName; - } - } - private int? _Folder_FormatID; - public int? Folder_FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_FormatID; - } - } - private double? _Folder_ManualOrder; - public double? Folder_ManualOrder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ManualOrder; - } - } - private string _Folder_Config = string.Empty; - public string Folder_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Config; - } - } - private DateTime _Folder_DTS = new DateTime(); - public DateTime Folder_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_DTS; - } - } - private string _Folder_UsrID = string.Empty; - public string Folder_UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_UsrID; - } - } - // TODO: Check ItemDocVersion.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 ItemDocVersion - protected override object GetIdValue() - { - return _VersionID; - } - // TODO: Replace base ItemDocVersion.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ItemDocVersion - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyFolder == null ? false : _MyFolder.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyFolder == null ? true : _MyFolder.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 (_MyFolder != null && (hasBrokenRules = _MyFolder.HasBrokenRules) != null) return hasBrokenRules; - if (_MyFormat != null && (hasBrokenRules = _MyFormat.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(MyFolderRequired, "MyFolder"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 510)); - 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 MyFolderRequired(ItemDocVersion target, Csla.Validation.RuleArgs e) - { - if (target._FolderID == 0 && target._MyFolder == 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(VersionID, ""); - //AuthorizationRules.AllowRead(FolderID, ""); - //AuthorizationRules.AllowWrite(FolderID, ""); - //AuthorizationRules.AllowRead(VersionType, ""); - //AuthorizationRules.AllowWrite(VersionType, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowRead(FormatID, ""); - //AuthorizationRules.AllowWrite(FormatID, ""); - //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 ItemDocVersion New(Folder myFolder, string name) - { - return new ItemDocVersion(myFolder, name); - } - internal static ItemDocVersion Get(SafeDataReader dr) - { - return new ItemDocVersion(dr); - } - public ItemDocVersion() - { - MarkAsChild(); - _VersionID = DocVersion.NextVersionID; - _VersionType = _ItemDocVersionExtension.DefaultVersionType; - _DTS = _ItemDocVersionExtension.DefaultDTS; - _UserID = _ItemDocVersionExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ItemDocVersion(Folder myFolder, string name) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _VersionType = _ItemDocVersionExtension.DefaultVersionType; - _DTS = _ItemDocVersionExtension.DefaultDTS; - _UserID = _ItemDocVersionExtension.DefaultUserID; - _MyFolder = myFolder; - _Name = name; - ValidationRules.CheckRules(); - } - internal ItemDocVersion(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemDocVersion.FetchDR", GetHashCode()); - try - { - _VersionID = dr.GetInt32("VersionID"); - _FolderID = dr.GetInt32("FolderID"); - _VersionType = dr.GetInt32("VersionType"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _FormatID = (int?)dr.GetValue("FormatID"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _Folder_ParentID = dr.GetInt32("Folder_ParentID"); - _Folder_DBID = dr.GetInt32("Folder_DBID"); - _Folder_Name = dr.GetString("Folder_Name"); - _Folder_Title = dr.GetString("Folder_Title"); - _Folder_ShortName = dr.GetString("Folder_ShortName"); - _Folder_FormatID = (int?)dr.GetValue("Folder_FormatID"); - _Folder_ManualOrder = (double?)dr.GetValue("Folder_ManualOrder"); - _Folder_Config = dr.GetString("Folder_Config"); - _Folder_DTS = dr.GetDateTime("Folder_DTS"); - _Folder_UsrID = dr.GetString("Folder_UsrID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemDocVersion.FetchDR", ex); - throw new DbCslaException("ItemDocVersion.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Item myItem) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = DocVersion.Add(cn, ref _VersionID, _MyFolder, _VersionType, _Name, _Title, myItem, _MyFormat, _Config, _DTS, _UserID); - MarkOld(); - } - internal void Update(Item myItem) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = DocVersion.Update(cn, ref _VersionID, _MyFolder, _VersionType, _Name, _Title, myItem, _MyFormat, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Item myItem) - { - // 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"]; - DocVersion.Remove(cn, _VersionID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ItemDocVersionExtension _ItemDocVersionExtension = new ItemDocVersionExtension(); - [Serializable()] - partial class ItemDocVersionExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultVersionType - { - 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 ItemDocVersionConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemDocVersion) - { - // Return the ToString value - return ((ItemDocVersion)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ItemDocVersionExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ItemDocVersion -// { -// partial class ItemDocVersionExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultVersionType -// { -// 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/OldGenerated/ItemDocVersions.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemDocVersions.cs deleted file mode 100644 index bc9e6e1d..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemDocVersions.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ItemDocVersions Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemDocVersionsConverter))] - public partial class ItemDocVersions : 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 ItemDocVersion this[DocVersion myDocVersion] - { - get - { - foreach (ItemDocVersion docVersion in this) - if (docVersion.VersionID == myDocVersion.VersionID) - return docVersion; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ItemDocVersion GetItem(DocVersion myDocVersion) - { - foreach (ItemDocVersion docVersion in this) - if (docVersion.VersionID == myDocVersion.VersionID) - return docVersion; - return null; - } - public ItemDocVersion Add(Folder myFolder, string name) // One to Many - { - ItemDocVersion docVersion = ItemDocVersion.New(myFolder, name); - this.Add(docVersion); - return docVersion; - } - public void Remove(DocVersion myDocVersion) - { - foreach (ItemDocVersion docVersion in this) - { - if (docVersion.VersionID == myDocVersion.VersionID) - { - Remove(docVersion); - break; - } - } - } - public bool Contains(DocVersion myDocVersion) - { - foreach (ItemDocVersion docVersion in this) - if (docVersion.VersionID == myDocVersion.VersionID) - return true; - return false; - } - public bool ContainsDeleted(DocVersion myDocVersion) - { - foreach (ItemDocVersion docVersion in DeletedList) - if (docVersion.VersionID == myDocVersion.VersionID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ItemDocVersion itemDocVersion in this) - if ((hasBrokenRules = itemDocVersion.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 ItemDocVersions New() - { - return new ItemDocVersions(); - } - internal static ItemDocVersions Get(SafeDataReader dr) - { - return new ItemDocVersions(dr); - } - public static ItemDocVersions GetByItemID(int itemID) - { - try - { - return DataPortal.Fetch(new ItemIDCriteria(itemID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemDocVersions.GetByItemID", ex); - } - } - private ItemDocVersions() - { - MarkAsChild(); - } - internal ItemDocVersions(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(ItemDocVersion.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ItemIDCriteria - { - public ItemIDCriteria(int itemID) - { - _ItemID = itemID; - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - private void DataPortal_Fetch(ItemIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemDocVersions.DataPortal_FetchItemID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersionsByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ItemDocVersion(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemDocVersions.DataPortal_FetchItemID", ex); - throw new DbCslaException("ItemDocVersions.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Item item) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ItemDocVersion obj in DeletedList) - obj.DeleteSelf(item);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (ItemDocVersion obj in this) - { - if (obj.IsNew) - obj.Insert(item); - else - obj.Update(item); - } - } - 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 - ItemDocVersionsPropertyDescriptor pd = new ItemDocVersionsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ItemDocVersionsPropertyDescriptor : vlnListPropertyDescriptor - { - private ItemDocVersion Item { get { return (ItemDocVersion)_Item; } } - public ItemDocVersionsPropertyDescriptor(ItemDocVersions collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ItemDocVersionsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemDocVersions) - { - // Return department and department role separated by comma. - return ((ItemDocVersions)value).Items.Count.ToString() + " DocVersions"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemInfo.cs deleted file mode 100644 index 6a730092..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemInfo.cs +++ /dev/null @@ -1,610 +0,0 @@ -// ======================================================================== -// 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 ItemInfoEvent(object sender); - /// - /// ItemInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemInfoConverter))] - public partial class ItemInfo : ReadOnlyBase, IDisposable - { - public event ItemInfoEvent 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(ItemInfo itemInfo) - { - if (!_CacheList.Contains(itemInfo)) _CacheList.Add(itemInfo); // In AddToCache - } - protected static void RemoveFromCache(ItemInfo itemInfo) - { - while (_CacheList.Contains(itemInfo)) _CacheList.Remove(itemInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (ItemInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ItemID.ToString())) - { - _CacheByPrimaryKey[tmp.ItemID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ItemID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (ItemInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(ItemInfoList lst) - { - foreach (ItemInfo item in lst) AddToCache(item); - } - protected static ItemInfo GetCachedByPrimaryKey(int itemID) - { - ConvertListToDictionary(); - string key = itemID.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 Item _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _ItemID; - [System.ComponentModel.DataObjectField(true, true)] - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemID; - } - } - private int? _PreviousID; - public int? PreviousID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyPrevious != null) _PreviousID = _MyPrevious.ItemID; - return _PreviousID; - } - } - private ItemInfo _MyPrevious; - public ItemInfo MyPrevious - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyPrevious == null && _PreviousID != null) _MyPrevious = ItemInfo.Get((int)_PreviousID); - return _MyPrevious; - } - } - private int _ContentID; - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private ContentInfo _MyContent; - public ContentInfo MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = ContentInfo.Get(_ContentID); - return _MyContent; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _ItemAnnotationCount = 0; - /// - /// Count of ItemAnnotations for this Item - /// - public int ItemAnnotationCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemAnnotationCount; - } - } - private AnnotationInfoList _ItemAnnotations = null; - [TypeConverter(typeof(AnnotationInfoListConverter))] - public AnnotationInfoList ItemAnnotations - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ItemAnnotationCount < 0 || (_ItemAnnotationCount > 0 && _ItemAnnotations == null)) - _ItemAnnotations = AnnotationInfoList.GetByItemID(_ItemID); - if (_ItemAnnotationCount < 0) - _ItemAnnotationCount = _ItemAnnotations.Count; - return _ItemAnnotations; - } - } - public void RefreshItemAnnotations() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._ItemAnnotationCount = -1; // This will cause the data to be requeried - } - private int _ItemDocVersionCount = 0; - /// - /// Count of ItemDocVersions for this Item - /// - public int ItemDocVersionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemDocVersionCount; - } - } - private DocVersionInfoList _ItemDocVersions = null; - [TypeConverter(typeof(DocVersionInfoListConverter))] - public DocVersionInfoList ItemDocVersions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ItemDocVersionCount < 0 || (_ItemDocVersionCount > 0 && _ItemDocVersions == null)) - _ItemDocVersions = DocVersionInfoList.GetByItemID(_ItemID); - if (_ItemDocVersionCount < 0) - _ItemDocVersionCount = _ItemDocVersions.Count; - return _ItemDocVersions; - } - } - public void RefreshItemDocVersions() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._ItemDocVersionCount = -1; // This will cause the data to be requeried - } - private int _NextItemCount = 0; - /// - /// Count of NextItems for this Item - /// - public int NextItemCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _NextItemCount; - } - } - private ItemInfoList _NextItems = null; - [TypeConverter(typeof(ItemInfoListConverter))] - public ItemInfoList NextItems - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_NextItemCount < 0 || (_NextItemCount > 0 && _NextItems == null)) - _NextItems = ItemInfoList.GetNext(_ItemID); - if (_NextItemCount < 0) - _NextItemCount = _NextItems.Count; - return _NextItems; - } - } - public void RefreshNextItems() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._NextItemCount = -1; // This will cause the data to be requeried - } - private int _ItemPartCount = 0; - /// - /// Count of ItemParts for this Item - /// - public int ItemPartCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemPartCount; - } - } - private PartInfoList _ItemParts = null; - [TypeConverter(typeof(PartInfoListConverter))] - public PartInfoList ItemParts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ItemPartCount < 0 || (_ItemPartCount > 0 && _ItemParts == null)) - _ItemParts = PartInfoList.GetByItemID(_ItemID); - if (_ItemPartCount < 0) - _ItemPartCount = _ItemParts.Count; - return _ItemParts; - } - } - public void RefreshItemParts() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._ItemPartCount = -1; // This will cause the data to be requeried - } - private int _ItemTransition_RangeIDCount = 0; - /// - /// Count of ItemTransitions for this Item - /// - public int ItemTransition_RangeIDCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemTransition_RangeIDCount; - } - } - private TransitionInfoList _ItemTransitions_RangeID = null; - [TypeConverter(typeof(TransitionInfoListConverter))] - public TransitionInfoList ItemTransitions_RangeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ItemTransition_RangeIDCount < 0 || (_ItemTransition_RangeIDCount > 0 && _ItemTransitions_RangeID == null)) - _ItemTransitions_RangeID = TransitionInfoList.GetByRangeID(_ItemID); - if (_ItemTransition_RangeIDCount < 0) - _ItemTransition_RangeIDCount = _ItemTransitions_RangeID.Count; - return _ItemTransitions_RangeID; - } - } - public void RefreshItemTransitions_RangeID() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._ItemTransition_RangeIDCount = -1; // This will cause the data to be requeried - } - private int _ItemTransition_ToIDCount = 0; - /// - /// Count of ItemTransitions for this Item - /// - public int ItemTransition_ToIDCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ItemTransition_ToIDCount; - } - } - private TransitionInfoList _ItemTransitions_ToID = null; - [TypeConverter(typeof(TransitionInfoListConverter))] - public TransitionInfoList ItemTransitions_ToID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ItemTransition_ToIDCount < 0 || (_ItemTransition_ToIDCount > 0 && _ItemTransitions_ToID == null)) - _ItemTransitions_ToID = TransitionInfoList.GetByToID(_ItemID); - if (_ItemTransition_ToIDCount < 0) - _ItemTransition_ToIDCount = _ItemTransitions_ToID.Count; - return _ItemTransitions_ToID; - } - } - public void RefreshItemTransitions_ToID() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ItemID.ToString())) - foreach (ItemInfo tmp in _CacheByPrimaryKey[_ItemID.ToString()]) - tmp._ItemTransition_ToIDCount = -1; // This will cause the data to be requeried - } - // TODO: Replace base ItemInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ItemInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check ItemInfo.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 ItemInfo - protected override object GetIdValue() - { - return _ItemID; - } - #endregion - #region Factory Methods - private static int _ItemInfoUnique = 0; - private static int ItemInfoUnique - { get { return ++_ItemInfoUnique; } } - private int _MyItemInfoUnique = ItemInfoUnique; - public int MyItemInfoUnique - { get { return _MyItemInfoUnique; } } - protected ItemInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(ItemID.ToString())) return; - List listItemInfo = _CacheByPrimaryKey[ItemID.ToString()]; // Get the list of items - while (listItemInfo.Contains(this)) listItemInfo.Remove(this); // Remove the item from the list - if (listItemInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(ItemID.ToString()); // remove the list - } - public virtual Item Get() - { - return _Editable = Item.Get(_ItemID); - } - public static void Refresh(Item tmp) - { - string key = tmp.ItemID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ItemInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Item tmp) - { - if (_PreviousID != tmp.PreviousID) - { - if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for old value - _PreviousID = tmp.PreviousID; // Update the value - } - _MyPrevious = null; // Reset list so that the next line gets a new list - if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value - if (_ContentID != tmp.ContentID) - { - if (MyContent != null) MyContent.RefreshContentItems(); // 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.RefreshContentItems(); // Update List for new value - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _ItemInfoExtension.Refresh(this); - if (_MyPrevious != null) - { - _MyPrevious.Dispose();// Dispose related value - _MyPrevious = null;// Reset related value - } - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(ContentItem tmp) - { - string key = tmp.ItemID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ItemInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ContentItem tmp) - { - if (_PreviousID != tmp.PreviousID) - { - if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for old value - _PreviousID = tmp.PreviousID; // Update the value - } - _MyPrevious = null; // Reset list so that the next line gets a new list - if (MyPrevious != null) MyPrevious.RefreshNextItems(); // Update List for new value - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _ItemInfoExtension.Refresh(this); - if (_MyPrevious != null) - { - _MyPrevious.Dispose();// Dispose related value - _MyPrevious = null;// Reset related value - } - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - OnChange();// raise an event - } - public static ItemInfo Get(int itemID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - ItemInfo tmp = GetCachedByPrimaryKey(itemID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ItemInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal ItemInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfo.Constructor", ex); - throw new DbCslaException("ItemInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _ItemID; - public int ItemID - { get { return _ItemID; } } - public PKCriteria(int itemID) - { - _ItemID = itemID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.ReadData", GetHashCode()); - try - { - _ItemID = dr.GetInt32("ItemID"); - _PreviousID = (int?)dr.GetValue("PreviousID"); - _ContentID = dr.GetInt32("ContentID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _ItemAnnotationCount = dr.GetInt32("AnnotationCount"); - _ItemDocVersionCount = dr.GetInt32("DocVersionCount"); - _NextItemCount = dr.GetInt32("NextCount"); - _ItemPartCount = dr.GetInt32("PartCount"); - _ItemTransition_RangeIDCount = dr.GetInt32("Transition_RangeIDCount"); - _ItemTransition_ToIDCount = dr.GetInt32("Transition_ToIDCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ItemInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.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 = "getItem"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - 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("ItemInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ItemInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - ItemInfoExtension _ItemInfoExtension = new ItemInfoExtension(); - [Serializable()] - partial class ItemInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(ItemInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class ItemInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemInfo) - { - // Return the ToString value - return ((ItemInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemInfoList.cs deleted file mode 100644 index 9797584e..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemInfoList.cs +++ /dev/null @@ -1,312 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ItemInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemInfoListConverter))] - public partial class ItemInfoList : 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 (ItemInfo tmp in this) - { - tmp.Changed += new ItemInfoEvent(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 (ItemInfo tmp in this) - { - tmp.Changed -= new ItemInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static ItemInfoList _ItemInfoList = null; - /// - /// Return a list of all projects. - /// - public static ItemInfoList Get() - { - try - { - if (_ItemInfoList != null) - return _ItemInfoList; - ItemInfoList tmp = DataPortal.Fetch(); - ItemInfo.AddList(tmp); - tmp.AddEvents(); - _ItemInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static ItemInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on ItemInfoList.Get", ex); - // } - //} - public static ItemInfoList GetNext(int? previousID) - { - try - { - ItemInfoList tmp = DataPortal.Fetch(new PreviousIDCriteria(previousID)); - ItemInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetNext", ex); - } - } - public static ItemInfoList GetByContentID(int contentID) - { - try - { - ItemInfoList tmp = DataPortal.Fetch(new ContentIDCriteria(contentID)); - ItemInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetByContentID", ex); - } - } - private ItemInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getItems"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ItemInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ItemInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class PreviousIDCriteria - { - public PreviousIDCriteria(int? previousID) - { - _PreviousID = previousID; - } - private int? _PreviousID; - public int? PreviousID - { - get { return _PreviousID; } - set { _PreviousID = value; } - } - } - private void DataPortal_Fetch(PreviousIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfoList.DataPortal_FetchPreviousID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getNextItems"; - cm.Parameters.AddWithValue("@PreviousID", criteria.PreviousID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ItemInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfoList.DataPortal_FetchPreviousID", ex); - throw new DbCslaException("ItemInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ContentIDCriteria - { - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - private int _ContentID; - public int ContentID - { - get { return _ContentID; } - set { _ContentID = value; } - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfoList.DataPortal_FetchContentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getItemsByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ItemInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfoList.DataPortal_FetchContentID", ex); - throw new DbCslaException("ItemInfoList.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 - ItemInfoListPropertyDescriptor pd = new ItemInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ItemInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private ItemInfo Item { get { return (ItemInfo)_Item; } } - public ItemInfoListPropertyDescriptor(ItemInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ItemInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemInfoList) - { - // Return department and department role separated by comma. - return ((ItemInfoList)value).Items.Count.ToString() + " Items"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemPart.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemPart.cs deleted file mode 100644 index f277ce4e..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemPart.cs +++ /dev/null @@ -1,470 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ItemPart Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemPartConverter))] - public partial class ItemPart : 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 _ContentID; - [System.ComponentModel.DataObjectField(true, true)] - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private Content _MyContent; - [System.ComponentModel.DataObjectField(true, true)] - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = Content.Get(_ContentID); - return _MyContent; - } - } - private int _FromType; - [System.ComponentModel.DataObjectField(true, true)] - public int FromType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FromType; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _Content_Number; - } - } - private string _Content_Text = string.Empty; - public string Content_Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - 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 - { - return _Content_Type; - } - } - private int? _Content_FormatID; - public int? Content_FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_FormatID; - } - } - private string _Content_Config = string.Empty; - public string Content_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_Config; - } - } - private DateTime _Content_DTS = new DateTime(); - public DateTime Content_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_DTS; - } - } - private string _Content_UserID = string.Empty; - public string Content_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_UserID; - } - } - // TODO: Check ItemPart.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 ItemPart - protected override object GetIdValue() - { - return (((((_ContentID.ToString() + _FromType.ToString()).GetHashCode().ToString()).GetHashCode().ToString()).GetHashCode().ToString()).GetHashCode().ToString()).GetHashCode(); - } - // TODO: Replace base ItemPart.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ItemPart - //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, "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(ContentID, ""); - //AuthorizationRules.AllowRead(FromType, ""); - //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 ItemPart New(Content myContent, int fromType) - { - return new ItemPart(myContent, fromType); - } - internal static ItemPart Get(SafeDataReader dr) - { - return new ItemPart(dr); - } - public ItemPart() - { - MarkAsChild(); - - _DTS = _ItemPartExtension.DefaultDTS; - _UserID = _ItemPartExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ItemPart(Content myContent, int fromType) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _ItemPartExtension.DefaultDTS; - _UserID = _ItemPartExtension.DefaultUserID; - _MyContent = myContent; - _FromType = fromType; - ValidationRules.CheckRules(); - } - internal ItemPart(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemPart.FetchDR", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _FromType = dr.GetInt32("FromType"); - _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("ItemPart.FetchDR", ex); - throw new DbCslaException("ItemPart.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Item myItem) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Part.Add(cn, _MyContent, _FromType, myItem, _DTS, _UserID); - MarkOld(); - } - internal void Update(Item myItem) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Part.Update(cn, _MyContent, _FromType, myItem, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Item myItem) - { - // 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"]; - Part.Remove(cn, _ContentID, _FromType); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ItemPartExtension _ItemPartExtension = new ItemPartExtension(); - [Serializable()] - partial class ItemPartExtension : 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 ItemPartConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemPart) - { - // Return the ToString value - return ((ItemPart)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ItemPartExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ItemPart -// { -// partial class ItemPartExtension : 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/OldGenerated/ItemParts.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemParts.cs deleted file mode 100644 index 69039767..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemParts.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ItemParts Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemPartsConverter))] - public partial class ItemParts : 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 ItemPart this[Content myContent, int fromType] - { - get - { - foreach (ItemPart part in this) - if (part.ContentID == myContent.ContentID && part.FromType == fromType) - return part; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ItemPart GetItem(Content myContent, int fromType) - { - foreach (ItemPart part in this) - if (part.ContentID == myContent.ContentID && part.FromType == fromType) - return part; - return null; - } - public ItemPart Add(Content myContent, int fromType) // One to Many - { - ItemPart part = ItemPart.New(myContent, fromType); - this.Add(part); - return part; - } - public void Remove(Content myContent, int fromType) - { - foreach (ItemPart part in this) - { - if (part.ContentID == myContent.ContentID && part.FromType == fromType) - { - Remove(part); - break; - } - } - } - public bool Contains(Content myContent, int fromType) - { - foreach (ItemPart part in this) - if (part.ContentID == myContent.ContentID && part.FromType == fromType) - return true; - return false; - } - public bool ContainsDeleted(Content myContent, int fromType) - { - foreach (ItemPart part in DeletedList) - if (part.ContentID == myContent.ContentID && part.FromType == fromType) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ItemPart itemPart in this) - if ((hasBrokenRules = itemPart.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 ItemParts New() - { - return new ItemParts(); - } - internal static ItemParts Get(SafeDataReader dr) - { - return new ItemParts(dr); - } - public static ItemParts GetByItemID(int itemID) - { - try - { - return DataPortal.Fetch(new ItemIDCriteria(itemID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemParts.GetByItemID", ex); - } - } - private ItemParts() - { - MarkAsChild(); - } - internal ItemParts(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(ItemPart.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ItemIDCriteria - { - public ItemIDCriteria(int itemID) - { - _ItemID = itemID; - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - private void DataPortal_Fetch(ItemIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemParts.DataPortal_FetchItemID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPartsByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ItemPart(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemParts.DataPortal_FetchItemID", ex); - throw new DbCslaException("ItemParts.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Item item) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ItemPart obj in DeletedList) - obj.DeleteSelf(item);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (ItemPart obj in this) - { - if (obj.IsNew) - obj.Insert(item); - else - obj.Update(item); - } - } - 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 - ItemPartsPropertyDescriptor pd = new ItemPartsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ItemPartsPropertyDescriptor : vlnListPropertyDescriptor - { - private ItemPart Item { get { return (ItemPart)_Item; } } - public ItemPartsPropertyDescriptor(ItemParts collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ItemPartsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemParts) - { - // Return department and department role separated by comma. - return ((ItemParts)value).Items.Count.ToString() + " Parts"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemTransition_RangeID.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemTransition_RangeID.cs deleted file mode 100644 index 77122eb3..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemTransition_RangeID.cs +++ /dev/null @@ -1,600 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ItemTransition_RangeID Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemTransition_RangeIDConverter))] - public partial class ItemTransition_RangeID : 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 _TransitionID; - [System.ComponentModel.DataObjectField(true, true)] - public int TransitionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyTransition != null) _TransitionID = _MyTransition.TransitionID; - return _TransitionID; - } - } - private Transition _MyTransition; - [System.ComponentModel.DataObjectField(true, true)] - public Transition MyTransition - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyTransition == null && _TransitionID != 0) _MyTransition = Transition.Get(_TransitionID); - return _MyTransition; - } - } - private int _FromID; - public int FromID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _FromID = _MyContent.ContentID; - return _FromID; - } - } - private Content _MyContent; - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _FromID != 0) _MyContent = Content.Get(_FromID); - return _MyContent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyContent != value) - { - _MyContent = value; - PropertyHasChanged(); - } - } - } - private int _ToID; - /// - /// StructureID - /// - public int ToID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemToID != null) _ToID = _MyItemToID.ItemID; - return _ToID; - } - } - private Item _MyItemToID; - public Item MyItemToID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemToID == null && _ToID != 0) _MyItemToID = Item.Get(_ToID); - return _MyItemToID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyItemToID != value) - { - _MyItemToID = value; - PropertyHasChanged(); - } - } - } - private int _TranType; - public int TranType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TranType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_TranType != value) - { - _TranType = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _Content_Number; - } - } - private string _Content_Text = string.Empty; - public string Content_Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - 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 - { - return _Content_Type; - } - } - private int? _Content_FormatID; - public int? Content_FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_FormatID; - } - } - private string _Content_Config = string.Empty; - public string Content_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_Config; - } - } - private DateTime _Content_DTS = new DateTime(); - public DateTime Content_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_DTS; - } - } - private string _Content_UserID = string.Empty; - public string Content_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_UserID; - } - } - // TODO: Check ItemTransition_RangeID.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 ItemTransition_RangeID - protected override object GetIdValue() - { - return _TransitionID; - } - // TODO: Replace base ItemTransition_RangeID.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ItemTransition_RangeID - //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.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(ItemTransition_RangeID target, Csla.Validation.RuleArgs e) - { - if (target._FromID == 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(TransitionID, ""); - //AuthorizationRules.AllowRead(FromID, ""); - //AuthorizationRules.AllowWrite(FromID, ""); - //AuthorizationRules.AllowRead(ToID, ""); - //AuthorizationRules.AllowWrite(ToID, ""); - //AuthorizationRules.AllowRead(TranType, ""); - //AuthorizationRules.AllowWrite(TranType, ""); - //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 ItemTransition_RangeID New(Content myContent, Item myItemToID) - { - return new ItemTransition_RangeID(myContent, myItemToID); - } - internal static ItemTransition_RangeID Get(SafeDataReader dr) - { - return new ItemTransition_RangeID(dr); - } - public ItemTransition_RangeID() - { - MarkAsChild(); - _TransitionID = Transition.NextTransitionID; - _TranType = _ItemTransition_RangeIDExtension.DefaultTranType; - _DTS = _ItemTransition_RangeIDExtension.DefaultDTS; - _UserID = _ItemTransition_RangeIDExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ItemTransition_RangeID(Content myContent, Item myItemToID) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _TranType = _ItemTransition_RangeIDExtension.DefaultTranType; - _DTS = _ItemTransition_RangeIDExtension.DefaultDTS; - _UserID = _ItemTransition_RangeIDExtension.DefaultUserID; - _MyContent = myContent; - _MyItemToID = myItemToID; - ValidationRules.CheckRules(); - } - internal ItemTransition_RangeID(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemTransition_RangeID.FetchDR", GetHashCode()); - try - { - _TransitionID = dr.GetInt32("TransitionID"); - _FromID = dr.GetInt32("FromID"); - _ToID = dr.GetInt32("ToID"); - _TranType = dr.GetInt32("TranType"); - _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("ItemTransition_RangeID.FetchDR", ex); - throw new DbCslaException("ItemTransition_RangeID.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Item myItemRangeID) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Transition.Add(cn, ref _TransitionID, _MyContent, _MyItemToID, myItemRangeID, _TranType, _Config, _DTS, _UserID); - MarkOld(); - } - internal void Update(Item myItemRangeID) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Transition.Update(cn, ref _TransitionID, _MyContent, _MyItemToID, myItemRangeID, _TranType, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Item myItemRangeID) - { - // 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"]; - Transition.Remove(cn, _TransitionID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ItemTransition_RangeIDExtension _ItemTransition_RangeIDExtension = new ItemTransition_RangeIDExtension(); - [Serializable()] - partial class ItemTransition_RangeIDExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultTranType - { - 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 ItemTransition_RangeIDConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemTransition_RangeID) - { - // Return the ToString value - return ((ItemTransition_RangeID)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ItemTransition_RangeIDExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ItemTransition_RangeID -// { -// partial class ItemTransition_RangeIDExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultTranType -// { -// 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/OldGenerated/ItemTransition_ToID.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemTransition_ToID.cs deleted file mode 100644 index c2dddb61..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemTransition_ToID.cs +++ /dev/null @@ -1,597 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ItemTransition_ToID Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemTransition_ToIDConverter))] - public partial class ItemTransition_ToID : 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 _TransitionID; - [System.ComponentModel.DataObjectField(true, true)] - public int TransitionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyTransition != null) _TransitionID = _MyTransition.TransitionID; - return _TransitionID; - } - } - private Transition _MyTransition; - [System.ComponentModel.DataObjectField(true, true)] - public Transition MyTransition - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyTransition == null && _TransitionID != 0) _MyTransition = Transition.Get(_TransitionID); - return _MyTransition; - } - } - private int _FromID; - public int FromID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _FromID = _MyContent.ContentID; - return _FromID; - } - } - private Content _MyContent; - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _FromID != 0) _MyContent = Content.Get(_FromID); - return _MyContent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyContent != value) - { - _MyContent = value; - PropertyHasChanged(); - } - } - } - private int _RangeID; - public int RangeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemRangeID != null) _RangeID = _MyItemRangeID.ItemID; - return _RangeID; - } - } - private Item _MyItemRangeID; - public Item MyItemRangeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemRangeID == null && _RangeID != 0) _MyItemRangeID = Item.Get(_RangeID); - return _MyItemRangeID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyItemRangeID != value) - { - _MyItemRangeID = value; - PropertyHasChanged(); - } - } - } - private int _TranType; - public int TranType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TranType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_TranType != value) - { - _TranType = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _Content_Number; - } - } - private string _Content_Text = string.Empty; - public string Content_Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - 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 - { - return _Content_Type; - } - } - private int? _Content_FormatID; - public int? Content_FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_FormatID; - } - } - private string _Content_Config = string.Empty; - public string Content_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_Config; - } - } - private DateTime _Content_DTS = new DateTime(); - public DateTime Content_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_DTS; - } - } - private string _Content_UserID = string.Empty; - public string Content_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_UserID; - } - } - // TODO: Check ItemTransition_ToID.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 ItemTransition_ToID - protected override object GetIdValue() - { - return _TransitionID; - } - // TODO: Replace base ItemTransition_ToID.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ItemTransition_ToID - //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.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(ItemTransition_ToID target, Csla.Validation.RuleArgs e) - { - if (target._FromID == 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(TransitionID, ""); - //AuthorizationRules.AllowRead(FromID, ""); - //AuthorizationRules.AllowWrite(FromID, ""); - //AuthorizationRules.AllowRead(RangeID, ""); - //AuthorizationRules.AllowWrite(RangeID, ""); - //AuthorizationRules.AllowRead(TranType, ""); - //AuthorizationRules.AllowWrite(TranType, ""); - //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 ItemTransition_ToID New(Content myContent, Item myItemRangeID) - { - return new ItemTransition_ToID(myContent, myItemRangeID); - } - internal static ItemTransition_ToID Get(SafeDataReader dr) - { - return new ItemTransition_ToID(dr); - } - public ItemTransition_ToID() - { - MarkAsChild(); - _TransitionID = Transition.NextTransitionID; - _TranType = _ItemTransition_ToIDExtension.DefaultTranType; - _DTS = _ItemTransition_ToIDExtension.DefaultDTS; - _UserID = _ItemTransition_ToIDExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ItemTransition_ToID(Content myContent, Item myItemRangeID) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _TranType = _ItemTransition_ToIDExtension.DefaultTranType; - _DTS = _ItemTransition_ToIDExtension.DefaultDTS; - _UserID = _ItemTransition_ToIDExtension.DefaultUserID; - _MyContent = myContent; - _MyItemRangeID = myItemRangeID; - ValidationRules.CheckRules(); - } - internal ItemTransition_ToID(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemTransition_ToID.FetchDR", GetHashCode()); - try - { - _TransitionID = dr.GetInt32("TransitionID"); - _FromID = dr.GetInt32("FromID"); - _RangeID = dr.GetInt32("RangeID"); - _TranType = dr.GetInt32("TranType"); - _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("ItemTransition_ToID.FetchDR", ex); - throw new DbCslaException("ItemTransition_ToID.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Item myItemToID) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Transition.Add(cn, ref _TransitionID, _MyContent, myItemToID, _MyItemRangeID, _TranType, _Config, _DTS, _UserID); - MarkOld(); - } - internal void Update(Item myItemToID) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Transition.Update(cn, ref _TransitionID, _MyContent, myItemToID, _MyItemRangeID, _TranType, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Item myItemToID) - { - // 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"]; - Transition.Remove(cn, _TransitionID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ItemTransition_ToIDExtension _ItemTransition_ToIDExtension = new ItemTransition_ToIDExtension(); - [Serializable()] - partial class ItemTransition_ToIDExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultTranType - { - 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 ItemTransition_ToIDConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemTransition_ToID) - { - // Return the ToString value - return ((ItemTransition_ToID)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ItemTransition_ToIDExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ItemTransition_ToID -// { -// partial class ItemTransition_ToIDExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultTranType -// { -// 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/OldGenerated/ItemTransitions_RangeID.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemTransitions_RangeID.cs deleted file mode 100644 index d827f228..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemTransitions_RangeID.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ItemTransitions_RangeID Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemTransitions_RangeIDConverter))] - public partial class ItemTransitions_RangeID : 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 ItemTransition_RangeID this[Transition myTransition] - { - get - { - foreach (ItemTransition_RangeID transition in this) - if (transition.TransitionID == myTransition.TransitionID) - return transition; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ItemTransition_RangeID GetItem(Transition myTransition) - { - foreach (ItemTransition_RangeID transition in this) - if (transition.TransitionID == myTransition.TransitionID) - return transition; - return null; - } - public ItemTransition_RangeID Add(Content myContent, Item myItemToID) // One to Many - { - ItemTransition_RangeID transition = ItemTransition_RangeID.New(myContent, myItemToID); - this.Add(transition); - return transition; - } - public void Remove(Transition myTransition) - { - foreach (ItemTransition_RangeID transition in this) - { - if (transition.TransitionID == myTransition.TransitionID) - { - Remove(transition); - break; - } - } - } - public bool Contains(Transition myTransition) - { - foreach (ItemTransition_RangeID transition in this) - if (transition.TransitionID == myTransition.TransitionID) - return true; - return false; - } - public bool ContainsDeleted(Transition myTransition) - { - foreach (ItemTransition_RangeID transition in DeletedList) - if (transition.TransitionID == myTransition.TransitionID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ItemTransition_RangeID itemTransitionRangeID in this) - if ((hasBrokenRules = itemTransitionRangeID.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 ItemTransitions_RangeID New() - { - return new ItemTransitions_RangeID(); - } - internal static ItemTransitions_RangeID Get(SafeDataReader dr) - { - return new ItemTransitions_RangeID(dr); - } - public static ItemTransitions_RangeID GetByRangeID(int rangeID) - { - try - { - return DataPortal.Fetch(new RangeIDCriteria(rangeID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemTransitions_RangeID.GetByRangeID", ex); - } - } - private ItemTransitions_RangeID() - { - MarkAsChild(); - } - internal ItemTransitions_RangeID(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(ItemTransition_RangeID.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class RangeIDCriteria - { - public RangeIDCriteria(int rangeID) - { - _RangeID = rangeID; - } - private int _RangeID; - public int RangeID - { - get { return _RangeID; } - set { _RangeID = value; } - } - } - private void DataPortal_Fetch(RangeIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemTransitions_RangeID.DataPortal_FetchRangeID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getTransitionsByRangeID"; - cm.Parameters.AddWithValue("@RangeID", criteria.RangeID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ItemTransition_RangeID(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemTransitions_RangeID.DataPortal_FetchRangeID", ex); - throw new DbCslaException("ItemTransitions_RangeID.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Item item) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ItemTransition_RangeID obj in DeletedList) - obj.DeleteSelf(item);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (ItemTransition_RangeID obj in this) - { - if (obj.IsNew) - obj.Insert(item); - else - obj.Update(item); - } - } - 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 - ItemTransitions_RangeIDPropertyDescriptor pd = new ItemTransitions_RangeIDPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ItemTransitions_RangeIDPropertyDescriptor : vlnListPropertyDescriptor - { - private ItemTransition_RangeID Item { get { return (ItemTransition_RangeID)_Item; } } - public ItemTransitions_RangeIDPropertyDescriptor(ItemTransitions_RangeID collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ItemTransitions_RangeIDConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemTransitions_RangeID) - { - // Return department and department role separated by comma. - return ((ItemTransitions_RangeID)value).Items.Count.ToString() + " Transitions_RangeID"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemTransitions_ToID.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemTransitions_ToID.cs deleted file mode 100644 index 2d92fffd..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ItemTransitions_ToID.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ItemTransitions_ToID Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ItemTransitions_ToIDConverter))] - public partial class ItemTransitions_ToID : 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 ItemTransition_ToID this[Transition myTransition] - { - get - { - foreach (ItemTransition_ToID transition in this) - if (transition.TransitionID == myTransition.TransitionID) - return transition; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ItemTransition_ToID GetItem(Transition myTransition) - { - foreach (ItemTransition_ToID transition in this) - if (transition.TransitionID == myTransition.TransitionID) - return transition; - return null; - } - public ItemTransition_ToID Add(Content myContent, Item myItemRangeID) // One to Many - { - ItemTransition_ToID transition = ItemTransition_ToID.New(myContent, myItemRangeID); - this.Add(transition); - return transition; - } - public void Remove(Transition myTransition) - { - foreach (ItemTransition_ToID transition in this) - { - if (transition.TransitionID == myTransition.TransitionID) - { - Remove(transition); - break; - } - } - } - public bool Contains(Transition myTransition) - { - foreach (ItemTransition_ToID transition in this) - if (transition.TransitionID == myTransition.TransitionID) - return true; - return false; - } - public bool ContainsDeleted(Transition myTransition) - { - foreach (ItemTransition_ToID transition in DeletedList) - if (transition.TransitionID == myTransition.TransitionID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ItemTransition_ToID itemTransitionToID in this) - if ((hasBrokenRules = itemTransitionToID.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 ItemTransitions_ToID New() - { - return new ItemTransitions_ToID(); - } - internal static ItemTransitions_ToID Get(SafeDataReader dr) - { - return new ItemTransitions_ToID(dr); - } - public static ItemTransitions_ToID GetByToID(int toID) - { - try - { - return DataPortal.Fetch(new ToIDCriteria(toID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemTransitions_ToID.GetByToID", ex); - } - } - private ItemTransitions_ToID() - { - MarkAsChild(); - } - internal ItemTransitions_ToID(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(ItemTransition_ToID.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ToIDCriteria - { - public ToIDCriteria(int toID) - { - _ToID = toID; - } - private int _ToID; - public int ToID - { - get { return _ToID; } - set { _ToID = value; } - } - } - private void DataPortal_Fetch(ToIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemTransitions_ToID.DataPortal_FetchToID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getTransitionsByToID"; - cm.Parameters.AddWithValue("@ToID", criteria.ToID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ItemTransition_ToID(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemTransitions_ToID.DataPortal_FetchToID", ex); - throw new DbCslaException("ItemTransitions_ToID.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Item item) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ItemTransition_ToID obj in DeletedList) - obj.DeleteSelf(item);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (ItemTransition_ToID obj in this) - { - if (obj.IsNew) - obj.Insert(item); - else - obj.Update(item); - } - } - 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 - ItemTransitions_ToIDPropertyDescriptor pd = new ItemTransitions_ToIDPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ItemTransitions_ToIDPropertyDescriptor : vlnListPropertyDescriptor - { - private ItemTransition_ToID Item { get { return (ItemTransition_ToID)_Item; } } - public ItemTransitions_ToIDPropertyDescriptor(ItemTransitions_ToID collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ItemTransitions_ToIDConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ItemTransitions_ToID) - { - // Return department and department role separated by comma. - return ((ItemTransitions_ToID)value).Items.Count.ToString() + " Transitions_ToID"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Membership.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Membership.cs deleted file mode 100644 index 039c31a5..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Membership.cs +++ /dev/null @@ -1,1173 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Membership Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(MembershipConverter))] - public partial class Membership : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshMemberships = new List(); - private void AddToRefreshList(List refreshMemberships) - { - if (IsDirty) - refreshMemberships.Add(this); - } - private void BuildRefreshList() - { - _RefreshMemberships = new List(); - AddToRefreshList(_RefreshMemberships); - } - private void ProcessRefreshList() - { - foreach (Membership tmp in _RefreshMemberships) - { - MembershipInfo.Refresh(tmp); - if (tmp._MyGroup != null) GroupInfo.Refresh(tmp._MyGroup); - if (tmp._MyUser != null) UserInfo.Refresh(tmp._MyUser); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Membership membership) - { - if (!_CacheList.Contains(membership)) _CacheList.Add(membership); // In AddToCache - } - protected static void RemoveFromCache(Membership membership) - { - while (_CacheList.Contains(membership)) _CacheList.Remove(membership); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Membership tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.UGID.ToString())) - { - _CacheByPrimaryKey[tmp.UGID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.UGID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (Membership tmp in remove) - RemoveFromCache(tmp); - } - protected static Membership GetCachedByPrimaryKey(int ugid) - { - ConvertListToDictionary(); - string key = ugid.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextUGID = -1; - public static int NextUGID - { - get { return _nextUGID--; } - } - private int _UGID; - [System.ComponentModel.DataObjectField(true, true)] - public int UGID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UGID; - } - } - private int _UID; - public int UID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyUser != null) _UID = _MyUser.UID; - return _UID; - } - } - private User _MyUser; - public User MyUser - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyUser == null && _UID != 0) _MyUser = User.Get(_UID); - return _MyUser; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyUser != value) - { - _MyUser = value; - PropertyHasChanged(); - } - } - } - private int _GID; - public int GID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup != null) _GID = _MyGroup.GID; - return _GID; - } - } - private Group _MyGroup; - public Group MyGroup - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup == null && _GID != 0) _MyGroup = Group.Get(_GID); - return _MyGroup; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyGroup != value) - { - _MyGroup = value; - PropertyHasChanged(); - } - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _StartDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_StartDate != tmp.ToString()) - { - _StartDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _EndDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_EndDate != tmp.ToString()) - { - _EndDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsDirty - { - get { return base.IsDirty || (_MyGroup == null ? false : _MyGroup.IsDirty) || (_MyUser == null ? false : _MyUser.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyGroup == null ? true : _MyGroup.IsValid) && (_MyUser == null ? true : _MyUser.IsValid); } - } - // TODO: Replace base Membership.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Membership - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Membership.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 Membership - protected override object GetIdValue() - { - return _UGID; - } - #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 (_MyUser != null && (hasBrokenRules = _MyUser.HasBrokenRules) != null) return hasBrokenRules; - if (_MyGroup != null && (hasBrokenRules = _MyGroup.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(MyUserRequired, "MyUser"); - ValidationRules.AddRule(MyGroupRequired, "MyGroup"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "StartDate"); - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _MembershipExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _MembershipExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool StartDateValid(Membership target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._StartDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool EndDateValid(Membership target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._EndDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool MyUserRequired(Membership target, Csla.Validation.RuleArgs e) - { - if (target._UID == 0 && target._MyUser == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - private static bool MyGroupRequired(Membership target, Csla.Validation.RuleArgs e) - { - if (target._GID == 0 && target._MyGroup == 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(UGID, ""); - //AuthorizationRules.AllowRead(UID, ""); - //AuthorizationRules.AllowRead(GID, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(UID, ""); - //AuthorizationRules.AllowWrite(GID, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - _MembershipExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _MembershipExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _MembershipUnique = 0; - protected static int MembershipUnique - { get { return ++_MembershipUnique; } } - private int _MyMembershipUnique = MembershipUnique; - public int MyMembershipUnique - { get { return _MyMembershipUnique; } } - protected Membership() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(UGID.ToString())) - { - List listMembership = _CacheByPrimaryKey[UGID.ToString()]; // Get the list of items - while (listMembership.Contains(this)) listMembership.Remove(this); // Remove the item from the list - if (listMembership.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(UGID.ToString()); // remove the list - } - } - public static Membership New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Membership"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Membership.New", ex); - } - } - public static Membership New(User myUser, Group myGroup) - { - Membership tmp = Membership.New(); - tmp.MyUser = myUser; - tmp.MyGroup = myGroup; - return tmp; - } - public static Membership New(User myUser, Group myGroup, string startDate, string endDate, string config, DateTime dts, string usrID) - { - Membership tmp = Membership.New(); - tmp.MyUser = myUser; - tmp.MyGroup = myGroup; - tmp.StartDate = startDate; - tmp.EndDate = endDate; - tmp.Config = config; - tmp.DTS = dts; - tmp.UsrID = usrID; - return tmp; - } - public static Membership MakeMembership(User myUser, Group myGroup, string startDate, string endDate, string config, DateTime dts, string usrID) - { - Membership tmp = Membership.New(myUser, myGroup, startDate, endDate, config, dts, usrID); - if (tmp.IsSavable) - { - Membership 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 Membership New(User myUser, Group myGroup, string endDate, string config) - { - Membership tmp = Membership.New(); - tmp.MyUser = myUser; - tmp.MyGroup = myGroup; - tmp.EndDate = endDate; - tmp.Config = config; - return tmp; - } - public static Membership MakeMembership(User myUser, Group myGroup, string endDate, string config) - { - Membership tmp = Membership.New(myUser, myGroup, endDate, config); - if (tmp.IsSavable) - { - Membership 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 Membership Get(int ugid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Membership"); - try - { - Membership tmp = GetCachedByPrimaryKey(ugid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(ugid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Membership - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Membership.Get", ex); - } - } - public static Membership Get(SafeDataReader dr) - { - if (dr.Read()) return new Membership(dr); - return null; - } - internal Membership(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int ugid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Membership"); - try - { - DataPortal.Delete(new PKCriteria(ugid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Membership.Delete", ex); - } - } - public override Membership Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Membership"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Membership"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Membership"); - try - { - BuildRefreshList(); - Membership membership = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(membership);//Refresh the item in AllList - ProcessRefreshList(); - return membership; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _UGID; - public int UGID - { get { return _UGID; } } - public PKCriteria(int ugid) - { - _UGID = ugid; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _UGID = NextUGID; - // Database Defaults - _StartDate = _MembershipExtension.DefaultStartDate; - _DTS = _MembershipExtension.DefaultDTS; - _UsrID = _MembershipExtension.DefaultUsrID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Membership.ReadData", GetHashCode()); - try - { - _UGID = dr.GetInt32("UGID"); - _UID = dr.GetInt32("UID"); - _GID = dr.GetInt32("GID"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Membership.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Membership.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Membership.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 = "getMembership"; - cm.Parameters.AddWithValue("@UGID", criteria.UGID); - 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("Membership.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Membership.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("Membership.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Membership.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Membership.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyGroup != null) _MyGroup.Update(); - if (_MyUser != null) _MyUser.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addMembership"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@UID", UID); - cm.Parameters.AddWithValue("@GID", GID); - cm.Parameters.AddWithValue("@StartDate", new SmartDate(_StartDate).DBValue); - cm.Parameters.AddWithValue("@EndDate", new SmartDate(_EndDate).DBValue); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - // Output Calculated Columns - SqlParameter param_UGID = new SqlParameter("@newUGID", SqlDbType.Int); - param_UGID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_UGID); - 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 - _UGID = (int)cm.Parameters["@newUGID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Membership.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Membership.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Membership.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int ugid, User myUser, Group myGroup, SmartDate startDate, SmartDate endDate, string config, DateTime dts, string usrID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Membership.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addMembership"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@UID", myUser.UID); - cm.Parameters.AddWithValue("@GID", myGroup.GID); - cm.Parameters.AddWithValue("@StartDate", startDate.DBValue); - cm.Parameters.AddWithValue("@EndDate", endDate.DBValue); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - // Output Calculated Columns - SqlParameter param_UGID = new SqlParameter("@newUGID", SqlDbType.Int); - param_UGID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_UGID); - 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 - ugid = (int)cm.Parameters["@newUGID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Membership.Add", ex); - throw new DbCslaException("Membership.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}] Membership.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("Membership.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}] Membership.SQLUpdate", GetHashCode()); - try - { - if (_MyGroup != null) _MyGroup.Update(); - if (_MyUser != null) _MyUser.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateMembership"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@UGID", _UGID); - cm.Parameters.AddWithValue("@UID", UID); - cm.Parameters.AddWithValue("@GID", GID); - cm.Parameters.AddWithValue("@StartDate", new SmartDate(_StartDate).DBValue); - cm.Parameters.AddWithValue("@EndDate", new SmartDate(_EndDate).DBValue); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Membership.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 = Membership.Add(cn, ref _UGID, _MyUser, _MyGroup, new SmartDate(_StartDate), new SmartDate(_EndDate), _Config, _DTS, _UsrID); - else - _LastChanged = Membership.Update(cn, ref _UGID, _MyUser, _MyGroup, new SmartDate(_StartDate), new SmartDate(_EndDate), _Config, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int ugid, User myUser, Group myGroup, SmartDate startDate, SmartDate endDate, string config, DateTime dts, string usrID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Membership.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateMembership"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@UGID", ugid); - cm.Parameters.AddWithValue("@UID", myUser.UID); - cm.Parameters.AddWithValue("@GID", myGroup.GID); - cm.Parameters.AddWithValue("@StartDate", startDate.DBValue); - cm.Parameters.AddWithValue("@EndDate", endDate.DBValue); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - 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("Membership.Update", ex); - throw new DbCslaException("Membership.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_UGID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Membership.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteMembership"; - cm.Parameters.AddWithValue("@UGID", criteria.UGID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Membership.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Membership.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int ugid) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Membership.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteMembership"; - // Input PK Fields - cm.Parameters.AddWithValue("@UGID", ugid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Membership.Remove", ex); - throw new DbCslaException("Membership.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int ugid) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(ugid)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Membership.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _UGID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int ugid) - { - _UGID = ugid; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Membership.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsMembership"; - cm.Parameters.AddWithValue("@UGID", _UGID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Membership.DataPortal_Execute", ex); - throw new DbCslaException("Membership.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - MembershipExtension _MembershipExtension = new MembershipExtension(); - [Serializable()] - partial class MembershipExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 MembershipConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Membership) - { - // Return the ToString value - return ((Membership)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create MembershipExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Membership -// { -// partial class MembershipExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual SmartDate DefaultStartDate -// { -// get { return DateTime.Now.ToShortDateString(); } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/MembershipInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/MembershipInfo.cs deleted file mode 100644 index 7139e7ac..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/MembershipInfo.cs +++ /dev/null @@ -1,477 +0,0 @@ -// ======================================================================== -// 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 MembershipInfoEvent(object sender); - /// - /// MembershipInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(MembershipInfoConverter))] - public partial class MembershipInfo : ReadOnlyBase, IDisposable - { - public event MembershipInfoEvent 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(MembershipInfo membershipInfo) - { - if (!_CacheList.Contains(membershipInfo)) _CacheList.Add(membershipInfo); // In AddToCache - } - protected static void RemoveFromCache(MembershipInfo membershipInfo) - { - while (_CacheList.Contains(membershipInfo)) _CacheList.Remove(membershipInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (MembershipInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.UGID.ToString())) - { - _CacheByPrimaryKey[tmp.UGID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.UGID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (MembershipInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(MembershipInfoList lst) - { - foreach (MembershipInfo item in lst) AddToCache(item); - } - protected static MembershipInfo GetCachedByPrimaryKey(int ugid) - { - ConvertListToDictionary(); - string key = ugid.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 Membership _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _UGID; - [System.ComponentModel.DataObjectField(true, true)] - public int UGID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UGID; - } - } - private int _UID; - public int UID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyUser != null) _UID = _MyUser.UID; - return _UID; - } - } - private UserInfo _MyUser; - public UserInfo MyUser - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyUser == null && _UID != 0) _MyUser = UserInfo.Get(_UID); - return _MyUser; - } - } - private int _GID; - public int GID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup != null) _GID = _MyGroup.GID; - return _GID; - } - } - private GroupInfo _MyGroup; - public GroupInfo MyGroup - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup == null && _GID != 0) _MyGroup = GroupInfo.Get(_GID); - return _MyGroup; - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - } - // TODO: Replace base MembershipInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current MembershipInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check MembershipInfo.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 MembershipInfo - protected override object GetIdValue() - { - return _UGID; - } - #endregion - #region Factory Methods - private static int _MembershipInfoUnique = 0; - private static int MembershipInfoUnique - { get { return ++_MembershipInfoUnique; } } - private int _MyMembershipInfoUnique = MembershipInfoUnique; - public int MyMembershipInfoUnique - { get { return _MyMembershipInfoUnique; } } - protected MembershipInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(UGID.ToString())) return; - List listMembershipInfo = _CacheByPrimaryKey[UGID.ToString()]; // Get the list of items - while (listMembershipInfo.Contains(this)) listMembershipInfo.Remove(this); // Remove the item from the list - if (listMembershipInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(UGID.ToString()); // remove the list - } - public virtual Membership Get() - { - return _Editable = Membership.Get(_UGID); - } - public static void Refresh(Membership tmp) - { - string key = tmp.UGID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (MembershipInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Membership tmp) - { - if (_UID != tmp.UID) - { - if (MyUser != null) MyUser.RefreshUserMemberships(); // Update List for old value - _UID = tmp.UID; // Update the value - } - _MyUser = null; // Reset list so that the next line gets a new list - if (MyUser != null) MyUser.RefreshUserMemberships(); // Update List for new value - if (_GID != tmp.GID) - { - if (MyGroup != null) MyGroup.RefreshGroupMemberships(); // Update List for old value - _GID = tmp.GID; // Update the value - } - _MyGroup = null; // Reset list so that the next line gets a new list - if (MyGroup != null) MyGroup.RefreshGroupMemberships(); // Update List for new value - _StartDate = tmp.StartDate; - _EndDate = tmp.EndDate; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _MembershipInfoExtension.Refresh(this); - if (_MyUser != null) - { - _MyUser.Dispose();// Dispose related value - _MyUser = null;// Reset related value - } - if (_MyGroup != null) - { - _MyGroup.Dispose();// Dispose related value - _MyGroup = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(GroupMembership tmp) - { - string key = tmp.UGID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (MembershipInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(GroupMembership tmp) - { - if (_UID != tmp.UID) - { - if (MyUser != null) MyUser.RefreshUserMemberships(); // Update List for old value - _UID = tmp.UID; // Update the value - } - _MyUser = null; // Reset list so that the next line gets a new list - if (MyUser != null) MyUser.RefreshUserMemberships(); // Update List for new value - _StartDate = tmp.StartDate; - _EndDate = tmp.EndDate; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _MembershipInfoExtension.Refresh(this); - if (_MyUser != null) - { - _MyUser.Dispose();// Dispose related value - _MyUser = null;// Reset related value - } - if (_MyGroup != null) - { - _MyGroup.Dispose();// Dispose related value - _MyGroup = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(UserMembership tmp) - { - string key = tmp.UGID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (MembershipInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(UserMembership tmp) - { - if (_GID != tmp.GID) - { - if (MyGroup != null) MyGroup.RefreshGroupMemberships(); // Update List for old value - _GID = tmp.GID; // Update the value - } - _MyGroup = null; // Reset list so that the next line gets a new list - if (MyGroup != null) MyGroup.RefreshGroupMemberships(); // Update List for new value - _StartDate = tmp.StartDate; - _EndDate = tmp.EndDate; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _MembershipInfoExtension.Refresh(this); - if (_MyUser != null) - { - _MyUser.Dispose();// Dispose related value - _MyUser = null;// Reset related value - } - if (_MyGroup != null) - { - _MyGroup.Dispose();// Dispose related value - _MyGroup = null;// Reset related value - } - OnChange();// raise an event - } - public static MembershipInfo Get(int ugid) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Membership"); - try - { - MembershipInfo tmp = GetCachedByPrimaryKey(ugid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(ugid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up MembershipInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on MembershipInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal MembershipInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] MembershipInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("MembershipInfo.Constructor", ex); - throw new DbCslaException("MembershipInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _UGID; - public int UGID - { get { return _UGID; } } - public PKCriteria(int ugid) - { - _UGID = ugid; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] MembershipInfo.ReadData", GetHashCode()); - try - { - _UGID = dr.GetInt32("UGID"); - _UID = dr.GetInt32("UID"); - _GID = dr.GetInt32("GID"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("MembershipInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("MembershipInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] MembershipInfo.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 = "getMembership"; - cm.Parameters.AddWithValue("@UGID", criteria.UGID); - 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("MembershipInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("MembershipInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - MembershipInfoExtension _MembershipInfoExtension = new MembershipInfoExtension(); - [Serializable()] - partial class MembershipInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(MembershipInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class MembershipInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is MembershipInfo) - { - // Return the ToString value - return ((MembershipInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/MembershipInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/MembershipInfoList.cs deleted file mode 100644 index 3672a6ed..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/MembershipInfoList.cs +++ /dev/null @@ -1,312 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// MembershipInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(MembershipInfoListConverter))] - public partial class MembershipInfoList : 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 (MembershipInfo tmp in this) - { - tmp.Changed += new MembershipInfoEvent(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 (MembershipInfo tmp in this) - { - tmp.Changed -= new MembershipInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static MembershipInfoList _MembershipInfoList = null; - /// - /// Return a list of all projects. - /// - public static MembershipInfoList Get() - { - try - { - if (_MembershipInfoList != null) - return _MembershipInfoList; - MembershipInfoList tmp = DataPortal.Fetch(); - MembershipInfo.AddList(tmp); - tmp.AddEvents(); - _MembershipInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on MembershipInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static MembershipInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on MembershipInfoList.Get", ex); - // } - //} - public static MembershipInfoList GetByGID(int gid) - { - try - { - MembershipInfoList tmp = DataPortal.Fetch(new GIDCriteria(gid)); - MembershipInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on MembershipInfoList.GetByGID", ex); - } - } - public static MembershipInfoList GetByUID(int uid) - { - try - { - MembershipInfoList tmp = DataPortal.Fetch(new UIDCriteria(uid)); - MembershipInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on MembershipInfoList.GetByUID", ex); - } - } - private MembershipInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] MembershipInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getMemberships"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new MembershipInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("MembershipInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("MembershipInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class GIDCriteria - { - public GIDCriteria(int gid) - { - _GID = gid; - } - private int _GID; - public int GID - { - get { return _GID; } - set { _GID = value; } - } - } - private void DataPortal_Fetch(GIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] MembershipInfoList.DataPortal_FetchGID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getMembershipsByGID"; - cm.Parameters.AddWithValue("@GID", criteria.GID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new MembershipInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("MembershipInfoList.DataPortal_FetchGID", ex); - throw new DbCslaException("MembershipInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class UIDCriteria - { - public UIDCriteria(int uid) - { - _UID = uid; - } - private int _UID; - public int UID - { - get { return _UID; } - set { _UID = value; } - } - } - private void DataPortal_Fetch(UIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] MembershipInfoList.DataPortal_FetchUID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getMembershipsByUID"; - cm.Parameters.AddWithValue("@UID", criteria.UID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new MembershipInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("MembershipInfoList.DataPortal_FetchUID", ex); - throw new DbCslaException("MembershipInfoList.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 - MembershipInfoListPropertyDescriptor pd = new MembershipInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class MembershipInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private MembershipInfo Item { get { return (MembershipInfo)_Item; } } - public MembershipInfoListPropertyDescriptor(MembershipInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class MembershipInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is MembershipInfoList) - { - // Return department and department role separated by comma. - return ((MembershipInfoList)value).Items.Count.ToString() + " Memberships"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/NextItems.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/NextItems.cs deleted file mode 100644 index 03cb1ee7..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/NextItems.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// NextItems Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(NextItemsConverter))] - public partial class NextItems : 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 new Item this[int itemID] - { - get - { - foreach (Item item in this) - if (item.ItemID == itemID) - return item; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public Item GetItem(int itemID) - { - foreach (Item item in this) - if (item.ItemID == itemID) - return item; - return null; - } - public Item Add(Content myContent) // One to Many - { - Item item = Item.New(myContent); - this.Add(item); - return item; - } - public void Remove(int itemID) - { - foreach (Item item in this) - { - if (item.ItemID == itemID) - { - Remove(item); - break; - } - } - } - public bool Contains(int itemID) - { - foreach (Item item in this) - if (item.ItemID == itemID) - return true; - return false; - } - public bool ContainsDeleted(int itemID) - { - foreach (Item item in DeletedList) - if (item.ItemID == itemID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (Item item in this) - if ((hasBrokenRules = item.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 NextItems New() - { - return new NextItems(); - } - internal static NextItems Get(SafeDataReader dr, Item parent) - { - return new NextItems(dr, parent); - } - public static NextItems GetByPreviousID(int previousID) - { - try - { - return DataPortal.Fetch(new PreviousIDCriteria(previousID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on NextItems.GetByPreviousID", ex); - } - } - private NextItems() - { - MarkAsChild(); - } - internal NextItems(SafeDataReader dr, Item parent) - { - MarkAsChild(); - Fetch(dr, parent); - } - #endregion - #region Data Access Portal - // called to load data from the database - private void Fetch(SafeDataReader dr, Item parent) - { - this.RaiseListChangedEvents = false; - while (dr.Read()) - this.Add(Item.Get(dr, parent)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class PreviousIDCriteria - { - public PreviousIDCriteria(int previousID) - { - _PreviousID = previousID; - } - private int _PreviousID; - public int PreviousID - { - get { return _PreviousID; } - set { _PreviousID = value; } - } - } - private void DataPortal_Fetch(PreviousIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] NextItems.DataPortal_FetchPreviousID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getNextItems"; - cm.Parameters.AddWithValue("@PreviousID", criteria.PreviousID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new Item(dr, criteria.PreviousID)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("NextItems.DataPortal_FetchPreviousID", ex); - throw new DbCslaException("NextItems.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Item item) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (Item obj in DeletedList) - obj.DeleteSelf(item);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (Item obj in this) - { - if (obj.IsNew) - obj.SQLInsert(); - else - obj.SQLUpdate(); - } - } - 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 - NextItemsPropertyDescriptor pd = new NextItemsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class NextItemsPropertyDescriptor : vlnListPropertyDescriptor - { - private Item Item { get { return (Item)_Item; } } - public NextItemsPropertyDescriptor(NextItems collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class NextItemsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is NextItems) - { - // Return department and department role separated by comma. - return ((NextItems)value).Items.Count.ToString() + " Items"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Part.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Part.cs deleted file mode 100644 index c687501f..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Part.cs +++ /dev/null @@ -1,1005 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Part Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(PartConverter))] - public partial class Part : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshParts = new List(); - private void AddToRefreshList(List refreshParts) - { - if (IsDirty) - refreshParts.Add(this); - } - private void BuildRefreshList() - { - _RefreshParts = new List(); - AddToRefreshList(_RefreshParts); - } - private void ProcessRefreshList() - { - foreach (Part tmp in _RefreshParts) - { - PartInfo.Refresh(tmp); - if (tmp._MyContent != null) ContentInfo.Refresh(tmp._MyContent); - if (tmp._MyItem != null) ItemInfo.Refresh(tmp._MyItem); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Part part) - { - if (!_CacheList.Contains(part)) _CacheList.Add(part); // In AddToCache - } - protected static void RemoveFromCache(Part part) - { - while (_CacheList.Contains(part)) _CacheList.Remove(part); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Part tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ContentID.ToString() + "_" + tmp.FromType.ToString())) - { - _CacheByPrimaryKey[tmp.ContentID.ToString() + "_" + tmp.FromType.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ContentID.ToString() + "_" + tmp.FromType.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (Part tmp in remove) - RemoveFromCache(tmp); - } - protected static Part GetCachedByPrimaryKey(int contentID, int fromType) - { - ConvertListToDictionary(); - string key = contentID.ToString() + "_" + fromType.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private int _ContentID; - [System.ComponentModel.DataObjectField(true, true)] - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private Content _MyContent; - [System.ComponentModel.DataObjectField(true, true)] - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = Content.Get(_ContentID); - return _MyContent; - } - } - private int _FromType; - [System.ComponentModel.DataObjectField(true, true)] - public int FromType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FromType; - } - } - private int _ItemID; - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem != null) _ItemID = _MyItem.ItemID; - return _ItemID; - } - } - private Item _MyItem; - public Item MyItem - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem == null && _ItemID != 0) _MyItem = Item.Get(_ItemID); - return _MyItem; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyItem != value) - { - _MyItem = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsDirty - { - get { return base.IsDirty || (_MyContent == null ? false : _MyContent.IsDirty) || (_MyItem == null ? false : _MyItem.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyContent == null ? true : _MyContent.IsValid) && (_MyItem == null ? true : _MyItem.IsValid); } - } - // TODO: Replace base Part.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Part - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Part.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 Part - protected override object GetIdValue() - { - return (_ContentID.ToString() + "." + _FromType.ToString()).GetHashCode(); - } - #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 (_MyItem != null && (hasBrokenRules = _MyItem.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(MyItemRequired, "MyItem"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UserID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _PartExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _PartExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool MyItemRequired(Part target, Csla.Validation.RuleArgs e) - { - if (target._ItemID == 0 && target._MyItem == 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(ContentID, ""); - //AuthorizationRules.AllowRead(FromType, ""); - //AuthorizationRules.AllowRead(ItemID, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(ItemID, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _PartExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _PartExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _PartUnique = 0; - protected static int PartUnique - { get { return ++_PartUnique; } } - private int _MyPartUnique = PartUnique; - public int MyPartUnique - { get { return _MyPartUnique; } } - protected Part() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(ContentID.ToString() + "_" + FromType.ToString())) - { - List listPart = _CacheByPrimaryKey[ContentID.ToString() + "_" + FromType.ToString()]; // Get the list of items - while (listPart.Contains(this)) listPart.Remove(this); // Remove the item from the list - if (listPart.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(ContentID.ToString() + "_" + FromType.ToString()); // remove the list - } - } - public static Part New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Part"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Part.New", ex); - } - } - public static Part New(Content myContent, int fromType, Item myItem) - { - Part tmp = Part.New(); - tmp._MyContent = myContent; - tmp._FromType = fromType; - tmp.MyItem = myItem; - return tmp; - } - public static Part MakePart(Content myContent, int fromType, Item myItem) - { - Part tmp = Part.New(myContent, fromType, myItem); - if (tmp.IsSavable) - { - Part 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 Part New(Content myContent, int fromType, Item myItem, DateTime dts, string userID) - { - Part tmp = Part.New(); - tmp._MyContent = myContent; - tmp._FromType = fromType; - tmp.MyItem = myItem; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static Part MakePart(Content myContent, int fromType, Item myItem, DateTime dts, string userID) - { - Part tmp = Part.New(myContent, fromType, myItem, dts, userID); - if (tmp.IsSavable) - { - Part 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 Part Get(int contentID, int fromType) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Part"); - try - { - Part tmp = GetCachedByPrimaryKey(contentID, fromType); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(contentID, fromType)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Part - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Part.Get", ex); - } - } - public static Part Get(SafeDataReader dr) - { - if (dr.Read()) return new Part(dr); - return null; - } - internal Part(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int contentID, int fromType) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Part"); - try - { - DataPortal.Delete(new PKCriteria(contentID, fromType)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Part.Delete", ex); - } - } - public override Part Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Part"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Part"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Part"); - try - { - BuildRefreshList(); - Part part = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(part);//Refresh the item in AllList - ProcessRefreshList(); - return part; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - private int _FromType; - public int FromType - { get { return _FromType; } } - public PKCriteria(int contentID, int fromType) - { - _ContentID = contentID; - _FromType = fromType; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - - // Database Defaults - _DTS = _PartExtension.DefaultDTS; - _UserID = _PartExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Part.ReadData", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _FromType = dr.GetInt32("FromType"); - _ItemID = dr.GetInt32("ItemID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Part.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Part.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Part.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 = "getPart"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.Parameters.AddWithValue("@FromType", criteria.FromType); - 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("Part.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Part.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("Part.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Part.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Part.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyContent != null) _MyContent.Update(); - if (_MyItem != null) _MyItem.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addPart"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", ContentID); - cm.Parameters.AddWithValue("@FromType", _FromType); - cm.Parameters.AddWithValue("@ItemID", ItemID); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - // 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(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Part.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Part.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Part.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, Content myContent, int fromType, Item myItem, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Part.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addPart"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - cm.Parameters.AddWithValue("@FromType", fromType); - cm.Parameters.AddWithValue("@ItemID", myItem.ItemID); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UserID", userID); - // 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("Part.Add", ex); - throw new DbCslaException("Part.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}] Part.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("Part.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}] Part.SQLUpdate", GetHashCode()); - try - { - if (_MyContent != null) _MyContent.Update(); - if (_MyItem != null) _MyItem.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updatePart"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@ContentID", ContentID); - cm.Parameters.AddWithValue("@FromType", _FromType); - cm.Parameters.AddWithValue("@ItemID", ItemID); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Part.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 = Part.Add(cn, _MyContent, _FromType, _MyItem, _DTS, _UserID); - else - _LastChanged = Part.Update(cn, _MyContent, _FromType, _MyItem, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, Content myContent, int fromType, Item myItem, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Part.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updatePart"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - cm.Parameters.AddWithValue("@FromType", fromType); - cm.Parameters.AddWithValue("@ItemID", myItem.ItemID); - 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("Part.Update", ex); - throw new DbCslaException("Part.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_ContentID, _FromType)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Part.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deletePart"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.Parameters.AddWithValue("@FromType", criteria.FromType); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Part.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Part.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int contentID, int fromType) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Part.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deletePart"; - // Input PK Fields - cm.Parameters.AddWithValue("@ContentID", contentID); - cm.Parameters.AddWithValue("@FromType", fromType); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Part.Remove", ex); - throw new DbCslaException("Part.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int contentID, int fromType) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(contentID, fromType)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Part.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _ContentID; - private int _FromType; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int contentID, int fromType) - { - _ContentID = contentID; - _FromType = fromType; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Part.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsPart"; - cm.Parameters.AddWithValue("@ContentID", _ContentID); - cm.Parameters.AddWithValue("@FromType", _FromType); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Part.DataPortal_Execute", ex); - throw new DbCslaException("Part.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - PartExtension _PartExtension = new PartExtension(); - [Serializable()] - partial class PartExtension : 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 PartConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Part) - { - // Return the ToString value - return ((Part)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create PartExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Part -// { -// partial class PartExtension : 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/OldGenerated/PartInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/PartInfo.cs deleted file mode 100644 index daeb276a..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/PartInfo.cs +++ /dev/null @@ -1,431 +0,0 @@ -// ======================================================================== -// 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 PartInfoEvent(object sender); - /// - /// PartInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(PartInfoConverter))] - public partial class PartInfo : ReadOnlyBase, IDisposable - { - public event PartInfoEvent 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(PartInfo partInfo) - { - if (!_CacheList.Contains(partInfo)) _CacheList.Add(partInfo); // In AddToCache - } - protected static void RemoveFromCache(PartInfo partInfo) - { - while (_CacheList.Contains(partInfo)) _CacheList.Remove(partInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (PartInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ContentID.ToString() + "_" + tmp.FromType.ToString())) - { - _CacheByPrimaryKey[tmp.ContentID.ToString() + "_" + tmp.FromType.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ContentID.ToString() + "_" + tmp.FromType.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (PartInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(PartInfoList lst) - { - foreach (PartInfo item in lst) AddToCache(item); - } - protected static PartInfo GetCachedByPrimaryKey(int contentID, int fromType) - { - ConvertListToDictionary(); - string key = contentID.ToString() + "_" + fromType.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 Part _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _ContentID; - [System.ComponentModel.DataObjectField(true, true)] - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private ContentInfo _MyContent; - [System.ComponentModel.DataObjectField(true, true)] - public ContentInfo MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = ContentInfo.Get(_ContentID); - return _MyContent; - } - } - private int _FromType; - [System.ComponentModel.DataObjectField(true, true)] - public int FromType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FromType; - } - } - private int _ItemID; - public int ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem != null) _ItemID = _MyItem.ItemID; - return _ItemID; - } - } - private ItemInfo _MyItem; - public ItemInfo MyItem - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItem == null && _ItemID != 0) _MyItem = ItemInfo.Get(_ItemID); - return _MyItem; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - // TODO: Replace base PartInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current PartInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check PartInfo.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 PartInfo - protected override object GetIdValue() - { - return (_ContentID.ToString() + "." + _FromType.ToString()).GetHashCode(); - } - #endregion - #region Factory Methods - private static int _PartInfoUnique = 0; - private static int PartInfoUnique - { get { return ++_PartInfoUnique; } } - private int _MyPartInfoUnique = PartInfoUnique; - public int MyPartInfoUnique - { get { return _MyPartInfoUnique; } } - protected PartInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(ContentID.ToString() + "_" + FromType.ToString())) return; - List listPartInfo = _CacheByPrimaryKey[ContentID.ToString() + "_" + FromType.ToString()]; // Get the list of items - while (listPartInfo.Contains(this)) listPartInfo.Remove(this); // Remove the item from the list - if (listPartInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(ContentID.ToString() + "_" + FromType.ToString()); // remove the list - } - public virtual Part Get() - { - return _Editable = Part.Get(_ContentID, _FromType); - } - public static void Refresh(Part tmp) - { - string key = tmp.ContentID.ToString() + "_" + tmp.FromType.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (PartInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Part tmp) - { - if (_ItemID != tmp.ItemID) - { - if (MyItem != null) MyItem.RefreshItemParts(); // Update List for old value - _ItemID = tmp.ItemID; // Update the value - } - _MyItem = null; // Reset list so that the next line gets a new list - if (MyItem != null) MyItem.RefreshItemParts(); // Update List for new value - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _PartInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - if (_MyItem != null) - { - _MyItem.Dispose();// Dispose related value - _MyItem = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(Content myContent, ContentPart tmp) - { - string key = myContent.ContentID.ToString() + "_" + tmp.FromType.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (PartInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ContentPart tmp) - { - if (_ItemID != tmp.ItemID) - { - if (MyItem != null) MyItem.RefreshItemParts(); // Update List for old value - _ItemID = tmp.ItemID; // Update the value - } - _MyItem = null; // Reset list so that the next line gets a new list - if (MyItem != null) MyItem.RefreshItemParts(); // Update List for new value - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _PartInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - if (_MyItem != null) - { - _MyItem.Dispose();// Dispose related value - _MyItem = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(ItemPart tmp) - { - string key = tmp.ContentID.ToString() + "_" + tmp.FromType.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (PartInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ItemPart tmp) - { - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _PartInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - if (_MyItem != null) - { - _MyItem.Dispose();// Dispose related value - _MyItem = null;// Reset related value - } - OnChange();// raise an event - } - public static PartInfo Get(int contentID, int fromType) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Part"); - try - { - PartInfo tmp = GetCachedByPrimaryKey(contentID, fromType); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(contentID, fromType)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up PartInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on PartInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal PartInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PartInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PartInfo.Constructor", ex); - throw new DbCslaException("PartInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - private int _FromType; - public int FromType - { get { return _FromType; } } - public PKCriteria(int contentID, int fromType) - { - _ContentID = contentID; - _FromType = fromType; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PartInfo.ReadData", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _FromType = dr.GetInt32("FromType"); - _ItemID = dr.GetInt32("ItemID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PartInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("PartInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PartInfo.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 = "getPart"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.Parameters.AddWithValue("@FromType", criteria.FromType); - 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("PartInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("PartInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - PartInfoExtension _PartInfoExtension = new PartInfoExtension(); - [Serializable()] - partial class PartInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(PartInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class PartInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is PartInfo) - { - // Return the ToString value - return ((PartInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/PartInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/PartInfoList.cs deleted file mode 100644 index 1b78f5a0..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/PartInfoList.cs +++ /dev/null @@ -1,312 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// PartInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(PartInfoListConverter))] - public partial class PartInfoList : 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 (PartInfo tmp in this) - { - tmp.Changed += new PartInfoEvent(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 (PartInfo tmp in this) - { - tmp.Changed -= new PartInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static PartInfoList _PartInfoList = null; - /// - /// Return a list of all projects. - /// - public static PartInfoList Get() - { - try - { - if (_PartInfoList != null) - return _PartInfoList; - PartInfoList tmp = DataPortal.Fetch(); - PartInfo.AddList(tmp); - tmp.AddEvents(); - _PartInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on PartInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static PartInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on PartInfoList.Get", ex); - // } - //} - public static PartInfoList GetByContentID(int contentID) - { - try - { - PartInfoList tmp = DataPortal.Fetch(new ContentIDCriteria(contentID)); - PartInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on PartInfoList.GetByContentID", ex); - } - } - public static PartInfoList GetByItemID(int itemID) - { - try - { - PartInfoList tmp = DataPortal.Fetch(new ItemIDCriteria(itemID)); - PartInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on PartInfoList.GetByItemID", ex); - } - } - private PartInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PartInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getParts"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new PartInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PartInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("PartInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ContentIDCriteria - { - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - private int _ContentID; - public int ContentID - { - get { return _ContentID; } - set { _ContentID = value; } - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PartInfoList.DataPortal_FetchContentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPartsByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new PartInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PartInfoList.DataPortal_FetchContentID", ex); - throw new DbCslaException("PartInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ItemIDCriteria - { - public ItemIDCriteria(int itemID) - { - _ItemID = itemID; - } - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - private void DataPortal_Fetch(ItemIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PartInfoList.DataPortal_FetchItemID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPartsByItemID"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new PartInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PartInfoList.DataPortal_FetchItemID", ex); - throw new DbCslaException("PartInfoList.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 - PartInfoListPropertyDescriptor pd = new PartInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class PartInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private PartInfo Item { get { return (PartInfo)_Item; } } - public PartInfoListPropertyDescriptor(PartInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class PartInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is PartInfoList) - { - // Return department and department role separated by comma. - return ((PartInfoList)value).Items.Count.ToString() + " Parts"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Permission.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Permission.cs deleted file mode 100644 index 6913dca7..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Permission.cs +++ /dev/null @@ -1,1251 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Permission Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(PermissionConverter))] - public partial class Permission : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshPermissions = new List(); - private void AddToRefreshList(List refreshPermissions) - { - if (IsDirty) - refreshPermissions.Add(this); - } - private void BuildRefreshList() - { - _RefreshPermissions = new List(); - AddToRefreshList(_RefreshPermissions); - } - private void ProcessRefreshList() - { - foreach (Permission tmp in _RefreshPermissions) - { - PermissionInfo.Refresh(tmp); - if (tmp._MyRole != null) RoleInfo.Refresh(tmp._MyRole); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Permission permission) - { - if (!_CacheList.Contains(permission)) _CacheList.Add(permission); // In AddToCache - } - protected static void RemoveFromCache(Permission permission) - { - while (_CacheList.Contains(permission)) _CacheList.Remove(permission); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Permission tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.PID.ToString())) - { - _CacheByPrimaryKey[tmp.PID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.PID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (Permission tmp in remove) - RemoveFromCache(tmp); - } - protected static Permission GetCachedByPrimaryKey(int pid) - { - ConvertListToDictionary(); - string key = pid.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextPID = -1; - public static int NextPID - { - get { return _nextPID--; } - } - private int _PID; - [System.ComponentModel.DataObjectField(true, true)] - public int PID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PID; - } - } - private int _RID; - public int RID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole != null) _RID = _MyRole.RID; - return _RID; - } - } - private Role _MyRole; - public Role MyRole - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole == null && _RID != 0) _MyRole = Role.Get(_RID); - return _MyRole; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyRole != value) - { - _MyRole = value; - PropertyHasChanged(); - } - } - } - private int _PermLevel; - /// - /// 0 - None, 1 - Security, 2 - System, 3 - RO, 4 - Procdures, 5 - Sections, 6 - Steps, 7 - Comments - /// - public int PermLevel - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PermLevel; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_PermLevel != value) - { - _PermLevel = value; - PropertyHasChanged(); - } - } - } - private int _VersionType; - /// - /// 0 - None, 1 - Working Draft, 2 - Approved, (3 - All) - /// - public int VersionType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _VersionType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_VersionType != value) - { - _VersionType = value; - PropertyHasChanged(); - } - } - } - private int _PermValue; - /// - /// 1 - Read, 2 - Write, 4 - Create, 8 - Delete (15 - All) - /// - public int PermValue - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PermValue; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_PermValue != value) - { - _PermValue = value; - PropertyHasChanged(); - } - } - } - private int _PermAD; - /// - /// 0 - Allow, 1 - Deny - /// - public int PermAD - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PermAD; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_PermAD != value) - { - _PermAD = value; - PropertyHasChanged(); - } - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _StartDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_StartDate != tmp.ToString()) - { - _StartDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _EndDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_EndDate != tmp.ToString()) - { - _EndDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsDirty - { - get { return base.IsDirty || (_MyRole == null ? false : _MyRole.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyRole == null ? true : _MyRole.IsValid); } - } - // TODO: Replace base Permission.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Permission - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Permission.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 Permission - protected override object GetIdValue() - { - return _PID; - } - #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 (_MyRole != null && (hasBrokenRules = _MyRole.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(MyRoleRequired, "MyRole"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "StartDate"); - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _PermissionExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _PermissionExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool StartDateValid(Permission target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._StartDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool EndDateValid(Permission target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._EndDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool MyRoleRequired(Permission target, Csla.Validation.RuleArgs e) - { - if (target._RID == 0 && target._MyRole == 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(PID, ""); - //AuthorizationRules.AllowRead(RID, ""); - //AuthorizationRules.AllowRead(PermLevel, ""); - //AuthorizationRules.AllowRead(VersionType, ""); - //AuthorizationRules.AllowRead(PermValue, ""); - //AuthorizationRules.AllowRead(PermAD, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(RID, ""); - //AuthorizationRules.AllowWrite(PermLevel, ""); - //AuthorizationRules.AllowWrite(VersionType, ""); - //AuthorizationRules.AllowWrite(PermValue, ""); - //AuthorizationRules.AllowWrite(PermAD, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - _PermissionExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _PermissionExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _PermissionUnique = 0; - protected static int PermissionUnique - { get { return ++_PermissionUnique; } } - private int _MyPermissionUnique = PermissionUnique; - public int MyPermissionUnique - { get { return _MyPermissionUnique; } } - protected Permission() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(PID.ToString())) - { - List listPermission = _CacheByPrimaryKey[PID.ToString()]; // Get the list of items - while (listPermission.Contains(this)) listPermission.Remove(this); // Remove the item from the list - if (listPermission.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(PID.ToString()); // remove the list - } - } - public static Permission New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Permission"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Permission.New", ex); - } - } - public static Permission New(Role myRole, int permLevel, int versionType, int permValue) - { - Permission tmp = Permission.New(); - tmp.MyRole = myRole; - tmp.PermLevel = permLevel; - tmp.VersionType = versionType; - tmp.PermValue = permValue; - return tmp; - } - public static Permission New(Role myRole, int permLevel, int versionType, int permValue, int permAD, string startDate, string endDate, string config, DateTime dts, string usrID) - { - Permission tmp = Permission.New(); - tmp.MyRole = myRole; - tmp.PermLevel = permLevel; - tmp.VersionType = versionType; - tmp.PermValue = permValue; - tmp.PermAD = permAD; - tmp.StartDate = startDate; - tmp.EndDate = endDate; - tmp.Config = config; - tmp.DTS = dts; - tmp.UsrID = usrID; - return tmp; - } - public static Permission MakePermission(Role myRole, int permLevel, int versionType, int permValue, int permAD, string startDate, string endDate, string config, DateTime dts, string usrID) - { - Permission tmp = Permission.New(myRole, permLevel, versionType, permValue, permAD, startDate, endDate, config, dts, usrID); - if (tmp.IsSavable) - { - Permission 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 Permission New(Role myRole, int permLevel, int versionType, int permValue, string endDate, string config) - { - Permission tmp = Permission.New(); - tmp.MyRole = myRole; - tmp.PermLevel = permLevel; - tmp.VersionType = versionType; - tmp.PermValue = permValue; - tmp.EndDate = endDate; - tmp.Config = config; - return tmp; - } - public static Permission MakePermission(Role myRole, int permLevel, int versionType, int permValue, string endDate, string config) - { - Permission tmp = Permission.New(myRole, permLevel, versionType, permValue, endDate, config); - if (tmp.IsSavable) - { - Permission 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 Permission Get(int pid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Permission"); - try - { - Permission tmp = GetCachedByPrimaryKey(pid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(pid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Permission - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Permission.Get", ex); - } - } - public static Permission Get(SafeDataReader dr) - { - if (dr.Read()) return new Permission(dr); - return null; - } - internal Permission(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int pid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Permission"); - try - { - DataPortal.Delete(new PKCriteria(pid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Permission.Delete", ex); - } - } - public override Permission Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Permission"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Permission"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Permission"); - try - { - BuildRefreshList(); - Permission permission = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(permission);//Refresh the item in AllList - ProcessRefreshList(); - return permission; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _PID; - public int PID - { get { return _PID; } } - public PKCriteria(int pid) - { - _PID = pid; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _PID = NextPID; - // Database Defaults - _PermAD = _PermissionExtension.DefaultPermAD; - _StartDate = _PermissionExtension.DefaultStartDate; - _DTS = _PermissionExtension.DefaultDTS; - _UsrID = _PermissionExtension.DefaultUsrID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Permission.ReadData", GetHashCode()); - try - { - _PID = dr.GetInt32("PID"); - _RID = dr.GetInt32("RID"); - _PermLevel = dr.GetInt32("PermLevel"); - _VersionType = dr.GetInt32("VersionType"); - _PermValue = dr.GetInt32("PermValue"); - _PermAD = dr.GetInt32("PermAD"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Permission.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Permission.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Permission.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 = "getPermission"; - cm.Parameters.AddWithValue("@PID", criteria.PID); - 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("Permission.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Permission.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("Permission.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Permission.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Permission.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyRole != null) _MyRole.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addPermission"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@RID", RID); - cm.Parameters.AddWithValue("@PermLevel", _PermLevel); - cm.Parameters.AddWithValue("@VersionType", _VersionType); - cm.Parameters.AddWithValue("@PermValue", _PermValue); - cm.Parameters.AddWithValue("@PermAD", _PermAD); - cm.Parameters.AddWithValue("@StartDate", new SmartDate(_StartDate).DBValue); - cm.Parameters.AddWithValue("@EndDate", new SmartDate(_EndDate).DBValue); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - // Output Calculated Columns - SqlParameter param_PID = new SqlParameter("@newPID", SqlDbType.Int); - param_PID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_PID); - 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 - _PID = (int)cm.Parameters["@newPID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Permission.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Permission.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Permission.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int pid, Role myRole, int permLevel, int versionType, int permValue, int permAD, SmartDate startDate, SmartDate endDate, string config, DateTime dts, string usrID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Permission.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addPermission"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@RID", myRole.RID); - cm.Parameters.AddWithValue("@PermLevel", permLevel); - cm.Parameters.AddWithValue("@VersionType", versionType); - cm.Parameters.AddWithValue("@PermValue", permValue); - cm.Parameters.AddWithValue("@PermAD", permAD); - cm.Parameters.AddWithValue("@StartDate", startDate.DBValue); - cm.Parameters.AddWithValue("@EndDate", endDate.DBValue); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - // Output Calculated Columns - SqlParameter param_PID = new SqlParameter("@newPID", SqlDbType.Int); - param_PID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_PID); - 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 - pid = (int)cm.Parameters["@newPID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Permission.Add", ex); - throw new DbCslaException("Permission.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}] Permission.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("Permission.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}] Permission.SQLUpdate", GetHashCode()); - try - { - if (_MyRole != null) _MyRole.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updatePermission"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@PID", _PID); - cm.Parameters.AddWithValue("@RID", RID); - cm.Parameters.AddWithValue("@PermLevel", _PermLevel); - cm.Parameters.AddWithValue("@VersionType", _VersionType); - cm.Parameters.AddWithValue("@PermValue", _PermValue); - cm.Parameters.AddWithValue("@PermAD", _PermAD); - cm.Parameters.AddWithValue("@StartDate", new SmartDate(_StartDate).DBValue); - cm.Parameters.AddWithValue("@EndDate", new SmartDate(_EndDate).DBValue); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Permission.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 = Permission.Add(cn, ref _PID, _MyRole, _PermLevel, _VersionType, _PermValue, _PermAD, new SmartDate(_StartDate), new SmartDate(_EndDate), _Config, _DTS, _UsrID); - else - _LastChanged = Permission.Update(cn, ref _PID, _MyRole, _PermLevel, _VersionType, _PermValue, _PermAD, new SmartDate(_StartDate), new SmartDate(_EndDate), _Config, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int pid, Role myRole, int permLevel, int versionType, int permValue, int permAD, SmartDate startDate, SmartDate endDate, string config, DateTime dts, string usrID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Permission.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updatePermission"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@PID", pid); - cm.Parameters.AddWithValue("@RID", myRole.RID); - cm.Parameters.AddWithValue("@PermLevel", permLevel); - cm.Parameters.AddWithValue("@VersionType", versionType); - cm.Parameters.AddWithValue("@PermValue", permValue); - cm.Parameters.AddWithValue("@PermAD", permAD); - cm.Parameters.AddWithValue("@StartDate", startDate.DBValue); - cm.Parameters.AddWithValue("@EndDate", endDate.DBValue); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - 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("Permission.Update", ex); - throw new DbCslaException("Permission.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_PID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Permission.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deletePermission"; - cm.Parameters.AddWithValue("@PID", criteria.PID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Permission.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Permission.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int pid) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Permission.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deletePermission"; - // Input PK Fields - cm.Parameters.AddWithValue("@PID", pid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Permission.Remove", ex); - throw new DbCslaException("Permission.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int pid) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(pid)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Permission.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _PID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int pid) - { - _PID = pid; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Permission.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsPermission"; - cm.Parameters.AddWithValue("@PID", _PID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Permission.DataPortal_Execute", ex); - throw new DbCslaException("Permission.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - PermissionExtension _PermissionExtension = new PermissionExtension(); - [Serializable()] - partial class PermissionExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultPermAD - { - get { return 0; } - } - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 PermissionConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Permission) - { - // Return the ToString value - return ((Permission)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create PermissionExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Permission -// { -// partial class PermissionExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultPermAD -// { -// get { return 0; } -// } -// public virtual SmartDate DefaultStartDate -// { -// get { return DateTime.Now.ToShortDateString(); } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/PermissionInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/PermissionInfo.cs deleted file mode 100644 index 09e8d172..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/PermissionInfo.cs +++ /dev/null @@ -1,457 +0,0 @@ -// ======================================================================== -// 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 PermissionInfoEvent(object sender); - /// - /// PermissionInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(PermissionInfoConverter))] - public partial class PermissionInfo : ReadOnlyBase, IDisposable - { - public event PermissionInfoEvent 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(PermissionInfo permissionInfo) - { - if (!_CacheList.Contains(permissionInfo)) _CacheList.Add(permissionInfo); // In AddToCache - } - protected static void RemoveFromCache(PermissionInfo permissionInfo) - { - while (_CacheList.Contains(permissionInfo)) _CacheList.Remove(permissionInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (PermissionInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.PID.ToString())) - { - _CacheByPrimaryKey[tmp.PID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.PID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (PermissionInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(PermissionInfoList lst) - { - foreach (PermissionInfo item in lst) AddToCache(item); - } - protected static PermissionInfo GetCachedByPrimaryKey(int pid) - { - ConvertListToDictionary(); - string key = pid.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 Permission _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _PID; - [System.ComponentModel.DataObjectField(true, true)] - public int PID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PID; - } - } - private int _RID; - public int RID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole != null) _RID = _MyRole.RID; - return _RID; - } - } - private RoleInfo _MyRole; - public RoleInfo MyRole - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRole == null && _RID != 0) _MyRole = RoleInfo.Get(_RID); - return _MyRole; - } - } - private int _PermLevel; - /// - /// 0 - None, 1 - Security, 2 - System, 3 - RO, 4 - Procdures, 5 - Sections, 6 - Steps, 7 - Comments - /// - public int PermLevel - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PermLevel; - } - } - private int _VersionType; - /// - /// 0 - None, 1 - Working Draft, 2 - Approved, (3 - All) - /// - public int VersionType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _VersionType; - } - } - private int _PermValue; - /// - /// 1 - Read, 2 - Write, 4 - Create, 8 - Delete (15 - All) - /// - public int PermValue - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PermValue; - } - } - private int _PermAD; - /// - /// 0 - Allow, 1 - Deny - /// - public int PermAD - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PermAD; - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - } - // TODO: Replace base PermissionInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current PermissionInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check PermissionInfo.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 PermissionInfo - protected override object GetIdValue() - { - return _PID; - } - #endregion - #region Factory Methods - private static int _PermissionInfoUnique = 0; - private static int PermissionInfoUnique - { get { return ++_PermissionInfoUnique; } } - private int _MyPermissionInfoUnique = PermissionInfoUnique; - public int MyPermissionInfoUnique - { get { return _MyPermissionInfoUnique; } } - protected PermissionInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(PID.ToString())) return; - List listPermissionInfo = _CacheByPrimaryKey[PID.ToString()]; // Get the list of items - while (listPermissionInfo.Contains(this)) listPermissionInfo.Remove(this); // Remove the item from the list - if (listPermissionInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(PID.ToString()); // remove the list - } - public virtual Permission Get() - { - return _Editable = Permission.Get(_PID); - } - public static void Refresh(Permission tmp) - { - string key = tmp.PID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (PermissionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Permission tmp) - { - if (_RID != tmp.RID) - { - if (MyRole != null) MyRole.RefreshRolePermissions(); // Update List for old value - _RID = tmp.RID; // Update the value - } - _MyRole = null; // Reset list so that the next line gets a new list - if (MyRole != null) MyRole.RefreshRolePermissions(); // Update List for new value - _PermLevel = tmp.PermLevel; - _VersionType = tmp.VersionType; - _PermValue = tmp.PermValue; - _PermAD = tmp.PermAD; - _StartDate = tmp.StartDate; - _EndDate = tmp.EndDate; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _PermissionInfoExtension.Refresh(this); - if (_MyRole != null) - { - _MyRole.Dispose();// Dispose related value - _MyRole = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(RolePermission tmp) - { - string key = tmp.PID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (PermissionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(RolePermission tmp) - { - _PermLevel = tmp.PermLevel; - _VersionType = tmp.VersionType; - _PermValue = tmp.PermValue; - _PermAD = tmp.PermAD; - _StartDate = tmp.StartDate; - _EndDate = tmp.EndDate; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _PermissionInfoExtension.Refresh(this); - if (_MyRole != null) - { - _MyRole.Dispose();// Dispose related value - _MyRole = null;// Reset related value - } - OnChange();// raise an event - } - public static PermissionInfo Get(int pid) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Permission"); - try - { - PermissionInfo tmp = GetCachedByPrimaryKey(pid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(pid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up PermissionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on PermissionInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal PermissionInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PermissionInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PermissionInfo.Constructor", ex); - throw new DbCslaException("PermissionInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _PID; - public int PID - { get { return _PID; } } - public PKCriteria(int pid) - { - _PID = pid; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PermissionInfo.ReadData", GetHashCode()); - try - { - _PID = dr.GetInt32("PID"); - _RID = dr.GetInt32("RID"); - _PermLevel = dr.GetInt32("PermLevel"); - _VersionType = dr.GetInt32("VersionType"); - _PermValue = dr.GetInt32("PermValue"); - _PermAD = dr.GetInt32("PermAD"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PermissionInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("PermissionInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PermissionInfo.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 = "getPermission"; - cm.Parameters.AddWithValue("@PID", criteria.PID); - 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("PermissionInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("PermissionInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - PermissionInfoExtension _PermissionInfoExtension = new PermissionInfoExtension(); - [Serializable()] - partial class PermissionInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(PermissionInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class PermissionInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is PermissionInfo) - { - // Return the ToString value - return ((PermissionInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/PermissionInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/PermissionInfoList.cs deleted file mode 100644 index 6b4500fd..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/PermissionInfoList.cs +++ /dev/null @@ -1,255 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// PermissionInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(PermissionInfoListConverter))] - public partial class PermissionInfoList : 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 (PermissionInfo tmp in this) - { - tmp.Changed += new PermissionInfoEvent(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 (PermissionInfo tmp in this) - { - tmp.Changed -= new PermissionInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static PermissionInfoList _PermissionInfoList = null; - /// - /// Return a list of all projects. - /// - public static PermissionInfoList Get() - { - try - { - if (_PermissionInfoList != null) - return _PermissionInfoList; - PermissionInfoList tmp = DataPortal.Fetch(); - PermissionInfo.AddList(tmp); - tmp.AddEvents(); - _PermissionInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on PermissionInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static PermissionInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on PermissionInfoList.Get", ex); - // } - //} - public static PermissionInfoList GetByRID(int rid) - { - try - { - PermissionInfoList tmp = DataPortal.Fetch(new RIDCriteria(rid)); - PermissionInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on PermissionInfoList.GetByRID", ex); - } - } - private PermissionInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PermissionInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPermissions"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new PermissionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PermissionInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("PermissionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class RIDCriteria - { - public RIDCriteria(int rid) - { - _RID = rid; - } - private int _RID; - public int RID - { - get { return _RID; } - set { _RID = value; } - } - } - private void DataPortal_Fetch(RIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] PermissionInfoList.DataPortal_FetchRID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPermissionsByRID"; - cm.Parameters.AddWithValue("@RID", criteria.RID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new PermissionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("PermissionInfoList.DataPortal_FetchRID", ex); - throw new DbCslaException("PermissionInfoList.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 - PermissionInfoListPropertyDescriptor pd = new PermissionInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class PermissionInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private PermissionInfo Item { get { return (PermissionInfo)_Item; } } - public PermissionInfoListPropertyDescriptor(PermissionInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class PermissionInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is PermissionInfoList) - { - // Return department and department role separated by comma. - return ((PermissionInfoList)value).Items.Count.ToString() + " Permissions"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/PropertyDescriptor.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/PropertyDescriptor.cs deleted file mode 100644 index 3543e884..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/PropertyDescriptor.cs +++ /dev/null @@ -1,231 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// PropertyDescriptor Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class vlnListPropertyDescriptor : PropertyDescriptor - { - protected object _Item = null; - public vlnListPropertyDescriptor(System.Collections.IList collection, int index) - : base("#" + index.ToString(), null) - { _Item = collection[index]; } - public override bool CanResetValue(object component) - { return true; } - public override Type ComponentType - { get { return _Item.GetType(); } } - public override object GetValue(object component) - { return _Item; } - public override bool IsReadOnly - { get { return false; } } - public override Type PropertyType - { get { return _Item.GetType(); } } - public override void ResetValue(object component) - { ;} - public override bool ShouldSerializeValue(object component) - { return true; } - public override void SetValue(object component, object value) - { /*_Item = value*/;} - //public override AttributeCollection Attributes - //{ get { return new AttributeCollection(null); } } - public override string DisplayName - { get { return _Item.ToString(); } } - public override string Description - { get { return _Item.ToString(); } } - public override string Name - { get { return _Item.ToString(); } } - } // Class - public interface IVEHasBrokenRules - { - IVEHasBrokenRules HasBrokenRules { get; } - BrokenRulesCollection BrokenRules { get; } - } -} // Namespace -// The following are samples of ToString overrides -// public partial class Annotation -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class AnnotationInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class AnnotationType -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class AnnotationTypeAnnotation -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class AnnotationTypeInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Assignment -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class AssignmentInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Connection -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ConnectionFolder -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ConnectionInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Content -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ContentDetail -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ContentItem -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ContentPart -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ContentRoUsage -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ContentTransition -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ContentInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Detail -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class DetailInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Document -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class DocumentEntry -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class DocumentInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class DocVersionROFst -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class DocVersionROFstInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class DocVersion -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class DocVersionDocVersionROFst -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class DocVersionInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Entry -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class EntryInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Folder -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class FolderAssignment -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class FolderDocVersion -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class FolderInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Format -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class FormatContent -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class FormatDocVersion -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class FormatFolder -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class FormatInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Group -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class GroupAssignment -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class GroupMembership -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class GroupInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Item -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ItemAnnotation -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ItemDocVersion -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ItemPart -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ItemTransition_RangeID -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ItemTransition_ToID -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ItemInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Membership -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class MembershipInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Part -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class PartInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Permission -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class PermissionInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class RODb -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class RODbROFst -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class RODbROImage -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class RODbRoUsage -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class RODbInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ROFstImage -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ROFstImageInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ROFst -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ROFstDocVersionROFst -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ROFstROFstImage -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ROFstInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ROImage -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ROImageROFstImage -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ROImageInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Role -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class RoleAssignment -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class RolePermission -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class RoleInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class RoUsage -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class RoUsageInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class Transition -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class TransitionInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class User -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class UserMembership -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class UserInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ZContent -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ZContentInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ZTransition -// { public override string ToString() { return string.Format("{0}", _Name); } } -// public partial class ZTransitionInfo -// { public override string ToString() { return string.Format("{0}", _Name); } } \ No newline at end of file diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODb.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODb.cs deleted file mode 100644 index febd474c..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODb.cs +++ /dev/null @@ -1,1192 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// RODb Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RODbConverter))] - public partial class RODb : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshRODbs = new List(); - private List _RefreshRODbROFsts = new List(); - private List _RefreshRODbROImages = new List(); - private List _RefreshRODbRoUsages = new List(); - private void AddToRefreshList(List refreshRODbs, List refreshRODbROFsts, List refreshRODbROImages, List refreshRODbRoUsages) - { - if (IsDirty) - refreshRODbs.Add(this); - if (_RODbROFsts != null && _RODbROFsts.IsDirty) - { - foreach (RODbROFst tmp in _RODbROFsts) - { - if (tmp.IsDirty) refreshRODbROFsts.Add(tmp); - } - } - if (_RODbROImages != null && _RODbROImages.IsDirty) - { - foreach (RODbROImage tmp in _RODbROImages) - { - if (tmp.IsDirty) refreshRODbROImages.Add(tmp); - } - } - if (_RODbRoUsages != null && _RODbRoUsages.IsDirty) - { - foreach (RODbRoUsage tmp in _RODbRoUsages) - { - if (tmp.IsDirty) refreshRODbRoUsages.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshRODbs = new List(); - _RefreshRODbROFsts = new List(); - _RefreshRODbROImages = new List(); - _RefreshRODbRoUsages = new List(); - AddToRefreshList(_RefreshRODbs, _RefreshRODbROFsts, _RefreshRODbROImages, _RefreshRODbRoUsages); - } - private void ProcessRefreshList() - { - foreach (RODb tmp in _RefreshRODbs) - { - RODbInfo.Refresh(tmp); - } - foreach (RODbROFst tmp in _RefreshRODbROFsts) - { - ROFstInfo.Refresh(tmp); - } - foreach (RODbROImage tmp in _RefreshRODbROImages) - { - ROImageInfo.Refresh(tmp); - } - foreach (RODbRoUsage tmp in _RefreshRODbRoUsages) - { - RoUsageInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(RODb rODb) - { - if (!_CacheList.Contains(rODb)) _CacheList.Add(rODb); // In AddToCache - } - protected static void RemoveFromCache(RODb rODb) - { - while (_CacheList.Contains(rODb)) _CacheList.Remove(rODb); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (RODb tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.RODbID.ToString())) - { - _CacheByPrimaryKey[tmp.RODbID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.RODbID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (RODb tmp in remove) - RemoveFromCache(tmp); - } - protected static RODb GetCachedByPrimaryKey(int rODbID) - { - ConvertListToDictionary(); - string key = rODbID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextRODbID = -1; - public static int NextRODbID - { - get { return _nextRODbID--; } - } - private int _RODbID; - [System.ComponentModel.DataObjectField(true, true)] - public int RODbID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODbID; - } - } - private string _ROName = string.Empty; - /// - /// Hook for future - to allow the user to select multiple RO Databases assocaiated with on DocVersion - /// - public string ROName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_ROName != value) - { - _ROName = value; - PropertyHasChanged(); - } - } - } - private string _FolderPath = string.Empty; - /// - /// Path to the RO database - /// - public string FolderPath - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FolderPath; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_FolderPath != value) - { - _FolderPath = value; - PropertyHasChanged(); - } - } - } - private string _DBConnectionString = string.Empty; - /// - /// Connection String - Default could just be the full path and name of the database - /// - public string DBConnectionString - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DBConnectionString; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_DBConnectionString != value) - { - _DBConnectionString = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _RODbROFstCount = 0; - /// - /// Count of RODbROFsts for this RODb - /// - public int RODbROFstCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODbROFstCount; - } - } - private RODbROFsts _RODbROFsts = null; - /// - /// Related Field - /// - [TypeConverter(typeof(RODbROFstsConverter))] - public RODbROFsts RODbROFsts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_RODbROFstCount > 0 && _RODbROFsts == null) - _RODbROFsts = RODbROFsts.GetByRODbID(RODbID); - else if (_RODbROFsts == null) - _RODbROFsts = RODbROFsts.New(); - return _RODbROFsts; - } - } - private int _RODbROImageCount = 0; - /// - /// Count of RODbROImages for this RODb - /// - public int RODbROImageCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODbROImageCount; - } - } - private RODbROImages _RODbROImages = null; - /// - /// Related Field - /// - [TypeConverter(typeof(RODbROImagesConverter))] - public RODbROImages RODbROImages - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_RODbROImageCount > 0 && _RODbROImages == null) - _RODbROImages = RODbROImages.GetByRODbID(RODbID); - else if (_RODbROImages == null) - _RODbROImages = RODbROImages.New(); - return _RODbROImages; - } - } - private int _RODbRoUsageCount = 0; - /// - /// Count of RODbRoUsages for this RODb - /// - public int RODbRoUsageCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODbRoUsageCount; - } - } - private RODbRoUsages _RODbRoUsages = null; - /// - /// Related Field - /// - [TypeConverter(typeof(RODbRoUsagesConverter))] - public RODbRoUsages RODbRoUsages - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_RODbRoUsageCount > 0 && _RODbRoUsages == null) - _RODbRoUsages = RODbRoUsages.GetByRODbID(RODbID); - else if (_RODbRoUsages == null) - _RODbRoUsages = RODbRoUsages.New(); - return _RODbRoUsages; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_RODbROFsts == null ? false : _RODbROFsts.IsDirty) || (_RODbROImages == null ? false : _RODbROImages.IsDirty) || (_RODbRoUsages == null ? false : _RODbRoUsages.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_RODbROFsts == null ? true : _RODbROFsts.IsValid) && (_RODbROImages == null ? true : _RODbROImages.IsValid) && (_RODbRoUsages == null ? true : _RODbRoUsages.IsValid); } - } - // TODO: Replace base RODb.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RODb - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check RODb.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 RODb - protected override object GetIdValue() - { - return _RODbID; - } - #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 (_RODbRoUsages != null && (hasBrokenRules = _RODbRoUsages.HasBrokenRules) != null) return hasBrokenRules; - if (_RODbROFsts != null && (hasBrokenRules = _RODbROFsts.HasBrokenRules) != null) return hasBrokenRules; - if (_RODbROImages != null && (hasBrokenRules = _RODbROImages.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "ROName"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("ROName", 255)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "FolderPath"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("FolderPath", 255)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "DBConnectionString"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("DBConnectionString", 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"); - _RODbExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _RODbExtension.AddInstanceValidationRules(ValidationRules); - // 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(RODbID, ""); - //AuthorizationRules.AllowRead(ROName, ""); - //AuthorizationRules.AllowRead(FolderPath, ""); - //AuthorizationRules.AllowRead(DBConnectionString, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(ROName, ""); - //AuthorizationRules.AllowWrite(FolderPath, ""); - //AuthorizationRules.AllowWrite(DBConnectionString, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _RODbExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _RODbExtension.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 += _RODbROFstCount; - usedByCount += _RODbROImageCount; - usedByCount += _RODbRoUsageCount; - 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 _RODbUnique = 0; - protected static int RODbUnique - { get { return ++_RODbUnique; } } - private int _MyRODbUnique = RODbUnique; - public int MyRODbUnique - { get { return _MyRODbUnique; } } - protected RODb() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(RODbID.ToString())) - { - List listRODb = _CacheByPrimaryKey[RODbID.ToString()]; // Get the list of items - while (listRODb.Contains(this)) listRODb.Remove(this); // Remove the item from the list - if (listRODb.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(RODbID.ToString()); // remove the list - } - } - public static RODb New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a RODb"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on RODb.New", ex); - } - } - public static RODb New(string rOName, string folderPath, string dBConnectionString) - { - RODb tmp = RODb.New(); - tmp.ROName = rOName; - tmp.FolderPath = folderPath; - tmp.DBConnectionString = dBConnectionString; - return tmp; - } - public static RODb MakeRODb(string rOName, string folderPath, string dBConnectionString) - { - RODb tmp = RODb.New(rOName, folderPath, dBConnectionString); - if (tmp.IsSavable) - { - RODb 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 RODb New(string rOName, string folderPath, string dBConnectionString, DateTime dts, string userID) - { - RODb tmp = RODb.New(); - tmp.ROName = rOName; - tmp.FolderPath = folderPath; - tmp.DBConnectionString = dBConnectionString; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static RODb MakeRODb(string rOName, string folderPath, string dBConnectionString, DateTime dts, string userID) - { - RODb tmp = RODb.New(rOName, folderPath, dBConnectionString, dts, userID); - if (tmp.IsSavable) - { - RODb 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 RODb Get(int rODbID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a RODb"); - try - { - RODb tmp = GetCachedByPrimaryKey(rODbID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(rODbID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up RODb - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RODb.Get", ex); - } - } - public static RODb Get(SafeDataReader dr) - { - if (dr.Read()) return new RODb(dr); - return null; - } - internal RODb(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int rODbID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a RODb"); - try - { - DataPortal.Delete(new PKCriteria(rODbID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on RODb.Delete", ex); - } - } - public override RODb Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a RODb"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a RODb"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a RODb"); - try - { - BuildRefreshList(); - RODb rODb = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(rODb);//Refresh the item in AllList - ProcessRefreshList(); - return rODb; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _RODbID; - public int RODbID - { get { return _RODbID; } } - public PKCriteria(int rODbID) - { - _RODbID = rODbID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _RODbID = NextRODbID; - // Database Defaults - _DTS = _RODbExtension.DefaultDTS; - _UserID = _RODbExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODb.ReadData", GetHashCode()); - try - { - _RODbID = dr.GetInt32("RODbID"); - _ROName = dr.GetString("ROName"); - _FolderPath = dr.GetString("FolderPath"); - _DBConnectionString = dr.GetString("DBConnectionString"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _RODbROFstCount = dr.GetInt32("ROFstCount"); - _RODbROImageCount = dr.GetInt32("ROImageCount"); - _RODbRoUsageCount = dr.GetInt32("RoUsageCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RODb.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RODb.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODb.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 = "getRODb"; - cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _RODbROFsts = RODbROFsts.Get(dr); - // load child objects - dr.NextResult(); - _RODbROImages = RODbROImages.Get(dr); - // load child objects - dr.NextResult(); - _RODbRoUsages = RODbRoUsages.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("RODb.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RODb.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("RODb.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RODb.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODb.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addRODb"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ROName", _ROName); - cm.Parameters.AddWithValue("@FolderPath", _FolderPath); - cm.Parameters.AddWithValue("@DBConnectionString", _DBConnectionString); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - // Output Calculated Columns - SqlParameter param_RODbID = new SqlParameter("@newRODbID", SqlDbType.Int); - param_RODbID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_RODbID); - 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 - _RODbID = (int)cm.Parameters["@newRODbID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_RODbRoUsages != null) _RODbRoUsages.Update(this); - if (_RODbROFsts != null) _RODbROFsts.Update(this); - if (_RODbROImages != null) _RODbROImages.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODb.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RODb.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RODb.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int rODbID, string rOName, string folderPath, string dBConnectionString, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODb.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addRODb"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ROName", rOName); - cm.Parameters.AddWithValue("@FolderPath", folderPath); - cm.Parameters.AddWithValue("@DBConnectionString", dBConnectionString); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UserID", userID); - // Output Calculated Columns - SqlParameter param_RODbID = new SqlParameter("@newRODbID", SqlDbType.Int); - param_RODbID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_RODbID); - 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 - rODbID = (int)cm.Parameters["@newRODbID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RODb.Add", ex); - throw new DbCslaException("RODb.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}] RODb.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("RODb.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}] RODb.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateRODb"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@RODbID", _RODbID); - cm.Parameters.AddWithValue("@ROName", _ROName); - cm.Parameters.AddWithValue("@FolderPath", _FolderPath); - cm.Parameters.AddWithValue("@DBConnectionString", _DBConnectionString); - 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 (_RODbRoUsages != null) _RODbRoUsages.Update(this); - if (_RODbROFsts != null) _RODbROFsts.Update(this); - if (_RODbROImages != null) _RODbROImages.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RODb.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 = RODb.Add(cn, ref _RODbID, _ROName, _FolderPath, _DBConnectionString, _DTS, _UserID); - else - _LastChanged = RODb.Update(cn, ref _RODbID, _ROName, _FolderPath, _DBConnectionString, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - if (_RODbRoUsages != null) _RODbRoUsages.Update(this); - if (_RODbROFsts != null) _RODbROFsts.Update(this); - if (_RODbROImages != null) _RODbROImages.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int rODbID, string rOName, string folderPath, string dBConnectionString, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODb.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateRODb"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@RODbID", rODbID); - cm.Parameters.AddWithValue("@ROName", rOName); - cm.Parameters.AddWithValue("@FolderPath", folderPath); - cm.Parameters.AddWithValue("@DBConnectionString", dBConnectionString); - 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("RODb.Update", ex); - throw new DbCslaException("RODb.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_RODbID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODb.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRODb"; - cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RODb.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RODb.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int rODbID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODb.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRODb"; - // Input PK Fields - cm.Parameters.AddWithValue("@RODbID", rODbID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RODb.Remove", ex); - throw new DbCslaException("RODb.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int rODbID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(rODbID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RODb.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _RODbID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int rODbID) - { - _RODbID = rODbID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODb.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsRODb"; - cm.Parameters.AddWithValue("@RODbID", _RODbID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RODb.DataPortal_Execute", ex); - throw new DbCslaException("RODb.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - RODbExtension _RODbExtension = new RODbExtension(); - [Serializable()] - partial class RODbExtension : 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 RODbConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RODb) - { - // Return the ToString value - return ((RODb)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create RODbExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class RODb -// { -// partial class RODbExtension : 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/OldGenerated/RODbInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbInfo.cs deleted file mode 100644 index ad776452..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbInfo.cs +++ /dev/null @@ -1,452 +0,0 @@ -// ======================================================================== -// 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 RODbInfoEvent(object sender); - /// - /// RODbInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RODbInfoConverter))] - public partial class RODbInfo : ReadOnlyBase, IDisposable - { - public event RODbInfoEvent 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(RODbInfo rODbInfo) - { - if (!_CacheList.Contains(rODbInfo)) _CacheList.Add(rODbInfo); // In AddToCache - } - protected static void RemoveFromCache(RODbInfo rODbInfo) - { - while (_CacheList.Contains(rODbInfo)) _CacheList.Remove(rODbInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (RODbInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.RODbID.ToString())) - { - _CacheByPrimaryKey[tmp.RODbID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.RODbID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (RODbInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(RODbInfoList lst) - { - foreach (RODbInfo item in lst) AddToCache(item); - } - protected static RODbInfo GetCachedByPrimaryKey(int rODbID) - { - ConvertListToDictionary(); - string key = rODbID.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 RODb _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _RODbID; - [System.ComponentModel.DataObjectField(true, true)] - public int RODbID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODbID; - } - } - private string _ROName = string.Empty; - /// - /// Hook for future - to allow the user to select multiple RO Databases assocaiated with on DocVersion - /// - public string ROName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROName; - } - } - private string _FolderPath = string.Empty; - /// - /// Path to the RO database - /// - public string FolderPath - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FolderPath; - } - } - private string _DBConnectionString = string.Empty; - /// - /// Connection String - Default could just be the full path and name of the database - /// - public string DBConnectionString - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DBConnectionString; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _RODbROFstCount = 0; - /// - /// Count of RODbROFsts for this RODb - /// - public int RODbROFstCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODbROFstCount; - } - } - private ROFstInfoList _RODbROFsts = null; - [TypeConverter(typeof(ROFstInfoListConverter))] - public ROFstInfoList RODbROFsts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_RODbROFstCount < 0 || (_RODbROFstCount > 0 && _RODbROFsts == null)) - _RODbROFsts = ROFstInfoList.GetByRODbID(_RODbID); - if (_RODbROFstCount < 0) - _RODbROFstCount = _RODbROFsts.Count; - return _RODbROFsts; - } - } - public void RefreshRODbROFsts() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_RODbID.ToString())) - foreach (RODbInfo tmp in _CacheByPrimaryKey[_RODbID.ToString()]) - tmp._RODbROFstCount = -1; // This will cause the data to be requeried - } - private int _RODbROImageCount = 0; - /// - /// Count of RODbROImages for this RODb - /// - public int RODbROImageCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODbROImageCount; - } - } - private ROImageInfoList _RODbROImages = null; - [TypeConverter(typeof(ROImageInfoListConverter))] - public ROImageInfoList RODbROImages - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_RODbROImageCount < 0 || (_RODbROImageCount > 0 && _RODbROImages == null)) - _RODbROImages = ROImageInfoList.GetByRODbID(_RODbID); - if (_RODbROImageCount < 0) - _RODbROImageCount = _RODbROImages.Count; - return _RODbROImages; - } - } - public void RefreshRODbROImages() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_RODbID.ToString())) - foreach (RODbInfo tmp in _CacheByPrimaryKey[_RODbID.ToString()]) - tmp._RODbROImageCount = -1; // This will cause the data to be requeried - } - private int _RODbRoUsageCount = 0; - /// - /// Count of RODbRoUsages for this RODb - /// - public int RODbRoUsageCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RODbRoUsageCount; - } - } - private RoUsageInfoList _RODbRoUsages = null; - [TypeConverter(typeof(RoUsageInfoListConverter))] - public RoUsageInfoList RODbRoUsages - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_RODbRoUsageCount < 0 || (_RODbRoUsageCount > 0 && _RODbRoUsages == null)) - _RODbRoUsages = RoUsageInfoList.GetByRODbID(_RODbID); - if (_RODbRoUsageCount < 0) - _RODbRoUsageCount = _RODbRoUsages.Count; - return _RODbRoUsages; - } - } - public void RefreshRODbRoUsages() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_RODbID.ToString())) - foreach (RODbInfo tmp in _CacheByPrimaryKey[_RODbID.ToString()]) - tmp._RODbRoUsageCount = -1; // This will cause the data to be requeried - } - // TODO: Replace base RODbInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RODbInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check RODbInfo.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 RODbInfo - protected override object GetIdValue() - { - return _RODbID; - } - #endregion - #region Factory Methods - private static int _RODbInfoUnique = 0; - private static int RODbInfoUnique - { get { return ++_RODbInfoUnique; } } - private int _MyRODbInfoUnique = RODbInfoUnique; - public int MyRODbInfoUnique - { get { return _MyRODbInfoUnique; } } - protected RODbInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(RODbID.ToString())) return; - List listRODbInfo = _CacheByPrimaryKey[RODbID.ToString()]; // Get the list of items - while (listRODbInfo.Contains(this)) listRODbInfo.Remove(this); // Remove the item from the list - if (listRODbInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(RODbID.ToString()); // remove the list - } - public virtual RODb Get() - { - return _Editable = RODb.Get(_RODbID); - } - public static void Refresh(RODb tmp) - { - string key = tmp.RODbID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (RODbInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(RODb tmp) - { - _ROName = tmp.ROName; - _FolderPath = tmp.FolderPath; - _DBConnectionString = tmp.DBConnectionString; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _RODbInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static RODbInfo Get(int rODbID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a RODb"); - try - { - RODbInfo tmp = GetCachedByPrimaryKey(rODbID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(rODbID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up RODbInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RODbInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal RODbInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODbInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RODbInfo.Constructor", ex); - throw new DbCslaException("RODbInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _RODbID; - public int RODbID - { get { return _RODbID; } } - public PKCriteria(int rODbID) - { - _RODbID = rODbID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODbInfo.ReadData", GetHashCode()); - try - { - _RODbID = dr.GetInt32("RODbID"); - _ROName = dr.GetString("ROName"); - _FolderPath = dr.GetString("FolderPath"); - _DBConnectionString = dr.GetString("DBConnectionString"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _RODbROFstCount = dr.GetInt32("ROFstCount"); - _RODbROImageCount = dr.GetInt32("ROImageCount"); - _RODbRoUsageCount = dr.GetInt32("RoUsageCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RODbInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RODbInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODbInfo.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 = "getRODb"; - cm.Parameters.AddWithValue("@RODbID", criteria.RODbID); - 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("RODbInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RODbInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - RODbInfoExtension _RODbInfoExtension = new RODbInfoExtension(); - [Serializable()] - partial class RODbInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(RODbInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class RODbInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RODbInfo) - { - // Return the ToString value - return ((RODbInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbInfoList.cs deleted file mode 100644 index 7e667913..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbInfoList.cs +++ /dev/null @@ -1,198 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// RODbInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RODbInfoListConverter))] - public partial class RODbInfoList : 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 (RODbInfo tmp in this) - { - tmp.Changed += new RODbInfoEvent(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 (RODbInfo tmp in this) - { - tmp.Changed -= new RODbInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static RODbInfoList _RODbInfoList = null; - /// - /// Return a list of all projects. - /// - public static RODbInfoList Get() - { - try - { - if (_RODbInfoList != null) - return _RODbInfoList; - RODbInfoList tmp = DataPortal.Fetch(); - RODbInfo.AddList(tmp); - tmp.AddEvents(); - _RODbInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RODbInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static RODbInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on RODbInfoList.Get", ex); - // } - //} - private RODbInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RODbInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRODbs"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new RODbInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RODbInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("RODbInfoList.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 - RODbInfoListPropertyDescriptor pd = new RODbInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class RODbInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private RODbInfo Item { get { return (RODbInfo)_Item; } } - public RODbInfoListPropertyDescriptor(RODbInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class RODbInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RODbInfoList) - { - // Return department and department role separated by comma. - return ((RODbInfoList)value).Items.Count.ToString() + " RODbs"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbROFst.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbROFst.cs deleted file mode 100644 index ac88ec3d..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbROFst.cs +++ /dev/null @@ -1,405 +0,0 @@ -// ======================================================================== -// 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 - { - 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 - { - if (_MyROFst == null && _ROFstID != 0) _MyROFst = ROFst.Get(_ROFstID); - return _MyROFst; - } - } - private byte[] _ROFST; - public byte[] ROFST - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFST; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ROFST != value) - { - _ROFST = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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.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(ROFST, ""); - //AuthorizationRules.AllowWrite(ROFST, ""); - //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[] rofst) - { - return new RODbROFst(rofst); - } - 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[] rofst) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _RODbROFstExtension.DefaultDTS; - _UserID = _RODbROFstExtension.DefaultUserID; - _ROFST = rofst; - 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"); - _ROFST = (byte[])dr.GetValue("ROFST"); - _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, _ROFST, _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, _ROFST, _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/OldGenerated/RODbROFsts.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbROFsts.cs deleted file mode 100644 index 8bfa1074..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbROFsts.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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[] rofst) // One to Many - { - RODbROFst rOFst = RODbROFst.New(rofst); - 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; - } - #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/OldGenerated/RODbROImage.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbROImage.cs deleted file mode 100644 index dd0f9a67..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbROImage.cs +++ /dev/null @@ -1,433 +0,0 @@ -// ======================================================================== -// 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 - { - 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 - { - 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 - { - return _FileName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _Content; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_Content != value) - { - _Content = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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.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(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"); - _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, _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, _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/OldGenerated/RODbROImages.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbROImages.cs deleted file mode 100644 index 4b89aa9b..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbROImages.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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; - } - #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/OldGenerated/RODbRoUsage.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbRoUsage.cs deleted file mode 100644 index 6db52d37..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbRoUsage.cs +++ /dev/null @@ -1,570 +0,0 @@ -// ======================================================================== -// 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 - { - 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 - { - 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 - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private Content _MyContent; - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = Content.Get(_ContentID); - return _MyContent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyContent != value) - { - _MyContent = value; - PropertyHasChanged(); - } - } - } - private string _ROID = string.Empty; - public string ROID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _Content_Number; - } - } - private string _Content_Text = string.Empty; - public string Content_Text - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - 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 - { - return _Content_Type; - } - } - private int? _Content_FormatID; - public int? Content_FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_FormatID; - } - } - private string _Content_Config = string.Empty; - public string Content_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_Config; - } - } - private DateTime _Content_DTS = new DateTime(); - public DateTime Content_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content_DTS; - } - } - private string _Content_UserID = string.Empty; - public string Content_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - 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/OldGenerated/RODbRoUsages.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbRoUsages.cs deleted file mode 100644 index 4e5a4c3b..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RODbRoUsages.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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/OldGenerated/ROFst.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFst.cs deleted file mode 100644 index f3e4d7c5..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFst.cs +++ /dev/null @@ -1,1114 +0,0 @@ -// ======================================================================== -// 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 _RefreshROFstDocVersionROFsts = new List(); - private List _RefreshROFstROFstImages = new List(); - private void AddToRefreshList(List refreshROFsts, List refreshROFstDocVersionROFsts, List refreshROFstROFstImages) - { - if (IsDirty) - refreshROFsts.Add(this); - if (_ROFstDocVersionROFsts != null && _ROFstDocVersionROFsts.IsDirty) - { - foreach (ROFstDocVersionROFst tmp in _ROFstDocVersionROFsts) - { - if (tmp.IsDirty) refreshROFstDocVersionROFsts.Add(tmp); - } - } - if (_ROFstROFstImages != null && _ROFstROFstImages.IsDirty) - { - foreach (ROFstROFstImage tmp in _ROFstROFstImages) - { - if (tmp.IsDirty) refreshROFstROFstImages.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshROFsts = new List(); - _RefreshROFstDocVersionROFsts = new List(); - _RefreshROFstROFstImages = new List(); - AddToRefreshList(_RefreshROFsts, _RefreshROFstDocVersionROFsts, _RefreshROFstROFstImages); - } - private void ProcessRefreshList() - { - foreach (ROFst tmp in _RefreshROFsts) - { - ROFstInfo.Refresh(tmp); - if (tmp._MyRODb != null) RODbInfo.Refresh(tmp._MyRODb); - } - foreach (ROFstDocVersionROFst tmp in _RefreshROFstDocVersionROFsts) - { - DocVersionROFstInfo.Refresh(this, tmp); - } - foreach (ROFstROFstImage tmp in _RefreshROFstROFstImages) - { - ROFstImageInfo.Refresh(this, 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 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 - } - _CacheByPrimaryKey[tmp.ROFstID.ToString()].Add(tmp); // Add to Primary Key list - 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; - } - #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 - { - return _ROFstID; - } - } - private int _RODbID; - public int RODbID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb != null) _RODbID = _MyRODb.RODbID; - return _RODbID; - } - } - private RODb _MyRODb; - public RODb MyRODb - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb == null && _RODbID != 0) _MyRODb = RODb.Get(_RODbID); - return _MyRODb; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyRODb != value) - { - _MyRODb = value; - PropertyHasChanged(); - } - } - } - private byte[] _ROFST; - public byte[] ROFST - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFST; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_ROFST != value) - { - _ROFST = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _ROFstDocVersionROFstCount = 0; - /// - /// Count of ROFstDocVersionROFsts for this ROFst - /// - public int ROFstDocVersionROFstCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFstDocVersionROFstCount; - } - } - private ROFstDocVersionROFsts _ROFstDocVersionROFsts = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ROFstDocVersionROFstsConverter))] - public ROFstDocVersionROFsts ROFstDocVersionROFsts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - // TODO: See if this fixed after docversion changes. - // if (_ROFstDocVersionROFstCount > 0 && _ROFstDocVersionROFsts == null) - _ROFstDocVersionROFsts = ROFstDocVersionROFsts.GetByROFstID(ROFstID); - // TODO: This should be uncommented after docversion changes: - //else if (_ROFstDocVersionROFsts == null) - // _ROFstDocVersionROFsts = ROFstDocVersionROFsts.New(); - return _ROFstDocVersionROFsts; - } - } - private int _ROFstROFstImageCount = 0; - /// - /// Count of ROFstROFstImages for this ROFst - /// - public int ROFstROFstImageCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFstROFstImageCount; - } - } - private ROFstROFstImages _ROFstROFstImages = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ROFstROFstImagesConverter))] - public ROFstROFstImages ROFstROFstImages - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ROFstROFstImageCount > 0 && _ROFstROFstImages == null) - _ROFstROFstImages = ROFstROFstImages.GetByROFstID(ROFstID); - else if (_ROFstROFstImages == null) - _ROFstROFstImages = ROFstROFstImages.New(); - return _ROFstROFstImages; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_ROFstDocVersionROFsts == null ? false : _ROFstDocVersionROFsts.IsDirty) || (_ROFstROFstImages == null ? false : _ROFstROFstImages.IsDirty) || (_MyRODb == null ? false : _MyRODb.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_ROFstDocVersionROFsts == null ? true : _ROFstDocVersionROFsts.IsValid) && (_ROFstROFstImages == null ? true : _ROFstROFstImages.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 (_ROFstDocVersionROFsts != null && (hasBrokenRules = _ROFstDocVersionROFsts.HasBrokenRules) != null) return hasBrokenRules; - if (_ROFstROFstImages != null && (hasBrokenRules = _ROFstROFstImages.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, "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(ROFST, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(RODbID, ""); - //AuthorizationRules.AllowWrite(ROFST, ""); - //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 += _ROFstDocVersionROFstCount; - usedByCount += _ROFstROFstImageCount; - 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 - } - } - 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[] rofst) - { - ROFst tmp = ROFst.New(); - tmp.MyRODb = myRODb; - tmp.ROFST = rofst; - return tmp; - } - public static ROFst MakeROFst(RODb myRODb, byte[] rofst) - { - ROFst tmp = ROFst.New(myRODb, rofst); - 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[] rofst, DateTime dts, string userID) - { - ROFst tmp = ROFst.New(); - tmp.MyRODb = myRODb; - tmp.ROFST = rofst; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static ROFst MakeROFst(RODb myRODb, byte[] rofst, DateTime dts, string userID) - { - ROFst tmp = ROFst.New(myRODb, rofst, 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 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 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; - } - } - // 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"); - _ROFST = (byte[])dr.GetValue("ROFST"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _ROFstDocVersionROFstCount = dr.GetInt32("DocVersionROFstCount"); - _ROFstROFstImageCount = dr.GetInt32("ROFstImageCount"); - 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(); - _ROFstDocVersionROFsts = ROFstDocVersionROFsts.Get(dr); - // load child objects - dr.NextResult(); - _ROFstROFstImages = ROFstROFstImages.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); - } - } - [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("@ROFST", _ROFST); - 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 (_ROFstDocVersionROFsts != null) _ROFstDocVersionROFsts.Update(this); - if (_ROFstROFstImages != null) _ROFstROFstImages.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[] rofst, 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("@ROFST", rofst); - 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("@ROFST", _ROFST); - 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 (_ROFstDocVersionROFsts != null) _ROFstDocVersionROFsts.Update(this); - if (_ROFstROFstImages != null) _ROFstROFstImages.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, _ROFST, _DTS, _UserID); - else - _LastChanged = ROFst.Update(cn, ref _ROFstID, _MyRODb, _ROFST, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - if (_ROFstDocVersionROFsts != null) _ROFstDocVersionROFsts.Update(this); - if (_ROFstROFstImages != null) _ROFstROFstImages.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int rOFstID, RODb myRODb, byte[] rofst, 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("@ROFST", rofst); - 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/OldGenerated/ROFstDocVersionROFst.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstDocVersionROFst.cs deleted file mode 100644 index c1623abe..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstDocVersionROFst.cs +++ /dev/null @@ -1,477 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ROFstDocVersionROFst Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ROFstDocVersionROFstConverter))] - public partial class ROFstDocVersionROFst : 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 _VersionID; - [System.ComponentModel.DataObjectField(true, true)] - public int VersionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion != null) _VersionID = _MyDocVersion.VersionID; - return _VersionID; - } - } - private DocVersion _MyDocVersion; - [System.ComponentModel.DataObjectField(true, true)] - public DocVersion MyDocVersion - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyDocVersion == null && _VersionID != 0) _MyDocVersion = DocVersion.Get(_VersionID); - return _MyDocVersion; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - 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 - { - return _DocVersion_VersionType; - } - } - private string _DocVersion_Name = string.Empty; - public string DocVersion_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocVersion_Name; - } - } - private string _DocVersion_Title = string.Empty; - public string DocVersion_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocVersion_Title; - } - } - private int? _DocVersion_ItemID; - public int? DocVersion_ItemID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocVersion_ItemID; - } - } - private int? _DocVersion_FormatID; - public int? DocVersion_FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocVersion_FormatID; - } - } - private string _DocVersion_Config = string.Empty; - public string DocVersion_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocVersion_Config; - } - } - private DateTime _DocVersion_DTS = new DateTime(); - public DateTime DocVersion_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocVersion_DTS; - } - } - private string _DocVersion_UserID = string.Empty; - public string DocVersion_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DocVersion_UserID; - } - } - // TODO: Check ROFstDocVersionROFst.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 ROFstDocVersionROFst - protected override object GetIdValue() - { - return _VersionID; - } - // TODO: Replace base ROFstDocVersionROFst.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ROFstDocVersionROFst - //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, "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(VersionID, ""); - //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 ROFstDocVersionROFst New(DocVersion myDocVersion) - { - return new ROFstDocVersionROFst(myDocVersion); - } - internal static ROFstDocVersionROFst Get(SafeDataReader dr) - { - return new ROFstDocVersionROFst(dr); - } - public ROFstDocVersionROFst() - { - MarkAsChild(); - - _DTS = _ROFstDocVersionROFstExtension.DefaultDTS; - _UserID = _ROFstDocVersionROFstExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ROFstDocVersionROFst(DocVersion myDocVersion) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _ROFstDocVersionROFstExtension.DefaultDTS; - _UserID = _ROFstDocVersionROFstExtension.DefaultUserID; - _MyDocVersion = myDocVersion; - ValidationRules.CheckRules(); - } - internal ROFstDocVersionROFst(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstDocVersionROFst.FetchDR", GetHashCode()); - try - { - _VersionID = dr.GetInt32("VersionID"); - _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("ROFstDocVersionROFst.FetchDR", ex); - throw new DbCslaException("ROFstDocVersionROFst.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 = DocVersionROFst.Add(cn, _MyDocVersion, myROFst, _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 = DocVersionROFst.Update(cn, _MyDocVersion, myROFst, _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"]; - DocVersionROFst.Remove(cn, _VersionID, myROFst.ROFstID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ROFstDocVersionROFstExtension _ROFstDocVersionROFstExtension = new ROFstDocVersionROFstExtension(); - [Serializable()] - partial class ROFstDocVersionROFstExtension : 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 ROFstDocVersionROFstConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ROFstDocVersionROFst) - { - // Return the ToString value - return ((ROFstDocVersionROFst)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ROFstDocVersionROFstExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ROFstDocVersionROFst -// { -// partial class ROFstDocVersionROFstExtension : 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/OldGenerated/ROFstDocVersionROFsts.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstDocVersionROFsts.cs deleted file mode 100644 index ba178831..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstDocVersionROFsts.cs +++ /dev/null @@ -1,295 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ROFstDocVersionROFsts Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ROFstDocVersionROFstsConverter))] - public partial class ROFstDocVersionROFsts : 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; } - } - // Many To Many - public ROFstDocVersionROFst this[DocVersion myDocVersion] - { - get - { - foreach (ROFstDocVersionROFst docVersionROFst in this) - if (docVersionROFst.VersionID == myDocVersion.VersionID) - return docVersionROFst; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ROFstDocVersionROFst GetItem(DocVersion myDocVersion) - { - foreach (ROFstDocVersionROFst docVersionROFst in this) - if (docVersionROFst.VersionID == myDocVersion.VersionID) - return docVersionROFst; - return null; - } - public ROFstDocVersionROFst Add(DocVersion myDocVersion)// Many to Many with required fields - { - if (!Contains(myDocVersion)) - { - ROFstDocVersionROFst docVersionROFst = ROFstDocVersionROFst.New(myDocVersion); - this.Add(docVersionROFst); - return docVersionROFst; - } - else - throw new InvalidOperationException("docVersionROFst already exists"); - } - public void Remove(DocVersion myDocVersion) - { - foreach (ROFstDocVersionROFst docVersionROFst in this) - { - if (docVersionROFst.VersionID == myDocVersion.VersionID) - { - Remove(docVersionROFst); - break; - } - } - } - public bool Contains(DocVersion myDocVersion) - { - foreach (ROFstDocVersionROFst docVersionROFst in this) - if (docVersionROFst.VersionID == myDocVersion.VersionID) - return true; - return false; - } - public bool ContainsDeleted(DocVersion myDocVersion) - { - foreach (ROFstDocVersionROFst docVersionROFst in DeletedList) - if (docVersionROFst.VersionID == myDocVersion.VersionID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ROFstDocVersionROFst rOFstDocVersionROFst in this) - if ((hasBrokenRules = rOFstDocVersionROFst.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 ROFstDocVersionROFsts New() - { - return new ROFstDocVersionROFsts(); - } - internal static ROFstDocVersionROFsts Get(SafeDataReader dr) - { - return new ROFstDocVersionROFsts(dr); - } - public static ROFstDocVersionROFsts GetByROFstID(int rOFstID) - { - try - { - return DataPortal.Fetch(new ROFstIDCriteria(rOFstID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ROFstDocVersionROFsts.GetByROFstID", ex); - } - } - private ROFstDocVersionROFsts() - { - MarkAsChild(); - } - internal ROFstDocVersionROFsts(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(ROFstDocVersionROFst.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}] ROFstDocVersionROFsts.DataPortal_FetchROFstID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getDocVersionROFstsByROFstID"; - cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ROFstDocVersionROFst(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstDocVersionROFsts.DataPortal_FetchROFstID", ex); - throw new DbCslaException("ROFstDocVersionROFsts.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(ROFst rOFst) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ROFstDocVersionROFst 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 (ROFstDocVersionROFst 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 - ROFstDocVersionROFstsPropertyDescriptor pd = new ROFstDocVersionROFstsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ROFstDocVersionROFstsPropertyDescriptor : vlnListPropertyDescriptor - { - private ROFstDocVersionROFst Item { get { return (ROFstDocVersionROFst)_Item; } } - public ROFstDocVersionROFstsPropertyDescriptor(ROFstDocVersionROFsts collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ROFstDocVersionROFstsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ROFstDocVersionROFsts) - { - // Return department and department role separated by comma. - return ((ROFstDocVersionROFsts)value).Items.Count.ToString() + " DocVersionROFsts"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstImage.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstImage.cs deleted file mode 100644 index e112ed68..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstImage.cs +++ /dev/null @@ -1,968 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ROFstImage Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ROFstImageConverter))] - public partial class ROFstImage : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshROFstImages = new List(); - private void AddToRefreshList(List refreshROFstImages) - { - if (IsDirty) - refreshROFstImages.Add(this); - } - private void BuildRefreshList() - { - _RefreshROFstImages = new List(); - AddToRefreshList(_RefreshROFstImages); - } - private void ProcessRefreshList() - { - foreach (ROFstImage tmp in _RefreshROFstImages) - { - ROFstImageInfo.Refresh(tmp); - if (tmp._MyROFst != null) ROFstInfo.Refresh(tmp._MyROFst); - if (tmp._MyROImage != null) ROImageInfo.Refresh(tmp._MyROImage); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(ROFstImage rOFstImage) - { - if (!_CacheList.Contains(rOFstImage)) _CacheList.Add(rOFstImage); // In AddToCache - } - protected static void RemoveFromCache(ROFstImage rOFstImage) - { - while (_CacheList.Contains(rOFstImage)) _CacheList.Remove(rOFstImage); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (ROFstImage tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ROFstID.ToString() + "_" + tmp.ImageID.ToString())) - { - _CacheByPrimaryKey[tmp.ROFstID.ToString() + "_" + tmp.ImageID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ROFstID.ToString() + "_" + tmp.ImageID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (ROFstImage tmp in remove) - RemoveFromCache(tmp); - } - protected static ROFstImage GetCachedByPrimaryKey(int rOFstID, int imageID) - { - ConvertListToDictionary(); - string key = rOFstID.ToString() + "_" + 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; } - } - private int _ROFstID; - [System.ComponentModel.DataObjectField(true, true)] - public int ROFstID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - 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 - { - if (_MyROFst == null && _ROFstID != 0) _MyROFst = ROFst.Get(_ROFstID); - return _MyROFst; - } - } - private int _ImageID; - [System.ComponentModel.DataObjectField(true, true)] - public int ImageID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - 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 - { - if (_MyROImage == null && _ImageID != 0) _MyROImage = ROImage.Get(_ImageID); - return _MyROImage; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsDirty - { - get { return base.IsDirty || (_MyROFst == null ? false : _MyROFst.IsDirty) || (_MyROImage == null ? false : _MyROImage.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyROFst == null ? true : _MyROFst.IsValid) && (_MyROImage == null ? true : _MyROImage.IsValid); } - } - // TODO: Replace base ROFstImage.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ROFstImage - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check ROFstImage.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 ROFstImage - protected override object GetIdValue() - { - return (_ROFstID.ToString() + "." + _ImageID.ToString()).GetHashCode(); - } - #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; - 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, "UserID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _ROFstImageExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _ROFstImageExtension.AddInstanceValidationRules(ValidationRules); - // 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(ImageID, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _ROFstImageExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _ROFstImageExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _ROFstImageUnique = 0; - protected static int ROFstImageUnique - { get { return ++_ROFstImageUnique; } } - private int _MyROFstImageUnique = ROFstImageUnique; - public int MyROFstImageUnique - { get { return _MyROFstImageUnique; } } - protected ROFstImage() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(ROFstID.ToString() + "_" + ImageID.ToString())) - { - List listROFstImage = _CacheByPrimaryKey[ROFstID.ToString() + "_" + ImageID.ToString()]; // Get the list of items - while (listROFstImage.Contains(this)) listROFstImage.Remove(this); // Remove the item from the list - if (listROFstImage.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(ROFstID.ToString() + "_" + ImageID.ToString()); // remove the list - } - } - public static ROFstImage New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a ROFstImage"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ROFstImage.New", ex); - } - } - public static ROFstImage New(ROFst myROFst, ROImage myROImage) - { - ROFstImage tmp = ROFstImage.New(); - tmp._MyROFst = myROFst; - tmp._MyROImage = myROImage; - return tmp; - } - public static ROFstImage MakeROFstImage(ROFst myROFst, ROImage myROImage) - { - ROFstImage tmp = ROFstImage.New(myROFst, myROImage); - if (tmp.IsSavable) - { - ROFstImage 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 ROFstImage New(ROFst myROFst, ROImage myROImage, DateTime dts, string userID) - { - ROFstImage tmp = ROFstImage.New(); - tmp._MyROFst = myROFst; - tmp._MyROImage = myROImage; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static ROFstImage MakeROFstImage(ROFst myROFst, ROImage myROImage, DateTime dts, string userID) - { - ROFstImage tmp = ROFstImage.New(myROFst, myROImage, dts, userID); - if (tmp.IsSavable) - { - ROFstImage 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 ROFstImage Get(int rOFstID, int imageID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a ROFstImage"); - try - { - ROFstImage tmp = GetCachedByPrimaryKey(rOFstID, imageID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(rOFstID, imageID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ROFstImage - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ROFstImage.Get", ex); - } - } - public static ROFstImage Get(SafeDataReader dr) - { - if (dr.Read()) return new ROFstImage(dr); - return null; - } - internal ROFstImage(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int rOFstID, int imageID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a ROFstImage"); - try - { - DataPortal.Delete(new PKCriteria(rOFstID, imageID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ROFstImage.Delete", ex); - } - } - public override ROFstImage Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a ROFstImage"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a ROFstImage"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a ROFstImage"); - try - { - BuildRefreshList(); - ROFstImage rOFstImage = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(rOFstImage);//Refresh the item in AllList - ProcessRefreshList(); - return rOFstImage; - } - 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; } } - private int _ImageID; - public int ImageID - { get { return _ImageID; } } - public PKCriteria(int rOFstID, int imageID) - { - _ROFstID = rOFstID; - _ImageID = imageID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - - // Database Defaults - _DTS = _ROFstImageExtension.DefaultDTS; - _UserID = _ROFstImageExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImage.ReadData", GetHashCode()); - try - { - _ROFstID = dr.GetInt32("ROFstID"); - _ImageID = dr.GetInt32("ImageID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstImage.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ROFstImage.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImage.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 = "getROFstImage"; - cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); - 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("ROFstImage.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ROFstImage.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("ROFstImage.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ROFstImage.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImage.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyROFst != null) _MyROFst.Update(); - if (_MyROImage != null) _MyROImage.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addROFstImage"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ROFstID", ROFstID); - cm.Parameters.AddWithValue("@ImageID", ImageID); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - // 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(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImage.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstImage.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ROFstImage.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ROFst myROFst, ROImage myROImage, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImage.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addROFstImage"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ROFstID", myROFst.ROFstID); - cm.Parameters.AddWithValue("@ImageID", myROImage.ImageID); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UserID", userID); - // 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("ROFstImage.Add", ex); - throw new DbCslaException("ROFstImage.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}] ROFstImage.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("ROFstImage.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}] ROFstImage.SQLUpdate", GetHashCode()); - try - { - if (_MyROFst != null) _MyROFst.Update(); - if (_MyROImage != null) _MyROImage.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateROFstImage"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@ROFstID", ROFstID); - cm.Parameters.AddWithValue("@ImageID", ImageID); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstImage.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 = ROFstImage.Add(cn, _MyROFst, _MyROImage, _DTS, _UserID); - else - _LastChanged = ROFstImage.Update(cn, _MyROFst, _MyROImage, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ROFst myROFst, ROImage myROImage, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImage.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateROFstImage"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ROFstID", myROFst.ROFstID); - cm.Parameters.AddWithValue("@ImageID", myROImage.ImageID); - 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("ROFstImage.Update", ex); - throw new DbCslaException("ROFstImage.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_ROFstID, _ImageID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImage.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteROFstImage"; - cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); - cm.Parameters.AddWithValue("@ImageID", criteria.ImageID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstImage.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ROFstImage.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int rOFstID, int imageID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImage.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteROFstImage"; - // Input PK Fields - cm.Parameters.AddWithValue("@ROFstID", rOFstID); - cm.Parameters.AddWithValue("@ImageID", imageID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstImage.Remove", ex); - throw new DbCslaException("ROFstImage.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int rOFstID, int imageID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(rOFstID, imageID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ROFstImage.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _ROFstID; - private int _ImageID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int rOFstID, int imageID) - { - _ROFstID = rOFstID; - _ImageID = imageID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImage.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsROFstImage"; - cm.Parameters.AddWithValue("@ROFstID", _ROFstID); - cm.Parameters.AddWithValue("@ImageID", _ImageID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstImage.DataPortal_Execute", ex); - throw new DbCslaException("ROFstImage.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - ROFstImageExtension _ROFstImageExtension = new ROFstImageExtension(); - [Serializable()] - partial class ROFstImageExtension : 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 ROFstImageConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ROFstImage) - { - // Return the ToString value - return ((ROFstImage)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ROFstImageExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ROFstImage -// { -// partial class ROFstImageExtension : 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/OldGenerated/ROFstImageInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstImageInfo.cs deleted file mode 100644 index da5d8fd1..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstImageInfo.cs +++ /dev/null @@ -1,408 +0,0 @@ -// ======================================================================== -// 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 ROFstImageInfoEvent(object sender); - /// - /// ROFstImageInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ROFstImageInfoConverter))] - public partial class ROFstImageInfo : ReadOnlyBase, IDisposable - { - public event ROFstImageInfoEvent 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(ROFstImageInfo rOFstImageInfo) - { - if (!_CacheList.Contains(rOFstImageInfo)) _CacheList.Add(rOFstImageInfo); // In AddToCache - } - protected static void RemoveFromCache(ROFstImageInfo rOFstImageInfo) - { - while (_CacheList.Contains(rOFstImageInfo)) _CacheList.Remove(rOFstImageInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (ROFstImageInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ROFstID.ToString() + "_" + tmp.ImageID.ToString())) - { - _CacheByPrimaryKey[tmp.ROFstID.ToString() + "_" + tmp.ImageID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ROFstID.ToString() + "_" + tmp.ImageID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (ROFstImageInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(ROFstImageInfoList lst) - { - foreach (ROFstImageInfo item in lst) AddToCache(item); - } - protected static ROFstImageInfo GetCachedByPrimaryKey(int rOFstID, int imageID) - { - ConvertListToDictionary(); - string key = rOFstID.ToString() + "_" + 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 ROFstImage _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 - { - if (_MyROFst != null) _ROFstID = _MyROFst.ROFstID; - return _ROFstID; - } - } - private ROFstInfo _MyROFst; - [System.ComponentModel.DataObjectField(true, true)] - public ROFstInfo MyROFst - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyROFst == null && _ROFstID != 0) _MyROFst = ROFstInfo.Get(_ROFstID); - return _MyROFst; - } - } - private int _ImageID; - [System.ComponentModel.DataObjectField(true, true)] - public int ImageID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyROImage != null) _ImageID = _MyROImage.ImageID; - return _ImageID; - } - } - private ROImageInfo _MyROImage; - [System.ComponentModel.DataObjectField(true, true)] - public ROImageInfo MyROImage - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyROImage == null && _ImageID != 0) _MyROImage = ROImageInfo.Get(_ImageID); - return _MyROImage; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - // TODO: Replace base ROFstImageInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ROFstImageInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check ROFstImageInfo.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 ROFstImageInfo - protected override object GetIdValue() - { - return (_ROFstID.ToString() + "." + _ImageID.ToString()).GetHashCode(); - } - #endregion - #region Factory Methods - private static int _ROFstImageInfoUnique = 0; - private static int ROFstImageInfoUnique - { get { return ++_ROFstImageInfoUnique; } } - private int _MyROFstImageInfoUnique = ROFstImageInfoUnique; - public int MyROFstImageInfoUnique - { get { return _MyROFstImageInfoUnique; } } - protected ROFstImageInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(ROFstID.ToString() + "_" + ImageID.ToString())) return; - List listROFstImageInfo = _CacheByPrimaryKey[ROFstID.ToString() + "_" + ImageID.ToString()]; // Get the list of items - while (listROFstImageInfo.Contains(this)) listROFstImageInfo.Remove(this); // Remove the item from the list - if (listROFstImageInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(ROFstID.ToString() + "_" + ImageID.ToString()); // remove the list - } - public virtual ROFstImage Get() - { - return _Editable = ROFstImage.Get(_ROFstID, _ImageID); - } - public static void Refresh(ROFstImage tmp) - { - string key = tmp.ROFstID.ToString() + "_" + tmp.ImageID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ROFstImageInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ROFstImage tmp) - { - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _ROFstImageInfoExtension.Refresh(this); - if (_MyROFst != null) - { - _MyROFst.Dispose();// Dispose related value - _MyROFst = null;// Reset related value - } - if (_MyROImage != null) - { - _MyROImage.Dispose();// Dispose related value - _MyROImage = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(ROFst myROFst, ROFstROFstImage tmp) - { - string key = myROFst.ROFstID.ToString() + "_" + tmp.ImageID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ROFstImageInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ROFstROFstImage tmp) - { - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _ROFstImageInfoExtension.Refresh(this); - if (_MyROFst != null) - { - _MyROFst.Dispose();// Dispose related value - _MyROFst = null;// Reset related value - } - if (_MyROImage != null) - { - _MyROImage.Dispose();// Dispose related value - _MyROImage = null;// Reset related value - } - OnChange();// raise an event - } - public static void Refresh(ROImage myROImage, ROImageROFstImage tmp) - { - string key = tmp.ROFstID.ToString() + "_" + myROImage.ImageID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ROFstImageInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ROImageROFstImage tmp) - { - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _ROFstImageInfoExtension.Refresh(this); - if (_MyROFst != null) - { - _MyROFst.Dispose();// Dispose related value - _MyROFst = null;// Reset related value - } - if (_MyROImage != null) - { - _MyROImage.Dispose();// Dispose related value - _MyROImage = null;// Reset related value - } - OnChange();// raise an event - } - public static ROFstImageInfo Get(int rOFstID, int imageID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a ROFstImage"); - try - { - ROFstImageInfo tmp = GetCachedByPrimaryKey(rOFstID, imageID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(rOFstID, imageID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ROFstImageInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ROFstImageInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal ROFstImageInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImageInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstImageInfo.Constructor", ex); - throw new DbCslaException("ROFstImageInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _ROFstID; - public int ROFstID - { get { return _ROFstID; } } - private int _ImageID; - public int ImageID - { get { return _ImageID; } } - public PKCriteria(int rOFstID, int imageID) - { - _ROFstID = rOFstID; - _ImageID = imageID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImageInfo.ReadData", GetHashCode()); - try - { - _ROFstID = dr.GetInt32("ROFstID"); - _ImageID = dr.GetInt32("ImageID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstImageInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ROFstImageInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImageInfo.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 = "getROFstImage"; - cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); - 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("ROFstImageInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ROFstImageInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - ROFstImageInfoExtension _ROFstImageInfoExtension = new ROFstImageInfoExtension(); - [Serializable()] - partial class ROFstImageInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(ROFstImageInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class ROFstImageInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ROFstImageInfo) - { - // Return the ToString value - return ((ROFstImageInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstImageInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstImageInfoList.cs deleted file mode 100644 index 42da0b0a..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstImageInfoList.cs +++ /dev/null @@ -1,312 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ROFstImageInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ROFstImageInfoListConverter))] - public partial class ROFstImageInfoList : 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 (ROFstImageInfo tmp in this) - { - tmp.Changed += new ROFstImageInfoEvent(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 (ROFstImageInfo tmp in this) - { - tmp.Changed -= new ROFstImageInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static ROFstImageInfoList _ROFstImageInfoList = null; - /// - /// Return a list of all projects. - /// - public static ROFstImageInfoList Get() - { - try - { - if (_ROFstImageInfoList != null) - return _ROFstImageInfoList; - ROFstImageInfoList tmp = DataPortal.Fetch(); - ROFstImageInfo.AddList(tmp); - tmp.AddEvents(); - _ROFstImageInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ROFstImageInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static ROFstImageInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on ROFstImageInfoList.Get", ex); - // } - //} - public static ROFstImageInfoList GetByROFstID(int rOFstID) - { - try - { - ROFstImageInfoList tmp = DataPortal.Fetch(new ROFstIDCriteria(rOFstID)); - ROFstImageInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ROFstImageInfoList.GetByROFstID", ex); - } - } - public static ROFstImageInfoList GetByImageID(int imageID) - { - try - { - ROFstImageInfoList tmp = DataPortal.Fetch(new ImageIDCriteria(imageID)); - ROFstImageInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ROFstImageInfoList.GetByImageID", ex); - } - } - private ROFstImageInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImageInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getROFstImages"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ROFstImageInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstImageInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ROFstImageInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ROFstIDCriteria - { - public ROFstIDCriteria(int rOFstID) - { - _ROFstID = rOFstID; - } - private int _ROFstID; - public int ROFstID - { - get { return _ROFstID; } - set { _ROFstID = value; } - } - } - private void DataPortal_Fetch(ROFstIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstImageInfoList.DataPortal_FetchROFstID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getROFstImagesByROFstID"; - cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ROFstImageInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstImageInfoList.DataPortal_FetchROFstID", ex); - throw new DbCslaException("ROFstImageInfoList.DataPortal_Fetch", ex); - } - 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}] ROFstImageInfoList.DataPortal_FetchImageID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getROFstImagesByImageID"; - cm.Parameters.AddWithValue("@ImageID", criteria.ImageID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new ROFstImageInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstImageInfoList.DataPortal_FetchImageID", ex); - throw new DbCslaException("ROFstImageInfoList.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 - ROFstImageInfoListPropertyDescriptor pd = new ROFstImageInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ROFstImageInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private ROFstImageInfo Item { get { return (ROFstImageInfo)_Item; } } - public ROFstImageInfoListPropertyDescriptor(ROFstImageInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ROFstImageInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ROFstImageInfoList) - { - // Return department and department role separated by comma. - return ((ROFstImageInfoList)value).Items.Count.ToString() + " ROFstImages"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstInfo.cs deleted file mode 100644 index c730a80a..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstInfo.cs +++ /dev/null @@ -1,441 +0,0 @@ -// ======================================================================== -// 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 - { - return _ROFstID; - } - } - private int _RODbID; - public int RODbID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb != null) _RODbID = _MyRODb.RODbID; - return _RODbID; - } - } - private RODbInfo _MyRODb; - public RODbInfo MyRODb - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb == null && _RODbID != 0) _MyRODb = RODbInfo.Get(_RODbID); - return _MyRODb; - } - } - private byte[] _ROFST; - public byte[] ROFST - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFST; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _ROFstDocVersionROFstCount = 0; - /// - /// Count of ROFstDocVersionROFsts for this ROFst - /// - public int ROFstDocVersionROFstCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFstDocVersionROFstCount; - } - } - private DocVersionROFstInfoList _ROFstDocVersionROFsts = null; - [TypeConverter(typeof(DocVersionROFstInfoListConverter))] - public DocVersionROFstInfoList ROFstDocVersionROFsts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ROFstDocVersionROFstCount < 0 || (_ROFstDocVersionROFstCount > 0 && _ROFstDocVersionROFsts == null)) - _ROFstDocVersionROFsts = DocVersionROFstInfoList.GetByROFstID(_ROFstID); - if (_ROFstDocVersionROFstCount < 0) - _ROFstDocVersionROFstCount = _ROFstDocVersionROFsts.Count; - return _ROFstDocVersionROFsts; - } - } - public void RefreshROFstDocVersionROFsts() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ROFstID.ToString())) - foreach (ROFstInfo tmp in _CacheByPrimaryKey[_ROFstID.ToString()]) - tmp._ROFstDocVersionROFstCount = -1; // This will cause the data to be requeried - } - private int _ROFstROFstImageCount = 0; - /// - /// Count of ROFstROFstImages for this ROFst - /// - public int ROFstROFstImageCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFstROFstImageCount; - } - } - private ROFstImageInfoList _ROFstROFstImages = null; - [TypeConverter(typeof(ROFstImageInfoListConverter))] - public ROFstImageInfoList ROFstROFstImages - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ROFstROFstImageCount < 0 || (_ROFstROFstImageCount > 0 && _ROFstROFstImages == null)) - _ROFstROFstImages = ROFstImageInfoList.GetByROFstID(_ROFstID); - if (_ROFstROFstImageCount < 0) - _ROFstROFstImageCount = _ROFstROFstImages.Count; - return _ROFstROFstImages; - } - } - public void RefreshROFstROFstImages() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ROFstID.ToString())) - foreach (ROFstInfo tmp in _CacheByPrimaryKey[_ROFstID.ToString()]) - tmp._ROFstROFstImageCount = -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 - _ROFST = tmp.ROFST; - _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) - { - _ROFST = tmp.ROFST; - _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"); - _ROFST = (byte[])dr.GetValue("ROFST"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _ROFstDocVersionROFstCount = dr.GetInt32("DocVersionROFstCount"); - _ROFstROFstImageCount = dr.GetInt32("ROFstImageCount"); - } - 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/OldGenerated/ROFstInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstInfoList.cs deleted file mode 100644 index 2585534d..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstInfoList.cs +++ /dev/null @@ -1,255 +0,0 @@ -// ======================================================================== -// 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 projects. - /// - 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); - } - } - // 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/OldGenerated/ROFstROFstImage.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstROFstImage.cs deleted file mode 100644 index 0ccf4dc8..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstROFstImage.cs +++ /dev/null @@ -1,434 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ROFstROFstImage Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ROFstROFstImageConverter))] - public partial class ROFstROFstImage : 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 - { - 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 - { - if (_MyROImage == null && _ImageID != 0) _MyROImage = ROImage.Get(_ImageID); - return _MyROImage; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _ROImage_RODbID; - } - } - private string _ROImage_FileName = string.Empty; - public string ROImage_FileName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROImage_FileName; - } - } - private byte[] _ROImage_Content; - public byte[] ROImage_Content - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROImage_Content; - } - } - private DateTime _ROImage_DTS = new DateTime(); - public DateTime ROImage_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROImage_DTS; - } - } - private string _ROImage_UserID = string.Empty; - public string ROImage_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROImage_UserID; - } - } - // TODO: Check ROFstROFstImage.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 ROFstROFstImage - protected override object GetIdValue() - { - return _ImageID; - } - // TODO: Replace base ROFstROFstImage.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ROFstROFstImage - //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, "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(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 ROFstROFstImage New(ROImage myROImage) - { - return new ROFstROFstImage(myROImage); - } - internal static ROFstROFstImage Get(SafeDataReader dr) - { - return new ROFstROFstImage(dr); - } - public ROFstROFstImage() - { - MarkAsChild(); - - _DTS = _ROFstROFstImageExtension.DefaultDTS; - _UserID = _ROFstROFstImageExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ROFstROFstImage(ROImage myROImage) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _ROFstROFstImageExtension.DefaultDTS; - _UserID = _ROFstROFstImageExtension.DefaultUserID; - _MyROImage = myROImage; - ValidationRules.CheckRules(); - } - internal ROFstROFstImage(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROFstROFstImage.FetchDR", GetHashCode()); - try - { - _ImageID = dr.GetInt32("ImageID"); - _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_DTS = dr.GetDateTime("ROImage_DTS"); - _ROImage_UserID = dr.GetString("ROImage_UserID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstROFstImage.FetchDR", ex); - throw new DbCslaException("ROFstROFstImage.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 = ROFstImage.Add(cn, myROFst, _MyROImage, _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 = ROFstImage.Update(cn, myROFst, _MyROImage, _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"]; - ROFstImage.Remove(cn, myROFst.ROFstID, _ImageID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ROFstROFstImageExtension _ROFstROFstImageExtension = new ROFstROFstImageExtension(); - [Serializable()] - partial class ROFstROFstImageExtension : 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 ROFstROFstImageConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ROFstROFstImage) - { - // Return the ToString value - return ((ROFstROFstImage)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ROFstROFstImageExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ROFstROFstImage -// { -// partial class ROFstROFstImageExtension : 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/OldGenerated/ROFstROFstImages.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstROFstImages.cs deleted file mode 100644 index 97b81357..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROFstROFstImages.cs +++ /dev/null @@ -1,295 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ROFstROFstImages Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ROFstROFstImagesConverter))] - public partial class ROFstROFstImages : 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; } - } - // Many To Many - public ROFstROFstImage this[ROImage myROImage] - { - get - { - foreach (ROFstROFstImage rOFstImage in this) - if (rOFstImage.ImageID == myROImage.ImageID) - return rOFstImage; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ROFstROFstImage GetItem(ROImage myROImage) - { - foreach (ROFstROFstImage rOFstImage in this) - if (rOFstImage.ImageID == myROImage.ImageID) - return rOFstImage; - return null; - } - public ROFstROFstImage Add(ROImage myROImage)// Many to Many with required fields - { - if (!Contains(myROImage)) - { - ROFstROFstImage rOFstImage = ROFstROFstImage.New(myROImage); - this.Add(rOFstImage); - return rOFstImage; - } - else - throw new InvalidOperationException("rOFstImage already exists"); - } - public void Remove(ROImage myROImage) - { - foreach (ROFstROFstImage rOFstImage in this) - { - if (rOFstImage.ImageID == myROImage.ImageID) - { - Remove(rOFstImage); - break; - } - } - } - public bool Contains(ROImage myROImage) - { - foreach (ROFstROFstImage rOFstImage in this) - if (rOFstImage.ImageID == myROImage.ImageID) - return true; - return false; - } - public bool ContainsDeleted(ROImage myROImage) - { - foreach (ROFstROFstImage rOFstImage in DeletedList) - if (rOFstImage.ImageID == myROImage.ImageID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ROFstROFstImage rOFstROFstImage in this) - if ((hasBrokenRules = rOFstROFstImage.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 ROFstROFstImages New() - { - return new ROFstROFstImages(); - } - internal static ROFstROFstImages Get(SafeDataReader dr) - { - return new ROFstROFstImages(dr); - } - public static ROFstROFstImages GetByROFstID(int rOFstID) - { - try - { - return DataPortal.Fetch(new ROFstIDCriteria(rOFstID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ROFstROFstImages.GetByROFstID", ex); - } - } - private ROFstROFstImages() - { - MarkAsChild(); - } - internal ROFstROFstImages(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(ROFstROFstImage.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}] ROFstROFstImages.DataPortal_FetchROFstID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getROFstImagesByROFstID"; - cm.Parameters.AddWithValue("@ROFstID", criteria.ROFstID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ROFstROFstImage(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROFstROFstImages.DataPortal_FetchROFstID", ex); - throw new DbCslaException("ROFstROFstImages.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(ROFst rOFst) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ROFstROFstImage 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 (ROFstROFstImage 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 - ROFstROFstImagesPropertyDescriptor pd = new ROFstROFstImagesPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ROFstROFstImagesPropertyDescriptor : vlnListPropertyDescriptor - { - private ROFstROFstImage Item { get { return (ROFstROFstImage)_Item; } } - public ROFstROFstImagesPropertyDescriptor(ROFstROFstImages collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ROFstROFstImagesConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ROFstROFstImages) - { - // Return department and department role separated by comma. - return ((ROFstROFstImages)value).Items.Count.ToString() + " ROFstImages"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROImage.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROImage.cs deleted file mode 100644 index 8be16bc0..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROImage.cs +++ /dev/null @@ -1,1094 +0,0 @@ -// ======================================================================== -// 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 _RefreshROImageROFstImages = new List(); - private void AddToRefreshList(List refreshROImages, List refreshROImageROFstImages) - { - if (IsDirty) - refreshROImages.Add(this); - if (_ROImageROFstImages != null && _ROImageROFstImages.IsDirty) - { - foreach (ROImageROFstImage tmp in _ROImageROFstImages) - { - if (tmp.IsDirty) refreshROImageROFstImages.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshROImages = new List(); - _RefreshROImageROFstImages = new List(); - AddToRefreshList(_RefreshROImages, _RefreshROImageROFstImages); - } - private void ProcessRefreshList() - { - foreach (ROImage tmp in _RefreshROImages) - { - ROImageInfo.Refresh(tmp); - if (tmp._MyRODb != null) RODbInfo.Refresh(tmp._MyRODb); - } - foreach (ROImageROFstImage tmp in _RefreshROImageROFstImages) - { - ROFstImageInfo.Refresh(this, 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 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 - } - _CacheByPrimaryKey[tmp.ImageID.ToString()].Add(tmp); // Add to Primary Key list - 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; - } - #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 - { - return _ImageID; - } - } - private int _RODbID; - public int RODbID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb != null) _RODbID = _MyRODb.RODbID; - return _RODbID; - } - } - private RODb _MyRODb; - public RODb MyRODb - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb == null && _RODbID != 0) _MyRODb = RODb.Get(_RODbID); - return _MyRODb; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyRODb != value) - { - _MyRODb = value; - PropertyHasChanged(); - } - } - } - private string _FileName = string.Empty; - public string FileName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FileName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _Content; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_Content != value) - { - _Content = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _ROImageROFstImageCount = 0; - /// - /// Count of ROImageROFstImages for this ROImage - /// - public int ROImageROFstImageCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROImageROFstImageCount; - } - } - private ROImageROFstImages _ROImageROFstImages = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ROImageROFstImagesConverter))] - public ROImageROFstImages ROImageROFstImages - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ROImageROFstImageCount > 0 && _ROImageROFstImages == null) - _ROImageROFstImages = ROImageROFstImages.GetByImageID(ImageID); - else if (_ROImageROFstImages == null) - _ROImageROFstImages = ROImageROFstImages.New(); - return _ROImageROFstImages; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_ROImageROFstImages == null ? false : _ROImageROFstImages.IsDirty) || (_MyRODb == null ? false : _MyRODb.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_ROImageROFstImages == null ? true : _ROImageROFstImages.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 (_ROImageROFstImages != null && (hasBrokenRules = _ROImageROFstImages.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.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(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(RODbID, ""); - //AuthorizationRules.AllowWrite(FileName, ""); - //AuthorizationRules.AllowWrite(Content, ""); - //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 += _ROImageROFstImageCount; - 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 - } - } - 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 MakeROImage(RODb myRODb, string fileName, byte[] content) - { - ROImage tmp = ROImage.New(myRODb, fileName, content); - 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, DateTime dts, string userID) - { - ROImage tmp = ROImage.New(); - tmp.MyRODb = myRODb; - tmp.FileName = fileName; - tmp.Content = content; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static ROImage MakeROImage(RODb myRODb, string fileName, byte[] content, DateTime dts, string userID) - { - ROImage tmp = ROImage.New(myRODb, fileName, content, 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 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 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; - } - } - // 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"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _ROImageROFstImageCount = dr.GetInt32("ROFstImageCount"); - 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(); - _ROImageROFstImages = ROImageROFstImages.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); - } - } - [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); - 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 (_ROImageROFstImages != null) _ROImageROFstImages.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, 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); - 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); - 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 (_ROImageROFstImages != null) _ROImageROFstImages.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, _DTS, _UserID); - else - _LastChanged = ROImage.Update(cn, ref _ImageID, _MyRODb, _FileName, _Content, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - if (_ROImageROFstImages != null) _ROImageROFstImages.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int imageID, RODb myRODb, string fileName, byte[] content, 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); - 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/OldGenerated/ROImageInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROImageInfo.cs deleted file mode 100644 index dcee318b..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROImageInfo.cs +++ /dev/null @@ -1,419 +0,0 @@ -// ======================================================================== -// 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 - { - return _ImageID; - } - } - private int _RODbID; - public int RODbID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb != null) _RODbID = _MyRODb.RODbID; - return _RODbID; - } - } - private RODbInfo _MyRODb; - public RODbInfo MyRODb - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - 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 - { - return _FileName; - } - } - private byte[] _Content; - public byte[] Content - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Content; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _ROImageROFstImageCount = 0; - /// - /// Count of ROImageROFstImages for this ROImage - /// - public int ROImageROFstImageCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROImageROFstImageCount; - } - } - private ROFstImageInfoList _ROImageROFstImages = null; - [TypeConverter(typeof(ROFstImageInfoListConverter))] - public ROFstImageInfoList ROImageROFstImages - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_ROImageROFstImageCount < 0 || (_ROImageROFstImageCount > 0 && _ROImageROFstImages == null)) - _ROImageROFstImages = ROFstImageInfoList.GetByImageID(_ImageID); - if (_ROImageROFstImageCount < 0) - _ROImageROFstImageCount = _ROImageROFstImages.Count; - return _ROImageROFstImages; - } - } - public void RefreshROImageROFstImages() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_ImageID.ToString())) - foreach (ROImageInfo tmp in _CacheByPrimaryKey[_ImageID.ToString()]) - tmp._ROImageROFstImageCount = -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; - _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; - _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"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _ROImageROFstImageCount = dr.GetInt32("ROFstImageCount"); - } - 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/OldGenerated/ROImageInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROImageInfoList.cs deleted file mode 100644 index dc4cdceb..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROImageInfoList.cs +++ /dev/null @@ -1,259 +0,0 @@ -// ======================================================================== -// 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 projects. - /// - 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); - } - } - 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/OldGenerated/ROImageROFstImage.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROImageROFstImage.cs deleted file mode 100644 index f8e5d5a9..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROImageROFstImage.cs +++ /dev/null @@ -1,424 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ROImageROFstImage Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ROImageROFstImageConverter))] - public partial class ROImageROFstImage : 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 - { - 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 - { - if (_MyROFst == null && _ROFstID != 0) _MyROFst = ROFst.Get(_ROFstID); - return _MyROFst; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _ROFst_RODbID; - } - } - private byte[] _ROFst_ROFST; - public byte[] ROFst_ROFST - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFst_ROFST; - } - } - private DateTime _ROFst_DTS = new DateTime(); - public DateTime ROFst_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFst_DTS; - } - } - private string _ROFst_UserID = string.Empty; - public string ROFst_UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROFst_UserID; - } - } - // TODO: Check ROImageROFstImage.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 ROImageROFstImage - protected override object GetIdValue() - { - return _ROFstID; - } - // TODO: Replace base ROImageROFstImage.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ROImageROFstImage - //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, "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(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 ROImageROFstImage New(ROFst myROFst) - { - return new ROImageROFstImage(myROFst); - } - internal static ROImageROFstImage Get(SafeDataReader dr) - { - return new ROImageROFstImage(dr); - } - public ROImageROFstImage() - { - MarkAsChild(); - - _DTS = _ROImageROFstImageExtension.DefaultDTS; - _UserID = _ROImageROFstImageExtension.DefaultUserID; - ValidationRules.CheckRules(); - } - private ROImageROFstImage(ROFst myROFst) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _DTS = _ROImageROFstImageExtension.DefaultDTS; - _UserID = _ROImageROFstImageExtension.DefaultUserID; - _MyROFst = myROFst; - ValidationRules.CheckRules(); - } - internal ROImageROFstImage(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ROImageROFstImage.FetchDR", GetHashCode()); - try - { - _ROFstID = dr.GetInt32("ROFstID"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _ROFst_RODbID = dr.GetInt32("ROFst_RODbID"); - _ROFst_ROFST = (byte[])dr.GetValue("ROFst_ROFST"); - _ROFst_DTS = dr.GetDateTime("ROFst_DTS"); - _ROFst_UserID = dr.GetString("ROFst_UserID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImageROFstImage.FetchDR", ex); - throw new DbCslaException("ROImageROFstImage.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 = ROFstImage.Add(cn, _MyROFst, myROImage, _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 = ROFstImage.Update(cn, _MyROFst, myROImage, _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"]; - ROFstImage.Remove(cn, _ROFstID, myROImage.ImageID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - ROImageROFstImageExtension _ROImageROFstImageExtension = new ROImageROFstImageExtension(); - [Serializable()] - partial class ROImageROFstImageExtension : 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 ROImageROFstImageConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ROImageROFstImage) - { - // Return the ToString value - return ((ROImageROFstImage)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ROImageROFstImageExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ROImageROFstImage -// { -// partial class ROImageROFstImageExtension : 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/OldGenerated/ROImageROFstImages.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROImageROFstImages.cs deleted file mode 100644 index da228194..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ROImageROFstImages.cs +++ /dev/null @@ -1,295 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ROImageROFstImages Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ROImageROFstImagesConverter))] - public partial class ROImageROFstImages : 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; } - } - // Many To Many - public ROImageROFstImage this[ROFst myROFst] - { - get - { - foreach (ROImageROFstImage rOFstImage in this) - if (rOFstImage.ROFstID == myROFst.ROFstID) - return rOFstImage; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public ROImageROFstImage GetItem(ROFst myROFst) - { - foreach (ROImageROFstImage rOFstImage in this) - if (rOFstImage.ROFstID == myROFst.ROFstID) - return rOFstImage; - return null; - } - public ROImageROFstImage Add(ROFst myROFst)// Many to Many with required fields - { - if (!Contains(myROFst)) - { - ROImageROFstImage rOFstImage = ROImageROFstImage.New(myROFst); - this.Add(rOFstImage); - return rOFstImage; - } - else - throw new InvalidOperationException("rOFstImage already exists"); - } - public void Remove(ROFst myROFst) - { - foreach (ROImageROFstImage rOFstImage in this) - { - if (rOFstImage.ROFstID == myROFst.ROFstID) - { - Remove(rOFstImage); - break; - } - } - } - public bool Contains(ROFst myROFst) - { - foreach (ROImageROFstImage rOFstImage in this) - if (rOFstImage.ROFstID == myROFst.ROFstID) - return true; - return false; - } - public bool ContainsDeleted(ROFst myROFst) - { - foreach (ROImageROFstImage rOFstImage in DeletedList) - if (rOFstImage.ROFstID == myROFst.ROFstID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (ROImageROFstImage rOImageROFstImage in this) - if ((hasBrokenRules = rOImageROFstImage.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 ROImageROFstImages New() - { - return new ROImageROFstImages(); - } - internal static ROImageROFstImages Get(SafeDataReader dr) - { - return new ROImageROFstImages(dr); - } - public static ROImageROFstImages GetByImageID(int imageID) - { - try - { - return DataPortal.Fetch(new ImageIDCriteria(imageID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ROImageROFstImages.GetByImageID", ex); - } - } - private ROImageROFstImages() - { - MarkAsChild(); - } - internal ROImageROFstImages(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(ROImageROFstImage.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}] ROImageROFstImages.DataPortal_FetchImageID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getROFstImagesByImageID"; - cm.Parameters.AddWithValue("@ImageID", criteria.ImageID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new ROImageROFstImage(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ROImageROFstImages.DataPortal_FetchImageID", ex); - throw new DbCslaException("ROImageROFstImages.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(ROImage rOImage) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (ROImageROFstImage 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 (ROImageROFstImage 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 - ROImageROFstImagesPropertyDescriptor pd = new ROImageROFstImagesPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class ROImageROFstImagesPropertyDescriptor : vlnListPropertyDescriptor - { - private ROImageROFstImage Item { get { return (ROImageROFstImage)_Item; } } - public ROImageROFstImagesPropertyDescriptor(ROImageROFstImages collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class ROImageROFstImagesConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ROImageROFstImages) - { - // Return department and department role separated by comma. - return ((ROImageROFstImages)value).Items.Count.ToString() + " ROFstImages"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoUsage.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoUsage.cs deleted file mode 100644 index 9cfda9a0..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoUsage.cs +++ /dev/null @@ -1,1103 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// RoUsage Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RoUsageConverter))] - public partial class RoUsage : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshRoUsages = new List(); - private void AddToRefreshList(List refreshRoUsages) - { - if (IsDirty) - refreshRoUsages.Add(this); - } - private void BuildRefreshList() - { - _RefreshRoUsages = new List(); - AddToRefreshList(_RefreshRoUsages); - } - private void ProcessRefreshList() - { - foreach (RoUsage tmp in _RefreshRoUsages) - { - RoUsageInfo.Refresh(tmp); - if (tmp._MyContent != null) ContentInfo.Refresh(tmp._MyContent); - if (tmp._MyRODb != null) RODbInfo.Refresh(tmp._MyRODb); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(RoUsage roUsage) - { - if (!_CacheList.Contains(roUsage)) _CacheList.Add(roUsage); // In AddToCache - } - protected static void RemoveFromCache(RoUsage roUsage) - { - while (_CacheList.Contains(roUsage)) _CacheList.Remove(roUsage); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (RoUsage tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ROUsageID.ToString())) - { - _CacheByPrimaryKey[tmp.ROUsageID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ROUsageID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (RoUsage tmp in remove) - RemoveFromCache(tmp); - } - protected static RoUsage GetCachedByPrimaryKey(int rOUsageID) - { - ConvertListToDictionary(); - string key = rOUsageID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextROUsageID = -1; - public static int NextROUsageID - { - get { return _nextROUsageID--; } - } - private int _ROUsageID; - [System.ComponentModel.DataObjectField(true, true)] - public int ROUsageID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROUsageID; - } - } - private int _ContentID; - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private Content _MyContent; - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = Content.Get(_ContentID); - return _MyContent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyContent != value) - { - _MyContent = value; - PropertyHasChanged(); - } - } - } - private string _ROID = string.Empty; - public string ROID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _RODbID; - public int RODbID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb != null) _RODbID = _MyRODb.RODbID; - return _RODbID; - } - } - private RODb _MyRODb; - public RODb MyRODb - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb == null && _RODbID != 0) _MyRODb = RODb.Get(_RODbID); - return _MyRODb; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyRODb != value) - { - _MyRODb = value; - PropertyHasChanged(); - } - } - } - public override bool 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) && (_MyRODb == null ? true : _MyRODb.IsValid); } - } - // TODO: Replace base RoUsage.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RoUsage - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check RoUsage.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 RoUsage - protected override object GetIdValue() - { - return _ROUsageID; - } - #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 (_MyContent != null && (hasBrokenRules = _MyContent.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(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)); - ValidationRules.AddRule(MyRODbRequired, "MyRODb"); - //ValidationRules.AddDependantProperty("x", "y"); - _RoUsageExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _RoUsageExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool MyContentRequired(RoUsage target, Csla.Validation.RuleArgs e) - { - if (target._ContentID == 0 && target._MyContent == null) // Required field missing - { - e.Description = "Required"; - return false; - } - 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) - //{ - // 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.AllowRead(ROID, ""); - //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() - { - //TODO: Who can read/write which fields - _RoUsageExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _RoUsageUnique = 0; - protected static int RoUsageUnique - { get { return ++_RoUsageUnique; } } - private int _MyRoUsageUnique = RoUsageUnique; - public int MyRoUsageUnique - { get { return _MyRoUsageUnique; } } - protected RoUsage() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(ROUsageID.ToString())) - { - List listRoUsage = _CacheByPrimaryKey[ROUsageID.ToString()]; // Get the list of items - while (listRoUsage.Contains(this)) listRoUsage.Remove(this); // Remove the item from the list - if (listRoUsage.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(ROUsageID.ToString()); // remove the list - } - } - public static RoUsage New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a RoUsage"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on RoUsage.New", ex); - } - } - 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, RODb myRODb) - { - RoUsage tmp = RoUsage.New(); - tmp.MyContent = myContent; - tmp.ROID = roid; - 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, RODb myRODb) - { - RoUsage tmp = RoUsage.New(myContent, roid, config, dts, userID, myRODb); - if (tmp.IsSavable) - { - RoUsage 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 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, RODb myRODb) - { - RoUsage tmp = RoUsage.New(myContent, roid, config, myRODb); - if (tmp.IsSavable) - { - RoUsage 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 RoUsage Get(int rOUsageID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a RoUsage"); - try - { - RoUsage tmp = GetCachedByPrimaryKey(rOUsageID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(rOUsageID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up RoUsage - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RoUsage.Get", ex); - } - } - public static RoUsage Get(SafeDataReader dr) - { - if (dr.Read()) return new RoUsage(dr); - return null; - } - internal RoUsage(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int rOUsageID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a RoUsage"); - try - { - DataPortal.Delete(new PKCriteria(rOUsageID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on RoUsage.Delete", ex); - } - } - public override RoUsage Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a RoUsage"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a RoUsage"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a RoUsage"); - try - { - BuildRefreshList(); - RoUsage roUsage = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(roUsage);//Refresh the item in AllList - ProcessRefreshList(); - return roUsage; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _ROUsageID; - public int ROUsageID - { get { return _ROUsageID; } } - public PKCriteria(int rOUsageID) - { - _ROUsageID = rOUsageID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _ROUsageID = NextROUsageID; - // Database Defaults - _ContentID = _RoUsageExtension.DefaultContentID; - _DTS = _RoUsageExtension.DefaultDTS; - _UserID = _RoUsageExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsage.ReadData", 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); - _RODbID = dr.GetInt32("RODbID"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoUsage.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RoUsage.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsage.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 = "getRoUsage"; - cm.Parameters.AddWithValue("@ROUsageID", criteria.ROUsageID); - 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("RoUsage.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RoUsage.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("RoUsage.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RoUsage.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsage.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyContent != null) _MyContent.Update(); - if (_MyRODb != null) _MyRODb.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addRoUsage"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", ContentID); - cm.Parameters.AddWithValue("@ROID", _ROID); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@RODbID", RODbID); - // Output Calculated Columns - SqlParameter param_ROUsageID = new SqlParameter("@newROUsageID", SqlDbType.Int); - param_ROUsageID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_ROUsageID); - 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 - _ROUsageID = (int)cm.Parameters["@newROUsageID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsage.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoUsage.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RoUsage.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - 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 - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addRoUsage"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - cm.Parameters.AddWithValue("@ROID", roid); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UserID", userID); - cm.Parameters.AddWithValue("@RODbID", myRODb.RODbID); - // Output Calculated Columns - SqlParameter param_ROUsageID = new SqlParameter("@newROUsageID", SqlDbType.Int); - param_ROUsageID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_ROUsageID); - 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 - rOUsageID = (int)cm.Parameters["@newROUsageID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoUsage.Add", ex); - throw new DbCslaException("RoUsage.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}] RoUsage.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("RoUsage.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}] RoUsage.SQLUpdate", GetHashCode()); - try - { - if (_MyContent != null) _MyContent.Update(); - if (_MyRODb != null) _MyRODb.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateRoUsage"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@ROUsageID", _ROUsageID); - cm.Parameters.AddWithValue("@ContentID", ContentID); - cm.Parameters.AddWithValue("@ROID", _ROID); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - cm.Parameters.AddWithValue("@RODbID", RODbID); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoUsage.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 = 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, _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, RODb myRODb) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsage.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateRoUsage"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ROUsageID", rOUsageID); - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - cm.Parameters.AddWithValue("@ROID", roid); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UserID", userID); - cm.Parameters.AddWithValue("@LastChanged", lastChanged); - cm.Parameters.AddWithValue("@RODbID", myRODb.RODbID); - // 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("RoUsage.Update", ex); - throw new DbCslaException("RoUsage.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_ROUsageID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsage.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRoUsage"; - cm.Parameters.AddWithValue("@ROUsageID", criteria.ROUsageID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoUsage.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RoUsage.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int rOUsageID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsage.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRoUsage"; - // Input PK Fields - cm.Parameters.AddWithValue("@ROUsageID", rOUsageID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoUsage.Remove", ex); - throw new DbCslaException("RoUsage.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int rOUsageID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(rOUsageID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RoUsage.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _ROUsageID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int rOUsageID) - { - _ROUsageID = rOUsageID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsage.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsRoUsage"; - cm.Parameters.AddWithValue("@ROUsageID", _ROUsageID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoUsage.DataPortal_Execute", ex); - throw new DbCslaException("RoUsage.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - RoUsageExtension _RoUsageExtension = new RoUsageExtension(); - [Serializable()] - partial class RoUsageExtension : 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 RoUsageConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RoUsage) - { - // Return the ToString value - return ((RoUsage)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create RoUsageExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class RoUsage -// { -// partial class RoUsageExtension : 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/OldGenerated/RoUsageInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoUsageInfo.cs deleted file mode 100644 index 6cae7319..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoUsageInfo.cs +++ /dev/null @@ -1,464 +0,0 @@ -// ======================================================================== -// 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 RoUsageInfoEvent(object sender); - /// - /// RoUsageInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RoUsageInfoConverter))] - public partial class RoUsageInfo : ReadOnlyBase, IDisposable - { - public event RoUsageInfoEvent 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(RoUsageInfo roUsageInfo) - { - if (!_CacheList.Contains(roUsageInfo)) _CacheList.Add(roUsageInfo); // In AddToCache - } - protected static void RemoveFromCache(RoUsageInfo roUsageInfo) - { - while (_CacheList.Contains(roUsageInfo)) _CacheList.Remove(roUsageInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (RoUsageInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ROUsageID.ToString())) - { - _CacheByPrimaryKey[tmp.ROUsageID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ROUsageID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (RoUsageInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(RoUsageInfoList lst) - { - foreach (RoUsageInfo item in lst) AddToCache(item); - } - protected static RoUsageInfo GetCachedByPrimaryKey(int rOUsageID) - { - ConvertListToDictionary(); - string key = rOUsageID.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 RoUsage _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _ROUsageID; - [System.ComponentModel.DataObjectField(true, true)] - public int ROUsageID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROUsageID; - } - } - private int _ContentID; - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private ContentInfo _MyContent; - public ContentInfo MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = ContentInfo.Get(_ContentID); - return _MyContent; - } - } - private string _ROID = string.Empty; - public string ROID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ROID; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _RODbID; - public int RODbID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb != null) _RODbID = _MyRODb.RODbID; - return _RODbID; - } - } - private RODbInfo _MyRODb; - public RODbInfo MyRODb - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyRODb == null && _RODbID != 0) _MyRODb = RODbInfo.Get(_RODbID); - return _MyRODb; - } - } - // TODO: Replace base RoUsageInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RoUsageInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check RoUsageInfo.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 RoUsageInfo - protected override object GetIdValue() - { - return _ROUsageID; - } - #endregion - #region Factory Methods - private static int _RoUsageInfoUnique = 0; - private static int RoUsageInfoUnique - { get { return ++_RoUsageInfoUnique; } } - private int _MyRoUsageInfoUnique = RoUsageInfoUnique; - public int MyRoUsageInfoUnique - { get { return _MyRoUsageInfoUnique; } } - protected RoUsageInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(ROUsageID.ToString())) return; - List listRoUsageInfo = _CacheByPrimaryKey[ROUsageID.ToString()]; // Get the list of items - while (listRoUsageInfo.Contains(this)) listRoUsageInfo.Remove(this); // Remove the item from the list - if (listRoUsageInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(ROUsageID.ToString()); // remove the list - } - public virtual RoUsage Get() - { - return _Editable = RoUsage.Get(_ROUsageID); - } - public static void Refresh(RoUsage tmp) - { - string key = tmp.ROUsageID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (RoUsageInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(RoUsage 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; - 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) - { - string key = tmp.ROUsageID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (RoUsageInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ContentRoUsage tmp) - { - _ROID = tmp.ROID; - _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) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a RoUsage"); - try - { - RoUsageInfo tmp = GetCachedByPrimaryKey(rOUsageID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(rOUsageID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up RoUsageInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RoUsageInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal RoUsageInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsageInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoUsageInfo.Constructor", ex); - throw new DbCslaException("RoUsageInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _ROUsageID; - public int ROUsageID - { get { return _ROUsageID; } } - public PKCriteria(int rOUsageID) - { - _ROUsageID = rOUsageID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsageInfo.ReadData", 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"); - _RODbID = dr.GetInt32("RODbID"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoUsageInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RoUsageInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsageInfo.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 = "getRoUsage"; - cm.Parameters.AddWithValue("@ROUsageID", criteria.ROUsageID); - 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("RoUsageInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RoUsageInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - RoUsageInfoExtension _RoUsageInfoExtension = new RoUsageInfoExtension(); - [Serializable()] - partial class RoUsageInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(RoUsageInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class RoUsageInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RoUsageInfo) - { - // Return the ToString value - return ((RoUsageInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoUsageInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoUsageInfoList.cs deleted file mode 100644 index 0ab6aec7..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoUsageInfoList.cs +++ /dev/null @@ -1,312 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// RoUsageInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RoUsageInfoListConverter))] - public partial class RoUsageInfoList : 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 (RoUsageInfo tmp in this) - { - tmp.Changed += new RoUsageInfoEvent(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 (RoUsageInfo tmp in this) - { - tmp.Changed -= new RoUsageInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static RoUsageInfoList _RoUsageInfoList = null; - /// - /// Return a list of all projects. - /// - public static RoUsageInfoList Get() - { - try - { - if (_RoUsageInfoList != null) - return _RoUsageInfoList; - RoUsageInfoList tmp = DataPortal.Fetch(); - RoUsageInfo.AddList(tmp); - tmp.AddEvents(); - _RoUsageInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RoUsageInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static RoUsageInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on RoUsageInfoList.Get", ex); - // } - //} - public static RoUsageInfoList GetByContentID(int contentID) - { - try - { - RoUsageInfoList tmp = DataPortal.Fetch(new ContentIDCriteria(contentID)); - RoUsageInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - 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 - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsageInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRoUsages"; - 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_Fetch", ex); - throw new DbCslaException("RoUsageInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ContentIDCriteria - { - public ContentIDCriteria(int contentID) - { - _ContentID = contentID; - } - private int _ContentID; - public int ContentID - { - get { return _ContentID; } - set { _ContentID = value; } - } - } - private void DataPortal_Fetch(ContentIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoUsageInfoList.DataPortal_FetchContentID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRoUsagesByContentID"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - 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_FetchContentID", ex); - throw new DbCslaException("RoUsageInfoList.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}] 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() - { 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 - RoUsageInfoListPropertyDescriptor pd = new RoUsageInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class RoUsageInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private RoUsageInfo Item { get { return (RoUsageInfo)_Item; } } - public RoUsageInfoListPropertyDescriptor(RoUsageInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class RoUsageInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RoUsageInfoList) - { - // Return department and department role separated by comma. - return ((RoUsageInfoList)value).Items.Count.ToString() + " RoUsages"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Role.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Role.cs deleted file mode 100644 index e537da3e..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Role.cs +++ /dev/null @@ -1,1191 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Role Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RoleConverter))] - public partial class Role : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshRoles = new List(); - private List _RefreshRoleAssignments = new List(); - private List _RefreshRolePermissions = new List(); - private void AddToRefreshList(List refreshRoles, List refreshRoleAssignments, List refreshRolePermissions) - { - if (IsDirty) - refreshRoles.Add(this); - if (_RoleAssignments != null && _RoleAssignments.IsDirty) - { - foreach (RoleAssignment tmp in _RoleAssignments) - { - if (tmp.IsDirty) refreshRoleAssignments.Add(tmp); - } - } - if (_RolePermissions != null && _RolePermissions.IsDirty) - { - foreach (RolePermission tmp in _RolePermissions) - { - if (tmp.IsDirty) refreshRolePermissions.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshRoles = new List(); - _RefreshRoleAssignments = new List(); - _RefreshRolePermissions = new List(); - AddToRefreshList(_RefreshRoles, _RefreshRoleAssignments, _RefreshRolePermissions); - } - private void ProcessRefreshList() - { - foreach (Role tmp in _RefreshRoles) - { - RoleInfo.Refresh(tmp); - } - foreach (RoleAssignment tmp in _RefreshRoleAssignments) - { - AssignmentInfo.Refresh(tmp); - } - foreach (RolePermission tmp in _RefreshRolePermissions) - { - PermissionInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Role role) - { - if (!_CacheList.Contains(role)) _CacheList.Add(role); // In AddToCache - } - protected static void RemoveFromCache(Role role) - { - while (_CacheList.Contains(role)) _CacheList.Remove(role); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static Dictionary> _CacheByName = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Role tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.RID.ToString())) - { - _CacheByPrimaryKey[tmp.RID.ToString()] = new List(); // Add new list for PrimaryKey - _CacheByName[tmp.Name.ToString()] = new List(); // Add new list for Name - } - _CacheByPrimaryKey[tmp.RID.ToString()].Add(tmp); // Add to Primary Key list - _CacheByName[tmp.Name.ToString()].Add(tmp); // Unique Index - remove.Add(tmp); - } - foreach (Role tmp in remove) - RemoveFromCache(tmp); - } - protected static Role GetCachedByPrimaryKey(int rid) - { - ConvertListToDictionary(); - string key = rid.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - protected static Role GetCachedByName(string name) - { - ConvertListToDictionary(); - string key = name.ToString(); - if (_CacheByName.ContainsKey(key)) return _CacheByName[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextRID = -1; - public static int NextRID - { - get { return _nextRID--; } - } - private int _RID; - [System.ComponentModel.DataObjectField(true, true)] - public int RID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RID; - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Name != value) - { - _Name = value; - PropertyHasChanged(); - } - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Title != value) - { - _Title = value; - PropertyHasChanged(); - } - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _RoleAssignmentCount = 0; - /// - /// Count of RoleAssignments for this Role - /// - public int RoleAssignmentCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RoleAssignmentCount; - } - } - private RoleAssignments _RoleAssignments = null; - /// - /// Related Field - /// - [TypeConverter(typeof(RoleAssignmentsConverter))] - public RoleAssignments RoleAssignments - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_RoleAssignmentCount > 0 && _RoleAssignments == null) - _RoleAssignments = RoleAssignments.GetByRID(RID); - else if (_RoleAssignments == null) - _RoleAssignments = RoleAssignments.New(); - return _RoleAssignments; - } - } - private int _RolePermissionCount = 0; - /// - /// Count of RolePermissions for this Role - /// - public int RolePermissionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RolePermissionCount; - } - } - private RolePermissions _RolePermissions = null; - /// - /// Related Field - /// - [TypeConverter(typeof(RolePermissionsConverter))] - public RolePermissions RolePermissions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_RolePermissionCount > 0 && _RolePermissions == null) - _RolePermissions = RolePermissions.GetByRID(RID); - else if (_RolePermissions == null) - _RolePermissions = RolePermissions.New(); - return _RolePermissions; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_RoleAssignments == null ? false : _RoleAssignments.IsDirty) || (_RolePermissions == null ? false : _RolePermissions.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_RoleAssignments == null ? true : _RoleAssignments.IsValid) && (_RolePermissions == null ? true : _RolePermissions.IsValid); } - } - // TODO: Replace base Role.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Role - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Role.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 Role - protected override object GetIdValue() - { - return _RID; - } - #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 (_RoleAssignments != null && (hasBrokenRules = _RoleAssignments.HasBrokenRules) != null) return hasBrokenRules; - if (_RolePermissions != null && (hasBrokenRules = _RolePermissions.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 50)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Title"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 250)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _RoleExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _RoleExtension.AddInstanceValidationRules(ValidationRules); - // 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(RID, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - _RoleExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _RoleExtension.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 += _RoleAssignmentCount; - usedByCount += _RolePermissionCount; - 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 _RoleUnique = 0; - protected static int RoleUnique - { get { return ++_RoleUnique; } } - private int _MyRoleUnique = RoleUnique; - public int MyRoleUnique - { get { return _MyRoleUnique; } } - protected Role() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(RID.ToString())) - { - List listRole = _CacheByPrimaryKey[RID.ToString()]; // Get the list of items - while (listRole.Contains(this)) listRole.Remove(this); // Remove the item from the list - if (listRole.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(RID.ToString()); // remove the list - } - string myKey; - myKey = null; - foreach (string key in _CacheByName.Keys) - if (_CacheByName[key].Contains(this)) - myKey = key; - if (myKey != null) - { - List listRole = _CacheByName[myKey]; // Get the list of items - listRole.Remove(this); // Remove the item from the list - if (listRole.Count == 0) //If there are no items left in the list - _CacheByName.Remove(myKey); // remove the list - } - } - public static Role New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Role"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Role.New", ex); - } - } - public static Role New(string name, string title) - { - Role tmp = Role.New(); - tmp.Name = name; - tmp.Title = title; - return tmp; - } - public static Role MakeRole(string name, string title) - { - Role tmp = Role.New(name, title); - if (tmp.IsSavable) - { - Role 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 Role New(string name, string title, DateTime dts, string usrID) - { - Role tmp = Role.New(); - tmp.Name = name; - tmp.Title = title; - tmp.DTS = dts; - tmp.UsrID = usrID; - return tmp; - } - public static Role MakeRole(string name, string title, DateTime dts, string usrID) - { - Role tmp = Role.New(name, title, dts, usrID); - if (tmp.IsSavable) - { - Role 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 Role Get(int rid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Role"); - try - { - Role tmp = GetCachedByPrimaryKey(rid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(rid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Role - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Role.Get", ex); - } - } - public static Role GetByName(string name) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Role"); - try - { - Role tmp = GetCachedByName(name); - if (tmp == null) - { - tmp = DataPortal.Fetch(new NameCriteria(name)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Role - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Role.GetByName", ex); - } - } - public static Role Get(SafeDataReader dr) - { - if (dr.Read()) return new Role(dr); - return null; - } - internal Role(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int rid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Role"); - try - { - DataPortal.Delete(new PKCriteria(rid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Role.Delete", ex); - } - } - public override Role Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Role"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Role"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Role"); - try - { - BuildRefreshList(); - Role role = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(role);//Refresh the item in AllList - ProcessRefreshList(); - return role; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _RID; - public int RID - { get { return _RID; } } - public PKCriteria(int rid) - { - _RID = rid; - } - } - [Serializable()] - private class NameCriteria - { - private string _Name; - public string Name - { get { return _Name; } } - public NameCriteria(string name) - { - _Name = name; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _RID = NextRID; - // Database Defaults - _DTS = _RoleExtension.DefaultDTS; - _UsrID = _RoleExtension.DefaultUsrID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Role.ReadData", GetHashCode()); - try - { - _RID = dr.GetInt32("RID"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _RoleAssignmentCount = dr.GetInt32("AssignmentCount"); - _RolePermissionCount = dr.GetInt32("PermissionCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Role.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Role.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Role.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 = "getRole"; - cm.Parameters.AddWithValue("@RID", criteria.RID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _RoleAssignments = RoleAssignments.Get(dr); - // load child objects - dr.NextResult(); - _RolePermissions = RolePermissions.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("Role.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Role.DataPortal_Fetch", ex); - } - } - private void DataPortal_Fetch(NameCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Role.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 = "getRoleByName"; - cm.Parameters.AddWithValue("@Name", criteria.Name); - 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("Role.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Role.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("Role.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Role.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Role.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addRole"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@Name", _Name); - cm.Parameters.AddWithValue("@Title", _Title); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - // Output Calculated Columns - SqlParameter param_RID = new SqlParameter("@newRID", SqlDbType.Int); - param_RID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_RID); - 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 - _RID = (int)cm.Parameters["@newRID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_RoleAssignments != null) _RoleAssignments.Update(this); - if (_RolePermissions != null) _RolePermissions.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Role.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Role.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Role.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int rid, string name, string title, DateTime dts, string usrID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Role.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addRole"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@Name", name); - cm.Parameters.AddWithValue("@Title", title); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - // Output Calculated Columns - SqlParameter param_RID = new SqlParameter("@newRID", SqlDbType.Int); - param_RID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_RID); - 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 - rid = (int)cm.Parameters["@newRID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Role.Add", ex); - throw new DbCslaException("Role.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}] Role.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("Role.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}] Role.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateRole"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@RID", _RID); - cm.Parameters.AddWithValue("@Name", _Name); - cm.Parameters.AddWithValue("@Title", _Title); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - 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 (_RoleAssignments != null) _RoleAssignments.Update(this); - if (_RolePermissions != null) _RolePermissions.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Role.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 = Role.Add(cn, ref _RID, _Name, _Title, _DTS, _UsrID); - else - _LastChanged = Role.Update(cn, ref _RID, _Name, _Title, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - if (_RoleAssignments != null) _RoleAssignments.Update(this); - if (_RolePermissions != null) _RolePermissions.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int rid, string name, string title, DateTime dts, string usrID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Role.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateRole"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@RID", rid); - cm.Parameters.AddWithValue("@Name", name); - cm.Parameters.AddWithValue("@Title", title); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - 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("Role.Update", ex); - throw new DbCslaException("Role.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_RID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Role.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRole"; - cm.Parameters.AddWithValue("@RID", criteria.RID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Role.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Role.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int rid) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Role.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRole"; - // Input PK Fields - cm.Parameters.AddWithValue("@RID", rid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Role.Remove", ex); - throw new DbCslaException("Role.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int rid) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(rid)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Role.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _RID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int rid) - { - _RID = rid; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Role.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsRole"; - cm.Parameters.AddWithValue("@RID", _RID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Role.DataPortal_Execute", ex); - throw new DbCslaException("Role.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - RoleExtension _RoleExtension = new RoleExtension(); - [Serializable()] - partial class RoleExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 RoleConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Role) - { - // Return the ToString value - return ((Role)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create RoleExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Role -// { -// partial class RoleExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/RoleAssignment.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoleAssignment.cs deleted file mode 100644 index 8c9010c6..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoleAssignment.cs +++ /dev/null @@ -1,731 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// RoleAssignment Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RoleAssignmentConverter))] - public partial class RoleAssignment : 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 _AID; - [System.ComponentModel.DataObjectField(true, true)] - public int AID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAssignment != null) _AID = _MyAssignment.AID; - return _AID; - } - } - private Assignment _MyAssignment; - [System.ComponentModel.DataObjectField(true, true)] - public Assignment MyAssignment - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyAssignment == null && _AID != 0) _MyAssignment = Assignment.Get(_AID); - return _MyAssignment; - } - } - private int _GID; - public int GID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup != null) _GID = _MyGroup.GID; - return _GID; - } - } - private Group _MyGroup; - public Group MyGroup - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup == null && _GID != 0) _MyGroup = Group.Get(_GID); - return _MyGroup; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyGroup != value) - { - _MyGroup = value; - PropertyHasChanged(); - } - } - } - private int _FolderID; - public int FolderID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder != null) _FolderID = _MyFolder.FolderID; - return _FolderID; - } - } - private Folder _MyFolder; - public Folder MyFolder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyFolder == null && _FolderID != 0) _MyFolder = Folder.Get(_FolderID); - return _MyFolder; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyFolder != value) - { - _MyFolder = value; - PropertyHasChanged(); - } - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _StartDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_StartDate != tmp.ToString()) - { - _StartDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _EndDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_EndDate != tmp.ToString()) - { - _EndDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _Folder_ParentID; - public int Folder_ParentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ParentID; - } - } - private int _Folder_DBID; - public int Folder_DBID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_DBID; - } - } - private string _Folder_Name = string.Empty; - public string Folder_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Name; - } - } - private string _Folder_Title = string.Empty; - public string Folder_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Title; - } - } - private string _Folder_ShortName = string.Empty; - public string Folder_ShortName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ShortName; - } - } - private int? _Folder_FormatID; - public int? Folder_FormatID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_FormatID; - } - } - private double? _Folder_ManualOrder; - public double? Folder_ManualOrder - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_ManualOrder; - } - } - private string _Folder_Config = string.Empty; - public string Folder_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_Config; - } - } - private DateTime _Folder_DTS = new DateTime(); - public DateTime Folder_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_DTS; - } - } - private string _Folder_UsrID = string.Empty; - public string Folder_UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Folder_UsrID; - } - } - private string _Group_GroupName = string.Empty; - public string Group_GroupName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_GroupName; - } - } - private int? _Group_GroupType; - public int? Group_GroupType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_GroupType; - } - } - private string _Group_Config = string.Empty; - public string Group_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_Config; - } - } - private DateTime _Group_DTS = new DateTime(); - public DateTime Group_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_DTS; - } - } - private string _Group_UsrID = string.Empty; - public string Group_UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_UsrID; - } - } - // TODO: Check RoleAssignment.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 RoleAssignment - protected override object GetIdValue() - { - return _AID; - } - // TODO: Replace base RoleAssignment.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RoleAssignment - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyGroup == null ? false : _MyGroup.IsDirty) || (_MyFolder == null ? false : _MyFolder.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyGroup == null ? true : _MyGroup.IsValid) && (_MyFolder == null ? true : _MyFolder.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 (_MyGroup != null && (hasBrokenRules = _MyGroup.HasBrokenRules) != null) return hasBrokenRules; - if (_MyFolder != null && (hasBrokenRules = _MyFolder.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(MyGroupRequired, "MyGroup"); - ValidationRules.AddRule(MyFolderRequired, "MyFolder"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "StartDate"); - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - // TODO: Add other validation rules - } - private static bool StartDateValid(RoleAssignment target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._StartDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool EndDateValid(RoleAssignment target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._EndDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool MyGroupRequired(RoleAssignment target, Csla.Validation.RuleArgs e) - { - if (target._GID == 0 && target._MyGroup == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - private static bool MyFolderRequired(RoleAssignment target, Csla.Validation.RuleArgs e) - { - if (target._FolderID == 0 && target._MyFolder == 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(AID, ""); - //AuthorizationRules.AllowRead(GID, ""); - //AuthorizationRules.AllowWrite(GID, ""); - //AuthorizationRules.AllowRead(FolderID, ""); - //AuthorizationRules.AllowWrite(FolderID, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - } - 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 RoleAssignment New(Group myGroup, Folder myFolder) - { - return new RoleAssignment(myGroup, myFolder); - } - internal static RoleAssignment Get(SafeDataReader dr) - { - return new RoleAssignment(dr); - } - public RoleAssignment() - { - MarkAsChild(); - _AID = Assignment.NextAID; - _StartDate = _RoleAssignmentExtension.DefaultStartDate; - _DTS = _RoleAssignmentExtension.DefaultDTS; - _UsrID = _RoleAssignmentExtension.DefaultUsrID; - ValidationRules.CheckRules(); - } - private RoleAssignment(Group myGroup, Folder myFolder) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _StartDate = _RoleAssignmentExtension.DefaultStartDate; - _DTS = _RoleAssignmentExtension.DefaultDTS; - _UsrID = _RoleAssignmentExtension.DefaultUsrID; - _MyGroup = myGroup; - _MyFolder = myFolder; - ValidationRules.CheckRules(); - } - internal RoleAssignment(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoleAssignment.FetchDR", GetHashCode()); - try - { - _AID = dr.GetInt32("AID"); - _GID = dr.GetInt32("GID"); - _FolderID = dr.GetInt32("FolderID"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _Folder_ParentID = dr.GetInt32("Folder_ParentID"); - _Folder_DBID = dr.GetInt32("Folder_DBID"); - _Folder_Name = dr.GetString("Folder_Name"); - _Folder_Title = dr.GetString("Folder_Title"); - _Folder_ShortName = dr.GetString("Folder_ShortName"); - _Folder_FormatID = (int?)dr.GetValue("Folder_FormatID"); - _Folder_ManualOrder = (double?)dr.GetValue("Folder_ManualOrder"); - _Folder_Config = dr.GetString("Folder_Config"); - _Folder_DTS = dr.GetDateTime("Folder_DTS"); - _Folder_UsrID = dr.GetString("Folder_UsrID"); - _Group_GroupName = dr.GetString("Group_GroupName"); - _Group_GroupType = (int?)dr.GetValue("Group_GroupType"); - _Group_Config = dr.GetString("Group_Config"); - _Group_DTS = dr.GetDateTime("Group_DTS"); - _Group_UsrID = dr.GetString("Group_UsrID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoleAssignment.FetchDR", ex); - throw new DbCslaException("RoleAssignment.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Role myRole) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Assignment.Add(cn, ref _AID, _MyGroup, myRole, _MyFolder, new SmartDate(_StartDate), new SmartDate(_EndDate), _DTS, _UsrID); - MarkOld(); - } - internal void Update(Role myRole) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Assignment.Update(cn, ref _AID, _MyGroup, myRole, _MyFolder, new SmartDate(_StartDate), new SmartDate(_EndDate), _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Role myRole) - { - // 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"]; - Assignment.Remove(cn, _AID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - RoleAssignmentExtension _RoleAssignmentExtension = new RoleAssignmentExtension(); - [Serializable()] - partial class RoleAssignmentExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 RoleAssignmentConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RoleAssignment) - { - // Return the ToString value - return ((RoleAssignment)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create RoleAssignmentExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class RoleAssignment -// { -// partial class RoleAssignmentExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual SmartDate DefaultStartDate -// { -// get { return DateTime.Now.ToShortDateString(); } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/RoleAssignments.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoleAssignments.cs deleted file mode 100644 index c62cf51a..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoleAssignments.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// RoleAssignments Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RoleAssignmentsConverter))] - public partial class RoleAssignments : 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 RoleAssignment this[Assignment myAssignment] - { - get - { - foreach (RoleAssignment assignment in this) - if (assignment.AID == myAssignment.AID) - return assignment; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public RoleAssignment GetItem(Assignment myAssignment) - { - foreach (RoleAssignment assignment in this) - if (assignment.AID == myAssignment.AID) - return assignment; - return null; - } - public RoleAssignment Add(Group myGroup, Folder myFolder) // One to Many - { - RoleAssignment assignment = RoleAssignment.New(myGroup, myFolder); - this.Add(assignment); - return assignment; - } - public void Remove(Assignment myAssignment) - { - foreach (RoleAssignment assignment in this) - { - if (assignment.AID == myAssignment.AID) - { - Remove(assignment); - break; - } - } - } - public bool Contains(Assignment myAssignment) - { - foreach (RoleAssignment assignment in this) - if (assignment.AID == myAssignment.AID) - return true; - return false; - } - public bool ContainsDeleted(Assignment myAssignment) - { - foreach (RoleAssignment assignment in DeletedList) - if (assignment.AID == myAssignment.AID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (RoleAssignment roleAssignment in this) - if ((hasBrokenRules = roleAssignment.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 RoleAssignments New() - { - return new RoleAssignments(); - } - internal static RoleAssignments Get(SafeDataReader dr) - { - return new RoleAssignments(dr); - } - public static RoleAssignments GetByRID(int rid) - { - try - { - return DataPortal.Fetch(new RIDCriteria(rid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on RoleAssignments.GetByRID", ex); - } - } - private RoleAssignments() - { - MarkAsChild(); - } - internal RoleAssignments(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(RoleAssignment.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class RIDCriteria - { - public RIDCriteria(int rid) - { - _RID = rid; - } - private int _RID; - public int RID - { - get { return _RID; } - set { _RID = value; } - } - } - private void DataPortal_Fetch(RIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoleAssignments.DataPortal_FetchRID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAssignmentsByRID"; - cm.Parameters.AddWithValue("@RID", criteria.RID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new RoleAssignment(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoleAssignments.DataPortal_FetchRID", ex); - throw new DbCslaException("RoleAssignments.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Role role) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (RoleAssignment obj in DeletedList) - obj.DeleteSelf(role);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (RoleAssignment obj in this) - { - if (obj.IsNew) - obj.Insert(role); - else - obj.Update(role); - } - } - 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 - RoleAssignmentsPropertyDescriptor pd = new RoleAssignmentsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class RoleAssignmentsPropertyDescriptor : vlnListPropertyDescriptor - { - private RoleAssignment Item { get { return (RoleAssignment)_Item; } } - public RoleAssignmentsPropertyDescriptor(RoleAssignments collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class RoleAssignmentsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RoleAssignments) - { - // Return department and department role separated by comma. - return ((RoleAssignments)value).Items.Count.ToString() + " Assignments"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoleInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoleInfo.cs deleted file mode 100644 index 546d8cd1..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoleInfo.cs +++ /dev/null @@ -1,398 +0,0 @@ -// ======================================================================== -// 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 RoleInfoEvent(object sender); - /// - /// RoleInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RoleInfoConverter))] - public partial class RoleInfo : ReadOnlyBase, IDisposable - { - public event RoleInfoEvent 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(RoleInfo roleInfo) - { - if (!_CacheList.Contains(roleInfo)) _CacheList.Add(roleInfo); // In AddToCache - } - protected static void RemoveFromCache(RoleInfo roleInfo) - { - while (_CacheList.Contains(roleInfo)) _CacheList.Remove(roleInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (RoleInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.RID.ToString())) - { - _CacheByPrimaryKey[tmp.RID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.RID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (RoleInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(RoleInfoList lst) - { - foreach (RoleInfo item in lst) AddToCache(item); - } - protected static RoleInfo GetCachedByPrimaryKey(int rid) - { - ConvertListToDictionary(); - string key = rid.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 Role _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _RID; - [System.ComponentModel.DataObjectField(true, true)] - public int RID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RID; - } - } - private string _Name = string.Empty; - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Name; - } - } - private string _Title = string.Empty; - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Title; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - } - private int _RoleAssignmentCount = 0; - /// - /// Count of RoleAssignments for this Role - /// - public int RoleAssignmentCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RoleAssignmentCount; - } - } - private AssignmentInfoList _RoleAssignments = null; - [TypeConverter(typeof(AssignmentInfoListConverter))] - public AssignmentInfoList RoleAssignments - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_RoleAssignmentCount < 0 || (_RoleAssignmentCount > 0 && _RoleAssignments == null)) - _RoleAssignments = AssignmentInfoList.GetByRID(_RID); - if (_RoleAssignmentCount < 0) - _RoleAssignmentCount = _RoleAssignments.Count; - return _RoleAssignments; - } - } - public void RefreshRoleAssignments() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_RID.ToString())) - foreach (RoleInfo tmp in _CacheByPrimaryKey[_RID.ToString()]) - tmp._RoleAssignmentCount = -1; // This will cause the data to be requeried - } - private int _RolePermissionCount = 0; - /// - /// Count of RolePermissions for this Role - /// - public int RolePermissionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _RolePermissionCount; - } - } - private PermissionInfoList _RolePermissions = null; - [TypeConverter(typeof(PermissionInfoListConverter))] - public PermissionInfoList RolePermissions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_RolePermissionCount < 0 || (_RolePermissionCount > 0 && _RolePermissions == null)) - _RolePermissions = PermissionInfoList.GetByRID(_RID); - if (_RolePermissionCount < 0) - _RolePermissionCount = _RolePermissions.Count; - return _RolePermissions; - } - } - public void RefreshRolePermissions() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_RID.ToString())) - foreach (RoleInfo tmp in _CacheByPrimaryKey[_RID.ToString()]) - tmp._RolePermissionCount = -1; // This will cause the data to be requeried - } - // TODO: Replace base RoleInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RoleInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check RoleInfo.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 RoleInfo - protected override object GetIdValue() - { - return _RID; - } - #endregion - #region Factory Methods - private static int _RoleInfoUnique = 0; - private static int RoleInfoUnique - { get { return ++_RoleInfoUnique; } } - private int _MyRoleInfoUnique = RoleInfoUnique; - public int MyRoleInfoUnique - { get { return _MyRoleInfoUnique; } } - protected RoleInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(RID.ToString())) return; - List listRoleInfo = _CacheByPrimaryKey[RID.ToString()]; // Get the list of items - while (listRoleInfo.Contains(this)) listRoleInfo.Remove(this); // Remove the item from the list - if (listRoleInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(RID.ToString()); // remove the list - } - public virtual Role Get() - { - return _Editable = Role.Get(_RID); - } - public static void Refresh(Role tmp) - { - string key = tmp.RID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (RoleInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Role tmp) - { - _Name = tmp.Name; - _Title = tmp.Title; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _RoleInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static RoleInfo Get(int rid) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Role"); - try - { - RoleInfo tmp = GetCachedByPrimaryKey(rid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(rid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up RoleInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RoleInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal RoleInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoleInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoleInfo.Constructor", ex); - throw new DbCslaException("RoleInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _RID; - public int RID - { get { return _RID; } } - public PKCriteria(int rid) - { - _RID = rid; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoleInfo.ReadData", GetHashCode()); - try - { - _RID = dr.GetInt32("RID"); - _Name = dr.GetString("Name"); - _Title = dr.GetString("Title"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - _RoleAssignmentCount = dr.GetInt32("AssignmentCount"); - _RolePermissionCount = dr.GetInt32("PermissionCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoleInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RoleInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoleInfo.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 = "getRole"; - cm.Parameters.AddWithValue("@RID", criteria.RID); - 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("RoleInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("RoleInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - RoleInfoExtension _RoleInfoExtension = new RoleInfoExtension(); - [Serializable()] - partial class RoleInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(RoleInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class RoleInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RoleInfo) - { - // Return the ToString value - return ((RoleInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoleInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoleInfoList.cs deleted file mode 100644 index 5101de2c..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RoleInfoList.cs +++ /dev/null @@ -1,198 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// RoleInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RoleInfoListConverter))] - public partial class RoleInfoList : 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 (RoleInfo tmp in this) - { - tmp.Changed += new RoleInfoEvent(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 (RoleInfo tmp in this) - { - tmp.Changed -= new RoleInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static RoleInfoList _RoleInfoList = null; - /// - /// Return a list of all projects. - /// - public static RoleInfoList Get() - { - try - { - if (_RoleInfoList != null) - return _RoleInfoList; - RoleInfoList tmp = DataPortal.Fetch(); - RoleInfo.AddList(tmp); - tmp.AddEvents(); - _RoleInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on RoleInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static RoleInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on RoleInfoList.Get", ex); - // } - //} - private RoleInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RoleInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRoles"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new RoleInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RoleInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("RoleInfoList.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 - RoleInfoListPropertyDescriptor pd = new RoleInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class RoleInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private RoleInfo Item { get { return (RoleInfo)_Item; } } - public RoleInfoListPropertyDescriptor(RoleInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class RoleInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RoleInfoList) - { - // Return department and department role separated by comma. - return ((RoleInfoList)value).Items.Count.ToString() + " Roles"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RolePermission.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RolePermission.cs deleted file mode 100644 index 23f47a52..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RolePermission.cs +++ /dev/null @@ -1,619 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// RolePermission Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RolePermissionConverter))] - public partial class RolePermission : 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 _PID; - [System.ComponentModel.DataObjectField(true, true)] - public int PID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyPermission != null) _PID = _MyPermission.PID; - return _PID; - } - } - private Permission _MyPermission; - [System.ComponentModel.DataObjectField(true, true)] - public Permission MyPermission - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyPermission == null && _PID != 0) _MyPermission = Permission.Get(_PID); - return _MyPermission; - } - } - private int _PermLevel; - /// - /// 0 - None, 1 - Security, 2 - System, 3 - RO, 4 - Procdures, 5 - Sections, 6 - Steps, 7 - Comments - /// - public int PermLevel - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PermLevel; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_PermLevel != value) - { - _PermLevel = value; - PropertyHasChanged(); - } - } - } - private int _VersionType; - /// - /// 0 - None, 1 - Working Draft, 2 - Approved, (3 - All) - /// - public int VersionType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _VersionType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_VersionType != value) - { - _VersionType = value; - PropertyHasChanged(); - } - } - } - private int _PermValue; - /// - /// 1 - Read, 2 - Write, 4 - Create, 8 - Delete (15 - All) - /// - public int PermValue - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PermValue; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_PermValue != value) - { - _PermValue = value; - PropertyHasChanged(); - } - } - } - private int _PermAD; - /// - /// 0 - Allow, 1 - Deny - /// - public int PermAD - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PermAD; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_PermAD != value) - { - _PermAD = value; - PropertyHasChanged(); - } - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _StartDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_StartDate != tmp.ToString()) - { - _StartDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _EndDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_EndDate != tmp.ToString()) - { - _EndDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - // TODO: Check RolePermission.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 RolePermission - protected override object GetIdValue() - { - return _PID; - } - // TODO: Replace base RolePermission.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RolePermission - //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, "StartDate"); - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - // TODO: Add other validation rules - } - private static bool StartDateValid(RolePermission target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._StartDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool EndDateValid(RolePermission target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._EndDate); - } - catch - { - e.Description = "Invalid Date"; - 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(PID, ""); - //AuthorizationRules.AllowRead(PermLevel, ""); - //AuthorizationRules.AllowWrite(PermLevel, ""); - //AuthorizationRules.AllowRead(VersionType, ""); - //AuthorizationRules.AllowWrite(VersionType, ""); - //AuthorizationRules.AllowRead(PermValue, ""); - //AuthorizationRules.AllowWrite(PermValue, ""); - //AuthorizationRules.AllowRead(PermAD, ""); - //AuthorizationRules.AllowWrite(PermAD, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - } - 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 RolePermission New(int permLevel, int versionType, int permValue) - { - return new RolePermission(permLevel, versionType, permValue); - } - internal static RolePermission Get(SafeDataReader dr) - { - return new RolePermission(dr); - } - public RolePermission() - { - MarkAsChild(); - _PID = Permission.NextPID; - _PermAD = _RolePermissionExtension.DefaultPermAD; - _StartDate = _RolePermissionExtension.DefaultStartDate; - _DTS = _RolePermissionExtension.DefaultDTS; - _UsrID = _RolePermissionExtension.DefaultUsrID; - ValidationRules.CheckRules(); - } - private RolePermission(int permLevel, int versionType, int permValue) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _PermAD = _RolePermissionExtension.DefaultPermAD; - _StartDate = _RolePermissionExtension.DefaultStartDate; - _DTS = _RolePermissionExtension.DefaultDTS; - _UsrID = _RolePermissionExtension.DefaultUsrID; - _PermLevel = permLevel; - _VersionType = versionType; - _PermValue = permValue; - ValidationRules.CheckRules(); - } - internal RolePermission(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RolePermission.FetchDR", GetHashCode()); - try - { - _PID = dr.GetInt32("PID"); - _PermLevel = dr.GetInt32("PermLevel"); - _VersionType = dr.GetInt32("VersionType"); - _PermValue = dr.GetInt32("PermValue"); - _PermAD = dr.GetInt32("PermAD"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RolePermission.FetchDR", ex); - throw new DbCslaException("RolePermission.Fetch", ex); - } - MarkOld(); - } - internal void Insert(Role myRole) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Permission.Add(cn, ref _PID, myRole, _PermLevel, _VersionType, _PermValue, _PermAD, new SmartDate(_StartDate), new SmartDate(_EndDate), _Config, _DTS, _UsrID); - MarkOld(); - } - internal void Update(Role myRole) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Permission.Update(cn, ref _PID, myRole, _PermLevel, _VersionType, _PermValue, _PermAD, new SmartDate(_StartDate), new SmartDate(_EndDate), _Config, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(Role myRole) - { - // 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"]; - Permission.Remove(cn, _PID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - RolePermissionExtension _RolePermissionExtension = new RolePermissionExtension(); - [Serializable()] - partial class RolePermissionExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultPermAD - { - get { return 0; } - } - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 RolePermissionConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RolePermission) - { - // Return the ToString value - return ((RolePermission)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create RolePermissionExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class RolePermission -// { -// partial class RolePermissionExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultPermAD -// { -// get { return 0; } -// } -// public virtual SmartDate DefaultStartDate -// { -// get { return DateTime.Now.ToShortDateString(); } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/RolePermissions.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/RolePermissions.cs deleted file mode 100644 index 00e2aec8..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/RolePermissions.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// RolePermissions Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(RolePermissionsConverter))] - public partial class RolePermissions : 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 RolePermission this[Permission myPermission] - { - get - { - foreach (RolePermission permission in this) - if (permission.PID == myPermission.PID) - return permission; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public RolePermission GetItem(Permission myPermission) - { - foreach (RolePermission permission in this) - if (permission.PID == myPermission.PID) - return permission; - return null; - } - public RolePermission Add(int permLevel, int versionType, int permValue) // One to Many - { - RolePermission permission = RolePermission.New(permLevel, versionType, permValue); - this.Add(permission); - return permission; - } - public void Remove(Permission myPermission) - { - foreach (RolePermission permission in this) - { - if (permission.PID == myPermission.PID) - { - Remove(permission); - break; - } - } - } - public bool Contains(Permission myPermission) - { - foreach (RolePermission permission in this) - if (permission.PID == myPermission.PID) - return true; - return false; - } - public bool ContainsDeleted(Permission myPermission) - { - foreach (RolePermission permission in DeletedList) - if (permission.PID == myPermission.PID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (RolePermission rolePermission in this) - if ((hasBrokenRules = rolePermission.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 RolePermissions New() - { - return new RolePermissions(); - } - internal static RolePermissions Get(SafeDataReader dr) - { - return new RolePermissions(dr); - } - public static RolePermissions GetByRID(int rid) - { - try - { - return DataPortal.Fetch(new RIDCriteria(rid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on RolePermissions.GetByRID", ex); - } - } - private RolePermissions() - { - MarkAsChild(); - } - internal RolePermissions(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(RolePermission.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class RIDCriteria - { - public RIDCriteria(int rid) - { - _RID = rid; - } - private int _RID; - public int RID - { - get { return _RID; } - set { _RID = value; } - } - } - private void DataPortal_Fetch(RIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] RolePermissions.DataPortal_FetchRID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPermissionsByRID"; - cm.Parameters.AddWithValue("@RID", criteria.RID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new RolePermission(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("RolePermissions.DataPortal_FetchRID", ex); - throw new DbCslaException("RolePermissions.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(Role role) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (RolePermission obj in DeletedList) - obj.DeleteSelf(role);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (RolePermission obj in this) - { - if (obj.IsNew) - obj.Insert(role); - else - obj.Update(role); - } - } - 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 - RolePermissionsPropertyDescriptor pd = new RolePermissionsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class RolePermissionsPropertyDescriptor : vlnListPropertyDescriptor - { - private RolePermission Item { get { return (RolePermission)_Item; } } - public RolePermissionsPropertyDescriptor(RolePermissions collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class RolePermissionsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is RolePermissions) - { - // Return department and department role separated by comma. - return ((RolePermissions)value).Items.Count.ToString() + " Permissions"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Transition.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/Transition.cs deleted file mode 100644 index 4e5e7798..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/Transition.cs +++ /dev/null @@ -1,1199 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// Transition Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(TransitionConverter))] - public partial class Transition : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshTransitions = new List(); - private void AddToRefreshList(List refreshTransitions) - { - if (IsDirty) - refreshTransitions.Add(this); - } - private void BuildRefreshList() - { - _RefreshTransitions = new List(); - AddToRefreshList(_RefreshTransitions); - } - private void ProcessRefreshList() - { - foreach (Transition tmp in _RefreshTransitions) - { - TransitionInfo.Refresh(tmp); - if (tmp._MyContent != null) ContentInfo.Refresh(tmp._MyContent); - if (tmp._MyItemRangeID != null) ItemInfo.Refresh(tmp._MyItemRangeID); - if (tmp._MyItemToID != null) ItemInfo.Refresh(tmp._MyItemToID); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(Transition transition) - { - if (!_CacheList.Contains(transition)) _CacheList.Add(transition); // In AddToCache - } - protected static void RemoveFromCache(Transition transition) - { - while (_CacheList.Contains(transition)) _CacheList.Remove(transition); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (Transition tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.TransitionID.ToString())) - { - _CacheByPrimaryKey[tmp.TransitionID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.TransitionID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (Transition tmp in remove) - RemoveFromCache(tmp); - } - protected static Transition GetCachedByPrimaryKey(int transitionID) - { - ConvertListToDictionary(); - string key = transitionID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextTransitionID = -1; - public static int NextTransitionID - { - get { return _nextTransitionID--; } - } - private int _TransitionID; - [System.ComponentModel.DataObjectField(true, true)] - public int TransitionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TransitionID; - } - } - private int _FromID; - public int FromID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _FromID = _MyContent.ContentID; - return _FromID; - } - } - private Content _MyContent; - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _FromID != 0) _MyContent = Content.Get(_FromID); - return _MyContent; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyContent != value) - { - _MyContent = value; - PropertyHasChanged(); - } - } - } - private int _ToID; - /// - /// StructureID - /// - public int ToID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemToID != null) _ToID = _MyItemToID.ItemID; - return _ToID; - } - } - private Item _MyItemToID; - public Item MyItemToID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemToID == null && _ToID != 0) _MyItemToID = Item.Get(_ToID); - return _MyItemToID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyItemToID != value) - { - _MyItemToID = value; - PropertyHasChanged(); - } - } - } - private int _RangeID; - public int RangeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemRangeID != null) _RangeID = _MyItemRangeID.ItemID; - return _RangeID; - } - } - private Item _MyItemRangeID; - public Item MyItemRangeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemRangeID == null && _RangeID != 0) _MyItemRangeID = Item.Get(_RangeID); - return _MyItemRangeID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyItemRangeID != value) - { - _MyItemRangeID = value; - PropertyHasChanged(); - } - } - } - private int _TranType; - public int TranType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TranType; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_TranType != value) - { - _TranType = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _TransitionZTransitionCount = 0; - /// - /// Count of TransitionZTransitions for this Transition - /// - public int TransitionZTransitionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TransitionZTransitionCount; - } - } - private ZTransition _MyZTransition = null; - /// - /// Related Field - /// - [TypeConverter(typeof(ZTransitionConverter))] - public ZTransition MyZTransition - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyZTransition == null) _MyZTransition = ZTransition.New(this); - return _MyZTransition; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_MyZTransition == null ? false : _MyZTransition.IsDirty) || (_MyContent == null ? false : _MyContent.IsDirty) || (_MyItemRangeID == null ? false : _MyItemRangeID.IsDirty) || (_MyItemToID == null ? false : _MyItemToID.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyZTransition == null ? true : _MyZTransition.IsValid) && (_MyContent == null ? true : _MyContent.IsValid) && (_MyItemRangeID == null ? true : _MyItemRangeID.IsValid) && (_MyItemToID == null ? true : _MyItemToID.IsValid); } - } - // TODO: Replace base Transition.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Transition - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check Transition.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 Transition - protected override object GetIdValue() - { - return _TransitionID; - } - #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 (_MyZTransition != null && (hasBrokenRules = _MyZTransition.HasBrokenRules) != null) return hasBrokenRules; - if (_MyContent != null && (hasBrokenRules = _MyContent.HasBrokenRules) != null) return hasBrokenRules; - if (_MyItemToID != null && (hasBrokenRules = _MyItemToID.HasBrokenRules) != null) return hasBrokenRules; - if (_MyItemRangeID != null && (hasBrokenRules = _MyItemRangeID.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(MyItemToIDRequired, "MyItemToID"); - ValidationRules.AddRule(MyItemRangeIDRequired, "MyItemRangeID"); - 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"); - _TransitionExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _TransitionExtension.AddInstanceValidationRules(ValidationRules); - // TODO: Add other validation rules - } - private static bool MyContentRequired(Transition target, Csla.Validation.RuleArgs e) - { - if (target._FromID == 0 && target._MyContent == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - private static bool MyItemToIDRequired(Transition target, Csla.Validation.RuleArgs e) - { - if (target._ToID == 0 && target._MyItemToID == null) // Required field missing - { - e.Description = "Required"; - return false; - } - return true; - } - private static bool MyItemRangeIDRequired(Transition target, Csla.Validation.RuleArgs e) - { - if (target._RangeID == 0 && target._MyItemRangeID == 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(TransitionID, ""); - //AuthorizationRules.AllowRead(FromID, ""); - //AuthorizationRules.AllowRead(ToID, ""); - //AuthorizationRules.AllowRead(RangeID, ""); - //AuthorizationRules.AllowRead(TranType, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowWrite(FromID, ""); - //AuthorizationRules.AllowWrite(ToID, ""); - //AuthorizationRules.AllowWrite(RangeID, ""); - //AuthorizationRules.AllowWrite(TranType, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - _TransitionExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _TransitionExtension.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 += _TransitionZTransitionCount; - 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 _TransitionUnique = 0; - protected static int TransitionUnique - { get { return ++_TransitionUnique; } } - private int _MyTransitionUnique = TransitionUnique; - public int MyTransitionUnique - { get { return _MyTransitionUnique; } } - protected Transition() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(TransitionID.ToString())) - { - List listTransition = _CacheByPrimaryKey[TransitionID.ToString()]; // Get the list of items - while (listTransition.Contains(this)) listTransition.Remove(this); // Remove the item from the list - if (listTransition.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(TransitionID.ToString()); // remove the list - } - } - public static Transition New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Transition"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Transition.New", ex); - } - } - public static Transition New(Content myContent, Item myItemToID, Item myItemRangeID) - { - Transition tmp = Transition.New(); - tmp.MyContent = myContent; - tmp.MyItemToID = myItemToID; - tmp.MyItemRangeID = myItemRangeID; - return tmp; - } - public static Transition New(Content myContent, Item myItemToID, Item myItemRangeID, int tranType, string config, DateTime dts, string userID) - { - Transition tmp = Transition.New(); - tmp.MyContent = myContent; - tmp.MyItemToID = myItemToID; - tmp.MyItemRangeID = myItemRangeID; - tmp.TranType = tranType; - tmp.Config = config; - tmp.DTS = dts; - tmp.UserID = userID; - return tmp; - } - public static Transition MakeTransition(Content myContent, Item myItemToID, Item myItemRangeID, int tranType, string config, DateTime dts, string userID) - { - Transition tmp = Transition.New(myContent, myItemToID, myItemRangeID, tranType, config, dts, userID); - if (tmp.IsSavable) - { - Transition 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 Transition New(Content myContent, Item myItemToID, Item myItemRangeID, string config) - { - Transition tmp = Transition.New(); - tmp.MyContent = myContent; - tmp.MyItemToID = myItemToID; - tmp.MyItemRangeID = myItemRangeID; - tmp.Config = config; - return tmp; - } - public static Transition MakeTransition(Content myContent, Item myItemToID, Item myItemRangeID, string config) - { - Transition tmp = Transition.New(myContent, myItemToID, myItemRangeID, config); - if (tmp.IsSavable) - { - Transition 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 Transition Get(int transitionID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Transition"); - try - { - Transition tmp = GetCachedByPrimaryKey(transitionID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(transitionID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up Transition - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Transition.Get", ex); - } - } - public static Transition Get(SafeDataReader dr) - { - if (dr.Read()) return new Transition(dr); - return null; - } - internal Transition(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int transitionID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Transition"); - try - { - DataPortal.Delete(new PKCriteria(transitionID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on Transition.Delete", ex); - } - } - public override Transition Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Transition"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Transition"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Transition"); - try - { - BuildRefreshList(); - Transition transition = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(transition);//Refresh the item in AllList - ProcessRefreshList(); - return transition; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _TransitionID; - public int TransitionID - { get { return _TransitionID; } } - public PKCriteria(int transitionID) - { - _TransitionID = transitionID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _TransitionID = NextTransitionID; - // Database Defaults - _TranType = _TransitionExtension.DefaultTranType; - _DTS = _TransitionExtension.DefaultDTS; - _UserID = _TransitionExtension.DefaultUserID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Transition.ReadData", GetHashCode()); - try - { - _TransitionID = dr.GetInt32("TransitionID"); - _FromID = dr.GetInt32("FromID"); - _ToID = dr.GetInt32("ToID"); - _RangeID = dr.GetInt32("RangeID"); - _TranType = dr.GetInt32("TranType"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _TransitionZTransitionCount = dr.GetInt32("ZTransitionCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Transition.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Transition.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Transition.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 = "getTransition"; - cm.Parameters.AddWithValue("@TransitionID", criteria.TransitionID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _MyZTransition = ZTransition.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("Transition.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Transition.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("Transition.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Transition.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Transition.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - if (_MyContent != null) _MyContent.Update(); - if (_MyItemRangeID != null) _MyItemRangeID.Update(); - if (_MyItemToID != null) _MyItemToID.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addTransition"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@FromID", FromID); - cm.Parameters.AddWithValue("@ToID", ToID); - cm.Parameters.AddWithValue("@RangeID", RangeID); - cm.Parameters.AddWithValue("@TranType", _TranType); - 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_TransitionID = new SqlParameter("@newTransitionID", SqlDbType.Int); - param_TransitionID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_TransitionID); - 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 - _TransitionID = (int)cm.Parameters["@newTransitionID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_MyZTransition != null) _MyZTransition.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Transition.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Transition.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Transition.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int transitionID, Content myContent, Item myItemToID, Item myItemRangeID, int tranType, string config, DateTime dts, string userID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Transition.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addTransition"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@FromID", myContent.ContentID); - cm.Parameters.AddWithValue("@ToID", myItemToID.ItemID); - cm.Parameters.AddWithValue("@RangeID", myItemRangeID.ItemID); - cm.Parameters.AddWithValue("@TranType", tranType); - 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_TransitionID = new SqlParameter("@newTransitionID", SqlDbType.Int); - param_TransitionID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_TransitionID); - 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 - transitionID = (int)cm.Parameters["@newTransitionID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Transition.Add", ex); - throw new DbCslaException("Transition.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}] Transition.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("Transition.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}] Transition.SQLUpdate", GetHashCode()); - try - { - if (_MyContent != null) _MyContent.Update(); - if (_MyItemRangeID != null) _MyItemRangeID.Update(); - if (_MyItemToID != null) _MyItemToID.Update(); - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateTransition"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@TransitionID", _TransitionID); - cm.Parameters.AddWithValue("@FromID", FromID); - cm.Parameters.AddWithValue("@ToID", ToID); - cm.Parameters.AddWithValue("@RangeID", RangeID); - cm.Parameters.AddWithValue("@TranType", _TranType); - 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 (_MyZTransition != null) _MyZTransition.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Transition.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 = Transition.Add(cn, ref _TransitionID, _MyContent, _MyItemToID, _MyItemRangeID, _TranType, _Config, _DTS, _UserID); - else - _LastChanged = Transition.Update(cn, ref _TransitionID, _MyContent, _MyItemToID, _MyItemRangeID, _TranType, _Config, _DTS, _UserID, ref _LastChanged); - MarkOld(); - } - if (_MyZTransition != null) _MyZTransition.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int transitionID, Content myContent, Item myItemToID, Item myItemRangeID, int tranType, string config, DateTime dts, string userID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Transition.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateTransition"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@TransitionID", transitionID); - cm.Parameters.AddWithValue("@FromID", myContent.ContentID); - cm.Parameters.AddWithValue("@ToID", myItemToID.ItemID); - cm.Parameters.AddWithValue("@RangeID", myItemRangeID.ItemID); - cm.Parameters.AddWithValue("@TranType", tranType); - 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("Transition.Update", ex); - throw new DbCslaException("Transition.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_TransitionID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Transition.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteTransition"; - cm.Parameters.AddWithValue("@TransitionID", criteria.TransitionID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Transition.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("Transition.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int transitionID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Transition.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteTransition"; - // Input PK Fields - cm.Parameters.AddWithValue("@TransitionID", transitionID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Transition.Remove", ex); - throw new DbCslaException("Transition.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int transitionID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(transitionID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Transition.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _TransitionID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int transitionID) - { - _TransitionID = transitionID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] Transition.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsTransition"; - cm.Parameters.AddWithValue("@TransitionID", _TransitionID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Transition.DataPortal_Execute", ex); - throw new DbCslaException("Transition.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - TransitionExtension _TransitionExtension = new TransitionExtension(); - [Serializable()] - partial class TransitionExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultTranType - { - 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 TransitionConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is Transition) - { - // Return the ToString value - return ((Transition)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create TransitionExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class Transition -// { -// partial class TransitionExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual int DefaultTranType -// { -// 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/OldGenerated/TransitionInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/TransitionInfo.cs deleted file mode 100644 index 60e3a203..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/TransitionInfo.cs +++ /dev/null @@ -1,622 +0,0 @@ -// ======================================================================== -// 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 TransitionInfoEvent(object sender); - /// - /// TransitionInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(TransitionInfoConverter))] - public partial class TransitionInfo : ReadOnlyBase, IDisposable - { - public event TransitionInfoEvent 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(TransitionInfo transitionInfo) - { - if (!_CacheList.Contains(transitionInfo)) _CacheList.Add(transitionInfo); // In AddToCache - } - protected static void RemoveFromCache(TransitionInfo transitionInfo) - { - while (_CacheList.Contains(transitionInfo)) _CacheList.Remove(transitionInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (TransitionInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.TransitionID.ToString())) - { - _CacheByPrimaryKey[tmp.TransitionID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.TransitionID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (TransitionInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(TransitionInfoList lst) - { - foreach (TransitionInfo item in lst) AddToCache(item); - } - protected static TransitionInfo GetCachedByPrimaryKey(int transitionID) - { - ConvertListToDictionary(); - string key = transitionID.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 Transition _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _TransitionID; - [System.ComponentModel.DataObjectField(true, true)] - public int TransitionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TransitionID; - } - } - private int _FromID; - public int FromID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _FromID = _MyContent.ContentID; - return _FromID; - } - } - private ContentInfo _MyContent; - public ContentInfo MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _FromID != 0) _MyContent = ContentInfo.Get(_FromID); - return _MyContent; - } - } - private int _ToID; - /// - /// StructureID - /// - public int ToID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemToID != null) _ToID = _MyItemToID.ItemID; - return _ToID; - } - } - private ItemInfo _MyItemToID; - public ItemInfo MyItemToID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemToID == null && _ToID != 0) _MyItemToID = ItemInfo.Get(_ToID); - return _MyItemToID; - } - } - private int _RangeID; - public int RangeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemRangeID != null) _RangeID = _MyItemRangeID.ItemID; - return _RangeID; - } - } - private ItemInfo _MyItemRangeID; - public ItemInfo MyItemRangeID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyItemRangeID == null && _RangeID != 0) _MyItemRangeID = ItemInfo.Get(_RangeID); - return _MyItemRangeID; - } - } - private int _TranType; - public int TranType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TranType; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private int _TransitionZTransitionCount = 0; - /// - /// Count of TransitionZTransitions for this Transition - /// - public int TransitionZTransitionCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _TransitionZTransitionCount; - } - } - private ZTransitionInfo _MyZTransition = null; - [TypeConverter(typeof(ZTransitionInfoConverter))] - public ZTransitionInfo MyZTransition - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_TransitionZTransitionCount != 0 && _MyZTransition == null) - { - _MyZTransition = ZTransitionInfo.Get(_TransitionID); - _TransitionZTransitionCount = _MyZTransition == null ? 0 : 1; - } - return _MyZTransition; - } - } - // TODO: Replace base TransitionInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current TransitionInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check TransitionInfo.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 TransitionInfo - protected override object GetIdValue() - { - return _TransitionID; - } - #endregion - #region Factory Methods - private static int _TransitionInfoUnique = 0; - private static int TransitionInfoUnique - { get { return ++_TransitionInfoUnique; } } - private int _MyTransitionInfoUnique = TransitionInfoUnique; - public int MyTransitionInfoUnique - { get { return _MyTransitionInfoUnique; } } - protected TransitionInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(TransitionID.ToString())) return; - List listTransitionInfo = _CacheByPrimaryKey[TransitionID.ToString()]; // Get the list of items - while (listTransitionInfo.Contains(this)) listTransitionInfo.Remove(this); // Remove the item from the list - if (listTransitionInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(TransitionID.ToString()); // remove the list - } - public virtual Transition Get() - { - return _Editable = Transition.Get(_TransitionID); - } - public static void Refresh(Transition tmp) - { - string key = tmp.TransitionID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (TransitionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(Transition tmp) - { - if (_FromID != tmp.FromID) - { - if (MyContent != null) MyContent.RefreshContentTransitions(); // Update List for old value - _FromID = tmp.FromID; // Update the value - } - _MyContent = null; // Reset list so that the next line gets a new list - if (MyContent != null) MyContent.RefreshContentTransitions(); // Update List for new value - if (_ToID != tmp.ToID) - { - if (MyItemToID != null) MyItemToID.RefreshItemTransitions_ToID(); // Update List for old value - _ToID = tmp.ToID; // Update the value - } - _MyItemToID = null; // Reset list so that the next line gets a new list - if (MyItemToID != null) MyItemToID.RefreshItemTransitions_ToID(); // Update List for new value - if (_RangeID != tmp.RangeID) - { - if (MyItemRangeID != null) MyItemRangeID.RefreshItemTransitions_RangeID(); // Update List for old value - _RangeID = tmp.RangeID; // Update the value - } - _MyItemRangeID = null; // Reset list so that the next line gets a new list - if (MyItemRangeID != null) MyItemRangeID.RefreshItemTransitions_RangeID(); // Update List for new value - _TranType = tmp.TranType; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _TransitionInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - if (_MyItemToID != null) - { - _MyItemToID.Dispose();// Dispose related value - _MyItemToID = null;// Reset related value - } - if (_MyItemRangeID != null) - { - _MyItemRangeID.Dispose();// Dispose related value - _MyItemRangeID = null;// Reset related value - } - if (_MyZTransition != null) - { - _MyZTransition.Dispose();// Dispose related value - _MyZTransition = null;// Reset related value - } - _TransitionZTransitionCount = -1;// Reset Count - OnChange();// raise an event - } - public static void Refresh(ContentTransition tmp) - { - string key = tmp.TransitionID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (TransitionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ContentTransition tmp) - { - if (_ToID != tmp.ToID) - { - if (MyItemToID != null) MyItemToID.RefreshItemTransitions_ToID(); // Update List for old value - _ToID = tmp.ToID; // Update the value - } - _MyItemToID = null; // Reset list so that the next line gets a new list - if (MyItemToID != null) MyItemToID.RefreshItemTransitions_ToID(); // Update List for new value - if (_RangeID != tmp.RangeID) - { - if (MyItemRangeID != null) MyItemRangeID.RefreshItemTransitions_RangeID(); // Update List for old value - _RangeID = tmp.RangeID; // Update the value - } - _MyItemRangeID = null; // Reset list so that the next line gets a new list - if (MyItemRangeID != null) MyItemRangeID.RefreshItemTransitions_RangeID(); // Update List for new value - _TranType = tmp.TranType; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _TransitionInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - if (_MyItemToID != null) - { - _MyItemToID.Dispose();// Dispose related value - _MyItemToID = null;// Reset related value - } - if (_MyItemRangeID != null) - { - _MyItemRangeID.Dispose();// Dispose related value - _MyItemRangeID = null;// Reset related value - } - if (_MyZTransition != null) - { - _MyZTransition.Dispose();// Dispose related value - _MyZTransition = null;// Reset related value - } - _TransitionZTransitionCount = -1;// Reset Count - OnChange();// raise an event - } - public static void Refresh(ItemTransition_RangeID tmp) - { - string key = tmp.TransitionID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (TransitionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ItemTransition_RangeID tmp) - { - if (_FromID != tmp.FromID) - { - if (MyContent != null) MyContent.RefreshContentTransitions(); // Update List for old value - _FromID = tmp.FromID; // Update the value - } - _MyContent = null; // Reset list so that the next line gets a new list - if (MyContent != null) MyContent.RefreshContentTransitions(); // Update List for new value - if (_ToID != tmp.ToID) - { - if (MyItemToID != null) MyItemToID.RefreshItemTransitions_ToID(); // Update List for old value - _ToID = tmp.ToID; // Update the value - } - _MyItemToID = null; // Reset list so that the next line gets a new list - if (MyItemToID != null) MyItemToID.RefreshItemTransitions_ToID(); // Update List for new value - _TranType = tmp.TranType; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _TransitionInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - if (_MyItemToID != null) - { - _MyItemToID.Dispose();// Dispose related value - _MyItemToID = null;// Reset related value - } - if (_MyItemRangeID != null) - { - _MyItemRangeID.Dispose();// Dispose related value - _MyItemRangeID = null;// Reset related value - } - if (_MyZTransition != null) - { - _MyZTransition.Dispose();// Dispose related value - _MyZTransition = null;// Reset related value - } - _TransitionZTransitionCount = -1;// Reset Count - OnChange();// raise an event - } - public static void Refresh(ItemTransition_ToID tmp) - { - string key = tmp.TransitionID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (TransitionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ItemTransition_ToID tmp) - { - if (_FromID != tmp.FromID) - { - if (MyContent != null) MyContent.RefreshContentTransitions(); // Update List for old value - _FromID = tmp.FromID; // Update the value - } - _MyContent = null; // Reset list so that the next line gets a new list - if (MyContent != null) MyContent.RefreshContentTransitions(); // Update List for new value - if (_RangeID != tmp.RangeID) - { - if (MyItemRangeID != null) MyItemRangeID.RefreshItemTransitions_RangeID(); // Update List for old value - _RangeID = tmp.RangeID; // Update the value - } - _MyItemRangeID = null; // Reset list so that the next line gets a new list - if (MyItemRangeID != null) MyItemRangeID.RefreshItemTransitions_RangeID(); // Update List for new value - _TranType = tmp.TranType; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UserID = tmp.UserID; - _TransitionInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - if (_MyItemToID != null) - { - _MyItemToID.Dispose();// Dispose related value - _MyItemToID = null;// Reset related value - } - if (_MyItemRangeID != null) - { - _MyItemRangeID.Dispose();// Dispose related value - _MyItemRangeID = null;// Reset related value - } - if (_MyZTransition != null) - { - _MyZTransition.Dispose();// Dispose related value - _MyZTransition = null;// Reset related value - } - _TransitionZTransitionCount = -1;// Reset Count - OnChange();// raise an event - } - public static TransitionInfo Get(int transitionID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Transition"); - try - { - TransitionInfo tmp = GetCachedByPrimaryKey(transitionID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(transitionID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up TransitionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on TransitionInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal TransitionInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TransitionInfo.Constructor", ex); - throw new DbCslaException("TransitionInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _TransitionID; - public int TransitionID - { get { return _TransitionID; } } - public PKCriteria(int transitionID) - { - _TransitionID = transitionID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfo.ReadData", GetHashCode()); - try - { - _TransitionID = dr.GetInt32("TransitionID"); - _FromID = dr.GetInt32("FromID"); - _ToID = dr.GetInt32("ToID"); - _RangeID = dr.GetInt32("RangeID"); - _TranType = dr.GetInt32("TranType"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UserID = dr.GetString("UserID"); - _TransitionZTransitionCount = dr.GetInt32("ZTransitionCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TransitionInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("TransitionInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfo.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 = "getTransition"; - cm.Parameters.AddWithValue("@TransitionID", criteria.TransitionID); - 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("TransitionInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("TransitionInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - TransitionInfoExtension _TransitionInfoExtension = new TransitionInfoExtension(); - [Serializable()] - partial class TransitionInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(TransitionInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class TransitionInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is TransitionInfo) - { - // Return the ToString value - return ((TransitionInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/TransitionInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/TransitionInfoList.cs deleted file mode 100644 index 0ee8f648..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/TransitionInfoList.cs +++ /dev/null @@ -1,369 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// TransitionInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(TransitionInfoListConverter))] - public partial class TransitionInfoList : 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 (TransitionInfo tmp in this) - { - tmp.Changed += new TransitionInfoEvent(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 (TransitionInfo tmp in this) - { - tmp.Changed -= new TransitionInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static TransitionInfoList _TransitionInfoList = null; - /// - /// Return a list of all projects. - /// - public static TransitionInfoList Get() - { - try - { - if (_TransitionInfoList != null) - return _TransitionInfoList; - TransitionInfoList tmp = DataPortal.Fetch(); - TransitionInfo.AddList(tmp); - tmp.AddEvents(); - _TransitionInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on TransitionInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static TransitionInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on TransitionInfoList.Get", ex); - // } - //} - public static TransitionInfoList GetByFromID(int fromID) - { - try - { - TransitionInfoList tmp = DataPortal.Fetch(new FromIDCriteria(fromID)); - TransitionInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on TransitionInfoList.GetByFromID", ex); - } - } - public static TransitionInfoList GetByRangeID(int rangeID) - { - try - { - TransitionInfoList tmp = DataPortal.Fetch(new RangeIDCriteria(rangeID)); - TransitionInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on TransitionInfoList.GetByRangeID", ex); - } - } - public static TransitionInfoList GetByToID(int toID) - { - try - { - TransitionInfoList tmp = DataPortal.Fetch(new ToIDCriteria(toID)); - TransitionInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on TransitionInfoList.GetByToID", ex); - } - } - private TransitionInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getTransitions"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new TransitionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TransitionInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("TransitionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class FromIDCriteria - { - public FromIDCriteria(int fromID) - { - _FromID = fromID; - } - private int _FromID; - public int FromID - { - get { return _FromID; } - set { _FromID = value; } - } - } - private void DataPortal_Fetch(FromIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfoList.DataPortal_FetchFromID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getTransitionsByFromID"; - cm.Parameters.AddWithValue("@FromID", criteria.FromID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new TransitionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TransitionInfoList.DataPortal_FetchFromID", ex); - throw new DbCslaException("TransitionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class RangeIDCriteria - { - public RangeIDCriteria(int rangeID) - { - _RangeID = rangeID; - } - private int _RangeID; - public int RangeID - { - get { return _RangeID; } - set { _RangeID = value; } - } - } - private void DataPortal_Fetch(RangeIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfoList.DataPortal_FetchRangeID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getTransitionsByRangeID"; - cm.Parameters.AddWithValue("@RangeID", criteria.RangeID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new TransitionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TransitionInfoList.DataPortal_FetchRangeID", ex); - throw new DbCslaException("TransitionInfoList.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class ToIDCriteria - { - public ToIDCriteria(int toID) - { - _ToID = toID; - } - private int _ToID; - public int ToID - { - get { return _ToID; } - set { _ToID = value; } - } - } - private void DataPortal_Fetch(ToIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] TransitionInfoList.DataPortal_FetchToID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getTransitionsByToID"; - cm.Parameters.AddWithValue("@ToID", criteria.ToID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new TransitionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("TransitionInfoList.DataPortal_FetchToID", ex); - throw new DbCslaException("TransitionInfoList.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 - TransitionInfoListPropertyDescriptor pd = new TransitionInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class TransitionInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private TransitionInfo Item { get { return (TransitionInfo)_Item; } } - public TransitionInfoListPropertyDescriptor(TransitionInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class TransitionInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is TransitionInfoList) - { - // Return department and department role separated by comma. - return ((TransitionInfoList)value).Items.Count.ToString() + " Transitions"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/User.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/User.cs deleted file mode 100644 index 6d964d1a..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/User.cs +++ /dev/null @@ -1,1333 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// User Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(UserConverter))] - public partial class User : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshUsers = new List(); - private List _RefreshUserMemberships = new List(); - private void AddToRefreshList(List refreshUsers, List refreshUserMemberships) - { - if (IsDirty) - refreshUsers.Add(this); - if (_UserMemberships != null && _UserMemberships.IsDirty) - { - foreach (UserMembership tmp in _UserMemberships) - { - if (tmp.IsDirty) refreshUserMemberships.Add(tmp); - } - } - } - private void BuildRefreshList() - { - _RefreshUsers = new List(); - _RefreshUserMemberships = new List(); - AddToRefreshList(_RefreshUsers, _RefreshUserMemberships); - } - private void ProcessRefreshList() - { - foreach (User tmp in _RefreshUsers) - { - UserInfo.Refresh(tmp); - } - foreach (UserMembership tmp in _RefreshUserMemberships) - { - MembershipInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(User user) - { - if (!_CacheList.Contains(user)) _CacheList.Add(user); // In AddToCache - } - protected static void RemoveFromCache(User user) - { - while (_CacheList.Contains(user)) _CacheList.Remove(user); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (User tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.UID.ToString())) - { - _CacheByPrimaryKey[tmp.UID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.UID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (User tmp in remove) - RemoveFromCache(tmp); - } - protected static User GetCachedByPrimaryKey(int uid) - { - ConvertListToDictionary(); - string key = uid.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private static int _nextUID = -1; - public static int NextUID - { - get { return _nextUID--; } - } - private int _UID; - [System.ComponentModel.DataObjectField(true, true)] - public int UID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UID; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserID != value) - { - _UserID = value; - PropertyHasChanged(); - } - } - } - private string _FirstName = string.Empty; - public string FirstName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FirstName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_FirstName != value) - { - _FirstName = value; - PropertyHasChanged(); - } - } - } - private string _MiddleName = string.Empty; - public string MiddleName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _MiddleName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_MiddleName != value) - { - _MiddleName = value; - PropertyHasChanged(); - } - } - } - private string _LastName = string.Empty; - public string LastName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _LastName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_LastName != value) - { - _LastName = value; - PropertyHasChanged(); - } - } - } - private string _Suffix = string.Empty; - public string Suffix - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Suffix; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Suffix != value) - { - _Suffix = value; - PropertyHasChanged(); - } - } - } - private string _CourtesyTitle = string.Empty; - public string CourtesyTitle - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _CourtesyTitle; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_CourtesyTitle != value) - { - _CourtesyTitle = value; - PropertyHasChanged(); - } - } - } - private string _PhoneNumber = string.Empty; - public string PhoneNumber - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PhoneNumber; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_PhoneNumber != value) - { - _PhoneNumber = value; - PropertyHasChanged(); - } - } - } - private string _CFGName = string.Empty; - public string CFGName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _CFGName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_CFGName != value) - { - _CFGName = value; - PropertyHasChanged(); - } - } - } - private string _UserLogin = string.Empty; - public string UserLogin - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserLogin; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserLogin != value) - { - _UserLogin = value; - PropertyHasChanged(); - } - } - } - private string _UserName = string.Empty; - public string UserName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UserName != value) - { - _UserName = value; - PropertyHasChanged(); - } - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private int _UserMembershipCount = 0; - /// - /// Count of UserMemberships for this User - /// - public int UserMembershipCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserMembershipCount; - } - } - private UserMemberships _UserMemberships = null; - /// - /// Related Field - /// - [TypeConverter(typeof(UserMembershipsConverter))] - public UserMemberships UserMemberships - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_UserMembershipCount > 0 && _UserMemberships == null) - _UserMemberships = UserMemberships.GetByUID(UID); - else if (_UserMemberships == null) - _UserMemberships = UserMemberships.New(); - return _UserMemberships; - } - } - public override bool IsDirty - { - get { return base.IsDirty || (_UserMemberships == null ? false : _UserMemberships.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_UserMemberships == null ? true : _UserMemberships.IsValid); } - } - // TODO: Replace base User.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current User - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check User.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 User - protected override object GetIdValue() - { - return _UID; - } - #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 (_UserMemberships != null && (hasBrokenRules = _UserMemberships.HasBrokenRules) != null) return hasBrokenRules; - return hasBrokenRules; - } - finally - { - _CheckingBrokenRules = false; - } - } - } - public BrokenRulesCollection BrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = HasBrokenRules; - if (this.Equals(hasBrokenRules)) return BrokenRulesCollection; - return (hasBrokenRules != null ? hasBrokenRules.BrokenRules : null); - } - } - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UserID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserID", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("FirstName", 50)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("MiddleName", 50)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("LastName", 50)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Suffix", 10)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("CourtesyTitle", 10)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("PhoneNumber", 30)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("CFGName", 8)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserLogin", 10)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserName", 32)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - //ValidationRules.AddDependantProperty("x", "y"); - _UserExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _UserExtension.AddInstanceValidationRules(ValidationRules); - // 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(UID, ""); - //AuthorizationRules.AllowRead(UserID, ""); - //AuthorizationRules.AllowRead(FirstName, ""); - //AuthorizationRules.AllowRead(MiddleName, ""); - //AuthorizationRules.AllowRead(LastName, ""); - //AuthorizationRules.AllowRead(Suffix, ""); - //AuthorizationRules.AllowRead(CourtesyTitle, ""); - //AuthorizationRules.AllowRead(PhoneNumber, ""); - //AuthorizationRules.AllowRead(CFGName, ""); - //AuthorizationRules.AllowRead(UserLogin, ""); - //AuthorizationRules.AllowRead(UserName, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(UserID, ""); - //AuthorizationRules.AllowWrite(FirstName, ""); - //AuthorizationRules.AllowWrite(MiddleName, ""); - //AuthorizationRules.AllowWrite(LastName, ""); - //AuthorizationRules.AllowWrite(Suffix, ""); - //AuthorizationRules.AllowWrite(CourtesyTitle, ""); - //AuthorizationRules.AllowWrite(PhoneNumber, ""); - //AuthorizationRules.AllowWrite(CFGName, ""); - //AuthorizationRules.AllowWrite(UserLogin, ""); - //AuthorizationRules.AllowWrite(UserName, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - _UserExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _UserExtension.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 += _UserMembershipCount; - 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 _UserUnique = 0; - protected static int UserUnique - { get { return ++_UserUnique; } } - private int _MyUserUnique = UserUnique; - public int MyUserUnique - { get { return _MyUserUnique; } } - protected User() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(UID.ToString())) - { - List listUser = _CacheByPrimaryKey[UID.ToString()]; // Get the list of items - while (listUser.Contains(this)) listUser.Remove(this); // Remove the item from the list - if (listUser.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(UID.ToString()); // remove the list - } - } - public static User New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a User"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on User.New", ex); - } - } - public static User New(string userID, string firstName, string middleName, string lastName, string suffix, string courtesyTitle, string phoneNumber, string cFGName, string userLogin, string userName, string config, DateTime dts, string usrID) - { - User tmp = User.New(); - tmp.UserID = userID; - tmp.FirstName = firstName; - tmp.MiddleName = middleName; - tmp.LastName = lastName; - tmp.Suffix = suffix; - tmp.CourtesyTitle = courtesyTitle; - tmp.PhoneNumber = phoneNumber; - tmp.CFGName = cFGName; - tmp.UserLogin = userLogin; - tmp.UserName = userName; - tmp.Config = config; - tmp.DTS = dts; - tmp.UsrID = usrID; - return tmp; - } - public static User MakeUser(string userID, string firstName, string middleName, string lastName, string suffix, string courtesyTitle, string phoneNumber, string cFGName, string userLogin, string userName, string config, DateTime dts, string usrID) - { - User tmp = User.New(userID, firstName, middleName, lastName, suffix, courtesyTitle, phoneNumber, cFGName, userLogin, userName, config, dts, usrID); - if (tmp.IsSavable) - { - User 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 User New(string firstName, string middleName, string lastName, string suffix, string courtesyTitle, string phoneNumber, string cFGName, string userLogin, string userName, string config) - { - User tmp = User.New(); - tmp.FirstName = firstName; - tmp.MiddleName = middleName; - tmp.LastName = lastName; - tmp.Suffix = suffix; - tmp.CourtesyTitle = courtesyTitle; - tmp.PhoneNumber = phoneNumber; - tmp.CFGName = cFGName; - tmp.UserLogin = userLogin; - tmp.UserName = userName; - tmp.Config = config; - return tmp; - } - public static User MakeUser(string firstName, string middleName, string lastName, string suffix, string courtesyTitle, string phoneNumber, string cFGName, string userLogin, string userName, string config) - { - User tmp = User.New(firstName, middleName, lastName, suffix, courtesyTitle, phoneNumber, cFGName, userLogin, userName, config); - if (tmp.IsSavable) - { - User 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 User Get(int uid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a User"); - try - { - User tmp = GetCachedByPrimaryKey(uid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(uid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up User - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on User.Get", ex); - } - } - public static User Get(SafeDataReader dr) - { - if (dr.Read()) return new User(dr); - return null; - } - internal User(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int uid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a User"); - try - { - DataPortal.Delete(new PKCriteria(uid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on User.Delete", ex); - } - } - public override User Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a User"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a User"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a User"); - try - { - BuildRefreshList(); - User user = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(user);//Refresh the item in AllList - ProcessRefreshList(); - return user; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _UID; - public int UID - { get { return _UID; } } - public PKCriteria(int uid) - { - _UID = uid; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - _UID = NextUID; - // Database Defaults - _UserID = _UserExtension.DefaultUserID; - _DTS = _UserExtension.DefaultDTS; - _UsrID = _UserExtension.DefaultUsrID; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.ReadData", GetHashCode()); - try - { - _UID = dr.GetInt32("UID"); - _UserID = dr.GetString("UserID"); - _FirstName = dr.GetString("FirstName"); - _MiddleName = dr.GetString("MiddleName"); - _LastName = dr.GetString("LastName"); - _Suffix = dr.GetString("Suffix"); - _CourtesyTitle = dr.GetString("CourtesyTitle"); - _PhoneNumber = dr.GetString("PhoneNumber"); - _CFGName = dr.GetString("CFGName"); - _UserLogin = dr.GetString("UserLogin"); - _UserName = dr.GetString("UserName"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _UserMembershipCount = dr.GetInt32("MembershipCount"); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("User.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("User.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - ApplicationContext.LocalContext["cn"] = cn; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getUser"; - cm.Parameters.AddWithValue("@UID", criteria.UID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - // load child objects - dr.NextResult(); - _UserMemberships = UserMemberships.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("User.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("User.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("User.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("User.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addUser"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@FirstName", _FirstName); - cm.Parameters.AddWithValue("@MiddleName", _MiddleName); - cm.Parameters.AddWithValue("@LastName", _LastName); - cm.Parameters.AddWithValue("@Suffix", _Suffix); - cm.Parameters.AddWithValue("@CourtesyTitle", _CourtesyTitle); - cm.Parameters.AddWithValue("@PhoneNumber", _PhoneNumber); - cm.Parameters.AddWithValue("@CFGName", _CFGName); - cm.Parameters.AddWithValue("@UserLogin", _UserLogin); - cm.Parameters.AddWithValue("@UserName", _UserName); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - // Output Calculated Columns - SqlParameter param_UID = new SqlParameter("@newUID", SqlDbType.Int); - param_UID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_UID); - 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 - _UID = (int)cm.Parameters["@newUID"].Value; - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - MarkOld(); - // update child objects - if (_UserMemberships != null) _UserMemberships.Update(this); - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("User.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("User.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int uid, string userID, string firstName, string middleName, string lastName, string suffix, string courtesyTitle, string phoneNumber, string cFGName, string userLogin, string userName, string config, DateTime dts, string usrID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addUser"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@UserID", userID); - cm.Parameters.AddWithValue("@FirstName", firstName); - cm.Parameters.AddWithValue("@MiddleName", middleName); - cm.Parameters.AddWithValue("@LastName", lastName); - cm.Parameters.AddWithValue("@Suffix", suffix); - cm.Parameters.AddWithValue("@CourtesyTitle", courtesyTitle); - cm.Parameters.AddWithValue("@PhoneNumber", phoneNumber); - cm.Parameters.AddWithValue("@CFGName", cFGName); - cm.Parameters.AddWithValue("@UserLogin", userLogin); - cm.Parameters.AddWithValue("@UserName", userName); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - // Output Calculated Columns - SqlParameter param_UID = new SqlParameter("@newUID", SqlDbType.Int); - param_UID.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_UID); - 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 - uid = (int)cm.Parameters["@newUID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("User.Add", ex); - throw new DbCslaException("User.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}] User.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("User.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}] User.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateUser"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@UID", _UID); - cm.Parameters.AddWithValue("@UserID", _UserID); - cm.Parameters.AddWithValue("@FirstName", _FirstName); - cm.Parameters.AddWithValue("@MiddleName", _MiddleName); - cm.Parameters.AddWithValue("@LastName", _LastName); - cm.Parameters.AddWithValue("@Suffix", _Suffix); - cm.Parameters.AddWithValue("@CourtesyTitle", _CourtesyTitle); - cm.Parameters.AddWithValue("@PhoneNumber", _PhoneNumber); - cm.Parameters.AddWithValue("@CFGName", _CFGName); - cm.Parameters.AddWithValue("@UserLogin", _UserLogin); - cm.Parameters.AddWithValue("@UserName", _UserName); - cm.Parameters.AddWithValue("@Config", _Config); - if (_DTS.Year >= 1753 && _DTS.Year <= 9999) cm.Parameters.AddWithValue("@DTS", _DTS); - cm.Parameters.AddWithValue("@UsrID", _UsrID); - 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 (_UserMemberships != null) _UserMemberships.Update(this); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("User.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 = User.Add(cn, ref _UID, _UserID, _FirstName, _MiddleName, _LastName, _Suffix, _CourtesyTitle, _PhoneNumber, _CFGName, _UserLogin, _UserName, _Config, _DTS, _UsrID); - else - _LastChanged = User.Update(cn, ref _UID, _UserID, _FirstName, _MiddleName, _LastName, _Suffix, _CourtesyTitle, _PhoneNumber, _CFGName, _UserLogin, _UserName, _Config, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - if (_UserMemberships != null) _UserMemberships.Update(this); - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int uid, string userID, string firstName, string middleName, string lastName, string suffix, string courtesyTitle, string phoneNumber, string cFGName, string userLogin, string userName, string config, DateTime dts, string usrID, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateUser"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@UID", uid); - cm.Parameters.AddWithValue("@UserID", userID); - cm.Parameters.AddWithValue("@FirstName", firstName); - cm.Parameters.AddWithValue("@MiddleName", middleName); - cm.Parameters.AddWithValue("@LastName", lastName); - cm.Parameters.AddWithValue("@Suffix", suffix); - cm.Parameters.AddWithValue("@CourtesyTitle", courtesyTitle); - cm.Parameters.AddWithValue("@PhoneNumber", phoneNumber); - cm.Parameters.AddWithValue("@CFGName", cFGName); - cm.Parameters.AddWithValue("@UserLogin", userLogin); - cm.Parameters.AddWithValue("@UserName", userName); - cm.Parameters.AddWithValue("@Config", config); - if (dts.Year >= 1753 && dts.Year <= 9999) cm.Parameters.AddWithValue("@DTS", dts); - cm.Parameters.AddWithValue("@UsrID", usrID); - 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("User.Update", ex); - throw new DbCslaException("User.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_UID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteUser"; - cm.Parameters.AddWithValue("@UID", criteria.UID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("User.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("User.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int uid) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteUser"; - // Input PK Fields - cm.Parameters.AddWithValue("@UID", uid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("User.Remove", ex); - throw new DbCslaException("User.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int uid) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(uid)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on User.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _UID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int uid) - { - _UID = uid; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] User.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsUser"; - cm.Parameters.AddWithValue("@UID", _UID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("User.DataPortal_Execute", ex); - throw new DbCslaException("User.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - UserExtension _UserExtension = new UserExtension(); - [Serializable()] - partial class UserExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultUserID - { - get { return Environment.UserName.ToUpper(); } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 UserConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is User) - { - // Return the ToString value - return ((User)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create UserExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class User -// { -// partial class UserExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual string DefaultUserID -// { -// get { return Environment.UserName.ToUpper(); } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/UserInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/UserInfo.cs deleted file mode 100644 index 98d4bbb1..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/UserInfo.cs +++ /dev/null @@ -1,463 +0,0 @@ -// ======================================================================== -// 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 UserInfoEvent(object sender); - /// - /// UserInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(UserInfoConverter))] - public partial class UserInfo : ReadOnlyBase, IDisposable - { - public event UserInfoEvent 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(UserInfo userInfo) - { - if (!_CacheList.Contains(userInfo)) _CacheList.Add(userInfo); // In AddToCache - } - protected static void RemoveFromCache(UserInfo userInfo) - { - while (_CacheList.Contains(userInfo)) _CacheList.Remove(userInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (UserInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.UID.ToString())) - { - _CacheByPrimaryKey[tmp.UID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.UID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (UserInfo tmp in remove) - RemoveFromCache(tmp); - } - internal static void AddList(UserInfoList lst) - { - foreach (UserInfo item in lst) AddToCache(item); - } - protected static UserInfo GetCachedByPrimaryKey(int uid) - { - ConvertListToDictionary(); - string key = uid.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 User _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _UID; - [System.ComponentModel.DataObjectField(true, true)] - public int UID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UID; - } - } - private string _UserID = string.Empty; - public string UserID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserID; - } - } - private string _FirstName = string.Empty; - public string FirstName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _FirstName; - } - } - private string _MiddleName = string.Empty; - public string MiddleName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _MiddleName; - } - } - private string _LastName = string.Empty; - public string LastName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _LastName; - } - } - private string _Suffix = string.Empty; - public string Suffix - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Suffix; - } - } - private string _CourtesyTitle = string.Empty; - public string CourtesyTitle - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _CourtesyTitle; - } - } - private string _PhoneNumber = string.Empty; - public string PhoneNumber - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _PhoneNumber; - } - } - private string _CFGName = string.Empty; - public string CFGName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _CFGName; - } - } - private string _UserLogin = string.Empty; - public string UserLogin - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserLogin; - } - } - private string _UserName = string.Empty; - public string UserName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserName; - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - } - private DateTime _DTS = new DateTime(); - public DateTime DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _DTS; - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - } - private int _UserMembershipCount = 0; - /// - /// Count of UserMemberships for this User - /// - public int UserMembershipCount - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UserMembershipCount; - } - } - private MembershipInfoList _UserMemberships = null; - [TypeConverter(typeof(MembershipInfoListConverter))] - public MembershipInfoList UserMemberships - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_UserMembershipCount < 0 || (_UserMembershipCount > 0 && _UserMemberships == null)) - _UserMemberships = MembershipInfoList.GetByUID(_UID); - if (_UserMembershipCount < 0) - _UserMembershipCount = _UserMemberships.Count; - return _UserMemberships; - } - } - public void RefreshUserMemberships() - { - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(_UID.ToString())) - foreach (UserInfo tmp in _CacheByPrimaryKey[_UID.ToString()]) - tmp._UserMembershipCount = -1; // This will cause the data to be requeried - } - // TODO: Replace base UserInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current UserInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check UserInfo.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 UserInfo - protected override object GetIdValue() - { - return _UID; - } - #endregion - #region Factory Methods - private static int _UserInfoUnique = 0; - private static int UserInfoUnique - { get { return ++_UserInfoUnique; } } - private int _MyUserInfoUnique = UserInfoUnique; - public int MyUserInfoUnique - { get { return _MyUserInfoUnique; } } - protected UserInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(UID.ToString())) return; - List listUserInfo = _CacheByPrimaryKey[UID.ToString()]; // Get the list of items - while (listUserInfo.Contains(this)) listUserInfo.Remove(this); // Remove the item from the list - if (listUserInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(UID.ToString()); // remove the list - } - public virtual User Get() - { - return _Editable = User.Get(_UID); - } - public static void Refresh(User tmp) - { - string key = tmp.UID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (UserInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(User tmp) - { - _UserID = tmp.UserID; - _FirstName = tmp.FirstName; - _MiddleName = tmp.MiddleName; - _LastName = tmp.LastName; - _Suffix = tmp.Suffix; - _CourtesyTitle = tmp.CourtesyTitle; - _PhoneNumber = tmp.PhoneNumber; - _CFGName = tmp.CFGName; - _UserLogin = tmp.UserLogin; - _UserName = tmp.UserName; - _Config = tmp.Config; - _DTS = tmp.DTS; - _UsrID = tmp.UsrID; - _UserInfoExtension.Refresh(this); - OnChange();// raise an event - } - public static UserInfo Get(int uid) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a User"); - try - { - UserInfo tmp = GetCachedByPrimaryKey(uid); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(uid)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up UserInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on UserInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal UserInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] UserInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("UserInfo.Constructor", ex); - throw new DbCslaException("UserInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _UID; - public int UID - { get { return _UID; } } - public PKCriteria(int uid) - { - _UID = uid; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] UserInfo.ReadData", GetHashCode()); - try - { - _UID = dr.GetInt32("UID"); - _UserID = dr.GetString("UserID"); - _FirstName = dr.GetString("FirstName"); - _MiddleName = dr.GetString("MiddleName"); - _LastName = dr.GetString("LastName"); - _Suffix = dr.GetString("Suffix"); - _CourtesyTitle = dr.GetString("CourtesyTitle"); - _PhoneNumber = dr.GetString("PhoneNumber"); - _CFGName = dr.GetString("CFGName"); - _UserLogin = dr.GetString("UserLogin"); - _UserName = dr.GetString("UserName"); - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - _UserMembershipCount = dr.GetInt32("MembershipCount"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("UserInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("UserInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] UserInfo.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 = "getUser"; - cm.Parameters.AddWithValue("@UID", criteria.UID); - 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("UserInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("UserInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - UserInfoExtension _UserInfoExtension = new UserInfoExtension(); - [Serializable()] - partial class UserInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(UserInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class UserInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is UserInfo) - { - // Return the ToString value - return ((UserInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/UserInfoList.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/UserInfoList.cs deleted file mode 100644 index fb63966c..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/UserInfoList.cs +++ /dev/null @@ -1,198 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// UserInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(UserInfoListConverter))] - public partial class UserInfoList : 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 (UserInfo tmp in this) - { - tmp.Changed += new UserInfoEvent(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 (UserInfo tmp in this) - { - tmp.Changed -= new UserInfoEvent(tmp_Changed); - } - } - #endregion - #region Factory Methods - public static UserInfoList _UserInfoList = null; - /// - /// Return a list of all projects. - /// - public static UserInfoList Get() - { - try - { - if (_UserInfoList != null) - return _UserInfoList; - UserInfoList tmp = DataPortal.Fetch(); - UserInfo.AddList(tmp); - tmp.AddEvents(); - _UserInfoList = tmp; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on UserInfoList.Get", ex); - } - } - // TODO: Add alternative gets - - //public static UserInfoList Get() - //{ - // try - // { - // return DataPortal.Fetch(new FilteredCriteria()); - // } - // catch (Exception ex) - // { - // throw new DbCslaException("Error on UserInfoList.Get", ex); - // } - //} - private UserInfoList() - { /* require use of factory methods */ } - #endregion - #region Data Access Portal - private void DataPortal_Fetch() - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] UserInfoList.DataPortal_Fetch", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getUsers"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) this.Add(new UserInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("UserInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("UserInfoList.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 - UserInfoListPropertyDescriptor pd = new UserInfoListPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class UserInfoListPropertyDescriptor : vlnListPropertyDescriptor - { - private UserInfo Item { get { return (UserInfo)_Item; } } - public UserInfoListPropertyDescriptor(UserInfoList collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class UserInfoListConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is UserInfoList) - { - // Return department and department role separated by comma. - return ((UserInfoList)value).Items.Count.ToString() + " Users"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/UserMembership.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/UserMembership.cs deleted file mode 100644 index efcb755c..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/UserMembership.cs +++ /dev/null @@ -1,612 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// UserMembership Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(UserMembershipConverter))] - public partial class UserMembership : 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 _UGID; - [System.ComponentModel.DataObjectField(true, true)] - public int UGID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyMembership != null) _UGID = _MyMembership.UGID; - return _UGID; - } - } - private Membership _MyMembership; - [System.ComponentModel.DataObjectField(true, true)] - public Membership MyMembership - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyMembership == null && _UGID != 0) _MyMembership = Membership.Get(_UGID); - return _MyMembership; - } - } - private int _GID; - public int GID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup != null) _GID = _MyGroup.GID; - return _GID; - } - } - private Group _MyGroup; - public Group MyGroup - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyGroup == null && _GID != 0) _MyGroup = Group.Get(_GID); - return _MyGroup; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_MyGroup != value) - { - _MyGroup = value; - PropertyHasChanged(); - } - } - } - private string _StartDate = string.Empty; - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _StartDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _StartDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_StartDate != tmp.ToString()) - { - _StartDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _EndDate = string.Empty; - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _EndDate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _EndDate = value; - try - { - SmartDate tmp = new SmartDate(value); - if (_EndDate != tmp.ToString()) - { - _EndDate = tmp.ToString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _Config = string.Empty; - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - 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 - { - return _DTS; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_DTS != value) - { - _DTS = value; - PropertyHasChanged(); - } - } - } - private string _UsrID = string.Empty; - public string UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _UsrID; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_UsrID != value) - { - _UsrID = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - private string _Group_GroupName = string.Empty; - public string Group_GroupName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_GroupName; - } - } - private int? _Group_GroupType; - public int? Group_GroupType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_GroupType; - } - } - private string _Group_Config = string.Empty; - public string Group_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_Config; - } - } - private DateTime _Group_DTS = new DateTime(); - public DateTime Group_DTS - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_DTS; - } - } - private string _Group_UsrID = string.Empty; - public string Group_UsrID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Group_UsrID; - } - } - // TODO: Check UserMembership.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 UserMembership - protected override object GetIdValue() - { - return _UGID; - } - // TODO: Replace base UserMembership.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current UserMembership - //public override string ToString() - //{ - // return base.ToString(); - //} - public override bool IsDirty - { - get { return base.IsDirty || (_MyGroup == null ? false : _MyGroup.IsDirty); } - } - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid) && (_MyGroup == null ? true : _MyGroup.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 (_MyGroup != null && (hasBrokenRules = _MyGroup.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(MyGroupRequired, "MyGroup"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "StartDate"); - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "UsrID"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UsrID", 100)); - // TODO: Add other validation rules - } - private static bool StartDateValid(UserMembership target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._StartDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool EndDateValid(UserMembership target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(target._EndDate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private static bool MyGroupRequired(UserMembership target, Csla.Validation.RuleArgs e) - { - if (target._GID == 0 && target._MyGroup == 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(UGID, ""); - //AuthorizationRules.AllowRead(GID, ""); - //AuthorizationRules.AllowWrite(GID, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowRead(DTS, ""); - //AuthorizationRules.AllowWrite(DTS, ""); - //AuthorizationRules.AllowRead(UsrID, ""); - //AuthorizationRules.AllowWrite(UsrID, ""); - } - 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 UserMembership New(Group myGroup) - { - return new UserMembership(myGroup); - } - internal static UserMembership Get(SafeDataReader dr) - { - return new UserMembership(dr); - } - public UserMembership() - { - MarkAsChild(); - _UGID = Membership.NextUGID; - _StartDate = _UserMembershipExtension.DefaultStartDate; - _DTS = _UserMembershipExtension.DefaultDTS; - _UsrID = _UserMembershipExtension.DefaultUsrID; - ValidationRules.CheckRules(); - } - private UserMembership(Group myGroup) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _StartDate = _UserMembershipExtension.DefaultStartDate; - _DTS = _UserMembershipExtension.DefaultDTS; - _UsrID = _UserMembershipExtension.DefaultUsrID; - _MyGroup = myGroup; - ValidationRules.CheckRules(); - } - internal UserMembership(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - #endregion - #region Data Access Portal - private void Fetch(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] UserMembership.FetchDR", GetHashCode()); - try - { - _UGID = dr.GetInt32("UGID"); - _GID = dr.GetInt32("GID"); - _StartDate = dr.GetSmartDate("StartDate").Text; - _EndDate = dr.GetSmartDate("EndDate").Text; - _Config = dr.GetString("Config"); - _DTS = dr.GetDateTime("DTS"); - _UsrID = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - _Group_GroupName = dr.GetString("Group_GroupName"); - _Group_GroupType = (int?)dr.GetValue("Group_GroupType"); - _Group_Config = dr.GetString("Group_Config"); - _Group_DTS = dr.GetDateTime("Group_DTS"); - _Group_UsrID = dr.GetString("Group_UsrID"); - } - catch (Exception ex) // FKItem Fetch - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("UserMembership.FetchDR", ex); - throw new DbCslaException("UserMembership.Fetch", ex); - } - MarkOld(); - } - internal void Insert(User myUser) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Membership.Add(cn, ref _UGID, myUser, _MyGroup, new SmartDate(_StartDate), new SmartDate(_EndDate), _Config, _DTS, _UsrID); - MarkOld(); - } - internal void Update(User myUser) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - _LastChanged = Membership.Update(cn, ref _UGID, myUser, _MyGroup, new SmartDate(_StartDate), new SmartDate(_EndDate), _Config, _DTS, _UsrID, ref _LastChanged); - MarkOld(); - } - internal void DeleteSelf(User myUser) - { - // 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"]; - Membership.Remove(cn, _UGID); - MarkNew(); - } - #endregion - // Standard Default Code - #region extension - UserMembershipExtension _UserMembershipExtension = new UserMembershipExtension(); - [Serializable()] - partial class UserMembershipExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDTS - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrID - { - 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 UserMembershipConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is UserMembership) - { - // Return the ToString value - return ((UserMembership)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create UserMembershipExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class UserMembership -// { -// partial class UserMembershipExtension : extensionBase -// { -// // TODO: Override automatic defaults -// public virtual SmartDate DefaultStartDate -// { -// get { return DateTime.Now.ToShortDateString(); } -// } -// public virtual DateTime DefaultDTS -// { -// get { return DateTime.Now; } -// } -// public virtual string DefaultUsrID -// { -// 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/OldGenerated/UserMemberships.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/UserMemberships.cs deleted file mode 100644 index 3b80a2b0..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/UserMemberships.cs +++ /dev/null @@ -1,290 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// UserMemberships Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(UserMembershipsConverter))] - public partial class UserMemberships : 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 UserMembership this[Membership myMembership] - { - get - { - foreach (UserMembership membership in this) - if (membership.UGID == myMembership.UGID) - return membership; - return null; - } - } - public new System.Collections.Generic.IList Items - { - get { return base.Items; } - } - public UserMembership GetItem(Membership myMembership) - { - foreach (UserMembership membership in this) - if (membership.UGID == myMembership.UGID) - return membership; - return null; - } - public UserMembership Add(Group myGroup) // One to Many - { - UserMembership membership = UserMembership.New(myGroup); - this.Add(membership); - return membership; - } - public void Remove(Membership myMembership) - { - foreach (UserMembership membership in this) - { - if (membership.UGID == myMembership.UGID) - { - Remove(membership); - break; - } - } - } - public bool Contains(Membership myMembership) - { - foreach (UserMembership membership in this) - if (membership.UGID == myMembership.UGID) - return true; - return false; - } - public bool ContainsDeleted(Membership myMembership) - { - foreach (UserMembership membership in DeletedList) - if (membership.UGID == myMembership.UGID) - return true; - return false; - } - #endregion - #region ValidationRules - public IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - foreach (UserMembership userMembership in this) - if ((hasBrokenRules = userMembership.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 UserMemberships New() - { - return new UserMemberships(); - } - internal static UserMemberships Get(SafeDataReader dr) - { - return new UserMemberships(dr); - } - public static UserMemberships GetByUID(int uid) - { - try - { - return DataPortal.Fetch(new UIDCriteria(uid)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on UserMemberships.GetByUID", ex); - } - } - private UserMemberships() - { - MarkAsChild(); - } - internal UserMemberships(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(UserMembership.Get(dr)); - this.RaiseListChangedEvents = true; - } - [Serializable()] - private class UIDCriteria - { - public UIDCriteria(int uid) - { - _UID = uid; - } - private int _UID; - public int UID - { - get { return _UID; } - set { _UID = value; } - } - } - private void DataPortal_Fetch(UIDCriteria criteria) - { - this.RaiseListChangedEvents = false; - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] UserMemberships.DataPortal_FetchUID", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getMembershipsByUID"; - cm.Parameters.AddWithValue("@UID", criteria.UID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) this.Add(new UserMembership(dr)); - } - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("UserMemberships.DataPortal_FetchUID", ex); - throw new DbCslaException("UserMemberships.DataPortal_Fetch", ex); - } - this.RaiseListChangedEvents = true; - } - internal void Update(User user) - { - this.RaiseListChangedEvents = false; - try - { - // update (thus deleting) any deleted child objects - foreach (UserMembership obj in DeletedList) - obj.DeleteSelf(user);// Deletes related record - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - // add/update any current child objects - foreach (UserMembership obj in this) - { - if (obj.IsNew) - obj.Insert(user); - else - obj.Update(user); - } - } - 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 - UserMembershipsPropertyDescriptor pd = new UserMembershipsPropertyDescriptor(this, i); - pds.Add(pd); - } - // return the property descriptor collection - return pds; - } - #endregion - } // Class - #region Property Descriptor - /// - /// Summary description for CollectionPropertyDescriptor. - /// - public partial class UserMembershipsPropertyDescriptor : vlnListPropertyDescriptor - { - private UserMembership Item { get { return (UserMembership)_Item; } } - public UserMembershipsPropertyDescriptor(UserMemberships collection, int index) : base(collection, index) { ;} - } - #endregion - #region Converter - internal class UserMembershipsConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is UserMemberships) - { - // Return department and department role separated by comma. - return ((UserMemberships)value).Items.Count.ToString() + " Memberships"; - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ZContent.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ZContent.cs deleted file mode 100644 index c8e38d85..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ZContent.cs +++ /dev/null @@ -1,857 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ZContent Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ZContentConverter))] - public partial class ZContent : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshZContents = new List(); - private void AddToRefreshList(List refreshZContents) - { - if (IsDirty) - refreshZContents.Add(this); - } - private void BuildRefreshList() - { - _RefreshZContents = new List(); - AddToRefreshList(_RefreshZContents); - } - private void ProcessRefreshList() - { - foreach (ZContent tmp in _RefreshZContents) - { - ZContentInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(ZContent zContent) - { - if (!_CacheList.Contains(zContent)) _CacheList.Add(zContent); // In AddToCache - } - protected static void RemoveFromCache(ZContent zContent) - { - while (_CacheList.Contains(zContent)) _CacheList.Remove(zContent); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (ZContent tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ContentID.ToString())) - { - _CacheByPrimaryKey[tmp.ContentID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ContentID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (ZContent tmp in remove) - RemoveFromCache(tmp); - } - protected static ZContent GetCachedByPrimaryKey(int contentID) - { - ConvertListToDictionary(); - string key = contentID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private int _ContentID; - [System.ComponentModel.DataObjectField(true, true)] - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private Content _MyContent; - [System.ComponentModel.DataObjectField(true, true)] - public Content MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = Content.Get(_ContentID); - return _MyContent; - } - } - private string _OldStepSequence = string.Empty; - public string OldStepSequence - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _OldStepSequence; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_OldStepSequence != value) - { - _OldStepSequence = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid); } - } - // TODO: Replace base ZContent.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ZContent - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check ZContent.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 ZContent - protected override object GetIdValue() - { - return _ContentID; - } - #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; - 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, "OldStepSequence"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("OldStepSequence", 32)); - //ValidationRules.AddDependantProperty("x", "y"); - _ZContentExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _ZContentExtension.AddInstanceValidationRules(ValidationRules); - // 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(ContentID, ""); - //AuthorizationRules.AllowRead(OldStepSequence, ""); - //AuthorizationRules.AllowWrite(OldStepSequence, ""); - _ZContentExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _ZContentExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _ZContentUnique = 0; - protected static int ZContentUnique - { get { return ++_ZContentUnique; } } - private int _MyZContentUnique = ZContentUnique; - public int MyZContentUnique - { get { return _MyZContentUnique; } } - protected ZContent() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(ContentID.ToString())) - { - List listZContent = _CacheByPrimaryKey[ContentID.ToString()]; // Get the list of items - while (listZContent.Contains(this)) listZContent.Remove(this); // Remove the item from the list - if (listZContent.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(ContentID.ToString()); // remove the list - } - } - public static ZContent New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a ZContent"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ZContent.New", ex); - } - } - public static ZContent New(Content myContent, string oldStepSequence) - { - ZContent tmp = ZContent.New(); - tmp._MyContent = myContent; - tmp.OldStepSequence = oldStepSequence; - return tmp; - } - public static ZContent MakeZContent(Content myContent, string oldStepSequence) - { - ZContent tmp = ZContent.New(myContent, oldStepSequence); - if (tmp.IsSavable) - { - ZContent 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 ZContent New(Content myContent) - { - ZContent tmp = ZContent.New(); - tmp._MyContent = myContent; - tmp.MarkClean(); - tmp.MarkAsChild(); - return tmp; - } - public static ZContent Get(int contentID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a ZContent"); - try - { - ZContent tmp = GetCachedByPrimaryKey(contentID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(contentID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ZContent - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ZContent.Get", ex); - } - } - public static ZContent Get(SafeDataReader dr) - { - if (dr.Read()) return new ZContent(dr); - return null; - } - internal ZContent(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int contentID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a ZContent"); - try - { - DataPortal.Delete(new PKCriteria(contentID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ZContent.Delete", ex); - } - } - public override ZContent Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a ZContent"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a ZContent"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a ZContent"); - try - { - BuildRefreshList(); - ZContent zContent = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(zContent);//Refresh the item in AllList - ProcessRefreshList(); - return zContent; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - public PKCriteria(int contentID) - { - _ContentID = contentID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - - // Database Defaults - - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContent.ReadData", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _OldStepSequence = dr.GetString("OldStepSequence"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZContent.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZContent.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContent.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 = "getZContent"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - 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("ZContent.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZContent.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("ZContent.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZContent.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContent.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addZContent"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", ContentID); - cm.Parameters.AddWithValue("@OldStepSequence", _OldStepSequence); - // 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(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContent.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZContent.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZContent.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, Content myContent, string oldStepSequence) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContent.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addZContent"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - cm.Parameters.AddWithValue("@OldStepSequence", oldStepSequence); - // 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("ZContent.Add", ex); - throw new DbCslaException("ZContent.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}] ZContent.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("ZContent.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}] ZContent.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateZContent"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@ContentID", ContentID); - cm.Parameters.AddWithValue("@OldStepSequence", _OldStepSequence); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZContent.SQLUpdate", ex); - _ErrorMessage = ex.Message; - if (!ex.Message.EndsWith("has been edited by another user.")) throw ex; - } - } - internal void Update(Content content) - { - if (!this.IsDirty) return; - if (base.IsDirty) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (IsNew) - _LastChanged = ZContent.Add(cn, content, _OldStepSequence); - else - _LastChanged = ZContent.Update(cn, content, _OldStepSequence, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, Content myContent, string oldStepSequence, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContent.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateZContent"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@ContentID", myContent.ContentID); - cm.Parameters.AddWithValue("@OldStepSequence", oldStepSequence); - 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("ZContent.Update", ex); - throw new DbCslaException("ZContent.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_ContentID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContent.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteZContent"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZContent.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZContent.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int contentID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContent.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteZContent"; - // Input PK Fields - cm.Parameters.AddWithValue("@ContentID", contentID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZContent.Remove", ex); - throw new DbCslaException("ZContent.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int contentID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(contentID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ZContent.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _ContentID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int contentID) - { - _ContentID = contentID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContent.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsZContent"; - cm.Parameters.AddWithValue("@ContentID", _ContentID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZContent.DataPortal_Execute", ex); - throw new DbCslaException("ZContent.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - ZContentExtension _ZContentExtension = new ZContentExtension(); - [Serializable()] - partial class ZContentExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - // 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 ZContentConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ZContent) - { - // Return the ToString value - return ((ZContent)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ZContentExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ZContent -// { -// partial class ZContentExtension : extensionBase -// { -// // TODO: Override automatic defaults -// 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/OldGenerated/ZContentInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ZContentInfo.cs deleted file mode 100644 index 3603bdba..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ZContentInfo.cs +++ /dev/null @@ -1,310 +0,0 @@ -// ======================================================================== -// 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 ZContentInfoEvent(object sender); - /// - /// ZContentInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ZContentInfoConverter))] - public partial class ZContentInfo : ReadOnlyBase, IDisposable - { - public event ZContentInfoEvent 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(ZContentInfo zContentInfo) - { - if (!_CacheList.Contains(zContentInfo)) _CacheList.Add(zContentInfo); // In AddToCache - } - protected static void RemoveFromCache(ZContentInfo zContentInfo) - { - while (_CacheList.Contains(zContentInfo)) _CacheList.Remove(zContentInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (ZContentInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.ContentID.ToString())) - { - _CacheByPrimaryKey[tmp.ContentID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.ContentID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (ZContentInfo tmp in remove) - RemoveFromCache(tmp); - } - protected static ZContentInfo GetCachedByPrimaryKey(int contentID) - { - ConvertListToDictionary(); - string key = contentID.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 ZContent _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _ContentID; - [System.ComponentModel.DataObjectField(true, true)] - public int ContentID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent != null) _ContentID = _MyContent.ContentID; - return _ContentID; - } - } - private ContentInfo _MyContent; - [System.ComponentModel.DataObjectField(true, true)] - public ContentInfo MyContent - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyContent == null && _ContentID != 0) _MyContent = ContentInfo.Get(_ContentID); - return _MyContent; - } - } - private string _OldStepSequence = string.Empty; - public string OldStepSequence - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _OldStepSequence; - } - } - // TODO: Replace base ZContentInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ZContentInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check ZContentInfo.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 ZContentInfo - protected override object GetIdValue() - { - return _ContentID; - } - #endregion - #region Factory Methods - private static int _ZContentInfoUnique = 0; - private static int ZContentInfoUnique - { get { return ++_ZContentInfoUnique; } } - private int _MyZContentInfoUnique = ZContentInfoUnique; - public int MyZContentInfoUnique - { get { return _MyZContentInfoUnique; } } - protected ZContentInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(ContentID.ToString())) return; - List listZContentInfo = _CacheByPrimaryKey[ContentID.ToString()]; // Get the list of items - while (listZContentInfo.Contains(this)) listZContentInfo.Remove(this); // Remove the item from the list - if (listZContentInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(ContentID.ToString()); // remove the list - } - public virtual ZContent Get() - { - return _Editable = ZContent.Get(_ContentID); - } - public static void Refresh(ZContent tmp) - { - string key = tmp.ContentID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ZContentInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ZContent tmp) - { - _OldStepSequence = tmp.OldStepSequence; - _ZContentInfoExtension.Refresh(this); - if (_MyContent != null) - { - _MyContent.Dispose();// Dispose related value - _MyContent = null;// Reset related value - } - OnChange();// raise an event - } - public static ZContentInfo Get(int contentID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a ZContent"); - try - { - ZContentInfo tmp = GetCachedByPrimaryKey(contentID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(contentID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ZContentInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ZContentInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal ZContentInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContentInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZContentInfo.Constructor", ex); - throw new DbCslaException("ZContentInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _ContentID; - public int ContentID - { get { return _ContentID; } } - public PKCriteria(int contentID) - { - _ContentID = contentID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContentInfo.ReadData", GetHashCode()); - try - { - _ContentID = dr.GetInt32("ContentID"); - _OldStepSequence = dr.GetString("OldStepSequence"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZContentInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZContentInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZContentInfo.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 = "getZContent"; - cm.Parameters.AddWithValue("@ContentID", criteria.ContentID); - 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("ZContentInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZContentInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - ZContentInfoExtension _ZContentInfoExtension = new ZContentInfoExtension(); - [Serializable()] - partial class ZContentInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(ZContentInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class ZContentInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ZContentInfo) - { - // Return the ToString value - return ((ZContentInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ZTransition.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ZTransition.cs deleted file mode 100644 index df5ac8a6..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ZTransition.cs +++ /dev/null @@ -1,857 +0,0 @@ -// ======================================================================== -// 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 -{ - /// - /// ZTransition Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ZTransitionConverter))] - public partial class ZTransition : BusinessBase, IDisposable, IVEHasBrokenRules - { - #region Log4Net - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - #region Refresh - private List _RefreshZTransitions = new List(); - private void AddToRefreshList(List refreshZTransitions) - { - if (IsDirty) - refreshZTransitions.Add(this); - } - private void BuildRefreshList() - { - _RefreshZTransitions = new List(); - AddToRefreshList(_RefreshZTransitions); - } - private void ProcessRefreshList() - { - foreach (ZTransition tmp in _RefreshZTransitions) - { - ZTransitionInfo.Refresh(tmp); - } - } - #endregion - #region Collection - private static List _CacheList = new List(); - protected static void AddToCache(ZTransition zTransition) - { - if (!_CacheList.Contains(zTransition)) _CacheList.Add(zTransition); // In AddToCache - } - protected static void RemoveFromCache(ZTransition zTransition) - { - while (_CacheList.Contains(zTransition)) _CacheList.Remove(zTransition); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (ZTransition tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.TransitionID.ToString())) - { - _CacheByPrimaryKey[tmp.TransitionID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.TransitionID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (ZTransition tmp in remove) - RemoveFromCache(tmp); - } - protected static ZTransition GetCachedByPrimaryKey(int transitionID) - { - ConvertListToDictionary(); - string key = transitionID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) return _CacheByPrimaryKey[key][0]; - return null; - } - #endregion - #region Business Methods - private string _ErrorMessage = string.Empty; - public string ErrorMessage - { - get { return _ErrorMessage; } - } - private int _TransitionID; - [System.ComponentModel.DataObjectField(true, true)] - public int TransitionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyTransition != null) _TransitionID = _MyTransition.TransitionID; - return _TransitionID; - } - } - private Transition _MyTransition; - [System.ComponentModel.DataObjectField(true, true)] - public Transition MyTransition - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyTransition == null && _TransitionID != 0) _MyTransition = Transition.Get(_TransitionID); - return _MyTransition; - } - } - private string _Oldto = string.Empty; - public string Oldto - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Oldto; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_Oldto != value) - { - _Oldto = value; - PropertyHasChanged(); - } - } - } - private byte[] _LastChanged = new byte[8];//timestamp - public override bool IsValid - { - get { return (IsNew && !IsDirty ? true : base.IsValid); } - } - // TODO: Replace base ZTransition.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ZTransition - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check ZTransition.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 ZTransition - protected override object GetIdValue() - { - return _TransitionID; - } - #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; - 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, "Oldto"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Oldto", 32)); - //ValidationRules.AddDependantProperty("x", "y"); - _ZTransitionExtension.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - } - protected override void AddInstanceBusinessRules() - { - _ZTransitionExtension.AddInstanceValidationRules(ValidationRules); - // 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(TransitionID, ""); - //AuthorizationRules.AllowRead(Oldto, ""); - //AuthorizationRules.AllowWrite(Oldto, ""); - _ZTransitionExtension.AddAuthorizationRules(AuthorizationRules); - } - protected override void AddInstanceAuthorizationRules() - { - //TODO: Who can read/write which fields - _ZTransitionExtension.AddInstanceAuthorizationRules(AuthorizationRules); - } - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - public int CurrentEditLevel - { get { return EditLevel; } } - private static int _ZTransitionUnique = 0; - protected static int ZTransitionUnique - { get { return ++_ZTransitionUnique; } } - private int _MyZTransitionUnique = ZTransitionUnique; - public int MyZTransitionUnique - { get { return _MyZTransitionUnique; } } - protected ZTransition() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromDictionaries(); - } - private void RemoveFromDictionaries() - { - RemoveFromCache(this); - if (_CacheByPrimaryKey.ContainsKey(TransitionID.ToString())) - { - List listZTransition = _CacheByPrimaryKey[TransitionID.ToString()]; // Get the list of items - while (listZTransition.Contains(this)) listZTransition.Remove(this); // Remove the item from the list - if (listZTransition.Count == 0) //If there are no items left in the list - _CacheByPrimaryKey.Remove(TransitionID.ToString()); // remove the list - } - } - public static ZTransition New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a ZTransition"); - try - { - return DataPortal.Create(); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ZTransition.New", ex); - } - } - public static ZTransition New(Transition myTransition, string oldto) - { - ZTransition tmp = ZTransition.New(); - tmp._MyTransition = myTransition; - tmp.Oldto = oldto; - return tmp; - } - public static ZTransition MakeZTransition(Transition myTransition, string oldto) - { - ZTransition tmp = ZTransition.New(myTransition, oldto); - if (tmp.IsSavable) - { - ZTransition 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 ZTransition New(Transition myTransition) - { - ZTransition tmp = ZTransition.New(); - tmp._MyTransition = myTransition; - tmp.MarkClean(); - tmp.MarkAsChild(); - return tmp; - } - public static ZTransition Get(int transitionID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a ZTransition"); - try - { - ZTransition tmp = GetCachedByPrimaryKey(transitionID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(transitionID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ZTransition - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ZTransition.Get", ex); - } - } - public static ZTransition Get(SafeDataReader dr) - { - if (dr.Read()) return new ZTransition(dr); - return null; - } - internal ZTransition(SafeDataReader dr) - { - ReadData(dr); - } - public static void Delete(int transitionID) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a ZTransition"); - try - { - DataPortal.Delete(new PKCriteria(transitionID)); - } - catch (Exception ex) - { - throw new DbCslaException("Error on ZTransition.Delete", ex); - } - } - public override ZTransition Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a ZTransition"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a ZTransition"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a ZTransition"); - try - { - BuildRefreshList(); - ZTransition zTransition = base.Save(); - RemoveFromDictionaries(); // if save is successful remove the previous Folder from the cache - AddToCache(zTransition);//Refresh the item in AllList - ProcessRefreshList(); - return zTransition; - } - catch (Exception ex) - { - throw new DbCslaException("Error on CSLA Save", ex); - } - } - #endregion - #region Data Access Portal - [Serializable()] - protected class PKCriteria - { - private int _TransitionID; - public int TransitionID - { get { return _TransitionID; } } - public PKCriteria(int transitionID) - { - _TransitionID = transitionID; - } - } - // TODO: If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create() - { - - // Database Defaults - - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransition.ReadData", GetHashCode()); - try - { - _TransitionID = dr.GetInt32("TransitionID"); - _Oldto = dr.GetString("oldto"); - dr.GetBytes("LastChanged", 0, _LastChanged, 0, 8); - MarkOld(); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZTransition.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZTransition.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransition.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 = "getZTransition"; - cm.Parameters.AddWithValue("@TransitionID", criteria.TransitionID); - 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("ZTransition.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZTransition.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("ZTransition.DataPortal_Insert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZTransition.DataPortal_Insert", ex); - } - finally - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransition.DataPortal_Insert", GetHashCode()); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - internal void SQLInsert() - { - if (!this.IsDirty) return; - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addZTransition"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@TransitionID", TransitionID); - cm.Parameters.AddWithValue("@Oldto", _Oldto); - // 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(); - // update child objects - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransition.SQLInsert", GetHashCode()); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZTransition.SQLInsert", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZTransition.SQLInsert", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, Transition myTransition, string oldto) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransition.Add", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addZTransition"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@TransitionID", myTransition.TransitionID); - cm.Parameters.AddWithValue("@Oldto", oldto); - // 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("ZTransition.Add", ex); - throw new DbCslaException("ZTransition.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}] ZTransition.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("ZTransition.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}] ZTransition.SQLUpdate", GetHashCode()); - try - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateZTransition"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@TransitionID", TransitionID); - cm.Parameters.AddWithValue("@Oldto", _Oldto); - cm.Parameters.AddWithValue("@LastChanged", _LastChanged); - // Output Calculated Columns - SqlParameter param_LastChanged = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param_LastChanged.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_LastChanged); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - // Save all values being returned from the Procedure - _LastChanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - MarkOld(); - // use the open connection to update child objects - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZTransition.SQLUpdate", ex); - _ErrorMessage = ex.Message; - if (!ex.Message.EndsWith("has been edited by another user.")) throw ex; - } - } - internal void Update(Transition transition) - { - if (!this.IsDirty) return; - if (base.IsDirty) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - if (IsNew) - _LastChanged = ZTransition.Add(cn, transition, _Oldto); - else - _LastChanged = ZTransition.Update(cn, transition, _Oldto, ref _LastChanged); - MarkOld(); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, Transition myTransition, string oldto, ref byte[] lastChanged) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransition.Update", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateZTransition"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@TransitionID", myTransition.TransitionID); - cm.Parameters.AddWithValue("@Oldto", oldto); - 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("ZTransition.Update", ex); - throw new DbCslaException("ZTransition.Update", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_TransitionID)); - } - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransition.DataPortal_Delete", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteZTransition"; - cm.Parameters.AddWithValue("@TransitionID", criteria.TransitionID); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZTransition.DataPortal_Delete", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZTransition.DataPortal_Delete", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int transitionID) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransition.Remove", 0); - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteZTransition"; - // Input PK Fields - cm.Parameters.AddWithValue("@TransitionID", transitionID); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZTransition.Remove", ex); - throw new DbCslaException("ZTransition.Remove", ex); - } - } - #endregion - #region Exists - public static bool Exists(int transitionID) - { - ExistsCommand result; - try - { - result = DataPortal.Execute(new ExistsCommand(transitionID)); - return result.Exists; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ZTransition.Exists", ex); - } - } - [Serializable()] - private class ExistsCommand : CommandBase - { - private int _TransitionID; - private bool _exists; - public bool Exists - { - get { return _exists; } - } - public ExistsCommand(int transitionID) - { - _TransitionID = transitionID; - } - protected override void DataPortal_Execute() - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransition.DataPortal_Execute", GetHashCode()); - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsZTransition"; - cm.Parameters.AddWithValue("@TransitionID", _TransitionID); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZTransition.DataPortal_Execute", ex); - throw new DbCslaException("ZTransition.DataPortal_Execute", ex); - } - } - } - #endregion - // Standard Default Code - #region extension - ZTransitionExtension _ZTransitionExtension = new ZTransitionExtension(); - [Serializable()] - partial class ZTransitionExtension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - // 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 ZTransitionConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ZTransition) - { - // Return the ToString value - return ((ZTransition)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace - - -//// The following is a sample Extension File. You can use it to create ZTransitionExt.cs -//using System; -//using System.Collections.Generic; -//using System.Text; -//using Csla; - -//namespace VEPROMS.CSLA.Library -//{ -// public partial class ZTransition -// { -// partial class ZTransitionExtension : extensionBase -// { -// // TODO: Override automatic defaults -// 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/OldGenerated/ZTransitionInfo.cs b/PROMS/VEPROMS.CSLA.Library/OldGenerated/ZTransitionInfo.cs deleted file mode 100644 index e00436b6..00000000 --- a/PROMS/VEPROMS.CSLA.Library/OldGenerated/ZTransitionInfo.cs +++ /dev/null @@ -1,310 +0,0 @@ -// ======================================================================== -// 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 ZTransitionInfoEvent(object sender); - /// - /// ZTransitionInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - [TypeConverter(typeof(ZTransitionInfoConverter))] - public partial class ZTransitionInfo : ReadOnlyBase, IDisposable - { - public event ZTransitionInfoEvent 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(ZTransitionInfo zTransitionInfo) - { - if (!_CacheList.Contains(zTransitionInfo)) _CacheList.Add(zTransitionInfo); // In AddToCache - } - protected static void RemoveFromCache(ZTransitionInfo zTransitionInfo) - { - while (_CacheList.Contains(zTransitionInfo)) _CacheList.Remove(zTransitionInfo); // In RemoveFromCache - } - private static Dictionary> _CacheByPrimaryKey = new Dictionary>(); - private static void ConvertListToDictionary() - { - List remove = new List(); - foreach (ZTransitionInfo tmp in _CacheList) - { - if (!_CacheByPrimaryKey.ContainsKey(tmp.TransitionID.ToString())) - { - _CacheByPrimaryKey[tmp.TransitionID.ToString()] = new List(); // Add new list for PrimaryKey - } - _CacheByPrimaryKey[tmp.TransitionID.ToString()].Add(tmp); // Add to Primary Key list - remove.Add(tmp); - } - foreach (ZTransitionInfo tmp in remove) - RemoveFromCache(tmp); - } - protected static ZTransitionInfo GetCachedByPrimaryKey(int transitionID) - { - ConvertListToDictionary(); - string key = transitionID.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 ZTransition _Editable; - private IVEHasBrokenRules HasBrokenRules - { - get - { - IVEHasBrokenRules hasBrokenRules = null; - if (_Editable != null) - hasBrokenRules = _Editable.HasBrokenRules; - return hasBrokenRules; - } - } - private int _TransitionID; - [System.ComponentModel.DataObjectField(true, true)] - public int TransitionID - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyTransition != null) _TransitionID = _MyTransition.TransitionID; - return _TransitionID; - } - } - private TransitionInfo _MyTransition; - [System.ComponentModel.DataObjectField(true, true)] - public TransitionInfo MyTransition - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (_MyTransition == null && _TransitionID != 0) _MyTransition = TransitionInfo.Get(_TransitionID); - return _MyTransition; - } - } - private string _Oldto = string.Empty; - public string Oldto - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _Oldto; - } - } - // TODO: Replace base ZTransitionInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ZTransitionInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - // TODO: Check ZTransitionInfo.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 ZTransitionInfo - protected override object GetIdValue() - { - return _TransitionID; - } - #endregion - #region Factory Methods - private static int _ZTransitionInfoUnique = 0; - private static int ZTransitionInfoUnique - { get { return ++_ZTransitionInfoUnique; } } - private int _MyZTransitionInfoUnique = ZTransitionInfoUnique; - public int MyZTransitionInfoUnique - { get { return _MyZTransitionInfoUnique; } } - protected ZTransitionInfo() - {/* require use of factory methods */ - AddToCache(this); - } - public void Dispose() - { - RemoveFromCache(this); - if (!_CacheByPrimaryKey.ContainsKey(TransitionID.ToString())) return; - List listZTransitionInfo = _CacheByPrimaryKey[TransitionID.ToString()]; // Get the list of items - while (listZTransitionInfo.Contains(this)) listZTransitionInfo.Remove(this); // Remove the item from the list - if (listZTransitionInfo.Count == 0) // If there are no items left in the list - _CacheByPrimaryKey.Remove(TransitionID.ToString()); // remove the list - } - public virtual ZTransition Get() - { - return _Editable = ZTransition.Get(_TransitionID); - } - public static void Refresh(ZTransition tmp) - { - string key = tmp.TransitionID.ToString(); - ConvertListToDictionary(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ZTransitionInfo tmpInfo in _CacheByPrimaryKey[key]) - tmpInfo.RefreshFields(tmp); - } - protected virtual void RefreshFields(ZTransition tmp) - { - _Oldto = tmp.Oldto; - _ZTransitionInfoExtension.Refresh(this); - if (_MyTransition != null) - { - _MyTransition.Dispose();// Dispose related value - _MyTransition = null;// Reset related value - } - OnChange();// raise an event - } - public static ZTransitionInfo Get(int transitionID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a ZTransition"); - try - { - ZTransitionInfo tmp = GetCachedByPrimaryKey(transitionID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(transitionID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") - { - tmp.Dispose(); // Clean-up ZTransitionInfo - tmp = null; - } - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ZTransitionInfo.Get", ex); - } - } - #endregion - #region Data Access Portal - internal ZTransitionInfo(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransitionInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZTransitionInfo.Constructor", ex); - throw new DbCslaException("ZTransitionInfo.Constructor", ex); - } - } - [Serializable()] - protected class PKCriteria - { - private int _TransitionID; - public int TransitionID - { get { return _TransitionID; } } - public PKCriteria(int transitionID) - { - _TransitionID = transitionID; - } - } - private void ReadData(SafeDataReader dr) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransitionInfo.ReadData", GetHashCode()); - try - { - _TransitionID = dr.GetInt32("TransitionID"); - _Oldto = dr.GetString("oldto"); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ZTransitionInfo.ReadData", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZTransitionInfo.ReadData", ex); - } - } - private void DataPortal_Fetch(PKCriteria criteria) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ZTransitionInfo.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 = "getZTransition"; - cm.Parameters.AddWithValue("@TransitionID", criteria.TransitionID); - 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("ZTransitionInfo.DataPortal_Fetch", ex); - _ErrorMessage = ex.Message; - throw new DbCslaException("ZTransitionInfo.DataPortal_Fetch", ex); - } - } - #endregion - // Standard Refresh - #region extension - ZTransitionInfoExtension _ZTransitionInfoExtension = new ZTransitionInfoExtension(); - [Serializable()] - partial class ZTransitionInfoExtension : extensionBase { } - [Serializable()] - class extensionBase - { - // Default Refresh - public virtual void Refresh(ZTransitionInfo tmp) { } - } - #endregion - } // Class - #region Converter - internal class ZTransitionInfoConverter : ExpandableObjectConverter - { - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destType) - { - if (destType == typeof(string) && value is ZTransitionInfo) - { - // Return the ToString value - return ((ZTransitionInfo)value).ToString(); - } - return base.ConvertTo(context, culture, value, destType); - } - } - #endregion -} // Namespace diff --git a/PROMS/VEPROMS.CSLA.Library/Sql commands/FormatStepTypeTree.sql.bak b/PROMS/VEPROMS.CSLA.Library/Sql commands/FormatStepTypeTree.sql.bak deleted file mode 100644 index f427a1f6..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Sql commands/FormatStepTypeTree.sql.bak +++ /dev/null @@ -1,7 +0,0 @@ -SELECT FormatID,20000+T.C.value('@Index','int') AS MyType -, T.C.value('@Type','varchar(255)') AS MyType -, T.C.value('(StepEditData/TypeMenu/@MenuItem)[1]','varchar(255)') AS MyMenuItem -,T.C.value('@ParentType','varchar(255)') AS MyParentType -FROM Formats -Cross Apply Data.nodes('/PlantFormat/FormatData/StepData/Step') T(C) -where formatid = 79 \ No newline at end of file diff --git a/PROMS/VEPROMS.CSLA.Library/Sql commands/TestingUsages.sql.bak b/PROMS/VEPROMS.CSLA.Library/Sql commands/TestingUsages.sql.bak deleted file mode 100644 index a5d804f1..00000000 --- a/PROMS/VEPROMS.CSLA.Library/Sql commands/TestingUsages.sql.bak +++ /dev/null @@ -1,6 +0,0 @@ -use VEPROMS -set nocount on -select contentid, cast(text as varchar(50)) from contents where contentid = 1140 -select itemid from items where contentid = 1140 -select TOId, RangeID from transitions where fromid = 1140 -select roid from rousages where contentid = 1140 diff --git a/PROMS/VEPROMS.CSLA.Library/myfile/Extension/ItemExt.cs b/PROMS/VEPROMS.CSLA.Library/myfile/Extension/ItemExt.cs deleted file mode 100644 index 23ce25ec..00000000 --- a/PROMS/VEPROMS.CSLA.Library/myfile/Extension/ItemExt.cs +++ /dev/null @@ -1,2093 +0,0 @@ -#define ItemWithContent - -using System; -using System.Collections.Generic; -using System.Text; -using Csla; -using Csla.Data; -using System.Data; -using System.Data.SqlClient; -using System.Xml; -using System.Drawing; -using System.Text.RegularExpressions; - -namespace VEPROMS.CSLA.Library -{ - #region Item - public partial class Item : IVEDrillDown - { - public static void ShowAllocated(string title) - { - Console.WriteLine("{0} - {1} Items in the dictionary", title, _CacheByPrimaryKey.Count); - foreach (List itmlst in _CacheByPrimaryKey.Values) - foreach(Item itm in itmlst) - Console.WriteLine("Item {0} UniqueID {1}", itm.ItemID, itm.MyItemUnique); - Console.WriteLine("- - - - - -"); - } - - public override string ToString() - { - return string.Format("{0} {1}", MyContent.Number, MyContent.Text).Trim(); - } - // TODO: Move to ItemInfo Extension - - #region IVEDrillDown - public System.Collections.IList GetChildren() - { - return this.MyContent.ContentParts; - } - public bool HasChildren - { - get { return this.MyContent.ContentPartCount > 0; } - } - public Item MyProcedure - { - get - { - // Walk up active parents until the parent is not an item - Item tmp = this; - while (tmp.ActiveParent.GetType() != typeof(DocVersion)) tmp = (Item)tmp.ActiveParent; - return tmp; - } - } private IVEDrillDown _ActiveParent = null; - public IVEDrillDown ActiveParent - { - get - { - if (_ActiveParent == null) - { - if (MyPrevious != null) - _ActiveParent = _MyPrevious.ActiveParent; - else - { - if (ItemDocVersionCount > 0) - _ActiveParent = this.ItemDocVersions[0].MyDocVersion; - else - { - if (this.ItemParts == null || this.ItemPartCount == 0) - _ActiveParent = this; - else - _ActiveParent = this.ItemParts[0].MyContent.ContentItems[0].MyItem; - } - } - } - return _ActiveParent == this ? null : _ActiveParent; - } - } - private Format _ActiveFormat = null;// Added to cache ActiveFormat - public Format ActiveFormat - { - get - { - if (_ActiveFormat == null) - _ActiveFormat = (LocalFormat != null ? LocalFormat : ActiveParent.ActiveFormat); - return _ActiveFormat; - } - set - { - _ActiveFormat = null; // Reset - } - } - public Format LocalFormat - { - get { return MyContent.MyFormat; } - } - public ConfigDynamicTypeDescriptor MyConfig - { - get { return null; } - } - #endregion - public void MoveItem(IVEDrillDownReadOnly pInfo, int index) - { - bool wasfirstchild = false; - ItemInfo parentInfo = pInfo as ItemInfo; - DocVersionInfo parentInfoDV = pInfo as DocVersionInfo; - IList children = null; - E_FromType partType = 0; // this is needed later to determine sub-group type. - if (parentInfo != null) - { - // this may have subgroups, need to use part type to get children list... - ItemInfo thisinfo = ItemInfo.Get(ItemID); - partType = thisinfo.FirstSibling.ItemParts[0].PartType; - children = (IList)parentInfo.Lookup((int)partType); - } - else - children = (IList)parentInfoDV.GetChildren(); - int numChild = children.Count; - - if (this.MyPrevious == null) wasfirstchild = true; - Item origNextItem = null; - - // First, remove from this item from its list. To do this, get the current item's next point and redirect it's myprevious - // to this item's previous... - if (NextItems != null && NextItems.Count > 0) - { - origNextItem = NextItems.Items[0]; - origNextItem.MyPrevious = this.MyPrevious; - this.Save(); - } - - // check to see if the item is being moved into the middle of some items. newPreviousItem is the item defined - // by index-1, i.e. inserting below newPreviousItem. - ItemInfo newPreviousInfo = (index == 0) ? null : children[index - 1]; - ItemInfo newNextInfo = (index == children.Count) ? null : children[index]; - - // Adjust the new next proc to be me. - if (newNextInfo != null) - { - using (Item newNextItem = newNextInfo.Get()) - { - newNextItem.MyPrevious = this; - newNextItem.Save().Dispose(); - } - } - - // adjust the previous node, i.e. may either be at same level or, if first in list, adjust the parent... - // if 'newPreviousItem' isn't null, then adding to the middle of the list. - if (newPreviousInfo != null) - { - using (Item newPreviousItem = newPreviousInfo.Get()) - { - MyPrevious = newPreviousItem; - Save(); - } - } - // newPreviousInfo == null if moving into first child, and wasfirstchild == true if moving out of first child. - // This will require adjusting the DocVersion to point to the correct first child if a procedure is moved. - if (newPreviousInfo == null || wasfirstchild) - { - if (parentInfo != null) // Moving Item within procedure, i.e. moving a section or step - { - using (Item parentItem = parentInfo.Get()) - { - // moving first child out... reset parent to point to the original next item - if (wasfirstchild) - parentItem.MyContent.ContentParts[(int)partType].MyItem = origNextItem; - else - parentItem.MyContent.ContentParts[(int)partType].MyItem = this; - parentItem.Save().Dispose(); - } - } - else if (parentInfoDV != null) // Moving Item (Procedure) within DocVersion - { - using (DocVersion parentItemDV = parentInfoDV.Get()) - { - ItemInfo firstinfo = parentInfoDV.FirstChild(); - parentItemDV.MyItem = wasfirstchild?parentInfoDV.Procedures[1].Get():this; - parentItemDV.Save().Dispose(); - if (!wasfirstchild && firstinfo != null) - { - using (Item firstchild = firstinfo.Get()) - { - firstchild.MyPrevious = this; - firstchild.Save().Dispose(); - } - } - } - } - if (!wasfirstchild) - { - this.MyPrevious = null; - this.Save(); - } - if (origNextItem != null) origNextItem.Dispose(); - if (parentInfo != null) - parentInfo.MyContent.RefreshContentParts(); - if (parentInfoDV != null) - parentInfoDV.ResetProcedures(); - } - - } - protected static int MakeNewItem(IVEDrillDownReadOnly parentInfoDD, ItemInfo previousInfo, string number, string title, int type, E_FromType partType) - { - int newitemid = 0; - if (parentInfoDD == null) - parentInfoDD = previousInfo.ActiveParent; - ItemInfo parentInfo = parentInfoDD as ItemInfo; - DocVersionInfo parentInfoDV = parentInfoDD as DocVersionInfo; - using (Content cont = Content.New(number, title, type, null, null)) - { - using (Item fromitem = previousInfo == null ? null : previousInfo.Get()) - { - ItemInfo nextInfo = null; // Check to see if the item is being inserted in the middle of some items. - if (previousInfo != null && previousInfo.NextItems != null && previousInfo.NextItems.Count > 0) - nextInfo = previousInfo.NextItems[0]; - using (Item itm = Item.MakeItem(fromitem, cont)) - { - newitemid = itm.ItemID; - if (nextInfo != null) - { - using (Item nextItem = nextInfo.Get()) - { - nextItem.MyPrevious = itm;// Aim the next item back at the new item. - nextItem.Save().Dispose(); - } - } - if (fromitem == null) - { - if (parentInfo != null) // Adding Item to Procedure, Section or Step - { - using (Item parentItem = parentInfo.Get()) - { - ItemInfo firstinfo = parentInfo.FirstChild(partType); - if (firstinfo != null) - { - using (Item firstchild = firstinfo.Get()) - { - parentItem.MyContent.ContentParts[(int)partType].MyItem = itm;// First update the parent to point to the new first child - parentItem.Save().Dispose(); - firstchild.MyPrevious = itm;// Aim the old first child to point to the new first child. - firstchild.Save().Dispose(); - } - } - else - { - parentItem.MyContent.ContentParts.Add((int)partType, itm);// update the parent to point to the new first child - parentItem.Save().Dispose(); - } - } - } - if (parentInfoDV != null) // Adding Item (Procedure) to DocVersion - { - using (DocVersion parentItemDV = parentInfoDV.Get()) - { - ItemInfo firstinfo = parentInfoDV.FirstChild(); - parentItemDV.MyItem = itm;// First update the parent to point to the new first child - parentItemDV.Save().Dispose(); - if (firstinfo != null) - { - using (Item firstchild = firstinfo.Get()) - { - firstchild.MyPrevious = itm;// Aim the old first child to point to the new first child. - firstchild.Save().Dispose(); - } - } - } - } - - } - } - } - } - if (parentInfo != null) - parentInfo.MyContent.RefreshContentParts(); - if (parentInfoDV != null) - parentInfoDV.ResetProcedures(); - return newitemid; - } - } - #endregion - #region ItemInfo - public partial class ItemInfo:IVEDrillDownReadOnly - { - protected void ExtensionRefreshFields(Item tmp) - { - _ActiveParent = null; - } - #region LoadAtOnce2 - public static ItemInfo GetItemAndChildren2(int? itemID) - { - try - { - ItemInfo tmp = DataPortal.Fetch(new ItemAndChildrenCriteria2(itemID)); - AddToCache(tmp); - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetItemAndChildren2", ex); - } - } - // Criteria to get Item and children - [Serializable()] - private class ItemAndChildrenCriteria2 - { - public ItemAndChildrenCriteria2(int? itemID) - { - _ItemID = itemID; - } - private int? _ItemID; - public int? ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - } - // Data Portal to Get Item and Children - private void DataPortal_Fetch(ItemAndChildrenCriteria2 criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - ApplicationContext.LocalContext["cn"] = cn; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getItem"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - if (!dr.Read()) - { - _ErrorMessage = "No Record Found"; - return; - } - ReadData(dr); - } - } - SpinThroughChildren(); - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - catch (Exception ex) - { - Database.LogException("ItemInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ItemInfoList.DataPortal_Fetch", ex); - } - RemoveFromCache(this); - } - private void SpinThroughChildren() - { - if(MyContent.ContentPartCount > 0) - foreach(PartInfo partInfo in MyContent.ContentParts) - foreach (ItemInfo itemInfo in partInfo.MyItems) - itemInfo.SpinThroughChildren(); - } - #endregion - #region LoadAtOnce - // Method to Get Item and children - public static ItemInfo GetItemAndChildren(int? itemID,int? parentID) - { - try - { - ItemInfo tmp = DataPortal.Fetch(new ItemAndChildrenCriteria(itemID,parentID)); - AddToCache(tmp); - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - // Criteria to get Item and children - [Serializable()] - private class ItemAndChildrenCriteria - { - public ItemAndChildrenCriteria(int? itemID, int? parentID) - { - _ItemID = itemID; - _ParentID = parentID; - } - private int? _ItemID; - public int? ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private int? _ParentID; - public int? ParentID - { - get { return _ParentID; } - set { _ParentID = value; } - } - } - // Data Portal to Get Item and Children - private void DataPortal_Fetch(ItemAndChildrenCriteria criteria) - { - //ItemInfo tmp = null; - Dictionary lookup = new Dictionary(); ; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_ListItemAndChildren"; - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - cm.Parameters.AddWithValue("@ParentID", criteria.ParentID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) - { - if (dr.GetInt32("Level")==0) - { - //tmp = itemInfo; - ReadData(dr); - AddContent(dr); - lookup[this.ItemID] = this; - } - else - { - 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; - case 2: - itemInfo = new StepInfo(dr); - break; - } - // Load Children - itemInfo.AddContent(dr); - ItemInfo parent = lookup[dr.GetInt32("ParentID")]; - itemInfo._ActiveParent = parent; - itemInfo._ActiveSection = (itemInfo.IsSection ? itemInfo : parent._ActiveSection); - parent.AddPart(dr, itemInfo); - lookup.Add(itemInfo.ItemID, itemInfo); - } - } - //Console.WriteLine("I'm here {0}",this.MyContent.ContentPartCount); - } - } - } - } - catch (Exception ex) - { - Database.LogException("ItemInfoList.DataPortal_Fetch", ex); - throw new DbCslaException("ItemInfoList.DataPortal_Fetch", ex); - } - } - private void AddPart(SafeDataReader dr, ItemInfo itemInfo) - { - // Either a new PartInfo or an existing PartInfo - if (dr.IsDBNull(dr.GetOrdinal("PreviousID"))) - { - //PartInfo prt = new PartInfo(dr, itemInfo); - _MyContent.AddPart(dr, itemInfo); - } - else - { - foreach (PartInfo pi in MyContent.ContentParts) - { - if (dr.GetInt32("FromType") == (int)pi.PartType) - { - if (pi._MyItems == null) - pi._MyItems = new ItemInfoList(itemInfo); - else - pi.MyItems.AddItem(itemInfo); - } - } - } - } - #endregion - public bool IsCautionStructure - { - get - { - return ((ItemPartCount > 0) && (ItemParts[0].PartType == E_FromType.Caution)); - } - } - public bool IsNoteStructure - { - get - { - return ((ItemPartCount > 0) && (ItemParts[0].PartType == E_FromType.Note)); - } - } - - public bool IsCautionStructureFirstSib - { - get - { - return ((FirstSibling.ItemPartCount > 0) && (FirstSibling.ItemParts[0].PartType == E_FromType.Caution)); - } - } - public bool IsNoteStructureFirstSib - { - get - { - return ((FirstSibling.ItemPartCount > 0) && (FirstSibling.ItemParts[0].PartType == E_FromType.Note)); - } - } - - public bool IsType(string type) - { - int stepType = ((int)MyContent.Type) % 10000; - StepDataList sdlist = ActiveFormat.PlantFormat.FormatData.StepDataList; - StepData sd = sdlist[stepType]; - // TODO: RHM20071115 while (sd.Index != 0) - // TODO: RHM20071115 { - // TODO: RHM20071115 if (sd.Type == type) return true; - // TODO: RHM20071115 sd = sdlist[sd.ParentType]; - // TODO: RHM20071115 } - return false; - } - public bool IsCaution - { - get - { - return IsType("CAUTION"); - } - } - public bool IsNote - { - get - { - return IsType("NOTE"); - } - } - public bool IsTable - { - get - { - return IsType("TABLE"); - } - } - public bool IsFigure - { - get - { - return IsType("FIGURE"); - } - } - public bool IsOr - { - get - { - return IsType("OR"); - } - } - public bool IsAnd - { - get - { - return IsType("AND"); - } - } - public bool IsEquipmentList - { - get - { - return IsType("EQUIPMENTLIST"); - } - } - public bool IsTitle - { - get - { - return IsType("TITLE"); - } - } - public bool IsAccPages - { - get - { - return IsType("ACCPAGES"); - } - } - public bool IsParagraph - { - get - { - return IsType("PARAGRAPH"); - } - } - public bool IsDefault - { - get - { - return IsType("DEFAULT"); - } - } - public bool IsContAcSequential - { - get - { - return IsType("CONTACSEQUENTIAL"); - } - } - public bool IsHigh - { - get - { - // check to see if ActiveParent is a section, if so it is a high level step - if (MyContent.Type / 10000 != 2) return false; - ItemInfo parent = ActiveParent as ItemInfo; - if (parent == null) return false; - if ((parent.MyContent.Type / 10000) == 1) - return true; - return false; - } - } - public bool IsSequential - { - get - { - if (((MyContent.Type / 10000) == 2) && ((((int)MyContent.Type) % 10000) == 1)) return true; - return false; - } - } - public bool IsRNO - { - get - { - return ((ItemPartCount > 0) && (ItemParts[0].PartType == E_FromType.RNO)); - } - } - public bool IsInRNO - { - get - { - if (IsHigh) return false; - if (IsRNO) return true; - ItemInfo parent = ActiveParent as ItemInfo; - if (parent == null) return false; - return parent.IsInRNO; - } - } - public int RNOLevel - { - get - { - return ((IsProcedure || IsSection || IsHigh)?0:(IsRNO?1:0)+((ItemInfo)ActiveParent).RNOLevel); - } - } - public int Columns - { - get - { - // check config value on my section, if null/default use Pmode of active format - SectionInfo si = SectionInfo.Get(ActiveSection.ItemID); //ActiveSection as SectionInfo; - if (si != null) - { - if (si.SectionConfig.Section_ColumnMode != SectionConfig.SectionColumnMode.Default) - return (int)si.SectionConfig.Section_ColumnMode; - } - return ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.PMode ?? 2; - } - } - /// - /// FormatStepType - Maps to step type in format file. All types map directly from step type in content - /// to step type in format except rno. The '39' is the RNO index in the format file. Note that we - /// could loop through the format's stepdata to find rnotype if we want this to be more flexible? - /// - public int FormatStepType - { - get - { - if (IsRNO) return 40; - else return (((int)MyContent.Type) % 10000); - } - } - /// - /// - /// - public StepData FormatStepData - { - get - { - if (IsRNO) return ActiveFormat.PlantFormat.FormatData.StepDataList[40]; - int typ = (int)MyContent.Type - 20000; - foreach (StepData sd in ActiveFormat.PlantFormat.FormatData.StepDataList) - { - if (sd.Index == typ) return sd; - } - return null; - } - } - public ItemInfo FirstSibling - { - get - { - ItemInfo temp = this; - while (temp.MyPrevious != null) temp = temp.MyPrevious; - return temp; - } - } - public ItemInfo LastSibling - { - get - { - ItemInfo temp = this; - while (temp.NextItems != null) temp = temp.NextItems[0]; - return temp; - } - } - public ItemInfo LastChild(E_FromType partType) - { - ItemInfoList myitems = Lookup((int)partType); - if (myitems !=null) return myitems[myitems.Count-1]; - return null; - } - public ItemInfo FirstChild(E_FromType partType) - { - ItemInfoList myitems = Lookup((int)partType); - if (myitems != null) return myitems[0]; - return null; - } - public bool IsSubStep - { - get - { - ItemInfo temp = FirstSibling; - return ((temp.ItemPartCount > 0) && (temp.ItemParts[0].PartType == E_FromType.Step)); - } - } - public bool IsInSubStep - { - get - { - if (IsHigh) return false; - if (IsSubStep) return true; - ItemInfo parent = ActiveParent as ItemInfo; - if (parent == null) return false; - return parent.IsInSubStep; - } - } - public bool IsInFirstLevelSubStep - { - get - { - ItemInfo temp = FirstSibling; - if(temp.ActiveParent.GetType() == typeof(VEPROMS.CSLA.Library.DocVersionInfo))return false; - while (((ItemInfo)temp.ActiveParent).IsHigh == false) temp = ((ItemInfo)temp.ActiveParent).FirstSibling; - return temp.IsSubStep; - } - } - public bool IsStepSection - { - get - { - if (MyContent.Type == 10000) return true; - return false; - } - } - public bool IsSection - { - get - { - if ((MyContent.Type / 10000) == 1) return true; - return false; - } - } - public bool IsDefaultSection - { - get - { - // check to see if ActiveParent is a section, if so it is a high level step - if (MyContent.Type / 10000 != 1) return false; - // get procedure section and then - ItemInfo parent = (ItemInfo)ActiveParent; - if (!parent.IsProcedure) return false; - ProcedureConfig pc = (ProcedureConfig)parent.MyConfig; - int sectstartid = -1; - string ss = pc == null ? null : pc.SectionStart; - if (ss != null) sectstartid = System.Convert.ToInt32(ss); - else return false; - if (ItemID == sectstartid) return true; - return false; - } - } - public bool IsProcedure - { - get - { - if ((MyContent.Type / 10000) == 0) return true; - return false; - } - } - public bool IsStep - { - get - { - if ((MyContent.Type / 10000) == 2) return true; - return false; - } - } - private E_FromType ItemType - { - get - { - if (MyContent.Type == 0) return E_FromType.Procedure; - if (MyContent.Type < 20000) return E_FromType.Section; - return E_FromType.Step; - } - } - public Item GetByType() - { - Item tmp = null; - switch (ItemType) - { - case E_FromType.Procedure: - tmp = Procedure.Get(_ItemID); - break; - //case E_FromType.Section: - // itemInfo = new Section(dr); - // break; - //default: - // itemInfo = new Step(dr); - // break; - } - return tmp; - } - private int? _Ordinal; - public int Ordinal - { - get - { - if (_Ordinal == null) - { - if (MyPrevious != null) - _Ordinal = MyPrevious.Ordinal + 1; - else - _Ordinal = 1; - } - return (int) _Ordinal; - } - } - public string CslaType - { get { return this.GetType().FullName; } } - public override string ToString() - { - //Item editable = Item.GetExistingByPrimaryKey(_ItemID); - //return string.Format("{0}{1} {2}", (editable == null ? "" : (editable.IsDirty ? "* " : "")), - // (MyContent.Type >= 20000 ? Ordinal.ToString() + "." : MyContent.Number), MyContent.Text); - ContentInfo cont = MyContent; - string number = cont.Number; - if (cont.Type >= 20000) number = Ordinal.ToString() + "."; - return string.Format("{0} {1}", number, cont.Text).Trim(); - //return string.Format("{0} {1}", cont.Number, cont.Text); - //return "Now is the time for all good men to come to the aid of their country!"; - } - //public string ToString(string str,System.IFormatProvider ifp) - //{ - // return ToString(); - //} - public string nz(string str, string def) - { - return (str == null ? def : str); - } - internal string _SearchDVPath; - public string SearchDVPath - { - get { return _SearchDVPath; } - } - internal string _SearchPath; - public string SearchPath - { - get { return _SearchPath; } - } - public string ShortSearchPath - { - get { return Regex.Replace(_SearchPath, "\x11.*?\x07", "\x07"); } - } - internal int _SearchAnnotationID; - public int SearchAnnotationID - { - get { return _SearchAnnotationID; } - } - internal string _SearchAnnotationText; - public string SearchAnnotationText - { - get { return _SearchAnnotationText; } - } - internal string _SearchAnnotationType; - public string SearchAnnotationType - { - get { return _SearchAnnotationType; } - } - public string DisplayText - { - get { return ConvertToDisplayText(MyContent.Text); } - } - public static string ConvertToDisplayText(string txt) - { - string retval = txt; - retval = StripRtfFormatting(retval); - retval = StripLinks(retval); - retval = ReplaceSpecialCharacters(retval); - return retval; - } - private static string StripRtfFormatting(string rtf) - { - string retval = rtf; - retval = Regex.Replace(retval, @"\\b0 ?", ""); - retval = Regex.Replace(retval, @"\\b ?", ""); - retval = Regex.Replace(retval, @"\\ul0 ?", ""); - retval = Regex.Replace(retval, @"\\ul ?", ""); - retval = Regex.Replace(retval, @"\\i0 ?", ""); - retval = Regex.Replace(retval, @"\\i ?", ""); - retval = Regex.Replace(retval, @"\\super ?", ""); - retval = Regex.Replace(retval, @"\\sub ?", ""); - retval = Regex.Replace(retval, @"\\nosupersub ?", ""); - return retval; - } - private static string StripLinks(string rtf) - { - string retval = rtf; - retval = Regex.Replace(retval, @"\\v.*?\\v0", ""); - retval = retval.Replace("\u252C", "");// Unicode 9516 Transition - retval = retval.Replace("\u2566", "");// Unicode 9574 Transition - retval = retval.Replace("\u0015", "");// Unicode 21 RO - return retval; - } - private static string ReplaceSpecialCharacter(Match m) - { - StringBuilder sb = new StringBuilder(); - int i = int.Parse(m.ToString().Substring(2,m.ToString().Length-3)); - sb.Append((char)i); - return sb.ToString(); - } - private static string ReplaceSpecialHexCharacter(Match m) - { - StringBuilder sb = new StringBuilder(); - int i = int.Parse(m.ToString().Substring(2), System.Globalization.NumberStyles.HexNumber); - sb.Append((char)i); - return sb.ToString(); - } - private static string ReplaceSpecialCharacters(string rtf) - { - string retval = rtf; - retval = retval.Replace("`", "\u00BA");// Degree - retval = Regex.Replace(retval, @"\\u[0-9]+[?]", new MatchEvaluator(ReplaceSpecialCharacter)); - retval = Regex.Replace(retval, @"\\'[0-9A-Fa-f][0-9A-Fa-f]", new MatchEvaluator(ReplaceSpecialHexCharacter)); - return retval; - } - public string Path - { - get - { - string number = (MyContent.Type >= 20000 ? Ordinal.ToString() + "." : (nz(MyContent.Number,"")==""? MyContent.Text: MyContent.Number)); - ItemInfo parent = this; - while (parent.MyPrevious != null) parent = parent.MyPrevious; - if (parent.ItemPartCount == 0) - return number + ", " + MyContent.Text; - else - { - PartInfo partInfo = parent.ItemParts[0]; - return partInfo.MyContent.ContentItems.Items[0].Path + " " + ((E_FromType)partInfo.FromType).ToString() + " " + number; - } - } - } - public ContentInfo ParentContent - { - get - { - string number = (MyContent.Type >= 20000 ? Ordinal.ToString() + "." : (nz(MyContent.Number, "") == "" ? MyContent.Text : MyContent.Number)); - ItemInfo parent = this; - while (parent.MyPrevious != null) parent = parent.MyPrevious; - if (parent.ItemPartCount == 0) - return null; - else - { - return parent.ItemParts[0].MyContent; - } - } - } - public ItemInfo MyParent - { - get - { - //if (ItemDocVersionCount > 0) return ItemDocVersions[0]; Need to create one interface to support Folders, DocVersions and Items - ContentInfo parentContent = ParentContent; - if (parentContent == null || parentContent.ContentItemCount == 0) return null; - return parentContent.ContentItems[0]; - } - } - private ItemInfoList Lookup(int fromType, ref ItemInfoList itemInfoList) - { - if (itemInfoList == null) - itemInfoList = Lookup(fromType); - return itemInfoList; - } - internal ItemInfoList Lookup(int fromType) - { - ItemInfoList itemInfoList = null; - if (MyContent.ContentPartCount != 0) - foreach (PartInfo partInfo in MyContent.ContentParts) - if (partInfo.FromType == fromType) - { - itemInfoList = partInfo._MyItems = ItemInfoList.GetList(partInfo.ItemID, partInfo.FromType); - return itemInfoList; - } - return null; - } - public static void ResetParts(int itemID) - { - string key = itemID.ToString(); - if (_CacheByPrimaryKey.ContainsKey(key)) - foreach (ItemInfo itm in _CacheByPrimaryKey[key]) - itm.ResetParts(); - } - public void ResetParts() - { - _Procedures = null; - _Sections = null; - _Cautions = null; - _Notes = null; - _RNOs = null; - _Steps = null; - _Tables = null; - } - private ItemInfoList _Procedures; - public ItemInfoList Procedures - { get { return Lookup(1,ref _Procedures); } } - private ItemInfoList _Sections; - public ItemInfoList Sections - { get { return Lookup(2,ref _Sections); } } - private ItemInfoList _Cautions; - public ItemInfoList Cautions - { get { return Lookup(3,ref _Cautions); } } - private ItemInfoList _Notes; - public ItemInfoList Notes - { get { return Lookup(4,ref _Notes); } } - private ItemInfoList _RNOs; - public ItemInfoList RNOs - { get { return Lookup(5,ref _RNOs); } } - private ItemInfoList _Steps; - public ItemInfoList Steps - { get { return Lookup(6,ref _Steps); } } - private ItemInfoList _Tables; - public ItemInfoList Tables - { get { return Lookup(7,ref _Tables); } } - //public XmlDocument ToXml() - //{ - // XmlDocument retval = new XmlDocument(); - // retval.LoadXml(""); - // return ToXml(retval.DocumentElement); - //} - //public void AddList(XmlNode xn,string name, ItemInfoList itemInfoList) - //{ - // if (itemInfoList != null) - // { - // XmlNode nd = xn.OwnerDocument.CreateElement(name); - // xn.AppendChild(nd); - // itemInfoList.ToXml(xn); - // } - //} - //public XmlDocument ToXml(XmlNode xn) - //{ - // XmlNode nd = MyContent.ToXml(xn); - // // Now add the children - // AddList(nd, "Procedures", Procedures); - // AddList(nd, "Sections", Sections); - // AddList(nd, "Cautions", Cautions); - // AddList(nd, "Notes", Notes); - // AddList(nd, "RNOs", RNOs); - // AddList(nd, "Steps", SubItems); - // AddList(nd, "Tables", Tables); - // return xn.OwnerDocument; - //} - public string TabToolTip - { - get - { - if (MyContent.MyEntry == null) - return MyContent.Number + " - " + MyContent.Text; - string toolTip = MyProcedure.TabToolTip + "\r\n"; - if (MyContent.Number != "") - toolTip += MyContent.Number + " - " + MyContent.Text; - else - toolTip += MyContent.Text; - DocumentInfo myDocument = MyContent.MyEntry.MyDocument; - if (myDocument.LibTitle != "") - { - toolTip += string.Format("\r\n(Library Document - {0})", myDocument.LibTitle); - toolTip += myDocument.LibraryDocumentUsage; - } - return toolTip; - } - } - public string TabTitle - { - get - { - if (MyContent.MyEntry == null) - return MyContent.Number; - if (MyContent.Number != "") - return MyContent.Number; - if (MyContent.Text.Length <= 10) - return MyContent.Text; - return MyContent.Text.Split(" ,.;:-_".ToCharArray())[0] + "..."; - } - } - #region IVEReadOnlyItem - PartInfoList _PartInfoList; - public System.Collections.IList GetChildren() - { - _PartInfoList = this.MyContent.ContentParts; - if (_PartInfoList.Count == 1 && ( _PartInfoList[0].ToString() == "Sections" || _PartInfoList[0].ToString() == "Steps")) - return _PartInfoList[0].GetChildren(); - return _PartInfoList; - } - public System.Collections.IList GetChildren(bool allParts) - { - _PartInfoList = this.MyContent.ContentParts; - if (allParts) - { - if (_PartInfoList.Count == 1 && (_PartInfoList[0].ToString() == "Sections" || _PartInfoList[0].ToString() == "Steps")) - return _PartInfoList[0].GetChildren(); - return _PartInfoList; - } - else // Steps and Sections only - { - for(int i = 0;i<_PartInfoList.Count;i++) - if(_PartInfoList[i].ToString() == "Sections" || _PartInfoList[i].ToString() == "Steps") - return _PartInfoList[i].GetChildren(); - return null; - } - } - //public bool ChildrenAreLoaded - //{ - // get { return _PartInfoList == null; } - //} - public bool HasChildren - { - get { return this.MyContent.ContentPartCount > 0; } - } - public bool HasWordContent - { - get { return this.MyContent.MyEntry != null; } - } - public bool HasStepContent - { - get - { - if (MyContent.ContentPartCount == 0) return false; - if (MyContent.ContentPartCount == 1 && MyContent.ContentParts[0].PartType == E_FromType.Section) return false; - return true; - } - } - - public ItemInfo MyProcedure - { - get - { - // Walk up active parents until the parent is not an item - ItemInfo tmp = this; - while (tmp.ActiveParent != null && tmp.ActiveParent.GetType() != typeof(DocVersionInfo)) - tmp = (ItemInfo)tmp.ActiveParent; - return tmp; - } - } - private IVEDrillDownReadOnly _ActiveParent = null; - public IVEDrillDownReadOnly MyActiveParent { get { return _ActiveParent; } } - public IVEDrillDownReadOnly ActiveParent - { - get - { - //if (_ActiveParent == this)_ActiveParent = null; - if (_ActiveParent == null) - { - if (MyPrevious != null) - _ActiveParent = _MyPrevious.ActiveParent; - else - { - if (this.ItemDocVersions != null && this.ItemDocVersions.Count > 0) - _ActiveParent = this.ItemDocVersions[0]; - else - { - ContentInfo parentContent = ParentContent; - if (parentContent == null || parentContent.ContentItemCount == 0) - _ActiveParent = this; - else - _ActiveParent = parentContent.ContentItems[0]; - } - } - } - return _ActiveParent==this ? null : _ActiveParent; - } - internal set - //set - { - _ActiveParent = value; - } - } - private ItemInfo _ActiveSection = null; - public ItemInfo MyActiveSection { get { return _ActiveSection; } } - public ItemInfo ActiveSection - { - get - { - if (_ActiveSection == null) - { - if (IsSection) - _ActiveSection = this; - else - { - ItemInfo parent = ActiveParent as ItemInfo; - if (parent != null) - _ActiveSection = parent.ActiveSection; - else - _ActiveSection = this; - } - } - return _ActiveSection.IsSection ? _ActiveSection : null; - } - set - { - _ActiveSection = value; - } - } - private FormatInfo _ActiveFormat = null; - public FormatInfo ActiveFormat - { - get - { - if (_ActiveFormat == null) - _ActiveFormat = (LocalFormat != null ? LocalFormat : ActiveParent.ActiveFormat); - return _ActiveFormat; - } - //get { return LocalFormat != null ? LocalFormat : ActiveParent.ActiveFormat; } - } - public FormatInfo LocalFormat - { - get { return MyContent.MyFormat; } - } - private ConfigDynamicTypeDescriptor _MyConfig=null; - public ConfigDynamicTypeDescriptor MyConfig - { - get - { - if (_MyConfig == null) - { - switch (MyContent.Type / 10000) - { - case 0: - _MyConfig = new ProcedureConfig(MyContent.Config); - break; - case 1: - _MyConfig = new SectionConfig(MyContent.Config); - break; - case 2: - _MyConfig = new StepConfig(MyContent.Config); - break; - } - } - return _MyConfig; - } - set - { - if (_MyConfig == null) return; - // MyContent.Config = value; - } - } - //public bool HasStandardSteps() - //{ return MyContent.ContentItemCount > 1; } - public Color ForeColor - { get { return (HasBrokenRules != null ? Color.Red : (MyContent.ContentItemCount > 1 ? Color.Blue : Color.Black)); } } - public Color BackColor - { get { return (ItemAnnotationCount > 0 ? Color.Yellow : Color.White); } } - #endregion - internal ItemInfo(SafeDataReader dr, bool forItem) - { - if (_MyLog.IsDebugEnabled) _MyLog.DebugFormat("[{0}] ItemInfo.Constructor", GetHashCode()); - try - { - ReadData(dr); - AddContent(dr); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("ItemInfo.Constructor", ex); - throw new DbCslaException("ItemInfo.Constructor", ex); - } - } - internal void AddContent(SafeDataReader dr) - { - _MyContent = new ContentInfo(dr, true); - } - } - #endregion ItemInfo - #region ItemInfoList - public partial class ItemInfoList - { - //public void ToXml(XmlNode xn) - //{ - // foreach (ItemInfo itemInfo in this) - // { - // itemInfo.ToXml(xn); - // } - //} - internal ItemInfoList(ItemInfo itemInfo) - { - AddItem(itemInfo); - } - public static ItemInfoList GetList(int? itemID,int type) - { - try - { - ItemInfoList tmp = DataPortal.Fetch(new ItemListCriteria(itemID,type)); - ItemInfo.AddList(tmp); - tmp.AddEvents(); -#if (!ItemWithContent) // If ItemWithContent is set, the content is returned with the ItemInfoList - ContentInfoList.GetList(itemID); // Performance - Load All Content -#endif - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - [Serializable()] - private class ItemListCriteria - { - public ItemListCriteria(int? itemID,int type) - { - _ItemID = itemID; - _Type = type; - } - private int? _ItemID; - public int? ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private int _Type; - public int Type - { - get { return _Type; } - set { _Type = value; } - } - } - private void DataPortal_Fetch(ItemListCriteria criteria) - { - this.RaiseListChangedEvents = false; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; -#if ItemWithContent - cm.CommandText = "vesp_ListItemsAndContent"; -#else - cm.CommandText = "vesp_ListItems"; -#endif - cm.Parameters.AddWithValue("@ItemID", criteria.ItemID); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - while (dr.Read()) - { - ItemInfo itemInfo = null; - switch ((E_FromType)criteria.Type) - { - case E_FromType.Procedure: - itemInfo = new ProcedureInfo(dr); - break; - case E_FromType.Section: - itemInfo = new SectionInfo(dr); - break; - default: - itemInfo = new StepInfo(dr); - break; - } - 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; - } - internal void AddItem(ItemInfo itemInfo) - { - IsReadOnly = false; - this.Add(itemInfo); - IsReadOnly = true; - } - #region Text Search - public static ItemInfoList GetListFromTextSearch(string docVersionList, string stepTypeList, string searchString, bool caseSensitive, ItemSearchIncludeLinks includeLinks, bool includeRtfFormatting, bool includeSpecialCharacters) - { - try - { - ItemInfoList tmp = DataPortal.Fetch(new ItemListSearchCriteria(docVersionList, stepTypeList, searchString, caseSensitive, includeLinks, includeRtfFormatting, includeSpecialCharacters)); - ItemInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - [Serializable()] - private class ItemListSearchCriteria - { - private string _DocVersionList; - public string DocVersionList - { - get { return _DocVersionList; } - set { _DocVersionList = value; } - } - private string _StepTypeList; - public string StepTypeList - { - get { return _StepTypeList; } - set { _StepTypeList = value; } - } - private string _SearchString; - public string SearchString - { - get { return _SearchString; } - set { _SearchString = value; } - } - private bool _CaseSensitive; - public bool CaseSensitive - { - get { return _CaseSensitive; } - set { _CaseSensitive = value; } - } - private ItemSearchIncludeLinks _IncludeLinks; - public ItemSearchIncludeLinks IncludeLinks - { - get { return _IncludeLinks; } - set { _IncludeLinks = value; } - } - private bool _IncludeRtfFormatting; - public bool IncludeRtfFormatting - { - get { return _IncludeRtfFormatting; } - set { _IncludeRtfFormatting = value; } - } - private bool _IncludeSpecialCharacters; - public bool IncludeSpecialCharacters - { - get { return _IncludeSpecialCharacters; } - set { _IncludeSpecialCharacters = value; } - } - public ItemListSearchCriteria(string docVersionList, string stepTypeList, string searchString, - bool caseSensitive, ItemSearchIncludeLinks includeLinks, bool includeRtfFormatting, bool includeSpecialCharacters) - { - _DocVersionList = docVersionList; - _StepTypeList = stepTypeList; - _SearchString = searchString; - _CaseSensitive = caseSensitive; - _IncludeLinks = includeLinks; - _IncludeRtfFormatting = includeRtfFormatting; - _IncludeSpecialCharacters = includeSpecialCharacters; - } - } - private void DataPortal_Fetch(ItemListSearchCriteria criteria) - { - this.RaiseListChangedEvents = false; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_SearchItemAndChildren"; - cm.Parameters.AddWithValue("@DocVersionList", criteria.DocVersionList); - cm.Parameters.AddWithValue("@StepTypeList", criteria.StepTypeList); - cm.Parameters.AddWithValue("@SearchString", criteria.SearchString); - cm.Parameters.AddWithValue("@CaseSensitive", criteria.CaseSensitive ? 1 : 0); - cm.Parameters.AddWithValue("@IncludeLinks", (int) criteria.IncludeLinks); - cm.Parameters.AddWithValue("@IncludeRtfFormatting", criteria.IncludeRtfFormatting ? 1 : 0); - cm.Parameters.AddWithValue("@IncludeSpecialCharacters", criteria.IncludeSpecialCharacters ? 1 : 0); - 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._SearchDVPath = dr.GetString("DVPath"); - itemInfo._SearchPath = dr.GetString("Path"); - 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; - } - #endregion - #region RO Search - public static ItemInfoList GetListFromROSearch(string docVersionList, string stepTypeList, string roSearchString) - { - try - { - ItemInfoList tmp = DataPortal.Fetch(new ItemListROSearchCriteria(docVersionList, stepTypeList, roSearchString)); - ItemInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - [Serializable()] - private class ItemListROSearchCriteria - { - private string _DocVersionList; - public string DocVersionList - { - get { return _DocVersionList; } - set { _DocVersionList = value; } - } - private string _StepTypeList; - public string StepTypeList - { - get { return _StepTypeList; } - set { _StepTypeList = value; } - } - private string _ROSearchString; - public string ROSearchString - { - get { return _ROSearchString; } - set { _ROSearchString = value; } - } - public ItemListROSearchCriteria(string docVersionList, string stepTypeList, string roSearchString) - { - _DocVersionList = docVersionList; - _StepTypeList = stepTypeList; - _ROSearchString = roSearchString; - } - } - private void DataPortal_Fetch(ItemListROSearchCriteria criteria) - { - this.RaiseListChangedEvents = false; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_SearchROItemAndChildren"; - cm.Parameters.AddWithValue("@DocVersionList", criteria.DocVersionList); - cm.Parameters.AddWithValue("@StepTypeList", criteria.StepTypeList); - cm.Parameters.AddWithValue("@ROSearchString", criteria.ROSearchString); - 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._SearchDVPath = dr.GetString("DVPath"); - itemInfo._SearchPath = dr.GetString("Path"); - 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; - } - #endregion - #region Annotation Search - public static ItemInfoList GetListFromAnnotationSearch(string docVersionList, string stepTypeList, string annotationTypeList, string searchString, bool caseSensitive) - { - try - { - ItemInfoList tmp = DataPortal.Fetch(new ItemListAnnotationSearchCriteria(docVersionList, stepTypeList, annotationTypeList, searchString, caseSensitive)); - ItemInfo.AddList(tmp); - tmp.AddEvents(); - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on ItemInfoList.GetChildren", ex); - } - } - [Serializable()] - private class ItemListAnnotationSearchCriteria - { - private string _DocVersionList; - public string DocVersionList - { - get { return _DocVersionList; } - set { _DocVersionList = value; } - } - private string _StepTypeList; - public string StepTypeList - { - get { return _StepTypeList; } - set { _StepTypeList = value; } - } - private string _AnnotationTypeList; - public string AnnotationTypeList - { - get { return _AnnotationTypeList; } - set { _AnnotationTypeList = value; } - } - private string _SearchString; - public string SearchString - { - get { return _SearchString; } - set { _SearchString = value; } - } - private bool _CaseSensitive; - public bool CaseSensitive - { - get { return _CaseSensitive; } - set { _CaseSensitive = value; } - } - public ItemListAnnotationSearchCriteria(string docVersionList, string stepTypeList, string annotationTypeList, string searchString, bool caseSensitive) - { - _DocVersionList = docVersionList; - _StepTypeList = stepTypeList; - _AnnotationTypeList = annotationTypeList; - _SearchString = searchString; - _CaseSensitive = caseSensitive; - } - } - private void DataPortal_Fetch(ItemListAnnotationSearchCriteria criteria) - { - this.RaiseListChangedEvents = false; - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "vesp_SearchAnnotationItemAndChildren"; - cm.Parameters.AddWithValue("@DocVersionList", criteria.DocVersionList); - cm.Parameters.AddWithValue("@StepTypeList", criteria.StepTypeList); - cm.Parameters.AddWithValue("@AnnotationTypeList", criteria.AnnotationTypeList); - cm.Parameters.AddWithValue("@SearchString", criteria.SearchString); - cm.Parameters.AddWithValue("@CaseSensitive", criteria.CaseSensitive ? 1 : 0); - 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._SearchDVPath = dr.GetString("DVPath"); - itemInfo._SearchPath = dr.GetString("Path"); - itemInfo._SearchAnnotationID = dr.GetInt32("SearchAnnotationID"); - itemInfo._SearchAnnotationText = dr.GetString("SearchText"); - itemInfo._SearchAnnotationType = dr.GetString("AnnotationType"); - 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; - } - #endregion - } - #endregion - #region ProcedureInfo - [Serializable()] - public partial class ProcedureInfo : ItemInfo, IVEDrillDownReadOnly - { - protected override void RefreshFields(Item tmp) - { - base.RefreshFields(tmp); - ExtensionRefreshFields(tmp); - } -#if ItemWithContent - public ProcedureInfo(SafeDataReader dr) : base(dr, true) { } -#else - public ProcedureInfo(SafeDataReader dr) : base(dr) { } -#endif - private ProcedureInfo() : base() { ;} - public new static ProcedureInfo Get(int itemID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - ProcedureInfo tmp = GetCachedByPrimaryKey(itemID) as ProcedureInfo; - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - public void MoveProcedure(IVEDrillDownReadOnly pInfo, int index) - { - using (Item ii = Item.Get(this.ItemID)) - { - ii.MoveItem(pInfo, index); - } - } - public new Procedure Get() - { - return (Procedure) (_Editable = Procedure.Get(ItemID)); - } - #region ProcedureConfig - [NonSerialized] - private ProcedureConfig _ProcedureConfig; - public ProcedureConfig ProcedureConfig - { get { return (_ProcedureConfig != null ? _ProcedureConfig : _ProcedureConfig = new ProcedureConfig(this)); } } - #endregion - public new ConfigDynamicTypeDescriptor MyConfig - { - get { return ProcedureConfig ; } - } - } - #endregion - #region Procedure - [Serializable()] - public partial class Procedure : Item - { - public new static Procedure Get(int itemID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - Item itm = GetCachedByPrimaryKey(itemID); - Procedure tmp = itm as Procedure; - //Procedure tmp = (Procedure)GetExistingByPrimaryKey(itemID); - if (tmp == null) - { - if (itm != null) Console.WriteLine("type = {0}", itm.GetType().Name); - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - public new Procedure Save() - { - return (Procedure)base.Save(); - } - public static Procedure MakeProcedure(IVEDrillDownReadOnly parentInfo, ItemInfo previousInfo, string procNumber, string procTitle, int procType) - { - int newitemid = MakeNewItem(parentInfo, previousInfo, procNumber, procTitle, procType, E_FromType.Procedure); - return Procedure.Get(newitemid); - } - #region ProcedureConfig - [NonSerialized] - private ProcedureConfig _ProcedureConfig; - public ProcedureConfig ProcedureConfig - { - get - { - if (_ProcedureConfig == null) - { - _ProcedureConfig = new ProcedureConfig(this); - _ProcedureConfig.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_ProcedureConfig_PropertyChanged); - } - return _ProcedureConfig; - } - } - private void _ProcedureConfig_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) - { - MyContent.Config = _ProcedureConfig.ToString(); - } - #endregion - } - #endregion - #region SectionInfo - [Serializable()] - public partial class SectionInfo : ItemInfo, IVEDrillDownReadOnly - { - protected override void RefreshFields(Item tmp) - { - base.RefreshFields(tmp); - ExtensionRefreshFields(tmp); - } -#if ItemWithContent - public SectionInfo(SafeDataReader dr) : base(dr, true) { } -#else - public SectionInfo(SafeDataReader dr) : base(dr) { } -#endif - private SectionInfo() : base() { ;} - public new static SectionInfo Get(int itemID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - SectionInfo tmp = GetCachedByPrimaryKey(itemID) as SectionInfo; - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - public void MoveSection(IVEDrillDownReadOnly pInfo, int index) - { - using (Item ii = Item.Get(this.ItemID)) - { - ii.MoveItem(pInfo, index); - } - } - public new Section Get() - { - return (Section)(_Editable = Section.Get(ItemID)); - } - - #region SectionConfig - [NonSerialized] - private SectionConfig _SectionConfig; - public SectionConfig SectionConfig - { get { return (_SectionConfig != null ? _SectionConfig : _SectionConfig = new SectionConfig(this)); } } - #endregion - public new ConfigDynamicTypeDescriptor MyConfig - { - get { return SectionConfig; } - } - } - #endregion - #region Section - [Serializable()] - public partial class Section : Item - { - public new static Section Get(int itemID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - Section tmp = GetCachedByPrimaryKey(itemID) as Section; - if (tmp == null) - { - tmp = DataPortal.Fetch
    (new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - public new Section Save() - { - return (Section)base.Save(); - } - public static Section MakeSection(IVEDrillDownReadOnly parentInfo, ItemInfo previousInfo, string sectNumber, string sectTitle, int sectType) - { - int newitemid = MakeNewItem(parentInfo, previousInfo, sectNumber, sectTitle, sectType, E_FromType.Section); - return Section.Get(newitemid); - } - #region SectionConfig - [NonSerialized] - private SectionConfig _SectionConfig; - public SectionConfig SectionConfig - { - get - { - if (_SectionConfig == null) - { - _SectionConfig = new SectionConfig(this); - _SectionConfig.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_SectionConfig_PropertyChanged); - } - return _SectionConfig; - } - } - private void _SectionConfig_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) - { - MyContent.Config = _SectionConfig.ToString(); - } - #endregion - } - #endregion - #region StepInfo - [Serializable()] - public partial class StepInfo : ItemInfo - { - protected override void RefreshFields(Item tmp) - { - base.RefreshFields(tmp); - ExtensionRefreshFields(tmp); - } - //public override string ToString() - //{ - // return "Step " + base.ToString(); - //} -#if ItemWithContent - public StepInfo(SafeDataReader dr) : base(dr, true) { } -#else - public StepInfo(SafeDataReader dr) : base(dr) { } -#endif - private StepInfo() : base() { ;} - public new static StepInfo Get(int itemID) - { - //if (!CanGetObject()) - // throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - StepInfo tmp = GetCachedByPrimaryKey(itemID) as StepInfo; - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - public void MoveStep(IVEDrillDownReadOnly pInfo, int index) - { - using (Item ii = Item.Get(this.ItemID)) - { - ii.MoveItem(pInfo, index); - } - } - public new Step Get() - { - return (Step)(_Editable = Step.Get(ItemID)); - } - //public E_FromType FromType - //{ get { return E_FromType.Step; } } - } - - #endregion - #region Step - [Serializable()] - public partial class Step : Item - { - public new static Step Get(int itemID) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Item"); - try - { - Step tmp = (Step)GetCachedByPrimaryKey(itemID); - if (tmp == null) - { - tmp = DataPortal.Fetch(new PKCriteria(itemID)); - AddToCache(tmp); - } - if (tmp.ErrorMessage == "No Record Found") tmp = null; - return tmp; - } - catch (Exception ex) - { - throw new DbCslaException("Error on Item.Get", ex); - } - } - // TODO :MakeCaution; - // TODO :MakeNote; - // TODO :MakeRNO; - // TODO :MakeSection; - // TODO :MakeSubStep; - // TODO :MakeTable; - public static Step MakeStep(IVEDrillDownReadOnly parentInfo, ItemInfo previousInfo, string stepNumber, string stepTitle, int stepType, E_FromType fromType) - { - int newitemid = MakeNewItem(parentInfo, previousInfo, stepNumber, stepTitle, stepType, fromType); - return Step.Get(newitemid); - } - //#region StepConfig - //[NonSerialized] - //private StepConfig _StepConfig; - //public StepConfig StepConfig - //{ - // get - // { - // if (_StepConfig == null) - // { - // _StepConfig = new StepConfig(this); - // _StepConfig.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(_StepConfig_PropertyChanged); - // } - // return _SectionConfig; - // } - //} - //private void _StepConfig_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) - //{ - // MyContent.Config = _StepConfig.ToString(); - //} - //#endregion - } - #endregion - public enum ItemSearchIncludeLinks - { - Nothing = 0, - Value = 1, - Everything =2 - } -} diff --git a/PROMS/VEPROMS.sln b/PROMS/VEPROMS.sln deleted file mode 100644 index 98ab3468..00000000 --- a/PROMS/VEPROMS.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VEPROMS", "VEPROMS.csproj", "{673A8C41-BDEE-4278-B6E3-57DE8B7D9CEF}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {673A8C41-BDEE-4278-B6E3-57DE8B7D9CEF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {673A8C41-BDEE-4278-B6E3-57DE8B7D9CEF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {673A8C41-BDEE-4278-B6E3-57DE8B7D9CEF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {673A8C41-BDEE-4278-B6E3-57DE8B7D9CEF}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/VEPROMS/FixTransitions/App.config b/PROMS/VEPROMS/FixTransitions/App.config deleted file mode 100644 index e5c55b8d..00000000 --- a/PROMS/VEPROMS/FixTransitions/App.config +++ /dev/null @@ -1,136 +0,0 @@ - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - 1 - - - 2 - - - 192, 255, 255 - - - True - - - False - - - Normal - - - True - - - - - False - - - 1 - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/FixTransitions/FixTransitions.csproj b/PROMS/VEPROMS/FixTransitions/FixTransitions.csproj deleted file mode 100644 index fefbe0df..00000000 --- a/PROMS/VEPROMS/FixTransitions/FixTransitions.csproj +++ /dev/null @@ -1,153 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {C12F67FB-C11B-4486-B012-2038D64641C4} - WinExe - Properties - FixTransitions - FixTransitions - v2.0 - - - - - 2.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\Demo\ - DEBUG;TRACE - full - x86 - prompt - - - true - bin\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\Release\ - TRACE - true - pdbonly - x86 - prompt - - - true - bin\Demo\ - TRACE;DEMO - full - x86 - prompt - - - - False - ..\..\csla20cs-2.1.4-070223\csla20cs\csla20cs\Csla\bin\Debug\Csla.dll - - - True - - - False - ..\..\DropDownPanel\bin\Debug\DropDownPanel.dll - - - False - ..\..\LBWordLibrary\bin\Debug\LBWordLibrary.dll - - - False - ..\..\Volian.Controls.Library\bin\Debug\log4net.dll - - - - - - - - - False - ..\..\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - False - ..\..\XYPlots\bin\Debug\XYPlots.dll - - - - - Form - - - frmFindAndFix.cs - - - - - Designer - frmFindAndFix.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/FixTransitions/FixTransitions.sln b/PROMS/VEPROMS/FixTransitions/FixTransitions.sln deleted file mode 100644 index f56b4774..00000000 --- a/PROMS/VEPROMS/FixTransitions/FixTransitions.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FixTransitions", "FixTransitions.csproj", "{C12F67FB-C11B-4486-B012-2038D64641C4}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C12F67FB-C11B-4486-B012-2038D64641C4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {C12F67FB-C11B-4486-B012-2038D64641C4}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C12F67FB-C11B-4486-B012-2038D64641C4}.Debug|x86.ActiveCfg = Debug|x86 - {C12F67FB-C11B-4486-B012-2038D64641C4}.Debug|x86.Build.0 = Debug|x86 - {C12F67FB-C11B-4486-B012-2038D64641C4}.Release|Any CPU.ActiveCfg = Release|Any CPU - {C12F67FB-C11B-4486-B012-2038D64641C4}.Release|Any CPU.Build.0 = Release|Any CPU - {C12F67FB-C11B-4486-B012-2038D64641C4}.Release|x86.ActiveCfg = Release|x86 - {C12F67FB-C11B-4486-B012-2038D64641C4}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/VEPROMS/FixTransitions/Program.cs b/PROMS/VEPROMS/FixTransitions/Program.cs deleted file mode 100644 index 374643c4..00000000 --- a/PROMS/VEPROMS/FixTransitions/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace FixTransitions -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmFindAndFix()); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/FixTransitions/Properties/AssemblyInfo.cs b/PROMS/VEPROMS/FixTransitions/Properties/AssemblyInfo.cs deleted file mode 100644 index 6e90db98..00000000 --- a/PROMS/VEPROMS/FixTransitions/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("FixTransitions")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("FixTransitions")] -[assembly: AssemblyCopyright("Copyright © 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("b360547c-de6d-4c68-b60a-d75719d917fb")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/VEPROMS/FixTransitions/Properties/Resources.Designer.cs b/PROMS/VEPROMS/FixTransitions/Properties/Resources.Designer.cs deleted file mode 100644 index d61de82d..00000000 --- a/PROMS/VEPROMS/FixTransitions/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FixTransitions.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("FixTransitions.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/VEPROMS/FixTransitions/Properties/Resources.resx b/PROMS/VEPROMS/FixTransitions/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/VEPROMS/FixTransitions/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/FixTransitions/Properties/Settings.Designer.cs b/PROMS/VEPROMS/FixTransitions/Properties/Settings.Designer.cs deleted file mode 100644 index b5e38b83..00000000 --- a/PROMS/VEPROMS/FixTransitions/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace FixTransitions.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/VEPROMS/FixTransitions/Properties/Settings.settings b/PROMS/VEPROMS/FixTransitions/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/VEPROMS/FixTransitions/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/VEPROMS/FixTransitions/frmFindAndFix.Designer.cs b/PROMS/VEPROMS/FixTransitions/frmFindAndFix.Designer.cs deleted file mode 100644 index 32c63f7d..00000000 Binary files a/PROMS/VEPROMS/FixTransitions/frmFindAndFix.Designer.cs and /dev/null differ diff --git a/PROMS/VEPROMS/FixTransitions/frmFindAndFix.cs b/PROMS/VEPROMS/FixTransitions/frmFindAndFix.cs deleted file mode 100644 index 4289ca31..00000000 --- a/PROMS/VEPROMS/FixTransitions/frmFindAndFix.cs +++ /dev/null @@ -1,98 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; - -namespace FixTransitions -{ - public partial class frmFindAndFix : Form - { - public frmFindAndFix() - { - InitializeComponent(); - } - public string FormStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - private ItemInfoList _ListToFix = null; - private void findToolStripMenuItem_Click(object sender, EventArgs e) - { - FormStatus = "Searching"; - // Perform a query looking for '(Resolved Transition Text)' - //_ListToFix = ItemInfoList.GetListFromTextSearch("", "", "(Resolved Transition Text)", 0, ItemSearchIncludeLinks.Value, false, false);\ - _ListToFix = ItemInfoList.GetListFromTextSearch("", "", "Resolved Transition Text", 0, ItemSearchIncludeLinks.Value, false, false, ""); - // Place the results in the ListBox - lbResults.DataSource=_ListToFix; - lbResults.DisplayMember="DisplayText"; - FormStatus = string.Format("Searching Complete: {0} Items Found",_ListToFix.Count); - - } - private void fixToolStripMenuItem_Click(object sender, EventArgs e) - { - int i = 0; - foreach (ItemInfo item in _ListToFix) - { - i++; - //if (item.MyContent.ContentID == 363) - //{ - // Console.WriteLine("Stop Here"); - if (i >= lbResults.SelectedIndex) - { - FormStatus = string.Format("Processing {0} of {1} steps ({2})", i, _ListToFix.Count, item.DisplayText); - //rtb.ViewRTB = false; - rtb.MyItemInfo = item; - rtb.RefreshDisplay(true); - SaveText(rtb); - } - //} - } - FormStatus = "Refreshing Results"; - findToolStripMenuItem_Click(sender, e); - FormStatus = "Fix Done"; - } - public void SaveText(StepRTB myStepRTB) - { - if (myStepRTB.ReadOnly) return; - //if (myStepRTB.ViewRTB) return; - if (!myStepRTB.IsDirty && myStepRTB.Text.Contains("(Resolved Transition Text)") == false) return; - bool success = myStepRTB.OrigDisplayText.Save((RichTextBox)myStepRTB); - if (success) - { - myStepRTB.FindAllLinks(); - myStepRTB.OrigRTF = myStepRTB.Rtf; - myStepRTB.ClearUndo(); - } - } - private void processToolStripMenuItem_Click(object sender, EventArgs e) - { - ItemInfo item = ItemInfo.Get(int.Parse(tbItemID.Text)); - item.UpdateTransitionText(); - } - - private void compareToolStripMenuItem_Click(object sender, EventArgs e) - { - // TransitionInfoList transitions = TransitionInfoList.Get(); - // FormStatus = string.Format("Checking {0} transitions", transitions.Count); - // int differences = 0; - // foreach (TransitionInfo transition in transitions) - // { - // FormStatus = string.Format("Checking transition {0}", transition.TransitionID); - // string oldPath = transition.ResolvePathTo(); - // string newPath = transition.ResolvePathNew2(); - // if (oldPath != newPath) - // { - // differences++; - // Console.WriteLine("{0},'{1}','{2}'", transition.TransitionID, oldPath, newPath); - // } - // } - // FormStatus = string.Format("{0} transitions checked - {1} differences found", transitions.Count, differences); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/FixTransitions/frmFindAndFix.resx b/PROMS/VEPROMS/FixTransitions/frmFindAndFix.resx deleted file mode 100644 index 7de6988d..00000000 --- a/PROMS/VEPROMS/FixTransitions/frmFindAndFix.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 132, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/PrintMSWord/App.config b/PROMS/VEPROMS/PrintMSWord/App.config deleted file mode 100644 index e5c55b8d..00000000 --- a/PROMS/VEPROMS/PrintMSWord/App.config +++ /dev/null @@ -1,136 +0,0 @@ - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - 1 - - - 2 - - - 192, 255, 255 - - - True - - - False - - - Normal - - - True - - - - - False - - - 1 - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/PrintMSWord/PrintMSWord.csproj b/PROMS/VEPROMS/PrintMSWord/PrintMSWord.csproj deleted file mode 100644 index 235f10bf..00000000 --- a/PROMS/VEPROMS/PrintMSWord/PrintMSWord.csproj +++ /dev/null @@ -1,140 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {5731EEAD-30C9-499F-849E-179F11D932B0} - WinExe - Properties - PrintMSWord - PrintMSWord - - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - False - F:\CSLA\csla20cs-2.1.4-070223\csla20cs\csla20cs\Csla\bin\Debug\Csla.dll - - - False - F:\Log4Net\log4net-1.2.10\bin\net\2.0\debug\log4net.dll - - - - - - - - - - - - Form - - - frmInfo.cs - - - Form - - - frmPrintMsWord.cs - - - - - Designer - frmInfo.cs - - - Designer - frmPrintMsWord.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {70F23722-19A3-4AC1-A900-55831C945786} - LBWordLibrary - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {52D74078-3822-410E-889B-464BD21AAB9E} - VG - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3} - XYPlots - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/PrintMSWord/Program.cs b/PROMS/VEPROMS/PrintMSWord/Program.cs deleted file mode 100644 index 3ca02c65..00000000 --- a/PROMS/VEPROMS/PrintMSWord/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace PrintMSWord -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmPrintMSWord()); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/PrintMSWord/Properties/AssemblyInfo.cs b/PROMS/VEPROMS/PrintMSWord/Properties/AssemblyInfo.cs deleted file mode 100644 index 0883c420..00000000 --- a/PROMS/VEPROMS/PrintMSWord/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PrintMSWord")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("PrintMSWord")] -[assembly: AssemblyCopyright("Copyright © 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("3b56b3e7-fe71-4d89-9409-7cfd19c6d1d6")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/VEPROMS/PrintMSWord/Properties/Resources.Designer.cs b/PROMS/VEPROMS/PrintMSWord/Properties/Resources.Designer.cs deleted file mode 100644 index d9ca0fb4..00000000 --- a/PROMS/VEPROMS/PrintMSWord/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PrintMSWord.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PrintMSWord.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/VEPROMS/PrintMSWord/Properties/Resources.resx b/PROMS/VEPROMS/PrintMSWord/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/VEPROMS/PrintMSWord/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/PrintMSWord/Properties/Settings.Designer.cs b/PROMS/VEPROMS/PrintMSWord/Properties/Settings.Designer.cs deleted file mode 100644 index 264d0f51..00000000 --- a/PROMS/VEPROMS/PrintMSWord/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PrintMSWord.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/VEPROMS/PrintMSWord/Properties/Settings.settings b/PROMS/VEPROMS/PrintMSWord/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/VEPROMS/PrintMSWord/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/VEPROMS/PrintMSWord/frmPrintMsWord.Designer.cs b/PROMS/VEPROMS/PrintMSWord/frmPrintMsWord.Designer.cs deleted file mode 100644 index 102e9ec9..00000000 --- a/PROMS/VEPROMS/PrintMSWord/frmPrintMsWord.Designer.cs +++ /dev/null @@ -1,293 +0,0 @@ -namespace PrintMSWord -{ - partial class frmPrintMSWord - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pDFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pDFsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tspbStatus = new System.Windows.Forms.ToolStripProgressBar(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.panel1 = new System.Windows.Forms.Panel(); - this.cbDebugOutput = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.tbTimings = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.cbWatermark = new System.Windows.Forms.ComboBox(); - this.tbRevDate = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.tbRev = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.lbProcs = new System.Windows.Forms.ListBox(); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.pDFToolStripMenuItem, - this.pDFsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Padding = new System.Windows.Forms.Padding(8, 2, 0, 2); - this.menuStrip1.Size = new System.Drawing.Size(1125, 28); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(44, 24); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(108, 26); - this.exitToolStripMenuItem.Text = "E&xit"; - // - // pDFToolStripMenuItem - // - this.pDFToolStripMenuItem.Name = "pDFToolStripMenuItem"; - this.pDFToolStripMenuItem.Size = new System.Drawing.Size(47, 24); - this.pDFToolStripMenuItem.Text = "PDF"; - this.pDFToolStripMenuItem.Click += new System.EventHandler(this.pDFToolStripMenuItem_Click); - // - // pDFsToolStripMenuItem - // - this.pDFsToolStripMenuItem.Name = "pDFsToolStripMenuItem"; - this.pDFsToolStripMenuItem.Size = new System.Drawing.Size(53, 24); - this.pDFsToolStripMenuItem.Text = "PDFs"; - this.pDFsToolStripMenuItem.Click += new System.EventHandler(this.pDFsToolStripMenuItem_Click); - // - // statusStrip1 - // - this.statusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tspbStatus, - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 390); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Padding = new System.Windows.Forms.Padding(1, 0, 19, 0); - this.statusStrip1.Size = new System.Drawing.Size(1125, 25); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tspbStatus - // - this.tspbStatus.Name = "tspbStatus"; - this.tspbStatus.Size = new System.Drawing.Size(133, 20); - this.tspbStatus.Visible = false; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(50, 20); - this.tsslStatus.Text = "Ready"; - // - // panel1 - // - this.panel1.Controls.Add(this.cbDebugOutput); - this.panel1.Controls.Add(this.tbTimings); - this.panel1.Controls.Add(this.label3); - this.panel1.Controls.Add(this.cbWatermark); - this.panel1.Controls.Add(this.tbRevDate); - this.panel1.Controls.Add(this.label2); - this.panel1.Controls.Add(this.tbRev); - this.panel1.Controls.Add(this.label1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Right; - this.panel1.Location = new System.Drawing.Point(646, 28); - this.panel1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(479, 362); - this.panel1.TabIndex = 2; - // - // cbDebugOutput - // - // - // - // - this.cbDebugOutput.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.cbDebugOutput.Checked = true; - this.cbDebugOutput.CheckState = System.Windows.Forms.CheckState.Checked; - this.cbDebugOutput.CheckValue = "Y"; - this.cbDebugOutput.Location = new System.Drawing.Point(11, 39); - this.cbDebugOutput.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.cbDebugOutput.Name = "cbDebugOutput"; - this.cbDebugOutput.Size = new System.Drawing.Size(147, 23); - this.cbDebugOutput.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.cbDebugOutput.TabIndex = 9; - this.cbDebugOutput.Text = "Debug Output"; - // - // tbTimings - // - this.tbTimings.AcceptsReturn = true; - this.tbTimings.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbTimings.Location = new System.Drawing.Point(0, 69); - this.tbTimings.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbTimings.Multiline = true; - this.tbTimings.Name = "tbTimings"; - this.tbTimings.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbTimings.Size = new System.Drawing.Size(477, 292); - this.tbTimings.TabIndex = 8; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(240, 39); - this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(77, 17); - this.label3.TabIndex = 5; - this.label3.Text = "Watermark"; - // - // cbWatermark - // - this.cbWatermark.FormattingEnabled = true; - this.cbWatermark.Items.AddRange(new object[] { - "(None)", - "Draft", - "Master", - "Sample", - "Reference", - "Information Only"}); - this.cbWatermark.Location = new System.Drawing.Point(327, 36); - this.cbWatermark.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.cbWatermark.Name = "cbWatermark"; - this.cbWatermark.Size = new System.Drawing.Size(132, 24); - this.cbWatermark.TabIndex = 4; - this.cbWatermark.Text = "(None)"; - // - // tbRevDate - // - this.tbRevDate.AcceptsReturn = true; - this.tbRevDate.Location = new System.Drawing.Point(327, 4); - this.tbRevDate.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbRevDate.Name = "tbRevDate"; - this.tbRevDate.Size = new System.Drawing.Size(132, 22); - this.tbRevDate.TabIndex = 3; - this.tbRevDate.Text = "07/27/10"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(240, 7); - this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(38, 17); - this.label2.TabIndex = 2; - this.label2.Text = "Date"; - // - // tbRev - // - this.tbRev.Location = new System.Drawing.Point(95, 4); - this.tbRev.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbRev.Name = "tbRev"; - this.tbRev.Size = new System.Drawing.Size(132, 22); - this.tbRev.TabIndex = 1; - this.tbRev.Text = "25"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(8, 7); - this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(33, 17); - this.label1.TabIndex = 0; - this.label1.Text = "Rev"; - // - // lbProcs - // - this.lbProcs.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbProcs.FormattingEnabled = true; - this.lbProcs.ItemHeight = 16; - this.lbProcs.Location = new System.Drawing.Point(0, 28); - this.lbProcs.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.lbProcs.Name = "lbProcs"; - this.lbProcs.Size = new System.Drawing.Size(646, 362); - this.lbProcs.TabIndex = 3; - this.lbProcs.DoubleClick += new System.EventHandler(this.lbProcs_DoubleClick); - // - // frmPrintMSWord - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1125, 415); - this.Controls.Add(this.lbProcs); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.Name = "frmPrintMSWord"; - this.Text = "PrintMSWord"; - this.Load += new System.EventHandler(this.frmPrintMSWord_Load); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem pDFToolStripMenuItem; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.ListBox lbProcs; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.ComboBox cbWatermark; - private System.Windows.Forms.TextBox tbRevDate; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox tbRev; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbTimings; - private DevComponents.DotNetBar.Controls.CheckBoxX cbDebugOutput; - private System.Windows.Forms.ToolStripMenuItem pDFsToolStripMenuItem; - private System.Windows.Forms.ToolStripProgressBar tspbStatus; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/PrintMSWord/frmPrintMsWord.cs b/PROMS/VEPROMS/PrintMSWord/frmPrintMsWord.cs deleted file mode 100644 index 2ba87b00..00000000 --- a/PROMS/VEPROMS/PrintMSWord/frmPrintMsWord.cs +++ /dev/null @@ -1,156 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using System.IO; -using Volian.Svg.Library; -using Volian.Print.Library; -using Volian.Base.Library; - -namespace PrintMSWord -{ - public partial class frmPrintMSWord : Form - { - public frmPrintMSWord() - { - InitializeComponent(); - } - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - private DateTime _TimerStart; - public DateTime TimerStart - { - get { return _TimerStart; } - set { _TimerStart = value; } - } - private string _ProcedureNumber; - public string ProcedureNumber - { - get { return _ProcedureNumber; } - set { _ProcedureNumber = value; } - } - public string MyTimerStatus - { - get { return tsslStatus.Text; } - set { - TimeSpan ts = DateTime.Now - _TimerStart; - DateTime dt = new DateTime(ts.Ticks); - tsslStatus.Text = string.Format("{0:HH:mm:ss.fff} {1} {2}",dt,ProcedureNumber,value); - Application.DoEvents(); - } - } - private DocVersionInfo GetDocVersionWithContent() - { - DocVersionInfoList dvList = DocVersionInfoList.Get(); - foreach (DocVersionInfo docVersion in dvList) - if (docVersion.Procedures != null) - if (docVersion.Procedures[0].ItemID != 0) - return docVersion; - return null; - } - public ProcedureInfo MyProcedure - { - get { return lbProcs.SelectedValue as ProcedureInfo; } - } - private void lbProcs_DoubleClick(object sender, EventArgs e) - { - CreatePDF(); - } - private void CreatePDF() - { - TimerStart = DateTime.Now; - ProcedureInfo myProcedure = MyProcedure; - Volian.Print.Library.Rtf2Pdf.PdfDebug = true; - tbTimings.Text = ""; - Cursor saveCursor = this.Cursor; - this.Cursor = Cursors.WaitCursor; - //ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark; - CreatePDF(myProcedure,true,false); - this.Cursor = saveCursor; - } - - private void CreatePDF(ProcedureInfo myProcedure, bool openPdf,bool saveLinks) - { - // set up for using format default change bars. - ChangeBarDefinition cbd = new ChangeBarDefinition(); - ChangeBarData changeBarData = MyProcedure.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData; - cbd.MyChangeBarType = PrintChangeBar.WithDefault; - cbd.MyChangeBarText = changeBarData.ChangeBarMessage == "ChgID" ? PrintChangeBarText.ChgID : - changeBarData.ChangeBarMessage == "DateAndChgID" ? PrintChangeBarText.DateChgID : - changeBarData.ChangeBarMessage == "None" ? PrintChangeBarText.None : - changeBarData.ChangeBarMessage == "RevNum" ? PrintChangeBarText.RevNum : PrintChangeBarText.UserDef; - PromsPrinter pp = new PromsPrinter(myProcedure, tbRev.Text, cbWatermark.Text, cbDebugOutput.Checked, false, @"C:\TEMP\32Bit\Compare", openPdf, true, cbd, - myProcedure.DisplayNumber.Replace('/','_').Replace('\\','_'),false,false,"",false,false,null); - pp.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged); - _ElapsedTime = new Dictionary(); - DateTime tStart = DateTime.Now; - string pdfFile = pp.Print(@"C:\TEMP\32Bit", false, false); // (pdfpath, makePlaceKeeper, makeContinuousActionSummary) - DateTime tEnd = DateTime.Now; - _ElapsedTime.Add(PromsPrinterStatusType.Total, DateTime.Now - tStart); - MyTimerStatus = pdfFile + " created."; - ShowElapsedTime(); - //MyStatus = string.Format("{0} created in {1:0.} milliseconds", pdfFile, (TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds)); - } - private void ShowElapsedTime() - { - foreach (PromsPrinterStatusType type in _ElapsedTime.Keys) - tbTimings.Text += "\r\n" + string.Format("'{0}',{1:0.}", type, _ElapsedTime[type].TotalMilliseconds); - } - private Dictionary _ElapsedTime; - private DateTime _LastTime=DateTime.Now; - private DateTime _StartTime = DateTime.Now; - void pp_StatusChanged(object sender, PromsPrintStatusArgs args) - { - if (args.Type == PromsPrinterStatusType.Start) _LastTime = _StartTime = args.When; - MyStatus = args.MyStatus; - TimeSpan delta = TimeSpan.FromTicks(args.When.Ticks - _LastTime.Ticks); - if (_ElapsedTime.ContainsKey(args.Type)) - _ElapsedTime[args.Type] += delta; - else - _ElapsedTime.Add(args.Type, delta); - //if (tbTimings.Text != "") tbTimings.Text += "\r\n"; - //tbTimings.Text += string.Format("{0},{1},'{2}','{3}'", TimeSpan.FromTicks(args.When.Ticks -_StartTime.Ticks).TotalSeconds, delta.TotalMilliseconds, args.Type, args.MyStatus); - _LastTime = args.When; - } - private void pDFToolStripMenuItem_Click(object sender, EventArgs e) - { - CreatePDF(); - } - private void frmPrintMSWord_Load(object sender, EventArgs e) - { - DocVersionInfo dvi = GetDocVersionWithContent(); - lbProcs.DataSource = dvi.Procedures; - } - - private void pDFsToolStripMenuItem_Click(object sender, EventArgs e) - { - TimerStart = DateTime.Now; - Volian.Print.Library.Rtf2Pdf.PdfDebug = true; - tbTimings.Text = ""; - Cursor saveCursor = this.Cursor; - this.Cursor = Cursors.WaitCursor; - //ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark; - ItemInfoList myItems = lbProcs.DataSource as ItemInfoList; - tspbStatus.Maximum = myItems.Count; - tspbStatus.Value = 0; - tspbStatus.Visible = true; - foreach (ItemInfo myItem in myItems) - { - ProcedureNumber = myItem.DisplayNumber; - if (tspbStatus != null) tspbStatus.Value++; - CreatePDF(myItem.MyProcedure, false,false); - } - ProcedureNumber = ""; - MyTimerStatus = "Processing Complete"; - tspbStatus.Visible = false; - this.Cursor = saveCursor; - } - } -} diff --git a/PROMS/VEPROMS/PrintMSWord/frmPrintMsWord.resx b/PROMS/VEPROMS/PrintMSWord/frmPrintMsWord.resx deleted file mode 100644 index 7de6988d..00000000 --- a/PROMS/VEPROMS/PrintMSWord/frmPrintMsWord.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 132, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/PrintMSWord_071410.zip b/PROMS/VEPROMS/PrintMSWord_071410.zip deleted file mode 100644 index bcd42519..00000000 Binary files a/PROMS/VEPROMS/PrintMSWord_071410.zip and /dev/null differ diff --git a/PROMS/VEPROMS/PrintMSWordxxx/App.config b/PROMS/VEPROMS/PrintMSWordxxx/App.config deleted file mode 100644 index e5c55b8d..00000000 --- a/PROMS/VEPROMS/PrintMSWordxxx/App.config +++ /dev/null @@ -1,136 +0,0 @@ - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - 1 - - - 2 - - - 192, 255, 255 - - - True - - - False - - - Normal - - - True - - - - - False - - - 1 - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/PrintMSWordxxx/Program.cs b/PROMS/VEPROMS/PrintMSWordxxx/Program.cs deleted file mode 100644 index 3ca02c65..00000000 --- a/PROMS/VEPROMS/PrintMSWordxxx/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace PrintMSWord -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmPrintMSWord()); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/PrintMSWordxxx/Properties/AssemblyInfo.cs b/PROMS/VEPROMS/PrintMSWordxxx/Properties/AssemblyInfo.cs deleted file mode 100644 index 0883c420..00000000 --- a/PROMS/VEPROMS/PrintMSWordxxx/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PrintMSWord")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("PrintMSWord")] -[assembly: AssemblyCopyright("Copyright © 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("3b56b3e7-fe71-4d89-9409-7cfd19c6d1d6")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/VEPROMS/PrintMSWordxxx/Properties/Resources.Designer.cs b/PROMS/VEPROMS/PrintMSWordxxx/Properties/Resources.Designer.cs deleted file mode 100644 index d9ca0fb4..00000000 --- a/PROMS/VEPROMS/PrintMSWordxxx/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PrintMSWord.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PrintMSWord.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/VEPROMS/PrintMSWordxxx/Properties/Resources.resx b/PROMS/VEPROMS/PrintMSWordxxx/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/VEPROMS/PrintMSWordxxx/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/PrintMSWordxxx/Properties/Settings.Designer.cs b/PROMS/VEPROMS/PrintMSWordxxx/Properties/Settings.Designer.cs deleted file mode 100644 index 264d0f51..00000000 --- a/PROMS/VEPROMS/PrintMSWordxxx/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PrintMSWord.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/VEPROMS/PrintMSWordxxx/Properties/Settings.settings b/PROMS/VEPROMS/PrintMSWordxxx/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/VEPROMS/PrintMSWordxxx/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/VEPROMS/PrintMSWordxxx/frmPrintMsWord.Designer.cs b/PROMS/VEPROMS/PrintMSWordxxx/frmPrintMsWord.Designer.cs deleted file mode 100644 index c27f976c..00000000 --- a/PROMS/VEPROMS/PrintMSWordxxx/frmPrintMsWord.Designer.cs +++ /dev/null @@ -1,278 +0,0 @@ -namespace PrintMSWord -{ - partial class frmPrintMSWord - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pDFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pDFsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tspbStatus = new System.Windows.Forms.ToolStripProgressBar(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.panel1 = new System.Windows.Forms.Panel(); - this.cbDebugOutput = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.tbTimings = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.cbWatermark = new System.Windows.Forms.ComboBox(); - this.tbRevDate = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.tbRev = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.lbProcs = new System.Windows.Forms.ListBox(); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.pDFToolStripMenuItem, - this.pDFsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(844, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - // - // pDFToolStripMenuItem - // - this.pDFToolStripMenuItem.Name = "pDFToolStripMenuItem"; - this.pDFToolStripMenuItem.Size = new System.Drawing.Size(40, 20); - this.pDFToolStripMenuItem.Text = "PDF"; - this.pDFToolStripMenuItem.Click += new System.EventHandler(this.pDFToolStripMenuItem_Click); - // - // pDFsToolStripMenuItem - // - this.pDFsToolStripMenuItem.Name = "pDFsToolStripMenuItem"; - this.pDFsToolStripMenuItem.Size = new System.Drawing.Size(45, 20); - this.pDFsToolStripMenuItem.Text = "PDFs"; - this.pDFsToolStripMenuItem.Click += new System.EventHandler(this.pDFsToolStripMenuItem_Click); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tspbStatus, - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 315); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(844, 22); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tspbStatus - // - this.tspbStatus.Name = "tspbStatus"; - this.tspbStatus.Size = new System.Drawing.Size(100, 16); - this.tspbStatus.Visible = false; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // panel1 - // - this.panel1.Controls.Add(this.cbDebugOutput); - this.panel1.Controls.Add(this.tbTimings); - this.panel1.Controls.Add(this.label3); - this.panel1.Controls.Add(this.cbWatermark); - this.panel1.Controls.Add(this.tbRevDate); - this.panel1.Controls.Add(this.label2); - this.panel1.Controls.Add(this.tbRev); - this.panel1.Controls.Add(this.label1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Right; - this.panel1.Location = new System.Drawing.Point(485, 24); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(359, 291); - this.panel1.TabIndex = 2; - // - // cbDebugOutput - // - // - // - // - this.cbDebugOutput.BackgroundStyle.Class = ""; - this.cbDebugOutput.Checked = true; - this.cbDebugOutput.CheckState = System.Windows.Forms.CheckState.Checked; - this.cbDebugOutput.CheckValue = "Y"; - this.cbDebugOutput.Location = new System.Drawing.Point(8, 32); - this.cbDebugOutput.Margin = new System.Windows.Forms.Padding(2); - this.cbDebugOutput.Name = "cbDebugOutput"; - this.cbDebugOutput.Size = new System.Drawing.Size(110, 19); - this.cbDebugOutput.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.cbDebugOutput.TabIndex = 9; - this.cbDebugOutput.Text = "Debug Output"; - // - // tbTimings - // - this.tbTimings.AcceptsReturn = true; - this.tbTimings.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbTimings.Location = new System.Drawing.Point(0, 56); - this.tbTimings.Multiline = true; - this.tbTimings.Name = "tbTimings"; - this.tbTimings.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbTimings.Size = new System.Drawing.Size(359, 235); - this.tbTimings.TabIndex = 8; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(180, 32); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(59, 13); - this.label3.TabIndex = 5; - this.label3.Text = "Watermark"; - // - // cbWatermark - // - this.cbWatermark.FormattingEnabled = true; - this.cbWatermark.Items.AddRange(new object[] { - "(None)", - "Draft", - "Master", - "Sample", - "Reference", - "Information Only"}); - this.cbWatermark.Location = new System.Drawing.Point(245, 29); - this.cbWatermark.Name = "cbWatermark"; - this.cbWatermark.Size = new System.Drawing.Size(100, 21); - this.cbWatermark.TabIndex = 4; - this.cbWatermark.Text = "(None)"; - // - // tbRevDate - // - this.tbRevDate.AcceptsReturn = true; - this.tbRevDate.Location = new System.Drawing.Point(245, 3); - this.tbRevDate.Name = "tbRevDate"; - this.tbRevDate.Size = new System.Drawing.Size(100, 20); - this.tbRevDate.TabIndex = 3; - this.tbRevDate.Text = "07/27/10"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(180, 6); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(30, 13); - this.label2.TabIndex = 2; - this.label2.Text = "Date"; - // - // tbRev - // - this.tbRev.Location = new System.Drawing.Point(71, 3); - this.tbRev.Name = "tbRev"; - this.tbRev.Size = new System.Drawing.Size(100, 20); - this.tbRev.TabIndex = 1; - this.tbRev.Text = "25"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(6, 6); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(27, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Rev"; - // - // lbProcs - // - this.lbProcs.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbProcs.FormattingEnabled = true; - this.lbProcs.Location = new System.Drawing.Point(0, 24); - this.lbProcs.Name = "lbProcs"; - this.lbProcs.Size = new System.Drawing.Size(485, 290); - this.lbProcs.TabIndex = 3; - this.lbProcs.DoubleClick += new System.EventHandler(this.lbProcs_DoubleClick); - // - // frmPrintMSWord - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(844, 337); - this.Controls.Add(this.lbProcs); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmPrintMSWord"; - this.Text = "PrintMSWord"; - this.Load += new System.EventHandler(this.frmPrintMSWord_Load); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem pDFToolStripMenuItem; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.ListBox lbProcs; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.ComboBox cbWatermark; - private System.Windows.Forms.TextBox tbRevDate; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox tbRev; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbTimings; - private DevComponents.DotNetBar.Controls.CheckBoxX cbDebugOutput; - private System.Windows.Forms.ToolStripMenuItem pDFsToolStripMenuItem; - private System.Windows.Forms.ToolStripProgressBar tspbStatus; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/PrintMSWordxxx/frmPrintMsWord.cs b/PROMS/VEPROMS/PrintMSWordxxx/frmPrintMsWord.cs deleted file mode 100644 index 6316362f..00000000 --- a/PROMS/VEPROMS/PrintMSWordxxx/frmPrintMsWord.cs +++ /dev/null @@ -1,156 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using System.IO; -using Volian.Svg.Library; -using Volian.Print.Library; -using Volian.Base.Library; - -namespace PrintMSWord -{ - public partial class frmPrintMSWord : Form - { - public frmPrintMSWord() - { - InitializeComponent(); - } - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - private DateTime _TimerStart; - public DateTime TimerStart - { - get { return _TimerStart; } - set { _TimerStart = value; } - } - private string _ProcedureNumber; - public string ProcedureNumber - { - get { return _ProcedureNumber; } - set { _ProcedureNumber = value; } - } - public string MyTimerStatus - { - get { return tsslStatus.Text; } - set { - TimeSpan ts = DateTime.Now - _TimerStart; - DateTime dt = new DateTime(ts.Ticks); - tsslStatus.Text = string.Format("{0:HH:mm:ss.fff} {1} {2}",dt,ProcedureNumber,value); - Application.DoEvents(); - } - } - private DocVersionInfo GetDocVersionWithContent() - { - DocVersionInfoList dvList = DocVersionInfoList.Get(); - foreach (DocVersionInfo docVersion in dvList) - if (docVersion.Procedures != null) - if (docVersion.Procedures[0].ItemID != 0) - return docVersion; - return null; - } - public ProcedureInfo MyProcedure - { - get { return lbProcs.SelectedValue as ProcedureInfo; } - } - private void lbProcs_DoubleClick(object sender, EventArgs e) - { - CreatePDF(); - } - private void CreatePDF() - { - TimerStart = DateTime.Now; - ProcedureInfo myProcedure = MyProcedure; - Volian.Print.Library.Rtf2Pdf.PdfDebug = true; - tbTimings.Text = ""; - Cursor saveCursor = this.Cursor; - this.Cursor = Cursors.WaitCursor; - //ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark; - CreatePDF(myProcedure,true); - this.Cursor = saveCursor; - } - - private void CreatePDF(ProcedureInfo myProcedure, bool openPdf) - { - // set up for using format default change bars. - ChangeBarDefinition cbd = new ChangeBarDefinition(); - ChangeBarData changeBarData = MyProcedure.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData; - cbd.MyChangeBarType = PrintChangeBar.WithDefault; - cbd.MyChangeBarText = changeBarData.ChangeBarMessage == "ChgID" ? PrintChangeBarText.ChgID : - changeBarData.ChangeBarMessage == "DateAndChgID" ? PrintChangeBarText.DateChgID : - changeBarData.ChangeBarMessage == "None" ? PrintChangeBarText.None : - changeBarData.ChangeBarMessage == "RevNum" ? PrintChangeBarText.RevNum : PrintChangeBarText.UserDef; - PromsPrinter pp = new PromsPrinter(myProcedure, tbRev.Text, cbWatermark.Text, cbDebugOutput.Checked, false, @"C:\TEMP\32Bit\Compare", openPdf, true, cbd, - myProcedure.DisplayNumber.Replace('/','_').Replace('\\','_'),false); - pp.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged); - _ElapsedTime = new Dictionary(); - DateTime tStart = DateTime.Now; - string pdfFile = pp.Print(@"C:\TEMP\32Bit", false); - DateTime tEnd = DateTime.Now; - _ElapsedTime.Add(PromsPrinterStatusType.Total, DateTime.Now - tStart); - MyTimerStatus = pdfFile + " created."; - ShowElapsedTime(); - //MyStatus = string.Format("{0} created in {1:0.} milliseconds", pdfFile, (TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds)); - } - private void ShowElapsedTime() - { - foreach (PromsPrinterStatusType type in _ElapsedTime.Keys) - tbTimings.Text += "\r\n" + string.Format("'{0}',{1:0.}", type, _ElapsedTime[type].TotalMilliseconds); - } - private Dictionary _ElapsedTime; - private DateTime _LastTime=DateTime.Now; - private DateTime _StartTime = DateTime.Now; - void pp_StatusChanged(object sender, PromsPrintStatusArgs args) - { - if (args.Type == PromsPrinterStatusType.Start) _LastTime = _StartTime = args.When; - MyStatus = args.MyStatus; - TimeSpan delta = TimeSpan.FromTicks(args.When.Ticks - _LastTime.Ticks); - if (_ElapsedTime.ContainsKey(args.Type)) - _ElapsedTime[args.Type] += delta; - else - _ElapsedTime.Add(args.Type, delta); - //if (tbTimings.Text != "") tbTimings.Text += "\r\n"; - //tbTimings.Text += string.Format("{0},{1},'{2}','{3}'", TimeSpan.FromTicks(args.When.Ticks -_StartTime.Ticks).TotalSeconds, delta.TotalMilliseconds, args.Type, args.MyStatus); - _LastTime = args.When; - } - private void pDFToolStripMenuItem_Click(object sender, EventArgs e) - { - CreatePDF(); - } - private void frmPrintMSWord_Load(object sender, EventArgs e) - { - DocVersionInfo dvi = GetDocVersionWithContent(); - lbProcs.DataSource = dvi.Procedures; - } - - private void pDFsToolStripMenuItem_Click(object sender, EventArgs e) - { - TimerStart = DateTime.Now; - Volian.Print.Library.Rtf2Pdf.PdfDebug = true; - tbTimings.Text = ""; - Cursor saveCursor = this.Cursor; - this.Cursor = Cursors.WaitCursor; - //ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark; - ItemInfoList myItems = lbProcs.DataSource as ItemInfoList; - tspbStatus.Maximum = myItems.Count; - tspbStatus.Value = 0; - tspbStatus.Visible = true; - foreach (ItemInfo myItem in myItems) - { - ProcedureNumber = myItem.DisplayNumber; - if (tspbStatus != null) tspbStatus.Value++; - CreatePDF(myItem.MyProcedure, false); - } - ProcedureNumber = ""; - MyTimerStatus = "Processing Complete"; - tspbStatus.Visible = false; - this.Cursor = saveCursor; - } - } -} diff --git a/PROMS/VEPROMS/PrintMSWordxxx/frmPrintMsWord.resx b/PROMS/VEPROMS/PrintMSWordxxx/frmPrintMsWord.resx deleted file mode 100644 index 7de6988d..00000000 --- a/PROMS/VEPROMS/PrintMSWordxxx/frmPrintMsWord.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 132, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/TestFullLoad/App.config b/PROMS/VEPROMS/TestFullLoad/App.config deleted file mode 100644 index 77266108..00000000 --- a/PROMS/VEPROMS/TestFullLoad/App.config +++ /dev/null @@ -1,107 +0,0 @@ - - - -
    - -
    -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Normal - - - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/TestFullLoad/Program.cs b/PROMS/VEPROMS/TestFullLoad/Program.cs deleted file mode 100644 index 31f0930b..00000000 --- a/PROMS/VEPROMS/TestFullLoad/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace TestFullLoad -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmLoadAtOnce()); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/TestFullLoad/Properties/AssemblyInfo.cs b/PROMS/VEPROMS/TestFullLoad/Properties/AssemblyInfo.cs deleted file mode 100644 index ed2a3ed5..00000000 --- a/PROMS/VEPROMS/TestFullLoad/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("TestFullLoad")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("TestFullLoad")] -[assembly: AssemblyCopyright("Copyright © 2008")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("16ad9c0b-b1c9-4ccd-9115-83e0878aa9b0")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/VEPROMS/TestFullLoad/Properties/Resources.Designer.cs b/PROMS/VEPROMS/TestFullLoad/Properties/Resources.Designer.cs deleted file mode 100644 index cb5ca591..00000000 --- a/PROMS/VEPROMS/TestFullLoad/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18444 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestFullLoad.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("TestFullLoad.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/VEPROMS/TestFullLoad/Properties/Resources.resx b/PROMS/VEPROMS/TestFullLoad/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/VEPROMS/TestFullLoad/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/TestFullLoad/Properties/Settings.Designer.cs b/PROMS/VEPROMS/TestFullLoad/Properties/Settings.Designer.cs deleted file mode 100644 index 3c170d3f..00000000 --- a/PROMS/VEPROMS/TestFullLoad/Properties/Settings.Designer.cs +++ /dev/null @@ -1,72 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18444 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace TestFullLoad.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Drawing.Size Size { - get { - return ((global::System.Drawing.Size)(this["Size"])); - } - set { - this["Size"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Drawing.Point Location { - get { - return ((global::System.Drawing.Point)(this["Location"])); - } - set { - this["Location"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Normal")] - public global::System.Windows.Forms.FormWindowState WindowState { - get { - return ((global::System.Windows.Forms.FormWindowState)(this["WindowState"])); - } - set { - this["WindowState"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string LastDatabase { - get { - return ((string)(this["LastDatabase"])); - } - set { - this["LastDatabase"] = value; - } - } - } -} diff --git a/PROMS/VEPROMS/TestFullLoad/Properties/Settings.settings b/PROMS/VEPROMS/TestFullLoad/Properties/Settings.settings deleted file mode 100644 index 38d9c056..00000000 --- a/PROMS/VEPROMS/TestFullLoad/Properties/Settings.settings +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - Normal - - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/TestFullLoad/TestFullLoad.csproj b/PROMS/VEPROMS/TestFullLoad/TestFullLoad.csproj deleted file mode 100644 index 51d2c5ad..00000000 --- a/PROMS/VEPROMS/TestFullLoad/TestFullLoad.csproj +++ /dev/null @@ -1,136 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {5938BB0C-611D-4BE2-A21D-459D9C9B63C5} - WinExe - Properties - TestFullLoad - TestFullLoad - v2.0 - - - - - 2.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - bin\Demo\ - - - true - bin\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\Release\ - TRACE - true - pdbonly - x86 - prompt - - - bin\Demo\ - x86 - - - - False - F:\CSLA\csla20cs-2.1.4-070223\csla20cs\csla20cs\Csla\bin\Debug\Csla.dll - - - False - F:\Log4Net\log4net-1.2.10\bin\net\2.0\release\log4net.dll - - - - - - - - - - - Form - - - frmTestLoadAtOnce.cs - - - - - Designer - frmTestLoadAtOnce.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC} - DropDownPanel - - - {23DECB23-7CEA-433E-88BD-67DA7689B89E} - TablePicker - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/TestFullLoad/TestFullLoad.csproj.bak b/PROMS/VEPROMS/TestFullLoad/TestFullLoad.csproj.bak deleted file mode 100644 index dcbe01e7..00000000 --- a/PROMS/VEPROMS/TestFullLoad/TestFullLoad.csproj.bak +++ /dev/null @@ -1,129 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {5938BB0C-611D-4BE2-A21D-459D9C9B63C5} - WinExe - Properties - TestFullLoad - TestFullLoad - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - bin\Demo\ - - - true - bin\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\Release\ - TRACE - true - pdbonly - x86 - prompt - - - bin\Demo\ - x86 - - - - False - ..\..\VEPROMS User Interface\bin\Debug\Csla.dll - - - False - F:\Log4Net\log4net-1.2.10\bin\net\2.0\release\log4net.dll - - - - - - - - - - - Form - - - frmTestLoadAtOnce.cs - - - - - Designer - frmTestLoadAtOnce.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC} - DropDownPanel - - - {23DECB23-7CEA-433E-88BD-67DA7689B89E} - TablePicker - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/TestFullLoad/frmTestLoadAtOnce.Designer.cs b/PROMS/VEPROMS/TestFullLoad/frmTestLoadAtOnce.Designer.cs deleted file mode 100644 index d765fff9..00000000 --- a/PROMS/VEPROMS/TestFullLoad/frmTestLoadAtOnce.Designer.cs +++ /dev/null @@ -1,225 +0,0 @@ -namespace TestFullLoad -{ - partial class frmLoadAtOnce - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.lbProcedures = new System.Windows.Forms.ListBox(); - this.pg = new System.Windows.Forms.PropertyGrid(); - this.panel1 = new System.Windows.Forms.Panel(); - this.label2 = new System.Windows.Forms.Label(); - this.cbUnits = new System.Windows.Forms.ComboBox(); - this.label1 = new System.Windows.Forms.Label(); - this.tbItemID = new System.Windows.Forms.TextBox(); - this.btnRunOne = new System.Windows.Forms.Button(); - this.btnRunAll = new System.Windows.Forms.Button(); - this.cbType = new System.Windows.Forms.ComboBox(); - this.statusStrip1.SuspendLayout(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 544); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(1047, 22); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 30); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.lbProcedures); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.pg); - this.splitContainer1.Size = new System.Drawing.Size(1047, 514); - this.splitContainer1.SplitterDistance = 406; - this.splitContainer1.TabIndex = 2; - // - // lbProcedures - // - this.lbProcedures.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbProcedures.FormattingEnabled = true; - this.lbProcedures.Location = new System.Drawing.Point(0, 0); - this.lbProcedures.Name = "lbProcedures"; - this.lbProcedures.Size = new System.Drawing.Size(406, 511); - this.lbProcedures.TabIndex = 0; - // - // pg - // - this.pg.Dock = System.Windows.Forms.DockStyle.Fill; - this.pg.Location = new System.Drawing.Point(0, 0); - this.pg.Name = "pg"; - this.pg.Size = new System.Drawing.Size(637, 514); - this.pg.TabIndex = 0; - // - // panel1 - // - this.panel1.Controls.Add(this.label2); - this.panel1.Controls.Add(this.cbUnits); - this.panel1.Controls.Add(this.label1); - this.panel1.Controls.Add(this.tbItemID); - this.panel1.Controls.Add(this.btnRunOne); - this.panel1.Controls.Add(this.btnRunAll); - this.panel1.Controls.Add(this.cbType); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(1047, 30); - this.panel1.TabIndex = 3; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(504, 9); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(34, 13); - this.label2.TabIndex = 6; - this.label2.Text = "Units:"; - // - // cbUnits - // - this.cbUnits.Enabled = false; - this.cbUnits.FormattingEnabled = true; - this.cbUnits.Location = new System.Drawing.Point(544, 6); - this.cbUnits.Name = "cbUnits"; - this.cbUnits.Size = new System.Drawing.Size(224, 21); - this.cbUnits.TabIndex = 5; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(315, 8); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(38, 13); - this.label1.TabIndex = 4; - this.label1.Text = "ItemID"; - // - // tbItemID - // - this.tbItemID.Location = new System.Drawing.Point(359, 5); - this.tbItemID.Name = "tbItemID"; - this.tbItemID.Size = new System.Drawing.Size(40, 20); - this.tbItemID.TabIndex = 3; - this.tbItemID.Text = "4545"; - // - // btnRunOne - // - this.btnRunOne.Location = new System.Drawing.Point(405, 3); - this.btnRunOne.Name = "btnRunOne"; - this.btnRunOne.Size = new System.Drawing.Size(75, 23); - this.btnRunOne.TabIndex = 2; - this.btnRunOne.Text = "Run One"; - this.btnRunOne.UseVisualStyleBackColor = true; - this.btnRunOne.Click += new System.EventHandler(this.btnRunOne_Click); - // - // btnRunAll - // - this.btnRunAll.Location = new System.Drawing.Point(198, 3); - this.btnRunAll.Name = "btnRunAll"; - this.btnRunAll.Size = new System.Drawing.Size(75, 23); - this.btnRunAll.TabIndex = 1; - this.btnRunAll.Text = "Run All"; - this.btnRunAll.UseVisualStyleBackColor = true; - this.btnRunAll.Click += new System.EventHandler(this.btnRunAll_Click); - // - // cbType - // - this.cbType.FormattingEnabled = true; - this.cbType.Items.AddRange(new object[] { - "One at a time", - "CSLA - All at Once - Spin Through Children", - "SQL - All at Once - Query"}); - this.cbType.Location = new System.Drawing.Point(12, 5); - this.cbType.Name = "cbType"; - this.cbType.Size = new System.Drawing.Size(177, 21); - this.cbType.TabIndex = 0; - this.cbType.Text = "One at a time"; - // - // frmLoadAtOnce - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1047, 566); - this.Controls.Add(this.splitContainer1); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.panel1); - this.Name = "frmLoadAtOnce"; - this.Text = "Test Load at Once"; - this.Load += new System.EventHandler(this.frmLoadAtOnce_Load); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmLoadAtOnce_FormClosing); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.ResumeLayout(false); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.PropertyGrid pg; - private System.Windows.Forms.ListBox lbProcedures; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.ComboBox cbType; - private System.Windows.Forms.Button btnRunAll; - private System.Windows.Forms.Button btnRunOne; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbItemID; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.ComboBox cbUnits; - } -} - diff --git a/PROMS/VEPROMS/TestFullLoad/frmTestLoadAtOnce.cs b/PROMS/VEPROMS/TestFullLoad/frmTestLoadAtOnce.cs deleted file mode 100644 index 036be741..00000000 --- a/PROMS/VEPROMS/TestFullLoad/frmTestLoadAtOnce.cs +++ /dev/null @@ -1,302 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; - -namespace TestFullLoad -{ - public partial class frmLoadAtOnce : Form - { - public frmLoadAtOnce() - { - InitializeComponent(); - } - private ItemInfoList _Procedures; - private bool _IsMultiUnit = false; - private void frmLoadAtOnce_Load(object sender, EventArgs e) - { - LoadSettings(); - // Set these events after loading settings - otherwise the settings will be updated to the defaults - Move+=new EventHandler(frmLoadAtOnce_Move); - Resize+=new EventHandler(frmLoadAtOnce_Resize); - try - { - DocVersionInfo docVersion = GetDocVersionWithContent(); - if (docVersion.MultiUnitCount > 1) - { - foreach (string s in docVersion.UnitNames) - cbUnits.Items.Add(s.Trim()); - cbUnits.SelectedIndex = 0; - cbUnits.Enabled = true; - _IsMultiUnit = true; - } - _Procedures = docVersion.Procedures; - lbProcedures.DataSource = _Procedures; - lbProcedures.SelectedIndex = -1; - lbProcedures.SelectedValueChanged+=new EventHandler(lbProcedures_SelectedValueChanged); - } - catch (Exception ex) - { - Console.WriteLine("ex - {0}", ex); - } - } - private void LoadSettings() - { - if (GetPropertyString("Location") != "") - this.Location = Properties.Settings.Default.Location; - if ((Properties.Settings.Default["Size"] ?? "") != "") - this.Size = Properties.Settings.Default.Size; - this.WindowState = Properties.Settings.Default.WindowState; - Database.ConnectionName = "VEPROMS_BODINE_DEBUG"; - if (Properties.Settings.Default.LastDatabase != string.Empty) - { - if (MessageBox.Show(string.Format("use database {0}?", Properties.Settings.Default.LastDatabase), "use database", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - Database.SelectedDatabase = Properties.Settings.Default.LastDatabase; - } - Properties.Settings.Default.LastDatabase = Database.SelectedDatabase; - Properties.Settings.Default.Save(); - } - private string GetPropertyString(string propertyName) - { - object prop = Properties.Settings.Default[propertyName]; - return prop == null ? "" : prop.ToString(); - } - private DocVersionInfo GetDocVersionWithContent() - { - DocVersionInfoList dvList = DocVersionInfoList.Get(); - foreach (DocVersionInfo docVersion in dvList) - if (docVersion.Procedures != null) - if (docVersion.Procedures[0].ItemID != 0) - return docVersion; - return null; - } - private int WalkThroughChildren(ItemInfo itemInfo) - { - Console.WriteLine(itemInfo.ItemID); - if (itemInfo.ItemID == 284) - Console.WriteLine("stop or spot"); - int retval = 0; - // Look at siblings and look at children - if (itemInfo != null) - { - if (itemInfo.MyContent.ContentPartCount > 0) - { - foreach (PartInfo pi in itemInfo.MyContent.ContentParts) - { - foreach (ItemInfo ii in pi.MyItems) - { - //retval += WalkThroughSiblings(ii); - retval++; - retval += WalkThroughChildren(ii); - } - } - } - } - return retval; - } - private string ChildList(ItemInfo itm, int level) - { - StringBuilder retval = new StringBuilder(); - // Look at siblings and look at children - //if (itm.MyContent.ContentPartCount > 0 && itm.ItemID != 4078 && itm.ItemID != 4192 && itm.ItemID != 4194 && - // itm.ItemID != 4330 && itm.ItemID != 4452) - if (itm.MyContent.ContentPartCount > 0 ) - { - //retval.Append(string.Format("\r\n{0}(", "".PadLeft(level, '\t'))); - retval.Append(ShowItem(itm)); - foreach (PartInfo pi in itm.MyContent.ContentParts) - { - retval.Append(string.Format("\r\n{0}({1} ", "".PadLeft(level + 1, '\t'), Enum.GetName(typeof(E_FromTypes), pi.FromType))); - foreach (ItemInfo ii in pi.MyItems) - { - //retval += WalkThroughSiblings(ii); - if (retval.ToString().EndsWith(")")) - retval.Append(string.Format("\r\n{0}", "".PadLeft(level + 2, '\t'))); - retval.Append(ChildList(ii, level + 1)); - } - retval.Append(string.Format(")", "".PadLeft(level, '\t'))); - } - //retval.Append(string.Format("\r\n{0})", "".PadLeft(level, '\t'))); - } - else - { - retval.Append(ShowItem(itm)); - } - return retval.ToString(); - } - private string ShowItem(ItemInfo itm) - { - return string.Format("{0}{1} ", itm.ItemID, ActiveSection(itm)); - //return string.Format("{0}{1} ", itm.ItemID, ActiveParent(itm)); - } - private string ActiveParent(ItemInfo itm) - { - if (itm == null || itm.MyActiveParent == null) return string.Empty; - return string.Format("({0})", itm.MyActiveParent); - } - private string ActiveSection(ItemInfo itm) - { - if (itm == null || itm.MyActiveSection == null) return ""; - return string.Format("({0})", itm.MyActiveSection); - } - //private int WalkThroughSiblings(ItemInfo itemInfo) - //{ - // int retval = 0; - // if (itemInfo.NextItemCount > 0) - // { - // foreach (ItemInfo itm in itemInfo.NextItems) - // { - // retval++; - // retval += WalkThroughChildren(itm); - // } - // } - // return retval; - //} - private void lbProcedures_SelectedValueChanged(object sender, EventArgs e) - { - ItemInfo itemInfo = lbProcedures.SelectedValue as ItemInfo; - if (itemInfo != null) - { - LoadEntireProcedure(itemInfo.ItemID); - pg.SelectedObject = MyItemInfo; - } - } - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - private int LoadEntireProcedure(int itemID) - { - DateTime dtStart = DateTime.Now;// Record the start time - MyItemInfo = GetItem(itemID);// Load an item - DateTime dtLoad = DateTime.Now;// Record the time to this point - int cnt = WalkThroughChildren(MyItemInfo);// Scan the item counting it's nodes - DateTime dtEnd = DateTime.Now; // Record the end time - RecordResults(dtStart,dtLoad,dtEnd,cnt);// Place results on Status Line - //pg.SelectedObject = itemInfo; // Set the propertygrid to point to the loaded object - return cnt; - } - private ItemInfo GetItem(int itemID) - { - switch (cbType.Text as string) - { - case("One at a time"):// - return ItemInfo.Get(itemID); - case ("CSLA - All at Once - Spin Through Children"):// - return ItemInfo.GetItemAndChildren2(itemID); - case ("SQL - All at Once - Query"):// - if (_IsMultiUnit) - return ProcedureInfo.GetItemAndChildrenByUnit(itemID, 0, cbUnits.SelectedIndex + 1); - else - return ItemInfo.GetItemAndChildren(itemID, 0); - default: - return null; - } - } - private TimeSpan _TsLoad; - private TimeSpan _TsWalk; - private TimeSpan _TsTotal; - private int _Count; - private void ResetResults() - { - _TsLoad = _TsWalk = _TsTotal = new TimeSpan(0); - _Count = 0; - } - private void RecordResults(DateTime dtStart, DateTime dtLoad, DateTime dtEnd, int count) - { - TimeSpan tsLoad = dtLoad - dtStart; - TimeSpan tsWalk = dtEnd - dtLoad; - TimeSpan tsTotal = dtEnd - dtStart; - _TsLoad += tsLoad; - _TsWalk += tsWalk; - _TsTotal += tsTotal; - _Count += count; - tsslStatus.Text = string.Format("Load {0}, Check {1}, Total {2}, Items {3}", - tsLoad.TotalSeconds, tsWalk.TotalSeconds, tsTotal.TotalSeconds, count); - //Application.DoEvents(); - //Console.WriteLine("{0}\t{1}\t{2}\t{3}", tsLoad.TotalSeconds,tsWalk.TotalSeconds,tsTotal.TotalSeconds, cnt); - } - private void DisplaySummary() - { - tsslStatus.Text = string.Format("Load {0}, Check {1}, Total {2}, Items {3}", - _TsLoad.TotalSeconds, _TsWalk.TotalSeconds, _TsTotal.TotalSeconds, _Count); - Console.WriteLine("{0},{1},{2},{3}", - _TsLoad.TotalSeconds, _TsWalk.TotalSeconds, _TsTotal.TotalSeconds, _Count); - } - private string _MyTitle; - public string MyTitle - { - get { return _MyTitle; } - set - { - if (_MyTitle == value) return; - _MyTitle = value; - Console.WriteLine(MyTitle); - } - } - - private void btnRunAll_Click(object sender, EventArgs e) - { - Cursor tmp = this.Cursor; - this.Cursor = Cursors.WaitCursor; - //DateTime dtStart = DateTime.Now; - MyTitle = cbType.Text; - ResetResults(); - int cnt = 0; - foreach(ItemInfo itemInfo in _Procedures) - cnt += LoadEntireProcedure(itemInfo.ItemID); - //DateTime dtEnd = DateTime.Now; - //tsslStatus.Text = string.Format("Total {0} Count {1}", - // TimeSpan.FromTicks(dtEnd.Ticks - dtStart.Ticks).TotalSeconds,cnt); - DisplaySummary(); - this.Cursor = tmp; - } - private void btnRunOne_Click(object sender, EventArgs e) - { - // Run the Gets for - int itemID = int.Parse(tbItemID.Text); - //for(int i=1;i<5;i++) - // ShowItem(ItemInfo.GetItemAndChildren(itemID, 0), string.Format("XX All at Once Query({0})",i)); - //ShowItem(ItemInfo.Get(itemID),"One at a time"); - //ShowItem(ItemInfo.GetItemAndChildren2(itemID),"All at Once"); - ShowItem(ItemInfo.GetItemAndChildren(itemID, 0), "XX All at Once Query"); - } - private void ShowItem(ItemInfo itemInfo, string title) - { - Console.WriteLine("{0}\r\n{1}", title, ChildList(itemInfo, 0)); - } - private void frmLoadAtOnce_FormClosing(object sender, FormClosingEventArgs e) - { - SaveSettings(); - } - private void SaveSettings() - { - Properties.Settings.Default.LastDatabase = Database.SelectedDatabase; - Properties.Settings.Default.WindowState = this.WindowState; - Properties.Settings.Default.Save(); - } - private void frmLoadAtOnce_Move(object sender, EventArgs e) - { - if (this.WindowState == FormWindowState.Normal) - { - Properties.Settings.Default.Location = this.Location; - Properties.Settings.Default.Size = this.Size; - } - } - private void frmLoadAtOnce_Resize(object sender, EventArgs e) - { - if (this.WindowState == FormWindowState.Normal) - { - Properties.Settings.Default.Location = this.Location; - Properties.Settings.Default.Size = this.Size; - } - } - - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/TestFullLoad/frmTestLoadAtOnce.resx b/PROMS/VEPROMS/TestFullLoad/frmTestLoadAtOnce.resx deleted file mode 100644 index b9c202bf..00000000 --- a/PROMS/VEPROMS/TestFullLoad/frmTestLoadAtOnce.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/WindowsApplication1/Form1.Designer.cs b/PROMS/VEPROMS/WindowsApplication1/Form1.Designer.cs deleted file mode 100644 index 64756a95..00000000 --- a/PROMS/VEPROMS/WindowsApplication1/Form1.Designer.cs +++ /dev/null @@ -1,75 +0,0 @@ -namespace WindowsApplication1 -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); - this.vlnFlexGrid1 = new Volian.Controls.Library.VlnFlexGrid(this.components); - ((System.ComponentModel.ISupportInitialize)(this.vlnFlexGrid1)).BeginInit(); - this.SuspendLayout(); - // - // vlnFlexGrid1 - // - this.vlnFlexGrid1.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom; - this.vlnFlexGrid1.AllowResizing = C1.Win.C1FlexGrid.AllowResizingEnum.Both; - this.vlnFlexGrid1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.vlnFlexGrid1.ColumnInfo = "3,0,0,0,0,40,Columns:"; - this.vlnFlexGrid1.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw; - this.vlnFlexGrid1.FocusRect = C1.Win.C1FlexGrid.FocusRectEnum.Solid; - this.vlnFlexGrid1.HighLight = C1.Win.C1FlexGrid.HighLightEnum.WithFocus; - this.vlnFlexGrid1.Location = new System.Drawing.Point(13, 13); - this.vlnFlexGrid1.Name = "vlnFlexGrid1"; - this.vlnFlexGrid1.Rows.Count = 4; - this.vlnFlexGrid1.Rows.DefaultSize = 20; - this.vlnFlexGrid1.Rows.Fixed = 0; - this.vlnFlexGrid1.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.vlnFlexGrid1.Size = new System.Drawing.Size(240, 150); - this.vlnFlexGrid1.StyleInfo = resources.GetString("vlnFlexGrid1.StyleInfo"); - this.vlnFlexGrid1.TabIndex = 0; - this.vlnFlexGrid1.VwMode = VEPROMS.CSLA.Library.E_ViewMode.Edit; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(284, 262); - this.Controls.Add(this.vlnFlexGrid1); - this.Name = "Form1"; - this.Text = "Form1"; - ((System.ComponentModel.ISupportInitialize)(this.vlnFlexGrid1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private Volian.Controls.Library.VlnFlexGrid vlnFlexGrid1; - } -} - diff --git a/PROMS/VEPROMS/WindowsApplication1/Form1.cs b/PROMS/VEPROMS/WindowsApplication1/Form1.cs deleted file mode 100644 index 1f424369..00000000 --- a/PROMS/VEPROMS/WindowsApplication1/Form1.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace WindowsApplication1 -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/WindowsApplication1/Form1.resx b/PROMS/VEPROMS/WindowsApplication1/Form1.resx deleted file mode 100644 index 90e95ade..00000000 --- a/PROMS/VEPROMS/WindowsApplication1/Form1.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Normal{Font:Microsoft Sans Serif, 8.25pt;BackColor:255, 255, 255;TextAlign:LeftCenter;Border:Flat,1,Black,Both;} Alternate{BackColor:255, 255, 255;} Fixed{BackColor:Control;ForeColor:ControlText;Border:Flat,1,ControlDark,Both;BackgroundImageLayout:Hide;} Highlight{BackColor:LightCyan;ForeColor:Black;} Focus{BackColor:LightCyan;} Editor{} Search{BackColor:Highlight;ForeColor:HighlightText;} Frozen{BackColor:Beige;} NewRow{ForeColor:GrayText;} EmptyArea{BackColor:Transparent;Border:None,1,Black,Both;} SelectedColumnHeader{} SelectedRowHeader{} GrandTotal{BackColor:Black;ForeColor:White;} Subtotal0{BackColor:ControlDarkDark;ForeColor:White;} Subtotal1{BackColor:ControlDarkDark;ForeColor:White;} Subtotal2{BackColor:ControlDarkDark;ForeColor:White;} Subtotal3{BackColor:ControlDarkDark;ForeColor:White;} Subtotal4{BackColor:ControlDarkDark;ForeColor:White;} Subtotal5{BackColor:ControlDarkDark;ForeColor:White;} FilterEditor{} FirstCustomStyle{} - - \ No newline at end of file diff --git a/PROMS/VEPROMS/WindowsApplication1/Program.cs b/PROMS/VEPROMS/WindowsApplication1/Program.cs deleted file mode 100644 index 34f6b755..00000000 --- a/PROMS/VEPROMS/WindowsApplication1/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace WindowsApplication1 -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/WindowsApplication1/Properties/AssemblyInfo.cs b/PROMS/VEPROMS/WindowsApplication1/Properties/AssemblyInfo.cs deleted file mode 100644 index 6b1bbbda..00000000 --- a/PROMS/VEPROMS/WindowsApplication1/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("WindowsApplication1")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("WindowsApplication1")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2011")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0551fc44-8b58-4954-9b8a-7b329f356d92")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/VEPROMS/WindowsApplication1/Properties/Resources.Designer.cs b/PROMS/VEPROMS/WindowsApplication1/Properties/Resources.Designer.cs deleted file mode 100644 index 86bd6b8c..00000000 --- a/PROMS/VEPROMS/WindowsApplication1/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4952 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WindowsApplication1.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowsApplication1.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/VEPROMS/WindowsApplication1/Properties/Resources.resx b/PROMS/VEPROMS/WindowsApplication1/Properties/Resources.resx deleted file mode 100644 index 25a61211..00000000 --- a/PROMS/VEPROMS/WindowsApplication1/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/WindowsApplication1/Properties/Settings.Designer.cs b/PROMS/VEPROMS/WindowsApplication1/Properties/Settings.Designer.cs deleted file mode 100644 index 1de4c178..00000000 --- a/PROMS/VEPROMS/WindowsApplication1/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4952 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WindowsApplication1.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/VEPROMS/WindowsApplication1/Properties/Settings.settings b/PROMS/VEPROMS/WindowsApplication1/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/VEPROMS/WindowsApplication1/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/VEPROMS/WindowsApplication1/WindowsApplication1.csproj b/PROMS/VEPROMS/WindowsApplication1/WindowsApplication1.csproj deleted file mode 100644 index ba0491b6..00000000 --- a/PROMS/VEPROMS/WindowsApplication1/WindowsApplication1.csproj +++ /dev/null @@ -1,143 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {AF594E84-9579-40E1-A97F-1844A7A89A10} - WinExe - Properties - WindowsApplication1 - WindowsApplication1 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - False - ..\..\Volian.Controls.Library\obj\x86\Debug\AxInterop.DSOFramer.dll - - - - - False - F:\CSLA\csla20cs-2.1.4-070223\csla20cs\csla20cs\Csla\bin\Debug\Csla.dll - - - - False - ..\..\DropDownPanel\bin\Debug\DropDownPanel.dll - - - False - ..\..\Volian.Controls.Library\obj\x86\Debug\Interop.DSOFramer.dll - - - False - ..\..\LBWordLibrary\bin\Debug\LBWordLibrary.dll - - - False - F:\Log4Net\log4net-1.2.10\bin\net\2.0\debug\log4net.dll - - - - - - - - - False - ..\..\TablePicker\bin\Debug\TablePicker.dll - - - False - ..\..\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - False - ..\..\Volian.Base.Library\bin\Debug\Volian.Base.Library.dll - - - False - ..\..\XYPlots\bin\Debug\XYPlots.dll - - - - - Form - - - Form1.cs - - - - - Designer - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/WindowsApplication2/Form1.Designer.cs b/PROMS/VEPROMS/WindowsApplication2/Form1.Designer.cs deleted file mode 100644 index a798f7c2..00000000 --- a/PROMS/VEPROMS/WindowsApplication2/Form1.Designer.cs +++ /dev/null @@ -1,75 +0,0 @@ -namespace WindowsApplication2 -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Form1)); - this.vlnFlexGrid1 = new Volian.Controls.Library.VlnFlexGrid(this.components); - ((System.ComponentModel.ISupportInitialize)(this.vlnFlexGrid1)).BeginInit(); - this.SuspendLayout(); - // - // vlnFlexGrid1 - // - this.vlnFlexGrid1.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom; - this.vlnFlexGrid1.AllowResizing = C1.Win.C1FlexGrid.AllowResizingEnum.Both; - this.vlnFlexGrid1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.vlnFlexGrid1.ColumnInfo = "3,0,0,0,0,40,Columns:"; - this.vlnFlexGrid1.DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw; - this.vlnFlexGrid1.FocusRect = C1.Win.C1FlexGrid.FocusRectEnum.Solid; - this.vlnFlexGrid1.HighLight = C1.Win.C1FlexGrid.HighLightEnum.WithFocus; - this.vlnFlexGrid1.Location = new System.Drawing.Point(13, 13); - this.vlnFlexGrid1.Name = "vlnFlexGrid1"; - this.vlnFlexGrid1.Rows.Count = 4; - this.vlnFlexGrid1.Rows.DefaultSize = 20; - this.vlnFlexGrid1.Rows.Fixed = 0; - this.vlnFlexGrid1.ScrollBars = System.Windows.Forms.ScrollBars.None; - this.vlnFlexGrid1.Size = new System.Drawing.Size(240, 150); - this.vlnFlexGrid1.StyleInfo = resources.GetString("vlnFlexGrid1.StyleInfo"); - this.vlnFlexGrid1.TabIndex = 0; - this.vlnFlexGrid1.VwMode = VEPROMS.CSLA.Library.E_ViewMode.Edit; - // - // Form1 - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(284, 262); - this.Controls.Add(this.vlnFlexGrid1); - this.Name = "Form1"; - this.Text = "Form1"; - ((System.ComponentModel.ISupportInitialize)(this.vlnFlexGrid1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private Volian.Controls.Library.VlnFlexGrid vlnFlexGrid1; - } -} - diff --git a/PROMS/VEPROMS/WindowsApplication2/Form1.cs b/PROMS/VEPROMS/WindowsApplication2/Form1.cs deleted file mode 100644 index 214fdbcb..00000000 --- a/PROMS/VEPROMS/WindowsApplication2/Form1.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace WindowsApplication2 -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/WindowsApplication2/Form1.resx b/PROMS/VEPROMS/WindowsApplication2/Form1.resx deleted file mode 100644 index 90e95ade..00000000 --- a/PROMS/VEPROMS/WindowsApplication2/Form1.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Normal{Font:Microsoft Sans Serif, 8.25pt;BackColor:255, 255, 255;TextAlign:LeftCenter;Border:Flat,1,Black,Both;} Alternate{BackColor:255, 255, 255;} Fixed{BackColor:Control;ForeColor:ControlText;Border:Flat,1,ControlDark,Both;BackgroundImageLayout:Hide;} Highlight{BackColor:LightCyan;ForeColor:Black;} Focus{BackColor:LightCyan;} Editor{} Search{BackColor:Highlight;ForeColor:HighlightText;} Frozen{BackColor:Beige;} NewRow{ForeColor:GrayText;} EmptyArea{BackColor:Transparent;Border:None,1,Black,Both;} SelectedColumnHeader{} SelectedRowHeader{} GrandTotal{BackColor:Black;ForeColor:White;} Subtotal0{BackColor:ControlDarkDark;ForeColor:White;} Subtotal1{BackColor:ControlDarkDark;ForeColor:White;} Subtotal2{BackColor:ControlDarkDark;ForeColor:White;} Subtotal3{BackColor:ControlDarkDark;ForeColor:White;} Subtotal4{BackColor:ControlDarkDark;ForeColor:White;} Subtotal5{BackColor:ControlDarkDark;ForeColor:White;} FilterEditor{} FirstCustomStyle{} - - \ No newline at end of file diff --git a/PROMS/VEPROMS/WindowsApplication2/Program.cs b/PROMS/VEPROMS/WindowsApplication2/Program.cs deleted file mode 100644 index 54e4fd85..00000000 --- a/PROMS/VEPROMS/WindowsApplication2/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace WindowsApplication2 -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new Form1()); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/WindowsApplication2/Properties/AssemblyInfo.cs b/PROMS/VEPROMS/WindowsApplication2/Properties/AssemblyInfo.cs deleted file mode 100644 index 3ca0e69e..00000000 --- a/PROMS/VEPROMS/WindowsApplication2/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("WindowsApplication2")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Microsoft")] -[assembly: AssemblyProduct("WindowsApplication2")] -[assembly: AssemblyCopyright("Copyright © Microsoft 2011")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("b88c3972-2f52-4073-81bd-ce5c08bf9246")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/VEPROMS/WindowsApplication2/Properties/Resources.Designer.cs b/PROMS/VEPROMS/WindowsApplication2/Properties/Resources.Designer.cs deleted file mode 100644 index 02294b12..00000000 --- a/PROMS/VEPROMS/WindowsApplication2/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4952 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WindowsApplication2.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WindowsApplication2.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/VEPROMS/WindowsApplication2/Properties/Resources.resx b/PROMS/VEPROMS/WindowsApplication2/Properties/Resources.resx deleted file mode 100644 index 25a61211..00000000 --- a/PROMS/VEPROMS/WindowsApplication2/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/WindowsApplication2/Properties/Settings.Designer.cs b/PROMS/VEPROMS/WindowsApplication2/Properties/Settings.Designer.cs deleted file mode 100644 index dd3c8bab..00000000 --- a/PROMS/VEPROMS/WindowsApplication2/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4952 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WindowsApplication2.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/VEPROMS/WindowsApplication2/Properties/Settings.settings b/PROMS/VEPROMS/WindowsApplication2/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/VEPROMS/WindowsApplication2/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/VEPROMS/WindowsApplication2/WindowsApplication2.csproj b/PROMS/VEPROMS/WindowsApplication2/WindowsApplication2.csproj deleted file mode 100644 index 67532b56..00000000 --- a/PROMS/VEPROMS/WindowsApplication2/WindowsApplication2.csproj +++ /dev/null @@ -1,143 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {9B4A5138-DEB8-4F4C-B52E-4FDF4F270831} - WinExe - Properties - WindowsApplication2 - WindowsApplication2 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\x86\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - False - ..\..\Volian.Controls.Library\obj\x86\Debug\AxInterop.DSOFramer.dll - - - - - False - F:\CSLA\csla20cs-2.1.4-070223\csla20cs\csla20cs\Csla\bin\Debug\Csla.dll - - - - False - ..\..\DropDownPanel\bin\Debug\DropDownPanel.dll - - - False - ..\..\Volian.Controls.Library\obj\x86\Debug\Interop.DSOFramer.dll - - - False - ..\..\LBWordLibrary\bin\Debug\LBWordLibrary.dll - - - False - F:\Log4Net\log4net-1.2.10\bin\net\2.0\debug\log4net.dll - - - - - - - - - False - ..\..\TablePicker\bin\Debug\TablePicker.dll - - - False - ..\..\VEPROMS.CSLA.Library\bin\Debug\VEPROMS.CSLA.Library.dll - - - False - ..\..\Volian.Base.Library\bin\Debug\Volian.Base.Library.dll - - - False - ..\..\XYPlots\bin\Debug\XYPlots.dll - - - - - Form - - - Form1.cs - - - - - Designer - Form1.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxPrintMSWord/App.config b/PROMS/VEPROMS/xxxPrintMSWord/App.config deleted file mode 100644 index e5c55b8d..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/App.config +++ /dev/null @@ -1,136 +0,0 @@ - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - 1 - - - 2 - - - 192, 255, 255 - - - True - - - False - - - Normal - - - True - - - - - False - - - 1 - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxPrintMSWord/Form1.Designer.cs b/PROMS/VEPROMS/xxxPrintMSWord/Form1.Designer.cs deleted file mode 100644 index 863dbcdc..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/Form1.Designer.cs +++ /dev/null @@ -1,38 +0,0 @@ -namespace PrintMSWord -{ - partial class Form1 - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Text = "Form1"; - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxPrintMSWord/Form1.cs b/PROMS/VEPROMS/xxxPrintMSWord/Form1.cs deleted file mode 100644 index 71560674..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/Form1.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace PrintMSWord -{ - public partial class Form1 : Form - { - public Form1() - { - InitializeComponent(); - } - } -} diff --git a/PROMS/VEPROMS/xxxPrintMSWord/Form1.resx b/PROMS/VEPROMS/xxxPrintMSWord/Form1.resx deleted file mode 100644 index 1af7de15..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/Form1.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxPrintMSWord/PrintMSWord.csproj b/PROMS/VEPROMS/xxxPrintMSWord/PrintMSWord.csproj deleted file mode 100644 index 717370b4..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/PrintMSWord.csproj +++ /dev/null @@ -1,189 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {5731EEAD-30C9-499F-849E-179F11D932B0} - WinExe - Properties - PrintMSWord - PrintMSWord - - - "%24/PROMS/VEPROMS", ZWBAAAAA - .. - - - MSSCCI:Microsoft Visual SourceSafe - v2.0 - - - - - 2.0 - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - ..\..\VEPROMS.CSLA.Library\bin\Debug\Csla.dll - - - - ..\..\VEPROMS User Interface\bin\Debug\log4net.dll - - - - - - - - - - - - Form - - - Form1.cs - - - Form - - - frmPrintMsWord.cs - - - - - Form1.cs - - - Designer - frmPrintMsWord.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {70F23722-19A3-4AC1-A900-55831C945786} - LBWordLibrary - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {52D74078-3822-410E-889B-464BD21AAB9E} - VG - - - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9} - Volian.Base.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - {94830C07-6A3A-450E-9674-C9B4293A7726} - Volian.Print.Library - - - {293911B5-C602-483F-A97F-F962EEFB3CAE} - Volian.Svg.Library - - - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3} - XYPlots - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxPrintMSWord/Program.cs b/PROMS/VEPROMS/xxxPrintMSWord/Program.cs deleted file mode 100644 index 3ca02c65..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace PrintMSWord -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmPrintMSWord()); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxPrintMSWord/Properties/AssemblyInfo.cs b/PROMS/VEPROMS/xxxPrintMSWord/Properties/AssemblyInfo.cs deleted file mode 100644 index 0883c420..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PrintMSWord")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("PrintMSWord")] -[assembly: AssemblyCopyright("Copyright © 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("3b56b3e7-fe71-4d89-9409-7cfd19c6d1d6")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/VEPROMS/xxxPrintMSWord/Properties/Resources.Designer.cs b/PROMS/VEPROMS/xxxPrintMSWord/Properties/Resources.Designer.cs deleted file mode 100644 index d9ca0fb4..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PrintMSWord.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PrintMSWord.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/VEPROMS/xxxPrintMSWord/Properties/Resources.resx b/PROMS/VEPROMS/xxxPrintMSWord/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxPrintMSWord/Properties/Settings.Designer.cs b/PROMS/VEPROMS/xxxPrintMSWord/Properties/Settings.Designer.cs deleted file mode 100644 index 264d0f51..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PrintMSWord.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/VEPROMS/xxxPrintMSWord/Properties/Settings.settings b/PROMS/VEPROMS/xxxPrintMSWord/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/VEPROMS/xxxPrintMSWord/frmInfo.Designer.cs b/PROMS/VEPROMS/xxxPrintMSWord/frmInfo.Designer.cs deleted file mode 100644 index 16c3329e..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/frmInfo.Designer.cs +++ /dev/null @@ -1,86 +0,0 @@ -namespace PrintMSWord -{ - partial class frmInfo - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tbInfo = new System.Windows.Forms.TextBox(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // tbInfo - // - this.tbInfo.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbInfo.Location = new System.Drawing.Point(0, 0); - this.tbInfo.Multiline = true; - this.tbInfo.Name = "tbInfo"; - this.tbInfo.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbInfo.Size = new System.Drawing.Size(670, 344); - this.tbInfo.TabIndex = 0; - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 344); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(670, 22); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // frmInfo - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(670, 366); - this.Controls.Add(this.tbInfo); - this.Controls.Add(this.statusStrip1); - this.Name = "frmInfo"; - this.Text = "frmInfo"; - this.Load += new System.EventHandler(this.frmInfo_Load); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox tbInfo; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxPrintMSWord/frmInfo.cs b/PROMS/VEPROMS/xxxPrintMSWord/frmInfo.cs deleted file mode 100644 index 1d3eb37e..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/frmInfo.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace PrintMSWord -{ - public partial class frmInfo : Form - { - private StringBuilder _MyStringBuilder; - public StringBuilder MyStringBuilder - { - get - { - if (_MyStringBuilder == null) - _MyStringBuilder = new StringBuilder(); - return _MyStringBuilder; - } - } - private Form _MyParent; - public frmInfo(Form myParent) - { - _MyParent = myParent; - InitializeComponent(); - } - string _Sep = ""; - public string Sep - { - get { return _Sep; } - set { _Sep = value; } - } - public void Clear() - { - _MyStringBuilder = null; - tbInfo.Text = ""; - Sep = ""; - Hide(); - } - public void AddInfo(string info) - { - tbInfo.Text += Sep + info; - Sep = "\r\n"; - Show(); - } - public void AddInfoPartial(string format, params object[] args) - { - MyStringBuilder.Append(Sep + string.Format(format,args)); - Sep = "\r\n"; - Application.DoEvents(); - if(!Visible)Show(); - } - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; tbInfo.Text = MyStringBuilder.ToString(); Application.DoEvents(); } - } - public void CopyOutput() - { - Clipboard.Clear(); - Clipboard.SetText(tbInfo.Text); - } - private void frmInfo_Load(object sender, EventArgs e) - { - Rectangle rec = Screen.GetWorkingArea(this); - Top = _MyParent.Top; - Left = _MyParent.Right + Width > rec.Right ? rec.Right - Width : _MyParent.Right; - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxPrintMSWord/frmInfo.resx b/PROMS/VEPROMS/xxxPrintMSWord/frmInfo.resx deleted file mode 100644 index b9c202bf..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/frmInfo.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxPrintMSWord/frmPrintMsWord.Designer.cs b/PROMS/VEPROMS/xxxPrintMSWord/frmPrintMsWord.Designer.cs deleted file mode 100644 index c27f976c..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/frmPrintMsWord.Designer.cs +++ /dev/null @@ -1,278 +0,0 @@ -namespace PrintMSWord -{ - partial class frmPrintMSWord - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pDFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pDFsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tspbStatus = new System.Windows.Forms.ToolStripProgressBar(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.panel1 = new System.Windows.Forms.Panel(); - this.cbDebugOutput = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.tbTimings = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.cbWatermark = new System.Windows.Forms.ComboBox(); - this.tbRevDate = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.tbRev = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.lbProcs = new System.Windows.Forms.ListBox(); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.pDFToolStripMenuItem, - this.pDFsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(844, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - // - // pDFToolStripMenuItem - // - this.pDFToolStripMenuItem.Name = "pDFToolStripMenuItem"; - this.pDFToolStripMenuItem.Size = new System.Drawing.Size(40, 20); - this.pDFToolStripMenuItem.Text = "PDF"; - this.pDFToolStripMenuItem.Click += new System.EventHandler(this.pDFToolStripMenuItem_Click); - // - // pDFsToolStripMenuItem - // - this.pDFsToolStripMenuItem.Name = "pDFsToolStripMenuItem"; - this.pDFsToolStripMenuItem.Size = new System.Drawing.Size(45, 20); - this.pDFsToolStripMenuItem.Text = "PDFs"; - this.pDFsToolStripMenuItem.Click += new System.EventHandler(this.pDFsToolStripMenuItem_Click); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tspbStatus, - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 315); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(844, 22); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tspbStatus - // - this.tspbStatus.Name = "tspbStatus"; - this.tspbStatus.Size = new System.Drawing.Size(100, 16); - this.tspbStatus.Visible = false; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // panel1 - // - this.panel1.Controls.Add(this.cbDebugOutput); - this.panel1.Controls.Add(this.tbTimings); - this.panel1.Controls.Add(this.label3); - this.panel1.Controls.Add(this.cbWatermark); - this.panel1.Controls.Add(this.tbRevDate); - this.panel1.Controls.Add(this.label2); - this.panel1.Controls.Add(this.tbRev); - this.panel1.Controls.Add(this.label1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Right; - this.panel1.Location = new System.Drawing.Point(485, 24); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(359, 291); - this.panel1.TabIndex = 2; - // - // cbDebugOutput - // - // - // - // - this.cbDebugOutput.BackgroundStyle.Class = ""; - this.cbDebugOutput.Checked = true; - this.cbDebugOutput.CheckState = System.Windows.Forms.CheckState.Checked; - this.cbDebugOutput.CheckValue = "Y"; - this.cbDebugOutput.Location = new System.Drawing.Point(8, 32); - this.cbDebugOutput.Margin = new System.Windows.Forms.Padding(2); - this.cbDebugOutput.Name = "cbDebugOutput"; - this.cbDebugOutput.Size = new System.Drawing.Size(110, 19); - this.cbDebugOutput.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.cbDebugOutput.TabIndex = 9; - this.cbDebugOutput.Text = "Debug Output"; - // - // tbTimings - // - this.tbTimings.AcceptsReturn = true; - this.tbTimings.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbTimings.Location = new System.Drawing.Point(0, 56); - this.tbTimings.Multiline = true; - this.tbTimings.Name = "tbTimings"; - this.tbTimings.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbTimings.Size = new System.Drawing.Size(359, 235); - this.tbTimings.TabIndex = 8; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(180, 32); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(59, 13); - this.label3.TabIndex = 5; - this.label3.Text = "Watermark"; - // - // cbWatermark - // - this.cbWatermark.FormattingEnabled = true; - this.cbWatermark.Items.AddRange(new object[] { - "(None)", - "Draft", - "Master", - "Sample", - "Reference", - "Information Only"}); - this.cbWatermark.Location = new System.Drawing.Point(245, 29); - this.cbWatermark.Name = "cbWatermark"; - this.cbWatermark.Size = new System.Drawing.Size(100, 21); - this.cbWatermark.TabIndex = 4; - this.cbWatermark.Text = "(None)"; - // - // tbRevDate - // - this.tbRevDate.AcceptsReturn = true; - this.tbRevDate.Location = new System.Drawing.Point(245, 3); - this.tbRevDate.Name = "tbRevDate"; - this.tbRevDate.Size = new System.Drawing.Size(100, 20); - this.tbRevDate.TabIndex = 3; - this.tbRevDate.Text = "07/27/10"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(180, 6); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(30, 13); - this.label2.TabIndex = 2; - this.label2.Text = "Date"; - // - // tbRev - // - this.tbRev.Location = new System.Drawing.Point(71, 3); - this.tbRev.Name = "tbRev"; - this.tbRev.Size = new System.Drawing.Size(100, 20); - this.tbRev.TabIndex = 1; - this.tbRev.Text = "25"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(6, 6); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(27, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Rev"; - // - // lbProcs - // - this.lbProcs.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbProcs.FormattingEnabled = true; - this.lbProcs.Location = new System.Drawing.Point(0, 24); - this.lbProcs.Name = "lbProcs"; - this.lbProcs.Size = new System.Drawing.Size(485, 290); - this.lbProcs.TabIndex = 3; - this.lbProcs.DoubleClick += new System.EventHandler(this.lbProcs_DoubleClick); - // - // frmPrintMSWord - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(844, 337); - this.Controls.Add(this.lbProcs); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmPrintMSWord"; - this.Text = "PrintMSWord"; - this.Load += new System.EventHandler(this.frmPrintMSWord_Load); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem pDFToolStripMenuItem; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.ListBox lbProcs; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.ComboBox cbWatermark; - private System.Windows.Forms.TextBox tbRevDate; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox tbRev; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbTimings; - private DevComponents.DotNetBar.Controls.CheckBoxX cbDebugOutput; - private System.Windows.Forms.ToolStripMenuItem pDFsToolStripMenuItem; - private System.Windows.Forms.ToolStripProgressBar tspbStatus; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxPrintMSWord/frmPrintMsWord.cs b/PROMS/VEPROMS/xxxPrintMSWord/frmPrintMsWord.cs deleted file mode 100644 index 6316362f..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/frmPrintMsWord.cs +++ /dev/null @@ -1,156 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using System.IO; -using Volian.Svg.Library; -using Volian.Print.Library; -using Volian.Base.Library; - -namespace PrintMSWord -{ - public partial class frmPrintMSWord : Form - { - public frmPrintMSWord() - { - InitializeComponent(); - } - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - private DateTime _TimerStart; - public DateTime TimerStart - { - get { return _TimerStart; } - set { _TimerStart = value; } - } - private string _ProcedureNumber; - public string ProcedureNumber - { - get { return _ProcedureNumber; } - set { _ProcedureNumber = value; } - } - public string MyTimerStatus - { - get { return tsslStatus.Text; } - set { - TimeSpan ts = DateTime.Now - _TimerStart; - DateTime dt = new DateTime(ts.Ticks); - tsslStatus.Text = string.Format("{0:HH:mm:ss.fff} {1} {2}",dt,ProcedureNumber,value); - Application.DoEvents(); - } - } - private DocVersionInfo GetDocVersionWithContent() - { - DocVersionInfoList dvList = DocVersionInfoList.Get(); - foreach (DocVersionInfo docVersion in dvList) - if (docVersion.Procedures != null) - if (docVersion.Procedures[0].ItemID != 0) - return docVersion; - return null; - } - public ProcedureInfo MyProcedure - { - get { return lbProcs.SelectedValue as ProcedureInfo; } - } - private void lbProcs_DoubleClick(object sender, EventArgs e) - { - CreatePDF(); - } - private void CreatePDF() - { - TimerStart = DateTime.Now; - ProcedureInfo myProcedure = MyProcedure; - Volian.Print.Library.Rtf2Pdf.PdfDebug = true; - tbTimings.Text = ""; - Cursor saveCursor = this.Cursor; - this.Cursor = Cursors.WaitCursor; - //ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark; - CreatePDF(myProcedure,true); - this.Cursor = saveCursor; - } - - private void CreatePDF(ProcedureInfo myProcedure, bool openPdf) - { - // set up for using format default change bars. - ChangeBarDefinition cbd = new ChangeBarDefinition(); - ChangeBarData changeBarData = MyProcedure.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData; - cbd.MyChangeBarType = PrintChangeBar.WithDefault; - cbd.MyChangeBarText = changeBarData.ChangeBarMessage == "ChgID" ? PrintChangeBarText.ChgID : - changeBarData.ChangeBarMessage == "DateAndChgID" ? PrintChangeBarText.DateChgID : - changeBarData.ChangeBarMessage == "None" ? PrintChangeBarText.None : - changeBarData.ChangeBarMessage == "RevNum" ? PrintChangeBarText.RevNum : PrintChangeBarText.UserDef; - PromsPrinter pp = new PromsPrinter(myProcedure, tbRev.Text, cbWatermark.Text, cbDebugOutput.Checked, false, @"C:\TEMP\32Bit\Compare", openPdf, true, cbd, - myProcedure.DisplayNumber.Replace('/','_').Replace('\\','_'),false); - pp.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged); - _ElapsedTime = new Dictionary(); - DateTime tStart = DateTime.Now; - string pdfFile = pp.Print(@"C:\TEMP\32Bit", false); - DateTime tEnd = DateTime.Now; - _ElapsedTime.Add(PromsPrinterStatusType.Total, DateTime.Now - tStart); - MyTimerStatus = pdfFile + " created."; - ShowElapsedTime(); - //MyStatus = string.Format("{0} created in {1:0.} milliseconds", pdfFile, (TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds)); - } - private void ShowElapsedTime() - { - foreach (PromsPrinterStatusType type in _ElapsedTime.Keys) - tbTimings.Text += "\r\n" + string.Format("'{0}',{1:0.}", type, _ElapsedTime[type].TotalMilliseconds); - } - private Dictionary _ElapsedTime; - private DateTime _LastTime=DateTime.Now; - private DateTime _StartTime = DateTime.Now; - void pp_StatusChanged(object sender, PromsPrintStatusArgs args) - { - if (args.Type == PromsPrinterStatusType.Start) _LastTime = _StartTime = args.When; - MyStatus = args.MyStatus; - TimeSpan delta = TimeSpan.FromTicks(args.When.Ticks - _LastTime.Ticks); - if (_ElapsedTime.ContainsKey(args.Type)) - _ElapsedTime[args.Type] += delta; - else - _ElapsedTime.Add(args.Type, delta); - //if (tbTimings.Text != "") tbTimings.Text += "\r\n"; - //tbTimings.Text += string.Format("{0},{1},'{2}','{3}'", TimeSpan.FromTicks(args.When.Ticks -_StartTime.Ticks).TotalSeconds, delta.TotalMilliseconds, args.Type, args.MyStatus); - _LastTime = args.When; - } - private void pDFToolStripMenuItem_Click(object sender, EventArgs e) - { - CreatePDF(); - } - private void frmPrintMSWord_Load(object sender, EventArgs e) - { - DocVersionInfo dvi = GetDocVersionWithContent(); - lbProcs.DataSource = dvi.Procedures; - } - - private void pDFsToolStripMenuItem_Click(object sender, EventArgs e) - { - TimerStart = DateTime.Now; - Volian.Print.Library.Rtf2Pdf.PdfDebug = true; - tbTimings.Text = ""; - Cursor saveCursor = this.Cursor; - this.Cursor = Cursors.WaitCursor; - //ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark; - ItemInfoList myItems = lbProcs.DataSource as ItemInfoList; - tspbStatus.Maximum = myItems.Count; - tspbStatus.Value = 0; - tspbStatus.Visible = true; - foreach (ItemInfo myItem in myItems) - { - ProcedureNumber = myItem.DisplayNumber; - if (tspbStatus != null) tspbStatus.Value++; - CreatePDF(myItem.MyProcedure, false); - } - ProcedureNumber = ""; - MyTimerStatus = "Processing Complete"; - tspbStatus.Visible = false; - this.Cursor = saveCursor; - } - } -} diff --git a/PROMS/VEPROMS/xxxPrintMSWord/frmPrintMsWord.resx b/PROMS/VEPROMS/xxxPrintMSWord/frmPrintMsWord.resx deleted file mode 100644 index 7de6988d..00000000 --- a/PROMS/VEPROMS/xxxPrintMSWord/frmPrintMsWord.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 132, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/App.config b/PROMS/VEPROMS/xxxxPrintMSWord/App.config deleted file mode 100644 index 48a81909..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/App.config +++ /dev/null @@ -1,134 +0,0 @@ - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - 1 - - - 2 - - - 192, 255, 255 - - - True - - - False - - - Normal - - - True - - - - - False - - - 1 - - - - diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/PrintMSWord - Copy.csproj b/PROMS/VEPROMS/xxxxPrintMSWord/PrintMSWord - Copy.csproj deleted file mode 100644 index 717370b4..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/PrintMSWord - Copy.csproj +++ /dev/null @@ -1,189 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {5731EEAD-30C9-499F-849E-179F11D932B0} - WinExe - Properties - PrintMSWord - PrintMSWord - - - "%24/PROMS/VEPROMS", ZWBAAAAA - .. - - - MSSCCI:Microsoft Visual SourceSafe - v2.0 - - - - - 2.0 - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - ..\..\VEPROMS.CSLA.Library\bin\Debug\Csla.dll - - - - ..\..\VEPROMS User Interface\bin\Debug\log4net.dll - - - - - - - - - - - - Form - - - Form1.cs - - - Form - - - frmPrintMsWord.cs - - - - - Form1.cs - - - Designer - frmPrintMsWord.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {70F23722-19A3-4AC1-A900-55831C945786} - LBWordLibrary - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {52D74078-3822-410E-889B-464BD21AAB9E} - VG - - - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9} - Volian.Base.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - {94830C07-6A3A-450E-9674-C9B4293A7726} - Volian.Print.Library - - - {293911B5-C602-483F-A97F-F962EEFB3CAE} - Volian.Svg.Library - - - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3} - XYPlots - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/PrintMSWord.csproj b/PROMS/VEPROMS/xxxxPrintMSWord/PrintMSWord.csproj deleted file mode 100644 index b755d304..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/PrintMSWord.csproj +++ /dev/null @@ -1,187 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {5731EEAD-30C9-499F-849E-179F11D932B0} - WinExe - Properties - PrintMSWord - PrintMSWord - - - "%24/PROMS/VEPROMS", ZWBAAAAA - .. - - - MSSCCI:Microsoft Visual SourceSafe - v4.6.1 - - - - - 2.0 - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - true - bin\Debug\ - DEBUG;TRACE - full - x86 - prompt - false - - - bin\debug\ - TRACE - true - pdbonly - x86 - prompt - false - - - - ..\..\VEPROMS.CSLA.Library\bin\Debug\Csla.dll - - - True - - - ..\..\..\Log4Net\log4net-1.2.10\bin\net\2.0\debug\log4net.dll - - - - - - - - - - - - Form - - - frmPrintMsWord.cs - - - - - Designer - frmPrintMsWord.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {70F23722-19A3-4AC1-A900-55831C945786} - LBWordLibrary - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {52D74078-3822-410E-889B-464BD21AAB9E} - VG - - - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9} - Volian.Base.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - {94830C07-6A3A-450E-9674-C9B4293A7726} - Volian.Print.Library - - - {293911B5-C602-483F-A97F-F962EEFB3CAE} - Volian.Svg.Library - - - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3} - XYPlots - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/PrintMSWord.csproj.bak b/PROMS/VEPROMS/xxxxPrintMSWord/PrintMSWord.csproj.bak deleted file mode 100644 index 717370b4..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/PrintMSWord.csproj.bak +++ /dev/null @@ -1,189 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {5731EEAD-30C9-499F-849E-179F11D932B0} - WinExe - Properties - PrintMSWord - PrintMSWord - - - "%24/PROMS/VEPROMS", ZWBAAAAA - .. - - - MSSCCI:Microsoft Visual SourceSafe - v2.0 - - - - - 2.0 - publish\ - true - Disk - false - Foreground - 7 - Days - false - false - true - 0 - 1.0.0.%2a - false - false - true - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - true - bin\Debug\ - DEBUG;TRACE - full - x86 - prompt - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - - - - ..\..\VEPROMS.CSLA.Library\bin\Debug\Csla.dll - - - - ..\..\VEPROMS User Interface\bin\Debug\log4net.dll - - - - - - - - - - - - Form - - - Form1.cs - - - Form - - - frmPrintMsWord.cs - - - - - Form1.cs - - - Designer - frmPrintMsWord.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {70F23722-19A3-4AC1-A900-55831C945786} - LBWordLibrary - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {52D74078-3822-410E-889B-464BD21AAB9E} - VG - - - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9} - Volian.Base.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - {94830C07-6A3A-450E-9674-C9B4293A7726} - Volian.Print.Library - - - {293911B5-C602-483F-A97F-F962EEFB3CAE} - Volian.Svg.Library - - - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3} - XYPlots - - - - - False - .NET Framework 3.5 SP1 Client Profile - false - - - False - .NET Framework 3.5 SP1 - true - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/Program.cs b/PROMS/VEPROMS/xxxxPrintMSWord/Program.cs deleted file mode 100644 index 3ca02c65..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace PrintMSWord -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmPrintMSWord()); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/Properties/AssemblyInfo.cs b/PROMS/VEPROMS/xxxxPrintMSWord/Properties/AssemblyInfo.cs deleted file mode 100644 index 0883c420..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PrintMSWord")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("PrintMSWord")] -[assembly: AssemblyCopyright("Copyright © 2009")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("3b56b3e7-fe71-4d89-9409-7cfd19c6d1d6")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Resources.Designer.cs b/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Resources.Designer.cs deleted file mode 100644 index 26a86522..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PrintMSWord.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PrintMSWord.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Resources.resx b/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Settings.Designer.cs b/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Settings.Designer.cs deleted file mode 100644 index 58796bfc..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.42000 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PrintMSWord.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Settings.settings b/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/frmInfo.Designer.cs b/PROMS/VEPROMS/xxxxPrintMSWord/frmInfo.Designer.cs deleted file mode 100644 index 16c3329e..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/frmInfo.Designer.cs +++ /dev/null @@ -1,86 +0,0 @@ -namespace PrintMSWord -{ - partial class frmInfo - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tbInfo = new System.Windows.Forms.TextBox(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // tbInfo - // - this.tbInfo.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbInfo.Location = new System.Drawing.Point(0, 0); - this.tbInfo.Multiline = true; - this.tbInfo.Name = "tbInfo"; - this.tbInfo.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbInfo.Size = new System.Drawing.Size(670, 344); - this.tbInfo.TabIndex = 0; - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 344); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(670, 22); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // frmInfo - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(670, 366); - this.Controls.Add(this.tbInfo); - this.Controls.Add(this.statusStrip1); - this.Name = "frmInfo"; - this.Text = "frmInfo"; - this.Load += new System.EventHandler(this.frmInfo_Load); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox tbInfo; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/frmInfo.cs b/PROMS/VEPROMS/xxxxPrintMSWord/frmInfo.cs deleted file mode 100644 index 1d3eb37e..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/frmInfo.cs +++ /dev/null @@ -1,72 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace PrintMSWord -{ - public partial class frmInfo : Form - { - private StringBuilder _MyStringBuilder; - public StringBuilder MyStringBuilder - { - get - { - if (_MyStringBuilder == null) - _MyStringBuilder = new StringBuilder(); - return _MyStringBuilder; - } - } - private Form _MyParent; - public frmInfo(Form myParent) - { - _MyParent = myParent; - InitializeComponent(); - } - string _Sep = ""; - public string Sep - { - get { return _Sep; } - set { _Sep = value; } - } - public void Clear() - { - _MyStringBuilder = null; - tbInfo.Text = ""; - Sep = ""; - Hide(); - } - public void AddInfo(string info) - { - tbInfo.Text += Sep + info; - Sep = "\r\n"; - Show(); - } - public void AddInfoPartial(string format, params object[] args) - { - MyStringBuilder.Append(Sep + string.Format(format,args)); - Sep = "\r\n"; - Application.DoEvents(); - if(!Visible)Show(); - } - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; tbInfo.Text = MyStringBuilder.ToString(); Application.DoEvents(); } - } - public void CopyOutput() - { - Clipboard.Clear(); - Clipboard.SetText(tbInfo.Text); - } - private void frmInfo_Load(object sender, EventArgs e) - { - Rectangle rec = Screen.GetWorkingArea(this); - Top = _MyParent.Top; - Left = _MyParent.Right + Width > rec.Right ? rec.Right - Width : _MyParent.Right; - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/frmInfo.resx b/PROMS/VEPROMS/xxxxPrintMSWord/frmInfo.resx deleted file mode 100644 index b9c202bf..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/frmInfo.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/frmPrintMsWord.Designer.cs b/PROMS/VEPROMS/xxxxPrintMSWord/frmPrintMsWord.Designer.cs deleted file mode 100644 index 102e9ec9..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/frmPrintMsWord.Designer.cs +++ /dev/null @@ -1,293 +0,0 @@ -namespace PrintMSWord -{ - partial class frmPrintMSWord - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pDFToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.pDFsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tspbStatus = new System.Windows.Forms.ToolStripProgressBar(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.panel1 = new System.Windows.Forms.Panel(); - this.cbDebugOutput = new DevComponents.DotNetBar.Controls.CheckBoxX(); - this.tbTimings = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.cbWatermark = new System.Windows.Forms.ComboBox(); - this.tbRevDate = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.tbRev = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.lbProcs = new System.Windows.Forms.ListBox(); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.pDFToolStripMenuItem, - this.pDFsToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Padding = new System.Windows.Forms.Padding(8, 2, 0, 2); - this.menuStrip1.Size = new System.Drawing.Size(1125, 28); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(44, 24); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(108, 26); - this.exitToolStripMenuItem.Text = "E&xit"; - // - // pDFToolStripMenuItem - // - this.pDFToolStripMenuItem.Name = "pDFToolStripMenuItem"; - this.pDFToolStripMenuItem.Size = new System.Drawing.Size(47, 24); - this.pDFToolStripMenuItem.Text = "PDF"; - this.pDFToolStripMenuItem.Click += new System.EventHandler(this.pDFToolStripMenuItem_Click); - // - // pDFsToolStripMenuItem - // - this.pDFsToolStripMenuItem.Name = "pDFsToolStripMenuItem"; - this.pDFsToolStripMenuItem.Size = new System.Drawing.Size(53, 24); - this.pDFsToolStripMenuItem.Text = "PDFs"; - this.pDFsToolStripMenuItem.Click += new System.EventHandler(this.pDFsToolStripMenuItem_Click); - // - // statusStrip1 - // - this.statusStrip1.ImageScalingSize = new System.Drawing.Size(20, 20); - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tspbStatus, - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 390); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Padding = new System.Windows.Forms.Padding(1, 0, 19, 0); - this.statusStrip1.Size = new System.Drawing.Size(1125, 25); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tspbStatus - // - this.tspbStatus.Name = "tspbStatus"; - this.tspbStatus.Size = new System.Drawing.Size(133, 20); - this.tspbStatus.Visible = false; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(50, 20); - this.tsslStatus.Text = "Ready"; - // - // panel1 - // - this.panel1.Controls.Add(this.cbDebugOutput); - this.panel1.Controls.Add(this.tbTimings); - this.panel1.Controls.Add(this.label3); - this.panel1.Controls.Add(this.cbWatermark); - this.panel1.Controls.Add(this.tbRevDate); - this.panel1.Controls.Add(this.label2); - this.panel1.Controls.Add(this.tbRev); - this.panel1.Controls.Add(this.label1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Right; - this.panel1.Location = new System.Drawing.Point(646, 28); - this.panel1.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(479, 362); - this.panel1.TabIndex = 2; - // - // cbDebugOutput - // - // - // - // - this.cbDebugOutput.BackgroundStyle.CornerType = DevComponents.DotNetBar.eCornerType.Square; - this.cbDebugOutput.Checked = true; - this.cbDebugOutput.CheckState = System.Windows.Forms.CheckState.Checked; - this.cbDebugOutput.CheckValue = "Y"; - this.cbDebugOutput.Location = new System.Drawing.Point(11, 39); - this.cbDebugOutput.Margin = new System.Windows.Forms.Padding(3, 2, 3, 2); - this.cbDebugOutput.Name = "cbDebugOutput"; - this.cbDebugOutput.Size = new System.Drawing.Size(147, 23); - this.cbDebugOutput.Style = DevComponents.DotNetBar.eDotNetBarStyle.StyleManagerControlled; - this.cbDebugOutput.TabIndex = 9; - this.cbDebugOutput.Text = "Debug Output"; - // - // tbTimings - // - this.tbTimings.AcceptsReturn = true; - this.tbTimings.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbTimings.Location = new System.Drawing.Point(0, 69); - this.tbTimings.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbTimings.Multiline = true; - this.tbTimings.Name = "tbTimings"; - this.tbTimings.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbTimings.Size = new System.Drawing.Size(477, 292); - this.tbTimings.TabIndex = 8; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(240, 39); - this.label3.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(77, 17); - this.label3.TabIndex = 5; - this.label3.Text = "Watermark"; - // - // cbWatermark - // - this.cbWatermark.FormattingEnabled = true; - this.cbWatermark.Items.AddRange(new object[] { - "(None)", - "Draft", - "Master", - "Sample", - "Reference", - "Information Only"}); - this.cbWatermark.Location = new System.Drawing.Point(327, 36); - this.cbWatermark.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.cbWatermark.Name = "cbWatermark"; - this.cbWatermark.Size = new System.Drawing.Size(132, 24); - this.cbWatermark.TabIndex = 4; - this.cbWatermark.Text = "(None)"; - // - // tbRevDate - // - this.tbRevDate.AcceptsReturn = true; - this.tbRevDate.Location = new System.Drawing.Point(327, 4); - this.tbRevDate.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbRevDate.Name = "tbRevDate"; - this.tbRevDate.Size = new System.Drawing.Size(132, 22); - this.tbRevDate.TabIndex = 3; - this.tbRevDate.Text = "07/27/10"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(240, 7); - this.label2.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(38, 17); - this.label2.TabIndex = 2; - this.label2.Text = "Date"; - // - // tbRev - // - this.tbRev.Location = new System.Drawing.Point(95, 4); - this.tbRev.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.tbRev.Name = "tbRev"; - this.tbRev.Size = new System.Drawing.Size(132, 22); - this.tbRev.TabIndex = 1; - this.tbRev.Text = "25"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(8, 7); - this.label1.Margin = new System.Windows.Forms.Padding(4, 0, 4, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(33, 17); - this.label1.TabIndex = 0; - this.label1.Text = "Rev"; - // - // lbProcs - // - this.lbProcs.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbProcs.FormattingEnabled = true; - this.lbProcs.ItemHeight = 16; - this.lbProcs.Location = new System.Drawing.Point(0, 28); - this.lbProcs.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.lbProcs.Name = "lbProcs"; - this.lbProcs.Size = new System.Drawing.Size(646, 362); - this.lbProcs.TabIndex = 3; - this.lbProcs.DoubleClick += new System.EventHandler(this.lbProcs_DoubleClick); - // - // frmPrintMSWord - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1125, 415); - this.Controls.Add(this.lbProcs); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.MainMenuStrip = this.menuStrip1; - this.Margin = new System.Windows.Forms.Padding(4, 4, 4, 4); - this.Name = "frmPrintMSWord"; - this.Text = "PrintMSWord"; - this.Load += new System.EventHandler(this.frmPrintMSWord_Load); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem pDFToolStripMenuItem; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.ListBox lbProcs; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.ComboBox cbWatermark; - private System.Windows.Forms.TextBox tbRevDate; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox tbRev; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.TextBox tbTimings; - private DevComponents.DotNetBar.Controls.CheckBoxX cbDebugOutput; - private System.Windows.Forms.ToolStripMenuItem pDFsToolStripMenuItem; - private System.Windows.Forms.ToolStripProgressBar tspbStatus; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/frmPrintMsWord.cs b/PROMS/VEPROMS/xxxxPrintMSWord/frmPrintMsWord.cs deleted file mode 100644 index 2ba87b00..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/frmPrintMsWord.cs +++ /dev/null @@ -1,156 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using System.IO; -using Volian.Svg.Library; -using Volian.Print.Library; -using Volian.Base.Library; - -namespace PrintMSWord -{ - public partial class frmPrintMSWord : Form - { - public frmPrintMSWord() - { - InitializeComponent(); - } - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - private DateTime _TimerStart; - public DateTime TimerStart - { - get { return _TimerStart; } - set { _TimerStart = value; } - } - private string _ProcedureNumber; - public string ProcedureNumber - { - get { return _ProcedureNumber; } - set { _ProcedureNumber = value; } - } - public string MyTimerStatus - { - get { return tsslStatus.Text; } - set { - TimeSpan ts = DateTime.Now - _TimerStart; - DateTime dt = new DateTime(ts.Ticks); - tsslStatus.Text = string.Format("{0:HH:mm:ss.fff} {1} {2}",dt,ProcedureNumber,value); - Application.DoEvents(); - } - } - private DocVersionInfo GetDocVersionWithContent() - { - DocVersionInfoList dvList = DocVersionInfoList.Get(); - foreach (DocVersionInfo docVersion in dvList) - if (docVersion.Procedures != null) - if (docVersion.Procedures[0].ItemID != 0) - return docVersion; - return null; - } - public ProcedureInfo MyProcedure - { - get { return lbProcs.SelectedValue as ProcedureInfo; } - } - private void lbProcs_DoubleClick(object sender, EventArgs e) - { - CreatePDF(); - } - private void CreatePDF() - { - TimerStart = DateTime.Now; - ProcedureInfo myProcedure = MyProcedure; - Volian.Print.Library.Rtf2Pdf.PdfDebug = true; - tbTimings.Text = ""; - Cursor saveCursor = this.Cursor; - this.Cursor = Cursors.WaitCursor; - //ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark; - CreatePDF(myProcedure,true,false); - this.Cursor = saveCursor; - } - - private void CreatePDF(ProcedureInfo myProcedure, bool openPdf,bool saveLinks) - { - // set up for using format default change bars. - ChangeBarDefinition cbd = new ChangeBarDefinition(); - ChangeBarData changeBarData = MyProcedure.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData; - cbd.MyChangeBarType = PrintChangeBar.WithDefault; - cbd.MyChangeBarText = changeBarData.ChangeBarMessage == "ChgID" ? PrintChangeBarText.ChgID : - changeBarData.ChangeBarMessage == "DateAndChgID" ? PrintChangeBarText.DateChgID : - changeBarData.ChangeBarMessage == "None" ? PrintChangeBarText.None : - changeBarData.ChangeBarMessage == "RevNum" ? PrintChangeBarText.RevNum : PrintChangeBarText.UserDef; - PromsPrinter pp = new PromsPrinter(myProcedure, tbRev.Text, cbWatermark.Text, cbDebugOutput.Checked, false, @"C:\TEMP\32Bit\Compare", openPdf, true, cbd, - myProcedure.DisplayNumber.Replace('/','_').Replace('\\','_'),false,false,"",false,false,null); - pp.StatusChanged += new PromsPrinterStatusEvent(pp_StatusChanged); - _ElapsedTime = new Dictionary(); - DateTime tStart = DateTime.Now; - string pdfFile = pp.Print(@"C:\TEMP\32Bit", false, false); // (pdfpath, makePlaceKeeper, makeContinuousActionSummary) - DateTime tEnd = DateTime.Now; - _ElapsedTime.Add(PromsPrinterStatusType.Total, DateTime.Now - tStart); - MyTimerStatus = pdfFile + " created."; - ShowElapsedTime(); - //MyStatus = string.Format("{0} created in {1:0.} milliseconds", pdfFile, (TimeSpan.FromTicks(tEnd.Ticks - tStart.Ticks).TotalMilliseconds)); - } - private void ShowElapsedTime() - { - foreach (PromsPrinterStatusType type in _ElapsedTime.Keys) - tbTimings.Text += "\r\n" + string.Format("'{0}',{1:0.}", type, _ElapsedTime[type].TotalMilliseconds); - } - private Dictionary _ElapsedTime; - private DateTime _LastTime=DateTime.Now; - private DateTime _StartTime = DateTime.Now; - void pp_StatusChanged(object sender, PromsPrintStatusArgs args) - { - if (args.Type == PromsPrinterStatusType.Start) _LastTime = _StartTime = args.When; - MyStatus = args.MyStatus; - TimeSpan delta = TimeSpan.FromTicks(args.When.Ticks - _LastTime.Ticks); - if (_ElapsedTime.ContainsKey(args.Type)) - _ElapsedTime[args.Type] += delta; - else - _ElapsedTime.Add(args.Type, delta); - //if (tbTimings.Text != "") tbTimings.Text += "\r\n"; - //tbTimings.Text += string.Format("{0},{1},'{2}','{3}'", TimeSpan.FromTicks(args.When.Ticks -_StartTime.Ticks).TotalSeconds, delta.TotalMilliseconds, args.Type, args.MyStatus); - _LastTime = args.When; - } - private void pDFToolStripMenuItem_Click(object sender, EventArgs e) - { - CreatePDF(); - } - private void frmPrintMSWord_Load(object sender, EventArgs e) - { - DocVersionInfo dvi = GetDocVersionWithContent(); - lbProcs.DataSource = dvi.Procedures; - } - - private void pDFsToolStripMenuItem_Click(object sender, EventArgs e) - { - TimerStart = DateTime.Now; - Volian.Print.Library.Rtf2Pdf.PdfDebug = true; - tbTimings.Text = ""; - Cursor saveCursor = this.Cursor; - this.Cursor = Cursors.WaitCursor; - //ProcedureConfig.PrintWatermark pw = MyProcedure.ProcedureConfig.Print_Watermark; - ItemInfoList myItems = lbProcs.DataSource as ItemInfoList; - tspbStatus.Maximum = myItems.Count; - tspbStatus.Value = 0; - tspbStatus.Visible = true; - foreach (ItemInfo myItem in myItems) - { - ProcedureNumber = myItem.DisplayNumber; - if (tspbStatus != null) tspbStatus.Value++; - CreatePDF(myItem.MyProcedure, false,false); - } - ProcedureNumber = ""; - MyTimerStatus = "Processing Complete"; - tspbStatus.Visible = false; - this.Cursor = saveCursor; - } - } -} diff --git a/PROMS/VEPROMS/xxxxPrintMSWord/frmPrintMsWord.resx b/PROMS/VEPROMS/xxxxPrintMSWord/frmPrintMsWord.resx deleted file mode 100644 index 7de6988d..00000000 --- a/PROMS/VEPROMS/xxxxPrintMSWord/frmPrintMsWord.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 132, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/SimpleTest/App.config b/PROMS/VEPROMS_Security/SimpleTest/App.config deleted file mode 100644 index b8bd5b03..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/App.config +++ /dev/null @@ -1,71 +0,0 @@ - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/VEPROMS_Security/SimpleTest/Program.cs b/PROMS/VEPROMS_Security/SimpleTest/Program.cs deleted file mode 100644 index 9cced968..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace SimpleTest -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmMain()); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/SimpleTest/Properties/AssemblyInfo.cs b/PROMS/VEPROMS_Security/SimpleTest/Properties/AssemblyInfo.cs deleted file mode 100644 index fd145fa3..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("SimpleTest")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Volian Enterprises, Inc.")] -[assembly: AssemblyProduct("SimpleTest")] -[assembly: AssemblyCopyright("Copyright © Volian Enterprises, Inc. 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("297cf552-63cf-447f-af61-a2301a8d2e93")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/VEPROMS_Security/SimpleTest/Properties/DataSources/Volian.Object.Library.User.datasource b/PROMS/VEPROMS_Security/SimpleTest/Properties/DataSources/Volian.Object.Library.User.datasource deleted file mode 100644 index f58b89de..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/Properties/DataSources/Volian.Object.Library.User.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - Volian.Object.Library.User, Volian.Object.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/SimpleTest/Properties/Resources.Designer.cs b/PROMS/VEPROMS_Security/SimpleTest/Properties/Resources.Designer.cs deleted file mode 100644 index 3ab2950b..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace SimpleTest.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SimpleTest.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/VEPROMS_Security/SimpleTest/Properties/Resources.resx b/PROMS/VEPROMS_Security/SimpleTest/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/SimpleTest/Properties/Settings.Designer.cs b/PROMS/VEPROMS_Security/SimpleTest/Properties/Settings.Designer.cs deleted file mode 100644 index 7b4f6cf1..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace SimpleTest.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/VEPROMS_Security/SimpleTest/Properties/Settings.settings b/PROMS/VEPROMS_Security/SimpleTest/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/VEPROMS_Security/SimpleTest/SimpleTest.csproj b/PROMS/VEPROMS_Security/SimpleTest/SimpleTest.csproj deleted file mode 100644 index f6643c8c..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/SimpleTest.csproj +++ /dev/null @@ -1,105 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {4D60F98F-D018-4447-B123-E3BDDE9C60F8} - WinExe - Properties - SimpleTest - SimpleTest - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\VEPROMS.CSLA.Library\bin\Debug\Csla.dll - - - False - ..\..\..\Log4Net\log4net-1.2.10\bin\net\2.0\release\log4net.dll - - - - - - - - - - - Form - - - frmMain.cs - - - Form - - - frmUser.cs - - - - - Designer - frmMain.cs - - - Designer - frmUser.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {592B86E9-D488-452B-B89B-2BB037793FE3} - Volian.Object.Library - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/SimpleTest/frmMain.Designer.cs b/PROMS/VEPROMS_Security/SimpleTest/frmMain.Designer.cs deleted file mode 100644 index 551095dc..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/frmMain.Designer.cs +++ /dev/null @@ -1,104 +0,0 @@ -namespace SimpleTest -{ - partial class frmMain - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.users1ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.users2ToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.users1ToolStripMenuItem, - this.users2ToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(804, 26); - this.menuStrip1.TabIndex = 1; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(40, 22); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - // - // users1ToolStripMenuItem - // - this.users1ToolStripMenuItem.Name = "users1ToolStripMenuItem"; - this.users1ToolStripMenuItem.Size = new System.Drawing.Size(70, 22); - this.users1ToolStripMenuItem.Text = "Users 1"; - // - // users2ToolStripMenuItem - // - this.users2ToolStripMenuItem.Name = "users2ToolStripMenuItem"; - this.users2ToolStripMenuItem.Size = new System.Drawing.Size(70, 22); - this.users2ToolStripMenuItem.Text = "Users 2"; - // - // frmMain - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(804, 511); - this.Controls.Add(this.menuStrip1); - this.IsMdiContainer = true; - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmMain"; - this.Text = "VE-PROMS Security"; - this.Load += new System.EventHandler(this.frmMain_Load); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem users1ToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem users2ToolStripMenuItem; - } -} - diff --git a/PROMS/VEPROMS_Security/SimpleTest/frmMain.cs b/PROMS/VEPROMS_Security/SimpleTest/frmMain.cs deleted file mode 100644 index eeb5f43a..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/frmMain.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using Csla; -using Volian.Object.Library; - -[assembly: log4net.Config.XmlConfigurator(Watch = true)] - -namespace SimpleTest -{ - public partial class frmMain : Form - { - public frmMain() - { - InitializeComponent(); - } - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private void frmMain_Load(object sender, EventArgs e) - { - // Lets setup the menu - foreach (UserInfo ui in UserInfoList.Get()) - { - users1ToolStripMenuItem.DropDownItems.Add(new vlnMenuItem(ui,this)); - users2ToolStripMenuItem.DropDownItems.Add(new vlnMenuItem(ui,this)); - } - } - private class vlnMenuItem:ToolStripMenuItem - { - private UserInfo _userInfo; - public UserInfo UserInfo - { - get { return _userInfo; } - } - private Form _form; - public Form Form - { - get { return _form; } - } - public vlnMenuItem(UserInfo userInfo,Form form): base(userInfo.FullName) - { - _userInfo = userInfo; - _form = form; - base.Click += new EventHandler(mi_Click); - } - void mi_Click(object sender, EventArgs e) - { - // Open a User Form - vlnMenuItem mi = (vlnMenuItem)sender; - frmUser u = new frmUser(mi.UserInfo.Uid); - u.MdiParent = _form; - u.Show(); - } - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/SimpleTest/frmMain.resx b/PROMS/VEPROMS_Security/SimpleTest/frmMain.resx deleted file mode 100644 index 541af56e..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/frmMain.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/SimpleTest/frmUser.Designer.cs b/PROMS/VEPROMS_Security/SimpleTest/frmUser.Designer.cs deleted file mode 100644 index c7f86a0b..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/frmUser.Designer.cs +++ /dev/null @@ -1,479 +0,0 @@ -namespace SimpleTest -{ - partial class frmUser - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.Label cfgNameLabel; - System.Windows.Forms.Label courtesyTitleLabel; - System.Windows.Forms.Label firstNameLabel; - System.Windows.Forms.Label lastNameLabel; - System.Windows.Forms.Label middleNameLabel; - System.Windows.Forms.Label phoneNumberLabel; - System.Windows.Forms.Label suffixLabel; - System.Windows.Forms.Label uidLabel; - System.Windows.Forms.Label useridLabel; - System.Windows.Forms.Label userLoginLabel; - System.Windows.Forms.Label userNameLabel; - System.Windows.Forms.Label configLabel; - this.userBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnSave = new System.Windows.Forms.Button(); - this.configTextBox = new System.Windows.Forms.TextBox(); - this.cfgNameTextBox = new System.Windows.Forms.TextBox(); - this.courtesyTitleTextBox = new System.Windows.Forms.TextBox(); - this.firstNameTextBox = new System.Windows.Forms.TextBox(); - this.lastNameTextBox = new System.Windows.Forms.TextBox(); - this.middleNameTextBox = new System.Windows.Forms.TextBox(); - this.phoneNumberTextBox = new System.Windows.Forms.TextBox(); - this.suffixTextBox = new System.Windows.Forms.TextBox(); - this.useridTextBox = new System.Windows.Forms.TextBox(); - this.userLoginTextBox = new System.Windows.Forms.TextBox(); - this.userNameTextBox = new System.Windows.Forms.TextBox(); - this.uidTextBox = new System.Windows.Forms.TextBox(); - this.userMembershipsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.userMembershipsDataGridView = new System.Windows.Forms.DataGridView(); - this.dataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn11 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.panel2 = new System.Windows.Forms.Panel(); - cfgNameLabel = new System.Windows.Forms.Label(); - courtesyTitleLabel = new System.Windows.Forms.Label(); - firstNameLabel = new System.Windows.Forms.Label(); - lastNameLabel = new System.Windows.Forms.Label(); - middleNameLabel = new System.Windows.Forms.Label(); - phoneNumberLabel = new System.Windows.Forms.Label(); - suffixLabel = new System.Windows.Forms.Label(); - uidLabel = new System.Windows.Forms.Label(); - useridLabel = new System.Windows.Forms.Label(); - userLoginLabel = new System.Windows.Forms.Label(); - userNameLabel = new System.Windows.Forms.Label(); - configLabel = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.userBindingSource)).BeginInit(); - this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.userMembershipsBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.userMembershipsDataGridView)).BeginInit(); - this.SuspendLayout(); - // - // cfgNameLabel - // - cfgNameLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - cfgNameLabel.AutoSize = true; - cfgNameLabel.Location = new System.Drawing.Point(418, 69); - cfgNameLabel.Name = "cfgNameLabel"; - cfgNameLabel.Size = new System.Drawing.Size(74, 17); - cfgNameLabel.TabIndex = 29; - cfgNameLabel.Text = "Cfg Name:"; - // - // courtesyTitleLabel - // - courtesyTitleLabel.AutoSize = true; - courtesyTitleLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - courtesyTitleLabel.Location = new System.Drawing.Point(52, 37); - courtesyTitleLabel.Name = "courtesyTitleLabel"; - courtesyTitleLabel.Size = new System.Drawing.Size(35, 17); - courtesyTitleLabel.TabIndex = 31; - courtesyTitleLabel.Text = "Title"; - // - // firstNameLabel - // - firstNameLabel.AutoSize = true; - firstNameLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - firstNameLabel.Location = new System.Drawing.Point(94, 37); - firstNameLabel.Name = "firstNameLabel"; - firstNameLabel.Size = new System.Drawing.Size(35, 17); - firstNameLabel.TabIndex = 33; - firstNameLabel.Text = "First"; - // - // lastNameLabel - // - lastNameLabel.AutoSize = true; - lastNameLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - lastNameLabel.Location = new System.Drawing.Point(258, 37); - lastNameLabel.Name = "lastNameLabel"; - lastNameLabel.Size = new System.Drawing.Size(35, 17); - lastNameLabel.TabIndex = 35; - lastNameLabel.Text = "Last"; - // - // middleNameLabel - // - middleNameLabel.AutoSize = true; - middleNameLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - middleNameLabel.Location = new System.Drawing.Point(173, 37); - middleNameLabel.Name = "middleNameLabel"; - middleNameLabel.Size = new System.Drawing.Size(49, 17); - middleNameLabel.TabIndex = 37; - middleNameLabel.Text = "Middle"; - // - // phoneNumberLabel - // - phoneNumberLabel.AutoSize = true; - phoneNumberLabel.Location = new System.Drawing.Point(10, 57); - phoneNumberLabel.Name = "phoneNumberLabel"; - phoneNumberLabel.Size = new System.Drawing.Size(53, 17); - phoneNumberLabel.TabIndex = 39; - phoneNumberLabel.Text = "Phone:"; - // - // suffixLabel - // - suffixLabel.AutoSize = true; - suffixLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - suffixLabel.Location = new System.Drawing.Point(353, 36); - suffixLabel.Name = "suffixLabel"; - suffixLabel.Size = new System.Drawing.Size(42, 17); - suffixLabel.TabIndex = 41; - suffixLabel.Text = "Suffix"; - // - // uidLabel - // - uidLabel.AutoSize = true; - uidLabel.Location = new System.Drawing.Point(13, 17); - uidLabel.Name = "uidLabel"; - uidLabel.Size = new System.Drawing.Size(49, 17); - uidLabel.TabIndex = 43; - uidLabel.Text = "Name:"; - // - // useridLabel - // - useridLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - useridLabel.AutoSize = true; - useridLabel.Location = new System.Drawing.Point(420, 99); - useridLabel.Name = "useridLabel"; - useridLabel.Size = new System.Drawing.Size(53, 17); - useridLabel.TabIndex = 44; - useridLabel.Text = "Userid:"; - // - // userLoginLabel - // - userLoginLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - userLoginLabel.AutoSize = true; - userLoginLabel.Location = new System.Drawing.Point(420, 127); - userLoginLabel.Name = "userLoginLabel"; - userLoginLabel.Size = new System.Drawing.Size(81, 17); - userLoginLabel.TabIndex = 46; - userLoginLabel.Text = "User Login:"; - // - // userNameLabel - // - userNameLabel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - userNameLabel.AutoSize = true; - userNameLabel.Location = new System.Drawing.Point(418, 41); - userNameLabel.Name = "userNameLabel"; - userNameLabel.Size = new System.Drawing.Size(83, 17); - userNameLabel.TabIndex = 48; - userNameLabel.Text = "User Name:"; - // - // configLabel - // - configLabel.AutoSize = true; - configLabel.Location = new System.Drawing.Point(13, 88); - configLabel.Name = "configLabel"; - configLabel.Size = new System.Drawing.Size(52, 17); - configLabel.TabIndex = 50; - configLabel.Text = "Config:"; - // - // userBindingSource - // - this.userBindingSource.DataSource = typeof(Volian.Object.Library.User); - // - // panel1 - // - this.panel1.Controls.Add(this.btnCancel); - this.panel1.Controls.Add(this.btnSave); - this.panel1.Controls.Add(configLabel); - this.panel1.Controls.Add(this.configTextBox); - this.panel1.Controls.Add(cfgNameLabel); - this.panel1.Controls.Add(this.cfgNameTextBox); - this.panel1.Controls.Add(courtesyTitleLabel); - this.panel1.Controls.Add(this.courtesyTitleTextBox); - this.panel1.Controls.Add(firstNameLabel); - this.panel1.Controls.Add(this.firstNameTextBox); - this.panel1.Controls.Add(lastNameLabel); - this.panel1.Controls.Add(this.lastNameTextBox); - this.panel1.Controls.Add(middleNameLabel); - this.panel1.Controls.Add(this.middleNameTextBox); - this.panel1.Controls.Add(phoneNumberLabel); - this.panel1.Controls.Add(this.phoneNumberTextBox); - this.panel1.Controls.Add(suffixLabel); - this.panel1.Controls.Add(this.suffixTextBox); - this.panel1.Controls.Add(uidLabel); - this.panel1.Controls.Add(useridLabel); - this.panel1.Controls.Add(this.useridTextBox); - this.panel1.Controls.Add(userLoginLabel); - this.panel1.Controls.Add(this.userLoginTextBox); - this.panel1.Controls.Add(userNameLabel); - this.panel1.Controls.Add(this.userNameTextBox); - this.panel1.Controls.Add(this.uidTextBox); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(721, 158); - this.panel1.TabIndex = 29; - // - // btnCancel - // - this.btnCancel.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnCancel.Location = new System.Drawing.Point(634, 38); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 53; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnSave - // - this.btnSave.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnSave.Location = new System.Drawing.Point(634, 10); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(75, 23); - this.btnSave.TabIndex = 52; - this.btnSave.Text = "Save"; - this.btnSave.UseVisualStyleBackColor = true; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // configTextBox - // - this.configTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "Config", true)); - this.configTextBox.Location = new System.Drawing.Point(71, 85); - this.configTextBox.Multiline = true; - this.configTextBox.Name = "configTextBox"; - this.configTextBox.Size = new System.Drawing.Size(335, 65); - this.configTextBox.TabIndex = 51; - // - // cfgNameTextBox - // - this.cfgNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.cfgNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "CfgName", true)); - this.cfgNameTextBox.Location = new System.Drawing.Point(507, 66); - this.cfgNameTextBox.Name = "cfgNameTextBox"; - this.cfgNameTextBox.Size = new System.Drawing.Size(83, 22); - this.cfgNameTextBox.TabIndex = 30; - // - // courtesyTitleTextBox - // - this.courtesyTitleTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "CourtesyTitle", true)); - this.courtesyTitleTextBox.Location = new System.Drawing.Point(55, 12); - this.courtesyTitleTextBox.Name = "courtesyTitleTextBox"; - this.courtesyTitleTextBox.Size = new System.Drawing.Size(36, 22); - this.courtesyTitleTextBox.TabIndex = 32; - // - // firstNameTextBox - // - this.firstNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "FirstName", true)); - this.firstNameTextBox.Location = new System.Drawing.Point(97, 12); - this.firstNameTextBox.Name = "firstNameTextBox"; - this.firstNameTextBox.Size = new System.Drawing.Size(73, 22); - this.firstNameTextBox.TabIndex = 34; - // - // lastNameTextBox - // - this.lastNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "LastName", true)); - this.lastNameTextBox.Location = new System.Drawing.Point(261, 12); - this.lastNameTextBox.Name = "lastNameTextBox"; - this.lastNameTextBox.Size = new System.Drawing.Size(89, 22); - this.lastNameTextBox.TabIndex = 36; - // - // middleNameTextBox - // - this.middleNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "MiddleName", true)); - this.middleNameTextBox.Location = new System.Drawing.Point(176, 12); - this.middleNameTextBox.Name = "middleNameTextBox"; - this.middleNameTextBox.Size = new System.Drawing.Size(79, 22); - this.middleNameTextBox.TabIndex = 38; - // - // phoneNumberTextBox - // - this.phoneNumberTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "PhoneNumber", true)); - this.phoneNumberTextBox.Location = new System.Drawing.Point(71, 57); - this.phoneNumberTextBox.Name = "phoneNumberTextBox"; - this.phoneNumberTextBox.Size = new System.Drawing.Size(145, 22); - this.phoneNumberTextBox.TabIndex = 40; - // - // suffixTextBox - // - this.suffixTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "Suffix", true)); - this.suffixTextBox.Location = new System.Drawing.Point(356, 11); - this.suffixTextBox.Name = "suffixTextBox"; - this.suffixTextBox.Size = new System.Drawing.Size(50, 22); - this.suffixTextBox.TabIndex = 42; - // - // useridTextBox - // - this.useridTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.useridTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "Userid", true)); - this.useridTextBox.Location = new System.Drawing.Point(507, 94); - this.useridTextBox.Name = "useridTextBox"; - this.useridTextBox.Size = new System.Drawing.Size(83, 22); - this.useridTextBox.TabIndex = 45; - // - // userLoginTextBox - // - this.userLoginTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.userLoginTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "UserLogin", true)); - this.userLoginTextBox.Location = new System.Drawing.Point(507, 124); - this.userLoginTextBox.Name = "userLoginTextBox"; - this.userLoginTextBox.Size = new System.Drawing.Size(83, 22); - this.userLoginTextBox.TabIndex = 47; - // - // userNameTextBox - // - this.userNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.userNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "UserName", true)); - this.userNameTextBox.Location = new System.Drawing.Point(507, 36); - this.userNameTextBox.Name = "userNameTextBox"; - this.userNameTextBox.Size = new System.Drawing.Size(83, 22); - this.userNameTextBox.TabIndex = 49; - // - // uidTextBox - // - this.uidTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.uidTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "Uid", true)); - this.uidTextBox.Enabled = false; - this.uidTextBox.Location = new System.Drawing.Point(547, 11); - this.uidTextBox.Name = "uidTextBox"; - this.uidTextBox.Size = new System.Drawing.Size(40, 22); - this.uidTextBox.TabIndex = 23; - // - // userMembershipsBindingSource - // - this.userMembershipsBindingSource.AllowNew = false; - this.userMembershipsBindingSource.DataMember = "UserMemberships"; - this.userMembershipsBindingSource.DataSource = this.userBindingSource; - // - // userMembershipsDataGridView - // - this.userMembershipsDataGridView.AutoGenerateColumns = false; - this.userMembershipsDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.dataGridViewTextBoxColumn3, - this.dataGridViewTextBoxColumn11, - this.dataGridViewTextBoxColumn7, - this.dataGridViewTextBoxColumn5, - this.dataGridViewTextBoxColumn6}); - this.userMembershipsDataGridView.DataSource = this.userMembershipsBindingSource; - this.userMembershipsDataGridView.Dock = System.Windows.Forms.DockStyle.Fill; - this.userMembershipsDataGridView.Location = new System.Drawing.Point(0, 196); - this.userMembershipsDataGridView.Name = "userMembershipsDataGridView"; - this.userMembershipsDataGridView.RowTemplate.Height = 24; - this.userMembershipsDataGridView.Size = new System.Drawing.Size(721, 223); - this.userMembershipsDataGridView.TabIndex = 29; - // - // dataGridViewTextBoxColumn3 - // - this.dataGridViewTextBoxColumn3.DataPropertyName = "Ugid"; - this.dataGridViewTextBoxColumn3.HeaderText = "Ugid"; - this.dataGridViewTextBoxColumn3.Name = "dataGridViewTextBoxColumn3"; - this.dataGridViewTextBoxColumn3.ReadOnly = true; - this.dataGridViewTextBoxColumn3.Visible = false; - // - // dataGridViewTextBoxColumn11 - // - this.dataGridViewTextBoxColumn11.DataPropertyName = "Gid"; - this.dataGridViewTextBoxColumn11.HeaderText = "Gid"; - this.dataGridViewTextBoxColumn11.Name = "dataGridViewTextBoxColumn11"; - this.dataGridViewTextBoxColumn11.Visible = false; - // - // dataGridViewTextBoxColumn7 - // - this.dataGridViewTextBoxColumn7.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.dataGridViewTextBoxColumn7.DataPropertyName = "Group_GroupName"; - this.dataGridViewTextBoxColumn7.HeaderText = "Group"; - this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7"; - this.dataGridViewTextBoxColumn7.ReadOnly = true; - // - // dataGridViewTextBoxColumn5 - // - this.dataGridViewTextBoxColumn5.DataPropertyName = "StartDate"; - this.dataGridViewTextBoxColumn5.HeaderText = "Start"; - this.dataGridViewTextBoxColumn5.Name = "dataGridViewTextBoxColumn5"; - // - // dataGridViewTextBoxColumn6 - // - this.dataGridViewTextBoxColumn6.DataPropertyName = "EndDate"; - this.dataGridViewTextBoxColumn6.HeaderText = "End"; - this.dataGridViewTextBoxColumn6.Name = "dataGridViewTextBoxColumn6"; - // - // panel2 - // - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(0, 158); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(721, 38); - this.panel2.TabIndex = 30; - // - // frmUser - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(721, 419); - this.Controls.Add(this.userMembershipsDataGridView); - this.Controls.Add(this.panel2); - this.Controls.Add(this.panel1); - this.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "FullName", true)); - this.Name = "frmUser"; - this.Text = "frmUser"; - ((System.ComponentModel.ISupportInitialize)(this.userBindingSource)).EndInit(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.userMembershipsBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.userMembershipsDataGridView)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.BindingSource userBindingSource; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.TextBox cfgNameTextBox; - private System.Windows.Forms.TextBox courtesyTitleTextBox; - private System.Windows.Forms.TextBox firstNameTextBox; - private System.Windows.Forms.TextBox lastNameTextBox; - private System.Windows.Forms.TextBox middleNameTextBox; - private System.Windows.Forms.TextBox phoneNumberTextBox; - private System.Windows.Forms.TextBox suffixTextBox; - private System.Windows.Forms.TextBox useridTextBox; - private System.Windows.Forms.TextBox userLoginTextBox; - private System.Windows.Forms.TextBox userNameTextBox; - private System.Windows.Forms.TextBox uidTextBox; - private System.Windows.Forms.TextBox configTextBox; - private System.Windows.Forms.BindingSource userMembershipsBindingSource; - private System.Windows.Forms.DataGridView userMembershipsDataGridView; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn3; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn11; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn5; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn6; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnSave; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/SimpleTest/frmUser.cs b/PROMS/VEPROMS_Security/SimpleTest/frmUser.cs deleted file mode 100644 index 5270ab88..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/frmUser.cs +++ /dev/null @@ -1,108 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using Csla; -using Volian.Object.Library; - -namespace SimpleTest -{ - public partial class frmUser : Form - { - User _user; - public User User - { - get { return _user; } - } - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - public frmUser(int uid) - { - InitializeComponent(); - _user = User.Get(uid); - _user.BeginEdit(); - //_user.PropertyChanged += new PropertyChangedEventHandler(_user_PropertyChanged); - //_user.UserMemberships.ListChanged += new ListChangedEventHandler(UserMemberships_ListChanged); - userBindingSource.DataSource = _user; - } - - void UserMemberships_ListChanged(object sender, ListChangedEventArgs e) - { - LogDirtyStatus("List Changed - " + e.ListChangedType.ToString()); - } - - void _user_PropertyChanged(object sender, PropertyChangedEventArgs e) - { - LogDirtyStatus("Property Changed - " + e.PropertyName); - } - private void LogDirtyStatus(string s) - { - log.InfoFormat("--------{0}-------",s); - log.InfoFormat("IsDirty = {0}",_user.IsDirty); - foreach(UserMembership um in _user.UserMemberships){ - log.InfoFormat("{0} IsDirty = {1}",um.Group_GroupName,um.IsDirty); - } - } - private void Save(bool rebind) - { - this.userBindingSource.RaiseListChangedEvents = false; - this.userMembershipsBindingSource.RaiseListChangedEvents = false; - // do the save - this.userBindingSource.EndEdit(); - this.userMembershipsBindingSource.EndEdit(); - try - { - User temp = _user.Clone(); - _user = temp.Save(); - _user.BeginEdit(); - if (rebind) - { - // rebind the UI - this.userBindingSource.DataSource = null; - this.userMembershipsBindingSource.DataSource = this.userBindingSource; - this.userBindingSource.DataSource = _user; -// ApplyAuthorizationRules(); - } - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error Saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - finally - { - this.userBindingSource.RaiseListChangedEvents = true; - this.userMembershipsBindingSource.RaiseListChangedEvents = true; - this.userBindingSource.ResetBindings(false); - this.userMembershipsBindingSource.ResetBindings(false); - } - } - - private void btnSave_Click(object sender, EventArgs e) - { - LogDirtyStatus("Before Save"); - Save(true); - LogDirtyStatus("After Save"); - } - - private void btnCancel_Click(object sender, EventArgs e) - { - LogDirtyStatus("Before Cancel"); - userBindingSource.RaiseListChangedEvents=false; - userBindingSource.CancelEdit(); - userBindingSource.RaiseListChangedEvents = true; -// _user.CancelEdit(); - _user.BeginEdit(); - LogDirtyStatus("After Cancel"); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/SimpleTest/frmUser.resx b/PROMS/VEPROMS_Security/SimpleTest/frmUser.resx deleted file mode 100644 index 06032f6e..00000000 --- a/PROMS/VEPROMS_Security/SimpleTest/frmUser.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - 17, 17 - - - 187, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/VEPROMS_Security.sln b/PROMS/VEPROMS_Security/VEPROMS_Security.sln deleted file mode 100644 index 49994fb7..00000000 --- a/PROMS/VEPROMS_Security/VEPROMS_Security.sln +++ /dev/null @@ -1,72 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.Object.Library", "Volian.Object.Library\Volian.Object.Library.csproj", "{592B86E9-D488-452B-B89B-2BB037793FE3}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WinApp", "WinApp\WinApp.csproj", "{9912ADA4-5934-4C1D-AF2E-CA8031EBA338}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SimpleTest", "SimpleTest\SimpleTest.csproj", "{4D60F98F-D018-4447-B123-E3BDDE9C60F8}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "VEPROMS.CSLA.Library", "..\VEPROMS.CSLA.Library\VEPROMS.CSLA.Library.csproj", "{41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 1 - SccProjectUniqueName0 = ..\\VEPROMS.CSLA.Library\\VEPROMS.CSLA.Library.csproj - SccProjectName0 = \u0022$/PROMS/VEPROMS.CSLA.Library\u0022,\u0020TPBAAAAA - SccLocalPath0 = ..\\VEPROMS.CSLA.Library - SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Demo|Any CPU = Demo|Any CPU - Demo|x86 = Demo|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {592B86E9-D488-452B-B89B-2BB037793FE3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {592B86E9-D488-452B-B89B-2BB037793FE3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {592B86E9-D488-452B-B89B-2BB037793FE3}.Debug|x86.ActiveCfg = Debug|Any CPU - {592B86E9-D488-452B-B89B-2BB037793FE3}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {592B86E9-D488-452B-B89B-2BB037793FE3}.Demo|Any CPU.Build.0 = Debug|Any CPU - {592B86E9-D488-452B-B89B-2BB037793FE3}.Demo|x86.ActiveCfg = Debug|Any CPU - {592B86E9-D488-452B-B89B-2BB037793FE3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {592B86E9-D488-452B-B89B-2BB037793FE3}.Release|Any CPU.Build.0 = Release|Any CPU - {592B86E9-D488-452B-B89B-2BB037793FE3}.Release|x86.ActiveCfg = Release|Any CPU - {9912ADA4-5934-4C1D-AF2E-CA8031EBA338}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9912ADA4-5934-4C1D-AF2E-CA8031EBA338}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9912ADA4-5934-4C1D-AF2E-CA8031EBA338}.Debug|x86.ActiveCfg = Debug|Any CPU - {9912ADA4-5934-4C1D-AF2E-CA8031EBA338}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {9912ADA4-5934-4C1D-AF2E-CA8031EBA338}.Demo|Any CPU.Build.0 = Debug|Any CPU - {9912ADA4-5934-4C1D-AF2E-CA8031EBA338}.Demo|x86.ActiveCfg = Debug|Any CPU - {9912ADA4-5934-4C1D-AF2E-CA8031EBA338}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9912ADA4-5934-4C1D-AF2E-CA8031EBA338}.Release|Any CPU.Build.0 = Release|Any CPU - {9912ADA4-5934-4C1D-AF2E-CA8031EBA338}.Release|x86.ActiveCfg = Release|Any CPU - {4D60F98F-D018-4447-B123-E3BDDE9C60F8}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4D60F98F-D018-4447-B123-E3BDDE9C60F8}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4D60F98F-D018-4447-B123-E3BDDE9C60F8}.Debug|x86.ActiveCfg = Debug|Any CPU - {4D60F98F-D018-4447-B123-E3BDDE9C60F8}.Demo|Any CPU.ActiveCfg = Debug|Any CPU - {4D60F98F-D018-4447-B123-E3BDDE9C60F8}.Demo|Any CPU.Build.0 = Debug|Any CPU - {4D60F98F-D018-4447-B123-E3BDDE9C60F8}.Demo|x86.ActiveCfg = Debug|Any CPU - {4D60F98F-D018-4447-B123-E3BDDE9C60F8}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4D60F98F-D018-4447-B123-E3BDDE9C60F8}.Release|Any CPU.Build.0 = Release|Any CPU - {4D60F98F-D018-4447-B123-E3BDDE9C60F8}.Release|x86.ActiveCfg = Release|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Debug|x86.ActiveCfg = Debug|x86 - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Debug|x86.Build.0 = Debug|x86 - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Demo|Any CPU.ActiveCfg = Demo|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Demo|Any CPU.Build.0 = Demo|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Demo|x86.ActiveCfg = Demo|x86 - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Demo|x86.Build.0 = Demo|x86 - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Release|Any CPU.Build.0 = Release|Any CPU - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Release|x86.ActiveCfg = Release|x86 - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/Assignment.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/Assignment.cs deleted file mode 100644 index dbbdaf46..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/Assignment.cs +++ /dev/null @@ -1,764 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// Assignment Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class Assignment : BusinessBase - { - #region Business Methods - - private int _aid; - [System.ComponentModel.DataObjectField(true, true)] - public int Aid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _aid; - } - } - private int _gid; - [System.ComponentModel.DataObjectField(true, true)] - public int Gid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _gid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_gid != value) - { - _gid = value; - PropertyHasChanged(); - } - } - } - private int _rid; - [System.ComponentModel.DataObjectField(true, true)] - public int Rid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _rid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_rid != value) - { - _rid = value; - PropertyHasChanged(); - } - } - } - private int _folderid; - [System.ComponentModel.DataObjectField(true, true)] - public int Folderid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folderid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_folderid != value) - { - _folderid = value; - PropertyHasChanged(); - } - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _startdate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_startdate != tmp.ToShortDateString()) - { - _startdate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _enddate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_enddate != tmp.ToShortDateString()) - { - _enddate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - // TODO: Replace base Assignment.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Assignment - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check Assignment.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 Assignment - protected override object GetIdValue() - { - return _aid; - } - - #endregion - - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - ext.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - // ValidationRules.AddRule(StartDateGTEndDate, "Started"); - } - private bool StartDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_startdate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private bool EndDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_enddate); - } - catch - { - e.Description = "Invalid Date"; - 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(Aid, ""); - //AuthorizationRules.AllowRead(Gid, ""); - //AuthorizationRules.AllowRead(Rid, ""); - //AuthorizationRules.AllowRead(Folderid, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Gid, ""); - //AuthorizationRules.AllowWrite(Rid, ""); - //AuthorizationRules.AllowWrite(Folderid, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - ext.AddAuthorizationRules(AuthorizationRules); - } - - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - - private Assignment() - {/* require use of factory methods */} - - public static Assignment New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Assignment"); - return DataPortal.Create(); - } - - public static Assignment Get(int _aid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Assignment"); - return DataPortal.Fetch(new PKCriteria(_aid)); - } - - public static void Delete(int _aid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Assignment"); - DataPortal.Delete(new PKCriteria(_aid)); - } - - public override Assignment Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Assignment"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Assignment"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Assignment"); - return base.Save(); - } - - #endregion - - #region Data Access Portal - - [Serializable()] - private class PKCriteria - { - private int _aid; - public int Aid - { get { return _aid; } } - public PKCriteria(int aid) - { - _aid = aid; - } - } - // If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create(object criteria) - { - - // Database Defaults - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAssignment"; - cm.Parameters.AddWithValue("@aID", criteria.Aid); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _aid = dr.GetInt32("AID"); - _gid = dr.GetInt32("GID"); - _rid = dr.GetInt32("RID"); - _folderid = dr.GetInt32("FolderID"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - } - } - } - } - catch (Exception ex) - { - Database.LogException("Assignment", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addAssignment"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@gID", _gid); - cm.Parameters.AddWithValue("@rID", _rid); - cm.Parameters.AddWithValue("@folderID", _folderid); - cm.Parameters.AddWithValue("@startDate", new SmartDate(_startdate).DBValue); - cm.Parameters.AddWithValue("@endDate", new SmartDate(_enddate).DBValue); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - // Output Calculated Columns - SqlParameter param_aid = new SqlParameter("@newAID", SqlDbType.Int); - param_aid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_aid); - 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 - _aid = (int)cm.Parameters["@newAID"].Value; - _lastchanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - // update child objects - } - - } - catch (Exception ex) - { - Database.LogException("Assignment", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int aid, int gid, int rid, int folderid, SmartDate startdate, SmartDate enddate, DateTime dts, string usrid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addAssignment"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@gID", gid); - cm.Parameters.AddWithValue("@rID", rid); - cm.Parameters.AddWithValue("@folderID", folderid); - cm.Parameters.AddWithValue("@startDate", startdate.DBValue); - cm.Parameters.AddWithValue("@endDate", enddate.DBValue); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - // Output Calculated Columns - SqlParameter param_aid = new SqlParameter("@newAID", SqlDbType.Int); - param_aid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_aid); - 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 - aid = (int)cm.Parameters["@newAID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - Database.LogException("Assignment", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (IsDirty)// If this is dirty - open the connection - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateAssignment"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@aID", _aid); - cm.Parameters.AddWithValue("@gID", _gid); - cm.Parameters.AddWithValue("@rID", _rid); - cm.Parameters.AddWithValue("@folderID", _folderid); - cm.Parameters.AddWithValue("@startDate", new SmartDate(_startdate).DBValue); - cm.Parameters.AddWithValue("@endDate", new SmartDate(_enddate).DBValue); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - 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; - } - } - // use the open connection to update child objects - } - } - catch (Exception ex) - { - Database.LogException("Assignment", ex); - } - - } - } - - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int aid, int gid, int rid, int folderid, SmartDate startdate, SmartDate enddate, DateTime dts, string usrid, ref byte[] lastchanged) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateAssignment"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@aID", aid); - cm.Parameters.AddWithValue("@gID", gid); - cm.Parameters.AddWithValue("@rID", rid); - cm.Parameters.AddWithValue("@folderID", folderid); - cm.Parameters.AddWithValue("@startDate", startdate.DBValue); - cm.Parameters.AddWithValue("@endDate", enddate.DBValue); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - 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) - { - Database.LogException("Assignment", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_aid)); - } - - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAssignment"; - cm.Parameters.AddWithValue("@aID", criteria.Aid); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - Database.LogException("Assignment", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int aid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAssignment"; - // Input PK Fields - - cm.Parameters.AddWithValue("@aID", aid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - Database.LogException("Assignment", ex); - } - } - - #endregion - - #region Exists - - - public static bool Exists(int aid) - { - ExistsCommand result; - result = DataPortal.Execute - (new ExistsCommand(aid)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - - private int _aid; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(int aid) - { - _aid = aid; - } - - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsAssignment"; - - cm.Parameters.AddWithValue("@aID", _aid); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - Database.LogException("Assignment", ex); - } - } - } - - #endregion - - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create AssignmentExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class Assignment - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/AssignmentInfo.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/AssignmentInfo.cs deleted file mode 100644 index aff78fa9..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/AssignmentInfo.cs +++ /dev/null @@ -1,159 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// AssignmentInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class AssignmentInfo : ReadOnlyBase - { - #region Business Methods - - - private int _aid; - [System.ComponentModel.DataObjectField(true, true)] - public int Aid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _aid; - } - } - private int _gid; - [System.ComponentModel.DataObjectField(true, true)] - public int Gid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _gid; - } - } - private int _rid; - [System.ComponentModel.DataObjectField(true, true)] - public int Rid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _rid; - } - } - private int _folderid; - [System.ComponentModel.DataObjectField(true, true)] - public int Folderid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folderid; - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - } - // TODO: Replace base AssignmentInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current AssignmentInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check AssignmentInfo.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 AssignmentInfo - protected override object GetIdValue() - { - return _aid; - } - - - #endregion - #region Factory Methods - private AssignmentInfo() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - - internal AssignmentInfo(SafeDataReader dr) - { - try - { - _aid = dr.GetInt32("AID"); - _gid = dr.GetInt32("GID"); - _rid = dr.GetInt32("RID"); - _folderid = dr.GetInt32("FolderID"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - } - catch (Exception ex) - { - Database.LogException("AssignmentInfo", ex); - } - } - - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/AssignmentInfoList.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/AssignmentInfoList.cs deleted file mode 100644 index 0b7edef5..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/AssignmentInfoList.cs +++ /dev/null @@ -1,78 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// AssignmentInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class AssignmentInfoList : ReadOnlyListBase - { - #region Factory Methods - /// - /// Return a list of all projects. - /// - public static AssignmentInfoList Get() - { - return DataPortal.Fetch(new Criteria()); - } - - - // TODO: Add alternative gets - - //public static AssignmentInfoList Get() - //{ - // return DataPortal.Fetch(new FilteredCriteria()); - //} - - private AssignmentInfoList() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - [Serializable()] - private class Criteria - { /* no criteria - retrieve all rows */ } - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - try{ - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getAssignments"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read())this.Add(new AssignmentInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch(Exception ex) - { - Database.LogException("AssignmentInfoList",ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/Connection.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/Connection.cs deleted file mode 100644 index 992d4cda..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/Connection.cs +++ /dev/null @@ -1,764 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// Connection Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class Connection : BusinessBase - { - #region Business Methods - - private int _dbid; - [System.ComponentModel.DataObjectField(true, true)] - public int Dbid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dbid; - } - } - private string _name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_name != value) - { - _name = value; - PropertyHasChanged(); - } - } - } - private string _title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_title != value) - { - _title = value; - PropertyHasChanged(); - } - } - } - private string _connectionstring = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string ConnectionString - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _connectionstring; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_connectionstring != value) - { - _connectionstring = value; - PropertyHasChanged(); - } - } - } - private int _servertype; - /// - /// 0 SQL Server - /// - [System.ComponentModel.DataObjectField(true, true)] - public int ServerType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _servertype; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_servertype != value) - { - _servertype = value; - PropertyHasChanged(); - } - } - } - private string _config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_config != value) - { - _config = value; - PropertyHasChanged(); - } - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - private ConnectionFolders _connectionfolders = ConnectionFolders.New(); - /// - /// Related Field - /// - [System.ComponentModel.DataObjectField(true, true)] - public ConnectionFolders ConnectionFolders - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _connectionfolders; - } - } - public override bool IsDirty - { - get { return base.IsDirty || _connectionfolders.IsDirty; } - } - public override bool IsValid - { - get { return base.IsValid && _connectionfolders.IsValid; } - } - // TODO: Replace base Connection.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Connection - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check Connection.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 Connection - protected override object GetIdValue() - { - return _dbid; - } - - #endregion - - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 510)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("ConnectionString", 510)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - ext.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - // ValidationRules.AddRule(StartDateGTEndDate, "Started"); - } - // 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(Dbid, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowRead(ConnectionString, ""); - //AuthorizationRules.AllowRead(ServerType, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowWrite(ConnectionString, ""); - //AuthorizationRules.AllowWrite(ServerType, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - ext.AddAuthorizationRules(AuthorizationRules); - } - - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - - private Connection() - {/* require use of factory methods */} - - public static Connection New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Connection"); - return DataPortal.Create(); - } - - public static Connection Get(int _dbid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Connection"); - return DataPortal.Fetch(new PKCriteria(_dbid)); - } - - public static void Delete(int _dbid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Connection"); - DataPortal.Delete(new PKCriteria(_dbid)); - } - - public override Connection Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Connection"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Connection"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Connection"); - return base.Save(); - } - - #endregion - - #region Data Access Portal - - [Serializable()] - private class PKCriteria - { - private int _dbid; - public int Dbid - { get { return _dbid; } } - public PKCriteria(int dbid) - { - _dbid = dbid; - } - } - // If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create(object criteria) - { - - // Database Defaults - _servertype = ext.DefaultServerType; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getConnection"; - cm.Parameters.AddWithValue("@dBID", criteria.Dbid); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _dbid = dr.GetInt32("DBID"); - _name = dr.GetString("Name"); - _title = dr.GetString("Title"); - _connectionstring = dr.GetString("ConnectionString"); - _servertype = dr.GetInt32("ServerType"); - _config = dr.GetString("Config"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - // load child objects - dr.NextResult(); - _connectionfolders = ConnectionFolders.Get(dr); - - } - } - } - } - catch (Exception ex) - { - Database.LogException("Connection", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addConnection"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@name", _name); - cm.Parameters.AddWithValue("@title", _title); - cm.Parameters.AddWithValue("@connectionString", _connectionstring); - cm.Parameters.AddWithValue("@serverType", _servertype); - cm.Parameters.AddWithValue("@config", _config); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - // Output Calculated Columns - SqlParameter param_dbid = new SqlParameter("@newDBID", SqlDbType.Int); - param_dbid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_dbid); - 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 - _dbid = (int)cm.Parameters["@newDBID"].Value; - _lastchanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - // update child objects - _connectionfolders.Update(this, cn); - - } - - } - catch (Exception ex) - { - Database.LogException("Connection", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int dbid, string name, string title, string connectionstring, int servertype, string config, DateTime dts, string usrid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addConnection"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@name", name); - cm.Parameters.AddWithValue("@title", title); - cm.Parameters.AddWithValue("@connectionString", connectionstring); - cm.Parameters.AddWithValue("@serverType", servertype); - cm.Parameters.AddWithValue("@config", config); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - // Output Calculated Columns - SqlParameter param_dbid = new SqlParameter("@newDBID", SqlDbType.Int); - param_dbid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_dbid); - 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 - dbid = (int)cm.Parameters["@newDBID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - Database.LogException("Connection", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (IsDirty)// If this is dirty - open the connection - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateConnection"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@dBID", _dbid); - cm.Parameters.AddWithValue("@name", _name); - cm.Parameters.AddWithValue("@title", _title); - cm.Parameters.AddWithValue("@connectionString", _connectionstring); - cm.Parameters.AddWithValue("@serverType", _servertype); - cm.Parameters.AddWithValue("@config", _config); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - 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; - } - } - // use the open connection to update child objects - _connectionfolders.Update(this, cn); - - } - } - catch (Exception ex) - { - Database.LogException("Connection", ex); - } - - } - } - - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int dbid, string name, string title, string connectionstring, int servertype, string config, DateTime dts, string usrid, ref byte[] lastchanged) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateConnection"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@dBID", dbid); - cm.Parameters.AddWithValue("@name", name); - cm.Parameters.AddWithValue("@title", title); - cm.Parameters.AddWithValue("@connectionString", connectionstring); - cm.Parameters.AddWithValue("@serverType", servertype); - cm.Parameters.AddWithValue("@config", config); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - 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) - { - Database.LogException("Connection", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_dbid)); - } - - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteConnection"; - cm.Parameters.AddWithValue("@dBID", criteria.Dbid); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - Database.LogException("Connection", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int dbid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteConnection"; - // Input PK Fields - - cm.Parameters.AddWithValue("@dBID", dbid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - Database.LogException("Connection", ex); - } - } - - #endregion - - #region Exists - - - public static bool Exists(int dbid) - { - ExistsCommand result; - result = DataPortal.Execute - (new ExistsCommand(dbid)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - - private int _dbid; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(int dbid) - { - _dbid = dbid; - } - - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsConnection"; - - cm.Parameters.AddWithValue("@dBID", _dbid); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - Database.LogException("Connection", ex); - } - } - } - - #endregion - - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultServerType - { - get { return 1; } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create ConnectionExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class Connection - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual int DefaultServerType - // { - // get { return 1; } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionFolder.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionFolder.cs deleted file mode 100644 index d6c4addb..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionFolder.cs +++ /dev/null @@ -1,432 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// ConnectionFolder Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class ConnectionFolder : BusinessBase - { - #region Business Methods - - - private int _folderid; - [System.ComponentModel.DataObjectField(true, true)] - public int Folderid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folderid; - } - } - private int _parentid; - [System.ComponentModel.DataObjectField(true, true)] - public int Parentid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _parentid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_parentid != value) - { - _parentid = value; - PropertyHasChanged(); - } - } - } - private string _name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_name != value) - { - _name = value; - PropertyHasChanged(); - } - } - } - private string _title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_title != value) - { - _title = value; - PropertyHasChanged(); - } - } - } - private string _config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_config != value) - { - _config = value; - PropertyHasChanged(); - } - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - // TODO: Check ConnectionFolder.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 ConnectionFolder - protected override object GetIdValue() - { - return _folderid; - } - // TODO: Replace base ConnectionFolder.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ConnectionFolder - //public override string ToString() - //{ - // return base.ToString(); - //} - - #endregion - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 510)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 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(Folderid, ""); - //AuthorizationRules.AllowRead(Parentid, ""); - //AuthorizationRules.AllowWrite(Parentid, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - } - - 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 - - internal static ConnectionFolder New(string name) - { - return new ConnectionFolder(name); - } - - internal static ConnectionFolder Get(SafeDataReader dr) - { - return new ConnectionFolder(dr); - } - - private ConnectionFolder() - { - MarkAsChild(); - _parentid = ext.DefaultParentid; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - } - - private ConnectionFolder(string name) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _parentid = ext.DefaultParentid; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - _name = name; - } - - private ConnectionFolder(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - - #endregion - #region Data Access Portal - - private void Fetch(SafeDataReader dr) - { - try - { - _folderid = dr.GetInt32("FolderID"); - _parentid = dr.GetInt32("ParentID"); - _name = dr.GetString("Name"); - _title = dr.GetString("Title"); - _config = dr.GetString("Config"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - } - catch (Exception ex) - { - Database.LogException("ConnectionFolder", ex); - } - MarkOld(); - } - - internal void Insert(Connection connection, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Folder.Add(cn, ref _folderid, _parentid, connection.Dbid, _name, _title, _config, _dts, _usrid); - MarkOld(); - } - - internal void Update(Connection connection, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Folder.Update(cn, ref _folderid, _parentid, connection.Dbid, _name, _title, _config, _dts, _usrid, ref _lastchanged); - } - - internal void DeleteSelf(Connection connection, SqlConnection cn) - { - // 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; - Folder.Remove(cn, _folderid); - MarkNew(); - } - - #endregion - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultParentid - { - get { return 0; } - } - public virtual int DefaultDbid - { - get { return 0; } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create ConnectionFolderExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class ConnectionFolder - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual int DefaultParentid - // { - // get { return 0; } - // } - // public virtual int DefaultDbid - // { - // get { return 0; } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionFolders.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionFolders.cs deleted file mode 100644 index c904de19..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionFolders.cs +++ /dev/null @@ -1,85 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// ConnectionFolders Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class ConnectionFolders : BusinessListBase - { -// No Columns to retrieve - #region Factory Methods - - internal static ConnectionFolders New() - { - return new ConnectionFolders(); - } - - internal static ConnectionFolders Get(SafeDataReader dr) - { - return new ConnectionFolders(dr); - } - - private ConnectionFolders() - { - MarkAsChild(); - } - - private ConnectionFolders(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(ConnectionFolder.Get(dr)); - this.RaiseListChangedEvents = true; - } - - internal void Update(Connection connection,SqlConnection cn) - { - this.RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (ConnectionFolder obj in DeletedList) - obj.DeleteSelf(connection,cn); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (ConnectionFolder obj in this) - { - if (obj.IsNew) - obj.Insert(connection,cn); - else - obj.Update(connection,cn); - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionInfo.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionInfo.cs deleted file mode 100644 index 67dc3193..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionInfo.cs +++ /dev/null @@ -1,162 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// ConnectionInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class ConnectionInfo : ReadOnlyBase - { - #region Business Methods - - - private int _dbid; - [System.ComponentModel.DataObjectField(true, true)] - public int Dbid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dbid; - } - } - private string _name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _name; - } - } - private string _title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _title; - } - } - private string _connectionstring = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string ConnectionString - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _connectionstring; - } - } - private int _servertype; - /// - /// 0 SQL Server - /// - [System.ComponentModel.DataObjectField(true, true)] - public int ServerType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _servertype; - } - } - private string _config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _config; - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - } - // TODO: Replace base ConnectionInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current ConnectionInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check ConnectionInfo.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 ConnectionInfo - protected override object GetIdValue() - { - return _dbid; - } - - - #endregion - #region Factory Methods - private ConnectionInfo() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - - internal ConnectionInfo(SafeDataReader dr) - { - try - { - _dbid = dr.GetInt32("DBID"); - _name = dr.GetString("Name"); - _title = dr.GetString("Title"); - _connectionstring = dr.GetString("ConnectionString"); - _servertype = dr.GetInt32("ServerType"); - _config = dr.GetString("Config"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - } - catch (Exception ex) - { - Database.LogException("ConnectionInfo", ex); - } - } - - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionInfoList.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionInfoList.cs deleted file mode 100644 index 5a3c45b7..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/ConnectionInfoList.cs +++ /dev/null @@ -1,78 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// ConnectionInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class ConnectionInfoList : ReadOnlyListBase - { - #region Factory Methods - /// - /// Return a list of all projects. - /// - public static ConnectionInfoList Get() - { - return DataPortal.Fetch(new Criteria()); - } - - - // TODO: Add alternative gets - - //public static ConnectionInfoList Get() - //{ - // return DataPortal.Fetch(new FilteredCriteria()); - //} - - private ConnectionInfoList() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - [Serializable()] - private class Criteria - { /* no criteria - retrieve all rows */ } - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - try{ - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getConnections"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read())this.Add(new ConnectionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch(Exception ex) - { - Database.LogException("ConnectionInfoList",ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/Database.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/Database.cs deleted file mode 100644 index 362554ce..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/Database.cs +++ /dev/null @@ -1,83 +0,0 @@ -using System; -using System.Configuration; -using Csla; -using System.Data.SqlClient; -using System.IO; - -namespace Volian.Object.Library -{ - public static class Database - { - #region Log4Net - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #endregion - public static string VEPROMS_Connection - { - get - { - DateTime.Today.ToLongDateString(); - ConnectionStringSettings cs = ConfigurationManager.ConnectionStrings["VEPROMS"]; - if (cs == null) - { - throw new ApplicationException("Database.cs Could not find connection VEPROMS"); - } - return cs.ConnectionString; - } - } - public static SqlConnection VEPROMS_SqlConnection - { - get - { - string strConn = VEPROMS_Connection; // If failure - Fail (Don't try to catch) - // Attempt to make a connection - try - { - SqlConnection cn = new SqlConnection(strConn); - cn.Open(); - return cn; - } - catch (SqlException exsql) - { - const string strAttachError = "An attempt to attach an auto-named database for file "; - if (exsql.Message.StartsWith(strAttachError)) - {// Check to see if the file is missing - string sFile = exsql.Message.Substring(strAttachError.Length); - sFile = sFile.Substring(0, sFile.IndexOf(" failed")); - // "An attempt to attach an auto-named database for file failed" - if (strConn.ToLower().IndexOf("user instance=true") < 0) - { - throw new ApplicationException("Connection String missing attribute: User Instance=True"); - } - if (File.Exists(sFile)) - { - throw new ApplicationException("Database file " + sFile + " Cannot be opened\r\n", exsql); - } - else - { - throw new FileNotFoundException("Database file " + sFile + " Not Found", exsql); - } - } - else - { - throw new ApplicationException("Failure on Connect", exsql); - } - } - catch (Exception ex)// Throw Application Exception on Failure - { - if (log.IsErrorEnabled) log.Error("Connection Error", ex); - throw new ApplicationException("Failure on Connect", ex); - } - } - } - public static void LogException(string s,Exception ex) - { - log.Error(s,ex); - int i = 0; - Console.WriteLine("Error - {0}", s); - for (; ex != null; ex = ex.InnerException) - { - Console.WriteLine("{0}{1} - {2}", "".PadLeft(i * 2), ex.GetType().ToString(), ex.Message); - } - } - } -} diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/Folder.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/Folder.cs deleted file mode 100644 index a9487771..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/Folder.cs +++ /dev/null @@ -1,768 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// Folder Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class Folder : BusinessBase - { - #region Business Methods - - private int _folderid; - [System.ComponentModel.DataObjectField(true, true)] - public int Folderid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folderid; - } - } - private int _parentid; - [System.ComponentModel.DataObjectField(true, true)] - public int Parentid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _parentid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_parentid != value) - { - _parentid = value; - PropertyHasChanged(); - } - } - } - private int _dbid; - [System.ComponentModel.DataObjectField(true, true)] - public int Dbid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dbid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dbid != value) - { - _dbid = value; - PropertyHasChanged(); - } - } - } - private string _name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_name != value) - { - _name = value; - PropertyHasChanged(); - } - } - } - private string _title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_title != value) - { - _title = value; - PropertyHasChanged(); - } - } - } - private string _config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_config != value) - { - _config = value; - PropertyHasChanged(); - } - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - private FolderAssignments _folderassignments = FolderAssignments.New(); - /// - /// Related Field - /// - [System.ComponentModel.DataObjectField(true, true)] - public FolderAssignments FolderAssignments - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folderassignments; - } - } - public override bool IsDirty - { - get { return base.IsDirty || _folderassignments.IsDirty; } - } - public override bool IsValid - { - get { return base.IsValid && _folderassignments.IsValid; } - } - // TODO: Replace base Folder.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Folder - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check Folder.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 Folder - protected override object GetIdValue() - { - return _folderid; - } - - #endregion - - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 510)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - ext.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - // ValidationRules.AddRule(StartDateGTEndDate, "Started"); - } - // 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(Folderid, ""); - //AuthorizationRules.AllowRead(Parentid, ""); - //AuthorizationRules.AllowRead(Dbid, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Parentid, ""); - //AuthorizationRules.AllowWrite(Dbid, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - ext.AddAuthorizationRules(AuthorizationRules); - } - - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - - private Folder() - {/* require use of factory methods */} - - public static Folder New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Folder"); - return DataPortal.Create(); - } - - public static Folder Get(int _folderid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Folder"); - return DataPortal.Fetch(new PKCriteria(_folderid)); - } - - public static void Delete(int _folderid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Folder"); - DataPortal.Delete(new PKCriteria(_folderid)); - } - - public override Folder Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Folder"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Folder"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Folder"); - return base.Save(); - } - - #endregion - - #region Data Access Portal - - [Serializable()] - private class PKCriteria - { - private int _folderid; - public int Folderid - { get { return _folderid; } } - public PKCriteria(int folderid) - { - _folderid = folderid; - } - } - // If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create(object criteria) - { - - // Database Defaults - _parentid = ext.DefaultParentid; - _dbid = ext.DefaultDbid; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getFolder"; - cm.Parameters.AddWithValue("@folderID", criteria.Folderid); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _folderid = dr.GetInt32("FolderID"); - _parentid = dr.GetInt32("ParentID"); - _dbid = dr.GetInt32("DBID"); - _name = dr.GetString("Name"); - _title = dr.GetString("Title"); - _config = dr.GetString("Config"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - // load child objects - dr.NextResult(); - _folderassignments = FolderAssignments.Get(dr); - - } - } - } - } - catch (Exception ex) - { - Database.LogException("Folder", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addFolder"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@parentID", _parentid); - cm.Parameters.AddWithValue("@dBID", _dbid); - cm.Parameters.AddWithValue("@name", _name); - cm.Parameters.AddWithValue("@title", _title); - cm.Parameters.AddWithValue("@config", _config); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - // Output Calculated Columns - SqlParameter param_folderid = new SqlParameter("@newFolderID", SqlDbType.Int); - param_folderid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_folderid); - 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 - _folderid = (int)cm.Parameters["@newFolderID"].Value; - _lastchanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - // update child objects - _folderassignments.Update(this, cn); - - } - - } - catch (Exception ex) - { - Database.LogException("Folder", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int folderid, int parentid, int dbid, string name, string title, string config, DateTime dts, string usrid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addFolder"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@parentID", parentid); - cm.Parameters.AddWithValue("@dBID", dbid); - cm.Parameters.AddWithValue("@name", name); - cm.Parameters.AddWithValue("@title", title); - cm.Parameters.AddWithValue("@config", config); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - // Output Calculated Columns - SqlParameter param_folderid = new SqlParameter("@newFolderID", SqlDbType.Int); - param_folderid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_folderid); - 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 - folderid = (int)cm.Parameters["@newFolderID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - Database.LogException("Folder", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (IsDirty)// If this is dirty - open the connection - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateFolder"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@folderID", _folderid); - cm.Parameters.AddWithValue("@parentID", _parentid); - cm.Parameters.AddWithValue("@dBID", _dbid); - cm.Parameters.AddWithValue("@name", _name); - cm.Parameters.AddWithValue("@title", _title); - cm.Parameters.AddWithValue("@config", _config); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - 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; - } - } - // use the open connection to update child objects - _folderassignments.Update(this, cn); - - } - } - catch (Exception ex) - { - Database.LogException("Folder", ex); - } - - } - } - - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int folderid, int parentid, int dbid, string name, string title, string config, DateTime dts, string usrid, ref byte[] lastchanged) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateFolder"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@folderID", folderid); - cm.Parameters.AddWithValue("@parentID", parentid); - cm.Parameters.AddWithValue("@dBID", dbid); - cm.Parameters.AddWithValue("@name", name); - cm.Parameters.AddWithValue("@title", title); - cm.Parameters.AddWithValue("@config", config); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - 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) - { - Database.LogException("Folder", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_folderid)); - } - - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteFolder"; - cm.Parameters.AddWithValue("@folderID", criteria.Folderid); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - Database.LogException("Folder", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int folderid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteFolder"; - // Input PK Fields - - cm.Parameters.AddWithValue("@folderID", folderid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - Database.LogException("Folder", ex); - } - } - - #endregion - - #region Exists - - - public static bool Exists(int folderid) - { - ExistsCommand result; - result = DataPortal.Execute - (new ExistsCommand(folderid)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - - private int _folderid; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(int folderid) - { - _folderid = folderid; - } - - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsFolder"; - - cm.Parameters.AddWithValue("@folderID", _folderid); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - Database.LogException("Folder", ex); - } - } - } - - #endregion - - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultParentid - { - get { return 0; } - } - public virtual int DefaultDbid - { - get { return 0; } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create FolderExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class Folder - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual int DefaultParentid - // { - // get { return 0; } - // } - // public virtual int DefaultDbid - // { - // get { return 0; } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/FolderAssignment.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/FolderAssignment.cs deleted file mode 100644 index 84cd0846..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/FolderAssignment.cs +++ /dev/null @@ -1,567 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// FolderAssignment Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class FolderAssignment : BusinessBase - { - #region Business Methods - - - private int _aid; - [System.ComponentModel.DataObjectField(true, true)] - public int Aid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _aid; - } - } - private int _gid; - [System.ComponentModel.DataObjectField(true, true)] - public int Gid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _gid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_gid != value) - { - _gid = value; - PropertyHasChanged(); - } - } - } - private int _rid; - [System.ComponentModel.DataObjectField(true, true)] - public int Rid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _rid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_rid != value) - { - _rid = value; - PropertyHasChanged(); - } - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _startdate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_startdate != tmp.ToShortDateString()) - { - _startdate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _enddate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_enddate != tmp.ToShortDateString()) - { - _enddate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - private string _group_groupname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Group_GroupName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_groupname; - } - } - private int _group_grouptype; - [System.ComponentModel.DataObjectField(true, true)] - public int Group_GroupType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_grouptype; - } - } - private string _group_config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Group_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_config; - } - } - private DateTime _group_dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Group_Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_dts; - } - } - private string _group_usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Group_Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_usrid; - } - } - private string _role_name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Role_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _role_name; - } - } - private string _role_title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Role_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _role_title; - } - } - private DateTime _role_dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Role_Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _role_dts; - } - } - private string _role_usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Role_Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _role_usrid; - } - } - // TODO: Check FolderAssignment.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 FolderAssignment - protected override object GetIdValue() - { - return _aid; - } - // TODO: Replace base FolderAssignment.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current FolderAssignment - //public override string ToString() - //{ - // return base.ToString(); - //} - - #endregion - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - // TODO: Add other validation rules - } - - private bool StartDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_startdate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private bool EndDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_enddate); - } - catch - { - e.Description = "Invalid Date"; - 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(Aid, ""); - //AuthorizationRules.AllowRead(Gid, ""); - //AuthorizationRules.AllowWrite(Gid, ""); - //AuthorizationRules.AllowRead(Rid, ""); - //AuthorizationRules.AllowWrite(Rid, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - } - - 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 - - internal static FolderAssignment New(int gid, int rid) - { - return new FolderAssignment(Volian.Object.Library.Group.Get(gid), Volian.Object.Library.Role.Get(rid)); - } - - internal static FolderAssignment Get(SafeDataReader dr) - { - return new FolderAssignment(dr); - } - - private FolderAssignment() - { - MarkAsChild(); - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - } - - private FolderAssignment(Group group, Role role) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - _gid = group.Gid; - _group_groupname = group.GroupName; - _group_grouptype = group.GroupType; - _group_config = group.Config; - _group_dts = group.Dts; - _group_usrid = group.Usrid; - _rid = role.Rid; - _role_name = role.Name; - _role_title = role.Title; - _role_dts = role.Dts; - _role_usrid = role.Usrid; - } - - private FolderAssignment(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - - #endregion - #region Data Access Portal - - private void Fetch(SafeDataReader dr) - { - try - { - _aid = dr.GetInt32("AID"); - _gid = dr.GetInt32("GID"); - _rid = dr.GetInt32("RID"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - _group_groupname = dr.GetString("Groups_GroupName"); - _group_grouptype = dr.GetInt32("Groups_GroupType"); - _group_config = dr.GetString("Groups_Config"); - _group_dts = dr.GetDateTime("Groups_DTS"); - _group_usrid = dr.GetString("Groups_UsrID"); - _role_name = dr.GetString("Roles_Name"); - _role_title = dr.GetString("Roles_Title"); - _role_dts = dr.GetDateTime("Roles_DTS"); - _role_usrid = dr.GetString("Roles_UsrID"); - } - catch (Exception ex) - { - Database.LogException("FolderAssignment", ex); - } - MarkOld(); - } - - internal void Insert(Folder folder, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Assignment.Add(cn, ref _aid, _gid, _rid, folder.Folderid, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid); - MarkOld(); - } - - internal void Update(Folder folder, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Assignment.Update(cn, ref _aid, _gid, _rid, folder.Folderid, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid, ref _lastchanged); - } - - internal void DeleteSelf(Folder folder, SqlConnection cn) - { - // 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; - Assignment.Remove(cn, _aid); - MarkNew(); - } - - #endregion - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create FolderAssignmentExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class FolderAssignment - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/FolderAssignments.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/FolderAssignments.cs deleted file mode 100644 index 763dc751..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/FolderAssignments.cs +++ /dev/null @@ -1,145 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// FolderAssignments Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class FolderAssignments : BusinessListBase - { - #region Business Methods - - public FolderAssignment this[int gid, int rid] - { - get - { - foreach (FolderAssignment assignment in this) - if (assignment.Gid == gid && assignment.Rid == rid) - return assignment; - return null; - } - } - public FolderAssignment GetItem(int gid, int rid) - { - foreach (FolderAssignment assignment in this) - if (assignment.Gid == gid && assignment.Rid == rid) - return assignment; - return null; - } - - public void Add(int gid, int rid) - { - if (!Contains(gid, rid)) - { - FolderAssignment assignment = - FolderAssignment.New(gid, rid); - this.Add(assignment); - } - else - throw new InvalidOperationException("assignment already exists"); - } - - public void Remove(int gid, int rid) - { - foreach (FolderAssignment assignment in this) - { - if (assignment.Gid == gid && assignment.Rid == rid) - { - Remove(assignment); - break; - } - } - } - - public bool Contains(int gid, int rid) - { - foreach (FolderAssignment assignment in this) - if (assignment.Gid == gid && assignment.Rid == rid) - return true; - return false; - } - - public bool ContainsDeleted(int gid, int rid) - { - foreach (FolderAssignment assignment in DeletedList) - if (assignment.Gid == gid && assignment.Rid == rid) - return true; - return false; - } - - #endregion - #region Factory Methods - - internal static FolderAssignments New() - { - return new FolderAssignments(); - } - - internal static FolderAssignments Get(SafeDataReader dr) - { - return new FolderAssignments(dr); - } - - private FolderAssignments() - { - MarkAsChild(); - } - - private FolderAssignments(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(FolderAssignment.Get(dr)); - this.RaiseListChangedEvents = true; - } - - internal void Update(Folder folder,SqlConnection cn) - { - this.RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (FolderAssignment obj in DeletedList) - obj.DeleteSelf(folder,cn); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (FolderAssignment obj in this) - { - if (obj.IsNew) - obj.Insert(folder,cn); - else - obj.Update(folder,cn); - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/FolderInfo.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/FolderInfo.cs deleted file mode 100644 index 650a2fd3..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/FolderInfo.cs +++ /dev/null @@ -1,159 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// FolderInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class FolderInfo : ReadOnlyBase - { - #region Business Methods - - - private int _folderid; - [System.ComponentModel.DataObjectField(true, true)] - public int Folderid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folderid; - } - } - private int _parentid; - [System.ComponentModel.DataObjectField(true, true)] - public int Parentid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _parentid; - } - } - private int _dbid; - [System.ComponentModel.DataObjectField(true, true)] - public int Dbid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dbid; - } - } - private string _name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _name; - } - } - private string _title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _title; - } - } - private string _config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _config; - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - } - // TODO: Replace base FolderInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current FolderInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check FolderInfo.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 FolderInfo - protected override object GetIdValue() - { - return _folderid; - } - - - #endregion - #region Factory Methods - private FolderInfo() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - - internal FolderInfo(SafeDataReader dr) - { - try - { - _folderid = dr.GetInt32("FolderID"); - _parentid = dr.GetInt32("ParentID"); - _dbid = dr.GetInt32("DBID"); - _name = dr.GetString("Name"); - _title = dr.GetString("Title"); - _config = dr.GetString("Config"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - } - catch (Exception ex) - { - Database.LogException("FolderInfo", ex); - } - } - - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/FolderInfoList.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/FolderInfoList.cs deleted file mode 100644 index a5cdb69c..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/FolderInfoList.cs +++ /dev/null @@ -1,78 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// FolderInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class FolderInfoList : ReadOnlyListBase - { - #region Factory Methods - /// - /// Return a list of all projects. - /// - public static FolderInfoList Get() - { - return DataPortal.Fetch(new Criteria()); - } - - - // TODO: Add alternative gets - - //public static FolderInfoList Get() - //{ - // return DataPortal.Fetch(new FilteredCriteria()); - //} - - private FolderInfoList() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - [Serializable()] - private class Criteria - { /* no criteria - retrieve all rows */ } - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - try{ - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getFolders"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read())this.Add(new FolderInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch(Exception ex) - { - Database.LogException("FolderInfoList",ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/Group.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/Group.cs deleted file mode 100644 index b7fa129a..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/Group.cs +++ /dev/null @@ -1,715 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// Group Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class Group : BusinessBase - { - #region Business Methods - - private int _gid; - [System.ComponentModel.DataObjectField(true, true)] - public int Gid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _gid; - } - } - private string _groupname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string GroupName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _groupname; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_groupname != value) - { - _groupname = value; - PropertyHasChanged(); - } - } - } - private int _grouptype; - [System.ComponentModel.DataObjectField(true, true)] - public int GroupType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _grouptype; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_grouptype != value) - { - _grouptype = value; - PropertyHasChanged(); - } - } - } - private string _config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_config != value) - { - _config = value; - PropertyHasChanged(); - } - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - private GroupAssignments _groupassignments = GroupAssignments.New(); - /// - /// Related Field - /// - [System.ComponentModel.DataObjectField(true, true)] - public GroupAssignments GroupAssignments - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _groupassignments; - } - } - private GroupMemberships _groupmemberships = GroupMemberships.New(); - /// - /// Related Field - /// - [System.ComponentModel.DataObjectField(true, true)] - public GroupMemberships GroupMemberships - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _groupmemberships; - } - } - public override bool IsDirty - { - get { return base.IsDirty || _groupassignments.IsDirty || _groupmemberships.IsDirty; } - } - public override bool IsValid - { - get { return base.IsValid && _groupassignments.IsValid && _groupmemberships.IsValid; } - } - // TODO: Replace base Group.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Group - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check Group.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 Group - protected override object GetIdValue() - { - return _gid; - } - - #endregion - - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "GroupName"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("GroupName", 50)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - ext.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - // ValidationRules.AddRule(StartDateGTEndDate, "Started"); - } - // 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(Gid, ""); - //AuthorizationRules.AllowRead(GroupName, ""); - //AuthorizationRules.AllowRead(GroupType, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(GroupName, ""); - //AuthorizationRules.AllowWrite(GroupType, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - ext.AddAuthorizationRules(AuthorizationRules); - } - - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - - private Group() - {/* require use of factory methods */} - - public static Group New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Group"); - return DataPortal.Create(); - } - - public static Group Get(int _gid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Group"); - return DataPortal.Fetch(new PKCriteria(_gid)); - } - - public static void Delete(int _gid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Group"); - DataPortal.Delete(new PKCriteria(_gid)); - } - - public override Group Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Group"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Group"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Group"); - return base.Save(); - } - - #endregion - - #region Data Access Portal - - [Serializable()] - private class PKCriteria - { - private int _gid; - public int Gid - { get { return _gid; } } - public PKCriteria(int gid) - { - _gid = gid; - } - } - // If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create(object criteria) - { - - // Database Defaults - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getGroup"; - cm.Parameters.AddWithValue("@gID", criteria.Gid); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _gid = dr.GetInt32("GID"); - _groupname = dr.GetString("GroupName"); - _grouptype = dr.GetInt32("GroupType"); - _config = dr.GetString("Config"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - // load child objects - dr.NextResult(); - _groupassignments = GroupAssignments.Get(dr); - - // load child objects - dr.NextResult(); - _groupmemberships = GroupMemberships.Get(dr); - - } - } - } - } - catch (Exception ex) - { - Database.LogException("Group", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addGroup"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@groupName", _groupname); - cm.Parameters.AddWithValue("@groupType", _grouptype); - cm.Parameters.AddWithValue("@config", _config); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - // Output Calculated Columns - SqlParameter param_gid = new SqlParameter("@newGID", SqlDbType.Int); - param_gid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_gid); - 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 - _gid = (int)cm.Parameters["@newGID"].Value; - _lastchanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - // update child objects - _groupassignments.Update(this, cn); - - _groupmemberships.Update(this, cn); - - } - - } - catch (Exception ex) - { - Database.LogException("Group", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int gid, string groupname, int grouptype, string config, DateTime dts, string usrid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addGroup"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@groupName", groupname); - cm.Parameters.AddWithValue("@groupType", grouptype); - cm.Parameters.AddWithValue("@config", config); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - // Output Calculated Columns - SqlParameter param_gid = new SqlParameter("@newGID", SqlDbType.Int); - param_gid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_gid); - 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 - gid = (int)cm.Parameters["@newGID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - Database.LogException("Group", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (IsDirty)// If this is dirty - open the connection - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateGroup"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@gID", _gid); - cm.Parameters.AddWithValue("@groupName", _groupname); - cm.Parameters.AddWithValue("@groupType", _grouptype); - cm.Parameters.AddWithValue("@config", _config); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - 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; - } - } - // use the open connection to update child objects - _groupassignments.Update(this, cn); - - _groupmemberships.Update(this, cn); - - } - } - catch (Exception ex) - { - Database.LogException("Group", ex); - } - - } - } - - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int gid, string groupname, int grouptype, string config, DateTime dts, string usrid, ref byte[] lastchanged) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateGroup"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@gID", gid); - cm.Parameters.AddWithValue("@groupName", groupname); - cm.Parameters.AddWithValue("@groupType", grouptype); - cm.Parameters.AddWithValue("@config", config); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - 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) - { - Database.LogException("Group", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_gid)); - } - - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteGroup"; - cm.Parameters.AddWithValue("@gID", criteria.Gid); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - Database.LogException("Group", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int gid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteGroup"; - // Input PK Fields - - cm.Parameters.AddWithValue("@gID", gid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - Database.LogException("Group", ex); - } - } - - #endregion - - #region Exists - - - public static bool Exists(int gid) - { - ExistsCommand result; - result = DataPortal.Execute - (new ExistsCommand(gid)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - - private int _gid; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(int gid) - { - _gid = gid; - } - - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsGroup"; - - cm.Parameters.AddWithValue("@gID", _gid); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - Database.LogException("Group", ex); - } - } - } - - #endregion - - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create GroupExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class Group - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupAssignment.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/GroupAssignment.cs deleted file mode 100644 index 1df07b69..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupAssignment.cs +++ /dev/null @@ -1,591 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// GroupAssignment Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class GroupAssignment : BusinessBase - { - #region Business Methods - - - private int _aid; - [System.ComponentModel.DataObjectField(true, true)] - public int Aid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _aid; - } - } - private int _rid; - [System.ComponentModel.DataObjectField(true, true)] - public int Rid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _rid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_rid != value) - { - _rid = value; - PropertyHasChanged(); - } - } - } - private int _folderid; - [System.ComponentModel.DataObjectField(true, true)] - public int Folderid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folderid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_folderid != value) - { - _folderid = value; - PropertyHasChanged(); - } - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _startdate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_startdate != tmp.ToShortDateString()) - { - _startdate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _enddate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_enddate != tmp.ToShortDateString()) - { - _enddate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - private int _folder_parentid; - [System.ComponentModel.DataObjectField(true, true)] - public int Folder_Parentid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_parentid; - } - } - private int _folder_dbid; - [System.ComponentModel.DataObjectField(true, true)] - public int Folder_Dbid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_dbid; - } - } - private string _folder_name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Folder_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_name; - } - } - private string _folder_title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Folder_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_title; - } - } - private string _folder_config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Folder_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_config; - } - } - private DateTime _folder_dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Folder_Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_dts; - } - } - private string _folder_usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Folder_Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_usrid; - } - } - private string _role_name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Role_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _role_name; - } - } - private string _role_title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Role_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _role_title; - } - } - private DateTime _role_dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Role_Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _role_dts; - } - } - private string _role_usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Role_Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _role_usrid; - } - } - // TODO: Check GroupAssignment.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 GroupAssignment - protected override object GetIdValue() - { - return _aid; - } - // TODO: Replace base GroupAssignment.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current GroupAssignment - //public override string ToString() - //{ - // return base.ToString(); - //} - - #endregion - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - // TODO: Add other validation rules - } - - private bool StartDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_startdate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private bool EndDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_enddate); - } - catch - { - e.Description = "Invalid Date"; - 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(Aid, ""); - //AuthorizationRules.AllowRead(Rid, ""); - //AuthorizationRules.AllowWrite(Rid, ""); - //AuthorizationRules.AllowRead(Folderid, ""); - //AuthorizationRules.AllowWrite(Folderid, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - } - - 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 - - internal static GroupAssignment New(int rid, int folderid) - { - return new GroupAssignment(Volian.Object.Library.Role.Get(rid), Volian.Object.Library.Folder.Get(folderid)); - } - - internal static GroupAssignment Get(SafeDataReader dr) - { - return new GroupAssignment(dr); - } - - private GroupAssignment() - { - MarkAsChild(); - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - } - - private GroupAssignment(Role role, Folder folder) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - _folderid = folder.Folderid; - _folder_parentid = folder.Parentid; - _folder_dbid = folder.Dbid; - _folder_name = folder.Name; - _folder_title = folder.Title; - _folder_config = folder.Config; - _folder_dts = folder.Dts; - _folder_usrid = folder.Usrid; - _rid = role.Rid; - _role_name = role.Name; - _role_title = role.Title; - _role_dts = role.Dts; - _role_usrid = role.Usrid; - } - - private GroupAssignment(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - - #endregion - #region Data Access Portal - - private void Fetch(SafeDataReader dr) - { - try - { - _aid = dr.GetInt32("AID"); - _rid = dr.GetInt32("RID"); - _folderid = dr.GetInt32("FolderID"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - _folder_parentid = dr.GetInt32("Folders_ParentID"); - _folder_dbid = dr.GetInt32("Folders_DBID"); - _folder_name = dr.GetString("Folders_Name"); - _folder_title = dr.GetString("Folders_Title"); - _folder_config = dr.GetString("Folders_Config"); - _folder_dts = dr.GetDateTime("Folders_DTS"); - _folder_usrid = dr.GetString("Folders_UsrID"); - _role_name = dr.GetString("Roles_Name"); - _role_title = dr.GetString("Roles_Title"); - _role_dts = dr.GetDateTime("Roles_DTS"); - _role_usrid = dr.GetString("Roles_UsrID"); - } - catch (Exception ex) - { - Database.LogException("GroupAssignment", ex); - } - MarkOld(); - } - - internal void Insert(Group group, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Assignment.Add(cn, ref _aid, group.Gid, _rid, _folderid, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid); - MarkOld(); - } - - internal void Update(Group group, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Assignment.Update(cn, ref _aid, group.Gid, _rid, _folderid, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid, ref _lastchanged); - } - - internal void DeleteSelf(Group group, SqlConnection cn) - { - // 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; - Assignment.Remove(cn, _aid); - MarkNew(); - } - - #endregion - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create GroupAssignmentExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class GroupAssignment - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupAssignments.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/GroupAssignments.cs deleted file mode 100644 index 72177fc0..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupAssignments.cs +++ /dev/null @@ -1,145 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// GroupAssignments Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class GroupAssignments : BusinessListBase - { - #region Business Methods - - public GroupAssignment this[int folderid, int rid] - { - get - { - foreach (GroupAssignment assignment in this) - if (assignment.Folderid == folderid && assignment.Rid == rid) - return assignment; - return null; - } - } - public GroupAssignment GetItem(int folderid, int rid) - { - foreach (GroupAssignment assignment in this) - if (assignment.Folderid == folderid && assignment.Rid == rid) - return assignment; - return null; - } - - public void Add(int rid, int folderid) - { - if (!Contains(folderid, rid)) - { - GroupAssignment assignment = - GroupAssignment.New(rid, folderid); - this.Add(assignment); - } - else - throw new InvalidOperationException("assignment already exists"); - } - - public void Remove(int folderid, int rid) - { - foreach (GroupAssignment assignment in this) - { - if (assignment.Folderid == folderid && assignment.Rid == rid) - { - Remove(assignment); - break; - } - } - } - - public bool Contains(int folderid, int rid) - { - foreach (GroupAssignment assignment in this) - if (assignment.Folderid == folderid && assignment.Rid == rid) - return true; - return false; - } - - public bool ContainsDeleted(int folderid, int rid) - { - foreach (GroupAssignment assignment in DeletedList) - if (assignment.Folderid == folderid && assignment.Rid == rid) - return true; - return false; - } - - #endregion - #region Factory Methods - - internal static GroupAssignments New() - { - return new GroupAssignments(); - } - - internal static GroupAssignments Get(SafeDataReader dr) - { - return new GroupAssignments(dr); - } - - private GroupAssignments() - { - MarkAsChild(); - } - - private GroupAssignments(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(GroupAssignment.Get(dr)); - this.RaiseListChangedEvents = true; - } - - internal void Update(Group group,SqlConnection cn) - { - this.RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (GroupAssignment obj in DeletedList) - obj.DeleteSelf(group,cn); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (GroupAssignment obj in this) - { - if (obj.IsNew) - obj.Insert(group,cn); - else - obj.Update(group,cn); - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupInfo.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/GroupInfo.cs deleted file mode 100644 index ff6c28b3..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupInfo.cs +++ /dev/null @@ -1,137 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// GroupInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class GroupInfo : ReadOnlyBase - { - #region Business Methods - - - private int _gid; - [System.ComponentModel.DataObjectField(true, true)] - public int Gid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _gid; - } - } - private string _groupname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string GroupName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _groupname; - } - } - private int _grouptype; - [System.ComponentModel.DataObjectField(true, true)] - public int GroupType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _grouptype; - } - } - private string _config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _config; - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - } - // TODO: Replace base GroupInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current GroupInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check GroupInfo.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 GroupInfo - protected override object GetIdValue() - { - return _gid; - } - - - #endregion - #region Factory Methods - private GroupInfo() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - - internal GroupInfo(SafeDataReader dr) - { - try - { - _gid = dr.GetInt32("GID"); - _groupname = dr.GetString("GroupName"); - _grouptype = dr.GetInt32("GroupType"); - _config = dr.GetString("Config"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - } - catch (Exception ex) - { - Database.LogException("GroupInfo", ex); - } - } - - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupInfoList.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/GroupInfoList.cs deleted file mode 100644 index 106cf251..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupInfoList.cs +++ /dev/null @@ -1,78 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// GroupInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class GroupInfoList : ReadOnlyListBase - { - #region Factory Methods - /// - /// Return a list of all projects. - /// - public static GroupInfoList Get() - { - return DataPortal.Fetch(new Criteria()); - } - - - // TODO: Add alternative gets - - //public static GroupInfoList Get() - //{ - // return DataPortal.Fetch(new FilteredCriteria()); - //} - - private GroupInfoList() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - [Serializable()] - private class Criteria - { /* no criteria - retrieve all rows */ } - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - try{ - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getGroups"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read())this.Add(new GroupInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch(Exception ex) - { - Database.LogException("GroupInfoList",ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupMembership.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/GroupMembership.cs deleted file mode 100644 index dcbada3e..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupMembership.cs +++ /dev/null @@ -1,592 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// GroupMembership Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class GroupMembership : BusinessBase - { - #region Business Methods - - - private int _ugid; - [System.ComponentModel.DataObjectField(true, true)] - public int Ugid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ugid; - } - } - private int _uid; - [System.ComponentModel.DataObjectField(true, true)] - public int Uid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _uid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_uid != value) - { - _uid = value; - PropertyHasChanged(); - } - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _startdate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_startdate != tmp.ToShortDateString()) - { - _startdate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _enddate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_enddate != tmp.ToShortDateString()) - { - _enddate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - private string _user_userid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_Userid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_userid; - } - } - private string _user_firstname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_FirstName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_firstname; - } - } - private string _user_middlename = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_MiddleName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_middlename; - } - } - private string _user_lastname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_LastName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_lastname; - } - } - private string _user_suffix = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_Suffix - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_suffix; - } - } - private string _user_courtesytitle = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_CourtesyTitle - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_courtesytitle; - } - } - private string _user_phonenumber = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_PhoneNumber - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_phonenumber; - } - } - private string _user_cfgname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_CfgName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_cfgname; - } - } - private string _user_userlogin = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_UserLogin - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_userlogin; - } - } - private string _user_username = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_UserName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_username; - } - } - private string _user_config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_config; - } - } - private DateTime _user_dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime User_Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_dts; - } - } - private string _user_usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string User_Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _user_usrid; - } - } - // TODO: Check GroupMembership.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 GroupMembership - protected override object GetIdValue() - { - return _ugid; - } - // TODO: Replace base GroupMembership.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current GroupMembership - //public override string ToString() - //{ - // return base.ToString(); - //} - - #endregion - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - // TODO: Add other validation rules - } - - private bool StartDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_startdate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private bool EndDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_enddate); - } - catch - { - e.Description = "Invalid Date"; - 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(Ugid, ""); - //AuthorizationRules.AllowRead(Uid, ""); - //AuthorizationRules.AllowWrite(Uid, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - } - - 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 - - internal static GroupMembership New(int uid) - { - return new GroupMembership(Volian.Object.Library.User.Get(uid)); - } - - internal static GroupMembership Get(SafeDataReader dr) - { - return new GroupMembership(dr); - } - - private GroupMembership() - { - MarkAsChild(); - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - } - - private GroupMembership(User user) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - _uid = user.Uid; - _user_userid = user.Userid; - _user_firstname = user.FirstName; - _user_middlename = user.MiddleName; - _user_lastname = user.LastName; - _user_suffix = user.Suffix; - _user_courtesytitle = user.CourtesyTitle; - _user_phonenumber = user.PhoneNumber; - _user_cfgname = user.CfgName; - _user_userlogin = user.UserLogin; - _user_username = user.UserName; - _user_config = user.Config; - _user_dts = user.Dts; - _user_usrid = user.Usrid; - } - - private GroupMembership(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - - #endregion - #region Data Access Portal - - private void Fetch(SafeDataReader dr) - { - try - { - _ugid = dr.GetInt32("UGID"); - _uid = dr.GetInt32("UID"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - _user_userid = dr.GetString("Users_UserID"); - _user_firstname = dr.GetString("Users_FirstName"); - _user_middlename = dr.GetString("Users_MiddleName"); - _user_lastname = dr.GetString("Users_LastName"); - _user_suffix = dr.GetString("Users_Suffix"); - _user_courtesytitle = dr.GetString("Users_CourtesyTitle"); - _user_phonenumber = dr.GetString("Users_PhoneNumber"); - _user_cfgname = dr.GetString("Users_CFGName"); - _user_userlogin = dr.GetString("Users_UserLogin"); - _user_username = dr.GetString("Users_UserName"); - _user_config = dr.GetString("Users_Config"); - _user_dts = dr.GetDateTime("Users_DTS"); - _user_usrid = dr.GetString("Users_UsrID"); - } - catch (Exception ex) - { - Database.LogException("GroupMembership", ex); - } - MarkOld(); - } - - internal void Insert(Group group, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Membership.Add(cn, ref _ugid, _uid, group.Gid, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid); - MarkOld(); - } - - internal void Update(Group group, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Membership.Update(cn, ref _ugid, _uid, group.Gid, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid, ref _lastchanged); - } - - internal void DeleteSelf(Group group, SqlConnection cn) - { - // 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; - Membership.Remove(cn, _ugid); - MarkNew(); - } - - #endregion - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create GroupMembershipExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class GroupMembership - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupMembershipExt.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/GroupMembershipExt.cs deleted file mode 100644 index bdec66b7..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupMembershipExt.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace Volian.Object.Library -{ - public partial class GroupMembership : BusinessBase - { - public string User_FullName - { - get { return User_LastName + ", " + User_FirstName; } - } - } -} diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupMemberships.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/GroupMemberships.cs deleted file mode 100644 index 5e5651bd..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/GroupMemberships.cs +++ /dev/null @@ -1,145 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// GroupMemberships Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class GroupMemberships : BusinessListBase - { - #region Business Methods - - public new GroupMembership this[int uid] - { - get - { - foreach (GroupMembership membership in this) - if (membership.Uid == uid) - return membership; - return null; - } - } - public GroupMembership GetItem(int uid) - { - foreach (GroupMembership membership in this) - if (membership.Uid == uid) - return membership; - return null; - } - - public void Add(int uid) - { - if (!Contains(uid)) - { - GroupMembership membership = - GroupMembership.New(uid); - this.Add(membership); - } - else - throw new InvalidOperationException("membership already exists"); - } - - public void Remove(int uid) - { - foreach (GroupMembership membership in this) - { - if (membership.Uid == uid) - { - Remove(membership); - break; - } - } - } - - public bool Contains(int uid) - { - foreach (GroupMembership membership in this) - if (membership.Uid == uid) - return true; - return false; - } - - public bool ContainsDeleted(int uid) - { - foreach (GroupMembership membership in DeletedList) - if (membership.Uid == uid) - return true; - return false; - } - - #endregion - #region Factory Methods - - internal static GroupMemberships New() - { - return new GroupMemberships(); - } - - internal static GroupMemberships Get(SafeDataReader dr) - { - return new GroupMemberships(dr); - } - - private GroupMemberships() - { - MarkAsChild(); - } - - private GroupMemberships(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(GroupMembership.Get(dr)); - this.RaiseListChangedEvents = true; - } - - internal void Update(Group group,SqlConnection cn) - { - this.RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (GroupMembership obj in DeletedList) - obj.DeleteSelf(group,cn); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (GroupMembership obj in this) - { - if (obj.IsNew) - obj.Insert(group,cn); - else - obj.Update(group,cn); - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/Membership.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/Membership.cs deleted file mode 100644 index a437ce11..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/Membership.cs +++ /dev/null @@ -1,738 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// Membership Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class Membership : BusinessBase - { - #region Business Methods - - private int _ugid; - [System.ComponentModel.DataObjectField(true, true)] - public int Ugid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ugid; - } - } - private int _uid; - [System.ComponentModel.DataObjectField(true, true)] - public int Uid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _uid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_uid != value) - { - _uid = value; - PropertyHasChanged(); - } - } - } - private int _gid; - [System.ComponentModel.DataObjectField(true, true)] - public int Gid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _gid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_gid != value) - { - _gid = value; - PropertyHasChanged(); - } - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _startdate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_startdate != tmp.ToShortDateString()) - { - _startdate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _enddate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_enddate != tmp.ToShortDateString()) - { - _enddate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - // TODO: Replace base Membership.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Membership - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check Membership.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 Membership - protected override object GetIdValue() - { - return _ugid; - } - - #endregion - - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - ext.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - // ValidationRules.AddRule(StartDateGTEndDate, "Started"); - } - private bool StartDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_startdate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private bool EndDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_enddate); - } - catch - { - e.Description = "Invalid Date"; - 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(Ugid, ""); - //AuthorizationRules.AllowRead(Uid, ""); - //AuthorizationRules.AllowRead(Gid, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Uid, ""); - //AuthorizationRules.AllowWrite(Gid, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - ext.AddAuthorizationRules(AuthorizationRules); - } - - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - - private Membership() - {/* require use of factory methods */} - - public static Membership New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Membership"); - return DataPortal.Create(); - } - - public static Membership Get(int _ugid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Membership"); - return DataPortal.Fetch(new PKCriteria(_ugid)); - } - - public static void Delete(int _ugid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Membership"); - DataPortal.Delete(new PKCriteria(_ugid)); - } - - public override Membership Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Membership"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Membership"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Membership"); - return base.Save(); - } - - #endregion - - #region Data Access Portal - - [Serializable()] - private class PKCriteria - { - private int _ugid; - public int Ugid - { get { return _ugid; } } - public PKCriteria(int ugid) - { - _ugid = ugid; - } - } - // If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create(object criteria) - { - - // Database Defaults - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getMembership"; - cm.Parameters.AddWithValue("@uGID", criteria.Ugid); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _ugid = dr.GetInt32("UGID"); - _uid = dr.GetInt32("UID"); - _gid = dr.GetInt32("GID"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - } - } - } - } - catch (Exception ex) - { - Database.LogException("Membership", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addMembership"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@uID", _uid); - cm.Parameters.AddWithValue("@gID", _gid); - cm.Parameters.AddWithValue("@startDate", new SmartDate(_startdate).DBValue); - cm.Parameters.AddWithValue("@endDate", new SmartDate(_enddate).DBValue); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - // Output Calculated Columns - SqlParameter param_ugid = new SqlParameter("@newUGID", SqlDbType.Int); - param_ugid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_ugid); - 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 - _ugid = (int)cm.Parameters["@newUGID"].Value; - _lastchanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - // update child objects - } - - } - catch (Exception ex) - { - Database.LogException("Membership", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int ugid, int uid, int gid, SmartDate startdate, SmartDate enddate, DateTime dts, string usrid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addMembership"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@uID", uid); - cm.Parameters.AddWithValue("@gID", gid); - cm.Parameters.AddWithValue("@startDate", startdate.DBValue); - cm.Parameters.AddWithValue("@endDate", enddate.DBValue); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - // Output Calculated Columns - SqlParameter param_ugid = new SqlParameter("@newUGID", SqlDbType.Int); - param_ugid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_ugid); - 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 - ugid = (int)cm.Parameters["@newUGID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - Database.LogException("Membership", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (IsDirty)// If this is dirty - open the connection - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateMembership"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@uGID", _ugid); - cm.Parameters.AddWithValue("@uID", _uid); - cm.Parameters.AddWithValue("@gID", _gid); - cm.Parameters.AddWithValue("@startDate", new SmartDate(_startdate).DBValue); - cm.Parameters.AddWithValue("@endDate", new SmartDate(_enddate).DBValue); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - 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; - } - } - // use the open connection to update child objects - } - } - catch (Exception ex) - { - Database.LogException("Membership", ex); - } - - } - } - - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int ugid, int uid, int gid, SmartDate startdate, SmartDate enddate, DateTime dts, string usrid, ref byte[] lastchanged) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateMembership"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@uGID", ugid); - cm.Parameters.AddWithValue("@uID", uid); - cm.Parameters.AddWithValue("@gID", gid); - cm.Parameters.AddWithValue("@startDate", startdate.DBValue); - cm.Parameters.AddWithValue("@endDate", enddate.DBValue); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - 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) - { - Database.LogException("Membership", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_ugid)); - } - - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteMembership"; - cm.Parameters.AddWithValue("@uGID", criteria.Ugid); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - Database.LogException("Membership", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int ugid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteMembership"; - // Input PK Fields - - cm.Parameters.AddWithValue("@uGID", ugid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - Database.LogException("Membership", ex); - } - } - - #endregion - - #region Exists - - - public static bool Exists(int ugid) - { - ExistsCommand result; - result = DataPortal.Execute - (new ExistsCommand(ugid)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - - private int _ugid; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(int ugid) - { - _ugid = ugid; - } - - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsMembership"; - - cm.Parameters.AddWithValue("@uGID", _ugid); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - Database.LogException("Membership", ex); - } - } - } - - #endregion - - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create MembershipExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class Membership - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/MembershipInfo.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/MembershipInfo.cs deleted file mode 100644 index e3d52e28..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/MembershipInfo.cs +++ /dev/null @@ -1,148 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// MembershipInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class MembershipInfo : ReadOnlyBase - { - #region Business Methods - - - private int _ugid; - [System.ComponentModel.DataObjectField(true, true)] - public int Ugid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ugid; - } - } - private int _uid; - [System.ComponentModel.DataObjectField(true, true)] - public int Uid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _uid; - } - } - private int _gid; - [System.ComponentModel.DataObjectField(true, true)] - public int Gid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _gid; - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - } - // TODO: Replace base MembershipInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current MembershipInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check MembershipInfo.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 MembershipInfo - protected override object GetIdValue() - { - return _ugid; - } - - - #endregion - #region Factory Methods - private MembershipInfo() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - - internal MembershipInfo(SafeDataReader dr) - { - try - { - _ugid = dr.GetInt32("UGID"); - _uid = dr.GetInt32("UID"); - _gid = dr.GetInt32("GID"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - } - catch (Exception ex) - { - Database.LogException("MembershipInfo", ex); - } - } - - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/MembershipInfoList.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/MembershipInfoList.cs deleted file mode 100644 index 82ca039c..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/MembershipInfoList.cs +++ /dev/null @@ -1,78 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// MembershipInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class MembershipInfoList : ReadOnlyListBase - { - #region Factory Methods - /// - /// Return a list of all projects. - /// - public static MembershipInfoList Get() - { - return DataPortal.Fetch(new Criteria()); - } - - - // TODO: Add alternative gets - - //public static MembershipInfoList Get() - //{ - // return DataPortal.Fetch(new FilteredCriteria()); - //} - - private MembershipInfoList() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - [Serializable()] - private class Criteria - { /* no criteria - retrieve all rows */ } - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - try{ - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getMemberships"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read())this.Add(new MembershipInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch(Exception ex) - { - Database.LogException("MembershipInfoList",ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/Permission.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/Permission.cs deleted file mode 100644 index 99a98447..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/Permission.cs +++ /dev/null @@ -1,837 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// Permission Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class Permission : BusinessBase - { - #region Business Methods - - private int _pid; - [System.ComponentModel.DataObjectField(true, true)] - public int Pid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _pid; - } - } - private int _rid; - [System.ComponentModel.DataObjectField(true, true)] - public int Rid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _rid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_rid != value) - { - _rid = value; - PropertyHasChanged(); - } - } - } - private int _permlevel; - /// - /// 0 - Security, 1 - System, 2 - RO, 3 - Procdures, 4 - Sections, 5 - Steps, 6 - Comments - /// - [System.ComponentModel.DataObjectField(true, true)] - public int PermLevel - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _permlevel; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_permlevel != value) - { - _permlevel = value; - PropertyHasChanged(); - } - } - } - private int _versiontype; - /// - /// 0 - Working Draft, 1 - Temporary Change, 2 Approved - /// - [System.ComponentModel.DataObjectField(true, true)] - public int VersionType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _versiontype; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_versiontype != value) - { - _versiontype = value; - PropertyHasChanged(); - } - } - } - private int _permvalue; - /// - /// 1 - Read, 2 - Write, 4 - Create, 8 - Delete (15 - All) - /// - [System.ComponentModel.DataObjectField(true, true)] - public int PermValue - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _permvalue; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_permvalue != value) - { - _permvalue = value; - PropertyHasChanged(); - } - } - } - private int _permad; - /// - /// 0 - Allow, 1 - Deny - /// - [System.ComponentModel.DataObjectField(true, true)] - public int Permad - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _permad; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_permad != value) - { - _permad = value; - PropertyHasChanged(); - } - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _startdate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_startdate != tmp.ToShortDateString()) - { - _startdate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _enddate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_enddate != tmp.ToShortDateString()) - { - _enddate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - // TODO: Replace base Permission.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Permission - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check Permission.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 Permission - protected override object GetIdValue() - { - return _pid; - } - - #endregion - - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - ext.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - // ValidationRules.AddRule(StartDateGTEndDate, "Started"); - } - private bool StartDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_startdate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private bool EndDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_enddate); - } - catch - { - e.Description = "Invalid Date"; - 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(Pid, ""); - //AuthorizationRules.AllowRead(Rid, ""); - //AuthorizationRules.AllowRead(PermLevel, ""); - //AuthorizationRules.AllowRead(VersionType, ""); - //AuthorizationRules.AllowRead(PermValue, ""); - //AuthorizationRules.AllowRead(Permad, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Rid, ""); - //AuthorizationRules.AllowWrite(PermLevel, ""); - //AuthorizationRules.AllowWrite(VersionType, ""); - //AuthorizationRules.AllowWrite(PermValue, ""); - //AuthorizationRules.AllowWrite(Permad, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - ext.AddAuthorizationRules(AuthorizationRules); - } - - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - - private Permission() - {/* require use of factory methods */} - - public static Permission New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Permission"); - return DataPortal.Create(); - } - - public static Permission Get(int _pid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Permission"); - return DataPortal.Fetch(new PKCriteria(_pid)); - } - - public static void Delete(int _pid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Permission"); - DataPortal.Delete(new PKCriteria(_pid)); - } - - public override Permission Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Permission"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Permission"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Permission"); - return base.Save(); - } - - #endregion - - #region Data Access Portal - - [Serializable()] - private class PKCriteria - { - private int _pid; - public int Pid - { get { return _pid; } } - public PKCriteria(int pid) - { - _pid = pid; - } - } - // If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create(object criteria) - { - - // Database Defaults - _permad = ext.DefaultPermad; - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPermission"; - cm.Parameters.AddWithValue("@pID", criteria.Pid); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _pid = dr.GetInt32("PID"); - _rid = dr.GetInt32("RID"); - _permlevel = dr.GetInt32("PermLevel"); - _versiontype = dr.GetInt32("VersionType"); - _permvalue = dr.GetInt32("PermValue"); - _permad = dr.GetInt32("PermAD"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - } - } - } - } - catch (Exception ex) - { - Database.LogException("Permission", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addPermission"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@rID", _rid); - cm.Parameters.AddWithValue("@permLevel", _permlevel); - cm.Parameters.AddWithValue("@versionType", _versiontype); - cm.Parameters.AddWithValue("@permValue", _permvalue); - cm.Parameters.AddWithValue("@permAD", _permad); - cm.Parameters.AddWithValue("@startDate", new SmartDate(_startdate).DBValue); - cm.Parameters.AddWithValue("@endDate", new SmartDate(_enddate).DBValue); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - // Output Calculated Columns - SqlParameter param_pid = new SqlParameter("@newPID", SqlDbType.Int); - param_pid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_pid); - 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 - _pid = (int)cm.Parameters["@newPID"].Value; - _lastchanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - // update child objects - } - - } - catch (Exception ex) - { - Database.LogException("Permission", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int pid, int rid, int permlevel, int versiontype, int permvalue, int permad, SmartDate startdate, SmartDate enddate, DateTime dts, string usrid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addPermission"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@rID", rid); - cm.Parameters.AddWithValue("@permLevel", permlevel); - cm.Parameters.AddWithValue("@versionType", versiontype); - cm.Parameters.AddWithValue("@permValue", permvalue); - cm.Parameters.AddWithValue("@permAD", permad); - cm.Parameters.AddWithValue("@startDate", startdate.DBValue); - cm.Parameters.AddWithValue("@endDate", enddate.DBValue); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - // Output Calculated Columns - SqlParameter param_pid = new SqlParameter("@newPID", SqlDbType.Int); - param_pid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_pid); - 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 - pid = (int)cm.Parameters["@newPID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - Database.LogException("Permission", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (IsDirty)// If this is dirty - open the connection - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updatePermission"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@pID", _pid); - cm.Parameters.AddWithValue("@rID", _rid); - cm.Parameters.AddWithValue("@permLevel", _permlevel); - cm.Parameters.AddWithValue("@versionType", _versiontype); - cm.Parameters.AddWithValue("@permValue", _permvalue); - cm.Parameters.AddWithValue("@permAD", _permad); - cm.Parameters.AddWithValue("@startDate", new SmartDate(_startdate).DBValue); - cm.Parameters.AddWithValue("@endDate", new SmartDate(_enddate).DBValue); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - 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; - } - } - // use the open connection to update child objects - } - } - catch (Exception ex) - { - Database.LogException("Permission", ex); - } - - } - } - - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int pid, int rid, int permlevel, int versiontype, int permvalue, int permad, SmartDate startdate, SmartDate enddate, DateTime dts, string usrid, ref byte[] lastchanged) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updatePermission"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@pID", pid); - cm.Parameters.AddWithValue("@rID", rid); - cm.Parameters.AddWithValue("@permLevel", permlevel); - cm.Parameters.AddWithValue("@versionType", versiontype); - cm.Parameters.AddWithValue("@permValue", permvalue); - cm.Parameters.AddWithValue("@permAD", permad); - cm.Parameters.AddWithValue("@startDate", startdate.DBValue); - cm.Parameters.AddWithValue("@endDate", enddate.DBValue); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - 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) - { - Database.LogException("Permission", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_pid)); - } - - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deletePermission"; - cm.Parameters.AddWithValue("@pID", criteria.Pid); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - Database.LogException("Permission", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int pid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deletePermission"; - // Input PK Fields - - cm.Parameters.AddWithValue("@pID", pid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - Database.LogException("Permission", ex); - } - } - - #endregion - - #region Exists - - - public static bool Exists(int pid) - { - ExistsCommand result; - result = DataPortal.Execute - (new ExistsCommand(pid)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - - private int _pid; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(int pid) - { - _pid = pid; - } - - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsPermission"; - - cm.Parameters.AddWithValue("@pID", _pid); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - Database.LogException("Permission", ex); - } - } - } - - #endregion - - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultPermad - { - get { return 0; } - } - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create PermissionExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class Permission - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual int DefaultPermad - // { - // get { return 0; } - // } - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionExt.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionExt.cs deleted file mode 100644 index 88de545a..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionExt.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace Volian.Object.Library -{ - public partial class Permission - { - private static List _permADLookup; - private static List _permLevelLookup; - private static void setupLookup() - { - if (_permADLookup == null) - { - _permADLookup = new List(); - _permADLookup.Add(new vlnValueKey(0,"Allow")); - _permADLookup.Add(new vlnValueKey(1, "Deny")); - } - if (_permLevelLookup == null) - { - _permLevelLookup = new List(); - _permLevelLookup.Add(new vlnValueKey(0, "Security")); - _permLevelLookup.Add(new vlnValueKey(1, "System")); - _permLevelLookup.Add(new vlnValueKey(2, "RO")); - _permLevelLookup.Add(new vlnValueKey(3, "Procedure")); - _permLevelLookup.Add(new vlnValueKey(4, "Sections")); - _permLevelLookup.Add(new vlnValueKey(5, "Steps")); - _permLevelLookup.Add(new vlnValueKey(6, "Comments")); - } - } - public static List PermADLookup - { - get { setupLookup(); return _permADLookup; } - } - public static List PermLevelLookup - { - get { setupLookup(); return _permLevelLookup; } - } - public bool ReadAccess - { - get { return ((PermValue & 1) == 1); } - set { PermValue = (value?PermValue|1:PermValue^(PermValue&1));} - } - public bool WriteAccess - { - get { return ((PermValue & 2) == 2); } - set { PermValue = (value ? PermValue | 2 : PermValue ^ (PermValue & 2)); } - } - public bool CreateAccess - { - get { return ((PermValue & 4) == 4); } - set { PermValue = (value ? PermValue | 4 : PermValue ^ (PermValue & 4)); } - } - public bool DeleteAccess - { - get { return ((PermValue & 8) == 8); } - set { PermValue = (value ? PermValue | 8 : PermValue ^ (PermValue & 8)); } - } - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual int DefaultPermad - // { - // get { return 0; } - // } - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - } -} diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionInfo.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionInfo.cs deleted file mode 100644 index 45ea6159..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionInfo.cs +++ /dev/null @@ -1,193 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// PermissionInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class PermissionInfo : ReadOnlyBase - { - #region Business Methods - - - private int _pid; - [System.ComponentModel.DataObjectField(true, true)] - public int Pid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _pid; - } - } - private int _rid; - [System.ComponentModel.DataObjectField(true, true)] - public int Rid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _rid; - } - } - private int _permlevel; - /// - /// 0 - Security, 1 - System, 2 - RO, 3 - Procdures, 4 - Sections, 5 - Steps, 6 - Comments - /// - [System.ComponentModel.DataObjectField(true, true)] - public int PermLevel - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _permlevel; - } - } - private int _versiontype; - /// - /// 0 - Working Draft, 1 - Temporary Change, 2 Approved - /// - [System.ComponentModel.DataObjectField(true, true)] - public int VersionType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _versiontype; - } - } - private int _permvalue; - /// - /// 1 - Read, 2 - Write, 4 - Create, 8 - Delete (15 - All) - /// - [System.ComponentModel.DataObjectField(true, true)] - public int PermValue - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _permvalue; - } - } - private int _permad; - /// - /// 0 - Allow, 1 - Deny - /// - [System.ComponentModel.DataObjectField(true, true)] - public int Permad - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _permad; - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - } - // TODO: Replace base PermissionInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current PermissionInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check PermissionInfo.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 PermissionInfo - protected override object GetIdValue() - { - return _pid; - } - - - #endregion - #region Factory Methods - private PermissionInfo() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - - internal PermissionInfo(SafeDataReader dr) - { - try - { - _pid = dr.GetInt32("PID"); - _rid = dr.GetInt32("RID"); - _permlevel = dr.GetInt32("PermLevel"); - _versiontype = dr.GetInt32("VersionType"); - _permvalue = dr.GetInt32("PermValue"); - _permad = dr.GetInt32("PermAD"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - } - catch (Exception ex) - { - Database.LogException("PermissionInfo", ex); - } - } - - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionInfoList.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionInfoList.cs deleted file mode 100644 index 31c0f932..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionInfoList.cs +++ /dev/null @@ -1,78 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// PermissionInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class PermissionInfoList : ReadOnlyListBase - { - #region Factory Methods - /// - /// Return a list of all projects. - /// - public static PermissionInfoList Get() - { - return DataPortal.Fetch(new Criteria()); - } - - - // TODO: Add alternative gets - - //public static PermissionInfoList Get() - //{ - // return DataPortal.Fetch(new FilteredCriteria()); - //} - - private PermissionInfoList() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - [Serializable()] - private class Criteria - { /* no criteria - retrieve all rows */ } - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - try{ - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getPermissions"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read())this.Add(new PermissionInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch(Exception ex) - { - Database.LogException("PermissionInfoList",ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionRole.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionRole.cs deleted file mode 100644 index b3fd14bd..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionRole.cs +++ /dev/null @@ -1,369 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// PermissionRole Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class PermissionRole : BusinessBase - { - #region Business Methods - - - private int _rid; - [System.ComponentModel.DataObjectField(true, true)] - public int Rid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _rid; - } - } - private string _name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_name != value) - { - _name = value; - PropertyHasChanged(); - } - } - } - private string _title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_title != value) - { - _title = value; - PropertyHasChanged(); - } - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - // TODO: Check PermissionRole.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 PermissionRole - protected override object GetIdValue() - { - return _rid; - } - // TODO: Replace base PermissionRole.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current PermissionRole - //public override string ToString() - //{ - // return base.ToString(); - //} - - #endregion - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 50)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Title"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 250)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 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(Rid, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - } - - 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 - - internal static PermissionRole New(string name, string title) - { - return new PermissionRole(name, title); - } - - internal static PermissionRole Get(SafeDataReader dr) - { - return new PermissionRole(dr); - } - - private PermissionRole() - { - MarkAsChild(); - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - } - - private PermissionRole(string name, string title) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - _name = name; - _title = title; - } - - private PermissionRole(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - - #endregion - #region Data Access Portal - - private void Fetch(SafeDataReader dr) - { - try - { - _rid = dr.GetInt32("RID"); - _name = dr.GetString("Name"); - _title = dr.GetString("Title"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - } - catch (Exception ex) - { - Database.LogException("PermissionRole", ex); - } - MarkOld(); - } - - internal void Insert(Permission permission, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Role.Add(cn, ref _rid, _name, _title, _dts, _usrid); - MarkOld(); - } - - internal void Update(Permission permission, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Role.Update(cn, ref _rid, _name, _title, _dts, _usrid, ref _lastchanged); - } - - internal void DeleteSelf(Permission permission, SqlConnection cn) - { - // 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; - Role.Remove(cn, _rid); - MarkNew(); - } - - #endregion - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create PermissionRoleExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class PermissionRole - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionRoles.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionRoles.cs deleted file mode 100644 index d20e0aaa..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/PermissionRoles.cs +++ /dev/null @@ -1,85 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// PermissionRoles Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class PermissionRoles : BusinessListBase - { -// No Columns to retrieve - #region Factory Methods - - internal static PermissionRoles New() - { - return new PermissionRoles(); - } - - internal static PermissionRoles Get(SafeDataReader dr) - { - return new PermissionRoles(dr); - } - - private PermissionRoles() - { - MarkAsChild(); - } - - private PermissionRoles(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(PermissionRole.Get(dr)); - this.RaiseListChangedEvents = true; - } - - internal void Update(Permission permission,SqlConnection cn) - { - this.RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (PermissionRole obj in DeletedList) - obj.DeleteSelf(permission,cn); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (PermissionRole obj in this) - { - if (obj.IsNew) - obj.Insert(permission,cn); - else - obj.Update(permission,cn); - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/Properties/AssemblyInfo.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/Properties/AssemblyInfo.cs deleted file mode 100644 index 21b06c7d..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Volian.Object.Library")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Volian Enterprises, Inc.")] -[assembly: AssemblyProduct("Volian.Object.Library")] -[assembly: AssemblyCopyright("Copyright © Volian Enterprises, Inc. 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d6450c32-46ad-4f6f-9609-ad3a96730bfe")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/Role.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/Role.cs deleted file mode 100644 index e36e8860..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/Role.cs +++ /dev/null @@ -1,691 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// Role Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class Role : BusinessBase - { - #region Business Methods - - private int _rid; - [System.ComponentModel.DataObjectField(true, true)] - public int Rid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _rid; - } - } - private string _name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_name != value) - { - _name = value; - PropertyHasChanged(); - } - } - } - private string _title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _title; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_title != value) - { - _title = value; - PropertyHasChanged(); - } - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - private RoleAssignments _roleassignments = RoleAssignments.New(); - /// - /// Related Field - /// - [System.ComponentModel.DataObjectField(true, true)] - public RoleAssignments RoleAssignments - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _roleassignments; - } - } - private RolePermissions _rolepermissions = RolePermissions.New(); - /// - /// Related Field - /// - [System.ComponentModel.DataObjectField(true, true)] - public RolePermissions RolePermissions - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _rolepermissions; - } - } - public override bool IsDirty - { - get { return base.IsDirty || _roleassignments.IsDirty || _rolepermissions.IsDirty; } - } - public override bool IsValid - { - get { return base.IsValid && _roleassignments.IsValid && _rolepermissions.IsValid; } - } - // TODO: Replace base Role.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current Role - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check Role.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 Role - protected override object GetIdValue() - { - return _rid; - } - - #endregion - - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 50)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Title"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Title", 250)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - ext.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - // ValidationRules.AddRule(StartDateGTEndDate, "Started"); - } - // 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(Rid, ""); - //AuthorizationRules.AllowRead(Name, ""); - //AuthorizationRules.AllowRead(Title, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Name, ""); - //AuthorizationRules.AllowWrite(Title, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - ext.AddAuthorizationRules(AuthorizationRules); - } - - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - - private Role() - {/* require use of factory methods */} - - public static Role New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Role"); - return DataPortal.Create(); - } - - public static Role Get(int _rid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a Role"); - return DataPortal.Fetch(new PKCriteria(_rid)); - } - - public static void Delete(int _rid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Role"); - DataPortal.Delete(new PKCriteria(_rid)); - } - - public override Role Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a Role"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a Role"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a Role"); - return base.Save(); - } - - #endregion - - #region Data Access Portal - - [Serializable()] - private class PKCriteria - { - private int _rid; - public int Rid - { get { return _rid; } } - public PKCriteria(int rid) - { - _rid = rid; - } - } - // If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create(object criteria) - { - - // Database Defaults - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRole"; - cm.Parameters.AddWithValue("@rID", criteria.Rid); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _rid = dr.GetInt32("RID"); - _name = dr.GetString("Name"); - _title = dr.GetString("Title"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - // load child objects - dr.NextResult(); - _roleassignments = RoleAssignments.Get(dr); - - // load child objects - dr.NextResult(); - _rolepermissions = RolePermissions.Get(dr); - - } - } - } - } - catch (Exception ex) - { - Database.LogException("Role", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addRole"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@name", _name); - cm.Parameters.AddWithValue("@title", _title); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - // Output Calculated Columns - SqlParameter param_rid = new SqlParameter("@newRID", SqlDbType.Int); - param_rid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_rid); - 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 - _rid = (int)cm.Parameters["@newRID"].Value; - _lastchanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - // update child objects - _roleassignments.Update(this, cn); - - _rolepermissions.Update(this, cn); - - } - - } - catch (Exception ex) - { - Database.LogException("Role", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int rid, string name, string title, DateTime dts, string usrid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addRole"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@name", name); - cm.Parameters.AddWithValue("@title", title); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - // Output Calculated Columns - SqlParameter param_rid = new SqlParameter("@newRID", SqlDbType.Int); - param_rid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_rid); - 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 - rid = (int)cm.Parameters["@newRID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - Database.LogException("Role", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (IsDirty)// If this is dirty - open the connection - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateRole"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@rID", _rid); - cm.Parameters.AddWithValue("@name", _name); - cm.Parameters.AddWithValue("@title", _title); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - 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; - } - } - // use the open connection to update child objects - _roleassignments.Update(this, cn); - - _rolepermissions.Update(this, cn); - - } - } - catch (Exception ex) - { - Database.LogException("Role", ex); - } - - } - } - - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int rid, string name, string title, DateTime dts, string usrid, ref byte[] lastchanged) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateRole"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@rID", rid); - cm.Parameters.AddWithValue("@name", name); - cm.Parameters.AddWithValue("@title", title); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - 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) - { - Database.LogException("Role", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_rid)); - } - - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRole"; - cm.Parameters.AddWithValue("@rID", criteria.Rid); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - Database.LogException("Role", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int rid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRole"; - // Input PK Fields - - cm.Parameters.AddWithValue("@rID", rid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - Database.LogException("Role", ex); - } - } - - #endregion - - #region Exists - - - public static bool Exists(int rid) - { - ExistsCommand result; - result = DataPortal.Execute - (new ExistsCommand(rid)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - - private int _rid; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(int rid) - { - _rid = rid; - } - - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsRole"; - - cm.Parameters.AddWithValue("@rID", _rid); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - Database.LogException("Role", ex); - } - } - } - - #endregion - - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create RoleExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class Role - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/RoleAssignment.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/RoleAssignment.cs deleted file mode 100644 index c618b621..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/RoleAssignment.cs +++ /dev/null @@ -1,603 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// RoleAssignment Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class RoleAssignment : BusinessBase - { - #region Business Methods - - - private int _aid; - [System.ComponentModel.DataObjectField(true, true)] - public int Aid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _aid; - } - } - private int _gid; - [System.ComponentModel.DataObjectField(true, true)] - public int Gid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _gid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_gid != value) - { - _gid = value; - PropertyHasChanged(); - } - } - } - private int _folderid; - [System.ComponentModel.DataObjectField(true, true)] - public int Folderid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folderid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_folderid != value) - { - _folderid = value; - PropertyHasChanged(); - } - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _startdate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_startdate != tmp.ToShortDateString()) - { - _startdate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _enddate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_enddate != tmp.ToShortDateString()) - { - _enddate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - private int _folder_parentid; - [System.ComponentModel.DataObjectField(true, true)] - public int Folder_Parentid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_parentid; - } - } - private int _folder_dbid; - [System.ComponentModel.DataObjectField(true, true)] - public int Folder_Dbid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_dbid; - } - } - private string _folder_name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Folder_Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_name; - } - } - private string _folder_title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Folder_Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_title; - } - } - private string _folder_config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Folder_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_config; - } - } - private DateTime _folder_dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Folder_Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_dts; - } - } - private string _folder_usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Folder_Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _folder_usrid; - } - } - private string _group_groupname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Group_GroupName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_groupname; - } - } - private int _group_grouptype; - [System.ComponentModel.DataObjectField(true, true)] - public int Group_GroupType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_grouptype; - } - } - private string _group_config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Group_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_config; - } - } - private DateTime _group_dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Group_Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_dts; - } - } - private string _group_usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Group_Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_usrid; - } - } - // TODO: Check RoleAssignment.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 RoleAssignment - protected override object GetIdValue() - { - return _aid; - } - // TODO: Replace base RoleAssignment.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RoleAssignment - //public override string ToString() - //{ - // return base.ToString(); - //} - - #endregion - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - // TODO: Add other validation rules - } - - private bool StartDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_startdate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private bool EndDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_enddate); - } - catch - { - e.Description = "Invalid Date"; - 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(Aid, ""); - //AuthorizationRules.AllowRead(Gid, ""); - //AuthorizationRules.AllowWrite(Gid, ""); - //AuthorizationRules.AllowRead(Folderid, ""); - //AuthorizationRules.AllowWrite(Folderid, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - } - - 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 - - internal static RoleAssignment New(int gid, int folderid) - { - return new RoleAssignment(Volian.Object.Library.Group.Get(gid), Volian.Object.Library.Folder.Get(folderid)); - } - - internal static RoleAssignment Get(SafeDataReader dr) - { - return new RoleAssignment(dr); - } - - private RoleAssignment() - { - MarkAsChild(); - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - } - - private RoleAssignment(Group group, Folder folder) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - _folderid = folder.Folderid; - _folder_parentid = folder.Parentid; - _folder_dbid = folder.Dbid; - _folder_name = folder.Name; - _folder_title = folder.Title; - _folder_config = folder.Config; - _folder_dts = folder.Dts; - _folder_usrid = folder.Usrid; - _gid = group.Gid; - _group_groupname = group.GroupName; - _group_grouptype = group.GroupType; - _group_config = group.Config; - _group_dts = group.Dts; - _group_usrid = group.Usrid; - } - - private RoleAssignment(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - - #endregion - #region Data Access Portal - - private void Fetch(SafeDataReader dr) - { - try - { - _aid = dr.GetInt32("AID"); - _gid = dr.GetInt32("GID"); - _folderid = dr.GetInt32("FolderID"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - _folder_parentid = dr.GetInt32("Folders_ParentID"); - _folder_dbid = dr.GetInt32("Folders_DBID"); - _folder_name = dr.GetString("Folders_Name"); - _folder_title = dr.GetString("Folders_Title"); - _folder_config = dr.GetString("Folders_Config"); - _folder_dts = dr.GetDateTime("Folders_DTS"); - _folder_usrid = dr.GetString("Folders_UsrID"); - _group_groupname = dr.GetString("Groups_GroupName"); - _group_grouptype = dr.GetInt32("Groups_GroupType"); - _group_config = dr.GetString("Groups_Config"); - _group_dts = dr.GetDateTime("Groups_DTS"); - _group_usrid = dr.GetString("Groups_UsrID"); - } - catch (Exception ex) - { - Database.LogException("RoleAssignment", ex); - } - MarkOld(); - } - - internal void Insert(Role role, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Assignment.Add(cn, ref _aid, _gid, role.Rid, _folderid, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid); - MarkOld(); - } - - internal void Update(Role role, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Assignment.Update(cn, ref _aid, _gid, role.Rid, _folderid, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid, ref _lastchanged); - } - - internal void DeleteSelf(Role role, SqlConnection cn) - { - // 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; - Assignment.Remove(cn, _aid); - MarkNew(); - } - - #endregion - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create RoleAssignmentExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class RoleAssignment - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/RoleAssignments.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/RoleAssignments.cs deleted file mode 100644 index b89502bd..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/RoleAssignments.cs +++ /dev/null @@ -1,145 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// RoleAssignments Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class RoleAssignments : BusinessListBase - { - #region Business Methods - - public RoleAssignment this[int folderid, int gid] - { - get - { - foreach (RoleAssignment assignment in this) - if (assignment.Folderid == folderid && assignment.Gid == gid) - return assignment; - return null; - } - } - public RoleAssignment GetItem(int folderid, int gid) - { - foreach (RoleAssignment assignment in this) - if (assignment.Folderid == folderid && assignment.Gid == gid) - return assignment; - return null; - } - - public void Add(int gid, int folderid) - { - if (!Contains(folderid, gid)) - { - RoleAssignment assignment = - RoleAssignment.New(gid, folderid); - this.Add(assignment); - } - else - throw new InvalidOperationException("assignment already exists"); - } - - public void Remove(int folderid, int gid) - { - foreach (RoleAssignment assignment in this) - { - if (assignment.Folderid == folderid && assignment.Gid == gid) - { - Remove(assignment); - break; - } - } - } - - public bool Contains(int folderid, int gid) - { - foreach (RoleAssignment assignment in this) - if (assignment.Folderid == folderid && assignment.Gid == gid) - return true; - return false; - } - - public bool ContainsDeleted(int folderid, int gid) - { - foreach (RoleAssignment assignment in DeletedList) - if (assignment.Folderid == folderid && assignment.Gid == gid) - return true; - return false; - } - - #endregion - #region Factory Methods - - internal static RoleAssignments New() - { - return new RoleAssignments(); - } - - internal static RoleAssignments Get(SafeDataReader dr) - { - return new RoleAssignments(dr); - } - - private RoleAssignments() - { - MarkAsChild(); - } - - private RoleAssignments(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(RoleAssignment.Get(dr)); - this.RaiseListChangedEvents = true; - } - - internal void Update(Role role,SqlConnection cn) - { - this.RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (RoleAssignment obj in DeletedList) - obj.DeleteSelf(role,cn); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (RoleAssignment obj in this) - { - if (obj.IsNew) - obj.Insert(role,cn); - else - obj.Update(role,cn); - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/RoleInfo.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/RoleInfo.cs deleted file mode 100644 index cf725ff9..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/RoleInfo.cs +++ /dev/null @@ -1,126 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// RoleInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class RoleInfo : ReadOnlyBase - { - #region Business Methods - - - private int _rid; - [System.ComponentModel.DataObjectField(true, true)] - public int Rid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _rid; - } - } - private string _name = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _name; - } - } - private string _title = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Title - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _title; - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - } - // TODO: Replace base RoleInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RoleInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check RoleInfo.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 RoleInfo - protected override object GetIdValue() - { - return _rid; - } - - - #endregion - #region Factory Methods - private RoleInfo() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - - internal RoleInfo(SafeDataReader dr) - { - try - { - _rid = dr.GetInt32("RID"); - _name = dr.GetString("Name"); - _title = dr.GetString("Title"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - } - catch (Exception ex) - { - Database.LogException("RoleInfo", ex); - } - } - - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/RoleInfoList.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/RoleInfoList.cs deleted file mode 100644 index 85901f39..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/RoleInfoList.cs +++ /dev/null @@ -1,78 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// RoleInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class RoleInfoList : ReadOnlyListBase - { - #region Factory Methods - /// - /// Return a list of all projects. - /// - public static RoleInfoList Get() - { - return DataPortal.Fetch(new Criteria()); - } - - - // TODO: Add alternative gets - - //public static RoleInfoList Get() - //{ - // return DataPortal.Fetch(new FilteredCriteria()); - //} - - private RoleInfoList() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - [Serializable()] - private class Criteria - { /* no criteria - retrieve all rows */ } - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - try{ - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRoles"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read())this.Add(new RoleInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch(Exception ex) - { - Database.LogException("RoleInfoList",ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermissinExt.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermissinExt.cs deleted file mode 100644 index c18b4346..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermissinExt.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace Volian.Object.Library -{ - public partial class RolePermission : BusinessBase - { - public bool ReadAccess - { - get { return ((PermValue & 1) == 1); } - set { PermValue = (value ? PermValue | 1 : PermValue ^ (PermValue & 1)); } - } - public bool WriteAccess - { - get { return ((PermValue & 2) == 2); } - set { PermValue = (value ? PermValue | 2 : PermValue ^ (PermValue & 2)); } - } - public bool CreateAccess - { - get { return ((PermValue & 4) == 4); } - set { PermValue = (value ? PermValue | 4 : PermValue ^ (PermValue & 4)); } - } - public bool DeleteAccess - { - get { return ((PermValue & 8) == 8); } - set { PermValue = (value ? PermValue | 8 : PermValue ^ (PermValue & 8)); } - } - public List PermADLookup - { - get { return Permission.PermADLookup; } - } - public List PermLevelLookup - { - get { return Permission.PermLevelLookup; } - } - } -} diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermission.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermission.cs deleted file mode 100644 index a2306570..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermission.cs +++ /dev/null @@ -1,525 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// RolePermission Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class RolePermission : BusinessBase - { - #region Business Methods - - - private int _pid; - [System.ComponentModel.DataObjectField(true, true)] - public int Pid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _pid; - } - } - private int _permlevel; - /// - /// 0 - Security, 1 - System, 2 - RO, 3 - Procdures, 4 - Sections, 5 - Steps, 6 - Comments - /// - [System.ComponentModel.DataObjectField(true, true)] - public int PermLevel - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _permlevel; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_permlevel != value) - { - _permlevel = value; - PropertyHasChanged(); - } - } - } - private int _versiontype; - /// - /// 0 - Working Draft, 1 - Temporary Change, 2 Approved - /// - [System.ComponentModel.DataObjectField(true, true)] - public int VersionType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _versiontype; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_versiontype != value) - { - _versiontype = value; - PropertyHasChanged(); - } - } - } - private int _permvalue; - /// - /// 1 - Read, 2 - Write, 4 - Create, 8 - Delete (15 - All) - /// - [System.ComponentModel.DataObjectField(true, true)] - public int PermValue - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _permvalue; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_permvalue != value) - { - _permvalue = value; - PropertyHasChanged(); - } - } - } - private int _permad; - /// - /// 0 - Allow, 1 - Deny - /// - [System.ComponentModel.DataObjectField(true, true)] - public int Permad - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _permad; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_permad != value) - { - _permad = value; - PropertyHasChanged(); - } - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _startdate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_startdate != tmp.ToShortDateString()) - { - _startdate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _enddate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_enddate != tmp.ToShortDateString()) - { - _enddate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - // TODO: Check RolePermission.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 RolePermission - protected override object GetIdValue() - { - return _pid; - } - // TODO: Replace base RolePermission.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current RolePermission - //public override string ToString() - //{ - // return base.ToString(); - //} - - #endregion - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - // TODO: Add other validation rules - } - private bool StartDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_startdate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private bool EndDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_enddate); - } - catch - { - e.Description = "Invalid Date"; - 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(Pid, ""); - //AuthorizationRules.AllowRead(PermLevel, ""); - //AuthorizationRules.AllowWrite(PermLevel, ""); - //AuthorizationRules.AllowRead(VersionType, ""); - //AuthorizationRules.AllowWrite(VersionType, ""); - //AuthorizationRules.AllowRead(PermValue, ""); - //AuthorizationRules.AllowWrite(PermValue, ""); - //AuthorizationRules.AllowRead(Permad, ""); - //AuthorizationRules.AllowWrite(Permad, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - } - - 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 - - internal static RolePermission New(int permlevel, int versiontype, int permvalue) - { - return new RolePermission(permlevel, versiontype, permvalue); - } - - internal static RolePermission Get(SafeDataReader dr) - { - return new RolePermission(dr); - } - - private RolePermission() - { - MarkAsChild(); - _permad = ext.DefaultPermad; - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - } - - private RolePermission(int permlevel, int versiontype, int permvalue) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _permad = ext.DefaultPermad; - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - _permlevel = permlevel; - _versiontype = versiontype; - _permvalue = permvalue; - } - - private RolePermission(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - - #endregion - #region Data Access Portal - - private void Fetch(SafeDataReader dr) - { - try - { - _pid = dr.GetInt32("PID"); - _permlevel = dr.GetInt32("PermLevel"); - _versiontype = dr.GetInt32("VersionType"); - _permvalue = dr.GetInt32("PermValue"); - _permad = dr.GetInt32("PermAD"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - } - catch (Exception ex) - { - Database.LogException("RolePermission", ex); - } - MarkOld(); - } - - internal void Insert(Role role, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Permission.Add(cn, ref _pid, role.Rid, _permlevel, _versiontype, _permvalue, _permad, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid); - MarkOld(); - } - - internal void Update(Role role, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Permission.Update(cn, ref _pid, role.Rid, _permlevel, _versiontype, _permvalue, _permad, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid, ref _lastchanged); - } - - internal void DeleteSelf(Role role, SqlConnection cn) - { - // 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; - Permission.Remove(cn, _pid); - MarkNew(); - } - - #endregion - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual int DefaultPermad - { - get { return 0; } - } - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create RolePermissionExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class RolePermission - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual int DefaultPermad - // { - // get { return 0; } - // } - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermissionExt.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermissionExt.cs deleted file mode 100644 index 60805696..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermissionExt.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace Volian.Object.Library -{ - public partial class RolePermission : BusinessBase - { - public static RolePermission New() - { - return new RolePermission(1, 1, 1); - } - public bool ReadAccess - { - get { return ((PermValue & 1) == 1); } - set { PermValue = (value ? PermValue | 1 : PermValue ^ (PermValue & 1)); } - } - public bool WriteAccess - { - get { return ((PermValue & 2) == 2); } - set { PermValue = (value ? PermValue | 2 : PermValue ^ (PermValue & 2)); } - } - public bool CreateAccess - { - get { return ((PermValue & 4) == 4); } - set { PermValue = (value ? PermValue | 4 : PermValue ^ (PermValue & 4)); } - } - public bool DeleteAccess - { - get { return ((PermValue & 8) == 8); } - set { PermValue = (value ? PermValue | 8 : PermValue ^ (PermValue & 8)); } - } - public List PermADLookup - { - get { return Permission.PermADLookup; } - } - public List PermLevelLookup - { - get { return Permission.PermLevelLookup; } - } - } - public class PermLookup - { - public List PermADLookup - { - get { return Permission.PermADLookup; } - } - public List PermLevelLookup - { - get { return Permission.PermLevelLookup; } - } - } -} diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermissions.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermissions.cs deleted file mode 100644 index 7fb3c2a3..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/RolePermissions.cs +++ /dev/null @@ -1,85 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// RolePermissions Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class RolePermissions : BusinessListBase - { -// No Columns to retrieve - #region Factory Methods - - internal static RolePermissions New() - { - return new RolePermissions(); - } - - internal static RolePermissions Get(SafeDataReader dr) - { - return new RolePermissions(dr); - } - - private RolePermissions() - { - MarkAsChild(); - } - - private RolePermissions(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(RolePermission.Get(dr)); - this.RaiseListChangedEvents = true; - } - - internal void Update(Role role,SqlConnection cn) - { - this.RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (RolePermission obj in DeletedList) - obj.DeleteSelf(role,cn); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (RolePermission obj in this) - { - if (obj.IsNew) - obj.Insert(role,cn); - else - obj.Update(role,cn); - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/User.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/User.cs deleted file mode 100644 index 03b0e1a9..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/User.cs +++ /dev/null @@ -1,944 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// User Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class User : BusinessBase - { - #region Business Methods - - private int _uid; - [System.ComponentModel.DataObjectField(true, true)] - public int Uid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _uid; - } - } - private string _userid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Userid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _userid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_userid != value) - { - _userid = value; - PropertyHasChanged(); - } - } - } - private string _firstname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string FirstName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _firstname; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_firstname != value) - { - _firstname = value; - PropertyHasChanged(); - } - } - } - private string _middlename = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string MiddleName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _middlename; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_middlename != value) - { - _middlename = value; - PropertyHasChanged(); - } - } - } - private string _lastname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string LastName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _lastname; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_lastname != value) - { - _lastname = value; - PropertyHasChanged(); - } - } - } - private string _suffix = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Suffix - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _suffix; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_suffix != value) - { - _suffix = value; - PropertyHasChanged(); - } - } - } - private string _courtesytitle = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string CourtesyTitle - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _courtesytitle; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_courtesytitle != value) - { - _courtesytitle = value; - PropertyHasChanged(); - } - } - } - private string _phonenumber = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string PhoneNumber - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _phonenumber; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_phonenumber != value) - { - _phonenumber = value; - PropertyHasChanged(); - } - } - } - private string _cfgname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string CfgName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _cfgname; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_cfgname != value) - { - _cfgname = value; - PropertyHasChanged(); - } - } - } - private string _userlogin = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string UserLogin - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _userlogin; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_userlogin != value) - { - _userlogin = value; - PropertyHasChanged(); - } - } - } - private string _username = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string UserName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _username; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_username != value) - { - _username = value; - PropertyHasChanged(); - } - } - } - private string _config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _config; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_config != value) - { - _config = value; - PropertyHasChanged(); - } - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - private UserMemberships _usermemberships = UserMemberships.New(); - /// - /// Related Field - /// - [System.ComponentModel.DataObjectField(true, true)] - public UserMemberships UserMemberships - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usermemberships; - } - } - public override bool IsDirty - { - get { return base.IsDirty || _usermemberships.IsDirty; } - } - public override bool IsValid - { - get { return base.IsValid && _usermemberships.IsValid; } - } - // TODO: Replace base User.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current User - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check User.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 User - protected override object GetIdValue() - { - return _uid; - } - - #endregion - - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Userid", 100)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("FirstName", 50)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("MiddleName", 50)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("LastName", 50)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Suffix", 10)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("CourtesyTitle", 10)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("PhoneNumber", 30)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("CfgName", 8)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserLogin", 10)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("UserName", 32)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Config", 1073741823)); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - ext.AddValidationRules(ValidationRules); - // TODO: Add other validation rules - // ValidationRules.AddRule(StartDateGTEndDate, "Started"); - } - // 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(Uid, ""); - //AuthorizationRules.AllowRead(Userid, ""); - //AuthorizationRules.AllowRead(FirstName, ""); - //AuthorizationRules.AllowRead(MiddleName, ""); - //AuthorizationRules.AllowRead(LastName, ""); - //AuthorizationRules.AllowRead(Suffix, ""); - //AuthorizationRules.AllowRead(CourtesyTitle, ""); - //AuthorizationRules.AllowRead(PhoneNumber, ""); - //AuthorizationRules.AllowRead(CfgName, ""); - //AuthorizationRules.AllowRead(UserLogin, ""); - //AuthorizationRules.AllowRead(UserName, ""); - //AuthorizationRules.AllowRead(Config, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Userid, ""); - //AuthorizationRules.AllowWrite(FirstName, ""); - //AuthorizationRules.AllowWrite(MiddleName, ""); - //AuthorizationRules.AllowWrite(LastName, ""); - //AuthorizationRules.AllowWrite(Suffix, ""); - //AuthorizationRules.AllowWrite(CourtesyTitle, ""); - //AuthorizationRules.AllowWrite(PhoneNumber, ""); - //AuthorizationRules.AllowWrite(CfgName, ""); - //AuthorizationRules.AllowWrite(UserLogin, ""); - //AuthorizationRules.AllowWrite(UserName, ""); - //AuthorizationRules.AllowWrite(Config, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - ext.AddAuthorizationRules(AuthorizationRules); - } - - public static bool CanAddObject() - { - // TODO: Can Add Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - - public static bool CanGetObject() - { - // TODO: CanGet Authorization - return true; - } - - public static bool CanDeleteObject() - { - // TODO: CanDelete Authorization - //bool result = false; - //if (Csla.ApplicationContext.User.IsInRole("ProjectManager"))result = true; - //if (Csla.ApplicationContext.User.IsInRole("Administrator"))result = true; - //return result; - return true; - } - - public static bool CanEditObject() - { - // TODO: CanEdit Authorization - //return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - return true; - } - #endregion - #region Factory Methods - - private User() - {/* require use of factory methods */} - - public static User New() - { - if (!CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a User"); - return DataPortal.Create(); - } - - public static User Get(int _uid) - { - if (!CanGetObject()) - throw new System.Security.SecurityException("User not authorized to view a User"); - return DataPortal.Fetch(new PKCriteria(_uid)); - } - - public static void Delete(int _uid) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a User"); - DataPortal.Delete(new PKCriteria(_uid)); - } - - public override User Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException("User not authorized to remove a User"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException("User not authorized to add a User"); - else if (!CanEditObject()) - throw new System.Security.SecurityException("User not authorized to update a User"); - return base.Save(); - } - - #endregion - - #region Data Access Portal - - [Serializable()] - private class PKCriteria - { - private int _uid; - public int Uid - { get { return _uid; } } - public PKCriteria(int uid) - { - _uid = uid; - } - } - // If Create needs to access DB - It should not be marked RunLocal - [RunLocal()] - private new void DataPortal_Create(object criteria) - { - - // Database Defaults - _userid = ext.DefaultUserid; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - // TODO: Add any defaults that are necessary - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getUser"; - cm.Parameters.AddWithValue("@uID", criteria.Uid); - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _uid = dr.GetInt32("UID"); - _userid = dr.GetString("UserID"); - _firstname = dr.GetString("FirstName"); - _middlename = dr.GetString("MiddleName"); - _lastname = dr.GetString("LastName"); - _suffix = dr.GetString("Suffix"); - _courtesytitle = dr.GetString("CourtesyTitle"); - _phonenumber = dr.GetString("PhoneNumber"); - _cfgname = dr.GetString("CFGName"); - _userlogin = dr.GetString("UserLogin"); - _username = dr.GetString("UserName"); - _config = dr.GetString("Config"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - // load child objects - dr.NextResult(); - _usermemberships = UserMemberships.Get(dr); - - } - } - } - } - catch (Exception ex) - { - Database.LogException("User", ex); - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addUser"; - // Input All Fields - Except Calculated Columns - cm.Parameters.AddWithValue("@userID", _userid); - cm.Parameters.AddWithValue("@firstName", _firstname); - cm.Parameters.AddWithValue("@middleName", _middlename); - cm.Parameters.AddWithValue("@lastName", _lastname); - cm.Parameters.AddWithValue("@suffix", _suffix); - cm.Parameters.AddWithValue("@courtesyTitle", _courtesytitle); - cm.Parameters.AddWithValue("@phoneNumber", _phonenumber); - cm.Parameters.AddWithValue("@cFGName", _cfgname); - cm.Parameters.AddWithValue("@userLogin", _userlogin); - cm.Parameters.AddWithValue("@userName", _username); - cm.Parameters.AddWithValue("@config", _config); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - // Output Calculated Columns - SqlParameter param_uid = new SqlParameter("@newUID", SqlDbType.Int); - param_uid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_uid); - 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 - _uid = (int)cm.Parameters["@newUID"].Value; - _lastchanged = (byte[])cm.Parameters["@newLastChanged"].Value; - } - // update child objects - _usermemberships.Update(this, cn); - - } - - } - catch (Exception ex) - { - Database.LogException("User", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Add(SqlConnection cn, ref int uid, string userid, string firstname, string middlename, string lastname, string suffix, string courtesytitle, string phonenumber, string cfgname, string userlogin, string username, string config, DateTime dts, string usrid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addUser"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@userID", userid); - cm.Parameters.AddWithValue("@firstName", firstname); - cm.Parameters.AddWithValue("@middleName", middlename); - cm.Parameters.AddWithValue("@lastName", lastname); - cm.Parameters.AddWithValue("@suffix", suffix); - cm.Parameters.AddWithValue("@courtesyTitle", courtesytitle); - cm.Parameters.AddWithValue("@phoneNumber", phonenumber); - cm.Parameters.AddWithValue("@cFGName", cfgname); - cm.Parameters.AddWithValue("@userLogin", userlogin); - cm.Parameters.AddWithValue("@userName", username); - cm.Parameters.AddWithValue("@config", config); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - // Output Calculated Columns - SqlParameter param_uid = new SqlParameter("@newUID", SqlDbType.Int); - param_uid.Direction = ParameterDirection.Output; - cm.Parameters.Add(param_uid); - 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 - uid = (int)cm.Parameters["@newUID"].Value; - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - catch (Exception ex) - { - Database.LogException("User", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (IsDirty)// If this is dirty - open the connection - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateUser"; - // All Fields including Calculated Fields - cm.Parameters.AddWithValue("@uID", _uid); - cm.Parameters.AddWithValue("@userID", _userid); - cm.Parameters.AddWithValue("@firstName", _firstname); - cm.Parameters.AddWithValue("@middleName", _middlename); - cm.Parameters.AddWithValue("@lastName", _lastname); - cm.Parameters.AddWithValue("@suffix", _suffix); - cm.Parameters.AddWithValue("@courtesyTitle", _courtesytitle); - cm.Parameters.AddWithValue("@phoneNumber", _phonenumber); - cm.Parameters.AddWithValue("@cFGName", _cfgname); - cm.Parameters.AddWithValue("@userLogin", _userlogin); - cm.Parameters.AddWithValue("@userName", _username); - cm.Parameters.AddWithValue("@config", _config); - cm.Parameters.AddWithValue("@dTS", _dts); - cm.Parameters.AddWithValue("@usrID", _usrid); - 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; - } - } - // use the open connection to update child objects - _usermemberships.Update(this, cn); - } - } - catch (Exception ex) - { - Database.LogException("User", ex); - } - - } - } - - - [Transactional(TransactionalTypes.TransactionScope)] - public static byte[] Update(SqlConnection cn, ref int uid, string userid, string firstname, string middlename, string lastname, string suffix, string courtesytitle, string phonenumber, string cfgname, string userlogin, string username, string config, DateTime dts, string usrid, ref byte[] lastchanged) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateUser"; - // Input All Fields - Except Calculated Columns - - cm.Parameters.AddWithValue("@uID", uid); - cm.Parameters.AddWithValue("@userID", userid); - cm.Parameters.AddWithValue("@firstName", firstname); - cm.Parameters.AddWithValue("@middleName", middlename); - cm.Parameters.AddWithValue("@lastName", lastname); - cm.Parameters.AddWithValue("@suffix", suffix); - cm.Parameters.AddWithValue("@courtesyTitle", courtesytitle); - cm.Parameters.AddWithValue("@phoneNumber", phonenumber); - cm.Parameters.AddWithValue("@cFGName", cfgname); - cm.Parameters.AddWithValue("@userLogin", userlogin); - cm.Parameters.AddWithValue("@userName", username); - cm.Parameters.AddWithValue("@config", config); - cm.Parameters.AddWithValue("@dTS", dts); - cm.Parameters.AddWithValue("@usrID", usrid); - 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) - { - Database.LogException("User", ex); - return null; - } - } - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new PKCriteria(_uid)); - } - - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(PKCriteria criteria) - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteUser"; - cm.Parameters.AddWithValue("@uID", criteria.Uid); - cm.ExecuteNonQuery(); - } - } - } - catch (Exception ex) - { - Database.LogException("User", ex); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - public static void Remove(SqlConnection cn, int uid) - { - try - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteUser"; - // Input PK Fields - - cm.Parameters.AddWithValue("@uID", uid); - // TODO: Define any additional output parameters - cm.ExecuteNonQuery(); - } - } - catch (Exception ex) - { - Database.LogException("User", ex); - } - } - - #endregion - - #region Exists - - - public static bool Exists(int uid) - { - ExistsCommand result; - result = DataPortal.Execute - (new ExistsCommand(uid)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - - private int _uid; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(int uid) - { - _uid = uid; - } - - protected override void DataPortal_Execute() - { - try - { - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsUser"; - - cm.Parameters.AddWithValue("@uID", _uid); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - catch (Exception ex) - { - Database.LogException("User", ex); - } - } - } - - #endregion - - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultUserid - { - get { return Environment.UserName.ToUpper(); } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create UserExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class User - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual string DefaultUserid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/UserExt.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/UserExt.cs deleted file mode 100644 index d809ef36..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/UserExt.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace Volian.Object.Library -{ - public partial class User : BusinessBase - { - public string FullName - { - get { return LastName + ", " + FirstName; } - } - } -} diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/UserInfo.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/UserInfo.cs deleted file mode 100644 index a3493665..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/UserInfo.cs +++ /dev/null @@ -1,225 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// UserInfo Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class UserInfo : ReadOnlyBase - { - #region Business Methods - - - private int _uid; - [System.ComponentModel.DataObjectField(true, true)] - public int Uid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _uid; - } - } - private string _userid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Userid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _userid; - } - } - private string _firstname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string FirstName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _firstname; - } - } - private string _middlename = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string MiddleName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _middlename; - } - } - private string _lastname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string LastName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _lastname; - } - } - private string _suffix = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Suffix - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _suffix; - } - } - private string _courtesytitle = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string CourtesyTitle - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _courtesytitle; - } - } - private string _phonenumber = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string PhoneNumber - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _phonenumber; - } - } - private string _cfgname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string CfgName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _cfgname; - } - } - private string _userlogin = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string UserLogin - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _userlogin; - } - } - private string _username = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string UserName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _username; - } - } - private string _config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _config; - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - } - // TODO: Replace base UserInfo.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current UserInfo - //public override string ToString() - //{ - // return base.ToString(); - //} - - // TODO: Check UserInfo.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 UserInfo - protected override object GetIdValue() - { - return _uid; - } - - - #endregion - #region Factory Methods - private UserInfo() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - - internal UserInfo(SafeDataReader dr) - { - try - { - _uid = dr.GetInt32("UID"); - _userid = dr.GetString("UserID"); - _firstname = dr.GetString("FirstName"); - _middlename = dr.GetString("MiddleName"); - _lastname = dr.GetString("LastName"); - _suffix = dr.GetString("Suffix"); - _courtesytitle = dr.GetString("CourtesyTitle"); - _phonenumber = dr.GetString("PhoneNumber"); - _cfgname = dr.GetString("CFGName"); - _userlogin = dr.GetString("UserLogin"); - _username = dr.GetString("UserName"); - _config = dr.GetString("Config"); - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - } - catch (Exception ex) - { - Database.LogException("UserInfo", ex); - } - } - - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/UserInfoList.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/UserInfoList.cs deleted file mode 100644 index ab451dee..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/UserInfoList.cs +++ /dev/null @@ -1,78 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// UserInfoList Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class UserInfoList : ReadOnlyListBase - { - #region Factory Methods - /// - /// Return a list of all projects. - /// - public static UserInfoList Get() - { - return DataPortal.Fetch(new Criteria()); - } - - - // TODO: Add alternative gets - - //public static UserInfoList Get() - //{ - // return DataPortal.Fetch(new FilteredCriteria()); - //} - - private UserInfoList() - { /* require use of factory methods */ } - - #endregion - #region Data Access Portal - [Serializable()] - private class Criteria - { /* no criteria - retrieve all rows */ } - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - try{ - using (SqlConnection cn = Database.VEPROMS_SqlConnection) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getUsers"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read())this.Add(new UserInfo(dr)); - IsReadOnly = true; - } - } - } - } - catch(Exception ex) - { - Database.LogException("UserInfoList",ex); - } - this.RaiseListChangedEvents = true; - } - #endregion - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/UserInfoListExt.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/UserInfoListExt.cs deleted file mode 100644 index 9431a685..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/UserInfoListExt.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; -namespace Volian.Object.Library -{ - /// - /// Extensions - /// - public partial class UserInfo : ReadOnlyBase - { - public string FullName - { - get { return LastName + ", " + FirstName; } - } - } -} diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/UserMembership.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/UserMembership.cs deleted file mode 100644 index 89cd4296..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/UserMembership.cs +++ /dev/null @@ -1,497 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// UserMembership Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class UserMembership : BusinessBase - { - #region Business Methods - - - private int _ugid; - [System.ComponentModel.DataObjectField(true, true)] - public int Ugid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _ugid; - } - } - private int _gid; - [System.ComponentModel.DataObjectField(true, true)] - public int Gid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _gid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_gid != value) - { - _gid = value; - PropertyHasChanged(); - } - } - } - private string _startdate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string StartDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _startdate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _startdate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_startdate != tmp.ToShortDateString()) - { - _startdate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private string _enddate = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string EndDate - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _enddate; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - _enddate = value; - try - { - DateTime tmp = SmartDate.StringToDate(value); - if (_enddate != tmp.ToShortDateString()) - { - _enddate = tmp.ToShortDateString(); - // TODO: Any Cross Property Validation - } - } - catch - { - } - PropertyHasChanged(); - } - } - private DateTime _dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _dts; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (_dts != value) - { - _dts = value; - PropertyHasChanged(); - } - } - } - private string _usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _usrid; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - if (value == null) value = string.Empty; - if (_usrid != value) - { - _usrid = value; - PropertyHasChanged(); - } - } - } - private byte[] _lastchanged = new byte[8];//timestamp - private string _group_groupname = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Group_GroupName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_groupname; - } - } - private int _group_grouptype; - [System.ComponentModel.DataObjectField(true, true)] - public int Group_GroupType - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_grouptype; - } - } - private string _group_config = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Group_Config - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_config; - } - } - private DateTime _group_dts = new DateTime(); - [System.ComponentModel.DataObjectField(true, true)] - public DateTime Group_Dts - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_dts; - } - } - private string _group_usrid = string.Empty; - [System.ComponentModel.DataObjectField(true, true)] - public string Group_Usrid - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - return _group_usrid; - } - } - // TODO: Check UserMembership.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 UserMembership - protected override object GetIdValue() - { - return _ugid; - } - // TODO: Replace base UserMembership.ToString function as necessary - /// - /// Overrides Base ToString - /// - /// A string representation of current UserMembership - //public override string ToString() - //{ - // return base.ToString(); - //} - - #endregion - #region ValidationRules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule(StartDateValid, "StartDate"); - ValidationRules.AddRule(EndDateValid, "EndDate"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Usrid", 100)); - // TODO: Add other validation rules - } - - private bool StartDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_startdate); - } - catch - { - e.Description = "Invalid Date"; - return false; - } - return true; - } - private bool EndDateValid(object target, Csla.Validation.RuleArgs e) - { - try - { - DateTime tmp = SmartDate.StringToDate(_enddate); - } - catch - { - e.Description = "Invalid Date"; - 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(Ugid, ""); - //AuthorizationRules.AllowRead(Gid, ""); - //AuthorizationRules.AllowWrite(Gid, ""); - //AuthorizationRules.AllowRead(StartDate, ""); - //AuthorizationRules.AllowWrite(StartDate, ""); - //AuthorizationRules.AllowRead(EndDate, ""); - //AuthorizationRules.AllowWrite(EndDate, ""); - //AuthorizationRules.AllowRead(Dts, ""); - //AuthorizationRules.AllowWrite(Dts, ""); - //AuthorizationRules.AllowRead(Usrid, ""); - //AuthorizationRules.AllowWrite(Usrid, ""); - } - - 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 - - internal static UserMembership New(int gid) - { - return new UserMembership(Volian.Object.Library.Group.Get(gid)); - } - - internal static UserMembership Get(SafeDataReader dr) - { - return new UserMembership(dr); - } - - private UserMembership() - { - MarkAsChild(); - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - } - - private UserMembership(Group group) - { - MarkAsChild(); - // TODO: Add any initialization & defaults - _startdate = ext.DefaultStartDate; - _dts = ext.DefaultDts; - _usrid = ext.DefaultUsrid; - _gid = group.Gid; - _group_groupname = group.GroupName; - _group_grouptype = group.GroupType; - _group_config = group.Config; - _group_dts = group.Dts; - _group_usrid = group.Usrid; - } - - private UserMembership(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - - #endregion - #region Data Access Portal - - private void Fetch(SafeDataReader dr) - { - try - { - _ugid = dr.GetInt32("UGID"); - _gid = dr.GetInt32("GID"); - _startdate = dr.GetSmartDate("StartDate").Text; - _enddate = dr.GetSmartDate("EndDate").Text; - _dts = dr.GetDateTime("DTS"); - _usrid = dr.GetString("UsrID"); - dr.GetBytes("LastChanged", 0, _lastchanged, 0, 8); - _group_groupname = dr.GetString("Groups_GroupName"); - _group_grouptype = dr.GetInt32("Groups_GroupType"); - _group_config = dr.GetString("Groups_Config"); - _group_dts = dr.GetDateTime("Groups_DTS"); - _group_usrid = dr.GetString("Groups_UsrID"); - } - catch (Exception ex) - { - Database.LogException("UserMembership", ex); - } - MarkOld(); - } - - internal void Insert(User user, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Membership.Add(cn, ref _ugid, user.Uid, _gid, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid); - MarkOld(); - } - - internal void Update(User user, SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - _lastchanged = Membership.Update(cn, ref _ugid, user.Uid, _gid, new SmartDate(_startdate), new SmartDate(_enddate), _dts, _usrid, ref _lastchanged); - MarkClean(); - } - - internal void DeleteSelf(User user, SqlConnection cn) - { - // 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; - Membership.Remove(cn, _ugid); - MarkNew(); - } - - #endregion - // Standard Default Code - // #region extension - Extension ext = new Extension(); - [Serializable()] - partial class Extension : extensionBase - { - } - [Serializable()] - class extensionBase - { - // Default Values - public virtual string DefaultStartDate - { - get { return DateTime.Now.ToShortDateString(); } - } - public virtual DateTime DefaultDts - { - get { return DateTime.Now; } - } - public virtual string DefaultUsrid - { - get { return Environment.UserName.ToUpper(); } - } - // Authorization Rules - public virtual void AddAuthorizationRules(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 - } - } - //#endregion - - // The follwing is a sample Extension File. You can use it to create UserMembershipExt.cs - //using System; - //using System.Collections.Generic; - //using System.Text; - //using Csla; - - //namespace PatrialClass - //{ - // public partial class UserMembership - // { - // partial class Extension : extensionBase - // { - // TODO: Override automatic defaults - // public virtual SmartDate DefaultStartDate - // { - // get { return DateTime.Now.ToShortDateString(); } - // } - // public virtual DateTime DefaultDts - // { - // get { return DateTime.Now; } - // } - // public virtual string DefaultUsrid - // { - // get { return Environment.UserName.ToUpper(); } - // } - // public new void AddAuthorizationRules(Csla.Security.AuthorizationRules rules) - // { - // //rules.AllowRead(Dbid, ""); - // } - // public new void AddValidationRules(Csla.Validation.ValidationRules rules) - // { - // rules.AddRule( - // Csla.Validation.CommonRules.StringMaxLength, - // new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 100)); - // } - // } - // } - //} - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/UserMemberships.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/UserMemberships.cs deleted file mode 100644 index edd9be8a..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/UserMemberships.cs +++ /dev/null @@ -1,145 +0,0 @@ - -// ======================================================================== -// Copyright 2006 - 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; - -namespace Volian.Object.Library -{ - /// - /// UserMemberships Generated by MyGeneration using the CSLA Object Mapping template - /// - [Serializable()] - public partial class UserMemberships : BusinessListBase - { - #region Business Methods - - public new UserMembership this[int gid] - { - get - { - foreach (UserMembership membership in this) - if (membership.Gid == gid) - return membership; - return null; - } - } - public UserMembership GetItem(int gid) - { - foreach (UserMembership membership in this) - if (membership.Gid == gid) - return membership; - return null; - } - - public void Add(int gid) - { - if (!Contains(gid)) - { - UserMembership membership = - UserMembership.New(gid); - this.Add(membership); - } - else - throw new InvalidOperationException("membership already exists"); - } - - public void Remove(int gid) - { - foreach (UserMembership membership in this) - { - if (membership.Gid == gid) - { - Remove(membership); - break; - } - } - } - - public bool Contains(int gid) - { - foreach (UserMembership membership in this) - if (membership.Gid == gid) - return true; - return false; - } - - public bool ContainsDeleted(int gid) - { - foreach (UserMembership membership in DeletedList) - if (membership.Gid == gid) - return true; - return false; - } - - #endregion - #region Factory Methods - - internal static UserMemberships New() - { - return new UserMemberships(); - } - - internal static UserMemberships Get(SafeDataReader dr) - { - return new UserMemberships(dr); - } - - private UserMemberships() - { - MarkAsChild(); - } - - private UserMemberships(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(UserMembership.Get(dr)); - this.RaiseListChangedEvents = true; - } - - internal void Update(User user,SqlConnection cn) - { - this.RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (UserMembership obj in DeletedList) - obj.DeleteSelf(user,cn); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (UserMembership obj in this) - { - if (obj.IsNew) - obj.Insert(user,cn); - else - obj.Update(user,cn); - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } // Class -} // Namespace diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/Volian.Object.Library.csproj b/PROMS/VEPROMS_Security/Volian.Object.Library/Volian.Object.Library.csproj deleted file mode 100644 index c6148946..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/Volian.Object.Library.csproj +++ /dev/null @@ -1,102 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {592B86E9-D488-452B-B89B-2BB037793FE3} - Library - Properties - Volian.Object.Library - Volian.Object.Library - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\..\csla20cs\csla20cs\Csla\bin\Debug\Csla.dll - - - False - ..\..\..\Log4Net\log4net-1.2.10\bin\net\2.0\release\log4net.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/Volian.Object.Library/vlnValueKey.cs b/PROMS/VEPROMS_Security/Volian.Object.Library/vlnValueKey.cs deleted file mode 100644 index d576b1db..00000000 --- a/PROMS/VEPROMS_Security/Volian.Object.Library/vlnValueKey.cs +++ /dev/null @@ -1,30 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Volian.Object.Library -{ - public class vlnValueKey - { - public vlnValueKey() { ;} - public vlnValueKey(int key, string value) - { - _key = key; - _value = value; - } - private int _key; - public int Key - { - get { return _key; } - } - private string _value; - public string Value - { - get { return _value; } - } - public override string ToString() - { - return _value; - } - } -} diff --git a/PROMS/VEPROMS_Security/WinApp/App.config b/PROMS/VEPROMS_Security/WinApp/App.config deleted file mode 100644 index e7be1308..00000000 --- a/PROMS/VEPROMS_Security/WinApp/App.config +++ /dev/null @@ -1,138 +0,0 @@ - - - -
    - -
    -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - - - 1 - - - 2 - - - 192, 255, 255 - - - True - - - False - - - Normal - - - True - - - False - - - False - - - True - - - - - False - - - 1 - - - - diff --git a/PROMS/VEPROMS_Security/WinApp/App.config test b/PROMS/VEPROMS_Security/WinApp/App.config test deleted file mode 100644 index b8bd5b03..00000000 --- a/PROMS/VEPROMS_Security/WinApp/App.config test +++ /dev/null @@ -1,71 +0,0 @@ - - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/VEPROMS_Security/WinApp/FolderTreeNode.cs b/PROMS/VEPROMS_Security/WinApp/FolderTreeNode.cs deleted file mode 100644 index a319348f..00000000 --- a/PROMS/VEPROMS_Security/WinApp/FolderTreeNode.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using VEPROMS.CSLA.Library; -using Csla; -using System.Windows.Forms; - -namespace WinApp -{ - public class FolderTreeNode : TreeNode - { - FolderTreeNode(string s) : base(s) - { - this.Name="ID:" + s; - } - FolderTreeNode(FolderInfo folderinfo) - : base(folderinfo.Name) - { - _folderinfo = folderinfo; - this.Name = "ID:" + folderinfo.FolderID.ToString(); - } - private FolderInfo _folderinfo; - public FolderInfo FolderInfo - { - get { return _folderinfo; } - set - { - _folderinfo = value; - } - } - private Dictionary _findTree = null; - private Dictionary FindTree - { - get { return _findTree; } - set { _findTree = value; } - } - public FolderTreeNode FindTreeNode(int folderID) - { - if (_findTree != null) return _findTree[folderID]; - return null; - } - public static FolderTreeNode BuildTreeList() - { - FolderTreeNode root = null; - FolderInfoList fil = FolderInfoList.Get(); - Dictionary dicMissing = new Dictionary(); - Dictionary dicExists = new Dictionary(); - foreach (FolderInfo fi in fil) - { - FolderTreeNode ftp = null; - if (dicExists.ContainsKey(fi.ParentID)) - { - ftp = dicExists[fi.ParentID]; - } - else - { - if (fi.ParentID != 0) - { - ftp = new FolderTreeNode(fi.ParentID.ToString()); - dicMissing.Add(fi.ParentID, ftp); - dicExists.Add(fi.ParentID, ftp); - } - } - FolderTreeNode ft = null; - if (dicMissing.ContainsKey(fi.FolderID)) - { - ft = dicMissing[fi.FolderID]; - ft.FolderInfo = fi; - dicMissing.Remove(fi.FolderID); - } - else - { - ft = new FolderTreeNode(fi); - dicExists.Add(fi.FolderID, ft); - } - if (fi.ParentID == 0) - root = ft; - else - ftp.Nodes.Add(ft); - } - root.FindTree = dicExists; - return root; - } - } -} - diff --git a/PROMS/VEPROMS_Security/WinApp/Program.cs b/PROMS/VEPROMS_Security/WinApp/Program.cs deleted file mode 100644 index b3ceda78..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace WinApp -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmUser()); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/AssemblyInfo.cs b/PROMS/VEPROMS_Security/WinApp/Properties/AssemblyInfo.cs deleted file mode 100644 index 808eaa0e..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("WinApp")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Volian Enterprises, Inc.")] -[assembly: AssemblyProduct("WinApp")] -[assembly: AssemblyCopyright("Copyright © Volian Enterprises, Inc. 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("e47b4096-8f91-4c73-9f15-2130d983fd08")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.Group.datasource b/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.Group.datasource deleted file mode 100644 index 513ba47e..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.Group.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - Volian.Object.Library.Group, Volian.Object.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.GroupAssignments.datasource b/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.GroupAssignments.datasource deleted file mode 100644 index cbd248bf..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.GroupAssignments.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - Volian.Object.Library.GroupAssignments, Volian.Object.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.GroupInfoList.datasource b/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.GroupInfoList.datasource deleted file mode 100644 index e285a500..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.GroupInfoList.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - Volian.Object.Library.GroupInfoList, Volian.Object.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.Membership.datasource b/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.Membership.datasource deleted file mode 100644 index 3e6d68f5..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.Membership.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - Volian.Object.Library.Membership, Volian.Object.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.MembershipInfoList.datasource b/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.MembershipInfoList.datasource deleted file mode 100644 index 8e6f6193..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.MembershipInfoList.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - Volian.Object.Library.MembershipInfoList, Volian.Object.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.PermLookup.datasource b/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.PermLookup.datasource deleted file mode 100644 index ded496b4..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.PermLookup.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - Volian.Object.Library.PermLookup, Volian.Object.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.Role.datasource b/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.Role.datasource deleted file mode 100644 index 3bba001c..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.Role.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - Volian.Object.Library.Role, Volian.Object.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.RoleInfoList.datasource b/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.RoleInfoList.datasource deleted file mode 100644 index fc7c94e0..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.RoleInfoList.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - Volian.Object.Library.RoleInfoList, Volian.Object.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.User.datasource b/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.User.datasource deleted file mode 100644 index f58b89de..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.User.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - Volian.Object.Library.User, Volian.Object.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.UserInfoList.datasource b/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.UserInfoList.datasource deleted file mode 100644 index 169007de..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/DataSources/Volian.Object.Library.UserInfoList.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - Volian.Object.Library.UserInfoList, Volian.Object.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/Resources.Designer.cs b/PROMS/VEPROMS_Security/WinApp/Properties/Resources.Designer.cs deleted file mode 100644 index eade7d04..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WinApp.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("WinApp.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/Resources.resx b/PROMS/VEPROMS_Security/WinApp/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/Settings.Designer.cs b/PROMS/VEPROMS_Security/WinApp/Properties/Settings.Designer.cs deleted file mode 100644 index 2096e4b7..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace WinApp.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/VEPROMS_Security/WinApp/Properties/Settings.settings b/PROMS/VEPROMS_Security/WinApp/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/VEPROMS_Security/WinApp/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/VEPROMS_Security/WinApp/WinApp.csproj b/PROMS/VEPROMS_Security/WinApp/WinApp.csproj deleted file mode 100644 index 9df6e979..00000000 --- a/PROMS/VEPROMS_Security/WinApp/WinApp.csproj +++ /dev/null @@ -1,164 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {9912ADA4-5934-4C1D-AF2E-CA8031EBA338} - WinExe - Properties - WinApp - WinApp - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\VEPROMS.CSLA.Library\bin\Debug\Csla.dll - - - False - ..\..\..\Log4Net\log4net-1.2.10\bin\net\2.0\release\log4net.dll - - - - - - - - - - - - Form - - - frmAssignmentSelect.cs - - - Form - - - frmGroups.cs - - - Form - - - frmGroupSelect.cs - - - Form - - - frmMembership.cs - - - Form - - - frmRoles.cs - - - Form - - - frmUser.cs - - - Form - - - frmUserSelect.cs - - - - - Designer - frmAssignmentSelect.cs - - - Designer - frmGroups.cs - - - Designer - frmGroupSelect.cs - - - Designer - frmMembership.cs - - - Designer - frmRoles.cs - - - Designer - frmUser.cs - - - Designer - frmUserSelect.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - - - - - - - - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmAssignmentSelect.Designer.cs b/PROMS/VEPROMS_Security/WinApp/frmAssignmentSelect.Designer.cs deleted file mode 100644 index 9cb52355..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmAssignmentSelect.Designer.cs +++ /dev/null @@ -1,172 +0,0 @@ -namespace WinApp -{ - partial class frmAssignmentSelect - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.roleInfoListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnRoles = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.tvFolder = new System.Windows.Forms.TreeView(); - this.panel2 = new System.Windows.Forms.Panel(); - this.cmbRoles = new System.Windows.Forms.ComboBox(); - this.label1 = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.roleInfoListBindingSource)).BeginInit(); - this.panel1.SuspendLayout(); - this.panel2.SuspendLayout(); - this.SuspendLayout(); - // - // roleInfoListBindingSource - // - this.roleInfoListBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.RoleInfo); - // - // panel1 - // - this.panel1.AutoScroll = true; - this.panel1.Controls.Add(this.btnRoles); - this.panel1.Controls.Add(this.btnOK); - this.panel1.Controls.Add(this.btnCancel); - this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel1.Location = new System.Drawing.Point(0, 478); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(557, 29); - this.panel1.TabIndex = 2; - // - // btnRoles - // - this.btnRoles.Dock = System.Windows.Forms.DockStyle.Left; - this.btnRoles.Location = new System.Drawing.Point(0, 0); - this.btnRoles.Name = "btnRoles"; - this.btnRoles.Size = new System.Drawing.Size(75, 29); - this.btnRoles.TabIndex = 2; - this.btnRoles.Text = "Roles"; - this.btnRoles.UseVisualStyleBackColor = true; - this.btnRoles.Click += new System.EventHandler(this.btnRoles_Click); - // - // btnOK - // - this.btnOK.Dock = System.Windows.Forms.DockStyle.Right; - this.btnOK.Location = new System.Drawing.Point(407, 0); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(75, 29); - this.btnOK.TabIndex = 1; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Dock = System.Windows.Forms.DockStyle.Right; - this.btnCancel.Location = new System.Drawing.Point(482, 0); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 29); - this.btnCancel.TabIndex = 0; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // tvFolder - // - this.tvFolder.CheckBoxes = true; - this.tvFolder.Dock = System.Windows.Forms.DockStyle.Fill; - this.tvFolder.Location = new System.Drawing.Point(0, 25); - this.tvFolder.Name = "tvFolder"; - this.tvFolder.Size = new System.Drawing.Size(557, 453); - this.tvFolder.TabIndex = 3; - this.tvFolder.BeforeCheck += new System.Windows.Forms.TreeViewCancelEventHandler(this.tvFolder_BeforeCheck); - // - // panel2 - // - this.panel2.Controls.Add(this.cmbRoles); - this.panel2.Controls.Add(this.label1); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(0, 0); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(557, 25); - this.panel2.TabIndex = 6; - // - // cmbRoles - // - this.cmbRoles.DataSource = this.roleInfoListBindingSource; - this.cmbRoles.DisplayMember = "Name"; - this.cmbRoles.Dock = System.Windows.Forms.DockStyle.Fill; - this.cmbRoles.FormattingEnabled = true; - this.cmbRoles.Location = new System.Drawing.Point(41, 0); - this.cmbRoles.Name = "cmbRoles"; - this.cmbRoles.Size = new System.Drawing.Size(516, 24); - this.cmbRoles.TabIndex = 6; - this.cmbRoles.ValueMember = "Rid"; - this.cmbRoles.SelectedValueChanged += new System.EventHandler(this.cmbRoles_SelectedValueChanged); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Dock = System.Windows.Forms.DockStyle.Left; - this.label1.Location = new System.Drawing.Point(0, 0); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(41, 17); - this.label1.TabIndex = 0; - this.label1.Text = "Role:"; - // - // frmAssignmentSelect - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(557, 507); - this.Controls.Add(this.tvFolder); - this.Controls.Add(this.panel2); - this.Controls.Add(this.panel1); - this.Name = "frmAssignmentSelect"; - this.Text = "Assignment Selection"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BeforeFormClosing); - ((System.ComponentModel.ISupportInitialize)(this.roleInfoListBindingSource)).EndInit(); - this.panel1.ResumeLayout(false); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.BindingSource roleInfoListBindingSource; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnRoles; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.TreeView tvFolder; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.ComboBox cmbRoles; - private System.Windows.Forms.Label label1; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmAssignmentSelect.cs b/PROMS/VEPROMS_Security/WinApp/frmAssignmentSelect.cs deleted file mode 100644 index fee34d7b..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmAssignmentSelect.cs +++ /dev/null @@ -1,109 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; - -namespace WinApp -{ - public partial class frmAssignmentSelect : Form - { - Group _grp; - FolderTreeNode _topnode; - public frmAssignmentSelect(Group grp) - { - InitializeComponent(); - _grp = grp; - this.Text = grp.GroupName + " Assignments"; - //_grp.BeginEdit();// Push - _topnode = FolderTreeNode.BuildTreeList(); - tvFolder.Nodes.Add(_topnode); - tvFolder.Nodes[0].Expand(); - roleInfoListBindingSource.DataSource = RoleInfoList.Get(); - //Initialize cmbRoles - if (grp.GroupAssignments.Count > 0) - { - int rid = grp.GroupAssignments[0].RID; - cmbRoles.SelectedValue = rid; - SetupFolders(rid); - } - } - private void BeforeFormClosing(object sender, FormClosingEventArgs e) - { - e.Cancel = (SaveAsNeeded() == DialogResult.Cancel); - } - private DialogResult SaveAsNeeded() - { - return DialogResult.Yes; - } - private void btnOK_Click(object sender, EventArgs e) - { - // This should save the changes to _grp.GroupAssignments - _grp.ApplyEdit(); //Apply - } - - private void btnCancel_Click(object sender, EventArgs e) - { - // This should throw away any changes to _grp.GroupAssignments - _grp.CancelEdit();// Pop - } - - private void btnRoles_Click(object sender, EventArgs e) - { - // TODO: Maybe should not be able to do this if unsaved data - frmRoles fr = new frmRoles(); - fr.ShowDialog(); - roleInfoListBindingSource.DataSource = RoleInfoList.Get(); - } - - private void tvFolder_BeforeCheck(object sender, TreeViewCancelEventArgs e) - { - if(!bSetup) - { - FolderTreeNode ftn = (FolderTreeNode)e.Node; - if (!ftn.Checked) - { - MessageBox.Show("Conversion Error"); - //_grp.GroupAssignments.Add(int.Parse(cmbRoles.SelectedValue.ToString()), ftn.FolderInfo.FolderID); - } - else - { - MessageBox.Show("Conversion Error"); - //TODO: KBR _grp.GroupAssignments.Remove(ftn.FolderInfo.FolderID, int.Parse(cmbRoles.SelectedValue.ToString())); - } - } - } - - private void cmbRoles_SelectedValueChanged(object sender, EventArgs e) - { - if (cmbRoles.SelectedIndex >= 0) - { - int rid = int.Parse(cmbRoles.SelectedValue.ToString()); - SetupFolders(rid); - } - } - private bool bSetup = false; - private void ResetTree(TreeNodeCollection tc) - { - foreach(TreeNode tn in tc) - { - tn.Checked=false; - if(tn.Nodes != null)ResetTree(tn.Nodes); - } - } - private void SetupFolders(int rid) - { - bSetup=true; - ResetTree(tvFolder.Nodes); - foreach(GroupAssignment ga in _grp.GroupAssignments) - { - if (ga.RID == rid) - _topnode.FindTreeNode(ga.FolderID).Checked = true; - } - bSetup=false; - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmAssignmentSelect.resx b/PROMS/VEPROMS_Security/WinApp/frmAssignmentSelect.resx deleted file mode 100644 index 1845f7ca..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmAssignmentSelect.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmGroupSelect.Designer.cs b/PROMS/VEPROMS_Security/WinApp/frmGroupSelect.Designer.cs deleted file mode 100644 index 24fffca5..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmGroupSelect.Designer.cs +++ /dev/null @@ -1,117 +0,0 @@ -namespace WinApp -{ - partial class frmGroupSelect - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.lbGroups = new System.Windows.Forms.ListBox(); - this.groupInfoListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.btnCancel = new System.Windows.Forms.Button(); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnOK = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.groupInfoListBindingSource)).BeginInit(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // lbGroups - // - this.lbGroups.DataSource = this.groupInfoListBindingSource; - this.lbGroups.DisplayMember = "GroupName"; - this.lbGroups.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbGroups.FormattingEnabled = true; - this.lbGroups.ItemHeight = 16; - this.lbGroups.Location = new System.Drawing.Point(0, 0); - this.lbGroups.Name = "lbGroups"; - this.lbGroups.Size = new System.Drawing.Size(298, 292); - this.lbGroups.TabIndex = 3; - this.lbGroups.ValueMember = "Gid"; - // - // groupInfoListBindingSource - // - this.groupInfoListBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.GroupInfo); - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Dock = System.Windows.Forms.DockStyle.Left; - this.btnCancel.Location = new System.Drawing.Point(79, 0); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(76, 35); - this.btnCancel.TabIndex = 1; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // panel1 - // - this.panel1.Controls.Add(this.btnCancel); - this.panel1.Controls.Add(this.btnOK); - this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel1.Location = new System.Drawing.Point(0, 293); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(298, 35); - this.panel1.TabIndex = 2; - // - // btnOK - // - this.btnOK.Dock = System.Windows.Forms.DockStyle.Left; - this.btnOK.Location = new System.Drawing.Point(0, 0); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(79, 35); - this.btnOK.TabIndex = 0; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // frmGroupSelect - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(298, 328); - this.Controls.Add(this.lbGroups); - this.Controls.Add(this.panel1); - this.Name = "frmGroupSelect"; - this.Text = "frmGroupSelect"; - this.Load += new System.EventHandler(this.frmGroupSelect_Load); - ((System.ComponentModel.ISupportInitialize)(this.groupInfoListBindingSource)).EndInit(); - this.panel1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ListBox lbGroups; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.BindingSource groupInfoListBindingSource; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmGroupSelect.cs b/PROMS/VEPROMS_Security/WinApp/frmGroupSelect.cs deleted file mode 100644 index 672c4a12..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmGroupSelect.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Csla; - -namespace WinApp -{ - public partial class frmGroupSelect : Form - { - public frmGroupSelect() - { - InitializeComponent(); - } - private void frmGroupSelect_Load(object sender, EventArgs e) - { - groupInfoListBindingSource.DataSource = GroupInfoList.Get(); - } - public int GID - { - get { return (int)lbGroups.SelectedValue; } - } - private void btnOK_Click(object sender, EventArgs e) - { - DialogResult = DialogResult.OK; - } - - private void btnCancel_Click(object sender, EventArgs e) - { - DialogResult = DialogResult.Cancel; - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmGroupSelect.resx b/PROMS/VEPROMS_Security/WinApp/frmGroupSelect.resx deleted file mode 100644 index 9c2cf16c..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmGroupSelect.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmGroups.Designer.cs b/PROMS/VEPROMS_Security/WinApp/frmGroups.Designer.cs deleted file mode 100644 index 9ab054de..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmGroups.Designer.cs +++ /dev/null @@ -1,523 +0,0 @@ -namespace WinApp -{ - partial class frmGroups - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.Label configLabel; - System.Windows.Forms.Label groupNameLabel; - System.Windows.Forms.Label groupTypeLabel; - this.btnNew = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnSave = new System.Windows.Forms.Button(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.lbGroups = new System.Windows.Forms.ListBox(); - this.groupInfoListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.groupMembershipsDataGridView = new System.Windows.Forms.DataGridView(); - this.Uid = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.User_FullName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.groupMembershipsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.groupBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnRemoveGA = new System.Windows.Forms.Button(); - this.btnNewGA = new System.Windows.Forms.Button(); - this.tabPage2 = new System.Windows.Forms.TabPage(); - this.groupAssignmentsDataGridView = new System.Windows.Forms.DataGridView(); - this.Aid = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.folderNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.roleNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.startDateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.endDateDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.groupAssignmentsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.panel2 = new System.Windows.Forms.Panel(); - this.btnRemoveAssign = new System.Windows.Forms.Button(); - this.btnNewAssign = new System.Windows.Forms.Button(); - this.configTextBox = new System.Windows.Forms.TextBox(); - this.gidTextBox = new System.Windows.Forms.TextBox(); - this.groupNameTextBox = new System.Windows.Forms.TextBox(); - this.groupTypeTextBox = new System.Windows.Forms.TextBox(); - this.userInfoListBindingSource = new System.Windows.Forms.BindingSource(this.components); - configLabel = new System.Windows.Forms.Label(); - groupNameLabel = new System.Windows.Forms.Label(); - groupTypeLabel = new System.Windows.Forms.Label(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.groupInfoListBindingSource)).BeginInit(); - this.tabControl1.SuspendLayout(); - this.tabPage1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.groupMembershipsDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupMembershipsBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupBindingSource)).BeginInit(); - this.panel1.SuspendLayout(); - this.tabPage2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.groupAssignmentsDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupAssignmentsBindingSource)).BeginInit(); - this.panel2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.userInfoListBindingSource)).BeginInit(); - this.SuspendLayout(); - // - // configLabel - // - configLabel.AutoSize = true; - configLabel.Location = new System.Drawing.Point(14, 92); - configLabel.Name = "configLabel"; - configLabel.Size = new System.Drawing.Size(52, 17); - configLabel.TabIndex = 5; - configLabel.Text = "Config:"; - // - // groupNameLabel - // - groupNameLabel.AutoSize = true; - groupNameLabel.Location = new System.Drawing.Point(14, 36); - groupNameLabel.Name = "groupNameLabel"; - groupNameLabel.Size = new System.Drawing.Size(93, 17); - groupNameLabel.TabIndex = 11; - groupNameLabel.Text = "Group Name:"; - // - // groupTypeLabel - // - groupTypeLabel.AutoSize = true; - groupTypeLabel.Location = new System.Drawing.Point(14, 64); - groupTypeLabel.Name = "groupTypeLabel"; - groupTypeLabel.Size = new System.Drawing.Size(88, 17); - groupTypeLabel.TabIndex = 13; - groupTypeLabel.Text = "Group Type:"; - // - // btnNew - // - this.btnNew.Location = new System.Drawing.Point(505, 61); - this.btnNew.Name = "btnNew"; - this.btnNew.Size = new System.Drawing.Size(75, 23); - this.btnNew.TabIndex = 5; - this.btnNew.Text = "New"; - this.btnNew.UseVisualStyleBackColor = true; - this.btnNew.Click += new System.EventHandler(this.btnNew_Click); - // - // btnCancel - // - this.btnCancel.Location = new System.Drawing.Point(505, 32); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 4; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnSave - // - this.btnSave.Location = new System.Drawing.Point(505, 3); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(75, 23); - this.btnSave.TabIndex = 3; - this.btnSave.Text = "Save"; - this.btnSave.UseVisualStyleBackColor = true; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 0); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.lbGroups); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.AutoScroll = true; - this.splitContainer1.Panel2.Controls.Add(this.tabControl1); - this.splitContainer1.Panel2.Controls.Add(configLabel); - this.splitContainer1.Panel2.Controls.Add(this.configTextBox); - this.splitContainer1.Panel2.Controls.Add(this.gidTextBox); - this.splitContainer1.Panel2.Controls.Add(groupNameLabel); - this.splitContainer1.Panel2.Controls.Add(this.groupNameTextBox); - this.splitContainer1.Panel2.Controls.Add(groupTypeLabel); - this.splitContainer1.Panel2.Controls.Add(this.groupTypeTextBox); - this.splitContainer1.Panel2.Controls.Add(this.btnNew); - this.splitContainer1.Panel2.Controls.Add(this.btnCancel); - this.splitContainer1.Panel2.Controls.Add(this.btnSave); - this.splitContainer1.Size = new System.Drawing.Size(892, 488); - this.splitContainer1.SplitterDistance = 296; - this.splitContainer1.TabIndex = 1; - // - // lbGroups - // - this.lbGroups.DataSource = this.groupInfoListBindingSource; - this.lbGroups.DisplayMember = "GroupName"; - this.lbGroups.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbGroups.FormattingEnabled = true; - this.lbGroups.ItemHeight = 16; - this.lbGroups.Location = new System.Drawing.Point(0, 0); - this.lbGroups.Name = "lbGroups"; - this.lbGroups.Size = new System.Drawing.Size(296, 484); - this.lbGroups.TabIndex = 0; - this.lbGroups.ValueMember = "Gid"; - this.lbGroups.SelectedValueChanged += new System.EventHandler(this.lbGroup_SelectedValueChanged); - // - // groupInfoListBindingSource - // - this.groupInfoListBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.GroupInfo); - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tabPage1); - this.tabControl1.Controls.Add(this.tabPage2); - this.tabControl1.Location = new System.Drawing.Point(23, 213); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(557, 260); - this.tabControl1.TabIndex = 15; - // - // tabPage1 - // - this.tabPage1.AutoScroll = true; - this.tabPage1.Controls.Add(this.groupMembershipsDataGridView); - this.tabPage1.Controls.Add(this.panel1); - this.tabPage1.Location = new System.Drawing.Point(4, 25); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(549, 231); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "Members"; - this.tabPage1.UseVisualStyleBackColor = true; - // - // groupMembershipsDataGridView - // - this.groupMembershipsDataGridView.AutoGenerateColumns = false; - this.groupMembershipsDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.Uid, - this.User_FullName, - this.dataGridViewTextBoxColumn4, - this.dataGridViewTextBoxColumn8}); - this.groupMembershipsDataGridView.DataSource = this.groupMembershipsBindingSource; - this.groupMembershipsDataGridView.Dock = System.Windows.Forms.DockStyle.Fill; - this.groupMembershipsDataGridView.Location = new System.Drawing.Point(3, 35); - this.groupMembershipsDataGridView.Name = "groupMembershipsDataGridView"; - this.groupMembershipsDataGridView.RowTemplate.Height = 24; - this.groupMembershipsDataGridView.Size = new System.Drawing.Size(543, 193); - this.groupMembershipsDataGridView.TabIndex = 0; - // - // Uid - // - this.Uid.DataPropertyName = "Uid"; - this.Uid.HeaderText = "Uid"; - this.Uid.Name = "Uid"; - this.Uid.ReadOnly = true; - this.Uid.Visible = false; - // - // User_FullName - // - this.User_FullName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.User_FullName.DataPropertyName = "User_FullName"; - this.User_FullName.HeaderText = "User"; - this.User_FullName.Name = "User_FullName"; - this.User_FullName.ReadOnly = true; - // - // dataGridViewTextBoxColumn4 - // - this.dataGridViewTextBoxColumn4.DataPropertyName = "StartDate"; - this.dataGridViewTextBoxColumn4.HeaderText = "StartDate"; - this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; - // - // dataGridViewTextBoxColumn8 - // - this.dataGridViewTextBoxColumn8.DataPropertyName = "EndDate"; - this.dataGridViewTextBoxColumn8.HeaderText = "EndDate"; - this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8"; - // - // groupMembershipsBindingSource - // - this.groupMembershipsBindingSource.DataMember = "GroupMemberships"; - this.groupMembershipsBindingSource.DataSource = this.groupBindingSource; - this.groupMembershipsBindingSource.CurrentItemChanged += new System.EventHandler(this.CurrentItemChanged); - // - // groupBindingSource - // - this.groupBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.Group); - this.groupBindingSource.CurrentItemChanged += new System.EventHandler(this.CurrentItemChanged); - // - // panel1 - // - this.panel1.Controls.Add(this.btnRemoveGA); - this.panel1.Controls.Add(this.btnNewGA); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(3, 3); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(543, 32); - this.panel1.TabIndex = 1; - // - // btnRemoveGA - // - this.btnRemoveGA.AutoSize = true; - this.btnRemoveGA.Dock = System.Windows.Forms.DockStyle.Left; - this.btnRemoveGA.Location = new System.Drawing.Point(72, 0); - this.btnRemoveGA.Name = "btnRemoveGA"; - this.btnRemoveGA.Size = new System.Drawing.Size(75, 32); - this.btnRemoveGA.TabIndex = 37; - this.btnRemoveGA.TabStop = false; - this.btnRemoveGA.Text = "Remove"; - this.btnRemoveGA.UseVisualStyleBackColor = true; - this.btnRemoveGA.Click += new System.EventHandler(this.btnRemoveGA_Click); - // - // btnNewGA - // - this.btnNewGA.AutoSize = true; - this.btnNewGA.Dock = System.Windows.Forms.DockStyle.Left; - this.btnNewGA.Location = new System.Drawing.Point(0, 0); - this.btnNewGA.Name = "btnNewGA"; - this.btnNewGA.Size = new System.Drawing.Size(72, 32); - this.btnNewGA.TabIndex = 36; - this.btnNewGA.TabStop = false; - this.btnNewGA.Text = "New"; - this.btnNewGA.UseVisualStyleBackColor = true; - this.btnNewGA.Click += new System.EventHandler(this.btnNewGA_Click); - // - // tabPage2 - // - this.tabPage2.AutoScroll = true; - this.tabPage2.Controls.Add(this.groupAssignmentsDataGridView); - this.tabPage2.Controls.Add(this.panel2); - this.tabPage2.Location = new System.Drawing.Point(4, 25); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(549, 231); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "Assignments"; - this.tabPage2.UseVisualStyleBackColor = true; - // - // groupAssignmentsDataGridView - // - this.groupAssignmentsDataGridView.AutoGenerateColumns = false; - this.groupAssignmentsDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.Aid, - this.folderNameDataGridViewTextBoxColumn, - this.roleNameDataGridViewTextBoxColumn, - this.startDateDataGridViewTextBoxColumn, - this.endDateDataGridViewTextBoxColumn}); - this.groupAssignmentsDataGridView.DataSource = this.groupAssignmentsBindingSource; - this.groupAssignmentsDataGridView.Dock = System.Windows.Forms.DockStyle.Fill; - this.groupAssignmentsDataGridView.Location = new System.Drawing.Point(3, 35); - this.groupAssignmentsDataGridView.Name = "groupAssignmentsDataGridView"; - this.groupAssignmentsDataGridView.RowTemplate.Height = 24; - this.groupAssignmentsDataGridView.Size = new System.Drawing.Size(543, 193); - this.groupAssignmentsDataGridView.TabIndex = 0; - // - // Aid - // - this.Aid.DataPropertyName = "Aid"; - this.Aid.HeaderText = "Aid"; - this.Aid.Name = "Aid"; - this.Aid.ReadOnly = true; - this.Aid.Visible = false; - // - // folderNameDataGridViewTextBoxColumn - // - this.folderNameDataGridViewTextBoxColumn.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.folderNameDataGridViewTextBoxColumn.DataPropertyName = "Folder_Name"; - this.folderNameDataGridViewTextBoxColumn.HeaderText = "Folder"; - this.folderNameDataGridViewTextBoxColumn.Name = "folderNameDataGridViewTextBoxColumn"; - this.folderNameDataGridViewTextBoxColumn.ReadOnly = true; - // - // roleNameDataGridViewTextBoxColumn - // - this.roleNameDataGridViewTextBoxColumn.DataPropertyName = "Role_Name"; - this.roleNameDataGridViewTextBoxColumn.HeaderText = "Role"; - this.roleNameDataGridViewTextBoxColumn.Name = "roleNameDataGridViewTextBoxColumn"; - this.roleNameDataGridViewTextBoxColumn.ReadOnly = true; - // - // startDateDataGridViewTextBoxColumn - // - this.startDateDataGridViewTextBoxColumn.DataPropertyName = "StartDate"; - this.startDateDataGridViewTextBoxColumn.HeaderText = "Start"; - this.startDateDataGridViewTextBoxColumn.Name = "startDateDataGridViewTextBoxColumn"; - // - // endDateDataGridViewTextBoxColumn - // - this.endDateDataGridViewTextBoxColumn.DataPropertyName = "EndDate"; - this.endDateDataGridViewTextBoxColumn.HeaderText = "End"; - this.endDateDataGridViewTextBoxColumn.Name = "endDateDataGridViewTextBoxColumn"; - // - // groupAssignmentsBindingSource - // - this.groupAssignmentsBindingSource.DataMember = "GroupAssignments"; - this.groupAssignmentsBindingSource.DataSource = this.groupBindingSource; - // - // panel2 - // - this.panel2.Controls.Add(this.btnRemoveAssign); - this.panel2.Controls.Add(this.btnNewAssign); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(3, 3); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(543, 32); - this.panel2.TabIndex = 2; - // - // btnRemoveAssign - // - this.btnRemoveAssign.AutoSize = true; - this.btnRemoveAssign.Dock = System.Windows.Forms.DockStyle.Left; - this.btnRemoveAssign.Location = new System.Drawing.Point(72, 0); - this.btnRemoveAssign.Name = "btnRemoveAssign"; - this.btnRemoveAssign.Size = new System.Drawing.Size(83, 32); - this.btnRemoveAssign.TabIndex = 37; - this.btnRemoveAssign.TabStop = false; - this.btnRemoveAssign.Text = "Remove"; - this.btnRemoveAssign.UseVisualStyleBackColor = true; - this.btnRemoveAssign.Click += new System.EventHandler(this.btnRemoveAssign_Click); - // - // btnNewAssign - // - this.btnNewAssign.AutoSize = true; - this.btnNewAssign.Dock = System.Windows.Forms.DockStyle.Left; - this.btnNewAssign.Location = new System.Drawing.Point(0, 0); - this.btnNewAssign.Name = "btnNewAssign"; - this.btnNewAssign.Size = new System.Drawing.Size(72, 32); - this.btnNewAssign.TabIndex = 36; - this.btnNewAssign.TabStop = false; - this.btnNewAssign.Text = "New"; - this.btnNewAssign.UseVisualStyleBackColor = true; - this.btnNewAssign.Click += new System.EventHandler(this.btnNewAssign_Click); - // - // configTextBox - // - this.configTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.groupBindingSource, "Config", true)); - this.configTextBox.Location = new System.Drawing.Point(113, 89); - this.configTextBox.Multiline = true; - this.configTextBox.Name = "configTextBox"; - this.configTextBox.Size = new System.Drawing.Size(381, 108); - this.configTextBox.TabIndex = 6; - // - // gidTextBox - // - this.gidTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.groupBindingSource, "Gid", true)); - this.gidTextBox.Enabled = false; - this.gidTextBox.Location = new System.Drawing.Point(2, 0); - this.gidTextBox.Name = "gidTextBox"; - this.gidTextBox.Size = new System.Drawing.Size(34, 22); - this.gidTextBox.TabIndex = 10; - // - // groupNameTextBox - // - this.groupNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.groupBindingSource, "GroupName", true)); - this.groupNameTextBox.Location = new System.Drawing.Point(113, 33); - this.groupNameTextBox.Name = "groupNameTextBox"; - this.groupNameTextBox.Size = new System.Drawing.Size(381, 22); - this.groupNameTextBox.TabIndex = 12; - // - // groupTypeTextBox - // - this.groupTypeTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.groupBindingSource, "GroupType", true)); - this.groupTypeTextBox.Location = new System.Drawing.Point(113, 61); - this.groupTypeTextBox.Name = "groupTypeTextBox"; - this.groupTypeTextBox.Size = new System.Drawing.Size(381, 22); - this.groupTypeTextBox.TabIndex = 14; - // - // userInfoListBindingSource - // - this.userInfoListBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.UserInfo); - // - // frmGroups - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(892, 488); - this.Controls.Add(this.splitContainer1); - this.Name = "frmGroups"; - this.Text = "frmGroups"; - this.Load += new System.EventHandler(this.frmGroup_Load); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BeforeFormClosing); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.Panel2.PerformLayout(); - this.splitContainer1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.groupInfoListBindingSource)).EndInit(); - this.tabControl1.ResumeLayout(false); - this.tabPage1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.groupMembershipsDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupMembershipsBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupBindingSource)).EndInit(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - this.tabPage2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.groupAssignmentsDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupAssignmentsBindingSource)).EndInit(); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.userInfoListBindingSource)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.Button btnNew; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnSave; - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.ListBox lbGroups; - private System.Windows.Forms.TextBox configTextBox; - private System.Windows.Forms.BindingSource groupBindingSource; - private System.Windows.Forms.TextBox gidTextBox; - private System.Windows.Forms.TextBox groupNameTextBox; - private System.Windows.Forms.TextBox groupTypeTextBox; - private System.Windows.Forms.BindingSource groupInfoListBindingSource; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabPage1; - private System.Windows.Forms.TabPage tabPage2; - private System.Windows.Forms.BindingSource groupMembershipsBindingSource; - private System.Windows.Forms.DataGridView groupMembershipsDataGridView; - private System.Windows.Forms.BindingSource userInfoListBindingSource; - private System.Windows.Forms.DataGridView groupAssignmentsDataGridView; -// private System.Windows.Forms.BindingSource groupPermissionsBindingSource; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnRemoveGA; - private System.Windows.Forms.Button btnNewGA; - private System.Windows.Forms.DataGridViewTextBoxColumn Uid; - private System.Windows.Forms.DataGridViewTextBoxColumn User_FullName; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8; - private System.Windows.Forms.BindingSource groupAssignmentsBindingSource; - // private System.Windows.Forms.DataGridViewTextBoxColumn roleGidDataGridViewTextBoxColumn; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Button btnRemoveAssign; - private System.Windows.Forms.Button btnNewAssign; - private System.Windows.Forms.DataGridViewTextBoxColumn Aid; - private System.Windows.Forms.DataGridViewTextBoxColumn ridDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn folderidDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn folderNameDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn roleNameDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn startDateDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn endDateDataGridViewTextBoxColumn; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmGroups.cs b/PROMS/VEPROMS_Security/WinApp/frmGroups.cs deleted file mode 100644 index 594845f8..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmGroups.cs +++ /dev/null @@ -1,200 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; - -namespace WinApp -{ - public partial class frmGroups : Form - { - public frmGroups(int gid) - { - InitializeComponent(); - _gid = gid; - } - private int _gid; - private Group _group; - private void frmGroup_Load(object sender, EventArgs e) - { - groupInfoListBindingSource.DataSource = GroupInfoList.Get(); - userInfoListBindingSource.DataSource = UserInfoList.Get(); - lbGroups.SelectedValue = _gid; - SetupDetail(); - SetupButtons(); - } - private void BeforeFormClosing(object sender, FormClosingEventArgs e) - { - e.Cancel = (SaveAsNeeded() == DialogResult.Cancel); - } - private DialogResult SaveAsNeeded() - { - if (_group != null && _group.IsSavable) - { - DialogResult dr = MessageBox.Show("Do you want to save changes", "Save Changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) Save(); - if (dr == DialogResult.No) Cancel(); - // TODO: Need a Cancel - return dr; - } - return DialogResult.Yes; - } - private void SetupDetail() - { - if (lbGroups.SelectedValue != null) - { - int gid = (int)lbGroups.SelectedValue; - if (_group == null || _group.GID != gid) - { - if (SaveAsNeeded() != DialogResult.Cancel) - { - _group = Group.Get(gid); - groupBindingSource.DataSource = _group; - groupMembershipsBindingSource.DataSource = _group.GroupMemberships; - groupAssignmentsBindingSource.DataSource = _group.GroupAssignments; - } - } - } - } - private void lbGroup_SelectedValueChanged(object sender, EventArgs e) - { - SetupDetail(); - } - private void SetupButtons() - { - if (_group != null) - { - btnSave.Enabled = _group.IsSavable; - btnCancel.Enabled = _group.IsDirty; - btnNew.Enabled = _group.IsValid; - } - else - { - btnSave.Enabled = false; - btnCancel.Enabled = false; - btnNew.Enabled = true; - } - } - private void CurrentItemChanged(object sender, EventArgs e) - { - SetupButtons(); - } - private void btnCancel_Click(object sender, EventArgs e) - { - Cancel(); - } - private void btnSave_Click(object sender, EventArgs e) - { - Save(); - } - private void btnNew_Click(object sender, EventArgs e) - { - New(); - } - private void Cancel() - { - _group.CancelEdit(); - _group.BeginEdit(); - } - private void Save() - { - groupBindingSource.RaiseListChangedEvents = false; - groupMembershipsBindingSource.RaiseListChangedEvents = false; - groupBindingSource.EndEdit(); - groupMembershipsBindingSource.EndEdit(); - - try - { - Group temp = _group.Clone(); - _group = temp.Save(); - _group.BeginEdit(); - groupBindingSource.DataSource = null; - groupMembershipsBindingSource.DataSource = null; - int gid = _group.GID; - groupInfoListBindingSource.DataSource = GroupInfoList.Get(); - lbGroups.SelectedValue = gid; - groupBindingSource.DataSource = _group; - groupMembershipsBindingSource.DataSource = _group.GroupMemberships; - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), "Error saving", - MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - finally - { - groupBindingSource.RaiseListChangedEvents = true; - groupMembershipsBindingSource.RaiseListChangedEvents = true; - groupBindingSource.ResetBindings(false); - groupMembershipsBindingSource.ResetBindings(false); - } - SetupButtons(); - } - public void New() - { - if (SaveAsNeeded() != DialogResult.Cancel) - { - _group = Group.New(); - groupBindingSource.DataSource = _group; - groupMembershipsBindingSource.DataSource = _group.GroupMemberships; - } - } - private void btnNewGA_Click(object sender, EventArgs e) - { - using (frmUserSelect f = new frmUserSelect()) - { - f.ShowDialog(); - if (f.DialogResult == DialogResult.OK) - { - _group.GroupMemberships.Add(User.Get(f.UID)); // KBR using? - SetupButtons(); - } - } - } - private void btnRemoveGA_Click(object sender, EventArgs e) - { - if (this.groupMembershipsDataGridView.SelectedRows.Count > 0) - { - int uid = int.Parse( - this.groupMembershipsDataGridView.SelectedRows[0].Cells[0].Value.ToString()); - MessageBox.Show("Conversion error"); - //TODO KBR: _group.GroupMemberships.Remove(uid); - } - } - - private void btnRemoveAssign_Click(object sender, EventArgs e) - { - if (this.groupAssignmentsDataGridView.SelectedRows.Count > 0) - { - int rid = int.Parse( - this.groupAssignmentsDataGridView.SelectedRows[0].Cells[1].Value.ToString()); - int folderid = int.Parse( - this.groupAssignmentsDataGridView.SelectedRows[0].Cells[2].Value.ToString()); - MessageBox.Show("Conversion error"); - //TODO KBR: _group.GroupAssignments.Remove(folderid, rid); - } - - } - - private void btnNewAssign_Click(object sender, EventArgs e) - { - using (frmAssignmentSelect f = new frmAssignmentSelect(_group)) - { - f.ShowDialog(); - if (f.DialogResult == DialogResult.OK) - { - //TODO: Do I need to refresh Assignments? - } - } - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmGroups.resx b/PROMS/VEPROMS_Security/WinApp/frmGroups.resx deleted file mode 100644 index 3be1ae67..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmGroups.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - False - - - False - - - 17, 17 - - - True - - - True - - - 424, 17 - - - 244, 17 - - - True - - - 17, 57 - - - 687, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmMembership.Designer.cs b/PROMS/VEPROMS_Security/WinApp/frmMembership.Designer.cs deleted file mode 100644 index eca90746..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmMembership.Designer.cs +++ /dev/null @@ -1,317 +0,0 @@ -namespace WinApp -{ - partial class frmMembership - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.Label dtsLabel; - System.Windows.Forms.Label endDateLabel; - System.Windows.Forms.Label gidLabel; - System.Windows.Forms.Label startDateLabel; - System.Windows.Forms.Label ugidLabel; - System.Windows.Forms.Label uidLabel; - System.Windows.Forms.Label usridLabel; - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.lbMembers = new System.Windows.Forms.ListBox(); - this.membershipInfoListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.membershipBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.dtsTextBox = new System.Windows.Forms.TextBox(); - this.endDateTextBox = new System.Windows.Forms.TextBox(); - this.gidTextBox = new System.Windows.Forms.TextBox(); - this.startDateTextBox = new System.Windows.Forms.TextBox(); - this.ugidTextBox = new System.Windows.Forms.TextBox(); - this.uidTextBox = new System.Windows.Forms.TextBox(); - this.usridTextBox = new System.Windows.Forms.TextBox(); - this.btnNew = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnSave = new System.Windows.Forms.Button(); - this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); - dtsLabel = new System.Windows.Forms.Label(); - endDateLabel = new System.Windows.Forms.Label(); - gidLabel = new System.Windows.Forms.Label(); - startDateLabel = new System.Windows.Forms.Label(); - ugidLabel = new System.Windows.Forms.Label(); - uidLabel = new System.Windows.Forms.Label(); - usridLabel = new System.Windows.Forms.Label(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.membershipInfoListBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.membershipBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); - this.SuspendLayout(); - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 0); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.lbMembers); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.btnNew); - this.splitContainer1.Panel2.Controls.Add(this.btnCancel); - this.splitContainer1.Panel2.Controls.Add(this.btnSave); - this.splitContainer1.Panel2.Controls.Add(dtsLabel); - this.splitContainer1.Panel2.Controls.Add(this.dtsTextBox); - this.splitContainer1.Panel2.Controls.Add(endDateLabel); - this.splitContainer1.Panel2.Controls.Add(this.endDateTextBox); - this.splitContainer1.Panel2.Controls.Add(gidLabel); - this.splitContainer1.Panel2.Controls.Add(this.gidTextBox); - this.splitContainer1.Panel2.Controls.Add(startDateLabel); - this.splitContainer1.Panel2.Controls.Add(this.startDateTextBox); - this.splitContainer1.Panel2.Controls.Add(ugidLabel); - this.splitContainer1.Panel2.Controls.Add(this.ugidTextBox); - this.splitContainer1.Panel2.Controls.Add(uidLabel); - this.splitContainer1.Panel2.Controls.Add(this.uidTextBox); - this.splitContainer1.Panel2.Controls.Add(usridLabel); - this.splitContainer1.Panel2.Controls.Add(this.usridTextBox); - this.splitContainer1.Size = new System.Drawing.Size(685, 409); - this.splitContainer1.SplitterDistance = 228; - this.splitContainer1.TabIndex = 0; - // - // lbMembers - // - this.lbMembers.DataSource = this.membershipInfoListBindingSource; - this.lbMembers.DisplayMember = "Ugid"; - this.lbMembers.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbMembers.FormattingEnabled = true; - this.lbMembers.ItemHeight = 16; - this.lbMembers.Location = new System.Drawing.Point(0, 0); - this.lbMembers.Name = "lbMembers"; - this.lbMembers.Size = new System.Drawing.Size(228, 404); - this.lbMembers.TabIndex = 0; - this.lbMembers.ValueMember = "Ugid"; - this.lbMembers.SelectedValueChanged += new System.EventHandler(this.lbMembers_SelectedValueChanged); - // - // membershipInfoListBindingSource - // - this.membershipInfoListBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.MembershipInfo); - // - // membershipBindingSource - // - this.membershipBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.Membership); - this.membershipBindingSource.CurrentItemChanged += new System.EventHandler(this.CurrentItemChanged); - // - // dtsLabel - // - dtsLabel.AutoSize = true; - dtsLabel.Location = new System.Drawing.Point(20, 15); - dtsLabel.Name = "dtsLabel"; - dtsLabel.Size = new System.Drawing.Size(33, 17); - dtsLabel.TabIndex = 0; - dtsLabel.Text = "Dts:"; - // - // dtsTextBox - // - this.dtsTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.membershipBindingSource, "Dts", true)); - this.dtsTextBox.Location = new System.Drawing.Point(102, 12); - this.dtsTextBox.Name = "dtsTextBox"; - this.dtsTextBox.Size = new System.Drawing.Size(100, 22); - this.dtsTextBox.TabIndex = 1; - // - // endDateLabel - // - endDateLabel.AutoSize = true; - endDateLabel.Location = new System.Drawing.Point(20, 43); - endDateLabel.Name = "endDateLabel"; - endDateLabel.Size = new System.Drawing.Size(71, 17); - endDateLabel.TabIndex = 2; - endDateLabel.Text = "End Date:"; - // - // endDateTextBox - // - this.endDateTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.membershipBindingSource, "EndDate", true)); - this.endDateTextBox.Location = new System.Drawing.Point(102, 40); - this.endDateTextBox.Name = "endDateTextBox"; - this.endDateTextBox.Size = new System.Drawing.Size(100, 22); - this.endDateTextBox.TabIndex = 3; - // - // gidLabel - // - gidLabel.AutoSize = true; - gidLabel.Location = new System.Drawing.Point(20, 71); - gidLabel.Name = "gidLabel"; - gidLabel.Size = new System.Drawing.Size(34, 17); - gidLabel.TabIndex = 4; - gidLabel.Text = "Gid:"; - // - // gidTextBox - // - this.gidTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.membershipBindingSource, "Gid", true)); - this.gidTextBox.Location = new System.Drawing.Point(102, 68); - this.gidTextBox.Name = "gidTextBox"; - this.gidTextBox.Size = new System.Drawing.Size(100, 22); - this.gidTextBox.TabIndex = 5; - // - // startDateLabel - // - startDateLabel.AutoSize = true; - startDateLabel.Location = new System.Drawing.Point(20, 99); - startDateLabel.Name = "startDateLabel"; - startDateLabel.Size = new System.Drawing.Size(76, 17); - startDateLabel.TabIndex = 6; - startDateLabel.Text = "Start Date:"; - // - // startDateTextBox - // - this.startDateTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.membershipBindingSource, "StartDate", true)); - this.startDateTextBox.Location = new System.Drawing.Point(102, 96); - this.startDateTextBox.Name = "startDateTextBox"; - this.startDateTextBox.Size = new System.Drawing.Size(100, 22); - this.startDateTextBox.TabIndex = 7; - // - // ugidLabel - // - ugidLabel.AutoSize = true; - ugidLabel.Location = new System.Drawing.Point(20, 127); - ugidLabel.Name = "ugidLabel"; - ugidLabel.Size = new System.Drawing.Size(41, 17); - ugidLabel.TabIndex = 8; - ugidLabel.Text = "Ugid:"; - // - // ugidTextBox - // - this.ugidTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.membershipBindingSource, "Ugid", true)); - this.ugidTextBox.Location = new System.Drawing.Point(102, 124); - this.ugidTextBox.Name = "ugidTextBox"; - this.ugidTextBox.Size = new System.Drawing.Size(100, 22); - this.ugidTextBox.TabIndex = 9; - // - // uidLabel - // - uidLabel.AutoSize = true; - uidLabel.Location = new System.Drawing.Point(20, 155); - uidLabel.Name = "uidLabel"; - uidLabel.Size = new System.Drawing.Size(33, 17); - uidLabel.TabIndex = 10; - uidLabel.Text = "Uid:"; - // - // uidTextBox - // - this.uidTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.membershipBindingSource, "Uid", true)); - this.uidTextBox.Location = new System.Drawing.Point(102, 152); - this.uidTextBox.Name = "uidTextBox"; - this.uidTextBox.Size = new System.Drawing.Size(100, 22); - this.uidTextBox.TabIndex = 11; - // - // usridLabel - // - usridLabel.AutoSize = true; - usridLabel.Location = new System.Drawing.Point(20, 183); - usridLabel.Name = "usridLabel"; - usridLabel.Size = new System.Drawing.Size(45, 17); - usridLabel.TabIndex = 12; - usridLabel.Text = "Usrid:"; - // - // usridTextBox - // - this.usridTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.membershipBindingSource, "Usrid", true)); - this.usridTextBox.Location = new System.Drawing.Point(102, 180); - this.usridTextBox.Name = "usridTextBox"; - this.usridTextBox.Size = new System.Drawing.Size(100, 22); - this.usridTextBox.TabIndex = 13; - // - // btnNew - // - this.btnNew.Location = new System.Drawing.Point(366, 67); - this.btnNew.Name = "btnNew"; - this.btnNew.Size = new System.Drawing.Size(75, 23); - this.btnNew.TabIndex = 33; - this.btnNew.Text = "New"; - this.btnNew.UseVisualStyleBackColor = true; - this.btnNew.Click += new System.EventHandler(this.btnNew_Click); - // - // btnCancel - // - this.btnCancel.Location = new System.Drawing.Point(366, 38); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 32; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnSave - // - this.btnSave.Location = new System.Drawing.Point(366, 9); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(75, 23); - this.btnSave.TabIndex = 31; - this.btnSave.Text = "Save"; - this.btnSave.UseVisualStyleBackColor = true; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // errorProvider1 - // - this.errorProvider1.ContainerControl = this; - this.errorProvider1.DataSource = this.membershipBindingSource; - // - // frmMembership - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(685, 409); - this.Controls.Add(this.splitContainer1); - this.Name = "frmMembership"; - this.Text = "frmMembership"; - this.Load += new System.EventHandler(this.frmMembership_Load); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.Panel2.PerformLayout(); - this.splitContainer1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.membershipInfoListBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.membershipBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.ListBox lbMembers; - private System.Windows.Forms.BindingSource membershipInfoListBindingSource; - private System.Windows.Forms.TextBox dtsTextBox; - private System.Windows.Forms.BindingSource membershipBindingSource; - private System.Windows.Forms.TextBox endDateTextBox; - private System.Windows.Forms.TextBox gidTextBox; - private System.Windows.Forms.TextBox startDateTextBox; - private System.Windows.Forms.TextBox ugidTextBox; - private System.Windows.Forms.TextBox uidTextBox; - private System.Windows.Forms.TextBox usridTextBox; - private System.Windows.Forms.Button btnNew; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnSave; - private System.Windows.Forms.ErrorProvider errorProvider1; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmMembership.cs b/PROMS/VEPROMS_Security/WinApp/frmMembership.cs deleted file mode 100644 index 71ff80cd..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmMembership.cs +++ /dev/null @@ -1,137 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; - -namespace WinApp -{ - public partial class frmMembership : Form - { - public frmMembership() - { - InitializeComponent(); - } - Membership _mem; - private void frmMembership_Load(object sender, EventArgs e) - { - membershipInfoListBindingSource.DataSource = MembershipInfoList.Get(); - SetupDetail(); - SetupButtons(); - } - private DialogResult SaveAsNeeded() - { - if (_mem != null && _mem.IsSavable) - { - DialogResult dr = MessageBox.Show("Do you want to save changes", "Save Changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) Save(); - if (dr == DialogResult.No) Cancel(); - // TODO: Need a Cancel - return dr; - } - return DialogResult.Yes; - } - private void SetupDetail() - { - if (lbMembers.SelectedIndex != -1) - { - int ugid = (int)lbMembers.SelectedValue; - if (_mem == null || _mem.UGID != ugid) - { - if (SaveAsNeeded() != DialogResult.Cancel) - { - _mem = Membership.Get(ugid); - membershipBindingSource.DataSource = _mem; - } - } - } - } - private void lbMembers_SelectedValueChanged(object sender, EventArgs e) - { - SetupDetail(); - } - private void SetupButtons() - { - if (_mem != null) - { - btnSave.Enabled = _mem.IsSavable; - btnCancel.Enabled = _mem.IsDirty; - btnNew.Enabled = _mem.IsValid; - } - else - { - btnSave.Enabled = false; - btnCancel.Enabled = false; - btnNew.Enabled = true; - } - } - private void CurrentItemChanged(object sender, EventArgs e) - { - SetupButtons(); - } - private void btnCancel_Click(object sender, EventArgs e) - { - Cancel(); - } - private void btnSave_Click(object sender, EventArgs e) - { - Save(); - } - private void btnNew_Click(object sender, EventArgs e) - { - New(); - } - private void Cancel() - { - _mem.CancelEdit(); - _mem.BeginEdit(); - } - private void Save() - { - membershipBindingSource.RaiseListChangedEvents = false; - membershipBindingSource.EndEdit(); - - try - { - Membership temp = _mem.Clone(); - _mem = temp.Save(); - _mem.BeginEdit(); - membershipBindingSource.DataSource = null; - int ugid = _mem.UID; - if (lbMembers.SelectedIndex == -1) - lbMembers.SelectedValue = ugid; - membershipBindingSource.DataSource = _mem; - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), "Error saving", - MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - finally - { - membershipBindingSource.RaiseListChangedEvents = true; - membershipBindingSource.ResetBindings(false); - } - SetupButtons(); - } - public void New() - { - if (SaveAsNeeded() != DialogResult.Cancel) - { - _mem = Membership.New(); - membershipBindingSource.DataSource = _mem; - lbMembers.SelectedIndex = -1; - } - } - - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmMembership.resx b/PROMS/VEPROMS_Security/WinApp/frmMembership.resx deleted file mode 100644 index 29a88681..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmMembership.resx +++ /dev/null @@ -1,156 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - False - - - 285, 17 - - - False - - - False - - - False - - - False - - - False - - - False - - - 17, 17 - - - 285, 17 - - - 506, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmRoles.Designer.cs b/PROMS/VEPROMS_Security/WinApp/frmRoles.Designer.cs deleted file mode 100644 index be1d6284..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmRoles.Designer.cs +++ /dev/null @@ -1,555 +0,0 @@ -namespace WinApp -{ - partial class frmRoles - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.Label nameLabel; - System.Windows.Forms.Label titleLabel; - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.lbRoles = new System.Windows.Forms.ListBox(); - this.roleInfoListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.tabControl1 = new System.Windows.Forms.TabControl(); - this.tabPage1 = new System.Windows.Forms.TabPage(); - this.roleAssignmentsDataGridView = new System.Windows.Forms.DataGridView(); - this.StartDate = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.EndDate = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.roleAssignmentsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.panel3 = new System.Windows.Forms.Panel(); - this.btnRemoveAssign = new System.Windows.Forms.Button(); - this.btnNewAssign = new System.Windows.Forms.Button(); - this.tabPage2 = new System.Windows.Forms.TabPage(); - this.rolePermissionsDataGridView = new System.Windows.Forms.DataGridView(); - this.Pid = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.permADLookupBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.dataGridViewTextBoxColumn13 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn19 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewCheckBoxColumn2 = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.dataGridViewCheckBoxColumn4 = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.dataGridViewCheckBoxColumn1 = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.dataGridViewCheckBoxColumn3 = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.dataGridViewTextBoxColumn16 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn12 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.rolePermissionsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.roleBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.panel2 = new System.Windows.Forms.Panel(); - this.button1 = new System.Windows.Forms.Button(); - this.btnNewPermission = new System.Windows.Forms.Button(); - this.panel1 = new System.Windows.Forms.Panel(); - this.nameTextBox = new System.Windows.Forms.TextBox(); - this.ridTextBox = new System.Windows.Forms.TextBox(); - this.titleTextBox = new System.Windows.Forms.TextBox(); - this.btnNew = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnSave = new System.Windows.Forms.Button(); - this.dataGridViewTextBoxColumn10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); - nameLabel = new System.Windows.Forms.Label(); - titleLabel = new System.Windows.Forms.Label(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.roleInfoListBindingSource)).BeginInit(); - this.tabControl1.SuspendLayout(); - this.tabPage1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.roleAssignmentsDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.roleAssignmentsBindingSource)).BeginInit(); - this.panel3.SuspendLayout(); - this.tabPage2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.rolePermissionsDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.permADLookupBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.rolePermissionsBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.roleBindingSource)).BeginInit(); - this.panel2.SuspendLayout(); - this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); - this.SuspendLayout(); - // - // nameLabel - // - nameLabel.AutoSize = true; - nameLabel.Location = new System.Drawing.Point(69, 11); - nameLabel.Name = "nameLabel"; - nameLabel.Size = new System.Drawing.Size(49, 17); - nameLabel.TabIndex = 21; - nameLabel.Text = "Name:"; - // - // titleLabel - // - titleLabel.AutoSize = true; - titleLabel.Location = new System.Drawing.Point(6, 38); - titleLabel.Name = "titleLabel"; - titleLabel.Size = new System.Drawing.Size(39, 17); - titleLabel.TabIndex = 24; - titleLabel.Text = "Title:"; - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 0); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.lbRoles); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.AutoScroll = true; - this.splitContainer1.Panel2.Controls.Add(this.tabControl1); - this.splitContainer1.Panel2.Controls.Add(this.panel1); - this.splitContainer1.Size = new System.Drawing.Size(863, 550); - this.splitContainer1.SplitterDistance = 225; - this.splitContainer1.TabIndex = 0; - // - // lbRoles - // - this.lbRoles.DataSource = this.roleInfoListBindingSource; - this.lbRoles.DisplayMember = "Name"; - this.lbRoles.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbRoles.FormattingEnabled = true; - this.lbRoles.ItemHeight = 16; - this.lbRoles.Location = new System.Drawing.Point(0, 0); - this.lbRoles.Name = "lbRoles"; - this.lbRoles.Size = new System.Drawing.Size(225, 548); - this.lbRoles.TabIndex = 0; - this.lbRoles.ValueMember = "Rid"; - this.lbRoles.SelectedValueChanged += new System.EventHandler(this.lbRole_SelectedValueChanged); - // - // roleInfoListBindingSource - // - this.roleInfoListBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.RoleInfo); - // - // tabControl1 - // - this.tabControl1.Controls.Add(this.tabPage1); - this.tabControl1.Controls.Add(this.tabPage2); - this.tabControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.tabControl1.Location = new System.Drawing.Point(0, 102); - this.tabControl1.Name = "tabControl1"; - this.tabControl1.SelectedIndex = 0; - this.tabControl1.Size = new System.Drawing.Size(634, 448); - this.tabControl1.TabIndex = 18; - // - // tabPage1 - // - this.tabPage1.Controls.Add(this.roleAssignmentsDataGridView); - this.tabPage1.Controls.Add(this.panel3); - this.tabPage1.Location = new System.Drawing.Point(4, 25); - this.tabPage1.Name = "tabPage1"; - this.tabPage1.Padding = new System.Windows.Forms.Padding(3); - this.tabPage1.Size = new System.Drawing.Size(626, 419); - this.tabPage1.TabIndex = 0; - this.tabPage1.Text = "Assignments"; - this.tabPage1.UseVisualStyleBackColor = true; - // - // roleAssignmentsDataGridView - // - this.roleAssignmentsDataGridView.AutoGenerateColumns = false; - this.roleAssignmentsDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.StartDate, - this.EndDate}); - this.roleAssignmentsDataGridView.DataSource = this.roleAssignmentsBindingSource; - this.roleAssignmentsDataGridView.Dock = System.Windows.Forms.DockStyle.Fill; - this.roleAssignmentsDataGridView.Location = new System.Drawing.Point(3, 35); - this.roleAssignmentsDataGridView.Name = "roleAssignmentsDataGridView"; - this.roleAssignmentsDataGridView.RowTemplate.Height = 24; - this.roleAssignmentsDataGridView.Size = new System.Drawing.Size(620, 381); - this.roleAssignmentsDataGridView.TabIndex = 18; - // - // StartDate - // - this.StartDate.DataPropertyName = "StartDate"; - this.StartDate.HeaderText = "StartDate"; - this.StartDate.Name = "StartDate"; - // - // EndDate - // - this.EndDate.DataPropertyName = "EndDate"; - this.EndDate.HeaderText = "EndDate"; - this.EndDate.Name = "EndDate"; - // - // roleAssignmentsBindingSource - // - this.roleAssignmentsBindingSource.CurrentItemChanged += new System.EventHandler(this.CurrentItemChanged); - // - // panel3 - // - this.panel3.AutoScroll = true; - this.panel3.Controls.Add(this.btnRemoveAssign); - this.panel3.Controls.Add(this.btnNewAssign); - this.panel3.Dock = System.Windows.Forms.DockStyle.Top; - this.panel3.Location = new System.Drawing.Point(3, 3); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(620, 32); - this.panel3.TabIndex = 19; - // - // btnRemoveAssign - // - this.btnRemoveAssign.AutoSize = true; - this.btnRemoveAssign.Dock = System.Windows.Forms.DockStyle.Left; - this.btnRemoveAssign.Location = new System.Drawing.Point(75, 0); - this.btnRemoveAssign.Name = "btnRemoveAssign"; - this.btnRemoveAssign.Size = new System.Drawing.Size(75, 32); - this.btnRemoveAssign.TabIndex = 20; - this.btnRemoveAssign.Text = "Remove"; - this.btnRemoveAssign.UseVisualStyleBackColor = true; - // - // btnNewAssign - // - this.btnNewAssign.AutoSize = true; - this.btnNewAssign.Dock = System.Windows.Forms.DockStyle.Left; - this.btnNewAssign.Location = new System.Drawing.Point(0, 0); - this.btnNewAssign.Name = "btnNewAssign"; - this.btnNewAssign.Size = new System.Drawing.Size(75, 32); - this.btnNewAssign.TabIndex = 19; - this.btnNewAssign.Text = "New"; - this.btnNewAssign.UseVisualStyleBackColor = true; - // - // tabPage2 - // - this.tabPage2.AutoScroll = true; - this.tabPage2.Controls.Add(this.rolePermissionsDataGridView); - this.tabPage2.Controls.Add(this.panel2); - this.tabPage2.Location = new System.Drawing.Point(4, 25); - this.tabPage2.Name = "tabPage2"; - this.tabPage2.Padding = new System.Windows.Forms.Padding(3); - this.tabPage2.Size = new System.Drawing.Size(626, 419); - this.tabPage2.TabIndex = 1; - this.tabPage2.Text = "Permissions"; - this.tabPage2.UseVisualStyleBackColor = true; - // - // rolePermissionsDataGridView - // - this.rolePermissionsDataGridView.AutoGenerateColumns = false; - this.rolePermissionsDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.Pid, - this.dataGridViewTextBoxColumn13, - this.dataGridViewTextBoxColumn19, - this.dataGridViewTextBoxColumn7, - this.dataGridViewCheckBoxColumn2, - this.dataGridViewCheckBoxColumn4, - this.dataGridViewCheckBoxColumn1, - this.dataGridViewCheckBoxColumn3, - this.dataGridViewTextBoxColumn16, - this.dataGridViewTextBoxColumn12}); - this.rolePermissionsDataGridView.DataSource = this.rolePermissionsBindingSource; - this.rolePermissionsDataGridView.Dock = System.Windows.Forms.DockStyle.Fill; - this.rolePermissionsDataGridView.Location = new System.Drawing.Point(3, 37); - this.rolePermissionsDataGridView.Name = "rolePermissionsDataGridView"; - this.rolePermissionsDataGridView.RowTemplate.Height = 24; - this.rolePermissionsDataGridView.Size = new System.Drawing.Size(620, 379); - this.rolePermissionsDataGridView.TabIndex = 20; - // - // Pid - // - this.Pid.DataPropertyName = "Pid"; - this.Pid.HeaderText = "Pid"; - this.Pid.MinimumWidth = 2; - this.Pid.Name = "Pid"; - this.Pid.ReadOnly = true; - this.Pid.Visible = false; - this.Pid.Width = 2; - // - // permADLookupBindingSource - // - this.permADLookupBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.vlnValueKey); - // - // dataGridViewTextBoxColumn13 - // - this.dataGridViewTextBoxColumn13.DataPropertyName = "VersionType"; - this.dataGridViewTextBoxColumn13.HeaderText = "VersionType"; - this.dataGridViewTextBoxColumn13.Name = "dataGridViewTextBoxColumn13"; - // - // dataGridViewTextBoxColumn19 - // - this.dataGridViewTextBoxColumn19.DataPropertyName = "PermLevel"; - this.dataGridViewTextBoxColumn19.HeaderText = "PermLevel"; - this.dataGridViewTextBoxColumn19.Name = "dataGridViewTextBoxColumn19"; - this.dataGridViewTextBoxColumn19.Resizable = System.Windows.Forms.DataGridViewTriState.True; - // - // dataGridViewTextBoxColumn7 - // - this.dataGridViewTextBoxColumn7.DataPropertyName = "PermValue"; - this.dataGridViewTextBoxColumn7.HeaderText = "PermValue"; - this.dataGridViewTextBoxColumn7.Name = "dataGridViewTextBoxColumn7"; - this.dataGridViewTextBoxColumn7.Visible = false; - // - // dataGridViewCheckBoxColumn2 - // - this.dataGridViewCheckBoxColumn2.DataPropertyName = "ReadAccess"; - this.dataGridViewCheckBoxColumn2.HeaderText = "R"; - this.dataGridViewCheckBoxColumn2.Name = "dataGridViewCheckBoxColumn2"; - this.dataGridViewCheckBoxColumn2.ToolTipText = "Read Access"; - this.dataGridViewCheckBoxColumn2.Width = 30; - // - // dataGridViewCheckBoxColumn4 - // - this.dataGridViewCheckBoxColumn4.DataPropertyName = "WriteAccess"; - this.dataGridViewCheckBoxColumn4.HeaderText = "W"; - this.dataGridViewCheckBoxColumn4.Name = "dataGridViewCheckBoxColumn4"; - this.dataGridViewCheckBoxColumn4.ToolTipText = "Write Access"; - this.dataGridViewCheckBoxColumn4.Width = 30; - // - // dataGridViewCheckBoxColumn1 - // - this.dataGridViewCheckBoxColumn1.DataPropertyName = "CreateAccess"; - this.dataGridViewCheckBoxColumn1.HeaderText = "C"; - this.dataGridViewCheckBoxColumn1.Name = "dataGridViewCheckBoxColumn1"; - this.dataGridViewCheckBoxColumn1.ToolTipText = "Create Access"; - this.dataGridViewCheckBoxColumn1.Width = 30; - // - // dataGridViewCheckBoxColumn3 - // - this.dataGridViewCheckBoxColumn3.DataPropertyName = "DeleteAccess"; - this.dataGridViewCheckBoxColumn3.HeaderText = "D"; - this.dataGridViewCheckBoxColumn3.Name = "dataGridViewCheckBoxColumn3"; - this.dataGridViewCheckBoxColumn3.ToolTipText = "Delete Access"; - this.dataGridViewCheckBoxColumn3.Width = 30; - // - // dataGridViewTextBoxColumn16 - // - this.dataGridViewTextBoxColumn16.DataPropertyName = "EndDate"; - this.dataGridViewTextBoxColumn16.HeaderText = "EndDate"; - this.dataGridViewTextBoxColumn16.Name = "dataGridViewTextBoxColumn16"; - // - // dataGridViewTextBoxColumn12 - // - this.dataGridViewTextBoxColumn12.DataPropertyName = "StartDate"; - this.dataGridViewTextBoxColumn12.HeaderText = "StartDate"; - this.dataGridViewTextBoxColumn12.Name = "dataGridViewTextBoxColumn12"; - // - // rolePermissionsBindingSource - // - this.rolePermissionsBindingSource.DataMember = "RolePermissions"; - this.rolePermissionsBindingSource.DataSource = this.roleBindingSource; - this.rolePermissionsBindingSource.CurrentItemChanged += new System.EventHandler(this.CurrentItemChanged); - // - // roleBindingSource - // - this.roleBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.Role); - this.roleBindingSource.CurrentItemChanged += new System.EventHandler(this.CurrentItemChanged); - // - // panel2 - // - this.panel2.Controls.Add(this.button1); - this.panel2.Controls.Add(this.btnNewPermission); - this.panel2.Dock = System.Windows.Forms.DockStyle.Top; - this.panel2.Location = new System.Drawing.Point(3, 3); - this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(620, 34); - this.panel2.TabIndex = 20; - // - // button1 - // - this.button1.AutoSize = true; - this.button1.Dock = System.Windows.Forms.DockStyle.Left; - this.button1.Location = new System.Drawing.Point(75, 0); - this.button1.Name = "button1"; - this.button1.Size = new System.Drawing.Size(75, 34); - this.button1.TabIndex = 20; - this.button1.Text = "Remove"; - this.button1.UseVisualStyleBackColor = true; - // - // btnNewPermission - // - this.btnNewPermission.AutoSize = true; - this.btnNewPermission.Dock = System.Windows.Forms.DockStyle.Left; - this.btnNewPermission.Location = new System.Drawing.Point(0, 0); - this.btnNewPermission.Name = "btnNewPermission"; - this.btnNewPermission.Size = new System.Drawing.Size(75, 34); - this.btnNewPermission.TabIndex = 19; - this.btnNewPermission.Text = "New"; - this.btnNewPermission.UseVisualStyleBackColor = true; - this.btnNewPermission.Click += new System.EventHandler(this.btnNewPermission_Click); - // - // panel1 - // - this.panel1.AutoScroll = true; - this.panel1.Controls.Add(nameLabel); - this.panel1.Controls.Add(this.nameTextBox); - this.panel1.Controls.Add(this.ridTextBox); - this.panel1.Controls.Add(titleLabel); - this.panel1.Controls.Add(this.titleTextBox); - this.panel1.Controls.Add(this.btnNew); - this.panel1.Controls.Add(this.btnCancel); - this.panel1.Controls.Add(this.btnSave); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 0); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(634, 102); - this.panel1.TabIndex = 19; - // - // nameTextBox - // - this.nameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.roleBindingSource, "Name", true)); - this.nameTextBox.Location = new System.Drawing.Point(124, 6); - this.nameTextBox.Name = "nameTextBox"; - this.nameTextBox.Size = new System.Drawing.Size(417, 22); - this.nameTextBox.TabIndex = 22; - // - // ridTextBox - // - this.ridTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.roleBindingSource, "Rid", true)); - this.ridTextBox.Enabled = false; - this.ridTextBox.Location = new System.Drawing.Point(7, 5); - this.ridTextBox.Name = "ridTextBox"; - this.ridTextBox.Size = new System.Drawing.Size(47, 22); - this.ridTextBox.TabIndex = 23; - // - // titleTextBox - // - this.titleTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.roleBindingSource, "Title", true)); - this.titleTextBox.Location = new System.Drawing.Point(61, 35); - this.titleTextBox.Multiline = true; - this.titleTextBox.Name = "titleTextBox"; - this.titleTextBox.Size = new System.Drawing.Size(480, 51); - this.titleTextBox.TabIndex = 25; - // - // btnNew - // - this.btnNew.Location = new System.Drawing.Point(547, 62); - this.btnNew.Name = "btnNew"; - this.btnNew.Size = new System.Drawing.Size(75, 23); - this.btnNew.TabIndex = 20; - this.btnNew.Text = "New"; - this.btnNew.UseVisualStyleBackColor = true; - this.btnNew.Click += new System.EventHandler(this.btnNew_Click); - // - // btnCancel - // - this.btnCancel.Location = new System.Drawing.Point(547, 33); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 19; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnSave - // - this.btnSave.Location = new System.Drawing.Point(547, 4); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(75, 23); - this.btnSave.TabIndex = 18; - this.btnSave.Text = "Save"; - this.btnSave.UseVisualStyleBackColor = true; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // dataGridViewTextBoxColumn10 - // - this.dataGridViewTextBoxColumn10.DataPropertyName = "Pid"; - this.dataGridViewTextBoxColumn10.HeaderText = "Pid"; - this.dataGridViewTextBoxColumn10.Name = "dataGridViewTextBoxColumn10"; - this.dataGridViewTextBoxColumn10.ReadOnly = true; - this.dataGridViewTextBoxColumn10.Visible = false; - // - // errorProvider1 - // - this.errorProvider1.ContainerControl = this; - this.errorProvider1.DataSource = this.roleBindingSource; - // - // frmRoles - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(863, 550); - this.Controls.Add(this.splitContainer1); - this.Name = "frmRoles"; - this.Text = "Roles"; - this.Load += new System.EventHandler(this.frmRoles_Load); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BeforeFormClosing); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.roleInfoListBindingSource)).EndInit(); - this.tabControl1.ResumeLayout(false); - this.tabPage1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.roleAssignmentsDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.roleAssignmentsBindingSource)).EndInit(); - this.panel3.ResumeLayout(false); - this.panel3.PerformLayout(); - this.tabPage2.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.rolePermissionsDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.permADLookupBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.rolePermissionsBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.roleBindingSource)).EndInit(); - this.panel2.ResumeLayout(false); - this.panel2.PerformLayout(); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.ListBox lbRoles; - private System.Windows.Forms.BindingSource roleInfoListBindingSource; - private System.Windows.Forms.BindingSource roleAssignmentsBindingSource; - private System.Windows.Forms.BindingSource roleBindingSource; - private System.Windows.Forms.TabControl tabControl1; - private System.Windows.Forms.TabPage tabPage1; - private System.Windows.Forms.DataGridView roleAssignmentsDataGridView; - private System.Windows.Forms.DataGridViewTextBoxColumn StartDate; - private System.Windows.Forms.DataGridViewTextBoxColumn EndDate; - private System.Windows.Forms.TabPage tabPage2; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.TextBox nameTextBox; - private System.Windows.Forms.TextBox ridTextBox; - private System.Windows.Forms.TextBox titleTextBox; - private System.Windows.Forms.Button btnNew; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnSave; - private System.Windows.Forms.Panel panel3; - private System.Windows.Forms.Button btnRemoveAssign; - private System.Windows.Forms.Button btnNewAssign; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn10; - private System.Windows.Forms.Panel panel2; - private System.Windows.Forms.Button button1; - private System.Windows.Forms.Button btnNewPermission; - private System.Windows.Forms.DataGridView rolePermissionsDataGridView; - private System.Windows.Forms.BindingSource rolePermissionsBindingSource; - private System.Windows.Forms.ErrorProvider errorProvider1; - private System.Windows.Forms.BindingSource permADLookupBindingSource; - private System.Windows.Forms.DataGridViewTextBoxColumn Pid; - private System.Windows.Forms.DataGridViewComboBoxColumn dataGridViewTextBoxColumn15; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn13; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn19; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn7; - private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn2; - private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn4; - private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn1; - private System.Windows.Forms.DataGridViewCheckBoxColumn dataGridViewCheckBoxColumn3; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn16; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn12; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmRoles.cs b/PROMS/VEPROMS_Security/WinApp/frmRoles.cs deleted file mode 100644 index 1d3c2c2b..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmRoles.cs +++ /dev/null @@ -1,211 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; - -namespace WinApp -{ - public partial class frmRoles : Form - { - Role _role; - private PermLookup _pl=new PermLookup(); - public frmRoles() - { - InitializeComponent(); - roleInfoListBindingSource.DataSource = RoleInfoList.Get(); - permADLookupBindingSource.DataSource = _pl.PermADLookup; - SetupDetail(); - SetupButtons(); - } - private DialogResult SaveAsNeeded() - { - if (_role != null && _role.IsSavable) - { - DialogResult dr = MessageBox.Show("Do you want to save changes", "Save Changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) Save(); - if (dr == DialogResult.No) Cancel(); - // TODO: Need a Cancel - return dr; - } - return DialogResult.Yes; - } - private void SetupDetail() - { - if (lbRoles.SelectedValue != null) - { - int rid = (int)lbRoles.SelectedValue; - if (_role == null || _role.RID != rid) - { - if (SaveAsNeeded() != DialogResult.Cancel) - { - _role = Role.Get(rid); - roleBindingSource.DataSource = _role; - roleAssignmentsBindingSource.DataSource = _role.RoleAssignments; - rolePermissionsBindingSource.DataSource = _role.RolePermissions; - } - } - } - } - private void lbRole_SelectedValueChanged(object sender, EventArgs e) - { - SetupDetail(); - } - private void SetupButtons() - { - if (_role != null) - { - btnSave.Enabled = _role.IsSavable; - btnCancel.Enabled = _role.IsDirty; - btnNew.Enabled = _role.IsValid; - } - else - { - btnSave.Enabled = false; - btnCancel.Enabled = false; - btnNew.Enabled = true; - } - } - private void CurrentItemChanged(object sender, EventArgs e) - { - SetupButtons(); - } - private void btnCancel_Click(object sender, EventArgs e) - { - Cancel(); - } - private void btnSave_Click(object sender, EventArgs e) - { - Save(); - } - private void btnNew_Click(object sender, EventArgs e) - { - New(); - } - private void Cancel() - { - _role.CancelEdit(); - _role.BeginEdit(); - } - private void Save() - { - roleBindingSource.RaiseListChangedEvents = false; - roleAssignmentsBindingSource.RaiseListChangedEvents = false; - rolePermissionsBindingSource.RaiseListChangedEvents = false; - roleBindingSource.EndEdit(); - roleAssignmentsBindingSource.EndEdit(); - rolePermissionsBindingSource.EndEdit(); - try - { - Role temp = _role.Clone(); - _role = temp.Save(); - _role.BeginEdit(); - roleBindingSource.DataSource = null; - roleAssignmentsBindingSource.DataSource = null; - rolePermissionsBindingSource.DataSource = null; - int rid = _role.RID; - roleInfoListBindingSource.DataSource = RoleInfoList.Get(); - if (lbRoles.SelectedIndex == -1) - lbRoles.SelectedValue = rid; - roleBindingSource.DataSource = _role; - roleAssignmentsBindingSource.DataSource = _role.RoleAssignments; - rolePermissionsBindingSource.DataSource = _role.RolePermissions; - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), "Error saving", - MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - finally - { - roleBindingSource.RaiseListChangedEvents = true; - roleAssignmentsBindingSource.RaiseListChangedEvents = true; - rolePermissionsBindingSource.RaiseListChangedEvents = true; - roleBindingSource.ResetBindings(false); - roleAssignmentsBindingSource.ResetBindings(false); - rolePermissionsBindingSource.ResetBindings(false); - } - SetupButtons(); - } - public void New() - { - if (SaveAsNeeded() != DialogResult.Cancel) - { - _role = Role.New(); - roleBindingSource.DataSource = _role; - roleAssignmentsBindingSource.DataSource = _role.RoleAssignments; - rolePermissionsBindingSource.DataSource = _role.RolePermissions; - } - } - - private void BeforeFormClosing(object sender, FormClosingEventArgs e) - { - e.Cancel = (SaveAsNeeded() == DialogResult.Cancel); - } - - private void btnNewPermission_Click(object sender, EventArgs e) - { - _role.RolePermissions.Add(RolePermission.New()); - } - - private void frmRoles_Load(object sender, EventArgs e) - { - - } - //private void btnNewGA_Click(object sender, EventArgs e) - //{ - // using (frmUserSelect f = new frmUserSelect()) - // { - // f.ShowDialog(); - // if (f.DialogResult == DialogResult.OK) - // { - // _group.GroupMemberships.Add(f.UID); - // SetupButtons(); - // } - // } - //} - //private void btnRemoveGA_Click(object sender, EventArgs e) - //{ - // if (this.groupMembershipsDataGridView.SelectedRows.Count > 0) - // { - // int uid = int.Parse( - // this.groupMembershipsDataGridView.SelectedRows[0].Cells[0].Value.ToString()); - // _group.GroupMemberships.Remove(uid); - // } - //} - - //private void btnRemoveAssign_Click(object sender, EventArgs e) - //{ - // if (this.groupPermissionsDataGridView.SelectedRows.Count > 0) - // { - // int folderid = int.Parse( - // this.groupMembershipsDataGridView.SelectedRows[1].Cells[0].Value.ToString()); - // int rid = int.Parse( - // this.groupMembershipsDataGridView.SelectedRows[2].Cells[0].Value.ToString()); - // _group.GroupAssignments.Remove(folderid, rid); - // } - - //} - - //private void btnNewAssign_Click(object sender, EventArgs e) - //{ - // using (frmAssignmentSelect f = new frmAssignmentSelect(_group)) - // { - // f.ShowDialog(); - // if (f.DialogResult == DialogResult.OK) - // { - // //TODO: Do I need to refresh Assignments? - // } - // } - //} - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmRoles.resx b/PROMS/VEPROMS_Security/WinApp/frmRoles.resx deleted file mode 100644 index 46a2cb45..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmRoles.resx +++ /dev/null @@ -1,153 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - False - - - 17, 57 - - - True - - - True - - - 269, 17 - - - True - - - 515, 17 - - - 54, 18 - - - 231, 57 - - - 756, 17 - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmUser.Designer.cs b/PROMS/VEPROMS_Security/WinApp/frmUser.Designer.cs deleted file mode 100644 index 6590e450..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmUser.Designer.cs +++ /dev/null @@ -1,574 +0,0 @@ -namespace WinApp -{ - partial class frmUser - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.Label cfgNameLabel; - System.Windows.Forms.Label configLabel; - System.Windows.Forms.Label courtesyTitleLabel; - System.Windows.Forms.Label firstNameLabel; - System.Windows.Forms.Label lastNameLabel; - System.Windows.Forms.Label middleNameLabel; - System.Windows.Forms.Label phoneNumberLabel; - System.Windows.Forms.Label suffixLabel; - System.Windows.Forms.Label userLoginLabel; - System.Windows.Forms.Label userNameLabel; - System.Windows.Forms.Label useridLabel; - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.lbUsers = new System.Windows.Forms.ListBox(); - this.userInfoListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.btnPop = new System.Windows.Forms.Button(); - this.btnStack = new System.Windows.Forms.Button(); - this.useridTextBox = new System.Windows.Forms.TextBox(); - this.userBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.btnRemoveGA = new System.Windows.Forms.Button(); - this.btnNewGA = new System.Windows.Forms.Button(); - this.btnGroups = new System.Windows.Forms.Button(); - this.btnNew = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnSave = new System.Windows.Forms.Button(); - this.userMembershipsDataGridView = new System.Windows.Forms.DataGridView(); - this.Gid = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Group_GroupName = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn8 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.dataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.userMembershipsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.cfgNameTextBox = new System.Windows.Forms.TextBox(); - this.configTextBox = new System.Windows.Forms.TextBox(); - this.courtesyTitleTextBox = new System.Windows.Forms.TextBox(); - this.firstNameTextBox = new System.Windows.Forms.TextBox(); - this.lastNameTextBox = new System.Windows.Forms.TextBox(); - this.middleNameTextBox = new System.Windows.Forms.TextBox(); - this.phoneNumberTextBox = new System.Windows.Forms.TextBox(); - this.suffixTextBox = new System.Windows.Forms.TextBox(); - this.uidTextBox = new System.Windows.Forms.TextBox(); - this.userLoginTextBox = new System.Windows.Forms.TextBox(); - this.userNameTextBox = new System.Windows.Forms.TextBox(); - this.groupInfoListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.errorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); - cfgNameLabel = new System.Windows.Forms.Label(); - configLabel = new System.Windows.Forms.Label(); - courtesyTitleLabel = new System.Windows.Forms.Label(); - firstNameLabel = new System.Windows.Forms.Label(); - lastNameLabel = new System.Windows.Forms.Label(); - middleNameLabel = new System.Windows.Forms.Label(); - phoneNumberLabel = new System.Windows.Forms.Label(); - suffixLabel = new System.Windows.Forms.Label(); - userLoginLabel = new System.Windows.Forms.Label(); - userNameLabel = new System.Windows.Forms.Label(); - useridLabel = new System.Windows.Forms.Label(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.userInfoListBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.userBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.userMembershipsDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.userMembershipsBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupInfoListBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).BeginInit(); - this.SuspendLayout(); - // - // cfgNameLabel - // - cfgNameLabel.AutoSize = true; - cfgNameLabel.Location = new System.Drawing.Point(252, 45); - cfgNameLabel.Name = "cfgNameLabel"; - cfgNameLabel.Size = new System.Drawing.Size(74, 17); - cfgNameLabel.TabIndex = 0; - cfgNameLabel.Text = "Cfg Name:"; - // - // configLabel - // - configLabel.AutoSize = true; - configLabel.Location = new System.Drawing.Point(35, 158); - configLabel.Name = "configLabel"; - configLabel.Size = new System.Drawing.Size(52, 17); - configLabel.TabIndex = 2; - configLabel.Text = "Config:"; - // - // courtesyTitleLabel - // - courtesyTitleLabel.AutoSize = true; - courtesyTitleLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - courtesyTitleLabel.Location = new System.Drawing.Point(35, 103); - courtesyTitleLabel.Name = "courtesyTitleLabel"; - courtesyTitleLabel.Size = new System.Drawing.Size(35, 17); - courtesyTitleLabel.TabIndex = 4; - courtesyTitleLabel.Text = "Title"; - // - // firstNameLabel - // - firstNameLabel.AutoSize = true; - firstNameLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - firstNameLabel.Location = new System.Drawing.Point(77, 103); - firstNameLabel.Name = "firstNameLabel"; - firstNameLabel.Size = new System.Drawing.Size(35, 17); - firstNameLabel.TabIndex = 8; - firstNameLabel.Text = "First"; - // - // lastNameLabel - // - lastNameLabel.AutoSize = true; - lastNameLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - lastNameLabel.Location = new System.Drawing.Point(289, 103); - lastNameLabel.Name = "lastNameLabel"; - lastNameLabel.Size = new System.Drawing.Size(35, 17); - lastNameLabel.TabIndex = 10; - lastNameLabel.Text = "Last"; - // - // middleNameLabel - // - middleNameLabel.AutoSize = true; - middleNameLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - middleNameLabel.Location = new System.Drawing.Point(183, 103); - middleNameLabel.Name = "middleNameLabel"; - middleNameLabel.Size = new System.Drawing.Size(49, 17); - middleNameLabel.TabIndex = 12; - middleNameLabel.Text = "Middle"; - // - // phoneNumberLabel - // - phoneNumberLabel.AutoSize = true; - phoneNumberLabel.Location = new System.Drawing.Point(252, 17); - phoneNumberLabel.Name = "phoneNumberLabel"; - phoneNumberLabel.Size = new System.Drawing.Size(107, 17); - phoneNumberLabel.TabIndex = 14; - phoneNumberLabel.Text = "Phone Number:"; - // - // suffixLabel - // - suffixLabel.AutoSize = true; - suffixLabel.Font = new System.Drawing.Font("Microsoft Sans Serif", 7.8F, System.Drawing.FontStyle.Italic, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - suffixLabel.Location = new System.Drawing.Point(395, 103); - suffixLabel.Name = "suffixLabel"; - suffixLabel.Size = new System.Drawing.Size(46, 17); - suffixLabel.TabIndex = 16; - suffixLabel.Text = "Suffix:"; - // - // userLoginLabel - // - userLoginLabel.AutoSize = true; - userLoginLabel.Location = new System.Drawing.Point(35, 17); - userLoginLabel.Name = "userLoginLabel"; - userLoginLabel.Size = new System.Drawing.Size(81, 17); - userLoginLabel.TabIndex = 24; - userLoginLabel.Text = "User Login:"; - // - // userNameLabel - // - userNameLabel.AutoSize = true; - userNameLabel.Location = new System.Drawing.Point(35, 45); - userNameLabel.Name = "userNameLabel"; - userNameLabel.Size = new System.Drawing.Size(83, 17); - userNameLabel.TabIndex = 26; - userNameLabel.Text = "User Name:"; - // - // useridLabel - // - useridLabel.AutoSize = true; - useridLabel.Location = new System.Drawing.Point(178, 133); - useridLabel.Name = "useridLabel"; - useridLabel.Size = new System.Drawing.Size(53, 17); - useridLabel.TabIndex = 35; - useridLabel.Text = "Userid:"; - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 0); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.lbUsers); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.AutoScroll = true; - this.splitContainer1.Panel2.Controls.Add(this.btnPop); - this.splitContainer1.Panel2.Controls.Add(this.btnStack); - this.splitContainer1.Panel2.Controls.Add(useridLabel); - this.splitContainer1.Panel2.Controls.Add(this.useridTextBox); - this.splitContainer1.Panel2.Controls.Add(this.btnRemoveGA); - this.splitContainer1.Panel2.Controls.Add(this.btnNewGA); - this.splitContainer1.Panel2.Controls.Add(this.btnGroups); - this.splitContainer1.Panel2.Controls.Add(this.btnNew); - this.splitContainer1.Panel2.Controls.Add(this.btnCancel); - this.splitContainer1.Panel2.Controls.Add(this.btnSave); - this.splitContainer1.Panel2.Controls.Add(this.userMembershipsDataGridView); - this.splitContainer1.Panel2.Controls.Add(cfgNameLabel); - this.splitContainer1.Panel2.Controls.Add(this.cfgNameTextBox); - this.splitContainer1.Panel2.Controls.Add(configLabel); - this.splitContainer1.Panel2.Controls.Add(this.configTextBox); - this.splitContainer1.Panel2.Controls.Add(courtesyTitleLabel); - this.splitContainer1.Panel2.Controls.Add(this.courtesyTitleTextBox); - this.splitContainer1.Panel2.Controls.Add(firstNameLabel); - this.splitContainer1.Panel2.Controls.Add(this.firstNameTextBox); - this.splitContainer1.Panel2.Controls.Add(lastNameLabel); - this.splitContainer1.Panel2.Controls.Add(this.lastNameTextBox); - this.splitContainer1.Panel2.Controls.Add(middleNameLabel); - this.splitContainer1.Panel2.Controls.Add(this.middleNameTextBox); - this.splitContainer1.Panel2.Controls.Add(phoneNumberLabel); - this.splitContainer1.Panel2.Controls.Add(this.phoneNumberTextBox); - this.splitContainer1.Panel2.Controls.Add(suffixLabel); - this.splitContainer1.Panel2.Controls.Add(this.suffixTextBox); - this.splitContainer1.Panel2.Controls.Add(this.uidTextBox); - this.splitContainer1.Panel2.Controls.Add(userLoginLabel); - this.splitContainer1.Panel2.Controls.Add(this.userLoginTextBox); - this.splitContainer1.Panel2.Controls.Add(userNameLabel); - this.splitContainer1.Panel2.Controls.Add(this.userNameTextBox); - this.splitContainer1.Size = new System.Drawing.Size(841, 462); - this.splitContainer1.SplitterDistance = 280; - this.splitContainer1.TabIndex = 0; - // - // lbUsers - // - this.lbUsers.DataSource = this.userInfoListBindingSource; - this.lbUsers.DisplayMember = "FullName"; - this.lbUsers.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbUsers.FormattingEnabled = true; - this.lbUsers.ItemHeight = 16; - this.lbUsers.Location = new System.Drawing.Point(0, 0); - this.lbUsers.Name = "lbUsers"; - this.lbUsers.Size = new System.Drawing.Size(280, 452); - this.lbUsers.TabIndex = 0; - this.lbUsers.ValueMember = "Uid"; - this.lbUsers.SelectedValueChanged += new System.EventHandler(this.lbUser_SelectedValueChanged); - // - // userInfoListBindingSource - // - this.userInfoListBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.UserInfo); - // - // btnPop - // - this.btnPop.Location = new System.Drawing.Point(470, 127); - this.btnPop.Name = "btnPop"; - this.btnPop.Size = new System.Drawing.Size(75, 23); - this.btnPop.TabIndex = 38; - this.btnPop.Text = "Push"; - this.btnPop.UseVisualStyleBackColor = true; - this.btnPop.Click += new System.EventHandler(this.btnPop_Click); - // - // btnStack - // - this.btnStack.Location = new System.Drawing.Point(471, 100); - this.btnStack.Name = "btnStack"; - this.btnStack.Size = new System.Drawing.Size(75, 23); - this.btnStack.TabIndex = 37; - this.btnStack.Text = "Push"; - this.btnStack.UseVisualStyleBackColor = true; - this.btnStack.Click += new System.EventHandler(this.btnStack_Click); - // - // useridTextBox - // - this.useridTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "Userid", true)); - this.useridTextBox.Location = new System.Drawing.Point(237, 130); - this.useridTextBox.Name = "useridTextBox"; - this.useridTextBox.Size = new System.Drawing.Size(100, 22); - this.useridTextBox.TabIndex = 36; - // - // userBindingSource - // - this.userBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.User); - this.userBindingSource.CurrentItemChanged += new System.EventHandler(this.CurrentItemChanged); - // - // btnRemoveGA - // - this.btnRemoveGA.Location = new System.Drawing.Point(177, 227); - this.btnRemoveGA.Name = "btnRemoveGA"; - this.btnRemoveGA.Size = new System.Drawing.Size(149, 23); - this.btnRemoveGA.TabIndex = 35; - this.btnRemoveGA.TabStop = false; - this.btnRemoveGA.Text = "Remove Membership"; - this.btnRemoveGA.UseVisualStyleBackColor = true; - this.btnRemoveGA.Click += new System.EventHandler(this.btnRemoveGA_Click); - // - // btnNewGA - // - this.btnNewGA.Location = new System.Drawing.Point(38, 227); - this.btnNewGA.Name = "btnNewGA"; - this.btnNewGA.Size = new System.Drawing.Size(133, 23); - this.btnNewGA.TabIndex = 34; - this.btnNewGA.TabStop = false; - this.btnNewGA.Text = "New Membership"; - this.btnNewGA.UseVisualStyleBackColor = true; - this.btnNewGA.Click += new System.EventHandler(this.btnNewGA_Click); - // - // btnGroups - // - this.btnGroups.Location = new System.Drawing.Point(423, 227); - this.btnGroups.Name = "btnGroups"; - this.btnGroups.Size = new System.Drawing.Size(100, 23); - this.btnGroups.TabIndex = 33; - this.btnGroups.TabStop = false; - this.btnGroups.Text = "Group Edit"; - this.btnGroups.UseVisualStyleBackColor = true; - this.btnGroups.Click += new System.EventHandler(this.btnGroups_Click); - // - // btnNew - // - this.btnNew.Location = new System.Drawing.Point(471, 72); - this.btnNew.Name = "btnNew"; - this.btnNew.Size = new System.Drawing.Size(75, 23); - this.btnNew.TabIndex = 30; - this.btnNew.Text = "New"; - this.btnNew.UseVisualStyleBackColor = true; - this.btnNew.Click += new System.EventHandler(this.btnNewGA_Click); - // - // btnCancel - // - this.btnCancel.Location = new System.Drawing.Point(471, 43); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 29; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnSave - // - this.btnSave.Location = new System.Drawing.Point(471, 14); - this.btnSave.Name = "btnSave"; - this.btnSave.Size = new System.Drawing.Size(75, 23); - this.btnSave.TabIndex = 28; - this.btnSave.Text = "Save"; - this.btnSave.UseVisualStyleBackColor = true; - this.btnSave.Click += new System.EventHandler(this.btnSave_Click); - // - // userMembershipsDataGridView - // - this.userMembershipsDataGridView.AllowUserToAddRows = false; - this.userMembershipsDataGridView.AllowUserToDeleteRows = false; - this.userMembershipsDataGridView.AutoGenerateColumns = false; - this.userMembershipsDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.Gid, - this.Group_GroupName, - this.dataGridViewTextBoxColumn8, - this.dataGridViewTextBoxColumn4}); - this.userMembershipsDataGridView.DataSource = this.userMembershipsBindingSource; - this.userMembershipsDataGridView.Location = new System.Drawing.Point(38, 256); - this.userMembershipsDataGridView.Name = "userMembershipsDataGridView"; - this.userMembershipsDataGridView.RowTemplate.Height = 24; - this.userMembershipsDataGridView.Size = new System.Drawing.Size(485, 157); - this.userMembershipsDataGridView.TabIndex = 27; - this.userMembershipsDataGridView.SelectionChanged += new System.EventHandler(this.userMembershipsDataGridView_SelectionChanged); - // - // Gid - // - this.Gid.DataPropertyName = "Gid"; - this.Gid.HeaderText = "Gid"; - this.Gid.Name = "Gid"; - this.Gid.Visible = false; - // - // Group_GroupName - // - this.Group_GroupName.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill; - this.Group_GroupName.DataPropertyName = "Group_GroupName"; - this.Group_GroupName.HeaderText = "Group"; - this.Group_GroupName.Name = "Group_GroupName"; - this.Group_GroupName.ReadOnly = true; - // - // dataGridViewTextBoxColumn8 - // - this.dataGridViewTextBoxColumn8.DataPropertyName = "StartDate"; - this.dataGridViewTextBoxColumn8.HeaderText = "StartDate"; - this.dataGridViewTextBoxColumn8.Name = "dataGridViewTextBoxColumn8"; - // - // dataGridViewTextBoxColumn4 - // - this.dataGridViewTextBoxColumn4.DataPropertyName = "EndDate"; - this.dataGridViewTextBoxColumn4.HeaderText = "EndDate"; - this.dataGridViewTextBoxColumn4.Name = "dataGridViewTextBoxColumn4"; - // - // userMembershipsBindingSource - // - this.userMembershipsBindingSource.DataMember = "UserMemberships"; - this.userMembershipsBindingSource.DataSource = this.userBindingSource; - this.userMembershipsBindingSource.CurrentItemChanged += new System.EventHandler(this.CurrentItemChanged); - // - // cfgNameTextBox - // - this.cfgNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "CfgName", true)); - this.cfgNameTextBox.Location = new System.Drawing.Point(365, 42); - this.cfgNameTextBox.Name = "cfgNameTextBox"; - this.cfgNameTextBox.Size = new System.Drawing.Size(100, 22); - this.cfgNameTextBox.TabIndex = 1; - // - // configTextBox - // - this.configTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "Config", true)); - this.configTextBox.Location = new System.Drawing.Point(93, 158); - this.configTextBox.Multiline = true; - this.configTextBox.Name = "configTextBox"; - this.configTextBox.Size = new System.Drawing.Size(430, 63); - this.configTextBox.TabIndex = 3; - // - // courtesyTitleTextBox - // - this.courtesyTitleTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "CourtesyTitle", true)); - this.courtesyTitleTextBox.Location = new System.Drawing.Point(38, 78); - this.courtesyTitleTextBox.Name = "courtesyTitleTextBox"; - this.courtesyTitleTextBox.Size = new System.Drawing.Size(36, 22); - this.courtesyTitleTextBox.TabIndex = 5; - // - // firstNameTextBox - // - this.firstNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "FirstName", true)); - this.firstNameTextBox.Location = new System.Drawing.Point(80, 78); - this.firstNameTextBox.Name = "firstNameTextBox"; - this.firstNameTextBox.Size = new System.Drawing.Size(100, 22); - this.firstNameTextBox.TabIndex = 9; - // - // lastNameTextBox - // - this.lastNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "LastName", true)); - this.lastNameTextBox.Location = new System.Drawing.Point(292, 78); - this.lastNameTextBox.Name = "lastNameTextBox"; - this.lastNameTextBox.Size = new System.Drawing.Size(100, 22); - this.lastNameTextBox.TabIndex = 11; - // - // middleNameTextBox - // - this.middleNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "MiddleName", true)); - this.middleNameTextBox.Location = new System.Drawing.Point(186, 78); - this.middleNameTextBox.Name = "middleNameTextBox"; - this.middleNameTextBox.Size = new System.Drawing.Size(100, 22); - this.middleNameTextBox.TabIndex = 13; - // - // phoneNumberTextBox - // - this.phoneNumberTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "PhoneNumber", true)); - this.phoneNumberTextBox.Location = new System.Drawing.Point(365, 14); - this.phoneNumberTextBox.Name = "phoneNumberTextBox"; - this.phoneNumberTextBox.Size = new System.Drawing.Size(100, 22); - this.phoneNumberTextBox.TabIndex = 15; - // - // suffixTextBox - // - this.suffixTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "Suffix", true)); - this.suffixTextBox.Location = new System.Drawing.Point(398, 78); - this.suffixTextBox.Name = "suffixTextBox"; - this.suffixTextBox.Size = new System.Drawing.Size(38, 22); - this.suffixTextBox.TabIndex = 17; - // - // uidTextBox - // - this.uidTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "Uid", true)); - this.uidTextBox.Enabled = false; - this.uidTextBox.Location = new System.Drawing.Point(3, 3); - this.uidTextBox.Name = "uidTextBox"; - this.uidTextBox.Size = new System.Drawing.Size(33, 22); - this.uidTextBox.TabIndex = 19; - // - // userLoginTextBox - // - this.userLoginTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "UserLogin", true)); - this.userLoginTextBox.Location = new System.Drawing.Point(148, 12); - this.userLoginTextBox.Name = "userLoginTextBox"; - this.userLoginTextBox.Size = new System.Drawing.Size(100, 22); - this.userLoginTextBox.TabIndex = 25; - // - // userNameTextBox - // - this.userNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.userBindingSource, "UserName", true)); - this.userNameTextBox.Location = new System.Drawing.Point(148, 42); - this.userNameTextBox.Name = "userNameTextBox"; - this.userNameTextBox.Size = new System.Drawing.Size(100, 22); - this.userNameTextBox.TabIndex = 27; - // - // groupInfoListBindingSource - // - this.groupInfoListBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.GroupInfo); - // - // errorProvider1 - // - this.errorProvider1.ContainerControl = this; - this.errorProvider1.DataSource = this.userBindingSource; - // - // frmUser - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(841, 462); - this.Controls.Add(this.splitContainer1); - this.Name = "frmUser"; - this.Text = "Users"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.BeforeFormClosing); - this.Load += new System.EventHandler(this.frmUser_Load); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.Panel2.PerformLayout(); - this.splitContainer1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.userInfoListBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.userBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.userMembershipsDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.userMembershipsBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.groupInfoListBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.errorProvider1)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.ListBox lbUsers; - private System.Windows.Forms.BindingSource userInfoListBindingSource; - private System.Windows.Forms.TextBox cfgNameTextBox; - private System.Windows.Forms.BindingSource userBindingSource; - private System.Windows.Forms.TextBox configTextBox; - private System.Windows.Forms.TextBox courtesyTitleTextBox; - private System.Windows.Forms.TextBox firstNameTextBox; - private System.Windows.Forms.TextBox lastNameTextBox; - private System.Windows.Forms.TextBox middleNameTextBox; - private System.Windows.Forms.TextBox phoneNumberTextBox; - private System.Windows.Forms.TextBox suffixTextBox; - private System.Windows.Forms.TextBox uidTextBox; - private System.Windows.Forms.TextBox userLoginTextBox; - private System.Windows.Forms.TextBox userNameTextBox; - private System.Windows.Forms.DataGridView userMembershipsDataGridView; - private System.Windows.Forms.BindingSource groupInfoListBindingSource; - private System.Windows.Forms.BindingSource userMembershipsBindingSource; - private System.Windows.Forms.Button btnRemoveGA; - private System.Windows.Forms.Button btnNewGA; - private System.Windows.Forms.Button btnGroups; - private System.Windows.Forms.Button btnNew; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnSave; - private System.Windows.Forms.ErrorProvider errorProvider1; - private System.Windows.Forms.TextBox useridTextBox; - private System.Windows.Forms.DataGridViewTextBoxColumn Gid; - private System.Windows.Forms.DataGridViewTextBoxColumn Group_GroupName; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn8; - private System.Windows.Forms.DataGridViewTextBoxColumn dataGridViewTextBoxColumn4; - private System.Windows.Forms.Button btnStack; - private System.Windows.Forms.Button btnPop; - } -} - diff --git a/PROMS/VEPROMS_Security/WinApp/frmUser.cs b/PROMS/VEPROMS_Security/WinApp/frmUser.cs deleted file mode 100644 index 6002fd8c..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmUser.cs +++ /dev/null @@ -1,216 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; - -[assembly: log4net.Config.XmlConfigurator(Watch = true)] - -namespace WinApp -{ - public partial class frmUser : Form - { - public frmUser() - { - InitializeComponent(); - } - private static readonly log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private void BeforeFormClosing(object sender, FormClosingEventArgs e) - { - e.Cancel = (SaveAsNeeded() == DialogResult.Cancel); - } - private User _user; - private GroupInfoList _gil=GroupInfoList.Get(); - private void frmUser_Load(object sender, EventArgs e) - { - userInfoListBindingSource.DataSource = UserInfoList.Get(); - groupInfoListBindingSource.DataSource = _gil; - SetupDetail(); - SetupButtons(); - log.Info("This is a test"); - //frmMembership f = new frmMembership(); - //f.Show(); - //f.TopMost = true; - } - private DialogResult SaveAsNeeded() - { - if (_user != null && _user.IsSavable) - { - DialogResult dr = MessageBox.Show("Do you want to save changes", "Save Changes", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (dr == DialogResult.Yes) Save(); - if (dr == DialogResult.No) Cancel(); - // TODO: Need a Cancel - return dr; - } - return DialogResult.Yes; - } - private void SetupDetail() - { - if (lbUsers.SelectedIndex != -1) - { - int uid = (int)lbUsers.SelectedValue; - if (_user == null || _user.UID != uid) - { - if (SaveAsNeeded() != DialogResult.Cancel) - { - _user = User.Get(uid); - userBindingSource.DataSource = _user; - userMembershipsBindingSource.DataSource = _user.UserMemberships; - } - } - } - } - private void lbUser_SelectedValueChanged(object sender, EventArgs e) - { - SetupDetail(); - } - private void SetupButtons() - { - if (_user != null) - { - btnSave.Enabled = _user.IsSavable; - btnCancel.Enabled = _user.IsDirty; - btnNew.Enabled = _user.IsValid; - btnGroups.Enabled = this.userMembershipsDataGridView.SelectedRows.Count > 0; - btnNewGA.Enabled = _gil.Count > this.userMembershipsDataGridView.Rows.Count; - btnRemoveGA.Enabled = this.userMembershipsDataGridView.SelectedRows.Count > 0; - } - else - { - btnSave.Enabled = false; - btnCancel.Enabled = false; - btnNew.Enabled = true; - btnGroups.Enabled = false; - btnNewGA.Enabled = false; - btnRemoveGA.Enabled = false; - } - } - private void CurrentItemChanged(object sender, EventArgs e) - { - SetupButtons(); - } - private void btnCancel_Click(object sender, EventArgs e) - { - Cancel(); - } - private void btnSave_Click(object sender, EventArgs e) - { - Save(); - } - private void btnNew_Click(object sender, EventArgs e) - { - New(); - } - private void Cancel() - { - _user.CancelEdit(); - //if (_user.IsDirty) - //{ - // foreach (UserMembership m in _user.UserMemberships) - // if(m.IsDirty) - // m.CancelEdit(); - //} - _user.BeginEdit(); - } - private void Save() - { - userBindingSource.RaiseListChangedEvents = false; - userMembershipsBindingSource.RaiseListChangedEvents = false; - userBindingSource.EndEdit(); - userMembershipsBindingSource.EndEdit(); - - try - { - User temp = _user.Clone(); - _user = temp.Save(); - _user.BeginEdit(); - userBindingSource.DataSource = null; - userMembershipsBindingSource.DataSource = null; - int uid = _user.UID; - userInfoListBindingSource.DataSource = UserInfoList.Get(); - if (lbUsers.SelectedIndex == -1) - lbUsers.SelectedValue = uid; - userBindingSource.DataSource = _user; - userMembershipsBindingSource.DataSource = _user.UserMemberships; - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), "Error saving", - MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - finally - { - userBindingSource.RaiseListChangedEvents = true; - userMembershipsBindingSource.RaiseListChangedEvents = true; - userBindingSource.ResetBindings(false); - userMembershipsBindingSource.ResetBindings(false); - } - SetupButtons(); - } - public void New() - { - if (SaveAsNeeded() != DialogResult.Cancel) - { - _user = User.New(); - userBindingSource.DataSource = _user; - userMembershipsBindingSource.DataSource = _user.UserMemberships; - lbUsers.SelectedIndex = -1; - } - } - - private void btnGroups_Click(object sender, EventArgs e) - { - frmGroups fg = new frmGroups(GetGID()); - fg.ShowDialog(); - } - - private void btnNewGA_Click(object sender, EventArgs e) - { - using (frmGroupSelect f = new frmGroupSelect()) - { - f.ShowDialog(); - if (f.DialogResult == DialogResult.OK) - { - _user.UserMemberships.Add(Group.Get(f.GID)); // TODO KBR - using - SetupButtons(); - } - } - } - private int GetGID() - { - return int.Parse(userMembershipsDataGridView.SelectedRows[0].Cells[0].Value.ToString()); - } - private void btnRemoveGA_Click(object sender, EventArgs e) - { - if (this.userMembershipsDataGridView.SelectedRows.Count > 0) - { - MessageBox.Show("Conversion Error"); - //TODO: KBR _user.UserMemberships.Remove(GetGID()); - } - } - - private void userMembershipsDataGridView_SelectionChanged(object sender, EventArgs e) - { - SetupButtons(); - } - - private void btnStack_Click(object sender, EventArgs e) - { - _user.BeginEdit(); - } - - private void btnPop_Click(object sender, EventArgs e) - { - _user.CancelEdit(); - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmUser.resx b/PROMS/VEPROMS_Security/WinApp/frmUser.resx deleted file mode 100644 index 7410ad10..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmUser.resx +++ /dev/null @@ -1,174 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - 17, 17 - - - 234, 17 - - - True - - - True - - - 404, 17 - - - 658, 17 - - - 17, 57 - - \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmUserSelect.Designer.cs b/PROMS/VEPROMS_Security/WinApp/frmUserSelect.Designer.cs deleted file mode 100644 index 8f14154e..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmUserSelect.Designer.cs +++ /dev/null @@ -1,117 +0,0 @@ -namespace WinApp -{ - partial class frmUserSelect - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.lbUsers = new System.Windows.Forms.ListBox(); - this.userInfoListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnCancel = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.userInfoListBindingSource)).BeginInit(); - this.panel1.SuspendLayout(); - this.SuspendLayout(); - // - // lbUsers - // - this.lbUsers.DataSource = this.userInfoListBindingSource; - this.lbUsers.DisplayMember = "FullName"; - this.lbUsers.Dock = System.Windows.Forms.DockStyle.Fill; - this.lbUsers.FormattingEnabled = true; - this.lbUsers.ItemHeight = 16; - this.lbUsers.Location = new System.Drawing.Point(0, 0); - this.lbUsers.Name = "lbUsers"; - this.lbUsers.Size = new System.Drawing.Size(292, 228); - this.lbUsers.TabIndex = 1; - this.lbUsers.ValueMember = "Uid"; - // - // userInfoListBindingSource - // - this.userInfoListBindingSource.DataSource = typeof(VEPROMS.CSLA.Library.UserInfo); - // - // panel1 - // - this.panel1.Controls.Add(this.btnCancel); - this.panel1.Controls.Add(this.btnOK); - this.panel1.Dock = System.Windows.Forms.DockStyle.Bottom; - this.panel1.Location = new System.Drawing.Point(0, 232); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(292, 28); - this.panel1.TabIndex = 2; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.btnCancel.Dock = System.Windows.Forms.DockStyle.Left; - this.btnCancel.Location = new System.Drawing.Point(73, 0); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(70, 28); - this.btnCancel.TabIndex = 3; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - this.btnCancel.Click += new System.EventHandler(this.btnCancel_Click); - // - // btnOK - // - this.btnOK.Dock = System.Windows.Forms.DockStyle.Left; - this.btnOK.Location = new System.Drawing.Point(0, 0); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(73, 28); - this.btnOK.TabIndex = 2; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - this.btnOK.Click += new System.EventHandler(this.btnOK_Click); - // - // frmUserSelect - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(292, 260); - this.Controls.Add(this.lbUsers); - this.Controls.Add(this.panel1); - this.Name = "frmUserSelect"; - this.Text = "Select User"; - this.Load += new System.EventHandler(this.frmUserSelect_Load); - ((System.ComponentModel.ISupportInitialize)(this.userInfoListBindingSource)).EndInit(); - this.panel1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - private System.Windows.Forms.ListBox lbUsers; - private System.Windows.Forms.BindingSource userInfoListBindingSource; - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.Button btnOK; - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmUserSelect.cs b/PROMS/VEPROMS_Security/WinApp/frmUserSelect.cs deleted file mode 100644 index 23bd3359..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmUserSelect.cs +++ /dev/null @@ -1,37 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Csla; - -namespace WinApp -{ - public partial class frmUserSelect : Form - { - public frmUserSelect() - { - InitializeComponent(); - } - private void frmUserSelect_Load(object sender, EventArgs e) - { - userInfoListBindingSource.DataSource = UserInfoList.Get(); - } - public int UID - { - get { return (int) lbUsers.SelectedValue; } - } - private void btnOK_Click(object sender, EventArgs e) - { - Console.WriteLine("SelectedValue = {0}", lbUsers.SelectedValue); - DialogResult = DialogResult.OK; - } - private void btnCancel_Click(object sender, EventArgs e) - { - DialogResult = DialogResult.Cancel; - } - } -} \ No newline at end of file diff --git a/PROMS/VEPROMS_Security/WinApp/frmUserSelect.resx b/PROMS/VEPROMS_Security/WinApp/frmUserSelect.resx deleted file mode 100644 index 2f86a2d6..00000000 --- a/PROMS/VEPROMS_Security/WinApp/frmUserSelect.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/VG.7z b/PROMS/VG.7z deleted file mode 100644 index cd4ccedb..00000000 Binary files a/PROMS/VG.7z and /dev/null differ diff --git a/PROMS/VG/VG.csproj.bak b/PROMS/VG/VG.csproj.bak deleted file mode 100644 index 20bff441..00000000 --- a/PROMS/VG/VG.csproj.bak +++ /dev/null @@ -1,174 +0,0 @@ - - - - Local - 8.0.50727 - 2.0 - {52D74078-3822-410E-889B-464BD21AAB9E} - SAK - SAK - SAK - SAK - Debug - AnyCPU - - - - - VG - - - JScript - Grid - IE50 - false - Library - VG - OnBuildSuccess - - - - - - - v4.6.1 - 2.0 - - - - bin\Debug\ - false - 285212672 - false - - - DEBUG;TRACE - - - true - 4096 - false - - - false - false - false - false - 4 - full - prompt - x86 - false - - - bin\Release\ - false - 285212672 - false - - - TRACE - - - false - 4096 - false - - - true - false - false - false - 4 - none - prompt - false - - - true - bin\Demo\ - DEBUG;TRACE - 285212672 - full - x86 - prompt - false - - - true - bin\Debug\ - DEBUG;TRACE - 285212672 - full - x86 - prompt - false - - - bin\Release\ - TRACE - 285212672 - true - - - x86 - prompt - false - - - true - bin\Demo\ - TRACE;DEMO - 285212672 - full - x86 - prompt - false - - - - - ..\..\..\Production\Proms3rdPartyLibraries\iTechSharp\itextsharp.dll - - - System - - - - System.Data - - - - System.Drawing - - - - System.XML - - - - - Code - - - - Code - - - - - - - - {aeee9fd1-6892-45e2-a67e-418c06d46ff9} - Volian.Base.Library - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/DSOTabPanel - Copy.cs b/PROMS/Volian.Controls.Library/DSOTabPanel - Copy.cs deleted file mode 100644 index 654ff1b3..00000000 --- a/PROMS/Volian.Controls.Library/DSOTabPanel - Copy.cs +++ /dev/null @@ -1,665 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; -using System.Drawing; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; -using System.Reflection; -using LBWordLibrary; - -namespace Volian.Controls.Library -{ - public partial class DSOTabPanel : DevComponents.DotNetBar.PanelDockContainer - { - #region Private Fields - private DisplayTabControl _MyDisplayTabControl; - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private AxDSOFramer.AxFramerControl _MyDSOFramer; - private TransparentPanel _MyTransparentPanel; - private static int _Count = 0; - private DocumentInfo _MyDocumentInfo; - private int _MyCount; - private DisplayTabItem _MyDisplayTabItem; - private DSOFile _DSOFile; - public static int MSWordLimit = 10; - #endregion - #region Public Properties - private String _SearchString; - public String SearchString - { - get { return _SearchString; } - set { _SearchString = value; FindSearchString(); } - } - /// - /// Count of DSO Pages open. Limited to 18 in DisplayTabControl - /// - public static int Count - { - get { return _Count; } - set { _Count = value; } - } - /// - /// Pointer to the related DisplayTabItem - /// - public DisplayTabItem MyDisplayTabItem - { - get { return _MyDisplayTabItem; } - set - { - _MyDisplayTabItem = value; - _MyDisplayTabItem.Visible = false; - _MyDisplayTabItem.Visible = true; - } - } - /// - /// DocumentInfo record for the Word document - /// - public DocumentInfo MyDocumentInfo - { - get { return _MyDocumentInfo; } - } - /// - /// Temporary Word file used for editing. - /// - internal DSOFile MyDSOFile - { - get - { - if (_DSOFile == null) - _DSOFile = new DSOFile(_MyDocumentInfo); - return _DSOFile; - } - } - /// - /// Dirty status. Only saved if dirty. - /// - public bool IsDirty - { - get - { - if (_MyDSOFramer == null) return false; - LBDocumentClass doc = new LBDocumentClass(_MyDSOFramer.ActiveDocument); - return !doc.Saved; - } - } - private bool _OverrideClose = false; - public bool OverrideClose - { - get { return _OverrideClose; } - set { _OverrideClose = value; } - } - public E_ViewMode PanelViewEditMode = E_ViewMode.Edit; - #endregion - //private frmPG _frm = null; - #region Constructors - private Timer _RefreshTimer; - private ItemInfo _ItemInfo; - private bool _AllowedToEdit; - public DSOTabPanel(DocumentInfo documentInfo, DisplayTabControl myDisplayTabControl, ItemInfo itemInfo, bool allowedToEdit) - { - _MyDisplayTabControl = myDisplayTabControl; - _ItemInfo = itemInfo; - _AllowedToEdit = allowedToEdit; - InitializeComponent(); - SetupDSOTabPanel(); - _MyDocumentInfo = documentInfo; - SetupDSO(); - _RefreshTimer = new Timer(); // Enabled is false and interval is 1/10th of second. - ClientSizeChanged += new EventHandler(DSOTabPanel_ClientSizeChanged); - _RefreshTimer.Tick += new EventHandler(_RefreshTimer_Tick); - //_frm = new frmPG(_MyDSOFramer); - //_frm.Show(); - } - void _RefreshTimer_Tick(object sender, EventArgs e) - { - _RefreshTimer.Enabled = false; - if(_MyDSOFramer != null) - _MyDSOFramer.Focus(); - } - void DSOTabPanel_ClientSizeChanged(object sender, EventArgs e) - { - _RefreshTimer.Enabled = false; // This assures that interval is used from last event. - _RefreshTimer.Enabled = true; - } - #endregion - #region Private Methods - private void SetupDSOTabPanel() - { - Dock = System.Windows.Forms.DockStyle.Fill; // Automatically Fill the panel - } - private void SetupDSO() - { - _Count++; // Increment the count of open Word documents (Limit = MSWordLimit) - _MyCount = _Count; - this._MyTransparentPanel = new TransparentPanel(); - this._MyDSOFramer = new AxDSOFramer.AxFramerControl(); - ((System.ComponentModel.ISupportInitialize)(this._MyDSOFramer)).BeginInit(); - this.Controls.Add(this._MyDSOFramer); - this.Controls.Add(this._MyTransparentPanel); // A transparent panel is added over top of the DSO Framer window so that - // the related tab can be activated when the user clicks on a Word Document. Since the Word document is actually running - // in a different thread, it does not behave properly with focus events. - this.components.Add(this._MyDSOFramer); - this.components.Add(this._MyTransparentPanel); - this._MyTransparentPanel.Dock = System.Windows.Forms.DockStyle.Fill; - this._MyTransparentPanel.Font = new System.Drawing.Font("Tahoma", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this._MyTransparentPanel.ForeColor = System.Drawing.Color.Brown; // This is the color used to show InActive on the right side on the Word - // document menu line. - //this._MyTransPanel.Location = new System.Drawing.Point(0, 0); - //this._MyTransPanel.Name = "transPanel1"; - //this._MyTransPanel.Size = new System.Drawing.Size(370, 423); - //this._MyTransPanel.TabIndex = 1; - this._MyTransparentPanel.Click += new EventHandler(_MyTransparentPanel_Click); - this._MyDSOFramer.Dock = System.Windows.Forms.DockStyle.Fill; - //System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WordDSOTab)); - //this._DSOFramer.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("_FC.OcxState"))); - ((System.ComponentModel.ISupportInitialize)(this._MyDSOFramer)).EndInit(); - try - { - try - { - this._MyDSOFramer.Open(MyDSOFile.MyFile.FullName); - //this._MyDSOFramer.Open(MyDSOFile.MyFile.FullName,false,"Word.Document","",""); - } - catch (Exception ex) - { - _MyLog.Warn("dso fraimer error", ex); // put exception message in the error log - System.IO.FileStream fs = MyDSOFile.MyFile.Create(); - using (DocumentAuditInfoList dail = DocumentAuditInfoList.Get(MyDocumentInfo.DocID)) - { - if (dail.Count > 0) - { - //DocumentAuditInfo dai = dail[0]; - //foreach (DocumentAuditInfo tmpa in dail) - //{ - // if (tmpa.DTS > dai.DTS) dai = tmpa; - //} - if(MessageBox.Show("Do you want to revert to a previous version?", "Error in MS Word section", - MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult.Yes) - { - //fs.Write(dai.DocContent, 0, dai.DocContent.Length); - using (Document myDoc = Document.Get(MyDocumentInfo.DocID)) - { - myDoc.RestoreWordDoc(_ItemInfo); - _DSOFile = null; - _MyDocumentInfo = DocumentInfo.Get(MyDocumentInfo.DocID); - } - } - - } - else - MessageBox.Show("Reverting to Blank Document", "Error in MS Word section", - MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - fs.Close(); - this._MyDSOFramer.Open(MyDSOFile.MyFile.FullName); - } - LBDocumentClass doc = new LBDocumentClass(_MyDSOFramer.ActiveDocument); - Console.WriteLine("Version {0}", doc.Application.Version); - float ver; - if (!float.TryParse(doc.Application.Version, out ver)) - ver = 12.0F; - this._MyDSOFramer.Menubar = ver < 12.0F; - this._MyDSOFramer.set_EnableFileCommand(DSOFramer.dsoFileCommandType.dsoFileClose, false); - this._MyDSOFramer.set_EnableFileCommand(DSOFramer.dsoFileCommandType.dsoFileNew, false); - this._MyDSOFramer.set_EnableFileCommand(DSOFramer.dsoFileCommandType.dsoFilePageSetup, false); - this._MyDSOFramer.set_EnableFileCommand(DSOFramer.dsoFileCommandType.dsoFilePrint, false); - this._MyDSOFramer.set_EnableFileCommand(DSOFramer.dsoFileCommandType.dsoFilePrintPreview, false); - this._MyDSOFramer.set_EnableFileCommand(DSOFramer.dsoFileCommandType.dsoFileProperties, false); - this._MyDSOFramer.set_EnableFileCommand(DSOFramer.dsoFileCommandType.dsoFileSave, false); - this._MyDSOFramer.set_EnableFileCommand(DSOFramer.dsoFileCommandType.dsoFileSaveAs, false); - this._MyDSOFramer.Titlebar = false; - //if (_MyCount < 20) - // this._MyDSOFramer.FrameHookPolicy = DSOFramer.dsoFrameHookPolicy.dsoResetNow; - //this._MyDSOFramer.BeforeDocumentClosed += new AxDSOFramer._DFramerCtlEvents_BeforeDocumentClosedEventHandler(_MyDSOFramer_BeforeDocumentClosed); - //this._MyDSOFramer.OnSaveCompleted += new AxDSOFramer._DFramerCtlEvents_OnSaveCompletedEventHandler(_MyDSOFramer_OnSaveCompleted); - //this._MyDSOFramer.LostFocus += new EventHandler(_MyDSOFramer_LostFocus); - //this._MyDSOFramer.GotFocus += new EventHandler(_MyDSOFramer_GotFocus); - //this._MyDSOFramer.Enter += new EventHandler(_MyDSOFramer_Enter); - //this._MyDSOFramer.Leave += new EventHandler(_MyDSOFramer_Leave); - //this._MyDSOFramer.OnActivationChange += new AxDSOFramer._DFramerCtlEvents_OnActivationChangeEventHandler(_MyDSOFramer_OnActivationChange); - this.Enter += new EventHandler(DSOTabPanel_Enter); - //this.Leave += new EventHandler(DSOTabPanel_Leave); - //this.GotFocus += new EventHandler(DSOTabPanel_GotFocus); - //this.LostFocus += new EventHandler(DSOTabPanel_LostFocus); - Application.DoEvents(); - // The following line corrects Symbol characters in MSWord Sections - // CheckForSymbolCharacters(doc); - InitializeWordDocument(doc); - FindSearchString(); - } - catch (Exception ex) - { - string message = ShowException(ex); - Console.WriteLine("\r\n-------------\r\n{0}{1}{2}\r\n-------------\r\n", MyDSOFile.MyFile.FullName, ex.GetType().Name, message); - // TODO: Should output a message - // TODO: Should try to do a direct open using Word. - } - } - public void FixSymbolCharacters() - { - CheckForSymbolCharacters(new LBDocumentClass(_MyDSOFramer.ActiveDocument)); - } - private void CheckForSymbolCharacters(LBDocumentClass doc) - { - string fontHasSymbolCharacters = doc.FontHasSymbolCharacters; - if (fontHasSymbolCharacters != null) - { - // do a string for the log message, depending if this is a libdoc. - string msg = null; - if (MyDocumentInfo.LibTitle == null || MyDocumentInfo.LibTitle == "") - { - if (MyDocumentInfo.DocumentEntryCount>0) - msg = string.Format("Procedure = {0}, Section {1}", MyDocumentInfo.DocumentEntries[0].MyContent.ContentItems[0].MyProcedure, MyDocumentInfo.DocumentEntries[0].MyContent.ContentItems[0].DisplayText); - else - msg = string.Format("Procedure and Section can't be determined"); - } - else - msg = string.Format("Library Document: {0}", MyDocumentInfo.LibTitle); - if (doc.AttemptToFixASymbolCharacter()) // font is installed correctly, 'fix' this file. - { - //MessageBox.Show(string.Format("This document uses the font {0}, which previously had an error.\r\nThe program will attempt to fix the problem for this Word section.", fontHasSymbolCharacters), - // "Font Being Corrected", MessageBoxButtons.OK); - doc.FixSymbolCharacters(); - _MyLog.Info(string.Format("Font problem being fixed in Font: {0}, {1}.",fontHasSymbolCharacters, msg)); - } - else - { - MessageBox.Show(string.Format("This document uses the font {0}, which has an error.\r\n\r\nReinstall this font.", fontHasSymbolCharacters), - "Reinstall Font", MessageBoxButtons.OK); - _MyLog.Info(string.Format("Font problem found in Font: {0}, {1}.",fontHasSymbolCharacters, msg)); - } - } - } - - private void InitializeWordDocument(LBDocumentClass doc) - { - if (MyDocumentInfo.Config == null || MyDocumentInfo.Config == "" && MyDocumentInfo.DocumentEntryCount > 0) - { - DocStyle ds = MyDocumentInfo.DocumentEntries[0].MyContent.ContentItems[0].MyDocStyle; - // this will cause an error and goto the Catch if the family or size is null, - // Westinghouse needs it to to this - at least for now - //if (ds.Font.Family != null) doc.Application.Selection.Font.Name = ds.Font.Family; - //if (ds.Font.Size != null) doc.Application.Selection.Font.Size = (float)ds.Font.Size; - doc.Application.Selection.Font.Name = ds.Font.Family; - doc.Application.Selection.Font.Size = (float)ds.Font.Size; - doc.Application.Selection.ParagraphFormat.SpaceBefore = 0; - doc.Application.Selection.ParagraphFormat.SpaceAfter = 0; - doc.Application.Selection.ParagraphFormat.LineSpacingRule = LBWdLineSpacing.wdLineSpaceExactly; - doc.Application.Selection.ParagraphFormat.LineSpacing = 72 / 6; // for 6 LPI - MSWordToPDF.AdjustMargins(ds, doc, false); - } - if (doc.ActiveWindow.ActivePane.View.Zoom.Percentage < 40) - doc.ActiveWindow.ActivePane.View.Zoom.Percentage = 100; - } - public void FindSearchString() - { - if (SearchString == null) return; - // Get the Document - LBDocumentClass wordDoc = new LBDocumentClass(_MyDSOFramer.ActiveDocument); - //LBSelection sel = wordDoc.Application.Selection; - LBFind find = wordDoc.Application.Selection.Find; - find.ClearFormatting(); - bool wildCards = SearchString.Contains("?") || SearchString.Contains("*"); - bool found = find.Execute(SearchString, false, false, wildCards, false, false, true, LBWdFindWrap.wdFindContinue, null, null, null, false, false, false, false); - //Console.WriteLine("find = {0}", found); - } - /// - /// Text will either replace current selection or be inserted at the current cursor position if no selection - /// - /// - public void InsertText(string txt) - { - if (txt == null || txt.Length == 0) return; //nothing to insert - // Get the Document - LBDocumentClass wordDoc = new LBDocumentClass(_MyDSOFramer.ActiveDocument); - //This will get the selected range or just the current cursor position - LBSelection sel = wordDoc.Application.Selection; - // This will replace the selection or insert at current position - sel.Text = txt; - } - - public string GetSelectedString() - { - LBDocumentClass wordDoc = new LBDocumentClass(_MyDSOFramer.ActiveDocument); - //This will get the selected range or just the current cursor position - LBSelection sel = wordDoc.Application.Selection; - // if the start & end are the same, nothing is selected: - if (sel.Start == sel.End) return null; - return sel.Text; - } - - private string ShowException(Exception ex) - { - string sep = "\r\n "; - StringBuilder sb = new StringBuilder(); - do - { - sb.Append(sep + ex.Message); - sep += " "; - ex = ex.InnerException; - } while (ex != null); - return sb.ToString(); - } - - //void _MyDSOFramer_Leave(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSO Leave {0}", this.MyDocumentInfo.DocID); - //} - - //void _MyDSOFramer_Enter(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSO Enter {0}", this.MyDocumentInfo.DocID); - //} - - //void _MyDSOFramer_GotFocus(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSO Got Focus {0}",this.MyDocumentInfo.DocID); - //} - - //void _MyDSOFramer_LostFocus(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSO Lost Focus {0}", this.MyDocumentInfo.DocID); - //} - public void EnterPanel() - { - DSOTabPanel_Enter(this, new EventArgs()); - } - //void DSOTabPanel_LostFocus(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSOTabPanel_LostFocus {0} DocID {1} Index {2} {3}", _In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName); - //} - //void DSOTabPanel_GotFocus(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSOTabPanel_GotFocus {0} DocID {1} Index {2} {3}", _In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName); - //} - #endregion - #region Event Handlers - /// - /// Display MyTransparentPanel over the DSOPanel so that the Word "Inactive" appears in the upper right hand corner. - /// - public void InActive() - { - _MyTransparentPanel.BringToFront(); - } - /// - /// Force this item to be selected when the transparent window is clicked. - /// This will in-turn send the Transparent Panel to back and make the DSO Panel - /// editable. - /// - /// - /// - void _MyTransparentPanel_Click(object sender, EventArgs e) - { - this.Select(); - } - ///// - ///// If the user presses the save button, tell the file to save it's contents to the database - ///// - ///// - ///// - //void _MyDSOFramer_OnSaveCompleted(object sender, AxDSOFramer._DFramerCtlEvents_OnSaveCompletedEvent e) - //{ - // _MyLog.WarnFormat("_MyDSOFramer_OnSaveCompleted"); - // Volian.Base.Library.vlnStackTrace.ShowStack("_MyDSOFramer_OnSaveCompleted"); - // SaveDSO_Phase2(); - //} - - private void SaveDSO_Phase2() - { - // Unfortunately, the only way to handle view mode for DSO Framer is to not save. - if (PanelViewEditMode == E_ViewMode.View) - { - MessageBox.Show("Currently in VIEW mode,\r\n cannot Save " + _MyDisplayTabItem.Tooltip); - return; - } - LBDocumentClass doc = new LBDocumentClass(_MyDSOFramer.ActiveDocument); - while (doc.Saved = false) - Application.DoEvents(); - string tmp = GetReflectiveProperty(_MyDSOFramer.ActiveDocument, "FullName"); - if (System.IO.File.Exists(tmp)) - MyDSOFile.FullName = tmp; - else - _MyLog.FatalFormat("File does not exist {0}\r\nFile was {1}", tmp, MyDSOFile.FullName); - // if this was a library document, ask user if it should be saved for all usages. - bool cvtLibDoc = false; - if (MyDisplayTabItem.MyItemInfo != null) // B2016-131 if myiteminfo is null then the lib doc is not referenced, so just save the changes - don't generate a pdf - { - EntryInfo myei = MyDisplayTabItem.MyItemInfo.MyContent.MyEntry; - if (myei != null && myei.MyDocument != null && myei.MyDocument.LibTitle != null && myei.MyDocument.LibTitle != "") - { - DialogResult ans = MessageBox.Show("Save as Library Document for all usages?", "Document Save", MessageBoxButtons.YesNo); - if (ans == DialogResult.No) cvtLibDoc = true; - } - } - MyDSOFile.SaveFile(doc.Length, doc.Ascii, MyDisplayTabItem.MyItemInfo, cvtLibDoc, StatusChanged); - if (cvtLibDoc) - { - MyDisplayTabItem.Text = MyDisplayTabItem.MyItemInfo.TabTitle; - MyDisplayTabItem.Tooltip = MyDisplayTabItem.MyItemInfo.TabToolTip; - MyDisplayTabItem.SetPrivateTooltip(MyDisplayTabItem.MyItemInfo.TabToolTip); - } - } - public void StatusChanged(VolianStatusType type, int count, string text) - { - if (Parent != null && Parent.Parent != null && Parent.Parent.Parent is DisplayTabControl) - { - DisplayTabControl tc = Parent.Parent.Parent as DisplayTabControl; - tc.ONStatusChanged(this, new DisplayTabControlStatusEventArgs(type, count, text)); - } - } - ///// - ///// Before a document closes check to see if it's contents should be saved. - ///// - ///// - ///// - //void _MyDSOFramer_BeforeDocumentClosed(object sender, AxDSOFramer._DFramerCtlEvents_BeforeDocumentClosedEvent e) - //{ - // SaveDSOPhase1(); - //} - - private void SaveDSO_Phase1() - { - try - { - if (!IsBeingDeleted) - SaveDirty(); - this.Enter -= new EventHandler(DSOTabPanel_Enter); - // this.Leave -= new EventHandler(DSOTabPanel_Leave); - // SaveDirty(); // SaveDirty happens in CloseDSO(bool) - } - catch (Exception ex) - { - _MyLog.Warn("Before Closing Document ", ex); - } - } - public static bool IgnoreEnter = false; - private bool _In_DSOTabPanel_Enter=false; - /// - /// When a Word document is selected make sure it's tab is activated and - /// the SelectedItem for the DisplayTabControl is updated. - /// - /// - /// - private void DSOTabPanel_Enter(object sender, EventArgs e) - { - if (IgnoreEnter) return; - _MyTransparentPanel.SendToBack(); - - // Set whether this worddoc is in view/edit mode by checking whether the - // procedure is in view/edit mode (based on the steppanel. This occurs on - // the enter event so that the mode is determined any time this panel becomes - // active. - // find steptabpanel and its view/edit. If it doesn't have a steptabpanel - // use default - edit. Later when we have ownership, need to use that. - PanelViewEditMode = E_ViewMode.Edit; // default to edit - if (MyDisplayTabItem.MyItemInfo != null) // lib doc with no associated active procedure defaults to edit - { - StepTabPanel stpanel = _MyDisplayTabControl.GetProcedureTabPanel(MyDisplayTabItem.MyItemInfo); - PanelViewEditMode = (stpanel == null) ? E_ViewMode.Edit : stpanel.MyStepPanel.VwMode; - } - try - { - //_MyDSOFramer.EventsEnabled = true; - _MyDSOFramer.FrameHookPolicy = DSOFramer.dsoFrameHookPolicy.dsoResetNow; - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.ErrorFormat("DSOTabPage_Enter", ex); - } - if (_In_DSOTabPanel_Enter) return; - //vlnStackTrace.ShowStack("DSOTabPanel_Enter {0} DocID {1} Index {2} {3}",_In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName); - _In_DSOTabPanel_Enter = true; - if (MyDisplayTabItem.MyItemInfo != null) - _MyDisplayTabControl.OnItemSelectedChanged(this,new ItemSelectedChangedEventArgs(MyDisplayTabItem.MyItemInfo)); - _MyDSOFramer.Focus(); - _In_DSOTabPanel_Enter = false; - _MyDisplayTabControl.SelectedDisplayTabItem = MyDisplayTabItem; - } - #endregion - #region Public Methods - /// - /// Save the contents of the Word Document to a file - /// and save the file to the database - /// - /// - public bool SaveDSO() - { - bool result = true; - try - { - _MyDSOFramer.Save(); - SaveDSO_Phase2(); - //_MyDSOFramer_OnSaveCompleted(this, null); - // These are handled in the method above - //LBDocumentClass doc = new LBDocumentClass(_MyDSOFramer.ActiveDocument); - //MyDSOFile.FullName = GetReflectiveProperty(_MyDSOFramer.ActiveDocument, "FullName"); - //MyDSOFile.SaveFile(doc.Length, doc.Ascii); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("SaveDSO", ex); - MessageBox.Show(ex.Message, "Error Saving Document", MessageBoxButtons.OK, MessageBoxIcon.Error); - result = false; - } - return result; - } - /// - /// Check to see if a Word document should be saved. If it is dirty ask the user if the - /// changes should be changed. Save the changes if the user says "yes". - /// - /// - public bool SaveDirty() - { - if (OverrideClose) - return false; - if (IsDirty) - { - // Unfortunately, the only way to handle view mode for DSO Framer is to not save. - if (PanelViewEditMode == E_ViewMode.View || !_AllowedToEdit) - { - MessageBox.Show("Currently in VIEW mode,\r\n cannot Save " + _MyDisplayTabItem.Tooltip); - return false; - } - //if (MessageBox.Show("Save changes to " + _MyDisplayTabItem.MyItemInfo.TabTitle + "\r\n" + _MyDisplayTabItem.MyItemInfo.TabToolTip, "Document has Changed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - if (MessageBox.Show("Save changes to " + _MyDisplayTabItem.Text + "\r\n" + _MyDisplayTabItem.Tooltip, "Document has Changed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - return SaveDSO(); - return false; - } - return true; - } - private bool _IsBeingDeleted = false; - public bool IsBeingDeleted - { - get { return _IsBeingDeleted; } - set { _IsBeingDeleted = value; } - } - /// - /// Cleans-up the DSO Framer window - /// - /// - public bool CloseDSO() - { - return CloseDSO(false); - } - /// - /// Cleans-up the DSO Framer window - /// - /// - /// - public bool CloseDSO(bool force) - { - _MyLog.Debug("CloseDSO"); - bool result = true; - try - { - if (_MyDSOFramer != null) - { - SaveDSO_Phase1(); - _MyDSOFramer.Close(); - Controls.Remove(_MyDSOFramer); - components.Remove(_MyDSOFramer); - _MyDSOFramer.Dispose(); - _MyDSOFramer = null; - _Count--; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("SaveDSO - " + this.Name, ex); - result = false; - } - return result; - } - /// - /// Activates the current DSO Framer window (Word) - /// - public void Activate() - { - try - { - this._MyDSOFramer.Activate(); - if (_MyCount <= MSWordLimit) - this._MyDSOFramer.FrameHookPolicy = DSOFramer.dsoFrameHookPolicy.dsoResetNow; - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Activate", ex); - } - } - #endregion - #region DocumentProperties - - private string GetReflectiveProperty(object objectToInspect, string propertyName) - { - string returnString = ""; - //To use reflection on an object, you - // first need to get an instance - // of that object's type. - Type objectType = objectToInspect.GetType(); - //After you have the object's type, you can get - // information on that type. In this case, we're - // asking the type to tell us all the - // properties that it contains. - PropertyInfo[] properties = objectType.GetProperties(); - //You can then use the PropertyInfo array - // to loop through each property of the type. - foreach (PropertyInfo property in properties) - { - //The interest part of this code - // is the GetValue method. This method - // returns the value of the property. - if(property.Name == propertyName) - return property.GetValue(objectToInspect, null).ToString(); - } - return null; - } - #endregion - public override string ToString() - { - return string.Format("DSOTabPanel Document {0}", MyDocumentInfo.DocID); - } - } -} diff --git a/PROMS/Volian.Controls.Library/DSOTabPanel.Designer - Copy.cs b/PROMS/Volian.Controls.Library/DSOTabPanel.Designer - Copy.cs deleted file mode 100644 index 8d3455ab..00000000 --- a/PROMS/Volian.Controls.Library/DSOTabPanel.Designer - Copy.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace Volian.Controls.Library -{ - partial class DSOTabPanel - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} diff --git a/PROMS/Volian.Controls.Library/DSOTabPanel.cs.bak b/PROMS/Volian.Controls.Library/DSOTabPanel.cs.bak deleted file mode 100644 index 85662058..00000000 --- a/PROMS/Volian.Controls.Library/DSOTabPanel.cs.bak +++ /dev/null @@ -1,695 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; -using System.Drawing; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using Volian.Controls.Library; -using System.Reflection; -using LBWordLibrary; - -namespace Volian.Controls.Library -{ - public partial class DSOTabPanel : DevComponents.DotNetBar.PanelDockContainer - { - #region Private Fields - private DisplayTabControl _MyDisplayTabControl; - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private AxEDWordLib.AxEDWord _MyEdWord; // B2017-133 Edraw DSO Framer Replacement - private TransparentPanel _MyTransparentPanel; - private static int _Count = 0; - private DocumentInfo _MyDocumentInfo; - private int _MyCount; - private DisplayTabItem _MyDisplayTabItem; - private DSOFile _DSOFile; - public static int MSWordLimit = 10; - #endregion - #region Public Properties - private String _SearchString; - public String SearchString - { - get { return _SearchString; } - set { _SearchString = value; FindSearchString(); } - } - /// - /// Count of DSO Pages open. Limited to 18 in DisplayTabControl - /// - public static int Count - { - get { return _Count; } - set { _Count = value; } - } - /// - /// Pointer to the related DisplayTabItem - /// - public DisplayTabItem MyDisplayTabItem - { - get { return _MyDisplayTabItem; } - set - { - _MyDisplayTabItem = value; - _MyDisplayTabItem.Visible = false; - _MyDisplayTabItem.Visible = true; - } - } - /// - /// DocumentInfo record for the Word document - /// - public DocumentInfo MyDocumentInfo - { - get { return _MyDocumentInfo; } - } - /// - /// Temporary Word file used for editing. - /// - internal DSOFile MyDSOFile - { - get - { - if (_DSOFile == null) - _DSOFile = new DSOFile(_MyDocumentInfo); - return _DSOFile; - } - } - /// - /// Dirty status. Only saved if dirty. - /// - public bool IsDirty - { - get - { - if (_MyEdWord == null) return false; // B2017-133 Edraw Is Dirty Property - return _MyEdWord.IsDirty(); - //LBDocumentClass doc = new LBDocumentClass(_MyEdWord.ActiveDocument()); - //return !doc.Saved; - } - } - private bool _OverrideClose = false; - public bool OverrideClose - { - get { return _OverrideClose; } - set { _OverrideClose = value; } - } - public E_ViewMode PanelViewEditMode = E_ViewMode.Edit; - #endregion - //private frmPG _frm = null; - #region Constructors - private Timer _RefreshTimer; - private ItemInfo _ItemInfo; - private bool _AllowedToEdit; - public DSOTabPanel(DocumentInfo documentInfo, DisplayTabControl myDisplayTabControl, ItemInfo itemInfo, bool allowedToEdit) - { - _MyDisplayTabControl = myDisplayTabControl; - _ItemInfo = itemInfo; - _AllowedToEdit = allowedToEdit; - InitializeComponent(); - SetupDSOTabPanel(); - _MyDocumentInfo = documentInfo; - SetupDSO(); - _RefreshTimer = new Timer(); // Enabled is false and interval is 1/10th of second. - _RefreshTimer.Interval = 1000;// B2017-133 Edraw - ClientSizeChanged += new EventHandler(DSOTabPanel_ClientSizeChanged); - _RefreshTimer.Tick += new EventHandler(_RefreshTimer_Tick); - _MyEdWord.BeforeDocumentClosed += _MyEdWord_BeforeDocumentClosed;// B2017-133 Edraw - _MyEdWord.BeforeDocumentOpened += _MyEdWord_BeforeDocumentOpened;// B2017-133 Edraw - _MyEdWord.BeforeDocumentSaved += _MyEdWord_BeforeDocumentSaved;// B2017-133 Edraw - //_frm = new frmPG(_MyDSOFramer); - //_frm.Show(); - } - void _MyEdWord_BeforeDocumentSaved(object sender, EventArgs e)// B2017-133 Edraw - { - SaveDSO(); - } - //void DisableWordCommands()// B2017-133 Edraw - // { - // _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisableClose, true); - // _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisableNew, true); - // _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisablePrint, true); - // _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisablePrintPreview, true); - // _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisablePrintQuick, true); - // _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisableSave, true); - // _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisableSaveAs, true); - // _MyEdWord.DisableStandardCommand(EDWordLib.CommandType.cmdTypeSave, true); - // _MyEdWord.DisableStandardCommand(EDWordLib.CommandType.cmdTypeClose, true); - // _MyEdWord.DisableStandardCommand(EDWordLib.CommandType.cmdTypePrint, true); - // _MyEdWord.DisableSaveHotKey(true); - // _MyEdWord.DisablePrintHotKey(true); - // } - void _MyEdWord_BeforeDocumentOpened(object sender, EventArgs e)// B2017-133 Edraw - { - _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisableClose, true); - _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisableNew, true); - _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisablePrint, true); - _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisablePrintPreview, true); - _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisablePrintQuick, true); - _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisableSave, true); - _MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisableSaveAs, true); - _MyEdWord.DisableStandardCommand(EDWordLib.CommandType.cmdTypeSave, true); - _MyEdWord.DisableStandardCommand(EDWordLib.CommandType.cmdTypeClose, true); - _MyEdWord.DisableStandardCommand(EDWordLib.CommandType.cmdTypePrint, true); - _MyEdWord.DisableSaveHotKey(true); - _MyEdWord.DisablePrintHotKey(true); - } - void _MyEdWord_BeforeDocumentClosed(object sender, EventArgs e)// B2017-133 Edraw - { - Console.WriteLine("B2017-133 Edraw Before Document Closed"); - } - void _RefreshTimer_Tick(object sender, EventArgs e) - { - _RefreshTimer.Enabled = false; - if (_MyEdWord != null)// B2017-133 Edraw - { - _MyEdWord.Focus(); - _MyEdWord.GotoItem(EDWordLib.WdGoToItem.wdGoToStart, EDWordLib.WdGoToDirection.wdGoToFirst); - //_MyEdWord.BringToFront(); - //_MyEdWord.EndInit(); - } - } - void DSOTabPanel_ClientSizeChanged(object sender, EventArgs e) - { - _RefreshTimer.Enabled = false; // This assures that interval is used from last event. - _RefreshTimer.Enabled = true; - } - #endregion - #region Private Methods - private void SetupDSOTabPanel() - { - Dock = System.Windows.Forms.DockStyle.Fill; // Automatically Fill the panel - } - private void SetupDSO() - { - _Count++; // Increment the count of open Word documents (Limit = MSWordLimit) - _MyCount = _Count; - this._MyTransparentPanel = new TransparentPanel(); - this._MyEdWord = new AxEDWordLib.AxEDWord();// B2017-133 Edraw - _MyEdWord.BeginInit(); - this.Controls.Add(this._MyEdWord); - this.Controls.Add(this._MyTransparentPanel); // A transparent panel is added over top of the DSO Framer window so that - // the related tab can be activated when the user clicks on a Word Document. Since the Word document is actually running - // in a different thread, it does not behave properly with focus events. - this.components.Add(this._MyEdWord);// B2017-133 Edraw - this.components.Add(this._MyTransparentPanel); - this._MyTransparentPanel.Dock = System.Windows.Forms.DockStyle.Fill; - this._MyTransparentPanel.Font = new System.Drawing.Font("Tahoma", 14.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0))); - this._MyTransparentPanel.ForeColor = System.Drawing.Color.Brown; // This is the color used to show InActive on the right side on the Word - // document menu line. - //this._MyTransPanel.Location = new System.Drawing.Point(0, 0); - //this._MyTransPanel.Name = "transPanel1"; - //this._MyTransPanel.Size = new System.Drawing.Size(370, 423); - //this._MyTransPanel.TabIndex = 1; - this._MyTransparentPanel.Click += new EventHandler(_MyTransparentPanel_Click); - this._MyEdWord.Dock = System.Windows.Forms.DockStyle.Fill; - //System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(WordDSOTab)); - //this._DSOFramer.OcxState = ((System.Windows.Forms.AxHost.State)(resources.GetObject("_FC.OcxState"))); - try - { - try - { - this._MyEdWord.LicenseName = "Volian7573291802";// B2017-133 Edraw - this._MyEdWord.LicenseCode = "EDW8-5527-1201-AB8A";// B2017-133 Edraw - //_MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisableSave, true); - //_MyEdWord.DisableFileCommand(EDWordLib.WdUIType.wdUIDisableSaveAs, true); - //_MyEdWord.DisableStandardCommand(EDWordLib.CommandType.cmdTypeSave, true); - //DisableWordCommands(); - this._MyEdWord.Open(MyDSOFile.MyFile.FullName); - } - catch (Exception ex) - { - System.IO.FileStream fs = MyDSOFile.MyFile.Create(); - using (DocumentAuditInfoList dail = DocumentAuditInfoList.Get(MyDocumentInfo.DocID)) - { - if (dail.Count > 0) - { - //DocumentAuditInfo dai = dail[0]; - //foreach (DocumentAuditInfo tmpa in dail) - //{ - // if (tmpa.DTS > dai.DTS) dai = tmpa; - //} - if(MessageBox.Show("Do you want to revert to a previous version?", "Error in MS Word section", - MessageBoxButtons.YesNo, MessageBoxIcon.Question)==DialogResult.Yes) - { - //fs.Write(dai.DocContent, 0, dai.DocContent.Length); - using (Document myDoc = Document.Get(MyDocumentInfo.DocID)) - { - myDoc.RestoreWordDoc(_ItemInfo); - _DSOFile = null; - _MyDocumentInfo = DocumentInfo.Get(MyDocumentInfo.DocID); - } - } - - } - else - MessageBox.Show("Reverting to Blank Document", "Error in MS Word section", - MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - fs.Close(); - this._MyEdWord.Open(MyDSOFile.MyFile.FullName);// B2017-133 Edraw - } - LBDocumentClass doc = new LBDocumentClass(_MyEdWord.ActiveDocument()); - Console.WriteLine("Version {0}", doc.Application.Version); - float ver; - if (!float.TryParse(doc.Application.Version, out ver)) - ver = 12.0F; - this.Enter += new EventHandler(DSOTabPanel_Enter); - Application.DoEvents(); - // The following line corrects Symbol characters in MSWord Sections - // CheckForSymbolCharacters(doc); - InitializeWordDocument(doc); - FindSearchString(); - } - catch (Exception ex) - { - string message = ShowException(ex); - Console.WriteLine("\r\n-------------\r\n{0}{1}{2}\r\n-------------\r\n", MyDSOFile.MyFile.FullName, ex.GetType().Name, message); - // TODO: Should output a message - // TODO: Should try to do a direct open using Word. - } - } - public void FixSymbolCharacters() - { - CheckForSymbolCharacters(new LBDocumentClass(_MyEdWord.ActiveDocument()));// B2017-133 Edraw - } - private void CheckForSymbolCharacters(LBDocumentClass doc) - { - string fontHasSymbolCharacters = doc.FontHasSymbolCharacters; - if (fontHasSymbolCharacters != null) - { - // do a string for the log message, depending if this is a libdoc. - string msg = null; - if (MyDocumentInfo.LibTitle == null || MyDocumentInfo.LibTitle == "") - { - if (MyDocumentInfo.DocumentEntryCount>0) - msg = string.Format("Procedure = {0}, Section {1}", MyDocumentInfo.DocumentEntries[0].MyContent.ContentItems[0].MyProcedure, MyDocumentInfo.DocumentEntries[0].MyContent.ContentItems[0].DisplayText); - else - msg = string.Format("Procedure and Section can't be determined"); - } - else - msg = string.Format("Library Document: {0}", MyDocumentInfo.LibTitle); - if (doc.AttemptToFixASymbolCharacter()) // font is installed correctly, 'fix' this file. - { - //MessageBox.Show(string.Format("This document uses the font {0}, which previously had an error.\r\nThe program will attempt to fix the problem for this Word section.", fontHasSymbolCharacters), - // "Font Being Corrected", MessageBoxButtons.OK); - doc.FixSymbolCharacters(); - _MyLog.Info(string.Format("Font problem being fixed in Font: {0}, {1}.",fontHasSymbolCharacters, msg)); - } - else - { - MessageBox.Show(string.Format("This document uses the font {0}, which has an error.\r\n\r\nReinstall this font.", fontHasSymbolCharacters), - "Reinstall Font", MessageBoxButtons.OK); - _MyLog.Info(string.Format("Font problem found in Font: {0}, {1}.",fontHasSymbolCharacters, msg)); - } - } - } - - private void InitializeWordDocument(LBDocumentClass doc) - { - if (MyDocumentInfo.Config == null || MyDocumentInfo.Config == "" && MyDocumentInfo.DocumentEntryCount > 0) - { - DocStyle ds = MyDocumentInfo.DocumentEntries[0].MyContent.ContentItems[0].MyDocStyle; - // this will cause an error and goto the Catch if the family or size is null, - // Westinghouse needs it to to this - at least for now - //if (ds.Font.Family != null) doc.Application.Selection.Font.Name = ds.Font.Family; - //if (ds.Font.Size != null) doc.Application.Selection.Font.Size = (float)ds.Font.Size; - doc.Application.Selection.Font.Name = ds.Font.Family; - doc.Application.Selection.Font.Size = (float)ds.Font.Size; - doc.Application.Selection.ParagraphFormat.SpaceBefore = 0; - doc.Application.Selection.ParagraphFormat.SpaceAfter = 0; - doc.Application.Selection.ParagraphFormat.LineSpacingRule = LBWdLineSpacing.wdLineSpaceExactly; - doc.Application.Selection.ParagraphFormat.LineSpacing = 72 / 6; // for 6 LPI - MSWordToPDF.AdjustMargins(ds, doc, false); - } - if (doc.ActiveWindow.ActivePane.View.Zoom.Percentage < 40) - doc.ActiveWindow.ActivePane.View.Zoom.Percentage = 100; - } - public void FindSearchString() - { - if (SearchString == null) return; - // Get the Document - LBDocumentClass wordDoc = new LBDocumentClass(_MyEdWord.ActiveDocument()); - //LBSelection sel = wordDoc.Application.Selection; - LBFind find = wordDoc.Application.Selection.Find; - find.ClearFormatting(); - bool wildCards = SearchString.Contains("?") || SearchString.Contains("*"); - bool found = find.Execute(SearchString, false, false, wildCards, false, false, true, LBWdFindWrap.wdFindContinue, null, null, null, false, false, false, false); - //Console.WriteLine("find = {0}", found); - } - /// - /// Text will either replace current selection or be inserted at the current cursor position if no selection - /// - /// - public void InsertText(string txt) - { - if (txt == null || txt.Length == 0) return; //nothing to insert - // Get the Document - LBDocumentClass wordDoc = new LBDocumentClass(_MyEdWord.ActiveDocument()); - //This will get the selected range or just the current cursor position - LBSelection sel = wordDoc.Application.Selection; - // This will replace the selection or insert at current position - sel.Text = txt; - } - - public string GetSelectedString() - { - LBDocumentClass wordDoc = new LBDocumentClass(_MyEdWord.ActiveDocument()); - //This will get the selected range or just the current cursor position - LBSelection sel = wordDoc.Application.Selection; - // if the start & end are the same, nothing is selected: - if (sel.Start == sel.End) return null; - return sel.Text; - } - - private string ShowException(Exception ex) - { - string sep = "\r\n "; - StringBuilder sb = new StringBuilder(); - do - { - sb.Append(sep + ex.Message); - sep += " "; - ex = ex.InnerException; - } while (ex != null); - return sb.ToString(); - } - - //void _MyDSOFramer_Leave(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSO Leave {0}", this.MyDocumentInfo.DocID); - //} - - //void _MyDSOFramer_Enter(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSO Enter {0}", this.MyDocumentInfo.DocID); - //} - - //void _MyDSOFramer_GotFocus(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSO Got Focus {0}",this.MyDocumentInfo.DocID); - //} - - //void _MyDSOFramer_LostFocus(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSO Lost Focus {0}", this.MyDocumentInfo.DocID); - //} - public void EnterPanel() - { - DSOTabPanel_Enter(this, new EventArgs()); - } - //void DSOTabPanel_LostFocus(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSOTabPanel_LostFocus {0} DocID {1} Index {2} {3}", _In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName); - //} - //void DSOTabPanel_GotFocus(object sender, EventArgs e) - //{ - // vlnStackTrace.ShowStack("DSOTabPanel_GotFocus {0} DocID {1} Index {2} {3}", _In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName); - //} - #endregion - #region Event Handlers - /// - /// Display MyTransparentPanel over the DSOPanel so that the Word "Inactive" appears in the upper right hand corner. - /// - public void InActive() - { - _MyTransparentPanel.BringToFront(); - } - /// - /// Force this item to be selected when the transparent window is clicked. - /// This will in-turn send the Transparent Panel to back and make the DSO Panel - /// editable. - /// - /// - /// - void _MyTransparentPanel_Click(object sender, EventArgs e) - { - this.Select(); - } - ///// - ///// If the user presses the save button, tell the file to save it's contents to the database - ///// - ///// - ///// - //void _MyDSOFramer_OnSaveCompleted(object sender, AxDSOFramer._DFramerCtlEvents_OnSaveCompletedEvent e) - //{ - // _MyLog.WarnFormat("_MyDSOFramer_OnSaveCompleted"); - // Volian.Base.Library.vlnStackTrace.ShowStack("_MyDSOFramer_OnSaveCompleted"); - // SaveDSO_Phase2(); - //} - - private void SaveDSO_Phase2() - { - // Unfortunately, the only way to handle view mode for DSO Framer is to not save. - if (PanelViewEditMode == E_ViewMode.View) - { - MessageBox.Show("Currently in VIEW mode,\r\n cannot Save " + _MyDisplayTabItem.Tooltip); - return; - } - LBDocumentClass doc = new LBDocumentClass(_MyEdWord.ActiveDocument()); - //while (doc.Saved = false) - // Application.DoEvents(); - string tmp = GetReflectiveProperty(_MyEdWord.ActiveDocument(), "FullName"); - if (System.IO.File.Exists(tmp)) - MyDSOFile.FullName = tmp; - else - _MyLog.FatalFormat("File does not exist {0}\r\nFile was {1}", tmp, MyDSOFile.FullName); - // if this was a library document, ask user if it should be saved for all usages. - bool cvtLibDoc = false; - if (MyDisplayTabItem.MyItemInfo != null) // B2016-131 if myiteminfo is null then the lib doc is not referenced, so just save the changes - don't generate a pdf - { - EntryInfo myei = MyDisplayTabItem.MyItemInfo.MyContent.MyEntry; - if (myei != null && myei.MyDocument != null && myei.MyDocument.LibTitle != null && myei.MyDocument.LibTitle != "") - { - DialogResult ans = MessageBox.Show("Save as Library Document for all usages?", "Document Save", MessageBoxButtons.YesNo); - if (ans == DialogResult.No) cvtLibDoc = true; - } - } - MyDSOFile.SaveFile(doc.Length, doc.Ascii, MyDisplayTabItem.MyItemInfo, cvtLibDoc, StatusChanged); - if (cvtLibDoc) - { - MyDisplayTabItem.Text = MyDisplayTabItem.MyItemInfo.TabTitle; - MyDisplayTabItem.Tooltip = MyDisplayTabItem.MyItemInfo.TabToolTip; - MyDisplayTabItem.SetPrivateTooltip(MyDisplayTabItem.MyItemInfo.TabToolTip); - } - } - public void StatusChanged(VolianStatusType type, int count, string text) - { - if (Parent != null && Parent.Parent != null && Parent.Parent.Parent is DisplayTabControl) - { - DisplayTabControl tc = Parent.Parent.Parent as DisplayTabControl; - tc.ONStatusChanged(this, new DisplayTabControlStatusEventArgs(type, count, text)); - } - } - ///// - ///// Before a document closes check to see if it's contents should be saved. - ///// - ///// - ///// - //void _MyDSOFramer_BeforeDocumentClosed(object sender, AxDSOFramer._DFramerCtlEvents_BeforeDocumentClosedEvent e) - //{ - // SaveDSOPhase1(); - //} - - private void SaveDSO_Phase1() - { - try - { - if (!IsBeingDeleted) - SaveDirty(); - this.Enter -= new EventHandler(DSOTabPanel_Enter); - // this.Leave -= new EventHandler(DSOTabPanel_Leave); - // SaveDirty(); // SaveDirty happens in CloseDSO(bool) - } - catch (Exception ex) - { - _MyLog.Warn("Before Closing Document ", ex); - } - } - /// - /// Save the contents of the Word Document to a file - /// and save the file to the database - /// - /// - public bool SaveDSO() - { - bool result = true; - try - { - bool stat = _MyEdWord.Save();// B2017-133 Edraw - Console.WriteLine("Save = {0}", stat); - SaveDSO_Phase2(); - //_MyDSOFramer_OnSaveCompleted(this, null); - // These are handled in the method above - //LBDocumentClass doc = new LBDocumentClass(_MyDSOFramer.ActiveDocument); - //MyDSOFile.FullName = GetReflectiveProperty(_MyDSOFramer.ActiveDocument, "FullName"); - //MyDSOFile.SaveFile(doc.Length, doc.Ascii); - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("SaveDSO", ex); - MessageBox.Show(ex.Message, "Error Saving Document", MessageBoxButtons.OK, MessageBoxIcon.Error); - result = false; - } - return result; - } - /// - /// Check to see if a Word document should be saved. If it is dirty ask the user if the - /// changes should be changed. Save the changes if the user says "yes". - /// - /// - public bool SaveDirty() - { - if (OverrideClose) - return false; - if (IsDirty) - { - // Unfortunately, the only way to handle view mode for DSO Framer is to not save. - if (PanelViewEditMode == E_ViewMode.View || !_AllowedToEdit) - { - MessageBox.Show("Currently in VIEW mode,\r\n cannot Save " + _MyDisplayTabItem.Tooltip); - return false; - } - //if (MessageBox.Show("Save changes to " + _MyDisplayTabItem.MyItemInfo.TabTitle + "\r\n" + _MyDisplayTabItem.MyItemInfo.TabToolTip, "Document has Changed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - if (MessageBox.Show("Save changes to " + _MyDisplayTabItem.Text + "\r\n" + _MyDisplayTabItem.Tooltip, "Document has Changed", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes) - return SaveDSO(); - return false; - } - return true; - } - public static bool IgnoreEnter = false; - private bool _In_DSOTabPanel_Enter=false; - /// - /// When a Word document is selected make sure it's tab is activated and - /// the SelectedItem for the DisplayTabControl is updated. - /// - /// - /// - private void DSOTabPanel_Enter(object sender, EventArgs e) - { - if (IgnoreEnter) return; - _MyTransparentPanel.SendToBack(); - - // Set whether this worddoc is in view/edit mode by checking whether the - // procedure is in view/edit mode (based on the steppanel. This occurs on - // the enter event so that the mode is determined any time this panel becomes - // active. - // find steptabpanel and its view/edit. If it doesn't have a steptabpanel - // use default - edit. Later when we have ownership, need to use that. - PanelViewEditMode = E_ViewMode.Edit; // default to edit - if (MyDisplayTabItem.MyItemInfo != null) // lib doc with no associated active procedure defaults to edit - { - StepTabPanel stpanel = _MyDisplayTabControl.GetProcedureTabPanel(MyDisplayTabItem.MyItemInfo); - PanelViewEditMode = (stpanel == null) ? E_ViewMode.Edit : stpanel.MyStepPanel.VwMode; - } - try - { - //_MyDSOFramer.EventsEnabled = true; - //_MyEdWord.FrameHookPolicy = DSOFramer.dsoFrameHookPolicy.dsoResetNow; - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.ErrorFormat("DSOTabPage_Enter", ex); - } - if (_In_DSOTabPanel_Enter) return; - //vlnStackTrace.ShowStack("DSOTabPanel_Enter {0} DocID {1} Index {2} {3}",_In_DSOTabPanel_Enter, this._MyDocumentInfo.DocID, _MyDisplayTabControl.MyBar.SelectedDockTab, sender.GetType().FullName); - _In_DSOTabPanel_Enter = true; - if (MyDisplayTabItem.MyItemInfo != null) - _MyDisplayTabControl.OnItemSelectedChanged(this,new ItemSelectedChangedEventArgs(MyDisplayTabItem.MyItemInfo)); - _MyEdWord.Focus(); - _In_DSOTabPanel_Enter = false; - _MyDisplayTabControl.SelectedDisplayTabItem = MyDisplayTabItem; - } - #endregion - #region Public Methods - private bool _IsBeingDeleted = false; - public bool IsBeingDeleted - { - get { return _IsBeingDeleted; } - set { _IsBeingDeleted = value; } - } - /// - /// Cleans-up the DSO Framer window - /// - /// - public bool CloseDSO() - { - return CloseDSO(false); - } - /// - /// Cleans-up the DSO Framer window - /// - /// - /// - public bool CloseDSO(bool force) - { - _MyLog.Debug("CloseDSO"); - bool result = true; - try - { - if (_MyEdWord != null) - { - SaveDSO_Phase1(); - _MyEdWord.CloseDoc(); - Controls.Remove(_MyEdWord); - components.Remove(_MyEdWord); - _MyEdWord.Dispose(); - _MyEdWord = null; - _Count--; - } - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("SaveDSO - " + this.Name, ex); - result = false; - } - return result; - } - /// - /// Activates the current DSO Framer window (Word) - /// - public void Activate() - { - try - { - //this._MyEdWord.Activate(); - //if (_MyCount <= MSWordLimit) - // this._MyEdWord.FrameHookPolicy = DSOFramer.dsoFrameHookPolicy.dsoResetNow; - } - catch (Exception ex) - { - if (_MyLog.IsErrorEnabled) _MyLog.Error("Activate", ex); - } - } - #endregion - #region DocumentProperties - - private string GetReflectiveProperty(object objectToInspect, string propertyName) - { - string returnString = ""; - //To use reflection on an object, you - // first need to get an instance - // of that object's type. - Type objectType = objectToInspect.GetType(); - //After you have the object's type, you can get - // information on that type. In this case, we're - // asking the type to tell us all the - // properties that it contains. - PropertyInfo[] properties = objectType.GetProperties(); - //You can then use the PropertyInfo array - // to loop through each property of the type. - foreach (PropertyInfo property in properties) - { - //The interest part of this code - // is the GetValue method. This method - // returns the value of the property. - if(property.Name == propertyName) - return property.GetValue(objectToInspect, null).ToString(); - } - return null; - } - #endregion - public override string ToString() - { - return string.Format("DSOTabPanel Document {0}", MyDocumentInfo.DocID); - } - } -} diff --git a/PROMS/Volian.Controls.Library/DisplayHistory.cs.bak b/PROMS/Volian.Controls.Library/DisplayHistory.cs.bak deleted file mode 100644 index a5404609..00000000 --- a/PROMS/Volian.Controls.Library/DisplayHistory.cs.bak +++ /dev/null @@ -1,1031 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using System.IO; -using System.Text.RegularExpressions; - -namespace Volian.Controls.Library -{ - public partial class DisplayHistory : UserControl - { - #region Events - public event DisplayHistoryReportEvent ChronologyPrintRequest; - public event DisplayHistoryReportEvent SummaryPrintRequest; - private void OnChronologyPrintRequest(DisplayHistoryReportEventArgs args) - { - if (ChronologyPrintRequest != null) - ChronologyPrintRequest(this, args); - } - private void OnSummaryPrintRequest(DisplayHistoryReportEventArgs args) - { - if (SummaryPrintRequest != null) - SummaryPrintRequest(this, args); - } - public event DisplayHistoryEvent HistorySelectionChanged; - private void OnHistorySelectionChanged(DisplayHistoryEventArgs args) - { - if (HistorySelectionChanged != null) - HistorySelectionChanged(this, args); - } - public event ItemRestoredHandler ItemRestored; - private void OnItemRestored(ItemInfo restoredItemInfo) - { - if (ItemRestored != null) ItemRestored(restoredItemInfo); - } - public event AnnotationRestoredHandler AnnotationRestored; - private void OnAnnotationRestored(AnnotationInfo restoredAnnotationInfo, ItemInfo currentItem) - { - if (AnnotationRestored != null) AnnotationRestored(restoredAnnotationInfo, currentItem); - } - #endregion - private ContentAuditInfoList _ChronologyAuditList; - private ContentAuditInfoList _SummaryAuditList; - private AnnotationAuditInfoList _AnnotationList; - private ProcedureInfo _MyProcedureInfo; - public ProcedureInfo MyProcedureInfo - { - get { return _MyProcedureInfo; } - set - { - if (value is ProcedureInfo && _MyProcedureInfo is ProcedureInfo && value.ItemID == _MyProcedureInfo.ItemID) - return; - _MyProcedureInfo = value; - if (value == null) return; - SetRevDate(MyProcedureInfo.DTS); - if (_MyProcedureInfo != null && this.Visible) - WalkProcedure(); - } - } - private void SetRevDate(DateTime dts) - { - MyRevDate = dts; - RefreshRequired = true; - } - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set - { - if (value is ItemInfo && _MyItemInfo is ItemInfo && value.ItemID == _MyItemInfo.ItemID) - return; - _MyItemInfo = value; - if (_MyItemInfo != null) - { - MyProcedureInfo = _MyItemInfo.MyProcedure; - this.Visible = true; - UpdateHistory(); - if (this.lbChanges.Visible && RefreshRequired) - { - WalkProcedure(); - } - } - else - this.Visible = false; - } - } - private EditItem _MyEditItem; - public EditItem MyEditItem - { - get { return _MyEditItem; } - set - { - _MyEditItem = value; - if (value != null) - MyItemInfo = value.MyItemInfo; - else - MyItemInfo = null; - } - } - public void RefreshList() - { - if (MyEditItem == null) - this.Visible = false; - if (this.Visible) - { - WalkProcedure(); - UpdateHistory(); - } - } - private int _ApplDisplayMode = -1; - public int ApplDisplayMode - { - get { return _ApplDisplayMode; } - set - { - if (MyProcedureInfo == null) return; - _ApplDisplayMode = value; - RefreshRequired = true; - if (_ApplDisplayMode > 0) - { - MyProcedureInfo.MyProcedure.MyContent.RefreshContentDetails(); - ProcedureConfig cfg = MyProcedureInfo.MyConfig as ProcedureConfig; - cfg.SelectedSlave = value; - if (cfg.Print_RevDate == null || cfg.Print_RevDate == string.Empty) - SetRevDate(MyProcedureInfo.DTS); - else - SetRevDate(DateTime.Parse(cfg.Print_RevDate)); - } - else - { - DateTime minDts = DateTime.MaxValue; - for (int j = 1; j <= MyProcedureInfo.MyDocVersion.DocVersionConfig.Unit_Count; j++) - { - ProcedureConfig cfg = MyProcedureInfo.MyConfig as ProcedureConfig; - cfg.SelectedSlave = j; - if (cfg.Print_RevDate != null && cfg.Print_RevDate != string.Empty) - { - if (DateTime.Parse(cfg.Print_RevDate) < minDts && DateTime.Parse(cfg.Print_RevDate) > MyProcedureInfo.DTS) - minDts = DateTime.Parse(cfg.Print_RevDate); - } - else - minDts = MyProcedureInfo.DTS; - } - SetRevDate(minDts); - } - } - } - private DateTime _MyRevDate; - public DateTime MyRevDate - { - get { return _MyRevDate; } - set { _MyRevDate = value; } - } - private bool RefreshRequired = false; - public DisplayHistory() - { - InitializeComponent(); - myRTB.FormatFont = null; - RefreshRequired = true; - //tabControl1.SelectedTab = tabItem2;// Start with Change List - } - private void lbChanges_VisibleChanged(object sender, System.EventArgs e) - { - if (ApplDisplayMode == -1) - { - ApplDisplayMode = 0; - } - if (RefreshRequired) - { - Console.WriteLine("before walkprocedure - {0}", DateTime.Now.ToLongTimeString()); - WalkProcedure(); - Console.WriteLine("after walkprocedure - {0}", DateTime.Now.ToLongTimeString()); - } - } - - private void lbChanges_SelectedIndexChanged(object sender, EventArgs e) - { - if (lbChanges.SelectedIndex > -1) - { - ContentAuditInfo cai = lbChanges.SelectedItem as ContentAuditInfo; - if (cai != null) - { - if (cai.DeleteStatus > 0) - MessageBox.Show("This item has been deleted.","Deleted Item",MessageBoxButtons.OK,MessageBoxIcon.Exclamation); - else - OnHistorySelectionChanged(new DisplayHistoryEventArgs(cai.ItemID)); - } - else - { - AnnotationAuditInfo aai = lbChanges.SelectedItem as AnnotationAuditInfo; - OnHistorySelectionChanged(new DisplayHistoryEventArgs(aai.ItemID)); - } - } - } - private void UpdateHistory() - { - this.Cursor = Cursors.WaitCursor; - //DateTime start = DateTime.Now; - //Console.WriteLine(start); - #region setup - btnRestore.Enabled = false; - myRTB.Clear(); - //myRTB.LastRtf = string.Empty; - myVFG.Clear(); - tvAudits.Nodes.Clear(); - if (MyItemInfo == null) - { - this.Cursor = Cursors.Default; - return; - } - MyItemInfo.RefreshItemAnnotations(); - #endregion - //if (AnnotationOnly) - //{ - #region annotation deleted - //annotation deleted by itemid - TreeNode annotationDeleted = null; - AnnotationAuditInfoList aail = AnnotationAuditInfoList.GetByItemID(MyItemInfo.ItemID); - foreach (AnnotationAuditInfo aai in aail) - { - TreeNode tn = null; - if (aai.DeleteStatus > 0) - { - if (annotationDeleted == null) - annotationDeleted = tvAudits.Nodes.Add("Deleted Annotations"); - if (tn == null) - { - AnnotationTypeInfo ati = AnnotationTypeInfo.Get(aai.TypeID); - tn = annotationDeleted.Nodes.Add(ati.Name); - } - TreeNode cn = tn.Nodes.Add(aai.ListString()); - cn.Tag = aai; - } - } - //end annotation deleted - #endregion - #region annotation changes - //annotation change by annotationid - TreeNode annotationHistory = null; - if (MyItemInfo.ItemAnnotationCount > 0) - { - foreach (AnnotationInfo ai in MyItemInfo.ItemAnnotations) - { - TreeNode tn = null; - aail = AnnotationAuditInfoList.GetByAnnotationID(ai.AnnotationID); - foreach (AnnotationAuditInfo aai in aail) - { - if (aai.DTS != ai.DTS) - { - if (annotationHistory == null) - annotationHistory = tvAudits.Nodes.Add("Annotation History"); - if (tn == null) - tn = annotationHistory.Nodes.Add(string.Format("{0} - {1}", ai.MyAnnotationType.Name, ai.SearchText)); - TreeNode cn = tn.Nodes.Add(aai.ToString()); - cn.Tag = aai; - } - } - } - } - //end annotation change - #endregion - // return; - //} - #region content changes - //content changes - TreeNode contentHistory = null; - if (MyItemInfo == null) return; - ContentAuditInfoList cail = ContentAuditInfoList.Get(MyItemInfo.ContentID, MyItemInfo.MyProcedure.DTS); - // ContentAuditInfoList cail = ContentAuditInfoList.GetChronology(MyItemInfo.MyProcedure.ItemID, MyItemInfo.ItemID, false); - ContentInfo ci = ContentInfo.Get(MyItemInfo.ContentID); - foreach (ContentAuditInfo cai in cail) - { - if (cai.DeleteStatus == 0) - { - if (cai.Type == 20008) - { - GridAuditInfoList gail = GridAuditInfoList.Get(cai.ContentID); - foreach (GridAuditInfo gai in gail) - { - if (gai.DeleteStatus == 0) - { - if (contentHistory == null) - contentHistory = tvAudits.Nodes.Add("Content Changes"); //contentHistory = tvAudits.Nodes.Add("Content History"); - TreeNode tn = contentHistory.Nodes.Add(gai.ToString()); - tn.Tag = gai; - } - } - break; - } - else if (cai.DTS != ci.DTS) - { - if (contentHistory == null) - contentHistory = tvAudits.Nodes.Add("Content Changes"); //contentHistory = tvAudits.Nodes.Add("Content History"); - TreeNode tn = contentHistory.Nodes.Add(cai.ListString()); - tn.Tag = cai; - } - } - } - //end content changes - #endregion - #region items - TreeNode deletedItems = null; - TreeNode previousItem = null; - TreeNode nextItem = null; - TreeNode procedurePart = null; - TreeNode sectionPart = null; - TreeNode cautionPart = null; - TreeNode notePart = null; - TreeNode rnoPart = null; - TreeNode stepPart = null; - TreeNode tablePart = null; - #endregion - ItemAuditInfoList iail = ItemAuditInfoList.Get(MyItemInfo.ItemID); - foreach (ItemAuditInfo iai in iail) - { - #region old style - // switch (iai.Level) - // { - // #region previous item - // case 0: //previous item - // { - // #region old style - // //if (previousItem == null) - // // previousItem = tvAudits.Nodes.Add("Deleted Previous Item"); //previousItem = tvAudits.Nodes.Add("Previous Item"); - // //TreeNode tn = previousItem.Nodes.Add(iai.ToString()); - // //tn.Tag = iai; - // #endregion - // #region new style - // if (deletedItems == null) - // deletedItems = tvAudits.Nodes.Add("Deleted Items"); - // TreeNode tnn = deletedItems.Nodes.Add(iai.ToString()); - // tnn.Tag = iai; - // #endregion - // break; - // } - // #endregion - // #region next item - // case 1: //next item - // { - // #region old style - // //if (nextItem == null) - // // nextItem = tvAudits.Nodes.Add("Deleted Next Item"); //nextItem = tvAudits.Nodes.Add("Next Item"); - // //TreeNode tn = nextItem.Nodes.Add(iai.ToString()); - // //tn.Tag = iai; - // #endregion - // #region new style - // if (deletedItems == null) - // deletedItems = tvAudits.Nodes.Add("Deleted Items"); - // TreeNode tnn = deletedItems.Nodes.Add(iai.ToString()); - // tnn.Tag = iai; - // #endregion - // break; - // } - // #endregion - // case 2: //parts - // { - // #region old style - // //PartAuditInfoList pail = null; - // //pail = PartAuditInfoList.GetByDeleteStatus(iai.DeleteStatus); - // //if (pail.Count == 0) - // // pail = PartAuditInfoList.GetByItemID(iai.ItemID); - // //foreach (PartAuditInfo pai in pail) - // //{ - // // if (pai.ContentID == MyItemInfo.ContentID) - // // { - // // switch (pai.FromType) - // // { - // // #region procedure part - // // case 1: //procedures - // // { - // // if (procedurePart == null) - // // procedurePart = tvAudits.Nodes.Add("Deleted Procedures"); //procedurePart = tvAudits.Nodes.Add("Procedures"); - // // TreeNode tn = procedurePart.Nodes.Add(iai.ToString()); - // // tn.Tag = iai; - // // break; - // // } - // // #endregion - // // #region section part - // // case 2: //sections - // // { - // // if (sectionPart == null) - // // sectionPart = tvAudits.Nodes.Add("Deleted Sections"); //sectionPart = tvAudits.Nodes.Add("Sections"); - // // TreeNode tn = sectionPart.Nodes.Add(iai.ToString()); - // // tn.Tag = iai; - // // break; - // // } - // // #endregion - // // #region caution part - // // case 3: //cautions - // // { - // // if (cautionPart == null) - // // cautionPart = tvAudits.Nodes.Add("Deleted Cautions"); //cautionPart = tvAudits.Nodes.Add("Cautions"); - // // TreeNode tn = cautionPart.Nodes.Add(iai.ToString()); - // // tn.Tag = iai; - // // break; - // // } - // // #endregion - // // #region note part - // // case 4: //notes - // // { - // // if (notePart == null) - // // notePart = tvAudits.Nodes.Add("Deleted Notes"); //notePart = tvAudits.Nodes.Add("Notes"); - // // TreeNode tn = notePart.Nodes.Add(iai.ToString()); - // // tn.Tag = iai; - // // break; - // // } - // // #endregion - // // #region rno part - // // case 5: //rnos - // // { - // // if (rnoPart == null) - // // rnoPart = tvAudits.Nodes.Add("Deleted RNOs"); //rnoPart = tvAudits.Nodes.Add("RNOs"); - // // TreeNode tn = rnoPart.Nodes.Add(iai.ToString()); - // // tn.Tag = iai; - // // break; - // // } - // // #endregion - // // #region step part - // // case 6: //steps - // // { - // // if (stepPart == null) - // // stepPart = tvAudits.Nodes.Add("Deleted Steps"); //stepPart = tvAudits.Nodes.Add("Steps"); - // // TreeNode tn = stepPart.Nodes.Add(iai.ToString()); - // // tn.Tag = iai; - // // break; - // // } - // // #endregion - // // #region table part - // // case 7: //tables - // // { - // // if (tablePart == null) - // // tablePart = tvAudits.Nodes.Add("Deleted Tables"); //tablePart = tvAudits.Nodes.Add("Tables"); - // // TreeNode tn = tablePart.Nodes.Add(iai.ToString()); - // // tn.Tag = iai; - // // break; - // // } - // // #endregion - // // } - // // } - // //} - // #endregion - // #region new style - // if (deletedItems == null) - // deletedItems = tvAudits.Nodes.Add("Deleted Items"); - // TreeNode tnn = deletedItems.Nodes.Add(iai.ToString()); - // tnn.Tag = iai; - // #endregion - // break; - // } - //} - #endregion - #region new style - if (deletedItems == null) - deletedItems = tvAudits.Nodes.Add("Deleted Items"); - TreeNode tnn = deletedItems.Nodes.Add(iai.ToString()); - tnn.Tag = iai; - #endregion - } - //Console.WriteLine("UpdateHistory: {0} seconds",TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks).TotalSeconds); - this.Cursor = Cursors.Default; - } - private void WalkProcedure() - { - //return; - this.ParentForm.Cursor = Cursors.WaitCursor; - Application.DoEvents(); - //DateTime start = DateTime.Now; - //Console.WriteLine(start); - lbChanges.Items.Clear(); - if (MyProcedureInfo == null) - { - this.Cursor = Cursors.Default; - btnViewSummaryReport.Enabled = btnViewChronologyReport.Enabled = lbChanges.Items.Count > 0; - return; - } - ContentAuditInfoList cail2; - ContentAuditInfoList cail3; - AnnotationAuditInfoList aail2; - if (ApplDisplayMode > 0) - { - cail2 = ContentAuditInfoList.GetChronologyByUnit(MyProcedureInfo.ItemID, MyProcedureInfo.ItemID, false, ApplDisplayMode); - cail3 = ContentAuditInfoList.GetSummaryByUnit(MyProcedureInfo.ItemID, MyProcedureInfo.ItemID, false, ApplDisplayMode); - aail2 = AnnotationAuditInfoList.GetChronologyByUnit(MyProcedureInfo.ItemID, MyProcedureInfo.ItemID, ApplDisplayMode); - } - else - { - cail2 = ContentAuditInfoList.GetChronology(MyProcedureInfo.ItemID, MyProcedureInfo.ItemID, false); - cail3 = ContentAuditInfoList.GetSummary(MyProcedureInfo.ItemID, MyProcedureInfo.ItemID, false); - aail2 = AnnotationAuditInfoList.GetChronology(MyProcedureInfo.ItemID, MyProcedureInfo.ItemID); - } - //Console.WriteLine("WalkProcedure cail2: {0} seconds", TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks).TotalSeconds); - _ChronologyAuditList = cail2; - _SummaryAuditList = cail3; - //Console.WriteLine("WalkProcedure aail2: {0} seconds", TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks).TotalSeconds); - _AnnotationList = aail2; - foreach (ContentAuditInfo cai in cail2) - { - if (cai.DTS > MyRevDate || cai.ActionWhen > MyRevDate) - { - string itemTitle = FixPath(cai.Path); - lbChanges.Items.Add(cai); - } - } - foreach (AnnotationAuditInfo aai in aail2) - { - string stepnum = string.Empty; - foreach (ContentAuditInfo cai in cail2) - { - if (cai.ContentID == aai.IContentID) - { - stepnum = FixPath(cai.Path); - break; - } - } - if (stepnum == string.Empty) - { - ItemInfo iii = aai.MyItemInfo; - if(iii != null) - stepnum = FixPath(iii.SearchPath); - } - if (aai.DTS > MyRevDate) - lbChanges.Items.Add(aai); - } - //Console.WriteLine("WalkProcedure fini: {0} seconds", TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks).TotalSeconds); - this.ParentForm.Cursor = Cursors.Default; - btnViewSummaryReport.Enabled = btnViewChronologyReport.Enabled = lbChanges.Items.Count > 0; - RefreshRequired = false; - return; - #region oldstuff - //string itemType = string.Empty; - //lbChanges.Items.Clear(); - //ItemInfo myproc = _MyItemInfo.MyProcedure; - //ItemInfo ii = myproc; - //int lenNumber = myproc.DisplayNumber.Length + 2; - //if (ii == null) return; - //while (ii != null && ii.MyProcedure.ItemID == myproc.ItemID) - //{ - // itemType = ii.IsCaution ? "Caution for" : ii.IsNote ? "Note for" : ii.IsStep ? "Step" : "Item"; - // //items - // if (ii.IsItemNew) - // { - // lbChanges.Items.Add(string.Format("{4} {0} added by {1} on {2} @ {3}", ii.ShortPath.Substring(lenNumber), ii.UserID, ii.DTS.ToShortDateString(), ii.DTS.ToShortTimeString(), itemType)); - // //int k = lbChanges.Items.Add(string.Format("{0} @ {1} - {2}", "Item Added", ii.DTS.ToString(), ii.DisplayText)); - // //ListViewItem lvi = new ListViewItem("Item Added"); - // //lvi.SubItems.Add(ii.ItemID.ToString()); - // //lvi.SubItems.Add(ii.DTS.ToString()); - // //lvi.SubItems.Add(ii.DisplayText); - // //lvi.SubItems.Add(ii.ShortPath.Substring(lenNumber)); - // //listView1.Items.Add(lvi); - // if (ii.IsItemChanged) - // { - // ContentAuditInfoList cail = ContentAuditInfoList.Get(ii.ContentID); - // if (cail.Count > 0) - // { - // foreach (ContentAuditInfo cai in cail) - // { - // if (cai.Text != string.Empty) - // { - // lbChanges.Items.Add(string.Format("{4} {0} changed by {1} on {2} @ {3}", ii.ShortPath.Substring(lenNumber), ii.MyContent.UserID, ii.MyContent.DTS.ToShortDateString(), ii.MyContent.DTS.ToShortTimeString(), itemType)); - // } - // } - // } - // } - // } - // else if (ii.IsItemChanged) - // { - // //Results.Add(ii); - // lbChanges.Items.Add(string.Format("{4} {0} changed by {1} on {2} @ {3}", ii.ShortPath.Substring(lenNumber), ii.MyContent.UserID, ii.MyContent.DTS.ToShortDateString(), ii.MyContent.DTS.ToShortTimeString(), itemType)); - // //int k = lbChanges.Items.Add(string.Format("{0} @ {1} - {2}", "Content Changed", ii.DTS.ToString(), ii.DisplayText)); - // //ListViewItem lvi = new ListViewItem("Item Changed"); - // //lvi.SubItems.Add(ii.ItemID.ToString()); - // //lvi.SubItems.Add(ii.MyContent.DTS.ToString()); - // //lvi.SubItems.Add(ii.DisplayText); - // //lvi.SubItems.Add(ii.ShortPath.Substring(lenNumber)); - // //listView1.Items.Add(lvi); - // } - // ItemAuditInfoList iail = ItemAuditInfoList.Get(ii.ItemID); - // foreach (ItemAuditInfo iai in iail) - // { - // if (iai.DeleteStatus > 0 && iai.Level == 1) - // { - // lbChanges.Items.Add(string.Format("{4} after {0} deleted by {1} on {2} @ {3}", ii.ShortPath.Substring(lenNumber), iai.UserID, iai.DTS.ToShortDateString(), iai.DTS.ToShortTimeString(), itemType)); - // //int k = lbChanges.Items.Add(string.Format("{0} @ {1} - {2}", "Item Deleted", ii.DTS.ToString(), "TODO: figure out how to get iai.DisplayText")); - // //ListViewItem lvi = new ListViewItem("Item Deleted"); - // //lvi.SubItems.Add(iai.ItemID.ToString()); - // //lvi.SubItems.Add(iai.DTS.ToString()); //iai.MyContent.DTS.ToString() - // //lvi.SubItems.Add("TODO: figure out how to get iai.DisplayText"); //TODO: figure out how to get iai.DisplayText - // //lvi.SubItems.Add("After " + ii.ShortPath.Substring(lenNumber)); - // } - // else - // { - // PartAuditInfoList pail = null; - // pail = PartAuditInfoList.GetByItemID(iai.ItemID); - // if (pail.Count > 0) - // { - // foreach (PartAuditInfo pai in pail) - // { - // itemType = pai.FromType == 3 ? "Caution for" : pai.FromType == 4 ? "Note for" : pai.FromType == 6 ? "Step" : "Item" + pai.FromType.ToString(); - // lbChanges.Items.Add(string.Format("{4} {0} deleted by {1} on {2} @ {3}", ii.ShortPath.Substring(lenNumber), iai.UserID, iai.DTS.ToShortDateString(), iai.DTS.ToShortTimeString(), itemType)); - // } - // } - // } - // } - // //annotations - // if (ii.ItemAnnotations != null) - // { - // foreach (AnnotationInfo ai in ii.ItemAnnotations) - // { - // if (ai.IsAnnotationNew) - // { - // int k = lbChanges.Items.Add(string.Format("{0} @ {1} - {2}", "Annotation Added", ai.DTS.ToString(), ai.SearchText)); - // //ListViewItem lvi = new ListViewItem("Annotation Added"); - // //lvi.SubItems.Add(ai.AnnotationID.ToString()); - // //lvi.SubItems.Add(ai.DTS.ToString()); - // //lvi.SubItems.Add(ai.SearchText); - // //lvi.SubItems.Add(ii.ShortPath.Substring(lenNumber)); - // //listView1.Items.Add(lvi); - // } - // else - // { - // int k = lbChanges.Items.Add(string.Format("{0} @ {1} - {2}", "Annotation Changed", ai.DTS.ToString(), ai.SearchText)); - // //ListViewItem lvi = new ListViewItem("Annotation Changed"); - // //lvi.SubItems.Add(ai.AnnotationID.ToString()); - // //lvi.SubItems.Add(ai.DTS.ToString()); - // //lvi.SubItems.Add(ai.SearchText); - // //lvi.SubItems.Add(ii.ShortPath.Substring(lenNumber)); - // //listView1.Items.Add(lvi); - // } - // } - // AnnotationAuditInfoList aail = AnnotationAuditInfoList.GetByItemID(ii.ItemID); - // foreach (AnnotationAuditInfo aai in aail) - // { - // if (aai.DeleteStatus > 0) - // { - // int k = lbChanges.Items.Add(string.Format("{0} @ {1} - {2}", "Annotation Deleted", aai.DTS.ToString(), aai.SearchText)); - // //ListViewItem lvi = new ListViewItem("Annotation Deleted"); - // //lvi.SubItems.Add(aai.AnnotationID.ToString()); - // //lvi.SubItems.Add(aai.DTS.ToString()); - // //lvi.SubItems.Add(aai.SearchText); - // //lvi.SubItems.Add(ii.ShortPath.Substring(lenNumber)); - // //listView1.Items.Add(lvi); - // } - // } - // } - // //content changes - // //ContentAuditInfoList cail = ContentAuditInfoList.Get(ii.MyContent.ContentID); - // //foreach (ContentAuditInfo cai in cail) - // //{ - // // int k = lbChanges.Items.Add(string.Format("{0} @ {1} - {2}", "Content Changed", cai.DTS.ToString(), cai.Text)); - // //ListViewItem lvi = new ListViewItem("Content Changed"); - // //lvi.SubItems.Add(cai.ContentID.ToString()); - // //lvi.SubItems.Add(cai.DTS.ToString()); - // //lvi.SubItems.Add(cai.Text); - // //lvi.SubItems.Add(ii.ShortPath.Substring(lenNumber)); - // //listView1.Items.Add(lvi); - // //} - // ii = ii.SearchNext; - //} - //btnViewSummaryReport.Enabled = btnViewChronologyReport.Enabled = lbChanges.Items.Count > 0; - //RefreshRequired = false; - #endregion - } - private static string FixPath(string path) - { - string itemTitle = Regex.Replace(path, "^..+?\\u0007", ""); - itemTitle = itemTitle.Replace("\x11", itemTitle[0] == '\x11' ? "" : " - ").Replace("\\u8209?", "-"); - return itemTitle; - } - private void btnViewChronologyReport_Click(object sender, EventArgs e) - { - RefreshList(); - //if (lbChanges.Items.Count > 0) - //{ - //jcb added 20120425 to suppress annotations in report - _AnnotationList = AnnotationAuditInfoList.GetChronology(0, 0); - //added setting selected slave in order for reports to replace unit number,etc jcb 20101010 - MyItemInfo.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = ApplDisplayMode; - OnChronologyPrintRequest(new DisplayHistoryReportEventArgs(Volian.Base.Library.VlnSettings.TemporaryFolder + @"\MyChronology.pdf", MyItemInfo.MyProcedure, _ChronologyAuditList, _AnnotationList)); - //} - } - private void btnViewSummaryReport_Click(object sender, EventArgs e) - { - RefreshList(); - //if (lbChanges.Items.Count > 0) - //{ - //jcb added 20120425 to suppress annotations in report - _AnnotationList = AnnotationAuditInfoList.GetChronology(0, 0); - //added setting selected slave in order for reports to replace unit number,etc jcb 20101010 - MyItemInfo.MyProcedure.MyDocVersion.DocVersionConfig.SelectedSlave = ApplDisplayMode; - OnSummaryPrintRequest(new DisplayHistoryReportEventArgs(Volian.Base.Library.VlnSettings.TemporaryFolder + @"\MySummary.pdf", MyItemInfo.MyProcedure, _SummaryAuditList, _AnnotationList)); - //} - } - private void btnRefresh_Click(object sender, EventArgs e) - { - RefreshList(); - } - private void btnRestore_Click(object sender, EventArgs e) - { - TreeNode tn = tvAudits.SelectedNode; - if (tn.Tag is ContentAuditInfo) - { - ContentAuditInfo cai = tn.Tag as ContentAuditInfo; - if (MessageBox.Show(this, "Do you want to restore this content change?", "Confirm Content Change Restore", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) - { - ContentInfo ci = ContentInfo.RestoreContent(cai); - RefreshRequired = true; - UpdateHistory(); - myRTB.Clear(); - myVFG.Clear(); - MyEditItem.SetAllTabs(); - } - } - if (tn.Tag is ItemAuditInfo) - { - ItemAuditInfo iai = tn.Tag as ItemAuditInfo; - if (MessageBox.Show(this, string.Format("Do you want to restore this {0}?",iai.ItemType), string.Format("Confirm {0} Restore",iai.ItemType), MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) - { - //Console.WriteLine("DisplayHistory.btnRestore_Click @ {0}", DateTime.Now); - ItemInfo ii = null; - if (iai.Level == 2) - { - ii = MyItemInfo.RestoreItem(iai); - - //_MyEditItem.AddChild((E_FromType)fromtype, contenttype); - //ii.ItemParts[0].FromType - //ii.MyContent.Type - EditItem nextItem = MyEditItem.GetNextItem((E_FromType)ii.ItemParts[0].FromType, ii); - //MyEditItem.AddChild(ii.MyContent.Text, (E_FromType)ii.ItemParts[0].FromType, (int)ii.MyContent.Type, null); - if (ii.IsStep) - ii = StepInfo.Get(ii.ItemID); - else if (ii.IsSection) - ii = SectionInfo.Get(ii.ItemID); - else if (ii.IsProcedure) - ii = ProcedureInfo.Get(ii.ItemID); - if (nextItem != null) - { - switch (nextItem.MyChildRelation) - { - case ChildRelation.None: - break; - case ChildRelation.After: - MyEditItem.AddChildAfter(ii, nextItem); - break; - case ChildRelation.Before: - MyEditItem.AddChildBefore(ii, nextItem); - break; - case ChildRelation.RNO: - MyEditItem.AddChildRNO(ii, nextItem); - break; - default: - break; - } - } - else - { - switch ((E_FromType)ii.ItemParts[0].FromType) - { - case E_FromType.Caution: - MyEditItem.AddChildBefore(ii, nextItem); - break; - case E_FromType.Note: - MyEditItem.AddChildBefore(ii, nextItem); - break; - case E_FromType.Procedure: - MyEditItem.AddChildAfter(ii, nextItem); - break; - case E_FromType.RNO: - MyEditItem.AddChildRNO(ii, nextItem); - break; - case E_FromType.Section: - MyEditItem.AddChildAfter(ii, nextItem); - break; - case E_FromType.Step: - MyEditItem.AddChildAfter(ii, nextItem); - break; - case E_FromType.Table: - MyEditItem.AddChildAfter(ii, nextItem); - break; - default: - MyEditItem.AddChildAfter(ii, nextItem); - break; - } - } - } - else - { - ii = MyItemInfo.RestoreSibling(iai); - if (ii.IsStep) - ii = StepInfo.Get(ii.ItemID); - else if (ii.IsSection) - ii = SectionInfo.Get(ii.ItemID); - else if (ii.IsProcedure) - ii = ProcedureInfo.Get(ii.ItemID); - EditItem nextItem = iai.Level == 0 ? MyEditItem : MyEditItem.MyNextEditItem; - switch (MyEditItem.MyChildRelation) - { - case ChildRelation.None: - break; - case ChildRelation.After: - MyEditItem.ActiveParent.AddChildAfter(ii, nextItem); - break; - case ChildRelation.Before: - MyEditItem.ActiveParent.AddChildBefore(ii, nextItem); - break; - case ChildRelation.RNO: - MyEditItem.ActiveParent.AddChildRNO(ii, nextItem); - break; - default: - break; - } - ii.UpdateTransitionText(); - } - if(MyEditItem.MyPreviousEditItem != null) - MyEditItem.MyPreviousEditItem.SetAllTabs(); - else - MyEditItem.SetAllTabs(); - RefreshRequired = true; - UpdateHistory(); - myRTB.Clear(); - myVFG.Clear(); - } - } - if (tn.Tag is AnnotationAuditInfo) - { - AnnotationAuditInfo aai = tn.Tag as AnnotationAuditInfo; - if (MessageBox.Show(this, "Do you want to restore this annotation?", "Confirm Annotation Restore", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) - { - AnnotationInfo ai = AnnotationInfo.RestoreAnnotation(aai); - OnAnnotationRestored(ai, ai.MyItem); - RefreshRequired = true; - UpdateHistory(); - myRTB.Clear(); - myVFG.Clear(); - } - } - if (tn.Tag is GridAuditInfo) - { - GridAuditInfo gai = tn.Tag as GridAuditInfo; - if (MessageBox.Show(this, "Do you want to restore this table?", "Confirm Table Restore", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question) == DialogResult.Yes) - { - ContentAuditInfo cai = ContentAuditInfo.Get(gai.ContentAuditID); - ContentInfo ci = ContentInfo.RestoreContent(cai); - RefreshRequired = true; - UpdateHistory(); - myRTB.Clear(); - myVFG.Clear(); - } - } - } - private void DisplayTagRTF(TreeNode tn) - { - if (tn.Tag != null) - { - if (tn.Tag is GridAuditInfo) - { - btnRestore.Enabled = true; - GridAuditInfo gai = tn.Tag as GridAuditInfo; - myVFG.Visible = true; - myVFG.BringToFront(); - panel1.Invalidate(new Rectangle(0, 0, myVFG.Width + 4, 4)); - panel1.Invalidate(new Rectangle(0, 0, 4, myVFG.Height + 4)); - myRTB.Visible = false; - panel1.Visible = false; - using (StringReader sr = new StringReader(gai.Data)) - { - myVFG.ReadXml(sr); - sr.Close(); - } - panel1.Visible = true; - return; - } - if (tn.Tag is ContentAuditInfo) - { - btnRestore.Enabled = true; - myVFG.Clear(); - ContentAuditInfo cai = tn.Tag as ContentAuditInfo; - GridAuditInfoList gail = GridAuditInfoList.Get(cai.ContentID); - if (gail.Count > 0) - { - foreach (GridAuditInfo gai in gail) - { - if (gai.DTS == cai.DTS) - { - myVFG.Visible = true; - myVFG.BringToFront(); - myRTB.Visible = false; - using (StringReader sr = new StringReader(gai.Data)) - { - myVFG.ReadXml(sr); - sr.Close(); - } - return; - } - } - } - else - { - myRTB.Visible = true; - myRTB.BringToFront(); - myVFG.Visible = false; -// myRTB.Font = new Font("Arial", 12, FontStyle.Regular); -// myRTB.Text = cai.Text; - //myRTB.SetupRichText("bozo", MyItemInfo.FormatStepData == null ? MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font : MyItemInfo.FormatStepData.Font); - //myRTB.LastRtf = string.Empty; - myRTB.SetupRichText(cai.Text, MyItemInfo.FormatStepData == null ? MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font : MyItemInfo.FormatStepData.Font); - } - } - if (tn.Tag is ItemAuditInfo) - { - btnRestore.Enabled = true; - ItemAuditInfo iai = tn.Tag as ItemAuditInfo; - ContentAuditInfoList cail = ContentAuditInfoList.Get(iai.ContentID); - foreach (ContentAuditInfo cai in cail) - { - if (cai.DeleteStatus == iai.DeleteStatus) - { - //myRTB.Font = new Font("Arial", 12, FontStyle.Regular); - //myRTB.Text = cai.Text; - myRTB.SetupRichText(cai.Text, MyItemInfo.FormatStepData == null ? MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font : MyItemInfo.FormatStepData.Font); - } - } - } - if (tn.Tag is AnnotationAuditInfo) - { - btnRestore.Enabled = true; - AnnotationAuditInfo iai = tn.Tag as AnnotationAuditInfo; - myRTB.Font = new Font("Arial", 12, FontStyle.Regular); - myRTB.Rtf = iai.RtfText; - //myRTB.Rtf = iai.RtfText; - } - } - else - { - btnRestore.Enabled = false; - myRTB.Clear(); - myVFG.Clear(); - } - } - private void tvAudits_AfterSelect(object sender, TreeViewEventArgs e) - { - DisplayTagRTF(e.Node); - } - private void DisplayHistory_Resize(object sender, EventArgs e) - { - tvAudits.Height = ((tcpDetail.Height - btnRestore.Height) / 4) * 3; - } - - private void DisplayHistory_VisibleChanged(object sender, EventArgs e) - { - //this.tabControl1.SelectedTab = tabItem2; - //if(this.lbChanges.Visible)this.RefreshList(); - //add jcb 20121008 - //if (this.lbChanges.Visible && RefreshRequired) - // WalkProcedure(); - //end jcb 20121008 - } - public void RefreshChangeList() - { - myTimer.Enabled = false; - myTimer.Enabled = true; - } - private void myTimer_Tick(object sender, System.EventArgs e) - { - myTimer.Enabled = false; - if (this.lbChanges.Visible) - this.tabControl1.SelectedTab = tabItem2; - UpdateHistory(); - RefreshRequired = true; - } - - } - - public delegate void ItemRestoredHandler(ItemInfo restoredItemInfo); - public delegate void AnnotationRestoredHandler(AnnotationInfo restoredAnnotationInfo, ItemInfo currentItem); - public delegate void DisplayHistoryReportEvent(object sender, DisplayHistoryReportEventArgs args); - public delegate void DisplayHistoryEvent(object sender, DisplayHistoryEventArgs args); - public class DisplayHistoryReportEventArgs - { - private string _ReportName; - public string ReportTitle - { - get { return _ReportName; } - set { _ReportName = value; } - } - private ProcedureInfo _ProcedureInfo; - public ProcedureInfo ProcedureInfo - { - get { return _ProcedureInfo; } - set { _ProcedureInfo = value; } - } - private ContentAuditInfoList _AuditList; - public ContentAuditInfoList AuditList - { - get { return _AuditList; } - set { _AuditList = value; } - } - private AnnotationAuditInfoList _AnnotationList; - public AnnotationAuditInfoList AnnotationList - { - get { return _AnnotationList; } - set { _AnnotationList = value; } - } - - public DisplayHistoryReportEventArgs(string reportName, ProcedureInfo procedureInfo, ContentAuditInfoList auditList, AnnotationAuditInfoList annotationList) - { - _ReportName = reportName; - _ProcedureInfo = procedureInfo; - _AuditList = auditList; - _AnnotationList = annotationList; - } - } - public class DisplayHistoryEventArgs - { - private int _ItemID; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - public DisplayHistoryEventArgs(int itemID) - { - _ItemID = itemID; - } - } -} - diff --git a/PROMS/Volian.Controls.Library/DisplayRO.cs.bak b/PROMS/Volian.Controls.Library/DisplayRO.cs.bak deleted file mode 100644 index cea4a255..00000000 --- a/PROMS/Volian.Controls.Library/DisplayRO.cs.bak +++ /dev/null @@ -1,885 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.IO; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using XYPlots; -using DevComponents.DotNetBar; - -namespace Volian.Controls.Library -{ - public partial class DisplayRO : UserControl - { - #region Properties - private DisplayTabControl _TabControl; - - public DisplayTabControl TabControl - { - get { return _TabControl; } - set { _TabControl = value; } - } - private ROFstInfo _CurROFST = null; - private ROFstInfo _MyROFST; - public ROFstInfo MyROFST - { - get { return _MyROFST; } - set - { - if (!Visible) return; // don't reset anything if the form is invisible. - _MyROFST = value; // define the tree nodes based on this rofst - LoadTree(); - } - } - private RoUsageInfo _CurROLink; - public RoUsageInfo CurROLink - { - get { return _CurROLink; } - set - { - if (!Visible) return; // don't reset anything if the form is invisible. - if (value != null) // modify - set the controls to the current ro - { - if (_CurROLink == value) return; - _CurROLink = value; - _SavCurROLink = _CurROLink; - UpdateROTree(); - } - else // insert - clear out controls - { - _CurROLink = value; - tbROValue.Text = null; - lbROId.Text = ""; - tvROFST.SelectedNode = null; - btnSaveRO.Enabled = btnCancelRO.Enabled = false; - } - } - } - private RoUsageInfo _SavCurROLink; - private StepRTB _MyRTB; - public StepRTB MyRTB - { - get { return _MyRTB; } - set - { - if (!Visible) return; - if (_MyRTB != null) - { - _MyRTB.LinkChanged -= new StepRTBLinkEvent(_MyRTB_LinkChanged); - _MyRTB.SelectionChanged -= new EventHandler(_MyRTB_SelectionChanged); - } - if (value == null) return; - _MyRTB = value; - _MyRTB.LinkChanged += new StepRTBLinkEvent(_MyRTB_LinkChanged); - _MyRTB.SelectionChanged+=new EventHandler(_MyRTB_SelectionChanged); - if (_MyRTB.MyLinkText == null) - { - CurROLink = null; - _SavCurROLink = null; - } - } - } - - void _MyRTB_SelectionChanged(object sender, EventArgs e) - { - lbFound.SelectionMode = SelectionMode.None; - lbFound.DataSource = null; - //Spin through ROs looking for the selected text - string lookFor = _MyRTB.SelectedText; - List children = _MyROFST.ROFSTLookup.GetRosByValue(lookFor); - if (children != null) - { - lbFound.Visible = true; - lbFound.DataSource = children.ToArray(); - lbFound.SelectionMode = SelectionMode.One; - lbFound.SelectedIndex = -1; - } - else - lbFound.Visible = false; - } - - void _MyRTB_LinkChanged(object sender, StepPanelLinkEventArgs args) - { - if (_MyRTB.MyLinkText == null) - CurROLink = null; - else - { - CurROLink = args.MyLinkText.MyRoUsageInfo; - } - } - - private DocVersionInfo _Mydvi; - - public DocVersionInfo Mydvi - { - get { return _Mydvi; } - set { _Mydvi = value; } - } - - - private ProgressBarItem _ProgressBar; - - public ProgressBarItem ProgressBar - { - get { return _ProgressBar; } - set { _ProgressBar = value; } - } - - //public int ProgBarMax - //{ - // get { return _ProgressBar.Maximum; } - // set { _ProgressBar.Maximum = value; } - //} - - //public int ProgBarValue - //{ - // get { return _ProgressBar.Value; } - // set { _ProgressBar.Value = value; } - //} - - //public string ProgBarText - //{ - // get { return _ProgressBar.Text; } - // set - // { - // _ProgressBar.TextVisible = true; - // _ProgressBar.Text = value; - // } - //} - - #endregion - #region Constructors - public DisplayRO() - { - InitializeComponent(); - _ProgressBar = null; - panelRoValue.BackColor = Color.Cornsilk; - panelValue.BackColor = Color.Cornsilk; - } - #endregion - #region Events - ROFSTLookup.rochild selectedChld; - private void tvROFST_AfterSelect(object sender, TreeViewEventArgs e) - { - tbROValue.Text = null; - lbROId.Text = ""; - btnCancelRO.Enabled = false; - btnSaveRO.Enabled = false; - btnPreviewRO.Enabled = false; - - if (e.Node.Tag is ROFSTLookup.rochild) - { - ROFSTLookup.rochild chld = (ROFSTLookup.rochild)e.Node.Tag; - selectedChld = chld; - if (chld.value != null) - { - RoUsageInfo SavROLink = null; - if (_SavCurROLink != null) - SavROLink = _SavCurROLink; ; - lbROId.Text = chld.appid; - btnSaveRO.Enabled = ((_SavCurROLink == null) || !(chld.roid.Equals(SavROLink))); - btnCancelRO.Enabled = ((_SavCurROLink != null) && !(chld.roid.Equals(SavROLink))); - switch (chld.type) - { - case 1: // standard (regular) text RO type - tbROValue.Text = chld.value; - btnPreviewRO.Enabled = false; - break; - case 2: // Table RO type - tbROValue.Text = "(Table)"; - btnPreviewRO.Enabled = true; - break; - case 4: // X/Y Plot RO type - tbROValue.Text = "(Graph)"; - btnPreviewRO.Enabled = true; - break; - case 8: // Intergrated Graphics RO type - tbROValue.Text = "(Image)"; - btnPreviewRO.Enabled = true; - break; - } - } - } - - - //if (e.Node.Tag is ROFST.rochild) - //{ - // ROFST.rochild chld = (ROFST.rochild)e.Node.Tag; - // if (chld.type == 1 && chld.value != null) - // { - // string SavROLink = ""; - // if (_SavCurROLink != null) - // SavROLink = _SavCurROLink.Substring(_SavCurROLink.IndexOf(' ') + 1, 12); - // tbROValue.Text = chld.value; - // btnSaveRO.Enabled = ((_SavCurROLink == null) || !(chld.roid.Equals(SavROLink))); - // btnCancelRO.Enabled = ((_SavCurROLink != null) && !(chld.roid.Equals(SavROLink))); - // } - // //else - // //{ - // // tbROValue.Text = null; - // // btnCancelRO.Enabled = btnSaveRO.Enabled = false; - // //} - //} - ////else - ////{ - //// tbROValue.Text = null; - //// btnCancelRO.Enabled = btnSaveRO.Enabled = false; - ////} - - } - - private void tvROFST_BeforeExpand(object sender, TreeViewCancelEventArgs e) - { - LoadChildren(e.Node); - } - private void LoadChildren(TreeNode tn) - { - object tag = tn.Tag; - if (tn.FirstNode != null && tn.FirstNode.Text != "VLN_DUMMY_FOR_TREE") return; // already loaded. - if (tn.FirstNode != null && tn.FirstNode.Text == "VLN_DUMMY_FOR_TREE") tn.FirstNode.Remove(); - ROFSTLookup.rochild[] chld = null; - - if (tn.Tag is ROFSTLookup.rodbi) - { - ROFSTLookup.rodbi db = (ROFSTLookup.rodbi)tn.Tag; - chld = db.children; - } - else if (tn.Tag is ROFSTLookup.rochild) - { - ROFSTLookup.rochild ch = (ROFSTLookup.rochild)tn.Tag; - chld = ch.children; - } - else - { - Console.WriteLine("error - no type"); - return; - } - // if children, add dummy node - if (chld != null && chld.Length > 0) - { - ProgressBar_Initialize(chld.Length, tn.Text); - for (int i = 0; i < chld.Length; i++) - { - ProgressBar_SetValue(i); - TreeNode tmp = null; - // if this is a group, i.e. type 0, add a dummy node - if (chld[i].type == 0 && chld[i].children == null) - //skip it. - // TODO: KBR how to handle this? - //Console.WriteLine("ro junk"); - continue; - else if (/*chld[i].type == 1 && */ chld[i].value == null) - { - tmp = new TreeNode(chld[i].title); - tmp.Tag = chld[i]; - tn.Nodes.Add(tmp); - TreeNode sub = new TreeNode("VLN_DUMMY_FOR_TREE"); - tmp.Nodes.Add(sub); - } - //else if (chld[i].type == 2 && chld[i].value == null) // table - //{ - // if ((_MyRTB.MyItemInfo.MyContent.Type % 10000) == (int)E_FromType.Table) - // { - // tmp = new TreeNode(chld[i].title); - // tmp.Tag = chld[i]; - // tn.Nodes.Add(tmp); - // TreeNode sub = new TreeNode("VLN_DUMMY_FOR_TREE"); - // tmp.Nodes.Add(sub); - // } - //} - else - { - tmp = new TreeNode(chld[i].title); - tmp.Tag = chld[i]; - tn.Nodes.Add(tmp); - } - } - } - ProgressBar_Clear(); - } - private void LoadTree() - { - if (_MyROFST == null) return; - if (_MyROFST == _CurROFST) return; - tvROFST.Nodes.Clear(); - _CurROFST = _MyROFST; - for (int i = 0; i < _MyROFST.ROFSTLookup.myHdr.myDbs.Length; i++) - { - TreeNode tn = new TreeNode(_MyROFST.ROFSTLookup.myHdr.myDbs[i].dbiTitle); - tn.Tag = _MyROFST.ROFSTLookup.myHdr.myDbs[i]; - tvROFST.Nodes.Add(tn); - AddDummyGroup(_MyROFST.ROFSTLookup.myHdr.myDbs[i], tn); - } - } - private void AddDummyGroup(ROFSTLookup.rodbi rodbi, TreeNode tn) - { - if (rodbi.children != null && rodbi.children.Length > 0) - { - TreeNode tmp = new TreeNode("VLN_DUMMY_FOR_TREE"); - tn.Nodes.Add(tmp); - } - } - private void UpdateROTree() - { - // walk down from root of tree, expanding values in the string - // that represents the ro link. - //string tmpstr = _CurROLink; - //int sp = tmpstr.IndexOf(" "); // because parse of ro info is wrong!! - //int rousageid = System.Convert.ToInt32(tmpstr.Substring(0, sp)); - ExpandTree(_CurROLink.ROID);// tmpstr.Substring(sp + 1, tmpstr.Length - sp - 1); - } - - private void ExpandTree(string roid) - { - string db = roid.Substring(0, 4); - bool multValSel = false; - if (roid.Length == 16) - multValSel = true; - - ROFSTLookup.rochild rochld = MyROFST.ROFSTLookup.GetRoChild(roid.Substring(0, 12).ToUpper()); - // use this to walk up tree until database - this is used to expand tree. - List path = new List(); - int myid = rochld.ID; - while (myid > 0) - { - path.Insert(0, myid); - myid = rochld.ParentID; - rochld = MyROFST.ROFSTLookup.GetRoChildFromID(myid); - if (rochld.ID == -1) myid = -1; - } - TreeNode tnExpand = null; - int titm = System.Convert.ToInt32(db); - // find database first - foreach (TreeNode tn in tvROFST.Nodes) - { - ROFSTLookup.rodbi thisdb = (ROFSTLookup.rodbi)tn.Tag; - if (thisdb.dbiID == titm) - { - LoadChildren(tn); - tnExpand = tn; - break; - } - } - if (tnExpand == null) return; // something went wrong? - // use the path id list to load/find the treeview's nodes. - foreach (int citm in path) - { - if (citm != System.Convert.ToInt32(db)) - { - LoadChildren(tnExpand); - tnExpand.Expand(); - foreach (TreeNode tn in tnExpand.Nodes) - { - ROFSTLookup.rochild chld = (ROFSTLookup.rochild)tn.Tag; - if (chld.ID == citm) - { - tnExpand = tn; - break; - } - } - } - } - - //if (tnExpand != null) tvROFST.SelectedNode = tnExpand; - - if (tnExpand != null) - { - // If a multiple return value, try to select the proper node - if (multValSel) - { - LoadChildren(tnExpand); - tnExpand.Expand(); - foreach (TreeNode tn in tnExpand.Nodes) - { - ROFSTLookup.rochild chld = (ROFSTLookup.rochild)tn.Tag; - if (chld.roid == roid) - { - tnExpand = tn; - break; - } - } - } - tvROFST.SelectedNode = tnExpand; - } - } - private void btnSaveRO_Click(object sender, EventArgs e) - { - if (tbROValue.Text == null || tbROValue.Text == "") - { - MessageBox.Show("Must select an RO Value from the tree."); - return; - } - Object obj = tvROFST.SelectedNode.Tag; - if (obj is ROFSTLookup.rochild) - { - ROFSTLookup.rochild roch = (ROFSTLookup.rochild)obj; - DisplayTabItem dti = _TabControl.SelectedDisplayTabItem; //.OpenItem(_ItemInfo); // open the corresponding procedure text - if (dti.MyDSOTabPanel != null) // A Word Document tab is the active tab - { - ROFSTLookup.rodbi[] dbs = MyROFST.ROFSTLookup.GetRODatabaseList(); - ROFSTLookup.rodbi db = dbs[int.Parse(roch.roid.Substring(0, 4))-1]; - string accPrefix = db.dbiAP.Replace(_Mydvi.DocVersionConfig.RODefaults_graphicsprefix,"IG"); - accPrefix = accPrefix.Replace(_Mydvi.DocVersionConfig.RODefaults_setpointprefix, "SP"); -// string accPrefix = (roch.type == 8) ? _Mydvi.DocVersionConfig.RODefaults_graphicsprefix : _Mydvi.DocVersionConfig.RODefaults_setpointprefix; - string AccPageID = string.Format("<{0}-{1}>", accPrefix, roch.appid);// makes for example - Console.WriteLine(AccPageID); - //string AccPageID = string.Format("{0} <{1}-{2}>", ConvertSymbolsAndStuff(selectedChld.value), accPrefix, roch.appid); // value and accesory ID - //string AccPageID = string.Format("{0} {1}", ConvertSymbolsAndStuff(selectedChld.value), string.Format(@"#Link:ReferencedObject: {0} {1}", roch.roid, _MyROFST.MyRODb.RODbID)); // value and link reference - //if (MessageBox.Show(AccPageID,"Place on Windows Clipboard?",MessageBoxButtons.YesNo) == DialogResult.Yes) - // Clipboard.SetText(AccPageID); - - // Insert the RO text at the current cursor position in the word document - // NOTE: assuming any type of RO can be put in an Accessory (MSWord) Document - if (dti.MyDSOTabPanel != null) - dti.MyDSOTabPanel.InsertText(AccPageID); - } - else if (_MyRTB != null) // a Procedure Steps section tab is active - { - _MyRTB.inRoAdd = true; - if (CheckROSelection(roch)) // check for RO type is valid for this type of step/substep - { - // the roid may be 12 or 16 chars long, with the last 4 set if there is unit specific - // menuing. Pad to 12 to store in the rousage table. - string padroid = (roch.roid.Length <= 12) ? roch.roid + "0000" : roch.roid; - string linktxt = string.Format(@"#Link:ReferencedObject: {0} {1}", padroid, _MyROFST.MyRODb.RODbID); - // Resolve symbols and scientific notation in the RO return value - string valtxt = ConvertSymbolsAndStuff(selectedChld.value); - _MyRTB.InsertRO(valtxt, linktxt); - _MyRTB.Select(_MyRTB.SelectionStart + valtxt.Length + linktxt.Length, 0); - _MyRTB.SaveText(); - _MyRTB.Focus(); - } - _MyRTB.inRoAdd = false; - btnSaveRO.Enabled = btnCancelRO.Enabled = btnPreviewRO.Enabled = false; - _SavCurROLink = null; - CurROLink = null; - } - //else // we're in an Word attachment - //{ - // string accPrefix = (roch.type == 8) ? _Mydvi.DocVersionConfig.RODefaults_graphicsprefix : _Mydvi.DocVersionConfig.RODefaults_setpointprefix; - // string AccPageID = string.Format("<{0}-{1}>", accPrefix, roch.appid); - // //TODO: CAN WE AUTOMATICALLY PLACE RO ONTO WORD ATTACHEMNT? - // //if (MessageBox.Show(AccPageID,"Place on Windows Clipboard?",MessageBoxButtons.YesNo) == DialogResult.Yes) - // // Clipboard.SetText(AccPageID); - // if (dti.MyDSOTabPanel != null) - // dti.MyDSOTabPanel.InsertText(AccPageID); - //} - } - } - - private bool CheckROSelection(ROFSTLookup.rochild selectedRO) - { - bool goodToGo = true; - bool replacingRO = (_SavCurROLink != null); - string insrpl = (replacingRO) ? "Cannot Replace" : "Cannot Insert"; - string errormsg = ""; - switch (selectedRO.type) - { - case 1: // regular text RO - if (_MyRTB.MyItemInfo.IsFigure) - { - errormsg = (replacingRO) ? "a Figure with a non-figure." : "a text RO in a Figure type."; - goodToGo = false; - } - break; - case 2: // table RO - if (_MyRTB.MyItemInfo.IsFigure) - { - errormsg = (replacingRO) ? "a Figure with a non-figure." : "a table into a Figure type."; - goodToGo = false; - } - else if (!_MyRTB.MyItemInfo.IsTable) - { - errormsg = (replacingRO) ? "a non-table RO with a Table RO." : "a table into a non-table type."; - //TODO: Prompt user to insert a new Table substep type and place this RO into it - goodToGo = false; - } - break; - case 4: // X/Y Plot RO type - if (!_MyRTB.MyItemInfo.IsAccPages) - { - errormsg = (replacingRO) ? "a non-X/Y Plot RO with an X/Y Plot RO." : "an X/Y Plot RO in an non-Accessory Page type."; - //TODO: Prompt user to insert a new substep type that handles x/y Plots and place this RO into it - goodToGo = false; - } - break; - case 8: // figure (intergrated graphics) - if (!_MyRTB.MyItemInfo.IsFigure && !_MyRTB.MyItemInfo.IsAccPages) - { - errormsg = (replacingRO) ? "a graphics RO with a non-graphcis RO." : "a Graphics RO in an non-Figure or a non-Accessory Page type."; - //TODO: Prompt user to insert a new substep type that handles x/y Plots and place this RO into it - goodToGo = false; - } - break; - } - if (!goodToGo) - MessageBox.Show(string.Format("{0} {1}", insrpl, errormsg), (replacingRO)?"Invalid RO Replacement":"Invalid RO Insert"); - return goodToGo; - } - - private void btnCancelRO_Click(object sender, EventArgs e) - { - _CurROLink = _SavCurROLink; - btnCancelRO.Enabled = false; - UpdateROTree(); - } - - private void btnPreviewRO_Click(object sender, EventArgs e) - { - if (selectedChld.type == 8) // integrated graphic - { - string fname = selectedChld.value.Substring(0, selectedChld.value.IndexOf('\n')); - int thedot = fname.LastIndexOf('.'); - if (thedot == -1 || (thedot != (fname.Length - 4))) - fname += string.Format(".{0}", MyROFST.MyRODb.RODbConfig.GetDefaultGraphicExtension()); - ROImageInfo tmp = ROImageInfo.GetByROFstID_FileName(MyROFST.ROFstID, fname); - - if (tmp !=null) - { - PreviewROImage pvROImg = new PreviewROImage(tmp.Content, selectedChld.title); - pvROImg.ShowDialog(); - } - else - MessageBox.Show("Cannot Find Image Data"); - } - else if (selectedChld.type == 2) // table - { - PreviewMultiLineRO pmlROTable = new PreviewMultiLineRO(selectedChld.value, selectedChld.title); - pmlROTable.ShowDialog(); - } - else if (selectedChld.type == 4) // x/y plot - { - //PreviewMultiLineRO pmlROTable = new PreviewMultiLineRO(selectedChld.value, selectedChld.title); - //pmlROTable.ShowDialog(); // This will show the graph commands - this.Cursor = Cursors.WaitCursor; - // TemporaryFolder is magical. It will automatically (behind the scenes) build a path to a temporary - // folder on the user's machine. It does this only the first time it's reference (GET), after that - // it uses what it has. - string pdfname = TemporaryFolder; //@"G:\debugdat\testplot\"; - pdfname += "\\" + selectedChld.appid + ".pdf"; - //if (File.Exists(pdfname)) - // File.Delete(pdfname); - XYPlot ROGraph = new XYPlot(selectedChld.value, pdfname); - this.Cursor = Cursors.Default; - - // Run an internet browser window - WebBrowser wb = new WebBrowser(pdfname); - wb.TitleText = selectedChld.title; - wb.ShowDialog();// .Show(); - - // Run the default PDF reader - //System.Diagnostics.Process ActRdr = System.Diagnostics.Process.Start(pdfname); - //ActRdr.WaitForExit(); - - // Wait for the PDF viewing process to close then delete the temporary file - // wait for a one minute max - if (!WaitToDeleteFile(pdfname,1)) - MessageBox.Show(string.Format("The PDF viewer was holding this file open: \n\n{0}",pdfname),"Cannot Delete Temporary File"); - } - } - private void ProgressBar_Initialize(int max, string desc) - { - if (_ProgressBar != null) - { - _ProgressBar.Maximum = max; - _ProgressBar.Text = desc; - _ProgressBar.TextVisible = true; - } - } - - private void ProgressBar_SetValue(int curval) - { - if (_ProgressBar != null) - { - _ProgressBar.Value = curval; - } - } - - private void ProgressBar_Clear() - { - if (_ProgressBar != null) - { - _ProgressBar.Text = ""; - _ProgressBar.Maximum = 0; - _ProgressBar.Value = 0; - _ProgressBar.TextVisible = false; - } - } - - #region Utils - private string ConvertSymbolsAndStuff(string instr) - { - string outstr = instr; - - outstr = outstr.Replace("`", @"\'b0"); // convert backquote to degree - left over from DOS days. - outstr = outstr.Replace("\xa0", @"\u160?"); // hardspace - outstr = outstr.Replace("\xb0", @"\'b0"); // degree - outstr = outstr.Replace("\x7f", @"\u916?"); // delta - outstr = outstr.Replace("\x2265", @"\u8805?"); // greater than or equal - outstr = outstr.Replace("\x2264", @"\u8804?"); // less than or equal - outstr = outstr.Replace("\xB1", @"\'b1"); // plus minus - outstr = outstr.Replace("\x3A3", @"\u931?"); // sigma - outstr = outstr.Replace("\x3C4", @"\u947?"); // gamma - outstr = outstr.Replace("\xBD", @"\'bd"); // half - outstr = outstr.Replace("\x25A0", @"\u9604?"); // accum 2584 - outstr = outstr.Replace("\x7", @"\u9679?"); // bullet 25CF - outstr = outstr.Replace("\x2248", @"\u8776?"); // approx eq - outstr = outstr.Replace("\x2261", @"\u8773?"); // similar eq 2245 - outstr = outstr.Replace("\xF7", @"\'f7"); // division - outstr = outstr.Replace("\x221A", @"\u8730?"); // square root - outstr = outstr.Replace("\x393", @"\u961?"); // rho 3C1 - outstr = outstr.Replace("\x3C0", @"\u960?"); // pi - outstr = outstr.Replace("\xb5", @"\u956?"); // micro 3BC (try e6, if not work try 109) - outstr = outstr.Replace("\x3B4", @"\u948?"); // lower case delta - outstr = outstr.Replace("\x3C3", @"\u963?"); // lower case sigma - outstr = outstr.Replace("\xBC", @"\'bc"); // quarter - outstr = outstr.Replace("\x3C6", @"\'d8"); // dist zero, D8 - outstr = outstr.Replace("\xC9", @"\u274?"); // energy, 112 - outstr = outstr.Replace("\xEC", @"\'ec"); // grave - outstr = outstr.Replace("\x2502", @"\u9474?"); // bar - outstr = outstr.Replace("\x3B5", @"\u949?"); // epsilon - outstr = outstr.Replace("\x398", @"\u952?"); // theta, 3B8 - outstr = outstr.Replace("\x221E", @"\u8857?"); // dot in oval, 2299 - outstr = outstr.Replace("\xBF", @"\u964?"); // tau, 3C4 - outstr = outstr.Replace("\x2310", @"\u9830?"); // diamond, 2666 - outstr = outstr.Replace("\x2192", @"\u8594?"); - outstr = outstr.Replace("\x2190", @"\u8592?"); - outstr = outstr.Replace("\x2191", @"\u8593?"); - outstr = outstr.Replace("\x2193", @"\u8595?"); - outstr = outstr.Replace("\x2207", @"\u8711?"); - // DisplayTODO: DO WE NEED TO CHECK WHETHER TO REPLACE ^ CHARACTER FOR SETPOINTS? - //if (DoCaret) s2 = s2.Replace("^", @"\u916"); - outstr = outstr.Replace("^", @"\u916"); - - outstr = ConvertDOSSuperAndSubScripts(outstr); - - outstr = ConvertFortranFormatToScienctificNotation(outstr); - - return outstr; - } - private string ConvertFortranFormatToScienctificNotation(string str) - { - string outstr = ""; - int orglen = str.Length; - int cnt = 0; - int ptr; - - int nbytes; - int tstr, tstr2, rptr, start = 0; - - while (cnt < orglen) - { - // position up to the the next number, sign, or period - ptr = str.IndexOfAny("+-0123456789.".ToCharArray(), cnt); - if (ptr == -1) - { - outstr += str.Substring(cnt); - break; // jump out of while loop - nothing else to process - } - if ((ptr - cnt) > 0) - { - outstr += str.Substring(cnt, ptr - cnt); - cnt = ptr; - } - - if (cnt > start && str[cnt - 1] == '\'') - { - //B2003-053: only remove the single quote character - // if str ptr is not at the end of the string or - // the next char (after the str ptr) is not a space - // or newline... (as per Paul Linn on 7/17/03) - int len = orglen - cnt; - if (len <= 1 || str[cnt + 1] == ' ' || str[cnt + 1] == '\n') - start = cnt; - else - start = cnt - 1; - } - else start = cnt; - tstr = cnt; - - //Skip preceeding signs - if (str[cnt] == '+' || str[cnt] == '-') - cnt++; - - cnt = NextNonNumber(str, cnt); - if (str[cnt] == '.') - { - cnt = NextNonNumber(str, cnt + 1); - if (cnt >= str.Length) //jsj bug fix - { - outstr += str.Substring(tstr); - break; // jump out of while loop - nothing else to process - } - if (str[start] == '\'') - { - start++; - } - else if (str[cnt] == 'E' && cnt > tstr) - { - nbytes = (cnt - tstr); // don't include the 'E' - outstr += str.Substring(tstr, nbytes); - cnt++; - - rptr = outstr.Length - 1; - while (outstr[rptr] == '0') rptr--; - if (outstr[rptr] != '.') rptr++; - if (rptr < (outstr.Length - 1)) - outstr = outstr.Substring(0, rptr + 1); // trim trailing 0's - - int poutstr = 0; - if (outstr[poutstr] == '+' || outstr[poutstr] == '-') poutstr++; - if (!outstr[poutstr].Equals("1")) - { - outstr += "x1"; - } - outstr += "0\\super "; - - tstr2 = cnt; - if (str[cnt] == '+' || str[cnt] == '-') cnt++; - cnt = NextNonNumber(str, cnt); - - if (str[cnt] == '.' && char.IsDigit(str, cnt + 1)) - cnt = NextNonNumber(str, cnt + 1); - - nbytes = cnt - tstr2; // +1; - outstr += str.Substring(tstr2, nbytes); - outstr += "\\nosupersub "; - - if (!char.IsLetterOrDigit(str, cnt) && !char.IsWhiteSpace(str, cnt)) - return (str.Substring(tstr)); - } - } - else - { - outstr += str.Substring(start, cnt - start + 1); - cnt++; - } - } - return (outstr); - } - - private int NextNonNumber(string str, int cnt) - { - int rtn = 0; - string tstr = str.Substring(cnt); - int len = tstr.Length; - while (rtn < len && char.IsDigit(tstr,rtn)) rtn++; - return rtn + cnt; - } - - private string ConvertDOSSuperAndSubScripts(string instr) - { - string outstr = ""; - string tstr = instr; - int cnt = 0; - int ptr = 0; - bool issupper=false, issub = false; - - while (tstr != null && (ptr = tstr.IndexOfAny("#~".ToCharArray(), cnt)) >= 0) - { - if (ptr > cnt) - outstr += tstr.Substring(cnt, ptr - cnt); - switch (tstr[ptr]) - { - case '#': - if (issub || issupper) - outstr += "\\nosupersub "; - else - outstr += "\\super "; - issupper = !issupper; - issub = false; - break; - case '~': - if (issupper || issub) - outstr += "\\nosupersub "; - else - outstr += "\\sub "; - issub = !issub; - issupper = false; - break; - } - cnt = ptr + 1; - if (cnt >= tstr.Length) - tstr = null; - else - tstr = instr.Substring(cnt); - cnt = 0; - } - if (tstr != null) - outstr += tstr; - return outstr; - } - - private static string _TemporaryFolder = null; - public static string TemporaryFolder - { - get - { - if (_TemporaryFolder == null) - { - // This will create a Temp\VE-PROMS folder in the LocalSettings Folder. - //XP - C:\Documents and Settings\{user}\Local Settings\Application Data\Temp\VE-PROMS - //Vista - C:\Users\{user}\AppData\Local\Temp\VE-PROMS - _TemporaryFolder = Environment.GetFolderPath(Environment.SpecialFolder.LocalApplicationData) + @"\Temp"; - if (!Directory.Exists(TemporaryFolder)) Directory.CreateDirectory(TemporaryFolder); - _TemporaryFolder += @"\VE-PROMS"; - if (!Directory.Exists(TemporaryFolder)) Directory.CreateDirectory(TemporaryFolder); - } - return _TemporaryFolder; - } - } - - /// - /// Keep trying to delete the given file until successful OR until MaxMinutes has elasped - /// - /// File to delete (including path) - /// Maxium Minutes to keep trying - /// - private static bool WaitToDeleteFile(string fname, int MaxMinutes) - { - bool deletedfile = false; - DateTime dt_start = DateTime.Now; - DateTime dt_loop = dt_start; - int mins_start = dt_start.Minute; - int mins_loop = dt_loop.Minute; - while (!deletedfile && ((mins_loop - mins_start) < MaxMinutes)) - { - try - { - dt_loop = DateTime.Now; - File.Delete(fname); - deletedfile = true; - } - catch - { - continue; // The process is still holding file, try again. - } - } - return deletedfile; - } - - #endregion // utils - - private void lbROId_DoubleClick(object sender, EventArgs e) - { - // TODO: This is hard-coded to particular folders - //System.Diagnostics.Process.Start(@"C:\VE-PROMS.NET\BIN\RoEditor.EXE",@"c:\Plant\hlp\vehlp\ro " + CurROLink.ROID); - string roapp = Environment.GetEnvironmentVariable("roapp"); - string roloc = "\"" + _MyROFST.MyRODb.FolderPath + "\""; - System.Diagnostics.Process.Start(roapp, roloc + " " + CurROLink.ROID); - } - #endregion - - private void lbFound_SelectedValueChanged(object sender, EventArgs e) - { - ROFSTLookup.roChild child = lbFound.SelectedValue as ROFSTLookup.roChild; - if (child != null) - { - ExpandTree(child.MyChild.roid); - } - } - } -} diff --git a/PROMS/Volian.Controls.Library/DisplayRTBSimple.cs b/PROMS/Volian.Controls.Library/DisplayRTBSimple.cs deleted file mode 100644 index b7a2a361..00000000 --- a/PROMS/Volian.Controls.Library/DisplayRTBSimple.cs +++ /dev/null @@ -1,293 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Drawing; -using VEPROMS.CSLA.Library; -using System.Text.RegularExpressions; -using System.Reflection; - -namespace Volian.Controls.Library -{ - public partial class StepRTBSimple : RichTextBox, IStepRTB - { - #region Fields - private RTBItem _MyRTBItem; - private IContainer _Container = null; - private ItemInfo _MyItemInfo; - private Size _AdjustSize; - private Rectangle _ContentsRectangle; - private E_EditPrintMode _EpMode; - private string _MyClassName; - private E_ViewMode _VwMode; - #endregion - #region RTB 4.1 Not being used - //[DllImport("kernel32.dll", CharSet = CharSet.Auto)] - //static extern IntPtr LoadLibrary(string lpFileName); - - //protected override CreateParams CreateParams - //{ - // get - // { - // CreateParams prams = base.CreateParams; - // if (LoadLibrary("msftedit.dll") != IntPtr.Zero) - // { - // //prams.ExStyle |= 0x020; // transparent - // prams.ClassName = "RICHEDIT50W"; - // } - // return prams; - // } - //} - - //[DllImport("kernel32.dll", CharSet = CharSet.Auto)] - //static extern IntPtr LoadLibrary(string lpFileName); - - //protected override CreateParams CreateParams - //{ - // get - // { - // CreateParams prams = base.CreateParams; - // if (LoadLibrary("riched20.dll") != IntPtr.Zero) - // { - // //prams.ExStyle |= 0x020; // transparent - // prams.ClassName = "RICHEDIT20W"; - // } - // return prams; - // } - //} - #endregion - #region Events - /// - /// Occurs in response to Link GoTo - /// - public event StepRTBLinkEvent LinkGoTo; - /// - /// Checks to see if the LinkGoTo event is handled and launches it. - /// - /// - /// - private void OnLinkGoTo(object sender, StepPanelLinkEventArgs args) - { - if (LinkGoTo != null) LinkGoTo(sender, args); - } - /// - /// Occurs when a content or format change causes the box to get taller or shorter - /// - public event StepRTBEvent HeightChanged; - /// - /// Checks to see if the HeightChanged event is handled and launches it - /// - /// - /// - private void OnHeightChanged(object sender, EventArgs args) - { - if (HeightChanged != null) HeightChanged(sender, args); - } - #endregion - #region Properties - /// - /// ItemInfo object associated with the control - /// - /// - /// - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set - { - _MyItemInfo = value; - if (value != null) - { - //// TIMING: DisplayItem.TimeIt("rtbMyItem Start"); - //if (value.ItemID == 90) - // if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat(value.MyContent.Text); - string txt = _MyItemInfo.MyContent.Text; - txt = txt.Replace("\n", "\r\n\\par "); - //txt = Regex.Replace(txt, "(.){([0-9]*){([0-9 ]*)}}",FixTransition); - //txt = Regex.Replace(txt, @"(.)\\v TRAN", FixTransition); - MatchCollection mc = Regex.Matches(txt, @"(.)\\v (TRAN|ReferencedObject)\\v0 ([^\\]*)\\v ([^\\]*)\\v0"); - //string[] parts = Regex.Split(txt, "(.){{(.*)}{(.*)}}"); - if (mc.Count > 0) - { - int lastIndex = 0; - foreach (Match m in mc) - { - if(m.Index > lastIndex) AddRtf(txt.Substring(lastIndex,m.Index - lastIndex)); - string linkUrl = "Link:" + ((LinkType)Convert.ToInt32(m.Groups[1].Value[0])).ToString() + ":" + m.Groups[4].Value; - string linkValue = (m.Groups[2].Value == "TRAN" ? FixTransition(m) : m.Groups[3].Value); - if (CreateParams.ClassName == "RICHEDIT50W") - AddLink50(linkUrl, linkValue); - else - AddLink20(linkUrl, linkValue); - //AddRtf(string.Format("{0} \\v ReferencedObject - {1} \\v0",ROValue,ROID)); - lastIndex = m.Index + m.Length; - } - AddRtf(txt.Substring(lastIndex, txt.Length - lastIndex)); - } - else - { - AddRtf(txt); - } - //// TIMING: DisplayItem.TimeIt("rtbMyItem End"); - } - } - } - public RTBItem MyRTBItem - { - get { return _MyRTBItem; } - set { _MyRTBItem = value; } - } - public Size AdjustSize - { - get { return _AdjustSize; } - set { _AdjustSize = value; } - } - public Rectangle ContentsRectangle - { - get { return _ContentsRectangle; } - set { _ContentsRectangle = value; } - } - public E_EditPrintMode EpMode - { - get { return _EpMode; } - set { _EpMode = value; } - } - public string MyClassName - { - get { return _MyClassName; } - set { _MyClassName = value; } - } - public E_ViewMode VwMode - { - get { return _VwMode; } - set { _VwMode = value; } - } - #endregion - #region Private Methods - private string FixTransition(Match match) - { - //int transitionID = Convert.ToInt32(match.Groups[2].Value); - int transitionID = Convert.ToInt32(match.Groups[4].Value.Split(" ".ToCharArray())[1]); - // Find the transition - foreach (TransitionInfo ti in _MyItemInfo.MyContent.ContentTransitions) - { - if (ti.TransitionID == transitionID) - { - string path = ti.PathTo.Replace(" Section PROCEDURE STEPS ", ", "); - path = path.Replace(" Section PROCEDURE STEPS", ""); - return path; - } - } - return match.Value; - } - /// - /// Adds the text and hypertext link and sets the style to link - /// - /// URL - Uniform Resource Locator (Address) - /// Text descibing location - private void AddLink20(string linkUrl, string linkValue) - { - this.DetectUrls = false; - RTBAPI.CharFormatTwo charFormat = RTBAPI.GetCharFormat(this, RTBAPI.RTBSelection.SCF_SELECTION); - int position = SelectionStart = this.TextLength; - SelectionLength = 0; - SelectedRtf = @"{\rtf1\ansi " + linkValue + @"\v #" + linkUrl + @"\v0}"; - Select(position, linkValue.Length + linkUrl.Length + 1); - // Protect the link text to avoid manual changes - charFormat.dwMask = RTBAPI.CharFormatMasks.CFM_LINK | RTBAPI.CharFormatMasks.CFM_PROTECTED; - charFormat.dwEffects = RTBAPI.CharFormatEffects.CFE_LINK | RTBAPI.CharFormatEffects.CFE_PROTECTED; - RTBAPI.SetCharFormat((RichTextBox)this, RTBAPI.RTBSelection.SCF_SELECTION, charFormat); - this.SelectionStart = this.TextLength; - this.SelectionLength = 0; - } - /// - /// Adds a hypertext link to the Rich Text - /// - /// URL - Uniform Resource Locator (Address) - /// Text descibing location - private void AddLink50(string linkUrl, string linkValue) - { - this.DetectUrls = false; - int position = SelectionStart = this.TextLength; - SelectionLength = 0; - SelectedRtf = string.Format(@"{{\rtf\field{{\*\fldinst{{HYPERLINK ""www.volian.com #{0}"" }}}}{{\fldrslt{{\cf2\ul {1}}}}}}}", linkUrl, linkValue); - this.SelectionStart = this.TextLength; - this.SelectionLength = 0; - } - /// - /// Adds Rich Text - /// - /// this is any text and can include RTF commands or not - private void AddRtf(string rtf) - { - this.SelectedRtf = @"{\rtf1 " + rtf + "}"; - } - /// - /// Used by the constructors to do any standard configuration - /// - private void SetUp() - { - BorderStyle = System.Windows.Forms.BorderStyle.None; - this.DetectUrls = true; - //ContextMenuStrip = this.contextMenuStrip1; - //ScrollBars = System.Windows.Forms.RichTextBoxScrollBars.None; - //this.TextChanged += new EventHandler(VERichTextBox_TextChanged); - this.ContentsResized += new ContentsResizedEventHandler(StepRTBSimple_ContentsResized); - //if (Text != "") ResizeForText(); - this.LinkClicked += new LinkClickedEventHandler(StepRTBSimple_LinkClicked); - } - - void StepRTBSimple_LinkClicked(object sender, LinkClickedEventArgs args) - { - OnLinkGoTo(sender, new StepPanelLinkEventArgs(_MyRTBItem, args.LinkText)); - } - #endregion - #region Constructors - public StepRTBSimple() - { - InitializeComponent(); - SetUp(); - } - public StepRTBSimple(IContainer container) - { - container.Add(this); - InitializeComponent(); - _Container = container; - SetUp(); - } - #endregion - #region Event Handlers - void StepRTBSimple_ContentsResized(object sender, ContentsResizedEventArgs e) - { - this.Height = e.NewRectangle.Height; - OnHeightChanged(sender, new EventArgs()); - } - #endregion - } - [TypeConverter(typeof(ExpandableObjectConverter))] - public interface IStepRTB - { - event StepRTBEvent HeightChanged; - ItemInfo MyItemInfo { get; set;} - RTBItem MyRTBItem { get; set;} - Size AdjustSize { get; set; } - Rectangle ContentsRectangle { get; set; } - E_EditPrintMode EpMode { get; set; } - string MyClassName { get; set; } - E_ViewMode VwMode { get; set; } - // In addition to the HeightChanged event and the MyItem property - // the constructors below should be created - // public DisplayRTBSimple() - // public DisplayRTBSimple(IContainer container) - } - public enum LinkType : int - { - ReferencedObject = 21, - Transition = 9516, - TransitionRange = 9574 - } - -} diff --git a/PROMS/Volian.Controls.Library/DisplayRTBSimple.designer.cs b/PROMS/Volian.Controls.Library/DisplayRTBSimple.designer.cs deleted file mode 100644 index 81063654..00000000 --- a/PROMS/Volian.Controls.Library/DisplayRTBSimple.designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -namespace Volian.Controls.Library -{ - partial class StepRTBSimple - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - } - - #endregion - } -} diff --git a/PROMS/Volian.Controls.Library/DisplayReports.cs.bak b/PROMS/Volian.Controls.Library/DisplayReports.cs.bak deleted file mode 100644 index b70c54af..00000000 --- a/PROMS/Volian.Controls.Library/DisplayReports.cs.bak +++ /dev/null @@ -1,987 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using System.IO; -using VEPROMS.CSLA.Library; -using DevComponents.DotNetBar; -using DevComponents.AdvTree; -using System.Text.RegularExpressions; -using Volian.Base.Library; - - -namespace Volian.Controls.Library -{ - public partial class DisplayReports : UserControl - { - #region Events - public event DisplayReportsEvent PrintRequest; - private void OnPrintRequest(DisplayReportsEventArgs args) - { - if (PrintRequest != null) - PrintRequest(this, args); - } - #endregion - private List lstCheckedDocVersions = new List(); - private List lstCheckedROs = new List(); - private List lstReportResults = new List(); - private List ROList = new List(); - private List lstROObj = new List(); - private int _MyRODbID; - private string DocVersionList - { - get - { - // append list of document versions to search - if (lstCheckedDocVersions.Count > 0) - { - string strRtnStr = ""; - // get list of doc versions to search - foreach (DocVersionInfo dvi in lstCheckedDocVersions) - { - strRtnStr += string.Format(",{0}", dvi.VersionID.ToString()); - } - return strRtnStr.Substring(1); - } - return ""; - } - } - private DocVersionInfo _MyDocVersion; - public DocVersionInfo Mydocversion - { - get { return _MyDocVersion; } - set - { - _MyDocVersion = value; - if (_MyDocVersion != null) - { - if (_MyDocVersion.DocVersionAssociationCount > 0) - { - // if the count variable is not consistent with the actual list count, - // do a refresh. There was a bug, B2012-040, that was not reproducable.. - // so this is an attempt to fix it. - if (_MyDocVersion.DocVersionAssociations.Count == 0) - { - _MyDocVersion.RefreshDocVersionAssociations(); - if (_MyDocVersion.DocVersionAssociations.Count == 0) return; - } - MyROFSTLookup = _MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(_MyDocVersion); - _MyRODbID = _MyDocVersion.DocVersionAssociations[0].MyROFst.RODbID; - } - } - } - } - private ROFSTLookup _MyROFSTLookup; - public ROFSTLookup MyROFSTLookup - { - get { return _MyROFSTLookup; } - set - { - //if (!Visible) return; // don't reset anything if the form is invisible. - _MyROFSTLookup = value; // define the tree nodes based on this rofst - advTreeROFillIn(true); - //LoadROComboTree(); - } - } - - private ItemInfoList _ReportResult; - public ItemInfoList ReportResult - { - get { return _ReportResult; } - set - { - _ReportResult = value; - } - } - - - private void GenerateROList() - { - string rtnStr = ""; - ROFSTLookup.rochild[] chld = null; - ROFSTLookup.rochild ch; - ROList.Clear(); - foreach (object rolkup in lstCheckedROs) - { - if (rolkup == null) // All Referenced Objects selected, return list of RO databases - { - foreach (ROFSTLookup.rodbi rodbi in _MyROFSTLookup.GetRODatabaseList()) - { - rtnStr = _MyRODbID.ToString() + ":" + string.Format("{0}", rodbi.dbiID.ToString("X4")); - ROList.Add(rtnStr); - } - continue; - } - else if (rolkup is ROFSTLookup.rodbi) - rtnStr = _MyRODbID.ToString() + ":" + string.Format("{0}", ((ROFSTLookup.rodbi)rolkup).dbiID.ToString("X4")); - else if (rolkup is ROFSTLookup.rochild) - { - ch = (ROFSTLookup.rochild)rolkup; - chld = ch.children; - rtnStr = _MyRODbID.ToString() + ":" + GetROChildren(rolkup).TrimEnd(','); - } - //else if (rolkup is ROFSTLookup.rogrp) - // Console.WriteLine("RO Group"); - //else if (rolkup is ROFSTLookup.roHdr) - // Console.WriteLine("RO Header"); - ROList.Add(rtnStr); - } - } - - // same function as GetROsToSearch in DisplaySearch.cs - private string GetROChildren(object roObj) - { - ROFSTLookup.rochild chld = (ROFSTLookup.rochild)roObj; - string rtnstr = ""; - if (chld.children == null) // get a single ROID - { - rtnstr += string.Format("{0}", chld.roid); - if (rtnstr.Length == 12) rtnstr += "0000"; // last four digits are used for multiple return values - } - else if (!cbxROUsage.Checked && chld.children[0].ParentID == 0) - { - rtnstr += string.Format("{0},", chld.roid); // doing a RO Summary or RO Complete report - don't want children that are multiple return values - } - else - { // spin through the child list and get the ROIDs. - // if the child has children, then call this function recursivly - foreach (ROFSTLookup.rochild roc in chld.children) - { - // Don't get the children if we are doing a RO Summary or RO Complete report & children are the multiple return values - if (roc.children != null && (cbxROUsage.Checked || roc.children[0].ParentID != 0)) - rtnstr += GetROChildren(roc); - else - rtnstr += string.Format("{0},", roc.roid); - } - } - return rtnstr; - } - private string GetListOfROs(bool keepRODbID) - { - string rtnStr = ""; - string strRODbID = ""; - int cnt = 0; - foreach (string rostr in ROList) - { - int ndxOf = rostr.IndexOf(":"); - if (ndxOf > 0) - { - string tstr = rostr.Substring(0, ndxOf + 1); - if (tstr != strRODbID && keepRODbID) - { - strRODbID = tstr; - rtnStr += rostr; - } - else - rtnStr += rostr.Substring(ndxOf + 1); - } - else - rtnStr += rostr; - if (rtnStr.EndsWith(",")) rtnStr = rtnStr.Substring(0, rtnStr.Length - 1); - if (++cnt < ROList.Count) - rtnStr += ","; - } - return rtnStr; - } - public DisplayReports() - { - InitializeComponent(); - EnableOrDisablePrintButton(); - cmbxROUsageSort.SelectedIndex = 0; - tabTransitionReports.Visible = false; - cbxComplete.Enabled = true; - cbxSummary.Enabled = true; - if (cbxROUsage.Checked) - cbxIncldMissingROs.Text = "Include Missing ROs (red ? in the editor)"; - else if (cbxComplete.Checked) - cbxIncldMissingROs.Text = "Include Empty RO Fields"; - cbxIncldMissingROs.Checked = false;// !cbxSummary.Checked; - cbxIncldMissingROs.Visible = cbxROUsage.Checked || cbxComplete.Checked; - } - - public void SelectReferencedObjectTab() - { - tabROReports.PerformClick(); - } - - private void AddSelectedROChildren(DevComponents.AdvTree.NodeCollection chldrn) - { - if (chldrn.Count > 0) - { - foreach (DevComponents.AdvTree.Node n in chldrn) - { - if (n.Checked) - lstCheckedROs.Add(n.Tag); - else - AddSelectedROChildren(n.Nodes); - } - } - } - private void BuildCheckedROsList() - { - lstCheckedROs.Clear(); - if (advTreeRO.Nodes.Count == 0) return; - DevComponents.AdvTree.Node node = advTreeRO.Nodes[0]; - if (node.Checked) // top node (all Referenced Objects) selected - lstCheckedROs.Add(node.Tag); - else - AddSelectedROChildren(node.Nodes); - } - - private void EnableOrDisablePrintButton() - { - switch (tctrlReports.SelectedTabIndex) - { - case 0: // Transition Reports - btnPrintReport.Enabled = (lstCheckedDocVersions.Count > 0); - break; - case 1: // Referenced Objects Reports - BuildCheckedROsList(); // this list is sent to the report generator - if (cbxROUsage.Checked) - btnPrintReport.Enabled = (lstCheckedDocVersions.Count > 0 && lstCheckedROs.Count > 0); - else - btnPrintReport.Enabled = ((cbxComplete.Checked || cbxSummary.Checked) && lstCheckedROs.Count > 0); - break; - } - if (cbxROUsage.Checked) - cbxIncldMissingROs.Text = "Include Missing ROs (red ? in the editor)"; - else if (cbxComplete.Checked) - cbxIncldMissingROs.Text = "Include Empty RO Fields"; - //cbxIncldMissingROs.Checked = cbxROUsage.Checked || cbxComplete.Checked; - cbxIncldMissingROs.Visible = cbxROUsage.Checked || cbxComplete.Checked; - } - - private void tabTransitionReports_Click(object sender, EventArgs e) - { - xpSetToReport.Enabled = true; - xpSetToReport.Expanded = true; - xpSelROs.Expanded = false; - xpSelROs.Enabled = false; - EnableOrDisablePrintButton(); - } - - private void tabROReports_Click(object sender, EventArgs e) - { - xpSetToReport.Enabled = cbxROUsage.Checked; - xpSetToReport.Expanded = cbxROUsage.Checked; - cmbxROUsageSort.Enabled = cbxROUsage.Checked; - xpSelROs.Enabled = true; - xpSelROs.Expanded = true; - cbxIncldMissingROs.Checked = false;// !cbxSummary.Checked; - EnableOrDisablePrintButton(); - } - - private void cbxROUsage_CheckedChanged(object sender, EventArgs e) - { - xpSetToReport.Enabled = cbxROUsage.Checked; - xpSetToReport.Expanded = cbxROUsage.Checked; - cmbxROUsageSort.Enabled = cbxROUsage.Checked; - // reset the RO tree and clear anything that was selected - advTreeROFillIn(true); - lstCheckedROs.Clear(); - cbxIncldMissingROs.Checked = false;// !cbxSummary.Checked; - EnableOrDisablePrintButton(); - } - #region Procedure List - private DevComponents.AdvTree.Node NewAdvTreeNode(string nodetext, bool selectable, bool chxbxvisable) - { - DevComponents.AdvTree.Node newnode; - newnode = new DevComponents.AdvTree.Node(); - newnode.Text = nodetext; - newnode.Selectable = selectable; - newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; - newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; - newnode.CheckBoxThreeState = false; - newnode.CheckBoxVisible = chxbxvisable; - return newnode; - } - - - public void advTreeProcSetsFillIn(bool blSeachTabClicked) - { - DevComponents.AdvTree.Node topnode = null; - int cntnd = 0; - VETreeNode vtn = VETreeNode.GetFolder(1); - FolderInfo fi = vtn.VEObject as FolderInfo; - int fiCount = fi.ChildFolderCount; - advTreeProcSets.Nodes.Clear(); - lstCheckedDocVersions.Clear(); - topnode = new DevComponents.AdvTree.Node(); - topnode.Text = "Available Procedure Sets"; - topnode.Tag = fi; - advTreeProcSets.Nodes.Add(topnode); - //advTreeProcSets.AfterNodeInsert += new TreeNodeCollectionEventHandler(advTreeProcSets_AfterNodeInsert); - - - foreach (FolderInfo fic in fi.ChildFolders) - { - DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); - newnode.Text = fic.ToString(); - newnode.Tag = fic; - - //int tmp; - //if (topnode == null) - //{ - // newnode.Text = "Available Procedure Sets"; - // tmp = advTreeProcSets.Nodes.Add(newnode); - // topnode = newnode; - //} - //else - //{ - // newnode.Selectable = true; - // newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; - // newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; - // newnode.CheckBoxThreeState = false; - // newnode.CheckBoxVisible = true; - // tmp = topnode.Nodes.Add(newnode); - //} - cntnd++; - if (fic.ChildFolderCount > 0 || fic.FolderDocVersionCount > 0) // allow for '+' for tree expansion - { - DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node(); - tnt.Text = "VLN_DUMMY"; - newnode.Nodes.Add(tnt); - topnode.Nodes.Add(newnode); - } - } - - // if nothing was added to the tree, just put in the node above the docversions... - if (advTreeProcSets.Nodes.Count == 0) - { - cntnd++; - fi = Mydocversion.MyFolder; - topnode = new DevComponents.AdvTree.Node(); - topnode.Text = fi.ToString(); - advTreeProcSets.Nodes.Add(topnode); - topnode.Tag = fi; - } - - advTreeProcSets.BeforeExpand += new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(advTreeProcSets_BeforeExpand); - - // position to the procedure set in the tree if we have a procedure open - if (Mydocversion != null) - advTreeProcSetsPreSelect(); - else - advTreeProcSets.Nodes[0].SelectedCell = advTreeProcSets.Nodes[0].Cells[0]; // select the first node - fixes cosmetic problem - - //if (blSeachTabClicked) - // cbxTextSearchText.Focus(); // set initial focus to enter search text - } - void advTreeProcSets_BeforeExpand(object sender, DevComponents.AdvTree.AdvTreeNodeCancelEventArgs e) - { - DevComponents.AdvTree.Node par = e.Node; - // get first child's text, if it has one & if the text is VLN_DUMMY, load children - DevComponents.AdvTree.Node tn = null; - if (par.Nodes.Count > 0) tn = par.Nodes[0]; - if (tn.Text == "VLN_DUMMY") // expand this - { - par.Nodes.Clear(); - Object obj = par.Tag; - if (!(obj is FolderInfo)) return; // should always be folderinfo on expand - FolderInfo fi = (FolderInfo)obj; - if (fi.ChildFolderCount > 0) - { - foreach (FolderInfo fic in fi.ChildFolders) - { - DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); - newnode.Text = fic.ToString(); - newnode.Tag = fic; - par.Nodes.Add(newnode); - if (fic.HasChildren) // allow for '+' for tree expansion - { - DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node(); - tnt.Text = "VLN_DUMMY"; - newnode.Nodes.Add(tnt); - } - } - } - else if (fi.FolderDocVersionCount > 0) - { - foreach (DocVersionInfo dv in fi.FolderDocVersions) - { - DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); - newnode.Text = dv.ToString(); - newnode.Tag = dv; - newnode.Selectable = true; - newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; - newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; - newnode.CheckBoxThreeState = false; - newnode.CheckBoxVisible = true; - par.Nodes.Add(newnode); - } - } - } - } - private void advTreeProcSets_AfterCheck(object sender, DevComponents.AdvTree.AdvTreeCellEventArgs e) - { - DevComponents.AdvTree.Node n = advTreeProcSets.SelectedNode; - if (n.Checked) - { - n.Style = DevComponents.AdvTree.NodeStyles.Apple; - lstCheckedDocVersions.Add((DocVersionInfo)n.Tag); - if (lstCheckedDocVersions.Count == 1)//Mydocversion == null) - { - Mydocversion = (DocVersionInfo)n.Tag; - } - } - else - { - n.Style = null; - lstCheckedDocVersions.Remove((DocVersionInfo)n.Tag); - if (lstCheckedDocVersions.Count == 1) - { - if (Mydocversion != lstCheckedDocVersions[0]) - { - Mydocversion = lstCheckedDocVersions[0]; - } - } - else - { - if (lstCheckedDocVersions.Count == 0) - Mydocversion = null; - // do this if either none, or more than one procedure set selected - //advTreeStepTypes.Nodes.Clear(); - //lstCheckedStepTypes.Clear(); - //lstCheckedStepTypesStr.Clear(); - //Node newnode = new DevComponents.AdvTree.Node(); - //newnode.Text = "....select a procedure set for types to appear..."; - //advTreeStepTypes.Nodes.Add(newnode); - //buildStepTypePannelTitle(); - } - } - //// Enable the RO combo list only if at least one procedure set node - //// is selected - //cmboTreeROs.Enabled = (lstCheckedDocVersions.Count > 0); - //gpFindROs.Enabled = cmboTreeROs.Enabled; - - //SetupContextMenu(); - - //buildSetToSearchPanelTitle(); - EnableOrDisablePrintButton(); - } - private void advTreeProcSets_AfterNodeSelect(object sender, AdvTreeNodeEventArgs e) - { - DevComponents.AdvTree.Node n = advTreeProcSets.SelectedNode; - } - private void advTreeProcSetsPreSelect() - { - bool keeplooking = true; - //build a stack (bread crumb trail) of where is procedure set came from within the tree. - Stack crumbs = new Stack(); - - crumbs.Push(Mydocversion.Name); // ex: "working draft" - crumbs.Push(Mydocversion.MyFolder.Name); // ex: "Emergency Procedures" - FolderInfo fi = Mydocversion.MyFolder.MyParent; - while (fi != null) - { - if (fi.MyParent != null) - crumbs.Push(fi.Name); - fi = fi.MyParent; - } - crumbs.Push(advTreeProcSets.Nodes[0].Text); //top node of my tree - - // now walk the tree, looking for the node names we saved in the stack. - NodeCollection monkeys = advTreeProcSets.Nodes; - while (keeplooking) - { - Node climber = LookInTree(monkeys, crumbs.Pop()); - keeplooking = (climber != null && crumbs.Count > 0); - if (keeplooking) - monkeys = climber.Nodes; - if (!keeplooking && climber != null) - { - climber.Checked = true; - } - } - } - private Node LookInTree(NodeCollection monkeys, string bananna) - { - Node foundit = null; - foreach (Node chimp in monkeys) - { - if (chimp.Text.Equals(bananna)) - { - foundit = chimp; - // need to select the node (cell) for it to be checked - chimp.SelectedCell = chimp.Cells[0]; - if (chimp.Nodes.Count > 0) - chimp.Expand(); - break; - } - chimp.Collapse(); - } - return foundit; - } - #endregion - #region RO Tree - public void advTreeROFillIn(bool blSeachTabClicked) - { - DevComponents.AdvTree.Node topnode = null; - advTreeRO.Nodes.Clear(); - if (_MyROFSTLookup == null) return; - advTreeRO.BeforeExpand +=new AdvTreeNodeCancelEventHandler(advTreeRO_BeforeExpand); - advTreeRO.AfterExpand += new AdvTreeNodeEventHandler(advTreeRO_AfterExpandorCollapse); - advTreeRO.AfterCollapse += new AdvTreeNodeEventHandler(advTreeRO_AfterExpandorCollapse); - topnode = new DevComponents.AdvTree.Node(); - topnode.Text = "All Referenced Objects"; - topnode.Tag = null; - topnode.CheckBoxVisible = true; - advTreeRO.Nodes.Add(topnode); - - for (int i = 0; i < _MyROFSTLookup.myHdr.myDbs.Length; i++) - { - DevComponents.AdvTree.Node tn = new DevComponents.AdvTree.Node(); - tn.Text = _MyROFSTLookup.myHdr.myDbs[i].dbiTitle; - tn.Tag = _MyROFSTLookup.myHdr.myDbs[i]; - tn.CheckBoxVisible = true; - topnode.Nodes.Add(tn); - AddDummyGroup(_MyROFSTLookup.myHdr.myDbs[i], tn); - } - - - //foreach (FolderInfo fic in fi.ChildFolders) - //{ - // DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); - // newnode.Text = fic.ToString(); - // newnode.Tag = fic; - - // cntnd++; - // if (fic.ChildFolderCount > 0 || fic.FolderDocVersionCount > 0) // allow for '+' for tree expansion - // { - // DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node(); - // tnt.Text = "VLN_DUMMY"; - // newnode.Nodes.Add(tnt); - // topnode.Nodes.Add(newnode); - // } - //} - - //// if nothing was added to the tree, just put in the node above the docversions... - //if (advTreeProcSets.Nodes.Count == 0) - //{ - // cntnd++; - // fi = Mydocversion.MyFolder; - // topnode = new DevComponents.AdvTree.Node(); - // topnode.Text = fi.ToString(); - // advTreeProcSets.Nodes.Add(topnode); - // topnode.Tag = fi; - //} - - //advTreeProcSets.BeforeExpand += new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(advTreeProcSets_BeforeExpand); - - //// position to the procedure set in the tree if we have a procedure open - //if (Mydocversion != null) - // advTreeProcSetsPreSelect(); - //else - // advTreeProcSets.Nodes[0].SelectedCell = advTreeProcSets.Nodes[0].Cells[0]; // select the first node - fixes cosmetic problem - - //if (blSeachTabClicked) - // cbxTextSearchText.Focus(); // set initial focus to enter search text - } - - private void AddDummyGroup(ROFSTLookup.rodbi rodbi, DevComponents.AdvTree.Node tn) - { - if (rodbi.children != null && rodbi.children.Length > 0) - { - DevComponents.AdvTree.Node tmp = new DevComponents.AdvTree.Node(); - tmp.Text = "VLN_DUMMY_FOR_TREE"; - tn.Nodes.Add(tmp); - } - } - private void advTreeRO_BeforeExpand(object sender, DevComponents.AdvTree.AdvTreeNodeCancelEventArgs e) - { - LoadChildren(e.Node); - } - - private void LoadChildren(DevComponents.AdvTree.Node tn) - { - object tag = tn.Tag; - if (tn.HasChildNodes && tn.Nodes[0].Text != "VLN_DUMMY_FOR_TREE") return; // already loaded. - if (tn.HasChildNodes && tn.Nodes[0].Text == "VLN_DUMMY_FOR_TREE") tn.Nodes[0].Remove(); - ROFSTLookup.rochild[] chld = null; - - if (tn.Tag is ROFSTLookup.rodbi) - { - ROFSTLookup.rodbi db = (ROFSTLookup.rodbi)tn.Tag; - chld = db.children; - } - else if (tn.Tag is ROFSTLookup.rochild) - { - ROFSTLookup.rochild ch = (ROFSTLookup.rochild)tn.Tag; - chld = ch.children; - } - else - { - Console.WriteLine("error - no type"); - return; - } - // if children, add dummy node - if (chld != null && chld.Length > 0) - { - //ProgressBar_Initialize(chld.Length, tn.Text); - for (int i = 0; i < chld.Length; i++) - { - //ProgressBar_SetValue(i); - DevComponents.AdvTree.Node tmp = null; - // if this is a group, i.e. type 0, add a dummy node - if (chld[i].type == 0 && chld[i].children == null) - //skip it. - // TODO: KBR how to handle this? - //Console.WriteLine("ro junk"); - continue; - else if (chld[i].value == null && (cbxROUsage.Checked || chld[i].children[0].ParentID != 0)) - { - tmp = new DevComponents.AdvTree.Node(); - tmp.Text = chld[i].title; - tmp.Tag = chld[i]; - tmp.CheckBoxVisible = true; - int index = FindIndex(tn.Nodes, tmp.Text); - tn.Nodes.Insert(index, tmp); - DevComponents.AdvTree.Node sub = new DevComponents.AdvTree.Node(); - sub.Text = "VLN_DUMMY_FOR_TREE"; - tmp.Nodes.Add(sub); - } - else - { - tmp = new DevComponents.AdvTree.Node(); - tmp.Text = chld[i].title; - tmp.Tag = chld[i]; - tmp.CheckBoxVisible = true; - int index = FindIndex(tn.Nodes, tmp.Text); - tn.Nodes.Insert(index, tmp); - } - } - } - //ProgressBar_Clear(); - } - void advTreeRO_AfterExpandorCollapse(object sender, AdvTreeNodeEventArgs e) - { - Node bottomNode = BottomTreeNode(advTreeRO.Nodes); - Node lastNode = advTreeRO.Nodes[advTreeRO.Nodes.Count - 1]; - int top = advTreeRO.Nodes[0].Bounds.Top; - int bottom = bottomNode.Bounds.Bottom + 5; - int hScrollBarHeight = advTreeRO.HScrollBar != null ? advTreeRO.HScrollBar.Height : 0; - bottom = bottomNode.Bounds.Bottom + 5; - advTreeRO.Size = new Size(advTreeRO.Size.Width, Math.Min(525, bottom - top + hScrollBarHeight)); - if (advTreeRO.VScrollBar != null && bottom < advTreeRO.Size.Height) - { - int yLookFor = (bottom - advTreeRO.Size.Height) + 2 * hScrollBarHeight; - Node topNode = FindTreeNodeAt(advTreeRO.Nodes, yLookFor); - if (topNode != null) - topNode.EnsureVisible(); - } - } - private Node FindTreeNodeAt(NodeCollection nodes, int y) - { - foreach (Node node in nodes) - { - if (node.Bounds.Top <= y && node.Bounds.Bottom >= y) - return node; - if (node.Bounds.Top > y) - { - if (node.PrevNode != null && node.PrevNode.Expanded) - return FindTreeNodeAt(node.PrevNode.Nodes, y); - return node; - } - } - return null; - } - private Node BottomTreeNode(NodeCollection nodes) - { - Node bottomNode = nodes[nodes.Count - 1]; // Return bottom node in collection - if (bottomNode.Expanded) // If expanded return bottom child - return BottomTreeNode(bottomNode.Nodes); - return bottomNode; - } - private int FindIndex(NodeCollection nodes, string value) - { - int index = 0; - foreach (Node node in nodes) - { - if (GreaterValue(node.Text, value)) return index; - index++; - } - return index; - } - //private static Regex _RegExGetNumber = new Regex(@"^ *[+-]?[.,0-9]+(E[+-]?[0-9]+)?"); - private bool GreaterValue(string value1, string value2) - { - return DisplayRO.GreaterValue(value1, value2); - // Match match1 = _RegExGetNumber.Match(value1); - // Match match2 = _RegExGetNumber.Match(value2); - // if (match1.Success && match2.Success) // Compare the numeric value - // { - // double dbl1 = double.Parse(match1.ToString()); - // double dbl2 = double.Parse(match2.ToString()); - // return dbl1 > dbl2; - // } - // return String.Compare(value1, value2, true) > 0; - } - - - #endregion - - private void DisplayReports_Load(object sender, EventArgs e) - { - tabTransitionReports.PerformClick(); - } - - // when a node is checked (selected) then uncheck any of its children - private void UncheckChildren(DevComponents.AdvTree.NodeCollection chldrn) - { - if (chldrn.Count > 0) - { - foreach (DevComponents.AdvTree.Node n in chldrn) - { - if (n.Checked) - n.Checked = false; - else - UncheckChildren(n.Nodes); - } - } - } - // when a node is checked (selected), uncheck the parents, grand parents, great grand parents, etc. - private void UncheckParents(DevComponents.AdvTree.Node pNode) - { - while (pNode != null) - { - if (pNode.Checked) pNode.Checked = false; - pNode = pNode.Parent; - } - } - - private void advTreeRO_AfterCheck(object sender, AdvTreeCellEventArgs e) - { - DevComponents.AdvTree.Node n = advTreeRO.SelectedNode; - if (n.Checked) - { - UncheckChildren(n.Nodes); - UncheckParents(n.Parent); - } - - EnableOrDisablePrintButton(); - } - - private void cbxTransToProcs_CheckedChanged(object sender, EventArgs e) - { - EnableOrDisablePrintButton(); - } - - private void cbxTransFromProcs_CheckedChanged(object sender, EventArgs e) - { - EnableOrDisablePrintButton(); - } - - private void cbxComplete_CheckedChanged(object sender, EventArgs e) - { - cbxIncldMissingROs.Checked = false;// !cbxSummary.Checked; - EnableOrDisablePrintButton(); - } - - private void cbxSummary_CheckedChanged(object sender, EventArgs e) - { - EnableOrDisablePrintButton(); - } - private string BuildRODataFile(string ROList) - { - DocVersionInfo MyDVI = Mydocversion; - string roDataFile = "PRINT.TMP"; - - if (VlnSettings.ReleaseMode.Equals("DEMO")) - { - MessageBox.Show("Referenced Object Reports not available in the Demo version.", "PROMS Demo Version"); - return ""; - } - //string roapp = Environment.GetEnvironmentVariable("roapp"); - string roapp = Volian.Base.Library.ExeInfo.GetROEditorPath(); // get the path to the RO Editor Executable - if (roapp == null) - { - MessageBox.Show("Could not find path to Ro Editor, check 'roapp' environment variable"); - return ""; - } - if (MyDVI == null || MyDVI.DocVersionAssociationCount < 1) - { - MessageBox.Show("Could not find associated path for ro data.","No RO Data", MessageBoxButtons.OK, MessageBoxIcon.Information); - return ""; - } - //string roloc = "\"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath + "\" " + "\"" + ROList + "\""; - if (!Directory.Exists(MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath)) - { - MessageBox.Show(string.Format("RO Database directory does not exist: {0}", MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath)); - return ""; - } - string cmpRptExePath = roapp.Substring(0, roapp.LastIndexOf("\\")) + "\\CmpRpt.exe "; - roDataFile = MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath + "\\" + roDataFile; - try - { - - if (File.Exists(roDataFile)) File.Delete(roDataFile); - Application.DoEvents(); - string fname = VlnSettings.TemporaryFolder + "\\ROCompleteRprt.txt"; - FileInfo fi = new FileInfo(fname); - using (StreamWriter sw = fi.CreateText()) - { - sw.Write(ROList); - sw.Close(); - } - string roloc = "\"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath + "\" \"/f=" + fname + "\""; - System.Diagnostics.Process p = System.Diagnostics.Process.Start(cmpRptExePath, roloc); - // need to wait, sometimes the Print.tmp file that is generated is not available - p.WaitForExit(); // without arguments, this will wait indefinately - Application.DoEvents(); - } - catch (Exception ex) - { - while (ex.InnerException != null) - ex = ex.InnerException; - string tmpmsg = ex.Message; - MessageBox.Show(tmpmsg, "RO Report Error: " + ex.GetType().Name); - } - return roDataFile; - } - private void btnPrintReport_Click(object sender, EventArgs e) - { - Cursor curcur = Cursor; - Cursor = Cursors.WaitCursor; - if (cbxSummary.Checked) // RO Summary Report - { - GenerateROList(); - OnPrintRequest(new DisplayReportsEventArgs("RO Summary Report", "RO Summary Report", MyROFSTLookup, ROList)); - } - else if (cbxComplete.Checked) // Complete RO Report - { - GenerateROList(); - string ROList = GetListOfROs(false);//don't include the RODbID in the RO list - string roDataFile = BuildRODataFile(ROList); - OnPrintRequest(new DisplayReportsEventArgs("Complete RO Report", "Complete RO Report", roDataFile, MyROFSTLookup, cbxComplete.Checked, this.Mydocversion.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta, cbxIncldMissingROs.Checked)); - } - else if (cbxROUsage.Checked) - { - bool usageSortedByProcedure = (cmbxROUsageSort.SelectedIndex == 1); - GenerateROList(); - string SearchString = GetListOfROs(true);// Include the RODbID in the RO list - ItemInfoList SearchResults = ItemInfoList.GetListFromROReport(DocVersionList, "", SearchString, ""); - if (!usageSortedByProcedure) // sort on ROs - { - Csla.SortedBindingList sortedResults = new Csla.SortedBindingList(SearchResults); - sortedResults.ApplySort("FoundROID", ListSortDirection.Ascending); - OnPrintRequest(new DisplayReportsEventArgs("Referenced Objects Usage By RO", "RO Usage", sortedResults, usageSortedByProcedure,cbxIncldMissingROs.Checked)); - } - else - OnPrintRequest(new DisplayReportsEventArgs("Referenced Objects Usage By Procedure", "RO Usage", SearchResults, usageSortedByProcedure,cbxIncldMissingROs.Checked)); - } - else if (cbxTransFromProcs.Checked) - { - } - else if (cbxTransToProcs.Checked) - { - } - Cursor = curcur; - } - - } - public class DisplayReportsEventArgs - { - private string _ReportTitle; - public string ReportTitle - { - get { return _ReportTitle; } - set { _ReportTitle = value; } - } - private string _TypesSelected; - public string TypesSelected - { - get { return _TypesSelected; } - set { _TypesSelected = value; } - } - private ICollection _MyItemInfoList; - public ICollection MyItemInfoList - { - get { return _MyItemInfoList; } - set { _MyItemInfoList = value; } - } - private bool _SortUsageByProcedure; - public bool SortUsageByProcedure - { - get { return _SortUsageByProcedure; } - set { _SortUsageByProcedure = value; } - } - private string _RODataFile = ""; - public string RODataFile - { - get { return _RODataFile; } - set { _RODataFile = value; } - } - private bool _CompleteROReport = true; - public bool CompleteROReport - { - get { return _CompleteROReport; } - set { _CompleteROReport = value; } - } - private ROFSTLookup _rofstLookup; - public ROFSTLookup RofstLookup - { - get { return _rofstLookup; } - set { _rofstLookup = value; } - } - private List _ROListForReport; - - public List ROListForReport - { - get { return _ROListForReport; } - set { _ROListForReport = value; } - } - private bool _IncludeMissingROs = true; - - public bool IncludeMissingROs - { - get { return _IncludeMissingROs; } - set { _IncludeMissingROs = value; } - } - private bool _ConvertCaretToDelta = true; - - public bool ConvertCaretToDelta - { - get { return _ConvertCaretToDelta; } - set { _ConvertCaretToDelta = value; } - } - private bool _IncludeEmptyROFields = true; - - public bool IncludeEmptyROFields - { - get { return _IncludeEmptyROFields; } - set { _IncludeEmptyROFields = value; } - } - public DisplayReportsEventArgs(string reportTitle, string typesSelected, ICollection myItemInfoList, bool sortByProcedure, bool includeMissingROs) - { - // RO Usage Report - _ReportTitle = reportTitle; - _TypesSelected = typesSelected; - _MyItemInfoList = myItemInfoList; - _SortUsageByProcedure = sortByProcedure; - _IncludeMissingROs = includeMissingROs; - - } - public DisplayReportsEventArgs(string reportTitle, string typesSelected, string roDataFile, ROFSTLookup rofstLookUp, bool completeROReport, bool convertCaretToDelta, bool includeEmptyROFields) - { - _ReportTitle = reportTitle; - _TypesSelected = typesSelected; - _RODataFile = roDataFile; - _CompleteROReport = completeROReport; - _ConvertCaretToDelta = convertCaretToDelta; - _rofstLookup = rofstLookUp; - _IncludeEmptyROFields = includeEmptyROFields; - } - public DisplayReportsEventArgs(string reportTitle, string typesSelected, ROFSTLookup rofstLookUp, List roListForReport) - { - // RO Summary Report - _ReportTitle = reportTitle; - _TypesSelected = typesSelected; - _rofstLookup = rofstLookUp; - _ROListForReport = roListForReport; - } - } - public delegate void DisplayReportsEvent(object sender, DisplayReportsEventArgs args); -} diff --git a/PROMS/Volian.Controls.Library/DisplaySearch.cs.bak b/PROMS/Volian.Controls.Library/DisplaySearch.cs.bak deleted file mode 100644 index bc2a3bbe..00000000 --- a/PROMS/Volian.Controls.Library/DisplaySearch.cs.bak +++ /dev/null @@ -1,1738 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using DevComponents.DotNetBar; -using DevComponents.AdvTree; -using Volian.Base.Library; -using System.Text.RegularExpressions; - -namespace Volian.Controls.Library -{ - public partial class DisplaySearch : UserControl - { - #region Events - public event DisplaySearchEvent PrintRequest; - private void OnPrintRequest(DisplaySearchEventArgs args) - { - if (PrintRequest != null) - PrintRequest(this, args); - } - #endregion - #region Properties - private string _strSrchText = ""; - private List lstCheckedDocVersions = new List(); - private List lstCheckedStepTypes = new List(); - private List lstCheckedStepTypesStr = new List(); - private AnnotationDetails _AnnotationDetails = null; - ItemInfo _ItemInfo = null; - private DisplayTabControl _TabControl; - private DocVersionInfo _MyDocVersion; - private Color saveXpSetToSearchColor; - private Color saveXpStepTypeTitleColor; - private Color saveGpSrchAnnoTextColor; - private Color saveGpSrchTextColor; - private Color saveGpFindROsColor; - private Color saveGrpPanSearchResults; - private ItemInfoList _SearchResults; - public ItemInfoList SearchResults - { - get { return _SearchResults; } - set - { - _SearchResults = value; - if (value != null) // Don't select an item from the list when it is updated - _SearchResults.ListChanged += new ListChangedEventHandler(_SearchResults_ListChanged); - DisplayResults(); - } - } - void _SearchResults_ListChanged(object sender, ListChangedEventArgs e) - { - lbSrchResults.SelectedIndex = -1; // Don't select an item from the new list - } - - private string _DisplayMember = "SearchPath"; - - //public string Status - //{ - // get { return tsslStatus.Text; } - // set { tsslStatus.Text = value; Application.DoEvents(); } - //} - - private bool _OpenDocFromSearch; - - public bool OpenDocFromSearch - { - get { return _OpenDocFromSearch; } - //set { _OpenDocFromSearch = value; } - } - public DocVersionInfo Mydocversion - { - get { return _MyDocVersion; } - set - { - _MyDocVersion = value; - if (_MyDocVersion != null) - { - if (_MyDocVersion.DocVersionAssociationCount > 0) - { - // if the count variable is not consistent with the actual list count, - // do a refresh. There was a bug, B2012-040, that was not reproducable.. - // so this is an attempt to fix it. - if (_MyDocVersion.DocVersionAssociations.Count == 0) - { - _MyDocVersion.RefreshDocVersionAssociations(); - if (_MyDocVersion.DocVersionAssociations.Count == 0) return; - } - MyROFSTLookup = _MyDocVersion.DocVersionAssociations[0].MyROFst.GetROFSTLookup(_MyDocVersion); - _MyRODbID = _MyDocVersion.DocVersionAssociations[0].MyROFst.RODbID; - } - } - } - } - - private ROFSTLookup _MyROFSTLookup; - public ROFSTLookup MyROFSTLookup - { - get { return _MyROFSTLookup; } - set - { - //if (!Visible) return; // don't reset anything if the form is invisible. - _MyROFSTLookup = value; // define the tree nodes based on this rofst - LoadROComboTree(); - } - } - private bool _LoadingList = false; - public bool LoadingList - { - get { return _LoadingList; } - set { _LoadingList = value; } - } - - private int LastResultsMouseOverIndex = -1; - - private ProgressBarItem _ProgressBar; - - public ProgressBarItem ProgressBar - { - get { return _ProgressBar; } - set { _ProgressBar = value; } - } - #endregion - - #region setup - public DisplaySearch() - { - InitializeComponent(); - LoadSearchTextListBox(); - saveXpSetToSearchColor = xpSetToSearch.TitleStyle.BackColor1.Color; - saveXpStepTypeTitleColor = xpStepTypes.TitleStyle.BackColor1.Color; - saveGpSrchAnnoTextColor = gpSrchAnnoText.Style.BackColor; - saveGpSrchTextColor = gpSrchText.Style.BackColor; - saveGpFindROsColor = gpFindROs.Style.BackColor; - gpSrchText.Style.BackColor = Color.Yellow; - saveGrpPanSearchResults = grpPanSearchResults.Style.BackColor; - - // start out with the procedure and type selection windows colasped - xpSetToSearch.Expanded = false; - xpStepTypes.Expanded = false; - rbtnSrchTxt.Checked = true; - gpSrchAnnoText.Enabled = true; - cmbResultsStyle.Enabled = false; - } - private void LoadSearchTextListBox() - { - // Setup SearchText Combo - cbxTextSearchText.Items.Clear(); - if (Properties.Settings.Default["SearchList"] != null && Properties.Settings.Default.SearchList.Count > 0) - { - foreach (string str in Properties.Settings.Default.SearchList) - cbxTextSearchText.Items.Add(str); - } - // Setup SearchAnnotation Combo - cbxTextSearchAnnotation.Items.Clear(); - if (Properties.Settings.Default["SearchAList"] != null && Properties.Settings.Default.SearchAList.Count > 0) - { - foreach (string str in Properties.Settings.Default.SearchAList) - cbxTextSearchAnnotation.Items.Add(str); - } - } - - private DevComponents.AdvTree.Node NewAdvTreeNode(string nodetext, bool selectable, bool chxbxvisable) - { - DevComponents.AdvTree.Node newnode; - newnode = new DevComponents.AdvTree.Node(); - newnode.Text = nodetext; - newnode.Selectable = selectable; - newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; - newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; - newnode.CheckBoxThreeState = false; - newnode.CheckBoxVisible = chxbxvisable; - return newnode; - } - - public void advTreeStepTypesFillIn() - { - DevComponents.AdvTree.Node topnode = new DevComponents.AdvTree.Node(); - advTreeStepTypes.Nodes.Clear(); - lstCheckedStepTypes.Clear(); - lstCheckedStepTypesStr.Clear(); - topnode.Text = "Types"; - advTreeStepTypes.Nodes.Add(topnode); - - FormatData fmtdata = _MyDocVersion.ActiveFormat.PlantFormat.FormatData; - List lstSrchStpTypes = fmtdata.GetSearchableSteps(); // list of searchable step types - if (lstSrchStpTypes != null && lstSrchStpTypes.Count > 0) - { - DevComponents.AdvTree.Node newnode; - advTreeStepTypes.Nodes.Clear(); - // Add a dummy node for searching Accessory Sections (MS Word sections) - //newnode = new DevComponents.AdvTree.Node(); - //newnode.Text = "Accessory Sections"; - //newnode.Selectable = true; - //newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; - //newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; - //newnode.CheckBoxThreeState = false; - //newnode.CheckBoxVisible = true; - newnode = NewAdvTreeNode("Accessory Sections", true, true); - advTreeStepTypes.Nodes.Add(newnode); - foreach (StepDataRetval sdr in lstSrchStpTypes) - { - StepDataList sdl = fmtdata.StepDataList; ; - StepData sd = sdl[sdr.Index]; // get the step type record - string parentName = sd.ParentType; // this gets the parent of the this step/substep type - - //Console.WriteLine("{0} {1} - {2}", parentName,sd.Type,sdr.Name); - //newnode = new DevComponents.AdvTree.Node(); - //newnode.Text = sdr.Name; - //newnode.Name = sd.Type; // this needed for the FindNodeByName() function - //newnode.Tag = sd; - //newnode.Selectable = true; - //newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; - //newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; - //newnode.CheckBoxThreeState = false; - //newnode.CheckBoxVisible = true; - if (parentName.Equals("Base")) - { - newnode = NewAdvTreeNode(sdr.Name, true, true); - newnode.Tag = sd; - newnode.Name = sd.Type; - DevComponents.AdvTree.Node pnode = NewAdvTreeNode(sd.Type, true, false); //create parent node (non selectable) - pnode.Name = sd.Type; - pnode.Nodes.Add(newnode); - pnode.Nodes.Sort(); - advTreeStepTypes.Nodes.Add(pnode); - } - else - { - newnode = NewAdvTreeNode(sdr.Name, true, true); - newnode.Name = sd.Type; // this needed for the FindNodeByName() function - newnode.Tag = sd; - - // if the parent node exists in the tree, then add the new node to that parent - // else, it is a parent node, so add it as a new parent - - DevComponents.AdvTree.Node parnode = advTreeStepTypes.FindNodeByName(parentName); - // Group by High Level Steps, Substeps, Cautions, Notes, Figures, Tables - while (!parentName.Equals("Base") && !parentName.Equals("Substep") && !parentName.Equals("High") && - !parentName.Equals("Caution") && !parentName.Equals("Note") && !parentName.Equals("Table") && - !parentName.Equals("Figure")) - { - StepData tmpsd = (StepData)parnode.Tag; - parentName = tmpsd.ParentType; - parnode = advTreeStepTypes.FindNodeByName(parentName); - } - if (parnode != null) - { - parnode.Nodes.Add(newnode); - parnode.Nodes.Sort(); // sort the second level of the tree - } - else - advTreeStepTypes.Nodes.Add(newnode); - } - } - advTreeStepTypes.Nodes.Sort(); // sort the first level of the tree - } - buildStepTypePannelTitle(); - } - - public void advTreeProcSetsFillIn(bool blSeachTabClicked) - { - DevComponents.AdvTree.Node topnode = null; - int cntnd = 0; - VETreeNode vtn = VETreeNode.GetFolder(1); - FolderInfo fi = vtn.VEObject as FolderInfo; - int fiCount = fi.ChildFolderCount; - advTreeProcSets.Nodes.Clear(); - lstCheckedDocVersions.Clear(); - topnode = new DevComponents.AdvTree.Node(); - topnode.Text = "Available Procedure Sets"; - topnode.Tag = fi; - advTreeProcSets.Nodes.Add(topnode); - //advTreeProcSets.AfterNodeInsert += new TreeNodeCollectionEventHandler(advTreeProcSets_AfterNodeInsert); - - - foreach (FolderInfo fic in fi.ChildFolders) - { - DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); - newnode.Text = fic.ToString(); - newnode.Tag = fic; - - //int tmp; - //if (topnode == null) - //{ - // newnode.Text = "Available Procedure Sets"; - // tmp = advTreeProcSets.Nodes.Add(newnode); - // topnode = newnode; - //} - //else - //{ - // newnode.Selectable = true; - // newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; - // newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; - // newnode.CheckBoxThreeState = false; - // newnode.CheckBoxVisible = true; - // tmp = topnode.Nodes.Add(newnode); - //} - cntnd++; - if (fic.ChildFolderCount > 0 || fic.FolderDocVersionCount > 0) // allow for '+' for tree expansion - { - DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node(); - tnt.Text = "VLN_DUMMY"; - newnode.Nodes.Add(tnt); - topnode.Nodes.Add(newnode); - } - } - - // if nothing was added to the tree, just put in the node above the docversions... - if (advTreeProcSets.Nodes.Count == 0) - { - cntnd++; - fi = Mydocversion.MyFolder; - topnode = new DevComponents.AdvTree.Node(); - topnode.Text = fi.ToString(); - advTreeProcSets.Nodes.Add(topnode); - topnode.Tag = fi; - } - - advTreeProcSets.BeforeExpand += new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(advTreeProcSets_BeforeExpand); - - // position to the procedure set in the tree if we have a procedure open - if (Mydocversion != null) - advTreeProcSetsPreSelect(); - else - advTreeProcSets.Nodes[0].SelectedCell = advTreeProcSets.Nodes[0].Cells[0]; // select the first node - fixes cosmetic problem - - if (blSeachTabClicked) - cbxTextSearchText.Focus(); // set initial focus to enter search text - } - - //void advTreeProcSets_AfterNodeInsert(object sender, TreeNodeCollectionEventArgs e) - //{ - // IVEDrillDownReadOnly tmp = e.Node.Tag as IVEDrillDownReadOnly; - // if (tmp != null) - // { - // Console.WriteLine("Has Children {0} {1}", tmp.HasChildren, tmp.ToString()); - // FolderInfo fi = tmp as FolderInfo; - // //if (fi != null) - // // Console.WriteLine("dvi Count {0}", fi.FolderDocVersionCount); - // } - // vlnStackTrace.ShowStackLocal(e.Node.Text,1,10); - //} - - void advTreeProcSets_BeforeExpand(object sender, DevComponents.AdvTree.AdvTreeNodeCancelEventArgs e) - { - DevComponents.AdvTree.Node par = e.Node; - // get first child's text, if it has one & if the text is VLN_DUMMY, load children - DevComponents.AdvTree.Node tn = null; - if (par.Nodes.Count > 0) tn = par.Nodes[0]; - if (tn.Text == "VLN_DUMMY") // expand this - { - par.Nodes.Clear(); - Object obj = par.Tag; - if (!(obj is FolderInfo)) return; // should always be folderinfo on expand - FolderInfo fi = (FolderInfo)obj; - if (fi.ChildFolderCount > 0) - { - foreach (FolderInfo fic in fi.ChildFolders) - { - DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); - newnode.Text = fic.ToString(); - newnode.Tag = fic; - par.Nodes.Add(newnode); - if (fic.HasChildren) // allow for '+' for tree expansion - { - DevComponents.AdvTree.Node tnt = new DevComponents.AdvTree.Node(); - tnt.Text = "VLN_DUMMY"; - newnode.Nodes.Add(tnt); - } - } - } - else if (fi.FolderDocVersionCount > 0) - { - foreach (DocVersionInfo dv in fi.FolderDocVersions) - { - //if ((VersionTypeEnum)dv.VersionType == VersionTypeEnum.WorkingDraft) - //{ - DevComponents.AdvTree.Node newnode = new DevComponents.AdvTree.Node(); - newnode.Text = dv.ToString(); - newnode.Tag = dv; - newnode.Selectable = true; - newnode.CheckBoxAlignment = DevComponents.AdvTree.eCellPartAlignment.NearCenter; - newnode.CheckBoxStyle = eCheckBoxStyle.CheckBox; - newnode.CheckBoxThreeState = false; - newnode.CheckBoxVisible = true; - par.Nodes.Add(newnode); - //} - } - } - } - } - - private Node LookInTree(NodeCollection monkeys, string bananna) - { - Node foundit = null; - foreach (Node chimp in monkeys) - { - if (chimp.Text.Equals(bananna)) - { - foundit = chimp; - // need to select the node (cell) for it to be checked - chimp.SelectedCell = chimp.Cells[0]; - if (chimp.Nodes.Count > 0) - chimp.Expand(); - break; - } - chimp.Collapse(); - } - return foundit; - } - - private void advTreeProcSetsPreSelect() - { - bool keeplooking = true; - //build a stack (bread crumb trail) of where is procedure set came from within the tree. - Stack crumbs = new Stack(); - //crumbs.Push(Mydocversion.Name); // ex: "working draft" - //crumbs.Push(Mydocversion.MyFolder.Name); // ex: "Emergency Procedures" - //crumbs.Push(Mydocversion.MyFolder.MyParent.Name); // ex: "STPNOC-South Texas" - //crumbs.Push(advTreeProcSets.Nodes[0].Text); //top node of my tree - - crumbs.Push(Mydocversion.Name); // ex: "working draft" - crumbs.Push(Mydocversion.MyFolder.Name); // ex: "Emergency Procedures" - FolderInfo fi = Mydocversion.MyFolder.MyParent; - while (fi != null) - { - if (fi.MyParent != null) - crumbs.Push(fi.Name); - fi = fi.MyParent; - } - crumbs.Push(advTreeProcSets.Nodes[0].Text); //top node of my tree - - // now walk the tree, looking for the node names we saved in the stack. - NodeCollection monkeys = advTreeProcSets.Nodes; - while (keeplooking) - { - Node climber = LookInTree(monkeys, crumbs.Pop()); - keeplooking = (climber != null && crumbs.Count > 0); - if (keeplooking) - monkeys = climber.Nodes; - if (!keeplooking && climber != null) - { - climber.Checked = true; - } - } - } - - #endregion - - #region ROFST Combo Tree - private void LoadROComboTree() - { - if (_MyROFSTLookup == null) return; - cmboTreeROs.Nodes.Clear(); - this.cmboTreeROs.AdvTree.BeforeExpand += new DevComponents.AdvTree.AdvTreeNodeCancelEventHandler(this.cmboTreeROs_BeforeExpand); - cmboTreeROs.AdvTree.AfterExpand += new AdvTreeNodeEventHandler(AdvTree_AfterExpandorCollapse); - cmboTreeROs.AdvTree.AfterCollapse += new AdvTreeNodeEventHandler(AdvTree_AfterExpandorCollapse); - for (int i = 0; i < _MyROFSTLookup.myHdr.myDbs.Length; i++) - { - DevComponents.AdvTree.Node tn = new DevComponents.AdvTree.Node(); - tn.Text = _MyROFSTLookup.myHdr.myDbs[i].dbiTitle; - tn.Tag = _MyROFSTLookup.myHdr.myDbs[i]; - cmboTreeROs.Nodes.Add(tn); - AddDummyGroup(_MyROFSTLookup.myHdr.myDbs[i], tn); - } - } - void AdvTree_AfterExpandorCollapse(object sender, AdvTreeNodeEventArgs e) - { - Node bottomNode = BottomTreeNode(cmboTreeROs.AdvTree.Nodes); - Node lastNode = cmboTreeROs.AdvTree.Nodes[cmboTreeROs.AdvTree.Nodes.Count - 1]; - int top = cmboTreeROs.AdvTree.Nodes[0].Bounds.Top; - int bottom = bottomNode.Bounds.Bottom + 5; - int hScrollBarHeight = cmboTreeROs.AdvTree.HScrollBar != null ? cmboTreeROs.AdvTree.HScrollBar.Height : 0; - bottom = bottomNode.Bounds.Bottom + 5; - cmboTreeROs.AdvTree.Size = new Size(cmboTreeROs.AdvTree.Size.Width, Math.Min(525, bottom - top + hScrollBarHeight)); - if (cmboTreeROs.AdvTree.VScrollBar != null && bottom < cmboTreeROs.AdvTree.Size.Height) - { - int yLookFor = (bottom - cmboTreeROs.AdvTree.Size.Height) + 2 * hScrollBarHeight; - Node topNode = FindTreeNodeAt(cmboTreeROs.AdvTree.Nodes, yLookFor); - if (topNode != null) - topNode.EnsureVisible(); - } - } - private Node FindTreeNodeAt(NodeCollection nodes, int y) - { - foreach (Node node in nodes) - { - if (node.Bounds.Top <= y && node.Bounds.Bottom >= y) - return node; - if (node.Bounds.Top > y) - { - if (node.PrevNode != null && node.PrevNode.Expanded) - return FindTreeNodeAt(node.PrevNode.Nodes, y); - return node; - } - } - return null; - } - private Node BottomTreeNode(NodeCollection nodes) - { - Node bottomNode = nodes[nodes.Count - 1]; // Return bottom node in collection - if (bottomNode.Expanded) // If expanded return bottom child - return BottomTreeNode(bottomNode.Nodes); - return bottomNode; - } - private void AddDummyGroup(ROFSTLookup.rodbi rodbi, DevComponents.AdvTree.Node tn) - { - if (rodbi.children != null && rodbi.children.Length > 0) - { - DevComponents.AdvTree.Node tmp = new DevComponents.AdvTree.Node(); - tmp.Text = "VLN_DUMMY_FOR_TREE"; - tn.Nodes.Add(tmp); - } - } - private void cmboTreeROs_BeforeExpand(object sender, DevComponents.AdvTree.AdvTreeNodeCancelEventArgs e) - { - LoadChildren(e.Node); - } - - private void LoadChildren(DevComponents.AdvTree.Node tn) - { - object tag = tn.Tag; - if (tn.HasChildNodes && tn.Nodes[0].Text != "VLN_DUMMY_FOR_TREE") return; // already loaded. - if (tn.HasChildNodes && tn.Nodes[0].Text == "VLN_DUMMY_FOR_TREE") tn.Nodes[0].Remove(); - ROFSTLookup.rochild[] chld = null; - - if (tn.Tag is ROFSTLookup.rodbi) - { - ROFSTLookup.rodbi db = (ROFSTLookup.rodbi)tn.Tag; - chld = db.children; - } - else if (tn.Tag is ROFSTLookup.rochild) - { - ROFSTLookup.rochild ch = (ROFSTLookup.rochild)tn.Tag; - chld = ch.children; - } - else - { - Console.WriteLine("error - no type"); - return; - } - // if children, add dummy node - if (chld != null && chld.Length > 0) - { - ProgressBar_Initialize(chld.Length, tn.Text); - for (int i = 0; i < chld.Length; i++) - { - ProgressBar_SetValue(i); - DevComponents.AdvTree.Node tmp = null; - // if this is a group, i.e. type 0, add a dummy node - if (chld[i].type == 0 && chld[i].children == null) - //skip it. - // TODO: KBR how to handle this? - //Console.WriteLine("ro junk"); - continue; - else if (chld[i].value == null) - { - tmp = new DevComponents.AdvTree.Node(); - tmp.Text = chld[i].title; - tmp.Tag = chld[i]; - tn.Nodes.Add(tmp); - DevComponents.AdvTree.Node sub = new DevComponents.AdvTree.Node(); - sub.Text = "VLN_DUMMY_FOR_TREE"; - tmp.Nodes.Add(sub); - } - else - { - tmp = new DevComponents.AdvTree.Node(); - tmp.Text = chld[i].title; - tmp.Tag = chld[i]; - int index = FindIndex(tn.Nodes, tmp.Text); - tn.Nodes.Insert(index, tmp); - //tn.Nodes.Add(tmp); - } - } - } - ProgressBar_Clear(); - } - - private int FindIndex(NodeCollection nodes, string value) - { - int index = 0; - foreach (Node node in nodes) - { - if (GreaterValue(node.Text, value)) return index; - index++; - } - return index; - } - private static Regex _RegExGetNumber = new Regex(@"^ *[+-]?[.,0-9]+(E[+-]?[0-9]+)?"); - private bool GreaterValue(string value1, string value2) - { - Match match1 = _RegExGetNumber.Match(value1); - Match match2 = _RegExGetNumber.Match(value2); - if (match1.Success && match2.Success) // Compare the numeric value - { - double dbl1 = double.Parse(match1.ToString()); - double dbl2 = double.Parse(match2.ToString()); - return dbl1 > dbl2; - } - return String.Compare(value1, value2, true) > 0; - } - - private void cmboTreeROs_SelectedIndexChanged(object sender, EventArgs e) - { - if (cmboTreeROs.SelectedIndex == -1 || cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rodbi) - cbxFndUnLnkROVals.Enabled = false; - else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild) - { - ROFSTLookup.rochild ro = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag; - cbxFndUnLnkROVals.Enabled = (ro.children == null); - } - if (!cbxFndUnLnkROVals.Enabled) - cbxFndUnLnkROVals.Checked = false; - } - - private void gpFindROs_EnabledChanged(object sender, EventArgs e) - { - if (gpFindROs.Enabled) - gpFindROs.Style.BackColor = Color.Yellow; - else - gpFindROs.Style.BackColor = saveGpFindROsColor; - } - - #endregion - - #region Annotation Search - - public void SetupAnnotationSearch(AnnotationDetails annotationDetails, DisplayTabControl tc) - { - _AnnotationDetails = annotationDetails; - List annoTypes = new List(); - annoTypes.Add(new AnnotationTypeSearch("All Annotations", "")); - AnnotationTypeInfoList annoList = AnnotationTypeInfoList.Get(); - foreach (AnnotationTypeInfo ati in annoList) - annoTypes.Add(new AnnotationTypeSearch(ati.Name, ati.TypeID.ToString())); - cbxAnnoTypes.DisplayMember = "Name"; - cbxAnnoTypes.DataSource = annoTypes; - lbSrchResults.MouseMove += new MouseEventHandler(lbSrchResults_MouseMove); - _TabControl = tc; - } - - - private void cbxTextSearchAnnotation_Leave(object sender, EventArgs e) - { - InsertAnnotationSearchCriteria(); - - } - - private void InsertAnnotationSearchCriteria() - { - if (!cbxTextSearchAnnotation.Text.Equals(string.Empty)) - { - string tstr = cbxTextSearchAnnotation.Text; - if (!cbxTextSearchAnnotation.Items.Contains(tstr)) - cbxTextSearchAnnotation.Items.Insert(0, tstr); - } - } - - private void gpSrchAnnoText_EnabledChanged(object sender, EventArgs e) - { - if (gpSrchAnnoText.Enabled) - { - gpSrchAnnoText.Style.BackColor = Color.Yellow; - cbxTextSearchAnnotation.Focus(); - } - else - gpSrchAnnoText.Style.BackColor = saveGpSrchAnnoTextColor; - } - - #endregion - - #region ProgressBar - private void ProgressBar_Initialize(int max, string desc) - { - if (_ProgressBar != null) - { - _ProgressBar.Maximum = max; - _ProgressBar.Text = desc; - _ProgressBar.TextVisible = true; - } - } - - private void ProgressBar_SetValue(int curval) - { - if (_ProgressBar != null) - _ProgressBar.Value = curval; - } - - private void ProgressBar_Clear() - { - if (_ProgressBar != null) - { - _ProgressBar.Text = ""; - _ProgressBar.Maximum = 0; - _ProgressBar.Value = 0; - _ProgressBar.TextVisible = false; - } - } - #endregion - - #region Search Results - private void DisplayResults() - { - _LoadingList = true; - lbSrchResults.DisplayMember = _DisplayMember; - if (_SearchResults != null) - { - if (cbSorted.Checked) - { - Csla.SortedBindingList sortedResults = new Csla.SortedBindingList(_SearchResults); - sortedResults.ApplySort(_DisplayMember, ListSortDirection.Ascending); - lbSrchResults.DataSource = sortedResults; - } - else - //PopulatelbSrcResults(_SearchResults); - lbSrchResults.DataSource = _SearchResults; - grpPanSearchResults.Text = string.Format("Search Results Found: {0}", _SearchResults.Count); - grpPanSearchResults.Style.BackColor = Color.LightGreen;// Color.YellowGreen; Color.DarkSeaGreen; - } - else - { - grpPanSearchResults.Text = "Search Results"; - grpPanSearchResults.Style.BackColor = saveGrpPanSearchResults; - } - // Turn Print and Results display style on/off based on whether there are search results - if (lbSrchResults.Items.Count > 0) - { - btnPrnSrchRslts.Enabled = true; - btnClearSearchResults.Enabled = true; - btnCopySearchResults.Enabled = true; - cmbResultsStyle.Enabled = true; - } - else - { - btnPrnSrchRslts.Enabled = false; - btnClearSearchResults.Enabled = false; - btnCopySearchResults.Enabled = false; - cmbResultsStyle.Enabled = false; - } - - lbSrchResults.SelectedIndex = -1; - LastResultsMouseOverIndex = -1; - _LoadingList = false; - - } - - //private void PopulatelbSrcResults(ICollection _SearchResults) - //{ - // foreach (ItemInfo ii in _SearchResults) - // { - // lbSrchResults.Items.Add(ii); - // } - // Console.WriteLine("{0} Populate", DateTime.Now); - //} - //public void UpdateAnnotationSearchResults() - //{ - // //AnnotationTypeInfo ati = cbxAnnoTypes.SelectedValue as AnnotationTypeInfo; - // //_LoadingList = true; - // //lbSrchResults.DataSource = ati.AnnotationTypeAnnotations; - // //lbSrchResults.SelectedIndex = -1; - // //LastResultsMouseOverIndex = -1; - // //if (lbSrchResults.Items.Count > 0) - // // btnPrnSrchRslts.Enabled = true; - // //else - // // btnPrnSrchRslts.Enabled = false; - // //_LoadingList = false; - //} - private void lbSrchResults_MouseMove(object sender, MouseEventArgs e) - { - int ResultsMouseOverIndex = lbSrchResults.IndexFromPoint(e.Location); - if (ResultsMouseOverIndex != -1 && ResultsMouseOverIndex != LastResultsMouseOverIndex) - { - ItemInfo ii = lbSrchResults.Items[ResultsMouseOverIndex] as ItemInfo; - if (cmbResultsStyle.Text == "Step Path") - toolTip1.SetToolTip(lbSrchResults, ii.DisplayText); // display the text in a tooltip - else - toolTip1.SetToolTip(lbSrchResults, ii.Path); // display location of corresponding procedure text in a tooltip - LastResultsMouseOverIndex = ResultsMouseOverIndex; - } - } - private bool _ProcessingSelectedValueChanged = false; - private void lbSrchResults_SelectedValueChanged(object sender, EventArgs e) - { - if (_LoadingList) return; - if (_ProcessingSelectedValueChanged) return; - _ProcessingSelectedValueChanged = true; - // If the list is being refreshed, then set the selection index to -1 (no selection) - if (_SearchResults.RefreshingList && lbSrchResults.SelectedIndex != -1) - lbSrchResults.SelectedIndex = -1; - else - { - _ItemInfo = lbSrchResults.SelectedValue as ItemInfo; - if ((tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[1]) && (_ItemInfo != null)) - { - _AnnotationDetails.CurrentAnnotation = AnnotationInfo.Get(_ItemInfo.SearchAnnotationID); - if (_AnnotationDetails.CurrentAnnotation != null) - _TabControl.OpenItem(_AnnotationDetails.CurrentAnnotation.MyItem); // open the corresponding procedure text - _AnnotationDetails.FindCurrentAnnotation(); // position to corresponding row in annotation grid - } - else - { - if (_ItemInfo != null) - { - _OpenDocFromSearch = true; - DisplayTabItem dti = _TabControl.OpenItem(_ItemInfo); // open the corresponding procedure text - if (dti != null) - { - if (dti.MyDSOTabPanel != null) - dti.MyDSOTabPanel.SearchString = _strSrchText == null || _strSrchText == "" ? this.cbxTextSearchText.Text : _strSrchText; - if (dti.MyStepTabPanel != null) - dti.MyStepTabPanel.SearchString = _strSrchText == null || _strSrchText == "" ? this.cbxTextSearchText.Text : _strSrchText; - _OpenDocFromSearch = false; - } - } - } - } - _ProcessingSelectedValueChanged = false; - } - - private void cmbResultsStyle_SelectedValueChanged(object sender, EventArgs e) - { - switch (cmbResultsStyle.Text) - { - case "Document Path": - _DisplayMember = "SearchDVPath"; - break; - case "Step Path": - _DisplayMember = "ShortSearchPath"; - break; - case "Annotation Text": - _DisplayMember = "SearchAnnotationText"; - break; - case "Document Text": - _DisplayMember = "DisplayText"; - break; - default: - _DisplayMember = "SearchPath"; - break; - } - DisplayResults(); - } - - private void cbSorted_CheckedChanged(object sender, EventArgs e) - { - Cursor savcursor = Cursor; - Application.DoEvents(); - Cursor = Cursors.WaitCursor; - //Console.WriteLine(string.Format("Checked = {0}", cbSorted.Checked)); - DisplayResults(); - Cursor = savcursor; - } - #endregion - - #region Search - private string DVISearchList - { - get - { - // append list of document versions to search - if (lstCheckedDocVersions.Count > 0) - { - string strRtnStr = ""; - // get list of doc versions to search - foreach (DocVersionInfo dvi in lstCheckedDocVersions) - { - strRtnStr += string.Format(",{0}", dvi.VersionID.ToString()); - } - return strRtnStr.Substring(1); - } - return ""; - } - } - private string TypeSearchList - { - get - { - // append list of step types to search - if (lstCheckedStepTypes.Count > 0) - { - string strRtnStr = ""; - // get list of selected types - foreach (int typ in lstCheckedStepTypes) - { - int tmp = typ; - if (tmp == 0) - tmp = 10000; // this is the accessory page type - else - tmp += 20000; // step/substep types - strRtnStr += string.Format(",{0}", tmp); - } - return strRtnStr.Substring(1); - } - return ""; - } - } - private string TextSearchString - { - get - { - if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[0]) - return ConvertSpecialChars(cbxTextSearchText.Text);//string.Format("{0}", cbxTextSearchText.Text); - return ""; - } - } - private string AnnotationSearchType - { - get - { - if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[1]) - return ((AnnotationTypeSearch)cbxAnnoTypes.SelectedValue).ID; - return ""; - } - } - private string ROSearchList - { - get - { - if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[2]) - { // RO Search - ROFSTLookup.rochild[] chld = null; - ROFSTLookup.rochild ch; - if (cmboTreeROs.SelectedNode != null) - { - if (cbxFndUnLnkROVals.Enabled && cbxFndUnLnkROVals.Checked) - { - ch = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag; - _strSrchText = string.Format("{0}", ch.value); - return _strSrchText; // append RO Value text to search - } - else - { - if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rodbi) - { - ROFSTLookup.rodbi db = (ROFSTLookup.rodbi)cmboTreeROs.SelectedNode.Tag; - return _MyRODbID.ToString() + ":" + string.Format("{0}", db.dbiID.ToString("X4")); - } - else if (cmboTreeROs.SelectedNode.Tag is ROFSTLookup.rochild) - { - ch = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag; - chld = ch.children; - // build a list of ROs to search - return _MyRODbID.ToString() + ":" + GetROsToSearch(chld); - //return _MyRODbID.ToString() + ":" + ch.roid + "0000," + GetROsToSearch(chld); - //if (strRtnStr.EndsWith(",")) - // strRtnStr = strRtnStr.Substring(0, strRtnStr.Length - 1); - } - } - } - } - return ""; - } - } - - private string ConvertSpecialChars(string str) - { - string rtnVal = str; - if (_MyDocVersion != null) - { - rtnVal = rtnVal.Replace("\u00A0", @"\u160?"); //convert \u00A0 to a hard space (\u00A0 shows as a blank in the search text field) - rtnVal = rtnVal.Replace("\n", ""); - FormatData fmtdata = _MyDocVersion.ActiveFormat.PlantFormat.FormatData; - SymbolList sl = fmtdata.SymbolList; - if (sl != null) - { - foreach (Symbol sym in sl) - { - string rplace = string.Format(sym.Unicode < 256 ? @"\'{0:X2}" : @"\u{0}", sym.Unicode); - rtnVal = rtnVal.Replace(((char)sym.Unicode).ToString(), rplace); - } - } - } - return rtnVal; - } - // Same funtion as GetROChildren in DisplayReport.cs - private string GetROsToSearch(ROFSTLookup.rochild[] chld) - { - string rtnstr = ""; - if (chld == null) // get a single ROID - { - ROFSTLookup.rochild ro = (ROFSTLookup.rochild)cmboTreeROs.SelectedNode.Tag; - rtnstr += string.Format("{0}", ro.roid); - if (rtnstr.Length == 12) rtnstr += "0000"; // last four digits are used for multiple return values - } - else - { // spin through the child list and get the ROIDs. - // if the child has children, then call this function recursivly - foreach (ROFSTLookup.rochild roc in chld) - { - if (roc.children != null) - rtnstr += GetROsToSearch(roc.children); - else - rtnstr += string.Format("{0},", roc.roid); - } - } - return rtnstr; - } - - private void btnSearch_Click(object sender, EventArgs e) - { - DateTime start = DateTime.Now; - Cursor savcursor = Cursor; - // keeps track of index into combo box for results style. This combo box may have 3 or 4 - // items depending on whether annotations exist. - int cmbResultsStyleIndex = -1; - try - { - lbSrchResults.DataSource = null; - lbSrchResults.Items.Clear(); - toolTip1.SetToolTip(lbSrchResults, null); - Cursor = Cursors.WaitCursor; - SearchResults = null; - bool includeRTFformat = false; - bool includeSpecialChars = true; - // Build list of selected types that were searched - string typstr = null; - foreach (string s in lstCheckedStepTypesStr) typstr = typstr == null ? s : typstr + ", " + s; - TypesSelected = "Filtered By: " + ((typstr != null) ? typstr : "All Step Types"); - //TypesSelected = "Step Types Searched: " + ((typstr != null) ? typstr : "all step types"); - //TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "all step types"); - //TypesSelected = (typstr != null) ? "Searched Step Types: " + typstr : "Searched All Step Types"; - string unitPrefix = ""; - if(Mydocversion != null) - unitPrefix = Mydocversion.DocVersionConfig.Unit_ProcedureNumber; - if (unitPrefix.EndsWith("#")) - unitPrefix = unitPrefix.Replace("#", ""); - - if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[0]) // Text Search - { - if (cbxSrchTypeUsage.Checked) // find just the usage of the selected types - { - if (lstCheckedStepTypes.Count == 0) - { - MessageBox.Show("Please select one or more types then press the Search button", "No Types Selected"); - xpStepTypes.Expanded = true; - advTreeStepTypes.Focus(); - xpStepTypes.TitleStyle.BackColor1.Color = Color.Crimson; - } - else - { - //string typstr = null; - //foreach (string s in lstCheckedStepTypesStr) typstr = typstr==null?s:typstr + ", " + s; - //ReportTitle = "Search for Selected Types"; //"Proms - Search by Type: " + typstr; - ReportTitle = "Step Element Report"; //"Proms - Search by Type: " + typstr; - TypesSelected = "Filtered By: " + typstr; - SearchString = null; - SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, "", cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, ItemSearchIncludeLinks.Value, includeRTFformat, includeSpecialChars, unitPrefix); - cmbResultsStyleIndex = 1; //display step locations in results - } - } - else - { - //if (textSearchString.Equals("")) - //{ - // MessageBox.Show("Please enter some search text, then click the Search button", "No Search Text"); - // cbxTextSearchText.Focus(); - //} - //else - //{ - //ReportTitle = string.Format("Proms - {0} Search for '{1}'", cbxBooleanTxtSrch.Checked ? "Boolean" : "Text", TextSearchString); - ReportTitle = string.Format("Search for '{0}'", TextSearchString); - SearchString = TextSearchString; - //TypesSelected = (typstr != null) ? "Searched Step Types: " + typstr : "Searched All Step Types"; - //TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "All Step Types"); - SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, TextSearchString, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, cbxIncROTextSrch.Checked ? ItemSearchIncludeLinks.Value : ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix); - cmbResultsStyleIndex = 3; // display step text in results - //} - } - } - else if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[1]) // Annotation Search - { - SearchString = null; - //ReportTitle = string.Format("Proms - Annotation Search for '{0}'", cbxTextSearchAnnotation.Text); - if (cbxTextSearchAnnotation.Text == null || cbxTextSearchAnnotation.Text == "") - { - ReportTitle = string.Format("Find {0}{1}", cbxAnnoTypes.Text, (cbxAnnoTypes.SelectedIndex > 0)?" Annotations" : "" ); - } - else - { - ReportTitle = string.Format("Search {0}{1} For '{2}'", cbxAnnoTypes.Text, (cbxAnnoTypes.SelectedIndex > 0) ? " Annotations" : "", cbxTextSearchAnnotation.Text); - } - //ReportTitle = string.Format("Search Annotations for '{0}'", cbxTextSearchAnnotation.Text); - //string srchStr = ConvertSpecialChars(cbxTextSearchAnnotation.Text);//cbxTextSearchAnnotation.Text; - //TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "All Step Types"); - - //SearchResults = ItemInfoList.GetListFromAnnotationSearch(dviSearchList, typeSearchList, textSearchString, srchStr, cbxCaseSensitiveAnnoText.Checked); - - SearchResults = ItemInfoList.GetListFromAnnotationSearch(DVISearchList, TypeSearchList, AnnotationSearchType, cbxTextSearchAnnotation.Text, cbxCaseSensitiveAnnoText.Checked,unitPrefix); - //UpdateAnnotationSearchResults(); - cmbResultsStyleIndex = 2; // display annotation text in results - } - else if (tabSearchTypes.SelectedTab == tabSearchTypes.Tabs[2]) // RO Search - { - SearchString = null; - //ReportTitle = "Proms - Referenced Object Search"; - ReportTitle = string.Format("Search For Referenced Object:\n{0}", cmboTreeROs.Text); - //TypesSelected = "Searched Step Types: " + ((typstr != null) ? typstr : "All Step Types"); - if (cbxFndUnLnkROVals.Enabled && cbxFndUnLnkROVals.Checked) - { - SearchResults = ItemInfoList.GetListFromTextSearch(DVISearchList, TypeSearchList, ROSearchList, cbxBooleanTxtSrch.Checked ? 2 : cbxCaseSensitive.Checked ? 1 : 0, ItemSearchIncludeLinks.Nothing, includeRTFformat, includeSpecialChars, unitPrefix); - cmbResultsStyleIndex = 3; // display step text in results - } - else - { - SearchResults = ItemInfoList.GetListFromROSearch(DVISearchList, TypeSearchList, ROSearchList, unitPrefix); - cmbResultsStyleIndex = 3; // display step text in results - } - } - AddMessageForEmptyAnnotations(); - if (cmbResultsStyleIndex == 3 && cmbResultsStyle.Items.Count == 3) cmbResultsStyleIndex--; - cmbResultsStyle.SelectedIndex = cmbResultsStyleIndex; - DisplayResults(); - if (SearchResults != null && SearchResults.Count == 0) - { - MessageBox.Show("No Matches Found.", "Search"); - } - } - catch (Exception ex) - { - while (ex.InnerException != null) - ex = ex.InnerException; - string tmpmsg = (cbxBooleanTxtSrch.Checked && ex.Message.Contains("Syntax error") && ex.Message.Contains("full-text search")) ? - "Place \"\" around words that you are searching for, so that parser can better understand what you are trying to find" : - ex.Message; - MessageBox.Show(tmpmsg, "Search Error: " + ex.GetType().Name); - } - finally - { - Cursor = savcursor; - } - Console.WriteLine("{0} Milliseconds", TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks).TotalMilliseconds); - //if (VlnSettings.DebugMode) - // MessageBox.Show(string.Format("{0} Milliseconds", TimeSpan.FromTicks(DateTime.Now.Ticks - start.Ticks).TotalMilliseconds)); - } - - private void AddMessageForEmptyAnnotations() - { - bool hasAnnot = false; - foreach (ItemInfo ii in SearchResults) - { - if (ii.ItemAnnotationCount > 0) - { - // RHM - can an iteminfo have an itemannotationcount>0 and not have searchannotationtext. - if (ii.SearchAnnotationText == null) ii.SearchAnnotationText = AnnotationInfo.Get(ii.ItemAnnotations[0].AnnotationID).SearchText; - } - - if (ii.SearchAnnotationText == null) ii.SearchAnnotationText = "None - [" + ii.DisplayText + "]"; - else - { - hasAnnot = true; - } - } - cmbResultsStyle.Items.Clear(); - cmbResultsStyle.Items.Add(comboItem1); - cmbResultsStyle.Items.Add(comboItem2); - if (hasAnnot) cmbResultsStyle.Items.Add(comboItem3); - cmbResultsStyle.Items.Add(comboItem4); - } - - private void cbxTextSearchText_Leave(object sender, EventArgs e) - { - InsertSearchCriteria(); - } - - private void InsertSearchCriteria() - { - if (!cbxTextSearchText.Text.Equals(string.Empty)) - { - string tstr = cbxTextSearchText.Text; - // if its already exists in the list - remove it - if (cbxTextSearchText.Items.Contains(tstr)) - cbxTextSearchText.Items.Remove(tstr); - // Add the new criteria to the top of the list - cbxTextSearchText.Items.Insert(0, tstr); - // set the text to the new criteria - cbxTextSearchText.Text = tstr; - // If there are more than 10 remove the last one - if (cbxTextSearchText.Items.Count > 10) - cbxTextSearchText.Items.RemoveAt(10); - } - } - - private void cbxSrchTypeUsage_CheckedChanged(object sender, EventArgs e) - { - gpSrchText.Enabled = !cbxSrchTypeUsage.Checked; - if (!cbxSrchTypeUsage.Checked) - xpStepTypes.TitleStyle.BackColor1.Color = saveXpStepTypeTitleColor; - else - { - xpStepTypes.Expanded = true; - if (lstCheckedStepTypes.Count == 0) - xpStepTypes.TitleStyle.BackColor1.Color = Color.Crimson; - advTreeStepTypes.Focus(); - - } - } - - private void rbtnSrchTxt_CheckedChanged(object sender, EventArgs e) - { - if (rbtnSrchTxt.Checked) - cbxTextSearchText.Focus(); - - } - - - private void gpSrchText_EnabledChanged(object sender, EventArgs e) - { - if (gpSrchText.Enabled) - gpSrchText.Style.BackColor = cbxBooleanTxtSrch.Checked ? Color.Orange : Color.Yellow; - else - gpSrchText.Style.BackColor = saveGpSrchTextColor; - } - - private void tabStepTypeSearch_Click(object sender, EventArgs e) - { - if (rbtnSrchTxt.Checked) - { - cbxTextSearchText.Focus(); - cbxBooleanTxtSrch_CheckedChanged(sender, e); - } - } - - private void ProcessEnterKey(object sender, KeyPressEventArgs e) - { - if (e.KeyChar == '\r') // enter key pressed - { - e.Handled = true; - btnSearch_Click(sender, e); - if (sender == cbxTextSearchText) - InsertSearchCriteria(); - else - InsertAnnotationSearchCriteria(); - } - } - #endregion - - #region ProcSetSelection - private int _MyRODbID; - private void advTreeProcSets_AfterCheck(object sender, DevComponents.AdvTree.AdvTreeCellEventArgs e) - { - DevComponents.AdvTree.Node n = advTreeProcSets.SelectedNode; - if (n.Checked) - { - n.Style = DevComponents.AdvTree.NodeStyles.Apple; - lstCheckedDocVersions.Add((DocVersionInfo)n.Tag); - if (lstCheckedDocVersions.Count == 1)//Mydocversion == null) - { - Mydocversion = (DocVersionInfo)n.Tag; - advTreeStepTypesFillIn(); - } - } - else - { - n.Style = null; - lstCheckedDocVersions.Remove((DocVersionInfo)n.Tag); - if (lstCheckedDocVersions.Count == 1) - { - if (Mydocversion != lstCheckedDocVersions[0]) - { - Mydocversion = lstCheckedDocVersions[0]; - advTreeStepTypesFillIn(); - } - } - else - { - if (lstCheckedDocVersions.Count == 0) - Mydocversion = null; - // do this if either none, or more than one procedure set selected - advTreeStepTypes.Nodes.Clear(); - lstCheckedStepTypes.Clear(); - lstCheckedStepTypesStr.Clear(); - Node newnode = new DevComponents.AdvTree.Node(); - newnode.Text = "....select a procedure set for types to appear..."; - advTreeStepTypes.Nodes.Add(newnode); - buildStepTypePannelTitle(); - } - } - //// Enable the RO combo list only if at least one procedure set node - //// is selected - //cmboTreeROs.Enabled = (lstCheckedDocVersions.Count > 0); - //gpFindROs.Enabled = cmboTreeROs.Enabled; - - SetupContextMenu(); - - buildSetToSearchPanelTitle(); - } - - - private void xpSetToSearch_ExpandedChanged(object sender, ExpandedChangeEventArgs e) - { - buildSetToSearchPanelTitle(); - } - - private void buildSetToSearchPanelTitle() - { - if (lstCheckedDocVersions.Count == 0) - { - xpSetToSearch.TitleText = string.Format("All Procedure Sets Selected"); - xpSetToSearch.TitleStyle.BackColor1.Color = Color.PapayaWhip; - btnSearch.Enabled = true; - tabSearchTypes.Enabled = true; // enable all the search tabs - // xpSetToSearch.Expanded = true; - // xpSetToSearch.TitleStyle.BackColor1.Color = Color.Crimson; - // btnSearch.Enabled = false; - // tabSearchTypes.Enabled = false; // disable all the search tabs - // //if (xpSetToSearch.Expanded) - // xpSetToSearch.TitleText = "Select Procedure Sets to Search"; - // //else - // // xpSetToSearch.TitleText = "Click Here to Select Procedure Sets"; - - // //xpSetToSearch.TitleStyle.BackColor1.Color = saveXpSetToSearchColor; - } - else //if (lstCheckedDocVersions.Count > 0) - { - // display the number of selected procedure sets whether pannel is expanded or not - xpSetToSearch.TitleText = string.Format("{0} Procedure Sets Selected", lstCheckedDocVersions.Count); - xpSetToSearch.TitleStyle.BackColor1.Color = Color.PapayaWhip; - btnSearch.Enabled = true; - tabSearchTypes.Enabled = true; // enable all the search tabs - } - - } - - private void advTreeProcSets_AfterNodeSelect(object sender, AdvTreeNodeEventArgs e) - { - DevComponents.AdvTree.Node n = advTreeProcSets.SelectedNode; - if (advTreeStepTypes.Nodes.Count == 1 && n.Checked) - { - Mydocversion = (DocVersionInfo)n.Tag; - advTreeStepTypesFillIn(); - } - } - - #endregion - - #region StepTypeSelection - private void advTreeStepTypes_AfterCheck(object sender, DevComponents.AdvTree.AdvTreeCellEventArgs e) - { - xpStepTypes.TitleStyle.BackColor1.Color = saveXpStepTypeTitleColor; - DevComponents.AdvTree.Node n = advTreeStepTypes.SelectedNode; - StepData sd = (StepData)n.Tag; - if (n.Checked) - { - n.Style = DevComponents.AdvTree.NodeStyles.Apple; - if (sd == null) - { - if (!lstCheckedStepTypesStr.Contains("Accessory Sections")) - { - lstCheckedStepTypes.Add(0); //use zero to identify attachment search - lstCheckedStepTypesStr.Add("Accessory Sections"); - } - } - else - { - if (!lstCheckedStepTypesStr.Contains(advTreeStepTypes.SelectedNode.Text)) - { - lstCheckedStepTypes.Add((int)sd.Index); - lstCheckedStepTypesStr.Add(advTreeStepTypes.SelectedNode.Text); - } - } - } - else - { - n.Style = null; - if (sd == null) - { - lstCheckedStepTypesStr.Remove("Accessory Sections"); - lstCheckedStepTypes.Remove(0); - } - else - { - lstCheckedStepTypes.Remove((int)sd.Index); - //lstCheckedStepTypesStr.Remove(sd.Type); - lstCheckedStepTypesStr.Remove(advTreeStepTypes.SelectedNode.Text); - } - } - buildStepTypePannelTitle(); - - } - - private void xpStepTypes_ExpandedChanged(object sender, ExpandedChangeEventArgs e) - { - buildStepTypePannelTitle(); - } - - private void buildStepTypePannelTitle() - { - if (lstCheckedStepTypes.Count == 0) - { - if (xpStepTypes.Expanded) - { - xpStepTypes.TitleText = "Select Step Elements To Search";//"Select Types To Search"; - advTreeStepTypes.Focus(); - advTreeStepTypes.Nodes[0].SelectedCell = advTreeStepTypes.Nodes[0].Cells[0]; - } - else - xpStepTypes.TitleText = "Click Here To Search By Step Element";//"Click Here To Search By Types"; - - xpStepTypes.TitleStyle.BackColor1.Color = saveXpStepTypeTitleColor; - } - else //lstCheckedStepTypes.Count > 0 - { - // show how many selected whether pannel is expanded or not - //xpStepTypes.TitleText = string.Format("{0} Step Styles Selected", lstCheckedStepTypes.Count); - xpStepTypes.TitleText = string.Format("{0} Step Element{0} Selected", lstCheckedStepTypes.Count, (lstCheckedStepTypes.Count > 1)?"s":""); - xpStepTypes.TitleStyle.BackColor1.Color = Color.PapayaWhip; - } - } - - #endregion - - #region ContextMenu - - private void btnSym_Click(object sender, EventArgs e) - { - DevComponents.DotNetBar.ButtonItem b = (DevComponents.DotNetBar.ButtonItem)sender; - if (cbxTextSearchAnnotation.Focused) - cbxTextSearchAnnotation.SelectedText = (string)b.Text; - else if (cbxTextSearchText.Focused) - cbxTextSearchText.SelectedText = (string)b.Text; - } - - private void cmFndTxtInsHardSp_Click(object sender, EventArgs e) - { - // We use \u00A0 to represent a hard space because it show in the search text field as a blank - // It will get translated to a real hard space character prior to searching - if (cbxTextSearchAnnotation.Focused) - cbxTextSearchAnnotation.SelectedText = "\u00A0"; - else if (cbxTextSearchText.Focused) - cbxTextSearchText.SelectedText = "\u00A0"; - } - - private void SetupContextMenu() - { - galSymbols.SubItems.Clear(); - if (_MyDocVersion != null) - { - FormatData fmtdata = _MyDocVersion.ActiveFormat.PlantFormat.FormatData; - SymbolList sl = fmtdata.SymbolList; - if (sl == null || sl.Count <= 0) - { - MessageBox.Show("No symbols are available, check with administrator"); - return; - } - foreach (Symbol sym in sl) - { - DevComponents.DotNetBar.ButtonItem btnCM = new DevComponents.DotNetBar.ButtonItem(); - btnCM.Text = string.Format("{0}", (char)sym.Unicode); - // to name button use unicode rather than desc, desc may have spaces or odd chars - btnCM.Name = "btnCM" + sym.Unicode.ToString(); - btnCM.Tooltip = sym.Desc; - btnCM.Tag = string.Format(@"{0}", sym.Unicode); - btnCM.FontBold = true; - btnCM.Click += new System.EventHandler(btnSym_Click); - galSymbols.SubItems.Add(btnCM); - } - } - } - - private void cmFndTxtCut_Click(object sender, EventArgs e) - { - Clipboard.Clear(); - DataObject myDO = new DataObject(DataFormats.Text, cbxTextSearchAnnotation.Focused ? cbxTextSearchAnnotation.SelectedText : cbxTextSearchText.SelectedText); - Clipboard.SetDataObject(myDO); - // Need to check which combo box activated the context menu so that we know where to take/put selected text - if (cbxTextSearchAnnotation.Focused) - cbxTextSearchAnnotation.SelectedText = ""; - else if (cbxTextSearchText.Focused) - cbxTextSearchText.SelectedText = ""; - - } - - private void cmFndTxtCopy_Click(object sender, EventArgs e) - { - // Need to check which combo box activated the context menu so that we know where to take/put selected text - DataObject myDO = new DataObject(DataFormats.Text, cbxTextSearchAnnotation.Focused ? cbxTextSearchAnnotation.SelectedText : cbxTextSearchText.SelectedText); - if (cbxTextSearchText.Focused || cbxTextSearchAnnotation.Focused) - { - Clipboard.Clear(); - Clipboard.SetDataObject(myDO); - } - } - - private void cmFndTxtPaste_Click(object sender, EventArgs e) - { - // Need to check which combo box activated the context menu so that we know where to take/put selected text - IDataObject myDO = Clipboard.GetDataObject(); - //if (myDO.GetDataPresent(DataFormats.Rtf)) - //{ - // RichTextBox rtb = new RichTextBox(); - // rtb.SelectedRtf = ItemInfo.StripLinks(myDO.GetData(DataFormats.Rtf).ToString()); - - // if (cbxTextSearchAnnotation.Focused) - // cbxTextSearchAnnotation.SelectedText = rtb.Text; - // else if (cbxTextSearchText.Focused) - // cbxTextSearchText.SelectedText = rtb.Text;// .SelectedText;//myDO.GetData(DataFormats.Text,true).ToString(); - //} - //else if (myDO.GetDataPresent(DataFormats.Text)) - if (myDO.GetDataPresent(DataFormats.Text)) - if (cbxTextSearchAnnotation.Focused) - cbxTextSearchAnnotation.SelectedText = Clipboard.GetText(); - else if (cbxTextSearchText.Focused) - cbxTextSearchText.SelectedText = Clipboard.GetText();//myDO.GetData(DataFormats.Text).ToString(); - } - - private void btnCMIFindText_PopupOpen(object sender, PopupOpenEventArgs e) - { - // the context menu is available with just a mouse hover, even if the combo box does not have focus - // ... set the focus to which ever combo box initiated the context menu - if (tabAnnotationSearch.IsSelected) - { - if (!cbxTextSearchAnnotation.Focused) - cbxTextSearchAnnotation.Focus(); - } - else if (tabStepTypeSearch.IsSelected) - { - if (!cbxTextSearchText.Focused) - cbxTextSearchText.Focus(); - } - } - #endregion - private void buttonItem2_Click(object sender, EventArgs e) - { - if (cbxTextSearchAnnotation.Focused) - cbxTextSearchAnnotation.SelectedText = "*"; - else if (cbxTextSearchText.Focused) - cbxTextSearchText.SelectedText = "*"; - - } - private void buttonItem3_Click(object sender, EventArgs e) - { - if (cbxTextSearchAnnotation.Focused) - cbxTextSearchAnnotation.SelectedText = "?"; - else if (cbxTextSearchText.Focused) - cbxTextSearchText.SelectedText = "?"; - - } - private void buttonItem4_Click(object sender, EventArgs e) - { - if (cbxTextSearchAnnotation.Focused) - cbxTextSearchAnnotation.SelectedText = "?*"; - else if (cbxTextSearchText.Focused) - cbxTextSearchText.SelectedText = "?*"; - } - private void cbxBooleanTxtSrch_CheckedChanged(object sender, EventArgs e) - { - // If the Boolean search is not working - run the following two commands in SQL: - // use veproms - // ALTER FULLTEXT INDEX ON Contents START FULL POPULATION - // ALTER FULLTEXT INDEX ON Documents START FULL POPULATION - // use master - //Boolean search uses a list of noise, or STOP, words. This list can be found - // in file: C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\FTData\noiseenu.txt. - // Another file exists in that directory, tsenu.xml, this is a thesaurus. RHM tried - // to use around 2010, but couldn't get it to work for words like 'dg' versus 'diesel generator', - // and 'sg' versus 'steam generator'. - if (cbxBooleanTxtSrch.Checked) - { - gpSrchText.Style.BackColor = Color.Orange; - btnCMIFindText.SubItems[1].SubItems[2].Visible = false; - btnCMIFindText.SubItems[1].SubItems[3].Visible = true; - //cbxCaseSensitive.Checked = false; - //cbxCaseSensitive.Enabled = false; - //cbxIncROTextSrch.Checked = true; - //cbxIncROTextSrch.Enabled = false; - cbxCaseSensitive.Enabled = false; - cbxIncROTextSrch.Enabled = false; - } - else - { - gpSrchText.Style.BackColor = Color.Yellow; - btnCMIFindText.SubItems[1].SubItems[2].Visible = true; - btnCMIFindText.SubItems[1].SubItems[3].Visible = false; - //cbxCaseSensitive.Enabled = true; - //cbxIncROTextSrch.Enabled = true; - cbxCaseSensitive.Enabled = true; - cbxIncROTextSrch.Enabled = true; - } - } - private void cbxBooleanAnoTxtSrch_CheckedChanged(object sender, EventArgs e) - { - if (cbxBooleanAnoTxtSrch.Checked) - { - gpSrchAnnoText.Style.BackColor = Color.Orange; - btnCMIFindText.SubItems[1].SubItems[2].Visible = false; - btnCMIFindText.SubItems[1].SubItems[3].Visible = true; - } - else - { - gpSrchAnnoText.Style.BackColor = Color.Yellow; - btnCMIFindText.SubItems[1].SubItems[2].Visible = true; - btnCMIFindText.SubItems[1].SubItems[3].Visible = false; - } - } - private void btnAND_Click(object sender, EventArgs e) - { - if (cbxTextSearchAnnotation.Focused) - cbxTextSearchAnnotation.SelectedText = " AND "; - else if (cbxTextSearchText.Focused) - cbxTextSearchText.SelectedText = " AND "; - - } - private void btnOR_Click(object sender, EventArgs e) - { - if (cbxTextSearchAnnotation.Focused) - cbxTextSearchAnnotation.SelectedText = " OR "; - else if (cbxTextSearchText.Focused) - cbxTextSearchText.SelectedText = " OR "; - - } - private void btnNOT_Click(object sender, EventArgs e) - { - if (cbxTextSearchAnnotation.Focused) - cbxTextSearchAnnotation.SelectedText = " NOT "; - else if (cbxTextSearchText.Focused) - cbxTextSearchText.SelectedText = " NOT "; - } - private void tabAnnotationSearch_Click(object sender, EventArgs e) - { - cbxAnnoTypes.Focus(); - cbxBooleanAnoTxtSrch_CheckedChanged(sender, e); - } - private void btnClearSearchResults_Click(object sender, EventArgs e) - { - lbSrchResults.DataSource = null; - _SearchResults = null; - DisplayResults(); - } - private void btnCopySearchResults_Click(object sender, EventArgs e) - { - ICollection myList = lbSrchResults.DataSource as ICollection; - StringBuilder sb = new StringBuilder(); - sb.Append("\"Location\"\t\"Type\"\t\"Text\"\t\"High-Level\"\t\"Annotations\""); - foreach (ItemInfo myItem in myList) - { - sb.Append(string.Format("\r\n\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"", myItem.ShortPath, myItem.ToolTip, - myItem.DisplayText, !myItem.IsSection && !myItem.IsHigh ? myItem.MyHLS.DisplayText : "")); - if (myItem.ItemAnnotationCount > 0) - foreach (AnnotationInfo myAnnotation in myItem.ItemAnnotations) - sb.Append(string.Format("\t\"{0}\"", myAnnotation.SearchText)); - } - Clipboard.Clear(); - Clipboard.SetText(sb.ToString()); - MessageBox.Show("Results Copied to Clipboard", "Copy Results", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - private string _ReportTitle; - public string ReportTitle - { - get { return _ReportTitle; } - set { _ReportTitle = value; } - } - private string _SearchString = null; - public string SearchString - { - get { return _SearchString; } - set { _SearchString = value; } - } - private string _TypesSelected; - - public string TypesSelected - { - get { return _TypesSelected; } - set { _TypesSelected = value; } - } - private void btnPrnSrchRslts_Click(object sender, EventArgs e) - { - OnPrintRequest(new DisplaySearchEventArgs(ReportTitle, TypesSelected, SearchString, lbSrchResults.DataSource as ICollection)); - } - private void panSearchButtons_Resize(object sender, EventArgs e) - { - cmbResultsStyle.Left = labelX1.Right + 3; - cmbResultsStyle.Width = btnClearSearchResults.Left - cmbResultsStyle.Left - 3; - } - } - #region Annoation Search Type Class - // this class is used to generate the list of annotations to search. - // this also allow us to add a dummy type which is used to search for all annotations - public class AnnotationTypeSearch - { - private string _Name; - public string Name - { - get { return _Name; } - set { _Name = value; } - } - private string _ID; - public string ID - { - get { return _ID; } - set { _ID = value; } - } - public AnnotationTypeSearch(string name, string id) - { - _Name = name; - _ID = id; - } - - } - #endregion - public class DisplaySearchEventArgs - { - private string _ReportTitle; - public string ReportTitle - { - get { return _ReportTitle; } - set { _ReportTitle = value; } - } - private string _SearchString = null; - public string SearchString - { - get { return _SearchString; } - set { _SearchString = value; } - } - private string _TypesSelected; - public string TypesSelected - { - get { return _TypesSelected; } - set { _TypesSelected = value; } - } - private ICollection _MyItemInfoList; - public ICollection MyItemInfoList - { - get { return _MyItemInfoList; } - set { _MyItemInfoList = value; } - } - public DisplaySearchEventArgs(string reportTitle, string typesSelected, string searchString, ICollection myItemInfoList) - { - _ReportTitle = reportTitle; - _TypesSelected = typesSelected; - _MyItemInfoList = myItemInfoList; - _SearchString = searchString; - } - } - public delegate void DisplaySearchEvent(object sender, DisplaySearchEventArgs args); -} diff --git a/PROMS/Volian.Controls.Library/DisplaySecurity.Designer.cs b/PROMS/Volian.Controls.Library/DisplaySecurity.Designer.cs deleted file mode 100644 index d94f707a..00000000 --- a/PROMS/Volian.Controls.Library/DisplaySecurity.Designer.cs +++ /dev/null @@ -1,45 +0,0 @@ -namespace Volian.Controls.Library -{ - partial class DisplaySecurity - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.SuspendLayout(); - // - // DisplaySecurity - // - this.AutoScaleDimensions = new System.Drawing.SizeF(8F, 16F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Name = "DisplaySecurity"; - this.Size = new System.Drawing.Size(933, 646); - this.ResumeLayout(false); - - } - - #endregion - } -} diff --git a/PROMS/Volian.Controls.Library/DisplaySecurity.cs b/PROMS/Volian.Controls.Library/DisplaySecurity.cs deleted file mode 100644 index 29fafbab..00000000 --- a/PROMS/Volian.Controls.Library/DisplaySecurity.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -namespace Volian.Controls.Library -{ - public partial class DisplaySecurity : UserControl - { - public DisplaySecurity() - { - InitializeComponent(); - } - } -} diff --git a/PROMS/Volian.Controls.Library/DisplaySecurity.resx b/PROMS/Volian.Controls.Library/DisplaySecurity.resx deleted file mode 100644 index 19dc0dd8..00000000 --- a/PROMS/Volian.Controls.Library/DisplaySecurity.resx +++ /dev/null @@ -1,120 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/DisplayTabItem.cs.bak b/PROMS/Volian.Controls.Library/DisplayTabItem.cs.bak deleted file mode 100644 index 6857c96a..00000000 --- a/PROMS/Volian.Controls.Library/DisplayTabItem.cs.bak +++ /dev/null @@ -1,341 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; -using System.Drawing; -using VEPROMS.CSLA.Library; - -namespace Volian.Controls.Library -{ - public partial class DisplayTabItem : DevComponents.DotNetBar.DockContainerItem - { - #region Private Fields - private DisplayTabControl _MyDisplayTabControl; - private ItemInfo _MyItemInfo; - private StepTabPanel _MyStepTabPanel; - private string _MyKey; - private DSOTabPanel _MyDSOTabPanel; - private DocumentInfo _MyDocumentInfo; - - - #endregion - #region Properties - /// - /// ItemInfo associated with this DisplayTabItem - /// - private int _OwnerID; - public int OwnerID - { - get { return _OwnerID; } - set { _OwnerID = value; } - } - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - //set { _MyItemInfo = value; } - } - /// - /// get Key Either: - /// "Item - " + Procedure ItemID for step pages - /// "Doc - " + DocumentID for Word Documents - /// - public string MyKey - { - get { return _MyKey; } - } - /// - /// Related StepTabPanel for a Step page - /// - public StepTabPanel MyStepTabPanel - { - get { return _MyStepTabPanel; } - set { _MyStepTabPanel = value; } - } - /// - /// Related DSOTabPanle for a Word page - /// - public DSOTabPanel MyDSOTabPanel - { - get { return _MyDSOTabPanel; } - set { _MyDSOTabPanel = value; } - } - private string _MyUserRole; - public string MyUserRole - { - get { return _MyUserRole; } - set { _MyUserRole = value; } - } - /// - /// Current SelectedItemInfo for this page - /// - public ItemInfo SelectedItemInfo - { - get - { - if (_MyStepTabPanel == null) return null; - return _MyStepTabPanel.SelectedItemInfo; - } - set - { - Console.WriteLine("selectediteminfo"); - _MyStepTabPanel.SelectedItemInfo = value; - } - } - /// - /// Current DocumentInfo for this page - only set if library document - /// - public DocumentInfo MyDocumentInfo - { - get { return _MyDocumentInfo; } - } - #endregion - #region Constructors - public DisplayTabItem(IContainer container, DisplayTabControl myDisplayTabControl, ItemInfo myItemInfo, string myKey) - { - _MyItemInfo = myItemInfo; - if(MyItemInfo.MyContent.MyEntry == null) - OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myItemInfo.MyProcedure.ItemID, CheckOutType.Procedure); - else - OwnerID = myDisplayTabControl.MySessionInfo.CheckOutItem(myItemInfo.MyContent.MyEntry.DocID, CheckOutType.Document); - Console.WriteLine("DisplayTabItem"); - _MyKey = myKey; - _MyDisplayTabControl = myDisplayTabControl; - container.Add(this); - InitializeComponent(); - this.Click += new EventHandler(DisplayTabItem_Click); - if (myItemInfo.MyContent.MyEntry == null) - SetupStepTabPanel(); - else - SetupDSOTabPanel(); - SetupSecurity(myItemInfo); - Name = string.Format("DisplayTabItem {0}", myItemInfo.ItemID); - } - private bool MesssageShown = false; - public void SetupSecurity(ItemInfo myItem) - { - UserInfo ui = UserInfo.GetByUserID(OwnerInfo.Get(OwnerID).SessionUserID); - if (ui == null) - { - if (!MesssageShown) - { - System.Windows.Forms.MessageBox.Show("Security has not been defined for PROMS. All functionality has been defaulted to the lowest level for all users until security is defined.", "no security defined", System.Windows.Forms.MessageBoxButtons.OK, System.Windows.Forms.MessageBoxIcon.Warning); - MesssageShown = true; - } - _MyStepTabPanel.MyStepTabRibbon.SetupReviewerMode(); - } - else if (ui.IsAdministrator()) - { - if(_MyStepTabPanel != null) - _MyStepTabPanel.MyStepTabRibbon.SetupAdminMode(); - MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Administrator"; - } - else if (ui.IsSetAdministrator(myItem.MyDocVersion)) - { - if (_MyStepTabPanel != null) - _MyStepTabPanel.MyStepTabRibbon.SetupSetAdminMode(); - MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Set Administrator"; - } - else if (ui.IsROEditor(myItem.MyDocVersion)) - { - if (_MyStepTabPanel != null) - _MyStepTabPanel.MyStepTabRibbon.SetupROEditorMode(); - MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - RO Editor"; - } - else if (ui.IsWriter(myItem.MyDocVersion)) - { - if (_MyStepTabPanel != null) - _MyStepTabPanel.MyStepTabRibbon.SetupWriterMode(); - MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Writer"; - } - else if (ui.IsReviewer(myItem.MyDocVersion)) - { - if (_MyStepTabPanel != null) - _MyStepTabPanel.MyStepTabRibbon.SetupReviewerMode(); - MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Reviewer"; - } - else - { - if (_MyStepTabPanel != null) - _MyStepTabPanel.MyStepTabRibbon.SetupReviewerMode(); - MyUserRole = Volian.Base.Library.VlnSettings.UserID + " - Reviewer"; - } - } - public DisplayTabItem(IContainer container, DisplayTabControl myDisplayTabControl, DocumentInfo myDocumentInfo, string myKey) - { - _MyKey = myKey; - _MyDisplayTabControl = myDisplayTabControl; - _MyDocumentInfo = myDocumentInfo; - container.Add(this); - InitializeComponent(); - this.Click += new EventHandler(DisplayTabItem_Click); - SetupLibraryDocumentDSOTabPanel(); - Name = string.Format("DisplayTabLibraryDocument {0}", myDocumentInfo.DocID); - } - - protected override void OnDisplayedChanged() - { - //Console.WriteLine("=>=>=>=> OnDisplayedChanged"); - if(_MyStepTabPanel != null) - _MyStepTabPanel.MyStepPanel.DisplayItemChanging = true; - base.OnDisplayedChanged(); - if(_MyStepTabPanel != null) - _MyStepTabPanel.MyStepPanel.DisplayItemChanging = false; - //Console.WriteLine("<=<=<=<= OnDisplayedChanged"); - } - - //void DisplayTabItem_MouseUp(object sender, System.Windows.Forms.MouseEventArgs e) - //{ - // Console.WriteLine("DisplayTabItem_MouseUp"); - //} - - //void DisplayTabItem_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) - //{ - // Console.WriteLine("DisplayTabItem_MouseDown"); - //} - - //void DisplayTabItem_LostFocus(object sender, EventArgs e) - //{ - // Console.WriteLine("DisplayTabItem_LostFocus"); - //} - - //void DisplayTabItem_GotFocus(object sender, EventArgs e) - //{ - // Console.WriteLine("DisplayTabItem_GotFocus"); - //} - #endregion - #region Event Handlers - /// - /// Updates SelectedRTBItem when the user selects a DisplayTabItem - /// - /// - /// - private void DisplayTabItem_Click(object sender, EventArgs e) - { - // Tell the TabControl that the ItemSelected has changed - DisplayTabItem myTabItem = sender as DisplayTabItem; - if(myTabItem == null)return; - StepTabPanel myTabPanel = myTabItem.MyStepTabPanel as StepTabPanel; - if(myTabPanel == null) return; - if (MyStepTabPanel.SelectedEditItem == null) return; - _MyDisplayTabControl.OnItemSelectedChanged(this,new ItemSelectedChangedEventArgs(MyStepTabPanel.SelectedEditItem)); - } - #endregion - #region private Methods - /// - /// Creates and sets-up a StepTabPanel - /// - private void SetupStepTabPanel() - { - ((System.ComponentModel.ISupportInitialize)(_MyDisplayTabControl.MyBar)).BeginInit(); - _MyDisplayTabControl.MyBar.SuspendLayout(); - _MyStepTabPanel = new StepTabPanel(_MyDisplayTabControl); - // - // tabItem - // - Control = _MyStepTabPanel; - Name = "tabItem Item " + _MyItemInfo.ItemID; - Text = _MyItemInfo.TabTitle; - Tooltip = _Tooltip = _MyItemInfo.TabToolTip.Replace("\u2011", "-"); - MouseMove += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseMove); - LostFocus += new EventHandler(DisplayTabItem_LostFocus); - // - _MyDisplayTabControl.Controls.Add(_MyStepTabPanel); - _MyDisplayTabControl.MyBar.Items.Add(this); - _MyDisplayTabControl.MyBar.Width = 300; // This triggers the bar to resize itself - // - // tabPanel - // - _MyStepTabPanel.MyDisplayTabItem = this; - ((System.ComponentModel.ISupportInitialize)(_MyDisplayTabControl.MyBar)).EndInit(); - _MyDisplayTabControl.MyBar.ResumeLayout(false); - DocVersionInfo dvi = _MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo; //MyRTBItem.MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo; - if (dvi == null) return; - if (dvi.VersionType > 127) - MyStepTabPanel.MyStepPanel.VwMode = E_ViewMode.View; - //added by jcb 20130718 to support disabling create pdf button when multiunit until user selects a unit - if (dvi.MultiUnitCount > 1) - this.MyStepTabPanel.MyStepTabRibbon.btnPdfCreate.Enabled = false; - else - this.MyStepTabPanel.MyStepTabRibbon.btnPdfCreate.Enabled = true; - //end added by jcb 20130718 - } - void DisplayTabItem_LostFocus(object sender, EventArgs e) - { - if(Tooltip != _Tooltip) - Tooltip = _Tooltip; - } - private string _Tooltip; - public void SetPrivateTooltip(string tt) - { - _Tooltip = tt; - } - void DisplayTabItem_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) - { - string newTooltip = e.Y > 30 ? null : _Tooltip; - if(Tooltip != newTooltip) - Tooltip = newTooltip; - } - /// - /// Creates and sets-up a DSOTabPanel - /// - private void SetupDSOTabPanel() - { - EntryInfo myEntry = _MyItemInfo.MyContent.MyEntry; - _MyDSOTabPanel = new DSOTabPanel(myEntry.MyDocument, _MyDisplayTabControl, _MyItemInfo); - // - // tabItem - // - Control = _MyDSOTabPanel; - Name = "tabItem Item " + _MyItemInfo.ItemID; - Text = _MyItemInfo.TabTitle; - Tooltip = _Tooltip = _MyItemInfo.TabToolTip.Replace("\u2011", "-"); - MouseMove += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseMove); - LostFocus += new EventHandler(DisplayTabItem_LostFocus); - _MyDisplayTabControl.Controls.Add(_MyDSOTabPanel); - DSOTabPanel.IgnoreEnter = true; - //Console.WriteLine("AddRange {0}", Name); - _MyDisplayTabControl.MyBar.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this}); - // - // tabPanel - // - _MyDisplayTabControl.SelectDisplayTabItem(this); - _MyDSOTabPanel.MyDisplayTabItem = this; - DSOTabPanel.IgnoreEnter = false; - } - private void SetupLibraryDocumentDSOTabPanel() - { - _MyDSOTabPanel = new DSOTabPanel(_MyDocumentInfo, _MyDisplayTabControl, _MyItemInfo); - // - // tabItem - // - Control = _MyDSOTabPanel; - Name = "tabLibraryDocument " + _MyDocumentInfo.DocID; - Text = _MyDocumentInfo.LibTitle; - DocumentConfig dc = new DocumentConfig(_MyDocumentInfo); - Tooltip = _Tooltip = dc.LibDoc_Comment; - MouseMove += new System.Windows.Forms.MouseEventHandler(DisplayTabItem_MouseMove); - LostFocus += new EventHandler(DisplayTabItem_LostFocus); - _MyDisplayTabControl.Controls.Add(_MyDSOTabPanel); - DSOTabPanel.IgnoreEnter = true; - _MyDisplayTabControl.MyBar.Items.AddRange(new DevComponents.DotNetBar.BaseItem[] { - this}); - // - // tabPanel - // - _MyDisplayTabControl.SelectDisplayTabItem(this); - _MyDSOTabPanel.MyDisplayTabItem = this; - DSOTabPanel.IgnoreEnter = false; - } - #endregion - public override string ToString() - { - if (MyDSOTabPanel != null) - return MyDSOTabPanel.ToString(); - if (MyStepTabPanel != null) - return MyStepTabPanel.ToString(); - return "NULL"; - } - } -} diff --git a/PROMS/Volian.Controls.Library/DisplayTags.cs.bak b/PROMS/Volian.Controls.Library/DisplayTags.cs.bak deleted file mode 100644 index 16981591..00000000 --- a/PROMS/Volian.Controls.Library/DisplayTags.cs.bak +++ /dev/null @@ -1,295 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; - - -namespace Volian.Controls.Library -{ - public partial class DisplayTags : UserControl - { - #region Properties - private ItemInfo _CurItemInfo=null; - private bool _Initalizing = false; - private IList _MyStepTypeInd = null; // use to keep track of step types put in step type menu - private StepRTB _NotVisibleRTB = null; - private StepRTB _MyRTB; - public StepRTB MyRTB - { - get { return _MyRTB; } - set - { - if (!Visible) - { - _NotVisibleRTB = value; - return; - } - _NotVisibleRTB = null; - if (value == null) - { - ClearControls(); - return; - } - if (_CurItemInfo != null && _CurItemInfo.ItemID == value.MyItemInfo.ItemID) return; - if (!value.MyItemInfo.IsStep) - { - ClearControls(); - return; - } - _MyRTB = value; - _CurItemInfo = MyRTB.MyItemInfo; - cbChgAll.Checked = !_CurItemInfo.IsHigh; - TagsFillIn(); - } - } - #endregion - #region Constructor - public DisplayTags() - { - InitializeComponent(); - _MyStepTypeInd = new List(); - } - #endregion - #region Initialize Controls - private void ClearControls() - { - cmbCheckoff.Enabled = false; - cbPageBreak.Enabled = false; - cbCAS.Enabled = false; - rbChgBarOff.Enabled = false; - rbChgBarOn.Enabled = false; - listBoxStepTypes.Items.Clear(); - _MyStepTypeInd.Clear(); - } - private bool StepOverRide() - { - ItemInfo myparent = _CurItemInfo.MyActiveParent as ItemInfo; - if (_CurItemInfo.IsRNO && myparent !=null && myparent.IsHigh) - { - // does the high level step of an RNO have a checkoff, if so it - // can be overridden? - StepConfig sc = myparent.MyConfig as StepConfig; - if (sc != null && sc.Step_CheckOffIndex != -1) return true; - } - return false; - } - public void HighlightChangeStep() - { - groupPanelChgStepType.Style.BackColor = Color.PaleVioletRed; - } - private void TagsFillIn() - { - _Initalizing = true; - - // do some coloring (didn't work when setting properties) - // don't like: Goldenrod, Gold - groupPanelChgBar.Style.BackColor = Color.Cornsilk; - groupPanelChgStepType.Style.BackColor = Color.Cornsilk; - groupPanelMisc.Style.BackColor = Color.Cornsilk; - groupPanelCheckoff.Style.BackColor = Color.Cornsilk; - cbPageBreak.Enabled = true; // these may have been set to false if non-step item was selected. - cbCAS.Enabled = true; - rbChgBarOff.Enabled = true; - rbChgBarOn.Enabled = true; - - FormatData fmtdata = _CurItemInfo.ActiveFormat.PlantFormat.FormatData; - StepConfig sc = _CurItemInfo.MyConfig as StepConfig; - // in certain cases, the checkbox control should be disabled, check for this stuff now... - int formatSteptype = _CurItemInfo.FormatStepType; - cmbCheckoff.Enabled = true; - if ((_CurItemInfo.IsCaution || _CurItemInfo.IsNote) & !fmtdata.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel) - cmbCheckoff.Enabled = false; - if (_CurItemInfo.IsRNO && sc != null && sc.Step_CheckOffIndex != -1 && !fmtdata.StepDataList[formatSteptype].CheckOffSameAsParent) - cmbCheckoff.Enabled = false; // Checkoffs already assigned to RNO. - if (StepOverRide()) cmbCheckoff.Enabled = false; // Checkoffs already assigned to AER - - if (fmtdata.ProcData.CheckOffData.CheckOffList == null || fmtdata.ProcData.CheckOffData.CheckOffList.Count == 0) - cmbCheckoff.Enabled = false; - - if (sc == null) // if there is no config data, Page Break and CAS check boxes are false - { - cbPageBreak.Checked = false; - cbCAS.Checked = false; - } - else // otherwise, get data from config - { - cbPageBreak.Checked = sc.Step_ManualPagebreak; - cbCAS.Checked = sc.Step_CAS; - } - - if (!(fmtdata.ProcData.CheckOffData.CheckOffList == null) && !(fmtdata.ProcData.CheckOffData.CheckOffList.Count == 0)) - { - foreach (CheckOff co in fmtdata.ProcData.CheckOffData.CheckOffList) - { - cmbCheckoff.Items.Add(co.RightCheckOffPrompt); - } - if (sc.Step_CheckOffIndex != -1) cmbCheckoff.SelectedIndex = sc.Step_CheckOffIndex; - } - - // change bar setting depends on whether step has changed (dts) as compared to date/time off the - // procedure that it's in. - // There is also an override flag in the config for the step, used to override the change bar to 'off' - // if the date show it as having one, or allow a change bar to be 'on' if there the dates are - // not different. Note also that a user may edit data after the change bar is set to 'on'. - DateTime curDts; - using (Item itm = Item.Get(_CurItemInfo.ItemID)) - { - curDts = itm.DTS; - } - - // set change bar radio buttons for the default that there is no change - // bar & override sets it to On. - rbChgBarOff.Checked = true; - rbChgBarOn.Text = "ON (Override)"; - rbChgBarOff.Text = "OFF"; - - // if there is no override & a change occurred to the text, there is a - // change bar & override sets it to Off. - if (sc.Step_CBOverride == null) - { - if (curDts > _CurItemInfo.MyProcedure.DTS) - { - rbChgBarOn.Checked = true; - rbChgBarOff.Text = "OFF (Override)"; - rbChgBarOn.Text = "ON"; - } - } - else - { - // there is override settings in the config... If the date time stamp says that text was changed - // so a change bar should exist - check override to see how change bar controls are set: - // if Override is 'Off' then - if (curDts > _CurItemInfo.MyProcedure.DTS) - { - rbChgBarOff.Checked = (sc.Step_CBOverride == "Off") ? true : false; - rbChgBarOn.Checked = (sc.Step_CBOverride == "On") ? true : false; - rbChgBarOff.Text = "OFF (Override)"; - rbChgBarOn.Text = "ON"; - } - else // if (curDts <= _CurItemInfo.MyProcedure.DTS && sc.Step_CBOverride == "On") - { - // date time stamp says no change bar should be displayed: - rbChgBarOff.Checked = (sc.Step_CBOverride == "On") ? true : false; - rbChgBarOn.Checked = (sc.Step_CBOverride == "Off") ? true : false; - rbChgBarOff.Text = "OFF"; - rbChgBarOn.Text = "ON (Override)"; - } - } - // Walk up tree until this step type's parentType is "Base". Start adding menuitems from this step type. - StepData top = fmtdata.StepDataList[formatSteptype]; - //int tmpi = formatSteptype; - // RNO is a special case in that it has a parent type of high, for formatting, but does not walk - // up tree to define types that it can be changed into.... - if (!_CurItemInfo.IsRNO) top = fmtdata.StepTopUnderBase(top, formatSteptype); - listBoxStepTypes.Items.Clear(); - listBoxStepTypes.SelectedIndex = DoListStepTypes(fmtdata, top, fmtdata.StepDataList[formatSteptype].Type); - lblNoTypeChgReason.Visible = !(listBoxStepTypes.Items.Count>0); - cbChgAll.Enabled = (listBoxStepTypes.Items.Count > 0); - listBoxStepTypes.Visible = (listBoxStepTypes.Items.Count>0); - _Initalizing = false; - } - private int DoListStepTypes(FormatData fmtdata, StepData topType, string curType) - { - int cursel=-1; - List sdl = fmtdata.StepGetLevelTypes(false, topType, ref cursel, curType, _CurItemInfo); - if (sdl==null || sdl.Count==0) - { - if (listBoxStepTypes.Items.Count==0)lblNoTypeChgReason.Text = topType.StepEditData.TypeMenu.NoChgReason; - } - else - { - _MyStepTypeInd.Clear(); - foreach (StepDataRetval sdr in sdl) - { - listBoxStepTypes.Items.Add(sdr.Name); - _MyStepTypeInd.Add(sdr.Index); - } - } - return cursel; - } - //private void AddToGallery(StepData sd, string curType) - //{ - // DevComponents.DotNetBar.ButtonItem bi = new DevComponents.DotNetBar.ButtonItem("btn" + sd.Type, sd.Type); - // bi.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.ImageAndText; - // bi.Image = this.imageListStepTypes.Images[0]; - // bi.ImagePosition = DevComponents.DotNetBar.eImagePosition.Top; - - // bi.Checked = (sd.Type == curType); - - // galleryContainerStepTypes.SubItems.Add(bi); - // listBoxStepTypes.Items.Add(sd.Type); - //} - #endregion - #region Events - private void cbPageBreak_CheckedChanged(object sender, EventArgs e) - { - if (_Initalizing) return; - StepConfig sc = _CurItemInfo.MyConfig as StepConfig; - if (sc == null) return; - sc.Step_ManualPagebreak = cbPageBreak.Checked; - } - private void cbCAS_CheckedChanged(object sender, EventArgs e) - { - if (_Initalizing) return; - StepConfig sc = _CurItemInfo.MyConfig as StepConfig; - if (sc == null) return; - sc.Step_CAS = cbCAS.Checked; - } - private void listBoxStepTypes_SelectedIndexChanged(object sender, EventArgs e) - { - if (_Initalizing) return; - FormatData fmtdata = _CurItemInfo.ActiveFormat.PlantFormat.FormatData; - if (cbChgAll.Checked) - { - ItemInfo startitm = _CurItemInfo.FirstSibling; - while (startitm != null) - { - Content cnt = Content.Get(startitm.MyContent.ContentID); - cnt.Type = 20000 + fmtdata.StepDataList[_MyStepTypeInd[listBoxStepTypes.SelectedIndex]].Index; - cnt.Save(); - startitm = startitm.NextItem; // (startitm.NextItemCount > 0 ? startitm.NextItems[0] : null); - } - } - else - { - Content cnt = Content.Get(_CurItemInfo.MyContent.ContentID); - cnt.Type = 20000 + fmtdata.StepDataList[_MyStepTypeInd[listBoxStepTypes.SelectedIndex]].Index; - cnt.Save(); - } - _MyRTB.MyStepItem.SetAllTabs(); - } - private void groupPanelCheckoff_VisibleChanged(object sender, EventArgs e) - { - if (Visible==true && _NotVisibleRTB != null) MyRTB = _NotVisibleRTB; - } - private void rbChgBarOvrRideOn_CheckedChanged(object sender, EventArgs e) - { - if (_Initalizing) return; - - // if checked, set the config data to 'On'. Otherwise, the 'check' event - // handler for the other control sets the data appropriately. - if (rbChgBarOn.Checked) - { - StepConfig sc = _CurItemInfo.MyConfig as StepConfig; - sc.Step_CBOverride = "On"; - } - } - private void rbChgBarOvrRideOff_CheckedChanged(object sender, EventArgs e) - { - if (_Initalizing) return; - - // if checked, set the config data to 'On'. Otherwise, the 'check' event - // handler for the other control sets the data appropriately. - if (rbChgBarOff.Checked) - { - StepConfig sc = _CurItemInfo.MyConfig as StepConfig; - sc.Step_CBOverride = "Off"; - } - } - #endregion - } -} diff --git a/PROMS/Volian.Controls.Library/DisplayText.cs b/PROMS/Volian.Controls.Library/DisplayText.cs deleted file mode 100644 index b9f35bd5..00000000 --- a/PROMS/Volian.Controls.Library/DisplayText.cs +++ /dev/null @@ -1,2238 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using System.Text.RegularExpressions; -using System.Drawing; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; - -namespace Volian.Controls.Library -{ - public class DisplayText - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #region Properties - private E_FieldToEdit _FieldToEdit; - public E_FieldToEdit FieldToEdit - { - get { return _FieldToEdit; } - set { _FieldToEdit = value; } - } - private ItemInfo _MyItemInfo; - private string InfoText - { - get - { - switch (FieldToEdit) - { - case E_FieldToEdit.StepText: - case E_FieldToEdit.Text: - return _MyItemInfo.MyContent.Text; - break; - case E_FieldToEdit.Number: - return _MyItemInfo.MyContent.Number; - break; - } - return string.Empty; - } - } - private Item _MyItem; - private string EditText - { - get - { - switch (FieldToEdit) - { - case E_FieldToEdit.StepText: - case E_FieldToEdit.Text: - return _MyItem.MyContent.Text; - break; - case E_FieldToEdit.Number: - return _MyItem.MyContent.Number; - break; - } - return string.Empty; - } - set - { - switch (FieldToEdit) - { - case E_FieldToEdit.StepText: - case E_FieldToEdit.Text: - _MyItem.MyContent.Text = value; - _MyItem.MyContent.UserID = Volian.Base.Library.VlnSettings.UserID; - _MyItem.MyContent.DTS = DateTime.Now; - break; - case E_FieldToEdit.Number: - _MyItem.MyContent.Number = value; - _MyItem.MyContent.UserID = Volian.Base.Library.VlnSettings.UserID; - _MyItem.MyContent.DTS = DateTime.Now; - break; - default: - break; - } - } - } - // list of 'pieces of text' for this item. Pieces include symbols, ros, - // transitions & plain text. - private List _DisplayTextElementList; - public List DisplayTextElementList - { - get { return _DisplayTextElementList; } - set { _DisplayTextElementList = value; } - } - // dictionary for the font table for this item. Note that this may - // go away (it is not really used). - private Dictionary _dicRtfFontTable; - public Dictionary dicRtfFontTable - { - get { return _dicRtfFontTable; } - set { _dicRtfFontTable = value; } - } - private VE_Font _textFont; // Font from format for this item - public VE_Font TextFont - { - get { return _textFont; } - set { _textFont = value; } - } - private bool PrintingSmartTemplate = false; - public string StartText; - public string OriginalText; // compare for save to see if change for links. - private FormatInfo _MyFormat; - #endregion - #region Constructors - /// - /// DisplayText constructor: - /// Creates a DisplayText object that converts the database text into rtf text - /// Arguments are: - /// ItemInfo itemInfo - the item whose text will be resolved - /// E_EditPrintMode ep_mode - edit or print. - /// E_ViewMode vw_mode - view or edit. - /// bool noEdit - flags whether to edit or not (used to set data in - /// rtb as resolved replacewords for non-active rtb. - /// E_FieldToEdit fieldToEdit - identifies the field to edit (number or text) - /// bool colorLinks - whether to add color to links - /// - public DisplayText(ItemInfo itemInfo, E_EditPrintMode epMode, E_ViewMode vwMode, bool noEdit,E_FieldToEdit fieldToEdit, bool colorLinks, string prefix, string suffix) - { - int profileDepth = ProfileTimer.Push(">>>> DisplayText"); - _FieldToEdit = fieldToEdit; - _MyItemInfo = itemInfo; - OriginalText = InfoText; - if (OriginalText.Contains("Prerequisite") && epMode == E_EditPrintMode.Print) - OriginalText = Regex.Replace(OriginalText, @"\\{Prerequisite Step: .*?\\}", ""); - TextFont = itemInfo.GetItemFont();//GetItemFont(); - // if in print mode, and this is the HLS of a smart template (checklist formats) see if the hls - // splits across 2 lines. - if (itemInfo.IsStep && itemInfo.FormatStepData.UseSmartTemplate && epMode == E_EditPrintMode.Print) - { - int hlslen = (int)(itemInfo.FormatStepData.StepPrintData.HLSLength ?? 66); - List titleLines = Volian.Base.Library.RtfTools.SplitText(OriginalText, hlslen); - if (titleLines.Count > 1) - { - string tmporig = titleLines[0]; - for (int ix = 1; ix < titleLines.Count; ix++) - tmporig = tmporig + @"\par " + titleLines[ix]; - OriginalText = tmporig; - } - } - string text = prefix + OriginalText + suffix; - _MyFormat = itemInfo.ActiveFormat; - - bool tableShouldBeOutlined = false; //(epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View || noEdit) && - //(_FieldToEdit == E_FieldToEdit.StepText || _FieldToEdit == E_FieldToEdit.Text) && - //(!itemInfo.IsSection && !itemInfo.IsProcedure) && (itemInfo.IsTable || itemInfo.IsFigure); - bool wordsShouldBeReplaced = epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View || noEdit; - if (_MyFormat == null) - Console.WriteLine(this._MyItemInfo.MyItemInfoUnique); - bool numbersShouldBeFormated = (!_MyFormat.PlantFormat.FormatData.SectData.StepSectionData.FortranFormatNumbers && (epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View || noEdit)); - int typ = ((int)itemInfo.MyContent.Type) % 10000; - bool tableHasBorder = tableShouldBeOutlined ? itemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[typ].Type.IndexOf(@"Borderless") < 0 : false; - bool ROsShouldBeAdjusted = wordsShouldBeReplaced; // same logical value - bool underlineAfterDashSpace = (itemInfo.FormatStepData == null) ? false : itemInfo.FormatStepData.UnderlineAfterDashSpace; - if (epMode == E_EditPrintMode.Print && _MyItemInfo.IsStep) - { - if (_MyItemInfo.FormatStepData.UseSmartTemplate) - { - // Add 2 spaces before and 1 after if there is prefix so that wrapping in RTB accounts for vertical - // lines (the 2 spaces after the first "\par " command and 1 space before 2nd "\par"). Tried other - // combinations that did not work. - if (_MyItemInfo.FormatStepData.Prefix != null && _MyItemInfo.FormatStepData.Prefix != "") - text = !_MyItemInfo.FormatStepData.Font.FontIsProportional() ? ReplaceLinesWithUnicode(_MyItemInfo.FormatStepData.Prefix) + @"\par " + text + @"\par " : - @"\par " + text + @"\par "; - if (_MyItemInfo.FormatStepData.Suffix != null && _MyItemInfo.FormatStepData.Suffix != "") - text = text + (!_MyItemInfo.FormatStepData.Font.FontIsProportional() ? ReplaceLinesWithUnicode(_MyItemInfo.FormatStepData.Suffix) : - @"\par\par\par "); - } - } - // Replace Hard Hyphens with normal hyphen so the PDF search for hyphens will work properly - if (text.Contains(@"\u8209?") && epMode == E_EditPrintMode.Print) - { - // Handle RTF Tokens followed immediately by a hard hyphen - text =Regex.Replace(text, @"(?<=\\[^\\?' \r\n\t]+)\\u8209\?", " -"); - text = text.Replace(@"\u8209?", "-"); - } - _MyStaticItemInfo = _MyItemInfo; - text = CreateRtf(colorLinks, text, tableShouldBeOutlined, wordsShouldBeReplaced, numbersShouldBeFormated, tableHasBorder, ROsShouldBeAdjusted, underlineAfterDashSpace, epMode); - _MyStaticItemInfo = null; - StartText = text; - ProfileTimer.Pop(profileDepth); - } - private static ItemInfo _MyStaticItemInfo = null; // Used to report errors - private string ReplaceLinesWithUnicode(string text) - { - text = text.Replace("\x2500", @"\u9472?"); // Horizontal - text = text.Replace("\x2502", @"\u9474?"); // Vertical - text = text.Replace("\x2514", @"\u9492?"); // Bottom Left Corner - text = text.Replace("\x2518", @"\u9496?"); // Bottom Right Corner - text = text.Replace("\x2534", @"\u9524?"); // Bottom Tee - text = text.Replace("\x250c", @"\u9484?"); // Upper Left Corner - text = text.Replace("\x251c", @"\u9500?"); // Left Tee - text = text.Replace("\x2510", @"\u9488?"); // Upper Right Corner - text = text.Replace("\x252c", @"\u9516?"); // Top Tee - text = text.Replace("\x2524", @"\u9508?"); // Right Tee - text = text.Replace("\x253c", @"\u9532?"); // Plus - return text; - } - - public DisplayText(string text, VE_Font vFont, bool colorLinks) - { - TextFont = vFont; - StartText = CreateRtf(colorLinks, text, false, false, false, false, false, false, E_EditPrintMode.Edit); - } - public DisplayText(ItemInfo itemInfo, string text, bool colorLinks) - { - _FieldToEdit = E_FieldToEdit.Text; - _MyItemInfo = itemInfo; - OriginalText = text; - TextFont = itemInfo.GetItemFont(); - _MyFormat = itemInfo.ActiveFormat; - - bool wordsShouldBeReplaced = true; - bool numbersShouldBeFormated = !_MyFormat.PlantFormat.FormatData.SectData.StepSectionData.FortranFormatNumbers; - int typ = ((int)itemInfo.MyContent.Type) % 10000; - bool ROsShouldBeAdjusted = wordsShouldBeReplaced; // same logical value - bool underlineAfterDashSpace = (itemInfo.FormatStepData == null) ? false : itemInfo.FormatStepData.UnderlineAfterDashSpace; - - text = CreateRtf(colorLinks, text, false, wordsShouldBeReplaced, numbersShouldBeFormated, false, ROsShouldBeAdjusted, underlineAfterDashSpace,E_EditPrintMode.Edit); - StartText = text; - // Shearon Harris Tables are Bold - if (itemInfo.IsTable && (TextFont.Style & E_Style.Bold) == E_Style.Bold) - { - // Strip out Bold OFF commands - text = text.Replace(@"\b0 "," "); - text = text.Replace(@"\b0", ""); - // Insert a Bold ON command at the beginning of the printable text. - StartText = Regex.Replace(text, @"(\\viewkind.*?)(?= |\\u[0-9]+?|\\'[0-9A-F])", @"$1\b"); - } - } - private bool InLinkedText(string text, int idx) - { - MatchCollection mc = Regex.Matches(text, @"", RegexOptions.Singleline); - if (mc.Count == 0) return false; - foreach (Match m in mc) - if (m.Index < idx && m.Index + m.Length > idx) return true; - return (false); - } - private string CreateRtf(bool colorLinks, string text, bool tableShouldBeOutlined, bool wordsShouldBeReplaced, bool numbersShouldBeFormated, bool tableHasBorder, bool ROsShouldBeAdjusted, bool underlineAfterDashSpace, E_EditPrintMode epMode) - { - int profileDepth = ProfileTimer.Push(">>>> CreateRtf"); - // Adjust RO display - if (ROsShouldBeAdjusted) - { - try // Added try/catch because an unresolved RO Link was causing a failure. - { - text = DoROAdjustments(text); - } - catch (Exception ex) - { - if (_MyItemInfo != null) - { - _MyLog.ErrorFormat("<<< ERROR >>> Error doing DoROAdjustments\r\n==>'RO Adjustments Error',{0},'{1}','{2}','{3}'" - , _MyItemInfo.ItemID, _MyItemInfo.MyDocVersion.MyFolder.Name, _MyItemInfo.ShortPath, ex.Message); - } - else - _MyLog.Error("DisplayText.CreateRTF Error doing DoROAdjustments", ex); - - } - } - // if in print mode, view mode, or non-active richtextbox do replace words. Only if in - // actual edit mode are replace words left as is. - // But don't do ReplaceWords if the TurnOffReplaceWords format flag is set - if (wordsShouldBeReplaced && !_MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.TurnOffReplaceWords) - { - int profileDepth1 = ProfileTimer.Push(">>>> DoReplaceWords2"); - text = DoReplaceWords2(text); - ProfileTimer.Pop(profileDepth1); - } - if (_MyItemInfo != null) - { - text = Regex.Replace(text, @"\", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Number, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)ID)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)NAME)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Name, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)TEXT)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Text, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)NUMBER)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Number, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)OTHER ID)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Other_Unit_ID, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)OTHER NAME)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Other_Unit_Name, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)OTHER TEXT)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Other_Unit_Text, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)OTHER NUMBER)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Other_Unit_Number, RegexOptions.IgnoreCase); - //text = DoSearchAndReplace(text, "", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_ID); - text = text.Replace(@"", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_ProcedureSetID); - //text = text.Replace("", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Number); - } - // Adjust RO display - if (ROsShouldBeAdjusted) - text = DoTransitionAdjustments(text, _MyItemInfo.ActiveFormat.PlantFormat.FormatData.TransData.BoldTransition || (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.TransData.BoldTransitionExceptHLS && !_MyItemInfo.IsHigh)); - // add colors around links: - if (colorLinks) - text = DoColorLinks(text); - //Console.WriteLine(text); - // adjust formatting of exponents - if (numbersShouldBeFormated) - text = DoFortranFormat(text); - // determine whether the table/figure should be outlined: - if (tableShouldBeOutlined) - { - OutlineRTFTable myTable = new OutlineRTFTable(text, tableHasBorder); - // if a table has internal line draw characters, we may have to do part of 'OutlineTable' - // to convert dashes and vertical bars to line draw characters. - if (tableHasBorder) myTable.OutlineTable(); - text = myTable.Lines.ToString(); - } - - // if we're working with a grid it won't go thru here. - if (!text.StartsWith(@"{\rtf")) - { - // as a precaution, convert any \~ to \u160?. This is for Hard spaces. see the commentary in the - // save portion of this code for an explanation. - text = text.Replace(@"\~", @"\u160?"); - text = text.Replace("\r\n", @"\line "); // replace a \r\n with a \line instead of a \par - //if (text.IndexOf(@"\line") > -1) - // MessageBox.Show("Found rtf line"); - //text = text.Replace(@"\line", @"\par"); // we don't want to replace the \line part of bug fix B2015-140 - - // Now put symbol (for fixed fonts) or unicode font (proportional) around symbols - // These fonts are VESymbFix & Arial Unicode MS respectively, and the font table - // is actually defined in the StepRTB code. - int indxsym = NextUnicode(text, 0);//text.IndexOf(@"\u"); - while (indxsym != -1) - { - int incrindx = 3; - if (text[indxsym + 2] != 'l') - { - text = text.Insert(indxsym, @"\f1 "); - int indxendsym = text.IndexOfAny(@"\ ?".ToCharArray(), indxsym + 5); - if (indxendsym == -1) // must be end of line: - text = text.Insert(text.Length - 1, @"\f0 "); - else - { - if (text[indxendsym] == '?') indxendsym++; - text = text.Insert(indxendsym, @"\f0 "); // TODO: do I need a space?? - } - incrindx = 5; - } - indxsym = NextUnicode(text, indxsym + incrindx);//text.IndexOf(@"\u", indxsym + incrindx); - } - } - if (underlineAfterDashSpace) - { - // Bug fix: B2015-110 - currently used in Byron and Braidwood formats - // for the screen we need to look for the unicode dash - // for printing we need to look for the keyboard dash character - MatchCollection mc = Regex.Matches(text,((epMode == E_EditPrintMode.Edit)? @"\\u8209\?\\f[0-9]+ " : "- ")); - if (mc.Count > 0) - { - Match m = mc[0]; - if (!InLinkedText(text, m.Index)) - { - string str1 = text.Substring(0, m.Index + m.Length); - string str2 = text.Substring(m.Index + m.Length); - string str3 = ""; - int iTerm = FindUnderlineTerminator(str2); - if (iTerm >= 0) - { - str3 = str2.Substring(iTerm); - str2 = str2.Substring(0, iTerm); - } - str2 = str2.Replace(@"\ulnone ", ""); - str2 = str2.Replace(@"\ulnone", ""); - str2 = str2.Replace(@"\ul ", ""); - str2 = str2.Replace(@"\ul", ""); - text = str1 + @"\ul " + str2 + @"\ulnone " + str3; - } - } - } - text = FixDiffUnitROReplaceWords(text); - ProfileTimer.Pop(profileDepth); - return text; - } - - private string FixDiffUnitROReplaceWords(string text) - { - if (_MyFormat == null) return text; - ReplaceStrList rsl = _MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList; - - // The only way to get an 'empty' list is to have one 'dummy' replacestr, i.e. that has ReplaceWord as an empty string. If the - // ReplaceStrData xml node is empty, it does the inheritance and gets the 'base' format's list. - if (rsl.Count == 1 && (rsl[0].ReplaceWord == null || rsl[0].ReplaceWord == "")) return text; - // Loop through text looking for words to be replaced - List partialReplaceList = new List(); - foreach (ReplaceStr rs in rsl) - { - if (rs.ReplaceWord.Contains("{RO}")) - { - //if (_MyItemInfo.InList(34770,34771,34782,34882,34886,34916,34891,35121,36361)) - // Console.WriteLine("FixDiffUnitROReplaceWords jcb"); - string oldvalue = text; - string replaceWord = rs.ReplaceWord; - string replaceWord2 = Regex.Replace( replaceWord,@"(\{RO\})([0-9,]+)(\{RO\})",@"\\v 0) - { - Match mm = Regex.Match(text, replaceWord2, RegexOptions.IgnoreCase); - return matches[0]; - } - return null; - } - private int FindUnderlineTerminator(string text) - { - int idx = -1; - UnderlineTerminateList utl = _MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.UnderlineTerminateList; - foreach (UnderlineTerminate ut in utl) - { - MatchCollection mc = Regex.Matches(text, "(? 0) - { - Match m = mc[mc.Count - 1]; - if (idx < 0 || idx > m.Index) - idx = m.Index; - } - } - return idx; - } - private string DoSearchAndReplace(string text, string find, string replace) - { - return text.Replace(find, replace); - } - private static string DoColorLinks(string text) - { - string origtext = text; - text = Regex.Replace(text, @"( -1) - { - text = text.Insert(indxend, @"\cf0"); - indxcf = text.IndexOf(@"\v0\cf1", indxend); - } - else - { - indxcf = -1; - _MyLog.WarnFormat("DisplayText.DoColorLinks Failed\r\norgitext:'{0}'\r\ntext'{1}'", origtext, text); - } - } - } - catch (Exception ex) - { - _MyLog.WarnFormat("DisplayText.DoColorLinks Failed\r\norgitext:'{0}'\r\ntext'{1}'", origtext, text); - } - return text; - } - private int NextUnicode(string text, int offset) - { - // Skip Hard Spaces - Match m = Regex.Match(text.Substring(offset), @"\\u[0-9a-fA-F]"); - while(m.Success && text.Substring(offset+m.Index).StartsWith(@"\u160")) - { - offset += m.Index + 5; - m = Regex.Match(text.Substring(offset), @"\\u[0-9a-fA-F]"); - } - if (m.Success) - return m.Index + offset; - return -1; - } - private string DoROAdjustments(string text) - { - Regex regRefObj = new Regex(@"\#Link\:ReferencedObject:([0-9]*|) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline); - string strippedText = StaticStripRtfCommands(text); - // (\\[^v \\]+)* --> look for any rtf commands (first part of lookFor) - // \\v0 --> end of comment - // (\\[^v \\]+)* --> more rtf commands ended by a space - // (.*?) --> smallest anything to that matches this based on what's next - // (\\[^v' \\]+)* --> look for rtf commands but exclude \' before the \v - // \\v(\\[^v \\]+)* --> look for rtf commands after the \v - // if it turns out that if ro's have any embedded unicode characters this needs expanded, such as /u8209? (hard hyphen) - string lookFor = string.Format(@""); - MatchCollection matches = Regex.Matches(text, lookFor); - string prevValue = null; - for (int i = matches.Count - 1; i >= 0; i--) - { - Match m = matches[i]; - if (m != null && m.Groups.Count > 7 && m.Groups[7].ToString() == "ReferencedObject") - { - // if previous processed (next ro) was found, then see if it has an 'and' between it and the previous - //if (prevValue != null) - //{ - // int endIndx = m.Index + m.Length; - // string tr = text.Substring(endIndx).Replace(@"\v0","").TrimStart(); - // if (!tr.ToUpper().StartsWith("AND")) prevValue = null; - //} - int myIndex = m.Groups[4].Index; - int myLength = m.Groups[4].Length; - if (m.Groups[3].Value != " ") - { - myIndex = m.Groups[3].Index; - myLength += m.Groups[3].Length; - } - string gg = text.Substring(myIndex, myLength); - //System.Text.RegularExpressions.Group g = m.Groups[3]; - string beforeRO = StaticStripRtfCommands(text.Substring(0, myIndex)); - string afterRO = StaticStripRtfCommands(text.Substring(myIndex + myLength)); - Match myMatch = regRefObj.Match(m.ToString()); - if(m.ToString().ToUpper().Contains("")) - _MyLog.WarnFormat("Unprocessed RO in {0},({1})",_MyItemInfo.ShortPath,gg); - int dbid = System.Convert.ToInt32(myMatch.Groups[2].Value.Substring(0, 4), 16); - int rodbid = int.Parse(myMatch.Groups[3].Value); - ROFstInfo myROFst = _MyItemInfo.MyDocVersion.GetROFst(rodbid); - bool isSetpoint=myROFst.IsSetpointDB(dbid, _MyItemInfo.MyDocVersion); - string newvalue1 = DoROFormatFlags(gg, beforeRO, afterRO, isSetpoint); - string newvalue = RemoveMultipleUnits(prevValue, newvalue1); - if (!_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.AllUnits) prevValue = newvalue1; - newvalue = DoROReplaceWords(_MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList, newvalue, _MyItemInfo.IsHigh); - if (isSetpoint) newvalue = ReplaceSpaceWithHardspace(newvalue); - if (gg != newvalue) - text = text.Substring(0, myIndex) + newvalue + text.Substring(myIndex + myLength); - } - } - return text; - } - private string DoROReplaceWords(ReplaceStrList replaceStrList, string oldvalue, bool isHigh) - { - int profileDepth = ProfileTimer.Push(">>>> DoROReplaceWords"); - string newvalue = oldvalue; - foreach (ReplaceStr rs in replaceStrList) - { - if (((rs.Flag & E_ReplaceFlags.Setpoint) > 0) || (isHigh && (rs.Flag & E_ReplaceFlags.HLSSetpnt) > 0)) - { - try - { - // Use regular expression to assure that the ReplaceWord is not part of another word - // For VEPROMS_CAL E-0 Step 23 (Reset SI) the word "after" was being changed to "aFTer" - newvalue = Regex.Replace(newvalue, @"(?<=\W|^)" + rs.ReplaceWord + @"(?=\W|$)", rs.ReplaceWith); - //newvalue = newvalue.Replace(rs.ReplaceWord, rs.ReplaceWith); - } - catch (Exception ex) - { - _MyLog.Warn("Problem with regular expression", ex); - } - } - } - //if (oldvalue != newvalue) - // Console.WriteLine("\"{0}\"\r\n\"{1}\"",oldvalue,newvalue); - ProfileTimer.Pop(profileDepth); - return newvalue; - } - // Replace spaces with hardspaces, but DO NOT replace the end of an Rtf Command with a hardspace - private string ReplaceSpaceWithHardspace(string newvalue) - { - string oldvalue = newvalue; - int spindx = newvalue.IndexOf(" "); - int lstindx = -1; - while (spindx >= 0) - { - if (!EndsRtfCommand(newvalue, spindx, lstindx)) - { - newvalue = newvalue.Remove(spindx, 1); - newvalue = newvalue.Insert(spindx, @"\u160?"); - } - lstindx = spindx; - spindx = (spindx + 1 >= newvalue.Length)?spindx = -1: newvalue.IndexOf(" ", spindx+1); - } - return newvalue; - } - - private bool EndsRtfCommand(string str, int spindx, int previndx) - { - // get text from last space to current, or from beginning of string to current: - int start = previndx < 0 ? 0 : previndx+1; - string substring = str.Substring(start, spindx-start); - if (substring.Contains(@"\")) - { - // is space ending an rtf command. - int startCmd = substring.LastIndexOf(@"\"); - string Cmd = substring.Substring(startCmd); - char tst = Cmd[1]; - // consider rtf commands up/dn/b/ul/i - if (tst == 'u' || tst == 'd' || tst == 'b' || tst == 'u' || tst == 'i') return true; - } - return false; - } - private string DoTransitionAdjustments(string text, bool boldTran) - { - int profileDepth = ProfileTimer.Push(">>>> DoTransitionAdjustments"); - bool undtran = _MyItemInfo.ActiveFormat.PlantFormat.FormatData.TransData.Underline; - string strippedText = StaticStripRtfCommands(text); - string lookFor = string.Format(@""); - MatchCollection matches = Regex.Matches(text, lookFor); - if (matches.Count == 0) - { - ProfileTimer.Pop(profileDepth); - return text; - } - string retstr = text; - for (int i = matches.Count - 1; i >= 0; i--) - { - Match m = matches[i]; - // if this transition text already has a hard space, don't add another. - if (m.Groups[4].Value.Contains("\xA0")) continue; - // if the transition text does not start with a digit, don't add the hardspace. - //if (!Char.IsDigit(m.Groups[3].Value[0])) continue; - if (m != null && m.Groups.Count > 8 && m.Groups[7].ToString().StartsWith("Transition")) - { - if (m.Groups[8].Value != "") // && StepTransition(int.Parse(m.Groups[7].Value))) - { - int myIndex = m.Groups[4].Index; - int myLength = m.Groups[4].Length; - if (m.Groups[3].Value != " ") - { - myIndex = m.Groups[3].Index; - myLength += m.Groups[3].Length; - } - string newvalue = text.Substring(myIndex, myLength); - //System.Text.RegularExpressions.Group g = m.Groups[3]; - string beforeTran = retstr.Substring(0, myIndex); - string afterTran = retstr.Substring(myIndex + myLength); - - // if replacing text in the 'beforeTran' string, then do it here, - // i.e. there is a format flag 'BeforeTrans' that bolds text before the transition - // (in wst formats). - beforeTran = DoBeforeTransFlagSupport(beforeTran, _MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ReplaceStrList); - //string newvalue = g.ToString(); - // if this is a 'step transition' type, i.e. includes a step number, in addition to other replacements, - // we want to change a space to a hardspace. - if (StepTransition(int.Parse(m.Groups[8].Value))) - { - int indexLastSpace = newvalue.LastIndexOf(' '); - if (indexLastSpace >= 0) - // Use a "\x1" as a token to replace later. Insert the unicode char, whose length is - // more than 1 character was throwing of the regexp Matches index, so that the resulting - // string may have been incorrect. - retstr = beforeTran + (boldTran ? @"\b " : null) + (undtran ? @"\ul " : null) + newvalue.Substring(0, indexLastSpace) + "\x1" + newvalue.Substring(indexLastSpace + 1) + (undtran ? @"\ulnone " : null) + (boldTran ? @"\b0" : null) + afterTran; - else - if (beforeTran.EndsWith(" ")) - retstr = ReplaceLastSpaceWithHardSpace(beforeTran) + (boldTran ? @"\b " : null) + (undtran ? @"\ul " : null) + newvalue + (undtran? @"\ulnone ":null) + (boldTran ? @"\b0" : null) + afterTran; - else - Console.Write("");// Don't know where to put the Hard Space - } - else if (boldTran) - { - retstr = beforeTran + @"\b " + newvalue + @"\b0" + afterTran; - } - } - } - } - ProfileTimer.Pop(profileDepth); - return retstr.Replace("\x1", @"\u160?"); - } - - private string DoBeforeTransFlagSupport(string beforeTran, ReplaceStrList replaceStrList) - { - foreach (ReplaceStr repstr in replaceStrList) - { - if ((repstr.Flag & E_ReplaceFlags.BeforeTrans) > 0) - { - // the beforeTran string ends with the string that starts the transition comment, i.e. - // '\\v -1) - { - string findit = beforeTran.Substring(0, beforeTran.LastIndexOf(@"\v 0 && str[ind - 1] != ' ') - { - if (ind > 5 && str.Substring(0, ind).EndsWith(@"\u160?") || str.Substring(0, ind).ToLower().EndsWith(@"\'a0")) - return str;//Already has a Hard Space - ind = str.LastIndexOf(@"\", ind - 1); - } - // If the previous character is a comma or a space then don't add a Hard Space - if (ind > 1 && (str[ind - 2] == ',' || str[ind - 2] == ' ')) return str; - if (ind <= 0) return str; - - // replace with a 'token' "\x1" instead of a hardspace unicode char. When using a hardspace unicode - // char the string length/contents was thrown off so that the calling method's processing was off - // in terms of regexp matches in string. - return str.Substring(0, ind - 1) + "\x1" + str.Substring(ind); - } - private bool StepTransition(int TransId) - { - if (_MyItemInfo == null) return false; - _MyItemInfo.MyContent.RefreshContentTransitions(); - foreach (TransitionInfo trans in _MyItemInfo.MyContent.ContentTransitions) - if (trans.TransitionID == TransId) - return trans.MyItemToID.IsStep; - return false; - } - private string DoFortranFormat(string text) - { - if (text.IndexOf(@".E") < 0) return text; - // Look for text as n.Ey, where n can be null or a number, and y can be - // positive or negative. This translates into nx10x10y where y is - // superscripted. For example, .E3 -> x103 where 3 is superscripted - // and 10.E5 -> 10x10-5 where 5 is superscripted - string pat = @"(\d*).E([+-]*\d+)"; - string retstr = text; - // for each one that needs translated: - foreach (Match m in Regex.Matches(text, pat)) - { - string fnum = m.Groups[1].Value; - string supnum = m.Groups[2].Value; - string newstr = string.Format(@"{0}x10\up2 {1}\up0 ", fnum, supnum); - retstr = retstr.Replace(m.Value, newstr); - } - return retstr; - } - #endregion - #region SaveData - public bool Save(RichTextBox rtb) - { - //int savSelStart = rtb.SelectionStart; - try - { - //FormatInfo formatInfo = _MyItemInfo.ActiveFormat; - using (_MyItem = _MyItemInfo.Get()) - { - // The following was added to support transitions to un-numbered steps - if (_MyItemInfo.NewTransToUnNumberedItem && rtb.Text.Contains("")) - { - ItemAnnotation ia = _MyItem.ItemAnnotations.Add(AnnotationType.GetByName("Verification Required")); - ia.SearchText = "Transition to Un-Numbered Step"; - _MyItemInfo.NewTransToUnNumberedItem = false; - } - // check for different text, i.e. text from this itm doesn't match - // original text, a change occurred in database, but not from this user. - if (OriginalText != EditText) - { - Console.WriteLine("Save Failed because text changed outside of this edit session."); - return false; - } - string modtext = RtfToDbText(rtb.Rtf).Replace("", "\\\\"); - - // if there are links, we'll need to do extra processing to see if - // there were additions, deletions or modifications. - bool haslinks = ((modtext.IndexOf(@" -1) || (OriginalText != null && OriginalText != "" && OriginalText.IndexOf(@" -1)); - if (haslinks) - { - // Get all links in original list - RtfToDisplayTextElements(OriginalText); - List origList = GetLinkList(DisplayTextElementList); - // now get new text into displaytext elements for comparison for links: - RtfToDisplayTextElements(modtext); - // Compare ro/transition lists and delete or add any to the item for any ros/transitions that have been - // added/deleted or modified. - ProcessRoTranChanges(_MyItem, origList); - EditText = DteToString(); - // if new transitions/ros, we need to 'fix' the string in the embedded link to contain the - // transition or usage record. - Dictionary ctReplacements = BuildCtReplacements(_MyItem.MyContent.ContentTransitions); - Dictionary roUsgReplacements = BuildRoUsgReplacements(_MyItem.MyContent.ContentRoUsages); - _MyItem.DTS = DateTime.Now; - _MyItem.UserID = Volian.Base.Library.VlnSettings.UserID; - // Do the Save once rather than multiple times - _MyItem.Save(); - if (ctReplacements.Count > 0) - { - EditText = FixCtReplacements(EditText, ctReplacements); - // Replace Transition Text - foreach (ContentTransition ct in ctReplacements.Values) - using (TransitionInfo tran = TransitionInfo.Get(ct.TransitionID)) - _MyItem.MyContent.FixTransitionText(tran); - _MyItem.Save(); - } - if (roUsgReplacements.Count > 0) - { - EditText = FixRoUsgReplacements(EditText, roUsgReplacements); - _MyItem.Save(); - } - modtext = EditText; - } - else - { - EditText = modtext; - foreach (Csla.Validation.BrokenRule br in _MyItem.MyContent.BrokenRulesCollection) - { - Console.WriteLine("{0} - {1}", br.Property, br.Description); - } - // Don't update the DTS or User for Text Changes - //_MyItem.DTS = DateTime.Now; - //_MyItem.UserID = Volian.Base.Library.VlnSettings.UserID; - _MyItem.Save(); - } - _MyItem = null; - OriginalText = modtext; - } - if (!_MyItemInfo.IsStep) - { - _MyItemInfo.UpdateTransitionText(); - _MyItemInfo.UpdateROText(); - } - } - catch (Exception ex) - { - Console.WriteLine("DisplayText Save Failed with error: {0} - {1}\r\n{2}", ex.GetType().Name, ex.Message, ex.StackTrace); - return false; - } - //rtb.SelectionStart = savSelStart; - return true; - } - private string DteToString() - { - StringBuilder sret = new StringBuilder(); - foreach (displayTextElement vte in DisplayTextElementList) - { - if (vte.Type == E_TextElementType.Text || vte.Type == E_TextElementType.Symbol) - sret.Append(vte.Text); - else - { - displayLinkElement dle = vte as displayLinkElement; - if (vte != null) sret.Append(dle.TextAndLink); - } - } - string modtext = sret.ToString(); - return modtext; - } - private string FixRoUsgReplacements(string p, Dictionary roUsgReplacements) - { - foreach (int oldid in roUsgReplacements.Keys) - { - p = p.Replace(string.Format("", oldid), roUsgReplacements[oldid].ROUsageID.ToString()); - } - return p; - } - private Dictionary BuildRoUsgReplacements(ContentRoUsages contentRoUsages) - { - Dictionary retval = new Dictionary(); - foreach (ContentRoUsage rou in contentRoUsages) - { - if (rou.ROUsageID < 0) retval.Add(rou.ROUsageID, rou); - } - return retval; - } - private string FixCtReplacements(string p, Dictionary ctReplacements) - { - foreach (int oldid in ctReplacements.Keys) - { - p = p.Replace(string.Format("",oldid),ctReplacements[oldid].TransitionID.ToString()); - } - return p; - } - private Dictionary BuildCtReplacements(ContentTransitions contentTransitions) - { - Dictionary retval = new Dictionary(); - foreach (ContentTransition ct in contentTransitions) - { - if (ct.TransitionID < 0) retval.Add(ct.TransitionID, ct); - } - return retval; - } - private void ProcessRoTranChanges(Item itm, List origList) - { - // go through list. Note that only linked items are in the origList. - // 1) delete any that are in origList but not in the DisplayTextElementList - // (that represents the current text & links) - // 2) add any that are only in DisplayTextElementList - // 3) delete/add for modify? - - // delete first - if in original, but not in current list, delete the one - // in the original list. - foreach (displayLinkElement odte in origList) - { - bool found = false; - foreach (displayTextElement dte in DisplayTextElementList) - { - if (dte.Type == odte.Type) - { - displayLinkElement l_dte = (displayLinkElement)dte; - if (odte.Link == l_dte.Link) - { - found = true; - break; - } - } - } - // remove the link element from the item. - if (!found) - { - // Get record id for ro or trans and then find the associated ro or transition - // in the item's list. remove it. - int recid = -1; - if (odte.Type != E_TextElementType.ReferencedObject) - { - int sp = odte.Link.IndexOf(" ") + 1; // get past tran type - string srecid = odte.Link.Substring(sp, odte.Link.IndexOf(" ", sp) - sp); - recid = System.Convert.ToInt32(srecid); - foreach (ContentTransition ct in itm.MyContent.ContentTransitions) - { - if (ct.TransitionID == recid) - { - itm.MyContent.ContentTransitions.Remove(ct); - break; - } - } - } - else - { - int sp = odte.Link.IndexOf(" "); - //rousageid starts after "ReferencedObject:", i.e. index in link of 17 - string srecid = odte.Link.Substring(17, sp-17); - recid = System.Convert.ToInt32(srecid); - foreach (ContentRoUsage cr in itm.MyContent.ContentRoUsages) - { - if (cr.ROUsageID == recid) - { - itm.MyContent.ContentRoUsages.Remove(cr); - break; - } - } - } - } - } - // now do insert, i.e. in new list, but not in old. - foreach (displayTextElement dte in DisplayTextElementList) - { - bool found = false; - if (dte.Type == E_TextElementType.ReferencedObject || dte.Type == E_TextElementType.Transition || dte.Type == E_TextElementType.TransitionRange) - { - foreach (displayLinkElement odte in origList) - { - if (dte.Type == odte.Type) - { - // if the link is the same, it exists, so no action is required. - displayLinkElement l_dte = (displayLinkElement)dte; - if (odte.Link == l_dte.Link) - { - found = true; - break; - } - } - } - // Insert the link (ro or transition) to the item - if (!found) - { - if (dte.Type == E_TextElementType.ReferencedObject) // do ro - { - displayLinkElement l_dte = (displayLinkElement)dte; - Match m = Regex.Match(l_dte.Link, "([A-Za-z]*):(.*)"); - string linkstr = m.Groups[2].Value; - string[] roparts = linkstr.Split(" ".ToCharArray()); - ContentRoUsage rousg = null; - using (RODb rodb = RODb.GetJustRoDb(Convert.ToInt32(roparts[2]))) - { - rousg = itm.MyContent.ContentRoUsages.Add(roparts[1], rodb); - } - l_dte.Link = l_dte.Link.Replace("", string.Format("", rousg.ROUsageID)); - l_dte.TextAndLink = l_dte.TextAndLink.Replace("", string.Format("", rousg.ROUsageID)); - break; - } - else if (dte.Type == E_TextElementType.TransitionRange || dte.Type == E_TextElementType.Transition) - { - displayLinkElement l_dte = (displayLinkElement)dte; - Match m = Regex.Match(l_dte.Link, "([A-Za-z]*):(.*)"); - string linkstr = m.Groups[2].Value; - string[] tparts = linkstr.Split(" ".ToCharArray()); - int type = System.Convert.ToInt32(tparts[0]); - int tr1 = System.Convert.ToInt32(tparts[2]); // tparts[2] is token for tranid - int tr2 = tr1; - if(tparts.Length > 3) - tr2 = System.Convert.ToInt32(tparts[3]); // tparts[3] is token for rangeid - bool dispose1 = false; - Item itm1 = null; - bool dispose2 = false; - Item itm2 = null; - if (itm.ItemID == tr1) - itm1 = itm; // a transition that points to itself should not dispose - else - { - dispose1 = true; - itm1 = Item.Get(tr1); - } - if (itm.ItemID == tr2) - itm2 = itm; // a transition that points to itself should not dispose - else if (tr1 == tr2) - itm2 = itm1; // if both destinations are the same only dispose the first one - else - { - dispose2 = true; - itm2 = Item.Get(tr2); - } - ContentTransition ct = itm.MyContent.ContentTransitions.Add(itm1, itm2); - //Console.WriteLine("CT {0},{1},{2},{3}", ct.TransitionID, itm.ItemID, itm.MyContent.MyContentUnique, itm.MyContent.ContentTransitions.Count); - ct.TranType = type; - if (dte.Type == E_TextElementType.Transition) - ct.IsRange = 0; - else if (tr1 != tr2) - ct.IsRange = 1; - else - ct.IsRange = 2; - l_dte.Link = l_dte.Link.Replace("", string.Format("", ct.TransitionID)); - l_dte.TextAndLink = l_dte.TextAndLink.Replace("", string.Format("", ct.TransitionID)); - if (dispose2) itm2.Dispose(); - if (dispose1) itm1.Dispose(); - } - } - } - } - } - private List GetLinkList(List locDisplayTextElementList) - { - List retList = new List(); - foreach (displayTextElement vte in locDisplayTextElementList) - { - if (vte.Type == E_TextElementType.ReferencedObject || vte.Type == E_TextElementType.TransitionRange || vte.Type == E_TextElementType.Transition) - { - displayLinkElement tmp = (displayLinkElement)vte; - displayLinkElement copy_vte = new displayLinkElement(); - copy_vte.Type = tmp.Type; - copy_vte.Link = tmp.Link; - copy_vte.Text = tmp.Text; - retList.Add(copy_vte); - } - } - return retList; - } - private void RtfToDisplayTextElements(string text) - { - // get original text into displaytext elements for comparison for links: - if (DisplayTextElementList == null) - DisplayTextElementList = new List(); - else - DisplayTextElementList.Clear(); - - if (text == null || text == "") return; - - string noExtraRtfStr = text; - - int startIndex = 0; - int index = -1; - noExtraRtfStr = noExtraRtfStr.Replace(@"><", @">\v0 \v <"); - while ((index = FindTokenChar(noExtraRtfStr, startIndex)) > -1) - { - // Do any 'plain' text that preceeds the token. - if (index > startIndex) DoTextElement(noExtraRtfStr, startIndex, index); - - if (noExtraRtfStr[index + 1] == 'v') - index = DoLink(noExtraRtfStr, index); - else - index = DoSymbol(noExtraRtfStr, startIndex, index); - startIndex = index; // +1; - if (startIndex >= noExtraRtfStr.Length) break; - } - // Add any remaining text. - if (startIndex < noExtraRtfStr.Length) DoTextElement(noExtraRtfStr, startIndex, index); - } - private string RtfToDbText(string text) - { - // For hardspaces, the windows richtextbox does some 'quirky' things: - // A unicode representation of \u160? is sent INTO the rtb. Coming out, - // that \u160? was translated to a \~ (by the underlying windows rtb). - // Note that if the \~ is sent to the rtb, it is treated as a regular space, - // i.e. no longer a hardspace, and actually is converted to a regular space. - // SO, on the way out, convert any \~ to \u160? - string noExtraRtfStr = text.Replace(@"\~", @"\u160?"); - noExtraRtfStr = noExtraRtfStr.Replace(@"\'a0", @"\u160?"); - - // Check for two links in a row & if found, add separating rtf comment - // commands (these get removed in the richtextbox: - // RHM 20100303 Not sure why this is here. The RichTextBox will always remove it. - //noExtraRtfStr = noExtraRtfStr.Replace(@"[END>\v0 \v -1) noExtraRtfStr = noExtraRtfStr.Replace(@"\'05", "\x05"); - - return noExtraRtfStr; - } - public static string StaticReplaceRTFClause(Match m) - { - try - { - string token = m.Groups[1].Value; - switch (token[1]) - { - case '\\': - return token; - case 'u': - if (Regex.IsMatch(token, @"^\\u[0-9]+$")) - return token; // Special Charcaters - if (Regex.IsMatch(token, @"^\\ulnone ?$")) - return token; - if (Regex.IsMatch(token, @"^\\ul.*$")) - return token; // Underline - if (Regex.IsMatch(token, @"^\\up[0-9] ?$")) - return token; // shift up (superscript) - break; - case 'd': - if (Regex.IsMatch(token, @"^\\dn[0-9] ?$")) - return token; // shift down (subscript) - break; - case '\'': // Special Character - return token; - case 'b': // Bold - return token; - case 'i': // Italics - return token; - case '{': // look for escape for curly braces: - return token; - case '}': - return token; - case 'v': // save link hidden info - if (token == "\\viewkind4 ") break; - if (Regex.IsMatch(token, @"^\\v0? ?$")) - return token; // comment part of link - // If possible show what procedure was being processed. - if(_MyStaticItemInfo == null) - _MyLog.WarnFormat("<<>>\r\n==> Token including Comment not processed '{0}'", token); - else - _MyLog.WarnFormat("<<>>\r\n==> Token including Comment not processed '{0}' in {1},[{2}]", token, _MyStaticItemInfo.ShortPath, _MyStaticItemInfo.ItemID); - break; - case 'l': - if (Regex.IsMatch(token, @"^\\line ?$")) return token; - if (Regex.IsMatch(token, @"^\\li[-0-9]+ ?$")) return token; // line indent - break; - case 'f': - if (Regex.IsMatch(token, @"^\\fi[-0-9]+ ?$")) return token; // first line indent - break; - case 'p': - if (Regex.IsMatch(token, @"^\\par ?$")) return "\r\n"; - //if (token == @"\protect") - // return token; - //if (token == @"\protect0") - // return token; - //if (token.Length >= 6 && token.Substring(0, 6) == "\\par\r\n") return token.Replace("\r\n", " "); - break; - //case 'f': // handle fonts separately because they may or may not have a space after them - // if (token[2] >= '0' && token[2] <= '9') return token; - // break; - } - } - catch (Exception ex) - { - Console.WriteLine("StaticReplaceRTFClause {0} - {1}", ex.GetType().Name, ex.Message); - } - return "";//Strip All - } - private static Regex reg1 = new Regex(@"\\par\r\n(?!\\)"); - private static Regex reg2 = new Regex(@"[\r\n]", RegexOptions.Singleline); // Strip Carriage Returns and Newlines - private static Regex reg3 = new Regex(@"^\{(.*)\}$", RegexOptions.Singleline); // Strip Opening and Closing Braces - private static Regex reg4 = new Regex(@"\{[^{]*?\}", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - private static Regex reg5 = new Regex( @"\{[^{]*?\}", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - private static Regex reg6 = new Regex(@"(\\[^' \\?\r\n\t]+)(?=\\)"); // add space after token if followed by token - private static Regex reg7 = new Regex(@"(\\[^' \\?\r\n\t]+ )"); // take backslash xyz and evaluates them - private static Regex reg8 = new Regex( @"(\\[^' \\?\r\n\t]+) (?=\\)"); // remove space between tokens - private static Regex reg9 = new Regex( @"(\\[^' \\?\r\n\t]+) (?=\r\n)"); // remove space before /r/n - - public string StripRtfCommands(string rtf) - { - // replace \{ & \} with (![ & (!] respectively and then redo at end. The curly braces - // are rtf so were getting removed and/or not handled correctly. - string retval = rtf.Replace(@"\{", @" (!["); - retval = retval.Replace(@"\}", @" (!]"); - - // remove carriage return/newlines after \par commands (these are introduced by rtb - // for hard returns, goes into rtb as \par and comes out as \par\r\n): - retval = reg1.Replace(retval, "\\par "); - retval = retval.Replace("\\v0\r\n", "\\v0 "); // Replace Carriage Return and Newline after comment - retval = reg2.Replace(retval, ""); // Strip Carriage Returns and Newlines - retval = reg3.Replace(retval, "$1"); // Strip Opening and Closing Braces - retval = reg4.Replace(retval, ""); // Strip Clauses - remove anything from curly braces - retval = reg5.Replace(retval, ""); // Strip Clauses - remove anything from curly braces - retval = reg6.Replace(retval, "$1 "); // add space after token if followed by token - retval = reg7.Replace(retval, new MatchEvaluator(StaticReplaceRTFClause)); // take backslash xyz and evaluates them - retval = reg8.Replace(retval, "$1"); // remove space between tokens - retval = reg9.Replace(retval, "$1"); // remove space before /r/n - - //retval = Regex.Replace(retval, @"\\par\r\n(?!\\)", "\\par "); - //retval = retval.Replace("\\v0\r\n", "\\v0 "); // Replace Carriage Return and Newline after comment - //retval = Regex.Replace(retval, @"[\r\n]", "", RegexOptions.Singleline); // Strip Carriage Returns and Newlines - //retval = Regex.Replace(retval, @"^\{(.*)\}$", "$1", RegexOptions.Singleline); // Strip Opening and Closing Braces - //retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - //retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - //retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+)(?=\\)", "$1 "); // add space after token if followed by token - //retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+ )", new MatchEvaluator(StaticReplaceRTFClause)); // take backslash xyz and evaluates them - //retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+) (?=\\)", "$1"); // remove space between tokens - //retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+) (?=\r\n)", "$1"); // remove space before /r/n - - // remove \r\n at end of string if the string has 2 or more characters - if (retval.EndsWith("\r\n")) retval = retval.Remove(retval.Length - 2, 2); - if (retval.Length == 0) return ""; - if (retval.EndsWith(@"\v")) retval = retval.Remove(retval.Length - 2, 2); - retval = _MyItemInfo.RemoveRtfStyles(retval); // RemoveRtfStyles(retval); - retval = retval.Replace(@" (![", @"\{"); - retval = retval.Replace(@" (!]", @"\}"); - retval = retval.TrimEnd(' '); - return retval; - } - -private static Regex sreg1 = new Regex(@"\\par\r\n(?!\\)"); -private static Regex sreg2 = new Regex(@"[\r\n]",RegexOptions.Singleline); // Strip Carriage Returns and Newlines -private static Regex sreg3 = new Regex(@"^\{(.*)\}$", RegexOptions.Singleline); // Strip Opening and Closing Braces -private static Regex sreg4 = new Regex(@"\{[^{]*?\}", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces -private static Regex sreg5 = new Regex(@"\{[^{]*?\}", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces -private static Regex sreg6 = new Regex(@"(\\[^' \\?\r\n\t]+)(?=\\)"); // add space after token if followed by token -private static Regex sreg7 = new Regex(@"(\\[^ \\?\r\n\t]+ )"); // take backslash xyz and evaluates them -private static Regex sreg8 = new Regex(@"(\\[^ \\?\r\n\t]+) (?=\\)"); // remove space between tokens -private static Regex sreg9 = new Regex(@"(\\[^ \\?\r\n\t]+) (?=\r\n)"); // remove space before /r/n - - - // This is used in the DataLoader - public static string StaticStripRtfCommands(string rtf) - { - // replace \{ & \} with (![ & (!] respectively and then redo at end. The curly braces - // are rtf so were getting removed and/or not handled correctly. - string retval = rtf.Replace(@"\{", @" (!["); - retval = retval.Replace(@"\}", @" (!]"); - - // For hardspaces, the windows richtextbox does some 'quirky' things: - // A unicode representation of \u160? is sent INTO the rtb. Coming out, - // that \u160? was translated to a \~ (by the underlying windows rtb). - // Note that if the \~ is sent to the rtb, it is treated as a regular space, - // i.e. no longer a hardspace, and actually is converted to a regular space. - // SO, on the way out, convert any \~ to \u160? - retval = retval.Replace(@"\~", @"\u160?"); - - // remove carriage return/newlines after \par commands (these are introduced by rtb - // for hard returns, goes into rtb as \par and comes out as \par\r\n): - retval = sreg1.Replace(retval, "\\par "); - - retval = retval.Replace("\\v0\r\n", "\\v0 "); // Replace Carriage Return and Newline after comment - retval = sreg2.Replace(retval,""); // Strip Carriage Returns and Newlines - retval = sreg3.Replace(retval, "$1"); // Strip Opening and Closing Braces - retval = sreg4.Replace(retval, ""); // Strip Clauses - remove anything from curly braces - retval = sreg5.Replace(retval, ""); // Strip Clauses - remove anything from curly braces - retval = sreg6.Replace(retval,"$1 "); // add space after token if followed by token - retval = sreg7.Replace(retval, new MatchEvaluator(StaticReplaceRTFClause)); // take backslash xyz and evaluates them - retval = sreg8.Replace(retval, "$1"); // remove space between tokens - retval = sreg9.Replace(retval, "$1"); // remove space before /r/n - - //retval = Regex.Replace(retval, @"\\par\r\n(?!\\)", "\\par "); - ////retval = Regex.Replace(retval, @"\\par\r\n(?=\\)", "\\par"); - - //retval = retval.Replace("\\v0\r\n", "\\v0 "); // Replace Carriage Return and Newline after comment - //retval = Regex.Replace(retval, @"[\r\n]", "", RegexOptions.Singleline); // Strip Carriage Returns and Newlines - //retval = Regex.Replace(retval, @"^\{(.*)\}$", "$1", RegexOptions.Singleline); // Strip Opening and Closing Braces - //retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - //retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - ////retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+)\\f[0-9] ", "$1 "); // remove font command - if next to another command, keep other command and space - //// OLD: The following two lines are replaced by the more generic replace above. - ////retval = Regex.Replace(retval, @"\\v\\f[0-9] ", "\\v "); // remove font command - if next to Comment keep space - ////retval = Regex.Replace(retval, @"\\line\\f[0-9] ", "\\line "); // remove font command - if next to Line keep space - ////retval = Regex.Replace(retval, @"\\f[0-9] ", ""); // remove font command with ending space - ////retval = Regex.Replace(retval, @"\\f[0-9]", ""); // remove font command without ending space - ////retval = Regex.Replace(retval, @"\\par ", "\r\n"); - //retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+)(?=\\)", "$1 "); // add space after token if followed by token - ////retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+)(\\)", "$1 $2"); // take backslash xyz and evaluates them - //retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+ )", new MatchEvaluator(StaticReplaceRTFClause)); // take backslash xyz and evaluates them - //retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+) (?=\\)", "$1"); // remove space between tokens - //retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+) (?=\r\n)", "$1"); // remove space before /r/n - - // remove a space if there is one as the first character or the last character - //if (retval[0] == ' ') retval = retval.Remove(0, 1); - //retval = retval.TrimEnd(' '); - // remove \r\n at end of string if the string has 2 or more characters - if (retval.Length > 1 && retval.Substring(retval.Length - 2, 2) == "\r\n") retval = retval.Remove(retval.Length - 2, 2); - // remove \par at end of string if the string has 4 or more characters - //if (retval.Length > 3 && retval.Substring(retval.Length - 4, 4) == @"\par") retval = retval.Remove(retval.Length - 4, 4); - // remove a space following \r\n - //retval = Regex.Replace(retval, "\r\n ", "\r\n"); - ////if there are still spaces following \r\n, then probable in a table - we need to put the space back - //retval = Regex.Replace(retval, "\r\n ", "\r\n "); - - if (retval.Length == 0) return ""; - if (retval.Length > 1 && retval.Substring(retval.Length - 2, 2) == @"\v") retval = retval.Remove(retval.Length - 2, 2); - //retval = RemoveRtfStyles(retval); - //if (itmInfo != null) - // retval = StaticRemoveRtfStyles(retval, itmInfo); - - retval = retval.Replace(@" (![", @"\{"); - retval = retval.Replace(@" (!]", @"\}"); - retval = retval.TrimEnd(' '); - - // the indent character was translated in the richtextbox, change it back: - if (retval.IndexOf(@"\'05") > -1) retval = retval.Replace(@"\'05", "\x05"); - return retval; - } - #endregion - #region StyleData - //private VE_Font GetItemFont() - //{ - // VE_Font font = null; - // FormatInfo format = _MyItemInfo.ActiveFormat; - // int type = (int)_MyItemInfo.MyContent.Type; - // switch (type/10000) - // { - // case 0: // procedure - // font = format.PlantFormat.FormatData.Font; - // break; - // case 1: // section - // font = format.PlantFormat.FormatData.SectData.SectionHeader.Font; - // break; - // case 2: // step types - // int typindx = type - 20000; // what to do for other types rather than steps - // font = format.PlantFormat.FormatData.StepDataList[typindx].Font; - // break; - // } - // TextFont = font; - // return font; - //} - #endregion - #region DoListElements - private int FindTokenChar(string txt, int startIndex) - { - // 'tokens' are for symbols and links (ro & transitions). symbols are represented by \u - // and links are represented by \v \v0 - bool done = false; - while (!done) - { - int indx = txt.IndexOf('\\', startIndex); - if (indx < 0) return indx; - // see if symbol (but not underline) or another rtf command: has a 'u' - // followed by a non-underline or single quote, and if so, return it. - if (((txt[indx + 1] == 'u' && txt[indx + 2] != 'l' && txt[indx + 2] !='p')) || (txt[indx + 1] == '\'')) return indx; - // see if link - if (txt[indx + 1] == 'v') return indx; //TODO - should have ") != -1) return text; - int transitionID = Convert.ToInt32(link.Split(" ".ToCharArray())[1]); - // Find the transition - if (_MyItemInfo.MyContent.ContentTransitionCount <= 0) - { - // TODO: RHM 20100310 - _MyItemInfo.MyContent.RefreshContentTransitions(); - if (_MyItemInfo.MyContent.ContentTransitionCount <= 0) - return "*Resolved Transition Text*"; - } - foreach (TransitionInfo ti in _MyItemInfo.MyContent.ContentTransitions) - { - if (ti.TransitionID == transitionID) - { - string path = ti.ResolvePathTo(_MyFormat, _MyItemInfo, ti.TranType, ti.MyItemToID, ti.MyItemRangeID); - return path; - } - } - return text; - } - private int DoTran(string text,int index) - { - displayLinkElement vte = new displayLinkElement(); - - // determine if Range by checking for "R" after Transition (otherwise ":") - int linkindx = text.IndexOf(@"#Link", index); - vte.Type = (text[linkindx+16]=='R')?E_TextElementType.TransitionRange:E_TextElementType.Transition; - return DoLinkElements(text, index, vte); - } - - //private int GetLastLower(string stepText) - //{ - // // TO DO: need to check AlwaysUpperCase format setting - this was not yet converted as of 17Jun2010 - // // if (AlwaysUpperCase[steptype]) return (stepText.Length-1); - - // int idx = stepText.Length - 1; - // while (idx >= 0 && !(char.IsLower(stepText[idx]) && stepText[idx] != 's')) idx--; - // if (idx < 0) idx = stepText.Length - 1; // entire string is uppercased set return value to end of string - // return idx; - //} - - //private bool IsSpaceOrHardSpace(char ch) - //{ - // string spaces = @" \u160?"; - // return (spaces.IndexOf(ch) >= 0); - //} - private string DoROFormatFlags(string roText, string beforeRO, string afterRO, bool isSetpoint) - { - string rtnstr = roText; - // The RO text is being changed to match it's context. Since it is changed in reverse order, the text before the RO - // should ignore other RO text. - beforeRO = Regex.Replace(beforeRO, @"\", ""); // Remove any RO Values. - beforeRO = Regex.Replace(beforeRO, @"(\\[^v \\]+)*\\v(\\[^v \\]+)* .*?\\v0(\\[^v \\]+)*( |$)", ""); // Remove Comments - string allUnitAfterRo = afterRO; - afterRO = Regex.Replace(afterRO, @"(\\[^v \\]+)*\\v(\\[^v \\]+)* .*?\\v0(\\[^v \\]+)*( |$)", ""); // Remove Comments - - // Underline all ROs, values and Units - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UnderlineRo) - { - // TO DO: Need to check if step text is already underlined - if ((_MyItemInfo.FormatStepData.Font.Style & E_Style.Underline) == 0) - rtnstr = @"\ul " + rtnstr + @"\ulnone "; - } - - // UpcaseAllRoUnits - Uppercases ALL ROs units everywhere. - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UpcaseAllRoUnits) - return UpperCaseUnits(rtnstr); - - //Forces the units for a RO to be uppercased for high level steps - if (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.CapHighRo &&_MyItemInfo.IsHigh) - return UpperCaseUnits(rtnstr); - - // Caps ROs anywhere if no lower case text follows - // and an upper case letter immediately precedes the RO. - - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.CapSPIfLastLower && - !Regex.IsMatch(afterRO, @".*(? 0 && !IsSpaceOrHardSpace(stepText[indx])) indx--; // find character before RO - //while (indx2 <= stepText.Length && !IsSpaceOrHardSpace(stepText[indx2])) indx2++; // find character after RO - - //if (indx >= 0 && char.IsUpper(stepText[indx]) && indx2 > GetLastLower(stepText)) - // doUpCase = true; - return UpperCaseUnits(rtnstr); - } - - // If a RO follows a "- " then it will be uppercased - if (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UpRoAftrDash && Regex.IsMatch(beforeRO, @".*\\u8209\?( |\\u160\?)")) - { - //int indx = startLinkText - 1; - //while (indx > 0 && !IsSpaceOrHardSpace(stepText[indx])) indx--; // find character before RO - //string prefix = indx >= 7?stepText.Substring(indx-7,8):""; - //doUpCase = (prefix == @"\u8209? "); // Dash character before RO - return UpperCaseUnits(rtnstr); - } - // For Wolf Creek, the "- " should be right before the link. This ro format flag was introduced - // for Wolf Creek only because a problem was found with some of their data that was incorrectly - // processed through the 'UpRoAftrDash' flag. That flag was more general, i.e. upper cased units - // if there was a dash and then a space or hard space anywhere before the RO text. The original - // 16bit flag was more specific. Other plants that were released had the UpRoAftrDash, but - // we didn't want to change their formats since they had gone through testing. - if (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UpRoImmAftrDashSpace && Regex.IsMatch(beforeRO, @".*\\u8209\?( )")) - return UpperCaseUnits(rtnstr); - - // Uppercase the RO Unit if the previous letter is uppercase - if (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UpRoIfPrevUpper && char.IsUpper(LastAlpha(beforeRO))) - { - //doUpCase = (char.IsUpper(stepText[startLinkText - 1])); - return UpperCaseUnits(rtnstr); - - } - - //CapFirstLetterInHighRO - Cap only the first letters of the units in a high level RO - // note: used in FLP (Turkey Point) format - if (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.CapFirstLetterInHighRO && _MyItemInfo.IsHigh) - { - int idx = 0; - string tstr = ""; - while (idx < rtnstr.Length && !char.IsLetter(rtnstr[idx])) tstr += rtnstr[idx++].ToString(); - if (idx < rtnstr.Length) - { - tstr += char.ToUpper(rtnstr[idx]).ToString(); - if (idx + 1 < rtnstr.Length) - tstr += rtnstr.Substring(idx + 1); - } - rtnstr = tstr; - } - - return rtnstr; - } - - private string RemoveMultipleUnits(string prevValue, string rtnstr) - { - //In a sequence of RO values, the unit appears with every value - //(e.g., "25 gpm and 30 gpm" vs. "25 and 30 gpm") - if (!_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.AllUnits && prevValue != null) - { - string units = null; - //Match m = Regex.Match(prevValue, "[^0-9]"); - int ind = prevValue.LastIndexOfAny("0123456789".ToCharArray()); - if (ind>=0) - { - string mynum = prevValue.Substring(0, ind+1); - // Handle Hex characters which are part of the Units such as the degree character - if (Regex.IsMatch(mynum, @".*\\'[A-Fa-f0-9]{2,2}$")) - ind -= 4; - units = prevValue.Substring(ind+1); - if (rtnstr.EndsWith(units) && units != "")// Don't do this if there are no units - { - rtnstr = rtnstr.Replace(units, ""); - } - } - } - return rtnstr; - } - /// - /// Uppercase alphabetical strings excluding any RTF token - /// - /// - /// - private string MatchEvaluatorUppercaseROUnits(Match match) - { - if (match.Value[0] == '\\') // If the previous character is a backslash then this is an RTF token - return match.Value; - return match.Value.ToUpper(); - } - Regex _RegExUppercaseROUnits = new Regex("(^|[^a-zA-Z])[a-zA-Z]+"); - private string UpperCaseUnits(string rtnstr) - { - // Uppercase Units - rtnstr = _RegExUppercaseROUnits.Replace(rtnstr, new MatchEvaluator(MatchEvaluatorUppercaseROUnits)); - // After converting the value to uppercase, change X10 to x10 to handle Fortran Formatted numbers - return rtnstr.Replace("X10", "x10"); - } - - // Find the last Alphabetical character - private char LastAlpha(string beforeRO) - { - Match m = Regex.Match(beforeRO, ".*([a-zA-Z])[^a-zA-Z]*"); - if (m.Success) return m.Groups[1].ToString()[0]; - return '\0'; - } - - private int DoLinkElements(string text, int index, displayLinkElement vte) - { - // Find the 'end comment' for this 0 && (endTextIndx < 0 || endTextIndx > endTextIndx2)) - endTextIndx = endTextIndx2; - vte.Text = text.Substring(endStartTknIndx + startAdj, endTextIndx - endStartTknIndx - startAdj); // 4 for \v0 - - // Now get the link part. It can be terminated by a '\v0' or an [END> - int endLinkIndxV = text.IndexOf(@"\v0 ", linkIndx); - if (endLinkIndxV == -1) endLinkIndxV = text.IndexOf(@"\v0", linkIndx); // at end of string - int endLinkIndxE = text.IndexOf(@"[END>", linkIndx); - int endLinkIndx = (endLinkIndxV < endLinkIndxE) ? endLinkIndxV : endLinkIndxE; - vte.Link = text.Substring(linkIndx + 6, endLinkIndx - linkIndx - 6); // 6 for #Link: - - string tmptxt = null; - if (vte.Type != E_TextElementType.ReferencedObject) - { - tmptxt = FixTransition(vte.Link, vte.Text); - vte.Text = tmptxt; - } - //else - //{ - // tmptxt = DoROFormatFlags(vte.Text, text, index, endLinkIndx); - // vte.Text = tmptxt; - //} - - // Now get the entire text & link. Account for various ending possibilities: - // ends with '\v0\'; ends with '\v0 '; ends with '\v0' (end of string); - // ends with '[END>' if two in a row - will have ", endLinkIndx + 3); // get past end of link - int endComment = text.IndexOf(@"\v0", endToken); - - int rettoken = 0; - int retlen = 4; - if (endComment + 3 == text.Length) retlen = 3; - else if (text[endComment + 3] == '\\') retlen = 3; - vte.TextAndLink = text.Substring(index, endComment - index + retlen); - rettoken = endComment + retlen; - if (vte.Type != E_TextElementType.ReferencedObject) - { - if (vte.TextAndLink.Contains("(Resolved Transition Text)")) - vte.TextAndLink = vte.TextAndLink.Replace("(Resolved Transition Text)", tmptxt); - else - if (vte.Text != tmptxt) - vte.Text = tmptxt; - } - DisplayTextElementList.Add(vte); - return rettoken; - } - private int DoSymbol(string text, int startIndex, int index) - { - displayTextElement vte = new displayTextElement(); - vte.Type = E_TextElementType.Symbol; - // symbols are the unicode/rtf command. A symbol can be represented by \'xy or - // in the text from the database \uxyz?. If the \'xy is used the length of the - // symbol number will always be two, otherwise find the index of the '?' to - // find the end. - int endindx = -1; - if (text[index + 1] == '\'') endindx = index + 3; - else endindx = text.IndexOf("?", index); - vte.Text = text.Substring(index, endindx - index + 1); - DisplayTextElementList.Add(vte); - return endindx+1; - } - #endregion - #region ReplaceWords - #region commented out - //private string DoReplaceWords(string Text) - //{ - // ReplaceStrList rsl = _MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList; - // foreach (ReplaceStr rs in rsl) - // { - // if (_MyItemInfo.MyContent.Type < 20000) return Text; // for now only replace in steps. - // bool replaceit = false; - - // if (_MyItemInfo.ItemID == 2557) Console.WriteLine("here"); - // // note that the order of this check is important. Check in this order... - // // background here - // if (_MyItemInfo.IsHigh && (rs.Flag & E_ReplaceFlags.High)>0) replaceit = true; - // else if ((_MyItemInfo.IsTable || _MyItemInfo.IsFigure) && (rs.Flag & E_ReplaceFlags.Table) > 0) replaceit = true; - // else if (_MyItemInfo.IsInRNO && (rs.Flag & E_ReplaceFlags.RNO) > 0) replaceit = true; - // else if (_MyItemInfo.IsCaution && (rs.Flag & E_ReplaceFlags.Caution) > 0) replaceit = true; - // else if (_MyItemInfo.IsNote && (rs.Flag & E_ReplaceFlags.Note) > 0) replaceit = true; - // else if (_MyItemInfo.IsStepPart && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // //else if (_MyItemInfo.IsInFirstLevelSubStep && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // else if (_MyItemInfo.IsAccPages & (rs.Flag & E_ReplaceFlags.Attach) > 0) replaceit = true; - - // if (replaceit) - // { - // // CASEINSENS: Do ReplaceWords for all words that match, regardless of case, and replace - // // with the ReplaceWith string as is - // if ((rs.Flag & E_ReplaceFlags.CaseInsens) > 0) - // { - // //string res = ""; - // //string fortest = Text.ToUpper(); - // ////string pat = @"(?<=\W|^)" + rs.ReplaceWord.ToUpper() + @"(?=\W|$)"; - // //// jsj 07Jun2010 HardSpaces defeat replaceword logic - // //string pat = @"(?<=\W|^)(? 0) - // { - // // only in Maine Yankee - we don't need to do this one. - // } - // // CASEINSENSFIRST: Do ReplaceWords for all words that exactly match the ReplaceWord, - // // except the case where the first character may be different - // else if ((rs.Flag & E_ReplaceFlags.CaseInsensFirst) > 0) - // { - // // only used in V.C. Summer - we don't need to do this either. - // } - // else - // { - // // If there are Regex Control Characters '\[]()' prefix them with backslash - // string replaceWord = Regex.Replace(rs.ReplaceWord, @"[[\]\\()]", @"\$0"); - // //string pat = @"(?<=\W|^)" + replaceWord + @"(?=\W|$)"; - // // jsj 07Jun2010 HardSpaces defeat replaceword logic - // //string pat = @"(?<=\W|^)(? 0) replaceit = true; - // else if ((_MyItemInfo.IsTable || _MyItemInfo.IsFigure) && (rs.Flag & E_ReplaceFlags.Table) > 0) replaceit = true; - // else if (_MyItemInfo.IsInRNO && (rs.Flag & E_ReplaceFlags.RNO) > 0) replaceit = true; - // else if (_MyItemInfo.IsCaution && (rs.Flag & E_ReplaceFlags.Caution) > 0) replaceit = true; - // else if (_MyItemInfo.IsNote && (rs.Flag & E_ReplaceFlags.Note) > 0) replaceit = true; - // else if (_MyItemInfo.IsStepPart && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // //else if (_MyItemInfo.IsInFirstLevelSubStep && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // else if (_MyItemInfo.IsAccPages & (rs.Flag & E_ReplaceFlags.Attach) > 0) replaceit = true; - - // if (replaceit) - // { - // // CASEINSENS: Do ReplaceWords for all words that match, regardless of case, and replace with the ReplaceWith string as is - // RegexOptions myOptions = (rs.Flag & E_ReplaceFlags.CaseInsens) == E_ReplaceFlags.CaseInsens ? RegexOptions.IgnoreCase : RegexOptions.None; - // string replaceWord = Regex.Replace(rs.ReplaceWord, @"[[\]\\()]", @"\$0"); - // string pat = @"(?<=\W|^)(? dicReplaceRegex = new Dictionary(); - private static bool? _ProcessReplaceWords; - public static bool ProcessReplaceWords - { - get - { - if (_ProcessReplaceWords == null) - { - string[] parameters = System.Environment.CommandLine.Split(" ".ToCharArray()); - _ProcessReplaceWords = true; - foreach (string parameter in parameters) - { - if (parameter.ToUpper() == "/NRW") - _ProcessReplaceWords = false; - } - } - return (bool) _ProcessReplaceWords; - } - } - private string DoReplaceWords2(string Text) - { - if (!ProcessReplaceWords) return Text; - if (_MyItemInfo.MyContent.Type < 20000) return Text; // for now only replace in steps. - FoundMatches myMatches = new FoundMatches(Text, _MyItemInfo.FormatStepData.Font, _MyItemInfo); - // Exclude Link Text from Replace Word process - myMatches.AddLink(regFindLink, _MyFormat.PlantFormat.FormatData.SectData.ReplaceWordsInROs, _MyItemInfo.MyProcedure.MyDocVersion); - ReplaceStrList rsl = _MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList; - // ReplaceStrData xml node is empty, it does the inheritance and gets the 'base' format's list. - if (rsl.Count==1 && (rsl[0].ReplaceWord == null || rsl[0].ReplaceWord == "")) return Text; - // Loop through text looking for words to be replaced - Dictionary partialReplaceList = new Dictionary(); - Dictionary shouldReplace = new Dictionary(); - //int profileDepth = ProfileTimer.Push(">>>> DoReplaceWords2.ForLoop"); - foreach (ReplaceStr rs in rsl) - { - bool dopartial = (rs.Flag & E_ReplaceFlags.Partials) == E_ReplaceFlags.Partials; - // note that the order of this check is important. Check in this order... - // background here - if (!shouldReplace.ContainsKey(rs.Flag)) - { - //int profileDepth2 = ProfileTimer.Push(">>>> Before ShouldReplaceIt"); - shouldReplace.Add(rs.Flag, ShouldReplaceIt(rs.Flag)); - //ProfileTimer.Pop(profileDepth2); - } - bool replaceit = shouldReplace[rs.Flag]; - - if (replaceit) - { - if (!dicReplaceRegex.ContainsKey(rs)) - { - RegexOptions myOptions = (rs.Flag & E_ReplaceFlags.CaseInsens) == E_ReplaceFlags.CaseInsens ? RegexOptions.IgnoreCase : RegexOptions.None; - if (dopartial) - { - dicReplaceRegex.Add(rs, new Regex(rs.ReplaceWord, myOptions)); - } - else - { - //int profileDepth3 = ProfileTimer.Push(">>>> DoReplaceWords2.BuildMatch"); - // CASEINSENS: Do ReplaceWords for all words that match, regardless of case, and replace with the ReplaceWith string as is - //RegexOptions myOptions = (rs.Flag & E_ReplaceFlags.CaseInsens) == E_ReplaceFlags.CaseInsens ? RegexOptions.IgnoreCase & RegexOptions.Singleline : RegexOptions.None & RegexOptions.Singleline; - string replaceWord = Regex.Replace(rs.ReplaceWord, @"[[\]\\()]", @"\$0"); - // if first or last character in replaceword is a non-word character, for example, ',', ')', or '.', - // don't use the \W, i.e. don't bother to look for a non-word character. - string wordMatchBeg = Regex.IsMatch(replaceWord.Substring(0, 1), @"\W") ? "" : @"(?<=\W|^)"; - string wordMatchEnd = Regex.IsMatch(replaceWord.Substring(replaceWord.Length - 1, 1), @"\W") ? "" : @"(?=\W|$)"; - string pat = wordMatchBeg + @"(?>>> DoReplaceWords2.Partial"); - if (!dopartial) myMatches.Add(dicReplaceRegex[rs], rs); - else partialReplaceList.Add(rs, dicReplaceRegex[rs]); - //ProfileTimer.Pop(profileDepth4); - } - catch (Exception ex) - { - Console.WriteLine("{0},'{1}',{2},'{3}'", _MyItemInfo.ActiveFormat.Name, rs.ReplaceWord, ex.GetType().Name, ex.Message); - } - dopartial = false; - } - } - //ProfileTimer.Pop(profileDepth); - //int profileDepth5 = ProfileTimer.Push(">>>> DoReplaceWords2.ReplaceMatches"); - - Text = myMatches.ReplaceMatches(); - //ProfileTimer.Pop(profileDepth5); - Text = Text.Replace(@"\xA0", @"\u160?"); //replace hard space - try - { - foreach (ReplaceStr prs in partialReplaceList.Keys) - Text = partialReplaceList[prs].Replace(Text, prs.ReplaceWith); - } - catch (Exception ex) // Don't crash on a format issue. - { - _MyLog.WarnFormat("{0} - {1}", ex.GetType().Name, ex.Message); - } - return Text; - } - private bool ShouldReplaceIt(E_ReplaceFlags? myFlag) - { - bool replaceit= false; - if (_MyItemInfo.IsHigh && (myFlag & E_ReplaceFlags.High) > 0) - { - replaceit = true; - } - else if ((_MyItemInfo.IsTable || _MyItemInfo.IsFigure) && (myFlag & E_ReplaceFlags.Table) > 0) - { - replaceit = true; - } - else if (_MyItemInfo.IsInRNO && (myFlag & E_ReplaceFlags.RNO) > 0) - { - replaceit = true; - } - else if (_MyItemInfo.IsCaution && (myFlag & E_ReplaceFlags.Caution) > 0) - { - replaceit = true; - } - else if (_MyItemInfo.IsNote && (myFlag & E_ReplaceFlags.Note) > 0) - { - replaceit = true; - } - else if (_MyItemInfo.IsStepPart && !_MyItemInfo.IsHigh && (myFlag & E_ReplaceFlags.Substep) > 0) - { - replaceit = true; - } - //else if (_MyItemInfo.IsInFirstLevelSubStep && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - else if (_MyItemInfo.IsAccPages & (myFlag & E_ReplaceFlags.Attach) > 0) - { - replaceit = true; - } - return replaceit; - } - #region notused - static Regex regFindLink = new Regex(@"\", RegexOptions.Singleline); - private string ReplaceWord(string text, string replace, string with, RegexOptions regexOptions) - { - MatchCollection myMatches = Regex.Matches(text, replace, regexOptions); - MatchCollection myLinks = regFindLink.Matches(text); - for (int i = myMatches.Count - 1; i >= 0; i--) - { - Match myMatch = myMatches[i]; - if (!PartOfLinkText(myMatch, myLinks)) - text = text.Substring(0, myMatch.Index) + with + text.Substring(myMatch.Index + myMatch.Length); - } - return text; - } - - private bool PartOfLinkText(Match myMatch, MatchCollection myLinks) - { - foreach (Match myLink in myLinks) - if (myMatch.Index > myLink.Index && myMatch.Index < (myLink.Index + myLink.Length)) - return true; - return false; - } - #endregion - #endregion - } - #region displayTextElementClass - public enum E_TextElementType : uint - { - Text = 0, - Transition = 1, - TransitionRange = 2, - ReferencedObject = 3, - Symbol = 4 - }; - public class displayTextElement - { - private E_TextElementType _Type; - public E_TextElementType Type - { - get { return _Type; } - set { _Type = value; } - } - protected string _Text; - virtual public string Text - { - get { return _Text; } - set { _Text = value; } - } - } - public class displayLinkElement : displayTextElement - { - private string _Link; - public string Link - { - get { return _Link; } - set { _Link = value; } - } - private string _TextAndLink; - public string TextAndLink - { - get { return _TextAndLink; } - set { _TextAndLink = value; } - } - /// - /// Text - this should parse the text and return the results - /// - override public string Text - { - get - { - if (_TextAndLink != null) - { - Match m = Regex.Match(_TextAndLink, @"", RegexOptions.Singleline); - if(m.Groups[3].Value == " ") - return m.Groups[4].Value; - return m.Groups[3].Value + m.Groups[4].Value; - } - return _Text; - } - set - { - if (_TextAndLink != null) - { - Match m = Regex.Match(_TextAndLink, @"", RegexOptions.Singleline); - int myIndex = m.Groups[4].Index; - int myLength = m.Groups[4].Length; - if (m.Groups[3].Value != " ") - { - myIndex = m.Groups[3].Index; - myLength += m.Groups[3].Length; - } - string gg = _TextAndLink.Substring(myIndex, myLength); - string newvalue = value.Replace("{", @"\{").Replace("}", @"\}"); - _TextAndLink = _TextAndLink.Substring(0, myIndex) + newvalue + _TextAndLink.Substring(myIndex + myLength); - } - _Text = value; - } - } - } - #endregion - public class FoundMatches : SortedList - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private string _Text; - private VE_Font _Font; - private ItemInfo _MyItemInfo; - public FoundMatches(string text, VE_Font font, ItemInfo myItemInfo) - : base() - { - _Text = text; - _Font = font; - _MyItemInfo = myItemInfo; - } - public void Add(Regex myRegEx, ReplaceStr myWord) - { - MatchCollection myMatches = myRegEx.Matches(_Text); - foreach (Match myMatch in myMatches) - Add(myMatch, myWord); - } - public void AddLink(Regex myRegEx, bool replaceWordsInROs, DocVersionInfo myDocVersion) - { - MatchCollection myMatches = myRegEx.Matches(_Text); - foreach (Match myMatch in myMatches) - { - if (!replaceWordsInROs || IsTransition(myMatch.Value) || IsSetpointRO(myMatch.Value, myDocVersion)) - Add(myMatch, null);// Exclude from Replace Words - } - } - private bool IsTransition(string link) - { - return link.Contains("#Link:Transition"); - } - private static Regex regRefObj = new Regex(@"\#Link\:ReferencedObject:([0-9]*) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline); - private static bool IsSetpointRO(string link, DocVersionInfo myDocVersion) - { - Match myMatch = regRefObj.Match(link); - if (myMatch.Success) - { - int dbid = System.Convert.ToInt32(myMatch.Groups[2].Value.Substring(0, 4), 16); - int rodbid = int.Parse(myMatch.Groups[3].Value); - ROFstInfo myROFst = myDocVersion.GetROFst(rodbid); - return myROFst.IsSetpointDB(dbid, myDocVersion); - } - return false; - } - public void Add(Match myMatch, ReplaceStr myWord) - { - // If one already exists for this location, then don't add another. - if (ContainsKey(myMatch.Index)) return; - // Start by Adding it. - base.Add(myMatch.Index, new FoundMatch(myMatch, myWord)); - // Now see what I can do with it. - int index = this.IndexOfKey(myMatch.Index); - if (index > 0) // If this match is contained within the previous match remove it - { - FoundMatch previousMatch = Values[index - 1]; - if (previousMatch.MyMatch.Index + previousMatch.MyMatch.Length > myMatch.Index) - Remove(myMatch.Index); - } // If the next match is contained within this match, remove the next match - while (index < Count - 1 && Values[index + 1].MyMatch.Index < (myMatch.Index + myMatch.Length)) - Remove(Values[index + 1].MyMatch.Index); - } - public bool StartsWith(string text, int index, params string[] examples) - { - foreach (string str in examples) - if (str.Length == index && str == text.Substring(0, str.Length)) return true; - return false; - } - public string ReplaceMatches() - { - int offset = 0; - string text = _Text; - foreach (FoundMatch foundMatch in Values) - { - if (foundMatch.MyWord != null) - { - if (VerifyNoHardSpace(text, foundMatch, offset) && VerifyNoLink(text, foundMatch, offset)) - { - //if(offset != 0 || foundMatch.MyMatch.Index != 0 || !foundMatch.MyWord.ReplaceWith.StartsWith(@"{\par}")) - //{ - if (((foundMatch.MyWord.Flag & E_ReplaceFlags.DiffUnit) == 0) || DiffUnit(foundMatch.MyWord.ReplaceWord,_MyItemInfo,"UNIT ")) - { - string with = foundMatch.MyWord.ReplaceWith; - if (offset == 0 && with.StartsWith(@"{\par}")) - if(StartsWith(text,foundMatch.MyMatch.Index,"",@"\ul ",@"\b ",@"* ",@"* \ul ",@"* \b ",@"*",@"*\ul ",@"*\b ")) - with = with.Replace(@"{\par}", ""); - bool IsBold = ((_Font.Style & E_Style.Bold) == E_Style.Bold) || - (_MyItemInfo.FormatStepData != null && _MyItemInfo.FormatStepData.BoldHighLevel && _MyItemInfo.IsRNOPart && _MyItemInfo.MyParent.IsHigh ); - if (IsBold && with.Contains(@"\b ")) - { - with = with.Replace(@"\b ",""); - with = with.Replace(@"\b0 ",""); - } - bool IsUnderline = (((_Font.Style & E_Style.Underline) == E_Style.Underline) && with.Contains(@"\ul ")); - // handle where replace words replaces a string with 'underline on'string'underline off', for example Point Beach - // had replaced OR's turning underline off in the middle of a transition, "EOP-0 UNIT 1, RACTORE TRIP OR SAFETY INJECTION". - if (!IsUnderline) - { - int repidxulnone = text.LastIndexOf(@"\ulnone", foundMatch.MyMatch.Index + offset); - int repidxst = text.LastIndexOf(@"\ul", foundMatch.MyMatch.Index + offset); - if (repidxulnone > 0) - { - repidxst = text.Substring(repidxulnone + 7, foundMatch.MyMatch.Index + offset - (repidxulnone + 7)).LastIndexOf(@"\ul"); - if (repidxst >= 0) - repidxst += (repidxulnone + 7); - } - if (repidxst >= 0) IsUnderline = true; - } - if (IsUnderline) - { - with = with.Replace(@"\ul ", ""); - with = with.Replace(@"\ulnone ", ""); - } - string preceedingText = text.Substring(0, offset + foundMatch.MyMatch.Index); - int ndxBold = preceedingText.LastIndexOf(@"\b"); - if (ndxBold > -1 && preceedingText.Length>( ndxBold + 2) && preceedingText[ndxBold + 2] != '0' && with.Contains(@"\b ")) - { - with = with.Replace(@"\b ",""); - with = with.Replace(@"\b0 ",""); - } - int ndxULine = preceedingText.LastIndexOf(@"\ul"); - if (ndxULine > -1 && preceedingText[ndxULine + 3] != 'n' && with.Contains(@"\ul ")) - { - with = with.Replace(@"\ul ", ""); - with = with.Replace(@"\ulnone ", ""); - } - - text = text.Substring(0, offset + foundMatch.MyMatch.Index) + with + text.Substring(offset + foundMatch.MyMatch.Index + foundMatch.MyMatch.Length); - //offset += foundMatch.MyWord.ReplaceWith.Length - foundMatch.MyMatch.Length; - offset += with.Length - foundMatch.MyMatch.Length; - } - } - } - } - return text; - } - private bool VerifyNoLink(string text, FoundMatch fndMatch, int offset) - { - if (text.Substring(offset + fndMatch.MyMatch.Index, fndMatch.MyMatch.Length) == "START") - if (fndMatch.MyMatch.Index > 0 && offset + fndMatch.MyMatch.Index + fndMatch.MyMatch.Length < text.Length && - text.Substring(offset + fndMatch.MyMatch.Index - 1, fndMatch.MyMatch.Length + 2) == " _DisplayTextElementList; - public List DisplayTextElementList - { - get { return _DisplayTextElementList; } - set { _DisplayTextElementList = value; } - } - // dictionary for the font table for this item. Note that this may - // go away (it is not really used). - private Dictionary _dicRtfFontTable; - public Dictionary dicRtfFontTable - { - get { return _dicRtfFontTable; } - set { _dicRtfFontTable = value; } - } - private VE_Font _textFont; // Font from format for this item - public VE_Font TextFont - { - get { return _textFont; } - set { _textFont = value; } - } - private bool PrintingSmartTemplate = false; - public string StartText; - public string OriginalText; // compare for save to see if change for links. - private FormatInfo _MyFormat; - #endregion - #region Constructors - /// - /// DisplayText constructor: - /// Creates a DisplayText object that converts the database text into rtf text - /// Arguments are: - /// ItemInfo itemInfo - the item whose text will be resolved - /// E_EditPrintMode ep_mode - edit or print. - /// E_ViewMode vw_mode - view or edit. - /// bool noEdit - flags whether to edit or not (used to set data in - /// rtb as resolved replacewords for non-active rtb. - /// E_FieldToEdit fieldToEdit - identifies the field to edit (number or text) - /// bool colorLinks - whether to add color to links - /// - public DisplayText(ItemInfo itemInfo, E_EditPrintMode epMode, E_ViewMode vwMode, bool noEdit,E_FieldToEdit fieldToEdit, bool colorLinks, string prefix, string suffix) - { - _FieldToEdit = fieldToEdit; - _MyItemInfo = itemInfo; - OriginalText = InfoText; - TextFont = itemInfo.GetItemFont();//GetItemFont(); - // if in print mode, and this is the HLS of a smart template (checklist formats), add a space before and - // after the HLS text - this allows for the vertical bar characters to be added. - //if (itemInfo.IsStep && itemInfo.FormatStepData.UseSmartTemplate && epMode == E_EditPrintMode.Print) Console.WriteLine("here"); - string addSpace = (itemInfo.IsStep && itemInfo.FormatStepData.UseSmartTemplate && epMode == E_EditPrintMode.Print) ? " " : ""; - string text = prefix + addSpace + InfoText + addSpace + suffix; - _MyFormat = itemInfo.ActiveFormat; - - bool tableShouldBeOutlined = (epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View || noEdit) && - (_FieldToEdit == E_FieldToEdit.StepText || _FieldToEdit == E_FieldToEdit.Text) && - (!itemInfo.IsSection && !itemInfo.IsProcedure) && (itemInfo.IsTable || itemInfo.IsFigure); - bool wordsShouldBeReplaced = epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View || noEdit; - if (_MyFormat == null) - Console.WriteLine(this._MyItemInfo.MyItemInfoUnique); - bool numbersShouldBeFormated = (!_MyFormat.PlantFormat.FormatData.SectData.StepSectionData.FortranFormatNumbers && (epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View || noEdit)); - int typ = ((int)itemInfo.MyContent.Type) % 10000; - bool tableHasBorder = tableShouldBeOutlined ? itemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[typ].Type.IndexOf(@"Borderless") < 0 : false; - bool ROsShouldBeAdjusted = wordsShouldBeReplaced; // same logical value - bool underlineAfterDashSpace = (itemInfo.FormatStepData == null) ? false : itemInfo.FormatStepData.UnderlineAfterDashSpace; - if (epMode == E_EditPrintMode.Print && _MyItemInfo.IsStep) - { - if (_MyItemInfo.FormatStepData.UseSmartTemplate) - { - // Add 2 spaces before and 1 after if there is prefix so that wrapping in RTB accounts for vertical - // lines (the 2 spaces after the first "\par " command and 1 space before 2nd "\par"). Tried other - // combinations that did not work. - if (_MyItemInfo.FormatStepData.Prefix != null && _MyItemInfo.FormatStepData.Prefix != "") - text = !_MyItemInfo.FormatStepData.Font.FontIsProportional() ? ReplaceLinesWithUnicode(_MyItemInfo.FormatStepData.Prefix) + @"\par " + text + @"\par " : - @"\par " + text + @"\par "; - if (_MyItemInfo.FormatStepData.Suffix != null && _MyItemInfo.FormatStepData.Suffix != "") - text = text + (!_MyItemInfo.FormatStepData.Font.FontIsProportional() ? ReplaceLinesWithUnicode(_MyItemInfo.FormatStepData.Suffix) : - @"\par\par\par "); - } - } - text = CreateRtf(colorLinks, text, tableShouldBeOutlined, wordsShouldBeReplaced, numbersShouldBeFormated, tableHasBorder, ROsShouldBeAdjusted, underlineAfterDashSpace); - - StartText = text; - } - private string ReplaceLinesWithUnicode(string text) - { - text = text.Replace("\x2500", @"\u9472?"); // Horizontal - text = text.Replace("\x2502", @"\u9474?"); // Vertical - text = text.Replace("\x2514", @"\u9492?"); // Bottom Left Corner - text = text.Replace("\x2518", @"\u9496?"); // Bottom Right Corner - text = text.Replace("\x2534", @"\u9524?"); // Bottom Tee - text = text.Replace("\x250c", @"\u9484?"); // Upper Left Corner - text = text.Replace("\x251c", @"\u9500?"); // Left Tee - text = text.Replace("\x2510", @"\u9488?"); // Upper Right Corner - text = text.Replace("\x252c", @"\u9516?"); // Top Tee - text = text.Replace("\x2524", @"\u9508?"); // Right Tee - text = text.Replace("\x253c", @"\u9532?"); // Plus - return text; - } - - public DisplayText(string text, VE_Font vFont, bool colorLinks) - { - TextFont = vFont; - StartText = CreateRtf(colorLinks, text, false, false, false, false, false, false); - } - public DisplayText(ItemInfo itemInfo, string text, bool colorLinks) - { - _FieldToEdit = E_FieldToEdit.Text; - _MyItemInfo = itemInfo; - OriginalText = text; - TextFont = itemInfo.GetItemFont(); - _MyFormat = itemInfo.ActiveFormat; - - bool wordsShouldBeReplaced = true; - bool numbersShouldBeFormated = !_MyFormat.PlantFormat.FormatData.SectData.StepSectionData.FortranFormatNumbers; - int typ = ((int)itemInfo.MyContent.Type) % 10000; - bool ROsShouldBeAdjusted = wordsShouldBeReplaced; // same logical value - bool underlineAfterDashSpace = (itemInfo.FormatStepData == null) ? false : itemInfo.FormatStepData.UnderlineAfterDashSpace; - - text = CreateRtf(colorLinks, text, false, wordsShouldBeReplaced, numbersShouldBeFormated, false, ROsShouldBeAdjusted, underlineAfterDashSpace); - StartText = text; - // Shearon Harris Tables are Bold - if (itemInfo.IsTable && (TextFont.Style & E_Style.Bold) == E_Style.Bold) - { - // Strip out Bold OFF commands - text = text.Replace(@"\b0 "," "); - text = text.Replace(@"\b0", ""); - // Insert a Bold ON command at the beginning of the printable text. - StartText = Regex.Replace(text, @"(\\viewkind.*?)(?= |\\u[0-9]+?|\\'[0-9A-F])", @"$1\b"); - } - } - private bool InLinkedText(string text, int idx) - { - MatchCollection mc = Regex.Matches(text, @""); - if (mc.Count == 0) return false; - foreach (Match m in mc) - if (m.Index < idx && m.Index + m.Length > idx) return true; - return (false); - } - private string CreateRtf(bool colorLinks, string text, bool tableShouldBeOutlined, bool wordsShouldBeReplaced, bool numbersShouldBeFormated, bool tableHasBorder, bool ROsShouldBeAdjusted, bool underlineAfterDashSpace) - { - // Adjust RO display - if (ROsShouldBeAdjusted) - { - try // Added try/catch because an unresolved RO Link was causing a failure. - { - text = DoROAdjustments(text); - } - catch (Exception ex) - { - if (_MyItemInfo != null) - { - _MyLog.ErrorFormat("<<< ERROR >>> Error doing DoROAdjustments\r\n==>'RO Adjustments Error',{0},'{1}','{2}','{3}'" - , _MyItemInfo.ItemID, _MyItemInfo.MyDocVersion.MyFolder.Name, _MyItemInfo.ShortPath, ex.Message); - } - else - _MyLog.Error("DisplayText.CreateRTF Error doing DoROAdjustments", ex); - - } - } - // if in print mode, view mode, or non-active richtextbox do replace words. Only if in - // actual edit mode are replace words left as is. - // But don't do ReplaceWords if the TurnOffReplaceWords format flag is set - if (wordsShouldBeReplaced && !_MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.TurnOffReplaceWords) - text = DoReplaceWords2(text); - if (_MyItemInfo != null) - { - text = Regex.Replace(text, @"\", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Number, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)ID)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_ID, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)NAME)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Name, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)TEXT)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Text, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)NUMBER)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Number, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)OTHER ID)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Other_Unit_ID, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)OTHER NAME)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Other_Unit_Name, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)OTHER TEXT)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Other_Unit_Text, RegexOptions.IgnoreCase); - text = Regex.Replace(text, @"\<(U(-|\\u8209\?)OTHER NUMBER)\>", _MyItemInfo.MyDocVersion.DocVersionConfig.Other_Unit_Number, RegexOptions.IgnoreCase); - //text = DoSearchAndReplace(text, "", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_ID); - text = text.Replace(@"", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_ProcedureSetID); - //text = text.Replace("", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Number); - } - // Adjust RO display - if (ROsShouldBeAdjusted) - text = DoTransitionAdjustments(text, _MyItemInfo.ActiveFormat.PlantFormat.FormatData.TransData.BoldTransition || (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.TransData.BoldTransitionExceptHLS && !_MyItemInfo.IsHigh)); - // add colors around links: - if (colorLinks) - text = DoColorLinks(text); - //Console.WriteLine(text); - // adjust formatting of exponents - if (numbersShouldBeFormated) - text = DoFortranFormat(text); - // determine whether the table/figure should be outlined: - if (tableShouldBeOutlined) - { - OutlineRTFTable myTable = new OutlineRTFTable(text, tableHasBorder); - // if a table has internal line draw characters, we may have to do part of 'OutlineTable' - // to convert dashes and vertical bars to line draw characters. - if (tableHasBorder) myTable.OutlineTable(); - text = myTable.Lines.ToString(); - } - - // if we're working with a grid it won't go thru here. - if (!text.StartsWith(@"{\rtf")) - { - // as a precaution, convert any \~ to \u160?. This is for Hard spaces. see the commentary in the - // save portion of this code for an explanation. - text = text.Replace(@"\~", @"\u160?"); - text = text.Replace("\r\n", @"\par "); - //if (text.IndexOf(@"\line") > -1) - // MessageBox.Show("Found rtf line"); - text = text.Replace(@"\line", @"\par"); - - // Now put symbol (for fixed fonts) or unicode font (proportional) around symbols - // These fonts are VESymbFix & Arial Unicode MS respectively, and the font table - // is actually defined in the StepRTB code. - int indxsym = NextUnicode(text, 0);//text.IndexOf(@"\u"); - while (indxsym != -1) - { - int incrindx = 3; - if (text[indxsym + 2] != 'l') - { - text = text.Insert(indxsym, @"\f1 "); - int indxendsym = text.IndexOfAny(@"\ ?".ToCharArray(), indxsym + 5); - if (indxendsym == -1) // must be end of line: - text = text.Insert(text.Length - 1, @"\f0 "); - else - { - if (text[indxendsym] == '?') indxendsym++; - text = text.Insert(indxendsym, @"\f0 "); // TODO: do I need a space?? - } - incrindx = 5; - } - indxsym = NextUnicode(text, indxsym + incrindx);//text.IndexOf(@"\u", indxsym + incrindx); - } - } - if (underlineAfterDashSpace) - { - MatchCollection mc = Regex.Matches(text, @"\\u8209\?\\f[0-9]+ "); - if (mc.Count > 0) - { - Match m = mc[0]; - if (!InLinkedText(text, m.Index)) - { - string str1 = text.Substring(0, m.Index + m.Length); - string str2 = text.Substring(m.Index + m.Length); - string str3 = ""; - int iTerm = FindUnderlineTerminator(str2); - if (iTerm >= 0) - { - str3 = str2.Substring(iTerm); - str2 = str2.Substring(0, iTerm); - } - str2 = str2.Replace(@"\ulnone ", ""); - str2 = str2.Replace(@"\ulnone", ""); - str2 = str2.Replace(@"\ul ", ""); - str2 = str2.Replace(@"\ul", ""); - text = str1 + @"\ul " + str2 + @"\ulnone " + str3; - } - } - } - return text; - } - private int FindUnderlineTerminator(string text) - { - int idx = -1; - UnderlineTerminateList utl = _MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.UnderlineTerminateList; - foreach (UnderlineTerminate ut in utl) - { - MatchCollection mc = Regex.Matches(text, "(? 0) - { - Match m = mc[mc.Count - 1]; - if (idx < 0 || idx > m.Index) - idx = m.Index; - } - } - return idx; - } - private string DoSearchAndReplace(string text, string find, string replace) - { - return text.Replace(find, replace); - } - private static string DoColorLinks(string text) - { - string origtext = text; - text = Regex.Replace(text, @"( -1) - { - text = text.Insert(indxend, @"\cf0"); - indxcf = text.IndexOf(@"\v0\cf1", indxend); - } - else - { - indxcf = -1; - _MyLog.WarnFormat("DisplayText.DoColorLinks Failed\r\norgitext:'{0}'\r\ntext'{1}'", origtext, text); - } - } - } - catch (Exception ex) - { - _MyLog.WarnFormat("DisplayText.DoColorLinks Failed\r\norgitext:'{0}'\r\ntext'{1}'", origtext, text); - } - return text; - } - private int NextUnicode(string text, int offset) - { - // Skip Hard Spaces - Match m = Regex.Match(text.Substring(offset), @"\\u[0-9a-fA-F]"); - while(m.Success && text.Substring(offset+m.Index).StartsWith(@"\u160")) - { - offset += m.Index + 5; - m = Regex.Match(text.Substring(offset), @"\\u[0-9a-fA-F]"); - } - if (m.Success) - return m.Index + offset; - return -1; - } - private string DoROAdjustments(string text) - { - Regex regRefObj = new Regex(@"\#Link\:ReferencedObject:([0-9]*|) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline); - string strippedText = StaticStripRtfCommands(text); - // (\\[^v \\]+)* --> look for any rtf commands (first part of lookFor) - // \\v0 --> end of comment - // (\\[^v \\]+)* --> more rtf commands ended by a space - // (.*?) --> smallest anything to that matches this based on what's next - // (\\[^v' \\]+)* --> look for rtf commands but exclude \' before the \v - // \\v(\\[^v \\]+)* --> look for rtf commands after the \v - // if it turns out that if ro's have any embedded unicode characters this needs expanded, such as /u8209? (hard hyphen) - string lookFor = string.Format(@""); - //string lookFor = string.Format(@""); - MatchCollection matches = Regex.Matches(text, lookFor); - string prevValue = null; - for (int i = matches.Count - 1; i >= 0; i--) - { - Match m = matches[i]; - if (m != null && m.Groups.Count > 6 && m.Groups[6].ToString() == "ReferencedObject") - { - // if previous processed (next ro) was found, then see if it has an 'and' between it and the previous - if (prevValue != null) - { - int endIndx = m.Index + m.Length; - string tr = text.Substring(endIndx).Replace(@"\v0","").TrimStart(); - if (!tr.ToUpper().StartsWith("AND")) prevValue = null; - } - System.Text.RegularExpressions.Group g = m.Groups[3]; - string beforeRO = StaticStripRtfCommands(text.Substring(0, g.Index)); - string afterRO = StaticStripRtfCommands(text.Substring(g.Index + g.Length)); - Match myMatch = regRefObj.Match(m.ToString()); - if(m.ToString().ToUpper().Contains("")) - _MyLog.WarnFormat("Unprocessed RO in {0},({1})",_MyItemInfo.ShortPath,g.ToString()); - int dbid = System.Convert.ToInt32(myMatch.Groups[2].Value.Substring(0, 4), 16); - int rodbid = int.Parse(myMatch.Groups[3].Value); - ROFstInfo myROFst = _MyItemInfo.MyDocVersion.GetROFst(rodbid); - bool isSetpoint=myROFst.IsSetpointDB(dbid, _MyItemInfo.MyDocVersion); - string newvalue = DoROFormatFlags(g.ToString(), beforeRO, afterRO, isSetpoint, prevValue); - if (!_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.AllUnits) prevValue = newvalue; - newvalue = DoROReplaceWords(_MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList, newvalue, _MyItemInfo.IsHigh); - if (isSetpoint) newvalue = ReplaceSpaceWithHardspace(newvalue); - if (g.ToString() != newvalue) - text = text.Substring(0, g.Index) + newvalue + text.Substring(g.Index + g.Length); - } - } - return text; - } - private string DoROReplaceWords(ReplaceStrList replaceStrList, string newvalue, bool isHigh) - { - foreach (ReplaceStr rs in replaceStrList) - { - if (((rs.Flag & E_ReplaceFlags.Setpoint) > 0) || (isHigh && (rs.Flag & E_ReplaceFlags.HLSSetpnt) > 0)) - { - newvalue = newvalue.Replace(rs.ReplaceWord, rs.ReplaceWith); - } - } - return newvalue; - } - // Replace spaces with hardspaces, but DO NOT replace the end of an Rtf Command with a hardspace - private string ReplaceSpaceWithHardspace(string newvalue) - { - string oldvalue = newvalue; - int spindx = newvalue.IndexOf(" "); - int lstindx = -1; - while (spindx >= 0) - { - if (!EndsRtfCommand(newvalue, spindx, lstindx)) - { - newvalue = newvalue.Remove(spindx, 1); - newvalue = newvalue.Insert(spindx, @"\u160?"); - } - lstindx = spindx; - spindx = (spindx + 1 >= newvalue.Length)?spindx = -1: newvalue.IndexOf(" ", spindx+1); - } - return newvalue; - } - - private bool EndsRtfCommand(string str, int spindx, int previndx) - { - // get text from last space to current, or from beginning of string to current: - int start = previndx < 0 ? 0 : previndx+1; - string substring = str.Substring(start, spindx-start); - if (substring.Contains(@"\")) - { - // is space ending an rtf command. - int startCmd = substring.LastIndexOf(@"\"); - string Cmd = substring.Substring(startCmd); - char tst = Cmd[1]; - // consider rtf commands up/dn/b/ul/i - if (tst == 'u' || tst == 'd' || tst == 'b' || tst == 'u' || tst == 'i') return true; - } - return false; - } - private string DoTransitionAdjustments(string text, bool boldTran) - { - bool undtran = _MyItemInfo.ActiveFormat.PlantFormat.FormatData.TransData.Underline; - string strippedText = StaticStripRtfCommands(text); - string lookFor = string.Format(@""); - MatchCollection matches = Regex.Matches(text, lookFor); - if (matches.Count == 0) return text; - string retstr = text; - for (int i = matches.Count - 1; i >= 0; i--) - { - Match m = matches[i]; - // if this transition text already has a hard space, don't add another. - if (m.Groups[3].Value.Contains("\xA0")) continue; - // if the transition text does not start with a digit, don't add the hardspace. - //if (!Char.IsDigit(m.Groups[3].Value[0])) continue; - if (m != null && m.Groups.Count > 7 && m.Groups[6].ToString().StartsWith("Transition")) - { - if (m.Groups[7].Value != "") // && StepTransition(int.Parse(m.Groups[7].Value))) - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - string beforeTran = retstr.Substring(0, g.Index); - string afterTran = retstr.Substring(g.Index + g.Length); - - // if replacing text in the 'beforeTran' string, then do it here, - // i.e. there is a format flag 'BeforeTrans' that bolds text before the transition - // (in wst formats). - beforeTran = DoBeforeTransFlagSupport(beforeTran, _MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ReplaceStrList); - string newvalue = g.ToString(); - // if this is a 'step transition' type, i.e. includes a step number, in addition to other replacements, - // we want to change a space to a hardspace. - if (StepTransition(int.Parse(m.Groups[7].Value))) - { - int indexLastSpace = newvalue.LastIndexOf(' '); - if (indexLastSpace >= 0) - // Use a "\x1" as a token to replace later. Insert the unicode char, whose length is - // more than 1 character was throwing of the regexp Matches index, so that the resulting - // string may have been incorrect. - retstr = beforeTran + (boldTran ? @"\b " : null) + (undtran ? @"\ul " : null) + newvalue.Substring(0, indexLastSpace) + "\x1" + newvalue.Substring(indexLastSpace + 1) + (undtran ? @"\ulnone " : null) + (boldTran ? @"\b0" : null) + afterTran; - else - if (beforeTran.EndsWith(" ")) - retstr = ReplaceLastSpaceWithHardSpace(beforeTran) + (boldTran ? @"\b " : null) + (undtran ? @"\ul " : null) + newvalue + (undtran? @"\ulnone ":null) + (boldTran ? @"\b0" : null) + afterTran; - else - Console.Write("");// Don't know where to put the Hard Space - } - else if (boldTran) - { - retstr = beforeTran + @"\b " + newvalue + @"\b0" + afterTran; - } - } - } - } - return retstr.Replace("\x1", @"\u160?"); - } - - private string DoBeforeTransFlagSupport(string beforeTran, ReplaceStrList replaceStrList) - { - foreach (ReplaceStr repstr in replaceStrList) - { - if ((repstr.Flag & E_ReplaceFlags.BeforeTrans) > 0) - { - // the beforeTran string ends with the string that starts the transition comment, i.e. - // '\\v -1) - { - string findit = beforeTran.Substring(0, beforeTran.LastIndexOf(@"\v 0 && str[ind - 1] != ' ') - { - if (ind > 5 && str.Substring(0, ind).EndsWith(@"\u160?") || str.Substring(0, ind).ToLower().EndsWith(@"\'a0")) - return str;//Already has a Hard Space - ind = str.LastIndexOf(@"\", ind - 1); - } - // If the previous character is a comma or a space then don't add a Hard Space - if (ind > 1 && (str[ind - 2] == ',' || str[ind - 2] == ' ')) return str; - if (ind <= 0) return str; - - // replace with a 'token' "\x1" instead of a hardspace unicode char. When using a hardspace unicode - // char the string length/contents was thrown off so that the calling method's processing was off - // in terms of regexp matches in string. - return str.Substring(0, ind - 1) + "\x1" + str.Substring(ind); - } - private bool StepTransition(int TransId) - { - if (_MyItemInfo == null) return false; - _MyItemInfo.MyContent.RefreshContentTransitions(); - foreach (TransitionInfo trans in _MyItemInfo.MyContent.ContentTransitions) - if (trans.TransitionID == TransId) - return trans.MyItemToID.IsStep; - return false; - } - private string DoFortranFormat(string text) - { - if (text.IndexOf(@".E") < 0) return text; - // Look for text as n.Ey, where n can be null or a number, and y can be - // positive or negative. This translates into nx10x10y where y is - // superscripted. For example, .E3 -> x103 where 3 is superscripted - // and 10.E5 -> 10x10-5 where 5 is superscripted - string pat = @"(\d*).E([+-]*\d+)"; - string retstr = text; - // for each one that needs translated: - foreach (Match m in Regex.Matches(text, pat)) - { - string fnum = m.Groups[1].Value; - string supnum = m.Groups[2].Value; - string newstr = string.Format(@"{0}x10\up2 {1}\up0 ", fnum, supnum); - retstr = retstr.Replace(m.Value, newstr); - } - return retstr; - } - #endregion - #region SaveData - public bool Save(RichTextBox rtb) - { - //int savSelStart = rtb.SelectionStart; - try - { - //FormatInfo formatInfo = _MyItemInfo.ActiveFormat; - using (_MyItem = _MyItemInfo.Get()) - { - // The following was added to support transitions to un-numbered steps - if (_MyItemInfo.NewTransToUnNumberedItem && rtb.Text.Contains("")) - { - ItemAnnotation ia = _MyItem.ItemAnnotations.Add(AnnotationType.GetByName("Verification Required")); - ia.SearchText = "Transition to Un-Numbered Step"; - _MyItemInfo.NewTransToUnNumberedItem = false; - } - // check for different text, i.e. text from this itm doesn't match - // original text, a change occurred in database, but not from this user. - if (OriginalText != EditText) - { - Console.WriteLine("Save Failed because text changed outside of this edit session."); - return false; - } - string modtext = RtfToDbText(rtb.Rtf).Replace("", "\\\\"); - - // if there are links, we'll need to do extra processing to see if - // there were additions, deletions or modifications. - bool haslinks = ((modtext.IndexOf(@" -1) || (OriginalText != null && OriginalText != "" && OriginalText.IndexOf(@" -1)); - if (haslinks) - { - // Get all links in original list - RtfToDisplayTextElements(OriginalText); - List origList = GetLinkList(DisplayTextElementList); - // now get new text into displaytext elements for comparison for links: - RtfToDisplayTextElements(modtext); - // Compare ro/transition lists and delete or add any to the item for any ros/transitions that have been - // added/deleted or modified. - ProcessRoTranChanges(_MyItem, origList); - EditText = DteToString(); - // if new transitions/ros, we need to 'fix' the string in the embedded link to contain the - // transition or usage record. - Dictionary ctReplacements = BuildCtReplacements(_MyItem.MyContent.ContentTransitions); - Dictionary roUsgReplacements = BuildRoUsgReplacements(_MyItem.MyContent.ContentRoUsages); - _MyItem.DTS = DateTime.Now; - _MyItem.UserID = Volian.Base.Library.VlnSettings.UserID; - // Do the Save once rather than multiple times - _MyItem.Save(); - if (ctReplacements.Count > 0) - { - EditText = FixCtReplacements(EditText, ctReplacements); - // Replace Transition Text - foreach (ContentTransition ct in ctReplacements.Values) - using (TransitionInfo tran = TransitionInfo.Get(ct.TransitionID)) - _MyItem.MyContent.FixTransitionText(tran); - _MyItem.Save(); - } - if (roUsgReplacements.Count > 0) - { - EditText = FixRoUsgReplacements(EditText, roUsgReplacements); - _MyItem.Save(); - } - modtext = EditText; - } - else - { - EditText = modtext; - foreach (Csla.Validation.BrokenRule br in _MyItem.MyContent.BrokenRulesCollection) - { - Console.WriteLine("{0} - {1}", br.Property, br.Description); - } - // Don't update the DTS or User for Text Changes - //_MyItem.DTS = DateTime.Now; - //_MyItem.UserID = Volian.Base.Library.VlnSettings.UserID; - _MyItem.Save(); - } - _MyItem = null; - OriginalText = modtext; - } - if (!_MyItemInfo.IsStep) - _MyItemInfo.UpdateTransitionText(); - } - catch (Exception ex) - { - Console.WriteLine("DisplayText Save Failed with error: {0} - {1}\r\n{2}", ex.GetType().Name, ex.Message, ex.StackTrace); - return false; - } - //rtb.SelectionStart = savSelStart; - return true; - } - private string DteToString() - { - StringBuilder sret = new StringBuilder(); - foreach (displayTextElement vte in DisplayTextElementList) - { - if (vte.Type == E_TextElementType.Text || vte.Type == E_TextElementType.Symbol) - sret.Append(vte.Text); - else - { - displayLinkElement dle = vte as displayLinkElement; - if (vte != null) sret.Append(dle.TextAndLink); - } - } - string modtext = sret.ToString(); - return modtext; - } - private string FixRoUsgReplacements(string p, Dictionary roUsgReplacements) - { - foreach (int oldid in roUsgReplacements.Keys) - { - p = p.Replace(string.Format("", oldid), roUsgReplacements[oldid].ROUsageID.ToString()); - } - return p; - } - private Dictionary BuildRoUsgReplacements(ContentRoUsages contentRoUsages) - { - Dictionary retval = new Dictionary(); - foreach (ContentRoUsage rou in contentRoUsages) - { - if (rou.ROUsageID < 0) retval.Add(rou.ROUsageID, rou); - } - return retval; - } - private string FixCtReplacements(string p, Dictionary ctReplacements) - { - foreach (int oldid in ctReplacements.Keys) - { - p = p.Replace(string.Format("",oldid),ctReplacements[oldid].TransitionID.ToString()); - } - return p; - } - private Dictionary BuildCtReplacements(ContentTransitions contentTransitions) - { - Dictionary retval = new Dictionary(); - foreach (ContentTransition ct in contentTransitions) - { - if (ct.TransitionID < 0) retval.Add(ct.TransitionID, ct); - } - return retval; - } - private void ProcessRoTranChanges(Item itm, List origList) - { - // go through list. Note that only linked items are in the origList. - // 1) delete any that are in origList but not in the DisplayTextElementList - // (that represents the current text & links) - // 2) add any that are only in DisplayTextElementList - // 3) delete/add for modify? - - // delete first - if in original, but not in current list, delete the one - // in the original list. - foreach (displayLinkElement odte in origList) - { - bool found = false; - foreach (displayTextElement dte in DisplayTextElementList) - { - if (dte.Type == odte.Type) - { - displayLinkElement l_dte = (displayLinkElement)dte; - if (odte.Link == l_dte.Link) - { - found = true; - break; - } - } - } - // remove the link element from the item. - if (!found) - { - // Get record id for ro or trans and then find the associated ro or transition - // in the item's list. remove it. - int recid = -1; - if (odte.Type != E_TextElementType.ReferencedObject) - { - int sp = odte.Link.IndexOf(" ") + 1; // get past tran type - string srecid = odte.Link.Substring(sp, odte.Link.IndexOf(" ", sp) - sp); - recid = System.Convert.ToInt32(srecid); - foreach (ContentTransition ct in itm.MyContent.ContentTransitions) - { - if (ct.TransitionID == recid) - { - itm.MyContent.ContentTransitions.Remove(ct); - break; - } - } - } - else - { - int sp = odte.Link.IndexOf(" "); - //rousageid starts after "ReferencedObject:", i.e. index in link of 17 - string srecid = odte.Link.Substring(17, sp-17); - recid = System.Convert.ToInt32(srecid); - foreach (ContentRoUsage cr in itm.MyContent.ContentRoUsages) - { - if (cr.ROUsageID == recid) - { - itm.MyContent.ContentRoUsages.Remove(cr); - break; - } - } - } - } - } - // now do insert, i.e. in new list, but not in old. - foreach (displayTextElement dte in DisplayTextElementList) - { - bool found = false; - if (dte.Type == E_TextElementType.ReferencedObject || dte.Type == E_TextElementType.Transition || dte.Type == E_TextElementType.TransitionRange) - { - foreach (displayLinkElement odte in origList) - { - if (dte.Type == odte.Type) - { - // if the link is the same, it exists, so no action is required. - displayLinkElement l_dte = (displayLinkElement)dte; - if (odte.Link == l_dte.Link) - { - found = true; - break; - } - } - } - // Insert the link (ro or transition) to the item - if (!found) - { - if (dte.Type == E_TextElementType.ReferencedObject) // do ro - { - displayLinkElement l_dte = (displayLinkElement)dte; - Match m = Regex.Match(l_dte.Link, "([A-Za-z]*):(.*)"); - string linkstr = m.Groups[2].Value; - string[] roparts = linkstr.Split(" ".ToCharArray()); - ContentRoUsage rousg = null; - using (RODb rodb = RODb.GetJustRoDb(Convert.ToInt32(roparts[2]))) - { - rousg = itm.MyContent.ContentRoUsages.Add(roparts[1], rodb); - } - l_dte.Link = l_dte.Link.Replace("", string.Format("", rousg.ROUsageID)); - l_dte.TextAndLink = l_dte.TextAndLink.Replace("", string.Format("", rousg.ROUsageID)); - break; - } - else if (dte.Type == E_TextElementType.TransitionRange || dte.Type == E_TextElementType.Transition) - { - displayLinkElement l_dte = (displayLinkElement)dte; - Match m = Regex.Match(l_dte.Link, "([A-Za-z]*):(.*)"); - string linkstr = m.Groups[2].Value; - string[] tparts = linkstr.Split(" ".ToCharArray()); - int type = System.Convert.ToInt32(tparts[0]); - int tr1 = System.Convert.ToInt32(tparts[2]); // tparts[2] is token for tranid - int tr2 = tr1; - if(tparts.Length > 3) - tr2 = System.Convert.ToInt32(tparts[3]); // tparts[3] is token for rangeid - bool dispose1 = false; - Item itm1 = null; - bool dispose2 = false; - Item itm2 = null; - if (itm.ItemID == tr1) - itm1 = itm; // a transition that points to itself should not dispose - else - { - dispose1 = true; - itm1 = Item.Get(tr1); - } - if (itm.ItemID == tr2) - itm2 = itm; // a transition that points to itself should not dispose - else if (tr1 == tr2) - itm2 = itm1; // if both destinations are the same only dispose the first one - else - { - dispose2 = true; - itm2 = Item.Get(tr2); - } - ContentTransition ct = itm.MyContent.ContentTransitions.Add(itm1, itm2); - //Console.WriteLine("CT {0},{1},{2},{3}", ct.TransitionID, itm.ItemID, itm.MyContent.MyContentUnique, itm.MyContent.ContentTransitions.Count); - ct.TranType = type; - if (dte.Type == E_TextElementType.Transition) - ct.IsRange = 0; - else if (tr1 != tr2) - ct.IsRange = 1; - else - ct.IsRange = 2; - l_dte.Link = l_dte.Link.Replace("", string.Format("", ct.TransitionID)); - l_dte.TextAndLink = l_dte.TextAndLink.Replace("", string.Format("", ct.TransitionID)); - if (dispose2) itm2.Dispose(); - if (dispose1) itm1.Dispose(); - } - } - } - } - } - private List GetLinkList(List locDisplayTextElementList) - { - List retList = new List(); - foreach (displayTextElement vte in locDisplayTextElementList) - { - if (vte.Type == E_TextElementType.ReferencedObject || vte.Type == E_TextElementType.TransitionRange || vte.Type == E_TextElementType.Transition) - { - displayLinkElement tmp = (displayLinkElement)vte; - displayLinkElement copy_vte = new displayLinkElement(); - copy_vte.Type = tmp.Type; - copy_vte.Link = tmp.Link; - copy_vte.Text = tmp.Text; - retList.Add(copy_vte); - } - } - return retList; - } - private void RtfToDisplayTextElements(string text) - { - // get original text into displaytext elements for comparison for links: - if (DisplayTextElementList == null) - DisplayTextElementList = new List(); - else - DisplayTextElementList.Clear(); - - if (text == null || text == "") return; - - string noExtraRtfStr = text; - - int startIndex = 0; - int index = -1; - noExtraRtfStr = noExtraRtfStr.Replace(@"><", @">\v0 \v <"); - while ((index = FindTokenChar(noExtraRtfStr, startIndex)) > -1) - { - // Do any 'plain' text that preceeds the token. - if (index > startIndex) DoTextElement(noExtraRtfStr, startIndex, index); - - if (noExtraRtfStr[index + 1] == 'v') - index = DoLink(noExtraRtfStr, index); - else - index = DoSymbol(noExtraRtfStr, startIndex, index); - startIndex = index; // +1; - if (startIndex >= noExtraRtfStr.Length) break; - } - // Add any remaining text. - if (startIndex < noExtraRtfStr.Length) DoTextElement(noExtraRtfStr, startIndex, index); - } - private string RtfToDbText(string text) - { - // For hardspaces, the windows richtextbox does some 'quirky' things: - // A unicode representation of \u160? is sent INTO the rtb. Coming out, - // that \u160? was translated to a \~ (by the underlying windows rtb). - // Note that if the \~ is sent to the rtb, it is treated as a regular space, - // i.e. no longer a hardspace, and actually is converted to a regular space. - // SO, on the way out, convert any \~ to \u160? - string noExtraRtfStr = text.Replace(@"\~", @"\u160?"); - noExtraRtfStr = noExtraRtfStr.Replace(@"\'a0", @"\u160?"); - - // Check for two links in a row & if found, add separating rtf comment - // commands (these get removed in the richtextbox: - // RHM 20100303 Not sure why this is here. The RichTextBox will always remove it. - //noExtraRtfStr = noExtraRtfStr.Replace(@"[END>\v0 \v -1) noExtraRtfStr = noExtraRtfStr.Replace(@"\'05", "\x05"); - - return noExtraRtfStr; - } - public static string StaticReplaceRTFClause(Match m) - { - try - { - string token = m.Groups[1].Value; - switch (token[1]) - { - case '\\': - return token; - case 'u': - if (Regex.IsMatch(token, @"^\\u[0-9]+$")) - return token; // Special Charcaters - if (Regex.IsMatch(token, @"^\\ulnone ?$")) - return token; - if (Regex.IsMatch(token, @"^\\ul.*$")) - return token; // Underline - if (Regex.IsMatch(token, @"^\\up[0-9] ?$")) - return token; // shift up (superscript) - break; - case 'd': - if (Regex.IsMatch(token, @"^\\dn[0-9] ?$")) - return token; // shift down (subscript) - break; - case '\'': // Special Character - return token; - case 'b': // Bold - return token; - case 'i': // Italics - return token; - case '{': // look for escape for curly braces: - return token; - case '}': - return token; - case 'v': // save link hidden info - if (token == "\\viewkind4 ") break; - if (Regex.IsMatch(token, @"^\\v0? ?$")) - return token; // comment part of link - _MyLog.WarnFormat("<<>>\r\n==> Token including Comment not processed '{0}'", token); - break; - case 'l': - if (Regex.IsMatch(token, @"^\\line ?$")) return token; - break; - case 'p': - if (Regex.IsMatch(token, @"^\\par ?$")) return "\r\n"; - //if (token == @"\protect") - // return token; - //if (token == @"\protect0") - // return token; - //if (token.Length >= 6 && token.Substring(0, 6) == "\\par\r\n") return token.Replace("\r\n", " "); - break; - //case 'f': // handle fonts separately because they may or may not have a space after them - // if (token[2] >= '0' && token[2] <= '9') return token; - // break; - } - } - catch (Exception ex) - { - Console.WriteLine("StaticReplaceRTFClause {0} - {1}", ex.GetType().Name, ex.Message); - } - return "";//Strip All - } - public string StripRtfCommands(string rtf) - { - // replace \{ & \} with (![ & (!] respectively and then redo at end. The curly braces - // are rtf so were getting removed and/or not handled correctly. - string retval = rtf.Replace(@"\{", @" (!["); - retval = retval.Replace(@"\}", @" (!]"); - - // remove carriage return/newlines after \par commands (these are introduced by rtb - // for hard returns, goes into rtb as \par and comes out as \par\r\n): - retval = Regex.Replace(retval, @"\\par\r\n(?!\\)", "\\par "); - retval = retval.Replace("\\v0\r\n", "\\v0 "); // Replace Carriage Return and Newline after comment - retval = Regex.Replace(retval, @"[\r\n]", "", RegexOptions.Singleline); // Strip Carriage Returns and Newlines - retval = Regex.Replace(retval, @"^\{(.*)\}$", "$1", RegexOptions.Singleline); // Strip Opening and Closing Braces - retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+)(?=\\)", "$1 "); // add space after token if followed by token - retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+ )", new MatchEvaluator(StaticReplaceRTFClause)); // take backslash xyz and evaluates them - retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+) (?=\\)", "$1"); // remove space between tokens - retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+) (?=\r\n)", "$1"); // remove space before /r/n - // remove \r\n at end of string if the string has 2 or more characters - if (retval.EndsWith("\r\n")) retval = retval.Remove(retval.Length - 2, 2); - if (retval.Length == 0) return ""; - if (retval.EndsWith(@"\v")) retval = retval.Remove(retval.Length - 2, 2); - retval = _MyItemInfo.RemoveRtfStyles(retval); // RemoveRtfStyles(retval); - retval = retval.Replace(@" (![", @"\{"); - retval = retval.Replace(@" (!]", @"\}"); - retval = retval.TrimEnd(' '); - return retval; - } - // This is used in the DataLoader - public static string StaticStripRtfCommands(string rtf) - { - // replace \{ & \} with (![ & (!] respectively and then redo at end. The curly braces - // are rtf so were getting removed and/or not handled correctly. - string retval = rtf.Replace(@"\{", @" (!["); - retval = retval.Replace(@"\}", @" (!]"); - - // For hardspaces, the windows richtextbox does some 'quirky' things: - // A unicode representation of \u160? is sent INTO the rtb. Coming out, - // that \u160? was translated to a \~ (by the underlying windows rtb). - // Note that if the \~ is sent to the rtb, it is treated as a regular space, - // i.e. no longer a hardspace, and actually is converted to a regular space. - // SO, on the way out, convert any \~ to \u160? - retval = retval.Replace(@"\~", @"\u160?"); - - // remove carriage return/newlines after \par commands (these are introduced by rtb - // for hard returns, goes into rtb as \par and comes out as \par\r\n): - retval = Regex.Replace(retval, @"\\par\r\n(?!\\)", "\\par "); - //retval = Regex.Replace(retval, @"\\par\r\n(?=\\)", "\\par"); - - retval = retval.Replace("\\v0\r\n", "\\v0 "); // Replace Carriage Return and Newline after comment - retval = Regex.Replace(retval, @"[\r\n]", "", RegexOptions.Singleline); // Strip Carriage Returns and Newlines - retval = Regex.Replace(retval, @"^\{(.*)\}$", "$1", RegexOptions.Singleline); // Strip Opening and Closing Braces - retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - //retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+)\\f[0-9] ", "$1 "); // remove font command - if next to another command, keep other command and space - // OLD: The following two lines are replaced by the more generic replace above. - //retval = Regex.Replace(retval, @"\\v\\f[0-9] ", "\\v "); // remove font command - if next to Comment keep space - //retval = Regex.Replace(retval, @"\\line\\f[0-9] ", "\\line "); // remove font command - if next to Line keep space - //retval = Regex.Replace(retval, @"\\f[0-9] ", ""); // remove font command with ending space - //retval = Regex.Replace(retval, @"\\f[0-9]", ""); // remove font command without ending space - //retval = Regex.Replace(retval, @"\\par ", "\r\n"); - retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+)(?=\\)", "$1 "); // add space after token if followed by token - //retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+)(\\)", "$1 $2"); // take backslash xyz and evaluates them - retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+ )", new MatchEvaluator(StaticReplaceRTFClause)); // take backslash xyz and evaluates them - retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+) (?=\\)", "$1"); // remove space between tokens - retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+) (?=\r\n)", "$1"); // remove space before /r/n - // remove a space if there is one as the first character or the last character - //if (retval[0] == ' ') retval = retval.Remove(0, 1); - //retval = retval.TrimEnd(' '); - // remove \r\n at end of string if the string has 2 or more characters - if (retval.Length > 1 && retval.Substring(retval.Length - 2, 2) == "\r\n") retval = retval.Remove(retval.Length - 2, 2); - // remove \par at end of string if the string has 4 or more characters - //if (retval.Length > 3 && retval.Substring(retval.Length - 4, 4) == @"\par") retval = retval.Remove(retval.Length - 4, 4); - // remove a space following \r\n - //retval = Regex.Replace(retval, "\r\n ", "\r\n"); - ////if there are still spaces following \r\n, then probable in a table - we need to put the space back - //retval = Regex.Replace(retval, "\r\n ", "\r\n "); - - if (retval.Length == 0) return ""; - if (retval.Length > 1 && retval.Substring(retval.Length - 2, 2) == @"\v") retval = retval.Remove(retval.Length - 2, 2); - //retval = RemoveRtfStyles(retval); - //if (itmInfo != null) - // retval = StaticRemoveRtfStyles(retval, itmInfo); - - retval = retval.Replace(@" (![", @"\{"); - retval = retval.Replace(@" (!]", @"\}"); - retval = retval.TrimEnd(' '); - - // the indent character was translated in the richtextbox, change it back: - if (retval.IndexOf(@"\'05") > -1) retval = retval.Replace(@"\'05", "\x05"); - return retval; - } - #endregion - #region StyleData - //private VE_Font GetItemFont() - //{ - // VE_Font font = null; - // FormatInfo format = _MyItemInfo.ActiveFormat; - // int type = (int)_MyItemInfo.MyContent.Type; - // switch (type/10000) - // { - // case 0: // procedure - // font = format.PlantFormat.FormatData.Font; - // break; - // case 1: // section - // font = format.PlantFormat.FormatData.SectData.SectionHeader.Font; - // break; - // case 2: // step types - // int typindx = type - 20000; // what to do for other types rather than steps - // font = format.PlantFormat.FormatData.StepDataList[typindx].Font; - // break; - // } - // TextFont = font; - // return font; - //} - #endregion - #region DoListElements - private int FindTokenChar(string txt, int startIndex) - { - // 'tokens' are for symbols and links (ro & transitions). symbols are represented by \u - // and links are represented by \v \v0 - bool done = false; - while (!done) - { - int indx = txt.IndexOf('\\', startIndex); - if (indx < 0) return indx; - // see if symbol (but not underline) or another rtf command: has a 'u' - // followed by a non-underline or single quote, and if so, return it. - if (((txt[indx + 1] == 'u' && txt[indx + 2] != 'l' && txt[indx + 2] !='p')) || (txt[indx + 1] == '\'')) return indx; - // see if link - if (txt[indx + 1] == 'v') return indx; //TODO - should have ") != -1) return text; - int transitionID = Convert.ToInt32(link.Split(" ".ToCharArray())[1]); - // Find the transition - if (_MyItemInfo.MyContent.ContentTransitionCount <= 0) - { - // TODO: RHM 20100310 - _MyItemInfo.MyContent.RefreshContentTransitions(); - if (_MyItemInfo.MyContent.ContentTransitionCount <= 0) - return "*Resolved Transition Text*"; - } - foreach (TransitionInfo ti in _MyItemInfo.MyContent.ContentTransitions) - { - if (ti.TransitionID == transitionID) - { - string path = ti.ResolvePathTo(_MyFormat, _MyItemInfo, ti.TranType, ti.MyItemToID, ti.MyItemRangeID); - return path; - } - } - return text; - } - private int DoTran(string text,int index) - { - displayLinkElement vte = new displayLinkElement(); - - // determine if Range by checking for "R" after Transition (otherwise ":") - int linkindx = text.IndexOf(@"#Link", index); - vte.Type = (text[linkindx+16]=='R')?E_TextElementType.TransitionRange:E_TextElementType.Transition; - return DoLinkElements(text, index, vte); - } - - //private int GetLastLower(string stepText) - //{ - // // TO DO: need to check AlwaysUpperCase format setting - this was not yet converted as of 17Jun2010 - // // if (AlwaysUpperCase[steptype]) return (stepText.Length-1); - - // int idx = stepText.Length - 1; - // while (idx >= 0 && !(char.IsLower(stepText[idx]) && stepText[idx] != 's')) idx--; - // if (idx < 0) idx = stepText.Length - 1; // entire string is uppercased set return value to end of string - // return idx; - //} - - //private bool IsSpaceOrHardSpace(char ch) - //{ - // string spaces = @" \u160?"; - // return (spaces.IndexOf(ch) >= 0); - //} - private string DoROFormatFlags(string roText, string beforeRO, string afterRO, bool isSetpoint, string prevValue) - { - string rtnstr = roText; - // The RO text is being changed to match it's context. Since it is changed in reverse order, the text before the RO - // should ignore other RO text. - beforeRO = Regex.Replace(beforeRO, @"\", ""); // Remove any RO Values. - beforeRO = Regex.Replace(beforeRO, @"(\\[^v \\]+)*\\v(\\[^v \\]+)* .*?\\v0(\\[^v \\]+)*( |$)", ""); // Remove Comments - string allUnitAfterRo = afterRO; - afterRO = Regex.Replace(afterRO, @"(\\[^v \\]+)*\\v(\\[^v \\]+)* .*?\\v0(\\[^v \\]+)*( |$)", ""); // Remove Comments - - // Underline all ROs, values and Units - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UnderlineRo) - { - // TO DO: Need to check if step text is already underlined - if ((_MyItemInfo.FormatStepData.Font.Style & E_Style.Underline) == 0) - rtnstr = @"\ul " + rtnstr + @"\ulnone "; - } - - // UpcaseAllRoUnits - Uppercases ALL ROs units everywhere. - if (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UpcaseAllRoUnits) - return UpperCaseUnits(rtnstr); - - //Forces the units for a RO to be uppercased for high level steps - if (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.CapHighRo &&_MyItemInfo.IsHigh) - return UpperCaseUnits(rtnstr); - - // Caps ROs anywhere if no lower case text follows - // and an upper case letter immediately precedes the RO. - - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.CapSPIfLastLower && - !Regex.IsMatch(afterRO, @".*(? 0 && !IsSpaceOrHardSpace(stepText[indx])) indx--; // find character before RO - //while (indx2 <= stepText.Length && !IsSpaceOrHardSpace(stepText[indx2])) indx2++; // find character after RO - - //if (indx >= 0 && char.IsUpper(stepText[indx]) && indx2 > GetLastLower(stepText)) - // doUpCase = true; - return UpperCaseUnits(rtnstr); - } - - // If a RO follows a "- " then it will be uppercased - if (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UpRoAftrDash && Regex.IsMatch(beforeRO, @".*\\u8209\?( |\\u160\?)")) - { - //int indx = startLinkText - 1; - //while (indx > 0 && !IsSpaceOrHardSpace(stepText[indx])) indx--; // find character before RO - //string prefix = indx >= 7?stepText.Substring(indx-7,8):""; - //doUpCase = (prefix == @"\u8209? "); // Dash character before RO - return UpperCaseUnits(rtnstr); - } - // For Wolf Creek, the "- " should be right before the link. This ro format flag was introduced - // for Wolf Creek only because a problem was found with some of their data that was incorrectly - // processed through the 'UpRoAftrDash' flag. That flag was more general, i.e. upper cased units - // if there was a dash and then a space or hard space anywhere before the RO text. The original - // 16bit flag was more specific. Other plants that were released had the UpRoAftrDash, but - // we didn't want to change their formats since they had gone through testing. - if (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UpRoImmAftrDashSpace && Regex.IsMatch(beforeRO, @".*\\u8209\?( )")) - return UpperCaseUnits(rtnstr); - - // Uppercase the RO Unit if the previous letter is uppercase - if (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UpRoIfPrevUpper && char.IsUpper(LastAlpha(beforeRO))) - { - //doUpCase = (char.IsUpper(stepText[startLinkText - 1])); - return UpperCaseUnits(rtnstr); - - } - - //CapFirstLetterInHighRO - Cap only the first letters of the units in a high level RO - // note: used in FLP (Turkey Point) format - if (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.CapFirstLetterInHighRO && _MyItemInfo.IsHigh) - { - int idx = 0; - string tstr = ""; - while (idx < rtnstr.Length && !char.IsLetter(rtnstr[idx])) tstr += rtnstr[idx++].ToString(); - if (idx < rtnstr.Length) - { - tstr += char.ToUpper(rtnstr[idx]).ToString(); - if (idx + 1 < rtnstr.Length) - tstr += rtnstr.Substring(idx + 1); - } - rtnstr = tstr; - } - - //In a sequence of RO values, the unit appears with every value - //(e.g., "25 gpm and 30 gpm" vs. "25 and 30 gpm") - if (!_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.AllUnits && prevValue != null) - { - string units = null; - Match m = Regex.Match(prevValue, "[^0-9]"); - if (m.Success) - { - units = prevValue.Substring(m.Index); - if (rtnstr.EndsWith(units)) - { - rtnstr = rtnstr.Replace(units, ""); - } - } - } - return rtnstr; - } - /// - /// Uppercase alphabetical strings excluding any RTF token - /// - /// - /// - private string MatchEvaluatorUppercaseROUnits(Match match) - { - if (match.Value[0] == '\\') // If the previous character is a backslash then this is an RTF token - return match.Value; - return match.Value.ToUpper(); - } - Regex _RegExUppercaseROUnits = new Regex("(^|[^a-zA-Z])[a-zA-Z]+"); - private string UpperCaseUnits(string rtnstr) - { - // Uppercase Units - rtnstr = _RegExUppercaseROUnits.Replace(rtnstr, new MatchEvaluator(MatchEvaluatorUppercaseROUnits)); - // After converting the value to uppercase, change X10 to x10 to handle Fortran Formatted numbers - return rtnstr.Replace("X10", "x10"); - } - - // Find the last Alphabetical character - private char LastAlpha(string beforeRO) - { - Match m = Regex.Match(beforeRO, ".*([a-zA-Z])[^a-zA-Z]*"); - if (m.Success) return m.Groups[1].ToString()[0]; - return '\0'; - } - - private int DoLinkElements(string text, int index, displayLinkElement vte) - { - // Find the 'end comment' for this 0 && (endTextIndx < 0 || endTextIndx > endTextIndx2)) - endTextIndx = endTextIndx2; - vte.Text = text.Substring(endStartTknIndx + startAdj, endTextIndx - endStartTknIndx - startAdj); // 4 for \v0 - - // Now get the link part. It can be terminated by a '\v0' or an [END> - int endLinkIndxV = text.IndexOf(@"\v0 ", linkIndx); - if (endLinkIndxV == -1) endLinkIndxV = text.IndexOf(@"\v0", linkIndx); // at end of string - int endLinkIndxE = text.IndexOf(@"[END>", linkIndx); - int endLinkIndx = (endLinkIndxV < endLinkIndxE) ? endLinkIndxV : endLinkIndxE; - vte.Link = text.Substring(linkIndx + 6, endLinkIndx - linkIndx - 6); // 6 for #Link: - - string tmptxt = null; - if (vte.Type != E_TextElementType.ReferencedObject) - { - tmptxt = FixTransition(vte.Link, vte.Text); - vte.Text = tmptxt; - } - //else - //{ - // tmptxt = DoROFormatFlags(vte.Text, text, index, endLinkIndx); - // vte.Text = tmptxt; - //} - - // Now get the entire text & link. Account for various ending possibilities: - // ends with '\v0\'; ends with '\v0 '; ends with '\v0' (end of string); - // ends with '[END>' if two in a row - will have ", endLinkIndx + 3); // get past end of link - int endComment = text.IndexOf(@"\v0", endToken); - - int rettoken = 0; - int retlen = 4; - if (endComment + 3 == text.Length) retlen = 3; - else if (text[endComment + 3] == '\\') retlen = 3; - vte.TextAndLink = text.Substring(index, endComment - index + retlen); - rettoken = endComment + retlen; - if (vte.Type != E_TextElementType.ReferencedObject) - { - if (vte.TextAndLink.Contains("(Resolved Transition Text)")) - vte.TextAndLink = vte.TextAndLink.Replace("(Resolved Transition Text)", tmptxt); - else - if (vte.Text != tmptxt) - vte.Text = tmptxt; - } - DisplayTextElementList.Add(vte); - return rettoken; - } - private int DoSymbol(string text, int startIndex, int index) - { - displayTextElement vte = new displayTextElement(); - vte.Type = E_TextElementType.Symbol; - // symbols are the unicode/rtf command. A symbol can be represented by \'xy or - // in the text from the database \uxyz?. If the \'xy is used the length of the - // symbol number will always be two, otherwise find the index of the '?' to - // find the end. - int endindx = -1; - if (text[index + 1] == '\'') endindx = index + 3; - else endindx = text.IndexOf("?", index); - vte.Text = text.Substring(index, endindx - index + 1); - DisplayTextElementList.Add(vte); - return endindx+1; - } - #endregion - #region ReplaceWords - #region commented out - //private string DoReplaceWords(string Text) - //{ - // ReplaceStrList rsl = _MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList; - // foreach (ReplaceStr rs in rsl) - // { - // if (_MyItemInfo.MyContent.Type < 20000) return Text; // for now only replace in steps. - // bool replaceit = false; - - // if (_MyItemInfo.ItemID == 2557) Console.WriteLine("here"); - // // note that the order of this check is important. Check in this order... - // // background here - // if (_MyItemInfo.IsHigh && (rs.Flag & E_ReplaceFlags.High)>0) replaceit = true; - // else if ((_MyItemInfo.IsTable || _MyItemInfo.IsFigure) && (rs.Flag & E_ReplaceFlags.Table) > 0) replaceit = true; - // else if (_MyItemInfo.IsInRNO && (rs.Flag & E_ReplaceFlags.RNO) > 0) replaceit = true; - // else if (_MyItemInfo.IsCaution && (rs.Flag & E_ReplaceFlags.Caution) > 0) replaceit = true; - // else if (_MyItemInfo.IsNote && (rs.Flag & E_ReplaceFlags.Note) > 0) replaceit = true; - // else if (_MyItemInfo.IsStepPart && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // //else if (_MyItemInfo.IsInFirstLevelSubStep && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // else if (_MyItemInfo.IsAccPages & (rs.Flag & E_ReplaceFlags.Attach) > 0) replaceit = true; - - // if (replaceit) - // { - // // CASEINSENS: Do ReplaceWords for all words that match, regardless of case, and replace - // // with the ReplaceWith string as is - // if ((rs.Flag & E_ReplaceFlags.CaseInsens) > 0) - // { - // //string res = ""; - // //string fortest = Text.ToUpper(); - // ////string pat = @"(?<=\W|^)" + rs.ReplaceWord.ToUpper() + @"(?=\W|$)"; - // //// jsj 07Jun2010 HardSpaces defeat replaceword logic - // //string pat = @"(?<=\W|^)(? 0) - // { - // // only in Maine Yankee - we don't need to do this one. - // } - // // CASEINSENSFIRST: Do ReplaceWords for all words that exactly match the ReplaceWord, - // // except the case where the first character may be different - // else if ((rs.Flag & E_ReplaceFlags.CaseInsensFirst) > 0) - // { - // // only used in V.C. Summer - we don't need to do this either. - // } - // else - // { - // // If there are Regex Control Characters '\[]()' prefix them with backslash - // string replaceWord = Regex.Replace(rs.ReplaceWord, @"[[\]\\()]", @"\$0"); - // //string pat = @"(?<=\W|^)" + replaceWord + @"(?=\W|$)"; - // // jsj 07Jun2010 HardSpaces defeat replaceword logic - // //string pat = @"(?<=\W|^)(? 0) replaceit = true; - // else if ((_MyItemInfo.IsTable || _MyItemInfo.IsFigure) && (rs.Flag & E_ReplaceFlags.Table) > 0) replaceit = true; - // else if (_MyItemInfo.IsInRNO && (rs.Flag & E_ReplaceFlags.RNO) > 0) replaceit = true; - // else if (_MyItemInfo.IsCaution && (rs.Flag & E_ReplaceFlags.Caution) > 0) replaceit = true; - // else if (_MyItemInfo.IsNote && (rs.Flag & E_ReplaceFlags.Note) > 0) replaceit = true; - // else if (_MyItemInfo.IsStepPart && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // //else if (_MyItemInfo.IsInFirstLevelSubStep && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // else if (_MyItemInfo.IsAccPages & (rs.Flag & E_ReplaceFlags.Attach) > 0) replaceit = true; - - // if (replaceit) - // { - // // CASEINSENS: Do ReplaceWords for all words that match, regardless of case, and replace with the ReplaceWith string as is - // RegexOptions myOptions = (rs.Flag & E_ReplaceFlags.CaseInsens) == E_ReplaceFlags.CaseInsens ? RegexOptions.IgnoreCase : RegexOptions.None; - // string replaceWord = Regex.Replace(rs.ReplaceWord, @"[[\]\\()]", @"\$0"); - // string pat = @"(?<=\W|^)(? dicReplaceRegex = new Dictionary(); - private string DoReplaceWords2(string Text) - { - if (_MyItemInfo.MyContent.Type < 20000) return Text; // for now only replace in steps. - FoundMatches myMatches = new FoundMatches(Text,_MyItemInfo.FormatStepData.Font,_MyItemInfo); - // Exclude Link Text from Replace Word process - myMatches.AddLink(regFindLink, _MyFormat.PlantFormat.FormatData.SectData.ReplaceWordsInROs, _MyItemInfo.MyProcedure.MyDocVersion); - ReplaceStrList rsl = _MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList; - - // The only way to get an 'empty' list is to have one 'dummy' replacestr, i.e. that has ReplaceWord as an empty string. If the - // ReplaceStrData xml node is empty, it does the inheritance and gets the 'base' format's list. - if (rsl.Count==1 && (rsl[0].ReplaceWord == null || rsl[0].ReplaceWord == "")) return Text; - // Loop through text looking for words to be replaced - foreach (ReplaceStr rs in rsl) - { - bool replaceit = false; - // note that the order of this check is important. Check in this order... - // background here - if (_MyItemInfo.IsHigh && (rs.Flag & E_ReplaceFlags.High) > 0) replaceit = true; - else if ((_MyItemInfo.IsTable || _MyItemInfo.IsFigure) && (rs.Flag & E_ReplaceFlags.Table) > 0) replaceit = true; - else if (_MyItemInfo.IsInRNO && (rs.Flag & E_ReplaceFlags.RNO) > 0) replaceit = true; - else if (_MyItemInfo.IsCaution && (rs.Flag & E_ReplaceFlags.Caution) > 0) replaceit = true; - else if (_MyItemInfo.IsNote && (rs.Flag & E_ReplaceFlags.Note) > 0) replaceit = true; - else if (_MyItemInfo.IsStepPart && !_MyItemInfo.IsHigh && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - //else if (_MyItemInfo.IsInFirstLevelSubStep && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - else if (_MyItemInfo.IsAccPages & (rs.Flag & E_ReplaceFlags.Attach) > 0) replaceit = true; - - if (replaceit) - { - if (!dicReplaceRegex.ContainsKey(rs)) - { - // CASEINSENS: Do ReplaceWords for all words that match, regardless of case, and replace with the ReplaceWith string as is - //RegexOptions myOptions = (rs.Flag & E_ReplaceFlags.CaseInsens) == E_ReplaceFlags.CaseInsens ? RegexOptions.IgnoreCase & RegexOptions.Singleline : RegexOptions.None & RegexOptions.Singleline; - RegexOptions myOptions = (rs.Flag & E_ReplaceFlags.CaseInsens) == E_ReplaceFlags.CaseInsens ? RegexOptions.IgnoreCase: RegexOptions.None; - string replaceWord = Regex.Replace(rs.ReplaceWord, @"[[\]\\()]", @"\$0"); - // if first or last character in replaceword is a non-word character, for example, ',', ')', or '.', - // don't use the \W, i.e. don't bother to look for a non-word character. - string wordMatchBeg = Regex.IsMatch(replaceWord.Substring(0, 1), @"\W") ? "" : @"(?<=\W|^)"; - string wordMatchEnd = Regex.IsMatch(replaceWord.Substring(replaceWord.Length - 1, 1), @"\W") ? "" : @"(?=\W|$)"; - string pat = wordMatchBeg + @"(?", RegexOptions.Singleline); - private string ReplaceWord(string text, string replace, string with, RegexOptions regexOptions) - { - MatchCollection myMatches = Regex.Matches(text, replace, regexOptions); - MatchCollection myLinks = regFindLink.Matches(text); - for (int i = myMatches.Count - 1; i >= 0; i--) - { - Match myMatch = myMatches[i]; - if (!PartOfLinkText(myMatch, myLinks)) - text = text.Substring(0, myMatch.Index) + with + text.Substring(myMatch.Index + myMatch.Length); - } - return text; - } - - private bool PartOfLinkText(Match myMatch, MatchCollection myLinks) - { - foreach (Match myLink in myLinks) - if (myMatch.Index > myLink.Index && myMatch.Index < (myLink.Index + myLink.Length)) - return true; - return false; - } - #endregion - #endregion - } - #region displayTextElementClass - public enum E_TextElementType : uint - { - Text = 0, - Transition = 1, - TransitionRange = 2, - ReferencedObject = 3, - Symbol = 4 - }; - public class displayTextElement - { - private E_TextElementType _Type; - public E_TextElementType Type - { - get { return _Type; } - set { _Type = value; } - } - protected string _Text; - virtual public string Text - { - get { return _Text; } - set { _Text = value; } - } - } - public class displayLinkElement : displayTextElement - { - private string _Link; - public string Link - { - get { return _Link; } - set { _Link = value; } - } - private string _TextAndLink; - public string TextAndLink - { - get { return _TextAndLink; } - set { _TextAndLink = value; } - } - /// - /// Text - this should parse the text and return the results - /// - override public string Text - { - get - { - if (_TextAndLink != null) - { - Match m = Regex.Match(_TextAndLink, @""); - if(m.Groups[3].Value == " ") - return m.Groups[4].Value; - return m.Groups[3].Value + m.Groups[4].Value; - } - return _Text; - } - set - { - if (_TextAndLink != null) - { - Match m = Regex.Match(_TextAndLink, @""); - int myIndex = m.Groups[4].Index; - int myLength = m.Groups[4].Length; - if (m.Groups[3].Value != " ") - { - myIndex = m.Groups[3].Index; - myLength += m.Groups[3].Length; - } - string gg = _TextAndLink.Substring(myIndex, myLength); - string newvalue = value.Replace("{", @"\{").Replace("}", @"\}"); - _TextAndLink = _TextAndLink.Substring(0, myIndex) + newvalue + _TextAndLink.Substring(myIndex + myLength); - } - _Text = value; - } - } - } - #endregion - public class FoundMatches : SortedList - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private string _Text; - private VE_Font _Font; - private ItemInfo _MyItemInfo; - public FoundMatches(string text, VE_Font font, ItemInfo myItemInfo) - : base() - { - _Text = text; - _Font = font; - _MyItemInfo = myItemInfo; - } - public void Add(Regex myRegEx, ReplaceStr myWord) - { - MatchCollection myMatches = myRegEx.Matches(_Text); - foreach (Match myMatch in myMatches) - Add(myMatch, myWord); - } - public void AddLink(Regex myRegEx, bool replaceWordsInROs, DocVersionInfo myDocVersion) - { - MatchCollection myMatches = myRegEx.Matches(_Text); - foreach (Match myMatch in myMatches) - { - if (!replaceWordsInROs || IsTransition(myMatch.Value) || IsSetpointRO(myMatch.Value, myDocVersion)) - Add(myMatch, null);// Exclude from Replace Words - } - } - private bool IsTransition(string link) - { - return link.Contains("#Link:Transition"); - } - private static Regex regRefObj = new Regex(@"\#Link\:ReferencedObject:([0-9]*) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline); - private static bool IsSetpointRO(string link, DocVersionInfo myDocVersion) - { - Match myMatch = regRefObj.Match(link); - if (myMatch.Success) - { - int dbid = System.Convert.ToInt32(myMatch.Groups[2].Value.Substring(0, 4), 16); - int rodbid = int.Parse(myMatch.Groups[3].Value); - ROFstInfo myROFst = myDocVersion.GetROFst(rodbid); - return myROFst.IsSetpointDB(dbid, myDocVersion); - } - return false; - } - public void Add(Match myMatch, ReplaceStr myWord) - { - // If one already exists for this location, then don't add another. - if (ContainsKey(myMatch.Index)) return; - // Start by Adding it. - base.Add(myMatch.Index, new FoundMatch(myMatch, myWord)); - // Now see what I can do with it. - int index = this.IndexOfKey(myMatch.Index); - if (index > 0) // If this match is contained within the previous match remove it - { - FoundMatch previousMatch = Values[index - 1]; - if (previousMatch.MyMatch.Index + previousMatch.MyMatch.Length > myMatch.Index) - Remove(myMatch.Index); - } // If the next match is contained within this match, remove the next match - while (index < Count - 1 && Values[index + 1].MyMatch.Index < (myMatch.Index + myMatch.Length)) - Remove(Values[index + 1].MyMatch.Index); - } - public string ReplaceMatches() - { - int offset = 0; - string text = _Text; - foreach (FoundMatch foundMatch in Values) - { - if (foundMatch.MyWord != null) - { - if (VerifyNoHardSpace(text, foundMatch, offset)) - { - //if(offset != 0 || foundMatch.MyMatch.Index != 0 || !foundMatch.MyWord.ReplaceWith.StartsWith(@"{\par}")) - //{ - string with = foundMatch.MyWord.ReplaceWith; - if (offset == 0 && foundMatch.MyMatch.Index == 0 && with.StartsWith(@"{\par}")) with = with.Replace(@"{\par}", ""); - bool IsBold = ((_Font.Style & E_Style.Bold) == E_Style.Bold) || - (_MyItemInfo.FormatStepData != null && _MyItemInfo.FormatStepData.BoldHighLevel && _MyItemInfo.IsRNOPart && _MyItemInfo.MyParent.IsHigh ); - if (IsBold && with.Contains(@"\b ")) - { - with = with.Replace(@"\b ",""); - with = with.Replace(@"\b0 ",""); - } - bool IsUnderline = (((_Font.Style & E_Style.Underline) == E_Style.Underline) && with.Contains(@"\ul ")); - // handle where replace words replaces a string with 'underline on'string'underline off', for example Point Beach - // had replaced OR's turning underline off in the middle of a transition, "EOP-0 UNIT 1, RACTORE TRIP OR SAFETY INJECTION". - if (!IsUnderline) - { - int repidxulnone = text.LastIndexOf(@"\ulnone", foundMatch.MyMatch.Index + offset); - int repidxst = text.LastIndexOf(@"\ul", foundMatch.MyMatch.Index + offset); - if (repidxulnone > 0) - { - repidxst = text.Substring(repidxulnone + 7, foundMatch.MyMatch.Index + offset - (repidxulnone + 7)).LastIndexOf(@"\ul"); - if (repidxst >= 0) - repidxst += (repidxulnone + 7); - } - if (repidxst >= 0) IsUnderline = true; - } - if (IsUnderline) - { - with = with.Replace(@"\ul ", ""); - with = with.Replace(@"\ulnone ", ""); - } - text = text.Substring(0, offset + foundMatch.MyMatch.Index) + with + text.Substring(offset + foundMatch.MyMatch.Index + foundMatch.MyMatch.Length); - //offset += foundMatch.MyWord.ReplaceWith.Length - foundMatch.MyMatch.Length; - offset += with.Length - foundMatch.MyMatch.Length; - //} - } - } - } - return text; - } - - private bool VerifyNoHardSpace(string text, FoundMatch foundMatch, int offset) - { - string begin = text.Substring(0, offset + foundMatch.MyMatch.Index); - string end = text.Substring(offset + foundMatch.MyMatch.Index + foundMatch.MyMatch.Length); - if (text.StartsWith(@"{\rtf")) - { - // make sure that it is not preceded by \u160? \'a0 or \~ - if(Regex.IsMatch(begin,@"(\\(u160\?|'a0|~)(\\f[0-9]* ?)*(\\fs[0-9]* ?)*)$")) - return false; - // make sure that it is not followed by \u160? \'a0 or \~ - if(Regex.IsMatch(end,@"^((\\f[0-9]* ?)*(\\fs[0-9]* ?)*\\(u160\?|'a0|~))")) - return false; - } - return true; - } - } - public class FoundMatch - { - private Match _MyMatch; - public Match MyMatch - { - get { return _MyMatch; } - set { _MyMatch = value; } - } - private ReplaceStr _MyWord; - public ReplaceStr MyWord - { - get { return _MyWord; } - set { _MyWord = value; } - } - public FoundMatch(Match myMatch, ReplaceStr myWord) - { - _MyMatch = myMatch; - _MyWord = myWord; - } - } - -} diff --git a/PROMS/Volian.Controls.Library/DisplayTextRO.cs b/PROMS/Volian.Controls.Library/DisplayTextRO.cs deleted file mode 100644 index 945c50a0..00000000 --- a/PROMS/Volian.Controls.Library/DisplayTextRO.cs +++ /dev/null @@ -1,1778 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using System.Text.RegularExpressions; -using System.Drawing; -using VEPROMS.CSLA.Library; - -namespace Volian.Controls.Library -{ - public class DisplayText - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - #region Properties - private E_FieldToEdit _FieldToEdit; - public E_FieldToEdit FieldToEdit - { - get { return _FieldToEdit; } - set { _FieldToEdit = value; } - } - private ItemInfo _MyItemInfo; - private string InfoText - { - get - { - switch (FieldToEdit) - { - case E_FieldToEdit.StepText: - case E_FieldToEdit.Text: - return _MyItemInfo.MyContent.Text; - break; - case E_FieldToEdit.Number: - return _MyItemInfo.MyContent.Number; - break; - } - return string.Empty; - } - } - private Item _MyItem; - private string EditText - { - get - { - switch (FieldToEdit) - { - case E_FieldToEdit.StepText: - case E_FieldToEdit.Text: - return _MyItem.MyContent.Text; - break; - case E_FieldToEdit.Number: - return _MyItem.MyContent.Number; - break; - } - return string.Empty; - } - set - { - switch (FieldToEdit) - { - case E_FieldToEdit.StepText: - case E_FieldToEdit.Text: - _MyItem.MyContent.Text = value; - _MyItem.MyContent.UserID = Volian.Base.Library.VlnSettings.UserID; - _MyItem.MyContent.DTS = DateTime.Now; - break; - case E_FieldToEdit.Number: - _MyItem.MyContent.Number = value; - _MyItem.MyContent.UserID = Volian.Base.Library.VlnSettings.UserID; - _MyItem.MyContent.DTS = DateTime.Now; - break; - default: - break; - } - } - } - // list of 'pieces of text' for this item. Pieces include symbols, ros, - // transitions & plain text. - private List _DisplayTextElementList; - public List DisplayTextElementList - { - get { return _DisplayTextElementList; } - set { _DisplayTextElementList = value; } - } - // dictionary for the font table for this item. Note that this may - // go away (it is not really used). - private Dictionary _dicRtfFontTable; - public Dictionary dicRtfFontTable - { - get { return _dicRtfFontTable; } - set { _dicRtfFontTable = value; } - } - private VE_Font _textFont; // Font from format for this item - public VE_Font TextFont - { - get { return _textFont; } - set { _textFont = value; } - } - private bool PrintingSmartTemplate = false; - public string StartText; - public string OriginalText; // compare for save to see if change for links. - private FormatInfo _MyFormat; - #endregion - #region Constructors - /// - /// DisplayText constructor: - /// Creates a DisplayText object that converts the database text into rtf text - /// Arguments are: - /// ItemInfo itemInfo - the item whose text will be resolved - /// E_EditPrintMode ep_mode - edit or print. - /// E_ViewMode vw_mode - view or edit. - /// bool noEdit - flags whether to edit or not (used to set data in - /// rtb as resolved replacewords for non-active rtb. - /// E_FieldToEdit fieldToEdit - identifies the field to edit (number or text) - /// bool colorLinks - whether to add color to links - /// - public DisplayText(ItemInfo itemInfo, E_EditPrintMode epMode, E_ViewMode vwMode, bool noEdit,E_FieldToEdit fieldToEdit, bool colorLinks, string prefix, string suffix) - { - _FieldToEdit = fieldToEdit; - _MyItemInfo = itemInfo; - OriginalText = InfoText; - TextFont = itemInfo.GetItemFont();//GetItemFont(); - // if in print mode, and this is the HLS of a smart template (checklist formats), add a space before and - // after the HLS text - this allows for the vertical bar characters to be added. - if (itemInfo.IsStep && itemInfo.FormatStepData.UseSmartTemplate && epMode == E_EditPrintMode.Print) Console.WriteLine("here"); - string addSpace = (itemInfo.IsStep && itemInfo.FormatStepData.UseSmartTemplate && epMode == E_EditPrintMode.Print) ? " " : ""; - string text = prefix + addSpace + InfoText + addSpace + suffix; - _MyFormat = itemInfo.ActiveFormat; - - bool tableShouldBeOutlined = (epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View || noEdit) && - (_FieldToEdit == E_FieldToEdit.StepText || _FieldToEdit == E_FieldToEdit.Text) && - (!itemInfo.IsSection && !itemInfo.IsProcedure) && (itemInfo.IsTable || itemInfo.IsFigure); - bool wordsShouldBeReplaced = epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View || noEdit; - if (_MyFormat == null) - Console.WriteLine(this._MyItemInfo.MyItemInfoUnique); - bool numbersShouldBeFormated = (!_MyFormat.PlantFormat.FormatData.SectData.StepSectionData.FortranFormatNumbers && (epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View || noEdit)); - int typ = ((int)itemInfo.MyContent.Type) % 10000; - bool tableHasBorder = tableShouldBeOutlined ? itemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[typ].Type.IndexOf(@"Borderless") < 0 : false; - bool ROsShouldBeAdjusted = wordsShouldBeReplaced; // same logical value - if (epMode == E_EditPrintMode.Print && _MyItemInfo.IsStep) - { - if (_MyItemInfo.FormatStepData.UseSmartTemplate) - { - // Add 2 spaces before and 1 after if there is prefix so that wrapping in RTB accounts for vertical - // lines (the 2 spaces after the first "\par " command and 1 space before 2nd "\par"). Tried other - // combinations that did not work. - if (_MyItemInfo.FormatStepData.Prefix != null && _MyItemInfo.FormatStepData.Prefix != "") - text = !_MyItemInfo.FormatStepData.Font.FontIsProportional() ? ReplaceLinesWithUnicode(_MyItemInfo.FormatStepData.Prefix) + @"\par " + text + @"\par " : - @"\par " + text + @"\par "; - if (_MyItemInfo.FormatStepData.Suffix != null && _MyItemInfo.FormatStepData.Suffix != "") - text = text + (!_MyItemInfo.FormatStepData.Font.FontIsProportional() ? ReplaceLinesWithUnicode(_MyItemInfo.FormatStepData.Suffix) : - @"\par\par\par "); - } - } - text = CreateRtf(colorLinks, text, tableShouldBeOutlined, wordsShouldBeReplaced, numbersShouldBeFormated, tableHasBorder, ROsShouldBeAdjusted); - - StartText = text; - } - private string ReplaceLinesWithUnicode(string text) - { - text = text.Replace("\x2500", @"\u9472?"); // Horizontal - text = text.Replace("\x2502", @"\u9474?"); // Vertical - text = text.Replace("\x2514", @"\u9492?"); // Bottom Left Corner - text = text.Replace("\x2518", @"\u9496?"); // Bottom Right Corner - text = text.Replace("\x2534", @"\u9524?"); // Bottom Tee - text = text.Replace("\x250c", @"\u9484?"); // Upper Left Corner - text = text.Replace("\x251c", @"\u9500?"); // Left Tee - text = text.Replace("\x2510", @"\u9488?"); // Upper Right Corner - text = text.Replace("\x252c", @"\u9516?"); // Top Tee - text = text.Replace("\x2524", @"\u9508?"); // Right Tee - text = text.Replace("\x253c", @"\u9532?"); // Plus - return text; - } - - public DisplayText(string text, VE_Font vFont, bool colorLinks) - { - TextFont = vFont; - StartText = CreateRtf(colorLinks, text, false, false, false, false, false); - } - public DisplayText(ItemInfo itemInfo, string text, bool colorLinks) - { - _FieldToEdit = E_FieldToEdit.Text; - _MyItemInfo = itemInfo; - OriginalText = text; - TextFont = itemInfo.GetItemFont(); - _MyFormat = itemInfo.ActiveFormat; - - bool wordsShouldBeReplaced = true; - bool numbersShouldBeFormated = !_MyFormat.PlantFormat.FormatData.SectData.StepSectionData.FortranFormatNumbers; - int typ = ((int)itemInfo.MyContent.Type) % 10000; - bool ROsShouldBeAdjusted = wordsShouldBeReplaced; // same logical value - - text = CreateRtf(colorLinks, text, false, wordsShouldBeReplaced, numbersShouldBeFormated, false, ROsShouldBeAdjusted); - StartText = text; - } - private string CreateRtf(bool colorLinks, string text, bool tableShouldBeOutlined, bool wordsShouldBeReplaced, bool numbersShouldBeFormated, bool tableHasBorder, bool ROsShouldBeAdjusted) - { - // Adjust RO display - if (ROsShouldBeAdjusted) - { - try // Added try/catch because an unresolved RO Link was causing a failure. - { - text = DoROAdjustments(text); - } - catch (Exception ex) - { - if (_MyItemInfo != null) - { - _MyLog.ErrorFormat("<<< ERROR >>> Error doing DoROAdjustments\r\n==>'RO Adjustments Error',{0},'{1}','{2}','{3}'" - , _MyItemInfo.ItemID, _MyItemInfo.MyDocVersion.MyFolder.Name, _MyItemInfo.ShortPath, ex.Message); - } - else - _MyLog.Error("DisplayText.CreateRTF Error doing DoROAdjustments", ex); - - } - } - // if in print mode, view mode, or non-active richtextbox do replace words. Only if in - // actual edit mode are replace words left as is. - // But don't do ReplaceWords if the TurnOffReplaceWords format flag is set - if (wordsShouldBeReplaced && !_MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.TurnOffReplaceWords) - text = DoReplaceWords2(text); - if (_MyItemInfo != null) - { - text = DoSearchAndReplace(text, "", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_ID); - text = text.Replace(@"", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_ProcedureSetID); - text = text.Replace("", _MyItemInfo.MyDocVersion.DocVersionConfig.Unit_Number); - } - // Adjust RO display - if (ROsShouldBeAdjusted) - text = DoTransitionAdjustments(text, _MyItemInfo.ActiveFormat.PlantFormat.FormatData.TransData.BoldTransition || (_MyItemInfo.ActiveFormat.PlantFormat.FormatData.TransData.BoldTransitionExceptHLS && !_MyItemInfo.IsHigh)); - // add colors around links: - if (colorLinks) - text = DoColorLinks(text); - //Console.WriteLine(text); - // adjust formatting of exponents - if (numbersShouldBeFormated) - text = DoFortranFormat(text); - // determine whether the table/figure should be outlined: - if (tableShouldBeOutlined) - { - OutlineRTFTable myTable = new OutlineRTFTable(text, tableHasBorder); - // if a table has internal line draw characters, we may have to do part of 'OutlineTable' - // to convert dashes and vertical bars to line draw characters. - if (tableHasBorder) myTable.OutlineTable(); - text = myTable.Lines.ToString(); - } - - // if we're working with a grid it won't go thru here. - if (!text.StartsWith(@"{\rtf")) - { - // as a precaution, convert any \~ to \u160?. This is for Hard spaces. see the commentary in the - // save portion of this code for an explanation. - text = text.Replace(@"\~", @"\u160?"); - text = text.Replace("\r\n", @"\par "); - //if (text.IndexOf(@"\line") > -1) - // MessageBox.Show("Found rtf line"); - text = text.Replace(@"\line", @"\par"); - - // Now put symbol (for fixed fonts) or unicode font (proportional) around symbols - // These fonts are VESymbFix & Arial Unicode MS respectively, and the font table - // is actually defined in the StepRTB code. - int indxsym = NextUnicode(text, 0);//text.IndexOf(@"\u"); - while (indxsym != -1) - { - int incrindx = 3; - if (text[indxsym + 2] != 'l') - { - text = text.Insert(indxsym, @"\f1 "); - int indxendsym = text.IndexOfAny(@"\ ?".ToCharArray(), indxsym + 5); - if (indxendsym == -1) // must be end of line: - text = text.Insert(text.Length - 1, @"\f0 "); - else - { - if (text[indxendsym] == '?') indxendsym++; - text = text.Insert(indxendsym, @"\f0 "); // TODO: do I need a space?? - } - incrindx = 5; - } - indxsym = NextUnicode(text, indxsym + incrindx);//text.IndexOf(@"\u", indxsym + incrindx); - } - } - return text; - } - - private string DoSearchAndReplace(string text, string find, string replace) - { - return text.Replace(find, replace); - } - private static string DoColorLinks(string text) - { - string origtext = text; - text = Regex.Replace(text, @"( -1) - { - text = text.Insert(indxend, @"\cf0"); - indxcf = text.IndexOf(@"\v0\cf1", indxend); - } - else - { - indxcf = -1; - _MyLog.WarnFormat("DisplayText.DoColorLinks Failed\r\norgitext:'{0}'\r\ntext'{1}'", origtext, text); - } - } - } - catch (Exception ex) - { - _MyLog.WarnFormat("DisplayText.DoColorLinks Failed\r\norgitext:'{0}'\r\ntext'{1}'", origtext, text); - } - return text; - } - private int NextUnicode(string text, int offset) - { - // Skip Hard Spaces - Match m = Regex.Match(text.Substring(offset), @"\\u[0-9a-fA-F]"); - while(m.Success && text.Substring(offset+m.Index).StartsWith(@"\u160")) - { - offset += m.Index + 5; - m = Regex.Match(text.Substring(offset), @"\\u[0-9a-fA-F]"); - } - if (m.Success) - return m.Index + offset; - return -1; - } - private string DoROAdjustments(string text) - { - Regex regRefObj = new Regex(@"\#Link\:ReferencedObject:([0-9]*) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline); - string strippedText = StaticStripRtfCommands(text); - // (\\[^v \\]+)* --> look for any rtf commands (first part of lookFor) - // \\v0 --> end of comment - // (\\[^v \\]+)* --> more rtf commands ended by a space - // (.*?) --> smallest anything to that matches this based on what's next - // (\\[^v' \\]+)* --> look for rtf commands but exclude \' before the \v - // \\v(\\[^v \\]+)* --> look for rtf commands after the \v - // if it turns out that if ro's have any embedded unicode characters this needs expanded, such as /u8209? (hard hyphen) - string lookFor = string.Format(@""); - MatchCollection matches = Regex.Matches(text, lookFor); - for (int i = matches.Count - 1; i >= 0; i--) - { - Match m = matches[i]; - if (m != null && m.Groups.Count > 6 && m.Groups[6].ToString() == "ReferencedObject") - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - Match myMatch = regRefObj.Match(m.ToString()); - int dbid = System.Convert.ToInt32(myMatch.Groups[2].Value.Substring(0, 4), 16); - int rodbid = int.Parse(myMatch.Groups[3].Value); - ROFstInfo myROFst = _MyItemInfo.MyDocVersion.GetROFst(rodbid); - bool isSetpoint = myROFst.IsSetpointDB(dbid); - string beforeRO = StaticStripRtfCommands(text.Substring(0, g.Index)); - string afterRO = StaticStripRtfCommands(text.Substring(g.Index + g.Length)); - string newvalue = DoROFormatFlags(g.ToString(), beforeRO, afterRO, isSetpoint); - newvalue = DoROReplaceWords(_MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList, newvalue, _MyItemInfo.IsHigh); - if (isSetpoint) newvalue = ReplaceSpaceWithHardspace(newvalue); - if (newvalue.Contains("^")) Console.WriteLine("here"); - newvalue = newvalue.Replace("^", @"\u916?"); - if (g.ToString() != newvalue) - text = text.Substring(0, g.Index) + newvalue + text.Substring(g.Index + g.Length); - } - } - return text; - } - private string DoROReplaceWords(ReplaceStrList replaceStrList, string newvalue, bool isHigh) - { - foreach (ReplaceStr rs in replaceStrList) - { - if (((rs.Flag & E_ReplaceFlags.Setpoint) > 0) || (isHigh && (rs.Flag & E_ReplaceFlags.HLSSetpnt) > 0)) - { - newvalue = newvalue.Replace(rs.ReplaceWord, rs.ReplaceWith); - } - } - return newvalue; - } - // Replace spaces with hardspaces, but DO NOT replace the end of an Rtf Command with a hardspace - private string ReplaceSpaceWithHardspace(string newvalue) - { - string oldvalue = newvalue; - int spindx = newvalue.IndexOf(" "); - int lstindx = -1; - while (spindx >= 0) - { - if (!EndsRtfCommand(newvalue, spindx, lstindx)) - { - newvalue = newvalue.Remove(spindx, 1); - newvalue = newvalue.Insert(spindx, @"\u160?"); - } - lstindx = spindx; - spindx = (spindx + 1 >= newvalue.Length)?spindx = -1: newvalue.IndexOf(" ", spindx+1); - } - return newvalue; - } - - private bool EndsRtfCommand(string str, int spindx, int previndx) - { - // get text from last space to current, or from beginning of string to current: - int start = previndx < 0 ? 0 : previndx+1; - string substring = str.Substring(start, spindx-start); - if (substring.Contains(@"\")) - { - // is space ending an rtf command. - int startCmd = substring.LastIndexOf(@"\"); - string Cmd = substring.Substring(startCmd); - char tst = Cmd[1]; - // consider rtf commands up/dn/b/ul/i - if (tst == 'u' || tst == 'd' || tst == 'b' || tst == 'u' || tst == 'i') return true; - } - return false; - } - private string DoTransitionAdjustments(string text, bool boldTran) - { - string strippedText = StaticStripRtfCommands(text); - string lookFor = string.Format(@""); - MatchCollection matches = Regex.Matches(text, lookFor); - if (matches.Count == 0) return text; - string retstr = text; - for (int i = matches.Count - 1; i >= 0; i--) - { - Match m = matches[i]; - // if this transition text already has a hard space, don't add another. - if (m.Groups[3].Value.Contains("\xA0")) continue; - // if the transition text does not start with a digit, don't add the hardspace. - //if (!Char.IsDigit(m.Groups[3].Value[0])) continue; - if (m != null && m.Groups.Count > 7 && m.Groups[6].ToString().StartsWith("Transition")) - { - if (m.Groups[7].Value != "") // && StepTransition(int.Parse(m.Groups[7].Value))) - { - System.Text.RegularExpressions.Group g = m.Groups[3]; - string beforeTran = retstr.Substring(0, g.Index); - string afterTran = retstr.Substring(g.Index + g.Length); - - // if replacing text in the 'beforeTran' string, then do it here, - // i.e. there is a format flag 'BeforeTrans' that bolds text before the transition - // (in wst formats). - beforeTran = DoBeforeTransFlagSupport(beforeTran, _MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ReplaceStrList); - string newvalue = g.ToString(); - // if this is a 'step transition' type, i.e. includes a step number, in addition to other replacements, - // we want to change a space to a hardspace. - if (StepTransition(int.Parse(m.Groups[7].Value))) - { - int indexLastSpace = newvalue.LastIndexOf(' '); - if (indexLastSpace >= 0) - // Use a "\x1" as a token to replace later. Insert the unicode char, whose length is - // more than 1 character was throwing of the regexp Matches index, so that the resulting - // string may have been incorrect. - retstr = beforeTran + (boldTran ? @"\b " : null) + newvalue.Substring(0, indexLastSpace) + "\x1" + newvalue.Substring(indexLastSpace + 1) + (boldTran ? @"\b0" : null) + afterTran; - else - if (beforeTran.EndsWith(" ")) - retstr = ReplaceLastSpaceWithHardSpace(beforeTran) + (boldTran ? @"\b " : null) + newvalue + (boldTran ? @"\b0" : null) + afterTran; - else - Console.Write("");// Don't know where to put the Hard Space - } - else if (boldTran) - { - retstr = beforeTran + @"\b " + newvalue + @"\b0" + afterTran; - } - } - } - } - return retstr.Replace("\x1", @"\u160?"); - } - - private string DoBeforeTransFlagSupport(string beforeTran, ReplaceStrList replaceStrList) - { - foreach (ReplaceStr repstr in replaceStrList) - { - if ((repstr.Flag & E_ReplaceFlags.BeforeTrans) > 0) - { - // the beforeTran string ends with the string that starts the transition comment, i.e. - // '\\v -1) - { - string findit = beforeTran.Substring(0, beforeTran.LastIndexOf(@"\v 0 && str[ind - 1] != ' ') - { - if (ind > 5 && str.Substring(0, ind).EndsWith(@"\u160?") || str.Substring(0, ind).ToLower().EndsWith(@"\'a0")) - return str;//Already has a Hard Space - ind = str.LastIndexOf(@"\", ind - 1); - } - // If the previous character is a comma or a space then don't add a Hard Space - if (ind > 1 && (str[ind - 2] == ',' || str[ind - 2] == ' ')) return str; - if (ind <= 0) return str; - - // replace with a 'token' "\x1" instead of a hardspace unicode char. When using a hardspace unicode - // char the string length/contents was thrown off so that the calling method's processing was off - // in terms of regexp matches in string. - return str.Substring(0, ind - 1) + "\x1" + str.Substring(ind); - } - private bool StepTransition(int TransId) - { - if (_MyItemInfo == null) return false; - _MyItemInfo.MyContent.RefreshContentTransitions(); - foreach (TransitionInfo trans in _MyItemInfo.MyContent.ContentTransitions) - if (trans.TransitionID == TransId) - return trans.MyItemToID.IsStep; - return false; - } - private string DoFortranFormat(string text) - { - if (text.IndexOf(@".E") < 0) return text; - // Look for text as n.Ey, where n can be null or a number, and y can be - // positive or negative. This translates into nx10x10y where y is - // superscripted. For example, .E3 -> x103 where 3 is superscripted - // and 10.E5 -> 10x10-5 where 5 is superscripted - string pat = @"(\d*).E([+-]*\d+)"; - string retstr = text; - // for each one that needs translated: - foreach (Match m in Regex.Matches(text, pat)) - { - string fnum = m.Groups[1].Value; - string supnum = m.Groups[2].Value; - string newstr = string.Format(@"{0}x10\up2 {1}\up0 ", fnum, supnum); - retstr = retstr.Replace(m.Value, newstr); - } - return retstr; - } - #endregion - #region SaveData - public bool Save(RichTextBox rtb) - { - //int savSelStart = rtb.SelectionStart; - try - { - //FormatInfo formatInfo = _MyItemInfo.ActiveFormat; - using (_MyItem = _MyItemInfo.Get()) - { - // The following was added to support transitions to un-numbered steps - if (_MyItemInfo.NewTransToUnNumberedItem && rtb.Text.Contains("")) - { - ItemAnnotation ia = _MyItem.ItemAnnotations.Add(AnnotationType.GetByName("Verification Required")); - ia.SearchText = "Transition to Un-Numbered Step"; - _MyItemInfo.NewTransToUnNumberedItem = false; - } - // check for different text, i.e. text from this itm doesn't match - // original text, a change occurred in database, but not from this user. - if (OriginalText != EditText) - { - Console.WriteLine("Save Failed because text changed outside of this edit session."); - return false; - } - string modtext = RtfToDbText(rtb.Rtf).Replace("", "\\\\"); - - // if there are links, we'll need to do extra processing to see if - // there were additions, deletions or modifications. - bool haslinks = ((modtext.IndexOf(@" -1) || (OriginalText != null && OriginalText != "" && OriginalText.IndexOf(@" -1)); - if (haslinks) - { - // Get all links in original list - RtfToDisplayTextElements(OriginalText); - List origList = GetLinkList(DisplayTextElementList); - // now get new text into displaytext elements for comparison for links: - RtfToDisplayTextElements(modtext); - // Compare ro/transition lists and delete or add any to the item for any ros/transitions that have been - // added/deleted or modified. - ProcessRoTranChanges(_MyItem, origList); - EditText = DteToString(); - // if new transitions/ros, we need to 'fix' the string in the embedded link to contain the - // transition or usage record. - Dictionary ctReplacements = BuildCtReplacements(_MyItem.MyContent.ContentTransitions); - Dictionary roUsgReplacements = BuildRoUsgReplacements(_MyItem.MyContent.ContentRoUsages); - _MyItem.DTS = DateTime.Now; - _MyItem.UserID = Volian.Base.Library.VlnSettings.UserID; - // Do the Save once rather than multiple times - _MyItem.Save(); - if (ctReplacements.Count > 0) - { - EditText = FixCtReplacements(EditText, ctReplacements); - // Replace Transition Text - foreach (ContentTransition ct in ctReplacements.Values) - using (TransitionInfo tran = TransitionInfo.Get(ct.TransitionID)) - _MyItem.MyContent.FixTransitionText(tran); - _MyItem.Save(); - } - if (roUsgReplacements.Count > 0) - { - EditText = FixRoUsgReplacements(EditText, roUsgReplacements); - _MyItem.Save(); - } - modtext = EditText; - } - else - { - EditText = modtext; - foreach (Csla.Validation.BrokenRule br in _MyItem.MyContent.BrokenRulesCollection) - { - Console.WriteLine("{0} - {1}", br.Property, br.Description); - } - // Don't update the DTS or User for Text Changes - //_MyItem.DTS = DateTime.Now; - //_MyItem.UserID = Volian.Base.Library.VlnSettings.UserID; - _MyItem.Save(); - } - _MyItem = null; - OriginalText = modtext; - } - } - catch (Exception ex) - { - Console.WriteLine("DisplayText Save Failed with error: {0} - {1}\r\n{2}", ex.GetType().Name, ex.Message, ex.StackTrace); - return false; - } - //rtb.SelectionStart = savSelStart; - return true; - } - private string DteToString() - { - StringBuilder sret = new StringBuilder(); - foreach (displayTextElement vte in DisplayTextElementList) - { - if (vte.Type == E_TextElementType.Text || vte.Type == E_TextElementType.Symbol) - sret.Append(vte.Text); - else - { - displayLinkElement dle = vte as displayLinkElement; - if (vte != null) sret.Append(dle.TextAndLink); - } - } - string modtext = sret.ToString(); - return modtext; - } - private string FixRoUsgReplacements(string p, Dictionary roUsgReplacements) - { - foreach (int oldid in roUsgReplacements.Keys) - { - p = p.Replace(string.Format("", oldid), roUsgReplacements[oldid].ROUsageID.ToString()); - } - return p; - } - private Dictionary BuildRoUsgReplacements(ContentRoUsages contentRoUsages) - { - Dictionary retval = new Dictionary(); - foreach (ContentRoUsage rou in contentRoUsages) - { - if (rou.ROUsageID < 0) retval.Add(rou.ROUsageID, rou); - } - return retval; - } - private string FixCtReplacements(string p, Dictionary ctReplacements) - { - foreach (int oldid in ctReplacements.Keys) - { - p = p.Replace(string.Format("",oldid),ctReplacements[oldid].TransitionID.ToString()); - } - return p; - } - private Dictionary BuildCtReplacements(ContentTransitions contentTransitions) - { - Dictionary retval = new Dictionary(); - foreach (ContentTransition ct in contentTransitions) - { - if (ct.TransitionID < 0) retval.Add(ct.TransitionID, ct); - } - return retval; - } - private void ProcessRoTranChanges(Item itm, List origList) - { - // go through list. Note that only linked items are in the origList. - // 1) delete any that are in origList but not in the DisplayTextElementList - // (that represents the current text & links) - // 2) add any that are only in DisplayTextElementList - // 3) delete/add for modify? - - // delete first - if in original, but not in current list, delete the one - // in the original list. - foreach (displayLinkElement odte in origList) - { - bool found = false; - foreach (displayTextElement dte in DisplayTextElementList) - { - if (dte.Type == odte.Type) - { - displayLinkElement l_dte = (displayLinkElement)dte; - if (odte.Link == l_dte.Link) - { - found = true; - break; - } - } - } - // remove the link element from the item. - if (!found) - { - // Get record id for ro or trans and then find the associated ro or transition - // in the item's list. remove it. - int recid = -1; - if (odte.Type != E_TextElementType.ReferencedObject) - { - int sp = odte.Link.IndexOf(" ") + 1; // get past tran type - string srecid = odte.Link.Substring(sp, odte.Link.IndexOf(" ", sp) - sp); - recid = System.Convert.ToInt32(srecid); - foreach (ContentTransition ct in itm.MyContent.ContentTransitions) - { - if (ct.TransitionID == recid) - { - itm.MyContent.ContentTransitions.Remove(ct); - break; - } - } - } - else - { - int sp = odte.Link.IndexOf(" "); - //rousageid starts after "ReferencedObject:", i.e. index in link of 17 - string srecid = odte.Link.Substring(17, sp-17); - recid = System.Convert.ToInt32(srecid); - foreach (ContentRoUsage cr in itm.MyContent.ContentRoUsages) - { - if (cr.ROUsageID == recid) - { - itm.MyContent.ContentRoUsages.Remove(cr); - break; - } - } - } - } - } - // now do insert, i.e. in new list, but not in old. - foreach (displayTextElement dte in DisplayTextElementList) - { - bool found = false; - if (dte.Type == E_TextElementType.ReferencedObject || dte.Type == E_TextElementType.Transition || dte.Type == E_TextElementType.TransitionRange) - { - foreach (displayLinkElement odte in origList) - { - if (dte.Type == odte.Type) - { - // if the link is the same, it exists, so no action is required. - displayLinkElement l_dte = (displayLinkElement)dte; - if (odte.Link == l_dte.Link) - { - found = true; - break; - } - } - } - // Insert the link (ro or transition) to the item - if (!found) - { - if (dte.Type == E_TextElementType.ReferencedObject) // do ro - { - displayLinkElement l_dte = (displayLinkElement)dte; - Match m = Regex.Match(l_dte.Link, "([A-Za-z]*):(.*)"); - string linkstr = m.Groups[2].Value; - string[] roparts = linkstr.Split(" ".ToCharArray()); - ContentRoUsage rousg = null; - using (RODb rodb = RODb.GetJustRoDb(Convert.ToInt32(roparts[2]))) - { - rousg = itm.MyContent.ContentRoUsages.Add(roparts[1], rodb); - } - l_dte.Link = l_dte.Link.Replace("", string.Format("", rousg.ROUsageID)); - l_dte.TextAndLink = l_dte.TextAndLink.Replace("", string.Format("", rousg.ROUsageID)); - break; - } - else if (dte.Type == E_TextElementType.TransitionRange || dte.Type == E_TextElementType.Transition) - { - displayLinkElement l_dte = (displayLinkElement)dte; - Match m = Regex.Match(l_dte.Link, "([A-Za-z]*):(.*)"); - string linkstr = m.Groups[2].Value; - string[] tparts = linkstr.Split(" ".ToCharArray()); - int type = System.Convert.ToInt32(tparts[0]); - int tr1 = System.Convert.ToInt32(tparts[2]); // tparts[2] is token for tranid - int tr2 = tr1; - if(tparts.Length > 3) - tr2 = System.Convert.ToInt32(tparts[3]); // tparts[3] is token for rangeid - bool dispose1 = false; - Item itm1 = null; - bool dispose2 = false; - Item itm2 = null; - if (itm.ItemID == tr1) - itm1 = itm; // a transition that points to itself should not dispose - else - { - dispose1 = true; - itm1 = Item.Get(tr1); - } - if (itm.ItemID == tr2) - itm2 = itm; // a transition that points to itself should not dispose - else if (tr1 == tr2) - itm2 = itm1; // if both destinations are the same only dispose the first one - else - { - dispose2 = true; - itm2 = Item.Get(tr2); - } - ContentTransition ct = itm.MyContent.ContentTransitions.Add(itm1, itm2); - //Console.WriteLine("CT {0},{1},{2},{3}", ct.TransitionID, itm.ItemID, itm.MyContent.MyContentUnique, itm.MyContent.ContentTransitions.Count); - ct.TranType = type; - if (dte.Type == E_TextElementType.Transition) - ct.IsRange = 0; - else if (tr1 != tr2) - ct.IsRange = 1; - else - ct.IsRange = 2; - l_dte.Link = l_dte.Link.Replace("", string.Format("", ct.TransitionID)); - l_dte.TextAndLink = l_dte.TextAndLink.Replace("", string.Format("", ct.TransitionID)); - if (dispose2) itm2.Dispose(); - if (dispose1) itm1.Dispose(); - } - } - } - } - } - private List GetLinkList(List locDisplayTextElementList) - { - List retList = new List(); - foreach (displayTextElement vte in locDisplayTextElementList) - { - if (vte.Type == E_TextElementType.ReferencedObject || vte.Type == E_TextElementType.TransitionRange || vte.Type == E_TextElementType.Transition) - { - displayLinkElement tmp = (displayLinkElement)vte; - displayLinkElement copy_vte = new displayLinkElement(); - copy_vte.Type = tmp.Type; - copy_vte.Link = tmp.Link; - copy_vte.Text = tmp.Text; - retList.Add(copy_vte); - } - } - return retList; - } - private void RtfToDisplayTextElements(string text) - { - // get original text into displaytext elements for comparison for links: - if (DisplayTextElementList == null) - DisplayTextElementList = new List(); - else - DisplayTextElementList.Clear(); - - if (text == null || text == "") return; - - string noExtraRtfStr = text; - - int startIndex = 0; - int index = -1; - noExtraRtfStr = noExtraRtfStr.Replace(@"><", @">\v0 \v <"); - while ((index = FindTokenChar(noExtraRtfStr, startIndex)) > -1) - { - // Do any 'plain' text that preceeds the token. - if (index > startIndex) DoTextElement(noExtraRtfStr, startIndex, index); - - if (noExtraRtfStr[index + 1] == 'v') - index = DoLink(noExtraRtfStr, index); - else - index = DoSymbol(noExtraRtfStr, startIndex, index); - startIndex = index; // +1; - if (startIndex >= noExtraRtfStr.Length) break; - } - // Add any remaining text. - if (startIndex < noExtraRtfStr.Length) DoTextElement(noExtraRtfStr, startIndex, index); - } - private string RtfToDbText(string text) - { - // For hardspaces, the windows richtextbox does some 'quirky' things: - // A unicode representation of \u160? is sent INTO the rtb. Coming out, - // that \u160? was translated to a \~ (by the underlying windows rtb). - // Note that if the \~ is sent to the rtb, it is treated as a regular space, - // i.e. no longer a hardspace, and actually is converted to a regular space. - // SO, on the way out, convert any \~ to \u160? - string noExtraRtfStr = text.Replace(@"\~", @"\u160?"); - noExtraRtfStr = noExtraRtfStr.Replace(@"\'a0", @"\u160?"); - - // Check for two links in a row & if found, add separating rtf comment - // commands (these get removed in the richtextbox: - // RHM 20100303 Not sure why this is here. The RichTextBox will always remove it. - //noExtraRtfStr = noExtraRtfStr.Replace(@"[END>\v0 \v -1) noExtraRtfStr = noExtraRtfStr.Replace(@"\'05", "\x05"); - - return noExtraRtfStr; - } - public static string StaticReplaceRTFClause(Match m) - { - try - { - string token = m.Groups[1].Value; - switch (token[1]) - { - case '\\': - return token; - case 'u': - if (Regex.IsMatch(token, @"^\\u[0-9]+$")) - return token; // Special Charcaters - if (Regex.IsMatch(token, @"^\\ulnone ?$")) - return token; - if (Regex.IsMatch(token, @"^\\ul.*$")) - return token; // Underline - if (Regex.IsMatch(token, @"^\\up[0-9] ?$")) - return token; // shift up (superscript) - break; - case 'd': - if (Regex.IsMatch(token, @"^\\dn[0-9] ?$")) - return token; // shift down (subscript) - break; - case '\'': // Special Character - return token; - case 'b': // Bold - return token; - case 'i': // Italics - return token; - case '{': // look for escape for curly braces: - return token; - case '}': - return token; - case 'v': // save link hidden info - if (Regex.IsMatch(token, @"^\\v0? ?$")) return token; // comment part of link - // end comment may end in space or may end in '\' if another rtf command, - // or may end at end of string. First check for space, keep it in string - // if it is there. - //if (Regex.IsMatch(token, @"\\v0 ")) - // return token; - //if (Regex.IsMatch(token, @"\\v0")) - // return token; - break; - case 'l': - if (Regex.IsMatch(token, @"^\\line ?$")) return token; - break; - case 'p': - if (Regex.IsMatch(token, @"^\\par ?$")) return "\r\n"; - //if (token == @"\protect") - // return token; - //if (token == @"\protect0") - // return token; - //if (token.Length >= 6 && token.Substring(0, 6) == "\\par\r\n") return token.Replace("\r\n", " "); - break; - //case 'f': // handle fonts separately because they may or may not have a space after them - // if (token[2] >= '0' && token[2] <= '9') return token; - // break; - } - } - catch (Exception ex) - { - Console.WriteLine("StaticReplaceRTFClause {0} - {1}", ex.GetType().Name, ex.Message); - } - return "";//Strip All - } - public string StripRtfCommands(string rtf) - { - // replace \{ & \} with (![ & (!] respectively and then redo at end. The curly braces - // are rtf so were getting removed and/or not handled correctly. - string retval = rtf.Replace(@"\{", @"(!["); - retval = retval.Replace(@"\}", @"(!]"); - - // remove carriage return/newlines after \par commands (these are introduced by rtb - // for hard returns, goes into rtb as \par and comes out as \par\r\n): - retval = Regex.Replace(retval, @"\\par\r\n(?!\\)", "\\par "); - retval = Regex.Replace(retval, @"[\r\n]", "", RegexOptions.Singleline); // Strip Carriage Returns and Newlines - retval = Regex.Replace(retval, @"^\{(.*)\}$", "$1", RegexOptions.Singleline); // Strip Opening and Closing Braces - retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+)(?=\\)", "$1 "); // add space after token if followed by token - retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+ )", new MatchEvaluator(StaticReplaceRTFClause)); // take backslash xyz and evaluates them - retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+) (?=\\)", "$1"); // remove space between tokens - retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+) (?=\r\n)", "$1"); // remove space before /r/n - // remove \r\n at end of string if the string has 2 or more characters - if (retval.EndsWith("\r\n")) retval = retval.Remove(retval.Length - 2, 2); - if (retval.Length == 0) return ""; - if (retval.EndsWith(@"\v")) retval = retval.Remove(retval.Length - 2, 2); - retval = _MyItemInfo.RemoveRtfStyles(retval); // RemoveRtfStyles(retval); - retval = retval.Replace(@"(![", @"\{"); - retval = retval.Replace(@"(!]", @"\}"); - retval = retval.TrimEnd(' '); - return retval; - } - // This is used in the DataLoader - public static string StaticStripRtfCommands(string rtf) - { - // replace \{ & \} with (![ & (!] respectively and then redo at end. The curly braces - // are rtf so were getting removed and/or not handled correctly. - string retval = rtf.Replace(@"\{", @"(!["); - retval = retval.Replace(@"\}", @"(!]"); - - // For hardspaces, the windows richtextbox does some 'quirky' things: - // A unicode representation of \u160? is sent INTO the rtb. Coming out, - // that \u160? was translated to a \~ (by the underlying windows rtb). - // Note that if the \~ is sent to the rtb, it is treated as a regular space, - // i.e. no longer a hardspace, and actually is converted to a regular space. - // SO, on the way out, convert any \~ to \u160? - retval = retval.Replace(@"\~", @"\u160?"); - - // remove carriage return/newlines after \par commands (these are introduced by rtb - // for hard returns, goes into rtb as \par and comes out as \par\r\n): - retval = Regex.Replace(retval, @"\\par\r\n(?!\\)", "\\par "); - //retval = Regex.Replace(retval, @"\\par\r\n(?=\\)", "\\par"); - - retval = Regex.Replace(retval, @"[\r\n]", "", RegexOptions.Singleline); // Strip Carriage Returns and Newlines - retval = Regex.Replace(retval, @"^\{(.*)\}$", "$1", RegexOptions.Singleline); // Strip Opening and Closing Braces - retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - //retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+)\\f[0-9] ", "$1 "); // remove font command - if next to another command, keep other command and space - // OLD: The following two lines are replaced by the more generic replace above. - //retval = Regex.Replace(retval, @"\\v\\f[0-9] ", "\\v "); // remove font command - if next to Comment keep space - //retval = Regex.Replace(retval, @"\\line\\f[0-9] ", "\\line "); // remove font command - if next to Line keep space - //retval = Regex.Replace(retval, @"\\f[0-9] ", ""); // remove font command with ending space - //retval = Regex.Replace(retval, @"\\f[0-9]", ""); // remove font command without ending space - //retval = Regex.Replace(retval, @"\\par ", "\r\n"); - retval = Regex.Replace(retval, @"(\\[^' \\?\r\n\t]+)(?=\\)", "$1 "); // add space after token if followed by token - //retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+)(\\)", "$1 $2"); // take backslash xyz and evaluates them - retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+ )", new MatchEvaluator(StaticReplaceRTFClause)); // take backslash xyz and evaluates them - retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+) (?=\\)", "$1"); // remove space between tokens - retval = Regex.Replace(retval, @"(\\[^ \\?\r\n\t]+) (?=\r\n)", "$1"); // remove space before /r/n - // remove a space if there is one as the first character or the last character - //if (retval[0] == ' ') retval = retval.Remove(0, 1); - //retval = retval.TrimEnd(' '); - // remove \r\n at end of string if the string has 2 or more characters - if (retval.Length > 1 && retval.Substring(retval.Length - 2, 2) == "\r\n") retval = retval.Remove(retval.Length - 2, 2); - // remove \par at end of string if the string has 4 or more characters - //if (retval.Length > 3 && retval.Substring(retval.Length - 4, 4) == @"\par") retval = retval.Remove(retval.Length - 4, 4); - // remove a space following \r\n - //retval = Regex.Replace(retval, "\r\n ", "\r\n"); - ////if there are still spaces following \r\n, then probable in a table - we need to put the space back - //retval = Regex.Replace(retval, "\r\n ", "\r\n "); - - if (retval.Length == 0) return ""; - if (retval.Length > 1 && retval.Substring(retval.Length - 2, 2) == @"\v") retval = retval.Remove(retval.Length - 2, 2); - //retval = RemoveRtfStyles(retval); - //if (itmInfo != null) - // retval = StaticRemoveRtfStyles(retval, itmInfo); - - retval = retval.Replace(@"(![", @"\{"); - retval = retval.Replace(@"(!]", @"\}"); - retval = retval.TrimEnd(' '); - - // the indent character was translated in the richtextbox, change it back: - if (retval.IndexOf(@"\'05") > -1) retval = retval.Replace(@"\'05", "\x05"); - return retval; - } - #endregion - #region StyleData - //private VE_Font GetItemFont() - //{ - // VE_Font font = null; - // FormatInfo format = _MyItemInfo.ActiveFormat; - // int type = (int)_MyItemInfo.MyContent.Type; - // switch (type/10000) - // { - // case 0: // procedure - // font = format.PlantFormat.FormatData.Font; - // break; - // case 1: // section - // font = format.PlantFormat.FormatData.SectData.SectionHeader.Font; - // break; - // case 2: // step types - // int typindx = type - 20000; // what to do for other types rather than steps - // font = format.PlantFormat.FormatData.StepDataList[typindx].Font; - // break; - // } - // TextFont = font; - // return font; - //} - #endregion - #region DoListElements - private int FindTokenChar(string txt, int startIndex) - { - // 'tokens' are for symbols and links (ro & transitions). symbols are represented by \u - // and links are represented by \v \v0 - bool done = false; - while (!done) - { - int indx = txt.IndexOf('\\', startIndex); - if (indx < 0) return indx; - // see if symbol (but not underline) or another rtf command: has a 'u' - // followed by a non-underline or single quote, and if so, return it. - if (((txt[indx + 1] == 'u' && txt[indx + 2] != 'l' && txt[indx + 2] !='p')) || (txt[indx + 1] == '\'')) return indx; - // see if link - if (txt[indx + 1] == 'v') return indx; //TODO - should have ") != -1) return text; - int transitionID = Convert.ToInt32(link.Split(" ".ToCharArray())[1]); - // Find the transition - if (_MyItemInfo.MyContent.ContentTransitionCount <= 0) - { - // TODO: RHM 20100310 - _MyItemInfo.MyContent.RefreshContentTransitions(); - if (_MyItemInfo.MyContent.ContentTransitionCount <= 0) - return "*Resolved Transition Text*"; - } - foreach (TransitionInfo ti in _MyItemInfo.MyContent.ContentTransitions) - { - if (ti.TransitionID == transitionID) - { - string path = ti.ResolvePathTo(_MyFormat, _MyItemInfo, ti.TranType, ti.MyItemToID, ti.MyItemRangeID); - return path; - } - } - return text; - } - private int DoTran(string text,int index) - { - displayLinkElement vte = new displayLinkElement(); - - // determine if Range by checking for "R" after Transition (otherwise ":") - int linkindx = text.IndexOf(@"#Link", index); - vte.Type = (text[linkindx+16]=='R')?E_TextElementType.TransitionRange:E_TextElementType.Transition; - return DoLinkElements(text, index, vte); - } - - //private int GetLastLower(string stepText) - //{ - // // TO DO: need to check AlwaysUpperCase format setting - this was not yet converted as of 17Jun2010 - // // if (AlwaysUpperCase[steptype]) return (stepText.Length-1); - - // int idx = stepText.Length - 1; - // while (idx >= 0 && !(char.IsLower(stepText[idx]) && stepText[idx] != 's')) idx--; - // if (idx < 0) idx = stepText.Length - 1; // entire string is uppercased set return value to end of string - // return idx; - //} - - //private bool IsSpaceOrHardSpace(char ch) - //{ - // string spaces = @" \u160?"; - // return (spaces.IndexOf(ch) >= 0); - //} - private string DoROFormatFlags(string roText, string beforeRO, string afterRO, bool isSetpoint) - { - if (_MyItemInfo.ItemID == 357220) Console.WriteLine("here"); - string rtnstr = roText; - // The RO text is being changed to match it's context. Since it is changed in reverse order, the text before the RO - // should ignore other RO text. - beforeRO = Regex.Replace(beforeRO, @"(\\[^v \\]+)*\\v0[^v\\]*\\v(\\[^v \\]+)* #Link:Refer", ""); // Remove any RO Values. - beforeRO = Regex.Replace(beforeRO, @"(\\[^v \\]+)*\\v(\\[^v \\]+)* .*?\\v0(\\[^v \\]+)*( |$)", ""); // Remove Comments - afterRO = Regex.Replace(afterRO, @"(\\[^v \\]+)*\\v(\\[^v \\]+)* .*?\\v0(\\[^v \\]+)*( |$)", ""); // Remove Comments - - // Underline all ROs, values and Units - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UnderlineRo) - { - // TO DO: Need to check if step text is already underlined - rtnstr = @"\ul " + rtnstr + @"\ulnone "; - } - - // UpcaseAllRoUnits - Uppercases ALL ROs units everywhere. - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UpcaseAllRoUnits) - return UpperCaseUnits(rtnstr); - - //Forces the units for a RO to be uppercased for high level steps - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.CapHighRo && _MyItemInfo.IsHigh) - return UpperCaseUnits(rtnstr); - - // Caps ROs anywhere if no lower case text follows - // and an upper case letter immediately precedes the RO. - - // 16bit code: - //if((CapSPIfLastLower && (*ptr > firstupper || firstupper==TextBuffer-1)) || - // capit || CheckUpSetpntAftrDash(*ptr) || CheckUpSPIfPrevUpper(*ptr)) - //(void) UpCase(text); - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.CapRoIfLastLower && !Regex.IsMatch(afterRO, "[a-z]") && char.IsUpper(LastAlpha(beforeRO))) - { - //int indx = startLinkText - 1; - //int indx2 = endLinkText + 1; - //while (indx > 0 && !IsSpaceOrHardSpace(stepText[indx])) indx--; // find character before RO - //while (indx2 <= stepText.Length && !IsSpaceOrHardSpace(stepText[indx2])) indx2++; // find character after RO - - //if (indx >= 0 && char.IsUpper(stepText[indx]) && indx2 > GetLastLower(stepText)) - // doUpCase = true; - return UpperCaseUnits(rtnstr); - } - - // If a RO follows a "- " then it will be uppercased - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UpRoAftrDash && Regex.IsMatch(beforeRO, @".*\\u8209\?( |\\u160\?)$")) - { - //int indx = startLinkText - 1; - //while (indx > 0 && !IsSpaceOrHardSpace(stepText[indx])) indx--; // find character before RO - //string prefix = indx >= 7?stepText.Substring(indx-7,8):""; - //doUpCase = (prefix == @"\u8209? "); // Dash character before RO - return UpperCaseUnits(rtnstr); - } - - // Uppercase the RO Unit if the previous letter is uppercase - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.UpRoIfPrevUpper && char.IsUpper(LastAlpha(beforeRO))) - { - return UpperCaseUnits(rtnstr); - } - - //CapFirstLetterInHighRO - Cap only the first letters of the units in a high level RO - // note: used in FLP (Turkey Point) format - if (isSetpoint && _MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.CapFirstLetterInHighRO && _MyItemInfo.IsHigh) - { - int idx = 0; - string tstr = ""; - while (idx < rtnstr.Length && !char.IsLetter(rtnstr[idx])) tstr += rtnstr[idx++].ToString(); - if (idx < rtnstr.Length) - { - tstr += char.ToUpper(rtnstr[idx]).ToString(); - if (idx + 1 < rtnstr.Length) - tstr += rtnstr.Substring(idx + 1); - } - rtnstr = tstr; - } - - //In a sequence of RO values, the unit appears with every value - //(e.g., "25 gpm and 30 gpm" vs. "25 and 30 gpm") - //if (!_MyItemInfo.ActiveFormat.PlantFormat.FormatData.ROData.AllUnits) - //{ - // int idx = rtnstr.LastIndexOf(' '); - // if (idx > 0) - // { - // StringBuilder sb = new StringBuilder(); - // string lastunit = rtnstr.Substring(idx); // RO unit including preceeding space - // int idx2 = rtnstr.IndexOf(lastunit); - // int si = 0; - // while (idx2 < idx) - // { - // sb.Append(rtnstr.Substring(si, idx2 - si)); - // si = idx2 + lastunit.Length; - // idx2 = rtnstr.IndexOf(lastunit, si); - // } - // sb.Append(rtnstr.Substring(si)); - // rtnstr = sb.ToString(); - // } - //} - - return rtnstr; - } - /// - /// Uppercase alphabetical strings excluding any RTF token - /// - /// - /// - private string MatchEvaluatorUppercaseROUnits(Match match) - { - if (match.Value[0] == '\\') // If the previous character is a backslash then this is an RTF token - return match.Value; - return match.Value.ToUpper(); - } - Regex _RegExUppercaseROUnits = new Regex("(^|[^a-zA-Z])[a-zA-Z]+"); - private string UpperCaseUnits(string rtnstr) - { - // Uppercase Units - rtnstr = _RegExUppercaseROUnits.Replace(rtnstr, new MatchEvaluator(MatchEvaluatorUppercaseROUnits)); - // After converting the value to uppercase, change X10 to x10 to handle Fortran Formatted numbers - return rtnstr.Replace("X10", "x10"); - } - - // Find the last Alphabetical character - private char LastAlpha(string beforeRO) - { - Match m = Regex.Match(beforeRO, ".*([a-zA-Z])[^a-zA-Z]*"); - if (m.Success) return m.Groups[1].ToString()[0]; - return '\0'; - } - - private int DoLinkElements(string text, int index, displayLinkElement vte) - { - // Find the 'end comment' for this 0 && (endTextIndx < 0 || endTextIndx > endTextIndx2)) - endTextIndx = endTextIndx2; - vte.Text = text.Substring(endStartTknIndx + 4, endTextIndx - endStartTknIndx - 4); // 4 for \v0 - - // Now get the link part. It can be terminated by a '\v0' or an [END> - int endLinkIndxV = text.IndexOf(@"\v0 ", linkIndx); - if (endLinkIndxV == -1) endLinkIndxV = text.IndexOf(@"\v0", linkIndx); // at end of string - int endLinkIndxE = text.IndexOf(@"[END>", linkIndx); - int endLinkIndx = (endLinkIndxV < endLinkIndxE) ? endLinkIndxV : endLinkIndxE; - vte.Link = text.Substring(linkIndx + 6, endLinkIndx - linkIndx - 6); // 6 for #Link: - - string tmptxt = null; - if (vte.Type != E_TextElementType.ReferencedObject) - { - tmptxt = FixTransition(vte.Link, vte.Text); - vte.Text = tmptxt; - } - //else - //{ - // tmptxt = DoROFormatFlags(vte.Text, text, index, endLinkIndx); - // vte.Text = tmptxt; - //} - - // Now get the entire text & link. Account for various ending possibilities: - // ends with '\v0\'; ends with '\v0 '; ends with '\v0' (end of string); - // ends with '[END>' if two in a row - will have ", endLinkIndx + 3); // get past end of link - int endComment = text.IndexOf(@"\v0", endToken); - - int rettoken = 0; - int retlen = 4; - if (endComment + 3 == text.Length) retlen = 3; - else if (text[endComment + 3] == '\\') retlen = 3; - vte.TextAndLink = text.Substring(index, endComment - index + retlen); - rettoken = endComment + retlen; - if (vte.Type != E_TextElementType.ReferencedObject) - { - if (vte.TextAndLink.Contains("(Resolved Transition Text)")) - vte.TextAndLink = vte.TextAndLink.Replace("(Resolved Transition Text)", tmptxt); - else - if (vte.Text != tmptxt) - vte.Text = tmptxt; - } - DisplayTextElementList.Add(vte); - return rettoken; - } - private int DoSymbol(string text, int startIndex, int index) - { - displayTextElement vte = new displayTextElement(); - vte.Type = E_TextElementType.Symbol; - // symbols are the unicode/rtf command. A symbol can be represented by \'xy or - // in the text from the database \uxyz?. If the \'xy is used the length of the - // symbol number will always be two, otherwise find the index of the '?' to - // find the end. - int endindx = -1; - if (text[index + 1] == '\'') endindx = index + 3; - else endindx = text.IndexOf("?", index); - vte.Text = text.Substring(index, endindx - index + 1); - DisplayTextElementList.Add(vte); - return endindx+1; - } - #endregion - #region ReplaceWords - #region commented out - //private string DoReplaceWords(string Text) - //{ - // ReplaceStrList rsl = _MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList; - // foreach (ReplaceStr rs in rsl) - // { - // if (_MyItemInfo.MyContent.Type < 20000) return Text; // for now only replace in steps. - // bool replaceit = false; - - // if (_MyItemInfo.ItemID == 2557) Console.WriteLine("here"); - // // note that the order of this check is important. Check in this order... - // // background here - // if (_MyItemInfo.IsHigh && (rs.Flag & E_ReplaceFlags.High)>0) replaceit = true; - // else if ((_MyItemInfo.IsTable || _MyItemInfo.IsFigure) && (rs.Flag & E_ReplaceFlags.Table) > 0) replaceit = true; - // else if (_MyItemInfo.IsInRNO && (rs.Flag & E_ReplaceFlags.RNO) > 0) replaceit = true; - // else if (_MyItemInfo.IsCaution && (rs.Flag & E_ReplaceFlags.Caution) > 0) replaceit = true; - // else if (_MyItemInfo.IsNote && (rs.Flag & E_ReplaceFlags.Note) > 0) replaceit = true; - // else if (_MyItemInfo.IsStepPart && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // //else if (_MyItemInfo.IsInFirstLevelSubStep && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // else if (_MyItemInfo.IsAccPages & (rs.Flag & E_ReplaceFlags.Attach) > 0) replaceit = true; - - // if (replaceit) - // { - // // CASEINSENS: Do ReplaceWords for all words that match, regardless of case, and replace - // // with the ReplaceWith string as is - // if ((rs.Flag & E_ReplaceFlags.CaseInsens) > 0) - // { - // //string res = ""; - // //string fortest = Text.ToUpper(); - // ////string pat = @"(?<=\W|^)" + rs.ReplaceWord.ToUpper() + @"(?=\W|$)"; - // //// jsj 07Jun2010 HardSpaces defeat replaceword logic - // //string pat = @"(?<=\W|^)(? 0) - // { - // // only in Maine Yankee - we don't need to do this one. - // } - // // CASEINSENSFIRST: Do ReplaceWords for all words that exactly match the ReplaceWord, - // // except the case where the first character may be different - // else if ((rs.Flag & E_ReplaceFlags.CaseInsensFirst) > 0) - // { - // // only used in V.C. Summer - we don't need to do this either. - // } - // else - // { - // // If there are Regex Control Characters '\[]()' prefix them with backslash - // string replaceWord = Regex.Replace(rs.ReplaceWord, @"[[\]\\()]", @"\$0"); - // //string pat = @"(?<=\W|^)" + replaceWord + @"(?=\W|$)"; - // // jsj 07Jun2010 HardSpaces defeat replaceword logic - // //string pat = @"(?<=\W|^)(? 0) replaceit = true; - // else if ((_MyItemInfo.IsTable || _MyItemInfo.IsFigure) && (rs.Flag & E_ReplaceFlags.Table) > 0) replaceit = true; - // else if (_MyItemInfo.IsInRNO && (rs.Flag & E_ReplaceFlags.RNO) > 0) replaceit = true; - // else if (_MyItemInfo.IsCaution && (rs.Flag & E_ReplaceFlags.Caution) > 0) replaceit = true; - // else if (_MyItemInfo.IsNote && (rs.Flag & E_ReplaceFlags.Note) > 0) replaceit = true; - // else if (_MyItemInfo.IsStepPart && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // //else if (_MyItemInfo.IsInFirstLevelSubStep && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // else if (_MyItemInfo.IsAccPages & (rs.Flag & E_ReplaceFlags.Attach) > 0) replaceit = true; - - // if (replaceit) - // { - // // CASEINSENS: Do ReplaceWords for all words that match, regardless of case, and replace with the ReplaceWith string as is - // RegexOptions myOptions = (rs.Flag & E_ReplaceFlags.CaseInsens) == E_ReplaceFlags.CaseInsens ? RegexOptions.IgnoreCase : RegexOptions.None; - // string replaceWord = Regex.Replace(rs.ReplaceWord, @"[[\]\\()]", @"\$0"); - // string pat = @"(?<=\W|^)(? dicReplaceRegex = new Dictionary(); - private string DoReplaceWords2(string Text) - { - if (_MyItemInfo.MyContent.Type < 20000) return Text; // for now only replace in steps. - FoundMatches myMatches = new FoundMatches(Text); - // Exclude Link Text from Replace Word process - myMatches.AddLink(regFindLink, _MyFormat.PlantFormat.FormatData.SectData.ReplaceWordsInROs, _MyItemInfo.MyProcedure.MyDocVersion); - ReplaceStrList rsl = _MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList; - - // The only way to get an 'empty' list is to have one 'dummy' replacestr, i.e. that has ReplaceWord as an empty string. If the - // ReplaceStrData xml node is empty, it does the inheritance and gets the 'base' format's list. - if (rsl.Count==1 && (rsl[0].ReplaceWord == null || rsl[0].ReplaceWord == "")) return Text; - // Loop through text looking for words to be replaced - foreach (ReplaceStr rs in rsl) - { - bool replaceit = false; - // note that the order of this check is important. Check in this order... - // background here - if (_MyItemInfo.IsHigh && (rs.Flag & E_ReplaceFlags.High) > 0) replaceit = true; - else if ((_MyItemInfo.IsTable || _MyItemInfo.IsFigure) && (rs.Flag & E_ReplaceFlags.Table) > 0) replaceit = true; - else if (_MyItemInfo.IsInRNO && (rs.Flag & E_ReplaceFlags.RNO) > 0) replaceit = true; - else if (_MyItemInfo.IsCaution && (rs.Flag & E_ReplaceFlags.Caution) > 0) replaceit = true; - else if (_MyItemInfo.IsNote && (rs.Flag & E_ReplaceFlags.Note) > 0) replaceit = true; - else if (_MyItemInfo.IsStepPart && !_MyItemInfo.IsHigh && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - //else if (_MyItemInfo.IsInFirstLevelSubStep && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - else if (_MyItemInfo.IsAccPages & (rs.Flag & E_ReplaceFlags.Attach) > 0) replaceit = true; - - if (replaceit) - { - if (!dicReplaceRegex.ContainsKey(rs)) - { - // CASEINSENS: Do ReplaceWords for all words that match, regardless of case, and replace with the ReplaceWith string as is - //RegexOptions myOptions = (rs.Flag & E_ReplaceFlags.CaseInsens) == E_ReplaceFlags.CaseInsens ? RegexOptions.IgnoreCase & RegexOptions.Singleline : RegexOptions.None & RegexOptions.Singleline; - RegexOptions myOptions = (rs.Flag & E_ReplaceFlags.CaseInsens) == E_ReplaceFlags.CaseInsens ? RegexOptions.IgnoreCase: RegexOptions.None; - string replaceWord = Regex.Replace(rs.ReplaceWord, @"[[\]\\()]", @"\$0"); - // if first or last character in replaceword is a non-word character, for example, ',', ')', or '.', - // don't use the \W, i.e. don't bother to look for a non-word character. - string wordMatchBeg = Regex.IsMatch(replaceWord.Substring(0, 1), @"\W") ? "" : @"(?<=\W|^)"; - string wordMatchEnd = Regex.IsMatch(replaceWord.Substring(replaceWord.Length - 1, 1), @"\W") ? "" : @"(?=\W|$)"; - string pat = wordMatchBeg + @"(?", RegexOptions.Singleline); - private string ReplaceWord(string text, string replace, string with, RegexOptions regexOptions) - { - MatchCollection myMatches = Regex.Matches(text, replace, regexOptions); - MatchCollection myLinks = regFindLink.Matches(text); - for (int i = myMatches.Count - 1; i >= 0; i--) - { - Match myMatch = myMatches[i]; - if (!PartOfLinkText(myMatch, myLinks)) - text = text.Substring(0, myMatch.Index) + with + text.Substring(myMatch.Index + myMatch.Length); - } - return text; - } - - private bool PartOfLinkText(Match myMatch, MatchCollection myLinks) - { - foreach (Match myLink in myLinks) - if (myMatch.Index > myLink.Index && myMatch.Index < (myLink.Index + myLink.Length)) - return true; - return false; - } - #endregion - #endregion - } - #region displayTextElementClass - public enum E_TextElementType : uint - { - Text = 0, - Transition = 1, - TransitionRange = 2, - ReferencedObject = 3, - Symbol = 4 - }; - public class displayTextElement - { - private E_TextElementType _Type; - public E_TextElementType Type - { - get { return _Type; } - set { _Type = value; } - } - protected string _Text; - virtual public string Text - { - get { return _Text; } - set { _Text = value; } - } - } - public class displayLinkElement : displayTextElement - { - private string _Link; - public string Link - { - get { return _Link; } - set { _Link = value; } - } - private string _TextAndLink; - public string TextAndLink - { - get { return _TextAndLink; } - set { _TextAndLink = value; } - } - /// - /// Text - this should parse the text and return the results - /// - override public string Text - { - get - { - if (_TextAndLink != null) - { - Match m = Regex.Match(_TextAndLink, @""); - return m.Groups[3].ToString(); - } - return _Text; - } - set - { - if (_TextAndLink != null) - { - Match m = Regex.Match(_TextAndLink, @""); - System.Text.RegularExpressions.Group g = m.Groups[3]; - _TextAndLink = _TextAndLink.Substring(0, g.Index) + value + _TextAndLink.Substring(g.Index + g.Length); - } - _Text = value; - } - } - } - #endregion - public class FoundMatches : SortedList - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private string _Text; - public FoundMatches(string text) - : base() - { - _Text = text; - } - public void Add(Regex myRegEx, ReplaceStr myWord) - { - MatchCollection myMatches = myRegEx.Matches(_Text); - foreach (Match myMatch in myMatches) - Add(myMatch, myWord); - } - public void AddLink(Regex myRegEx, bool replaceWordsInROs, DocVersionInfo myDocVersion) - { - MatchCollection myMatches = myRegEx.Matches(_Text); - foreach (Match myMatch in myMatches) - { - if (!replaceWordsInROs || IsTransition(myMatch.Value) || IsSetpointRO(myMatch.Value, myDocVersion)) - Add(myMatch, null);// Exclude from Replace Words - } - } - private bool IsTransition(string link) - { - return link.Contains("#Link:Transition"); - } - private static Regex regRefObj = new Regex(@"\#Link\:ReferencedObject:([0-9]*) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline); - private static bool IsSetpointRO(string link, DocVersionInfo myDocVersion) - { - Match myMatch = regRefObj.Match(link); - if (myMatch.Success) - { - int dbid = System.Convert.ToInt32(myMatch.Groups[2].Value.Substring(0, 4), 16); - int rodbid = int.Parse(myMatch.Groups[3].Value); - ROFstInfo myROFst = myDocVersion.GetROFst(rodbid); - return myROFst.IsSetpointDB(dbid); - } - return false; - } - public void Add(Match myMatch, ReplaceStr myWord) - { - // If one already exists for this location, then don't add another. - if (ContainsKey(myMatch.Index)) return; - // Start by Adding it. - base.Add(myMatch.Index, new FoundMatch(myMatch, myWord)); - // Now see what I can do with it. - int index = this.IndexOfKey(myMatch.Index); - if (index > 0) // If this match is contained within the previous match remove it - { - FoundMatch previousMatch = Values[index - 1]; - if (previousMatch.MyMatch.Index + previousMatch.MyMatch.Length > myMatch.Index) - Remove(myMatch.Index); - } // If the next match is contained within this match, remove the next match - while (index < Count - 1 && Values[index + 1].MyMatch.Index < (myMatch.Index + myMatch.Length)) - Remove(Values[index + 1].MyMatch.Index); - } - public string ReplaceMatches() - { - int offset = 0; - string text = _Text; - foreach (FoundMatch foundMatch in Values) - { - if (foundMatch.MyWord != null) - { - if (VerifyNoHardSpace(text, foundMatch, offset)) - { - if(offset != 0 || foundMatch.MyMatch.Index != 0 || !foundMatch.MyWord.ReplaceWith.StartsWith("{\\par}")) - { - text = text.Substring(0, offset + foundMatch.MyMatch.Index) + foundMatch.MyWord.ReplaceWith + text.Substring(offset + foundMatch.MyMatch.Index + foundMatch.MyMatch.Length); - offset += foundMatch.MyWord.ReplaceWith.Length - foundMatch.MyMatch.Length; - } - } - } - } - return text; - } - - private bool VerifyNoHardSpace(string text, FoundMatch foundMatch, int offset) - { - string begin = text.Substring(0, offset + foundMatch.MyMatch.Index); - string end = text.Substring(offset + foundMatch.MyMatch.Index + foundMatch.MyMatch.Length); - if (text.StartsWith(@"{\rtf")) - { - // make sure that it is not preceded by \u160? \'a0 or \~ - if(Regex.IsMatch(begin,@"(\\(u160\?|'a0|~)(\\f[0-9]* ?)*(\\fs[0-9]* ?)*)$")) - return false; - // make sure that it is not followed by \u160? \'a0 or \~ - if(Regex.IsMatch(end,@"^((\\f[0-9]* ?)*(\\fs[0-9]* ?)*\\(u160\?|'a0|~))")) - return false; - } - return true; - } - } - public class FoundMatch - { - private Match _MyMatch; - public Match MyMatch - { - get { return _MyMatch; } - set { _MyMatch = value; } - } - private ReplaceStr _MyWord; - public ReplaceStr MyWord - { - get { return _MyWord; } - set { _MyWord = value; } - } - public FoundMatch(Match myMatch, ReplaceStr myWord) - { - _MyMatch = myMatch; - _MyWord = myWord; - } - } - -} diff --git a/PROMS/Volian.Controls.Library/EditItem.cs.bak b/PROMS/Volian.Controls.Library/EditItem.cs.bak deleted file mode 100644 index 0132fcb4..00000000 --- a/PROMS/Volian.Controls.Library/EditItem.cs.bak +++ /dev/null @@ -1,2394 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; -using System.Drawing; -using System.Windows.Forms; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; - -namespace Volian.Controls.Library -{ - #region Enums - public enum ChildRelation : int - { - None = 0, - After = 1, - Before = 2, - RNO = 3 - } - public enum E_ChangeBarPosition : int - { - Left = 0, - Right = 1 - } - #endregion - public abstract partial class EditItem : UserControl - { - #region EditItemUnique - //private static int _EditItemUnique = 0; - //private static int EditItemUnique - //{ - // get - // { - // if (_EditItemUnique == 3) - // Console.WriteLine("here"); - // return ++_EditItemUnique; - // } - //} - //private int _MyEditItemUnique = EditItemUnique; - - //public int MyEditItemUnique - //{ - // get {return _MyEditItemUnique; } - //} - #endregion - #region Constructor - public EditItem() - { - InitializeComponent(); - } - - public EditItem(IContainer container) - { - container.Add(this); - InitializeComponent(); - } - #endregion - #region Properties - private bool _RTBLastFocus = true; - public bool RTBLastFocus - { - get { return _RTBLastFocus; } - set { _RTBLastFocus = value; } - } - protected static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - protected ChildRelation _MyChildRelation; - public ChildRelation MyChildRelation - { - get { return _MyChildRelation; } - set { _MyChildRelation = value; } - } - protected bool _Loading = true; - protected EditItem _MyParentEditItem = null; - protected EditItem _MySectionRTBItem; - protected EditItem _MyPreviousEditItem = null; - protected EditItem _MyNextEditItem = null; - private bool _ChildrenLoaded = false; - public bool HasChildren - { - get { return _MyBeforeEditItems != null || _MyRNOEditItems != null || _MyAfterEditItems != null; } - } - internal List _MyBeforeEditItems; - public List MyBeforeEditItems - { - get { return _MyBeforeEditItems; } - set { _MyBeforeEditItems = value; } - } - internal List _MyAfterEditItems; - public List MyAfterEditItems - { - get { return _MyAfterEditItems; } - set { _MyAfterEditItems = value; } - } - internal List _MyRNOEditItems; - public List MyRNOEditItems - { - get { return _MyRNOEditItems; } - set { _MyRNOEditItems = value; } - } - private StepSectionLayoutData _MyStepSectionLayoutData; - public StepSectionLayoutData MyStepSectionLayoutData - { - get { return _MyStepSectionLayoutData; } - set { _MyStepSectionLayoutData = value; } - } - private StepData _MyStepData; - public StepData MyStepData - { - get { return _MyStepData; } - set { _MyStepData = value; } - } - private ItemInfo _MyItemInfo; - private int _ExpandPrefix = 0; - public int ExpandPrefix - { - get { return _ExpandPrefix; } - set { _ExpandPrefix = value; } - } - private int _ExpandSuffix = 0; - public int ExpandSuffix - { - get { return _ExpandSuffix; } - set { _ExpandSuffix = value; } - } - private bool _Colapsing = false; - /// - /// Gets or sets colapsing - /// - public bool Colapsing - { - get { return _Colapsing; } - set { _Colapsing = value; } - } - private bool _Moving = false; - private int _RNOLevel = 0; - private int _SeqLevel = 0; - private int _ContentType; - public int ContentType - { - get { return _ContentType; } - set { _ContentType = value; } - } - private bool _Circle = false; - private bool _CheckOff = false; - private bool _UserCheckOff = false; - private bool _ChangeBar = false; - private StepPanel _MyStepPanel; - public StepPanel MyStepPanel - { - get { return _MyStepPanel; } - set { _MyStepPanel = value; } - } - /// - /// This returns the section or procedure for the current item. - /// If the item is a step or section, it returns the section - /// If it is a procedure, it returns the procedure - /// - public EditItem MySectionRTBItem - { - get - { - if (_MySectionRTBItem == null) - { - if (MyItemInfo.IsSection || MyItemInfo.IsProcedure) _MySectionRTBItem = (RTBItem)this; - else _MySectionRTBItem = _MyParentEditItem.MySectionRTBItem; - } - return _MySectionRTBItem; - } - set { _MySectionRTBItem = value; } - } - /// - /// Gets or Sets ItemInfo - /// - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set - { - _MyItemInfo = value; - if (VlnSettings.StepTypeToolType) SetToolTip(_MyItemInfo.ToolTip); - ChangeBar = _MyItemInfo.HasChangeBar; - CheckOff co = _MyItemInfo.GetCheckOffStep(); - if (co != null && co.UIMark != null) - { - UserCheckOff = true; - UserCheckOffChar = (char)co.UIMark; - } - // Deal with changes in content data - value.MyContent.Changed += new ContentInfoEvent(MyContent_Changed); - value.MyProcedure.MyContent.Changed += new ContentInfoEvent(MyContent_Changed); - // Deal with change in item data - value.Changed += new ItemInfoEvent(value_Changed); - value.OrdinalChanged += new ItemInfoEvent(value_OrdinalChanged); - } - } - void value_Changed(object sender) - { - ChangeBar = _MyItemInfo.HasChangeBar; - } - protected void MyContent_Changed(object sender) - { - // Update the text to reflect the content change - MyItemInfo.RefreshItemAnnotations(); - ChangeBar = MyItemInfo.HasChangeBar; - CheckOff co = _MyItemInfo.GetCheckOffStep(); - if (co != null && co.UIMark != null) - { - UserCheckOff = true; - UserCheckOffChar = (char)co.UIMark; - } - else - UserCheckOff = false; - RefreshContent(); - - // see if change in subsections to be displayed, i.e. if the user made a change to editable data - // on the section properties form, we may have to display steps or remove steps. By design, - // steps are the first children from a section. Also, this will only occur if the format has - // metasections AND there are subsections. - if (MyItemInfo.IsSection && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections - && MyItemInfo.Sections != null && MyItemInfo.Sections.Count > 0) - { - // find out what the editable flag is to determine if change. - bool showSteps = MyItemInfo.MyConfig is SectionConfig && (MyItemInfo.MyConfig as SectionConfig).SubSection_Edit == "Y"; - if (showSteps && _MyAfterEditItems != null && _MyAfterEditItems.Count > 0 && _MyAfterEditItems[0].MyItemInfo.IsSection) - { - // need to add steps in, i.e. they do not exist in step editor yet. - _MyAfterEditItems[0].AddSiblingBeforeNoDataSave(MyItemInfo.Steps, false); - } - else if (!showSteps && _MyAfterEditItems != null && _MyAfterEditItems.Count > 0 && _MyAfterEditItems[0].MyItemInfo.IsStep) - { - // Remove steps - only want sections. Put in a list for removal. - List remEIs = new List(); - foreach (EditItem ei in _MyAfterEditItems) - { - if (!ei.MyItemInfo.IsSection) remEIs.Add(ei); - } - foreach (EditItem ei1 in remEIs) - { - ei1.RemoveItemWithoutDelete(); - } - remEIs.Clear(); - } - } - } - void value_OrdinalChanged(object sender) - { - RefreshOrdinal(); - } - public EditItem ActiveParent - { - get { return _MyParentEditItem != null ? _MyParentEditItem : _MyPreviousEditItem.ActiveParent; } - } - /// - /// Return the Parent EditItem - /// - private EditItem UpOneEditItem - { - get - { - EditItem tmp = this; - while (tmp != null && tmp.MyParentEditItem == null) tmp = tmp.MyPreviousEditItem; - if (tmp != null) return tmp.MyParentEditItem; - return null; - } - } - private Stack _LastMethods = new Stack(); - //private string _LastMethod = ""; - internal void LastMethodsPush(string str) - { - if(MyStepPanel != null)MyStepPanel._LastAdjust = str; - _LastMethods.Push(str); - } - internal string LastMethodsPop() - { - //MyStepPanel._LastAdjust = ""; - return _LastMethods.Pop(); - } - internal bool LastMethodsEmpty - { - get { return _LastMethods.Count == 0; } - } - /// - /// This should find the item that precedes the current item vertically - /// and then return the Bottom of that item. - /// - /// - internal int FindTop(int bottom) - { - int lastBottomPrev = bottom; // This is necessary if the value of bottom can be negative. - if (_MyPreviousEditItem != null) - lastBottomPrev = _MyPreviousEditItem.BottomMostEditItem.Bottom; - int? bottomRNO = BottomOfParentRNO(); - if (lastBottomPrev > bottom) bottom = (int)(lastBottomPrev); // RHM 20090615 ES02 Step8 - // Moving from Step 8 to the Note preceeding step 8 caused the step 9 to be positioned in the wrong place. - //if (lastBottomParent > bottom) bottom = lastBottomParent; - //if (bottomRNO == null) return bottom; - return (int)max(bottomRNO, bottom); - } - /// - /// The Top of the EditItem - /// - public int ItemTop - { - get { return Top; } - set - { - MyStepPanel.ItemMoving++; - Top = value; - MyStepPanel.ItemMoving--; - } - } - private E_ChangeBarPosition _ChangeBarPosition = E_ChangeBarPosition.Right; - public E_ChangeBarPosition ChangeBarPosition - { - get { return _ChangeBarPosition; } - set { _ChangeBarPosition = value; } - } - /// - /// Sets the next item and adjusts the location, - /// This also sets the previous for the "next" item - /// which adjusts other locations. - /// - public EditItem MyNextEditItem - { - get { return _MyNextEditItem; } - set - { - _MyNextEditItem = value; - if (_MyNextEditItem != null) - { - if (_MyNextEditItem.MyPreviousEditItem != this) - { - _MyNextEditItem.MyPreviousEditItem = this; - MyNextEditItem.Location = new Point(Left, Bottom); - } - } - } - } - /// - /// returns the TopMostChild - /// - public EditItem TopMostEditItem - { - get - { - if (Expanded && _MyBeforeEditItems != null) return _MyBeforeEditItems[0].TopMostEditItem; - return this; - } - } - /// - /// Returns the bottom location (Top + Height) - /// - public new int Bottom - { - get - { - return Top + (Hidden ? 0 : Height); - } - } - private bool _Hidden = false; - public bool Hidden - { - get { return _Hidden; } - set { _Hidden = value; Visible = !value; } - } - /// - /// Bottom most child - /// - public EditItem BottomMostEditItem - { - get - { - EditItem tmpr = null; // BottomMost RNO - //int rnoOffset = 0; - if ((MyExpandingStatus != ExpandingStatus.No || Expanded) && _MyRNOEditItems != null) - { - //rnoOffset = this.Top - _MyRNOEditItems[0].Top; - tmpr = _MyRNOEditItems[_MyRNOEditItems.Count - 1].BottomMostEditItem; - } - EditItem tmpa = this; // BottomMost After - if ((MyExpandingStatus != ExpandingStatus.No || Expanded) & _MyAfterEditItems != null) - tmpa = _MyAfterEditItems[_MyAfterEditItems.Count - 1].BottomMostEditItem; - // return the bottom most of the two results - if (tmpr == null) - return tmpa; - //if (rnoOffset > 0) - //Console.WriteLine("RNO Bottom Offset {0}", rnoOffset); - //if (tmpa.Bottom >= (tmpr.Bottom + rnoOffset)) - if (tmpa.Bottom >= (tmpr.Bottom)) - return tmpa; - return tmpr; - } - } - /// - /// Bottom most child excluding RNOs - /// - public EditItem BottomMostEditItemNoRNOs - { - get - { - EditItem tmpa = this; // BottomMost After - if ((MyExpandingStatus != ExpandingStatus.No || Expanded) & _MyAfterEditItems != null) - tmpa = _MyAfterEditItems[_MyAfterEditItems.Count - 1].BottomMostEditItem; - // return the bottom most - return tmpa; - } - } - /// - /// First sibling - /// - private EditItem FirstSiblingEditItem - { - get - { - EditItem tmp = this; - while (tmp.MyPreviousEditItem != null) - tmp = tmp.MyPreviousEditItem; - return tmp; - } - } - /// - /// Last sibling - /// - private EditItem LastSiblingEditItem - { - get - { - EditItem tmp = this; - while (tmp.MyNextEditItem != null) - tmp = tmp.MyNextEditItem; - return tmp; - } - } - private ExpandingStatus _MyExpandingStatus = ExpandingStatus.No; - /// - /// Sets or Gets expanding status - /// - public ExpandingStatus MyExpandingStatus - { - get { return _MyExpandingStatus; } - set { _MyExpandingStatus = value; } - } - /// - /// Gets the ItemID from the ItemInfo - /// - public int MyID - { - get { return _MyItemInfo == null ? 0 : _MyItemInfo.ItemID; } - } - /// - /// Tracks when a EditItem is moving - /// - public bool Moving - { - get { return _Moving; } - set { _Moving = value; } - } - /// - /// The RNO (Contingency) Level - /// - public int RNOLevel - { - get { return _RNOLevel; } - set { _RNOLevel = value; } - } - /// - /// Sequential Level - Only counts levels of Sequential substeps - /// - public int SeqLevel - { - get { return _SeqLevel; } - set { _SeqLevel = value; } - } - // TODO: This should be changed to get the Circle format from the data - /// - /// Show a circle or not - /// - public bool Circle - { - get { return _Circle; } - set { _Circle = value; } - } - // TODO: This should be changed to get the Checkoff status from the data - /// - /// Has a check-off or not - /// - public bool CheckOff - { - get { return _CheckOff; } - set { _CheckOff = value; } - } - public bool UserCheckOff - { - get { return _UserCheckOff; } - set { _UserCheckOff = value; } - } - private char _UserCheckOffChar; - public char UserCheckOffChar - { - get { return _UserCheckOffChar; } - set { _UserCheckOffChar = value; } - } - // TODO: This should be changed to get the ChangeBar status from the data - /// - /// Has a changebar or not - /// - public bool ChangeBar - { - get { return _ChangeBar; } - set - { - _ChangeBar = value; - this.Invalidate(); - } - } - #endregion // Properties - #region AddItem - /// - /// Adds an item to a list - /// - /// Parent Container - /// EditItem List - public void AddItem(EditItem parentEditItem, ref List siblingEditItems, EditItem nextEditItem, bool addFirstChld) - { - if (siblingEditItems == null) // Create a list of siblings - { - siblingEditItems = new List(); - siblingEditItems.Add(this); - MyParentEditItem = parentEditItem; - } - else // Add to the existing list - { - // add first child, when there are other children already there. This is used - // for metasection editable data changed from off to on so that the first step is located - // in the editor correctly, i.e. right below the section & above the subsections. - if (addFirstChld) - { - EditItem parent = siblingEditItems[0].MyParentEditItem; - siblingEditItems.Insert(0, this); - MyStepPanel.ItemMoving++; - _MyNextEditItem = siblingEditItems[1]; - _MyNextEditItem._MyPreviousEditItem = this; - MyPreviousEditItem = null; - _MyNextEditItem.MyParentEditItem = null; - MyParentEditItem = parent; - MyStepPanel.ItemMoving--; - } - else if (nextEditItem == null) // Add to the end of the list - { - EditItem lastChild = LastChild(siblingEditItems); - siblingEditItems.Add(this); - MyPreviousEditItem = lastChild; - } - else // Add to the middle of the list before a particular item - { - EditItem prevChild = nextEditItem.MyPreviousEditItem; - EditItem parent = nextEditItem.MyParentEditItem; - siblingEditItems.Insert(siblingEditItems.IndexOf(nextEditItem), this); - MyStepPanel.ItemMoving++; - _MyNextEditItem = nextEditItem; - nextEditItem._MyPreviousEditItem = this; - MyPreviousEditItem = prevChild;// If a previous exists - this will adjust the location and width of the EditItem - nextEditItem.MyParentEditItem = null; - MyParentEditItem = parent; // If a parent exists - this will adjust the location and width of the EditItem - //nextEditItem.MyPreviousEditItem = this; - MyStepPanel.ItemMoving--; - } - } - if (MyItemInfo.IsCaution || MyItemInfo.IsNote) - { - EditItem prev = this; - while (prev.MyPreviousEditItem != null) prev = prev.MyPreviousEditItem; - prev.SetAllTabs(); - } - else - SetAllTabs(); - } - // clear tabs, clears then all so that next 'get' will calculate new. - public void SetAllTabs() - { - RefreshTab(); - - if (_MyAfterEditItems != null) foreach (EditItem chld in _MyAfterEditItems) chld.SetAllTabs(); - if (_MyNextEditItem != null) _MyNextEditItem.SetAllTabs(); - // Update the RNO tab if it exists - RHM 20100106 - if (_MyRNOEditItems != null) foreach (EditItem chld in _MyRNOEditItems) chld.SetAllTabs(); - } - /// - /// Add the next item to a list - /// - /// - /// - /// - //public EditItem AddNext(ItemInfo myItemInfo, bool expand) - //{ - // EditItem tmp = new EditItem(myItemInfo, MyStepPanel, MyParentEditItem, ChildRelation.None, expand); - // MyNextEditItem = tmp; - // return tmp; - //} - #endregion - #region RemoveItem - protected void ShowTops(string title) - { - int TopMostY = TopMostEditItem.Top; - int? TopMostParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.TopMostEditItem.Top)); - int? ParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.Top)); - //Console.Write("{0}: TopMostY={1}, TopMostParentY={2}, ParentY = {3}",title, TopMostY, TopMostParentY, ParentY); - Console.Write("{0}{1},{2},{3}", title, TopMostY, TopMostParentY.ToString() ?? "null", ParentY.ToString() ?? "null"); - } - private bool _BeingRemoved = false; - public bool BeingRemoved - { - get { return _BeingRemoved; } - set { _BeingRemoved = value; } - } - public void RemoveItemWithoutDelete() - { - BeingRemoved = true; - int TopMostYBefore = TopMostEditItem.Top; - MyStepPanel._LookupEditItems.Remove(MyID); - EditItem newFocus = null; - int? TopMostParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.TopMostEditItem.Top)); - int? ParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.Top)); - RemoveFromParentsChildList(); - if (MyNextEditItem != null) - { - if (MyPreviousEditItem != null) - { - MyNextEditItem.MyPreviousEditItem = MyPreviousEditItem; - MyPreviousEditItem = null; - newFocus = MyNextEditItem; - } - else - { - MyNextEditItem.MyParentEditItem = MyParentEditItem; - MyParentEditItem = null; - MyNextEditItem.MyPreviousEditItem = null; - newFocus = MyNextEditItem; - } - // Adjust the vertical locations of all of the items below the item deleted - MyNextEditItem.TopMostEditItem.AdjustLocation(); - MyNextEditItem = null; - } - else if (MyPreviousEditItem != null) - { - MyPreviousEditItem.MyNextEditItem = null; - newFocus = MyPreviousEditItem.BottomMostEditItem; - MyPreviousEditItem = null; - } - else - { - newFocus = MyParentEditItem; - MyParentEditItem = null; - } - Dispose(); - if (newFocus != null) - { - newFocus.SetFocus(); - newFocus.SetAllTabs(); - newFocus.AdjustLocation(); - } - } - public void RemoveItem() - { - //Volian.Base.Library.VlnTimer _MyTimer = new VlnTimer(); - BeingRemoved = true; - MyStepPanel.SelectedEditItem = null; // Unselect the item to be deleted - //ShowTops("\r\n"); - int TopMostYBefore = TopMostEditItem.Top; - //_MyTimer.ActiveProcess = "DeleteItem"; - EditItem newFocus = DeleteItem(); - if (newFocus == null) return; - //_MyTimer.ActiveProcess = "SetFocus"; - newFocus.SetFocus(); - //_MyTimer.ActiveProcess = "Dispose"; - Dispose(); - //_MyTimer.ActiveProcess = "SetAllTabs"; - newFocus.SetAllTabs(); - //_MyTimer.ActiveProcess = "TopMostYAfter"; - int TopMostYAfter = newFocus.TopMostEditItem.Top; - if (TopMostYAfter > TopMostYBefore) - newFocus.TopMostEditItem.Top = TopMostYBefore; - //_MyTimer.ActiveProcess = "AdjustLocation"; - newFocus.AdjustLocation(); - //newFocus.ShowTops(""); - //_MyTimer.ShowElapsedTimes("RemoveItem"); - } - public EditItem DeleteItem() - { - //Volian.Base.Library.VlnTimer _MyTimer = new VlnTimer(); - //_MyTimer.ActiveProcess = "_LookupEditItems.Remove"; - MyStepPanel._LookupEditItems.Remove(MyID); - EditItem newFocus = null; - int? TopMostParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.TopMostEditItem.Top)); - int? ParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.Top)); - try - { - //_MyTimer.ActiveProcess = "DeleteItemAndChildren"; - Item.DeleteItemAndChildren(MyItemInfo); - } - catch (System.Data.SqlClient.SqlException ex) - { - HandleSqlExceptionOnDelete(ex); - return null; - } - // Remove EditItems - //_MyTimer.ActiveProcess = "RemoveFromParentsChildList"; - RemoveFromParentsChildList(); - //_MyTimer.ActiveProcess = "MyNextEditItem"; - if (MyNextEditItem != null) - { - if (MyPreviousEditItem != null) - { - MyNextEditItem.MyPreviousEditItem = MyPreviousEditItem; - MyPreviousEditItem = null; - newFocus = MyNextEditItem; - } - else - { - MyNextEditItem.MyParentEditItem = MyParentEditItem; - MyParentEditItem = null; - MyNextEditItem.MyPreviousEditItem = null; - newFocus = MyNextEditItem; - } - // Adjust the vertical locations of all of the items below the item deleted - MyNextEditItem.TopMostEditItem.AdjustLocation(); - MyNextEditItem = null; - } - else if (MyPreviousEditItem != null) - { - MyPreviousEditItem.MyNextEditItem = null; - //newFocus = MyPreviousEditItem.BottomMostEditItem; - // bug fix - when deleting an edit window in the AER, position to the bottom most in the AER - was jumping to RNO - newFocus = MyPreviousEditItem.BottomMostEditItemNoRNOs; - MyPreviousEditItem = null; - //Console.Write(",\"Previous\","); - } - else - { - newFocus = MyParentEditItem; - MyParentEditItem = null; - //Console.Write(",\"Parent\","); - } - //_MyTimer.ShowElapsedTimes("DeleteItem"); - return newFocus; - } - - private void HandleSqlExceptionOnDelete(System.Data.SqlClient.SqlException ex) - { - if (ex.Message.Contains("has External Transitions and has no next step")) - { - using (TransitionInfoList exTrans = TransitionInfoList.GetExternalTransitions(MyID)) - { - DialogResult ans = MessageBox.Show("Transitions exist to this step and cannot be adjusted automatically." + - "\r\n\r\nDo you want to be placed on the " + (exTrans.Count > 1 ? "first " : "") + "substep with the problem Transition?" + - "\r\n\r\nSubsteps with Problem Transitions" + - exTrans.Summarize(), - "Cannot Delete This Step", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (ans == DialogResult.Yes) - { - MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OpenItem(exTrans[0].MyContent.ContentItems[0]); - - } - else - SetFocus(); - } - } - else if (ex.Message.Contains("has External Transitions to it's children")) - { - using (TransitionInfoList exTrans = TransitionInfoList.GetExternalTransitionsToChildren(MyID)) - { - DialogResult ans = MessageBox.Show("Transitions exist to substeps of this step and cannot be adjusted automatically." + - "\r\n\r\nDo you want to be placed on the " + (exTrans.Count > 1 ? "first " : "") + "substep with the problem Transition?" + - "\r\n\r\nSubsteps with Problem Transitions:" + - exTrans.Summarize(), - "Cannot Delete This Step", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (ans == DialogResult.Yes) - { - MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OpenItem(exTrans[0].MyContent.ContentItems[0]); - } - } - } - else - MessageBox.Show(ex.Message, "SQL Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - private void RemoveFromParentsChildList() - { - EditItem top = this; - while (top.MyPreviousEditItem != null) top = top.MyPreviousEditItem; - EditItem parentEditItem = top.MyParentEditItem; - if (parentEditItem == null) return; // No parent, nothing to remove. - if (parentEditItem.MyAfterEditItems != null && parentEditItem.MyAfterEditItems.Contains(this)) - { - parentEditItem.MyAfterEditItems.Remove(this); - if (parentEditItem.MyAfterEditItems.Count == 0) - parentEditItem.MyAfterEditItems = null; - } - else if (parentEditItem.MyBeforeEditItems != null && parentEditItem.MyBeforeEditItems.Contains(this)) - { - parentEditItem.MyBeforeEditItems.Remove(this); - if (parentEditItem.MyBeforeEditItems.Count == 0) - parentEditItem.MyBeforeEditItems = null; - } - else if (parentEditItem.MyRNOEditItems != null && parentEditItem.MyRNOEditItems.Contains(this)) - { - parentEditItem.MyRNOEditItems.Remove(this); - if (parentEditItem.MyRNOEditItems.Count == 0) - parentEditItem.MyRNOEditItems = null; - } - if (parentEditItem.MyAfterEditItems == null && parentEditItem.MyBeforeEditItems == null && parentEditItem.MyRNOEditItems == null) - parentEditItem.CanExpand = false; - } - //private void ShowSiblings(string title) - //{ - // Console.WriteLine("---{0} {1}---",title,MyID); - // EditItem top = this; - // while (top.MyPreviousEditItem != null) top = top.MyPreviousEditItem; - // do - // { - // Console.WriteLine("{0} EditItem - {1} {2}", top.MyID == MyID ? "*" : " ", top.MyID, top.MyItemInfo.MyContent.Text); - // top = top.MyNextEditItem; - // } while (top != null); - //} - #endregion - #region Add Children - /// - /// Add a child before (Notes, Cautions, etc.) - /// - /// - /// - public void AddChildBefore(ItemInfo myItemInfo, bool expand) - { - EditItem child = new RTBItem(myItemInfo, MyStepPanel, this, ChildRelation.Before, expand); - } - /// - /// Add a list of children before - /// - /// - /// - public void AddChildBefore(ItemInfoList myItemInfoList, bool expand) - { - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - AddChildBefore(item, expand); - } - public EditItem AddChildBefore(ItemInfoList myItemInfoList, EditItem nextEditItem) - { - EditItem child = null; - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - child = AddChildBefore(item, nextEditItem); - return child; - } - /// - /// Add an RNO (Contingency) child - /// - /// - /// - public void AddChildRNO(ItemInfo myItemInfo, bool expand) - { - EditItem child = new RTBItem(myItemInfo, MyStepPanel, this, ChildRelation.RNO, expand); - } - /// - /// Add a list of RNO (Contingency) children - /// - /// - /// - public void AddChildRNO(ItemInfoList myItemInfoList, bool expand) - { - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - AddChildRNO(item, expand); - } - /// - /// Add a child after - /// - /// - /// - public EditItem AddChildAfter(ItemInfo MyItemInfo, bool expand, bool addFirstChld) - { - EditItem child = null; - //if (MyItemInfo.MyContent.ContentGridCount != 0) - if (MyItemInfo.MyContent.MyGrid != null) - child = new GridItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, expand); - else - child = new RTBItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, expand, addFirstChld); - return child; - } - public EditItem AddChildAfter(ItemInfo MyItemInfo, EditItem nextEditItem) - { - EditItem child = null; - //if (MyItemInfo.MyContent.ContentGridCount != 0) - if (MyItemInfo.MyContent.MyGrid != null) - child = new GridItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, true, nextEditItem); - else - child = new RTBItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, true, nextEditItem); - return child; - } - public EditItem AddChildBefore(ItemInfo MyItemInfo, EditItem nextEditItem) - { - EditItem child = null; - //if (MyItemInfo.MyContent.ContentGridCount != 0) - if(MyItemInfo.MyContent.MyGrid != null) - child = new GridItem(MyItemInfo, MyStepPanel, this, ChildRelation.Before, true, nextEditItem); - else - child = new RTBItem(MyItemInfo, MyStepPanel, this, ChildRelation.Before, true, nextEditItem); - return child; - } - public EditItem AddChildRNO(ItemInfo MyItemInfo, EditItem nextEditItem) - { - // not sure about this, i.e. whether a grid can be added here. - EditItem child = null; - //if (MyItemInfo.MyContent.ContentGridCount != 0) - if (MyItemInfo.MyContent.MyGrid != null) - child = new GridItem(MyItemInfo, MyStepPanel, this, ChildRelation.RNO, true, nextEditItem); - else - child = new RTBItem(MyItemInfo, MyStepPanel, this, ChildRelation.RNO, true, nextEditItem); - return child; - } - /// - /// Adds a sibling after the current EditItem - /// - public void AddSiblingAfter() - { - AddSiblingAfter("", true); - } - public void AddSiblingAfter(string text, bool updateStatus) - { - SaveContents(); - ItemInfo newItemInfo = MyItemInfo.InsertSiblingAfter(text); - DoAddSiblingAfter(newItemInfo, updateStatus); - } - public void AddSiblingAfter(int? type, bool updateStatus) - { - SaveContents(); - ItemInfo newItemInfo = MyItemInfo.InsertSiblingAfter("", "", type); - DoAddSiblingAfter(newItemInfo, updateStatus); - } - private void DoAddSiblingAfter(ItemInfo newItemInfo, bool updateStatus) - { - EditItem newEditItem = null; - switch (_MyChildRelation) - { - case ChildRelation.After: - newEditItem = ActiveParent.AddChildAfter(newItemInfo, MyNextEditItem); - break; - case ChildRelation.Before: - newEditItem = ActiveParent.AddChildBefore(newItemInfo, MyNextEditItem); - break; - case ChildRelation.RNO: - newEditItem = ActiveParent.AddChildRNO(newItemInfo, MyNextEditItem); - break; - default: // Need debug - break; - } - //EditItem newEditItem = ActiveParent.AddChildAfter(newItemInfo, ); - if (updateStatus) - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - } - protected static int _WatchThis = 1; - public void AddSiblingBefore() - { - AddSiblingBefore("", true); - } - public void AddSiblingBefore(string text, bool updateSelection) - { - // Save RTB text before creating a new item because the process of creating - // a new item will save a change to iteminfo excluding text changes. This - // shouldn't be necessary for adding sibling after because the current step - // doesn't get saved during the insert after because of the MyPrevious field - // is only set on an insert before, which is what saves the item without - // any updates from the richtextbox text. - SaveContents(); - ItemInfo newItemInfo = MyItemInfo.InsertSiblingBefore(text); - EditItem newEditItem = null; - switch (_MyChildRelation) - { - case ChildRelation.After: - newEditItem = ActiveParent.AddChildAfter(newItemInfo, this); - break; - case ChildRelation.Before: - newEditItem = ActiveParent.AddChildBefore(newItemInfo, this); - break; - case ChildRelation.RNO: - newEditItem = ActiveParent.AddChildRNO(newItemInfo, this); - break; - default: // Need debug - break; - } - if (updateSelection) - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - } - public void AddSiblingBeforeNoDataSave(ItemInfo newItemInfo, bool updateSelection, EditItem tt) - { - EditItem newEditItem = null; - newEditItem = ActiveParent.AddChildBefore(newItemInfo, this); - //switch (_MyChildRelation) - //{ - // case ChildRelation.After: - // newEditItem = ActiveParent.AddChildAfter(newItemInfo, this); - // break; - // case ChildRelation.Before: - // newEditItem = ActiveParent.AddChildBefore(newItemInfo, this); - // break; - // case ChildRelation.RNO: - // newEditItem = ActiveParent.AddChildRNO(newItemInfo, this); - // break; - // default: // Need debug - // break; - //} - if (updateSelection) - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - } - private bool specialAdd = false; - public void AddSiblingBeforeNoDataSave(ItemInfoList newItemInfos, bool updateSelection) - { - specialAdd = true; - EditItem newEditItem = null; - newEditItem = ActiveParent.AddChildAfter(newItemInfos, false, true); - if (updateSelection) - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - specialAdd = false; - } - public void AddChild(E_FromType fromType, int type) - { - AddChild("", fromType, type, null); - } - public void AddChild(E_FromType fromType, int type, VlnFlexGrid vfGrid) - { - AddChild("", fromType, type, vfGrid); - } - public void AddChild(string text, E_FromType fromType, int type, VlnFlexGrid vfGrid) - { - if (_MyItemInfo.IsHigh || _MyItemInfo.IsSection) - CanExpand = true; - this.Expanded = true; - _WatchThis = 1; - ItemInfo newItemInfo = MyItemInfo.InsertChild(fromType, type, text); - if (vfGrid != null) - { - string xml = vfGrid.GetXMLData(); - using (Item itm = newItemInfo.Get()) - { - itm.MyContent.MyGrid.Data = xml; - itm.Save(); - // newItemInfo.MyContent.MyGrid.ResetContent(itm.MyContent.MyGrid); // Do I need this? - } - } - // TODO: We need to determine where this will go in the stack of children - EditItem nextItem = GetNextItem(fromType, newItemInfo); - // TODO: May need similar logic if a Table is being added to a step that has substeps - // else if (fromType == E_FromType.Table && ((ItemInfo)newItemInfo.ActiveParent).Steps != null - //&& ((ItemInfo)newItemInfo.ActiveParent).Steps.Count > 0) - // nextItem = MyStepPanel.FindItem(((ItemInfo)newItemInfo.ActiveParent).Steps[0]); - EditItem newEditItem; - switch (fromType) - { - case E_FromType.Caution: - newEditItem = this.AddChildBefore(newItemInfo, nextItem); - break; - case E_FromType.Note: - newEditItem = this.AddChildBefore(newItemInfo, nextItem); - break; - case E_FromType.Procedure: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - case E_FromType.RNO: - newEditItem = this.AddChildRNO(newItemInfo, nextItem); - break; - case E_FromType.Section: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - case E_FromType.Step: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - case E_FromType.Table: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - default: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - } - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - } - public EditItem GetNextItem(E_FromType fromType, ItemInfo newItemInfo) - { - EditItem nextItem = null; - if (newItemInfo.NextItem != null) - nextItem = MyStepPanel.FindItem(newItemInfo.NextItem); - else if (fromType == E_FromType.Table && MyAfterEditItems != null) - nextItem = MyAfterEditItems[0]; - // Cautions come before notes, so if this is a Caution and there are Notes, put this first - else if (fromType == E_FromType.Caution && ((ItemInfo)newItemInfo.ActiveParent).Notes != null - && ((ItemInfo)newItemInfo.ActiveParent).Notes.Count > 0) - nextItem = MyStepPanel.FindItem(((ItemInfo)newItemInfo.ActiveParent).Notes[0]); - return nextItem; - } - /// - /// Add a list of children after - /// - /// - /// - public EditItem AddChildAfter(ItemInfoList myItemInfoList, bool expand, bool addFirstChld) - { - EditItem child = null; - int indx = 0; - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - { - if (addFirstChld) - { - // the first time add it as first child, the rest should be done in between. - child = AddChildAfter(item, expand, addFirstChld); - addFirstChld = false; - } - else - child = AddChildAfter(item, this._MyAfterEditItems[indx]); - indx++; - } - return child; - } - public EditItem AddChildAfter(ItemInfoList myItemInfoList, bool expand) - { - EditItem child = null; - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - child = AddChildAfter(item, expand, false); - return child; - } - public EditItem AddChildAfter(ItemInfoList myItemInfoList, EditItem nextEditItem) - { - EditItem child = null; - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - child = AddChildAfter(item, nextEditItem); - return child; - } - #endregion - #region CopyPaste - public void PasteSiblingBefore(int copyStartID) - { - ItemInfo newItemInfo = MyItemInfo.PasteSiblingBefore(copyStartID); - EditItem newEditItem = null; - switch (_MyChildRelation) - { - case ChildRelation.After: - newEditItem = ActiveParent.AddChildAfter(newItemInfo, this); - break; - case ChildRelation.Before: - newEditItem = ActiveParent.AddChildBefore(newItemInfo, this); - break; - case ChildRelation.RNO: - newEditItem = ActiveParent.AddChildRNO(newItemInfo, this); - break; - default: // Need debug - break; - } - if (newEditItem != null) MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnItemPaste(this, new vlnTreeItemInfoPasteEventArgs(newItemInfo, copyStartID, ItemInfo.EAddpingPart.Before, newItemInfo.MyContent.Type)); - - } - public void PasteSiblingAfter(int copyStartID) - { - ItemInfo newItemInfo = MyItemInfo.PasteSiblingAfter(copyStartID); - EditItem newEditItem = null; - switch (_MyChildRelation) - { - case ChildRelation.After: - newEditItem = ActiveParent.AddChildAfter(newItemInfo, MyNextEditItem); - break; - case ChildRelation.Before: - newEditItem = ActiveParent.AddChildBefore(newItemInfo, MyNextEditItem); - break; - case ChildRelation.RNO: - newEditItem = ActiveParent.AddChildRNO(newItemInfo, MyNextEditItem); - break; - default: // Need debug - break; - } - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnItemPaste(this, new vlnTreeItemInfoPasteEventArgs(newItemInfo, copyStartID, ItemInfo.EAddpingPart.After, newItemInfo.MyContent.Type)); - - } - public EditItem PasteReplace(int copyStartID) - { - // To allow a Paste Step into an empty (new) step/substep, we need to add a character to the the Text field - // to simulate replacing an existing step - otherwise we will get null references. - if (MyStepPanel.SelectedEditItem.Empty) - MyStepPanel.SelectedEditItem.Empty=false; - MyStepPanel.SelectedEditItem = null; // Unselect the item to be deleted - ChildRelation childRelation = _MyChildRelation; - EditItem newFocus = null; - EditItem nextEditItem = MyNextEditItem; - EditItem prevEditItem = MyPreviousEditItem; - EditItem parentEditItem = ActiveParent; - - int TopMostYBefore = TopMostEditItem.Top; - int? TopMostParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.TopMostEditItem.Top)); - int? ParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.Top)); - ItemInfo newItemInfo = null; - try - { - newItemInfo = Item.PasteReplace(MyItemInfo, copyStartID); - } - catch (System.Data.SqlClient.SqlException ex) - { - HandleSqlExceptionOnDelete(ex); - return this; - } - // Remove the EditItem that was the replaced item. - RemoveFromParentsChildList(); - - if (MyNextEditItem != null) - { - if (MyPreviousEditItem != null) - { - MyNextEditItem.MyPreviousEditItem = MyPreviousEditItem; - MyPreviousEditItem = null; - } - else - { - MyNextEditItem.MyParentEditItem = MyParentEditItem; - MyParentEditItem = null; - MyNextEditItem.MyPreviousEditItem = null; - } - MyNextEditItem = null; - } - else if (MyPreviousEditItem != null) - { - MyPreviousEditItem.MyNextEditItem = null; - newFocus = MyPreviousEditItem; - MyPreviousEditItem = null; - } - else - { - newFocus = MyParentEditItem; - MyParentEditItem = null; - } - - // add copied item to ui where the replaced item was. - EditItem newEditItem = null; - switch (childRelation) - { - case ChildRelation.After: - newEditItem = parentEditItem.AddChildAfter(newItemInfo, nextEditItem); - break; - case ChildRelation.Before: - newEditItem = parentEditItem.AddChildBefore(newItemInfo, nextEditItem); - break; - case ChildRelation.RNO: - newEditItem = parentEditItem.AddChildRNO(newItemInfo, nextEditItem); - break; - default: // Need debug - break; - } - MyStepPanel.SelectedEditItem = newEditItem; //Update Screen - MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnItemPaste(this, new vlnTreeItemInfoPasteEventArgs(newItemInfo, copyStartID, ItemInfo.EAddpingPart.Replace, newItemInfo.MyContent.Type)); - return newEditItem; - } - public void IdentifyChildren(bool highlight) - { - // Highlight children of EditItem: - if (MyAfterEditItems != null) - { - foreach (EditItem sia in MyAfterEditItems) - { - sia.IdentifyMe(highlight); - sia.IdentifyChildren(highlight); - } - } - if (MyBeforeEditItems != null) - { - foreach (EditItem sib in MyBeforeEditItems) - { - sib.IdentifyMe(highlight); - sib.IdentifyChildren(highlight); - } - } - if (MyRNOEditItems != null) - { - foreach (EditItem sir in MyRNOEditItems) - { - sir.IdentifyMe(highlight); - sir.IdentifyChildren(highlight); - } - } - } - #endregion - #region Event Handlers - private string WatchThisIndent - { - get { return "".PadLeft(_WatchThis, '\t'); } - } - protected bool RNOBelow - { - get - { - if (_MyRNOEditItems != null) - { - return _MyRNOEditItems[0].RNOLevel > _MyItemInfo.ColumnMode; - //return _MyRNOEditItems[0].Left == Left; - } - return false; - } - } - protected bool RNORight - { - get - { - if (_MyRNOEditItems != null) - { - return _MyRNOEditItems[0].RNOLevel <= _MyItemInfo.ColumnMode; - //return _MyRNOEditItems[0].Left != Left; - } - return false; - } - } - protected void MoveRNO() - { - if (_MyRNOEditItems != null) - { - if (_MyRNOEditItems[0].TopMostEditItem.Top != Top) - { - //if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("\r\n'Adjust RNO',{0},'Move',{1}", MyID, _RNO[0].MyID); - EditItem rnoTop = _MyRNOEditItems[0].TopMostEditItem; - if (rnoTop.RNOLevel <= _MyItemInfo.ColumnMode) - { - //EditItem tmpBottom = this; - //if (_MyAfterEditItems != null) tmpBottom = _MyAfterEditItems[_MyAfterEditItems.Count - 1].BottomMostEditItem; - MyStepPanel.ItemMoving++; - rnoTop.LastMethodsPush(string.Format("EditItem_Move RNO Right {0}", rnoTop.MyID)); - //rnoTop.Top = tmpBottom.Bottom; - rnoTop.Top = Top; - rnoTop.LastMethodsPop(); - MyStepPanel.ItemMoving--; - } - else - { - MyStepPanel.ItemMoving++; - rnoTop.LastMethodsPush(string.Format("EditItem_Move RNO Below {0} {1} {2}", rnoTop.MyID, BottomMostEditItemNoRNOs.MyID, BottomMostEditItemNoRNOs.Bottom)); - rnoTop.Top = BottomMostEditItemNoRNOs.Bottom; - rnoTop.LastMethodsPop(); - MyStepPanel.ItemMoving--; - } - } - } - } - private bool _TryAgainLater = false; - public bool TryAgainLater - { - get { return _TryAgainLater; } - set { _TryAgainLater = value; } - } - /// - /// Handles movement of the EditItems - /// - /// - /// - private void EditItem_Move(object sender, EventArgs e) - { - int watchThis = _WatchThis; - //if (MyID == 136) - //{ - // vlnStackTrace.ShowStack("{0} Move TO {1}", MyID, Top); - // //vlnStackTrace.ShowStack("{0} Move TO {1} - {2}, BottomMost {3}", MyID, Top, MyPath, BottomMostRTBItem.MyPath); - // //Console.WriteLine("{0} Move TO {1} - {2}, BottomMost {3}", MyID, Top, MyPath, BottomMostRTBItem.MyPath); - //} - //if (MyID > _StartingID) - // Console.WriteLine("{0}--------------- {1} Top = {2} Bottom {3}", WatchThisIndent, MyID, Top, Bottom); - if (MyStepPanel.ItemMoving == 0 && !TryAgainLater) - { - //vlnStackTrace.ScrollInStack(); - return; // If 0 - Indicates scrolling which requires no action. - } - TryAgainLater = false; - //ShowMe("Move"); - if (MyItemInfo == null) - return; - //if (_WatchThis > 0 && MyID > _StartingID) - //{ - - // Console.WriteLine("{0}Start Move {1},{2}", WatchThisIndent, MyID, this); - // if (MyID == _LookForID) - // Console.WriteLine("{0}---------------", WatchThisIndent,MyID, this); - // _WatchThis++; - //} - if (MyExpandingStatus == ExpandingStatus.Expanding) - { - _WatchThis = watchThis; - return; - } - Moving = true; - EditItem tmp = (EditItem)sender; - if (tmp.MyPreviousEditItem == null && tmp.MyParentEditItem == null) - { - _WatchThis = watchThis; - return; - } - if (RNOBelow) // Adjust substeps first - { - //Console.WriteLine("RNOBelow"); - AdjustLocation(); - MoveRNO(); - } - else // Adjust RNO First - { - if (RNORight) - { - //Console.WriteLine("RNORight"); - MoveRNO(); - } - AdjustLocation(); - } - Moving = false; - EditItem btm = BottomMostEditItem; - if (this != btm) - btm.AdjustLocation(); - //if (_WatchThis > 0 && MyID > _StartingID) - //{ - // Console.WriteLine("{0}Finish Move {1},{2}",WatchThisIndent, MyID, this); - //} - _WatchThis = watchThis; - } - /// - /// Adjust the locations when the EditItem is resized - /// - /// - /// - private void EditItem_Resize(object sender, EventArgs e) - { - if (MyItemInfo == null) return; - if (_IgnoreResize) return; - AdjustLocation(); - HandleResize(); - - } - #endregion // Event Handlers - #region Private and Protected Methods - /// - /// Calculates the table location - /// - /// - /// - /// - /// - protected Point TableLocation(EditItem myParentEditItem, StepSectionLayoutData myStepSectionLayoutData, int width) - { - // Should center on parent unless it is a centered table in the AER column - int center = myParentEditItem.ContentLeft + myParentEditItem.ContentWidth / 2; - int rightLimit = myParentEditItem.Right; - // Then should center on the wid Limit - if (MyItemInfo.FormatStepData.Type.Contains("AER") == false && MyItemInfo.RNOLevel == 0) - { - int colR = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColRTable, MyItemInfo.ColumnMode); - - rightLimit += colR * MyItemInfo.ColumnMode; - center += (colR * MyItemInfo.ColumnMode) / 2; - center -= (myParentEditItem.ContentLeft - (int)MyItemInfo.MyDocStyle.Layout.LeftMargin) / 2; - } - - // Calulate the x location - //int x = myParentEditItem.TextLeft; - int x = center - width / 2; - if (x + width > rightLimit) x = rightLimit - width; - int colT = MyStepPanel.ToDisplay((int)myStepSectionLayoutData.ColT); - if (x < colT) x = colT; - int y = FindTop(myParentEditItem.Bottom); - return new Point(x, y); - } - protected void DoMouseWheel(MouseEventArgs e) - { - MyStepPanel.MouseWheel(e); - } - protected void InsertPgBrk() - { - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.btnInsPgBrk_Click(this, new EventArgs()); - } - protected void OpenAnnotations() - { - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.btnAnnots_Click(this, new EventArgs()); - } - protected bool CheckClipboard() - { - return (MyStepPanel.MyStepTabPanel.MyDisplayTabControl.MyCopyStep != null); - } - protected void CopyStep() - { - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.DoCopyStep(); - } - /// - /// Finds the last child in a list - /// - /// - /// - private static EditItem LastChild(List childEditItems) - { - return childEditItems[childEditItems.Count - 1]; - } - /// - /// If the selected EditItem is within the window leave it as it is. - /// If not, scroll so that the selected window is centered. - /// - protected void ScrollToCenter() - { - //vlnStackTrace.ShowStack("CenterScroll {0} Current {1} Top {2} Bottom {3} Limit {4}", _MyItem.ItemID, _Panel.VerticalScroll.Value, Top, Bottom, _Panel.Height);// Show StackTrace - //Console.WriteLine("CenterScroll {0} Current {1} Top {2} Bottom {3} Limit {4}", _MyItem.ItemID, _Panel.VerticalScroll.Value, Top, Bottom, _Panel.Height); - if (Top >= 0 && Bottom <= MyStepPanel.Height) return;// Don't move if within screen. - int scrollValue = MyStepPanel.VerticalScroll.Value + (Top - (MyStepPanel.Height / 2)); // calculate scroll center for the item - //Console.WriteLine("CenterScroll {0} Current {1} New {2} Min {3} Max {4}", _MyItem.ItemID, _Panel.VerticalScroll.Value, scrollValue, _Panel.VerticalScroll.Minimum, _Panel.VerticalScroll.Maximum); - if (scrollValue >= MyStepPanel.VerticalScroll.Minimum && scrollValue <= MyStepPanel.VerticalScroll.Maximum) // If it is within range - MyStepPanel.VerticalScroll.Value = scrollValue; // Center the item - } - - /// - /// Hide a Items Children - Part of colapsing - /// - protected void HideChildren() - { - HideChildren(_MyBeforeEditItems); - HideChildren(_MyRNOEditItems); - HideChildren(_MyAfterEditItems); - } - /// - /// Hide a list of children - Part of colapsing - /// - /// - private void HideChildren(List childEditItems) - { - if (childEditItems != null) - { - foreach (EditItem child in childEditItems) - { - if (child.Expanded) child.HideChildren(); - child.Hidden = true; - } - } - } - /// - /// Unhide an items Children - Part of expanding - /// - /// - protected void UnhideChildren(bool expand) - { - UnhideChildren(_MyBeforeEditItems, expand); - UnhideChildren(_MyRNOEditItems, expand); - UnhideChildren(_MyAfterEditItems, expand); - MatchExpanded(); - - } - /// - /// Unhide a list of children - part of expanding - /// - /// - /// - private void UnhideChildren(List childEditItems, bool expand) - { - if (childEditItems != null) - { - foreach (EditItem child in childEditItems) - { - if (child.Expanded) - child.UnhideChildren(expand); - else if (expand) - child.Expand(expand); - child.Hidden = false; - } - } - } - /// - /// Move children as necessary - /// - protected void AdjustChildren() - { - AdjustChildren(_MyBeforeEditItems); - AdjustChildren(_MyRNOEditItems); - AdjustChildren(_MyAfterEditItems); - } - /// - /// Move a list of children - /// - /// - private void AdjustChildren(List childEditItems) - { - if (childEditItems != null) - { - foreach (EditItem child in childEditItems) - { - child.AdjustLocation(); - if (child.Expanded) child.AdjustChildren(); - } - } - } - /// - /// Expand a list of children - /// - /// - private void ExpandChildren(List childEditItems) - { - if (childEditItems != null) - { - foreach (EditItem child in childEditItems) - { - if (child.CanExpand) - { - child.Expand(true); - } - child.Hidden = false; - } - } - } - /// - /// Expand children - /// - private void ExpandChildren() - { - // Walk though Children performing Expand - ExpandChildren(_MyBeforeEditItems); - ExpandChildren(_MyRNOEditItems); - ExpandChildren(_MyAfterEditItems); - } - private string MyPath - { - get - { - if (MyItemInfo.MyContent.Type >= 20000) - return MyItemInfo.Path.Substring(MyItemInfo.ActiveSection.Path.Length); - return MyItemInfo.MyContent.ToString(); - } - } - private EditItem AEREditItem - { - get - { - if (RNOLevel == 0) return null; - if (MyParentEditItem != null) - { - if (MyParentEditItem.RNOLevel < RNOLevel) - return MyParentEditItem; - else - return MyParentEditItem.AEREditItem; - } - else if (MyPreviousEditItem != null) - { - return MyPreviousEditItem.AEREditItem; - } - //Volian.Base.Library.vlnStackTrace.ShowStackLocal("'AEREditItem',{0},{1}", MyID, MyItemInfo.DBSequence); - return null; - } - } - /// - /// Adjust the Location of all items below the current item. - /// - internal void AdjustLocation() - { - //Console.WriteLine("'AdjustLocation',{0},{1},'{2}'", MyID, MyItemInfo.DBSequence, Volian.Base.Library.vlnStackTrace.CalledFrom4); - if (RNORight) MoveRNO(); // This is needed when an AER is Deleted that has an RNO. - if (RNOLevel > 0 && AEREditItem != null) - AEREditItem.AdjustLocation(); - EditItem nextEditItem = NextDownEditItem; - //if (MyID == 2138) - // Console.WriteLine("2138"); - //if (_WatchThis > 0 && MyID > _StartingID) - //if((nextEditItem == null ? 0 : nextEditItem.MyID) == MyID) - //if(_LookForID.Contains(MyID)) - // Console.WriteLine("{0}AdjustLocation {1},{2},{3} -> {4},{5} ({6}) {7}", WatchThisIndent, MyID, MyItemInfo.Ordinal, MyPath, - // nextEditItem == null ? 0 : nextEditItem.MyID, nextEditItem == null ? 0 : nextEditItem.MyItemInfo.Ordinal, nextEditItem == null ? "Null" : nextEditItem.MyPath, - // _NextDownEditItemPath); - //if (_WatchThis && MyID == 2119) - // Console.WriteLine("I'm here"); - //if (MyID > 2120) - // Console.WriteLine("{0}\t{1}", MyID, nextEditItem == null ? 0 : nextEditItem.MyID); - if (nextEditItem != null) - { - //int bottom = BottomMostEditItem.Bottom; - if (nextEditItem != null) - { - //if (MyID == 2123) - // _LookForID = 2123; - int bottom = nextEditItem.FindTop(Bottom); - if (nextEditItem.Top != bottom) - // if (nextEditItem != null && !nextEditItem.Moving && nextEditItem.Top != bottom) - { - MyStepPanel.ItemMoving++; - nextEditItem.LastMethodsPush(string.Format("AdjustLocation {0}", MyID)); - nextEditItem._NextDownEditItemPath = _NextDownEditItemPath; - nextEditItem.Top = bottom; - // We found that the 64 Bit version of windows did not always set the Top correctly. - // We also found that if we could simply watch for the next time that it was set, we - // could set the Flag "TryAgainLater" the change would propogate the changes through its - // children and siblings. - if (nextEditItem.Top != bottom) - { - nextEditItem.TryAgainLater = true; - _MyLog.InfoFormat("Setting nextEditItem.Top = bottom for ID {0}, ({1}) did not work, TryAgainLater", nextEditItem.MyID, nextEditItem.MyItemInfo.SearchPath); - } - nextEditItem.LastMethodsPop(); - MyStepPanel.ItemMoving--; - } - } - else - { - Console.WriteLine("{0}** No Adjustment next = {1}, moving = {2}", WatchThisIndent, nextEditItem, nextEditItem == null ? false : nextEditItem.Moving); - } - } - } - /// - /// Automatically expands Steps if not currently expanded - /// - internal void AutoExpand() - { - if (CanExpand && Expanded == false)// TODO: May need to do some additional checking for subsections - { - //vlnStackTrace.ShowStack(">AutoExpand ID {0} - Can {1} Expanded {2}", _MyItem.ItemID, CanExpand, Expanded); - Expand(_ContentType >= 20000); - //Console.WriteLine(" - /// Expand an item and it's children - /// If the children have been loaded then just expand them - /// If not, load the children and expand their children etc. - /// - /// normally equal to _Type > = 20000 (Step) - public void Expand(bool expand) - { - //// TIMING: DisplayItem.TimeIt("Expand Start"); - if (_ChildrenLoaded) - { - // Unhide Children - MyExpandingStatus = ExpandingStatus.Showing; - UnhideChildren(expand); - if (ExpandPrefix != 0) - { - MyStepPanel.ItemMoving++; - TopMostEditItem.Top = Top; - MyStepPanel.ItemMoving--; - } - else - TopMostEditItem.AdjustLocation(); - AdjustChildren(); - //if(_Before != null ) - // Top = _Before[_Before.Count - 1].BottomMost.Bottom; - } - else - { - MyExpandingStatus = ExpandingStatus.Expanding; - _ChildrenLoaded = true; - //_Panel.SuspendLayout(); - AddChildBefore(MyItemInfo.Cautions, expand); - AddChildBefore(MyItemInfo.Notes, expand); - AddChildAfter(MyItemInfo.Procedures, expand); - if (MyItemInfo.ItemID == 317) Console.WriteLine("EditItem: id = {0}, ColumnMode = {1}", MyItemInfo.MyItemInfoUnique, MyItemInfo.ColumnMode); - if (MyItemInfo.RNOs != null && MyItemInfo.RNOLevel < MyItemInfo.ColumnMode) - AddChildRNO(MyItemInfo.RNOs, expand); - AddChildAfter(MyItemInfo.Tables, expand); - // get the config item for the steps section. there is an 'editable' - // flag used in metasections to define whether the steps should print. - // this flag can be toggle on the section's properties dialog. - // Only check the flag if the section has subsections because the - // default for the flag is not editable, and this would make non-metasections - // not editable. - bool hasMetaSubs = MyItemInfo.IsSection && MyItemInfo.Sections != null && MyItemInfo.Sections.Count>0; - bool EditSteps = !hasMetaSubs || (MyItemInfo.MyConfig is SectionConfig && (MyItemInfo.MyConfig as SectionConfig).SubSection_Edit == "Y"); - if (EditSteps) AddChildAfter(MyItemInfo.Steps, expand); - - if (MyItemInfo.RNOs != null && MyItemInfo.RNOLevel >= MyItemInfo.ColumnMode) - AddChildRNO(MyItemInfo.RNOs, expand); - AddChildAfter(MyItemInfo.Sections, expand); - MatchExpanded(); - } - MyExpandingStatus = ExpandingStatus.Done; - BottomMostEditItem.AdjustLocation(); - MyExpandingStatus = ExpandingStatus.No; - //// TIMING: DisplayItem.TimeIt("Expand End"); - } - public EditItem BeforeItem - { - get - { - if (_MyAfterEditItems != null) - { - foreach (EditItem EditItem in _MyAfterEditItems) - { - if (EditItem._MyBeforeEditItems != null) - return EditItem.TopMostEditItem; - EditItem beforeItem = EditItem.BeforeItem; - if (beforeItem != null) return beforeItem; - } - } - return null; - } - } - public EditItem ItemAbove - { - get - { - if (_MyChildRelation == ChildRelation.Before) return _MyParentEditItem.ItemAbove; - if (_MyPreviousEditItem != null) return _MyPreviousEditItem.BottomMostEditItem; - if (_MyChildRelation == ChildRelation.After) return _MyParentEditItem; - if (_MyChildRelation == ChildRelation.RNO) return _MyParentEditItem; - return null; - } - } - private static int? max(int? value1, int value2) - { - if (value1 == null || value2 > value1) return value2; - return value1; - } - private static int min(int value1, int value2) - { - if (value2 < value1) return value2; - return value1; - } - public int FindRight() - { - if (!RNORight) return Right; - return _MyRNOEditItems[0].FindRight(); - } - public int? BottomOfParentRNO() - { - int? bottom = null; - EditItem EditItem = this; - if (!MyItemInfo.IsTablePart) - { - if (EditItem._MyChildRelation == ChildRelation.None) - return null; - if (EditItem._MyChildRelation == ChildRelation.After && !RNORight) - return null; - } - while (EditItem != null && EditItem._MyChildRelation != ChildRelation.None && EditItem._MyChildRelation != ChildRelation.After) - EditItem = EditItem.UpOneEditItem; - if (EditItem == null || EditItem._MyChildRelation == ChildRelation.None) - return null; - EditItem parent = EditItem.UpOneEditItem; - int right = FindRight(); - bool centeredTable = (MyItemInfo.IsTablePart && MyItemInfo.FormatStepData.Type.Contains("AER") == false && MyItemInfo.RNOLevel == 0); - while (parent != null && parent.MyItemInfo.IsSection == false && parent._MyChildRelation != ChildRelation.Before) - { - if (parent._MyRNOEditItems != null) - { - if (centeredTable || right > parent._MyRNOEditItems[0].Left) - { - if (parent._MyRNOEditItems[0].BottomMostEditItem.RNOLevel > RNOLevel && RNOLevel < _MyItemInfo.ColumnMode) - bottom = max(bottom, parent._MyRNOEditItems[0].BottomMostEditItem.Bottom); - } - } - parent = parent.UpOneEditItem; - } - return bottom; - } - private string _NextDownEditItemPath = "None"; - /// - /// This finds the next EditItem down. - /// - public EditItem NextDownEditItem - { - get - { - EditItem EditItem = this; - _NextDownEditItemPath = "Path 1"; - // If this item appears before it's parent, and it doesn't have anything below it, return the parent - if (MyNextEditItem == null && MyAfterEditItems == null && FirstSiblingEditItem._MyChildRelation == ChildRelation.Before) - return UpOneEditItem; - _NextDownEditItemPath = "Path 2"; - if (Expanded && _MyAfterEditItems != null)// check to see if there is a _After - return MyAfterEditItems[0].TopMostEditItem;// if there is, go that way - _NextDownEditItemPath = "Path 3"; - if (Expanded && MyRNOEditItems != null && MyItemInfo.RNOLevel >= MyItemInfo.ColumnMode)// check to see if there is a _After - return MyRNOEditItems[0].TopMostEditItem;// if there is, go that way - while (EditItem != null && EditItem.MyNextEditItem == null) // if no Next walk up the parent path - { - bool lastWasRNO = (EditItem._MyChildRelation == ChildRelation.RNO); - EditItem = EditItem.UpOneEditItem; - _NextDownEditItemPath = "Path 4"; - if (EditItem == null) // No Parent - return null; - _NextDownEditItemPath = string.Format("Path 5 {0}, {1}", EditItem.MyExpandingStatus, EditItem.Moving); - if (EditItem.MyExpandingStatus == ExpandingStatus.Expanding || EditItem.Moving) // Parent Expanding or Moving - Wait - return null; - _NextDownEditItemPath = "Path 5 RNO"; - if (EditItem.RNOBelow && !Ancestor(EditItem.MyRNOEditItems[0])) - return EditItem.MyRNOEditItems[0]; - _NextDownEditItemPath = "Path 6"; - if (EditItem.MyNextEditItem == null && EditItem.FirstSiblingEditItem._MyChildRelation == ChildRelation.Before) - return EditItem.UpOneEditItem; - EditItem btm = EditItem.BottomMostEditItem; // Find the Bottom EditItem of this ancestor - EditItem beforeItem = EditItem.BeforeItem; - if (lastWasRNO && beforeItem != null) - { - _NextDownEditItemPath = "Path 7"; - if (beforeItem.ItemAbove.Bottom > this.Bottom) return null; - _NextDownEditItemPath = "Path 8"; - return beforeItem; - } - if (this != btm) // If this is not the bottom, then just adjust things with respect to the bottom - { - EditItem btmNext = btm.NextDownEditItem; - //if (EditItem.MyNextEditItem != null && EditItem.MyNextEditItem.TopMostEditItem.Top != btm.Bottom) - if (btmNext != null) - { - int bottom = btmNext.FindTop(btm.Bottom); - if (btmNext.Top != bottom) - { - MyStepPanel.ItemMoving++; - //EditItem.MyNextEditItem.TopMostEditItem.Top = btm.Bottom; - //Console.WriteLine("{0}***Move in NextDownEditItem {1},{2} From {3} To {4}",WatchThisIndent, btmNext.MyID, btmNext, btmNext.Top, btm.Bottom); - btmNext.LastMethodsPush(string.Format("NextDownEditItem {0} {1}", MyID, EditItem.MyID)); - //ShowMe(string.Format("FindTop = {0}", btmNext.FindTop(btm.Bottom))); - btmNext.Top = bottom; - btmNext.LastMethodsPop(); - MyStepPanel.ItemMoving--; - } - } - _NextDownEditItemPath = string.Format("Path 9 {0}", btm); - return null; // Not the bottom - don't adjust anything else - } - //else - //{ - //} - } - if (EditItem != null) - { - // Need to verify that the bottom of the parents RNO does not excede the bottom of this item. - EditItem next = EditItem.MyNextEditItem.TopMostEditItem; - _NextDownEditItemPath = "Path A"; - //if (Bottom >= (BottomOfParentRNO(next) ?? Bottom)) - return next;// if no _After - check to see if there is a Next - //_NextDownEditItemPath = "Path B"; - //return null; - } - _NextDownEditItemPath = "Path C"; - return null; - } - } - - private bool Ancestor(EditItem EditItem) - { - if (MyID == EditItem.MyID) return true; - if (MyItemInfo.IsHigh) return false; - return UpOneEditItem.Ancestor(EditItem); - } - public override string ToString() - { - return _MyItemInfo == null ? base.ToString() : string.Format("{0},'{1}'", MyID, MyPath); // + "-" + MyItemInfo.MyContent.Text; - } - #endregion - #region Abstract Methods and Properties - public abstract int TableWidth { get; } - public abstract int BorderWidth { get; } - public abstract Point ContentLocation { get; set; } - public abstract string TabFormat { get; set; } - public abstract void AdjustTableWidthAndLocation(); - public abstract void SetToolTip(string tip); - public abstract void RefreshContent(); - //public abstract EditItem MyPreviousEditItem { get; set; } - public abstract int ItemLeft { get; set; } - public abstract int ContentLeft { get; } - public abstract int ContentWidth { get; set; } - public abstract Point ItemLocation { get; set; } - public abstract int ItemWidth { get; set; } - public abstract void RefreshOrdinal(); - public abstract bool Expanded { get; set; } - public abstract void RefreshTab(); - public abstract void SetFocus(); - public abstract void SaveContents(); - public abstract bool CanExpand { get; set; } - public abstract void HandleResize(); - public abstract void MatchExpanded(); - public abstract void ItemSelect(); - public abstract void ItemShow(); - public abstract StepRTB MyStepRTB { get; } - public abstract DialogResult ReplaceText(string rpltxt, string fndstr, bool caseSensitive, bool matchWholeWord, bool reverse, bool prompt, IWin32Window fndrpldlg); - public abstract bool FindText(string str, bool caseSensitive, bool matchWholeWord, bool reverse); - public abstract void PositionToEnd(); - public abstract void PositionToStart(); - public abstract string SelectedTextForFind { get;} - public abstract bool SpellCheckNext(); - public abstract void IdentifyMe(bool highlight); - public abstract void SetActive(); - public abstract bool Empty { get; set; } - //public abstract bool IsEmpty(); - //public abstract void MakeNotEmpty(); - public abstract void RefreshDisplay(bool activeMode); - public abstract void ToggleEditView(E_ViewMode vwMode); - public abstract int TabLeft { get; set; } - public abstract Font TabFont { get; set; } - public abstract string TabText { get; } - public abstract Point TabLocation { get; } - public abstract Font ContentFont { get; set; } - public abstract float ContentTop { get; } - public abstract void SetupHeader(ItemInfo itemInfo); - public abstract void ShowExpanded(); - public abstract void SetText(); - public abstract void SetExpandAndExpander(ItemInfo itemInfo); - public abstract void SaveCurrentAndContents(); - #endregion - protected string _TabFormat; - private static int _WidthAdjust = 5; - protected bool _IgnoreResize = false; - /// - /// Sets the parent and postions the item with respect to the parent - /// - public EditItem MyParentEditItem - { - get { return _MyParentEditItem; } - set - { - LastMethodsPush("set_MyParentRTBItem"); - _MyParentEditItem = value; - if (_MyParentEditItem != null) - { - switch (_MyChildRelation) - { - case ChildRelation.None: // Same as after - case ChildRelation.After: // Procedures, sections, substeps, and tables/figures - // The size depends upon the parent type - int iType = (int)_MyParentEditItem.ContentType; - - switch (iType / 10000) - { - case 0: // Procedure - ItemLocation = new Point(_MyParentEditItem.ItemLocation.X + 20, _MyParentEditItem.Bottom); - ItemWidth = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColT) + MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidT); - break; - case 1: // Section - if (this == TopMostEditItem) - ItemLocation = new Point(_MyParentEditItem.ItemLocation.X + 20, _MyParentEditItem.Bottom); - else - TopMostEditItem.ItemLocation = new Point(TopMostEditItem.ItemLocation.X, _MyParentEditItem.Bottom); - //TextWidth = _WidthAdjust + borderWidth + MyStepPanel.ToDisplay(_MyStepSectionLayoutData.WidSTableEdit, Convert.ToInt32(_MyStepSectionLayoutData.PMode) - 1); - ContentWidth = _WidthAdjust + BorderWidth + MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, MyItemInfo.ColumnMode); - break; - case 2: // Step - // if Table then determine width and location based upon it's parent's location - if (MyStepData.Type == "Table" || MyStepData.ParentType == "Table") - { - AdjustTableWidthAndLocation(); - } - else - { - ItemLocation = new Point(_MyParentEditItem.ContentLeft, _MyParentEditItem.Bottom); - ItemWidth = _MyParentEditItem.ContentWidth; - } - break; - } - break; - case ChildRelation.RNO: - // this is set so that TextWidth command below will be correct. TextWidth uses - // the tab start & tab width to calculate the overall width. - TabFormat = ""; // this is set so that TextWidth command below will be correct - _IgnoreResize = true; - ContentWidth = _MyParentEditItem.ContentWidth; - _IgnoreResize = false; - if (RNOLevel <= MyItemInfo.ColumnMode) - { - //int colR = MyStepPanel.ToDisplay(_MyStepSectionLayoutData.ColRTable, Convert.ToInt32(_MyStepSectionLayoutData.PMode) - 1); - int colR = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColRTable, MyItemInfo.ColumnMode); - if (colR - _MyParentEditItem.Width < 0) colR = _MyParentEditItem.Width + 0; - MyStepPanel.ItemMoving++; - //Left = _MyParentRTBItem.ItemLeft + RNOLevel * colR; - //ItemLocation = new Point(_MyParentRTBItem.ItemLeft + RNOLevel * colR, _MyParentRTBItem.Top); - LastMethodsPush(string.Format("set_MyParentRTBItem RNO Right {0}", MyID)); - ItemLocation = new Point(_MyParentEditItem.ItemLeft + RNOLevel * colR, _MyParentEditItem.Top); - int top = _MyParentEditItem.FindTop(_MyParentEditItem.Top); - if (top != _MyParentEditItem.Top) - { - _MyParentEditItem.LastMethodsPush(string.Format("set_MyParentRTBItem RNO Right {0}", MyID)); - _MyParentEditItem.Top = top; - _MyParentEditItem.LastMethodsPop(); - Top = top; - } - LastMethodsPop(); - MyStepPanel.ItemMoving--; - } - else - { - MyStepPanel.ItemMoving++; - LastMethodsPush(string.Format("set_MyParentRTBItem RNO Below {0} {1} {2}", MyID, _MyParentEditItem.BottomMostEditItem.MyID, _MyParentEditItem.BottomMostEditItem.Bottom)); - ContentLocation = new Point(_MyParentEditItem.ContentLeft, _MyParentEditItem.BottomMostEditItem.Bottom); - LastMethodsPop(); - //TextLocation = new Point(_MyParentRTBItem.TextLeft, FindTop(_MyParentRTBItem.Top)); - MyStepPanel.ItemMoving--; - } - // Same size as the Parent - break; - case ChildRelation.Before: // Cautions and Notes - //if(_WatchThis > 0 && MyID > 2111) - // Console.WriteLine("Setting MyParent: \r\n\tParent {0},{1} \r\n\tTopMostItem {2},{3} \r\n\tNext {4}, {5}", _MyParentRTBItem.MyID, _MyParentRTBItem - // ,_MyParentRTBItem.TopMostRTBItem.MyID,_MyParentRTBItem.TopMostRTBItem - // , _MyNextRTBItem == null ? 0 : _MyNextRTBItem.MyID, _MyNextRTBItem == null ? "None" : _MyNextRTBItem.ToString()); - - //Location = new Point(_MyParentRTBItem.Left + 20, max(_MyParentRTBItem.Top, (_MyNextRTBItem == null ? 0 : _MyNextRTBItem.Top )) ?? 0); - _IgnoreResize = true; - Width = MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidT); - _IgnoreResize = false; - MyStepPanel.ItemMoving++; - //Location = new Point(_MyParentRTBItem.Left + 20, FindTop(_MyParentRTBItem.Top)); - int myTop = MyNextEditItem == null ? _MyParentEditItem.Top : MyNextEditItem.Top; - Location = new Point(_MyParentEditItem.Left + 20, FindTop(myTop)); - MyStepPanel.ItemMoving--; - //_MyParentRTBItem.Top = Bottom; - // Could be a Caution or Note - Need to get WidT - break; - } - } - LastMethodsPop(); - } - } - /// - /// Sets the previous item and adjusts locations - /// - public /*override*/ EditItem MyPreviousEditItem - { - get { return _MyPreviousEditItem; } - set - { - LastMethodsPush("set_MyPreviousRTBItem"); - _MyPreviousEditItem = value; - if (_MyPreviousEditItem != null) - { - _IgnoreResize = true; - if (MyStepData != null && (MyStepData.Type.ToLower().Contains("table") || MyStepData.ParentType.ToLower().Contains("table"))) - { - ItemWidth = TableWidth; - Location = new Point(_MyPreviousEditItem.Left, FindTop(_MyPreviousEditItem.BottomMostEditItem.Bottom)); - } - else if (value.MyItemInfo.IsTablePart) - { - ItemLocation = new Point(value.MyParentEditItem.ContentLeft, value.MyParentEditItem.Bottom); - ItemWidth = value.MyParentEditItem.ContentWidth; - } - else - { - Width = MyPreviousEditItem.Width; - if (TopMostEditItem == this) - Location = new Point(_MyPreviousEditItem.Left, FindTop(_MyPreviousEditItem.BottomMostEditItem.Bottom)); - else - TopMostEditItem.Location = new Point(TopMostEditItem.Left, FindTop(_MyPreviousEditItem.BottomMostEditItem.Bottom)); - } - _IgnoreResize = false; - //ShowMe(""); - //if (MyID > _StartingID) - // Console.WriteLine("{0}-->Setting MyPreviousRTBItem {1},{2},{3},{4},{5},{6},{7}", WatchThisIndent, MyID, this - // , _MyPreviousRTBItem - // ,Top - // , _MyPreviousRTBItem.BottomMostRTBItem.Bottom - // , FindTop(_MyPreviousRTBItem.BottomMostRTBItem.Bottom) - // , _MyPreviousRTBItem.Bottom); - //Location = new Point(_MyPreviousRTBItem.Left, _MyPreviousRTBItem.BottomMostRTBItem.Bottom); - switch (_MyChildRelation) - { - case ChildRelation.None: - break; - case ChildRelation.After: - break; - case ChildRelation.RNO: - break; - case ChildRelation.Before: - //MyStepPanel.ItemMoving++; - //UpOneRTBItem.Top = BottomMostRTBItem.Bottom; - //MyStepPanel.ItemMoving--; - break; - } - if (_MyPreviousEditItem.MyNextEditItem != this) _MyPreviousEditItem.MyNextEditItem = this; - } - LastMethodsPop(); - } - } - protected void SetupEditItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand, EditItem nextEditItem, bool addFirstChld) - { - //if (itemInfo.ItemID == 10366) Console.WriteLine("Here"); - //if (itemInfo.ItemID == 225) _MyStepRTB.Resize += new EventHandler(_MyStepRTB_Resize); - //_MyStepRTB.MyRTBItem = this; - //// TIMING: DisplayItem.TimeIt("CSLARTB InitComp"); - BackColor = myStepPanel.PanelColor; - //_MyStepRTB.BackColor = myStepPanel.InactiveColor; - // TODO: Adjust top based upon format - // TODO: Remove Label and just output ident on the paint event - TabLeft = 20; - SetupHeader(itemInfo); - this.Paint += new PaintEventHandler(EditItem_Paint); - this.BackColorChanged += new EventHandler(EditItem_BackColorChanged); - this.Move += new EventHandler(EditItem_Move); - this.Resize += new EventHandler(EditItem_Resize); - if (itemInfo != null) - { - ContentType = (int)itemInfo.MyContent.Type; - switch (ContentType / 10000) - { - case 0: // Procedure - ContentFont = myStepPanel.ProcFont;// lblTab.Font = myStepPanel.ProcFont; - TabFont = itemInfo.MyTab.MyFont.WindowsFont; - break; - case 1: // Section - ContentFont = myStepPanel.SectFont;// lblTab.Font = myStepPanel.SectFont; - TabFont = itemInfo.MyTab.MyFont.WindowsFont; - break; - case 2: // Steps - ContentFont = myStepPanel.StepFont;//lblTab.Font = myStepPanel.StepFont; - TabFont = itemInfo.MyTab.MyFont.WindowsFont; - MyStepData = itemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[ContentType % 10000]; - break; - } - //this.Move += new EventHandler(DisplayItem_Move); - } - else - { - if (myStepPanel.MyFont != null) ContentFont = TabFont = myStepPanel.MyFont; - } - if (expand) ShowExpanded(); - MyStepPanel = myStepPanel; - if (itemInfo != null && !myStepPanel._LookupEditItems.ContainsKey(itemInfo.ItemID)) myStepPanel._LookupEditItems.Add(itemInfo.ItemID, this); - _MyChildRelation = myChildRelation; - if (myParentEditItem != null) RNOLevel = myParentEditItem.RNOLevel; - if (itemInfo != null) - { - //// TIMING: DisplayItem.TimeIt("CSLARTB before _Layout"); - MyStepSectionLayoutData = itemInfo.ActiveFormat.MyStepSectionLayoutData; - //// TIMING: DisplayItem.TimeIt("CSLARTB _Layout"); - if (myParentEditItem != null) - SeqLevel = myParentEditItem.SeqLevel + ((myChildRelation == ChildRelation.After || myChildRelation == ChildRelation.Before) && itemInfo.IsSequential ? 1 : 0); - //// TIMING: DisplayItem.TimeIt("CSLARTB seqLevel"); - MyItemInfo = itemInfo; - MyItemInfo.MyConfig.PropertyChanged += new PropertyChangedEventHandler(MyConfig_PropertyChanged); - } - //// TIMING: DisplayItem.TimeIt("CSLARTB MyItem"); - myStepPanel.Controls.Add(this); - - switch (myChildRelation) - { - case ChildRelation.After: - AddItem(myParentEditItem, ref myParentEditItem._MyAfterEditItems, nextEditItem, addFirstChld); - break; - case ChildRelation.Before: - AddItem(myParentEditItem, ref myParentEditItem._MyBeforeEditItems, nextEditItem, addFirstChld); - break; - case ChildRelation.RNO: - RNOLevel = myParentEditItem.RNOLevel + 1; - AddItem(myParentEditItem, ref myParentEditItem._MyRNOEditItems, nextEditItem, addFirstChld); - break; - case ChildRelation.None: - break; - } - if (itemInfo != null) - { - if (myChildRelation == ChildRelation.None) - { - if (ContentType == 0 && MyStepSectionLayoutData != null) - { - LastMethodsPush(string.Format("SetupRTBItem {0}", MyID)); - Width = MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidT); - } - } - } - //// TIMING: DisplayItem.TimeIt("CSLARTB Parent"); - SetText(); - //// TIMING: DisplayItem.TimeIt("CSLARTB SetText"); - if (itemInfo != null) - { - Name = string.Format("Item-{0}", itemInfo.ItemID); - SetExpandAndExpander(itemInfo); - if (expand && (itemInfo.MyContent.ContentPartCount != 0)) // If it should expand and it can expand - Expand(true); - else - if (myParentEditItem == null)// If it is the top node - if (ContentType >= 20000) // and it is a step - fully expand - Expand(true); - else // otherwise only expand one level - Expand(false); - } - //// TIMING: DisplayItem.TimeIt("CSLARTB before Controls Add"); - //myStepPanel.Controls.Add(this); - int top = FindTop(0); - if (Top < top) - { - LastMethodsPush("SetupRTBItem"); - MyStepPanel.ItemMoving++; - Top = top; - MyStepPanel.ItemMoving--; - LastMethodsPop(); - } - _Loading = false; - //// TIMING: DisplayItem.TimeIt("CSLARTB Controls Add"); - } - void MyConfig_PropertyChanged(object sender, PropertyChangedEventArgs e) - { - SaveConfig(); - } - public void SaveConfig() - { - if (!MyItemInfo.MyConfig.IsDirty) return; - using (Item itm = MyItemInfo.Get()) - { - itm.MyContent.Config = MyItemInfo.MyConfig.ToString(); - itm.Save(); - } - MyItemInfo.MyConfig.IsDirty = false; - } - /// - /// If the background changes, change the background of the RichTextBox - /// - /// - /// - void EditItem_BackColorChanged(object sender, EventArgs e) - { - //IdentifyMe(false); - } - // TODO: the format of the circles, Checkoffs and Changebars should come from the format file - /// - /// This adds drawing items to the RTBItem as needed including - /// Circle around the Tab Number - /// Check-Offs - /// Change Bars - /// - /// - /// - private void EditItem_Paint(object sender, PaintEventArgs e) - { - Graphics g = e.Graphics; - g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; - //g.DrawString(lblTab.Text, MyItemInfo.MyTab.MyFont.WindowsFont, Brushes.Red, new RectangleF(new PointF(MyStepPanel.MyStepPanelSettings.NumberLocationX, MyStepPanel.MyStepPanelSettings.NumberLocationY), MyStepPanel.MyStepPanelSettings.NumberSize), StringFormat.GenericDefault); - // adjust x location of label by 7, to position correctly. - //g.DrawString(lblTab.Text, MyItemInfo.MyTab.MyFont.WindowsFont, Brushes.Blue, new RectangleF(new PointF(Convert.ToSingle(lblTab.Location.X-7), Convert.ToSingle(lblTab.Location.Y)), MyStepPanel.MyStepPanelSettings.NumberSize), StringFormat.GenericDefault); - //g.DrawLine(Pens.DarkGreen, lblTab.Location.X-7, 0, lblTab.Location.X-7, this.Height); - //g.DrawLine(Pens.DarkGreen, MyStepRTB.Location.X - 7, 0, MyStepRTB.Location.X - 7, this.Height); - g.DrawString(TabText, MyItemInfo.MyTab.MyFont.WindowsFont, Brushes.Black, new RectangleF(new PointF(Convert.ToSingle(TabLocation.X), Convert.ToSingle(TabLocation.Y)), MyStepPanel.MyStepPanelSettings.NumberSize), StringFormat.GenericDefault); - //g.DrawLine(Pens.DarkGreen, lblTab.Location.X, 0, lblTab.Location.X, this.Height); - //g.DrawLine(Pens.DarkGreen, MyStepRTB.Location.X, 0, MyStepRTB.Location.X, this.Height); - if (Circle) - { - Pen penC = new Pen(MyStepPanel.MyStepPanelSettings.CircleColor, MyStepPanel.MyStepPanelSettings.CircleWeight); - g.DrawArc(penC, TabLeft + 1, 0, MyStepPanel.MyStepPanelSettings.CircleDiameter, MyStepPanel.MyStepPanelSettings.CircleDiameter, 0F, 360F); - } - if (CheckOff) - { - Pen penCO = new Pen(MyStepPanel.MyStepPanelSettings.CheckOffColor, MyStepPanel.MyStepPanelSettings.CheckOffWeight); - g.DrawRectangle(penCO, MyStepPanel.MyStepPanelSettings.CheckOffX, MyStepPanel.MyStepPanelSettings.CheckOffY, MyStepPanel.MyStepPanelSettings.CheckOffSize, MyStepPanel.MyStepPanelSettings.CheckOffSize); - } - if (ChangeBar) - { - Pen penCB = new Pen(MyStepPanel.MyStepPanelSettings.ChangeBarColor, MyStepPanel.MyStepPanelSettings.ChangeBarWeight); - if (ChangeBarPosition == E_ChangeBarPosition.Left) - g.DrawLine(penCB, 0, ContentTop, 0, Height); // left, top, right, bottom. - else - { - float X; - float H; - if (this is GridItem) - { - GridItem gi = this as GridItem; - X = gi.MyFlexGrid.Right+2; - H = gi.MyFlexGrid.Height; - } - else - { - RTBItem ri = this as RTBItem; - X = ri.MyStepRTB.Right+2; - H = ri.MyStepRTB.Height; - } - g.DrawLine(penCB, X, ContentTop, X, ContentTop+H); //Height); - } - } - if (UserCheckOff) - { - PointF location; - if (this is GridItem) - { - GridItem gi = this as GridItem; - location = new PointF(gi.MyFlexGrid.Left + gi.MyFlexGrid.Width + 2, gi.MyFlexGrid.Top); - } - else - { - RTBItem ri = this as RTBItem; - location = new PointF(ri.MyStepRTB.Left + ri.MyStepRTB.Width + 2, ri.MyStepRTB.Top); - } - CheckOff co = MyItemInfo.GetCheckOffStep(); - // There may have been a data change in the setting of which checkoff to use (property - // change in the config data), or whether a checkoff is used at all. Need to set the - // 'UserCheckOff' or 'UserCheckOffChar' properties to reflect that. - if (co != null && co.UIMark != null) - { - UserCheckOffChar = (char)co.UIMark; - Font myFont = new Font("VolianDraw", MyItemInfo.MyTab.MyFont.WindowsFont.Size); - g.DrawString(UserCheckOffChar.ToString(), myFont, Brushes.DarkGreen, new RectangleF(location, MyStepPanel.MyStepPanelSettings.NumberSize), StringFormat.GenericDefault); - } - else if (co == null) UserCheckOff = false; - } - } - } -} diff --git a/PROMS/Volian.Controls.Library/EditItem.cs.org b/PROMS/Volian.Controls.Library/EditItem.cs.org deleted file mode 100644 index f1eff62a..00000000 --- a/PROMS/Volian.Controls.Library/EditItem.cs.org +++ /dev/null @@ -1,3813 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; -using System.Drawing; -using System.Windows.Forms; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; -using JR.Utils.GUI.Forms; - -namespace Volian.Controls.Library -{ - #region Enums - public enum ChildRelation : int - { - None = 0, - After = 1, - Before = 2, - RNO = 3, - SupInfo = 4 - } - public enum E_ChangeBarPosition : int - { - Left = 0, - Right = 1 - } - #endregion - public abstract partial class EditItem : UserControl - { - #region EditItemUnique - //private static int _EditItemUnique = 0; - //private static int EditItemUnique - //{ - // get - // { - // if (_EditItemUnique == 3) - // Console.WriteLine("here"); - // return ++_EditItemUnique; - // } - //} - //private int _MyEditItemUnique = EditItemUnique; - - //public int MyEditItemUnique - //{ - // get {return _MyEditItemUnique; } - //} - #endregion - #region Constructor - public EditItem() - { - InitializeComponent(); - this.Enter += EditItem_Enter; - } - - // This event was added to better control enabling or disabling of the Insert and Copy Step buttons on the ribbon - void EditItem_Enter(object sender, EventArgs e) - { - bool allow = (MyStepPanel.VwMode == E_ViewMode.Edit); - StepTabRibbon str = MyStepPanel.MyStepTabPanel.MyStepTabRibbon; - str.SiblingsButtonsEnabled = allow; - str.InsertButtonsEnabled = allow && !(MyItemInfo.IsProcedure || MyItemInfo.IsSection || MyItemInfo.IsRNOPart || MyItemInfo.IsSupInfoPart); - // do special case for cpystep button: cannot copy an enhanced step: - if (MyItemInfo.IsEnhancedStep) str.SetCopyStepButton(false); - } - - public EditItem(IContainer container) - { - container.Add(this); - InitializeComponent(); - this.Enter += EditItem_Enter; - } - #endregion - #region Properties - private bool _RTBLastFocus = true; - public bool RTBLastFocus - { - get { return _RTBLastFocus; } - set { _RTBLastFocus = value; } - } - protected static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - protected ChildRelation _MyChildRelation; - public ChildRelation MyChildRelation - { - get { return _MyChildRelation; } - set { _MyChildRelation = value; } - } - protected bool _Loading = true; - protected EditItem _MyParentEditItem = null; - protected EditItem _MySectionRTBItem; - protected EditItem _MyPreviousEditItem = null; - protected EditItem _MyNextEditItem = null; - private bool _ChildrenLoaded = false; - public bool HasChildren - { - get { return _MyBeforeEditItems != null || _MyRNOEditItems != null || _MyAfterEditItems != null; } - } - internal List _MyBeforeEditItems; - public List MyBeforeEditItems // MyBeforeEditItems are Cautions & Notes - { - get { return _MyBeforeEditItems; } - set { _MyBeforeEditItems = value; } - } - internal List _MyAfterEditItems; - public List MyAfterEditItems - { - get { return _MyAfterEditItems; } - set { _MyAfterEditItems = value; } - } - internal List _MyRNOEditItems; - public List MyRNOEditItems - { - get { return _MyRNOEditItems; } - set { _MyRNOEditItems = value; } - } - internal List _MySupInfoEditItems; - public List MySupInfoEditItems - { - get { return _MySupInfoEditItems; } - set { _MySupInfoEditItems = value; } - } - private StepSectionLayoutData _MyStepSectionLayoutData; - public StepSectionLayoutData MyStepSectionLayoutData - { - get { return _MyStepSectionLayoutData; } - set { _MyStepSectionLayoutData = value; } - } - private StepData _MyStepData; - public StepData MyStepData - { - get { return _MyStepData; } - set { _MyStepData = value; } - } - private ItemInfo _MyItemInfo; - private int _ExpandPrefix = 0; - public int ExpandPrefix - { - get { return _ExpandPrefix; } - set { _ExpandPrefix = value; } - } - private bool _Colapsing = false; - /// - /// Gets or sets colapsing - /// - public bool Colapsing - { - get { return _Colapsing; } - set { _Colapsing = value; } - } - private bool _Moving = false; - private int _RNOLevel = 0; - private int _SeqLevel = 0; - private int _ContentType; - public int ContentType - { - get { return _ContentType; } - set { _ContentType = value; } - } - private bool _Circle = false; - private bool _CheckOff = false; - private bool _UserCheckOff = false; - private bool _ChangeBar = false; - private StepPanel _MyStepPanel; - public StepPanel MyStepPanel - { - get { return _MyStepPanel; } - set { _MyStepPanel = value; } - } - - private DisplayTags _MyStepPropertiesPanel; - public DisplayTags MyStepPropertiesPanel // gives us access to the Step Properties panel - used with shortcut keystrokes - { - get { return _MyStepPropertiesPanel; } - set { _MyStepPropertiesPanel = value; } - } - - /// - /// This returns the section or procedure for the current item. - /// If the item is a step or section, it returns the section - /// If it is a procedure, it returns the procedure - /// - public EditItem MySectionRTBItem - { - get - { - if (_MySectionRTBItem == null) - { - if (MyItemInfo.IsSection || MyItemInfo.IsProcedure) _MySectionRTBItem = (RTBItem)this; - else _MySectionRTBItem = MyParent.MySectionRTBItem; - } - return _MySectionRTBItem; - } - set { _MySectionRTBItem = value; } - } - /// - /// Gets or Sets ItemInfo - /// - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set - { - _MyItemInfo = value; - if (VlnSettings.StepTypeToolType) SetToolTip(_MyItemInfo.ToolTip); - ChangeBar = _MyItemInfo.HasChangeBar; - CheckOff co = _MyItemInfo.GetCheckOffStep(); - if (co != null && co.UIMark != null) - { - UserCheckOff = true; - UserCheckOffChar = (char)co.UIMark; - } - // Deal with changes in content data - value.MyContent.Changed += new ContentInfoEvent(MyContent_Changed); - value.MyProcedure.MyContent.Changed += new ContentInfoEvent(MyContent_Changed); - // Deal with change in item data - value.Changed += new ItemInfoEvent(value_Changed); - value.OrdinalChanged += new ItemInfoEvent(value_OrdinalChanged); - // do something like this to draw circle around step numbers - note got NULL reference error on NSP data - //if (value.FormatStepData != null && value.FormatStepData.TabData.IdentPrint.Contains("C0")) Circle = true; - } - } - private bool _ChangeBarForConfigItemChange = true; - - public bool ChangeBarForConfigItemChange - { - get { return _ChangeBarForConfigItemChange; } - set { _ChangeBarForConfigItemChange = value; } - } - - void value_Changed(object sender) - { - ChangeBar = _MyItemInfo.HasChangeBar; - } - protected void MyContent_Changed(object sender) - { - // Update the text to reflect the content change - MyItemInfo.RefreshItemAnnotations(); - ChangeBar = MyItemInfo.HasChangeBar; - CheckOff co = _MyItemInfo.GetCheckOffStep(); - if (co != null && co.UIMark != null) - { - UserCheckOff = true; - UserCheckOffChar = (char)co.UIMark; - } - else - UserCheckOff = false; - RefreshContent(); - - // see if change in subsections to be displayed, i.e. if the user made a change to editable data - // on the section properties form, we may have to display steps or remove steps. By design, - // steps are the first children from a section. Also, this will only occur if the format has - // metasections AND there are subsections. - if (MyItemInfo.IsSection && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections - && MyItemInfo.Sections != null && MyItemInfo.Sections.Count > 0) - { - // find out what the editable flag is to determine if change. - bool showSteps = MyItemInfo.MyConfig is SectionConfig && (MyItemInfo.MyConfig as SectionConfig).SubSection_Edit == "Y"; - if (showSteps && _MyAfterEditItems != null && _MyAfterEditItems.Count > 0 && _MyAfterEditItems[0].MyItemInfo.IsSection) - { - // need to add steps in, i.e. they do not exist in step editor yet. - _MyAfterEditItems[0].AddSiblingBeforeNoDataSave(MyItemInfo.Steps, false); - } - else if (!showSteps && _MyAfterEditItems != null && _MyAfterEditItems.Count > 0 && _MyAfterEditItems[0].MyItemInfo.IsStep) - { - // Remove steps - only want sections. Put in a list for removal. - List remEIs = new List(); - foreach (EditItem ei in _MyAfterEditItems) - { - if (!ei.MyItemInfo.IsSection) remEIs.Add(ei); - } - foreach (EditItem ei1 in remEIs) - { - ei1.RemoveItemWithoutDelete(); - } - remEIs.Clear(); - } - } - } - void value_OrdinalChanged(object sender) - { - RefreshOrdinal(); - } - public EditItem ActiveParent - { - get { return _MyParentEditItem != null ? _MyParentEditItem : _MyPreviousEditItem.ActiveParent; } - } - /// - /// Return the Parent EditItem - /// - private EditItem UpOneEditItem - { - get - { - EditItem tmp = this; - while (tmp != null && tmp.MyParentEditItem == null) tmp = tmp.MyPreviousEditItem; - if (tmp != null) return tmp.MyParentEditItem; - return null; - } - } - private Stack _LastMethods = new Stack(); - //private string _LastMethod = ""; - internal void LastMethodsPush(string str) - { - if(MyStepPanel != null)MyStepPanel._LastAdjust = str; - _LastMethods.Push(str); - } - internal string LastMethodsPop() - { - //MyStepPanel._LastAdjust = ""; - return _LastMethods.Pop(); - } - internal bool LastMethodsEmpty - { - get { return _LastMethods.Count == 0; } - } - // This should find the item that precedes the current item vertically in the supplemental information column - // and then return the Bottom of that item. - // It is used so that an edit item does not overlap in 'y-direction' any preceding items. - internal int? FindTopSupInfo(bool useSuppInfoColBottom) - { - if (MyParentEditItem == null) return null; - // on supplemental info item: parent is item in left column. - // return null if parent does not have previous siblings or parents that have supp info. FindPreviousOrParentSupInfo looks above to - // items that have supinfo. - EditItem prevOrParSupInfo = MyParentEditItem.FindPreviousOrParentSupInfo(); - if (prevOrParSupInfo == null || !prevOrParSupInfo.Visible) - { - // Account for Expanded or collapsed. note that BottomMostEditItem already accounts for - // whether it is expanded or collapsed. - if (MyParentEditItem.MyPreviousEditItem != null) return MyParentEditItem.MyPreviousEditItem.BottomMostEditItem.Bottom; - if (MyParentEditItem.MyBeforeEditItems != null) return MyParentEditItem.MyBeforeEditItems[MyParentEditItem.MyBeforeEditItems.Count - 1].BottomMostEditItem.Bottom; - return (MySectionRTBItem==null)?0:MySectionRTBItem.Bottom; - } - int b1 = prevOrParSupInfo.BottomMostEditItem.Bottom; - int b2 = b1; - if (prevOrParSupInfo.MyParentEditItem.MyItemInfo.StepLevel > MyParentEditItem.MyItemInfo.StepLevel) - b2 = prevOrParSupInfo.MyParentEditItem.LastSiblingEditItem.BottomMostEditItem.Bottom; - - // if the current supinfo's parent (proc step) is same as the lastsibling bottom most, don't use its value - it puts the next step - // down too far: - if (this.MyParentEditItem.MyID == prevOrParSupInfo.MyParentEditItem.LastSiblingEditItem.BottomMostEditItem.MyID) b2 = b1; - // if not in the same HLS, don't use the lastsibling either: - if (this.MyParentEditItem.MyItemInfo.MyHLS.ItemID != prevOrParSupInfo.MyParentEditItem.LastSiblingEditItem.MyItemInfo.MyHLS.ItemID) b2 = b1; - if (useSuppInfoColBottom) - return b1; - else - return Math.Max(b1, b2); // look at both supinfo & parent column to determine bottom - } - // This goes up edititems, looking for the closest in 'y-direction' of any supplemental info items. - EditItem FindPreviousOrParentSupInfo() // current edit item is parent of supplmental info item - { - EditItem prev = this; - // First see if there are any Cautions or Notes before me that have supinfo: - EditItem lastBefore = prev.FindLastBeforeWithSupInfo(); - if (lastBefore != null) return lastBefore.MySupInfoEditItems[0]; - - // There were no Cautions/Notes before me with supinfo, now see if there are previous items with supinfo: - while (prev.MyPreviousEditItem != null) - { - prev = prev.MyPreviousEditItem; - EditItem eiTmp = prev.FindLastSubstepWithSupInfo(); - // check for MySupInfoEditItems as null because the FindLastSubstepWithSupInfo checks for data, but the supinfo step may - // not be displayed yet, i.e. the eiTmp.MySupInfoEditItems has an edititem defined only it if is displayed. - if (eiTmp != null && eiTmp.MySupInfoEditItems != null) return eiTmp.MySupInfoEditItems[0]; - } - // No previous items had supinfo, look up to the parent. But if on first before, i.e. first caution or note, there is nothing before (just the section) - if (prev.MyParentEditItem.MyBeforeEditItems != null && prev.MyParentEditItem.MyBeforeEditItems.Count > 0 && prev.MyParentEditItem.MyBeforeEditItems[0] == prev) - { - EditItem eitmp = null; - // if on a Note/Caution, need to be sure there isn't a step before me with supinfo (don't just assume going to Section) - if (prev.MyParentEditItem.MyPreviousEditItem!=null)eitmp = prev.MyParentEditItem.MyPreviousEditItem.BottomMostEditItem.FindPreviousOrParentSupInfo(); - return eitmp; - } - if (prev.MyParentEditItem.MySupInfoEditItems != null) return prev.MyParentEditItem.MySupInfoEditItems[0]; - if (prev.MyItemInfo.IsSection) return null; - return prev.MyParentEditItem.FindPreviousOrParentSupInfo(); - } - private EditItem FindLastBeforeWithSupInfo() - { - if (MyBeforeEditItems == null || MyBeforeEditItems.Count == 0) return null; - - for (int i = MyBeforeEditItems.Count - 1; i > -1; i--) - { - // Need to look at caution/note (mybeforeedititems) if they have substeps that have supinfo - if (MyBeforeEditItems[i].MySupInfoEditItems != null && MyBeforeEditItems[i].MySupInfoEditItems.Count > 0) return MyBeforeEditItems[i]; - } - return null; - } - // The next 2 methods, FindLastSubstepWithSupInfo, FindLastItemWithSupInfo: - // for the current item, get to its bottommost supplemental info, if any steps/substeps have it. - // - private EditItem FindLastSubstepWithSupInfo() - { - ItemInfo ii = FindLastItemWithSupInfo(MyItemInfo); - if (ii == null) return null; - return GetEditItemFromItemID(ii.ItemID); - } - private ItemInfo FindLastItemWithSupInfo(ItemInfo stp) - { - // first check substeps (& their substeps) of item passed in. - if (stp.Steps != null && stp.Steps.Count > 0) - { - for (int i = stp.Steps.Count - 1; i > -1; i--) - { - ItemInfo tmp = FindLastItemWithSupInfo(stp.Steps[i]); - if (tmp != null) return tmp; - } - } - //now check the step that was passed in. - if (stp.SupInfos != null && stp.SupInfos.Count > 0) return stp; - if (stp.Notes != null && stp.Notes.Count > 0) - { - for (int j = stp.Notes.Count - 1; j > -1; j--) - { - if (stp.Notes[j].SupInfos != null && stp.Notes[j].SupInfos.Count > 0) return stp.Notes[j]; - } - } - if (stp.Cautions != null && stp.Cautions.Count > 0) - { - for (int j = stp.Cautions.Count - 1; j > -1; j--) - { - if (stp.Cautions[j].SupInfos != null && stp.Cautions[j].SupInfos.Count > 0) return stp.Cautions[j]; - } - } - return null; - } - /// - /// This should find the item that precedes the current item vertically - /// and then return the Bottom of that item. - /// - /// - internal int FindTop(int bottom, bool test1) - { - // if on a supplemental info, use special code to find what steps are above the supplemental info - if (MyItemInfo.MyDocStyle != null && MyItemInfo.MyDocStyle.SupplementalInformation) - { - if (MyItemInfo.IsSupInfoPart) - { - int? tmptop = FindTopSupInfo(test1); - return tmptop == null ? bottom : Math.Max(bottom, (int)tmptop); - } - } - int lastBottomPrev = bottom; // This is necessary if the value of bottom can be negative. - if (_MyPreviousEditItem != null) - lastBottomPrev = _MyPreviousEditItem.BottomMostEditItem.Bottom; - int? bottomRNO = BottomOfParentRNO(); - if (lastBottomPrev > bottom) bottom = (int)(lastBottomPrev); // RHM 20090615 ES02 Step8 - // Moving from Step 8 to the Note preceeding step 8 caused the step 9 to be positioned in the wrong place. - //if (lastBottomParent > bottom) bottom = lastBottomParent; - //if (bottomRNO == null) return bottom; - return (int)max(bottomRNO, bottom); - } - internal int FindTop(int bottom) - { - return FindTop(bottom, true); - } - /// - /// The Top of the EditItem - /// - public int ItemTop - { - get { return Top; } - set - { - MyStepPanel.ItemMoving++; - Top = value; - MyStepPanel.ItemMoving--; - } - } - private E_ChangeBarPosition _ChangeBarPosition = E_ChangeBarPosition.Right; - public E_ChangeBarPosition ChangeBarPosition - { - get { return _ChangeBarPosition; } - set { _ChangeBarPosition = value; } - } - /// - /// Sets the next item and adjusts the location, - /// This also sets the previous for the "next" item - /// which adjusts other locations. - /// - public EditItem MyNextEditItem - { - get { return _MyNextEditItem; } - set - { - _MyNextEditItem = value; - if (_MyNextEditItem != null) - { - if (_MyNextEditItem.MyPreviousEditItem != this) - { - _MyNextEditItem.MyPreviousEditItem = this; - MyNextEditItem.Location = new Point(Left, Bottom); - } - } - } - } - /// - /// returns the TopMostChild - /// - public EditItem TopMostEditItem - { - get - { - if (Expanded && _MyBeforeEditItems != null) return _MyBeforeEditItems[0].TopMostEditItem; - return this; - } - } - /// - /// Returns the bottom location (Top + Height) - /// - public new int Bottom - { - get - { - return Top + (Hidden ? 0 : Height); - } - } - private bool _Hidden = false; - public bool Hidden - { - get { return _Hidden; } - set { _Hidden = value; Visible = !value; } - } - /// - /// Bottom most child - /// - public EditItem BottomMostEditItem - { - get - { - EditItem tmpr = null; // BottomMost RNO - //int rnoOffset = 0; - if ((MyExpandingStatus != ExpandingStatus.No || Expanded) && _MyRNOEditItems != null) - { - //rnoOffset = this.Top - _MyRNOEditItems[0].Top; - tmpr = _MyRNOEditItems[_MyRNOEditItems.Count - 1].BottomMostEditItem; - } - EditItem tmpa = this; // BottomMost After - if ((MyExpandingStatus != ExpandingStatus.No || Expanded) & _MyAfterEditItems != null) - tmpa = _MyAfterEditItems[_MyAfterEditItems.Count - 1].BottomMostEditItem; - // return the bottom most of the two results - if (tmpr == null) - return tmpa; - //if (rnoOffset > 0) - //Console.WriteLine("RNO Bottom Offset {0}", rnoOffset); - //if (tmpa.Bottom >= (tmpr.Bottom + rnoOffset)) - if (tmpa.Bottom >= (tmpr.Bottom)) - return tmpa; - return tmpr; - } - } - /// - /// Bottom most child excluding RNOs - /// - public EditItem BottomMostEditItemNoRNOs - { - get - { - EditItem tmpa = this; // BottomMost After - if ((MyExpandingStatus != ExpandingStatus.No || Expanded) & _MyAfterEditItems != null) - tmpa = _MyAfterEditItems[_MyAfterEditItems.Count - 1].BottomMostEditItem; - // return the bottom most - return tmpa; - } - } - /// - /// First sibling - /// - private EditItem FirstSiblingEditItem - { - get - { - EditItem tmp = this; - while (tmp.MyPreviousEditItem != null) - tmp = tmp.MyPreviousEditItem; - return tmp; - } - } - /// - /// Last sibling - /// - private EditItem LastSiblingEditItem - { - get - { - EditItem tmp = this; - while (tmp.MyNextEditItem != null) - tmp = tmp.MyNextEditItem; - return tmp; - } - } - private ExpandingStatus _MyExpandingStatus = ExpandingStatus.No; - /// - /// Sets or Gets expanding status - /// - public ExpandingStatus MyExpandingStatus - { - get { return _MyExpandingStatus; } - set { _MyExpandingStatus = value; } - } - /// - /// Gets the ItemID from the ItemInfo - /// - public int MyID - { - get { return _MyItemInfo == null ? 0 : _MyItemInfo.ItemID; } - } - /// - /// Tracks when a EditItem is moving - /// - public bool Moving - { - get { return _Moving; } - set { _Moving = value; } - } - /// - /// The RNO (Contingency) Level - /// - public int RNOLevel - { - get { return _RNOLevel; } - set { _RNOLevel = value; } - } - /// - /// Sequential Level - Only counts levels of Sequential substeps - /// - public int SeqLevel - { - get { return _SeqLevel; } - set { _SeqLevel = value; } - } - // TODO: This should be changed to get the Circle format from the data - /// - /// Show a circle or not - /// - public bool Circle - { - get { return _Circle; } - set { _Circle = value; } - } - // TODO: This should be changed to get the Checkoff status from the data - /// - /// Has a check-off or not - /// - public bool CheckOff - { - get { return _CheckOff; } - set { _CheckOff = value; } - } - public bool UserCheckOff - { - get { return _UserCheckOff; } - set { _UserCheckOff = value; } - } - private char _UserCheckOffChar; - public char UserCheckOffChar - { - get { return _UserCheckOffChar; } - set { _UserCheckOffChar = value; } - } - // TODO: This should be changed to get the ChangeBar status from the data - /// - /// Has a changebar or not - /// - public bool ChangeBar - { - get { return _ChangeBar; } - set - { - _ChangeBar = value; - this.Invalidate(); - } - } - #endregion // Properties - #region AddItem - /// - /// Adds an item to a list - /// - /// Parent Container - /// EditItem List - public void AddItem(EditItem parentEditItem, ref List siblingEditItems, EditItem nextEditItem, bool addFirstChld) - { - if (siblingEditItems == null) // Create a list of siblings - { - siblingEditItems = new List(); - siblingEditItems.Add(this); - MyParentEditItem = parentEditItem; - } - else // Add to the existing list - { - // add first child, when there are other children already there. This is used - // for metasection editable data changed from off to on so that the first step is located - // in the editor correctly, i.e. right below the section & above the subsections. - if (addFirstChld) - { - EditItem parent = siblingEditItems[0].MyParentEditItem; - siblingEditItems.Insert(0, this); - MyStepPanel.ItemMoving++; - _MyNextEditItem = siblingEditItems[1]; - _MyNextEditItem._MyPreviousEditItem = this; - MyPreviousEditItem = null; - _MyNextEditItem.MyParentEditItem = null; - MyParentEditItem = parent; - MyStepPanel.ItemMoving--; - } - else if (nextEditItem == null) // Add to the end of the list - { - EditItem lastChild = LastChild(siblingEditItems); - siblingEditItems.Add(this); - MyPreviousEditItem = lastChild; - // RHM - The following line was remove for Facing Pages (Supplemental Information) - // ******************************************************************************* - // When MyPreviousEditItem is set, the location and size is set as a side-effect. - // When MyParentEditItem is set, the location and size is set as a side effect. - // Only Previous or Parent should be set, no both. - // ******************************************************************************* - //MyParentEditItem = MyPreviousEditItem.MyParentEditItem; // Farley - part of bug fix B2015-123 alignment of tabs on the edit screen - } - else // Add to the middle of the list before a particular item - { - EditItem prevChild = nextEditItem.MyPreviousEditItem; - EditItem parent = nextEditItem.MyParentEditItem; - if(siblingEditItems.Contains(nextEditItem)) - siblingEditItems.Insert(siblingEditItems.IndexOf(nextEditItem), this); - else - siblingEditItems.Insert(0, this); - MyStepPanel.ItemMoving++; - _MyNextEditItem = nextEditItem; - if(!MyItemInfo.IsNote || !MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format || MyPreviousEditItem == null) - nextEditItem._MyPreviousEditItem = this; - MyPreviousEditItem = prevChild;// If a previous exists - this will adjust the location and width of the EditItem - if (MyItemInfo.IsNote && MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format && MyPreviousEditItem != null) - nextEditItem.MyPreviousEditItem = this;//Position First Note in Dev Doc Format - if (!MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format || !(nextEditItem.MyItemInfo.IsNote && MyItemInfo.IsCaution)) - { - // RHM 20170216 For Deviation Document don't set MyParentEditItem to null when Type Changes from Caution to Note - nextEditItem.MyParentEditItem = null; - MyParentEditItem = parent; // If a parent exists - this will adjust the location and width of the EditItem - AdjustForDevDocStepHeight(); - } - //nextEditItem.MyPreviousEditItem = this; - MyStepPanel.ItemMoving--; - } - } - if (MyItemInfo.IsCaution || MyItemInfo.IsNote) - { - EditItem prev = this; - while (prev.MyPreviousEditItem != null) prev = prev.MyPreviousEditItem; - prev.SetAllTabs(); - } - else - SetAllTabs(); - } - // clear tabs, clears then all so that next 'get' will calculate new. - public void SetAllTabs() - { - RefreshTab(); - - if (_MyAfterEditItems != null) foreach (EditItem chld in _MyAfterEditItems) chld.SetAllTabs(); - if (_MyNextEditItem != null) _MyNextEditItem.SetAllTabs(); - // Update the RNO tab if it exists - RHM 20100106 - if (_MyRNOEditItems != null) foreach (EditItem chld in _MyRNOEditItems) chld.SetAllTabs(); - if (_MySupInfoEditItems != null) foreach (EditItem chld in _MySupInfoEditItems) chld.SetAllTabs(); - } - /// - /// Add the next item to a list - /// - /// - /// - /// - //public EditItem AddNext(ItemInfo myItemInfo, bool expand) - //{ - // EditItem tmp = new EditItem(myItemInfo, MyStepPanel, MyParentEditItem, ChildRelation.None, expand); - // MyNextEditItem = tmp; - // return tmp; - //} - #endregion - #region RemoveItem - protected void ShowTops(string title) - { - int TopMostY = TopMostEditItem.Top; - int? TopMostParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.TopMostEditItem.Top)); - int? ParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.Top)); - //Console.Write("{0}: TopMostY={1}, TopMostParentY={2}, ParentY = {3}",title, TopMostY, TopMostParentY, ParentY); - Console.Write("{0}{1},{2},{3}", title, TopMostY, TopMostParentY.ToString() ?? "null", ParentY.ToString() ?? "null"); - } - private bool _BeingRemoved = false; - public bool BeingRemoved - { - get { return _BeingRemoved; } - set { _BeingRemoved = value; } - } - public void RemoveItemWithoutDelete() - { - BeingRemoved = true; - int TopMostYBefore = TopMostEditItem.Top; - MyStepPanel._LookupEditItems.Remove(MyID); - EditItem newFocus = null; - int? TopMostParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.TopMostEditItem.Top)); - int? ParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.Top)); - RemoveFromParentsChildList(); - if (MyNextEditItem != null) - { - if (MyPreviousEditItem != null) - { - MyNextEditItem.MyPreviousEditItem = MyPreviousEditItem; - MyPreviousEditItem = null; - newFocus = MyNextEditItem; - } - else - { - MyNextEditItem.MyParentEditItem = MyParentEditItem; - MyParentEditItem = null; - MyNextEditItem.MyPreviousEditItem = null; - newFocus = MyNextEditItem; - } - // Adjust the vertical locations of all of the items below the item deleted - MyNextEditItem.TopMostEditItem.AdjustLocation(); - MyNextEditItem = null; - } - else if (MyPreviousEditItem != null) - { - MyPreviousEditItem.MyNextEditItem = null; - newFocus = MyPreviousEditItem.BottomMostEditItem; - MyPreviousEditItem = null; - } - else - { - newFocus = MyParentEditItem; - MyParentEditItem = null; - } - Dispose(); - if (newFocus != null) - { - newFocus.SetFocus(); - newFocus.SetAllTabs(); - newFocus.AdjustLocation(); - } - } - private static int xOffset = 0; - public void RemoveItem() - { - // if this item has enhanced edititems, remove them: - StepConfig sc = MyItemInfo.MyConfig as StepConfig; - List thisEnhs = null; - if (sc != null) - thisEnhs = sc.MyEnhancedDocuments; - else - { - if (MyItemInfo.IsSection) - { - SectionConfig secc = MyItemInfo.MyConfig as SectionConfig; - if (secc.Section_LnkEnh == "Y") thisEnhs = secc.MyEnhancedDocuments; - } - } - - List enhIds = new List(); - if (thisEnhs != null) - { - foreach (EnhancedDocument ed in thisEnhs) - { - if (ed.Type != 0) enhIds.Add(ed.ItemID); - } - } - BeingRemoved = true; - MyStepPanel.SelectedEditItem = null; // Unselect the item to be deleted - //ShowTops("\r\n"); - int TopMostYBefore = TopMostEditItem.Top; - //_MyTimer.ActiveProcess = "DeleteItem"; - // Add a Panel temporarily so that AutoScroll will not happen during the delete. - Panel pnl = new Panel(); - pnl.Size = new Size(10, 10); - MyStepPanel.Controls.Add(pnl); - pnl.BackColor = Color.Red; - pnl.Location = new Point(xOffset += 15, MyStepPanel.ClientSize.Height + 10); - EditItem newFocus = DeleteItem(); - if (newFocus == null) - { - MyStepPanel.Controls.Remove(pnl); - return; - } - //_MyTimer.ActiveProcess = "SetFocus"; - - int b4topadjust = newFocus.Top; - newFocus.SetFocus(); //shifts edititem to center it - // need to adjust the TopMostYBefore so that it accounts for any shifting that occurred when the - // SetFocus was called. This fixes B2016-040. - b4topadjust -= newFocus.Top; - TopMostYBefore -= b4topadjust; - - //_MyTimer.ActiveProcess = "Dispose"; - Dispose(); - //_MyTimer.ActiveProcess = "SetAllTabs"; - newFocus.SetAllTabs(); - //_MyTimer.ActiveProcess = "TopMostYAfter"; - int TopMostYAfter = newFocus.TopMostEditItem.Top; - if (TopMostYAfter > TopMostYBefore) - newFocus.TopMostEditItem.Top = TopMostYBefore; - //_MyTimer.ActiveProcess = "AdjustLocation"; - newFocus.AdjustLocation(); - //newFocus.ShowTops(""); - //_MyTimer.ShowElapsedTimes("RemoveItem"); - ForceEditItemRefresh(newFocus); - MyStepPanel.Controls.Remove(pnl); - foreach (int enhId in enhIds) - { - ItemInfo ii = ItemInfo.Get(enhId); - bool success = this._MyStepPanel.MyStepTabPanel.MyDisplayTabControl.DeleteRTBItem(ii); - if (!success) - Item.DeleteItemAndChildren(ii); - } - if (MyItemInfo.MyDocStyle != null && MyItemInfo.MyDocStyle.SupplementalInformation) - { - if (newFocus.MyItemInfo.IsInSupInfo) - newFocus.AdjustAllForSupInfoHeight(); - else - { - EditItem prvOrParSupInfo = newFocus.FindPreviousOrParentSupInfo(); - if (prvOrParSupInfo != null) prvOrParSupInfo.AdjustAllForSupInfoHeight(); - } - } - } - - private static void ForceEditItemRefresh(EditItem newFocus) - { - // bug fix - // need to force a refresh from the level above the step that was removed. - // this fixes a problem where the following step/substep wasn't shown on the screen (but was there) - // and fixes a problem where the sequence numbers were off by one - // and fixes a problem where an edit window would end up on top of the ones above it - EditItem ei = newFocus; - while (ei.MyPreviousEditItem != null) ei = ei.MyPreviousEditItem; - if (ei.MyParentEditItem != null && ei.MyParentEditItem.MyItemInfo.IsStep) - ei.MyParentEditItem.Expand(true); - } - public EditItem DeleteItem() - { - //Volian.Base.Library.VlnTimer _MyTimer = new VlnTimer(); - //_MyTimer.ActiveProcess = "_LookupEditItems.Remove"; - MyStepPanel._LookupEditItems.Remove(MyID); - EditItem newFocus = null; - int? TopMostParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.TopMostEditItem.Top)); - int? ParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.Top)); - try - { - //_MyTimer.ActiveProcess = "DeleteItemAndChildren"; - Item.DeleteItemAndChildren(MyItemInfo); - } - catch (System.Data.SqlClient.SqlException ex) - { - HandleSqlExceptionOnDelete(ex); - return null; - } - // Remove EditItems - //_MyTimer.ActiveProcess = "RemoveFromParentsChildList"; - RemoveFromParentsChildList(); - //_MyTimer.ActiveProcess = "MyNextEditItem"; - if (MyNextEditItem != null) - { - if (MyPreviousEditItem != null) - { - MyNextEditItem.MyPreviousEditItem = MyPreviousEditItem; - MyPreviousEditItem = null; - newFocus = MyNextEditItem; - } - else - { - MyNextEditItem.MyParentEditItem = MyParentEditItem; - MyParentEditItem = null; - MyNextEditItem.MyPreviousEditItem = null; - newFocus = MyNextEditItem; - } - // Adjust the vertical locations of all of the items below the item deleted - if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format && MyNextEditItem.MyPreviousEditItem == null && - (MyNextEditItem.MyItemInfo.IsNote || MyNextEditItem.MyItemInfo.IsCaution)) - { - MyNextEditItem.MyParentEditItem.Top = (MyNextEditItem.MyParentEditItem.MyPreviousEditItem != null ? - MyNextEditItem.MyParentEditItem.MyPreviousEditItem.FindBottomDevDoc: MyNextEditItem.MyParentEditItem.MyParentEditItem.Bottom); - MyNextEditItem.Top = MyNextEditItem.MyParentEditItem.Top; - MyNextEditItem.AdjustLocation(); - } - else - { - MyNextEditItem.TopMostEditItem.AdjustLocation(); - } - MyNextEditItem = null; - } - else if (MyPreviousEditItem != null) - { - MyPreviousEditItem.MyNextEditItem = null; - //newFocus = MyPreviousEditItem.BottomMostEditItem; - // bug fix - when deleting an edit window in the AER, position to the bottom most in the AER - was jumping to RNO - newFocus = MyPreviousEditItem.BottomMostEditItemNoRNOs; - if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format && MyPreviousEditItem.MyNextEditItem == null && - (MyPreviousEditItem.MyItemInfo.IsNote || MyPreviousEditItem.MyItemInfo.IsCaution)) - { - MyPreviousEditItem.MyParent.Top = MyPreviousEditItem.MyParent.MyPreviousEditItem.FindBottomDevDoc; - MyPreviousEditItem.Top = MyPreviousEditItem.MyParent.Top; - MyPreviousEditItem.MyParent.AdjustLocation(); - } - MyPreviousEditItem = null; - //Console.Write(",\"Previous\","); - } - else - { - newFocus = MyParentEditItem; - MyParentEditItem = null; - //Console.Write(",\"Parent\","); - } - //_MyTimer.ShowElapsedTimes("DeleteItem"); - return newFocus; - } - - //private void HandleSqlExceptionOnDelete(System.Data.SqlClient.SqlException ex) - private void HandleSqlExceptionOnDelete(Exception ex) - { - this.MyStepRTB.InsertSymbol(@"\u160?"); // since text was deleted, insert a hard space to prevent a looping effect B2016-082 - using (Item itm = MyStepRTB.MyItemInfo.Get()) - { - Annotation x = Annotation.MakeAnnotation(itm, AnnotationType.GetByName("Verification Required"), null, "A Hard Space was put in to keep the Transitions referencing here valid. \nPlease remove or re-assign these transitions before deleting this step.", null); - } - if (ex.Message.Contains("has External Transitions and has no next step")) - { - using (TransitionInfoList exTrans = TransitionInfoList.GetExternalTransitions(MyID)) - { - DialogResult ans = FlexibleMessageBox.Show("Transitions exist to this step and cannot be adjusted automatically." + - "\r\n\r\nDo you want to be placed on the " + (exTrans.Count > 1 ? "first " : "") + "substep with the problem Transition?" + - "\r\n\r\nSubsteps with Problem Transitions" + - exTrans.Summarize(), - "Cannot Delete This Step", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (ans == DialogResult.Yes) - { - MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OpenItem(exTrans[0].MyContent.ContentItems[0]); - } - else - SetFocus(); - } - } - else if (ex.Message.Contains("has External Transitions to Procedure")) - { - using (TransitionInfoList exTrans = TransitionInfoList.GetExternalTransitionsToChildren(MyID)) - { - DialogResult ans = FlexibleMessageBox.Show("Transitions exist to this procedure." + - "\r\n\r\nDo you want to be placed on the " + (exTrans.Count > 1 ? "first " : "") + "substep with the problem Transition?" + - "\r\n\r\nSubsteps with Problem Transitions" + - exTrans.Summarize(), - "Cannot Delete This Procedure", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (ans == DialogResult.Yes) - { - MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OpenItem(exTrans[0].MyContent.ContentItems[0]); - - } - else - SetFocus(); - } - } - else if (ex.Message.Contains("has External Transitions to it's children")) - { - using (TransitionInfoList exTrans = TransitionInfoList.GetExternalTransitionsToChildren(MyID)) - { - DialogResult ans = FlexibleMessageBox.Show("Transitions exist to substeps of this step and cannot be adjusted automatically." + - "\r\n\r\nDo you want to be placed on the " + (exTrans.Count > 1 ? "first " : "") + "substep with the problem Transition?" + - "\r\n\r\nSubsteps with Problem Transitions:" + - exTrans.Summarize(), - "Cannot Delete This Step", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (ans == DialogResult.Yes) - { - MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OpenItem(exTrans[0].MyContent.ContentItems[0]); - } - } - } - else - MessageBox.Show(ex.Message, "SQL Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - private void RemoveFromParentsChildList() - { - EditItem top = this; - while (top.MyPreviousEditItem != null) top = top.MyPreviousEditItem; - EditItem parentEditItem = top.MyParentEditItem; - if (parentEditItem == null) return; // No parent, nothing to remove. - if (parentEditItem.MyAfterEditItems != null && parentEditItem.MyAfterEditItems.Contains(this)) - { - parentEditItem.MyAfterEditItems.Remove(this); - if (parentEditItem.MyAfterEditItems.Count == 0) - parentEditItem.MyAfterEditItems = null; - } - else if (parentEditItem.MyBeforeEditItems != null && parentEditItem.MyBeforeEditItems.Contains(this)) - { - parentEditItem.MyBeforeEditItems.Remove(this); - if (parentEditItem.MyBeforeEditItems.Count == 0) - parentEditItem.MyBeforeEditItems = null; - } - else if (parentEditItem.MyRNOEditItems != null && parentEditItem.MyRNOEditItems.Contains(this)) - { - parentEditItem.MyRNOEditItems.Remove(this); - if (parentEditItem.MyRNOEditItems.Count == 0) - parentEditItem.MyRNOEditItems = null; - } - else if (parentEditItem.MySupInfoEditItems != null && parentEditItem.MySupInfoEditItems.Contains(this)) - { - parentEditItem.MySupInfoEditItems.Remove(this); - if (parentEditItem.MySupInfoEditItems.Count == 0) - parentEditItem.MySupInfoEditItems = null; - } - if (parentEditItem.MyAfterEditItems == null && parentEditItem.MyBeforeEditItems == null && parentEditItem.MyRNOEditItems == null) - parentEditItem.CanExpand = false; - } - //private void ShowSiblings(string title) - //{ - // Console.WriteLine("---{0} {1}---",title,MyID); - // EditItem top = this; - // while (top.MyPreviousEditItem != null) top = top.MyPreviousEditItem; - // do - // { - // Console.WriteLine("{0} EditItem - {1} {2}", top.MyID == MyID ? "*" : " ", top.MyID, top.MyItemInfo.MyContent.Text); - // top = top.MyNextEditItem; - // } while (top != null); - //} - #endregion - #region Add Children - /// - /// Add a child before (Notes, Cautions, etc.) - /// - /// - /// - public void AddChildBefore(ItemInfo myItemInfo, bool expand) - { - EditItem child = new RTBItem(myItemInfo, MyStepPanel, this, ChildRelation.Before, expand); - } - /// - /// Add a list of children before - /// - /// - /// - public void AddChildBefore(ItemInfoList myItemInfoList, bool expand) - { - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - AddChildBefore(item, expand); - } - public EditItem AddChildBefore(ItemInfoList myItemInfoList, EditItem nextEditItem) - { - EditItem child = null; - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - child = AddChildBefore(item, nextEditItem); - return child; - } - /// - /// Add an RNO (Contingency) child - /// - /// - /// - public void AddChildRNO(ItemInfo myItemInfo, bool expand) - { - EditItem child = new RTBItem(myItemInfo, MyStepPanel, this, ChildRelation.RNO, expand); - } - public void AddChildSupInfo(ItemInfo myItemInfo, bool expand) - { - EditItem child = new RTBItem(myItemInfo, MyStepPanel, this, ChildRelation.SupInfo, expand); - } - /// - /// Add a list of RNO (Contingency) children - /// - /// - /// - public void AddChildRNO(ItemInfoList myItemInfoList, bool expand) - { - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - AddChildRNO(item, expand); - } - public void AddChildSupInfo(ItemInfoList myItemInfoList, bool expand) - { - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - AddChildSupInfo(item, expand); - } - /// - /// Add a child after - /// - /// - /// - public EditItem AddChildAfter(ItemInfo MyItemInfo, bool expand, bool addFirstChld) - { - EditItem child = null; - if (MyItemInfo.IsFigure) - child = new ImageItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, expand); - else if (MyItemInfo.IsRtfRaw) - child = new RtfRawItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, expand); - else if (MyItemInfo.MyContent.MyGrid != null) - child = new GridItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, expand); - else - child = new RTBItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, expand, addFirstChld); - return child; - } - public EditItem AddChildAfter(ItemInfo MyItemInfo, EditItem nextEditItem) - { - EditItem child = null; - if (MyItemInfo.IsFigure) - child = new ImageItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, true, nextEditItem, FigInsType); - else if (MyItemInfo.IsRtfRaw) - child = new RtfRawItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, true, nextEditItem); - else if (MyItemInfo.MyContent.MyGrid != null) - child = new GridItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, true, nextEditItem); - else - child = new RTBItem(MyItemInfo, MyStepPanel, this, ChildRelation.After, true, nextEditItem); - return child; - } - public EditItem AddChildBefore(ItemInfo MyItemInfo, EditItem nextEditItem) - { - EditItem child = null; - if (MyItemInfo.IsFigure) - child = new ImageItem(MyItemInfo, MyStepPanel, this, ChildRelation.Before, true, nextEditItem, FigInsType); - else if (MyItemInfo.IsRtfRaw) - child = new RtfRawItem(MyItemInfo, MyStepPanel, this, ChildRelation.Before, true, nextEditItem); - if(MyItemInfo.MyContent.MyGrid != null) - child = new GridItem(MyItemInfo, MyStepPanel, this, ChildRelation.Before, true, nextEditItem); - else - child = new RTBItem(MyItemInfo, MyStepPanel, this, ChildRelation.Before, true, nextEditItem); - return child; - } - public EditItem AddChildRNO(ItemInfo MyItemInfo, EditItem nextEditItem) - { - // not sure about this, i.e. whether a grid can be added here. - EditItem child = null; - //if (MyItemInfo.MyContent.ContentGridCount != 0) - if (MyItemInfo.MyContent.MyGrid != null) - child = new GridItem(MyItemInfo, MyStepPanel, this, ChildRelation.RNO, true, nextEditItem); - else - child = new RTBItem(MyItemInfo, MyStepPanel, this, ChildRelation.RNO, true, nextEditItem); - return child; - } - public EditItem AddChildSupInfo(ItemInfo MyItemInfo, EditItem nextEditItem) - { - EditItem child = null; - if (MyItemInfo.MyContent.MyGrid != null) - child = new GridItem(MyItemInfo, MyStepPanel, this, ChildRelation.SupInfo, true, nextEditItem); - else - child = new RTBItem(MyItemInfo, MyStepPanel, this, ChildRelation.SupInfo, true, nextEditItem); - return child; - } - /// - /// Adds a sibling after the current EditItem - /// - public void AddSiblingAfter() - { - AddSiblingAfter("", true); - } - public void AddSiblingAfter(string text, bool updateStatus) - { - SaveContents(); - ItemInfo newItemInfo = MyItemInfo.InsertSiblingAfter(text); - AddGridIfNeeded(newItemInfo); - AddImageIfNeeded(newItemInfo); - DoAddSiblingAfter(newItemInfo, updateStatus); - if (MyStepPanel.SelectedEditItem is RTBItem) - { - RTBItem rtbi = MyStepPanel.SelectedEditItem as RTBItem; - // see if this step has associated enhanced step(s). If it does, flag it so - // that the enhanced steps get inserted also. - StepConfig sc = new StepConfig(MyItemInfo.MyContent.Config); - if (sc.MyEnhancedDocuments.Count > 0) - { - rtbi.EnhAddFromItemInfo = MyItemInfo; - rtbi.EnhAddType = EnhancedAddTypes.After; - } - } - } - // This logic allows us to do an Insert Before and Insert After while on a Table - // if allowed by the format - private void AddGridIfNeeded(ItemInfo newItemInfo) - { - if (this is GridItem) - { - GridItem gi = this as GridItem; - VlnFlexGrid fg = new VlnFlexGrid(gi.MyFlexGrid.Rows.Count, gi.MyFlexGrid.Cols.Count); - // bug fix B2015136 - // need to copy the font used in the table we are doing the Insert Previous/Next from. - VE_Font vefont = MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Table.Font; - Font GridFont = new Font(vefont.Family, (float)vefont.Size); - fg.Font = GridFont; - using (Item itm = newItemInfo.Get()) - { - itm.MyContent.MyGrid.Data = fg.GetXMLData(); - itm.Save(); - } - } - } - // This logic allows us to do an Insert Before and Insert After while on a Figure - // if allowed by the format. Note that Before/After for figures is only Clipboard (if - // image data exists in clipboard), or file. Doing RO images will be added later if needed - - // this decision was made because of scope. - private void AddImageIfNeeded(ItemInfo newItemInfo) - { - if (this is ImageItem) ImageItem.AddImageIfNeeded(newItemInfo); - } - - public void AddSiblingAfter(int? type, bool updateStatus) - { - SaveContents(); - ItemInfo newItemInfo = MyItemInfo.InsertSiblingAfter("", "", type); - AddGridIfNeeded(newItemInfo); - AddImageIfNeeded(newItemInfo); - DoAddSiblingAfter(newItemInfo, updateStatus); - if (MyStepPanel.SelectedEditItem is RTBItem) - { - RTBItem rtbi = MyStepPanel.SelectedEditItem as RTBItem; - // see if this step has associated enhanced step(s). If it does, flag it so - // that the enhanced steps get inserted also. - StepConfig sc = new StepConfig(MyItemInfo.MyContent.Config); - if (sc.MyEnhancedDocuments.Count > 0) - { - rtbi.EnhAddFromItemInfo = MyItemInfo; - rtbi.EnhAddType = EnhancedAddTypes.After; - } - } - } - private void DoAddSiblingAfter(ItemInfo newItemInfo, bool updateStatus) - { - EditItem newEditItem = null; - switch (_MyChildRelation) - { - case ChildRelation.After: - newEditItem = ActiveParent.AddChildAfter(newItemInfo, MyNextEditItem); - break; - case ChildRelation.Before: - newEditItem = ActiveParent.AddChildBefore(newItemInfo, MyNextEditItem); - break; - case ChildRelation.RNO: - newEditItem = ActiveParent.AddChildRNO(newItemInfo, MyNextEditItem); - break; - case ChildRelation.SupInfo: - newEditItem = ActiveParent.AddChildSupInfo(newItemInfo, MyNextEditItem); - break; - default: // Need debug - break; - } - //EditItem newEditItem = ActiveParent.AddChildAfter(newItemInfo, ); - if (updateStatus) - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - } - protected static int _WatchThis = 1; - public void AddSiblingBefore() - { - AddSiblingBefore("", true); - } - public void AddSiblingBefore(int? type, bool updateStatus) - { - SaveContents(); - ItemInfo newItemInfo = MyItemInfo.InsertSiblingBefore("", "",type); - AddGridIfNeeded(newItemInfo); - AddImageIfNeeded(newItemInfo); - DoAddSiblingBefore(newItemInfo, updateStatus); - } - public void AddSiblingBefore(string text, bool updateSelection) - { - // Save RTB text before creating a new item because the process of creating - // a new item will save a change to iteminfo excluding text changes. This - // shouldn't be necessary for adding sibling after because the current step - // doesn't get saved during the insert after because of the MyPrevious field - // is only set on an insert before, which is what saves the item without - // any updates from the richtextbox text. - SaveContents(); - ItemInfo newItemInfo = MyItemInfo.InsertSiblingBefore(text); - AddGridIfNeeded(newItemInfo); - AddImageIfNeeded(newItemInfo); - DoAddSiblingBefore(newItemInfo, updateSelection); - if (MyStepPanel.SelectedEditItem is RTBItem) - { - RTBItem rtbi = MyStepPanel.SelectedEditItem as RTBItem; - // see if this step has associated enhanced step(s). If it does, flag it so - // that the enhanced steps get inserted also. - StepConfig sc = new StepConfig(MyItemInfo.MyContent.Config); - if (sc.MyEnhancedDocuments.Count > 0) - { - rtbi.EnhAddFromItemInfo = MyItemInfo; - rtbi.EnhAddType = EnhancedAddTypes.Before; - } - } - } - public void DoAddSiblingBefore(ItemInfo newItemInfo, bool updateSelection) - { - EditItem newEditItem = null; - switch (_MyChildRelation) - { - case ChildRelation.After: - newEditItem = ActiveParent.AddChildAfter(newItemInfo, this); - break; - case ChildRelation.Before: - newEditItem = ActiveParent.AddChildBefore(newItemInfo, this); - break; - case ChildRelation.RNO: - newEditItem = ActiveParent.AddChildRNO(newItemInfo, this); - break; - case ChildRelation.SupInfo: - newEditItem = ActiveParent.AddChildSupInfo(newItemInfo, this); - break; - default: // Need debug - break; - } - if (updateSelection) - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - } - public void AddSiblingBeforeNoDataSave(ItemInfo newItemInfo, bool updateSelection, EditItem tt) - { - EditItem newEditItem = null; - newEditItem = ActiveParent.AddChildBefore(newItemInfo, this); - //switch (_MyChildRelation) - //{ - // case ChildRelation.After: - // newEditItem = ActiveParent.AddChildAfter(newItemInfo, this); - // break; - // case ChildRelation.Before: - // newEditItem = ActiveParent.AddChildBefore(newItemInfo, this); - // break; - // case ChildRelation.RNO: - // newEditItem = ActiveParent.AddChildRNO(newItemInfo, this); - // break; - // default: // Need debug - // break; - //} - if (updateSelection) - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - } - private bool specialAdd = false; - public void AddSiblingBeforeNoDataSave(ItemInfoList newItemInfos, bool updateSelection) - { - specialAdd = true; - EditItem newEditItem = null; - newEditItem = ActiveParent.AddChildAfter(newItemInfos, false, true); - if (updateSelection) - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - specialAdd = false; - } - private ImageItem.E_ImageSource FigInsType = ImageItem.E_ImageSource.None; - public void AddChild(E_FromType fromType, int type, ImageItem.E_ImageSource newSource) - { - FigInsType = newSource; - AddChild("", fromType, type, null); - FigInsType = ImageItem.E_ImageSource.None; - } - public void AddChild(E_FromType fromType, int type) - { - AddChild("", fromType, type, null); - } - public void AddChild(E_FromType fromType, int type, VlnFlexGrid vfGrid) - { - AddChild("", fromType, type, vfGrid); - } - public void AddChild(string text, E_FromType fromType, int type, VlnFlexGrid vfGrid) - { - if ((_MyItemInfo.IsHigh && !MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format) || _MyItemInfo.IsSection) - CanExpand = true; - this.Expanded = true; - _WatchThis = 1; - ItemInfo newItemInfo = MyItemInfo.InsertChild(fromType, type, text); - if (vfGrid != null) - { - string xml = vfGrid.GetXMLData(); - using (Item itm = newItemInfo.Get()) - { - itm.MyContent.MyGrid.Data = xml; - itm.Save(); - // newItemInfo.MyContent.MyGrid.ResetContent(itm.MyContent.MyGrid); // Do I need this? - } - } - // TODO: We need to determine where this will go in the stack of children - EditItem nextItem = GetNextItem(fromType, newItemInfo); - // TODO: May need similar logic if a Table is being added to a step that has substeps - // else if (fromType == E_FromType.Table && ((ItemInfo)newItemInfo.ActiveParent).Steps != null - //&& ((ItemInfo)newItemInfo.ActiveParent).Steps.Count > 0) - // nextItem = MyStepPanel.FindItem(((ItemInfo)newItemInfo.ActiveParent).Steps[0]); - EditItem newEditItem; - switch (fromType) - { - case E_FromType.Caution: - newEditItem = this.AddChildBefore(newItemInfo, nextItem); - break; - case E_FromType.Note: - newEditItem = this.AddChildBefore(newItemInfo, nextItem); - break; - case E_FromType.Procedure: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - case E_FromType.RNO: - newEditItem = this.AddChildRNO(newItemInfo, nextItem); - break; - case E_FromType.Section: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - case E_FromType.Step: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - case E_FromType.Table: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - case E_FromType.SupInfo: - newEditItem = this.AddChildSupInfo(newItemInfo, nextItem); - break; - default: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - } - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - if (MyStepPanel.SelectedEditItem is RTBItem) - { - RTBItem rtbi = MyStepPanel.SelectedEditItem as RTBItem; - // see if this step has associated enhanced step(s). If it does, flag it so - // that the enhanced steps get inserted also. - EnhancedDocuments cfgeds = null; - if (MyItemInfo.IsStepSection) - { - SectionConfig scfg = MyItemInfo.MyConfig as SectionConfig; - if (scfg.Section_LnkEnh != "Y") return; - cfgeds = scfg.MyEnhancedDocuments; - } - else - { - StepConfig sc = new StepConfig(MyItemInfo.MyContent.Config); - cfgeds = sc.MyEnhancedDocuments; - } - if (cfgeds != null && cfgeds.Count > 0) - { - rtbi.EnhAddFromItemInfo = MyItemInfo; - rtbi.EnhAddType = EnhancedAddTypes.Child; - } - } - } - public EditItem GetNextItem(E_FromType fromType, ItemInfo newItemInfo) - { - EditItem nextItem = null; - if (newItemInfo.NextItem != null) - nextItem = MyStepPanel.FindItem(newItemInfo.NextItem); - else if (fromType == E_FromType.Table && MyAfterEditItems != null) - nextItem = MyAfterEditItems[0]; - // Cautions come before notes, so if this is a Caution and there are Notes, put this first - else if (fromType == E_FromType.Caution && ((ItemInfo)newItemInfo.ActiveParent).Notes != null - && ((ItemInfo)newItemInfo.ActiveParent).Notes.Count > 0) - nextItem = MyStepPanel.FindItem(((ItemInfo)newItemInfo.ActiveParent).Notes[0]); - return nextItem; - } - /// - /// Add a list of children after - /// - /// - /// - public EditItem AddChildAfter(ItemInfoList myItemInfoList, bool expand, bool addFirstChld) - { - EditItem child = null; - int indx = 0; - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - { - if (addFirstChld) - { - // the first time add it as first child, the rest should be done in between. - child = AddChildAfter(item, expand, addFirstChld); - addFirstChld = false; - } - else - child = AddChildAfter(item, this._MyAfterEditItems[indx]); - indx++; - } - return child; - } - public EditItem AddChildAfter(ItemInfoList myItemInfoList, bool expand) - { - EditItem child = null; - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - child = AddChildAfter(item, expand, false); - return child; - } - public EditItem AddChildAfter(ItemInfoList myItemInfoList, EditItem nextEditItem) - { - EditItem child = null; - if (myItemInfoList != null) - foreach (ItemInfo item in myItemInfoList) - child = AddChildAfter(item, nextEditItem); - return child; - } - #endregion - #region CopyPaste - public void PasteSiblingBefore(int copyStartID) - { - ItemInfo newItemInfo = MyItemInfo.PasteSiblingBefore(copyStartID, GetChangeId(MyItemInfo)); - - if (newItemInfo.ItemID == MyItemInfo.ItemID) return; - - EditItem newEditItem = null; - switch (_MyChildRelation) - { - case ChildRelation.After: - newEditItem = ActiveParent.AddChildAfter(newItemInfo, this); - break; - case ChildRelation.Before: - newEditItem = ActiveParent.AddChildBefore(newItemInfo, this); - break; - case ChildRelation.RNO: - newEditItem = ActiveParent.AddChildRNO(newItemInfo, this); - break; - case ChildRelation.SupInfo: - newEditItem = ActiveParent.AddChildSupInfo(newItemInfo, this); - break; - default: // Need debug - break; - } - if (newEditItem != null) MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnItemPaste(this, new vlnTreeItemInfoPasteEventArgs(newItemInfo, copyStartID, ItemInfo.EAddpingPart.Before, newItemInfo.MyContent.Type)); - - // MyItemInfo is the 'paste from' item, if it has enhanced need to copy and paste the steps in enhanced. - ItemInfo newEnh = newItemInfo.EnhancedPasteItem(copyStartID, MyItemInfo, ItemInfo.EAddpingPart.Before, GetChangeId(MyItemInfo)); - // if enhanced items were created, then see if they need displayed: - if (newEnh != null) AddAllEnhancedItemsToDisplay(newItemInfo); - } - private void AddAllEnhancedItemsToDisplay(ItemInfo newItemInfo) - { - EnhancedDocuments eds = newItemInfo.GetMyEnhancedDocuments(); - if (eds != null && eds.Count > 0) - { - foreach (EnhancedDocument ed in eds) - AddEnhancedItemToDisplayTabItem(ItemInfo.Get(ed.ItemID)); - } - } - public void AddEnhancedItemToDisplayTabItem(ItemInfo newEnh) - { - // if tabcontrol was open for enhanced, display the steps: - ItemInfo proc = newEnh.MyProcedure; // Find procedure Item - string key = "Item - " + proc.ItemID.ToString(); - if (MyStepPanel.MyStepTabPanel.MyDisplayTabControl._MyDisplayTabItems.ContainsKey(key)) - { - DisplayTabItem pg = MyStepPanel.MyStepTabPanel.MyDisplayTabControl._MyDisplayTabItems[key]; - // _MyDisplayTabItems (in line above) had tabs that were closed, so use the next line - // to validate that the tab is still open. - foreach (DisplayTabItem ti in MyStepPanel.MyStepTabPanel.MyDisplayTabControl.MyBar.Items) - { - if (ti == pg) pg.MyStepTabPanel.MyStepPanel.GetEditItem(newEnh); - } - } - } - public void CreateLinksEnhancedSingleItem(ItemInfo srcII, ItemInfo enhII, int enhtype) - { - srcII.DoCreateLinksEnhancedSingleItem(enhII, enhtype); - SetFocus(); - } - public void CreateLinksEnhancedAllInProcedure(ItemInfo srcII, ItemInfo enhII, int enhtype) - { - using (ContentInfoList cil = ContentInfoList.Convert16To32EnhancedContents(srcII.ItemID, enhII.ItemID, enhtype)) - { - foreach (ContentInfo ci in cil) - { - using (Content c = ci.Get()) - { - // first refresh configs because the ContentInfo.Refresh causes events to occur that refresh screen - // and if configs aren't done first, the screen refresh, if based on config data, will not be correct. - foreach (ItemInfo ii in ci.ContentItems) ii.RefreshConfig(); - ContentInfo.Refresh(c); - } - } - } - } - public void UnlinkEnhanced(ItemInfo enhII) - { - enhII.DoUnlinkEnhanced(enhII); - SetFocus(); - } - public ItemInfo AddMissingEnhancedStep(ItemInfo ii, int EnhType) - { - // if the missing enhanced step is a caution or note, check that parent HLS has the needed - // enhanced step to insert the caution/note from. If not, do a message. - if (ii.IsCaution || ii.IsNote) - { - bool canMakeMissingStep = false; - StepConfig sc = ii.MyHLS.MyConfig as StepConfig; - foreach (EnhancedDocument ed in sc.MyEnhancedDocuments) - { - if (EnhType == ed.Type) // the hls has an enhanced linked step of this type, the caution/note can be made: - { - canMakeMissingStep = true; - break; - } - } - if (!canMakeMissingStep) - { - MessageBox.Show("Cannot create the missing enhanced step, the Enhanced Step for the High Level step must be created first."); - return null; - } - } - ItemInfo newEnh = ii.DoAddMissingEnhancedItems(EnhType); - // if enhanced items were created, then see if they need displayed: - if (newEnh != null) AddAllEnhancedItemsToDisplay(MyItemInfo); - SetFocus(); - return newEnh; - } - private string GetChangeId(ItemInfo iiDest) - { - // get the change id for the destination's procedure's change id. - string chgid = null; - if (iiDest.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds) - chgid = MyStepPanel.MyStepTabPanel.MyDisplayTabControl.ItemsChangeIds[iiDest.MyProcedure.ItemID]; - return chgid; - } - public void PasteSiblingAfter(int copyStartID) - { - ItemInfo newItemInfo = MyItemInfo.PasteSiblingAfter(copyStartID, GetChangeId(MyItemInfo)); - if (newItemInfo.ItemID == MyItemInfo.ItemID) return; - EditItem newEditItem = null; - switch (_MyChildRelation) - { - case ChildRelation.After: - newEditItem = ActiveParent.AddChildAfter(newItemInfo, MyNextEditItem); - break; - case ChildRelation.Before: - newEditItem = ActiveParent.AddChildBefore(newItemInfo, MyNextEditItem); - break; - case ChildRelation.RNO: - newEditItem = ActiveParent.AddChildRNO(newItemInfo, MyNextEditItem); - break; - case ChildRelation.SupInfo: - newEditItem = ActiveParent.AddChildSupInfo(newItemInfo, MyNextEditItem); - break; - default: // Need debug - break; - } - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnItemPaste(this, new vlnTreeItemInfoPasteEventArgs(newItemInfo, copyStartID, ItemInfo.EAddpingPart.After, newItemInfo.MyContent.Type)); - - // MyItemInfo is the 'paste from' item, if it has enhanced need to copy and paste the steps in enhanced. - ItemInfo newEnh = newItemInfo.EnhancedPasteItem(copyStartID, MyItemInfo, ItemInfo.EAddpingPart.After, GetChangeId(MyItemInfo)); - if (newEnh != null) AddAllEnhancedItemsToDisplay(newItemInfo); - } - public void PasteChild(int copyStartID) - { - ItemInfo newItemInfo = MyItemInfo.PasteChild(copyStartID, GetChangeId(MyItemInfo)); - - E_FromType fromType = E_FromType.Step; - if (MyItemInfo.MyContent.Type < 10000) - fromType = E_FromType.Procedure; - else if (MyItemInfo.MyContent.Type < 20000) - fromType = E_FromType.Section; - else if (MyItemInfo.MyContent.Type > 19999) - { - int tmptype = (int)MyItemInfo.MyContent.Type - 20000; - if (MyItemInfo.IsCaution) fromType = E_FromType.Caution; - else if (MyItemInfo.IsNote) fromType = E_FromType.Note; - else if (MyItemInfo.IsTable) fromType = E_FromType.Table; - else if (MyItemInfo.IsRNOPart) fromType = E_FromType.RNO; - else if (MyItemInfo.IsSupInfoPart) fromType = E_FromType.SupInfo; - } - EditItem nextItem = GetNextItem(fromType, newItemInfo); - EditItem newEditItem; - - switch (fromType) - { - case E_FromType.Caution: - newEditItem = this.AddChildBefore(newItemInfo, nextItem); - break; - case E_FromType.Note: - newEditItem = this.AddChildBefore(newItemInfo, nextItem); - break; - case E_FromType.Procedure: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - case E_FromType.RNO: - newEditItem = this.AddChildRNO(newItemInfo, nextItem); - break; - case E_FromType.Section: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - case E_FromType.Step: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - case E_FromType.Table: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - case E_FromType.SupInfo: - newEditItem = this.AddChildSupInfo(newItemInfo, nextItem); - break; - default: - newEditItem = this.AddChildAfter(newItemInfo, nextItem); - break; - } - MyStepPanel.SelectedEditItem = newEditItem;//Update Screen - - // MyItemInfo is the 'paste from' item, if it has enhanced need to copy and paste the steps in enhanced. - ItemInfo newEnh = newItemInfo.EnhancedPasteItem(copyStartID, MyItemInfo, ItemInfo.EAddpingPart.Child, GetChangeId(MyItemInfo)); - if (newEnh != null) AddAllEnhancedItemsToDisplay(newItemInfo); - } - public EditItem PasteReplace(int copyStartID) - { - // To allow a Paste Step into an empty (new) step/substep, we need to add a character to the the Text field - // to simulate replacing an existing step - otherwise we will get null references. - if (MyStepPanel.SelectedEditItem.Empty) - MyStepPanel.SelectedEditItem.Empty=false; - MyStepPanel.SelectedEditItem = null; // Unselect the item to be deleted - ChildRelation childRelation = _MyChildRelation; - EditItem newFocus = null; - EditItem nextEditItem = MyNextEditItem; - EditItem prevEditItem = MyPreviousEditItem; - EditItem parentEditItem = ActiveParent; - - StepConfig savOrigPasteConfig = MyItemInfo.MyConfig as StepConfig; - int TopMostYBefore = TopMostEditItem.Top; - int? TopMostParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.TopMostEditItem.Top)); - int? ParentY = (MyParentEditItem == null ? null : (int?)(MyParentEditItem.Top)); - ItemInfo newItemInfo = null; - try - { - newItemInfo = Item.PasteReplace(MyItemInfo, copyStartID, GetChangeId(MyItemInfo)); - } - //catch (System.Data.SqlClient.SqlException ex) - catch (Exception ex) - { - if (HandleSqlExceptionOnCopy(ex)) return this; - HandleSqlExceptionOnDelete(ex); - return this; - } - // Remove the EditItem that was the replaced item. - RemoveFromParentsChildList(); - - if (MyNextEditItem != null) - { - if (MyPreviousEditItem != null) - { - MyNextEditItem.MyPreviousEditItem = MyPreviousEditItem; - MyPreviousEditItem = null; - } - else - { - MyNextEditItem.MyParentEditItem = MyParentEditItem; - MyParentEditItem = null; - MyNextEditItem.MyPreviousEditItem = null; - } - MyNextEditItem = null; - } - else if (MyPreviousEditItem != null) - { - MyPreviousEditItem.MyNextEditItem = null; - newFocus = MyPreviousEditItem; - MyPreviousEditItem = null; - } - else - { - newFocus = MyParentEditItem; - MyParentEditItem = null; - } - - // add copied item to ui where the replaced item was. - EditItem newEditItem = null; - switch (childRelation) - { - case ChildRelation.After: - newEditItem = parentEditItem.AddChildAfter(newItemInfo, nextEditItem); - break; - case ChildRelation.Before: - newEditItem = parentEditItem.AddChildBefore(newItemInfo, nextEditItem); - break; - case ChildRelation.RNO: - newEditItem = parentEditItem.AddChildRNO(newItemInfo, nextEditItem); - break; - case ChildRelation.SupInfo: - newEditItem = parentEditItem.AddChildSupInfo(newItemInfo, nextEditItem); - break; - default: // Need debug - break; - } - MyStepPanel.SelectedEditItem = newEditItem; //Update Screen - MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnItemPaste(this, new vlnTreeItemInfoPasteEventArgs(newItemInfo, copyStartID, ItemInfo.EAddpingPart.Replace, newItemInfo.MyContent.Type)); - // MyItemInfo is the 'paste from' item, if it has enhanced need to copy and paste the steps in enhanced. - ItemInfo newEnh = newItemInfo.PasteEnhancedItems(copyStartID, MyItemInfo, ItemInfo.EAddpingPart.Replace, GetChangeId(MyItemInfo)); - if (newEnh != null) AddAllEnhancedItemsToDisplay(newItemInfo); // KBR - I think this won't work for replace!! - return newEditItem; - } - private bool HandleSqlExceptionOnCopy(Exception ex) - { - if (ex.Message.Contains("This step has been deleted")) - { - MessageBox.Show("The step being pasted has been deleted", "Cannot Paste Step", MessageBoxButtons.OK, MessageBoxIcon.Hand); - return true; - } - if(ex.Message.Contains("This current step has been deleted in another session")) - { - MessageBox.Show("The highlighted step has been deleted by another user.", "Cannot Paste Step", MessageBoxButtons.OK, MessageBoxIcon.Hand); - return true; - } - return false; - } - public void IdentifyChildren(bool highlight) - { - // Highlight children of EditItem: - if (MyAfterEditItems != null) - { - foreach (EditItem sia in MyAfterEditItems) - { - sia.IdentifyMe(highlight); - sia.IdentifyChildren(highlight); - } - } - if (MyBeforeEditItems != null) - { - foreach (EditItem sib in MyBeforeEditItems) - { - sib.IdentifyMe(highlight); - sib.IdentifyChildren(highlight); - } - } - if (MyRNOEditItems != null) - { - foreach (EditItem sir in MyRNOEditItems) - { - sir.IdentifyMe(highlight); - sir.IdentifyChildren(highlight); - } - } - if (MySupInfoEditItems != null) - { - foreach (EditItem sis in MySupInfoEditItems) - { - sis.IdentifyMe(highlight); - sis.IdentifyChildren(highlight); - } - } - } - #endregion - #region Event Handlers - private string WatchThisIndent - { - get { return "".PadLeft(_WatchThis, '\t'); } - } - protected bool RNOBelow - { - get - { - if (_MyRNOEditItems != null) - { - return _MyRNOEditItems[0].RNOLevel > _MyItemInfo.ColumnMode; - //return _MyRNOEditItems[0].Left == Left; - } - return false; - } - } - protected bool RNORight - { - get - { - if (_MyRNOEditItems != null) - { - return _MyRNOEditItems[0].RNOLevel <= _MyItemInfo.ColumnMode; - //return _MyRNOEditItems[0].Left != Left; - } - return false; - } - } - protected void MoveRNO() - { - if (_MyRNOEditItems != null) - { - if (_MyRNOEditItems[0].TopMostEditItem.Top != Top) - { - //if(_MyLog.IsDebugEnabled)_MyLog.DebugFormat("\r\n'Adjust RNO',{0},'Move',{1}", MyID, _RNO[0].MyID); - EditItem rnoTop = _MyRNOEditItems[0].TopMostEditItem; - if (rnoTop.RNOLevel <= _MyItemInfo.ColumnMode) - { - //EditItem tmpBottom = this; - //if (_MyAfterEditItems != null) tmpBottom = _MyAfterEditItems[_MyAfterEditItems.Count - 1].BottomMostEditItem; - MyStepPanel.ItemMoving++; - rnoTop.LastMethodsPush(string.Format("EditItem_Move RNO Right {0}", rnoTop.MyID)); - //rnoTop.Top = tmpBottom.Bottom; - if (rnoTop.Top != Top) - rnoTop.Top = Top; - rnoTop.LastMethodsPop(); - MyStepPanel.ItemMoving--; - } - else - { - MyStepPanel.ItemMoving++; - rnoTop.LastMethodsPush(string.Format("EditItem_Move RNO Below {0} {1} {2}", rnoTop.MyID, BottomMostEditItemNoRNOs.MyID, BottomMostEditItemNoRNOs.Bottom)); - if (rnoTop.Top != BottomMostEditItemNoRNOs.Bottom) - rnoTop.Top = BottomMostEditItemNoRNOs.Bottom; - rnoTop.LastMethodsPop(); - MyStepPanel.ItemMoving--; - } - } - } - } - protected void MoveSupInfo() // If the current item has supplemental information, be sure its top location is that of the current item. - { - if (_MySupInfoEditItems != null && _MySupInfoEditItems.Count > 0) - { - EditItem supInfoTop = _MySupInfoEditItems[0].TopMostEditItem; - if (supInfoTop.Top != Top + supInfoTop.SupInfoTopOffset) - { - MyStepPanel.ItemMoving++; - supInfoTop.LastMethodsPush(string.Format("EditItem_Move SupInfo Right {0}", supInfoTop.MyID)); - supInfoTop.Top = Top + supInfoTop.SupInfoTopOffset; - supInfoTop.LastMethodsPop(); - MyStepPanel.ItemMoving--; - } - } - } - private bool _TryAgainLater = false; - public bool TryAgainLater - { - get { return _TryAgainLater; } - set { _TryAgainLater = value; } - } - //static bool _ShowChanges=false; - int _LastTop = 0; - - // Bug Fix: B2017-059 only turn on the spellchecking if the RTB is visible. This controls the number of windows handles created durning spellchecking - private void TurnOnSpellCheckIfVisible() - { - if (MyStepRTB != null) - { - if (this.Top + this.Height > 0 && this.Top < MyStepPanel.Height) - MyStepRTB.SpellCheckStatus = true; - else - MyStepRTB.SpellCheckStatus = false; - } - } - /// - /// Handles movement of the EditItems - /// - /// - /// - // use the following to debug if two steps are to be displayed one right after the other vertically, but they are getting separated, overwritten, - // gaps. See code below at the beginning of EditItem_Move that uses these. - //static EditItem ei_below; - //static EditItem ei_above; - private void EditItem_Move(object sender, EventArgs e) - { - //if (MyID == 205300) ei_above = this; - //if (MyID == 205306) ei_below = this; - //if (ei_below != null && ei_above != null && MyID == ei_below.MyID && ei_below.Top != ei_above.Bottom) Console.WriteLine("here"); - TurnOnSpellCheckIfVisible(); - int newTop = Top - MyStepPanel.TopMostEditItem.Top; - //if(_ShowChanges && _LastTop != newTop && MyItemInfo.InList(134786)) - //Volian.Base.Library.vlnStackTrace.ShowStackLocal(2,10,"\"EditItem_Move\"\t\"\"\t\"{0}\"\t{1}\t{2}\t{3}",MyItemInfo.ShortPath, MyID, Top, _LastTop); - if (_LastTop == newTop) return; - _LastTop = newTop; - int watchThis = _WatchThis; - if (MyStepPanel.ItemMoving == 0 && !TryAgainLater) - { - //vlnStackTrace.ScrollInStack(); - return; // If 0 - Indicates scrolling which requires no action. - } - TryAgainLater = false; - //ShowMe("Move"); - if (MyItemInfo == null) - return; - //if (_WatchThis > 0 && MyID > _StartingID) - //{ - - // Console.WriteLine("{0}Start Move {1},{2}", WatchThisIndent, MyID, this); - // if (MyID == _LookForID) - // Console.WriteLine("{0}---------------", WatchThisIndent,MyID, this); - // _WatchThis++; - //} - if (MyExpandingStatus == ExpandingStatus.Expanding) - { - _WatchThis = watchThis; - return; - } - Moving = true; - EditItem tmp = (EditItem)sender; - if (tmp.MyPreviousEditItem == null && tmp.MyParentEditItem == null) - { - _WatchThis = watchThis; - return; - } - if (RNOBelow) // Adjust substeps first - { - //Console.WriteLine("RNOBelow"); - AdjustLocation(); - MoveRNO(); - } - else // Adjust RNO First - { - if (RNORight) - { - //Console.WriteLine("RNORight"); - MoveRNO(); - } - AdjustLocation(); - } - Moving = false; - EditItem btm = BottomMostEditItem; - EditItem supinfo = null; - if (MySupInfoEditItems != null && MySupInfoEditItems.Count > 0) supinfo = MySupInfoEditItems[0].BottomMostEditItem; - if (supinfo != null && supinfo.Bottom > btm.Bottom) btm = supinfo; - if (this != btm) - btm.AdjustLocation(); - //if (_WatchThis > 0 && MyID > _StartingID) - //{ - // Console.WriteLine("{0}Finish Move {1},{2}",WatchThisIndent, MyID, this); - //} - _WatchThis = watchThis; - } - /// - /// Adjust the locations when the EditItem is resized - /// - /// - /// - private void EditItem_Resize(object sender, EventArgs e) - { - if (MyItemInfo == null) return; - if (_IgnoreResize) return; - AdjustLocation(); - HandleResize(); - AdjustAllForSupInfoHeight(); - } - #endregion // Event Handlers - #region Private and Protected Methods - /// - /// Calculates the table location - /// - /// - /// - /// - /// - protected Point TableLocation(StepSectionLayoutData myStepSectionLayoutData, int width) - { - // bug fix: B2016-111 - myParentEditItem was getting a null reference error when inserting a figure before/after a figure - EditItem myParentEditItem = _MyParentEditItem; - if (myParentEditItem == null) - { - EditItem parentEI = _MyPreviousEditItem; - while (parentEI._MyPreviousEditItem != null) - parentEI = parentEI._MyPreviousEditItem; - myParentEditItem = parentEI._MyParentEditItem; - } - // Should center on parent unless it is a centered table type in the AER column or parent is another table type, then - // walk up until finding a non-table type step'. (B2016-264: insert of centered eq off centered eq was not locating child equation correctly) - EditItem aboveForLocation = myParentEditItem; - if (aboveForLocation.MyItemInfo.IsTable || aboveForLocation.MyItemInfo.IsRtfRaw || aboveForLocation.MyItemInfo.IsFigure) - { - while (aboveForLocation.MyItemInfo.IsFigure || aboveForLocation.MyItemInfo.IsRtfRaw || aboveForLocation.MyItemInfo.IsTable) aboveForLocation = aboveForLocation.MyParentEditItem; - } - - int center = aboveForLocation.ContentLeft + aboveForLocation.ContentWidth / 2; - int rightLimit = aboveForLocation.Right; - // Then should center on the wid Limit - if ((MyItemInfo.FormatStepData.Type.Contains("AER") == false && MyItemInfo.RNOLevel == 0 ) && !MyItemInfo.IsInSupInfo) - { - // B2017-043 COLR is used as a Width - int colR = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColRTable, MyItemInfo.ColumnMode); - rightLimit += colR * MyItemInfo.ColumnMode; - center += (colR * MyItemInfo.ColumnMode) / 2; - center -= (aboveForLocation.ContentLeft - (int)MyItemInfo.MyDocStyle.Layout.LeftMargin) / 2; - } - - // Calulate the x location - //int x = myParentEditItem.TextLeft; - int x = center - width / 2; - if (x + width > rightLimit) x = rightLimit - width; - // B2017-043 account for Horizontal Scroll - int colT =MyStepPanel.DisplayRectangle.X + MyStepPanel.ToDisplay((int)myStepSectionLayoutData.ColT); - if (x < colT) x = colT; - int y = FindTop(myParentEditItem.Bottom); - return new Point(x, y); - } - protected void DoMouseWheel(MouseEventArgs e) - { - MyStepPanel.MouseWheel(e); - } - protected void InsertPgBrk() - { - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.btnInsPgBrk_Click(this, new EventArgs()); - MyStepPropertiesPanel.UpdatePageBreakCheckBox(); // update the checkbox on the Step Properties panel - if (!MyStepRTB.ContainsFocus) - MyStepRTB.Focus(); - } - protected void ToggleChangeBar() - { - MyStepPropertiesPanel.ToggleChangeBar(); // update the checkbox on the Step Properties panel - if (!MyStepRTB.ContainsFocus) - MyStepRTB.Focus(); - } - protected void ToggleContinuousActionSummary() - { - if (MyStepPropertiesPanel != null) // bug fix B2016-256 check for a null reference incase we are not on a step element - MyStepPropertiesPanel.ToggleContActSummary(); // update the checkbox on the Step Properties panel - if (!MyStepRTB.ContainsFocus) - MyStepRTB.Focus(); - } - protected void TogglePlaceKeeper() - { - MyStepPropertiesPanel.TogglePlaceKeeper(); // update the checkbox on the Step Properties panel - if (!MyStepRTB.ContainsFocus) - MyStepRTB.Focus(); - } - protected void TogglePlaceKeeperContAct() - { - MyStepPropertiesPanel.TogglePlaceKeeperContAct(); // update the checkbox on the Step Properties panel - if (!MyStepRTB.ContainsFocus) - MyStepRTB.Focus(); - } - protected void ToggleSuperScript() - { - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.btnSuperscript_Click(this, new EventArgs()); // click the Superscrpt button on the ribbon - if (!MyStepRTB.ContainsFocus) - MyStepRTB.Focus(); - } - protected void ToggleSubScript() - { - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.btnSubscript_Click(this, new EventArgs()); // click the Subscrpt button on the ribbon - if (!MyStepRTB.ContainsFocus) - MyStepRTB.Focus(); - } - protected void OpenAnnotations() - { - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.btnAnnots_Click(this, new EventArgs()); - } - protected bool CheckClipboard() - { - return (MyStepPanel.MyStepTabPanel.MyDisplayTabControl.MyCopyStep != null); - } - protected void CopyStep() - { - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.DoCopyStep(); - } - /// - /// Finds the last child in a list - /// - /// - /// - private static EditItem LastChild(List childEditItems) - { - return childEditItems[childEditItems.Count - 1]; - } - /// - /// If the selected EditItem is within the window leave it as it is. - /// If not, scroll so that the selected window is centered. - /// - protected void ScrollToCenter() - { - //vlnStackTrace.ShowStack("CenterScroll {0} Current {1} Top {2} Bottom {3} Limit {4}", _MyItem.ItemID, _Panel.VerticalScroll.Value, Top, Bottom, _Panel.Height);// Show StackTrace - //Console.WriteLine("CenterScroll {0} Current {1} Top {2} Bottom {3} Limit {4}", _MyItem.ItemID, _Panel.VerticalScroll.Value, Top, Bottom, _Panel.Height); - if (Top >= 0 && Bottom <= MyStepPanel.Height) return;// Don't move if within screen. - int scrollValue = MyStepPanel.VerticalScroll.Value + (Top - (MyStepPanel.Height / 2)); // calculate scroll center for the item - // Limit scroll location within allowable values - scrollValue = Math.Max(MyStepPanel.VerticalScroll.Minimum,Math.Min(MyStepPanel.VerticalScroll.Maximum,scrollValue)); - //Console.WriteLine("CenterScroll {0} Current {1} New {2} Min {3} Max {4}", _MyItem.ItemID, _Panel.VerticalScroll.Value, scrollValue, _Panel.VerticalScroll.Minimum, _Panel.VerticalScroll.Maximum); - //if (scrollValue >= MyStepPanel.VerticalScroll.Minimum && scrollValue <= MyStepPanel.VerticalScroll.Maximum) // If it is within range - MyStepPanel.VerticalScroll.Value = scrollValue; // Center the item - } - - /// - /// Hide a Items Children - Part of colapsing - /// - protected void HideChildren() - { - HideChildren(_MyBeforeEditItems); - HideChildren(_MyRNOEditItems); - HideChildren(_MySupInfoEditItems); - HideChildren(_MyAfterEditItems); - } - /// - /// Hide a list of children - Part of colapsing - /// - /// - private void HideChildren(List childEditItems) - { - if (childEditItems != null) - { - foreach (EditItem child in childEditItems) - { - if (child.Expanded) child.HideChildren(); - child.Hidden = true; - } - } - } - /// - /// Unhide an items Children - Part of expanding - /// - /// - protected void UnhideChildren(bool expand) - { - UnhideChildren(_MyBeforeEditItems, expand); - UnhideChildren(_MyRNOEditItems, expand); - UnhideChildren(_MySupInfoEditItems, expand); - UnhideChildren(_MyAfterEditItems, expand); - MatchExpanded(); - - } - /// - /// Unhide a list of children - part of expanding - /// - /// - /// - private void UnhideChildren(List childEditItems, bool expand) - { - if (childEditItems != null) - { - foreach (EditItem child in childEditItems) - { - if (child.Expanded) - child.UnhideChildren(expand); - else if (expand) - child.Expand(expand); - child.Hidden = false; - } - } - } - /// - /// Move children as necessary - /// - protected void AdjustChildren() - { - AdjustChildren(_MyBeforeEditItems); - AdjustChildren(_MyRNOEditItems); - AdjustChildren(_MySupInfoEditItems); - AdjustChildren(_MyAfterEditItems); - } - /// - /// Move a list of children - /// - /// - private void AdjustChildren(List childEditItems) - { - if (childEditItems != null) - { - foreach (EditItem child in childEditItems) - { - child.AdjustLocation(); - if (child.Expanded) child.AdjustChildren(); - } - } - } - /// - /// Expand a list of children - /// - /// - private void ExpandChildren(List childEditItems) - { - if (childEditItems != null) - { - foreach (EditItem child in childEditItems) - { - if (child.CanExpand) - { - child.Expand(true); - } - child.Hidden = false; - } - } - } - /// - /// Expand children - /// - private void ExpandChildren() - { - // Walk though Children performing Expand - ExpandChildren(_MyBeforeEditItems); - ExpandChildren(_MyRNOEditItems); - ExpandChildren(_MySupInfoEditItems); - ExpandChildren(_MyAfterEditItems); - } - private string MyPath - { - get - { - if (MyItemInfo.MyContent.Type >= 20000) - return MyItemInfo.Path.Substring(MyItemInfo.ActiveSection.Path.Length); - return MyItemInfo.MyContent.ToString(); - } - } - private EditItem AEREditItem - { - get - { - if (RNOLevel == 0) return null; - if (MyParentEditItem != null) - { - if (MyParentEditItem.RNOLevel < RNOLevel) - return MyParentEditItem; - else - return MyParentEditItem.AEREditItem; - } - else if (MyPreviousEditItem != null) - { - return MyPreviousEditItem.AEREditItem; - } - //Volian.Base.Library.vlnStackTrace.ShowStackLocal("'AEREditItem',{0},{1}", MyID, MyItemInfo.DBSequence); - return null; - } - } - /// - /// Adjust the Location of all items below the current item. - /// - internal void AdjustLocation() - { - if (RNORight) MoveRNO(); // This is needed when an AER is Deleted that has an RNO. - MoveSupInfo(); // If the current item has supplemental information, be sure its top location is that of the current item. - if (RNOLevel > 0 && AEREditItem != null) - AEREditItem.AdjustLocation(); - EditItem nextEditItem = NextDownEditItem; - //if(_LookForID.Contains(MyID)) - // Console.WriteLine("{0}AdjustLocation {1},{2},{3} -> {4},{5} ({6}) {7}", WatchThisIndent, MyID, MyItemInfo.Ordinal, MyPath, - // nextEditItem == null ? 0 : nextEditItem.MyID, nextEditItem == null ? 0 : nextEditItem.MyItemInfo.Ordinal, nextEditItem == null ? "Null" : nextEditItem.MyPath, - // _NextDownEditItemPath); - if (nextEditItem != null) - { - if (MyStepPanel.ExpandingHLS != null && nextEditItem.MyItemInfo.IsSection) return; // without this, if next item is section, it crashes on null reference - if (MyStepPanel.ExpandingHLS != null && nextEditItem.MyItemInfo.MyHLS.ItemID != MyStepPanel.ExpandingHLS.ItemID) - return; - int bottom = nextEditItem.FindTop(Bottom); - if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format) - { - if (MyItemInfo.IsCaution || MyItemInfo.IsNote) - { - if (nextEditItem.MyItemInfo.IsHigh || (nextEditItem.MyItemInfo.IsNote && MyItemInfo.IsCaution)) - { - bottom = FirstSiblingEditItem.Top; - } - // RHM 20170216 - // MyParent will walk back MyPrevious to find Parent - // NextDevDocStep will find the first part of a Dev Doc HLS - AdjustForDevDocStepHeight(); - } - } - // SameRowAsParent - Comanche Peak Step Designator - //FormatData fmtdata = MyItemInfo.ActiveFormat.PlantFormat.FormatData; - //int formatSteptype = MyItemInfo.FormatStepType; - //if (fmtdata.StepDataList[formatSteptype].SameRowAsParent) - //if (MyItemInfo.SameRowAsParent && MyItemInfo.IsCaution2) - // bottom = Top; - - // If this is a "TitleWithTextRight", don't move down on the screen but only if it has a - // child, i.e. want the child to be positioned on line, but if no child, move down on screen: - int newTop = bottom; - if (MyItemInfo.IsSupInfoPart) newTop = Math.Max(bottom, nextEditItem.BottomOfStepImmediatelyAbove()); - if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format) // Deviation Document Format - if (MyItemInfo.IsStep && nextEditItem.MyItemInfo.IsStep && nextEditItem.MyItemInfo.MyHLS.ItemID != MyItemInfo.MyHLS.ItemID)// Move from one step to another - newTop = FindBottomDevDoc;// Use the bottom most caution or note - - if (MyItemInfo.FormatStepData != null && MyItemInfo.FormatStepData.Type == "TitleWithTextRight" && MyItemInfo.HasChildren) newTop = Top; - //This was useful to find the code that was positioning the Deviationn Document steps - //if (MyItemInfo.InList(134782, 134783) || nextEditItem.MyItemInfo.InList(134782, 134783)) - // Console.WriteLine("\"AdjustLocation\"\t\"{0}\"\t\"{1}\"\t{2}\t{3}\t{4}\t{5}", MyItemInfo.ShortPath, nextEditItem.MyItemInfo.ShortPath, nextEditItem.MyID, newTop, FindBottom, FindBottom - Top); - if (nextEditItem.Top != newTop) - { - MyStepPanel.ItemMoving++; - nextEditItem.LastMethodsPush(string.Format("AdjustLocation {0}", MyID)); - nextEditItem._NextDownEditItemPath = _NextDownEditItemPath; - float oldTop = nextEditItem.Top; - nextEditItem.ExpandPrefix = 0;// If I move then I have to move my children when I expand - // it appears that setting the top doesn't always work. The logic below checks to see if it does - // not work and trys some other things so that the EditItem will be moved to the correct place. - // As a last attempt, the EditItem is added to a list to be refreshed from a timer on MyStepPanel. - if (nextEditItem.MySupInfoEditItems != null && nextEditItem.MySupInfoEditItems.Count > 0) newTop = nextEditItem.MySupInfoEditItems[0].FindTop(newTop); - nextEditItem.Top = newTop; - if (nextEditItem.Top != newTop) - { - //_MyLog.InfoFormat("'TryAgainLater',{0},{1},{2},{3},{4},'{5}'", - // oldTop, nextEditItem.Top, newTop, MyStepPanel.Height, nextEditItem.MyID, nextEditItem.MyItemInfo.ShortPath); - nextEditItem.TryAgainLater = true; - } - nextEditItem.LastMethodsPop(); - MyStepPanel.ItemMoving--; - } - } - } - private int _DevDocHeight = 0; // Deviation Document Step Height B2016-123, B2017-020, B2017-021 - public int DevDocHeight - { - get { return _DevDocHeight; } - set { _DevDocHeight = value; } - } - public void TryAgainNow(int bottom) - { - TryToSetTop(bottom-10); - //TryToSetTop(bottom+10); - TryToSetTop(bottom); - } - private void TryToSetTop(int offset) - { - Top = offset; - if (Top != offset) - _MyLog.InfoFormat("Didn't work - Top {0} != offset {1} {2}", Top, offset,MyStepPanel.VerticalScroll.Value); - } - /// - /// Automatically expands Steps if not currently expanded - /// - internal void AutoExpand() - { - if (CanExpand && Expanded == false)// TODO: May need to do some additional checking for subsections - { - if(MyStepPanel.AutoExpand) - Expand((_ContentType >= 20000) || MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format); - else - Expand(false); - //Console.WriteLine(" - /// Expand an item and it's children - /// If the children have been loaded then just expand them - /// If not, load the children and expand their children etc. - /// - /// normally equal to _Type > = 20000 (Step) - public void Expand(bool expand) - { - //// TIMING: DisplayItem.TimeIt("Expand Start"); - if (_ChildrenLoaded) - { - // Unhide Children - MyExpandingStatus = ExpandingStatus.Showing; - UnhideChildren(expand); - if (ExpandPrefix != 0) - { - MyStepPanel.ItemMoving++; - if (TopMostEditItem.Top != Top) - TopMostEditItem.Top = Top; - MyStepPanel.ItemMoving--; - } - else - TopMostEditItem.AdjustLocation(); - //_ShowChanges = true; - AdjustChildren(); - //_ShowChanges = false; - //if(_Before != null ) - // Top = _Before[_Before.Count - 1].BottomMost.Bottom; - } - else - { - if (MyItemInfo.IsHigh) MyStepPanel.ExpandingHLS = MyItemInfo; - MyExpandingStatus = ExpandingStatus.Expanding; - _ChildrenLoaded = true; - //_Panel.SuspendLayout(); - AddChildBefore(MyItemInfo.Cautions, expand); - AddChildBefore(MyItemInfo.Notes, expand); - AddChildAfter(MyItemInfo.Procedures, expand); - if (MyItemInfo.RNOs != null && MyItemInfo.RNOLevel < MyItemInfo.ColumnMode) - AddChildRNO(MyItemInfo.RNOs, expand); - if (MyItemInfo.RNOs != null && ((MyItemInfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds)) - AddChildAfter(MyItemInfo.RNOs, expand); - AddChildSupInfo(MyItemInfo.SupInfos, expand); - AddChildAfter(MyItemInfo.Tables, expand); - // get the config item for the steps section. there is an 'editable' - // flag used in metasections to define whether the steps should print. - // this flag can be toggle on the section's properties dialog. - // Only check the flag if the section has subsections because the - // default for the flag is not editable, and this would make non-metasections - // not editable. - bool hasMetaSubs = MyItemInfo.IsSection && MyItemInfo.Sections != null && MyItemInfo.Sections.Count>0; - bool EditSteps = !hasMetaSubs || (MyItemInfo.MyConfig is SectionConfig && (MyItemInfo.MyConfig as SectionConfig).SubSection_Edit == "Y"); - if (EditSteps) AddChildAfter(MyItemInfo.Steps, expand); - - if (MyItemInfo.RNOs != null && MyItemInfo.RNOLevel >= MyItemInfo.ColumnMode && - !((MyItemInfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds)) - AddChildRNO(MyItemInfo.RNOs, expand); - AddChildAfter(MyItemInfo.Sections, expand); - MatchExpanded(); - if (MyItemInfo.IsHigh) MyStepPanel.ExpandingHLS = null; - } - MyExpandingStatus = ExpandingStatus.Done; - BottomMostEditItem.AdjustLocation(); - MyExpandingStatus = ExpandingStatus.No; - //// TIMING: DisplayItem.TimeIt("Expand End"); - } - public EditItem BeforeItem - { - get - { - if (_MyAfterEditItems != null) - { - foreach (EditItem EditItem in _MyAfterEditItems) - { - if (EditItem._MyBeforeEditItems != null) - return EditItem.TopMostEditItem; - EditItem beforeItem = EditItem.BeforeItem; - if (beforeItem != null) return beforeItem; - } - } - return null; - } - } - public EditItem ItemAbove - { - get - { - if (_MyChildRelation == ChildRelation.Before) return _MyParentEditItem.ItemAbove; - if (_MyPreviousEditItem != null) return _MyPreviousEditItem.BottomMostEditItem; - if (_MyChildRelation == ChildRelation.After) return _MyParentEditItem; - if (_MyChildRelation == ChildRelation.RNO) return _MyParentEditItem; - if (_MyChildRelation == ChildRelation.SupInfo) return _MyParentEditItem; - return null; - } - } - private static int? max(int? value1, int value2) - { - if (value1 == null || value2 > value1) return value2; - return value1; - } - private static int min(int value1, int value2) - { - if (value2 < value1) return value2; - return value1; - } - public int FindRight() - { - if (!RNORight) return Right; - return _MyRNOEditItems[0].FindRight(); - } - public int? BottomOfParentRNO() - { - int? bottom = null; - EditItem EditItem = this; - if (!MyItemInfo.IsTablePart) - { - if (EditItem._MyChildRelation == ChildRelation.None) - return null; - if (EditItem._MyChildRelation == ChildRelation.After && !RNORight) - return null; - } - while (EditItem != null && EditItem._MyChildRelation != ChildRelation.None && EditItem._MyChildRelation != ChildRelation.After) - EditItem = EditItem.UpOneEditItem; - if (EditItem == null || EditItem._MyChildRelation == ChildRelation.None) - return null; - EditItem parent = EditItem.UpOneEditItem; - int right = FindRight(); - bool centeredTable = (MyItemInfo.IsTablePart && MyItemInfo.FormatStepData.Type.Contains("AER") == false && MyItemInfo.RNOLevel == 0); - while (parent != null && parent.MyItemInfo.IsSection == false && parent._MyChildRelation != ChildRelation.Before) - { - if (parent._MyRNOEditItems != null) - { - if (centeredTable || right > parent._MyRNOEditItems[0].Left) - { - if (parent._MyRNOEditItems[0].BottomMostEditItem.RNOLevel > RNOLevel && RNOLevel < _MyItemInfo.ColumnMode) - bottom = max(bottom, parent._MyRNOEditItems[0].BottomMostEditItem.Bottom); - } - } - parent = parent.UpOneEditItem; - } - return bottom; - } - public int? BottomOfParentSupInfo() - { - int? bottom = null; - if (Colapsing) return null; - EditItem parent = this; - while (parent != null && parent.MyItemInfo.IsSection == false && parent._MyChildRelation != ChildRelation.Before) - { - if (parent._MySupInfoEditItems != null) return parent._MySupInfoEditItems[0].BottomMostEditItem.Bottom; - parent = parent.UpOneEditItem; - } - return bottom; - } - private string _NextDownEditItemPath = "None"; - public string NextDownEditItemPath - { - get { return _NextDownEditItemPath; } - } - /// - /// This finds the next EditItem down. - /// - public EditItem NextDownEditItem - { - get - { - EditItem EditItem = this; - _NextDownEditItemPath = "Path 1"; - // If this item appears before it's parent, and it doesn't have anything below it, return the parent - if (MyNextEditItem == null && MyAfterEditItems == null && FirstSiblingEditItem._MyChildRelation == ChildRelation.Before) - return UpOneEditItem; - _NextDownEditItemPath = "Path 2"; - if (Expanded && _MyAfterEditItems != null)// check to see if there is a _After - return MyAfterEditItems[0].TopMostEditItem;// if there is, go that way - _NextDownEditItemPath = "Path 3"; - if (Expanded && MyRNOEditItems != null && MyItemInfo.RNOLevel >= MyItemInfo.ColumnMode)// check to see if there is a _After - return MyRNOEditItems[0].TopMostEditItem;// if there is, go that way - while (EditItem != null && EditItem.MyNextEditItem == null) // if no Next walk up the parent path - { - bool lastWasRNO = (EditItem._MyChildRelation == ChildRelation.RNO); - EditItem = EditItem.UpOneEditItem; - _NextDownEditItemPath = "Path 4"; - if (EditItem == null) // No Parent - return null; - _NextDownEditItemPath = string.Format("Path 5 {0}, {1}", EditItem.MyExpandingStatus, EditItem.Moving); - if (EditItem.MyExpandingStatus == ExpandingStatus.Expanding || EditItem.Moving) // Parent Expanding or Moving - Wait - return null; - _NextDownEditItemPath = "Path 5 RNO"; - if (EditItem.RNOBelow && !Ancestor(EditItem.MyRNOEditItems[0])) - return EditItem.MyRNOEditItems[0]; - _NextDownEditItemPath = "Path 6"; - if (EditItem.MyNextEditItem == null && EditItem.FirstSiblingEditItem._MyChildRelation == ChildRelation.Before) - return EditItem.UpOneEditItem; - EditItem btm = EditItem.BottomMostEditItem; // Find the Bottom EditItem of this ancestor - EditItem beforeItem = EditItem.BeforeItem; - if (lastWasRNO && beforeItem != null) - { - _NextDownEditItemPath = "Path 7"; - if (beforeItem.ItemAbove.Bottom > this.Bottom) return null; - _NextDownEditItemPath = "Path 8"; - return beforeItem; - } - if (this != btm) // If this is not the bottom, then just adjust things with respect to the bottom - { - EditItem btmNext = btm.NextDownEditItem; - //if (EditItem.MyNextEditItem != null && EditItem.MyNextEditItem.TopMostEditItem.Top != btm.Bottom) - if (btmNext != null) - { - int bottom = btmNext.FindTop(btm.Bottom); - if (btmNext.MySupInfoEditItems != null && btmNext.MySupInfoEditItems.Count > 0) - { - int btmSupInfo = btmNext.MySupInfoEditItems[0].FindTop(btm.Bottom); - if (btmSupInfo > bottom) bottom = btmSupInfo; - } - if (btmNext.Top != bottom) - { - MyStepPanel.ItemMoving++; - //EditItem.MyNextEditItem.TopMostEditItem.Top = btm.Bottom; - //Console.WriteLine("{0}***Move in NextDownEditItem {1},{2} From {3} To {4}",WatchThisIndent, btmNext.MyID, btmNext, btmNext.Top, btm.Bottom); - btmNext.LastMethodsPush(string.Format("NextDownEditItem {0} {1}", MyID, EditItem.MyID)); - //ShowMe(string.Format("FindTop = {0}", btmNext.FindTop(btm.Bottom))); - if (btmNext.Top != bottom) - btmNext.Top = bottom; - btmNext.LastMethodsPop(); - MyStepPanel.ItemMoving--; - } - } - _NextDownEditItemPath = string.Format("Path 9 {0}", btm); - return null; // Not the bottom - don't adjust anything else - } - //else - //{ - //} - } - if (EditItem != null) - { - // Need to verify that the bottom of the parents RNO does not excede the bottom of this item. - EditItem next = EditItem.MyNextEditItem.TopMostEditItem; - _NextDownEditItemPath = "Path A"; - //if (Bottom >= (BottomOfParentRNO(next) ?? Bottom)) - return next;// if no _After - check to see if there is a Next - //_NextDownEditItemPath = "Path B"; - //return null; - } - _NextDownEditItemPath = "Path C"; - return null; - } - } - - private bool Ancestor(EditItem EditItem) - { - if (MyID == EditItem.MyID) return true; - if (MyItemInfo.IsHigh) return false; - return UpOneEditItem.Ancestor(EditItem); - } - public override string ToString() - { - return _MyItemInfo == null ? base.ToString() : string.Format("{0},'{1}',{2},{3}", MyID, MyPath, Top, Bottom); // + "-" + MyItemInfo.MyContent.Text; - } - #endregion - #region Abstract Methods and Properties - public abstract int TableWidth { get; } - public abstract int BorderWidth { get; } - public abstract Point ContentLocation { get; set; } - public abstract string TabFormat { get; set; } - public abstract void AdjustTableWidthAndLocation(); - public abstract void SetToolTip(string tip); - public abstract void RefreshContent(); - //public abstract EditItem MyPreviousEditItem { get; set; } - public abstract int ItemLeft { get; set; } - public abstract int ContentLeft { get; } - public abstract int ContentWidth { get; set; } - public abstract Point ItemLocation { get; set; } - public abstract int ItemWidth { get; set; } - public abstract void RefreshOrdinal(); - public abstract bool Expanded { get; set; } - public abstract void RefreshTab(); - public abstract void SetFocus(); - public abstract void SaveContents(); - public abstract bool CanExpand { get; set; } - public abstract void HandleResize(); - public abstract void MatchExpanded(); - public abstract void ItemSelect(); - public abstract void ItemShow(); - public abstract StepRTB MyStepRTB { get; } - public abstract DialogResult ReplaceText(string rpltxt, string fndstr, bool caseSensitive, bool matchWholeWord, bool reverse, bool prompt, IWin32Window fndrpldlg); - public abstract bool FindText(string str, bool caseSensitive, bool matchWholeWord, bool reverse); - public abstract void PositionToEnd(); - public abstract void PositionToStart(); - public abstract string SelectedTextForFind { get;} - public abstract bool SpellCheckNext(); - public abstract void IdentifyMe(bool highlight); - public abstract void SetActive(); - public abstract bool Empty { get; set; } - //public abstract bool IsEmpty(); - //public abstract void MakeNotEmpty(); - public abstract void RefreshDisplay(bool activeMode); - public abstract void ToggleEditView(E_ViewMode vwMode); - public abstract int TabLeft { get; set; } - public abstract Font TabFont { get; set; } - public abstract string TabText { get; } - public abstract Point TabLocation { get; } - public abstract Font ContentFont { get; set; } - public abstract float ContentTop { get; } - public abstract void SetupHeader(ItemInfo itemInfo); - public abstract void ShowExpanded(); - public abstract void SetText(); - public abstract void SetExpandAndExpander(ItemInfo itemInfo); - public abstract void SaveCurrentAndContents(); - #endregion - private int SupInfoTopOffset - { - get - { - return _MyParentEditItem.MyStepRTB.Location.Y - MyStepRTB.Location.Y; - } - } - protected string _TabFormat; - private static int _WidthAdjust = 5; - protected bool _IgnoreResize = false; - private int FindBottomDevDoc // Find Bottom of a Deviation Document Step - { - get - { - int y = BottomMostEditItem.Bottom;// RHM 20170216 Get the bottom most step of a High Level step (RNOs and Substeps) - if (MyParentEditItem == null || MyParentEditItem.MyItemInfo.IsSection) - { - EditItem eitm2 = this; - if (eitm2 != null && eitm2.MyBeforeEditItems != null) - foreach (EditItem eitm2Tmp in eitm2.MyBeforeEditItems) - y = Math.Max(y, eitm2Tmp.Bottom); - return y; - } - y = Math.Max(y, MyParentEditItem.Bottom); - EditItem eitm = MyParentEditItem; - while (eitm != null && !eitm.MyItemInfo.IsHigh) eitm = eitm.MyParent; - if (eitm != null && eitm.MyBeforeEditItems != null) - foreach (EditItem eitmTmp in eitm.MyBeforeEditItems) - y = Math.Max(y, eitmTmp.Bottom); - return y; - } - } - /// - /// Sets the parent and postions the item with respect to the parent - /// - public EditItem MyParentEditItem - { - get { return _MyParentEditItem; } - set - { - LastMethodsPush("set_MyParentRTBItem"); - _MyParentEditItem = value; - if (_MyParentEditItem != null) - { - switch (_MyChildRelation) - { - case ChildRelation.None: // Same as after - case ChildRelation.After: // Procedures, sections, substeps, and tables/figures - // The size depends upon the parent type - int iType = (int)_MyParentEditItem.ContentType; - - switch (iType / 10000) - { - case 0: // Procedure - ItemLocation = new Point(_MyParentEditItem.ItemLocation.X + 20, _MyParentEditItem.Bottom); - int widt = MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidT); - int wids = MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, 0); - int width = Math.Max(widt, wids); - ItemWidth = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColT) + width; - break; - case 1: // Section - if (this == TopMostEditItem) - { - if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format) - { - if (MyPreviousEditItem != null) - { - EditItem ei = MyPreviousEditItem.BottomMostEditItem; - if (ei.MyItemInfo.IsHigh && (ei.MyItemInfo.Cautions !=null || ei.MyItemInfo.Notes!=null)) - { - if (ei.MyItemInfo.Cautions!= null)// Look at cautions - { - EditItem eic = MyStepPanel._LookupEditItems[ei.MyItemInfo.Cautions[0].ItemID].BottomMostEditItem; - if (eic.Bottom > ei.Bottom) ei = eic; - } - if (ei.MyItemInfo.Notes!= null)//Look at notes - { - EditItem ein = MyStepPanel._LookupEditItems[ei.MyItemInfo.Notes[0].ItemID].BottomMostEditItem; - if (ein.Bottom > ei.Bottom) ei = ein; - } - } - // B2017-043 Account for the Horizonal Scroll position when locating the step - ItemLocation = new Point(MyStepPanel.DisplayRectangle.X + MyStepPanel.ToDisplay(MyItemInfo.ActiveFormat.MyStepSectionLayoutData.ColS) + 50, ei.Bottom); - } - else - // B2017-043 Account for the Horizonal Scroll position when locating the step - ItemLocation = new Point(MyStepPanel.DisplayRectangle.X + MyStepPanel.ToDisplay(MyItemInfo.ActiveFormat.MyStepSectionLayoutData.ColS) + 50, _MyParentEditItem.Bottom); - } - else - ItemLocation = new Point(_MyParentEditItem.ItemLocation.X + 20, _MyParentEditItem.Bottom); - } - else - TopMostEditItem.ItemLocation = new Point(TopMostEditItem.ItemLocation.X, _MyParentEditItem.Bottom); - //TextWidth = _WidthAdjust + borderWidth + MyStepPanel.ToDisplay(_MyStepSectionLayoutData.WidSTableEdit, Convert.ToInt32(_MyStepSectionLayoutData.PMode) - 1); - ContentWidth = _WidthAdjust + BorderWidth + MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, MyItemInfo.ColumnMode); - //ContentWidth = _WidthAdjust + BorderWidth; - //if (MyItemInfo.FormatStepData.WidthOverrideEdit != null && MyItemInfo.FormatStepData.WidthOverrideEdit > 0) - // ContentWidth += MyStepPanel.ToDisplay(MyItemInfo.FormatStepData.WidthOverrideEdit); - //else - // ContentWidth += MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, MyItemInfo.ColumnMode); - break; - case 2: // Step - // if Table then determine width and location based upon it's parent's location - if (MyStepData.Type == "Table" || MyStepData.ParentType == "Table") - { - AdjustTableWidthAndLocation(); - } - else if (MyStepData.Type.Contains("Figure")) - { - AdjustTableWidthAndLocation(); - } - else if (MyItemInfo.IsRtfRaw) - { - AdjustTableWidthAndLocation(); - } - else - { - if (MyItemInfo.FormatStepData.StepLayoutData.AlignWithParentTab) - // Paul Linn made the request on 6/4/12 to align the Component Description & - // Required Position under the Component Number. - ItemLocation = new Point(_MyParentEditItem.ItemLocation.X, _MyParentEditItem.Bottom); - // part of F2017-011, for enhanced backgrounds, always align the TitleWithTextRight and TitleWithTextBelow with the parent tab (on the screen) - else if ((MyItemInfo.FormatStepData.Type == "TitleWithTextRight" || MyItemInfo.FormatStepData.Type == "TitleWithTextBelow") && ((MyItemInfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds)) // align with parent tab if in background document - ItemLocation = new Point(_MyParentEditItem.ItemLocation.X, _MyParentEditItem.Bottom); - else if (MyItemInfo.FormatStepData.Type == "TitleWithTextRight" && (MyItemInfo.Steps == null || MyItemInfo.Steps.Count == 0)) // this code is run for siblings within a HLS (but not last sibling). - ItemLocation = new Point(_MyParentEditItem.ItemLocation.X, _MyParentEditItem.Bottom); - else if (MyItemInfo.MyParent.FormatStepData.Type == "TitleWithTextRight") - ItemLocation = new Point(_MyParentEditItem.ItemLocation.X + _MyParentEditItem.ItemWidth + 10, _MyParentEditItem.ItemLocation.Y); // F2017-011 added 10 to fix positoning of Purpose text on sceen (enhanced backgrounds) - else if (MyItemInfo.MyTab.Offset != 0) - ContentLocation = new Point(_MyParentEditItem.ContentLocation.X + 10, _MyParentEditItem.Bottom); - //ItemLocation = new Point(_MyParentEditItem.ItemLocation.X+10, _MyParentEditItem.Bottom); - else - { - // B2016-134 Fix - If a previous step exists, use it to locate the current step - if (_MyPreviousEditItem != null) - ItemLocation = new Point(_MyParentEditItem.ContentLeft, _MyPreviousEditItem.BottomMostEditItem.Bottom); - else - { - ItemLocation = new Point(_MyParentEditItem.ContentLeft, _MyParentEditItem.Bottom); - // if inserting a substep within supplemental information, then may have to adjust steps too: - if (MyItemInfo.IsInSupInfo) - { - AdjustLocation(); - // find parent of supinfo & adjust its location: - ItemInfo supInfoPart = MyItemInfo; - while (!supInfoPart.IsSupInfoPart) supInfoPart = supInfoPart.MyParent; - EditItem eitmp = MyStepPanel._LookupEditItems[supInfoPart.ItemID]; - eitmp.MyParentEditItem.AdjustLocation(); - } - } - } - bool specialTplSupport = ((MyItemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd) || - (MyItemInfo.MyDocStyle.LandscapePageList && MyItemInfo.MyDocStyle.ComponentList); - bool wecTplSupport = ((MyItemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_ChklstEditSize) == E_DocStructStyle.DSS_ChklstEditSize); - if (MyItemInfo.FormatStepData.ReadOnly) - { - Graphics g = CreateGraphics(); - SizeF sz = g.MeasureString(MyItemInfo.MyContent.Text, MyItemInfo.FormatStepData.Font.WindowsFont); - ItemWidth = (int)sz.Width; - } - else if (MyItemInfo.FormatStepData.Type == "TitleWithTextRight" && specialTplSupport) - { - Graphics g = CreateGraphics(); - SizeF sz = g.MeasureString(MyItemInfo.MyContent.Text, MyItemInfo.FormatStepData.Font.WindowsFont); - ItemWidth = (int)sz.Width + 5; - } - else if (MyItemInfo.FormatStepData.Type == "TitleWithTextBelow" && specialTplSupport) - { - ItemWidth = MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, 0); - } - else if (wecTplSupport || (MyItemInfo.MyParent.FormatStepData.Type == "TitleWithTextBelow" && specialTplSupport)) - { - ItemWidth = MyParentEditItem.ItemWidth - RTBItem.RTBMargin; - } - else if (MyItemInfo.MyParent.FormatStepData.Type == "TitleWithTextRight" && - ((MyItemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd)) - { - ItemWidth = MyParentEditItem.MyParentEditItem.ContentWidth - MyParentEditItem.ItemWidth; - } - else if (MyItemInfo.MyParent.FormatStepData.Type == "TitleWithTextRight") - { - ItemWidth = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColT) + MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, 0); - ItemWidth = ItemWidth - ItemLocation.X; - } - else if (MyParentEditItem != null && MyParentEditItem.MyItemInfo.FormatStepData.ReadOnly) - ItemWidth = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColT) + MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, 0); - else if (MyItemInfo.MyTab != null && MyItemInfo.MyTab.Offset != 0) - { - // Farley - part of bug fix B2015-123 alignment of tabs on the edit screen (Farly is only one using tab offset) - ContentWidth = _MyParentEditItem.ContentWidth; - int xOffTabNew = (MyItemInfo.MyParent.MyTab != null ? MyItemInfo.MyParent.MyTab.Offset : MyItemInfo.MyParent.OffsetTab) + MyItemInfo.MyTab.Offset; - xOffTabNew += MyItemInfo.MyParent.MyTab == null ? 0 : MyItemInfo.MyParent.MyTab.Offset; - int xIncrement = xOffTabNew - MyItemInfo.MyTab.Offset; - MyStepRTB.Location = new Point(MyStepRTB.Location.X + xIncrement, MyStepRTB.Location.Y); - } - else - ItemWidth = _MyParentEditItem.ContentWidth; - } - break; - } - break; - case ChildRelation.SupInfo: // on a supplemental info item - EditItem high = MyStepPanel._LookupEditItems[MyItemInfo.MyHLS.ItemID]; - if (_MyParentEditItem.MyItemInfo.IsNote || _MyParentEditItem.MyItemInfo.IsCaution) - { - ContentWidth = high.ContentWidth - high.ContentLocation.X; - } - else - ContentWidth = _MyParentEditItem.ContentWidth; - // Currently on the supinfo, so MyParentEditItem is the step the supinfo is related to. - // From this MyParentEditItem, need to find what is the bottom of the 'previous step' on the screen where 'previous step' can be: - // 1) The bottom most EditItem from a caution/note, i.e. MyBeforeEditItems. This must be checked first. - // 2) If there is a MyParentEditItem, use it (only MyParentEditItem or MyPreviousEditItem can be set), if going to parent don't use - // BottomMostEditItem because that will take it onto this step or subsequent substeps. So just use its bottom. Note that there - // are special cases if on a Note/Caution (see below for comments) - // 3) If there is no MyBeforeEditItems & no MyParentEditItems, there must be a MyPreviousEditItems. Use its MyBottomMostEditItem's bottom - // since this previous may have substeps. - int btm = MyParentEditItem.BottomOfStepImmediatelyAbove(); - int topp = FindTop(btm, false); - if (topp != 0) - { - MyStepPanel.ItemMoving++; - _MyParentEditItem.Top = (int)topp; - if (_MyParentEditItem.MyItemInfo.Steps != null && _MyParentEditItem.MyItemInfo.Steps.Count > 0) - { - EditItem chtmp = GetEditItemFromItemID(_MyParentEditItem.MyItemInfo.Steps[0].ItemID); - if (chtmp != null && chtmp._MyParentEditItem != null) - { - chtmp.Top = chtmp._MyParentEditItem.Bottom; - chtmp.AdjustLocation(); - } - } - _MyParentEditItem.AdjustLocation(); - MyStepPanel.ItemMoving--; - } - ContentLocation = new Point(high.ContentLeft + high.Width + 36, (int)_MyParentEditItem.Top + SupInfoTopOffset); // account for Caution/Note tab above caution/note - break; - case ChildRelation.RNO: - // this is set so that TextWidth command below will be correct. TextWidth uses - // the tab start & tab width to calculate the overall width. - TabFormat = ""; // this is set so that TextWidth command below will be correct - _IgnoreResize = true; - // Use the RNOWidthAlt value if it exists instead of the default RNO width - // Note that I needed to add 1 to the ToDisplay() value to be closer to the needed - // width for the screen (this does not affect the printout) - // If in single column, don't make this adjustment: - string[] splitRNOWidthAlt = MyStepSectionLayoutData.RNOWidthAlt.Split(','); - int ovrRNOWidth = (RNOLevel < splitRNOWidthAlt.Length)?MyStepPanel.ToDisplay(float.Parse(splitRNOWidthAlt[RNOLevel])+1) : 0; - if (MyStepSectionLayoutData.RNOWidthAlt != null && ovrRNOWidth > 1 && MyItemInfo.ColumnMode != 0) - ContentWidth = ovrRNOWidth; - else - ContentWidth = _MyParentEditItem.ContentWidth; - _IgnoreResize = false; - if (RNOLevel <= MyItemInfo.ColumnMode) - { - //int colR = MyStepPanel.ToDisplay(_MyStepSectionLayoutData.ColRTable, Convert.ToInt32(_MyStepSectionLayoutData.PMode) - 1); - int colR = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColRTable, MyItemInfo.ColumnMode); - if (colR - _MyParentEditItem.Width < 0) colR = _MyParentEditItem.Width + 0; - MyStepPanel.ItemMoving++; - //Left = _MyParentRTBItem.ItemLeft + RNOLevel * colR; - //ItemLocation = new Point(_MyParentRTBItem.ItemLeft + RNOLevel * colR, _MyParentRTBItem.Top); - LastMethodsPush(string.Format("set_MyParentRTBItem RNO Right {0}", MyID)); - ItemLocation = new Point(_MyParentEditItem.ItemLeft + RNOLevel * colR, _MyParentEditItem.Top); - int top = _MyParentEditItem.FindTop(_MyParentEditItem.Top); - if (top != _MyParentEditItem.Top) - { - _MyParentEditItem.LastMethodsPush(string.Format("set_MyParentRTBItem RNO Right {0}", MyID)); - if (_MyParentEditItem.Top != top) - _MyParentEditItem.Top = top; - _MyParentEditItem.LastMethodsPop(); - Top = top; - } - LastMethodsPop(); - MyStepPanel.ItemMoving--; - } - else - { - MyStepPanel.ItemMoving++; - LastMethodsPush(string.Format("set_MyParentRTBItem RNO Below {0} {1} {2}", MyID, _MyParentEditItem.BottomMostEditItem.MyID, _MyParentEditItem.BottomMostEditItem.Bottom)); - ContentLocation = new Point(_MyParentEditItem.ContentLeft, _MyParentEditItem.BottomMostEditItem.Bottom); - LastMethodsPop(); - //TextLocation = new Point(_MyParentRTBItem.TextLeft, FindTop(_MyParentRTBItem.Top)); - MyStepPanel.ItemMoving--; - } - // Same size as the Parent - break; - case ChildRelation.Before: // Cautions and Notes - //if(_WatchThis > 0 && MyID > 2111) - // Console.WriteLine("Setting MyParent: \r\n\tParent {0},{1} \r\n\tTopMostItem {2},{3} \r\n\tNext {4}, {5}", _MyParentRTBItem.MyID, _MyParentRTBItem - // ,_MyParentRTBItem.TopMostRTBItem.MyID,_MyParentRTBItem.TopMostRTBItem - // , _MyNextRTBItem == null ? 0 : _MyNextRTBItem.MyID, _MyNextRTBItem == null ? "None" : _MyNextRTBItem.ToString()); - - //Location = new Point(_MyParentRTBItem.Left + 20, max(_MyParentRTBItem.Top, (_MyNextRTBItem == null ? 0 : _MyNextRTBItem.Top )) ?? 0); - _IgnoreResize = true; - int spaceToRTB = 23; - _IgnoreResize = false; - MyStepPanel.ItemMoving++; - //Location = new Point(_MyParentRTBItem.Left + 20, FindTop(_MyParentRTBItem.Top)); - int myTop = 0; - if (MyNextEditItem == null) - myTop = _MyParentEditItem.Top; - else - myTop = MyNextEditItem.Top; - - //if (MyItemInfo.SameRowAsParent && MyItemInfo.IsCaution2) - //{ - // if (MyItemInfo.WidthOverride > 0) - // Width = MyStepPanel.ToDisplay(MyItemInfo.WidthOverride) + spaceToRTB; - //} - if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format && (MyItemInfo.IsCaution || MyItemInfo.IsNote)) - { - // B2017-043 account for Horizontal Scroll - int x = MyStepPanel.DisplayRectangle.X + MyStepPanel.ToDisplay(MyItemInfo.ActiveFormat.MyStepSectionLayoutData.ColT); - int y = Top; - if (MyPreviousEditItem == null || !MyPreviousEditItem.MyItemInfo.IsCaution || !MyItemInfo.IsNote) - y = FindTop(myTop); - // Get the "bottom" number of the longest Caution/Note on the step/substep above so that - // we can position properly on the screen. - // EX. Catawba Deviations E-1 step deviation for step 10 - EditItem eitm = (MyParentEditItem.MyPreviousEditItem != null) ? MyParentEditItem.MyPreviousEditItem : MyParentEditItem.MyParentEditItem; - if (eitm != null && eitm.MyBeforeEditItems != null) - foreach (EditItem eitmTmp in eitm.MyBeforeEditItems) - y = Math.Max(y, eitmTmp.Bottom); - if (MyItemInfo.IsNote) // Move to the right based upon the Width of the Caution which is the same as the width of the note. - { // AdjustChildren width BeforeItem setting Left offset - int width = MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidT) + spaceToRTB; - x += width + 6;//Account for the width of the Caution in the Deviation Document - } - Location = new Point(x, y); - } - else - Location = new Point(_MyParentEditItem.Left + 20, FindTop(myTop)); - // ip2bck's needed the width to be set slightly differently to get the correct width. - int widthtpl = MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidT) + spaceToRTB; - if (MyItemInfo.FormatStepData != null && MyItemInfo.FormatStepData.UseOldTemplate && - ((MyItemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd)) - widthtpl = MyParentEditItem.Width + MyParentEditItem.Left - Left; - Width = widthtpl; // MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidT) + spaceToRTB; - MyStepPanel.ItemMoving--; - //_MyParentRTBItem.Top = Bottom; - // Could be a Caution or Note - Need to get WidT - break; - } - } - LastMethodsPop(); - } - } - private int BottomOfStepImmediatelyAbove() - { - int btm = 0; - if (MyBeforeEditItems != null && MyBeforeEditItems.Count > 0) // Notes & Cautions before - btm = MyBeforeEditItems[MyBeforeEditItems.Count - 1].BottomMostEditItem.Bottom; - else - { - // if on a caution or note, (the first one), need to go up to either previous step or the section to find its bottom - // _MyParentEditItem is a way to find that the structure supports this, i.e. there can be a caution or note: - if (_MyParentEditItem != null - && _MyParentEditItem.MyBeforeEditItems != null && _MyParentEditItem.MyBeforeEditItems.Count > 0 // this part checks that there are cautions/notes - && _MyParentEditItem.MyBeforeEditItems[0].MyID == MyID) // first caution or note, i.e. index of MyBeforeItems == 0 - { - if (_MyParentEditItem._MyPreviousEditItem == null) // this part checks for first HLS - btm = _MyParentEditItem._MyParentEditItem.Bottom; // bottom of the section - else - btm = _MyParentEditItem._MyPreviousEditItem.BottomMostEditItem.Bottom; // bottom of previous step - } - else - { - btm = MyParentEditItem != null ? MyParentEditItem.Bottom : MyPreviousEditItem.BottomMostEditItem.Bottom; - } - } - return btm; - } - /// - /// Sets the previous item and adjusts locations - /// - public /*override*/ EditItem MyPreviousEditItem - { - get { return _MyPreviousEditItem; } - set - { - LastMethodsPush("set_MyPreviousRTBItem"); - _MyPreviousEditItem = value; - if (_MyPreviousEditItem != null) - { - _IgnoreResize = true; - // the table code goes through the following, rather than 'istablepart' - if (MyStepData != null && ((MyStepData.Type.ToLower().Contains("table") || MyStepData.ParentType.ToLower().Contains("table")) || - (MyStepData.Type.ToLower().Contains("figure") || MyStepData.ParentType.ToLower().Contains("figure")) || - (MyStepData.Type.ToLower().Contains("equation") || MyStepData.ParentType.ToLower().Contains("equation")))) - { - ItemWidth = TableWidth; - Location = new Point(_MyPreviousEditItem.Left, FindTop(_MyPreviousEditItem.BottomMostEditItem.Bottom)); - } - else if (value.MyItemInfo.IsTablePart) - { - ItemLocation = new Point(value.MyParentEditItem.ContentLeft, value.Bottom); - ItemWidth = value.MyParentEditItem.ContentWidth; - } - else - { - if (MyItemInfo.FormatStepData != null && MyItemInfo.FormatStepData.ReadOnly) - { - Graphics g = CreateGraphics(); - SizeF sz = g.MeasureString(MyItemInfo.MyContent.Text, MyItemInfo.FormatStepData.Font.WindowsFont); - ItemWidth = (int)sz.Width; - } - else if (MyPreviousEditItem != null && MyPreviousEditItem.MyItemInfo.FormatStepData != null && MyPreviousEditItem.MyItemInfo.FormatStepData.ReadOnly) - ItemWidth = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColT) + MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, 0); - // RHM The following lines were commented-out for Facing Pages (Supplemental Information) to test follow the instructions - //else if (MyItemInfo.MyTab.Offset != 0) // Farley - part of bug fix B2015-123 alignment of tabs on the edit screen (Farly is only one using tab offset) - // ContentWidth = (MyPreviousEditItem.MyItemInfo.MyTab.Offset != 0) ? MyPreviousEditItem.ContentWidth : MyPreviousEditItem.ContentWidth + 10; - else - Width = MyPreviousEditItem.Width; - - if (TopMostEditItem == this) - { - if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format && - (MyItemInfo.IsNote || MyItemInfo.IsCaution) && - (MyPreviousEditItem == null || (MyPreviousEditItem.MyItemInfo.IsCaution && MyItemInfo.IsNote))) - //if ((MyItemInfo.SameRowAsParent && MyItemInfo.IsCaution2) || (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format && (MyItemInfo.IsNote || MyItemInfo.IsCaution))) - { - // B2017-043 account for Horizontal Scroll - int x = MyStepPanel.DisplayRectangle.X + MyStepPanel.ToDisplay(MyItemInfo.ActiveFormat.MyStepSectionLayoutData.ColT); - if (MyItemInfo.IsNote) - x += Width + 6; - //Find first sibling - EditItem prev = _MyPreviousEditItem; - while (prev._MyPreviousEditItem != null) - prev = prev._MyPreviousEditItem; - Location = new Point(x, prev.Top);// Use the top of the first sibling - } - else - { - int top = FindTop(_MyPreviousEditItem.BottomMostEditItem.Bottom); - if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format && _MyPreviousEditItem.MyItemInfo.IsHigh) - //if (MyItemInfo.SameRowAsParent || (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format && _MyPreviousEditItem.MyItemInfo.IsHigh)) - { - if (_MyPreviousEditItem.MyBeforeEditItems != null) - foreach (EditItem ei in _MyPreviousEditItem.MyBeforeEditItems) - top = Math.Max(top, ei.Bottom); - } - Location = new Point(_MyPreviousEditItem.Left, top); - // B2017-029 only do this if this is a the deviation document - AdjustForDevDocStepHeight(); - AdjustAllForSupInfoHeight(); - } - } - else - TopMostEditItem.Location = new Point(TopMostEditItem.Left, FindTop(_MyPreviousEditItem.BottomMostEditItem.Bottom)); - } - _IgnoreResize = false; - //ShowMe(""); - //if (MyID > _StartingID) - // Console.WriteLine("{0}-->Setting MyPreviousRTBItem {1},{2},{3},{4},{5},{6},{7}", WatchThisIndent, MyID, this - // , _MyPreviousRTBItem - // ,Top - // , _MyPreviousRTBItem.BottomMostRTBItem.Bottom - // , FindTop(_MyPreviousRTBItem.BottomMostRTBItem.Bottom) - // , _MyPreviousRTBItem.Bottom); - //Location = new Point(_MyPreviousRTBItem.Left, _MyPreviousRTBItem.BottomMostRTBItem.Bottom); - switch (_MyChildRelation) - { - case ChildRelation.None: - break; - case ChildRelation.After: - break; - case ChildRelation.RNO: - break; - case ChildRelation.SupInfo: - break; - case ChildRelation.Before: - //MyStepPanel.ItemMoving++; - //UpOneRTBItem.Top = BottomMostRTBItem.Bottom; - //MyStepPanel.ItemMoving--; - break; - } - if (_MyPreviousEditItem.MyNextEditItem != this) _MyPreviousEditItem.MyNextEditItem = this; - } - LastMethodsPop(); - } - } - // AdjustAllForSupInfoHeight & AdjustFOrSupInfoHeight go from current edit item down, adjusting any of the edit items' top - // location to account for any supplemental informations that items may have so that either the step or its supplemental information - // does not overwrite other steps on screen. - private void AdjustAllForSupInfoHeight() - { - EditItem ei = this; - while (ei != null) - { - ei = ei.AdjustForSupInfoHeight(); - } - } - private EditItem AdjustForSupInfoHeight() - { - if (MyStepPanel._LookupEditItems.ContainsKey(MyID) && MyItemInfo.IsInSupInfo) // only do this if it is displayed (in LookupEditItems and in sup info column - { - ItemInfo supInfoPart = MyItemInfo; - while (!supInfoPart.IsSupInfoPart) supInfoPart = supInfoPart.MyParent; - EditItem EIsupInfoPartAbove = MyStepPanel._LookupEditItems[supInfoPart.ItemID]; - - // find first edititem below this (EIWsupInfoBelow) or a sibling or child child that have sup info - // if found, adjust top of this item to the bottommost edititem above this - EditItem EIWsupInfoBelow = null; - EIWsupInfoBelow = EIsupInfoPartAbove.MyParentEditItem.FindFirstChildWithSupInfo(EIsupInfoPartAbove.MyParentEditItem.MyItemInfo); - if (EIWsupInfoBelow == null) - EIWsupInfoBelow = EIsupInfoPartAbove.MyParentEditItem.FindSiblingOrParentSiblingWithSupInfo(EIsupInfoPartAbove.MyParentEditItem.MyItemInfo); - - if (EIWsupInfoBelow != null) // for editiem below, find bottom of step & subinfo column and take the max of these: - { - int bottomOfAboveSupInfoColumn = EIsupInfoPartAbove.BottomMostEditItem.Bottom; - int bottomOfImmediatelyAbove = EIWsupInfoBelow.BottomOfStepImmediatelyAbove(); - MyStepPanel.ItemMoving++; - EIWsupInfoBelow.Top = Math.Max(bottomOfAboveSupInfoColumn, bottomOfImmediatelyAbove); - EIWsupInfoBelow.AdjustLocation(); - MyStepPanel.ItemMoving--; - return EIWsupInfoBelow.MySupInfoEditItems==null?null:EIWsupInfoBelow.MySupInfoEditItems[0]; - } - } - return null; - } - private EditItem CheckForExpanded(EditItem ei) - { - ItemInfo hls = ei.MyItemInfo.MyHLS; - EditItem hlsEI = GetEditItemFromItemID(hls.ItemID); - if (hlsEI==null) return null; - return ei; - } - // FindSiblingOrParentSiblingWithSupInfo will find the next edititem below me on the screen that has a supinfo - private EditItem FindSiblingOrParentSiblingWithSupInfo(ItemInfo itm) - { - if (itm == null || itm.IsProcedure) return null; - if (itm.NextItem == null) - { - return FindSiblingOrParentSiblingWithSupInfo(itm.ActiveParent as ItemInfo); - } - EditItem chldOfNext = null; - // if section, handle notes/cautions on section and if none, look for hls (children of section) - if (itm.NextItem.IsSection) - { - if (itm.NextItem.Steps == null || itm.NextItem.Steps.Count == 0) return null; - chldOfNext = FindFirstCautionOrNoteWithSupInfo(itm.NextItem); - if (chldOfNext != null) return CheckForExpanded(chldOfNext); - chldOfNext = FindFirstChildWithSupInfo(itm.NextItem); - if (chldOfNext != null) return CheckForExpanded(chldOfNext); - return null; - } - // Handle caution/note off of itm.nextitem. See if any of those have supinfos. - chldOfNext = FindFirstCautionOrNoteWithSupInfo(itm.NextItem); - if (chldOfNext != null) return CheckForExpanded(chldOfNext); - - // this is step side (parent) of supinfo part. This step does not have any children with supinfo. - // See if any of my next siblings have supinfo - if (itm.NextItem.SupInfos != null && itm.NextItem.SupInfos.Count > 0) - { - return GetEditItemFromItemID(itm.NextItem.ItemID); - } - // no longer looking at next, go to children. - chldOfNext = FindFirstChildWithSupInfo(itm.NextItem); - if (chldOfNext != null) return CheckForExpanded(chldOfNext); - return FindSiblingOrParentSiblingWithSupInfo(itm.NextItem); - } - // FindFirstChildWithSupinfo finds the first child going down the screen that has a supinfo. It checks for cautions and - // notes first. - private EditItem FindFirstChildWithSupInfo(ItemInfo itm) - { - // If on a caution, see if there are any notes below me on the screen that have supinfo. - if (itm.IsCaution && (itm.ActiveParent as ItemInfo).Notes != null && (itm.ActiveParent as ItemInfo).Notes.Count > 0) - { - foreach (ItemInfo inote in (itm.ActiveParent as ItemInfo).Notes) - { - if (inote.SupInfos != null && inote.SupInfos.Count > 0) - return GetEditItemFromItemID(inote.ItemID); - EditItem chld = FindFirstChildWithSupInfo(inote); - if (chld != null) return CheckForExpanded(chld); - } - } - // if on a caution or note check the step below me, which is really my activeparent (cautions/notes are above their respective parent) - if ((itm.IsCaution || itm.IsNote) && (itm.NextItem == null || itm.NextItemCount == 0) && (itm.ActiveParent as ItemInfo).SupInfos != null && (itm.ActiveParent as ItemInfo).SupInfos.Count > 0) - return GetEditItemFromItemID((itm.ActiveParent as ItemInfo).ItemID); - - // Finally check substeps: - if (itm.Steps == null || itm.Steps.Count == 0) return null; - foreach (ItemInfo ii in itm.Steps) - { - if (ii.SupInfos != null && ii.SupInfos.Count > 0) - return GetEditItemFromItemID(ii.ItemID); - EditItem chld = FindFirstChildWithSupInfo(ii); - if (chld != null) return CheckForExpanded(chld); - } - return null; - } - // FindFirstCautionOrNoteWithSupInfo looks for first caution or note going down the screen that has supInfo - private EditItem FindFirstCautionOrNoteWithSupInfo(ItemInfo itm) - { - if (itm.Cautions != null && itm.Cautions.Count > 0) - { - foreach (ItemInfo ii in itm.Cautions) - { - if (ii.SupInfos != null && ii.SupInfos.Count > 0) - return GetEditItemFromItemID(ii.ItemID); - EditItem chld = FindFirstChildWithSupInfo(ii); - if (chld != null) return CheckForExpanded(chld); - } - } - if (itm.Notes != null && itm.Notes.Count > 0) - { - foreach (ItemInfo ii in itm.Notes) - { - if (ii.SupInfos != null && ii.SupInfos.Count > 0) - return GetEditItemFromItemID(ii.ItemID); - EditItem chld = FindFirstChildWithSupInfo(ii); - if (chld != null) return CheckForExpanded(chld); - } - } - return null; - } - private EditItem GetEditItemFromItemID(int itemid) - { - if (!MyStepPanel._LookupEditItems.ContainsKey(itemid)) return null; - return MyStepPanel._LookupEditItems[itemid]; - } - /// - /// Adjust the height of a Deviation Document Step Including the Cautions and Notes B2016-123, B2017-020, B2017-021 - /// - private void AdjustForDevDocStepHeight() - { - if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format && MyParent.MyItemInfo.IsHigh) - { - int bot = MyParent.FindBottomDevDoc; - int DDHeight = bot - FirstSiblingEditItem.Top;//Determine the height of the step including cautions and notes - if (MyParent.DevDocHeight != DDHeight) - { - MyParent.DevDocHeight = DDHeight;// If the height has changed adjust the top of the next item down - EditItem ei = NextDevDocStep;// RHM 20170216 Locate Next Dev Doc Step - if (ei != null) - { - ei.Top = bot; - ei.AdjustLocation(); - } - } - } - } - // RHM 20170216 - Find Next Dev Doc High Level Step - // If caution Exists return caution - // If note exists return note - private EditItem NextDevDocStep - { - get - { - EditItem ei = this; - while (ei != null && !ei.MyItemInfo.IsHigh) ei = ei.MyParent;// Get High Level Step - if(ei != null) ei=ei.MyNextEditItem;// Get Next High Level Step - if (ei != null) - { - if (ei.MyItemInfo.IsHigh && (ei.MyItemInfo.Cautions != null || ei.MyItemInfo.Notes != null)) - { - if (ei.MyItemInfo.Cautions != null)// Look at cautions - { - EditItem eic = MyStepPanel._LookupEditItems[ei.MyItemInfo.Cautions[0].ItemID].BottomMostEditItem; - ei = eic; - } - else if (ei.MyItemInfo.Notes != null)//Look at notes - { - EditItem ein = MyStepPanel._LookupEditItems[ei.MyItemInfo.Notes[0].ItemID].BottomMostEditItem; - ei = ein; - } - } - } - return ei; - } - } - // RHM 20170216 Find Parent by walking up MyPrevious - private EditItem MyParent - { - get - { - if (MyParentEditItem != null) return MyParentEditItem; - return MyPreviousEditItem.MyParent; - } - } - protected void SetupEditItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand, EditItem nextEditItem, bool addFirstChld) - { - if (myStepPanel.TopMostEditItem == null) myStepPanel.TopMostEditItem = this; - //if (itemInfo.ItemID == 10366) Console.WriteLine("Here"); - //if (itemInfo.ItemID == 225) _MyStepRTB.Resize += new EventHandler(_MyStepRTB_Resize); - //_MyStepRTB.MyRTBItem = this; - //// TIMING: DisplayItem.TimeIt("CSLARTB InitComp"); - BackColor = myStepPanel.PanelColor; - //_MyStepRTB.BackColor = myStepPanel.InactiveColor; - // TODO: Adjust top based upon format - // TODO: Remove Label and just output ident on the paint event - TabLeft = 20; - SetupHeader(itemInfo); - this.Paint += new PaintEventHandler(EditItem_Paint); - this.BackColorChanged += new EventHandler(EditItem_BackColorChanged); - this.Move += new EventHandler(EditItem_Move); - this.Resize += new EventHandler(EditItem_Resize); - if (itemInfo != null) - { - ContentType = (int)itemInfo.MyContent.Type; - switch (ContentType / 10000) - { - case 0: // Procedure - ContentFont = myStepPanel.ProcFont;// lblTab.Font = myStepPanel.ProcFont; - TabFont = itemInfo.MyTab.MyFont.WindowsFont; - break; - case 1: // Section - ContentFont = myStepPanel.SectFont;// lblTab.Font = myStepPanel.SectFont; - TabFont = itemInfo.MyTab.MyFont.WindowsFont; - break; - case 2: // Steps - // Fix for B2016-037: there were ''s in saved content text. This was caused by a bug in code that - // did not resolve these correctly if there was more than 1 in the text. So if, when loading the text, this - // is found, resolve them: - if (itemInfo.MyContent.Text.Contains("")) - { - DisplayText vlntxt = new DisplayText(itemInfo, E_EditPrintMode.Edit, E_ViewMode.Edit, false, E_FieldToEdit.StepText, true, null, null, false); - vlntxt.SetDTS = false; - vlntxt.CleanUpNewIDs(); - vlntxt = null; - } - ContentFont = myStepPanel.StepFont;//lblTab.Font = myStepPanel.StepFont; - if (itemInfo.MyTab != null ) TabFont = itemInfo.MyTab.MyFont.WindowsFont; - MyStepData = itemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[ContentType % 10000]; - break; - } - //this.Move += new EventHandler(DisplayItem_Move); - } - else - { - if (myStepPanel.MyFont != null) ContentFont = TabFont = myStepPanel.MyFont; - } - if (expand) ShowExpanded(); - MyStepPanel = myStepPanel; - if (itemInfo != null && !myStepPanel._LookupEditItems.ContainsKey(itemInfo.ItemID)) myStepPanel._LookupEditItems.Add(itemInfo.ItemID, this); - _MyChildRelation = myChildRelation; - if (myParentEditItem != null) RNOLevel = myParentEditItem.RNOLevel; - if (itemInfo != null) - { - //// TIMING: DisplayItem.TimeIt("CSLARTB before _Layout"); - MyStepSectionLayoutData = itemInfo.ActiveFormat.MyStepSectionLayoutData; - //// TIMING: DisplayItem.TimeIt("CSLARTB _Layout"); - if (myParentEditItem != null) - SeqLevel = myParentEditItem.SeqLevel + ((myChildRelation == ChildRelation.After || myChildRelation == ChildRelation.Before) && itemInfo.IsSequential ? 1 : 0); - //// TIMING: DisplayItem.TimeIt("CSLARTB seqLevel"); - MyItemInfo = itemInfo; - MyItemInfo.MyConfig.PropertyChanged += new PropertyChangedEventHandler(MyConfig_PropertyChanged); - } - //// TIMING: DisplayItem.TimeIt("CSLARTB MyItem"); - myStepPanel.Controls.Add(this); - switch (myChildRelation) - { - case ChildRelation.After: - AddItem(myParentEditItem, ref myParentEditItem._MyAfterEditItems, nextEditItem, addFirstChld); - break; - case ChildRelation.Before: - AddItem(myParentEditItem, ref myParentEditItem._MyBeforeEditItems, nextEditItem, addFirstChld); - break; - case ChildRelation.RNO: - RNOLevel = myParentEditItem.RNOLevel + 1; - AddItem(myParentEditItem, ref myParentEditItem._MyRNOEditItems, nextEditItem, addFirstChld); - break; - case ChildRelation.SupInfo: - AddItem(myParentEditItem, ref myParentEditItem._MySupInfoEditItems, nextEditItem, addFirstChld); - break; - case ChildRelation.None: - break; - } - if (itemInfo != null) - { - // ip2bck's needed the ContentWidth set to get the edit windows to size correctly. - if (itemInfo.IsStep && itemInfo.FormatStepData.Type == "TitleWithTextBelow" && - ((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd)) - ContentWidth = myParentEditItem.ContentWidth; - if (itemInfo.IsStep && itemInfo.MyParent.IsFigure) - { - ContentWidth = myParentEditItem.MyParentEditItem.ContentWidth; - Left = MyParentEditItem.MyParentEditItem.Left + MyParentEditItem.MyParentEditItem.TabLeft; - } - - if (myChildRelation == ChildRelation.None) - { - if (ContentType == 0 && MyStepSectionLayoutData != null) - { - LastMethodsPush(string.Format("SetupRTBItem {0}", MyID)); - int widt = MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidT); - int wids = MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, 0); - ItemWidth = Math.Max(widt, wids); - } - } - } - //// TIMING: DisplayItem.TimeIt("CSLARTB Parent"); - SetText(); - if (itemInfo.IsSupInfoPart) - { - EditItem high = MyStepPanel._LookupEditItems[itemInfo.MyHLS.ItemID]; - ContentLocation = new Point(high.ContentLeft + high.Width + 36, (int)_MyParentEditItem.Top + SupInfoTopOffset); - } - //// TIMING: DisplayItem.TimeIt("CSLARTB SetText"); - if (itemInfo != null) - { - Name = string.Format("Item-{0}", itemInfo.ItemID); - SetExpandAndExpander(itemInfo); - if (expand && (itemInfo.MyContent.ContentPartCount != 0)) // If it should expand and it can expand - Expand(true); - else - if (myParentEditItem == null)// If it is the top node - if (ContentType >= 20000) // and it is a step - fully expand - Expand(true); - else // otherwise only expand one level - Expand(false); - } - //// TIMING: DisplayItem.TimeIt("CSLARTB before Controls Add"); - //myStepPanel.Controls.Add(this); - // If on the first Caution/Note and the parent has a previous, for example a caution off of 5th HLS, go to the - // bottom on the previous parent. In the example, the bottom of the 4th HLS. - int btm = myStepPanel.DisplayRectangle.Y; - int top = FindTop(btm); - if (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format) - if (MyItemInfo.IsCaution || MyItemInfo.IsNote) - top = myParentEditItem.TopMostEditItem.Top; - //if ((MyItemInfo.SameRowAsParent && MyItemInfo.IsCaution2) || (MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format && (MyItemInfo.IsCaution || MyItemInfo.IsNote))) - // top = myParentEditItem.TopMostEditItem.Top; - if (Top < top) - { - LastMethodsPush("SetupRTBItem"); - MyStepPanel.ItemMoving++; - Top = top; - MyStepPanel.ItemMoving--; - LastMethodsPop(); - } - this.Enabled = this.MyItemInfo.IsApplicable(MyStepPanel.ApplDisplayMode); - _Loading = false; - //// TIMING: DisplayItem.TimeIt("CSLARTB Controls Add"); - } - void MyConfig_PropertyChanged(object sender, PropertyChangedEventArgs e) - { - SaveConfig(); - } - public void SaveConfig() - { - if (!MyItemInfo.MyConfig.IsDirty) return; - using (Item itm = MyItemInfo.Get()) - { - itm.MyContent.Config = MyItemInfo.MyConfig.ToString(); - if (ChangeBarForConfigItemChange) - itm.MyContent.DTS = DateTime.Now; - itm.MyContent.UserID = Volian.Base.Library.VlnSettings.UserID; - itm.Save(); - } - MyItemInfo.MyConfig.IsDirty = false; - } - /// - /// If the background changes, change the background of the RichTextBox - /// - /// - /// - void EditItem_BackColorChanged(object sender, EventArgs e) - { - //IdentifyMe(false); - } - // TODO: the format of the circles, Checkoffs and Changebars should come from the format file - /// - /// This adds drawing items to the RTBItem as needed including - /// Circle around the Tab Number - /// Check-Offs - /// Change Bars - /// - /// - /// - private void EditItem_Paint(object sender, PaintEventArgs e) - { - Graphics g = e.Graphics; - g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.AntiAlias; - //g.DrawString(lblTab.Text, MyItemInfo.MyTab.MyFont.WindowsFont, Brushes.Red, new RectangleF(new PointF(MyStepPanel.MyStepPanelSettings.NumberLocationX, MyStepPanel.MyStepPanelSettings.NumberLocationY), MyStepPanel.MyStepPanelSettings.NumberSize), StringFormat.GenericDefault); - // adjust x location of label by 7, to position correctly. - //g.DrawString(lblTab.Text, MyItemInfo.MyTab.MyFont.WindowsFont, Brushes.Blue, new RectangleF(new PointF(Convert.ToSingle(lblTab.Location.X-7), Convert.ToSingle(lblTab.Location.Y)), MyStepPanel.MyStepPanelSettings.NumberSize), StringFormat.GenericDefault); - //g.DrawLine(Pens.DarkGreen, lblTab.Location.X-7, 0, lblTab.Location.X-7, this.Height); - // Show a small E to indicate Enhanced Steps - DVEnhancedDocuments dveds = MyItemInfo.MyDocVersion.DocVersionConfig.MyEnhancedDocuments; - float x = 0; - float y = 0; - foreach (EnhancedDocument ed in MyItemInfo.GetMyEnhancedDocuments()) - { - DVEnhancedDocument dved = dveds.GetByType(ed.Type); - Font fnt = new System.Drawing.Font("Arial", 5); - //g.DrawLine(Pens.DarkGreen, 18, 1, 18, 6); - //g.DrawLine(Pens.DarkGreen, 18, 1, 21, 1); - //g.DrawLine(Pens.DarkGreen, 18, 3, 21, 3); - //g.DrawLine(Pens.DarkGreen, 18, 6, 21, 6); - //g.DrawString("B", fnt, Brushes.Green, new RectangleF(new PointF(0,0), this.Size), StringFormat.GenericDefault); - g.DrawString(dved.PdfToken, fnt, Brushes.Green, new RectangleF(new PointF(x,y), this.Size), StringFormat.GenericDefault); - if (y > 0) - { - x += 18; - y = 0; - } - else - y = 14; - } - //g.DrawLine(Pens.DarkGreen, MyStepRTB.Location.X - 7, 0, MyStepRTB.Location.X - 7, this.Height); - //g.DrawString(TabText, MyItemInfo.MyTab.MyFont.WindowsFont, Brushes.Black, new RectangleF(new PointF(Convert.ToSingle(TabLocation.X), Convert.ToSingle(TabLocation.Y)), MyStepPanel.MyStepPanelSettings.NumberSize), StringFormat.GenericDefault); - Font myWFont = (MyItemInfo.MyTab != null) ? MyItemInfo.MyTab.MyFont.WindowsFont : MyItemInfo.FormatStepData.Font.WindowsFont; - g.DrawString(TabText, myWFont, Brushes.Black, new RectangleF(new PointF(Convert.ToSingle(TabLocation.X), Convert.ToSingle(TabLocation.Y)), this.Size), StringFormat.GenericDefault); - - //g.DrawLine(Pens.DarkGreen, lblTab.Location.X, 0, lblTab.Location.X, this.Height); - //g.DrawLine(Pens.DarkGreen, MyStepRTB.Location.X, 0, MyStepRTB.Location.X, this.Height); - if (Circle) - { - Pen penC = new Pen(MyStepPanel.MyStepPanelSettings.CircleColor, MyStepPanel.MyStepPanelSettings.CircleWeight); - g.DrawArc(penC, TabLeft + 1, 0, MyStepPanel.MyStepPanelSettings.CircleDiameter, MyStepPanel.MyStepPanelSettings.CircleDiameter, 0F, 360F); - } - if (CheckOff) - { - Pen penCO = new Pen(MyStepPanel.MyStepPanelSettings.CheckOffColor, MyStepPanel.MyStepPanelSettings.CheckOffWeight); - g.DrawRectangle(penCO, MyStepPanel.MyStepPanelSettings.CheckOffX, MyStepPanel.MyStepPanelSettings.CheckOffY, MyStepPanel.MyStepPanelSettings.CheckOffSize, MyStepPanel.MyStepPanelSettings.CheckOffSize); - } - if (ChangeBar) - { - Pen penCB = new Pen(MyStepPanel.MyStepPanelSettings.ChangeBarColor, MyStepPanel.MyStepPanelSettings.ChangeBarWeight); - if (ChangeBarPosition == E_ChangeBarPosition.Left) - g.DrawLine(penCB, 0, ContentTop, 0, Height); // left, top, right, bottom. - else - { - float X; - float H; - if (this is GridItem) - { - GridItem gi = this as GridItem; - X = gi.MyFlexGrid.Right+2; - H = gi.MyFlexGrid.Height; - } - else if (this is RtfRawItem) - { - RtfRawItem ri = this as RtfRawItem; - X = ri.MyStepRTB.Right + 4; - H = ri.MyStepRTB.Height; - } - else if (this is ImageItem) - { - ImageItem ii = this as ImageItem; - X = ii.MyPictureBox.Right + 4; - H = ii.MyPictureBox.Height; - } - else - { - RTBItem ri = this as RTBItem; - X = ri.MyStepRTB.Right + 2; - H = ri.MyStepRTB.Height; - } - g.DrawLine(penCB, X, ContentTop, X, ContentTop+H); //Height); - } - } - if (UserCheckOff) - { - PointF location; - if (this is GridItem) - { - GridItem gi = this as GridItem; - location = new PointF(gi.MyFlexGrid.Left + gi.MyFlexGrid.Width + 2, gi.MyFlexGrid.Top); - } - else if (this is RtfRawItem) - { - RtfRawItem rr = this as RtfRawItem; - // SkipSpaces puts the checkoff macro (if specified in the format) next to the step tab - // this is used for Bryon and Braidwood - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.SkipSpaces) - location = new PointF(rr.MyStepRTB.Left - 50, rr.MyStepRTB.Top); - else - location = new PointF(rr.MyStepRTB.Left + rr.MyStepRTB.Width + 2, rr.MyStepRTB.Top); - } - else if (this is ImageItem) - { - ImageItem ii = this as ImageItem; - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.SkipSpaces) - location = new PointF(ii.MyPictureBox.Left - 50, ii.MyPictureBox.Top); - else - location = new PointF(ii.MyPictureBox.Left + ii.MyPictureBox.Width + 2, ii.MyPictureBox.Top); - } - else - { - RTBItem ri = this as RTBItem; - // SkipSpaces puts the checkoff macro (if specified in the format) next to the step tab - // this is used for Bryon and Braidwood - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.SkipSpaces) - location = new PointF(ri.MyStepRTB.Left - 50, ri.MyStepRTB.Top); - else - location = new PointF(ri.MyStepRTB.Left + ri.MyStepRTB.Width + 2, ri.MyStepRTB.Top); - } - CheckOff co = MyItemInfo.GetCheckOffStep(); - // There may have been a data change in the setting of which checkoff to use (property - // change in the config data), or whether a checkoff is used at all. Need to set the - // 'UserCheckOff' or 'UserCheckOffChar' properties to reflect that. - if (co != null && co.UIMark != null) - { - UserCheckOffChar = (char)co.UIMark; - Font myFont = new Font("VolianDraw", MyItemInfo.MyTab.MyFont.WindowsFont.Size); - g.DrawString(UserCheckOffChar.ToString(), myFont, Brushes.DarkGreen, new RectangleF(location, MyStepPanel.MyStepPanelSettings.NumberSize), StringFormat.GenericDefault); - } - else if (co == null) UserCheckOff = false; - } - } - } -} diff --git a/PROMS/Volian.Controls.Library/GridItem.cs.bak b/PROMS/Volian.Controls.Library/GridItem.cs.bak deleted file mode 100644 index 67bfea63..00000000 --- a/PROMS/Volian.Controls.Library/GridItem.cs.bak +++ /dev/null @@ -1,1248 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Text.RegularExpressions; -//using System.IO; -using System.Windows.Forms; -using System.Xml; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; -using C1.Win.C1FlexGrid; - -namespace Volian.Controls.Library -{ - public partial class GridItem : EditItem - { - #region Fields - private bool _IsSaving; - public bool IsSaving - { - get { return _IsSaving; } - set { _IsSaving = value; } - } - public VlnFlexGrid MyFlexGrid - { - get { return _MyFlexGrid; } - set { _MyFlexGrid = value; } - } - private int _GridMargin = 11; - /// - /// Margin between the EditItem and the VlnFlexGrid. Appears on the Right. - /// Will allow space to draw a Change Bar on the right side of the EditItem. - /// - public int GridMargin - { - get { return _GridMargin; } - set { _GridMargin = value; } - } - #endregion - - #region Event Handlers - /// - /// Raises an ItemClick event when the user clicks on the Tab - /// - /// - /// - private void lblTab_MouseDown(object sender, MouseEventArgs e) - { - MyStepPanel.OnItemClick(this, new StepPanelEventArgs(this, e)); - } - void MyFlexGrid_Resize(object sender, EventArgs e) - { - if (MyFlexGrid.ReadingXml) return; - this.Size = new Size(MyFlexGrid.Width + GridMargin, MyFlexGrid.Height + GridMargin); - AdjustTableWidthAndLocation(); - AdjustLocation(); - } - void MyFlexGrid_Enter(object sender, EventArgs e) - { - if (MyStepPanel.DisplayItemChanging) return; - MyStepRTB.MyItemInfo = MyItemInfo; // should be in vlnFlexGrid - MyStepPanel.SelectedEditItem = this; - if (MyFlexGrid.IsRoTable) - { - MyFlexGrid.Cols.Fixed = MyFlexGrid.Cols.Count; - MyFlexGrid.Rows.Fixed = MyFlexGrid.Rows.Count; - } - } - void MyFlexGrid_KeyDown(object sender, KeyEventArgs e) - { - switch (e.KeyCode) - { - case Keys.F5: - if (e.Shift) - { - e.Handled = true; - if (!CheckClipboard()) return; // check if 'clipboard' contains a step. - SetMenu("StepPaste"); - } - else if (!e.Control && !e.Alt) - { - e.Handled = true; - CopyStep(); - } - break; - case Keys.Delete: - if (!MyFlexGrid.IsRoTable) - MyFlexGrid.ClearSelectedCellText(); - break; - } - } - void SetMenu(string contentMenu) - { - if (contentMenu == null) - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ClearContextMenu(); - else if (contentMenu == "OpenContextMenu") - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetGridCellContextMenu(); //.SetContextMenu(); - else - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetShortCutContextMenu(contentMenu); - } - void MyFlexGrid_CursorMovement(object sender, VlnFlexGridCursorMovementEventArgs args) - { - MyStepPanel.CursorMovement(this,new Point(0,0), args.Key); - } - void MyStepRTB_LinkModifyTran(object sender, StepPanelLinkEventArgs args) - { - MyStepPanel.OnLinkModifyTran(sender, args); - } - void MyStepRTB_LinkModifyRO(object sender, StepPanelLinkEventArgs args) - { - MyStepPanel.OnLinkModifyRO(sender, args); - } - void MyStepRTB_LinkGoTo(object sender, StepPanelLinkEventArgs args) - { - MyStepPanel.OnLinkClicked(sender, args); - } - void MyStepRTB_CursorKeyPress(object sender, KeyEventArgs args) - { - MyStepPanel.StepCursorKeys(this, args); - } - void MyStepRTB_AdjustTableWidth(object sender, StepRTBTableWidthEventArgs args) - { - //Console.WriteLine("MyStepRTB_AdjustTableWidth"); - //if ((!_MyItemInfo.IsSection && !_MyItemInfo.IsProcedure) && (_MyItemInfo.IsTable || _MyItemInfo.IsFigure)) - if (args.EditMode) - { - int colR = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColRTable, MyItemInfo.ColumnMode); - int widS = /* _WidthAdjust + borderWidth + */ MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, MyItemInfo.ColumnMode); - int wNew = 70 + widS + colR * MyItemInfo.ColumnMode; - if (wNew > ItemWidth) - { - ItemWidth = wNew; - ItemLocation = TableLocation(MyParentEditItem, MyStepSectionLayoutData, wNew); - } - } - else - { - int newwidth = MyFlexGrid.Width; - if (ItemWidth != newwidth) - { - ItemWidth = newwidth; - ItemLocation = TableLocation(MyParentEditItem, MyStepSectionLayoutData, newwidth); - } - } - } - bool MyStepRTB_IsNotCurrentSelection(object sender, EventArgs args) - { - return MyStepPanel.SelectedEditItem != this; - } - - void MyStepRTB_OpenAnnotations(object sender, EventArgs args) - { - OpenAnnotations(); - } - void MyFlexGrid_OpenAnnotations(object sender, EventArgs args) - { - OpenAnnotations(); - } - void MyStepRTB_DoMouseWheel(object sender, MouseEventArgs args) - { - DoMouseWheel(args); - } - void MyStepRTB_DoSaveContents(object sender, EventArgs args) - { - SaveCurrentAndContents(); - } - void MyStepRTB_VisibleChanged(object sender, EventArgs e) - { - MyStepRTB.EditMode = MyStepRTB.Visible; - //Console.WriteLine("MyStepRTB_VisibleChanged {0}", MyStepRTB.Width); - //Console.WriteLine("GridItem: EditMode = {0}", MyStepRTB.EditMode); - } - void MyStepRTB_ReturnToEditor(object sender, EventArgs args) - { - //Console.WriteLine("MyStepRTB_ReturnToEditor"); - MyFlexGrid.Focus(); - MyFlexGrid.StartEditing(); - } - void MyFlexGrid_Click(object sender, EventArgs e) - { - MyFlexGrid.Focus(); - //MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ToggleTableDesignButtons(false); - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetRibbonForGrid(); - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetTableButtonsForMergeRangeSelection(); - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetGridContextMenu(); - } - void MyStepRTB_EditModeChanged(object sender, EventArgs args) - { - //Console.WriteLine("MyStepRTB_EditModeChanged"); - AdjustColorsForEditMode(); - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetRibbonForGrid(); - } - - private void AdjustColorsForEditMode() - { - MyFlexGrid.StyleBackColor = Color.White; - if (MyStepRTB.EditMode) - { - MyFlexGrid.Styles["Focus"].ForeColor = MyFlexGrid.Styles["Focus"].BackColor = - MyFlexGrid.Styles["Highlight"].ForeColor = MyFlexGrid.Styles["Highlight"].BackColor = Color.SkyBlue; - } - else - { - MyFlexGrid.Styles["Focus"].ForeColor = MyFlexGrid.Styles["Highlight"].ForeColor = Color.Black; - MyFlexGrid.Styles["Focus"].BackColor = MyFlexGrid.Styles["Highlight"].BackColor = Color.LightCyan; - } - } - private string _OrigRtf; // used to store original rtf to allow for 'escape' key restore - void MyFlexGrid_SelChange(object sender, EventArgs e) - { - //if (Initializing) return; - //Volian.Base.Library.vlnStackTrace.ShowStackLocal("MyFlexGrid_SelChange {0}",MyFlexGrid.Selection); - RTBLastFocus = false; - MyStepRTB.Visible = false; // Hide the editor if the Selection Changes - if (Initializing) return; - if (MyFlexGrid.Selection.IsSingleCell && MyFlexGrid.Row >= 0 && MyFlexGrid.Col >= 0) - { - object obj = MyFlexGrid[MyFlexGrid.Row, MyFlexGrid.Col]; - _OrigRtf = obj == null ? string.Empty : obj.ToString(); - } - } - void MyStepRTB_KeyDown(object sender, KeyEventArgs e) - { - if (!e.Control && !e.Shift && !e.Alt && e.KeyCode == Keys.Escape && MyStepRTB.EditMode) - { - MyStepRTB.Rtf = _OrigRtf; - MyFlexGrid.Select(MyFlexGrid.Selection); - } - } - private string MyFlexGrid_AdjustPastedText(object sender, VlnFlexGridPasteEventArgs args) - { - string tmpForLink = args.Text; - tmpForLink = Regex.Replace(tmpForLink, @"#Link:ReferencedObject:[0-9]+ ", @"#Link:ReferencedObject: "); - tmpForLink = Regex.Replace(tmpForLink, @"#Link:Transition:([0-9]+) [0-9]+ ", @"#Link:Transition:$1 "); - tmpForLink = Regex.Replace(tmpForLink, @"#Link:TransitionRange:([0-9]+) [0-9]+ ", @"#Link:TransitionRange:$1 "); - return tmpForLink; - } - #endregion // Event Handlers - #region Constructors - public GridItem() - { - InitializeComponent(); - } - public GridItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand) - { - InitializeComponent(); - SetupEventHandlers(); - SetupEditItem(itemInfo, myStepPanel, myParentEditItem, myChildRelation, expand, null, false); - } - public GridItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand, EditItem nextEditItem) - { - InitializeComponent(); - SetupEventHandlers(); - SetupEditItem(itemInfo, myStepPanel, myParentEditItem, myChildRelation, expand, nextEditItem, false); - } - private void SetupEventHandlers() - { - this.MyFlexGrid.Resize += new EventHandler(MyFlexGrid_Resize); - this.MyFlexGrid.Enter += new EventHandler(MyFlexGrid_Enter); - this.MyFlexGrid.CursorMovement += new VlnFlexGridCursorMovementEvent(MyFlexGrid_CursorMovement); - this.MyFlexGrid.OpenAnnotations += new VlnFlexGridEvent(MyFlexGrid_OpenAnnotations); - this.MyFlexGrid.KeyDown +=new KeyEventHandler(MyFlexGrid_KeyDown); - this.MyStepRTB.LinkGoTo += new StepRTBLinkEvent(MyStepRTB_LinkGoTo); - this.MyStepRTB.LinkModifyRO += new StepRTBLinkEvent(MyStepRTB_LinkModifyRO); - this.MyStepRTB.LinkModifyTran += new StepRTBLinkEvent(MyStepRTB_LinkModifyTran); - this.MyStepRTB.CursorKeyPress += new StepRTBCursorKeysEvent(MyStepRTB_CursorKeyPress); - this.MyStepRTB.AdjustTableWidth += new StepRTBTableWidthEvent(MyStepRTB_AdjustTableWidth); - this.MyStepRTB.IsNotCurrentSelection += new StepRTBBooleanEvent(MyStepRTB_IsNotCurrentSelection); - this.MyStepRTB.OpenAnnotations += new StepRTBEvent(MyStepRTB_OpenAnnotations); - this.MyStepRTB.DoMouseWheel += new StepRTBMouseEvent(MyStepRTB_DoMouseWheel); - this.MyStepRTB.DoSaveContents += new StepRTBEvent(MyStepRTB_DoSaveContents); - this.MyStepRTB.VisibleChanged += new EventHandler(MyStepRTB_VisibleChanged); - this.MyStepRTB.ReturnToEditor += new StepRTBEvent(MyStepRTB_ReturnToEditor); - this.MyFlexGrid.Click += new EventHandler(MyFlexGrid_Click); - this.MyStepRTB.EditModeChanged += new StepRTBEvent(MyStepRTB_EditModeChanged); - this.MyStepRTB.KeyDown += new KeyEventHandler(MyStepRTB_KeyDown); - this.MyFlexGrid.SelChange += new EventHandler(MyFlexGrid_SelChange); - this.MyStepRTB.GotFocus += new EventHandler(MyStepRTB_GotFocus); - this.MyStepRTB.RoInsert += new StepRTBRoEvent(MyStepRTB_RoInsert); - this.MyFlexGrid.AdjustPastedText += new VlnFlexGridPasteEvent(MyFlexGrid_AdjustPastedText); - this.MyStepRTB.SetMenu += new StepRTBMenuEvent(MyStepRTB_SetMenu); - this.MyStepRTB.OpenContextMenu += new StepRTBLocationEvent(MyStepRTB_OpenContextMenu); - this.MyFlexGrid.EnterKeyPressed += new VlnFlexGridkeyEvent(MyFlexGrid_EnterKeyPressed); - //this.MyStepRTB.EnterKeyPressed += new StepRTBCursorKeysEvent(MyStepRTB_EnterKeyPressed); - // This Resize event has been useful for debugging purposes numerous times - // - //this.MyStepRTB.Resize += new EventHandler(MyStepRTB_Resize); - } - - //void MyStepRTB_EnterKeyPressed(object sender, KeyEventArgs args) - //{ - // args.Handled = true; - // MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ProcessEnterKey(); - //} - - void MyFlexGrid_EnterKeyPressed(object sender, KeyEventArgs args) - { - args.Handled = true; - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ProcessEnterKey(); - } - - void MyStepRTB_OpenContextMenu(object sender, StepRTBLocationEventArgs args) - { - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.OpenContextMenu(args.Location); - } - - void MyStepRTB_SetMenu(object sender, StepRTBMenuEventArgs args) - { - SetMenu(args.MenuGroup); - } - - // This Resize event been useful for debugging purposes numerous times - // - //void MyStepRTB_Resize(object sender, EventArgs e) - //{ - // if (MyStepRTB.Visible) - // { - // //Volian.Base.Library.vlnStackTrace.ShowStack("MyStepRTB_Resize"); - // Console.WriteLine("MyStepRTB_Resize {0}", MyStepRTB.Width); - // } - //} - void MyStepRTB_RoInsert(object sender, StepRTBRoEventArgs args) - { - //Console.WriteLine("GridItem - Enter MyStepRTB_RoInsert"); - if (MyFlexGrid.IsRoTable) - { - MyFlexGrid.Visible = false; - MyFlexGrid.ConvertTableROToGrid(args.ValText, args.RODbID, args.ROID); - MyFlexGrid.FixTableCellsHeightWidth(); - MyFlexGrid.AdjustGridControlSize(); - MyFlexGrid.Visible = true; - //MyFlexGrid.MergedRanges.Clear(); - //MyFlexGrid.Clear(); - //ConvertTableToGrid(args.RawValText, args.RODbID, args.ROID); - //MyFlexGrid.RODbId = args.RODbID; - //MyFlexGrid.ROID = args.ROID; - //SaveContents(); - } - else - { - int sel = MyStepRTB.SelectionStart + args.ValText.Length;// +args.LinkText.Length;//MyStepRTB.SelectionLength; // Remember where the link is being added - //Console.WriteLine("ValText {0} LinkText {1}", args.ValText, args.LinkText); - //Console.WriteLine("selstart {0} len {1}", MyStepRTB.SelectionStart, args.LinkText.Length); - CellRange cr = MyFlexGrid.Selection; - MyStepRTB.UpdateStepRtb(args.LinkText, args.ValText); - MyFlexGrid.StartEditing(cr.r1, cr.c1); // get back to edit mode - MyStepRTB.Select(sel, 0);// Move cursor to end of LINK - SendKeys.Send("{RIGHT}"); // this will un-select the RO - SendKeys.Flush(); - } - //Console.WriteLine("GridItem - Exit MyStepRTB_RoInsert"); - } - void MyStepRTB_GotFocus(object sender, EventArgs e) - { - RTBLastFocus = true; - } - #endregion - #region Override Method and Properties - public override int BorderWidth { get { return (MyFlexGrid.Width - MyFlexGrid.ClientRectangle.Width); } } - //private bool _OnlyOnce = false; - //protected override void OnPaint(PaintEventArgs e) - //{ - // base.OnPaint(e); - // if (!this.Enabled && !_OnlyOnce) - // { - // _OnlyOnce = true; - // _MyDisablePanel.SendToBack(); - // _MyDisablePanel.BringToFront(); - // _OnlyOnce = false; - // } - //} - protected override void OnEnabledChanged(EventArgs e) - { - base.OnEnabledChanged(e); - if (this.Enabled) - { - _MyDisablePanel.SendToBack(); - _MyDisablePanel.Visible = false; - } - else - { - _MyDisablePanel.Visible = true; - Rectangle rect = new Rectangle(0, 0, this.MyFlexGrid.Width, this.MyFlexGrid.Height); - Bitmap bmp = new Bitmap(this.MyFlexGrid.Width, this.MyFlexGrid.Height); - this.MyFlexGrid.DrawToBitmap(bmp, rect); - using (Graphics gr = Graphics.FromImage(bmp)) - { - gr.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver; - gr.FillRectangle(new SolidBrush(Color.FromArgb(128, Color.FromKnownColor(KnownColor.ButtonFace))), rect); - //gr.FillEllipse(Brushes.Red, 10, 10, 10, 10); - } - _MyDisablePanel.Location = this.MyFlexGrid.Location; - _MyDisablePanel.Size = this.MyFlexGrid.Size; - _MyDisablePanel.BackgroundImage = bmp; - _MyDisablePanel.BringToFront(); - } - } - public override Point ContentLocation - { - get { return new Point(Location.X + MyFlexGrid.Left, Location.Y); } - set { Location = new Point(value.X - MyFlexGrid.Left, value.Y); } - } - public override string TabFormat { get { return _TabFormat; } set { _TabFormat = value; } } - public override void AdjustTableWidthAndLocation() - { - //_MyStepRTB.Font = MyStepData.Font.WindowsFont; - //ItemWidth = (int)GetTableWidth(MyStepRTB.Font, MyItemInfo.MyContent.Text, true); - //ItemWidth = MyFlexGrid.Width; - //ItemLocation = new Point(50, _MyParentEditItem.Bottom); - - // We had a table that was in a funky state. This allows it to appear in editor so - // that is could be deleted. - if (_MyParentEditItem == null) return; - Point newLocation = TableLocation(_MyParentEditItem, MyStepSectionLayoutData, ItemWidth); - if (!newLocation.Equals(ItemLocation)) ItemLocation = newLocation; - } - public override void SetToolTip(string tip) - { - DevComponents.DotNetBar.SuperTooltipInfo tpi = new DevComponents.DotNetBar.SuperTooltipInfo("", "", tip, null, null, DevComponents.DotNetBar.eTooltipColor.Lemon); - _MyToolTip.MinimumTooltipSize = new Size(0, 24); - _MyToolTip.TooltipDuration = 3; - //_MyToolTip.SetSuperTooltip(MyStepRTB, tpi); - _MyToolTip.SetSuperTooltip(MyFlexGrid, tpi); - } - private bool DoNotRefresh = false; - public override void RefreshContent() - { - if (DoNotRefresh) return; - _ActiveMode = MyFlexGrid.ContainsFocus; - using (Grid myGrid = MyItemInfo.MyContent.MyGrid.Get()) - { - MyItemInfo.MyContent.MyGrid.ResetContent(myGrid); - } - RefreshDisplay(_ActiveMode); - IdentifyMe(false); - } - public override int TableWidth { get { return 0; } } // DONE - public override int ItemLeft - { - get { return Left + lblTab.Left; } - set { Left = value - lblTab.Left; } - } - public override int ContentLeft { get { return Left + MyFlexGrid.Left; } } - public override int ContentWidth - { - get { return MyFlexGrid.Width; } - set - { - Width = value + lblTab.Left + lblTab.Width; - } - } - public override Point ItemLocation - { - get { return new Point(Location.X + lblTab.Left, Location.Y); } - set { Location = new Point(value.X - lblTab.Left, value.Y); } - } - public override int ItemWidth - { - get { return Width - lblTab.Left; } - set - { - Width = GridMargin + value + lblTab.Left; - } - } - public override void RefreshOrdinal() - { - TabFormat = null; // Reset Tab - } - public override bool Expanded - { - get {return !Colapsing;} - set {;} // Tables are always expanded. - } - public override void RefreshTab() { TabFormat = null;} - public override void SetFocus() { MyFlexGrid.Focus();} - public override void SaveContents() - { - if (!MyFlexGrid.IsDirty && !IsSaving) return; - List RtfRoUsageList = new List(); - List RtfTransList = new List(); - - int r = 0; - int c = 0; - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - - string srchtxt = MyFlexGrid.GetSearchableText(); - // find the rousages within the grid cell. If this is an ro table, there will only be one usage - // if it is a modify and there will be no usages if it is new (the usage gets created on the save) - if (!MyFlexGrid.IsRoTable) - { - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - if (MyFlexGrid[r, c] != null) - { - // see if there are any links and save these so that any deleted ROs or transitions in the - // steprtb can have associated usages/transitions records removed from the database. - string lookFor = string.Format(@""); - MatchCollection matches = Regex.Matches((string)MyFlexGrid[r, c], lookFor); - for (int i = matches.Count - 1; i >= 0; i--) - { - Match m = matches[i]; - if (m != null && m.Groups.Count > 6 && m.Groups[6].ToString() == "ReferencedObject") - { - Regex regRefObj = new Regex(@"\#Link\:ReferencedObject\:([0-9]*) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline); - Match myMatch = regRefObj.Match(m.Value); - if (myMatch.Success) - { - int usgid = int.Parse(myMatch.Groups[1].Value); - RtfRoUsageList.Add(usgid); - } - } - if (m != null && m.Groups.Count > 6 && m.Groups[6].ToString().StartsWith("Transition")) - { - Regex regRefObj = new Regex(@"\#Link\:Transition[a-zA-Z]*\:([0-9]*) ([0-9]*) ([0-9]*)", RegexOptions.Singleline); - Match myMatch = regRefObj.Match(m.Value); - if (myMatch.Success) - { - int tid = int.Parse(myMatch.Groups[2].Value); - RtfTransList.Add(tid); - } - } - } - } - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - } - } - else - { - // new roid is in flexgrid.roid. Compare to previous, if there was a previous. If there - // is a modify RO, then need to delete the existing rousage record because a new usage - // record will get created that contains the selected ROID. - Regex regRefObj = new Regex(@"\#Link\:ReferencedObject\:([0-9]*) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline); - Match myMatch = regRefObj.Match(MyItemInfo.MyContent.Text); - if (myMatch.Success) - { - int usgid = int.Parse(myMatch.Groups[1].Value); - RoUsageInfo rui = RoUsageInfo.Get(usgid); - if (rui.ROID == MyFlexGrid.ROID)RtfRoUsageList.Add(usgid); - } - } - // compare ro usages & transitions from database and list from grid contents - // if in both lists, don't do anything - // if only in database list, delete usage. - // never will have condition where it is not in database list, but is in steprtb text list (this - // case is handled when ro is inserted. - if (MyItemInfo.MyContent.ContentRoUsages != null) - { - List delRoUsgs = new List(); - foreach (RoUsageInfo ru in MyItemInfo.MyContent.ContentRoUsages) - if (!RtfRoUsageList.Contains(ru.ROUsageID)) delRoUsgs.Add(ru.ROUsageID); - foreach (int dRU in delRoUsgs) RoUsage.Delete(dRU); - } - if (MyItemInfo.MyContent.ContentTransitions != null) - { - List delTrans = new List(); - foreach (TransitionInfo ti in MyItemInfo.MyContent.ContentTransitions) - if (!RtfTransList.Contains(ti.TransitionID)) delTrans.Add(ti.TransitionID); - foreach (int dt in delTrans) Transition.Delete(dt); - } - - bool success = FinishSave(srchtxt); - if (success && !MyFlexGrid.IsRoTable) - { - MyStepRTB.FindAllLinks(); - MyStepRTB.OrigRTF = MyStepRTB.Rtf; - MyStepRTB.ClearUndo(); - } - } - private string DoLinkForRoTable(Item itm) - { - // if no ro has been defined yet, just return null - if (MyFlexGrid.ROID == null) return null; - ContentRoUsage rousg = null; -// using (Item itm = MyItemInfo.Get()) -// { - using (RODb rodb = RODb.GetJustRoDb(MyFlexGrid.RODbId)) - { - string padroid = (MyFlexGrid.ROID.Length <= 12) ? MyFlexGrid.ROID + "0000" : MyFlexGrid.ROID; - rousg = itm.MyContent.ContentRoUsages.Add(MyFlexGrid.ROID, rodb); - } - //itm.Save(); -// } - MyItemInfo.MyContent.RefreshContentRoUsages(); - return string.Format(@"#Link:ReferencedObject:{0} {1} {2}", rousg.ROUsageID, MyFlexGrid.ROID, MyFlexGrid.RODbId); - } - //private void ConvertTableToGrid(string valtext, int rodbid, string roid) - //{ - // VE_Font vefont = MyItemInfo.GetItemFont(); - // MyFlexGrid.Font = vefont.WindowsFont; - // //Initializing = true; - // MyFlexGrid.MergedRanges.Clear(); - // MyFlexGrid.Clear(); - // MyFlexGrid.ParseTableFromText(valtext); - // MyFlexGrid.AutoSizeCols(); - // MyFlexGrid.AutoSizeRows(); - // MyFlexGrid.MakeRTFcells(); - // MyFlexGrid.RODbId = rodbid; - // MyFlexGrid.ROID = roid; - // MyFlexGrid.IsRoTable = true; - // //Initializing = false; - // SaveContents(); - //} - private bool FinishSave(string searchableText) - { - // Just in case if the grid was in a mode to change sizes, clear out that setting - // in the grid: - MyFlexGrid.Cols.Fixed = 0; - MyFlexGrid.Rows.Fixed = 0; - MyFlexGrid.StyleBackColor = Color.White; - - string xml = MyFlexGrid.GetXMLData(); - using (Item itm = MyItemInfo.Get()) - { - //if (!MatchingXML(itm.MyContent.MyGrid.Data, xml)) - //{ - // CompareXML(itm.MyContent.MyGrid.Data, xml); - itm.MyContent.MyGrid.Data = xml; - itm.MyContent.MyGrid.DTS = DateTime.Now; - //} - // if this is the initial save of an ro table, then the 'DoLinkForRoTable' will - // create the usage for it. this code gets run on modify of the ro table and also - // on exit of the griditem. We don't want to save the ro usage again, if it's already - // been saved. - if (MyFlexGrid.IsRoTable && MyFlexGrid.ROID != null && itm.MyContent.ContentRoUsageCount < 1) - { - searchableText = string.Format(@"\v\v0 ", searchableText, DoLinkForRoTable(itm)); - //if (itm.MyContent.Text != searchableText) - //{ - itm.MyContent.Text = searchableText; - itm.MyContent.DTS = DateTime.Now; - //} - } - else - { - itm.MyContent.Text = searchableText; - itm.MyContent.DTS = DateTime.Now; - } - if (!MyFlexGrid.IsRoTable)itm.MyContent.Text = searchableText; - itm.Save(); - MyItemInfo.MyContent.MyGrid.ResetContent(itm.MyContent.MyGrid); - } - return true; - } - private void CompareXML(string v1, string v2) - { - v1 = Regex.Replace(v1, "\r\n *", ""); - v1 = Regex.Replace(v1, "version *= *\"[^\"]*\"", ""); - v2 = Regex.Replace(v2, "\r\n *", ""); - v2 = Regex.Replace(v2, "version *= *\"[^\"]*\"", ""); - int iStart = 0; - int l1 = v1.Length; - int l2 = v2.Length; - int l3 = Math.Min(l1, l2); - while (iStart < l3 && v1[iStart] == v2[iStart]) - iStart++; - int iEnd1 = l1 - 1; - int iEnd2 = l2 - 1; - while (iStart < iEnd1 && iStart < iEnd2 && v1[iEnd1] == v2[iEnd2]) - { - iEnd1--; - iEnd2--; - } - if (iStart < iEnd1) Console.WriteLine("v1 = {0}", v1.Substring(iStart, iEnd1 - iStart)); - if (iStart < iEnd2) Console.WriteLine("v2 = {0}", v2.Substring(iStart, iEnd2 - iStart)); - - } - private bool MatchingXML(string v1, string v2) - { - v1 = Regex.Replace(v1, "\r\n *", ""); - v1 = Regex.Replace(v1, "version *= *\"[^\"]*\"", ""); - v2 = Regex.Replace(v2, "\r\n *", ""); - v2 = Regex.Replace(v2, "version *= *\"[^\"]*\"", ""); - int l1 = v1.Length; - int l2 = v2.Length; - if(l1 != l2 )return false; - //int l3 = Math.Min(l1, l2); - //int l4 = Math.Max(l1, l2); - for (int i = 0; i < l1; i++) - if (v1[i] != v2[i]) return false; - return true; - //Console.WriteLine("{0} - {1},{2}",i, showChar(v1[i]), showChar(v2[i])); - //if(l1 > l3)Console.WriteLine("v1 = {0}",v1.Substring(l3)); - //if(l2 > l3)Console.WriteLine("v2 = {0}",v2.Substring(l3)); - } - //private object showChar(char c) - //{ - // int i = (int)c; - // if (i <= 32) - // return string.Format("<{0}>", i); - // else - // return c.ToString(); - //} - public void BasicSave() - { - using (Item itm = MyItemInfo.Get()) - { - itm.MyContent.MyGrid.Data = MyFlexGrid.GetXMLData(); - itm.Save(); - //MyItemInfo.MyContent.MyGrid.ResetContent(itm.MyContent.MyGrid); - } - } - public override bool CanExpand { get { return false; } set { ;} } - public override void HandleResize() { ;} // DONE - public override void MatchExpanded() { ;} // DONE - public override void ItemSelect() - { - // Was getting an Error that _MyStepRTB was Disposed RHM 20101217 - if (!MyFlexGrid.Disposing) - { - Focus(); - MyFlexGrid.Focus(); - if (!MyFlexGrid.IsRoTable) // Table ROs are none editable - don't select a table cell - { - MyFlexGrid.Select(0, 0); - MyFlexGrid.FirstEntry = true; // to fix a problem with initial mouse click into table - } - } - else - { - _MyLog.WarnFormat("Attempt to give Focus to Disposed Object {0}", MyID); - } - ScrollToCenter(); - } - public override void ItemShow() - { - MyFlexGrid.Focus(); - ScrollToCenter(); - } - public StepRTB DisplayRoStepRTB; - public override StepRTB MyStepRTB - { - get - { - return MyFlexGrid.TableCellEditor; - } - } - public override DialogResult ReplaceText(string rpltxt, string fndstr, bool caseSensitive, bool matchWholeWord, bool reverse, bool prompt, IWin32Window fndrpldlg) - { - int r = MyFlexGrid.Row; - int c = MyFlexGrid.Col; - - if (!reverse) - { - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - int ss = MyStepRTB.SelectionStart; - int sl = MyStepRTB.SelectionLength; - MyFlexGrid.StartEditing(); - MyStepRTB.Select(ss, sl); // need to reset selection because startediting positions to end. - if (MyStepRTB.ReadOnly) - { - MessageBox.Show("Cannot replace linked text!", "Find/Replace", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); - return DialogResult.Yes; - } - string oldRtf = MyStepRTB.Rtf; - DialogResult dr = MyStepRTB.ReplaceText(rpltxt, fndstr, caseSensitive, matchWholeWord, reverse, prompt, fndrpldlg); - if (oldRtf != MyStepRTB.Rtf) MyFlexGrid[r, c] = MyStepRTB.Rtf; - if (dr == DialogResult.Yes || dr == DialogResult.Cancel) return dr; - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - if (r < h) - { - MyFlexGrid.Select(r, c); - MyStepRTB.Select(0, 0); - } - } - } - else // reverse - { - while (r >= 0) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - int ss = MyStepRTB.SelectionStart; - int sl = MyStepRTB.SelectionLength; - MyFlexGrid.StartEditing(); - MyStepRTB.Select(ss, sl); - if (MyStepRTB.ReadOnly) - { - MessageBox.Show("Cannot replace linked text!", "Find/Replace", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); - return DialogResult.Yes; - } - string oldRtf = MyStepRTB.Rtf; - DialogResult dr = MyStepRTB.ReplaceText(rpltxt, fndstr, caseSensitive, matchWholeWord, reverse, prompt, fndrpldlg); - if (oldRtf != MyStepRTB.Rtf) MyFlexGrid[r, c] = MyStepRTB.Rtf; - if (dr == DialogResult.Yes || dr == DialogResult.Cancel) return dr; - } - c = c - 1; - if (c < 0) - { - c = MyFlexGrid.Cols.Count - 1; - r = r - 1; - } - cr = MyFlexGrid.GetMergedRange(r, c); - if (r >= 0 && cr.r1 == r && cr.c1 == c) - { - MyFlexGrid.Select(r, c); - MyFlexGrid.StartEditing(); - MyStepRTB.Select(MyStepRTB.Text.Length, 0); - } - } - } - return DialogResult.No; - } - public override bool FindText(string str, bool caseSensitive, bool matchWholeWord, bool reverse) - { - if (MyFlexGrid.Row < 0) MyFlexGrid.Row = (reverse) ? MyFlexGrid.Rows.Count - 1 : 0; - if (MyFlexGrid.Col < 0) MyFlexGrid.Col = (reverse) ? MyFlexGrid.Cols.Count - 1 : 0; - int r = MyFlexGrid.Row; - int c = MyFlexGrid.Col; - if (!reverse) - { - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - int ss = MyStepRTB.SelectionStart + MyStepRTB.SelectionLength; - MyFlexGrid.StartEditing(); - MyStepRTB.Select(ss, 0); // need to reset selection because startediting positions to end. - bool scn = MyStepRTB.FindText(str, caseSensitive, matchWholeWord, reverse); - if (scn) return true; - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - if (r < h) - { - MyFlexGrid.Select(r, c); - MyStepRTB.Select(0, 0); - } - } - } - else - { - while (r >= 0) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - int ss = MyStepRTB.SelectionStart; - MyFlexGrid.StartEditing(); - MyStepRTB.Select(ss, 0); - bool scn = MyStepRTB.FindText(str, caseSensitive, matchWholeWord, reverse); - if (scn) return true; - } - c = c - 1; - if (c < 0) - { - c = MyFlexGrid.Cols.Count - 1; - r = r - 1; - } - cr = MyFlexGrid.GetMergedRange(r, c); - if (r >= 0 && cr.r1 == r && cr.c1 == c) - { - MyFlexGrid.Select(r, c); - MyFlexGrid.StartEditing(); - MyStepRTB.Select(MyStepRTB.Text.Length, 0); - } - } - } - return false; - } - public override void PositionToEnd() - { - int r = MyFlexGrid.Rows.Count - 1; - int c = MyFlexGrid.Cols.Count - 1; - MyFlexGrid.Select(r, c); - while (r >= 0) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - MyFlexGrid.StartEditing(); - return; - } - c = c - 1; - if (c < 0) - { - c = MyFlexGrid.Cols.Count - 1; - r = r - 1; - } - if (r >= 0) - { - MyFlexGrid.Select(r, c); - MyStepRTB.Select(MyStepRTB.Text.Length, 0); - } - } - } - public override void PositionToStart() - { - MyFlexGrid.Select(0,0); - MyFlexGrid.StartEditing(); - MyStepRTB.Select(0, 0); - } - public override string SelectedTextForFind - { - get - { - StepRTB srtb = MyStepRTB; - if (srtb.SelectionLength > 0) - { - if (srtb.IsSelectionLinked(srtb.SelectionStart, srtb.SelectionLength)) - return srtb.SelectedText.Substring(0, srtb.SelectedText.IndexOf("#Link")); - else - return srtb.SelectedText; - } - return null; - } - } - public override bool SpellCheckNext() - { - int r = MyFlexGrid.Row; - int c = MyFlexGrid.Col; - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - MyFlexGrid.Select(r, c); - MyFlexGrid.StartEditing(); - string oldRtf = MyStepRTB.Rtf; - bool scn = MyStepRTB.SpellCheckNext(); - if (oldRtf != MyStepRTB.Rtf) MyFlexGrid[r, c] = MyStepRTB.Rtf; - if (!scn) return false; - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - } - return true; - } - public override void IdentifyMe(bool highlight) - { - if (highlight) - { - MyFlexGrid.StyleBackColor = Color.Gray; - MyFlexGrid.Styles.Fixed.BackColor = Color.Gray; - } - else - { - MyFlexGrid.Styles.Fixed.BackColor = MyFlexGrid.DefaultFixedBackgroundColor; - MyFlexGrid.StyleBackColor = MyFlexGrid.DefaultCellBackgroundcolor; - if (MyFlexGrid.Focused) // If active Set BackColor to the active color - SetActive(); - else // Otherwise Set the BackColor to either the InactiveColor or the AnnotationColor - { - MyFlexGrid.StyleBackColor = - MyItemInfo.ItemAnnotationCount == 0 ? MyStepPanel.InactiveColor : MyStepPanel.AnnotationColor; - // Turn-off Size adjustment - MyFlexGrid.Cols.Fixed = 0; - MyFlexGrid.Rows.Fixed = 0; - } - } - } - public override void SetActive() - { - AdjustColorsForEditMode(); - } - private bool _Empty = false; - public override bool Empty - { - get { return _Empty; } - set { _Empty = value; } - } - private bool _Initializing = false; - public bool Initializing - { - get { return _Initializing; } - set { _Initializing = value; } - } - private bool _ActiveMode = false; - public override void RefreshDisplay(bool activeMode) - { - _ActiveMode = activeMode; - //XmlDocument xd = new XmlDocument(); - //xd.LoadXml(MyItemInfo.MyContent.MyGrid.Data); - //using (StringReader sr = new StringReader()) - Initializing = true; - MyFlexGrid.LoadGrid(MyItemInfo); - Initializing = false; - MyFlexGrid.KeyActionTab = KeyActionEnum.MoveAcross; - MyFlexGrid.AdjustGridControlSize(); - // When a grid is read from XML, all of the styles are updated to the values in the XML. - // Thus any specific settings need to be set after the grid is read. - MyFlexGrid.Styles["Highlight"].BackColor = Color.LightCyan; - MyFlexGrid.Styles["Focus"].BackColor = Color.LightCyan; - MyFlexGrid.HighLight = activeMode ? C1.Win.C1FlexGrid.HighLightEnum.Always : C1.Win.C1FlexGrid.HighLightEnum.WithFocus; - MyFlexGrid.VwMode = MyStepPanel.VwMode; - } - public override void ToggleEditView(E_ViewMode vwMode) - { - /* - * TODO: - * 1) SaveContents - */ - RefreshDisplay(false); - MyFlexGrid.VwMode = vwMode; - } - public override int TabLeft { get { return lblTab.Left; } set { lblTab.Left = value; } } - public override Font TabFont { get { return lblTab.Font; } set { lblTab.Font = value; } } - public override string TabText { get { return lblTab.Text; } } - public override Point TabLocation { get { return lblTab.Location; } } - public override Font ContentFont { get { return MyFlexGrid.Font; } set { MyFlexGrid.Font = value; } } // TODO how do we know what font tables are in? - public override float ContentTop { get { return MyFlexGrid.Top; } } - public override void SetupHeader(ItemInfo itemInfo) { ;} // tables do not have headers - public override void ShowExpanded() {;} - public override void SetText() - { - // if this is an RO Table, regenerate xml. This is done in the case that - // the rotable was updated by the ro editor. - //if (MyFlexGrid.IsRoTable) RefreshGridData(); - RefreshDisplay(false); - IdentifyMe(false); - } - - //private void RefreshGridData() - //{ - // string ROID = MyFlexGrid.ROID; - // int rodbid = MyFlexGrid.RODbId; - // //MyFlexGrid.Clear(); - // ROFSTLookup MyROFSTLookup = MyItemInfo.MyDocVersion.DocVersionAssociations[0].MyROFst.ROFSTLookup; - // MyFlexGrid.ConvertTableROToGrid(MyROFSTLookup.GetRoValue(ROID), rodbid, ROID); - // //ConvertTableToGrid(MyROFSTLookup.GetRoValue(ROID), rodbid, ROID); - // //MyFlexGrid.RODbId = rodbid; - // //MyFlexGrid.ROID = ROID; - // //MyFlexGrid.IsRoTable = true; - // //SaveContents(); - //} - public override void SetExpandAndExpander(ItemInfo itemInfo) { CanExpand = false; } // can't expand a table - public void SavePastedCellRoTran() - { - if (!MyFlexGrid.GetXMLData().Contains("<NewID>")) return; - BasicSave(); - // need to loop thru all pasted cells: for now do all cells. - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - int r = 0; - int c = 0; - String Rtf = null; - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - Rtf = (string)MyFlexGrid[r, c]; - if (Rtf != null) - { - int startIndx = 0; - while (Rtf.IndexOf("") > -1) - { - // first find the new link and determine whether it's RO or transition. - int indx = Rtf.IndexOf(@"#Link:ReferencedObject:", startIndx); - if (indx > 0) - { - // only look in the substring limited by the first occurrance of [END>. If there is more - // than one, don't get multiple links in the string. - int endindx = Rtf.IndexOf(@"END>", indx) + 4; - Match mro = Regex.Match(Rtf.Substring(indx, endindx - indx), @"([A-Za-z]*):(.*)\[END>"); - string linkstr = mro.Groups[2].Value; - string[] roparts = linkstr.Split(" ".ToCharArray()); - ContentRoUsage rousg = null; - int oldid = -1; - using (Item itm = MyItemInfo.Get()) - { - using (RODb rodb = RODb.GetJustRoDb(Convert.ToInt32(roparts[2]))) - { - rousg = itm.MyContent.ContentRoUsages.Add(roparts[1], rodb); - } - oldid = rousg.ROUsageID; - int newid = Rtf.IndexOf("", indx); - Rtf = Rtf.Remove(newid, 7); - Rtf = Rtf.Insert(newid, string.Format("", rousg.ROUsageID)); - itm.Save(); - Rtf = Rtf.Replace(string.Format("", oldid), rousg.ROUsageID.ToString()); - itm.Save(); - MyItemInfo.MyContent.RefreshContentRoUsages(); - } - startIndx = endindx; - } - else - { - Match mt = Regex.Match(Rtf, @"#Link:Transition:([0-9]+) "); - if (mt.Length <= 0) mt = Regex.Match(Rtf, @"#Link:TransitionRange:([0-9]+) "); - if (mt.Length > 0) - { - int endtindx = Rtf.IndexOf("END>", mt.Index) + 4; - indx = mt.Index + 6; // get past '#Link:" - Match m = Regex.Match(Rtf.Substring(indx, endtindx - indx), @"([A-Za-z]*):(.*)\[END>"); - bool isSingleTran = true; - if (Rtf.Substring(indx, 16).IndexOf("TransitionRange") >= 0) isSingleTran = false; - string linkstr = m.Groups[2].Value; - string[] tparts = linkstr.Split(" ".ToCharArray()); - int type = System.Convert.ToInt32(tparts[0]); - int tr1 = System.Convert.ToInt32(tparts[2]); // tparts[2] is token for tranid - int tr2 = tr1; - if (tparts.Length > 3) - tr2 = System.Convert.ToInt32(tparts[3]); // tparts[3] is token for rangeid - bool dispose1 = false; - Item itm1 = null; - bool dispose2 = false; - Item itm2 = null; - using (Item itm = MyItemInfo.Get()) - { - if (itm.ItemID == tr1) - itm1 = itm; // a transition that points to itself should not dispose - else - { - dispose1 = true; - itm1 = Item.Get(tr1); - } - if (itm.ItemID == tr2) - itm2 = itm; // a transition that points to itself should not dispose - else if (tr1 == tr2) - itm2 = itm1; // if both destinations are the same only dispose the first one - else - { - dispose2 = true; - itm2 = Item.Get(tr2); - } - ContentTransition ct = itm.MyContent.ContentTransitions.Add(itm1, itm2); - //Console.WriteLine("CT {0},{1},{2},{3}", ct.TransitionID, itm.ItemID, itm.MyContent.MyContentUnique, itm.MyContent.ContentTransitions.Count); - ct.TranType = type; - - if (isSingleTran) - ct.IsRange = 0; - else if (tr1 != tr2) - ct.IsRange = 1; - else - ct.IsRange = 2; - - int oldidt = ct.TransitionID; - int newidt = Rtf.IndexOf("", indx); - Rtf = Rtf.Remove(newidt, 7); - Rtf = Rtf.Insert(newidt, string.Format("", ct.TransitionID)); - //Rtf = Rtf.Replace("", string.Format("", ct.TransitionID)); - itm.Save(); - Rtf = Rtf.Replace(string.Format("", oldidt), ct.TransitionID.ToString()); - itm.Save(); - MyItemInfo.MyContent.RefreshContentTransitions(); - } - if (dispose2) itm2.Dispose(); - if (dispose1) itm1.Dispose(); - } - } - } - MyFlexGrid[r, c] = Rtf; - } - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - } - } - public override void SaveCurrentAndContents() - { - IsSaving = true; - if (MyFlexGrid.Row >= 0 && MyFlexGrid.Col >= 0 && MyStepRTB.EditMode) // Only if a Cell is Selected - { - int row = MyFlexGrid.Row; - int col = MyFlexGrid.Col; - //SaveContents(); - DoNotRefresh = true; - MyStepRTB.Rtf = MyStepRTB.DoNewLinkInGridCell(); - DoNotRefresh = false; - MyFlexGrid.Row = row; - MyFlexGrid.Col = col; - MyFlexGrid[MyFlexGrid.Row, MyFlexGrid.Col] = MyStepRTB.Rtf; - } - if (!MyFlexGrid.IsDirty) return; - SaveContents(); - IsSaving = false; - } - #endregion - #region Miscellaneous Support - internal void SetSearchCell(string SearchString) - { - // Walk thru grid to find first occurance of SearchString and set that cell for - // edit. - int r = 0; - int c = 0; - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - if (MyFlexGrid[r, c] != null) - { - MyFlexGrid.StartEditing(r, c); - TableCellEditor tce = MyFlexGrid.TableCellEditor; - // note that this method is only used from Search Results. - // The search query will handle the case sensitivity, so - // we can just see if contains the string without considering - // case sensitivity. - if (tce.Text.ToUpper().Contains(SearchString.ToUpper())) - return; - } - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - } - } - - #endregion - } -} diff --git a/PROMS/Volian.Controls.Library/GridItem.cs.org b/PROMS/Volian.Controls.Library/GridItem.cs.org deleted file mode 100644 index 55f48414..00000000 --- a/PROMS/Volian.Controls.Library/GridItem.cs.org +++ /dev/null @@ -1,1312 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Text.RegularExpressions; -//using System.IO; -using System.Windows.Forms; -using System.Xml; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; -using C1.Win.C1FlexGrid; - -namespace Volian.Controls.Library -{ - public partial class GridItem : EditItem - { - #region Fields - private bool _IsSaving; - public bool IsSaving - { - get { return _IsSaving; } - set { _IsSaving = value; } - } - public VlnFlexGrid MyFlexGrid - { - get { return _MyFlexGrid; } - set { _MyFlexGrid = value; } - } - private int _GridMargin = 11; - /// - /// Margin between the EditItem and the VlnFlexGrid. Appears on the Right. - /// Will allow space to draw a Change Bar on the right side of the EditItem. - /// - public int GridMargin - { - get { return _GridMargin; } - set { _GridMargin = value; } - } - #endregion - - #region Event Handlers - /// - /// Raises an ItemClick event when the user clicks on the Tab - /// - /// - /// - private void lblTab_MouseDown(object sender, MouseEventArgs e) - { - MyStepPanel.OnItemClick(this, new StepPanelEventArgs(this, e)); - } - void MyFlexGrid_Resize(object sender, EventArgs e) - { - if (MyFlexGrid.ReadingXml) return; - this.Size = new Size(MyFlexGrid.Width + GridMargin, MyFlexGrid.Height + GridMargin); - AdjustTableWidthAndLocation(); - AdjustLocation(); - } - void MyFlexGrid_Enter(object sender, EventArgs e) - { - Console.WriteLine("GridItem MyFlexGrid_Enter"); - if (MyStepPanel.DisplayItemChanging) return; - MyStepRTB.MyItemInfo = MyItemInfo; // should be in vlnFlexGrid - MyStepPanel.SelectedEditItem = this; - if (MyFlexGrid.IsRoTable) - { - MyFlexGrid.Cols.Fixed = MyFlexGrid.Cols.Count; - MyFlexGrid.Rows.Fixed = MyFlexGrid.Rows.Count; - } - } - void MyFlexGrid_KeyDown(object sender, KeyEventArgs e) - { - switch (e.KeyCode) - { - case Keys.F5: - if (e.Shift) - { - e.Handled = true; - if (!CheckClipboard()) return; // check if 'clipboard' contains a step. - SetMenu("StepPaste"); - } - else if (!e.Control && !e.Alt) - { - e.Handled = true; - CopyStep(); - } - break; - case Keys.Delete: - if (!MyFlexGrid.IsRoTable) - MyFlexGrid.ClearSelectedCellText(); - break; - } - } - void SetMenu(string contentMenu) - { - if (contentMenu == null) - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ClearContextMenu(); - else if (contentMenu == "OpenContextMenu") - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetGridCellContextMenu(); //.SetContextMenu(); - else - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetShortCutContextMenu(contentMenu); - } - void MyFlexGrid_CursorMovement(object sender, VlnFlexGridCursorMovementEventArgs args) - { - MyStepPanel.CursorMovement(this,new Point(0,0), args.Key); - } - void MyStepRTB_LinkModifyTran(object sender, StepPanelLinkEventArgs args) - { - MyStepPanel.OnLinkModifyTran(sender, args); - } - void MyStepRTB_LinkModifyRO(object sender, StepPanelLinkEventArgs args) - { - MyStepPanel.OnLinkModifyRO(sender, args); - } - void MyStepRTB_LinkGoTo(object sender, StepPanelLinkEventArgs args) - { - MyStepPanel.OnLinkClicked(sender, args); - } - void MyStepRTB_CursorKeyPress(object sender, KeyEventArgs args) - { - MyStepPanel.StepCursorKeys(this, args); - } - void MyStepRTB_AdjustTableWidth(object sender, StepRTBTableWidthEventArgs args) - { - //Console.WriteLine("MyStepRTB_AdjustTableWidth"); - //if ((!_MyItemInfo.IsSection && !_MyItemInfo.IsProcedure) && (_MyItemInfo.IsTable || _MyItemInfo.IsFigure)) - if (args.EditMode) - { - int colR = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColRTable, MyItemInfo.ColumnMode); - int widS = /* _WidthAdjust + borderWidth + */ MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, MyItemInfo.ColumnMode); - int wNew = 70 + widS + colR * MyItemInfo.ColumnMode; - if (wNew > ItemWidth) - { - ItemWidth = wNew; - ItemLocation = TableLocation(MyParentEditItem, MyStepSectionLayoutData, wNew); - } - } - else - { - int newwidth = MyFlexGrid.Width; - if (ItemWidth != newwidth) - { - ItemWidth = newwidth; - ItemLocation = TableLocation(MyParentEditItem, MyStepSectionLayoutData, newwidth); - } - } - } - bool MyStepRTB_IsNotCurrentSelection(object sender, EventArgs args) - { - return MyStepPanel.SelectedEditItem != this; - } - - void MyStepRTB_OpenAnnotations(object sender, EventArgs args) - { - OpenAnnotations(); - } - void MyFlexGrid_OpenAnnotations(object sender, EventArgs args) - { - OpenAnnotations(); - } - void MyStepRTB_DoMouseWheel(object sender, MouseEventArgs args) - { - DoMouseWheel(args); - } - void MyStepRTB_DoSaveContents(object sender, EventArgs args) - { - SaveCurrentAndContents(); - } - void MyStepRTB_VisibleChanged(object sender, EventArgs e) - { - if (MyStepRTB == null) return; - MyStepRTB.EditMode = MyStepRTB.Visible; - //Console.WriteLine("MyStepRTB_VisibleChanged {0}", MyStepRTB.Width); - //Console.WriteLine("GridItem: EditMode = {0}", MyStepRTB.EditMode); - } - void MyStepRTB_ReturnToEditor(object sender, EventArgs args) - { - //Console.WriteLine("MyStepRTB_ReturnToEditor"); - MyFlexGrid.Focus(); - MyFlexGrid.StartEditing(); - } - void MyFlexGrid_Click(object sender, EventArgs e) - { - MyFlexGrid.Focus(); - Console.WriteLine("GridItem MyFlexGrid_Click {0}, {1}, {2}, {3}", MyFlexGrid.Row, MyFlexGrid.Col, MyStepPanel.Location, MyFlexGrid.TableCellEditor.Location); - //ScrollToCenter(); - //MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ToggleTableDesignButtons(false); - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetRibbonForGrid(); - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetTableButtonsForMergeRangeSelection(); - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetGridContextMenu(); - } - void MyStepRTB_EditModeChanged(object sender, EventArgs args) - { - Console.WriteLine("GridItem MyStepRTB_EditModeChanged"); - AdjustColorsForEditMode(); - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetRibbonForGrid(); - } - - private void AdjustColorsForEditMode() - { - MyFlexGrid.StyleBackColor = Color.White; - if (MyStepRTB.EditMode) - { - MyFlexGrid.Styles["Focus"].ForeColor = MyFlexGrid.Styles["Focus"].BackColor = - MyFlexGrid.Styles["Highlight"].ForeColor = MyFlexGrid.Styles["Highlight"].BackColor = Color.SkyBlue; - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetRibbonForGridCellIndent(); - } - else - { - MyFlexGrid.Styles["Focus"].ForeColor = MyFlexGrid.Styles["Highlight"].ForeColor = Color.Black; - MyFlexGrid.Styles["Focus"].BackColor = MyFlexGrid.Styles["Highlight"].BackColor = Color.LightCyan; - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetRibbonForGridCellIndentClear(); - } - } - private string _OrigRtf; // used to store original rtf to allow for 'escape' key restore - void MyFlexGrid_SelChange(object sender, EventArgs e) - { - Console.WriteLine("GridItem MyFlexGrid_SelChange {0}, {1}, {2}, {3}", MyFlexGrid.Row, MyFlexGrid.Col, MyStepPanel.Location, MyFlexGrid.TableCellEditor.Location); - //if (Initializing) return; - //Volian.Base.Library.vlnStackTrace.ShowStackLocal("MyFlexGrid_SelChange {0}",MyFlexGrid.Selection); - RTBLastFocus = false; - MyStepRTB.Visible = false; // Hide the editor if the Selection Changes - if (Initializing) return; - if (MyFlexGrid.Selection.IsSingleCell && MyFlexGrid.Row >= 0 && MyFlexGrid.Col >= 0) - { - object obj = MyFlexGrid[MyFlexGrid.Row, MyFlexGrid.Col]; - _OrigRtf = obj == null ? string.Empty : obj.ToString(); - } - } - void MyStepRTB_KeyDown(object sender, KeyEventArgs e) - { - if (!e.Control && !e.Shift && !e.Alt && e.KeyCode == Keys.Escape && MyStepRTB.EditMode) - { - MyStepRTB.Rtf = _OrigRtf; - MyFlexGrid.Select(MyFlexGrid.Selection); - } - } - private string MyFlexGrid_AdjustPastedText(object sender, VlnFlexGridPasteEventArgs args) - { - string tmpForLink = args.Text; - tmpForLink = Regex.Replace(tmpForLink, @"#Link:ReferencedObject:[0-9]+ ", @"#Link:ReferencedObject: "); - tmpForLink = Regex.Replace(tmpForLink, @"#Link:Transition:([0-9]+) [0-9]+ ", @"#Link:Transition:$1 "); - tmpForLink = Regex.Replace(tmpForLink, @"#Link:TransitionRange:([0-9]+) [0-9]+ ", @"#Link:TransitionRange:$1 "); - return tmpForLink; - } - #endregion // Event Handlers - #region Constructors - public GridItem() - { - InitializeComponent(); - } - public GridItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand) - { - InitializeComponent(); - SetupEventHandlers(); - SetupEditItem(itemInfo, myStepPanel, myParentEditItem, myChildRelation, expand, null, false); - } - public GridItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand, EditItem nextEditItem) - { - InitializeComponent(); - SetupEventHandlers(); - SetupEditItem(itemInfo, myStepPanel, myParentEditItem, myChildRelation, expand, nextEditItem, false); - } - private void SetupEventHandlers() - { - this.MyFlexGrid.Resize += new EventHandler(MyFlexGrid_Resize); - this.MyFlexGrid.Enter += new EventHandler(MyFlexGrid_Enter); - this.MyFlexGrid.CursorMovement += new VlnFlexGridCursorMovementEvent(MyFlexGrid_CursorMovement); - this.MyFlexGrid.OpenAnnotations += new VlnFlexGridEvent(MyFlexGrid_OpenAnnotations); - this.MyFlexGrid.KeyDown +=new KeyEventHandler(MyFlexGrid_KeyDown); - this.MyStepRTB.LinkGoTo += new StepRTBLinkEvent(MyStepRTB_LinkGoTo); - this.MyStepRTB.LinkModifyRO += new StepRTBLinkEvent(MyStepRTB_LinkModifyRO); - this.MyStepRTB.LinkModifyTran += new StepRTBLinkEvent(MyStepRTB_LinkModifyTran); - this.MyStepRTB.CursorKeyPress += new StepRTBCursorKeysEvent(MyStepRTB_CursorKeyPress); - this.MyStepRTB.AdjustTableWidth += new StepRTBTableWidthEvent(MyStepRTB_AdjustTableWidth); - this.MyStepRTB.IsNotCurrentSelection += new StepRTBBooleanEvent(MyStepRTB_IsNotCurrentSelection); - this.MyStepRTB.OpenAnnotations += new StepRTBEvent(MyStepRTB_OpenAnnotations); - this.MyStepRTB.DoMouseWheel += new StepRTBMouseEvent(MyStepRTB_DoMouseWheel); - this.MyStepRTB.DoSaveContents += new StepRTBEvent(MyStepRTB_DoSaveContents); - this.MyStepRTB.VisibleChanged += new EventHandler(MyStepRTB_VisibleChanged); - this.MyStepRTB.ReturnToEditor += new StepRTBEvent(MyStepRTB_ReturnToEditor); - this.MyFlexGrid.Click += new EventHandler(MyFlexGrid_Click); - this.MyStepRTB.EditModeChanged += new StepRTBEvent(MyStepRTB_EditModeChanged); - this.MyStepRTB.KeyDown += new KeyEventHandler(MyStepRTB_KeyDown); - this.MyFlexGrid.SelChange += new EventHandler(MyFlexGrid_SelChange); - this.MyStepRTB.GotFocus += new EventHandler(MyStepRTB_GotFocus); - this.MyStepRTB.RoInsert += new StepRTBRoEvent(MyStepRTB_RoInsert); - this.MyFlexGrid.AdjustPastedText += new VlnFlexGridPasteEvent(MyFlexGrid_AdjustPastedText); - this.MyStepRTB.SetMenu += new StepRTBMenuEvent(MyStepRTB_SetMenu); - this.MyStepRTB.OpenContextMenu += new StepRTBLocationEvent(MyStepRTB_OpenContextMenu); - this.MyFlexGrid.EnterKeyPressed += new VlnFlexGridkeyEvent(MyFlexGrid_EnterKeyPressed); - //this.MyStepRTB.EnterKeyPressed += new StepRTBCursorKeysEvent(MyStepRTB_EnterKeyPressed); - // This Resize event has been useful for debugging purposes numerous times - // - //this.MyStepRTB.Resize += new EventHandler(MyStepRTB_Resize); - } - - //void MyStepRTB_EnterKeyPressed(object sender, KeyEventArgs args) - //{ - // args.Handled = true; - // MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ProcessEnterKey(); - //} - - void MyFlexGrid_EnterKeyPressed(object sender, KeyEventArgs args) - { - args.Handled = true; - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ProcessEnterKey(); - } - - void MyStepRTB_OpenContextMenu(object sender, StepRTBLocationEventArgs args) - { - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.OpenContextMenu(args.Location); - } - - void MyStepRTB_SetMenu(object sender, StepRTBMenuEventArgs args) - { - SetMenu(args.MenuGroup); - } - - // This Resize event been useful for debugging purposes numerous times - // - //void MyStepRTB_Resize(object sender, EventArgs e) - //{ - // if (MyStepRTB.Visible) - // { - // //Volian.Base.Library.vlnStackTrace.ShowStack("MyStepRTB_Resize"); - // Console.WriteLine("MyStepRTB_Resize {0}", MyStepRTB.Width); - // } - //} - void MyStepRTB_RoInsert(object sender, StepRTBRoEventArgs args) - { - //Console.WriteLine("GridItem - Enter MyStepRTB_RoInsert"); - if (MyFlexGrid.IsRoTable) - { - MyFlexGrid.Visible = false; - MyFlexGrid.ConvertTableROToGrid(args.ValText, args.RODbID, args.ROID); - MyFlexGrid.FixTableCellsHeightWidth(); - MyFlexGrid.AdjustGridControlSize(); - MyFlexGrid.Visible = true; - //MyFlexGrid.MergedRanges.Clear(); - //MyFlexGrid.Clear(); - //ConvertTableToGrid(args.RawValText, args.RODbID, args.ROID); - //MyFlexGrid.RODbId = args.RODbID; - //MyFlexGrid.ROID = args.ROID; - //SaveContents(); - } - else - { - int sel = MyStepRTB.SelectionStart + args.ValText.Length;// +args.LinkText.Length;//MyStepRTB.SelectionLength; // Remember where the link is being added - //Console.WriteLine("ValText {0} LinkText {1}", args.ValText, args.LinkText); - //Console.WriteLine("selstart {0} len {1}", MyStepRTB.SelectionStart, args.LinkText.Length); - CellRange cr = MyFlexGrid.Selection; - MyStepRTB.UpdateStepRtb(args.LinkText, args.ValText); - MyFlexGrid.StartEditing(cr.r1, cr.c1); // get back to edit mode - MyStepRTB.Select(sel, 0);// Move cursor to end of LINK - SendKeys.Send("{RIGHT}"); // this will un-select the RO - SendKeys.Flush(); - } - //Console.WriteLine("GridItem - Exit MyStepRTB_RoInsert"); - } - void MyStepRTB_GotFocus(object sender, EventArgs e) - { - RTBLastFocus = true; - } - #endregion - #region Override Method and Properties - public override int BorderWidth { get { return (MyFlexGrid.Width - MyFlexGrid.ClientRectangle.Width); } } - //private bool _OnlyOnce = false; - //protected override void OnPaint(PaintEventArgs e) - //{ - // base.OnPaint(e); - // if (!this.Enabled && !_OnlyOnce) - // { - // _OnlyOnce = true; - // _MyDisablePanel.SendToBack(); - // _MyDisablePanel.BringToFront(); - // _OnlyOnce = false; - // } - //} - protected override void OnEnabledChanged(EventArgs e) - { - base.OnEnabledChanged(e); - if (this.Enabled) - { - _MyDisablePanel.SendToBack(); - _MyDisablePanel.Visible = false; - } - else - { - _MyDisablePanel.Visible = true; - Rectangle rect = new Rectangle(0, 0, this.MyFlexGrid.Width, this.MyFlexGrid.Height); - Bitmap bmp = new Bitmap(this.MyFlexGrid.Width, this.MyFlexGrid.Height); - this.MyFlexGrid.DrawToBitmap(bmp, rect); - using (Graphics gr = Graphics.FromImage(bmp)) - { - gr.CompositingMode = System.Drawing.Drawing2D.CompositingMode.SourceOver; - gr.FillRectangle(new SolidBrush(Color.FromArgb(128, Color.FromKnownColor(KnownColor.ButtonFace))), rect); - //gr.FillEllipse(Brushes.Red, 10, 10, 10, 10); - } - _MyDisablePanel.Location = this.MyFlexGrid.Location; - _MyDisablePanel.Size = this.MyFlexGrid.Size; - _MyDisablePanel.BackgroundImage = bmp; - _MyDisablePanel.BringToFront(); - } - } - public override Point ContentLocation - { - get { return new Point(Location.X + MyFlexGrid.Left, Location.Y); } - set { Location = new Point(value.X - MyFlexGrid.Left, value.Y); } - } - public override string TabFormat { get { return _TabFormat; } set { _TabFormat = value; } } - public override void AdjustTableWidthAndLocation() - { - //_MyStepRTB.Font = MyStepData.Font.WindowsFont; - //ItemWidth = (int)GetTableWidth(MyStepRTB.Font, MyItemInfo.MyContent.Text, true); - //ItemWidth = MyFlexGrid.Width; - //ItemLocation = new Point(50, _MyParentEditItem.Bottom); - - // We had a table that was in a funky state. This allows it to appear in editor so - // that is could be deleted. - if (_MyParentEditItem == null) return; - Point newLocation = TableLocation(_MyParentEditItem, MyStepSectionLayoutData, ItemWidth); - if (!newLocation.Equals(ItemLocation)) ItemLocation = newLocation; - } - public override void SetToolTip(string tip) - { - DevComponents.DotNetBar.SuperTooltipInfo tpi = new DevComponents.DotNetBar.SuperTooltipInfo("", "", tip, null, null, DevComponents.DotNetBar.eTooltipColor.Lemon); - _MyToolTip.MinimumTooltipSize = new Size(0, 24); - _MyToolTip.TooltipDuration = 3; - //_MyToolTip.SetSuperTooltip(MyStepRTB, tpi); - _MyToolTip.SetSuperTooltip(MyFlexGrid, tpi); - } - private bool DoNotRefresh = false; - public override void RefreshContent() - { - if (DoNotRefresh) return; - Console.WriteLine("GridItem RefreshContent"); - _ActiveMode = MyFlexGrid.ContainsFocus; - using (Grid myGrid = MyItemInfo.MyContent.MyGrid.Get()) - { - MyItemInfo.MyContent.MyGrid.ResetContent(myGrid); - } - RefreshDisplay(_ActiveMode); - IdentifyMe(false); - } - public override int TableWidth { get { return 0; } } // DONE - public override int ItemLeft - { - get { return Left + lblTab.Left; } - set { Left = value - lblTab.Left; } - } - public override int ContentLeft { get { return Left + MyFlexGrid.Left; } } - public override int ContentWidth - { - get { return MyFlexGrid.Width; } - set - { - Width = value + lblTab.Left + lblTab.Width; - } - } - public override Point ItemLocation - { - get { return new Point(Location.X + lblTab.Left, Location.Y); } - set { Location = new Point(value.X - lblTab.Left, value.Y); } - } - public override int ItemWidth - { - get { return Width - lblTab.Left; } - set - { - Width = GridMargin + value + lblTab.Left; - } - } - public override void RefreshOrdinal() - { - TabFormat = null; // Reset Tab - } - public override bool Expanded - { - get {return !Colapsing;} - set {;} // Tables are always expanded. - } - public override void RefreshTab() { TabFormat = null;} - public override void SetFocus() { MyFlexGrid.Focus();} - public override void SaveContents() - { - if (!MyFlexGrid.IsDirty && !IsSaving) return; - List RtfRoUsageList = new List(); - List RtfTransList = new List(); - List RtfTransPageNumList = new List(); - - int r = 0; - int c = 0; - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - - string srchtxt = MyFlexGrid.GetSearchableText(); - // find the rousages within the grid cell. If this is an ro table, there will only be one usage - // if it is a modify and there will be no usages if it is new (the usage gets created on the save) - if (!MyFlexGrid.IsRoTable) - { - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - if (MyFlexGrid[r, c] != null) - { - // see if there are any links and save these so that any deleted ROs or transitions in the - // steprtb can have associated usages/transitions records removed from the database. - string lookFor = string.Format(@""); - MatchCollection matches = Regex.Matches((string)MyFlexGrid[r, c], lookFor); - for (int i = matches.Count - 1; i >= 0; i--) - { - Match m = matches[i]; - if (m != null && m.Groups.Count > 7 && m.Groups[7].ToString() == "ReferencedObject") - { - Regex regRefObj = new Regex(@"\#Link\:ReferencedObject\:([0-9]*) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline); - Match myMatch = regRefObj.Match(m.Value); - if (myMatch.Success) - { - int usgid = int.Parse(myMatch.Groups[1].Value); - RtfRoUsageList.Add(usgid); - } - } - if (m != null && m.Groups.Count > 7 && m.Groups[7].ToString().StartsWith("Transition")) - { - Regex regRefObj = new Regex(@"\#Link\:Transition[a-zA-Z]*\:([0-9]*) ([0-9]*) ([0-9]*)", RegexOptions.Singleline); - Match myMatch = regRefObj.Match(m.Value); - if (myMatch.Success) - { - int tid = int.Parse(myMatch.Groups[2].Value); - RtfTransList.Add(tid); - int myIndex = m.Groups[4].Index; - int myLength = m.Groups[4].Length; - if (m.Groups[3].Value != " ") - { - myIndex = m.Groups[3].Index; - myLength += m.Groups[3].Length; - } - string gg = ((string)MyFlexGrid[r, c]).Substring(myIndex, myLength); - if (gg.Contains("(Page ~)")) RtfTransPageNumList.Add(tid); - } - } - } - } - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - } - } - else - { - // new roid is in flexgrid.roid. Compare to previous, if there was a previous. If there - // is a modify RO, then need to delete the existing rousage record because a new usage - // record will get created that contains the selected ROID. - Regex regRefObj = new Regex(@"\#Link\:ReferencedObject\:([0-9]*) ([0-9a-zA-Z]*) ([0-9]*)", RegexOptions.Singleline); - Match myMatch = regRefObj.Match(MyItemInfo.MyContent.Text); - if (myMatch.Success) - { - int usgid = int.Parse(myMatch.Groups[1].Value); - RoUsageInfo rui = RoUsageInfo.Get(usgid); - if (rui.ROID == MyFlexGrid.ROID)RtfRoUsageList.Add(usgid); - } - } - // compare ro usages & transitions from database and list from grid contents - // if in both lists, don't do anything - // if only in database list, delete usage. - // never will have condition where it is not in database list, but is in steprtb text list (this - // case is handled when ro is inserted. - if (MyItemInfo.MyContent.ContentRoUsages != null) - { - List delRoUsgs = new List(); - foreach (RoUsageInfo ru in MyItemInfo.MyContent.ContentRoUsages) - if (!RtfRoUsageList.Contains(ru.ROUsageID)) delRoUsgs.Add(ru.ROUsageID); - foreach (int dRU in delRoUsgs) RoUsage.Delete(dRU); - } - if (MyItemInfo.MyContent.ContentTransitions != null) - { - List delTrans = new List(); - foreach (TransitionInfo ti in MyItemInfo.MyContent.ContentTransitions) - { - if (!RtfTransList.Contains(ti.TransitionID)) delTrans.Add(ti.TransitionID); - else if (RtfTransPageNumList.Contains(ti.TransitionID)) - { - using (Transition t = ti.Get()) - { - t.Config = ""; - t.Save(); - } - } - } - foreach (int dt in delTrans) Transition.Delete(dt); - } - - bool success = FinishSave(srchtxt); - if (success && !MyFlexGrid.IsRoTable) - { - MyStepRTB.FindAllLinks(); - MyStepRTB.OrigRTF = MyStepRTB.Rtf; - MyStepRTB.ClearUndo(); - } - } - private string DoLinkForRoTable(Item itm) - { - // if no ro has been defined yet, just return null - if (MyFlexGrid.ROID == null) return null; - ContentRoUsage rousg = null; -// using (Item itm = MyItemInfo.Get()) -// { - using (RODb rodb = RODb.GetJustRoDb(MyFlexGrid.RODbId)) - { - string padroid = (MyFlexGrid.ROID.Length <= 12) ? MyFlexGrid.ROID + "0000" : MyFlexGrid.ROID; - rousg = itm.MyContent.ContentRoUsages.Add(MyFlexGrid.ROID, rodb); - } - //itm.Save(); -// } - MyItemInfo.MyContent.RefreshContentRoUsages(); - return string.Format(@"#Link:ReferencedObject:{0} {1} {2}", rousg.ROUsageID, MyFlexGrid.ROID, MyFlexGrid.RODbId); - } - //private void ConvertTableToGrid(string valtext, int rodbid, string roid) - //{ - // VE_Font vefont = MyItemInfo.GetItemFont(); - // MyFlexGrid.Font = vefont.WindowsFont; - // //Initializing = true; - // MyFlexGrid.MergedRanges.Clear(); - // MyFlexGrid.Clear(); - // MyFlexGrid.ParseTableFromText(valtext); - // MyFlexGrid.AutoSizeCols(); - // MyFlexGrid.AutoSizeRows(); - // MyFlexGrid.MakeRTFcells(); - // MyFlexGrid.RODbId = rodbid; - // MyFlexGrid.ROID = roid; - // MyFlexGrid.IsRoTable = true; - // //Initializing = false; - // SaveContents(); - //} - private bool FinishSave(string searchableText) - { - // Just in case if the grid was in a mode to change sizes, clear out that setting - // in the grid: - MyFlexGrid.Cols.Fixed = 0; - MyFlexGrid.Rows.Fixed = 0; - MyFlexGrid.StyleBackColor = Color.White; - - string xml = MyFlexGrid.GetXMLData(); - using (Item itm = MyItemInfo.Get()) - { - //if (!MatchingXML(itm.MyContent.MyGrid.Data, xml)) - //{ - // CompareXML(itm.MyContent.MyGrid.Data, xml); - itm.MyContent.MyGrid.Data = xml; - itm.MyContent.MyGrid.DTS = DateTime.Now; - itm.MyContent.MyGrid.UserID = Volian.Base.Library.VlnSettings.UserID; - //} - // if this is the initial save of an ro table, then the 'DoLinkForRoTable' will - // create the usage for it. this code gets run on modify of the ro table and also - // on exit of the griditem. We don't want to save the ro usage again, if it's already - // been saved. - if (MyFlexGrid.IsRoTable && MyFlexGrid.ROID != null && itm.MyContent.ContentRoUsageCount < 1) - { - searchableText = string.Format(@"\v\v0 ", searchableText, DoLinkForRoTable(itm)); - //if (itm.MyContent.Text != searchableText) - //{ - itm.MyContent.Text = searchableText; - itm.MyContent.UserID = Volian.Base.Library.VlnSettings.UserID; - itm.MyContent.DTS = DateTime.Now; - //} - } - else - { - itm.MyContent.Text = searchableText; - itm.MyContent.UserID = Volian.Base.Library.VlnSettings.UserID; - itm.MyContent.DTS = DateTime.Now; - } - if (!MyFlexGrid.IsRoTable) itm.MyContent.Text = searchableText; - - // if the plant has the change id option, the change id was entered when the program started. - // this should be saved for every piece of edited data. Note that the set of config - // item Step_MultipleChangeID has the save built in to it. - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds && - !this.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.EditorialChange) - { - StepConfig sc = itm.MyConfig as StepConfig; - if (sc == null) - sc = new StepConfig(); - sc.Step_ChangeID = this.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.ChgId; - if (itm.MyConfig == null) itm.MyContent.Config = sc.ToString(); - } - itm.Save(); - - StepConfig myItmCfg =MyItemInfo.MyConfig as StepConfig; - // We saved changes made to some step text. Reset the change bar override. - // IF there is a step config remove the change bar override by setting the CBOverride value to null - // This fixes a problem reported by Farly where if the change bar or overridden to be off, the next - // time a change was made, the change bar remained turned off. - if (myItmCfg != null) - myItmCfg.Step_CBOverride = null; // clear the change bar override - - MyItemInfo.MyContent.MyGrid.ResetContent(itm.MyContent.MyGrid); - } - return true; - } - private void CompareXML(string v1, string v2) - { - v1 = Regex.Replace(v1, "\r\n *", ""); - v1 = Regex.Replace(v1, "version *= *\"[^\"]*\"", ""); - v2 = Regex.Replace(v2, "\r\n *", ""); - v2 = Regex.Replace(v2, "version *= *\"[^\"]*\"", ""); - int iStart = 0; - int l1 = v1.Length; - int l2 = v2.Length; - int l3 = Math.Min(l1, l2); - while (iStart < l3 && v1[iStart] == v2[iStart]) - iStart++; - int iEnd1 = l1 - 1; - int iEnd2 = l2 - 1; - while (iStart < iEnd1 && iStart < iEnd2 && v1[iEnd1] == v2[iEnd2]) - { - iEnd1--; - iEnd2--; - } - if (iStart < iEnd1) Console.WriteLine("v1 = {0}", v1.Substring(iStart, iEnd1 - iStart)); - if (iStart < iEnd2) Console.WriteLine("v2 = {0}", v2.Substring(iStart, iEnd2 - iStart)); - - } - private bool MatchingXML(string v1, string v2) - { - v1 = Regex.Replace(v1, "\r\n *", ""); - v1 = Regex.Replace(v1, "version *= *\"[^\"]*\"", ""); - v2 = Regex.Replace(v2, "\r\n *", ""); - v2 = Regex.Replace(v2, "version *= *\"[^\"]*\"", ""); - int l1 = v1.Length; - int l2 = v2.Length; - if(l1 != l2 )return false; - //int l3 = Math.Min(l1, l2); - //int l4 = Math.Max(l1, l2); - for (int i = 0; i < l1; i++) - if (v1[i] != v2[i]) return false; - return true; - //Console.WriteLine("{0} - {1},{2}",i, showChar(v1[i]), showChar(v2[i])); - //if(l1 > l3)Console.WriteLine("v1 = {0}",v1.Substring(l3)); - //if(l2 > l3)Console.WriteLine("v2 = {0}",v2.Substring(l3)); - } - //private object showChar(char c) - //{ - // int i = (int)c; - // if (i <= 32) - // return string.Format("<{0}>", i); - // else - // return c.ToString(); - //} - public void BasicSave() - { - using (Item itm = MyItemInfo.Get()) - { - itm.MyContent.MyGrid.Data = MyFlexGrid.GetXMLData(); - itm.Save(); - //MyItemInfo.MyContent.MyGrid.ResetContent(itm.MyContent.MyGrid); - } - } - public override bool CanExpand { get { return false; } set { ;} } - public override void HandleResize() { ;} // DONE - public override void MatchExpanded() { ;} // DONE - public override void ItemSelect() - { - Console.WriteLine("GridItem ItemSelect {0} {1}",MyFlexGrid.Row, MyFlexGrid.Col); - // Was getting an Error that _MyStepRTB was Disposed RHM 20101217 - if (!MyFlexGrid.Disposing) - { - Focus(); - MyFlexGrid.Focus(); - if (!MyFlexGrid.IsRoTable) // Table ROs are none editable - don't select a table cell - { - try - { - MyFlexGrid.Select(0, 0); - MyFlexGrid.FirstEntry = true; // to fix a problem with initial mouse click into table - } - catch (Exception ex) - { - MessageBox.Show("The content of this table is corrupted. You will either need to restore a previous version or delete it.", "Table Corrupted", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - } - } - else - { - _MyLog.WarnFormat("Attempt to give Focus to Disposed Object {0}", MyID); - } - ScrollToCenter(); - } - public override void ItemShow() - { - MyFlexGrid.Focus(); - ScrollToCenter(); - } - public StepRTB DisplayRoStepRTB; - public override StepRTB MyStepRTB - { - get - { - return MyFlexGrid.TableCellEditor; - } - } - public override DialogResult ReplaceText(string rpltxt, string fndstr, bool caseSensitive, bool matchWholeWord, bool reverse, bool prompt, IWin32Window fndrpldlg) - { - int r = MyFlexGrid.Row; - int c = MyFlexGrid.Col; - - if (!reverse) - { - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - int ss = MyStepRTB.SelectionStart; - int sl = MyStepRTB.SelectionLength; - MyFlexGrid.StartEditing(); - MyStepRTB.Select(ss, sl); // need to reset selection because startediting positions to end. - if (MyStepRTB.ReadOnly) - { - MessageBox.Show("Cannot replace linked text!", "Find/Replace", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); - return DialogResult.Yes; - } - string oldRtf = MyStepRTB.Rtf; - DialogResult dr = MyStepRTB.ReplaceText(rpltxt, fndstr, caseSensitive, matchWholeWord, reverse, prompt, fndrpldlg); - if (oldRtf != MyStepRTB.Rtf) MyFlexGrid[r, c] = MyStepRTB.Rtf; - if (dr == DialogResult.Yes || dr == DialogResult.Cancel) return dr; - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - if (r < h) - { - MyFlexGrid.Select(r, c); - MyStepRTB.Select(0, 0); - } - } - } - else // reverse - { - while (r >= 0) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - int ss = MyStepRTB.SelectionStart; - int sl = MyStepRTB.SelectionLength; - MyFlexGrid.StartEditing(); - MyStepRTB.Select(ss, sl); - if (MyStepRTB.ReadOnly) - { - MessageBox.Show("Cannot replace linked text!", "Find/Replace", MessageBoxButtons.OK, MessageBoxIcon.Warning, MessageBoxDefaultButton.Button1, MessageBoxOptions.DefaultDesktopOnly); - return DialogResult.Yes; - } - string oldRtf = MyStepRTB.Rtf; - DialogResult dr = MyStepRTB.ReplaceText(rpltxt, fndstr, caseSensitive, matchWholeWord, reverse, prompt, fndrpldlg); - if (oldRtf != MyStepRTB.Rtf) MyFlexGrid[r, c] = MyStepRTB.Rtf; - if (dr == DialogResult.Yes || dr == DialogResult.Cancel) return dr; - } - c = c - 1; - if (c < 0) - { - c = MyFlexGrid.Cols.Count - 1; - r = r - 1; - } - cr = MyFlexGrid.GetMergedRange(r, c); - if (r >= 0 && cr.r1 == r && cr.c1 == c) - { - MyFlexGrid.Select(r, c); - MyFlexGrid.StartEditing(); - MyStepRTB.Select(MyStepRTB.Text.Length, 0); - } - } - } - return DialogResult.No; - } - public override bool FindText(string str, bool caseSensitive, bool matchWholeWord, bool reverse) - { - if (MyFlexGrid.Row < 0) MyFlexGrid.Row = (reverse) ? MyFlexGrid.Rows.Count - 1 : 0; - if (MyFlexGrid.Col < 0) MyFlexGrid.Col = (reverse) ? MyFlexGrid.Cols.Count - 1 : 0; - int r = MyFlexGrid.Row; - int c = MyFlexGrid.Col; - if (!reverse) - { - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - int ss = MyStepRTB.SelectionStart + MyStepRTB.SelectionLength; - MyFlexGrid.StartEditing(); - MyStepRTB.Select(ss, 0); // need to reset selection because startediting positions to end. - bool scn = MyStepRTB.FindText(str, caseSensitive, matchWholeWord, reverse); - if (scn) return true; - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - if (r < h) - { - MyFlexGrid.Select(r, c); - MyStepRTB.Select(0, 0); - } - } - } - else - { - while (r >= 0) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - int ss = MyStepRTB.SelectionStart; - MyFlexGrid.StartEditing(); - MyStepRTB.Select(ss, 0); - bool scn = MyStepRTB.FindText(str, caseSensitive, matchWholeWord, reverse); - if (scn) return true; - } - c = c - 1; - if (c < 0) - { - c = MyFlexGrid.Cols.Count - 1; - r = r - 1; - } - cr = MyFlexGrid.GetMergedRange(r, c); - if (r >= 0 && cr.r1 == r && cr.c1 == c) - { - MyFlexGrid.Select(r, c); - MyFlexGrid.StartEditing(); - MyStepRTB.Select(MyStepRTB.Text.Length, 0); - } - } - } - return false; - } - public override void PositionToEnd() - { - int r = MyFlexGrid.Rows.Count - 1; - int c = MyFlexGrid.Cols.Count - 1; - MyFlexGrid.Select(r, c); - while (r >= 0) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - MyFlexGrid.StartEditing(); - return; - } - c = c - 1; - if (c < 0) - { - c = MyFlexGrid.Cols.Count - 1; - r = r - 1; - } - if (r >= 0) - { - MyFlexGrid.Select(r, c); - MyStepRTB.Select(MyStepRTB.Text.Length, 0); - } - } - } - public override void PositionToStart() - { - MyFlexGrid.Select(0,0); - MyFlexGrid.StartEditing(); - MyStepRTB.Select(0, 0); - } - public override string SelectedTextForFind - { - get - { - StepRTB srtb = MyStepRTB; - if (srtb.SelectionLength > 0) - { - if (srtb.IsSelectionLinked(srtb.SelectionStart, srtb.SelectionLength)) - return srtb.SelectedText.Substring(0, srtb.SelectedText.IndexOf("#Link")); - else - return srtb.SelectedText; - } - return null; - } - } - public override bool SpellCheckNext() - { - if (MyFlexGrid.IsRoTable) return true; // skip RO Tables - int r = MyFlexGrid.Row; - int c = MyFlexGrid.Col; - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - MyFlexGrid.Select(r, c); - MyFlexGrid.StartEditing(); - string oldRtf = MyStepRTB.Rtf; - bool scn = MyStepRTB.SpellCheckNext(); - if (oldRtf != MyStepRTB.Rtf) MyFlexGrid[r, c] = MyStepRTB.Rtf; - if (!scn) return false; - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - } - return true; - } - public override void IdentifyMe(bool highlight) - { - if (highlight) - { - MyFlexGrid.StyleBackColor = Color.Gray; - MyFlexGrid.Styles.Fixed.BackColor = Color.Gray; - } - else - { - MyFlexGrid.Styles.Fixed.BackColor = MyFlexGrid.DefaultFixedBackgroundColor; - MyFlexGrid.StyleBackColor = MyFlexGrid.DefaultCellBackgroundcolor; - if (MyFlexGrid.Focused) // If active Set BackColor to the active color - SetActive(); - else // Otherwise Set the BackColor to either the InactiveColor or the AnnotationColor - { - MyFlexGrid.StyleBackColor = - MyItemInfo.ItemAnnotationCount == 0 ? MyStepPanel.InactiveColor : MyStepPanel.AnnotationColor; - // Turn-off Size adjustment - MyFlexGrid.Cols.Fixed = 0; - MyFlexGrid.Rows.Fixed = 0; - } - } - } - public override void SetActive() - { - Console.WriteLine("GridItem SetActive"); - AdjustColorsForEditMode(); - } - private bool _Empty = false; - public override bool Empty - { - get { return _Empty; } - set { _Empty = value; } - } - private bool _Initializing = false; - public bool Initializing - { - get { return _Initializing; } - set { _Initializing = value; } - } - private bool _ActiveMode = false; - public override void RefreshDisplay(bool activeMode) - { - Console.WriteLine("GridItem RefreshDisplay {0}",activeMode); - _ActiveMode = activeMode; - //XmlDocument xd = new XmlDocument(); - //xd.LoadXml(MyItemInfo.MyContent.MyGrid.Data); - //using (StringReader sr = new StringReader()) - Initializing = true; - MyFlexGrid.LoadGrid(MyItemInfo); - Initializing = false; - MyFlexGrid.KeyActionTab = KeyActionEnum.MoveAcross; - MyFlexGrid.AdjustGridControlSize(); - // When a grid is read from XML, all of the styles are updated to the values in the XML. - // Thus any specific settings need to be set after the grid is read. - MyFlexGrid.Styles["Highlight"].BackColor = Color.LightCyan; - MyFlexGrid.Styles["Focus"].BackColor = Color.LightCyan; - MyFlexGrid.HighLight = activeMode ? C1.Win.C1FlexGrid.HighLightEnum.Always : C1.Win.C1FlexGrid.HighLightEnum.WithFocus; - MyFlexGrid.VwMode = MyStepPanel.VwMode; - } - public override void ToggleEditView(E_ViewMode vwMode) - { - /* - * TODO: - * 1) SaveContents - */ - RefreshDisplay(false); - MyFlexGrid.VwMode = vwMode; - } - public override int TabLeft { get { return lblTab.Left; } set { lblTab.Left = value; } } - public override Font TabFont { get { return lblTab.Font; } set { lblTab.Font = value; } } - public override string TabText { get { return lblTab.Text; } } - public override Point TabLocation { get { return lblTab.Location; } } - public override Font ContentFont { get { return MyFlexGrid.Font; } set { MyFlexGrid.Font = value; } } // TODO how do we know what font tables are in? - public override float ContentTop { get { return MyFlexGrid.Top; } } - public override void SetupHeader(ItemInfo itemInfo) { ;} // tables do not have headers - public override void ShowExpanded() {;} - public override void SetText() - { - // if this is an RO Table, regenerate xml. This is done in the case that - // the rotable was updated by the ro editor. - //if (MyFlexGrid.IsRoTable) RefreshGridData(); - RefreshDisplay(false); - IdentifyMe(false); - } - - //private void RefreshGridData() - //{ - // string ROID = MyFlexGrid.ROID; - // int rodbid = MyFlexGrid.RODbId; - // //MyFlexGrid.Clear(); - // ROFSTLookup MyROFSTLookup = MyItemInfo.MyDocVersion.DocVersionAssociations[0].MyROFst.ROFSTLookup; - // MyFlexGrid.ConvertTableROToGrid(MyROFSTLookup.GetRoValue(ROID), rodbid, ROID); - // //ConvertTableToGrid(MyROFSTLookup.GetRoValue(ROID), rodbid, ROID); - // //MyFlexGrid.RODbId = rodbid; - // //MyFlexGrid.ROID = ROID; - // //MyFlexGrid.IsRoTable = true; - // //SaveContents(); - //} - public override void SetExpandAndExpander(ItemInfo itemInfo) { CanExpand = false; } // can't expand a table - public void SavePastedCellRoTran() - { - if (!MyFlexGrid.GetXMLData().Contains("<NewID>")) return; - BasicSave(); - // need to loop thru all pasted cells: for now do all cells. - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - int r = 0; - int c = 0; - String Rtf = null; - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - Rtf = (string)MyFlexGrid[r, c]; - if (Rtf != null) - { - int startIndx = 0; - while (Rtf.IndexOf("") > -1) - { - // first find the new link and determine whether it's RO or transition. - int indx = Rtf.IndexOf(@"#Link:ReferencedObject:", startIndx); - if (indx > 0) - { - // only look in the substring limited by the first occurrance of [END>. If there is more - // than one, don't get multiple links in the string. - int endindx = Rtf.IndexOf(@"END>", indx) + 4; - Match mro = Regex.Match(Rtf.Substring(indx, endindx - indx), @"([A-Za-z]*):(.*)\[END>"); - string linkstr = mro.Groups[2].Value; - string[] roparts = linkstr.Split(" ".ToCharArray()); - ContentRoUsage rousg = null; - int oldid = -1; - using (Item itm = MyItemInfo.Get()) - { - using (RODb rodb = RODb.GetJustRoDb(Convert.ToInt32(roparts[2]))) - { - rousg = itm.MyContent.ContentRoUsages.Add(roparts[1], rodb); - } - oldid = rousg.ROUsageID; - int newid = Rtf.IndexOf("", indx); - Rtf = Rtf.Remove(newid, 7); - Rtf = Rtf.Insert(newid, string.Format("", rousg.ROUsageID)); - itm.Save(); - Rtf = Rtf.Replace(string.Format("", oldid), rousg.ROUsageID.ToString()); - itm.Save(); - MyItemInfo.MyContent.RefreshContentRoUsages(); - } - startIndx = endindx; - } - else - { - Match mt = Regex.Match(Rtf, @"#Link:Transition:([0-9]+) "); - if (mt.Length <= 0) mt = Regex.Match(Rtf, @"#Link:TransitionRange:([0-9]+) "); - if (mt.Length > 0) - { - int endtindx = Rtf.IndexOf("END>", mt.Index) + 4; - indx = mt.Index + 6; // get past '#Link:" - Match m = Regex.Match(Rtf.Substring(indx, endtindx - indx), @"([A-Za-z]*):(.*)\[END>"); - bool isSingleTran = true; - if (Rtf.Substring(indx, 16).IndexOf("TransitionRange") >= 0) isSingleTran = false; - string linkstr = m.Groups[2].Value; - string[] tparts = linkstr.Split(" ".ToCharArray()); - int type = System.Convert.ToInt32(tparts[0]); - int tr1 = System.Convert.ToInt32(tparts[2]); // tparts[2] is token for tranid - int tr2 = tr1; - if (tparts.Length > 3) - tr2 = System.Convert.ToInt32(tparts[3]); // tparts[3] is token for rangeid - bool dispose1 = false; - Item itm1 = null; - bool dispose2 = false; - Item itm2 = null; - using (Item itm = MyItemInfo.Get()) - { - if (itm.ItemID == tr1) - itm1 = itm; // a transition that points to itself should not dispose - else - { - dispose1 = true; - itm1 = Item.Get(tr1); - } - if (itm.ItemID == tr2) - itm2 = itm; // a transition that points to itself should not dispose - else if (tr1 == tr2) - itm2 = itm1; // if both destinations are the same only dispose the first one - else - { - dispose2 = true; - itm2 = Item.Get(tr2); - } - ContentTransition ct = itm.MyContent.ContentTransitions.Add(itm1, itm2); - //Console.WriteLine("CT {0},{1},{2},{3}", ct.TransitionID, itm.ItemID, itm.MyContent.MyContentUnique, itm.MyContent.ContentTransitions.Count); - ct.TranType = type; - - if (isSingleTran) - ct.IsRange = 0; - else if (tr1 != tr2) - ct.IsRange = 1; - else - ct.IsRange = 2; - - int oldidt = ct.TransitionID; - int newidt = Rtf.IndexOf("", indx); - Rtf = Rtf.Remove(newidt, 7); - Rtf = Rtf.Insert(newidt, string.Format("", ct.TransitionID)); - //Rtf = Rtf.Replace("", string.Format("", ct.TransitionID)); - itm.Save(); - Rtf = Rtf.Replace(string.Format("", oldidt), ct.TransitionID.ToString()); - itm.Save(); - MyItemInfo.MyContent.RefreshContentTransitions(); - } - if (dispose2) itm2.Dispose(); - if (dispose1) itm1.Dispose(); - } - } - } - MyFlexGrid[r, c] = Rtf; - } - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - } - } - public override void SaveCurrentAndContents() - { - IsSaving = true; - if (MyFlexGrid.Row >= 0 && MyFlexGrid.Col >= 0 && MyStepRTB.EditMode) // Only if a Cell is Selected - { - int row = MyFlexGrid.Row; - int col = MyFlexGrid.Col; - //SaveContents(); - DoNotRefresh = true; - MyStepRTB.Rtf = MyStepRTB.DoNewLinkInGridCell(); - DoNotRefresh = false; - MyFlexGrid.Row = row; - MyFlexGrid.Col = col; - MyFlexGrid[MyFlexGrid.Row, MyFlexGrid.Col] = MyStepRTB.Rtf; - } - if (!MyFlexGrid.IsDirty) return; - SaveContents(); - IsSaving = false; - } - #endregion - #region Miscellaneous Support - internal void SetSearchCell(string SearchString) - { - // Walk thru grid to find first occurance of SearchString and set that cell for - // edit. - int r = 0; - int c = 0; - int w = MyFlexGrid.Cols.Count; - int h = MyFlexGrid.Rows.Count; - while (r < h) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - if (MyFlexGrid[r, c] != null) - { - MyFlexGrid.StartEditing(r, c); - TableCellEditor tce = MyFlexGrid.TableCellEditor; - // note that this method is only used from Search Results. - // The search query will handle the case sensitivity, so - // we can just see if contains the string without considering - // case sensitivity. - if (tce.Text.ToUpper().Contains(SearchString.ToUpper())) - return; - } - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - } - } - - #endregion - } -} diff --git a/PROMS/Volian.Controls.Library/IEditItem.cs b/PROMS/Volian.Controls.Library/IEditItem.cs deleted file mode 100644 index 44e0f34a..00000000 --- a/PROMS/Volian.Controls.Library/IEditItem.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; - -namespace Volian.Controls.Library -{ - public abstract partial class EditItem - { - public abstract void SetToolTip(string tip); // { ;} - public abstract void RefreshContent(); // { ; } - public abstract EditItem MyParentEditItem { get; set ; } - public abstract EditItem MyPreviousEditItem { get; set; }//{ get { return null; } set { ;} } - public abstract int ItemLeft { get; set; }//{ get { return 0; } set { ;} } - public abstract int TextLeft { get; }//{ get { return 0; } set { ;} } - public abstract int TextWidth { get; set ; }//{ get { return 0; } set { ;} } - public abstract Point ItemLocation { get; set ; }//{ get { return new Point(0, 0); } set { ;} } - public abstract int ItemWidth { get; set ; }//{ get { return 0; } set { ;} } - public abstract void RefreshOrdinal(); // { ;} - public abstract bool Expanded { get; set ; }//{ get { return false; } set { ;} } - public abstract void RefreshTab(); // { ;} - public abstract void SetFocus(); // { ;} - public abstract void SaveContents(); // { ;} - public abstract bool CanExpand { get; set ; }//{ get { return false; } set { ;} } - public abstract void HandleResize(); // { ;} - public abstract void MatchExpanded(); // { ;} - public abstract void ItemSelect(); // { ;} - public abstract void ItemShow(); // { ;} - public abstract StepRTB MyStepRTB { get; } - public abstract DialogResult ReplaceText(string rpltxt, string fndstr, bool caseSensitive, bool matchWholeWord, bool reverse, bool prompt, IWin32Window fndrpldlg); - public abstract bool FindText(string str, bool caseSensitive, bool matchWholeWord, bool reverse); - public abstract void PositionToEnd(); - public abstract string SelecteTextForFind { get;} - public abstract bool SpellCheckNext(); - public abstract void IdentifyMe(bool highlight); - public abstract void SetActive(); - public abstract bool IsEmpty(); - public abstract void MakeNotEmpty(); - public abstract void RefreshDisplay(bool editMode); - public abstract void ToggleEditView(E_ViewMode vwMode); - } -} diff --git a/PROMS/Volian.Controls.Library/OutlineRTFTable.cs b/PROMS/Volian.Controls.Library/OutlineRTFTable.cs deleted file mode 100644 index 11c9e827..00000000 --- a/PROMS/Volian.Controls.Library/OutlineRTFTable.cs +++ /dev/null @@ -1,306 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Text.RegularExpressions; - -namespace Volian.Controls.Library -{ - public class OutlineRTFTable - { - public OutlineRTFTable(string rtf, bool withBorder) - { - Rtf = rtf; - WithBorder = withBorder; - } - private string _Rtf; - public string Rtf - { - get { return _Rtf; } - set { _Rtf = value; } - } - private bool _WithBorder; - public bool WithBorder - { - get { return _WithBorder; } - set { _WithBorder = value; } - } - private RtfLines _Lines; - public RtfLines Lines - { - get - { - if (_Lines == null) - _Lines = new RtfLines(Rtf); - return _Lines; - } - } - public void OutlineTable() - { - int maxWidth = Lines.MaximumWidth;// Determine maximum width - // spaces here if not an outlined table: - Lines.Pad(maxWidth, WithBorder ? @"\u9474?" : " "); // Pad the lines to the appropriate width - Lines.Insert(0, new RtfLine(maxWidth, WithBorder ? @"\u9484?" : " ", WithBorder ? @"\u9472?" : " ", WithBorder ? @"\u9488?" : " ")); // Insert top line - Lines.Add(new RtfLine(maxWidth, WithBorder ? @"\u9492?" : " ", WithBorder ? @"\u9472?" : " ", WithBorder ? @"\u9496?" : " ")); // Insert bottom line - Lines.ReplaceLines(WithBorder); - } - public override string ToString() - { - return Lines.ToString(); - } - } - public class RtfLines : List - { - public static Regex _RegReplaceLine = new Regex(@"\\line((\\[^ \[\]\\\(\)]*) )"); - public RtfLines(string text) - { - // replace RTF \line with crlf - string txt = _RegReplaceLine.Replace(text, "$1\r\n"); - // split text into lines - string[] breaks = { "\r\n" }; - string[] lines = txt.Split(breaks, StringSplitOptions.None); - //string lastLine = lines[lines.Length - 1]; - foreach (string line in lines) - Add(new RtfLine(line.Replace("\\bullet","*"))); - } - public int MaximumWidth - { - get - { - int retval = 0; - foreach (RtfLine myLine in this) - if (myLine.MaximumWidth > retval) retval = myLine.MaximumWidth; - return retval; - } - } - public void Pad(int maxWidth, string edge) - { - foreach (RtfLine myLine in this) - myLine.Pad(maxWidth, edge); - - } - public override string ToString() - { - StringBuilder sb = new StringBuilder(); - string sep = ""; - foreach (RtfLine myLine in this) - { - sb.Append(sep + myLine.ToString()); - sep = "\r\n"; - } - return sb.ToString(); - } - private static Regex _RegRightCheck = new Regex(@"-|\\u9472?|\\u8209\?"); - private static Regex _RegAboveCheck = new Regex(@"\||\\u9474\?|\\u9492\?|\\u9516\?|\\u9532\?|\\u9500\?|\\u9484\?|\\u9524\?|\\u9488\?|\\u9508\?"); - private static Regex _RegLeftCheck = new Regex(@"-|\\u9472\?|\\u9508\?|\\u9516\?|\\u9500\?|\\u9532\?|\\u9484\?|\\u9488\?|\\u9492\?|\\u8209\?"); - private static Regex _RegBelowCheck = new Regex(@"\||\\u9474\?"); - - private static Regex _RegRightCheck1 = new Regex(@"\\u9474\?"); - private static Regex _RegAboveCheck1 = new Regex(@"\\u9472\?|\\u8209\?"); - private static Regex _RegLeftCheck1 = new Regex(@"\\u9474\?"); - private static Regex _RegBelowCheck1 = new Regex(@"\\u9472\?|\\u8209\?"); - - private static Regex _RegHorizontalCheck = new Regex(@"-|\\u9472\?|\\u8209\?"); - private static Regex _RegVerticalCheck = new Regex(@"\||\\u9474\?"); - static private string[] TableCharsU = { - "\x0", // HEX"\x0", // No character - @"\u9472?", // HEX@"\u2500",// - Horizontal line - 16-bit char: '\xC4' - @"\u9474?", // HEX@"\u2502",// | Vertical line - 16-bit char: '\xB3' - @"\u9492?", // HEX@"\u2514",// L Bottom Left corner - 16-bit char: '\xC0' - @"\u9472?", // HEX@"\u2500",// - Horizontal line - 16-bit char: '\xC4' - @"\u9472?", // HEX@"\u2500",// - Horizontal line - 16-bit char: '\xC4' - @"\u9496?", // HEX@"\u2518",// Bottom Right Corner - 16-bit char: '\xD9' - @"\u9524?", // HEX@"\u2534",// Bottom Tee - 16-bit char: '\xC1' - @"\u9474?", // HEX@"\u2502",// | Vertical Bar - 16-bit char: '\xB3' - @"\u9484?", // HEX@"\u250c",// Upper Left corner - 16-bit char: '\xDA' - @"\u9474?", // HEX@"\u2502",// | Vertical Bar - 16-bit char: '\xB3' - @"\u9500?", // HEX@"\u251c",// Left Tee - 16-bit char: '\xC3' - @"\u9488?", // HEX@"\u2510",// Upper Right corner - 16-bit char: '\xBF' - @"\u9516?", // HEX@"\u252c",// T Top Tee - 16-bit char: '\xC2' - @"\u9508?", // HEX@"\u2524",// Right Tee - 16-bit char: '\xB4' - @"\u9532?", // HEX@"\u253c" // + Plus - 16-bit char: '\xC5' - }; - internal void ReplaceLines(bool withBorder) - { - int maxWidth = this[0].Count; - for (int row = 1; row < Count - 1; row++) - { - RtfLine lineAbove = this[row - 1]; - RtfLine line = this[row]; - RtfLine lineBelow = this[row + 1]; - for (int col = 1; col < maxWidth - 1; col++) - { - RtfPiece curPiece = line[col]; - string current = curPiece.Text; - bool horizontal = _RegHorizontalCheck.IsMatch(current); // Horizontal - bool vertical = _RegVerticalCheck.IsMatch(current); // Vertical - if (horizontal || vertical) - { - int index = _RegRightCheck.IsMatch(line[col + 1].Text) || - (horizontal && _RegRightCheck1.IsMatch(line[col + 1].Text)) ? 1 : 0; // Right - index += _RegAboveCheck.IsMatch(lineAbove[col].Text) || - (vertical && _RegAboveCheck1.IsMatch(lineAbove[col].Text)) ? 2 : 0; // Above - index += _RegLeftCheck.IsMatch(line[col - 1].Text) || - (horizontal && _RegLeftCheck1.IsMatch(line[col - 1].Text)) ? 4 : 0; // Left - index += _RegBelowCheck.IsMatch(lineBelow[col].Text) || - (vertical && _RegBelowCheck1.IsMatch(lineBelow[col].Text)) ? 8 : 0; // Below - if (index > 0) - { - curPiece.Text = TableCharsU[index]; - // this connects the lines to the border, so only do it if there is a border - if (withBorder) - { - if (vertical && row == 1) lineAbove[col].Text = TableCharsU[13]; // Upper Tee - if (vertical && row == Count - 2) lineBelow[col].Text = TableCharsU[7]; // Lower Tee - if (horizontal && col == 1) line[col - 1].Text = TableCharsU[11];// Left Tee - if (horizontal && col == maxWidth - 2) line[col + 1].Text = TableCharsU[14];// Right Tee - } - } - } - } - } - } - private void ListItems(string loc, string str) - { - StringBuilder sb = new StringBuilder(string.Format("{0} = @\"", loc)); - string sep = ""; - foreach (char c in str) - { - if (c < 127) - sb.Append(sep + c.ToString()); - else - sb.Append(sep + string.Format("\\u{0}?", (int)c)); - sep = "|"; - } - Console.WriteLine(sb.ToString()); - } - } - public class RtfLine : List - { - private static Regex _RegRtfText = new Regex(@"((\\[^'u ]*|\\up[0-9]|\\ul|\\ulnone)+( |$|(?=\\['u])))?(|\\'[0-9a-fA-F]{2}|\\u[0-9]*\?|[^\\]{1}|$|)"); - public RtfLine(string text) - { - MatchCollection matches = _RegRtfText.Matches(text); - int nextIndex = 0; - foreach (Match match in matches) - { - if (nextIndex != match.Index) // This should never happen - { - throw new Exception(string.Format("\"RtfPiece Missing Content\",{0},{1},\"{2}\",\"{3}\",\"{4}\"", nextIndex, match.Index, text.Substring(nextIndex, match.Index - nextIndex), match.Groups[2].Value, match.Groups[4].Value)); - //Console.WriteLine("\"RtfPiece Missing Content\",{0},{1},\"{2}\",\"{3}\",\"{4}\"", nextIndex, match.Index, text.Substring(nextIndex, match.Index - nextIndex), match.Groups[2].Value, match.Groups[4].Value); - //Console.WriteLine(text.Substring(nextIndex)); - } - nextIndex = match.Index + match.Length; - string rtfPart = match.Groups[1].ToString(); - if (match.Groups[1].ToString().TrimEnd(" ".ToCharArray()).Length + match.Groups[4].ToString().Length > 0) - this.Add(new RtfPiece(match.Groups[1].ToString().TrimEnd(" ".ToCharArray()), match.Groups[4].ToString())); - //if (match.Groups[1].ToString().Length + match.Groups[4].ToString().Length > 0) - // this.Add(new RtfPiece(match.Groups[1].ToString(), match.Groups[4].ToString())); - } - } - public RtfLine(int width, string left, string fill, string right) - { - Add(new RtfPiece("", left)); - for (int i = 0; i < width; i++) this.Add(new RtfPiece("", fill)); // Pad - Add(new RtfPiece("", right)); - } - public int MaximumWidth - { - get - { - int retval = 0; - foreach (RtfPiece myPiece in this) - retval += myPiece.MaximumWidth; - return retval; - } - } - public override string ToString() - { - StringBuilder sb = new StringBuilder(); - foreach (RtfPiece myPiece in this) - sb.Append(myPiece.ToString()); - return sb.ToString(); - } - internal void Pad(int maxWidth, string edge) - { - int pad = maxWidth - MaximumWidth; - this.Insert(0, new RtfPiece("", edge)); // Left Edge - for (int i = 0; i < pad; i++) this.Add(new RtfPiece("", " ")); // Pad - this.Add(new RtfPiece("", edge)); // Right Edge - } - public new RtfPiece this[int index] - { - get - { - int j = 0; - foreach (RtfPiece myPiece in this) - { - if (myPiece.Text != "") - { - if (j == index) return myPiece; - j++; - } - } - return null; - } - } - } - public class RtfPiece - { - private string _Rtf; - public string Rtf - { - get { return _Rtf; } - set { _Rtf = value; } - } - private string _Text = ""; - public string Text - { - get { return _Text; } - set { _Text = value; } - } - public int TextLength - { - get { return Text.Length; } - } - public int MaximumWidth - { - get { return Text == "" ? 0 : 1; } - } - private static Regex _RegStartLink = new Regex(@""); - public RtfPiece(string rtf, string text) - { - _Rtf = rtf; - if (_RegStartLink.IsMatch(text) || _RegEndLink.IsMatch(text)) - _Rtf += (rtf == "" ? "" : " ") + text; - else - { - _Rtf += rtf == "" ? "" : " "; - _Text = text; - } - } - public override string ToString() - { - return _Rtf + _Text; - //string retval = _RegUnicode.Replace(_Text, new MatchEvaluator(RtfUnicodeCharacter)); - //retval = _RegHex.Replace(retval, new MatchEvaluator(RtfHexCharacter)); - //return retval; - } - //private static Regex _RegUnicode = new Regex(@"\\u([0-9ABCDEF]*)\?"); - //internal static string RtfUnicodeCharacter(Match myMatch) - //{ - // string hexStr = myMatch.Groups[1].ToString(); - // int i = int.Parse(hexStr); - // Char schar = Convert.ToChar(i); - // return schar.ToString(); - //} - //private static Regex _RegHex = new Regex(@"\\'([0-9A-Fa-f]{2})"); - //internal static string RtfHexCharacter(Match myMatch) - //{ - // string hexStr = myMatch.Groups[1].ToString(); - // int i = int.Parse(hexStr, System.Globalization.NumberStyles.HexNumber); - // Char schar = Convert.ToChar(i); - // return schar.ToString(); - //} - } -} diff --git a/PROMS/Volian.Controls.Library/RTBAPI - WithSaveHandlesCode.cs b/PROMS/Volian.Controls.Library/RTBAPI - WithSaveHandlesCode.cs deleted file mode 100644 index 6a9ab691..00000000 --- a/PROMS/Volian.Controls.Library/RTBAPI - WithSaveHandlesCode.cs +++ /dev/null @@ -1,1191 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Windows.Forms; -using System.Drawing; -using System.Runtime.InteropServices; -using System.ComponentModel; -using System.Security.Permissions; -using Microsoft.Win32.SafeHandles; - -namespace Volian.Controls.Library -{ - public static class RTBAPI - { - #region SendMessage - [DllImport("user32.dll", SetLastError = true)] - private static extern int SendMessage(HandleRef hWndlock, Messages wMsg, Int32 wParam, ref Point pt); - [DllImport("user32.dll", SetLastError = true)] - private static extern int SendMessage(HandleRef hWndlock, Messages wMsg, Int32 wParam, int lParam); - [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] - public static extern int SendMessage(HandleRef hWndlock, Messages wMsg, RTBSelection wParam, ref CharFormat2 cf2); - [DllImport("user32.dll", CharSet = CharSet.Auto, SetLastError = true)] - public static extern int SendMessage(HandleRef hWndlock, Messages wMsg, int wParam, ref ParaFormat2 pf2); - [DllImport("user32.dll", SetLastError = true)] - private static extern int GetWindowLong (IntPtr hWin, int index); - #region RTB Messages - // EM_AUTOURLDETECT - An EM_AUTOURLDETECT message enables or disables automatic detection of URLs by a rich edit control. - // EM_CANPASTE - The EM_CANPASTE message determines whether a rich edit control can paste a specified clipboard format. - // EM_CANREDO - The EM_CANREDO message determines whether there are any actions in the control redo queue. - // EM_DISPLAYBAND - The EM_DISPLAYBAND message displays a portion of the contents of a rich edit control, as previously formatted for a device using the EM_FORMATRANGE message. - // EM_EXGETSEL - The EM_EXGETSEL message retrieves the starting and ending character positions of the selection in a rich edit control. - // EM_EXLIMITTEXT - The EM_EXLIMITTEXT message sets an upper limit to the amount of text the user can type or paste into a rich edit control. - // EM_EXLINEFROMCHAR - The EM_EXLINEFROMCHAR message determines which line contains the specified character in a rich edit control. - // EM_EXSETSEL - The EM_EXSETSEL message selects a range of characters or COM objects in a Rich Edit control. - // EM_FINDTEXT - The EM_FINDTEXT message finds text within a rich edit control. - // EM_FINDTEXTEX - The EM_FINDTEXTEX message finds text within a rich edit control. - // EM_FINDTEXTEXW - The EM_FINDTEXTEXW message finds Unicode text within a rich edit control. - // EM_FINDTEXTW - The EM_FINDTEXTW message finds Unicode text within a rich edit control. - // EM_FINDWORDBREAK - The EM_FINDWORDBREAK message finds the next word break before or after the specified character position or retrieves information about the character at that position. - // EM_FORMATRANGE - The EM_FORMATRANGE message formats a range of text in a rich edit control for a specific device. - // EM_GETAUTOURLDETECT - The EM_GETAUTOURLDETECT message indicates whether the auto URL detection is turned on in the rich edit control. - // EM_GETBIDIOPTIONS - The EM_GETBIDIOPTIONS message indicates the current state of the bidirectional options in the rich edit control. - // EM_GETCHARFORMAT - The EM_GETCHARFORMAT message determines the character formatting in a rich edit control. - // EM_GETCTFMODEBIAS - An application sends a EM_GETCTFMODEBIAS message to get the Text Services Framework mode bias values for a Rich Edit control. - // EM_GETCTFOPENSTATUS - An application sends an EM_GETCTFOPENSTATUS message to determine if the Text Services Framework (TSF) keyboard is open or closed. - // EM_GETEDITSTYLE - The EM_GETEDITSTYLE message retrieves the current edit style flags. - // EM_GETEVENTMASK - The EM_GETEVENTMASK message retrieves the event mask for a rich edit control. The event mask specifies which notification messages the control sends to its parent window. - // EM_GETHYPHENATEINFO - An application sends an EM_GETHYPHENATEINFO message to get information about hyphenation for a Rich Edit control. - // EM_GETIMECOLOR - The EM_GETIMECOLOR message retrieves the Input Method Editor (IME) composition color. This message is available only in Asian-language versions of the operating system. - // EM_GETIMECOMPMODE - An application sends an EM_GETIMECOMPMODE message to get the current IME mode for a rich edit control. - // EM_GETIMECOMPTEXT - An application sends an EM_GETIMECOMPTEXT message to get the IME composition text. - // EM_GETIMEMODEBIAS - An application sends an EM_GETIMEMODEBIAS message to get the IME mode bias for a Rich Edit control. - // EM_GETIMEOPTIONS - The EM_GETIMEOPTIONS message retrieves the current IME options. This message is available only in Asian-language versions of the operating system. - // EM_GETIMEPROPERTY - An application sends a EM_GETIMEPROPERTY message to get the property and capabilities of the IME associated with the current input locale. - // EM_GETLANGOPTIONS - An application sends an EM_GETLANGOPTIONS message to get a rich edit control's option settings for IME and Asian language support. - // EM_GETOLEINTERFACE - The EM_GETOLEINTERFACE message retrieves an IRichEditOle object that a client can use to access a rich edit control's COM functionality. - // EM_GETOPTIONS - The EM_GETOPTIONS message retrieves rich edit control options. - // EM_GETPAGEROTATE - Deprecated. An application sends an EM_GETPAGEROTATE message to get the text layout for a Rich Edit control. - // EM_GETPARAFORMAT - The EM_GETPARAFORMAT message retrieves the paragraph formatting of the current selection in a rich edit control. - // EM_GETPUNCTUATION - The EM_GETPUNCTUATION message gets the current punctuation characters for the rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_GETREDONAME - An application sends an EM_GETREDONAME message to a rich edit control to retrieve the type of the next action, if any, in the control's redo queue. - // EM_GETSCROLLPOS - An application sends an EM_GETSCROLLPOS message to obtain the current scroll position of the edit control. - // EM_GETSELTEXT - The EM_GETSELTEXT message retrieves the currently selected text in a rich edit control. - // EM_GETTEXTEX - The EM_GETTEXTEX message allows you to get all of the text from the rich edit control in any particular code base you want. - // EM_GETTEXTLENGTHEX - The EM_GETTEXTLENGTHEX message calculates text length in various ways. It is usually called before creating a buffer to receive the text from the control. - // EM_GETTEXTMODE - An application sends an EM_GETTEXTMODE message to get the current text mode and undo level of a rich edit control. - // EM_GETTEXTRANGE - The EM_GETTEXTRANGE message retrieves a specified range of characters from a rich edit control. - // EM_GETTYPOGRAPHYOPTIONS - The EM_GETTYPOGRAPHYOPTIONS message returns the current state of the typography options of a rich edit control. - // EM_GETUNDONAME - Rich Edit 2.0 and later: An application sends an EM_GETUNDONAME message to a rich edit control to retrieve the type of the next undo action, if any. - // EM_GETWORDBREAKPROCEX - The EM_GETWORDBREAKPROCEX message retrieves the address of the currently registered extended word-break procedure. - // EM_GETWORDWRAPMODE - The EM_GETWORDWRAPMODE message gets the current word wrap and word-break options for the rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_GETZOOM - The EM_GETZOOM message gets the current zoom ratio, which is always between 1/64 and 64. - // EM_HIDESELECTION - The EM_HIDESELECTION message hides or shows the selection in a rich edit control. - // EM_ISIME - An application sends a EM_ISIME message to determine if current input locale is an East Asian locale. - // EM_PASTESPECIAL - The EM_PASTESPECIAL message pastes a specific clipboard format in a rich edit control. - // EM_RECONVERSION - The EM_RECONVERSION message invokes the IME reconversion dialog box. - // EM_REDO - Send an EM_REDO message to a rich edit control to redo the next action in the control's redo queue. - // EM_REQUESTRESIZE - The EM_REQUESTRESIZE message forces a rich edit control to send an EN_REQUESTRESIZE notification message to its parent window. - // EM_SELECTIONTYPE - The EM_SELECTIONTYPE message determines the selection type for a rich edit control. - // EM_SETBIDIOPTIONS - The EM_SETBIDIOPTIONS message sets the current state of the bidirectional options in the rich edit control. - // EM_SETBKGNDCOLOR - The EM_SETBKGNDCOLOR message sets the background color for a rich edit control. - // EM_SETCHARFORMAT - The EM_SETCHARFORMAT message sets character formatting in a rich edit control. - // EM_SETCTFMODEBIAS - An application sends an EM_SETCTFMODEBIAS message to set the Text Services Framework (TSF) mode bias for a Rich Edit control. - // EM_SETCTFOPENSTATUS - An application sends an EM_SETCTFOPENSTATUS message to open or close the Text Services Framework (TSF) keyboard. - // EM_SETEDITSTYLE - The EM_SETEDITSTYLE message sets the current edit style flags. - // EM_SETEVENTMASK - The EM_SETEVENTMASK message sets the event mask for a rich edit control. The event mask specifies which notification messages the control sends to its parent window. - // EM_SETFONTSIZE - The EM_SETFONTSIZE message sets the font size for the selected text. - // EM_SETHYPHENATEINFO - An application sends an EM_SETHYPHENATEINFO message to set the way a Rich Edit control does hyphenation. - // EM_SETIMECOLOR - The EM_SETIMECOLOR message sets the IME composition color. This message is available only in Asian-language versions of the operating system. - // EM_SETIMEMODEBIAS - An application sends an EM_SETIMEMODEBIAS message to set the IME mode bias for a Rich Edit control. - // EM_SETIMEOPTIONS - The EM_SETIMEOPTIONS message sets the IME options. This message is available only in Asian-language versions of the operating system. - // EM_SETLANGOPTIONS - An application sends an EM_SETLANGOPTIONS message to set options for IME and Asian language support in a rich edit control. - // EM_SETOLECALLBACK - The EM_SETOLECALLBACK message gives a rich edit control an IRichEditOleCallback object that the control uses to get OLE-related resources and information from the client. - // EM_SETOPTIONS - The EM_SETOPTIONS message sets the options for a rich edit control. - // EM_SETPAGEROTATE - Deprecated. An application sends an EM_SETPAGEROTATE message to set the text layout for a Rich Edit control. - // EM_SETPALETTE - An application sends an EM_SETPALETTE message to change the palette that rich edit uses for its display window. - // EM_SETPARAFORMAT - The EM_SETPARAFORMAT message sets the paragraph formatting for the current selection in a rich edit control. - // EM_SETPUNCTUATION - The EM_SETPUNCTUATION message sets the punctuation characters for a rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_SETSCROLLPOS - An application sends an EM_SETSCROLLPOS message to tell the rich edit control to scroll to a particular point. - // EM_SETTARGETDEVICE - The EM_SETTARGETDEVICE message sets the target device and line width used for "what you see is what you get" (WYSIWYG) formatting in a rich edit control. - // EM_SETTEXTEX - The EM_SETTEXTEX message combines the functionality of WM_SETTEXT and EM_REPLACESEL and adds the ability to set text using a code page and to use either rich text or plain text. - // EM_SETTEXTMODE - An application sends an EM_SETTEXTMODE message to set the text mode or undo level of a rich edit control. The message fails if the control contains any text. - // EM_SETTYPOGRAPHYOPTIONS - The EM_SETTYPOGRAPHYOPTIONS message sets the current state of the typography options of a rich edit control. - // EM_SETUNDOLIMIT - An application sends an EM_SETUNDOLIMIT message to a rich edit control to set the maximum number of actions that can stored in the undo queue. - // EM_SETWORDBREAKPROCEX - The EM_SETWORDBREAKPROCEX message sets the extended word-break procedure. - // EM_SETWORDWRAPMODE - The EM_SETWORDWRAPMODE message sets the word-wrapping and word-breaking options for the rich edit control. This message is available only in Asian-language versions of the operating system. - // EM_SETZOOM - The EM_SETZOOM message sets the zoom ratio anywhere between 1/64 and 64. - // EM_SHOWSCROLLBAR - The EM_SHOWSCROLLBAR message shows or hides one of the scroll bars in the Text Host window. - // EM_STOPGROUPTYPING - An application sends an EM_STOPGROUPTYPING message to a rich edit control to stop the control from collecting additional typing actions into the current undo action. The control stores the next typing action, if any, into a new action in the undo queue. - // EM_STREAMIN - The EM_STREAMIN message replaces the contents of a rich edit control with a stream of data provided by an application defined - // EM_STREAMOUT - The EM_STREAMOUT message causes a rich edit control to pass its contents to an application - #endregion - #endregion - #region Constants - //const int ECOOP_XOR = 0x0004; - - //const int ECO_AUTOWORDSELECTION = 0x00000001; - - - const int WM_USER = 0x0400; - const int GWL_STYLE = -16; - const int WS_HSCROLL = 0x100000; - const int WS_VSCROLL = 0x200000; - - #endregion - #region Enums - public enum Messages : int - { - EM_AUTOURLDETECT = WM_USER + 91, - EM_CANPASTE = WM_USER + 50, - EM_CANREDO = WM_USER + 85, - EM_DISPLAYBAND = WM_USER + 51, - EM_EXGETSEL = WM_USER + 52, - EM_EXLIMITTEXT = WM_USER + 53, - EM_EXLINEFROMCHAR = WM_USER + 54, - EM_EXSETSEL = WM_USER + 55, - EM_FINDTEXT = WM_USER + 56, - EM_FINDTEXTEX = WM_USER + 79, - EM_FINDTEXTEXW = WM_USER + 124, - EM_FINDTEXTW = WM_USER + 123, - EM_FINDWORDBREAK = WM_USER + 76, - EM_FORMATRANGE = WM_USER + 57, - EM_GETAUTOURLDETECT = WM_USER + 92, - EM_GETBIDIOPTIONS = WM_USER + 201, - EM_GETCHARFORMAT = WM_USER + 58, - EM_GETCTFMODEBIAS = WM_USER + 237, - EM_GETCTFOPENSTATUS = WM_USER + 240, - EM_GETEDITSTYLE = WM_USER + 205, - EM_GETEVENTMASK = WM_USER + 59, - EM_GETHYPHENATEINFO = WM_USER + 230, - EM_GETIMECOLOR = WM_USER + 105, - EM_GETIMECOMPMODE = WM_USER + 122, - EM_GETIMECOMPTEXT = WM_USER + 242, - EM_GETIMEMODEBIAS = WM_USER + 127, - EM_GETIMEOPTIONS = WM_USER + 107, - EM_GETIMEPROPERTY = WM_USER + 244, - EM_GETLANGOPTIONS = WM_USER + 121, - EM_GETOLEINTERFACE = WM_USER + 60, - EM_GETOPTIONS = WM_USER + 78, - EM_GETPAGEROTATE = WM_USER + 235, - EM_GETPARAFORMAT = WM_USER + 61, - EM_GETPUNCTUATION = WM_USER + 101, - EM_GETREDONAME = WM_USER + 87, - EM_GETSCROLLPOS = WM_USER + 221, - EM_GETSELTEXT = WM_USER + 62, - EM_GETTEXTEX = WM_USER + 94, - EM_GETTEXTLENGTHEX = WM_USER + 95, - EM_GETTEXTMODE = WM_USER + 90, - EM_GETTEXTRANGE = WM_USER + 75, - EM_GETTYPOGRAPHYOPTIONS = WM_USER + 203, - EM_GETUNDONAME = WM_USER + 86, - EM_GETWORDBREAKPROCEX = WM_USER + 80, - EM_GETWORDWRAPMODE = WM_USER + 103, - EM_GETZOOM = WM_USER + 224, - EM_HIDESELECTION = WM_USER + 63, - EM_ISIME = WM_USER + 243, - EM_PASTESPECIAL = WM_USER + 64, - EM_RECONVERSION = WM_USER + 125, - EM_REDO = WM_USER + 84, - EM_REQUESTRESIZE = WM_USER + 65, - EM_SELECTIONTYPE = WM_USER + 66, - EM_SETBIDIOPTIONS = WM_USER + 200, - EM_SETBKGNDCOLOR = WM_USER + 67, - EM_SETCHARFORMAT = WM_USER + 68, - EM_SETCTFMODEBIAS = WM_USER + 238, - EM_SETCTFOPENSTATUS = WM_USER + 241, - EM_SETEDITSTYLE = WM_USER + 204, - EM_SETEVENTMASK = WM_USER + 69, - EM_SETFONTSIZE = WM_USER + 223, - EM_SETHYPHENATEINFO = WM_USER + 231, - EM_SETIMECOLOR = WM_USER + 104, - EM_SETIMEMODEBIAS = WM_USER + 126, - EM_SETIMEOPTIONS = WM_USER + 106, - EM_SETLANGOPTIONS = WM_USER + 120, - EM_SETOLECALLBACK = WM_USER + 70, - EM_SETOPTIONS = WM_USER + 77, - EM_SETPAGEROTATE = WM_USER + 236, - EM_SETPALETTE = WM_USER + 93, - EM_SETPARAFORMAT = WM_USER + 71, - EM_SETPUNCTUATION = WM_USER + 100, - EM_SETSCROLLPOS = WM_USER + 222, - EM_SETTARGETDEVICE = WM_USER + 72, - EM_SETTEXTEX = WM_USER + 97, - EM_SETTEXTMODE = WM_USER + 89, - EM_SETTYPOGRAPHYOPTIONS = WM_USER + 202, - EM_SETUNDOLIMIT = WM_USER + 82, - EM_SETWORDBREAKPROCEX = WM_USER + 81, - EM_SETWORDWRAPMODE = WM_USER + 102, - EM_SETZOOM = WM_USER + 225, - EM_SHOWSCROLLBAR = WM_USER + 96, - EM_STOPGROUPTYPING = WM_USER + 88, - EM_STREAMIN = WM_USER + 73, - EM_STREAMOUT = WM_USER + 74 - }; - [Flags] - public enum LanguageOptions : int // Options for EM_SETLANGOPTIONS and EM_GETLANGOPTIONS - { - IMF_AUTOKEYBOARD = 0x0001, - IMF_AUTOFONT = 0x0002, - IMF_IMECANCELCOMPLETE = 0x0004, // high completes the comp string when aborting, low cancels. - IMF_IMEALWAYSSENDNOTIFY = 0x0008 - } - public enum TimeCompMode : int // Values for EM_GETIMECOMPMODE - { - ICM_NOTOPEN = 0x0000, - ICM_LEVEL3 = 0x0001, - ICM_LEVEL2 = 0x0002, - ICM_LEVEL2_5 = 0x0003, - ICM_LEVEL2_SUI = 0x0004 - } - [Flags] - public enum EditControlOptions : int // Edit control options - { - ECO_AUTOWORDSELECTION = 0x00000001, - ECO_AUTOVSCROLL = 0x00000040, - ECO_AUTOHSCROLL = 0x00000080, - ECO_NOHIDESEL = 0x00000100, - ECO_READONLY = 0x00000800, - ECO_WANTRETURN = 0x00001000, - ECO_SAVESEL = 0x00008000, - ECO_SELECTIONBAR = 0x01000000, - ECO_VERTICAL = 0x00400000, // FE specific - } - public enum EcoOperations : int // ECO operations - { - ECOOP_SET = 0x0001, - ECOOP_OR = 0x0002, - ECOOP_AND = 0x0003, - ECOOP_XOR = 0x0004 - } - public enum WordBreakFunctionActions : int // new word break function actions - { - WB_CLASSIFY = 3, - WB_MOVEWORDLEFT = 4, - WB_MOVEWORDRIGHT = 5, - WB_LEFTBREAK = 6, - WB_RIGHTBREAK = 7 - } - //#define PC_FOLLOWING 1 - //#define PC_LEADING 2 - //#define PC_OVERFLOW 3 - //#define PC_DELIMITER 4 - //#define WBF_WORDWRAP 0x010 - //#define WBF_WORDBREAK 0x020 - //#define WBF_OVERFLOW 0x040 - //#define WBF_LEVEL1 0x080 - //#define WBF_LEVEL2 0x100 - //#define WBF_CUSTOM 0x200 - /* Word break flags (used with WB_CLASSIFY) */ - //#define WBF_CLASS ((BYTE) 0x0F) - //#define WBF_ISWHITE ((BYTE) 0x10) - //#define WBF_BREAKLINE ((BYTE) 0x20) - //#define WBF_BREAKAFTER ((BYTE) 0x40) - ///* Far East specific flags */ - //#define IMF_FORCENONE 0x0001 - //#define IMF_FORCEENABLE 0x0002 - //#define IMF_FORCEDISABLE 0x0004 - //#define IMF_CLOSESTATUSWINDOW 0x0008 - //#define IMF_VERTICAL 0x0020 - //#define IMF_FORCEACTIVE 0x0040 - //#define IMF_FORCEINACTIVE 0x0080 - //#define IMF_FORCEREMEMBER 0x0100 - //#define IMF_MULTIPLEEDIT 0x0400 - public enum RTBSelection : int - { - SCF_DEFAULT = 0x0000, - SCF_SELECTION = 0x0001, - SCF_WORD = 0x0002, - SCF_ALL = 0x0004, - SCF_USEUIRULES = 0x0008 - } - [Flags] - public enum CharFormatMasks : uint - { - CFM_NONE = 0, - CFM_BOLD = 0x00000001, - CFM_ITALIC = 0x00000002, - CFM_UNDERLINE = 0x00000004, - CFM_STRIKEOUT = 0x00000008, - CFM_PROTECTED = 0x00000010, - CFM_LINK = 0x00000020, // Exchange hyperlink extension - CFM_SIZE = 0x80000000, - CFM_COLOR = 0x40000000, - CFM_FACE = 0x20000000, - CFM_OFFSET = 0x10000000, - CFM_CHARSET = 0x08000000, - CFM_SMALLCAPS = 0x0040, - CFM_ALLCAPS = 0x0080, - CFM_HIDDEN = 0x0100, - CFM_OUTLINE = 0x0200, - CFM_SHADOW = 0x0400, - CFM_EMBOSS = 0x0800, - CFM_IMPRINT = 0x1000, - CFM_DISABLED = 0x2000, - CFM_REVISED = 0x4000, - CFM_BACKCOLOR = 0x04000000, - CFM_LCID = 0x02000000, - CFM_UNDERLINETYPE = 0x00800000, - CFM_WEIGHT = 0x00400000, - CFM_SPACING = 0x00200000, - CFM_KERNING = 0x00100000, - CFM_STYLE = 0x00080000, - CFM_ANIMATION = 0x00040000, - CFM_REVAUTHOR = 0x00008000, - CFM_SUBSCRIPT = 0x00010000, - CFM_SUPERSCRIPT = 0x00020000 - // CFM_SUBorSUPERSCRIPT = 0x00030000 - } - [Flags] - public enum CharFormatEffects : uint - { - CFE_NONE = 0, - CFE_BOLD = 0x0001, - CFE_ITALIC = 0x0002, - CFE_UNDERLINE = 0x0004, - CFE_STRIKEOUT = 0x0008, - CFE_PROTECTED = 0x0010, - CFE_LINK = 0x0020, - CFE_AUTOBACKCOLOR = 0x04000000, // NOTE: this corresponds to CFM_BACKCOLOR, which controls it - CFE_AUTOCOLOR = 0x40000000, // NOTE: this corresponds to CFM_COLOR, which controls it - CFE_SUBSCRIPT = 0x00010000, // Superscript and subscript are - CFE_SUPERSCRIPT = 0x00020000, // mutually exclusive - CFE_SMALLCAPS = 0x0040, - CFE_ALLCAPS = 0x0080, - CFE_HIDDEN = 0x0100, - CFE_OUTLINE = 0x0200, - CFE_SHADOW = 0x0400, - CFE_EMBOSS = 0x0800, - CFE_IMPRINT = 0x1000, - CFE_DISABLED = 0x2000, - CFE_REVISED = 0x4000 - } - public enum CharUnderline : byte - { - CFU_UNDERLINENONE = 0, - CFU_UNDERLINE = 1, - CFU_UNDERLINEWORD = 2, // displayed as ordinary underline - CFU_UNDERLINEDOUBLE = 3, // displayed as ordinary underline - CFU_UNDERLINEDOTTED = 4, - CFU_UNDERLINEDASH = 5, - CFU_UNDERLINEDASHDOT = 6, - CFU_UNDERLINEDASHDOTDOT = 7, - CFU_UNDERLINEWAVE = 8, - CFU_UNDERLINETHICK = 9, - CFU_INVERT = 0xFE // For IME composition fake a selection. - } - [Flags] - public enum ParaFormatMasks : uint - { - PFM_NONE = 0, - PFM_STARTINDENT = 0x00000001, - PFM_RIGHTINDENT = 0x00000002, - PFM_OFFSET = 0x00000004, - PFM_ALIGNMENT = 0x00000008, - PFM_TABSTOPS = 0x00000010, - PFM_NUMBERING = 0x00000020, - PFM_SPACEBEFORE = 0x00000040, - PFM_SPACEAFTER = 0x00000080, - PFM_LINESPACING = 0x00000100, - PFM_RESERVED = 0x00000200, - PFM_STYLE = 0x00000400, - PFM_BORDER = 0x00000800, - PFM_SHADING = 0x00001000, - PFM_NUMBERINGSTYLE = 0x00002000, - PFM_NUMBERINGTAB = 0x00004000, - PFM_NUMBERINGSTART = 0x00008000, - // PFM_DIR = 0x00010000, - PFM_RTLPARA = 0x00010000, - PFM_KEEP = 0x00020000, - PFM_KEEPNEXT = 0x00040000, - PFM_PAGEBREAKBEFORE = 0x00080000, - PFM_NOLINENUMBER = 0x00100000, - PFM_NOWIDOWCONTROL = 0x00200000, - PFM_DONOTHYPHEN = 0x00400000, - PFM_SIDEBYSIDE = 0x00800000, - PFM_TABLEROWDELIMITER = 0x10000000, - PFM_TEXTWRAPPINGBREAK = 0x20000000, - PFM_TABLE = 0x40000000, - PFM_OFFSETINDENT = 0x80000000 - } - public enum ParaFormatEffects : ushort - { - PFE_RTLPARA = 0x0001, - PFE_KEEP = 0x0002, - PFE_KEEPNEXT = 0x0004, - PFE_PAGEBREAKBEFORE = 0x0008, - PFE_NOLINENUMBER = 0x0010, - PFE_NOWIDOWCONTROL = 0x0020, - PFE_DONOTHYPHEN = 0x0040, - PFE_SIDEBYSIDE = 0x0080, - PFE_TABLEROW = 0xc000, /* These 3 options are mutually */ - PFE_TABLECELLEND = 0x8000, /* exclusive and each imply */ - PFE_TABLECELL = 0x4000, /* that para is part of a table*/ - } - public enum ParaAlignment : ushort - { - PFA_LEFT = 1, - PFA_RIGHT = 2, - PFA_CENTER = 3, - PFA_JUSTIFY = 4, - PFA_FULL_INTERWORD = 5 - } - public enum ParaNumbering : ushort - { - PFN_NONE = 0, - PFN_BULLET = 1, - PFN_ARABIC = 2, - PFN_LOWER = 3, - PFN_UPPER = 4, - PFN_LOWERROMAN = 5, - PFN_UPPERROMAN = 6, - PFN_UNI = 7 - } - public enum ParaSpacing : byte - { - PFS_SINGLE = 0, - PFS_ONEANDONEHALF = 1, - PFS_DOUBLE = 2, - PFS_EXACTSINGLEMIN = 3, - PFS_EXACT = 4, - PFS_EXACT20 = 5 - } - [Flags] - public enum E_FontStyle : byte - { - FS_NONE = 0, - FS_BOLD = 0x01, - FS_UNDERLINE = 0x02, - FS_ITALIC = 0x04, - FS_SUPERSCRIPT = 0x08, - FS_SUBSCRIPT = 0x10 - } - #endregion - #region Structures - //struct CharRange - //{ - // public int cpMin; - // public int cpMax; - //} - [StructLayout(LayoutKind.Sequential, Pack = 4, CharSet = CharSet.Auto)] - public struct CharFormat2 - { - public int cbSize; - public uint dwMask; - public uint dwEffects; - public int yHeight; - public int yOffset; - public int crTextColor; - public byte bCharSet; - public byte bPitchAndFamily; - [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)] - public string szFaceName; - public short wWeight; - public short sSpacing; - public int crBackColor; - public int lcid; - public int dwReserved; - public short sStyle; - public short wKerning; - public byte bUnderlineType; - public byte bAnimation; - public byte bRevAuthor; - public byte bReserved1; - } - public class CharFormatTwo - { - public CharFormatTwo(CharFormat2 cf) - { - _CharFormat2 = cf; - } - private CharFormat2 _CharFormat2; - [Browsable(false)] - public CharFormat2 CharFormat2 - { - get { return _CharFormat2; } - } - [Browsable(false)] - public int cbSize - { - get { return _CharFormat2.cbSize; } - set { _CharFormat2.cbSize = value; } - } - [Editor(typeof(FlagEnumUIEditor), typeof(System.Drawing.Design.UITypeEditor))] - public CharFormatMasks dwMask - { - get { return (CharFormatMasks)_CharFormat2.dwMask; } - set { _CharFormat2.dwMask = (uint)value; } - } - [Editor(typeof(FlagEnumUIEditor), typeof(System.Drawing.Design.UITypeEditor))] - public CharFormatEffects dwEffects - { - get { return (CharFormatEffects)_CharFormat2.dwEffects; } - set { _CharFormat2.dwEffects = (uint)value; } - } - public int yHeight - { - get { return _CharFormat2.yHeight; } - set { _CharFormat2.yHeight = value; } - } - public int yOffset - { - get { return _CharFormat2.yOffset; } - set { _CharFormat2.yOffset = value; } - } - private Color Int2Color(int color) - { - return Color.FromArgb(color % 256, (color / 256) % 256, color / (256 * 256)); - } - private int Color2Int(Color color) - { - return color.R + (color.G * 256) + (color.B * 256 * 256); - } - public Color crTextColor - { - get { return Int2Color(_CharFormat2.crTextColor); } - set { _CharFormat2.crTextColor = Color2Int(value); } - } - public byte bCharSet - { - get { return _CharFormat2.bCharSet; } - set { _CharFormat2.bCharSet = value; } - } - public byte bPitchAndFamily - { - get { return _CharFormat2.bPitchAndFamily; } - set { _CharFormat2.bPitchAndFamily = value; } - } - public string szFaceName - { - get { return _CharFormat2.szFaceName; } - set { _CharFormat2.szFaceName = value; } - } - public short wWeight - { - get { return _CharFormat2.wWeight; } - set { _CharFormat2.wWeight = value; } - } - public short sSpacing - { - get { return _CharFormat2.sSpacing; } - set { _CharFormat2.sSpacing = value; } - } - public Color crBackColor - { - get { return Int2Color(_CharFormat2.crBackColor); } - set { _CharFormat2.crBackColor = Color2Int(value); } - } - public int lcid - { - get { return _CharFormat2.lcid; } - set { _CharFormat2.lcid = value; } - } - public int dwReserved - { - get { return _CharFormat2.dwReserved; } - set { _CharFormat2.dwReserved = value; } - } - public short sStyle - { - get { return _CharFormat2.sStyle; } - set { _CharFormat2.sStyle = value; } - } - public short wKerning - { - get { return _CharFormat2.wKerning; } - set { _CharFormat2.wKerning = value; } - } - public CharUnderline bUnderlineType - { - get { return (CharUnderline)_CharFormat2.bUnderlineType; } - set { _CharFormat2.bUnderlineType = (byte)value; } - } - public byte bAnimation - { - get { return _CharFormat2.bAnimation; } - set { _CharFormat2.bAnimation = value; } - } - public byte bRevAuthor - { - get { return _CharFormat2.bRevAuthor; } - set { _CharFormat2.bRevAuthor = value; } - } - public byte bReserved1 - { - get { return _CharFormat2.bReserved1; } - set { _CharFormat2.bReserved1 = value; } - } - } - [StructLayout(LayoutKind.Sequential, Pack = 4)] - public struct ParaFormat2 - { - public int cbSize; - public int dwMask; - public ushort wNumbering; - public short wEffects; - public int dxStartIndent; - public int dxRightIndent; - public int dxOffset; - public short wAlignment; - public short cTabCount; - [MarshalAs(UnmanagedType.ByValArray, SizeConst = 32)] - public int[] rgxTabs; - public int dySpaceBefore; - public int dySpaceAfter; - public int dyLineSpacing; - public short sStyle; - public byte bLineSpacingRule; - public byte bOutlineLevel; - public short wShadingWeight; - public short wShadingStyle; - public short wNumberingStart; - public short wNumberingStyle; - public short wNumberingTab; - public short wBorderSpace; - public short wBorderWidth; - public short wBorders; - } - public class ParaFormatTwo - { - private ParaFormat2 _ParaFormat2; - public ParaFormatTwo(ParaFormat2 pf) - { - _ParaFormat2 = pf; - } - public ParaFormat2 ParaFormat2 - { - get { return _ParaFormat2; } - } - public int cbSize - { - get { return _ParaFormat2.cbSize; } - set { _ParaFormat2.cbSize = value; } - } - [Editor(typeof(FlagEnumUIEditor), typeof(System.Drawing.Design.UITypeEditor))] - public ParaFormatMasks dwMask - { - get { return (ParaFormatMasks)_ParaFormat2.dwMask; } - set { _ParaFormat2.dwMask = (int)value; } - } - public ParaNumbering wNumbering - { - get { return (ParaNumbering)_ParaFormat2.wNumbering; } - set { _ParaFormat2.wNumbering = (ushort)value; } - } - public ParaFormatEffects wEffects - { - get { return (ParaFormatEffects)_ParaFormat2.wEffects; } - set { _ParaFormat2.wEffects = (short)value; } - } - public int dxStartIndent - { - get { return _ParaFormat2.dxStartIndent; } - set { _ParaFormat2.dxStartIndent = value; } - } - public int dxRightIndent - { - get { return _ParaFormat2.dxRightIndent; } - set { _ParaFormat2.dxRightIndent = value; } - } - public int dxOffset - { - get { return _ParaFormat2.dxOffset; } - set { _ParaFormat2.dxOffset = value; } - } - public ParaAlignment wAlignment - { - get { return (ParaAlignment)_ParaFormat2.wAlignment; } - set { _ParaFormat2.wAlignment = (short)value; } - } - public short cTabCount - { - get { return _ParaFormat2.cTabCount; } - set { _ParaFormat2.cTabCount = value; } - } - public int[] rgxTabs - { - get { return _ParaFormat2.rgxTabs; } - set { _ParaFormat2.rgxTabs = value; } - } - public int dySpaceBefore - { - get { return _ParaFormat2.dySpaceBefore; } - set { _ParaFormat2.dySpaceBefore = value; } - } - public int dySpaceAfter - { - get { return _ParaFormat2.dySpaceAfter; } - set { _ParaFormat2.dySpaceAfter = value; } - } - public int dyLineSpacing - { - get { return _ParaFormat2.dyLineSpacing; } - set { _ParaFormat2.dyLineSpacing = value; } - } - public short sStyle - { - get { return _ParaFormat2.sStyle; } - set { _ParaFormat2.sStyle = value; } - } - public ParaSpacing bLineSpacingRule - { - get { return (ParaSpacing)_ParaFormat2.bLineSpacingRule; } - set { _ParaFormat2.bLineSpacingRule = (byte)value; } - } - public byte bOutlineLevel - { - get { return _ParaFormat2.bOutlineLevel; } - set { _ParaFormat2.bOutlineLevel = value; } - } - public short wShadingWeight - { - get { return _ParaFormat2.wShadingWeight; } - set { _ParaFormat2.wShadingWeight = value; } - } - public short wShadingStyle - { - get { return _ParaFormat2.wShadingStyle; } - set { _ParaFormat2.wShadingStyle = value; } - } - public short wNumberingStart - { - get { return _ParaFormat2.wNumberingStart; } - set { _ParaFormat2.wNumberingStart = value; } - } - public short wNumberingStyle - { - get { return _ParaFormat2.wNumberingStyle; } - set { _ParaFormat2.wNumberingStyle = value; } - } - public short wNumberingTab - { - get { return _ParaFormat2.wNumberingTab; } - set { _ParaFormat2.wNumberingTab = value; } - } - public short wBorderSpace - { - get { return _ParaFormat2.wBorderSpace; } - set { _ParaFormat2.wBorderSpace = value; } - } - public short wBorderWidth - { - get { return _ParaFormat2.wBorderWidth; } - set { _ParaFormat2.wBorderWidth = value; } - } - public short wBorders - { - get { return _ParaFormat2.wBorders; } - set { _ParaFormat2.wBorders = value; } - } - } - #endregion - #region Static Methods - public static bool HasVertScroll(Control ctl) - { - int dwstyle = GetWindowLong(ctl.Handle, GWL_STYLE); - return (dwstyle & WS_VSCROLL) != 0; - } - public static bool HasHorzScroll(Control ctl) - { - int dwstyle = GetWindowLong(ctl.Handle, GWL_STYLE); - return (dwstyle & WS_HSCROLL) != 0; - } - public static Dictionary myHandles = new Dictionary(); - public static HandleRef getHandleRef(RichTextBox rtb) - { - //if (!myHandles.ContainsKey(rtb.Handle)) - //{ - // myHandles.Add(rtb.Handle, new HandleRef(rtb, rtb.Handle)); - // Console.WriteLine("MyHandles Count = {0}", myHandles.Count); - //} - //return myHandles[rtb.Handle]; - return new HandleRef(rtb, rtb.Handle); - //SafeUnmanagedMemoryHandle sumh = new SafeUnmanagedMemoryHandle(rtb.Handle, true); - //HandleRef href = new HandleRef(rtb, rtb.Handle); - ////SafeUnmanagedMemoryHandle sumh = new SafeUnmanagedMemoryHandle(href.Handle, true); - //return href; - } - public static void SetScrollLocation(RichTextBox richTextBox, Point point) - { - //if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETSCROLLPOS, 0, ref point) == 0) - if (SendMessage(getHandleRef(richTextBox), Messages.EM_SETSCROLLPOS, 0, ref point) == 0) - throw new Win32Exception(); - } - public static Point GetScrollLocation(RichTextBox richTextBox) - { - Point pt = new Point(); - //if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_GETSCROLLPOS, 0, ref pt) == 0) - if (SendMessage(getHandleRef(richTextBox), Messages.EM_GETSCROLLPOS, 0, ref pt) == 0) - throw new Win32Exception(); - return pt; - } - public static void SetBackgroundColor(RichTextBox richTextBox, Color color) - { - int clr = color.R + (color.G * 256) + (color.B * 256 * 256); - //if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETBKGNDCOLOR, 0, clr) == 0) - if (SendMessage(getHandleRef(richTextBox), Messages.EM_SETBKGNDCOLOR, 0, clr) == 0) - throw new Win32Exception(); - } - public static void SetAuto(RichTextBox richTextBox) - { - //if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETOPTIONS, (int)EcoOperations.ECOOP_XOR, (int)EditControlOptions.ECO_AUTOWORDSELECTION) == 0) - if (SendMessage(getHandleRef(richTextBox), Messages.EM_SETOPTIONS, (int)EcoOperations.ECOOP_XOR, (int)EditControlOptions.ECO_AUTOWORDSELECTION) == 0) - throw new Win32Exception(); - } - public static ParaFormatTwo GetParaFormat(RichTextBox richTextBox) - { - ParaFormat2 pf = new ParaFormat2(); - pf.cbSize = Marshal.SizeOf(pf); - //if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_GETPARAFORMAT, 0, ref pf) == 0) - if (SendMessage(getHandleRef(richTextBox), Messages.EM_GETPARAFORMAT, 0, ref pf) == 0) - throw new Win32Exception(); - return new ParaFormatTwo(pf); - } - public static void SetParaFormat(RichTextBox richTextBox, ParaFormatTwo pft) - { - ParaFormat2 pf2 = pft.ParaFormat2; - //if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETPARAFORMAT, 0, ref pf2) == 0) - if (SendMessage(getHandleRef(richTextBox), Messages.EM_SETPARAFORMAT, 0, ref pf2) == 0) - { - //if(Marshal.GetLastWin32Error()!=0) - throw new Win32Exception(); - } - } - public static CharFormatTwo GetCharFormat(RichTextBox richTextBox, RTBSelection selection) - { - CharFormat2 cf = new CharFormat2(); - cf.cbSize = Marshal.SizeOf(cf); - //if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_GETCHARFORMAT, selection, ref cf) == 0) - if (SendMessage(getHandleRef(richTextBox), Messages.EM_GETCHARFORMAT, selection, ref cf) == 0) - throw new Win32Exception(); - return new CharFormatTwo(cf); - } - public static void SetCharFormat(RichTextBox richTextBox, RTBSelection selection, CharFormatTwo cft) - { - try - { - CharFormat2 cf2 = cft.CharFormat2; - try - { - //HandleRef hr = new HandleRef(richTextBox, richTextBox.Handle); - HandleRef hr = getHandleRef(richTextBox); - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - } - //if (SendMessage(new HandleRef(richTextBox, richTextBox.Handle), Messages.EM_SETCHARFORMAT, selection, ref cf2) == 0) - if (SendMessage(getHandleRef(richTextBox), Messages.EM_SETCHARFORMAT, selection, ref cf2) == 0) - throw new Win32Exception(); - } - catch (Exception ex) - { - Console.WriteLine("Error on SetCharFormat {0}", ex.Message); - } - - } - public static void SetHighlightColor(RichTextBox richTextBox, RTBSelection selection, Color color) - { - CharFormatTwo cft = GetCharFormat(richTextBox, selection); - cft.crBackColor = color; - cft.dwEffects = 0; - cft.dwMask = 0; - cft.dwMask |= CharFormatMasks.CFM_BACKCOLOR; - SetCharFormat(richTextBox, selection, cft); - } - public static void SetSpaceBefore(RichTextBox richTextBox, int spaceBefore) - { - ParaFormatTwo pft = GetParaFormat(richTextBox); - pft.dwMask = 0; - pft.dwMask |= ParaFormatMasks.PFM_SPACEBEFORE; - // get the monitor's resolution in DPI and use it to set the linespacing value for - // the richtextbox. Note that without this, the Arial Unicode font made the appearance of - // almost double linespacing. Using PFS_Exact makes it appear as regular single spacing. - Graphics g = richTextBox.CreateGraphics(); - int dpi = Convert.ToInt32((g.DpiX + g.DpiY) / 2); - g.Dispose(); - // dyLineSpacing is Spacing between lines. the PFS_EXACT sets line spacing as the spacing from one - //line to the next, in twips - thus the 1440. - - pft.dySpaceBefore = spaceBefore * 1440 / dpi; - SetParaFormat(richTextBox, pft); - } - //developed for equation editor interface work, but ended up not needing it. Kept it in - // case it is needed in the future. - //public static void SetSpaceAfter(RichTextBox richTextBox, int spaceAfter) - //{ - // ParaFormatTwo pft = GetParaFormat(richTextBox); - // pft.dwMask = 0; - // pft.dwMask |= ParaFormatMasks.PFM_SPACEAFTER; - // // get the monitor's resolution in DPI and use it to set the linespacing value for - // // the richtextbox. Note that without this, the Arial Unicode font made the appearance of - // // almost double linespacing. Using PFS_Exact makes it appear as regular single spacing. - // Graphics g = richTextBox.CreateGraphics(); - // int dpi = Convert.ToInt32((g.DpiX + g.DpiY) / 2); - // g.Dispose(); - // // dyLineSpacing is Spacing between lines. the PFS_EXACT sets line spacing as the spacing from one - // //line to the next, in twips - thus the 1440. - - // pft.dySpaceAfter = spaceAfter * 1440 / dpi; - // SetParaFormat(richTextBox, pft); - //} - public static void SetLineSpacing(RichTextBox richTextBox, ParaSpacing type) - { - ParaFormatTwo pft = GetParaFormat(richTextBox); - Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(richTextBox.Handle, "SetLineSpacing 1"); - pft.bLineSpacingRule = type; - pft.dwMask = 0; - pft.dwMask |= ParaFormatMasks.PFM_LINESPACING; - pft.dwMask |= ParaFormatMasks.PFM_SPACEAFTER; - - // get the monitor's resolution in DPI and use it to set the linespacing value for - // the richtextbox. Note that without this, the Arial Unicode font made the appearance of - // almost double linespacing. Using PFS_Exact makes it appear as regular single spacing. - Graphics g = richTextBox.CreateGraphics(); - int dpi = Convert.ToInt32((g.DpiX + g.DpiY) / 2); - g.Dispose(); - Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(richTextBox.Handle, "SetLineSpacing 2"); - // dyLineSpacing is Spacing between lines. the PFS_EXACT sets line spacing as the spacing from one - //line to the next, in twips - thus the 1440. - - pft.dyLineSpacing = Convert.ToInt32(.5 + richTextBox.Font.GetHeight(dpi)) * 1440 / dpi; - Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(richTextBox.Handle, "SetLineSpacing 3"); - SetParaFormat(richTextBox, pft); - Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(richTextBox.Handle, "SetLineSpacing 4"); - } - public static E_FontStyle GetFontStyle(RichTextBox richTextBox) - { - E_FontStyle fs = E_FontStyle.FS_NONE; - CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION); - if (((cft.dwMask & CharFormatMasks.CFM_BOLD) == CharFormatMasks.CFM_BOLD) && - ((cft.dwEffects & CharFormatEffects.CFE_BOLD) == CharFormatEffects.CFE_BOLD)) fs |= E_FontStyle.FS_BOLD; - if (((cft.dwMask & CharFormatMasks.CFM_UNDERLINE) == CharFormatMasks.CFM_UNDERLINE) && - ((cft.dwEffects & CharFormatEffects.CFE_UNDERLINE) == CharFormatEffects.CFE_UNDERLINE)) fs |= E_FontStyle.FS_UNDERLINE; - if (((cft.dwMask & CharFormatMasks.CFM_ITALIC) == CharFormatMasks.CFM_ITALIC) && - ((cft.dwEffects & CharFormatEffects.CFE_ITALIC) == CharFormatEffects.CFE_ITALIC)) fs |= E_FontStyle.FS_ITALIC; - if (richTextBox.SelectionCharOffset == -2) fs |= E_FontStyle.FS_SUBSCRIPT; - if (richTextBox.SelectionCharOffset == 2) fs |= E_FontStyle.FS_SUPERSCRIPT; - return fs; - } - public static void SetFontStyle(RichTextBox richTextBox, E_FontStyle fs) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION); - if ((fs & E_FontStyle.FS_BOLD) == E_FontStyle.FS_BOLD) - { - cft.dwEffects |= CharFormatEffects.CFE_BOLD; - cft.dwMask |= CharFormatMasks.CFM_BOLD; - } - if ((fs & E_FontStyle.FS_UNDERLINE) == E_FontStyle.FS_UNDERLINE) - { - cft.dwEffects |= CharFormatEffects.CFE_UNDERLINE; - cft.dwMask |= CharFormatMasks.CFM_UNDERLINE; - } - if ((fs & E_FontStyle.FS_ITALIC) == E_FontStyle.FS_ITALIC) - { - cft.dwEffects |= CharFormatEffects.CFE_ITALIC; - cft.dwMask |= CharFormatMasks.CFM_ITALIC; - } - if ((fs & E_FontStyle.FS_SUBSCRIPT) == E_FontStyle.FS_SUBSCRIPT) - { - richTextBox.SelectionCharOffset = -2; - } - if ((fs & E_FontStyle.FS_SUPERSCRIPT) == E_FontStyle.FS_SUPERSCRIPT) - { - richTextBox.SelectionCharOffset = 2; - } - SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - } - public static bool IsSuperScript(RichTextBox richTextBox) - { - return (richTextBox.SelectionCharOffset>0); - } - public static bool IsSubScript(RichTextBox richTextBox) - { - return (richTextBox.SelectionCharOffset < 0); - } - public static void ToggleSubscript(bool bSet, RichTextBox richTextBox, RTBSelection selection) - { - if (bSet) - richTextBox.SelectionCharOffset = -2; - else - richTextBox.SelectionCharOffset = 0; - } - public static void ToggleSuperscript(bool bSet, RichTextBox richTextBox, RTBSelection selection) - { - if (bSet) - richTextBox.SelectionCharOffset = 2; - else - richTextBox.SelectionCharOffset = 0; - } - public static bool IsBold(RichTextBox richTextBox) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION); - return (((cft.dwMask & CharFormatMasks.CFM_BOLD) == CharFormatMasks.CFM_BOLD) && - ((cft.dwEffects & CharFormatEffects.CFE_BOLD) == CharFormatEffects.CFE_BOLD)); - } - public static void ToggleBold(bool bSet, RichTextBox richTextBox, RTBSelection selection) - { - CharFormatTwo cft = GetCharFormat(richTextBox, selection); - if (bSet) - { - cft.dwEffects = CharFormatEffects.CFE_BOLD; - cft.dwMask = CharFormatMasks.CFM_BOLD; - } - else - { - cft.dwEffects = CharFormatEffects.CFE_NONE; - cft.dwMask = CharFormatMasks.CFM_BOLD; - } - SetCharFormat(richTextBox, selection, cft); - } - public static bool IsUnderline(RichTextBox richTextBox) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION); - return (((cft.dwMask & CharFormatMasks.CFM_UNDERLINE) == CharFormatMasks.CFM_UNDERLINE) && - ((cft.dwEffects & CharFormatEffects.CFE_UNDERLINE) == CharFormatEffects.CFE_UNDERLINE)); - } - public static void ToggleUnderline(bool bSet, RichTextBox richTextBox, RTBSelection selection) - { - CharFormatTwo cft = GetCharFormat(richTextBox, selection); - if (bSet) - { - cft.dwEffects = CharFormatEffects.CFE_UNDERLINE; - cft.dwMask = CharFormatMasks.CFM_UNDERLINE; - } - else - { - cft.dwEffects = CharFormatEffects.CFE_NONE; - cft.dwMask = CharFormatMasks.CFM_UNDERLINE; - } - SetCharFormat(richTextBox, selection, cft); - } - public static bool IsItalic(RichTextBox richTextBox) - { - CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION); - return (((cft.dwMask & CharFormatMasks.CFM_ITALIC) == CharFormatMasks.CFM_ITALIC) && - ((cft.dwEffects & CharFormatEffects.CFE_ITALIC) == CharFormatEffects.CFE_ITALIC)); - } - public static void ToggleItalic(bool bSet, RichTextBox richTextBox, RTBSelection selection) - { - CharFormatTwo cft = GetCharFormat(richTextBox, selection); - if (bSet) - { - cft.dwEffects = CharFormatEffects.CFE_ITALIC; - cft.dwMask = CharFormatMasks.CFM_ITALIC; - } - else - { - cft.dwEffects = CharFormatEffects.CFE_NONE; - cft.dwMask = CharFormatMasks.CFM_ITALIC; - } - SetCharFormat(richTextBox, selection, cft); - } - //public static bool IsLink(RichTextBox richTextBox) - //{ - // CharFormatTwo cft = GetCharFormat(richTextBox, RTBSelection.SCF_SELECTION); - // return ((cft.dwEffects & CharFormatEffects.CFE_PROTECTED) == CharFormatEffects.CFE_PROTECTED); - //} - //public static void ToggleLink(bool bSet, RichTextBox richTextBox, RTBSelection selection) - //{ - // CharFormatTwo cft = GetCharFormat(richTextBox, selection); - // if (bSet) - // { - // cft.dwEffects |= CharFormatEffects.CFE_LINK; - // cft.dwMask |= CharFormatMasks.CFM_LINK; - // } - // else - // { - // cft.dwEffects &= ~RTBAPI.CharFormatEffects.CFE_LINK; - // } - // SetCharFormat(richTextBox, selection, cft); - //} - //public static void UnProtect(RichTextBox richTextBox) //, string type, string text, string link) - //{ - // //richTextBox.DetectUrls = false; - // CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ; - // //int position = richTextBox.SelectionStart = richTextBox.TextLength; - // //richTextBox.SelectionLength = 0; - // //richTextBox.SelectedRtf = @"{\rtf1\ansi " + text + @"\v #" + link + @"\v0}"; - // //richTextBox.SelectedRtf = "{" + string.Format(@"\rtf1\ansi\protect\v {0}\v0 {1}\v #{2}", type, text, link) + "}"; - // //richTextBox.Select(position, type.Length + text.Length + link.Length + 1); - // cft.dwMask = RTBAPI.CharFormatMasks.CFM_PROTECTED; - // cft.dwEffects = 0; - // // The lines below can be used to allow link text to be edited - // //charFormat.dwMask = RTBAPI.CharFormatMasks.CFM_LINK; - // //charFormat.dwEffects = RTBAPI.CharFormatEffects.CFE_LINK; - // SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - // //rtbRTF.SetSelectionLink(true); - // //richTextBox.SelectionStart = richTextBox.TextLength; - // //richTextBox.SelectionLength = 0; - //} - //public static void Protect(RichTextBox richTextBox) //, string type, string text, string link) - //{ - // CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ; - // cft.dwMask = CharFormatMasks.CFM_PROTECTED; - // cft.dwEffects = CharFormatEffects.CFE_PROTECTED; - // SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - //} - //public static void SetLink(RichTextBox richTextBox, string type, string text, string link) - //{ - // richTextBox.DetectUrls = false; - // CharFormatTwo cft = GetCharFormat(richTextBox, RTBAPI.RTBSelection.SCF_SELECTION); ; - // int position = richTextBox.SelectionStart = richTextBox.TextLength; - // richTextBox.SelectionLength = 0; - // //richTextBox.SelectedRtf = @"{\rtf1\ansi " + text + @"\v #" + link + @"\v0}"; - // richTextBox.SelectedRtf = "{" + string.Format(@"\rtf1\ansi\protect\v {0}\v0 {1}\v #{2}", type, text, link) + "}"; - // richTextBox.Select(position, type.Length + text.Length + link.Length + 1); - // cft.dwMask = RTBAPI.CharFormatMasks.CFM_LINK | RTBAPI.CharFormatMasks.CFM_PROTECTED; - // cft.dwEffects = RTBAPI.CharFormatEffects.CFE_LINK | RTBAPI.CharFormatEffects.CFE_PROTECTED; - // // The lines below can be used to allow link text to be edited - // //charFormat.dwMask = RTBAPI.CharFormatMasks.CFM_LINK; - // //charFormat.dwEffects = RTBAPI.CharFormatEffects.CFE_LINK; - // SetCharFormat(richTextBox, RTBSelection.SCF_SELECTION, cft); - // //rtbRTF.SetSelectionLink(true); - // richTextBox.SelectionStart = richTextBox.TextLength; - // richTextBox.SelectionLength = 0; - //} - #endregion - } - - - // Demand unmanaged code permission to use this class. - [SecurityPermission(SecurityAction.Demand, UnmanagedCode = true)] - sealed class SafeUnmanagedMemoryHandle : SafeHandleZeroOrMinusOneIsInvalid - { - - // Set ownsHandle to true for the default constructor. - internal SafeUnmanagedMemoryHandle() : base(true) { } - - // Set the handle and set ownsHandle to true. - internal SafeUnmanagedMemoryHandle(IntPtr preexistingHandle, bool ownsHandle) - : base(ownsHandle) - { - SetHandle(preexistingHandle); - } - - // Perform any specific actions to release the - // handle in the ReleaseHandle method. - // Often, you need to use Pinvoke to make - // a call into the Win32 API to release the - // handle. In this case, however, we can use - // the Marshal class to release the unmanaged - // memory. - override protected bool ReleaseHandle() - { - // "handle" is the internal - // value for the IntPtr handle. - - // If the handle was set, - // free it. Return success. - if (handle != IntPtr.Zero) - { - Close(); - - //// Free the handle. - //Marshal.FreeHGlobal(handle); - - //// Set the handle to zero. - //handle = IntPtr.Zero; - - // Return success. - return true; - - } - - // Return false. - return false; - - } - } - -} diff --git a/PROMS/Volian.Controls.Library/RTBItem - Copy.cs b/PROMS/Volian.Controls.Library/RTBItem - Copy.cs deleted file mode 100644 index f3f8cbe4..00000000 --- a/PROMS/Volian.Controls.Library/RTBItem - Copy.cs +++ /dev/null @@ -1,908 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Text.RegularExpressions; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; - -namespace Volian.Controls.Library -{ - #region Enums - public enum ExpandingStatus : int - { - No = 0, - Expanding = 1, - Colapsing = 2, - Hiding = 4, - Showing = 8, - Done = 16 - } - #endregion - public partial class RTBItem : EditItem - { - #region Private Fields - - public Label MyLabel - { get { return lblTab; } } - /// - /// Used to connect the RichTextBox with the menus and toolbars - /// - public override StepRTB MyStepRTB - { - get { return _MyStepRTB; } - } - public override int TableWidth { get { return (int)GetTableWidth(_MyStepRTB.Font, MyItemInfo.MyContent.Text, true); } } - - /// - /// The left edge of the Tab - /// - public override int ItemLeft - { - get { return Left + lblTab.Left; } - set { Left = value - lblTab.Left; } - } - /// - /// The Location of the Tab - /// - public override Point ItemLocation - { - get { return new Point(Location.X + lblTab.Left, Location.Y); } - set { Location = new Point(value.X - lblTab.Left, value.Y); } - } - /// - /// Width of the Tab and RTB - /// - public override int ItemWidth - { - get { return Width - lblTab.Left; } - set - { - Width = CheckOffMargin + RTBMargin + value + lblTab.Left; - } - } - /// - /// Width of the RichTextBox - /// - public override int ContentWidth - { - get { return _MyStepRTB.Width; } - set - { - // This is wrong for single column (KBR) - RHM Debug: - //MyStepRTB.Width = value; - Width = value + lblTab.Left + lblTab.Width + (this.Width - MyStepRTB.Right); - } - } - public override int BorderWidth { get { return (_MyStepRTB.Width - _MyStepRTB.ClientRectangle.Width); } } - /// - /// Location of the RichTextBox - /// - public override Point ContentLocation - { - get { return new Point(Location.X + _MyStepRTB.Left, Location.Y); } - set { Location = new Point(value.X - _MyStepRTB.Left, value.Y); } - } - /// - /// Left edge of the RichTextBox - /// - public override int ContentLeft - { - get { return Left + _MyStepRTB.Left; } - } - /// - /// Returns the status of the vlnExpander unless it is in the process of expanding or collapsing - /// If it is colapsing it returns false - /// If it is expanding it returns true - /// - public override bool Expanded - { - get - { - return !Colapsing && (MyExpandingStatus != ExpandingStatus.No || _MyvlnExpander.Expanded); - } - set - { - _MyvlnExpander.Expanded = value; - } - } - - #endregion - #region IEditItem - override public void AdjustTableWidthAndLocation() - { - _MyStepRTB.Font = MyStepData.Font.WindowsFont; - ItemWidth = (int)GetTableWidth(_MyStepRTB.Font, MyItemInfo.MyContent.Text, true); - ItemLocation = new Point(50, _MyParentEditItem.Bottom); - ItemLocation = TableLocation(_MyParentEditItem, MyStepSectionLayoutData, ItemWidth); - } - - override public void SetToolTip(string tip) - { - DevComponents.DotNetBar.SuperTooltipInfo tpi = new DevComponents.DotNetBar.SuperTooltipInfo("", "", tip, null, null, DevComponents.DotNetBar.eTooltipColor.Lemon); - _MyToolTip.MinimumTooltipSize = new Size(0, 24); - _MyToolTip.TooltipDuration = 3; - _MyToolTip.SetSuperTooltip(MyStepRTB, tpi); - } - public override void RefreshContent() - { - MyStepRTB.RefreshDisplay(); - IdentifyMe(false); - SetExpandAndExpander(MyItemInfo); - } - public override void RefreshOrdinal() - { - TabFormat = null; // Reset Tab - } - /// - /// Tab Format used for outputing the Tab - /// - - public override string TabFormat - { - get - { - if (_TabFormat == null) TabFormat = null; // execute 'set' code. - return _TabFormat; - } - set - { - if (MyItemInfo != null) - { - ItemInfo.ResetTabString(MyID); - string tabString = MyItemInfo.IsSection ? MyItemInfo.DisplayNumber.PadRight(MyItemInfo.MyTab.CleanText.Length) : MyItemInfo.MyTab.CleanText; - //string tabString = /*MyItemInfo.IsSection ? MyItemInfo.DisplayNumber : */ MyItemInfo.MyTab.CleanText; - - lblTab.Text = tabString; - // calculate the width based upon characters per inch considering user's DPI - int cpi = MyItemInfo.IsStep ? (int)MyItemInfo.FormatStepData.TabData.Font.CPI : 12; - - // if the tab ends with a single digit & has a '.' before it, add space for the possibility - // that the number can be two digits, for example... 8.1.9 goes to 8.1.10. We want - // the step windows to line up, so the 8.1.9 has one character more space (lastDigitSingle) - bool lastDigitSingle = Regex.IsMatch(tabString, "^.*[^0-9][0-9] *$"); - lblTab.Width = ((lastDigitSingle ? 1 : 0) + tabString.Length) * MyStepPanel.DPI / cpi; - Invalidate(); - if (MyItemInfo.MyTab.Offset == 0) - { - // In the following if statement, the last part, 'IsHigh & PageBreakOnStep' (PageBreakOnStep - // flags background steps and IsHigh is for the HLS - Cautions/Notes were ok), was added - // for hls in background documents - without this, the tab gets overwritten by the rtb. - if (MyItemInfo.FormatStepData == null || MyItemInfo.FormatStepData.TabData.IdentEdit.Contains("{Section Prefix}") || !MyItemInfo.IsHigh || - (MyItemInfo.IsHigh && MyItemInfo.FormatStepData.PageBreakOnStep)) - _MyStepRTB.Left = lblTab.Left + lblTab.Width; - _MyStepRTB.Width = Width - _MyStepRTB.Left - RTBMargin - CheckOffMargin; - } - _TabFormat = value; - } - } - } - - #endregion - #region Properties - private static int _RTBMargin = 3; - /// - /// Margin between the EditItem and the StepRTB. Appears on the Right. - /// Will allow space to draw a Change Bar on the right side of the EditItem. - /// - public static int RTBMargin - { - get { return _RTBMargin; } - set { _RTBMargin = value; } - } - private int? _CheckOffMargin = null; - /// - /// Margin between the EditItem and the StepRTB. Appears on the Right. - /// Will allow space to draw a CheckOff on the right side of the EditItem. - /// - public int CheckOffMargin - { - get - { - if (_CheckOffMargin == null) - { - if (MyItemInfo == null) _CheckOffMargin = 0; - else - { - if (!MyItemInfo.IsStep || !MyItemInfo.SectionHasCheckOffs()) _CheckOffMargin = 0; - else - { - Graphics g = CreateGraphics(); - SizeF sz = g.MeasureString("M", MyItemInfo.FormatStepData.Font.WindowsFont); - _CheckOffMargin = (int)sz.Width; - } - } - } - return (int)_CheckOffMargin; - } - set { _CheckOffMargin = value; } - } - #endregion - #region Constructors - public RTBItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand) - { - //// TIMING: DisplayItem.TimeIt("CSLARTB Top"); - InitializeComponent();// TODO: Performance 25% - SetupEditItem(itemInfo, myStepPanel, myParentEditItem, myChildRelation, expand, null, false); - MyStepRTB.TextChanged += new EventHandler(MyStepRTB_TextChanged); - } - public RTBItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand, EditItem nextEditItem) - { - //// TIMING: DisplayItem.TimeIt("CSLARTB Top"); - InitializeComponent();// TODO: Performance 25% - SetupEditItem(itemInfo, myStepPanel, myParentEditItem, myChildRelation, expand, nextEditItem, false); - MyStepRTB.TextChanged += new EventHandler(MyStepRTB_TextChanged); - } - public RTBItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand, bool addFirstChld) - { - //// TIMING: DisplayItem.TimeIt("CSLARTB Top"); - InitializeComponent();// TODO: Performance 25% - SetupEditItem(itemInfo, myStepPanel, myParentEditItem, myChildRelation, expand, null, addFirstChld); - MyStepRTB.TextChanged += new EventHandler(MyStepRTB_TextChanged); - } - //private void SetupRTBItem(ItemInfo itemInfo, StepPanel myStepPanel, EditItem myParentEditItem, ChildRelation myChildRelation, bool expand, EditItem nextEditItem) - //{ - // //if (itemInfo.ItemID == 225) _MyStepRTB.Resize += new EventHandler(_MyStepRTB_Resize); - // //_MyStepRTB.MyRTBItem = this; - // //// TIMING: DisplayItem.TimeIt("CSLARTB InitComp"); - // BackColor = myStepPanel.PanelColor; - // //_MyStepRTB.BackColor = myStepPanel.InactiveColor; - // // TODO: Adjust top based upon format - // // TODO: Remove Label and just output ident on the paint event - // lblTab.Left = 20; - // SetupHeader(itemInfo); - // this.Paint += new PaintEventHandler(RTBItem_Paint); - // this.BackColorChanged += new EventHandler(RTBItem_BackColorChanged); - // if (itemInfo != null) - // { - // ContentType = (int)itemInfo.MyContent.Type; - // switch (ContentType / 10000) - // { - // case 0: // Procedure - // _MyStepRTB.Font = myStepPanel.ProcFont;// lblTab.Font = myStepPanel.ProcFont; - // lblTab.Font = itemInfo.MyTab.MyFont.WindowsFont; - // break; - // case 1: // Section - // _MyStepRTB.Font = myStepPanel.SectFont;// lblTab.Font = myStepPanel.SectFont; - // lblTab.Font = itemInfo.MyTab.MyFont.WindowsFont; - // break; - // case 2: // Steps - // _MyStepRTB.Font = myStepPanel.StepFont;//lblTab.Font = myStepPanel.StepFont; - // lblTab.Font = itemInfo.MyTab.MyFont.WindowsFont; - // MyStepData = itemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[ContentType % 10000]; - // break; - // } - // //this.Move += new EventHandler(DisplayItem_Move); - // } - // else - // { - // if (myStepPanel.MyFont != null) _MyStepRTB.Font = lblTab.Font = myStepPanel.MyFont; - // } - // if (expand) _MyvlnExpander.ShowExpanded(); - // MyStepPanel = myStepPanel; - // if (itemInfo != null) myStepPanel._LookupEditItems.Add(itemInfo.ItemID, this); - // _MyChildRelation = myChildRelation; - // if (myParentEditItem != null) RNOLevel = myParentEditItem.RNOLevel; - // if (itemInfo != null) - // { - // //// TIMING: DisplayItem.TimeIt("CSLARTB before _Layout"); - // MyStepSectionLayoutData = itemInfo.ActiveFormat.MyStepSectionLayoutData; - // //// TIMING: DisplayItem.TimeIt("CSLARTB _Layout"); - // if (myParentEditItem != null) - // SeqLevel = myParentEditItem.SeqLevel + ((myChildRelation == ChildRelation.After || myChildRelation == ChildRelation.Before) && itemInfo.IsSequential ? 1 : 0); - // //// TIMING: DisplayItem.TimeIt("CSLARTB seqLevel"); - // MyItemInfo = itemInfo; - // MyItemInfo.MyConfig.PropertyChanged += new PropertyChangedEventHandler(MyConfig_PropertyChanged); - // } - // //// TIMING: DisplayItem.TimeIt("CSLARTB MyItem"); - // myStepPanel.Controls.Add(this); - - // switch (myChildRelation) - // { - // case ChildRelation.After: - // AddItem(myParentEditItem, ref myParentEditItem._MyAfterEditItems, nextEditItem); - // break; - // case ChildRelation.Before: - // AddItem(myParentEditItem, ref myParentEditItem._MyBeforeEditItems, nextEditItem); - // break; - // case ChildRelation.RNO: - // RNOLevel = myParentEditItem.RNOLevel + 1; - // AddItem(myParentEditItem, ref myParentEditItem._MyRNOEditItems, nextEditItem); - // break; - // case ChildRelation.None: - // break; - // } - // if (itemInfo != null) - // { - // if (myChildRelation == ChildRelation.None) - // { - // if (ContentType == 0 && MyStepSectionLayoutData != null) - // { - // LastMethodsPush(string.Format("SetupRTBItem {0}", MyID)); - // Width = MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidT); - // } - // } - // } - // //// TIMING: DisplayItem.TimeIt("CSLARTB Parent"); - // SetText(); - // //// TIMING: DisplayItem.TimeIt("CSLARTB SetText"); - // if (itemInfo != null) - // { - // Name = string.Format("Item-{0}", itemInfo.ItemID); - // SetExpandAndExpander(itemInfo); - // if (expand && (itemInfo.MyContent.ContentPartCount != 0)) // If it should expand and it can expand - // Expand(true); - // else - // if (myParentEditItem == null)// If it is the top node - // if (ContentType >= 20000) // and it is a step - fully expand - // Expand(true); - // else // otherwise only expand one level - // Expand(false); - // } - // //// TIMING: DisplayItem.TimeIt("CSLARTB before Controls Add"); - // //myStepPanel.Controls.Add(this); - // int top = FindTop(0); - // if (Top < top) - // { - // LastMethodsPush("SetupRTBItem"); - // MyStepPanel.ItemMoving++; - // Top = top; - // MyStepPanel.ItemMoving--; - // LastMethodsPop(); - // } - // _Loading = false; - // //// TIMING: DisplayItem.TimeIt("CSLARTB Controls Add"); - //} - private void SetupHeader() - { - SetupHeader(MyItemInfo); - LastMethodsPush("SetupHeader"); - Height = _MyStepRTB.Height + _MyStepRTB.Top + 7; - LastMethodsPop(); - } - void _MyStepRTB_Resize(object sender, EventArgs e) - { - if (MyStepPanel != null && this == MyStepPanel.SelectedEditItem) - ScrollToCenter(); - //MyStepPanel.ScrollControlIntoView(this); - } - void MyStepRTB_TextChanged(object sender, EventArgs e) - { - if (MyStepPanel != null && this == MyStepPanel.SelectedEditItem) - ScrollToCenter(); - //MyStepPanel.ScrollControlIntoView(this); - } - private Label lblHeader = null; - private Label lblFooter = null; - private void SetupHeaderFooter(ref Label lbl, string name, MetaTag mTag) - { - if (lbl == null) lbl = new Label(); - lbl.BackColor = System.Drawing.Color.Transparent; - lbl.Location = new System.Drawing.Point(0, 0); - lbl.Name = name; - lbl.Size = new System.Drawing.Size(this.Width, 23); - lbl.Visible = true; - lbl.Font = mTag.MyFont.WindowsFont; - lbl.Text = mTag.CleanText; - lbl.TextAlign = mTag.Justify; - this.Controls.Add(lbl); - } - #endregion - #region EventHandlers - /// - /// When the RichTextBox height changes, change the height of the control to match - /// - /// - /// - private void _MyStepRTB_HeightChanged(object sender, EventArgs args) - { - if (this.Height != _MyStepRTB.Height + _MyStepRTB.Top + 7) // add in 7 to make it look good // + 10) - { - LastMethodsPush(string.Format("_StepRTB_HeightChanged {0}", _MyStepRTB.Height)); - this.Height = _MyStepRTB.Height + _MyStepRTB.Top + 7; - LastMethodsPop(); - } - } - /// - /// When a RichTextBox is entered, the selected StepRTB is set - /// - /// - /// - private void _StepRTB_Enter(object sender, EventArgs e) - { - if (MyStepPanel.DisplayItemChanging) return; - //vlnStackTrace.ShowStack("_StepRTB_Enter {0}",this.MyID); - MyStepPanel.SelectedEditItem = this; - } - /// - /// Pass the AttachmentClick event to the StepPanel control. - /// - /// - /// - private void vlnExp_AttachmentClick(object sender, vlnExpanderEventArgs args) - { - if (_MyvlnExpander.AutoTOC) return; - - MyStepPanel.OnAttachmentClicked(sender, new StepPanelAttachmentEventArgs(this)); - } - /// - /// Handle the colape event - /// - /// - /// - private void vlnExp_BeforeColapse(object sender, vlnExpanderEventArgs args) - { - Cursor tmp = Cursor.Current; - Cursor.Current = Cursors.WaitCursor; - int top = TopMostEditItem.Top;// This doesn't work - this is since the last time it was expanded. - int topOffset = TopMostEditItem.Top + MyStepPanel.VerticalScroll.Value; - Colapsing = true; - // Hide Children - HideChildren(); - // Adjust Positions - int topOffsetAfter = TopMostEditItem.Top + MyStepPanel.VerticalScroll.Value; - ExpandPrefix = topOffset - topOffsetAfter; - //ExpandSuffix = BottomMostEditItem.Bottom - Bottom; - if (topOffsetAfter != topOffset) - { - LastMethodsPush(string.Format("Colapse {0}", MyID)); - MyStepPanel.ItemMoving++; - Top += (topOffset - topOffsetAfter); - MyStepPanel.ItemMoving--; - LastMethodsPop(); - } - else - AdjustLocation(); - BottomMostEditItem.AdjustLocation(); - Colapsing = false; - Cursor.Current = tmp; - } - /// - /// Handle the expand event - /// - /// - /// - private void vlnExp_BeforeExpand(object sender, vlnExpanderEventArgs args) - { - Cursor tmp = Cursor.Current; - Cursor.Current = Cursors.WaitCursor; - if (!_Loading && MyExpandingStatus == ExpandingStatus.No) - { - if (MyStepPanel.AutoExpand) - Expand((ContentType >= 20000) || MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format); - else - Expand(false); - } - Cursor.Current = tmp; - } - - /// - /// Raises an ItemClick event when the user clicks on the Tab - /// - /// - /// - private void lblTab_MouseDown(object sender, MouseEventArgs e) - { - MyStepPanel.OnItemClick(this, new StepPanelEventArgs(this, e)); - } - /// - /// Handle the LinkGoTO event - /// - /// - /// - private void _MyStepRTB_LinkGoTo(object sender, StepPanelLinkEventArgs args) - { - _MyLog.DebugFormat("_DisplayRTB_LinkGoTo " + args.LinkInfoText); - MyStepPanel.OnLinkClicked(sender, args); - } - void _MyStepRTB_RoInsert(object sender, StepRTBRoEventArgs args) - { - MyStepRTB.UpdateStepRtb(args.LinkText, args.ValText); - } - - /// - /// Raise a OnLinkModifyTran event, when the user chooses to Modify a transition - /// - /// - /// - private void _MyStepRTB_LinkModifyTran(object sender, StepPanelLinkEventArgs args) - { - MyStepPanel.OnLinkModifyTran(sender, args); - } - /// - /// Raise a OnLinkModifyRO event, when the user chooses to modify an RO - /// - /// - /// - private void _MyStepRTB_LinkModifyRO(object sender, StepPanelLinkEventArgs args) - { - MyStepPanel.OnLinkModifyRO(sender, args); - } - private void _MyStepRTB_CursorKeyPress(object sender, KeyEventArgs args) - { - MyStepPanel.StepCursorKeys(this, args); - } - private void _MyStepRTB_CursorMovement(object sender, StepRTBCursorMovementEventArgs args) - { - MyStepPanel.CursorMovement(this, args.CursorLocation, args.Key); - } - //private void _MyStepRTB_ModeChange(object sender, StepRTBModeChangeEventArgs args) - //{ - // MyStepPanel.OnModeChange(sender as StepRTB, args); - //} - void _MyStepRTB_SetMenu(object sender, StepRTBMenuEventArgs args) - { - if (args.MenuGroup == null) - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ClearContextMenu(); - else if (args.MenuGroup == "OpenContextMenu") - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetContextMenu(); - else - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.SetShortCutContextMenu(args.MenuGroup); - } - void _MyStepRTB_AdjustTableWidth(object sender, StepRTBTableWidthEventArgs args) - { - //if ((!_MyItemInfo.IsSection && !_MyItemInfo.IsProcedure) && (_MyItemInfo.IsTable || _MyItemInfo.IsFigure)) - if (MyItemInfo.IsTable || MyItemInfo.IsFigure) - { - if (args.EditMode) - { - // First get ColR - int colR = MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColRTable, MyItemInfo.ColumnMode); - // Second get WidS - int widS = /* _WidthAdjust + borderWidth + */ MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, MyItemInfo.ColumnMode); - //int wNew = MyRTBItem.MyStepPanel.ToDisplay(MyRTBItem.MyStepSectionLayoutData.WidT); - int wNew = 70 + widS + colR * MyItemInfo.ColumnMode; - if (wNew > ItemWidth) - { - ItemWidth = wNew; - ItemLocation = TableLocation(MyParentEditItem, MyStepSectionLayoutData, wNew); - } - } - else - { - int newwidth = (int)GetTableWidth(MyStepRTB.Font, MyStepRTB.Text, false); - if (ItemWidth != newwidth) - { - ItemWidth = newwidth; - ItemLocation = TableLocation(MyParentEditItem, MyStepSectionLayoutData, newwidth); - } - } - } - } - /// - /// Calculate TableWidth based upon the the contents - /// - /// - /// - /// - /// - private float GetTableWidth(Font myFont, string txt, bool addBorder) - { - string[] lines = txt.Split("\n".ToCharArray()); - float max = 0; - using (Graphics g = this.CreateGraphics()) - { - PointF pnt = new PointF(0, 0); - foreach (string line in lines) - { - string lineAdj = Regex.Replace(line, @"\\u....\?", "X"); // Replace Special characters - //line2 = Regex.Replace(line2, @"\\.*? ", ""); // Remove RTF Commands - Really should not be any - lineAdj = StepRTB.RemoveLinkComments(lineAdj); - // MeasureString doesn't work properly if the line include graphics characters. - // So, Measure a string of the same length with 'M's. - SizeF siz = g.MeasureString("".PadLeft(lineAdj.Length + (addBorder ? 2 : 0), 'M'), myFont, pnt, StringFormat.GenericTypographic); - float wid = siz.Width; - if (wid > max) - { - max = wid; - } - } - } - float widLimit = (float)MyStepPanel.ToDisplay(MyStepSectionLayoutData.WidSTableEdit, MyItemInfo.ColumnMode); - widLimit += (float)MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColS); - widLimit += (float)MyStepPanel.ToDisplay(MyStepSectionLayoutData.ColRTable, MyItemInfo.ColumnMode); - max += MyStepPanel.MyStepPanelSettings.TableWidthAdjust; - return Math.Min(max, widLimit); - } - bool _MyStepRTB_IsNotCurrentSelection(object sender, System.EventArgs args) - { - return MyStepPanel.SelectedEditItem != this; - } - void _MyStepRTB_OpenAnnotations(object sender, System.EventArgs args) - { - OpenAnnotations(); - } - void _MyStepRTB_InsertPgBrk(object sender, System.EventArgs args) - { - InsertPgBrk(); - } - void _MyStepRTB_EnterKeyPressed(object sender, System.Windows.Forms.KeyEventArgs args) - { - if (!MyItemInfo.IsTablePart) - { - args.Handled = true; - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.ProcessEnterKey(); - } - } - bool _MyStepRTB_CheckClipboard(object sender, System.EventArgs args) - { - return CheckClipboard(); - } - void _MyStepRTB_CopyStep(object sender, System.EventArgs args) - { - CopyStep(); - } - void _MyStepRTB_OpenContextMenu(object sender, StepRTBLocationEventArgs args) - { - MyStepPanel.MyStepTabPanel.MyStepTabRibbon.OpenContextMenu(args.Location); - } - void _MyStepRTB_DoMouseWheel(object sender, System.Windows.Forms.MouseEventArgs args) - { - DoMouseWheel(args); - } - void _MyStepRTB_DoSaveContents(object sender, System.EventArgs args) - { - SaveContents(); - } - #endregion - #region override methods - public override void RefreshTab() - { - TabFormat = null; - SetupHeader(); - } - public override void SetFocus() - { - MyStepRTB.Focus(); - } - public override void SaveContents() - { - MyStepRTB.Visible = false; - while (MyStepRTB.Text.Contains("\\")) - { - int loc = MyStepRTB.Text.IndexOf("\\"); - MyStepRTB.SelectionStart = loc; - MyStepRTB.SelectionLength = 1; - MyStepRTB.SelectedText = ""; - } - SaveText(); - - MyStepRTB.Visible = true; - SaveConfig(); // This may be redundant - } - public void SaveText() - { - if (MyStepRTB.ReadOnly) return; - if (!MyStepRTB.ActiveMode) return; - if (MyStepRTB.MyItemInfo.MyContent.Number != null && !MyStepRTB.IsDirty && MyStepRTB.Text.Contains("(Resolved Transition Text)") == false) return; - bool success = MyStepRTB.OrigDisplayText.Save((RichTextBox)MyStepRTB); - if (success) - { - StepConfig sc = MyStepRTB.MyItemInfo.MyConfig as StepConfig; - // if the plant has the change id option, the change id was entered when the program started. - // this should be saved for every piece of edited data. Note that the set of config - // item Step_MultipleChangeID has the save built in to it. - if (MyStepRTB.MyItemInfo.IsStep && - MyStepRTB.MyItemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds - && !this.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.EditorialChange) - { - //StepConfig sc = MyStepRTB.MyItemInfo.MyConfig as StepConfig; - if (sc == null) sc = new StepConfig(); - sc.Step_ChangeID = this.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.ChgId; - //if (MyStepRTB.MyItemInfo.MyConfig == null) itm.MyContent.Config = sc.ToString(); - } - // We saved changes made to some step text. Reset the change bar override. - // IF there is a step config remove the change bar override by setting the CBOverride value to null - // This fixes a problem reported by Farly where if the change bar or overridden to be off, the next - // time a change was made, the change bar remained turned off. - if (sc != null) - sc.Step_CBOverride = null; // clear the change bar override - MyStepRTB.FindAllLinks(); - MyStepRTB.OrigRTF = MyStepRTB.Rtf; - MyStepRTB.ClearUndo(); - } - } - //public override void SetBackgroundColor() - //{ - // MyStepRTB.SetBackColor(); - //} - public override void IdentifyMe(bool highlight) - { - if (highlight) - MyStepRTB.BackColor = Color.Gray; - else - { - if (MyStepRTB.Focused) // If active Set BackColor to the active color - MyStepRTB.BackColor = MyStepPanel.ActiveColor; - else // Otherwise Set the BackColor to either the InactiveColor or the AnnotationColor - MyStepRTB.BackColor = MyItemInfo.ItemAnnotationCount == 0 ? MyStepPanel.InactiveColor : MyStepPanel.AnnotationColor; - } - } - /// - /// Gets or Sets the ability to expand - /// - public override bool CanExpand - { - get { return _MyvlnExpander.Visible; } - set { _MyvlnExpander.Visible = value; } - } - public override void HandleResize() - { - if (lblHeader != null) lblHeader.Width = this.Width; - } - public override void MatchExpanded() - { - if (!_MyvlnExpander.Expanded) - _MyvlnExpander.ShowExpanded(); - } - /// - /// Sets the focus to this RTBItem and positions the cursor to the begining of the string - /// - public override void ItemSelect() - { - // Was getting an Error that _MyStepRTB was Disposed RHM 20101217 - if (!_MyStepRTB.Disposing && !MyStepRTB.Closed) - { - _MyStepRTB.Focus(); - _MyStepRTB.Select(0, 0); - } - else - { - _MyLog.WarnFormat("Attempt to give Focus to Disposed Object {0}", MyID); - } - // if (CanExpand) AutoExpand(); // Expand the item if you can - ScrollToCenter(); - } - /// - /// Sets the focus to this RTBItem - /// - public override void ItemShow() - { - _MyStepRTB.Focus(); - ScrollToCenter(); - } - public override DialogResult ReplaceText(string rpltxt, string fndstr, bool caseSensitive, bool matchWholeWord, bool reverse, bool prompt, IWin32Window fndrpldlg) - { - return MyStepRTB.ReplaceText(rpltxt, fndstr, caseSensitive, matchWholeWord, reverse, prompt, fndrpldlg); - } - public override bool FindText(string str, bool caseSensitive, bool matchWholeWord, bool reverse) - { - return MyStepRTB.FindText(str, caseSensitive, matchWholeWord, reverse); - } - public override void PositionToEnd() - { - MyStepRTB.SelectionStart = MyStepRTB.Text.Length; - } - public override void PositionToStart() - { - return; - } - public override string SelectedTextForFind - { - get - { - StepRTB srtb = MyStepRTB; - if (srtb.SelectionLength > 0) - { - if (srtb.IsSelectionLinked(srtb.SelectionStart, srtb.SelectionLength)) - return srtb.SelectedText.Substring(0, srtb.SelectedText.IndexOf("#Link")); - else - return srtb.SelectedText; - } - return null; - } - } - public override bool SpellCheckNext() - { - return MyStepRTB.SpellCheckNext(); - } - public override void SetActive() - { - MyStepRTB.BackColor = MyStepPanel.ActiveColor; - } - public override bool Empty - { - get - { - // Console.WriteLine("step rtb is dirty {0} and rtf is {1}", MyStepRTB.IsDirty, MyStepRTB.Rtf); - // string txt = MyStepRTB.Text; - // Console.WriteLine("step rtb is dirty {0} and rtf is {1}", MyStepRTB.IsDirty, MyStepRTB.Rtf); - // return txt == ""; - //return MyStepRTB.IsEmpty; - return MyStepRTB.Text == ""; - } - set { MyStepRTB.Text = value ? "" : " "; } - } - //public override bool IsEmpty() // this becomes 'Empty' property, i.e. get/set. - //{ // for the set, emtpy is following line (= not ==). - // // for not empty - it's code that is in 'MakeNotEmpty' - // return MyStepRTB.Text == ""; - //} - //public override void MakeNotEmpty() - //{ - // MyStepRTB.Text = " "; - //} - public override void RefreshDisplay(bool activeMode) - { - MyStepRTB.VwMode = MyStepPanel.VwMode; - MyStepRTB.RefreshDisplay(activeMode); - //MyStepRTB.ViewRTB = !activeMode; - } - public override void ToggleEditView(E_ViewMode vwMode) - { - SaveContents(); - MyStepRTB.VwMode = vwMode; - MyStepRTB.RefreshDisplay(); - MyStepRTB.SelectionStart = 0; - MyStepRTB.SelectionLength = 0; - } - public override int TabLeft { get { return lblTab.Left; } set { lblTab.Left = value; } } - public override Font TabFont { get { return lblTab.Font; } set { lblTab.Font = value; } } - public override string TabText { get { return lblTab.Text; } } - public override Point TabLocation { get { return lblTab.Location; } } - public override Font ContentFont { get { return MyStepRTB.Font; } set { MyStepRTB.Font = value; } } - public override float ContentTop { get { return MyStepRTB.Top; } } - public override void SetupHeader(ItemInfo itemInfo) - { - lblTab.Top = 3 + ((itemInfo.HasHeader) ? 23 : 0); - _MyStepRTB.Top = lblTab.Top; // 3 + ((itemInfo.HasHeader) ? 23 : 0); - //lblTab.Move += new EventHandler(lblTab_Move); - if (itemInfo.HasHeader) - SetupHeaderFooter(ref lblHeader, "Header", itemInfo.MyHeader); - else - { - // remove header from screen if it exists: - this.Controls.Remove(lblHeader); - lblHeader = null; - } - } - public override void ShowExpanded() - { - _MyvlnExpander.ShowExpanded(); - } - /// - /// Sets the Item and as a result the text for the RichTextBox - /// - public override void SetText() - { - LastMethodsPush("SetText"); - if (MyItemInfo != null) - { - MyStepRTB.MyItemInfo = MyItemInfo; - MyStepRTB.RefreshDisplay(); - IdentifyMe(false); - } - LastMethodsPop(); - } - public override void SetExpandAndExpander(ItemInfo itemInfo) - { - // Don't allow substeps to expand - switch (ContentType / 10000) - { - case 1: // Section can expand - CanExpand = true; - // If a word document set the expander to attachment - _MyvlnExpander.Attachment = !(itemInfo.IsStepSection); - _MyvlnExpander.AutoTOC = itemInfo.IsAutoTOCSection; - //OLD: _MyvlnExpander.Attachment = (itemInfo.MyContent.ContentPartCount == 0); - break; - case 2: // High level steps with children can expand - if(MyStepPanel.AutoExpand) - CanExpand = itemInfo.IsHigh && !MyItemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format && itemInfo.HasChildren; // TemporaryFormat.IsHigh(item); ; - else - CanExpand = itemInfo.HasChildren; - break; - default://Procedures cannot expand, because they automatically expand - CanExpand = false; - break; - } - } - public override void SaveCurrentAndContents() - { - SaveContents(); - } - #endregion - } -} diff --git a/PROMS/Volian.Controls.Library/RTBItem - Copy.resx b/PROMS/Volian.Controls.Library/RTBItem - Copy.resx deleted file mode 100644 index 93e3f68d..00000000 --- a/PROMS/Volian.Controls.Library/RTBItem - Copy.resx +++ /dev/null @@ -1,135 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - True - - - 148, 17 - - - True - - - True - - - True - - \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/RTBItem.designer - Copy.cs b/PROMS/Volian.Controls.Library/RTBItem.designer - Copy.cs deleted file mode 100644 index fffbff97..00000000 Binary files a/PROMS/Volian.Controls.Library/RTBItem.designer - Copy.cs and /dev/null differ diff --git a/PROMS/Volian.Controls.Library/StepPanel.cs.bak b/PROMS/Volian.Controls.Library/StepPanel.cs.bak deleted file mode 100644 index 2605421e..00000000 --- a/PROMS/Volian.Controls.Library/StepPanel.cs.bak +++ /dev/null @@ -1,1045 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; -using System.Windows.Forms; -using VEPROMS.CSLA.Library; -using System.Drawing; -using System.Text.RegularExpressions; - -namespace Volian.Controls.Library -{ - public partial class StepPanel : Panel - { - #region Fields - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - /// - /// Procedure Item Info - Top ItemInfo - /// - private ItemInfo _MyProcedureItemInfo; - /// - /// This is not correct. There should be a dictionary of Section Layouts - /// - private StepSectionLayoutData _MyStepSectionLayoutData; - /// - /// Lookup Table to convert ItemInfo.ItemID to StepItem - /// - internal Dictionary _LookupStepItems; - public StepItem FindItem(ItemInfo itemInfo) - { - if (itemInfo == null) return null; - if (!_LookupStepItems.ContainsKey(itemInfo.ItemID)) return null; - return _LookupStepItems[itemInfo.ItemID]; - } - /// - /// Currently selected RichTextBox - /// - private StepRTB _SelectedStepRTB = null; - /// - /// Currently selected ItemInfo - /// - internal ItemInfo _SelectedItemInfo; - private int _ItemMoving = 0; - private StepPanelSettings _MyStepPanelSettings; - private int _MaxRNO = -1; // TODO: Need to calculate MaxRNO on a section basis rather than for a panel - private Font _MyFont = null; - private Font _ProcFont = new Font("Arial", 12, FontStyle.Bold); - private Font _SectFont = new Font("Arial", 10, FontStyle.Bold); - private Font _StepFont = new Font("Arial", 10); - private Color _ActiveColor = Color.SkyBlue; -#if (DEBUG) - private Color _InactiveColor = Color.Linen; - private Color _TabColor = Color.Beige; - private Color _PanelColor = Color.LightGray; -#else - private Color _InactiveColor = Color.White; - private Color _TabColor = Color.White; - private Color _PanelColor = Color.White; -#endif - // Whether panel is in view or edit mode. Toggled from steprtb - // or set based on approval/multi-user (these two will be done - // later. - public E_ViewMode PanelViewEditMode = E_ViewMode.Edit; - internal string _LastAdjust=""; - private bool _ShowLines = true; - private Graphics _MyGraphics = null; - private int _DPI = 0; - #endregion - #region Item Events - /// - /// Occurs when the user clicks tab of a StepItem - /// - public event StepPanelEvent ItemClick; - /// - /// Checks to see if the 'ItemClick' event is handled and launches it - /// - /// - /// - internal void OnItemClick(object sender, StepPanelEventArgs args) - { - if (ItemClick != null) ItemClick(sender, args); - } - private bool ItemSelectionChangeShown = false; // This keeps OnItemSelectedChanged from being called twice when an item is selected. - /// - /// Occurs when the selected StepItem changes - /// - public event ItemSelectedChangedEvent ItemSelectedChanged; - /// - /// Checks to see if the 'ItemSelectedChanged' event is handled and launches it - /// - /// - /// - internal void OnItemSelectedChanged(object sender, ItemSelectedChangedEventArgs args) - { - ItemSelectionChangeShown = true;//Remember that you have run already - //vlnStackTrace.ShowStack(string.Format("OnItemSelectedChanged {0}",args.MyItemInfo.ItemID)); - if (ItemSelectedChanged != null) ItemSelectedChanged(sender, args); - } - /// - /// Occurs when the user clicks on the Attachment Expander - /// - public event StepPanelAttachmentEvent AttachmentClicked; - /// - /// Checks to see if the 'AttachmentClicked' event is handled and launches it - /// - /// - /// - internal void OnAttachmentClicked(object sender, StepPanelAttachmentEventArgs args) - { - if (AttachmentClicked != null) AttachmentClicked(sender, args); - else MessageBox.Show(args.MyStepItem.MyItemInfo.MyContent.MyEntry.MyDocument.DocumentTitle, "Unhandled Attachment Click", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - - // Edit/View mode change - public event StepPanelModeChangeEvent ModeChange; - internal void OnModeChange(object sender, StepRTBModeChangeEventArgs args) - { - PanelViewEditMode = args.ViewMode; - ModeChange(sender, args); - } - // various selections from steptabribbon that need to filter up to frmveproms - // such as 'global search', 'bookmarks' - public event StepPanelTabDisplayEvent TabDisplay; - internal void OnTabDisplay(object sender, StepPanelTabDisplayEventArgs args) - { - TabDisplay(sender, args); - } - // close section, if deleting word doc section - public event StepPanelWordSectionCloseEvent WordSectionClose; - internal void OnWordSectionClose(object sender, WordSectionEventArgs args) - { - WordSectionClose(sender, args); - } - // if section deleted, have event to flag in other UI panels - public event StepPanelWordSectionDeletedEvent WordSectionDeleted; - internal void OnWordSectionDeleted(object sender, WordSectionEventArgs args) - { - WordSectionDeleted(sender, args); - } - #endregion - #region Link Events - /// - /// Occurs when the user moves onto or off of a Link - /// - public event StepPanelLinkEvent LinkActiveChanged; - /// - /// Checks to see if the 'LinkActiveChanged' event is handled and launches it - /// - /// - /// - internal void OnLinkActiveChanged(object sender, StepPanelLinkEventArgs args) - { - if (LinkActiveChanged != null) LinkActiveChanged(sender, args); - else MessageBox.Show(args.LinkInfoText, "Unhandled Link Active Changed", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - /// - /// Occurs when the user chooses to Insert a Transition - /// - public event StepPanelLinkEvent LinkInsertTran; - /// - /// Checks to see if the 'LinkInsertTran' event is handled and launches it - /// - /// - /// - internal void OnLinkInsertTran(object sender, StepPanelLinkEventArgs args) - { - if (LinkInsertTran != null) LinkInsertTran(sender, args); - else MessageBox.Show(args.LinkInfoText, "Unhandled Link Insert Tran", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - /// - /// Occurs when the user chooses to Insert an RO - /// - public event StepPanelLinkEvent LinkInsertRO; - /// - /// Checks to see if the 'LinkInsertRO' event is handled and launches it - /// - /// - /// - internal void OnLinkInsertRO(object sender, StepPanelLinkEventArgs args) - { - if (LinkInsertRO != null) LinkInsertRO(sender, args); - else MessageBox.Show(args.LinkInfoText, "Unhandled Link Insert RO", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - /// - /// Occurs when the user clicks a Link - /// - public event StepPanelLinkEvent LinkClicked; - /// - /// Checks to see if the 'LinkClicked' event is handled and launches it - /// - /// - /// - internal void OnLinkClicked(object sender, StepPanelLinkEventArgs args) - { - if (LinkClicked != null) LinkClicked(sender, args); - else MessageBox.Show(args.LinkInfoText, "Unhandled Link Click", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - /// - /// Occurs when the user chooses to modify a Transition - /// - public event StepPanelLinkEvent LinkModifyTran; - /// - /// Checks to see if the 'LinkModifyTran' event is handled and launches it - /// - /// - /// - internal void OnLinkModifyTran(object sender, StepPanelLinkEventArgs args) - { - if (LinkModifyTran != null) LinkModifyTran(sender, args); - else MessageBox.Show(args.LinkInfoText, "Unhandled Link Modify Tran", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - /// - /// Occurs when the user chooses to modify an RO - /// - public event StepPanelLinkEvent LinkModifyRO; - /// - /// Checks to see if the 'LinkModifyRO' event is handled and launches it - /// - /// - /// - internal void OnLinkModifyRO(object sender, StepPanelLinkEventArgs args) - { - if (LinkModifyRO != null) LinkModifyRO(sender, args); - else MessageBox.Show(args.LinkInfoText, "Unhandled Link Modify RO", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - #endregion - #region Constructors - public StepPanel() - { - InitializeComponent(); - this.BackColorChanged += new EventHandler(StepPanel_BackColorChanged); -#if(DEBUG) - this.Paint += new PaintEventHandler(StepPanel_Paint); - this.DoubleClick += new EventHandler(StepPanel_DoubleClick); // Toggles Vertical lines on and off -#else - this.BackColor = Color.White; -#endif - this.AutoScroll = true; - } - public StepPanel(IContainer container) - { - container.Add(this); - InitializeComponent(); - this.BackColorChanged += new EventHandler(StepPanel_BackColorChanged); -#if(DEBUG) - this.Paint += new PaintEventHandler(StepPanel_Paint); // Toggles Vertical lines on and off - this.DoubleClick += new EventHandler(StepPanel_DoubleClick); -#else - this.BackColor = Color.White; -#endif - this.AutoScroll = true; - } - void StepPanel_BackColorChanged(object sender, EventArgs e) - { - // Walk through controls & set colors - InactiveColor = PanelColor = BackColor; - foreach (Control ctrl in Controls) - { - if (ctrl.GetType() == typeof(StepItem)) - { - StepItem rtb = (StepItem)ctrl; - rtb.BackColor = BackColor; - } - } - } - #endregion - #region Private Methods - /// - /// Expands an Item and It's Parents as need to display an item - /// - /// Item to Expand - private void ExpandAsNeeded(ItemInfo myItemInfo) - { - int id = myItemInfo.ItemID; - if (!_LookupStepItems.ContainsKey(id)) // If the item is not currently displayed - ExpandAsNeeded((ItemInfo)myItemInfo.ActiveParent); // Expand it's parent - if (_LookupStepItems.ContainsKey(id)) // Expanding Parent should have added it to _LookupStepItems - { - StepItem itm = _LookupStepItems[id]; - ItemInfo ii = myItemInfo.ActiveParent as ItemInfo; - if (itm.Visible == false && ii != null) - ExpandAsNeeded((ItemInfo)myItemInfo.ActiveParent); - itm.AutoExpand(); // Expand it if it should expand - } - } - #endregion - #region Properties - public StepTabPanel MyStepTabPanel - { get { return Parent as StepTabPanel; } } - /// - /// Procedure Item Info - Top ItemInfo - /// Get and Set - Set stes-up all of the - /// - public ItemInfo MyProcedureItemInfo - { - get { return _MyProcedureItemInfo; } - set - { - //// TIMING: DisplayItem.TimeIt("pMyItem Start"); - _MyProcedureItemInfo = value; - if(value != null) - _MyStepSectionLayoutData = _MyProcedureItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData; - //// TIMING: DisplayItem.TimeIt("pMyItem Layout"); - //this.Layout += new LayoutEventHandler(DisplayPanel_Layout); - //this.Scroll += new ScrollEventHandler(DisplayPanel_Scroll); - //// TIMING: DisplayItem.TimeIt("pMyItem Scroll"); - Controls.Clear(); - _LookupStepItems = new Dictionary(); - //// TIMING: DisplayItem.TimeIt("pMyItem Clear"); - //SuspendLayout(); - StepItem tmpStepItem = new StepItem(_MyProcedureItemInfo, this, null, ChildRelation.None, false); - //ResumeLayout(); - //// TIMING: DisplayItem.TimeIt("pMyItem End"); - } - } - public void Reset() - { - ItemInfo parent = SelectedItemInfo.ActiveParent as ItemInfo; - if (parent != null) ItemInfo.ResetParts(parent.ItemID); // Force data to reload - // The following line actually reloads the procedure item - MyProcedureItemInfo = MyProcedureItemInfo; // see get/set above. - Load Procedure and Sections - // The following line expands the items needed to display SelectedItemInfo - ExpandAsNeeded(SelectedItemInfo); - } - /// - /// Get or Set currently selected RichTextBox (StepRTB) - /// - public StepRTB SelectedStepRTB - { - get { return _SelectedStepRTB; } - set - { - StepRTB lastRTB = _SelectedStepRTB; - if(value != null) - value.BackColor = ActiveColor; // Set the active color - if (_SelectedStepRTB == value) return; // Same - No Change - if (_SelectedStepRTB != null) - { - _SelectedStepRTB.BackColor = InactiveColor; - _SelectedStepRTB.SaveText(); // Save any changes to the text - _SelectedStepRTB.SaveConfig(); // This may be redundant - _SelectedStepRTB.RTBFillIn(false); - _SelectedStepRTB.ViewRTB = true; - } - _SelectedStepRTB = value; - if (value != null) - { - _SelectedStepRTB.ViewRTB = PanelViewEditMode == E_ViewMode.View; - _SelectedStepRTB.RTBFillIn(PanelViewEditMode != E_ViewMode.View); - if (_SelectedItemInfo.ItemID != value.MyItemInfo.ItemID) - SelectedItemInfo = value.MyItemInfo; - } - //vlnStackTrace.ShowStack("_DisplayRTB = {0}", _DisplayRTB.MyItem.ItemID);// Show StackTrace - } - } - /// - /// Gets or Sets the SelectedItemInfo - /// Activates and Expands as necessary - /// - public ItemInfo SelectedItemInfo - { - get { return _SelectedItemInfo; } - set - { - //vlnStackTrace.ShowStack("SelectedItemInfo {0} => {1}",_SelectedItemInfo, value); - _SelectedItemInfo = value; - int id = value.ItemID; - ExpandAsNeeded(value); - // reset the entire step panel if the item isn't found. - if (!_LookupStepItems.ContainsKey(id)) Reset(); - StepItem itm = _LookupStepItems[id]; - ItemSelectionChangeShown = false;//OnItemSelectedChanged has not run yet. - itm.ItemSelect(); - if (!ItemSelectionChangeShown) OnItemSelectedChanged(this, new ItemSelectedChangedEventArgs(itm)); - //vlnStackTrace.ShowStack("_ItemSelected = {0}", _ItemSelected.ItemID);// Show StackTrace - } - } - private bool _DisplayItemChanging = false; - public bool DisplayItemChanging - { - get { return _DisplayItemChanging; } - set { _DisplayItemChanging = value; } - } - /// - /// Returns the SelectedStepItem - /// - public StepItem SelectedStepItem - { - get { return (_SelectedItemInfo != null) ? _LookupStepItems[_SelectedItemInfo.ItemID] : null; } - } - /// - /// Displays the selected StepItem - /// - public void ItemShow() - { - if (_SelectedItemInfo != null) - { - SelectedStepItem.ItemShow(); - OnItemSelectedChanged(this, new ItemSelectedChangedEventArgs(SelectedStepItem)); - } - } - public new void MouseWheel(MouseEventArgs e) - { - base.OnMouseWheel(e); - } - /// - /// Used to track movement other than scrolling - /// 0 - Indicates no other movement - /// > 0 - Indicates that other movement is happening - /// - public int ItemMoving - { - get { return _ItemMoving; } - set { _ItemMoving = value; } - } - /// - /// Lazy loaded StepPanelSettings - /// - public StepPanelSettings MyStepPanelSettings - { - get - { - if (_MyStepPanelSettings == null) _MyStepPanelSettings = new StepPanelSettings(this); - return _MyStepPanelSettings; - } - set { _MyStepPanelSettings = value;} - } - /// - /// Gets or Sets the font for the Panel - /// - public Font MyFont - { - get { return _MyFont; } - set { _ProcFont = _SectFont = _StepFont = _MyFont = value; } - } - /// - /// Gets or sets the font for the Procedure Text - /// - public Font ProcFont - { - get { return _ProcFont; } - set { _ProcFont = value; } - } - /// - /// Gets or sets the font for the Section Text - /// - public Font SectFont - { - get { return _SectFont; } - set { _SectFont = value; } - } - /// - /// Gets or sets the Step Font - /// - public Font StepFont - { - get { return _StepFont; } - set { _StepFont = value; } - } - /// - /// Gets or Sets the Active Color for the Panel - /// - public Color ActiveColor - { - get { return _ActiveColor; } - set { _ActiveColor = value; } - } - /// - /// Gets or sets the InActive Color for the Panel - /// - public Color InactiveColor - { - get { return _InactiveColor; } - set { _InactiveColor = value; } - } - /// - /// Gets or sets the Tab Color - /// - public Color TabColor - { - get { return _TabColor; } - set { _TabColor = value; } - } - /// - /// Gets or sets the Panel Color - /// - public Color PanelColor - { - get { return _PanelColor; } - set { _PanelColor = value; - BackColor = value; - } - } - #endregion - #region DisplayConversions - /// - /// gets a Graphic object for the panel - /// - public Graphics MyGraphics - { - get - { - if (_MyGraphics == null) - _MyGraphics = CreateGraphics(); - return _MyGraphics; - } - } - /// - /// Gets the DPI setting for the current graphics setting - /// - internal int DPI - { - get - { - if (_DPI == 0) - _DPI = Convert.ToInt32(MyGraphics.DpiX); - return _DPI; - } - } - /// - /// Converts an integer value from Twips to Pixels - /// - /// - /// - public int ToDisplay(int value) - { - //return (DPI * value) / 864; - return (DPI * value) / 72; - } - /// - /// Converts an integer? value from Twips to Pixels - /// - /// - /// - public int ToDisplay(int? value) - { - return ToDisplay((int)value); - } - /// - /// Converts an string value from Twips to Pixels - /// - /// - /// - public int ToDisplay(string value) - { - return ToDisplay(Convert.ToInt32(value)); - } - /// - /// Converts a value from a list in a string from Twips to Pixels - /// - /// - /// - public int ToDisplay(string value,int i) - { - string s = value.Split(",".ToCharArray())[i]; - return ToDisplay(s); - } - #endregion - #region Debug Methods - /// - /// Gets or sets ShowLines so that vertical lines are shown for debugging purposes - /// - public bool ShowLines - { - get { return _ShowLines; } - set { _ShowLines = value; } - } - /// - /// Draw a vertical line - /// - /// - /// - private void VerticalLine(Graphics g, int x) - { - Pen bluePen = new Pen(Color.CornflowerBlue,1); - g.DrawLine(bluePen, x, 0, x, this.Height); - } - /// - /// Toggle the vertical lines on and off - /// - /// - /// - private void StepPanel_DoubleClick(object sender, EventArgs e) - { - ShowLines = !ShowLines; - Refresh(); - } - private void StepPanel_Paint(object sender, PaintEventArgs e) - { - if (ShowLines) - { - //int fifth = Height / 5; - //Rectangle r1 = new Rectangle(0, 0, Width, Height - fifth); - ////Brush b = new System.Drawing.Drawing2D.LinearGradientBrush(r1, Color.FromArgb(128, 0, 32), Color.FromArgb(96, 0, 16), 90); - //Brush b = new System.Drawing.Drawing2D.LinearGradientBrush(r1, Color.FromArgb(255,128, 0, 32), Color.FromArgb(255,96, 0, 16),System.Drawing.Drawing2D.LinearGradientMode.Vertical); - //e.Graphics.FillRectangle(b, r1); - //r1 = new Rectangle(0, Height - fifth, Width, fifth); - //b = new System.Drawing.Drawing2D.LinearGradientBrush(r1, Color.FromArgb(255,96, 0, 16), Color.FromArgb(255,128, 0, 32), 90); - //e.Graphics.FillRectangle(b, r1); - //VerticalLine(e.Graphics, 60); - //VerticalLine(e.Graphics, 102); - //VerticalLine(e.Graphics, 415); - } - } - /// - /// Output all of the StepItem controls to the log - /// - private void ListControls() - { - // Walk through the controls and find the next control for each - if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("'Item','Next'"); - foreach (Control control in Controls) - if (control.GetType() == typeof(StepItem)) - { - StepItem rtb = (StepItem)control; - StepItem nxt = rtb.NextDownStepItem; - if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0},{1}", rtb.MyID, nxt == null ? 0 : nxt.MyID); - } - } - #endregion - #region Cursor Movement Methods - /// - /// Finds the Displayed 'top' child for a given item. Used for down arrow. - /// - /// ItemInfo - /// - private ItemInfo TopPart(ItemInfo ii) - { - ExpandAsNeeded(ii); - if (ii.Cautions != null) return TopPart(ii.Cautions[0]); - if (ii.Notes != null) return TopPart(ii.Notes[0]); - return (ii); - } - /// - /// Finds the Displayed 'bottom' child for a given item. Used for up arrow. - /// - /// ItemInfo - /// - private ItemInfo BottomPart(ItemInfo ii) - { - ExpandAsNeeded(ii); - if (ii.RNOs != null && ii.RNOLevel >= ii.ColumnMode) return BottomPart(ii.RNOs[0]); - if (ii.Sections != null) return BottomPart(ii.Sections[0].LastSibling); - if (ii.Steps != null) return BottomPart(ii.Steps[0].LastSibling); - if (ii.Tables != null) return BottomPart(ii.Tables[0].LastSibling); - return ii; - } - /// - /// Supports cursor movement between richtext boxes, including arrow keys/page up,down/ - /// ctrl Home,End - /// - /// StepRTB - /// Point - /// E_ArrowKeys - public void CursorMovement(StepRTB rtb, Point position, E_ArrowKeys arrow) - { - ItemInfo ii = null; - switch (arrow) - { - case E_ArrowKeys.Up: - case E_ArrowKeys.CtrlUp: - ii = ArrowUp(rtb.MyItemInfo); - if (ii != null) SelectedStepRTB = _LookupStepItems[ii.ItemID].MyStepRTB; - break; - case E_ArrowKeys.Down: - case E_ArrowKeys.CtrlDown: - ii = ArrowDown(rtb.MyItemInfo); - if (ii != null) SelectedStepRTB = _LookupStepItems[ii.ItemID].MyStepRTB; - break; - case E_ArrowKeys.Right: - case E_ArrowKeys.CtrlRight: - if (rtb.MyItemInfo.RNOs != null) - SelectedStepRTB = _LookupStepItems[rtb.MyItemInfo.RNOs[0].ItemID].MyStepRTB; - break; - case E_ArrowKeys.Left: - case E_ArrowKeys.CtrlLeft: - if (!rtb.MyItemInfo.IsProcedure) - SelectedStepRTB = _LookupStepItems[rtb.MyItemInfo.MyParent.ItemID].MyStepRTB; - break; - default: - break; - } - } - private ItemInfo ArrowUp(ItemInfo ii) - { - // if on RNO, check display mode (1 column/2 column, etc) and how deep RNO is before going to - // parents substeps. - if (ii.IsRNO && ii.MyParent.Steps != null && ii.RNOLevel >= ii.ColumnMode) return BottomPart(ii.MyParent.Steps[0].LastSibling); - - // If on top note and parent has cautions - go to bottom caution - if (ii.IsNoteStructure && ii.MyParent != null && ii.MyParent.Cautions != null) return BottomPart(ii.MyParent.Cautions[0].LastSibling); - if (ii.IsCautionStructure || ii.IsNoteStructure) - { - if (ii.MyParent.MyPrevious != null) return BottomPart(ii.MyParent.MyPrevious); - return ii.MyParent.MyParent; - } - - // If has note, BottomPart of last sibling of the note - if (ii.Notes != null) return BottomPart(ii.Notes[0].LastSibling); - // If has caution, BottomPart of last sibling of the caution - if (ii.Cautions != null) return BottomPart(ii.Cautions[0].LastSibling); - // If previous sibling, BottomPart of previous sibling - if (ii.MyPrevious != null && ii.IsProcedure == false) return BottomPart(ii.MyPrevious); - // Go to parent until at procedure - if (!ii.IsProcedure) return (ii.MyParent); - return null; - } - private ItemInfo ArrowDown(ItemInfo ii) - { - return ArrowDown(ii, true, true); - } - private ItemInfo ArrowDown(ItemInfo ii, bool lookAtSub, bool lookAtRNO) - { - if (ii.IsSection || ii.IsProcedure) - { - if (lookAtSub && ii.Sections != null) return TopPart(ii.Sections[0]); - if (lookAtSub && ii.Steps != null) return TopPart(ii.Steps[0]); - if (ii.IsSection && ii.NextItems != null) return TopPart(ii.NextItems[0]); - } - else - { - // Subitems - go to top part of subitem - // (the lookAtSub prevented looping within a substep group at same level) - if (lookAtSub && ii.Steps != null) return TopPart(ii.Steps[0]); - if (lookAtSub && ii.Tables != null) return TopPart(ii.Tables[0]); - // RNOs: Use PMode (column) - if (lookAtRNO && ii.RNOs != null && ii.RNOLevel >= ii.ColumnMode) return TopPart(ii.RNOs[0]); - // Nextsibling - go to top part of sibling - // TODO: RHM - NextItems was not null when it should have been after delete of a note below a caution - if (ii.NextItems != null && ii.NextItemCount > 0) return TopPart(ii.NextItems[0]); - // If on caution, if parent has note - go to note - if (ii.IsCautionStructureFirstSib && ii.MyParent.Notes != null) return ii.MyParent.Notes[0]; - // If on caution, if parent !has note or if on note go to parent - if ((ii.IsCautionStructureFirstSib && ii.MyParent.Notes == null) || ii.IsNoteStructureFirstSib) return ii.MyParent; - // Recursively call with parent until at procedure - if (!ii.IsProcedure) return (ArrowDown(ii.MyParent, false, ii.MyParent.RNOLevel==ii.RNOLevel)); - } - return null; - } - internal void StepCursorKeys(StepRTB rtb, KeyEventArgs keyargs) - { - ItemInfo ii = rtb.MyItemInfo; - if (ii.IsSection || ii.IsProcedure) return; - while (!ii.IsHigh) - { - ii = ii.MyParent; - } - switch (keyargs.KeyCode) - { - // for home/end, control key must be pressed too, but this is checked - // before here. - case Keys.Home: - ii = ii.FirstSibling; - break; - case Keys.End: - ii = ii.LastSibling; - break; - case Keys.PageDown: - ii = ii.NextItems == null ? null : ii.NextItems[0]; - break; - case Keys.PageUp: - ii = ii.MyPrevious; - break; - } - if (ii == null) return; - SelectedStepRTB = _LookupStepItems[ii.ItemID].MyStepRTB; - } - #endregion - } - [TypeConverter(typeof(ExpandableObjectConverter))] - public partial class StepPanelSettings - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - public StepPanelSettings(StepPanel panel) - { - _MyStepPanel = panel; - } - public StepPanelSettings() - { - } - private StepPanel _MyStepPanel; - [Browsable(false)] - public StepPanel MyStepPanel - { - get { return _MyStepPanel; } - set { _MyStepPanel = value; } - } - private float _CircleXOffset = -4; - [Category("Circle")] - [DisplayName("Circle Horizontal Offset")] - public float CircleXOffset - { - get { return _CircleXOffset; } - set { _CircleXOffset = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private float _CircleYOffset = -13; - [Category("Circle")] - [DisplayName("Circle Vertical Offset")] - public float CircleYOffset - { - get { return _CircleYOffset; } - set { _CircleYOffset = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private Font _CircleFont = new Font("Arial Unicode MS", 23); - [Category("Circle")] - [DisplayName("Circle Font")] - public Font CircleFont - { - get { return _CircleFont; } - set { _CircleFont = value; if(_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private Color _CircleColor = Color.Black; - [Category("Circle")] - [DisplayName("Circle Color")] - public Color CircleColor - { - get { return _CircleColor; } - set { _CircleColor = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private int _CircleDiameter = 25; - [Category("Circle")] - [DisplayName("Circle Diameter")] - public int CircleDiameter - { - get { return _CircleDiameter; } - set { _CircleDiameter = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private int _CircleWeight = 2; - [Category("Circle")] - [DisplayName("Circle Pen Weight")] - public int CircleWeight - { - get { return _CircleWeight; } - set { _CircleWeight = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private float _NumberLocationX = 20F; - [Category("Number")] - [DisplayName("Number Location X")] - public float NumberLocationX - { - get { return _NumberLocationX; } - set { _NumberLocationX = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private float _NumberLocationY = 4; - [Category("Number")] - [DisplayName("Number Location Y")] - public float NumberLocationY - { - get { return _NumberLocationY; } - set { _NumberLocationY = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private SizeF _NumberSize = new SizeF(200F, 23F); - [Category("Number")] - [DisplayName("Number Size")] - public SizeF NumberSize - { - get { return _NumberSize; } - set { _NumberSize = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private int _TableWidthAdjust = 4; - [Category("Table")] - [DisplayName("Table Width Adjust")] - public int TableWidthAdjust - { - get { return _TableWidthAdjust; } - set { _TableWidthAdjust = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private int _CheckOffWeight = 1; - [Category("CheckOff")] - [DisplayName("CheckOff Pen Weight")] - public int CheckOffWeight - { - get { return _CheckOffWeight; } - set { _CheckOffWeight = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private Color _CheckOffColor = Color.Black; - [Category("CheckOff")] - [DisplayName("CheckOff Color")] - public Color CheckOffColor - { - get { return _CheckOffColor; } - set { _CheckOffColor = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private int _CheckOffSize =12; - [Category("CheckOff")] - [DisplayName("CheckOff Size")] - public int CheckOffSize - { - get { return _CheckOffSize; } - set { _CheckOffSize = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private int _CheckOffX =0; - [Category("CheckOff")] - [DisplayName("CheckOff X")] - public int CheckOffX - { - get { return _CheckOffX; } - set { _CheckOffX = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private int _CheckOffY =5; - [Category("CheckOff")] - [DisplayName("CheckOff Y")] - public int CheckOffY - { - get { return _CheckOffY; } - set { _CheckOffY = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - - private int _ChangeBarWeight = 1; - [Category("ChangeBar")] - [DisplayName("ChangeBar Pen Weight")] - public int ChangeBarWeight - { - get { return _ChangeBarWeight; } - set { _ChangeBarWeight = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - private Color _ChangeBarColor = Color.Black; - [Category("ChangeBar")] - [DisplayName("ChangeBar Color")] - public Color ChangeBarColor - { - get { return _ChangeBarColor; } - set { _ChangeBarColor = value; if (_MyStepPanel != null) _MyStepPanel.Refresh(); } - } - } - public partial class StepPanelEventArgs - { - private StepItem _MyStepItem; - public StepItem MyStepItem - { - get { return _MyStepItem; } - set { _MyStepItem = value; } - } - private MouseEventArgs _MyMouseEventArgs; - public MouseEventArgs MyMouseEventArgs - { - get { return _MyMouseEventArgs; } - set { _MyMouseEventArgs = value; } - } - - public StepPanelEventArgs(StepItem myStepItem, MouseEventArgs myMouseEventArgs) - { - _MyStepItem = myStepItem; - _MyMouseEventArgs = myMouseEventArgs; - } - } - public partial class ItemSelectedChangedEventArgs - { - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - private StepItem _MyStepItem = null; - public StepItem MyStepItem - { - get { return _MyStepItem; } - set { _MyStepItem = value; } - } - public ItemSelectedChangedEventArgs(ItemInfo myItemInfo) - { - _MyItemInfo = myItemInfo; - } - public ItemSelectedChangedEventArgs(StepItem myStepItem) - { - _MyItemInfo = myStepItem.MyItemInfo; - _MyStepItem = myStepItem; - } - } - public partial class StepPanelAttachmentEventArgs - { - private StepItem _MyStepItem; - public StepItem MyStepItem - { - get { return _MyStepItem; } - set { _MyStepItem = value; } - } - public StepPanelAttachmentEventArgs(StepItem myStepItem) - { - _MyStepItem = myStepItem; - } - } - - public partial class StepPanelLinkEventArgs : EventArgs - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private StepItem _LinkedStepItem; - public StepItem LinkedStepItem - { - get { return _LinkedStepItem; } - //set { _LinkedStepItem = value; } - } - private string _LinkInfoText; - public string LinkInfoText - { - get { return _LinkInfoText; } - } - private LinkText _MyLinkText; - public LinkText MyLinkText - { - get { return _MyLinkText;} - } - public StepPanelLinkEventArgs(StepItem linkedStepItem, string linkInfoText) - { - _LinkedStepItem = linkedStepItem; - _LinkInfoText = linkInfoText; - _MyLinkText = new LinkText(_LinkInfoText); - //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("\r\n LinkInfo '{0}'\r\n", linkInfo.LinkText); - } - } - public partial class StepPanelTabDisplayEventArgs : EventArgs - { - private string _PanelTabName; - public string PanelTabName - { - get { return _PanelTabName; } - } - public StepPanelTabDisplayEventArgs(string panelTabname) - { - _PanelTabName = panelTabname; - } - } - public partial class WordSectionEventArgs : EventArgs - { - private SectionInfo _MySectionInfo; - public SectionInfo MySectionInfo - { - get { return _MySectionInfo; } - } - public WordSectionEventArgs(SectionInfo mySectionInfo) - { - _MySectionInfo = mySectionInfo; - } - } - public delegate void StepPanelEvent(object sender, StepPanelEventArgs args); - public delegate void ItemSelectedChangedEvent(object sender, ItemSelectedChangedEventArgs args); - public delegate void StepPanelLinkEvent(object sender, StepPanelLinkEventArgs args); - public delegate void StepPanelAttachmentEvent(object sender, StepPanelAttachmentEventArgs args); - public delegate void StepRTBLinkEvent(object sender, StepPanelLinkEventArgs args); - public delegate void StepPanelModeChangeEvent(object sender, StepRTBModeChangeEventArgs args); - public delegate void StepPanelTabDisplayEvent(object sender, StepPanelTabDisplayEventArgs args); - public delegate void StepPanelWordSectionCloseEvent(object sender, WordSectionEventArgs args); - public delegate void StepPanelWordSectionDeletedEvent(object sender, WordSectionEventArgs args); -} diff --git a/PROMS/Volian.Controls.Library/StepRTB.cs.bak b/PROMS/Volian.Controls.Library/StepRTB.cs.bak deleted file mode 100644 index 3894a208..00000000 --- a/PROMS/Volian.Controls.Library/StepRTB.cs.bak +++ /dev/null @@ -1,3238 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.IO; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using System.Runtime.InteropServices; -using System.Text.RegularExpressions; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; - -namespace Volian.Controls.Library -{ - public delegate void StepRTBEvent(object sender, EventArgs args); - public delegate void StepRTBCursorKeysEvent(object sender, KeyEventArgs args); - public delegate void StepRTBCursorMovementEvent(object sender, StepRTBCursorMovementEventArgs args); - public delegate void StepRTBModeChangeEvent(object sender, StepRTBModeChangeEventArgs args); - public delegate void StepRTBMenuEvent(object sender, StepRTBMenuEventArgs args); - public delegate void StepRTBTableWidthEvent(object sender, StepRTBTableWidthEventArgs args); - public delegate bool StepRTBBooleanEvent(object sender, EventArgs args); - public delegate void StepRTBLocationEvent(object sender, StepRTBLocationEventArgs args); - public delegate void StepRTBMouseEvent(object sender, MouseEventArgs args); - public delegate void StepRTBRoEvent(object sender, StepRTBRoEventArgs args); - //public delegate void StepRTBMouseWheelEvent(object sender, MouseEventArgs args); - public partial class StepRTB : RichTextBox // , IStepRTB - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - - #region Events - public event StepRTBRoEvent RoInsert; - public void OnRoInsert(object sender, StepRTBRoEventArgs args) - { - if (RoInsert != null) RoInsert(sender, args); - } - public event StepRTBEvent ReturnToEditor; - public void OnReturnToEditor(object sender, EventArgs args) - { - if (ReturnToEditor != null) ReturnToEditor(sender, args); - } - public event StepRTBEvent EditModeChanged; - public void OnEditModeChanged(object sender, EventArgs args) - { - if (EditModeChanged != null) EditModeChanged(sender, args); - } - public event StepRTBEvent DoSaveContents; - public void OnDoSaveContents(object sender, EventArgs args) - { - if (DoSaveContents != null) DoSaveContents(sender, args); - } - public event StepRTBMouseEvent DoMouseWheel; - public void OnDoMouseWheel(object sender, MouseEventArgs args) - { - if (DoMouseWheel != null) DoMouseWheel(sender, args); - } - public event StepRTBLocationEvent OpenContextMenu; - public void OnOpenContextMenu(object sender, StepRTBLocationEventArgs args) - { - if (OpenContextMenu != null) OpenContextMenu(sender, args); - } - public event StepRTBEvent CopyStep; - public void OnCopyStep(object sender, EventArgs args) - { - if (CopyStep != null) CopyStep(sender, args); - } - public event StepRTBBooleanEvent CheckClipboard; - public bool OnCheckClipboard(object sender, EventArgs args) - { - if (CheckClipboard != null) return CheckClipboard(sender, args); - return false; - } - public event StepRTBCursorKeysEvent EnterKeyPressed; - public void OnEnterKeyPressed(object sender, KeyEventArgs args) - { - if (EnterKeyPressed != null) EnterKeyPressed(sender, args); - } - public event StepRTBEvent InsertPgBrk; - public void OnInsertPgBrk(object sender, EventArgs args) - { - if (InsertPgBrk != null) InsertPgBrk(sender, args); - } - public event StepRTBEvent OpenAnnotations; - public void OnOpenAnnotations(object sender, EventArgs args) - { - if (OpenAnnotations != null) OpenAnnotations(sender, args); - } - public event StepRTBBooleanEvent IsNotCurrentSelection; - public bool OnIsNotCurrentSelection(object sender, EventArgs args) - { - if (IsNotCurrentSelection != null) return IsNotCurrentSelection(sender, args); - return false; - } - public event StepRTBTableWidthEvent AdjustTableWidth; - public void OnAdjustTableWidth(object sender, StepRTBTableWidthEventArgs args) - { - if (AdjustTableWidth != null) AdjustTableWidth(sender, args); - } - public event StepRTBMenuEvent SetMenu; - private void OnSetMenu(object sender, StepRTBMenuEventArgs args) - { - if (SetMenu != null) SetMenu(sender, args); - } - public event StepRTBEvent RTBSelectionChanged; - private void OnRTBSelectionChanged(object sender, EventArgs args) - { - if (RTBSelectionChanged != null) RTBSelectionChanged(sender, args); - } - public event StepRTBEvent LinkLocationsChanged; - private void OnLinkLocationChanged(object sender, EventArgs args) - { - if (LinkLocationsChanged != null) LinkLocationsChanged(sender, args); - } - public event StepRTBEvent RTBRangeStatusChanged; - private void OnRTBRangeStatusChanged(object sender, EventArgs args) - { - if (RTBRangeStatusChanged != null) RTBRangeStatusChanged(sender, args); - } - public event StepRTBCursorKeysEvent CursorKeyPress; - private void OnCursorKeyPress(object sender, KeyEventArgs args) - { - if (CursorKeyPress != null) CursorKeyPress(sender, args); - } - public event StepRTBCursorMovementEvent CursorMovement; - private void OnCursorMovement(object sender, StepRTBCursorMovementEventArgs args) - { - if (CursorMovement != null) CursorMovement(sender, args); - } - //public event StepRTBModeChangeEvent ModeChange; - //private void OnModeChange(object sender, StepRTBModeChangeEventArgs args) - //{ - // //_MyModeChangeEventArgs = args; - // if (ModeChange != null) ModeChange(sender, args); - // else MessageBox.Show("StepRTB - no mode change defined"); - //} - //public event StepRTBMouseWheelEvent MouseWheel; - //private void OnMouseWheel(object sender, MouseEventArgs args) - //{ - // if (MouseWheel != null) MouseWheel(sender, args); - //} - - /// - /// This event is not raised during all the in-between changes for link deletions - /// - public event StepRTBEvent RTBTextChanged; - private void OnRTBTextChanged(object sender, EventArgs args) - { - if (RTBTextChanged != null) RTBTextChanged(sender, args); - } - #endregion - #region Properties and Variables - - public bool IsRoTable - { - get { return (Parent is VlnFlexGrid && (Parent as VlnFlexGrid).IsRoTable); } - } - public bool HasVScroll - { - get - { - return RTBAPI.HasVertScroll(this); - } - - } - public bool HasHScroll - { - get - { - return RTBAPI.HasHorzScroll(this); - } - - } - private bool _EditMode = true; - /// - /// Allows insert of links. If false, don't allow selection of links. - /// - public bool EditMode - { - get { return _EditMode; } - set - { - _EditMode = value; - OnEditModeChanged(this, new EventArgs()); - } - } - private static string _MySymbolFontName; - public static string MySymbolFontName - { - get { return StepRTB._MySymbolFontName; } - set { StepRTB._MySymbolFontName = value; } - } - private static FontFamily _MyFontFamily = null; - public static FontFamily MyFontFamily - { - get { return StepRTB._MyFontFamily; } - set - { - _MyFontFamily = value; - if (value != null) - { - Font font; - if (value.IsStyleAvailable(FontStyle.Regular)) - font = new Font(value, 10); - else if (value.IsStyleAvailable(FontStyle.Bold)) - font = new Font(value, 10, FontStyle.Bold); - else // (value.IsStyleAvailable(FontStyle.Italic)) - font = new Font(value, 10, FontStyle.Italic); - using (StepRTB srtb = new StepRTB()) - { - if (srtb.FontIsFixed(font)) _MySymbolFontName = "VESymbFix"; - else _MySymbolFontName = "Arial Unicode MS"; - } - } - } - } - // use newer rich text box.... - //[DllImport("kernel32.dll", CharSet = CharSet.Auto)] - //static extern IntPtr LoadLibrary(string lpFileName); - //protected override CreateParams CreateParams - //{ - // get - // { - // CreateParams prams = base.CreateParams; - // if (LoadLibrary("msftedit.dll") != IntPtr.Zero) - // { - // //prams.ExStyle |= 0x020; // transparent - - // prams.ClassName = "RICHEDIT50W"; - // } - // return prams; - // } - //} - private E_FieldToEdit _FieldToEdit = E_FieldToEdit.StepText; - public E_FieldToEdit FieldToEdit - { - get { return _FieldToEdit; } - set { _FieldToEdit = value; } - } - private string _RtfPrefix; // contains Font table and styles (bold/underline/italics) for rtb from step style - public string RtfPrefixForSymbols - { - get - { - if (_RtfPrefix == null) - { - StringBuilder selectedRtfSB = new StringBuilder(); - AddFontTable(selectedRtfSB, FormatFont, FontIsFixed(FormatFont)); - _RtfPrefix = selectedRtfSB.ToString(); - } - return _RtfPrefix + @"\f1\fs" + FormatFont.SizeInPoints * 2 + " "; - } - } - public string RtfPrefix - { - get - { - if (_RtfPrefix == null) - { - StringBuilder selectedRtfSB = new StringBuilder(); - AddFontTable(selectedRtfSB, FormatFont, FontIsFixed(FormatFont)); - _RtfPrefix = selectedRtfSB.ToString(); - } - return _RtfPrefix;// +@"{\colortbl ;\red255\green0\blue0;}"; - } - } - // August 5, 2009 - KBR & RHM: - // Insert/Overwrite will be developed later if needed. various issues - // were found during initial development that made its scope larger than - // expected. Problems were related to having overstrike on in the following - // cases: - // 1) left arrow when on link - positions after link - // 2) left arrow and after link - does not move - // 3) shift left arrow does not move past links correctly and also, first - // shift left arrow looks more like insert mode. - // private bool _OverWrite; - // _IsDirty compares the original rtf to the current rtf from the - // richtextbox to see if a change was made. - public bool IsDirty - { - get { return OrigRTF != Rtf; } - } - private bool _InitializingRTB; - private IContainer _Container = null; - private string _MyClassName=string.Empty; - public string MyClassName - { - get { if (_MyClassName == string.Empty)_MyClassName = CreateParams.ClassName; return _MyClassName; } - set { _MyClassName = value; } - } - //private E_EditPrintMode _epMode = E_EditPrintMode.Edit; - //public E_EditPrintMode EpMode - //{ - // get { return _epMode; } - // set { - // if (value == E_EditPrintMode.Print) Console.WriteLine(""); - // _epMode = value; } - //} - private E_ViewMode _vwMode = E_ViewMode.Edit; - public E_ViewMode VwMode - { - get { return _vwMode; } - set { _vwMode = value; } - } - private VE_Font _MyStyleFont; - public VE_Font MyStyleFont - { - get - { - if (_MyStyleFont == null) _MyStyleFont = MyItemInfo.GetItemFont(); - return _MyStyleFont; - } - } - private bool _ActiveMode = false; - public bool ActiveMode - { - get { return _ActiveMode; } - set { _ActiveMode = value; } - } - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - private string _OrigRTF; - public string OrigRTF - { - get { return _OrigRTF; } - set { _OrigRTF = value; } - } - private Font _FormatFont; - public Font FormatFont - { - get - { - if (_FormatFont == null) - { - Font formatFont; - if(MyItemInfo != null) - formatFont = MyItemInfo.GetItemFont().WindowsFont; // OrigDisplayText.TextFont.WindowsFont; - else - formatFont = Font; - if (MyItemInfo.IsTable || MyItemInfo.IsFigure) - _FormatFont = formatFont; - else - { - //if (VlnSettings.DebugMode || VlnSettings.ProductionMode) - _FormatFont = new Font(MyFontFamily == null ? formatFont.FontFamily : MyFontFamily, formatFont.Size, formatFont.Style); - //else - // _FormatFont = new Font("Bookman Old Style", formatFont.Size, formatFont.Style); - // TODO: Release Mode - //Font = _origDisplayText.TextFont.WindowsFont; // font defined in plant's format - } - } - return _FormatFont; - } - set - { - _FormatFont = value; - } - } - public void SetupRichText(string rtf, VE_Font vFont) - { - FormatFont = vFont.WindowsFont; - DisplayText vlnText = new DisplayText(rtf, vFont, true); - AddRtfText(vlnText.StartText); - ReadOnly = true; - } - - public void RefreshDisplay() - { - if (Disposing) return; - RefreshDisplay(ActiveMode); - } - // RefreshDisplay is used to update the rtb for an entire Item as defined by MyItemInfo. - public void RefreshDisplay(bool activeMode) - { - ActiveMode = activeMode; - OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(true)); - _InitializingRTB = true; - DisplayText vlntxt = new DisplayText(MyItemInfo, E_EditPrintMode.Edit, VwMode, !ActiveMode, FieldToEdit, true); - //if (_origDisplayText != null && vlntxt.StartText == _origDisplayText.StartText) - //{ - // ReadOnly = !(EpMode == E_EditPrintMode.Edit && VwMode == E_ViewMode.Edit); - // if (!ReadOnly && !edit) ReadOnly = true; - // return; - //} - OrigDisplayText = vlntxt; - - - // RHM 20101201 - Don't reset the text. Calculate the text and compare it with the existing text in AddRTFText - //Text = ""; // Initialize text before add text - // IMPORTANT: SetLineSpacing must be set before Links, otherwise it - // was confusing the 'handle' of the rtf box. - //Console.WriteLine("'font',{0}", Font); - //if(Text == "")SelectionFont = Font; // Initialize SelectionFont - if (MyItemInfo != null) - { - if (MyItemInfo.IsStep) Font = MyFontFamily == null ? MyItemInfo.FormatStepData.Font.WindowsFont:new Font(MyFontFamily, MyItemInfo.FormatStepData.Font.WindowsFont.Size, MyItemInfo.FormatStepData.Font.WindowsFont.Style); - else Font = Font = MyFontFamily == null ? MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont : new Font(MyFontFamily, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Size, MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font.WindowsFont.Style); - } - RTBAPI.SetLineSpacing(this, RTBAPI.ParaSpacing.PFS_EXACT); - ReadOnly = VwMode == E_ViewMode.View || ActiveMode == false; - AddRtfText(vlntxt.StartText); - //AddRtfStyles(); - // set readonly based on initial modes, however, these may change if - // user selected view mode. - ClearUndo(); - // RHM: 20101122 - Not sure why the RightMargin is set. The following line was added in Rev 23 - // in May of 2008. - // - // RightMargin = Width; - // - // Normally a the Right Margin is handled by the RichTextBox it defaults to a value of 0. - // - // If the RightMargin is equal to the width of the RichTextBox the word-wrap occurs just beyond - // the visible extent (right edge) of the RichTextBox when it is in view mode. In edit mode it - // wraps within the visible extent. An example of this is Step 24 of ES02 in HLP EOPs. - // - // If the RightMargin is greater than the width of the RichTextBox, the word-wrap occurs beyond - // the visible extent of the RichTextBox for both view and edit modes. - // - // Setting the RightMargin to the Width minus one, accounts for the slight indent (1 pixel) of - // the text within the RichTextBox. - RightMargin = Width > 0 ? Width - 1 : 0; - // figure out if needs outlined, depends on table/figure type - if (!ActiveMode) - { - RemoveEventHandlers(); - OnAdjustTableWidth(this, new StepRTBTableWidthEventArgs(false));// View Mode - SelectAll(); - if (SelectionHangingIndent !=0) SelectionHangingIndent = 0; - int indchar = 0; - string indentToken = MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IndentToken; - if (indentToken == null) indentToken = "\x5"; - while ((indchar = Find(indentToken, indchar, RichTextBoxFinds.None)) >= 0) - { - Point indent = GetPositionFromCharIndex(indchar); - SelectionHangingIndent = indent.X; - indchar++; - } - AddEventHandlers(); - } - //else - //{ - // if (MyRTBItem != null && (_MyItemInfo.IsTable || _MyItemInfo.IsFigure)) - // { - // //MyRTBItem.ItemWidth = (int)MyRTBItem.TableWidth(Font, Text,false); - // MyRTBItem.ItemWidth = MyRTBItem.MyStepPanel.ToDisplay(MyRTBItem.MyStepSectionLayoutData.WidT); - // } - //} - OrigRTF = Rtf; - _InitializingRTB = false; - - AdjustSizeForContents(!ActiveMode); // TODO: this is not quite right yet. - } - private bool _ProcessKeystrokes = true; - public bool ProcessKeystrokes - { - get { return _ProcessKeystrokes; } - set { _ProcessKeystrokes = value; } - } - - //public EnterKeyHandler EnterKeyPressed; - //protected override bool ProcessCmdKey(ref Message msg, Keys keyData) - //{ - // const int WM_KEYDOWN = 0x100; - // const int WM_SYSKEYDOWN = 0x104; - // if ((msg.Msg == WM_KEYDOWN) || (msg.Msg == WM_SYSKEYDOWN)) - // { - // switch (keyData) - // { - // case Keys.Control | Keys.V: - // // check for valid data to be inserted: - // return base.ProcessCmdKey(ref msg, keyData); - // default: - // return base.ProcessCmdKey(ref msg, keyData); - // } - // } - // return base.ProcessCmdKey(ref msg, keyData); - //} - private Point ScrollPos - { - get { return RTBAPI.GetScrollLocation(this); } - set { RTBAPI.SetScrollLocation(this, value); } - } - private Rectangle _ContentsRectangle = new Rectangle(0,0,0,0); - public Rectangle ContentsRectangle - { - get - { - if (_ContentsRectangle.X == 0 && _ContentsRectangle.Y == 0 && _ContentsRectangle.Width == 0 && _ContentsRectangle.Height == 0) - _ContentsRectangle = this.ClientRectangle; - return _ContentsRectangle; - } - set - { - _ContentsRectangle = value; - AdjustSizeForContents(false); - } - } - public Size ContentsSize - { - get { return _ContentsRectangle.Size; } - } - private Size _AdjustSize = new Size(0,0); // if 0,0 puts text right next to bottom of box. - public Size AdjustSize - { - get { return _AdjustSize; } - set - { - _AdjustSize = value; - AdjustSizeForContents(false); - } - } - public System.Windows.Forms.AutoScaleMode AutoScaleMode; - private DisplayText _OrigDisplayText; - - public DisplayText OrigDisplayText - { - get { return _OrigDisplayText; } - set { _OrigDisplayText = value; } - } - private RichTextBox _rtbTemp = new RichTextBox(); - private string _MyLinkText; - public string MyLinkText - { - get { return _MyLinkText; } - set - { - //if (value != _MyLinkText) - //{ - // updates to the info panel were not always occurring when the previous two - // lines were active - _MyLinkText = value; - OnLinkChanged(this, new StepPanelLinkEventArgs(_MyLinkText)); - //} - } - } - #endregion - #region Constructors - public StepRTB() - { - InitializeComponent(); - SetUpStepRTB(); - AddEventHandlers(); - } - public StepRTB(IContainer container) - { - container.Add(this); - InitializeComponent(); - _Container = container; - SetUpStepRTB(); - AddEventHandlers(); - } - protected override void OnMouseWheel(MouseEventArgs e) - { - OnDoMouseWheel(this, e); - //MyRTBItem.MyStepPanel.MouseWheel(e); - //base.OnMouseWheel(e); - } - private void RemoveEventHandlers() - { - ContentsResized -= new ContentsResizedEventHandler(StepRTB_ContentsResized); - this.Click -= new EventHandler(StepRTB_Click); - this.KeyPress -= new KeyPressEventHandler(StepRTB_KeyPress); - this.KeyDown -= new KeyEventHandler(StepRTB_KeyDown); - this.KeyUp -= new KeyEventHandler(StepRTB_KeyUp); - this.TextChanged -= new EventHandler(StepRTB_TextChanged); - this.MouseUp -= new MouseEventHandler(StepRTB_MouseUp); - this.MouseDown -= new MouseEventHandler(StepRTB_MouseDown); - this.MouseLeave -= new EventHandler(StepRTB_MouseLeave); - this.SelectionChanged -= new EventHandler(StepRTB_SelectionChanged); - this.ContextMenuStripChanged -= new EventHandler(StepRTB_ContextMenuStripChanged); - this.RTBSelectionChanged -= new StepRTBEvent(StepRTB_RTBSelectionChanged); - } - private void AddEventHandlers() - { - // Always be sure to add the same event handlers to RemoveEventHandlers - BorderStyle = System.Windows.Forms.BorderStyle.None; - this.DetectUrls = true; - ContentsResized += new ContentsResizedEventHandler(StepRTB_ContentsResized); - this.Click +=new EventHandler(StepRTB_Click); - this.KeyPress += new KeyPressEventHandler(StepRTB_KeyPress); - this.KeyDown += new KeyEventHandler(StepRTB_KeyDown); - this.KeyUp += new KeyEventHandler(StepRTB_KeyUp); - this.TextChanged += new EventHandler(StepRTB_TextChanged); - this.MouseUp += new MouseEventHandler(StepRTB_MouseUp); - this.MouseDown += new MouseEventHandler(StepRTB_MouseDown); - this.MouseLeave += new EventHandler(StepRTB_MouseLeave); - this.SelectionChanged +=new EventHandler(StepRTB_SelectionChanged); - this.ContextMenuStripChanged += new EventHandler(StepRTB_ContextMenuStripChanged); - this.RTBSelectionChanged += new StepRTBEvent(StepRTB_RTBSelectionChanged); - } - void StepRTB_RTBSelectionChanged(object sender, EventArgs args) - { - //Console.WriteLine("RTBSelectionChanged id= {0}", MyItemInfo.ItemID); - if (!Focused) Focus(); - } - void StepRTB_ContextMenuStripChanged(object sender, EventArgs e) - { - //Console.WriteLine("********** StepRTB_ContextMenuStripChanged"); - int sublocation = 0; - try - { - //Console.WriteLine("{0}", ContextMenuStrip.GetType().FullName); - OnSetMenu(this, new StepRTBMenuEventArgs(null)); - sublocation = 1; - _ContextMenuStripChanged = true; - sublocation = 2; - _ContextMenuStepRTB = this; - sublocation = 3; - _ContextMenuStrip = ContextMenuStrip; - sublocation = 4; - } - catch(Exception ex) - { - Console.WriteLine("StepRTB_ContextMenuStripChanged {0} - {1} [{2}]", ex.GetType().Name, ex.Message, sublocation); - } - } - private void SetUpStepRTB() - { - DetectUrls = false; - C1SpellChecker2.SetActiveSpellChecking(this, true); - this.Height = 10; // initialize the height to 10, the default height was too big for the cells in grid tables - BorderStyle = System.Windows.Forms.BorderStyle.None; - this.ScrollBars = RichTextBoxScrollBars.None; - this.DetectUrls = true; - } - // An event is needed to set MouseDown to false on mouse leave, because additional rtb's may - // have been exposed based on entering a step, which causes the underlying item/rtb for which - // the mouse event occurs to not be the current rtb. RTB gets selected on MouseDown, MouseEnter - // and MouseUp are - void StepRTB_MouseLeave(object sender, EventArgs e) - { - _MouseDown = false; - } - //void MyConfig_PropertyChanged(object sender, PropertyChangedEventArgs e) - //{ - // SaveConfig(); - //} - private void StepRTB_Click(object sender, EventArgs e) - { - if (ReadOnly) return; - } - void StepRTB_SelectionChanged(object sender, EventArgs e) - { - //Console.WriteLine("StepRTB_SelectionChanged id= {0}", MyItemInfo.ItemID); - if (_InitializingRTB) return; - HandleSelectionChange(); - } - private bool _MouseDown = false; - private bool _ContextMenuStripChanged = false; - private void StepRTB_MouseDown(object sender, MouseEventArgs e) - { - _MouseDown = true; - //Console.WriteLine("vvvvvvvvvv StepRTB Mouse Down id= {0}",MyItemInfo.ItemID); - bool inPsi = this.Parent.FindForm().Name.Contains("frmPSI"); - if (!_ContextMenuStripChanged) - OnSetMenu(this, new StepRTBMenuEventArgs(inPsi?"PSI":"OpenContextMenu")); - _ContextMenuStripChanged = false; - CorrectSelectionAtEndOfLine(); - } - void StepRTB_MouseUp(object sender, MouseEventArgs e) - { - _MouseDown = false; - //Console.WriteLine("^^^^^^^^^^ StepRTB Mouse Up id= {0}", MyItemInfo.ItemID); - - if(this.Focused) // Only HandleSelectionChange if this control has focus. - { - HandleSelectionChange(); - // save our context menu to add to the spell checker's context menu - ThisContextMenuStrip = this.ContextMenuStrip; - } - } - #endregion - #region ApplicationSupport - // Used in StepTabRibbon: - //public void ToggleEditView(E_ViewMode vwMode) - //{ - // OnDoSaveContents(this, new EventArgs()); // SaveText(); - // //ItemInfo tmp = MyItemInfo; - // //MyItemInfo = null; - // //ReadOnly = !ReadOnly; - // //EpMode = ReadOnly ? E_EditPrintMode.Print : E_EditPrintMode.Edit; - // VwMode = vwMode; - // ReadOnly = VwMode == E_ViewMode.View; - // ViewRTB = ReadOnly; - // Clear(); - // RefreshDisplay(!ViewRTB); - // //MyItemInfo = tmp; - // SelectionStart = 0; - // SelectionLength = 0; - // //OnModeChange(this, new StepRTBModeChangeEventArgs(ViewRTB?E_ViewMode.View:E_ViewMode.Edit)); - //} - public void InsertRO(string value, string link) - { - AddRtfLink(value, link); - } - public void InsertTran(string value, string link) - { - AddRtfLink(value, link); - } - public void InsertSymbol(int symbcode) - { - string sym = string.Format(symbcode < 256 ? "\'{0:X2}" : @"\u{0}", symbcode); - if (symbcode < 256) - AddText(((char)symbcode).ToString()); - else - AddSymbol(sym); // Adds font commands around symbol, needed for higher codes - } - public void InsertSymbol(string symbol) - { - AddSymbol(symbol); - } - public void InsertIndent(string indentToken) - { - if (indentToken == null) indentToken = "\x5"; - AddText(indentToken); - } - public void InsertText(string txt) - { - AddText(txt); - } - - private void ToggleCase() - { - char type = 'l'; - // do not change case on linked text - RangeStatus rs = FindRangeStatus(); - string tmp = null; - if (rs != RangeStatus.NoContainedLinks) - { - int start = SelectionStart; - int ostart = SelectionStart; - int end = SelectionStart + SelectionLength; - bool processed = false; - while (!processed && start <= end) - { - foreach (LinkLocation ll in LinkLocations) - { - if (ll.Start >= start && ll.End <= end) - { - processed = true; - if (start < ll.Start) - { - SelectionStart = start; - SelectionLength = ll.Start - start; - } - start = ll.End + 1; - break; - } - } - } - } - string ostring = SelectedText; - if (ostring.Length == 0) return; // nothing selected - if (ostring.Length == 1) - type = char.IsUpper(ostring, 0) ? 'l' : 'U'; - else if ((char.IsUpper(ostring, 0) && char.IsUpper(ostring, 1)) || - (char.IsLower(ostring, 0) && char.IsUpper(ostring, 1))) type = 'l'; // lower case - else if ((char.IsUpper(ostring, 0) && char.IsLower(ostring, 1))) type = 'U'; // upper case - else type = 'T'; // Title case - SetSelectedCase(type); - } - - public void SetSelectedCase(char type) - { - // do not change case on linked text - RangeStatus rs = FindRangeStatus(); - string tmp = null; - if (rs == RangeStatus.NoContainedLinks) - SetCase(type); - else - { - int start = SelectionStart; - int ostart = SelectionStart; - int end = SelectionStart + SelectionLength; - StringBuilder sb = new StringBuilder(); - while (start <= end) - { - bool processed = false; - foreach (LinkLocation ll in LinkLocations) - { - if (ll.Start >= start && ll.End <= end) - { - processed = true; - if (start < ll.Start) - { - SelectionStart = start; - SelectionLength = ll.Start - start; - SetCase(type); - } - start = ll.End + 1; - break; - } - } - // if none were processed, no more links, copy over any remaining text. - if (!processed) - { - SelectionStart = start; - SelectionLength = end-start; - SetCase(type); - start = end + 1; - } - } - SelectionStart = ostart; - SelectionLength = end - ostart; - } - } - - private void SetCase(char type) - { - int ostart = SelectionStart; - int olen = SelectionLength; - string ostring = SelectedText; - string tmp = null; - bool docap = true; - // go character by character. Because of symbols, setting entire - // to upper or lower set symbols incorrectly some of time (depending - // on symbol) . - for (int i = 0; i < olen; i++) - { - SelectionStart = ostart + i; - SelectionLength = 1; - switch (type) - { - case 'l': - if (SelectedText[0] >= 'A' && SelectedText[0] <= 'Z') - SelectedText = SelectedText.ToLower(); - break; - case 'U': - if (SelectedText[0] >= 'a' && SelectedText[0] <= 'z') - SelectedText = SelectedText.ToUpper(); - break; - case 'T': - if (docap && SelectedText[0] >= 'a' && SelectedText[0] <= 'z') - SelectedText = SelectedText.ToUpper(); - else if (!docap && SelectedText[0] >= 'A' && SelectedText[0] <= 'Z') - SelectedText = SelectedText.ToLower(); - docap = ostring[i] == ' '; - break; - } - } - SelectionStart = ostart; - SelectionLength = olen; - } - #endregion - #region AddRtfTextAndStyles - private string _LastRtf = ""; - private bool _lastReadOnly = false; - private void AddRtfText(string txt) - { - //Console.WriteLine("ItemID:{0}", MyItemInfo.ItemID); - //if(MyItemInfo.ItemID==10256) - // Volian.Base.Library.vlnStackTrace.ShowStackLocal("ItemID:{0}", MyItemInfo.ItemID.ToString()); - StringBuilder selectedRtfSB = new StringBuilder(); - AddFontTable(selectedRtfSB, FormatFont, FontIsFixed(FormatFont)); - _RtfPrefix = selectedRtfSB.ToString(); - selectedRtfSB.Append(txt); - string newRtf = selectedRtfSB.ToString() + "}"; - if(newRtf != _LastRtf || ReadOnly != _lastReadOnly) - { - //Console.WriteLine("ItemID:{0}\r\nOld:'{1}'\r\nNew:'{2}'\r\n", MyItemInfo.ItemID, Rtf, newRtf); - this.ContentsResized -=new ContentsResizedEventHandler(StepRTB_ContentsResized); - Text = ""; - this.ContentsResized += new ContentsResizedEventHandler(StepRTB_ContentsResized); - SelectedRtf = _LastRtf = newRtf; - _lastReadOnly = ReadOnly; - } - FindAllLinks(); - if (txt == "") SelectionFont = FormatFont; - } - public void SetTableGridCellRTFPrefix(Font myfont) - { - if (_FormatFont == null) - _FormatFont = myfont; - - if (_RtfPrefix == null) - { - StringBuilder selectedRtfSB = new StringBuilder(); - AddFontTable(selectedRtfSB, myfont, FontIsFixed(myfont)); - _RtfPrefix = selectedRtfSB.ToString(); - } - } - private static void AddFontTable(StringBuilder selectedRtfSB, Font myFont, bool isFixed) - { - StringBuilder sbbeg = new StringBuilder(); - StringBuilder sbend = new StringBuilder(); - if (myFont.Bold) - { - sbbeg.Append(@"\b"); - sbend.Append(@"\b0"); - } - if (myFont.Underline) - { - sbbeg.Append(@"\ul"); - sbend.Insert(0, @"\ulnone"); - } - if (myFont.Italic) - { - sbbeg.Append(@"\i"); - sbend.Insert(0, @"\i0"); - } - selectedRtfSB.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 " + myFont.FontFamily.Name + @";}"); //}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}}"; - if (!isFixed) - selectedRtfSB.Append(@"{\f1\fnil\fcharset0 Arial Unicode MS;}}{\colortbl ;\red255\green0\blue0;}"); - else - selectedRtfSB.Append(@"{\f1\fnil\fcharset0 VESymbFix;}}{\colortbl ;\red255\green0\blue0;}"); - selectedRtfSB.Append("\r\n"); - // use styles to construct rtf commands to insert into next line (where \b, etc is) - selectedRtfSB.Append(@"\viewkind4\uc1\pard\sl-240\slmult0" + sbbeg.ToString() + @"\fs" + Convert.ToInt32(myFont.SizeInPoints * 2).ToString() + @" "); // \f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}"; - } - - private bool FontIsFixed(Font myFont) - { - Graphics grph = Graphics.FromHwnd(this.Handle); - SizeF sfW = grph.MeasureString("W", myFont); - SizeF sfE = grph.MeasureString("!", myFont); - if (sfW.Width == sfE.Width) return true; - return false; - } - private void AddRtf(string str) - { - // Because we're inserting rtf with { }, the surrounding styles are not included. Get the font - // style of current position & use it after the insert to set the style. - RTBAPI.E_FontStyle fs = RTBAPI.GetFontStyle(this); - int positionStart = SelectionStart; - SelectedRtf = @"{\rtf1{\fonttbl{\f0\fcharset2 " + this.Font.FontFamily.Name + @";}}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + str + @"}}"; - // Note that SelectedRtf does not contain the inserted text after the previous line. We need - // to determine how long the inserted string is in order to set its style. SelectionStart contains - // the location after the insertion. - int positionAfter = SelectionStart; - Select(positionStart, positionAfter - positionStart); - RTBAPI.SetFontStyle(this, fs); - Select(positionAfter, 0); - } - private void AddText(string str) - { - // See comments in AddRtf(string str) to explain the font style setting - RTBAPI.E_FontStyle fs = RTBAPI.GetFontStyle(this); - int positionStart = SelectionStart; - SelectedText = str; - int positionAfter = SelectionStart; - Select(positionStart, positionAfter - positionStart); - RTBAPI.SetFontStyle(this, fs); - Select(positionAfter, 0); - } - private void AddSymbol(string str) - { - // See comments in AddRtf(string str) to explain the font style setting - RTBAPI.E_FontStyle fs = RTBAPI.GetFontStyle(this); - int position = SelectionStart; - SelectedRtf = RtfPrefixForSymbols + str + @"}"; - Select(position, 1); - RTBAPI.SetFontStyle(this, fs); - Select(position + 1, 0); - SelectionFont = MyItemInfo.GetItemFont().WindowsFont; - } - private string GetAddSymbolText(string symtxt) - { - return (@"{\f0\fs" + this.Font.SizeInPoints * 2 + @" " + symtxt + @"}"); - } - public void AddRtfLink(string linkUrl, string linkValue) - { - if (CreateParams.ClassName == "RICHEDIT50W") - - AddLink50(linkUrl, linkValue); - else - AddLink20(linkUrl, linkValue); - } - public string FontTable - { - get - { - StringBuilder sb = new StringBuilder(); - sb.Append(@"{\fonttbl{\f0\fnil\fcharset2 " + this.Font.FontFamily.Name + @";}"); - if (!FontIsFixed(this.Font)) - sb.Append(@"{\f1\fnil\fcharset0 Arial Unicode MS;}}"); - else - sb.Append(@"{\f1\fnil\fcharset0 VESymbFix;}}"); - return sb.ToString(); - } - } - private string FontSize - { - get - { - Match match = Regex.Match(Rtf, @"\\fs[0-9]*"); - return match.Value; - } - } - - private void AddLink20(string linkValue, string linkUrl) - { - string fonttab = FontTable; - string fontsize = FontSize; - //if (this.DetectUrls) this.DetectUrls = false; - if (SelectionLength > 0)HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), null); - int position = SelectionStart; - SelectionLength = 0; - linkValue = linkValue.Replace("\\u8209?", "\\f1\\u8209?\\f0 "); - SelectedRtf = @"{\rtf1\ansi"+FontTable+@"{\colortbl ;\red255\green0\blue0;}\v"+FontSize+@" \v0 }"; - this.SelectionLength = 0; - this.SelectionStart = position; - FindAllLinks(); - } - private void AddLink50(string linkValue, string linkUrl) - { - //this.DetectUrls = false; - int position = SelectionStart; - SelectionLength = 0; - SelectedRtf = string.Format(@"{{\rtf\field{{\*\fldinst{{HYPERLINK ""www.volian.com #{0}"" }}}}{{\fldrslt{{\cf2\ul {1}}}}}}}", linkUrl, linkValue); - this.SelectionStart = this.TextLength; - this.SelectionLength = 0; - } - private void AddRtfStyles() - { - if ((OrigDisplayText.TextFont.Style & E_Style.Bold) > 0) - { - this.SelectAll(); - RTBAPI.ToggleBold(true, this, RTBAPI.RTBSelection.SCF_SELECTION); - this.Select(0, 0); - } - // Bug Fix - // The code below was changed to select all of the text and then - // apply the underlining to the selected text, because if the - // the underlining was applied to RTBAPI.RTBSelection.SCF_ALL - // the Links were changed so that they were no longer hidden. - if ((OrigDisplayText.TextFont.Style & E_Style.Underline) > 0) - // RTBAPI.ToggleUnderline(true, this, RTBAPI.RTBSelection.SCF_ALL); - { - this.SelectAll(); - RTBAPI.ToggleUnderline(true, this, RTBAPI.RTBSelection.SCF_SELECTION); - this.Select(0, 0); - } - // Bug Fix - // The code below was changed to select all of the text and then - // apply the italics to the selected text, because if the - // the italics was applied to RTBAPI.RTBSelection.SCF_ALL - // the Links were changed so that they were no longer hidden. - if ((OrigDisplayText.TextFont.Style & E_Style.Italics) > 0) - // RTBAPI.ToggleItalic(true, this, RTBAPI.RTBSelection.SCF_ALL); - { - this.SelectAll(); - RTBAPI.ToggleItalic(true, this, RTBAPI.RTBSelection.SCF_SELECTION); - this.Select(0, 0); - } - } - #endregion - #region HeightSupport - public event StepRTBEvent HeightChanged; - private void OnHeightChanged(object sender, EventArgs args) - { - if (HeightChanged != null) HeightChanged(sender, args); - } - private void AdjustSizeForContents(bool adjustWidth) - { - if (!_InitializingRTB) - { - Size offset = Size - ClientSize; - int widthNew = (this is TableCellEditor) ? Width : (ContentsSize.Width + offset.Width + AdjustSize.Width); - //int widthNew = Width; - //if (!(this is TableCellEditor)) - // widthNew = ContentsSize.Width + offset.Width + AdjustSize.Width; - int heightNew = ContentsSize.Height + offset.Height + AdjustSize.Height; - // Don't make the window narrower unless it has text - RHM - 20100107 - Size szNew = new Size(((Text != "" && adjustWidth) ? widthNew : (widthNew > Width ? widthNew : Width)), heightNew); - if (this.Size != szNew) - { - int heightOld = Height; - //Console.WriteLine("before {0}, {1}, {2}, {3}, {4}", Size, szNew, widthNew, Width, this.GetType().Name); - this.Size = szNew; - //Console.WriteLine("after {0}, {1}, {2}, {3}", Size, szNew, widthNew, Width); - if (heightOld != Height) - OnHeightChanged(this, new EventArgs()); - } - } - } - private float GetStringWidth(string strMeasureString) - { - using (Graphics g = Graphics.FromHwnd(Handle)) - { - return g.MeasureString(strMeasureString, Font).Width; - } - } - private int Ceiling(float f) - { - return (int)(Math.Ceiling(f)); - } - public int MaxTextWidth - { - get - { - int maxWidth = 0; - for (int i = 0; i < TextLength; i++) - { - int w = GetPositionFromCharIndex(i).X; - maxWidth = Math.Max(maxWidth, w); - } - return maxWidth+10; // add 10 to account for the last character - } - } - public void AdjustWidthForContent() - { - int widthNL = Ceiling(GetStringWidth("\n")); - int widthMax = 0; - int widthMaxWW = 0; - int indexStart = 0; - int lineCountFromLines = Lines.Length; - int lineCountFromGet = GetLineFromCharIndex(TextLength)+1; - for (int i = 0; i < Lines.Length; i++) - { - int lineStart = GetLineFromCharIndex(indexStart); - int indexEnd = indexStart + Lines[i].Length; - int lineEnd = GetLineFromCharIndex(indexEnd); - Point pointStart = GetPositionFromCharIndex(indexStart); - Point pointEnd = GetPositionFromCharIndex(indexEnd); - int indexEndPos = GetCharIndexFromPosition(pointEnd); - if (indexEndPos + 1 < indexEnd) // This indicates that the text is wider than the Rich Text Box - { - int w = pointEnd.X + (indexEnd - indexEndPos) * widthNL; - if (w > widthMaxWW) - { - widthMaxWW = w; - } - } - if (lineEnd > lineStart)// this indicates that there was word-wrap on this line. - { - int w = pointEnd.X + Width * (lineEnd - lineStart); - if (w > widthMaxWW) - widthMaxWW = w; - } - else - { - if (pointEnd.X > widthMax) - widthMax = pointEnd.X; - } - indexStart = indexEnd + 1; - } - if (widthMaxWW == 0) - { - int widthBorder = Width - ClientSize.Width; - int w = widthMax + widthNL + widthBorder; - if (Width != w) - { - Width = w; - AdjustWidthForContent();// Try one more time - } - } - else - { - Width = widthMaxWW; - AdjustWidthForContent(); - } - } - public int CalculateHeight() - { - if (this.CreateParams.ClassName == "RICHEDIT50W") - return CalculateHeight50(); - else - return CalculateHeight20(); - } - private int CalculateHeight20() - { - Application.DoEvents(); - int yBottom = GetPositionFromCharIndex(TextLength).Y; - int yTop = GetPositionFromCharIndex(0).Y; - int heightFont = SelectionFont.Height; - int borderSize = this.Height - this.ClientSize.Height; - int heightNext = (yBottom - yTop) + heightFont + borderSize + 2;// 2 pixels - 1 at the top and 1 at the bottom - if (heightNext != Height) - { - Height = heightNext; - - OnHeightChanged(this, new EventArgs()); - ScrollPos = new Point(0, 0); // Scroll to make sure that the first line is displayed as the first line - } - return heightNext; - } - private int CalculateHeight50() - { - Application.DoEvents(); - int heightFont = SelectionFont.Height; - int borderSize = this.Height - this.ClientSize.Height; - int heightNext = (1 + GetLineFromCharIndex(TextLength)) * heightFont + borderSize + 2;// 2 pixels - 1 at the top and 1 at the bottom - return heightNext; - } - #endregion - #region ColorSupport - Not currently used. - //private void SetBackGroundColor(ItemInfo itemInfo) - //{ - // string backcolor = null; - // int type = (int)itemInfo.MyContent.Type; - // FormatInfo formatinfo = itemInfo.ActiveFormat; - // if (type == (int)E_FromType.Procedure) - // backcolor = formatinfo.PlantFormat.FormatData.ProcData.BackColor; - // else if (type == (int)E_FromType.Section) - // backcolor = formatinfo.PlantFormat.FormatData.SectData.BackColor; - // else - // { - // int typindx = (int)itemInfo.MyContent.Type - 20000; // what to do for other types rather than steps - // backcolor = formatinfo.PlantFormat.FormatData.StepDataList[typindx].StepLayoutData.BackColor; - // } - // BackColor = Color.FromName(backcolor); - //} - #endregion - #region EventSupport - #region LinkEvents - private StepPanelLinkEventArgs _MyLinkClickedEventArgs; - public event StepRTBLinkEvent LinkChanged; - private void OnLinkChanged(object sender, StepPanelLinkEventArgs args) - { - _MyLinkClickedEventArgs = args; - if (LinkChanged != null) LinkChanged(sender, args); - } - public event StepRTBLinkEvent LinkGoTo; - private void OnLinkGoTo(object sender, StepPanelLinkEventArgs args) - { - _MyLinkClickedEventArgs = args; - if (LinkGoTo != null) LinkGoTo(sender, args); - } - public event StepRTBLinkEvent LinkModifyTran; - private void OnLinkModifyTran(object sender, StepPanelLinkEventArgs args) - { - _MyLinkClickedEventArgs = args; - if (LinkModifyTran != null) LinkModifyTran(sender, args); - } - public event StepRTBLinkEvent LinkModifyRO; - private void OnLinkModifyRO(object sender, StepPanelLinkEventArgs args) - { - _MyLinkClickedEventArgs = args; - if (LinkModifyRO != null) LinkModifyRO(sender, args); - } - #endregion - #region TextAndContentsEvents - void StepRTB_TextChanged(object sender, EventArgs e) - { - if (_InitializingRTB) return; - // Was setting _IsDirty to true here, but this was getting called from - // 'dotnetbar' when text was NOT Changed. So _IsDirty was made into - // a property and compared original rtf versus current richtextbox's - // rtf. - FindAllLinks(); - } - public void StepRTB_ContentsResized(object sender, ContentsResizedEventArgs e) - { - ContentsRectangle = e.NewRectangle; - } - #endregion - #region Selection Handlers - bool _AdjustingSelection = false; - private bool _ProcessingDelete; - private bool _HandlingCtrlA = false; - private void HandleLocalSelectionChange() - { - //if (MyRTBItem != null && MyRTBItem.MyStepPanel.SelectedStepRTB != this) - if (OnIsNotCurrentSelection(this, new EventArgs())) - return; - - HandleSelectionChange(); - } - private void HandleSelectionChange() - { - if (_HandlingCtrlA) return; - if (!_HandlingCtrlA && this.TextLength == this.SelectionLength && this.SelectedRtf.EndsWith("\\par\r\n}\r\n")) - { - _HandlingCtrlA = true; - SelectAll(); - _HandlingCtrlA = false; - } - //HandleOverWrite(); - //vlnStackTrace.ShowStackLocal("HandleSelectionChangeStack", 1, 10); - bool startingValue = _AdjustingSelection; - if (_IdentifyingLinks || _ProcessingDelete) return; - // If the cursor is beyond the end of the line then move the cursor back one character - if (CorrectSelectionAtEndOfLine()) - return; - if (ProcessKeystrokes) - { - if (!_MouseDown && !_AdjustingSelection) - { - if (_LinkLocations != null) - { - DebugPrint("HSC===================>Beginning: SelectionStart {0}, SelectionLength {1}", SelectionStart, SelectionLength); - _AdjustingSelection = true; - LinkLocation ll = FindLinkLocation(); - LinkLocation llend = null; - if (SelectionLength != 0) - llend = FindLinkLocation(SelectionStart + SelectionLength - 1); - if (ll != null) - { - if (SelectionStart == ll.Start && SelectionLength == 0) - { - if (SelectionStart >= 7) - { - // If the cursor is at the beginning of the line and a link is at the beginning of the line - // then select the link rather than postitioning the cursor at the end of the previous line - if (!_LastWasLeftArrow && GetFirstCharIndexOfCurrentLine() == SelectionStart) - SetSelection(ll); - else - { - DebugPrint("HSC===================>ll Insert: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SelectionStart = ll.Start - 7; - } - } - } - else if (SelectionStart + SelectionLength > ll.End) // Beyond the end of the starting link - { - int end = SelectionStart + SelectionLength; - if (llend != null) end = llend.End; // If it extends into another link extend the end to the end of that link - DebugPrint("HSC===================>ll After: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SetSelection(ll.Start, end - ll.Start); - } - else if (SelectionStart >= ll.Start || SelectionLength > 0)// Within the starting link - { - DebugPrint("HSC===================>ll: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, ll.Start, ll.Length); - SetSelection(ll); - } - } - else if (llend != null) - { - DebugPrint("HSC===================>llend: Sel {0}, Length {1}, Link Start {2}, Link Length {3}", SelectionStart, SelectionLength, llend.Start, llend.Length); - // Check to see if the beginning starts before the Removing ending Removing starting _AdjustingSelection problem"); - DebugPrint("RS------ SelectionChange > {0}", FindRangeStatus()); - if (SelectionLength > 0 && IsSelectionLinked(SelectionStart, SelectionLength)) - { - if (SelectedText.IndexOf(@"[END>") > 0) MyLinkText = SelectedText.Substring(0, SelectedText.IndexOf(@"[END>")); - else MyLinkText = SelectedText; - } - else - MyLinkText = null; - OnRTBSelectionChanged(this, new EventArgs()); - _LastWasLeftArrow = false; - } - /// - /// If the Selection is beyond the end of the line, move the selection back one character - /// - /// - private bool CorrectSelectionAtEndOfLine() - { - if (SelectionStart > 0 && SelectionLength == 0 && - GetFirstCharIndexFromLine(GetLineFromCharIndex(SelectionStart)) > - GetFirstCharIndexOfCurrentLine()) - { - SelectionStart--; // Move the cursor back one character - return true; - } - return false; - } - - //private void HandleOverWrite() - //{ - // if (!_OverWrite) return; - // if (SelectionLength > 0) return; - // if (SelectionStart == TextLength) return; - // Console.WriteLine("Handle Overwrite, SelectionStart = {0}, SelectionLength = {1}", SelectionStart, SelectionLength); - // SelectionLength = 1; - //} - private bool _CheckSelection = false; - #endregion - #region Delete Handlers - private void HandleDeleteKeyWithSelectedText(KeyEventArgs e, string keychars) - { - _ProcessingDelete = true; - FindRangeStatus(); - //DebugPrint("RS---------------- Delete > {0}", _RTBRangeStatus); - switch (_RTBRangeStatus) - { - case RangeStatus.NoContainedLinks: - case RangeStatus.Before_After: - case RangeStatus.Before_EndLink: - case RangeStatus.Before_EndBox: - default: - DeleteCurrentSelection(keychars); - e.SuppressKeyPress = true; - break; - case RangeStatus.Before_Between: //myRTB1.SelectedText.EndsWith(@"[END> - /// This inserts a space in between two links. - /// It actually inserts "\v0 {space}\v " between the END tag and the START tag - /// - /// - /// - /// - private void InsertCharBetweenLinks(LinkLocation ll, char charToAdd, bool setSelect) - { - //_InsertingSpaceBetweenLinks = true; - DebugPrint("ICBLvvvvvvvvvvvvvvv>>>"); - Rtf = Rtf.Substring(0, ll.StartRtf) + @"\v0 " + charToAdd.ToString() + @"\v " + Rtf.Substring(ll.StartRtf); - //_InsertingSpaceBetweenLinks = false; - if (setSelect) - SelectionStart = ll.Start - 6; // account for >>"); - } - private void ExpandSelectionToIncludeStart() - { - //_AdjustingSelection = true; - SetSelection(SelectionStart - 7, SelectionLength + 7); // Expand selection to include start - //_AdjustingSelection = false; - } - private void DeleteBetweenBetweenLinks(string keychars) - { - - DebugSelection("DeleteBetweenBetweenLinks"); - int selStart = SelectionStart - 7; - int selLength = SelectionLength + 2; // Include the two added spaces - InsertCharBetweenLinks(_RangeEndLink.NextLink); // Add a space at the end link - InsertCharBetweenLinks(_RangeStartLink); // Add a space a the start link - SetSelection(selStart, selLength);// Select everything including the spaces - DeleteCurrentSelection(keychars);// Delete Selection - } - /// - /// This is added to handle a glitch in richtextbox. Depending on - /// which direction that selection is made (left -> right or right -> left) - /// a replacement or delete may not work, you'll just get a 'beep'. - /// This approach consistently works. - /// - public bool WasXDelete = false; - private void DeleteCurrentSelection(string keys) - { - - DebugPrint("vvvvvvvvvvvvxxxxxxxxxxxx>"); - DebugSelection("Before X"); - DebugPrint(keys == null ? "NULL" : "NOT NULL"); - SelectedText = keys==null?"X":keys; // replace text with X - WasXDelete = (keys == null); - DebugSelection("After X"); - DebugPrint("------------xxxxxxxxxxxx>"); - if (keys == null) - { - _SendBackSpace = true; - RtbSendKeys("{BS}"); // remove X - //this.ClearUndo(); // undo was redisplay 'X' and then deleted text - Application.DoEvents(); - DebugSelection("After BS"); - } - DebugPrint("^^^^^^^^^^^^xxxxxxxxxxxx>"); - } - private void DeleteSelection(int start, int length, string keychars) - { - SetSelection(start, length); - DeleteCurrentSelection(keychars); - } - private void DeleteEndBetweenLinks(string keychars) - { - _ProcessingKeys++; - DebugSelection("DeleteEndBetweenLinks"); - int sstart = SelectionStart; - int slen = SelectionLength + 1 - 7; - // This puts a space at the link that starts at the end of the selection - InsertCharBetweenLinks(_RangeEndLink.NextLink); - //_AdjustingSelection = true; - DeleteSelection(sstart, slen, keychars); - //_AdjustingSelection = false; - _ProcessingKeys--; - } - private void DeleteStartBetweenLinks(string keychars) - { - _ProcessingKeys++; - DebugSelection("DeleteStartBetweenLinks"); - int slen = SelectionLength + 8; - int sstart = SelectionStart - 7; - //LinkLocation ll = FindBetweenLinks(SelectionStart); - InsertCharBetweenLinks(_RangeStartLink); - DeleteSelection(sstart, slen, keychars); - _ProcessingKeys--; - } - private void DeleteFromStartOfBox(string keychars) - { - _ProcessingKeys++; - DebugSelection("DeleteFromStartOfBox"); - int slen = SelectionLength; - SetSelection(0, 0); - //RtbSendKeys(" "); // open for space between links which separates END/START tokens - SelectedText = " "; - DeleteSelection(0, slen + 8, keychars); - _ProcessingKeys--; - } - private void DeleteFromStartOfBoxEndBetweenLinks(string keychars) - { - _ProcessingKeys++; - DebugSelection("DeleteFromStartOfBoxEndBetweenLinks"); - // This puts a space at the link that starts at the end of the selection - int sLen = SelectionStart + SelectionLength - 7 + 2;// -7 for 0) SetSelection(SelectionStart, newend - SelectionStart); - break; - case Keys.Space: - if (e.Control) // Hardspace - Ctrl+Shift+Space - InsertSymbol(@"\u160?"); - break; - case Keys.F3: // shift F3 - e.Handled = true; - ToggleCase(); // toggle through Upper, Lower, and Title case - break; - default: - break; - } - } - - private string GetSelectedDisplayableText() - { - StepRTB srtb = new StepRTB(); - srtb.Rtf = this.SelectedRtf.Replace(@"\u8209?", "-"); - string rtnstr = ""; - string ctxt = srtb.Text;//this.SelectedText; - if (ctxt.EndsWith(""); - if ((strtidx == -1 || strtidx > lnkidx) && lnkidx > -1 && endidx > -1) - { - rtnstr += ctxt.Substring(idx, lnkidx); - idx = endidx + 5; - strtidx = ctxt.IndexOf("", idx); - } - while (strtidx > -1) - { - rtnstr += ctxt.Substring(idx, strtidx - idx); - idx = strtidx + 7; - rtnstr += ctxt.Substring(idx, lnkidx - idx); - idx = endidx + 5; - strtidx = ctxt.IndexOf("", idx); - } - if (idx < ctxt.Length) - rtnstr += ctxt.Substring(idx); - return rtnstr; - } - - private bool IsControlChar = false; - private bool _SendBackSpace = false; - void StepRTB_KeyDown(object sender, KeyEventArgs e) - { - if (e.Control) - { - IsControlChar = true; - switch (e.KeyCode) - { - case Keys.X: //ctrl-X - case Keys.C: //ctrl-C - // handle the clipboard copy and cut when a Transition or RO is selected - // For now, we are coping/cutting just the displayed text to the clipboard (like 16-bit VE-PROMS) - string ts = GetSelectedDisplayableText(); - if (ts!=null&&ts!="") Clipboard.SetText(GetSelectedDisplayableText()); - e.Handled = true; - e.SuppressKeyPress = true; - if (ts!=null&&ts!=""&&e.KeyCode == Keys.X) // cut to clipboard - delete the selected text - HandleDeleteKeyWithSelectedText(e, null); - break; - case Keys.V: - IDataObject iData = Clipboard.GetDataObject(); - if (!iData.GetDataPresent(DataFormats.Text) && !iData.GetDataPresent(DataFormats.Rtf)) - { - MessageBox.Show("Cannot paste, text has special characters or symbols that will not paste correctly."); - } - else - { - Paste(); - if (SelectionLength == 0) SelectionFont = MyStyleFont.WindowsFont; - } - e.Handled = true; - return; - case Keys.Home: - StepRTB_HomeEndPressed(e); - e.Handled = true; - break; - case Keys.End: - StepRTB_HomeEndPressed(e); - e.Handled = true; - break; - case Keys.Enter: - OnInsertPgBrk(this, new EventArgs()); - e.Handled = true; - break; - } - } - switch (e.KeyCode) - { - case Keys.Left: - if (e.Shift) - { - int newstart = FindStart(); // find start of link ending on. - // if not link, don't do special processing - if (newstart == SelectionStart - 1) return; - int len = SelectionLength + SelectionStart - newstart; - SetSelection(newstart, len); - e.Handled = true; - return; - } - if (e.Control || SelectionStart == 0) - { - StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlLeft : E_ArrowKeys.Left); - e.Handled = true; - } - HandleLocalSelectionChange(); - break; - case Keys.Up: - int ln = GetLineFromCharIndex(SelectionStart); - if (e.Control || ln == 0) - { - StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlUp : E_ArrowKeys.Up); - e.Handled = true; - } - // if shift-up & at selection had a link, handle this as special case. - if (e.Shift && SelectionLength > 0) - { - RangeStatus rs = FindRangeStatus(); - if (rs != RangeStatus.NoContainedLinks) - { - int curend = SelectionStart + SelectionLength; - SelectionLength = 0; - RtbSendKeys("{Up}"); - Application.DoEvents(); - Select(SelectionStart, curend - SelectionStart); - e.Handled = true; - } - } - else - { - HandleLocalSelectionChange(); - } - break; - case Keys.Right: - // If at beginning of box that starts with a link, don't worry about shift or not, - // because selection is first character or link without any other selection. Don't - // need to write code to handle link at beginning of box in Shift Right code because - // it's handled in HandleSelectionChange. - if (e.Shift && ((SelectionStart > 0) || (SelectionStart == 0 && _LinkLocations.Count > 0 && _LinkLocations[0].Start != 7))) - { - int newlen = FindEnd(); - int len = SelectionLength + newlen; - SetSelection(SelectionStart, len); - e.Handled = true; - return; - } - if (e.Control || SelectionStart == this.Text.Length) - { - StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlRight : E_ArrowKeys.Right); - e.Handled = true; - } - HandleLocalSelectionChange(); - break; - case Keys.Down: - int l = GetLineFromCharIndex(SelectionStart); - Point pos = new Point(); - pos.X = ClientRectangle.Width; - pos.Y = ClientRectangle.Height; - int lastIndex = this.GetCharIndexFromPosition(pos); - int lastLine = this.GetLineFromCharIndex(lastIndex); - if (e.Control || l >= lastLine) - { - StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlDown : E_ArrowKeys.Down); - HandleLocalSelectionChange(); - e.Handled = true; - return; - } - if (!e.Shift) HandleLocalSelectionChange(); - // if shift-down & on link at beginning of box - do special processing (regular processing - // didn't handle it correctly. - if (e.Shift && lastLine > 0 && SelectionStart == 0 && _LinkLocations.Count > 0 && _LinkLocations[0].Start == 7) - { - Point cpos = GetPositionFromCharIndex(SelectionStart); - int addon = ClientRectangle.Height / (lastLine + 1); - cpos.Y = cpos.Y + addon; - int selend = GetCharIndexFromPosition(cpos); - Select(7, selend - 7); - e.Handled = true; - } - break; - case Keys.PageUp: - StepRTB_PageKeyPressed(e); - e.Handled = true; - break; - case Keys.PageDown: - StepRTB_PageKeyPressed(e); - e.Handled = true; - break; - case Keys.Delete: - if (SelectionLength == 0) - { - foreach (LinkLocation lls in _LinkLocations) - { - if (SelectionStart >= lls.Start - 7 && SelectionStart < lls.End) - { - SetSelection(lls);// Select the link to the right - HandleDeleteKeyWithSelectedText(e, null); - e.SuppressKeyPress = true; - return; - } - } - if (SelectionStart != TextLength) - { - SelectionStart++;// A Delete can be accomplished with a right arrow followed by a backspace. - RtbSendKeys("{BS}"); // This is done due to a glitch in the RichTextBox that sometimes causes a beep rather than a delete - e.SuppressKeyPress = true; - } - } - else - HandleDeleteKeyWithSelectedText(e, null); - break; - case Keys.Back: - if (_SendBackSpace) - { - _SendBackSpace = false; - return; - } - _CheckSelection = true; - if (SelectionLength == 0) - { - foreach (LinkLocation lls in _LinkLocations) - { - if (SelectionStart > lls.Start - 7 && SelectionStart <= lls.End) - { - SetSelection(lls); - break; - } - } - } - if (SelectionLength > 0) HandleDeleteKeyWithSelectedText(e, null); - break; - case Keys.Insert: - //_OverWrite = !_OverWrite; - //if (_OverWrite) - //{ - // HandleSelectionChange(); - //} - //else - //{ - // SelectionLength = 0; - // HandleSelectionChange(); - //} - // For now, don't allow for toggling between insert/overwrite mode - see - // comment on _OverWrite - e.Handled = true; - break; - case Keys.F5: - if (e.Shift) - { - e.Handled = true; - if (!OnCheckClipboard(this, new EventArgs())) return; // check if 'clipboard' contains a step. - OnSetMenu(this, new StepRTBMenuEventArgs("StepPaste")); - } - else if (!e.Control && !e.Alt) - { - e.Handled = true; - OnCopyStep(this, new EventArgs()); - } - break; - case Keys.F6: - e.Handled = true; - SendKeys.Send("%H{ESC}"); - break; - case Keys.Tab: - VlnFlexGrid myGrid = Parent as VlnFlexGrid; - if (myGrid == null) - { - e.SuppressKeyPress = true; - e.Handled = true; - Form frm = ParentForm(this); - if (frm != null) - frm.SelectNextControl(this, true, true, true, true); - } - else - { - if (e.Shift) - { - e.SuppressKeyPress = true; - e.Handled = true; - if (!myGrid.SelectPrevCell()) - { - // don't do anything if at top (for now) - } - } - else - { - e.SuppressKeyPress = true; - e.Handled = true; - if (!myGrid.SelectNextCell()) - { - myGrid.MyBorders.InsertRow(myGrid.Rows.Count - 1); - myGrid.Rows.Add(1); - myGrid.SelectNextCell(); - } - } - } - break; - case Keys.Enter: - if (!e.Control && !e.Shift && !e.Alt) - { - OnEnterKeyPressed(sender, e); - } - break; - } - } - private static Form ParentForm(Control ctrl) - { - while (!(ctrl.Parent is Form || ctrl.Parent is EditItem)) - ctrl = ctrl.Parent; - return ctrl.Parent as Form; - } - private void StepRTB_HomeEndPressed(KeyEventArgs keyargs) - { - if (MyItemInfo.IsProcedure || MyItemInfo.IsSection) return; - // Cursor moves out of box only if control is pressed too - otherwise key is - // handled in rtb. - //if (keyargs.Control)MyRTBItem.MyStepPanel.StepCursorKeys(this, keyargs); // Replaced with an event - if (keyargs.Control) OnCursorKeyPress(this, keyargs); - } - private void StepRTB_PageKeyPressed(KeyEventArgs keyargs) - { - if (MyItemInfo.IsProcedure || MyItemInfo.IsSection) return; - //MyRTBItem.MyStepPanel.StepCursorKeys(this, keyargs); Replaced with an event - OnCursorKeyPress(this, keyargs); - } - public void StepRTB_ArrowPressed(E_ArrowKeys key) - { - Point cp = PointToClient(Cursor.Position); - //MyRTBItem.MyStepPanel.CursorMovement(this, cp, key); Replaced with an event - OnCursorMovement(this, new StepRTBCursorMovementEventArgs(cp, key)); - } - private void StepRTB_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) - { - if (!ReadOnly) - { - // add the character with its font depending on the char.... - if (!IsControlChar) - { - string strpressed = null; - if (e.KeyChar == '-') - strpressed = GetAddSymbolText(@"\u8209?"); - else - strpressed = e.KeyChar.ToString(); - if (e.KeyChar >= ' ') - { - LinkLocation ll = FindBetweenLinks(); - if (ll != null && SelectionLength == 0) // SelectionLength = 0 means insert - { - if (e.KeyChar == '}') - strpressed = @"\}"; - else if (e.KeyChar == '{') - strpressed = @"\{"; - InsertCharBetweenLinks(ll, strpressed); // e.KeyChar); - e.Handled = true; - } - else if (SelectionLength != 0) - { - HandleDeleteKeyWithSelectedText(new KeyEventArgs(Keys.None), strpressed); - e.Handled = true; - } - } - if (!e.Handled) - { - if (e.KeyChar == '-') - AddSymbol(@"\u8209?"); - else if (e.KeyChar == '{') - AddRtf(@"\{"); - else if (e.KeyChar == '}') - AddRtf(@"\}"); - else - return; - e.Handled = true; // flag that it's been handled, otherwise, will get 2 chars. - } - if (e.Handled && SelectionLength != 0) SelectionFont = MyStyleFont.WindowsFont; - } - IsControlChar = false; - } - } - private void RtbSendKeys(string keys) - { - Focus(); - SendKeys.Send(keys); // With .Net Framework 3.0 this can be replaced with EditingCommands - // http://msdn.microsoft.com/en-us/library/ms771634.aspx - } - - private void DoDeleteEndBetweenLinks() - { - DebugSelection("Beginning"); - int sstart = SelectionStart; - RtbSendKeys("{RIGHT} "); // open for space between links which separates END/START tokens - SetSelection(sstart, SelectionStart - sstart - 1); // 1 is accounting for typed space - DebugSelection("SetSelection"); - RtbSendKeys("{DELETE}"); // deletes text including link - RtbSendKeys("{RIGHT}{BS}"); // deletes space that was added - } - private void DoDeleteStartBetweenLinks() - { - int slen = SelectionLength; - RtbSendKeys("{LEFT} "); - SetSelection(SelectionStart, slen + 7); - RtbSendKeys("{DELETE}"); - RtbSendKeys("{BS}"); - } - #endregion - #region LinkSelectionAndHandling - public bool IsSelectionLinked(int index, int len) - { - if (_LinkLocations == null)return false; - int sel = index; - int selLength = len; - foreach (LinkLocation ll in _LinkLocations) - { - // When the selector moved to the right of a link, the GOTO button was still lit. - // Removing the "+7" seems to have fixed this. - jsj 1/08/2010 - //if (sel >= ll.Start && sel < ll.Start + ll.Length + 7) return true; - if (sel >= ll.Start && sel < ll.Start + ll.Length) return true; - } - return false; - } - /// - /// For use in Find/Replace. - /// If text is found is part of the link information and not the link value, - /// then we want to continue searching. - /// - /// - /// - /// - public bool SkipLinkInfo(int index, int len) - { - if (_LinkLocations == null)return false; - int sel = index; - int selLength = len; - foreach (LinkLocation ll in _LinkLocations) - { - if (sel >= ll.Start - 7 && sel < ll.Start + ll.Length) - { - int pos = ll.Text.IndexOf("#Link:"); - if (sel < ll.Start || sel >= ll.Start-7+pos) - return (true); - } - } - return false; - } - #endregion - #endregion - #region SelectionStack - Stack _SelectionStack = new Stack(); - public void PushSelection() - { - _SelectionStack.Push(new SelectionData(this)); - } - public void PopSelection() - { - SelectionData selection = _SelectionStack.Pop(); - Select(selection.SelectionStart, selection.SelectionLength); - } - public class SelectionData - { - int _SelectionStart; - public int SelectionStart - { - get { return _SelectionStart; } - set { _SelectionStart = value; } - } - int _SelectionLength; - public int SelectionLength - { - get { return _SelectionLength; } - set { _SelectionLength = value; } - } - public SelectionData(RichTextBox richTextBox) - { - _SelectionStart = richTextBox.SelectionStart; - _SelectionLength = richTextBox.SelectionLength; - } - } - #endregion - #region Link Support - int _ProcessingKeys = 0; - - List _LinkLocations; - public List LinkLocations - { - get { return _LinkLocations; } - } - private int _FALLevel = 0; - private bool _IdentifyingLinks = false; - public void FindAllLinks() - { - if (_IdentifyingLinks || _ProcessingDelete) return; - //DebugPrint("FAL{0}vvvvvvvvvvvvvvvvvvvvvvvvv>>", ++_FALLevel); - _AdjustingSelection = true; - PushSelection(); - FindLinks(); - //IdentifyLinks(); - PopSelection(); - LinkLocation llx = FindLinkLocation(); - if (_CheckSelection) - { - if (llx != null) SetSelection(llx.End, 0); - _CheckSelection = false; - } - _AdjustingSelection = false; - if (!_ProcessingDelete) - OnLinkLocationChanged(this, new EventArgs()); - //DebugPrint("FAL{0}^^^^^^^^^^^^^^^^^^^^^^^^^>>", _FALLevel--); - - } - private void FindLinks() - { - string str = Text; - _LinkLocations = new List(); - MatchCollection matches = Regex.Matches(str, @"", RegexOptions.Singleline); - MatchCollection matchesRtf = Regex.Matches(Rtf, "", RegexOptions.Singleline); - LinkLocation thisLink = null; - for (int i = 0; i < matches.Count; i++) //each (Match match in matches) - { - Match match = matches[i]; - Match matchrtf = matchesRtf[i]; - thisLink = new LinkLocation(match.Index + 7, // If the [END> is immediately followed by "); - foreach (LinkLocation ll in _LinkLocations) - if (ll.Start == start && ll.StartsBetween) - return ll; - return null; - } - private LinkLocation FindLinkLocation() - { - return FindLinkLocation(SelectionStart); - } - private LinkLocation FindLinkLocation(int sel) - { - //DebugPrint("FL----------------Location>"); - if (_LinkLocations == null) return null; - foreach (LinkLocation ll in _LinkLocations) - { - // Moving right: - // if less than, allows stopping between two links - if (ll.Start < sel && ll.End > sel) - { - DebugPrint("Greater Than {0} {1} {2}", sel, ll.Start, ll.End); - return ll; - } - // if less than or equal, does not stop between two links - if ((!ll.StartsBetween) && ll.Start <= sel && ll.End > sel) - { - DebugPrint("Greater Than or Equal {0} {1} {2}", sel, ll.Start, ll.End); - return ll; - } - } - return null; - } - public DialogResult ReplaceText(string rpltxt, string fndstr, bool caseSensitive, bool matchWholeWord, bool reverse, bool prompt, IWin32Window fndrpldlg) - { - DialogResult dlgrslt = DialogResult.Yes; - if (SelectionLength > 0) - { - if (IsSelectionLinked(SelectionStart, SelectionLength)) - { - MessageBox.Show(fndrpldlg,"Cannot replace linked text!", "Find/Replace"); - dlgrslt = DialogResult.No; - } - else - { - if (prompt) - dlgrslt = MessageBox.Show(fndrpldlg,"Replace This Occurence?", "Replace Text", MessageBoxButtons.YesNoCancel); - if (dlgrslt == DialogResult.Yes) - SelectedText = rpltxt; - } - } - return dlgrslt; - } - private RichTextBoxFinds _FindOptions = RichTextBoxFinds.None; - public bool FindText(string str, bool caseSensitive, bool matchWholeWord, bool reverse) - { - StepRTB savRTF = new StepRTB(); - int startpos = SelectionStart + SelectionLength; - savRTF.Text = this.Text; - - _FindOptions = RichTextBoxFinds.None; - if (caseSensitive) - _FindOptions |= RichTextBoxFinds.MatchCase; - if (matchWholeWord) - _FindOptions |= RichTextBoxFinds.WholeWord; - if (reverse) - { - _FindOptions |= RichTextBoxFinds.Reverse; - savRTF.Text = this.Text.Substring(0, SelectionStart); - startpos = savRTF.Text.Length; - if (startpos == 0) - return false; // at beginning of rtfbox during a reverse find - } - else - { - if (startpos >= savRTF.Text.Length) - return false; // at end of rtfbox during a forward find - } - // look for the find string in the temporary rtfbox - // then set the cursor selection in the real rtfbox - bool keepgoing = true; - while (keepgoing) - { - int pos = savRTF.Find(str, startpos, _FindOptions); - keepgoing = false; - if (pos >= 0) - { - if (this.SkipLinkInfo(pos, str.Length)) - { - if (reverse) - { - startpos--; - savRTF.Text = savRTF.Text.Substring(0, startpos); - } - else - startpos++; - if (startpos > 0 && startpos < savRTF.Text.Length) - keepgoing = true; - } - else - { - SelectionStart = pos; - SelectionLength = str.Length; - } - } - else - return false; - } - return true; - } - private int FindStart() - { - foreach (LinkLocation ll in _LinkLocations) - { - if (SelectionStart == ll.End) return ll.Start; - if (SelectionStart == ll.Start) - { - if (ll.Start == 7) return 7; - return ll.Start - 8; - } - } - if (SelectionStart > 0) return SelectionStart - 1; - return 0; - } - private int FindEnd() - { - foreach (LinkLocation ll in _LinkLocations) - { - if (SelectionStart + SelectionLength + 7 == ll.Start) return ll.Length + 7; - // this is for in-between links - if (SelectionStart + SelectionLength == ll.Start) return ll.Length; - } - if (SelectionStart + SelectionLength < TextLength) return 1; - return 0; - } - private int FindEndDown() - { - foreach (LinkLocation ll in _LinkLocations) - { - if (SelectionStart + SelectionLength >= ll.Start && SelectionStart + SelectionLength <= ll.End) return ll.End; - } - return 0; - } - private int FindStartUp() - { - foreach (LinkLocation ll in _LinkLocations) - { - if ((SelectionStart >= ll.Start) && (SelectionStart <= ll.End)) return ll.Start; - } - return -1; - } - public void SetSelection(LinkLocation ll) - { - SetSelection(ll.Start, ll.Length); - } - public void SetSelection(int locStart, int locLength) - { - //Application.DoEvents(); // Not needed since SendKeys is always done last. - if (_IdentifyingLinks) - DebugPrint("SS------------------------> {0} {1}", locStart, locLength); - else - DebugPrint("SS========================> {0} {1}", locStart, locLength); - Select(locStart, locLength); - } - #endregion - //#region FontAndStylesSupport - //private void ToggleFontStyle(FontStyle style, bool att_on) - //{ - // int start = SelectionStart; - // int len = SelectionLength; - // System.Drawing.Font currentFont; - // FontStyle fs; - // for (int i = 0; i < len; ++i) - // { - // Select(start + i, 1); - // currentFont = SelectionFont; - // fs = currentFont.Style; - // //add or remove style - // if (!att_on)fs = fs | style; - // else fs = fs & ~style; - - // SelectionFont = new Font( - // currentFont.FontFamily, - // currentFont.Size, - // fs - // ); - // } - //} - /// - /// Returns a Font with: - /// 1) The font applying to the entire selection, if none is the default font. - /// 2) The font size applying to the entire selection, if none is the size of the default font. - /// 3) A style containing the attributes that are common to the entire selection, default regular. - /// - /// - //public Font GetFontDetails() - //{ - // //This method should handle cases that occur when multiple fonts/styles are selected - - // int start = SelectionStart; - // int len = SelectionLength; - // int TempStart = 0; - - // if (len <= 1) - // { - // // Return the selection or default font - // if (SelectionFont != null) - // return SelectionFont; - // else - // return Font; // should be default from format. - // } - - // // Step through the selected text one char at a time - // // after setting defaults from first char - // _rtbTemp.Rtf = SelectedRtf; - - // //Turn everything on so we can turn it off one by one - // FontStyle replystyle = - // FontStyle.Bold | FontStyle.Italic | FontStyle.Underline; - - // // Set reply font, size and style to that of first char in selection. - // _rtbTemp.Select(TempStart, 1); - // string replyfont = _rtbTemp.SelectionFont.Name; - // float replyfontsize = _rtbTemp.SelectionFont.Size; - // replystyle = replystyle & _rtbTemp.SelectionFont.Style; - - // // Search the rest of the selection - // for (int i = 1; i < len; ++i) - // { - // _rtbTemp.Select(TempStart + i, 1); - - // // Check reply for different style - // replystyle = replystyle & _rtbTemp.SelectionFont.Style; - - // // Check font - // if (replyfont != _rtbTemp.SelectionFont.FontFamily.Name) - // replyfont = ""; - - // // Check font size - // if (replyfontsize != _rtbTemp.SelectionFont.Size) - // replyfontsize = (float)0.0; - // } - - // // Now set font and size if more than one font or font size was selected - // if (replyfont == "") - // replyfont = _rtbTemp.Font.FontFamily.Name; - - // if (replyfontsize == 0.0) - // replyfontsize = _rtbTemp.Font.Size; - - // // generate reply font - // Font reply - // = new Font(replyfont, replyfontsize, replystyle); - - // return reply; - //} - //#endregion - #region EnumsSelectionRange - private enum StartStatus : int - { - Before = 100, - Between = 200, - StartLink = 300, - StartBox = 400 - }; - private enum EndStatus : int - { - After = 1, - Between = 2, - EndLink = 3, - EndBox = 4, - StartLink = 5 - }; - public enum RangeStatus : int - { - NoContainedLinks = 0, - Before_After = StartStatus.Before + EndStatus.After, - Before_Between = StartStatus.Before + EndStatus.Between, - Before_EndLink = StartStatus.Before + EndStatus.EndLink, - Before_EndBox = StartStatus.Before + EndStatus.EndBox, - Before_StartLink = StartStatus.Before + EndStatus.StartLink, - Between_After = StartStatus.Between + EndStatus.After, - Between_Between = StartStatus.Between + EndStatus.Between, - Between_EndLink = StartStatus.Between + EndStatus.EndLink, - Between_EndBox = StartStatus.Between + EndStatus.EndBox, - Between_StartLink = StartStatus.Between + EndStatus.StartLink, - StartLink_After = StartStatus.StartLink + EndStatus.After, - StartLink_Between = StartStatus.StartLink + EndStatus.Between, - StartLink_EndLink = StartStatus.StartLink + EndStatus.EndLink, - StartLink_EndBox = StartStatus.StartLink + EndStatus.EndBox, - StartLink_StartLink = StartStatus.StartLink + EndStatus.StartLink, - StartBox_After = StartStatus.StartBox + EndStatus.After, - StartBox_Between = StartStatus.StartBox + EndStatus.Between, - StartBox_EndLink = StartStatus.StartBox + EndStatus.EndLink, - StartBox_EndBox = StartStatus.StartBox + EndStatus.EndBox, - StartBox_StartLink = StartStatus.StartBox + EndStatus.StartLink - }; - private RangeStatus _RTBRangeStatus; - public RangeStatus RTBRangeStatus - { - get { return _RTBRangeStatus; } - set - { - _RTBRangeStatus = value; - if (!_ProcessingDelete) OnRTBRangeStatusChanged(this, new EventArgs()); - } - } - private LinkLocation _RangeStartLink = null; - private LinkLocation _RangeEndLink = null; - public RangeStatus FindRangeStatus() - { - _RangeStartLink = null; - _RangeEndLink = null; - if (_LinkLocations == null || _LinkLocations.Count == 0) - { - return RTBRangeStatus = RangeStatus.NoContainedLinks; - } - LinkLocation foundLink = null; - int start = SelectionStart; - int end = start + SelectionLength; - - foreach (LinkLocation ll in _LinkLocations) - { - if (foundLink == null && ((ll.Start >= start && ll.Start < end) || (ll.End >= start && ll.End < end))) - foundLink = ll; - if (_RangeStartLink == null && start >= ll.Start - 7 && start < ll.End) - _RangeStartLink = ll; - if (_RangeEndLink == null && end >= ll.Start && end <= ll.End) - _RangeEndLink = ll; - } - DebugPrint("SelectionStart {0}, SelectionEnd {1}, TextLength {2}", - SelectionStart, SelectionStart + SelectionLength, - TextLength); - //if (_RangeStartLink != null) - // _RangeStartLink.Show("startLink"); - //if (_RangeEndLink != null) - // _RangeEndLink.Show("endLink"); - //if (foundLink != null) - // foundLink.Show("foundLink"); - - if (foundLink == null) - return RTBRangeStatus = RangeStatus.NoContainedLinks; - - StartStatus myStartStatus = StartStatus.Before; - EndStatus myEndStatus = EndStatus.After; - if (_RangeStartLink != null) - { - if (_RangeStartLink.Start == 7) - myStartStatus = StartStatus.StartBox; - else if (_RangeStartLink.StartsBetween) - myStartStatus = StartStatus.Between; - else - myStartStatus = StartStatus.StartLink; - } - if (_RangeEndLink != null) - { - if (_RangeEndLink.End == TextLength) - myEndStatus = EndStatus.EndBox; - else if (_RangeEndLink.NextStart == _RangeEndLink.End) - myEndStatus = EndStatus.Between; - else if (end == _RangeEndLink.Start) - myEndStatus = EndStatus.StartLink; // Should not happen because of code in HandleSelectionChange - else //if (end == endLink.End) - myEndStatus = EndStatus.EndLink; - } - return RTBRangeStatus = (RangeStatus)((int)myStartStatus + (int)myEndStatus); - } - #endregion - #region OutlineTable - private string _CheckRight = "-\u2500\u2011"; - public string CheckRight - { - get { return _CheckRight; } - set { _CheckRight = value; } - } - private string _CheckAbove = "|\u2502\u2514\u252c\u253c\u251c\u250c\u2534\u2510\u2524"; - public string CheckAbove - { - get { return _CheckAbove; } - set { _CheckAbove = value; } - } - private string _CheckLeft = "-\u2500\u2524\u252c\u251c\u253c\u250c\u2510\u2514\u2011"; - public string CheckLeft - { - get { return _CheckLeft; } - set { _CheckLeft = value; } - } - private string _CheckBelow = "|\u2502"; - public string CheckBelow - { - get { return _CheckBelow; } - set { _CheckBelow = value; } - } - // This is a table of graphics characters - // The index into this table (0-15) is a bitmask with each bit representing - // a different direction from the current character. - // Right is Bit 0 (0 or 1) - // Above is Bit 1 (0 or 2) - // Left is Bit 2 (0 or 4) - // Below is Bit 3 (0 or 8) - // The index is contolled in the following way: - // If there is a graphics character to the right, then you add 1 - // If there is a graphics character above, then you add 2 - // If there is a graphics character left, then you add 4 - // If there is a graphics character below, then you add 8 - // The total results in an index into this array and gives the appropriate character - // combining horizontal and vertical lines. - - static private string [] TableCharsU = { - "\x0", // HEX"\x0", // No character - @"\u9472", // HEX@"\u2500",// - Horizontal line - 16-bit char: '\xC4' - @"\u9474", // HEX@"\u2502",// | Vertical line - 16-bit char: '\xB3' - @"\u9492", // HEX@"\u2514",// L Bottom Left corner - 16-bit char: '\xC0' - @"\u9472", // HEX@"\u2500",// - Horizontal line - 16-bit char: '\xC4' - @"\u9472", // HEX@"\u2500",// - Horizontal line - 16-bit char: '\xC4' - @"\u9496", // HEX@"\u2518",// Bottom Right Corner - 16-bit char: '\xD9' - @"\u9524", // HEX@"\u2534",// Bottom Tee - 16-bit char: '\xC1' - @"\u9474", // HEX@"\u2502",// | Vertical Bar - 16-bit char: '\xB3' - @"\u9484", // HEX@"\u250c",// Upper Left corner - 16-bit char: '\xDA' - @"\u9474", // HEX@"\u2502",// | Vertical Bar - 16-bit char: '\xB3' - @"\u9500", // HEX@"\u251c",// Left Tee - 16-bit char: '\xC3' - @"\u9488", // HEX@"\u2510",// Upper Right corner - 16-bit char: '\xBF' - @"\u9516", // HEX@"\u252c",// T Top Tee - 16-bit char: '\xC2' - @"\u9508", // HEX@"\u2524",// Right Tee - 16-bit char: '\xB4' - @"\u9532", // HEX@"\u253c" // + Plus - 16-bit char: '\xC5' - }; - - private int MaxCharacterWidth() - { - // loop through lines and get the width in characters - int w = 0; - foreach (string line in Lines) - { - string cleanLine = RemoveLinkComments(line); - if (w < cleanLine.Length) - w = cleanLine.Length; - } - return w; - } - internal static string RemoveLinkComments(string line) - { - StringBuilder sb = new StringBuilder(); - int lastIndex = 0; - MatchCollection mc = Regex.Matches(line, @""); - foreach (Match m in mc) - { - sb.Append(line.Substring(lastIndex, m.Index - lastIndex)); // Append text before the link - sb.Append(m.Groups[1].Value); // Append the text portion of the link - lastIndex = m.Index + m.Length; // Calculate the beginning of the remaining text - } - sb.Append(line.Substring(lastIndex)); // Append the text following the last link - string result = sb.ToString(); - result = result.Replace(@""); - if (mcEnd.Count > 0) - { - result = result.Substring(0, mcEnd[0].Index) + result.Substring(mcEnd[0].Index + mcEnd[0].Length); - } - return result; - } - private void ReplaceLinesInTable(bool withBorder) - { - int rowWidth = Lines[0].Length; - for (int row=1;row"); //, RegexOptions.Singleline); - if (matchCollection.Count == 0) matchCollection = Regex.Matches(line, @""); - Match match = matchCollection.Count > 0 ? matchCollection[0] : null; - int matchOffset = 0; - for (int col = 1; col < rowWidth - 1; col++) - { - if (match != null && match.Index == matchOffset + col) - { - matchOffset += match.Length - match.Groups[1].Length; // Increment the offset by the link comment length - col += match.Groups[1].Length; // increment the column by the link value length - if (col >= rowWidth - 1) break;// Don't continue if beyond the contents - match = match.NextMatch(); // Watch for the next match - } - int coll = matchOffset + col; - char chr = line[coll]; - char chrLast = line[coll - 1]; - char chrNext = line[coll + 1]; - char chrAbove = lineAbove[col]; - char chrBelow = lineBelow[col]; - // The following is all using symbol font (either unicode for proportional or - // VeSymbFix for fixed font): - // if this character is a table line draw character, i.e. a dash or vertical bar, or - // graphics characters for those, look around it to see what table character it is - // replaced with - - // Look for -||-- (last three are graphics chars or unicode dash) - if ("-|\u2500\u2502\u2011".IndexOf(chr) > -1) - { - bool horizontalCharacter = "-\u2500\u2011".IndexOf(chr) > -1; - int lineDrawRight = (CheckRight.IndexOf(chrNext) > -1 || (horizontalCharacter && "\u2502".IndexOf(chrNext) > -1)) ? 1 : 0; - int lineDrawAbove = (CheckAbove.IndexOf(chrAbove) > -1 || (!horizontalCharacter && "\u2500\u2011".IndexOf(chrAbove) > -1)) ? 2 : 0; - int lineDrawLeft = (CheckLeft.IndexOf(chrLast) > -1 || (horizontalCharacter && "\u2502".IndexOf(chrLast) > -1)) ? 4 : 0; - int lineDrawBelow = (CheckBelow.IndexOf(chrBelow) > -1 || (!horizontalCharacter && "-\u2500\u2011".IndexOf(chrBelow) > -1)) ? 8 : 0; - int tableCharIndx = lineDrawRight + lineDrawAbove + lineDrawLeft + lineDrawBelow; - if (tableCharIndx > 0) - { - SetTableChar(row, coll, tableCharIndx); - if (withBorder) // Adjust the border as it intersects with lines within the box - { - if (row == 1 && !horizontalCharacter ) SetTableChar(row - 1, col, 13); // Top Row - if (row == Lines.Length - 2 && !horizontalCharacter) SetTableChar(row + 1, col, 7); // Bottom Row - if (col == 1 && horizontalCharacter && ((tableCharIndx & 4)==4)) SetTableChar(row, col - 1, 11); // First Column - if (col == rowWidth - 2 && horizontalCharacter && ((tableCharIndx & 1) == 1)) SetTableChar(row, coll + 1, 14); // Last Column - } - } - } - } - } - } - private void SetTableChar(int row, int col, int tableCharIndx) - { - int rowOffset = GetFirstCharIndexFromLine(row); - Select(rowOffset + col, 1); - string charToBeReplaced = SelectedText; - if (Text.Length > (rowOffset + col + 7) && Text.Substring(rowOffset + col + 1, 6) != "#Link:") - SelectedRtf = RtfPrefixForSymbols + TableCharsU[tableCharIndx] + "?}"; - else - { - SelectionStart++; - int lenComment = 1 + SelectionStart - (rowOffset + col); - //Console.WriteLine("{0},{1},{2}", rowOffset + col, SelectionStart, SelectionLength); - Select(rowOffset + col, 0); - SelectedRtf = RtfPrefixForSymbols + TableCharsU[tableCharIndx] + "?}"; - Select(rowOffset + col, lenComment); - //Console.WriteLine("'{0}',{1},{2},{3}", SelectedText, lenComment, SelectionLength, SelectionStart); - //Console.WriteLine("'{0}'", SelectedRtf); - SelectedRtf = SelectedRtf.Replace(" " + charToBeReplaced, ""); - } - } - #endregion - #region SpellChecker - // We made the Spell Checker method a static so that all of the StepRTB boxes will bare the same instance of the dictionary. - // This allow all the StepRTB's to automatically update when a new word is added. - private static C1.Win.C1SpellChecker.C1SpellChecker _C1SpellChecker2; - - private static C1.Win.C1SpellChecker.C1SpellChecker C1SpellChecker2 - { - get - { - if (_C1SpellChecker2 == null) - { - _C1SpellChecker2 = new C1.Win.C1SpellChecker.C1SpellChecker(); - _C1SpellChecker2.ContextMenuCreated += new C1.Win.C1SpellChecker.ContextMenuEventHandler(_C1SpellChecker2_ContextMenuCreated); - // The veproms.dct file is the main spell checker dictionary. - // We edited the C1 dictionary (C:\Program Files\ComponentOne\Dictionaries\C1Spell_en-US.dct) using ComponentOne's - // dictionary editor (C:\Program Files\ComponentOne\Studio for WinForms\C1SpellChecker\C1DictionaryEditor.exe) - // and added the veproms.words list as another word list in the dictionary. We saved the resulting file as veproms.dct. - string dictpath = string.Format(@"{0}\veproms.dct", Application.StartupPath); - - // Only use the veproms.dct if it is found in the BIN folder. Otherwise, let it default to use the standard dictionary. - if (File.Exists(dictpath)) - _C1SpellChecker2.MainDictionary.FileName = dictpath; // looks in the bin folder by default - - // NOTE: By default, a "Custom.dct" file (UserDictionary) will be created in the BIN folder when a user adds words to the - // spell checker dictionary. The words that the user adds are not placed in the Volian.dct file. - //_C1SpellChecker2.UserDictionary.FileName = @"C:\Development\proms\VEPROMS User Interface\bin\Debug\MYDictionary.dct"; - } - return StepRTB._C1SpellChecker2; - } - } - - // Get or Save our context menu - // This is added to the the spell checker's context menu for a mis-spelled word - private static ContextMenuStrip _ThisContextMenuStrip; - public ContextMenuStrip ThisContextMenuStrip - { - get { return _ThisContextMenuStrip; } - set { _ThisContextMenuStrip = value; } - } - - private static StepRTB _ContextMenuStepRTB; - private static object _ContextMenuStrip; - - static void _C1SpellChecker2_ContextMenuCreated(object sender, C1.Win.C1SpellChecker.ContextMenuEventArgs e) - { - // Adjust their bad word context menu - //Console.WriteLine("==========> spell check context menu {0}",e.Menu.Items[0].Text); - if (e.Menu.Equals(_ContextMenuStrip)) - { - // Add an item for our "Edit Menu" context menu on their spell check context menu - // This gives the user access to our regular context menu when on a mis-spelled word - ToolStripItem tsi = e.Menu.Items.Add("Edit Menu"); - tsi.Click += new EventHandler(tsi_Click); - //Now replace their "Spell" item with ours, so that we can display our custom spell check dialog - for (int i = 0; i < e.Menu.Items.Count; i++) - { - ToolStripItem tsi1 = e.Menu.Items[i]; - if (tsi1 is ToolStripMenuItem && tsi1.Text == "Spell") - { - e.Menu.Items.RemoveAt(i); // remove their spell check dialog item - ToolStripMenuItem tsi2 = new ToolStripMenuItem("Spell"); - tsi2.Click += new EventHandler(tsi2_Click); - e.Menu.Items.Insert(i, tsi2); // add our spell check dialog item - } - } - } - } - - static void tsi2_Click(object sender, EventArgs e) - { - C1SpellChecker2.CheckControl(_ContextMenuStepRTB, true, MySpellCheckDlg); - } - - // Click event to display our "Edit Menu" (StepRTB context menu) - static void tsi_Click(object sender, EventArgs e) - { - ToolStripMenuItem tsmi = sender as ToolStripMenuItem; - //_ContextMenuStepRTB.MyRTBItem.MyStepPanel.MyStepTabPanel.MyStepTabRibbon.OpenContextMenu(tsmi.Owner.Location); - _ContextMenuStepRTB.OnOpenContextMenu(sender, new StepRTBLocationEventArgs(tsmi.Owner.Location)); - } - - // This is our customized Spell Check dialog - // This is display when the use clicks the Spell button from the Ribbon - // or when the "Spell" item is selected from the context menu when on a mis-spelled word - static VlnSpellCheckDlg _MySpellCheckDlg; - public static VlnSpellCheckDlg MySpellCheckDlg - { - get - { - if (_MySpellCheckDlg == null) - _MySpellCheckDlg = new VlnSpellCheckDlg(); - return _MySpellCheckDlg; - } - } - - // This is used when walking through the section doing a spell check - // (from the Spell button on the ribbon) - public bool SpellCheckNext() - { - int nBad = C1SpellChecker2.CheckControl(this, false, MySpellCheckDlg); - return (nBad >= 0); // nBad = -1 means user pressed Cancel button - } - - // This allows us to turn off/on the specll check context menu when we toggle in and out of View Mode. - // see btnToggleEditView_Click() in StepTabRibbon.cs - public void SpellCheckContextMenuOn(bool turnOnMenu) - { - C1SpellChecker2.Options.ShowSuggestionsInContextMenu = turnOnMenu; - } - #endregion - #region - public string DoNewLinkInGridCell() - { - // first find the new link and determine whether it's RO or transition. - int indx = Rtf.IndexOf(@"#Link:ReferencedObject:"); - if (indx > 0) - { - Match mro = Regex.Match(Rtf.Substring(indx, Rtf.Length - indx), @"([A-Za-z]*):(.*)\[END>"); - string linkstr = mro.Groups[2].Value; - string[] roparts = linkstr.Split(" ".ToCharArray()); - ContentRoUsage rousg = null; - int oldid = -1; - using (Item itm = MyItemInfo.Get()) - { - using (RODb rodb = RODb.GetJustRoDb(Convert.ToInt32(roparts[2]))) - { - rousg = itm.MyContent.ContentRoUsages.Add(roparts[1], rodb); - } - oldid = rousg.ROUsageID; - Rtf = Rtf.Replace("", string.Format("", rousg.ROUsageID)); - itm.Save(); - Rtf = Rtf.Replace(string.Format("", oldid), rousg.ROUsageID.ToString()); - itm.Save(); - MyItemInfo.MyContent.RefreshContentRoUsages(); - } - } - // Need to look for any 'New' transitions, don't include existing ones. - Match mt = Regex.Match(Rtf, @"#Link:Transition:([0-9]+) "); - if (mt.Length <= 0) mt = Regex.Match(Rtf, @"#Link:TransitionRange:([0-9]+) "); - if (mt.Length > 0) - { - indx = mt.Index+6; // get past '#Link:" - Match m = Regex.Match(Rtf.Substring(indx, Rtf.Length - indx), @"([A-Za-z]*):(.*)\[END>"); - bool isSingleTran = true; - if (Rtf.Substring(indx, 16).IndexOf("TransitionRange") >= 0) isSingleTran = false; - string linkstr = m.Groups[2].Value; - string[] tparts = linkstr.Split(" ".ToCharArray()); - int type = System.Convert.ToInt32(tparts[0]); - int tr1 = System.Convert.ToInt32(tparts[2]); // tparts[2] is token for tranid - int tr2 = tr1; - if (tparts.Length > 3) - tr2 = System.Convert.ToInt32(tparts[3]); // tparts[3] is token for rangeid - bool dispose1 = false; - Item itm1 = null; - bool dispose2 = false; - Item itm2 = null; - using (Item itm = MyItemInfo.Get()) - { - if (itm.ItemID == tr1) - itm1 = itm; // a transition that points to itself should not dispose - else - { - dispose1 = true; - itm1 = Item.Get(tr1); - } - if (itm.ItemID == tr2) - itm2 = itm; // a transition that points to itself should not dispose - else if (tr1 == tr2) - itm2 = itm1; // if both destinations are the same only dispose the first one - else - { - dispose2 = true; - itm2 = Item.Get(tr2); - } - ContentTransition ct = itm.MyContent.ContentTransitions.Add(itm1, itm2); - //Console.WriteLine("CT {0},{1},{2},{3}", ct.TransitionID, itm.ItemID, itm.MyContent.MyContentUnique, itm.MyContent.ContentTransitions.Count); - ct.TranType = type; - if (isSingleTran) - ct.IsRange = 0; - else if (tr1 != tr2) - ct.IsRange = 1; - else - ct.IsRange = 2; - - int oldidt = ct.TransitionID; - Rtf = Rtf.Replace("", string.Format("", ct.TransitionID)); - itm.Save(); - Rtf = Rtf.Replace(string.Format("", oldidt), ct.TransitionID.ToString()); - itm.Save(); - MyItemInfo.MyContent.RefreshContentTransitions(); - } - - if (dispose2) itm2.Dispose(); - if (dispose1) itm1.Dispose(); - } - return Rtf; - } - #endregion - #region RoInsertInterface - public void UpdateStepRtb(string linktxt, string valtxt) - { - int ss = SelectionStart; // Remember where the link is being added - int sl = SelectionLength; - OnReturnToEditor(this, new EventArgs()); - Select(ss, sl); - InsertRO(valtxt, linktxt); // Insert the LINK - OnDoSaveContents(this, new EventArgs()); // .SaveText(); // Save the text with the LINK - This also moves the cursor to the end of the text - // By selecting a starting position within a link, StepRTB (HandleSelectionChange) will select the link - Select(ss + 7 + valtxt.Length, 0);// Select the link, Try 7 for " 0) - MyLookup = _MyDVI.DocVersionAssociations[0].MyROFst.ROFSTLookup; - else - MyLookup = null; - return _MyDVI; - } - return null; - } - } - private ItemInfo MyItemInfo - { - get - { - if(_MyStepRTB != null && _MyStepRTB.MyItemInfo != null) return _MyStepRTB.MyItemInfo; - if(_MyEditItem != null && _MyEditItem.MyItemInfo != null) return _MyEditItem.MyItemInfo; - return null; - } - } - private DevComponents.DotNetBar.ButtonItem _DefaultContextMenu; - - public void ClearContextMenu() - { - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, null); - } - - #region Save ROs from Word Document jcb 20121221 - private string MyLookupData; - private Dictionary MyAvailableROs; - public void SetContextMenu() - { - AddWROContext(btnCMRtfEdit); - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMRtfEdit); - } - - #region set up save ro menu jcb 20121221 - private void AddWROContext(DevComponents.DotNetBar.ButtonItem myButtonItem) - { - MyAvailableROs = new Dictionary(); - DevComponents.DotNetBar.BaseItem btnSaveRO = null; - if (!myButtonItem.SubItems.Contains("btnSaveRO")) - { - btnSaveRO = new DevComponents.DotNetBar.ButtonItem("btnSaveRO", "Save RO"); - btnSaveRO.Visible = false; - myButtonItem.SubItems.Add(btnSaveRO); - } - else - btnSaveRO = myButtonItem.SubItems["btnSaveRO"]; - if (Clipboard.ContainsData(System.Windows.Forms.DataFormats.Text)) - { - MyLookupData = Clipboard.GetData(System.Windows.Forms.DataFormats.Text).ToString(); - if (MyLookupData.StartsWith(" 0 && MyStepRTB.SelectedText.ToLower() != MyAvailableROs[k].ToLower()) - { - btn = new DevComponents.DotNetBar.ButtonItem("_" + k, MyAvailableROs[k] + " with Annotation"); - btn.Tag = MyAvailableROs[k]; - btn.Click += new EventHandler(SaveROWithAnnotation_Click); - btnSaveRO.SubItems.Add(btn); - } - } - btnSaveRO.Visible = true; - } - else - { - btnSaveRO.SubItems.Clear(); - btnSaveRO.Text = "No RO Found"; - DevComponents.DotNetBar.BaseItem btn = new DevComponents.DotNetBar.ButtonItem("btnRONotFound", "Create Annotation"); - btn.Tag = string.Format("Text '{0}' has no corresponding RO", MyStepRTB.SelectedText); - btn.Click += new EventHandler(NoROFound_Click); - btnSaveRO.SubItems.Add(btn); - btnSaveRO.Visible = true; - } - } - } - } - #endregion - private bool IsValidRO(string data) - { - bool rv = false; - MyAvailableROs = new Dictionary(); - if (MyDVI != null) - { - #region force arp without hi or lo jcb 20121221 - //if (data == "") - //{ - // data = data.Replace("-LO1", ""); - // Console.WriteLine("force null roc"); - //} - #endregion - string accPageID = GetAccPageID(data); - ROFSTLookup.rochild? roc = MyLookup.GetRoChildByAccPagID(accPageID, MyDVI.DocVersionConfig.RODefaults_setpointprefix, MyDVI.DocVersionConfig.RODefaults_graphicsprefix); - if (roc != null) - { - int index = GetROValueIndex(data); - if (index > -1) - { - MyAvailableROs.Add(((ROFSTLookup.rochild)roc).children[index].roid, ((ROFSTLookup.rochild)roc).children[index].value.Replace(@"\u160?", " ")); - if (accPageID.StartsWith("MEL") && index == 0) // If equipment and 1st return value, then add option to add 4th Return Value - { - MyAvailableROs.Add(((ROFSTLookup.rochild)roc).children[3].roid, ((ROFSTLookup.rochild)roc).children[3].value.Replace(@"\u160?", " ")); - MyAvailableROs.Add(((ROFSTLookup.rochild)roc).children[4].roid, ((ROFSTLookup.rochild)roc).children[4].value.Replace(@"\u160?", " ")); - } - rv = true; - } - } - else - { - //see if arp then try HI 1,2,3 and LO 1,2,3 - if (accPageID.StartsWith("ARP")) - { - string tmpAccPageID = string.Empty; - //try HI1,2,3 - string suffix = "-HI"; - for (int i = 1; i < 4; i++) - { - tmpAccPageID = accPageID + suffix + i.ToString(); - roc = MyLookup.GetRoChildByAccPagID(tmpAccPageID, MyDVI.DocVersionConfig.RODefaults_setpointprefix, MyDVI.DocVersionConfig.RODefaults_graphicsprefix); - if (roc != null) - { - int index = GetROValueIndex(data); - if (index > -1) - { - MyAvailableROs.Add(((ROFSTLookup.rochild)roc).children[index].roid, ((ROFSTLookup.rochild)roc).children[index].value.Replace(@"\u160?", " ")); - rv = true; - } - } - } - //try LO1,2,3 - suffix = "-LO"; - for (int i = 1; i < 4; i++) - { - tmpAccPageID = accPageID + suffix + i.ToString(); - roc = MyLookup.GetRoChildByAccPagID(tmpAccPageID, MyDVI.DocVersionConfig.RODefaults_setpointprefix, MyDVI.DocVersionConfig.RODefaults_graphicsprefix); - if (roc != null) - { - int index = GetROValueIndex(data); - if (index > -1) - { - MyAvailableROs.Add(((ROFSTLookup.rochild)roc).children[index].roid, ((ROFSTLookup.rochild)roc).children[index].value.Replace(@"\u160?", " ")); - rv = true; - } - } - } - } - } - } - return rv; - } - private string GetAccPageID(string txt) - { - // - // - // - txt = txt.Replace(" 0) - rv = 0; - else if (data.IndexOf(@"\s") > 0) - rv = 1; - else if (data.IndexOf(@"\t") > 0) - rv = 2; - else if (data.IndexOf(@"\d") > 0) - rv = 3; - else - rv = -1; - } - if (data.StartsWith(" 0) - rv = 0; - else if (data.IndexOf(@"\d") > 0) - rv = 1; - else if (data.IndexOf(@"\r") > 0) - rv = 2; - else - rv = -1; - } - if (data.StartsWith(" 0) - rv = 0; - else if (data.IndexOf(@"\d") > 0) - rv = 1; - else if (data.IndexOf(@"\n") > 0) - rv = 2; - else - rv = -1; - } - return rv; - } - private void SaveRO_Click(object sender, EventArgs e) - { - DevComponents.DotNetBar.BaseItem btn = sender as DevComponents.DotNetBar.BaseItem; - string myroid = btn.Name; - string myvalue = btn.Tag.ToString(); - // the roid may be 12 or 16 chars long, with the last 4 set if there is unit specific - // menuing. Pad to 12 to store in the rousage table. - string padroid = (myroid.Length <= 12) ? myroid + "0000" : myroid; - string linktxt = string.Format(@"#Link:ReferencedObject: {0} {1}", padroid, MyLookup.DocVersionInfo.DocVersionAssociations[0].MyROFst.MyRODb.RODbID); - // Resolve symbols and scientific notation in the RO return value - string valtxt = MyLookup.GetTranslatedRoValue(padroid, MyStepRTB.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); //ConvertSymbolsAndStuff(selectedChld.value); - MyStepRTB.OnRoInsert(this, new StepRTBRoEventArgs(valtxt, myvalue, linktxt, padroid, MyLookup.DocVersionInfo.DocVersionAssociations[0].MyROFst.MyRODb.RODbID)); - } - private void SaveROWithAnnotation_Click(object sender, EventArgs e) - { - DevComponents.DotNetBar.BaseItem btn = sender as DevComponents.DotNetBar.BaseItem; - string myroid = btn.Name.Replace("_", ""); - string myvalue = btn.Tag.ToString(); - using (Item itm = MyStepRTB.MyItemInfo.Get()) - { - Annotation x = Annotation.MakeAnnotation(itm, AnnotationType.GetByName("RO Value Changed"), null, string.Format("RO Value '{0}' replaces text '{1}'", myvalue, MyStepRTB.SelectedText), null); - } - // the roid may be 12 or 16 chars long, with the last 4 set if there is unit specific - // menuing. Pad to 12 to store in the rousage table. - string padroid = (myroid.Length <= 12) ? myroid + "0000" : myroid; - string linktxt = string.Format(@"#Link:ReferencedObject: {0} {1}", padroid, MyLookup.DocVersionInfo.DocVersionAssociations[0].MyROFst.MyRODb.RODbID); - // Resolve symbols and scientific notation in the RO return value - string valtxt = MyLookup.GetTranslatedRoValue(padroid, MyStepRTB.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.ConvertCaretToDelta); //ConvertSymbolsAndStuff(selectedChld.value); - MyStepRTB.OnRoInsert(this, new StepRTBRoEventArgs(valtxt, myvalue, linktxt, padroid, MyLookup.DocVersionInfo.DocVersionAssociations[0].MyROFst.MyRODb.RODbID)); - } - private void NoROFound_Click(object sender, EventArgs e) - { - DevComponents.DotNetBar.BaseItem btn = sender as DevComponents.DotNetBar.BaseItem; - string myvalue = btn.Tag.ToString(); - using (Item itm = MyStepRTB.MyItemInfo.Get()) - { - Annotation x = Annotation.MakeAnnotation(itm, AnnotationType.GetByName("RO Missing"), null, myvalue, null); - } - } - #endregion - - public void SetGridCellContextMenu() - { - AddWROContext(btnCMRtfCellEdit); - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMRtfCellEdit); - } - public void SetGridContextMenu() - { - if (rtabTableGridTools.Visible) - _ContextMenuBar.SetContextMenuEx(MyFlexGrid, btnCMGrid); - } - public void OpenContextMenu(Point loc) - { - btnCMRtfEdit.Popup(loc); - } - private int _MyLastFormatID = -1; - private StepRTB _MyStepRTB; - public StepRTB MyStepRTB - { - get { return _MyStepRTB; } - set - { - _MyStepRTB = value; - if (value != null) - { - //Console.WriteLine(string.Format("StepTabRibbon: In set of MyStepRTB, Selected Text = {0}", MyStepRTB.SelectedText)); - switch (_MyStepRTB.FieldToEdit) - { - case E_FieldToEdit.PSI: - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMPSI); - _DefaultContextMenu = btnCMPSI; - break; - case E_FieldToEdit.StepText: - if (MyFlexGrid != null) - { - // This happends when the FlexGrid (table) is slected (not when you edit a table cell) - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMRtfCellEdit); - _DefaultContextMenu = btnCMRtfCellEdit; - } - else - { - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMRtfEdit); - _DefaultContextMenu = btnCMRtfEdit; - } - break; - case E_FieldToEdit.Text: - case E_FieldToEdit.Number: - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMRtfEdit3); - _DefaultContextMenu = btnCMRtfEdit3; - break; - default: - break; - } - // The following two lines were replaced by the third line so that the Ribbon KeyTips will work properly. - // ex. Positon on a substep, press , to list the substep types - //_MyStepRTB.MouseUp += new MouseEventHandler(_MyStepRTB_MouseUp); //+= new MouseEventHandler(MyStepRTB_SelectionChanged); - //_MyStepRTB.KeyUp += new KeyEventHandler(_MyStepRTB_KeyUp); //+= new KeyEventHandler(MyStepRTB_SelectionChanged); - _MyStepRTB.SelectionChanged += new EventHandler(_MyStepRTB_SelectionChanged); - //_MyStepRTB.ModeChange += new StepRTBModeChangeEvent(_MyStepRTB_ModeChange); - if (_MyEditItem != null) _MyEditItem.Leave += new EventHandler(_MyEditItem_Leave); - //_MyStepRTB.Leave += new EventHandler(_MyStepRTB_Leave); - _MyStepRTB.LinkChanged += new StepRTBLinkEvent(_MyStepRTB_LinkChanged); - _MyStepRTB.TextChanged += new EventHandler(_MyStepRTB_TextChanged); - if (MyFlexGrid != null) - { - MyFlexGrid.CopyOptionChanged += new VlnFlexGridEvent(MyFlexGrid_CopyOptionChanged); - MyFlexGrid.SelChange+=new EventHandler(MyFlexGrid_SelChange); - } - // Add symbols into the tab ribbon based on format selection. For now, only add symbols once - // because all symbols are same!!! If we start defining different symbols in different formats - // this will have to change, i.e. remove the second part of 'if' statement. - if (MyItemInfo.ActiveFormat.FormatID != _MyLastFormatID && _MyLastFormatID == -1) - { - // Add symbols to the tabribbon & also to the context menu getting info from the format file... - // Note that the ButtonItems must be used in order to place the buttons on a gallery (cannot - // use buttonx or dotnet/windows/button). However, you cannot change the font on ButtonItems so - // the ribbon MUST use the Arial Unicode MS Font for this to work!!!! - FormatInfo fmt = MyItemInfo.ActiveFormat; - SymbolList sl = fmt.PlantFormat.FormatData.SymbolList; - if (sl == null || sl.Count <= 0) - { - MessageBox.Show("No symbols are available, check with administrator"); - return; - } - BuildSymbolGallery(sl, galleryContainerSymbolsCM, galleryContainerSymbolsCM3, galleryContainerSymbolsGrid, galleryContainerSymbolsCM4); - //BuildSymbolGallery(sl, galleryContainerSymbolsCM); - //BuildSymbolGallery(sl, galleryContainerSymbolsCM3); - //BuildSymbolGallery(sl, galleryContainerSymbolsGrid); - } - SetButtonAndMenuEnabling(true); - SetStepButtonAndMenuEnabling(true); - - _MyLastFormatID = MyItemInfo.ActiveFormat.FormatID; - } - } - } - - void _MyStepRTB_TextChanged(object sender, EventArgs e) - { - if (_MyStepRTB == null) return; - // if we are in view mode or the edit window is empty, then don't allow inserting steps/substeps, - // page breaks, copy step, nor creating a pdf - bool allow = (_MyStepRTB.TextLength > 0); - - // turn ribbon items on/off base on whether there is text in the edit window - rbnSiblings.Enabled = rbnBreaks.Enabled = rbnStepParts.Enabled = allow; - // only turn on the Insert Before/After and the CopyStep buttons if on a step part - btnInsAftH.Enabled = btnInsBefH.Enabled = btnInsAfter.Enabled = btnInsBefore.Enabled = btnCpyStp.Enabled = allow && !(MyItemInfo.IsProcedure || MyItemInfo.IsSection); - rbPdf.Enabled = allow; - - // toggle context menus used with the shortcut key - btnCMInsHLS.Enabled = btnCMInsRNO.Enabled = btnCMInsSubStps.Enabled = btnCMInsCaution.Enabled = - btnCMInsNote.Enabled = btnCMInsTable.Enabled = btnCMInsFigure.Enabled = allow; - } - - void MyFlexGrid_SelChange(object sender, EventArgs e) - { - if (MyFlexGrid == null) - return; - if (MyFlexGrid.Selection.c1 < 0 || MyFlexGrid.Selection.r1 < 0) - return; - if (MyFlexGrid.Selection.c1 >= MyFlexGrid.Cols.Count || MyFlexGrid.Selection.r1 >= MyFlexGrid.Rows.Count) - return; - if ((MyEditItem as GridItem).Initializing) return; - //C1.Win.C1FlexGrid.CellRange cr = MyFlexGrid.GetEvenSelection(); - //rbnBorderSelectionPanel.InitializeBorder(MyFlexGrid.MyBorders, cr.r1, cr.c1, cr.r2, cr.c2); - rbnBorderSelectionPanel.InitializeBorder(MyFlexGrid, MyFlexGrid.Selection); - } - void _MyEditItem_Leave(object sender, EventArgs e) - { - // The following two lines were replaced by the third line so that the Ribbon KeyTips will work properly. - // ex. Positon on a substep, press , to list the substep types - //_MyStepRTB.KeyUp -=new KeyEventHandler(_MyStepRTB_KeyUp); - //_MyStepRTB.MouseUp -= new MouseEventHandler(_MyStepRTB_MouseUp); - if (_MyEditItem != null) - { - _MyEditItem.Leave -= new EventHandler(_MyEditItem_Leave); - _MyEditItem.Enter += new EventHandler(_MyEditItem_Enter); - } - //_MyStepRTB.Leave -= new EventHandler(_MyStepRTB_Leave); - if (_MyStepRTB != null) - { - _MyStepRTB.SelectionChanged -= new EventHandler(_MyStepRTB_SelectionChanged); - _MyStepRTB.LinkChanged -= new StepRTBLinkEvent(_MyStepRTB_LinkChanged); - } - if (MyFlexGrid != null) - { - MyFlexGrid.CopyOptionChanged -= new VlnFlexGridEvent(MyFlexGrid_CopyOptionChanged); - MyFlexGrid.SelChange -= new EventHandler(MyFlexGrid_SelChange); - } - } - void _MyEditItem_Enter(object sender, EventArgs e) - { - // The following two lines were replaced by the third line so that the Ribbon KeyTips will work properly. - // ex. Positon on a substep, press , to list the substep types - //_MyStepRTB.KeyUp -=new KeyEventHandler(_MyStepRTB_KeyUp); - //_MyStepRTB.MouseUp -= new MouseEventHandler(_MyStepRTB_MouseUp); - if (_MyEditItem != null) - { - _MyEditItem.Leave += new EventHandler(_MyEditItem_Leave); - _MyEditItem.Enter -= new EventHandler(_MyEditItem_Enter); - } - //_MyStepRTB.Leave -= new EventHandler(_MyStepRTB_Leave); - if (_MyStepRTB != null) - { - _MyStepRTB.LinkChanged += new StepRTBLinkEvent(_MyStepRTB_LinkChanged); - _MyStepRTB.SelectionChanged += new EventHandler(_MyStepRTB_SelectionChanged); - } - if (MyFlexGrid != null) - { - MyFlexGrid.CopyOptionChanged += new VlnFlexGridEvent(MyFlexGrid_CopyOptionChanged); - MyFlexGrid.SelChange += new EventHandler(MyFlexGrid_SelChange); - //Console.WriteLine("Turn on SelChange"); - } - } - void MyFlexGrid_CopyOptionChanged(object sender, EventArgs args) - { - btnTblDgnPaste.Enabled = true; - btnCmGridPaste.Enabled = true; - switch (VlnFlexGrid.MyCopyInfo.MyCopyOption) - { - case GridCopyOption.Row: - btnTblDgnPasteRow.Visible = true; - btnCmGridPasteRow.Visible = true; - btnTblDgnPasteColumn.Visible = false; - btnCmGridPasteCol.Visible = false; - break; - case GridCopyOption.Column: - btnTblDgnPasteRow.Visible = false; - btnCmGridPasteRow.Visible = false; - btnTblDgnPasteColumn.Visible = true; - btnCmGridPasteCol.Visible = true; - break; - case GridCopyOption.Selection: - btnTblDgnPasteRow.Visible = false; - btnCmGridPasteRow.Visible = false; - btnTblDgnPasteColumn.Visible = false; - btnCmGridPasteCol.Visible = false; - break; - default: - break; - } - } - void _MyStepRTB_SelectionChanged(object sender, EventArgs e) - { - SetButtonAndMenuEnabling(false); - } - //void _MyStepRTB_MouseUp(object sender, MouseEventArgs e) - //{ - // //SetButtonAndMenuEnabling(false); - //} - - //void _MyStepRTB_KeyUp(object sender, KeyEventArgs e) - //{ - // //SetButtonAndMenuEnabling(false); - //} - - private void BuildSymbolGallery(SymbolList sl, DevComponents.DotNetBar.GalleryContainer gc1, DevComponents.DotNetBar.GalleryContainer gc2, DevComponents.DotNetBar.GalleryContainer gc3, DevComponents.DotNetBar.GalleryContainer gc4) - { - foreach (Symbol sym in sl) - { - DevComponents.DotNetBar.ButtonItem btn = new DevComponents.DotNetBar.ButtonItem(); - btn.Text = string.Format("{0}", (char)sym.Unicode); - // to name button use unicode rather than desc, desc may have spaces or odd chars - btn.Name = "btn" + sym.Unicode.ToString(); - btn.Tooltip = sym.Desc; - btn.Tag = string.Format(@"{0}", sym.Unicode); - btn.FontBold = true; - btn.Click += new System.EventHandler(btnSym_Click); - galleryContainerSymbols.SubItems.Add(btn); - DevComponents.DotNetBar.ButtonItem btnCM1 = GetCMButton(sym); - btnCM1.Click += new System.EventHandler(btnSym_Click); - gc1.SubItems.Add(btnCM1); - DevComponents.DotNetBar.ButtonItem btnCM2 = GetCMButton(sym); - btnCM2.Click += new System.EventHandler(btnSym_Click); - gc2.SubItems.Add(btnCM2); - DevComponents.DotNetBar.ButtonItem btnCM3 = GetCMButton(sym); - btnCM3.Click += new System.EventHandler(btnSym_Click); - gc3.SubItems.Add(btnCM3); - DevComponents.DotNetBar.ButtonItem btnCM4 = GetCMButton(sym); - btnCM4.Click += new System.EventHandler(btnSym_Click); - gc4.SubItems.Add(btnCM4); - } - } - - private static DevComponents.DotNetBar.ButtonItem GetCMButton(Symbol sym) - { - DevComponents.DotNetBar.ButtonItem btnCM3 = new DevComponents.DotNetBar.ButtonItem(); - btnCM3.Text = string.Format("{0}", (char)sym.Unicode); - // to name button use unicode rather than desc, desc may have spaces or odd chars - btnCM3.Name = "btnCM" + sym.Unicode.ToString(); - btnCM3.Tooltip = sym.Desc; - btnCM3.Tag = string.Format(@"{0}", sym.Unicode); - btnCM3.FontBold = true; - return btnCM3; - } - //void _MyStepRTB_ModeChange(object sender, StepRTBModeChangeEventArgs args) - //{ - // SetButtonAndMenuEnabling(true); - //} - #endregion - #region Constructor - public StepTabRibbon() - { - InitializeComponent(); - _RibbonControl.AutoSize = true; - _RibbonControl.SizeChanged += new EventHandler(_RibbonControl_SizeChanged); - // When AutoExpand is set to true, [CTRL][F1] and double click will hide/expand the ribbon bar - // causing its state to be out of sync with that of the QAT menu option to - // expand/hide the ribbon. - // We now set AutoExpand to false and issue an event to expand/collapse the ribbon - // in a generic event method (ribbonTab_DoubleClick) - // and assigned it to the DoubleClick event of each tab in the ribbon. - // (see ribbonTab_DoubleClick() for more information) -jsj 07-APR-2011 - // Note: the QAT menu is to the right of the V start button in the upper left - _RibbonControl.AutoExpand = false; - _RibbonControl.Items[0].RaiseClick(); // initially default to HOME tab - rbnBorderlistBox.Resize+=new EventHandler(rbnBorderlistBox_Resize); - rbnBorderlistBox.SetupFontAndSize(6); // 6 Point Font - } - - void _RibbonControl_SizeChanged(object sender, EventArgs e) - { - this.Size = _RibbonControl.Size; - } - public bool Expanded - { - get { return _RibbonControl.Expanded; } - set { _RibbonControl.Expanded = value; } - } - #endregion - #region Events - - public event StepTabRibbonEvent PrintRequest; - private void OnPrintRequest(StepTabRibbonEventArgs args) - { - if (PrintRequest != null) - PrintRequest(this, args); - } - void _MyStepRTB_LinkChanged(object sender, StepPanelLinkEventArgs args) - { - // do all Transition and ReferencedObject menu items/buttons based on whether a 'link is selected' and the link type. - SetupGoToButton(); - if (btnCMGoTo.Enabled == true && _MyStepRTB.MyLinkText != null) // must have some link test, use it to set edit of transition or ro... - { - btnCMEditTran.Enabled = _MyStepRTB.MyLinkText.IndexOf("Transition") > -1; // selected link must be a transition - btnCMEditRO.Enabled = _MyStepRTB.MyLinkText.IndexOf("ReferencedObject") > -1; // selected link must be ro - } - else - { - btnCMEditTran.Enabled = false; - btnCMEditRO.Enabled = false; - } - } - private void SetupGoToButton() - { - if (MyEditItem is GridItem && (MyEditItem as GridItem).MyFlexGrid.IsRoTable) - btnCMGoTo.Enabled = btnGoTo.Enabled = true; - else - { - if (_MyStepRTB == null) return; - if (_MyStepRTB.IsSelectionLinked(_MyStepRTB.SelectionStart, _MyStepRTB.SelectionLength)) - { - // if selected text = ?, i.e. a missing/undefined destination, don't allow go to - btnCMGoTo.Enabled = btnGoTo.Enabled = !_MyStepRTB.SelectedText.StartsWith("?"); - } - else - btnCMGoTo.Enabled = btnGoTo.Enabled = false; - } - } - void _MyStepRTB_Leave(object sender, EventArgs e) - { - // The following two lines were replaced by the third line so that the Ribbon KeyTips will work properly. - // ex. Positon on a substep, press , to list the substep types - //_MyStepRTB.KeyUp -=new KeyEventHandler(_MyStepRTB_KeyUp); - //_MyStepRTB.MouseUp -= new MouseEventHandler(_MyStepRTB_MouseUp); - _MyStepRTB.SelectionChanged -= new EventHandler(_MyStepRTB_SelectionChanged); - _MyStepRTB.Leave -= new EventHandler(_MyStepRTB_Leave); - _MyStepRTB.LinkChanged -= new StepRTBLinkEvent(_MyStepRTB_LinkChanged); - } - - void btnInsStep_Click(object sender, EventArgs e) - { - DevComponents.DotNetBar.ButtonItem b = (DevComponents.DotNetBar.ButtonItem)sender; - if (b.Tag == null) return; - char[] sep = { ' ' }; - string[] insdata = b.Tag.ToString().Split(sep); - if (insdata.Length < 2) return; - int fromtype = Convert.ToInt32(insdata[0]); - int contenttype = Convert.ToInt32(insdata[1]) + 20000; - string tabletype = (insdata.Length == 3)? insdata[2]:null; - // if from type == 0, we've inserted a hls. - // if inserting from section, insert first child - // else do a after from current HLS - if not at HLS, go up parents until find it. - if (fromtype == 0 && !_MyEditItem.MyItemInfo.IsStepSection) - { - EditItem hlsEditItem = _MyEditItem; - while (!hlsEditItem.MyItemInfo.IsHigh) - hlsEditItem = hlsEditItem.ActiveParent; - hlsEditItem.AddSiblingAfter((int?)contenttype, true); - } - else if (InsertingTable(contenttype)) - { - if (tabletype.Contains("RO")) - { - VlnFlexGrid grd = new VlnFlexGrid(); - grd.Rows.Count = 1; - grd.Cols.Count = 1; - grd.IsRoTable = true; - _MyEditItem.AddChild((E_FromType)fromtype, contenttype, grd); - StepTabPanel tmp = Parent as StepTabPanel; - tmp.MyDisplayTabControl.OnLinkModifyRO(this, new StepPanelLinkEventArgs(null)); - } - else - { - VlnFlexGrid grd = CreateNewTable(); - if (grd != null) _MyEditItem.AddChild((E_FromType)fromtype, contenttype, grd); - } - } - else - { - _MyEditItem.AddChild((E_FromType)fromtype, contenttype); - } - } - // Table Grid - private bool InsertingTable(int contenttype) - { - bool rtnval = false; - switch (contenttype) - { - case 20008: // Centered table - case 20010: // AER table - case 20033: // AER table without boarder - case 20034: // Centered table without boarder - rtnval = true; - break; - } - return rtnval; - } - private void btnInsBefore_Click(object sender, EventArgs e) - { - _MyEditItem.AddSiblingBefore(); - } - - private void btnInsAfter_Click(object sender, EventArgs e) - { - _MyEditItem.AddSiblingAfter(); - } - /// - /// Using style for step type, enable/disable formatting buttons - /// - private void SetButtonForStyle() - { - btnBold.Enabled = btnCMBold.Enabled = (!((_MyStepRTB.MyStyleFont.Style & E_Style.Bold) == E_Style.Bold || (_MyStepRTB.MyStyleFont.Style & E_Style.MmBold) == E_Style.MmBold)); - btnUnderline.Enabled = btnCMUnderline.Enabled = (!((_MyStepRTB.MyStyleFont.Style & E_Style.Underline) == E_Style.Underline)); - btnItalics.Enabled = btnCMItalics.Enabled = (!((_MyStepRTB.MyStyleFont.Style & E_Style.Italics) == E_Style.Italics)); - } - public void SetTableButtonsForMergeRangeSelection() - { - if (MyFlexGrid != null) - { - btnTblDgnMergeCells.Enabled = btnCmGridMergeCells.Enabled = !MyFlexGrid.IsInMergeRange(); - } - } - private void SetButtonMenuEnabledDisabledOnSelection(bool setting) - { - btnCMBold.Enabled = btnBold.Enabled = setting; - btnCMItalics.Enabled = btnItalics.Enabled = setting; - btnCMUnderline.Enabled = btnUnderline.Enabled = setting; - btnCMSubscript.Enabled = btnSubscript.Enabled = setting; - btnCMSuperscript.Enabled = btnSuperscript.Enabled = setting; - btnCMCut.Enabled = btnCut.Enabled = setting; - btnCMUndo.Enabled = btnUndo.Enabled = setting; - btnCMRedo.Enabled = btnRedo.Enabled = setting; - //btnEdit3CMPaste.Enabled = btnPasteText.Enabled = btnCMPasteText.Enabled = btnCMPaste.Enabled = btnPaste.Enabled = setting; - btnCMPaste.Enabled = btnCMPasteText.Enabled = btnPasteText.Enabled = btnPasteStepText.Enabled = btnPaste.Enabled = setting; - btnCMCopy.Enabled = btnCopy.Enabled = setting; - btnPasteAfter.Enabled = btnPasteBefore.Enabled = btnStepPaste.Enabled = btnPasteReplace.Enabled = setting; - btnCMGrid.Enabled = setting; - } - private void SetButtonMenuEnabledDisabledOnStepType(bool setting) - { - btnPageBreak.Enabled = btnInsPgBrk.Enabled = setting; - btnCMChgStep.Enabled = btnChgTyp.Enabled = setting; - btnInsHLS.Enabled = btnInsCaut.Enabled = btnInsNote.Enabled = btnInsRNO.Enabled = btnInsFig.Enabled = - btnInsTable.Enabled = btnInsSubstep.Enabled = btnInsBefore.Enabled = btnInsAfter.Enabled = setting; - btnInsTrans.Enabled = btnCMTransition.Enabled = btnInsRO.Enabled = btnCMRO.Enabled = setting; - btnInsAftH.Enabled = btnInsBefH.Enabled = setting; - btnCMChgCase.Enabled = btnChgCase.Enabled = setting; - btnCMHardSpace.Enabled = btnInsHrdSpc.Enabled = setting; - btnCMSymbol.Enabled = btnSymbols.Enabled = setting; - btnIndent.Enabled = setting; - btnDelelete.Enabled = btnDelStep.Enabled = setting; - btnSpell.Enabled = setting; - rtabTableGridTools.Visible = setting; - btnCMGrid.Enabled = setting; - if (MyItemInfo.IsSection && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.AllowNoteCautionAdd) - { - btnInsNote.Enabled = true; - btnInsCaut.Enabled = true; - } - } - private void SetButtonAndMenuEnabling(bool docontextmenus) - { - if (_MyStepRTB == null) return; - if (_MyStepRTB.FieldToEdit != E_FieldToEdit.StepText) - return; // No need to change menu that does not get used - DocVersionInfo dvi = MyEditItem.MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo; - if (dvi == null) return; - if (dvi.VersionType > 127 || MyEditItem.MyStepPanel.VwMode == E_ViewMode.View) - { - SetButtonMenuEnabledDisabledOnSelection(false); - } - else - { - SetButtonMenuEnabledDisabledOnSelection(true); - - if (_MyStepRTB.SelectionFont != null) - { - btnCMBold.Checked = btnBold.Checked = RTBAPI.IsBold(_MyStepRTB); - btnCMItalics.Checked = btnItalics.Checked = RTBAPI.IsItalic(_MyStepRTB); - btnCMUnderline.Checked = btnUnderline.Checked = RTBAPI.IsUnderline(_MyStepRTB); - btnCMSubscript.Checked = btnSubscript.Checked = RTBAPI.IsSubScript(_MyStepRTB); - btnCMSuperscript.Checked = btnSuperscript.Checked = RTBAPI.IsSuperScript(_MyStepRTB); - } - SetButtonForStyle(); - - btnCMCut.Enabled = btnCut.Enabled = _MyStepRTB.SelectionLength > 0; - btnCMUndo.Enabled = btnUndo.Enabled = _MyStepRTB.CanUndo; - btnCMRedo.Enabled = btnRedo.Enabled = _MyStepRTB.CanRedo; - - // for paste, see if there is clipboard data, & if so, of a type we can use. - IDataObject iData = Clipboard.GetDataObject(); - //btnEdit3CMPaste.Enabled = btnPasteText.Enabled = btnCMPasteText.Enabled = btnCMPaste.Enabled = btnPaste.Enabled = (iData.GetDataPresent(DataFormats.Text) || iData.GetDataPresent(DataFormats.Rtf)); - //btnPasteText.Enabled = btnPasteStepText.Enabled = btnPaste.Enabled = (iData.GetDataPresent(DataFormats.Text) || iData.GetDataPresent(DataFormats.Rtf)); - btnPaste.Enabled = (iData.GetDataPresent(DataFormats.Text) || iData.GetDataPresent(DataFormats.Rtf)); - btnCMPasteText.Enabled = btnPasteText.Enabled = iData.GetDataPresent(DataFormats.Text); - btnCMPaste.Enabled = btnPasteStepText.Enabled = iData.GetDataPresent(DataFormats.Rtf); - } - // all selected copy while in either Edit or View mode - btnCMCopy.Enabled = btnCopy.Enabled = _MyStepRTB.SelectionLength > 0; - - // paste step only available if a step was copied. Also, check for valid types: - SetPasteButtonEnabled(); - - // do all Transition and ReferencedObject menu items/buttons based on whether a 'link is selected' and the link type. - //btnCMGoTo.Enabled = btnGoTo.Enabled = _MyStepRTB.IsSelectionLinked(_MyStepRTB.SelectionStart, _MyStepRTB.SelectionLength); //(_MyStepRTB.MyLinkText != null); - SetupGoToButton(); - if (btnCMGoTo.Enabled == true && _MyStepRTB.MyLinkText != null) // must have some link test, use it to set edit of transition or ro... - { - btnCMEditTran.Enabled = _MyStepRTB.MyLinkText.IndexOf("Transition") > -1; // selected link must be a transition - btnCMEditRO.Enabled = _MyStepRTB.MyLinkText.IndexOf("ReferencedObject") > -1; // selected link must be ro - } - else - { - btnCMEditTran.Enabled = false; - btnCMEditRO.Enabled = false; - } - // OLD: SetStepButtonAndMenuEnabling(docontextmenus); - } - - private void SetPasteButtonEnabled() - { - // if there is no 'copied' step, or if a procedure is copied, just turn all buttons off, this can only - // be done from the tree. - StepTabPanel tmp = Parent as StepTabPanel; - if (tmp.MyDisplayTabControl.MyCopyStep == null || tmp.MyDisplayTabControl.MyCopyStep.IsProcedurePart) - { - btnPasteReplace.Enabled = btnPasteBefore.Enabled = btnPasteAfter.Enabled = btnStepPaste.Enabled = false; - return; - } - // If a section is copied, it can be pasted as a section (before/after/replace). If can also - // be pasted as a subsection if the format allows it. - if (tmp.MyDisplayTabControl.MyCopyStep.IsSectionPart) - { - btnPasteBefore.Enabled = btnPasteAfter.Enabled = btnPasteReplace.Enabled = MyItemInfo.IsSectionPart; - // when doing 'substep' part of paste, need to check if format allows subsection. - } - else if (tmp.MyDisplayTabControl.MyCopyStep.IsCautionPart || tmp.MyDisplayTabControl.MyCopyStep.IsNotePart) - // Part type of copied step must be same as Part type of destination, with exceptions of caution/note and step/rno - // can be pasted into each other. - // Part types are procedure - 1, section = 2, step = 6, caution = 3, note = 4, RNO (IsRNO), = 5 table/figure = 7. - btnPasteBefore.Enabled = btnPasteAfter.Enabled = btnPasteReplace.Enabled = (MyItemInfo.IsCautionPart || MyItemInfo.IsNotePart); - else if (tmp.MyDisplayTabControl.MyCopyStep.IsRNOPart || tmp.MyDisplayTabControl.MyCopyStep.IsStepPart) - btnPasteBefore.Enabled = btnPasteAfter.Enabled = btnPasteReplace.Enabled = (MyItemInfo.IsRNOPart || MyItemInfo.IsStepPart); - else if (tmp.MyDisplayTabControl.MyCopyStep.IsTable && MyItemInfo.IsTable) - { - btnPasteBefore.Enabled = btnPasteAfter.Enabled = btnCMPasteBefore.Enabled = btnCMPasteAfter.Enabled = false; - btnPasteReplace.Enabled = btnCMPasteReplace.Enabled = true; - } - else if (tmp.MyDisplayTabControl.MyCopyStep.IsTable && !MyItemInfo.IsTable) - { - btnPasteBefore.Enabled = btnPasteAfter.Enabled = btnCMPasteBefore.Enabled = btnCMPasteAfter.Enabled = false; - btnPasteReplace.Enabled = btnCMPasteReplace.Enabled = false; - } - - - // Can't replace step with same step - if (tmp.MyDisplayTabControl.MyCopyStep.ItemID == MyItemInfo.ItemID) btnPasteReplace.Enabled = false; - } - private void SetStepButtonAndMenuEnabling(bool docontextmenus) - { - if (MyEditItem == null) return; - DocVersionInfo dvi = MyEditItem.MyItemInfo.MyProcedure.ActiveParent as DocVersionInfo; - if (dvi == null) return; - if (dvi.VersionType > 127) - btnCMEditMode1.Enabled = btnEditMode.Enabled = false; // in approved - if (dvi.VersionType > 127 || MyEditItem.MyStepPanel.VwMode == E_ViewMode.View) - { - if (rtabTableGridTools.Checked) - rtabHome.Select(); - rtabTableGridTools.Visible = false; - SetButtonMenuEnabledDisabledOnStepType(false); - this.Refresh(); - return; - } - else - SetButtonMenuEnabledDisabledOnStepType(true); - - btnInsPgBrk.Checked = false; - // see if manual page break - only available on HLS - if (MyItemInfo.IsHigh) - { - StepConfig cfg = MyItemInfo.MyConfig as StepConfig; - btnInsPgBrk.Checked = cfg == null ? false : cfg.Step_NewManualPagebreak; - } - btnInsPgBrk.Enabled = MyItemInfo.IsHigh; - btnPageBreak.Enabled = MyItemInfo.IsHigh; // edit context menu - btnEditMode.Checked = btnCMEditMode1.Checked = MyEditItem.MyStepPanel.VwMode == E_ViewMode.View; - // if on procedure, 'Delete' buttons should be disabled. - btnDelelete.Enabled = btnDelStep.Enabled = !MyItemInfo.IsProcedure; - btnCpyStp.Enabled = !MyItemInfo.IsProcedure; - // Only display the table edit tools if in a grid (table) and that grid (table) is not an RO Table. - GridItem tmpGridItm = MyEditItem as GridItem; - if (btnTblDgnAdjustSize.Checked) - { - btnTblDgnAdjustSize.Checked = false; - ToggleTableDesignButtons(true); - } - rtabTableGridTools.Visible = tmpGridItm != null && !tmpGridItm.MyFlexGrid.IsRoTable; - // If no longer on a table (grid) or the newly selectd table is an RO table - // then select the Home tab (since the Table tab is not visable) - if ((!(MyEditItem is GridItem) && rtabTableGridTools.Checked)) // || ((MyEditItem is GridItem) && !rtabTableGridTools.Visible)) - { - rtabHome.Select(); - } - - // if on procedure or section, 'change type' & 'insert' buttons should be disabled. - if (MyItemInfo.IsProcedure || MyItemInfo.IsSection) - { - btnInsCaut.Enabled = btnInsNote.Enabled = btnInsRNO.Enabled = btnInsFig.Enabled = - btnInsTable.Enabled = btnInsSubstep.Enabled = btnInsBefore.Enabled = btnInsAfter.Enabled = false; - // if on a section, allow note/caution. May want to add condition that this is a subsection? - if (MyItemInfo.IsSection && MyItemInfo.IsStepSection && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.AllowNoteCautionAdd) - { - btnInsNote.Enabled = true; - btnInsCaut.Enabled = true; - btnInsCaut.SubItems.Clear(); - btnInsNote.SubItems.Clear(); - if (docontextmenus) - { - btnCMInsCaution.SubItems.Clear(); - btnCMInsNote.SubItems.Clear(); - } - GalleryForSubTypes(MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Caution, MyItemInfo.FormatStepData, btnInsCaut, (int)E_FromType.Caution, btnCMInsCaution, docontextmenus); - GalleryForSubTypes(MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Note, MyItemInfo.FormatStepData, btnInsNote, (int)E_FromType.Note, btnCMInsNote, docontextmenus); - } - // if on a procedure or section title, don't allow for insert of ROs or Transitions: - // disable buttons. Info panels for ROs and Transitions are made invisible in frmVEPROMS.cs - btnInsTrans.Enabled = btnCMTransition.Enabled = btnInsRO.Enabled = btnCMRO.Enabled = false; - btnInsAftH.Enabled = btnInsBefH.Enabled = false; - btnInsHLS.Enabled = (!MyItemInfo.IsStepSection) ? false : true; // allow hls from step section - // if active item is a section and format has metasections, check that a hls can be added. - if (MyItemInfo.IsStepSection) - { - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) - // The 'editable' data config must be set to allow new steps to be created. - { - SectionConfig sc = MyItemInfo.MyConfig as SectionConfig; - if (sc != null && MyItemInfo.Sections != null && MyItemInfo.Sections.Count > 0 && sc.SubSection_Edit != "Y") - btnInsHLS.Enabled = false; - } - } - if (btnInsHLS.Enabled) - { - btnInsHLS.SubItems.Clear(); - GalleryForSubTypes(MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.HLS, MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.HLS, btnInsHLS, (int)E_FromType.Step, btnCMInsHLS, docontextmenus); - } - this.Refresh(); - return; - } - - btnChgTyp.Enabled = true; - - // set up insert buttons based on format - E_AccStep? actable = 0; - StepData sd = MyItemInfo.FormatStepData; - actable = sd.StepEditData.AcTable; - if (actable == null) actable = 0; - btnInsHLS.Enabled = true; - btnInsCaut.Enabled = (actable & E_AccStep.AddingCaution) > 0; - btnInsNote.Enabled = (actable & E_AccStep.AddingNote) > 0; - btnInsRNO.Enabled = (actable & E_AccStep.AddingRNO) > 0; - btnInsFig.Enabled = (actable & E_AccStep.AddingTable) > 0; - btnInsTable.Enabled = (actable & E_AccStep.AddingTable) > 0; - btnInsSubstep.Enabled = (actable & E_AccStep.AddingSub) > 0; - btnInsBefore.Enabled = btnInsBefH.Enabled = !MyItemInfo.IsRNOPart && (actable & E_AccStep.AddingPrev) > 0; - btnInsAfter.Enabled = btnInsAftH.Enabled = !MyItemInfo.IsRNOPart && (actable & E_AccStep.AddingNext) > 0; - - // if this step has a table or figure, disable both of those buttons. - if (MyItemInfo.Tables != null && MyItemInfo.Tables.Count > 0) - btnInsTable.Enabled = btnInsFig.Enabled = btnCMInsFigure.Enabled = btnCMInsTable.Enabled = false; - - btnInsHLS.SubItems.Clear(); - btnInsCaut.SubItems.Clear(); - btnInsNote.SubItems.Clear(); - btnInsRNO.SubItems.Clear(); - btnInsFig.SubItems.Clear(); - btnInsTable.SubItems.Clear(); - btnInsSubstep.SubItems.Clear(); - - if (docontextmenus) - { - btnCMInsHLS.SubItems.Clear(); - btnCMInsCaution.SubItems.Clear(); - btnCMInsNote.SubItems.Clear(); - btnCMInsFigure.SubItems.Clear(); - btnCMInsTable.SubItems.Clear(); - btnCMInsSubStps.SubItems.Clear(); - btnCMInsRNO.SubItems.Clear(); - } - - btnInsRNO.Enabled = btnCMInsRNO.Enabled = btnInsRNO.Enabled && (MyItemInfo.RNOs == null || MyItemInfo.RNOs.Count == 0); // don't insert an RNO if has an RNO - - // if (rno is enabled, set the tag: - if (btnInsRNO.Enabled) - btnInsRNO.Tag = string.Format("{0} {1}", (int)E_FromTypes.RNOs, MyEditItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.GetIndexFromType("RNOType")); - - // add subitems depending on whether parent type is enabled: - if (btnInsHLS.Enabled) GalleryForSubTypes(MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.HLS, sd, btnInsHLS, 0, btnCMInsHLS, docontextmenus); - if (btnInsCaut.Enabled) GalleryForSubTypes(MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Caution, sd, btnInsCaut, (int)E_FromType.Caution, btnCMInsCaution, docontextmenus); - if (btnInsNote.Enabled) GalleryForSubTypes(MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Note, sd, btnInsNote, (int)E_FromType.Note, btnCMInsNote, docontextmenus); - if (btnInsFig.Enabled) GalleryForSubTypes(MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Fig, sd, btnInsFig, (int)E_FromType.Table, btnCMInsFigure, docontextmenus); - if (btnInsTable.Enabled) GalleryForSubTypes(MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Table, sd, btnInsTable, (int)E_FromType.Table, btnCMInsTable, docontextmenus); - if (btnInsSubstep.Enabled) GalleryForSubTypes(MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Substep, sd, btnInsSubstep, (int)E_FromType.Step, btnCMInsSubStps, docontextmenus); - if (btnInsRNO.Enabled) GalleryForSubTypes(MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.RNO, sd, btnInsRNO, 0, btnCMInsRNO, docontextmenus); - - btnInsTrans.Enabled = btnCMTransition.Enabled = btnInsRO.Enabled = btnCMRO.Enabled = true; - - _RibbonControl.Refresh(); // jsj- added this because Table Design ribbon tab grouping was not going away when not on a table step type - } - /// - /// set up a gallery of step types whose parent are defined by input StepData. Can be below - /// more than one level, for example. Substep, EquipmentList, EquipmentWBlank - both equipment - /// lists would be put in gallery - /// - /// StepData: find subtypes related to this - /// StepData: this should be selected button - /// DevComponents.DotNetBar.ButtonItem: if items in the gallery, add gallery to this button - /// DevComponents.DotNetBar.ButtonItem: if items in the gallery, add btns to context menu - private void GalleryForSubTypes(StepData sdc, StepData selType, DevComponents.DotNetBar.ButtonItem btn, int fromtype, DevComponents.DotNetBar.ButtonItem cmbtn, bool docontextmenus) - { - int cursel = -1; - // The first argument (boolean) in StepGetLevelTypes provides the option to get a complete list of step types - // regardless of whether in the AER or RNO column (set to true). For all types, get both except for figures - // and tables. - bool getall = !(btn.Name == "btnInsFig" || (btn.Name == "btnInsTable")); - List sdl = MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepGetLevelTypes(getall, sdc, ref cursel, selType==null?"Section":selType.Type, MyItemInfo); - if (sdl != null && sdl.Count > 0) - { - Char kt = 'A'; // start with letter A for KeyTips - // if doing the insert substep button, check for substeps already there and if so must match type. - if (btn.Name == "btnInsSubstep") - { - if (MyItemInfo.Steps != null && MyItemInfo.Steps.Count > 0) - { - ItemInfo ichld = MyItemInfo.Steps[0]; - btn.Click -= new System.EventHandler(btnInsStep_Click); - btn.Click += new System.EventHandler(btnInsStep_Click); - btn.Tag = string.Format("{0} {1}", fromtype, ichld.MyContent.Type - 20000); - return; - } - else - { - btn.Tag = null; - btn.Click -= new System.EventHandler(btnInsStep_Click); - } - } - foreach (StepDataRetval sdr in sdl) - { - bool addit = true; - StepData sd = MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[sdr.Index]; - int hlsSubType = -1; // if on hls, use this to set default on substep menu to first child - if (MyItemInfo.IsHigh && MyItemInfo.Steps != null && MyItemInfo.Steps.Count > 0) - { - hlsSubType = (int)MyItemInfo.Steps[0].MyContent.Type - 20000; - } - // unfortunately, there are some special cases to be handled. - // if high level step, don't put the rno button on - // if caution don't add note button (the StepGetLevelTypes method returns cautions/notes together - if (btn.Name == "btnInsHLS" && sd.Type == "RNOType") addit = false; - if (btn.Name == "btnInsCaut" && sd.Type.Length >= 4 && sd.Type.Substring(0, 4) == "Note") addit = false; - if (btn.Name == "btnInsNote" && sd.Type.Length >= 7 && sd.Type.Substring(0, 7) == "Caution") addit = false; - if (btn.Name == "btnInsSubstep" && MyItemInfo.Steps != null && MyItemInfo.Steps.Count > 0) addit = false; - if (addit) - { - DevComponents.DotNetBar.ButtonItem bi = new DevComponents.DotNetBar.ButtonItem("btn" + sd.Type, sd.Type); - bi.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.TextOnlyAlways; - bi.Text = sdr.Name; - bi.Tag = string.Format("{0} {1}", fromtype, sdr.Index); // index of type to insert it when button is clicked - bi.Checked = (selType == null || (sd.Type == selType.Type)); - if (docontextmenus) - { - DevComponents.DotNetBar.ButtonItem cmbi = new DevComponents.DotNetBar.ButtonItem("cmbtn" + sd.Type, sd.Type); - cmbi.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.TextOnlyAlways; - cmbi.Text = sdr.Name; - cmbi.Tag = string.Format("{0} {1}", fromtype, sdr.Index); // index of type to insert it when button is clicked - cmbi.Checked = (selType == null || (sd.Type == selType.Type)); - cmbi.Click += new System.EventHandler(btnInsStep_Click); - cmbtn.SubItems.Add(cmbi); - } - if (MyItemInfo.IsHigh && hlsSubType != -1 && sdr.Index == hlsSubType) bi.Checked = true; - bi.Click += new System.EventHandler(btnInsStep_Click); - // Assign only A-Z to the KeyTips in the list (i.e. assign only the first 24 in the list) - // Note that KeyTips logic support only single characters at this level (can't have 'AA' for example) - if (kt != '0') - { - bi.KeyTips = kt.ToString(); - if (kt == 'Z') - kt = '0'; - else - kt++; - } - btn.SubItems.Add(bi); - } - } - // if this is a table, then need to add RO/Text table options - if (btn.Name == "btnInsTable" && docontextmenus) - { - // If there is only one 'table' type from format under the ribbon's table item, - // eliminate that button and move up the RO & Text Table buttons. - if (btn.SubItems.Count == 1) - { - btn.Tag = btn.SubItems[0].Tag; - btn.SubItems.Clear(); - DoTableSubMenu(btn); - } - else - { - foreach (DevComponents.DotNetBar.ButtonItem tabbtn in btn.SubItems) - DoTableSubMenu(tabbtn); - } - } - // if only 1, be sure event exists on button to insert item & if more than 1 remove event because - // we want the drop down to appear. - if (btn.Name != "btnInsRNO") - btn.Click -= new System.EventHandler(btnInsStep_Click); - if (docontextmenus) - cmbtn.Click -= new System.EventHandler(btnInsStep_Click); - if (btn.SubItems.Count == 1) - { - btn.SubItems.Clear(); - if (btn.Name != "btnInsRNO") - { - btn.Tag = string.Format("{0} {1}", fromtype, sdc.Index); - btn.Click += new System.EventHandler(btnInsStep_Click); - } - if (docontextmenus) - { - cmbtn.SubItems.Clear(); - DevComponents.DotNetBar.ButtonItem cmbi = new DevComponents.DotNetBar.ButtonItem("cmbtn" + sdc.Type, sdc.Type); - cmbi.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.TextOnlyAlways; - cmbi.Text = btn.Text; - if (btn.Name == "btnInsRNO") - cmbi.Tag = btn.Tag; - else - cmbi.Tag = string.Format("{0} {1}", fromtype, sdc.Index); // index of type to insert it when button is clicked - cmbi.Click += new System.EventHandler(btnInsStep_Click); - cmbtn.SubItems.Add(cmbi); - } - } - - } - rbnStepParts.Refresh(); - } - - private void DoTableSubMenu(DevComponents.DotNetBar.ButtonItem tabbtn) - { - char[] sp = { ' ' }; - string[] insdata = tabbtn.Tag.ToString().Split(sp); - int ftype = Convert.ToInt32(insdata[0]); - int sdtype = Convert.ToInt32(insdata[1]); - DevComponents.DotNetBar.ButtonItem cmbt = new DevComponents.DotNetBar.ButtonItem("cmbtnt" + sdtype + "RO", "RO Table"); - cmbt.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.TextOnlyAlways; - cmbt.Text = "RO Table"; - cmbt.Tag = string.Format("{0} {1} {2}", ftype, sdtype, "RO"); - //cmbt.Checked = (sd.Type == selType.Type); - cmbt.Click += new System.EventHandler(btnInsStep_Click); - tabbtn.SubItems.Add(cmbt); - cmbt = new DevComponents.DotNetBar.ButtonItem("cmbtnt" + sdtype + "TX", "Text Table"); - cmbt.ButtonStyle = DevComponents.DotNetBar.eButtonStyle.TextOnlyAlways; - cmbt.Text = "Text Table"; - cmbt.Tag = string.Format("{0} {1} {2}", ftype, sdtype, "TX"); // Text table - //cmbt.Checked = (sd.Type == selType.Type); - cmbt.Click += new System.EventHandler(btnInsStep_Click); - tabbtn.SubItems.Add(cmbt); - tabbtn.Tag = null; - tabbtn.Click -= new System.EventHandler(btnInsStep_Click); - } - #endregion - #region Insert Tab - private void btnSym_Click(object sender, EventArgs e) - { - DevComponents.DotNetBar.ButtonItem b = (DevComponents.DotNetBar.ButtonItem)sender; - StartGridEditing(SelectionOption.Start); // If in a FlexGrid, start the editor for a cell - _MyStepRTB.InsertSymbol(Convert.ToInt32(b.Tag)); - } - private enum SelectionOption - { - Start, - All, - End - } - /// - /// If in a FlexGrid, start the editor for a cell - /// - /// If false cursor will be placed at the begining - private void StartGridEditing(SelectionOption selOpt) - { - // Bug fix: B2012-203, B2012-204 - // Need to check if the selected table cell is in edit mode already. - // if already in edit mode, we don't want to do the StartEditing code below, because it - // will override the current cursor positioning and selection range. - Control ctrl = FindActiveControl(); - if (ctrl == null) return; // null if on property page for procedure & section number/title - if (ctrl is VlnFlexGrid) - { - // Selected table cell is not in edit mode. Go into edit mode and position acording - // to the pass in selOpt. - if (MyFlexGrid != null && MyFlexGrid.Editor == null) - { - MyFlexGrid.StartEditing(); - switch (selOpt) - { - case SelectionOption.Start: - MyStepRTB.Select(0, 0); - break; - case SelectionOption.All: - MyStepRTB.SelectAll(); - break; - case SelectionOption.End: - break; - MyStepRTB.Select(MyStepRTB.TextLength, 0); - default: - MyStepRTB.Select(0, 0); - break; - } - } - } - } - public void btnInsPgBrk_Click(object sender, EventArgs e) - { - rtabInsert.Select(); - if (MyItemInfo.IsProcedure || MyItemInfo.IsSection) return; - - // toggle manual page break - StepConfig cfg = MyItemInfo.MyConfig as StepConfig; - cfg.Step_NewManualPagebreak = !cfg.Step_NewManualPagebreak; - btnPageBreak.Checked = btnInsPgBrk.Checked = cfg.Step_NewManualPagebreak; - } - private void btnIndent_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.Start); - _MyStepRTB.InsertIndent(MyEditItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IndentToken); - } - private void btnCMIndent_Click(object sender, EventArgs e) - { - _MyStepRTB.InsertIndent(MyEditItem.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IndentToken); - } - #endregion - #region Home Tab - private bool _PastePlainTextOvrRide = false; - private bool _PasteStepTextOvrRide = false; - private void btnPaste_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.End); - IDataObject myDO = Clipboard.GetDataObject(); - RichTextBox myRtb = _MyStepRTB; - Control ctrl = FindActiveControl(); // null if on property page for procedure & section number/title - - if (ctrl != null && !_MyStepRTB.Focused) - { - if (ctrl is RichTextBox) - { - myRtb = ctrl as RichTextBox; - } - else if (ctrl is ComboBox) - { - ComboBox cmb = ctrl as ComboBox; - if (myDO.GetDataPresent(DataFormats.UnicodeText)) - cmb.SelectedText = myDO.GetData(DataFormats.UnicodeText).ToString(); - else if (myDO.GetDataPresent(DataFormats.Text)) - cmb.SelectedText = myDO.GetData(DataFormats.Text).ToString(); - _PastePlainTextOvrRide = false; - _PasteStepTextOvrRide = false; - return; - } - else - { - SaveErrorInLogProblemWithType(ctrl); - _PastePlainTextOvrRide = false; - _PasteStepTextOvrRide = false; - return; - } - } - // check if rtf is coming from Word, i.e. if it has 'SCHEMAS.MICROSOFT.COM/OFFICE/WORD'. - // If it is coming from Word, it will be pasted as text so as not to get any rtf commands - // that PROMS does not support such as odd Fonts, other symbols, etc. This isn't a complete - // solution, clipboard data may come from other 3rd-party tools and unsupported Rtf may get - // pasted in. But the hope is that this will happen less often than getting it from MS Word. - if (myDO.GetDataPresent(DataFormats.Rtf) && (_PasteStepTextOvrRide || (!_PastePlainTextOvrRide && !PastePlainTextSetting))) - { - string tmpForLink = myDO.GetData(DataFormats.Rtf).ToString().Replace("\r\n", ""); - if (tmpForLink.ToUpper().Contains(@"SCHEMAS.MICROSOFT.COM/OFFICE/WORD")) - myRtb.SelectedText = _MyStepRTB.GetPasteText(PasteNoReturnsSetting, myDO); - else - { - tmpForLink = Regex.Replace(tmpForLink, @"#Link:ReferencedObject:[0-9]+ ", @"#Link:ReferencedObject: "); - tmpForLink = Regex.Replace(tmpForLink, @"#Link:Transition:([0-9]+) [0-9]+ ", @"#Link:Transition:$1 "); - tmpForLink = Regex.Replace(tmpForLink, @"#Link:TransitionRange:([0-9]+) [0-9]+ ", @"#Link:TransitionRange:$1 "); - tmpForLink = tmpForLink.Replace(@"\u8212 \'96", @"-"); // Replace EM Dash with hyphen - tmpForLink = tmpForLink.Replace(@"\u8211 \'96", @"-"); // Replace EN Dash with hyphen - tmpForLink = tmpForLink.Replace(@"\u8212 ", @"-"); // Replace EM Dash with hyphen - tmpForLink = tmpForLink.Replace(@"\u8211 ", @"-"); // Replace EN Dash with hyphen - myRtb.SelectedRtf = tmpForLink; - } - - } - else if (myDO.GetDataPresent(DataFormats.Text)) - myRtb.SelectedText = _MyStepRTB.GetPasteText(PasteNoReturnsSetting, myDO); - if (myRtb.SelectionLength == 0 && myRtb is StepRTB) myRtb.SelectionFont = (myRtb as StepRTB).MyStyleFont.WindowsFont; - _PastePlainTextOvrRide = false; - _PasteStepTextOvrRide = false; - } - private void SaveErrorInLogProblemWithType(Control ctrl) - { - StringBuilder errormsg = new StringBuilder(string.Format("Failed clipboard action with control {0} a {1} ", ctrl.Name, ctrl.GetType().Name)); - Type typ = ctrl.GetType(); - while (typ.Name != "Control") - { - errormsg.Append(string.Format(", dervied from {0}", typ.BaseType.Name)); - typ = typ.BaseType; - } - _MyLog.Error(errormsg); - } - private Control FindActiveControl() - { - // added the flag below because a table (grid) could have a cell selected (a control) - // but it might not have focus (in edit mode) - bool beenThereDoneThat = false; // flag to prevent infinate loop - Control tmp = this; - while (!(tmp.Parent is Form)) - { - tmp = tmp.Parent; - // if coming from property page (properties of procedure & section number/title), - // tmp becomes null rather than from flexgrid or steptext. - if (tmp == null) return null; - } - Form frm = tmp.Parent as Form; - tmp = frm.ActiveControl; - while (!beenThereDoneThat && tmp.Controls.Count > 0) - { - beenThereDoneThat = true; - foreach (Control ctrl in tmp.Controls) - if (ctrl.ContainsFocus) - { - tmp = ctrl; - beenThereDoneThat = false; - break; - } - } - return tmp; - } - private void btnCut_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.All); - MoveSelectedToClipboard(true); - } - private void MoveSelectedToClipboard(bool isCut) - { - Control ctrl = FindActiveControl(); - if (ctrl == null) return; // null if on property page for procedure & section number/title - Clipboard.Clear(); - if (_MyStepRTB.SelectedText == null || _MyStepRTB.SelectedText == "") - return; // nothing to copy onto clipboard, just return - DataObject myDO = new DataObject(); ; - if (ctrl is RichTextBox) - { - //myDO = new DataObject("Rich Text Format", (ctrl as RichTextBox).SelectedRtf); - string tmp2 = _MyStepRTB.SelectedText; - string tmp = _MyStepRTB.GetSelectionForClipBoard(); - tmp2 = Regex.Replace(tmp2, @"#Link:ReferencedObject:[0-9]+ +[0-9a-zA-Z]+ [0-9]+", @""); - tmp2 = Regex.Replace(tmp2, @"#Link:Transition:([0-9]+) [0-9]+ [1-9]+", @""); - tmp2 = Regex.Replace(tmp2, @"#Link:TransitionRange:([0-9]+) [0-9]+ [0-9]+ [0-9]+", ""); - tmp2 = tmp2.Replace("", ""); - myDO.SetText(tmp2, TextDataFormat.Text); - //myDO.SetText(_MyStepRTB.SelectedRtf, TextDataFormat.Rtf); - myDO.SetText(tmp, TextDataFormat.Rtf); - if (isCut) (ctrl as RichTextBox).SelectedText = ""; - } - else if (ctrl is ComboBox) - { - //myDO = new DataObject("Text Format", (ctrl as ComboBox).SelectedText); - myDO.SetText((ctrl as ComboBox).SelectedText, TextDataFormat.Text); - if (isCut) (ctrl as ComboBox).SelectedText = ""; - } - else if (ctrl is TextBox) - { - //myDO = new DataObject("Text Format", (ctrl as TextBox).SelectedText); - myDO.SetText((ctrl as TextBox).SelectedText, TextDataFormat.Text); - if (isCut) (ctrl as TextBox).SelectedText = ""; - } - else - { - SaveErrorInLogProblemWithType(ctrl); - return; - } - //DataObject myDO; - //if (ctrl is RichTextBox) - //{ - // myDO = new DataObject("Rich Text Format", (ctrl as RichTextBox).SelectedRtf); - // myDO.SetText(_MyStepRTB.SelectedText); - // if(isCut) (ctrl as RichTextBox).SelectedText = ""; - //} - //else if (ctrl is ComboBox) - //{ - // myDO = new DataObject("Text Format", (ctrl as ComboBox).SelectedText); - // if (isCut) (ctrl as ComboBox).SelectedText = ""; - //} - //else if (ctrl is TextBox) - //{ - // myDO = new DataObject("Text Format", (ctrl as TextBox).SelectedText); - // if (isCut) (ctrl as TextBox).SelectedText = ""; - //} - //else - //{ - // SaveErrorInLogProblemWithType(ctrl); - // return; - //} - Clipboard.SetDataObject(myDO); - } - private void btnCopy_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.All); - MoveSelectedToClipboard(false); - } - private void btnBold_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.All); - RTBAPI.ToggleBold(!RTBAPI.IsBold(_MyStepRTB), _MyStepRTB, _MyStepRTB.SelectionLength == 0 ? RTBAPI.RTBSelection.SCF_DEFAULT : RTBAPI.RTBSelection.SCF_SELECTION); - btnCMBold.Checked = btnBold.Checked = RTBAPI.IsBold(_MyStepRTB); - } - private void btnItalics_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.All); - RTBAPI.ToggleItalic(!RTBAPI.IsItalic(_MyStepRTB), _MyStepRTB, _MyStepRTB.SelectionLength == 0 ? RTBAPI.RTBSelection.SCF_DEFAULT : RTBAPI.RTBSelection.SCF_SELECTION); - btnCMItalics.Checked = btnItalics.Checked = RTBAPI.IsItalic(_MyStepRTB); - } - private void btnUnderline_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.All); - RTBAPI.ToggleUnderline(!RTBAPI.IsUnderline(_MyStepRTB), _MyStepRTB, _MyStepRTB.SelectionLength == 0 ? RTBAPI.RTBSelection.SCF_DEFAULT : RTBAPI.RTBSelection.SCF_SELECTION); - btnCMUnderline.Checked = btnUnderline.Checked = RTBAPI.IsUnderline(_MyStepRTB); - } - - private void btnSuperscript_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.All); - RTBAPI.ToggleSuperscript(!RTBAPI.IsSuperScript(_MyStepRTB), _MyStepRTB, _MyStepRTB.SelectionLength == 0 ? RTBAPI.RTBSelection.SCF_DEFAULT : RTBAPI.RTBSelection.SCF_SELECTION); - btnCMSuperscript.Checked = btnSuperscript.Checked = RTBAPI.IsSuperScript(_MyStepRTB); - } - - private void btnSubscript_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.All); - RTBAPI.ToggleSubscript(!RTBAPI.IsSubScript(_MyStepRTB), _MyStepRTB, _MyStepRTB.SelectionLength == 0 ? RTBAPI.RTBSelection.SCF_DEFAULT : RTBAPI.RTBSelection.SCF_SELECTION); - btnCMSubscript.Checked = btnSubscript.Checked = RTBAPI.IsSubScript(_MyStepRTB); - } - - private void btnUppercase_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.All); - _MyStepRTB.SetSelectedCase('U'); - } - - private void btnLowercase_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.All); - _MyStepRTB.SetSelectedCase('l'); - } - - private void btnTitleCase_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.All); - _MyStepRTB.SetSelectedCase('T'); - } - private void btnInsTrans_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.Start); - // see if user is positioned 'on' a transition within the rtb, if so do a modify, otherwise, - // insert transition. - StepTabPanel tmp = Parent as StepTabPanel; - tmp.MyDisplayTabControl.OnLinkModifyTran(this, new StepPanelLinkEventArgs(MyStepRTB.MyLinkText)); - } - - private void btnInsHrdSpc_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.Start); - _MyStepRTB.InsertSymbol(@"\u160?"); - } - - private void btnInsRO_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.Start); - // see if user is positioned 'on' an ReferencedObject within the rtb, if so do a modify, otherwise, - // insert transition. - StepTabPanel tmp = Parent as StepTabPanel; - tmp.MyDisplayTabControl.OnLinkModifyRO(this, new StepPanelLinkEventArgs(MyStepRTB.MyLinkText)); - } - - private void btnRedo_Click(object sender, EventArgs e) - { - _MyStepRTB.Redo(); - btnCMUndo.Enabled = btnUndo.Enabled = _MyStepRTB.CanUndo; - btnCMRedo.Enabled = btnRedo.Enabled = _MyStepRTB.CanRedo; - } - - private void btnUndo_Click(object sender, EventArgs e) - { - _MyStepRTB.Undo(); - if (_MyStepRTB.WasXDelete && (_MyStepRTB.Text[_MyStepRTB.SelectionStart - 1] == 'X')) - { - _MyStepRTB.Undo(); - _MyStepRTB.WasXDelete = false; - - // only allow one of these - not best case, but at least can get - // one undo - _MyStepRTB.ClearUndo(); - } - btnCMRedo.Enabled = btnRedo.Enabled = _MyStepRTB.CanRedo; - btnCMUndo.Enabled = btnUndo.Enabled = _MyStepRTB.CanUndo; - } - private void btnGoTo_Click(object sender, EventArgs e) - { - // if on a transition, go to the selected transition 'to'. If on - // a referenced object, bring up ReferencedObject Editor (for now, just put up a message box. - if (_MyStepRTB.MyLinkText != null && _MyStepRTB.MyLinkText.IndexOf("Transition") > -1) - { - _MyEditItem.MyStepPanel.OnLinkClicked(sender, new StepPanelLinkEventArgs(_MyStepRTB.MyLinkText)); - } - else - { - if (VlnSettings.ReleaseMode.Equals("DEMO")) - { - MessageBox.Show("Referenced Object Editor not available in the Demo version.", "PROMS Demo Version"); - return; - } - string myROID; - RODbInfo myRODB; - if (MyFlexGrid != null && MyFlexGrid.IsRoTable) - { - myROID = MyFlexGrid.ROID.ToLower(); - myRODB = RODbInfo.Get(MyFlexGrid.RODbId); - } - else - { - LinkText lt = new LinkText(_MyStepRTB.MyLinkText); - myROID = lt.MyRoUsageInfo.ROID.ToLower(); - myRODB = lt.MyRoUsageInfo.MyRODb; - } - //string roapp = Environment.GetEnvironmentVariable("roapp"); - string roapp = Volian.Base.Library.ExeInfo.GetROEditorPath(); // get the path to the RO Editor Executable - string args = "\"" + myRODB.FolderPath + "\" " + myROID; - if (!Directory.Exists(myRODB.FolderPath)) - { - MessageBox.Show(string.Format("RO Database directory does not exist: {0}", myRODB.FolderPath)); - return; - } - System.Diagnostics.Process.Start(roapp, args); - } - } - private void btnChgTyp_Click(object sender, EventArgs e) - { - StepPanelTabDisplayEventArgs args = new StepPanelTabDisplayEventArgs("Change Step Type"); - MyEditItem.MyStepPanel.OnTabDisplay(sender, args); - } - #endregion - #region RHM debug - //#if DEBUG - // // The following code generates an XML output for the selected item for print testing. - // private void btnPageBreak_Click(object sender, EventArgs e) - // { - // // This is here temporarily to get a node and all of it's children for print testing. - // OutputAllChildren(MyRTBItem); - // } - // private void OutputAllChildren(RTBItem myRTBItem) - // { - // OutputAllChildren(myRTBItem.MyBeforeRTBItems); - // OutputStepInfo(myRTBItem); - // OutputAllChildren(myRTBItem.MyAfterRTBItems); - // OutputAllChildren(myRTBItem.MyRNORTBItems); - // } - // private void OutputStepInfo(RTBItem myRTBItem) - // { - // Label lbl = myRTBItem.MyLabel; - // if (lbl.Text.Trim() != "") - // Console.WriteLine("{4}", - // ToInches(myRTBItem.Left + lbl.Left), ToInches(myRTBItem.Top + lbl.Top), - // lbl.Font.FontFamily.Name,lbl.Font.SizeInPoints,lbl.Text); - // StepRTB rtb = myRTBItem.MyStepRTB; - // Console.WriteLine("{3}", - // ToInches(myRTBItem.Left + rtb.Left), ToInches(myRTBItem.Top + rtb.Top), ToInches(rtb.Width), myRTBItem.MyItemInfo.MyContent.Text); - //// ToInches(myRTBItem.Left + rtb.Left), ToInches(myRTBItem.Top + rtb.Top), ToInches(rtb.Width), rtb.Rtf); - // } - // private float ToInches(int val) - // { - // return Convert.ToSingle(val)/96F; - // } - - // private void OutputAllChildren(List list) - // { - // if(list != null) - // foreach (RTBItem itm in list) - // OutputAllChildren(itm); - // } - - - //#endif - #endregion - - private void btnToggleEditView_Click(object sender, EventArgs e) - { - MyEditItem.MyStepPanel.VwMode = MyEditItem.MyStepPanel.VwMode == E_ViewMode.Edit ? E_ViewMode.View : E_ViewMode.Edit; - MyEditItem.ToggleEditView(MyEditItem.MyStepPanel.VwMode); - SetButtonAndMenuEnabling(true); - SetStepButtonAndMenuEnabling(true); - MyEditItem.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnModeChange(this, new StepRTBModeChangeEventArgs(MyEditItem.MyStepPanel.VwMode)); - btnEditMode.Checked = btnCMEditMode1.Checked = MyEditItem.MyStepPanel.VwMode == E_ViewMode.View; - MyEditItem.MyStepRTB.SpellCheckContextMenuOn(MyEditItem.MyStepPanel.VwMode != E_ViewMode.View); - } - - private void btnROEdit_Click(object sender, EventArgs e) - { - if (VlnSettings.ReleaseMode.Equals("DEMO")) - { - MessageBox.Show("Referenced Object Editor not available in the Demo version.", "PROMS Demo Version"); - return; - } - //string roapp = Environment.GetEnvironmentVariable("roapp"); - string roapp = Volian.Base.Library.ExeInfo.GetROEditorPath(); // get the path to the RO Editor Executable - if (roapp == null || roapp == string.Empty) - { - MessageBox.Show("The 'roapp' environment variable needs to be set to the path of the RO Editor\n\n Ex: C:\\VE-PROMS.NET\\Bin\\roeditor.exe", "Environment Variable Error"); - return; - } - if (!File.Exists(roapp)) - { - string errtxt = string.Format("Could not find path to Referenced Objects Editor:\n\n roapp = {0}\n\n Verify the path assigned to the 'roapp' environment variable", roapp); - MessageBox.Show(errtxt, "Environment Variable Error"); - //MessageBox.Show("Could not find path to Ro Editor, check 'roapp' environment variable","Environment Variable Error"); - return; - } - //if (roapp == null) - //{ - // MessageBox.Show("Could not find path to Ro Editor, check 'roapp' environment variable"); - // return; - //} - if (MyDVI == null || MyDVI.DocVersionAssociationCount < 1) - { - MessageBox.Show("Could not find associated path for ro data.", "No RO Data", MessageBoxButtons.OK, MessageBoxIcon.Information); - return; - } - string roloc = "\"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath + "\""; - if (!Directory.Exists(MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath)) - { - MessageBox.Show(string.Format("RO Database directory does not exist: {0}", MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath)); - return; - } - System.Diagnostics.Process.Start(roapp, roloc); - } - - private void btnUpdROVal_Click(object sender, EventArgs e) - { - // use rodb directory path of the first rofst for the this document version. Later, will need - // to modify code to get which one (when there is more than one) - if (MyDVI.DocVersionAssociations.Count < 1) - { - MessageBox.Show("Error Updating ro.fst. No associated ro.fst"); - return; - } - ROFstInfo roFstInfo = MyDVI.DocVersionAssociations[0].MyROFst; - - string rofstPath = roFstInfo.MyRODb.FolderPath + @"\ro.fst"; - if (!File.Exists(rofstPath)) - { - MessageBox.Show("No existing ro.fst in path " + roFstInfo.MyRODb.FolderPath + ". Check for invalid path"); - return; - } - FileInfo fiRofst = new FileInfo(rofstPath); - if (roFstInfo.DTS == fiRofst.LastWriteTimeUtc) - { - MessageBox.Show("ro.fst files are same for path " + roFstInfo.MyRODb.FolderPath + ", import of that ro.fst will not be done"); - return; - } - if (roFstInfo.DTS > fiRofst.LastWriteTimeUtc) - { - MessageBox.Show("Cannot copy older ro.fst from " + roFstInfo.MyRODb.FolderPath + ", import of that ro.fst will not be done"); - return; - } - Cursor = Cursors.WaitCursor; - - using (DocVersion dv = DocVersion.Get(MyDVI.VersionID)) - { - roFstInfo.ROTableUpdate += new ROFstInfoROTableUpdateEvent(roFstInfo_ROTableUpdate); - ROFst newrofst = ROFstInfo.UpdateRoFst(roFstInfo.MyRODb, dv.DocVersionAssociations[0], dv, roFstInfo); - roFstInfo.ROTableUpdate -= new ROFstInfoROTableUpdateEvent(roFstInfo_ROTableUpdate); - StepPanelTabDisplayEventArgs args = new StepPanelTabDisplayEventArgs("DisplayROUpdateROFST"); - MyEditItem.MyStepPanel.OnTabDisplay(sender, args); - btnUpdROVal.Enabled = false; - } - Cursor = Cursors.Default; - } - - public List roFstInfo_ROTableUpdate(object sender, ROFstInfoROTableUpdateEventArgs args) - { - string xml = null; - string srchtxt = null; - Content content = (Content)sender; - using (VlnFlexGrid myGrid = new VlnFlexGrid(content.ContentItems[0])) - { - using (StringReader sr = new StringReader(args.OldGridXml)) - { - myGrid.ReadXml(sr); - sr.Close(); - } - string roid = content.ContentRoUsages[0].ROID; //myGrid.ROID; - int rodbid = content.ContentRoUsages[0].RODbID; //myGrid.RODbId; - ////Font GridFont = myGrid.Font; - //myGrid.MergedRanges.Clear(); - //myGrid.Clear(); - //myGrid.ParseTableFromText(args.ROText); - //myGrid.AutoSizeCols(); - //myGrid.AutoSizeRows(); - //myGrid.MakeRTFcells(); - //myGrid.RODbId = rodbid; - //myGrid.ROID = roid; - //myGrid.IsRoTable = true; - myGrid.Visible = false; - myGrid.ConvertTableROToGrid(args.ROText, rodbid, roid); - myGrid.FixTableCellsHeightWidth(); - myGrid.AdjustGridControlSize(); - myGrid.Visible = true; - using (StringWriter sw = new StringWriter()) - { - myGrid.WriteXml(sw); - xml = sw.GetStringBuilder().ToString(); - sw.Close(); - } - srchtxt = myGrid.GetSearchableText(); - } - List retlist = new List(); - retlist.Add(srchtxt); - retlist.Add(xml); - return retlist; - } - - private void rtabAdmin_Click(object sender, EventArgs e) - { - ribbonTab_SingleClick(sender, e); - btnUpdROVal.Enabled = false; - if (MyDVI.DocVersionAssociations == null || MyDVI.DocVersionAssociations.Count < 1) - { - btnROEdit.Enabled = false; - return; - } - btnROEdit.Enabled = true; - if (!NewerRoFst()) return; - btnUpdROVal.Enabled = true; - } - public bool NewerRoFst() - { - if (_MyDVI == null)return false; - return _MyDVI.NewerRoFst; - } - public void SetUpdRoValBtn(bool en) - { - btnUpdROVal.Enabled = en; - } - private void btnBookmarks_Click(object sender, EventArgs e) - { - StepPanelTabDisplayEventArgs args = new StepPanelTabDisplayEventArgs("Bookmarks"); - MyEditItem.MyStepPanel.OnTabDisplay(sender, args); - } - - private void btnSearch_Click(object sender, EventArgs e) - { - StepPanelTabDisplayEventArgs args = new StepPanelTabDisplayEventArgs("Global Search"); - MyEditItem.MyStepPanel.OnTabDisplay(sender, args); - } - - private void btnLibDocs_Click(object sender, EventArgs e) - { - StepPanelTabDisplayEventArgs args = new StepPanelTabDisplayEventArgs("LibDocs"); - MyEditItem.MyStepPanel.OnTabDisplay(sender, args); - } - - public void btnAnnots_Click(object sender, EventArgs e) - { - StepPanelTabDisplayEventArgs args = new StepPanelTabDisplayEventArgs("Annots"); - MyEditItem.MyStepPanel.OnTabDisplay(sender, args); - } - - public void btnDelStep_Click(object sender, EventArgs e) - { - bool clearCopyStep = false; - StepTabPanel tmp = Parent as StepTabPanel; - if (tmp.MyDisplayTabControl.MyCopyStep != null && - tmp.MyDisplayTabControl.MyCopyStep.ItemID == MyEditItem.MyItemInfo.ItemID) - { - if (MessageBox.Show("Are you sure?\n\nIf you delete this step you will not able to paste it.\nYou should paste it before you delete it.", "Attempting to delete copied step.", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.No) return; - clearCopyStep = true; - } - - bool surpressMessageBox = (e == null); - SectionInfo si = MyEditItem.MyItemInfo as SectionInfo; - if (si != null) - { - string msg = si.HasChildren ? "Are you sure you want to delete this section and its steps?" : "Are you sure you want to delete this section?"; - DialogResult result = MessageBox.Show(msg, "Verify Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (result == DialogResult.Yes) - { - - if (!si.IsStepSection) - { - WordSectionEventArgs args = new WordSectionEventArgs(si); - MyEditItem.MyStepPanel.OnWordSectionClose(sender, args); - } - MyEditItem.RemoveItem(); - if (!si.IsStepSection) - { - WordSectionEventArgs args = new WordSectionEventArgs(si); - MyEditItem.MyStepPanel.OnWordSectionDeleted(sender, args); - } - } - return; - } - StepInfo stpi = MyEditItem.MyItemInfo as StepInfo; - if (stpi == null) // not sure that it will every get here! - { - MessageBox.Show("Unknown type {0}, cannot delete!", MyEditItem.MyItemInfo.GetType().Name); - return; - } - if (!surpressMessageBox) - { - string typeDescription = MyEditItem.MyStepData.StepEditData.TypeMenu.MenuItem; - string msgs = ""; - if (MyFlexGrid != null) MyEditItem.IdentifyMe(true); - MyEditItem.IdentifyChildren(true); - if (stpi.HasChildren) - msgs = string.Format("Are you sure you want to delete this {0} and its substeps?", typeDescription); - else - msgs = string.Format("Are you sure you want to delete this {0}?", typeDescription); - //string msgs = stpi.HasChildren ? "Are you sure you want to delete this step and its substeps?" : "Are you sure you want to delete this step?"; - DialogResult results = MessageBox.Show(msgs, "Verify Delete", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (MyFlexGrid != null) - { - MyFlexGrid.Styles.Fixed.BackColor = MyFlexGrid.DefaultFixedBackgroundColor; - MyFlexGrid.StyleBackColor = MyFlexGrid.DefaultCellBackgroundcolor; - } - MyEditItem.IdentifyChildren(false); - if (results == DialogResult.Yes) - { - MyEditItem.RemoveItem(); - if (clearCopyStep) - { - tmp.MyDisplayTabControl.MyCopyStep = null; - SetPasteButtonEnabled(); - } - } - } - else - { - MyEditItem.RemoveItem(); - if (clearCopyStep) - { - tmp.MyDisplayTabControl.MyCopyStep = null; - SetPasteButtonEnabled(); - } - } - } - - private void btnCMIns_PopupClose(object sender, EventArgs e) - { - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, _DefaultContextMenu); - } - - public void SetShortCutContextMenu(string menuName) - { - bool displayMenu = false; - int moveDown = 0; - int cnt = 0; - E_AccStep? actable = 0; - if (menuName.Contains("PSI")) Console.WriteLine("menu = {0}", menuName); - - StepData sd = MyItemInfo==null?null:MyItemInfo.FormatStepData; - if (sd != null) // will be null if section - { - actable = sd.StepEditData.AcTable; - if (actable == null) actable = 0; - } - //btnInsCaut.Enabled = (actable & E_AccStep.AddingCaution) > 0; - switch (menuName) - { - case "PSI": - displayMenu = true; - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMPSI); - break; - case "InsHLS": - displayMenu = btnCMInsHLS.Enabled; - Cursor.Position = new Point(0, 0); // Enter Key hit, move mouse pointer out of way of context menu - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsHLS); - foreach (DevComponents.DotNetBar.ButtonItem bi in btnCMInsHLS.SubItems) - { - if (bi.Checked) - moveDown = cnt; - cnt++; - } - break; - case "InsRNO": - displayMenu = ((actable & E_AccStep.AddingRNO) > 0) && btnCMInsRNO.Enabled; - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsRNO); - break; - case "InsSubStps": - displayMenu = ((actable & E_AccStep.AddingSub) > 0) && btnCMInsSubStps.Enabled; - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsSubStps); - if (displayMenu) Cursor.Position = new Point(0, 0); // Enter Key hit, move mouse pointer out of way of context menu - foreach (DevComponents.DotNetBar.ButtonItem bi in btnCMInsSubStps.SubItems) - { - if (bi.Checked) - moveDown = cnt; - cnt++; - } - break; - case "InsCaution": - displayMenu = ((actable & E_AccStep.AddingCaution) > 0) && btnCMInsCaution.Enabled; - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsCaution); - break; - case "InsNote": - displayMenu = ((actable & E_AccStep.AddingNote) > 0) && btnCMInsNote.Enabled; - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsNote); - break; - case "InsTable": - displayMenu = ((actable & E_AccStep.AddingTable) > 0) && btnCMInsTable.Enabled; - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsTable); - break; - case "InsFigure": - displayMenu = ((actable & E_AccStep.AddingTable) > 0) && btnCMInsFigure.Enabled; - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMInsFigure); - break; - case "StepPaste": - displayMenu = true; - if (MyFlexGrid != null) - _ContextMenuBar.SetContextMenuEx(MyFlexGrid, btnCMStepPaste); - else - _ContextMenuBar.SetContextMenuEx(_MyStepRTB, btnCMStepPaste); - break; - } - if (displayMenu) - { - SendKeys.Send("+{F10}{DOWN}"); // Display Context menu - while (moveDown > 0) // position to current type - { - SendKeys.Send("{DOWN}"); - moveDown--; - } - } - } - - private void btnSpell_Click(object sender, EventArgs e) - { - //MessageBox.Show("Functionality not available.", "Spell Check"); - StepPanelTabDisplayEventArgs args = new StepPanelTabDisplayEventArgs("SpellChecker"); - MyEditItem.MyStepPanel.OnTabDisplay(sender, args); - } - //private FindReplace dlgFindReplace = null; - private void btnFindRplDlg_Click(object sender, EventArgs e) - { - StepPanelTabDisplayEventArgs args = new StepPanelTabDisplayEventArgs("FndRpl"); - MyEditItem.MyStepPanel.OnTabDisplay(sender, args); - } - - private void InsertSiblingBeforeOrAfter(string b4aftr) - { - E_AccStep? actable = 0; - StepData sd = MyItemInfo.FormatStepData; - actable = sd.StepEditData.AcTable; - if (actable == null) actable = 0; - switch (b4aftr) - { - case "after": - if ((actable & E_AccStep.AddingNext) > 0) - MyEditItem.AddSiblingAfter(); - break; - case "before": - if ((actable & E_AccStep.AddingPrev) > 0) - MyEditItem.AddSiblingBefore(); - break; - } - } - public void ProcessEnterKey() - { - bool deletedEmpty = false; - bool deletedHLS = false; - bool deletedSubStep = false; - bool deletedRNO = false; - bool deletedNote = false; - bool deletedCaution = false; - if (!MyItemInfo.IsTable && MyStepRTB.Text.Length < 1) //empty step text - { - deletedEmpty = true; - deletedHLS = MyItemInfo.IsHigh; - deletedSubStep = MyItemInfo.IsStepPart; - deletedRNO = MyItemInfo.IsRNOPart; - deletedNote = MyItemInfo.IsNote; - deletedCaution = MyItemInfo.IsCaution; - - btnDelStep_Click(MyStepRTB, null); // delete the empty step piece - } - - if (MyItemInfo.IsHigh) - { - if (!deletedHLS) - { - if (deletedSubStep) - SetShortCutContextMenu("InsHLS"); - else if (MyEditItem.MyRNOEditItems != null && MyEditItem.MyRNOEditItems.Count > 0) - MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlRight); // jump to RNO - else if (deletedRNO) - { - AddSubStep(); - } - else if (!deletedHLS) - { - if (MyItemInfo.ColumnMode > 0) - CreateNewRNO(); - else - AddSubStep(); - } - } - } - else if (MyItemInfo.IsRNOPart) - { - MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlLeft); - if (MyItemInfo.IsHigh) - { - //if (MyEditItem != null && MyEditItem.NextDownEditItem != null && MyEditItem.NextDownEditItem.MyItemInfo.MyParent.Equals(MyEditItem.MyItemInfo)) - if (MyEditItem != null && MyEditItem.NextDownEditItem != null && MyEditItem.NextDownEditItem.MyItemInfo.MyParent.ItemID == MyEditItem.MyItemInfo.ItemID) - { - MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); - InsertSiblingBeforeOrAfter("before"); - } - else - SetShortCutContextMenu("InsSubStps"); - } - else - InsertSiblingBeforeOrAfter("after"); - } - else if (MyItemInfo.IsInRNO && MyItemInfo.IsStepPart) - { - if (deletedEmpty) - { - MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlLeft); - CreateNewRNO(); - } - else - InsertSiblingBeforeOrAfter("after"); - } - else if (MyItemInfo.IsStepPart) - { - if (deletedSubStep) - { - //MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlUp); // jump to HLS - SetShortCutContextMenu("InsHLS"); // prompt for new HLS - } - //else if (deletedRNO || MyItemInfo.IsEquipmentList) - // InsertSiblingBeforeOrAfter("after"); - else if (!MyItemInfo.IsSequential) // only add a sibling if substep type does not have sequential tabs - InsertSiblingBeforeOrAfter("after"); - else if (deletedRNO) - { - - if (MyItemInfo.SearchNext != null && MyItemInfo.SearchNext.IsTable) - MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); - else - InsertSiblingBeforeOrAfter("after"); - } - else if (MyEditItem.MyRNOEditItems != null && MyEditItem.MyRNOEditItems.Count > 0) - MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlRight); // jump to RNO - else - if (MyItemInfo.ColumnMode > 0) - CreateNewRNO(); - else - InsertSiblingBeforeOrAfter("after"); - } - else if (MyItemInfo.IsCaution) - { - if (deletedEmpty) - { - MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); - if (deletedCaution) - CreateNewNote(); - } - else - InsertSiblingBeforeOrAfter("after"); - } - else if (MyItemInfo.IsNote) - { - if (!deletedEmpty) - InsertSiblingBeforeOrAfter("after"); - else - MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); - } - else if (MyItemInfo.IsTable || MyItemInfo.IsFigure) - { - ItemInfo next = MyItemInfo.SearchNext; - MyFlexGrid.Select(0, 0); // make sure we are at the first row before doing an up arrow - MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlUp); - if (MyItemInfo.IsHigh) - { - if (deletedSubStep) - SetShortCutContextMenu("InsHLS"); - else if (next != null && next.IsFirstSubStep) - { - MyEditItem.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OpenItem(next); - InsertSiblingBeforeOrAfter("before"); - } - else - SetShortCutContextMenu("InsSubStps"); - } - else - InsertSiblingBeforeOrAfter("after"); - } - } - - private void AddSubStep() - { - EditItem nextDownEditItem = MyEditItem.NextDownEditItem; - //bool skipTable = false; - // //If the step has a table, move past it before adding a substep - //if (nextDownEditItem != null && nextDownEditItem.MyItemInfo.MyParent.ItemID == MyEditItem.MyID && - // nextDownEditItem.MyItemInfo.IsTablePart) - //{ - // nextDownEditItem = nextDownEditItem.NextDownEditItem; - // skipTable = true; - //} - if (nextDownEditItem != null && nextDownEditItem.MyItemInfo.MyParent.ItemID == MyEditItem.MyID) - { - MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); - //if (skipTable) MyStepRTB.StepRTB_ArrowPressed(E_ArrowKeys.CtrlDown); - InsertSiblingBeforeOrAfter("before"); - } - else - SetShortCutContextMenu("InsSubStps"); - } - - private void CreateNewRNO() - { - if (btnInsRNO.SubItems.Count > 1) - SetShortCutContextMenu("InsRNO"); - else - btnInsRNO.RaiseClick(); - } - - private void CreateNewNote() - { - if (btnInsNote.SubItems.Count > 1) - SetShortCutContextMenu("InsNote"); - else - btnInsNote.RaiseClick(); - } - private void btnPasteAfter_Click(object sender, EventArgs e) - { - StepTabPanel tmp = Parent as StepTabPanel; - if (tmp.MyDisplayTabControl.MyCopyStep == null) return; - MyEditItem.PasteSiblingAfter(tmp.MyDisplayTabControl.MyCopyStep.ItemID); - } - private void btnPasteBefore_Click(object sender, EventArgs e) - { - StepTabPanel tmp = Parent as StepTabPanel; - if (tmp.MyDisplayTabControl.MyCopyStep == null) return; - MyEditItem.PasteSiblingBefore(tmp.MyDisplayTabControl.MyCopyStep.ItemID); - } - private void btnStepPaste_Click(object sender, EventArgs e) - { - // just return - } - - private void btnCpyStp_Click(object sender, EventArgs e) - { - DoCopyStep(); - } - - public void DoCopyStep() - { - // highlight selected step(s) and prompt to see if selection is what user wants: - if (MyFlexGrid != null) MyEditItem.IdentifyMe(true); - MyEditItem.IdentifyChildren(true); - DialogResult dr = MessageBox.Show("Step as Marked?", "Identify Step To Be Copied", MessageBoxButtons.YesNo); - if (dr == DialogResult.Yes) - { - StepTabPanel tmp = Parent as StepTabPanel; - tmp.MyDisplayTabControl.MyCopyStep = MyItemInfo; - btnStepPaste.Enabled = true; - SetPasteButtonEnabled(); - } - if (MyFlexGrid != null) - { - MyFlexGrid.Styles.Fixed.BackColor = MyFlexGrid.DefaultFixedBackgroundColor; - MyFlexGrid.StyleBackColor = MyFlexGrid.DefaultCellBackgroundcolor; - } - MyEditItem.IdentifyChildren(false); - } - - private void btnPasteReplace_Click(object sender, EventArgs e) - { - StepTabPanel tmp = Parent as StepTabPanel; - if (tmp.MyDisplayTabControl.MyCopyStep == null) return; - EditItem oldEditItem = MyEditItem; - MyEditItem = MyEditItem.PasteReplace(tmp.MyDisplayTabControl.MyCopyStep.ItemID); - if (MyEditItem.MyItemInfo.ItemID != oldEditItem.MyItemInfo.ItemID) oldEditItem.Dispose(); - } - - private void btnPdfCreate_Click(object sender, EventArgs e) - { - if (MyItemInfo == null) return; // if creating a pdf before rtb exists, return; - if (MyEditItem != null) MyEditItem.SaveCurrentAndContents(); - OnPrintRequest(new StepTabRibbonEventArgs(MyItemInfo.MyProcedure)); - } - #region Table Grid - #region TablePicker code - // TODO: for tables - //private void btnInsTable_Click(object sender, EventArgs e) - //{ - // Point loc = btnInsTable.DisplayRectangle.Location; - // loc.X += 300; - // int top = this.Top + (btnInsTable.Size.Height * 2); - // TablePickerDlg(sender, e, loc, top); - //} - - private VlnFlexGrid CreateNewTable() - { - Point pt = Cursor.Position; - int left = pt.X; - VlnFlexGrid grd = null; - TablePicker tpdlg = new TablePicker(); - tpdlg.Location = pt; - tpdlg.Left = left; - tpdlg.MaxCols = 20; - tpdlg.MaxRows = 30; - DialogResult dr = tpdlg.ShowDialog(); - while (tpdlg.Visible) - { - Application.DoEvents(); - } - if (dr != DialogResult.Cancel) //!tpdlg.Cancel) - { - // Create a new grid to store the selected size - grd = new VlnFlexGrid(); - grd.Rows.Count = tpdlg.SelectedRows; - grd.Cols.Count = tpdlg.SelectedColumns; - VE_Font vefont = MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList.Table.Font; - Font GridFont = new Font(vefont.Family, (float)vefont.Size); - grd.Font = GridFont; - grd.FitTableToPageWidth((int)(MyItemInfo.MyDocStyle.Layout.PageWidth - MyItemInfo.MyDocStyle.Layout.LeftMargin)); - } - return grd; - } - //private void InitializeNewGrid(C1FlexGrid grd) - //{ - // int numCols = grd.Cols.Count - 1; - // int numRows = grd.Rows.Count - 1; - - // string defText = ""; - // if (textBoxX1.Text.Length > 0) - // defText = textBoxX1.Text; - // else - // defText = textBoxX1.WatermarkText; - // grd.SetData(grd.GetCellRange(0, 0, numRows, numCols), defText); - //} - #endregion - #region Table Grid Copy/Paste - private void btnTblDgnCopyRow_Click(object sender, EventArgs e) - { - MyFlexGrid.CopyRow(); - } - - private void btnTblDgnCopyColumn_Click(object sender, EventArgs e) - { - MyFlexGrid.CopyColumn(); - } - - private void btnTblDgnCopySelection_Click(object sender, EventArgs e) - { - MyFlexGrid.CopyCellSelection(); - } - - private void btnTblDgnPasteRowAbove_Click(object sender, EventArgs e) - { - // create new rows before current position and copy clipboard data - MyFlexGrid.PasteRows(VlnFlexGrid.enmPastePos.Before); - GridItem tmp = MyEditItem as GridItem; - if (tmp!=null) tmp.SavePastedCellRoTran(); - } - - private void btnTblDgnPasteRowBelow_Click(object sender, EventArgs e) - { - // create new rows after current position and copy clipboard data - MyFlexGrid.PasteRows(VlnFlexGrid.enmPastePos.After); - GridItem tmp = MyEditItem as GridItem; - if (tmp != null) tmp.SavePastedCellRoTran(); - } - - private void btnTblDgnPasteReplaceRow_Click(object sender, EventArgs e) - { - // replace rows with current clipboard data starting as current row - MyFlexGrid.PasteRows(VlnFlexGrid.enmPastePos.Replace); - GridItem tmp = MyEditItem as GridItem; - if (tmp != null) tmp.SavePastedCellRoTran(); - } - - private void btnTblDgnPasteColumnLeft_Click(object sender, EventArgs e) - { - MyFlexGrid.PasteColumns(VlnFlexGrid.enmPastePos.Before); - GridItem tmp = MyEditItem as GridItem; - if (tmp != null) tmp.SavePastedCellRoTran(); - } - - private void btnTblDgnPasteColumnRight_Click(object sender, EventArgs e) - { - MyFlexGrid.PasteColumns(VlnFlexGrid.enmPastePos.After); - GridItem tmp = MyEditItem as GridItem; - if (tmp != null) tmp.SavePastedCellRoTran(); - } - - private void btnTblDgnPasteColumnReplace_Click(object sender, EventArgs e) - { - MyFlexGrid.PasteColumns(VlnFlexGrid.enmPastePos.Replace); - GridItem tmp = MyEditItem as GridItem; - if (tmp != null) tmp.SavePastedCellRoTran(); - } - - private void btnTblDgnPasteIntoSelection_Click(object sender, EventArgs e) - { - MyFlexGrid.PasteCopiedCells(); - GridItem tmp = MyEditItem as GridItem; - if (tmp != null) tmp.SavePastedCellRoTran(); - } - - #endregion - #region Table Grid Delete - private void btnTblDgnRemoveRow_Click(object sender, EventArgs e) - { - if (MyFlexGrid.AllRowsSelected()) - btnDelStep_Click(sender, e); - else - MyFlexGrid.RemoveSelectedRow(); - } - - private void btnTblDgnRemoveColumn_Click(object sender, EventArgs e) - { - if (MyFlexGrid.AllColumnsSelected()) - btnDelStep_Click(sender, e); - else - MyFlexGrid.RemoveSelectedColumn(); - } - - #endregion - #region Table Grid Cell Style - - //private void cpHighlight_SelectedColorChanged(object sender, EventArgs e) - //{ - // string strColor = string.Format("{0}, {1}, {2};", cpTblDgnHighlight.SelectedColor.R, cpTblDgnHighlight.SelectedColor.G, cpTblDgnHighlight.SelectedColor.B); - // MyFlexGrid.ChangeBackgroundColor(strColor); - //} - - private void btnTblDgnAlgnTxTopLeft_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellAlign(MyFlexGrid.Selection, C1.Win.C1FlexGrid.TextAlignEnum.LeftTop); - MyFlexGrid.RTFTextAlignment(MyFlexGrid.Selection, HorizontalAlignment.Left); - } - - private void btnTblDgnAlgnTxTopCenter_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellAlign(MyFlexGrid.Selection, C1.Win.C1FlexGrid.TextAlignEnum.CenterTop); - MyFlexGrid.RTFTextAlignment(MyFlexGrid.Selection, HorizontalAlignment.Center); - } - - private void btnTblDgnAlgnTxTopRight_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellAlign(MyFlexGrid.Selection, C1.Win.C1FlexGrid.TextAlignEnum.RightTop); - MyFlexGrid.RTFTextAlignment(MyFlexGrid.Selection, HorizontalAlignment.Right); - } - - private void btnTblDgnAlgnTxCenterLeft_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellAlign(MyFlexGrid.Selection, C1.Win.C1FlexGrid.TextAlignEnum.LeftCenter); - MyFlexGrid.RTFTextAlignment(MyFlexGrid.Selection, HorizontalAlignment.Left); - } - - private void btnTblDgnAlgnTxCenterCenter_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellAlign(MyFlexGrid.Selection, C1.Win.C1FlexGrid.TextAlignEnum.CenterCenter); - MyFlexGrid.RTFTextAlignment(MyFlexGrid.Selection, HorizontalAlignment.Center); - } - - private void btnTblDgnAlgnTxCenterRight_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellAlign(MyFlexGrid.Selection, C1.Win.C1FlexGrid.TextAlignEnum.RightCenter); - MyFlexGrid.RTFTextAlignment(MyFlexGrid.Selection, HorizontalAlignment.Right); - } - - private void btnTblDgnAlgnTxBottomLeft_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellAlign(MyFlexGrid.Selection, C1.Win.C1FlexGrid.TextAlignEnum.LeftBottom); - MyFlexGrid.RTFTextAlignment(MyFlexGrid.Selection, HorizontalAlignment.Left); - } - - private void btnTblDgnAlgnTxBottomCenter_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellAlign(MyFlexGrid.Selection, C1.Win.C1FlexGrid.TextAlignEnum.CenterBottom); - MyFlexGrid.RTFTextAlignment(MyFlexGrid.Selection, HorizontalAlignment.Center); - } - - private void btnTblDgnAlgnTxBottomRight_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellAlign(MyFlexGrid.Selection, C1.Win.C1FlexGrid.TextAlignEnum.RightBottom); - MyFlexGrid.RTFTextAlignment(MyFlexGrid.Selection, HorizontalAlignment.Right); - } - - #endregion - #region Table Grid Merge/Split - private void btnTblDgnSplitCells_ToRows_Click(object sender, EventArgs e) - { - // without the BeginUpdate/EndUpdate, you will see the table jump around while - // it is being adjusted - MyFlexGrid.BeginUpdate(); - MyFlexGrid.SplitSelection(false); - MyFlexGrid.EndUpdate(); - } - #endregion - - private void btnTblDgnSplitCellsToCols_Click(object sender, EventArgs e) - { - // without the BeginUpdate/EndUpdate, you will see the table jump around while - // it is being adjusted - MyFlexGrid.BeginUpdate(); - MyFlexGrid.SplitSelection(true); - MyFlexGrid.EndUpdate(); - } - - private void btnTblDgnMergeCells_Click(object sender, EventArgs e) - { - MyFlexGrid.MergeSelection(); - } - #endregion - #region Table Grid Design - private void btnTblDgnInsertRowAbove_Click(object sender, EventArgs e) - { - MyFlexGrid.InsertRowBefore(); - } - - private void btnTblDgnInsertRowBelow_Click(object sender, EventArgs e) - { - MyFlexGrid.InsertRowAfter(); - } - - private void btnTblDgnInsertColumnAbove_Click(object sender, EventArgs e) - { - MyFlexGrid.InsertColumnBefore(); - } - - private void btnTblDgnInsertColumnBelow_Click(object sender, EventArgs e) - { - MyFlexGrid.InsertColumnAfter(); - } - - public void ToggleTableDesignButtons(bool enable) - { - btnTblDgnAlignText.Enabled = enable; - btnTblDgnCopy.Enabled = enable; - btnTblDgnRemove.Enabled = enable; - //btnTblDgnGridStyle.Enabled = enable; - //rbTblBorder.Enabled = enable; - rbnBorderlistBox.Enabled = enable; - rbnBorderSelectionPanel.Enabled = enable; - btnTblNoBorder.Enabled = enable; - btnTblOutline.Enabled = enable; - btnTblInside.Enabled = enable; - btnTblDgnInsertColumn.Enabled = enable; - btnTblDgnInsertRow.Enabled = enable; - btnTblDgnMergeCells.Enabled = enable; - btnCmGridPaste.Enabled = - btnTblDgnPaste.Enabled = ((VlnFlexGrid.MyCopyInfo.MyCopiedFlexGrid != null) && enable); - btnTblDgnSplitCells.Enabled = enable; - } - public void SetRibbonForGrid() - { - // for paste, see if there is clipboard data, & if so, of a type we can use. - IDataObject iData = Clipboard.GetDataObject(); - // set to true if editing cell, otherwise false for grids - //bool enable = (MyFlexGrid != null && MyFlexGrid.Editor != null); - bool enable = (MyFlexGrid != null); - //btnPasteText.Enabled = btnPasteStepText.Enabled = btnPaste.Enabled = enable; - btnPaste.Enabled = (iData.GetDataPresent(DataFormats.Text) || iData.GetDataPresent(DataFormats.Rtf)) && enable; - btnCMPasteText.Enabled = btnPasteText.Enabled = iData.GetDataPresent(DataFormats.Text) && enable; - btnCMPaste.Enabled = btnPasteStepText.Enabled = iData.GetDataPresent(DataFormats.Rtf ) && enable; - btnCopy.Enabled = enable; - btnCut.Enabled = enable; - btnBold.Enabled = enable && !MyFlexGrid.IsRoTable;// ; - btnItalics.Enabled = enable && !MyFlexGrid.IsRoTable;// ; - btnUnderline.Enabled = enable && !MyFlexGrid.IsRoTable;// ; - btnSubscript.Enabled = enable && !MyFlexGrid.IsRoTable;// ; - btnSuperscript.Enabled = enable && !MyFlexGrid.IsRoTable;// ; - btnChgCase.Enabled = enable && !MyFlexGrid.IsRoTable;// ; - btnInsHrdSpc.Enabled = enable && !MyFlexGrid.IsRoTable;// enable; - btnSymbols.Enabled = enable && !MyFlexGrid.IsRoTable;// enable; - btnIndent.Enabled = enable && !MyFlexGrid.IsRoTable;// ;enable; - btnInsTrans.Enabled = enable && !MyFlexGrid.IsRoTable;// ; - btnInsRO.Enabled = enable; - btnCMRtfCellEdit.Enabled = enable && !MyFlexGrid.IsRoTable; - } - private void btnTblDgnAdjustSize_Click(object sender, EventArgs e) - { - if (MyFlexGrid.Cols.Fixed == 0) // allow change of size. - { - // set all the rows and columns to Fixed so that user can adjust the row/column size - if (MyFlexGrid.Cols[0].Width == -1) MyFlexGrid.Cols[0].Width = MyFlexGrid.Cols.DefaultSize; - MyFlexGrid.Cols.Fixed = MyFlexGrid.Cols.Count; - MyFlexGrid.Rows.Fixed = MyFlexGrid.Rows.Count; - ToggleTableDesignButtons(false); - //MyFlexGrid.ListStyles(); - } - else - { - // set grid back to "normal" mode - MyFlexGrid.Cols.Fixed = 0; - MyFlexGrid.Rows.Fixed = 0; - MyFlexGrid.StyleBackColor = Color.White; - ToggleTableDesignButtons(true); - //MyFlexGrid.ListStyles(); - } - } - #endregion - #region Table Grid Border - private void btnTblDgnTableBorderNone_Click(object sender, EventArgs e) - { - MyFlexGrid.SetTableBorder(C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None); - } - - private void btnTblDgnTableBorderFixedSingle_Click(object sender, EventArgs e) - { - MyFlexGrid.SetTableBorder(C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.FixedSingle); - } - - private void btnTblDgnTableBorderFixed3D_Click(object sender, EventArgs e) - { - MyFlexGrid.SetTableBorder(C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.Fixed3D); - } - - private void btnTblDgnTableBorderLight3D_Click(object sender, EventArgs e) - { - MyFlexGrid.SetTableBorder(C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.Light3D); - } - - private void btnTblDgnTableBorderXPThemes_Click(object sender, EventArgs e) - { - MyFlexGrid.SetTableBorder(C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.XpThemes); - } - #endregion - #region Table Grid Grid Style - private void btnTblDgnGridStyleNone_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellBorder(MyFlexGrid.Selection, C1.Win.C1FlexGrid.BorderStyleEnum.None); - } - - private void btnTblDgnGridStyleFlat_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellBorder(MyFlexGrid.Selection, C1.Win.C1FlexGrid.BorderStyleEnum.Flat); - } - - private void btnTblDgnGridStyleDouble_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellBorder(MyFlexGrid.Selection, C1.Win.C1FlexGrid.BorderStyleEnum.Double); - } - - private void btnTblDgnGridStyleRaised_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellBorder(MyFlexGrid.Selection, C1.Win.C1FlexGrid.BorderStyleEnum.Raised); - } - - private void btnTblDgnGridStyleInset_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellBorder(MyFlexGrid.Selection, C1.Win.C1FlexGrid.BorderStyleEnum.Inset); - } - - private void btnTblDgnGridStyleGroove_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellBorder(MyFlexGrid.Selection, C1.Win.C1FlexGrid.BorderStyleEnum.Groove); - } - - private void btnTblDgnGridStyleFillet_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellBorder(MyFlexGrid.Selection, C1.Win.C1FlexGrid.BorderStyleEnum.Fillet); - } - - private void btnTblDgnGridStyleDotted_Click(object sender, EventArgs e) - { - MyFlexGrid.ChangeCellBorder(MyFlexGrid.Selection, C1.Win.C1FlexGrid.BorderStyleEnum.Dotted); - } - #endregion - - private void rbnBorderlistBox_SelectedIndexChanged(object sender, EventArgs e) - { - rbnBorderSelectionPanel.SelectedBorder = rbnBorderlistBox.SelectedLinePattern; - } - - private void rbnBorderSelectionPanel_BordersChanged(object sender, EventArgs args) - { - //C1.Win.C1FlexGrid.CellRange cr = MyFlexGrid.GetEvenSelection(); - MyFlexGrid.SetBorders(MyFlexGrid.Selection, rbnBorderSelectionPanel.TopBorder, rbnBorderSelectionPanel.InsideHorizontalBorder, - rbnBorderSelectionPanel.BottomBorder, rbnBorderSelectionPanel.LeftBorder, rbnBorderSelectionPanel.InsideVerticalBorder, rbnBorderSelectionPanel.RightBorder); - MyEditItem.Invalidate(); - MyFlexGrid.Invalidate(); - } - private void btnTblNoBorder_Click(object sender, EventArgs e) - { - rbnBorderSelectionPanel.AllBorders = GridLinePattern.None; - } - private void btnTblOutline_Click(object sender, EventArgs e) - { - rbnBorderSelectionPanel.OutlineBorder = rbnBorderlistBox.SelectedLinePattern; - } - private void btnTblInside_Click(object sender, EventArgs e) - { - rbnBorderSelectionPanel.InsideBorders = rbnBorderlistBox.SelectedLinePattern; - } - private void rbnBorderlistBox_Resize(object sender, EventArgs e) - { - rbnBorderSelectionPanel.Size = rbnBorderlistBox.Size; - _RibbonControl.Height = rbnBorderlistBox.Height + _RibbonControl.Height - _RibbonControl.ClientSize.Height; - //_RibbonControl.Height = rbnBorderlistBox.Height + _RibbonControl.Height - _RibbonControl.ClientSize.Height; - } - #region Expand/Collaspe Ribbon - // In MS Word, a Double Click of a ribbon tab will toggle (Expand/Collapse) the ribbon. - // Once collapsed, a Single Click of a ribbon tab will temporarily expand the ribbon but does not push the text window - // down to make room. Thus your edit cursor could end up behind the ribbon. - - // In our implementation of the ribbon interface, when we double click to collapse/expand the - // ribbon, the QAT menu on the main form gets out of sync, so we need to handle this manually, turning off AutoExpand - // on the ribbon control. (see StepTabRibbon() constructor) and issue an event to expand/collapse the ribbon. - - // As a result of turning off the AutoExpand, a single click is not recongized internally. - // To get around this, we handle the single click event. - // Our single click event will expand the ribbon tabs if needed but not temporarily. - // Instead, it acts like a double click which is not the same a MS Word, but on the plus side, - // it elimates the risk of the ribbon expanding on top of the current edit window. - - //----------------------------- - - // This is assigned the DoubleClick event on all of the ribbon tabs - // Note that a single mouse click will expand the tabs if collapsed - // Note too that a double click also fires the single click event - // the "didSingleClick" variable handle this case - private void ribbonTab_DoubleClick(object sender, EventArgs e) - { - if (TimeSpan.FromTicks(DateTime.Now.Ticks - _LastClick.Ticks).TotalMilliseconds > 500) - { - //SendKeys.Send("^{F1}"); // toggle expand/collapse ribbon tabs - MyEditItem.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnToggleRibbonExpanded(this, new EventArgs()); - _LastDoubleClick = DateTime.Now; - } - } - - private DateTime _LastClick = DateTime.Now; - private DateTime _LastDoubleClick = DateTime.Now; - - // This is assigned the Click event on all of the ribbon tabs - // If the tabs are collapsed, then expand them on a single click of the tab - private void ribbonTab_SingleClick(object sender, EventArgs e) - { - if ((!_RibbonControl.Expanded) && TimeSpan.FromTicks(DateTime.Now.Ticks - _LastDoubleClick.Ticks).TotalMilliseconds > 500) - { - //SendKeys.Send("^{F1}"); // Expand the ribbon tabs - MyEditItem.MyStepPanel.MyStepTabPanel.MyDisplayTabControl.OnToggleRibbonExpanded(this, new EventArgs()); - _LastClick = DateTime.Now; - } - } - #endregion // Expand/Collapse Ribbon - - private void btnPasteText_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.End); - _PastePlainTextOvrRide = true; - btnPaste_Click(sender, e); - } - - private void btnPasteStepText_Click(object sender, EventArgs e) - { - StartGridEditing(SelectionOption.End); - _PasteStepTextOvrRide = true; - btnPaste_Click(sender, e); - } - - } - public enum E_FieldToEdit { StepText, Text, Number, PSI }; - public class StepTabRibbonEventArgs : EventArgs - { - public StepTabRibbonEventArgs() { ; } - public StepTabRibbonEventArgs(ItemInfo proc) - { - _Proc = proc; - } - private ItemInfo _Proc; - - public ItemInfo Proc - { - get { return _Proc; } - set { _Proc = value; } - } - } - public delegate void StepTabRibbonEvent(object sender, StepTabRibbonEventArgs args); - -} diff --git a/PROMS/Volian.Controls.Library/TemporaryFormat.cs b/PROMS/Volian.Controls.Library/TemporaryFormat.cs deleted file mode 100644 index 66d53a35..00000000 --- a/PROMS/Volian.Controls.Library/TemporaryFormat.cs +++ /dev/null @@ -1,86 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using VEPROMS.CSLA.Library; - -namespace Volian.Controls.Library -{ - class TemporaryFormat - { - private static string[] _TabFormats = new string[] { - "", // 0 base - "",// 1 //STANDARD - " ",// 2 //HIGH - "[] ",// 3 //IMMEDIATE - "o ",// 4 //AND - "o ",// 5 //OR - "CAUTION ",// 6 //CAUTION - "NOTE ",// 7 //NOTE - "",// 8 //TABLE - " * ",// 9 //CONTINUOUS - "",// 10 //AERTABLE - "o ",// 11 //EQUIPMENTLIST - "",// 12 //TITLE - "",// 13 //PAGENUMBER - "o ",// 14 //EQUIPMENTWBLANK - "",// 15 //PROCNUMBER - "",// 16 //REVNUMBER - "",// 17 //ACCPAGES - "",// 18 //LOSSOFAC - "o ",// 19 //EXPLICITAND - "CAUTION ",// 20 //CAUTION1 - "CAUTION ",// 21 //CAUTION2 - "NOTE ",// 22 //NOTE1 - "NOTE ",// 23 //NOTE2 - "",// 24 //PARAGRAPH - "",// 25 //DEFAULT - "NOTE ",// 26 //NOTE3 - "CAUTION ",// 27 //CAUTION3 - "NOTE ",// 28 //NOTE4 - "CAUTION ",// 29 //CAUTION4 - "o ",// 30 //EQUIPMENTOPT - "o ",// 31 //EQUIPMENTOPTWBLANK - "NOTE ",// 32 //NOTE5 - "",// 33 //BORDERLESSAERTABLE - "",// 34 //BORDERLESSTABLE - "o ",// 35 //IMPLICITOR - "",// 36 //FIGURE - "",// 37 //AERFIGURE - "",// 38 //BORDERLESSFIGURE - "",// 39 //BORDERLESSAERFIGURE - "",// 40 //RNOTYPE - " ! ",// 41 //HIGH5 - "",// 42 //TITLEWITHTEXTRIGHT - "",// 43 //TITLEWITHTEXTBELOW - "",// 44 //CONTACSEQUENTIAL - "o ",// 45 //CONTACAND - "o ",// 46 //CONTACOR - "" // 47 //CONTACPARAGRAPH - }; - private static string[] SeqTabFormat = new string[] { - ". ", - ". ", - ") ", - ") " - }; - public static string TabFormat(StepItem myDisplayItem) - { - string format = string.Empty; - if (myDisplayItem.MyItemInfo != null) - { - int typ = (int)myDisplayItem.MyItemInfo.MyContent.Type; - if (typ >= 20000) - { - if (myDisplayItem.RNOLevel > 0 && myDisplayItem.MyItemInfo.IsRNOPart) return ""; - // Step 1: Get TabFormat from Format - format = _TabFormats[typ % 10000]; - if (format == "") - { - format = SeqTabFormat[myDisplayItem.SeqLevel % SeqTabFormat.Length]; - } - } - } - return format; - } - } -} diff --git a/PROMS/Volian.Controls.Library/VlnFlexGrid.cs.bak b/PROMS/Volian.Controls.Library/VlnFlexGrid.cs.bak deleted file mode 100644 index a1ffec2c..00000000 --- a/PROMS/Volian.Controls.Library/VlnFlexGrid.cs.bak +++ /dev/null @@ -1,4926 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections; -using System.Collections.Generic; -using System.Diagnostics; -using System.Text; -using System.Windows.Forms; -using System.Drawing; -using System.Runtime.InteropServices; -using System.Xml; -using System.IO; -using Volian.Controls.Library; -using VEPROMS.CSLA.Library; -using C1.Win.C1FlexGrid; -using C1.Win.C1SpellChecker; -using System.Text.RegularExpressions; -using System.Xml.Serialization; - -namespace Volian.Controls.Library -{ - public delegate void VlnFlexGridEvent(object sender, EventArgs args); - public delegate void VlnFlexGridCursorMovementEvent(object sender, VlnFlexGridCursorMovementEventArgs args); - public delegate string VlnFlexGridPasteEvent(object sender, VlnFlexGridPasteEventArgs args); - public delegate void VlnFlexGridkeyEvent(object sender, KeyEventArgs args); - public partial class vlnPanel : Panel - { - private int _Opacity = 128; - //public int Opacity - //{ - // get { return _Opacity; } - // set { _Opacity = value; } - //} - - public vlnPanel() - { - InitializeComponent(); - } - - public vlnPanel(IContainer container) - { - container.Add(this); - InitializeComponent(); - } - //protected override CreateParams CreateParams - //{ - // get - // { - // CreateParams prams = base.CreateParams; - // prams.ExStyle |= 0x020; // transparent - // return prams; - // } - //} - //protected override void OnPaint(PaintEventArgs pe) - //{ - // pe.Graphics.FillRectangle(new SolidBrush(Color.FromArgb(_Opacity, this.BackColor)), this.ClientRectangle); - //} - } - - public partial class VlnFlexGrid : C1.Win.C1FlexGrid.C1FlexGrid - { - private bool _Disposed = false; - private static int _CountCreated = 0; - private static int _CountDisposed = 0; - private static int _CountFinalized = 0; - private static int IncrementCountCreated - { get { return ++_CountCreated; } } - private int _CountWhenCreated = IncrementCountCreated; - public static int CountCreated - { get { return _CountCreated; } } - public static int CountNotDisposed - { get { return _CountCreated - _CountDisposed; } } - public static int CountNotFinalized - { get { return _CountCreated - _CountFinalized; } } - private bool _Finalized = false; - ~VlnFlexGrid() - { - if(!_Finalized) _CountFinalized++; - _Finalized = true; - } - private C1SpellChecker _SpellChecker; - public C1SpellChecker SpellChecker - { - get { return _SpellChecker; } - set { _SpellChecker = value; } - } - //public string GridStackTrace - //{ - // get - // { - // string st = Volian.Base.Library.vlnStackTrace.GetStack(); - // st = StripFunnyCharacters(st); - // return st; - // Console.WriteLine(st); - // return st.Replace(@"\","|"); - // } - // set - // { - // ; - // } - //} - //private string StripFunnyCharacters(string st) - //{ - // StringBuilder sb = new StringBuilder(); - // foreach (char c in st) - // { - // if ((c < ' ' || c > 255) && !"\r\n\t".Contains(c.ToString())) - // sb.Append(string.Format("x{0:X4}", (int)c)); - // else - // sb.Append(c); - // } - // return sb.ToString(); - //} - public bool IsDirty - { - get - { - return IsGridChanged(this._MyItemInfo.MyContent.MyGrid.Data, this.GetXMLData()); - } - } - private bool IsGridChanged(string oldXml, string newXml) - { - if (this.TableCellEditor.Text.Contains("")) - return false; - XmlDocument XdOld = new XmlDocument(); - XdOld.LoadXml(oldXml); - XmlDocument XdNew = new XmlDocument(); - XdNew.LoadXml(newXml); - //check volian borders 1st - if (XdNew.SelectSingleNode("C1FlexGrid/Control/MyBorderDetailString").InnerText != XdOld.SelectSingleNode("C1FlexGrid/Control/MyBorderDetailString").InnerText) - return true; - //check row/col sizes 2nd - if (GetRowColSizeString(XdNew) != GetRowColSizeString(XdOld)) - return true; - //check for cell data changes 3rd - if (GetCellDataString(XdNew) != GetCellDataString(XdOld)) - return true; - //check for cell format changes 4th - if (GetCellFormatString(XdNew) != GetCellFormatString(XdOld)) - return true; - //check for merged cells 5th - if (GetCellMergeString(XdNew) != GetCellMergeString(XdOld)) - return true; - return false; - } - private string GetRowColSizeString(XmlDocument xd) - { - string defCW = xd.SelectSingleNode("C1FlexGrid/ColumnInfo/DefaultSize").InnerText; - string defRH = xd.SelectSingleNode("C1FlexGrid/RowInfo/DefaultSize").InnerText; - int cols = int.Parse(xd.SelectSingleNode("C1FlexGrid/ColumnInfo/Count").InnerText); - int rows = int.Parse(xd.SelectSingleNode("C1FlexGrid/RowInfo/Count").InnerText); - List rh = new List(); - for (int i = 0; i < rows; i++) - rh.Add(defRH); - List cw = new List(); - for (int i = 0; i < cols; i++) - cw.Add(defCW); - XmlNodeList nlr = xd.SelectNodes("C1FlexGrid/Rows/Row"); - foreach (XmlNode nr in nlr) - { - int idx = int.Parse(nr.Attributes.GetNamedItem("index").InnerText); - rh[idx] = nr.SelectSingleNode("Height").InnerText; - } - XmlNodeList nlc = xd.SelectNodes("C1FlexGrid/Columns/Column"); - foreach (XmlNode nc in nlc) - { - int idx = int.Parse(nc.Attributes.GetNamedItem("index").InnerText); - cw[idx] = nc.SelectSingleNode("Width").InnerText; - } - string rhcw = "RowHeights: "; - string sep = string.Empty; - foreach (string s in rh) - { - rhcw += sep + s; - sep = ","; - } - rhcw += " - ColWidths: "; - sep = string.Empty; - foreach (string s in cw) - { - rhcw += sep + s; - sep = ","; - } - return rhcw; - } - private string GetCellDataString(XmlDocument xd) - { - int cols = int.Parse(xd.SelectSingleNode("C1FlexGrid/ColumnInfo/Count").InnerText); - int rows = int.Parse(xd.SelectSingleNode("C1FlexGrid/RowInfo/Count").InnerText); - List datum = new List(); - for (int i = 0; i < rows * cols; i++) - datum.Add("|"); - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Cells/Cell/Data"); - string data = string.Empty; - foreach (XmlNode xn in nl) - { - RichTextBox rtb = new RichTextBox(); - rtb.Rtf = xn.InnerText; - XmlAttribute xa = xn.ParentNode.Attributes.GetNamedItem("index") as XmlAttribute; - string[] rc = xa.InnerText.Split(','); - int r = int.Parse(rc[0]); - int c = int.Parse(rc[1]); - int index = r * cols + c; - datum[index] = "|" + (rtb.Text == "" ? "" : rtb.Text); - } - foreach (string s in datum) - data += s; - return data; - } - private string GetCellFormatString(XmlDocument xd) - { - int cols = int.Parse(xd.SelectSingleNode("C1FlexGrid/ColumnInfo/Count").InnerText); - int rows = int.Parse(xd.SelectSingleNode("C1FlexGrid/RowInfo/Count").InnerText); - List datum = new List(); - for (int i = 0; i < rows * cols; i++) - datum.Add("|"); - XmlNodeList nl = xd.SelectNodes("C1FlexGrid/Cells/Cell/Data"); - string data = string.Empty; - foreach (XmlNode xn in nl) - { - RichTextBox rtb = new RichTextBox(); - rtb.Rtf = xn.InnerText; - XmlAttribute xa = xn.ParentNode.Attributes.GetNamedItem("index") as XmlAttribute; - string[] rc = xa.InnerText.Split(','); - int r = int.Parse(rc[0]); - int c = int.Parse(rc[1]); - int index = r * cols + c; - datum[index] = "|" + (rtb.Text == "" ? "" : rtb.Rtf); - } - foreach (string s in datum) - data += s; - return data; - } - private string GetCellMergeString(XmlDocument xd) - { - if(xd.SelectSingleNode("C1FlexGrid/MergedRanges") == null) - return string.Empty; - return xd.SelectSingleNode("C1FlexGrid/MergedRanges").InnerXml; - } - private static GridCopyInfo _MyCopyInfo; - public static GridCopyInfo MyCopyInfo - { - get - { - if (_MyCopyInfo == null) - _MyCopyInfo = new GridCopyInfo(); - return _MyCopyInfo; - } - } - private Color _DefaultCellBackgroundcolor; - - public Color DefaultCellBackgroundcolor - { - get { return _DefaultCellBackgroundcolor; } - } - private Color _DefaultFixedBackgroundColor; - - public Color DefaultFixedBackgroundColor - { - get { return _DefaultFixedBackgroundColor; } - } - public void CopyToCopiedFlexGrid(GridCopyOption myCopyOption) - { - MyCopyInfo.MyCopiedFlexGrid = new VlnFlexGrid(); //make a copy of the grid being copied - using (StringReader sr = new StringReader(this.GetXMLData())) - { - MyCopyInfo.MyCopiedFlexGrid.ReadXml(sr); - this.BorderStyle = C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None; - sr.Close(); - } - MyCopyInfo.MyCopyOption = myCopyOption; - OnCopyOptionChanged(this, new EventArgs()); - switch (MyCopyInfo.MyCopyOption) - { - case GridCopyOption.Row: - MyCopyInfo.MyCopiedCellRange = MyCopyInfo.MyCopiedFlexGrid.GetCellRange(Selection.r1, 0, Selection.r2, Cols.Count - 1); - break; - case GridCopyOption.Column: - MyCopyInfo.MyCopiedCellRange = MyCopyInfo.MyCopiedFlexGrid.GetCellRange(0, Selection.c1, Rows.Count - 1, Selection.c2); - break; - case GridCopyOption.Selection: - MyCopyInfo.MyCopiedCellRange = MyCopyInfo.MyCopiedFlexGrid.GetCellRange(Selection.r1, Selection.c1, Selection.r2, Selection.c2); - break; - default: - break; - } - } - public event VlnFlexGridEvent CopyOptionChanged; - public void OnCopyOptionChanged(object sender, EventArgs args) - { - if (CopyOptionChanged != null) CopyOptionChanged(sender, args); - } - - [XmlElement("MyBorders")] - [Browsable(false)] - [EditorBrowsable(EditorBrowsableState.Never)] - public string MyBorderDetailString - { - get - { - return MyBorders.ConvertToString(); - } - set - { - if (value != null) - _MyBorders = VlnBorders.Get(value); - else - _MyBorders = null; - } - } - private VlnBorders _MyBorders; - [XmlIgnore] - public VlnBorders MyBorders - { - get - { - if (_MyBorders == null) - _MyBorders = new VlnBorders(GridLinePattern.Single, Rows.Count, Cols.Count); - return _MyBorders; - } - set { _MyBorders = value; } - } - private ItemInfo _MyItemInfo; - public ItemInfo GetMyItemInfo() - { - return _MyItemInfo; - } - //public ItemInfo MyItemInfo - //{ - // get { return _MyItemInfo; } - // set { _MyItemInfo = value; } - //} - public bool TopRowHasBorder() - { - for (int c = 0; c < Cols.Count - 1; c++) - if (MyBorders.HorizontalLines[0, c] != GridLinePattern.None) return true; - return false; - } - public void SetBorders(CellRange myRange, - GridLinePattern top, GridLinePattern middle, GridLinePattern bottom, - GridLinePattern left, GridLinePattern center, GridLinePattern right) - { - for (int r = myRange.r1; r <= myRange.r2; r++) - for (int c = myRange.c1; c <= myRange.c2; c++) - { - CellRange cr = GetMergedRange(r, c); - if (r == myRange.r1) // Top Border - if(top != GridLinePattern.Mixed) MyBorders.HorizontalLines[cr.r1, cr.c1]=top; - if (c == myRange.c1) // Left Border - if(left != GridLinePattern.Mixed) MyBorders.VerticalLines[cr.r1, cr.c1]=left; - if (r == myRange.r2) // Bottom Border - if(bottom != GridLinePattern.Mixed) MyBorders.HorizontalLines[cr.r2 + 1, cr.c2]=bottom; - if (c == myRange.c2) // Right Border - if(right != GridLinePattern.Mixed) MyBorders.VerticalLines[cr.r2, cr.c2 + 1] = right; - if (r == cr.r1 && c == cr.c1) // Look for inside lines - { - if (cr.r1 > myRange.r1 && cr.r1 <= myRange.r2) // Inside Horizontal Top - if (middle != GridLinePattern.Mixed) - { - MyBorders.HorizontalLines[cr.r1, cr.c1] = middle; - MyBorders.HorizontalLines[cr.r1, cr.c2] = middle; - } - if (cr.r2 > myRange.r1 && cr.r2 < myRange.r2) // Inside Horizontal Bottom - if(middle != GridLinePattern.Mixed) MyBorders.HorizontalLines[cr.r2 + 1, cr.c2]=middle; - if (cr.c1 > myRange.c1 && cr.c1 <= myRange.c2) // Inside Vertical Left - if (center != GridLinePattern.Mixed) - { - MyBorders.VerticalLines[cr.r1, cr.c1] = center; - MyBorders.VerticalLines[cr.r2, cr.c1] = center; - } - if (cr.c2 > myRange.c1 && cr.c2 < myRange.c2) // Inside Vertical Right - if(center != GridLinePattern.Mixed) MyBorders.VerticalLines[cr.r2, cr.c2 + 1]=center; - } - c = cr.c2;//Skip to the end of the merged cells - } - - } - public void PasteBorders(int r, int c, int br, int bc) - { - MyBorders.HorizontalLines[r, c] = MyCopyInfo.MyCopiedFlexGrid.MyBorders.HorizontalLines[br,bc]; - MyBorders.VerticalLines[r, c] = MyCopyInfo.MyCopiedFlexGrid.MyBorders.VerticalLines[br, bc]; - MyBorders.HorizontalLines[r+1, c] = MyCopyInfo.MyCopiedFlexGrid.MyBorders.HorizontalLines[br+1, bc]; - MyBorders.VerticalLines[r, c+1] = MyCopyInfo.MyCopiedFlexGrid.MyBorders.VerticalLines[br, bc+1]; - } - - [XmlIgnore] - public bool HasVScroll - { - get - { - return RTBAPI.HasVertScroll(this); - } - } - [XmlIgnore] - public bool HasHScroll - { - get - { - return RTBAPI.HasHorzScroll(this); - } - } - public event VlnFlexGridEvent OpenAnnotations; - public void OnOpenAnnotations(object sender, EventArgs args) - { - if (OpenAnnotations != null) OpenAnnotations(sender, args); - } - public event VlnFlexGridCursorMovementEvent CursorMovement; - internal void OnCursorMovement(object sender, VlnFlexGridCursorMovementEventArgs args) - { - if (CursorMovement != null) CursorMovement(sender, args); - } - public event VlnFlexGridPasteEvent AdjustPastedText; - internal string OnAdjustPastedText(object sender, VlnFlexGridPasteEventArgs args) - { - if (AdjustPastedText != null) return AdjustPastedText(sender, args); - return args.Text; - } - public event VlnFlexGridkeyEvent EnterKeyPressed; - public void OnEnterKeyPressed(object sender, KeyEventArgs args) - { - if (EnterKeyPressed != null) EnterKeyPressed(sender, args); - } - - private TableCellEditor _tableCellEditor; - - public TableCellEditor TableCellEditor - { - get { return _tableCellEditor; } - set { _tableCellEditor = value; } - } - private TableClipBoardFuncts _clpbrdCpyPste; - private int _minColSplitWidth = 10; - //private int _minRowSplitHeight = 23; - - //private int _minSplitColWidth = 10; - //private int _minSplitRowHeight = 20; - private E_ViewMode _vwMode = E_ViewMode.Edit; - [XmlIgnore] - internal E_ViewMode VwMode - { - get { return _vwMode; } - set - { - _vwMode = value; - AllowEditing = _vwMode == E_ViewMode.Edit; - } - } - private bool _IsRoTable = false; - public bool IsRoTable - { - get { return _IsRoTable; } - set { _IsRoTable = value; } - } - private int _RODbId; - public int RODbId - { - get { return _RODbId; } - set { _RODbId = value; } - } - private string _ROID; - - public string ROID - { - get { return _ROID; } - set { _ROID = value; } - } - private float? _DPI = null; - public float? DPI - { - get - { - if (_DPI == null) - _DPI = 120; - return _DPI; - } - set - { - if (DPI != value) - { - _DPI = value; - } - } - } - #region Grid Initialize - - public VlnFlexGrid() - { - InitializeComponent(); - SetupGrid(4, 3); // use a default row and column count - } - - public VlnFlexGrid(int rows, int cols) - { - InitializeComponent(); - SetupGrid(rows, cols); - } - - public VlnFlexGrid(IContainer container) - { - container.Add(this); - InitializeComponent(); - SetupGrid(1, 1); - } - public VlnFlexGrid(ContentItem ci) - { - InitializeComponent(); - SetupGrid(4, 3); // use a default row and column count - _MyItemInfo = ci.MyItem.MyItemInfo; - } - //public VlnFlexGrid(IContainer container) - //{ - // container.Add(this); - - // InitializeComponent(); - // _tableCellEditor = new TableCellEditor(this); - // _tableCellEditor.ContentsResized += new ContentsResizedEventHandler(_tableCellEditor_ContentsResized); - //} - - //void _tableCellEditor_ContentsResized(object sender, ContentsResizedEventArgs e) - //{ - // if (_tableCellEditor._initializingEdit) return; - // CellRange cr = GetMergedRange(Row, Col); - // int oH = cr.UserData == null? 0 : (int)cr.UserData; - // int nH = _tableCellEditor.ContentsRectangle.Height; - // int Hadj = (nH - oH); - // cr.UserData = _tableCellEditor.ContentsRectangle.Height; - // int cellHeight = GetCellHeight(Row,Col); - // int cellheightNLines = cellHeight / (Rows.DefaultSize - 3); - // int nHNLines = nH / (Rows.DefaultSize - 3); - // if (Hadj != 0) - // { - // int curHeight = (Rows[Row].Height == -1) ? Rows.DefaultSize : Rows[Row].Height; - // //if (Hadj > 0 && cellHeight <= oH) - // if (Hadj > 0 && cellheightNLines < nHNLines) - // curHeight += (Rows.DefaultSize - 3); - // if (Hadj < 0 && CanReduceRow()) - // curHeight -= (Rows.DefaultSize-3); - // Rows[Row].Height = curHeight; - // AdjustGridControlSize(); - // } - // //cr.UserData = _tableCellEditor.ContentsRectangle.Height; - // //int mh = GetMaxRowHeight(); - // ////Rows[Row].Height = mh + 2; - // //int h = 0; - // //if (cr.r1 == cr.r2 && cr.c1 == cr.c2) - // // h = Rows[Row].Height - 2; - // //else - // //{ - // // for (int r = cr.r1; r <= cr.r2; r++) - // // h += Rows[r].Height - 2; - // //} - // //Rows[Row].Height += (mh - h); - // ////AdjustGridControlSize(); - //} - private int GetCellHeight(int row, int col) - { - return GetRangeHeight(GetMergedRange(row, col))-3; - } - - public int GetRangeHeight(CellRange cr) - { - int height = 0; - for (int r = cr.r1; r <= cr.r2; r++) - height += (Rows[r].Height == -1) ? Rows.DefaultSize : Rows[r].Height; - return height; - } - - public int GetRangeTop(CellRange cr) - { - int top = 0; - for (int r = 0; r < cr.r1; r++) - top += (Rows[r].Height == -1) ? Rows.DefaultSize : Rows[r].Height; - return top; - } - - public int GetRangeWidth(CellRange cr) - { - int width = 0; - for (int c = cr.c1; c <= cr.c2; c++) - width += (Cols[c].Width == -1) ? Cols.DefaultSize : Cols[c].Width; - return width; - } - - public int GetRangeLeft(CellRange cr) - { - int left = 0; - for (int c = 0; c < cr.c1; c++) - left += (Cols[c].Width == -1) ? Cols.DefaultSize : Cols[c].Width; - return left; - } - - public int GetRangeRowsMin(CellRange cr) - { - int rowsMin = 1 + cr.r2 - cr.r1; - for (int c = cr.c1; c <= cr.c2; c++) - { - int rows = 0; - for (int r = cr.r1; r <= cr.r2; r++) - { - CellRange chk = GetMergedRange(r, c); - if (chk.r1 == r && chk.c1 == c) - rows++; - } - rowsMin = Math.Min(rowsMin, rows); - } - return rowsMin; - } - - public int GetRangeRowsMax(CellRange cr) - { - int rowsMax = 0; - for (int c = cr.c1; c <= cr.c2; c++) - { - int rows = 0; - for (int r = cr.r1; r <= cr.r2; r++) - { - CellRange chk = GetMergedRange(r, c); - if (chk.r1 == r && chk.c1 == c) - rows++; - } - rowsMax = Math.Max(rowsMax, rows); - } - return rowsMax; - } - - public int GetRangeColsMin(CellRange cr) - { - int colsMin = 1 + cr.c2 - cr.c1; - for (int r = cr.r1; r <= cr.r2; r++) - { - int cols = 0; - for (int c = cr.c1; c <= cr.c2; c++) - { - CellRange chk = GetMergedRange(r, c); - if (chk.r1 == r && chk.c1 == c) - cols++; - } - colsMin = Math.Min(colsMin, cols); - } - return colsMin; - } - - public int GetRangeColsMax(CellRange cr) - { - int colsMax = 0; - for (int c = cr.c1; c <= cr.c2; c++) - { - int cols = 0; - for (int r = cr.r1; r <= cr.r2; r++) - { - CellRange chk = GetMergedRange(r, c); - if (chk.r1 == r && chk.c1 == c) - cols++; - } - colsMax = Math.Max(colsMax, cols); - } - return colsMax; - } - - public string GetRangeRowList(CellRange cr) - { - StringBuilder sb = new StringBuilder(); - string sep = ""; - for (int r = cr.r1; r <= cr.r2; r++) - { - CellRange crm = GetMergedRange(r, cr.c1); - if (crm.r1 == r) - { - sb.Append(sep + r.ToString()); - sep = "."; - } - r = crm.r2; - } - return sb.ToString(); - } - - private int BlankRowSpace() - { - int curRowHeight = (Rows[Row].Height == -1) ? Rows.DefaultSize - 3 : Rows[Row].Height - 3; - if (curRowHeight <= (Rows.DefaultSize - 3)) return 0; // never have row less than default height - int blankRowSpace = curRowHeight; - for (int c = 0; c < Cols.Count; c++) - { - CellRange cr = GetMergedRange(Row, c); - if (Row >= cr.r1 && Row <= cr.r2) - { - int cellHeight = GetCellHeight(Row, c); - int dataHeight = (cr.UserData == null) ? cellHeight : (int)cr.UserData; - int ud = dataHeight / (Rows.DefaultSize - 3); - //if (cellHeight < dataHeight) - // Console.WriteLine("r {0}, c {1}, cell{2}, data{3}", Row, c, cellHeight, dataHeight); - blankRowSpace = Math.Min(blankRowSpace, Math.Max(0,cellHeight - dataHeight)); - } - } - //Console.WriteLine("BlankRowSpace {0}", blankRowSpace); - return blankRowSpace; - } - - private int GetCellWidth(int row, int col) - { - int width = 0; - CellRange cr = GetMergedRange(row, col); - for (int c = cr.c1; c <= cr.c2; c++) - { - width += (Cols[c].Width == -1) ? Cols.DefaultSize - 3 : Cols[c].Width -3; - } - return width; - } - - private int BlankColSpace() - { - int curColWidth = (Cols[Col].Width == -1) ? Cols.DefaultSize - 3 : Cols[Col].Width-3; - //int curRowHeightNLines = curRowHeight / (Rows.DefaultSize - 3); - if (curColWidth <= Cols.DefaultSize - 3) return 0; // never have col less than default width - int blankColSpace = curColWidth; - for (int r = 0; r < Rows.Count; r++) - { - using (StepRTB srtb = new StepRTB()) - { - CellRange cr = GetMergedRange(r, Col); - srtb.Rtf = GetCellRTFString(cr.r1, cr.c1); - if (Col >= cr.c1 && Col <= cr.c2) - { - int cellWidth = GetCellWidth(r, Col); - //srtb.Width = cellWidth; - srtb.AdjustWidthForContent(); - //Application.DoEvents(); - //int mergeCellHeightNLines = cellHeight / (Rows.DefaultSize - 3); - //int dataHeight = (cr.UserData == null) ? cellHeight : (int)cr.UserData; - //int ud = dataHeight / (Rows.DefaultSize - 3); - //if (cellHeight < dataHeight) - // Console.WriteLine("r {0}, c {1}, cell{2}, data{3}", Row, c, cellHeight, dataHeight); - //blankColSpace = Math.Min(blankColSpace, Math.Max(0, cellWidth - srtb.MaxTextWidth)); - blankColSpace = Math.Min(blankColSpace, Math.Max(0, cellWidth - srtb.Width)); - } - } - } - //Console.WriteLine("BlankRowSpace {0}", blankRowSpace); - return blankColSpace; - } - //private bool CanReduceRow() - //{ - // int curRowHeight = (Rows[Row].Height == -1) ? Rows.DefaultSize - 3 : Rows[Row].Height - 3; - // int curRowHeightNLines = curRowHeight / (Rows.DefaultSize - 3); - // bool bReduce = (curRowHeight > (Rows.DefaultSize - 3)); - // if (bReduce) - // { - // for (int c = 0; c < Cols.Count; c++) - // { - // CellRange cr = GetMergedRange(Row, c); - // if (Row >= cr.r1 && Row <= cr.r2) - // { - // int mergeCellHeightNLines = GetCellHeight(Row, c) / (Rows.DefaultSize - 3); - // //int ud = (cr.UserData == null) ? 0 : (int)cr.UserData; - // //if ((c != Col) && curRowHeight <= ud && ud >= mergeCellHeight) - // // bReduce = false; - // int ud = ((cr.UserData == null) ? 0 : (int)cr.UserData) / (Rows.DefaultSize - 3); - // if ((c != Col) && curRowHeightNLines <= ud && ud >= mergeCellHeightNLines) - // bReduce = false; - // } - // } - // } - // //Console.WriteLine("canreduce {0}, {1}", Row, bReduce); - // return bReduce; - //} - //private int GetMaxRowHeight() - //{ - // int maxRTFHeight = _minRowSplitHeight; //Rows.DefaultSize;// the smallest a row can be - // Console.WriteLine("================================================================="); - // for (int c = 0; c < Cols.Count; c++) - // { - // CellRange cr = GetMergedRange(Row, c);//GetCellRange(Row, c); - // maxRTFHeight = Math.Max(maxRTFHeight, (int)cr.UserData); - // if (c == 0) - // Console.WriteLine("Height in Row[{0}] = {1}", Row, Rows[Row].Height); - // Console.WriteLine("UserData Cell[{0},{1}] = {2}", Row, c, cr.UserData); - // } - // return maxRTFHeight; - //} - - private bool IsInMergeRange(int row, int col) - { - //foreach (CellRange cr in this.MergedRanges) - //{ - // if (cr.Contains(row, col)) - // return true; // in a merged range - //} - CellRange cr = GetMergedRange(row, col); - return (cr.r1 == row && cr.c1 == col); - } - private bool _ReadingXml = false; - - public bool ReadingXml - { - get { return _ReadingXml; } - } - private static Regex _ReplaceVESymbFix = new Regex(@"({\\f[0-9]+[^ ]* )(VESymbFix)(;})"); - private static Regex _ReplaceArialUnicodeMS = new Regex(@"({\\f[0-9]+[^ ]* )(Arial Unicode MS)(;})"); - private static Regex _ReplaceTextFont = new Regex(@"({\\f[0-9]+[^ ]* )(?((?!VESymbFix)(?!Arial Unicode MS))([^;]*)|(!!!!))(;})"); - public void LoadGrid(ItemInfo itemInfo) - { - _MyItemInfo = itemInfo; - string str = itemInfo.MyContent.MyGrid.Data; - VE_Font vefont = _MyItemInfo.GetItemFont(); - FontFamily ff = StepRTB.MyFontFamily ?? vefont.WindowsFont.FontFamily; // TODO: Does not change fixed font. - if (StepRTB.MySymbolFontName != "VESymbFix") - str = _ReplaceVESymbFix.Replace(str, "$1" + StepRTB.MySymbolFontName + "$3"); - if (StepRTB.MySymbolFontName != "Arial Unicode MS") - str = _ReplaceArialUnicodeMS.Replace(str, "$1" + StepRTB.MySymbolFontName + "$3"); - str = _ReplaceTextFont.Replace(str, "$1" + ff.Name + "$4"); - // To prevent scroll bars from being flashed on/off - // - save an image of the current grid - // - set Visible to false - // - draw the saved grid image - // - do the the load/reload of the grid - // - set Visible back to true. - System.Drawing.Image img = this.CreateImage(); - Visible = false; - if (Parent is GridItem) - { - using (Graphics gr = (Parent as GridItem).CreateGraphics()) - { - gr.DrawImage(img, Left, Top); - } - } - Clear(); - MergedRanges.Clear(); - _ReadingXml = true; - //Console.WriteLine("LoadGrid - Before ReadXML"); - using (StringReader sr = new StringReader(str)) - { - ReadXml(sr); - this.BorderStyle = C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None; - sr.Close(); - } - //Console.WriteLine("LoadGrid - After ReadXML"); - _ReadingXml = false; - Select(-1, -1); // this keeps the cell from being selected when the grid is first displayed - Visible = true; - } - private void SetupGrid(int numrows, int numcols) //C1FlexGrid NewGrid() - { - // setup the default size of each cell in the table/grid - this.Cols.DefaultSize = (int) DPI; - this.Rows.DefaultSize = 20; - - // setup the number of rows and columns - this.Rows.Count = numrows; - this.Cols.Count = numcols; - - // make all the cell editable - this.Rows.Fixed = 0; - this.Cols.Fixed = 0; - - this.DrawMode = DrawModeEnum.OwnerDraw; - this.ScrollBars = ScrollBars.None; - - // grid styles - this.Styles.EmptyArea.BackColor = Color.Transparent; - this.Styles.EmptyArea.Border.Style = BorderStyleEnum.None; - this.Styles.Normal.Border.Color = Color.Black; - this.Styles.Normal.TextAlign = C1.Win.C1FlexGrid.TextAlignEnum.LeftTop; - - //SetupCellStyles(); - - this.FocusRect = FocusRectEnum.Solid; - this.Styles.Highlight.BackColor = Color.LightCyan; - this.Styles.Highlight.ForeColor = Color.Black; - this.Styles.Focus.BackColor = Color.LightCyan; - this.HighLight = HighLightEnum.WithFocus; - - _DefaultCellBackgroundcolor = this.StyleBackColor; - _DefaultFixedBackgroundColor = this.Styles.Fixed.BackColor; - this.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom; - - this.AllowResizing = C1.Win.C1FlexGrid.AllowResizingEnum.Both; - - - _tableCellEditor = new TableCellEditor(this); - _tableCellEditor.HeightChanged += new StepRTBEvent(_tableCellEditor_HeightChanged); - _clpbrdCpyPste = new TableClipBoardFuncts(); - _SpellChecker = _tableCellEditor.SpellCheckerInstance; - - this.AfterResizeRow += new C1.Win.C1FlexGrid.RowColEventHandler(this.Grid_AfterResize); - this.StartEdit += new C1.Win.C1FlexGrid.RowColEventHandler(this._StartEdit); - this.AfterEdit += new C1.Win.C1FlexGrid.RowColEventHandler(this._AfterEdit); - this.AfterScroll += new C1.Win.C1FlexGrid.RangeEventHandler(this._AfterScroll); - this.AfterResizeColumn += new C1.Win.C1FlexGrid.RowColEventHandler(this.Grid_AfterResize); - this.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this._KeyPress); - this.OwnerDrawCell += new OwnerDrawCellEventHandler(this.Grid_OwnerDrawCell); - this.LeaveCell += new EventHandler(VlnFlexGrid_LeaveCell); - - this.KeyDown += new KeyEventHandler(VlnFlexGrid_KeyDown); - this.KeyUp +=new KeyEventHandler(VlnFlexGrid_KeyUp); - TableCellEditor.EditMode = TableCellEditor.Visible; // need to comment out for compile for only jsj - 07FEB2011 - this.MouseDown += new MouseEventHandler(VlnFlexGrid_MouseDown); - } - - private bool _FirstEntry = false; - - public bool FirstEntry - { - get { return _FirstEntry; } - set { _FirstEntry = value; } - } - - void VlnFlexGrid_MouseDown(object sender, MouseEventArgs e) - { - int left = 0; - int top = 0; - int col = 0; - int row = 0; - int strow = Selection.r1; - int stcol = Selection.c1; - int erow = Selection.r2; - int ecol = Selection.c2; - while (e.X > left && col < Cols.Count) - { - left += Cols[col].Width > 0 ? Cols[col].Width : Cols.DefaultSize; - col++; - } - while (e.Y > top && row < Rows.Count) - { - top += Rows[row].Height > 0 ? Rows[row].Height : Rows.DefaultSize; - row++; - } - col--; - row--; - //Console.WriteLine("Mousedown Selection {0}", Selection); - //Console.WriteLine("Mousedown Row, Col [{0},{1}]", row, col); - erow = Math.Max(erow, row); - ecol = Math.Max(ecol, col); - if (_FirstEntry) - Select(row, col); - else - Select(strow, stcol, erow, ecol); - _FirstEntry = false; - } - - - - void _tableCellEditor_HeightChanged(object sender, EventArgs args) - { - if (_tableCellEditor._initializingEdit || !_tableCellEditor.Visible) return; - int curHeight = GetCellHeight(Row, Col);//(Rows[Row].Height == -1) ? Rows.DefaultSize : Rows[Row].Height; - CellRange cr = GetMergedRange(Row, Col); - int oH = cr.UserData == null ? curHeight : (int)cr.UserData; - int nH = _tableCellEditor.Height; //.ContentsRectangle.Height; - int Hadj = (nH - curHeight);//oH); - cr.UserData = _tableCellEditor.Height; //.ContentsRectangle.Height; - //int cellHeight = GetCellHeight(Row, Col); - //int cellheightNLines = cellHeight / (Rows.DefaultSize - 3); - //int nHNLines = nH / (Rows.DefaultSize - 3); - if (Hadj != 0) - { - //if (Hadj > 0 && cellHeight <= oH) - //if (Hadj > 0 && cellheightNLines < nHNLines) - // curHeight += (Rows.DefaultSize - 3); - //if (Hadj < 0 && CanReduceRow()) - // curHeight -= (Rows.DefaultSize - 3); - int blankRowSpace = BlankRowSpace(); - if (Hadj < 0) - Hadj = -Math.Min(-Hadj, blankRowSpace); - //if (Hadj > 0) - // Console.WriteLine("r {0}, nh {1}, curh{2}", Row, nH, curHeight); - if (Hadj != 0) - { - int newHeight = Hadj + ((Rows[Row].Height < 0) ? Rows.DefaultSize : Rows[Row].Height); - //Rows[Row].Height += Hadj;//= curHeight; - Rows[Row].Height = newHeight; - AdjustGridControlSize(); - } - } - } - void VlnFlexGrid_KeyUp(object sender, KeyEventArgs e) - { - if (e.Control) - { - if (e.Alt) - { - switch (e.KeyCode) - { - case Keys.M: - OnOpenAnnotations(this, new EventArgs()); - e.Handled = true; - break; - default: - break; - } - } - } - } - void VlnFlexGrid_KeyDown(object sender, KeyEventArgs e) - { - switch (e.KeyCode) - { - case Keys.Left: - if (e.Shift) return; - _tableCellEditor.StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlLeft : E_ArrowKeys.Left); - e.Handled = true; - break; - case Keys.Up: - if (e.Shift) return; - _tableCellEditor.StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlUp : E_ArrowKeys.Up); - e.Handled = true; - break; - case Keys.Right: - if (e.Shift) return; - if (IsRoTable) Select(Rows.Count - 1, Cols.Count - 1); - _tableCellEditor.StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlRight : E_ArrowKeys.Right); - e.Handled = true; - break; - case Keys.Down: - if (e.Shift) return; - if (IsRoTable) Select(Rows.Count - 1, 0); - _tableCellEditor.StepRTB_ArrowPressed(e.Control ? E_ArrowKeys.CtrlDown : E_ArrowKeys.Down); - e.Handled = true; - break; - case Keys.Enter: - //if (e.Shift) return; - //Select(Rows.Count - 1, 0); - //_tableCellEditor.StepRTB_ArrowPressed(E_ArrowKeys.Down); - //e.Handled = true; - if (!e.Control && !e.Shift && !e.Alt) - { - OnEnterKeyPressed(sender, e); - } - break; - } - } - - void VlnFlexGrid_LeaveCell(object sender, EventArgs e) - { - //CellStyle csd = this.CursorCell.StyleDisplay; - //CellStyle cs = this.GetCellRange(Row, Col).Style; - //if (cs != null) - //{ - // Console.WriteLine("LeaveCell Style = {0}", cs.Name); - // Console.WriteLine("LeaveCell StyleDisplay = {0}", csd.Name); - // cs.ForeColor = Color.Black; - //} - CellStyle cs = this.Styles["Focus"]; - cs.ForeColor = Color.Black; - cs = this.Styles["Highlight"]; - cs.ForeColor = Color.Black; - } - - //void VlnFlexGrid_LeaveEdit(object sender, RowColEventArgs e) - //{ - // //Console.WriteLine("LeaveEdit Style = {0}", this.GetCellRange(e.Row, e.Col).Style.Name); - // this.GetCellRange(e.Row, e.Col).Style.ForeColor = Color.Black; - //} - private void Grid_OwnerDrawCell(object sender, C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e) - { - using (RTF _rtf = new RTF()) - { - // use nearest solid color - // (the RTF control doesn't dither, and doesn't support transparent backgrounds) - Color solid = e.Graphics.GetNearestColor(e.Style.BackColor); - DPI = e.Graphics.DpiX; - if (e.Style.BackColor != solid) - e.Style.BackColor = solid; - - // check whether the cell contains RTF - string rtfText = this.GetDataDisplay(e.Row, e.Col).Replace(@"\~", @"\u160?"); - GridItem gi = Parent as GridItem; - if (gi != null) - { - DisplayText dt = new DisplayText(gi.MyItemInfo, rtfText, true); - rtfText = dt.StartText; - } - // it does, so draw background - e.DrawCell(DrawCellFlags.Background); - if (rtfText.StartsWith(@"{\rtf")) - { - // Please add a comment if this value needs to be changed - _rtf.Rtf = rtfText; - // draw the RTF text - if (e.Bounds.Width > 0 && e.Bounds.Height > 0) - { - _rtf.Width = e.Bounds.Width - 1; // This has also been -3 which matchs the rener command - CellRange cr = GetMergedRange(e.Row, e.Col); - cr.UserData = _rtf.Height; - int hAdjust = 0; - int hDiff = e.Bounds.Height - _rtf.Height; - if (hDiff < 0) - { - Rows[e.Row].Height = _rtf.Height + 4; - AdjustGridControlSize(); - hDiff = 0; - } - if (e.Style != null) - { - switch (e.Style.TextAlign) - { - case TextAlignEnum.CenterBottom: - case TextAlignEnum.GeneralBottom: - case TextAlignEnum.LeftBottom: - case TextAlignEnum.RightBottom: - hAdjust = hDiff; - break; - case TextAlignEnum.CenterCenter: - case TextAlignEnum.GeneralCenter: - case TextAlignEnum.LeftCenter: - case TextAlignEnum.RightCenter: - hAdjust = hDiff / 2; - break; - default: - break; - } - } - if (IsRoTable) - { - _rtf.ForeColor = Color.Red; - } - else - { - _rtf.ForeColor = e.Style.ForeColor; - } - _rtf.BackColor = e.Style.BackColor; - _rtf.Render(e.Graphics, new Rectangle(e.Bounds.X + 1, e.Bounds.Y + hAdjust, e.Bounds.Width - 3, e.Bounds.Height)); - } - } - else - _rtf.Text = rtfText; - - // spell check unless (we're just measuring) - if (!e.Measuring) - { - CharRangeList errors = SpellChecker.CheckText(_rtf.Text);//(text); - // underline errors - if (errors.Count > 0) - { - CharacterRange[] ranges = new CharacterRange[1]; - ranges[0] = new CharacterRange(0, 1); - Pen pn = new Pen(Color.Green, 2); - StringFormat sf = new StringFormat(e.Style.StringFormat); - sf.SetMeasurableCharacterRanges(ranges); - Rectangle rc = e.Style.GetTextRectangle(e.Bounds, null); - Region[] rgns = e.Graphics.MeasureCharacterRanges(_rtf.Text, e.Style.Font, rc, sf);//(text, e.Style.Font, rc, sf); - float btm = rgns[0].GetBounds(e.Graphics).Bottom; - float top = rgns[0].GetBounds(e.Graphics).Top; - int adj = (int)(btm - top); - for (int i = 0; i < errors.Count; i++) - { - // The positioning of the the squigle line does not account for mixed font sizes - // should we support having mixed fonts in the table cells, we will need to add - // logic to support it. - Point ptStart = _rtf.GetPositionFromCharIndex(errors[i].Start); - Point ptEnd = _rtf.GetPositionFromCharIndex(errors[i].Start + errors[i].Length); - SquigleLine(e.Graphics, e.Bounds.Left + ptStart.X, e.Bounds.Top + ptStart.Y + adj, e.Bounds.Left + ptEnd.X); - } - } - } - // and draw border last - //e.DrawCell(DrawCellFlags.Border); - // This can be used to draw more specific borders - DrawCellBorder(e); - // we're done with this cell - e.Handled = true; - } - } - - private void SquigleLine(Graphics graphics, int x1, int y1, int x2) - { - for (Point pt = new Point(x1, y1); pt.X + 2 < x2; pt.X += 4) - { - //Console.WriteLine("squiggle point {0}", pt); - graphics.DrawLines(Pens.Red, new Point[] - { - new Point(pt.X, pt.Y), - new Point(pt.X + 2, pt.Y - 2), - new Point(pt.X + 4, pt.Y) - }); - } - } - private static Color _BorderColor = Color.Black; - public static Color BorderColor - { - get { return VlnFlexGrid._BorderColor; } - set { VlnFlexGrid._BorderColor = value; } - } - private void DrawCellBorder(C1.Win.C1FlexGrid.OwnerDrawCellEventArgs e) - { - Graphics grGrid =e.Graphics; - Rectangle bounds = e.Bounds; - int row = e.Row; - int col = e.Col; - CellRange cr = GetMergedRange(row, col); - GridLinePattern topSide = MyBorders.HorizontalLines[cr.r1,cr.c1]; - GridLinePattern rightOfTopSide = cr.c2 == Cols.Count - 1 ? GridLinePattern.None : MyBorders.HorizontalLines[cr.r1, cr.c2 + 1]; - GridLinePattern leftOfTopSide = cr.c1 == 0? GridLinePattern.None : MyBorders.HorizontalLines[cr.r1, cr.c1 - 1]; - GridLinePattern leftSide = MyBorders.VerticalLines[cr.r1, cr.c1]; - GridLinePattern aboveLeftSide = cr.r1 == 0 ? GridLinePattern.None : MyBorders.VerticalLines[cr.r1 - 1, cr.c1]; - GridLinePattern belowLeftSide = cr.r2 == Rows.Count - 1 ? GridLinePattern.None : MyBorders.VerticalLines[cr.r2 + 1, cr.c1]; - GridLinePattern bottomSide = MyBorders.HorizontalLines[cr.r2+1, cr.c2]; - GridLinePattern rightOfBottomSide = cr.c2 == Cols.Count - 1 ? GridLinePattern.None : MyBorders.HorizontalLines[cr.r2 + 1, cr.c2 + 1]; - GridLinePattern rightSide = MyBorders.VerticalLines[cr.r2, cr.c2+1]; - GridLinePattern belowRightSide = cr.r2 == Rows.Count - 1 ? GridLinePattern.None : MyBorders.VerticalLines[cr.r2 + 1, cr.c2 + 1]; - GridLinePattern none = GridLinePattern.None; - int x1 = bounds.Left; - int y1 = bounds.Top; - int x2 = bounds.Right - 1; - int y2 = bounds.Bottom - 1; - GridItem myGridItem = Parent as GridItem; - Panel myPanel = Parent as Panel; - if (myGridItem == null && myPanel == null) return; - if (row == 0 || col == 0) // Top or Left Edge - Draw on parent - { - using (Graphics grParent = myGridItem != null ? myGridItem.CreateGraphics() : myPanel.CreateGraphics()) - { - if (row == 0) - { - if (col == 0) - { - // Draw the top left intersection - DrawIntersection(grParent, Left - 3, Top-1, none, topSide,leftSide, none); - } - // Draw the top right intersection - DrawIntersection(grParent, Left +x2 - 2, Top-1, none, rightOfTopSide,rightSide,topSide); - // Draw the top side on the parent - DrawLine(grParent, topSide, Left + x1, Top + y1 - 1, Left + x2-3, Top + y1 -1); - } - if (col == 0) - { - // Draw the bottom left intersection - DrawIntersection(grParent, Left -3, Top + y2, leftSide,bottomSide,belowLeftSide,none); - // Draw the left side - DrawLine(grParent, leftSide, Left + x1 - 1, Top + y1, Left + x1 - 1, Top + y2-3); - } - } - } - // Draw the bottom right intersection - DrawIntersection(grGrid, x2 - 2, y2, rightSide, rightOfBottomSide, belowRightSide, bottomSide); - // Draw the bottom side - DrawLine(grGrid, bottomSide, x1, y2, x2-3, y2); - // Draw the right side - DrawLine(grGrid, rightSide, x2, y1, x2, y2-3); - } - private static void DrawLine(Graphics gr, GridLinePattern pattern, int x1, int y1, int x2, int y2) - { - if (pattern == GridLinePattern.None) return; - Pen pn = VlnBorders.LinePen(pattern, BorderColor); - DrawLine(gr, pn, pattern, x1, y1, x2, y2); - } - private static void DrawLine(Graphics gr, Pen pn, int x1, int y1, int x2, int y2) - { - DrawLine(gr, pn, GridLinePattern.Single, x1, y1, x2, y2); - } - private static void DrawLine(Graphics gr, Pen pn, GridLinePattern pattern, int x1, int y1, int x2, int y2) - { - int dx = 0; - int dy = 0; - int dblx = 0; - int dbly = 0; - int xThick = 0; - int yThick = 0; - if (x1 == x2) // Vertical Line - { - dx = (int) (-pn.Width / 2); - dblx = -2; - if (pn.Width > 2) - yThick = 1; - } - else // Horizontal Line - { - dy = (int) (-pn.Width / 2); - dbly = -2; - if (pn.Width > 2) - xThick = 1; - } - gr.DrawLine(pn, x1 + dx, y1 + dy, x2 + dx + xThick, y2 + dy + yThick); - if(pattern == GridLinePattern.Double) - gr.DrawLine(pn, x1 + dx +dblx, y1 + dy + dbly, x2 + dx+dblx, y2 + dy+dbly); - } - private static void DrawIntersection(Graphics gr, int x, int y, GridLinePattern up, GridLinePattern right, GridLinePattern down, GridLinePattern left) - { - if (up == GridLinePattern.Double) - if (right == GridLinePattern.Double) - if (down == GridLinePattern.Double) - if (left == GridLinePattern.Double) DrawIntersectionAllDoubles(gr, x, y); - else DrawDrawIntersection3Doubles_URD(gr, x, y); - else // Down is not double - if (left == GridLinePattern.Double) DrawDrawIntersection3Doubles_URL(gr, x, y); - else DrawDrawIntersection2Doubles_UR(gr, x, y, down, left); - else // right is not double - if (down == GridLinePattern.Double) - if (left == GridLinePattern.Double) DrawDrawIntersection3Doubles_UDL(gr, x, y); - else DrawDrawIntersection2Doubles_UD(gr, x, y, right, left); - else // Down is not double - if (left == GridLinePattern.Double) DrawIntersection2Doubles_UL(gr, x, y, right, down); - else DrawIntersectionOneDoubleOrLess(gr, x, y, up, right, down, left); - else - if (right == GridLinePattern.Double) - if (down == GridLinePattern.Double) - if (left == GridLinePattern.Double) DrawDrawIntersection3Doubles_RDL(gr, x, y); - else DrawDrawIntersection2Doubles_RD(gr, x, y, up, left); - else // Down is not double - if (left == GridLinePattern.Double) DrawDrawIntersection2Doubles_RL(gr, x, y, up, down); - else DrawIntersectionOneDoubleOrLess(gr, x, y, up, right, down, left); - else - if (down == GridLinePattern.Double) - if (left == GridLinePattern.Double) DrawDrawIntersection2Doubles_DL(gr, x, y, up, right); - else DrawIntersectionOneDoubleOrLess(gr, x, y, up, right, down, left); - else // These both use the same function with the same parameters - if (left == GridLinePattern.Double) DrawIntersectionOneDoubleOrLess(gr, x, y, up, right, down, left); - else DrawIntersectionOneDoubleOrLess(gr, x, y, up, right, down, left); - } - private static Pen pnDouble = VlnBorders.LinePen(GridLinePattern.Double, BorderColor); - private static Pen pnThick = VlnBorders.LinePen(GridLinePattern.Thick, BorderColor); - private static void DrawIntersectionAllDoubles(Graphics gr, int x, int y) - { - DrawLine(gr, pnDouble, x-1, y, x, y); - DrawLine(gr, pnDouble, x, y - 2, x, y - 3); - DrawLine(gr, pnDouble, x + 2, y - 2, x + 3, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y + 1); - } - private static void DrawDrawIntersection3Doubles_URD(Graphics gr, int x, int y) - { - DrawLine(gr, pnDouble, x , y, x, y - 3); - DrawLine(gr, pnDouble, x + 2, y - 2, x + 3, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y + 1); - } - private static void DrawDrawIntersection3Doubles_URL(Graphics gr, int x, int y) - { - DrawLine(gr, pnDouble, x, y, x + 2, y); - DrawLine(gr, pnDouble, x -1, y - 2, x , y - 2); - DrawLine(gr, pnDouble, x + 2, y - 2, x + 3, y - 2); - } - private static void DrawDrawIntersection3Doubles_UDL(Graphics gr, int x, int y) - { - DrawLine(gr, pnDouble, x-1, y, x, y); - DrawLine(gr, pnDouble, x , y - 2, x , y - 3); - DrawLine(gr, pnDouble, x + 2, y-3, x + 2, y); - } - private static void DrawDrawIntersection3Doubles_RDL(Graphics gr, int x, int y) - { - DrawLine(gr, pnDouble, x-1, y, x, y); - DrawLine(gr, pnDouble, x, y - 2, x + 2, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y + 1); - } - private static void DrawDrawIntersection2Doubles_UR(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 3, y); - else - { - DrawLine(gr, pnDouble, x, y, x + 2, y); - DrawLine(gr, pnDouble, x , y, x , y - 2); - DrawLine(gr, pnDouble, x + 2, y - 2, x + 3, y - 2); - } - } - private static void DrawDrawIntersection2Doubles_UD(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 3, y); - else - { - DrawLine(gr, pnDouble, x, y, x, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y - 2); - } - } - private static void DrawIntersection2Doubles_UL(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 3, y); - else - { - DrawLine(gr, pnDouble, x, y, x + 2, y); - DrawLine(gr, pnDouble, x , y - 2, x, y - 3); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y - 2); - } - } - private static void DrawDrawIntersection2Doubles_RD(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 3, y); - else - { - DrawLine(gr, pnDouble, x, y, x, y - 2); - DrawLine(gr, pnDouble, x, y - 2, x + 2, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y + 1); - } - } - private static void DrawDrawIntersection2Doubles_RL(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 2, y); - else - { - DrawLine(gr, pnDouble, x, y, x + 2, y); - DrawLine(gr, pnDouble, x, y - 2, x + 2, y - 2); - } - } - private static void DrawDrawIntersection2Doubles_DL(Graphics gr, int x, int y, GridLinePattern lp1, GridLinePattern lp2) - { - if (lp1 == GridLinePattern.Thick && lp2 == GridLinePattern.Thick) - DrawLine(gr, pnThick, x, y, x + 2, y); - else - { - DrawLine(gr, pnDouble, x-1, y, x, y); - DrawLine(gr, pnDouble, x, y - 2, x + 2, y - 2); - DrawLine(gr, pnDouble, x + 2, y, x + 2, y - 2); - } - } - private static void DrawIntersectionOneDoubleOrLess(Graphics gr, int x, int y, - GridLinePattern up, GridLinePattern right, GridLinePattern down, GridLinePattern left) - { - Pen pnUp = VlnBorders.LinePen(up, BorderColor); - Pen pnLeft = VlnBorders.LinePen(left, BorderColor); - int widthUpDown = Math.Max(VlnBorders.LineWidth0(up), VlnBorders.LineWidth0(down)); - int heightLeftRight = Math.Max(VlnBorders.LineWidth0(left), VlnBorders.LineWidth0(right)); - if (heightLeftRight > 0 && widthUpDown > 0) - { - Pen pn = new Pen(BorderColor, widthUpDown); - if(heightLeftRight > 1) - DrawLine(gr, pn, x + 2, y + 1 - heightLeftRight, x + 2, y); - else if(up == GridLinePattern.None) // Work around to set a pixel (actually set two) - DrawLine(gr, pn, x + 2, y, x + 2, y + 1); - } - if (left != GridLinePattern.None) - { - DrawLine(gr, pnLeft, x, y, x + 2 - widthUpDown, y); - if (left == GridLinePattern.Double) - DrawLine(gr, pnLeft, x, y - 2, x + 2 - widthUpDown, y - 2); - } - if (up != GridLinePattern.None) - { - DrawLine(gr, pnUp, x + 2, y - 3 , x + 2, y +1 - heightLeftRight); - if (up == GridLinePattern.Double) - DrawLine(gr, pnUp, x, y - 3, x, y +1 - heightLeftRight); - } - } - #endregion //Grid Initialize - #region Grid and Cell Styles - public void ChangeBackgroundColor(string bckgndColor) - { - CellRange cr = this.Selection; - if (!bckgndColor.EndsWith(";")) - bckgndColor+=";"; - string strBckgndColor = string.Format("BackColor:{0}", bckgndColor); - - for (int rw = cr.r1; rw <= cr.r2; rw++) - for (int cl = cr.c1; cl <= cr.c2; cl++) - { - CellRange tmp = this.GetCellRange(rw, cl, rw, cl); - string StyleName = string.Format("R{0}C{1}Style", rw, cl); - CellStyle cs = this.Styles.Add(StyleName, tmp.Style); - cs.ParseString(strBckgndColor); - tmp.Style = cs; - } - } - - public void ToggleCellTextAlignment() - { - // only used in test program - CellRange cr = this.Selection; - using (StepRTB srtb = new StepRTB()) - { - srtb.Rtf = this.GetCellRTFString(cr.r1, cr.c1); - - srtb.SelectAll(); - int align = (int)srtb.SelectionAlignment; - align = (align + 1) % 3; - - srtb.SelectionAlignment = (HorizontalAlignment)align; - this.PutCellRTFString(cr.r1, cr.c1, srtb.Rtf); - } - } - - public void RTFTextAlignment(CellRange cr, HorizontalAlignment ha) - { - using (StepRTB srtb = new StepRTB()) - { - for (int rw = cr.r1; rw <= cr.r2; rw++) - for (int cl = cr.c1; cl <= cr.c2; cl++) - { - srtb.Rtf = this.GetCellRTFString(rw, cl); - srtb.SelectAll(); - srtb.SelectionAlignment = ha; - this.PutCellRTFString(rw, cl, srtb.Rtf); - } - } - } - - - public void SetTableBorder(C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum border) - { - this.BorderStyle = border; - this.AdjustGridControlSize(); - } - public void ChangeCellAlign(CellRange cr, TextAlignEnum newAlign) - { - for (int rw = cr.r1; rw <= cr.r2; rw++) - for (int col = cr.c1; col <= cr.c2; col++) - { - CellRange tmp = this.GetCellRange(rw, col, rw, col); - string StyleName = string.Format("R{0}C{1}Style", rw, col); - CellStyle cs = null; - if (Styles.Contains(StyleName)) - cs = Styles[StyleName]; - else - cs = this.Styles.Add(StyleName, tmp.Style); - cs.TextAlign = newAlign; - tmp.Style = cs; - } - } - public void ChangeCellBorder(CellRange cr, BorderStyleEnum newBorder) - { - for (int rw = cr.r1; rw <= cr.r2; rw++) - for (int col = cr.c1; col <= cr.c2; col++) - { - CellRange tmp = this.GetCellRange(rw, col, rw, col); - string StyleName = string.Format("R{0}C{1}Style", rw, col); - CellStyle cs = null; - if (Styles.Contains(StyleName)) - cs = Styles[StyleName]; - else - cs = this.Styles.Add(StyleName, tmp.Style); - cs.Border.Style = newBorder; - tmp.Style = cs; - } - } - public void ListStyles() - { - for (int r = 0; r < Rows.Count; r++) - for (int c = 0; c < Cols.Count; c++) - { - CellRange cr = GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - if (cr.Style != null) Console.WriteLine("{0}, {1}, {2}, {3}", r, c, cr.Style.Name, cr.Style.BackColor); - } - } - } - //public void VerticalCenterText() - //{ - // StepRTB myStepRTB = new StepRTB(); - // CellRange selRange = this.Selection; - // for (int r = selRange.r1; r <= selRange.r2; r++) - // for (int c = selRange.c1; c <= selRange.c2; c++) - // { - // CellRange mr = this.GetMergedRange(r, c); - // if (mr.r1 == r) - // { - // int editHeight = (int)mr.UserData; - // int cellHeight = GetCellHeight(mr.r1, mr.c1); - // if (editHeight < cellHeight) - // { - // myStepRTB.Rtf = (string)mr.Data; - // RTBAPI.SetSpaceBefore(myStepRTB, (cellHeight - editHeight) / 2); - // PutCellRTFString(mr.r1, mr.c1, myStepRTB.Rtf); - // } - // } - // } - //} - //public void VerticalTopText() - //{ - // StepRTB myStepRTB = new StepRTB(); - // CellRange selRange = this.Selection; - // for (int r = selRange.r1; r <= selRange.r2; r++) - // for (int c = selRange.c1; c <= selRange.c2; c++) - // { - // CellRange mr = this.GetMergedRange(r, c); - // if (mr.r1 == r) - // { - // myStepRTB.Rtf = (string)mr.Data; - // RTBAPI.SetSpaceBefore(myStepRTB, 0); - // PutCellRTFString(mr.r1, mr.c1, myStepRTB.Rtf); - // } - // } - //} - //public void VerticalBottomText() - //{ - // StepRTB myStepRTB = new StepRTB(); - // CellRange selRange = this.Selection; - // for (int r = selRange.r1; r <= selRange.r2; r++) - // for (int c = selRange.c1; c <= selRange.c2; c++) - // { - // CellRange mr = this.GetMergedRange(r, c); - // if (mr.r1 == r) - // { - // int editHeight = (int)mr.UserData; - // int cellHeight = GetCellHeight(mr.r1, mr.c1); - // if (editHeight < cellHeight) - // { - // myStepRTB.Rtf = (string)mr.Data; - // RTBAPI.SetSpaceBefore(myStepRTB, (cellHeight - editHeight)); - // PutCellRTFString(mr.r1, mr.c1, myStepRTB.Rtf); - // } - // } - // } - //} - - //public void SetupCellStyles() - //{ - // //CellStyle cs; - - // //cs = this.Styles.Add("Dotted"); - // //cs.Border.Style = BorderStyleEnum.Dotted; - // //cs = this.Styles.Add("Double"); - // //cs.Border.Style = BorderStyleEnum.Double; - // //cs = this.Styles.Add("Fillet"); - // //cs.Border.Style = BorderStyleEnum.Fillet; - // //cs = this.Styles.Add("Flat"); - // //cs.Border.Style = BorderStyleEnum.Flat; - // //cs = this.Styles.Add("Groove"); - // //cs.Border.Style = BorderStyleEnum.Groove; - // //cs = this.Styles.Add("Inset"); - // //cs.Border.Style = BorderStyleEnum.Inset; - // //cs = this.Styles.Add("None"); - // //cs.Border.Style = BorderStyleEnum.None; - // //cs = this.Styles.Add("Raised"); - // //cs.Border.Style = BorderStyleEnum.Raised; - // //cs = this.Styles.Add("CenterRight"); - // //cs.TextAlign = TextAlignEnum.RightCenter; //.LeftCenter; // this is being ignored - probably due to RTF conversion - // //cs = this.Styles.Add("Yellow"); - // //cs.BackColor = Color.Yellow; - // //cs = this.Styles.Add("Margins"); - // //cs.Margins.Bottom = 5; - // //cs.Margins.Top = 10; - // //cs.Margins.Left = 15; - // //cs.Margins.Right = 20; - //} - #endregion //Grid and Cell Styles - - #region Grid Size Adjustments - - /// - /// Adjust the grid control size based on the cell sizes. - /// - public void AdjustGridControlSize() - { - if (Parent is GridItem ? (Parent as GridItem).Initializing : false ) return; - int difW = this.Width - this.ClientSize.Width; - int difH = this.Height - this.ClientSize.Height; - int wid = 0; - if (this != null) - { - foreach (C1.Win.C1FlexGrid.Column col in this.Cols) - wid += (col.Width >= 0) ? col.Width : this.Cols.DefaultSize; - - int height = 0; - foreach (C1.Win.C1FlexGrid.Row row in this.Rows) - //height += (row.Height >= 0) ? row.Height : this.Rows.DefaultSize + 2; - height += (row.Height >= 0) ? row.Height : this.Rows.DefaultSize; - - this.Size = new Size(wid + difW, height + difH); - } - } - - public void ConvertTextCellToRTF(int r, int c) - { - using (StepRTB trtb = new StepRTB()) - { - string tstr = null; - bool dummyCharWidth = false; - bool AllowWidthShrink = false; - trtb.SetTableGridCellRTFPrefix(this.Font); - trtb.Clear(); - tstr = (string)this[r, c]; - trtb.Font = this.Font; - if (tstr != null && tstr.Length > 0) - { - string tsave = tstr; - // regular text has special characters to toggle Bold, Underline, and Italics - // we need to subtract the width of these characters (allow column/row to shrink) - //AllowWidthShrink = RemoveBoldUlineItalicChars(trtb.Rtf); - AllowWidthShrink = tstr.Contains("#Link:"); - // this will convert the special characters for Bold, Underline, and Italics - // into RTF commands - //trtb.Rtf = trtb.RtfPrefix + ConvertTableText(trtb.Rtf) + "}"; - //string fromRTF = trtb.Rtf; - //string prefix = trtb.RtfPrefix; - //if (tstr.Contains("#Link:")) prefix += @"{\colortbl ;\red255\green0\blue0;}"; - //if (tstr.Contains("#Link:")) - // Console.WriteLine("here"); - //string jText = trtb.RtfPrefix + ConvertTableText(tstr) + @"\par}"; - //trtb.Rtf = jText; - trtb.Rtf = trtb.RtfPrefix + ConvertTableText(tstr) + @"\par}"; - //string fromStr = trtb.Rtf; - //if (fromRTF.Contains("SimSun")) - // Console.WriteLine("SimSun"); - //else - // Compare(fromRTF, fromStr, tsave); - } - else - { - trtb.Text = "X"; // this is to trick steprtf in giving a char width to fit one character - // note that a space character was too small. - dummyCharWidth = true; - } - // find the needed cell width - trtb.AdjustWidthForContent(); - if (dummyCharWidth) - { - trtb.Text = ""; // clear out the dummy character before saving - dummyCharWidth = false; - } - - this[r, c] = trtb.Rtf; // save the cleaned up and processed cell text as RTF - this.Select(r, c, false); - CellRange sel = this.Selection; - //sel.UserData = trtb.ContentsRectangle.Height; - - // Now adjust the Height and Width in the defined merge ranges - AdjustMergeRangeHeightWidth(r, c, trtb, tstr, AllowWidthShrink); - - - //// Now see the the selected row,col is in the defined merge ranges - //bool mrgrows = false; - //bool mrgcols = false; - //foreach (CellRange cr in this.MergedRanges) - //{ - // if (cr.Contains(r, c)) - // { - // if (cr.c1 != cr.c2) - // mrgcols = true; // in a range of merged columns - // if (cr.r1 != cr.r2) - // mrgrows = true; // in a range of merged rows - // continue; - // } - //} - //if (!mrgcols || !mrgrows) - //{ - // // IF the row of the selected cell is NOT in merged range - // // then go ahead and adjust the row height (if needed) - // if (!mrgrows) - // { - // // add adjustment for grid and cell borders - // int newheight = trtb.Height + 3; - - // //Console.WriteLine("{0} {1} {2} '{3}'", r, c, newheight,trtb.Text); - // if (newheight > this.Rows[r].Height) - // { - // //Console.WriteLine("1 Row {0} Old Height = {1}, New Height = {2}", r, Rows[r].Height, newheight); - // this.Rows[r].Height = newheight; - // } - // } - // // IF the column of the selected cell is NOT in merged range - // // then go ahead and adjust the column width (if needed) - // if (!mrgcols) - // { - // // add adjustment for grid and cell borders - // int newwidth = trtb.Width + 2; - - // if (newwidth > this.Cols[c].Width || AllowWidthShrink || r == 0) - // this.Cols[c].Width = newwidth; - // } - //} - //if (mrgrows && tstr != null) - //{ - // CellRange cr = GetMergedRange(r, c); - // //Console.WriteLine("grid[{0},{1}] merge = {2}", r, c,cr); - // if (cr.r1 == r && cr.c1 == c) - // { - // // if in merged rows, then make sure the cell's height is large enough - // string[] strary = tstr.Split("\n".ToCharArray()); - // // count number of lines of text - // int nlines = strary.Length; - // // count number of rows in merge range - // int nrows = (cr.r2 - cr.r1) + 1; - // //Console.WriteLine("2 Row {0} Height = {1}", cr.r1, Rows[cr.r1].Height); - // while (nlines > nrows) - // { - // // add length to first row in merged range - // int h = this.Rows[cr.r1].Height; - // int defH = Rows.DefaultSize - 3; - // //h = (h == -1) ? _minRowHeight * 2 : h + _minRowHeight; - // h = (h == -1) ? (defH * 2) + 3 : h + defH; - // //h = (h == -1) ? (Rows.DefaultSize + 2) * 2 : h + Rows.DefaultSize + 2; - // //Console.WriteLine("3 Row {0} Old Height = {1}, New Height = {2}", cr.r1, Rows[cr.r1].Height, h); - // this.Rows[cr.r1].Height = h; - // nrows++; - // } - // } - //} - } - } - private void AdjustCellHeightWidth(int r, int c) - { - using (StepRTB trtb = new StepRTB()) - { - string tstr = null; - bool dummyCharWidth = false; - bool AllowWidthShrink = false; - trtb.SetTableGridCellRTFPrefix(this.Font); - trtb.Clear(); - trtb.Font = this.Font; - trtb.Rtf = (string)this[r, c]; - tstr = trtb.Text; - if (tstr != null && tstr.Length > 0) - AllowWidthShrink = tstr.Contains("#Link:"); - else - { - trtb.Text = "X"; // this is to trick steprtf in giving a char width to fit one character - // note that a space character was too small. - dummyCharWidth = true; - } - // find the needed cell width - trtb.AdjustWidthForContent(); - - if (dummyCharWidth) - { - trtb.Text = ""; // clear out the dummy character before saving - dummyCharWidth = false; - } - - this.Select(r, c, false); - CellRange sel = this.Selection; - - // Now adjust the Height and Width in the defined merge ranges - AdjustMergeRangeHeightWidth(r, c, trtb, tstr, AllowWidthShrink); - } - } - - private void AdjustMergeRangeHeightWidth(int r, int c, StepRTB trtb, string tstr, bool AllowWidthShrink) - { - bool mrgrows = false; - bool mrgcols = false; - foreach (CellRange cr in this.MergedRanges) - { - if (cr.Contains(r, c)) - { - if (cr.c1 != cr.c2) - mrgcols = true; // in a range of merged columns - if (cr.r1 != cr.r2) - mrgrows = true; // in a range of merged rows - continue; - } - } - if (!mrgcols || !mrgrows) - { - // IF the row of the selected cell is NOT in merged range - // then go ahead and adjust the row height (if needed) - if (!mrgrows) - { - // add adjustment for grid and cell borders - int newheight = trtb.Height + 3; - - //Console.WriteLine("{0} {1} {2} '{3}'", r, c, newheight,trtb.Text); - if (newheight > this.Rows[r].Height) - { - //Console.WriteLine("1 Row {0} Old Height = {1}, New Height = {2}", r, Rows[r].Height, newheight); - this.Rows[r].Height = newheight; - } - } - // IF the column of the selected cell is NOT in merged range - // then go ahead and adjust the column width (if needed) - if (!mrgcols) - { - // add adjustment for grid and cell borders - int newwidth = trtb.Width + 3; // 2; - if (newwidth > (this.Cols[c].Width == -1 ? this.Cols.DefaultSize : this.Cols[c].Width) || AllowWidthShrink || r == 0) - this.Cols[c].Width = newwidth; - } - } - if (mrgrows && tstr != null) - { - CellRange cr = GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - // if in merged rows, then make sure the cell's height is large enough - string[] strary = tstr.Split("\n".ToCharArray()); - // count number of lines of text - int nlines = strary.Length; - // count number of rows in merge range - int nrows = (cr.r2 - cr.r1) + 1; - //Console.WriteLine("2 Row {0} Height = {1}", cr.r1, Rows[cr.r1].Height); - while (nlines > nrows) - { - // add length to first row in merged range - int h = this.Rows[cr.r1].Height; - int defH = Rows.DefaultSize - 3; - h = (h == -1) ? (defH * 2) + 3 : h + defH; - this.Rows[cr.r1].Height = h; - nrows++; - } - } - } - } - private int TotalColWidths() - { - int cwid = 0; - foreach (Column c in Cols) - { - cwid += ((c.Width > 0) ? c.Width : Cols.DefaultSize); - } - return cwid; - } - /// - /// This will adjust the column widths of the current table based upon the page width - /// Note: This is for use in creating a new table - not to process an existing table. - /// - /// - public void FitTableToPageWidth(int pgWidthPoints) - { - int grdWidth = TotalColWidths(); - int pgwidth = (int)((pgWidthPoints / 72) * this._DPI); - - if (grdWidth > pgwidth) - { - int difWid = grdWidth - pgwidth; - int colAdj = (difWid / Cols.Count) +(((difWid % Cols.Count) > 0) ? 1 : 0); - foreach (Column c in Cols) - { - int cwid = (c.Width > 0) ? c.Width : Cols.DefaultSize; - if ((cwid - colAdj) > 0) - c.Width = cwid - colAdj; - } - } - } - //private void AdjustCellHeightWidth(int r, int c) - //{ - // StepRTB trtb = new StepRTB(); - // string tstr = null; - // bool dummyCharWidth = false; - // bool AllowWidthShrink = false; - // trtb.SetTableGridCellRTFPrefix(this.Font); - // trtb.Clear(); - // trtb.Font = this.Font; - // trtb.Rtf = (string)this[r, c]; - // tstr = trtb.Text; - // if (tstr != null && tstr.Length > 0) - // AllowWidthShrink = tstr.Contains("#Link:"); - // else - // { - // trtb.Text = "X"; // this is to trick steprtf in giving a char width to fit one character - // // note that a space character was too small. - // dummyCharWidth = true; - // } - // // find the needed cell width - // trtb.AdjustWidthForContent(); - - // if (dummyCharWidth) - // { - // trtb.Text = ""; // clear out the dummy character before saving - // dummyCharWidth = false; - // } - - // this.Select(r, c, false); - // CellRange sel = this.Selection; - - // // Now see the the selected row,col is in the defined merge ranges - // bool mrgrows = false; - // bool mrgcols = false; - // foreach (CellRange cr in this.MergedRanges) - // { - // if (cr.Contains(r, c)) - // { - // if (cr.c1 != cr.c2) - // mrgcols = true; // in a range of merged columns - // if (cr.r1 != cr.r2) - // mrgrows = true; // in a range of merged rows - // continue; - // } - // } - // if (!mrgcols || !mrgrows) - // { - // // IF the row of the selected cell is NOT in merged range - // // then go ahead and adjust the row height (if needed) - // if (!mrgrows) - // { - // // add adjustment for grid and cell borders - // int newheight = trtb.Height + 3; - - // //Console.WriteLine("{0} {1} {2} '{3}'", r, c, newheight,trtb.Text); - // if (newheight > this.Rows[r].Height) - // { - // //Console.WriteLine("1 Row {0} Old Height = {1}, New Height = {2}", r, Rows[r].Height, newheight); - // this.Rows[r].Height = newheight; - // } - // } - // // IF the column of the selected cell is NOT in merged range - // // then go ahead and adjust the column width (if needed) - // if (!mrgcols) - // { - // // add adjustment for grid and cell borders - // int newwidth = trtb.Width + 2; - - // if (newwidth > this.Cols[c].Width || AllowWidthShrink || r == 0) - // this.Cols[c].Width = newwidth; - // } - // } - // if (mrgrows && tstr != null) - // { - // CellRange cr = GetMergedRange(r, c); - // if (cr.r1 == r && cr.c1 == c) - // { - // // if in merged rows, then make sure the cell's height is large enough - // string[] strary = tstr.Split("\n".ToCharArray()); - // // count number of lines of text - // int nlines = strary.Length; - // // count number of rows in merge range - // int nrows = (cr.r2 - cr.r1) + 1; - // //Console.WriteLine("2 Row {0} Height = {1}", cr.r1, Rows[cr.r1].Height); - // while (nlines > nrows) - // { - // // add length to first row in merged range - // int h = this.Rows[cr.r1].Height; - // int defH = Rows.DefaultSize - 3; - // h = (h == -1) ? (defH * 2) + 3 : h + defH; - // this.Rows[cr.r1].Height = h; - // nrows++; - // } - // } - // } - //} - - //private void Compare(string fromRTF, string fromStr, string rawstr) - //{ - // int istart = fromRTF.IndexOf(" ",fromRTF.IndexOf("viewkind")); - // int jstart = fromStr.IndexOf(" ",fromStr.IndexOf("viewkind")); - // for (int i = istart; i < fromRTF.Length; i++) - // { - // int j = i - istart + jstart; - // //else if (fromRTF[i] != fromStr[j]) - // if (fromRTF[i] != fromStr[j]) - // { - // if (fromRTF.Substring(i, 1) == @"~" && fromStr.Substring(j, 3) == @"'a0") - // { - // //i++; - // jstart += 2; - // } - // else - // { - // Console.WriteLine("fromStr:\r\n'{0}'\r\nfromRTF:\r\n'{1}'", fromStr, fromRTF); - // ShowRawString(rawstr, "rawstr"); - // Console.WriteLine("Str:'{0}' , RTF:'{1}'", fromStr.Substring(j, Math.Min(10,fromStr.Length-j-1)), fromRTF.Substring(i, Math.Min(10,fromRTF.Length-i-1))); - // return; - // } - // } - // } - //} - - #region DEBUG - //private void ShowRawString(string str, string title) - //{ - // Console.WriteLine("Raw Start --{0}:\n", title); - // foreach (char c in str) - // { - // int ic= (int)c; - // if (c!='\n'&&( ic > 126 || ic < 32)) - // Console.Write("<<{0:x4}>>", ic); - // else - // Console.Write(c); - // } - // Console.WriteLine("\n-- Raw End:{0}", title); - //} - #endregion - - private void Grid_AfterResize(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - this.AdjustGridControlSize(); - } - - #endregion // Grid Size Adjustments - - #region Cell Text - public void MakeRTFcells() - { - // This will spin through all the cells in the grid: - // - convert the text to RTF if needed - // - adjust the grid dimensions based on the cell info. - for (int r = 0; r < this.Rows.Count; r++) - { - this.Rows[r].Height = Rows.DefaultSize;//_minRowHeight;//20;//10; - for (int c = 0; c < this.Cols.Count; c++) - this.ConvertTextCellToRTF(r, c); - } - - TrimColumnWidths(); - RemoveBlankSpaceFromRows(); - SetupCellUserData(); - this.AdjustGridControlSize(); - } - - public void FixTableCellsHeightWidth() - { - RemoveBlankSpaceFromColumns(); - RemoveBlankSpaceFromRows(); - } - - private void RemoveBlankSpaceFromRows() - { - for (int r = 0; r < Rows.Count; r++) - { - Select(r, 0); - int blankRowSpace = BlankRowSpace(); - if (blankRowSpace > 0) - Rows[r].Height -= blankRowSpace; - } - } - - private void RemoveBlankSpaceFromColumns() - { - for (int c = 0; c < Cols.Count; c++) - { - Select(0, c); - int blankColSpace = BlankColSpace(); - if (blankColSpace > 0) - Cols[c].Width -= blankColSpace; - } - } - - private void TrimColumnWidths() - { - for (int c = 0; c < Cols.Count; c++) - { - Select(0, c); - int newColWidth = MinColWidth(); - Cols[c].Width = newColWidth; - } - } - - private int MinColWidth() - { - int curColWidth = 0; - for (int r = 0; r < Rows.Count; r++) - { - CellRange cr = GetMergedRange(r, Col); - // find the needed cell width - if (Col == cr.c1) - { - using (StepRTB srtb = new StepRTB()) - { - srtb.Rtf = GetCellRTFString(cr.r1, cr.c1); - srtb.AdjustWidthForContent(); - curColWidth = Math.Max(curColWidth, srtb.Width + 3); - } - } - } - return curColWidth; - } - - //private bool RemoveBoldUlineItalicChars(string str) - //{ - // int rtn = 0; - - // // Underline next word - // rtn += str.IndexOf(@"\'17"); - - // // Bold next word - // rtn += str.IndexOf(@"\'13"); - - // // Italics On - // rtn += str.IndexOf(@"\'1B4"); - - // // Italics Off - // rtn += str.IndexOf(@"\'1B5"); - - // // underline On - // rtn += str.IndexOf(@"\'ab"); - // // underline Off - // rtn += str.IndexOf(@"\'bb"); - - // return rtn > 0; - - //} - - private string ConvertTableText(string str) - { - string rtn = str; - //ShowRawString(str, "ConvertTableText IN"); - rtn = rtn.Replace(@"START]\v0", @"START]\cf1\v0"); - rtn = rtn.Replace(@"\v #Link:", @"\cf0\v #Link:"); - rtn = rtn.Replace("\n", "\\par\r\n"); - rtn = rtn.Replace("\xB3", @"\f1\u9474?\f0"); // Vert Bar - rtn = rtn.Replace("\xF2", @"\f1\u8805?\f0 "); // greater than or equal - rtn = rtn.Replace("\x7F", @"\f1\u916?\f0 "); // delta - rtn = rtn.Replace("\xF3", @"\f1\u8804?\f0 "); // less than or equal - rtn = rtn.Replace("\xE4", @"\f1\u931?\f0 "); // sigma - rtn = rtn.Replace("\xE7", @"\f1\u947?\f0 "); // gamma - rtn = rtn.Replace("\xFE", @"\f1\u9604?\f0 "); // accum 2584 - rtn = rtn.Replace("\x7", @"\f1\u9679?\f0 "); // bullet 25CF - rtn = rtn.Replace("\xF7", @"\f1\u8776?\f0 "); // approx eq - rtn = rtn.Replace("\xF0", @"\f1\u8773?\f0 "); // similar eq 2245 - rtn = rtn.Replace("\xFB", @"\f1\u8730?\f0 "); // square root - rtn = rtn.Replace("\xE2", @"\f1\u961?\f0 "); // rho 3C1 - rtn = rtn.Replace("\xE3", @"\f1\u960?\f0 "); // pi - rtn = rtn.Replace("\xE6", @"\f1\u956?\f0 "); // micro - rtn = rtn.Replace("\xEB", @"\f1\u948?\f0 "); // lower case delta - rtn = rtn.Replace("\xE5", @"\f1\u963?\f0 "); // lower case sigma - rtn = rtn.Replace("\x90", @"\f1\u274?\f0 "); // energy, 112 - rtn = rtn.Replace("\xEE", @"\f1\u949?\f0 "); // epsilon - rtn = rtn.Replace("\xE9", @"\f1\u952?\f0 "); // theta, 3B8 - rtn = rtn.Replace("\xEC", @"\f1\u8857?\f0 "); // dot in oval, 2299 - rtn = rtn.Replace("\xA8", @"\f1\u964?\f0 "); // tau, 3C4 - rtn = rtn.Replace("\xA9", @"\f1\u9830?\f0 "); // diamond, 2666 - rtn = rtn.Replace("\x18", @"\f1\u8593?\f0 "); // Up Arrow - rtn = rtn.Replace("\x19", @"\f1\u8595?\f0 "); // Down Arrow - rtn = rtn.Replace("\xFF", @"\u160?"); // hardspace - //rtn = rtn.Replace(@"\'a0", @"\u160?"); - //rtn = rtn.Replace("\xff", @"\u160?"); - //rtn = rtn.Replace("\xA0", @"\u160?"); - // underline On - rtn = rtn.Replace("\xab", @"\ul"); - // underline Off - rtn = rtn.Replace("\xbb", @"\ulnone"); - //rtn = rtn.Replace("\xef\xe6", @"\up2 "); - //rtn = rtn.Replace("\xef\xe7", @"\up0 "); - rtn = rtn.Replace("\x9566", @"\up2 "); - rtn = rtn.Replace("\x9567", @"\up0 "); - rtn = rtn.Replace("{", @"\{"); - rtn = rtn.Replace("}", @"\}"); - rtn = rtn.Replace("\xd5", @"\b"); - rtn = rtn.Replace("\xd6", @"\b0"); - - //ShowRawString(rtn, "ConvertTableText OUT"); - return rtn; - } - - private static string SomethingNextWord(string str, string nxtwordcmd, string cmdOn, string cmdOff) - { - string rtn = ""; - int bidx = 0; - int fidx = str.IndexOf(nxtwordcmd, bidx); - char[] term = " \r\n\x02".ToCharArray(); - while (fidx > 0) - { - rtn += str.Substring(bidx, fidx - bidx) + cmdOn; - bidx = fidx + 4; - - if (bidx < str.Length) - { - fidx = str.IndexOfAny(term, bidx); - if (fidx > 0) - { - rtn += str.Substring(bidx, fidx - bidx) + cmdOff + str.Substring(fidx, 1); - bidx = fidx + 1; - } - } - - if (bidx < str.Length) - fidx = str.IndexOf(nxtwordcmd, bidx); - else - fidx = -1; - } - if (bidx < str.Length) - rtn += str.Substring(bidx); - - return rtn; - } - - private void _StartEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - // start editing the cell with the custom editor - _tableCellEditor.StartEditing(e.Row, e.Col); - e.Cancel = true; - } - - // after edit handler (built-in editors) - private void _AfterEdit(object sender, C1.Win.C1FlexGrid.RowColEventArgs e) - { - this.GetCellRange(e.Row, e.Col).Style.ForeColor = Color.Black; - this.AdjustGridControlSize(); - } - - // if the custom editor is visible, make it follow the cell being edited - private void _AfterScroll(object sender, C1.Win.C1FlexGrid.RangeEventArgs e) - { - this._tableCellEditor.UpdatePosition(); - } - - // save last key pressed for the custom editor - private void _KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) - { - this._tableCellEditor.SetPendingKey(e.KeyChar); - } - - public string GetCellRTFString(int row, int col) - { - string rtnstr = ""; - foreach (CellRange r in this.MergedRanges) - { - if (r.ContainsRow(row) && r.ContainsCol(col)) - { - rtnstr = (string)this[r.r1, r.c1]; - return rtnstr; - } - } - rtnstr = (string)this[row, col]; - return rtnstr; - } - - public void PutCellRTFString(int row, int col, string str) - { - foreach (CellRange r in this.MergedRanges) - { - if (r.ContainsRow(row) && r.ContainsCol(col)) - { - this[r.r1, r.c1] = str; - return; - } - } - this[row, col] = str; - return; - } - public void ClearSelectedCellText() - { - CellRange cr = this.Selection; - cr.Clear(ClearFlags.Content); - } - public void SetupCellUserData() - { - for (int r = 0; r < Rows.Count; r++) - for (int c = 0; c < Cols.Count; c++) - { - string rtfText = GetDataDisplay(r, c); - if (rtfText.StartsWith(@"{\rtf")) - { - using (StepRTB _rtf = new StepRTB()) - { - _rtf.Width = Cols[c].Width; - _rtf.Rtf = rtfText; - CellRange cr = GetCellRange(r, c); - cr.UserData = _rtf.ContentsRectangle.Height; - } - } - } - } - - #endregion //Cell Text - - #region Merged / Split Range - - public void MergeSelection() - { - this.MergedRanges.Add(this.Selection,true); - this.Invalidate(); - this.Select(Selection.r1, Selection.c1); - } - public bool IsInMergeRange() - { - C1.Win.C1FlexGrid.CellRange sel = GetMergedRange(this.Selection.r1, this.Selection.c1); - return MergedRanges.Contains(sel); - } - public void SplitSelection(bool bSplitCols) - { - //Console.WriteLine("SplitSelection this.selection {0}", this.Selection); - //Debug_WritelineMySelection(); - //C1.Win.C1FlexGrid.CellRange sel = this.GetMergedRange(this.Selection.r1, this.Selection.c1); - //Console.WriteLine("SplitSelection myselection {0}", MySelection); - //foreach (CellRange sel in MySelection) - //{ - // //Console.WriteLine("SplitSelection foreach sel {0}", sel); - // if (sel.IsSingleCell) - // this.MergedRanges.Remove(sel); - // if (!(this.MergedRanges.Contains(sel)) && !didit) - // if (bSplitCols) - // SplitSelectionColumns(); - // else - // SplitSelectionRows(); - // didit = true; - //} - if (bSplitCols) - SplitSelectionColumns(); - else - SplitSelectionRows(); - //Debug_WritelineMySelection(); - //foreach (CellRange sel in MySelection) - //{ - // //Console.WriteLine("SplitSelection foreach sel {0}", sel); - // if (this.MergedRanges.Contains(sel)) - // SplitMergedRange(sel, bSplitCols); - //} - //this.Refresh(); - //RefreshMergeRangeCollection(); - this.AdjustGridControlSize(); - } - - private void SplitMergedRange(CellRange sel, bool bSplitCols) - { - int sR = sel.r1; - int eR = sel.r2; - int sC = sel.c1; - int eC = sel.c2; - if (bSplitCols && (IsMergedCols(sel) && !IsMergedRows(sel)) || - (!bSplitCols && (IsMergedRows(sel) && !IsMergedCols(sel)))) - MergedRanges.Remove(sel); - else - { - CellRange saveSelection = Selection; - if (bSplitCols && IsMergedRows(sel)) - { - MergedRanges.Remove(sel); - for (int c = sC; c <= eC; c++) - { - Select(sR, c, eR, c); - MergeSelection(); - } - } - else if (!bSplitCols && IsMergedCols(sel)) - { - MergedRanges.Remove(sel); - for (int r = sR; r <= eR; r++) - { - Select(r, sC, r, eC); - MergeSelection(); - } - } - Select(saveSelection); - } - } - private bool IsMergedRows(CellRange sel) - { - return (sel.r1 != sel.r2); - } - private bool IsMergedCols(CellRange sel) - { - return (sel.c1 != sel.c2); - } - private void SplitSelectionColumns() - { - bool hasNonMergedColumn = false; - //Console.WriteLine("SplitSelectionColumns this.selection {0}", this.Selection); - //Debug_WritelineMySelection(); - CellRange cr = this.Selection; - int numSelCols = (cr.c2 - cr.c1) + 1; - foreach (CellRange sel in MySelection) - { - if (!this.MergedRanges.Contains(sel)) - hasNonMergedColumn = true; - else - { - CellRange mr = GetMergedRange(sel.r1, sel.c1); - if (mr.c1 == mr.c2) - hasNonMergedColumn = true; - } - } - // for each column in the selection, add a new column - if (hasNonMergedColumn) - { - for (int c = cr.c2; c >= cr.c1; c--) - { - Select(cr.r1, c, cr.r2, c); - InsertColumnAfter(); - } - } - // include new columns in selection - this.Select(cr.r1, cr.c1, cr.r2, cr.c2 + ((hasNonMergedColumn) ? numSelCols : 0)); - //if a merged range is part of the selectin, try to split it - foreach (CellRange sel in MySelection) - { - //Console.WriteLine("SplitSelection foreach sel {0}", sel); - if (this.MergedRanges.Contains(sel)) - SplitMergedRange(sel, true); - } - cr = this.Selection; - if (hasNonMergedColumn) - { - for (int r = 0; r < this.Rows.Count; r++) - for (int c = cr.c1; c <= cr.c2; c += 2) - { - if (!this.IsCellSelected(r, c)) - { - CellRange crTmp = GetMergedRange(r, c); - if (crTmp.IsSingleCell) - { - CellRange tcr = this.GetCellRange(r, c, r, c + 1); - this.MergedRanges.Add(tcr); - this.Invalidate(); - } - //CellRange tcr = this.GetCellRange(r, c, r, c + 1); - //this.MergedRanges.Add(tcr); - } - } - // Adjust selected column widths - for (int c = cr.c1; c <= cr.c2; c++) - { - int recWidth = (Cols[c].Width < 0) ? Cols.DefaultSize : Cols[c].Width; // this.GetCellRect(cr.r1, c).Width; - int newWidth = Math.Max(recWidth / 2, _minColSplitWidth); - this.Cols[c].Width = newWidth; - //Console.WriteLine("Cell[{0},{1}].Width = {2}", cr.r1, c, recWidth); - //Console.WriteLine("Cell[{0},{1}].NewWidth = {2}", cr.r1, c, newWidth); - } - } - } - - private void SplitSelectionRows() - { - bool hasNonMergedRow = false; - CellRange cr = this.Selection; - int numSelRows = (cr.r2 - cr.r1) + 1; - //Console.WriteLine("numSelRows = {0}", numSelRows); - //Console.WriteLine("Inital Selection [{0},{1}] - [{2},{3}]", cr.r1, cr.c1, cr.r2, cr.c2); - foreach (CellRange sel in MySelection) - { - if (!this.MergedRanges.Contains(sel)) - hasNonMergedRow = true; - else - { - CellRange mr = GetMergedRange(sel.r1, sel.c1); - if (mr.r1 == mr.r2) - hasNonMergedRow = true; - } - } - // for each row in the selection, add a new row - if (hasNonMergedRow) - { - for (int r = cr.r2; r >= cr.r1; r--) - { - //Console.WriteLine("Inserted new Row at [{0},{1}]", r, cr.c1); - Select(r, cr.c1, r, cr.c2); - InsertRowAfter(); - } - } - // include new rows in selection - this.Select(cr.r1, cr.c1, cr.r2 + numSelRows, cr.c2); - //if a merged range is part of the selectin, try to split it - foreach (CellRange sel in MySelection) - { - //Console.WriteLine("SplitSelection foreach sel {0}", sel); - if (this.MergedRanges.Contains(sel)) - SplitMergedRange(sel, false); - } - cr = this.Selection; - //Console.WriteLine(" After Insert [{0},{1}] - [{2},{3}]", cr.r1, cr.c1, cr.r2, cr.c2); - if (hasNonMergedRow) - { - for (int c = 0; c < this.Cols.Count; c++) - for (int r = cr.r1; r <= cr.r2; r += 2) - { - if (!this.IsCellSelected(r, c)) - { - CellRange crTmp = GetMergedRange(r, c); - if (crTmp.IsSingleCell) - { - CellRange tcr = this.GetCellRange(r, c, r + 1, c); - this.MergedRanges.Add(tcr); - this.Invalidate(); - } - } - } - // Adjust selected Row Heights - for (int r = cr.r1; r <= cr.r2; r++) - { - int recHeight = this.GetCellRect(r, cr.c1).Height; - this.Rows[r].Height = Math.Max(recHeight / 2, Rows.DefaultSize); - //this.Rows[r].Height = Math.Max(recHeight / 2, _minRowSplitHeight); - //Console.WriteLine("Cell[{0},{1}].Height = {2}", r, cr.c1, recHeight); - } - } - //foreach (CellRange crng in this.MergedRanges) - // Console.WriteLine("merge ranges [{0},{1}] - [{2},{3}]", crng.r1, crng.c1, crng.r2, crng.c2); - } - private void AdjustMergedRows(int row, bool above, bool removing) - { - AdjustMergedRows(row, 1, above, removing); - } - - private void AdjustMergedRows(int row, int cnt, bool above, bool removing) - { - CellRangeCollection crc = new CellRangeCollection(this); - if (removing) - { - foreach (CellRange r in this.MergedRanges) - { - CellRange cr = r; - if (r.ContainsRow(row)) - { - if (r.TopRow != r.BottomRow) - { - cr.r2 -= cnt; - crc.Add(cr); - } - } - else - { - if (row <= r.r1) - { - if (row < r.r1) - cr.r1 -= cnt; - cr.r2 -= cnt; - } - crc.Add(cr); - } - } - } - else // adding - foreach (CellRange r in this.MergedRanges) - { - CellRange cr = r; - int inspos = (above) ? row : row - 1; - if (r.ContainsRow(inspos)) - { - bool adjustMergeValues = true; - if (cr.r1 == row && cr.r2 == row + cnt -1) - adjustMergeValues = false; // don't add to existing merge range - we will add a new merge range for this copy - for (int insCnt = 0; insCnt < cnt; insCnt++) - { - if ((above && cr.r1 == inspos) || (!above && cr.r2 == inspos)) - { - string tstr = ""; - int newrow = 0; - if (above) - { - if (this[cr.r1 + cnt, cr.c1] != null) - tstr = this[cr.r1 + cnt, cr.c1].ToString(); - newrow = cr.r1; - } - else - { - if (this[cr.r2, cr.c1] != null) - tstr = this[cr.r2, cr.c1].ToString(); - newrow = cr.r2 + cnt; - } - if (tstr != null && tstr.Length > 0) - for (int x = cr.c1; x <= cr.c2; x++) - this[newrow, x] = tstr; - } - if (adjustMergeValues) cr.r2++; - } - } - else - { - if (inspos < cr.r1) - { - cr.r1 += cnt; - cr.r2 += cnt; - } - } - crc.Add(cr); - } - this.MergedRanges.Clear(); - foreach (CellRange r in crc) - { - if ((r.r1 != r.r2) || (r.c1 != r.c2)) - this.MergedRanges.Add(r); - } - } - - private void AdjustMergedColumns(int col, bool left, bool removing) - { - AdjustMergedColumns(col, 1, left, removing); //adjusting for just one column - } - - private void AdjustMergedColumns(int col, int cnt, bool left, bool removing) - { - CellRangeCollection crc = new CellRangeCollection(this); - if (removing) - { - foreach (CellRange r in this.MergedRanges) - { - CellRange cr = r; - if (r.ContainsCol(col)) - { - if (r.LeftCol != r.RightCol) - { - cr.c2 -= cnt; - crc.Add(cr); - } - } - else - { - if (col < cr.c1) - { - cr.c1-=cnt; - cr.c2-=cnt; } - crc.Add(cr); - } - } - } - else // adding - foreach (CellRange r in this.MergedRanges) - { - CellRange cr = r; - int inspos = (left) ? col : col - 1; - if (r.ContainsCol(inspos)) - { - for (int insCnt = 0; insCnt < cnt; insCnt++) - { - string tstr = ""; - int newcol = 0; - if (left) - { - if (inspos == cr.c1) - tstr = (this[cr.r1, cr.c1 + 1] == null) ? "" : this[cr.r1, cr.c1 + 1].ToString(); - else - tstr = (this[cr.r1, cr.c1] == null) ? "" : this[cr.r1, cr.c1].ToString(); - newcol = cr.c1; - } - else - { - if (this[cr.r1, cr.c2] != null) - tstr = this[cr.r1, cr.c2].ToString(); - newcol = cr.c2 + 1; - } - for (int x = cr.r1; x <= cr.r2; x++) - this[x, newcol] = tstr; - - cr.c2++; - } - } - else if (col <= r.c1) - { - cr.c1+=cnt; - cr.c2+=cnt; - } - crc.Add(cr); - } - this.MergedRanges.Clear(); - foreach (CellRange r in crc) - { - if ((r.r1 != r.r2) || (r.c1 != r.c2)) - this.MergedRanges.Add(r); - } - } - - private bool RowIsInMergeRange(int row) - { - bool rtn = false; - if (row >= 0) - { - CellRange cr = this.Selection; - rtn = true; - int c = cr.c1; - while (rtn && (c <= cr.c2)) - { - int idx = this.MergedRanges.IndexOf(row, c); - rtn = (idx > -1); - c++; - } - } - return rtn; - } - - private bool ColIsInMergeRange(int col) - { - bool rtn = false; - if (col >= 0) - { - CellRange cr = this.Selection; - //rtn = true; - int r = cr.r1; - while (!rtn && (r <= cr.r2)) - { - int idx = this.MergedRanges.IndexOf(col, r); - rtn = (idx > -1); - r++; - } - } - return rtn; - } - - #endregion //Merged / Split Range - - #region Grid Add and Remove Row / Column - - private int GetRowInsertPosition(Boolean before) - { - int rtnrow; - CellRange selcr = this.Selection; - CellRange cr = selcr; - int idx = this.MergedRanges.IndexOf(cr.r1, cr.c2); - if (idx > -1) - cr = this.MergedRanges[idx]; // we want first or last row in merge range - rtnrow = (before) ? cr.r1 : cr.r2; - // The following is an adjustment needed when we are copying an entire row that includes some merged cells - if (selcr.c1 != selcr.c2) - { - while (!before && rtnrow > selcr.r2) rtnrow--; - while (before && rtnrow < selcr.r2) rtnrow++; - } - - return rtnrow; - } - - private int GetColInsertPosition(Boolean before) - { - int rtncol; - CellRange selcr = this.Selection; - CellRange cr = selcr; - int idx = this.MergedRanges.IndexOf(cr.r1, cr.c2); - if (idx > -1) - cr = this.MergedRanges[idx]; // we want the first of last col in merge range - rtncol = (before) ? cr.c1 : cr.c2; - // The following is an adjustment needed when we are copying an entire column that includes some merged cells - if (selcr.r1 != selcr.r2) - { - while (!before && rtncol > selcr.c2) rtncol--; - while (before && rtncol < selcr.c2) rtncol++; - } - return rtncol; - } - - public void InsertColumnBefore() - { - int newcol = this.GetColInsertPosition(true); - this.Cols.Insert(newcol); - // set new column width to same width as column from where it was inserted - this.Cols[newcol].Width = this.Cols[newcol + 1].Width; - MyBorders.InsertColumn(newcol); - this.AdjustMergedColumns(newcol, true, false); - this.AdjustGridControlSize(); - } - - public void InsertColumnAfter() - { - int colidx = this.GetColInsertPosition(false); - if (colidx == this.Cols.Count - 1) // last column - this.Cols.Add(1); - else - this.Cols.Insert(colidx + 1); - MyBorders.InsertColumn(colidx); - // set new column width to same width as column from where it was inserted - this.Cols[colidx + 1].Width = this.Cols[colidx].Width; - this.AdjustMergedColumns(colidx + 1, false, false); - this.AdjustGridControlSize(); - } - - public void InsertRowBefore() - { - int newrow = this.GetRowInsertPosition(true); - this.Rows.Insert(newrow); - // set new row Height to same heidht as row from where it was inserted - this.Rows[newrow].Height = (Rows[newrow + 1].Height == -1) ? Rows.DefaultSize : Rows[newrow + 1].Height; - //this.Rows[newrow].Height = this.Rows[newrow + 1].Height; - MyBorders.InsertRow(newrow); - this.AdjustMergedRows(newrow, true, false); - this.AdjustGridControlSize(); - } - - public void InsertRowAfter() - { - int rowidx = this.GetRowInsertPosition(false); - if (rowidx == this.Rows.Count - 1) // last row - this.Rows.Add(1); - else - this.Rows.Insert(rowidx + 1); - // set new row Height to same heidht as row from where it was inserted - this.Rows[rowidx + 1].Height = (Rows[rowidx].Height == -1) ? Rows.DefaultSize : Rows[rowidx].Height; - //this.Rows[rowidx + 1].Height = this.Rows[rowidx].Height; - MyBorders.InsertRow(rowidx + 1); - this.AdjustMergedRows(rowidx + 1, false, false); - this.AdjustGridControlSize(); - } - - public bool AllRowsSelected() - { - int maxrow = Selection.r2; - foreach (CellRange cr in MySelection) - maxrow = Math.Max(maxrow, cr.r2); - return (Selection.r1 == 0 && maxrow == Rows.Count - 1); - } - - public bool AllColumnsSelected() - { - int maxcol = Selection.c2; - foreach (CellRange cr in MySelection) - maxcol = Math.Max(maxcol, cr.c2); - return (Selection.c1 == 0 && maxcol == Cols.Count - 1); - } - - public void RemoveSelectedColumn() - { - string msg = ""; - string title = ""; - CellRange saveCR = Selection; - this.SelectionMode = SelectionModeEnum.ColumnRange; - //this.Select(this.Selection.r1, this.Selection.c1); - this.Select(0, Selection.c1, Rows.Count - 1, Selection.c2); - this.SelectionMode = SelectionModeEnum.Default; - if (Selection.c1 != Selection.c2) - { - msg = "Remove selected columns?"; - title = "Delete Columns"; - } - else - { - msg = "Remove this column?"; - title = "Delete Column"; - } - DialogResult dr = MessageBox.Show(msg, title, MessageBoxButtons.YesNo); - if (dr == DialogResult.Yes) - RemoveSelectedCells();//RemoveColumns(this.Selection.r1, this.Selection.c1, 1); - else - Select(saveCR); - } - - public void RemoveSelectedRow() - { - string msg = ""; - string title = ""; - CellRange saveCR = Selection; - this.SelectionMode = SelectionModeEnum.RowRange; - //this.Select(this.Selection.r1, this.Selection.c1,); - this.Select(Selection.r1, 0, Selection.r2, Cols.Count - 1); - this.SelectionMode = SelectionModeEnum.Default; - if (Selection.r1 != Selection.r2) - { - msg = "Remove selected rows?"; - title = "Delete Rows"; - } - else - { - msg = "Remove this row?"; - title = "Delete Row"; - } - DialogResult dr = MessageBox.Show(msg, title, MessageBoxButtons.YesNo); - if (dr == DialogResult.Yes) - this.RemoveSelectedCells();//this.RemoveRows(this.Selection.r1, this.Selection.c1, 1); - else - Select(saveCR); - } - - private void RemoveRows(int strow, int stcol, int cnt) - { - bool mergedRow = false; - for (int i = 0; i < cnt; i++) - { - //if (this.RowIsInMergeRange(strow)) - //{ - for (int cl = 0; cl < this.Cols.Count && !mergedRow; cl++) - { - int idx = this.MergedRanges.IndexOf(strow, cl); - if (idx > -1) - { - CellRange cr = this.MergedRanges[idx]; - if (cr.r1 < cr.r2) - mergedRow = true; - //this[cr.r1 + 1, cr.c1] = this[cr.r1, cr.c1]; - } - cl++; - } - //} - this.Rows.Remove(strow); - this.AdjustMergedRows(strow, false, true); - //if (mergedRow) - //{ - //cnt++; - mergedRow = false; - //} - } - MyBorders.DeleteRows(strow, cnt); - this.AdjustGridControlSize(); - } - - private void RemoveColumns(int strow, int stcol, int cnt) - { - bool mergedCol = false; - for (int i = 0; i < cnt; i++) - { - //if (this.ColIsInMergeRange(stcol)) - //{ - for (int rw = 0; rw < this.Rows.Count && !mergedCol; rw++) - { - int idx = this.MergedRanges.IndexOf(rw, stcol); - if (idx > -1) - { - CellRange cr = this.MergedRanges[idx]; - if (cr.c1 < cr.c2) - mergedCol = true; - //this[cr.r1, cr.c1 + 1] = this[cr.r1, cr.c1]; - } - } - //} - this.Cols.Remove(stcol); - this.AdjustMergedColumns(stcol, false, true); - //if (mergedCol) - //{ - // //cnt++; - mergedCol = false; - //} - } - MyBorders.DeleteColumns(stcol, cnt); - this.AdjustGridControlSize(); - } - - public void RemoveSelectedCells() - { - bool didremove = false; - int lastRow = this.Rows.Count - 1; - int lastCol = this.Cols.Count - 1; - CellRange cr = this.Selection; - - // r2 is last row (or in merge range containing last row) - // r1 is first row or r1-m (m is in merge range) is first row - // we can remove columns c1 through c2 - - int idx = this.MergedRanges.IndexOf(cr.r2, cr.c2); - CellRange mr = new CellRange(); - if (idx > -1) mr = this.MergedRanges[idx]; - if (cr.r2 == lastRow || idx > -1 && mr.r2 == lastRow)//RowIsInMergeRange(grd,cr.r2)) - { - if (cr.r1 == 0 || this.RowIsInMergeRange(cr.r1 - 1)) - { - this.RemoveColumns(cr.r1, cr.c1, cr.RightCol - cr.LeftCol + 1);// remove selected columns - didremove = true; - } - } - - - // c2 is last column (or in merge range containing last column) - // c1 is first column or c1-m (m is merge range) is first column - // we can remove rows r1 through r2 - - if (cr.c2 == lastCol || idx > -1 && mr.c2 == lastCol)//ColIsInMergeRange(grd,cr.c1-1)) - { - if (cr.c1 == 0 || this.ColIsInMergeRange(cr.c1 - 1)) - { - // remove selected rows - this.RemoveRows(cr.r1, cr.c1, cr.BottomRow - cr.TopRow + 1); - didremove = true; - } - } - - if (!didremove) - MessageBox.Show("Cannot Removed Part of a Row or Column.\n\nNote: This function allows you to delete one or more rows/columns at time.", "Invalid Selection",MessageBoxButtons.OK,MessageBoxIcon.Hand); - - return; - } - - #endregion //Grid Add and Remove Row / Column - - #region Copy/Paste - - public void CopyRow() - { - DialogResult dr = DialogResult.Yes; - SelectRow(); - if (Selection.r1 != Selection.r2) - { - //dr = MessageBox.Show("You selected a row that includes merged cells.\n\nThese additional rows must be included.\n\nCopy these rows?", "Copy Rows", MessageBoxButtons.YesNo); - dr = MessageBox.Show("Your selection was expanded due to merged cell regions.\n\nContinue with the copy?", "Copy Rows", MessageBoxButtons.YesNo); - } - if (dr == DialogResult.Yes) - CopyToCopiedFlexGrid(GridCopyOption.Row); - } - - public void CopyColumn() - { - SelectCol(); - DialogResult dr = DialogResult.Yes; - if (Selection.c1 != Selection.c2) - { - //dr = MessageBox.Show("You selected a column that includes merged cells.\n\nThese additional columns must be included.\n\nCopy these columns?", "Copy Columns", MessageBoxButtons.YesNo); - dr = MessageBox.Show("Your selection was expanded due to merged cell regions.\n\nContinue with the copy?", "Copy Columns", MessageBoxButtons.YesNo); - } - if (dr == DialogResult.Yes) - CopyToCopiedFlexGrid(GridCopyOption.Column); - } - - public void CopyCellSelection() - { - DialogResult dr = DialogResult.Yes; - CellRange cr = Selection; - MakeSelectionEven(); - if (!cr.Equals(Selection)) - { - dr = MessageBox.Show("Your selection was expanded due to merged cell regions.\n\nContinue with the copy?", "Copy Selection", MessageBoxButtons.YesNo); - } - if (dr == DialogResult.Yes) - CopyToCopiedFlexGrid(GridCopyOption.Selection); - } - - public enum enmPastePos : int - { - Before = 1, Replace = 0, After = -1 - } - - public void PasteRows(enmPastePos pp) - { - if (MyCopyInfo.MyCopiedFlexGrid == null || MyCopyInfo.MyCopyOption != GridCopyOption.Row) return; - int rowsToAdd = MyCopyInfo.MyCopiedCellRange.r2 - MyCopyInfo.MyCopiedCellRange.r1 + 1; - int colsToAdd = Math.Max((MyCopyInfo.MyCopiedCellRange.c2 - MyCopyInfo.MyCopiedCellRange.c1 + 1) - Cols.Count, 0); - int selR1 = Selection.r1; - int selR2 = Selection.r2; - int rowOffset = selR1 + (pp == enmPastePos.After ?(selR2-selR1)+1 : 0) - MyCopyInfo.MyCopiedCellRange.r1; - - // If the rows we are copying has more columns than the current table, then append then needed columns to the grid - if (colsToAdd > 0) - { - Cols.Add(colsToAdd); - AdjustMergedColumns(Cols.Count - 1, colsToAdd, false, false); - MyBorders.InsertColumns(Cols.Count - colsToAdd - 1, colsToAdd); - } - - switch (pp) - { - case enmPastePos.Before: - this.Rows.InsertRange(selR1, rowsToAdd); - AdjustMergedRows(selR1, rowsToAdd, true, false); - MyBorders.InsertRows(Rows.Count - rowsToAdd - 1, rowsToAdd); - break; - case enmPastePos.After: - if (selR2+1 < Rows.Count - 1) - { - this.Rows.InsertRange(selR2 + 1, rowsToAdd); - AdjustMergedRows(selR1+1, rowsToAdd, false, false); - } - else - this.Rows.Add(rowsToAdd); - MyBorders.InsertRows(Rows.Count - rowsToAdd - 1, rowsToAdd); - break; - case enmPastePos.Replace: - if (rowsToAdd > Rows.Count - Selection.r1) - { - int numToAdd = rowsToAdd - (Rows.Count = selR1); - this.Rows.Add(numToAdd); - AdjustMergedRows(selR1, numToAdd, false, false); - } - break; - } - - RemoveMergedRanges(MyCopyInfo.MyCopiedCellRange.r1 + rowOffset, MyCopyInfo.MyCopiedCellRange.c1, MyCopyInfo.MyCopiedCellRange.r2 + rowOffset, MyCopyInfo.MyCopiedCellRange.c2); - for (int r = MyCopyInfo.MyCopiedCellRange.r1; r <= MyCopyInfo.MyCopiedCellRange.r2; r++) - { - Rows[r + rowOffset].Height = MyCopyInfo.MyCopiedFlexGrid.Rows[r].Height; - for (int c = MyCopyInfo.MyCopiedCellRange.c1; c <= Math.Min(MyCopyInfo.MyCopiedCellRange.c2 + colsToAdd, Cols.Count - 1); c++) - { - CellRange crm = MyCopyInfo.MyCopiedFlexGrid.GetMergedRange(r, c); - if (r == crm.r1 && c == crm.c1) - { - Cols[c].Width = Math.Max(Cols[c].Width, MyCopyInfo.MyCopiedFlexGrid.Cols[c].Width); - CellRange cr = GetCellRange(crm.r1 + rowOffset, crm.c1, crm.r2 + rowOffset, crm.c2); - // if the paste is above - copy merge range for the destination - // if the paste is below - put back the range for the source location - if ((crm.r2 > crm.r1) || (crm.c2 > crm.c1)) - MergedRanges.Add(cr); - this[r + rowOffset, c] = MyCopyInfo.MyCopiedFlexGrid[r, c]; - MatchStyle(crm, cr); - PasteBorders(r + rowOffset, c, r, c); - // if the paste is above - put back the range for the source location - // if the paste is below - copy merge range for the destination - int r1 = crm.r1 + rowsToAdd - rowOffset; - int r2 = crm.r2 + rowsToAdd - rowOffset; - CellRange ncr = GetCellRange(r1, crm.c1, r2, crm.c2); - if ((crm.r2 > crm.r1) || (crm.c2 > crm.c1)) - MergedRanges.Add(ncr); - } - } - } - - this.AdjustGridControlSize(); - CopyToCopiedFlexGrid(MyCopyInfo.MyCopyOption); - } - - private void MatchStyle(CellRange crm, CellRange cr) - { - if (crm.Style != null) - { - ChangeCellAlign(cr, crm.Style.TextAlign); - ChangeCellBorder(cr, crm.Style.Border.Style); - } - //else - //{ - // cr.Style = null; // - didn't like the null - //} - } - - private void RemoveMergedRanges(int r1, int c1, int r2, int c2) - { - for (int r = r1; r <= r2; r++) - for (int c = c1; c <= c2; c++) - { - CellRange cr = GetMergedRange(r, c); - if (cr.r1 < cr.r2 || cr.c1 < cr.c2) - MergedRanges.Remove(cr); - } - } - - public void PasteColumns(enmPastePos pp) - { - if (MyCopyInfo.MyCopiedFlexGrid == null || MyCopyInfo.MyCopyOption != GridCopyOption.Column) return; - - int colsToAdd = MyCopyInfo.MyCopiedCellRange.c2 - MyCopyInfo.MyCopiedCellRange.c1 + 1; - int rowsToAdd = Math.Max((MyCopyInfo.MyCopiedCellRange.r2 - MyCopyInfo.MyCopiedCellRange.r1 + 1) - Rows.Count, 0); - int selC1 = Selection.c1; - int selC2 = Selection.c2; - int colOffset = selC1 + (pp == enmPastePos.After ? (selC2-selC1)+1 : 0) - MyCopyInfo.MyCopiedCellRange.c1; - - // If the columns we are copying has more rows than the current table, then append the needed rows to the grid - if (rowsToAdd > 0) - { - Rows.Add(rowsToAdd); - AdjustMergedRows(Rows.Count, false, false); - MyBorders.InsertRows(Rows.Count - rowsToAdd - 1,rowsToAdd); - } - - switch (pp) - { - case enmPastePos.Before: - this.Cols.InsertRange(selC1, colsToAdd); - AdjustMergedColumns(selC1, colsToAdd, true, false); - MyBorders.InsertColumns(Cols.Count - colsToAdd - 1, colsToAdd); - break; - case enmPastePos.After: - if (selC2+1 < Cols.Count - 1) - { - this.Cols.InsertRange(selC2+1, colsToAdd); - AdjustMergedColumns(selC1+1, colsToAdd, false, false); - } - else - this.Cols.Add(colsToAdd); - MyBorders.InsertColumns(Cols.Count - colsToAdd - 1, colsToAdd); - break; - case enmPastePos.Replace: - if (colsToAdd > Cols.Count - selC1) - { - int numToAdd = colsToAdd - (Cols.Count - selC1); - this.Cols.Add(numToAdd); - AdjustMergedColumns(selC1, numToAdd, true, false); - } - break; - } - - RemoveMergedRanges(MyCopyInfo.MyCopiedCellRange.r1, MyCopyInfo.MyCopiedCellRange.c1 + colOffset, MyCopyInfo.MyCopiedCellRange.r2, MyCopyInfo.MyCopiedCellRange.c2 + colOffset); - - // Fix the merge ranges - for (int c = MyCopyInfo.MyCopiedCellRange.c1; c <= MyCopyInfo.MyCopiedCellRange.c2; c++) - { - Cols[c + colOffset].Width = MyCopyInfo.MyCopiedFlexGrid.Cols[c].Width; - for (int r = MyCopyInfo.MyCopiedCellRange.r1; r <= Math.Min(MyCopyInfo.MyCopiedCellRange.r2 + rowsToAdd, Rows.Count - 1); r++) - { - CellRange crm = MyCopyInfo.MyCopiedFlexGrid.GetMergedRange(r, c); - if (r == crm.r1 && c == crm.c1) - { - Rows[r].Height = Math.Max(Rows[r].Height, MyCopyInfo.MyCopiedFlexGrid.Rows[r].Height); - CellRange cr = GetCellRange(crm.r1, crm.c1 + colOffset, crm.r2, crm.c2 + colOffset); - // if the paste is to the left - copy merge range for the destination - // if the paste is to the right - put back the range for the source location - if ((crm.r2 > crm.r1) || (crm.c2 > crm.c1)) - MergedRanges.Add(cr); - // copy cell text to the destination, copy the style, copy the cell borders - this[r, c + colOffset] = MyCopyInfo.MyCopiedFlexGrid[r, c]; - MatchStyle(crm, cr); - PasteBorders(r, c + colOffset, r, c); - // if the paste is to the left - put back the range for the source location - // if the paste is to the right - copy merge range for the destination - int c1 = crm.c1 + colsToAdd - colOffset; - int c2 = crm.c2 + colsToAdd - colOffset; - CellRange ncr = GetCellRange(crm.r1, c1, crm.r2, c2); - if ((crm.r2 > crm.r1) || (crm.c2 > crm.c1)) - MergedRanges.Add(ncr); - } - } - } - - this.AdjustGridControlSize(); - CopyToCopiedFlexGrid(MyCopyInfo.MyCopyOption); - - } - - public void PasteCopiedCells() - { - // Warn the user that this type of paste will replace the currently selected (highlighted) table cells and give the option to abort. - DialogResult dr = MessageBox.Show("This will replace the cells that are currently selected (highlighted). \n\nContinue with the paste?","Paste Table Cells",MessageBoxButtons.YesNo,MessageBoxIcon.Question); - if (dr == DialogResult.No) return; - - int nSelRows = Selection.r2 - Selection.r1 + 1; - int nSelCols = Selection.c2 - Selection.c1 + 1; - int nCpyRows = MyCopyInfo.MyCopiedCellRange.r2 - MyCopyInfo.MyCopiedCellRange.r1 + 1; - int nCpyCols = MyCopyInfo.MyCopiedCellRange.c2 - MyCopyInfo.MyCopiedCellRange.c1 + 1; - int colsToAdd = Math.Max(nCpyCols - nSelCols, 0); - int rowsToAdd = Math.Max(nCpyRows - nSelRows, 0); - int rowOffset = Selection.r1 - MyCopyInfo.MyCopiedCellRange.r1; - int colOffset = Selection.c1 - MyCopyInfo.MyCopiedCellRange.c1; - int selR2 = Selection.r2; - int selC2 = Selection.c2; - // If there are more cells to copy than what is seleceted in the target table - // Add extra rows and columns as needed - if (rowsToAdd > 0) - { - if (selR2 < Rows.Count - 1) - { - this.Rows.InsertRange(selR2 + 1, rowsToAdd); - AdjustMergedRows(selR2 + 1, false, false); - } - else - this.Rows.Add(rowsToAdd); - MyBorders.InsertRows(selR2,rowsToAdd); - } - - if (colsToAdd > 0) - { - if (selC2 < Cols.Count - 1) - { - this.Cols.InsertRange(selC2 + 1, colsToAdd); - AdjustMergedColumns(selC2 + 1, false, false); - } - else - this.Cols.Add(colsToAdd); - MyBorders.InsertColumns(selC2,colsToAdd); - } - - RemoveMergedRanges(MyCopyInfo.MyCopiedCellRange.r1 + rowOffset, MyCopyInfo.MyCopiedCellRange.c1 + colOffset, MyCopyInfo.MyCopiedCellRange.r2 + rowOffset, MyCopyInfo.MyCopiedCellRange.c2 + colOffset); - - for (int c = MyCopyInfo.MyCopiedCellRange.c1; c <= Math.Min(MyCopyInfo.MyCopiedCellRange.c2, Cols.Count - 1 - colOffset); c++) - Cols[c + colOffset].Width = Math.Max(MyCopyInfo.MyCopiedFlexGrid.Cols[c].Width, Cols[c + colOffset].Width); - - for (int r = MyCopyInfo.MyCopiedCellRange.r1; r <= Math.Min(MyCopyInfo.MyCopiedCellRange.r2, Rows.Count - 1 - rowOffset); r++) - { - Rows[r + rowOffset].Height = Math.Max(MyCopyInfo.MyCopiedFlexGrid.Rows[r].Height, Rows[r + rowOffset].Height); - for (int c = MyCopyInfo.MyCopiedCellRange.c1; c <= Math.Min(MyCopyInfo.MyCopiedCellRange.c2, Cols.Count - 1 - colOffset); c++) - { - CellRange crm = MyCopyInfo.MyCopiedFlexGrid.GetMergedRange(r, c); - if (r == crm.r1 && c == crm.c1) - { - CellRange cr = GetCellRange(crm.r1 + rowOffset, crm.c1 + colOffset, crm.r2 + rowOffset, crm.c2 + colOffset); - if ((crm.r2 > crm.r1) || (crm.c2 > crm.c1)) - MergedRanges.Add(cr); - this[r + rowOffset, c + colOffset] = MyCopyInfo.MyCopiedFlexGrid[r, c]; - MatchStyle(crm, cr); - PasteBorders(r + rowOffset, c + colOffset, r, c); - } - } - } - this.AdjustGridControlSize(); - CopyToCopiedFlexGrid(MyCopyInfo.MyCopyOption); - } - - #endregion // Copy/Paste - #region Selection - public bool SelectNextCell() - { - int r = this.Row; - int c = this.Col; - CellRange cr = GetMergedRange(r, c); - do - { - c = cr.c2 + 1; - if (c >= this.Cols.Count) - { - r = r + 1; - c = 0; - if (r >= this.Rows.Count) return false; - } - cr = GetMergedRange(r, c); - } while (r != cr.r1 || c != cr.c1); - Select(r, c); - return true; - } - public bool SelectPrevCell() - { - int r = this.Row; - int c = this.Col; - CellRange cr = GetMergedRange(r, c); - do - { - c = cr.c1 - 1; - if (c < 0) - { - r = r - 1; - c = this.Cols.Count-1; - if (r < 0) return false; - } - cr = GetMergedRange(r, c); - c = cr.c1; - } while (r != cr.r1); - Select(r, c); - return true; - } - #endregion - #region SearchableText - public string GetSearchableText() - { - StringBuilder sb = new StringBuilder(); - int r = 0; - int c = 0; - int w = Cols.Count; - int h = Rows.Count; - - while (r < h) - { - CellRange cr = GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - if (this[r, c] != null) - { - string strp = DisplayText.StaticStripRtfCommands((string)this[r, c]); - sb.Append(strp.Replace("\r\n", " ")); - } - sb.Append("\r\n"); - } - c = c + 1; - if (c == w) - { - c = 0; - r = r + 1; - } - } - return sb.ToString(); - } - #endregion - #region Import / Export Grid - - /// - /// Prompts user with Save File dialog. - /// Grid will be saved to an XML file. - /// - /// - public void ExportToXML(string initDir) - { - SaveFileDialog sfd = new SaveFileDialog(); - sfd.DefaultExt = ".xml"; - sfd.Filter = "XML files (*.xml)|*.xml|All files (*.*)|*.* "; - //sfd.InitialDirectory = @"C:\Development\SampleTableData"; - sfd.InitialDirectory = initDir; - sfd.Title = "Save XML File"; - sfd.ShowDialog(); - this.WriteXml(sfd.FileName); - } - public string GetXMLData() - { - string retstr = null; - using (StringWriter sw = new StringWriter()) - { - this.WriteXml(sw); - retstr = sw.GetStringBuilder().ToString(); - sw.Close(); - } - return retstr; - } - /// - /// Prompts user with Save File dialog. - /// Grid will be saved to an Excel file. - /// - /// - public void ExportToExcel(string initDir) - { - SaveFileDialog sfd = new SaveFileDialog(); - sfd.DefaultExt = ".xls"; - sfd.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.* "; - //sfd.InitialDirectory = @"C:\Development\SampleTableData"; - sfd.InitialDirectory = initDir; - sfd.Title = "Save Excel File"; - sfd.ShowDialog(); - this.SaveExcel(sfd.FileName); - } - - /// - /// Prompts user with Open File dialog. - /// XML file will be imported to a table grid. - /// - /// - /// - public string ImportXML(string initDir) - { - string rtn = ""; - OpenFileDialog ofd = new OpenFileDialog(); - ofd.DefaultExt = ".xml"; - ofd.Filter = "XML files (*.xml)|*.xml|All files (*.*)|*.* "; - //ofd.InitialDirectory = @"C:\Development\SampleTableData"; - ofd.InitialDirectory = initDir; - ofd.Multiselect = false; - ofd.Title = "Select XML File"; - ofd.ShowDialog(); - this.Clear(); - this.MergedRanges.Clear(); - this.ReadXml(ofd.FileName); - this.BorderStyle = C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None; - this.KeyActionTab = KeyActionEnum.MoveAcross; - this.AdjustGridControlSize(); - rtn = ofd.SafeFileName; - return rtn; - } - - /// - /// Prompts user with Open File dialog. - /// Excel file will be imported to a table grid. - /// - /// - /// - public string ImportExcel(string initDir) - { - string rtn = ""; - //VlnFlexGrid grd = rbtDefaultTable.Checked ? vlnFlexGrid2 : vlnFlexGrid3; //GetActiveGrid(); - OpenFileDialog ofd = new OpenFileDialog(); - ofd.DefaultExt = ".xls"; - ofd.Filter = "Excel files (*.xls)|*.xls|All files (*.*)|*.*"; - //ofd.InitialDirectory = @"C:\Development\SampleTableData"; - ofd.InitialDirectory = initDir; - ofd.Multiselect = false; - ofd.Title = "Select Excel File"; - ofd.ShowDialog(); - this.Clear(); - this.MergedRanges.Clear(); - this.LoadExcel(ofd.FileName); - this.AdjustGridControlSize(); - rtn = ofd.SafeFileName; - return rtn; - } - - public void ConvertTableROToGrid(string valtext, int rodbid, string roid) - { - VE_Font vefont = _MyItemInfo.GetItemFont(); - this.Font = vefont.WindowsFont; - this.MergedRanges.Clear(); - this.Clear(); - this.IsRoTable = true; - this.ParseTableFromText(valtext, GridLinePattern.Single); - this.AutoSizeCols(); - this.AutoSizeRows(); - this.MakeRTFcells(); - this.RODbId = rodbid; - this.ROID = roid; - } - - private Regex _ReplaceSpaceNewLine = new Regex(@"(?<=\\[^' \\?\r\n\t]*) (?=\r\n)"); - private Regex _ReplaceTokenSpaceToken = new Regex(@"(?<=\\[^' \\?\r\n\t]*) (?=\\)"); - private Regex _RemoveComments = new Regex(@"\\v .*?\\v0( |$)"); - - private string PrepROTableText(string stepText) - { - // we need to convert some RTF command to DOS so that we can - // figure out the table size - stepText = stepText.Replace("\r", ""); - stepText = stepText.Replace("\xF8", @"\'f8"); - stepText = stepText.Replace(@"\par ", "\r\n"); - stepText = _ReplaceTokenSpaceToken.Replace(stepText, ""); - - //Change Token Order to match RTB output - stepText = stepText.Replace(@"\v0\b0", @"\b0\v0"); - stepText = stepText.Replace(@"\b0\ulnone", @"\ulnone\b0"); - stepText = _ReplaceSpaceNewLine.Replace(stepText, ""); - - // Now change the Unicode symbols to DOS symbols - stepText = stepText.Replace(@"\u8209?", "-"); - stepText = stepText.Replace(@"\u9474?", "\xB3"); // Vert Line graphic character - stepText = stepText.Replace(@"\'b0", "\xB0"); - stepText = stepText.Replace(@"\up2 ", "\x9566"); - stepText = stepText.Replace(@"\up0 ", "\x9567"); - stepText = stepText.Replace(@"\ulnone", "\xBB"); - stepText = stepText.Replace(@"\ul", "\xAB"); - stepText = stepText.Replace(@"\{", "{"); - stepText = stepText.Replace(@"\}", "}"); - stepText = stepText.Replace(@"\b0", "\xD6"); - stepText = stepText.Replace(@"\b", "\xD5"); - stepText = stepText.Replace(@"\u160?", "\xA0"); //hard space - stepText = stepText.Replace(@"\u916?", "\x7F"); // delta - stepText = stepText.Replace(@"\u8805?", "\xF2"); //greater than or equal - stepText = stepText.Replace(@"\u8804?", "\xF3"); // less than or equal - stepText = stepText.Replace(@"\u931?", "\xE4"); // sigma - stepText = stepText.Replace(@"\u947?", "\xE7"); // gamma - stepText = stepText.Replace(@"\u9604?", "\xFE"); // accum 2584 - stepText = stepText.Replace(@"\u9679?", "\x7"); // bullet 25CF - stepText = stepText.Replace(@"\u8776?", "\xF7"); // approx eq - stepText = stepText.Replace(@"\u8773?", "\xF0"); // similar eq 2245 - stepText = stepText.Replace(@"\u8730?", "\xFB"); // square root - stepText = stepText.Replace(@"\u961?", "\xE2"); // rho 3C1 - stepText = stepText.Replace(@"\u960?", "\xE3"); // pi - stepText = stepText.Replace(@"\u956?", "\xE6"); // micro - stepText = stepText.Replace(@"\u948?", "\xEB"); // lower case delta - stepText = stepText.Replace(@"\u963?", "\xE5"); // lower case sigma - stepText = stepText.Replace(@"\u274?", "\x90"); // energy, 112 - stepText = stepText.Replace(@"\u949?", "\xEE"); // epsilon - stepText = stepText.Replace(@"\u952?", "\xE9"); // theta, 3B8 - stepText = stepText.Replace(@"\u8857?", "\xEC"); // dot in oval, 2299 - stepText = stepText.Replace(@"\u964?", "\xA8"); // tau, 3C4 - stepText = stepText.Replace(@"\u9830?", "\xA9"); // diamond, 2666 - stepText = stepText.Replace(@"\u8593?", "\x18"); // Up Arrow - changes to \xff - stepText = stepText.Replace(@"\u8595?", "\x19"); // Down Arrow - changes to \xd6 - // Fix "|" followed by a newline - this confuses the table converter - stepText = stepText.Replace(@"|\r\n", @"| \r\n"); - stepText = stepText.Replace(@"|\n\r", @"| \n\r"); - stepText = stepText.Replace(@"|\n", @"| \n"); - - // if the entire row is underlined, then remove the underline and insert a row of dashes - stepText = ConvertUnderlineToRow(stepText); - - return stepText; - } - private bool IsPrintableTableChar(char c) - { - string printablSymbols = "\xB3\xA0\x7F\xF2\xF3\xE4\xE7\xFE\x07\xF7\xF0\xFB\xE2\xE3\xE6\xEB\xE5\x90\xEE\xE9\xEC\xA8\xA9\x18\x19"; - return (((c > '\x1F') && (c < '\x80')) || (printablSymbols.IndexOf(c) >= 0)); - } - private string ConvertUnderlineToRow(string stepText) - { - string rtnStr = ""; - char[] sep = { '\n' }; - string[] lines = stepText.Split(sep); - foreach (string line in lines) - { - int idx = 0; - int chrCnt = 0; - int uOnPos = -1; - int uOffPos = -1; - bool ulineOn = false; - char curChar = line[idx]; - string dashRow = ""; - while (idx < line.Length && !IsPrintableTableChar(line[idx])) - { - if (line[idx] == '\xAB') //underline ON - { - ulineOn = true; - uOnPos = idx; - } - idx++; - } - while (ulineOn && idx < line.Length) - { - if (IsPrintableTableChar(line[idx])) - { - if (line[idx] == '|' || line[idx] == '\xB3') - { - dashRow += new string('-', chrCnt); - dashRow += "|"; - chrCnt = 0; - } - else - chrCnt++; - idx++; - } - else - { - if (line[idx] == '\xBB') //underline OFF - { - uOffPos = idx; - ulineOn = false; - while ((idx < line.Length) && !IsPrintableTableChar(line[idx])) - { - if (line[idx] == '\xAB') - ulineOn = true; - idx++; - } - if (idx == line.Length) - ulineOn = true; - if (!ulineOn) - dashRow = ""; - } - else - idx++; - } - } - string curLine = line; - curLine = curLine.Replace('\xB3', '|'); // replace graphic vert bar with DOS vert bar - if (ulineOn && idx == line.Length) // entire line is underlined, remove underline, insert row of dashes - { - curLine = curLine.Replace("\xAB", ""); // remove Underline ON - curLine = curLine.Replace("\xBB", ""); // remove Underline OFF - dashRow += new string('-', chrCnt); - dashRow = "\n" + dashRow; - } - if (rtnStr.Length > 0) rtnStr += "\n"; - rtnStr += curLine; - rtnStr += dashRow; - } - return rtnStr; - } - - /// - /// This will parse a string containing the ascii text of the old style VE-PROMS (16-bit) tables. - /// It will find the number of rows and columns base on newlines, vertical bars, and dashes. - /// Then it will parse the the text, place them in cells, and attempt to merge cells were needed. - /// - /// - public void ParseTableFromText(string buff,GridLinePattern border) - { - string txtbuff = PrepROTableText(buff); - if (IsRoTable) txtbuff = _RemoveComments.Replace(txtbuff, ""); - int curRow = 0; - int curCol = 0; - int maxRow = 0; - int maxCol = 0; - // Get Max Rows and Max Cols - char[] test = "|\n\x02".ToCharArray(); - int idx = 0; - int idxst = 0; - int colPos = 0; - int strow = 0; - Dictionary dicCols = new Dictionary(); - do - { - idx = txtbuff.IndexOfAny(test, idxst); - if (idx > -1) - { - switch (txtbuff[idx]) - { - case '|': // end of a column - colPos = idxst - strow; - if (!dicCols.ContainsKey(colPos)) - dicCols.Add(colPos, curCol); - else if (curCol > dicCols[colPos]) - { - dicCols.Remove(colPos); - dicCols.Add(colPos, curCol); - } - curCol++; - break; - case '\x02': - case '\n': // end of a row - colPos = idxst - strow; - if (!dicCols.ContainsKey(colPos)) - dicCols.Add(colPos, curCol); - else if (curCol > dicCols[colPos]) - { - dicCols.Remove(colPos); - dicCols.Add(colPos, curCol); - } - curRow++; - strow = idx + 1; - if (curCol > maxCol) - maxCol = curCol; - curCol = 0; - break; - } - idxst = idx + 1; - if (idxst >= txtbuff.Length) - idx = -1; - } - } while (idx != -1); - if (idxst < txtbuff.Length) - { - colPos = idxst - strow; - if (!dicCols.ContainsKey(colPos)) - dicCols.Add(colPos, curCol); - else if (curCol > dicCols[colPos]) - { - dicCols.Remove(colPos); - dicCols.Add(colPos, curCol); - } - } - maxRow = curRow; // +1; - curRow = 0; - curCol = 0; - // The resulting Table Grid size in rows and columns - this.Cols.Count = maxCol + 1; - this.Rows.Count = maxRow + 1; - - // make all rows and columns editable - this.Rows.Fixed = 0; - this.Cols.Fixed = 0; - - // TableCellInfo is used to assign merge ranges - // Make a two dimensional array of TableCellinfo the same size as the table grid - TableCellInfo[,] tci = new TableCellInfo[maxRow + 1, maxCol + 1]; - for (int r = 0; r <= maxRow; r++) - for (int c = 0; c <= maxCol; c++) - tci[r, c] = new TableCellInfo(); - // Read in each cell of the grid - idx = 0; - idxst = 0; - colPos = 0; - strow = 0; - int prevCol = 0; - int tstidx = 0; - string tstr = ""; - bool incRow = false; - do - { - idx = txtbuff.IndexOfAny(test, idxst); - if (idx > -1) - { - switch (txtbuff[idx]) - { - case '|': // end of column - colPos = idxst - strow; - // based on the position of the | char, find what column we are in. - // note that this will tell us if any columns to the left were merged - // the while loop will flag cell that need to be merged - curCol = dicCols[colPos]; - while (curCol > prevCol + 1) - { - tci[curRow, prevCol].MergeColRight = true; - prevCol++; - } - prevCol = curCol; - - // parse out the text to be placed in the table cell - tstr = txtbuff.Substring(idxst, idx - idxst); - if (tstr.Length == 0) - tstr += " "; - // test for a string of '-' characters - for (tstidx = 0; (tstidx < tstr.Length) && (tstr[tstidx] == '-'); tstidx++) ; - if (tstidx < tstr.Length) // not a full line (row) of '-' chars - { - // take a peek at the start of the next piece of table text to parse - // if it starts with a '-' char, then flag to merge the columns up to - // this point with the same columns in the next row - if (idx < txtbuff.Length - 1 && txtbuff[idx + 1] == '-') - { - for (int c = curCol; c >= 0; c--) - if (!tci[curRow, c].ColEnd) - tci[curRow, c].MergeRowBellow = true; - } - // if this column is in a merged grouping of rows, - // get the cell text in the first cell of the merged grouping of cells - // we will append the newly parsed text to this cell's text. - int rw = curRow; - while (rw - 1 >= 0 && tci[rw - 1, curCol].MergeRowBellow) rw--; - int cl = curCol; - while (cl - 1 >= 0 && tci[rw, cl-1].MergeColRight) cl--; - //string jstr = (string)this[rw, curCol]; - string jstr = (string)this[rw, cl]; - if (jstr == null) - jstr = tstr; - else - jstr += ((cl==curCol)? "\n" : "") + tstr; // multi line cell - //jstr += "\n" + tstr; // multi line cell - //this[rw, curCol] = jstr; - this[rw, cl] = jstr; - //// take a peek at the start of the next piece of table text to parse - //// if it starts with a '-' char, then flag to merge the columns up to - //// this point with the same columns in the next row - //if (idx < txtbuff.Length - 1 && txtbuff[idx + 1] == '-') - //{ - // for (int c = curCol; c >= 0; c--) - // if (!tci[curRow, c].ColEnd) - // tci[curRow, c].MergeRowBellow = true; - //} - //int tcol = dicCols[idx]; - //// if were are that the end of the 16-bit text line, but not in the last column, - //// merge the remaining columns to the right - //if (curCol < tcol) - //{ - // for (int i = curCol; i <= tcol; i++) - // tci[curRow, i].MergeColRight = true; - //} - } - else // parsed text contains all dashes - { - // take a peek at the start of the next piece of table text to parse - // if it starts with a space, return, newline, or EndOfFile char, - // then flag to merge the columns up to - // this point with the same columns in the next row - if (idx < txtbuff.Length - 1 && " \r\n\x02".IndexOf(txtbuff[idx + 1]) > 0) - { - int nextCol = (curCol + 1 > this.Cols.Count) ? curCol : curCol + 1; - if (!tci[curRow, nextCol].ColEnd) - tci[curRow, nextCol].MergeRowBellow = true; - //for (int c = nextCol; c >= 0; c--) - // if (!tci[curRow, c].ColEnd) - // tci[curRow, c].MergeRowBellow = true; - } - tci[curRow, curCol].ColEnd = true; - incRow = true; - } - break; - case '\x02': // end of file - case '\n': // new line of 16-bit table text - colPos = idxst - strow; - curCol = dicCols[colPos]; - // see what column we are in - new line might occure before last grid column - strow = idx + 1; - // parse out the cell text - tstr = txtbuff.Substring(idxst, idx - idxst); - if (tstr.EndsWith("\r")) // strip off carrage return - tstr = tstr.Substring(0, tstr.Length - 1); - //tstr = tstr.TrimEnd(" ".ToCharArray()); - if (tstr.Length == 0) - tstr += " "; - // test for a string of '-' characters - for (tstidx = 0; (tstidx < tstr.Length) && (tstr[tstidx] == '-'); tstidx++) ; - if (tstidx < tstr.Length) // not a full line (row) of '-' chars - { - //curCol = dicCols[colPos]; - while (curCol > prevCol + 1) - { - tci[curRow, prevCol].MergeColRight = true; - prevCol++; - } - // if this column is in a merged grouping of rows, - // get the cell text in the first cell of the merged grouping of cells - // we will append the newly parsed text to this cell's text. - int rw = curRow; - while (rw - 1 >= 0 && tci[rw - 1, curCol].MergeRowBellow) rw--; - int cl = curCol; - while (cl - 1 >= 0 && tci[rw, cl-1].MergeColRight) cl--; - //string jstr = (string)this[rw, curCol]; - string jstr = (string)this[rw, cl]; - if (jstr == null) - jstr = tstr; - else - jstr += ((cl == curCol) ? "\n" : "") + tstr; // multi line cell - //jstr += "\n" + tstr; // multi line cell - - //this[rw, curCol] = jstr; - this[rw, cl] = jstr; - } - else if (tstr.Length > 0) // parsed text is all dash characters - { - incRow = true; - if (curRow > 0 && curCol > 0) // merge the column in the previous row with this one - tci[curRow - 1, curCol].MergeRowBellow = false; - } - // if were are that the end of the 16-bit text line, but not in the last column, - // merge the remaining columns to the right - if ((curCol < maxCol) && (tstidx < tstr.Length)) - { - for (int i = curCol; i < maxCol; i++) - tci[curRow, i].MergeColRight = true; - } - if (incRow) - curRow++; - curCol = 0; - incRow = false; - break; - } - idxst = idx + 1; - if (idxst >= txtbuff.Length) - idx = -1; - } - else if (idxst < txtbuff.Length - 1) // handle any remaining text not yet parsed - { - // find the curent column and merge remaining columns to the right - colPos = idxst - strow; - curCol = dicCols.Count==0?0:dicCols[colPos]; - while (curCol > prevCol + 1) - { - tci[curRow, prevCol].MergeColRight = true; - prevCol++; - } - // parse out the remaining text - tstr = txtbuff.Substring(idxst); - //tstr = tstr.TrimEnd(" ".ToCharArray()); - if (tstr.Length == 0) - tstr += " "; - // test for a string of '-' characters - for (tstidx = 0; (tstidx < tstr.Length) && (tstr[tstidx] == '-'); tstidx++) ; - if (tstidx < tstr.Length) - { - // if this column is in a merged grouping of rows, - // get the cell text in the first cell of the merged grouping of cells - // we will append the newly parsed text to this cell's text. - int rw = curRow; - while (rw - 1 >= 0 && tci[rw - 1, curCol].MergeRowBellow) rw--; - int cl = curCol; - while (cl - 1 >= 0 && tci[rw, cl-1].MergeColRight) cl--; - //string jstr = (string)this[rw, curCol]; - string jstr = (string)this[rw, cl]; - if (jstr == null) - jstr = tstr; - else - jstr += ((cl == curCol) ? "\n" : "") + tstr; // multi line cell - //jstr += "\n" + tstr; // multi line cell - //this[rw, curCol] = jstr; - this[rw, cl] = jstr; - } - } - } while (idx != -1); - - // we are done parsing the 16-bit text. - // now set the merge ranges in the table grid, based on the - // information saved in that two dimensional array of TableCellinfo - this.Rows.Count = curRow + 1; - this.AllowMerging = C1.Win.C1FlexGrid.AllowMergingEnum.Custom; - maxRow = curRow; - int rR = 0; - int rC = 0; - for (int r = 0; r <= maxRow; r++) - for (int c = 0; c <= maxCol; c++) - { - if (tci[r, c].MergeColRight) - { - rC = c; - while ((rC < maxCol) && (tci[r, rC].MergeColRight)) rC++; - if (rC > c) - { - this.MergedRanges.Add(this.GetCellRange(r, c, r, rC)); - string cellstr = this[r, c].ToString(); - for (int x = c + 1; x <= rC; x++) - this[r, x] = cellstr; - c = rC; - } - } - } - for (int c = 0; c <= maxCol; c++) - for (int r = 0; r <= maxRow; r++) - { - if (tci[r, c].MergeRowBellow) - { - rR = r; - while ((rR < maxRow) && (tci[rR, c].MergeRowBellow)) rR++; - if (rR > r) - { - this.MergedRanges.Add(this.GetCellRange(r, c, rR, c)); - string cellstr = this[r, c].ToString(); - for (int x = r + 1; x <= rR; x++) - this[x, c] = cellstr; - r = rR; - } - } - } - for (int c = 0; c <= maxCol; c++) - for (int r = 0; r <= maxRow; r++) - { - if (this[r, c] != null) - { - string cellstr = this[r, c].ToString(); - this[r, c] = cellstr.TrimEnd("\r\n\t".ToCharArray()); - //this[r, c] = cellstr.TrimEnd(" \r\n\t".ToCharArray()); - CellRange cr = this.GetMergedRange(r, c); - if (cr.r1 != cr.r2) - TrimMergedRangeCellText(cr); - } - } - MyBorders = new VlnBorders(border, Rows.Count, Cols.Count); - } - - private void TrimMergedRangeCellText(CellRange cr) - { - // count number of newlines - string cellstr = this[cr.r1, cr.c1].ToString(); - string[] strary = cellstr.Split("\n".ToCharArray()); - int nlines = strary.Length; - // count number of rows in merge range - int nrows = (cr.r2 - cr.r1) + 1; - int neededLines = (nlines - (nrows - 1)); - bool bNeedToTrim = (nlines > neededLines); - string jstr = ""; - int LinesToGo = neededLines; - if (bNeedToTrim) - { - int numBlanksEnd = 0; - // find the number of blank lines at the end of this table cell - for (int i = nlines-1; i >= 0; i--) - { - if (strary[i].Trim().Length == 0) - numBlanksEnd++; - else - break; - } - int preBlanksLines = 0; - //foreach (string tmpstr in strary) - // we ignore the ending blank lines - // this allows us to include any blank lines that are between text lines - for (int i = 0; i < nlines - numBlanksEnd; i++) - { - string tmpstr = strary[i]; - int tlen = tmpstr.Trim().Length; - if (tlen > 0 || (LinesToGo < neededLines)) - { - if (jstr.Length > 0) jstr += "\n"; - jstr += tmpstr; - LinesToGo--; - } - else if (LinesToGo == (nlines - (nrows - 1))) - preBlanksLines++; - } - while (LinesToGo > 0) - { - // need to put this type of hard space (not \xA0) to hold the newline position - if (preBlanksLines > 0) - { - jstr = "\\~\n" + jstr; - LinesToGo--; - } - if (numBlanksEnd > 0) - { - jstr += "\n\\~"; - LinesToGo--; - } - } - this[cr.r1, cr.c1] = jstr; - } - } - - #endregion //Import / Export Grid - - #region Bug Work Around - protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e) - { - - // Note: this fixes a bug that happens when the grid has more rows than columns - // notified ComponentOne of the problem 6/25/09 via Email - try - { - base.OnMouseDown(e); - } - catch (Exception ex) - { - while (ex != null) - { - Console.WriteLine("{0} {1} {2}", ex.GetType().Name, ex.Message, ex.StackTrace); - ex = ex.InnerException; - } - } - - } - #endregion //Bug Work Around - - //public void CenterTheCellText() - //{ - // // Cannot use this type of text allignment with RTF text cells - // CellRange cr = this.Selection; - // for (int rw = cr.r1; rw <= cr.r2; rw++) - // for (int col = cr.c1; col <= cr.c2; col++) - // { - // CellRange tmp = this.GetCellRange(rw, col, rw, col); - // string StyleName = string.Format("R{0}C{1}Style", rw, col); - // CellStyle cs = this.Styles.Add(StyleName, tmp.Style); - // cs.TextAlign = TextAlignEnum.CenterCenter; - // tmp.Style = cs; - // } - - //} - #region Uneven Selections - /// - /// True if the top and bottom row of the selection is the same for every column - /// - public bool EvenSelection - { - get - { - if (Selection.c1 < 0 || Selection.c2 < 0 || Selection.r1 < 0 || Selection.r2 < 0) return true; // Even if there is no selection - if (Selection.IsSingleCell) return true; // One cell by definition is Even - int cMin = MinimumColumn(Selection.r1, Selection.c1); // Get the left column of the top row - int cMax = MaximumColumn(Selection.r1, Selection.c2); // Get the right column of the top row - for (int r = Selection.r1 + 1; r <= Selection.r2; r++) - { - // Uneven if the top row in this column doesn't match the first column - if (MinimumColumn(r, Selection.c1) != cMin) - return false; - // Uneven if the bottom row in this column doesn't match the first column - if (MaximumColumn(r, Selection.c2) != cMax) - return false; - } - int rMin = MinimumRow(Selection.r1, Selection.c1); // Get the top row of the left column - int rMax = MaximumRow(Selection.r2, Selection.c1); // Get the bottom row of the left column - for (int c = Selection.c1 + 1; c <= Selection.c2; c++) - { - // Uneven if the top row in this column doesn't match the first column - if (MinimumRow(Selection.r1, c) != rMin) - return false; - // Uneven if the bottom row in this column doesn't match the first column - if (MaximumRow(Selection.r2, c) != rMax) - return false; - } - return true; - } - } - public void MakeSelectionEven() - { - if (Selection.IsSingleCell) return; // One cell by definition is Even - MakeSelectionEven(Selection.r1, Selection.c1, Selection.r2, Selection.c2); - } - public void SelectRow() - { - MakeSelectionEven(Selection.r1, 0, Selection.r2, Cols.Count - 1); - } - public void SelectCol() - { - MakeSelectionEven(0, Selection.c1, Rows.Count - 1, Selection.c2); - } - public void MakeSelectionEven(int r1,int c1, int r2, int c2) - { - if (c1 < 0 || c2 < 0 || r1 < 0 || r2 < 0) return; // if there is no selection don't bother - CellRange cr = GetEvenSelection(r1, c1, r2, c2); - Select(cr); - } - - public CellRange GetEvenSelection() - { - return GetEvenSelection(Selection.r1, Selection.c1, Selection.r2, Selection.c2); - } - - public CellRange GetEvenSelection(int r1, int c1, int r2, int c2) - { - int cMinNew = MinimumColumn(r1, c1); // Get the left column of the top row - int cMaxNew = MaximumColumn(r1, c2); // Get the right column of the top row - int rMinNew = MinimumRow(r1, c1); // Get the top row of the left column - int rMaxNew = MaximumRow(r2, c1); // Get the bottom row of the left column - int cMin = cMinNew; - int cMax = cMaxNew; - int rMin = rMinNew; - int rMax = rMaxNew; - do - { - cMin = cMinNew; - cMax = cMaxNew; - rMin = rMinNew; - rMax = rMaxNew; - for (int r = rMin; r <= rMax; r++) - { - // Uneven if the top row in this column doesn't match the first column - int myMin = MinimumColumn(r, cMin); - if (myMin < cMinNew) - cMinNew = myMin; - // Uneven if the bottom row in this column doesn't match the first column - int myMax = MaximumColumn(r, cMax); - if (myMax > cMaxNew) - cMaxNew = myMax; - } - for (int c = cMinNew; c <= cMaxNew; c++) - { - // if the top row in this column is less than the minimum save it - int myMin = MinimumRow(rMin, c); - if (myMin < rMinNew) - rMinNew = myMin; - // Uneven if the bottom row in this column doesn't match the first column - int myMax = MaximumRow(rMax, c); - if (myMax > rMax) - rMaxNew = myMax; - } - } - while (cMinNew < cMin || cMaxNew > cMax || rMinNew < rMin || rMaxNew > rMax); - CellRange cr = GetCellRange(rMinNew, cMinNew, rMaxNew, cMaxNew); - return cr; - } - private int MinimumColumn(int r, int c) - { - return GetMergedRange(r, c).c1; - } - private int MaximumColumn(int r, int c) - { - return GetMergedRange(r, c).c2; - } - private int MinimumRow(int r, int c) - { - return GetMergedRange(r, c).r1; - } - private int MaximumRow(int r, int c) - { - return GetMergedRange(r, c).r2; - } - public Color StyleBackColor - { - get {return Styles.Normal.BackColor;} - set - { - Styles.Normal.BackColor = value; - Styles.Alternate.BackColor = value; - for (int c = 0; c < Cols.Count; c++) - for (int r = 0; r < Rows.Count; r++) - { - CellRange cr = GetMergedRange(r, c); - if (cr.Style != null && cr.Style.BackColor != value && cr.Style.Name != "Fixed") - { - cr.Style.BackColor = value; - //Console.WriteLine("{0}, {1}, {2}, {3}", r, c, cr.Style.Name, cr.Style.BackColor); - } - } - } - } - /// - /// Returns a list of cells or merged cells within the selection - /// - public List MySelection - { - get - { - List ranges = new List(); - for (int c = Selection.c1; c <= Selection.c2; c++) - for (int r = Selection.r1; r <= Selection.r2; r++) - { - CellRange cr = GetMergedRange(r, c); - if (!ranges.Contains(cr)) - ranges.Add(cr); - } - //} - return ranges; - } - } - /// - /// This is a test to see if MySelection works. - /// - public void BoldMySelection() - { - foreach (CellRange cr in MySelection) - { - using (StepRTB rtb = new StepRTB()) - { - rtb.Rtf = GetCellRTFString(cr.r1, cr.c1); - rtb.SelectAll(); - rtb.SelectionFont = new Font(rtb.SelectionFont, FontStyle.Bold); - this[cr.r1, cr.c1] = rtb.Rtf; - } - } - } - - public void ShowMySelection() - { - int r1 = MySelection[0].r1; - int r2 = MySelection[0].r2; - int c1 = MySelection[0].c1; - int c2 = MySelection[0].c2; - foreach (CellRange cr in MySelection) - { - r1 = Math.Min(r1, cr.r1); - c1 = Math.Min(c1, cr.c1); - r2 = Math.Max(r2, cr.r2); - c2 = Math.Max(c2, cr.c2); - } - Select(r1,c1,r2,c2); - } - - public void Debug_WritelineMySelection() - { - int r1 = MySelection[0].r1; - int r2 = MySelection[0].r2; - int c1 = MySelection[0].c1; - int c2 = MySelection[0].c2; - Console.WriteLine("Initial MySelection[0] {0}", MySelection[0]); - foreach (CellRange cr in MySelection) - { - r1 = Math.Min(r1, cr.r1); - c1 = Math.Min(c1, cr.c1); - r2 = Math.Max(r2, cr.r2); - c2 = Math.Max(c2, cr.c2); - Console.WriteLine("Foreach range ({0},{1}) - ({2},{3})", r1, c1, r2, c2); - } - } - - #endregion - } - /// - /// This is used for storing the grid selection for copy/past Row/Column - /// - public enum GridCopyOption { Row, Column, Selection }; - - #region RTF Class for Cell rendering - /// - /// RTF Should only be used if the contents of the richtextbox are to be converted to an image. - /// - class RTF : StepRTB - { - // messages used by RichEd20.dll - internal const int - WM_USER = 0x0400, - EM_FORMATRANGE = WM_USER + 57; - - // FORMATRANGE is used by RichEd20.dll to render RTF - internal struct FORMATRANGE - { - internal IntPtr hdc, hdcTarget; - internal Rectangle rc, rcPage; - internal int cpMin, cpMax; - } - - // render the control directly into a given Graphics object - // (this does not honor clipping set in the target Graphics object; it that is - // a problem, use the RenderClipped method instead). - public void Render(Graphics g, Rectangle rc) - { - // convert rect from pixels to twips - rc.X = (int)(rc.X * 1440 / g.DpiX); - rc.Y = (int)(rc.Y * 1440 / g.DpiY); - rc.Width = rc.X + (int)((rc.Width) * 1440 / g.DpiX); - rc.Height = rc.Y + (int)((rc.Height) * 1440 / g.DpiY); - - // get dc - IntPtr hdc = g.GetHdc(); - - // set up FORMATRANGE struct - FORMATRANGE fmt = new FORMATRANGE(); - fmt.hdc = fmt.hdcTarget = hdc; - fmt.rc = fmt.rcPage = rc; - fmt.cpMin = 0; - fmt.cpMax = -1; - - // render RTF - int render = 1; - SendMessageFormatRange(Handle, EM_FORMATRANGE, render, ref fmt); - - // clean up - SendMessage(Handle, EM_FORMATRANGE, render, 0); - - // done with dc - g.ReleaseHdc(hdc); - } - - // render RTF into a Graphics object using a temporary bitmap to ensure - // clipping works correctly. - public void RenderClipped(Graphics g, Rectangle rc) - { - // create temp bitmap - Rectangle rcSrc = new Rectangle(0, 0, rc.Width, rc.Height); - using (Bitmap bmp = new Bitmap(rc.Width, rc.Height)) - { - // render RTF into bitmap - using (Graphics gBmp = Graphics.FromImage(bmp)) - { - Render(gBmp, rcSrc); - // transfer bitmap to original Graphics object - // (this honors clipping set in the target Graphics object) - g.DrawImage(bmp, rc, rcSrc, GraphicsUnit.Pixel); - } - } - } - - // SendMessage - [DllImport("USER32.DLL", CharSet = CharSet.Auto)] - static private extern int SendMessage( - IntPtr hWnd, - uint wMsg, - int wParam, - int lParam); - [DllImport("USER32.DLL", CharSet = CharSet.Auto, EntryPoint = "SendMessage")] - static private extern int SendMessageFormatRange( - IntPtr hWnd, - uint wMsg, - int wParam, - ref FORMATRANGE lParam); - } - - #endregion //RTF Class for Cell rendering - # region TableCellInfo for text parse - class TableCellInfo - { - private bool _MergeRowBellow; - - public bool MergeRowBellow - { - get { return _MergeRowBellow; } - set { _MergeRowBellow = value; } - } - private bool _MergeColRight; - - public bool MergeColRight - { - get { return _MergeColRight; } - set { _MergeColRight = value; } - } - private bool _ColEnd; - - public bool ColEnd - { - get { return _ColEnd; } - set { _ColEnd = value; } - } - private string _Text; - - public string Text - { - get { return _Text; } - set { _Text = value; } - } - } - #endregion //TableCellInfo for text parse - #region TableCellEditor - /// - /// TableCellEditor inherits from a StepRTB and is used as a custom cell editor - /// for the C1FlexGrid control. - /// - public class TableCellEditor : StepRTB //System.Windows.Forms.RichTextBox //System.Windows.Forms.TextBox // System.Windows.Forms.ComboBox - { - private VlnFlexGrid _owner; - private int _row, _col; - private char _pendingKey; - private bool _cancel; - public bool _initializingEdit; - - // constructor: attach to owner grid - public TableCellEditor(VlnFlexGrid owner) - { - Visible = false; - AutoSize = false; - BackColor = Color.SkyBlue; - BorderStyle = BorderStyle.None; - ScrollBars = RichTextBoxScrollBars.None; - _initializingEdit = false; - _pendingKey = (char)0; - _cancel = false; - _owner = owner; - _owner.Controls.Add(this); - this.CursorMovement += new StepRTBCursorMovementEvent(TableCellEditor_CursorMovement); - this.CursorKeyPress += new StepRTBCursorKeysEvent(TableCellEditor_CursorKeyPress); - this.Leave += new EventHandler(_editor_Leave); - //this.HeightChanged += new StepRTBEvent(_HeightChanged); - } - protected override void Dispose(bool disposing) - { - base.Dispose(disposing); - } - // start editing: move to cell and activate - public void StartEditing(int row, int col) - { - _initializingEdit = true; - ReadOnly = IsRoTable; - // save coordinates of cell being edited - _row = row; - _col = col; - //this.Clear(); //jsj - // assume we'll save the edits - _cancel = false; - // move editor over the current cell - Rectangle rc = _owner.GetCellRect(row, col, true); - rc.Width--; - rc.Height--; - Bounds = rc; - // initialize control content - Text = ""; - FindAllLinks(); // jsj 1-5-2011 - if (_pendingKey > ' ' && !ReadOnly) - Text = _pendingKey.ToString(); - else if (_owner[row, col] != null) - { - string tmp = _owner[row, col].ToString(); - if (tmp.StartsWith(@"{\rtf")) - Rtf = tmp.Replace(@"\~",@"\u160?"); - else - Text = tmp; - } - Select(Text.Length, 0); - - Size sz = new Size(rc.Width, rc.Height); - - //this.Size = sz; - this.Width = rc.Width; - - // make editor visible - Visible = true; - - // and get the focus - //Select(); - Focus(); - _initializingEdit = false; - } - - void TableCellEditor_CursorKeyPress(object sender, KeyEventArgs args) - { - //throw new Exception("The method or operation is not implemented."); - } - - void TableCellEditor_CursorMovement(object sender, StepRTBCursorMovementEventArgs args) - { - int row = _owner.Selection.r1; - int col = _owner.Selection.c1; - CellRange cr = _owner.GetMergedRange(row, col); - //Console.WriteLine("keystroke {0} selection {1},{2}", args.Key, row, col); - //vlnStackTrace.ShowStack("keystroke {0} selection {1},{2}", args.Key, row, col); - _owner.Select(); - // See if we are in a merged range of cells. - // if so, use the merged range instead of the selected range - // so that we can jump to the top/bottom/left/right of the range - // before attempting the move to the next grid cell. - //int idx = _owner.MergedRanges.IndexOf(row, col); - //if (idx > -1) cr = _owner.MergedRanges[idx]; - - switch (args.Key) - { - case VEPROMS.CSLA.Library.E_ArrowKeys.CtrlDown: - case VEPROMS.CSLA.Library.E_ArrowKeys.Down: - row = cr.r2; - if (row < _owner.Rows.Count - 1) - _owner.Select(_owner.GetMergedRange(row + 1, col)); - else - _owner.OnCursorMovement(this, new VlnFlexGridCursorMovementEventArgs(args.Key)); - break; - case VEPROMS.CSLA.Library.E_ArrowKeys.CtrlLeft: - case VEPROMS.CSLA.Library.E_ArrowKeys.Left: - col = cr.c1; - if (col > 0) - _owner.Select(_owner.GetMergedRange(row, col - 1)); - else if(row > 0) - _owner.Select(_owner.GetMergedRange(row - 1, _owner.Cols.Count - 1)); - else - _owner.OnCursorMovement(this, new VlnFlexGridCursorMovementEventArgs(args.Key)); - break; - case VEPROMS.CSLA.Library.E_ArrowKeys.CtrlRight: - case VEPROMS.CSLA.Library.E_ArrowKeys.Right: - col = cr.c2; - if (col < _owner.Cols.Count - 1) - _owner.Select(_owner.GetMergedRange(row, col + 1)); - else if (cr.r2 < _owner.Rows.Count - 1) - { - CellRange crDest = _owner.GetMergedRange(cr.r2 + 1, 0); - if (cr.r2 < crDest.r1) // It will move to the correct place - _owner.Select(crDest); - else if (crDest.r2 < _owner.Rows.Count) - _owner.Select(_owner.GetMergedRange(crDest.r2 + 1, 0)); - else - _owner.OnCursorMovement(this, new VlnFlexGridCursorMovementEventArgs(args.Key)); - } - else - _owner.OnCursorMovement(this, new VlnFlexGridCursorMovementEventArgs(args.Key)); - break; - case VEPROMS.CSLA.Library.E_ArrowKeys.CtrlUp: - case VEPROMS.CSLA.Library.E_ArrowKeys.Up: - row = cr.r1; - if (row > 0) - _owner.Select(_owner.GetMergedRange(row - 1, col)); - else - _owner.OnCursorMovement(this, new VlnFlexGridCursorMovementEventArgs(args.Key)); - break; - default: - break; - } - //Console.WriteLine("selection {0}", _owner.Selection); - //_owner.Focus(); // focus was jumping out of the grid this keeps it in. - } - - // after edit handler (custom editor) - void _editor_Leave(object sender, EventArgs e) - { - _owner.Invalidate(); - _owner.AdjustGridControlSize(); - } - //void _HeightChanged(object sender, EventArgs args) - //{ - // _owner.Invalidate(); - //} - - // save key that started the editing mode - public void SetPendingKey(char chr) - { - _pendingKey = chr; - } - - // expose internal variables - public bool Cancel { get { return _cancel; } } - public int Row { get { return _row; } } - public int Col { get { return _col; } } - - // move editor after the grid has scrolled - public void UpdatePosition() - { - // get cell rect now - Rectangle rcCell = _owner.GetCellRect(_row, _col, false); - - // intersect with scrollable part of the grid - Rectangle rcScroll = _owner.ClientRectangle; - rcScroll.X = _owner.Cols[_owner.Cols.Fixed].Left; - rcScroll.Y = _owner.Rows[_owner.Rows.Fixed].Top; - rcScroll.Width -= rcScroll.X; - rcScroll.Height -= rcScroll.Y; - rcCell = Rectangle.Intersect(rcCell, rcScroll); - - // and move the control - if (rcCell.Width > 0) rcCell.Width--; - if (rcCell.Height > 0) rcCell.Height--; - Bounds = rcCell; - - Size sz = new Size(_owner.GetCellRect(_row, _col).Width, _owner.GetCellRect(_row, _col).Height); - this.Size = sz; - } - - // lost focus: hide the editor - override protected void OnLeave(System.EventArgs e) - { - // base processing - base.OnLeave(e); - - // copy text to owner grid - if (!_cancel) - { - _owner[_row, _col] = Rtf; //Text; - } - // no more pending keys - _pendingKey = (char)0; - - // done for now, hide editor - Visible = false; - } - - // we will handle the Tab key ourselves - override protected bool IsInputKey(Keys keyData) - { - if (keyData == Keys.Tab) return true; - return base.IsInputKey(keyData); - } - - //// some keys end the editing - //override protected void OnKeyDown(System.Windows.Forms.KeyEventArgs e) - //{ - // switch (e.KeyCode) - // { - // case Keys.Escape: // cancel edits - // _cancel = true; - // _owner.Select(); - // e.Handled = true; - // return; - - // case Keys.Enter: // finish editing - // case Keys.Tab: - // case Keys.Up: - // case Keys.Down: - // case Keys.PageUp: - // case Keys.PageDown: - // _owner.Select(); - // e.Handled = true; - // MoveCursor(e.KeyCode); - // return; - - // default: // default processing - // base.OnKeyDown(e); - // return; - // } - //} - - //// move cursor after done editing - //protected void MoveCursor(Keys key) - //{ - // int row = _owner.Row; - // int col = _owner.Col; - // switch (key) - // { - // case Keys.Tab: col++; break; - // case Keys.Up: row--; break; - // //case Keys.Return: row++; break; - // case Keys.Down: row++; break; - // //case Keys.PageUp: row -= 10; break; - // //case Keys.PageDown: row += 10; break; - // } - - // // validate new selection - // if (row < _owner.Rows.Fixed) row = _owner.Rows.Fixed; - // if (col < _owner.Cols.Fixed) col = _owner.Cols.Fixed; - // if (row > _owner.Rows.Count - 1) row = _owner.Rows.Count - 1; - // if (col > _owner.Cols.Count - 1) col = _owner.Cols.Count - 1; - - // // apply new selection - // _owner.Select(row, col); - //} - - //// suppress some keys to avoid annoying beep - //override protected void OnKeyPress(System.Windows.Forms.KeyPressEventArgs e) - //{ - // switch (e.KeyChar) - // { - // case (char)27: // Keys.Escape: - // case (char)13: // Keys.Enter: - // case (char)9: // Keys.Tab: - // e.Handled = true; - // return; - // } - // base.OnKeyPress(e); - //} - } - #endregion // TableCellEditor - #region TableClipBoardFuncts Class - class TableClipBoardFuncts - { - DataFormats.Format dfmtTableCellRange = DataFormats.GetFormat("TableCellRange"); - private SelectedTableCells mySeldTableCellsObject; - private DataObject myDataObject; - public TableClipBoardFuncts() - { - //mySeldTableCellsObject = new DataObject(dfmtTableCellRange.Name, seldTableCells); - } - - public void Put(CellRange cr) - { - // Copies myObject into the clipboard. - // Clip get the value (text) of all the cells in the selected range - // This is saved as one RTF string. - Clipboard.SetDataObject(cr.Clip, true); // the "true" make the copy persistent - //Console.WriteLine("\nClip: '{0}' \n'{1}'", cr.Clip,cr.DataDisplay); - //mySeldTableCellsObject = new SelectedTableCells(); - //mySeldTableCellsObject.CpbrdCellRange = cr; - // myDataObject = new DataObject(dfmtTableCellRange.Name, mySeldTableCellsObject); - // try - // { - // Clipboard.SetDataObject(myDataObject); //,true); - // } - // catch (Exception ex) - // { - // Console.WriteLine(ex.Message); - // } - - } - - public ArrayList Get() - { - // Retrieves the data from the clipboard. - IDataObject myRetrievedObject = Clipboard.GetDataObject(); - string jj = (string)myRetrievedObject.GetData(DataFormats.Text); - return GetCellStrings(jj); - } - - //public CellRange get_cr_Paste() - //{ - // mySeldTableCellsObject = new SelectedTableCells(); - // CellRange cr = new CellRange(); - // SelectedTableCells sc; - // IDataObject myRetrievedObject = Clipboard.GetDataObject(); - // try - // { - // //object obj = myRetrievedObject.GetData(dfmtTableCellRange.Name); - // object obj = myRetrievedObject.GetData("TableCellRange"); - // //sc = (SelectedTableCells)myRetrievedObject.GetData(dfmtTableCellRange.Name); - // sc = (SelectedTableCells)obj; - // cr = sc.CpbrdCellRange; - // } - // catch (Exception ex) - // { - // Console.WriteLine(ex.Message); - // } - // return cr; - //} - - private ArrayList GetCellStrings(string instr) - { - // The table cells placed on the clipboard is saved as one long RTF string. - // "\r\n\t" defines a cell border - // "\r\n\r" defines beginning of next line (row) - // This function will separate each cell text and place them in an array. - // This allow the clipboard information to be pasted independently from - // how it was selected. - - // Bug fix: the CellRange.Clip (see cr.clip in the Put() function above) is replacing - // new lines with spaces. We need to put them back. - instr = instr.Replace(@"}} \", "}}\r\n\\"); - string tstr = ""; // this will contain the parsed out cell text - ArrayList arylstCellStrings = new ArrayList(); - int sidx = 0; // start index - int tidx = 0; - if (instr != null) - { - int idx = instr.IndexOf(@"{\rtf",sidx+1); // cell boarder - while (idx > 0) - { - tstr = instr.Substring(sidx, idx - sidx); - tstr = tstr.Substring(0, tstr.LastIndexOf('}') + 1); - //Console.WriteLine("\ntstr: '{0}'", tstr); - arylstCellStrings.Add(tstr); - sidx = idx; - idx = instr.IndexOf(@"{\rtf",sidx+1); - } - if (sidx < instr.Length) - { - tstr = instr.Substring(sidx); - arylstCellStrings.Add(tstr); - } - } - return arylstCellStrings; - } - - //private ArrayList GetCellStrings(string instr) - //{ - // // The table cells placed on the clipboard is saved as one long RTF string. - // // "\r\n\t" defines a cell border - // // "\r\n\r" defines beginning of next line (row) - // // This function will separate each cell text and place them in an array. - // // This allow the clipboard information to be pasted independently from - // // how it was selected. - - // string tstr = ""; // this will contain the parsed out cell text - // ArrayList arylstCellStrings = new ArrayList(); - // int sidx = 0; // start index - // int tidx = 0; - // if (instr != null) - // { - // int idx = instr.IndexOf("\r\n\t"); // cell boarder - // if (idx < 0) idx = instr.IndexOf("\r\n\r"); // new line (needed for multiple lines in one cell) - // while (idx > 0) - // { - // tstr = instr.Substring(sidx, idx - sidx); - // tidx = tstr.IndexOf("\r\n\r"); - // if (tidx > 0) - // { - // idx = instr.IndexOf("\r\n\r", sidx); - // tstr = instr.Substring(sidx, idx - sidx); - // } - // arylstCellStrings.Add(tstr.Substring(tstr.IndexOf("{\\rtf"))); - // sidx = idx + 3; - // if (sidx < instr.Length) - // { - // idx = instr.IndexOf("\r\n\t", sidx); - // if (idx < 0) idx = instr.IndexOf("\r\n\r", sidx); - // } - // } - // if (sidx < instr.Length) - // { - // tstr = instr.Substring(sidx); - // arylstCellStrings.Add(tstr.Substring(tstr.IndexOf("{\\rtf"))); - // } - // } - // return arylstCellStrings; - //} - } - - [Serializable] - public class SelectedTableCells : Object - { - private CellRange _cpbrdCellRange; - - public CellRange CpbrdCellRange - { - get { return _cpbrdCellRange; } - set { _cpbrdCellRange = value; } - } - public SelectedTableCells() - { - } - } - #endregion // TableClipBoardFuncts Class - public class VlnFlexGridCursorMovementEventArgs - { - private E_ArrowKeys _Key; - public E_ArrowKeys Key - { - get { return _Key; } - set { _Key = value; } - } - public VlnFlexGridCursorMovementEventArgs(E_ArrowKeys key) - { - _Key = key; - } - } - public class VlnFlexGridPasteEventArgs - { - private string _Text; - public string Text - { - get { return _Text; } - set { _Text = value; } - } - public VlnFlexGridPasteEventArgs(string text) - { - _Text = text; - } - } - public class GridCopyInfo - { - private GridCopyOption _MyCopyOption = GridCopyOption.Selection; - - public GridCopyOption MyCopyOption - { - get { return _MyCopyOption; } - set - { - //Console.WriteLine("MyCopyOption = {0}", _MyCopyOption); - //if (_MyCopyOption != value) - // Console.WriteLine("Changed Option to {0}", value); - _MyCopyOption = value; - } - } - private VlnFlexGrid _MyCopiedFlexGrid = null; - - public VlnFlexGrid MyCopiedFlexGrid - { - get { return _MyCopiedFlexGrid; } - set { _MyCopiedFlexGrid = value; } - } - private CellRange _MyCopiedCellRange; - - public CellRange MyCopiedCellRange - { - get { return _MyCopiedCellRange; } - set { _MyCopiedCellRange = value; } - } - - } -} diff --git a/PROMS/Volian.Controls.Library/VlnSpellCheckDlg - ForDebugAutoIgnor.cs b/PROMS/Volian.Controls.Library/VlnSpellCheckDlg - ForDebugAutoIgnor.cs deleted file mode 100644 index 9f5badd2..00000000 --- a/PROMS/Volian.Controls.Library/VlnSpellCheckDlg - ForDebugAutoIgnor.cs +++ /dev/null @@ -1,316 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using DevComponents.DotNetBar; -using C1.Win.C1SpellChecker; - -namespace Volian.Controls.Library -{ - // Our custom Spell Checker dialog - public partial class VlnSpellCheckDlg : DevComponents.DotNetBar.Office2007Form, ISpellDialog - { - private C1SpellChecker _Spell; - private ISpellCheckableEditor _Editor; - private CharRangeList _Errors; - private int _ErrorCount; - private int _ErrorIndex = -1; // current error index - private bool _AutoSuggest = true; - private string _NoSuggestionsText = "(no suggestions)"; - - Dictionary _changeAll = new Dictionary(); - - /// - /// Gets the object that represents the error currently - /// displayed in the dialog. - /// - public CharRange CurrentError - { - get { return _Errors[_ErrorIndex]; } - } - public bool DidCorrectSpelling = false; // B2015-024 have Spell Checker text changes be in editorial mode (not assign a change bar but keep existing change bar) - - public VlnSpellCheckDlg() - { - InitializeComponent(); - } - /// - /// Initializes the dialog to use the given parameters. - /// - /// to use for spelling. - /// that contains the text to spell-check. - /// that contains the initial error list. - public void Initialize(C1SpellChecker spell, ISpellCheckableEditor editor, CharRangeList errors) - { - _Spell = spell; - _Editor = editor; - _Errors = errors; - if (_Errors == null) - { - _Errors = _Spell.CheckText(_Editor.Text); - } - _ErrorCount += _Errors.Count; - btnAddToDictionary.Visible = _Spell.UserDictionary.Enabled; - } - /// - /// Gets the total number of errors detected in the control. - /// - public int ErrorCount - { - get { return _ErrorCount; } - } - - /// - /// Gets or sets the index of the current error into the list. - /// - public int ErrorIndex - { - get { return _ErrorIndex; } - set - { - _ErrorIndex = value; - UpdateCurrentError(); - } - } - - private void UpdateEditor(string replacement) - { - DidCorrectSpelling = true; - // save starting point to continue checking from here - int start = CurrentError.Start; - - if (replacement.Length == 0) - { - // if replacement is empty, expand over spaces and commas - CharRange delete = CharRange.ExpandOverWhitespace(_Editor.Text, CurrentError); - _Editor.Select(delete.Start, delete.Text.Length); - } - - // replace word in text and re-check - _Editor.SelectedText = replacement; - _Errors = _Spell.CheckText(_Editor.Text, start); - - // update index - ErrorIndex = ErrorIndex; // originally 0; - } - public void Ignore() - { - btnIgnore.PerformClick(); - } - /// - /// Raises the event. - /// - /// that contains the event data. - protected override void OnLoad(EventArgs e) - { - // fire load event - base.OnLoad(e); - Volian.Base.Library.HWndCounter.GetWindowHandlesForCurrentProcess(this.Handle); - - //AddHandle(); - // show first error (after firing load event) - ErrorIndex = 0; - } - // added for debugging - comment out when not using - //public void AddHandle() - //{ - // if (!Handles.Contains(this.Handle)) - // { - // GC.Collect(); - // Handles.Add(this.Handle); - // Console.WriteLine("Handles {0}, RTB Count Created {1}, RTB Count Not Disposed = {2} ", Handles.Count,StepRTB.CountCreated,StepRTB.CountNotDisposed); - - // } - //} - //private static List Handles = new List(); - - private bool _Initializing = false; - private string _OrgWord; - - // update dialog to show current error - private void UpdateCurrentError() - { - // design time - if (DesignMode || _Errors == null) - { - return; - } - // finished with this batch of errors - if (ErrorIndex >= _Errors.Count) - { - // check whether the editor has more text to check - while (_Editor.HasMoreText()) - { - _Errors = _Spell.CheckText(_Editor.Text); - if (_Errors.Count > 0) - { - _ErrorCount += _Errors.Count; - ErrorIndex = 0; - return; - } - } - - // editor has no more text... - DialogResult = DialogResult.OK; - return; - } - - // update current error - CharRange err = CurrentError; - - // select word in editor - _Editor.Select(err.Start, err.Text.Length); - - // honor 'change all' list - if (_changeAll.ContainsKey(err.Text)) - { - txbBadWord.Text = _changeAll[err.Text]; - btnChange_Click(this, EventArgs.Empty); - return; - } - - _Initializing = true; - // show bad word, new text - txbBadWord.Text = _OrgWord = err.Text; - - // repeated word? - if (err.Duplicate) - { - // adjust dialog - lblNotInDictionary.Text = "Duplicate Word"; - btnIgnoreAll.Enabled = false; - btnAddToDictionary.Enabled = false; - btnRemove.Enabled = true; - - // no suggestions - lbSuggestList.Items.Clear(); - } - else - { - // adjust dialog - lblNotInDictionary.Text = "Not In Dictionary"; - btnIgnoreAll.Enabled = true; - btnAddToDictionary.Enabled = true; - btnRemove.Enabled = false; - - SetupSuggestions(err.Text); - } - - // focus to new word - _AutoSuggest = false; - txbBadWord.SelectAll(); - txbBadWord.Focus(); - _AutoSuggest = true; - AcceptButton = btnIgnore; - - // show 'Add' button only if user dictionary is enabled - btnAddToDictionary.Visible = _Spell.UserDictionary.Enabled; - - // all ready, fire ErrorDisplayed event - //OnErrorDisplayed(EventArgs.Empty); - } - - private void SetupSuggestions(string badWord) - { - // show suggestions - _Initializing = true; - string[] suggestions = _Spell.GetSuggestions(badWord); - lbSuggestList.Items.Clear(); - if (suggestions.Length > 0) - { - lbSuggestList.Items.AddRange(suggestions); - lbSuggestList.SelectedIndex = -1; - lbSuggestList.Enabled = true; - } - else - { - lbSuggestList.Items.Add(_NoSuggestionsText); - lbSuggestList.SelectedIndex = -1; - lbSuggestList.Enabled = false; - } - _Initializing = false; - if (_Editor.Control is StepRTB && !(_Editor.Control as StepRTB).MyItemInfo.IsHigh) - { - Ignore(); - } - } - - private void txbBadWord_TextChanged(object sender, EventArgs e) - { - btnChange.Enabled = (_OrgWord != txbBadWord.Text); - btnChangeAll.Enabled = btnChange.Enabled && lblNotInDictionary.Text == "Not In Dictionary"; - btnAddToDictionary.Enabled = _Spell.UserDictionary.Enabled && !InDictionary(txbBadWord.Text); - if (_AutoSuggest && !_Initializing) - { - SetupSuggestions(txbBadWord.Text); - } - } - - private bool InDictionary(string word) - { - if (_Spell.MainDictionary.Contains(word)) - return true; - if (_Spell.CustomDictionary != null && _Spell.CustomDictionary.Contains(word)) - return true; - if (_Spell.UserDictionary != null && _Spell.UserDictionary.Contains(word)) - return true; - return false; - } - - private void btnChange_Click(object sender, EventArgs e) - { - UpdateEditor(txbBadWord.Text); - } - - private void btnChangeAll_Click(object sender, EventArgs e) - { - _changeAll[CurrentError.Text] = txbBadWord.Text; - UpdateEditor(txbBadWord.Text); - } - - private void btnIgnore_Click(object sender, EventArgs e) - { - ErrorIndex++; - } - - private void btnIgnoreAll_Click(object sender, EventArgs e) - { - //Console.WriteLine("handle: {0}", this.Handle); - _Spell.IgnoreList.Add(CurrentError.Text); - _Errors = _Spell.CheckText(_Editor.Text, CurrentError.Start); - UpdateCurrentError(); - } - - private void btnAddToDictionary_Click(object sender, EventArgs e) - { - _Spell.UserDictionary.AddWord(CurrentError.Text); - _Errors = _Spell.CheckText(_Editor.Text, CurrentError.Start); - ErrorIndex = 0; - } - - private void lbSuggestList_SelectedIndexChanged(object sender, EventArgs e) - { - _AutoSuggest = false; - if (!_Initializing && lbSuggestList.Text != _NoSuggestionsText) - txbBadWord.Text = lbSuggestList.Text; - _AutoSuggest = true; - } - - // double-click selects word for suggestion list and changes mis-spelled word - private void lbSuggestList_DoubleClick(object sender, EventArgs e) - { - if (txbBadWord.Text == lbSuggestList.Text) - { - UpdateEditor(txbBadWord.Text); - } - } - - private void btnRemove_Click(object sender, EventArgs e) - { - UpdateEditor(""); - } - } -} \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj.bak b/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj.bak deleted file mode 100644 index 83c4f0fd..00000000 --- a/PROMS/Volian.Controls.Library/Volian.Controls.Library.csproj.bak +++ /dev/null @@ -1,623 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Library - Properties - Volian.Controls.Library - Volian.Controls.Library - SAK - SAK - SAK - SAK - v4.6.1 - - - - - 2.0 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - true - bin\Demo\ - DEBUG;TRACE - full - x86 - prompt - false - - - true - bin\Debug\ - DEBUG;TRACE - full - x86 - prompt - false - - - bin\Debug\ - TRACE - true - pdbonly - x86 - prompt - false - - - true - bin\Demo\ - TRACE;DEMO - full - x86 - prompt - false - - - - - - False - ..\csla20cs-2.1.4-070223\csla20cs\csla20cs\Csla\bin\Debug\Csla.dll - - - True - - - False - ..\..\..\Program Files\Microsoft Visual Studio 8\Common7\IDE\PublicAssemblies\EnvDTE.dll - - - - False - ..\DataLoader\bin\Debug\log4net.dll - - - - - ..\..\..\Program Files (x86)\Reference Assemblies\Microsoft\Framework\.NETFramework\v4.5\System.Core.dll - - - - - - - - - - - - UserControl - - - AnnotationDetails.cs - - - UserControl - - - AnnotationSearch.cs - - - Component - - - BorderListBox.cs - - - Component - - - BorderSelectionPanel.cs - - - - UserControl - - - DisplayApplicability.cs - - - UserControl - - - DisplayBookMarks.cs - - - UserControl - - - DisplayFoldoutMaint.cs - - - UserControl - - - DisplayHistory.cs - - - UserControl - - - DisplayLibDocs.cs - - - UserControl - - - DisplayReports.cs - - - UserControl - - - DisplaySearch.cs - - - UserControl - - - DisplayTags.cs - - - Form - - - dlgChgId.cs - - - Form - - - dlgEnhMissingItem.cs - - - Form - - - dlgUCFImportOptions.cs - - - UserControl - - - EditItem.cs - - - Form - - - FindReplace.cs - - - Form - - - frmEnhanced.cs - - - Form - - - frmImportWordContents.cs - - - Form - - - frmSendErrorLog.cs - - - Form - - - frmViewTextFile.cs - - - UserControl - - - GridItem.cs - - - UserControl - - - ImageItem.cs - - - - Form - - - PreviewMultiLineRO.cs - - - Form - - - PreviewROImage.cs - - - True - True - Settings.settings - - - UserControl - - - RTBItem.cs - - - UserControl - - - RtfRawItem.cs - - - - Component - - - StepPanel.cs - - - UserControl - - - DisplayRO.cs - - - UserControl - - - DisplayTabControl.cs - - - Component - - - DisplayTabItem.cs - - - Component - - - StepTabPanel.cs - - - UserControl - - - StepTabRibbon.cs - - - UserControl - - - DisplayTransition.cs - - - - Component - - - Component - - - DSOTabPanel.cs - - - Component - - - - - True - True - Resources.resx - - - Component - - - RichTextBox41.cs - - - - - Component - - - TransPanel.cs - - - - UserControl - - - vlnExpander.cs - - - Component - - - StepRTB.cs - - - Component - - - VlnFlexGrid.cs - - - - Form - - - VlnSpellCheckDlg.cs - - - UserControl - - - Component - - - vlnTreeView.cs - - - Component - - - vlnTreeView3.cs - - - Form - - - WebBrowser.cs - - - - - - AnnotationDetails.cs - Designer - - - AnnotationSearch.cs - Designer - - - DisplayBookMarks.cs - Designer - - - DisplayLibDocs.cs - Designer - - - DisplaySearch.cs - Designer - - - DisplayTags.cs - Designer - - - dlgEnhMissingItem.cs - - - dlgUCFImportOptions.cs - - - FindReplace.cs - Designer - - - frmEnhanced.cs - - - frmImportWordContents.cs - - - PreviewMultiLineRO.cs - Designer - - - PreviewROImage.cs - Designer - - - RTBItem.cs - Designer - - - Designer - StepPanel.cs - - - Designer - DisplayRO.cs - - - DisplayTabControl.cs - Designer - - - StepTabRibbon.cs - Designer - - - Designer - DisplayTransition.cs - - - Designer - ResXFileCodeGenerator - Resources.Designer.cs - - - vlnExpander.cs - Designer - - - StepRTB.cs - Designer - - - VlnSpellCheckDlg.cs - Designer - - - WebBrowser.cs - Designer - - - - - {34ADDF19-CBBA-4A11-BC99-D141BA2D29EC} - DropDownPanel - - - {b22ce5ad-288c-44cd-8a22-b3bcf77b7161} - FlexableMessageBox - - - {70F23722-19A3-4AC1-A900-55831C945786} - LBWordLibrary - - - {23DECB23-7CEA-433E-88BD-67DA7689B89E} - TablePicker - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {52D74078-3822-410E-889B-464BD21AAB9E} - VG - - - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9} - Volian.Base.Library - - - {2bd7d42a-a8f6-4dea-bdca-5f4d58c6140f} - Volian.Pipe.Library - - - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3} - XYPlots - - - - - {C2034871-761F-4DA0-80F2-6644E616C0F5} - 8 - 0 - 0 - aximp - False - - - {C2034871-761F-4DA0-80F2-6644E616C0F5} - 8 - 0 - 0 - tlbimp - False - True - - - {00020430-0000-0000-C000-000000000046} - 2 - 0 - 0 - primary - False - - - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - - - DisplayApplicability.cs - Designer - - - Designer - DisplayFoldoutMaint.cs - - - DisplayReports.cs - Designer - - - dlgChgId.cs - Designer - - - frmSendErrorLog.cs - Designer - - - frmViewTextFile.cs - Designer - - - Designer - GridItem.cs - - - VlnFlexGrid.cs - Designer - - - - - - - - - \ No newline at end of file diff --git a/PROMS/Volian.Controls.Library/mytransitionquery b/PROMS/Volian.Controls.Library/mytransitionquery deleted file mode 100644 index d66f1c78..00000000 --- a/PROMS/Volian.Controls.Library/mytransitionquery +++ /dev/null @@ -1,9 +0,0 @@ -select dbo.ve_getitemapplicability(iii.itemid) fromappl,dbo.ve_getitemapplicability(ii.itemid) toappl, -dbo.ve_GetShortPath(iii.itemid) frompath,dbo.ve_GetShortPath(ii.itemid) topath, -ccc.type fromtype,cc.type totype -from transitions tt -inner join contents ccc on tt.fromid = ccc.contentid -inner join items iii on ccc.contentid = iii.contentid -inner join items ii on tt.toid = ii.itemid -inner join contents cc on ii.contentid = cc.contentid -where dbo.ve_getitemapplicability(iii.itemid) != dbo.ve_getitemapplicability(ii.itemid) diff --git a/PROMS/Volian.Controls.Library/vlnStackTrace.cs b/PROMS/Volian.Controls.Library/vlnStackTrace.cs deleted file mode 100644 index fd31ef6e..00000000 --- a/PROMS/Volian.Controls.Library/vlnStackTrace.cs +++ /dev/null @@ -1,195 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Diagnostics; - -namespace Volian.Controls.Library -{ - public static class vlnStackTrace - { - public static string GetStack(string str, params object[] objects) - { - return string.Format(str, objects) + StackToString(); - } - public static void ShowStack(string str, params object[] objects) - { - Console.WriteLine(string.Format(str, objects) + StackToString()); - } - public static string GetStack() - { - return StackToString(); - } - public static void ShowStack() - { - Console.WriteLine(StackToString()); - } - private static string StackToString() - { - StringBuilder sb = new StringBuilder(); - StackTrace st = new StackTrace(true); - StackFrame[] sfs = st.GetFrames(); - int ii = 0; - string sLast = ""; - string sThis = ""; - int imax = MatchingStackFrame(sfs); - foreach (StackFrame sf in sfs) - { - if (imax == 0) - sb.Append(string.Format("\r\n{0}---------", "".PadLeft(ii++ * 2))); - imax--; - if (ii < 2) ii++; - else - { - string sMethod = sf.GetMethod().Name; - string sNamespace = sf.GetMethod().ReflectedType.Namespace; - string sType = sf.GetMethod().ReflectedType.Name; - if (sf.GetFileLineNumber() != 0) - { - sMethod += string.Format(" {0}[{1}]", sf.GetFileName(), sf.GetFileLineNumber()); - sThis = ""; - } - else - { - sThis = sNamespace; - } - if (sLast == sThis && sThis != "") - sb.Append(string.Format("\t*.{0}.{1}", sType, sMethod)); - else - sb.Append(string.Format("\r\n{0}{1}.{2}.{3}", "".PadLeft(ii++ * 2), sNamespace, sType, sMethod)); - } - sLast = sThis; - } - return sb.ToString(); - } - public static void ShowStackFirstLocal(string str) - { - Console.WriteLine(str + " " + StackToStringLocal(3,0)); - } - public static void ShowStackLocal(string str,int start) - { - Console.WriteLine(str + " " + StackToStringLocal(start,1)); - } - public static void ShowStackLocal(string str,int start, int limit) - { - Console.WriteLine(str + " " + StackToStringLocal(start, limit)); - } - private static string StackToStringLocal(int start, int limit) - { - StringBuilder sb = new StringBuilder(); - string sep = "Local Method - "; - StackTrace st = new StackTrace(true); - StackFrame[] sfs = st.GetFrames(); - int count = 0; - int localCount = 0; - foreach (StackFrame sf in sfs) - { - count++; - if (count > start) - { - if (sf.GetFileLineNumber() != 0) - { - string sMethod = sf.GetMethod().Name; - string sNamespace = sf.GetMethod().ReflectedType.Namespace; - string sType = sf.GetMethod().ReflectedType.Name; - sMethod += string.Format(" {0}[{1}]", sf.GetFileName(), sf.GetFileLineNumber()); - sb.Append(sep + string.Format("{0}.{1}.{2}", sNamespace, sType, sMethod)); - localCount ++; - if (localCount >= limit) - return sb.ToString(); - sep = "\r\n" + "".PadRight(localCount *2); - } - } - } - if (localCount > 0) - return sb.ToString(); - return "No Local Method"; - } - public static string CalledFrom - { - get - { - StackTrace st = new StackTrace(true); - StackFrame[] sfs = st.GetFrames(); - int count = 0; - foreach (StackFrame sf in sfs) - { - if (sf.GetFileLineNumber() != 0) - { - count++; - { - string sMethod = sf.GetMethod().Name; - string sNamespace = sf.GetMethod().ReflectedType.Namespace; - string sType = sf.GetMethod().ReflectedType.Name; - sMethod += string.Format(" {0}[{1}]", sf.GetFileName(), sf.GetFileLineNumber()); - if (count > 3) - return string.Format("{0}.{1}.{2}", sNamespace, sType, sMethod); - } - } - } - return "No Local Method"; - } - } - private static StackFrame[] _LastSFS; - private static int MatchingStackFrame(StackFrame[] sfs) - { - int iFound = -1; - if (_LastSFS != null) - { - // start at the far end and work backward - for (int i = 1; iFound < 0 && i <= sfs.Length && i <= _LastSFS.Length; i++) - { - if (!Match(sfs[sfs.Length - i],_LastSFS[_LastSFS.Length - i])) - iFound = 1+ sfs.Length - i; - } - } - if (iFound < 0) iFound = sfs.Length; - _LastSFS = (StackFrame[])sfs.Clone(); - return iFound; - } - - private static bool Match(StackFrame stackFrame1, StackFrame stackFrame2) - { - if (stackFrame1.GetMethod().Name != stackFrame2.GetMethod().Name) return false; - if (stackFrame1.GetMethod().DeclaringType.FullName != stackFrame2.GetMethod().DeclaringType.FullName) return false; - if (stackFrame1.GetILOffset() != stackFrame2.GetILOffset()) return false; - return true; - } - public static bool ScrollInStack() - { - StackTrace st = new StackTrace(true); - StackFrame[] sfs = st.GetFrames(); - bool retval = false; - foreach (StackFrame sf in sfs) - { - string sMethod = sf.GetMethod().Name; - string sNamespace = sf.GetMethod().ReflectedType.Namespace; - string sType = sf.GetMethod().ReflectedType.Name; - if (sMethod.ToUpper().Contains("SCROLL") || sType.ToUpper().Contains("SCROLL")) - { - retval = true; - Console.WriteLine("{0}.{1}.{2}", sNamespace, sType, sMethod); - } - } - return retval; - } - /// - /// This will clear the Output window when run in the Development Environment - /// Add EnvDTE and EnvDTE80 to references from .NET - /// - public static void ClearOutputWindow() - { -#if (DEBUG) - try - { - EnvDTE80.DTE2 dte2 = (EnvDTE80.DTE2)System.Runtime.InteropServices.Marshal.GetActiveObject("VisualStudio.DTE.8.0"); - dte2.ToolWindows.OutputWindow.ActivePane.Clear(); - } - catch (Exception ex) - { - Console.WriteLine("ClearOutputWindow {0} - {1}\r\n{2}", ex.GetType().Name, ex.Message, ex.StackTrace); - } -#endif - } - - } -} diff --git a/PROMS/Volian.Controls.Library/vlnTreeView - Copy.cs b/PROMS/Volian.Controls.Library/vlnTreeView - Copy.cs deleted file mode 100644 index 15d8616e..00000000 --- a/PROMS/Volian.Controls.Library/vlnTreeView - Copy.cs +++ /dev/null @@ -1,1771 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Text.RegularExpressions; -using System.Windows.Forms; -using System.Runtime.InteropServices; // For DragHelper -using System.Reflection; -using Csla; -using Csla.Validation; -using VEPROMS.CSLA.Library; - -namespace Volian.Controls.Library -{ - #region DelegatesAndEventArgs - public delegate void vlnTreeViewEvent(object sender, vlnTreeEventArgs args); - public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args); - public delegate bool vlnTreeViewBoolEvent(object sender, vlnTreeEventArgs args); - public delegate bool vlnTreeViewItemInfoDeleteEvent(object sender, vlnTreeItemInfoEventArgs args); - public delegate bool vlnTreeViewItemInfoInsertEvent(object sender, vlnTreeItemInfoInsertEventArgs args); - public delegate bool vlnTreeViewItemInfoPasteEvent(object sender, vlnTreeItemInfoPasteEventArgs args); - public delegate TreeNode vlnTreeViewTreeNodeEvent(object sender, vlnTreeEventArgs args); - public delegate DialogResult vlnTreeViewPropertyEvent(object sender, vlnTreePropertyEventArgs args); - public delegate void vlnTreeViewSectionInfoEvent(object sender, vlnTreeSectionInfoEventArgs args); - public delegate void WordSectionDeletedEvent(object sender, WordSectionEventArgs args); - public partial class vlnTreeSectionInfoEventArgs - { - private SectionInfo _MySectionInfo; - public SectionInfo MySectionInfo - { - get { return _MySectionInfo; } - set { _MySectionInfo = value; } - } - public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo) - { - _MySectionInfo = mySectionInfo; - } - } - public partial class vlnTreeEventArgs - { - #region Business Methods - private TreeNode _Node; - public TreeNode Node - { - get { return _Node; } - set { _Node = value; } - } - private TreeNode _Destination=null; - public TreeNode Destination - { - get { return _Destination; } - set { _Destination = value; } - } - private int _Index; - public int Index - { - get { return _Index; } - set { _Index = value; } - } - #endregion - #region Factory Methods - private vlnTreeEventArgs() { ;} - public vlnTreeEventArgs(TreeNode node) - { - _Node = node; - } - public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index) - { - _Node = node; - _Destination = destination; - _Index = index; - } - #endregion - } - public partial class vlnTreeItemInfoEventArgs - { - #region Business Methods - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - #endregion - #region Factory Methods - private vlnTreeItemInfoEventArgs() { ;} - public vlnTreeItemInfoEventArgs(ItemInfo myItemInfo) - { - _MyItemInfo = myItemInfo; - } - #endregion - } - public enum E_InsertType {Before, After, Child}; - public partial class vlnTreeItemInfoInsertEventArgs - { - #region Business Methods - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - private E_InsertType _InsertType; - public E_InsertType InsertType - { - get { return _InsertType; } - set { _InsertType = value; } - } - private int _Type; - public int Type - { - get { return _Type; } - set { _Type = value; } - } - private E_FromType _FromType; - public E_FromType FromType - { - get { return _FromType; } - set { _FromType = value; } - } - private string _StepText; - public string StepText - { - get { return _StepText; } - set { _StepText = value; } - } - #endregion - #region Factory Methods - private vlnTreeItemInfoInsertEventArgs() { ;} - public vlnTreeItemInfoInsertEventArgs(ItemInfo myItemInfo, E_InsertType insertType, string stepText) - { - _MyItemInfo = myItemInfo; - _InsertType = insertType; - _StepText = stepText; - } - public vlnTreeItemInfoInsertEventArgs(ItemInfo myItemInfo, E_InsertType insertType, string stepText, int type, E_FromType fromType) - { - _MyItemInfo = myItemInfo; - _InsertType = insertType; - _StepText = stepText; - _Type = type; - _FromType = fromType; - } - #endregion - } - #region PasteEventArgs - public partial class vlnTreeItemInfoPasteEventArgs - { - #region Business Methods - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - private int _CopyStartID; - public int CopyStartID - { - get { return _CopyStartID; } - set { _CopyStartID = value; } - } - private ItemInfo.EAddpingPart _PasteType; - public ItemInfo.EAddpingPart PasteType - { - get { return _PasteType; } - set { _PasteType = value; } - } - private int? _Type; - public int? Type - { - get { return _Type; } - set { _Type = value; } - } - #endregion - #region Factory Methods - private vlnTreeItemInfoPasteEventArgs() { ;} - public vlnTreeItemInfoPasteEventArgs(ItemInfo myItemInfo, int copyStartId, ItemInfo.EAddpingPart pasteType, int? type) - { - _MyItemInfo = myItemInfo; - _CopyStartID = copyStartId; - _PasteType = pasteType; - _Type = type; - } - - #endregion - } - #endregion - public partial class vlnTreePropertyEventArgs : EventArgs - { - private string _Title; - public string Title - { - get { return _Title; } - set { _Title = value; } - } - private object _ConfigObject; - public object ConfigObject - { - get { return _ConfigObject; } - set { _ConfigObject = value; } - } - private FolderConfig _FolderConfig; - public FolderConfig FolderConfig - { - get { return _FolderConfig; } - set { _ConfigObject = _FolderConfig = value; } - } - private DocVersionConfig _DocVersionConfig; - public DocVersionConfig DocVersionConfig - { - get { return _DocVersionConfig; } - set { _ConfigObject = _DocVersionConfig = value; } - } - private ProcedureConfig _ProcedureConfig; - public ProcedureConfig ProcedureConfig - { - get { return _ProcedureConfig; } - set { _ConfigObject = _ProcedureConfig = value; } - } - private SectionConfig _SectionConfig; - public SectionConfig SectionConfig - { - get { return _SectionConfig; } - set { _ConfigObject = _SectionConfig = value; } - } - private vlnTreePropertyEventArgs() { ;} - public vlnTreePropertyEventArgs(string title, FolderConfig folderConfig) - { - _Title = title; - FolderConfig = folderConfig; - } - public vlnTreePropertyEventArgs(string title, DocVersionConfig docVersionConfig) - { - _Title = title; - DocVersionConfig = docVersionConfig; - } - public vlnTreePropertyEventArgs(string title, ProcedureConfig procedureConfig) - { - _Title = title; - ProcedureConfig = procedureConfig; - } - public vlnTreePropertyEventArgs(string title, SectionConfig sectionConfig) - { - _Title = title; - DocStyleListConverter.MySection = sectionConfig.MySection; - SectionConfig = sectionConfig; - } - } - #endregion - public partial class vlnTreeView : TreeView - { - #region Local Vars - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - - FolderInfo _LastFolderInfo = null; - ProcedureInfo _LastProcedureInfo = null; - DocVersionInfo _LastDocVersionInfo = null; - SectionInfo _LastSectionInfo = null; - VETreeNode _LastTreeNode = null; - StepInfo _LastStepInfo = null; - ItemInfo _LastItemInfo = null; - #endregion - #region Events - public event vlnTreeViewItemInfoDeleteEvent DeleteItemInfo; - private bool OnDeleteItemInfo(object sender, vlnTreeItemInfoEventArgs args) - { - if (DeleteItemInfo != null) return DeleteItemInfo(sender, args); - return false; - } - public event vlnTreeViewItemInfoInsertEvent InsertItemInfo; - private bool OnInsertItemInfo(object sender, vlnTreeItemInfoInsertEventArgs args) - { - if (InsertItemInfo != null) return InsertItemInfo(sender, args); - return false; - } - public event vlnTreeViewItemInfoPasteEvent PasteItemInfo; - private bool OnPasteItemInfo(object sender, vlnTreeItemInfoPasteEventArgs args) - { - if (PasteItemInfo != null) return PasteItemInfo(sender, args); - return false; - } - public event vlnTreeViewEvent NodeMove; - private void OnNodeMove(object sender, vlnTreeEventArgs args) - { - if (NodeMove != null) NodeMove(sender, args); - } - public event vlnTreeViewEvent NodeCopy; - private void OnNodeCopy(object sender, vlnTreeEventArgs args) - { - if (NodeCopy != null) NodeCopy(sender, args); - } - public event vlnTreeViewPropertyEvent NodeOpenProperty; - private DialogResult OnNodeOpenProperty(object sender, vlnTreePropertyEventArgs args) - { - if (NodeOpenProperty != null) return NodeOpenProperty(sender, args); - return DialogResult.Cancel; - } - public event vlnTreeViewEvent NodeSelect; - private void OnNodeSelect(object sender, vlnTreeEventArgs args) - { - if (NodeSelect != null) NodeSelect(sender, args); - } - public event vlnTreeViewEvent NodeNew; - private void OnNodeNew(object sender, vlnTreeEventArgs args) - { - if (NodeNew != null) NodeNew(sender, args); - } - public event vlnTreeViewEvent NodeSelectionChange; - private void OnNodeSelectionChange(object sender, vlnTreeEventArgs args) - { - if (NodeSelectionChange != null) NodeSelectionChange(sender, args); - } - public event vlnTreeViewSectionInfoEvent SectionShouldClose; - private void OnSectionShouldClose(object sender, vlnTreeSectionInfoEventArgs args) - { - if (SectionShouldClose != null) SectionShouldClose(sender, args); - } - public event WordSectionDeletedEvent WordSectionDeleted; - internal void OnWordSectionDeleted(object sender, WordSectionEventArgs args) - { - WordSectionDeleted(sender, args); - } - public event vlnTreeViewItemInfoEvent OpenItem; - private void OnOpenItem(object sender, vlnTreeItemInfoEventArgs args) - { - if (OpenItem != null) OpenItem(sender, args); - } - #endregion - #region Constructors - public vlnTreeView() - { - InitializeComponent(); - this.AllowDrop = true; - DragHelper.InitCommonControls(); - this.ItemDrag += new ItemDragEventHandler(tv_ItemDrag); - this.DragDrop += new DragEventHandler(tv_DragDrop); - this.DragEnter += new DragEventHandler(tv_DragEnter); - this.DragLeave += new EventHandler(tv_DragLeave); - this.DragOver += new DragEventHandler(tv_DragOver); - this.MouseDown += new MouseEventHandler(tv_MouseDown); - this.KeyPress += new KeyPressEventHandler(tv_KeyPress); - base.AfterSelect += new TreeViewEventHandler(tv_AfterSelect); - } - #endregion - #region MenuSupport - private void tv_AfterSelect(object sender, TreeViewEventArgs e) - { - if(!_AdjustingTree) - OnNodeSelectionChange(sender, new vlnTreeEventArgs(e.Node)); - } - // use to determine which menu items have been selected for those tree nodes - // that allow more than one type of operation associated with their selection. - public enum MenuSelections : int - { - Folder = 1, FolderBefore = 2, FolderAfter = 3, DocVersion = 4, Procedure = 5, ProcedureBefore = 6, ProcedureAfter = 7, Section = 8, SectionBefore = 9, SectionAfter = 10, Step = 11, StepBefore = 12, StepAfter = 13, StepReplace = 14 - } - void tv_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Right) - { - VETreeNode tn = this.GetNodeAt(new Point(e.X, e.Y)) as VETreeNode; - if (tn != null) - { - this.SelectedNode = tn as TreeNode; - Application.DoEvents(); - // Display Menu - ToolStripMenuItem mi = new ToolStripMenuItem(); - ContextMenu cm = new ContextMenu(); - - #region Menu_New - if (tn.VEObject as FolderInfo != null) - { - // For Folders, if no children, can add either docversion or folder. If children are - // folders then can only add another folder, and if children are docversions can only - // add docversion. - FolderInfo fi = tn.VEObject as FolderInfo; - if (fi.MyParent != null) // don't allow insert before/after if at top node - { - cm.MenuItems.Add("Insert Folder Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Insert Folder After", new EventHandler(mi_Click)); - } - if (fi.FolderDocVersionCount == 0) cm.MenuItems.Add("New Folder", new EventHandler(mi_Click)); - if (fi.ChildFolderCount == 0) cm.MenuItems.Add("Create Working Draft", new EventHandler(mi_Click)); - } - else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs - cm.MenuItems.Add("New Procedure", new EventHandler(mi_Click)); - else if (tn.VEObject as ProcedureInfo != null) // Procs can only contain sections - { - cm.MenuItems.Add("Insert Procedure Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Insert Procedure After", new EventHandler(mi_Click)); - cm.MenuItems.Add("New Section", new EventHandler(mi_Click)); - } - else if (tn.VEObject as SectionInfo != null) - { - // A step Section can contain other steps or can contain subsections (either step section - // or word doc section). Also note that there can be a mix. - // A word doc section can contain another subsection (either step section or word doc section), - // but cannot contain steps. - SectionInfo si = tn.VEObject as SectionInfo; - // Do not need step versus Word doc options, user enters this in property page during - // insert process. - cm.MenuItems.Add("Insert Section Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Insert Section After", new EventHandler(mi_Click)); - cm.MenuItems.Add("New Subsection", new EventHandler(mi_Click)); - if (si.IsStepSection) cm.MenuItems.Add("New Step", new EventHandler(mi_Click)); - } - else if (tn.VEObject as StepInfo != null) - { - // check the format for allowable inserts, and also, - ItemInfo i = tn.VEObject as ItemInfo; - if (AddToInsertMenu(i,0)) cm.MenuItems.Add("Insert Step Before", new EventHandler(mi_Click)); - if (AddToInsertMenu(i,1)) cm.MenuItems.Add("Insert Step After", new EventHandler(mi_Click)); - } - #endregion - #region Menu_Open - if (!tn.IsExpanded && tn.VEObject as SectionInfo != null) - { - SectionInfo si = tn.VEObject as SectionInfo; - if (si.IsStepSection) cm.MenuItems.Add("Open", new EventHandler(mi_Click)); - } - else if (!tn.IsExpanded && tn.VEObject as StepInfo != null) - { - StepInfo stpi = tn.VEObject as StepInfo; - if (stpi.HasChildren) cm.MenuItems.Add("Open", new EventHandler(mi_Click)); - } - else if (!tn.IsExpanded) - cm.MenuItems.Add("Open", new EventHandler(mi_Click)); - #endregion - #region Menu_CutCopy - // For initial release, copy is not available for folders or docversions - if (tn.VEObject as ItemInfo != null) - { - cm.MenuItems.Add("Copy", new EventHandler(mi_Click)); - } - #endregion - Menu_Paste(tn, cm); - #region Menu_Delete - // Add delete to the menu unless at the very 'top' node or on a grouping (partinfo) - // node (RNOs, Steps, Cautions, Notes) - PartInfo pi = tn.VEObject as PartInfo; - if (pi == null && tn.Parent!=null) cm.MenuItems.Add("Delete", new EventHandler(mi_Click)); - #endregion - #region Menu_Properties - // Add Properties to the menu unless at the very 'top' node or on a grouping (partinfo) - // node (RNOs, Steps, Cautions, Notes) or at the step level. - PartInfo pia = tn.VEObject as PartInfo; - ItemInfo ii = tn.VEObject as ItemInfo; - if (pia == null && tn.VEObject as StepInfo == null) cm.MenuItems.Add("Properties...", new EventHandler(mi_Click)); - #endregion - cm.Show(this, new Point(e.X, e.Y)); - } - } - } - - private bool AddToInsertMenu(ItemInfo ii, int ba) // 0 = before, 1 = after - { - // set up insert buttons based on format - bool retB = true; - E_AccStep? actable = 0; - StepData sd = ii.FormatStepData; - actable = sd.StepEditData.AcTable; - if (actable == null) actable = 0; - - return (ba == 0) ? !ii.IsRNOPart && (actable & E_AccStep.AddingPrev) > 0 : - !ii.IsRNOPart && (actable & E_AccStep.AddingNext) > 0; - } - private void Menu_Paste(VETreeNode tn, ContextMenu cm) - { - #region MenuPaste - // Find what's in paste buffer & determine whether the paste can occur for the selected node. - object tmpClip = Clipboard.GetData("PromsClipboard"); - if (tmpClip != null) - { - PromsClipboard tstClip = (PromsClipboard)tmpClip; - ItemInfo iiClipboard = ItemInfo.Get(tstClip.itemId); - // if the item doesn't exist anymore, don't allow the paste, by not adding - // paste menu items to context menu. - if (iiClipboard == null) - { - Clipboard.Clear(); - return; - } - // can it be pasted at current node. - if (tn.VEObject as DocVersionInfo != null) // paste item must be a proc - { - if (iiClipboard.IsProcedure) cm.MenuItems.Add("Paste Procedure", new EventHandler(mi_Click)); - } - else - { - ItemInfo iiPasteHere = tn.VEObject as ItemInfo; - if (iiPasteHere != null) - { - if (iiPasteHere.IsProcedure && iiClipboard.IsProcedure) // procedure can be pasted before/replace/after - { - cm.MenuItems.Add("Paste Procedure Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Replace Existing Procedure", new EventHandler(mi_Click)); - cm.MenuItems.Add("Paste Procedure After", new EventHandler(mi_Click)); - } - else if (iiPasteHere.IsProcedure && iiClipboard.IsSection) // procedure must have sections only - cm.MenuItems.Add("Paste Section", new EventHandler(mi_Click)); - else if (iiPasteHere.IsSection && iiClipboard.IsSection) - { - cm.MenuItems.Add("Paste Section Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Replace Existing Section", new EventHandler(mi_Click)); - cm.MenuItems.Add("Paste Section After", new EventHandler(mi_Click)); - } - else if (iiPasteHere.IsStepSection && iiClipboard.IsStep) - cm.MenuItems.Add("Paste Step", new EventHandler(mi_Click)); - else if (iiPasteHere.IsStep && iiClipboard.IsStep) - { - if (AddToInsertMenu(iiPasteHere, 0)) cm.MenuItems.Add("Paste Step Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Replace Existing Step", new EventHandler(mi_Click)); - if (AddToInsertMenu(iiPasteHere, 1)) cm.MenuItems.Add("Paste Step After", new EventHandler(mi_Click)); - } - } - } - } - #endregion - } - - void mi_Click(object sender, EventArgs e) - { - MenuItem mi = (MenuItem)sender; - switch (mi.Text) - { - case "Open": - OpenNode(); - break; - case "Insert Folder Before": - tv_NodeNew(MenuSelections.FolderBefore); - break; - case "Insert Folder After": - tv_NodeNew(MenuSelections.FolderAfter); - break; - case "New Folder": - SelectedNode.Expand(); - tv_NodeNew(MenuSelections.Folder); - break; - case "Create Working Draft": - SelectedNode.Expand(); - tv_NodeNew(MenuSelections.DocVersion); - break; - case "New Procedure": - SelectedNode.Expand(); - tv_NodeNew(MenuSelections.Procedure); - break; - case "Insert Procedure Before": - tv_NodeNew(MenuSelections.ProcedureBefore); - break; - case "Insert Procedure After": - tv_NodeNew(MenuSelections.ProcedureAfter); - break; - case "New Section": - case "New Subsection": - SelectedNode.Expand(); - tv_NodeNew(MenuSelections.Section); - break; - case "Insert Section Before": - tv_NodeNew(MenuSelections.SectionBefore); - break; - case "Insert Section After": - tv_NodeNew(MenuSelections.SectionAfter); - break; - case "Insert Step Before": - tv_NodeNew(MenuSelections.StepBefore); - break; - case "Insert Step After": - tv_NodeNew(MenuSelections.StepAfter); - break; - case "New Step": - SelectedNode.Expand(); - tv_NodeNew(MenuSelections.Step); - break; - case "Copy"://Copy the selected node - tv_NodeCopy(); - break; - // lots of paste options: - case "Paste Procedure": - case "Paste Procedure Before": - case "Replace Existing Procedure": - case "Paste Procedure After": - case "Paste Section": - case "Paste Section Before": - case "Replace Existing Section": - case "Paste Section After": - case "Paste Step": - case "Paste Step Before": - case "Replace Existing Step": - case "Paste Step After": - tv_NodePaste(mi.Text); - break; - case "Delete": - if (tv_NodeDelete()) - { - TreeNode myParent = SelectedNode.Parent; - SelectedNode.Remove(); - SelectedNode = myParent; - OnNodeSelect(this, new vlnTreeEventArgs(SelectedNode)); - } - break; - case "Properties..."://Show the properties for the selected node - SetLastValues((VETreeNode)SelectedNode); - SetupNodeProperties(); - break; - default: - MessageBox.Show(string.Format("Unrecognized Menu Item '{0}'", mi.Text)); - break; - } - } - - [Serializable] - public struct PromsClipboard - { - public int cType; - public int itemId; - } - public enum PromsClipboardType : int - { - Copy = 1, Cut = 2 - } - private void tv_NodePaste(string p) - { - object oClip = Clipboard.GetData("PromsClipboard"); - if (oClip == null) return; - - PromsClipboard iClip = (PromsClipboard) oClip; - ItemInfo iiClipboard = ItemInfo.Get(iClip.itemId); - VETreeNode tn = SelectedNode as VETreeNode; - DocVersionInfo dvi = tn.VEObject as DocVersionInfo; - if (dvi != null) - { - return; - } - - ItemInfo iiPaste = tn.VEObject as ItemInfo; - if (iiPaste == null) return; - if (p.IndexOf("Before") > -1) - PasteBeforeOrAfter(MenuSelections.StepBefore, tn, iiClipboard.ItemID); - else if (p.IndexOf("After") > -1) - PasteBeforeOrAfter(MenuSelections.StepAfter, tn, iiClipboard.ItemID); - else if (p.IndexOf("Replace") > -1) - PasteReplace(tn, iiClipboard.ItemID); - } - private void PasteBeforeOrAfter(MenuSelections newtype, VETreeNode tn, int copyStartID) - { - // If paste-from step is open in the editor, use the OnPasteItemInfo to paste the step and add stepitems - // to the step editor panel. - ItemInfo ii = tn.VEObject as ItemInfo; - ItemInfo.EAddpingPart pasteOpt = newtype == MenuSelections.StepBefore ? ItemInfo.EAddpingPart.Before : ItemInfo.EAddpingPart.After; - // If parent step is open in step editor, the 'OnPasteItemInfo' event will cause - // the item to be pasted in the step editor and the tree. - if (!OnPasteItemInfo(this, new vlnTreeItemInfoPasteEventArgs(ii, copyStartID, pasteOpt, ii.MyContent.Type))) - { - // The parent step was not open in the step editor, just paste step (in data) and add treenode. - ItemInfo newItemInfo = null; - if (newtype == MenuSelections.StepBefore) - newItemInfo = ii.PasteSiblingBefore(copyStartID); - else - newItemInfo = ii.PasteSiblingAfter(copyStartID); - } - SelectedNode = (VETreeNode)((newtype == MenuSelections.StepAfter) ? tn.NextNode : tn.PrevNode); - } - private void PasteReplace(VETreeNode tn, int copyStartID) - { - VETreeNode prevtn = (VETreeNode) tn.PrevNode; - VETreeNode partn = (VETreeNode) tn.Parent; - ItemInfo ii = tn.VEObject as ItemInfo; - if (!OnPasteItemInfo(this, new vlnTreeItemInfoPasteEventArgs(ii, copyStartID, ItemInfo.EAddpingPart.Replace, ii.MyContent.Type))) - { - //return; - ItemInfo replItemInfo = Item.PasteReplace(ii, copyStartID); - } - SelectedNode = (VETreeNode)((prevtn != null) ? prevtn.NextNode : partn.FirstNode); - } - private void tv_NodeCopy() - { - if (SelectedNode==null)return; - VETreeNode tn = SelectedNode as VETreeNode; - ItemInfo ii = tn.VEObject as ItemInfo; - if (ii != null) - { - Clipboard.Clear(); - PromsClipboard iClip; - iClip.itemId = ii.ItemID; - iClip.cType = (int)PromsClipboardType.Copy; - DataObject myDO = new DataObject(); - myDO.SetText(ii.DisplayNumber==null||ii.DisplayNumber==""?" ":ii.DisplayNumber); - myDO.SetData("PromsClipboard", iClip); - Clipboard.SetDataObject(myDO); - //Clipboard.SetData("PromsClipboard", iClip); - //Clipboard.SetData(DataFormats.Text, ii.DisplayNumber); - } - } - #endregion - #region PropertyPagesInterface - private void SetupNodeProperties() - { - VETreeNode tn = SelectedNode as VETreeNode; - if (tn==null)return; - - if ((tn.VEObject as FolderInfo) != null) - OpenProperties(tn.VEObject as FolderInfo); - else if ((tn.VEObject as DocVersionInfo) != null) - OpenProperties(tn.VEObject as DocVersionInfo); - else if ((tn.VEObject as ProcedureInfo) != null) - OpenProperties(tn.VEObject as ProcedureInfo); - else if ((tn.VEObject as SectionInfo) != null) - OpenProperties(tn.VEObject as SectionInfo); - else if ((tn.VEObject as StepInfo) != null) - MessageBox.Show("Open up info tab or whatever is associated with step"); - tn.RefreshNode(); - } - private void OpenProperties(FolderInfo folderInfo) - { - using (Folder folder = folderInfo.Get()) - { - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig)); - } - } - private void OpenProperties(DocVersionInfo dvInfo) - { - using (DocVersion dv = dvInfo.Get()) - { - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", dv.DocVersionConfig.Name), dv.DocVersionConfig)); - } - } - private void OpenProperties(ProcedureInfo procInfo) - { - using (Procedure proc = procInfo.Get()) - { - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig)); - } - } - private void OpenProperties(SectionInfo sectInfo) - { - OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(sectInfo)); - using (Section sect = sectInfo.Get()) - { - string title = null; - if (sectInfo.SectionConfig.Number.Length > 0) - title = string.Format("{0} {1} Properties", sectInfo.SectionConfig.Number, sectInfo.SectionConfig.Title); - else - title = string.Format("{0} Properties", sectInfo.SectionConfig.Title); - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig)); - } - } - private void OpenProperties(StepInfo stpinfo) - { - using (Step stp = stpinfo.Get()) - { - } - } - - #endregion - #region OpenNode - private void tv_KeyPress(object sender, KeyPressEventArgs e) - { - if (e.KeyChar == '\r') - { - OpenNode(); - e.Handled = true; - } - } - public void OpenNode() - { - VETreeNode tn = SelectedNode as VETreeNode; - if (tn != null) - { - if (tn.VEObject.GetType() == typeof(FolderInfo) || tn.VEObject.GetType() == typeof(DocVersionInfo) || tn.VEObject.GetType() == typeof(PartInfo)) - { - if (tn.Nodes.Count > 0) - { - tn.Expand(); - SelectedNode = tn.Nodes[0]; - Focus(); - } - } - else - OnNodeSelect(this, new vlnTreeEventArgs(SelectedNode)); - } - } - #endregion - #region InsertAllLevels - public void tv_NodeNew(MenuSelections newtype) - { - VETreeNode tn = null; - if (SelectedNode == null) return; - SetLastValues((VETreeNode)SelectedNode); - - #region InsertFolderOrDocVersion - if (_LastFolderInfo != null) - { - using (Folder parentfolder = _LastFolderInfo.Get()) - { - if (newtype == MenuSelections.DocVersion) - { - int dvid = -1; // flag to allow user to cancel from dialog & then we remove it. - using (DocVersion docversion = DocVersion.MakeDocVersion(parentfolder, "Working Draft", "Title", null, null, null)) - { - ShowBrokenRules(docversion.BrokenRulesCollection); - SetLastValues(DocVersionInfo.Get(docversion.VersionID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("Working Draft", docversion.DocVersionConfig)) == DialogResult.OK) - { - docversion.Save().Dispose(); - tn = new VETreeNode(_LastDocVersionInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - } - else - dvid = docversion.VersionID; - } - if (dvid != -1) DocVersion.Delete(dvid); - } - else if (newtype == MenuSelections.Folder) - { - int f1 = -1; // flag to allow user to cancel from dialog & then we remove it. - string uniquename = _LastFolderInfo.UniqueChildName("New Folder"); - using (Folder folder = Folder.MakeFolder(parentfolder, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, string.Empty, DateTime.Now, "Test")) - { - ShowBrokenRules(folder.BrokenRulesCollection); - SetLastValues(FolderInfo.Get(folder.FolderID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(uniquename, folder.FolderConfig)) == DialogResult.OK) - { - folder.Save().Dispose(); - tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo); - SelectedNode.Nodes.Add(tn); // add new tree node to end of childlist. - } - else - f1 = folder.FolderID; - } - if (f1 != -1) Folder.Delete(f1); - } - else if (newtype == MenuSelections.FolderAfter||newtype == MenuSelections.FolderBefore) - { - int f2 = -1; - string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder"); - int myindex = SelectedNode.Index + ((newtype == MenuSelections.FolderAfter) ? 1 : 0); - FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.FolderID); - double? myorder = parfolderinfo.NewManualOrder(myindex); - using (Folder folder = Folder.MakeFolder(parentfolder.MyParent, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, myorder, string.Empty, DateTime.Now, "Test")) - { - ShowBrokenRules(folder.BrokenRulesCollection); - SetLastValues(FolderInfo.Get(folder.FolderID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(uniquename, folder.FolderConfig)) == DialogResult.OK) - { - folder.Save().Dispose(); - tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo); - if (newtype == MenuSelections.FolderBefore) SelectedNode.Parent.Nodes.Insert(SelectedNode.Index, tn); - if (newtype == MenuSelections.FolderAfter) SelectedNode.Parent.Nodes.Insert(SelectedNode.Index + 1, tn); - } - else - f2 = folder.FolderID; - } - if (f2 != -1) Folder.Delete(f2); - } - } - } - #endregion - #region InsertProcedure - else if (newtype == MenuSelections.Procedure) - { - int p1 = -1; - using (Procedure procedure = Procedure.MakeProcedure(_LastDocVersionInfo, _LastDocVersionInfo.Procedures.Count!=0?_LastDocVersionInfo.Procedures[_LastDocVersionInfo.Procedures.Count-1]:null, null, "New Procedure", 0)) - { - ShowBrokenRules(procedure.BrokenRulesCollection); - SetLastValues(ProcedureInfo.Get(procedure.ItemID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Procedure", procedure.ProcedureConfig)) == DialogResult.OK) - { - procedure.Save().Dispose(); - tn = new VETreeNode(_LastProcedureInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - } - else - p1 = procedure.ItemID; - } - if (p1 != -1) Item.Delete(p1); - } - else if (newtype == MenuSelections.ProcedureAfter || newtype == MenuSelections.ProcedureBefore) - { - int p2 = -1; - int tvindex = SelectedNode.Index; - // if inserting before, the parent is set in case previous is null, i.e. beginning of the list. - using (Procedure procedure = Procedure.MakeProcedure((newtype == MenuSelections.ProcedureAfter) ? null : _LastProcedureInfo.ActiveParent, (newtype == MenuSelections.ProcedureAfter) ? _LastProcedureInfo : _LastProcedureInfo.MyPrevious, null, "New Procedure", 0)) - { - ShowBrokenRules(procedure.BrokenRulesCollection); - SetLastValues(ProcedureInfo.Get(procedure.ItemID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Procedure", procedure.ProcedureConfig)) == DialogResult.OK) - { - procedure.Save().Dispose(); - tn = new VETreeNode(_LastProcedureInfo); - TreeNode par = SelectedNode.Parent; - par.Nodes.Insert(tvindex + ((newtype == MenuSelections.ProcedureBefore) ? 0 : 1), tn); - } - else - p2 = procedure.ItemID; - } - if (p2 != -1) Item.Delete(p2); - } - #endregion - #region InsertSection - else if (newtype == MenuSelections.Section) // Insert subsection at end of parents section list - { - int s1 = -1; - if (!(_LastProcedureInfo == null) || !(_LastSectionInfo == null)) - { - using (Section section = Section.MakeSection(_LastItemInfo, _LastItemInfo.LastChild(E_FromType.Section), null, "New Section", 10000)) - { - ShowBrokenRules(section.BrokenRulesCollection); - SetLastValues(SectionInfo.Get(section.ItemID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Section", section.SectionConfig)) == DialogResult.OK) - { - tn = new VETreeNode(_LastSectionInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - } - else - s1 = section.ItemID; - } - if (s1 != -1) Item.Delete(s1); - } - } - else if (newtype == MenuSelections.SectionAfter || newtype == MenuSelections.SectionBefore) - { - int tvindex = SelectedNode.Index; - // if inserting before, the parent is set in case previous is null, i.e. beginning of the list. - int s2 = -1; - using (Section section = Section.MakeSection((newtype == MenuSelections.SectionAfter) ? null : _LastSectionInfo.MyParent, (newtype == MenuSelections.SectionAfter) ? _LastSectionInfo : _LastSectionInfo.MyPrevious, null, "New Section", 10000)) - { - ShowBrokenRules(section.BrokenRulesCollection); - SetLastValues(SectionInfo.Get(section.ItemID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Section", section.SectionConfig)) == DialogResult.OK) - { - tn = new VETreeNode(_LastSectionInfo); - TreeNode par = SelectedNode.Parent; - par.Nodes.Insert(tvindex + ((newtype == MenuSelections.SectionBefore) ? 0 : 1), tn); - } - else - s2 = section.ItemID; - } - if (s2 != -1) Item.Delete(s2); - } - #endregion - #region InsertStep - else if (newtype == MenuSelections.Step) // insert step from section - no substeps from tree. - { - tn = InsertChildStep((VETreeNode)SelectedNode); - } - else if (newtype == MenuSelections.StepAfter || newtype == MenuSelections.StepBefore && _LastStepInfo != null) - { - tn = InsertBeforeOrAfter(newtype, (VETreeNode)SelectedNode); - } - #endregion - - if (tn != null) - { - SelectedNode = tn; - OnNodeNew(this, new vlnTreeEventArgs(SelectedNode)); - Refresh(); - } - } - - private VETreeNode InsertChildStep(VETreeNode tn) - { - // If parent step is open in editor, use the OnInsertItemInfo to insert step & add stepitems to step editor panel - ItemInfo ii = tn.VEObject as ItemInfo; - if (OnInsertItemInfo(this, new vlnTreeItemInfoInsertEventArgs(ii, E_InsertType.Child, "New Step", 20002, E_FromType.Step))) - { - return null; // should we try to get to the child? - } - // The parent step was not open in the step editor, just create new step and add treenode. - using (Step step = Step.MakeStep(_LastItemInfo, _LastItemInfo.LastChild(E_FromType.Step), null, "New Step", 20002, E_FromType.Step)) - { - ShowBrokenRules(step.BrokenRulesCollection); - SetLastValues(StepInfo.Get(step.ItemID)); - tn = new VETreeNode(_LastStepInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - } - return tn; - } - - private VETreeNode InsertBeforeOrAfter(MenuSelections newtype, VETreeNode tn) - { - // If parent step is open in editor, use the OnInsertItemInfo to insert step & add stepitems to step editor panel - ItemInfo ii = tn.VEObject as ItemInfo; - if (OnInsertItemInfo(this, new vlnTreeItemInfoInsertEventArgs(ii,(newtype == MenuSelections.StepAfter) ? E_InsertType.After:E_InsertType.Before, "New Step"))) - { - return (VETreeNode)((newtype == MenuSelections.StepAfter) ? tn.NextNode : tn.PrevNode); - } - // The parent step was not open in the step editor, just create new step and add treenode. - int tvindex = SelectedNode.Index; - // if inserting before, the parent is set in case previous is null, i.e. beginning of the list. - ItemInfo parent = (newtype == MenuSelections.StepAfter) ? null : _LastStepInfo.MyParent; - using (Step step = Step.MakeStep(parent, (newtype == MenuSelections.StepAfter) ? _LastStepInfo : _LastStepInfo.MyPrevious, null, "New Step", (int)_LastStepInfo.MyContent.Type, (E_FromType)_LastStepInfo.FirstSibling.ItemParts[0].FromType)) - { - ShowBrokenRules(step.BrokenRulesCollection); - SetLastValues(StepInfo.Get(step.ItemID)); - tn = new VETreeNode(_LastStepInfo); - TreeNode par = SelectedNode.Parent; - par.Nodes.Insert(tvindex + ((newtype == MenuSelections.StepBefore) ? 0 : 1), tn); - } - return tn; - } - private void ShowBrokenRules(BrokenRulesCollection brs) - { - if (brs != null) - { - foreach (BrokenRule br in brs) - { - Console.WriteLine("broken rule {0}", br.Description); - } - } - } - #endregion - #region DeleteAllLevels - private bool tv_NodeDelete() - { - SetLastValues((VETreeNode)SelectedNode); - - DialogResult result = MessageBox.Show("Are you sure you want to delete " + SelectedNode.Text, "Verify Delete", - MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (result == DialogResult.Yes) - { - if (_LastFolderInfo != null) - { - Folder.Delete(_LastFolderInfo.FolderID); - _LastFolderInfo = null; - return true; - } - else if (_LastDocVersionInfo != null) - { - DocVersion.Delete(_LastDocVersionInfo.VersionID); - _LastDocVersionInfo = null; - return true; - } - else if (_LastProcedureInfo != null) - { - // always return false because an event gets fired to delete tree nodes. - if (!DeleteItemInfoAndChildren(_LastProcedureInfo)) return false; - _LastProcedureInfo = null; - return false; - } - else if (_LastSectionInfo != null) - { - OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo)); - // always return false because an event gets fired to delete tree nodes. - if (!DeleteItemInfoAndChildren(_LastSectionInfo)) - { - return false; - } - WordSectionEventArgs args = new WordSectionEventArgs(_LastSectionInfo); - OnWordSectionDeleted(this, args); - _LastSectionInfo = null; - return false; - } - else if (_LastStepInfo != null) - { - // always return false because an event gets fired to delete tree nodes. - if (!DeleteItemInfoAndChildren(_LastStepInfo)) return false; - _LastStepInfo = null; - return false; - } - } - return false; - } - private bool DeleteItemInfoAndChildren(ItemInfo ii) - { - try - { - // send an event to frmVeproms that sends an event to the stepeditor to - // do delete using stepitem - this manages windowing from the step editor. - // If the procedure is open & you're deleting procedure, you want to close open - // window - this is done in DisplayTabControl-DeleteStepTabItem. - if (!OnDeleteItemInfo(this, new vlnTreeItemInfoEventArgs(ii))) - Item.DeleteItemAndChildren(ii); - return true; - } - catch (System.Data.SqlClient.SqlException ex) - { - HandleSqlExceptionOnDelete(ex, ii); - return false; - } - } - private void HandleSqlExceptionOnDelete(System.Data.SqlClient.SqlException ex, ItemInfo ii) - { - if (ex.Message.Contains("has External Transitions and has no next step")) - { - using (TransitionInfoList exTrans = TransitionInfoList.GetExternalTransitions(ii.ItemID)) - { - DialogResult ans = MessageBox.Show("Transitions exist to this step and cannot be adjusted automatically." + - "\r\n\r\nDo you want to be placed on the " + (exTrans.Count > 1 ? "first " : "") + "substep with the problem Transition?" + - "\r\n\r\nSubsteps with Problem Transitions" + - exTrans.Summarize(), - "Cannot Delete This Step", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (ans == DialogResult.Yes) - { - OnOpenItem(this, new vlnTreeItemInfoEventArgs(exTrans[0].MyContent.ContentItems[0])); - } - } - } - else if (ex.Message.Contains("has External Transitions to it's children")) - { - using (TransitionInfoList exTrans = TransitionInfoList.GetExternalTransitionsToChildren(ii.ItemID)) - { - DialogResult ans = MessageBox.Show("Transitions exist to substeps of this step and cannot be adjusted automatically." + - "\r\n\r\nDo you want to be placed on the " + (exTrans.Count > 1 ? "first " : "") + "substep with the problem Transition?" + - "\r\n\r\nSubsteps with Problem Transitions:" + - exTrans.Summarize(), - "Cannot Delete This Step", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (ans == DialogResult.Yes) - { - OnOpenItem(this, new vlnTreeItemInfoEventArgs(exTrans[0].MyContent.ContentItems[0])); - } - } - } - else - MessageBox.Show(ex.Message, "SQL Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - #endregion - #region SetLastValuesAndSaveIfChangedStuff - private void SetLastValues(VETreeNode node) - { - _LastTreeNode = node; - SetLastValues(node.VEObject); - } - private void SetLastValues(IVEDrillDownReadOnly veobject) - { - _LastFolderInfo = veobject as FolderInfo; - _LastDocVersionInfo = veobject as DocVersionInfo; - _LastProcedureInfo = veobject as ProcedureInfo; - _LastSectionInfo = veobject as SectionInfo; - _LastStepInfo = veobject as StepInfo; - _LastItemInfo = veobject as ItemInfo; - } - #endregion - #region Cursor - private bool SetupDragCursor(ImageList il, TreeNode tn) - { - // Reset image list used for drag image - il.Images.Clear(); - int howBig = tn.Bounds.Size.Width + this.Indent; - if (howBig > 256) howBig = 256; - il.ImageSize = new Size(howBig, tn.Bounds.Height); - - // Create new bitmap - // This bitmap will contain the tree node image to be dragged - Bitmap bmp = new Bitmap(tn.Bounds.Width + this.Indent, tn.Bounds.Height); - - // Get graphics from bitmap - Graphics gfx = Graphics.FromImage(bmp); - - // Draw node icon into the bitmap - if (this.ImageList != null) gfx.DrawImage(this.ImageList.Images[0], 0, 0); - - // Draw node label into bitmap - gfx.DrawString(tn.Text, this.Font, new SolidBrush(this.ForeColor), - // new SolidBrush(Color.Blue), - (float)this.Indent, 1.0f); - - // Add bitmap to imagelist - _dragImageList.Images.Add(bmp); - - // Get mouse position in client coordinates - Point p = this.PointToClient(Control.MousePosition); - - // Compute delta between mouse position and node bounds - int dx = p.X + this.Indent - tn.Bounds.Left; - int dy = p.Y - tn.Bounds.Top; - - // Begin dragging image - return DragHelper.ImageList_BeginDrag(_dragImageList.Handle, 0, dx, dy); - } - private void tv_ItemDrag(object sender, System.Windows.Forms.ItemDragEventArgs e) - { - // Get drag node and select it - try - { - TreeNode dragNode = (TreeNode)e.Item; - Type t = dragNode.GetType(); - //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Item Drag {0} - {1}", t.FullName, t.BaseType.FullName); - Type t2 = Type.GetType(t.FullName); - //if(t2 != null) - // if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Item Drag {0} - {1}", t2.FullName, t2.BaseType.FullName); - this.SelectedNode = dragNode; - ItemInfo iidrag = ((VETreeNode)dragNode).VEObject as ItemInfo; - FolderInfo fdrag = ((VETreeNode)dragNode).VEObject as FolderInfo; - DocVersionInfo ddrag = ((VETreeNode)dragNode).VEObject as DocVersionInfo; - if ((iidrag == null && fdrag == null && ddrag == null) || (iidrag != null && iidrag.IsStep)) - { - MessageBox.Show(iidrag==null?"Cannot drag/drop a grouping node.":"Cannot drag/drop a Step"); - return; - } - if (SetupDragCursor(_dragImageList, dragNode)) - { - this.DoDragDrop(dragNode, DragDropEffects.Move | DragDropEffects.Copy);// Begin dragging - DragHelper.ImageList_EndDrag();// End dragging image - } - } - catch (Exception ex) - { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_ItemDrag", ex); - } - } - #endregion - #region DragDrop - ImageList _dragImageList = new ImageList(); - public enum DropPosition : int - { - Child = 0, Before = 1, After = 2 - } - private class DropLocation - { - #region Business Methods - private TreeNode _dropNode; - public TreeNode DropNode - { - get { return _dropNode; } - set { _dropNode = value; } - } - private int _index; - public int Index - { - get { return _index; } - set { _index = value; } - } - private DropPosition _position; - public DropPosition Position - { - get { return _position; } - set { _position = value; } - } - DateTime _lastScroll; - public DateTime LastScroll - { - get { return _lastScroll; } - } - private string _location = string.Empty; - #endregion - #region Constructors - public DropLocation(TreeView tv, System.Windows.Forms.DragEventArgs e, DateTime lastScroll) - { - _lastScroll = lastScroll; - _dropNode = tv.GetNodeAt(tv.PointToClient(new Point(e.X, e.Y))); - if (_dropNode == null) return; - int OffsetY = tv.PointToClient(Cursor.Position).Y - _dropNode.Bounds.Top; - if (OffsetY < _dropNode.Bounds.Height / 3) // First Third - Before - { - _index = _dropNode.Index; - _dropNode = _dropNode.Parent; - _position = DropPosition.Before; - _location = string.Format("Before1 {0}[{1}] y={2}", _dropNode.Text, _index, OffsetY); - } - else if ((OffsetY / 2) < _dropNode.Bounds.Height / 3) // Second Third - Child - { - _location = string.Format("Child {0} y={1}", _dropNode.Text, OffsetY); - _position = DropPosition.Child; - _index = 0; - //if (_dropNode.Parent == null) - //{ - // if(_MyLog.IsInfoEnabled)_MyLog.Info("Root Node"); - //} - } - else // Last Third - After Now I need to check the X value - { - if (_dropNode.NextVisibleNode != null && _dropNode.Nodes.Count > 0 && _dropNode.IsExpanded)// Has Children & Expanded - Insert first child - { - // _dropNode = _dropNode.Nodes[0]; - _index = 0; - _position = DropPosition.Before; - _location = string.Format("Before2 {0}[{1}] y={2}", _dropNode.Text, _index, OffsetY); - } - else // No Children or Children Collapsed - Insert Next at various levels depending upon horizontal location. - { - Point pt = tv.PointToClient(new Point(e.X, e.Y)); - TreeNode nextParent = _dropNode.NextNode; - if (nextParent != null) nextParent = nextParent.Parent; - do - { - _index = _dropNode.Index; - _dropNode = _dropNode.Parent; - } while (pt.X < _dropNode.Bounds.X && _dropNode != nextParent); - _location = string.Format("After {0}[{1}] y={2}", _dropNode.Text, _index, OffsetY); - _position = DropPosition.After; - } - } - LimitMoves(e); - } - public void LimitMoves(DragEventArgs e) - { - if ((e.KeyState & 8) == 0) - { - //TreeNode dragNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode"); - //TreeNode dragNode = (TreeNode)e.Data.GetData("TreeTest.FolderTreeNode"); - TreeNode dragNode = vlnTreeView.GetTreeNodeFromData(e.Data); - switch (_position) - { - case DropPosition.Before: - if (dragNode == _dropNode.Nodes[_index] || dragNode == _dropNode.Nodes[_index].PrevNode) - { - // if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Before {0} {1} {2} {3} {4}", dragNode.Text ,_position.ToString() , _dropNode.Nodes[_index].Text - // ,_dropNode.Nodes[_index].PrevNode,_dropNode.Nodes[_index].NextNode); - _dropNode = null; - } - break; - case DropPosition.Child: - if (dragNode.Parent == _dropNode) - { - // if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Child {0} {1} {2} {3} {4} {5}", dragNode.Text ,_position.ToString() , _dropNode.Nodes[_index].Text - // ,_dropNode.Nodes[_index].PrevNode,_dropNode.Nodes[_index].NextNode,DateTime.Now); - _dropNode = null; - } - break; - case DropPosition.After: - if (dragNode == _dropNode.Nodes[_index] || dragNode == _dropNode.Nodes[_index].NextNode) - { - // if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("After {0} {1} {2} {3} {4}", dragNode.Text ,_position.ToString() , _dropNode.Nodes[_index].Text - // ,_dropNode.Nodes[_index].PrevNode,_dropNode.Nodes[_index].NextNode); - _dropNode = null; - } - break; - } - } - } - #endregion - public override string ToString() - { - return string.Format("{0}[{1}].{2}", _dropNode.Text, _index, _position.ToString()); - } - #region Drawing - private void TreeNodeTriangle(Graphics g) - { - Rectangle r = _dropNode.Bounds; - int RightPos = r.Right + 6; - Point[] RightTriangle = new Point[]{ - new Point(RightPos, r.Y ), - new Point(RightPos - (r.Height / 2), r.Y + (r.Height / 2)), - new Point(RightPos, r.Y + r.Height), - new Point(RightPos - (r.Height / 3), r.Y + (r.Height / 2)) - }; - g.FillPolygon(System.Drawing.Brushes.Black, RightTriangle); - } - private void InsertPointer(TreeNode tn, Graphics g) - { - TreeView tv = _dropNode.TreeView; - Rectangle r2 = _dropNode.Nodes[_index].Bounds; - Rectangle r3 = tn.Bounds; - int y = (_position == DropPosition.Before ? r2.Y : r3.Bottom); - int x = r2.Left; - - if (y == 0) - { - return; - } - //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Line at {0} Node {1}[{2}] {3}", _location, _dropNode.Text, _index, _position.ToString()); - Color lc = (_position == DropPosition.After ? Color.Red : Color.Blue); - Brush lb = (_position == DropPosition.After ? Brushes.Red : Brushes.Blue); - Point[] RightTriangle; - if (_position == DropPosition.After) - { - RightTriangle = new Point[]{ - new Point(x, y ), - new Point(x+4, y+4), - new Point(x+8, y)}; - } - else - { - RightTriangle = new Point[]{ - new Point(x, y), - new Point(x+4, y-4), - new Point(x+8, y)}; - } - g.DrawLine(new System.Drawing.Pen(lc, 2), new Point(r2.Left, y), new Point(tv.Width - 8, y)); - g.FillPolygon(lb, RightTriangle); - } - public void ShowLocation(System.Windows.Forms.DragEventArgs e, bool ScrollOnly) - { - //if (e.Effect == DragDropEffects.None) return; - if (_dropNode != null) - { -// if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation1 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond); - DragHelper.ImageList_DragShowNolock(false); - TreeView tv = _dropNode.TreeView; - TreeNode tmp = tv.GetNodeAt(tv.PointToClient(new Point(e.X, e.Y))); -// if (!ScrollOnly) -// { - if (ScrollTreeView(tmp) || !ScrollOnly) - { - //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation2 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond); - tv.Refresh(); - if (e.Effect != DragDropEffects.None) - { - //tv.SelectedNode = dropNode; - Graphics g = tv.CreateGraphics(); - TreeNodeTriangle(g); - if (_position != DropPosition.Child)InsertPointer(tmp, g); - } - } -// } -// else ScrollTreeView(tmp); - DragHelper.ImageList_DragShowNolock(true); - } - } - #endregion - public void ShowLocation() - { - //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0}[{1}] {2}", _dropNode.Text, _index, _position.ToString()); - } - #region AutoScroll - private bool ScrollTreeView(TreeNode tn) - { - bool retval = false; - TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - _lastScroll.Ticks); - if (ts.Milliseconds > 100)// This controls the scroll speed - { - int top = tn.Bounds.Top; - _lastScroll = DateTime.Now; - if (tn.TreeView.ClientSize.Height < tn.Bounds.Bottom) tn.EnsureVisible();// Make sure that the current node is visible - if (tn.NextVisibleNode != null && tn.TreeView.ClientSize.Height < tn.NextVisibleNode.Bounds.Bottom) - tn.NextVisibleNode.EnsureVisible();// Make sure that the next node is visible - else - if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode.IsVisible == false) - tn.PrevVisibleNode.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible } - else - if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.IsVisible == false) - tn.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible - retval = (top != tn.Bounds.Top); - // if (retval) if(_MyLog.IsInfoEnabled)_MyLog.Info("Scroll"); - } - return retval; - } - #endregion - public bool Equals(DropLocation dl) - { - return (dl != null && _lastScroll.Equals(dl.LastScroll) && _dropNode.Equals(dl.DropNode) && - _position.Equals(dl.Position)); - } - } - private DropLocation _LastDropLocation = null; - private void tv_DragOver(object sender, System.Windows.Forms.DragEventArgs e) - { - try - { - TreeNode dragNode = GetTreeNodeFromData(e.Data); - // Compute drag position and move image - Point formP = this.FindForm().PointToClient(new Point(e.X, e.Y)); - DragHelper.ImageList_DragMove(formP.X - this.Left, formP.Y - this.Top); - DropLocation dl = new DropLocation(this, e, _LastDropLocation == null ? DateTime.Now : _LastDropLocation.LastScroll); - string s = string.Empty; - if (dl.DropNode == null) - { - e.Effect = DragDropEffects.None; - } - else - { - DragDropEffects ee = e.Effect; - if ((e.KeyState & 8) == 8) - ee = DragDropEffects.Copy; // Copy it - else - ee = DragDropEffects.Move; // Move it - if (IsChild(dragNode, dl.DropNode)) // Don't copy or move to a child node - ee = DragDropEffects.None; - else if (IsDocVersion((VETreeNode)dragNode)) // Don't move docversions - ee = DragDropEffects.None; - else if (IsFolder((VETreeNode)dragNode)) // Folder move is only valid if moving to folder with NO docversions - { - FolderInfo fdropi = ((VETreeNode)dl.DropNode).VEObject as FolderInfo; - if (fdropi == null || fdropi.FolderDocVersionCount > 0) ee = DragDropEffects.None; - } - else if (IsSection((VETreeNode)dragNode)) - { - // A section can be moved within a procedure or to a section within the same procedure... - // For HLP, just move within the same procedure - // TODO: allow for section move within subsections. - ProcedureInfo pdropi = ((VETreeNode)dl.DropNode).VEObject as ProcedureInfo; - if (pdropi == null || (dragNode.Parent != dl.DropNode)) ee = DragDropEffects.None; - } - else if (!IsFolder((VETreeNode)dragNode) && (dragNode.Parent != dl.DropNode)) - ee = DragDropEffects.None; - if (e.Effect != ee) e.Effect = ee; - dl.ShowLocation(e, dl.Equals(_LastDropLocation)); - _LastDropLocation = dl; - } - } - catch (Exception ex) - { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragOver", ex); - } - } - - private bool IsSection(VETreeNode vETreeNode) - { - SectionInfo sectInfo = vETreeNode.VEObject as SectionInfo; - if (sectInfo != null) return true; - return false; - } - private bool IsProcedure(VETreeNode vETreeNode) - { - ProcedureInfo procInfo = vETreeNode.VEObject as ProcedureInfo; - if (procInfo != null) return true; - return false; - } - private bool IsDocVersion(VETreeNode dragNode) - { - DocVersionInfo dvInfo = dragNode.VEObject as DocVersionInfo; - if (dvInfo != null) return true; - return false; - } - private static TreeNode GetTreeNodeFromData(IDataObject datobj) - { - foreach (string s in datobj.GetFormats()) - { - try - { - return (TreeNode)datobj.GetData(s); - } - catch (Exception ex) - { - if(_MyLog.IsErrorEnabled)_MyLog.Error("GetTreeNodeFromData", ex); - } - } - return null; - } - private bool IsFolder(VETreeNode veTreeNode) - { - return (veTreeNode.VEObject.GetType() == typeof(FolderInfo)); - } - private void tv_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) - { - try - { - TreeNode dragNode = GetTreeNodeFromData(e.Data); - DragHelper.ImageList_DragLeave(this.Handle); - int index = _LastDropLocation.Index + (_LastDropLocation.Position == DropPosition.After ? 1 : 0); - int myIndex = index; - if (dragNode.Parent == _LastDropLocation.DropNode && dragNode.Index <= _LastDropLocation.Index) index--; - if (e.Effect == DragDropEffects.Move)// If Move Remove drag node from parent - dragNode.Remove(); - else - dragNode = Clone(dragNode); - _LastDropLocation.DropNode.Nodes.Insert(index, dragNode); - this.SelectedNode = dragNode; - FolderInfo fdragi = ((VETreeNode)dragNode).VEObject as FolderInfo; - FolderInfo fdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as FolderInfo; - if (fdragi != null && fdropi != null && fdropi.FolderDocVersionCount==0) - { - using (Folder fdrag = fdragi.Get()) - { - using (Folder fdrop = fdropi.Get()) - { - fdrag.ManualOrder = fdropi.NewManualOrder(myIndex); - fdrag.MyParent = fdrop; - fdrag.Save(); - } - } - return; - } - // No drag/drop supported for document versions. - - // Allow drag/drop of procedures within a Document Version (must have same parent). Note that drop location - // may either be a document version or a procedure depending on where the user wants to position the procedure. - ProcedureInfo pdragi = ((VETreeNode)dragNode).VEObject as ProcedureInfo; - ProcedureInfo pdropi = null; - if (pdragi != null) // moving a procedure - { - pdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as ProcedureInfo; - if (pdropi != null && pdragi.ActiveParent == pdropi.ActiveParent) - { - pdragi.MoveProcedure(pdragi.ActiveParent, myIndex); - return; - } - DocVersionInfo dvdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as DocVersionInfo; - DocVersionInfo dvdragpar = pdragi.ActiveParent as DocVersionInfo; - if (dvdropi != null && dvdragpar.VersionID == dvdropi.VersionID) - { - pdragi.MoveProcedure(dvdropi, myIndex); - return; - } - } - - // Allow drag/drop of sections within the same procedure or same section (if subsection) (must have same parent) - SectionInfo sdragi = ((VETreeNode)dragNode).VEObject as SectionInfo; - SectionInfo sdropi = null; - if (sdragi != null) // moving a section - { - sdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as SectionInfo; - if (sdropi != null && sdragi.ActiveParent == sdropi.ActiveParent) - { - sdragi.MoveSection(sdragi, myIndex); - return; - } - pdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as ProcedureInfo; - if (pdropi != null && sdragi.MyParent.ItemID == pdropi.ItemID) - { - sdragi.MoveSection(pdropi, myIndex); - return; - } - } - - // Allow drag/drop of steps within the same parent only - StepInfo stdragi = ((VETreeNode)dragNode).VEObject as StepInfo; - StepInfo stdropi = null; - if (stdragi != null) // moving a step - { - stdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as StepInfo; - if (stdropi != null && stdragi.ActiveParent == stdropi.ActiveParent) - { - stdragi.MoveStep(stdragi.ActiveParent, myIndex); - return; - } - sdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as SectionInfo; - if (sdropi != null && stdragi.MyParent.ItemID == sdropi.ItemID) - { - stdragi.MoveStep(stdragi.ActiveParent, myIndex); - return; - } - // the following handles items under the app nodes of 'steps', 'notes', 'cautions', etc. - if (sdropi == null && dragNode.Parent == _LastDropLocation.DropNode) - { - stdragi.MoveStep(stdragi.ActiveParent, myIndex); - return; - } - } - } - catch (Exception ex) - { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragDrop", ex); - } - } -// private void DumpMembers(object o) -// { -// Type t = o.GetType(); -// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("\r\n\r\nMembers for type {0}", t.ToString()); -// MemberInfo[] mis = t.GetMembers(); -// int i = 0; -// foreach (MemberInfo mi in mis) -// { -// i++; -// try -// { -// //if(mi.MemberType != MemberTypes.Method) -// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0} {1} {2}", i, mi.Name, mi.MemberType); -//// if (fi.Name == "TreeView") -//// fi.SetValue(o, null); -// } -// catch (Exception ex) -// { -// if(_MyLog.IsErrorEnabled)_MyLog.Error("DumpMembers", ex); -// } -// } -// } - private TreeNode Clone(TreeNode tn) - { - - TreeNode tmp = (TreeNode)tn.Clone(); - ExpandMatch(tmp,tn); - return tmp; - } - private void tv_DragDropOld(object sender, System.Windows.Forms.DragEventArgs e) - { - TreeNode dragNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");// Get the drag node - DragHelper.ImageList_DragLeave(this.Handle); - TreeNode cloneNode = (TreeNode)dragNode.Clone();// copy the source node - ExpandMatch(cloneNode, dragNode); - _LastDropLocation.DropNode.Nodes.Insert(_LastDropLocation.Index + (_LastDropLocation.Position == DropPosition.After ? 1 : 0), cloneNode); - if (e.Effect == DragDropEffects.Move)// If Move Remove drag node from parent - dragNode.Remove(); - this.SelectedNode = cloneNode; - } - private void tv_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) - { - DragHelper.ImageList_DragEnter(this.Handle, e.X - this.Left, e.Y - this.Top); - } - private void tv_DragLeave(object sender, System.EventArgs e) - { - DragHelper.ImageList_DragLeave(this.Handle); - this.Refresh(); - } - private void ExpandMatch(TreeNode tn1, TreeNode tn2) - { - if (tn2.IsExpanded) tn1.Expand(); - foreach (TreeNode tc in tn2.Nodes) ExpandMatch(tn1.Nodes[tc.Index], tc); - } - private bool IsChild(TreeNode parent, TreeNode child) - { - if (parent.Equals(child)) return true;// Check against self - foreach (TreeNode tc in parent.Nodes) if (IsChild(tc, child)) return true;//Check all children - return false;// Must not be a child at this level - } - #endregion - private bool _AdjustingTree = false; - public void AdjustTree(ItemInfo selectedItem) - { - // start at the top parent and walk down the nodes to find child - VETreeNode node = FindNodeAndExpand(selectedItem); - if (node != null) - { - _AdjustingTree = true; - this.SelectedNode = node; - _AdjustingTree = false; - } - } - public VETreeNode FindNodeAndExpand(IVEDrillDownReadOnly selectedItem) - { - if (selectedItem.ActiveParent == null) - { - return (VETreeNode)this.Nodes[0]; // Return the top node - } - VETreeNode parent = FindNodeAndExpand(selectedItem.ActiveParent); - if (parent == null) return null; - if (!parent.IsExpanded) - parent.Expand(); - foreach (TreeNode childNode in parent.Nodes) - { - VETreeNode child = childNode as VETreeNode; - if (child != null && CompareVEObject(child.VEObject, selectedItem)) - return child; - } - foreach (TreeNode childNode in parent.Nodes) - { - VETreeNode child = childNode as VETreeNode; - if (child.VEObject is PartInfo) - foreach (VETreeNode grandchild in child.Nodes) - if (CompareVEObject(grandchild.VEObject, selectedItem)) - return grandchild; - } - return null; - } - public bool CompareVEObject(IVEDrillDownReadOnly obj1, IVEDrillDownReadOnly obj2) - { - ItemInfo myItem = obj1 as ItemInfo; - if (myItem != null) - if (myItem.ItemID == ((ItemInfo)obj2).ItemID) return true; - DocVersionInfo myDV = obj1 as DocVersionInfo; - if (myDV != null) - if (myDV.VersionID == ((DocVersionInfo)obj2).VersionID) return true; - FolderInfo myFolder = obj1 as FolderInfo; - if (myFolder != null) - if (myFolder.FolderID == ((FolderInfo)obj2).FolderID) return true; - return false; - } - } - #region DragHelper - public class DragHelper - { - [DllImport("comctl32.dll")] - public static extern bool InitCommonControls(); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern bool ImageList_BeginDrag(IntPtr himlTrack, int - iTrack, int dxHotspot, int dyHotspot); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern bool ImageList_DragMove(int x, int y); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern void ImageList_EndDrag(); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern bool ImageList_DragEnter(IntPtr hwndLock, int x, int y); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern bool ImageList_DragLeave(IntPtr hwndLock); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern bool ImageList_DragShowNolock(bool fShow); - static DragHelper() - { - InitCommonControls(); - } - } - #endregion -} diff --git a/PROMS/Volian.Controls.Library/vlnTreeView.cs.bak b/PROMS/Volian.Controls.Library/vlnTreeView.cs.bak deleted file mode 100644 index 7c63f38a..00000000 --- a/PROMS/Volian.Controls.Library/vlnTreeView.cs.bak +++ /dev/null @@ -1,2735 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Text.RegularExpressions; -using System.Windows.Forms; -using System.Runtime.InteropServices; // For DragHelper -using System.Reflection; -using Csla; -using Csla.Validation; -using VEPROMS.CSLA.Library; -using System.IO; -using Volian.Base.Library; - -namespace Volian.Controls.Library -{ - #region DelegatesAndEventArgs - public delegate void vlnTreeViewEvent(object sender, vlnTreeEventArgs args); - public delegate void vlnTreeViewItemInfoEvent(object sender, vlnTreeItemInfoEventArgs args); - public delegate bool vlnTreeViewBoolEvent(object sender, vlnTreeEventArgs args); - public delegate bool vlnTreeViewItemInfoDeleteEvent(object sender, vlnTreeItemInfoEventArgs args); - public delegate bool vlnTreeViewItemInfoInsertEvent(object sender, vlnTreeItemInfoInsertEventArgs args); - public delegate bool vlnTreeViewItemInfoPasteEvent(object sender, vlnTreeItemInfoPasteEventArgs args); - public delegate TreeNode vlnTreeViewTreeNodeEvent(object sender, vlnTreeEventArgs args); - public delegate DialogResult vlnTreeViewPropertyEvent(object sender, vlnTreePropertyEventArgs args); - public delegate DialogResult vlnTreeViewPSIEvent(object sender, vlnTreeEventArgs args); - public delegate void vlnTreeViewSectionInfoEvent(object sender, vlnTreeSectionInfoEventArgs args); - public delegate void WordSectionDeletedEvent(object sender, WordSectionEventArgs args); - public delegate void vlnTreeViewPdfEvent(object sender, vlnTreeViewPdfArgs args); - public partial class vlnTreeSectionInfoEventArgs - { - private bool _IsDeleting = false; - public bool IsDeleting - { - get { return _IsDeleting; } - set { _IsDeleting = value; } - } - private SectionInfo _MySectionInfo; - public SectionInfo MySectionInfo - { - get { return _MySectionInfo; } - set { _MySectionInfo = value; } - } - public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo) - { - _MySectionInfo = mySectionInfo; - } - public vlnTreeSectionInfoEventArgs(SectionInfo mySectionInfo,bool isDeleting) - { - _MySectionInfo = mySectionInfo; - _IsDeleting = isDeleting; - } - } - public partial class vlnTreeViewPdfArgs - { - private string _MyFilename; - public string MyFilename - { - get { return _MyFilename; } - set { _MyFilename = value; } - } - private byte[] _MyBuffer; - public byte[] MyBuffer - { - get { return _MyBuffer; } - set { _MyBuffer = value; } - } - private string _MyWatermark; - public string MyWatermark - { - get { return _MyWatermark; } - set { _MyWatermark = value; } - } - public vlnTreeViewPdfArgs(string filename, byte[] buffer, string watermark) - { - _MyFilename = filename; - _MyBuffer = buffer; - _MyWatermark = watermark; - } - } - public partial class vlnTreeEventArgs - { - #region Business Methods - private TreeNode _Node; - public TreeNode Node - { - get { return _Node; } - set { _Node = value; } - } - private TreeNode _Destination=null; - public TreeNode Destination - { - get { return _Destination; } - set { _Destination = value; } - } - private int _Index; - public int Index - { - get { return _Index; } - set { _Index = value; } - } - //jcb multiunit - private string _Unit; - public string Unit - { - get { return _Unit; } - set { _Unit = value; } - } - private int _UnitIndex = -1; - public int UnitIndex - { - get { return _UnitIndex; } - set { _UnitIndex = value; } - } - //end jcb multiunit - #endregion - #region Factory Methods - private vlnTreeEventArgs() { ;} - public vlnTreeEventArgs(TreeNode node) - { - _Node = node; - } - public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index) - { - _Node = node; - _Destination = destination; - _Index = index; - } - //jcb multiunit - public vlnTreeEventArgs(TreeNode node, TreeNode destination, int index, string unit, int unitIndex) - { - _Node = node; - _Destination = destination; - _Index = index; - _Unit = unit; - _UnitIndex = unitIndex; - } - //end jcb multiunit - #endregion - } - public partial class vlnTreeItemInfoEventArgs - { - #region Business Methods - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - #endregion - #region Factory Methods - private vlnTreeItemInfoEventArgs() { ;} - public vlnTreeItemInfoEventArgs(ItemInfo myItemInfo) - { - _MyItemInfo = myItemInfo; - } - #endregion - } - public enum E_InsertType {Before, After, Child}; - public partial class vlnTreeItemInfoInsertEventArgs - { - #region Business Methods - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - private E_InsertType _InsertType; - public E_InsertType InsertType - { - get { return _InsertType; } - set { _InsertType = value; } - } - private int _Type; - public int Type - { - get { return _Type; } - set { _Type = value; } - } - private E_FromType _FromType; - public E_FromType FromType - { - get { return _FromType; } - set { _FromType = value; } - } - private string _StepText; - public string StepText - { - get { return _StepText; } - set { _StepText = value; } - } - #endregion - #region Factory Methods - private vlnTreeItemInfoInsertEventArgs() { ;} - public vlnTreeItemInfoInsertEventArgs(ItemInfo myItemInfo, E_InsertType insertType, string stepText) - { - _MyItemInfo = myItemInfo; - _InsertType = insertType; - _StepText = stepText; - } - public vlnTreeItemInfoInsertEventArgs(ItemInfo myItemInfo, E_InsertType insertType, string stepText, int type, E_FromType fromType) - { - _MyItemInfo = myItemInfo; - _InsertType = insertType; - _StepText = stepText; - _Type = type; - _FromType = fromType; - } - #endregion - } - #region PasteEventArgs - public partial class vlnTreeItemInfoPasteEventArgs - { - #region Business Methods - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - private int _CopyStartID; - public int CopyStartID - { - get { return _CopyStartID; } - set { _CopyStartID = value; } - } - private ItemInfo.EAddpingPart _PasteType; - public ItemInfo.EAddpingPart PasteType - { - get { return _PasteType; } - set { _PasteType = value; } - } - private int? _Type; - public int? Type - { - get { return _Type; } - set { _Type = value; } - } - #endregion - #region Factory Methods - private vlnTreeItemInfoPasteEventArgs() { ;} - public vlnTreeItemInfoPasteEventArgs(ItemInfo myItemInfo, int copyStartId, ItemInfo.EAddpingPart pasteType, int? type) - { - _MyItemInfo = myItemInfo; - _CopyStartID = copyStartId; - _PasteType = pasteType; - _Type = type; - } - - #endregion - } - #endregion - public partial class vlnTreePropertyEventArgs : EventArgs - { - private string _Title; - public string Title - { - get { return _Title; } - set { _Title = value; } - } - private object _ConfigObject; - public object ConfigObject - { - get { return _ConfigObject; } - set { _ConfigObject = value; } - } - private FolderConfig _FolderConfig; - public FolderConfig FolderConfig - { - get { return _FolderConfig; } - set { _ConfigObject = _FolderConfig = value; } - } - private DocVersionConfig _DocVersionConfig; - public DocVersionConfig DocVersionConfig - { - get { return _DocVersionConfig; } - set { _ConfigObject = _DocVersionConfig = value; } - } - private ProcedureConfig _ProcedureConfig; - public ProcedureConfig ProcedureConfig - { - get { return _ProcedureConfig; } - set { _ConfigObject = _ProcedureConfig = value; } - } - private SectionConfig _SectionConfig; - public SectionConfig SectionConfig - { - get { return _SectionConfig; } - set { _ConfigObject = _SectionConfig = value; } - } - private vlnTreePropertyEventArgs() { ;} - public vlnTreePropertyEventArgs(string title, FolderConfig folderConfig) - { - _Title = title; - FolderConfig = folderConfig; - } - public vlnTreePropertyEventArgs(string title, DocVersionConfig docVersionConfig) - { - _Title = title; - DocVersionConfig = docVersionConfig; - } - public vlnTreePropertyEventArgs(string title, ProcedureConfig procedureConfig) - { - _Title = title; - ProcedureConfig = procedureConfig; - } - public vlnTreePropertyEventArgs(string title, SectionConfig sectionConfig) - { - _Title = title; - DocStyleListConverter.MySection = sectionConfig.MySection; - SectionConfig = sectionConfig; - } - } - #endregion - public partial class vlnTreeView : TreeView - { - private SessionInfo _MySessionInfo; - public SessionInfo MySessionInfo - { - get { return _MySessionInfo; } - set { _MySessionInfo = value; } - } - #region Local Vars - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - - FolderInfo _LastFolderInfo = null; - ProcedureInfo _LastProcedureInfo = null; - DocVersionInfo _LastDocVersionInfo = null; - SectionInfo _LastSectionInfo = null; - VETreeNode _LastTreeNode = null; - StepInfo _LastStepInfo = null; - ItemInfo _LastItemInfo = null; - #endregion - #region Events - public event vlnTreeViewPdfEvent ViewPDF; - private void OnViewPDF(object sender, vlnTreeViewPdfArgs args) - { - if (ViewPDF != null) ViewPDF(sender, args); - } - public event vlnTreeViewItemInfoDeleteEvent DeleteItemInfo; - private bool OnDeleteItemInfo(object sender, vlnTreeItemInfoEventArgs args) - { - if (DeleteItemInfo != null) return DeleteItemInfo(sender, args); - return false; - } - public event vlnTreeViewItemInfoInsertEvent InsertItemInfo; - private bool OnInsertItemInfo(object sender, vlnTreeItemInfoInsertEventArgs args) - { - if (InsertItemInfo != null) return InsertItemInfo(sender, args); - return false; - } - public event vlnTreeViewItemInfoPasteEvent PasteItemInfo; - private bool OnPasteItemInfo(object sender, vlnTreeItemInfoPasteEventArgs args) - { - if (PasteItemInfo != null) return PasteItemInfo(sender, args); - return false; - } - public event vlnTreeViewEvent NodeMove; - private void OnNodeMove(object sender, vlnTreeEventArgs args) - { - if (NodeMove != null) NodeMove(sender, args); - } - public event vlnTreeViewEvent NodeCopy; - private void OnNodeCopy(object sender, vlnTreeEventArgs args) - { - if (NodeCopy != null) NodeCopy(sender, args); - } - public event vlnTreeViewPropertyEvent NodeOpenProperty; - private DialogResult OnNodeOpenProperty(object sender, vlnTreePropertyEventArgs args) - { - if (NodeOpenProperty != null) return NodeOpenProperty(sender, args); - return DialogResult.Cancel; - } - public event vlnTreeViewPSIEvent NodePSI; - private DialogResult OnNodePSI(object sender, vlnTreeEventArgs args) - { - if (NodePSI != null) return NodePSI(sender, args); - return DialogResult.Cancel; - } - public event vlnTreeViewEvent NodeSelect; - private void OnNodeSelect(object sender, vlnTreeEventArgs args) - { - if (NodeSelect != null) NodeSelect(sender, args); - } - public event vlnTreeViewEvent PrintProcedure; - private void OnPrintProcedure(object sender, vlnTreeEventArgs args) - { - if (PrintProcedure != null) PrintProcedure(sender, args); - } - public event vlnTreeViewEvent PrintAllProcedures; - private void OnPrintAllProcedures(object sender, vlnTreeEventArgs args) - { - if (PrintAllProcedures != null) PrintAllProcedures(sender, args); - } - public event vlnTreeViewEvent ApproveProcedure; - private void OnApproveProcedure(object sender, vlnTreeEventArgs args) - { - if (ApproveProcedure != null) ApproveProcedure(sender, args); - } - public event vlnTreeViewEvent ApproveAllProcedures; - private void OnApproveAllProcedures(object sender, vlnTreeEventArgs args) - { - if (ApproveAllProcedures != null) ApproveAllProcedures(sender, args); - } - public event vlnTreeViewEvent ApproveSomeProcedures; - private void OnApproveSomeProcedures(object sender, vlnTreeEventArgs args) - { - if (ApproveSomeProcedures != null) ApproveSomeProcedures(sender, args); - } - public event vlnTreeViewEvent ReportAllProceduresInconsistencies; - private void OnReportAllProceduresInconsistencies(object sender, vlnTreeEventArgs args) - { - if (ReportAllProceduresInconsistencies != null) ReportAllProceduresInconsistencies(sender, args); - } - public event vlnTreeViewEvent RefreshCheckedOutProcedures; - private void OnRefreshCheckedOutProcedures(object sender, vlnTreeEventArgs args) - { - if (RefreshCheckedOutProcedures != null) RefreshCheckedOutProcedures(sender, args); - } - public event vlnTreeViewEvent ProcedureCheckedOutTo; - private void OnProcedureCheckedOutTo(object sender, vlnTreeEventArgs args) - { - if (ProcedureCheckedOutTo != null) ProcedureCheckedOutTo(sender, args); - } - public event vlnTreeViewEvent NodeNew; - private void OnNodeNew(object sender, vlnTreeEventArgs args) - { - if (NodeNew != null) NodeNew(sender, args); - } - /// - /// Raised after a new step is added. - /// - public event vlnTreeViewEvent NodeInsert; - private void OnNodeInsert(object sender, vlnTreeEventArgs args) - { - if (NodeInsert != null) NodeInsert(sender, args); - } - public event vlnTreeViewEvent NodeSelectionChange; - private void OnNodeSelectionChange(object sender, vlnTreeEventArgs args) - { - if (NodeSelectionChange != null) NodeSelectionChange(sender, args); - } - public event vlnTreeViewSectionInfoEvent SectionShouldClose; - private void OnSectionShouldClose(object sender, vlnTreeSectionInfoEventArgs args) - { - if (SectionShouldClose != null) SectionShouldClose(sender, args); - } - public event WordSectionDeletedEvent WordSectionDeleted; - internal void OnWordSectionDeleted(object sender, WordSectionEventArgs args) - { - WordSectionDeleted(sender, args); - } - public event vlnTreeViewItemInfoEvent OpenItem; - private void OnOpenItem(object sender, vlnTreeItemInfoEventArgs args) - { - if (OpenItem != null) OpenItem(sender, args); - } - #endregion - #region Constructors - public vlnTreeView() - { - InitializeComponent(); - this.AllowDrop = true; - DragHelper.InitCommonControls(); - this.ItemDrag += new ItemDragEventHandler(tv_ItemDrag); - this.DragDrop += new DragEventHandler(tv_DragDrop); - this.DragEnter += new DragEventHandler(tv_DragEnter); - this.DragLeave += new EventHandler(tv_DragLeave); - this.DragOver += new DragEventHandler(tv_DragOver); - this.MouseDown += new MouseEventHandler(tv_MouseDown); - this.KeyPress += new KeyPressEventHandler(tv_KeyPress); - base.AfterSelect += new TreeViewEventHandler(tv_AfterSelect); - } - #endregion - #region MenuSupport - private void tv_AfterSelect(object sender, TreeViewEventArgs e) - { - if (!_AdjustingTree) - OnNodeSelectionChange(sender, new vlnTreeEventArgs(e.Node)); - } - // use to determine which menu items have been selected for those tree nodes - - // that allow more than one type of operation associated with their selection. - public enum MenuSelections : int - { - Folder = 1, FolderBefore = 2, FolderAfter = 3, DocVersion = 4, Procedure = 5, ProcedureBefore = 6, ProcedureAfter = 7, Section = 8, SectionBefore = 9, SectionAfter = 10, Step = 11, StepBefore = 12, StepAfter = 13, StepReplace = 14 - } - void tv_MouseDown(object sender, MouseEventArgs e) - { - if (e.Button == MouseButtons.Right) - { - OwnerInfoList oil = null; - OwnerInfo oi = null; - VETreeNode tn = this.GetNodeAt(new Point(e.X, e.Y)) as VETreeNode; - if (tn != null) - { - this.SelectedNode = tn as TreeNode; - Application.DoEvents(); - // Display Menu - ToolStripMenuItem mi = new ToolStripMenuItem(); - ContextMenu cm = new ContextMenu(); - UserInfo ui = UserInfo.GetByUserID(VlnSettings.UserID); - if (ui == null) - { - MessageBox.Show("Security has not been defined for PROMS. All functionality has been defaulted to the lowest level for all users until security is defined.", "no security defined", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - #region Menu_New - if (tn.VEObject as FolderInfo != null) - { - // For Folders, if no children, can add either docversion or folder. If children are - // folders then can only add another folder, and if children are docversions can only - // add docversion. - FolderInfo fi = tn.VEObject as FolderInfo; - if (ui.IsAdministrator() || ui.IsSetAdministrator(fi)) - { - if (fi.MyParent != null) // don't allow insert before/after if at top node - { - cm.MenuItems.Add("Insert Folder Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Insert Folder After", new EventHandler(mi_Click)); - } - if (fi.FolderDocVersionCount == 0) cm.MenuItems.Add("New Folder", new EventHandler(mi_Click)); - if (fi.ChildFolderCount == 0 && !fi.HasWorkingDraft) cm.MenuItems.Add("Create Working Draft", new EventHandler(mi_Click)); - } - } - else if (tn.VEObject as DocVersionInfo != null) // DocVersions can only contain procs - { - DocVersionInfo dvi = tn.VEObject as DocVersionInfo; - if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsWriter(dvi)) - { - OwnerInfoList.Reset(); - oil = OwnerInfoList.GetByVersionID(dvi.VersionID); - cm.MenuItems.Add("Refresh Checked Out Procedures", new EventHandler(mi_Click)); - cm.MenuItems.Add("New Procedure", new EventHandler(mi_Click)); - if (dvi.MultiUnitCount > 1) - { - MenuItem mip = new MenuItem("Print All Procedures for"); - MenuItem mia = new MenuItem("Approve All Procedures for"); - MenuItem mis = new MenuItem("Approve Some Procedures for"); - int k = 0; - foreach (string s in dvi.UnitNames) - { - k++; - MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); - mp.Tag = k; - MenuItem ma = mia.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); - ma.Tag = k; - MenuItem ms = mis.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); - ms.Tag = k; - } - //MenuItem mmp = mip.MenuItems.Add("All Units", new EventHandler(miMultiUnit_Click)); - //mmp.Tag = 0; - //MenuItem mma = mia.MenuItems.Add("All Units", new EventHandler(miMultiUnit_Click)); - //mma.Tag = 0; - //MenuItem mms = mis.MenuItems.Add("All Units", new EventHandler(miMultiUnit_Click)); - //mms.Tag = 0; - cm.MenuItems.Add(mip); - cm.MenuItems.Add(mia); - cm.MenuItems.Add(mis); - } - else - { - cm.MenuItems.Add("Print All Procedures", new EventHandler(mi_Click)); - cm.MenuItems.Add("Approve All Procedures", new EventHandler(mi_Click)); - cm.MenuItems.Add("Approve Some Procedures", new EventHandler(mi_Click)); - } - cm.MenuItems.Add("Report All Procedures Inconsistencies", new EventHandler(mi_Click)); - } - else - { - OwnerInfoList.Reset(); - oil = OwnerInfoList.GetByVersionID(dvi.VersionID); - cm.MenuItems.Add("Refresh Checked Out Procedures", new EventHandler(mi_Click)); - if (dvi.MultiUnitCount > 1) - { - MenuItem mip = new MenuItem("Print All Procedures for"); - int k = 0; - foreach (string s in dvi.UnitNames) - { - k++; - MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); - mp.Tag = k; - } - //MenuItem mmp = mip.MenuItems.Add("All Units", new EventHandler(miMultiUnit_Click)); - //mmp.Tag = 0; - //MenuItem mma = mia.MenuItems.Add("All Units", new EventHandler(miMultiUnit_Click)); - //mma.Tag = 0; - //MenuItem mms = mis.MenuItems.Add("All Units", new EventHandler(miMultiUnit_Click)); - //mms.Tag = 0; - cm.MenuItems.Add(mip); - } - else - { - cm.MenuItems.Add("Print All Procedures", new EventHandler(mi_Click)); - } - } - //if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi)) - //{ - // cm.MenuItems.Add("Check Out Procedure Set", new EventHandler(mi_Click)); - // cm.MenuItems.Add("Check In Procedure Set", new EventHandler(mi_Click)); - //} - if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi) || ui.IsROEditor(dvi)) - { - cm.MenuItems.Add("Run RO Editor", new EventHandler(mi_Click)); - } - if (ui.IsAdministrator() || ui.IsSetAdministrator(dvi)) - { - MenuItem urv = cm.MenuItems.Add("Update RO Values", new EventHandler(mi_Click)); - urv.Enabled = dvi.NewerRoFst; - } - } - else if (tn.VEObject as ProcedureInfo != null) // Procs can only contain sections - { - ProcedureInfo pri = tn.VEObject as ProcedureInfo; - oi = OwnerInfo.GetByItemID(pri.ItemID, CheckOutType.Procedure); - if (ui.IsAdministrator() || ui.IsSetAdministrator(pri.MyDocVersion) || ui.IsWriter(pri.MyDocVersion)) - { - if (oi != null && oi.SessionID != MySessionInfo.SessionID) - cm.MenuItems.Add(string.Format("Procedure Checked Out to {0}", oi.SessionUserID), new EventHandler(mi_Click)); - if (pri.ActiveFormat.PlantFormat.FormatData.ProcData.PSI.Caption != null) cm.MenuItems.Add("Procedure Specific Information", new EventHandler(mi_Click)); - cm.MenuItems.Add("Insert Procedure Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Insert Procedure After", new EventHandler(mi_Click)); - - // if this format has change ids that were added from edit, allow removal of - // change ids for this procedure: - FolderInfo fi = FolderInfo.Get(1); - FormatInfo frmI = FormatInfo.Get(fi.FormatID ?? 1); - if (frmI.PlantFormat.FormatData.ProcData.ChangeBarData.ChgBarMessageFromEdit) - cm.MenuItems.Add("Remove Change Ids", new EventHandler(mi_Click)); - cm.MenuItems.Add("New Section", new EventHandler(mi_Click)); - if (pri.MyDocVersion.MultiUnitCount > 1) - { - MenuItem mip = new MenuItem("Print"); - MenuItem mia = new MenuItem("Approve"); - int k = 0; - foreach (string s in pri.MyDocVersion.UnitNames) - { - k++; - MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); - mp.Tag = k; - MenuItem ma = mia.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); - ma.Tag = k; - } - cm.MenuItems.Add(mip); - cm.MenuItems.Add(mia); - AddApprovedRevisionsMultiUnit(cm.MenuItems, pri); - } - else - { - cm.MenuItems.Add("Print", new EventHandler(mi_Click)); - cm.MenuItems.Add("Approve", new EventHandler(mi_Click)); - AddApprovedRevisions(cm.MenuItems, pri); - } - } - else - { - if (oi != null && oi.SessionID != MySessionInfo.SessionID) - cm.MenuItems.Add(string.Format("Procedure Checked Out to {0}", oi.SessionUserID), new EventHandler(mi_Click)); - if (pri.MyDocVersion.MultiUnitCount > 1) - { - MenuItem mip = new MenuItem("Print"); - int k = 0; - foreach (string s in pri.MyDocVersion.UnitNames) - { - k++; - MenuItem mp = mip.MenuItems.Add(s, new EventHandler(miMultiUnit_Click)); - mp.Tag = k; - } - cm.MenuItems.Add(mip); - AddApprovedRevisionsMultiUnit(cm.MenuItems, pri); - } - else - { - cm.MenuItems.Add("Print", new EventHandler(mi_Click)); - AddApprovedRevisions(cm.MenuItems, pri); - } - } - } - else if (tn.VEObject as SectionInfo != null) - { - // A step Section can contain other steps or can contain subsections (either step section - // or word doc section). Also note that there can be a mix. - // A word doc section can contain another subsection (either step section or word doc section), - // but cannot contain steps. - SectionInfo si = tn.VEObject as SectionInfo; - if (ui.IsAdministrator() || ui.IsSetAdministrator(si.MyProcedure.MyDocVersion) || ui.IsWriter(si.MyProcedure.MyDocVersion)) - { - if (si.HasWordContent) - { - oi = OwnerInfo.GetByItemID(si.MyContent.MyEntry.DocID, CheckOutType.Document); - } - si.MyConfig = null; - // Do not need step versus Word doc options, user enters this in property page during - // insert process. - if (oi != null && oi.SessionID != MySessionInfo.SessionID) - cm.MenuItems.Add(string.Format("Document Checked Out to {0}", oi.SessionUserID), new EventHandler(mi_Click)); - cm.MenuItems.Add("Insert Section Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Insert Section After", new EventHandler(mi_Click)); - if (!si.IsAutoTOCSection) - { - bool meta = si.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections; - if (meta) cm.MenuItems.Add("New Subsection", new EventHandler(mi_Click)); - // if this section has subsections, then be sure that the 'editable' data config - // is set to allow new step creation. - if (si.IsStepSection) - { - SectionConfig sc = si.MyConfig as SectionConfig; - if (si.Sections == null || si.Sections.Count == 0 || (meta && sc != null && si.Sections != null && si.Sections.Count > 0 && sc.SubSection_Edit == "Y")) - cm.MenuItems.Add("New Step", new EventHandler(mi_Click)); - } - } - } - } - else if (tn.VEObject as StepInfo != null) - { - // check the format for allowable inserts, and also, - ItemInfo i = tn.VEObject as ItemInfo; - if (ui.IsAdministrator() || ui.IsSetAdministrator(i.MyProcedure.MyDocVersion) || ui.IsWriter(i.MyProcedure.MyDocVersion)) - { - //oi = OwnerInfo.GetByItemID(i.MyProcedure.ItemID); - if (AddToInsertMenu(i, 0)) cm.MenuItems.Add("Insert Step Before", new EventHandler(mi_Click)); - if (AddToInsertMenu(i, 1)) cm.MenuItems.Add("Insert Step After", new EventHandler(mi_Click)); - } - } - #endregion - #region Menu_Open - if (!tn.IsExpanded && tn.VEObject as SectionInfo != null) - { - SectionInfo si = tn.VEObject as SectionInfo; - if (si.IsStepSection) cm.MenuItems.Add("Open", new EventHandler(mi_Click)); - } - else if (!tn.IsExpanded && tn.VEObject as StepInfo != null) - { - StepInfo stpi = tn.VEObject as StepInfo; - if (stpi.HasChildren) cm.MenuItems.Add("Open", new EventHandler(mi_Click)); - } - else if (!tn.IsExpanded) - cm.MenuItems.Add("Open", new EventHandler(mi_Click)); - #endregion - #region Menu_CutCopy - // For initial release, copy is not available for folders or docversions - if (tn.VEObject as ItemInfo != null) - { - ItemInfo i = tn.VEObject as ItemInfo; - if (ui.IsAdministrator() || ui.IsSetAdministrator(i.MyProcedure.MyDocVersion) || ui.IsWriter(i.MyProcedure.MyDocVersion)) - cm.MenuItems.Add("Copy", new EventHandler(mi_Click)); - } - #endregion - bool ok = false; - if (tn.VEObject is FolderInfo && (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as FolderInfo))) - ok = true; - else if (tn.VEObject is DocVersionInfo && (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo))) - ok = true; - else if (tn.VEObject is ItemInfo && (ui.IsAdministrator() || ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion) || ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion))) - ok = true; - if(ok) - Menu_Paste(tn, cm); - #region Menu_Delete - if (ok) - { - // Add delete to the menu unless at the very 'top' node, on a grouping (partinfo) - // node (RNOs, Steps, Cautions, Notes) or Folder/DocVersion that contains any items. - PartInfo pi = tn.VEObject as PartInfo; - if (pi == null && tn.Parent != null) // it's not a part and it's not the top.... - { - FolderInfo fi = tn.VEObject as FolderInfo; - if (fi == null || tn.Nodes.Count == 0) // it's not a folder or it has no children - { - DocVersionInfo di = tn.VEObject as DocVersionInfo; - if (di == null || tn.Nodes.Count == 0) // it's not a docversion or it has no children - cm.MenuItems.Add("Delete", new EventHandler(mi_Click)); - } - } - } - #endregion - #region Menu_Properties - // Add Properties to the menu unless at the very 'top' node or on a grouping (partinfo) - // node (RNOs, Steps, Cautions, Notes) or at the step level. - ok = tn.VEObject as FolderInfo != null ? ui.IsAdministrator() : tn.VEObject as DocVersionInfo != null ? (ui.IsAdministrator() || ui.IsSetAdministrator(tn.VEObject as DocVersionInfo)) : (ui.IsAdministrator() || ui.IsSetAdministrator((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion) || ui.IsWriter((tn.VEObject as ItemInfo).MyProcedure.MyDocVersion)); - PartInfo pia = tn.VEObject as PartInfo; - ItemInfo ii = tn.VEObject as ItemInfo; - if (ok) - if (pia == null && tn.VEObject as StepInfo == null) cm.MenuItems.Add("Properties...", new EventHandler(mi_Click)); - #endregion - if (oil != null && oil.Count > 0 && tn.VEObject as DocVersionInfo != null) - { - /* - --docversion level - Approve All Procedures - Report All Procedures Inconsistencies - */ - bool greyOut = false; - foreach (OwnerInfo own in oil) - { - if (own.SessionID != MySessionInfo.SessionID) - { - greyOut = true; - break; - } - } - if (greyOut) - { - foreach (MenuItem itm in cm.MenuItems) - { - if (itm.Text == "Approve All Procedures" || itm.Text == "Report All Procedures Inconsistencies") - itm.Enabled = false; - } - } - } - if (oi != null && oi.SessionID != MySessionInfo.SessionID) - { - /* - --procedure level - Procedure Specific Information - New Section - Approve - Open - Copy - Delete - Properties... - - --section level - all of them - - --step level - all of them - */ - if (tn.VEObject as ProcedureInfo != null) - { - foreach (MenuItem itm in cm.MenuItems) - { - if(itm.Text == "Procedure Specific Information" || itm.Text == "New Section" || itm.Text == "Approve" || itm.Text == "Open" || - itm.Text == "Copy" || itm.Text == "Delete" || itm.Text == "Properties..." || itm.Text == "Replace Existing Procedure") - itm.Enabled = false; - } - } - if (tn.VEObject as SectionInfo != null || tn.VEObject as StepInfo != null) - { - foreach (MenuItem itm in cm.MenuItems) - { - if(!itm.Text.StartsWith("Document Checked Out")) - itm.Enabled = false; - } - } - } - cm.Show(this, new Point(e.X, e.Y)); - } - } - } - - private void AddApprovedRevisionsMultiUnit(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri) - { - RevisionInfoList ril = RevisionInfoList.GetByItemID(pri.ItemID); - if (ril.Count == 0) return; - MenuItem mi = menuItemCollection.Add("Versions"); - int k = 0; - int lastApprovedRevisionID = 0; - foreach (string s in pri.MyDocVersion.UnitNames) - { - k++; - MenuItem mv = mi.MenuItems.Add(s); - mv.Tag = k; - ril = RevisionInfoList.GetByItemIDandUnitID(pri.ItemID, k); - foreach (RevisionInfo ri in ril) - { - MenuItem mir = mv.MenuItems.Add(ri.ToString()); - mir.Tag = ri; - if (ri.LatestVersion.MyStage.IsApproved > 0 && (ri.RevisionID > lastApprovedRevisionID)) - lastApprovedRevisionID = ri.RevisionID; - if (ri.LatestVersion.PDF != null) - { - MenuItem mirp = mir.MenuItems.Add("View Procedure"); - mirp.Tag = ri; - mirp.Click += new EventHandler(MultiUnitApprovedRevision_Click); - } - if (ri.LatestVersion.SummaryPDF != null) - { - MenuItem mirs = mir.MenuItems.Add("View Summary of Changes"); - mirs.Tag = ri; - mirs.Click += new EventHandler(MultiUnitSummaryOfChanges_Click); - } - //end added jcb 20111031 - mv.Tag = lastApprovedRevisionID; - } - } - } - - private void AddApprovedRevisions(Menu.MenuItemCollection menuItemCollection, ProcedureInfo pri) - { - RevisionInfoList ril = null; - try - { - ril = RevisionInfoList.GetByItemID(pri.ItemID); - } - catch - { - return; - } - if (ril.Count == 0) return; - MenuItem mi = menuItemCollection.Add("Versions"); - int lastApprovedRevisionID = 0; - foreach (RevisionInfo ri in ril) - { - MenuItem mir = mi.MenuItems.Add(ri.ToString()); - mir.Tag = ri; - if (ri.LatestVersion.MyStage.IsApproved > 0 && (ri.RevisionID > lastApprovedRevisionID)) - lastApprovedRevisionID = ri.RevisionID; - //mir.Click += new EventHandler(ApprovedRevision_Click); - //added jcb 20111031 - if (ri.LatestVersion.PDF != null) - { - MenuItem mirp = mir.MenuItems.Add("View Procedure"); - mirp.Tag = ri; - mirp.Click += new EventHandler(ApprovedRevision_Click); - } - if (ri.LatestVersion.SummaryPDF != null) - { - MenuItem mirs = mir.MenuItems.Add("View Summary of Changes"); - mirs.Tag = ri; - mirs.Click += new EventHandler(SummaryOfChanges_Click); - } - //end added jcb 20111031 - mi.Tag = lastApprovedRevisionID; - } - } - - void ApprovedRevision_Click(object sender, EventArgs e) - { - bool superceded = false; - MenuItem mi = sender as MenuItem; - if (mi == null) return; - RevisionInfo ri = mi.Tag as RevisionInfo; - { - MenuItem mip = mi.Parent as MenuItem; - if (ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) - superceded = true; - } - vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : ""); - OnViewPDF(sender, args); -// System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded)); - } - void MultiUnitApprovedRevision_Click(object sender, EventArgs e) - { - bool superceded = false; - MenuItem mi = sender as MenuItem; - if (mi == null) return; - RevisionInfo ri = mi.Tag as RevisionInfo; - { - MenuItem mip = mi.Parent as MenuItem; - if (ri.RevisionID < int.Parse(mip.Parent.Tag.ToString())) - superceded = true; - } - ItemInfo ii = ItemInfo.Get(ri.ItemID); - ii.MyDocVersion.DocVersionConfig.SelectedSlave = ri.MyConfig.Applicability_Index; - vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber), ri.LatestVersion.PDF, superceded ? "Superceded" : ""); - OnViewPDF(sender, args); - // System.Diagnostics.Process pp = System.Diagnostics.Process.Start(GetDocPdf(ri, superceded)); - } - void SummaryOfChanges_Click(object sender, EventArgs e) - { - MenuItem mi = sender as MenuItem; - if (mi == null) return; - RevisionInfo ri = mi.Tag as RevisionInfo; - vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber + " Summary of Changes"), ri.LatestVersion.SummaryPDF, ""); - OnViewPDF(sender, args); - // System.Diagnostics.Process pps = System.Diagnostics.Process.Start(GetDocSummaryPdf(ri)); - } - void MultiUnitSummaryOfChanges_Click(object sender, EventArgs e) - { - MenuItem mi = sender as MenuItem; - if (mi == null) return; - RevisionInfo ri = mi.Tag as RevisionInfo; - ItemInfo ii = ItemInfo.Get(ri.ItemID); - ii.MyDocVersion.DocVersionConfig.SelectedSlave = ri.MyConfig.Applicability_Index; - vlnTreeViewPdfArgs args = new vlnTreeViewPdfArgs(Volian.Base.Library.TmpFile.CreateFileName(ProcedureInfo.Get(ri.ItemID).PDFNumber + " Summary of Changes"), ri.LatestVersion.SummaryPDF, ""); - OnViewPDF(sender, args); - // System.Diagnostics.Process pps = System.Diagnostics.Process.Start(GetDocSummaryPdf(ri)); - } - //private string GetDocPdf(RevisionInfo ri, bool superceded) - //{ - // string fileName = Volian.Base.Library.TmpFile.CreateFileName(ItemInfo.Get(ri.ItemID).DisplayNumber); - // FileInfo fi = new FileInfo(VlnSettings.TemporaryFolder + @"\" + fileName); - // FileStream fs = fi.Create(); - // byte[] myPdf = ri.LatestVersion.PDF; - // if (myPdf != null) fs.Write(myPdf, 0, myPdf.Length); - // fs.Close(); - // if (superceded) - // AddSupercededWatermark(VlnSettings.TemporaryFolder + @"\" + fileName); - // return VlnSettings.TemporaryFolder + @"\" + fileName; - //} - - //private void AddSupercededWatermark(string p) - //{ - // MessageBox.Show("superceded"); - //} - //private string GetDocSummaryPdf(RevisionInfo ri) - //{ - // string fileName = Volian.Base.Library.TmpFile.CreateFileName(ItemInfo.Get(ri.ItemID).DisplayNumber + " Summary of Changes"); - // FileInfo fi = new FileInfo(VlnSettings.TemporaryFolder + @"\" + fileName); - // FileStream fs = fi.Create(); - // byte[] myPdf = ri.LatestVersion.SummaryPDF; - // if (myPdf != null) fs.Write(myPdf, 0, myPdf.Length); - // fs.Close(); - // return VlnSettings.TemporaryFolder + @"\" + fileName; - //} - - - private bool AddToInsertMenu(ItemInfo ii, int ba) // 0 = before, 1 = after - { - // set up insert buttons based on format - bool retB = true; - E_AccStep? actable = 0; - StepData sd = ii.FormatStepData; - actable = sd.StepEditData.AcTable; - if (actable == null) actable = 0; - - return (ba == 0) ? !ii.IsRNOPart && (actable & E_AccStep.AddingPrev) > 0 : - !ii.IsRNOPart && (actable & E_AccStep.AddingNext) > 0; - } - private void Menu_Paste(VETreeNode tn, ContextMenu cm) - { - #region MenuPaste - // Find what's in paste buffer & determine whether the paste can occur for the selected node. - object tmpClip = Clipboard.GetData("PromsClipboard"); - if (tmpClip != null) - { - PromsClipboard tstClip = (PromsClipboard)tmpClip; - ItemInfo iiClipboard = ItemInfo.Get(tstClip.itemId); - // if the item doesn't exist anymore, don't allow the paste, by not adding - // paste menu items to context menu. - if (iiClipboard == null) - { - Clipboard.Clear(); - return; - } - // can it be pasted at current node. - if (tn.VEObject as DocVersionInfo != null) // paste item must be a proc - { - if (iiClipboard.IsProcedure) cm.MenuItems.Add("Paste Procedure", new EventHandler(mi_Click)); - } - else - { - ItemInfo iiPasteHere = tn.VEObject as ItemInfo; - if (iiPasteHere != null) - { - if (iiPasteHere.IsProcedure && iiClipboard.IsProcedure) // procedure can be pasted before/replace/after - { - cm.MenuItems.Add("Paste Procedure Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Replace Existing Procedure", new EventHandler(mi_Click)); - cm.MenuItems.Add("Paste Procedure After", new EventHandler(mi_Click)); - } - else if (iiPasteHere.IsProcedure && iiClipboard.IsSection) // procedure must have sections only - cm.MenuItems.Add("Paste Section", new EventHandler(mi_Click)); - else if (iiPasteHere.IsSection && iiClipboard.IsSection) - { - cm.MenuItems.Add("Paste Section Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Replace Existing Section", new EventHandler(mi_Click)); - cm.MenuItems.Add("Paste Section After", new EventHandler(mi_Click)); - } - else if (iiPasteHere.IsStepSection && iiClipboard.IsStep) - cm.MenuItems.Add("Paste Step", new EventHandler(mi_Click)); - else if (iiPasteHere.IsStep && iiClipboard.IsStep) - { - if (AddToInsertMenu(iiPasteHere, 0)) cm.MenuItems.Add("Paste Step Before", new EventHandler(mi_Click)); - cm.MenuItems.Add("Replace Existing Step", new EventHandler(mi_Click)); - if (AddToInsertMenu(iiPasteHere, 1)) cm.MenuItems.Add("Paste Step After", new EventHandler(mi_Click)); - } - } - } - } - #endregion - } - //jcb multiunit - void miMultiUnit_Click(object sender, EventArgs e) - { - MenuItem mi = sender as MenuItem; - MenuItem mip = mi.Parent as MenuItem; - switch (mip.Text) - { - case "Print": - OnPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); - break; - case "Print All Procedures for": - OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0,mi.Text,(int)mi.Tag)); - break; - case "Approve": - OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); - break; - case "Approve All Procedures for": - OnApproveAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); - break; - case "Approve Some Procedures for": - OnApproveSomeProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0, mi.Text, (int)mi.Tag)); - break; - default: - MessageBox.Show(string.Format("Unrecognized Menu Item '{0}'", mip.Text)); - break; - } - } - //end jcb multiunit - void mi_Click(object sender, EventArgs e) - { - MenuItem mi = sender as MenuItem; - if (mi == null) - return; - if (mi.Text.StartsWith("Procedure Checked Out to") || mi.Text.StartsWith("Document Checked Out to")) - { - OnProcedureCheckedOutTo(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); - return; - } - switch (mi.Text) - { - case "Open": - OpenNode(); - break; - case "Insert Folder Before": - tv_NodeNew(MenuSelections.FolderBefore); - break; - case "Insert Folder After": - tv_NodeNew(MenuSelections.FolderAfter); - break; - case "New Folder": - SelectedNode.Expand(); - tv_NodeNew(MenuSelections.Folder); - break; - case "Create Working Draft": - SelectedNode.Expand(); - tv_NodeNew(MenuSelections.DocVersion); - break; - case "New Procedure": - SelectedNode.Expand(); - tv_NodeNew(MenuSelections.Procedure); - break; - case "Insert Procedure Before": - tv_NodeNew(MenuSelections.ProcedureBefore); - break; - case "Insert Procedure After": - tv_NodeNew(MenuSelections.ProcedureAfter); - break; - case "Remove Change Ids": - tv_RemoveChgIds(); - break; - case "New Section": - case "New Subsection": - SelectedNode.Expand(); - tv_NodeNew(MenuSelections.Section); - break; - case "Insert Section Before": - tv_NodeNew(MenuSelections.SectionBefore); - break; - case "Insert Section After": - tv_NodeNew(MenuSelections.SectionAfter); - break; - case "Insert Step Before": - tv_NodeNew(MenuSelections.StepBefore); - break; - case "Insert Step After": - tv_NodeNew(MenuSelections.StepAfter); - break; - case "New Step": - SelectedNode.Expand(); - tv_NodeNew(MenuSelections.Step); - break; - case "Copy"://Copy the selected node - tv_NodeCopy(); - break; - // lots of paste options: - case "Paste Procedure": - case "Paste Procedure Before": - case "Replace Existing Procedure": - case "Paste Procedure After": - case "Paste Section": - case "Paste Section Before": - case "Replace Existing Section": - case "Paste Section After": - case "Paste Step": - case "Paste Step Before": - case "Replace Existing Step": - case "Paste Step After": - tv_NodePaste(mi.Text); - break; - case "Delete": - if (tv_NodeDelete()) - { - TreeNode myParent = SelectedNode.Parent; - SelectedNode.Remove(); - SelectedNode = myParent; - OnNodeSelect(this, new vlnTreeEventArgs(SelectedNode)); - } - break; - case "Properties..."://Show the properties for the selected node - SetLastValues((VETreeNode)SelectedNode); - SetupNodeProperties(); - break; - case "Procedure Specific Information": - VETreeNode tn = SelectedNode as VETreeNode; - ProcedureInfo pi = tn.VEObject as ProcedureInfo; - if (pi != null) - { - using (Procedure proc = pi.Get()) - { - OnNodePSI(this, new vlnTreeEventArgs(tn, null, 0)); - } - } - break; - case "Print": - OnPrintProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); - break; - case "Print All Procedures": - OnPrintAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); - break; - case "Approve": - OnApproveProcedure(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); - break; - case "Approve All Procedures": - OnApproveAllProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); - break; - case "Approve Some Procedures": - OnApproveSomeProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); - break; - case "Report All Procedures Inconsistencies": - OnReportAllProceduresInconsistencies(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); - break; - case "Refresh Checked Out Procedures": - OnRefreshCheckedOutProcedures(this, new vlnTreeEventArgs(SelectedNode as VETreeNode, null, 0)); - break; - case "Run RO Editor": - RunROEditor(SelectedNode as VETreeNode); - break; - case "Update RO Values": - UpdateROValues(SelectedNode as VETreeNode); - break; - //case "Check Out Procedure Set": - // CheckOutDocVersion(SelectedNode as VETreeNode); - // break; - //case "Check In Procedure Set": - // CheckInDocVersion(SelectedNode as VETreeNode); - // break; - default: - MessageBox.Show(string.Format("Unrecognized Menu Item '{0}'", mi.Text)); - break; - } - } - private void tv_RemoveChgIds() - { - Console.WriteLine("HERE"); // add code/query to clear change ids in config. - } - private Dictionary MyCheckedOutDocVersions; - private void CheckOutDocVersion(VETreeNode tn) - { - if (MyCheckedOutDocVersions == null) - MyCheckedOutDocVersions = new Dictionary(); - DocVersionInfo MyDVI = tn.VEObject as DocVersionInfo; - string message = string.Empty; - if (MySessionInfo.CanCheckOutItem(MyDVI.VersionID, CheckOutType.DocVersion, ref message)) - MyCheckedOutDocVersions.Add(MyDVI.VersionID,MySessionInfo.CheckOutItem(MyDVI.VersionID, CheckOutType.DocVersion)); - else - MessageBox.Show(this, message, "Working Draft Has Items Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - } - private void CheckInDocVersion(VETreeNode tn) - { - DocVersionInfo MyDVI = tn.VEObject as DocVersionInfo; - MySessionInfo.CheckInItem(MyCheckedOutDocVersions[MyDVI.VersionID]); - MyCheckedOutDocVersions.Remove(MyDVI.VersionID); - } - - private void UpdateROValues(VETreeNode tn) - { - DocVersionInfo MyDVI = tn.VEObject as DocVersionInfo; - // use rodb directory path of the first rofst for the this document version. Later, will need - // to modify code to get which one (when there is more than one) - if (MyDVI.DocVersionAssociations.Count < 1) - { - MessageBox.Show("Error Updating ro.fst. No associated ro.fst"); - return; - } - ROFstInfo roFstInfo = MyDVI.DocVersionAssociations[0].MyROFst; - - string rofstPath = roFstInfo.MyRODb.FolderPath + @"\ro.fst"; - if (!File.Exists(rofstPath)) - { - MessageBox.Show("No existing ro.fst in path " + roFstInfo.MyRODb.FolderPath + ". Check for invalid path"); - return; - } - FileInfo fiRofst = new FileInfo(rofstPath); - if (roFstInfo.DTS == fiRofst.LastWriteTimeUtc) - { - MessageBox.Show("ro.fst files are same for path " + roFstInfo.MyRODb.FolderPath + ", import of that ro.fst will not be done"); - return; - } - if (roFstInfo.DTS > fiRofst.LastWriteTimeUtc) - { - MessageBox.Show("Cannot copy older ro.fst from " + roFstInfo.MyRODb.FolderPath + ", import of that ro.fst will not be done"); - return; - } - Cursor = Cursors.WaitCursor; - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(MyDVI.VersionID, CheckOutType.DocVersion, ref message)) - { - MessageBox.Show(this, message, "Working Draft Has Items Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - int ownerid = MySessionInfo.CheckOutItem(MyDVI.VersionID, CheckOutType.DocVersion); - using (DocVersion dv = DocVersion.Get(MyDVI.VersionID)) - { - roFstInfo.ROTableUpdate += new ROFstInfoROTableUpdateEvent(roFstInfo_ROTableUpdate); - ROFst newrofst = ROFstInfo.UpdateRoFst(roFstInfo.MyRODb, dv.DocVersionAssociations[0], dv, roFstInfo); - roFstInfo.ROTableUpdate -= new ROFstInfoROTableUpdateEvent(roFstInfo_ROTableUpdate); - StepPanelTabDisplayEventArgs args = new StepPanelTabDisplayEventArgs("DisplayROUpdateROFST"); - } - MySessionInfo.CheckInItem(ownerid); - Cursor = Cursors.Default; - } - public List roFstInfo_ROTableUpdate(object sender, ROFstInfoROTableUpdateEventArgs args) - { - return VlnFlexGrid.ROTableUpdate(sender, args); - //string xml = null; - //string srchtxt = null; - //using (VlnFlexGrid myGrid = new VlnFlexGrid()) - //{ - // using (StringReader sr = new StringReader(args.OldGridXml)) - // { - // myGrid.ReadXml(sr); - // myGrid.KeyActionTab = C1.Win.C1FlexGrid.KeyActionEnum.MoveAcross; - // sr.Close(); - // } - // string roid = myGrid.ROID; - // int rodbid = myGrid.RODbId; - // Font GridFont = myGrid.Font; - // myGrid.Clear(); - // myGrid.ParseTableFromText(args.ROText, GridLinePattern.Single); - // myGrid.AutoSizeCols(); - // myGrid.AutoSizeRows(); - // myGrid.MakeRTFcells(); - // myGrid.RODbId = rodbid; - // myGrid.ROID = roid; - // myGrid.IsRoTable = true; - // using (StringWriter sw = new StringWriter()) - // { - // myGrid.WriteXml(sw); - // xml = sw.GetStringBuilder().ToString(); - // sw.Close(); - // } - // srchtxt = myGrid.GetSearchableText(); - //} - //List retlist = new List(); - //retlist.Add(srchtxt); - //retlist.Add(xml); - //return retlist; - } - - private void RunROEditor(VETreeNode tn) - { - DocVersionInfo MyDVI = tn.VEObject as DocVersionInfo; - if (VlnSettings.ReleaseMode.Equals("DEMO")) - { - MessageBox.Show("Referenced Object Editor not available in the Demo version.", "PROMS Demo Version"); - return; - } - //string roapp = Environment.GetEnvironmentVariable("roapp"); - string roapp = Volian.Base.Library.ExeInfo.GetROEditorPath(); // get the path to the RO Editor Executable - if (roapp == null || roapp == string.Empty) - { - MessageBox.Show("The 'roapp' environment variable needs to be set to the path of the RO Editor\n\n Ex: C:\\VE-PROMS.NET\\Bin\\roeditor.exe", "Environment Variable Error"); - return; - } - if (!File.Exists(roapp)) - { - string errtxt = string.Format("Could not find path to Referenced Objects Editor:\n\n roapp = {0}\n\n Verify the path assigned to the 'roapp' environment variable", roapp); - MessageBox.Show(errtxt, "Environment Variable Error"); - //MessageBox.Show("Could not find path to Ro Editor, check 'roapp' environment variable","Environment Variable Error"); - return; - } - //if (roapp == null) - //{ - // MessageBox.Show("Could not find path to Ro Editor, check 'roapp' environment variable"); - // return; - //} - if (MyDVI == null || MyDVI.DocVersionAssociationCount < 1) - { - MessageBox.Show("Could not find associated path for ro data.", "No RO Data", MessageBoxButtons.OK, MessageBoxIcon.Information); - return; - } - string roloc = "\"" + MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath + "\""; - if (!Directory.Exists(MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath)) - { - MessageBox.Show(string.Format("RO Database directory does not exist: {0}", MyDVI.DocVersionAssociations[0].MyROFst.MyRODb.FolderPath)); - return; - } - System.Diagnostics.Process.Start(roapp, roloc); - } - - [Serializable] - public struct PromsClipboard - { - public int cType; - public int itemId; - } - public enum PromsClipboardType : int - { - Copy = 1, Cut = 2 - } - private void tv_NodePaste(string p) - { - object oClip = Clipboard.GetData("PromsClipboard"); - if (oClip == null) return; - - PromsClipboard iClip = (PromsClipboard) oClip; - ItemInfo iiClipboard = ItemInfo.Get(iClip.itemId); - string message = string.Empty; - if (iiClipboard.MyContent.MyEntry == null) - { - if (!MySessionInfo.CanCheckOutItem(iiClipboard.MyProcedure.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Copied Procedure Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - } - else - { - if (!MySessionInfo.CanCheckOutItem(iiClipboard.MyContent.MyEntry.DocID, CheckOutType.Document, ref message)) - { - MessageBox.Show(this, message, "Copied Document Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - } - VETreeNode tn = SelectedNode as VETreeNode; - DocVersionInfo dvi = tn.VEObject as DocVersionInfo; - if (dvi != null) - { - return; - } - - ItemInfo iiPaste = tn.VEObject as ItemInfo; - if (iiPaste == null) return; - if (p.IndexOf("Before") > -1) - PasteBeforeOrAfter(MenuSelections.StepBefore, tn, iiClipboard.ItemID); - else if (p.IndexOf("After") > -1) - PasteBeforeOrAfter(MenuSelections.StepAfter, tn, iiClipboard.ItemID); - else if (p.IndexOf("Replace") > -1) - PasteReplace(tn, iiClipboard.ItemID); - } - private void PasteBeforeOrAfter(MenuSelections newtype, VETreeNode tn, int copyStartID) - { - // If paste-from step is open in the editor, use the OnPasteItemInfo to paste the step and add RTBItems - // to the step editor panel. - ItemInfo ii = tn.VEObject as ItemInfo; - ItemInfo.EAddpingPart pasteOpt = newtype == MenuSelections.StepBefore ? ItemInfo.EAddpingPart.Before : ItemInfo.EAddpingPart.After; - // If parent step is open in step editor, the 'OnPasteItemInfo' event will cause - // the item to be pasted in the step editor and the tree. - if (ii.IsProcedure || !OnPasteItemInfo(this, new vlnTreeItemInfoPasteEventArgs(ii, copyStartID, pasteOpt, ii.MyContent.Type))) - { - // The parent step was not open in the step editor, just paste step (in data) and add treenode. - ItemInfo newItemInfo = null; - if (newtype == MenuSelections.StepBefore) - newItemInfo = ii.PasteSiblingBefore(copyStartID); - else - newItemInfo = ii.PasteSiblingAfter(copyStartID); - } - SelectedNode = (VETreeNode)((newtype == MenuSelections.StepAfter) ? tn.NextNode : tn.PrevNode); - } - private void PasteReplace(VETreeNode tn, int copyStartID) - { - VETreeNode prevtn = (VETreeNode) tn.PrevNode; - VETreeNode partn = (VETreeNode) tn.Parent; - ItemInfo ii = tn.VEObject as ItemInfo; - if (!OnPasteItemInfo(this, new vlnTreeItemInfoPasteEventArgs(ii, copyStartID, ItemInfo.EAddpingPart.Replace, ii.MyContent.Type))) - { - //return; - ItemInfo replItemInfo = Item.PasteReplace(ii, copyStartID); - } - SelectedNode = (VETreeNode)((prevtn != null) ? prevtn.NextNode : partn.FirstNode); - } - private void tv_NodeCopy() - { - if (SelectedNode==null)return; - VETreeNode tn = SelectedNode as VETreeNode; - ItemInfo ii = tn.VEObject as ItemInfo; - if (ii != null) - { - Clipboard.Clear(); - PromsClipboard iClip; - iClip.itemId = ii.ItemID; - iClip.cType = (int)PromsClipboardType.Copy; - DataObject myDO = new DataObject(); - myDO.SetText(ii.DisplayNumber==null||ii.DisplayNumber==""?" ":ii.DisplayNumber); - myDO.SetData("PromsClipboard", iClip); - Clipboard.SetDataObject(myDO); - //Clipboard.SetData("PromsClipboard", iClip); - //Clipboard.SetData(DataFormats.Text, ii.DisplayNumber); - } - } - #endregion - #region PropertyPagesInterface - private void SetupNodeProperties() - { - VETreeNode tn = SelectedNode as VETreeNode; - if (tn==null)return; - - if ((tn.VEObject as FolderInfo) != null) - OpenProperties(tn.VEObject as FolderInfo); - else if ((tn.VEObject as DocVersionInfo) != null) - OpenProperties(tn.VEObject as DocVersionInfo); - else if ((tn.VEObject as ProcedureInfo) != null) - OpenProperties(tn.VEObject as ProcedureInfo); - else if ((tn.VEObject as SectionInfo) != null) - OpenProperties(tn.VEObject as SectionInfo); - else if ((tn.VEObject as StepInfo) != null) - MessageBox.Show("Open up info tab or whatever is associated with step"); - tn.RefreshNode(); - } - private void OpenProperties(FolderInfo folderInfo) - { - using (Folder folder = folderInfo.Get()) - { - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", folder.FolderConfig.Name), folder.FolderConfig)); - } - } - private void OpenProperties(DocVersionInfo dvInfo) - { - using (DocVersion dv = dvInfo.Get()) - { - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} Properties", dv.DocVersionConfig.Name), dv.DocVersionConfig)); - } - } - private void OpenProperties(ProcedureInfo procInfo) - { - using (Procedure proc = procInfo.Get()) - { - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(string.Format("{0} {1} Properties", proc.ProcedureConfig.Number, proc.ProcedureConfig.Title), proc.ProcedureConfig)); - } - } - private void OpenProperties(SectionInfo sectInfo) - { - OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(sectInfo)); - using (Section sect = sectInfo.Get()) - { - string title = null; - if (sectInfo.SectionConfig.Number.Length > 0) - title = string.Format("{0} {1} Properties", sectInfo.SectionConfig.Number, sectInfo.SectionConfig.Title); - else - title = string.Format("{0} Properties", sectInfo.SectionConfig.Title); - OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(title, sect.SectionConfig)); - } - } - private void OpenProperties(StepInfo stpinfo) - { - using (Step stp = stpinfo.Get()) - { - } - } - - #endregion - #region OpenNode - private void tv_KeyPress(object sender, KeyPressEventArgs e) - { - if (e.KeyChar == '\r') - { - OpenNode(); - e.Handled = true; - } - } - public void OpenNode() - { - VETreeNode tn = SelectedNode as VETreeNode; - if (tn != null) - { - if (tn.VEObject.GetType() == typeof(FolderInfo) || tn.VEObject.GetType() == typeof(DocVersionInfo) || tn.VEObject.GetType() == typeof(PartInfo)) - { - if (tn.Nodes.Count > 0) - { - tn.Expand(); - SelectedNode = tn.Nodes[0]; - Focus(); - } - } - else - OnNodeSelect(this, new vlnTreeEventArgs(SelectedNode)); - } - } - #endregion - #region InsertAllLevels - public void tv_NodeNew(MenuSelections newtype) - { - VETreeNode tn = null; - if (SelectedNode == null) return; - SetLastValues((VETreeNode)SelectedNode); - - #region InsertFolderOrDocVersion - if (_LastFolderInfo != null) - { - using (Folder parentfolder = _LastFolderInfo.Get()) - { - if (newtype == MenuSelections.DocVersion) - { - int dvid = -1; // flag to allow user to cancel from dialog & then we remove it. - using (DocVersion docversion = DocVersion.MakeDocVersion(parentfolder, "Working Draft", "Title", null, null, null)) - { - ShowBrokenRules(docversion.BrokenRulesCollection); - SetLastValues(DocVersionInfo.Get(docversion.VersionID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("Working Draft", docversion.DocVersionConfig)) == DialogResult.OK) - { - docversion.Save(); - tn = new VETreeNode(_LastDocVersionInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - } - else - dvid = docversion.VersionID; - } - if (dvid != -1) DocVersion.Delete(dvid); - } - else if (newtype == MenuSelections.Folder) - { - int f1 = -1; // flag to allow user to cancel from dialog & then we remove it. - string uniquename = _LastFolderInfo.UniqueChildName("New Folder"); - using (Folder folder = Folder.MakeFolder(parentfolder, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, string.Empty, DateTime.Now, VlnSettings.UserID)) - { - ShowBrokenRules(folder.BrokenRulesCollection); - FolderInfo fi = FolderInfo.Get(folder.FolderID); - folder.ManualOrder = fi.ManualOrder; - SetLastValues(fi); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(uniquename, folder.FolderConfig)) == DialogResult.OK) - { - folder.Save(); - tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo); - SelectedNode.Nodes.Add(tn); // add new tree node to end of childlist. - } - else - f1 = folder.FolderID; - } - if (f1 != -1) Folder.Delete(f1); - } - else if (newtype == MenuSelections.FolderAfter||newtype == MenuSelections.FolderBefore) - { - int f2 = -1; - string uniquename = _LastFolderInfo.MyParent.UniqueChildName("New Folder"); - int myindex = SelectedNode.Index + ((newtype == MenuSelections.FolderAfter) ? 1 : 0); - FolderInfo parfolderinfo = FolderInfo.Get(parentfolder.FolderID); - double? myorder = parfolderinfo.NewManualOrder(myindex); - using (Folder folder = Folder.MakeFolder(parentfolder.MyParent, parentfolder.MyConnection, uniquename, string.Empty, "Short Name", null, myorder, string.Empty, DateTime.Now, VlnSettings.UserID)) - { - ShowBrokenRules(folder.BrokenRulesCollection); - SetLastValues(FolderInfo.Get(folder.FolderID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs(uniquename, folder.FolderConfig)) == DialogResult.OK) - { - folder.Save(); - tn = new VETreeNode((IVEDrillDownReadOnly)_LastFolderInfo); - if (newtype == MenuSelections.FolderBefore) SelectedNode.Parent.Nodes.Insert(SelectedNode.Index, tn); - if (newtype == MenuSelections.FolderAfter) SelectedNode.Parent.Nodes.Insert(SelectedNode.Index + 1, tn); - } - else - f2 = folder.FolderID; - } - if (f2 != -1) Folder.Delete(f2); - } - } - } - #endregion - #region InsertProcedure - else if (newtype == MenuSelections.Procedure) - { - int p1 = -1; - using (Procedure procedure = Procedure.MakeProcedure(_LastDocVersionInfo, _LastDocVersionInfo.Procedures.Count!=0?_LastDocVersionInfo.Procedures[_LastDocVersionInfo.Procedures.Count-1]:null, null, "New Procedure", 0)) - { - ShowBrokenRules(procedure.BrokenRulesCollection); - SetLastValues(ProcedureInfo.Get(procedure.ItemID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Procedure", procedure.ProcedureConfig)) == DialogResult.OK) - { - procedure.Save(); - tn = new VETreeNode(_LastProcedureInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - } - else - p1 = procedure.ItemID; - } - if (p1 != -1) - DeleteItemInfoAndChildren(_LastProcedureInfo);// Delete Item and reset Previous and Next - } - else if (newtype == MenuSelections.ProcedureAfter || newtype == MenuSelections.ProcedureBefore) - { - int p2 = -1; - int tvindex = SelectedNode.Index; - // if inserting before, the parent is set in case previous is null, i.e. beginning of the list. - using (Procedure procedure = Procedure.MakeProcedure((newtype == MenuSelections.ProcedureAfter) ? null : _LastProcedureInfo.ActiveParent, (newtype == MenuSelections.ProcedureAfter) ? _LastProcedureInfo : _LastProcedureInfo.MyPrevious, null, "New Procedure", 0)) - { - ShowBrokenRules(procedure.BrokenRulesCollection); - SetLastValues(ProcedureInfo.Get(procedure.ItemID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Procedure", procedure.ProcedureConfig)) == DialogResult.OK) - { - procedure.Save(); - tn = new VETreeNode(_LastProcedureInfo); - TreeNode par = SelectedNode.Parent; - par.Nodes.Insert(tvindex + ((newtype == MenuSelections.ProcedureBefore) ? 0 : 1), tn); - } - else - p2 = procedure.ItemID; - } - if (p2 != -1) - DeleteItemInfoAndChildren(_LastProcedureInfo); // Delete Item and reset Previous and Next - } - #endregion - #region InsertSection - else if (newtype == MenuSelections.Section) // Insert subsection at end of parents section list - { - string message = string.Empty; - if (_LastProcedureInfo != null) - if (!MySessionInfo.CanCheckOutItem(_LastProcedureInfo.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - int s1 = -1; - if (!(_LastProcedureInfo == null) || !(_LastSectionInfo == null)) - { - // May need to create 'pseudo' nodes, for the 'Steps' and 'Sections' grouping tree nodes. - // If no grouping nodes exist off a section (we are adding a subsection), then - // add a 'pseudo' node. - // If step(s) exists, but not a section, then need 'pseudo' nodes, i.e. 'Steps' and 'Sections' - // tree nodes. - // Otherwise, the 'Sections' pseudo node will exist. - // Note that this check has to be done before the section is made, otherwise the item will - // have sections, i.e. the one getting added. - bool doPseudo = false; - if (_LastItemInfo.IsSection) // if adding off of a procedure, don't add pseuo. - { - if (SelectedNode.Nodes.Count == 0) - doPseudo = true; - else if (SelectedNode.Nodes.Count > 0) - { - // Check to see if sections already exist, if so, the pseudo node will too. - bool hasMetaSubs = _LastItemInfo.Sections != null && _LastItemInfo.Sections.Count > 0; - if (!hasMetaSubs) doPseudo = true; - } - } - using(Section section = CreateNewSection()) - { - ShowBrokenRules(section.BrokenRulesCollection); - SetLastValues(SectionInfo.Get(section.ItemID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Section", section.SectionConfig)) == DialogResult.OK) - { - if (!doPseudo) - { - tn = new VETreeNode(_LastSectionInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - OnNodeSelect(this, new vlnTreeEventArgs(tn)); - } - else - { - // may have to add a 'steps' node if a step(s) already exist... - ItemInfo ii = (SelectedNode as VETreeNode).VEObject as ItemInfo; - int cpindx = 0; - if (SelectedNode.Nodes.Count>0) - { - VETreeNode vtn = SelectedNode.Nodes[0] as VETreeNode; - ItemInfo ichld1 = null; - if (vtn != null) ichld1 = vtn.VEObject as ItemInfo; - //ItemInfo ichld1 = (SelectedNode.Nodes[0] as VETreeNode).VEObject as ItemInfo; - if (ichld1 != null && ichld1.IsStep) - { - // find associated part node: - foreach (PartInfo pi in ii.MyContent.ContentParts) - { - if (pi.FromType == (int)E_FromType.Step) - { - // A 'Steps' pseudo node must be added and any existing steps - // must be moved below it: - VETreeNode tnStepPart = new VETreeNode(ii.MyContent.ContentParts[cpindx]); - foreach (TreeNode tnc in SelectedNode.Nodes) - { - TreeNode cloned = (TreeNode)tnc.Clone(); - tnStepPart.Nodes.Add(cloned); - } - SelectedNode.Nodes.Clear(); - SelectedNode.Nodes.Add(tnStepPart); - break; - } - cpindx++; - } - } - } - // At this level, there will only be 'Steps' or 'Sections' nodes. So, use - // the ContentParts[indx] that was not used to create the pseudo node. - if (cpindx == 1) cpindx = 0; - VETreeNode tnPart = new VETreeNode(ii.MyContent.ContentParts[cpindx]); - SelectedNode.Nodes.Add(tnPart); - tn = new VETreeNode(_LastSectionInfo); - tnPart.Nodes.Add(tn); // add tree node to end of list. - } - } - else - s1 = section.ItemID; - } - if (s1 != -1) - DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next - } - } - else if (newtype == MenuSelections.SectionAfter || newtype == MenuSelections.SectionBefore) - { - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(_LastSectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - int tvindex = SelectedNode.Index; - // if inserting before, the parent is set in case previous is null, i.e. beginning of the list. - int s2 = -1; - using (Section section = Section.MakeSection((newtype == MenuSelections.SectionAfter) ? null : _LastSectionInfo.MyParent, (newtype == MenuSelections.SectionAfter) ? _LastSectionInfo : _LastSectionInfo.MyPrevious, null, "New Section", 10000)) - { - ShowBrokenRules(section.BrokenRulesCollection); - SetLastValues(SectionInfo.Get(section.ItemID)); - if (OnNodeOpenProperty(this, new vlnTreePropertyEventArgs("New Section", section.SectionConfig)) == DialogResult.OK) - { - tn = new VETreeNode(_LastSectionInfo); - TreeNode par = SelectedNode.Parent; - par.Nodes.Insert(tvindex + ((newtype == MenuSelections.SectionBefore) ? 0 : 1), tn); - } - else - s2 = section.ItemID; - } - if (s2 != -1) - DeleteItemInfoAndChildren(_LastSectionInfo);// Delete Item and reset Previous and Next - } - #endregion - #region InsertStep - else if (newtype == MenuSelections.Step) // insert step from section - no substeps from tree. - { - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(_LastSectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - tn = InsertChildStep((VETreeNode)SelectedNode); - } - else if (newtype == MenuSelections.StepAfter || newtype == MenuSelections.StepBefore && _LastStepInfo != null) - { - string message = string.Empty; - if (!MySessionInfo.CanCheckOutItem(_LastStepInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return; - } - tn = InsertBeforeOrAfter(newtype, (VETreeNode)SelectedNode); - } - #endregion - - if (tn != null) - { - SelectedNode = tn; - OnNodeNew(this, new vlnTreeEventArgs(SelectedNode)); - Refresh(); - OnNodeInsert(this, new vlnTreeEventArgs(SelectedNode)); - } - } - private Section CreateNewSection() - { - if(_LastItemInfo.LastChild(E_FromType.Section) != null) - return Section.MakeSection(_LastItemInfo, _LastItemInfo.LastChild(E_FromType.Section), null, "New Section", 10000); - ItemInfo iii = _LastItemInfo.InsertChild(E_FromType.Section, 10000, "New Section", null); - return Section.Get(iii.ItemID); - } - private VETreeNode InsertChildStep(VETreeNode tn) - { - // If parent step is open in editor, use the OnInsertItemInfo to insert step & add RTBItems to step editor panel - ItemInfo ii = tn.VEObject as ItemInfo; - if (OnInsertItemInfo(this, new vlnTreeItemInfoInsertEventArgs(ii, E_InsertType.Child, "New Step", 20002, E_FromType.Step))) - { - return null; // should we try to get to the child? - } - // The parent step was not open in the step editor, just create new step and add treenode. - using (Step step = Step.MakeStep(_LastItemInfo, _LastItemInfo.LastChild(E_FromType.Step), null, "New Step", 20002, E_FromType.Step)) - { - ShowBrokenRules(step.BrokenRulesCollection); - SetLastValues(StepInfo.Get(step.ItemID)); - tn = new VETreeNode(_LastStepInfo); - SelectedNode.Nodes.Add(tn); // add tree node to end of list. - } - return tn; - } - - private VETreeNode InsertBeforeOrAfter(MenuSelections newtype, VETreeNode tn) - { - // If parent step is open in editor, use the OnInsertItemInfo to insert step & add RTBItems to step editor panel - ItemInfo ii = tn.VEObject as ItemInfo; - if (OnInsertItemInfo(this, new vlnTreeItemInfoInsertEventArgs(ii,(newtype == MenuSelections.StepAfter) ? E_InsertType.After:E_InsertType.Before, "New Step"))) - { - return (VETreeNode)((newtype == MenuSelections.StepAfter) ? tn.NextNode : tn.PrevNode); - } - // The parent step was not open in the step editor, just create new step and add treenode. - int tvindex = SelectedNode.Index; - // if inserting before, the parent is set in case previous is null, i.e. beginning of the list. - ItemInfo parent = (newtype == MenuSelections.StepAfter) ? null : _LastStepInfo.MyParent; - using (Step step = Step.MakeStep(parent, (newtype == MenuSelections.StepAfter) ? _LastStepInfo : _LastStepInfo.MyPrevious, null, "New Step", (int)_LastStepInfo.MyContent.Type, (E_FromType)_LastStepInfo.FirstSibling.ItemParts[0].FromType)) - { - ShowBrokenRules(step.BrokenRulesCollection); - SetLastValues(StepInfo.Get(step.ItemID)); - tn = new VETreeNode(_LastStepInfo); - _LastStepInfo.UpdateTransitionText(); - TreeNode par = SelectedNode.Parent; - par.Nodes.Insert(tvindex + ((newtype == MenuSelections.StepBefore) ? 0 : 1), tn); - } - return tn; - } - private void ShowBrokenRules(BrokenRulesCollection brs) - { - if (brs != null) - { - foreach (BrokenRule br in brs) - { - Console.WriteLine("broken rule {0}", br.Description); - } - } - } - #endregion - #region DeleteAllLevels - private bool tv_NodeDelete() - { - SetLastValues((VETreeNode)SelectedNode); - string message = string.Empty; - if(_LastStepInfo != null) - if (!MySessionInfo.CanCheckOutItem(_LastStepInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return false; - } - if (_LastSectionInfo != null) - if (!MySessionInfo.CanCheckOutItem(_LastSectionInfo.MyProcedure.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return false; - } - if (_LastProcedureInfo != null) - if (!MySessionInfo.CanCheckOutItem(_LastProcedureInfo.ItemID, CheckOutType.Procedure, ref message)) - { - MessageBox.Show(this, message, "Item Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return false; - } - if (_LastDocVersionInfo != null) - { - StringBuilder sb = new StringBuilder(); - foreach (ProcedureInfo pi in _LastDocVersionInfo.Procedures) - { - if (!MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref message)) - sb.AppendLine(message); - message = string.Empty; - } - if (sb.Length > 0) - { - MessageBox.Show(this, sb.ToString(), "Items Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return false; - } - } - if (_LastFolderInfo != null) - { - StringBuilder sb = new StringBuilder(); - if (_LastFolderInfo.FolderDocVersionCount > 0) - { - foreach (DocVersionInfo dvi in _LastFolderInfo.FolderDocVersions) - { - foreach (ProcedureInfo pi in dvi.Procedures) - { - if (!MySessionInfo.CanCheckOutItem(pi.ItemID, CheckOutType.Procedure, ref message)) - sb.AppendLine(message); - message = string.Empty; - } - } - } - if (sb.Length > 0) - { - MessageBox.Show(this, sb.ToString(), "Items Already Checked Out", MessageBoxButtons.OK, MessageBoxIcon.Warning); - return false; - } - } - - DialogResult result = MessageBox.Show("Are you sure you want to delete " + SelectedNode.Text, "Verify Delete", - MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (result == DialogResult.Yes) - { - if (_LastFolderInfo != null) - { - Folder.Delete(_LastFolderInfo.FolderID); - _LastFolderInfo = null; - return true; - } - else if (_LastDocVersionInfo != null) - { - DocVersion.Delete(_LastDocVersionInfo.VersionID); - _LastDocVersionInfo = null; - return true; - } - else if (_LastProcedureInfo != null) - { - // always return false because an event gets fired to delete tree nodes. - if (!DeleteItemInfoAndChildren(_LastProcedureInfo)) return false; - _LastProcedureInfo = null; - return false; - } - else if (_LastSectionInfo != null) - { - OnSectionShouldClose(this, new vlnTreeSectionInfoEventArgs(_LastSectionInfo,true)); - // always return false because an event gets fired to delete tree nodes. - if (!DeleteItemInfoAndChildren(_LastSectionInfo)) - { - return false; - } - WordSectionEventArgs args = new WordSectionEventArgs(_LastSectionInfo); - OnWordSectionDeleted(this, args); - _LastSectionInfo = null; - return false; - } - else if (_LastStepInfo != null) - { - // always return false because an event gets fired to delete tree nodes. - if (!DeleteItemInfoAndChildren(_LastStepInfo)) return false; - _LastStepInfo = null; - return false; - } - } - return false; - } - private bool DeleteItemInfoAndChildren(ItemInfo ii) - { - try - { - // send an event to frmVeproms that sends an event to the stepeditor to - // do delete using RTBItem - this manages windowing from the step editor. - // If the procedure is open & you're deleting procedure, you want to close open - // window - this is done in DisplayTabControl-DeleteStepTabItem. - if (!OnDeleteItemInfo(this, new vlnTreeItemInfoEventArgs(ii))) - Item.DeleteItemAndChildren(ii); - return true; - } - catch (System.Data.SqlClient.SqlException ex) - { - HandleSqlExceptionOnDelete(ex, ii); - return false; - } - } - private void HandleSqlExceptionOnDelete(System.Data.SqlClient.SqlException ex, ItemInfo ii) - { - if (ex.Message.Contains("has External Transitions and has no next step")) - { - using (TransitionInfoList exTrans = TransitionInfoList.GetExternalTransitions(ii.ItemID)) - { - DialogResult ans = MessageBox.Show("Transitions exist to this step and cannot be adjusted automatically." + - "\r\n\r\nDo you want to be placed on the " + (exTrans.Count > 1 ? "first " : "") + "substep with the problem Transition?" + - "\r\n\r\nSubsteps with Problem Transitions" + - exTrans.Summarize(), - "Cannot Delete This Step", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (ans == DialogResult.Yes) - { - OnOpenItem(this, new vlnTreeItemInfoEventArgs(exTrans[0].MyContent.ContentItems[0])); - } - } - } - else if (ex.Message.Contains("has External Transitions to it's children")) - { - using (TransitionInfoList exTrans = TransitionInfoList.GetExternalTransitionsToChildren(ii.ItemID)) - { - DialogResult ans = MessageBox.Show("Transitions exist to substeps of this step and cannot be adjusted automatically." + - "\r\n\r\nDo you want to be placed on the " + (exTrans.Count > 1 ? "first " : "") + "substep with the problem Transition?" + - "\r\n\r\nSubsteps with Problem Transitions:" + - exTrans.Summarize(), - "Cannot Delete This Step", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - if (ans == DialogResult.Yes) - { - OnOpenItem(this, new vlnTreeItemInfoEventArgs(exTrans[0].MyContent.ContentItems[0])); - } - } - } - else - MessageBox.Show(ex.Message, "SQL Exception", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - #endregion - #region SetLastValuesAndSaveIfChangedStuff - private void SetLastValues(VETreeNode node) - { - _LastTreeNode = node; - SetLastValues(node.VEObject); - } - private void SetLastValues(IVEDrillDownReadOnly veobject) - { - _LastFolderInfo = veobject as FolderInfo; - _LastDocVersionInfo = veobject as DocVersionInfo; - _LastProcedureInfo = veobject as ProcedureInfo; - _LastSectionInfo = veobject as SectionInfo; - _LastStepInfo = veobject as StepInfo; - _LastItemInfo = veobject as ItemInfo; - } - #endregion - #region Cursor - private bool SetupDragCursor(ImageList il, TreeNode tn) - { - // Reset image list used for drag image - il.Images.Clear(); - int howBig = tn.Bounds.Size.Width + this.Indent; - if (howBig > 256) howBig = 256; - il.ImageSize = new Size(howBig, tn.Bounds.Height); - - // Create new bitmap - // This bitmap will contain the tree node image to be dragged - Bitmap bmp = new Bitmap(tn.Bounds.Width + this.Indent, tn.Bounds.Height); - - // Get graphics from bitmap - Graphics gfx = Graphics.FromImage(bmp); - - // Draw node icon into the bitmap - if (this.ImageList != null) gfx.DrawImage(this.ImageList.Images[0], 0, 0); - - // Draw node label into bitmap - gfx.DrawString(tn.Text, this.Font, new SolidBrush(this.ForeColor), - // new SolidBrush(Color.Blue), - (float)this.Indent, 1.0f); - - // Add bitmap to imagelist - _dragImageList.Images.Add(bmp); - - // Get mouse position in client coordinates - Point p = this.PointToClient(Control.MousePosition); - - // Compute delta between mouse position and node bounds - int dx = p.X + this.Indent - tn.Bounds.Left; - int dy = p.Y - tn.Bounds.Top; - - // Begin dragging image - return DragHelper.ImageList_BeginDrag(_dragImageList.Handle, 0, dx, dy); - } - private void tv_ItemDrag(object sender, System.Windows.Forms.ItemDragEventArgs e) - { - // Get drag node and select it - try - { - TreeNode dragNode = (TreeNode)e.Item; - Type t = dragNode.GetType(); - //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Item Drag {0} - {1}", t.FullName, t.BaseType.FullName); - Type t2 = Type.GetType(t.FullName); - //if(t2 != null) - // if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Item Drag {0} - {1}", t2.FullName, t2.BaseType.FullName); - this.SelectedNode = dragNode; - ItemInfo iidrag = ((VETreeNode)dragNode).VEObject as ItemInfo; - FolderInfo fdrag = ((VETreeNode)dragNode).VEObject as FolderInfo; - DocVersionInfo ddrag = ((VETreeNode)dragNode).VEObject as DocVersionInfo; - if ((iidrag == null && fdrag == null && ddrag == null)) - { - MessageBox.Show("Cannot drag/drop a grouping node."); - return; - } - // don't put up message, message kept coming up on any selection of node (to copy, properties, etc) - //if (iidrag != null && iidrag.IsStep) return; - if (SetupDragCursor(_dragImageList, dragNode)) - { - this.DoDragDrop(dragNode, DragDropEffects.Move | DragDropEffects.Copy);// Begin dragging - DragHelper.ImageList_EndDrag();// End dragging image - } - } - catch (Exception ex) - { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_ItemDrag", ex); - } - } - #endregion - #region DragDrop - ImageList _dragImageList = new ImageList(); - public enum DropPosition : int - { - Child = 0, Before = 1, After = 2 - } - private class DropLocation - { - #region Business Methods - private TreeNode _dropNode; - public TreeNode DropNode - { - get { return _dropNode; } - set { _dropNode = value; } - } - private int _index; - public int Index - { - get { return _index; } - set { _index = value; } - } - private DropPosition _position; - public DropPosition Position - { - get { return _position; } - set { _position = value; } - } - DateTime _lastScroll; - public DateTime LastScroll - { - get { return _lastScroll; } - } - private string _location = string.Empty; - #endregion - #region Constructors - public DropLocation(TreeView tv, System.Windows.Forms.DragEventArgs e, DateTime lastScroll) - { - _lastScroll = lastScroll; - _dropNode = tv.GetNodeAt(tv.PointToClient(new Point(e.X, e.Y))); - if (_dropNode == null) return; - int OffsetY = tv.PointToClient(Cursor.Position).Y - _dropNode.Bounds.Top; - if (OffsetY < _dropNode.Bounds.Height / 3) // First Third - Before - { - _index = _dropNode.Index; - _dropNode = _dropNode.Parent; - _position = DropPosition.Before; - _location = string.Format("Before1 {0}[{1}] y={2}", _dropNode.Text, _index, OffsetY); - } - else if ((OffsetY / 2) < _dropNode.Bounds.Height / 3) // Second Third - Child - { - _location = string.Format("Child {0} y={1}", _dropNode.Text, OffsetY); - _position = DropPosition.Child; - _index = 0; - //if (_dropNode.Parent == null) - //{ - // if(_MyLog.IsInfoEnabled)_MyLog.Info("Root Node"); - //} - } - else // Last Third - After Now I need to check the X value - { - if (_dropNode.NextVisibleNode != null && _dropNode.Nodes.Count > 0 && _dropNode.IsExpanded)// Has Children & Expanded - Insert first child - { - // _dropNode = _dropNode.Nodes[0]; - _index = 0; - _position = DropPosition.Before; - _location = string.Format("Before2 {0}[{1}] y={2}", _dropNode.Text, _index, OffsetY); - } - else // No Children or Children Collapsed - Insert Next at various levels depending upon horizontal location. - { - Point pt = tv.PointToClient(new Point(e.X, e.Y)); - TreeNode nextParent = _dropNode.NextNode; - if (nextParent != null) nextParent = nextParent.Parent; - do - { - _index = _dropNode.Index; - _dropNode = _dropNode.Parent; - } while (pt.X < _dropNode.Bounds.X && _dropNode != nextParent); - _location = string.Format("After {0}[{1}] y={2}", _dropNode.Text, _index, OffsetY); - _position = DropPosition.After; - } - } - LimitMoves(e); - } - public void LimitMoves(DragEventArgs e) - { - if ((e.KeyState & 8) == 0) - { - //TreeNode dragNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode"); - //TreeNode dragNode = (TreeNode)e.Data.GetData("TreeTest.FolderTreeNode"); - TreeNode dragNode = vlnTreeView.GetTreeNodeFromData(e.Data); - switch (_position) - { - case DropPosition.Before: - if (dragNode == _dropNode.Nodes[_index] || dragNode == _dropNode.Nodes[_index].PrevNode) - { - // if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Before {0} {1} {2} {3} {4}", dragNode.Text ,_position.ToString() , _dropNode.Nodes[_index].Text - // ,_dropNode.Nodes[_index].PrevNode,_dropNode.Nodes[_index].NextNode); - _dropNode = null; - } - break; - case DropPosition.Child: - if (dragNode.Parent == _dropNode) - { - // if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Child {0} {1} {2} {3} {4} {5}", dragNode.Text ,_position.ToString() , _dropNode.Nodes[_index].Text - // ,_dropNode.Nodes[_index].PrevNode,_dropNode.Nodes[_index].NextNode,DateTime.Now); - _dropNode = null; - } - break; - case DropPosition.After: - if (dragNode == _dropNode.Nodes[_index] || dragNode == _dropNode.Nodes[_index].NextNode) - { - // if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("After {0} {1} {2} {3} {4}", dragNode.Text ,_position.ToString() , _dropNode.Nodes[_index].Text - // ,_dropNode.Nodes[_index].PrevNode,_dropNode.Nodes[_index].NextNode); - _dropNode = null; - } - break; - } - } - } - #endregion - public override string ToString() - { - return string.Format("{0}[{1}].{2}", _dropNode.Text, _index, _position.ToString()); - } - #region Drawing - private void TreeNodeTriangle(Graphics g) - { - Rectangle r = _dropNode.Bounds; - int RightPos = r.Right + 6; - Point[] RightTriangle = new Point[]{ - new Point(RightPos, r.Y ), - new Point(RightPos - (r.Height / 2), r.Y + (r.Height / 2)), - new Point(RightPos, r.Y + r.Height), - new Point(RightPos - (r.Height / 3), r.Y + (r.Height / 2)) - }; - g.FillPolygon(System.Drawing.Brushes.Black, RightTriangle); - } - private void InsertPointer(TreeNode tn, Graphics g) - { - TreeView tv = _dropNode.TreeView; - Rectangle r2 = _dropNode.Nodes[_index].Bounds; - Rectangle r3 = tn.Bounds; - int y = (_position == DropPosition.Before ? r2.Y : r3.Bottom); - int x = r2.Left; - - if (y == 0) - { - return; - } - //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("Line at {0} Node {1}[{2}] {3}", _location, _dropNode.Text, _index, _position.ToString()); - Color lc = (_position == DropPosition.After ? Color.Red : Color.Blue); - Brush lb = (_position == DropPosition.After ? Brushes.Red : Brushes.Blue); - Point[] RightTriangle; - if (_position == DropPosition.After) - { - RightTriangle = new Point[]{ - new Point(x, y ), - new Point(x+4, y+4), - new Point(x+8, y)}; - } - else - { - RightTriangle = new Point[]{ - new Point(x, y), - new Point(x+4, y-4), - new Point(x+8, y)}; - } - g.DrawLine(new System.Drawing.Pen(lc, 2), new Point(r2.Left, y), new Point(tv.Width - 8, y)); - g.FillPolygon(lb, RightTriangle); - } - public void ShowLocation(System.Windows.Forms.DragEventArgs e, bool ScrollOnly) - { - //if (e.Effect == DragDropEffects.None) return; - if (_dropNode != null) - { -// if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation1 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond); - DragHelper.ImageList_DragShowNolock(false); - TreeView tv = _dropNode.TreeView; - TreeNode tmp = tv.GetNodeAt(tv.PointToClient(new Point(e.X, e.Y))); -// if (!ScrollOnly) -// { - if (ScrollTreeView(tmp) || !ScrollOnly) - { - //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("ShowLocation2 {0} {1}", e.Effect.ToString(), DateTime.Now.Millisecond); - tv.Refresh(); - if (e.Effect != DragDropEffects.None) - { - //tv.SelectedNode = dropNode; - Graphics g = tv.CreateGraphics(); - TreeNodeTriangle(g); - if (_position != DropPosition.Child)InsertPointer(tmp, g); - } - } -// } -// else ScrollTreeView(tmp); - DragHelper.ImageList_DragShowNolock(true); - } - } - #endregion - public void ShowLocation() - { - //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0}[{1}] {2}", _dropNode.Text, _index, _position.ToString()); - } - #region AutoScroll - private bool ScrollTreeView(TreeNode tn) - { - bool retval = false; - TimeSpan ts = new TimeSpan(DateTime.Now.Ticks - _lastScroll.Ticks); - if (ts.Milliseconds > 100)// This controls the scroll speed - { - int top = tn.Bounds.Top; - _lastScroll = DateTime.Now; - if (tn.TreeView.ClientSize.Height < tn.Bounds.Bottom) tn.EnsureVisible();// Make sure that the current node is visible - if (tn.NextVisibleNode != null && tn.TreeView.ClientSize.Height < tn.NextVisibleNode.Bounds.Bottom) - tn.NextVisibleNode.EnsureVisible();// Make sure that the next node is visible - else - if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode != null && tn.PrevVisibleNode.PrevVisibleNode.IsVisible == false) - tn.PrevVisibleNode.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible } - else - if (tn.PrevVisibleNode != null && tn.PrevVisibleNode.IsVisible == false) - tn.PrevVisibleNode.EnsureVisible();// Make sure that the previous node is visible - retval = (top != tn.Bounds.Top); - // if (retval) if(_MyLog.IsInfoEnabled)_MyLog.Info("Scroll"); - } - return retval; - } - #endregion - public bool Equals(DropLocation dl) - { - return (dl != null && _lastScroll.Equals(dl.LastScroll) && _dropNode.Equals(dl.DropNode) && - _position.Equals(dl.Position)); - } - } - private DropLocation _LastDropLocation = null; - private void tv_DragOver(object sender, System.Windows.Forms.DragEventArgs e) - { - try - { - TreeNode dragNode = GetTreeNodeFromData(e.Data); - // Compute drag position and move image - Point formP = this.FindForm().PointToClient(new Point(e.X, e.Y)); - DragHelper.ImageList_DragMove(formP.X - this.Left, formP.Y - this.Top); - DropLocation dl = new DropLocation(this, e, _LastDropLocation == null ? DateTime.Now : _LastDropLocation.LastScroll); - string s = string.Empty; - if (dl.DropNode == null) - { - e.Effect = DragDropEffects.None; - } - else - { - DragDropEffects ee = e.Effect; - if (e.KeyState == 13) // Shift and Control Keys to do a move. - ee = DragDropEffects.Move; - else - ee = DragDropEffects.None; // Default - Do nothing - if (IsChild(dragNode, dl.DropNode)) // Don't copy or move to a child node - ee = DragDropEffects.None; - else if (IsDocVersion((VETreeNode)dragNode)) // Don't move docversions - ee = DragDropEffects.None; - else if (IsFolder((VETreeNode)dragNode)) // Folder move is only valid if moving to folder with NO docversions - { - FolderInfo fdropi = ((VETreeNode)dl.DropNode).VEObject as FolderInfo; - if (fdropi == null || fdropi.FolderDocVersionCount > 0) ee = DragDropEffects.None; - } - else if (IsSection((VETreeNode)dragNode)) - { - // A section can be moved within a procedure or to a section within the same procedure... - // For HLP, just move within the same procedure - // TODO: allow for section move within subsections. - ProcedureInfo pdropi = ((VETreeNode)dl.DropNode).VEObject as ProcedureInfo; - if (pdropi == null || (dragNode.Parent != dl.DropNode)) ee = DragDropEffects.None; - } - else if (!IsFolder((VETreeNode)dragNode) && (dragNode.Parent != dl.DropNode)) - ee = DragDropEffects.None; - if (e.Effect != ee) e.Effect = ee; - dl.ShowLocation(e, dl.Equals(_LastDropLocation)); - _LastDropLocation = dl; - } - } - catch (Exception ex) - { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragOver", ex); - } - } - - private bool IsSection(VETreeNode vETreeNode) - { - SectionInfo sectInfo = vETreeNode.VEObject as SectionInfo; - if (sectInfo != null) return true; - return false; - } - private bool IsProcedure(VETreeNode vETreeNode) - { - ProcedureInfo procInfo = vETreeNode.VEObject as ProcedureInfo; - if (procInfo != null) return true; - return false; - } - private bool IsDocVersion(VETreeNode dragNode) - { - DocVersionInfo dvInfo = dragNode.VEObject as DocVersionInfo; - if (dvInfo != null) return true; - return false; - } - private static TreeNode GetTreeNodeFromData(IDataObject datobj) - { - foreach (string s in datobj.GetFormats()) - { - try - { - return (TreeNode)datobj.GetData(s); - } - catch (Exception ex) - { - if(_MyLog.IsErrorEnabled)_MyLog.Error("GetTreeNodeFromData", ex); - } - } - return null; - } - private bool IsFolder(VETreeNode veTreeNode) - { - return (veTreeNode.VEObject.GetType() == typeof(FolderInfo)); - } - private void tv_DragDrop(object sender, System.Windows.Forms.DragEventArgs e) - { - try - { - TreeNode dragNode = GetTreeNodeFromData(e.Data); - DragHelper.ImageList_DragLeave(this.Handle); - int index = _LastDropLocation.Index + (_LastDropLocation.Position == DropPosition.After ? 1 : 0); - int myIndex = index; - if (dragNode.Parent == _LastDropLocation.DropNode && dragNode.Index <= _LastDropLocation.Index) index--; - if (e.Effect == DragDropEffects.Move)// If Move Remove drag node from parent - dragNode.Remove(); - else - dragNode = Clone(dragNode); - _LastDropLocation.DropNode.Nodes.Insert(index, dragNode); - this.SelectedNode = dragNode; - FolderInfo fdragi = ((VETreeNode)dragNode).VEObject as FolderInfo; - FolderInfo fdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as FolderInfo; - if (fdragi != null && fdropi != null && fdropi.FolderDocVersionCount==0) - { - using (Folder fdrag = fdragi.Get()) - { - using (Folder fdrop = fdropi.Get()) - { - fdrag.ManualOrder = fdropi.NewManualOrder(myIndex); - fdrag.MyParent = fdrop; - fdrag.Save(); - } - } - return; - } - // No drag/drop supported for document versions. - - // Allow drag/drop of procedures within a Document Version (must have same parent). Note that drop location - // may either be a document version or a procedure depending on where the user wants to position the procedure. - ProcedureInfo pdragi = ((VETreeNode)dragNode).VEObject as ProcedureInfo; - ProcedureInfo pdropi = null; - if (pdragi != null) // moving a procedure - { - pdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as ProcedureInfo; - if (pdropi != null && pdragi.ActiveParent == pdropi.ActiveParent) - { - pdragi.MoveProcedure(pdragi.ActiveParent, myIndex); - return; - } - DocVersionInfo dvdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as DocVersionInfo; - DocVersionInfo dvdragpar = pdragi.ActiveParent as DocVersionInfo; - if (dvdropi != null && dvdragpar.VersionID == dvdropi.VersionID) - { - pdragi.MoveProcedure(dvdropi, myIndex); - return; - } - } - - // Allow drag/drop of sections within the same procedure or same section (if subsection) (must have same parent) - SectionInfo sdragi = ((VETreeNode)dragNode).VEObject as SectionInfo; - SectionInfo sdropi = null; - if (sdragi != null) // moving a section - { - sdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as SectionInfo; - if (sdropi != null && sdragi.ActiveParent == sdropi.ActiveParent) - { - sdragi.MoveSection(sdragi, myIndex); - return; - } - pdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as ProcedureInfo; - if (pdropi != null && ((ItemInfo)(sdragi.ActiveParent)).ItemID == pdropi.ItemID) - { - sdragi.MoveSection(pdropi, myIndex); - sdragi.Moving = true; - OnNodeSelect(dragNode, new vlnTreeEventArgs(dragNode)); - return; - } - } - - // Allow drag/drop of steps within the same parent only - StepInfo stdragi = ((VETreeNode)dragNode).VEObject as StepInfo; - StepInfo stdropi = null; - if (stdragi != null) // moving a step - { - stdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as StepInfo; - if (stdropi != null && stdragi.ActiveParent == stdropi.ActiveParent) - { - stdragi.MoveStep(stdragi.ActiveParent, myIndex); - return; - } - sdropi = ((VETreeNode)_LastDropLocation.DropNode).VEObject as SectionInfo; - if (sdropi != null && stdragi.MyParent.ItemID == sdropi.ItemID) - { - stdragi.MoveStep(stdragi.ActiveParent, myIndex); - return; - } - // the following handles items under the app nodes of 'steps', 'notes', 'cautions', etc. - if (sdropi == null && dragNode.Parent == _LastDropLocation.DropNode) - { - stdragi.MoveStep(stdragi.ActiveParent, myIndex); - return; - } - } - } - catch (Exception ex) - { - if(_MyLog.IsErrorEnabled)_MyLog.Error("tv_DragDrop", ex); - } - } -// private void DumpMembers(object o) -// { -// Type t = o.GetType(); -// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("\r\n\r\nMembers for type {0}", t.ToString()); -// MemberInfo[] mis = t.GetMembers(); -// int i = 0; -// foreach (MemberInfo mi in mis) -// { -// i++; -// try -// { -// //if(mi.MemberType != MemberTypes.Method) -// //if(_MyLog.IsInfoEnabled)_MyLog.InfoFormat("{0} {1} {2}", i, mi.Name, mi.MemberType); -//// if (fi.Name == "TreeView") -//// fi.SetValue(o, null); -// } -// catch (Exception ex) -// { -// if(_MyLog.IsErrorEnabled)_MyLog.Error("DumpMembers", ex); -// } -// } -// } - private TreeNode Clone(TreeNode tn) - { - - TreeNode tmp = (TreeNode)tn.Clone(); - ExpandMatch(tmp,tn); - return tmp; - } - private void tv_DragDropOld(object sender, System.Windows.Forms.DragEventArgs e) - { - TreeNode dragNode = (TreeNode)e.Data.GetData("System.Windows.Forms.TreeNode");// Get the drag node - DragHelper.ImageList_DragLeave(this.Handle); - TreeNode cloneNode = (TreeNode)dragNode.Clone();// copy the source node - ExpandMatch(cloneNode, dragNode); - _LastDropLocation.DropNode.Nodes.Insert(_LastDropLocation.Index + (_LastDropLocation.Position == DropPosition.After ? 1 : 0), cloneNode); - if (e.Effect == DragDropEffects.Move)// If Move Remove drag node from parent - dragNode.Remove(); - this.SelectedNode = cloneNode; - } - private void tv_DragEnter(object sender, System.Windows.Forms.DragEventArgs e) - { - DragHelper.ImageList_DragEnter(this.Handle, e.X - this.Left, e.Y - this.Top); - } - private void tv_DragLeave(object sender, System.EventArgs e) - { - DragHelper.ImageList_DragLeave(this.Handle); - this.Refresh(); - } - private void ExpandMatch(TreeNode tn1, TreeNode tn2) - { - if (tn2.IsExpanded) tn1.Expand(); - foreach (TreeNode tc in tn2.Nodes) ExpandMatch(tn1.Nodes[tc.Index], tc); - } - private bool IsChild(TreeNode parent, TreeNode child) - { - if (parent.Equals(child)) return true;// Check against self - foreach (TreeNode tc in parent.Nodes) if (IsChild(tc, child)) return true;//Check all children - return false;// Must not be a child at this level - } - #endregion - private bool _AdjustingTree = false; - public void AdjustTree(ItemInfo selectedItem) - { - // start at the top parent and walk down the nodes to find child - VETreeNode node = FindNodeAndExpand(selectedItem); - if (node != null) - { - _AdjustingTree = true; - this.SelectedNode = node; - _AdjustingTree = false; - } - } - public VETreeNode FindNodeAndExpand(IVEDrillDownReadOnly selectedItem) - { - if (selectedItem.ActiveParent == null) - { - return (VETreeNode)this.Nodes[0]; // Return the top node - } - VETreeNode parent = FindNodeAndExpand(selectedItem.ActiveParent); - if (parent == null) return null; - if (!parent.IsExpanded) - parent.Expand(); - foreach (TreeNode childNode in parent.Nodes) - { - VETreeNode child = childNode as VETreeNode; - if (child != null && CompareVEObject(child.VEObject, selectedItem)) - return child; - } - foreach (TreeNode childNode in parent.Nodes) - { - VETreeNode child = childNode as VETreeNode; - if (child.VEObject is PartInfo) - foreach (VETreeNode grandchild in child.Nodes) - if (CompareVEObject(grandchild.VEObject, selectedItem)) - return grandchild; - } - return null; - } - public bool CompareVEObject(IVEDrillDownReadOnly obj1, IVEDrillDownReadOnly obj2) - { - ItemInfo myItem = obj1 as ItemInfo; - if (myItem != null) - if (myItem.ItemID == ((ItemInfo)obj2).ItemID) return true; - DocVersionInfo myDV = obj1 as DocVersionInfo; - if (myDV != null) - if (myDV.VersionID == ((DocVersionInfo)obj2).VersionID) return true; - FolderInfo myFolder = obj1 as FolderInfo; - if (myFolder != null) - if (myFolder.FolderID == ((FolderInfo)obj2).FolderID) return true; - return false; - } - } - #region DragHelper - public class DragHelper - { - [DllImport("comctl32.dll")] - public static extern bool InitCommonControls(); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern bool ImageList_BeginDrag(IntPtr himlTrack, int - iTrack, int dxHotspot, int dyHotspot); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern bool ImageList_DragMove(int x, int y); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern void ImageList_EndDrag(); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern bool ImageList_DragEnter(IntPtr hwndLock, int x, int y); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern bool ImageList_DragLeave(IntPtr hwndLock); - - [DllImport("comctl32.dll", CharSet = CharSet.Auto)] - public static extern bool ImageList_DragShowNolock(bool fShow); - static DragHelper() - { - InitCommonControls(); - } - } - #endregion -} diff --git a/PROMS/Volian.Pipe.Library/Volian.Pipe.Library.sln b/PROMS/Volian.Pipe.Library/Volian.Pipe.Library.sln deleted file mode 100644 index 33d4dfd4..00000000 --- a/PROMS/Volian.Pipe.Library/Volian.Pipe.Library.sln +++ /dev/null @@ -1,34 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.Pipe.Library", "Volian.Pipe.Library.csproj", "{2BD7D42A-A8F6-4DEA-BDCA-5F4D58C6140F}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 2 - SccProjectUniqueName0 = Volian.Pipe.Library.csproj - SccLocalPath0 = . - SccLocalPath1 = . - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {2BD7D42A-A8F6-4DEA-BDCA-5F4D58C6140F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2BD7D42A-A8F6-4DEA-BDCA-5F4D58C6140F}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2BD7D42A-A8F6-4DEA-BDCA-5F4D58C6140F}.Debug|x86.ActiveCfg = Debug|x86 - {2BD7D42A-A8F6-4DEA-BDCA-5F4D58C6140F}.Debug|x86.Build.0 = Debug|x86 - {2BD7D42A-A8F6-4DEA-BDCA-5F4D58C6140F}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2BD7D42A-A8F6-4DEA-BDCA-5F4D58C6140F}.Release|Any CPU.Build.0 = Release|Any CPU - {2BD7D42A-A8F6-4DEA-BDCA-5F4D58C6140F}.Release|x86.ActiveCfg = Release|x86 - {2BD7D42A-A8F6-4DEA-BDCA-5F4D58C6140F}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/Volian.Print.Library/ContActionSum - Copy.cs b/PROMS/Volian.Print.Library/ContActionSum - Copy.cs deleted file mode 100644 index 9b80d70d..00000000 --- a/PROMS/Volian.Print.Library/ContActionSum - Copy.cs +++ /dev/null @@ -1,452 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using LBWordLibrary; -using VEPROMS.CSLA.Library; -using System.Text.RegularExpressions; - -namespace Volian.Print.Library -{ - public class ContinuousActionSummary : IDisposable - { - private LBApplicationClass _WordApp; - private LBDocumentClass _WordDoc; - private LBSelection _WordSel; - private LBTable _WordTbl; - private const string TheQuickBrownFox = "The quick brown fox jumps over the lazy dog. The quick brown fox jumps over the lazy dog."; - private VE_Font _pkFont; - public ContinuousActionSummary() - { - _WordApp = new LBApplicationClass(); - _WordDoc = _WordApp.Documents.Add(); - _WordSel = _WordApp.Selection; - _pkFont = new VE_Font("Arial", 11, E_Style.None, 12); // copied from Calvert Placekeepers. - } - public void Visible() - { - _WordApp.Visible = true; - _WordApp.Activate(); - } - public ContinuousActionSummary(pkParagraphs myContActSteps, VE_Font pkFont) - { - _WordApp = new LBApplicationClass(); - _WordDoc = _WordApp.Documents.Add(); - _WordSel = _WordApp.Selection; - //_WordApp.Visible = true; - _pkFont = pkFont; - AddTable(); - AddHeader(); - foreach (pkParagraph myContAct in myContActSteps) - { - if (myContAct.MyChildren.Count > 0) // only print the section title if it has Continuous Action Steps - AddSectionHeader(myContAct.MyParagraph.MyItemInfo.DisplayNumber, myContAct.MyParagraph.MyItemInfo.FormattedDisplayText); - foreach (pkParagraph pgh in myContAct.MyChildren) // within each section... - { - // start Continuous Action text table cell - //StartSubStep(); - foreach (pkParagraph pghC in pgh.MyCautionsAndNotes) // this is a high level step with cautions and/or notes - { - StepConfig sc = pghC.MyParagraph.MyItemInfo.MyConfig as StepConfig; - string doneStr = ""; - //string NoteCautionTab = string.Format("{0} NOTE: ",pghC.MyParagraph.MyParent.MyTab.Text.Trim()); - //if (pghC.MyParagraph.MyItemInfo.IsCaution) NoteCautionTab = string.Format("{0} CAUTION: ", pghC.MyParagraph.MyParent.MyTab.Text.Trim()); - string NoteCautionTab = string.Format((pghC.MyParagraph.MyItemInfo.IsCaution)?"{0} CAUTION: ":"{0} NOTE: ",pghC.MyParagraph.MyParent.MyTab.Text.Trim()); - NoteCautionTab += " "; - AddContinuousAction(NoteCautionTab, GetContActStepText(pghC.MyParagraph.MyItemInfo), doneStr, (pghC.MyParagraph.MyItemInfo.PageNumber+1).ToString()); - //AddCautionOrNote(NoteCautionTab, pghC.MyParagraph.MyItemInfo.FormattedDisplayText, doneStr, (pghC.MyParagraph.MyItemInfo.PageNumber+1).ToString()); - } - string stpTab = pgh.MyParagraph.MyItemInfo.MyTab.CleanText.Trim() + " "; // this is either the High Level step tab or the sub-step tab - if (pgh.MyParagraph.MyItemInfo.IsNote || pgh.MyParagraph.MyItemInfo.IsCaution) // only the caution and/or note is on the CAS - high level step not selected - { - stpTab = string.Format("{0} ", pgh.MyParagraph.MyParent.MyTab.Text.Trim()) + " " + stpTab; - } - else if (!pgh.MyParagraph.MyItemInfo.IsHigh) // if the high level step was not included, adjust the tab for a sub-step/RNO - { - string tabPre = ""; - ItemInfo ii = pgh.MyParagraph.MyItemInfo.MyParent; - if (pgh.MyParagraph.MyItemInfo.IsRNOPart) - { - stpTab = stpTab.TrimEnd() + "[R] "; - ii = ii.MyParent; - } - while (ii != null && !ii.IsSection) - { - tabPre = ii.MyTab.Text.Trim() + " " + tabPre; - ii = ii.MyParent; - } - stpTab = tabPre + stpTab; - } - AddContinuousAction(stpTab, GetContActStepText(pgh.MyParagraph.MyItemInfo), "", (pgh.MyParagraph.MyItemInfo.PageNumber + 1).ToString()); - //AddHighLevelStep(stpTab, pgh.MyParagraph.MyItemInfo.FormattedDisplayText, "", (pgh.MyParagraph.MyItemInfo.PageNumber + 1).ToString()); - //AddHighLevelStep(pgh.MyParagraph.MyItemInfo.MyTab.CleanText, pgh.MyParagraph.MyItemInfo.FormattedDisplayText, "", (pgh.MyParagraph.MyItemInfo.PageNumber + 1).ToString()); - if (pgh.MyChildren.Count > 0) // process the sub-steps under this parent - { - //StartSubStep(); - AddChildren(pgh, 1); - //FinishSubstep("", ""); - } - } - } - RepeatHeader(); - } - - private void AddChildren(pkParagraph pgh, int level) - //private void AddChildren(pkParagraph pgh, int level, ref bool conAct) - { - foreach (pkParagraph cpgh in pgh.MyChildren) - { - - if (cpgh.MyCautionsAndNotes.Count > 0) - AddNotesOrCautions(cpgh,level); - //AddNotesOrCautions(cpgh,level, ref conAct); - //if (!conAct) - // conAct = IsContinuousActionPlacekeeper(conAct, cpgh); - //ContinueSubStep(cpgh.MyParagraph.MyItemInfo.FormattedDisplayText, level); - string stpTab = cpgh.MyParagraph.MyItemInfo.MyTab.CleanText.Trim() + " "; - if (cpgh.MyParagraph.MyItemInfo.IsNote || cpgh.MyParagraph.MyItemInfo.IsCaution) - { - stpTab = string.Format("{0} ", cpgh.MyParagraph.MyParent.MyTab.Text.Trim()) + " " + stpTab; - } - //else if (!cpgh.MyParagraph.MyItemInfo.IsHigh) - //{ - // string tabPre = ""; - // ItemInfo ii = cpgh.MyParagraph.MyItemInfo.MyParent; - // while (ii != null && !ii.IsSection && !ii.IsHigh) - // { - // tabPre = ii.MyTab.Text.Trim() + " " + tabPre; - // ii = ii.MyParent; - // } - // stpTab = tabPre + stpTab; - //} - AddContinuousAction(stpTab, GetContActStepText(cpgh.MyParagraph.MyItemInfo), "", (cpgh.MyParagraph.MyItemInfo.PageNumber + 1).ToString()); - AddChildren(cpgh, level + 1); - //AddChildren(cpgh, level+1, ref conAct); - } - } - - private string GetContActStepText(ItemInfo myItemInfo) - { - string conActSumText = ""; - StepConfig sc = myItemInfo.MyConfig as StepConfig; - if (sc != null && sc.Step_AlternateContActSumText != null) - conActSumText = sc.Step_AlternateContActSumText; - if (conActSumText == "") - conActSumText = myItemInfo.FormattedDisplayText; - return conActSumText; - } - - private void AddNotesOrCautions(pkParagraph pgh, int level) - //private void AddNotesOrCautions(pkParagraph pgh, int level, ref bool conAct) - { - foreach (pkParagraph cpgh in pgh.MyCautionsAndNotes) - { - //if (!conAct) - // conAct = IsContinuousActionPlacekeeper(conAct, cpgh); - //ContinueNoteOrCaution(cpgh.MyParagraph.MyItemInfo, level); - string doneStr = ""; - string NoteCautionTab = string.Format("{0} NOTE: ", cpgh.MyParagraph.MyParent.MyTab.Text); - if (cpgh.MyParagraph.MyItemInfo.IsCaution) NoteCautionTab = string.Format("{0} CAUTION: ", cpgh.MyParagraph.MyParent.MyTab.Text); - AddContinuousAction(NoteCautionTab, GetContActStepText(cpgh.MyParagraph.MyItemInfo), doneStr, (cpgh.MyParagraph.MyItemInfo.PageNumber + 1).ToString()); - } - } - - //private static bool IsContinuousActionPlacekeeper(bool conAct, pkParagraph pkPar) - //{ - // StepConfig sc = pkPar.MyParagraph.MyItemInfo.MyConfig as StepConfig; - // conAct = (sc.Step_Placekeeper.ToUpper() == "C"); - // return conAct; - //} - - private void ContinueNoteOrCaution(ItemInfo ii, int level) - { - string NoteCautionTab = "NOTE: "; - if (ii.IsCaution) NoteCautionTab = "CAUTION: "; - if (!_FirstLine) _WordSel.TypeParagraph(); - _FirstLine = false; - SetIndent(.33F + (.31F * level), -.31F); - WriteCell(NoteCautionTab + ii.FormattedDisplayText, false, false); - } - //public void BuildSample() - //{ - // _WordSel.TypeText("Placekeeper"); - // _WordSel.TypeParagraph(); - // _WordApp.Visible = true; - // AddTable(); - // AddHeader(); - // AddSectionHeader("Section VI", "Title for section VI"); - // AddHighLevelStep("A.", TheQuickBrownFox, "C", "5"); - // AddSubStep(TheQuickBrownFox, "C", ""); - // AddCautionOrNote("NOTE:", "The Note text has a hanging indent on all but the first line of text", "", ""); - // AddHighLevelStep("B.", TheQuickBrownFox, "C", "7"); - // StartSubStep(); - // ContinueSubStep(TheQuickBrownFox, 1); - // ContinueSubStep(TheQuickBrownFox, 2); - // ContinueSubStep(TheQuickBrownFox, 2); - // ContinueSubStep(TheQuickBrownFox, 3); - // ContinueSubStep(TheQuickBrownFox, 3); - // ContinueSubStep(TheQuickBrownFox, 2); - // ContinueSubStep(TheQuickBrownFox, 1); - // FinishSubstep("", ""); - // AddHighLevelStep("C.", TheQuickBrownFox, "C", "8"); - // StartSubStep(); - // ContinueSubStep(TheQuickBrownFox, 1); - // ContinueSubStep(TheQuickBrownFox, 2); - // ContinueSubStep(TheQuickBrownFox, 2); - // ContinueSubStep(TheQuickBrownFox, 3); - // ContinueSubStep(TheQuickBrownFox, 3); - // ContinueSubStep(TheQuickBrownFox, 2); - // ContinueSubStep(TheQuickBrownFox, 1); - // FinishSubstep("", ""); - // RepeatHeader(); - //} - - private void RepeatHeader() - { - _WordTbl.Rows.First.Select(); - _WordSel.Rows.HeadingFormat = -1; - } - private bool _FirstSection = true; - private void AddTable() - { - _FirstSection = true; - _WordTbl = _WordDoc.Tables.Add(_WordSel.Range, 1, 4, 1, 0); - _WordTbl.TopPadding = 6F; - _WordTbl.BottomPadding = 6F; - LBColumn col = _WordTbl.Columns.First; - //col.SetWidth(12F, LBWdRulerStyle.wdAdjustNone); - //col = col.Next; - col.SetWidth(72 * .91F, LBWdRulerStyle.wdAdjustNone); - col = col.Next; - col.SetWidth(72 * 4.1F, LBWdRulerStyle.wdAdjustNone); - col = col.Next; - //col.SetWidth(72 * .81F, LBWdRulerStyle.wdAdjustNone); - col.SetWidth(72 * .76F, LBWdRulerStyle.wdAdjustNone); - col = col.Next; - //col.SetWidth(72 * .81F, LBWdRulerStyle.wdAdjustNone); - col.SetWidth(72 * .76F, LBWdRulerStyle.wdAdjustNone); - _WordTbl.Rows.AllowBreakAcrossPages = 0; - } - private void AddHeader() - { - //Advance(); - WriteCell("START", true, true); - //SetIndent(0.32F, -0F); - WriteCell("STEP CONTINUOUS ACTION", true, true); - WriteCell("DONE", true, true); - WriteCell("PAGE", true, false); - } - private void AddSectionHeader(string number, string title) - { - if (!_FirstSection) - { - Advance(5); - _WordSel.MoveLeft(LBWdUnits.wdCell, 1, false); - _WordSel.SelectRow(); - _WordSel.Cells.Merge(); - } - _FirstSection = false; - Advance(2); - SetIndent(0, 0); - WriteCell("SECTION " + number, true, false); - WriteCell(" " + title, false, true); - Advance(); - } - private float GetTextWidth(string txt) - { - System.Drawing.Font font = new System.Drawing.Font(_pkFont.Family, (float)_pkFont.Size); - iTextSharp.text.Font iFont = Volian.Svg.Library.VolianPdf.GetFont(font); - float w = 0; - foreach (char c in txt) - { - w += iFont.BaseFont.GetWidthPointKerned(c.ToString(), (float)_pkFont.Size); - } - // indented text didn't always line up doing it this way - //float w = iFont.BaseFont.GetWidthPointKerned(txt, (float)_pkFont.Size); - return w; - } - private void AddHighLevelStep(string number, string text, string done, string page) - { - //// if the text contains prerequisite steps, - //// parse out the step numbers and place them in the first column - //if (text.Contains(@"\{Prerequisite Step: ")) - //{ - // string prereqToken = @"\{Prerequisite Step: "; - // string preqStp = ""; - // int idx = text.IndexOf(prereqToken); - // while (idx >= 0) - // { - // int parseStart = idx+prereqToken.Length; - // int endx = text.IndexOf(@"\}",parseStart); - // int parseLen = endx - parseStart; - // preqStp += "("+text.Substring(parseStart, parseLen) + "), "; - // text = text.Remove(idx, endx+2 - idx); - // idx = text.IndexOf(prereqToken); - // } - // Advance(1); - // preqStp = preqStp.Substring(0, preqStp.Length - 2); // remove ending ", " - // WriteCell(preqStp, false, true); - //} - //else - Advance(2); - if (text.Contains("\x05")) // hanging indent character - { - string[] parts = text.Split("\x05".ToCharArray()); - float ind = (GetTextWidth(number) + GetTextWidth(parts[0])) / 72f; - SetIndent(ind, -ind); - WriteCell(number + parts[0] + parts[1], false, true); - } - else - { - SetIndent(.33F, -.33F); - WriteCell(number + text, false, true); - } - SetAlignment(LBWdParagraphAlignment.wdAlignParagraphCenter, LBWdCellVerticalAlignment.wdCellAlignVerticalBottom); - WriteCell(done, false, true); - SetAlignment(LBWdParagraphAlignment.wdAlignParagraphCenter, LBWdCellVerticalAlignment.wdCellAlignVerticalBottom); - WriteCell(page, false, false); - } - private void AddSubStep(string text, string done, string page) - { - Advance(2); - //SetIndent(.64F, -.31F); - //_WordSel.InsertSymbol(8226, _WordSel.Font, System.Reflection.Missing.Value, System.Reflection.Missing.Value); - //WriteCell("\u2022" + "\t" + text, false, true); // this will print out a bullet and a tab - WriteCell(text, false, true); - SetAlignment(LBWdParagraphAlignment.wdAlignParagraphCenter, LBWdCellVerticalAlignment.wdCellAlignVerticalBottom); - WriteCell(done, false, true); - SetAlignment(LBWdParagraphAlignment.wdAlignParagraphCenter, LBWdCellVerticalAlignment.wdCellAlignVerticalBottom); - WriteCell(page, false, false); - } - private bool _FirstLine = false; - private void StartSubStep() - { - _FirstLine = true; - Advance(2); - SetIndent(.64F, -.31F); - } - private void ContinueSubStep(string text, int level) - { - if(!_FirstLine) _WordSel.TypeParagraph(); - _FirstLine = false; - SetIndent(.33F + (.31F * level), -.31F); - //WriteCell("\u2022" + "\t" + text, false, false); // this will print out a bullet and a tab - WriteCell(text, false, false); - } - private void FinishSubstep(string done, string page) - { - Advance(); - SetAlignment(LBWdParagraphAlignment.wdAlignParagraphCenter, LBWdCellVerticalAlignment.wdCellAlignVerticalBottom); - WriteCell(done, false, true); - SetAlignment(LBWdParagraphAlignment.wdAlignParagraphCenter, LBWdCellVerticalAlignment.wdCellAlignVerticalBottom); - WriteCell(page, false, false); - } - private void AddCautionOrNote(string type, string text, string done, string page) - { - Advance(2); - SetIndent(.33F, -.33F); - WriteCell(type, true, false); - WriteCell(" " + text, false, true); - SetAlignment(LBWdParagraphAlignment.wdAlignParagraphCenter, LBWdCellVerticalAlignment.wdCellAlignVerticalBottom); - WriteCell(done, false, true); - SetAlignment(LBWdParagraphAlignment.wdAlignParagraphCenter, LBWdCellVerticalAlignment.wdCellAlignVerticalBottom); - WriteCell(page, false, false); - } - private void AddContinuousAction(string number, string text, string done, string page) - { - Advance(2); - //SetIndent(.33F, -.33F); - //WriteCell(type, true, false); - //WriteCell(" " + text, false, true); - if (text.Contains("\x05")) // hanging indent character - { - string[] parts = text.Split("\x05".ToCharArray()); - float ind = (GetTextWidth(number) + GetTextWidth(parts[0])) / 72f; - SetIndent(ind, -ind); - WriteCell(number + parts[0] + parts[1], false, true); - } - else - { - SetIndent(.33F, -.33F); - WriteCell(number + text, false, true); - } - SetAlignment(LBWdParagraphAlignment.wdAlignParagraphCenter, LBWdCellVerticalAlignment.wdCellAlignVerticalBottom); - WriteCell(done, false, true); - SetAlignment(LBWdParagraphAlignment.wdAlignParagraphCenter, LBWdCellVerticalAlignment.wdCellAlignVerticalBottom); - WriteCell(page, false, false); - } - static Regex rgx = new Regex(@"\\(b|ul|up[1-9]|dn0|up0|dn[1-9]|b0|ulnone)( |$|(?=\\))"); - private void WriteRTF(string text) - { - //if (text.Contains("\\")) - // Console.WriteLine("here"); - Match m = rgx.Match(text); - while (m.Success) - { - if (m.Index > 0) - _WordSel.TypeText(text.Substring(0,m.Index)); - switch (m.Groups[1].Value) - { - case "b": // bold on - _WordSel.Font.Bold = 1; - break; - case "b0": // bold off - _WordSel.Font.Bold = 0; - break; - case "ul": // underline on - _WordSel.Font.Underline = LBWdUnderline.wdUnderlineSingle; - break; - case "ulnone": // underline off - _WordSel.Font.Underline = LBWdUnderline.wdUnderlineNone; - break; - case "dn0": // superscript off - _WordSel.Font.Superscript = 0; - break; - case "up0": // subscript off - _WordSel.Font.Subscript = 0; - break; - default: - if (m.Groups[1].Value.StartsWith("dn"))// subscript on - _WordSel.Font.Subscript = 1; - else // superscript on - _WordSel.Font.Superscript = 1; - break; - - } - text = text.Substring(m.Index+m.Length); - m = rgx.Match(text); - } - _WordSel.TypeText(text); - } - private void WriteCell(string text, bool bold, bool advance) - { - _WordSel.Font.Name = _pkFont.Family;//"Arial"; - _WordSel.Font.Bold = bold ? 1 : 0; - //_WordSel.TypeText(text); - WriteRTF(text); - if (advance) Advance(); - } - private void SetIndent(float left, float first) - { - _WordSel.ParagraphFormat.LeftIndent = left * 72; - _WordSel.ParagraphFormat.FirstLineIndent = first * 72; - } - private void SetAlignment(LBWdParagraphAlignment hAlign, LBWdCellVerticalAlignment vAlign) - { - _WordSel.ParagraphFormat.Alignment = hAlign; - _WordSel.Cells.VerticalAlignment = vAlign; - } - private void Advance(int count) - { - _WordSel.MoveRight(LBWdUnits.wdCell, count, false); - } - private void Advance() - { - Advance(1); - } - public void Dispose() - { - _WordApp.Quit(false); - } - } -} diff --git a/PROMS/Volian.Print.Library/Grid2Pdf.cs.bak b/PROMS/Volian.Print.Library/Grid2Pdf.cs.bak deleted file mode 100644 index a8125038..00000000 --- a/PROMS/Volian.Print.Library/Grid2Pdf.cs.bak +++ /dev/null @@ -1,1536 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using C1.Win.C1FlexGrid; -using System.IO; -using Itenso.Rtf; -using Itenso.Rtf.Parser; -using Itenso.Rtf.Interpreter; -using Itenso.Rtf.Support; -using Volian.Print.Library; -using Volian.Controls.Library; -using iTextSharp.text; -using iTextSharp.text.pdf; -using VEPROMS.CSLA.Library; -using System.Text.RegularExpressions; - -namespace Volian.Print.Library -{ - #region Settings // RHM20150429 - Table Scrunch - public partial class vlnTable - { - private string _DebugInfo = null; // RHM20150429 - Table Scrunch - public string DebugInfo - { - get { return _DebugInfo; } - set { _DebugInfo = value; } - } - private int _ItemID = 0; - public int ItemID - { - get { return _ItemID; } - set { _ItemID = value; } - } - private bool _ShowDetails = false; - public bool ShowDetails - { - get { return _ShowDetails; } - set { _ShowDetails = value; } - } - private bool _IsTooBig = false; - public bool IsTooBig - { - get { return _IsTooBig; } - set { _IsTooBig = value; } - } - } - public partial class vlnCells - { - private static float YAdjust_HContent = 4; // 4 - private float YAdjust_SpacingAfter - { - get - { - return 8-8*MyTable.Adjustment;//0; // 8 - } - } - } - public partial class vlnCell - { - public bool ShowDetails - { get { return MyTable.ShowDetails; } } - private static float YAdjust_h = 0; // 0 - private float YAdjust_TextLocation - { - get - { - return 4 - 4 * MyTable.Adjustment; ;//0; // 4 - } - } - } - //public partial class vlnTable - //{ - // private static float YAdjust_RowTop = 0;//8; // 0 - //} - //public partial class vlnCells - //{ - // private static float YAdjust_HContent = 4; // 4 - // private static float YAdjust_SpacingAfter = 8;//0; // 8 - //} - //public partial class vlnCell - //{ - // private static float YAdjust_h = 0; // 0 - // private static float YAdjust_TextLocation = 4;//0; // 4 - //} - #endregion - public partial class vlnTable - { - #region Properties - private float[] _HContents;// RHM20150525 - Table Scrunch - public float[] HContents - { - get { return _HContents; } - set { _HContents = value; } - } - private float[] _RowTop; - public float[] RowTop - { - get { return _RowTop; } - set { _RowTop = value; } - } - private float[] _ColLeft; - public float[] ColLeft - { - get { return _ColLeft; } - set { _ColLeft = value; } - } - private VlnFlexGrid _MyFlexGrid; - public VlnFlexGrid MyFlexGrid - { - get { return _MyFlexGrid; } - set { _MyFlexGrid = value; } - } - private VlnBorders _MyBorders; - public VlnBorders MyBorders - { - get { return _MyBorders; } - set { _MyBorders = value; } - } - private iTextSharp.text.pdf.PdfContentByte _MyContentByte; - public iTextSharp.text.pdf.PdfContentByte MyContentByte - { - get { return _MyContentByte; } - set { _MyContentByte = value; } - } - private vlnCells _MyCells; - public vlnCells MyCells - { - get { return _MyCells; } - set { _MyCells = value; } - } - public float Height - { get - { - return RowTop[RowTop.Length - 1]; - } } - public float Width - { get - { - return ColLeft[ColLeft.Length - 1]; - } } - - private static float _XOffset = -1; // This moves the borders with respect to the text - public static float XOffset - { - get { return vlnTable._XOffset; } - set { vlnTable._XOffset = value; } - } - private static float _YOffset = 0; // This moves the borders with respect to the text - public static float YOffset - { - get { return vlnTable._YOffset; } - set { vlnTable._YOffset = value; } - } - private static float _LineThicknessForThin = .9F; - public static float LineThicknessForThin - { - get { return vlnTable._LineThicknessForThin; } - set { vlnTable._LineThicknessForThin = value; } - } - private static float _LineThicknessForThick = 1.8F; - public static float LineThicknessForThick - { - get { return vlnTable._LineThicknessForThick; } - set { vlnTable._LineThicknessForThick = value; } - } - private static float _LineThicknessForDouble = .6F; - public static float LineThicknessForDouble - { - get { return vlnTable._LineThicknessForDouble; } - set { vlnTable._LineThicknessForDouble = value; } - } - public static float DoubleLineOffset - { - get { return (LineThicknessForThick - LineThicknessForDouble) / 2; }//LineThicknessForThick - 2 * LineThicknessForDouble; } - } - private float _TotalContentHeight = 0;// RHM20150525 - Table Scrunc - public float TotalContentHeight - { - get - { - if (_TotalContentHeight == 0) - { - foreach (float h in HContents) - _TotalContentHeight += h; - } - return _TotalContentHeight; - } - } - public float SpaceAvailable// RHM20150525 - Table Scrunc - { - get { return TotalContentHeight ==0 ? 0 : RowTop[RowTop.Length - 1] - TotalContentHeight; } - } - private float _TooBig;// RHM20150525 - Table Scrunc - public float TooBig - { - get { return _TooBig; } - set - { - _TooBig = value; - //_Adjustment = Math.Min(1F, (_TooBig / (RowTop.Length - 1)) / 12); - //if (ShowDetails) Console.WriteLine("TooBig\t{0}\t{1}", value, _Adjustment); - //if(ShowDetails) Console.WriteLine("Before RowTop={0}", RowTop[RowTop.Length-1] ); - float extra=(TooBig < SpaceAvailable)?(SpaceAvailable - TooBig) / HContents.Length:0; - for (int r = 0; r < RowTop.Length - 1; r++) - RowTop[r + 1] = RowTop[r] + HContents[r] + extra; - //if(ShowDetails) Console.WriteLine("After RowTop={0}", RowTop[RowTop.Length-1] ); - } - } - private float _Adjustment = 0;// RHM20150525 - Table Scrunc - public float Adjustment - { - get { return _Adjustment; } - set { _Adjustment = value; } - } - //private float _YAdjust_RowTop = 0;//8; // 0 - public float YAdjust_RowTop - { - get - { - return _Adjustment * 12; - } - } - private void DrawRuler(PdfContentByte cb, float x, float yTop, float height)// RHM20150525 - Table Scrunc - { - VlnSvgPageHelper myPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper; - if (myPageHelper.DebugLayer != null) - { - cb.BeginLayer(myPageHelper.DebugLayer); - cb.SaveState(); - cb.SetLineWidth(.1F); - cb.SetColorStroke(new Color(System.Drawing.Color.Orange)); - float yBottom = yTop - height; - cb.MoveTo(x, yTop); - cb.LineTo(x, yBottom); - int i = 0; - for (float y = yTop; y >= yBottom; y -= 10) - { - float w = 10; - if (i % 10 == 0) w = 30; - else if (i % 5 == 0) w = 20; - cb.SetLineWidth(w / 30); - i++; - cb.MoveTo(x + w, y); - cb.LineTo(x, y); - cb.Stroke(); - } - i = 0; - cb.Stroke(); - cb.RestoreState(); - cb.EndLayer(); - } - } - private void ShowRowTops(string location)// RHM20150525 - Table Scrunc - { - if (!ShowDetails) return; - StringBuilder sb = new StringBuilder(); - for (int i = 0; i < RowTop.Length; i++) - sb.Append("\t" + RowTop[i].ToString()); - Console.WriteLine(location + "\t" + sb.ToString()); - } - private void EndSetup()// RHM20150525 - Table Scrunc - { - if (ShowDetails) ShowRowTops("vlnTable.ctor.2"); - if (ShowDetails) Console.WriteLine("^^^^^^vlnTable============{0}===============", ItemID); - } - private void SetupDebug(VlnFlexGrid myFlexGrid)// RHM20150525 - Table Scrunc - { - //ShowDetails = myFlexGrid.GetMyItemInfo().InList(38329); - //if(ShowDetails) Console.WriteLine("vvvvvvlnTable============{0}===============", ItemID); - ItemInfo myItemInfo = myFlexGrid.GetMyItemInfo(); - ItemID = myItemInfo.ItemID; - DebugInfo = string.Format("DebugID = {0}, ID={1} Type={2} TypeName='{3}' StepLevel={4} ShortPath={5} Width={6} Left={7} YOffset={8}", - 0, myItemInfo.ItemID, myItemInfo.FormatStepType, myItemInfo.FormatStepData == null ? "NoStepData" : myItemInfo.FormatStepData.Type, - myItemInfo.StepLevel, myItemInfo.ShortPath, Width, XOffset, YOffset); - } - #endregion - #region Constructors - public vlnTable(VlnFlexGrid myFlexGrid, iTextSharp.text.pdf.PdfContentByte myContentByte) - { - MyFlexGrid = myFlexGrid; - MyContentByte = myContentByte; - InitializeSizes(); - SetupDebug(myFlexGrid);// RHM20150525 - Table Scrunc - MyCells = new vlnCells(this, MyFlexGrid, MyContentByte); - EndSetup();// RHM20150525 - Table Scrunc - } - #endregion - #region Private Methods - private void InitializeSizes() - { - RowTop = new float[MyFlexGrid.Rows.Count + 1]; - HContents = new float[MyFlexGrid.Rows.Count];// RHM20150525 - Table Scrunc - RowTop[0] = 0; - for (int r = 0; r < MyFlexGrid.Rows.Count; r++) - RowTop[r + 1] = RowTop[r] + 72 * (MyFlexGrid.Rows[r].Height == -1 - ? MyFlexGrid.Rows.DefaultSize : MyFlexGrid.Rows[r].Height) / (float)MyFlexGrid.DPI; - ColLeft = new float[MyFlexGrid.Cols.Count + 1]; - ColLeft[0] = 0; - for (int c = 0; c < MyFlexGrid.Cols.Count; c++) - ColLeft[c + 1] = 2 + ColLeft[c] + 72 * (MyFlexGrid.Cols[c].Width == -1 // RHM20150429 - Table Scrunch - ? MyFlexGrid.Cols.DefaultSize : MyFlexGrid.Cols[c].Width) / (float)MyFlexGrid.DPI; - } - #endregion - #region Public Methods - public void AdjustRowTop(int row1, int row2, float hNew) - { - float hAdjust = hNew - (RowTop[row2 + 1] - RowTop[row1]); - for (int r = row2; r < MyFlexGrid.Rows.Count; r++) - RowTop[r + 1] += hAdjust; - } - public void ToPdf(iTextSharp.text.pdf.ColumnText myColumnText, float left, float top) - { - //ZoomGrid(myColumnText, left, top); - if(ShowDetails) Console.WriteLine("vvvvvvToPdf============{0}===============", ItemID);// RHM20150525 - Table Scrunc - ShowRowTops("ToPDF1"); - PdfContentByte cb = myColumnText.Canvas; // RHM20150429 - Table Scrunch - VlnSvgPageHelper myPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper; - string myLPI = myPageHelper.YMultiplier == 1.0F ? ",6LPI" : ",7LPI"; - Rtf2Pdf.DrawPdfDebug(myColumnText.Canvas, left-2, top+1, left + Width, top-myPageHelper.YMultiplier *(Height+1), - DebugInfo+", Height= " + (myPageHelper.YMultiplier * Height).ToString() + myLPI, 0); - PdfLayer textLayer = myPageHelper == null ? null : myPageHelper.TextLayer; // RHM20150429 - Table Scrunch - if (textLayer != null) cb.BeginLayer(textLayer); - myPageHelper.AddGap(top, top - Height, left, left + Width); - MyCells.ToPdf(myColumnText, left, top); - DrawRuler(myColumnText.Canvas, left + Width, top, myPageHelper.YMultiplier * (Height + 1)); // RHM20150429 - Table Scrunch - if (textLayer != null) cb.EndLayer(); - ShowRowTops("ToPDF2"); - if (ShowDetails) Console.WriteLine("^^^^^^ToPdf============{0}===============", ItemID); - } - private void ZoomGrid(iTextSharp.text.pdf.ColumnText myColumnText, float left, float top) - { - PdfDestination dest = new PdfDestination(PdfDestination.FITR, left - 4, top - Height - 4, left + Width, top + 4); - myColumnText.Canvas.SetAction(PdfAction.GotoLocalPage(myColumnText.Canvas.PdfWriter.CurrentPageNumber, dest, myColumnText.Canvas.PdfWriter), left, top - Height, left + Width, top); - } - #endregion - } - public partial class vlnCells : List // RHM20150429 - Table Scrunch - { - #region Properties - private VlnFlexGrid _MyFlexGrid; - public VlnFlexGrid MyFlexGrid - { - get { return _MyFlexGrid; } - set { _MyFlexGrid = value; } - } - private vlnTable _MyTable; - public vlnTable MyTable - { - get { return _MyTable; } - set { _MyTable = value; } - } - public bool ShowDetails// RHM20150525 - Table Scrunc - { get { return MyTable.ShowDetails; }} - private iTextSharp.text.pdf.PdfContentByte _MyContentByte; - public iTextSharp.text.pdf.PdfContentByte MyContentByte - { - get { return _MyContentByte; } - set { _MyContentByte = value; } - } - #endregion - #region Constructors - public vlnCells(vlnTable myTable, VlnFlexGrid myFlexGrid, iTextSharp.text.pdf.PdfContentByte myContentByte) - { - MyTable = myTable; - MyFlexGrid = myFlexGrid; - MyContentByte = myContentByte; - SetupCells(); - foreach(vlnCell cell in this) - { - myTable.MyBorders = VlnBorders.Get(myFlexGrid.MyBorders.ConvertToString()); - GridLinePattern glp = cell.AboveLeftSide; - glp = cell.AboveRightSide; - glp = cell.BelowLeftSide; - glp = cell.BelowRightSide; - glp = cell.RightOfBottomSide; - glp = cell.RightOfTopSide; - object ta = cell.TextAlign; - } - } - #endregion - #region Private Methods - private void SetupCells() - { - // Create a ColumnText to determine the cell heights - iTextSharp.text.pdf.ColumnText myColumnText1 = new iTextSharp.text.pdf.ColumnText(MyContentByte); - // Walk through - for (int r = 0; r < MyFlexGrid.Rows.Count; r++) - { - float hMax = 12; // RHM20150429 - Table Scrunch - for (int c = 0; c < MyFlexGrid.Cols.Count; c++) - { - CellRange cr = MyFlexGrid.GetMergedRange(r, c); - if (cr.r1 == r && cr.c1 == c) - { - float w = MyTable.ColLeft[cr.c2 + 1] - MyTable.ColLeft[cr.c1]; - float h = MyTable.RowTop[cr.r2 + 1] - MyTable.RowTop[cr.r1]; - string str = MyFlexGrid.GetCellRTFString(r, c) ?? string.Empty; - if (str.Contains(@"\cf")) - { - str = System.Text.RegularExpressions.Regex.Replace(str, @"\\cf[0-9]\\", @"\"); - str = System.Text.RegularExpressions.Regex.Replace(str, @"\\cf[0-9] ", @""); - } - // the FreeMono font is used for the editor, but VESymbFix is used for printing - // The font spefication is embeded in the table text so we need to change the font reference from - // FreeMono to VESymbFix before we print the table - if (str.ToUpper().Contains("FREEMONO")) - str = str.Replace("FreeMono", "VESymbFix"); - DisplayText dt = new DisplayText(MyFlexGrid.GetMyItemInfo(), str, false); - str = dt.StartText; - str = PreProcessRTF(w, str); - - // If the font is not proportional, pass the symbol font through to RtfToParagraph. It is needed - // in underlying code to set the chunk's font if the first character of a cell is a hardspace. Without - // this, pdfs were using the Helvetica font, which is a default itextsharp font. - ItemInfo ii = MyFlexGrid.GetMyItemInfo(); - iTextSharp.text.Font ff = null; - if (!ii.FormatStepData.Font.FontIsProportional()) - ff = Volian.Svg.Library.VolianPdf.GetFont("VESymbFix", (int)ii.FormatStepData.Font.Size, (int)ii.FormatStepData.Font.WindowsFont.Style); - iTextSharp.text.Paragraph myPara = RtfToParagraph(str, ff); - - myColumnText1.SetSimpleColumn(0, 0, w-2, MyContentByte.PdfDocument.PageSize.Top); // Padding = 4 - if (str.Contains(@"\'05")) - { - // if there is a hanging indent, the iTextSharp paragraph properties must be set - // to print the indent. Replace the indent 'token' with a non-used symbol, this will - // create a chunk with that symbol. Then loop through all of the chunks until we find - // this symbol, adding up the widths to that point. This width is the value that - // needs to be used to set the indent. - // Notes: - // A hard return will reset the chkW (indent width) back to zero. - // We jump out of the processing loop after the first indent token is found and ignor any other ones - float chkW = CalculateHangingIndent(str); - myPara.IndentationLeft = chkW; - myPara.FirstLineIndent = -chkW; - } - Match match = Regex.Match(str, @"\\fi([-0-9]*) ?\\li([0-9]*)"); - if (match.Success) - { - float fi = float.Parse(match.Groups[1].Value) / 20; // 72 is dots per inch & 96 is standard DPI (120 is KBR's machine) - float li = float.Parse(match.Groups[2].Value) / 20; - // if there is a hanging indent, the iTextSharp paragraph properties must be set - // to print the indent. - myPara.IndentationLeft = li; - myPara.FirstLineIndent = fi; - } - // RHM 20120925 - Line spacing should be 6 lines per inch. In order to get a valid value - // for TotalLeading you have to set MultipliedLeading first: - myPara.MultipliedLeading = 1.0f; - // once there is valid value for TotalLeading (from previous line), you can use it to - // calculate a MultipliedLeading to give 6 LPI (12 points) - myPara.MultipliedLeading = 12.0f / myPara.TotalLeading; - myPara.SpacingAfter = 8; // RHM 20120925 - Add a line to properly space text from lines. - if(Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase2)) // RHM20150429 - Table Scrunch - myPara.SpacingAfter = 0;// YAdjust_SpacingAfter; // RHM 20120925 - Add a line to properly space text from lines. - FixHyphens(myPara, MyTable); - if (Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase3)) - TrimNewlines(myPara); // RHM20150429 - Table Scrunch - myColumnText1.AddElement(myPara); - //myColumnText1.Canvas.SetColorFill(PrintOverride.OverrideTextColor(System.Drawing.Color.Black)); - float posBefore = myColumnText1.YLine; - int status = myColumnText1.Go(true); - float posAfter = myColumnText1.YLine; - float hContent = 4 + posBefore - posAfter; - if (Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase4))// RHM20150525 - Table Scrunc - { - hContent = 0 + posBefore - posAfter;//YAdjust_HContent + posBefore - posAfter; - // if (myPara.Chunks.Count > 0 && myPara.Chunks[myPara.Chunks.Count - 1] == "\n") - // hContent -= 12; - } - //if(ShowDetails) Console.WriteLine("{0}\t{1}\t{2}",r,c, hContent/12); - if (cr.r1 == cr.r2) - hMax = Math.Max(hMax, hContent); - else - hMax = Math.Max(hMax, hContent - (cr.r2 - cr.r1) * _SixLinesPerInch); - if (hContent > h) - { // RHM20150429 - Table Scrunch - //if (ShowDetails) Console.WriteLine("Less {0},{1},{2},{3},{4},{5}", r, c, posBefore, posAfter, hContent, hMax); - MyTable.AdjustRowTop(cr.r1, cr.r2, hContent); - } // RHM20150429 - Table Scrunch - if (Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase5)) - { - //if (ShowDetails) Console.WriteLine("Greater{0},{1},{2},{3},{4},{5}", r, c, posBefore, posAfter, hContent, hMax); - //if (c == MyFlexGrid.Cols.Count - 1) - //MyTable.AdjustRowTop(cr.r1, cr.r2, hMax + 6); - MyTable.HContents[cr.r2] = hMax+2; - } - Add(new vlnCell(cr.r1, cr.c1, cr.r2, cr.c2, MyTable, myPara,hContent)); - } - } - } - } - private void ShowChunks(System.Collections.ArrayList chunks) // RHM20150429 - Table Scrunch - { - StringBuilder sb = new StringBuilder(); - foreach (Chunk chk in chunks) - { - sb.Append(BuildChunks(chk.Content)); - } - //if (ShowDetails) Console.WriteLine("Chunks = '{0}'", sb.ToString()); - } - private string BuildChunks(string str) - { - StringBuilder sb = new StringBuilder(); - foreach(char c in str) - { - if (((int)c) < 0x20 || ((int)c) > 0x7F) - sb.Append(string.Format("<{0:X4}>",(int)c)); - else - sb.Append(c); - } - return "{" + sb.ToString() + "}"; - } - private void TrimNewlines(Paragraph myPara) - { - while (myPara.Count > 0 && ParaEndsWithNewLine(myPara)) - myPara.RemoveAt(myPara.Count - 1); - } - private bool ParaEndsWithNewLine(Paragraph myPara) - { - Chunk chk = myPara[myPara.Count - 1] as Chunk; - if (chk == null) return false; - if (chk.Content == "\n") return true; - return false; - } - public class VlnSplitCharacter : ISplitCharacter - { - public bool IsSplitCharacter(int start, int current, int end, char[] cc, PdfChunk[] ck) - { - return (cc[current] == ' '); - } - public bool IsSplitCharacter(char c) - { - return (c == ' '); - } - } - public static VlnSplitCharacter mySplitter = new VlnSplitCharacter(); - internal static void FixHyphens(Paragraph myPara, vlnTable myTable) - { - // Find chunk with hardhyphen - - // If a hard hyphen is found, the remove it and add a dash (keyboard minus sign) to the beginning - // of the text that follows it. - int hype=-1; - Font fnt = null; - while ((hype = GetHyphen(myPara)) > -1) - { - fnt = null; - if (hype > 0) - { - Chunk chk1 = (Chunk)myPara[hype - 1]; - if (hype > 1 && chk1.Content.Equals("\n")) - chk1 = (Chunk)myPara[hype - 2]; - fnt = chk1.Font; // use the font of the text that follows the hyphen (dash) - } - else if (hype < myPara.Count - 1) - { - Chunk chk2 = (Chunk)myPara[hype + 1]; - if (hype != 0 && !chk2.Content.Equals("\n")) - fnt = chk2.Font; // use the font of the text that follows the hyphen (dash) - } - if (fnt == null) - { - // if there was no text following the hypen, then use the font defined for tables in the plant's format - VEPROMS.CSLA.Library.VE_Font vfnt = myTable.MyFlexGrid.GetMyItemInfo().FormatStepData.Font; - System.Drawing.Font ffont = new System.Drawing.Font(vfnt.Family, (float)vfnt.Size); - fnt = Volian.Svg.Library.VolianPdf.GetFont(ffont); - fnt.SetStyle(myPara.Font.Style); - fnt.SetColor(myPara.Font.Color.R,myPara.Font.Color.G,myPara.Font.Color.B); - } - Chunk chk = (Chunk)myPara[hype]; - // THIS CODE IS USED FOR DEBUGGING - //if (!fnt.Familyname.StartsWith("L")) - //{ - // Console.WriteLine("font = {0}", makeitpretty(fnt)); - // Console.WriteLine("Hype = {0}\r\n{1}",hype, myPara.Content); - // if (hype > 0) - // { - // Chunk chk3 = (Chunk)myPara[hype - 1]; - // Console.WriteLine("before '{0}'", chk3.Content); - // } - // Chunk chk4 = (Chunk)myPara[hype]; - // Console.WriteLine("during '{0}'", chk4.Content); - // if (hype < myPara.Count -1) - // { - // Chunk chk5 = (Chunk)myPara[hype + 1]; - // Console.WriteLine("after '{0}'", chk5.Content); - // } - //} - string prefix = ""; - if (chk.Content == "\u2011" && hype < (myPara.Count - 1)) - { - myPara.RemoveAt(hype);// Remove standalone hyphen - chk = (Chunk)myPara[hype]; - prefix = "-"; - } - myPara.RemoveAt(hype); - myPara.Insert(hype, new Chunk(prefix + chk.Content.Replace("\u2011", "-"), fnt)); - } - } - - // THIS FUNCTION IS USED FOR DEBUGGING - private static string makeitpretty(Font fnt) - { - return string.Format("font {0}, size {1}, style {2}", fnt.Familyname, fnt.Size, fnt.Style); - } - - private static int GetHyphen(Paragraph myPara) - { - int index=0; - foreach (Chunk chk in myPara.Chunks) - if (chk.Content.Contains("\u2011")) - return index; - else - index++; - return -1; - } - public static float CalculateHangingIndent(string rtf) - { - float chkW = 0; - // **** This is intened to be a temporary fix for V.C.Summer **** - // Two procedures would not print: A-2 SAG in Summer's SAMG set, and SAG-3 in Summer's PWOG DAMG set. - // These procedures have tables with hanging indents and use the Letter Gothic Tall font. - // It appears that the font information for the hanging indent character is not included in the RTF - // for those table cells. - // This piece of code checks for the existance of a font definition of \f1 which is need for the \u9999? indent character - // If the a font definition of \f1 is not found then the indent character is removed. This will allow the procedure to print - // but the text in that table cell will not be indented. - jsj 10/10/2014 - //IRtfDocument rtfDoc2 = RtfInterpreterTool.BuildDoc(rtf.Replace(@"\'05", @"\f1 \u9999? \f0 ")); - IRtfDocument rtfDoc2 = null; - //if (rtf.Contains(@"\f1\fnil\fcharset0 ")) - // rtfDoc2 = RtfInterpreterTool.BuildDoc(rtf.Replace(@"\'05", @"\f1 \u9999? \f0 ")); - //else - //{ - // first add the symbol font and then surround the indent as above. - rtfDoc2 = RtfInterpreterTool.BuildDoc(rtf.Replace(@"\'05", @"\par\u9999?\par")); - //} - - Rtf2iTextSharp rtf2IText2 = new Rtf2iTextSharp(rtfDoc2); - iTextSharp.text.Paragraph para2 = rtf2IText2.Convert(); - for (int ic = 0; ic < para2.Chunks.Count; ic++) - { - Chunk chk = para2.Chunks[ic] as Chunk; - if (chk.Content[0] == 9999) break; - if (chk.Content.Contains("\u270f")) - { - int i = chk.Content.IndexOf('\u270F'); - int n = chk.Content.Length; - chkW += chk.GetWidthPoint() * i / (n - i); - break; - } - if (chk.Content.Contains("\n")) - { - if (ic < para2.Chunks.Count - 2 && (para2.Chunks[ic + 1] as Chunk).Content.StartsWith("\u270f")) return chkW; - chkW = 0; //hard return - reset chkW (indent start) - } - chkW += chk.GetWidthPoint(); - } - return chkW; - } - - private static StepRTB _StatRTB = new StepRTB(); - private string PreProcessRTF(float w, string str) - { - _StatRTB.Text = string.Empty; - _StatRTB.Width = (int)w; - _StatRTB.Font = MyFlexGrid.Font; - if (str.StartsWith(@"{\rtf")) - // The 'Replace(@" \ulnone", @"\u160?\ulnone")' was added so that data in VEWCN SUR_WTC - // tables would print. There were a number of tables, for example in STN NB-106/8.1.6, - // that had a series of spaces underlined and these spaces were not underlined in the - // generated pdf. It seems that there is a problem somewhere in the rtb -> itextsharp - // level. This fixed the immediate problem. If there is 'b0' (bold off) after the - // space before the 'ulnone' the following won't work. Also, this change was not - // made in the non-table code. If the problem occurs there, it should be added. - _StatRTB.Rtf = str.Replace(@"\~", @"\u160?").Replace(@" \ulnone", @"\u160?\ulnone"); - else - _StatRTB.Text = str; - _StatRTB.SelectAll(); - _StatRTB.SelectionColor = PrintOverride.OverrideTextColor(System.Drawing.Color.Black); - str = _StatRTB.Rtf; - return str; - } - public static iTextSharp.text.Paragraph RtfToParagraph(string rtf, iTextSharp.text.Font mySymFont) - { - IRtfDocument rtfDoc = RtfInterpreterTool.BuildDoc(rtf); - Rtf2iTextSharp rtf2IText = new Rtf2iTextSharp(rtfDoc); - rtf2IText.DefaultFont = mySymFont; - iTextSharp.text.Paragraph para = rtf2IText.Convert(); - para.SetLeading(_SixLinesPerInch, 0); - return para; - } - private static float _SixLinesPerInch = 12; // twips - #endregion - #region Public Methods - public void ToPdf(iTextSharp.text.pdf.ColumnText myColumnText, float left, float top) - { - foreach (vlnCell myCell in this) - myCell.ToPdf(myColumnText, left, top); - } - #endregion - } - public partial class vlnCell // RHM20150429 - Table Scrunch - { - #region Properties - private vlnTable _MyTable; - public vlnTable MyTable - { - get { return _MyTable; } - set { _MyTable = value; } - } - public VlnBorders MyBorders - { - get { return _MyTable.MyBorders; } - } - private int _r1; - public int r1 - { - get { return _r1; } - set { _r1 = value; } - } - private int _c1; - public int c1 - { - get { return _c1; } - set { _c1 = value; } - } - private int _r2; - public int r2 - { - get { return _r2; } - set { _r2 = value; } - } - private int _c2; - public int c2 - { - get { return _c2; } - set { _c2 = value; } - } - private iTextSharp.text.Paragraph _MyPara; - public iTextSharp.text.Paragraph MyPara - { - get { return _MyPara; } - set { _MyPara = value; } - } - private float _HContent; - public float HContent - { - get { return _HContent; } - set { _HContent = value; } - } - #endregion - #region Line Pattern Diagram - /* - The diagram below identifies the various border names for the cell in the center - - |-AboveLeftSide |-AboveRightSide - | | - | | - | | - LeftOfTopSide | TopSide | RightOfTopSide - ------------------|-------------------|------------------ - | | - | | - |-LeftSide |-RightSide - | | - | | - LeftOfBottomSide | BottomSide | RightOfBottomSide - --------------------------------------|------------------ - | | - | | - | | - | | - |-BelowLeftSide |-BelowRightSide - */ - - #endregion - #region Horizontal Line Patterns - private GridLinePattern _TopSide = GridLinePattern.Unknown; - public GridLinePattern TopSide - { - get - { - if (_TopSide == GridLinePattern.Unknown) - _TopSide = MyBorders.HorizontalLines[r1, c1]; - return _TopSide; - } - } - private GridLinePattern _BottomSide = GridLinePattern.Unknown; - public GridLinePattern BottomSide - { - get - { - if (_BottomSide == GridLinePattern.Unknown) - _BottomSide = MyBorders.HorizontalLines[r2 + 1, c2]; - return _BottomSide; - } - } - private GridLinePattern _RightOfTopSide = GridLinePattern.Unknown; - public GridLinePattern RightOfTopSide - { - get - { - if (_RightOfTopSide == GridLinePattern.Unknown) - { - if (c2 == MyTable.MyFlexGrid.Cols.Count - 1) - _RightOfTopSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r1, c2 + 1); - if (cr.r1 == r1) - _RightOfTopSide = MyBorders.HorizontalLines[r1, c2 + 1]; - else - _RightOfTopSide = GridLinePattern.None; - } - } - return _RightOfTopSide; - } - } - private GridLinePattern _LeftOfTopSide = GridLinePattern.Unknown; - public GridLinePattern LeftOfTopSide - { - get - { - if (_LeftOfTopSide == GridLinePattern.Unknown) - { - if (c1 == 0) - _LeftOfTopSide = GridLinePattern.None; - else - { - // This property is only used if c1==0 or r1==0: - // A merged range for row = 0 will always return an r1=0. - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r1, c1 - 1); - if (cr.r1 == r1) - _LeftOfTopSide = MyBorders.HorizontalLines[r1, c1 - 1]; - else // Since this section of code is only entered when r1==0, this else condition should never happen - _LeftOfTopSide = GridLinePattern.None; - } - } - return _LeftOfTopSide; - } - } - private GridLinePattern _RightOfBottomSide = GridLinePattern.Unknown; - public GridLinePattern RightOfBottomSide - { - get - { - if (_RightOfBottomSide == GridLinePattern.Unknown) // Need to consider Merged Cells - { - if (c2 == MyTable.MyFlexGrid.Cols.Count - 1) - _RightOfBottomSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r2, c2 + 1); - if (cr.r2 == r2) - _RightOfBottomSide = MyBorders.HorizontalLines[r2 + 1, c2 + 1]; - else - _RightOfBottomSide = GridLinePattern.None; - } - } - return _RightOfBottomSide; - } - } - private GridLinePattern _LeftOfBottomSide = GridLinePattern.Unknown; - public GridLinePattern LeftOfBottomSide - { - get - { - if (_LeftOfBottomSide == GridLinePattern.Unknown) // Need to consider Merged Cells - { - if (c1 == 0) - _LeftOfBottomSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r2, c1 - 1); - if (cr.r2 == r2) - _LeftOfBottomSide = MyBorders.HorizontalLines[r2 + 1, c1 - 1]; - else - _LeftOfBottomSide = GridLinePattern.None; - } - } - return _LeftOfBottomSide; - } - } - #endregion - #region Vertical Line Patterns - private GridLinePattern _LeftSide = GridLinePattern.Unknown; - public GridLinePattern LeftSide - { - get - { - if (_LeftSide == GridLinePattern.Unknown) - _LeftSide = MyBorders.VerticalLines[r1, c1]; - return _LeftSide; - } - } - private GridLinePattern _RightSide = GridLinePattern.Unknown; - public GridLinePattern RightSide - { - get - { - if (_RightSide == GridLinePattern.Unknown) - _RightSide = MyBorders.VerticalLines[r2, c2 + 1]; - return _RightSide; - } - } - private GridLinePattern _BelowRightSide = GridLinePattern.Unknown; - public GridLinePattern BelowRightSide - { - get - { - if (_BelowRightSide == GridLinePattern.Unknown) - { - if (r2 == MyTable.MyFlexGrid.Rows.Count - 1) - _BelowRightSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r2 + 1, c2); - if (cr.c2 == c2) - _BelowRightSide = MyBorders.VerticalLines[r2 + 1, c2 + 1]; - else - _BelowRightSide = GridLinePattern.None; - } - } - return _BelowRightSide; - } - } - private GridLinePattern _AboveRightSide = GridLinePattern.Unknown; - public GridLinePattern AboveRightSide - { - get - { - if (_AboveRightSide == GridLinePattern.Unknown) - { - if (r1 == 0) - _AboveRightSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r1 - 1, c2); - if (cr.c2 == c2) - _AboveRightSide = MyBorders.VerticalLines[r1 - 1, c2 + 1]; - else - _AboveRightSide = GridLinePattern.None; - } - } - return _AboveRightSide; - } - } - private GridLinePattern _BelowLeftSide = GridLinePattern.Unknown; - public GridLinePattern BelowLeftSide - { - get - { - if (_BelowLeftSide == GridLinePattern.Unknown) - { - if (r2 == MyTable.MyFlexGrid.Rows.Count - 1) - _BelowLeftSide = GridLinePattern.None; - else - { - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r2 + 1, c1); - if (cr.c1 == c1) - _BelowLeftSide = MyBorders.VerticalLines[r2 + 1, c1]; - else - _BelowLeftSide = GridLinePattern.None; - } - } - return _BelowLeftSide; - } - } - private GridLinePattern _AboveLeftSide = GridLinePattern.Unknown; - public GridLinePattern AboveLeftSide - { - get - { - if (_AboveLeftSide == GridLinePattern.Unknown) - { - if (r1 == 0) - _AboveLeftSide = GridLinePattern.None; - else - { - // This property is only used if c1==0 or r1==0: - // A merged range for col = 0 will always return an c1=0. - CellRange cr = MyTable.MyFlexGrid.GetMergedRange(r1 - 1, c1); - if (cr.c1 == c1) - _AboveLeftSide = MyBorders.VerticalLines[r1 - 1, c1]; - else // Since this section of code is only entered when c1==0, this else condition should never happen - _AboveLeftSide = GridLinePattern.None; - } - } - return _AboveLeftSide; - } - } - #endregion - #region Static Properties - private static float XOffset { get { return vlnTable.XOffset; } } - private static float YOffset { get { return vlnTable.YOffset; } } - private static float LineThicknessForThin { get { return vlnTable.LineThicknessForThin; } } - private static float LineThicknessForThick { get { return vlnTable.LineThicknessForThick; } } - private static float LineThicknessForDouble { get { return vlnTable.LineThicknessForDouble; } } - private static float DoubleLineOffset { get { return vlnTable.DoubleLineOffset; } } - - // adjustments for line intersections: - private static float ThickOverDouble { get { return ((2 * DoubleLineOffset) + LineThicknessForDouble - LineThicknessForThick) / 2; } } - private static float ThickUnderDouble { get { return DoubleLineOffset + (LineThicknessForThick - LineThicknessForDouble) / 2; } } - private static float ThickOverThin { get { return (LineThicknessForThin - LineThicknessForThick) / 2; } } - private static float ThinOverThick { get { return (LineThicknessForThick - LineThicknessForThin) / 2; } } - private static float ThinUnderDouble { get { return DoubleLineOffset + (LineThicknessForThin - LineThicknessForDouble) / 2; } } - private static float ThinOverDouble { get { return (DoubleLineOffset + LineThicknessForThin - LineThicknessForDouble) / 2; } } - private static float DoubleUnderThin { get { return (LineThicknessForThin - LineThicknessForDouble) / 2; } } - private static float DoubleUnderThick { get { return (LineThicknessForThick - LineThicknessForDouble) / 2; } } - #endregion - #region Constructors - public vlnCell(int r1, int c1, int r2, int c2, vlnTable myTable, iTextSharp.text.Paragraph myPara, float hContent) - { - this.r1 = r1; - this.c1 = c1; - this.r2 = r2; - this.c2 = c2; - MyTable = myTable; - MyPara = myPara; - HContent = hContent; - } - #endregion - #region Public Methods - public override string ToString() - { - return string.Format("{0}:{1}", r1, c1); - } - public void ToPdf(iTextSharp.text.pdf.ColumnText myColumnText, float left, float top) - { - myColumnText.Canvas.SaveState(); - VlnSvgPageHelper _MyPageHelper = myColumnText.Canvas.PdfWriter.PageEvent as VlnSvgPageHelper; - float mult = _MyPageHelper.YMultiplier; - float x = MyTable.ColLeft[c1]; - float w = MyTable.ColLeft[c2 + 1] - x; - float y = mult * MyTable.RowTop[r1]; - float h = mult * MyTable.RowTop[r2 + 1] - y; - if (Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase6))// RHM20150525 - Table Scrunc - { - h = YAdjust_h + mult * MyTable.RowTop[r2 + 1] - y; - - } - BordersToPdf(myColumnText, left, top, x, w, y, h ); - float hAdjust = VeritcalTextAlignment(h,_MyPageHelper.YMultiplier); - iTextSharp.text.pdf.ColumnText myColumnText1 = new iTextSharp.text.pdf.ColumnText(myColumnText.Canvas); - float adjustTextLocation = mult * 4; // RHM 20120925 Move text down about 1 half line from the border - if (Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase7))// RHM20150525 - Table Scrunc - { - adjustTextLocation = mult * 0; - if (mult != 1F) adjustTextLocation=1; - } - myColumnText1.SetSimpleColumn(1 + left + x, top - y - h , left + x + w - 2, 1 + top - y - hAdjust - adjustTextLocation); // 2 == Default Padding - if (ShowDetails) Console.WriteLine("{0}\t{1}\t{2}\t{3}\t{4}\t{5}\t{6}\t{7}\t{8}\t\"{9}\"" - , r1, c1, hAdjust, adjustTextLocation, y, h, top, 1 + top - y - hAdjust - adjustTextLocation, - _MyPageHelper.YMultiplier, MyPara.Content.Substring(0, Math.Min(20, MyPara.Content.Length))); - MyPara.MultipliedLeading *= _MyPageHelper.YMultiplier; - vlnCells.FixHyphens(MyPara, MyTable); - myColumnText1.AddElement(MyPara); - foreach(object obj in MyPara) - { - if(obj is iTextSharp.text.Image) - { - iTextSharp.text.Image img = obj as iTextSharp.text.Image; - img.SetAbsolutePosition(left,top-h); - img.ScaleAbsoluteWidth(w); - img.ScaleAbsoluteHeight(h); - myColumnText.Canvas.AddImage(img); - } - } - float posBefore = myColumnText1.YLine; // RHM20150429 - Table Scrunch - myColumnText1.Go(); - float posAfter = myColumnText1.YLine; // RHM20150429 - Table Scrunch - if(ShowDetails)Console.WriteLine("ToPDF posBefore,posAfter,difference={0},{1},{2},{3}", - posBefore, posAfter, posBefore - posAfter,w); - myColumnText.Canvas.RestoreState(); - } - private static float _SixLinesPerInch = 12; // twips - public bool IsRangeStyleNull = false; - private TextAlignEnum? _TextAlign = null; - public TextAlignEnum? TextAlign - { - get - { - if (_TextAlign == null) - { - CellRange cr = MyTable.MyFlexGrid.GetCellRange(r1, c1, r2, c2); - if (cr.Style == null) - { - IsRangeStyleNull = true; - return _TextAlign; - } - else - { - IsRangeStyleNull = false; - _TextAlign = cr.Style.TextAlign; - } - } - return (TextAlignEnum)_TextAlign; - } - } - #endregion - #region Private Text Methods - private float VeritcalTextAlignment(float h, float mult) - { - float hAdjust = 0; - //CellRange cr = MyTable.MyFlexGrid.GetCellRange(r1, c1, r2, c2); - if (!IsRangeStyleNull) - { - switch (TextAlign) - { - case TextAlignEnum.CenterBottom: - case TextAlignEnum.GeneralBottom: - case TextAlignEnum.LeftBottom: - case TextAlignEnum.RightBottom: - hAdjust = Math.Max(0,h - (mult * HContent) )-1; - //Console.WriteLine("\"Bottom\",{0},{1},{2}", h, HContent, hAdjust); - break; - case TextAlignEnum.CenterCenter: - case TextAlignEnum.GeneralCenter: - case TextAlignEnum.LeftCenter: - case TextAlignEnum.RightCenter: - hAdjust = Math.Max(0,(h - (mult * HContent)) / 2)-1; - //Console.WriteLine("\"Middle\",{0},{1},{2}", h, HContent, hAdjust); - break; - default: - break; - } - } - return hAdjust; - } - #endregion - #region Private Border Methods - // coordinate system is upside down of screen. 0,0 on screen is top/left. 0,0 on pdf is bottom/left. - // i.e. x is same, y is flipped. - private void BordersToPdf(iTextSharp.text.pdf.ColumnText myColumnText, float left, float top, float x, float w, float y, float h) - { - PdfContentByte cb = myColumnText.Canvas; - cb.SaveState();// Save state before drawing borders - //SetOpacity(cb, .7F); // This line makes the borders transparent for testing - float xLeft = left + x + XOffset; - float yTop = top - y + YOffset; - float xRight = left + x + w + XOffset; - float yBottom = top - y - h + YOffset; - // ZoomToCell(myColumnText, xLeft, yTop, xRight, yBottom); - // Draw Top Side for the first row - if (r1 == 0) - DrawHorizontalLine(cb, "Top", xLeft, xRight, yTop, TopSide, LeftSide, AboveLeftSide, LeftOfTopSide, AboveRightSide, RightSide, RightOfTopSide); - // Draw Left Side for the first column - if (c1 == 0) - DrawLineVertical(cb, "Left", xLeft, yBottom, yTop, LeftSide, BottomSide, LeftOfBottomSide, BelowLeftSide, LeftOfTopSide, TopSide, AboveLeftSide); - // Draw Bottom Side - DrawHorizontalLine(cb, "Bottom", xLeft, xRight, yBottom, BottomSide, BelowLeftSide, LeftSide, LeftOfBottomSide, RightSide, BelowRightSide, RightOfBottomSide); - // Draw Right Side - DrawLineVertical(cb, "Right", xRight, yBottom, yTop, RightSide, RightOfBottomSide, BottomSide, BelowRightSide, TopSide, RightOfTopSide, AboveRightSide); - cb.RestoreState(); - } - private void DrawHorizontalLine(PdfContentByte cb, string side, float xStart, float xEnd, float y, GridLinePattern LinePattern, - GridLinePattern startToLeft, GridLinePattern startToRight, GridLinePattern startAhead, - GridLinePattern endToLeft, GridLinePattern endToRight, GridLinePattern endAhead) - { - if (LinePattern != GridLinePattern.None) - { - float direction = (xStart < xEnd) ? 1 : -1; - InitializeLineStyle(cb); - SetLineColor(cb, r1, c1, side); - if (LinePattern == GridLinePattern.Double) - { - // Top Line - float dStart = -direction * DoubleIntersectionRight(startToLeft, startToRight, startAhead); - float dEnd = direction * DoubleIntersectionLeft(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForDouble, xStart + dStart, y + DoubleLineOffset, xEnd + dEnd, y + DoubleLineOffset); - // Bottom Line - dStart = -direction * DoubleIntersectionLeft(startToLeft, startToRight, startAhead); - dEnd = direction * DoubleIntersectionRight(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForDouble, xStart + dStart, y - DoubleLineOffset, xEnd + dEnd, y - DoubleLineOffset); - } - else if (LinePattern != GridLinePattern.Thick) - { - SetLinePattern(cb, LinePattern); - float dStart = -direction * ThinIntersection(startToLeft, startToRight, startAhead); - float dEnd = direction * ThinIntersection(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForThin, xStart + dStart, y, xEnd + dEnd, y); - } - else - { - float dStart = -direction * ThickIntersection(startToLeft, startToRight, startAhead); - float dEnd = direction * ThickIntersection(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForThick, xStart + dStart, y, xEnd + dEnd, y); - } - cb.Stroke(); - } - } - private void DrawLineVertical(PdfContentByte cb, string side, float x, float yStart, float yEnd, GridLinePattern LinePattern, - GridLinePattern startToLeft, GridLinePattern startToRight, GridLinePattern startAhead, - GridLinePattern endToLeft, GridLinePattern endToRight, GridLinePattern endAhead) - { - if (LinePattern != GridLinePattern.None) - { - float direction = (yStart < yEnd) ? 1 : -1; - InitializeLineStyle(cb); - SetLineColor(cb, r1, c1, side); - if (LinePattern == GridLinePattern.Double) - { - //Left Line - float dStart = -direction * DoubleIntersectionRight(startToLeft, startToRight, startAhead); - float dEnd = direction * DoubleIntersectionLeft(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForDouble, x - DoubleLineOffset, yStart + dStart, x - DoubleLineOffset, yEnd + dEnd); - //Right Line - dStart = -direction * DoubleIntersectionLeft(startToLeft, startToRight, startAhead); - dEnd = direction * DoubleIntersectionRight(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForDouble, x + DoubleLineOffset, yStart + dStart, x + DoubleLineOffset, yEnd + dEnd); - } - else if (LinePattern != GridLinePattern.Thick) - { - SetLinePattern(cb, LinePattern); - float dStart = -direction * ThinIntersection(startToLeft, startToRight, startAhead); - float dEnd = direction * ThinIntersection(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForThin, x, yStart + dStart, x, yEnd + dEnd); - } - else - { - float dStart = -direction * ThickIntersection(startToLeft, startToRight, startAhead); - float dEnd = direction * ThickIntersection(endToLeft, endToRight, endAhead); - DrawLine(cb, LineThicknessForThick, x, yStart + dStart, x, yEnd + dEnd); - } - cb.Stroke(); - } - } - #endregion - #region Intersection Diagram - /* driving into an intersection on line being drawn, facing the intersection. Each intersection requires - * drawing of each of the four cases: - - Case 1: Line being drawn right: - - lineToLeft - ^ - | - Line Being Drawn ----->|---> LineAhead - | - v - lineToRight - - - Case 2: Line being drawn left: - - lineToRight - ^ - | - LineAhead <-----|<--- Line Being Drawn - | - v - lineToLeft - - Case 3: Line being drawn up: - - lineAhead - ^ - | - lineToLeft <-----|----> lineToRight - ^ - | - | - Line Being Drawn - - Case 4: Line being drawn down: - - Line Begin Drawn - | - | - v - lineToRight <-----|----> lineToLeft - | - | - v - lineAhead - * - */ - #endregion - #region Border Intersection Methods - private static float DoubleIntersectionLeft(GridLinePattern lineToLeft, GridLinePattern lineToRight, GridLinePattern lineAhead) - { - if (lineToLeft == GridLinePattern.Double) - return -DoubleLineOffset; - if (lineToRight == GridLinePattern.Double || lineAhead == GridLinePattern.Double) - return DoubleLineOffset; - if (lineToLeft == GridLinePattern.Thick || lineToRight == GridLinePattern.Thick) - return DoubleUnderThick; - if (VlnBorders.LineWidth(lineToLeft) == 1 || VlnBorders.LineWidth(lineToRight) == 1) - return DoubleUnderThin; - return 0; - } - private static float DoubleIntersectionRight(GridLinePattern lineToLeft, GridLinePattern lineToRight, GridLinePattern lineAhead) - { - if (lineToRight == GridLinePattern.Double) - return -DoubleLineOffset; - if (lineToLeft == GridLinePattern.Double || lineAhead == GridLinePattern.Double) - return DoubleLineOffset; - if (lineToLeft == GridLinePattern.Thick || lineToRight == GridLinePattern.Thick) - return DoubleUnderThick; - if (VlnBorders.LineWidth(lineToLeft) == 1 || VlnBorders.LineWidth(lineToRight) == 1) - return DoubleUnderThin; - return 0; - } - private static float ThinIntersection(GridLinePattern lineToLeft, GridLinePattern lineToRight, GridLinePattern lineAhead) - { - if (lineToLeft == GridLinePattern.Double && lineToRight == GridLinePattern.Double) - return -ThinUnderDouble; - if (lineToLeft == GridLinePattern.Double || lineToRight == GridLinePattern.Double) - { - if (lineAhead == GridLinePattern.Double) return -ThinUnderDouble; - return ThinOverDouble; - } - if (lineToLeft == GridLinePattern.Thick || lineToRight == GridLinePattern.Thick) - return ThinOverThick; - return 0; - } - private static float ThickIntersection(GridLinePattern lineToLeft, GridLinePattern lineToRight, GridLinePattern lineAhead) - { - if (lineToLeft == GridLinePattern.Double && lineToRight == GridLinePattern.Double) - { - if (lineAhead == GridLinePattern.Thick) return ThickOverDouble; - return -ThickUnderDouble; - } - if ( lineToLeft == GridLinePattern.Double || lineToRight == GridLinePattern.Double) - { - if (lineAhead == GridLinePattern.Double) - { - if (lineToLeft == GridLinePattern.Thick || lineToRight == GridLinePattern.Thick) - return ThickOverDouble; - return -ThickUnderDouble; - } - return ThickOverDouble; - } - if (VlnBorders.LineWidth(lineToLeft) == 1 && VlnBorders.LineWidth(lineToRight) == 1) - return ThickOverThin; - return 0; - } - #endregion - #region Basic Border Methods - private static void DrawLine(PdfContentByte cb, float lineThickness, float xStart, float yStart, float xEnd, float yEnd) - { - cb.SetLineWidth(lineThickness); - cb.MoveTo(xStart, yStart); - cb.LineTo(xEnd, yEnd); - } - private static void SetLinePattern(PdfContentByte cb, GridLinePattern linePattern) - { - if (linePattern == GridLinePattern.Dotted) - { - cb.SetLineDash(0, 2, 0); - cb.SetLineCap(PdfContentByte.LINE_CAP_ROUND); - } - else if (linePattern == GridLinePattern.Dashed) - cb.SetLineDash(4, 4, 0); - } - private static void SetLineColor(PdfContentByte cb, int row, int col, string side) - { - iTextSharp.text.Color lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Black)); - //switch (side) - //{ - // case "Top": - // if (col == 0) lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Blue)); - // else lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Cyan)); - // break; - // case "Left": - // if (row == 0) lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Red)); - // else lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Magenta)); - // break; - // case "Bottom": - // if (col == 0) lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Green)); - // else lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Cyan)); - // break; - // case "Right": - // if (row == 0) lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Orange)); - // else lineColor = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Magenta)); - // break; - //} - cb.SetColorStroke(lineColor); - } - private static void InitializeLineStyle(PdfContentByte cb) - { - cb.SetLineCap(PdfContentByte.LINE_CAP_PROJECTING_SQUARE); // Extend the line by half of it's thickness - cb.SetLineDash(0);// Solid Line - } - #endregion - #region Debug Methods - private static void SetOpacity(PdfContentByte cb, float opacity) - { - PdfGState gs = new PdfGState(); - gs.StrokeOpacity = opacity; - cb.SetGState(gs); - } - private static void ZoomToCell(iTextSharp.text.pdf.ColumnText myColumnText, float xLeft, float yTop, float xRight, float yBottom) - { - PdfDestination dest = new PdfDestination(PdfDestination.FITR, xLeft - 4, yBottom , xRight, yTop + 4); - myColumnText.Canvas.SetAction(PdfAction.GotoLocalPage(myColumnText.Canvas.PdfWriter.CurrentPageNumber, dest, myColumnText.Canvas.PdfWriter), xLeft, yBottom, xRight, yTop); - } - #endregion - #region Old Border Methods - //private void DrawLeftLine(PdfContentByte cb, float xLeft, float yTop, float yBottom) - //{ - // if (c1 == 0 && LineLeft != GridLinePattern.None) - // { - // InitializeLineStyle(cb); - // SetLineColor(cb, r1, c1, "Left"); - // if (LineLeft == GridLinePattern.Double) - // { - // //Left Line - // float dyTop = DoubleIntersectionLeft(LineTopLeft, LineTop, LineLeftAbove); - // float dyBottom = -DoubleIntersectionRight(LineBottom, LineBottomLeft, LineLeftBelow); - // DrawLine(cb, LineThicknessForDouble, xLeft - DoubleLineOffset, yTop + dyTop, xLeft - DoubleLineOffset, yBottom + dyBottom); - // //Right Line - // dyTop = DoubleIntersectionRight(LineTopLeft, LineTop, LineLeftAbove); - // dyBottom = -DoubleIntersectionLeft(LineBottom, LineBottomLeft, LineLeftBelow); - // DrawLine(cb, LineThicknessForDouble, xLeft + DoubleLineOffset, yTop + dyTop, xLeft + DoubleLineOffset, yBottom + dyBottom); - // } - // else if (LineLeft != GridLinePattern.Thick) - // { - // SetLinePattern(cb, LineLeft); - // float dyTop = ThinIntersection(LineTopLeft, LineTop, LineLeftAbove); - // float dyBottom = -ThinIntersection(LineBottom, LineBottomLeft, LineLeftBelow); - // DrawLine(cb, LineThicknessForThin, xLeft, yTop + dyTop, xLeft, yBottom + dyBottom); - // } - // else - // { - // float dyTop = ThickIntersection(LineTopLeft, LineTop, LineLeftAbove); - // float dyBottom = -ThickIntersection(LineBottom, LineBottomLeft, LineLeftBelow); - // DrawLine(cb, LineThicknessForThick, xLeft, yTop + dyTop, xLeft, yBottom + dyBottom); - // } - // cb.Stroke(); - // } - //} - //private void DrawRightLine(PdfContentByte cb, float xRight, float yTop, float yBottom) - //{ - // if (LineRight != GridLinePattern.None) - // { - // InitializeLineStyle(cb); - // SetLineColor(cb, r1, c1, "Right"); - // if (LineRight == GridLinePattern.Double) - // { - // //Left Line - // float dyTop = DoubleIntersectionLeft(LineTop, LineTopRight, LineRightAbove); - // float dyBottom = -DoubleIntersectionRight(LineBottomRight, LineBottom, LineRightBelow); - // DrawLine(cb, LineThicknessForDouble, xRight - DoubleLineOffset, yTop + dyTop, xRight - DoubleLineOffset, yBottom + dyBottom); - // //Right Line - // dyTop = DoubleIntersectionRight(LineTop, LineTopRight, LineRightAbove); - // dyBottom = -DoubleIntersectionLeft(LineBottomRight, LineBottom, LineRightBelow); - // DrawLine(cb, LineThicknessForDouble, xRight + DoubleLineOffset, yTop + dyTop, xRight + DoubleLineOffset, yBottom + dyBottom); - // } - // else if (LineRight != GridLinePattern.Thick) - // { - // float dyTop = ThinIntersection(LineTop, LineTopRight, LineRightAbove); - // float dyBottom = -ThinIntersection(LineBottomRight, LineBottom, LineRightBelow); - // SetLinePattern(cb, LineRight); - // DrawLine(cb, LineThicknessForThin, xRight, yTop + dyTop, xRight, yBottom + dyBottom); - // } - // else - // { - // float dyTop = ThickIntersection(LineTop, LineTopRight, LineRightAbove); - // float dyBottom = -ThickIntersection(LineBottomRight, LineBottom, LineRightBelow); - // DrawLine(cb, LineThicknessForThick, xRight, yTop + dyTop, xRight, yBottom + dyBottom); - // } - // cb.Stroke(); - // } - //} - //private void DrawTopLine(PdfContentByte cb, float xLeft, float xRight, float yTop) - //{ - // if (r1 == 0 && TopSide != GridLinePattern.None) - // { - // InitializeLineStyle(cb); - // SetLineColor(cb, r1, c1, "Top"); - // if (TopSide == GridLinePattern.Double) - // { - // // Top Line - // float dxLeft = -DoubleIntersectionRight(LeftSide, AboveLeftSide, LeftOfTopSide); - // float dxRight = DoubleIntersectionLeft(AboveRightSide, RightSide, RightOfTopSide); - // DrawLine(cb, LineThicknessForDouble, xLeft + dxLeft, yTop + DoubleLineOffset, xRight + dxRight, yTop + DoubleLineOffset); - // // Bottom Line - // dxLeft = -DoubleIntersectionLeft(LeftSide, AboveLeftSide, LeftOfTopSide); - // dxRight = DoubleIntersectionRight(AboveRightSide, RightSide, RightOfTopSide); - // DrawLine(cb, LineThicknessForDouble, xLeft + dxLeft, yTop - DoubleLineOffset, xRight + dxRight, yTop - DoubleLineOffset); - // } - // else if (TopSide != GridLinePattern.Thick) - // { - // SetLinePattern(cb, TopSide); - // float dxLeft = -ThinIntersection(LeftSide, AboveLeftSide, LeftOfTopSide); - // float dxRight = ThinIntersection(AboveRightSide, RightSide, RightOfTopSide); - // DrawLine(cb, LineThicknessForThin, xLeft + dxLeft, yTop, xRight + dxRight, yTop); - // } - // else - // { - // float dxLeft = -ThickIntersection(LeftSide, AboveLeftSide, LeftOfTopSide); - // float dxRight = ThickIntersection(AboveRightSide, RightSide, RightOfTopSide); - // if (c1 == 0) - // Console.WriteLine("'{0}','{1}','{2}',{3},{4}", LeftSide, AboveLeftSide, LeftOfTopSide, dxLeft, ThickOverThin); - // DrawLine(cb, LineThicknessForThick, xLeft + dxLeft, yTop, xRight + dxRight, yTop); - // } - // cb.Stroke(); - // } - //} - //private void DrawBottomLine(PdfContentByte cb, float xLeft, float xRight, float yBottom) - //{ - // if (BottomSide != GridLinePattern.None) - // { - // InitializeLineStyle(cb); - // SetLineColor(cb, r1, c1, "Bottom"); - // if (BottomSide == GridLinePattern.Double) - // { - // // Top Line - // float dxLeft = -DoubleIntersectionRight(BelowLeftSide, LeftSide, LeftOfBottomSide); - // float dxRight = DoubleIntersectionLeft(RightSide, BelowRightSide, RightOfBottomSide); - // DrawLine(cb, LineThicknessForDouble, xLeft + dxLeft, yBottom + DoubleLineOffset, xRight + dxRight, yBottom + DoubleLineOffset);// Top Line - // // Bottom Line - // dxLeft = -DoubleIntersectionLeft(BelowLeftSide, LeftSide, LeftOfBottomSide); - // dxRight = DoubleIntersectionRight(RightSide, BelowRightSide, RightOfBottomSide); - // DrawLine(cb, LineThicknessForDouble, xLeft + dxLeft, yBottom - DoubleLineOffset, xRight + dxRight, yBottom - DoubleLineOffset);//Bottom Line - // } - // else if (BottomSide != GridLinePattern.Thick) // Bottom line is thin. Determine if intersecting with double: - // { - // SetLinePattern(cb, BottomSide); - // float dxLeft = -ThinIntersection(BelowLeftSide, LeftSide, LeftOfBottomSide); - // float dxRight = ThinIntersection(RightSide, BelowRightSide, RightOfBottomSide); - // DrawLine(cb, LineThicknessForThin, xLeft + dxLeft, yBottom, xRight + dxRight, yBottom); - // } - // else - // { - // float dxLeft = -ThickIntersection(BelowLeftSide, LeftSide, LeftOfBottomSide); - // float dxRight = ThickIntersection(RightSide, BelowRightSide, RightOfBottomSide); - // DrawLine(cb, LineThicknessForThick, xLeft + dxLeft, yBottom, xRight + dxRight, yBottom); - // } - // cb.Stroke(); - // } - //} - #endregion - } -} diff --git a/PROMS/Volian.Print.Library/Pagination.cs.bak b/PROMS/Volian.Print.Library/Pagination.cs.bak deleted file mode 100644 index e8b16a3b..00000000 --- a/PROMS/Volian.Print.Library/Pagination.cs.bak +++ /dev/null @@ -1,443 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; -using iTextSharp.text.pdf; -using Volian.Svg.Library; - -namespace Volian.Print.Library -{ - public partial class vlnParagraph - { - /// - /// This variable is used to match 16 bit pagination - /// - private bool _Match16BitPagination = false; - /// - /// Dtermines if the current step is preceded by a Page Break - /// - /// - /// - /// - /// - /// 0 - No page break - /// 1 - Break on High Level Step - /// 2 - Break within a Step - /// 3 - Break on High Level Step (SevenLinesPerInch) - /// - private int Paginate(float yLocation, float yTopMargin, float yBottomMargin) - { - float yPageSize = yTopMargin - yBottomMargin; - - // TODO: This does not account for a long step as the last step that would exceed more than one page and - // that has an end message that needs to be accounted for in determining pagination. To do that the last - // child should be the only paragraph that accounts for the End message. - // - // If last step & there should be an end message, pagination tests need to account for the 3 lines the end - // message uses. The 3 is for a line above, the end message line & the line below (in case there is a border/box line). - - // The 3 was changed to 2 for the end line & the line below. The blank line below the step gives the blank - // line above the end message, thus 2 not 3. This change was made on July 20, 2011 by RHM & KBR. The - // procedure in questions was VEWCNEMG\EMGAPP.PRC, ES-01, Step 8. - bool ManualPageBreak = false; - float yEndMsg = !MyItemInfo.IsSection && MyItemInfo.MyHLS.NextItem == null && (MyItemInfo.MyDocStyle.End.Message ?? "") != "" ? 2 * SixLinesPerInch : 0; - float yWithinMargins = CalculateYLocation(yLocation, yTopMargin) - yBottomMargin; // -SixLinesPerInch; - bool isFirstChild = MyItemInfo.MyPrevious == null; - bool nearTheTop = (yWithinMargins < yPageSize) && (yWithinMargins > (yPageSize - 5 * SixLinesPerInch)); - // if step is breaking over a number of pages, determine if the current step is the - // location of a pagebreak. - if (MyPageHelper.ParaBreaks.Count > 0) - { - if (this == MyPageHelper.ParaBreaks[0] || this.YTopMost > MyPageHelper.ParaBreaks[0].YTopMost) - { - MyPageHelper.ParaBreaks.RemoveAt(0); - //Console.WriteLine("'PageBreak',6,'Yes','Page Break within Step',{0},{1},{2},{3}, {4},'{5}'", MyItemInfo.ItemID, YSize, 0, 0, 0, MyItemInfo.ShortPath); - //Console.WriteLine("Prev = {0}", MyItemInfo.MyPrevious==null ? "''" : MyItemInfo.DBSequence); - ShowPageBreak(1, "Page Break within Step", "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak); - return 2; // break on this item within a step - } - return 0; // this is not an item with a break - } - float mySize = YSize * MyPageHelper.YMultiplier; - vlnParagraph firstChild = ChildrenBelow.Count > 0 ? ChildrenBelow[0] : null; - // Steps that have the smart template (the WCNCKL format for example), always include two children. - if (MyItemInfo.IsHigh && MyItemInfo.FormatStepData.UseSmartTemplate && ChildrenBelow.Count > 1) - firstChild = ChildrenBelow[1]; - if (firstChild != null && !firstChild.MyItemInfo.IsNumbered) // If not numbered get the last child - firstChild = firstChild.MyParent.ChildrenBelow[firstChild.MyParent.ChildrenBelow.Count - 1]; - float ySizeIncludingFirst = firstChild == null ? YSize : firstChild.YSize + (firstChild.YTopMost - YTopMost); - bool KeepStepsOnPage = MyItemInfo.ActiveFormat.MyStepSectionLayoutData.KeepStepsOnPage; - if (MyItemInfo.IsStepSection) - { - if (yLocation < yTopMargin) // continuous section - { - if (ChildrenBelow == null || ChildrenBelow.Count == 0) - { - // see if there is an end message. This is stored in the helper - if there is, - // we need to be sure that there is room for it. - if (MyPageHelper.BottomMessage != null) - { - if (mySize + yEndMsg <= yWithinMargins) return 1; - } - return 0; - } - - // This is a continuous section. There may be cases where the user put a manual page - // break on the first step (child) in the section. if so, break on the section. The - // flag SectionPageBreak is set to true to flag that a pagebreak should not be done - // on that first step. - StepConfig sc = firstChild.MyItemInfo.MyConfig as StepConfig; - ManualPageBreak = MyPageHelper.OriginalPageBreak ? (sc == null ? false : sc.Step_ManualPagebreak) : - sc == null ? false : sc.Step_NewManualPagebreak; - if (ManualPageBreak) - { - SectionPageBreak = true; - ShowPageBreak(2, "Section Page Break", "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak); - return 1; - } - // can the title and the first step fit? - // add the first child's size + (the section title's size) - //if (ySizeIncludingFirst > (yLocation - yBottomMargin - SixLinesPerInch)) return 1; - //if (ySizeIncludingFirst > (yLocation - yBottomMargin) && ySizeIncludingFirst < yPageSize) - vlnParagraph firstStepChild = firstChild; - //while (firstStepChild.MyItemInfo.IsSection && firstStepChild.ChildrenBelow.Count > 0) firstStepChild = firstStepChild.ChildrenBelow[0]; - if(firstStepChild.MyItemInfo.IsNumbered) - while (firstStepChild.ChildrenBelow.Count > 0 && (firstStepChild.MyItemInfo.IsSection || firstStepChild.MyItemInfo.IsHigh)) - { - firstStepChild = firstStepChild.ChildrenBelow[0]; - if (!firstStepChild.MyItemInfo.IsNumbered) - { - firstStepChild = firstStepChild.MyParent.ChildrenBelow[firstStepChild.MyParent.ChildrenBelow.Count-1]; - break; - } - } - else - firstStepChild = firstStepChild.MyParent.ChildrenBelow[firstStepChild.MyParent.ChildrenBelow.Count-1]; - float ySizeIncludingFirstStep = firstStepChild.YSize + (firstStepChild.YTopMost - YTopMost); - bool firstSubstepExceedsSpaceAvailable = ySizeIncludingFirstStep > yWithinMargins; - if (KeepStepsOnPage && firstSubstepExceedsSpaceAvailable && !isFirstChild) - KeepStepsOnPage = false; - if (!KeepStepsOnPage && ySizeIncludingFirst > (yLocation - yBottomMargin)) - { - ShowPageBreak(4, "Page Break Before Continuous Step Section", "Yes", YSize, yPageSize, yWithinMargins, ManualPageBreak); - return 1; - } - } - return 0; // Don't Paginate (page break) on a Step Section if it's first thing on page - } - if (!MyItemInfo.IsHigh) return 0; // Don't Paginate on a Substep level - StepConfig sc1 = MyItemInfo.MyConfig as StepConfig; - ManualPageBreak = MyPageHelper.OriginalPageBreak ? (sc1 == null ? false : sc1.Step_ManualPagebreak) : - sc1 == null ? false : sc1.Step_NewManualPagebreak; - if (MyItemInfo.FirstSibling == MyItemInfo && ManualPageBreak) - { - // if parent/section used this pagebreak, skip it. - if (MyParent.SectionPageBreak) - { - ManualPageBreak = false; - MyParent.SectionPageBreak = false; - } - } - if (_Match16BitPagination) mySize = YSize; - float ySize7LPI = YSize; // +SixLinesPerInch; - if (_Match16BitPagination) ySize7LPI += SixLinesPerInch; - string firstStep = "No"; - if (MyItemInfo.IsHigh && MyItemInfo.MyPrevious == null) - firstStep = "Yes"; - //if (!ManualPageBreak && mySize + yEndMsg <= yWithinMargins) // Don't Paginate if there is enough room, will fit on page - // Pagination Fix - Break1LineShort1 - float yExtra = (yWithinMargins == yPageSize ? 0 : SixLinesPerInch - MyItemInfo.MyDocStyle.Layout.FooterLength) ?? 0; - float yExtra2 = (SixLinesPerInch - MyItemInfo.MyDocStyle.Layout.FooterLength) ?? 0; - if (KeepStepsOnPage && ySizeIncludingFirst > yWithinMargins) - KeepStepsOnPage = false; - bool KeepWithHeader = isFirstChild && nearTheTop; - if (!ManualPageBreak && mySize + yEndMsg <= yWithinMargins + yExtra) // Don't Paginate if there is enough room, will fit on page - //if (!ManualPageBreak && mySize + yEndMsg <= yWithinMargins + SixLinesPerInch) // Don't Paginate if there is enough room, will fit on page - { - //Console.WriteLine("'PageBreak',1,'No','HLS will fit on page',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath); - ShowPageBreak(-1, "HLS will fit on page", firstStep, YSize, yPageSize, yWithinMargins,ManualPageBreak); - return 0; - } - // !MyItemInfo.IsHigh - if (MyItemInfo.IsRNOPart && MyParent.XOffset < XOffset) return 0; // Don't paginate on an RNO to the right - - // YSize includes a blank line after the step which we don't want to include in the page break test, thus the - // YSize - SixLinesPerInch: - // yPageSizeNextPage is the page size of the 'next' page. A format variable exists off of the docstyle - // For UseOnFirstPage vs UseOnAllButFirstPage. If this is set for this format, and processing the FIRST - // page, the size of next page, which may be different, is used in pagination calculationstop. - // If this format flag is not set, or not printing the first page of the section with this flag, - // this next page size is the same as current page size. - float yPageSizeNextPage = yPageSize; - //if (firstStep == "No") - // ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); - if (MyPageHelper.DidFirstPageDocStyle && (MyItemInfo.MyActiveSection.MyDocStyle.StructureStyle.Where & E_DocStyleUse.UseOnAllButFirstPage) > 0) - yPageSizeNextPage = GetYPageSizeUseOnAllButFirstPage(); - if (!KeepWithHeader && !KeepStepsOnPage && YSize - SixLinesPerInch + yEndMsg <= yPageSizeNextPage) // if the entire step can fit on one page, do a page break - { - // Don't want extra line before step - //Console.WriteLine("'PageBreak',2,'Yes','HLS will fit on 1 Page',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath); - // A page break will occur before the step is put out. ShowPageBreak with first argument of -1 is NOT a page break. - ShowPageBreak(5, "HLS will fit on 1 Page at 6 LPI", "Yes", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak); - return 1; - } - // TODO - yEndMsg - compressed size? - - // ySize7LPI includes a blank line after the step which we don't want to include in the page break test. - else if (!KeepStepsOnPage && MyItemInfo.ActiveFormat.MyStepSectionLayoutData.CompressSteps && (ySize7LPI - SixLinesPerInch) < (yPageSizeNextPage * SixLinesPerInch / _SevenLinesPerInch)) - { - //Console.WriteLine("'PageBreak',3,'Yes','HLS will fit on 1 Page at 7 LPI',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath); - ShowPageBreak(7, "HLS will fit on 1 Page at 7 LPI", "Yes", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak); - //Console.WriteLine("'7LPI',{0},{1}", MyItemInfo.DBSequence, YSize); - return 3; // High Level Step can fit at SevenLinesPerInch - } - else // The entire step cannot fit on a blank page or KeepStepsOnPage is true. - { - // if there is more than half a page left, then start to print on the current page - float myFirstPieceSize = GetFirstPieceSize(); //Case 0 - if (_Match16BitPagination) myFirstPieceSize += 2 * SixLinesPerInch; - // TODO: Put this line back to case 0, i.e. previous line. This fixes a 16-bit vs 32-bit pagination diff in EO30 Step 20. - //float myFirstPieceSize = GetFirstPieceSize() + 2 * SixLinesPerInch; //Case 10 - this is to match 16bit - //is the amount of space left (yWithinMargins) is greater than 1/2 of the current page (yPageSize / 2): - if (KeepWithHeader ||( !ManualPageBreak && ((MyItemInfo.ActiveFormat.MyStepSectionLayoutData.SpecialPageBreakFlag && yWithinMargins > yPageSize / 2 && - myFirstPieceSize < yWithinMargins) || KeepStepsOnPage))) - { - //Console.WriteLine("'PageBreak',4,'No','HLS will have to split anyway',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath); - // yPageSize is space on next page. This may be different if the format flag 'UseOnAllButFirst' is - // set. - // yWithinMargins is space available on current page. - // if the HLS is part of a Smart Template (i.e. WCNCKL table), don't add in an extra line because - // that makes pagination work incorrectly because the Smart Template has a 'table' line after the - // text. - float ySpaceOnFirstPage = yWithinMargins + (MyItemInfo.FormatStepData.UseSmartTemplate ? 0 : SixLinesPerInch); - if (firstStep == "Yes") - { - ySpaceOnFirstPage = yWithinMargins; // Accounts for Section Title Line - ShowPageBreak(8, "First HLS has to split on current page", firstStep, YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak); - } - else - ShowPageBreak(6, "HLS will have to split on current page", "Special", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak); - //BuildPageBreakList(yWithinMargins + SixLinesPerInch, yPageSizeNextPage + yExtra2, KeepStepsOnPage); // Case 5 - Determine items where page break(s) occur - BuildPageBreakList(ySpaceOnFirstPage, yPageSize + yExtra2, KeepStepsOnPage); // Case 5 - Determine items where page break(s) occur - return 0; // Stay on this page - } - - // Less than half a page left, start printing on a new page. - //Console.WriteLine("'PageBreak',5,'Yes','HLS will have to split',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath); - if (firstStep == "Yes") - ShowPageBreak(9, "First HLS will have to split on new page", "Yes", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak); - else - ShowPageBreak(3, "HLS will have to split on new page", "Yes", YSize, yPageSizeNextPage, yWithinMargins, ManualPageBreak); - // Determine items where page break(s) occur - //BuildPageBreakList(yPageSize, yPageSize - 2 * SixLinesPerInch); // Case Base - //BuildPageBreakList(yPageSize, yPageSize); // Case 1 :Works for ES05 Step 15 SubStep 7 - // Pagination Fix Break1LineShort2 - //BuildPageBreakList(yPageSize + yExtra, yPageSize); // Case 1 :Works for ES05 Step 15 SubStep 7 - // Pagination Fix Break1LineShort4 - BuildPageBreakList(yPageSize + yExtra, yPageSizeNextPage + yExtra2, KeepStepsOnPage); // Case 1 :Works for ES05 Step 15 SubStep 7 - return 1; // Paginate on High Level Steps - } - //if (yWithinMargins > yPageSize / 2) - //{ - // Console.WriteLine("'PageBreak',4,'No','Not Half way down the page',{0},{1},{2}, {3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath); - // return 0; // More than half way down the page - //} - //if (ChildrenBelow.Count > 0 && ChildrenBelow[0].YSize < yWithinMargins) - // return 0; - //Console.WriteLine("'PageBreak',5,'Yes','At least half the page is filled',{0},{1},{2},{3}, {4},'{5}'", MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize), MyItemInfo.ShortPath); - //return 2; - throw new Exception("PageBreak Logic Missing, vlnParagraph.cs"); - } - - private float GetYPageSizeUseOnAllButFirstPage() - { - float _PointsPerPage = 792; - int indx = (int)MyItemInfo.MyDocStyle.IndexOtherThanFirstPage; - foreach (DocStyle ds in MyItemInfo.ActiveFormat.PlantFormat.DocStyles.DocStyleList) - { - if (ds.Index == indx) - { - float yTopMargin = _PointsPerPage - (float)ds.Layout.TopMargin; - float yBottomMargin = Math.Max(0, yTopMargin - (float)ds.Layout.PageLength); - return yTopMargin - yBottomMargin; - } - } - return 0; - } - private void ForcePagination(PdfContentByte cb, ref float yPageStart, float yTopMargin, float yBottomMargin, ref float yLocation, ref float retval) - { - cb.PdfDocument.NewPage(); // pagination issue - DebugText.WriteLine("*****PaginateError"); - yPageStart = yTopMargin + YVeryTop; - yLocation = yPageStart - YOffset; - //MyItemInfo.ItemID, YSize, yPageSize, yLocation - //_MyLog.ErrorFormat("<<< ERROR >>> Forced Pagination - ItemID = {0}\r\nLocation = '{1}'", MyItemInfo.ItemID, MyItemInfo.ShortPath); - _MyLog.ErrorFormat("<<< ERROR >>> Forced Pagination\r\n==>'Forced Pagination',{0},'{1}','{2}'" - , MyItemInfo.ItemID, MyItemInfo.MyDocVersion.MyFolder.Name, MyItemInfo.ShortPath); - DebugPagination.WriteLine("------,'Yes','Forced Pagination',{0},{1},,{3},{4}", MyItemInfo.ItemID, YSize, 0, yLocation, MyItemInfo.DBSequence); - retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo, yBottomMargin); - } - private void ShowPageBreak(int instance, string message, string breakOrNot, float YSize, float yPageSize, float yWithinMargins, bool manualPageBreak) - { - if (breakOrNot != "No") - { - // DebugPagination.WriteLine("{0}", MyItemInfo.DBSequence); //,instance); - DebugPagination.WriteLine("{0:D6},'{1}',{2},'{3}','{4}',{5},{6},{7},{8},{9}", - MyPageHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber - (breakOrNot == "Yes" ? 0 : 1), - MyItemInfo.ShortPath, instance, - (manualPageBreak ? "Manual " : "") + message, breakOrNot, - MyItemInfo.ItemID, YSize, yPageSize, yWithinMargins, (int)(100 * yWithinMargins / yPageSize)); - } - // Console.WriteLine("{0},{1}", MyItemInfo.DBSequence, IsFirstSubStep(MyItemInfo)); //,instance); - } - private void BuildPageBreakList(float ySpaceOnCurPage, float yPageSize, bool KeepStepsOnPage) - { - ParagraphLocations myLocations = new ParagraphLocations(); - BuildLocationList(YTopMost, myLocations); - StepLevelList myList = myLocations.BuildStepLevelList(KeepStepsOnPage); - // Find Break Locations in the list based upon StepLevel and yLocation - float yTop = 0; - float yLowerLimit = (yPageSize - 2 * SixLinesPerInch) / 2; - float yStart = Math.Max(0, (yPageSize - 2 * SixLinesPerInch) - ySpaceOnCurPage); - //Console.WriteLine("'yStart',{0},{1}", MyItemInfo.DBSequence, yStart); - - // The following three lines make page breaking match 16-bit: - if (_Match16BitPagination) - { - yLowerLimit = yStart - SixLinesPerInch + ySpaceOnCurPage / 2; - if ((yStart + MyItemInfo.MyDocStyle.Layout.TopMargin + 2 * SixLinesPerInch) > ((MyItemInfo.MyDocStyle.Layout.TopMargin + yPageSize - 2 * SixLinesPerInch) / 2)) - yLowerLimit = yStart + 2 * SixLinesPerInch; - } - // Make sure that the FirstPiece (Caution Note HLS and First Substeps) fit - float myFirstPieceSize = GetFirstPieceSize(); //Case 0 - if (myFirstPieceSize < ySpaceOnCurPage) yLowerLimit = Math.Max(myFirstPieceSize + yStart, yLowerLimit); - //while ((YSize - yTop) >= ySpaceOnCurPage) - // Pagination Fix Break1LineShort3b - DocStyle docstyle = MyItemInfo.MyDocStyle; - string myBottomMsg = docstyle.Continue.Bottom.Message; - float myBottomMsgSpace = ((myBottomMsg ?? "") != "") ? 2 * SixLinesPerInch : 0; - switch (docstyle.Continue.Bottom.Location) - { - case E_ContBottomLoc.BottomOfPage: // place continue message at bottom of page - myBottomMsgSpace = 0; - break; - } - string myTopMsg = docstyle.Continue.Top.Message; - float myTopMsgSpace = ((myTopMsg ?? "") != "") ? 2 * SixLinesPerInch : 0; - while ((YSize - yTop) > ySpaceOnCurPage) - { - ySpaceOnCurPage -= myBottomMsgSpace; - vlnParagraph paraBreak = FindPageBreak(yStart, ySpaceOnCurPage, yLowerLimit, myList); - if (paraBreak == null) - { - _MyLog.ErrorFormat("<<< ERROR >>> Cannot find a place to break\r\n==>'Cannot Find Place to Break',{0},'{1}','{2}'" - , MyItemInfo.ItemID, MyItemInfo.MyDocVersion.MyFolder.Name, MyItemInfo.ShortPath); - break; - } - // yTopNew is y Location of this page break. YTopMost is top of HLS, including any Cautions/Notes/Boxes/etc - //float yTopNew = paraBreak.YVeryTop - YTopMost; - //float yTopNew = paraBreak.YTopMost - YTopMost; - float yTopNew = Math.Min(paraBreak.YTopMost, paraBreak.YVeryTop) - YTopMost; - RemoveProcessedParagraphs(myList, yTopNew - yTop); - yTop = yTopNew; - MyPageHelper.ParaBreaks.Add(paraBreak); - ySpaceOnCurPage = yPageSize - (myTopMsgSpace + SixLinesPerInch); // Allow for continue message and blank line. - //ySpaceOnCurPage = yPageSize - (myTopMsgSpace + SixLinesPerInch); // Allow for continue message and blank line. - //if (paraBreak.YTopMost != paraBreak.YVeryTop && MyPageHelper.TopMessage == null && MyPageHelper.BottomMessage == null) - // ySpaceOnCurPage = yPageSize; - //ySpaceOnCurPage = yPageSize; // Allow for continue message and blank line. - //DocStyle docstyle = MyItemInfo.MyDocStyle; - //string myMsg = docstyle.Continue.Bottom.Message; - //if ((myMsg ?? "") != "") ySpaceOnCurPage -= 2 * SixLinesPerInch; // Allow for continue message and blank line. - yLowerLimit = ySpaceOnCurPage / 2; - if (_Match16BitPagination) yLowerLimit -= 1.5F * SixLinesPerInch; // 276 for HLP - yStart = 0; - } - } - /// - /// Finds the highest StepLevel (lowest StepLevel number, 0 = HLS, 1 = first substep) that - /// fills the page sufficiently (more than half-full) - /// - /// - /// - /// - /// - private static vlnParagraph FindPageBreak(float yStart, float yUpperLimit, float yLowerLimit, StepLevelList myList) - { - vlnParagraph minPara = null; - foreach (int stepLevel in myList.Keys) // loop thru StepLevels, starting with lowest. - { - foreach (float yLocation in myList[stepLevel].Keys) // loop thru yLocation - { - vlnParagraph myPara = myList[stepLevel][yLocation]; - // The top of this step will fit onto page (-yLocation < yWithinMargins) - float wcnChkLstBorder = myPara.MyItemInfo.MyHLS.FormatStepData.UseSmartTemplate && - (myPara.MyItemInfo.MyHLS.FormatStepData.Suffix ?? "") != "" ? 2*SixLinesPerInch : 0; - if (minPara == null || minPara.YTop > myPara.YTop) - minPara = myPara; - if (wcnChkLstBorder -yLocation <= yUpperLimit) // Fix for OFN-RJ-23 - //if (-yLocation < yUpperLimit) // Before - //if (-yLocation < yWithinMargins && myList[stepLevel][yLocation].MyItemInfo.MyPrevious != null) - { - //ItemInfo prev = myList[stepLevel][yLocation].MyItemInfo.MyPrevious; - //if (myList[stepLevel][yLocation].MyItemInfo.ItemID == 5609) Console.WriteLine("aer"); - //if (myList[stepLevel][yLocation].MyItemInfo.ItemID == 4312) Console.WriteLine("rno"); - // The top of this step is more than 1/2 way down the page - if ((-yLocation + yStart) >= yLowerLimit) - return myPara; - - // If this item will not fit on the current page, put a page break - if (myPara.YBottom - myPara.YTop > (yUpperLimit - (-yLocation + yStart))) - return myPara; - // if is a caution or note & parent is a substep and entire substep doesn't fit, break. - if ((myPara.MyItemInfo.IsNote || myPara.MyItemInfo.IsCaution) && - !myPara.MyParent.MyItemInfo.IsHigh && - myPara.MyParent.YSize > (yUpperLimit + yLocation)) - { - return myList[stepLevel][yLocation]; - } - } - } - } - return minPara; - } - - //private void WalkStepLevel(float yTopMost) - //{ - // foreach (vlnParagraph child in ChildrenAbove) - // child.WalkStepLevel(yTopMost); - // foreach (vlnParagraph child in ChildrenLeft) - // child.WalkStepLevel(yTopMost); - // ShowStepLevel(yTopMost); - // foreach (vlnParagraph child in ChildrenRight) - // child.WalkStepLevel(yTopMost); - // foreach (vlnParagraph child in ChildrenBelow) - // child.WalkStepLevel(yTopMost); - //} - //private void ShowStepLevel(float yTopMost) - //{ - // ItemInfo item = MyItemInfo; - // ItemInfo parent = item.ActiveParent as ItemInfo; - // //if (para.MyItemInfo.ItemID == 205) - // // Console.Write(""); - // DebugPagination.WriteLine("'StepLevel',{0},{1},{2},{3},{4},{5},{6},{7},{8},{9}", YVeryTop - yTopMost, YSize, YBottomMost - yTopMost, item.ItemID, item.DBSequence, item.StepLevel, item.MyContent.Type % 10000, - // parent.MyContent.Type % 10000, item.HasCautionOrNote ? 1 : 0, parent.Cautions == null ? 0 : 1); - //} - } - public partial class VlnSvgPageHelper : SvgPageHelper - { - private bool _OriginalPageBreak; // use 16bit page breaks. - public bool OriginalPageBreak - { - get { return _OriginalPageBreak; } - set { _OriginalPageBreak = value; } - } - // This handles Page Breaks within a Step - private List _ParaBreaks = new List(); - public List ParaBreaks - { - get { return _ParaBreaks; } - set { _ParaBreaks = value; } - } - } -} diff --git a/PROMS/Volian.Print.Library/PromsPrinter.cs.bak b/PROMS/Volian.Print.Library/PromsPrinter.cs.bak deleted file mode 100644 index 6505e8a5..00000000 --- a/PROMS/Volian.Print.Library/PromsPrinter.cs.bak +++ /dev/null @@ -1,2024 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using VEPROMS.CSLA.Library; -using Volian.Svg.Library; -using iTextSharp.text.factories; -using iTextSharp.text; -using iTextSharp.text.pdf; -using System.Text.RegularExpressions; -using System.IO; -using System.Xml; -using System.Windows.Forms; -using LBWordLibrary; -using System.Drawing; -using System.Drawing.Imaging; -using Volian.Controls.Library; -using Volian.Base.Library; -using JR.Utils.GUI.Forms; - -namespace Volian.Print.Library -{ - public delegate void PromsPrinterStatusEvent(object sender,PromsPrintStatusArgs args); - public class PromsPrintStatusArgs - { - private string _MyStatus; - public string MyStatus - { - get { return _MyStatus; } - } - private DateTime _When = DateTime.Now; - public DateTime When - { - get { return _When; } - } - private PromsPrinterStatusType _Type; - public PromsPrinterStatusType Type - { - get { return _Type; } - set { _Type = value; } - } - private int _Progress = 0; - - public int Progress - { - get { return _Progress; } - set { _Progress = value; } - } - public PromsPrintStatusArgs(string myStatus, PromsPrinterStatusType type) - { - _MyStatus = myStatus; - _Type = type; - } - public PromsPrintStatusArgs(string myStatus, PromsPrinterStatusType type, int progress) - { - _MyStatus = myStatus; - _Type = type; - _Progress = progress; - } - } - public enum PromsPrinterStatusType - { - Start, - General, - MSWordToPDF, - PageList, - Watermark, - Read16, - Merge16, - Open16, - ReadMSWord, - MergeMSWord, - OpenMSWord, - OpenPDF, - Merge, - Total, - CloseDocument, - NewPage, - BuildSVG, - SetSVG, - SetPageEvent, - GetSection, - Before, - BuildStep, - Progress, - ProgressSetup, - LoadVlnParagraph - } - public class PromsPrinter - { - public bool NeedSupInfoBreak = false; - public E_SupInfoPrintType SupInfoPrintType = E_SupInfoPrintType.None; - // used to link supinfo steps in pdf - public int SupInfoPdfPageCount = -1; - private Dictionary _SupInfoPdfPage; - public Dictionary SupInfoPdfPage - { - get { return _SupInfoPdfPage; } - set { _SupInfoPdfPage = value; } - } - private bool _DoingFacingPage = false; // used to flag actual pdf generation of facing page within final print (so no section titles get printed) - public bool DoingFacingPage - { - get { return _DoingFacingPage; } - set { _DoingFacingPage = value; } - } - // used to save word sections with resolved ROs (for export file generated from approve) - private Dictionary _DocReplace; - public Dictionary DocReplace - { - get { return _DocReplace; } - set { _DocReplace = value; } - } - private bool _SaveLinks = false; - public bool SaveLinks - { - get { return _SaveLinks; } - set { _SaveLinks = value; } - } - private bool _RemoveTrailingHardReturnsAndManualPageBreaks = false; - public bool RemoveTrailingHardReturnsAndManualPageBreaks - { - get { return _RemoveTrailingHardReturnsAndManualPageBreaks; } - set { _RemoveTrailingHardReturnsAndManualPageBreaks = value; } - } - - private string _Prefix = ""; // RHM20150506 Multiline ItemID TextBox - public string Prefix - { - get { return _Prefix; } - set { _Prefix = value; } - } - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - public event PromsPrinterStatusEvent StatusChanged; - internal void OnStatusChanged(object sender, PromsPrintStatusArgs args) - { - if (StatusChanged != null) - StatusChanged(sender, args); - } - internal void OnStatusChanged(string myStatus, PromsPrinterStatusType type) - { - OnStatusChanged(this, new PromsPrintStatusArgs(myStatus, type)); - } - public void OnStatusChanged(string msg) - { - OnStatusChanged(this, new PromsPrintStatusArgs(msg, PromsPrinterStatusType.General)); - } - internal void OnStatusChanged(string myStatus, PromsPrinterStatusType type, int progress) - { - OnStatusChanged(this, new PromsPrintStatusArgs(myStatus, type, progress)); - } - private string _Rev; - private ItemInfo _MyItem; - public ItemInfo MyItem - { - get { return _MyItem; } - set { _MyItem = value; } - } - private string _Watermark; - private string _PDFFile; - public string PDFFile - { - get { return _PDFFile; } - set { _PDFFile = value; } - } - private bool _DebugOutput; - public bool DebugOutput - { - get { return _DebugOutput; } - set { _DebugOutput = value; } - } - private string _BackgroundFolder; - public string BackgroundFolder - { - get { return _BackgroundFolder; } - set { _BackgroundFolder = value; } - } - private bool _OpenPDF; - - public bool OpenPDF - { - get { return _OpenPDF; } - set { _OpenPDF = value; } - } - private bool _OverWrite; - - public bool OverWrite - { - get { return _OverWrite; } - set { _OverWrite = value; } - } - private ChangeBarDefinition _MyChangeBarDefinition; - public ChangeBarDefinition MyChangeBarDefinition - { - get { return _MyChangeBarDefinition; } - set { _MyChangeBarDefinition = value; } - } - private bool _OriginalPageBreak; // use 16bit page breaks. - public bool OriginalPageBreak - { - get { return _OriginalPageBreak; } - set { _OriginalPageBreak = value; } - } - private bool _InsertBlankPages; - public bool InsertBlankPages - { - get { return _InsertBlankPages; } - set { _InsertBlankPages = value; } - } - private bool _BatchPrint = true; // flags that a batch-type print is occurring, i.e. AllProcedures or Automatic testing - public bool BatchPrint - { - get { return _BatchPrint; } - set { _BatchPrint = value; } - } - private static List _TransPageNumProblems = null; - public static List TransPageNumProblems - { - get { return PromsPrinter._TransPageNumProblems; } - set { PromsPrinter._TransPageNumProblems = value; } - } - public static void ClearTransPageNumProblems() - { - _TransPageNumProblems = null; - } - public static DialogResult ReportTransPageNumProblems() - { - if (TransPageNumProblems != null && TransPageNumProblems.Count > 0) - { - string pnProbl = null; - foreach (string pstr in TransPageNumProblems) - pnProbl = pnProbl + "\r\n" + pstr; - Clipboard.SetText(pnProbl); - return FlexibleMessageBox.Show("The following list was placed on the Windows Clipboard." - + "\r\nIt shows the page numbers of the locations that are referenced by transitions." - + "\r\nThis list, along with the PDF, can help you to determine the cause of the inconsistent page numbers." - + "\r\n\r\nDo you want to also review the PDF output prior to the second pass printing?" - + "\r\n\r\n------------------------------\r\n" + pnProbl, - "Inconsistent Transition Page Numbers", MessageBoxButtons.YesNo, MessageBoxIcon.Question); - } - return DialogResult.No; - } - private ReaderHelper _MyReaderHelper; - public ReaderHelper MyReaderHelper - { - get { return _MyReaderHelper; } - set { _MyReaderHelper = value; } - } - public PromsPrinter(ItemInfo myItem, string rev, string watermark, bool debugOutput, bool origPgBrk, string backgroundFolder, bool openPDF, bool overWrite, - ChangeBarDefinition cbd, String pdfFile, bool insertBlankPages, bool batchPrint, string prefix, bool saveLinks, bool removeTrailngHardReturnsAndManualPageBreaks) - { - Prefix = prefix; // RHM20150506 Multiline ItemID TextBox - _MyItem = myItem; - _Rev = rev; - _Watermark = watermark; - _DebugOutput = debugOutput; - _BackgroundFolder = backgroundFolder; - _OpenPDF = openPDF; - _OverWrite = overWrite; - _MyChangeBarDefinition = cbd; - _PDFFile = pdfFile; - _OriginalPageBreak = origPgBrk; - _InsertBlankPages = insertBlankPages; - _BatchPrint = batchPrint; - _MyReaderHelper = new ReaderHelper(this); - _SaveLinks = saveLinks; - _RemoveTrailingHardReturnsAndManualPageBreaks = removeTrailngHardReturnsAndManualPageBreaks; - //_MyReaderHelper.LoadTree(myItem); - } - private string _BeforePageNumberPdf = null; - public string BeforePageNumberPdf - { - get { return _BeforePageNumberPdf; } - set { _BeforePageNumberPdf = value; } - } - public string Print(string pdfFolder, bool makePlacekeeper, bool makeContinuousActionSummary) - { - if (_MyItem is ProcedureInfo) - { - if ((_MyItem as ProcedureInfo).ProcHasSupInfoData) - { - // Use two passes to print facing page supplemental information for SAMGs - // First pass gets pagination for the step sections and stores the associated supplemental information ids in - // the list StepSectPageBreaksForSupInfo off of the section object - // Second pass prints the supplemental information pdfs using the list generated in the first pass to know where to do the - // supplemental information page breaks & then merges in those pages when printing the step sections. - SupInfoPrintType = E_SupInfoPrintType.DoPageBreaks; - string retstr = Print(_MyItem as ProcedureInfo, pdfFolder, false, false); - if (retstr == null) return null; - SupInfoPrintType = E_SupInfoPrintType.Merge; - return Print(_MyItem as ProcedureInfo, pdfFolder, false, false); - } - else if (!(_MyItem.ActiveFormat.PlantFormat.FormatData.TransData.UseTransitionModifier || - _MyItem.ActiveFormat.PlantFormat.FormatData.TransData.UseSpecificTransitionModifier)) - return Print(_MyItem as ProcedureInfo, pdfFolder, makePlacekeeper, makeContinuousActionSummary); - else - { - // if the plant uses transition modifiers and/or page num in transition format, - // need to do two passes. First pass, sets the pagenumbers for each item, - // 2nd pass fills in the page numbers in transitions. - DirectoryInfo di = new DirectoryInfo(pdfFolder + @"\PageNumberPass1"); - if (!di.Exists) di.Create(); - string retstr = Print(_MyItem as ProcedureInfo, pdfFolder + @"\PageNumberPass1", false, false); - if (retstr == null) return null; - BeforePageNumberPdf = retstr; - ProcedureInfo.RefreshPageNumTransitions(_MyItem as ProcedureInfo); - _MyReaderHelper = new ReaderHelper(this); - retstr = Print(_MyItem as ProcedureInfo, pdfFolder, makePlacekeeper, makeContinuousActionSummary); - if (TransPageNumProblems.Count > 0) - { - if (BatchPrint || (MessageBox.Show("Page Number Transitions may be fixed if a second pass is performed. Do you want to perform a second pass?", "Page Number Transition Errors", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)) - { - DirectoryInfo di1 = new DirectoryInfo(pdfFolder + @"\PageNumberPass2"); - if (!di1.Exists) di1.Create(); - FileInfo fi = new FileInfo(retstr); - FileInfo fidest = new FileInfo(di1.FullName + @"\" + fi.Name); - if (fidest.Exists) fidest.Delete(); - try - { - fi.MoveTo(di1.FullName + @"\" + fi.Name); - } - catch (Exception ex) - { - _MyLog.ErrorFormat("{0} During Save {1}", ex.GetType().FullName, ex.Message); - } - ClearTransPageNumProblems(); - RefreshPageNumber(_MyItem); - ProcedureInfo.RefreshPageNumTransitions(_MyItem as ProcedureInfo); - _MyReaderHelper = new ReaderHelper(this); - retstr = Print(_MyItem as ProcedureInfo, pdfFolder, makePlacekeeper, makeContinuousActionSummary); - } - } - return retstr; - } - } - return ""; - } - - private void RefreshPageNumber(ItemInfo _MyItem) - { - // set all page numbers for all items under the passed in procedure item - _MyItem.PageNumber = _MyItem.PageNumberNextPass; - if (_MyItem.MyContent.ContentPartCount > 0) - { - foreach (PartInfo pi in _MyItem.MyContent.ContentParts) - { - foreach (ItemInfo ii in pi.MyItems) - RefreshPageNumber(ii); - } - } - } - internal string BuildMSWordPDF(SectionInfo section) - { - DateTime tStart = DateTime.Now; - string MSWordFile = null; - if (section.MyContent.ContentEntryCount == 1) - { - MSWordToPDF.DocReplace = DocReplace; - MSWordFile = MSWordToPDF.GetDocPdf(section, PrintOverride.TextColor); - MSWordToPDF.DocReplace = null; - GC.Collect(); // memory garbage collection - OnStatusChanged("MSWord converted to PDF " + MSWordFile, PromsPrinterStatusType.MSWordToPDF); - } - return MSWordFile; - } - private static void AddImportedPageToLayer(PdfContentByte cb, PdfLayer layer, PdfImportedPage page, float xOff, float yOff) - { - cb.BeginLayer(layer); - iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(page); - - // the following checks if the content of page is landscape and rotates because we're printing on - // a portrait page. If, at some point, we print a total landscape page, not a mix, this will need - // re-evaluated. - if (page.Height < page.Width) - { - if (cb.PdfDocument.PageSize.Height > cb.PdfDocument.PageSize.Width) - image.RotationDegrees = 90F; - } - image.SetAbsolutePosition(xOff, yOff); - cb.AddImage(image); - cb.EndLayer(); - } - private PdfLayer _TextLayer; - private PdfLayer _BackgroundLayer; - private PdfLayer _MSWordLayer; - private PdfLayer _PagelistLayer; - private PdfLayer _DebugLayer; - private PdfLayer _WatermarkLayer; - private void CreateLayers(PdfContentByte cb) - { - if (DebugOutput) - { - _BackgroundLayer = new PdfLayer("16-Bit", cb.PdfWriter); - _MSWordLayer = new PdfLayer("32-Bit MSWord", cb.PdfWriter); - _PagelistLayer = new PdfLayer("32-Bit Pagelist", cb.PdfWriter); - _TextLayer = new PdfLayer("32-Bit Text", cb.PdfWriter); - _DebugLayer = new PdfLayer("Debug", cb.PdfWriter); - _WatermarkLayer = new PdfLayer("Watermark", cb.PdfWriter); - _WatermarkLayer.SetPrint("Watermark", true); - } - } - private void CloseDocument(string fileName) - { - int profileDepth = ProfileTimer.Push(">>>> CloseDocument"); - try - { - MyContentByte.PdfDocument.Close(); - MyContentByte = null; - } - catch (Exception ex) - { - Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); - } - OnStatusChanged("CloseDocument", PromsPrinterStatusType.CloseDocument); - if (OpenPDF) - System.Diagnostics.Process.Start(fileName); - OnStatusChanged("OpenPDF", PromsPrinterStatusType.OpenPDF); - ProfileTimer.Pop(profileDepth); - } - private PdfContentByte _MyContentByte = null; - public PdfContentByte MyContentByte - { - get { return _MyContentByte; } - set - { - _MyContentByte = value; - if(value != null)MyReaderHelper.LoadTree(MyItem); - } - } - public void NewPage() - { - string path = Volian.Base.Library.vlnStackTrace.StackToStringLocal(2, 1); - NewPage(false); - } - public void NewPage(bool sectionChange) - { - // the first time we come in here we already printed the first page. - // we are now setting up the page size for the next page - iTextSharp.text.Rectangle rct = MyReaderHelper.MyPromsPrinter.MyContentByte.PdfDocument.PageSize; - if (_MyHelper != null) - { - SectionInfo currentSection = _MyHelper.MySection; - SectionInfo nextSection = GetNextSection(currentSection); // _MyHelper.MySection.NextItem as SectionInfo; - //SectionConfig sc = (nextSection ?? currentSection).MyConfig as SectionConfig; - // If we are changing to a different section, then get the config from the nextSection - // else we are still printing in the same section so get the config from the current section - SectionConfig sc = ((!sectionChange || nextSection == null)? currentSection.MyConfig : nextSection.MyConfig) as SectionConfig; - bool wordMargins = (sc != null && sc.Section_WordMargin == "Y"); - if (wordMargins) - { - if (nextSection != null && (sectionChange) && !nextSection.IsStepSection) //change to a word section - { - LastWordSection = nextSection; - _PageCountOfWordSection = 1; - MyReaderHelper.MySectionInfo = LastWordSection; - //ShowNeedForPageSize(); - rct = MyReaderHelper.GetSize(LastWordSection, 1); - } - else if (!currentSection.IsStepSection) //current section is a word section - { - if (currentSection != LastWordSection) - { - LastWordSection = currentSection; - _PageCountOfWordSection = 1; - } - else - _PageCountOfWordSection++; - MyReaderHelper.MySectionInfo = LastWordSection; - //ShowNeedForPageSize(); - rct = MyReaderHelper.GetSize(LastWordSection, _PageCountOfWordSection); - } - } - else // don't use Word margins - { - rct = PageSize.LETTER; - } - //Console.WriteLine("\"{0}\"\t\"{1}\"\t\"{2}\"\t\"{3}\"\t{4}" - // , currentSection == null ? "" : currentSection.DisplayNumber + " " + currentSection.DisplayText - // , nextSection == null ? "" : nextSection.DisplayNumber + " " + nextSection.DisplayText - // , sectionChange, wordMargins,_PageCountOfWordSection); - } - // Bug Fix: B2016-135 when using a large page size word section, that large page size was being used for the foldout page - // save this for the next section which will be the large page size word section. - if (_MyFoldoutReader.Count > 0) - MyContentByte.PdfDocument.SetPageSize(NxtRCT); - else - MyContentByte.PdfDocument.SetPageSize(rct); - NxtRCT = rct; - MyContentByte.PdfDocument.NewPage(); - } - private iTextSharp.text.Rectangle NxtRCT = PageSize.LETTER; - private SectionInfo GetNextSection(SectionInfo currentSection) - { - if (currentSection.Sections != null) - return currentSection.Sections[0] as SectionInfo; - if (currentSection.NextItem != null) - return currentSection.NextItem as SectionInfo; - SectionInfo parent = currentSection.ActiveParent as SectionInfo; - while (parent != null && parent.NextItem == null) - parent = parent.ActiveParent as SectionInfo; - if (parent == null) return null; - return parent.NextItem as SectionInfo; - } - private SectionInfo _PreviousWordSection = null; - public SectionInfo PreviousWordSection - { - get { return _PreviousWordSection; } - set { _PreviousWordSection = value; } - } - private SectionInfo _LastWordSection = null; - public SectionInfo LastWordSection - { - get { return _LastWordSection; } - set - { - PreviousWordSection = _LastWordSection; - _LastWordSection = value; - } - } - private int _PageCountOfWordSection = 0; - //private void ShowNeedForPageSize() - //{ - // if(PreviousWordSection != null && PreviousWordSection != LastWordSection) - // Console.WriteLine("Switch From {0}.{1} ",PreviousWordSection.DisplayNumber,PreviousWordSection.DisplayText); - // Console.WriteLine("To {0}.{1} Page: {2}",LastWordSection.DisplayNumber,LastWordSection.DisplayText,_PageCountOfWordSection); - // PreviousWordSection = LastWordSection; - //} - private PdfContentByte OpenDoc(string outputFileName, iTextSharp.text.Rectangle rect) - { - PdfWriter writer=null; - iTextSharp.text.Document document = new iTextSharp.text.Document(rect); - try - { - writer = PdfWriter.GetInstance(document, new FileStream(outputFileName, FileMode.Create)); - // PDFA1B does not allow layers, so this is disabled for now - // If enabled, CreateLayers will need to be skipped. - //writer.PDFXConformance = PdfWriter.PDFA1B; - } - catch (Exception ex) - { - StringBuilder sb = new StringBuilder(); - sb.AppendLine("Could not create"); - sb.AppendLine(); - sb.AppendLine(outputFileName + "."); - sb.AppendLine(); - sb.AppendLine("If it is open, close and retry."); - MessageBox.Show(sb.ToString(), "Error on CreatePdf", MessageBoxButtons.OK, MessageBoxIcon.Warning); - //MessageBox.Show("Could not create " + outputFileName + ". If it is open, close and retry.", "Error on CreatePdf"); - return MyContentByte = null; - } - document.Open(); - // Create Layers - CreateLayers(writer.DirectContent); - MSWordToPDF.DebugStatus = DebugOutput ? 1 : 0; - PrintOverride.Reset(); - if (DebugOutput) - { - PrintOverride.TextColor = System.Drawing.Color.Red; - PrintOverride.SvgColor = System.Drawing.Color.LawnGreen; - PrintOverride.BoxColor = System.Drawing.Color.Red; - PrintOverride.ChangeBarColor = System.Drawing.Color.Red; - PrintOverride.DebugColor = System.Drawing.Color.CadetBlue; - } - MyContentByte = writer.DirectContent; - return MyContentByte; - } - //private string CreateFileName(string procNumber, string sectNumber, string sectTitle) - //{ - // return FixFileName(procNumber + "_" + ((sectNumber ?? "") != "" ? sectNumber : sectTitle)); - //} - //private string CreateFileName(string procNumber) - //{ - // return FixFileName(procNumber); - //} - //private string FixFileName(string name) - //{ - // return Regex.Replace(name, "[ .,/]", "_") + ".pdf"; - //} - int _StepPageNumber = 0; - private VlnSvgPageHelper _MyHelper = null; - //private static PdfReader _MyFoldoutReader = null; - //private static SectionInfo _MyFoldoutSection = null; - private static List _MyFoldoutReader = null; - public static List MyFoldoutReader - { - get { return PromsPrinter._MyFoldoutReader; } - set { PromsPrinter._MyFoldoutReader = value; } - } - private static List _MyFoldoutSection = null; - private string Print(ProcedureInfo myProcedure, string pdfFolder, bool makePlacekeeper, bool makeContinuousActionSummary) - { - int profileDepth = ProfileTimer.Push(">>>> PromsPrinter.Print"); - if (_TransPageNumProblems == null) _TransPageNumProblems = new List(); - - if (_MyFoldoutReader != null) _MyFoldoutReader.Clear(); - else _MyFoldoutReader = new List(); - - if (_MyFoldoutSection != null) _MyFoldoutSection.Clear(); - else _MyFoldoutSection = new List(); - - if (myProcedure.Sections != null) - { - int cnt = 0; - foreach (SectionInfo mySection in myProcedure.Sections) - { - if ((myProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.SectionLevelFoldouts && mySection.MyContent.Number.ToUpper() == "FOLDOUT") - || (myProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.AlternateFloatingFoldout && mySection.MyContent.Text.ToUpper().Contains("FOLDOUT"))) - { - // if floating foldouts, need a list of sections & foldoutreaders. Just do first for now. - - _MyFoldoutSection.Add(mySection); - string foldoutPdf = PrintProcedureOrFoldout(myProcedure, mySection, Volian.Base.Library.VlnSettings.TemporaryFolder + @"\Foldout" + cnt.ToString() + @".pdf", false, false); - _MyFoldoutReader.Add(foldoutPdf != null ? new PdfReader(foldoutPdf) : null); - cnt++; - } - } - } - OnStatusChanged("Print " + myProcedure.DisplayNumber, PromsPrinterStatusType.Start); - string outputFileName = pdfFolder + "\\" + Prefix + PDFFile; // RHM20150506 Multiline ItemID TextBox - - if (!OverWrite && File.Exists(outputFileName)) - { - if (MessageBox.Show(outputFileName + " exists. Overwrite file?", "File Exists", MessageBoxButtons.YesNo) == DialogResult.No) - { - ProfileTimer.Pop(profileDepth); - return null; - } - } - string retval = PrintProcedureOrFoldout(myProcedure, null, outputFileName, makePlacekeeper, makeContinuousActionSummary); - ProfileTimer.Pop(profileDepth); - return retval; - } - - // See if the last non Foldout Section has a Final Message. - private int GetFinalMessageSectionID(ProcedureInfo myProcedure, bool doingFoldout) - { - if (!doingFoldout) - { - // Work backwards because we don't want to include any foldouts. Find the last section that is not - // a foldout. If it has a final message, this is the 'last section' and should have a final message. - // If it doesn't have a final message, then none should be printed. - int cntSect = myProcedure.Sections.Count; - for (int i = cntSect - 1; i >= 0; i--) - { - SectionInfo mySection = myProcedure.Sections[i] as SectionInfo; - if (!mySection.DisplayText.ToUpper().Contains("FOLDOUT")) - { - if (mySection.MyDocStyle.Final != null && mySection.MyDocStyle.Final.Message != null && mySection.MyDocStyle.Final.Message.Length > 0) - return mySection.ItemID; - else - return -1; - } - } - } - return -1; - } - private bool _AllowAllWatermarks = false; - public bool AllowAllWatermarks - { - get { return _AllowAllWatermarks; } - set { _AllowAllWatermarks = value; } - } - private PdfReader readerWord; - private string PrintProcedureOrFoldout(ProcedureInfo myProcedure, SectionInfo myFoldoutSection, string outputFileName, bool makePlacekeeper, bool makeContinuousActionSummary) - { - int profileDepth = ProfileTimer.Push(">>>> PrintProcedureOrFoldout"); - Rtf2Pdf.TextAtCounter = 0; - bool doingFoldout = myFoldoutSection != null; - // The following line accounts for 16bit OverrideLeftMargin when the 'Absolute' attribute is used in the genmac. - // We don't want to use the OverrideLeftMargin when 'Absolute' is used in the genmac. - // It's set here because the Volian.Svg.Library cannot call back to Volian.Print.Library to get this value. - Svg.Library.Svg.AbsoluteOffset = new PointF(2 * 72F / (float)myProcedure.ActiveFormat.PlantFormat.FormatData.Font.CPI, -9.5F); - // Create an MSWord Pdf - // Setup a pdf Document for printing - OnStatusChanged("Before OpenDoc", PromsPrinterStatusType.Before); - iTextSharp.text.Rectangle rct = PageSize.LETTER; - if (myProcedure.Sections != null && !myProcedure.Sections[0].IsStepSection) - { - SectionInfo si = myProcedure.Sections[0] as SectionInfo; - SectionConfig sc = si.MyConfig as SectionConfig; - bool wordMargins = (sc != null && sc.Section_WordMargin == "Y"); - if (wordMargins) - { - string pdfFile =BuildMSWordPDF(si); - try - { - PdfReader reader = new PdfReader(pdfFile); - rct = reader.GetPageSizeWithRotation(1); - } - catch (Exception ex) - { - MessageBox.Show(ex.Message, ex.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Warning); - _MyLog.Warn(string.Format("Error of ReadPDf [{0}],{1}.{2}",si.ItemID,si.DisplayNumber,si.DisplayText),ex); - throw new Exception("Error in readPDF", ex); - } - } - } - PdfContentByte cb = OpenDoc(outputFileName, rct); - if (cb == null) - { - ProfileTimer.Pop(profileDepth); - return null; - } - SetupProperties(cb.PdfDocument, myProcedure); - OnStatusChanged("Before NewPage", PromsPrinterStatusType.Before); - NewPage(); // Start of print - //_MyLog.InfoFormat("NewPage 1 {0}", cb.PdfWriter.CurrentPageNumber); - OnStatusChanged("After NewPage", PromsPrinterStatusType.NewPage); - if (myProcedure.Sections == null) - { - MessageBox.Show("This procedure has no content and will not be printed.", "Empty Procedure", MessageBoxButtons.OK, MessageBoxIcon.Information); - ProfileTimer.Pop(profileDepth); - return null; - } - OnStatusChanged(myProcedure.DisplayNumber, PromsPrinterStatusType.ProgressSetup, myProcedure.Sections.Count); - int progress = 0; - int finalMessageSectionID = GetFinalMessageSectionID(myProcedure, doingFoldout); - string LastFmtName = null; - int lastDocStyle = -1; - bool firstStepSec = true; - foreach (SectionInfo mySection in myProcedure.Sections) - { - NeedSupInfoBreak = true; - if (((mySection.MyContent.Number.ToUpper() == "FOLDOUT" && myProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.SectionLevelFoldouts) - || (myProcedure.ActiveFormat.PlantFormat.FormatData.PrintData.AlternateFloatingFoldout && mySection.MyContent.Text.ToUpper().Contains("FOLDOUT"))) - != doingFoldout) continue; - if (myFoldoutSection != null && myFoldoutSection.ItemID != mySection.ItemID) continue; - PrintOverride.CompressSuper = mySection.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.CompressHPSuper; - PrintOverride.CompressSub = mySection.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.CompressHPSub; - PrintOverride.CompressPropSubSup = mySection.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.CompressPropSubSup; - - OnStatusChanged((mySection.DisplayNumber ?? "") == "" ? mySection.DisplayText : mySection.DisplayNumber, PromsPrinterStatusType.Progress, progress++); - // Set up Helper for the particular Section - if (_MyHelper == null) - { - LastFmtName = mySection.ActiveFormat.Name; - lastDocStyle = (int)mySection.MyDocStyle.Index; - string hlsText = ""; - int hlsItemId = 0; - if (mySection.IsStepSection && mySection.Steps != null && mySection.Steps.Count > 0) - { - hlsItemId = mySection.Steps[0].ItemID; - hlsText = mySection.Steps[0].DisplayText; // save the High level step text for use in the page list - } - cb.PdfWriter.PageEvent = _MyHelper = new VlnSvgPageHelper(mySection, this, hlsText, hlsItemId); - _MyHelper.AllowAllWatermarks = AllowAllWatermarks; - _MyHelper.MyPdfWriter = cb.PdfWriter; - _MyHelper.CreatingFoldoutPage = doingFoldout; - _MyHelper.CreatingSupInfoPage = false; - _MyHelper.MyPdfContentByte = cb; - - if (!mySection.IsStepSection) _MyHelper.PageBookmarks.Add((ItemInfo)mySection, ((mySection.DisplayNumber ?? "") == "" ? "" : mySection.DisplayNumber + " - ") + mySection.DisplayText, null); - if (DebugOutput) - { - // 16-bit background - string procedureFileName = BackgroundFolder + "\\" + PDFFile.Trim();//CreateFileName(myProcedure.DisplayNumber); - FileInfo VEPromsFile = new FileInfo(procedureFileName); - if (VEPromsFile.Exists && !doingFoldout) - { - _MyHelper.BackgroundFile = procedureFileName; - float x = 0; - float y = 0; - if (!(mySection.ActiveFormat.Name.ToUpper().StartsWith("WST") || _MyHelper.Back32BitPROMS)) // compare folder contains PROMS generated PDF - { - // X value below = 16-bit pdf OverrideLeftMargin = -2 characters at the plant format's default Font's - // characters per inch. - // 16bit OverrideLeftMargin, defined as -2 in driver\drvin.rtf, - override took 2 characters out, so we're adding it back in: - // These values adjust if overlay is 16bit versus 32bit. This is - // used so that the comparison is an exact match. Use 0,0 if comparing to another 32bit - // pdf, i.e. won't process the following 2 lines of code. - x = 2 * 72F / (float)myProcedure.ActiveFormat.PlantFormat.FormatData.Font.CPI; - y = -9.5F; - } - x += 72F * VlnSettings.GetCommandFloat("X", 0); - y -= 72F * VlnSettings.GetCommandFloat("Y", 0); - _MyHelper.BackgroundOffset = new PointF(x,y); - _MyHelper.BackgroundPageOffset = 0; - } - _MyHelper.WatermarkLayer = _WatermarkLayer; - _MyHelper.PageListLayer = _PagelistLayer; - _MyHelper.TextLayer = _TextLayer; - _MyHelper.BackgroundLayer = _BackgroundLayer; - _MyHelper.DebugLayer = _DebugLayer; - } - _MyHelper.Rev = _Rev; - _MyHelper.Watermark = _Watermark; - _MyHelper.DoZoomOMatic = DebugOutput; - _MyHelper.OriginalPageBreak = OriginalPageBreak; - OnStatusChanged("After Set PageEvent", PromsPrinterStatusType.SetPageEvent); - } - else - { - //added by jcb to reset mygaps when changing a section. found old section gaps were carrying over to new section - _MyHelper.MyGaps.Clear(); - //Console.WriteLine("'{0}' PromsPrinter", mySection.DisplayText); - // if pagination is separate or we've changed the format, we have not done the first page - // (if this format has the useonfirst page docstyle flag) - if (LastFmtName != mySection.ActiveFormat.Name || lastDocStyle != (int)mySection.MyDocStyle.Index || mySection.SectionConfig.Section_Pagination == SectionConfig.SectionPagination.Separate) - { - _MyHelper.DidFirstPageDocStyle = false; - lastDocStyle = (int)mySection.MyDocStyle.Index; - LastFmtName = mySection.ActiveFormat.Name; - } - if (!mySection.IsStepSection) _MyHelper.PageBookmarks.Add((ItemInfo)mySection, ((mySection.DisplayNumber ?? "") == "" ? "" : mySection.DisplayNumber + " - ") + mySection.DisplayText, null); - _MyHelper.MySection = mySection; - //OnStatusChanged("After Set Svg", PromsPrinterStatusType.SetSVG); - } - // if this format uses phonelists, see if this section has one. We need to know the number - //of lines to adjust the pagelength for pagination and printing. - _MyHelper.PhoneListHeight = 0; - if (mySection.ActiveFormat.PlantFormat.FormatData.SectData.PrintPhoneList) - { - // get config for section - SectionConfig sc = mySection.MyConfig as SectionConfig; - if (sc.Section_PhoneList != null && sc.Section_PhoneList == "Y") - { - DocVersionConfig dvc = mySection.MyDocVersion.MyConfig as DocVersionConfig; - if (dvc != null) - { - string phlist = dvc.Print_PhoneList; - if (phlist != null && phlist != "") - { - // count lines: - int cl = 0; - int indx = phlist.IndexOf("\n"); - while (indx > 0) - { - cl++; - if (indx + 1 > phlist.Length) - indx = -1; - else - indx = phlist.IndexOf("\n", indx + 1); - } - if (cl == 0) cl = 1; // phone list is a single line without an ending newline - _MyHelper.PhoneListHeight = cl * vlnPrintObject.SixLinesPerInch; - } - } - } - } - _MyHelper.FinalMessageSectionID = finalMessageSectionID; // set VlnSvgPageHelper with the finalMessageSectionID - - if (mySection.IsAutoTOCSection) - { - if (((cb.PdfWriter.CurrentPageNumber % 2 == 0 && !_MyHelper.CreatingFoldoutPage) || myProcedure.ProcHasSupInfoData) && InsertBlankPages) // Bug Fix: B2016-181 - add blank page if page count is even - { - _MyHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - NewPage(); - } - GenerateTOC(mySection, myProcedure, cb, _TextLayer); - } - else - { - if (mySection.IsStepSection) - { - if (mySection.Steps != null && mySection.Steps.Count > 0) - { - // get first step to send to floating foldout indx.&& MyItemInfo.FoldoutIndex>-1) - ItemInfo firstStep = mySection.Steps[0]; - if (firstStep.FoldoutIndex() > -1) - DoFoldoutPage(cb, "Beginning of Step Section", _TextLayer, _MyHelper, firstStep.FoldoutIndex(), InsertBlankPages); - else if (!_MyHelper.CreatingFoldoutPage && _MyFoldoutReader.Count > 0 && InsertBlankPages) - { - // if it is continuous pagination, don't do blank page - not sure if this is correct place for this: - if (mySection.SectionConfig.Section_Pagination == SectionConfig.SectionPagination.Separate) - { - // only insert a blank page if this section does not have a foldout (but the procedure as a whole does) - // and the checkbox on the print dialog to add blank pages is checked - _MyHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - NewPage(); - //_MyLog.InfoFormat("NewPage Begin Step Sect blank {0}", cb.PdfWriter.CurrentPageNumber); - } - } - else - { - // If the procedure has supplemental facing pages, but this section does not & it's the first section, - // need a blank 'facing page'. Sections after the first will get blank 'facing page' in print's pagination logic - if (SupInfoPrintType==E_SupInfoPrintType.Merge && !mySection.HasSupInfoSteps && firstStepSec && InsertBlankPages) - { - _MyHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - NewPage(); - firstStepSec = false; - } - } - } - CreateStepPdf(mySection, cb); - } - else - { - CreateWordDocPdf(cb, mySection); - } - } - _MyHelper.PrintedSectionPage = 0; - } - if (_MyHelper != null && _MyHelper.BackgroundFile != null) - { - _MyHelper.MySvg = null; - while (cb.PdfWriter.CurrentPageNumber <= _MyHelper.BackgroundPageCount) - { - PrintTextMessage(cb, "No Proms Output", _TextLayer); - NewPage(); - //_MyLog.InfoFormat("NewPage 2 {0}", cb.PdfWriter.CurrentPageNumber); - if (DebugPagination.IsOpen) DebugPagination.WriteLine("{0:D6},'{1}'", - _MyHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, "No PROMS Output"); - } - } - OnStatusChanged(myProcedure.DisplayNumber + " PDF Creation Completed", PromsPrinterStatusType.Progress, progress); - if (DebugPagination.IsOpen) DebugPagination.TotalPages += cb.PdfWriter.CurrentPageNumber; - CloseDocument(outputFileName); - if (_MyHelper != null && makePlacekeeper) - { - // Setting the default font to Arial since that is what Calvert is currently using for their Placekeeper pages - VE_Font pkFont = new VE_Font("Arial", 11, E_Style.None, 12); // default font info. - // Ideally, we should grab the font from the DocStyle used for the Placekeeper. - // Note that Calvert has two Placekeeper docSyles (EOPs and AOPs) in the same format. - // Both Placekeeper DocStyles use Arial 11 pt font, so there is no need to grab it from the format file. - //foreach (DocStyle ds in _MyHelper.MySection.ActiveFormat.PlantFormat.DocStyles.DocStyleList) - //{ // note that this will get the last Placekeeper font setting - // if (ds.StructureStyle.Style == E_DocStructStyle.Placekeeper) - // pkFont = ds.Font; - //} - if (_MyHelper.MyPlacekeepers.Count > 0) - MyPlacekeeper = new Placekeeper(_MyHelper.MyPlacekeepers, pkFont); - } - // Generate the Continuous Action Summary - if (_MyHelper != null && makeContinuousActionSummary) - { - // Set the font for the Continue Action Summary - VE_Font pkFont = myProcedure.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.ContinuousActionSummaryData.Font; // uses font defined in the format or uses what is definced in BaseAll format - if (_MyHelper.MyContActSteps.Count > 0) - MyContActSummary = new ContinuousActionSummary(_MyHelper.MyContActSteps, pkFont); - } - _MyHelper = null; - ProfileTimer.Pop(profileDepth); - return outputFileName; - } - - private void SetupProperties(PdfDocument document, ProcedureInfo myProcedure) - { - document.AddTitle(string.Format("{0} {1}",myProcedure.DisplayNumber,myProcedure.DisplayText)); - document.AddSubject(myProcedure.SearchDVPath); - document.AddCreator(string.Format("{0} {1}",Application.ProductName, Application.ProductVersion)); - document.AddAuthor(Volian.Base.Library.VlnSettings.UserID); - } - private Placekeeper _MyPlacekeeper = null; - - public Placekeeper MyPlacekeeper - { - get { return _MyPlacekeeper; } - set { _MyPlacekeeper = value; } - } - - private ContinuousActionSummary _MyContActSummary = null; - - public ContinuousActionSummary MyContActSummary - { - get { return _MyContActSummary; } - set { _MyContActSummary = value; } - } - - public void CreateWordDocPdf(PdfContentByte cb, SectionInfo mySection) - { - if (mySection.PageNumber == -1) // If page num transition goes to a section, need the pagenumber of section. - { - if ((mySection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DontCountFoldoutPgs) == E_DocStructStyle.DontCountFoldoutPgs) - mySection.PageNumber = _MyHelper.CurrentPageNumberNoFoldouts; - else - mySection.PageNumber = _MyHelper.CurrentPageNumber; - } - else - { - if ((mySection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DontCountFoldoutPgs) == E_DocStructStyle.DontCountFoldoutPgs) - mySection.PageNumberNextPass = _MyHelper.CurrentPageNumberNoFoldouts; - else - mySection.PageNumberNextPass = _MyHelper.CurrentPageNumber; - } - int profileDepth = ProfileTimer.Push(">>>> CreateWordDocPdf"); - _MyHelper.MySection = mySection; - try - { - OnStatusChanged("Get Section", PromsPrinterStatusType.GetSection); - int sectPageCount = 0; - float locEndOfWordDoc = 0; - float pdfSize = 0; - using (PdfInfo myPdf = PdfInfo.Get(mySection,false)) - { - sectPageCount = (int)(Math.Ceiling(myPdf.PageCount)); - locEndOfWordDoc = (float)(myPdf.PageCount - (sectPageCount - 1)) * 100; - pdfSize = (float)myPdf.PageCount; - } - string tocKey = string.Format("TOC{0}", mySection.ItemID); - if (_MyHelper.MyTOCPageCounts.ContainsKey(tocKey)) - { - PageCount pc = _MyHelper.MyTOCPageCounts[tocKey]; - // add 1 because have not hit end page yet. - pc.Total = _MyHelper.CurrentTOCPageNumber + 1; - pc.DrawTemplates(); - } - else - { - // see if this section will be added to the table of content. This is for sections that - // precede tha actual Automated TOC section. - SectionConfig sc = mySection.MyConfig as SectionConfig; - if (sc != null && sc.Section_TOC == "Y") - { - string tockey = "TOC" + mySection.ItemID.ToString(); - if (!_MyHelper.MyTOCPageNums.ContainsKey(tockey)) - // increment the CurrentTOCPageNumber by 1 since we haven't hit an - // endpage yet, and that's what increments it to the current page number. - _MyHelper.MyTOCPageNums.Add(tockey, _MyHelper.CurrentTOCPageNumber + 1); - } - } - float origYoff = (float)mySection.MyDocStyle.Layout.TopMargin; - bool resetSvgForCont = true; - for (int ii = 0; ii < sectPageCount; ii++) - { - int pageNumber = 1 + ii; - bool didFoldout = false; - if (((mySection.MyDocStyle.StructureStyle.Style ?? 0) & E_DocStructStyle.UseSectionFoldout) != 0) - { - didFoldout = true; - DoFoldoutPage(cb, "Word Document", _TextLayer, _MyHelper, 0, false); - } - if (this.MyReaderHelper != null) - { - bool doimport2 = true; - PdfImportedPage fgPage = null; - try - { - fgPage = this.MyReaderHelper.GetPage(mySection, ii + 1); - } - catch (Exception ex) - { - Console.WriteLine(ex); - doimport2 = false; - } - OnStatusChanged("Read MSWord", PromsPrinterStatusType.ReadMSWord); - if (doimport2) - { - if (((!didFoldout && _MyFoldoutReader.Count > 0) || mySection.MyProcedure.ProcHasSupInfoData) && cb.PdfWriter.CurrentPageNumber > 1 && InsertBlankPages) - { - // only insert a blank page if this section does not have a foldout (but the procedure as a whole does) - // and the checkbox on the print dialog to add blank pages is checked - _MyHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - NewPage(); - //_MyLog.InfoFormat("NewPage 3 blank {0}", cb.PdfWriter.CurrentPageNumber); - } - float yoff = 0; - if (_MyHelper.DidFirstPageDocStyle) yoff = origYoff - (float)mySection.MyDocStyle.Layout.TopMargin; - AddImportedPageToLayer(cb.PdfWriter.DirectContent, _MSWordLayer, fgPage, (float)(mySection.MyDocStyle.Layout.MSWordXAdj ?? 0), (float)(mySection.MyDocStyle.Layout.MSWordYAdj ?? 0) + yoff); - if(DebugPagination.IsOpen) DebugPagination.WriteLine("{0:D6},'{1}',{2}", - _MyHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, mySection.ShortPath,pageNumber); - - } - if (ii == sectPageCount - 1) - { - // if there's and end message, add it to the appropriate location on the last page of - // the word document: - if ((mySection.MyDocStyle.End.Message ?? "") != "") - { - float ylocation = cb.PdfDocument.PageSize.Height - ((float)mySection.MyDocStyle.Layout.TopMargin + locEndOfWordDoc * 72); // 72 - pts per inch. - iTextSharp.text.Font fnt = VolianPdf.GetFont(mySection.MyDocStyle.End.Font.WindowsFont); - fnt.Color = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Black)); - iTextSharp.text.Paragraph para = new Paragraph(mySection.MyDocStyle.End.FixedMessage, fnt); - float wtpm = (float)mySection.MyDocStyle.Layout.PageWidth - (float)mySection.MyDocStyle.Layout.LeftMargin; - float centerpos = (float)mySection.MyDocStyle.Layout.LeftMargin + (wtpm - (mySection.MyDocStyle.End.Message.Length * mySection.MyDocStyle.End.Font.CharsToTwips)) / 2; - float yBottomMargin = Math.Max(0, (float)mySection.MyDocStyle.Layout.TopMargin - (float)mySection.MyDocStyle.Layout.PageLength - 2 * vlnPrintObject.SixLinesPerInch); - float adjMsgY = 0; - if ((float)mySection.MyDocStyle.End.Flag < 0) // Adjust this many lines down the page. - { - adjMsgY = (float)(-(float)mySection.MyDocStyle.End.Flag * vlnPrintObject.SixLinesPerInch); - if (ylocation - adjMsgY > mySection.MyDocStyle.Layout.FooterLength) ylocation = ylocation - adjMsgY; - } - bool landscape = (mySection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_WordContentLandscaped) == E_DocStructStyle.DSS_WordContentLandscaped; - if (landscape) - { - cb.SaveState(); - System.Drawing.Drawing2D.Matrix myMatrix = new System.Drawing.Drawing2D.Matrix(0, 1, -1, 0, cb.PdfDocument.PageSize.Height, 0); - cb.Transform(myMatrix); - } - Rtf2Pdf.TextAt(cb, para, centerpos, ylocation + 6, 200, 12, "", yBottomMargin); - if (landscape) cb.RestoreState(); - } - } - OnStatusChanged("Merge MSWord", PromsPrinterStatusType.MergeMSWord); - } - OnStatusChanged("Before NewPage", PromsPrinterStatusType.Before); - if (mySection.MyDocStyle.LandscapePageList)// && mySection.MyDocStyle.Layout.PageWidth > mySection.MyDocStyle.Layout.PageLength) - _MyHelper.IsLandscape = true; - else - _MyHelper.IsLandscape = false; - NewPage(ii == sectPageCount-1); // Word Document - //_MyLog.InfoFormat("NewPage 3 {0}", cb.PdfWriter.CurrentPageNumber); - - // if this document style has another style that is for pages other than first, we need to - // reset the document style off of this section AND reset docstyle values used. - _MyHelper.DidFirstPageDocStyle = true; - - // Calvert has a case in their stp landscape word docs where a ' (Continued)' message - // appears in their pagelist item for printing the section title, {ATTACHTITLECONT} pagelist - // However, other sections use this token, but do NOT have the continue message - so - // the docstyle was added to flag the difference between them (STP-Landscape Attachments has it, - // STP-Attachments do not) - if (resetSvgForCont && (mySection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListAddSectCont) == E_DocStructStyle.DSS_PageListAddSectCont) - { - _MyHelper.ResetSvg(); - resetSvgForCont = false; // only need to reset it once (for all pages after 1st page) - } - - //DebugPagination.WriteLine("CreateWordDocPdf"); - if ((mySection.MyDocStyle.StructureStyle.Where & E_DocStyleUse.UseOnFirstPage) > 0) - _MyHelper.MySection = mySection; // this resets the docstyle/pagestyle in pagehelper - OnStatusChanged("After NewPage", PromsPrinterStatusType.NewPage); - } - } - catch (Exception ex) - { - NewPage(); // can we put out 'error on page'? - _MyLog.InfoFormat("NewPage error on page {0}", cb.PdfWriter.CurrentPageNumber); - } - finally - { - _MyHelper.IsLandscape = false; // reset landscape mode to false - } - ProfileTimer.Pop(profileDepth); - } - private void GenerateTOC(SectionInfo tocSection, ProcedureInfo myProcedure, PdfContentByte cb, PdfLayer textLayer) - { - iTextSharp.text.pdf.PdfWriter writer = cb.PdfWriter; - float _PointsPerPage = 792; - float yTopMargin = _PointsPerPage - (float)tocSection.MyDocStyle.Layout.TopMargin; - float yBottomMargin = Math.Max(0, yTopMargin - (float)tocSection.MyDocStyle.Layout.PageLength); // - 2 * vlnPrintObject.SixLinesPerInch); - if (textLayer != null) cb.BeginLayer(textLayer); - TableOfContentsData tOfC = tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData; - //ItemInfo procItem = ItemInfo.Get(myProcedure.ItemID); - ItemInfo procItem = myProcedure; - lastyLocation = 0; - AddSectionToTOC(tocSection, procItem, tOfC, cb, yTopMargin, 0, false); // add all of the marked sections and sub-sections to the table of contents - if (textLayer != null) cb.EndLayer(); - NewPage(); - //_MyLog.InfoFormat("NewPage 4 {0}", cb.PdfWriter.CurrentPageNumber); - _NoBreakYOffset = 0; - } - float lastyLocation = 0; - private string GetRtfToC(string txt, TableOfContentsData tOfCData) - { - return GetRtfToC(txt, tOfCData, null); - } - private string GetRtfToC(string txt, TableOfContentsData tOfCData, VE_Font overrideFont) - { - StringBuilder _RtfSB = new StringBuilder(); - VEPROMS.CSLA.Library.DisplayText toctxt = new VEPROMS.CSLA.Library.DisplayText(txt, tOfCData.Font, false); - System.Drawing.Font myFont = toctxt.TextFont.WindowsFont; - if (overrideFont != null) - { - toctxt = new VEPROMS.CSLA.Library.DisplayText(txt, overrideFont, false); - myFont = overrideFont.WindowsFont;//toctxt.TextFont.WindowsFont; - } - _RtfSB.Append(vlnPrintObject.AddFontTable(myFont)); - _RtfSB.Append(toctxt.StartText); - _RtfSB.Append("}"); - return _RtfSB.ToString(); - } - private float AddSectionToTOC(SectionInfo tocSection, ItemInfo ii, TableOfContentsData tOfC, PdfContentByte cb, float yPageStart, float yLocation, bool didSubSecLineSpacing) - { - // The following adjustments are for WCN1: - // for xAdjNumber: 6 is for 1 char less in 16bit (\promsnt\exe\print\tabocont.c, method 'howMany'. - // 1.2 is a tweak to get output to match between 16 & 32 bit. - // for xAdjTitle: .8 & 1.2 are both tweaks to get output to match. - // for xAdjTitleIndent: 6 is for 1 char less. 2.4 is a tweak - float xAdjNumber = -6 + 1.2F; - float xAdjTitle = .8F + 1.2F; - float xAdjTitleIndent = -6 + 2.4F; - float yadj = 0.5F; // tweak to get 16 & 32 bit output to match. - - float yPageStartAdj = yPageStart - yadj; - float leftMargin = (float)tocSection.MyDocStyle.Layout.LeftMargin; - float secNumPos = (float)tOfC.TofCSecNumPos + xAdjNumber; - float secTitlePos = (float)tOfC.TofCSecTitlePos + xAdjTitle; - float secPagePos = (float)tOfC.TofCPageNumPos + xAdjNumber; - float height = tOfC.Font.WindowsFont.Size * 1.5F; - string lastTOCGroupHeading = ""; - if (ii.Sections != null) - { - int sectCnt = 0; // keep count of which section/sub-section we are processing - bool doSubY = false; - foreach (SectionInfo mySection in ii.Sections) - { - sectCnt++; - SectionConfig sc = mySection.MyConfig as SectionConfig; - if ((mySection.MyDocStyle != null && mySection.MyDocStyle.IncludeInTOC && (sc == null || sc.Section_TOC != "Y")) - || ((mySection.MyDocStyle == null || !mySection.MyDocStyle.IncludeInTOC) && (sc != null && sc.Section_TOC == "Y"))) - { - // for indenting of subsections, count up tree. Only start indenting - // at third level, i.e. not indent on 1.0 and 1.1, but indent on 1.1.1: - int level = 0; - ItemInfo iilvl = mySection as ItemInfo; - while (!iilvl.IsProcedure) - { - level++; - iilvl = iilvl.MyParent; - } - // check what level the plant wants the auto ToC indented: - int tofCNumLevels = tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCNumLevels ?? 0; - if (tofCNumLevels > 0 && level > tofCNumLevels) return yLocation; - - int startIndentAfterLevel = tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCStartIndentAfterLevel ?? 2; // - //level = level <= 2 ? 0 : level - 2; // no indenting until third level - level = level <= startIndentAfterLevel ? 0 : level - startIndentAfterLevel; - float indentOffset = (level * (secTitlePos - secNumPos)); - - if (didSubSecLineSpacing && sectCnt == 1 && indentOffset > 0) // processing first sub-section and we are indenting B2016-205 - { - // processed last sub-section so use the main section line spacing (most times is double spaced) - yLocation -= (float)(tOfC.TofCLineSpacingSub ?? 1) * vlnPrintObject.SixLinesPerInch; - yLocation += (float)(tOfC.TofCLineSpacing ?? 1) * vlnPrintObject.SixLinesPerInch; - } - // The Group Title logic was added for V.C. Summer and Farley(new writer guide format) - // It allows the user to enter a Table of Contents Grouping Title on the Section Property (under automation) - // The grouping title will print if the same title wasn't last printed - string tocGrpHeading = sc.Section_TOC_Group_Title; // returns a "" if no title was entered - float yBottomMargin = yPageStart - (float)tocSection.MyDocStyle.Layout.PageLength + (2 * vlnPrintObject.SixLinesPerInch); - bool doGroupHeading = false; - if (tocGrpHeading != lastTOCGroupHeading && tocGrpHeading.Length > 0) - { - doGroupHeading = true; - if (lastTOCGroupHeading != "") - yLocation += vlnPrintObject.SixLinesPerInch; - lastTOCGroupHeading = tocGrpHeading; - } - // need to do the section number, section title & page number. Page number - // has to be put on at end after number of page is known, so use a Template. - bool didGrp = false; - string tmptxt = mySection.MyContent.Number == null || mySection.MyContent.Number == "" ? " " : mySection.DisplayNumber;// B2017-019 - process "" in section number - if (tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCRemoveGrpNameInSects - && tocGrpHeading.Length > 0 && tmptxt.ToUpper().Contains(tocGrpHeading)) - { - tmptxt = tmptxt.Replace(tocGrpHeading, ""); - didGrp = true; - } - if (tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCRemoveGrpNameInSects - && lastTOCGroupHeading.Length > 0 && tmptxt.ToUpper().Contains(lastTOCGroupHeading)) - { - tmptxt = tmptxt.Replace(lastTOCGroupHeading, ""); - didGrp = true; - } - string rtfText = GetRtfToC(tmptxt, tOfC); - Paragraph myparagraphSecNum = vlnPrintObject.RtfToParagraph(rtfText); - float width = 0; - foreach (Chunk chkt in myparagraphSecNum.Chunks) - width += chkt.GetWidthPoint(); - float numwidth = width; - Rtf2Pdf.Offset = new PointF(0, 2.5F); - - // if the starting column of text would be in 'middle of' the number, just put it - // a few spaces after the number. The '18' below represents 3 chars. - float adjSecTitlePos = secTitlePos + indentOffset + (level * 6); - if (secNumPos + numwidth + indentOffset > secTitlePos + indentOffset) - adjSecTitlePos = secNumPos + numwidth + 18 - xAdjTitleIndent + indentOffset; - - // logic put in for V.C. Summer who wants to their auto table of contents to print "OPERATOR ACTIONS" (set in the format) instead of "Procedure Steps" - // - note that Summer didn't want to change the section title because they want transition to say "procedure step" for the section title. 03/08/2016 - string tocSecTitle = mySection.FormattedDisplayText;// B2017-019 - process "" in section title - if (tocSecTitle.ToUpper() == "PROCEDURE STEPS" && tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCProcedureStepsTitle != "") - tocSecTitle = tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCProcedureStepsTitle; - - // Do the title first since it may wrap to 2nd line and this is an issue for - // doing a pagebreak, i.e. may cause a page break when the number on a single line - // would not. - //if (tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData - if (level == 0 && tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCUnderlineFirstLevelTitle) - { - VE_Font ovrFont = new VE_Font(tOfC.Font.Family, (int)tOfC.Font.Size,(E_Style)tOfC.Font.Style | E_Style.Underline, (float)tOfC.Font.CPI); - rtfText = GetRtfToC(tocSecTitle, tOfC, ovrFont); - } - else - rtfText = GetRtfToC(tocSecTitle, tOfC); - Paragraph myparagraphSecTitle = vlnPrintObject.RtfToParagraph(rtfText); // section title - width = secPagePos - adjSecTitlePos - 6; - float savTitleWid = width; - // for South Texas Table of Contents - // if there is no section number (we put a blank in tmptxt) then move the section title over to the section number position - if (doGroupHeading) // see if the group title and the first item under it will fit on the page B2016-216 - { - VE_Font grpingFont = new VE_Font(tOfC.Font.Family, (int)tOfC.Font.Size, (E_Style)tOfC.Font.Style | E_Style.Underline, (float)tOfC.Font.CPI); - string rtfGrpingText = GetRtfToC(tocGrpHeading, tOfC, grpingFont); - Paragraph myparagraphGrpTitle = vlnPrintObject.RtfToParagraph(rtfGrpingText); - float w = secPagePos - 6; - int lnaftergroup = ((tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCLineSpacingSub ?? 0) > 0) ? 1 : 2; - float yLocAfterGrpTitleAndFirstItem = yLocation + (lnaftergroup * vlnPrintObject.SixLinesPerInch) + vlnPrintObject.GetHeight(cb, myparagraphGrpTitle, string.Empty, w, false) + vlnPrintObject.GetHeight(cb, myparagraphSecTitle, string.Empty, savTitleWid, false); - // if group heading and first item under it does not fit on the page, do a page break - if ((yPageStart - yLocAfterGrpTitleAndFirstItem) < yBottomMargin) - { - NewPage(); - _MyHelper.ResetSvg(); // needed to reset so that PSNotFirst pagelist justify flag gets used for BGE - yLocation = lastyLocation = 0; - } - //if (yLocation > 0) yLocation += vlnPrintObject.SixLinesPerInch;// commented out for B2016-200 // for two blank line between last TOC title and the new grouping title - float rtnval = Rtf2Pdf.TextAt(cb, myparagraphGrpTitle, leftMargin + secNumPos, yPageStart - yLocation, w, height, "", yBottomMargin); // print the Group Title - yLocation += vlnPrintObject.SixLinesPerInch; // for two blank line between last TOC title and the new grouping title - added for B2016-200 - yLocation += (lnaftergroup * vlnPrintObject.SixLinesPerInch); // new line - } - // Print the section title - float retval = Rtf2Pdf.TextAt(cb, myparagraphSecTitle, leftMargin + ((tOfC.TofCSecNumPos == tOfC.TofCSecTitlePos && tmptxt.Equals(" "))? secNumPos : adjSecTitlePos), yPageStart - yLocation, width, height, "", yBottomMargin); - if (retval == 0) // couldn't fit, flags need for a page break. - { - NewPage(); - _MyHelper.ResetSvg(); // needed to reset so that PSNotFirst pagelist justify flag gets used for BGE - yLocation = lastyLocation = 0; - retval = Rtf2Pdf.TextAt(cb, myparagraphSecTitle, leftMargin + adjSecTitlePos, yPageStart - yLocation, width, height, "", yBottomMargin); - } - float ttlRetval = retval; - float savTitleFillWidth = Rtf2Pdf.FillWidth; - - // Now do the section number. Retval is the ylocation on page after the text - // is put out. - retval = Rtf2Pdf.TextAt(cb, myparagraphSecNum, leftMargin + secNumPos + indentOffset, yPageStart - yLocation, numwidth * 1.3F, height, "", yBottomMargin); - - //float lSpace = (float)(tOfC.TofCLineSpacing ?? 1) * vlnPrintObject.SixLinesPerInch; - - // adjust ylocation for pagenumber - the ylocation will get reset if the - // section title split on 2 lines and the page number needs to be on the 2nd line. - // Only do this if the title is not empty (the code was meant for if title spans more than a line) - if (retval != ttlRetval && mySection.MyContent.Text != null && mySection.MyContent.Text != "") yLocation += (retval - ttlRetval); - - // retval = the minimum (further down the page) between section number and - // title - this accounts for multi line title. - retval = Math.Min(retval, ttlRetval); - lastyLocation = retval; - - // check that the page number should be in the TOC (some BGE sections do not have the page number) - if (!((mySection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DontNumberInTOC) == E_DocStructStyle.DontNumberInTOC)) - { - // add a template for the page number: - // if the space character is not null & is not a space, the we've got to put out - // these between the section title & the page number - if (tOfC.TofCSpaceChar != null && tOfC.TofCSpaceChar != "" && tOfC.TofCSpaceChar != " ") - { - width = 0; - foreach (Chunk chkt in myparagraphSecTitle.Chunks) - width += chkt.GetWidthPoint(); - - // get height - if two lines high, need width of 2nd line for adding - // space characters - float heightTtl = vlnPrintObject.GetHeight(cb, myparagraphSecTitle, string.Empty, savTitleWid, false); - string spaceStr = ""; - float startSpace = 0; - // the '6's in the next few code lines & in the 'while' loop below allows the placement of the dots (or other space character) - // to be not too close to section title & page number. - if (heightTtl > vlnPrintObject.SixLinesPerInch) - { - // this title is 2 or more lines, find start of leader dots by determining length of text - // on 2nd line (the savTitleFillWidth is the widest line of the split title) - float secondLineWidth = width - savTitleFillWidth; - startSpace = leftMargin + adjSecTitlePos + secondLineWidth + 6; - } - else - startSpace = leftMargin + adjSecTitlePos + width + 6; - // If the page number is Right justified, need less space characters ('.') so that page number - // doesn't have the last space character overwriting the 1st digit: - int endJust = (tOfC.TofCPageNumAlign.ToUpper() == "RIGHT") ? 18 : 6; - - float endSpace = leftMargin + secPagePos - endJust; - float numSpace = endSpace - startSpace; - rtfText = GetRtfToC(tOfC.TofCSpaceChar, tOfC); - Paragraph tmpmyparagraph = vlnPrintObject.RtfToParagraph(rtfText); - float spacchrwid = 0; - foreach (Chunk chkt in tmpmyparagraph.Chunks) - spacchrwid += chkt.GetWidthPoint(); - while (numSpace > 6) - { - spaceStr = spaceStr + tOfC.TofCSpaceChar; - numSpace -= spacchrwid; - } - - rtfText = GetRtfToC(spaceStr, tOfC); // out the leader dots - Paragraph myparagraphs = vlnPrintObject.RtfToParagraph(rtfText); - retval = Rtf2Pdf.TextAt(cb, myparagraphs, startSpace, yPageStart - yLocation, endSpace - startSpace, height, "", yBottomMargin); - - } - // if in the pre-table of content list, just put the page number out as text. - // otherwise, add a template _MyHelper.MyTOCPageCounts - string key = "TOC" + mySection.ItemID.ToString(); - if (mySection.IsAutoTOCSection || _MyHelper.MyTOCPageNums.ContainsKey(key)) - { - string pnum = _MyHelper.MyTOCPageNums.ContainsKey(key) ? _MyHelper.MyTOCPageNums[key].ToString() : (_MyHelper.CurrentTOCPageNumber + 1).ToString(); - rtfText = GetRtfToC(pnum, tOfC); - Paragraph myparagraphp = vlnPrintObject.RtfToParagraph(rtfText); - width = pnum.Length * 6; - retval = Rtf2Pdf.TextAt(cb, myparagraphp, leftMargin + secPagePos, yPageStart - yLocation, width, height, "", yBottomMargin); - } - else - AddTemplateTOCPageCounts(tOfC, yLocation, yPageStartAdj, leftMargin, secPagePos, height, mySection); - } - //If the format wants single spacing within subsections (2nd level and lower), then need to figure out - // spacing (vcb1 table of contents) - //bool dosuby = (((tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCLineSpacingSub ?? 1) > 0) - // && (mySection.MyParent.IsSection && ((mySection.Sections != null && mySection.Sections.Count > 0) || (level > 0 && mySection.NextItem != null)))) - // || didGrp; - doSubY = (((tocSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCLineSpacingSub ?? 1) > 0) - && (mySection.MyParent.IsSection && (/* mySection.Sections == null && */ sectCnt < ii.Sections.Count))) // B2016-205 - || didGrp; - if (doSubY) - yLocation += (float)(tOfC.TofCLineSpacingSub ?? 1) * vlnPrintObject.SixLinesPerInch; - else - yLocation += (float)(tOfC.TofCLineSpacing ?? 1) * vlnPrintObject.SixLinesPerInch; - } - float savYLoc = yLocation; - yLocation = AddSectionToTOC(tocSection, mySection, tOfC, cb, yPageStart, yLocation, doSubY); - if (savYLoc == yLocation) // nothing was outputted i.e. the subsections are not included on the TOC // B2016-205 - { - if (doSubY && sectCnt == ii.Sections.Count) - { - // processed last sub-section so use the main section line spacing (most times is double spaced) - yLocation -= (float)(tOfC.TofCLineSpacingSub ?? 1) * vlnPrintObject.SixLinesPerInch; - yLocation += (float)(tOfC.TofCLineSpacing ?? 1) * vlnPrintObject.SixLinesPerInch; - } - } - } - } - return yLocation; - } - - private void AddTemplateTOCPageCounts(TableOfContentsData tOfC, float yLocation, float yPageStartAdj, float leftMargin, float secPagePos, float height, SectionInfo mySection) - { - string key = "TOC" + mySection.ItemID.ToString(); - PdfTemplate tmp = _MyHelper.MyTOCPageCounts.AddToTemplateList(key, _MyHelper.MyPdfWriter, "{TOCPAGE}", tOfC.Font.WindowsFont, (tOfC.TofCPageNumAlign.ToUpper() == "RIGHT") ? Element.ALIGN_RIGHT : Element.ALIGN_LEFT, PrintOverride.TextColor); - _MyHelper.MyPdfContentByte.AddTemplate(tmp, leftMargin + secPagePos, (yPageStartAdj - yLocation) - height / 2); - } - - //private string GetRtfPlacekeeper(string txt, PlacekeeperData pkCData) - //{ - // StringBuilder _RtfSB = new StringBuilder(); - // Volian.Controls.Library.DisplayText pktxt = new Volian.Controls.Library.DisplayText(txt, pkCData.Font, false); - // System.Drawing.Font myFont = pktxt.TextFont.WindowsFont; - // _RtfSB.Append(vlnPrintObject.AddFontTable(myFont)); - // _RtfSB.Append(pktxt.StartText); - // _RtfSB.Append("}"); - // return _RtfSB.ToString(); - //} - //private float AddSectionToPK(SectionInfo pkSection, ItemInfo ii, PlacekeeperData pkData, PdfContentByte cb, float yPageStart, float yLocation) - //{ - // SectionConfig pkSC = pkSection.MyConfig as SectionConfig; - // if (pkSC.Section_Placekeeper != "Y") return yLocation; // automatic generation of Placekeeper turned off - // float xAdjNumber = -6 + 1.2F; - // float xAdjTitle = .8F + 1.2F; - // float xAdjTitleIndent = -6 + 2.4F; - // float yadj = 0.5F; // tweak to get 16 & 32 bit output to match. - - // float yPageStartAdj = yPageStart - yadj; - // float leftMargin = (float)pkSection.MyDocStyle.Layout.LeftMargin; - // //float secNumPos = (float)tOfC.TofCSecNumPos + xAdjNumber; - // //float secTitlePos = (float)tOfC.TofCSecTitlePos + xAdjTitle; - // //float secPagePos = (float)tOfC.TofCPageNumPos + xAdjNumber; - // //float height = tOfC.Font.WindowsFont.Size * 1.5F; - // if (ii.Sections != null) - // { - // foreach (SectionInfo mySection in ii.Sections) - // { - // SectionConfig sc = mySection.MyConfig as SectionConfig; - // if (mySection.ItemID != pkSection.ItemID && sc != null && sc.Section_Placekeeper == "Y") - // { - // // Look at each step in the section and build a Placekeeper for those steps that are marked - - // // need to do the section number, section title & page number. Page number - // // has to be put on at end after number of page is known, so use a Template. - // //string tmptxt = mySection.MyContent.Number == null || mySection.MyContent.Number == "" ? " " : mySection.MyContent.Number; - // //string rtfText = GetRtfPlacekeeper(tmptxt, pkData);//GetRtfToC(tmptxt, tOfC); - // //Paragraph myparagraphn = vlnPrintObject.RtfToParagraph(rtfText); - // float width = 0; - // //foreach (Chunk chkt in myparagraphn.Chunks) - // // width += chkt.GetWidthPoint(); - // float numwidth = width; - // float yBottomMargin = yPageStart - (float)pkSection.MyDocStyle.Layout.PageLength + (2 * vlnPrintObject.SixLinesPerInch); - // Rtf2Pdf.Offset = new PointF(0, 2.5F); - - // //// for indenting of subsections, count up tree. Only start indenting - // //// at third level, i.e. not indent on 1.0 and 1.1, but indent on 1.1.1: - // //int level = 0; - // //ItemInfo iilvl = mySection as ItemInfo; - // //while (!iilvl.IsProcedure) - // //{ - // // level++; - // // iilvl = iilvl.MyParent; - // //} - // //// check what level the plant wants the auto ToC indented: - // //int tofCNumLevels = pkSection.ActiveFormat.PlantFormat.FormatData.SectData.AccSectionData.TableOfContentsData.TofCNumLevels ?? 0; - // //if (tofCNumLevels > 0 && level > tofCNumLevels) return yLocation; - - // //level = level <= 2 ? 0 : level - 2; // no indenting until third level - // //float indentOffset = (level * (secTitlePos - secNumPos)); - - // // if the starting column of text would be in 'middle of' the number, just put it - // // a few spaces after the number. The '18' below represents 3 chars. - // //float adjSecTitlePos = secTitlePos + indentOffset + (level * 6); - // //if (secNumPos + numwidth + indentOffset > secTitlePos + indentOffset) - // // adjSecTitlePos = secNumPos + numwidth + 18 - xAdjTitleIndent + indentOffset; - // //rtfText = GetRtfToC(mySection.MyContent.Text, tOfC); - // //Paragraph myparagrapht = vlnPrintObject.RtfToParagraph(rtfText); - // //width = secPagePos - adjSecTitlePos - 6; - // //float retval = Rtf2Pdf.TextAt(cb, myparagrapht, leftMargin + adjSecTitlePos, yPageStart - yLocation, width, height, "", yBottomMargin); - // //float ttlRetval = retval; - // //if (retval == 0) - // //{ - // // cb.PdfDocument.NewPage(); - // // //_MyLog.InfoFormat("NewPage 5 {0}", cb.PdfWriter.CurrentPageNumber); - // // yLocation = lastyLocation = 0; - // // retval = Rtf2Pdf.TextAt(cb, myparagrapht, leftMargin + adjSecTitlePos, yPageStart - yLocation, width, height, "", yBottomMargin); - // // ttlRetval = retval; - // //} - // //retval = Rtf2Pdf.TextAt(cb, myparagraphn, leftMargin + secNumPos + indentOffset, yPageStart - yLocation, width * 1.3F, height, "", yBottomMargin); - // //if (retval == 0) // do a newpage, it couldn't fit on current page. - // //{ - // // cb.PdfDocument.NewPage(); - // // //_MyLog.InfoFormat("NewPage 5 {0}", cb.PdfWriter.CurrentPageNumber); - // // yLocation = lastyLocation = 0; - // // retval = Rtf2Pdf.TextAt(cb, myparagraphn, leftMargin + secNumPos + indentOffset, yPageStart - yLocation, width * 1.3F, height, "", yBottomMargin); - // //} - // //retval = Math.Min(retval, ttlRetval); - // //float lSpace = (tOfC.TofCLineSpacing == 2) ? 2 * vlnPrintObject.SixLinesPerInch : vlnPrintObject.SixLinesPerInch; - // //if (lastyLocation != 0 && ((lastyLocation - retval) > lSpace)) - // // yLocation += (lastyLocation - retval - lSpace); - // //lastyLocation = retval; - - // //// check that the page number should be in the TOC (some BGE sections do not have the page number) - // //if (!((mySection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DontNumberInTOC) == E_DocStructStyle.DontNumberInTOC)) - // //{ - // // // add a template for the page number: - // // // if the space character is not null & is not a space, the we've got to put out - // // // these between the section title & the page number - // // if (tOfC.TofCSpaceChar != null && tOfC.TofCSpaceChar != "" && tOfC.TofCSpaceChar != " ") - // // { - // // width = 0; - // // foreach (Chunk chkt in myparagrapht.Chunks) - // // width += chkt.GetWidthPoint(); - // // float startSpace = leftMargin + adjSecTitlePos + width; - // // float endSpace = leftMargin + secPagePos; - // // float numSpace = endSpace - startSpace; - // // string spaceStr = ""; - // // rtfText = GetRtfToC(tOfC.TofCSpaceChar, tOfC); - // // Paragraph tmpmyparagraph = vlnPrintObject.RtfToParagraph(rtfText); - // // float spacchrwid = 0; - // // foreach (Chunk chkt in tmpmyparagraph.Chunks) - // // spacchrwid += chkt.GetWidthPoint(); - // // while (numSpace > 0) - // // { - // // spaceStr = spaceStr + tOfC.TofCSpaceChar; - // // numSpace -= spacchrwid; - // // } - // // rtfText = GetRtfToC(spaceStr, tOfC); - // // Paragraph myparagraphs = vlnPrintObject.RtfToParagraph(rtfText); - // // retval = Rtf2Pdf.TextAt(cb, myparagraphs, startSpace, yPageStart - yLocation, endSpace - startSpace, height, "", yBottomMargin); - // // } - // // // if in the pre-table of content list, just put the page number out as text. - // // // otherwise, add a template _MyHelper.MyTOCPageCounts - // // string key = "TOC" + mySection.ItemID.ToString(); - // // if (mySection.IsAutoTOCSection || _MyHelper.MyTOCPageNums.ContainsKey(key)) - // // { - // // string pnum = _MyHelper.MyTOCPageNums.ContainsKey(key) ? _MyHelper.MyTOCPageNums[key].ToString() : (_MyHelper.CurrentTOCPageNumber + 1).ToString(); - // // rtfText = GetRtfToC(pnum, tOfC); - // // Paragraph myparagraphp = vlnPrintObject.RtfToParagraph(rtfText); - // // width = pnum.Length * 6; - // // retval = Rtf2Pdf.TextAt(cb, myparagraphp, leftMargin + secPagePos, yPageStart - yLocation, width, height, "", yBottomMargin); - // // } - // // else - // // AddTemplateTOCPageCounts(tOfC, yLocation, yPageStartAdj, leftMargin, secPagePos, height, mySection); - // //} - - // yLocation += vlnPrintObject.SixLinesPerInch; - // } - // //yLocation = AddSectionToTOC(tocSection, mySection, tOfC, cb, yPageStart, yLocation); - // } - // } - // return yLocation; - //} - - //private void AddTemplatePKPageCounts(TableOfContentsData tOfC, float yLocation, float yPageStartAdj, float leftMargin, float secPagePos, float height, SectionInfo mySection) - //{ - // string key = "PK" + mySection.ItemID.ToString(); - // PdfTemplate tmp = _MyHelper.MyTOCPageCounts.AddToTemplateList(key, _MyHelper.MyPdfWriter, "{TOCPAGE}", tOfC.Font.WindowsFont, Element.ALIGN_LEFT, PrintOverride.TextColor); - // _MyHelper.MyPdfContentByte.AddTemplate(tmp, leftMargin + secPagePos, (yPageStartAdj - yLocation) - height / 2); - //} - private static void PrintTextMessage(PdfContentByte cb, string message, PdfLayer textLayer) - { - if (textLayer != null) cb.BeginLayer(textLayer); - float fontSize = 30; - ColumnText ct = new ColumnText(cb); - iTextSharp.text.Font font = FontFactory.GetFont("Arial", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, fontSize,iTextSharp.text.Font.NORMAL, new iTextSharp.text.Color(PrintOverride.TextColor)); - Chunk chk = new Chunk(message, font); - float xCenter = cb.PdfDocument.PageSize.Width / 2; - float yCenter = cb.PdfDocument.PageSize.Height / 2; - float width = chk.GetWidthPoint() * 1.01F; - float height = fontSize * 1.5F; - ct.SetSimpleColumn(xCenter - width / 2, yCenter - height / 2, xCenter + width / 2, yCenter + height / 2); - Phrase ph = new Phrase(chk); - ct.AddElement(ph); - cb.SetColorFill(new iTextSharp.text.Color(PrintOverride.TextColor)); - ct.Go(); - if (textLayer != null) cb.EndLayer(); - } - private float _NoBreakYOffset = 0; - private float _NoBreakYPageStart = 0; - private void CreateStepPdf(SectionInfo section, PdfContentByte cb) - { - int profileDepth = ProfileTimer.Push(">>>> CreateStepPdf"); - //PrintTimer pt = new PrintTimer(); - iTextSharp.text.pdf.PdfWriter writer = cb.PdfWriter; - ItemInfo myItemInfo = section as ItemInfo; - if (SupInfoPrintType == E_SupInfoPrintType.DoPageBreaks) - { - if (section.StepSectPageBreaksForSupInfo == null) section.StepSectPageBreaksForSupInfo = new List(); - else section.StepSectPageBreaksForSupInfo.Clear(); - } - // 792: 72 * 11 inches - TopRow - Top is high value - float _PointsPerPage = 792; - float yTopMargin = _PointsPerPage - (float)myItemInfo.MyDocStyle.Layout.TopMargin; - yTopMargin -= _MyHelper.AdjustTopMarginForMultiLinePageListItems; - // the following line was modified to comment out the - 2 * SixLinesPerInch. this fixed a pagination problem with WCN EMG E-3. - float yBottomMargin = Math.Max(0, yTopMargin - (float)myItemInfo.MyDocStyle.Layout.PageLength); // - 2 * vlnPrintObject.SixLinesPerInch); - vlnParagraph.PathPrefix = myItemInfo.Path; - //Rtf2Pdf.PdfDebug = true; - Rtf2Pdf.Offset = new PointF(0, 2.5F); - if (section.MyDocStyle.LandscapePageList) - { - if ((section.MyConfig as SectionConfig).Section_Pagination == SectionConfig.SectionPagination.Separate) - { - System.Drawing.Drawing2D.Matrix myMatrix = new System.Drawing.Drawing2D.Matrix(0, 1, -1, 0, cb.PdfDocument.PageSize.Height, 0); - cb.Transform(myMatrix); - } - } - else - _MyHelper.IsLandscape = false; - _MyHelper.ChangeBarDefinition = MyChangeBarDefinition; - //pt.Description = "vlnParagrph"; - vlnParagraph myParagraph = new vlnParagraph(null, cb, myItemInfo, (float)myItemInfo.MyDocStyle.Layout.LeftMargin, _NoBreakYOffset, 0, myItemInfo.ColumnMode, myItemInfo.ActiveFormat, null, null, 0, true, this); - //pt.Description = "After vlnParagrph"; - //if (myParagraph.MyItemInfo.InList(15906)) - //{ - // CPSGen myGen = new CPSGen(myParagraph); - // myGen.Generate("TestCPSGEN.xml"); - //} - float localYPageStart = 0; - float yPageStart = yTopMargin; - if (myItemInfo.HasChildren || myItemInfo.MyDocVersion.DocVersionConfig.SelectedSlave > 0 || (myItemInfo.ActiveFormat.PlantFormat.FormatData.Express && myItemInfo.MyDocStyle.OptionalSectionContent)) - { - // if there is supplemental information associated with this section... generate the pdf. This pdf will be used to place - // supplemental information on facing pages - if (SupInfoPrintType == E_SupInfoPrintType.Merge && myParagraph.SupInfoSection != null && myParagraph.SupInfoSection.ChildrenBelow != null && myParagraph.SupInfoSection.ChildrenBelow.Count > 0) - GenerateSuppInfoPdf(myParagraph.SupInfoSection, yTopMargin, yBottomMargin); - localYPageStart = myParagraph.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - if (myParagraph.MyPlaceKeeper != null) - _MyHelper.MyPlacekeepers.Add(myParagraph.MyPlaceKeeper); // add this step text to the PlaceKeeper (Calvert Cliffs) - if (myParagraph.MyContAct != null) - _MyHelper.MyContActSteps.Add(myParagraph.MyContAct); // add this step to the Continuous Action Summary - } - else if (!myItemInfo.MyDocStyle.OptionalSectionContent) - { - SectionInfo si = myItemInfo.ActiveSection as SectionInfo; - if(si.IsSeparatePagination()) // Don't output this message for continuous sections - // This was causing overlap of this message with previous sections - PrintTextMessage(cb, "No Section Content", _TextLayer); - } - SectionConfig.SectionPagination sp = SectionConfig.SectionPagination.Separate; // always the default - ItemInfo nxtItem = section.NextItem; - if (nxtItem != null) - { - // if this section & the next section are not accessory pages, see if there is continuous pagination, - // i.e. no page break between them. - if (section.IsStepSection && nxtItem.IsStepSection) - { - SectionInfo si = nxtItem as SectionInfo; - SectionConfig sc = si.SectionConfig; - try - { - if (sc != null) sp = sc.Section_Pagination; - } - catch (Exception ex) - { - sp = SectionConfig.SectionPagination.Separate; - } - } - } - if (sp == SectionConfig.SectionPagination.Separate) - { - if (section.MyDocStyle.LandscapePageList) - { - _MyHelper.IsLandscape = false; - } - NewPage(true); // end of step section - //_MyLog.InfoFormat("NewPage 6 {0}", cb.PdfWriter.CurrentPageNumber); - _NoBreakYOffset = 0; - yPageStart = yTopMargin; - } - else - { - if (nxtItem != null && nxtItem.MyPrevious != null && nxtItem.ActiveFormat.PlantFormat.FormatData.SectData.SectionHeader.Level0Big) - localYPageStart -= 12; - if (_MyHelper.BottomMessage != null) - { - _MyHelper.DrawBottomMessage(cb); - localYPageStart += 12; - myParagraph.YBottomMost += 24; // two lines. - } - float tmplocal = localYPageStart; - _NoBreakYOffset = myParagraph.YBottomMost; - float yOffset = localYPageStart - yTopMargin; - _NoBreakYOffset -= yOffset; - yPageStart = localYPageStart; - Volian.Base.Library.DebugText.WriteLine("NOBREAK:{0},'{1}','{2}','{3}','{4}','{5}'", section.ItemID, tmplocal, yTopMargin, localYPageStart, _NoBreakYOffset, myParagraph.YBottomMost); - } - OnStatusChanged("StepSection converted to PDF " + section.ShortPath, PromsPrinterStatusType.BuildStep); - //pt.Description = "End"; - ProfileTimer.Pop(profileDepth); - } - - private void GenerateSuppInfoPdf(vlnParagraph vlnParagraph, float yTopMargin, float yBottomMargin) - { - ReaderHelper savMyReaderHelper = MyReaderHelper; - PdfContentByte savMyContentByte = MyContentByte; - VlnSvgPageHelper savMyHelper = _MyHelper; - if (SupInfoPdfPage == null) SupInfoPdfPage = new Dictionary(); - else SupInfoPdfPage.Clear(); - string SupInfoPdfName = Volian.Base.Library.VlnSettings.TemporaryFolder + @"\SupInfo" + vlnParagraph.MyItemInfo.ItemID.ToString() + @".pdf"; - PdfContentByte cb = OpenDoc(SupInfoPdfName, PageSize.LETTER); - if (cb == null) return; - VlnSvgPageHelper myPageHealper = new VlnSvgPageHelper(vlnParagraph.MyItemInfo as SectionInfo, this, null, 0); - cb.PdfWriter.PageEvent = myPageHealper; - myPageHealper.AllowAllWatermarks = AllowAllWatermarks; - myPageHealper.MyPdfWriter = cb.PdfWriter; - myPageHealper.CreatingFoldoutPage = false; - myPageHealper.CreatingSupInfoPage = true; - myPageHealper.MyPdfContentByte = cb; - myPageHealper.ChangeBarDefinition = MyChangeBarDefinition; - float yPageStart = yTopMargin; - vlnParagraph._yPageStartForSupInfo = yTopMargin; - vlnParagraph.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - try - { - cb.PdfDocument.Close(); - cb = null; - } - catch (Exception ex) - { - Console.WriteLine("{0} - {1}", ex.GetType().Name, ex.Message); - } - _MyHelper = savMyHelper; - MyContentByte = savMyContentByte; - MyReaderHelper = savMyReaderHelper; - } - public void DoSupInfoPage(PdfContentByte cb, string str, PdfLayer textLayer, VlnSvgPageHelper myPageHelper, int itemid, bool insertBlankPages) - { - // see if the ID is in the facing page pdf - if so, get the page: - if (SupInfoPdfPage == null || SupInfoPdfPage.Count < 1) return; - int getpage = 0; - if (SupInfoPdfPage.ContainsKey(itemid)) getpage = SupInfoPdfPage[itemid]; - if (getpage < 0) - { - myPageHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - NewPage(); - return; - } - PdfImportedPage sipage = null; - try - { - string SupInfoPdfName = Volian.Base.Library.VlnSettings.TemporaryFolder + @"\SupInfo" + myPageHelper.MySection.ItemID.ToString() + @".pdf"; - PdfReader pdfreader = new PdfReader(SupInfoPdfName); - sipage = cb.PdfWriter.GetImportedPage(pdfreader, getpage+1); - AddImportedPageToLayer(cb.PdfWriter.DirectContent, textLayer, sipage, 0, 0); - DoingFacingPage = true; - myPageHelper.ResetSvg(); - NewPage(); - DoingFacingPage = false; - myPageHelper.ResetSvg(); - pdfreader.Close(); - } - catch (Exception ex) - { - Console.WriteLine(ex); - } - } - public void DoFoldoutPage(PdfContentByte cb, string str, PdfLayer textLayer, VlnSvgPageHelper myPageHelper, int foldoutindx, bool insertBlankPages) - { - if (_MyFoldoutSection == null || _MyFoldoutSection.Count==0) return; - - // if the very first page to be output is a 'foldout', treat this as a special case, since - // if duplex printing is on, the foldout should always be on the left side, i.e. or behind - // the document text. The option PROMS provides is to either: - // 1) Skip doing the foldout before the first page, if the 'InsertBlankPages' isn't set, by not checking - // the checkbox on the print dialog. - // 2) Insert a blank page as the first page, if the 'InsertBlankPages' is set. - if (!myPageHelper.PrintedAPage && !insertBlankPages) return; - if (!myPageHelper.PrintedAPage) - { - // only insert a blank page if this is the very first page printed & section has a foldout - // and the checkbox on the print dialog to add blank pages is checked. This will put out a blank page as - // as the first page so that duplex printing is correct for this condition. - myPageHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - NewPage(); - } - - SectionInfo saveSect = myPageHelper.MySection; - myPageHelper.MySection = _MyFoldoutSection[foldoutindx]; - myPageHelper.OnFoldoutPage = true; - if (_MyFoldoutReader != null) - { - bool doimport2 = true; - PdfImportedPage fgPage = null; - try - { // read saved foldout page - fgPage = cb.PdfWriter.GetImportedPage(_MyFoldoutReader[foldoutindx],1); - } - catch (Exception ex) - { - Console.WriteLine(ex); - doimport2 = false; - } - if (doimport2) - {// put the saved foldout page into the PDF - AddImportedPageToLayer(cb.PdfWriter.DirectContent, textLayer, fgPage, 0, 0); - foreach (iTextSharp.text.pdf.PdfAnnotation.PdfImportedLink il in _MyFoldoutReader[foldoutindx].GetLinks(1)) - { - if(!il.IsInternal() ) - cb.PdfWriter.AddAnnotation(il.CreateAnnotation(cb.PdfWriter)); - } - - if (DebugPagination.IsOpen) DebugPagination.WriteLine("{0:D6},'{1}',{2}", - myPageHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, "Foldout", 1); - } - } - //_MyLog.InfoFormat("DoFoldoutPage {0}", cb.PdfWriter.CurrentPageNumber); - //PrintTextMessage(cb, "Foldout for: " + str, textLayer); - NewPage();// Temporary for foldout/16bit-32bit page alignment - //_MyLog.InfoFormat("NewPage 8 {0}", cb.PdfWriter.CurrentPageNumber); - myPageHelper.MySection = saveSect; - myPageHelper.OnFoldoutPage = false; - } - public static byte[] WatermarkPDF(byte[] buffer, string watermark) - { - PdfReader reader = new PdfReader(buffer); - MemoryStream ms = new MemoryStream(); - PdfStamper stamper = new PdfStamper(reader, ms); - PdfLayer layer = new PdfLayer("Watermark", stamper.Writer); - layer.SetPrint("Print", true); - for (int i = 1; i <= reader.NumberOfPages; i++) - { - PdfContentByte cb = stamper.GetUnderContent(i); - cb.SaveState(); - cb.BeginLayer(layer); - SvgWatermark wm = new SvgWatermark(cb, watermark, System.Drawing.Color.Blue, .15F); - //wm.SetSquareDotPattern(.7F); - //wm.SetTextPattern(8, 3); - //wm.SetTextPattern2(8); - //wm.SetHashPattern(1, 6); - //wm.SetDotPattern(5, 2); - wm.Draw(); - cb.EndLayer(); - cb.RestoreState(); - } - stamper.Close(); - /* - cb.SaveState(); - if (_WatermarkLayer != null) cb.BeginLayer(_WatermarkLayer); - SvgWatermark myWatermark = new SvgWatermark(cb, Watermark, System.Drawing.Color.Blue, .15F); - myWatermark.SetSquareDotPattern(.7F); - myWatermark.Draw(); - if (_WatermarkLayer != null) cb.EndLayer(); - cb.RestoreState(); - */ - return ms.ToArray(); - } - } - public class ReaderHelper - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private Dictionary dicPage = new Dictionary(); - private Dictionary dicSize = new Dictionary(); - private PromsPrinter _MyPromsPrinter; - public PromsPrinter MyPromsPrinter - { - get { return _MyPromsPrinter; } - set { _MyPromsPrinter = value; } - } - private SectionInfo _MySectionInfo; - public SectionInfo MySectionInfo - { - get { return _MySectionInfo; } - set - { - if (_MySectionInfo == null || value.ItemID != _MySectionInfo.ItemID) - { - _MySectionInfo = value; - //MyPdfFile = _MyPromsPrinter.BuildMSWordPDF(MySectionInfo); - //try - //{ - // MyReader = MyPdfFile != null ? new PdfReader(MyPdfFile) : null; - // string key = string.Empty; - // for (int i = 1; i <= MyReader.NumberOfPages; i++) - // { - // key = string.Format("{0}.{1}", MySectionInfo.ItemID, i); - // dicPage.Add(key, MyPromsPrinter.MyContentByte.PdfWriter.GetImportedPage(MyReader, i)); - // dicSize.Add(key, MyReader.GetPageSizeWithRotation(i)); - // } - //} - //catch (Exception ex) - //{ - // MyReader = null; - //} - } - } - } - private string _MyPdfFile; - public string MyPdfFile - { - get { return _MyPdfFile; } - set { _MyPdfFile = value; } - } - private int _DocID; - public int DocID - { - get { return _DocID; } - set { _DocID = value; } - } - private PdfReader _MyReader; - public PdfReader MyReader - { - get { return _MyReader; } - set { _MyReader = value; } - } - public ReaderHelper(PromsPrinter pp) - { - MyPromsPrinter = pp; - //this.LoadTree(pp.MyItem); - } - public PdfImportedPage GetPage(SectionInfo sectInfo, int pageNumber) - { - string key = string.Format("{0}.{1}", sectInfo.ItemID, pageNumber); - return dicPage[key]; - } - public iTextSharp.text.Rectangle GetSize(SectionInfo sectInfo, int pageNumber) - { - string key = string.Format("{0}.{1}", sectInfo.ItemID, pageNumber); - if(dicSize.ContainsKey(key)) - return dicSize[key]; - return PageSize.LETTER; - } - public void LoadTree(ItemInfo ii) - { - dicPage = new Dictionary(); - dicSize = new Dictionary(); - LoadSectionTree(ii); - } - private void LoadSectionTree(ItemInfo ii) - { - foreach (SectionInfo si in ii.Sections) - { - if (si.IsStepSection) - { - if(si.Sections != null)LoadSectionTree(si); - } - else - { - MyPdfFile = _MyPromsPrinter.BuildMSWordPDF(si); - if (MyPdfFile != null) - { - try - { - MyReader = MyPdfFile != null ? new PdfReader(MyPdfFile) : null; - string key = string.Empty; - for (int i = 1; i <= MyReader.NumberOfPages; i++) - { - key = string.Format("{0}.{1}", si.ItemID, i); - dicPage.Add(key, MyPromsPrinter.MyContentByte.PdfWriter.GetImportedPage(MyReader, i)); - iTextSharp.text.Rectangle rectgl = MyReader.GetPageSizeWithRotation(i); - // If the word page is set to landscape, but the the document sytle is not landscape, then flip the height and width (put back to portrait) - if (!((si.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_WordContentLandscaped) == E_DocStructStyle.DSS_WordContentLandscaped) && rectgl.Height < rectgl.Width) - rectgl = new iTextSharp.text.Rectangle(rectgl.Height, rectgl.Width); - dicSize.Add(key, rectgl); - //dicSize.Add(key, MyReader.GetPageSizeWithRotation(i)); - } - } - catch (Exception ex) - { - if (_MyPromsPrinter.DocReplace == null) - MessageBox.Show(ex.Message, ex.GetType().FullName, MessageBoxButtons.OK, MessageBoxIcon.Error); - _MyLog.Warn(string.Format("Error in LoadSectionTree [{0}],{1}.{2}", si.ItemID, si.DisplayNumber, si.DisplayText), ex); - } - } - } - } - } - } - //public class PrintTimer - //{ - // private DateTime _StartTime = DateTime.Now; - - // public DateTime StartTime - // { - // get { return _StartTime; } - // set { _StartTime = value; } - // } - // private string _Description = "Start"; - // public string Description - // { - // get { return _Description; } - // set - // { - // DateTime dtNext = DateTime.Now; - // //Console.WriteLine("{0},'{1}'", TimeSpan.FromTicks(dtNext.Ticks - LastTime.Ticks).TotalSeconds, Description); - // _Description = value; - // _LastTime = dtNext; - // } - // } - // private DateTime _LastTime = DateTime.Now; - // public DateTime LastTime - // { - // get { return _LastTime; } - // set { _LastTime = value; } - // } - //} -} diff --git a/PROMS/Volian.Print.Library/Properties/licenses.licx.bak b/PROMS/Volian.Print.Library/Properties/licenses.licx.bak deleted file mode 100644 index 8b36e5f9..00000000 --- a/PROMS/Volian.Print.Library/Properties/licenses.licx.bak +++ /dev/null @@ -1 +0,0 @@ -C1.Win.C1FlexGrid.C1FlexGrid, C1.Win.C1FlexGrid.2, Version=2.0.20162.188, Culture=neutral, PublicKeyToken=79882d576c6336da diff --git a/PROMS/Volian.Print.Library/VlnSvgPageHelper.cs.bak b/PROMS/Volian.Print.Library/VlnSvgPageHelper.cs.bak deleted file mode 100644 index a7daaf2c..00000000 --- a/PROMS/Volian.Print.Library/VlnSvgPageHelper.cs.bak +++ /dev/null @@ -1,1899 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using iTextSharp.text; -using iTextSharp.text.pdf; -using iTextSharp.text.factories; -using Volian.Svg.Library; -using System.Text.RegularExpressions; -using System.Xml; -using VEPROMS.CSLA.Library; - -namespace Volian.Print.Library -{ - public partial class VlnSvgPageHelper:SvgPageHelper - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private PageBookmarks _PageBookmarks = new PageBookmarks(); - public PageBookmarks PageBookmarks - { - get { return _PageBookmarks; } - set { _PageBookmarks = value; } - } - private PdfOutline _MyPdfOutline = null; - public PdfOutline MyPdfOutline - { - get { return _MyPdfOutline; } - set { _MyPdfOutline = value; } - } - private ChkListBoxesHelper _CheckListBoxes = null; - private ChkListBoxesHelper CheckListBoxes - { - get { return _CheckListBoxes; } - set { _CheckListBoxes = value; } - } - - private vlnText _TopMessage; - public vlnText TopMessage - { - get { return _TopMessage; } - set { _TopMessage = value; } - } - private vlnText _BottomMessage; - public vlnText BottomMessage - { - get { return _BottomMessage; } - set { _BottomMessage = value; } - } - Dictionary _MyParagraphs = new Dictionary(); - public Dictionary MyParagraphs - { - get { return _MyParagraphs; } - set { _MyParagraphs = value; } - } - float _YMultiplier = 1; - public float YMultiplier - { - get { return _YMultiplier; } - set { _YMultiplier = value; } - } - private PdfWriter _MyPdfWriter; - public PdfWriter MyPdfWriter - { - get { return _MyPdfWriter; } - set - { - MyPageCounts = new PageCounts(); - MyTOCPageCounts = new PageCounts(); - MyTOCPageNums = new Dictionary(); - _MyPdfWriter = value; - } - } - private PdfContentByte _MyPdfContentByte; - public PdfContentByte MyPdfContentByte - { - get { return _MyPdfContentByte; } - set { _MyPdfContentByte = value; } - } - private int _FinalMessageSectionID; - public int FinalMessageSectionID - { - get { return _FinalMessageSectionID; } - set { _FinalMessageSectionID = value; } - } - private bool _DidFirstPageDocStyle = false; - public bool DidFirstPageDocStyle - { - get { return _DidFirstPageDocStyle; } - set { _DidFirstPageDocStyle = value; } - } - public override void OnCloseDocument(PdfWriter writer, iTextSharp.text.Document document) - { - AddBookmarks(writer); - MyPageCounts.DrawTemplates(); - } - private bool _OnBlankPage = false; - public bool OnBlankPage // used while inserting a blank page when printing a procedure with duplex foldouts - { - get { return _OnBlankPage; } - set { _OnBlankPage = value; } - } - // when false, no page has been printed yet (for determining whether a blank page before print - // needs done if first section has foldouts) - private bool _PrintedAPage = false; - public bool PrintedAPage - { - get { return _PrintedAPage; } - set { _PrintedAPage = value; } - } - - // the following two variables are used to handle the 'PSOnlyFirst' page list Justify flag. - // PSOnlyFirst signals that the pagelist token should only be processed for the first page of - // the section. It gets set when this token is processed, so that any remaining pages will - // not get the token. It's value is derived by taking the different the location of this token - // & the location of the previous token, so that this amount can be used to move the text up - // on the 'not first' pages of the section. It's used as an adjustment on the topmargin. - // This is used in FNP formats. - private int _sectLevelNumTtlDiff = 0; - private int _PrintedSectionPage = 0; - public int PrintedSectionPage - { - get { return _PrintedSectionPage; } - set { _PrintedSectionPage = value; } - } - - private bool _AddBlankPagesForDuplexPrinting = false; - public bool AddBlankPagesForDuplexPrinting // Tells us if a the option to add a blank page is turn on (for procedures with duplex foldouts) - { - get { return _AddBlankPagesForDuplexPrinting; } - set { _AddBlankPagesForDuplexPrinting = value; } - } - public override void OnEndPage(PdfWriter writer, iTextSharp.text.Document document) - { - if (OnBlankPage) - { - OnBlankPage = false; - } - else if (!OnFoldoutPage) - { - if (DidFirstPageDocStyle) ResetDocStyleAndValues(); - AddBookmarks(writer); - MyPageCounts.CanIncrement = true; - base.OnEndPage(writer, document); - DrawChangeBars(writer.DirectContent); - DrawMessages(writer.DirectContent); - if (!CreatingFoldoutPage) - DrawRuler(writer.DirectContent); - } - else - { - E_NumberingSequence numseq = MySection.MyDocStyle.NumberingSequence??0; - // if a foldout is only printing within its section, don't do increments on pagecounts: - if (numseq==E_NumberingSequence.WithinEachSection) - MyPageCounts.CanIncrement = false; - else - MyPageCounts.CanIncrement = true; - base.OnEndPage(writer, document); - if (!CreatingFoldoutPage) - DrawRuler(writer.DirectContent); - } - if (MySection.MyDocStyle.StructureStyle.Style==null || (MySection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DontCountInTabOfCont) == 0) - CurrentTOCPageNumber++; - if (MySection.MyDocStyle.CenterLineX != null && MySection.ColumnMode > 0) - DrawCenterLine(writer.DirectContent, MySection.MyDocStyle.Layout.LeftMargin + MySection.MyDocStyle.CenterLineX ?? 0, MySection.MyDocStyle.CenterLineYTop ?? 0, MySection.MyDocStyle.CenterLineYBottom ?? 0); - PageListTopCheckOffHeader = null; - PageListLastCheckOffHeader = null; - YMultiplier = 1; - PrintedAPage = true; - } - private Gaps _MyGaps; - public Gaps MyGaps - { - get - { - if (_MyGaps == null) - _MyGaps = new Gaps(); - return _MyGaps; - } - } - public void AddGap(float top, float bottom, float left, float right) - { - float center = MySection.MyDocStyle.Layout.LeftMargin + MySection.MyDocStyle.CenterLineX ?? 0; - if(center == 0) return; - if (center > right || center < left) return; - MyGaps.Add(top, bottom); - } - private void DrawCenterLine(PdfContentByte cb, float xLoc, float yTop, float yBottom) - { - cb.SaveState(); - if (PageListLayer != null) cb.BeginLayer(PageListLayer); - cb.SetLineWidth(.95f); - cb.SetColorStroke(new Color(PrintOverride.SvgColor)); - cb.MoveTo(xLoc, yTop); - if (_MyGaps != null) - { - foreach (Gap gap in MyGaps) - { - cb.LineTo(xLoc, gap.YTop); - cb.MoveTo(xLoc, gap.YTop - (gap.YTop - gap.YBottom) * YMultiplier); - } - _MyGaps = null; - } - cb.LineTo(xLoc, yBottom); - cb.Stroke(); - if (PageListLayer != null) cb.EndLayer(); - cb.RestoreState(); - } - - private bool ResetDocStyleAndValues() - { - // if this document style has another style that is for pages other than first, we need to - // reset the document style off of this section AND reset docstyle values used - // AND reset the 'svg' data. - bool forceLoadSvg = false; - if ((MySection.MyDocStyle.StructureStyle.Where & E_DocStyleUse.UseOnFirstPage) > 0) - { - //Console.WriteLine("{0} ResetDocStyleAndValues", MySection.MyDocStyle.Name); - ItemInfo ii = (ItemInfo) MySection; - int indx = (int)MySection.MyDocStyle.IndexOtherThanFirstPage; - foreach (DocStyle ds in ii.ActiveFormat.PlantFormat.DocStyles.DocStyleList) - { - if (ds.Index == indx) - { - MySection.MyDocStyle = ds; - forceLoadSvg = true; - break; - } - } - } - return forceLoadSvg; - } - public void ResetSvg() - { - Volian.Svg.Library.Svg sectSvg = BuildSvg(_MySection, true); - if (sectSvg != null) MySvg = sectSvg; - } - private float? _YTopMargin = null; - public float? YTopMargin - { - get { return _YTopMargin; } - set { _YTopMargin = value; } - } - private void DrawRuler(PdfContentByte cb) - { - if (DebugLayer == null) return; - Layout layout = MySection.MyDocStyle.Layout; - cb.SaveState(); - cb.BeginLayer(DebugLayer); - float x = (cb.PdfWriter.PageSize.Left + cb.PdfWriter.PageSize.Right) / 2; - cb.SetLineWidth(.1F); - cb.SetColorStroke(new Color(System.Drawing.Color.CornflowerBlue)); - float yTop = (float)(cb.PdfWriter.PageSize.Height - layout.TopMargin); - if(YTopMargin != null) yTop = (float)YTopMargin; - float yBottom = (float)(cb.PdfWriter.PageSize.Height - (layout.TopMargin + layout.PageLength)); - //Console.WriteLine("'{0}',{1},{2}", MySection.MyDocStyle.Name, yTop, yBottom); - cb.MoveTo(x, yTop); - cb.LineTo(x, yBottom); - int i = 0; - for (float y = yTop; y >= yBottom; y -= 12) - { - float w = 10; - if (i % 10 == 0) w = 30; - else if (i % 5 == 0) w = 20; - cb.SetLineWidth(w / 30); - i++; - cb.MoveTo(x - w, y); - cb.LineTo(x, y); - cb.Stroke(); - } - i = 0; - for (float y = yTop; y >= yBottom; y -= 10.1F) - { - float w = 10; - if (i % 10 == 0) w = 30; - else if (i % 5 == 0) w = 20; - cb.SetLineWidth(w / 30); - i++; - cb.MoveTo(x + w, y-1); - cb.LineTo(x, y-1); - cb.Stroke(); - } - cb.SetLineWidth(.1F); - cb.Rectangle((float)layout.LeftMargin, yTop, (float)layout.PageWidth - (float)layout.LeftMargin, yBottom - yTop); - float yRuler = 612; - cb.MoveTo(0, yRuler); - cb.LineTo(612, yRuler); - for (float x1 = 0; x1 < 612; x1 += 6) // tic marks every 1/12 inch - { - if (x1 % 72 == 0) - { - cb.MoveTo(x1, yRuler-20); - cb.LineTo(x1, yRuler+20); - } - else if (x1 % 36 == 0) - { - cb.MoveTo(x1, yRuler-10); - cb.LineTo(x1, yRuler+10); - } - else - { - cb.MoveTo(x1, yRuler-5); - cb.LineTo(x1, yRuler); - } - } - for (float x1 = 0; x1 < 612; x1 += 7.2f) // tic marks every 1/10 inch - { - if (x1 % 72 == 0) - { - cb.MoveTo(x1, yRuler); - cb.LineTo(x1, yRuler + 20); - } - else if (x1 % 36 == 0) - { - cb.MoveTo(x1, yRuler); - cb.LineTo(x1, yRuler + 10); - } - else - { - cb.MoveTo(x1, yRuler); - cb.LineTo(x1, yRuler + 5); - } - } - //cb.MoveTo(122.4F, 0); //WCN2 HLS - //cb.LineTo(122.4F, cb.PdfWriter.PageSize.Height); - //cb.MoveTo(78, 0); // HLP HLS - //cb.LineTo(78, cb.PdfWriter.PageSize.Height); - //cb.MoveTo(441, 0); // HLP cover page date - //cb.LineTo(441, cb.PdfWriter.PageSize.Height); - //cb.MoveTo(71.4F, 0); // WCN Purpose page, Revision: {REV} - //cb.LineTo(71.4F, cb.PdfWriter.PageSize.Height); - cb.Stroke(); - cb.EndLayer(); - cb.RestoreState(); - } - private void AddBookmarks(PdfWriter writer) - { - foreach (PageBookmark pb in PageBookmarks) - { - if (!pb.MyItemInfo.IsSection && MyPdfOutline != null) - new PdfOutline(MyPdfOutline, pb.PdfDestination, pb.Title, false); - else - { - PdfDestination dest = new PdfDestination(PdfDestination.FIT); - MyPdfOutline = new PdfOutline(writer.DirectContent.RootOutline, dest, pb.Title, false); - } - } - PageBookmarks.Clear(); - } - private void DrawMessages(PdfContentByte cb) - { - float tmp = 0; - if (TopMessage != null) - { - TopMessage.ToPdf(cb, 0, ref tmp, ref tmp); - TopMessage = null; // Only output it once. - } - if (BottomMessage != null) - { - BottomMessage.ToPdf(cb, 0, ref tmp, ref tmp); - BottomMessage = null; // Only output it once. - } - } - public void DrawBottomMessage(PdfContentByte cb) - { - float tmp = 0; - if (BottomMessage != null) - { - BottomMessage.ToPdf(cb, 0, ref tmp, ref tmp); - BottomMessage = null; // Only output it once. - } - } - private void DrawChangeBars(PdfContentByte cb) - { - float tmp = 0; - foreach (vlnChangeBar vcb in MyChangeBars) - { - // TODO: Pass in zeroes because topdf is inherited. - vcb.ToPdf(cb, 0, ref tmp, ref tmp); - } - _MyChangeBars = new List(); - } - #region SectionLevelData - private ChangeBarDefinition _ChangeBarDefinition; - public ChangeBarDefinition ChangeBarDefinition - { - get { return _ChangeBarDefinition; } - set { _ChangeBarDefinition = value; } - } - #endregion - private PdfLayer _TextLayer; - public PdfLayer TextLayer - { - get { return _TextLayer; } - set { _TextLayer = value; } - } - private PdfLayer _DebugLayer; - public PdfLayer DebugLayer - { - get { return _DebugLayer; } - set { _DebugLayer = value; } - } - private VEPROMS.CSLA.Library.SectionInfo _MySection; - public VEPROMS.CSLA.Library.SectionInfo MySection - { - get { return _MySection; } - set - { - _MySection = value; - MySectionTitle = ((_MySection.DisplayNumber ?? "")=="" ? "" : _MySection.DisplayNumber + " - ") + _MySection.DisplayText; - bool forceLoadSvg = false; - if (DidFirstPageDocStyle) - forceLoadSvg = ResetDocStyleAndValues(); // this method also gets the SVG (the 'else' part of this) - Volian.Svg.Library.Svg sectSvg = BuildSvg(_MySection, forceLoadSvg); - if (sectSvg != null) MySvg = sectSvg; - _YTopMargin = null; - } - } - private string _MySectionTitle; - public string MySectionTitle - { - get { return _MySectionTitle; } - set { _MySectionTitle = value; } - } - private int _MaxRNO; - public int MaxRNO - { - get - { - return _MySection.ColumnMode; - } - } - private int _CurrentPageOf = 0; - public int CurrentPageOf - { - get { return _CurrentPageOf; } - set { _CurrentPageOf = value; } - } - private string _Rev = string.Empty; - public string Rev - { - get { return _Rev; } - set { _Rev = value; } - } - private string _RevDate = string.Empty; - public string RevDate - { - get { return _RevDate; } - set { _RevDate = value; } - } - private bool _DoFloatingFoldout = true; - public bool DoFloatingFoldout - { - get { return _DoFloatingFoldout; } - set { _DoFloatingFoldout = value; } - } - - private List _MyChangeBars = new List(); - public List MyChangeBars - { - get { return _MyChangeBars; } - set { _MyChangeBars = value; } - } - public void AddChangeBar(vlnChangeBar vcb, string cbmess) - { - if (vcb == null) return; - vlnChangeBar prevCB = null; - foreach (vlnChangeBar cb in MyChangeBars) - { - // only look at changebars in same column - if (cb.XOffset == vcb.XOffset) - { - // if the two change bars end at same location, set prevCB which will - // adjust the length (top position) of the change bar. This condition - // also flags that the change bar texts overlap. - if (cb.YChangeBarBottom == vcb.YChangeBarBottom) prevCB = cb; - - // continuous case, if changes bars overlap, adjust size and don't add new one to - // the MyChangeBars list. - if (MySection.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ContinuousChangeBars) - { - if (OverlapOrSpan(cb, vcb)) - { - if (prevCB == null) prevCB = cb; - else if (prevCB.YChangeBarBottom > cb.YChangeBarBottom) prevCB = cb; - } - } - } - } - // if this and the prevCB overlap, adjust yoffset/height/ybottom in the prevCB so that both change bars are - // included in this Dictionary item. A new vlnChangeBar is not added to the MyChangeBars list, the current - // one that overlaps with the new is adjusted. - if (prevCB != null) - { - // Bottom for both change bars is same, adjust top (YOffset) and height. - if (prevCB.YChangeBarBottom == vcb.YChangeBarBottom) - { - prevCB.YOffset = Math.Max(prevCB.YOffset, vcb.YOffset); - float yChangeBarBottomExtend = prevCB.YChangeBarBottomExtend; - prevCB.Height = Math.Max(prevCB.Height, vcb.Height); - prevCB.YExtendLine = prevCB.YChangeBarBottom - Math.Min(yChangeBarBottomExtend, vcb.YChangeBarBottomExtend); //Math.Max(prevCB.YExtendLine, vcb.YExtendLine); - // if a change bar message at this ychangebarbottom exists, see which message is used - if (cbmess != null && prevCB.Messages.ContainsKey(prevCB.YChangeBarBottom)) UpdateCbMessage(cbmess, prevCB, vcb.XOffset); - return; - } - // Bottom locations are not the same, but another change bar is not added, i.e. the - // length of the line is adjusted. - prevCB.YOffset = Math.Max(prevCB.YOffset, vcb.YOffset); - float yChangeBarBottomExtend1 = prevCB.YChangeBarBottomExtend; - prevCB.YChangeBarBottom = Math.Min(prevCB.YChangeBarBottom, vcb.YChangeBarBottom); - prevCB.YExtendLine = prevCB.YChangeBarBottom - Math.Min(yChangeBarBottomExtend1, vcb.YChangeBarBottomExtend); //Math.Max(prevCB.YExtendLine, vcb.YExtendLine); - // Two messages at this location, determine which one to use - if (cbmess != null && prevCB.Messages.ContainsKey(prevCB.YChangeBarBottom)) UpdateCbMessage(cbmess, prevCB, vcb.XOffset); - - // no message at this location, just add it. - else if (cbmess != null) - prevCB.Messages.Add(vcb.YChangeBarBottom, new vlnChangeBarMessage(vcb.MyParent.XOffset, cbmess)); - return; - } - - // There was no overlap, add a message if it exists, and then add the change bar to the MyChangeBars list. - if (cbmess != null) vcb.Messages.Add(vcb.YChangeBarBottom, new vlnChangeBarMessage(vcb.MyParent.XOffset, cbmess)); - MyChangeBars.Add(vcb); - } - - private static void UpdateCbMessage(string cbmess, vlnChangeBar prevCB, float xoff) - { - // If there are two messages at the same location, for example an AER change bar & and RNO - // change bar, and the messages have different text, see which change bar message should be - // added, i.e. use the one in 'rno', the greatest x value. - vlnChangeBarMessage tmp = prevCB.Messages[prevCB.YChangeBarBottom]; - if (cbmess != tmp.Message) - { - if (xoff > tmp.ParentX) - { - prevCB.Messages.Remove(prevCB.YChangeBarBottom); - prevCB.Messages.Add(prevCB.YChangeBarBottom, new vlnChangeBarMessage(xoff, cbmess)); - } - } - } - private bool OverlapOrSpan(vlnChangeBar cb, vlnChangeBar vcb) - { - if (cb.MyParent.MyItemInfo.MyHLS.ItemID != vcb.MyParent.MyItemInfo.MyHLS.ItemID) return false; - // cb.Yoffset is within range of vcb: - if (cb.YOffset <= vcb.YOffset && - cb.YOffset >= (vcb.YChangeBarBottomExtend - vlnPrintObject.SixLinesPerInch)) return true; - // cb.YChangeBarBottom is within range of vcb: - if ((cb.YChangeBarBottomExtend-vlnPrintObject.SixLinesPerInch) <= vcb.YOffset && - cb.YChangeBarBottomExtend >= (vcb.YChangeBarBottomExtend - vlnPrintObject.SixLinesPerInch)) return true; - // vcb.Yoffset is within range of cb: - if (vcb.YOffset <= cb.YOffset && - vcb.YOffset >= (cb.YChangeBarBottomExtend - vlnPrintObject.SixLinesPerInch)) return true; - // vcb.YChangeBarBottom is within range of cb: - if ((vcb.YChangeBarBottomExtend - vlnPrintObject.SixLinesPerInch) <= cb.YOffset && - vcb.YChangeBarBottomExtend >= (cb.YChangeBarBottomExtend - vlnPrintObject.SixLinesPerInch)) return true; - return false; - } - private PromsPrinter _MyPromsPrinter; - public PromsPrinter MyPromsPrinter - { - get { return _MyPromsPrinter; } - set { _MyPromsPrinter = value; } - } - private int _MyRomanPage = 1; - public VlnSvgPageHelper(VEPROMS.CSLA.Library.SectionInfo mySection, PromsPrinter myPromsPrinter, string hlsText, int hlsItemId) - : base() - { - HLSText = hlsText; - HasHLSTextId = hlsItemId; - MySection = mySection; - MyPromsPrinter = myPromsPrinter; - } - private Volian.Svg.Library.Svg BuildSvg(VEPROMS.CSLA.Library.SectionInfo mySection, bool forceLoad) - { - // if mysection uses continuous pagination, and the previous section uses the same format, - // and the docstyle is set to use on first page only, - // then set section to use the Use On Rest of Pages - //SectionConfig.SectionPagination sPag = SectionConfig.SectionPagination.Separate; - //if (mySection.IsStepSection && mySection.MyPrevious != null && mySection.MyPrevious.IsStepSection) - //{ - // SectionConfig sc = mySection.MyConfig as SectionConfig; - // sPag = sc.Section_Pagination; - // if (sPag == SectionConfig.SectionPagination.Continuous) - // { - // if (MySection.MyDocStyle.StructureStyle.Where == E_DocStyleUse.UseOnFirstPage) - // MySection.DidFirstPageDocStyle = true; - // } - //} - VEPROMS.CSLA.Library.FormatInfo activeFormat = mySection.ActiveFormat; - VEPROMS.CSLA.Library.DocStyle docStyle = mySection.MyDocStyle; - Volian.Svg.Library.Svg mySvg = null; - mySvg = SvgSerializer.StringDeserialize(BuildMyText(activeFormat)); - mySvg.ViewBox.Height = 1100; - mySvg.ViewBox.Width = 850; - mySvg.Height = new SvgMeasurement(11, E_MeasurementUnits.IN); - mySvg.Width = new SvgMeasurement(8.5F, E_MeasurementUnits.IN); - mySvg.LeftMargin = (float)docStyle.Layout.LeftMargin; - mySvg.TopMargin = 9.6F; - VEPROMS.CSLA.Library.PageStyle pageStyle = docStyle.pagestyle; - AddPageListItems(mySvg, pageStyle, mySection, forceLoad); - mySvg.ProcessText += new SvgProcessTextEvent(mySvg_ProcessText); - // if this section had a previous section and this is continuous, don't generate the svg for - // it, we'll use the previous section. The only thing we need to do is to process through the - // pagelist items in case there are some section items, for example the checkoff header needs - // to be processed for each section whether or not it is continuous. - SectionConfig.SectionPagination sPag = SectionConfig.SectionPagination.Separate; - if (mySection.MyContent.Number.ToUpper() != "FOLDOUT" && mySection.IsStepSection && mySection.MyPrevious != null && mySection.MyPrevious.IsStepSection) - { - SectionConfig sc = mySection.MyConfig as SectionConfig; - sPag = sc.Section_Pagination; - } - //if (sPag == SectionConfig.SectionPagination.Continuous && !mySection.DidFirstPageDocStyle) return null; - if (forceLoad) return mySvg; - if (sPag == SectionConfig.SectionPagination.Continuous) return null; - return mySvg; - } - public PageCounts MyPageCounts = null; - public PageCounts MyTOCPageCounts = null; - public Dictionary MyTOCPageNums = null; - private static Regex regexFindToken = new Regex("{[^{}]*}"); - private static Regex regexFindSubToken = new Regex(@"\[[^{}]*\]"); - private string mySvg_ProcessText(object sender, SvgProcessTextArgs args) - { - if (args.MyText == null) return string.Empty; // Needed for empty genmac text (was space in 16bit files) - if (!args.MyText.Contains("{")) - return args.MyText; - /* - * Check if tokens for handling page counts ({PAGE} {OF} etc). if so, do templates. - */ - if (args.MyText.Contains("{DOCCURPAGE}") || args.MyText.Contains("{DOCTOTPAGE}")) - { - string key = "DocCurPage." + MySection.ItemID; - string txt = args.MyText.Replace("{DOCCURPAGE}", "{PAGE}").Replace("{DOCTOTPAGE}", "{OF}"); - MyPdfContentByte.AddTemplate(MyPageCounts.AddToTemplateList(key, MyPdfWriter, txt, args.MySvgText.Font, args.MySvgText.Align, args.MySvgText.FillColor), args.MySvgScale.X(args.MySvgText.X), args.MySvgScale.Y(MyPdfContentByte, args.MySvgText.Y)); - return string.Empty; - } - //if (args.MyText.Contains("{ROMANPAGE}")) - //{ - // //return args.MyText.Replace("{ROMANPAGE}", ItemInfo.RomanNumbering(_MyRomanPage++).ToLower()); - // string key = "RomanPage." + MySection.ItemID; - // string txt = args.MyText; - // MyPdfContentByte.AddTemplate(MyPageCounts.AddToTemplateList(key, MyPdfWriter, txt, args.MySvgText.Font, args.MySvgText.Align, args.MySvgText.FillColor), args.MySvgScale.X(args.MySvgText.X), args.MySvgScale.Y(MyPdfContentByte, args.MySvgText.Y)); - // return string.Empty; - //} - if (args.MyText.Contains("{SECONDARYPAGE}") || args.MyText.Contains("{SECONDARYOF}")) - { - string key = "SecondaryPage." + MySection.ItemID; - string txt = args.MyText.Replace("{SECONDARYPAGE}", "{PAGE}").Replace("{SECONDARYOF}", "{OF}"); - MyPdfContentByte.AddTemplate(MyPageCounts.AddToTemplateList(key, MyPdfWriter, txt, args.MySvgText.Font, args.MySvgText.Align, args.MySvgText.FillColor), args.MySvgScale.X(args.MySvgText.X), args.MySvgScale.Y(MyPdfContentByte, args.MySvgText.Y)); - return string.Empty; - } - string tocKey = "TOC" + MySection.ItemID.ToString(); - if (args.MyText.Contains("{PAGE}") || args.MyText.Contains("{OF}")) - { - - #region numberingseq - /* - public enum E_NumberingSequence : uint - { - NoPageNum = 0, - WithSteps = 1, Add to original steps section page count. - WithinEachDocStyle = 2, - WithinEachSection = 3, - WithinEachDocStyle1 = 4, - GroupedByPagination = 5, - GroupedByLevel = 6, - WithStepsAndSecondaryPageNumber = 7, - WithStepsAndSecondaryPageNumberGroupedByLevel = 8, - Like6_ButDoesntNeedSubsection = 9, - Like6_ButDoesntNeedSubsection1 = 10 - }; - */ - #endregion - // default for the key is to make it NumberingSequence. Then handle - // specific cases. - string key = ((int)MySection.MyDocStyle.NumberingSequence).ToString(); - - E_NumberingSequence numseq = MySection.MyDocStyle.NumberingSequence??0; - switch (numseq) - { - case E_NumberingSequence.WithSteps: // Number with 'originalstepsection' - ProcedureInfo pc = MySection.MyProcedure; - int sectid = 0; - foreach (SectionInfo si in pc.Sections) - { - SectionConfig sc = si.MyConfig as SectionConfig; - if (sc.Section_OriginalSteps == "Y") - { - sectid = si.ItemID; - break; - } - } - if (sectid != 0) key = (int)E_NumberingSequence.WithinEachSection + "." + sectid; - break; - case E_NumberingSequence.WithinEachDocStyle: - key = key + "." + MySection.ActiveFormat.FormatID + "." + MySection.MyDocStyle.Index; - break; - case E_NumberingSequence.WithinEachSection: - key = key + "." + MySection.ItemID; - break; - case E_NumberingSequence.Like6_ButDoesntNeedSubsection: - if (MySection.MyParent.IsSection) - key = key + "." + MySection.MyParent.ItemID; - else - key = key + "." + MySection.ItemID; - break; - case E_NumberingSequence.WithStepsAndSecondaryPageNumber: - // For this one, we'll do two keys and templates. One will go with the main steps - // section and one will be for this secondary section. - ProcedureInfo pc1 = MySection.MyProcedure; - int psectid = 0; - foreach (SectionInfo si in pc1.Sections) - { - SectionConfig sc = si.MyConfig as SectionConfig; - if (sc.Section_OriginalSteps == "Y") - { - psectid = si.ItemID; - break; - } - } - if (psectid != 0) - { - key = (int)E_NumberingSequence.WithinEachSection + "." + psectid; - PdfTemplate tmp1 = MyPageCounts.AddToTemplateList(key, MyPdfWriter, args.MyText, args.MySvgText.Font, args.MySvgText.Align, args.MySvgText.FillColor); - } - break; - } - PdfTemplate tmp = MyPageCounts.AddToTemplateList(key, MyPdfWriter, args.MyText, args.MySvgText.Font, args.MySvgText.Align, args.MySvgText.FillColor); - // Proms page numbering designed requires a "{PAGE}" token to increment the page counter. So the easiest way - // to do that was to add a "{PAGE}" token to every page that is flagged as not to be printed. - if (!args.MyText.StartsWith("Non-printing ")) MyPdfContentByte.AddTemplate(tmp, args.MySvgScale.X(args.MySvgText.X), args.MySvgScale.Y(MyPdfContentByte, args.MySvgText.Y)); - return string.Empty; - } - if (args.MyText.Contains("{FINALPAGE}")) - { - if (MySection.ItemID == FinalMessageSectionID) - { - string key = "FinalPage"; - MyPdfContentByte.AddTemplate(MyPageCounts.AddToTemplateList(key, MyPdfWriter, args.MyText, MySection.MyDocStyle.Final.Message, args.MySvgText.Font, args.MySvgText.Align, args.MySvgText.FillColor), args.MySvgScale.X(args.MySvgText.X), args.MySvgScale.Y(MyPdfContentByte, args.MySvgText.Y)); - } - return string.Empty; - } - return regexFindToken.Replace(args.MyText, new MatchEvaluator(ReplacePageListToken)); - } - private string BuildMyText(VEPROMS.CSLA.Library.FormatInfo activeFormat) - { - string sGenMac = activeFormat.GenMac; - if (sGenMac == null || sGenMac == "") - { - // If subformat and does not have its own genmac, find an inherited genmac. - FormatInfo tmpf = FormatInfo.Get(activeFormat.ParentID); - while (tmpf.FormatID!=1 && (sGenMac==null||sGenMac=="")) - { - sGenMac = tmpf.GenMac; - tmpf = FormatInfo.Get(tmpf.ParentID); - } - if (sGenMac == null || sGenMac == "") - sGenMac = "";// return ""; - } - if (!sGenMac.Contains("xmlns")) - sGenMac = sGenMac.Replace(".StringSerialize(mySvg); - XmlDocument xDocPrintout = new XmlDocument(); - xDocPrintout.LoadXml(str); - XmlNode xn = xDocPrintout.DocumentElement.ChildNodes[0]; - xn.AppendChild(xDocPrintout.ImportNode(xDocGenMac.DocumentElement, true)); - return xDocPrintout.OuterXml; - } - private string FirstAndLast(string token) - { - // strip the curly braces and return the first and last character - // For example Header1 becomes H1 and Box2 becomes B2 - return token.Substring(1, 1) + token.Substring(token.Length - 2, 1); - } - private static Regex regexJustTokens = new Regex(@"^{([^{}]*}{)*[^{}]*}$"); - - // The following variables are used to keep track of whether a check off header should be printed - // if the {CHKOFFHEADING} pagelist item is found. PageListTopCheckOffHeader is the text that - // should be printed at the top of the page. PageListLastCheckOffHeader is the last header that was - // printed (if a header is on the page, and another is to be printed, it doesn't get printed if it - // is the same as the previous) and PageListCheckOffHeader is the page list item converted to a - // SvgText - this stores X/Y location, etc. - public string PageListTopCheckOffHeader = null; - public string PageListLastCheckOffHeader = null; - public SvgText PageListCheckOffHeader = null; - - public Dictionary PgLogicals; - private void AddPageListItems(Volian.Svg.Library.Svg mySvg, VEPROMS.CSLA.Library.PageStyle pageStyle, VEPROMS.CSLA.Library.SectionInfo section, bool forceLoad) - { - //Console.WriteLine("{0}", section.ActiveFormat.Name); - //Console.WriteLine("{0} pgstyle {1} section", pageStyle.Name,section.DisplayText); - if (PgLogicals == null) PgLogicals = new Dictionary(); - else PgLogicals.Clear(); - - PageListCheckOffHeader = null; - // If this is a continuous section, then the only pagelist items we want are section type since - // we are still on the same page. - CHECK IF ON SAME PAGE!!!! - SectionConfig.SectionPagination sPag = SectionConfig.SectionPagination.Separate; - if (section.IsStepSection && section.MyPrevious != null && section.MyPrevious.IsStepSection && section.MyContent.Number.ToUpper() != "FOLDOUT") - { - SectionConfig sc = section.MyConfig as SectionConfig; - sPag = sc.Section_Pagination; - } - SvgGroup svgGroup = new SvgGroup(); - - //int defPtPerRow = 72 / 6; - //int curLPI = 6; // default - //int prevLPI = 6; - //float PrevRow = 0; - //float rowAdj = 0; // = 18; - foreach (VEPROMS.CSLA.Library.PageItem pageItem in pageStyle.PageItems) - { - if (pageItem.Token == null) continue; // can be null if token is dependent on PSI lookup! - DidHLSText = false; // reset to false for this group of tokens. - //if (pageItem.Token.Contains("HLSTEXT")) - // Console.WriteLine("{0} - PageList Token", pageItem.Token); - - VE_Font useFontForCheckOffHeader = null; - if (forceLoad || (sPag == SectionConfig.SectionPagination.Separate || ((sPag == SectionConfig.SectionPagination.Continuous || sPag ==0 )&& (pageItem.Row < 0)))) - { - //if (PrevRow > 0) - //{ - // //float pgRow = (float)(pageItem.Row + rowAdj); - // if (curLPI != prevLPI) - // { - // int prow = (int)(PrevRow / defPtPerRow); - // int nrows = ((int)(pageItem.Row / defPtPerRow)) - prow; - // rowAdj += (float)Math.Abs(((nrows * (72 / curLPI)) - ((nrows * defPtPerRow) + rowAdj))); - // //rowAdj += (float)(((pgRow - PrevRow) / (72 * prevLPI)) * (72 / curLPI)); - // prevLPI = curLPI; - // } - //} - MatchCollection matches = regexFindToken.Matches(pageItem.Token); - if (matches.Count > 0) - { - string plstr = ""; - // When a pagelist line (row) has more than one token that is resolved to text, each resolved token text was place on top - // of each other. Use a temporary string (plstr) to process the pagelist tokens for each pagelist line (row) before adding - // it to the svgGroup. - plstr = pageItem.Token; - foreach (Match match in matches) - { - string token = match.Value; - //token = Regex.Replace(token, @"[\xB3-\xDF]", " "); - - // handle any conditional PS tokens - if (plstr.Contains(@"PS=")) - { - ProcedureConfig procConfig = new ProcedureConfig(section.MyProcedure.MyContent.Config); - if (procConfig != null) - { - int indx = token.IndexOf("="); - int qindx = token.IndexOf("?", indx); - string pstok = token.Substring(indx + 1, qindx - indx - 1); - string val = procConfig.GetValue("PSI", pstok); - int bindx = token.IndexOf("|", indx); - if (val == "Y") - val = token.Substring(qindx + 1, bindx - qindx - 1); - else - { - int eindx = token.IndexOf("}", bindx); - val = token.Substring(bindx + 1, eindx - bindx - 1); - } - if (val != null && val != "" && !PgLogicals.ContainsKey(pstok)) PgLogicals.Add(pstok, val != null); - //if (val == null || val == "") - //val = " "; - if (val == null) - val = ""; - plstr = plstr.Replace(token, val); - // Get a list of Pagelist token that are inside the PS= conditional result - // Paglist tokens inside a PS= conditional are surrounded by square brackets instead of curley - // ex. [BOX3] instead of {BOX3} - MatchCollection subMatches = regexFindSubToken.Matches(plstr); - if (subMatches.Count > 0) - { - foreach (Match subMatch in subMatches) - { - string subToken = subMatch.Value; - ProcessPaglistToken(section, svgGroup, pageItem, ref useFontForCheckOffHeader, ref plstr, subToken); - } - } - } - } - else - ProcessPaglistToken(section, svgGroup, pageItem, ref useFontForCheckOffHeader, ref plstr, token); - } // end foreach matches - if (plstr.StartsWith("RO_Lookup(")) - { - string parms = plstr.Substring(10,plstr.Length-11); - string[] parts = parms.Split(",".ToCharArray()); - plstr = ROLookup(parts[0], parts[1], parts[2]); - } - if (plstr != "") - { - if (useFontForCheckOffHeader != null) - svgGroup.Add(PageItemToSvgText(pageItem, plstr, useFontForCheckOffHeader, MySection)); - else - svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection)); - } - } - else - svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token, MySection)); - } - } - // Proms page numbering designed requires a "{PAGE}" token to increment the page counter. So the easiest way - // to do that was to add a "{PAGE}" token to every page that is flagged as not to be printed. - if (sPag == SectionConfig.SectionPagination.Separate) - { - SvgText st = new SvgText(new System.Drawing.PointF(300, 300), "Non-printing {PAGE}", new System.Drawing.Font("Arial", 10), System.Drawing.Color.Black); - svgGroup.Add(st); - } - if (svgGroup.Count>0) mySvg.Add(svgGroup); - } - private string ROLookup(string accpageid, string multiid, string deflt) - { - ROFSTLookup myLookup = MySection.MyDocVersion.DocVersionAssociations[0].MyROFst.ROFSTLookup; - string accpgid = accpageid; - accpgid = accpgid.Replace("-HIGH", "-HI").Replace("-LOW", "-LO").Replace("_HIGH", "-HI").Replace("_LOW", "-LO").Replace(@"\u8209?", "-"); - string val = myLookup.GetROValueByAccPagID("<" + accpgid + "." + multiid + ">", MySection.MyDocVersion.DocVersionConfig.RODefaults_setpointprefix, MySection.MyDocVersion.DocVersionConfig.RODefaults_graphicsprefix); - if (!deflt.StartsWith("[") && val != null) - { - val = val.Replace("[xB3]", "\xB3"); - val = val.Replace("[xB2]", "\xB2"); - return val; - } - return deflt; - } - private bool _DidHLSText = false; - public bool DidHLSText - { - get { return _DidHLSText; } - set { _DidHLSText = value; } - } - private int _HasHLSTextId = 0; - public int HasHLSTextId - { - get { return _HasHLSTextId; } - set { _HasHLSTextId = value; } - } - private string _HLSText = ""; - public string HLSText - { - get { return _HLSText; } - set - { - if (_HLSText == "") - _HLSText = value; - } - } - private string _HLSTAB = ""; - public string HLSTAB - { - get { return _HLSTAB; } - set { _HLSTAB = value; } - } - private string _HLRNO = ""; - public string HLRNO - { - get { return _HLRNO; } - set { _HLRNO = value; } - } - private void ProcessPaglistToken(VEPROMS.CSLA.Library.SectionInfo section, SvgGroup svgGroup, VEPROMS.CSLA.Library.PageItem pageItem, ref VE_Font useFontForCheckOffHeader, ref string plstr, string token) - { - //Console.WriteLine("{0} ProcessPagelistToken", token); - // Paglist token inside a PS= conditional are surrounded by square brackets instead of curley - // ex. [BOX3] instead of {BOX3}, thus the redunant looking cases - switch (token) - { - case "{!atom}": - // Add an Atom Figure to the SVG - plstr = plstr.Replace(token, ""); - AddImage(svgGroup, 160.5f, 170.5f, 288f, 323f, "atom.bmp"); - break; - case "{!cpllogo}": - plstr = plstr.Replace(token, ""); - AddImage(svgGroup, 10f, 10f, 78.7f, 29.8f, "cpllogo.bmp"); - break; - //case "{!domlogo}": - // AddImage(svgGroup, 10f, 70f, 123f, 40.1f, "domlogo.bmp"); - // break; - //case "{!gpclogo}": - // AddImage(svgGroup, 10f, 150f, 35.2f, 35.8f, "gpclogo.bmp"); - // break; - case "{HEADER1}": - case "[HEADER1]": - case "{HEADER2}": - case "[HEADER2]": - case "{HEADER3}": - case "[HEADER3]": - case "{HEADER4}": - case "[HEADER4]": - case "{HEADER5}": - case "[HEADER5]": - case "{BOX1}": - case "[BOX1]": - case "{BOX2}": - case "[BOX2]": - case "{BOX3}": - case "[BOX3]": - case "{BOX4}": - case "[BOX4]": - case "{BOX5}": - case "[BOX5]": - case "{BOX6}": - case "[BOX6]": - case "{BOX7}": - case "[BOX7]": - case "{BOX8}": - case "[BOX8]": - case "{BOX9}": - case "[BOX9]": - plstr = plstr.Replace(token, ""); - svgGroup.Add(PageItemToSvgUse(pageItem, FirstAndLast(token))); - break; - case "{PMODEBOX}": // need to set either 1 or 2 depending on number of columns - case "[PMODEBOX]": - string box = "1"; - if (_MySection.SectionConfig.Section_ColumnMode == SectionConfig.SectionColumnMode.Four) - box = "4"; - else if (_MySection.SectionConfig.Section_ColumnMode == SectionConfig.SectionColumnMode.Three) - box = "3"; - else if (_MySection.SectionConfig.Section_ColumnMode == SectionConfig.SectionColumnMode.Two) - box = "2"; - box = "{BOX" + box + "}"; - plstr = plstr.Replace(token, ""); - svgGroup.Add(PageItemToSvgUse(pageItem, FirstAndLast(box))); - break; - case "{DRAFTPAGE}": - if (!AllowedWatermarks.Contains("Draft")) AllowedWatermarks.Add("Draft"); - plstr = plstr.Replace(token, "");// Remove token since it is handled now - break; - case "{REFERENCEPAGE}": - if (!AllowedWatermarks.Contains("Reference")) AllowedWatermarks.Add("Reference"); - plstr = plstr.Replace(token, "");// Remove token since it is handled now - break; - case "{MASTERPAGE}": - if (!AllowedWatermarks.Contains("Master")) AllowedWatermarks.Add("Master"); - plstr = plstr.Replace(token, "");// Remove token since it is handled now - break; - case "{SAMPLEPAGE}": - if (!AllowedWatermarks.Contains("Sample")) AllowedWatermarks.Add("Sample"); - plstr = plstr.Replace(token, "");// Remove token since it is handled now - break; - case "{INFORMATIONPAGE}": - if (!AllowedWatermarks.Contains("Information Only")) AllowedWatermarks.Add("Information Only"); - break; - case "{PROCTITLE}": - case "[PROCTITLE]": - case "{PROCTITLE1}": - case "[PROCTITLE1]": - case "{PROCTITLE2}": - case "[PROCTITLE2]": - case "{COVERPROCTITLE}": - case "[COVERPROCTITLE]": - int tlen = (token.Contains("COVERPROCTITLE"))?(int)section.ActiveFormat.PlantFormat.FormatData.ProcData.CoverTitleLength : (int)section.ActiveFormat.PlantFormat.FormatData.ProcData.TitleLength; - //float linelen = (int)section.ActiveFormat.PlantFormat.FormatData.ProcData.TitleLength * (float)pageItem.Font.CPI / 12; - float linelen = tlen * (float)pageItem.Font.CPI / 12; - string title = section.MyProcedure.MyContent.Text; - if (section.ActiveFormat.PlantFormat.FormatData.ProcData.CapitalizeTitle) title = title.ToUpper(); - plstr = SplitTitle(svgGroup, pageItem, title, (int)linelen, token, plstr); //,rowAdj); - break; - case "{COVERTITLE1}": - case "[COVERTITLE1]": - case "{COVERTITLE2}": - case "[COVERTITLE2]": - int ctlen = section.ActiveFormat.PlantFormat.FormatData.ProcData.CoverTitleLength ?? 0; - float coverlinelen = ((ctlen == 0) ? (int)section.ActiveFormat.PlantFormat.FormatData.ProcData.TitleLength : ctlen) * (float)pageItem.Font.CPI / 12; - string title1 = section.MyProcedure.MyContent.Text; - if (section.ActiveFormat.PlantFormat.FormatData.ProcData.CapitalizeTitle) title1 = title1.ToUpper(); - plstr = SplitCoverTitle(svgGroup, pageItem, title1, (int)coverlinelen, token, plstr);//, rowAdj); - break; - case "{TITLE&UNIT}": - case "[TITLE&UNIT]": - tlen = (token.Contains("COVERPROCTITLE"))?(int)section.ActiveFormat.PlantFormat.FormatData.ProcData.CoverTitleLength : (int)section.ActiveFormat.PlantFormat.FormatData.ProcData.TitleLength; - linelen = tlen * (float)pageItem.Font.CPI / 12; - plstr = SplitTitleAndUnit(svgGroup, pageItem, section.MyProcedure.MyContent.Text.ToUpper(), (int)linelen, token, plstr); //,rowAdj); - break; - case "{SPLITEOPNUM}": - case "[SPLITEOPNUM]": - string eopnum1 = section.MyProcedure.MyContent.Number; - string unitnum1 = MySection.MyDocVersion.DocVersionConfig.Unit_ProcedureNumber; - string unitname1 = MySection.MyDocVersion.DocVersionConfig.Unit_Name; - if (unitnum1.Length > 0) - { - if (unitnum1.Contains("#")) - eopnum1 = unitnum1.Replace("#", eopnum1); - if (unitnum1.Contains("!")) - eopnum1 = unitnum1.Replace("!", unitname1); - if (eopnum1 == string.Empty) - eopnum1 = section.MyProcedure.MyContent.Number; - } - plstr = SplitEOPNumber(svgGroup, pageItem, eopnum1, token, plstr); - break; - case "{EOPNUM}": - case "[EOPNUM]": - case "{PREDELIMEOPNUM}": - case "[PREDELIMEOPNUM]": - string eopnum = section.MyProcedure.MyContent.Number; - string unitnum = MySection.MyDocVersion.DocVersionConfig.Unit_ProcedureNumber; - string unitname = MySection.MyDocVersion.DocVersionConfig.Unit_Name; - if (unitnum.Length > 0) - { - if (unitnum.Contains("#")) - eopnum = unitnum.Replace("#", eopnum); - if (unitnum.Contains("!")) - eopnum = unitnum.Replace("!", unitname); - if (eopnum == string.Empty) - eopnum = section.MyProcedure.MyContent.Number; - } - if (token.Equals("{PREDELIMEOPNUM}")) - { - // only use up to the first non-alphanumeric character of the procedur number - // Prairie Island (NSP) Alarms use this token - int idx = 0; - while (idx < eopnum.Length && char.IsLetterOrDigit(eopnum[idx])) idx++; - if (idx < eopnum.Length) - eopnum = eopnum.Substring(0, idx); - } - plstr = plstr.Replace(token, eopnum); - //svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token.Replace(token, eopnum))); - //svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token.Replace(token, section.MyProcedure.MyContent.Number))); - break; - case "{SECTIONLEVELTITLE}": - case "[SECTIONLEVELTITLE]": - bool printsectlevel = ((pageItem.Justify & VEPROMS.CSLA.Library.E_Justify.PSOnlyFirst) != VEPROMS.CSLA.Library.E_Justify.PSOnlyFirst) || - (((pageItem.Justify & VEPROMS.CSLA.Library.E_Justify.PSOnlyFirst) == VEPROMS.CSLA.Library.E_Justify.PSOnlyFirst) && PrintedSectionPage==0); - // if there is 'no title' for the section, only print it if a format flag says to print it. - if (printsectlevel) - { - if (section.DisplayText.ToUpper().Contains("") && !section.ActiveFormat.PlantFormat.FormatData.ProcData.PrintNoTitle) printsectlevel = false; - } - if (printsectlevel) - { - plstr = SplitTitle(svgGroup, pageItem, section.DisplayText, section.ActiveFormat.PlantFormat.FormatData.SectData.SectionTitleLength, token, plstr); - PrintedSectionPage = (int)pageItem.Row - _sectLevelNumTtlDiff; - } - else - plstr = plstr.Replace(token, ""); - //svgGroup.Add(PageItemToSvgText(pageItem, section.DisplayText)); - break; - case "{SECTIONLEVELNUMBER}": - case "[SECTIONLEVELNUMBER]": - plstr = plstr.Replace(token, section.DisplayNumber); - _sectLevelNumTtlDiff = (int)pageItem.Row; - //svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token.Replace(token, section.DisplayNumber))); - break; - case "{UNITTEXT}": - case "[UNITTEXT]": - plstr = plstr.Replace(token, MySection.MyDocVersion.DocVersionConfig.Unit_Text); - //svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token.Replace(token, MySection.MyDocVersion.DocVersionConfig.Unit_Text))); - break; - case "{UNITNUMBER}": - case "[UNITNUMBER]": - plstr = plstr.Replace(token, MySection.MyDocVersion.DocVersionConfig.Unit_Number); - break; - case "{ATTACHNUM}": - case "[ATTACHNUM]": - plstr = plstr.Replace(token, "1"); // used by SHESDD - but 16bit returns '1' unless has format flag 'MoveParensToToken' that was only in SCE (San Onofre) - break; - - case "{CHKOFFHEADING}": - case "[CHKOFFHEADING]": - // unfortunately, the font is not stored on the page list item if there is an active - // check off header. It is stored with the checkoff data as defined by user selection - // of the selected header (selection stored in section config). - int sindx = section.CheckOffHeadingIndex(); - VE_Font vf = sindx <= 0 ? pageItem.Font : - section.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font; - useFontForCheckOffHeader = vf; - PageListCheckOffHeader = PageItemToSvgText(pageItem, pageItem.Token, vf, section); - break; - case "{HLSTEXT}": - DidHLSText = true; - plstr = plstr.Replace(token, HLSText); - break; - case "{PROCDES}": - ProcDescrList pdl = section.ActiveFormat.PlantFormat.FormatData.PrintData.ProcDescrList; - if (pdl != null && pdl.Count > 0) - { - // the following line is needed for FNP: a checkin needed to be done for Robinson and - // did not want to include the commented out lines in this 'case' statement group: - //string procnum = section.MyProcedure.MyContent.Number.Replace(@"\u8209?", "-"); // uncomment for FNP - string procnum = section.MyProcedure.MyContent.Number; - foreach (ProcDescr pd in pdl) - { - if (pd.MatchProcNumber != null) - { - string matchStr = (pd.MatchProcNumber.StartsWith("*}")) ? pd.MatchProcNumber.Substring(2) : pd.MatchProcNumber; - if (procnum.Contains(matchStr)) - { - plstr = pd.ProcDescr1; - break; - } - if (pd.MatchProcNumber == "@") - { - if (Regex.IsMatch(procnum, "^[A-Za-z]+$")) - plstr = pd.ProcDescr1; - else - plstr = ""; - break; - } - } - else - plstr = "UNKNOWN"; - } - } - break; - case "{CURDATE}": - DateTime thisDate1 = DateTime.Today; - plstr = plstr.Replace(token, thisDate1.ToString("MMMM dd, yyyy")); - break; - case "{CURTIME}": - DateTime thisDate2 = DateTime.Now; - plstr = plstr.Replace(token, thisDate2.ToString("H:mm")); - break; - case "{HLRNO}": - plstr = HLRNO==null?"":plstr.Replace(token, HLRNO); - break; - case "{HLSTAB}": - plstr = plstr.Replace(token, HLSTAB); - break; - default: - if (token.Contains(@"RO-")) - { - plstr = token.Replace("{","").Replace("}",""); - svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection)); - } - if (token.Contains(@"PS-")) - { - //Console.WriteLine("RefreshConfig {0} {1}", section.MyProcedure.ItemID, section.MyProcedure.MyItemInfoUnique); - //section.MyProcedure.RefreshConfig(); - //ProcedureConfig procConfig = section.MyProcedure.MyConfig as ProcedureConfig; - //Console.WriteLine("> ProcConfig {0} {1}",procConfig,section.MyProcedure.MyItemInfoUnique); - //Console.WriteLine("> MyContent {0}", section.MyProcedure.MyContent.Config); - //section.MyProcedure.RefreshConfig(); - ProcedureConfig procConfig = new ProcedureConfig(section.MyProcedure.MyContent.Config); - //Console.WriteLine("< ProcConfig {0}", procConfig); - if (procConfig != null) - { - int indx = token.IndexOf("-"); - int qindx = token.IndexOf("?", indx); - string val = null; - if (qindx == -1) - { - val = procConfig.GetValue("PSI", token.Substring(4, token.Length - 5)); - plstr = plstr.Replace(token, val); - //svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection)); - } - else - { - string pstok = token.Substring(indx + 1, qindx - indx - 1); - plstr = procConfig.GetValue("PSI", pstok); - // the first part of the string between the ? and ' ' is the other logical - // to see if it's on. If on, just use col and/or row as defined. Otherwise use - // value between = and |. - int sindx2 = token.IndexOf(" ", qindx); - string logcheck = token.Substring(qindx + 1, sindx2 - qindx - 1); - if (PgLogicals.ContainsKey(logcheck)) - { - int bindx = token.IndexOf("|", indx); - string newval = token.Substring(sindx2 + 1, bindx - sindx2 - 1); - float col = pageItem.Col ?? 0; - if (newval.ToUpper().Contains("COL")) - { - col = System.Convert.ToInt32(newval.Substring(4)); - } - svgGroup.Add(PageItemToSvgText(pageItem.Token, pageItem.Row ?? 0, col, pageItem.Justify ?? VEPROMS.CSLA.Library.E_Justify.PSLeft, pageItem.Font, plstr, MySection)); - plstr = ""; // clear so it doesn't get added twice, i.e. in the method that calls this. - } - } - } - } - else - { - if (plstr != "") - svgGroup.Add(PageItemToSvgText(pageItem, plstr, MySection)); - //svgGroup.Add(PageItemToSvgText(pageItem, pageItem.Token)); - } - //_MyLog.InfoFormat("Token not processed {0}", token); - break; - } - } - private static void AddImage(SvgGroup svgGroup, float x, float y, float w, float h, string figure) - { - svgGroup.Add(new SvgImage(new System.Drawing.PointF(x, y), new System.Drawing.SizeF(w, h), - System.Windows.Forms.Application.StartupPath + @"\Resources\" + figure)); - } - - private string SplitTitle(SvgGroup svgGroup, VEPROMS.CSLA.Library.PageItem pageItem, string title, int? len, string match, string plstr) - { - if (match == "{PROCTITLE2}" || match == "[PROCTITLE2]") return plstr.Replace(match, ""); - if (len == null || len == 0 || ItemInfo.StripRtfFormatting(title).Length < len) - { - if (match == "{PROCTITLE2}" || match == "[PROCTITLE2]") return plstr.Replace(match, ""); // this would have been done in proctitle1 - plstr = plstr.Replace(match, title); - //svgGroup.Add(PageItemToSvgText(pageItem, title)); - return plstr; - } - // Otherwise determine how many line to split the text into - List titleLines = SplitText(title, (int)len); - - // Adjust y location based on which pagelist token & how many lines. Proctitle1 is adjusted if - // there are more than 2 lines (proctitle1 should have it's own y location that is used if there are 1 or 2 lines.) - float yOffset = (pageItem.Token.Contains("1") && titleLines.Count <= 2) ? 0 : (-6 * (titleLines.Count - 1)); - int cnt = 0; - - // if the title broke into two lines & proctitle1 & proctitle2 are on the same line, handle that - // and return the string: - if (titleLines.Count == 2 && pageItem.Token.Contains("1") && pageItem.Token.Contains("2")) - { - plstr = plstr.Replace("{PROCTITLE1}", titleLines[0]); - plstr = plstr.Replace("[PROCTITLE1]", titleLines[0]); - plstr = plstr.Replace("{PROCTITLE2}", titleLines[1]); - plstr = plstr.Replace("[PROCTITLE2]", titleLines[1]); - return plstr; - } - foreach (string line in titleLines) - { - cnt++; - if (cnt == 1 && yOffset == 0) // adj == 0 means we use PROCTITLE1/PROCTITLE2 pagelist tokens with 2 or less lines - plstr = plstr.Replace(match, line); - else - { - svgGroup.Add(PageItemToSvgText(pageItem, line, yOffset)); - plstr = plstr.Replace(match, ""); - } - yOffset += (float)((pageItem.Font.Size > 14) ? pageItem.Font.Size : 12); - } - return plstr; - } - private string SplitTitleAndUnit(SvgGroup svgGroup, VEPROMS.CSLA.Library.PageItem pageItem, string title, int? len, string token, string plstr) - { - List titleLines = SplitText(title, (int)len); - // Add a separate line with the Unit Number - titleLines.Add("UNIT " + MySection.MyDocVersion.DocVersionConfig.Unit_Number); - // Adjust y location based on which pagelist token & how many lines. - float yOffset = (-6 * (titleLines.Count - 1)); - foreach (string line in titleLines) - { - svgGroup.Add(PageItemToSvgText(pageItem, line, yOffset)); - yOffset += (float)((pageItem.Font.Size > 14) ? pageItem.Font.Size : 12); - } - return plstr.Replace(token, ""); - } - private string SplitEOPNumber(SvgGroup svgGroup, PageItem pageItem, string eopnum, string token, string plstr) - { - string[] eopnums = eopnum.Split(" ".ToCharArray()); - float yOffset = (-6 * (eopnums.Length - 1)); - foreach (string line in eopnums) - { - svgGroup.Add(PageItemToSvgText(pageItem, line, yOffset)); - yOffset += (float)((pageItem.Font.Size > 14) ? pageItem.Font.Size : 12); - } - return plstr.Replace(token, ""); - } - //private string symblsStr = "\u25CF\u0394"; // string of possible symbol character in a tab - //// add symbol characters as needed - //// "\u25CF" - solid bullet - //// \x0394 - delta - //private float GetTextWidth(VE_Font vefont, string txt, string symblFontName) - //{ - // System.Drawing.Font font = new System.Drawing.Font(vefont.Family, (float)vefont.Size, GetSysFontStyle(vefont)); - // System.Drawing.Font symbFont = new System.Drawing.Font(symblFontName, (float)vefont.Size); - // iTextSharp.text.Font iFont = Volian.Svg.Library.VolianPdf.GetFont(font); - // iTextSharp.text.Font iSymblFont = Volian.Svg.Library.VolianPdf.GetFont(symbFont); - // float w = 0; - // foreach (char c in txt) - // { - // int idx = symblsStr.IndexOf(c); - // if (idx >= 0) // symbol character - use symbol font to find its width - // w += iSymblFont.BaseFont.GetWidthPointKerned(symblsStr[idx].ToString(), (float)vefont.Size); - // else - // w += iFont.BaseFont.GetWidthPointKerned(c.ToString(), (float)vefont.Size); - // } - // //float w = iFont.BaseFont.GetWidthPointKerned(Text.Replace("\u25CF","@"), (float)vefont.Size); - // return w; - //} - - private string SplitCoverTitle(SvgGroup svgGroup, VEPROMS.CSLA.Library.PageItem pageItem, string title, int? len, string match, string plstr) - { - if (len == null || ItemInfo.StripRtfFormatting(title).Length < len) - { - if (match == "{COVERTITLE2}" || match == "[COVERTITLE2]") return plstr; // this would have been done in COVERTITLE1 - plstr = plstr.Replace(match, title); - //svgGroup.Add(PageItemToSvgText(pageItem, title)); - return plstr; - } - // Otherwise determine how many line to split the text into - List titleLines = SplitText(title, (int)len); - if (match == "{COVERTITLE1}" || match == "[COVERTITLE1]") - { - plstr = plstr.Replace(match, titleLines[0]); - //svgGroup.Add(PageItemToSvgText(pageItem, titleLines[0])); - return plstr; - } - // if the token was proctitle, dont' adjust. If the token was PROCTITLE1/2 then - // move down 6. -// int adj = pageItem.Token.Contains("1") || pageItem.Token.Contains("2") ? 0 : -6; - int adj = (titleLines.Count > 2) ? -6 : 0; - float yOffset = adj * (titleLines.Count - 2); - int lnCnt = 0; - foreach (string line in titleLines) - { - lnCnt++; - if (lnCnt == 1) continue; - plstr = plstr.Replace(match, line); - svgGroup.Add(PageItemToSvgText(pageItem, plstr, yOffset)); - plstr = ""; // clear it because it was added into the list in the line above this, i.e. don't duplicate - yOffset += 12; - } - return plstr; - } - private List SplitText(string text, int len) - { - List results = new List(); - if (text.Contains("\\LINE ") || text.Contains("\r\n")) - { - string[] mySplit = {"\\LINE ","\r\n"}; - return new List(text.Split(mySplit, StringSplitOptions.None)); - - } - int width = 0; // width of text, non-rtf - int start = 0; // start of line (index into string 'text'), includes rtf - int lastspace = 0; // location of lastspace (index into string 'text'), includes rtf - int startNonRtf = 0; // start of line, non-rtf (used for determining starting position to determine width if there was a break) - string rtfprefix = ""; - string nextprefix = ""; - for (int indx = 0; indx < text.Length; indx++) - { - if (text[indx] == '\\') //rtf command - { - // look for three things at beginning of string: hex, unicode, rtfcommand. - Match m = Regex.Match(text.Substring(indx), @"^\\'[a-fA-F0-9][a-fA-F0-9]"); //hex - if (m.Success) - { - indx += m.Length - 1; - width++; - } - else - { - m = Regex.Match(text.Substring(indx), @"^\\[uU][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][a-fA-F0-9][?]"); - if (m.Success) - { - indx += m.Length - 1; - width++; - } - else - { - m = Regex.Match(text.Substring(indx), @"^\\[^ ]*? "); - if (m.Success) - { - indx += m.Length - 1; - rtfprefix = AdjustRtfPrefix(rtfprefix, m.Value); - } - } - } - - } - else - { - if (text[indx] == ' ') - { - lastspace = indx; - startNonRtf = width; - } - width++; - if (width > len) - { - // what should be done if lastspace == 0 - results.Add(nextprefix+text.Substring(start, lastspace-start).Trim(" ".ToCharArray())); - nextprefix = rtfprefix; - if (nextprefix != "") nextprefix += " "; - start = lastspace + 1; - width = (width - startNonRtf - 1) > 0 ? width - startNonRtf - 1 : 0; - lastspace = 0; - } - } - - } - if (width > 0 || start < text.Length) results.Add(nextprefix + text.Substring(start).Trim(" ".ToCharArray())); - return results; - } - - private string AdjustRtfPrefix(string rtfprefix, string rtfcommand) - { - if (rtfcommand.Contains(@"\ulnone") || rtfcommand.Contains(@"\ul0")) // off - rtfprefix = rtfprefix.Replace(@"\ul",""); - else if (rtfcommand.Contains(@"\ul")) - rtfprefix += @"\ul"; - if (rtfcommand.Contains(@"\up0") || rtfcommand.Contains(@"\dn0")) rtfprefix = rtfprefix.Replace(@"\up2", "").Replace(@"\dn2", ""); - else if (rtfcommand.Contains(@"\up")) rtfprefix += @"\up2"; - else if (rtfcommand.Contains(@"\dn")) rtfprefix += @"\dn2"; - if (rtfcommand.Contains(@"\b0")) - rtfprefix = rtfprefix.Replace(@"\b", ""); - else if (rtfcommand.Contains(@"\b")) - rtfprefix += @"\b"; - if (rtfcommand.Contains(@"\i0")) - rtfprefix = rtfprefix.Replace(@"\i", ""); - else if (rtfcommand.Contains(@"\i")) - rtfprefix += @"\i"; - return rtfprefix; - } - private int FindWidth(string title, int start, int len) - { - for (int ii = start + len; ii > start; ii--) - { - if (title[ii] == ' ') - { - while (title[ii] == ' ') ii--; - if (ii > start) - return 2 + ii - start; - return len; - } - } - return len; - } - private SvgPart PageItemToSvgUse(VEPROMS.CSLA.Library.PageItem pageItem, string templateName) - { - SvgUse svgUse = new SvgUse(); - svgUse.UseID = templateName; - svgUse.X = new SvgMeasurement((float)(pageItem.Col ?? 0), E_MeasurementUnits.PT); - svgUse.Y = new SvgMeasurement((float)(pageItem.Row ?? 0), E_MeasurementUnits.PT); - return svgUse; - } - private static SvgText PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text, VE_Font font, SectionInfo mySection) - { - SvgText svgText = PageItemToSvgText(pageItem, text, mySection); - svgText.Font = font.WindowsFont; - return svgText; - } - private static SvgText PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text, SectionInfo mySection) - { - SvgText svgText = new SvgText(); - svgText.Text = text; - VEPROMS.CSLA.Library.E_Justify justify = pageItem.Justify ?? VEPROMS.CSLA.Library.E_Justify.PSLeft; - float colAdj16bit = 0; - if ((justify & VEPROMS.CSLA.Library.E_Justify.PSLeft) == VEPROMS.CSLA.Library.E_Justify.PSLeft) - svgText.Justify = SvgJustify.Left; - else if ((justify & VEPROMS.CSLA.Library.E_Justify.PSRight) == VEPROMS.CSLA.Library.E_Justify.PSRight) - svgText.Justify = SvgJustify.Right; - else - { - svgText.Justify = SvgJustify.Center; - if (((justify & VEPROMS.CSLA.Library.E_Justify.PSTrue) != VEPROMS.CSLA.Library.E_Justify.PSTrue) && - !mySection.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.PicaIgnoreFiveSixths) - { - // the default CPI for Proms is 12, in 16bit 12 is the default - if a font wasn't defined - // or when doing a positioning calculation 12 was used. So we need to make an adjustment - // to handle non-12 CPI (12CPI will just cancel out in the following calculation). - - // Take the difference between the width in Points of a character at 12CPI and a character - // at the defined font's CPI. Multiply that times the length of title and divide by two - // to find the half-way point. - - // if the PageItem's font CPI is null, then default to 12 CPI - colAdj16bit = (1 + text.Length) * ((72 / (float)(pageItem.Font.CPI ?? 12)) - (72 / 12)) / 2; - } - } - svgText.Font = pageItem.Font.WindowsFont; - float row = (float)pageItem.Row < 0 ? -(float)pageItem.Row : (float)pageItem.Row; - if ((justify & VEPROMS.CSLA.Library.E_Justify.PSTop) == VEPROMS.CSLA.Library.E_Justify.PSTop) row -= ((72 / 6) / 2); - float lcol = pageItem.Col ?? 0; - - // the column may need adjusted based on the document styles PageWidth. This was done in - // the 16bit code and was needed here to get the printed output to match. - if (pageItem.Font.FontIsProportional() && svgText.Justify == SvgJustify.Center) - { - int dotsPerChar = (int)(2400 / (mySection.MyDocStyle.Layout.PageWidth / 6)); - lcol = (lcol * 25) / dotsPerChar; - } - - svgText.X = new SvgMeasurement((float)lcol - colAdj16bit, E_MeasurementUnits.PT); - svgText.Y = new SvgMeasurement(row, E_MeasurementUnits.PT); - if (svgText.Font.Underline && svgText.Text.EndsWith(" ")) svgText.Text = svgText.Text.Substring(0, svgText.Text.Length - 1) + "\xA0";// replace last space with a hardspace - return svgText; - } - private SvgPart PageItemToSvgText(VEPROMS.CSLA.Library.PageItem pageItem, string text, float yOffset) - { - SvgText svgText = new SvgText(); - svgText.Text = text; - VEPROMS.CSLA.Library.E_Justify justify = pageItem.Justify ?? VEPROMS.CSLA.Library.E_Justify.PSLeft; - float colAdj16bit = 0; - if ((justify & VEPROMS.CSLA.Library.E_Justify.PSLeft) == VEPROMS.CSLA.Library.E_Justify.PSLeft) - svgText.Justify = SvgJustify.Left; - else if ((justify & VEPROMS.CSLA.Library.E_Justify.PSRight) == VEPROMS.CSLA.Library.E_Justify.PSRight) - svgText.Justify = SvgJustify.Right; - else - { - svgText.Justify = SvgJustify.Center; - if (((justify & VEPROMS.CSLA.Library.E_Justify.PSTrue) != VEPROMS.CSLA.Library.E_Justify.PSTrue) && - !MySection.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.PicaIgnoreFiveSixths) - { - // the default CPI for Proms is 12, in 16bit 12 is the default - if a font wasn't defined - // or when doing a positioning calculation 12 was used. So we need to make an adjustment - // to handle non-12 CPI (12CPI will just cancel out in the following calculation). - - // Take the difference between the width in Points of a character at 12CPI and a character - // at the defined font's CPI. Multiply that times the length of title and divide by two - // to find the half-way point. - colAdj16bit = (1 + text.Length) * ((72 / (float)pageItem.Font.CPI) - (72 / 12)) / 2; - } - } - float lcol = pageItem.Col ?? 0; - - // the column may need adjusted based on the document styles PageWidth. This was done in - // the 16bit code and was needed here to get the printed output to match. - if (pageItem.Font.FontIsProportional() && svgText.Justify == SvgJustify.Center) - { - int dotsPerChar = (int)(2400 / (MySection.MyDocStyle.Layout.PageWidth / 6)); - lcol = (lcol * 25) / dotsPerChar; - } - svgText.Font = pageItem.Font.WindowsFont; - svgText.X = new SvgMeasurement((float)lcol - colAdj16bit, E_MeasurementUnits.PT); // new SvgMeasurement((float)(pageItem.Col ?? 0), E_MeasurementUnits.PT); - svgText.Y = new SvgMeasurement((float)(yOffset + pageItem.Row ?? 0), E_MeasurementUnits.PT); - if (svgText.Font.Underline && svgText.Text.EndsWith(" ")) svgText.Text = svgText.Text.Substring(0, svgText.Text.Length - 1) + "\xA0";// replace last space with a hardspace - return svgText; - } - private SvgPart PageItemToSvgText(string token, float row, float col, E_Justify just, VE_Font font, string text, SectionInfo MySection) - { - SvgText svgText = new SvgText(); - svgText.Text = text; - VEPROMS.CSLA.Library.E_Justify justify = just; - float colAdj16bit = 0; - if ((justify & VEPROMS.CSLA.Library.E_Justify.PSLeft) == VEPROMS.CSLA.Library.E_Justify.PSLeft) - svgText.Justify = SvgJustify.Left; - else if ((justify & VEPROMS.CSLA.Library.E_Justify.PSRight) == VEPROMS.CSLA.Library.E_Justify.PSRight) - svgText.Justify = SvgJustify.Right; - else - { - svgText.Justify = SvgJustify.Center; - if (((justify & VEPROMS.CSLA.Library.E_Justify.PSTrue) != VEPROMS.CSLA.Library.E_Justify.PSTrue) && - !MySection.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.PicaIgnoreFiveSixths) - { - // the default CPI for Proms is 12, in 16bit 12 is the default - if a font wasn't defined - // or when doing a positioning calculation 12 was used. So we need to make an adjustment - // to handle non-12 CPI (12CPI will just cancel out in the following calculation). - - // Take the difference between the width in Points of a character at 12CPI and a character - // at the defined font's CPI. Multiply that times the length of title and divide by two - // to find the half-way point. - colAdj16bit = (1 + text.Length) * ((72 / (float)font.CPI) - (72 / 12)) / 2; - } - } - float lcol = col; - - // the column may need adjusted based on the document styles PageWidth. This was done in - // the 16bit code and was needed here to get the printed output to match. - if (font.FontIsProportional() && svgText.Justify == SvgJustify.Center) - { - int dotsPerChar = (int)(2400 / (MySection.MyDocStyle.Layout.PageWidth / 6)); - lcol = (lcol * 25) / dotsPerChar; - } - svgText.Font = font.WindowsFont; - svgText.X = new SvgMeasurement((float)lcol - colAdj16bit, E_MeasurementUnits.PT); // new SvgMeasurement((float)(pageItem.Col ?? 0), E_MeasurementUnits.PT); - svgText.Y = new SvgMeasurement(row, E_MeasurementUnits.PT); - if (svgText.Font.Underline && svgText.Text.EndsWith(" ")) svgText.Text = svgText.Text.Substring(0, svgText.Text.Length - 1) + "\xA0";// replace last space with a hardspace - return svgText; - } - private static List _MissingTokens = new List(); - protected override string ReplacePageListToken(Match match) - { - switch (match.Value) - { - case "{PAGE}": // Current Page Number - return CurrentPageNumber.ToString(); - case "{OF}": // Total Page Count for this section - return CurrentPageOf.ToString(); - case "{REV}": // Revision Number and/or Revision string. - case "{REV2}": - // The 16bit code has a revision number & then a revision date. This revision date - // was actually either a date OR a string. The 32bit code no longer will call this - // token or string RevDate. HLP procs & stpdif show the different types of data - // that are used. - - // 16-bit had code to string preceeding blanks. - if (Rev != null && Rev != "") Rev = Rev.TrimStart(" ".ToCharArray()); - - // Now check the format flags to determine if/how the Rev string should be parsed. - if ((MySection.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate && Rev.Contains("/")) - || (MySection.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash && Rev.Contains("\\"))) - { - int indx = Rev.IndexOf(MySection.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash ? '\\' : '/'); - if (match.Value == "{REV}") return Rev.Substring(0,indx); - return Rev.Substring(indx+1); - } - if (match.Value == "{REV}")return Rev; - return System.DateTime.Today.ToShortDateString(); - case "{CHKOFFHEADING}": - return PageListTopCheckOffHeader; - case "{ROMANPAGE}": - return ItemInfo.RomanNumbering(CurrentPageNumber).ToLower(); - case "{SETREV}": - return MySection.MyDocVersion.DocVersionConfig.ProcedureSetRev; - } - if (!_MissingTokens.Contains(match.Value)) - { - _MissingTokens.Add(match.Value); - _MyLog.InfoFormat("Unhandled token {0}", match.Value); - } - return ""; - } - } - public class ChkListBoxesHelper : List - { - private float _yOffsetStart; - private float _yOffsetEnd; - public ChkListBoxesHelper() - : base() - { - } - public void Add(ItemInfo myHls, float yoffStart, float yoffend) - { - Add(new ChkListBoxHelper()); - } - public void Draw() - { - foreach (ChkListBoxHelper cb in this) - { - - } - } - } - public class ChkListBoxHelper - { - public ChkListBoxHelper() - { - } - } - public class PageBookmarks : List - { - public PageBookmarks() - : base() - { - } - public void Add(ItemInfo itemInfo, string title, PdfDestination pdfDestination) - { - Add(new PageBookmark(itemInfo, title, pdfDestination)); - } - } - public class PageBookmark - { - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - private string _Title; - public string Title - { - get { return _Title; } - set { _Title = value; } - } - private PdfDestination _PdfDestination; - public PdfDestination PdfDestination - { - get { return _PdfDestination; } - set { _PdfDestination = value; } - } - public PageBookmark(ItemInfo itemInfo, string title, PdfDestination pdfDestination) - { - _MyItemInfo = itemInfo; - _Title = title; - _PdfDestination = pdfDestination; - } - } - public class ChangeBarDefinition // anything that is section level should go in here. - { - private PrintChangeBar _MyChangeBarType; - public PrintChangeBar MyChangeBarType - { - get { return _MyChangeBarType; } - set { _MyChangeBarType = value; } - } - private PrintChangeBarLoc _MyChangeBarLoc; - public PrintChangeBarLoc MyChangeBarLoc - { - get { return _MyChangeBarLoc; } - set { _MyChangeBarLoc = value; } - } - private PrintChangeBarText _MyChangeBarText; - public PrintChangeBarText MyChangeBarText - { - get { return _MyChangeBarText; } - set { _MyChangeBarText = value; } - } - private string _MyChangeBarMessage; // user defined change bar message from docconfig - public string MyChangeBarMessage - { - get { return _MyChangeBarMessage; } - set { _MyChangeBarMessage = value; } - } - private int _MyChangeBarColumn; // two dimensional array, if both on same side, values are = - public int MyChangeBarColumn - { - get { return _MyChangeBarColumn; } - set { _MyChangeBarColumn = value; } - } - /* - * could have line thickness (set default from 16-bit), line color (set default as black), line style - */ - public ChangeBarDefinition() - { - } - public ChangeBarDefinition(PrintChangeBar myCBT, PrintChangeBarLoc myCBL, PrintChangeBarText myCBTxt, string myCBMsg) - { - _MyChangeBarType = myCBT; - _MyChangeBarLoc = myCBL; - _MyChangeBarText = myCBTxt; - } - public ChangeBarDefinition(DocVersionConfig docverConfig, FormatInfo formatInfo) - { - // if there is not overridden data on the docversion, prompt user... - ChangeBarData changeBarData = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData; - if (docverConfig == null || docverConfig.Print_ChangeBar == PrintChangeBar.SelectBeforePrinting) - { - // use these for now, i.e. this is what user would have selected from dialog. - _MyChangeBarType = PrintChangeBar.WithDefault; - _MyChangeBarLoc = PrintChangeBarLoc.OutsideBox; - _MyChangeBarText = PrintChangeBarText.None; - } - else - { - _MyChangeBarType = docverConfig.Print_ChangeBar; - _MyChangeBarLoc = docverConfig.Print_ChangeBarLoc; - _MyChangeBarText = docverConfig.Print_ChangeBarText; - } - if (_MyChangeBarType == PrintChangeBar.WithDefault) // get data from format - { - _MyChangeBarText = changeBarData.ChangeBarMessage == "ChgID" ? PrintChangeBarText.ChgID : - changeBarData.ChangeBarMessage == "DateAndChgID" ? PrintChangeBarText.DateChgID : - changeBarData.ChangeBarMessage == "None" ? PrintChangeBarText.None : - changeBarData.ChangeBarMessage == "RevNum" ? PrintChangeBarText.RevNum : PrintChangeBarText.UserDef; - } - if (_MyChangeBarType != PrintChangeBar.Without) - { - // if the format has the absolutefixedchangecolumn format flag, then always use the fixedchangecolumn from the - // format, otherwise, use the default column based on the selected location, stored in the base format. - _MyChangeBarColumn = (changeBarData.AbsoluteFixedChangeColumn) ? - (int)changeBarData.FixedChangeColumn : - System.Convert.ToInt32(changeBarData.DefaultCBLoc.Split(",".ToCharArray())[(int)(_MyChangeBarLoc)]); - if (_MyChangeBarText == PrintChangeBarText.UserDef) - _MyChangeBarMessage = docverConfig.Print_UserCBMess1 + @"\n" + docverConfig.Print_UserCBMess2; - - } - } - } - public class CheckOffHeaderHelper - { - private SvgText _SvgText; - public SvgText SvgText - { - get { return _SvgText; } - set { _SvgText = value; } - } - private VEPROMS.CSLA.Library.VE_Font _CheckOffHeaderFont; - public VEPROMS.CSLA.Library.VE_Font CheckOffHeaderFont - { - get { return _CheckOffHeaderFont; } - set { _CheckOffHeaderFont = value; } - } - public CheckOffHeaderHelper(SvgText stext, VEPROMS.CSLA.Library.VE_Font vf) - { - _SvgText = stext; - _CheckOffHeaderFont = vf; - } - } - public class Gap - { - private float _YTop; - public float YTop - { - get { return _YTop; } - set { _YTop = value; } - } - private float _YBottom; - public float YBottom - { - get { return _YBottom; } - set { _YBottom = value; } - } - public Gap(float yTop, float yBottom) - { - _YTop = yTop; - _YBottom = yBottom; - } - } - public class Gaps : List - { - public void Add(float yTop, float yBotttom) - { - this.Add(new Gap(yTop, yBotttom)); - } - } -} diff --git a/PROMS/Volian.Print.Library/Volian.Print.Library.csproj.bak b/PROMS/Volian.Print.Library/Volian.Print.Library.csproj.bak deleted file mode 100644 index a0340f01..00000000 --- a/PROMS/Volian.Print.Library/Volian.Print.Library.csproj.bak +++ /dev/null @@ -1,165 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {94830C07-6A3A-450E-9674-C9B4293A7726} - Library - Properties - Volian.Print.Library - Volian.Print.Library - "%24/PROMS/Volian.Print.Library", NGEAAAAA - . - - - MSSCCI:Microsoft Visual SourceSafe - v4.6.1 - - - - - 2.0 - - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - false - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - false - - - true - bin\Debug\ - DEBUG;TRACE - full - x86 - prompt - false - - - bin\x86\Release\ - TRACE - true - pdbonly - x86 - prompt - false - - - - - False - ..\Volian.Controls.Library\bin\Debug\Csla.dll - - - ..\FlexableMessageBox\bin\Debug\FlexableMessageBox.dll - - - False - ..\..\Proms3rdPartyLibraries\RtfConverter\bin\Debug\Itenso.Rtf.Interpreter.dll - - - False - ..\..\Proms3rdPartyLibraries\RtfConverter\bin\Debug\Itenso.Rtf.Parser.dll - - - False - ..\..\Proms3rdPartyLibraries\iTechSharp\itextsharp.dll - - - False - ..\LBWordLibrary\bin\Debug\LBWordLibrary.dll - - - False - ..\DataLoader\bin\Debug\log4net.dll - - - - True - - - - - - - ..\ReferencedObjects\LibSource\VlnStatus\bin\Debug\VlnStatus.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - {41B2D786-1C03-4C1A-9247-DA9F0D6B06D5} - VEPROMS.CSLA.Library - - - {AEEE9FD1-6892-45E2-A67E-418C06D46FF9} - Volian.Base.Library - - - {8556527C-6615-487F-8AF7-22EBC3EF0268} - Volian.Controls.Library - - - {293911B5-C602-483F-A97F-F962EEFB3CAE} - Volian.Svg.Library - - - - - - - - \ No newline at end of file diff --git a/PROMS/Volian.Print.Library/app.config b/PROMS/Volian.Print.Library/app.config deleted file mode 100644 index 7be68eba..00000000 --- a/PROMS/Volian.Print.Library/app.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/Volian.Print.Library/vlnBox - Copy.cs b/PROMS/Volian.Print.Library/vlnBox - Copy.cs deleted file mode 100644 index 5ca5abd3..00000000 --- a/PROMS/Volian.Print.Library/vlnBox - Copy.cs +++ /dev/null @@ -1,221 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using iTextSharp.text.pdf; -using iTextSharp.text; -using VEPROMS.CSLA.Library; - - -namespace Volian.Print.Library -{ - public partial class vlnBox : vlnPrintObject - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private int _LineType; /* how to represent?? */ - private System.Drawing.Color _Color; - public System.Drawing.Color Color - { - get { return _Color; } - set { _Color = value; } - } - private Box _MyBox; - - public Box MyBox - { - get { return _MyBox; } - set { _MyBox = value; } - } - // the following two fields are used if 'boxed' step, thus - // no 'Box' was defined in format file. - public string DefBox = null; - public float DefEnd = 0; - public vlnBox() - { - } - public vlnBox(vlnParagraph paragraph) - { - } - public const string BoxThin = "\x2510.\x2500.\x250c.\x2502. . .\x2518.\x2514. .\x2500. . "; - const string BoxThick = "\x2584.\x2584.\x2584.\x2588. . .\x2580.\x2580. .\x2580. . "; - const string BoxDouble = "\x2557.\x2550.\x2554.\x2551. . .\x255D.\x255A. .\x2550. . "; - const string BoxFPLNote = "\x2557.\x2550\xad.\x2554\xad.\x2551. . .\x255d.\x255a\xad. .\x2550\xad. . "; - const string BoxFPLCaution = "\x2588.\x2580.\x2588.\x2588. . .\x2588.\x2588. .\x2584. . "; - const string BoxAsterisk = " *.* .* . . . . *.* . .* . . "; - const string BoxAsteriskWithSides = " *.* .* .* . . . *.* . .* . . "; - - public override float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin) - { - if (MyBox == null) return yPageStart; - cb.SaveState(); - VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper; - PdfLayer textLayer = _MyPageHelper == null ? null : _MyPageHelper.TextLayer; - if (textLayer != null) cb.BeginLayer(textLayer); - MyContentByte = cb; - //Console.WriteLine("'{0}','{1}'", CharToAsc(MyBox.BoxStyle), MyParent.MyItemInfo.ShortPath); - float top = CalculateYOffset(yPageStart, yTopMargin) - (7*MyPageHelper.YMultiplier); - float bottom = top - (Height * MyPageHelper.YMultiplier); - float left = (float)((MyBox.Start ?? 0) + MyParent.MyItemInfo.MyDocStyle.Layout.LeftMargin); - float right = (float)MyParent.MyItemInfo.MyDocStyle.Layout.LeftMargin + (float)(MyBox.End ?? DefEnd); - iTextSharp.text.Color boxColor = new iTextSharp.text.Color(PrintOverride.OverrideBoxColor(System.Drawing.Color.Black)); - cb.SetColorStroke(boxColor); - if (DefBox != null) - { - cb.SetLineWidth(.6F); - cb.Rectangle(left, bottom, right - left, Height * MyPageHelper.YMultiplier); - } - else - { - const float llxOffset = 3; - float lineThickness = 0; - switch (MyBox.BoxStyle) - { - case BoxThin: - lineThickness = .6F; - cb.SetLineWidth(lineThickness); - cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2), right - left, (Height - lineThickness) * MyPageHelper.YMultiplier); - break; - case BoxThick: - lineThickness = 6; - cb.SetLineWidth(lineThickness); - cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2), right - left, (Height - lineThickness) * MyPageHelper.YMultiplier); - break; - case BoxDouble: - lineThickness = .6F; - cb.SetLineWidth(lineThickness); - // outer rectangle (rectangle's are defined as x,y,w,h) - cb.Rectangle(left + llxOffset - lineThickness * 1.5F, bottom - lineThickness, right - left + lineThickness * 3, (Height + lineThickness * 2) * MyPageHelper.YMultiplier); - // inner rectangle - cb.Rectangle(left + llxOffset + lineThickness, bottom + lineThickness * 1.5F, right - left - lineThickness * 2, (Height - lineThickness * 3) * MyPageHelper.YMultiplier); - break; - case BoxFPLNote: - lineThickness = 2; - cb.SetLineWidth(lineThickness); - float[] linePattern = { 6, 1.75F, 2.5F, 1.75F }; - cb.SetLineDash(linePattern,3); - cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2) -1, right - left, (2 + Height - lineThickness) * MyPageHelper.YMultiplier); - break; - case BoxFPLCaution: - lineThickness = 3; - cb.SetLineWidth(lineThickness); - // use a Y adjustment (top & bottom) to make the caution box match the 16bit output. - float YbxAdjust = 6.5F; - cb.Rectangle(left + llxOffset, bottom - YbxAdjust + (lineThickness / 2), right - left, (Height - lineThickness + 2*YbxAdjust) * MyPageHelper.YMultiplier); - break; - case BoxAsterisk: - // this box is not drawn, it is a series of asterisks drawn above and below text. - // For this box, there are no vertical edges (RGE uses this box type) - DrawTopBottomAsterisk(cb, yPageStart, yTopMargin, yBottomMargin, ref top, ref bottom, left); - break; - case BoxAsteriskWithSides: - DrawTopBottomAsterisk(cb, yPageStart, yTopMargin, yBottomMargin, ref top, ref bottom, left); - DrawSideAsterisk(cb, yPageStart, yTopMargin, yBottomMargin, top, bottom, left, right); - break; - default: - // For other than thick, thin and double. - if (!_UnimplementedBoxStyles.Contains(MyBox.BoxStyle)) - { - _UnimplementedBoxStyles.Add(MyBox.BoxStyle); - _MyLog.InfoFormat("Unimplemented Box Style {0} {1}", ShowBoxStyle(MyBox.BoxStyle), MyParent.MyItemInfo.ShortPath); - //Console.WriteLine("Unimplemented Box Style {0} {1}", ShowBoxStyle(MyBox.BoxStyle), MyParent.MyItemInfo.ShortPath); - } - break; - //throw new Exception("Missing vlnBox handler"); - } - } - cb.Stroke(); - if (textLayer != null) cb.EndLayer(); - cb.RestoreState(); - return yPageStart; - } - - private void DrawSideAsterisk(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin, float top, float bottom, float left, float right) - { - top = CalculateYOffset(yPageStart, yTopMargin); - bottom = top - (Height * MyPageHelper.YMultiplier); - VE_Font vf = MyParent.MyItemInfo.FormatStepData.Font; - - // Left side first: - string Rtf = GetRtf(MyBox.BXVert, vf); - float vertDiff = top; - float size = (float)(MyBox.BXVert.Length * (72 / vf.CPI)); - while (vertDiff > bottom) - { - Rtf2Pdf.TextAt(cb, IParagraph, left, vertDiff, size, 100, "", yBottomMargin); - vertDiff -= (SixLinesPerInch * MyPageHelper.YMultiplier); - } - - // right side: - vertDiff = top; - Rtf = GetRtf(MyBox.BXVert.TrimEnd(), vf); - while (vertDiff > bottom) - { - if (MyBox.End != null)Rtf2Pdf.TextAt(cb, IParagraph, (float) MyBox.End, vertDiff, size, 100, "", yBottomMargin); - vertDiff = (SixLinesPerInch * MyPageHelper.YMultiplier); - } - } - - private void DrawTopBottomAsterisk(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin, ref float top, ref float bottom, float left) - { - top = CalculateYOffset(yPageStart, yTopMargin); - bottom = top - (Height * MyPageHelper.YMultiplier); - VE_Font vf = MyParent.MyItemInfo.FormatStepData.Font; - - // Top line first: - StringBuilder sb = new StringBuilder(); - sb.Append(MyBox.BXVert); - float size = (float)(MyBox.BXULC.Length * (72 / vf.CPI)); - while (size < MyBox.End) - { - sb.Append(MyBox.BXHorz); - size = size + (float)(MyBox.BXHorz.Length * (72 / vf.CPI)); - } - // Tack on the right upper corner. For some reason, the upper right corner in the - // formats had the first character as a space, this would put two spaces in a row - // at the end of the string, so remove the space before tacking on the upper right - // corner: - string bxstr = sb.ToString().TrimEnd() + MyBox.BXURC; - size = size + (float)((MyBox.BXURC.Length) * (72 / vf.CPI)); - Rtf = GetRtf(bxstr, vf); - Rtf2Pdf.TextAt(cb, IParagraph, left, top, size, 100, "", yBottomMargin); - - // Bottom line now - sb.Remove(0, sb.Length); - sb.Append(MyBox.BXLLC); - size = (float)(MyBox.BXLLC.Length * (72 / vf.CPI)); - while (size < MyBox.End) - { - sb.Append(MyBox.BXHorz); - size = size + (float)(MyBox.BXHorz.Length * (72 / vf.CPI)); - } - bxstr = sb.ToString().TrimEnd() + MyBox.BXLRC; - size = size + (float)((MyBox.BXLRC.Length) * (72 / vf.CPI)); - Rtf = GetRtf(bxstr, vf); - Rtf2Pdf.TextAt(cb, IParagraph, left, bottom, size, 100, "", yBottomMargin); - } - - private string ShowBoxStyle(string str) - { - StringBuilder sb = new StringBuilder(); - foreach (Char c in str) - { - if (c >= ' ' && c < 128) - sb.Append(c); - else - sb.Append(string.Format("x{0:X0000}", (int)c)); - } - return sb.ToString(); - } - private static List _UnimplementedBoxStyles = new List(); - private string CharToAsc(string p) - { - StringBuilder sb = new StringBuilder(); - foreach (char c in p) - { - if (c >= ' ' && c < 127) sb.Append(c); - else sb.Append(string.Format("\\x{0:x}", (int)c)); - } - return sb.ToString(); - } - } -} diff --git a/PROMS/Volian.Print.Library/vlnBox.cs.bak b/PROMS/Volian.Print.Library/vlnBox.cs.bak deleted file mode 100644 index d48430c4..00000000 --- a/PROMS/Volian.Print.Library/vlnBox.cs.bak +++ /dev/null @@ -1,233 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using iTextSharp.text.pdf; -using iTextSharp.text; -using VEPROMS.CSLA.Library; - - -namespace Volian.Print.Library -{ - public partial class vlnBox : vlnPrintObject - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - private int _LineType; /* how to represent?? */ - private System.Drawing.Color _Color; - public System.Drawing.Color Color - { - get { return _Color; } - set { _Color = value; } - } - private Box _MyBox; - - public Box MyBox - { - get { return _MyBox; } - set { _MyBox = value; } - } - // the following two fields are used if 'boxed' step, thus - // no 'Box' was defined in format file. - public string DefBox = null; - public float DefEnd = 0; - public vlnBox() - { - } - public vlnBox(vlnParagraph paragraph) - { - } - public const string BoxThin = "\x2510.\x2500.\x250c.\x2502. . .\x2518.\x2514. .\x2500. . "; - const string BoxThick = "\x2584.\x2584.\x2584.\x2588. . .\x2580.\x2580. .\x2580. . "; - const string BoxDouble = "\x2557.\x2550.\x2554.\x2551. . .\x255D.\x255A. .\x2550. . "; - const string BoxFPLNote = "\x2557.\x2550\xad.\x2554\xad.\x2551. . .\x255d.\x255a\xad. .\x2550\xad. . "; - const string BoxFPLCaution = "\x2588.\x2580.\x2588.\x2588. . .\x2588.\x2588. .\x2584. . "; - const string BoxAsterisk = " *.* .* . . . . *.* . .* . . "; - const string BoxAsteriskWithSides1 = " *.* .* .* . . . *.* . .* . . "; // ip2 - const string BoxAsteriskWithSides2 = "*. *.*.*. . .*.*. . *. . "; // ip3 (sub 15) - - public override float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin) - { - if (MyBox == null) return yPageStart; - cb.SaveState(); - VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper; - PdfLayer textLayer = _MyPageHelper == null ? null : _MyPageHelper.TextLayer; - if (textLayer != null) cb.BeginLayer(textLayer); - MyContentByte = cb; - //Console.WriteLine("'{0}','{1}'", CharToAsc(MyBox.BoxStyle), MyParent.MyItemInfo.ShortPath); - float top = CalculateYOffset(yPageStart, yTopMargin) - (7*MyPageHelper.YMultiplier); - float bottom = top - (Height * MyPageHelper.YMultiplier); - float left = (float)((MyBox.Start ?? 0) + MyParent.MyItemInfo.MyDocStyle.Layout.LeftMargin); - float right = (float)MyParent.MyItemInfo.MyDocStyle.Layout.LeftMargin + (float)(MyBox.End ?? DefEnd); - iTextSharp.text.Color boxColor = new iTextSharp.text.Color(PrintOverride.OverrideBoxColor(System.Drawing.Color.Black)); - cb.SetColorStroke(boxColor); - _MyPageHelper.MyGaps.Add(top, bottom); - if (DefBox != null) - { - cb.SetLineWidth(.6F); - cb.Rectangle(left, bottom, right - left, Height * MyPageHelper.YMultiplier); - } - else - { - const float llxOffset = 3; - float lineThickness = 0; - switch (MyBox.BoxStyle) - { - case BoxThin: - lineThickness = .6F; - cb.SetLineWidth(lineThickness); - cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2), right - left, (Height - lineThickness) * MyPageHelper.YMultiplier); - break; - case BoxThick: - lineThickness = 6; - cb.SetLineWidth(lineThickness); - cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2), right - left, (Height - lineThickness) * MyPageHelper.YMultiplier); - break; - case BoxDouble: - lineThickness = .6F; - cb.SetLineWidth(lineThickness); - // outer rectangle (rectangle's are defined as x,y,w,h) - cb.Rectangle(left + llxOffset - lineThickness * 1.5F, bottom - lineThickness, right - left + lineThickness * 3, (Height + lineThickness * 2) * MyPageHelper.YMultiplier); - // inner rectangle - cb.Rectangle(left + llxOffset + lineThickness, bottom + lineThickness * 1.5F, right - left - lineThickness * 2, (Height - lineThickness * 3) * MyPageHelper.YMultiplier); - break; - case BoxFPLNote: - lineThickness = 2; - cb.SetLineWidth(lineThickness); - float[] linePattern = { 6, 1.75F, 2.5F, 1.75F }; - cb.SetLineDash(linePattern,3); - cb.Rectangle(left + llxOffset, bottom + (lineThickness / 2) -1, right - left, (2 + Height - lineThickness) * MyPageHelper.YMultiplier); - break; - case BoxFPLCaution: - lineThickness = 3; - cb.SetLineWidth(lineThickness); - // use a Y adjustment (top & bottom) to make the caution box match the 16bit output. - float YbxAdjust = 6.5F; - cb.Rectangle(left + llxOffset, bottom - YbxAdjust + (lineThickness / 2), right - left, (Height - lineThickness + 2*YbxAdjust) * MyPageHelper.YMultiplier); - break; - case BoxAsterisk: - DrawAsteriskTopBottom(cb, yPageStart, yTopMargin, yBottomMargin, ref top, ref bottom, left); - break; - case BoxAsteriskWithSides1: - case BoxAsteriskWithSides2: - DrawAsteriskTopBottom(cb, yPageStart, yTopMargin, yBottomMargin, ref top, ref bottom, left); - DrawAsteriskSide(cb, yPageStart, yTopMargin, yBottomMargin, top, bottom, left, right); - break; - default: - // For other than thick, thin and double. - if (!_UnimplementedBoxStyles.Contains(MyBox.BoxStyle)) - { - _UnimplementedBoxStyles.Add(MyBox.BoxStyle); - _MyLog.InfoFormat("Unimplemented Box Style {0} {1}", ShowBoxStyle(MyBox.BoxStyle), MyParent.MyItemInfo.ShortPath); - //Console.WriteLine("Unimplemented Box Style {0} {1}", ShowBoxStyle(MyBox.BoxStyle), MyParent.MyItemInfo.ShortPath); - } - break; - //throw new Exception("Missing vlnBox handler"); - } - } - cb.Stroke(); - if (textLayer != null) cb.EndLayer(); - cb.RestoreState(); - return yPageStart; - } - - private void DrawAsteriskTopBottom(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin, ref float top, ref float bottom, float left) - { - // this box is not drawn, it is a series of asterisks drawn above and below text. - // For this box, there are no vertical edges (RGE uses this box type) - top = CalculateYOffset(yPageStart, yTopMargin); - // Bug fix B2013-091 - // added YMultiplier to handle compress pages - // bottom row of asterisks was in non-compressed line location - bottom = top - (Height * MyPageHelper.YMultiplier);//Height; - - // create a new font without any styles such as underline. - VE_Font vf = new VE_Font(MyParent.MyItemInfo.FormatStepData.Font.Family, (int)MyParent.MyItemInfo.FormatStepData.Font.Size, E_Style.None, (float)MyParent.MyItemInfo.FormatStepData.Font.CPI); - - // Top line first: - StringBuilder sb = new StringBuilder(); - sb.Append(MyBox.BXULC); - float size = (float)(MyBox.BXULC.Length * (72/vf.CPI)); - while (size < (MyBox.End - MyBox.Start)) - { - sb.Append(MyBox.BXHorz); - size = size + (float)(MyBox.BXHorz.Length * (72/vf.CPI)); - } - // Tack on the right upper corner. For some reason, the upper right corner in the - // formats had the first character as a space, this would put two spaces in a row - // at the end of the string, so remove the space before tacking on the upper right - // corner: - string bxstr = sb.ToString().TrimEnd() + MyBox.BXURC; - size = size + (float)((MyBox.BXURC.Length) * (72/vf.CPI)); - Rtf = GetRtf(bxstr, vf); - IParagraph = null; // set to null so that next access of IParagraph sets the Rtf. - Rtf2Pdf.TextAt(cb, IParagraph, left, top, size, 100, "", yBottomMargin); - - // Bottom line now - sb.Remove(0, sb.Length); - sb.Append(MyBox.BXLLC); - size = (float)(MyBox.BXLLC.Length * (72 / vf.CPI)); - while (size < (MyBox.End-MyBox.Start)) - { - sb.Append(MyBox.BXHorz); - size = size + (float)(MyBox.BXHorz.Length * (72 / vf.CPI)); - } - bxstr = sb.ToString().TrimEnd() + MyBox.BXLRC; - size = size + (float)((MyBox.BXLRC.Length) * (72/vf.CPI)); - Rtf = GetRtf(bxstr, vf); - IParagraph = null; // set to null so that next access of IParagraph sets the Rtf. - Rtf2Pdf.TextAt(cb, IParagraph, left, bottom, size, 100, "", yBottomMargin); - } - private void DrawAsteriskSide(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin, float top, float bottom, float left, float right) - { - top = CalculateYOffset(yPageStart, yTopMargin); - bottom = top - (Height * MyPageHelper.YMultiplier); - float height = (SixLinesPerInch * MyPageHelper.YMultiplier) + 4; // just add a little on so that height is a little bigger than character - VE_Font vf = MyParent.MyItemInfo.FormatStepData.Font; - - // Left side first: - Rtf = GetRtf(MyBox.BXVert, vf); - IParagraph = null; // set to null so that next access of IParagraph sets the Rtf. - // start down one line because the top/bottom code draws the corner - float vertDiff = top - (SixLinesPerInch * MyPageHelper.YMultiplier); - float width = (float)(MyBox.BXVert.Length * (72 / vf.CPI)); - while (vertDiff > bottom) - { - Rtf2Pdf.TextAt(cb, IParagraph, left, vertDiff, width, height, "", yBottomMargin); - vertDiff -= (SixLinesPerInch * MyPageHelper.YMultiplier); - } - - // right side: - vertDiff = top - (SixLinesPerInch * MyPageHelper.YMultiplier); - Rtf = GetRtf(MyBox.BXVert.TrimEnd(), vf); - IParagraph = null; // set to null so that next access of IParagraph sets the Rtf. - while (vertDiff > bottom) - { - Rtf2Pdf.TextAt(cb, IParagraph, right, vertDiff, width, height, "", yBottomMargin); - vertDiff -= (SixLinesPerInch * MyPageHelper.YMultiplier); - } - } - private string ShowBoxStyle(string str) - { - StringBuilder sb = new StringBuilder(); - foreach (Char c in str) - { - if (c >= ' ' && c < 128) - sb.Append(c); - else - sb.Append(string.Format("x{0:X0000}", (int)c)); - } - return sb.ToString(); - } - private static List _UnimplementedBoxStyles = new List(); - private string CharToAsc(string p) - { - StringBuilder sb = new StringBuilder(); - foreach (char c in p) - { - if (c >= ' ' && c < 127) sb.Append(c); - else sb.Append(string.Format("\\x{0:x}", (int)c)); - } - return sb.ToString(); - } - } -} diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs.bak b/PROMS/Volian.Print.Library/vlnParagraph.cs.bak deleted file mode 100644 index 4ed3b2db..00000000 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs.bak +++ /dev/null @@ -1,6266 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -//using System.Drawing; -using System.Text.RegularExpressions; -using System.IO; -using iTextSharp.text.pdf; -using iTextSharp.text; -using Itenso.Rtf; -using Itenso.Rtf.Parser; -using Itenso.Rtf.Interpreter; -using Itenso.Rtf.Support; -using Volian.Controls.Library; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; - -namespace Volian.Print.Library -{ - public partial class vlnParagraphs : List - { - private vlnParagraph _Parent; - public vlnParagraph Parent - { - get { return _Parent; } - set { _Parent = value; } - } - public vlnParagraphs(vlnParagraph parent) - { - _Parent = parent; - } - // Step Designators are used by Comanche Peak and stored in their CAUTION2 type - // We need to save this information and not process it like a normal Caution. - private string _StepDesignator; - public string StepDesignator - { - get { return _StepDesignator; } - set { _StepDesignator = value; } - } - private float? _StepDesignatorColumn; - - public float? StepDesignatorColumn - { - get { return _StepDesignatorColumn; } - set { _StepDesignatorColumn = value; } - } - private VE_Font _StepDesignatorFont; - - public VE_Font StepDesignatorFont - { - get { return _StepDesignatorFont; } - set { _StepDesignatorFont = value; } - } - - public bool IsEnhancedBackgroundFormat(ItemInfo itminfo) - { - return ((itminfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds); - } - public bool IsEnhancedDeviationFormat(ItemInfo itminfo) - { - return ((itminfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedDeviations) == E_PurchaseOptions.EnhancedDeviations); - } - public float Add(PdfContentByte cb, ItemInfoList itemInfoList, float xoff, float yoff, float yoffRight, int rnoLevel, int maxRNO, FormatInfo formatInfo) - { - return Add(cb, itemInfoList, xoff, yoff, yoffRight, rnoLevel, maxRNO, formatInfo, null); - } - public float Add(PdfContentByte cb, ItemInfoList itemInfoList, float xoff, float yoff, float yoffRight, int rnoLevel, int maxRNO, FormatInfo formatInfo, PromsPrinter pp) - { - int profileDepth = ProfileTimer.Push(">>>> vlnParagraphs.Add"); - bool bxHlsDraw = false; - int? bxIndex = null; - vlnBox box = null; - float yTop = yoff; - ItemInfo lastChild = null; - string lastHeader = null; - bool didComponentTableRow = false; - float tableBottomMost = 0; - float xoffBase = xoff; - int prevTplRow = 0; - int maxRnoSav = maxRNO; - foreach (ItemInfo iChildItemInfo in itemInfoList) - { - if(pp != null) pp.OnStatusChanged((iChildItemInfo.DisplayNumber ?? "") == "" ? iChildItemInfo.DisplayText : iChildItemInfo.DisplayNumber, PromsPrinterStatusType.LoadVlnParagraph); - if (iChildItemInfo.IsFootnote) - { - vlnParagraph para = new vlnParagraph(Parent, cb, iChildItemInfo, xoff, yoff, rnoLevel, maxRNO, formatInfo, null, null, yoffRight, true, iChildItemInfo.IsSection ? pp :null); - continue; // don't add it, vlnParagraph adds this item to the footnote list in ToPdf. - } - maxRNO = maxRnoSav; - if (iChildItemInfo.IsHigh) bxIndex = null; - if (iChildItemInfo.IsSection && (iChildItemInfo as SectionInfo).ColumnMode != maxRNO) - maxRNO = (iChildItemInfo as SectionInfo).ColumnMode; - int maxRnoTemplate = iChildItemInfo.TemplateChildColumnMode; - if (maxRnoTemplate >= 0) maxRNO = maxRnoTemplate-1; - ItemInfo childItemInfo = iChildItemInfo; - int? bxIndx = childItemInfo.FormatStepData == null ? -1 : childItemInfo.FormatStepData.StepLayoutData.STBoxindex; - // if the Caution or Note is not boxed, then use ColT to set the starting column of the Note or Caution - if (((bxIndx ?? -1) == -1) && (childItemInfo.IsCaution || childItemInfo.IsNote) && !childItemInfo.IsInRNO && - !childItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.Dev_Format && - !IsEnhancedBackgroundFormat(childItemInfo) && !IsEnhancedDeviationFormat(childItemInfo)) - //xoff += (float)childItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColT; - xoff = xoffBase + (float)childItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColT; - - // if in a ComponentTableFormat (FNP sub format 1, component list), column headers are defined - // by the first level of children. The data for the column is the child of the column header. - // Sometimes the column will not have data, the following handles that case. Also, use - // the boolean didComponentTableRow to keep track of the bottom most yoff of the table row. - if ((childItemInfo.MyDocStyle.ComponentList) && childItemInfo.MyParent.IsInTemplate()|| - (childItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm && childItemInfo.IsInTemplate())) - { - if (childItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) - { - // if this template element has a -1 for row, print it (if = 0 this is a heading for edit - // and not printed). if this template element has a width of > 0, then also print it, - // these are headings and should be printed). This was added for Calvert Alarm (BGEALN) format for - // DEVICE/SETPOINT (row=-1), and for POSSIBLE CAUSES, AUTOMATIC ACTIONS, etc (width>0) - // find the indexes into the template for this item. The index must be for the HLS this is - // or this is under. - int tindx = childItemInfo.TemplateIndex; - if (tindx == -1) - xoff = (float)childItemInfo.MyDocStyle.Layout.LeftMargin; - else if (childItemInfo.ActiveFormat.PlantFormat.FormatData.Templates[tindx].row < 0 || - childItemInfo.ActiveFormat.PlantFormat.FormatData.Templates[tindx].width > 0) - { - // move down for the 'POSSIBLE CAUSES'. To know it's that step type, check - // the column field in template. -1 represents staying on same row but using - // the start template field to get the xoffset. - if (prevTplRow == -1 && prevTplRow != childItemInfo.ActiveFormat.PlantFormat.FormatData.Templates[tindx].row) - { - // position to the furthest down the page of the Device/setpoint/annunciator window: - yoff = Math.Max(yoff, Parent.YBottomMost + vlnPrintObject.SixLinesPerInch); - yoff = Math.Max(yoff, tableBottomMost + vlnPrintObject.SixLinesPerInch); - } - xoff = (float)childItemInfo.MyDocStyle.Layout.LeftMargin + (childItemInfo.ActiveFormat.PlantFormat.FormatData.Templates[tindx].start * 7.2f); - prevTplRow = childItemInfo.ActiveFormat.PlantFormat.FormatData.Templates[tindx].row; - } - } - else - { - // childItemInfo = 'child' and set to use a template for defining size. - // Note that the 'IsCaution1' was added for Calvert Valve lists, i.e. - // the Caution1 is a subheader & must be printed within the valve list table. - if (childItemInfo.Steps == null && !childItemInfo.IsCaution1) - continue; - if (!childItemInfo.IsCaution1) childItemInfo = childItemInfo.Steps[0]; - didComponentTableRow = true; - } - } - if (childItemInfo.FormatStepData != null && childItemInfo.FormatStepData.TabData != null && childItemInfo.FormatStepData.TabData.IsTransition) - { - lastHeader = childItemInfo.DisplayText; - } - else - { - if ((childItemInfo.IsCaution || childItemInfo.IsNote) && - childItemInfo.MyPrevious != null && childItemInfo.MyPrevious.MyContent.Type != childItemInfo.MyContent.Type && - childItemInfo.NextItemCount > 0 && childItemInfo.NextItem!= null && childItemInfo.MyContent.Type == childItemInfo.NextItem.MyContent.Type) - childItemInfo.SetupTags(); // added for V.C. Summer Transition caution in EOP-15.0 step 5.4 - if (lastHeader != null) - { - childItemInfo.SetHeader(childItemInfo.FormatStepData.TabData.Font, lastHeader); - lastHeader = null; - } - // if the format has MatchUpRNOCautNote, then add a line to yoff, if not at top of rno column. - if (childItemInfo.FormatStepData != null && childItemInfo.FormatStepData.MatchUpRNO) - { - if (childItemInfo.MyParent != null && childItemInfo.MyParent.MyParent != null && !childItemInfo.MyParent.MyParent.IsHigh) - yoff += vlnPrintObject.SixLinesPerInch; - } - // if this is a caution/note and it has a caution/note substep, do it before this caution/note, so that - // it comes above it. - if (childItemInfo.Cautions != null && (childItemInfo.IsCaution || childItemInfo.IsNote)) - yoff = Add(cb, childItemInfo.Cautions, xoff, yoff, yoffRight, rnoLevel, maxRNO, formatInfo); - if (childItemInfo.Notes != null && (childItemInfo.IsCaution || childItemInfo.IsNote)) - yoff = Add(cb, childItemInfo.Notes, xoff, yoff, yoffRight, rnoLevel, maxRNO, formatInfo); - //int? bxIndx = childItemInfo.FormatStepData == null ? -1 : childItemInfo.FormatStepData.StepLayoutData.STBoxindex; - bool boxHLS = false; - - // If this step has a previous, and its header is different than the previous's header. Allow it to go - // into the box code. Without this check, none of the box code is run. This caused a problem - // for VCS where two different type notes where not getting separate boxes. - bool doSeparateBoxHdrChg = false; - if (childItemInfo.MyPrevious != null && ((childItemInfo.MyHeader != null && childItemInfo.MyPrevious.MyHeader != null - && childItemInfo.MyHeader.CleanText != childItemInfo.MyPrevious.MyHeader.CleanText) || - (childItemInfo.MyHeader == null && childItemInfo.MyPrevious.MyHeader != null || childItemInfo.MyHeader != null && childItemInfo.MyPrevious.MyHeader == null))) - doSeparateBoxHdrChg = childItemInfo.MyPrevious.MyContent.Type != childItemInfo.MyContent.Type;//true; - - bool alwaysBox = (childItemInfo.IsHigh && childItemInfo.FormatStepData.BoxIt); - if ((alwaysBox || (bxIndx ?? -1) != -1) && (bxIndex != bxIndx || childItemInfo.FormatStepData.BoxIt || childItemInfo.MyHeader != null || doSeparateBoxHdrChg || childItemInfo.FormatStepData.SeparateBox)) - { - if (childItemInfo.FormatStepData.BoxIt) // this is a boxed HLS - { - box = new vlnBox(); - box.MyBox = new Box(); - box.DefBox = vlnBox.BoxThin; - StepSectionLayoutData ssld = formatInfo.MyStepSectionLayoutData; - float colR = float.Parse(formatInfo.MyStepSectionLayoutData.ColRTable.Split(",".ToCharArray())[childItemInfo.ColumnMode]); - int widS = vlnPrintObject.ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, maxRNO); - box.DefEnd = (float)(ssld.ColS + colR + widS + (60 / 4.8)); - box.YOffset = yoff - .75F * vlnPrintObject.SixLinesPerInch; - } - else if (bxIndex == null) // First boxed step - { - if (childItemInfo.IsHigh) boxHLS = true; - box = new vlnBox(); - box.MyBox = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (box.MyBox != null) - { - box.YOffset = yoff; - int ln = 1; // a format flag determines whether there is a space before the note/caution. - if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++; - if (!boxHLS || (boxHLS && !childItemInfo.HasCautionOrNote)) - { - // note that in the following line of code, the Calvert Alarms' caution1 is their annunciator window - // so it needs the extra lines as defined by 'ln' or the text will be too close to the top of the box. - if (!formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm || iChildItemInfo.IsCaution1) - yoff += ln * vlnPrintObject.SixLinesPerInch; - else - yoff += vlnPrintObject.SixLinesPerInch; - } - } - bxIndex = bxIndx; - } - else // Change Box Style - { - bool handleSeparateBox = true; - if (childItemInfo.IsCaution && !childItemInfo.FormatStepData.SeparateBox && !childItemInfo.FormatStepData.SeparateBoxCautions) handleSeparateBox = false; - if (childItemInfo.IsNote && !childItemInfo.FormatStepData.SeparateBox) handleSeparateBox = false; - - if (bxIndx != null && (handleSeparateBox || bxIndex != bxIndx || doSeparateBoxHdrChg)) - { - if (box != null) - { - box.Height = yoff - box.YOffset; // new height, with children - if (formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm || - formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvert) - { - if (childItemInfo.MyHeader != null && childItemInfo.MyPrevious != null - && ((childItemInfo.MyPrevious.IsCautionOrNotePart && childItemInfo.IsCautionOrNotePart) - || childItemInfo.FormatStepData.SeparateBox)) - yoff += vlnPrintObject.SixLinesPerInch * 2; - } - else if (childItemInfo.MyHeader != null && childItemInfo.MyPrevious != null - && ((childItemInfo.MyPrevious.IsCaution && childItemInfo.IsCaution) || - (childItemInfo.MyPrevious.IsNote && childItemInfo.IsNote) || childItemInfo.FormatStepData.SeparateBox)) - yoff += vlnPrintObject.SixLinesPerInch * 2; - else if (doSeparateBoxHdrChg) - yoff += vlnPrintObject.SixLinesPerInch * 2; - } - box = new vlnBox(); - box.MyBox = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - int ln = 1; // a format flag determines whether there is a space before the note/caution. - //if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++; - if (childItemInfo.MixCautionNotesDiffType()) ln += 2; - box.YOffset = yoff + ((ln - 1) * vlnPrintObject.SixLinesPerInch); - if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++; - yoff += ln * vlnPrintObject.SixLinesPerInch; - } - } - bxIndex = bxIndx; - } - else if (((bxIndx ?? -1) == -1) && box != null) - { - // BGE STP has a null box for its 'Date Time Stamp', i.e. Note4, - // without this code if there is a previous sibling the 'Date Time Note' was - // included in its previous sibling's box: - // (STBoxindex="" is how Note4's box in BGE STP is defined - it is the only place - // in the format files that this is done) - box.Height = yoff - box.YOffset; // new height, with children - yoff += 2 * vlnPrintObject.SixLinesPerInch; - box = null; - } - // DoubleBoxHls is a format flag used by BGE to draw double lined boxes around their HLS - if (childItemInfo.IsHigh && ((childItemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) == E_DocStructStyle.DoubleBoxHLS)) - { - boxHLS = true; - box = new vlnBox(); - box.MyBox = new Box(); - box.DefBox = vlnBox.DOUBLEboxHLS; - bxHlsDraw = true; - } - // Comanche peak or WCN bck Step designator - if (childItemInfo.IsCaution2 && childItemInfo.SameRowAsParent || - childItemInfo.IsCaution1 && childItemInfo.SameRowAsParent) - { - // Save the Step Designator information - // SameRowAsParentMultiLine currently used in Comanche Peak EOP and Flex formats - handles a hard return in the caution type - _StepDesignator = ((childItemInfo.SameRowAsParentMultiLines) ? childItemInfo.MulitLineStepDesignatorDisplayText : childItemInfo.DisplayText); - int typ = ((int)childItemInfo.MyContent.Type) % 10000; - _StepDesignatorColumn = formatInfo.PlantFormat.FormatData.StepDataList[typ].ColOverride; - E_Style es = (E_Style)childItemInfo.FormatStepData.Font.Style; - _StepDesignatorFont = new VE_Font(childItemInfo.FormatStepData.Font.Family, (int)childItemInfo.FormatStepData.Font.Size, es, (float)childItemInfo.FormatStepData.Font.CPI); - } - else - { - if (childItemInfo is SectionInfo) formatInfo = (childItemInfo as SectionInfo).LocalFormat ?? formatInfo; - if (rnoLevel < maxRNO && childItemInfo.RNOs != null) yoff = Math.Max(yoff, yoffRight); - if (childItemInfo.ActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.ContActBoxOnSubSteps && - box != null && box.MyBox != null && bxIndx == null) // point beach boxed substeps - { - box.Height = yoff - box.YOffset - (1F * vlnPrintObject.SixLinesPerInch); - box = null; - yoff += 1 * vlnPrintObject.SixLinesPerInch; - } - vlnParagraph para = new vlnParagraph(Parent, cb, childItemInfo, xoff, yoff, rnoLevel, maxRNO, formatInfo, null, null, yoffRight, true, pp); - - // if doing the component list (FNP), keep track of the bottom most columns' data - // so this can be returned after the row is done. - tableBottomMost = Math.Max(tableBottomMost, para.YBottomMost); - if (box != null && box.MyParent == null) - { - box.MyParent = para; - para.PartsContainer.Add(box); - } - Add(para); - if (didComponentTableRow && iChildItemInfo.Steps != null && iChildItemInfo.Steps.Count > 1) - tableBottomMost = Math.Max(tableBottomMost, AddComponentTableSiblings(cb, iChildItemInfo.Steps[1], xoff, para.YBottomMost, rnoLevel, maxRNO, formatInfo, yoffRight, pp)); - - // Calvert Alarm's caution1 is the Annunciator window, i.e. in top right of page. Adjust - // y offset for this caution that is printed BELOW the hls. - if (childItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm && iChildItemInfo.IsCaution1) para.MyHighLevelParagraph.YBottomMost = para.YBottomMost; - - // para.YBottomMost will have y for bottom of any substeps that are also enclosed in the box. - if (childItemInfo.IsStep && childItemInfo.MyHLS != null && childItemInfo.MyHLS.FormatStepData.UseSmartTemplate && para.ChildrenBelow.Count > 0 && para.ChildrenBelow[0].YBottomMost > para.YBottomMost) - yoff = para.ChildrenBelow[0].YBottomMost; - // if doing the component list (FNP), yoff for the HLS (if it's the component in the list, - // i.e. the leftmost item in the table), the yoff is either the HLS bottom, or the bottom most - // of all of the other columns' data. - else if (childItemInfo.IsHigh && childItemInfo.FormatStepData.UseOldTemplate && childItemInfo.MyDocStyle.ComponentList) - yoff = Math.Max(para.YBottom, para.YBottomMost) + vlnPrintObject.SixLinesPerInch; - // increment the y offset if not doing the ComponentTableFormat - else if (!para.UseTemplateKeepOnCurLine(childItemInfo)) - yoff = para.YBottomMost; - // don't adjust YBottomost until after yoff is set for the RNO Separator - para.YBottomMost += para.YBottomMostAdjust; - if (box != null && childItemInfo.FormatStepData != null && childItemInfo.FormatStepData.BoxIt) - { - box.Height = yoff - box.YOffset - (1.1F * vlnPrintObject.SixLinesPerInch); - box = null; // if doing boxed steps, only do single sibling at a time. - } - if (bxHlsDraw) - { - box.YOffset = para.YTop; - box.Height = para.Height; - box = null; - } - else if (boxHLS) - { - // the following line controls whether there is 1 line or 2 lines between - // the box line & the starting/ending yoffset of the HLS. WEP2 had no extra line between - // box & top/bottom of step. The DiffContActBox was added for WEP2. - int boxLnAdjust = iChildItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.DiffContActBox ? 1 : 2; - box.YOffset = para.YTop - (boxLnAdjust * vlnPrintObject.SixLinesPerInch); - boxLnAdjust = iChildItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.DiffContActBox ? 1 : 0; - - // if the YBottomForBox is set, use it to define height. Note that this property was - // introduced for IP3 continuous hls (surrounded by the asterisk box), no other format/step type uses it. - if (para.YBottomForBox > 0) - box.Height = para.YBottomForBox - box.YOffset - (boxLnAdjust * vlnPrintObject.SixLinesPerInch); // para.YTop - (1.1F * vlnPrintObject.SixLinesPerInch); - else - box.Height = para.YBottomMost - box.YOffset - (boxLnAdjust * vlnPrintObject.SixLinesPerInch); // para.YTop - (1.1F * vlnPrintObject.SixLinesPerInch); - box = null; - } - } - if (boxHLS) - { - // if the next HLS is boxed also, only need 1 line separating, otherwise - // need 2. - ItemInfo nxt = childItemInfo.GetNextItem(); - int nxtIsBoxed = 2; - if (nxt != null && - nxt.FormatStepData.StepLayoutData.STBoxindex != null && nxt.FormatStepData.StepLayoutData.STBoxindex >= 0) nxtIsBoxed--; - if (nxt != null && (nxt.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) == E_DocStructStyle.DoubleBoxHLS) nxtIsBoxed = 0; - yoff += (nxtIsBoxed * vlnPrintObject.SixLinesPerInch); - } - if (childItemInfo.IsSequential && childItemInfo.NextItemCount > 0 && childItemInfo.MyParent.IsHigh && ((childItemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.XBlankW1stLevSub) == E_DocStructStyle.XBlankW1stLevSub)) - yoff += vlnPrintObject.SixLinesPerInch; - boxHLS = false; - lastChild = childItemInfo; - } - } - if (box != null && box.MyBox != null) - { - box.Height = yoff - box.YOffset; // new height, with children - yoff += 2 * vlnPrintObject.SixLinesPerInch; - if (lastChild != null && lastChild.FormatStepData.AlwaysUseExtraLines && (lastChild.IsCaution || lastChild.IsNote)) - { - if (!lastChild.MyParent.IsHigh) - yoff += lastChild.ActiveFormat.PlantFormat.FormatData.StepDataList[2].StepLayoutData.STExtraSpace ?? 0; - } - } - // after the last child substep when doing a Component table row (FNP Component Lists), set the value - // of the yoff to be the bottom most line in the table. - if (didComponentTableRow) yoff = tableBottomMost; - ProfileTimer.Pop(profileDepth); - return yoff; - } - private float AddComponentTableSiblings(PdfContentByte cb, ItemInfo ii, float xoff, float yoff, int rnoLevel, int maxRNO, FormatInfo formatInfo, float yoffRight, PromsPrinter pp) - { - // Some of the data for the valve lists (BGE) and component lists (FARLEY) have - // sibling data within a column, rather than hard returns within the same paragraph. - float tableBottomMost = 0; - while (ii != null) - { - vlnParagraph para = new vlnParagraph(Parent, cb, ii, xoff, yoff, rnoLevel, maxRNO, formatInfo, null, null, yoffRight, true, pp); - tableBottomMost = Math.Max(tableBottomMost, para.YBottomMost); - yoff = para.YBottomMost; - Add(para); - ii = ii.GetNextItem(); - } - return tableBottomMost; - } - public float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin) - { - foreach (vlnParagraph child in this) - { - yPageStart = child.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - } - return yPageStart; - } - } - public partial class vlnParagraph : vlnPrintObject - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - public override string ToString() - { - return string.Format("{0} - {1} - {2} - '{3}'", this.MyItemInfo.ItemID, this.YTop, this.YSize, this.MyItemInfo.ShortPath); - } - private bool _PageBreakOnStep = false; - public bool PageBreakOnStep - { - get { return _PageBreakOnStep; } - set { _PageBreakOnStep = value; } - } - private bool HasCalvertMacro = false; // this step has the Calvert (BGE) Alarm CONDITION/RESPONSE macro associated with it - private float WidthNoLimit = 0; - private vlnTable _MyGrid; - public vlnTable MyGrid - { - get { return _MyGrid; } - set { _MyGrid = value; } - } - public float SectYPageStart = 0; - private bool _IsWordDocPara = false; - public bool IsWordDocPara - { - get { return _IsWordDocPara; } - set { _IsWordDocPara = value; } - } - public static bool HasPrefPageBreak = false; // use to track page breaks for supp info - public bool PrefPageBreak = false; - private bool _ShowSectionTitles; - public bool ShowSectionTitles - { - get { return _ShowSectionTitles; } - set { _ShowSectionTitles = value; } - } - - public float ParagraphToPdf(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin) - { - //if(PartsAbove.Count > 0 && PartsAbove[0] is vlnHeader) - // if (PartsLeft.Count > 0 && PartsLeft[0] is vlnTab) - // //if((PartsLeft[0] as vlnTab).Text[0] != '\u25CF') - // _MyLog.WarnFormat("NoteTab '{0}','{1}','{2}','{3}','{4}','{5}','{6}'", (PartsAbove[0] as vlnHeader).Text, (PartsLeft[0] as vlnTab).Text, MyItemInfo.MyProcedure.DisplayNumber, MyItemInfo.MyHLS.DisplayText, - // MyItemInfo.ShortPath, MyItemInfo.FormatStepData.TabData.IdentPrint, MyItemInfo.FormatStepData.TabData.IdentEdit); -// - if (MyItemInfo.IsFootnote && Processed) return yPageStart; - int pagenumTran = 0; - if ((MyItemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DontCountFoldoutPgs) == E_DocStructStyle.DontCountFoldoutPgs) - pagenumTran = MyPageHelper.CurrentPageNumberNoFoldouts; - else - pagenumTran = MyPageHelper.CurrentPageNumber; - if (MyItemInfo.PageNumber == -1) MyItemInfo.PageNumber = pagenumTran; - else if (MyItemInfo.PageNumberUsed != 0 && MyItemInfo.PageNumberUsed != pagenumTran) - { - if (PromsPrinter.TransPageNumProblems == null) PromsPrinter.TransPageNumProblems = new List(); - string pnErr = string.Format("{0} {1} {2} {3}", MyItemInfo.ItemID, MyItemInfo.ShortPath, MyItemInfo.PageNumberUsed, pagenumTran); - PromsPrinter.TransPageNumProblems.Add(pnErr); - } - MyItemInfo.PageNumberNextPass = pagenumTran; - if (Processed) return yPageStart; - //float localYPageStart = yPageStart; - Processed = true; - if (_PartsAbove != null && _PartsAbove.Count > 0) - { - // For McGuire and Catawba, they use CustomSpacing which inserts a blank line before high level steps - // if we paginate on one of these blank lines, we want to skip that blank line so that there isn't an - // extra blank line at the top of the page. - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.CustomSpacing && - PartsAbove[0].YOffset + yTopMargin == yPageStart && PartsAbove[0].IParagraph.Content == " ") - { - if (MyItemInfo.IsHigh && ((YOffset - YTopMost) > SixLinesPerInch)) - { - //Console.WriteLine("==> {0} {1} MOST {2} DIF {3}", MyItemInfo.ShortPath, YOffset, YTopMost, YOffset - YTopMost); - yPageStart = yTopMargin + YTopMost; - } - else - yPageStart = yTopMargin + YOffset; - } - else - yPageStart = PartsAbove.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - } - - if (MyItemInfo.IsHigh && ((MyItemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) == E_DocStructStyle.DoubleBoxHLS)) yPageStart -= SixLinesPerInch; - if (MyItemInfo.IsHigh && MyItemInfo.MyDocStyle.SpecialStepsFoldout) yPageStart -= SixLinesPerInch; - if (MyItemInfo.IsHigh && !MyItemInfo.ActiveFormat.MyStepSectionLayoutData.DoSTExtraAtTop && (yPageStart - YTopMost == yTopMargin)) - { - yPageStart += ((MyItemInfo.FormatStepData == null) ? 0 : MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace ?? 0); - if ((MyItemInfo.Cautions != null && MyItemInfo.Cautions[0].FormatStepData.AlwaysUseExtraLines) || (MyItemInfo.Notes != null && MyItemInfo.Notes[0].FormatStepData.AlwaysUseExtraLines)) - yPageStart -= ((MyItemInfo.FormatStepData == null) ? 0 : MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace ?? 0); - } - // Save the HLS & RNO string in case the pagelist item uses it (some of the backgrounds): - if (MyItemInfo.FormatStepData != null && MyItemInfo.FormatStepData.PageBreakOnStep) - { - MyPageHelper.HLSTAB = MyItemInfo.HighLevelStepTabPageList; - // find the rno and use it's tab for the HLRNO part. - ItemInfo rno = MyItemInfo.RNOs != null && MyItemInfo.RNOs.Count > 0 ? MyItemInfo.RNOs[0] : null; - string rnotab = (rno == null) ? null : rno.DisplayText; - MyPageHelper.HLRNO = rno == null ? null : MyItemInfo.FormatStepData.TabData.RNOIdent + rnotab; - MyPageHelper.ResetSvg(); - } - - float yLocation = CalculateYOffset(yPageStart, yTopMargin); - if (MyItemInfo.HasChangeBar && MyPageHelper.ChangeBarDefinition.MyChangeBarType != PrintChangeBar.Without) MyPageHelper.AddChangeBar(DoChangeBar(cb, MyItemInfo, MyPageHelper, XOffset, yLocation, MyPageHelper.MaxRNO, MyItemInfo.ActiveFormat), cbMess); - float retval = yLocation; - // 'doprint' will always be true if not doing NSP's {HLSTEXT} token in page list. The following code is used to prevent - // printing the High level step, if the high level step is printed from the pagelist using {HLSTEXT} token. - bool doprint = !(MyPageHelper.DidHLSText && MyItemInfo.ItemID == MyPageHelper.HasHLSTextId); - if (MyItemInfo.IsFigure) - { - yLocation -= (SixLinesPerInch * MyPageHelper.YMultiplier); - if (ImageText != null) - retval = DrawFigure(cb, yBottomMargin, yLocation, yPageStart, yTopMargin); - else - retval = DrawText(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation); - } - else if (MyItemInfo.IsRtfRaw) - { - retval = DrawRaw(cb, yBottomMargin, yLocation, yPageStart, yTopMargin); - } - else if (!MyItemInfo.IsStepSection - || (ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout)) // Don't ouput the Step Section title - { - // if this is a section, then check the section config for printable header too. - if (MyItemInfo.IsSection) - { - SectionConfig sch = MyItemInfo.MyConfig as SectionConfig; - //if (!(ShowSectionTitles - // && !MyItemInfo.MyDocStyle.CancelSectTitle - // && !MyItemInfo.MyDocStyle.SpecialStepsFoldout - // && !MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) - // && - if (sch != null && sch.Section_PrintHdr != "Y") doprint = false; - } - if (MyItemInfo.MyContent.MyGrid != null) - { - int profileDepth = ProfileTimer.Push(">>>> vlnParagraph.DrawDrid"); - // RHM20150507 Include Footer - retval = DrawGrid(cb, ref yPageStart, yTopMargin, yBottomMargin + (float)MyItemInfo.MyDocStyle.Layout.FooterLength, ref yLocation); // RHM20150429 - Table Scrunch - ProfileTimer.Pop(profileDepth); - } - else - { - if (doprint) - { - int profileDepth = ProfileTimer.Push(">>>> vlnParagraph.DrawText"); - IsCompressed = (MyPageHelper.YMultiplier != 1 && MyItemInfo != null && MyItemInfo.FormatStepData != null && MyItemInfo.FormatStepData.Font.Size >= 12 && (MyItemInfo.FormatStepData.Font.Style & E_Style.Underline) != 0); - retval = DrawText(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation); - // _yPageStartForSupInfo is used to move steps down the page for the supinfo pdf. Each supinfo step may not be related to previous in structure, so need this to set y location. - if (MyItemInfo.IsInSupInfo) _yPageStartForSupInfo = retval; - // Wolf Creek Training format puts a separator line after printing the section number/title - if (MyItemInfo.IsSection && MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.WCNTraining) - MyPageHelper.SectionSepLineYoffStart = retval - (SixLinesPerInch / 2); - SectionContinuePrinted = true; - ProfileTimer.Pop(profileDepth); - } - } - if (MyItemInfo.IsHigh) - { - MyPageHelper.PageBookmarks.Add(MyItemInfo, (MyItemInfo.MyTab == null) ? "" : MyItemInfo.MyTab.CleanText + " " + MyItemInfo.DisplayText, - new PdfDestination(PdfDestination.FITBH, yLocation + YVeryTop - YTopMost + SixLinesPerInch)); - } - } - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.WolfcreekCKLFormat) - { - DrawChkOrValveTableLines(cb, MyItemInfo, yPageStart, yTopMargin, yBottomMargin, yLocation); - } - if (MyItemInfo.IsSection) - { - SectionConfig sc = MyItemInfo.MyConfig as SectionConfig; - if ((MyItemInfo.MyDocStyle != null && MyItemInfo.MyDocStyle.IncludeInTOC && (sc == null || sc.Section_TOC != "Y")) - || ((MyItemInfo.MyDocStyle == null || !MyItemInfo.MyDocStyle.IncludeInTOC) && (sc != null && sc.Section_TOC == "Y"))) - { - string tocKey = string.Format("TOC{0}", MyItemInfo.ItemID); - if (MyPageHelper.MyTOCPageCounts.ContainsKey(tocKey)) - { - PageCount pc = MyPageHelper.MyTOCPageCounts[tocKey]; - if (pc.Total == 0) - { - pc.Total = MyPageHelper.CurrentTOCPageNumber + 1; - pc.DrawTemplates(); - - } - } - } - } - if (!doprint) return yPageStart; - if (_PartsLeft != null && _PartsLeft.Count > 0) yPageStart = PartsLeft.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - if (_PartsRight != null && _PartsRight.Count > 0) yPageStart = PartsRight.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - if (_PartsBelow != null && _PartsBelow.Count > 0) yPageStart = PartsBelow.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - if (_PartsContainer != null && _PartsContainer.Count > 0) yPageStart = PartsContainer.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - - //if (localYPageStart != yPageStart) DebugText.WriteLine("ParToPdf-yPagestartDiff:{0},{1},{2}", MyItemInfo.ItemID, localYPageStart, yPageStart); - return yPageStart; - } - - private float DrawRaw(PdfContentByte cb, float yBottomMargin, float yLocation, float yPageStart, float yTopMargin) - { - if (DebugText.IsOpen) DebugText.WriteLine("{0},'{1}','{2}','<>'", MyItemInfo.ItemID, MyItemInfo.DBSequence, FormattedText); - float retval = yLocation; - System.Drawing.Size sz = RtfRawItem.GetRtfRawSize(MyItemInfo.MyContent.Text); - Height = sz.Height; - Width = sz.Width; - Volian.Controls.Library.RTF myRtb = new RTF(); - myRtb.Size = sz; - myRtb.Rtf = MyItemInfo.MyContent.Text; - try - { - System.Drawing.Image image = new System.Drawing.Bitmap((int)Width, (int)Height); - System.Drawing.Graphics gr = System.Drawing.Graphics.FromImage(image); - myRtb.RenderClipped(gr, new System.Drawing.Rectangle(0, 0, (int)Width, (int)Height)); - retval = Rtf2Pdf.RtfRawAt(cb, image, XOffset + MyItemInfo.FormatStepData.Font.CharsToTwips, yLocation, Width * MyPageHelper.YMultiplier, Height * MyPageHelper.YMultiplier, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.ToUpper().Contains("BORDERLESS")); - } - catch (Exception ex) - { - return retval + 2 * SixLinesPerInch; // couldn't print equation, just print 2 blank lines. - } - return retval; - } - private bool _SectionContinuePrinted = false; - - public bool SectionContinuePrinted - { - get { return _SectionContinuePrinted; } - set { _SectionContinuePrinted = value; } - } - private void DrawChkOrValveTableLines(PdfContentByte cb, ItemInfo ii, float yPageStart, float yTopMargin, float yBottomMargin, float yLocation) - { - if (!ii.IsStep || ii.IsCaution || ii.IsNote) return; - - Box bx = ii.ActiveFormat.PlantFormat.FormatData.BoxList[0]; - float lpi = MyPageHelper.YMultiplier == 1.0 ? SixLinesPerInch : _SevenLinesPerInch; - bool savedebug = Rtf2Pdf.PdfDebug; - Rtf2Pdf.PdfDebug = false; - System.Drawing.Font symbFont = new System.Drawing.Font("VESymbFix", (float)ii.FormatStepData.Font.Size); - iTextSharp.text.Font iSymblFont = Volian.Svg.Library.VolianPdf.GetFont(symbFont); - iSymblFont.Color = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Black)); - // The vertPos array from the format defines the column locations: - string[] vertPos = ii.MyHLS.FormatStepData.VertPos.Split(",".ToCharArray()); - // Count how many vertical lines are in the checklist table: - int cntVertPos = vertPos.Length - 1; - while (vertPos[cntVertPos] == "0" && cntVertPos > 0) cntVertPos--; - cntVertPos++; - Paragraph paraVertLine = new Paragraph(ii.ActiveFormat.PlantFormat.FormatData.BoxList[0].BXVert, iSymblFont); - float lWidth = 100; - float csize = 6 - .3f; // added the .3 to make line up with 16bit. - - // if High Level Step, just need to do edges for number of lines: - if (ii.IsHigh) - { - // count # of '{\par} commands in prefix and suffix. - int countLine = 0; - string preSuf_Fix = (ii.FormatStepData.Prefix != null && ii.FormatStepData.Prefix != "") ? ii.FormatStepData.Prefix : null; - if (preSuf_Fix != null) countLine++; // account for a line of prefix (if no \par) - // if this is a proportional font, need to 'draw' the prefix/suffix. NOTE that the suffix should - // just list the headers and the prefix can be 'empty'. - if (ii.FormatStepData.Font.FontIsProportional()) - { - float yLocVertLine = yLocation + (lpi / 2); - // Prefix, i.e. Top line: - Paragraph topLeftLine = new Paragraph(bx.BXULC, iSymblFont); - Rtf2Pdf.TextAt(cb, topLeftLine, float.Parse(vertPos[0]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine, lWidth, 100, null, yBottomMargin); - Paragraph topRightLine = new Paragraph(bx.BXURC, iSymblFont); - Rtf2Pdf.TextAt(cb, topRightLine, float.Parse(vertPos[cntVertPos - 1]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine, lWidth, 100, null, yBottomMargin); - Paragraph horzLine = new Paragraph(bx.BXHorz, iSymblFont); - float thPos = float.Parse(vertPos[0]) + csize; - while (thPos < float.Parse(vertPos[cntVertPos - 1])) - { - Rtf2Pdf.TextAt(cb, horzLine, thPos + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine, lWidth, 100, null, yBottomMargin); - thPos += csize; - } - - // Vertical Lines around HLS - //int countLine = (int)(this.Height / lpi); - yLocVertLine = yLocation - (lpi / 2); - for (int i = 0; i < 1; i++) - { - Rtf2Pdf.TextAt(cb, paraVertLine, float.Parse(vertPos[0]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine, lWidth, 100, null, yBottomMargin); - Rtf2Pdf.TextAt(cb, paraVertLine, float.Parse(vertPos[cntVertPos - 1]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine, lWidth, 100, null, yBottomMargin); - yLocVertLine -= lpi; - } - - // Suffix, i.e. Column headers. - // first do left/right side chars above and below column headers - //countLine = (int)(this.Height / lpi); - Paragraph sideLeftLine = new Paragraph(bx.BXMLS, iSymblFont); - Rtf2Pdf.TextAt(cb, sideLeftLine, float.Parse(vertPos[0]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine, lWidth, 100, null, yBottomMargin); - Rtf2Pdf.TextAt(cb, sideLeftLine, float.Parse(vertPos[0]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine - (2 * lpi), lWidth, 100, null, yBottomMargin); - Paragraph sideRightLine = new Paragraph(bx.BXMRS, iSymblFont); - Rtf2Pdf.TextAt(cb, sideRightLine, float.Parse(vertPos[6]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine, lWidth, 100, null, yBottomMargin); - Rtf2Pdf.TextAt(cb, sideRightLine, float.Parse(vertPos[6]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine - (2 * lpi), lWidth, 100, null, yBottomMargin); - - // now do the lines with the 'T' type lines for top/bottom of vertical lines. - thPos = float.Parse(vertPos[0]) + csize; - while (thPos < float.Parse(vertPos[cntVertPos - 1])) - { - Rtf2Pdf.TextAt(cb, horzLine, thPos + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine, lWidth, 100, null, yBottomMargin); - Rtf2Pdf.TextAt(cb, horzLine, thPos + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine - (2 * lpi), lWidth, 100, null, yBottomMargin); - thPos += csize; - } - - // now do the vertical bar between header words and the column header words. - yLocVertLine -= lpi; - string[] colHdrs = _MyItemInfo.FormatStepData.Suffix.Substring(_MyItemInfo.FormatStepData.Suffix.IndexOf(";") + 1).Split(",".ToCharArray()); - iTextSharp.text.Font iHdrFont = Volian.Svg.Library.VolianPdf.GetFont(_MyItemInfo.FormatStepData.Font.WindowsFont); - iHdrFont.Color = new iTextSharp.text.Color(PrintOverride.OverrideTextColor(System.Drawing.Color.Black)); - - Paragraph topT = new Paragraph(bx.BXUMID, iSymblFont); - Paragraph crossT = new Paragraph(bx.BXMID, iSymblFont); - - for (int i = 0; i < cntVertPos; i++) - { - // do vertical line: - Rtf2Pdf.TextAt(cb, paraVertLine, float.Parse(vertPos[i]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine, lWidth, 100, null, yBottomMargin); - // do the column header text - center it: - if (i < colHdrs.Length) - { - Paragraph parColHdr = new Paragraph(colHdrs[i], iHdrFont); - // find the center point of column header and subtract 1/2 width of the text to locate the text. - float hloc = (float.Parse(vertPos[i]) + ((float.Parse(vertPos[i + 1]) - float.Parse(vertPos[i])) / 2)); - Chunk chk = (Chunk)parColHdr.Chunks[0]; - hloc = hloc - (chk.GetWidthPoint() / 2); - Rtf2Pdf.TextAt(cb, parColHdr, hloc + (float)ii.MyDocStyle.Layout.LeftMargin, yLocVertLine, lWidth, 100, null, yBottomMargin); - } - // Do the crosswise table characters, i.e. T and + - if (i > 0 && i < colHdrs.Length) - { - Rtf2Pdf.TextAt(cb, topT, float.Parse(vertPos[i]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine + lpi, lWidth, 100, null, yBottomMargin); - Rtf2Pdf.TextAt(cb, crossT, float.Parse(vertPos[i]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine - lpi, lWidth, 100, null, yBottomMargin); - } - } - } - else - #region OriginalHLS - { - int hIndx = preSuf_Fix.IndexOf(@"{\par}"); - while (preSuf_Fix != null && hIndx >= 0) - { - hIndx = preSuf_Fix.IndexOf(@"{\par}", hIndx + 1); - countLine++; - } - preSuf_Fix = (ii.FormatStepData.Suffix != null && ii.FormatStepData.Suffix != "") ? ii.FormatStepData.Suffix : null; - if (preSuf_Fix != null) countLine++; // account for a line of suffix (if no \par) - hIndx = preSuf_Fix.IndexOf(@"{\par}"); - while (preSuf_Fix != null && hIndx >= 0) - { - hIndx = preSuf_Fix.IndexOf(@"{\par}", hIndx + 1); - countLine++; - } - // get first and last vertpos for location of lines: - // for each line of text, draw the start & end box line: - countLine = (int)(this.Height / lpi) - countLine; - float yLocVertLine = yLocation - lpi / 2; - for (int i = 0; i < countLine; i++) - { - Rtf2Pdf.TextAt(cb, paraVertLine, float.Parse(vertPos[0]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine, lWidth, 100, null, yBottomMargin); - Rtf2Pdf.TextAt(cb, paraVertLine, float.Parse(vertPos[cntVertPos - 1]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yLocVertLine, lWidth, 100, null, yBottomMargin); - yLocVertLine -= lpi; - } - } - #endregion OriginalHLS - } - else - { - // This section of code draws the lines around the substeps (the actual table part) - Paragraph horzLine = new Paragraph(ii.ActiveFormat.PlantFormat.FormatData.BoxList[0].BXHorz, iSymblFont); - bool bottomOfTable = (ii.NextItem == null || ii.NextItemCount == 0) || - (MyPageHelper.ParaBreaks.Count > 0 && MyPageHelper.ParaBreaks[0].MyItemInfo.ItemID == ii.NextItem.ItemID); - // if bottom of table use different cross/beg/end chars than if in middle of table. - Paragraph leftLine = new Paragraph(bottomOfTable ? bx.BXLLC : bx.BXMLS, iSymblFont); - Paragraph rightLine = new Paragraph(bottomOfTable ? bx.BXLRC : bx.BXMRS, iSymblFont); - - // If this item is in the leftmost column in table, this is determined by looking at its parent, - // its parent must be a HLS, do the vertical lines since all cells have all vertical lines. - // Lines should be drawn from current to ybottommost. Also draw the bottom line. - if (ii.MyParent.IsHigh) - { - // first do the vertical bars. - float curY = yLocation; - while (curY > (yPageStart - this.YBottomMost + lpi)) - { - for (int i = 0; i < cntVertPos; i++) - Rtf2Pdf.TextAt(cb, paraVertLine, float.Parse(vertPos[i]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, curY + 3, lWidth, 100, null, yBottomMargin); - curY -= lpi; - } - // Now do the bottom line for this item. - Paragraph crossLine = new Paragraph(bottomOfTable ? bx.BXLMID : bx.BXMID, iSymblFont); - float yloc = yPageStart - this.YBottomMost + 18; - Rtf2Pdf.TextAt(cb, leftLine, float.Parse(vertPos[0]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yloc, lWidth, 100, null, yBottomMargin); - float hPos = float.Parse(vertPos[0]) + csize; - int doHorizCnt = 0; - while (doHorizCnt < cntVertPos - 1) - { - while (hPos < float.Parse(vertPos[doHorizCnt + 1])) - { - Rtf2Pdf.TextAt(cb, horzLine, hPos + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yloc, lWidth, 100, null, yBottomMargin); - hPos += csize; - } - - // put out middle piece, i.e. + (cross) lines or bottom line - hPos = float.Parse(vertPos[doHorizCnt + 1]); - if (doHorizCnt < cntVertPos - 2) // don't put out crossLine on last one. - Rtf2Pdf.TextAt(cb, crossLine, float.Parse(vertPos[doHorizCnt + 1]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yloc, lWidth, 100, null, yBottomMargin); - hPos += csize; - doHorizCnt++; - } - // put out the right side piece - Rtf2Pdf.TextAt(cb, rightLine, float.Parse(vertPos[cntVertPos - 1]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, yloc, lWidth, 100, null, yBottomMargin); - } - // Now handle middle parts of the table. For whatever sub level we're at, draw the cross character - // and the horizontal. This is case where the component number may have multiple descriptions,positions, etc. associated - // with it. - if (!ii.MyParent.IsHigh && ii.NextItem != null && ii.NextItemCount > 0) - { - // draw horizontally from this sublevel to the end. - int sublev = 0; - ItemInfo par = this.MyItemInfo; - while (!par.IsHigh) - { - sublev++; - par = par.MyParent; - } - sublev--; - float ylocs = yPageStart - this.YBottomMost + 15; - for (int i = sublev; i < cntVertPos - 1; i++) - { - float hPos = float.Parse(vertPos[i]) + csize; - Rtf2Pdf.TextAt(cb, leftLine, float.Parse(vertPos[i]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, ylocs, lWidth, 100, null, yBottomMargin); - while (hPos < float.Parse(vertPos[i + 1])) - { - // do the horizontal line - Rtf2Pdf.TextAt(cb, horzLine, hPos + (float)ii.MyDocStyle.Layout.LeftMargin - csize, ylocs, lWidth, 100, null, yBottomMargin); - hPos += csize; - } - } - // Do the last cross character - Rtf2Pdf.TextAt(cb, rightLine, float.Parse(vertPos[cntVertPos - 1]) + (float)ii.MyDocStyle.Layout.LeftMargin - csize, ylocs, lWidth, 100, null, yBottomMargin); - } - } - Rtf2Pdf.PdfDebug = savedebug; - } - private float DrawGrid(PdfContentByte cb, ref float yPageStart, float yTopMargin, float yBottomMargin, ref float yLocation) - { - //DebugText.WriteLine("{0},'{1}','{2}','<>'", MyItemInfo.ItemID, MyItemInfo.ShortPath, FormattedText); - if(DebugText.IsOpen)DebugText.WriteLine("{0},'{1}','{2}','<>',{3}", MyItemInfo.ItemID, MyItemInfo.ShortPath, MyItemInfo.MyContent.Text, XOffset); - //if (MyItemInfo.InList(11019,11024,111026)) // RHM20150507 Table Scrunch - // Console.WriteLine("here"); - float heightBefore = MyGrid.Height+4 * MyPageHelper.YMultiplier; - if (Rtf2Pdf.GetTableScrunchingStatus(TableScrunching.Phase1) && heightBefore > (yLocation - yBottomMargin)) - { - //MyGrid.TooBig = (MyItemInfo.MyDocStyle.Layout.FooterLength ?? 0) + SixLinesPerInch + MyGrid.Height - (yLocation - yBottomMargin); - MyGrid.TooBig = SixLinesPerInch + MyGrid.Height * MyPageHelper.YMultiplier - (yLocation - yBottomMargin); - float heightAfter = MyGrid.Height + 4 * MyPageHelper.YMultiplier; - MyPageHelper.TableAdjustment += (heightBefore - heightAfter); - if (heightAfter < (yLocation - yBottomMargin)) - { - _MyLog.ErrorFormat("<<< WARNING >>> Table is too big to fit on page, Vertical Padding adjusted to fit\r\n==>'Table Adjusted',{0},'{1}','{2}',{3},{4},{5}" - , MyItemInfo.ItemID, MyItemInfo.MyDocVersion.MyFolder.Name, MyItemInfo.ShortPath, heightBefore, MyGrid.Height, (yTopMargin - yBottomMargin)); - } - else - MyGrid.IsTooBig = true; - if (MyItemInfo.HasChangeBar && MyPageHelper.ChangeBarDefinition.MyChangeBarType != PrintChangeBar.Without) - { - foreach (vlnChangeBar vcb in MyPageHelper.MyChangeBars) - { - if (vcb.Height == heightBefore / MyPageHelper.YMultiplier - 4) - { - float heightDif = (heightBefore - heightAfter); - vcb.YChangeBarBottom += heightDif; - FixMessages(vcb, heightDif); - break; - } - } - } - } - MyPageHelper.BottomContent=yLocation-(MyGrid.Height + 4 * MyPageHelper.YMultiplier); - float retval = Rtf2Pdf.GridAt(cb, MyGrid, XOffset, yLocation, Width, 100, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.Contains("Borderless")); - if (MyGrid.Height > (yTopMargin - yBottomMargin)) - { - _MyLog.ErrorFormat("<<< ERROR >>> Table is too big to fit on page, expect pagination problems\r\n==>'Table Too Big',{0},'{1}','{2}',{3},{4},{5}" // RHM20150429 - Table Scrunch - , MyItemInfo.ItemID, MyItemInfo.MyDocVersion.MyFolder.Name, MyItemInfo.ShortPath, heightBefore, MyGrid.Height, (yTopMargin - yBottomMargin)); - } - return retval; - } - - private void FixMessages(vlnChangeBar vcb, float heightDif) - { - SortedDictionary msd = vcb.Messages; - vcb.Messages = new SortedDictionary(); - foreach (float key in msd.Keys) - { - vcb.Messages.Add(key+heightDif, msd[key]); - } - } - - private float DrawText(PdfContentByte cb, ref float yPageStart, float yTopMargin, float yBottomMargin, ref float yLocation) - { - if(DebugText.IsOpen)DebugText.WriteLine("{0},'{1}','{2}','<>'", MyItemInfo.ItemID, MyItemInfo.DBSequence, FormattedText); - //Console.WriteLine("{0},{1},'{2}','<>'", MyItemInfo.ItemID, MyItemInfo.DBSequence, IParagraph.Content); - float retval = yLocation; - if (MyItemInfo.IsRtfRaw) - { - retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo + string.Format(",YLines = {0}", YSize / SixLinesPerInch), yBottomMargin); - return retval; - } - - // Calvert Alarms have a special case, center text if the next/previous is not the same type of caution or note. - // Calvert Alarms have a note1 that is a warning. if a regular note preceeded it, this regular note was not centered. - bool doAlign = false; - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && (MyItemInfo.IsCaution || MyItemInfo.IsNote || MyItemInfo.IsNote1)) - { - bool diffAsPrev = MyItemInfo.MyPrevious == null || (MyItemInfo.MyPrevious != null && MyItemInfo.MyContent.Type != MyItemInfo.MyPrevious.MyContent.Type); - bool diffAsNext = MyItemInfo.NextItem == null || (MyItemInfo.NextItem != null && MyItemInfo.MyContent.Type != MyItemInfo.NextItem.MyContent.Type); - if (diffAsPrev && diffAsNext) doAlign = true; - } - // Check if only one line, i.e. "Height < (1.2F * IParagraph.Leading". The Leading can be for six or seven lines per inch, so the 1.2 - // multiplier accounts for both. - if (!MyItemInfo.IsStepSection && MyItemInfo.FormatStepData.CenterOneLineOnly && ((MyItemInfo.MyPrevious == null && MyItemInfo.NextItem == null) || MyItemInfo.FormatStepData.SeparateBox || doAlign) && Height < (1.2F * IParagraph.Leading)) - IParagraph.Alignment = Element.ALIGN_CENTER; - // if this step is centered, but not part of the checklist or valvelist format, use itextsharp to center it. - // if it was part of the checklist or valvelist, then the centering is based on the column definitions for the table and - // was calculated when the paragraph was made. - if (!MyItemInfo.IsStepSection && MyItemInfo.FormatStepData.StepPrintData.Justify == "Center" && !MyItemInfo.FormatStepData.StepLayoutData.AlignWithParentTab) - IParagraph.Alignment = Element.ALIGN_CENTER; - if (PrefixSpecialCharacter && IParagraph.Chunks.Count > 0) - { - Chunk chk = IParagraph.Chunks[0] as Chunk; - if (chk.Content == " ") - { - PrefixSpecialCharacter = false; - //Console.WriteLine("Special {0}", MyItemInfo.MyHLS.DisplayText); - IParagraph.Chunks.RemoveAt(0); - } - } - // if printing checklist header, adjust ypagestart & ylocation so that won't get forced pagination (pagination is already ok) - //Console.WriteLine("'Q1',{0},'{1}',{2},{3},{4},{5},{6}", MyItemInfo.ItemID, MyItemInfo.ShortPath, yTopMargin, yPageStart, yLocation, YTopMost, YOffset); - if (PrintHeader) - { - yPageStart = yTopMargin + YVeryTop; - yLocation = yPageStart - YOffset; // yLocation is physical location from bottom of page. - } - if (yLocation - Height < 24) - { - if (DebugPagination.IsOpen) - DebugPagination.WriteLine("Very Low {0},{1},{2},{3},{4},{5}", MyItemInfo.ShortPath, MyItemInfo.ItemID, yLocation, Height, yLocation - Height, yTopMargin - MyItemInfo.MyDocStyle.Layout.PageLength); - } - int profileDepth = ProfileTimer.Push(">>>> Rtf2Pdf.TextAt"); - // ooooooooo. oooooooooo. oooooooooooo ooooooooooooo o8o . o8o - // `888 `Y88. `888' `Y8b `888' `8 8' 888 `8 `"' .o8 `"' - // 888 .d88' 888 888 888 888 oooo d8b .oooo. ooo. .oo. .oooo.o oooo .o888oo oooo .ooooo. ooo. .oo. .oooo.o - // 888ooo88P' 888 888 888oooo8 888 `888""8P `P )88b `888P"Y88b d88( "8 `888 888 `888 d88' `88b `888P"Y88b d88( "8 - // 888 888 888 888 " 888 888 .oP"888 888 888 `"Y88b. 888 888 888 888 888 888 888 `"Y88b. - // 888 888 d88' 888 888 888 d8( 888 888 888 o. )88b 888 888 . 888 888 888 888 888 o. )88b - // o888o o888bood8P' o888o o888o d888b `Y888""8o o888o o888o 8""888P' o888o "888" o888o `Y8bod8P' o888o o888o 8""888P' - // - // Design Suggestion: - // During vlnParagraaph Constuctor Build an end point dictionary - // During toPdf check for end points before adding GoTos for Local - // Need to have a way to get to sections which do not have any output (header only) - // Need to have a way to identify procedures - // - if (IParagraph.Chunks.Count > 0 && MyPageHelper.MyPromsPrinter.SaveLinks) - { - Chunk chk1 = IParagraph.Chunks[0] as Chunk; - //Console.WriteLine("\"Desination\"\t{0}", MyItemInfo.ItemID); - if (MyItemInfo.MyContent.Text.ToUpper().Contains("LINK:TR")) - Console.WriteLine("Missing Transition {0}",MyItemInfo.ItemID); - chk1.SetLocalDestination(string.Format("ItemID={0}", MyItemInfo.ItemID)); // Destination - if (MyItemInfo.MyContent.ContentTransitionCount > 0) - { - TransitionInfo ti = MyItemInfo.MyContent.ContentTransitions[0]; - ItemInfo tiDefault = GetDefaultItemInfo(ti.MyItemToID); - if (ti.MyItemToID.MyProcedure.ItemID == MyItemInfo.MyProcedure.ItemID && - ! MyItemInfo.ActiveSection.DisplayNumber.ToUpper().StartsWith("FOLDOUT")) - { // Local Go To - if (ti.MyItemToID.MyContent.Type > 19999) - foreach (Chunk chk in IParagraph.Chunks) - { - //Console.WriteLine("\"LocalGoTo\"\t{0}", tiDefault.ItemID); - chk.SetLocalGoto(string.Format("ItemID={0}", tiDefault.ItemID)); - chk.SetBackground(Color.CYAN); - chk.SetBackground(new Color(System.Drawing.Color.LightCyan)); - } - } - else // Remote Go To - { - foreach (Chunk chk in IParagraph.Chunks) - { - //Console.WriteLine("\"RemoteGoTo\"\t{0}", tiDefault.ItemID); - chk.SetRemoteGoto(ti.MyItemToID.MyProcedure.DisplayNumber.Replace("/", "_") + ".pdf", string.Format("ItemID={0}", tiDefault.ItemID)); - chk.SetBackground(new Color(System.Drawing.Color.PeachPuff)); - } - } - } - if (MyItemInfo.MyContent.ContentRoUsageCount > 0) - { - RoUsageInfo ru = MyItemInfo.MyContent.ContentRoUsages[0]; - foreach (Chunk chk in IParagraph.Chunks) - { - if (ru.ROID.Substring(0, 4) != "FFFF") - { - chk.SetRemoteGoto("completeroreport.pdf", string.Format("ROID={0}", ru.ROID.Substring(0, 12).ToUpper())); - //Console.WriteLine("ROID={0},{1}", ru.ROID.Substring(0, 12).ToUpper(), chk.Content); - chk.SetBackground(new Color(System.Drawing.Color.LightGreen)); - } - } - } - StepConfig sc = new StepConfig(MyItemInfo.MyContent.Config); - DVEnhancedDocuments dveds = MyItemInfo.MyDocVersion.DocVersionConfig.MyEnhancedDocuments; - foreach (EnhancedDocument ed in sc.MyEnhancedDocuments) - { - DVEnhancedDocument dved = dveds.GetByType(ed.Type); - AddLinkToEnhancedDocument(cb, yLocation, ed.ItemID, dved.PdfToken, dved.PdfX); - } - // MyPageHelper.BottomContent = yLocation - Height; - //if (MyItemInfo.InList(39048)) Console.WriteLine("Here"); - } - MyPageHelper.BottomContent = yLocation - (Height * MyPageHelper.YMultiplier); - retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo + string.Format(",YLines = {0}", YSize / SixLinesPerInch), yBottomMargin); - ProfileTimer.Pop(profileDepth); - if (retval == 0) // problem occurred - paragraph was not able to be printed on page - { // pagination logic needs to be fixed. - // oooooooooooo ooooooooo. o8o . o8o - // `888' `8 `888 `Y88. `"' .o8 `"' - // 888 .ooooo. oooo d8b .ooooo. .ooooo. 888 .d88' .oooo. .oooooooo oooo ooo. .oo. .oooo. .o888oo oooo .ooooo. ooo. .oo. - // 888oooo8 d88' `88b `888""8P d88' `"Y8 d88' `88b 888ooo88P' `P )88b 888' `88b `888 `888P"Y88b `P )88b 888 `888 d88' `88b `888P"Y88b - // 888 " 888 888 888 888 888ooo888 888 .oP"888 888 888 888 888 888 .oP"888 888 888 888 888 888 888 - // 888 888 888 888 888 .o8 888 .o 888 d8( 888 `88bod8P' 888 888 888 d8( 888 888 . 888 888 888 888 888 - // o888o `Y8bod8P' d888b `Y8bod8P' `Y8bod8P' o888o `Y888""8o `8oooooo. o888o o888o o888o `Y888""8o "888" o888o `Y8bod8P' o888o o888o - // d" YD - // "Y88888P' - ForcePagination(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation, ref retval); - } - else - { - if (MyItemInfo.IsStepSection && MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && (MyItemInfo.ActiveSection as SectionInfo).HasInitials) - { - if (MyPageHelper.PrintInitials(cb,yLocation,(float) MyItemInfo.MyDocStyle.Layout.LeftMargin)) - { - //if(yLocation != yTopMargin) - // Console.WriteLine("'{0}',{1},'{2}',{3},{4},{5},{6}", MyItemInfo.MyProcedure.DisplayNumber, MyItemInfo.ItemID - // , MyItemInfo.DisplayNumber, yLocation,yTopMargin,MyItemInfo.HasCautionOrNote,MyPageHelper.CurrentPageNumber+1); - } - } - } - return retval; - } - private static void AddLinkToEnhancedDocument(PdfContentByte cb, float yLocation, int itemID, String token, int xLocation) - { - ItemInfo ii = ItemInfo.Get(itemID); - string prefix = ii.MyDocVersion.DocVersionConfig.Print_PDFFilePrefix ?? ""; - string suffix = ii.MyDocVersion.DocVersionConfig.Print_PDFFileSuffix ?? ""; - ColumnText ct = new ColumnText(cb); - ct.SetSimpleColumn(xLocation, yLocation - 12, xLocation + 30, 12 + yLocation); - iTextSharp.text.Font font = FontFactory.GetFont("Arial", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 12); - Chunk chk = new Chunk(token); - chk.SetRemoteGoto(prefix + ii.MyProcedure.DisplayNumber.Replace("/", "_") + suffix + ".pdf", string.Format("ItemID={0}", itemID)); - chk.SetBackground(new Color(System.Drawing.Color.LemonChiffon)); - ct.AddElement(chk); - cb.SetColorFill(Color.BLUE); - ct.Go(); - - //foreach (Chunk chk in IParagraph.Chunks) - //{ - // chk.SetRemoteGoto(ii.MyProcedure.DisplayNumber.Replace("/", "_") + ".pdf", string.Format("ItemID={0}",ii.ItemID)); - // chk.SetBackground(new Color(System.Drawing.Color.LemonChiffon)); - //} - } - private ItemInfo GetDefaultItemInfo(ItemInfo myItemInfo) - { - if (myItemInfo.IsProcedure &&myItemInfo.Sections != null) - { - SectionInfo siProcedureSteps = null; - foreach (SectionInfo si in myItemInfo.Sections) - { - if (si.IsDefaultSection) - { - if (si.Steps != null) return si.Steps[0]; - if (si.Sections != null) return si.Sections[0]; - return si; - } - if (si.DisplayText.Contains("Procedure Step")) - siProcedureSteps = si; - } - if (siProcedureSteps != null) - { - if (siProcedureSteps.Steps != null) return siProcedureSteps.Steps[0]; - if (siProcedureSteps.Sections != null) return siProcedureSteps.Sections[0]; - return siProcedureSteps; - } - } - if (myItemInfo.IsSection) - { - if (myItemInfo.Steps != null) return myItemInfo.Steps[0]; - if (myItemInfo.Sections != null) return myItemInfo.Sections[0]; - } - return myItemInfo; - } - private static bool _MissingInitials = false; - - public static bool MissingInitials - { - get { return vlnParagraph._MissingInitials; } - set { vlnParagraph._MissingInitials = value; } - } - public static void TextAt(PdfContentByte cb,VlnSvgPageHelper myPageHelper,PageItem pi,float yloc, float leftMargin) - { - System.Drawing.Color sysColor = PrintOverride.OverrideSvgColor(System.Drawing.Color.Black); - cb.SaveState(); - if (myPageHelper.PageListLayer != null) cb.BeginLayer(myPageHelper.PageListLayer); - ColumnText ct = new ColumnText(cb); - iTextSharp.text.Font font; - int fontStyle = 0; - bool underline = false; - if (pi == null) // The header for the signoffs is missing in the current section format. - // An Example can currently be found in Calvert OI-34 - { - if (!MissingInitials) // Only show this once. - { - _MyLog.WarnFormat("Initials Header Missing" + - "\r\nInitials header missing for section {0}" + - "\r\nfrom format [{1}], {2}, subformat {3}" + - "\r\nA default Arial font and a default location will be used." + - "\r\nPerhaps another section format should be used.", - myPageHelper.MySection.ShortPath, - myPageHelper.MySection.ActiveFormat.Name, - myPageHelper.MySection.ActiveFormat.Description, - myPageHelper.MySection.MyDocStyle.Name); - MissingInitials = true; - } - ct.SetSimpleColumn(450 + leftMargin, yloc + 6.9F, 550 + leftMargin, yloc - 50); - font = FontFactory.GetFont("Arial", BaseFont.IDENTITY_H, BaseFont.EMBEDDED, 10F); - } - else - { - ct.SetSimpleColumn((float)pi.Col + leftMargin, yloc + 6.9F, (float)pi.Col + 100 + leftMargin, yloc - 50); - fontStyle = (pi.Font.WindowsFont.Bold ? iTextSharp.text.Font.BOLD : 0) + (pi.Font.WindowsFont.Italic ? iTextSharp.text.Font.ITALIC : 0); - font = FontFactory.GetFont(pi.Font.Family, BaseFont.IDENTITY_H, BaseFont.EMBEDDED,(float) pi.Font.Size,fontStyle); - underline = pi.Font.WindowsFont.Underline; - } - Chunk chk = new Chunk("INITIALS", font); - if(underline) - chk.SetUnderline(new iTextSharp.text.Color(sysColor), 0, 0.05F, 0, -.131F, PdfContentByte.LINE_CAP_ROUND); // Relative Based upon font size - Phrase ph = new Phrase(chk); - ct.AddElement(ph); - cb.SetColorFill(new iTextSharp.text.Color(sysColor)); - ct.Go(); - if (myPageHelper.PageListLayer != null) cb.EndLayer(); - cb.RestoreState(); - } - private bool _PrintHeader = false; - public bool PrintHeader - { - get { return _PrintHeader; } - set { _PrintHeader = value; } - } - private static List myAttributes = new List(); - private static void AddAttribute(string attr) - { - if (myAttributes.Contains(attr)) - return; - //Console.WriteLine("Attribute = \"{0}\"", attr); - myAttributes.Add(attr); - } - private void CheckAttributes(System.Collections.Hashtable attributes) - { - foreach (string attr in attributes.Keys) - { - AddAttribute(attr); - } - } - private string FormattedText - { - get - { - bool subscript = false; - //if (_MyItemInfo.ItemID == 467) - // Console.Write(""); - StringBuilder sb = new StringBuilder(); - //if (IParagraph.Chunks.Count > 1) - // Console.WriteLine("{0} Chunks", IParagraph.Chunks.Count); - foreach (Chunk chk in IParagraph.Chunks) - { - string prefix = ""; - string suffix = ""; - CheckAttributes(chk.Attributes); - if (chk.Font.BaseFont != null && chk.Font.BaseFont.PostscriptFontName.ToUpper().Contains("BOLD")) - { - prefix += "\xD5"; - suffix = "\xD6" + suffix; - } - if (chk.Attributes.ContainsKey("SUBSUPSCRIPT")) - { - float sup = (float)(chk.Attributes["SUBSUPSCRIPT"]); - if (sup > 0) - { - prefix += "\xA6"; - suffix = "\xD1" + suffix; - } - else if (sup < 0) - { - prefix += "\xD1"; - suffix = "\xA6" + suffix; - } - - } - if (chk.Attributes.ContainsKey("UNDERLINE")) - { - prefix += "\x16"; - suffix = "\x16" + suffix; ; - } - sb.Append(prefix + chk.Content + suffix); - } - string retval = sb.ToString(); - retval = retval.Replace("\xD1\xA6", "");// Remove Multiple Superscript commands in a row - retval = retval.Replace("\xA6\xD1", "");// Remove Multiple Superscript commands in a row - retval = retval.Replace("\xD6\xD5", ""); - retval = retval.Replace("\xD6\x16\xD5", "\x16"); - return retval; - } - } - //private bool _TextDebug = false; //true; this will turn on a writeline with debug in DrawText() - private float DrawFigure(PdfContentByte cb, float yBottomMargin, float yLocation, float yPageStart, float yTopMargin) - { - int profileDepth = ProfileTimer.Push("vlnParagraph.DrawFigure"); - float retval = yLocation; - if (ImageText != null) - { - if (ImageText == "figure") - { - ImageConfig ic = new ImageConfig(MyItemInfo.MyContent.MyImage); - // B2016-277: add a try catch in case of there being 'bad' data in the text field for an image/figure - try - { - byte[] idata = (ic != null && ic.Image_DataSize > 0) ? ROImageInfo.Decompress(MyItemInfo.MyContent.MyImage.Data, ic.Image_DataSize) : MyItemInfo.MyContent.MyImage.Data; - MemoryStream ms = new MemoryStream(idata); - System.Drawing.Image img = System.Drawing.Image.FromStream(ms); - Width = img.Width; - Height = img.Height; - if (ic != null && ic.Image_Height != 0) - { - Width = ic.Image_Width; - Height = ic.Image_Height; - } - iTextSharp.text.Image it_image = iTextSharp.text.Image.GetInstance(idata); - retval = Rtf2Pdf.FigureAt(cb, it_image, XOffset + MyItemInfo.FormatStepData.Font.CharsToTwips, yLocation, Width * MyPageHelper.YMultiplier, Height * MyPageHelper.YMultiplier, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.Contains("Borderless")); - } - catch - { - retval += SixLinesPerInch; - } - } - else - { - string[] vals = ImageText.Split("\n".ToCharArray()); - ProcedureInfo proc = MyItemInfo.MyProcedure; - DocVersionInfo dvi = proc.ActiveParent as DocVersionInfo; - ROFstInfo rofst = dvi.DocVersionAssociations[0].MyROFst; - ROImageInfo roImage = ROImageInfo.GetByROFstID_FileName(rofst.ROFstID, vals[0]); - if (roImage == null) roImage = rofst.GetROImageByFilename(vals[0], MyItemInfo);// need code to go and get an ROImaage if it exists - if (roImage != null) - { - ROImageConfig rc = new ROImageConfig(roImage); - int size = Convert.ToInt32(rc.Image_Size); - byte[] cnt = roImage.Content; - byte[] dcnt = ROImageInfo.Decompress(cnt, size); - iTextSharp.text.Image it_image = null; - try - { - it_image = iTextSharp.text.Image.GetInstance(dcnt); - } - catch - { - MemoryStream ms = new MemoryStream(dcnt); - System.Drawing.Bitmap bm = new System.Drawing.Bitmap(ms); - using (MemoryStream ms2 = new MemoryStream()) - { - bm.Save(ms2, System.Drawing.Imaging.ImageFormat.Png); - ms2.Seek(0, SeekOrigin.Begin); - byte[] newdcnt = new byte[ms2.Length]; - ms2.Read(newdcnt, 0, (int)ms2.Length); - try - { - it_image = iTextSharp.text.Image.GetInstance(newdcnt); - } - catch (Exception ex) - { - _MyLog.Error(string.Format("{0}", roImage.FileName), ex); - return yLocation; - } - } - } - StepConfig sc = new StepConfig(MyItemInfo as StepInfo); - if (sc != null && sc.Step_ImageWidth != 0) - { - Width = sc.Step_ImageWidth; - Height = sc.Step_ImageHeight; - } - retval = Rtf2Pdf.FigureAt(cb, it_image, XOffset + MyItemInfo.FormatStepData.Font.CharsToTwips, yLocation, Width * MyPageHelper.YMultiplier, Height * MyPageHelper.YMultiplier, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.Contains("Borderless")); - } - } - // The following code was added to fix B2016-219 (for VCS, the centerline drew through a figure). The 'top' value was taken from the code - // that draws the vlnBoxes (Caution/Note, etc) - // The adjustments, adjtop & adjbottom, were necessary to get the vertical centerline to meet up correctly with the top/bottom of the figure. These - // numbers were determined by trial and error. - - // only add gap if centered, i.e. in 2 column mode & table is centered - if (MyItemInfo.ColumnMode > 0 && (!MyItemInfo.FormatStepData.Type.Contains("AER") && !MyItemInfo.IsInRNO)) - { - float top = CalculateYOffset(yPageStart, yTopMargin) - (7 * MyPageHelper.YMultiplier); - float adjtop = 0; - float adjbottom = 0; - if (MyPageHelper.YMultiplier == 1) - adjtop = -3; - else - adjbottom = -1; - MyPageHelper.MyGaps.Add(new Gap(top + adjtop, top - Height - Rtf2Pdf.Offset.Y + adjbottom)); - } - } - ProfileTimer.Pop(profileDepth); - return retval; - } - private string DebugInfo - { - get - { - if (!Rtf2Pdf.PdfDebug) return "No Path"; - int profileDepth = ProfileTimer.Push(">>>> vlnParagraph.DebugInfo"); - string retval = string.Format("DebugID = {0}, ID={1} Type={2} TypeName='{3}' StepLevel={4} ShortPath={5} Width={6} Left={7} YOffset={8}", - DebugId, MyItemInfo.ItemID, MyItemInfo.FormatStepType, MyItemInfo.FormatStepData == null ? "NoStepData" : MyItemInfo.FormatStepData.Type, MyItemInfo.StepLevel, MyItemInfo.ShortPath, Width, XOffset, YOffset); - ProfileTimer.Pop(profileDepth); - return retval; - } - } - private void ResetDocStyleAndValues(ref float yTopMargin, ref float yBottomMargin) - { - float _PointsPerPage = 792; - // if this document style has another style that is for pages other than first, we need to - // reset the document style off of this section AND reset docstyle values used. - if ((MyItemInfo.MyActiveSection.MyDocStyle.StructureStyle.Where & E_DocStyleUse.UseOnFirstPage) > 0) - { - ItemInfo ii = (ItemInfo)MyItemInfo.MyActiveSection; - int indx = (int)MyItemInfo.MyActiveSection.MyDocStyle.IndexOtherThanFirstPage; - foreach (DocStyle ds in ii.ActiveFormat.PlantFormat.DocStyles.DocStyleList) - { - if (ds.Index == indx) - { - MyItemInfo.MyActiveSection.MyDocStyle = ds; - MyPageHelper.MySection = MyItemInfo.MyActiveSection as SectionInfo; - MyPageHelper.MySection.MyDocStyle = ds; - MyPageHelper.ResetSvg(); - break; - } - } - MyPageHelper.DidFirstPageDocStyle = true; - if (DebugPagination.IsOpen) DebugPagination.WriteLine("ResetDocStyleAndValues"); - MyPageHelper.MySection = (SectionInfo)MyItemInfo.MyActiveSection; - yTopMargin = _PointsPerPage - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.TopMargin; - yBottomMargin = Math.Max(0, yTopMargin - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.PageLength); - } - else if (MyPageHelper.PrintedSectionPage > 0) - { - MyPageHelper.ResetSvg(); - if ((MyItemInfo.MyActiveSection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PrintSectOnFirst) == E_DocStructStyle.DSS_PrintSectOnFirst) - { - yTopMargin = _PointsPerPage - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.TopMargin + MyPageHelper.PrintedSectionPage; - MyPageHelper.YTopMargin = yTopMargin; - yBottomMargin = Math.Max(0, _PointsPerPage - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.TopMargin - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.PageLength); - } - } - - } - private string GetSectCombinedTab(ItemInfo tmp) - { - ItemInfo itemInfo = tmp; - if (itemInfo.IsCautionOrNotePart) itemInfo = itemInfo.ActiveParent as ItemInfo; // if caution/note get to its associated step - itemInfo = itemInfo.ActiveParent as ItemInfo; // don't want this one in the combined tab, start at parent - if (!itemInfo.IsHigh && !itemInfo.IsSequential && !itemInfo.IsSection) itemInfo = itemInfo.ActiveParent as ItemInfo; - string prTab = ""; - string thisTab = itemInfo.MyTab.CleanText.Trim(); - if (!itemInfo.IsSection || itemInfo.IsSeparateSubsection) - { - ItemInfo mypar = itemInfo.MyParent; - while (mypar != null && !mypar.IsProcedure) - { - // The following check was added for BGE/OI34. Their APPENDIX sections had the subsections - // printing with incorrect tab in the SectionTitleContinued message. Before this - // fix the tabs were A.B Procedure (Continued) rather than B. Procedure (Continued). - // Unfortunately there was not enough time to make the 'if' statement based on config - // or format settings. - bool addTab = true; - if (mypar.IsSection && mypar.DisplayNumber.ToUpper().Contains("APPENDIX ")) - { - SectionConfig sch = mypar.MyConfig as SectionConfig; - addTab = (sch == null || sch.Section_PrintHdr == "Y");// && !mypar.MyDocStyle.CancelSectTitle; - } - if (addTab) - { - string pTab = mypar.MyTab.CleanText.Trim(); - if (pTab.Length > 0 && char.IsLetterOrDigit(pTab[0])) - { - pTab = pTab.TrimEnd(" .".ToCharArray()) + "."; - prTab = pTab + prTab; - } - else - { - // There' a bullet or some other graphics character. - // clear out the tab we are building so the we can build - // a continue tab up to this bullet or graphic character. - prTab = ""; - thisTab = ""; - } - } - mypar = (mypar.IsSection && !mypar.IsSeparateSubsection) ? null : mypar.MyParent; - } - } - return (prTab + thisTab.Trim()).TrimEnd(".".ToCharArray()); - } - private static bool DoSubs = true; // flag whether to print substeps (don't if doing continued checklist header) - protected float _ContinueHeight=0; - public virtual float ContinueHeight - { - get - { - int profileDepth = ProfileTimer.Push(">>>> vlnPrintObject.ContinueHeight"); - if (_ContinueHeight == 0 - && MyItemInfo.MyDocStyle.Continue.Top.Message != null - && MyItemInfo.MyDocStyle.Continue.Top.Message.Contains("%s") - && MyItemInfo.MyDocStyle.Continue.Top.Message.ToUpper().EndsWith(" (Continued)".ToUpper())) - { - string suffix = MyItemInfo.MyDocStyle.Continue.Top.Message.Replace("%sR","").Replace("%s",""); - _ContinueHeight = GetParagraphHeight(MyContentByte, IParagraph, suffix, Width); - } - ProfileTimer.Pop(profileDepth); - return _ContinueHeight; - } - set { _Height = value; } - } - public override float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin) - { - int profileDepth = ProfileTimer.Push(">>>> vlnParagraph.ToPdf"); - if (MyItemInfo.IsFootnote && Processed) - { - ProfileTimer.Pop(profileDepth); - return yPageStart; - } - if (MyItemInfo.IsInSupInfo) // if generating the pdf for supinfos (facing page) pdf, need a different cb to go to that file. - { - MyContentByte = cb; - MyPageHelper = null; - } - bool doThreeContinues = false; - // For BGE, the very first subsection's pagelist items were not correct - the section/meta section titles were - // at the wrong level. Reset the page helper's section. - if (MyItemInfo.IsStepSection) - { - if (MyItemInfo.IsSection && MyItemInfo.MyPrevious == null && MyItemInfo.MyParent.IsSection && !MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseWestinghouse) - { - // don't do the following for the WCN training format: - // if parent was continuous & this is separate, don't reset document style to subsection (next page) type - // this was putting incorrect pagelist item on parent section's page. This occurred in BGE/OI3 set/OI-7 procedure/10.0 Attachments. - if (!MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.WCNTraining && (MyParent.MyItemInfo as SectionInfo).IsSeparatePagination() || !(MyItemInfo as SectionInfo).IsSeparatePagination()) - { - MyPageHelper.MySection = MyItemInfo as SectionInfo; - MyPageHelper.ResetSvg(); - } - } - } - // For Calvert Alarms: A macro exists around the CONDITION/RESPONSE portion. If the page break occurs so that - // this 'table' moved to the following page AND there is an associated note/caution that is not on the next page, - // remove the macro so that the header macro doesn't print on the page with the note (without this, an extraneous - // header for the 'table'is printed. - if (PartsLeft.Count != 0 && (PartsLeft[0] is vlnMacro) && MyPageHelper.ParaBreaks.Count != 0 && MyPageHelper.ParaBreaks[0].MyItemInfo.MyPrevious == null) - if (!MyPageHelper.ParaBreaks[0].MyItemInfo.IsNote && !MyPageHelper.ParaBreaks[0].MyItemInfo.IsCaution) - { - // Only clear the header if it is the first child below - if (ChildrenBelow[0].MyItemInfo.ItemID == MyPageHelper.ParaBreaks[0].MyItemInfo.ItemID) - PartsLeft.Clear(); - //else - // _MyLog.WarnFormat("Would Have Cleared PageHeader '{0}','{1}'", MyItemInfo.MyProcedure.DisplayNumber, MyItemInfo.MyHLS.DisplayText); - } - if (IsWordDocPara) - { - SectionInfo si = SectionInfo.Get(MyItemInfo.ItemID); - //Changing this caused Header issues for FNP FNP-1-FRP-1.3 Attachment 3 (Word Sub-Sections) - //SectionInfo si1 = MyItemInfo.GetSectionInfo(); - //CompareSectionInfo(si, si1); - MyPromsPrinter.NewPage(true); - //_MyLog.InfoFormat("NewPage 9 {0}", cb.PdfWriter.CurrentPageNumber); - // Add Bookmark for Word Subsections - MyPageHelper.PageBookmarks.Add(si, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null); - MyPageHelper.MyPromsPrinter.CreateWordDocPdf(cb, si); - Processed = true; - { - ProfileTimer.Pop(profileDepth); - return yPageStart; - } - } - float yLocalypagestart = yPageStart; - // yPageStart is offset into roll; YTopMost is offset of topmost of this paragraph. - float yLocation = yPageStart - YTopMost; - - // If this document style has a pagelist item with a continue (some IP2BCK docstyles), clear - // out the variable that flags a continue message - MyPageHelper.OldTemplateContMsg = false; - - if(DebugText.IsOpen) DebugText.WriteLine("ToPdf1:{0},'{1}',{2},{3},{4},{5}", MyItemInfo.ItemID, MyItemInfo.ShortPath, XOffset, yLocation, yPageStart, YTopMost); - int profileDepth1 = ProfileTimer.Push(">>>> vlnParagraph.Paginate"); - int paginate = Paginate(yLocation, yTopMargin, yBottomMargin); - ProfileTimer.Pop(profileDepth1); - bool firstHighLevelStep = MyItemInfo.IsHigh && (MyItemInfo.MyPrevious == null); - bool doSectionTitleContinued = false; // will add " Continued" to the section title if format flag is set - DocStyle docstyle = null; - // If SAMG facing page print & doing first pass to generate page break list of supplemental info and - // there was a page break in the step section, but not an associated supinfo item, do the page break when the - // next supinfo item is found: - SectionInfo supInfoSect = MyItemInfo.MyActiveSection as SectionInfo; - if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.DoPageBreaks && MyPromsPrinter.NeedSupInfoBreak && MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0) - { - supInfoSect.StepSectPageBreaksForSupInfo.Add(MyItemInfo.SupInfos[0].ItemID); - MyPromsPrinter.NeedSupInfoBreak = false; - } - switch (paginate) - { - // .oooooo. .oooo. - // d8P' `Y8b d8P'`Y8b - // 888 .oooo. .oooo.o .ooooo. 888 888 - // 888 `P )88b d88( "8 d88' `88b 888 888 - // 888 .oP"888 `"Y88b. 888ooo888 888 888 - // `88b ooo d8( 888 o. )88b 888 .o `88b d88' - // `Y8bood8P' `Y888""8o 8""888P' `Y8bod8P' `Y8bd8P' - case 0: // No page break - if (MyItemInfo.IsSection) - { - SectionInfo si = MyItemInfo as SectionInfo; - MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null); - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - } - // SupInfo has its own pagination and ylocation handling, reset ypagestart & ylocation if continuing on current page. - // The value used was saved when the previous SupInfo step was printed. - if (MyItemInfo.IsSupInfoPart) - { - yPageStart = _yPageStartForSupInfo - SixLinesPerInch; - yLocation = yPageStart - YTopMost; - } - // printing a procedure with section(s) that have supplemental information - determine facing page needed to be merged in: - if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.Merge && !MyItemInfo.IsSection && MyItemInfo.IsHigh && MyItemInfo.MyPrevious == null && !MyItemInfo.IsInSupInfo && (MyItemInfo.MyActiveSection as SectionInfo).HasSupInfoSteps) - { - int sid = GetIdThatHasSupInfoItems(MyItemInfo, MyItemInfo.ItemID); - if (sid != -1) - { - MyPromsPrinter.DoSupInfoPage(cb, "TEMP", MyPageHelper.TextLayer, MyPageHelper, sid, true); - } - else - { - MyPageHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - MyPromsPrinter.NewPage(); - } - } - if (MyItemInfo.IsHigh && MyItemInfo.MyPrevious != null && ((MyItemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) == E_DocStructStyle.DoubleBoxHLS)) - yPageStart -= SixLinesPerInch; - if (MyPageHelper.ParaBreaks.Count > 0 && MyPageHelper.ParaBreaks[0].CompressFirstPartOfStep) - MyPageHelper.YMultiplier = _SevenLinesPerInch / SixLinesPerInch; - if(CompressFoldout) - MyPageHelper.YMultiplier = _SevenLinesPerInch / SixLinesPerInch; - - ///else - /// MyPageHelper.YMultiplier = 1; - break; - // .oooooo. .o - // d8P' `Y8b o888 - //888 .oooo. .oooo.o .ooooo. 888 - //888 `P )88b d88( "8 d88' `88b 888 - //888 .oP"888 `"Y88b. 888ooo888 888 - //`88b ooo d8( 888 o. )88b 888 .o 888 - // `Y8bood8P' `Y888""8o 8""888P' `Y8bod8P' o888o - case 1: // Break on High Level Step - if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.DoPageBreaks) - { - // page break here, determine if there is caution/note above where the page break actually needs to go: - int aboveSupinfoId = ChildrenAboveHaveSupInfo(); - if (MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0 && aboveSupinfoId > 0) supInfoSect.StepSectPageBreaksForSupInfo.Add(aboveSupinfoId); - else if (MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0) supInfoSect.StepSectPageBreaksForSupInfo.Add(MyItemInfo.SupInfos[0].ItemID); - else MyPromsPrinter.NeedSupInfoBreak = true; - supInfoSect.StepSectPageBreaks.Add(MyItemInfo.ItemID); - } - YTopMost=OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); - docstyle = MyItemInfo.MyDocStyle; - if (MyPageHelper.NotesToFootNotes != null && MyPageHelper.NotesToFootNotes.Count > 0) MyPageHelper.NotesToFootNotesYoffset = CalculateYLocation(yLocation, yTopMargin); - bool doSectionContinue = !MyItemInfo.IsSection && ((docstyle.StructureStyle.Style & E_DocStructStyle.BottomSectionContinue) == E_DocStructStyle.BottomSectionContinue); - if (doSectionContinue) DoBottomContinueMsg(cb, yBottomMargin, yLocation, docstyle, false); - MyPromsPrinter.NewPage(); - //_MyLog.InfoFormat("NewPage 10 {0}", cb.PdfWriter.CurrentPageNumber); - if (MyItemInfo.IsSection && MyParent != null && MyParent.MyItemInfo.IsSection && (MyItemInfo as SectionInfo).IsSeparatePagination()) - { - RefreshDocStyle(); - yTopMargin = 792 - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.TopMargin; - yBottomMargin = Math.Max(0, yTopMargin - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.PageLength); - yPageStart = yTopMargin; - } - else if (MyItemInfo.IsSection || (MyItemInfo.IsHigh && MyItemInfo.MyPrevious != null)) //do not reset for 1st step - { - //Console.WriteLine("'b1',{0},'{1}',{2},{3},{4},{5},{6}", MyItemInfo.ItemID, MyItemInfo.ShortPath, yTopMargin, yPageStart, yLocation, YTopMost, YOffset); - ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); - //Console.WriteLine("'a1',{0},'{1}',{2},{3},{4},{5},{6}", MyItemInfo.ItemID, MyItemInfo.ShortPath, yTopMargin, yPageStart, yLocation, YTopMost, YOffset); - } - DebugText.WriteLine("Paginate1"); - if (MyItemInfo.IsSection) - { - SectionInfo si = MyItemInfo as SectionInfo; - MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null); - - } - // Only do foldout page if not done for section break, i.e. check the there's a previous step. - if (MyItemInfo.MyPrevious != null && MyItemInfo.FoldoutIndex() > -1) - MyPromsPrinter.DoFoldoutPage(cb, "HLS", MyPageHelper.TextLayer, MyPageHelper, MyItemInfo.FoldoutIndex(), false); - else if (PromsPrinter.MyFoldoutReader.Count > 0 && MyPageHelper.MyPromsPrinter.InsertBlankPages) - { - // insert a blank page if this step section had a foldout associated and the checkbox - // on the print dialog, to add blank pages, is checked AND the page did NOT have a - // preceeding foldout. - if (MyItemInfo.FoldoutIndex() <= -1) - { - MyPageHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - MyPromsPrinter.NewPage(); - //_MyLog.InfoFormat("NewPage 10 blank {0}", cb.PdfWriter.CurrentPageNumber); - } - } - // If there is supplemental information to be printed on the facing page, then get the id that has supinfo - // so that it can be retrieved from the pdf for the supinfos for this section. If there is one, - // use DoSupInfoPage to put out the page, otherwise do a blank page. - if (MyPromsPrinter.SupInfoPrintType==E_SupInfoPrintType.Merge && !MyItemInfo.IsSection && !MyItemInfo.IsInSupInfo && (MyItemInfo.MyActiveSection as SectionInfo).HasSupInfoSteps) - { - int sid = GetIdThatHasSupInfoItems(MyItemInfo, MyItemInfo.ItemID); - if (sid != -1) - { - MyPromsPrinter.DoSupInfoPage(cb, "TEMP", MyPageHelper.TextLayer, MyPageHelper, sid, true); - } - else - { - MyPageHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - MyPromsPrinter.NewPage(); - } - } - if (MyItemInfo.MyDocStyle.LandscapePageList) - { - System.Drawing.Drawing2D.Matrix myMatrix = new System.Drawing.Drawing2D.Matrix(0, 1, -1, 0, cb.PdfDocument.PageSize.Height, 0); - cb.Transform(myMatrix); - } - yPageStart = yTopMargin + YTopMost; - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - SectionTopMessage(cb, yTopMargin, yLocation); // does wcntraining & suppinfo section title - if (MyPageHelper.CreatingSupInfoPage) yPageStart -= (2 * SixLinesPerInch); - if (doSectionContinue ) DoTopContinueMsg(cb, ref yPageStart, yTopMargin, docstyle , null); - // If "ContinueSectionHeader" (format flag) is true then print the section title with "(Continued)" appended to it - if (!MyItemInfo.IsSection && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ContinueSectionHeader && (!MyItemInfo.IsSection || MyItemInfo.IsSeparateSubsection)) - { - SectionConfig sch = MyItemInfo.ActiveSection.MyConfig as SectionConfig; - doSectionTitleContinued = (sch == null || sch.Section_PrintHdr == "Y") && !MyItemInfo.MyDocStyle.CancelSectTitle; - } - - if (MyPageHelper.ParaBreaks.Count > 0 && MyPageHelper.ParaBreaks[0].CompressFirstPartOfStep) - MyPageHelper.YMultiplier = _SevenLinesPerInch / SixLinesPerInch; - else - MyPageHelper.YMultiplier = 1; - break; - // .oooooo. .oooo. - // d8P' `Y8b .dP""Y88b - // 888 .oooo. .oooo.o .ooooo. ]8P' - // 888 `P )88b d88( "8 d88' `88b .d8P' - // 888 .oP"888 `"Y88b. 888ooo888 .dP' - // `88b ooo d8( 888 o. )88b 888 .o .oP .o - // `Y8bood8P' `Y888""8o 8""888P' `Y8bod8P' 8888888888 - case 2: // Break within a Step' - if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.DoPageBreaks) - { - if (MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0) supInfoSect.StepSectPageBreaksForSupInfo.Add(MyItemInfo.SupInfos[0].ItemID); - else MyPromsPrinter.NeedSupInfoBreak = true; - supInfoSect.StepSectPageBreaks.Add(MyItemInfo.ItemID); - } - YTopMost=OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); - docstyle = MyItemInfo.MyDocStyle; - bool doAlarmBox = false; - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) - { - { - // Recognize that the break occurred WITHIN the CONDITION/RESPONSE table. - // Otherwise, we get extraneous header/top of box lines in pdf. - if (MyPageHelper.AlarmYoffStart > 0) - { - // if the first step in box is what broke to next page, then - // don't print the box on this page, only print it on next page: - doAlarmBox = true; - if (MyItemInfo.MyPrevious == null && MyParent.HasCalvertMacro) - MyPageHelper.AlarmYoffStart = 0; - else if (MyPageHelper.AlarmYoffEnd == 0) - { - // doThreeContinues flags when continue messages are printed in the - // bottom of the CONDITION/RESPONSE table columns. - doThreeContinues = MyItemInfo.StepLevel > 1; - MyPageHelper.AlarmYoffEnd = CalculateYLocation(yLocation, yTopMargin); - } - else if (MyPageHelper.AlarmYoffEnd > 0) - doAlarmBox = false; - - } - } - } - if (MyPageHelper.NotesToFootNotes != null && MyPageHelper.NotesToFootNotes.Count > 0) MyPageHelper.NotesToFootNotesYoffset = CalculateYLocation(yLocation, yTopMargin); - DoBottomContinueMsg(cb, yBottomMargin, yLocation, docstyle, doThreeContinues); - MyPromsPrinter.NewPage(); - if (MyItemInfo.IsStep && ((MyItemInfo.MyActiveSection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd)) - { - // check if parent (can be HLS, Caution or Note) has the UseOldTemplate. If so, - // flag that a continue message should be printed as part of a pagelist header (if pagelist - // has CM: page list item) - ItemInfo itm = MyItemInfo; - while (itm.IsStep && !itm.FormatStepData.UseOldTemplate) itm = itm.MyParent; - // don't put out continue if the page break item is the same as background step item (caution/note or hls) - if (itm.IsStep && itm.ItemID != MyItemInfo.ItemID) - { - MyPageHelper.OldTemplateContMsg = true; - MyPageHelper.ResetSvg(); - } - } - //_MyLog.InfoFormat("NewPage 11 {0}", cb.PdfWriter.CurrentPageNumber); - //Console.WriteLine("'b2',{0},'{1}',{2},{3},{4},{5},{6}", MyItemInfo.ItemID, MyItemInfo.ShortPath, yTopMargin, yPageStart, yLocation, YTopMost, YOffset); - ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); - //Console.WriteLine("'a2',{0},'{1}',{2},{3},{4},{5},{6}", MyItemInfo.ItemID, MyItemInfo.ShortPath, yTopMargin, yPageStart, yLocation, YTopMost, YOffset); - - DebugText.WriteLine("Paginate2"); - if (MyItemInfo.MyHLS.FoldoutIndex() > -1) - MyPromsPrinter.DoFoldoutPage(cb, "Break within Step", MyPageHelper.TextLayer, MyPageHelper, MyItemInfo.MyHLS.FoldoutIndex(), false); // temporary foldout - else if (PromsPrinter.MyFoldoutReader.Count > 0 && MyPageHelper.MyPromsPrinter.InsertBlankPages) - { - MyPageHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - MyPromsPrinter.NewPage(); - _MyLog.InfoFormat("NewPage Break within step blank {0}", cb.PdfWriter.CurrentPageNumber); - } - if (!MyItemInfo.IsSection && !MyItemInfo.IsInSupInfo && (MyItemInfo.MyActiveSection as SectionInfo).HasSupInfoSteps) - { - int sid = GetIdThatHasSupInfoItems(MyItemInfo, MyItemInfo.ItemID); - if (sid != -1) - { - MyPromsPrinter.DoSupInfoPage(cb, "TEMP", MyPageHelper.TextLayer, MyPageHelper, sid, true); - } - else - { - MyPageHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - MyPromsPrinter.NewPage(); - } - } - // if there is a 'container vlnbox' around the HLS, flag that the drawn box must also break: - if (MyHighLevelParagraph != null && MyHighLevelParagraph.PartsContainer != null && MyHighLevelParagraph.PartsContainer.Count > 0 && - !((MyHighLevelParagraph.MyItemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) == E_DocStructStyle.DoubleBoxHLS)) - { - foreach (vlnPrintObject vpo in MyHighLevelParagraph.PartsContainer) - { - vlnBox vb = vpo as vlnBox; - if (vb != null) - { - vb.ContainsPageBreak = true; - PartsContainer.Add(vb); - } - } - } - - // If there is a box, adjust the yTopMost to include it. - float yTopMost = YTopMost; - if ((MyItemInfo.IsCautionPart || MyItemInfo.IsNotePart) && MyParent.PartsAbove.Count > 0) - yTopMost = MyParent.PartsAbove[0].YOffset; - yTopMost = Math.Min(yTopMost, YVeryTop); - yPageStart = yTopMargin + yTopMost;// -2 * SixLinesPerInch; - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - if (EmptyTopMostPart) yPageStart += SixLinesPerInch; - bool addExtraLines = false; - // If "ContinueSectionHeader" (format flag) is true then print the section title with "(Continued)" appended to it - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ContinueSectionHeader) - { - // if this is calvert OI/STP, then also check that docstyle has a top continue message - // in the document style that includes 'Continued' - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert) - { - string myMsg = MyItemInfo.MyDocStyle.Continue.Top.Message; - if (myMsg == null || myMsg == "") - { - // There is no message, but still need to check if there is a Section Title Continued message: - // This was added for BGE OI34 (if break was within step, no section title continue message was printed) - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ContinueSectionHeader) - { - SectionConfig sch = MyItemInfo.ActiveSection.MyConfig as SectionConfig; - doSectionTitleContinued = (sch == null || sch.Section_PrintHdr == "Y") && !MyItemInfo.MyDocStyle.CancelSectTitle; - } - else - doSectionTitleContinued = false; - } - else - { - SectionConfig sch = MyItemInfo.ActiveSection.MyConfig as SectionConfig; - doSectionTitleContinued = (sch == null || sch.Section_PrintHdr == "Y") && !MyItemInfo.MyDocStyle.CancelSectTitle; - } - } - else - { - SectionConfig sch = MyItemInfo.ActiveSection.MyConfig as SectionConfig; - doSectionTitleContinued = (sch == null || sch.Section_PrintHdr == "Y") && !MyItemInfo.MyDocStyle.CancelSectTitle; - } - } - addExtraLines = SectionTopMessage(cb, yTopMargin, yLocation); // this does wcntraining top section continue message and supplemental info message - if (MyPageHelper.CreatingSupInfoPage) yPageStart -= (2 * SixLinesPerInch); - if (!addExtraLines && (!doSectionTitleContinued || !SectionShowTitles)) - addExtraLines = DoTopContinueMsg(cb, ref yPageStart, yTopMargin, docstyle, doThreeContinues && MyItemInfo.MyParent != null && MyItemInfo.MyParent.MyTab != null ? MyItemInfo.MyParent.MyTab.CleanText : null); - - if (CompressPartOfStep) - { - MyPageHelper.YMultiplier = _SevenLinesPerInch / SixLinesPerInch; - CompressPartOfStep = false; - } - else - MyPageHelper.YMultiplier = 1; - - // For Calvert Alarms, if there was a page break and there is an box around the current - // step, need to add the header for the box, which is stored in a macro. Also set the - // 'AlarmYoffStart' value to where the vertical lines of the box start on this page. - if (doAlarmBox && MyItemInfo.StepLevel > 1) - { - float alrmY = CalculateYOffset(yPageStart, yTopMargin); - float macroY = addExtraLines ? YOffset - (6 * SixLinesPerInch) : YOffset - (4 * SixLinesPerInch); - PartsLeft.Add(new vlnMacro((float)docstyle.Layout.LeftMargin - 12, macroY, "H4")); - MyPageHelper.AlarmYoffStart = alrmY - SixLinesPerInch; - yPageStart -= (4 * SixLinesPerInch); - } - // For Calvert Alarms, if there is no box & this is top of page, if previous step - // had box (macro), adjust up page. The constructor (vlnParagraph), inserted these - // lines after the box so that the following text did not print right next to box. - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) - { - if (MyItemInfo.MyPrevious != null && MyItemInfo.MyPrevious.TemplateIndex > 0 && MyItemInfo.ActiveFormat.PlantFormat.FormatData.Templates[MyItemInfo.MyPrevious.TemplateIndex].hmacro > 0) - yPageStart += (3 * SixLinesPerInch); - } - // Now check if this is a template type step & if so, add the HLS's prefix/suffix to it. - // Since the entire checklist HLS (checklist table header) is printed as part of the - // continue, create a new paragraph to handle pagination and printing. - if (MyItemInfo.MyHLS != null && MyItemInfo.MyHLS.FormatStepData.UseSmartTemplate) - { - DoSubs = false; - vlnParagraph smartPara = new vlnParagraph(MyParent.MyParent, cb, MyItemInfo.MyHLS, MyParent.XOffset, yPageStart, 0, 0, MyParent.MyItemInfo.ActiveFormat, null, " (Continued)", 0,false, MyPromsPrinter); - smartPara.PrintHeader = true; - float mytmpfloat = smartPara.ParagraphToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - yPageStart -= smartPara.Height; - DoSubs = true; - } - if (addExtraLines) yPageStart -= (2 * SixLinesPerInch); - if (MyItemInfo.IsRNOPart && MyItemInfo.FormatStepData.DoubleSpace && MyItemInfo.FormatStepData.SpaceDouble) yPageStart += SixLinesPerInch; - break; - // .oooooo. .oooo. - // d8P' `Y8b .dP""Y88b - // 888 .oooo. .oooo.o .ooooo. ]8P' - // 888 `P )88b d88( "8 d88' `88b <88b. - // 888 .oP"888 `"Y88b. 888ooo888 `88b. - // `88b ooo d8( 888 o. )88b 888 .o o. .88P - // `Y8bood8P' `Y888""8o 8""888P' `Y8bod8P' `8bd88P' - case 3: // Break on High Level Step (SevenLinesPerInch) - if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.DoPageBreaks) - { - if (MyItemInfo.SupInfos != null && MyItemInfo.SupInfos.Count > 0) supInfoSect.StepSectPageBreaksForSupInfo.Add(MyItemInfo.SupInfos[0].ItemID); - else MyPromsPrinter.NeedSupInfoBreak = true; - supInfoSect.StepSectPageBreaks.Add(MyItemInfo.ItemID); - } - if (!firstHighLevelStep) - { - YTopMost=OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); - if (MyPageHelper.NotesToFootNotes != null && MyPageHelper.NotesToFootNotes.Count > 0) MyPageHelper.NotesToFootNotesYoffset = CalculateYLocation(yLocation, yTopMargin); - MyPromsPrinter.NewPage(); // HLS (7 lpi) breakif (MyItemInfo.IsSection) - //_MyLog.InfoFormat("NewPage 12 {0}", cb.PdfWriter.CurrentPageNumber); - //Console.WriteLine("'b3',{0},'{1}',{2},{3},{4},{5},{6}", MyItemInfo.ItemID, MyItemInfo.ShortPath, yTopMargin, yPageStart, yLocation, YTopMost, YOffset); - ResetDocStyleAndValues(ref yTopMargin, ref yBottomMargin); - //Console.WriteLine("'a3',{0},'{1}',{2},{3},{4},{5},{6}", MyItemInfo.ItemID, MyItemInfo.ShortPath, yTopMargin, yPageStart, yLocation, YTopMost, YOffset); - DebugText.WriteLine("Paginate3"); - if (MyItemInfo.IsSection) - { - SectionInfo si = MyItemInfo as SectionInfo; - MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null); - } - if (MyItemInfo.FoldoutIndex() > -1) - MyPromsPrinter.DoFoldoutPage(cb, "HLS (7 lpi) break", MyPageHelper.TextLayer, MyPageHelper, MyItemInfo.FoldoutIndex(), false); - else if (PromsPrinter.MyFoldoutReader.Count > 0 && MyPageHelper.MyPromsPrinter.InsertBlankPages) - { - // insert a blank page if this step section had a foldout associated and the checkbox - // on the print dialog, to add blank pages, is checked - MyPageHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - MyPromsPrinter.NewPage(); - //_MyLog.InfoFormat("NewPage 12 lpi blank {0}", cb.PdfWriter.CurrentPageNumber); - } - // If there is supplemental information to be printed on the facing page, then get the id that has supinfo - // so that it can be retrieved from the pdf for the supinfos for this section. If there is one, - // use DoSupInfoPage to put out the page, otherwise do a blank page. - if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.Merge && !MyItemInfo.IsSection && !MyItemInfo.IsInSupInfo && (MyItemInfo.MyActiveSection as SectionInfo).HasSupInfoSteps) - { - int sid = GetIdThatHasSupInfoItems(MyItemInfo, MyItemInfo.ItemID); - if (sid != -1) - { - MyPromsPrinter.DoSupInfoPage(cb, "TEMP", MyPageHelper.TextLayer, MyPageHelper, sid, true); - } - else - { - MyPageHelper.OnBlankPage = true; - cb.PdfDocument.Add(new iTextSharp.text.Table(1)); - MyPromsPrinter.NewPage(); - } - } - if (MyItemInfo.MyDocStyle.LandscapePageList) - { - System.Drawing.Drawing2D.Matrix myMatrix = new System.Drawing.Drawing2D.Matrix(0, 1, -1, 0, cb.PdfDocument.PageSize.Height, 0); - cb.Transform(myMatrix); - } - - // If "ContinueSectionHeader" (format flag) is true then print the section title with "(Continued)" appended to it - if (!MyItemInfo.IsSection && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.ContinueSectionHeader) - { - SectionConfig sch = MyItemInfo.ActiveSection.MyConfig as SectionConfig; - doSectionTitleContinued = (sch == null || sch.Section_PrintHdr == "Y") && !MyItemInfo.MyDocStyle.CancelSectTitle; - } - } - // if printing the section title, we already have the y location (note that only do this for the - // first step in the section. - if (MyItemInfo.MyPrevious == null && MyItemInfo.MyParent != null && MyItemInfo.MyParent.IsStepSection && - ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout) - yPageStart = yPageStart; - else - yPageStart = yTopMargin + YTopMost; - MyPageHelper.YMultiplier = _SevenLinesPerInch / SixLinesPerInch; - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - break; - } - // If "doSectionTitleContinued" is true then print the section title with "(Continued)" appended to it - // format must have ContinueSectinHeader format flag set to true - if (doSectionTitleContinued) - { - vlnParagraph sectContPara; - string contMsg = MyItemInfo.MyActiveSection.MyDocStyle.Continue.SectionTitle.AppendToTitle; - // For Calvert, the xoffset will be the highest level sections xoffset (there are metasections, - // don't use their xoffset or the continue message is indented too much) - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert) - { - float secContinueTabXoff = (float)MyItemInfo.MyDocStyle.Layout.LeftMargin; - float secContinueXoff = 0f; - float secContinueTabWidth = 0f; - vlnParagraph fndTopSect = this; - while (fndTopSect.MyParent != null) - { - fndTopSect = fndTopSect.MyParent; - } - if (fndTopSect != null && fndTopSect.MyTab != null) - { - secContinueTabXoff = fndTopSect.MyTab.XOffset; - secContinueTabWidth = fndTopSect.MyTab.Width; - secContinueXoff = fndTopSect.XOffset; - } - // get to the correct section for the message, i.e. if on a section, the message should be the parent - // section (not the activesection which is myself); if on a step, the message should be the active section - ItemInfo sectForCont = MyItemInfo.IsSection && MyItemInfo.MyParent.IsSection ? MyItemInfo.MyParent : MyItemInfo.ActiveSection; - sectContPara = new vlnParagraph(MyParent.MyParent, cb, sectForCont, MyParent.XOffset, 0, 0, 0, MyParent.MyItemInfo.ActiveFormat, null, (contMsg == null || contMsg == "") ? " (Continued)" : contMsg, 0, false,MyPromsPrinter); - if (sectContPara.PartsLeft.Count > 0) - { - vlnTab vt = sectContPara.MyTab; - string ctab = GetSectCombinedTab(MyItemInfo); - vt.Rtf = GetRtf(ctab, vt.MyFont); - float wd = vt.GetTextWidth(vt.MyFont, ctab); - vt.XOffset = secContinueTabXoff; - vt.Width = secContinueXoff - secContinueTabXoff; - sectContPara.XOffset = secContinueXoff; - if ((wd + 12) > secContinueXoff - secContinueTabXoff) // 12 is 2 characters - { - float dif = wd + 12 - (secContinueXoff - secContinueTabXoff); - vt.Width += dif; - sectContPara.XOffset += dif; - sectContPara.Width -= dif; - } - - } - float mytmpfloat = sectContPara.ParagraphToPdf(cb, yTopMargin, yTopMargin, yBottomMargin); - if (sectContPara.SectionContinuePrinted) - yPageStart -= sectContPara.Height + SixLinesPerInch; - else - Console.WriteLine("'No Header 1','{0}',{1},{2}",MyItemInfo.ShortPath,MyItemInfo.MyDocStyle.CancelSectTitle,MyItemInfo.MyDocStyle.SpecialStepsFoldout); - } - else - { - sectContPara = new vlnParagraph(MyParent.MyParent, cb, MyItemInfo.ActiveSection, MyParent.XOffset, 0, 0, 0, MyParent.MyItemInfo.ActiveFormat, null, (contMsg == null || contMsg == "") ? " (Continued)" : contMsg, 0, false, MyPromsPrinter); - float mytmpfloat = sectContPara.ParagraphToPdf(cb, yTopMargin, yTopMargin, yBottomMargin); - if (sectContPara.SectionContinuePrinted) - yPageStart -= sectContPara.Height + SixLinesPerInch; - else - Console.WriteLine("'No Header 1','{0}',{1},{2}", MyItemInfo.ShortPath, MyItemInfo.MyDocStyle.CancelSectTitle, MyItemInfo.MyDocStyle.SpecialStepsFoldout); - } - } - - // see if this hls has footnotes, add to the footnote datastructure for processing at end of page. - if (MyItemInfo.IsHigh && MyPageHelper.NotesToFootNotesHLS.ContainsKey(MyItemInfo.ItemID)) AddFootNote(cb); - - yPageStart = ChildrenAbove.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - yPageStart = ChildrenLeft.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - - // Handle the PageBreakOnStep flag for a HLS. This will put out the page break right before - // a HLS. One example of this use is for backgrounds (CALBCK). - // 'this' below is a highlevel step, and the only time that ParaBreaks[0] will == 'this' is - // when the PageBreakOnStep flag is true. - if (MyPageHelper.ParaBreaks != null && MyPageHelper.ParaBreaks.Count > 0 && - MyPageHelper.ParaBreaks[0] == this) - { - ShowPageBreak(1, CheckForCompression("PageBreakOnStep/Caution/Note HLS"), "Yes", YTop - YBottomMost, yTopMargin - yBottomMargin, yTopMargin - yBottomMargin, false); - YTopMost=OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); - MyPageHelper.BottomMessage = null; - MyPageHelper.TopMessage = null; - MyPromsPrinter.NewPage(); - if (CompressPartOfStep) - { - MyPageHelper.YMultiplier = _SevenLinesPerInch / SixLinesPerInch; - CompressPartOfStep = false; - } - MyPageHelper.ParaBreaks.RemoveAt(0); - yPageStart = yTopMargin + YTop; - } - // The following sets the beginning/ending y location for the lines around the - // CONDITION/RESPONSE text for Calvert Alarm format - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) - { - int tindx = MyItemInfo.TemplateIndex; - if (tindx >= 0) - { - // save this position to start drawing the alarm box lines around substeps: - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.Templates[MyItemInfo.TemplateIndex].row > 0) - MyPageHelper.AlarmYoffStart = CalculateYOffset(yPageStart, yTopMargin) - SixLinesPerInch; - else if (MyPageHelper.AlarmYoffStart > 0 && MyPageHelper.AlarmYoffEnd == 0) - MyPageHelper.AlarmYoffEnd = CalculateYOffset(yPageStart, yTopMargin) + (2 * SixLinesPerInch); - } - } - int profileDepth2 = ProfileTimer.Push(">>>> vlnParagraph.ParagraphToPdf"); - yPageStart = ParagraphToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - ProfileTimer.Pop(profileDepth2); - // If the yPageStart changes by more than a small amount (pagination) in the RNO (right column), then update - // yPageStart for the AER (left column). - float yPageStartRNO = ChildrenRight.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - if (yPageStartRNO - yPageStart > 24) // 24 is two lines - yPageStart = yPageStartRNO; - yPageStart = ChildrenBelow.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - - if (MyItemInfo.IsHigh && MyItemInfo.NextItem == null) // last hls, add the 'end' message, if there is one - { - docstyle = MyItemInfo.MyDocStyle; - // if the EndForSingle format flag is set to false, then we do not print an End message if the section - // is a single column section. - //bool _skipEndMessage = MyPageHelper.MySection.SectionConfig.Section_ColumnMode == SectionConfig.SectionColumnMode.One && !MyItemInfo.ActiveFormat.MyStepSectionLayoutData.EndForSingle; - SectionInfo si = MyItemInfo.MyActiveSection as SectionInfo; - bool _skipEndMessage = si.SectionConfig.Section_ColumnMode == SectionConfig.SectionColumnMode.One && !MyItemInfo.ActiveFormat.MyStepSectionLayoutData.EndForSingle; - bool _lastSect = true; - if (si.MyActiveParent.IsSection) // is this meta/subsection. Only put end message out on last section - { - ItemInfo mysect = si as ItemInfo; - if (mysect.NextItem != null && !docstyle.End.EndMessageOnEachSubSection) _lastSect = false; - } - string myMsg = (docstyle.End == null) ? null : docstyle.End.FixedMessage; - if (myMsg != null && !_skipEndMessage && _lastSect) - { - // If the flag is 0 or 1, just put the end message out right below this vlnParagraph: - float msg_yLocation = CalculateYLocation(yPageStart - YBottomMost, yTopMargin); - //if (MyPageHelper.YMultiplier < 1) - // msg_yLocation += 4;// Robinson - if the page is compressed, we need this adjustment. - - // the following is for IP3 - it was commented out so that an update could be put on - // before this was tested. - // if end message has {par}, remove these but add a line for each. - //int parindx = myMsg.IndexOf("{par}"); - //bool foundpar = false; - //while (parindx > -1) - //{ - // foundpar = true; - // msg_yLocation += SixLinesPerInch; - // parindx = myMsg.IndexOf("{par}", parindx + 1); - //} - //if (foundpar) myMsg = myMsg.Replace("{par}", ""); - // use the 'flag' to position the message. - if (docstyle.End.Flag > 2) // >2 position at an absolute location defined by docstyle.End.Flag. - { - msg_yLocation = yTopMargin - (float)(docstyle.End.Flag * SixLinesPerInch); - } - float adjMsgY = 0; - if (docstyle.End.Flag < 0) // Adjust this many lines down the page. - { - adjMsgY = (float)(-docstyle.End.Flag * SixLinesPerInch); - if (msg_yLocation - adjMsgY > docstyle.Layout.FooterLength) msg_yLocation = msg_yLocation - adjMsgY; - } - if (myMsg.Contains("{Section Number}")) myMsg = myMsg.Replace("{Section Number}", MyItemInfo.ActiveSection.DisplayNumber); - //jcb code - //if (myMsg.Contains("%-8s")) - // myMsg = myMsg.Replace("%-8s", MyItemInfo.MyProcedure.DisplayNumber.PadRight(8)); - if (myMsg.Contains("%-12s")) - myMsg = myMsg.Replace("%-12s", MyItemInfo.MyProcedure.DisplayNumber.PadRight(12)); - float xpos = 0; - if (yTopMargin-docstyle.Layout.PageLength>=msg_yLocation && docstyle.End.Message != null && docstyle.End.Message != "" && docstyle.End.Flag<=2) _MyLog.WarnFormat("End Message LOW on page: {0}, {1}, {2}, Page {3}",msg_yLocation, MyItemInfo.ItemID, MyItemInfo.ShortPath, MyPageHelper.CurrentPageNumber+1); - if ((docstyle.End.Margin ?? 0) != 0) - { - xpos = (float)docstyle.Layout.LeftMargin + (float)docstyle.End.Margin; - MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, xpos, msg_yLocation, docstyle.End.Font); - } - else - { // Center the bottom message - float wtpm = (float)docstyle.Layout.PageWidth - (float)docstyle.Layout.LeftMargin; - xpos = XOffsetBox + (float)docstyle.Layout.LeftMargin + (wtpm - (myMsg.Length * MyItemInfo.FormatStepData.Font.CharsToTwips)) / 2; - xpos = Math.Max(xpos, XOffsetBox + (float)docstyle.Layout.LeftMargin); - MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, xpos, msg_yLocation, docstyle.End.Font); - MyPageHelper.MyGaps.Add(new Gap(msg_yLocation, msg_yLocation - MyPageHelper.BottomMessage.Height)); - yPageStart -= (MyPageHelper.BottomMessage.Height + adjMsgY); - } - } - } - if (yLocalypagestart != yPageStart) DebugText.WriteLine("ToPdf-yPagestartDiff:{0},{1},{2},{3}", MyPageHelper.MyPdfContentByte.PdfWriter.CurrentPageNumber, MyItemInfo.ItemID, yLocalypagestart, yPageStart); - - // if doing NotesToFootnotes (Calvert valve list format), get the bottom location so that - // footnotes will be printed after last text on page. This is used for the end of the section. - // Pages that broke within pagination logic above had footnote location set during pagination code. - if (MyPageHelper.NotesToFootNotes != null && MyPageHelper.NotesToFootNotes.Count > 0) - MyPageHelper.NotesToFootNotesYoffset = CalculateYLocation(yPageStart - YBottomMost, yTopMargin); - ProfileTimer.Pop(profileDepth); - return yPageStart; - } - - private int ChildrenAboveHaveSupInfo() - { - if (ChildrenAbove == null || ChildrenAbove.Count < 1) return -1; - foreach (vlnParagraph p in ChildrenAbove) - { - if (p.MyItemInfo.SupInfos != null && p.MyItemInfo.SupInfos.Count > 0) return p.MyItemInfo.SupInfos[0].ItemID; - } - return -1; - } - // Find the step that has supplemental information from this step down page until a preferred page break is found - // or a regular page break. - // It is used to determine whether there is a supinfo facing page or if there should be a blank page. - private int GetIdThatHasSupInfoItems(ItemInfo ii, int startid) - { - if (ii == null) return -1; - if (ii.SupInfos != null && ii.SupInfos.Count > 0) return ii.SupInfos[0].ItemID; - int id = GetSubThatHasSupInfoItems(ii, startid); - if (id != -1) return id; - ItemInfo sib = ii.NextItem; - while (sib != null) - { - SectionInfo supInfoSect = ii.MyActiveSection as SectionInfo; - if (supInfoSect.StepSectPageBreaks.Contains(sib.ItemID)) return -1; - if (sib.SupInfos != null && sib.SupInfos.Count > 0) return sib.SupInfos[0].ItemID; - id = GetSubThatHasSupInfoItems(sib, startid); - if (id != -1) return id; - sib = sib.NextItem; - } - return -1; - } - private int GetSubThatHasSupInfoItems(ItemInfo ii, int startid) - { - if (ii is StepInfo && ((ii as StepInfo).MyConfig as StepConfig).Step_PreferredPagebreak && ii.ItemID != startid) return -1; - if (ii.MyContent.ContentParts != null) - { - foreach (PartInfo pi in ii.MyContent.ContentParts) - { - if ((E_FromType)pi.FromType != E_FromType.SupInfo) - { - foreach (ItemInfo iic in pi.MyItems) - { - if (iic.SupInfos != null && iic.SupInfos.Count > 0) return iic.SupInfos[0].ItemID; - int id = GetSubThatHasSupInfoItems(iic, startid); - if (id != -1) return id; - } - } - } - } - return -1; - } - private float GetSectionTopMessageSize() - { - // B2016-134: Account for wcntraining section top continue if item has container - float retval = 0; - if (MyItemInfo.MyDocStyle.SectTop != null && MyItemInfo.MyDocStyle.SectTop.Message != null) - { - if (PartsContainer != null && PartsContainer.Count > 0) retval = SixLinesPerInch * 1; - } - return retval; - } - // For WCNTRN (Wolf Creek Training format): the following prints the section number (and continued, if - // section is continued from previous page) in the Responsibility column. - private bool SectionTopMessage(PdfContentByte cb, float yTopMargin, float yLocation) - { - if (MyPageHelper.CreatingSupInfoPage) - { - float scttopWidths = "Supplemental Information".Length * 6; - float ctrs = ((float)MyItemInfo.MyDocStyle.Layout.PageWidth - (float)MyItemInfo.MyDocStyle.Layout.LeftMargin) / 2; - float sctcntrXs = (float)MyItemInfo.MyDocStyle.Layout.LeftMargin + ctrs - (scttopWidths / 2); - VE_Font vf = MyItemInfo.MyDocStyle.Font; - E_Style sty = (E_Style)(vf.Style | E_Style.Underline); - vf = new VE_Font(vf.Family, (int)vf.Size, sty, (float)vf.CPI); - MyPageHelper.TopMessage = new vlnText(cb, this, "Supplemental Information", "Supplemental Information", sctcntrXs, yTopMargin + 0.1F, vf); - return true; - } - bool addextra = false; - if (MyItemInfo.MyDocStyle.SectTop != null && MyItemInfo.MyDocStyle.SectTop.Message != null) - { - float sectMsgY = 0; - if (PartsContainer == null || PartsContainer.Count==0) - sectMsgY = CalculateYLocation(YTop, yTopMargin); - else - { - // B2016-134: Account for section top continue if item has container, i.e. move section top continue message above the container - sectMsgY = CalculateYLocation(YTopMost-(SixLinesPerInch*3), yTopMargin); // 3 is # of lines: header, box, blank line moving up page - addextra = true; - } - VE_Font sctMsgFont = MyItemInfo.MyDocStyle.SectTop.Font; - string scttop = null; - if (!MyItemInfo.IsStepSection && MyItemInfo.MyDocStyle.SectTop.Message != null) - scttop = MyItemInfo.MyDocStyle.SectTop.Message.Replace("%s", (MyItemInfo.ActiveSection as SectionInfo).DisplayNumber); - else - scttop = (MyItemInfo as SectionInfo).DisplayNumber; - float scttopWidth = scttop.Length * 6; - float ctr = (float)MyItemInfo.MyDocStyle.SectTop.Margin; - float sctcntrX = (float)MyItemInfo.MyDocStyle.Layout.LeftMargin + ctr - (scttopWidth / 2); - vlnText mySectMsg = new vlnText(cb, this, scttop, scttop, sctcntrX, sectMsgY, sctMsgFont); - PartsLeft.Add(mySectMsg); - } - return addextra; - } - // Added to try to resolve a problem when printing FNP-1-FRP-I.3 Attachment 3 Table 1. - // May be needed to evaluate this problem in the future. - //private void CompareSectionInfo(SectionInfo si, SectionInfo si1) - //{ - // if (si.ItemID != si1.ItemID) - // Console.WriteLine("Different"); - // if (si.ActiveFormat.FullName != si1.ActiveFormat.FullName) - // Console.WriteLine("Different"); - // if (si.ActiveParent != si1.ActiveParent) - // Console.WriteLine("Different"); - // if (si.ActiveSection.ItemID != si1.ActiveSection.ItemID) - // Console.WriteLine("Different"); - // if (si.MyDocStyle.Name != si1.MyDocStyle.Name) - // Console.WriteLine("Different"); - //} - private void AddFootNote(PdfContentByte cb) - { - // for calvert valve lists footnotes, if there is footnote data, save it for vlnSvgPageHelper - // which puts the footnotes out when page is printed. - List myNotes = MyPageHelper.NotesToFootNotesHLS[MyItemInfo.ItemID]; - foreach (int myNote in myNotes) - { - ItemInfo inote = StepInfo.Get(myNote); - - // first check if this exact text is already in the foot note list. If it is - // in there, don't add it. - bool inlist = false; - if (MyPageHelper.NotesToFootNotes != null) - { - foreach (vlnParagraph vp in MyPageHelper.NotesToFootNotes) - { - if (vp.MyItemInfo.MyContent.Text == inote.MyContent.Text) - { - inlist = true; - break; - } - } - } - if (!inlist) - { - vlnParagraph vpFNote = new vlnParagraph(null, cb, inote, (float)MyItemInfo.MyDocStyle.Layout.LeftMargin, 0, 0, 0, MyItemInfo.ActiveFormat, null, null, 0, false, MyPromsPrinter); - vpFNote.Width = (float)MyItemInfo.MyDocStyle.Layout.PageWidth - (float)MyItemInfo.MyDocStyle.Layout.LeftMargin; - vpFNote.Height = 0; - vpFNote.XOffset = (float)MyItemInfo.MyDocStyle.Layout.LeftMargin; - if (MyPageHelper.NotesToFootNotes == null) MyPageHelper.NotesToFootNotes = new List(); - MyPageHelper.NotesToFootNotes.Add(vpFNote); - } - } - MyPageHelper.NotesToFootNotesHLS.Remove(MyItemInfo.ItemID); - } - private bool DoTopContinueMsg(PdfContentByte cb, ref float yPageStart, float yTopMargin, DocStyle docstyle, string subTab) - { - bool addExtraLine = false; - if ((bool)docstyle.Continue.Top.UseStepTabs) - { - // UseStepTabs is a format flag added for Comanche Peak to print out step tabs as - // a top comtinue message. This code will go up through parents putting out - // their tabs - at this y location, but at the tabs' x location - vlnParagraph myPar = this; - MyPageHelper.TopMessageRs = new List(); - while (!myPar.MyItemInfo.IsHigh) - { - myPar = myPar.MyParent; - foreach (vlnPrintObject vpo in myPar.PartsLeft) - { - if (vpo is vlnTab) - { - vlnTab vt = vpo as vlnTab; - string cltxt = vt.Text; - // Originally the Comache Peak customer did not want the '*'. As of 6/22/15, CP wants the asterisk in continue msg - ///cltxt = cltxt.Replace("*", " "); - // replace C# representation of unicode character "\u25CF" which is hex - // with the rtf representation @"\u9679?" - if (cltxt.Contains("\u25CF")) cltxt = cltxt.Replace("\u25CF", @"\u9679?"); // handle a bullet, if it isn't unicode yet - MyPageHelper.TopMessageRs.Add(new vlnText(cb, this, cltxt, cltxt, vt.XOffset, yTopMargin, vt.MyFont)); - } - else if (vpo is vlnText) // As of 6/22/15, CP wants the step designator in the continue message also. - { - vpo.YOffset = yTopMargin; - int nlcnt = 1; // number of lines to adjust the yoffset for the next step designator we are adding to TopMessageRs - string rtxt = ""; - int istr = 0; - int Rsidx = 0; - MyPageHelper.TopMessageRs.Add(vpo as vlnText); // this appends a previous step designator associated with this sub-step (there may be more than one and/or might have multiple lines) - // we are processing the step designator on the top continue message in reverse order - // we therefore need to adjust the y location of multiple step designors attached tothe top continue message - if (MyPageHelper.TopMessageRs.Count > 3) - { - Rsidx = MyPageHelper.TopMessageRs.Count - 1; - rtxt = MyPageHelper.TopMessageRs[Rsidx].Text; - // find the number of lines to shift existing TopMessageRs step designators down - istr = rtxt.IndexOf("\\line", 0); - while (istr != -1) - { - nlcnt++; - istr = rtxt.IndexOf("\\line", istr + 1); - } - // move the previous TopMessageRs step designators down - Rsidx -= 2; // index to the previous step desginator - while (Rsidx > 0) - { - MyPageHelper.TopMessageRs[Rsidx].YOffset -= (nlcnt * SixLinesPerInch); - Rsidx -= 2;// every other TopMessageRs is a step designator - } - } - // for Comanche Peak - if step breaks on a sub-step, and both the high level step and the sub-step have a step designator - // then since the high level step and its step designator are printed as part of the top continue message, - // move the step designator associated with the sub-step down so that it does not print on top of the - // ones in the top continue message. - if (this.PartsLeft.Count > 1) // was a step designator printed for the sub-step? - { - // count the number of lines in the step designator text in the top continue message - nlcnt = 0; // reset for the number of lines to push the sub-step's step designator down - Rsidx = MyPageHelper.TopMessageRs.Count - 1; // note that TopMessageRs[0] is a tab not a step designator - while (Rsidx > 0) - { - nlcnt++; - rtxt = MyPageHelper.TopMessageRs[Rsidx].Text; - istr = rtxt.IndexOf("\\line", 0); - while (istr != -1) - { - nlcnt++; - istr = rtxt.IndexOf("\\line", istr + 1); - } - Rsidx -= 2; // every other TopMessageRs is a step designator - } - if (nlcnt > 0) - { - for (int idx = 1; idx < this.PartsLeft.Count; idx++) - { - vlnPrintObject vpol = this.PartsLeft[idx]; - vpol.YOffset += (nlcnt * SixLinesPerInch); // move the existing step designator down - } - } - } - } - } - } - return false; - } - - string myMsg = docstyle.Continue.Top.Message; - MyPageHelper.TopMessageRs = new List(); - // bug fix B2106-099 - // when there are more than one Caution/Note off of a high level background step, - // the second, third, etc background Caution/Note pages begin printing two additional lines from the top of the page - // to fix, added a check to see the the item we are printing has the PageBrrakOnStep flag set, if it's set, - // then DON'T add two lines to the yPageStart (for the top conitnue message) - if (myMsg != null && myMsg != "" && !MyItemInfo.FormatStepData.PageBreakOnStep) - { - yPageStart -= 2 * SixLinesPerInch;// Allow two lines for top continue message - if (myMsg.IndexOf(@"%sR") > -1) - { - ItemInfo myAer = MyItemInfo.IsHigh ? MyItemInfo : MyItemInfo.MyParent; - if (MyItemInfo.IsInRNO) - { - // If this is an RNO part, find the parent that is not an RNO (the reason for this is - // that RNO parts are structured as parent/child not sibling relationships, for - // example, RNO part 1.2 is the child of 1.1 not sibling). Also, if this is a caution - // or note of the RNO part, do the same because it should not use the RNO part's tab. - // However, the RNO Part will have the combined tab using its parent because this is - // needed if any of its children, for example substeps, need the combined tab. - if (((MyItemInfo.IsNote || MyItemInfo.IsCaution) && MyItemInfo.MyParent.IsRNOPart) || MyItemInfo.IsRNOPart) - { - ItemInfo ip = MyItemInfo.MyParent; - while (ip.IsRNOPart) ip = ip.MyParent; - myMsg = myMsg.Replace(@"%sR", ip.CombinedTab); - } - - else - myMsg = myMsg.Replace(@"%sR", MyItemInfo.MyParent.CombinedTab); - float xor = MyTopRNO.MyTab.XOffset; - MyPageHelper.TopMessageRs.Add(new vlnText(cb, this, myMsg, myMsg, xor, yTopMargin + 0.1F, docstyle.Continue.Top.Font)); - // get aer message, go up parent until find aer and use its combined tab: - myAer = MyItemInfo; - while (myAer.IsInRNO) myAer = myAer.MyParent; - } - else if (!MyItemInfo.IsHigh && (MyItemInfo.IsNote || MyItemInfo.IsCaution)) - { - ItemInfo ip1 = MyItemInfo.MyParent; - if (!ip1.IsHigh) myAer = ip1.MyParent; - } - myMsg = docstyle.Continue.Top.Message.Replace(@"%sR", myAer.CombinedTab); - } - if (myMsg.IndexOf(@"%s") > -1) - { - if (MyItemInfo.MyParent.IsSection && (docstyle.StructureStyle.Style & E_DocStructStyle.BottomSectionContinue) == E_DocStructStyle.BottomSectionContinue) - myMsg = myMsg.Replace(@"%s", MyItemInfo.MyParent.MyTab.CleanText.Trim()); - else - myMsg = myMsg.Replace(@"%s", MyItemInfo.MyParent.CombinedTab); - } - if (myMsg.IndexOf(@"%3d") > -1) - myMsg = myMsg.Replace(@"%3d", MyItemInfo.MyHLS.Ordinal.ToString()); - if (myMsg.IndexOf(@"%2d") > -1) - myMsg = myMsg.Replace(@"%2d", MyItemInfo.MyHLS.MyTab.CleanTextNoSymbols.Trim(" .".ToCharArray()).PadLeft(2)); - if (myMsg.IndexOf(@"%d") > -1) - myMsg = myMsg.Replace(@"%d", MyItemInfo.MyHLS.MyTab.CleanTextNoSymbols.Trim(" .".ToCharArray())); - if (myMsg.IndexOf(@"%c") > -1) - myMsg = myMsg.Replace(@"%c", " "); - - // Top Continue message includes high level step text - // - was going to use for V.C. Summer but ended up not needing it - // - leaving it here for future use - jsj 10/7/2014 - // - //if ((docstyle.Continue.Top.HLS ?? 0) == 1) - //{ - // string hlsText = ""; - // ItemInfo parentStep = MyItemInfo; - // while (!parentStep.IsHigh && parentStep.MyParent != null && !parentStep.IsSection) parentStep = parentStep.MyParent; - // if (parentStep.IsHigh) hlsText = parentStep.FormattedDisplayText;// .DisplayText; - // myMsg = hlsText + myMsg; - //} - - // Calvert Alarms, step description have the alarm number as part of the top continue message - // Also, if the break is within the CONDITION/RESPONSE, there are continue messages in both columns at the top - // of the table, note that the continue messages WITHIN table are only printed when the - // steplevel is greater than 2 - this is from 16bit. - // NOTE THAT this code is not complete - the positioning & addition of step tab for within table are not working correctly - if ((docstyle.Continue.Top.HLS ?? 0) == 3) - { - MyPageHelper.TopMessageSub1s = new List(); - MyPageHelper.TopMessageSub2s = new List(); - - //string HLSTabTextForContMsg = MyHighLevelParagraph.MyItemInfo.MyTab.CleanText + " " + MyHighLevelParagraph.MyItemInfo.MyContent.Text; - //int len = (HLSTabTextForContMsg.Length - 10) * 6; - string tabText = @"\ul\b " + MyHighLevelParagraph.MyItemInfo.MyTab.CleanText.Trim() + @"\b0\ulnone"; - string stepText = @"\b " + MyHighLevelParagraph.MyItemInfo.MyContent.Text + @"\b0"; - //HLSTabTextForContMsg = @"\ul\b " + MyHighLevelParagraph.MyItemInfo.MyTab.CleanText.Trim() + @"\b0\ulnone \b " + MyHighLevelParagraph.MyItemInfo.MyContent.Text + @"\b0"; - vlnText vt1 = new vlnText(cb, this, tabText, tabText, MyHighLevelParagraph.MyTab.XOffset, yTopMargin + 0.1F, docstyle.Continue.Top.Font); - vt1.Width = MyHighLevelParagraph.MyTab.Width; - MyPageHelper.TopMessageRs.Add(vt1); - vlnText vt2 = new vlnText(cb, this, stepText, stepText, MyHighLevelParagraph.XOffset, yTopMargin + 0.1F, docstyle.Continue.Top.Font); - vt2.Width = MyHighLevelParagraph.Width; - MyPageHelper.TopMessageRs.Add(vt2); - - // the following code is used to print the top continue messages in the Calvert Alarm format - // CONDITION/RESPONSE table. Messages only get printed if the break is on a substep at steplevel > 2. - // see comments within code for what the tab contains, it varies depending on which side - // break occurred & how deep in the step the break occurred. - if (subTab != null && MyItemInfo.StepLevel > 2) { - bool incond = !MyItemInfo.IsInRNO; - float ybot = yTopMargin + (4 * SixLinesPerInch); - string concatrnoTab = ""; // constructed tab for Response side - string concataerTab = ""; // constructed tab for Condition side - float xoffTab = 0; // position for Response tab - float xoffMsg = 0; // position for Response message - vlnParagraph useAerParaForTab = null; // use this paragraph under Conditions for locating tab & message - if (incond) - { - // If break is in Condition side of table, use Condition tab of parent & no tab for Response side. - // Both sides have the message '(continued)'. - useAerParaForTab = MyParent; - concataerTab = MyParent.MyTab != null ? MyParent.MyTab.Text.TrimEnd() : ""; - xoffTab = 0; // no rno tab - xoffMsg = ToInt(MyItemInfo.ActiveFormat.MyStepSectionLayoutData.ColRTable, 1) + (float)MyItemInfo.MyDocStyle.Layout.LeftMargin + ((useAerParaForTab != null && useAerParaForTab.MyTab!=null) ? useAerParaForTab.MyTab.Width : 7.2f); - } - else - { - // break occurred in Response side. Use the tabs up to highest RNO concatenated together. - vlnParagraph useRnoParaForTab = MyParent; - vlnParagraph useParaForTab = MyParent; - while (useParaForTab.MyItemInfo.IsInRNO) - { - concatrnoTab = (useParaForTab.MyTab != null ? useParaForTab.MyTab.Text.TrimEnd() : "") + concatrnoTab.Trim(); - if (concatrnoTab.Length > 0 && concatrnoTab[0] > '\xff') concatrnoTab = ""; - useRnoParaForTab = useParaForTab; - useParaForTab = useParaForTab.MyParent; - } - xoffTab = useRnoParaForTab.MyTab.XOffset; - xoffMsg = useRnoParaForTab.XOffset; - - // aer message when rno broke. Need to concatenate up the Condition side also until - // hitting 1st non-sequential, i.e. moves out of Condition/Response table. - useAerParaForTab = useParaForTab; // useParaForTab is 1st found non-Response step, i.e. moved into Condition side of table - while (useParaForTab.MyItemInfo.IsSequential) - { - concataerTab = (useParaForTab.MyTab != null ? useParaForTab.MyTab.Text.TrimEnd() : "") + concataerTab.Trim(); - useAerParaForTab = useParaForTab; - useParaForTab = useParaForTab.MyParent; - } - } - // For RNO tab, add a vlntext for tab and one for continue message: - float xoff1 = xoffMsg; - if (!incond) - { - vlnText vtc = new vlnText(cb, this, concatrnoTab, concatrnoTab, xoffTab, ybot, docstyle.Continue.Bottom.Font); - MyPageHelper.TopMessageSub1s.Add(vtc); - Chunk chk = (vtc.IParagraph.Chunks[0]) as Chunk; - if (chk != null) - { - float xoff2 = xoffTab + chk.GetWidthPoint() + 6; - // If the "(continue)" is going to overlap the tab, then move the "Continue)" so that it doesn't overlap. - if (xoff2 > xoff1) xoff1 = xoff2; - } - } - MyPageHelper.TopMessageSub1s.Add(new vlnText(cb, this, myMsg, myMsg, xoff1, ybot, docstyle.Continue.Bottom.Font)); - - // for aer tab, add a vlntext for tab and one for continue message: - MyPageHelper.TopMessageSub2s.Add(new vlnText(cb, this, concataerTab, concataerTab, useAerParaForTab.MyTab.XOffset, ybot, docstyle.Continue.Bottom.Font)); - MyPageHelper.TopMessageSub2s.Add(new vlnText(cb, this, myMsg, myMsg, useAerParaForTab.XOffset, ybot, docstyle.Continue.Bottom.Font)); - addExtraLine = true; - } - } - if (!PageBreakOnStep) - MyPageHelper.TopMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Top.Margin ?? 0, yTopMargin + 0.1F, docstyle.Continue.Top.Font);// MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font); - else - MyPageHelper.TopMessage = null; - } - return addExtraLine; - } - - private void DoBottomContinueMsg(PdfContentByte cb, float yBottomMargin, float yLocation, DocStyle docstyle, bool doThreeContinues) - { - string myMsg = docstyle.Continue.Bottom.Message; - - // a format flag exists that states to only put a BOTTOM message if it is a certain type (RNO) - // check for this.... - bool RNOContinueOnly = MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[40].ContinueOnly; - bool doBottom = !RNOContinueOnly || (MyItemInfo.IsInRNO && RNOContinueOnly); - if (doBottom && myMsg != null && myMsg != "") - { - myMsg = ReplaceStepBottomContinue(myMsg); - float msg_yLocation = 0; - if (myMsg.Contains("{par}")) - { - myMsg = myMsg.Replace("{par}", ""); - msg_yLocation = -SixLinesPerInch; - } - float yBtmMarginForMsg = yBottomMargin; - - // one of the format flags for FNP had an adjustment for printing the section title only - // on the first page of the section. Adjust the location of the bottom continue message - // if this adjustment was made (the current topmargin may not reflect the value within - // the document style) - if (MyPageHelper.PrintedSectionPage > 0) - { - if ((MyItemInfo.MyActiveSection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PrintSectOnFirst) == E_DocStructStyle.DSS_PrintSectOnFirst) - { - float localYTopMargin = 792 - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.TopMargin; - yBtmMarginForMsg = Math.Max(0, localYTopMargin - (float)MyItemInfo.MyActiveSection.MyDocStyle.Layout.PageLength); - } - } - // include space for phone list when determining bottom continue message location - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.PrintPhoneList && MyPageHelper.PhoneListHeight != 0) - yBtmMarginForMsg += (MyPageHelper.PhoneListHeight - vlnPrintObject.SixLinesPerInch); - switch (docstyle.Continue.Bottom.Location) - { - case E_ContBottomLoc.EndOfText: // place continue string at end of text - // msg_yLocation accounts for extra lines in message from docstyle; and BottomContent is the actual - // location of the last line of text on page. - msg_yLocation = msg_yLocation + ((float)MyPageHelper.BottomContent - (SixLinesPerInch * MyPageHelper.YMultiplier)); - float tableSpaceAvailable = TableSpaceAvailable;// RHM20150525 - Table Scrunch - if (yBottomMargin + (docstyle.Layout.FooterLength ?? 0) > msg_yLocation) - { // Adjusted Continue Message Y Offset - //DebugPagination.WriteLine("====>> {0},'{1}'", msg_yLocation, MyItemInfo.ShortPath); - //msg_yLocation = (float) MyPageHelper.BottomContent - SixLinesPerInch; // Account for how low the lowest Item is on the page - float msg_yLocationOld =msg_yLocation= yBottomMargin + (docstyle.Layout.FooterLength ?? 0); - if (MyPageHelper.BottomContent != null) - msg_yLocation = Math.Min(yBottomMargin + (docstyle.Layout.FooterLength ?? 0), (float)MyPageHelper.BottomContent - SixLinesPerInch);// RHM20150525 - Table Scrunch - if (msg_yLocationOld != msg_yLocation) - _MyLog.WarnFormat("Continue Message Moved from {0} to {1} for {2}", msg_yLocationOld, msg_yLocation, this);// RHM20150525 - Table Scrunch - } - break; - case E_ContBottomLoc.BtwnTextAndBottom: // place continue string between end of text & bottom of page - msg_yLocation = msg_yLocation + yLocation - ((yLocation - yBottomMargin) / 2); // +SixLinesPerInch; // (need this for IP3) - msg_yLocation = Math.Max(msg_yLocation, yBottomMargin+SixLinesPerInch); - break; - case E_ContBottomLoc.BottomOfPage: // place continue message at bottom of page - //msg_yLocation = yBottomMargin + 2 * SixLinesPerInch + (float)docstyle.Layout.FooterLength; // 2 lines above bottom margin - msg_yLocation = msg_yLocation + yBtmMarginForMsg + (float)docstyle.Layout.FooterLength; - break; - case E_ContBottomLoc.BelowBottom1: - msg_yLocation = msg_yLocation + yBtmMarginForMsg; - break; - case E_ContBottomLoc.BottomWithFooter: // put bottom message AND if in CONDITION/RESPONSE table, in both columns. - msg_yLocation = msg_yLocation + yBtmMarginForMsg; - break; - case E_ContBottomLoc.EndOfText2: // Like EndOfText but limited within yBottomMargin - msg_yLocation = Math.Max(msg_yLocation + yLocation - SixLinesPerInch, yBottomMargin + SixLinesPerInch); - break; - case E_ContBottomLoc.BtwnTextAndBottom2: - // Like BtwnTextAndBottom but accounts for line spacing of step & is 1 line up on page (for BGE - Procedure Steps - 2 column) - float adj = (!MyItemInfo.IsSection && MyItemInfo.FormatStepData.StepLayoutData.EveryNLines == 1) ? SixLinesPerInch : 0; - msg_yLocation = msg_yLocation + yLocation - ((yLocation - yBottomMargin) / 2) + adj;// +SixLinesPerInch; - if (msg_yLocation < yBottomMargin) msg_yLocation = yBottomMargin; - break; - default: - _MyLog.WarnFormat("**** BOTTOM CONTINUE MESSAGE NOT CODED FOR LOCATION {0}*****", docstyle.Continue.Bottom.Location); - break; - } - if (!PageBreakOnStep) - { - float xoffB = 0; - // Added for Calvert Alarms: if 'doThreeContinues', continue message at bottom of page - // and a continue message at the bottom of each column. - if (doThreeContinues) - { - float ybot = yLocation; - xoffB = (float)docstyle.Layout.LeftMargin + docstyle.Continue.Bottom.Margin ?? 0; - MyPageHelper.BottomMessageA = new vlnText(cb, this, myMsg, myMsg, xoffB, ybot, docstyle.Continue.Bottom.Font); - xoffB = docstyle.Layout.LeftMargin + docstyle.Continue.Bottom.MarginR ?? 0; - MyPageHelper.BottomMessageR = new vlnText(cb, this, myMsg, myMsg, xoffB, ybot, docstyle.Continue.Bottom.Font); - MyPageHelper.AlarmYoffEnd -= SixLinesPerInch; - float tmp = (((float)docstyle.Layout.PageWidth - (float)docstyle.Layout.LeftMargin) / 2) - (myMsg.Length / 2 * 5); - xoffB = (float)docstyle.Layout.LeftMargin + tmp; - } - else if (docstyle.Continue.Bottom.Location == E_ContBottomLoc.BottomWithFooter) - { - float tmp = (((float)docstyle.Layout.PageWidth - (float)docstyle.Layout.LeftMargin) / 2) - (myMsg.Length / 2 * 5); - xoffB = (float)docstyle.Layout.LeftMargin + tmp; - } - else if (RNOContinueOnly) - { - // The following line was added for McGuire APs/AP/1/5500/12, Step 13 - //if (msg_yLocation < yBottomMargin + SixLinesPerInch) msg_yLocation = yBottomMargin + SixLinesPerInch; - float colR = float.Parse(MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColRTable.Split(",".ToCharArray())[MyItemInfo.ColumnMode]); - xoffB = colR + docstyle.Layout.LeftMargin + docstyle.Continue.Bottom.Margin ?? 0; - } - else if (MyItemInfo.IsInRNO && (docstyle.Continue.Bottom.MarginR ?? 0) > 0) - { - xoffB = (float)docstyle.Layout.LeftMargin + (float)docstyle.Continue.Bottom.MarginR; - MyPageHelper.BottomMessageR = new vlnText(cb, this, myMsg, myMsg, xoffB, msg_yLocation, docstyle.Continue.Bottom.Font); - xoffB = (float)docstyle.Layout.LeftMargin + (float)docstyle.Continue.Bottom.Margin; - - } - // FloatingContinueMessage format flag: - // if breaking at the AER put continue message in left column, - // if breaking RNO put continue message in Right column. - else if (MyItemInfo.IsInRNO && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.FloatingContinueMessage) - { - float colR = float.Parse(MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColRTable.Split(",".ToCharArray())[MyItemInfo.ColumnMode]); - xoffB = colR + docstyle.Layout.LeftMargin + docstyle.Continue.Bottom.Margin ?? 0; - } - else - xoffB = docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Bottom.Margin ?? 0; - //MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Bottom.Margin ?? 0, msg_yLocation, docstyle.Continue.Bottom.Font);// MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font); - MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, xoffB, msg_yLocation, docstyle.Continue.Bottom.Font); - } - } - if (PageBreakOnStep) MyPageHelper.BottomMessage = null; - } - - private void RefreshDocStyle() - { - MyItemInfo.ActiveSection = null; - MyItemInfo.MyDocStyle = null; - MyPageHelper.MySection = MyItemInfo as SectionInfo; - MyPageHelper.ResetSvg(); - MyPageHelper.PrintedSectionPage = 0; - } - - private string ReplaceStepBottomContinue(string myMsg) - { - string tb = null; - if (MyItemInfo.IsSection) - tb = MyItemInfo.MyTab.CleanText.Trim(); - else - tb = MyItemInfo.MyHLS.MyTab.CleanTextNoSymbols; - // if the tab ends with .0, remove it if it was added because of the virtualdotinhls flag. - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.VirtualDotInHLSTab && tb.Contains(".0")) tb = tb.Replace(".0", ""); - if (myMsg.IndexOf(@"%d") > -1) - myMsg = myMsg.Replace(@"%d", tb.Trim()); - if (myMsg.IndexOf(@"%0d") > -1) - myMsg = myMsg.Replace(@"%0d", tb.Trim(" .".ToCharArray())); - if (myMsg.IndexOf(@"%2d") > -1) - myMsg = myMsg.Replace(@"%2d", tb.Trim(" .".ToCharArray()).PadLeft(2)); - if (myMsg.IndexOf(@"%3d") > -1) - myMsg = myMsg.Replace(@"%3d", MyItemInfo.MyHLS.Ordinal.ToString()); - return myMsg; - } - private vlnParagraph TopMostChild - { - get - { - if (ChildrenAbove.Count > 0) return ChildrenAbove[0].TopMostChild; - return this; - } - } - private bool EmptyTopMostPart - { - get - { - if (TopMostChild.PartsAbove.Count == 0) return false; - if (TopMostChild.PartsContainer != null && TopMostChild.PartsContainer.Count > 0) return false; // B2016-198: not 'EmptyTopMostPart' if there is a box. - foreach (vlnPrintObject po in TopMostChild.PartsAbove) - { - vlnHeader hd = po as vlnHeader; - if (hd == null) return false; - if (hd.Text != "") return false; - } - return true; - } - } - private float OutputOtherPageSteps(PdfContentByte cb, float YTopMost, float yPageStart, float yTopMargin, float yBottomMargin) - { - float retval = YTopMost; - // Find any items remaining in MyPageHelper.MyParagraphs that should be printed on this page. - vlnParagraphs process = new vlnParagraphs(null); - foreach (vlnParagraph vPara in MyPageHelper.MyParagraphs.Values) - { - if (!vPara.Processed && ((vPara.YOffset + vPara.Height) < YTopMost)) - if (this.MyItemInfo.ItemID != vPara.MyItemInfo.ItemID) // 20150701 Complicated RNO change - process.Add(vPara); - else // 20150701 Complicated RNO change - _MyLog.WarnFormat("Less Than: Step Could Have Fit {0}, {1}", MyItemInfo.ItemID, MyItemInfo.ShortPath); - else if (!vPara.Processed && ((vPara.YOffset + vPara.Height) == YTopMost)) - if (this.MyItemInfo.ItemID != vPara.MyItemInfo.ItemID) // RHM20150507 Table Scrunch - { - process.Add(vPara); - _MyLog.WarnFormat("New AerRno PageBreak Logic: Step Could Have Fit {0}, {1}", MyItemInfo.ItemID, MyItemInfo.ShortPath); - } - else // RHM20150507 Table Scrunch - _MyLog.WarnFormat("Equal: Step Could Have Fit {0}, {1}", MyItemInfo.ItemID, MyItemInfo.ShortPath); - else if (!vPara.Processed && ((vPara.YOffset) < YTopMost)) - retval = Math.Min(retval, vPara.YTopMost); - } - foreach (vlnParagraph vPara in process) - { - vPara.ParagraphToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - } - return retval; - } - private float _YVeryTop = -1; - public float YVeryTop - { - get - { - if (_YVeryTop == -1) - { - _YVeryTop = YTop; - _YVeryTop = VeryTop(PartsAbove, _YVeryTop); - _YVeryTop = VeryTop(PartsContainer, _YVeryTop); - } - return _YVeryTop; - } - } - - private float VeryTop(vlnPrintObjects parts, float yVeryTop) - { - if (parts != null) - foreach (vlnPrintObject part in parts) - if (part.YOffset < yVeryTop) - yVeryTop = part.YOffset; - return yVeryTop; - } - /// - /// This gets the height of the step with it's Caution's, Notes and potentially any First Substeps - /// - /// - private float GetFirstPieceSize() - { - vlnParagraph paraLast = GetFirstPieceLastPart(); - float retval = (paraLast.YBottom) - YTopMost; - //Console.WriteLine(MyItemInfo.DBSequence); - return retval; - } - public override float YBottom - { - get - { - float bottom = YOffset + Height; - if (PartsBelow != null) - { - foreach (vlnPrintObject part in PartsBelow) - { - float partBottom = part.YBottom; - bottom = Math.Max(partBottom, bottom); - } - } - return bottom; - } - } - public float YVeryBottom - { - get - { - float bottom = YOffset + Height; - if (ChildrenBelow != null) - foreach (vlnParagraph child in ChildrenBelow) - bottom = Math.Max(child.YVeryBottom, bottom); - if (ChildrenLeft != null) - foreach (vlnParagraph child in ChildrenLeft) - bottom = Math.Max(child.YVeryBottom, bottom); - if (ChildrenRight != null) - foreach (vlnParagraph child in ChildrenRight) - bottom = Math.Max(child.YVeryBottom, bottom); - if (PartsBelow != null) - foreach (vlnPrintObject part in PartsBelow) - bottom = Math.Max(part.YBottom, bottom); - return bottom; - } - } - public float YBottomText - { - get - { - return YOffset + Height; - } - } - private float _YBottomForBox = 0; - public float YBottomForBox - { - get { return _YBottomForBox; } - set { _YBottomForBox = value; } - } - private vlnParagraph GetFirstPieceLastPart() - { - vlnParagraph para = this; - if (!MyItemInfo.ActiveFormat.MyStepSectionLayoutData.PaginateOnFirstSubstep && ChildrenBelow != null && ChildrenBelow.Count > 0) - { - // If the substep has a separator (OR, AND) then return the last substep rather than the first. - string mySep = ChildrenBelow[0].MyItemInfo.FormatStepData.Sep ?? "{Null}"; - if (mySep != "{Null}" && mySep != "") - para = ChildrenBelow[ChildrenBelow.Count - 1].GetFirstPieceLastPart(); - else - { - // MNS Pagination - Mike Weiner Case 1a to keep step together with any non-sequential substeps (ANDs, EQ List) - bool keepEqListTogether = ChildrenBelow[0].MyItemInfo.ActiveFormat.MyStepSectionLayoutData.PutOnPageByItself; - if (keepEqListTogether && !ChildrenBelow[0].MyItemInfo.IsSequential && !this.MyItemInfo.IsHigh) // Extend to the last Item. - para = ChildrenBelow[ChildrenBelow.Count - 1].GetFirstPieceLastPart(); - else - para = ChildrenBelow[0].GetFirstPieceLastPart(); - } - } - if (ChildrenRight != null && ChildrenRight.Count > 0) - { - foreach (vlnParagraph paraRight in ChildrenRight) - { - vlnParagraph paraRightLast = paraRight.GetFirstPieceLastPart(); - if (paraRightLast.YBottom > para.YBottom) - para = paraRightLast; - } - } - return para; - } - /// - /// Find items from previous page (yLocation less than yTop) and remove them from the list. - /// yTop is the new starting location on the next page for this step. - /// - /// - /// - private void RemoveProcessedParagraphs(StepLevelList myList, float yTop) - { - // the two CleanUpLists are used to remove items from - // the original list because list items cannot be removed in a - // 'foreach'. - List CleanupListStepLevel = new List(); - foreach (int stepLevel in myList.Keys) - { - List CleanupListYLocation = new List(); - SortedList AdjustYLocation = new SortedList(); - foreach (float yLocation in myList[stepLevel].Keys) - { - if (-yLocation <= yTop) - CleanupListYLocation.Add(yLocation); - else - AdjustYLocation.Add(-yLocation, yLocation); // order in ascending order - } - foreach (float yLocation in CleanupListYLocation) - myList[stepLevel].Remove(yLocation); - foreach (float yLocation in AdjustYLocation.Keys) - { - vlnParagraph para = myList[stepLevel][-yLocation]; - myList[stepLevel].Remove(-yLocation); - // shift yLocation by yTop to work with items whose locations - // are defined from the top of the new page rather than - // from the beginning of the step. - // Note that yLocation is negative to have items in descending - // order so that adding yTop decrements their values. - if(!myList[stepLevel].ContainsKey(yTop - yLocation)) - myList[stepLevel].Add(yTop - yLocation, para); - } - if (myList[stepLevel].Count == 0) - CleanupListStepLevel.Add(stepLevel); - } - foreach (int stepLevel in CleanupListStepLevel) - myList.Remove(stepLevel); - } - /// - /// Builds a list of paragraphs by StepLevel and yLocation in descending order. - /// - /// - /// - private void BuildLocationList(float yTopMost, ParagraphLocations myLocations) - { - foreach (vlnParagraph child in ChildrenAbove) - child.BuildLocationList(yTopMost, myLocations); - foreach (vlnParagraph child in ChildrenLeft) - child.BuildLocationList(yTopMost, myLocations); - - // Add a list entry consisting of StepLevel, yoffset from the beginning of this step, paragraph itself - myLocations.Add(this, yTopMost); - - foreach (vlnParagraph child in ChildrenRight) - child.BuildLocationList(yTopMost, myLocations); - foreach (vlnParagraph child in ChildrenBelow) - child.BuildLocationList(yTopMost, myLocations); - } - private int COL_WID_ADJ = 6; // adjusts for incorrect use of WidSTable when breaking a line (it breaks 6 chars too short) - private bool IsTitleType(ItemInfo itm) - { - if (itm.FormatStepData != null && (itm.FormatStepData.Index == 42 || itm.FormatStepData.Index == 43)) return true; - return false; - } - private static VlnFlexGrid _MyFlexGrid = new VlnFlexGrid(1, 1); - public static VlnFlexGrid MyFlexGrid - { - get { return _MyFlexGrid; } - } - private pkParagraph _MyPlaceKeeper = null; - public pkParagraph MyPlaceKeeper - { - get { return _MyPlaceKeeper; } - set { _MyPlaceKeeper = value; } - } - private pkParagraph _MyContAct = null; - public pkParagraph MyContAct - { - get { return _MyContAct; } - set { _MyContAct = value; } - } - public static bool InList(int id, params int[] ids) - { - foreach (int listid in ids) - if (id == listid) return true; - return false; - } - private bool _PrefixSpecialCharacter = false; - public bool PrefixSpecialCharacter - { - get { return _PrefixSpecialCharacter; } - set { _PrefixSpecialCharacter = value; } - } - private string _Prefix; - public string Prefix - { - get { return _Prefix; } - set { _Prefix = value; } - } - private string _Suffix; - public string Suffix - { - get { return _Suffix; } - set { _Suffix = value; } - } - private float RoughSizeOfPage - { - get - { - return (float)(MyItemInfo.MyDocStyle.Layout.PageLength /*- MyItemInfo.MyDocStyle.Layout.TopMargin*/ - MyItemInfo.MyDocStyle.Layout.FooterLength); - } - } - private PromsPrinter _MyPromsPrinter; - public PromsPrinter MyPromsPrinter - { - get { return _MyPromsPrinter; } - set { _MyPromsPrinter = value; } - } - public static float _yPageStartForSupInfo = 0; - public vlnParagraph(vlnParagraph parent, PdfContentByte cb, ItemInfo itemInfo, float xoff, float yoff, int rnoLevel, int maxRNO, FormatInfo formatInfo, string prefix, string suffix, float yoffRightParent, bool loadChildren, PromsPrinter pp) - { - MyPromsPrinter = pp ?? parent.MyPromsPrinter; - int profileDepth = ProfileTimer.Push(">>>> vlnParagraph"); - Prefix = prefix; - Suffix = suffix; - MyItemInfo = itemInfo; - MyContentByte = cb; - if (itemInfo.IsFootnote && loadChildren) - { - // notestofootnoteshls is a list, a hls can have more than one note - if (MyPageHelper.NotesToFootNotesHLS.ContainsKey(itemInfo.MyHLS.ItemID)) - MyPageHelper.NotesToFootNotesHLS[itemInfo.MyHLS.ItemID].Add(itemInfo.ItemID); - else - { - List notesList = new List(); - notesList.Add(itemInfo.ItemID); - MyPageHelper.NotesToFootNotesHLS.Add(itemInfo.MyHLS.ItemID, notesList); - } - Processed = true; // don't want to print during normal ToPdf/ParagraphToPdf cycle - print in vlnsvgpagehelper - ProfileTimer.Pop(profileDepth); - return; - } - // do some 'setup' for Calvert Alarms: - if (itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) - { - // The CONDITION/RESPONSE portion of the alarm uses a macro to print the 'table' heading, - // i.e. the lines/boxes and text for CONDITION and RESPONSE. This does not have a tab, - // tabs are where the macros are usually stored, so flag this for future reference. - // The 2nd if is executed when the step is at the same y offset as the parent, i.e. DEVICE & SETPOINT text. - if (itemInfo.TemplateIndex > 0 && itemInfo.ActiveFormat.PlantFormat.FormatData.Templates[itemInfo.TemplateIndex].hmacro > 0) - HasCalvertMacro = true; - if (KeepOnParentLine(itemInfo)) yoff = parent.YOffset; - } - float yOffOrig = yoff; - // Save step text information to be used to create a PlaceKeeper (Calver Cliffs) - BuildPlacekeeper(parent, itemInfo); - - // Save step text information to be used to create a Continuous Action Summary - BuildContinuousActionSummary(parent, itemInfo); - if (itemInfo.ActiveFormat.MyStepSectionLayoutData.BoxLeftAdj != null) - _MyBoxLeftAdj = float.Parse(itemInfo.ActiveFormat.MyStepSectionLayoutData.BoxLeftAdj); - ShowSectionTitles = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles || itemInfo.MyDocStyle.ShowSectionTitles; - if (itemInfo.IsSection && itemInfo.ActiveSection.DisplayText.ToUpper().Contains("") && !itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.PrintNoTitle) ShowSectionTitles = false; - HasIndent = itemInfo.IsStep && itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.DontResetIndentOnNewline; - - int MetaLevel = 0; // if meta section, stores what level this section is. - float savCheckListBottomMost = 0; - //int[] problemIDs = { 889 }; - //List lProblemIDs = new List(problemIDs); - //if (lProblemIDs.Contains(itemInfo.ItemID)) - // Console.WriteLine("Found Item {0}", itemInfo.ItemID);formatInfochecko - MyParent = parent; - // The following code determines the last paragraph for an RNO - // MyTopRNO finds the Top paragraph for an RNO - if (itemInfo.IsInRNO) - { - if (rnoLevel <= maxRNO && itemInfo.IsRNOPart) // Not top level RNO - MyTopRNO = this; - else - MyTopRNO = MyParent.MyTopRNO; - if (MyTopRNO != null) MyTopRNO.LastRNO = this; - } - - if (!MyPageHelper.MyParagraphs.ContainsKey(itemInfo.ItemID) && !itemInfo.IsFootnote) MyPageHelper.MyParagraphs.Add(itemInfo.ItemID, this); - - // if this a continuous subsection, refresh the style. - // This was commented out to fix a Westinghouse print issue 3-21-2014, orignally put in for Farley - //if (itemInfo.IsStepSection && !(itemInfo as SectionInfo).IsSeparatePagination() && itemInfo.MyParent.IsSection) - // RefreshDocStyle(); - - XOffset = xoff; - if (!MyItemInfo.IsStep && !MyItemInfo.IsStepSection && MyItemInfo.MyContent.MyEntry != null) - { - IsWordDocPara = true; - // special case - this is a 'Word Doc' paragraph. The Processed flag is used to know - // that steps need put out on a page for the pagination logic, and since there are no steps - // we don't want to have to worry about putting this out for pagination logic. - Processed = true; - ProfileTimer.Pop(profileDepth); - return; - } - YTopMost = YOffset = yoff; - vlnTab mytab = null; - bool doSectTab = false; - // if this substep has a caution or note as its parent, then there may have been a special indent done on the - // substep... check the CautionOrNoteSubstepIndent value, this is the additional indent amount in number - // of characters. - if (itemInfo.MyParent.IsCaution || itemInfo.MyParent.IsNote) - { - // if this is a Note or Caution off of a Note or Caution (Catawba EG/1A/CSAM/SACGR1 step 1) - // then indent it the length of its tab - if (itemInfo.IsCaution || itemInfo.IsNote) - XOffset += (itemInfo.FormatStepData.TabData.IdentPrint.Length -1) * 6; - else - if (itemInfo.ActiveFormat.MyStepSectionLayoutData.DevNoteOrCautionTabOffset != null) - XOffset = float.Parse(itemInfo.ActiveFormat.MyStepSectionLayoutData.DevNoteOrCautionTabOffset); - else - XOffset += 72 * (itemInfo.FormatStepData.CautionOrNoteSubstepIndent == null ? 0 : (float)itemInfo.FormatStepData.CautionOrNoteSubstepIndent / (float)itemInfo.FormatStepData.Font.CPI); - } - - if (itemInfo.IsStep && itemInfo.MyHLS != null && itemInfo.MyHLS.FormatStepData.UseSmartTemplate && - itemInfo.FormatStepData.StepLayoutData.AlignWithParentTab - || (itemInfo.Steps != null && itemInfo.Steps.Count > 0 && itemInfo.Steps[0].FormatStepData.StepLayoutData.AlignWithParentTab)) - itemInfo.MyTab = null; - - float xMetaAdj = 0; - - if (itemInfo.IsFootnote) itemInfo.MyTab = null; - - if (itemInfo.IsSupInfoPart) XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - - //if (itemInfo.MyTab != null && itemInfo.MyTab.Text != null && itemInfo.MyTab.Text != "") - // bug fix - if the section does not have a section number, then we need to build an empty tab for the itemInfo - // so that we place the section title in the correct location. so we need to go into this IF code block - // even if itemInfo has a MyTab that is an empty string when itemInfo is a section - 2/11/2015 - if (itemInfo.MyTab != null && itemInfo.MyTab.Text != null && (itemInfo.MyTab.Text != "" || itemInfo.IsSection)) - { - float localXOffset = XOffset; - bool doprint = true; - if (itemInfo.IsSection) - { - MyItemInfo.ActiveSection = null; - MyItemInfo.MyDocStyle = null; - DocStyle ds = MyItemInfo.MyDocStyle; - - if (!ds.ComponentList && ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout) // Don't ouput the Step Section title - { - SectionConfig sch = MyItemInfo.MyConfig as SectionConfig; - if (sch != null && sch.Section_PrintHdr != "Y") - { - doprint = false; - YTopMost = 0; - } - } - else - doprint = false; - } - // if printing the supplemental info facing page, don't put out the section title. ToPdf will put out 'Supplemental Information' title. - if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.Merge && MyPageHelper.CreatingSupInfoPage && itemInfo.IsSection) doprint = false; - if (doprint && itemInfo.IsSection && !itemInfo.MyDocStyle.CancelSectTitle && itemInfo.MyTab.Text.ToUpper() != "FOLDOUT") - { - doSectTab = true; - if (itemInfo.IsStepSection && formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Just.Contains("PSLeft")) - { - float offset = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - if (formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos != null) - { - ItemInfo iilvl = itemInfo; - while (!iilvl.IsProcedure) - { - // see if this metasection, walking up the tree, has its header printed, - // if so, indent for it. - SectionConfig sch1 = iilvl.MyConfig as SectionConfig; - if (sch1.Section_PrintHdr == "Y" || MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) - MetaLevel++; - iilvl = iilvl.MyParent; - } - - if (formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvert) - { - if (MetaLevel == 1) - offset += (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos; - else - { - SectionConfig sc = itemInfo.MyParent.MyConfig as SectionConfig; - if (MyParent != null) - { - // if the parent is not printed, then adjust the xoffset based on - // the level of the metasection. Note that the 'if (MetaLevel==20) MetaLevel = 1' - // line of code was added so that the xoffsets between 16 & 32 bit are closer. - // This code was added to fix problems in BGE OI34, Appendix sections/subsection xoffsets. - if (sc != null && sc.Section_PrintHdr == "N") - { - if (MetaLevel == 2) MetaLevel = 1; - xMetaAdj = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[0].ColSByLevel; - for (int i = 0; i < MetaLevel; i++) - { - xMetaAdj += (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos - (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos; - xMetaAdj += (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[i].SecNumPositionAdj; - } - offset += xMetaAdj; - } - else - { - offset = (sc != null && sc.SubSection_AutoIndent == "Y") ? MyParent.XOffset - : (MyParent.MyTab != null) ? MyParent.MyTab.XOffset : XOffset; - } - } - } - } - else - { - - MetaLevel = MetaLevel <= 2 ? 1 : MetaLevel - 1; - if (MetaLevel == 1) - offset += (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos; - else - { - xMetaAdj = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[0].ColSByLevel; - for (int i = 0; i < MetaLevel; i++) - { - xMetaAdj += (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos - (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos; - xMetaAdj += (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[i].SecNumPositionAdj; - - } - offset += xMetaAdj; - itemInfo.MyTab.Text = itemInfo.MyTab.Text.TrimEnd(" ".ToCharArray()); - itemInfo.MyTab.CleanText = itemInfo.MyTab.CleanText.TrimEnd(" ".ToCharArray()); - if (((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_SameXOffSubsections) == E_DocStructStyle.DSS_SameXOffSubsections)) - offset += (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos; - } - } - } - localXOffset = offset; - } - } - if (!itemInfo.IsSection || doSectTab) - { - if (itemInfo.IsSupInfoPart) // get combined tab if on a supinfo facing page: - mytab = GetSupInfoTab(cb, itemInfo, yoff, mytab, doSectTab, localXOffset); - else if (itemInfo.MyTab.AltPrintTab != null) - mytab = new vlnTab(cb, this, itemInfo.MyTab.AltPrintTab, itemInfo.MyTab.AltPrintTab, localXOffset, yoff, itemInfo.MyTab.MyFont, doSectTab, StepRTB.MySymbolFontName, itemInfo.MyTab.RemovedStyleUnderline); - else - mytab = new vlnTab(cb, this, itemInfo.MyTab.Text, itemInfo.MyTab.CleanText, localXOffset, yoff, itemInfo.MyTab.MyFont, doSectTab, StepRTB.MySymbolFontName, itemInfo.MyTab.RemovedStyleUnderline); - PartsLeft.Add(mytab); - if (mytab.MyMacro != null) PartsLeft.Add(mytab.MyMacro); - } - } - else if (itemInfo.IsSupInfoPart) // if it was an empty tab - it may have been a caution/note - { - mytab = GetSupInfoTab(cb, itemInfo, yoff, mytab, doSectTab, XOffset); - PartsLeft.Add(mytab); - } - // if this is the High Level RNO step (MyTopRNO) and we are numbering the RNO, adjust the xoffset to start the tab - // at the x location rather than starting the text at the x location: - AdjustWidth(itemInfo, maxRNO, formatInfo, mytab); - bool adjustAgain = ((itemInfo.MyTab != null && itemInfo.MyTab.Position == 0) || (itemInfo.MyPrevious != null && itemInfo.MyPrevious.FormatStepData != null && itemInfo.MyPrevious.FormatStepData.TabData.IsTransition)) ? true : false; - if (!itemInfo.IsSection && itemInfo.FormatStepData.NumberHighLevel && itemInfo.IsRNOPart && (MyTopRNO == null || itemInfo.ItemID == MyTopRNO.MyItemInfo.ItemID)) - { - // adjust the x-offset of the RNO to include the tab. - if (itemInfo.ActiveFormat.MyStepSectionLayoutData.RNOWidthSameAsHighParent)// && !itemInfo.MyParent.IsHigh) - { - vlnParagraph hls = GetHighLevelParagraph(); - float RnoOffset1 = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO); - float offset = hls.Width + RnoOffset1 + hls.XOffset; - vlnTab tb = hls.MyTab; - //offset += tb.Width; - if (MyTopRNO == null) - Width -= (float)itemInfo.ActiveFormat.MyStepSectionLayoutData.SingleColumnRNOIndent; - offset -= Width; - float inc = offset - XOffset; - if (mytab != null) - mytab.XOffset += inc;// +(itemInfo.MyParent.IsHigh ? 6.8f : 0); - XOffset += inc; - adjustAgain = false; - } - else if (itemInfo.FormatStepData.AdjHighLevelTab != null && itemInfo.ColumnMode > 0) - // For Farley (only plant format to use AdjHighLevelTab), determine the xoffset based on - // where the right edge of the text is. Their RNO's are numbered with parent numbering - // so the calculations for determining the xoffset backs up from the right edge. - { - float rightTextEdge = this.MyHighLevelParagraph.XOffset + this.MyHighLevelParagraph.Width; - int colRx = int.Parse(formatInfo.MyStepSectionLayoutData.ColRTable.Split(",".ToCharArray())[itemInfo.ColumnMode]); - rightTextEdge += (colRx + (itemInfo.FormatStepData.AdjHighLevelTab ?? 0)); - float diff = rightTextEdge - (XOffset + Width); - if (mytab != null) mytab.XOffset += diff; - XOffset += diff; - adjustAgain = false; - } - else if(mytab != null) - { - float adjusttab = (itemInfo.MyParent.IsHigh) ? itemInfo.FormatStepData.AdjHighLevelTab ?? 0 : 0; - mytab.XOffset += (mytab.Width + adjusttab); - XOffset = mytab.XOffset + mytab.Width; - if (adjusttab != 0) Width += (mytab.Width); - } - } - if (adjustAgain) - { - AdjustXOffsetForTab(itemInfo, maxRNO, formatInfo, mytab, xMetaAdj); - // Used in Ginna's Attachment format. - // if the Note/Caution is off of a sub-step, then adjust the width so that the Caution/Note text box does not extend past the HLS text box - if (itemInfo.IsCautionOrNotePart && maxRNO == 0 && itemInfo.MyActiveSection.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.LimitCautionNoteWidthToHLS) - { - float wMax = MyHighLevelParagraph.Width + MyHighLevelParagraph.XOffset - XOffset; - if (wMax < Width && (Width + XOffset > MyItemInfo.MyDocStyle.Layout.PageWidth) ) Width = wMax; - } - } - - if (itemInfo.IsSection && MyParent == null && itemInfo.MyDocStyle.SupplementalInformation && MyPromsPrinter.SupInfoPrintType==E_SupInfoPrintType.Merge) - { - _SupInfoSection = new vlnParagraph(this, cb, itemInfo, xoff, yoff, rnoLevel, maxRNO, formatInfo, null, null, yoffRightParent, false, pp); - MyPromsPrinter.SupInfoPdfPageCount = -1; - } - // For Calvert Alarms: if within the CONDITION/RESPONSE table, indent by 1 character. - // Sequential substeps are ok because of the tab string, but items without a tab & other step - // types were writing over the CONDITION/RESPONSE vertical table line. This code uses - // 7.2 for the character size to match 16bit output. - if (itemInfo.IsStep && !itemInfo.IsSequential && !itemInfo.IsCaution && !itemInfo.IsNote && MyParent.HasCalvertMacro) - { - XOffset += 7.2f; - if (mytab != null) mytab.XOffset += 7.2f; - } - if ((itemInfo.IsCaution || (itemInfo.IsNote && !itemInfo.IsFootnote)) && (itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) == E_DocStructStyle.DoubleBoxHLS) - { - if (itemInfo.IsInRNO) - { - XOffset = MyTopRNO.MyTab != null ? MyTopRNO.MyTab.XOffset : MyTopRNO.XOffset; - Width = (float)itemInfo.MyDocStyle.Layout.PageWidth - XOffset - 10; - } - else - { - XOffset = MyHighLevelParagraph.MyTab.XOffset; - Width = MyHighLevelParagraph.MyTab.Width + MyHighLevelParagraph.Width - 6; // make width 1/2 char smaller so it doesn't touch line - } - } - if (UseTemplateWidthOrXOff(itemInfo)) - { - float txoff = GetWidthOrStartFromTemplate(itemInfo, itemInfo.ActiveFormat, false); - if (txoff > 0) XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + txoff; // GetWidthOrStartFromTemplate(itemInfo, itemInfo.ActiveFormat, false); - } - if (itemInfo.MyHeader != null && itemInfo.MyHeader.Text != null && !doSectTab) - yoff += SetHeader(this, cb, itemInfo, formatInfo); - else if(itemInfo.FormatStepData != null && itemInfo.FormatStepData.SeparateBox && itemInfo.FirstSibling.MyHeader != null && itemInfo.FirstSibling.MyHeader.Text != null) - yoff += SetHeader(this, cb, itemInfo.FirstSibling, formatInfo); - float yoffLeft = yoff; - if (ChildrenAbove != null) - ChildrenAbove.StepDesignator = null; //reset StepDesignator - if (DoSubs && itemInfo.Cautions != null && (!itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm || itemInfo.Cautions[0].FormatStepData.Type != "Caution1") && !(itemInfo.IsCaution || itemInfo.IsNote)) - { - if (itemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format) - { - // For deviations, the Cautions are always in the same place. - // Fix for Catawba E-1 deviation for step 10. Has note/caution off of a paragraph instead of HLS - float xoffDev = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - if(loadChildren) yoffLeft = ChildrenLeft.Add(cb, itemInfo.Cautions, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - } - else - { - if (yoffRightParent > yoff && ((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) != E_DocStructStyle.DoubleBoxHLS)) yoff = yoffRightParent; - if (loadChildren) yoff = ChildrenAbove.Add(cb, itemInfo.Cautions, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - } - } - if (DoSubs && itemInfo.Notes != null && !(itemInfo.IsCaution || itemInfo.IsNote)) - { - if (itemInfo.ActiveFormat.MyStepSectionLayoutData.Dev_Format) - { - // For deviations, the Cautions are always in the same place. - // Fix for Catawba E-1 deviation for step 10. Has note/caution off of a paragraph instead of HLS - float xoffDev = (float)itemInfo.MyDocStyle.Layout.LeftMargin + 6 + (float)(itemInfo.ActiveFormat.MyStepSectionLayoutData.WidT); - if (loadChildren) yoffLeft = Math.Max(yoffLeft, ChildrenLeft.Add(cb, itemInfo.Notes, xoffDev, yoff, yoff, rnoLevel, maxRNO, formatInfo)); - } - else - { - // Notes/Cautions span the page. If the right (RNO) column is below current yoff, use the - // yoff from this. Without this, an overlap of text between the note and the bottom of the - // RNO was occurring for FNP - Unit 2/AOP, AOP-4.0. - if (yoffRightParent > yoff && ((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) != E_DocStructStyle.DoubleBoxHLS)) yoff = yoffRightParent; - if (loadChildren) - { - float yoffadj = 0; - if (itemInfo.IsTable && MyFlexGrid.BorderStyle == C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None && !MyFlexGrid.TopRowHasBorder()) - yoffadj = SixLinesPerInch; // adjust the yoffset if the note is off of a borderless table - yoff = ChildrenAbove.Add(cb, itemInfo.Notes, xoff, yoff + yoffadj, yoff + yoffadj, rnoLevel, maxRNO, formatInfo) - yoffadj; - } - } - } - if (itemInfo is StepInfo && ((itemInfo as StepInfo).MyConfig as StepConfig).Step_PreferredPagebreak) HasPrefPageBreak = true; - if (MyPromsPrinter.SupInfoPrintType == E_SupInfoPrintType.Merge && loadChildren && itemInfo.SupInfos != null) - { - SupInfoSection.ChildrenBelow.Add(cb, itemInfo.SupInfos, XOffset, 0, 0, rnoLevel, maxRNO, formatInfo); - } - - // Without the following, BGE had gaps in y-direction if the AER/RNO both had cautions/notes. - // The only time this needs done is if caution/notes are printed in separate columns in dual - // column mode (used the DoubleBoxHLS BGE flag for this - if another plant needs this, make it - // a more generic flag). - if (itemInfo.IsRNOPart && ((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) == E_DocStructStyle.DoubleBoxHLS) && - rnoLevel == maxRNO && ChildrenAbove.Count > 0 && MyParent.ChildrenAbove.Count > 0) - { - float yDeltaRno = yoff - yOffOrig; - float yDeltaAer = SixLinesPerInch + yOffOrig - MyParent.ChildrenAbove[0].YTopMost; - if (yDeltaRno > yDeltaAer) - { - foreach (vlnParagraph chlda in MyParent.ChildrenAbove) - { - chlda.AdjustYOffset(yDeltaAer - yDeltaRno); - } - foreach (vlnParagraph chld in ChildrenAbove) - chld.AdjustYOffset(yDeltaAer); - yoff -= yDeltaAer; - } - else - { - foreach (vlnParagraph chld in ChildrenAbove) - chld.AdjustYOffset(yDeltaRno); - yoff -= yDeltaRno; - } - } - // Comanche Peak uses CAUTION2 type to enter a Step Designator, which is placed to the left of the step number. - // The Step Designator information is saved during the processing of the Cautions (ChildrenAbove) - // defined in the vlnParagraphs class (of which ChildrenAbove is defined) - if (ChildrenAbove.StepDesignator != null) - { - string pref = ChildrenAbove.StepDesignator; - float colOvrd = (float)(ChildrenAbove.StepDesignatorColumn ?? 0); - float xPref = (colOvrd > 0) ? colOvrd : mytab.XOffset - (pref.Length * (72 / (float)_MyItemInfo.FormatStepData.Font.CPI)); - PartsLeft.Add(new vlnText(cb, this, pref, pref, xPref, yoff, ChildrenAbove.StepDesignatorFont)); - ChildrenAbove.StepDesignator = null; - ChildrenAbove.StepDesignatorColumn = null; - } - DoAnnotationPrintableText(cb, itemInfo, yoff); // Look in annotation type to see if annotation has text that should be printed (like a step designator) - - // if this is a hls with a box, adjust the starting y location for the hls. this is done here - // in case this hls had a boxed caution and/or note before it. Also, this code is here rather - // than in the vlnparagraphs.add code because the yoff in that code will position the box, but - // this code positions the hls (in y direction), without this, the hls starts on the box line. - int bxIndx = itemInfo.IsSection ? 0 : itemInfo.FormatStepData.StepLayoutData.STBoxindex ?? 0; - if (itemInfo.IsHigh && bxIndx > 0) - { - int boxLnAdjust = itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.DiffContActBox ? 1 : 2; - yoff += (boxLnAdjust * SixLinesPerInch); // this yoff is where the BOX starts (boxLnAdjust was added for WEP2) - } - - // If the format has that extra space should be put out before the step, then - // handle this by using the 'PartsAbove' structure. By using the parts above, the extra - // space above will be done regardless of where page breaks fall. - float addExtraSpace = 0; - if (MyItemInfo.FormatStepData != null && MyItemInfo.ActiveFormat.MyStepSectionLayoutData.CustomSpacing) - addExtraSpace = MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace ?? 0; - //if (MyItemInfo.MyParent != null && MyItemInfo.MyParent.FormatStepData != null && - // MyItemInfo.MyParent.FormatStepData.Type != "TitleWithTextRight") - // addExtraSpace = (MyItemInfo.FormatStepData == null) ? 0 : MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace ?? 0; - if (MyItemInfo.MyParent != null && MyItemInfo.MyParent.FormatStepData != null) - addExtraSpace = (MyItemInfo.MyParent.FormatStepData.Type == "TitleWithTextRight" || MyItemInfo.FormatStepData == null) ? 0 : MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace ?? 0; - // If a high level step, the 16bit code uses the value of the extra space - // from the high level step format regardless of what type of high level step it is: - // Added check for UseSTExtraRealValue, if set, we want to use what is set for the specific step type - // Added check for CustomSpacing (was also in 16-bit logic) - if (!MyItemInfo.ActiveFormat.MyStepSectionLayoutData.UseSTExtraRealValue && - !MyItemInfo.ActiveFormat.MyStepSectionLayoutData.CustomSpacing && - MyItemInfo.IsHigh) - addExtraSpace = MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[2].StepLayoutData.STExtraSpace ?? 0; - // If CustomSpacing flag is true - // then use the STExtraSpace from the step type called "Default" (index number 25) - //if (YOffset != 0 && MyItemInfo.IsSection && MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.CustomSpacing) - if (YOffset != 0 && MyItemInfo.IsSection && MyItemInfo.ActiveFormat.MyStepSectionLayoutData.CustomSpacing) - addExtraSpace = (float)MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[25].StepLayoutData.STExtraSpace; - if (YOffset != 0 && MyItemInfo.FormatStepData != null && - MyItemInfo.MyPrevious == null && MyItemInfo.FormatStepData.ThreeBlanksAbove && (!MyItemInfo.IsNote || MyItemInfo.MyParent.Cautions == null)) - addExtraSpace = 24; // already has one blank line above, added two more - //if (YOffset != 0 && MyItemInfo.FormatStepData != null && MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace > 0) - // addExtraSpace = (float)MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace; - // if this plant has the AlwaysUseExtraLines and there are notes/cautions above the hls, don't add in the - // extra space: - if (itemInfo.IsHigh && (itemInfo.Cautions != null || itemInfo.Notes != null)) - { - if ((itemInfo.Cautions != null && itemInfo.Cautions[0].FormatStepData.AlwaysUseExtraLines) || (itemInfo.Notes != null && itemInfo.Notes[0].FormatStepData.AlwaysUseExtraLines)) - addExtraSpace = 0; - } - if (addExtraSpace > 0 && MyItemInfo.FormatStepData != null) - { - // We need to strip out the underline style from the font before putting out - // the extra line. - VE_Font vf=MyItemInfo.FormatStepData.Font; - E_Style sty = (E_Style)vf.Style; - if ((sty & E_Style.Underline) != 0) - sty ^= E_Style.Underline; - vf = new VE_Font(vf.Family, (int) vf.Size, sty,(float) vf.CPI); - this.PartsAbove.Add(new vlnText(cb, this, " ", " ", 72, yoff, vf)); - } - - yoff += addExtraSpace; - - YTop = yoff; - YOffset = yoff; - if (mytab != null && mytab.SeparateBullet) - { - string identB = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.IdentB; - vlnText myBullet = new vlnText(cb, this, identB, identB, XOffset - 12, YOffset, MyItemInfo.FormatStepData.TabData.Bullet.Font); - myBullet.Rtf = myBullet.Rtf.Replace("\u25CF", @"\f1\u9679?\f0 "); - PartsLeft.Add(myBullet); - } - if (itemInfo.MyTab != null && itemInfo.MyTab.AsteriskOffset != 0) - { - - // the '-24' in x-direction & '+4' in y-direction was used for the SHE format to get the continuous - // HLS's asterisk to match 16bit. The font size was set at 16 to make it match also: - VE_Font astFont = new VE_Font(MyItemInfo.FormatStepData.TabData.Font.Family, 16, E_Style.Bold, 10); - vlnText myAsterisk = new vlnText(cb, this, "*", "*", mytab.XOffset - 24, YOffset + 4, astFont); - PartsLeft.Add(myAsterisk); - } - if (itemInfo.IsRNOPart && rnoLevel > maxRNO) - { - // the DoubleSpace & SpaceDouble flags seem redundant. The 2nd line was added for foldout - // line spacing for IP2 foldouts (one example can be found in E-1) - if (!itemInfo.FormatStepData.SpaceDouble && itemInfo.MyParent.IsHigh) - { - // but it we are in single column mode, don't remove the blank line. (Wolf Creek Admin Instructions - wcn1) - if ((itemInfo.MyActiveSection as SectionInfo).SectionConfig.Section_ColumnMode != SectionConfig.SectionColumnMode.One) - yoff = YOffset = yoff - SixLinesPerInch; - } - else if (itemInfo.FormatStepData.NoSpaceMultipleRNOs) yoff = YOffset = yoff - SixLinesPerInch; - if (itemInfo.FormatStepData.DoubleSpace && itemInfo.FormatStepData.SpaceDouble) yoff = YOffset = yoff + SixLinesPerInch; - } - AddMacros(itemInfo, mytab); - if (mytab != null) - { - mytab.YOffset = yoff; - if (mytab.MyMacro != null) mytab.MyMacro.YOffset = yoff; - } - // For background formats, HLS's or Caution or any Notes have tab on line and then text - // on line below (with space in between) - if (itemInfo.IsBackgroundStep() && itemInfo.MyTab != null && itemInfo.MyTab.AltPrintTab != null && itemInfo.MyTab.AltPrintTab.Trim() != "") - yoff = YOffset = yoff + (2 * SixLinesPerInch); - CheckOff co = itemInfo.GetCheckOffStep(); - float yForCheckoff = yoff; //0; - default checkoff row is same as FIRST line of text - // if dropCheckoff is true, then the checkoff is place on the same of row as the LAST line of text - bool dropCheckoff = itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.DropCheckOff - || (co != null && co.DropCheckOff); - if (itemInfo.MyContent.MyGrid != null) - { - vlnCells.DefaultFont = itemInfo.FormatStepData.Font.WindowsFont;// Set the default text font based upon the format - int profileDepth1 = ProfileTimer.Push(">>>> Before vlnParagraph.Grid"); - //Use Static MyFlexGrid - BWD INST2 - FlexGrid Errors - MyFlexGrid.LoadGrid(itemInfo); - MyGrid = new vlnTable(MyFlexGrid, cb); - Height = MyGrid.Height; - Width = MyGrid.Width; - // Adjust the XOffset before determining if the table will overlap the RNO column RHM 20150529 - CalculateXOffsetGridOrFigure(itemInfo, maxRNO, formatInfo); - - yoff = AdjustLocIfLongerRNO(itemInfo, yoff, yoffRightParent); - // if the table does not have a border, only move down one line: - float yoffForBorder = 2 * SixLinesPerInch; - if (MyFlexGrid.BorderStyle == C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None && !MyFlexGrid.TopRowHasBorder()) - yoffForBorder -= SixLinesPerInch; - //yForCheckoff = yoff + Height - SixLinesPerInch; - if (dropCheckoff) - yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text - yoff += (Height + yoffForBorder); //(2 * SixLinesPerInch)); - yoff = (float)Math.Ceiling(yoff); - ProfileTimer.Pop(profileDepth1); - } - else if (itemInfo.IsRtfRaw) - { - CalculateXOffsetGridOrFigure(itemInfo, maxRNO, formatInfo); - YOffset = yoff; - yoff += Height * .6f; // .6 is used as a scale factor in RtfRawAt (rtf2pdf). Use it here too for moving down page after equation. - yoff = (float)Math.Ceiling(yoff); - yoff += AdjustForBlankLines(); - } - else if (itemInfo.IsFigure) // if a figure we've got to determine the size: - { - int profileDepth2 = ProfileTimer.Push(">>>> Before vlnParagraph.Figure"); - string erMsg = null; - if (itemInfo.MyContent.Text != null) // ro image - { - ProcedureInfo proc = itemInfo.MyProcedure; - DocVersionInfo dvi = proc.MyDocVersion; - ROFstInfo rofst = dvi.DocVersionAssociations[0].MyROFst; - //rofst.docVer = dvi; - ROFSTLookup lookup = rofst.GetROFSTLookup(dvi); - string linkInfoText = itemInfo.MyContent.Text.Replace(@"\v ", ""); - Match m = Regex.Match(linkInfoText, @"(.*)[#]Link:([A-Za-z]*):(.*)"); - string val = null; - if (m.Length > 0) // if m.lengh is zero, then no match was found - no RO was entered in the figure substep - { - if (m.Groups.Count < 4) - { - //erMsg = "RO was not found during data migration."; - // added newlines in the RO number (shown in figure substep type with figure RO) - // if we are here, then there is no RO link information, use this number to find the RO image to print - val = string.Format("{0}\n{1}\n{2}\n{3}", - linkInfoText.Substring(0, linkInfoText.Length - 16), - linkInfoText.Substring(linkInfoText.Length - 16, 8), - linkInfoText.Substring(linkInfoText.Length - 8, 4), - linkInfoText.Substring(linkInfoText.Length - 4, 4)); - val = val.Replace(@"\u8209?", "-").Replace(@"\u9586?", @"\"); // replace dash and backslash symbols with dash and backslash characters - } - else - { - string[] subs = m.Groups[3].Value.Split(" ".ToCharArray()); - val = lookup.GetRoValue(subs[1]); - if (val == null || val == "?") val = lookup.GetRoValue(subs[1].Substring(0, 12)); - if (val == "?") - { - erMsg = string.Format("Referenced Object does not exist."); - _MyLog.WarnFormat("\r\nMissing Referenced Object {0} in {1}", subs[1], itemInfo.ShortPath); - yoff += 2 * SixLinesPerInch; - } - } - } - GC.Collect(); // memory garbage collection (Regex memory bug) - if (val != null && val != "?") - { - string[] vals = val.Split("\n".ToCharArray()); - Width = Int32.Parse(vals[3], System.Globalization.NumberStyles.AllowHexSpecifier) * MyItemInfo.FormatStepData.Font.CharsToTwips; - int lines = Int32.Parse(vals[2], System.Globalization.NumberStyles.AllowHexSpecifier); - // Check that the Height of figure isn't too big to fit on the page, if it is - // set the Height to the printable part of page - Height of the HLS and an extra line - // for between HLS & figure. - float h1 = lines * SixLinesPerInch; - float h2 = RoughSizeOfPage - MyParent.Height - SixLinesPerInch; - Height = Math.Min(h1, h2); - if (h1 > h2) - { - Width *= (h2 / h1); - } - StepConfig sc = new StepConfig(MyItemInfo as StepInfo); - if (sc != null && sc.Step_ImageWidth != 0) - { - Width = sc.Step_ImageWidth; - Height = sc.Step_ImageHeight; - } - yoff = AdjustLocIfLongerRNO(itemInfo, yoff, yoffRightParent); - if (dropCheckoff) - yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text - bool noborder = MyItemInfo.FormatStepData.Type.ToUpper().Contains("BORDERLESS"); - yoff += (Height + ((noborder ? 1 : 2) * SixLinesPerInch)); // RHM 20120925 - Eliminate extra space after Figure } - try - { - ROImageInfo roImage = ROImageInfo.GetByROFstID_FileName(rofst.ROFstID, vals[0]); - if (roImage != null) - ImageText = val; - else - { - roImage = rofst.GetROImageByFilename(vals[0], MyItemInfo);// need code to go and get an ROImaage if it exists - if (roImage == null) - erMsg = string.Format("Image {0} does not exist.", vals[0]); - else - ImageText = val; - } - } - catch (Exception ex) - { - erMsg = string.Format("Image {0} does not exist, error = {1}.", vals[0], ex.Message); - } - } - if (erMsg != null) Rtf = GetRtf(erMsg, itemInfo.ActiveFormat.PlantFormat.FormatData.Font); - CalculateXOffsetGridOrFigure(itemInfo, maxRNO, formatInfo); - } - else - { - // figure - ImageText = "figure"; - } - if (ImageText == null && erMsg == null) - { - ImageText = "figure"; - ImageConfig ic = new ImageConfig(MyItemInfo.MyContent.MyImage); - // B2016-277: add a try catch in case of there being 'bad' data in the text field for an image/figure - try - { - byte[] idata = (ic != null && ic.Image_DataSize > 0) ? ROImageInfo.Decompress(MyItemInfo.MyContent.MyImage.Data, ic.Image_DataSize) : MyItemInfo.MyContent.MyImage.Data; - MemoryStream ms = new MemoryStream(idata); - System.Drawing.Image img = System.Drawing.Image.FromStream(ms); - Width = img.Width; - Height = img.Height; - if (ic != null && ic.Image_Height != 0) - { - Width = ic.Image_Width; - Height = ic.Image_Height; - } - yoff = AdjustLocIfLongerRNO(itemInfo, yoff, yoffRightParent); - bool noborder = MyItemInfo.FormatStepData.Type.ToUpper().Contains("BORDERLESS"); - yoff += (Height + ((noborder ? 2 : 3) * SixLinesPerInch)); - CalculateXOffsetGridOrFigure(itemInfo, maxRNO, formatInfo); - } - catch (Exception ex) - { - _MyLog.WarnFormat("Bad figure content data: item = {0}, {1}", MyItemInfo.ItemID, MyItemInfo.ShortPath); - } - } - ProfileTimer.Pop(profileDepth2); - } - else - { - // For Calvert Alarms, the 'CONDITION/RESPONSE' portion uses a macro to print - // the CONDITION and RESPONSE text with the lines around it. Add the macro here because - // there is no tab for the step & that's where the macro is usually stored: - if (HasCalvertMacro) PartsLeft.Add(new vlnMacro(xoff - 12f, yoff, "H4")); - - //if (itemInfo.IsSection) - // Rtf = GetRtf(itemInfo, prefix, " (Continued)"); - //else - // BuildRtf(); // not necessary, RTF is lazyloaded - if (itemInfo.IsStep && itemInfo.MyHLS != null && itemInfo.MyHLS.FormatStepData.UseSmartTemplate) - { - if (itemInfo.FormatStepData.StepLayoutData.AlignWithParentTab - || (itemInfo.Steps != null && itemInfo.Steps.Count > 0 && itemInfo.Steps[0].FormatStepData.StepLayoutData.AlignWithParentTab)) - { - int stplevl = TheStepLevel(itemInfo); - if (stplevl >= 0 && MyItemInfo.MyHLS.FormatStepData.VertPos[stplevl] > 0) - { - if (MyItemInfo.FormatStepData.StepPrintData.Justify == "Center") - { - string[] vertPos = MyItemInfo.MyHLS.FormatStepData.VertPos.Split(",".ToCharArray()); - float hloc = (float.Parse(vertPos[stplevl]) + ((float.Parse(vertPos[stplevl + 1]) - float.Parse(vertPos[stplevl])) / 2)); - Chunk chk = (Chunk)IParagraph.Chunks[0]; - hloc = hloc - (chk.GetWidthPoint() / 2); - XOffset = hloc + (float)itemInfo.MyDocStyle.Layout.LeftMargin; - } - else - XOffset = float.Parse(MyItemInfo.MyHLS.FormatStepData.VertPos.Split(",".ToCharArray())[stplevl]) + (float)itemInfo.MyDocStyle.Layout.LeftMargin; - } - } - } - if (itemInfo.IsTablePart) // Not for grid, this is for old-style tables. - { - Width = GetTableWidth(cb, IParagraph, MyItemInfo.MyDocStyle.Layout.PageWidth); - CalculateXOffsetGridOrFigure(itemInfo, maxRNO, formatInfo); - } - else - if (itemInfo.FormatStepData != null && itemInfo.FormatStepData.StepPrintData != null && (itemInfo.IsHigh || (!itemInfo.IsHigh && itemInfo.MyContent.Type != itemInfo.MyParent.MyContent.Type))) XOffset += (float)(itemInfo.FormatStepData.StepPrintData.PosAdjust ?? 0); - - // point beach wpb subformats 20 & 22 were printing some text past right margin. Limit the width to the right margin, i.e. pagewid - if (itemInfo.ActiveFormat.MyStepSectionPrintData.LimitWidToPageWid) - { - float lim = (MyTab == null ? (XOffset - (float)itemInfo.MyDocStyle.Layout.LeftMargin) : MyTab.XOffset + MyTab.Width) + Width; - float docStyleLim = (float)itemInfo.MyDocStyle.Layout.PageWidth - (float)itemInfo.MyDocStyle.Layout.LeftMargin; - - if (lim > docStyleLim) - { - WidthNoLimit = Width; // Use this width to calculate childrens' width, without this, code was making children to narrow! - Width = docStyleLim - (MyTab == null ? (XOffset - (float)itemInfo.MyDocStyle.Layout.LeftMargin) : MyTab.XOffset + MyTab.Width); - } - } - if (itemInfo.IsSection && ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle) - { - if (MyItemInfo.MyDocStyle.Layout.SectionMacro != null) - { - string macro = GetMacroName(MyItemInfo.MyDocStyle.Layout.SectionMacro); - PartsAbove.Add(new vlnMacro(xoff, yoff, macro)); - yoff += SixLinesPerInch; - YOffset = yoff; - } - } - - // if this step has a prefix but it's not checklist... do a partsleft for prefix - if (_MyItemInfo.IsStep && !_MyItemInfo.FormatStepData.UseSmartTemplate) - { - if (_MyItemInfo.FormatStepData.Prefix != null && _MyItemInfo.FormatStepData.Prefix != "") - { - string pref = _MyItemInfo.FormatStepData.Prefix.Replace("{Backspace}", ""); - float xPref = XOffset - (pref.Length * (72 / (float)_MyItemInfo.FormatStepData.Font.CPI)); - E_Style es = (E_Style)_MyItemInfo.FormatStepData.Font.Style & E_Style.Bold; - VE_Font tmpFont = new VE_Font(_MyItemInfo.FormatStepData.Font.Family, (int)_MyItemInfo.FormatStepData.Font.Size, es, (float)_MyItemInfo.FormatStepData.Font.CPI); - PartsLeft.Add(new vlnText(cb, this, pref, pref, xPref, yoff, tmpFont)); - } - } - // If checklists, the substeps are printed in a row, need to keep track of the 'longest' in - // y direction (bottommost) across the row. - if (itemInfo.IsStep && itemInfo.MyHLS != null && (itemInfo.MyHLS.FormatStepData.UseSmartTemplate || (itemInfo.MyHLS.FormatStepData.UseOldTemplate && itemInfo.MyDocStyle.ComponentList)) && (TheStepLevel(itemInfo) >= 0)) - savCheckListBottomMost = yoff + Height + (itemInfo.MyHLS.FormatStepData.UseSmartTemplate ? SixLinesPerInch : 0); - - // The following was added for BGE valve lists, this format (BGEVLV) used caution1 as - // a subheader within the valve list. To print correctly, a line needs to be added to - // where the bottom of this (subheader) is located and XOffset is set to the leftmargin. - if (itemInfo.IsStep && itemInfo.MyHLS != null && !itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm && itemInfo.IsCaution1 && itemInfo.MyHLS.FormatStepData.UseOldTemplate && itemInfo.MyDocStyle.ComponentList) - { - savCheckListBottomMost += SixLinesPerInch; - yoff += Height; - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - } - - if (itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm && itemInfo.IsCaution1) savCheckListBottomMost = yoff + Height; - // Get Y offset for regular steps, or if section title is output or if not within row (not last column of - // text) for wcn checklist, i.e. - if ((!itemInfo.IsStepSection && itemInfo.MyHLS != null && !itemInfo.MyHLS.FormatStepData.UseSmartTemplate) // regular step - || (ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout) - // In Checklist: I don't have children or if I have children the first child doesn't alignwithparent. - || (!itemInfo.IsStepSection && itemInfo.MyHLS != null && itemInfo.MyHLS.FormatStepData.UseSmartTemplate - && ((itemInfo.Steps == null || itemInfo.Steps.Count == 0) - || !itemInfo.Steps[0].FormatStepData.StepLayoutData.AlignWithParentTab)) - || ((MyItemInfo.IsNote || MyItemInfo.IsCaution) && MyItemInfo.MyParent.IsSection)) // B2016-222 check if is a caution or note and parent is a section - { - bool doprint = !(MyPageHelper.DidHLSText && MyItemInfo.ItemID == MyPageHelper.HasHLSTextId); - if (MyItemInfo.IsSection) - { - SectionConfig sch = MyItemInfo.MyConfig as SectionConfig; - if (sch != null && sch.Section_PrintHdr != "Y") doprint = false; - } - if (doprint && !UseTemplateKeepOnCurLine(itemInfo)) - { - float tyoff = yoff; - if (itemInfo.Steps != null) - { - if (itemInfo.FormatStepData != null && itemInfo.FormatStepData.Type == "TitleWithTextRight") - if (loadChildren) tyoff = ChildrenRight.Add(cb, itemInfo.Steps, XOffset + 72, yoff, yoff, rnoLevel, maxRNO, formatInfo); - } - yoff += Height; - yoff = Math.Max(yoff, tyoff); - yoff += AdjustForBlankLines(); - if (dropCheckoff) - yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text - } - } - } - if (itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) - { - // For Calvert Alarms, the row has formatting that makes this template item have a header & box - // (CONDITION/RESPONSE), header with box around it is defined in genmac whereas the lines around - // substeps are drawn in pagehelper. Adjust some yoffsets around this box. - // Need to: - // 1) move the text down a bit for top line (1.5f * SixLinesPerInch) - // 2) move the substep down 2 lines (2 * SixLinesPerInch) for bottom of box - // and space before substep - // 3) if the previous item had this condition, add space for the - // line below. - if (HasCalvertMacro) - { - YOffset += (1.5f * vlnPrintObject.SixLinesPerInch); - yoff += (2 * vlnPrintObject.SixLinesPerInch); - } - if (itemInfo.MyPrevious != null && itemInfo.MyPrevious.TemplateIndex > 0) - { - if (itemInfo.MyPrevious.ActiveFormat.PlantFormat.FormatData.Templates[itemInfo.MyPrevious.TemplateIndex].hmacro > 0) - { - YOffset += (3 * vlnPrintObject.SixLinesPerInch); - yoff += (3 * vlnPrintObject.SixLinesPerInch); - } - } - } - if (co != null) - { - // if this item's content is empty, and the flag is set to 'notonempty', don't print out the - // checkoff - this was added for shearon harris: - if (!(co.NotOnEmpty && itemInfo.MyContent.Text.Replace(@"\u160?", " ").TrimEnd() == "")) - { - float xloc_co = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - // if the format has 'SkipSpaces', look at the tab, and back up the macros to the number of - // spaces in the tab. - if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.SkipSpaces) - { - if (mytab != null) - xloc_co = mytab.XOffset; - else - xloc_co = XOffset; //there's no tab - put checkoff at step's xoff. Macro should back up from step's x. - } - else - { - if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.XLocation != 0) - xloc_co += (float)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.XLocation; - else if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.RelXLocation != 0) - { - float relX = (float)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.RelXLocation; - xloc_co = XOffset + (relX > 0 ? Width : 0) + relX; - } - } - // CheckOffXtraLines was introduced for the additional lines needed for the longer signoffs - // for VCBA (&WST1), for F2016-061. - float checkOffNumberOfLines = (co.CheckOffNumberOfLines ?? 0); - if (checkOffNumberOfLines > 0) - { - yForCheckoff += (2 * SixLinesPerInch); - PartsRight.Add(new vlnMacro(xloc_co, yForCheckoff/* + xtraCheckOffLines */, co.Macro)); - yoff += ((checkOffNumberOfLines *= SixLinesPerInch) + (2 * SixLinesPerInch)); - } - else - { - // if xtraCheckOffLines is a negative number, start the checkoff on the same line - // as text and adjust the y-offset after the checkoff by the amount of the absolute - // value of xtraCheckOffLines. - // if xtraCheckOffLines is a positive number, start the checkoff xtraCheckOffLines - 1 - // down from the text and adjust the y-offset after the checkoff by the amount - // of xtraCheckOffLines. - float xtraCheckOffLines = (co.CheckOffXtraLines ?? 0); - if (xtraCheckOffLines < 0) - { - xtraCheckOffLines = -xtraCheckOffLines; - xtraCheckOffLines *= SixLinesPerInch; - PartsRight.Add(new vlnMacro(xloc_co, yForCheckoff/* + xtraCheckOffLines */, co.Macro)); - yoff += xtraCheckOffLines; - } - else - { - xtraCheckOffLines *= SixLinesPerInch; - xtraCheckOffLines -= ((xtraCheckOffLines > 0) ? SixLinesPerInch : 0); - PartsRight.Add(new vlnMacro(xloc_co, yForCheckoff + xtraCheckOffLines, co.Macro)); - yoff += (xtraCheckOffLines != 0) ? xtraCheckOffLines + SixLinesPerInch : 0; - } - } - } - } - // for WCNTRN, do the responsibility: - if (formatInfo.PlantFormat.FormatData.PrintData.WCNTraining) DoResponsibility(cb, YOffset); - float yOffRight = yoff; - float RnoOffset = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO); - if (DoSubs && rnoLevel < maxRNO && itemInfo.RNOs != null) - { - if (loadChildren) yOffRight = ChildrenRight.Add(cb, itemInfo.RNOs, XOffset + RnoOffset, YTop, YTop, rnoLevel + 1, maxRNO, formatInfo); - if (ChildrenRight[0].ChildrenAbove.Count > 0) - { - float adj = ChildrenRight[0].YOffset - YOffset; - YOffset = ChildrenRight[0].YOffset; - yoff += adj; - if (MyTab != null) MyTab.YOffset = ChildrenRight[0].YOffset; - if (PartsRight.Count > 0) PartsRight[0].YOffset = ChildrenRight[0].YOffset; - if (ChildrenAbove.Count == 0) - YTopMost = ChildrenRight[0].ChildrenAbove[0].YOffset; - else - YTopMost = ChildrenAbove[0].YOffset; - } - } - // if this hls had a box drawn, add a line for substeps. - if (itemInfo.IsHigh && ((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) == E_DocStructStyle.DoubleBoxHLS)) yoff += vlnPrintObject.SixLinesPerInch; - - // Need code to determine if the table will overlap the Right Column if it does then - // use YOffRight rather than yoff - if (DoSubs && itemInfo.Tables != null) - { - bool aerTableOrFigure = itemInfo.Tables[0].FormatStepData.Type.Contains("AER"); - // get the first table & see if it is borderless. If borderless, 16bit code removed a - // line (yoffset) before printing it: - float yoffadj = 0; - if (itemInfo.Tables[0].IsTable) - { - MyFlexGrid.LoadGrid(itemInfo.Tables[0]); - if (MyFlexGrid.BorderStyle == C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None && !MyFlexGrid.TopRowHasBorder()) - yoffadj = -SixLinesPerInch; - } - - if (yOffRight < yoffRightParent) yOffRight = yoffRightParent; - // find the very bottom Yoffset (don't do this is in single column mode for cautions/notes: B2016-261) - vlnParagraph parentPar = parent; - if (!((MyItemInfo.IsCaution || MyItemInfo.IsNote) && itemInfo.RNOLevel == 0)) - { - while (parentPar != null && parentPar.MyItemInfo.IsStep) - { - float vb = parentPar.YVeryBottom; - if (yOffRight < vb) yOffRight = vb; - parentPar = parentPar.MyParent; - } - } - bool rightLonger = yOffRight > yoff; - if (!aerTableOrFigure && itemInfo.RNOLevel == 0) // Centered Table - { - if (loadChildren) - yoff = ChildrenBelow.Add(cb, itemInfo.Tables, XOffset, rightLonger ? yOffRight : yoff + yoffadj, yOffRight + yoffadj, rnoLevel, maxRNO, formatInfo); - } - else // AER or RNO Table - if (loadChildren) - yoff = ChildrenBelow.Add(cb, itemInfo.Tables, XOffset, yoff + yoffadj, yOffRight + yoffadj, rnoLevel, maxRNO, formatInfo); - } - yOffRight = Math.Max(yOffRight, yoffLeft); - // Look for the meta section case where the 'Editable' flag is set to 'N', which means that - // these steps should not be printed: - bool printsteps = true; - if (itemInfo.Steps != null && itemInfo.IsSection && itemInfo.Sections != null && itemInfo.Sections.Count > 0) - { - SectionConfig sc = itemInfo.MyConfig as SectionConfig; - if (sc != null && sc.SubSection_Edit != "Y") printsteps = false; - } - bool rnoBefore = false; - bool rnoAfter = false; - if (rnoLevel >= maxRNO && itemInfo.RNOs != null && - !itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.WolfCreekBackgroundFormat && - !itemInfo.RNOs[0].FormatStepData.InPageList) - { - if ((itemInfo.ActiveFormat.MyStepSectionPrintData.HLRNOStpSeparatorString ?? "") != "" || - (itemInfo.ActiveFormat.MyStepSectionPrintData.HLStpSeparatorString ?? "") != "") - rnoBefore = true; - else - rnoAfter = true; - } - if (rnoBefore) - { - if ((itemInfo.ActiveFormat.MyStepSectionPrintData.HLStpSeparatorString ?? "") != "") - { - string tmpSepStr = itemInfo.ActiveFormat.MyStepSectionPrintData.HLStpSeparatorString; - float tmpSepLen = itemInfo.ActiveFormat.MyStepSectionPrintData.HLStpSeparatorString.Length; - float xsep = MyHighLevelParagraph.PartsLeft.Count > 0 ? MyHighLevelParagraph.PartsLeft[0].XOffset : MyHighLevelParagraph.XOffset; - vlnRNOSeparator mySep = new vlnRNOSeparator(this, cb, tmpSepStr, xsep, yoff, itemInfo.ActiveFormat, false); - PartsBelow.Add(mySep); - yoff += mySep.Height;// +SixLinesPerInch; - } - if (loadChildren) yoff = ChildrenBelow.Add(cb, itemInfo.RNOs, MyTab.XOffset, yoff, yoff, rnoLevel + 1, maxRNO, formatInfo); - if ((itemInfo.ActiveFormat.MyStepSectionPrintData.HLRNOStpSeparatorString ?? "") != "") - { - string tmpSepStr = itemInfo.ActiveFormat.MyStepSectionPrintData.HLRNOStpSeparatorString; - float tmpSepLen = itemInfo.ActiveFormat.MyStepSectionPrintData.HLRNOStpSeparatorString.Length; - float xsep = MyHighLevelParagraph.PartsLeft.Count > 0 ? MyHighLevelParagraph.PartsLeft[0].XOffset : MyHighLevelParagraph.XOffset; - vlnRNOSeparator mySep = new vlnRNOSeparator(this, cb, tmpSepStr, xsep, yoff, itemInfo.ActiveFormat, false); - PartsBelow.Add(mySep); - yoff += mySep.Height;// +SixLinesPerInch; - } - } - // For Calvert Alarms, 'Caution1' was used to implement the Annunciator Window, i.e. is printed - // below the HLS and close to the right margin. - if (itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm && itemInfo.Cautions != null && itemInfo.Cautions[0].FormatStepData.Type == "Caution1") - { - if (loadChildren) - yoff = ChildrenBelow.Add(cb, itemInfo.Cautions, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - savCheckListBottomMost = yoff; - } - if (DoSubs && itemInfo.Steps != null && printsteps) - { - if (itemInfo.FormatStepData == null || itemInfo.FormatStepData.Type != "TitleWithTextRight") - if (rnoBefore) - { - if (loadChildren) - yoff = ChildrenBelow.Add(cb, itemInfo.Steps, MyTab.XOffset, yoff, yOffRight, rnoLevel, maxRNO, formatInfo); - } - else - if (loadChildren) yoff = ChildrenBelow.Add(cb, itemInfo.Steps, XOffset, yoff, yOffRight, rnoLevel, maxRNO, formatInfo); - } - if (itemInfo.Sections != null) - if (loadChildren) - yoff = ChildrenBelow.Add(cb, itemInfo.Sections, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo, pp); - if (itemInfo.Procedures != null) - if (loadChildren) - yoff = ChildrenBelow.Add(cb, itemInfo.Procedures, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - // Don't add the RNO to print if doing backgrounds. That piece of data is part of the pagelist item. - if (rnoAfter) - if (loadChildren) - yoff = ChildrenBelow.Add(cb, itemInfo.RNOs, XOffset, yoff, yoff, rnoLevel + 1, maxRNO, formatInfo); - yoff = Math.Max(yoff, yOffRight); - // TODO - use RNOSepAfterAER flag too: - string tmpRnoSepStr = formatInfo.MyStepSectionPrintData.RNOSepString; - float tmpRnoSepLen = formatInfo.MyStepSectionPrintData.RNOSepLineLength ?? 0; - if (rnoLevel < maxRNO && itemInfo.RNOs != null && (tmpRnoSepStr != null || tmpRnoSepLen != 0)) - { - vlnParagraph rno = ChildrenRight[0]; - vlnParagraph bottomChild = BottomChild; - float xsep = MyHighLevelParagraph.XOffset + RnoOffset; - - // ip3 has an rno separator and also has asterisk boxes around continous HLS. If - // the hls has RNOs off of it, then the rno separator line is outside of the box. If - // there are RNOs, but not off of HLS, then rno separator line is within the box (this is - // how 16bit proms did this). The following use of yadjSep and YBottomForBox handle that - float yadjSep = (MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex != null && MyItemInfo.MyHLS.FormatStepData.StepLayoutData.STBoxindex >= 0 && - MyItemInfo.MyHLS.RNOs != null && MyItemInfo.MyHLS.RNOs.Count > 0) ? 2 * SixLinesPerInch : 0; - vlnRNOSeparator myRnoSep = new vlnRNOSeparator(this, cb, tmpRnoSepStr, xsep, yoff+yadjSep, formatInfo, bottomChild == null ? true : bottomChild.MyItemInfo.HasChangeBar); - // TODO: May need to handle more than one RNO column for RNO Separator - if ((rno.LastRNO.MyItemInfo.HasChangeBar == false && bottomChild != null && bottomChild.MyItemInfo.HasChangeBar) - || (bottomChild != null && bottomChild.YBottom > rno.LastRNO.YBottomMost)) - bottomChild.PartsBelow.Add(myRnoSep); - else - rno.LastRNO.PartsBelow.Add(myRnoSep); - MyHighLevelParagraph.YBottomForBox = 0; - if (yadjSep > 0) - { - MyHighLevelParagraph.YBottomForBox = yoff; // if hlrno, box before sep - YBottomMostAdjust = SixLinesPerInch; // added for IP3 pagination, the RNO separator is outside asterisk box - } - yoff += (myRnoSep.Height + SixLinesPerInch); - } - // if in WCNTRN (Wolf Creek Training), need to consider the ysize of the Responsibility text when setting - // YBottomMost, i.e. if the Responsibilty has more height (y-direction) compared to the actual step text, - // need to move down on page the height of the responsibility. - if (formatInfo.PlantFormat.FormatData.PrintData.WCNTraining && MyItemInfo.IsHigh) - { - if (PartsLeft.Count > 0 && PartsLeft[0] is vlnText) - { - foreach (vlnText vt in PartsLeft) - yoff = Math.Max(yoff, vt.YOffset + vt.Height); - } - } - YBottomMost = yoff; - - if ((MyItemInfo.IsHigh || MyItemInfo.IsCaution1) && MyItemInfo.MyDocStyle.LandscapePageList && MyItemInfo.MyDocStyle.ComponentList) - { - // put out line after step (for BGEVLV format) - float macroY = YBottomMost-(0.25f * SixLinesPerInch); - PartsLeft.Add(new vlnMacro((float)MyItemInfo.MyDocStyle.Layout.LeftMargin, macroY, "B9")); - } - - // For Checklist, the substeps are in rows of data. The YBottomMost is the bottom most for - // the row. - if (savCheckListBottomMost != 0) YBottomMost = Math.Max(savCheckListBottomMost, YBottomMost); - if (XOffsetCenter != null) XOffset = (float)XOffsetCenter; - ProfileTimer.Pop(profileDepth); - } - - private vlnTab GetSupInfoTab(PdfContentByte cb, ItemInfo itemInfo, float yoff, vlnTab mytab, bool doSectTab, float localXOffset) - { - string strmytab = null; - if (itemInfo.MyParent.IsHigh) - strmytab = itemInfo.MyTab.CleanText; - else if (itemInfo.MyParent.IsCaution) - strmytab = "Caution"; - else if (itemInfo.MyParent.IsNote) - strmytab = "Note"; - else - strmytab = ItemInfo.GetCombinedTab(itemInfo.MyParent, itemInfo.MyParent.MyParent.CombinedTab); - strmytab = strmytab.Trim(); - mytab = new vlnTab(cb, this, strmytab, strmytab, localXOffset, yoff, itemInfo.MyTab.MyFont, doSectTab, StepRTB.MySymbolFontName, itemInfo.MyTab.RemovedStyleUnderline); - return mytab; - } - private static VE_Font _AnnotationFont; - public static VE_Font AnnotationFont - { - get { return vlnParagraph._AnnotationFont; } - set { vlnParagraph._AnnotationFont = value; } - } - private void DoAnnotationPrintableText(PdfContentByte cb, ItemInfo itemInfo, float yoff) - { - // if this step has an Annotation and it has config data to define location, parse out '[xx]' and print it at the location - // this was added for VC Summer (unit 2 & 3) but is available for any data that has defined the location in the config (from the folder properties - // at the top node - annotationtype tab. - if (itemInfo.ItemAnnotationCount > 0) - { - foreach (AnnotationInfo ai in itemInfo.ItemAnnotations) - { - // get the annotation type from the annotation, and see if it has a print location: - AnnotationTypeInfo at = ai.MyAnnotationType; - AnnotationTypeConfig atc = new AnnotationTypeConfig(at.Config); - if (atc.PrintableText_XLocation != 0) - { - int st = ai.SearchText.IndexOf("["); - int end = ai.SearchText.IndexOf("]"); - if (st != -1 && end != -1 && end > st) - { - string pref = ai.SearchText.Substring(st+1, end - st - 1); // annotation - parse out [xx] - pref = Regex.Replace(pref,"{Up}",@"\u8593?", RegexOptions.IgnoreCase); - pref = Regex.Replace(pref,"{Down}",@"\u8595?", RegexOptions.IgnoreCase); - float xPref = atc.PrintableText_XLocation; - if(AnnotationFont==null) - AnnotationFont = new VE_Font(_MyItemInfo.FormatStepData.Font.Family,6,(E_Style)_MyItemInfo.FormatStepData.Font.Style,20F); - PartsLeft.Add(new vlnText(cb, this, pref, pref, xPref, yoff, AnnotationFont)); - break; - } - } - } - } - } - - private float AdjustLocIfLongerRNO(ItemInfo itemInfo, float yoff, float yoffRightParent) - { - if (!itemInfo.IsInRNO && yoffRightParent > yoff && itemInfo.FormatStepData.Type.Contains("AER")) - { - // is the width of this table going to cause the table to overlap the RNO - vlnParagraph parRno = FindParentRNO(); - float xMinRno = FindMinXOffsetRno(parRno); - if (XOffset + Width > xMinRno - 12) // 12 = 2 characters, so that tables don't almost touch & look like an overlap - { - if ((float)MyItemInfo.MyDocStyle.Layout.LeftMargin + Width > xMinRno) - { - yoff = yoffRightParent; - YOffset = yoff; - } - else - XOffset = (float)MyItemInfo.MyDocStyle.Layout.LeftMargin; - } - } - return yoff; - } - private float FindMinXOffsetRno(vlnParagraph parRno) - { - // Find the minimum xoffset in the rno column that overlaps in the y direction with - // the table that is currently being processed. This is necessary in order to fix the - // case where the AER table overlaps an RNO table (or tab/text) - float xcur = 0; - // YOffset/Height is for the current table, check it against the rno's yoffset & height - // if aer & rno are within y range of each other - if (YOffset <= (parRno.YOffset + parRno.Height) && (YOffset + Height) >= parRno.YOffset) - { - xcur = parRno.XOffset; - if (parRno.MyTab != null) xcur = parRno.MyTab.XOffset; - } - // recursively look at steps in the rno column to get the smallest xoffset which will - // then be used to compare to table's xoffset/width to see if there is an overlap - if (parRno.ChildrenBelow != null) - { - foreach (vlnParagraph vp in parRno.ChildrenBelow) - { - // yoffset is past where the table is, so don't consider it: - if (vp.YOffset > (YOffset + Height)) return xcur; - - float xchild = FindMinXOffsetRno(vp); - if (xchild > 0 && (xcur == 0 || xchild < xcur)) - xcur = xchild; - } - } - return xcur; - } - private void DoResponsibility(PdfContentByte cb, float yoff) // WCNTRN's text in 1st column (saved in config for HLS) - { - StepConfig sc2 = MyItemInfo.MyConfig as StepConfig; - if (sc2 != null) - { - string resp = sc2.Step_Responsibility; - - if (resp != null && resp != "") // lines are separated by "\r\n" - { - resp = DelimitResponse((int)MyItemInfo.MyDocStyle.SectTop.MaxLen, resp); - if (!resp.EndsWith("\r\n")) resp = resp + "\r\n"; // parsing needs this. - int indx = resp.IndexOf("\r\n"); - int stindx = 0; - float y = yoff; - while (indx > -1) - { - string subresp = resp.Substring(stindx, indx - stindx); - float respWidth = subresp.Length * 6; - float ctr = (float)MyItemInfo.MyDocStyle.SectTop.Margin; - float respcntrX = (float)MyItemInfo.MyDocStyle.Layout.LeftMargin + ctr - (respWidth / 2); - vlnText myResp = new vlnText(cb, this, subresp, subresp, respcntrX, y, MyItemInfo.FormatStepData.Font); - PartsLeft.Add(myResp); - y += SixLinesPerInch; - stindx = indx + 2; - indx = stindx < resp.Length ? resp.IndexOf("\r\n", stindx) : -1; - } - } - } - } - private string DelimitResponse(int maxLen, string responsStr) - { - // This code handles whether user enters \r\n to separate lines or not. The - // max width that a line can be in the Responsibility column is a format flag (passed in) - List results = new List(); - int width = 0; // keep track of current width of current 'line' while looking for space to break - int start = 0; // start of line (index into string 'text') - int lastspace = 0; // location of lastspace (index into string) - for (int indx = 0; indx < responsStr.Length; indx++) - { - if ((indx + 1) < responsStr.Length && responsStr.Substring(indx, 2) == "\r\n") - { - results.Add(responsStr.Substring(start, indx - start).Trim(" ".ToCharArray()) + "\r\n"); - start = indx + 2; - width = 0; - } - else - { - if (responsStr[indx] == ' ') lastspace = indx; - width++; - if (width > maxLen) - { - // what should be done if lastspace == 0 - // cannot find space char to split on, so break the word - bool spFound = true; - if (lastspace == 0) - { - lastspace = indx; - spFound = false; - } - results.Add(responsStr.Substring(start, lastspace - start).Trim(" ".ToCharArray()) + "\r\n"); - start = lastspace + (spFound?1:0); // increment start based on whether a space is found, i.e. if no space keep at 'indx' - // width either is equal to width of text after the last space, or is zero if at the maxlen of width: - width = (indx - lastspace - 1) > 0 ? indx - lastspace - 1 : 0; - lastspace = 0; - } - } - } - if (width > 0 || start < responsStr.Length) results.Add(responsStr.Substring(start).Trim(" ".ToCharArray())); - string retval = null; - foreach (string st in results) retval = retval + st; - return retval; - } - public override string Rtf - { - get - { - if(_Rtf == null)BuildRtf(); - return _Rtf; - } - set { _Rtf = value; } - } - private void BuildRtf() - { - int profileDepth = ProfileTimer.Push(">>>> BuildRtf"); - if (_Rtf == null) - { - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm && MyItemInfo.IsCaution1 && - MyItemInfo.MyContent.Text.StartsWith(@"\u") && !MyItemInfo.MyContent.Text.StartsWith(@"\u160?")) - { - Rtf = GetRtf(MyItemInfo, " " + (Prefix ?? ""), Suffix); - PrefixSpecialCharacter = true; - } - else - { - Rtf = GetRtf(MyItemInfo, Prefix, Suffix); - } - // Need the following with some modifications for WCNCKL format: - if (Rtf.Contains("{Backspace}")) - { - XOffset -= 25; - Width += 24; - Rtf = Rtf.Replace("{Backspace}", ""); - } - } - Rtf = FixRTFToPrint(Rtf); - ProfileTimer.Pop(profileDepth); - } - private string FixRTFToPrint(string rtf) - { - // Only do this if the text contains symbols. - if (rtf.Contains("VESymbFix")) - { - System.Windows.Forms.RichTextBox rtb = new System.Windows.Forms.RichTextBox(); - rtb.Rtf = rtf.Replace(@"\\",""); // rename backslash character to avoid RTF confusion - //string showRTF = rtf; - bool changed = false; - // get the list of symbol replacements - FormatData fmtdata = (MyItemInfo.MyDocVersion != null) ? MyItemInfo.MyDocVersion.ActiveFormat.PlantFormat.FormatData : FormatInfo.PROMSBaseFormat.FormatData; - ReplaceSymbolCharList SymReplaceList = (fmtdata != null && fmtdata.SectData.ReplaceSymbolCharList != null) ? fmtdata.SectData.ReplaceSymbolCharList : null; - // Look at one character at a time - for (int i = 0; i < rtb.TextLength; i++) - { - rtb.Select(i, 1); - // If the character is a printable character set the font to the text font - //if (showRTF != null && rtb.SelectionFont.FontFamily.Name == "VESymbFix" && rtb.SelectedText.Length == 0) - //{ - // Console.WriteLine("{0}-{1}", i, showRTF); - // showRTF = null; - //} - //if (rtb.SelectionFont.FontFamily.Name == "VESymbFix" && rtb.SelectedText[0] > ' ' && rtb.SelectedText[0] <= '\xFF') - //if (rtb.SelectionFont.FontFamily.Name == "VESymbFix" && rtb.SelectedText.Length > 0 && rtb.SelectedText[0] > ' ' && rtb.SelectedText[0] <= '\xFF') - //{ - // //use bolding underline italics from local font - // System.Drawing.Font fnt = rtb.SelectionFont; - // rtb.SelectionFont = new System.Drawing.Font(DefaultFont, fnt.Style); - // changed = true; - //} - - //if (rtb.SelectionFont.FontFamily.Name == "VESymbFix" && rtb.SelectedText.Length > 0 && rtb.SelectedText[0] == '\u25a1') - //{ - // //use bolding underline italics from local font - // System.Drawing.Font fnt = rtb.SelectionFont; - // System.Drawing.Font fntw = new System.Drawing.Font(fnt.FontFamily.Name, 20, fnt.Style); // increase symbol char font size - // rtb.SelectionFont = fntw; - // changed = true; - //} - if (rtb.SelectionFont.FontFamily.Name == "VESymbFix" && rtb.SelectedText.Length > 0) - { - foreach (ReplaceChar rc in SymReplaceList) - { - if (rc.Unicode != null) - { - char rc_uchar = Convert.ToChar(Convert.ToInt32(rc.Unicode)); - if (rc_uchar == rtb.SelectedText[0]) - { - //use bolding underline italics from local font - System.Drawing.Font fnt = rtb.SelectionFont; - System.Drawing.Font fntw = new System.Drawing.Font((rc.Family != null)?rc.Family:fnt.FontFamily.Name, (rc.Size != null)?(float)rc.Size:fnt.Size, (rc.Style != null)?(System.Drawing.FontStyle)rc.Style:fnt.Style); - rtb.SelectionFont = fntw; - changed = true; - } - } - } - } - } - if (changed) return rtb.Rtf.Replace("",@"\\"); // put back the backslash character - } - return rtf; - } - - // for Calvert (BGE) alarms, some step text is kept on the same line as its parent. This - // is flagged by the -1 row in the template definition. - private bool KeepOnParentLine(ItemInfo itemInfo) - { - int tindx = itemInfo.TemplateIndex; - if (tindx < 0) return false; - if (itemInfo.ActiveFormat.PlantFormat.FormatData.Templates[tindx].row == -1) return true; - return false; - } - - private void AdjustYOffset(float yDelta) - { - YOffset -= yDelta; - foreach (vlnPrintObject vpo in PartsAbove) - vpo.YOffset -= yDelta; - foreach (vlnParagraph vp in ChildrenBelow) - vp.AdjustYOffset(yDelta); - } - - private void BuildPlacekeeper(vlnParagraph parent, ItemInfo itemInfo) - { - if (itemInfo is SectionInfo && (itemInfo as SectionInfo).SectionConfig.Section_Placekeeper.ToUpper() != "N") // if is a section type and the section is marked to create placekeeper - { - MyPlaceKeeper = new pkParagraph(this); - if (parent != null && parent.MyItemInfo.IsSection) - parent.MyPlaceKeeper = MyPlaceKeeper; - } - else if (parent != null && parent.MyPlaceKeeper != null && itemInfo is StepInfo)//InList(parent.MyItemInfo.ItemID, 513, 514, 519, 520, 525)) - { - StepConfig sc = itemInfo.MyConfig as StepConfig; - if (sc != null && sc.Step_Placekeeper.ToUpper() != "N") - { - if (itemInfo.IsCautionPart || itemInfo.IsNotePart) - MyPlaceKeeper = parent.MyPlaceKeeper.AddCautionsAndNotes(this); - else - MyPlaceKeeper = parent.MyPlaceKeeper.AddChild(this); - } - } - } - - private void BuildContinuousActionSummary(vlnParagraph parent, ItemInfo itemInfo) - { - if (itemInfo is SectionInfo) - { - MyContAct = new pkParagraph(this); - if (parent != null && parent.MyItemInfo.IsSection) - parent.MyContAct = MyContAct; - } - else if (itemInfo is StepInfo) - { - StepConfig sc = itemInfo.MyConfig as StepConfig; - if ((sc != null && sc.Step_CAS == "True") || ((sc == null || sc.Step_CAS == null) && itemInfo.IncludeOnContActSum)) - { - // save this step info for use on the Continuous Action Summary - vlnParagraph tparent = parent; - while (tparent != null && tparent.MyContAct == null) - tparent = tparent.MyParent; - if (parent.MyContAct != null) - { - if (itemInfo.IsCautionPart || itemInfo.IsNotePart) - MyContAct = parent.MyContAct.AddCautionsAndNotes(this); - else - MyContAct = parent.MyContAct.AddChild(this); - } - else - MyContAct = tparent.MyContAct.AddChild(this); - } - } - } - - private vlnParagraph FindParentRNO() - { - if (ChildrenRight != null && ChildrenRight.Count > 0) return ChildrenRight[0]; - return MyParent.FindParentRNO(); - } - - private string GetMacroName(string str) - { - int mindx = str.IndexOf(@"{!"); - string macro = str.Substring(mindx + 2, str.Length - 3); - return macro; - } - - private int TheStepLevel(ItemInfo itemInfo) - { - if (itemInfo.IsHigh) return -1; - int lev = 0; - ItemInfo ii = itemInfo; - while (!ii.MyParent.IsHigh) - { - lev++; - ii = ii.MyParent; - } - return lev; - } - - private string SectionHasCheckOffHeader(ItemInfo itemInfo, ref VE_Font font) - { - // If the passed in itemInfo is not a section, get it's parent section. This may be a subsection, so - // it will be found here, versus using 'MyActiveSection'. - while (!itemInfo.IsSection) - { - itemInfo = itemInfo.MyParent; - } - // See if this section has a checkoffheading index - this value, if set is stored in the config field. - // -1 flags no entries in the format's CheckOffHeaderList & 0 flags the first - // entry which is always '{NO HEADING}'. So only continue if it's greater than 0. - //SectionInfo si = SectionInfo.Get(itemInfo.ItemID); // sometimes the itemInfo isn't a section info - SectionInfo si = itemInfo.GetSectionInfo(); // sometimes the itemInfo isn't a section info - int sindx = si.CheckOffHeadingIndex(); - - // If there is a checkoff header for this section, see if this section has subsections. - // If this has a header but no subsections, put out the header. - // Else if this section has a header AND subsections, don't put it out... - // the subsection's checkoff header will be processed (or lack there of). - bool doCheckoffHeader = sindx > 0 && (itemInfo.Sections == null || itemInfo.Sections.Count == 0); - - // if doing it, then grab the string from the format.... CHECK if this works for subsection, it is - // getting ActiveSection which may return the top section, not subsections. - if (doCheckoffHeader && itemInfo.SectionCheckOffHeader != "") - { - font = itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font; - return itemInfo.SectionCheckOffHeader; - } - return null; - } - - private void DoCheckOffHeader(PdfContentByte cb, ItemInfo itemInfo, float yLocation, float yTopMargin, float yPageStart) - { - // CheckOffHeaders are handled in two different ways: - // 1) Where the pagelist item puts them - this is at the 'top' of the page, when the current section on the - // page has a checkoff header defined. Support for this is here AND in the VlnSvgPageHelper pagelist code. - // 2) If a continuous section, and it doesn't start at 'top' of the page, then the checkoff header is - // printed on the same line as the continuous section. Support for this is here, the check off header is added - // to the 'PartRight' off of the section's VlnParagraph. - - // First see if there is any checkoff data in the format file and that there - // is a pagelist item for the checkoff header. - if (itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffList.MaxIndex <= 0) return; - if (MyPageHelper.PageListCheckOffHeader == null) return; - - VE_Font font = null; - ItemInfo mySectionInfo = itemInfo.MyActiveSection; - ItemInfo mySubSectionInfo = itemInfo; - - // If the passed in itemInfo is not a section, get it's parent section. This may be a subsection, so - // it will be found here, versus using 'MyActiveSection' which is the topmost section. The passed in - // item may be a regular step, i.e. if a page break had occurred. - if (!itemInfo.IsSection) - { - while (!mySubSectionInfo.IsSection) - { - mySubSectionInfo = mySubSectionInfo.MyParent; - } - } - else - mySubSectionInfo = (mySectionInfo.Sections == null) ? null : mySectionInfo.Sections[0]; - - if (mySectionInfo == mySubSectionInfo) mySubSectionInfo = null; - - // The following duplicates the 16bit logic. The 16bit logic only put out a header if: - // there is no subsection and section has a header (from config); - // OR there is a subsection and the first subsection has a header. - // For locating the header in 16bit logic: - // If no subsections, output with section - // If subsections and continuous section, put out on same line as subsection. (done here) - // If subsections and starts at top of page, (on top of page, use pagelist code in VlnSvgPageHelper) - - // Get SectionInfos to access specific section config items... - //SectionInfo si = SectionInfo.Get(mySectionInfo.ItemID); - SectionInfo si = mySectionInfo.GetSectionInfo(); - int sindx = si.CheckOffHeadingIndex(); - //SectionInfo subi = mySubSectionInfo == null ? null : SectionInfo.Get(mySubSectionInfo.ItemID); - SectionInfo subi = mySubSectionInfo == null ? null : mySubSectionInfo.GetSectionInfo(); - int subindx = subi == null ? -1 : subi.CheckOffHeadingIndex(); - - // if there is no subsections & the main section doesn't use a header OR - // if there is a subsection, & it does not use a header... Return. - if ((subi == null && sindx < 1) || (subi != null && subindx < 1)) return; - - // figure out location now: - // if step, it uses pagelist logic to locate it (this is a page break condition). - // if continuous, put out with subsection if there is one, otherwise section. - // otherwise, use pagelist logic. - bool usePageListCOHdr = false; - - if (itemInfo.IsStep) - usePageListCOHdr = true; - else if (subi == null) //no subsection - { - if ((yPageStart - YOffset) == yTopMargin) usePageListCOHdr = true; - } - else - { - if (mySectionInfo == itemInfo && ((yPageStart - YOffset) == yTopMargin)) usePageListCOHdr = true; - if (!usePageListCOHdr && mySubSectionInfo != itemInfo) return; - } - - // grab the string from the format, depending on whether it should get it from the section or subsection. - string cohead = (mySubSectionInfo != null) ? mySubSectionInfo.SectionCheckOffHeader : mySectionInfo.SectionCheckOffHeader; - if (cohead == "" || cohead == null) return; - - // PageListCheckOffHeader is an svgtext - but really we only need the x/y location for this (pagelist support) - // The actual text is from the checkoff header selection in the section config. - if (cohead != MyPageHelper.PageListLastCheckOffHeader) - { - font = mySectionInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font; - float chkOffY = CalculateYLocation(YTop, yTopMargin); - if (MyPageHelper.YMultiplier != 1) - { - chkOffY = -1 + yTopMargin - (yTopMargin - yLocation) * MyPageHelper.YMultiplier; - if (Rtf != null) - IParagraph.Leading = _SevenLinesPerInch; - } - if (!usePageListCOHdr) - { - vlnText myCOHead = new vlnText(cb, this, cohead, cohead, MyPageHelper.PageListCheckOffHeader.X.Value + (float)MyItemInfo.MyDocStyle.Layout.LeftMargin, chkOffY, font); - PartsRight.Add(myCOHead); - } - else - MyPageHelper.PageListTopCheckOffHeader = cohead; - MyPageHelper.PageListLastCheckOffHeader = cohead; - } - } - internal vlnParagraph BottomChild - { - get - { - float bottomChildYBottomText = YBottomText; - vlnParagraph bottomChild = this; - foreach (vlnParagraph child in ChildrenRight) - { - vlnParagraph grandChild = child.BottomChild; - if (grandChild != null && grandChild.YBottomText > bottomChildYBottomText) bottomChild = grandChild; - if (grandChild != null && grandChild.YBottomText == bottomChildYBottomText && grandChild.MyItemInfo.HasChangeBar) bottomChild = grandChild; - bottomChildYBottomText = bottomChild.YBottomText; - } - foreach (vlnParagraph child in ChildrenBelow) - { - vlnParagraph grandChild = child.BottomChild; - if (grandChild != null && grandChild.YBottomText > bottomChildYBottomText) bottomChild = grandChild; - if (grandChild != null && grandChild.YBottomText == bottomChildYBottomText && grandChild.MyItemInfo.HasChangeBar) bottomChild = grandChild; - bottomChildYBottomText = bottomChild.YBottomText; - } - return bottomChild; - } - } - private void CalculateXOffsetGridOrFigure(ItemInfo itemInfo, int maxRNO, FormatInfo formatInfo) - { - float scale = itemInfo.IsRtfRaw ? 0.6f : 1.0f; - bool aerTableOrFigure = itemInfo.FormatStepData.Type.Contains("AER"); - vlnParagraph hls1 = MyParent; - if (!formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) - while (hls1.MyParent != null && !hls1.MyItemInfo.IsHigh) hls1 = hls1.MyParent; - float colR = float.Parse(formatInfo.MyStepSectionLayoutData.ColRTable.Split(",".ToCharArray())[itemInfo.ColumnMode]); - float xLowerLimit = (aerTableOrFigure && hls1.PartsLeft != null && hls1.PartsLeft.Count > 0) ? hls1.PartsLeft[0].XOffset : hls1.XOffset; - float xUpperLimit = 0; - float pageWidth = ((float)itemInfo.MyActiveSection.MyDocStyle.Layout.PageWidth); - float leftMargin = ((float)itemInfo.MyActiveSection.MyDocStyle.Layout.LeftMargin); //* (float)MyItemInfo.FormatStepData.Font.CPI / 12; - if (itemInfo.IsInRNO) - // if in rno column, the upper limit is width of the page (right margin). Subtract off size of a character - xUpperLimit = pageWidth - (72 / (float)MyItemInfo.FormatStepData.Font.CPI); - else - // in the following calculation, the hls width (hls1.Width) == rno column width, so xUpperLimit is - // the around the right margin, i.e. 'hls xoffset' + 'location of rno (colR) * columnmode' + 'width of rno' - xUpperLimit = hls1.XOffset + hls1.Width + hls1.CheckOffWidth + colR * itemInfo.ColumnMode; - - // If a table is within the alarm section and its parent is a template item is single column - // adjust the xoffset so that the table is centered around center of page - bool ctrCalvertAlarmTbl = false; - if (formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) - ctrCalvertAlarmTbl = MyItemInfo.IsWithInSingleColumnTemplate(); - - float TableCenterPos = float.Parse(formatInfo.MyStepSectionLayoutData.TableCenterPos.Split(",".ToCharArray())[itemInfo.ColumnMode]); - if (ctrCalvertAlarmTbl || formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel) - XOffset = leftMargin + (pageWidth - leftMargin - (scale * Width)) / 2; - else - { - if (!aerTableOrFigure && itemInfo.RNOLevel == 0 && TableCenterPos != 0) // Only adjust TableCenterPos for Non-RNO Cenetered Tables - { - XOffset = TableCenterPos; - XOffset = XOffset - (this.Width / 2) + (float)itemInfo.MyDocStyle.Layout.LeftMargin; - } - else if (itemInfo.RNOLevel != 0) // RNO - XOffset = MyParent.XOffset + (MyParent.Width / 2) - ((scale * Width) / 2); - else if (aerTableOrFigure) - { - // if in the BGE alarm format and the hls is a Window (upper right corner when it prints), use the parent of the table - // to print in aer column (B2014-105) - if (MyItemInfo.IsInCalvertConditionResponse) - XOffset = hls1.XOffset + hls1.Width / 2 - Width / 2; - else - XOffset = MyHighLevelParagraph.XOffset + MyHighLevelParagraph.Width / 2 - Width / 2; - } - else // Centered Table or Figure - { - // Determine center of hls - XOffset = hls1.XOffset + hls1.Width / 2; - // Determine left edge of the table by subtracting 1/2 of its width. - XOffset -= Width / 2; - // Add in 1/2 of the width of all RNO columns - XOffset += (colR * itemInfo.ColumnMode) / 2; - - if (!aerTableOrFigure && !MyItemInfo.IsRtfRaw) - { - // 05/14/12 - 16bit code adjusts the center depending upon the CPI of the table font. - // Start with XOffset of table, then calculate the XOffset adjusted for the table font, - // based on the default CPI of 12. Adjust the XOffset by the difference of these - // two numbers. - XOffset -= (XOffset - (XOffset * (float)MyItemInfo.FormatStepData.Font.CPI / 12)); - } - XOffset -= 12; // This makes the 16bit & 32bit align very closely. - // if outside of the page margins then center within the page margins - float xOffset2 = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - float xWidth2 = (float)itemInfo.MyDocStyle.Layout.PageWidth; - if (XOffset + Width > xOffset2 + xWidth2) - XOffset = xOffset2 / 2 + xWidth2 / 2 - Width / 2; - - } - // 05/14/12 - The PosAdjust is a format flag from 16bit. For WCN2, it appears that this amount equals - // the amount of difference from a 10 CPI to a 12 CPI font. See comment above. - float posAdjust = (float)(itemInfo.FormatStepData.StepPrintData.PosAdjust ?? 0); - if (itemInfo.FormatStepData != null && itemInfo.FormatStepData.StepPrintData != null && - posAdjust > 0) - { - if (Width < hls1.Width - posAdjust) - XOffset += posAdjust; - else if (Width < hls1.Width) - XOffset = hls1.XOffset + hls1.Width - Width; // align with the right edge of hls text - } - } - if (itemInfo.MyDocStyle.Layout.CenterToStepThenPage) - { - if (Width > hls1.Width) - { - float XOffsetPage = leftMargin + ((pageWidth - leftMargin) - Width) / 2; - float fraction = (Width - hls1.Width) / ((pageWidth - leftMargin) - hls1.Width); - float XOffsetNew = (1 - fraction) * XOffset + fraction * XOffsetPage; - _MyLog.WarnFormat("***XOffsetAdjust-CenterToStepThenPage*** ItemID, XOffset, XOffsetPage, XOffsetNew ={0},{1},{2},{3}", itemInfo.ItemID, XOffset, XOffsetPage, XOffsetNew); - XOffset = XOffsetNew; - } - } - else - { - // if the XOffset < High Level Step Text's XOffset , then align with the High Level Step Text - if (XOffset < xLowerLimit && Width < (xUpperLimit - xLowerLimit)) - XOffset = xLowerLimit; - - // if the right margin exceeds the right edge of the rightmost RNO, then adjust right edge to match. - // In lines below, the 12 was used for Wolf Creek 2 column format, the pagewidth goes beyond the right border line so that - // the tables, figures & equations were beyond the border. -12 takes it enough so that if boxed, it won't print out of border - // We know this is not ideal. - if (MyItemInfo.IsRtfRaw && (XOffset + (scale * Width) > xUpperLimit-12)) - XOffset = xUpperLimit - (scale * Width) - 12; - if (!MyItemInfo.IsRtfRaw && XOffset + Width > xUpperLimit) - XOffset = xUpperLimit - Width; - // because of the above, if it pushes beyond the left margin, use the left margin. - if (XOffset < (float)itemInfo.MyDocStyle.Layout.LeftMargin) - XOffset = XOffsetBox = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - } - } - private float AdjustForBlankLines() - { - if (MyParent != null && MyParent.MyItemInfo.FormatStepData != null && MyParent.MyItemInfo.FormatStepData.Type == "TitleWithTextRight") return 0; - if (MyItemInfo.MyDocStyle.SpecialStepsFoldout) return 0; - if (MyItemInfo.FormatStepData != null && MyItemInfo.FormatStepData.Prefix != null && MyItemInfo.FormatStepData.Suffix != null && MyItemInfo.FormatStepData.UseSmartTemplate) return 0; - int everyNLines = MyItemInfo.FormatStepData == null ? 1 : MyItemInfo.FormatStepData.StepLayoutData.EveryNLines ?? 1; - if (everyNLines == -99) return 0; - if (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm || - (MyItemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert && MyItemInfo.IsStep && MyItemInfo.FormatStepData.StepLayoutData.STBoxindex != null)) - { - if ((MyItemInfo.IsCaution || MyItemInfo.IsNote || MyItemInfo.MyParent.IsCaution || MyItemInfo.MyParent.IsNote) && !MyItemInfo.FormatStepData.SpaceIn - && (MyItemInfo.Steps == null || MyItemInfo.Steps.Count == 0) - && (MyItemInfo.NextItem == null || MyItemInfo.MyContent.Type != MyItemInfo.NextItem.MyContent.Type)) return 0; - if (everyNLines == 99 && MyItemInfo.NextItem == null) - { - if (MyItemInfo.Steps != null && MyItemInfo.Steps.Count > 0 && MyItemInfo.Steps[0].MyContent.Type == MyItemInfo.MyContent.Type) return 0; - if (MyItemInfo.MyParent.NextItem != null && MyItemInfo.MyParent.NextItem.MyContent.Type == MyItemInfo.MyContent.Type) return 0; - } - } - // B2015-005: if there isn't a blank line after this step && it has children, see if there shouldn't be - // a blank line, i.e. if the first substep child's type is the same as this. - if (!MyItemInfo.IsHigh && everyNLines == 99 && MyItemInfo.NextItem == null && MyItemInfo.HasChildren) - { - ItemInfo chld = MyItemInfo.FirstChild(E_FromType.Step); - if (chld != null && chld.MyContent.Type == MyItemInfo.MyContent.Type) return 0; - } - if (MyItemInfo.Ordinal % everyNLines == 0 || MyItemInfo.NextItem == null) return SixLinesPerInch; - // Pagination issue to be used with yEndsWithBlankLine in Pagination code, but not checked in yet. - //if (MyItemInfo.Ordinal % everyNLines == 0 || MyItemInfo.NextItem == null) return SixLinesPerInch; - return 0; - } - private void AddMacros(ItemInfo itemInfo, vlnTab mytab) - { - float y = YOffset; - float x = mytab == null ? XOffset : mytab.XOffset + mytab.TabOffset; - List myMacros = itemInfo.MyMacros; - if (myMacros != null) - { - foreach (Macro myMacro in myMacros) - { - // if the format has the 'LocWithXOff' locate the macro along with the tab's offset. - // however, if the tab is more than 2 characters long, adjust so that it aligns with the - // last two characters, not the first 2. - string tabText = mytab == null ? null : mytab.Text.Trim(" .".ToCharArray()); - int tablen = (tabText == null) ? 0 : (tabText.Length <= 2) ? 0 : tabText.Length - 2; - if (myMacro.LocWithXOff ?? false) x = mytab == null ? XOffset : ((float)mytab.XOffset + (tablen * (float)mytab.MyFont.CharsToTwips)); - if (MyItemInfo.MyActiveSection.ColumnMode == 0 && myMacro.SingleColMacroDef != null && myMacro.SingleColMacroDef.Length > 0) - { - float macroXOffset = myMacro.MacroXOffSet ?? 0; - float widthAdj = myMacro.SingleColWidthAdjust ?? 0; // set as negative number in format - float rightTextEdge = (itemInfo.IsHigh)? XOffset + Width + mytab.XOffset:this.MyHighLevelParagraph.XOffset + this.MyHighLevelParagraph.Width; - x = (macroXOffset > 0) ? macroXOffset : rightTextEdge; - if (rightTextEdge > x) - Width += widthAdj; - PartsRight.Add(new vlnMacro(x, y, myMacro.SingleColMacroDef)); - } - else - PartsLeft.Add(new vlnMacro(x, y, myMacro.MacroDef)); - } - } - } - // HLP Change bar flags in format file: - // Locations: With Text, Outside Box, AER on Left RNO on Right, To The Left of Text - // Text: Date & Change ID, Revision Number, Change ID, None, Custom (use input data) - // Flag AERChgBarMsgRNOChgBarNoMsg and AERMsgRNONoMsg are NOT Used in 16-bit. - private string cbMess = null; - private vlnChangeBar DoChangeBar(PdfContentByte cb, ItemInfo itemInfo, VlnSvgPageHelper myPageHelper, float xoff, float yoff, int maxRNO, FormatInfo formatInfo) //, vlnChangeBar myCB) - { - // find column for the change bar based on format flags - this is code from 16-bit - // if AbsoluteFixedChangeColumn - // if FixedAERChangeColumn - // if col>ColsS+ColR+COL_WID+ADJ - // FixedChangeColumn - // else - // AERLeftChangeBarLocation() - // else - // FixedChangeColumn - // else - // ChangeBarLocation() - ChangeBarData cbd = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData; - float cols = formatInfo.MyStepSectionLayoutData.ColS ?? 0; - float colr = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO); - // FixedChangeColumn + - Column location for change bars - // 0 - Separate AER and RNO change bars to the right of the text - // -10 to -1 - Change bars on left (specify # of columns from the text) - // <-10 - AER change bars on the left and RNO change bars on the right. - // FixedAERChangeColumn overrides the -5 default setting in chgbar.c, value is converted to a negative by the code - - float col = (cbd.AbsoluteFixedChangeColumn) ? - ((cbd.FixedAERChangeColumn ?? 0) > 0) ? - (xoff > (cols + colr + COL_WID_ADJ)) ? - cbd.FixedChangeColumn ?? 0 : AERLeftChangeBarLocation(formatInfo) : - cbd.FixedChangeColumn ?? 0 : ChangeBarLocation(xoff, this, formatInfo, maxRNO); - string chgIdTxt = null; - if (itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds) - { - StepConfig sc = itemInfo.MyConfig as StepConfig; - chgIdTxt = sc == null ? null : sc.Step_ChangeID; - } - if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.ChgID) - cbMess = chgIdTxt!=null?chgIdTxt:itemInfo.MyContent.UserID; - else if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.DateChgID) - { - string fmtDate = itemInfo.MyContent.DTS.ToShortDateString(); - if (fmtDate.Length != 10) // need to add zeros - { - if (fmtDate.IndexOf("/") == 1) - fmtDate = "0" + fmtDate; - if (fmtDate.IndexOf("/", 3) == 1) - fmtDate = fmtDate.Substring(0, 3) + "0" + fmtDate.Substring(3, fmtDate.Length - 3); - } - cbMess = (chgIdTxt!=null?chgIdTxt:itemInfo.MyContent.UserID) + @"\n" + fmtDate; - } - else if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.RevNum) - { - - string lRev = myPageHelper.Rev; - // Now check the format flags to determine if/how the Rev string should be parsed. - if ((itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate && lRev.Contains("/")) - || (itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.RevDateWithForwardSlash && lRev.Contains("\\"))) - { - int indx = lRev.IndexOf(itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.DoRevDate ? '/' : '\\'); - cbMess = lRev.Substring(0, indx > -1 ? indx : lRev.Length); - } - else - cbMess = lRev; - } - else if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.UserDef) - cbMess = myPageHelper.ChangeBarDefinition.MyChangeBarMessage; - - int msgAlign = Element.ALIGN_LEFT; - if (myPageHelper.ChangeBarDefinition.MyChangeBarLoc == PrintChangeBarLoc.LeftOfText || - (myPageHelper.ChangeBarDefinition.MyChangeBarLoc == PrintChangeBarLoc.AERleftRNOright && - !itemInfo.IsInRNO)) msgAlign = Element.ALIGN_RIGHT; - float coltotwips = col * itemInfo.FormatStepData.Font.CharsToTwips; - if (cbd.AbsoluteFixedChangeColumn) coltotwips = col * itemInfo.ActiveFormat.PlantFormat.FormatData.Font.CharsToTwips; - if (itemInfo.IsFigure) coltotwips = col * itemInfo.ActiveFormat.PlantFormat.FormatData.Font.CharsToTwips; - return new vlnChangeBar(cb, this, (float)itemInfo.MyDocStyle.Layout.LeftMargin + coltotwips, yoff, msgAlign, - myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.RevNum, - itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.ChangeBarData.ChangeIds); - } - - // changed this function to return a float instead of an int to correct a rounding error which cause change bars - // to inconsistantly position next to changed text. Bug B2015-033 - private float ChangeBarLocation(float c, vlnParagraph paragraph, FormatInfo formatInfo, int maxRNO) - { - int fixedChgCol = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData.FixedChangeColumn ?? 0; - float cols = formatInfo.MyStepSectionLayoutData.ColS ?? 0; - int colr = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO); - float tmpc = c; - Box bxCautNote = null; // used for notes and cautions in the Prairie Island Alarms format - if (MyItemInfo.IsCaution || MyItemInfo.IsNote) - { - // Temporary fix for change bars on Notes and Cautions where the FixedChgCol < -10 - tmpc = (float)formatInfo.MyStepSectionLayoutData.ColT + (float)formatInfo.MyStepSectionLayoutData.WidT; // end position of Caution / Note - int typ = (int)(MyItemInfo.MyContent.Type % 10000); - int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex; - if (bxIndx != null) - { - bxCautNote = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bxCautNote != null) - tmpc = (float)bxCautNote.Start + (float)bxCautNote.End; // end position of a boxed Caution / Note - } - } - // if this is a caution or note, put the change bar to the right of the text: - //if ((paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote) && fixedChgCol < -10) return -fixedChgCol; - if ((fixedChgCol == 0))// && paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote) - //if ((fixedChgCol==0) || paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote) - { - float rightEdge = (paragraph.XOffset + paragraph.Width + 5); - rightEdge -= (float)paragraph.MyItemInfo.MyDocStyle.Layout.LeftMargin; - if (bxCautNote != null) - rightEdge = (float)bxCautNote.End + 10; // used for notes and cautions in the Prairie Island Alarms format - rightEdge = rightEdge / paragraph.MyItemInfo.FormatStepData.Font.CharsToTwips; - return rightEdge; - } - if (fixedChgCol < -10 || fixedChgCol >= 0) - return ((fixedChgCol > 0) ? fixedChgCol : - (fixedChgCol == 0) ? (int)c + 1 : - (tmpc > (cols + colr + COL_WID_ADJ)) ? -fixedChgCol : - //(c > (cols + colr + COL_WID_ADJ) || (MyItemInfo.IsCaution || MyItemInfo.IsNote)) ? -fixedChgCol : - AERLeftChangeBarLocation(formatInfo)); - else - return (fixedChgCol + (((c < cols + Width + colr) || TableTest() - || MyItemInfo.IsCaution || MyItemInfo.IsNote) ? 0 : cols + colr)); // || (GetColumnMode() == 0)) ? 0 : cols + colr)); - /* Change bars to left of text -- ColS+WidS+ColR is the end of RNO col*/ - } - /* - ** Centered tables whose width exceeds the end of the RNO column should - ** still have their change bars printed on the left. This procedure checks - ** to make sure the step is a table and that it is not an RNO. - */ - private bool TableTest() - { - return false; - //return ((s->Type == TABLE || s->Type == BORDERLESSTABLE) && - //!(strchr((char *)&s->dbseq[2],RNO_MARKER))); - } - private float GetBottomYoff(float bottomY) - { - foreach (vlnParagraph child in ChildrenBelow) - { - if (child.YOffset > bottomY) bottomY = child.YOffset; - bottomY = child.GetBottomYoff(bottomY); - } - return bottomY; - } - private int AERLeftChangeBarLocation(FormatInfo formatInfo) - { - // use -5 default unless it is format specified - int fixedAERChgCol = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData.FixedAERChangeColumn ?? 0; - return (fixedAERChgCol != 0) ? - (fixedAERChgCol > 100) ? - (fixedAERChgCol % 100) : -fixedAERChgCol : -5; - } - private StringBuilder _RtfSB = null; - public string GetRtf(ItemInfo itemInfo, string prefix, string suffix) - { - int profileDepth = ProfileTimer.Push(">>>> GetRtf"); - _RtfSB = new StringBuilder(); - DisplayText vlntxt = new DisplayText(itemInfo, E_EditPrintMode.Print, E_ViewMode.View, true, E_FieldToEdit.StepText, false, prefix, suffix,MyPageHelper.MyPromsPrinter.RemoveTrailingHardReturnsAndManualPageBreaks); - System.Drawing.Font myFont = vlntxt.TextFont.WindowsFont; - if (!itemInfo.IsTable && StepRTB.MyFontFamily != null) - myFont = new System.Drawing.Font(StepRTB.MyFontFamily, myFont.Size, myFont.Style); - - string stText = null; // if Calvert (BGE) Alarms, the text is included in the macro, so save text as a blank: - if (HasCalvertMacro) - { - stText = " "; - // turn underline off - myFont = new System.Drawing.Font(myFont.FontFamily, myFont.Size, System.Drawing.FontStyle.Regular); //myFont.Style. | FontStyle.Underline); - } - else - stText = vlntxt.StartText; - - if (itemInfo.IsHigh && itemInfo.MyDocStyle.UndSpecialStepsFoldout) - { - myFont = new System.Drawing.Font(myFont.FontFamily, myFont.Size, myFont.Style | System.Drawing.FontStyle.Underline); - stText = stText.Replace(@"\ulnone ", ""); - stText = stText.Replace(@"\ulnone", ""); - } - if (stText.Contains("{IND}")) stText = stText.Replace("{IND}", "\x5"); - if (itemInfo.IsSection && itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.SectionNumber.Level0Big && itemInfo.MyParent.IsProcedure) - myFont = new System.Drawing.Font(myFont.FontFamily, 14, myFont.Style | System.Drawing.FontStyle.Bold); - _RtfSB.Append(AddFontTable(myFont)); - _RtfSB.Append(stText); - if (_MyItemInfo.IsStep && !itemInfo.FormatStepData.UseSmartTemplate && _MyItemInfo.FormatStepData.Suffix != null && _MyItemInfo.FormatStepData.Suffix != "") - _RtfSB.Append(_MyItemInfo.FormatStepData.Suffix.Replace("{ulnone}", @"\ulnone ")); - _RtfSB.Append("}"); - string rtf = _RtfSB.ToString(); - UnderlineTerminateList utl = MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.UnderlineTerminateList; - if (utl != null && myFont.Underline) - { - foreach (UnderlineTerminate ut in utl) - { - MatchCollection mc = Regex.Matches(rtf, "(? 0) - { - Match m = mc[mc.Count - 1]; - rtf = rtf.Substring(0, m.Index) + @"\ulnone " + rtf.Substring(m.Index); - } - } - } - ProfileTimer.Pop(profileDepth); - return rtf; - } - private float _XOffsetBox = 0; - public float XOffsetBox - { - get { return _XOffsetBox; } - set { _XOffsetBox = value; } - } - private float _MyBoxLeftAdj = 0; - private float SetHeader(vlnParagraph para, PdfContentByte cb, ItemInfo itemInfo, FormatInfo formatInfo) - { - float xoff = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - // The '6' below is really converting from characters to Twips. But instead of considering the CPI, 16bit assumed - // it was 12 to center the header. That's where the 6 comes from. - float hdrWidth = (itemInfo.MyHeader.CleanText == null) ? 0 : itemInfo.MyHeader.CleanText.Length * 6; - int typ = ((int)itemInfo.MyContent.Type) % 10000; - int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex; - - if (itemInfo.MyHeader.Justify == System.Drawing.ContentAlignment.MiddleCenter) - { - if (bxIndx != null) - { - Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bx.TabPos > 0) - xoff += (float)bx.TabPos; // xoff starts as left margin - else - xoff += (float)((bx.TxtStart + _MyBoxLeftAdj + XOffsetBox + (bx.TxtWidth / 2)) - (hdrWidth / 2)); // xoff starts as left margin - } - else if (formatInfo.MyStepSectionLayoutData.Separator.Location > 0) - xoff = XOffset + AdjustToCharPosition((float)((para.Width - hdrWidth) / formatInfo.MyStepSectionLayoutData.Separator.Location), itemInfo.MyHeader.MyFont.CPI); - else if (itemInfo.IsInRNO && itemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[40].NumberWithLevel) - xoff = XOffset + (para.Width / 2) - (hdrWidth / 2); - else if (itemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[40].NumberWithLevel) - xoff = XOffset + (para.Width / 2) - (hdrWidth / 2); - else - xoff = XOffset + (para.Width / 2) + (hdrWidth / 2); // XOffset has left margin included - } - else - xoff = XOffset; // XOffset has left margin included - // KEEP: This may be needed in the future to fix location of 'OR's when Separator location="0" - // the following code would place the 'OR' at the location of the tab rather than text. This - // is how 16bit was. However, a number of plants had been sent out with the xoffset at the xlocation - // of text (does not match 16bit) when this was found for BGE OI3/OI-1B/6.1.B.4. Previous releases - // went to CAT, MCG, FPL, NSP. - //{ - // if (this.MyTab != null) - // xoff = this.MyTab.XOffset; - // else - // xoff = XOffset; - //} - - vlnHeader myHeader = new vlnHeader(this, cb, itemInfo.MyHeader.Text, itemInfo.MyHeader.CleanText.TrimStart(" ".ToCharArray()), xoff + _MyBoxLeftAdj, YOffset, itemInfo.MyHeader.MyFont); - PartsAbove.Add(myHeader); - //return myHeader.Height + (!MyItemInfo.MyDocStyle.SpecialStepsFoldout || (MyItemInfo.MyDocStyle.ExtraLineHeader && (MyItemInfo.IsCaution || MyItemInfo.IsNote)) ? SixLinesPerInch : 0); - // Only use SpaceIn property for Cautions or Notes - bool bSpaceIn = (MyItemInfo.IsCaution || MyItemInfo.IsNote) ? MyItemInfo.FormatStepData.SpaceIn : true; - return myHeader.Height + (!MyItemInfo.MyDocStyle.SpecialStepsFoldout || (MyItemInfo.MyDocStyle.ExtraLineHeader && (MyItemInfo.IsCaution || MyItemInfo.IsNote)) ? bSpaceIn ? SixLinesPerInch : 0 : 0); - } - private float AdjustToCharPosition(float position, float? CPI) - { - int iPosition = (int)position; - int charsToTwips = (int)(72 / (CPI ?? 12)); - iPosition = (iPosition / charsToTwips) * charsToTwips; - position = (position / 7.2F) * 7.2F; - return (float)iPosition; - } - private bool _SectionPageBreak = false; - public bool SectionPageBreak - { - get { return _SectionPageBreak; } - set { _SectionPageBreak = value; } - } - private bool _Processed = false; - public bool Processed - { - get { return _Processed; } - set { _Processed = value; } - } - private vlnParagraph _LastRNO; - public vlnParagraph LastRNO - { - get { return _LastRNO; } - set { _LastRNO = value; } - } - private vlnParagraph _MyTopRNO; - public vlnParagraph MyTopRNO - { - get { return _MyTopRNO; } - set { _MyTopRNO = value; } - } - private static string _PathPrefix = ""; - public static string PathPrefix - { - get { return vlnParagraph._PathPrefix; } - set { vlnParagraph._PathPrefix = value; } - } - protected float _YBottomMost; // Bottom of the paragraph including the children - public float YBottomMost - { - get { return _YBottomMost; } - set { _YBottomMost = value; } - } - protected float _YBottomMostAdjust = 0; // the RNO separator is outside asterisk box, account for additional Y space - public float YBottomMostAdjust - { - get { return _YBottomMostAdjust; } - set { _YBottomMostAdjust = value; } - } - protected float _YTopMost; // Top of the paragraph including the children - public float YTopMost - { - get { return _YTopMost; } - set { _YTopMost = value; } - } - protected float _YTop; // Top of the paragraph including parts - public float YTop - { - get { return _YTop; } - set - { - vlnParagraph vp = this as vlnParagraph; - _YTop = value; - - } - } - public float SmartTemplateAdjust - { - // If we're in a smart template (WCNCKL checklists) then account for the bottom line in the - // table. - get { return (MyItemInfo.IsHigh && MyItemInfo.FormatStepData.UseSmartTemplate) ? SixLinesPerInch : 0; } - } - public float YSize // How big this paragraph is with all of its children - { - get - { - float ysize = SmartTemplateAdjust + _YBottomMost - _YTopMost; - if (MyItemInfo.IsHigh && ((MyItemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DoubleBoxHLS) == E_DocStructStyle.DoubleBoxHLS)) - ysize += SixLinesPerInch; - return ysize; - } - } - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - private vlnParagraph _MyHighLevelParagraph; - - public vlnParagraph MyHighLevelParagraph - { - get - { - if (_MyHighLevelParagraph == null) - { - _MyHighLevelParagraph = GetHighLevelParagraph(); - } - return _MyHighLevelParagraph; - } - } - private vlnParagraph GetHighLevelParagraph() - { - if (MyItemInfo.IsHigh) return this; - return MyParent.GetHighLevelParagraph(); - } - private vlnParagraph _SupInfoSection; - public vlnParagraph SupInfoSection - { - get - { - if (_SupInfoSection == null) - { - _SupInfoSection = GetSupInfoSectionParagraph(); - } - return _SupInfoSection; - } - } - private vlnParagraph GetSupInfoSectionParagraph() - { - if (MyItemInfo.IsSection) return this._SupInfoSection; - return MyParent.GetSupInfoSectionParagraph(); - } - // Tab, Separator, ChangeBar, Box, Circle, Checkoff - private vlnTab _MyTab; - public vlnTab MyTab - { - get - { - if (_MyTab == null) - { - foreach (vlnPrintObject po in PartsLeft) - { - if (po is vlnTab) - { - _MyTab = po as vlnTab; - break; - } - } - } - return _MyTab; - } - } - private vlnPrintObjects _PartsAbove; - public vlnPrintObjects PartsAbove - { - get - { - if (_PartsAbove == null) _PartsAbove = new vlnPrintObjects(); - return _PartsAbove; - } - } - private vlnPrintObjects _PartsBelow; - public vlnPrintObjects PartsBelow - { - get - { - if (_PartsBelow == null) _PartsBelow = new vlnPrintObjects(); - return _PartsBelow; - } - } - private vlnPrintObjects _PartsRight; - public vlnPrintObjects PartsRight - { - get - { - if (_PartsRight == null) _PartsRight = new vlnPrintObjects(); - return _PartsRight; - } - } - private vlnPrintObjects _PartsLeft; - public vlnPrintObjects PartsLeft - { - get - { - if (_PartsLeft == null) _PartsLeft = new vlnPrintObjects(); - return _PartsLeft; - } - } - private vlnPrintObjects _PartsContainer; - public vlnPrintObjects PartsContainer - { - get - { - if (_PartsContainer == null) _PartsContainer = new vlnPrintObjects(); - return _PartsContainer; - } - } - private vlnParagraphs _ChildrenAbove; - public vlnParagraphs ChildrenAbove - { - get - { - if (_ChildrenAbove == null) _ChildrenAbove = new vlnParagraphs(this); - return _ChildrenAbove; - } - } - private vlnParagraphs _ChildrenBelow; - public vlnParagraphs ChildrenBelow - { - get - { - if (_ChildrenBelow == null) _ChildrenBelow = new vlnParagraphs(this); - return _ChildrenBelow; - } - } - private vlnParagraphs _ChildrenRight; - public vlnParagraphs ChildrenRight - { - get - { - if (_ChildrenRight == null) _ChildrenRight = new vlnParagraphs(this); - return _ChildrenRight; - } - } - private vlnParagraphs _ChildrenLeft; - public vlnParagraphs ChildrenLeft - { - get - { - if (_ChildrenLeft == null) _ChildrenLeft = new vlnParagraphs(this); - return _ChildrenLeft; - } - } - private float? _XOffsetCenter = null; - - public float? XOffsetCenter - { - get { return _XOffsetCenter; } - set { _XOffsetCenter = value; } - } - - public bool IsEnhancedBackgroundFormat(ItemInfo itminfo) - { - return ((itminfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds); - } - - public void AdjustXOffsetForTab(ItemInfo itemInfo, int maxRNO, FormatInfo formatInfo, vlnTab myTab, float xMetaAdj) - { - if (itemInfo.IsSupInfoPart) - { - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + 54; // add in 3/4 inch (54) to allow for enough space for Note/Caution tab - if (myTab != null) - { - myTab.XOffset = XOffset - ((myTab == null) ? 0 : myTab.Width) - 12; - myTab.Width = 2.5f * myTab.Width; - } - return; - } - float tabWidth = (myTab == null) ? 0 : myTab.Width; - if (itemInfo.IsStepSection) - { - if (formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Just == "PSLeft") - { - int level = 0; - ItemInfo iilvl = itemInfo; - while (!iilvl.IsProcedure) - { - level++; - iilvl = iilvl.MyParent; - } - if (formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvert) - { - XOffset = (myTab == null ? 0 : myTab.XOffset) + ((float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos - (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos); - } - else - { - level = level <= 2 ? 1 : level - 1; - if (level == 1) - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (level * (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos); - else if (formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvert) - XOffset = (myTab == null ? 0 : myTab.XOffset) + ((float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos - (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos); - else - { - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[level].ColSByLevel; - XOffset += (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[level].SecTitlePositionAdj; - XOffset -= xMetaAdj; - } - } - } - else if (formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Just == "PSCenter") - { - float hdrWidth = itemInfo.MyContent.Text.Length * 6; - float ctr = (((float)itemInfo.MyDocStyle.Layout.PageWidth - (float)itemInfo.MyDocStyle.Layout.LeftMargin)) / 2; - XOffsetCenter = (float)itemInfo.MyDocStyle.Layout.LeftMargin + ctr - (hdrWidth / 2); - } - return; - } - int? bxIndx = itemInfo.FormatStepData.StepLayoutData.STBoxindex; - float? colOvrd = itemInfo.FormatStepData.ColOverride; - if (itemInfo.IsBackgroundStep()) - { - if (myTab != null) myTab.XOffset = XOffset; - XOffset += (itemInfo.FormatStepData.Font.CharsToTwips * 2); // indent 2 characters for background steps - Width -= (itemInfo.FormatStepData.Font.CharsToTwips * 2); // Adjust width by 2 characters - return; - } - else if (itemInfo.FormatStepData.UseOldTemplate && itemInfo.IsInTemplate() && - ((MyItemInfo.MyActiveSection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd)) - { - if (myTab != null) myTab.XOffset = XOffset; - XOffset += myTab.Width; - return; - } - else if (itemInfo.FormatStepData != null && itemInfo.FormatStepData.Type == "TitleWithTextBelow") - { - if ((colOvrd ?? 0) != 0) - XOffset = (float)colOvrd; - else - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - return; - } - else if (itemInfo.IsParagraph && - (((itemInfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds) || - ((itemInfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedDeviations) == E_PurchaseOptions.EnhancedDeviations)) && - itemInfo.FormatStepData != null && PreviousIsTitleWithTextBelow(itemInfo)) - { - // This code was needed for fix for B2015-183 && - // IP2 backgrounds so that any 'paragraph's that were at the same - // level as the 'TitleWithTextBelow's would have same left margin (xoffset) as the 'TitleWithTextBelow'. - // an example of this can be found in IP2 Backgrounds, 2-E-0, Step Description Table, Step 22, PLANT-SPECIFIC INFORMATION. - // (NOTE that the IP2 exaxmple was no longer in the data when the work on B2015-183 was done) - if ((colOvrd ?? 0) != 0) - XOffset = (float)colOvrd; - else - { - //Adjuust Indent for Wolf Creek Background format flag - float indentBG1 = itemInfo.IsPartOfBackgroundStep() ? itemInfo.FormatStepData.Font.CharsToTwips * 2 : 0; - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + indentBG1; - Width = (float)itemInfo.MyDocStyle.Layout.PageWidth - (float)itemInfo.MyDocStyle.Layout.LeftMargin - indentBG1; - } - return; - } - else if (itemInfo.MyParent.FormatStepData != null && itemInfo.MyParent.FormatStepData.Type == "TitleWithTextBelow" && (!itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm || (!itemInfo.IsCaution && !itemInfo.IsNote))) - { - float childindent = itemInfo.MyParent.FormatStepData.ChildIndent ?? 0; - if (myTab != null) - { - float delta = childindent + MyParent.XOffset - myTab.XOffset; - myTab.XOffset += delta; - XOffset += delta; - } - else - { - //Adjust Indent for Wolf Creek Background format flag - float indentBG2 = itemInfo.IsPartOfBackgroundStep() ? itemInfo.FormatStepData.Font.CharsToTwips * 2 : 0; - XOffset = childindent + MyParent.XOffset+ indentBG2;//(itemInfo.FormatStepData.Font.CharsToTwips * 2); - // B2016-164: Added the following 'if' so that the width is not recalculated if in the alarm format & the parent has a template - // B2016-168: The fix for 164 broke deviation document printing. The if statement was fixed for both: - if (!itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm || !UseTemplateWidthOrXOff(itemInfo.MyParent)) - Width = (float)itemInfo.MyDocStyle.Layout.PageWidth - (float)itemInfo.MyDocStyle.Layout.LeftMargin - indentBG2; - } - return; - } - else if (itemInfo.FormatStepData != null && itemInfo.FormatStepData.Type == "TitleWithTextRight") - { - if ((colOvrd ?? 0) != 0) - XOffset = (float)colOvrd; - else - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - return; - } - else if (itemInfo.MyParent.FormatStepData != null && itemInfo.MyParent.FormatStepData.Type == "TitleWithTextRight") - { - XOffset = MyParent.MyParent.XOffset; - // if the step text has a tab, then we need to position the tab to the XOffset and then ajust the text XOffset - // by the length of the tab. - fix for IP2 backgrounds (ex. 2-ECA-3.3, step 6) - if (myTab != null) - { - myTab.XOffset = XOffset; - XOffset += (myTab.Text.Length * myTab.MyFont.CharsToTwips);//myTab.Width - myTab.XOffset; - } - return; - } - if (itemInfo.IsHigh) - { - if (formatInfo.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm || - ((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_SameXOffSubsections) == E_DocStructStyle.DSS_SameXOffSubsections)) - { - // the HLS in the template prints the tab/step on the right edge of page. Don't - // do the other calculations to relocate it. - if (itemInfo.FormatStepData.UseOldTemplate && itemInfo.IsInTemplate()) - { - MyTab.XOffset = XOffset - MyTab.Width; - return; - } - // the following code handles the xoffsets of tabs/HLS in the non-alarm sections for - // the Calvert Alarm format. - if (itemInfo.MyDocStyle.UseColSByLevel) - { - if (myTab != null) - { - myTab.Rtf = myTab.Rtf.Replace(myTab.Text, myTab.Text.TrimStart(" ".ToCharArray())); - myTab.XOffset = MyParent.XOffset; - XOffset = myTab.XOffset + MyTab.Width; - } - else - XOffset = MyParent.XOffset; // unnumbered hls - return; - } - } - float x = 0; - float xoff = 0; - if ((colOvrd ?? 0) != 0) - x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)colOvrd; - else - x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS; - - xoff = x - XOffset; - // ColSByLevel will specify the column in which the High Level Step starts with - // respect to the overall level calculation based on sections & meta-sections. - // Only a few of the single column formats use this: WCN1, CAL1, RGEBCK - if (formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel - && !(itemInfo.MyDocStyle.SpecialStepsFoldout && itemInfo.MyDocStyle.UseColSByLevel)) - { - int indxLevel = itemInfo.PrintLevel + itemInfo.CurrentSectionLevel(); - float colsbylevel = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[indxLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.MaxIndex].ColSByLevel; - float seclvlindent = colsbylevel - (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS; - float adjCols = (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS + seclvlindent; - float xtabcol = adjCols - ((myTab == null || myTab.Text == null) ? 0 : (myTab.Text.Length * 7.2f)); - if (indxLevel > 1 && myTab != null) myTab.XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + xtabcol; - else if (myTab != null) myTab.XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + colsbylevel; - if (myTab != null) - { - myTab.Rtf = myTab.Rtf.Replace(myTab.Text, myTab.Text.TrimStart(" ".ToCharArray())); - if (formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList != null && - formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList.Count > 0) - XOffset = myTab.XOffset + GetLeftJustify(formatInfo, indxLevel); - else - XOffset = myTab.XOffset + (myTab.Text.Length * (float)itemInfo.FormatStepData.Font.CPI) - colsbylevel; - } - } - else - { - XOffset += xoff; - // For Calvert, adjust from the left margin and current section's tab. This is used - // in BGEEOP (see EOP-0/Purpose ). However, it caused BGESTP's to print LossOfAC steps (unnumbered HLS) too - // far to the left. The ForceAlignNullTabWSectHead was introduced so that for that step type (LossOfAC) in STP/OI format, - // the SectData.SectionHeader.Pos was used rather than SectData.SectionNumber.Pos - if (myTab == null && !itemInfo.FormatStepData.ForceAlignNullTabWSectHead && itemInfo.FormatStepData.AlignNullTabWSectHead && itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert) - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos; - else if (myTab == null && itemInfo.FormatStepData.AlignNullTabWSectHead) - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos; - if (myTab != null) - { - if (itemInfo.MyDocStyle.AlignHLSTabWithSect || itemInfo.FormatStepData.AlignHLSTabWithSectOvride) - { - myTab.XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos; - XOffset = myTab.XOffset + myTab.Width; - } - else - { - myTab.XOffset += xoff; - if (myTab.MyMacro != null) myTab.MyMacro.XOffset += xoff; - } - } - else - { - if (itemInfo.MyDocStyle.AlignHLSTabWithSect) - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos; - } - } - } - else if (((colOvrd ?? 0) != 0) && (formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.NullBox)) - { - float tabOffset = (myTab == null ? 0 : myTab.XOffset) - XOffset; - XOffset = (float)colOvrd; - if (myTab != null) myTab.XOffset = XOffset + tabOffset; - return; - } - else if (((colOvrd ?? 0) != 0) && (IsEnhancedBackgroundFormat(itemInfo) && (itemInfo.IsNote || itemInfo.IsCaution))) - { - float tabOffset = (myTab == null ? 0 : myTab.XOffset); - // Adjust the position of the Note/Caution text by the difference of the colOverride and the tab xoffset - XOffset += ((float)colOvrd - tabOffset); - if (myTab != null) myTab.XOffset = (float)colOvrd; // set the note/caution tab offset to the colOverride - return; - } - // put in for Point Beach (wep2) we don't want to do this if we are processing a boxed substep (cont. action substep) - else if (bxIndx != null && (itemInfo.IsCaution || itemInfo.IsNote || - !itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.ContActBoxOnSubSteps)) - { - Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bx == null) - { - if ((colOvrd ?? 0) != 0) - { - // 16-bit code subtracted the left margin - //xoff = ((float)colOvrd - (float)itemInfo.MyDocStyle.Layout.LeftMargin) - XOffset; - //XOffset += xoff; - //if (myTab != null) myTab.XOffset += xoff; - //xoff = MyParent.XOffset - myTab.XOffset; - //XOffset += xoff; - float tabOffset = (myTab == null ? 0 : myTab.XOffset) - XOffset; - - XOffset = (float)colOvrd; - if (myTab != null) myTab.XOffset = XOffset + tabOffset; - return; - } - else - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + tabWidth + XOffsetBox; - } - else - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)bx.TxtStart + _MyBoxLeftAdj + tabWidth + XOffsetBox; - if (myTab != null) myTab.XOffset = XOffset - tabWidth; - } - else if (itemInfo.IsRNOPart && itemInfo.MyParent != null && itemInfo.MyParent.IsRNOPart && itemInfo.FormatStepData.NumberWithLevel) - { - // xoffset is same as parent RNO (this is a BGE format flag). Instead of RNO's being siblings, - // they had a parent/child relationship. So want the child to have same xoffset as parent, i.e. - // the same xoffset. - XOffset = MyParent.XOffset; - myTab.XOffset = MyParent.MyTab.XOffset; - return; - } - else if (itemInfo.IsRNOPart && (colOvrd > 0 || !((ItemInfo)itemInfo.ActiveParent).IsHigh) && itemInfo.FormatStepData.OffsetTab) - { - if (colOvrd > 0) - { - XOffset = (int)colOvrd; - if (!((ItemInfo)itemInfo.MyParent).IsHigh) - { - ItemInfo hls = itemInfo.MyHLS; - XOffset -= (itemInfo.MyTab.Offset - hls.MyTab.Offset); - } - } - // if this format has the centerline & numberwithlevel (special tabbing for rno) then - // position rno xoffset of the tab to be close to centerline & text indented from there (only BGE) - if (itemInfo.MyDocStyle.CenterLineX != null && itemInfo.FormatStepData.NumberWithLevel) - { - // if the tab is 3 char or smaller, make the indent amount for the rno text 4 characters. - // if bigger, make it the additional tab size. - int len = myTab.Text.Trim().Length; - int adj = len <= 3 ? 4 : (len - 3) + 4; - float rnoOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)itemInfo.MyDocStyle.CenterLineX + 5; - float tPtPerChar = itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TabPtsPerChar ?? 6; - XOffset = rnoOffset + tPtPerChar * adj; - Width = (float)itemInfo.MyDocStyle.Layout.PageWidth - XOffset - 11; // 11 is about size of char, so don't touch right line. - if (myTab != null) myTab.XOffset = rnoOffset; - } - // if the step is within the rno and we're numbering the high level rno, we've got to account for the - // indenting (increased x offset) for the top level rno's tab, if there is no top level rno: - else if (itemInfo.FormatStepData.NumberHighLevel && (itemInfo.MyHLS.RNOs == null || itemInfo.MyHLS.RNOs.Count <= 0)) - { - // add in the size that an RNO off HLS would take. - tabWidth += itemInfo.MyTab.RNOTabWidthAdjust; - XOffset += tabWidth; - if (myTab != null) myTab.XOffset += tabWidth; - } - if (itemInfo.ActiveFormat.MyStepSectionLayoutData.DevNoteOrCautionTabOffset != null) - { - MyTab.XOffset = float.Parse(itemInfo.ActiveFormat.MyStepSectionLayoutData.DevNoteOrCautionTabOffset); - XOffset = MyTab.XOffset + tabWidth - MyTab.TabAlign; - } - } - else if (MyParent != null) - { - if (myTab == null && itemInfo.FormatStepData.AlignNullTabWSectHead && itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert) - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos; - else if (itemInfo.ActiveFormat.MyStepSectionLayoutData.DevNoteOrCautionTabOffset != null) - { - if (MyTab != null) - { - MyTab.XOffset = float.Parse(itemInfo.ActiveFormat.MyStepSectionLayoutData.DevNoteOrCautionTabOffset); - XOffset = MyTab.XOffset + tabWidth - MyTab.TabAlign; - if (myTab.MyMacro != null && myTab.MyMacro.XOffset != 0) myTab.MyMacro.XOffset += tabWidth - myTab.TabAlign; - } - } - else if (itemInfo.IsSequential && itemInfo.MyParent.IsHigh && ((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.Align1StLevSubWHLS) == E_DocStructStyle.Align1StLevSubWHLS)) - { - XOffset = MyParent.XOffset; - if (myTab != null) myTab.XOffset = (MyParent.MyTab != null ? MyParent.MyTab.XOffset : XOffset); - } - else if (myTab != null && itemInfo.IsSequential && formatInfo.PlantFormat.FormatData.SectData.UseMetaSections && formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList.Count > 0) - { - int indxLevels = itemInfo.PrintLevel + itemInfo.CurrentSectionLevel(); - float tableftadj = GetLeftJustify(formatInfo, indxLevels); - if (tableftadj != 0) - { - // the order of this is important. First adjust the tab's xoffset for the width of - // the tab. The offset of text needs to be adjusted by the 'leftjustify' format variable - // if it existed for this level. - myTab.XOffset += tabWidth; - if (tableftadj != 0 && myTab.Width < tableftadj) - tabWidth = myTab.Width = tableftadj; - XOffset += tabWidth; - myTab.Rtf = myTab.Rtf.Replace(myTab.Text, myTab.Text.TrimStart(" ".ToCharArray())); - Width = MyParent.Width - myTab.Width; - } - else // if no left justify, right align the tab - { - XOffset += tabWidth - (myTab == null ? 0 : myTab.TabAlign); - if (myTab != null) - { - myTab.XOffset += tabWidth - myTab.TabAlign; - if (myTab.MyMacro != null && myTab.MyMacro.XOffset != 0) myTab.MyMacro.XOffset += tabWidth - myTab.TabAlign; - } - } - } - - //else if ((itemInfo.FormatStepData.ColOverride ?? 0) > 0) - //{ - // XOffset = (float)itemInfo.FormatStepData.ColOverride; - // MyTab.XOffset = XOffset; - // return; - //} - else // if no left justify, right align the tab - { - // The following fixes F2016-033: Print the Verification Point at left margin. - if (itemInfo.ActiveFormat.Name.ToUpper().StartsWith("VCB") && (itemInfo.FormatStepData.ColOverride ?? 0) > 0) - { - XOffset = (float)itemInfo.FormatStepData.ColOverride; - } - else - { - XOffset += tabWidth - (myTab == null ? 0 : myTab.TabAlign); - if (myTab != null) - { - myTab.XOffset += tabWidth - myTab.TabAlign; - if (myTab.MyMacro != null && myTab.MyMacro.XOffset != 0) myTab.MyMacro.XOffset += tabWidth - myTab.TabAlign; - } - } - } - } - // if format had a tab adjustment for step type, use it. MyTab.Offset is only set for FNP formats - // to get the correct xoffset for their tabs/text. The issue is that they use very large tabs - // because levels of substeps include the parent tab. This code will only be run for FNP. - if (itemInfo.MyTab != null && itemInfo.MyTab.Offset != 0) - { - float xOffTabNew = (MyParent.MyTab != null ? MyParent.MyTab.XOffset : MyParent.XOffset) + itemInfo.MyTab.Offset; - xOffTabNew += MyParent.MyTab == null ? 0 : MyParent.MyTab.TabOffset; - float xIncrement = xOffTabNew - MyTab.XOffset; - myTab.XOffset += xIncrement; - XOffset += xIncrement; - Width -= xIncrement; - } - } - private bool PreviousIsTitleWithTextBelow(ItemInfo itemInfo) - { - while(itemInfo.MyPrevious != null) - { - if (itemInfo.MyPrevious.FormatStepData.Type == "TitleWithTextBelow") return true; - itemInfo=itemInfo.MyPrevious; - } - return false; - } - - private static float GetLeftJustify(FormatInfo formatInfo, int indxLevels) - { - LeftJustifyList jstlst = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList; - float tableftadj = 0; - foreach (LeftJustify lj in jstlst) - { - if (lj.Index == indxLevels) - { - tableftadj = lj.Size ?? 0; - break; - } - } - return tableftadj; - } - private float _CheckOffWidth = 0; - public float CheckOffWidth - { - get { return _CheckOffWidth; } - set { _CheckOffWidth = value; } - } - public void AdjustWidth(ItemInfo itemInfo, int maxRNO, FormatInfo formatInfo, vlnTab myTab) - { - int? bxIndx = itemInfo.IsStep ? itemInfo.FormatStepData.StepLayoutData.STBoxindex : null; - float? widOvrd = 0; - float xwid = 0; - if (itemInfo.IsStep && itemInfo.MyHLS != null && UseTemplateWidthOrXOff(itemInfo) && (xwid = GetWidthOrStartFromTemplate(itemInfo, formatInfo, true)) > 0) - widOvrd = xwid; - else - widOvrd = itemInfo.FormatStepData == null ? null : itemInfo.FormatStepData.WidthOverride == null ? null : - (float?)ToInt(itemInfo.FormatStepData.WidthOverride, maxRNO); - - // Calvert subheaders in valve lists - the text gets centered, so the width is the width - // of the page (also, don't do this for alarms, thus the !SpecialCaseCalvert Alarms, since - // alarms use Caution1 as the annunciator): - if (itemInfo.IsStep && itemInfo.MyHLS != null && !itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm && - itemInfo.MyHLS.FormatStepData.UseOldTemplate && itemInfo.MyDocStyle.ComponentList && itemInfo.IsCaution1) - { - Width = (float)itemInfo.MyDocStyle.Layout.PageWidth - (float)itemInfo.MyDocStyle.Layout.LeftMargin; - return; - } - - // Calvert Alarms had a case where the Title With Text Below (type 42) did not match - // any of the template items, but needed the width from the template. The previous step (of - // same type) was in the template. Check for this case. The issue can be found in - // Unit 1 Alarms/1c06/Alarm E-48/'General Information' section. - if (itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm && widOvrd == 0) - { - if (itemInfo.MyPrevious != null && itemInfo.MyPrevious.TemplateIndex > 1) widOvrd = GetWidthOrStartFromTemplate(itemInfo.MyPrevious, itemInfo.MyPrevious.ActiveFormat, true); - } - - // for IP2 backgrounds, set widths appropriately for template items: - if (itemInfo.IsStep && ((itemInfo.MyActiveSection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd)) - { - if (itemInfo.FormatStepData.Type.ToUpper() == "TITLEWITHTEXTBELOW") - { - Width = MyParent.Width; - return; - } - if (itemInfo.MyPrevious != null && itemInfo.MyPrevious.FormatStepData.Type == "TitleWithTextBelow") - { - Width = MyParent.MyParent.Width; - return; - } - if (widOvrd == 0 && itemInfo.MyParent.IsStep && - (itemInfo.MyParent.FormatStepData.Type.ToUpper() == "TITLEWITHTEXTBELOW" || - (((itemInfo.MyActiveSection.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd) && - itemInfo.FormatStepData != null && MyParent.MyItemInfo.MyPrevious != null && MyParent.MyItemInfo.MyPrevious.FormatStepData.Type == "TitleWithTextBelow"))) - { - Width = MyParent.MyParent.Width + (MyParent.MyParent.MyTab != null ? MyParent.MyParent.MyTab.Width : 0); - Width -= (MyTab != null ? MyTab.Width : 0); - return; - } - } - - //widOvrd = itemInfo.FormatStepData == null ? null : itemInfo.FormatStepData.WidthOverride; - // Don't adjust the RNO width if in single column mode: - if (itemInfo.IsRNOPart && itemInfo.MyParent.IsHigh && itemInfo.MyActiveSection.ColumnMode != 0 && itemInfo.ActiveFormat.MyStepSectionLayoutData.RNOWidthAlt != null) - { - string[] splitRNOWidthAlt = itemInfo.ActiveFormat.MyStepSectionLayoutData.RNOWidthAlt.Split(','); - float ovrd = (itemInfo.RNOLevel < splitRNOWidthAlt.Length) ? float.Parse(splitRNOWidthAlt[itemInfo.RNOLevel]) : 0; - if (ovrd > 0) - widOvrd = ovrd; // + 6; // Change bars on RNO column (signoff line) would not line up with 16-bit without this - NSP Alarms - } - if ((widOvrd ?? 0) != 0) - { - Width = (float)widOvrd; - // if there's a box, we may need to do an adjustment on the width, if the tab data was changed - // so don't return. - if (bxIndx == null) return; - } - float tabWidth = (myTab == null) ? 0 : myTab.Width; - if (itemInfo.IsHigh) - { - float CheckOffAdj = 0; - bool ChkOff = itemInfo.MyDocStyle.UseCheckOffs; - if (itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert || itemInfo.ActiveFormat.Name.ToUpper().StartsWith("VCB")) - { - SectionInfo si = itemInfo.ActiveSection.GetSectionInfo(); - ChkOff = si.HasInitials; // this determines if any steps within the section have checkoffs. - } - bool FmtHasAdj = false; - if (ChkOff) - { - if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffAdjustment != null) - { - FmtHasAdj = true; - CheckOffAdj = -(float)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffAdjustment; - } - if (!itemInfo.ActiveFormat.Name.ToUpper().StartsWith("VCB")) // Don't do the following if in a vcb format (part of fix F2016-039) - { - if (!HasCheckOffHeading(itemInfo, formatInfo) && CheckOffAdj < 0) - CheckOffAdj += (float)(9 * 7.2); // 9 is the size of the SIGNOFF adjustment - else if (!FmtHasAdj && HasCheckOffHeading(itemInfo, formatInfo)) - // For Robinson, tried using font's CharsToTwips but it made it too narrow, so used hardcoded 6: - CheckOffAdj = -((float)9 * 6); - } - } - float adjwidth = CheckOffAdj; - CheckOffWidth = -CheckOffAdj; - adjwidth = AdjustMetaWidth(itemInfo, formatInfo, adjwidth, FmtHasAdj); - Width = ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, maxRNO); - Width += _WidthAdjust; - Width += adjwidth; - - // if AlignHLSTabWithSect is set, we moved the starting x location of the HLS, and following steps - // to be under section header. Adjust the width accordingly, or the text may go out of the margin. - if (myTab == null && itemInfo.FormatStepData.AlignNullTabWSectHead && itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert) - Width = Width + (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos - (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos; - else if (myTab == null && itemInfo.FormatStepData.AlignNullTabWSectHead) - Width = Width + (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos; - else if (itemInfo.MyDocStyle.AlignHLSTabWithSect) - Width = Width - (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos; - } - else if (bxIndx != null) - { - Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bx == null) - { - // NOT SURE IF WE NEED TO TEST FOR THE NULLBOX FORMAT FLAG, MAYBE "bx == null" IS THE SAME THING - //if (formatInfo.MyStepSectionLayoutData.NullBox) - if (widOvrd != 0) - Width = (float)widOvrd - tabWidth; - else - Width = (float)formatInfo.MyStepSectionLayoutData.WidT - tabWidth; - } - else - Width = _WidthAdjustBox + (float)bx.TxtWidth - tabWidth; // add 1 to get it to wrap like 16Bit - } - else if ((itemInfo.IsCaution || itemInfo.IsNote) && !itemInfo.FormatStepData.UseOldTemplate) - { - float mycolT = (float)formatInfo.MyStepSectionLayoutData.ColT; - if (formatInfo.MyStepSectionLayoutData.Dev_Format) - Width = (float)formatInfo.MyStepSectionLayoutData.WidT + 1; - else if (itemInfo.IsInRNO) - { - if (MyItemInfo.FormatStepData.CenterOneLineAdjust) - { - int rnoOff = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO); - XOffset = rnoOff + MyHighLevelParagraph.XOffset; - Width = MyParent.Width; - } - else - Width = (MyParent.XOffset + MyParent.Width) - (XOffset + mycolT); - } - else - { - // B2016-269: if caution/note & not boxed, with tab adjust width based on xoffset of tab - // so text doesn't print out of right border. - // B2017-027: Added a check for column mode - we only want to do this if in single column mode - if (!MyItemInfo.MyParent.IsHigh && MyTab != null && MyTab.YOffset == YOffset && MyItemInfo.MyActiveSection.ColumnMode == 0) - Width = MyHighLevelParagraph.Width - MyTab.Width - (MyTab.XOffset - MyHighLevelParagraph.XOffset) - 6; - else - Width = (float)formatInfo.MyStepSectionLayoutData.WidT - 6 - mycolT; - } - XOffset += mycolT; // adjust caution/note text position - if (PartsLeft != null && PartsLeft.Count > 0)// adjust tab position - { - if(myTab!=null && (itemInfo.IsNote || itemInfo.IsCaution)) - Width -= myTab.Width; - foreach (vlnPrintObject vpo in PartsLeft) - vpo.XOffset += mycolT; - } - } - else if (itemInfo.IsSection) - { - Width = ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, maxRNO); - float adjwidths = 0; - adjwidths = AdjustMetaWidth(itemInfo, formatInfo, adjwidths, false); - Width += (adjwidths + _WidthAdjust); - } - else if (MyParent == null) - { - // 72 points / inch - 7 inches (about width of page) - Width = 72 * 7; - } - else if (itemInfo.IsRNOPart && itemInfo.MyActiveSection.ColumnMode != 0 && itemInfo.ActiveFormat.MyStepSectionLayoutData.RNOWidthAltAll != null) - { - // This code was added for AEP. Other code that adjusted RNO widths was only adjusting the RNO widths - // off of the HLS. AEP needed adjusting for all RNOs. - float ovrd = (float)itemInfo.ActiveFormat.MyStepSectionLayoutData.RNOWidthAltAll; - if (ovrd > 0) - Width = ovrd - tabWidth; - if (XOffset + Width > (float)itemInfo.MyDocStyle.Layout.PageWidth) - Width = (float)itemInfo.MyDocStyle.Layout.PageWidth - XOffset - 5; - } - else if (itemInfo.IsRNOPart && !((ItemInfo)itemInfo.ActiveParent).IsHigh) - { - if (itemInfo.ActiveFormat.MyStepSectionLayoutData.RNOWidthAdj != null && !((ItemInfo)itemInfo.ActiveParent).IsInRNO) - Width = MyParent.Width + float.Parse(itemInfo.ActiveFormat.MyStepSectionLayoutData.RNOWidthAdj); - else - Width = MyParent.Width; - } - else if (itemInfo.IsRtfRaw) // this needs to be before the check for 'IsTablePart' - the rtfraw may be a table part, but the size is defined by raw rtf - { - System.Drawing.Size sz = RtfRawItem.GetRtfRawSize(MyItemInfo.MyContent.Text); - Height = sz.Height; - Width = sz.Width; - Rtf = MyItemInfo.MyContent.Text; - } - else if (itemInfo.IsTablePart) - { - Width = 72 * 7; // TODO: Need to determine the Width of the Table based upon the contents - } - else if (itemInfo.MyParent.IsCaution || itemInfo.MyParent.IsNote) - { - if(itemInfo.ActiveFormat.MyStepSectionLayoutData.DevNoteOrCautionTabOffset != null) - Width = MyParent.MyParent.Width - tabWidth + (myTab == null ? 0 : myTab.TabAlign); - else - Width = MyParent.Width - tabWidth + (myTab == null ? 0 : myTab.TabAlign); - Width -= 72 * (itemInfo.FormatStepData.CautionOrNoteSubstepIndent == null ? 0 : (float)itemInfo.FormatStepData.CautionOrNoteSubstepIndent / (float)itemInfo.FormatStepData.Font.CPI); - } - else - { - float adjwidth = 0; - if (itemInfo.IsRNOPart && itemInfo.ActiveFormat.MyStepSectionLayoutData.RNOWidthSameAsHighParent && itemInfo.MyParent.IsHigh) - Width = adjwidth + MyParent.Width; - else if (itemInfo.MyTab != null && itemInfo.MyTab.Position != 0) - Width = adjwidth + MyParent.Width; - else if (MyParent.WidthNoLimit != 0) - Width = adjwidth + MyParent.WidthNoLimit - tabWidth + (myTab == null ? 0 : myTab.TabAlign); - else if ((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_PageListSpBckgrnd) == E_DocStructStyle.DSS_PageListSpBckgrnd) - Width = adjwidth + MyParent.Width - (MyTab!=null?MyTab.Width:0); - else - Width = adjwidth + MyParent.Width - tabWidth + (myTab == null ? 0 : myTab.TabAlign); - } - if (itemInfo.IsSequential && itemInfo.MyParent.IsHigh && ((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.Align1StLevSubWHLS) == E_DocStructStyle.Align1StLevSubWHLS)) - Width += 10; // FIX THIS!!! - } - - private float AdjustMetaWidth(ItemInfo itemInfo, FormatInfo formatInfo, float adjwidth, bool coadj) - { - SectData sd = formatInfo.PlantFormat.FormatData.SectData; - if (((itemInfo.MyDocStyle.StructureStyle.Style & E_DocStructStyle.DSS_SameXOffSubsections) == E_DocStructStyle.DSS_SameXOffSubsections)) - { - // don't adjust the width if there already was an adjustment for checkoffs - for VCB only (F2016-039) - if (!(itemInfo.ActiveFormat.Name.ToUpper().StartsWith("VCB")&&coadj)) - adjwidth = MyTab != null ? -MyTab.Width : 0; - } - else if (sd.UseMetaSections) - { - if (sd.StepSectionData.StepSectionLayoutData.TieTabToLevel) - { - if (ShowSectionTitles - && !itemInfo.MyDocStyle.CancelSectTitle - && !(itemInfo.MyDocStyle.SpecialStepsFoldout && itemInfo.MyDocStyle.UseColSByLevel)) - { - int indxLevel = itemInfo.PrintLevel + itemInfo.CurrentSectionLevel(); - adjwidth += formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[indxLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.MaxIndex].WidSAdjByLevel ?? 0; ; - float colsbylevel = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[indxLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.MaxIndex].ColSByLevel; - float seclvlindent = colsbylevel - (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS; - adjwidth -= seclvlindent; - if (itemInfo.IsStep) adjwidth -= AdjustForSectionLevelTab(); - if (itemInfo.IsSection && itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.WCNTraining) - adjwidth -= (float)((itemInfo.MyTab.CleanText.Trim().Length * 72) / itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.SectionHeader.Font.CPI); - } - } - else - { - if (formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.MaxIndex > 0) - adjwidth += (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[itemInfo.PrintLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.MaxIndex].ColSByLevel; - } - } - return adjwidth; - } - - // for Component Table, don't increment yoff unless last item in table that HAS data associated - // with it (there may be empty cells at end). - public bool UseTemplateKeepOnCurLine(ItemInfo itemInfo) - { - if (!itemInfo.IsStep || !itemInfo.MyDocStyle.ComponentList) return false; - if (!itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvert - && itemInfo.MyHLS.FormatStepData.UseOldTemplate) return true; - return false; - } - private bool UseTemplateWidthOrXOff(ItemInfo itemInfo) - { - if (!itemInfo.IsStep) return false; - if (itemInfo.MyHLS == null) return false; - if (itemInfo.MyHLS.FormatStepData.UseSmartTemplate || (itemInfo.MyDocStyle.ComponentList && itemInfo.MyHLS.FormatStepData.UseOldTemplate)) - { - ItemInfo useForTemplate = itemInfo.IsHigh ? itemInfo : itemInfo.MyParent; - int topIndx = useForTemplate.GetSmartTemplateTopLevelIndx(); - int tpIndx = -1; - if (itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) - { - if (itemInfo.IsCaution1) return false; - else tpIndx = useForTemplate.GetSmartTemplateIndex(topIndx, itemInfo.MyContent.Text); - } - else - tpIndx = useForTemplate.GetSmartTemplateIndex(topIndx, (int)useForTemplate.MyContent.Type); - if (tpIndx > -1) return true; - } - return false; - } - private float GetWidthOrStartFromTemplate(ItemInfo itemInfo, FormatInfo formatInfo, bool bGetWidth) - { - int topIndx = itemInfo.GetSmartTemplateTopLevelIndx(); - int tmplIndx = 0; - if (itemInfo.MyDocStyle.ComponentList && !itemInfo.IsHigh) - { - // The following was added so that the Calvert Alarms sequentials under the CONDITION/RESPONSE would be - // printed as 2 column (data within the template definition set the columns to 2) - if (itemInfo.ActiveFormat.PlantFormat.FormatData.PrintData.SpecialCaseCalvertAlarm) - { - if (itemInfo.IsSequential && itemInfo.MyParent.TemplateIndex > 0) - { - if (bGetWidth && itemInfo.MyParent.ColumnMode == 1) // 2 columns - return (ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, itemInfo.ColumnMode) - MyTab.Width); - } - tmplIndx = itemInfo.TemplateIndex; - if (tmplIndx == -1) return 0; - } - else - { - // The ComponentTable format (FNP component table as one example), uses a template - // where the items in the template below the HLS are all paragraphs (the intermediate steps - // are TitleWithTextRight). Find the ordinal of in this list to get the index. Use the ordinal - // as an offset from the HLS's index into the template. - tmplIndx = itemInfo.MyParent.Ordinal + topIndx; - if (tmplIndx < 0 || tmplIndx > formatInfo.PlantFormat.FormatData.Templates.Count - 1) return 0; - } - } - else - { - tmplIndx = itemInfo.GetSmartTemplateIndex(topIndx, (int)itemInfo.MyContent.Type); - if (tmplIndx == -1) return 0; - } - // Calvert Alarms' template defines number of columns & their width. - if (bGetWidth && formatInfo.PlantFormat.FormatData.Templates[tmplIndx].width == 0) - { - int nocol = formatInfo.PlantFormat.FormatData.Templates[tmplIndx].nocolm == 0 ? 0 : formatInfo.PlantFormat.FormatData.Templates[tmplIndx].nocolm - 1; - return ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, nocol); - } - int ncol = bGetWidth ? formatInfo.PlantFormat.FormatData.Templates[tmplIndx].width : formatInfo.PlantFormat.FormatData.Templates[tmplIndx].start; - // now convert to the units for this format. The template width data is in number of columns. - return (ncol * itemInfo.FormatStepData.Font.CharsToTwips) + (bGetWidth ? 1 : 0); // + 1 is slight adjustment so column doesn't wrap - } - private float AdjustForSectionLevelTab() - { - string sectTab = MyItemInfo.ActiveSection.MyTab.CleanText.TrimEnd(); - if (sectTab.EndsWith(".0")) return 0; - string myTab = MyItemInfo.MyTab.CleanText; - // -1 below code, +1 for '.' and -2 for standard wid of tab - // standard wid of this tab is 2 (ex: '1.') - // so adjust width if longer than normal - return (float)(sectTab.Length - 1) * 72 / (float)MyItemInfo.FormatStepData.Font.CPI; - } - private bool HasCheckOffHeading(ItemInfo itemInfo, FormatInfo formatInfo) - { - if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList.MaxIndex != 0) - { - // does this section have a check off heading? - SectionConfig sc = itemInfo.MyActiveSection.MyConfig as SectionConfig; - if (sc != null && sc.Section_CheckoffHeaderSelection > 0) return true; - } - if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderInPagelist) return true; - return false; - } - // Currently not used. - // - //private bool UseCheckOffsDocStyle(int oldToNew, FormatInfo formatInfo) - //{ - // int bit, retval=0; - // int mask=1; - - // for(bit=0; bit < 32; bit++){ - // if ((oldToNew & mask) != 0 && ((int)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.UseCheckOffsIn & mask) !=0) retval = 1; - // mask <<= 1; - // } - // return retval > 0; - //} - } - - /// - /// First order by stepLevel, then within a stepLevel, order by descending yLocation on page. - /// Want to find maximum y value that fits on page, i.e. put the most on page that can - /// fit which is defined by the largest yLocation - /// - public class StepLevelList : SortedDictionary> - { - public StepLevelList() - : base() - { - } - public void Add(int stepLevel, float yLocation, vlnParagraph para) - { - if (stepLevel == 0) return; - if (!this.ContainsKey(stepLevel)) - this.Add(stepLevel, new SortedDictionary()); - // using a negative for yLocation so that its in descending order: - if (!this[stepLevel].ContainsKey(-yLocation)) - this[stepLevel].Add(-yLocation, para); - } - } - public class ParagraphLocations : List - { - public ParagraphLocations() - : base() - { - } - public void Add(vlnParagraph myParagraph, float yTopMost) - { - ParagraphLocation foundOverlap = FindOverlap(myParagraph); - if (foundOverlap == null) - { - this.Add(new ParagraphLocation(yTopMost, myParagraph)); - return; - } - ParagraphLocation doubleOverlap = FindOverlap(foundOverlap); - while (doubleOverlap != null) - { - doubleOverlap.Merge(foundOverlap); - this.Remove(foundOverlap); - foundOverlap = doubleOverlap; - doubleOverlap = FindOverlap(foundOverlap); - } - } - - private ParagraphLocation FindOverlap(vlnParagraph myParagraph) - { - foreach (ParagraphLocation paraLoc in this) - if (paraLoc.Overlap(myParagraph)) - return paraLoc; - return null; - } - private ParagraphLocation FindOverlap(ParagraphLocation myParaLoc) - { - foreach (ParagraphLocation paraLoc in this) - if (paraLoc != myParaLoc && paraLoc.Overlap(myParaLoc)) - return paraLoc; - return null; - } - internal StepLevelList BuildStepLevelList(bool KeepStepsOnPage) - { - StepLevelList myList = new StepLevelList(); - foreach (ParagraphLocation paraLoc in this) - { - int level = paraLoc.StepLevel; - if (KeepStepsOnPage && paraLoc.MyParagraph.MyItemInfo.MyContent.Type == 20001) - { - if (DontBreakHere(paraLoc)) - //if (paraLoc.MyParagraph.MyItemInfo.MyPrevious == null) // First substep - level = 0; - else - level = 1; - } - // For B2015-014, some migrated data for background documents had the TitleWithTextBelow with associated paragraphs - // as siblings rather than children. Pagination was sometimes putting the TitleWithTextBelow on one page and the - // paragraphs on next. The following code checks thse types, if in enhanced documents but not the Short Form Deviations. - if (paraLoc.MyParagraph.MyItemInfo.ActiveFormat != null - && ((paraLoc.MyParagraph.MyItemInfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedBackgrounds) == E_PurchaseOptions.EnhancedBackgrounds) - || (((paraLoc.MyParagraph.MyItemInfo.ActiveFormat.PlantFormat.FormatData.PurchaseOptions.Value & E_PurchaseOptions.EnhancedDeviations) == E_PurchaseOptions.EnhancedDeviations) - && paraLoc.MyParagraph.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.EnhancedShortFormDev)) - { - if (!paraLoc.MyParagraph.MyItemInfo.IsTitle && paraLoc.MyParagraph.MyItemInfo.MyPrevious != null && paraLoc.MyParagraph.MyItemInfo.MyPrevious.FormatStepData.Type == "TitleWithTextBelow") level = 0; - } - myList.Add(level, paraLoc.YTop, paraLoc.MyParagraph); - } - return myList; - } - private bool DontBreakHere(ParagraphLocation paraLoc) - { - if (paraLoc.MyParagraph.MyItemInfo.MyPrevious == null) // First substep - return true; - vlnParagraph myPara = paraLoc.MyParagraph; - while (!myPara.MyItemInfo.IsHigh) - { - if (myPara.MyItemInfo.IsCaution) return true; - if (myPara.MyItemInfo.IsNote) return true; - myPara = myPara.MyParent; - } - return false; - } - } - public class ParagraphLocation - { - public override string ToString() - { - return string.Format("{0} {1} - {2} - '{3}'", this.MyParagraph.MyItemInfo.ItemID, this.StepLevel, this.YTop, this.MyParagraph.MyItemInfo.ShortPath); - } - private float _YTop; - public float YTop - { - get { return _YTop; } - set { _YTop = value; } - } - private float _YBottom; - public float YBottom - { - get { return _YBottom; } - set { _YBottom = value; } - } - private int _StepLevel; - public int StepLevel - { - get { return _StepLevel; } - set { _StepLevel = value; } - } - private vlnParagraph _MyParagraph; - public vlnParagraph MyParagraph - { - get { return _MyParagraph; } - set { _MyParagraph = value; } - } - public ParagraphLocation(float yTopMost, vlnParagraph myParagraph) - { - MyParagraph = myParagraph; - YTop = myParagraph.YVeryTop - yTopMost; - YBottom = myParagraph.YBottom - yTopMost; - StepLevel = myParagraph.MyItemInfo.StepLevel; - } - public bool Overlap(vlnParagraph otherParagraph) - { - if (Between(otherParagraph.YTop, YTop, YBottom)) return true; - if (Between(otherParagraph.YBottom, YTop, YBottom)) return true; - if (Between(YTop, otherParagraph.YVeryTop, otherParagraph.YBottom)) return true; - if (Between(YBottom, otherParagraph.YVeryTop, otherParagraph.YBottom)) return true; - return false; - } - public static bool Between(float x, float lower, float higher) - { return x > lower && x < higher; } - public bool Overlap(ParagraphLocation otherParagraphLocation) - { - if (Between(otherParagraphLocation.YTop, YTop, YBottom)) return true; // The top is within the other - if (Between(otherParagraphLocation.YBottom, YTop, YBottom)) return true; // The bottom is within the other - if (Between(YTop, otherParagraphLocation.YTop, otherParagraphLocation.YBottom)) return true; // the other top is within this one - if (Between(YBottom, otherParagraphLocation.YTop, otherParagraphLocation.YBottom)) return true;// I believe this is unnecessary - return false; - } - public void Merge(vlnParagraph otherParagraph) - { - if (StepLevel < otherParagraph.MyItemInfo.StepLevel) MyParagraph = otherParagraph; - YTop = Math.Min(YTop, otherParagraph.YVeryTop); - YBottom = Math.Max(YBottom, otherParagraph.YBottom); - StepLevel = Math.Max(StepLevel, otherParagraph.MyItemInfo.StepLevel); - } - public void Merge(ParagraphLocation otherParagraphLocation) - { - if (StepLevel < otherParagraphLocation.StepLevel) MyParagraph = otherParagraphLocation.MyParagraph; - YTop = Math.Min(YTop, otherParagraphLocation.YTop); - YBottom = Math.Max(YBottom, otherParagraphLocation.YBottom); - StepLevel = Math.Max(StepLevel, otherParagraphLocation.StepLevel); - } - } -} diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs1.bak b/PROMS/Volian.Print.Library/vlnParagraph.cs1.bak deleted file mode 100644 index 888dbd35..00000000 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs1.bak +++ /dev/null @@ -1,1995 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using System.Text.RegularExpressions; -using System.IO; -using iTextSharp.text.pdf; -using iTextSharp.text; -using Itenso.Rtf; -using Itenso.Rtf.Parser; -using Itenso.Rtf.Interpreter; -using Itenso.Rtf.Support; -using Volian.Controls.Library; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; - -namespace Volian.Print.Library -{ - public partial class vlnParagraphs : List - { - private vlnParagraph _Parent; - public vlnParagraph Parent - { - get { return _Parent; } - set { _Parent = value; } - } - public vlnParagraphs(vlnParagraph parent) - { - _Parent = parent; - } - public float Add(PdfContentByte cb, ItemInfoList itemInfoList, float xoff, float yoff, float yoffRight, int rnoLevel, int maxRNO, FormatInfo formatInfo) - { - int? bxIndex = null; - vlnBox box = null; - float yTop = yoff; - foreach (ItemInfo childItemInfo in itemInfoList) - { - // if this is a caution/note and it has a caution/note substep, do it before this caution/note, so that - // it comes above it. - if (childItemInfo.Cautions != null && (childItemInfo.IsCaution || childItemInfo.IsNote)) - yoff = Add(cb, childItemInfo.Cautions, xoff, yoff, yoffRight, rnoLevel, maxRNO, formatInfo); - if (childItemInfo.Notes != null && (childItemInfo.IsCaution || childItemInfo.IsNote)) - yoff = Add(cb, childItemInfo.Notes, xoff, yoff, yoffRight, rnoLevel, maxRNO, formatInfo); - int? bxIndx = childItemInfo.FormatStepData==null?-1:childItemInfo.FormatStepData.StepLayoutData.STBoxindex; - if (bxIndx != -1 && (bxIndex != bxIndx || childItemInfo.FormatStepData.BoxIt)) - { - if (childItemInfo.FormatStepData.BoxIt) // this is a boxed HLS - { - box = new vlnBox(); - box.MyBox = new Box(); - box.DefBox = vlnBox.BoxThin; - StepSectionLayoutData ssld = formatInfo.MyStepSectionLayoutData; - int colR = int.Parse(formatInfo.MyStepSectionLayoutData.ColRTable.Split(",".ToCharArray())[childItemInfo.ColumnMode]); - int widS = vlnPrintObject.ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, maxRNO); - box.DefEnd = (float)(ssld.ColS + colR + widS + (60/4.8)); - box.YOffset = yoff - .75F * vlnPrintObject.SixLinesPerInch; - } - else if (bxIndex == null) // First boxed step - { - box = new vlnBox(); - box.MyBox = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (box.MyBox != null) - { - box.YOffset = yoff; - int ln = 1; // a format flag determines whether there is a space before the note/caution. - if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++; - yoff += ln * vlnPrintObject.SixLinesPerInch; - } - } - else // Change Box Style - { - if (box != null) box.Height = yoff - box.YOffset; // new height, with children - box = new vlnBox(); - box.MyBox = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - box.YOffset = yoff; - int ln = 1; // a format flag determines whether there is a space before the note/caution. - if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++; - yoff += ln * vlnPrintObject.SixLinesPerInch; - } - bxIndex = bxIndx; - } - if (childItemInfo is SectionInfo) formatInfo = (childItemInfo as SectionInfo).LocalFormat ?? formatInfo; - if (rnoLevel < maxRNO && childItemInfo.RNOs != null) yoff = Math.Max(yoff, yoffRight); - - - vlnParagraph para = new vlnParagraph(Parent, cb, childItemInfo, xoff, yoff, rnoLevel, maxRNO, formatInfo); - if (box != null && box.MyParent == null) - { - box.MyParent = para; - para.PartsContainer.Add(box); - } - Add(para); - // para.YBottomMost will have y for bottom of any substeps that are also enclosed in the box. - if (childItemInfo.IsStep && childItemInfo.MyHLS.FormatStepData.UseSmartTemplate && para.ChildrenBelow.Count>0 && para.ChildrenBelow[0].YBottomMost > para.YBottomMost) - yoff = para.ChildrenBelow[0].YBottomMost; - else - yoff = para.YBottomMost; - if (childItemInfo.FormatStepData != null && childItemInfo.FormatStepData.BoxIt) - { - box.Height = yoff - box.YOffset - (1.1F * vlnPrintObject.SixLinesPerInch); - box = null; // if doing boxed steps, only do single sibling at a time. - } - } - if (box != null && box.MyBox != null) - { - box.Height = yoff - box.YOffset; // new height, with children - yoff += 2 * vlnPrintObject.SixLinesPerInch; - } - return yoff; - } - public float ToPdf(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin) - { - foreach (vlnParagraph child in this) - { - yPageStart = child.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - } - return yPageStart; - } - } - public partial class vlnParagraph : vlnPrintObject - { - private vlnTable _MyGrid; - public vlnTable MyGrid - { - get { return _MyGrid; } - set { _MyGrid = value; } - } - public float SectYPageStart = 0; - private bool _IsWordDocPara = false; - public bool IsWordDocPara - { - get { return _IsWordDocPara; } - set { _IsWordDocPara = value; } - } - public float ParagraphToPdf(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin) - { - if (Processed) return yPageStart; - //float localYPageStart = yPageStart; - Processed = true; - if (_PartsAbove != null && _PartsAbove.Count > 0) yPageStart = PartsAbove.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - if (MyItemInfo.IsHigh && MyItemInfo.MyDocStyle.SpecialStepsFoldout) yPageStart -= SixLinesPerInch; - float yLocation = CalculateYOffset(yPageStart, yTopMargin); - if (MyItemInfo.HasChangeBar && MyPageHelper.ChangeBarDefinition.MyChangeBarType != PrintChangeBar.Without) MyPageHelper.AddChangeBar(DoChangeBar(cb, MyItemInfo, MyPageHelper, XOffset, yLocation, MyPageHelper.MaxRNO, MyItemInfo.ActiveFormat), cbMess); - float retval = yLocation; - - if (MyItemInfo.IsFigure) - { - yLocation -= (SixLinesPerInch * MyPageHelper.YMultiplier); - if (ImageText != null) - retval = DrawFigure(cb, yBottomMargin, yLocation); - else - retval = DrawText(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation); - - } - else if (!MyItemInfo.IsStepSection - || (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout)) // Don't ouput the Step Section title - { - bool doprint = true; - // if this is a section, then check the section config for printable header too. - if (MyItemInfo.IsSection) - { - SectionConfig sch = MyItemInfo.MyConfig as SectionConfig; - if (!(MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout) - && - ((sch != null && sch.Section_PrintHdr != "Y") || !MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections)) doprint = false; - } - if (MyItemInfo.MyContent.MyGrid != null) - retval = DrawGrid(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation); - else - if (doprint)retval = DrawText(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation); - if (MyItemInfo.IsHigh) - { - MyPageHelper.PageBookmarks.Add(MyItemInfo, MyItemInfo.MyTab.CleanText + " " + MyItemInfo.DisplayText, - new PdfDestination(PdfDestination.FITBH, yLocation + YVeryTop - YTopMost + SixLinesPerInch)); - } - } - if (MyItemInfo.IsSection) - { - SectionConfig sc = MyItemInfo.MyConfig as SectionConfig; - if (sc != null && sc.Section_TOC == "Y") - { - string tocKey = string.Format("TOC{0}", MyItemInfo.ItemID); - if (MyPageHelper.MyTOCPageCounts.ContainsKey(tocKey)) - { - PageCount pc = MyPageHelper.MyTOCPageCounts[tocKey]; - pc.Total = MyPageHelper.CurrentPageNumber; - pc.DrawTemplates(); - } - } - } - //Height = yLocation - retval; - if (_PartsLeft != null && _PartsLeft.Count > 0) yPageStart = PartsLeft.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - if (_PartsRight != null && _PartsRight.Count > 0) yPageStart = PartsRight.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - if (_PartsBelow != null && _PartsBelow.Count > 0) yPageStart = PartsBelow.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - if (_PartsContainer != null && _PartsContainer.Count > 0) yPageStart = PartsContainer.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - - //if (localYPageStart != yPageStart) DebugText.WriteLine("ParToPdf-yPagestartDiff:{0},{1},{2}", MyItemInfo.ItemID, localYPageStart, yPageStart); - return yPageStart; - } - - private float DrawGrid(PdfContentByte cb, ref float yPageStart, float yTopMargin, float yBottomMargin, ref float yLocation) - { - //DebugText.WriteLine("{0},'{1}','{2}','<>'", MyItemInfo.ItemID, MyItemInfo.ShortPath, FormattedText); - DebugText.WriteLine("{0},'{1}','{2}','<>',{3}", MyItemInfo.ItemID, MyItemInfo.ShortPath,MyItemInfo.MyContent.Text,XOffset); - float retval = Rtf2Pdf.GridAt(cb, MyGrid, XOffset, yLocation, Width, 100, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.Contains("Borderless")); - return retval; - } - - private float DrawText(PdfContentByte cb, ref float yPageStart, float yTopMargin, float yBottomMargin, ref float yLocation) - { - DebugText.WriteLine("{0},'{1}','{2}','<>'", MyItemInfo.ItemID, MyItemInfo.DBSequence, FormattedText); - //Console.WriteLine("{0},{1},'{2}','<>'", MyItemInfo.ItemID, MyItemInfo.DBSequence, IParagraph.Content); - float retval = yLocation; - // Check if only one line, i.e. "Height < (1.2F * IParagraph.Leading". The Leading can be for six or seven lines per inch, so the 1.2 - // multiplier accounts for both. - if (!MyItemInfo.IsStepSection && MyItemInfo.FormatStepData.CenterOneLineOnly && MyItemInfo.MyPrevious == null && MyItemInfo.NextItem == null && Height < (1.2F * IParagraph.Leading)) - IParagraph.Alignment = Element.ALIGN_CENTER; - if (!MyItemInfo.IsStepSection && MyItemInfo.FormatStepData.StepPrintData.Justify == "Center") - IParagraph.Alignment = Element.ALIGN_CENTER; - retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo, yBottomMargin); - if (retval == 0) // problem occurred - paragraph was not able to be printed on page - { // pagination logic needs to be fixed. - ForcePagination(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation, ref retval); - } - return retval; - } - private static List myAttributes =new List(); - private static void AddAttribute(string attr) - { - if (myAttributes.Contains(attr)) - return; - //Console.WriteLine("Attribute = \"{0}\"", attr); - myAttributes.Add(attr); - } - private void CheckAttributes(System.Collections.Hashtable attributes) - { - foreach (string attr in attributes.Keys) - { - AddAttribute(attr); - } - } - private string FormattedText - { - get - { - bool subscript = false; - //if (_MyItemInfo.ItemID == 467) - // Console.Write(""); - StringBuilder sb = new StringBuilder(); - //if (IParagraph.Chunks.Count > 1) - // Console.WriteLine("{0} Chunks", IParagraph.Chunks.Count); - foreach (Chunk chk in IParagraph.Chunks) - { - string prefix = ""; - string suffix = ""; - CheckAttributes(chk.Attributes); - if (chk.Font.BaseFont != null && chk.Font.BaseFont.PostscriptFontName.ToUpper().Contains("BOLD")) - { - prefix += "\xD5"; - suffix = "\xD6" + suffix; - } - if (chk.Attributes.ContainsKey("SUBSUPSCRIPT")) - { - float sup = (float)(chk.Attributes["SUBSUPSCRIPT"]); - if (sup > 0) - { - prefix += "\xA6"; - suffix = "\xD1" + suffix; - } - else if (sup < 0) - { - prefix += "\xD1"; - suffix = "\xA6" + suffix; - } - - } - if (chk.Attributes.ContainsKey("UNDERLINE")) - { - prefix += "\x16"; - suffix = "\x16" + suffix; ; - } - sb.Append(prefix + chk.Content + suffix); - } - string retval = sb.ToString(); - retval = retval.Replace("\xD1\xA6", "");// Remove Multiple Superscript commands in a row - retval = retval.Replace("\xA6\xD1", "");// Remove Multiple Superscript commands in a row - retval = retval.Replace("\xD6\xD5", ""); - retval = retval.Replace("\xD6\x16\xD5", "\x16"); - return retval; - } - } - //private bool _TextDebug = false; //true; this will turn on a writeline with debug in DrawText() - private float DrawFigure(PdfContentByte cb, float yBottomMargin, float yLocation) - { - float retval = yLocation; - if (ImageText != null) - { - string[] vals = ImageText.Split("\n".ToCharArray()); - ProcedureInfo proc = MyItemInfo.MyProcedure; - DocVersionInfo dvi = proc.ActiveParent as DocVersionInfo; - ROFstInfo rofst = dvi.DocVersionAssociations[0].MyROFst; - ROImageInfo roImage = ROImageInfo.GetByROFstID_FileName(rofst.ROFstID, vals[0]); - if (roImage != null) - { - iTextSharp.text.Image it_image = iTextSharp.text.Image.GetInstance(roImage.Content); - retval = Rtf2Pdf.FigureAt(cb, it_image, XOffset + MyItemInfo.FormatStepData.Font.CharsToTwips, yLocation, Width * MyPageHelper.YMultiplier, Height * MyPageHelper.YMultiplier, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.Contains("Borderless")); - } - } - return retval; - } - private string DebugInfo - { - get - { - return string.Format("DebugID = {0}, ID={1} Type={2} TypeName='{3}' StepLevel={4} DBSequence={5}", DebugId, MyItemInfo.ItemID, MyItemInfo.FormatStepType, MyItemInfo.FormatStepData==null?"NoStepData":MyItemInfo.FormatStepData.Type, MyItemInfo.StepLevel, MyItemInfo.DBSequence); - } - } - public override float ToPdf(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin) - { - if (IsWordDocPara) - { - PdfReader tmp = null; - string tmpstr = null; - SectionInfo si = SectionInfo.Get(MyItemInfo.ItemID); - cb.PdfDocument.NewPage(); - MyPageHelper.MyPromsPrinter.CreateWordDocPdf(cb, si, ref tmp, ref tmpstr); - Processed = true; - return yPageStart; - } - float yLocalypagestart = yPageStart; - // yPageStart is offset into roll; YTopMost is offset of topmost of this paragraph. - float yLocation = yPageStart - YTopMost; - DebugText.WriteLine("ToPdf1:{0},'{1}',{2},{3},{4},{5}", MyItemInfo.ItemID, MyItemInfo.ShortSearchPath, XOffset, yLocation, yPageStart, YTopMost); - int paginate = Paginate(yLocation, yTopMargin, yBottomMargin); - bool firstHighLevelStep = MyItemInfo.IsHigh && (MyItemInfo.MyPrevious == null); - switch (paginate) - { - case 0: // No page break - if (MyItemInfo.IsSection) - { - SectionInfo si = MyItemInfo as SectionInfo; - MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null); - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - } - break; - case 1: // Break on High Level Step - OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); - cb.PdfDocument.NewPage(); - DebugText.WriteLine("Paginate1"); - if (MyItemInfo.IsSection) - { - SectionInfo si = MyItemInfo as SectionInfo; - MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null); - } - // Only do foldout page if not done for section break, i.e. check the there's a previous step. - if (MyItemInfo.MyPrevious != null && (MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.UseSectionFoldout) != 0) - PromsPrinter.DoFoldoutPage(cb, "HLS", MyPageHelper.TextLayer, MyPageHelper); - - yPageStart = yTopMargin + YTopMost; - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - MyPageHelper.YMultiplier = 1; - break; - case 2: // Break within a Step - OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); - DocStyle docstyle = MyItemInfo.MyDocStyle; - string myMsg = docstyle.Continue.Bottom.Message; - if (myMsg != null && myMsg != "") - { - if (myMsg.IndexOf(@"%d") > -1) - myMsg = myMsg.Replace(@"%d", MyItemInfo.MyHLS.MyTab.CleanText.Trim()); - if (myMsg.IndexOf(@"%2d") > -1) - myMsg = myMsg.Replace(@"%2d", MyItemInfo.MyHLS.MyTab.CleanText.Trim(" .".ToCharArray()).PadLeft(2)); - float msg_yLocation = 0; - if (myMsg.Contains("{par}")) - { - myMsg = myMsg.Replace("{par}", ""); - msg_yLocation = -SixLinesPerInch; - } - switch (docstyle.Continue.Bottom.Location) - { - case E_ContBottomLoc.EndOfText: // place continue string at end of text - case E_ContBottomLoc.BtwnTextAndBottom: // place continue string between end of text & bottom of page - Console.WriteLine("Not done yet"); - break; - case E_ContBottomLoc.BottomOfPage: // place continue message at bottom of page - //msg_yLocation = yBottomMargin + 2 * SixLinesPerInch + (float)docstyle.Layout.FooterLength; // 2 lines above bottom margin - msg_yLocation = msg_yLocation + yBottomMargin + (float)docstyle.Layout.FooterLength; - break; - default: - Console.WriteLine("**** BOTTOM CONTINUE MESSAGE NOT CODED*****"); - break; - } - MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Bottom.Margin ?? 0, msg_yLocation, docstyle.Continue.Bottom.Font);// MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font); - } - cb.PdfDocument.NewPage(); - DebugText.WriteLine("Paginate2"); - if ((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.UseSectionFoldout) != 0) - PromsPrinter.DoFoldoutPage(cb, "Break within Step", MyPageHelper.TextLayer, MyPageHelper); // temporary foldout - - // If there is a box, adjust the yTopMost to include it. - float yTopMost = YTopMost; - //if (YVeryTop < yTopMost) Console.WriteLine("{0},{1},{2}", MyItemInfo.DBSequence, yTopMost, YVeryTop); - yTopMost = Math.Min(yTopMost,YVeryTop); - yPageStart = yTopMargin + yTopMost;// -2 * SixLinesPerInch; - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - if (EmptyTopMostPart) yPageStart += SixLinesPerInch; - myMsg = docstyle.Continue.Top.Message; - if (myMsg != null && myMsg != "") - { - yPageStart -= 2 * SixLinesPerInch;// Allow two lines for top continue message - if (myMsg.IndexOf(@"%d") > -1) - myMsg = myMsg.Replace(@"%d", MyItemInfo.MyHLS.MyTab.CleanTextNoSymbols.Trim(" .".ToCharArray())); - MyPageHelper.TopMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Top.Margin ?? 0, yTopMargin + 0.1F, docstyle.Continue.Top.Font);// MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font); - } - MyPageHelper.YMultiplier = 1; - break; - case 3: // Break on High Level Step (SevenLinesPerInch) - if (!firstHighLevelStep) - { - OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); - cb.PdfDocument.NewPage(); // HLS (7 lpi) breakif (MyItemInfo.IsSection) - DebugText.WriteLine("Paginate3"); - if (MyItemInfo.IsSection) - { - SectionInfo si = MyItemInfo as SectionInfo; - MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null); - } - if ((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.UseSectionFoldout) != 0) - PromsPrinter.DoFoldoutPage(cb, "HLS (7 lpi) break", MyPageHelper.TextLayer, MyPageHelper); - } - if (MyItemInfo.MyParent != null && MyItemInfo.MyParent.IsStepSection && - MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout) - yPageStart = yPageStart; // if printing the section title, we already have the y location - else - yPageStart = yTopMargin + YTopMost; - MyPageHelper.YMultiplier = _SevenLinesPerInch / SixLinesPerInch; - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - break; - } - yPageStart = ChildrenAbove.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - yPageStart = ChildrenLeft.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - - // If this is a high level step, the format may have specified that the step should be printed with - // extra space between it and the previous step. The 16bit code uses the value of the extra space - // from the high level step format regardless of what type of high level step it is. Also, if there - // is caution or note above it, this space is not added: - yPageStart -= ((!MyItemInfo.IsHigh || ChildrenAbove == null) ? 0 : MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[2].StepLayoutData.STExtraSpace ?? 0); - yPageStart = ParagraphToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - yPageStart = ChildrenRight.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - yPageStart = ChildrenBelow.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - - if (MyItemInfo.IsHigh && MyItemInfo.NextItem == null) // last hls, add the 'end' message, if there is one - { - DocStyle docstyle = MyItemInfo.MyDocStyle; - string myMsg = (docstyle.End == null) ? null : docstyle.End.Message; - if (myMsg != null) - { - // If the flag is 0 or 1, just put the end message out right below this vlnParagraph: - float msg_yLocation = CalculateYLocation(yPageStart - YBottomMost, yTopMargin); - - // use the 'flag' to position the message. - if (docstyle.End.Flag > 2) // >2 position at an absolute location defined by docstyle.End.Flag. - { - msg_yLocation = yTopMargin - (float)(docstyle.End.Flag * SixLinesPerInch); - } - - if (myMsg.Contains("{Section Number}")) myMsg = myMsg.Replace("{Section Number}", MyItemInfo.ActiveSection.DisplayNumber); - - // center the message. - float wtpm = (float)docstyle.Layout.PageWidth - (float)docstyle.Layout.LeftMargin; - float centerpos = XOffsetBox + (float)docstyle.Layout.LeftMargin + (wtpm - (myMsg.Length * MyItemInfo.FormatStepData.Font.CharsToTwips)) / 2; - MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, centerpos, msg_yLocation, docstyle.End.Font); - } - } - if (yLocalypagestart != yPageStart) DebugText.WriteLine("ToPdf-yPagestartDiff:{0},{1},{2}", MyItemInfo.ItemID, yLocalypagestart, yPageStart); - return yPageStart; - } - private vlnParagraph TopMostChild - { - get - { - if (ChildrenAbove.Count>0) return ChildrenAbove[0].TopMostChild; - return this; - } - } - private bool EmptyTopMostPart - { - get - { - if (TopMostChild.PartsAbove.Count == 0) return false; - foreach (vlnPrintObject po in TopMostChild.PartsAbove) - { - vlnHeader hd = po as vlnHeader; - if (hd == null) return false; - if (hd.Text != "") return false; - } - return true; - } - } - private void OutputOtherPageSteps(PdfContentByte cb, float YTopMost, float yPageStart, float yTopMargin, float yBottomMargin) - { - // Find any items remaining in MyPageHelper.MyParagraphs that should be printed on this page. - vlnParagraphs process = new vlnParagraphs(null); - foreach (vlnParagraph vPara in MyPageHelper.MyParagraphs.Values) - { - //if (!vPara.Processed && ((vPara.YOffset + vPara.Height) < YTopMost)) - if (!vPara.Processed && ((vPara.YOffset) < YTopMost)) - process.Add(vPara); - } - foreach (vlnParagraph vPara in process) - { - vPara.ParagraphToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - } - } - private float _YVeryTop = -1; - public float YVeryTop - { - get - { - if (_YVeryTop == -1) - { - _YVeryTop = YTop; - _YVeryTop = VeryTop(PartsAbove,_YVeryTop); - _YVeryTop = VeryTop(PartsContainer,_YVeryTop); - } - return _YVeryTop; - } - } - - private float VeryTop(vlnPrintObjects parts, float yVeryTop) - { - if (parts != null) - foreach (vlnPrintObject part in parts) - if (part.YOffset < yVeryTop) - yVeryTop = part.YOffset; - return yVeryTop; - } - /// - /// This gets the height of the step with it's Caution's, Notes and potentially any First Substeps - /// - /// - private float GetFirstPieceSize() - { - vlnParagraph paraLast = GetFirstPieceLastPart(); - float retval = (paraLast.YBottom) - YTopMost; - //Console.WriteLine(MyItemInfo.DBSequence); - return retval; - } - public override float YBottom - { - get - { - float bottom = YOffset + Height; - if (PartsBelow != null) - { - foreach (vlnPrintObject part in PartsBelow) - { - float partBottom = part.YBottom; - bottom = Math.Max(partBottom, bottom); - } - } - return bottom; - } - } - public float YBottomText - { - get - { - return YOffset + Height; - } - } - private vlnParagraph GetFirstPieceLastPart() - { - vlnParagraph para = this; - if (!MyItemInfo.ActiveFormat.MyStepSectionLayoutData.PaginateOnFirstSubstep && ChildrenBelow != null && ChildrenBelow.Count > 0) - { - para = ChildrenBelow[0].GetFirstPieceLastPart(); - } - if (ChildrenRight != null && ChildrenRight.Count > 0) - { - foreach(vlnParagraph paraRight in ChildrenRight) - { - vlnParagraph paraRightLast = paraRight.GetFirstPieceLastPart(); - if (paraRightLast.YBottom > para.YBottom) - para = paraRightLast; - } - } - return para; - } - /// - /// Find items from previous page (yLocation less than yTop) and remove them from the list. - /// yTop is the new starting location on the next page for this step. - /// - /// - /// - private void RemoveProcessedParagraphs(StepLevelList myList, float yTop) - { - // the two CleanUpLists are used to remove items from - // the original list because list items cannot be removed in a - // 'foreach'. - List CleanupListStepLevel = new List(); - foreach(int stepLevel in myList.Keys) - { - List CleanupListYLocation = new List(); - SortedList AdjustYLocation = new SortedList(); - foreach (float yLocation in myList[stepLevel].Keys) - { - if (-yLocation <= yTop) - CleanupListYLocation.Add(yLocation); - else - AdjustYLocation.Add(-yLocation, yLocation); // order in ascending order - } - foreach (float yLocation in CleanupListYLocation) - myList[stepLevel].Remove(yLocation); - foreach (float yLocation in AdjustYLocation.Keys) - { - vlnParagraph para = myList[stepLevel][-yLocation]; - myList[stepLevel].Remove(-yLocation); - // shift yLocation by yTop to work with items whose locations - // are defined from the top of the new page rather than - // from the beginning of the step. - // Note that yLocation is negative to have items in descending - // order so that adding yTop decrements their values. - myList[stepLevel].Add(yTop-yLocation, para); - } - if (myList[stepLevel].Count == 0) - CleanupListStepLevel.Add(stepLevel); - } - foreach (int stepLevel in CleanupListStepLevel) - myList.Remove(stepLevel); - } - /// - /// Builds a list of paragraphs by StepLevel and yLocation in descending order. - /// - /// - /// - private void BuildLocationList(float yTopMost, ParagraphLocations myLocations) - { - foreach (vlnParagraph child in ChildrenAbove) - child.BuildLocationList(yTopMost, myLocations); - foreach (vlnParagraph child in ChildrenLeft) - child.BuildLocationList(yTopMost, myLocations); - - // Add a list entry consisting of StepLevel, yoffset from the beginning of this step, paragraph itself - myLocations.Add(this, yTopMost); - - foreach (vlnParagraph child in ChildrenRight) - child.BuildLocationList(yTopMost, myLocations); - foreach (vlnParagraph child in ChildrenBelow) - child.BuildLocationList(yTopMost, myLocations); - } - private int COL_WID_ADJ = 6; // adjusts for incorrect use of WidSTable when breaking a line (it breaks 6 chars too short) - public vlnParagraph(vlnParagraph parent, PdfContentByte cb, ItemInfo itemInfo, float xoff, float yoff, int rnoLevel, int maxRNO, FormatInfo formatInfo) - { - float savCheckListBottomMost = 0; - //int[] problemIDs = { 889 }; - //List lProblemIDs = new List(problemIDs); - //if (lProblemIDs.Contains(itemInfo.ItemID)) - // Console.WriteLine("Found Item {0}", itemInfo.ItemID);formatInfochecko - MyParent = parent; - // The following code determines the last paragraph for an RNO - // MyTopRNO finds the Top paragraph for an RNO - if (itemInfo.IsInRNO) - { - if (rnoLevel <= maxRNO && itemInfo.IsRNOPart) // Not top level RNO - MyTopRNO = this; - else - MyTopRNO = MyParent.MyTopRNO; - if(MyTopRNO != null) MyTopRNO.LastRNO = this; - } - MyContentByte = cb; - MyPageHelper.MyParagraphs.Add(itemInfo.ItemID, this); - MyItemInfo = itemInfo; - XOffset = xoff; - if (!MyItemInfo.IsStep && !MyItemInfo.IsStepSection) - { - IsWordDocPara = true; - // special case - this is a 'Word Doc' paragraph. The Processed flag is used to know - // that steps need put out on a page for the pagination logic, and since there are no steps - // we don't want to have to worry about putting this out for pagination logic. - Processed = true; - return; - } - // Set any position adjustment (defined in the format on a per type basis) - yoff += (MyItemInfo.FormatStepData == null) ? 0 : MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace ?? 0; - YTopMost = YOffset = yoff; - vlnTab mytab = null; - bool doSectTab = false; - // if this substep has a caution or note as its parent, then there may have been a special indent done on the - // substep... check the CautionOrNoteSubstepIndent value, this is the additional indent amount in number - // of characters. - if (itemInfo.MyParent.IsCaution || itemInfo.MyParent.IsNote) - XOffset += 72 * (itemInfo.FormatStepData.CautionOrNoteSubstepIndent == null ? 0 : (float)itemInfo.FormatStepData.CautionOrNoteSubstepIndent / (float)itemInfo.FormatStepData.Font.CPI); - - if (itemInfo.IsStep && itemInfo.MyHLS.FormatStepData.UseSmartTemplate && - itemInfo.FormatStepData.StepLayoutData.AlignWithParentTab - || (itemInfo.Steps != null && itemInfo.Steps.Count > 0 && itemInfo.Steps[0].FormatStepData.StepLayoutData.AlignWithParentTab)) - itemInfo.MyTab = null; - if (itemInfo.MyTab != null && itemInfo.MyTab.Text != null && itemInfo.MyTab.Text != "") - { - float localXOffset = XOffset; - bool doprint = true; - if (itemInfo.IsSection) - { - SectionConfig sch = MyItemInfo.MyConfig as SectionConfig; - if (!(MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout) - && - ((sch != null && sch.Section_PrintHdr != "Y") || !MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections)) doprint = false; - } - if (doprint && itemInfo.IsSection && !itemInfo.MyDocStyle.CancelSectTitle && itemInfo.MyTab.Text.ToUpper() != "FOLDOUT") - { - doSectTab = true; - if (itemInfo.IsStepSection && formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Just == "PSLeft") - { - float offset = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - if (formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos != null) - { - // determine level of metasections. This level will be used to calculate the - // indent. DO I NEED THIS HERE???? - int level = 0; - ItemInfo iilvl = itemInfo; - while (!iilvl.IsProcedure) - { - level++; - iilvl = iilvl.MyParent; - } - level = level <= 2 ? 1 : level - 1; - if (level == 1) - offset += (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos; - else - offset += (level-1) * ((float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos-(float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos); - } - localXOffset = offset; - } - } - if (!itemInfo.IsSection || doSectTab) - { - mytab = new vlnTab(cb, this, itemInfo.MyTab.Text, itemInfo.MyTab.CleanText, localXOffset, yoff, itemInfo.MyTab.MyFont, doSectTab, StepRTB.MySymbolFontName, itemInfo.MyTab.RemovedStyleUnderline); - PartsLeft.Add(mytab); - if (mytab.MyMacro != null) PartsLeft.Add(mytab.MyMacro); - } - } - AdjustWidth(itemInfo, maxRNO, formatInfo, mytab); - AdjustXOffsetForTab(itemInfo, maxRNO, formatInfo, mytab); - if (itemInfo.Cautions != null && !(itemInfo.IsCaution || itemInfo.IsNote)) - yoff = ChildrenAbove.Add(cb, itemInfo.Cautions, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - if (itemInfo.Notes != null && !(itemInfo.IsCaution || itemInfo.IsNote)) - yoff = ChildrenAbove.Add(cb, itemInfo.Notes, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - YTop = yoff; - if (itemInfo.MyHeader != null && itemInfo.MyHeader.Text != null && !doSectTab) - yoff += SetHeader(this, cb, itemInfo, formatInfo); - YOffset = yoff; - if (mytab != null && mytab.SeparateBullet) - { - string identB = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.IdentB; - vlnText myBullet = new vlnText(cb, this, identB, identB, XOffset - 12, YOffset, MyItemInfo.FormatStepData.TabData.Bullet.Font); - myBullet.Rtf = myBullet.Rtf.Replace("\u25CF", @"\f1\u9679?\f0 "); - PartsLeft.Add(myBullet); - } - if (itemInfo.IsRNOPart) - { - // there may be other places that double space, but this supports it for RNOs (the DoubleRNOspace flag) - if (rnoLevel > maxRNO && itemInfo.FormatStepData.DoubleSpace) yoff = YOffset = yoff + SixLinesPerInch; - } - AddMacros(itemInfo, mytab); - if (mytab != null) - { - mytab.YOffset = yoff; - if (mytab.MyMacro != null) mytab.MyMacro.YOffset = yoff; - } - float yForCheckoff = yoff; //0; - default checkoff row is same as FIRST line of text - // if dropCheckoff is true, then the checkoff is place on the same of row as the LAST line of text - bool dropCheckoff = itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.DropCheckOff; - if (itemInfo.MyContent.MyGrid != null) - { - VlnFlexGrid myFlexGrid = new VlnFlexGrid(1,1); - myFlexGrid.LoadGrid(itemInfo); - MyGrid = new vlnTable(myFlexGrid, cb); - Height = MyGrid.Height; - Width = MyGrid.Width; - //yForCheckoff = yoff + Height - SixLinesPerInch; - if (dropCheckoff) - yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text - yoff += (Height + (2 * SixLinesPerInch)); - CalculateXOffset(itemInfo, maxRNO, formatInfo); - } - else if (itemInfo.IsFigure) // if a figure we've got to determine the size: - { - string erMsg = null; - if (itemInfo.MyContent.Text != null) - { - ProcedureInfo proc = itemInfo.MyProcedure; -// DocVersionInfo dvi = proc.ActiveParent as DocVersionInfo; - DocVersionInfo dvi = proc.MyDocVersion; - ROFstInfo rofst = dvi.DocVersionAssociations[0].MyROFst; - rofst.docVer = dvi; - ROFSTLookup lookup = rofst.ROFSTLookup; - string linkInfoText = itemInfo.MyContent.Text.Replace(@"\v ", ""); - if (linkInfoText.Contains("?")) - erMsg = "RO was not found during data migration."; - else - { - Match m = Regex.Match(linkInfoText, @"(.*)[#]Link:([A-Za-z]*):(.*)"); - string[] subs = m.Groups[3].Value.Split(" ".ToCharArray()); - string roid = subs[1]; - string val = lookup.GetRoValue(subs[1]); - if (val == null) val = lookup.GetRoValue(subs[1].Substring(0, 12)); - if (val != null) - { - string[] vals = val.Split("\n".ToCharArray()); - Width = Int32.Parse(vals[3], System.Globalization.NumberStyles.AllowHexSpecifier) * MyItemInfo.FormatStepData.Font.CharsToTwips; - int lines = Int32.Parse(vals[2], System.Globalization.NumberStyles.AllowHexSpecifier); - Height = lines * SixLinesPerInch; - //yForCheckoff = yoff + Height - SixLinesPerInch; - if (dropCheckoff) - yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text - yoff += (Height + (2 * SixLinesPerInch)); - - try - { - ROImageInfo roImage = ROImageInfo.GetByROFstID_FileName(rofst.ROFstID, vals[0]); - if (roImage != null) - ImageText = val; - else - erMsg = string.Format("Image {0} does not exist.", vals[0]); - } - - catch (Exception ex) - { - erMsg = string.Format("Image {0} does not exist, error = {1}.", vals[0], ex.Message); - } - } - } - if (erMsg != null) Rtf = GetRtf(erMsg, itemInfo.ActiveFormat.PlantFormat.FormatData.Font); - CalculateXOffset(itemInfo, maxRNO, formatInfo); - } - } - else - { - Rtf = GetRtf(itemInfo); - // Need the following with some modifications for WCNCKL format: - if (Rtf.Contains("{Backspace}")) - { - XOffset -= 22; - Width += 24; - Rtf = Rtf.Replace("{Backspace}", ""); - } - if (itemInfo.IsStep && itemInfo.MyHLS.FormatStepData.UseSmartTemplate) - { - if (itemInfo.FormatStepData.StepLayoutData.AlignWithParentTab - || (itemInfo.Steps != null && itemInfo.Steps.Count > 0 && itemInfo.Steps[0].FormatStepData.StepLayoutData.AlignWithParentTab)) - { - int stplevl = TheStepLevel(itemInfo); - if (stplevl >= 0 && MyItemInfo.MyHLS.FormatStepData.VertPos[stplevl] > 0) - XOffset = float.Parse(MyItemInfo.MyHLS.FormatStepData.VertPos.Split(",".ToCharArray())[stplevl]) + (float)itemInfo.MyDocStyle.Layout.LeftMargin; - } - } - if (itemInfo.IsTablePart) // Not for grid, this is for old-style tables. - { - Width = GetTableWidth(cb, IParagraph, MyItemInfo.MyDocStyle.Layout.PageWidth); - CalculateXOffset(itemInfo, maxRNO, formatInfo); - } - else - if (itemInfo.FormatStepData != null && itemInfo.FormatStepData.StepPrintData != null) XOffset += (float)(itemInfo.FormatStepData.StepPrintData.PosAdjust ?? 0); - - bool printMetaHdr = false; - if (itemInfo.Steps != null && itemInfo.IsSection && itemInfo.Sections != null && itemInfo.Sections.Count > 0) - { - SectionConfig sc = itemInfo.MyConfig as SectionConfig; - if ((sc != null && sc.Section_PrintHdr == "Y") && itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) printMetaHdr = true; - } - - // If WCN checklists, the substeps are printed in a row, need to keep track of the 'longest' in - // y direction (bottommost) across the row. - if (itemInfo.IsStep && itemInfo.MyHLS.FormatStepData.UseSmartTemplate && (TheStepLevel(itemInfo)>0)) - { - // do I need to get max of savCheckListBottomMost & (yoff+Height+SixLinesPerInch) - savCheckListBottomMost = yoff + Height + SixLinesPerInch; - } - // Get Y offset for regular steps, or if section title is output or if not within row (not last column of - // text) for wcn checklist, i.e. . - if ((!itemInfo.IsStepSection && !itemInfo.MyHLS.FormatStepData.UseSmartTemplate) - || printMetaHdr || - (formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout) - // In WCN Checklist: I don't have children or if I have children the first child doesn't alignwithparent. - || (!itemInfo.IsStepSection && itemInfo.MyHLS.FormatStepData.UseSmartTemplate - && ((itemInfo.Steps == null || itemInfo.Steps.Count == 0) - || !itemInfo.Steps[0].FormatStepData.StepLayoutData.AlignWithParentTab))) - { - yoff += Height; - yoff += AdjustForBlankLines(); - if (dropCheckoff) - yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text - } - } - CheckOff co = itemInfo.GetCheckOffStep(); - if (co != null) - { - //float xloc_co = (float)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.XLocation + (float)itemInfo.MyDocStyle.Layout.LeftMargin; - float xloc_co = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.XLocation != null) - xloc_co += (float)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.XLocation; - PartsRight.Add(new vlnMacro(xloc_co, yForCheckoff, co.Macro)); - } - float yOffRight = yoff; - float RnoOffset = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO); - if (rnoLevel < maxRNO && itemInfo.RNOs != null) yOffRight = ChildrenRight.Add(cb, itemInfo.RNOs, XOffset + RnoOffset, YTop, YTop, rnoLevel + 1, maxRNO, formatInfo); - // Need code to determine if the table will overlap the Right Column if it does then - // use YOffRight rather than yoff - if (itemInfo.Tables != null) - { - bool aerTableOrFigure = itemInfo.FormatStepData.Type.Contains("AER"); - if(!aerTableOrFigure && itemInfo.RNOLevel == 0) // Centered Table - yoff = ChildrenBelow.Add(cb, itemInfo.Tables, XOffset, yOffRight, yOffRight, rnoLevel, maxRNO, formatInfo); - else // AER or RNO Table - yoff = ChildrenBelow.Add(cb, itemInfo.Tables, XOffset, yoff, yOffRight, rnoLevel, maxRNO, formatInfo); - } - - // Look for the meta section case where the 'Editable' flag is set to 'N', which means that - // these steps should not be printed: - bool printsteps = true; - if (itemInfo.Steps != null && itemInfo.IsSection && itemInfo.Sections!=null && itemInfo.Sections.Count>0) - { - SectionConfig sc = itemInfo.MyConfig as SectionConfig; - if (sc != null && sc.SubSection_Edit != "Y") printsteps = false; - } - - if (itemInfo.Steps != null && printsteps) yoff = ChildrenBelow.Add(cb, itemInfo.Steps, XOffset, yoff, yOffRight, rnoLevel, maxRNO, formatInfo); - if (itemInfo.Sections != null) yoff = ChildrenBelow.Add(cb, itemInfo.Sections, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - if (itemInfo.Procedures != null) yoff = ChildrenBelow.Add(cb, itemInfo.Procedures, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - if (rnoLevel >= maxRNO && itemInfo.RNOs != null) yoff = ChildrenBelow.Add(cb, itemInfo.RNOs, XOffset, yoff, yoff, rnoLevel + 1, maxRNO, formatInfo); - yoff = Math.Max(yoff, yOffRight); - // TODO - use RNOSepAfterAER flag too: - string tmpRnoSepStr = formatInfo.MyStepSectionPrintData.RNOSepString; - if (rnoLevel < maxRNO && itemInfo.RNOs != null && tmpRnoSepStr != null) - { - vlnParagraph rno = ChildrenRight[0]; - vlnParagraph bottomChild = BottomChild; - float xsep = MyHighLevelParagraph.XOffset + RnoOffset; - vlnRNOSeparator myRnoSep = new vlnRNOSeparator(this, cb, tmpRnoSepStr, xsep, yoff, formatInfo, bottomChild==null?true:bottomChild.MyItemInfo.HasChangeBar); - // TODO: May need to handle more than one RNO column for RNO Separator - if (rno.LastRNO.MyItemInfo.HasChangeBar == false && bottomChild != null && bottomChild.MyItemInfo.HasChangeBar) - bottomChild.PartsBelow.Add(myRnoSep); - else - rno.LastRNO.PartsBelow.Add(myRnoSep); - yoff += myRnoSep.Height + SixLinesPerInch; - } - YBottomMost = yoff; - - // For WCN Checklist, the substeps are in rows of data. The YBottomMost is the bottom most for - // the row. - if (savCheckListBottomMost != 0 && savCheckListBottomMost>YBottomMost) YBottomMost = savCheckListBottomMost; - } - - private int TheStepLevel(ItemInfo itemInfo) - { - if (itemInfo.IsHigh) return -1; - int lev = 0; - ItemInfo ii = itemInfo; - while (!ii.MyParent.IsHigh) - { - lev++; - ii = ii.MyParent; - } - return lev; - } - - private string SectionHasCheckOffHeader(ItemInfo itemInfo, ref VE_Font font) - { - // If the passed in itemInfo is not a section, get it's parent section. This may be a subsection, so - // it will be found here, versus using 'MyActiveSection'. - while (!itemInfo.IsSection) - { - itemInfo = itemInfo.MyParent; - } - // See if this section has a checkoffheading index - this value, if set is stored in the config field. - // -1 flags no entries in the format's CheckOffHeaderList & 0 flags the first - // entry which is always '{NO HEADING}'. So only continue if it's greater than 0. - SectionInfo si = SectionInfo.Get(itemInfo.ItemID); // sometimes the itemInfo isn't a section info - int sindx = si.CheckOffHeadingIndex(); - - // If there is a checkoff header for this section, see if this section has subsections. - // If this has a header but no subsections, put out the header. - // Else if this section has a header AND subsections, don't put it out... - // the subsection's checkoff header will be processed (or lack there of). - bool doCheckoffHeader = sindx > 0 && (itemInfo.Sections == null || itemInfo.Sections.Count == 0); - - // if doing it, then grab the string from the format.... CHECK if this works for subsection, it is - // getting ActiveSection which may return the top section, not subsections. - if (doCheckoffHeader && itemInfo.SectionCheckOffHeader != "") - { - font = itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font; - return itemInfo.SectionCheckOffHeader; - } - return null; - } - - private void DoCheckOffHeader(PdfContentByte cb, ItemInfo itemInfo, float yLocation, float yTopMargin, float yPageStart) - { - // CheckOffHeaders are handled in two different ways: - // 1) Where the pagelist item puts them - this is at the 'top' of the page, when the current section on the - // page has a checkoff header defined. Support for this is here AND in the VlnSvgPageHelper pagelist code. - // 2) If a continuous section, and it doesn't start at 'top' of the page, then the checkoff header is - // printed on the same line as the continuous section. Support for this is here, the check off header is added - // to the 'PartRight' off of the section's VlnParagraph. - - // First see if there is any checkoff data in the format file and that there - // is a pagelist item for the checkoff header. - if (itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffList.Count <= 0) return; - if (MyPageHelper.PageListCheckOffHeader == null) return; - - VE_Font font = null; - ItemInfo mySectionInfo = itemInfo.MyActiveSection; - ItemInfo mySubSectionInfo = itemInfo; - - // If the passed in itemInfo is not a section, get it's parent section. This may be a subsection, so - // it will be found here, versus using 'MyActiveSection' which is the topmost section. The passed in - // item may be a regular step, i.e. if a page break had occurred. - if (!itemInfo.IsSection) - { - while (!mySubSectionInfo.IsSection) - { - mySubSectionInfo = mySubSectionInfo.MyParent; - } - } - else - mySubSectionInfo = (mySectionInfo.Sections == null)?null:mySectionInfo.Sections[0]; - - if (mySectionInfo == mySubSectionInfo) mySubSectionInfo = null; - - // The following duplicates the 16bit logic. The 16bit logic only put out a header if: - // there is no subsection and section has a header (from config); - // OR there is a subsection and the first subsection has a header. - // For locating the header in 16bit logic: - // If no subsections, output with section - // If subsections and continuous section, put out on same line as subsection. (done here) - // If subsections and starts at top of page, (on top of page, use pagelist code in VlnSvgPageHelper) - - // Get SectionInfos to access specific section config items... - SectionInfo si = SectionInfo.Get(mySectionInfo.ItemID); - int sindx = si.CheckOffHeadingIndex(); - SectionInfo subi = mySubSectionInfo == null ? null : SectionInfo.Get(mySubSectionInfo.ItemID); - int subindx = subi==null?-1:subi.CheckOffHeadingIndex(); - - // if there is no subsections & the main section doesn't use a header OR - // if there is a subsection, & it does not use a header... Return. - if ((subi==null&&sindx < 1) || (subi!=null&&subindx<1)) return; - - // figure out location now: - // if step, it uses pagelist logic to locate it (this is a page break condition). - // if continuous, put out with subsection if there is one, otherwise section. - // otherwise, use pagelist logic. - bool usePageListCOHdr = false; - - if (itemInfo.IsStep) - usePageListCOHdr = true; - else if (subi == null) //no subsection - { - if ((yPageStart - YOffset) == yTopMargin) usePageListCOHdr = true; - } - else - { - if (mySectionInfo == itemInfo && ((yPageStart - YOffset) == yTopMargin)) usePageListCOHdr = true; - if (!usePageListCOHdr && mySubSectionInfo != itemInfo) return; - } - - // grab the string from the format, depending on whether it should get it from the section or subsection. - string cohead = (mySubSectionInfo!=null)?mySubSectionInfo.SectionCheckOffHeader:mySectionInfo.SectionCheckOffHeader; - if (cohead == "" || cohead == null) return; - - // PageListCheckOffHeader is an svgtext - but really we only need the x/y location for this (pagelist support) - // The actual text is from the checkoff header selection in the section config. - if (cohead != MyPageHelper.PageListLastCheckOffHeader) - { - font = mySectionInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font; - float chkOffY = CalculateYLocation(YTopMost, yTopMargin); - if (MyPageHelper.YMultiplier != 1) - { - chkOffY = -1 + yTopMargin - (yTopMargin - yLocation) * MyPageHelper.YMultiplier; - if (Rtf != null) - IParagraph.Leading = _SevenLinesPerInch; - } - if (!usePageListCOHdr) - { - vlnText myCOHead = new vlnText(cb, this, cohead, cohead, MyPageHelper.PageListCheckOffHeader.X.Value + (float)MyItemInfo.MyDocStyle.Layout.LeftMargin, chkOffY, font); - PartsRight.Add(myCOHead); - } - else - MyPageHelper.PageListTopCheckOffHeader = cohead; - MyPageHelper.PageListLastCheckOffHeader = cohead; - } - } - internal vlnParagraph BottomChild - { - get - { - float bottomChildYBottomText = YBottomText; - vlnParagraph bottomChild = this; - foreach (vlnParagraph child in ChildrenRight) - { - vlnParagraph grandChild = child.BottomChild; - if (grandChild != null && grandChild.YBottomText > bottomChildYBottomText) bottomChild = grandChild; - if (grandChild != null && grandChild.YBottomText == bottomChildYBottomText && grandChild.MyItemInfo.HasChangeBar) bottomChild = grandChild; - bottomChildYBottomText = bottomChild.YBottomText; - } - foreach (vlnParagraph child in ChildrenBelow) - { - vlnParagraph grandChild = child.BottomChild; - if (grandChild != null && grandChild.YBottomText > bottomChildYBottomText) bottomChild = grandChild; - if (grandChild != null && grandChild.YBottomText == bottomChildYBottomText && grandChild.MyItemInfo.HasChangeBar) bottomChild = grandChild; - bottomChildYBottomText = bottomChild.YBottomText; - } - return bottomChild; - } - } - private void CalculateXOffset(ItemInfo itemInfo, int maxRNO, FormatInfo formatInfo) - { - bool aerTableOrFigure = itemInfo.FormatStepData.Type.Contains("AER"); - vlnParagraph hls1 = MyParent; - while (hls1.MyParent != null && !hls1.MyItemInfo.IsHigh) hls1 = hls1.MyParent; - float colR = float.Parse(formatInfo.MyStepSectionLayoutData.ColRTable.Split(",".ToCharArray())[itemInfo.ColumnMode]); - float xLowerLimit = hls1.XOffset; - float xUpperLimit = hls1.XOffset + hls1.Width + colR * itemInfo.ColumnMode; - float TableCenterPos = float.Parse(formatInfo.MyStepSectionLayoutData.TableCenterPos.Split(",".ToCharArray())[itemInfo.ColumnMode]); - if (formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel) - { - float pageWidth = ((float)itemInfo.MyActiveSection.MyDocStyle.Layout.PageWidth); //* (float)MyItemInfo.FormatStepData.Font.CPI / 12; - float leftMargin = ((float)itemInfo.MyActiveSection.MyDocStyle.Layout.LeftMargin); //* (float)MyItemInfo.FormatStepData.Font.CPI / 12; - XOffset = leftMargin + (pageWidth - leftMargin - Width) / 2; - } - else - { - // Determine center of hls - XOffset = hls1.XOffset + hls1.Width / 2; - // Determine left edge of the table by subtracting 1/2 of its width. - XOffset -= Width / 2; - if (aerTableOrFigure || itemInfo.RNOLevel != 0) // AER or RNO - XOffset = MyParent.XOffset + MyParent.Width / 2 - Width / 2; - else if (TableCenterPos != 0) - XOffset = TableCenterPos; - else // Centered Table or Figure - { - // Add in 1/2 of the width of all RNO columns - XOffset += (colR * itemInfo.ColumnMode) / 2; - if (!aerTableOrFigure) - { - // 05/14/12 - 16bit code adjusts the center depending upon the CPI of the table font. - // Start with XOffset of table, then calculate the XOffset adjusted for the table font, - // based on the default CPI of 12. Adjust the XOffset by the difference of these - // two numbers. - XOffset -= (XOffset - (XOffset * (float)MyItemInfo.FormatStepData.Font.CPI / 12)); - } - XOffset -= 12; // This makes the 16bit & 32bit align very closely. - } - // 05/14/12 - The PosAdjust is a format flag from 16bit. For WCN2, it appears that this amount equals - // the amount of difference from a 10 CPI to a 12 CPI font. See comment above. - if (itemInfo.FormatStepData != null && itemInfo.FormatStepData.StepPrintData != null) - XOffset += (float)(itemInfo.FormatStepData.StepPrintData.PosAdjust ?? 0); - } - - - // if the XOffset < High Level Step Text's XOffset, then align with the High Level Step Text - if (XOffset < xLowerLimit && Width < (xUpperLimit - xLowerLimit)) - XOffset = xLowerLimit; - - // if the right margin exceeds the right edge of the rightmost RNO, then adjust right edge to match. - if (XOffset + Width > xUpperLimit) - XOffset = xUpperLimit - Width; - - // because of the above, if it pushes beyond the left margin, use the left margin. - if (XOffset < (float)itemInfo.MyDocStyle.Layout.LeftMargin) - XOffset = XOffsetBox = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - } - private float AdjustForBlankLines() - { - if (MyItemInfo.MyDocStyle.SpecialStepsFoldout) return 0; - int everyNLines = MyItemInfo.FormatStepData == null ? 1 : MyItemInfo.FormatStepData.StepLayoutData.EveryNLines ?? 1; - if (MyItemInfo.Ordinal % everyNLines == 0 || MyItemInfo.NextItem == null) return SixLinesPerInch; - return 0; - } - private void AddMacros(ItemInfo itemInfo, vlnTab mytab) - { - float y = YOffset; - float x = mytab == null ? XOffset : mytab.XOffset + mytab.TabOffset; - List myMacros = itemInfo.MyMacros; - if (myMacros != null) - { - foreach (Macro myMacro in myMacros) - { - PartsLeft.Add(new vlnMacro(x, y, myMacro.MacroDef)); - } - } - } - // HLP Change bar flags in format file: - // Locations: With Text, Outside Box, AER on Left RNO on Right, To The Left of Text - // Text: Date & Change ID, Revision Number, Change ID, None, Custom (use input data) - // Flag AERChgBarMsgRNOChgBarNoMsg and AERMsgRNONoMsg are NOT Used in 16-bit. - private string cbMess = null; - private vlnChangeBar DoChangeBar(PdfContentByte cb, ItemInfo itemInfo, VlnSvgPageHelper myPageHelper, float xoff, float yoff, int maxRNO, FormatInfo formatInfo) //, vlnChangeBar myCB) - { - // find column for the change bar based on format flags - this is code from 16-bit - // if AbsoluteFixedChangeColumn - // if FixedAERChangeColumn - // if col>ColsS+ColR+COL_WID+ADJ - // FixedChangeColumn - // else - // AERLeftChangeBarLocation() - // else - // FixedChangeColumn - // else - // ChangeBarLocation() - ChangeBarData cbd = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData; - float cols = formatInfo.MyStepSectionLayoutData.ColS ?? 0; - float colr = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO); -// FixedChangeColumn + - Column location for change bars - // 0 - Separate AER and RNO change bars to the right of the text - // -10 to -1 - Change bars on left (specify # of columns from the text) - // <-10 - AER change bars on the left and RNO change bars on the right. -// FixedAERChangeColumn overrides the -5 default setting in chgbar.c, value is converted to a negative by the code - - float col = (cbd.AbsoluteFixedChangeColumn) ? - ((cbd.FixedAERChangeColumn ?? 0) > 0) ? - (xoff > (cols + colr + COL_WID_ADJ)) ? - cbd.FixedChangeColumn ?? 0 : AERLeftChangeBarLocation(formatInfo) : - cbd.FixedChangeColumn ?? 0 : ChangeBarLocation(xoff, this, formatInfo, maxRNO); - - if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.ChgID) - cbMess = itemInfo.MyContent.UserID; - else if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.DateChgID) - { - string fmtDate = itemInfo.MyContent.DTS.ToShortDateString(); - if (fmtDate.Length != 10) // need to add zeros - { - if (fmtDate.IndexOf("/") == 1) - fmtDate = "0" + fmtDate; - if (fmtDate.IndexOf("/", 3) == 1) - fmtDate = fmtDate.Substring(0, 3) + "0" + fmtDate.Substring(3, fmtDate.Length - 3); - } - cbMess = itemInfo.MyContent.UserID + @"\n" + fmtDate; - } - else if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.RevNum) - cbMess = myPageHelper.Rev; - else if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.UserDef) - cbMess = myPageHelper.ChangeBarDefinition.MyChangeBarMessage; - - int msgAlign = Element.ALIGN_LEFT; - if (myPageHelper.ChangeBarDefinition.MyChangeBarLoc == PrintChangeBarLoc.LeftOfText || - (myPageHelper.ChangeBarDefinition.MyChangeBarLoc == PrintChangeBarLoc.AERleftRNOright && - !itemInfo.IsInRNO)) msgAlign = Element.ALIGN_RIGHT; - return new vlnChangeBar(cb, this, (float)itemInfo.MyDocStyle.Layout.LeftMargin + (col * itemInfo.FormatStepData.Font.CharsToTwips), yoff, msgAlign); - } - - private int ChangeBarLocation(float c, vlnParagraph paragraph, FormatInfo formatInfo, int maxRNO) - { - int fixedChgCol = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData.FixedChangeColumn ?? 0; - float cols = formatInfo.MyStepSectionLayoutData.ColS ?? 0; - int colr = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO); - float tmpc = c; - if (MyItemInfo.IsCaution || MyItemInfo.IsNote) - { - // Temporary fix for change bars on Notes and Cautions where the FixedChgCol < -10 - tmpc = (float)formatInfo.MyStepSectionLayoutData.ColT + (float)formatInfo.MyStepSectionLayoutData.WidT; // end position of Caution / Note - int typ = (int)(MyItemInfo.MyContent.Type % 10000); - int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex; - if (bxIndx != null) - { - Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bx != null) - tmpc = (float)bx.Start + (float)bx.End; // end position of a boxed Caution / Note - } - } - // if this is a caution or note, put the change bar to the right of the text: - //if ((paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote) && fixedChgCol < -10) return -fixedChgCol; - if ((fixedChgCol == 0))// && paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote) - //if ((fixedChgCol==0) || paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote) - { - float rightEdge = (paragraph.XOffset + paragraph.Width + 5); - rightEdge-=(float)paragraph.MyItemInfo.MyDocStyle.Layout.LeftMargin; - rightEdge = rightEdge/paragraph.MyItemInfo.FormatStepData.Font.CharsToTwips; - return (int)rightEdge; - } - if (fixedChgCol < -10 || fixedChgCol >= 0) - return ((fixedChgCol > 0) ? fixedChgCol : - (fixedChgCol == 0) ? (int)c + 1 : - (tmpc > (cols + colr + COL_WID_ADJ)) ? -fixedChgCol : - //(c > (cols + colr + COL_WID_ADJ) || (MyItemInfo.IsCaution || MyItemInfo.IsNote)) ? -fixedChgCol : - AERLeftChangeBarLocation(formatInfo)); - else - return (int)(fixedChgCol + (((c < cols + Width + colr) || TableTest() - || MyItemInfo.IsCaution || MyItemInfo.IsNote) ? 0 : cols + colr)); // || (GetColumnMode() == 0)) ? 0 : cols + colr)); - /* Change bars to left of text -- ColS+WidS+ColR is the end of RNO col*/ - } - /* - ** Centered tables whose width exceeds the end of the RNO column should - ** still have their change bars printed on the left. This procedure checks - ** to make sure the step is a table and that it is not an RNO. - */ - private bool TableTest() - { - return false; - //return ((s->Type == TABLE || s->Type == BORDERLESSTABLE) && - //!(strchr((char *)&s->dbseq[2],RNO_MARKER))); - } - private float GetBottomYoff(float bottomY) - { - foreach (vlnParagraph child in ChildrenBelow) - { - if (child.YOffset > bottomY) bottomY = child.YOffset; - bottomY = child.GetBottomYoff(bottomY); - } - return bottomY; - } - private int AERLeftChangeBarLocation(FormatInfo formatInfo) - { - // use -5 default unless it is format specified - int fixedAERChgCol = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData.FixedAERChangeColumn ?? 0; - return (fixedAERChgCol != 0) ? - (fixedAERChgCol > 100) ? - (fixedAERChgCol % 100) : -fixedAERChgCol : -5; - } - private StringBuilder _RtfSB = null; - - // return rtf and use for tab and other text - public string GetRtf(ItemInfo itemInfo) - { - _RtfSB = new StringBuilder(); - DisplayText vlntxt = new DisplayText(itemInfo, E_EditPrintMode.Print, E_ViewMode.View, true, E_FieldToEdit.StepText, false); - System.Drawing.Font myFont = vlntxt.TextFont.WindowsFont; - if (!itemInfo.IsTable && StepRTB.MyFontFamily != null) - myFont = new System.Drawing.Font(StepRTB.MyFontFamily, myFont.Size, myFont.Style); - if (itemInfo.IsHigh && itemInfo.MyDocStyle.UndSpecialStepsFoldout) myFont = new System.Drawing.Font(myFont.FontFamily, myFont.Size, myFont.Style | FontStyle.Underline); - _RtfSB.Append(AddFontTable(myFont)); - _RtfSB.Append(vlntxt.StartText); - _RtfSB.Append("}"); - return _RtfSB.ToString(); - } - private float _XOffsetBox = 0; - public float XOffsetBox - { - get { return _XOffsetBox; } - set { _XOffsetBox = value; } - } - private float SetHeader(vlnParagraph para, PdfContentByte cb, ItemInfo itemInfo, FormatInfo formatInfo) - { - float xoff = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - // The '6' below is really converting from characters to Twips. But instead of considering the CPI, 16bit assumed - // it was 12 to center the header. That's where the 6 comes from. - float hdrWidth = (itemInfo.MyHeader.CleanText == null) ? 0 : itemInfo.MyHeader.CleanText.Length * 6; - int typ = ((int)itemInfo.MyContent.Type) % 10000; - int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex; - - if (itemInfo.MyHeader.Justify == System.Drawing.ContentAlignment.MiddleCenter) - { - if (bxIndx != null) - { - Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bx.TabPos > 0) - xoff += (float)bx.TabPos; // xoff starts as left margin - else - xoff += (float)((bx.TxtStart + XOffsetBox + (bx.TxtWidth / 2)) - (hdrWidth / 2)); // xoff starts as left margin - } - else if (formatInfo.MyStepSectionLayoutData.Separator.Location > 0) - xoff = XOffset + AdjustToCharPosition((float)((para.Width - hdrWidth) / formatInfo.MyStepSectionLayoutData.Separator.Location), itemInfo.MyHeader.MyFont.CPI); - else - xoff = XOffset + (para.Width / 2) + (hdrWidth / 2); // XOffset has left margin included - } - else - xoff = XOffset; // XOffset has left margin included - vlnHeader myHeader = new vlnHeader(this, cb, itemInfo.MyHeader.Text, itemInfo.MyHeader.CleanText.TrimStart(" ".ToCharArray()), xoff, YOffset, itemInfo.MyHeader.MyFont); - PartsAbove.Add(myHeader); - return myHeader.Height + (!MyItemInfo.MyDocStyle.SpecialStepsFoldout ? SixLinesPerInch : 0); - } - private float AdjustToCharPosition(float position, float? CPI) - { - int iPosition = (int)position; - int charsToTwips = (int)(72 / (CPI ?? 12)); - iPosition = (iPosition / charsToTwips) * charsToTwips; - position = (position / 7.2F) * 7.2F; - return (float)iPosition; - } - private bool _SectionPageBreak = false; - public bool SectionPageBreak - { - get { return _SectionPageBreak; } - set { _SectionPageBreak = value; } - } - private bool _Processed = false; - public bool Processed - { - get { return _Processed; } - set { _Processed = value; } - } - private vlnParagraph _LastRNO; - public vlnParagraph LastRNO - { - get { return _LastRNO; } - set { _LastRNO = value; } - } - private vlnParagraph _MyTopRNO; - public vlnParagraph MyTopRNO - { - get { return _MyTopRNO; } - set { _MyTopRNO = value; } - } - private static string _Prefix = ""; - public static string Prefix - { - get { return vlnParagraph._Prefix; } - set { vlnParagraph._Prefix = value; } - } - protected float _YBottomMost; // Bottom of the paragraph including the children - public float YBottomMost - { - get { return _YBottomMost; } - set { _YBottomMost = value; } - } - protected float _YTopMost; // Top of the paragraph including the children - public float YTopMost - { - get { return _YTopMost; } - set { _YTopMost = value; } - } - protected float _YTop; // Top of the paragraph including parts - public float YTop - { - get { return _YTop; } - set - { - vlnParagraph vp = this as vlnParagraph; - _YTop = value; - - } - } - public float YSize // How big this paragraph is with all of its children - { - get { return _YBottomMost - _YTopMost; } - } - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - private vlnParagraph _MyHighLevelParagraph; - - public vlnParagraph MyHighLevelParagraph - { - get - { - if (_MyHighLevelParagraph == null) - { - _MyHighLevelParagraph = GetHighLevelParagraph(); - } - return _MyHighLevelParagraph; - } - } - private vlnParagraph GetHighLevelParagraph() - { - if (MyItemInfo.IsHigh) return this; - return MyParent.GetHighLevelParagraph(); - } - // Tab, Separator, ChangeBar, Box, Circle, Checkoff - private vlnPrintObjects _PartsAbove; - public vlnPrintObjects PartsAbove - { - get - { - if (_PartsAbove == null) _PartsAbove = new vlnPrintObjects(); - return _PartsAbove; - } - } - private vlnPrintObjects _PartsBelow; - public vlnPrintObjects PartsBelow - { - get - { - if (_PartsBelow == null) _PartsBelow = new vlnPrintObjects(); - return _PartsBelow; - } - } - private vlnPrintObjects _PartsRight; - public vlnPrintObjects PartsRight - { - get - { - if (_PartsRight == null) _PartsRight = new vlnPrintObjects(); - return _PartsRight; - } - } - private vlnPrintObjects _PartsLeft; - public vlnPrintObjects PartsLeft - { - get - { - if (_PartsLeft == null) _PartsLeft = new vlnPrintObjects(); - return _PartsLeft; - } - } - private vlnPrintObjects _PartsContainer; - public vlnPrintObjects PartsContainer - { - get - { - if (_PartsContainer == null) _PartsContainer = new vlnPrintObjects(); - return _PartsContainer; - } - } - private vlnParagraphs _ChildrenAbove; - public vlnParagraphs ChildrenAbove - { - get - { - if (_ChildrenAbove == null) _ChildrenAbove = new vlnParagraphs(this); - return _ChildrenAbove; - } - } - private vlnParagraphs _ChildrenBelow; - public vlnParagraphs ChildrenBelow - { - get - { - if (_ChildrenBelow == null) _ChildrenBelow = new vlnParagraphs(this); - return _ChildrenBelow; - } - } - private vlnParagraphs _ChildrenRight; - public vlnParagraphs ChildrenRight - { - get - { - if (_ChildrenRight == null) _ChildrenRight = new vlnParagraphs(this); - return _ChildrenRight; - } - } - private vlnParagraphs _ChildrenLeft; - public vlnParagraphs ChildrenLeft - { - get - { - if (_ChildrenLeft == null) _ChildrenLeft = new vlnParagraphs(this); - return _ChildrenLeft; - } - } - public void AdjustXOffsetForTab(ItemInfo itemInfo, int maxRNO, FormatInfo formatInfo, vlnTab myTab) - { - float tabWidth = (myTab == null) ? 0 : myTab.Width; - if (itemInfo.IsStepSection) - { - if (formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Just == "PSLeft") - { - int level = 0; - ItemInfo iilvl = itemInfo; - while (!iilvl.IsProcedure) - { - level++; - iilvl = iilvl.MyParent; - } - level = level <= 2 ? 1 : level - 1; - if (level==1) - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (level * (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos); - else - XOffset = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[level].ColSByLevel; - } - return; - } - int typ = ((int)itemInfo.MyContent.Type) % 10000; - int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex; - float? colOvrd = formatInfo.PlantFormat.FormatData.StepDataList[typ].ColOverride; - if (bxIndx != null) - { - Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bx == null) - { - if ((colOvrd??0)!=0) - { - // 16-bit code subtracted the left margin - //xoff = ((float)colOvrd - (float)itemInfo.MyDocStyle.Layout.LeftMargin) - XOffset; - //XOffset += xoff; - //if (myTab != null) myTab.XOffset += xoff; - //xoff = MyParent.XOffset - myTab.XOffset; - //XOffset += xoff; - float tabOffset = (myTab == null?0: myTab.XOffset) - XOffset; - - XOffset = (float)colOvrd; - if (myTab != null) myTab.XOffset = XOffset + tabOffset; - return; - } - else - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + tabWidth + XOffsetBox; - } - else - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)bx.TxtStart + tabWidth + XOffsetBox; - if (myTab != null) myTab.XOffset = XOffset - tabWidth; - } - else if (itemInfo.IsHigh) - { - float x = 0; - float xoff = 0; - if ((colOvrd??0)!=0) - x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)colOvrd; - else - x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS; - - xoff = x - XOffset; - // ColSByLevel will specify the column in which the High Level Step starts with - // respect to the overall level calculation based on sections & meta-sections. - // Only a few of the single column formats use this: WCN1, CAL1, RGEBCK - if (formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel - && !(itemInfo.MyDocStyle.SpecialStepsFoldout && itemInfo.MyDocStyle.UseColSByLevel)) - { - int indxLevel = itemInfo.PrintLevel + itemInfo.CurrentSectionLevel(); - float colsbylevel = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[indxLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count].ColSByLevel; - float seclvlindent = colsbylevel - (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS; - x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS + seclvlindent; - xoff = x - XOffset; - if (myTab != null) myTab.XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + colsbylevel; - LeftJustifyList jstlst = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList; - if (jstlst.Count > 0) - { - float leftJustifyTabSize = jstlst[indxLevel % jstlst.Count].Size ?? 0; - XOffset = myTab.XOffset + leftJustifyTabSize; - } - else - XOffset = myTab.XOffset + (myTab.Text.Length * (float)itemInfo.FormatStepData.Font.CPI) - colsbylevel; - } - else - { - XOffset += xoff; - if (myTab != null) - { - myTab.XOffset += xoff; - if (myTab.MyMacro != null) myTab.MyMacro.XOffset += xoff; - } - } - } - else if (itemInfo.IsRNOPart && !((ItemInfo)itemInfo.ActiveParent).IsHigh) - { - // don't adjust for rno - } - else if (MyParent != null) - { - if (myTab != null && itemInfo.IsSequential && formatInfo.PlantFormat.FormatData.SectData.UseMetaSections && formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList.Count > 0) - { - int indxLevels = itemInfo.PrintLevel + itemInfo.CurrentSectionLevel(); // kbr -1; - LeftJustifyList jstlst = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList; - float tableftadj = 0; - foreach (LeftJustify lj in jstlst) - { - if (lj.Index == indxLevels) - { - tableftadj = lj.Size ?? 0; - break; - } - } - // the order of this is important. First adjust the tab's xoffset for the width of - // the tab. The offset of text needs to be adjusted by the 'leftjustify' format variable - // if it existed for this level. - myTab.XOffset += tabWidth; - if (tableftadj != 0 && myTab.Width0) - widOvrd = xwid; - else - widOvrd = itemInfo.FormatStepData == null ? null : itemInfo.FormatStepData.WidthOverride; - if ((widOvrd??0) != 0) - { - Width = (float)widOvrd; - // if there's a box, we may need to do an adjustment on the width, if the tab data was changed - // so don't return. - if (bxIndx == null) return; - } - float tabWidth = (myTab == null) ? 0 : myTab.Width; - if (bxIndx != null) - { - Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bx == null) - { - // NOT SURE IF WE NEED TO TEST FOR THE NULLBOX FORMAT FLAG, MAYBE "bx == null" IS THE SAME THING - //if (formatInfo.MyStepSectionLayoutData.NullBox) - Width = (float)formatInfo.MyStepSectionLayoutData.WidT - tabWidth; - } - else - Width = _WidthAdjustBox + (float)bx.TxtWidth - tabWidth; // add 1 to get it to wrap like 16Bit - } - else if (itemInfo.IsHigh) - { - float CheckOffAdj = 0; - if (itemInfo.MyDocStyle.UseCheckOffs) - { - if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffAdjustment != null) - CheckOffAdj = -(float)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffAdjustment; - if (!HasCheckOffHeading(itemInfo, formatInfo) && CheckOffAdj < 0) - CheckOffAdj += (float)(9 * 7.2); // 9 is the size of the SIGNOFF adjustment - } - float adjwidth = CheckOffAdj; - SectData sd = formatInfo.PlantFormat.FormatData.SectData; - if (sd.UseMetaSections) - { - if (sd.StepSectionData.StepSectionLayoutData.TieTabToLevel) - { - if (itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !itemInfo.MyDocStyle.CancelSectTitle - && !(itemInfo.MyDocStyle.SpecialStepsFoldout && itemInfo.MyDocStyle.UseColSByLevel)) - { - int indxLevel = itemInfo.PrintLevel + itemInfo.CurrentSectionLevel(); - adjwidth += formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[indxLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count].WidSAdjByLevel ?? 0; ; - float colsbylevel = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[indxLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count].ColSByLevel; - float seclvlindent = colsbylevel - (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS; - adjwidth -= seclvlindent; - adjwidth -= AdjustForSectionLevelTab(); - } - } - else - { - if (formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count > 0) - adjwidth += (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[itemInfo.PrintLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count].ColSByLevel; - } - } - - Width = ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, maxRNO); - Width += _WidthAdjust; - Width += adjwidth; - } - else if (itemInfo.IsCaution || itemInfo.IsNote) - { - float mycolT = (float)formatInfo.MyStepSectionLayoutData.ColT; - Width = (float)formatInfo.MyStepSectionLayoutData.WidT - 6 - mycolT; - XOffset += mycolT; // adjust caution/note text position - if (PartsLeft != null)// adjust tab position - foreach(vlnPrintObject vpo in PartsLeft) - vpo.XOffset += mycolT; - } - else if (itemInfo.IsSection) - { - Width = _WidthAdjust + ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, maxRNO); - } - else if (MyParent == null) - { - // 72 points / inch - 7 inches (about width of page) - Width = 72 * 7; - } - else if (itemInfo.IsRNOPart && !((ItemInfo)itemInfo.ActiveParent).IsHigh) - { - Width = MyParent.Width; - } - else if (itemInfo.IsTablePart) - { - Width = 72 * 7; // TODO: Need to determine the Width of the Table based upon the contents - } - else if (itemInfo.MyParent.IsCaution || itemInfo.MyParent.IsNote) - { - Width = MyParent.Width - tabWidth + (myTab == null ? 0 : myTab.TabAlign); - Width -= 72 * (itemInfo.FormatStepData.CautionOrNoteSubstepIndent == null ? 0 : (float)itemInfo.FormatStepData.CautionOrNoteSubstepIndent / (float)itemInfo.FormatStepData.Font.CPI); - } - else - { - float adjwidth = 0; - Width = adjwidth + MyParent.Width - tabWidth + (myTab == null ? 0 : myTab.TabAlign); - } - } - private float GetWidthFromTemplate(ItemInfo itemInfo, FormatInfo formatInfo) - { - float rtnwid = 0; - int tpIndx = GetSmartTemplateIndex(itemInfo, itemInfo.MyContent.Type, formatInfo); - if (tpIndx != -1) - { - int ncol = formatInfo.PlantFormat.FormatData.Templates[tpIndx].width; - // now convert to the units for this format. The template width data is in number of columns. - rtnwid = ncol * itemInfo.FormatStepData.Font.CharsToTwips; - } - return rtnwid; - } - private int GetSmartTemplateIndex(ItemInfo itemInfo, int? type, FormatInfo formatInfo) - { - int indx = 0; - // find the starting template in the list for the high level step type: - int highType = (int)itemInfo.MyHLS.MyContent.Type-20001; - while (indx < formatInfo.PlantFormat.FormatData.Templates.Count) - { - // level of 0 starts a new group. - if (formatInfo.PlantFormat.FormatData.Templates[indx].level == 0) - { - indx++; - // now see if we're on the high level step type, if so, look under this one - // for the step type that we're on. If found return the index of it. - if (formatInfo.PlantFormat.FormatData.Templates[indx].type == highType) - { - indx++; - while (indx < formatInfo.PlantFormat.FormatData.Templates.Count && formatInfo.PlantFormat.FormatData.Templates[indx].level != 0) - { - if (formatInfo.PlantFormat.FormatData.Templates[indx].type == type - 20001) - return indx; - indx++; - } - } - } - else - indx++; - } - return -1; // didn't find this step type in the template width override list. - } - - private float AdjustForSectionLevelTab() - { - string sectTab = MyItemInfo.ActiveSection.MyTab.CleanText.TrimEnd(); - if (sectTab.EndsWith(".0")) return 0; - string myTab = MyItemInfo.MyTab.CleanText; - // -1 below code, +1 for '.' and -2 for standard wid of tab - // standard wid of this tab is 2 (ex: '1.') - // so adjust width if longer than normal - return (float)(sectTab.Length - 1) * 72/(float)MyItemInfo.FormatStepData.Font.CPI; - } - private bool HasCheckOffHeading(ItemInfo itemInfo, FormatInfo formatInfo) - { - if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList.Count != 0) - { - // does this section have a check off heading? - SectionConfig sc = itemInfo.MyActiveSection.MyConfig as SectionConfig; - if (sc != null && sc.Section_CheckoffHeaderSelection > 0) return true; - } - return false; - } - private bool UseCheckOffsDocStyle(int oldToNew, FormatInfo formatInfo) - { - int bit, retval=0; - int mask=1; - - for(bit=0; bit < 32; bit++){ - if ((oldToNew & mask) != 0 && ((int)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.UseCheckOffsIn & mask) !=0) retval = 1; - mask <<= 1; - } - return retval > 0; - } - } - - /// - /// First order by stepLevel, then within a stepLevel, order by descending yLocation on page. - /// Want to find maximum y value that fits on page, i.e. put the most on page that can - /// fit which is defined by the largest yLocation - /// - public class StepLevelList : SortedDictionary> - { - public StepLevelList() : base() - { - } - public void Add(int stepLevel, float yLocation, vlnParagraph para) - { - if (stepLevel == 0) return; - if (!this.ContainsKey(stepLevel)) - this.Add(stepLevel, new SortedDictionary()); - // using a negative for yLocation so that its in descending order: - if (!this[stepLevel].ContainsKey(-yLocation)) - this[stepLevel].Add(-yLocation, para); - } - } - public class ParagraphLocations : List - { - public ParagraphLocations() - : base() - { - } - public void Add(vlnParagraph myParagraph, float yTopMost) - { - ParagraphLocation foundOverlap = FindOverlap(myParagraph); - if (foundOverlap == null) - { - this.Add(new ParagraphLocation(yTopMost,myParagraph)); - return; - } - ParagraphLocation doubleOverlap = FindOverlap(foundOverlap); - while (doubleOverlap != null) - { - doubleOverlap.Merge(foundOverlap); - this.Remove(foundOverlap); - foundOverlap = doubleOverlap; - doubleOverlap = FindOverlap(foundOverlap); - } - } - - private ParagraphLocation FindOverlap(vlnParagraph myParagraph) - { - foreach (ParagraphLocation paraLoc in this) - if (paraLoc.Overlap(myParagraph)) - return paraLoc; - return null; - } - private ParagraphLocation FindOverlap(ParagraphLocation myParaLoc) - { - foreach (ParagraphLocation paraLoc in this) - if (paraLoc != myParaLoc && paraLoc.Overlap(myParaLoc)) - return paraLoc; - return null; - } - internal StepLevelList BuildStepLevelList() - { - StepLevelList myList = new StepLevelList(); - foreach (ParagraphLocation paraLoc in this) - myList.Add(paraLoc.StepLevel, paraLoc.YTop, paraLoc.MyParagraph); - return myList; - } - } - public class ParagraphLocation - { - private float _YTop; - public float YTop - { - get { return _YTop; } - set { _YTop = value; } - } - private float _YBottom; - public float YBottom - { - get { return _YBottom; } - set { _YBottom = value; } - } - private int _StepLevel; - public int StepLevel - { - get { return _StepLevel; } - set { _StepLevel = value; } - } - private vlnParagraph _MyParagraph; - public vlnParagraph MyParagraph - { - get { return _MyParagraph; } - set { _MyParagraph = value; } - } - public ParagraphLocation(float yTopMost,vlnParagraph myParagraph) - { - MyParagraph =myParagraph; - YTop = myParagraph.YVeryTop - yTopMost; - YBottom = myParagraph.YBottom - yTopMost; - StepLevel = myParagraph.MyItemInfo.StepLevel; - } - public bool Overlap(vlnParagraph otherParagraph) - { - if (Between(otherParagraph.YTop, YTop, YBottom)) return true; - if (Between(otherParagraph.YBottom, YTop, YBottom)) return true; - if(Between(YTop,otherParagraph.YVeryTop,otherParagraph.YBottom)) return true; - if(Between(YBottom,otherParagraph.YVeryTop,otherParagraph.YBottom)) return true; - return false; - } - public static bool Between(float x, float lower, float higher) - { return x >= lower && x <= higher; } - public bool Overlap(ParagraphLocation otherParagraphLocation) - { - if (Between(otherParagraphLocation.YTop, YTop, YBottom)) return true; // The top is within the other - if (Between(otherParagraphLocation.YBottom, YTop, YBottom)) return true; // The bottom is within the other - if(Between(YTop,otherParagraphLocation.YTop,otherParagraphLocation.YBottom)) return true; // the other top is within this one - if(Between(YBottom,otherParagraphLocation.YTop,otherParagraphLocation.YBottom)) return true;// I believe this is unnecessary - return false; - } - public void Merge(vlnParagraph otherParagraph) - { - if (StepLevel < otherParagraph.MyItemInfo.StepLevel) MyParagraph = otherParagraph; - YTop = Math.Min(YTop, otherParagraph.YVeryTop); - YBottom = Math.Max(YBottom, otherParagraph.YBottom); - StepLevel = Math.Max(StepLevel, otherParagraph.MyItemInfo.StepLevel); - } - public void Merge(ParagraphLocation otherParagraphLocation) - { - if (StepLevel < otherParagraphLocation.StepLevel) MyParagraph = otherParagraphLocation.MyParagraph; - YTop = Math.Min(YTop, otherParagraphLocation.YTop); - YBottom = Math.Max(YBottom, otherParagraphLocation.YBottom); - StepLevel = Math.Max(StepLevel, otherParagraphLocation.StepLevel); - } - } -} diff --git a/PROMS/Volian.Print.Library/vlnParagraph.cs2.bak b/PROMS/Volian.Print.Library/vlnParagraph.cs2.bak deleted file mode 100644 index b6b64607..00000000 --- a/PROMS/Volian.Print.Library/vlnParagraph.cs2.bak +++ /dev/null @@ -1,2009 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using System.Text.RegularExpressions; -using System.IO; -using iTextSharp.text.pdf; -using iTextSharp.text; -using Itenso.Rtf; -using Itenso.Rtf.Parser; -using Itenso.Rtf.Interpreter; -using Itenso.Rtf.Support; -using Volian.Controls.Library; -using VEPROMS.CSLA.Library; -using Volian.Base.Library; - -namespace Volian.Print.Library -{ - public partial class vlnParagraphs : List - { - private vlnParagraph _Parent; - public vlnParagraph Parent - { - get { return _Parent; } - set { _Parent = value; } - } - public vlnParagraphs(vlnParagraph parent) - { - _Parent = parent; - } - public float Add(PdfContentByte cb, ItemInfoList itemInfoList, float xoff, float yoff, float yoffRight, int rnoLevel, int maxRNO, FormatInfo formatInfo) - { - int? bxIndex = null; - vlnBox box = null; - float yTop = yoff; - foreach (ItemInfo childItemInfo in itemInfoList) - { - // if this is a caution/note and it has a caution/note substep, do it before this caution/note, so that - // it comes above it. - if (childItemInfo.Cautions != null && (childItemInfo.IsCaution || childItemInfo.IsNote)) - yoff = Add(cb, childItemInfo.Cautions, xoff, yoff, yoffRight, rnoLevel, maxRNO, formatInfo); - if (childItemInfo.Notes != null && (childItemInfo.IsCaution || childItemInfo.IsNote)) - yoff = Add(cb, childItemInfo.Notes, xoff, yoff, yoffRight, rnoLevel, maxRNO, formatInfo); - int? bxIndx = childItemInfo.FormatStepData==null?-1:childItemInfo.FormatStepData.StepLayoutData.STBoxindex; - if (bxIndx != -1 && (bxIndex != bxIndx || childItemInfo.FormatStepData.BoxIt)) - { - if (childItemInfo.FormatStepData.BoxIt) // this is a boxed HLS - { - box = new vlnBox(); - box.MyBox = new Box(); - box.DefBox = vlnBox.BoxThin; - StepSectionLayoutData ssld = formatInfo.MyStepSectionLayoutData; - int colR = int.Parse(formatInfo.MyStepSectionLayoutData.ColRTable.Split(",".ToCharArray())[childItemInfo.ColumnMode]); - int widS = vlnPrintObject.ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, maxRNO); - box.DefEnd = (float)(ssld.ColS + colR + widS + (60/4.8)); - box.YOffset = yoff - .75F * vlnPrintObject.SixLinesPerInch; - } - else if (bxIndex == null) // First boxed step - { - box = new vlnBox(); - box.MyBox = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (box.MyBox != null) - { - box.YOffset = yoff; - int ln = 1; // a format flag determines whether there is a space before the note/caution. - if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++; - yoff += ln * vlnPrintObject.SixLinesPerInch; - } - } - else // Change Box Style - { - if (box != null) box.Height = yoff - box.YOffset; // new height, with children - box = new vlnBox(); - box.MyBox = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - box.YOffset = yoff; - int ln = 1; // a format flag determines whether there is a space before the note/caution. - if (childItemInfo.FormatStepData.OneLineBeforeTab) ln++; - yoff += ln * vlnPrintObject.SixLinesPerInch; - } - bxIndex = bxIndx; - } - if (childItemInfo is SectionInfo) formatInfo = (childItemInfo as SectionInfo).LocalFormat ?? formatInfo; - if (rnoLevel < maxRNO && childItemInfo.RNOs != null) yoff = Math.Max(yoff, yoffRight); - - - vlnParagraph para = new vlnParagraph(Parent, cb, childItemInfo, xoff, yoff, rnoLevel, maxRNO, formatInfo); - if (box != null && box.MyParent == null) - { - box.MyParent = para; - para.PartsContainer.Add(box); - } - Add(para); - // para.YBottomMost will have y for bottom of any substeps that are also enclosed in the box. - if (childItemInfo.IsStep && childItemInfo.MyHLS.FormatStepData.UseSmartTemplate && para.ChildrenBelow.Count>0 && para.ChildrenBelow[0].YBottomMost > para.YBottomMost) - yoff = para.ChildrenBelow[0].YBottomMost; - else - yoff = para.YBottomMost; - if (childItemInfo.FormatStepData != null && childItemInfo.FormatStepData.BoxIt) - { - box.Height = yoff - box.YOffset - (1.1F * vlnPrintObject.SixLinesPerInch); - box = null; // if doing boxed steps, only do single sibling at a time. - } - } - if (box != null && box.MyBox != null) - { - box.Height = yoff - box.YOffset; // new height, with children - yoff += 2 * vlnPrintObject.SixLinesPerInch; - } - return yoff; - } - public float ToPdf(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin) - { - foreach (vlnParagraph child in this) - { - yPageStart = child.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - } - return yPageStart; - } - } - public partial class vlnParagraph : vlnPrintObject - { - private vlnTable _MyGrid; - public vlnTable MyGrid - { - get { return _MyGrid; } - set { _MyGrid = value; } - } - public float SectYPageStart = 0; - private bool _IsWordDocPara = false; - public bool IsWordDocPara - { - get { return _IsWordDocPara; } - set { _IsWordDocPara = value; } - } - public float ParagraphToPdf(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin) - { - if (Processed) return yPageStart; - //float localYPageStart = yPageStart; - Processed = true; - if (_PartsAbove != null && _PartsAbove.Count > 0) yPageStart = PartsAbove.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - if (MyItemInfo.IsHigh && MyItemInfo.MyDocStyle.SpecialStepsFoldout) yPageStart -= SixLinesPerInch; - float yLocation = CalculateYOffset(yPageStart, yTopMargin); - if (MyItemInfo.HasChangeBar && MyPageHelper.ChangeBarDefinition.MyChangeBarType != PrintChangeBar.Without) MyPageHelper.AddChangeBar(DoChangeBar(cb, MyItemInfo, MyPageHelper, XOffset, yLocation, MyPageHelper.MaxRNO, MyItemInfo.ActiveFormat), cbMess); - float retval = yLocation; - - if (MyItemInfo.IsFigure) - { - yLocation -= (SixLinesPerInch * MyPageHelper.YMultiplier); - if (ImageText != null) - retval = DrawFigure(cb, yBottomMargin, yLocation); - else - retval = DrawText(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation); - - } - else if (!MyItemInfo.IsStepSection - || (MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout)) // Don't ouput the Step Section title - { - bool doprint = true; - // if this is a section, then check the section config for printable header too. - if (MyItemInfo.IsSection) - { - SectionConfig sch = MyItemInfo.MyConfig as SectionConfig; - if (!(MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout) - && - ((sch != null && sch.Section_PrintHdr != "Y") || !MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections)) doprint = false; - } - if (MyItemInfo.MyContent.MyGrid != null) - retval = DrawGrid(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation); - else - if (doprint)retval = DrawText(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation); - if (MyItemInfo.IsHigh) - { - MyPageHelper.PageBookmarks.Add(MyItemInfo, MyItemInfo.MyTab.CleanText + " " + MyItemInfo.DisplayText, - new PdfDestination(PdfDestination.FITBH, yLocation + YVeryTop - YTopMost + SixLinesPerInch)); - } - } - if (MyItemInfo.IsSection) - { - SectionConfig sc = MyItemInfo.MyConfig as SectionConfig; - if (sc != null && sc.Section_TOC == "Y") - { - string tocKey = string.Format("TOC{0}", MyItemInfo.ItemID); - if (MyPageHelper.MyTOCPageCounts.ContainsKey(tocKey)) - { - PageCount pc = MyPageHelper.MyTOCPageCounts[tocKey]; - pc.Total = MyPageHelper.CurrentPageNumber; - pc.DrawTemplates(); - } - } - } - //Height = yLocation - retval; - if (_PartsLeft != null && _PartsLeft.Count > 0) yPageStart = PartsLeft.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - if (_PartsRight != null && _PartsRight.Count > 0) yPageStart = PartsRight.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - if (_PartsBelow != null && _PartsBelow.Count > 0) yPageStart = PartsBelow.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - if (_PartsContainer != null && _PartsContainer.Count > 0) yPageStart = PartsContainer.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - - //if (localYPageStart != yPageStart) DebugText.WriteLine("ParToPdf-yPagestartDiff:{0},{1},{2}", MyItemInfo.ItemID, localYPageStart, yPageStart); - return yPageStart; - } - - private float DrawGrid(PdfContentByte cb, ref float yPageStart, float yTopMargin, float yBottomMargin, ref float yLocation) - { - //DebugText.WriteLine("{0},'{1}','{2}','<>'", MyItemInfo.ItemID, MyItemInfo.ShortPath, FormattedText); - DebugText.WriteLine("{0},'{1}','{2}','<>',{3}", MyItemInfo.ItemID, MyItemInfo.ShortPath,MyItemInfo.MyContent.Text,XOffset); - float retval = Rtf2Pdf.GridAt(cb, MyGrid, XOffset, yLocation, Width, 100, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.Contains("Borderless")); - return retval; - } - - private float DrawText(PdfContentByte cb, ref float yPageStart, float yTopMargin, float yBottomMargin, ref float yLocation) - { - DebugText.WriteLine("{0},'{1}','{2}','<>'", MyItemInfo.ItemID, MyItemInfo.DBSequence, FormattedText); - //Console.WriteLine("{0},{1},'{2}','<>'", MyItemInfo.ItemID, MyItemInfo.DBSequence, IParagraph.Content); - float retval = yLocation; - // Check if only one line, i.e. "Height < (1.2F * IParagraph.Leading". The Leading can be for six or seven lines per inch, so the 1.2 - // multiplier accounts for both. - if (!MyItemInfo.IsStepSection && MyItemInfo.FormatStepData.CenterOneLineOnly && MyItemInfo.MyPrevious == null && MyItemInfo.NextItem == null && Height < (1.2F * IParagraph.Leading)) - IParagraph.Alignment = Element.ALIGN_CENTER; - if (!MyItemInfo.IsStepSection && MyItemInfo.FormatStepData.StepPrintData.Justify == "Center") - IParagraph.Alignment = Element.ALIGN_CENTER; - retval = Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, DebugInfo, yBottomMargin); - if (retval == 0) // problem occurred - paragraph was not able to be printed on page - { // pagination logic needs to be fixed. - ForcePagination(cb, ref yPageStart, yTopMargin, yBottomMargin, ref yLocation, ref retval); - } - return retval; - } - private static List myAttributes =new List(); - private static void AddAttribute(string attr) - { - if (myAttributes.Contains(attr)) - return; - //Console.WriteLine("Attribute = \"{0}\"", attr); - myAttributes.Add(attr); - } - private void CheckAttributes(System.Collections.Hashtable attributes) - { - foreach (string attr in attributes.Keys) - { - AddAttribute(attr); - } - } - private string FormattedText - { - get - { - bool subscript = false; - //if (_MyItemInfo.ItemID == 467) - // Console.Write(""); - StringBuilder sb = new StringBuilder(); - //if (IParagraph.Chunks.Count > 1) - // Console.WriteLine("{0} Chunks", IParagraph.Chunks.Count); - foreach (Chunk chk in IParagraph.Chunks) - { - string prefix = ""; - string suffix = ""; - CheckAttributes(chk.Attributes); - if (chk.Font.BaseFont != null && chk.Font.BaseFont.PostscriptFontName.ToUpper().Contains("BOLD")) - { - prefix += "\xD5"; - suffix = "\xD6" + suffix; - } - if (chk.Attributes.ContainsKey("SUBSUPSCRIPT")) - { - float sup = (float)(chk.Attributes["SUBSUPSCRIPT"]); - if (sup > 0) - { - prefix += "\xA6"; - suffix = "\xD1" + suffix; - } - else if (sup < 0) - { - prefix += "\xD1"; - suffix = "\xA6" + suffix; - } - - } - if (chk.Attributes.ContainsKey("UNDERLINE")) - { - prefix += "\x16"; - suffix = "\x16" + suffix; ; - } - sb.Append(prefix + chk.Content + suffix); - } - string retval = sb.ToString(); - retval = retval.Replace("\xD1\xA6", "");// Remove Multiple Superscript commands in a row - retval = retval.Replace("\xA6\xD1", "");// Remove Multiple Superscript commands in a row - retval = retval.Replace("\xD6\xD5", ""); - retval = retval.Replace("\xD6\x16\xD5", "\x16"); - return retval; - } - } - //private bool _TextDebug = false; //true; this will turn on a writeline with debug in DrawText() - private float DrawFigure(PdfContentByte cb, float yBottomMargin, float yLocation) - { - float retval = yLocation; - if (ImageText != null) - { - string[] vals = ImageText.Split("\n".ToCharArray()); - ProcedureInfo proc = MyItemInfo.MyProcedure; - DocVersionInfo dvi = proc.ActiveParent as DocVersionInfo; - ROFstInfo rofst = dvi.DocVersionAssociations[0].MyROFst; - ROImageInfo roImage = ROImageInfo.GetByROFstID_FileName(rofst.ROFstID, vals[0]); - if (roImage != null) - { - iTextSharp.text.Image it_image = iTextSharp.text.Image.GetInstance(roImage.Content); - retval = Rtf2Pdf.FigureAt(cb, it_image, XOffset + MyItemInfo.FormatStepData.Font.CharsToTwips, yLocation, Width * MyPageHelper.YMultiplier, Height * MyPageHelper.YMultiplier, DebugInfo, yBottomMargin, !MyItemInfo.FormatStepData.Type.Contains("Borderless")); - } - } - return retval; - } - private string DebugInfo - { - get - { - return string.Format("DebugID = {0}, ID={1} Type={2} TypeName='{3}' StepLevel={4} DBSequence={5}", DebugId, MyItemInfo.ItemID, MyItemInfo.FormatStepType, MyItemInfo.FormatStepData==null?"NoStepData":MyItemInfo.FormatStepData.Type, MyItemInfo.StepLevel, MyItemInfo.DBSequence); - } - } - public override float ToPdf(PdfContentByte cb, float yPageStart, float yTopMargin, float yBottomMargin) - { - if (IsWordDocPara) - { - PdfReader tmp = null; - string tmpstr = null; - SectionInfo si = SectionInfo.Get(MyItemInfo.ItemID); - cb.PdfDocument.NewPage(); - MyPageHelper.MyPromsPrinter.CreateWordDocPdf(cb, si, ref tmp, ref tmpstr); - Processed = true; - return yPageStart; - } - float yLocalypagestart = yPageStart; - // yPageStart is offset into roll; YTopMost is offset of topmost of this paragraph. - float yLocation = yPageStart - YTopMost; - DebugText.WriteLine("ToPdf1:{0},'{1}',{2},{3},{4},{5}", MyItemInfo.ItemID, MyItemInfo.ShortSearchPath, XOffset, yLocation, yPageStart, YTopMost); - int paginate = Paginate(yLocation, yTopMargin, yBottomMargin); - bool firstHighLevelStep = MyItemInfo.IsHigh && (MyItemInfo.MyPrevious == null); - switch (paginate) - { - case 0: // No page break - if (MyItemInfo.IsSection) - { - SectionInfo si = MyItemInfo as SectionInfo; - MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null); - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - } - break; - case 1: // Break on High Level Step - OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); - cb.PdfDocument.NewPage(); - DebugText.WriteLine("Paginate1"); - if (MyItemInfo.IsSection) - { - SectionInfo si = MyItemInfo as SectionInfo; - MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null); - } - // Only do foldout page if not done for section break, i.e. check the there's a previous step. - if (MyItemInfo.MyPrevious != null && (MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.UseSectionFoldout) != 0) - PromsPrinter.DoFoldoutPage(cb, "HLS", MyPageHelper.TextLayer, MyPageHelper); - - yPageStart = yTopMargin + YTopMost; - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - MyPageHelper.YMultiplier = 1; - break; - case 2: // Break within a Step - OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); - DocStyle docstyle = MyItemInfo.MyDocStyle; - string myMsg = docstyle.Continue.Bottom.Message; - if (myMsg != null && myMsg != "") - { - if (myMsg.IndexOf(@"%d") > -1) - myMsg = myMsg.Replace(@"%d", MyItemInfo.MyHLS.MyTab.CleanText.Trim()); - if (myMsg.IndexOf(@"%2d") > -1) - myMsg = myMsg.Replace(@"%2d", MyItemInfo.MyHLS.MyTab.CleanText.Trim(" .".ToCharArray()).PadLeft(2)); - float msg_yLocation = 0; - if (myMsg.Contains("{par}")) - { - myMsg = myMsg.Replace("{par}", ""); - msg_yLocation = -SixLinesPerInch; - } - switch (docstyle.Continue.Bottom.Location) - { - case E_ContBottomLoc.EndOfText: // place continue string at end of text - case E_ContBottomLoc.BtwnTextAndBottom: // place continue string between end of text & bottom of page - Console.WriteLine("Not done yet"); - break; - case E_ContBottomLoc.BottomOfPage: // place continue message at bottom of page - //msg_yLocation = yBottomMargin + 2 * SixLinesPerInch + (float)docstyle.Layout.FooterLength; // 2 lines above bottom margin - msg_yLocation = msg_yLocation + yBottomMargin + (float)docstyle.Layout.FooterLength; - break; - default: - Console.WriteLine("**** BOTTOM CONTINUE MESSAGE NOT CODED*****"); - break; - } - MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Bottom.Margin ?? 0, msg_yLocation, docstyle.Continue.Bottom.Font);// MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font); - } - cb.PdfDocument.NewPage(); - DebugText.WriteLine("Paginate2"); - if ((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.UseSectionFoldout) != 0) - PromsPrinter.DoFoldoutPage(cb, "Break within Step", MyPageHelper.TextLayer, MyPageHelper); // temporary foldout - - // If there is a box, adjust the yTopMost to include it. - float yTopMost = YTopMost; - //if (YVeryTop < yTopMost) Console.WriteLine("{0},{1},{2}", MyItemInfo.DBSequence, yTopMost, YVeryTop); - yTopMost = Math.Min(yTopMost,YVeryTop); - yPageStart = yTopMargin + yTopMost;// -2 * SixLinesPerInch; - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - if (EmptyTopMostPart) yPageStart += SixLinesPerInch; - myMsg = docstyle.Continue.Top.Message; - if (myMsg != null && myMsg != "") - { - yPageStart -= 2 * SixLinesPerInch;// Allow two lines for top continue message - if (myMsg.IndexOf(@"%d") > -1) - myMsg = myMsg.Replace(@"%d", MyItemInfo.MyHLS.MyTab.CleanTextNoSymbols.Trim(" .".ToCharArray())); - MyPageHelper.TopMessage = new vlnText(cb, this, myMsg, myMsg, docstyle.Layout.LeftMargin + XOffsetBox + docstyle.Continue.Top.Margin ?? 0, yTopMargin + 0.1F, docstyle.Continue.Top.Font);// MyItemInfo.ActiveFormat.PlantFormat.FormatData.Font); - } - MyPageHelper.YMultiplier = 1; - break; - case 3: // Break on High Level Step (SevenLinesPerInch) - if (!firstHighLevelStep) - { - OutputOtherPageSteps(cb, YTopMost, yPageStart, yTopMargin, yBottomMargin); - cb.PdfDocument.NewPage(); // HLS (7 lpi) breakif (MyItemInfo.IsSection) - DebugText.WriteLine("Paginate3"); - if (MyItemInfo.IsSection) - { - SectionInfo si = MyItemInfo as SectionInfo; - MyPageHelper.PageBookmarks.Add(MyItemInfo, ((si.DisplayNumber ?? "") == "" ? "" : si.DisplayNumber + " - ") + si.DisplayText, null); - } - if ((MyItemInfo.ActiveSection.MyDocStyle.StructureStyle.Style ?? 0 & E_DocStructStyle.UseSectionFoldout) != 0) - PromsPrinter.DoFoldoutPage(cb, "HLS (7 lpi) break", MyPageHelper.TextLayer, MyPageHelper); - } - if (MyItemInfo.MyParent != null && MyItemInfo.MyParent.IsStepSection && - MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout) - yPageStart = yPageStart; // if printing the section title, we already have the y location - else - yPageStart = yTopMargin + YTopMost; - MyPageHelper.YMultiplier = _SevenLinesPerInch / SixLinesPerInch; - DoCheckOffHeader(cb, MyItemInfo, yLocation, yTopMargin, yPageStart); - break; - } - yPageStart = ChildrenAbove.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - yPageStart = ChildrenLeft.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - yPageStart = ParagraphToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - yPageStart = ChildrenRight.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - yPageStart = ChildrenBelow.ToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - - if (MyItemInfo.IsHigh && MyItemInfo.NextItem == null) // last hls, add the 'end' message, if there is one - { - DocStyle docstyle = MyItemInfo.MyDocStyle; - string myMsg = (docstyle.End == null) ? null : docstyle.End.Message; - if (myMsg != null) - { - // If the flag is 0 or 1, just put the end message out right below this vlnParagraph: - float msg_yLocation = CalculateYLocation(yPageStart - YBottomMost, yTopMargin); - - // use the 'flag' to position the message. - if (docstyle.End.Flag > 2) // >2 position at an absolute location defined by docstyle.End.Flag. - { - msg_yLocation = yTopMargin - (float)(docstyle.End.Flag * SixLinesPerInch); - } - - if (myMsg.Contains("{Section Number}")) myMsg = myMsg.Replace("{Section Number}", MyItemInfo.ActiveSection.DisplayNumber); - - // center the message. - float wtpm = (float)docstyle.Layout.PageWidth - (float)docstyle.Layout.LeftMargin; - float centerpos = XOffsetBox + (float)docstyle.Layout.LeftMargin + (wtpm - (myMsg.Length * MyItemInfo.FormatStepData.Font.CharsToTwips)) / 2; - MyPageHelper.BottomMessage = new vlnText(cb, this, myMsg, myMsg, centerpos, msg_yLocation, docstyle.End.Font); - } - } - if (yLocalypagestart != yPageStart) DebugText.WriteLine("ToPdf-yPagestartDiff:{0},{1},{2}", MyItemInfo.ItemID, yLocalypagestart, yPageStart); - return yPageStart; - } - private vlnParagraph TopMostChild - { - get - { - if (ChildrenAbove.Count>0) return ChildrenAbove[0].TopMostChild; - return this; - } - } - private bool EmptyTopMostPart - { - get - { - if (TopMostChild.PartsAbove.Count == 0) return false; - foreach (vlnPrintObject po in TopMostChild.PartsAbove) - { - vlnHeader hd = po as vlnHeader; - if (hd == null) return false; - if (hd.Text != "") return false; - } - return true; - } - } - private void OutputOtherPageSteps(PdfContentByte cb, float YTopMost, float yPageStart, float yTopMargin, float yBottomMargin) - { - // Find any items remaining in MyPageHelper.MyParagraphs that should be printed on this page. - vlnParagraphs process = new vlnParagraphs(null); - foreach (vlnParagraph vPara in MyPageHelper.MyParagraphs.Values) - { - //if (!vPara.Processed && ((vPara.YOffset + vPara.Height) < YTopMost)) - if (!vPara.Processed && ((vPara.YOffset) < YTopMost)) - process.Add(vPara); - } - foreach (vlnParagraph vPara in process) - { - vPara.ParagraphToPdf(cb, yPageStart, yTopMargin, yBottomMargin); - } - } - private float _YVeryTop = -1; - public float YVeryTop - { - get - { - if (_YVeryTop == -1) - { - _YVeryTop = YTop; - _YVeryTop = VeryTop(PartsAbove,_YVeryTop); - _YVeryTop = VeryTop(PartsContainer,_YVeryTop); - } - return _YVeryTop; - } - } - - private float VeryTop(vlnPrintObjects parts, float yVeryTop) - { - if (parts != null) - foreach (vlnPrintObject part in parts) - if (part.YOffset < yVeryTop) - yVeryTop = part.YOffset; - return yVeryTop; - } - /// - /// This gets the height of the step with it's Caution's, Notes and potentially any First Substeps - /// - /// - private float GetFirstPieceSize() - { - vlnParagraph paraLast = GetFirstPieceLastPart(); - float retval = (paraLast.YBottom) - YTopMost; - //Console.WriteLine(MyItemInfo.DBSequence); - return retval; - } - public override float YBottom - { - get - { - float bottom = YOffset + Height; - if (PartsBelow != null) - { - foreach (vlnPrintObject part in PartsBelow) - { - float partBottom = part.YBottom; - bottom = Math.Max(partBottom, bottom); - } - } - return bottom; - } - } - public float YBottomText - { - get - { - return YOffset + Height; - } - } - private vlnParagraph GetFirstPieceLastPart() - { - vlnParagraph para = this; - if (!MyItemInfo.ActiveFormat.MyStepSectionLayoutData.PaginateOnFirstSubstep && ChildrenBelow != null && ChildrenBelow.Count > 0) - { - para = ChildrenBelow[0].GetFirstPieceLastPart(); - } - if (ChildrenRight != null && ChildrenRight.Count > 0) - { - foreach(vlnParagraph paraRight in ChildrenRight) - { - vlnParagraph paraRightLast = paraRight.GetFirstPieceLastPart(); - if (paraRightLast.YBottom > para.YBottom) - para = paraRightLast; - } - } - return para; - } - /// - /// Find items from previous page (yLocation less than yTop) and remove them from the list. - /// yTop is the new starting location on the next page for this step. - /// - /// - /// - private void RemoveProcessedParagraphs(StepLevelList myList, float yTop) - { - // the two CleanUpLists are used to remove items from - // the original list because list items cannot be removed in a - // 'foreach'. - List CleanupListStepLevel = new List(); - foreach(int stepLevel in myList.Keys) - { - List CleanupListYLocation = new List(); - SortedList AdjustYLocation = new SortedList(); - foreach (float yLocation in myList[stepLevel].Keys) - { - if (-yLocation <= yTop) - CleanupListYLocation.Add(yLocation); - else - AdjustYLocation.Add(-yLocation, yLocation); // order in ascending order - } - foreach (float yLocation in CleanupListYLocation) - myList[stepLevel].Remove(yLocation); - foreach (float yLocation in AdjustYLocation.Keys) - { - vlnParagraph para = myList[stepLevel][-yLocation]; - myList[stepLevel].Remove(-yLocation); - // shift yLocation by yTop to work with items whose locations - // are defined from the top of the new page rather than - // from the beginning of the step. - // Note that yLocation is negative to have items in descending - // order so that adding yTop decrements their values. - myList[stepLevel].Add(yTop-yLocation, para); - } - if (myList[stepLevel].Count == 0) - CleanupListStepLevel.Add(stepLevel); - } - foreach (int stepLevel in CleanupListStepLevel) - myList.Remove(stepLevel); - } - /// - /// Builds a list of paragraphs by StepLevel and yLocation in descending order. - /// - /// - /// - private void BuildLocationList(float yTopMost, ParagraphLocations myLocations) - { - foreach (vlnParagraph child in ChildrenAbove) - child.BuildLocationList(yTopMost, myLocations); - foreach (vlnParagraph child in ChildrenLeft) - child.BuildLocationList(yTopMost, myLocations); - - // Add a list entry consisting of StepLevel, yoffset from the beginning of this step, paragraph itself - myLocations.Add(this, yTopMost); - - foreach (vlnParagraph child in ChildrenRight) - child.BuildLocationList(yTopMost, myLocations); - foreach (vlnParagraph child in ChildrenBelow) - child.BuildLocationList(yTopMost, myLocations); - } - private int COL_WID_ADJ = 6; // adjusts for incorrect use of WidSTable when breaking a line (it breaks 6 chars too short) - public vlnParagraph(vlnParagraph parent, PdfContentByte cb, ItemInfo itemInfo, float xoff, float yoff, int rnoLevel, int maxRNO, FormatInfo formatInfo) - { - float savCheckListBottomMost = 0; - //int[] problemIDs = { 889 }; - //List lProblemIDs = new List(problemIDs); - //if (lProblemIDs.Contains(itemInfo.ItemID)) - // Console.WriteLine("Found Item {0}", itemInfo.ItemID);formatInfochecko - MyParent = parent; - // The following code determines the last paragraph for an RNO - // MyTopRNO finds the Top paragraph for an RNO - if (itemInfo.IsInRNO) - { - if (rnoLevel <= maxRNO && itemInfo.IsRNOPart) // Not top level RNO - MyTopRNO = this; - else - MyTopRNO = MyParent.MyTopRNO; - if(MyTopRNO != null) MyTopRNO.LastRNO = this; - } - MyContentByte = cb; - MyPageHelper.MyParagraphs.Add(itemInfo.ItemID, this); - MyItemInfo = itemInfo; - XOffset = xoff; - if (!MyItemInfo.IsStep && !MyItemInfo.IsStepSection) - { - IsWordDocPara = true; - // special case - this is a 'Word Doc' paragraph. The Processed flag is used to know - // that steps need put out on a page for the pagination logic, and since there are no steps - // we don't want to have to worry about putting this out for pagination logic. - Processed = true; - return; - } - YTopMost = YOffset = yoff; - vlnTab mytab = null; - bool doSectTab = false; - // if this substep has a caution or note as its parent, then there may have been a special indent done on the - // substep... check the CautionOrNoteSubstepIndent value, this is the additional indent amount in number - // of characters. - if (itemInfo.MyParent.IsCaution || itemInfo.MyParent.IsNote) - XOffset += 72 * (itemInfo.FormatStepData.CautionOrNoteSubstepIndent == null ? 0 : (float)itemInfo.FormatStepData.CautionOrNoteSubstepIndent / (float)itemInfo.FormatStepData.Font.CPI); - - if (itemInfo.IsStep && itemInfo.MyHLS.FormatStepData.UseSmartTemplate && - itemInfo.FormatStepData.StepLayoutData.AlignWithParentTab - || (itemInfo.Steps != null && itemInfo.Steps.Count > 0 && itemInfo.Steps[0].FormatStepData.StepLayoutData.AlignWithParentTab)) - itemInfo.MyTab = null; - if (itemInfo.MyTab != null && itemInfo.MyTab.Text != null && itemInfo.MyTab.Text != "") - { - float localXOffset = XOffset; - bool doprint = true; - if (itemInfo.IsSection) - { - SectionConfig sch = MyItemInfo.MyConfig as SectionConfig; - if (!(MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout) - && - ((sch != null && sch.Section_PrintHdr != "Y") || !MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections)) doprint = false; - } - if (doprint && itemInfo.IsSection && !itemInfo.MyDocStyle.CancelSectTitle && itemInfo.MyTab.Text.ToUpper() != "FOLDOUT") - { - doSectTab = true; - if (itemInfo.IsStepSection && formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Just == "PSLeft") - { - float offset = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - if (formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos != null) - { - // determine level of metasections. This level will be used to calculate the - // indent. DO I NEED THIS HERE???? - int level = 0; - ItemInfo iilvl = itemInfo; - while (!iilvl.IsProcedure) - { - level++; - iilvl = iilvl.MyParent; - } - level = level <= 2 ? 1 : level - 1; - if (level == 1) - offset += (float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos; - else - offset += (level-1) * ((float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos-(float)formatInfo.PlantFormat.FormatData.SectData.SectionNumber.Pos); - } - localXOffset = offset; - } - } - if (!itemInfo.IsSection || doSectTab) - { - mytab = new vlnTab(cb, this, itemInfo.MyTab.Text, itemInfo.MyTab.CleanText, localXOffset, yoff, itemInfo.MyTab.MyFont, doSectTab, StepRTB.MySymbolFontName, itemInfo.MyTab.RemovedStyleUnderline); - PartsLeft.Add(mytab); - if (mytab.MyMacro != null) PartsLeft.Add(mytab.MyMacro); - } - } - AdjustWidth(itemInfo, maxRNO, formatInfo, mytab); - AdjustXOffsetForTab(itemInfo, maxRNO, formatInfo, mytab); - if (itemInfo.MyHeader != null && itemInfo.MyHeader.Text != null && !doSectTab) - yoff += SetHeader(this, cb, itemInfo, formatInfo); - if (itemInfo.Cautions != null && !(itemInfo.IsCaution || itemInfo.IsNote)) - yoff = ChildrenAbove.Add(cb, itemInfo.Cautions, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - if (itemInfo.Notes != null && !(itemInfo.IsCaution || itemInfo.IsNote)) - yoff = ChildrenAbove.Add(cb, itemInfo.Notes, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - - // If the format has that extra space should be put out before the step, then - // handle this by using the 'PartsAbove' structure. By using the parts above, the extra - // space above will be done regardless of where page breaks fall. - float addExtraSpace = (MyItemInfo.FormatStepData == null) ? 0 : MyItemInfo.FormatStepData.StepLayoutData.STExtraSpace ?? 0; - // If a high level step, the 16bit code uses the value of the extra space - // from the high level step format regardless of what type of high level step it is: - if (MyItemInfo.IsHigh) - addExtraSpace = MyItemInfo.ActiveFormat.PlantFormat.FormatData.StepDataList[2].StepLayoutData.STExtraSpace ?? 0; - if (addExtraSpace > 0) this.PartsAbove.Add(new vlnText(cb, this, " ", " ", 0, yoff, MyItemInfo.FormatStepData.Font)); - yoff += addExtraSpace; - - YTop = yoff; - YOffset = yoff; - if (mytab != null && mytab.SeparateBullet) - { - string identB = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.IdentB; - vlnText myBullet = new vlnText(cb, this, identB, identB, XOffset - 12, YOffset, MyItemInfo.FormatStepData.TabData.Bullet.Font); - myBullet.Rtf = myBullet.Rtf.Replace("\u25CF", @"\f1\u9679?\f0 "); - PartsLeft.Add(myBullet); - } - if (itemInfo.IsRNOPart) - { - // there may be other places that double space, but this supports it for RNOs (the DoubleRNOspace flag) - if (rnoLevel > maxRNO && itemInfo.FormatStepData.DoubleSpace) yoff = YOffset = yoff + SixLinesPerInch; - } - AddMacros(itemInfo, mytab); - if (mytab != null) - { - mytab.YOffset = yoff; - if (mytab.MyMacro != null) mytab.MyMacro.YOffset = yoff; - } - float yForCheckoff = yoff; //0; - default checkoff row is same as FIRST line of text - // if dropCheckoff is true, then the checkoff is place on the same of row as the LAST line of text - bool dropCheckoff = itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.DropCheckOff; - if (itemInfo.MyContent.MyGrid != null) - { - VlnFlexGrid myFlexGrid = new VlnFlexGrid(1,1); - myFlexGrid.LoadGrid(itemInfo); - MyGrid = new vlnTable(myFlexGrid, cb); - Height = MyGrid.Height; - Width = MyGrid.Width; - //yForCheckoff = yoff + Height - SixLinesPerInch; - if (dropCheckoff) - yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text - yoff += (Height + (2 * SixLinesPerInch)); - CalculateXOffset(itemInfo, maxRNO, formatInfo); - } - else if (itemInfo.IsFigure) // if a figure we've got to determine the size: - { - string erMsg = null; - if (itemInfo.MyContent.Text != null) - { - ProcedureInfo proc = itemInfo.MyProcedure; -// DocVersionInfo dvi = proc.ActiveParent as DocVersionInfo; - DocVersionInfo dvi = proc.MyDocVersion; - ROFstInfo rofst = dvi.DocVersionAssociations[0].MyROFst; - rofst.docVer = dvi; - ROFSTLookup lookup = rofst.ROFSTLookup; - string linkInfoText = itemInfo.MyContent.Text.Replace(@"\v ", ""); - if (linkInfoText.Contains("?")) - erMsg = "RO was not found during data migration."; - else - { - Match m = Regex.Match(linkInfoText, @"(.*)[#]Link:([A-Za-z]*):(.*)"); - string[] subs = m.Groups[3].Value.Split(" ".ToCharArray()); - string roid = subs[1]; - string val = lookup.GetRoValue(subs[1]); - if (val == null) val = lookup.GetRoValue(subs[1].Substring(0, 12)); - if (val != null) - { - string[] vals = val.Split("\n".ToCharArray()); - Width = Int32.Parse(vals[3], System.Globalization.NumberStyles.AllowHexSpecifier) * MyItemInfo.FormatStepData.Font.CharsToTwips; - int lines = Int32.Parse(vals[2], System.Globalization.NumberStyles.AllowHexSpecifier); - Height = lines * SixLinesPerInch; - //yForCheckoff = yoff + Height - SixLinesPerInch; - if (dropCheckoff) - yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text - yoff += (Height + (2 * SixLinesPerInch)); - - try - { - ROImageInfo roImage = ROImageInfo.GetByROFstID_FileName(rofst.ROFstID, vals[0]); - if (roImage != null) - ImageText = val; - else - erMsg = string.Format("Image {0} does not exist.", vals[0]); - } - - catch (Exception ex) - { - erMsg = string.Format("Image {0} does not exist, error = {1}.", vals[0], ex.Message); - } - } - } - if (erMsg != null) Rtf = GetRtf(erMsg, itemInfo.ActiveFormat.PlantFormat.FormatData.Font); - CalculateXOffset(itemInfo, maxRNO, formatInfo); - } - } - else - { - Rtf = GetRtf(itemInfo); - // Need the following with some modifications for WCNCKL format: - if (Rtf.Contains("{Backspace}")) - { - XOffset -= 22; - Width += 24; - Rtf = Rtf.Replace("{Backspace}", ""); - } - if (itemInfo.IsStep && itemInfo.MyHLS.FormatStepData.UseSmartTemplate) - { - if (itemInfo.FormatStepData.StepLayoutData.AlignWithParentTab - || (itemInfo.Steps != null && itemInfo.Steps.Count > 0 && itemInfo.Steps[0].FormatStepData.StepLayoutData.AlignWithParentTab)) - { - int stplevl = TheStepLevel(itemInfo); - if (stplevl >= 0 && MyItemInfo.MyHLS.FormatStepData.VertPos[stplevl] > 0) - XOffset = float.Parse(MyItemInfo.MyHLS.FormatStepData.VertPos.Split(",".ToCharArray())[stplevl]) + (float)itemInfo.MyDocStyle.Layout.LeftMargin; - } - } - if (itemInfo.IsTablePart) // Not for grid, this is for old-style tables. - { - Width = GetTableWidth(cb, IParagraph, MyItemInfo.MyDocStyle.Layout.PageWidth); - CalculateXOffset(itemInfo, maxRNO, formatInfo); - } - else - if (itemInfo.FormatStepData != null && itemInfo.FormatStepData.StepPrintData != null) XOffset += (float)(itemInfo.FormatStepData.StepPrintData.PosAdjust ?? 0); - - bool printMetaHdr = false; - if (itemInfo.Steps != null && itemInfo.IsSection && itemInfo.Sections != null && itemInfo.Sections.Count > 0) - { - SectionConfig sc = itemInfo.MyConfig as SectionConfig; - if ((sc != null && sc.Section_PrintHdr == "Y") && itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.UseMetaSections) printMetaHdr = true; - } - - // If WCN checklists, the substeps are printed in a row, need to keep track of the 'longest' in - // y direction (bottommost) across the row. - if (itemInfo.IsStep && itemInfo.MyHLS.FormatStepData.UseSmartTemplate && (TheStepLevel(itemInfo)>0)) - { - // do I need to get max of savCheckListBottomMost & (yoff+Height+SixLinesPerInch) - savCheckListBottomMost = yoff + Height + SixLinesPerInch; - } - // Get Y offset for regular steps, or if section title is output or if not within row (not last column of - // text) for wcn checklist, i.e. . - if ((!itemInfo.IsStepSection && !itemInfo.MyHLS.FormatStepData.UseSmartTemplate) - || printMetaHdr || - (formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !MyItemInfo.MyDocStyle.CancelSectTitle - && !MyItemInfo.MyDocStyle.SpecialStepsFoldout) - // In WCN Checklist: I don't have children or if I have children the first child doesn't alignwithparent. - || (!itemInfo.IsStepSection && itemInfo.MyHLS.FormatStepData.UseSmartTemplate - && ((itemInfo.Steps == null || itemInfo.Steps.Count == 0) - || !itemInfo.Steps[0].FormatStepData.StepLayoutData.AlignWithParentTab))) - { - yoff += Height; - yoff += AdjustForBlankLines(); - if (dropCheckoff) - yForCheckoff += Height - SixLinesPerInch; // place checkoff on last row of text - } - } - CheckOff co = itemInfo.GetCheckOffStep(); - if (co != null) - { - //float xloc_co = (float)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.XLocation + (float)itemInfo.MyDocStyle.Layout.LeftMargin; - float xloc_co = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.XLocation != null) - xloc_co += (float)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.XLocation; - PartsRight.Add(new vlnMacro(xloc_co, yForCheckoff, co.Macro)); - } - float yOffRight = yoff; - float RnoOffset = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO); - if (rnoLevel < maxRNO && itemInfo.RNOs != null) yOffRight = ChildrenRight.Add(cb, itemInfo.RNOs, XOffset + RnoOffset, YTop, YTop, rnoLevel + 1, maxRNO, formatInfo); - // Need code to determine if the table will overlap the Right Column if it does then - // use YOffRight rather than yoff - if (itemInfo.Tables != null) - { - bool aerTableOrFigure = itemInfo.FormatStepData.Type.Contains("AER"); - // get the first table & see if it is borderless. If borderless, 16bit code removed a - // line (yoffset) before printing it: - float yoffadj = 0; - if (itemInfo.Tables[0].IsTable) - { - VlnFlexGrid fg = new VlnFlexGrid(1, 1); - fg.LoadGrid(itemInfo.Tables[0]); - if (fg.BorderStyle == C1.Win.C1FlexGrid.Util.BaseControls.BorderStyleEnum.None) yoffadj = -SixLinesPerInch; - } - - if(!aerTableOrFigure && itemInfo.RNOLevel == 0) // Centered Table - yoff = ChildrenBelow.Add(cb, itemInfo.Tables, XOffset, yOffRight, yOffRight, rnoLevel, maxRNO, formatInfo); - else // AER or RNO Table - yoff = ChildrenBelow.Add(cb, itemInfo.Tables, XOffset, yoff, yOffRight, rnoLevel, maxRNO, formatInfo); - } - - // Look for the meta section case where the 'Editable' flag is set to 'N', which means that - // these steps should not be printed: - bool printsteps = true; - if (itemInfo.Steps != null && itemInfo.IsSection && itemInfo.Sections!=null && itemInfo.Sections.Count>0) - { - SectionConfig sc = itemInfo.MyConfig as SectionConfig; - if (sc != null && sc.SubSection_Edit != "Y") printsteps = false; - } - - if (itemInfo.Steps != null && printsteps) yoff = ChildrenBelow.Add(cb, itemInfo.Steps, XOffset, yoff, yOffRight, rnoLevel, maxRNO, formatInfo); - if (itemInfo.Sections != null) yoff = ChildrenBelow.Add(cb, itemInfo.Sections, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - if (itemInfo.Procedures != null) yoff = ChildrenBelow.Add(cb, itemInfo.Procedures, xoff, yoff, yoff, rnoLevel, maxRNO, formatInfo); - if (rnoLevel >= maxRNO && itemInfo.RNOs != null) yoff = ChildrenBelow.Add(cb, itemInfo.RNOs, XOffset, yoff, yoff, rnoLevel + 1, maxRNO, formatInfo); - yoff = Math.Max(yoff, yOffRight); - // TODO - use RNOSepAfterAER flag too: - string tmpRnoSepStr = formatInfo.MyStepSectionPrintData.RNOSepString; - if (rnoLevel < maxRNO && itemInfo.RNOs != null && tmpRnoSepStr != null) - { - vlnParagraph rno = ChildrenRight[0]; - vlnParagraph bottomChild = BottomChild; - float xsep = MyHighLevelParagraph.XOffset + RnoOffset; - vlnRNOSeparator myRnoSep = new vlnRNOSeparator(this, cb, tmpRnoSepStr, xsep, yoff, formatInfo, bottomChild==null?true:bottomChild.MyItemInfo.HasChangeBar); - // TODO: May need to handle more than one RNO column for RNO Separator - if (rno.LastRNO.MyItemInfo.HasChangeBar == false && bottomChild != null && bottomChild.MyItemInfo.HasChangeBar) - bottomChild.PartsBelow.Add(myRnoSep); - else - rno.LastRNO.PartsBelow.Add(myRnoSep); - yoff += myRnoSep.Height + SixLinesPerInch; - } - YBottomMost = yoff; - - // For WCN Checklist, the substeps are in rows of data. The YBottomMost is the bottom most for - // the row. - if (savCheckListBottomMost != 0 && savCheckListBottomMost>YBottomMost) YBottomMost = savCheckListBottomMost; - } - - private int TheStepLevel(ItemInfo itemInfo) - { - if (itemInfo.IsHigh) return -1; - int lev = 0; - ItemInfo ii = itemInfo; - while (!ii.MyParent.IsHigh) - { - lev++; - ii = ii.MyParent; - } - return lev; - } - - private string SectionHasCheckOffHeader(ItemInfo itemInfo, ref VE_Font font) - { - // If the passed in itemInfo is not a section, get it's parent section. This may be a subsection, so - // it will be found here, versus using 'MyActiveSection'. - while (!itemInfo.IsSection) - { - itemInfo = itemInfo.MyParent; - } - // See if this section has a checkoffheading index - this value, if set is stored in the config field. - // -1 flags no entries in the format's CheckOffHeaderList & 0 flags the first - // entry which is always '{NO HEADING}'. So only continue if it's greater than 0. - SectionInfo si = SectionInfo.Get(itemInfo.ItemID); // sometimes the itemInfo isn't a section info - int sindx = si.CheckOffHeadingIndex(); - - // If there is a checkoff header for this section, see if this section has subsections. - // If this has a header but no subsections, put out the header. - // Else if this section has a header AND subsections, don't put it out... - // the subsection's checkoff header will be processed (or lack there of). - bool doCheckoffHeader = sindx > 0 && (itemInfo.Sections == null || itemInfo.Sections.Count == 0); - - // if doing it, then grab the string from the format.... CHECK if this works for subsection, it is - // getting ActiveSection which may return the top section, not subsections. - if (doCheckoffHeader && itemInfo.SectionCheckOffHeader != "") - { - font = itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font; - return itemInfo.SectionCheckOffHeader; - } - return null; - } - - private void DoCheckOffHeader(PdfContentByte cb, ItemInfo itemInfo, float yLocation, float yTopMargin, float yPageStart) - { - // CheckOffHeaders are handled in two different ways: - // 1) Where the pagelist item puts them - this is at the 'top' of the page, when the current section on the - // page has a checkoff header defined. Support for this is here AND in the VlnSvgPageHelper pagelist code. - // 2) If a continuous section, and it doesn't start at 'top' of the page, then the checkoff header is - // printed on the same line as the continuous section. Support for this is here, the check off header is added - // to the 'PartRight' off of the section's VlnParagraph. - - // First see if there is any checkoff data in the format file and that there - // is a pagelist item for the checkoff header. - if (itemInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffList.Count <= 0) return; - if (MyPageHelper.PageListCheckOffHeader == null) return; - - VE_Font font = null; - ItemInfo mySectionInfo = itemInfo.MyActiveSection; - ItemInfo mySubSectionInfo = itemInfo; - - // If the passed in itemInfo is not a section, get it's parent section. This may be a subsection, so - // it will be found here, versus using 'MyActiveSection' which is the topmost section. The passed in - // item may be a regular step, i.e. if a page break had occurred. - if (!itemInfo.IsSection) - { - while (!mySubSectionInfo.IsSection) - { - mySubSectionInfo = mySubSectionInfo.MyParent; - } - } - else - mySubSectionInfo = (mySectionInfo.Sections == null)?null:mySectionInfo.Sections[0]; - - if (mySectionInfo == mySubSectionInfo) mySubSectionInfo = null; - - // The following duplicates the 16bit logic. The 16bit logic only put out a header if: - // there is no subsection and section has a header (from config); - // OR there is a subsection and the first subsection has a header. - // For locating the header in 16bit logic: - // If no subsections, output with section - // If subsections and continuous section, put out on same line as subsection. (done here) - // If subsections and starts at top of page, (on top of page, use pagelist code in VlnSvgPageHelper) - - // Get SectionInfos to access specific section config items... - SectionInfo si = SectionInfo.Get(mySectionInfo.ItemID); - int sindx = si.CheckOffHeadingIndex(); - SectionInfo subi = mySubSectionInfo == null ? null : SectionInfo.Get(mySubSectionInfo.ItemID); - int subindx = subi==null?-1:subi.CheckOffHeadingIndex(); - - // if there is no subsections & the main section doesn't use a header OR - // if there is a subsection, & it does not use a header... Return. - if ((subi==null&&sindx < 1) || (subi!=null&&subindx<1)) return; - - // figure out location now: - // if step, it uses pagelist logic to locate it (this is a page break condition). - // if continuous, put out with subsection if there is one, otherwise section. - // otherwise, use pagelist logic. - bool usePageListCOHdr = false; - - if (itemInfo.IsStep) - usePageListCOHdr = true; - else if (subi == null) //no subsection - { - if ((yPageStart - YOffset) == yTopMargin) usePageListCOHdr = true; - } - else - { - if (mySectionInfo == itemInfo && ((yPageStart - YOffset) == yTopMargin)) usePageListCOHdr = true; - if (!usePageListCOHdr && mySubSectionInfo != itemInfo) return; - } - - // grab the string from the format, depending on whether it should get it from the section or subsection. - string cohead = (mySubSectionInfo!=null)?mySubSectionInfo.SectionCheckOffHeader:mySectionInfo.SectionCheckOffHeader; - if (cohead == "" || cohead == null) return; - - // PageListCheckOffHeader is an svgtext - but really we only need the x/y location for this (pagelist support) - // The actual text is from the checkoff header selection in the section config. - if (cohead != MyPageHelper.PageListLastCheckOffHeader) - { - font = mySectionInfo.ActiveFormat.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList[sindx].Font; - float chkOffY = CalculateYLocation(YTopMost, yTopMargin); - if (MyPageHelper.YMultiplier != 1) - { - chkOffY = -1 + yTopMargin - (yTopMargin - yLocation) * MyPageHelper.YMultiplier; - if (Rtf != null) - IParagraph.Leading = _SevenLinesPerInch; - } - if (!usePageListCOHdr) - { - vlnText myCOHead = new vlnText(cb, this, cohead, cohead, MyPageHelper.PageListCheckOffHeader.X.Value + (float)MyItemInfo.MyDocStyle.Layout.LeftMargin, chkOffY, font); - PartsRight.Add(myCOHead); - } - else - MyPageHelper.PageListTopCheckOffHeader = cohead; - MyPageHelper.PageListLastCheckOffHeader = cohead; - } - } - internal vlnParagraph BottomChild - { - get - { - float bottomChildYBottomText = YBottomText; - vlnParagraph bottomChild = this; - foreach (vlnParagraph child in ChildrenRight) - { - vlnParagraph grandChild = child.BottomChild; - if (grandChild != null && grandChild.YBottomText > bottomChildYBottomText) bottomChild = grandChild; - if (grandChild != null && grandChild.YBottomText == bottomChildYBottomText && grandChild.MyItemInfo.HasChangeBar) bottomChild = grandChild; - bottomChildYBottomText = bottomChild.YBottomText; - } - foreach (vlnParagraph child in ChildrenBelow) - { - vlnParagraph grandChild = child.BottomChild; - if (grandChild != null && grandChild.YBottomText > bottomChildYBottomText) bottomChild = grandChild; - if (grandChild != null && grandChild.YBottomText == bottomChildYBottomText && grandChild.MyItemInfo.HasChangeBar) bottomChild = grandChild; - bottomChildYBottomText = bottomChild.YBottomText; - } - return bottomChild; - } - } - private void CalculateXOffset(ItemInfo itemInfo, int maxRNO, FormatInfo formatInfo) - { - bool aerTableOrFigure = itemInfo.FormatStepData.Type.Contains("AER"); - vlnParagraph hls1 = MyParent; - while (hls1.MyParent != null && !hls1.MyItemInfo.IsHigh) hls1 = hls1.MyParent; - float colR = float.Parse(formatInfo.MyStepSectionLayoutData.ColRTable.Split(",".ToCharArray())[itemInfo.ColumnMode]); - float xLowerLimit = hls1.XOffset; - float xUpperLimit = hls1.XOffset + hls1.Width + colR * itemInfo.ColumnMode; - float TableCenterPos = float.Parse(formatInfo.MyStepSectionLayoutData.TableCenterPos.Split(",".ToCharArray())[itemInfo.ColumnMode]); - if (formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel) - { - float pageWidth = ((float)itemInfo.MyActiveSection.MyDocStyle.Layout.PageWidth); //* (float)MyItemInfo.FormatStepData.Font.CPI / 12; - float leftMargin = ((float)itemInfo.MyActiveSection.MyDocStyle.Layout.LeftMargin); //* (float)MyItemInfo.FormatStepData.Font.CPI / 12; - XOffset = leftMargin + (pageWidth - leftMargin - Width) / 2; - } - else - { - // Determine center of hls - XOffset = hls1.XOffset + hls1.Width / 2; - // Determine left edge of the table by subtracting 1/2 of its width. - XOffset -= Width / 2; - if (aerTableOrFigure || itemInfo.RNOLevel != 0) // AER or RNO - XOffset = MyParent.XOffset + MyParent.Width / 2 - Width / 2; - else if (TableCenterPos != 0) - XOffset = TableCenterPos; - else // Centered Table or Figure - { - // Add in 1/2 of the width of all RNO columns - XOffset += (colR * itemInfo.ColumnMode) / 2; - if (!aerTableOrFigure) - { - // 05/14/12 - 16bit code adjusts the center depending upon the CPI of the table font. - // Start with XOffset of table, then calculate the XOffset adjusted for the table font, - // based on the default CPI of 12. Adjust the XOffset by the difference of these - // two numbers. - XOffset -= (XOffset - (XOffset * (float)MyItemInfo.FormatStepData.Font.CPI / 12)); - } - XOffset -= 12; // This makes the 16bit & 32bit align very closely. - } - // 05/14/12 - The PosAdjust is a format flag from 16bit. For WCN2, it appears that this amount equals - // the amount of difference from a 10 CPI to a 12 CPI font. See comment above. - if (itemInfo.FormatStepData != null && itemInfo.FormatStepData.StepPrintData != null) - XOffset += (float)(itemInfo.FormatStepData.StepPrintData.PosAdjust ?? 0); - } - - - // if the XOffset < High Level Step Text's XOffset, then align with the High Level Step Text - if (XOffset < xLowerLimit && Width < (xUpperLimit - xLowerLimit)) - XOffset = xLowerLimit; - - // if the right margin exceeds the right edge of the rightmost RNO, then adjust right edge to match. - if (XOffset + Width > xUpperLimit) - XOffset = xUpperLimit - Width; - - // because of the above, if it pushes beyond the left margin, use the left margin. - if (XOffset < (float)itemInfo.MyDocStyle.Layout.LeftMargin) - XOffset = XOffsetBox = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - } - private float AdjustForBlankLines() - { - if (MyItemInfo.MyDocStyle.SpecialStepsFoldout) return 0; - int everyNLines = MyItemInfo.FormatStepData == null ? 1 : MyItemInfo.FormatStepData.StepLayoutData.EveryNLines ?? 1; - if (MyItemInfo.Ordinal % everyNLines == 0 || MyItemInfo.NextItem == null) return SixLinesPerInch; - return 0; - } - private void AddMacros(ItemInfo itemInfo, vlnTab mytab) - { - float y = YOffset; - float x = mytab == null ? XOffset : mytab.XOffset + mytab.TabOffset; - List myMacros = itemInfo.MyMacros; - if (myMacros != null) - { - foreach (Macro myMacro in myMacros) - { - PartsLeft.Add(new vlnMacro(x, y, myMacro.MacroDef)); - } - } - } - // HLP Change bar flags in format file: - // Locations: With Text, Outside Box, AER on Left RNO on Right, To The Left of Text - // Text: Date & Change ID, Revision Number, Change ID, None, Custom (use input data) - // Flag AERChgBarMsgRNOChgBarNoMsg and AERMsgRNONoMsg are NOT Used in 16-bit. - private string cbMess = null; - private vlnChangeBar DoChangeBar(PdfContentByte cb, ItemInfo itemInfo, VlnSvgPageHelper myPageHelper, float xoff, float yoff, int maxRNO, FormatInfo formatInfo) //, vlnChangeBar myCB) - { - // find column for the change bar based on format flags - this is code from 16-bit - // if AbsoluteFixedChangeColumn - // if FixedAERChangeColumn - // if col>ColsS+ColR+COL_WID+ADJ - // FixedChangeColumn - // else - // AERLeftChangeBarLocation() - // else - // FixedChangeColumn - // else - // ChangeBarLocation() - ChangeBarData cbd = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData; - float cols = formatInfo.MyStepSectionLayoutData.ColS ?? 0; - float colr = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO); -// FixedChangeColumn + - Column location for change bars - // 0 - Separate AER and RNO change bars to the right of the text - // -10 to -1 - Change bars on left (specify # of columns from the text) - // <-10 - AER change bars on the left and RNO change bars on the right. -// FixedAERChangeColumn overrides the -5 default setting in chgbar.c, value is converted to a negative by the code - - float col = (cbd.AbsoluteFixedChangeColumn) ? - ((cbd.FixedAERChangeColumn ?? 0) > 0) ? - (xoff > (cols + colr + COL_WID_ADJ)) ? - cbd.FixedChangeColumn ?? 0 : AERLeftChangeBarLocation(formatInfo) : - cbd.FixedChangeColumn ?? 0 : ChangeBarLocation(xoff, this, formatInfo, maxRNO); - - if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.ChgID) - cbMess = itemInfo.MyContent.UserID; - else if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.DateChgID) - { - string fmtDate = itemInfo.MyContent.DTS.ToShortDateString(); - if (fmtDate.Length != 10) // need to add zeros - { - if (fmtDate.IndexOf("/") == 1) - fmtDate = "0" + fmtDate; - if (fmtDate.IndexOf("/", 3) == 1) - fmtDate = fmtDate.Substring(0, 3) + "0" + fmtDate.Substring(3, fmtDate.Length - 3); - } - cbMess = itemInfo.MyContent.UserID + @"\n" + fmtDate; - } - else if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.RevNum) - cbMess = myPageHelper.Rev; - else if (myPageHelper.ChangeBarDefinition.MyChangeBarText == PrintChangeBarText.UserDef) - cbMess = myPageHelper.ChangeBarDefinition.MyChangeBarMessage; - - int msgAlign = Element.ALIGN_LEFT; - if (myPageHelper.ChangeBarDefinition.MyChangeBarLoc == PrintChangeBarLoc.LeftOfText || - (myPageHelper.ChangeBarDefinition.MyChangeBarLoc == PrintChangeBarLoc.AERleftRNOright && - !itemInfo.IsInRNO)) msgAlign = Element.ALIGN_RIGHT; - return new vlnChangeBar(cb, this, (float)itemInfo.MyDocStyle.Layout.LeftMargin + (col * itemInfo.FormatStepData.Font.CharsToTwips), yoff, msgAlign); - } - - private int ChangeBarLocation(float c, vlnParagraph paragraph, FormatInfo formatInfo, int maxRNO) - { - int fixedChgCol = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData.FixedChangeColumn ?? 0; - float cols = formatInfo.MyStepSectionLayoutData.ColS ?? 0; - int colr = ToInt(formatInfo.MyStepSectionLayoutData.ColRTable, maxRNO); - float tmpc = c; - if (MyItemInfo.IsCaution || MyItemInfo.IsNote) - { - // Temporary fix for change bars on Notes and Cautions where the FixedChgCol < -10 - tmpc = (float)formatInfo.MyStepSectionLayoutData.ColT + (float)formatInfo.MyStepSectionLayoutData.WidT; // end position of Caution / Note - int typ = (int)(MyItemInfo.MyContent.Type % 10000); - int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex; - if (bxIndx != null) - { - Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bx != null) - tmpc = (float)bx.Start + (float)bx.End; // end position of a boxed Caution / Note - } - } - // if this is a caution or note, put the change bar to the right of the text: - //if ((paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote) && fixedChgCol < -10) return -fixedChgCol; - if ((fixedChgCol == 0))// && paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote) - //if ((fixedChgCol==0) || paragraph.MyItemInfo.IsCaution || paragraph.MyItemInfo.IsNote) - { - float rightEdge = (paragraph.XOffset + paragraph.Width + 5); - rightEdge-=(float)paragraph.MyItemInfo.MyDocStyle.Layout.LeftMargin; - rightEdge = rightEdge/paragraph.MyItemInfo.FormatStepData.Font.CharsToTwips; - return (int)rightEdge; - } - if (fixedChgCol < -10 || fixedChgCol >= 0) - return ((fixedChgCol > 0) ? fixedChgCol : - (fixedChgCol == 0) ? (int)c + 1 : - (tmpc > (cols + colr + COL_WID_ADJ)) ? -fixedChgCol : - //(c > (cols + colr + COL_WID_ADJ) || (MyItemInfo.IsCaution || MyItemInfo.IsNote)) ? -fixedChgCol : - AERLeftChangeBarLocation(formatInfo)); - else - return (int)(fixedChgCol + (((c < cols + Width + colr) || TableTest() - || MyItemInfo.IsCaution || MyItemInfo.IsNote) ? 0 : cols + colr)); // || (GetColumnMode() == 0)) ? 0 : cols + colr)); - /* Change bars to left of text -- ColS+WidS+ColR is the end of RNO col*/ - } - /* - ** Centered tables whose width exceeds the end of the RNO column should - ** still have their change bars printed on the left. This procedure checks - ** to make sure the step is a table and that it is not an RNO. - */ - private bool TableTest() - { - return false; - //return ((s->Type == TABLE || s->Type == BORDERLESSTABLE) && - //!(strchr((char *)&s->dbseq[2],RNO_MARKER))); - } - private float GetBottomYoff(float bottomY) - { - foreach (vlnParagraph child in ChildrenBelow) - { - if (child.YOffset > bottomY) bottomY = child.YOffset; - bottomY = child.GetBottomYoff(bottomY); - } - return bottomY; - } - private int AERLeftChangeBarLocation(FormatInfo formatInfo) - { - // use -5 default unless it is format specified - int fixedAERChgCol = formatInfo.PlantFormat.FormatData.ProcData.ChangeBarData.FixedAERChangeColumn ?? 0; - return (fixedAERChgCol != 0) ? - (fixedAERChgCol > 100) ? - (fixedAERChgCol % 100) : -fixedAERChgCol : -5; - } - private StringBuilder _RtfSB = null; - - // return rtf and use for tab and other text - public string GetRtf(ItemInfo itemInfo) - { - _RtfSB = new StringBuilder(); - DisplayText vlntxt = new DisplayText(itemInfo, E_EditPrintMode.Print, E_ViewMode.View, true, E_FieldToEdit.StepText, false); - System.Drawing.Font myFont = vlntxt.TextFont.WindowsFont; - if (!itemInfo.IsTable && StepRTB.MyFontFamily != null) - myFont = new System.Drawing.Font(StepRTB.MyFontFamily, myFont.Size, myFont.Style); - if (itemInfo.IsHigh && itemInfo.MyDocStyle.UndSpecialStepsFoldout) myFont = new System.Drawing.Font(myFont.FontFamily, myFont.Size, myFont.Style | FontStyle.Underline); - _RtfSB.Append(AddFontTable(myFont)); - _RtfSB.Append(vlntxt.StartText); - _RtfSB.Append("}"); - return _RtfSB.ToString(); - } - private float _XOffsetBox = 0; - public float XOffsetBox - { - get { return _XOffsetBox; } - set { _XOffsetBox = value; } - } - private float SetHeader(vlnParagraph para, PdfContentByte cb, ItemInfo itemInfo, FormatInfo formatInfo) - { - float xoff = (float)itemInfo.MyDocStyle.Layout.LeftMargin; - // The '6' below is really converting from characters to Twips. But instead of considering the CPI, 16bit assumed - // it was 12 to center the header. That's where the 6 comes from. - float hdrWidth = (itemInfo.MyHeader.CleanText == null) ? 0 : itemInfo.MyHeader.CleanText.Length * 6; - int typ = ((int)itemInfo.MyContent.Type) % 10000; - int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex; - - if (itemInfo.MyHeader.Justify == System.Drawing.ContentAlignment.MiddleCenter) - { - if (bxIndx != null) - { - Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bx.TabPos > 0) - xoff += (float)bx.TabPos; // xoff starts as left margin - else - xoff += (float)((bx.TxtStart + XOffsetBox + (bx.TxtWidth / 2)) - (hdrWidth / 2)); // xoff starts as left margin - } - else if (formatInfo.MyStepSectionLayoutData.Separator.Location > 0) - xoff = XOffset + AdjustToCharPosition((float)((para.Width - hdrWidth) / formatInfo.MyStepSectionLayoutData.Separator.Location), itemInfo.MyHeader.MyFont.CPI); - else - xoff = XOffset + (para.Width / 2) + (hdrWidth / 2); // XOffset has left margin included - } - else - xoff = XOffset; // XOffset has left margin included - vlnHeader myHeader = new vlnHeader(this, cb, itemInfo.MyHeader.Text, itemInfo.MyHeader.CleanText.TrimStart(" ".ToCharArray()), xoff, YOffset, itemInfo.MyHeader.MyFont); - PartsAbove.Add(myHeader); - return myHeader.Height + (!MyItemInfo.MyDocStyle.SpecialStepsFoldout ? SixLinesPerInch : 0); - } - private float AdjustToCharPosition(float position, float? CPI) - { - int iPosition = (int)position; - int charsToTwips = (int)(72 / (CPI ?? 12)); - iPosition = (iPosition / charsToTwips) * charsToTwips; - position = (position / 7.2F) * 7.2F; - return (float)iPosition; - } - private bool _SectionPageBreak = false; - public bool SectionPageBreak - { - get { return _SectionPageBreak; } - set { _SectionPageBreak = value; } - } - private bool _Processed = false; - public bool Processed - { - get { return _Processed; } - set { _Processed = value; } - } - private vlnParagraph _LastRNO; - public vlnParagraph LastRNO - { - get { return _LastRNO; } - set { _LastRNO = value; } - } - private vlnParagraph _MyTopRNO; - public vlnParagraph MyTopRNO - { - get { return _MyTopRNO; } - set { _MyTopRNO = value; } - } - private static string _Prefix = ""; - public static string Prefix - { - get { return vlnParagraph._Prefix; } - set { vlnParagraph._Prefix = value; } - } - protected float _YBottomMost; // Bottom of the paragraph including the children - public float YBottomMost - { - get { return _YBottomMost; } - set { _YBottomMost = value; } - } - protected float _YTopMost; // Top of the paragraph including the children - public float YTopMost - { - get { return _YTopMost; } - set { _YTopMost = value; } - } - protected float _YTop; // Top of the paragraph including parts - public float YTop - { - get { return _YTop; } - set - { - vlnParagraph vp = this as vlnParagraph; - _YTop = value; - - } - } - public float YSize // How big this paragraph is with all of its children - { - get { return _YBottomMost - _YTopMost; } - } - private ItemInfo _MyItemInfo; - public ItemInfo MyItemInfo - { - get { return _MyItemInfo; } - set { _MyItemInfo = value; } - } - private vlnParagraph _MyHighLevelParagraph; - - public vlnParagraph MyHighLevelParagraph - { - get - { - if (_MyHighLevelParagraph == null) - { - _MyHighLevelParagraph = GetHighLevelParagraph(); - } - return _MyHighLevelParagraph; - } - } - private vlnParagraph GetHighLevelParagraph() - { - if (MyItemInfo.IsHigh) return this; - return MyParent.GetHighLevelParagraph(); - } - // Tab, Separator, ChangeBar, Box, Circle, Checkoff - private vlnPrintObjects _PartsAbove; - public vlnPrintObjects PartsAbove - { - get - { - if (_PartsAbove == null) _PartsAbove = new vlnPrintObjects(); - return _PartsAbove; - } - } - private vlnPrintObjects _PartsBelow; - public vlnPrintObjects PartsBelow - { - get - { - if (_PartsBelow == null) _PartsBelow = new vlnPrintObjects(); - return _PartsBelow; - } - } - private vlnPrintObjects _PartsRight; - public vlnPrintObjects PartsRight - { - get - { - if (_PartsRight == null) _PartsRight = new vlnPrintObjects(); - return _PartsRight; - } - } - private vlnPrintObjects _PartsLeft; - public vlnPrintObjects PartsLeft - { - get - { - if (_PartsLeft == null) _PartsLeft = new vlnPrintObjects(); - return _PartsLeft; - } - } - private vlnPrintObjects _PartsContainer; - public vlnPrintObjects PartsContainer - { - get - { - if (_PartsContainer == null) _PartsContainer = new vlnPrintObjects(); - return _PartsContainer; - } - } - private vlnParagraphs _ChildrenAbove; - public vlnParagraphs ChildrenAbove - { - get - { - if (_ChildrenAbove == null) _ChildrenAbove = new vlnParagraphs(this); - return _ChildrenAbove; - } - } - private vlnParagraphs _ChildrenBelow; - public vlnParagraphs ChildrenBelow - { - get - { - if (_ChildrenBelow == null) _ChildrenBelow = new vlnParagraphs(this); - return _ChildrenBelow; - } - } - private vlnParagraphs _ChildrenRight; - public vlnParagraphs ChildrenRight - { - get - { - if (_ChildrenRight == null) _ChildrenRight = new vlnParagraphs(this); - return _ChildrenRight; - } - } - private vlnParagraphs _ChildrenLeft; - public vlnParagraphs ChildrenLeft - { - get - { - if (_ChildrenLeft == null) _ChildrenLeft = new vlnParagraphs(this); - return _ChildrenLeft; - } - } - public void AdjustXOffsetForTab(ItemInfo itemInfo, int maxRNO, FormatInfo formatInfo, vlnTab myTab) - { - float tabWidth = (myTab == null) ? 0 : myTab.Width; - if (itemInfo.IsStepSection) - { - if (formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Just == "PSLeft") - { - int level = 0; - ItemInfo iilvl = itemInfo; - while (!iilvl.IsProcedure) - { - level++; - iilvl = iilvl.MyParent; - } - level = level <= 2 ? 1 : level - 1; - if (level==1) - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (level * (float)formatInfo.PlantFormat.FormatData.SectData.SectionHeader.Pos); - else - XOffset = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[level].ColSByLevel; - } - return; - } - int typ = ((int)itemInfo.MyContent.Type) % 10000; - int? bxIndx = formatInfo.PlantFormat.FormatData.StepDataList[typ].StepLayoutData.STBoxindex; - float? colOvrd = formatInfo.PlantFormat.FormatData.StepDataList[typ].ColOverride; - if (bxIndx != null) - { - Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bx == null) - { - if ((colOvrd??0)!=0) - { - // 16-bit code subtracted the left margin - //xoff = ((float)colOvrd - (float)itemInfo.MyDocStyle.Layout.LeftMargin) - XOffset; - //XOffset += xoff; - //if (myTab != null) myTab.XOffset += xoff; - //xoff = MyParent.XOffset - myTab.XOffset; - //XOffset += xoff; - float tabOffset = (myTab == null?0: myTab.XOffset) - XOffset; - - XOffset = (float)colOvrd; - if (myTab != null) myTab.XOffset = XOffset + tabOffset; - return; - } - else - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + tabWidth + XOffsetBox; - } - else - XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)bx.TxtStart + tabWidth + XOffsetBox; - if (myTab != null) myTab.XOffset = XOffset - tabWidth; - } - else if (itemInfo.IsHigh) - { - float x = 0; - float xoff = 0; - if ((colOvrd??0)!=0) - x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)colOvrd; - else - x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS; - - xoff = x - XOffset; - // ColSByLevel will specify the column in which the High Level Step starts with - // respect to the overall level calculation based on sections & meta-sections. - // Only a few of the single column formats use this: WCN1, CAL1, RGEBCK - if (formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TieTabToLevel - && !(itemInfo.MyDocStyle.SpecialStepsFoldout && itemInfo.MyDocStyle.UseColSByLevel)) - { - int indxLevel = itemInfo.PrintLevel + itemInfo.CurrentSectionLevel(); - float colsbylevel = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[indxLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count].ColSByLevel; - float seclvlindent = colsbylevel - (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS; - x = (float)itemInfo.MyDocStyle.Layout.LeftMargin + (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS + seclvlindent; - xoff = x - XOffset; - if (myTab != null) myTab.XOffset = (float)itemInfo.MyDocStyle.Layout.LeftMargin + colsbylevel; - LeftJustifyList jstlst = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList; - if (jstlst.Count > 0) - { - float leftJustifyTabSize = jstlst[indxLevel % jstlst.Count].Size ?? 0; - XOffset = myTab.XOffset + leftJustifyTabSize; - } - else - XOffset = myTab.XOffset + (myTab.Text.Length * (float)itemInfo.FormatStepData.Font.CPI) - colsbylevel; - } - else - { - XOffset += xoff; - if (myTab != null) - { - myTab.XOffset += xoff; - if (myTab.MyMacro != null) myTab.MyMacro.XOffset += xoff; - } - } - } - else if (itemInfo.IsRNOPart && !((ItemInfo)itemInfo.ActiveParent).IsHigh) - { - // don't adjust for rno - } - else if (MyParent != null) - { - if (myTab != null && itemInfo.IsSequential && formatInfo.PlantFormat.FormatData.SectData.UseMetaSections && formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList.Count > 0) - { - int indxLevels = itemInfo.PrintLevel + itemInfo.CurrentSectionLevel(); // kbr -1; - LeftJustifyList jstlst = formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionPrintData.LeftJustifyList; - float tableftadj = 0; - foreach (LeftJustify lj in jstlst) - { - if (lj.Index == indxLevels) - { - tableftadj = lj.Size ?? 0; - break; - } - } - // the order of this is important. First adjust the tab's xoffset for the width of - // the tab. The offset of text needs to be adjusted by the 'leftjustify' format variable - // if it existed for this level. - myTab.XOffset += tabWidth; - if (tableftadj != 0 && myTab.Width0) - widOvrd = xwid; - else - widOvrd = itemInfo.FormatStepData == null ? null : itemInfo.FormatStepData.WidthOverride; - if ((widOvrd??0) != 0) - { - Width = (float)widOvrd; - // if there's a box, we may need to do an adjustment on the width, if the tab data was changed - // so don't return. - if (bxIndx == null) return; - } - float tabWidth = (myTab == null) ? 0 : myTab.Width; - if (bxIndx != null) - { - Box bx = formatInfo.PlantFormat.FormatData.BoxList[(int)bxIndx]; - if (bx == null) - { - // NOT SURE IF WE NEED TO TEST FOR THE NULLBOX FORMAT FLAG, MAYBE "bx == null" IS THE SAME THING - //if (formatInfo.MyStepSectionLayoutData.NullBox) - Width = (float)formatInfo.MyStepSectionLayoutData.WidT - tabWidth; - } - else - Width = _WidthAdjustBox + (float)bx.TxtWidth - tabWidth; // add 1 to get it to wrap like 16Bit - } - else if (itemInfo.IsHigh) - { - float CheckOffAdj = 0; - if (itemInfo.MyDocStyle.UseCheckOffs) - { - if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffAdjustment != null) - CheckOffAdj = -(float)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffAdjustment; - if (!HasCheckOffHeading(itemInfo, formatInfo) && CheckOffAdj < 0) - CheckOffAdj += (float)(9 * 7.2); // 9 is the size of the SIGNOFF adjustment - } - float adjwidth = CheckOffAdj; - SectData sd = formatInfo.PlantFormat.FormatData.SectData; - if (sd.UseMetaSections) - { - if (sd.StepSectionData.StepSectionLayoutData.TieTabToLevel) - { - if (itemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ShowSectionTitles - && !itemInfo.MyDocStyle.CancelSectTitle - && !(itemInfo.MyDocStyle.SpecialStepsFoldout && itemInfo.MyDocStyle.UseColSByLevel)) - { - int indxLevel = itemInfo.PrintLevel + itemInfo.CurrentSectionLevel(); - adjwidth += formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[indxLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count].WidSAdjByLevel ?? 0; ; - float colsbylevel = (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[indxLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count].ColSByLevel; - float seclvlindent = colsbylevel - (float)formatInfo.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.ColS; - adjwidth -= seclvlindent; - adjwidth -= AdjustForSectionLevelTab(); - } - } - else - { - if (formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count > 0) - adjwidth += (float)formatInfo.PlantFormat.FormatData.SectData.MetaSectionList[itemInfo.PrintLevel % formatInfo.PlantFormat.FormatData.SectData.MetaSectionList.Count].ColSByLevel; - } - } - - Width = ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, maxRNO); - Width += _WidthAdjust; - Width += adjwidth; - } - else if (itemInfo.IsCaution || itemInfo.IsNote) - { - float mycolT = (float)formatInfo.MyStepSectionLayoutData.ColT; - Width = (float)formatInfo.MyStepSectionLayoutData.WidT - 6 - mycolT; - XOffset += mycolT; // adjust caution/note text position - if (PartsLeft != null)// adjust tab position - foreach(vlnPrintObject vpo in PartsLeft) - vpo.XOffset += mycolT; - } - else if (itemInfo.IsSection) - { - Width = _WidthAdjust + ToInt(formatInfo.MyStepSectionLayoutData.WidSTablePrint, maxRNO); - } - else if (MyParent == null) - { - // 72 points / inch - 7 inches (about width of page) - Width = 72 * 7; - } - else if (itemInfo.IsRNOPart && !((ItemInfo)itemInfo.ActiveParent).IsHigh) - { - Width = MyParent.Width; - } - else if (itemInfo.IsTablePart) - { - Width = 72 * 7; // TODO: Need to determine the Width of the Table based upon the contents - } - else if (itemInfo.MyParent.IsCaution || itemInfo.MyParent.IsNote) - { - Width = MyParent.Width - tabWidth + (myTab == null ? 0 : myTab.TabAlign); - Width -= 72 * (itemInfo.FormatStepData.CautionOrNoteSubstepIndent == null ? 0 : (float)itemInfo.FormatStepData.CautionOrNoteSubstepIndent / (float)itemInfo.FormatStepData.Font.CPI); - } - else - { - float adjwidth = 0; - Width = adjwidth + MyParent.Width - tabWidth + (myTab == null ? 0 : myTab.TabAlign); - } - } - private float GetWidthFromTemplate(ItemInfo itemInfo, FormatInfo formatInfo) - { - float rtnwid = 0; - int tpIndx = GetSmartTemplateIndex(itemInfo, itemInfo.MyContent.Type, formatInfo); - if (tpIndx != -1) - { - int ncol = formatInfo.PlantFormat.FormatData.Templates[tpIndx].width; - // now convert to the units for this format. The template width data is in number of columns. - rtnwid = ncol * itemInfo.FormatStepData.Font.CharsToTwips; - } - return rtnwid; - } - private int GetSmartTemplateIndex(ItemInfo itemInfo, int? type, FormatInfo formatInfo) - { - int indx = 0; - // find the starting template in the list for the high level step type: - int highType = (int)itemInfo.MyHLS.MyContent.Type-20001; - while (indx < formatInfo.PlantFormat.FormatData.Templates.Count) - { - // level of 0 starts a new group. - if (formatInfo.PlantFormat.FormatData.Templates[indx].level == 0) - { - indx++; - // now see if we're on the high level step type, if so, look under this one - // for the step type that we're on. If found return the index of it. - if (formatInfo.PlantFormat.FormatData.Templates[indx].type == highType) - { - indx++; - while (indx < formatInfo.PlantFormat.FormatData.Templates.Count && formatInfo.PlantFormat.FormatData.Templates[indx].level != 0) - { - if (formatInfo.PlantFormat.FormatData.Templates[indx].type == type - 20001) - return indx; - indx++; - } - } - } - else - indx++; - } - return -1; // didn't find this step type in the template width override list. - } - - private float AdjustForSectionLevelTab() - { - string sectTab = MyItemInfo.ActiveSection.MyTab.CleanText.TrimEnd(); - if (sectTab.EndsWith(".0")) return 0; - string myTab = MyItemInfo.MyTab.CleanText; - // -1 below code, +1 for '.' and -2 for standard wid of tab - // standard wid of this tab is 2 (ex: '1.') - // so adjust width if longer than normal - return (float)(sectTab.Length - 1) * 72/(float)MyItemInfo.FormatStepData.Font.CPI; - } - private bool HasCheckOffHeading(ItemInfo itemInfo, FormatInfo formatInfo) - { - if (formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.CheckOffHeaderList.Count != 0) - { - // does this section have a check off heading? - SectionConfig sc = itemInfo.MyActiveSection.MyConfig as SectionConfig; - if (sc != null && sc.Section_CheckoffHeaderSelection > 0) return true; - } - return false; - } - private bool UseCheckOffsDocStyle(int oldToNew, FormatInfo formatInfo) - { - int bit, retval=0; - int mask=1; - - for(bit=0; bit < 32; bit++){ - if ((oldToNew & mask) != 0 && ((int)formatInfo.PlantFormat.FormatData.ProcData.CheckOffData.UseCheckOffsIn & mask) !=0) retval = 1; - mask <<= 1; - } - return retval > 0; - } - } - - /// - /// First order by stepLevel, then within a stepLevel, order by descending yLocation on page. - /// Want to find maximum y value that fits on page, i.e. put the most on page that can - /// fit which is defined by the largest yLocation - /// - public class StepLevelList : SortedDictionary> - { - public StepLevelList() : base() - { - } - public void Add(int stepLevel, float yLocation, vlnParagraph para) - { - if (stepLevel == 0) return; - if (!this.ContainsKey(stepLevel)) - this.Add(stepLevel, new SortedDictionary()); - // using a negative for yLocation so that its in descending order: - if (!this[stepLevel].ContainsKey(-yLocation)) - this[stepLevel].Add(-yLocation, para); - } - } - public class ParagraphLocations : List - { - public ParagraphLocations() - : base() - { - } - public void Add(vlnParagraph myParagraph, float yTopMost) - { - ParagraphLocation foundOverlap = FindOverlap(myParagraph); - if (foundOverlap == null) - { - this.Add(new ParagraphLocation(yTopMost,myParagraph)); - return; - } - ParagraphLocation doubleOverlap = FindOverlap(foundOverlap); - while (doubleOverlap != null) - { - doubleOverlap.Merge(foundOverlap); - this.Remove(foundOverlap); - foundOverlap = doubleOverlap; - doubleOverlap = FindOverlap(foundOverlap); - } - } - - private ParagraphLocation FindOverlap(vlnParagraph myParagraph) - { - foreach (ParagraphLocation paraLoc in this) - if (paraLoc.Overlap(myParagraph)) - return paraLoc; - return null; - } - private ParagraphLocation FindOverlap(ParagraphLocation myParaLoc) - { - foreach (ParagraphLocation paraLoc in this) - if (paraLoc != myParaLoc && paraLoc.Overlap(myParaLoc)) - return paraLoc; - return null; - } - internal StepLevelList BuildStepLevelList() - { - StepLevelList myList = new StepLevelList(); - foreach (ParagraphLocation paraLoc in this) - myList.Add(paraLoc.StepLevel, paraLoc.YTop, paraLoc.MyParagraph); - return myList; - } - } - public class ParagraphLocation - { - private float _YTop; - public float YTop - { - get { return _YTop; } - set { _YTop = value; } - } - private float _YBottom; - public float YBottom - { - get { return _YBottom; } - set { _YBottom = value; } - } - private int _StepLevel; - public int StepLevel - { - get { return _StepLevel; } - set { _StepLevel = value; } - } - private vlnParagraph _MyParagraph; - public vlnParagraph MyParagraph - { - get { return _MyParagraph; } - set { _MyParagraph = value; } - } - public ParagraphLocation(float yTopMost,vlnParagraph myParagraph) - { - MyParagraph =myParagraph; - YTop = myParagraph.YVeryTop - yTopMost; - YBottom = myParagraph.YBottom - yTopMost; - StepLevel = myParagraph.MyItemInfo.StepLevel; - } - public bool Overlap(vlnParagraph otherParagraph) - { - if (Between(otherParagraph.YTop, YTop, YBottom)) return true; - if (Between(otherParagraph.YBottom, YTop, YBottom)) return true; - if(Between(YTop,otherParagraph.YVeryTop,otherParagraph.YBottom)) return true; - if(Between(YBottom,otherParagraph.YVeryTop,otherParagraph.YBottom)) return true; - return false; - } - public static bool Between(float x, float lower, float higher) - { return x >= lower && x <= higher; } - public bool Overlap(ParagraphLocation otherParagraphLocation) - { - if (Between(otherParagraphLocation.YTop, YTop, YBottom)) return true; // The top is within the other - if (Between(otherParagraphLocation.YBottom, YTop, YBottom)) return true; // The bottom is within the other - if(Between(YTop,otherParagraphLocation.YTop,otherParagraphLocation.YBottom)) return true; // the other top is within this one - if(Between(YBottom,otherParagraphLocation.YTop,otherParagraphLocation.YBottom)) return true;// I believe this is unnecessary - return false; - } - public void Merge(vlnParagraph otherParagraph) - { - if (StepLevel < otherParagraph.MyItemInfo.StepLevel) MyParagraph = otherParagraph; - YTop = Math.Min(YTop, otherParagraph.YVeryTop); - YBottom = Math.Max(YBottom, otherParagraph.YBottom); - StepLevel = Math.Max(StepLevel, otherParagraph.MyItemInfo.StepLevel); - } - public void Merge(ParagraphLocation otherParagraphLocation) - { - if (StepLevel < otherParagraphLocation.StepLevel) MyParagraph = otherParagraphLocation.MyParagraph; - YTop = Math.Min(YTop, otherParagraphLocation.YTop); - YBottom = Math.Max(YBottom, otherParagraphLocation.YBottom); - StepLevel = Math.Max(StepLevel, otherParagraphLocation.StepLevel); - } - } -} diff --git a/PROMS/Volian.Print.Library/vlnPrintObject.cs.org b/PROMS/Volian.Print.Library/vlnPrintObject.cs.org deleted file mode 100644 index 5d0384d3..00000000 --- a/PROMS/Volian.Print.Library/vlnPrintObject.cs.org +++ /dev/null @@ -1,404 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using iTextSharp.text.pdf; -using iTextSharp.text; -using Itenso.Rtf; -using Itenso.Rtf.Parser; -using Itenso.Rtf.Interpreter; -using Itenso.Rtf.Support; -using Volian.Controls.Library; -using VEPROMS.CSLA.Library; - -namespace Volian.Print.Library -{ - public abstract partial class vlnPrintObject - { - // Used for debugging: - private static int _UniqueDebugId = 0; - public static int UniqueDebugId - { - get { return _UniqueDebugId++; } - set { _UniqueDebugId = value; } - } - private int _DebugId = UniqueDebugId; - public int DebugId - { - get { return _DebugId; } - set { _DebugId = value; } - } - - protected static float _WidthAdjust = 1; // 1 Point - adjusted to match 16-bit line wrapping. For editting it's 3. - protected static float _WidthAdjustBox = 6; - private static float _SixLinesPerInch = 12; // twips - public static float SixLinesPerInch - { - get { return vlnPrintObject._SixLinesPerInch; } - set { vlnPrintObject._SixLinesPerInch = value; } - } - protected static float _SevenLinesPerInch = 10.1F;//72F / 7F; - - protected float _XOffset; - public float XOffset - { - get { return _XOffset; } - set {_XOffset = value; } - } - protected float _YOffset; - public float YOffset - { - get { return _YOffset; } - set { _YOffset = value; } - } - - protected vlnParagraph _MyParent; - public vlnParagraph MyParent - { - get { return _MyParent; } - set - { - _MyParent = value; - if (_MyParent != null) - { - - } - } - } - private string _ImageText; // ro definition, value part of #Link in case of image/figure - public string ImageText - { - get { return _ImageText; } - set { _ImageText = value; } - } - private string _Rtf; // may become iTextSharp paragraph - public string Rtf - { - get { return _Rtf; } - set { _Rtf = value; } - } - iTextSharp.text.Paragraph _IParagraph; - public iTextSharp.text.Paragraph IParagraph - { - get - { - if (_IParagraph == null) - { - _IParagraph = RtfToParagraph(Rtf); - } - return _IParagraph; - } - set { _IParagraph = value; } - } - private float _Width; - public float Width - { - get { return _Width; } - set { _Width = value; } - } - protected float _Height; - public float Height - { - get - { - if (_Height == 0) - _Height = GetParagraphHeight(MyContentByte, IParagraph, Width); - return _Height; - } - set { _Height = value; } - } - public float GetParagraphHeight(PdfContentByte cb, Paragraph iParagraph, float width) - { - return GetParagraphHeight(cb, iParagraph, width, true); - } - public float GetParagraphHeight(PdfContentByte cb, Paragraph iParagraph, float width, bool throwException) - { - VlnSvgPageHelper ph = null; - if(cb != null) ph = cb.PdfWriter.PageEvent as VlnSvgPageHelper; - float heightAll = GetHeight(cb, iParagraph, width, throwException); - if (ph != null && ph.MyPromsPrinter.DebugOutput && !MyPageHelper.Back32BitPROMS) - { - vlnParagraph myParagraph = this as vlnParagraph; - if (myParagraph != null) - { - //if (myParagraph.MyItemInfo.FormatStepData != null && myParagraph.MyItemInfo.FormatStepData.Font.Family == "Prestige Elite Tall") - if (!myParagraph.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.WrapSameAsEdit) - { - Chunk chk = RemoveLastCharacter(iParagraph); - float heightAllButOne = GetHeight(cb, iParagraph, width, throwException); - if (heightAll != heightAllButOne) - return heightAllButOne; - if (chk != null) - RestoreLastCharacter(iParagraph, chk); - } - } - } - return heightAll; - } - private static void RestoreLastCharacter(Paragraph iParagraph, Chunk chk) - { - iParagraph.RemoveAt(iParagraph.Count - 1); - iParagraph.Add(chk); - } - private static Chunk RemoveLastCharacter(Paragraph iParagraph) - { - if (iParagraph.Count == 0) - return null; - object obj = iParagraph[iParagraph.Count-1]; - Chunk chk = obj as Chunk; - if (chk == null) - return null; - string s = chk.Content; - if (s.Length > 1 || iParagraph.Count > 1) // don't remove last character if it's the only one - { - iParagraph.RemoveAt(iParagraph.Count - 1); - if (s.Length > 0) - { - if (s == "\xA0") // If this is a space at the end put it back - { - iParagraph.Add(chk); - return null; - } - else - { - s = s.Substring(0, s.Length - 1); - iParagraph.Add(new Chunk(s, chk.Font)); - } - } - } - return chk; - } - private static float GetHeight(PdfContentByte cb, Paragraph iParagraph, float width, bool throwException) - { - ColumnText myColumnText = new ColumnText(cb); - myColumnText.SetSimpleColumn(0, 792F, width, 0); // Bottom margin - myColumnText.AddElement(iParagraph); - //myColumnText.UseAscender = true;// Adjusts to the top of the text box. - int status = myColumnText.Go(true); // Check to see if it will fit on the page. - if (ColumnText.HasMoreText(status) && throwException) - //throw (new Exception("Paragraph longer than a page")); - Console.WriteLine("Paragraph longer than a page"); - return 792F - myColumnText.YLine; // This gives the height of the Paragraph - } - public float GetTableWidth(PdfContentByte cb, Paragraph iParagraph, float? maxWidth) - { - int iWidth = (int)(maxWidth ?? 72 * 8.5F); - float h = GetParagraphHeight(cb, iParagraph, iWidth); - int iWidthMax = iWidth; // maximum width in Characters - int iDelta = iWidth / 2; - iWidth = iWidth / 2; - while (iDelta > 0) - { - float h2 = GetParagraphHeight(cb, iParagraph, iWidth,false); - iDelta = iDelta / 2; - if (h2 == h) iWidthMax = iWidth; - iWidth += (h2>h ? 1: -1) * iDelta; - } - return (float) iWidthMax; - } - private PdfContentByte _MyContentByte; - public PdfContentByte MyContentByte - { - get { return _MyContentByte; } - set { _MyContentByte = value; } - } - private VlnSvgPageHelper _MyPageHelper; - public VlnSvgPageHelper MyPageHelper - { - get - { - if(_MyPageHelper == null) - _MyPageHelper = MyContentByte.PdfWriter.PageEvent as VlnSvgPageHelper; - return _MyPageHelper; - } - set { _MyPageHelper = value; } - } - public vlnPrintObject() - { - } - /// - /// No conversion necessary: twips -> twips - /// - /// - /// - public static int ToInt(int value) - { - return value; - } - /// - /// No conversion necessary: int? twips -> int twips - /// - /// - /// - public static int ToInt(int? value) - { - return ToInt((int)value); - } - /// - /// No conversion necessary: string twips -> int twips - /// - /// - /// - public static int ToInt(string value) - { - return ToInt((int)Convert.ToSingle(value)); - } - /// - /// No conversion necessary: value from a list in a string, twips -> int twips - /// - /// - /// - public static int ToInt(string value, int i) - { - string s = (value.Contains(",")) ? value.Split(",".ToCharArray())[i] : value; - return ToInt(s); - } - public static string GetRtf(string text, VE_Font vFont) - { - StringBuilder rtfSB = new StringBuilder(); - //DisplayText vlntxt = new DisplayText(text.TrimStart(" ".ToCharArray()), vFont, false); - DisplayText vlntxt = new DisplayText(text, vFont, false); - //rtfSB.Append(AddFontTable(vlntxt.TextFont.WindowsFont)); - rtfSB.Append(AddFontTable(vFont.WindowsFont)); - rtfSB.Append(vlntxt.StartText); - rtfSB.Append("}"); - return rtfSB.ToString(); - } - public static string AddFontTable(System.Drawing.Font font) - { - StringBuilder rtfSB = new StringBuilder(); - StringBuilder sbbeg = new StringBuilder(); - StringBuilder sbend = new StringBuilder(); - if (font.Bold) - { - sbbeg.Append(@"\b"); - sbend.Append(@"\b0"); - } - if (font.Underline) - { - sbbeg.Append(@"\ul"); - sbend.Insert(0, @"\ulnone"); - } - if (font.Italic) - { - sbbeg.Append(@"\i"); - sbend.Insert(0, @"\i0"); - } - rtfSB.Append(@"{\rtf1\ansi\ansicpg1252\deff0\deflang1033{\fonttbl{\f0\fnil\fcharset2 " + font.FontFamily.Name + @";}"); //}\f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}}"; - if (!FontIsFixed(font)) - rtfSB.Append(@"{\f1\fnil\fcharset0 Arial Unicode MS;}}{\colortbl ;\red255\green0\blue0;}"); - else - rtfSB.Append(@"{\f1\fnil\fcharset0 VESymbFix;}}{\colortbl ;\red255\green0\blue0;}"); - rtfSB.Append("\r\n"); - // use styles to construct rtf commands to insert into next line (where \b, etc is) - rtfSB.Append(@"\viewkind4\uc1\pard\sl-240\slmult0" + sbbeg.ToString() + @"\fs" + Convert.ToInt32(font.SizeInPoints * 2).ToString() + @" "); // \f0\fs" + this.Font.SizeInPoints * 2 + @" " + myDisplayTextElement.Text + @"}"; - return rtfSB.ToString(); - } - private static bool FontIsFixed(System.Drawing.Font font) - { - iTextSharp.text.Font iFont = Volian.Svg.Library.VolianPdf.GetFont(font); - float fW = iFont.BaseFont.GetWidthPointKerned("W", 12); - float fE = iFont.BaseFont.GetWidthPointKerned("!", 12); - return fW == fE; - } - public static iTextSharp.text.Paragraph RtfToParagraph(string rtf) - { - IRtfDocument rtfDoc = RtfInterpreterTool.BuildDoc(rtf); - Rtf2iTextSharp rtf2IText = new Rtf2iTextSharp(rtfDoc); - iTextSharp.text.Paragraph para = rtf2IText.Convert(); - para.SetLeading(_SixLinesPerInch, 0); - if (rtf.Contains("\x05")) - { - // if there is a hanging indent, the iTextSharp paragraph properties must be set - // to print the indent. Replace the indent 'token' with a non-used symbol, this will - // create a chunk with that symbol. Then loop through all of the chunks until we find - // this symbol, adding up the widths to that point. This width is the value that - // needs to be used to set the indent. - // Notes: - // A hard return will reset the chkW (indent width) back to zero. - // We jump out of the processing loop after the first indent token is found and ignor any other ones - IRtfDocument rtfDoc2 = RtfInterpreterTool.BuildDoc(rtf.Replace("\x05", @"\f1 \u9999? \f0 ")); - Rtf2iTextSharp rtf2IText2 = new Rtf2iTextSharp(rtfDoc2); - iTextSharp.text.Paragraph para2 = rtf2IText2.Convert(); - float chkW = 0; - foreach (Chunk chk in para2.Chunks) - { - if (chk.Content[0] == 9999) break; - if (chk.Content.Contains("\n")) chkW = 0; //hard return - reset chkW (indent start) - chkW += chk.GetWidthPoint(); - } - para.IndentationLeft = chkW; - para.FirstLineIndent = -chkW; - } - return para; - } - public abstract float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin); - protected float CalculateYOffset(float yPageStart, float yTopMargin) - { - float yLocation = yPageStart - YOffset; - if (MyPageHelper.YMultiplier != 1) - { - yLocation = -1 + yTopMargin - (yTopMargin - yLocation) * MyPageHelper.YMultiplier; - if (Rtf != null) - IParagraph.Leading = _SevenLinesPerInch; - } - return yLocation; - } - protected float CalculateYLocation(float yLocation, float yTopMargin) - { - if (MyPageHelper.YMultiplier != 1) - yLocation = -1 + yTopMargin - (yTopMargin - yLocation) * MyPageHelper.YMultiplier; - return yLocation; - } - public void DebugPdf(PdfContentByte cb, float left, float top) - { - VlnSvgPageHelper _MyPageHelper = cb.PdfWriter.PageEvent as VlnSvgPageHelper; - PdfLayer debugLayer = _MyPageHelper == null ? null : _MyPageHelper.DebugLayer; - if (debugLayer == null) return; - cb.SaveState(); - cb.BeginLayer(debugLayer); - ColumnText ct = new ColumnText(cb); - ct.SetSimpleColumn(left, top, left+50, top - 50); - iTextSharp.text.Font font = FontFactory.GetFont("Arial", 2); - Chunk chk = new Chunk(DebugId.ToString(), font); - Phrase ph = new Phrase(chk); - ct.AddElement(ph); - cb.SetColorFill(new iTextSharp.text.Color(PrintOverride.OverrideDebugColor(System.Drawing.Color.Gray))); - ct.Go(); - cb.EndLayer(); - cb.RestoreState(); - } - public virtual float YBottom - { get { return YOffset + Height;} } - } - public partial class vlnPrintObjects : List - { - public float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin) - { - foreach (vlnPrintObject part in this) - { - yPageStart = part.ToPdf(cb, yPageStart, ref yTopMargin, ref yBottomMargin); - } - return yPageStart; - } - } - - public enum PartLocation : int - { - None = 0, // Non-printable - Below = 1, // RNO Separator - Above = 2, // Tab Headers, Separator? - Right = 3, // Change Bars - Left = 4, // Tabs, Checkoffs? (maybe part of tab) - Container = 5 // Box - }; - public enum ChildLocation : int - { - None = 0, - Below = 1, - Above = 2, - Right = 3, // RNO - Left = 4 - } - -} diff --git a/PROMS/Volian.Print.Library/vlnTab.cs.bak b/PROMS/Volian.Print.Library/vlnTab.cs.bak deleted file mode 100644 index a59ade88..00000000 --- a/PROMS/Volian.Print.Library/vlnTab.cs.bak +++ /dev/null @@ -1,282 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using iTextSharp.text.pdf; -using iTextSharp.text; -using VEPROMS.CSLA.Library; - -namespace Volian.Print.Library -{ - public partial class vlnTab : vlnText - { - /// - /// Used to Align Tabs for numeric tabs that can go to 2 digits - /// - private float? _TabAlign; - public float TabAlign // Offset to Last printable character - { - get - { - if (_TabAlign == null) - { - _TabAlign = 0; - if (Text != null) - { - while (_TabAlign < Text.Length && Text[(int)_TabAlign] == ' ') - _TabAlign++; - if (_TabAlign < Text.Length) - { - if ("0123456789".Contains(Text[(int)_TabAlign].ToString())) - { - while ("0123456789".Contains(Text[(int)_TabAlign].ToString())) - _TabAlign++; - _TabAlign--; - } - } - else - _TabAlign = 0; - } - } - return (float)_TabAlign * MyFont.CharsToTwips; - } - } - private float? _TabOffset; - public float TabOffset // Offset to first printable character - { - get - { - if (_TabOffset == null) - { - _TabOffset = 0; - if (Text != null) - { - while (_TabOffset= Text.Length) _TabOffset = 0; - return (float)_TabOffset * MyFont.CharsToTwips; - } - } - private vlnMacro _MyMacro; - public vlnMacro MyMacro - { - get { return _MyMacro; } - set { _MyMacro = value; } - } - - private string symblsStr = "\u25CF\u0394"; // string of possible symbol character in a tab - // add symbol characters as needed - // "\u25CF" - solid bullet - // \x0394 - delta - - private System.Drawing.FontStyle GetSysFontStyle(VE_Font f) - { - if (f.Style == E_Style.Italics) - return System.Drawing.FontStyle.Italic; - return FontStyle.Regular; - } - private float GetTextWidth(VE_Font vefont, string txt, string symblFontName) - { - System.Drawing.Font font = new System.Drawing.Font(vefont.Family, (float)vefont.Size, GetSysFontStyle(vefont)); - System.Drawing.Font symbFont = new System.Drawing.Font(symblFontName, (float)vefont.Size); - iTextSharp.text.Font iFont = Volian.Svg.Library.VolianPdf.GetFont(font); - iTextSharp.text.Font iSymblFont = Volian.Svg.Library.VolianPdf.GetFont(symbFont); - float w = 0; - foreach (char c in txt) - { - int idx = symblsStr.IndexOf(c); - if (idx >= 0) // symbol character - use symbol font to find its width - w += iSymblFont.BaseFont.GetWidthPointKerned(symblsStr[idx].ToString(), (float)vefont.Size); - else - w += iFont.BaseFont.GetWidthPointKerned(c.ToString(), (float)vefont.Size); - } - //float w = iFont.BaseFont.GetWidthPointKerned(Text.Replace("\u25CF","@"), (float)vefont.Size); - return w; - } - bool _ScriptCaution = false; - - public bool ScriptCaution - { - get { return _ScriptCaution; } - set { _ScriptCaution = value; } - } - bool _SeparateBullet = false; - - public bool SeparateBullet - { - get { return _SeparateBullet; } - set { _SeparateBullet = value; } - } - public vlnTab(PdfContentByte cb, vlnParagraph myparent, string origTab, string cleanTab, float xoffset, float yoffset, VE_Font vFont, bool doSectTab, string symblFontName, bool removedUnderline) - { - ScriptCaution = (origTab.Contains("Caution") && vFont.Family == "VolianScript"); - MyContentByte = cb; - MyParent = myparent; - YOffset = yoffset; - Text = cleanTab; - MyFont = vFont; - float CCCs = GetTextWidth(MyFont, "CCCCCCCCCC", symblFontName); - float IIIs = GetTextWidth(MyFont, "iiiiiiiiii", symblFontName); - string origTab1 = origTab; - if (ScriptCaution) - { - Text = origTab.Replace("Caution ", "\uF043\uF061\uF069\uF06E\uF06F\uF074\uF075\uF020\uF020"); - Width = 90; - } - else if ((myparent.MyItemInfo.FormatStepData != null) && (myparent.MyItemInfo.FormatStepData.TabData.IdentWidth ?? 0) > 0) - //if ((myparent.MyItemInfo.FormatStepData != null) && (myparent.MyItemInfo.FormatStepData.TabData.IdentWidth ?? 0) > 0) - Width = (float)myparent.MyItemInfo.FormatStepData.TabData.IdentWidth; - else if (CCCs != IIIs) - { - float tPtPerChar = myparent.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TabPtsPerChar ?? 6; - Width = tPtPerChar * origTab.Length; - // Check the following, it may be needed for FPL: - //origTab1 = origTab1.TrimStart(" ".ToCharArray()); - // 6 = number of points per character. 4 characters between end of tab and beginning of text - // origTab1.Trim... is number of non-space characters of the tab string. - //Width = 6 * (4 + origTab1.Trim(" ".ToCharArray()).Length); - } - else - Width = GetTextWidth(MyFont, (Text != null ? Text : origTab), symblFontName); //MyFont.CharsToTwips * (Text != null ? Text.Length : origTab.Length); - if ((myparent.MyItemInfo.FormatStepData != null) && myparent.MyItemInfo.FormatStepData.TabData.Bullet.Separate) - if (myparent.MyItemInfo.MyPrevious != null || myparent.MyItemInfo.NextItem != null) - SeparateBullet = true; - if (origTab.Contains(@"{!")) - { - int mindx = origTab.IndexOf(@"{!"); - int meindx = origTab.IndexOf(@"}", mindx); - string macro = origTab.Substring(mindx, meindx - mindx + 1); - // Width for placement of macro should be position in the string where the macro was located. - float lwidth = MyFont.CharsToTwips * (origTab.Length - meindx - 1); - MyMacro = new vlnMacro(xoffset - lwidth, yoffset, macro.Substring(2, macro.Length - 3)); - xoffset += myparent.MyItemInfo.FormatStepData.TabData.MacroTabAdjust ?? 0; - origTab = origTab.Replace(macro, ""); - cleanTab = origTab; - if (CCCs != IIIs) - { - float? tPtPerChar1 = myparent.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TabPtsPerChar; - if (tPtPerChar1!=null) - Width = (float)tPtPerChar1 * origTab.Length; - else - { - origTab = origTab + " "; - origTab = origTab.TrimStart(" ".ToCharArray()); - if (mindx > 2) // ouch! - Width = 6f * (origTab.Length - 1); // FPL (macro is after {numeric}) FPL is good with genmac output! - else - Width = 3 + (6f * origTab.Length); // NSP (macro is before {numeric}) - } - } - else - Width = GetTextWidth(MyFont, (cleanTab != null ? cleanTab : origTab), symblFontName);//MyFont.CharsToTwips * (cleanTab != null ? cleanTab.Length : origTab.Length); - } - else - { - origTab = origTab1; - } - - // if this tab was underlined, we may need to add partial underlining back in, if it was - // removed when the bullet was added. This handles the case where the bullet was appended - // to the tab, for example "NOTE: o". - if (removedUnderline) - { - int sep = origTab.IndexOfAny(". ".ToCharArray()); - origTab = @"\ul " + origTab.Substring(0, sep-1) + @"\ulnone" + origTab.Substring(sep-1); - } - // if this tab is underlined, the underlining should not underline the ':'. Check for "NOTE:" - // or "CAUTION:", i.e. only underline up to ':' - if (myparent.MyItemInfo.IsStep && ((myparent.MyItemInfo.FormatStepData.AlwaysTab || myparent.MyItemInfo.MyPrevious == null) - && ((vFont.Style & E_Style.Underline) > 0) && (origTab.ToUpper().Contains("NOTE:") || - origTab.ToUpper().Contains("CAUTION:")))) - { - FontStyle style = FontStyle.Regular; - if ((vFont.Style & E_Style.Bold) > 0) style |= FontStyle.Bold; - if ((vFont.Style & E_Style.Italics) > 0) style |= FontStyle.Italic; - vFont.WindowsFont = new System.Drawing.Font(vFont.Family, (float)vFont.Size, style); - int indxC = origTab.IndexOf(":"); - origTab = @"\ul " + origTab.Substring(0, indxC) + @"\ulnone" + origTab.Substring(indxC); - } - Rtf = GetRtf(origTab, vFont); - Rtf = Rtf.Replace("\u0394", @"\f1\u916?\f0 "); // delta 0x0394 - if (ScriptCaution) - { - Rtf = GetRtf("\u25CFCaution ", vFont); - Rtf = Rtf.Replace("\u25CF", @"\f1\fs20 \u9679?\f0\par\f0\fs64 "); // bullet 25CF // jsj- force bullet size (is different than tab text) - if (myparent.MyItemInfo.FormatStepData != null && !myparent.MyItemInfo.FormatStepData.AlwaysTab && myparent.MyItemInfo.MyPrevious != null) - Rtf = Rtf.Replace("Caution ", @"\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?"); - else - { - if (myparent.MyItemInfo.FormatStepData != null && !myparent.MyItemInfo.FormatStepData.AlwaysTab && myparent.MyItemInfo.NextItem == null) - Rtf = Rtf.Replace(@"\u9679?", ""); - Rtf = Rtf.Replace("Caution ", @"\u61507?\u61537?\u61557?\u61556?\u61545?\u61551?\u61550?\u61472?\u61472?"); - } - } - else - { - if (SeparateBullet) - Rtf = Rtf.Replace("\u25CF", ""); - else - Rtf = Rtf.Replace("\u25CF", @"\f1\u9679?\f0 "); // bullet 25CF // jsj- add space after \f0 - //Rtf = Rtf.Replace("\u25CF", @"\f1\fs18\b0\i0 \u9679?\f0 "); // bullet 25CF // jsj- add space after \f0 - if (myparent.MyItemInfo.FormatStepData != null && !myparent.MyItemInfo.FormatStepData.AlwaysTab && myparent.MyItemInfo.MyPrevious != null) - { - //if (scriptCaution) - // Rtf = Rtf.Replace("CAUTION ", @"\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?"); - Rtf = Rtf.Replace("Caution:", " "); - Rtf = Rtf.Replace("Note:", " "); - Rtf = Rtf.Replace("CAUTION:", " "); - Rtf = Rtf.Replace("NOTE:", " "); - Rtf = Rtf.Replace("Caution", " "); - Rtf = Rtf.Replace("Note", " "); - Rtf = Rtf.Replace("CAUTION", " "); - Rtf = Rtf.Replace("NOTE", " "); - } - } - //if (ScriptCaution && Rtf.Contains("Caution")) - //{ - // // NSP script caution - // iTextSharp.text.Font myfont = pdf.GetFont(vFont.Family, 28, 0, iTextSharp.text.Color.BLACK); - // if (!myfont.BaseFont.CharExists(0x43)) // Capital 'C' exists as text - // { - // //VE_Font vf = new VE_Font("VolianScript", 28, E_Style.Italics, 12); - // // Capital 'C' exists as Symbol - // Rtf = Rtf.Replace("Caution ", @"\u61507?\u61537?\u61557?\u61556?\u61545?\u61551?\u61550?\u61472?\u61472?"); - // } - - //} - - - // do positioning based on whether format has locations for section 'header'. If it's not centered, treat - // it's location more like a 'tab'. - if (doSectTab) - { - XOffset = xoffset; - // the width was just a little small, so it was wrapping - but only if there were no spaces at end - // so use this condition to do minimal impact (WCN1 format, for section tabs with three places, i.e. 6.1.2 - if (!cleanTab.EndsWith(" "))Width += .1f; - } - else - { - //if (MyFont.Family == "Arial" && MyFont.Size == 14) - //{ - // System.Drawing.Font font = new System.Drawing.Font("Arial", 14); - // iTextSharp.text.Font iFont = Volian.Svg.Library.VolianPdf.GetFont(font); - // float w = iFont.BaseFont.GetWidthPointKerned(Text, 14); - // Width = w; - //} - XOffset = xoffset - Width; - } - - } - public override float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin) - { - if (MyParent.MyItemInfo.FormatStepData != null && MyParent.MyItemInfo.FormatStepData.StepPrintData != null) - XOffset += (float)(MyParent.MyItemInfo.FormatStepData.StepPrintData.PosAdjust ?? 0); - float yLocation = CalculateYOffset(yPageStart, yTopMargin); - Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, "", yBottomMargin); - return yPageStart; - } - } -} diff --git a/PROMS/Volian.Print.Library/vlnTab.cs.org b/PROMS/Volian.Print.Library/vlnTab.cs.org deleted file mode 100644 index 8390bced..00000000 --- a/PROMS/Volian.Print.Library/vlnTab.cs.org +++ /dev/null @@ -1,323 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using iTextSharp.text.pdf; -using iTextSharp.text; -using VEPROMS.CSLA.Library; - -namespace Volian.Print.Library -{ - public partial class vlnTab : vlnText - { - /// - /// Used to Align Tabs for numeric tabs that can go to 2 digits - /// - private float? _TabAlign; - public float TabAlign // Offset to Last printable character - { - get - { - if (_TabAlign == null) - { - _TabAlign = 0; - if (Text != null) - { - while (_TabAlign < Text.Length && Text[(int)_TabAlign] == ' ') - _TabAlign++; - if (_TabAlign < Text.Length) - { - if ("0123456789".Contains(Text[(int)_TabAlign].ToString())) - { - while ("0123456789".Contains(Text[(int)_TabAlign].ToString())) - _TabAlign++; - _TabAlign--; - } - } - else - _TabAlign = 0; - } - } - return (float)_TabAlign * MyFont.CharsToTwips; - } - } - private float? _TabOffset; - public float TabOffset // Offset to first printable character - { - get - { - if (_TabOffset == null) - { - _TabOffset = 0; - if (Text != null) - { - while (_TabOffset= Text.Length) _TabOffset = 0; - return (float)_TabOffset * MyFont.CharsToTwips; - } - } - private vlnMacro _MyMacro; - public vlnMacro MyMacro - { - get { return _MyMacro; } - set { _MyMacro = value; } - } - - private string symblsStr = "\u25CF\u0394"; // string of possible symbol character in a tab - // add symbol characters as needed - // "\u25CF" - solid bullet - // \x0394 - delta - - private System.Drawing.FontStyle GetSysFontStyle(VE_Font f) - { - if (f.Style == E_Style.Italics) - return System.Drawing.FontStyle.Italic; - return FontStyle.Regular; - } - private float GetTextWidth(VE_Font vefont, string txt, string symblFontName) - { - System.Drawing.Font font = new System.Drawing.Font(vefont.Family, (float)vefont.Size, GetSysFontStyle(vefont)); - System.Drawing.Font symbFont = new System.Drawing.Font(symblFontName, (float)vefont.Size); - iTextSharp.text.Font iFont = Volian.Svg.Library.VolianPdf.GetFont(font); - iTextSharp.text.Font iSymblFont = Volian.Svg.Library.VolianPdf.GetFont(symbFont); - float w = 0; - foreach (char c in txt) - { - int idx = symblsStr.IndexOf(c); - if (idx >= 0) // symbol character - use symbol font to find its width - w += iSymblFont.BaseFont.GetWidthPointKerned(symblsStr[idx].ToString(), (float)vefont.Size); - else - w += iFont.BaseFont.GetWidthPointKerned(c.ToString(), (float)vefont.Size); - } - //float w = iFont.BaseFont.GetWidthPointKerned(Text.Replace("\u25CF","@"), (float)vefont.Size); - return w; - } - bool _ScriptCaution = false; - - public bool ScriptCaution - { - get { return _ScriptCaution; } - set { _ScriptCaution = value; } - } - bool _SeparateBullet = false; - - public bool SeparateBullet - { - get { return _SeparateBullet; } - set { _SeparateBullet = value; } - } - public vlnTab(PdfContentByte cb, vlnParagraph myparent, string origTab, string cleanTab, float xoffset, float yoffset, VE_Font vFont, bool doSectTab, string symblFontName, bool removedUnderline) - { - bool alignAsIfBulleted = false; - ScriptCaution = (origTab.Contains("Caution") && vFont.Family == "VolianScript"); - MyContentByte = cb; - MyParent = myparent; - YOffset = yoffset; - Text = cleanTab; - MyFont = vFont; - float CCCs = GetTextWidth(MyFont, "CCCCCCCCCC", symblFontName); - float IIIs = GetTextWidth(MyFont, "iiiiiiiiii", symblFontName); - string origTab1 = origTab; - if (ScriptCaution) - { - Text = origTab.Replace("Caution ", "\uF043\uF061\uF069\uF06E\uF06F\uF074\uF075\uF020\uF020"); - Width = 90; - } - else if ((myparent.MyItemInfo.FormatStepData != null) && (myparent.MyItemInfo.FormatStepData.TabData.IdentWidth ?? 0) > 0) - //if ((myparent.MyItemInfo.FormatStepData != null) && (myparent.MyItemInfo.FormatStepData.TabData.IdentWidth ?? 0) > 0) - Width = (float)myparent.MyItemInfo.FormatStepData.TabData.IdentWidth; - else if (CCCs != IIIs) - { - float tPtPerChar = myparent.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TabPtsPerChar ?? 6; - Width = tPtPerChar * origTab.Length; - // Check the following, it may be needed for FPL: - //origTab1 = origTab1.TrimStart(" ".ToCharArray()); - // 6 = number of points per character. 4 characters between end of tab and beginning of text - // origTab1.Trim... is number of non-space characters of the tab string. - //Width = 6 * (4 + origTab1.Trim(" ".ToCharArray()).Length); - } - else - Width = GetTextWidth(MyFont, (Text != null ? Text : origTab), symblFontName); //MyFont.CharsToTwips * (Text != null ? Text.Length : origTab.Length); - - // Pairie Island (NSP) Caution and Note tabs use a larger font - // When using a bullet, we need to use the font size of the Caution/Note text instead of the tab. - // To do this we set the TabData.Bullet.Separate to true (currently - 4/26/2013 - only NSP uses this). - // Because of the different font sizes, when the Caution/Note did have have a bullet, the positioning - // was off by the lenght of IdentB (the bullet string), thus the "alignAsIfBulleted" bool - if ((myparent.MyItemInfo.FormatStepData != null) && myparent.MyItemInfo.FormatStepData.TabData.Bullet.Separate) - if (myparent.MyItemInfo.MyPrevious != null || myparent.MyItemInfo.NextItem != null) - SeparateBullet = true; - else - alignAsIfBulleted = true; - - if (origTab.Contains(@"{!")) - { - int mindx = origTab.IndexOf(@"{!"); - int meindx = origTab.IndexOf(@"}", mindx); - string macro = origTab.Substring(mindx, meindx - mindx + 1); - // Width for placement of macro should be position in the string where the macro was located. - float lwidth = MyFont.CharsToTwips * (origTab.Length - meindx - 1); - MyMacro = new vlnMacro(xoffset - lwidth, yoffset, macro.Substring(2, macro.Length - 3)); - xoffset += myparent.MyItemInfo.FormatStepData.TabData.MacroTabAdjust ?? 0; - origTab = origTab.Replace(macro, ""); - cleanTab = origTab; - if (CCCs != IIIs) - { - float? tPtPerChar1 = myparent.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TabPtsPerChar; - if (tPtPerChar1!=null) - Width = (float)tPtPerChar1 * origTab.Length; - else - { - origTab = origTab + " "; - origTab = origTab.TrimStart(" ".ToCharArray()); - if (mindx > 2) // ouch! - Width = 6f * (origTab.Length - 1); // FPL (macro is after {numeric}) FPL is good with genmac output! - else - Width = 3 + (6f * origTab.Length); // NSP (macro is before {numeric}) - } - } - else - Width = GetTextWidth(MyFont, (cleanTab != null ? cleanTab : origTab), symblFontName);//MyFont.CharsToTwips * (cleanTab != null ? cleanTab.Length : origTab.Length); - } - else - { - origTab = origTab1; - } - - // if this tab was underlined, we may need to add partial underlining back in, if it was - // removed when the bullet was added. This handles the case where the bullet was appended - // to the tab, for example "NOTE: o". - if (removedUnderline) - { - int sep = origTab.IndexOfAny(". ".ToCharArray()); - //origTab = @"\ul " + origTab.Substring(0, sep-1) + @"\ulnone" + origTab.Substring(sep-1); - origTab = @"\ul " + origTab.Substring(0, sep) + @"\ulnone" + origTab.Substring(sep); - } - - UnderlineTerminateList utl = myparent.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.UnderlineTerminateList; - - // if this tab is underlined, the underlining should not underline the ':'. Check for "NOTE:" - // or "CAUTION:", i.e. only underline up to ':' - if (myparent.MyItemInfo.IsStep && ((myparent.MyItemInfo.FormatStepData.AlwaysTab || myparent.MyItemInfo.MyPrevious == null) - && ((vFont.Style & E_Style.Underline) > 0) && (origTab.ToUpper().Contains("NOTE:") || - origTab.ToUpper().Contains("CAUTION:")))) - { - FontStyle style = FontStyle.Regular; - if ((vFont.Style & E_Style.Bold) > 0) style |= FontStyle.Bold; - if ((vFont.Style & E_Style.Italics) > 0) style |= FontStyle.Italic; - vFont.WindowsFont = new System.Drawing.Font(vFont.Family, (float)vFont.Size, style); - int indxC = origTab.IndexOf(":"); - origTab = @"\ul " + origTab.Substring(0, indxC) + @"\ulnone" + origTab.Substring(indxC); - } - else if (utl != null && utl.Count > 0 && ((vFont.Style & E_Style.Underline) > 0)) - { - foreach (UnderlineTerminate ut in utl) - { - if (origTab.Contains(ut.Text)) - { - FontStyle style = FontStyle.Regular; - if ((vFont.Style & E_Style.Bold) > 0) style |= FontStyle.Bold; - if ((vFont.Style & E_Style.Italics) > 0) style |= FontStyle.Italic; - vFont.WindowsFont = new System.Drawing.Font(vFont.Family, (float)vFont.Size, style); - int indxC = origTab.IndexOf(ut.Text); - origTab = @"\ul " + origTab.Substring(0, indxC) + @"\ulnone " + origTab.Substring(indxC); - break; - } - } - } - if (SeparateBullet) - Rtf = GetRtf(origTab, myparent.MyItemInfo.FormatStepData.TabData.Bullet.Font); - else - Rtf = GetRtf(origTab, vFont); - Rtf = Rtf.Replace("\u0394", @"\f1\u916?\f0 "); // delta 0x0394 - if (ScriptCaution) - { - Rtf = GetRtf("\u25CFCaution ", vFont); - Rtf = Rtf.Replace("\u25CF", @"\f1\fs20 \u9679?\f0\par\f0\fs64 "); // bullet 25CF // jsj- force bullet size (is different than tab text) - if (myparent.MyItemInfo.FormatStepData != null && !myparent.MyItemInfo.FormatStepData.AlwaysTab && myparent.MyItemInfo.MyPrevious != null) - Rtf = Rtf.Replace("Caution ", @"\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?"); - else - { - if (myparent.MyItemInfo.FormatStepData != null && !myparent.MyItemInfo.FormatStepData.AlwaysTab && myparent.MyItemInfo.NextItem == null) - Rtf = Rtf.Replace(@"\u9679?", ""); - Rtf = Rtf.Replace("Caution ", @"\u61507?\u61537?\u61557?\u61556?\u61545?\u61551?\u61550?\u61472?\u61472?"); - } - } - else - { - if (SeparateBullet) - Rtf = Rtf.Replace("\u25CF", ""); - else - Rtf = Rtf.Replace("\u25CF", @"\f1\u9679?\f0 "); // bullet 25CF // jsj- add space after \f0 - //Rtf = Rtf.Replace("\u25CF", @"\f1\fs18\b0\i0 \u9679?\f0 "); // bullet 25CF // jsj- add space after \f0 - if (myparent.MyItemInfo.FormatStepData != null && !myparent.MyItemInfo.FormatStepData.AlwaysTab && myparent.MyItemInfo.MyPrevious != null) - { - //if (scriptCaution) - // Rtf = Rtf.Replace("CAUTION ", @"\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?"); - Rtf = Rtf.Replace("Caution:", " "); - Rtf = Rtf.Replace("Note:", " "); - Rtf = Rtf.Replace("CAUTION:", " "); - Rtf = Rtf.Replace("NOTE:", " "); - Rtf = Rtf.Replace("Caution", " "); - Rtf = Rtf.Replace("Note", " "); - Rtf = Rtf.Replace("CAUTION", " "); - Rtf = Rtf.Replace("NOTE", " "); - } - } - //if (ScriptCaution && Rtf.Contains("Caution")) - //{ - // // NSP script caution - // iTextSharp.text.Font myfont = pdf.GetFont(vFont.Family, 28, 0, iTextSharp.text.Color.BLACK); - // if (!myfont.BaseFont.CharExists(0x43)) // Capital 'C' exists as text - // { - // //VE_Font vf = new VE_Font("VolianScript", 28, E_Style.Italics, 12); - // // Capital 'C' exists as Symbol - // Rtf = Rtf.Replace("Caution ", @"\u61507?\u61537?\u61557?\u61556?\u61545?\u61551?\u61550?\u61472?\u61472?"); - // } - - //} - - - // do positioning based on whether format has locations for section 'header'. If it's not centered, treat - // it's location more like a 'tab'. - if (doSectTab) - { - XOffset = xoffset; - // the width was just a little small, so it was wrapping - but only if there were no spaces at end - // so use this condition to do minimal impact (WCN1 format, for section tabs with three places, i.e. 6.1.2 - if (!cleanTab.EndsWith(" "))Width += .1f; - } - else - { - // if using a proportional font and the tab font/size is different than the text font/size - if (CCCs != IIIs && - (MyFont.Family != myparent.MyItemInfo.FormatStepData.Font.Family || - MyFont.Size != myparent.MyItemInfo.FormatStepData.Font.Size)) - { - // This is needed for Prairie Island (NSP) Caution/Note tabs to consistantly position - // them at the same horizontal (column) position on the page - string txt = Text; - if (alignAsIfBulleted) - txt += myparent.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IdentB; - System.Drawing.Font font = new System.Drawing.Font(MyFont.Family,(float)MyFont.Size); - iTextSharp.text.Font iFont = Volian.Svg.Library.VolianPdf.GetFont(font); - float w = iFont.BaseFont.GetWidthPointKerned(txt, (float)MyFont.Size); - Width = w; - } - XOffset = xoffset - Width; - } - - } - public override float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin) - { - if (MyParent.MyItemInfo.FormatStepData != null && MyParent.MyItemInfo.FormatStepData.StepPrintData != null) - XOffset += (float)(MyParent.MyItemInfo.FormatStepData.StepPrintData.PosAdjust ?? 0); - float yLocation = CalculateYOffset(yPageStart, yTopMargin); - Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, "", yBottomMargin); - return yPageStart; - } - } -} diff --git a/PROMS/Volian.Print.Library/vlnTabMcG.cs b/PROMS/Volian.Print.Library/vlnTabMcG.cs deleted file mode 100644 index 0ff2ff1d..00000000 --- a/PROMS/Volian.Print.Library/vlnTabMcG.cs +++ /dev/null @@ -1,323 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using iTextSharp.text.pdf; -using iTextSharp.text; -using VEPROMS.CSLA.Library; - -namespace Volian.Print.Library -{ - public partial class vlnTab : vlnText - { - /// - /// Used to Align Tabs for numeric tabs that can go to 2 digits - /// - private float? _TabAlign; - public float TabAlign // Offset to Last printable character - { - get - { - if (_TabAlign == null) - { - _TabAlign = 0; - if (Text != null) - { - while (_TabAlign < Text.Length && Text[(int)_TabAlign] == ' ') - _TabAlign++; - if (_TabAlign < Text.Length) - { - if ("0123456789".Contains(Text[(int)_TabAlign].ToString())) - { - while ("0123456789".Contains(Text[(int)_TabAlign].ToString())) - _TabAlign++; - _TabAlign--; - } - } - else - _TabAlign = 0; - } - } - return (float)_TabAlign * MyFont.CharsToTwips; - } - } - private float? _TabOffset; - public float TabOffset // Offset to first printable character - { - get - { - if (_TabOffset == null) - { - _TabOffset = 0; - if (Text != null) - { - while (_TabOffset= Text.Length) _TabOffset = 0; - return (float)_TabOffset * MyFont.CharsToTwips; - } - } - private vlnMacro _MyMacro; - public vlnMacro MyMacro - { - get { return _MyMacro; } - set { _MyMacro = value; } - } - - private string symblsStr = "\u25CF\u0394"; // string of possible symbol character in a tab - // add symbol characters as needed - // "\u25CF" - solid bullet - // \x0394 - delta - - private System.Drawing.FontStyle GetSysFontStyle(VE_Font f) - { - if (f.Style == E_Style.Italics) - return System.Drawing.FontStyle.Italic; - return FontStyle.Regular; - } - private float GetTextWidth(VE_Font vefont, string txt, string symblFontName) - { - System.Drawing.Font font = new System.Drawing.Font(vefont.Family, (float)vefont.Size, GetSysFontStyle(vefont)); - System.Drawing.Font symbFont = new System.Drawing.Font(symblFontName, (float)vefont.Size); - iTextSharp.text.Font iFont = Volian.Svg.Library.VolianPdf.GetFont(font); - iTextSharp.text.Font iSymblFont = Volian.Svg.Library.VolianPdf.GetFont(symbFont); - float w = 0; - foreach (char c in txt) - { - int idx = symblsStr.IndexOf(c); - if (idx >= 0) // symbol character - use symbol font to find its width - w += iSymblFont.BaseFont.GetWidthPointKerned(symblsStr[idx].ToString(), (float)vefont.Size); - else - w += iFont.BaseFont.GetWidthPointKerned(c.ToString(), (float)vefont.Size); - } - //float w = iFont.BaseFont.GetWidthPointKerned(Text.Replace("\u25CF","@"), (float)vefont.Size); - return w; - } - bool _ScriptCaution = false; - - public bool ScriptCaution - { - get { return _ScriptCaution; } - set { _ScriptCaution = value; } - } - bool _SeparateBullet = false; - - public bool SeparateBullet - { - get { return _SeparateBullet; } - set { _SeparateBullet = value; } - } - public vlnTab(PdfContentByte cb, vlnParagraph myparent, string origTab, string cleanTab, float xoffset, float yoffset, VE_Font vFont, bool doSectTab, string symblFontName, bool removedUnderline) - { - bool alignAsIfBulleted = false; - ScriptCaution = (origTab.Contains("Caution") && vFont.Family == "VolianScript"); - MyContentByte = cb; - MyParent = myparent; - YOffset = yoffset; - Text = cleanTab; - MyFont = vFont; - float CCCs = GetTextWidth(MyFont, "CCCCCCCCCC", symblFontName); - float IIIs = GetTextWidth(MyFont, "iiiiiiiiii", symblFontName); - string origTab1 = origTab; - if (ScriptCaution) - { - Text = origTab.Replace("Caution ", "\uF043\uF061\uF069\uF06E\uF06F\uF074\uF075\uF020\uF020"); - Width = 90; - } - else if ((myparent.MyItemInfo.FormatStepData != null) && (myparent.MyItemInfo.FormatStepData.TabData.IdentWidth ?? 0) > 0) - //if ((myparent.MyItemInfo.FormatStepData != null) && (myparent.MyItemInfo.FormatStepData.TabData.IdentWidth ?? 0) > 0) - Width = (float)myparent.MyItemInfo.FormatStepData.TabData.IdentWidth; - else if (CCCs != IIIs) - { - float tPtPerChar = myparent.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TabPtsPerChar ?? 6; - Width = tPtPerChar * origTab.Length; - // Check the following, it may be needed for FPL: - //origTab1 = origTab1.TrimStart(" ".ToCharArray()); - // 6 = number of points per character. 4 characters between end of tab and beginning of text - // origTab1.Trim... is number of non-space characters of the tab string. - //Width = 6 * (4 + origTab1.Trim(" ".ToCharArray()).Length); - } - else - Width = GetTextWidth(MyFont, (Text != null ? Text : origTab), symblFontName); //MyFont.CharsToTwips * (Text != null ? Text.Length : origTab.Length); - - // Pairie Island (NSP) Caution and Note tabs use a larger font - // When using a bullet, we need to use the font size of the Caution/Note text instead of the tab. - // To do this we set the TabData.Bullet.Separate to true (currently - 4/26/2013 - only NSP uses this). - // Because of the different font sizes, when the Caution/Note did have have a bullet, the positioning - // was off by the lenght of IdentB (the bullet string), thus the "alignAsIfBulleted" bool - if ((myparent.MyItemInfo.FormatStepData != null) && myparent.MyItemInfo.FormatStepData.TabData.Bullet.Separate) - if (myparent.MyItemInfo.MyPrevious != null || myparent.MyItemInfo.NextItem != null) - SeparateBullet = true; - else - alignAsIfBulleted = true; - - if (origTab.Contains(@"{!")) - { - int mindx = origTab.IndexOf(@"{!"); - int meindx = origTab.IndexOf(@"}", mindx); - string macro = origTab.Substring(mindx, meindx - mindx + 1); - // Width for placement of macro should be position in the string where the macro was located. - float lwidth = MyFont.CharsToTwips * (origTab.Length - meindx - 1); - MyMacro = new vlnMacro(xoffset - lwidth, yoffset, macro.Substring(2, macro.Length - 3)); - xoffset += myparent.MyItemInfo.FormatStepData.TabData.MacroTabAdjust ?? 0; - origTab = origTab.Replace(macro, ""); - cleanTab = origTab; - if (CCCs != IIIs) - { - float? tPtPerChar1 = myparent.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.StepSectionLayoutData.TabPtsPerChar; - if (tPtPerChar1!=null) - Width = (float)tPtPerChar1 * origTab.Length; - else - { - origTab = origTab + " "; - origTab = origTab.TrimStart(" ".ToCharArray()); - if (mindx > 2) // ouch! - Width = 6f * (origTab.Length - 1); // FPL (macro is after {numeric}) FPL is good with genmac output! - else - Width = 3 + (6f * origTab.Length); // NSP (macro is before {numeric}) - } - } - else - Width = GetTextWidth(MyFont, (cleanTab != null ? cleanTab : origTab), symblFontName);//MyFont.CharsToTwips * (cleanTab != null ? cleanTab.Length : origTab.Length); - } - else - { - origTab = origTab1; - } - - // if this tab was underlined, we may need to add partial underlining back in, if it was - // removed when the bullet was added. This handles the case where the bullet was appended - // to the tab, for example "NOTE: o". - if (myparent.MyItemInfo.ItemID==124256) Console.WriteLine("here"); - if (removedUnderline) - { - int sep = origTab.IndexOfAny(". ".ToCharArray()); - // if last character before the sep is not a ':', then add one to separator because - // this was cutting the last character off (if there was no ':'. - //if (origTab[sep - 1] != ':') sep++; - origTab = @"\ul " + origTab.Substring(0, sep-1) + @"\ulnone" + origTab.Substring(sep-1); - } - - UnderlineTerminateList utl = myparent.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.UnderlineTerminateList; - - // if this tab is underlined, the underlining should not underline the ':'. Check for "NOTE:" - // or "CAUTION:", i.e. only underline up to ':' - if (myparent.MyItemInfo.IsStep && ((myparent.MyItemInfo.FormatStepData.AlwaysTab || myparent.MyItemInfo.MyPrevious == null) - && ((vFont.Style & E_Style.Underline) == E_Style.Underline) && (origTab.ToUpper().Contains("NOTE:") || - origTab.ToUpper().Contains("CAUTION:")))) - { - FontStyle style = FontStyle.Regular; - if ((vFont.Style & E_Style.Bold) > 0) style |= FontStyle.Bold; - if ((vFont.Style & E_Style.Italics) > 0) style |= FontStyle.Italic; - vFont.WindowsFont = new System.Drawing.Font(vFont.Family, (float)vFont.Size, style); - int indxC = origTab.IndexOf(":"); - origTab = @"\ul " + origTab.Substring(0, indxC) + @"\ulnone" + origTab.Substring(indxC); - } - else if (utl != null && ((vFont.Style & E_Style.Underline) > 0)) - { - foreach (UnderlineTerminate ut in utl) - { - if (origTab.Contains(ut.Text)) - { - FontStyle style = FontStyle.Regular; - if ((vFont.Style & E_Style.Bold) > 0) style |= FontStyle.Bold; - if ((vFont.Style & E_Style.Italics) > 0) style |= FontStyle.Italic; - vFont.WindowsFont = new System.Drawing.Font(vFont.Family, (float)vFont.Size, style); - int indxC = origTab.IndexOf(ut.Text); - origTab = @"\ul " + origTab.Substring(0, indxC) + @"\ulnone " + origTab.Substring(indxC); - break; - } - } - } - Rtf = GetRtf(origTab, vFont); - Rtf = Rtf.Replace("\u0394", @"\f1\u916?\f0 "); // delta 0x0394 - if (ScriptCaution) - { - Rtf = GetRtf("\u25CFCaution ", vFont); - Rtf = Rtf.Replace("\u25CF", @"\f1\fs20 \u9679?\f0\par\f0\fs64 "); // bullet 25CF // jsj- force bullet size (is different than tab text) - if (myparent.MyItemInfo.FormatStepData != null && !myparent.MyItemInfo.FormatStepData.AlwaysTab && myparent.MyItemInfo.MyPrevious != null) - Rtf = Rtf.Replace("Caution ", @"\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?"); - else - { - if (myparent.MyItemInfo.FormatStepData != null && !myparent.MyItemInfo.FormatStepData.AlwaysTab && myparent.MyItemInfo.NextItem == null) - Rtf = Rtf.Replace(@"\u9679?", ""); - Rtf = Rtf.Replace("Caution ", @"\u61507?\u61537?\u61557?\u61556?\u61545?\u61551?\u61550?\u61472?\u61472?"); - } - } - else - { - if (SeparateBullet) - Rtf = Rtf.Replace("\u25CF", ""); - else - Rtf = Rtf.Replace("\u25CF", @"\f1\u9679?\f0 "); // bullet 25CF // jsj- add space after \f0 - //Rtf = Rtf.Replace("\u25CF", @"\f1\fs18\b0\i0 \u9679?\f0 "); // bullet 25CF // jsj- add space after \f0 - if (myparent.MyItemInfo.FormatStepData != null && !myparent.MyItemInfo.FormatStepData.AlwaysTab && myparent.MyItemInfo.MyPrevious != null) - { - //if (scriptCaution) - // Rtf = Rtf.Replace("CAUTION ", @"\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?\u61472?"); - Rtf = Rtf.Replace("Caution:", " "); - Rtf = Rtf.Replace("Note:", " "); - Rtf = Rtf.Replace("CAUTION:", " "); - Rtf = Rtf.Replace("NOTE:", " "); - Rtf = Rtf.Replace("Caution", " "); - Rtf = Rtf.Replace("Note", " "); - Rtf = Rtf.Replace("CAUTION", " "); - Rtf = Rtf.Replace("NOTE", " "); - } - } - //if (ScriptCaution && Rtf.Contains("Caution")) - //{ - // // NSP script caution - // iTextSharp.text.Font myfont = pdf.GetFont(vFont.Family, 28, 0, iTextSharp.text.Color.BLACK); - // if (!myfont.BaseFont.CharExists(0x43)) // Capital 'C' exists as text - // { - // //VE_Font vf = new VE_Font("VolianScript", 28, E_Style.Italics, 12); - // // Capital 'C' exists as Symbol - // Rtf = Rtf.Replace("Caution ", @"\u61507?\u61537?\u61557?\u61556?\u61545?\u61551?\u61550?\u61472?\u61472?"); - // } - - //} - - - // do positioning based on whether format has locations for section 'header'. If it's not centered, treat - // it's location more like a 'tab'. - if (doSectTab) - { - XOffset = xoffset; - // the width was just a little small, so it was wrapping - but only if there were no spaces at end - // so use this condition to do minimal impact (WCN1 format, for section tabs with three places, i.e. 6.1.2 - if (!cleanTab.EndsWith(" "))Width += .1f; - } - else - { - // if using a proportional font and the tab font/size is different than the text font/size - if (CCCs != IIIs && - (MyFont.Family != myparent.MyItemInfo.FormatStepData.Font.Family || - MyFont.Size != myparent.MyItemInfo.FormatStepData.Font.Size)) - { - // This is needed for Prairie Island (NSP) Caution/Note tabs to consistantly position - // them at the same horizontal (column) position on the page - string txt = Text; - if (alignAsIfBulleted) - txt += myparent.MyItemInfo.ActiveFormat.PlantFormat.FormatData.SectData.StepSectionData.IdentB; - System.Drawing.Font font = new System.Drawing.Font(MyFont.Family,(float)MyFont.Size); - iTextSharp.text.Font iFont = Volian.Svg.Library.VolianPdf.GetFont(font); - float w = iFont.BaseFont.GetWidthPointKerned(txt, (float)MyFont.Size); - Width = w; - } - XOffset = xoffset - Width; - } - - } - public override float ToPdf(PdfContentByte cb, float yPageStart, ref float yTopMargin, ref float yBottomMargin) - { - if (MyParent.MyItemInfo.FormatStepData != null && MyParent.MyItemInfo.FormatStepData.StepPrintData != null) - XOffset += (float)(MyParent.MyItemInfo.FormatStepData.StepPrintData.PosAdjust ?? 0); - float yLocation = CalculateYOffset(yPageStart, yTopMargin); - Rtf2Pdf.TextAt(cb, IParagraph, XOffset, yLocation, Width, 100, "", yBottomMargin); - return yPageStart; - } - } -} diff --git a/PROMS/Volian.Svg.Library/DisplayText.cs b/PROMS/Volian.Svg.Library/DisplayText.cs deleted file mode 100644 index 751e3ce7..00000000 --- a/PROMS/Volian.Svg.Library/DisplayText.cs +++ /dev/null @@ -1,644 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -//using System.Windows.Forms; -using System.Text.RegularExpressions; -using System.Drawing; - -namespace Volian.Svg.Library -{ - //public class DisplayText - //{ - // #region Properties - // // list of 'pieces of text' for this item. Pieces include symbols, ros, - // // transitions & plain text. - // private List _DisplayTextElementList; - // public List DisplayTextElementList - // { - // get { return _DisplayTextElementList; } - // set { _DisplayTextElementList = value; } - // } - // // dictionary for the font table for this item. Note that this may - // // go away (it is not really used). - // private Dictionary _dicRtfFontTable; - // public Dictionary dicRtfFontTable - // { - // get { return _dicRtfFontTable; } - // set { _dicRtfFontTable = value; } - // } - // public string OriginalText; // compare for save to see if change. - // #endregion - // #region Constructors - // private Font TextFont; - - // /// - // /// DisplayText constructor: - // /// Creates a DisplayText object that converts the database text into a list of - // /// displayTextElement elements. - // /// Arguments are: - // /// ItemInfo itemInfo - the item whose text will be resolved - // /// E_EditPrintMode ep_mode - edit or print. - // /// E_ViewMode vw_mode - view or edit. - // /// - // public DisplayText(string text) - // { - // DisplayTextElementList = new List(); - // OriginalText = text; - // TextFont = new Font("Prestige Elite Tall",12); - // //TextFont = GetItemFont(); - - // // if in print mode or view mode, do replace words. Only if in edit mode are replace - // // words left as is. - // //_MyFormat = itemInfo.ActiveFormat; - // //if (epMode == E_EditPrintMode.Print || vwMode == E_ViewMode.View) text = DoReplaceWords(text); - - // // as a precaution, convert any \~ to \u160?. This is for Hard spaces.. see the commentary in the - // // save portion of this code for an explanation. - // text = text.Replace(@"\~", @"\u160?"); - // text = text.Replace(@"\'99", @"\u8482?"); - - // // replace the dash/hyphen or whatever you want to call it, with a hard hyphen. The 16-bit program - // // treated the dash/hyphen as such. Translate back on any data saves. - // text = text.Replace(@"-", @"\u8209?"); - // // Replace the backslash with a backslash symbol. Translate back on data saves. - // text = text.Replace(@"\\", @"\u9586?"); // unicode hex 2572 - // // displayTextElement List items are created for anything that is handled differently in RTB, i.e. - // // symbols, ros, trans, text. - // int startIndex = 0; - // int index = -1; - // while ((index = FindTokenChar(text, startIndex)) > -1) - // { - // // Do any 'plain' text that preceeds the token. - // if (index > startIndex) DoTextElement(text, startIndex, index); - - // // Now do any other types - // if (text[index] == '\x15') - // index = DoRO(text, index); - // else if (text[index] == '\x252C' || text[index] == '\x2566') - // index = DoTran(text, index); - // else - // index = DoSymbol(text, startIndex, index); - // startIndex = index; // +1; - // if (startIndex >= text.Length) break; - // } - // // Add any remaining text. - // if (startIndex < text.Length) DoTextElement(text, startIndex, index); - // } - // #endregion - // #region SaveData - // //public bool Save(string rtf) - // //{ - // // try - // // { - // // List origList = GetLinkList(DisplayTextElementList); - // // // massage string to store in DisplayTextElementList... - // // RtfToDisplayTextElements(rtf); - // // // take the list & convert to data in the format to save to the database. - // // StringBuilder sret = new StringBuilder(); - // // foreach (displayTextElement vte in DisplayTextElementList) - // // { - // // if (vte.Type == E_TextElementType.Text || vte.Type == E_TextElementType.Symbol) - // // sret.Append(vte.Text); - // // else if (vte.Type == E_TextElementType.ReferencedObject) - // // sret.Append(ToData_RO((displayLinkElement)vte)); - // // else if (vte.Type == E_TextElementType.Transition || vte.Type == E_TextElementType.TransitionRange) - // // sret.Append(ToData_Trans((displayLinkElement)vte)); - // // } - // // string modtext = sret.ToString(); - // // if (modtext != OriginalText) - // // { - // // Item itm = _MyItemInfo.Get(); - // // // check for different text, i.e. text from this itm doesn't match - // // // original text. - // // if (OriginalText != itm.MyContent.Text) - // // { - // // Console.WriteLine("Save Failed because text changed outside of this edit session."); - // // return false; - // // } - // // // Compare ro/transition lists and delete or add any to the item for any ros/transitions that have been - // // // added/deleted or modified. - // // ProcessRoTranChanges(itm, origList); - // // itm.MyContent.Text = modtext; - // // itm.Save(); - // // OriginalText = modtext; - // // } - // // else - // // return true; // no text changed, but did not fail so return true. - // // } - // // catch (Exception ex) - // // { - // // Console.WriteLine("Save Failed with error: {0}", ex.Message); - // // return false; - // // } - // // return true; - // //} - // private List GetLinkList(List locDisplayTextElementList) - // { - // List retList = new List(); - // foreach (displayTextElement vte in locDisplayTextElementList) - // { - // if (vte.Type == E_TextElementType.ReferencedObject || vte.Type == E_TextElementType.TransitionRange || vte.Type == E_TextElementType.Transition) - // { - // displayLinkElement tmp = (displayLinkElement)vte; - // displayLinkElement copy_vte = new displayLinkElement(); - // copy_vte.Type = tmp.Type; - // copy_vte.Link = tmp.Link; - // copy_vte.Text = tmp.Text; - // retList.Add(copy_vte); - // } - // } - // return retList; - // } - // private void RtfToDisplayTextElements(string rtf) - // { - // // For hardspaces, the windows richtextbox does some 'quirky' things: - // // A unicode representation of \u160? is sent INTO the rtb. Coming out, - // // that \u160? was translated to a \~ (by the underlying windows rtb). - // // Note that if the \~ is sent to the rtb, it is treated as a regular space, - // // i.e. no longer a hardspace, and actually is converted to a regular space. - // // SO, on the way out, convert any \~ to \u160? - // string noExtraRtfStr = rtf.Replace(@"\~", @"\u160?"); - - - // // GetFontTable returns a non-negative number font number in the - // // font table for the unicode font, if it is used (otherwise -1) - // //int unicodeFont = GetFontTable(rtb.Rtf); - - // // strip off all rtf commands... - // noExtraRtfStr = StripRtfCommands(noExtraRtfStr); - // //Console.WriteLine("StripRtf: {0}", noExtraRtfStr); - - // // Also, set back the hard dash to a regular dash... Do this after the removal - // // of other rtf commands though since the \u8209 was surrounded by font commands - // // that, without there removal first, was also removing the dash. Have it with - // // a space & without because if it is at the end, there will be no space (leave - // // it to rtf processing to make it more complicated) - // noExtraRtfStr = noExtraRtfStr.Replace(@"\u8209? ", @"-"); - // noExtraRtfStr = noExtraRtfStr.Replace(@"\u8209?", @"-"); - - // // change back the backslahs symbol to a regular backslash - // noExtraRtfStr = noExtraRtfStr.Replace(@"\u9586?", @"\\"); - - // DisplayTextElementList.Clear(); - // int startIndex = 0; - // int index = -1; - // while ((index = FindRtfChar(noExtraRtfStr, startIndex)) > -1) - // { - // int fndindx = -1; - // // Do any 'plain' text that preceeds the token. - // if (index > startIndex) - // index = SaveTextElement(noExtraRtfStr, startIndex, index); - // if ((fndindx = noExtraRtfStr.IndexOf(@"\protect", index)) == index) - // index = SaveLink(noExtraRtfStr, index); - // else - // index = SaveSymbolTE(noExtraRtfStr, index); - // startIndex = index + 1; - // if (startIndex >= noExtraRtfStr.Length) break; - // } - // // Add any remaining text. - // if (startIndex < noExtraRtfStr.Length) DoTextElement(noExtraRtfStr, startIndex, index); - // //Console.WriteLine(noExtraRtfStr); - // } - // private int SaveTextElement(string data, int startIndex, int index) - // { - // displayTextElement vte = new displayTextElement(); - // vte.Type = E_TextElementType.Text; - // int len = (index == -1) ? data.Length - startIndex : index - startIndex; - // vte.Text = data.Substring(startIndex, len); - // DisplayTextElementList.Add(vte); - // return index; - // } - // private int SaveSymbolTE(string data, int startIndex) - // { - // displayLinkElement vte = new displayLinkElement(); - // vte.Type = E_TextElementType.Symbol; - // // symbols are just the unicode/rtf command, no font associated with it - // // by the time it gets here... A symbol can be represented by \'xy or \uxyz? - // // if the \'xy is used the length of the symbol number will always be two, - // // otherwise find the index of the '?' to find the end. - // int endindx = -1; - // if (data[startIndex + 1] == '\'') endindx = startIndex + 3; - // else endindx = data.IndexOf("?", startIndex); - // if (endindx == -1) return startIndex; // not found - error - // vte.Text = data.Substring(startIndex, endindx - startIndex + 1); - // DisplayTextElementList.Add(vte); - // if (endindx + 1 < data.Length && data[endindx + 1] != ' ') return endindx; - // return endindx + 1; // add one to get past the space that was added after a symbol (to end the font cmd) - // } - // private int SaveLink(string data, int stIndex) - // { - // ////displayLinkElement vte = new displayLinkElement(); - // //// find the end of the link text, i.e. either the ending \v0 or \protect0. The win32 rtf box can - // //// put these in either order, take the lowest index. - // //int startIndex = stIndex + @"\protect ".Length; - // //int indx_v0 = data.IndexOf(@"\v0", startIndex); - // //int indx_protect0 = data.IndexOf(@"\protect0", startIndex); - // //int indx = indx_v0 < indx_protect0 ? indx_v0 : indx_protect0; - // //LinkText lt = new LinkText(data.Substring(startIndex, indx - startIndex)); - // //displayLinkElement vte = new displayLinkElement(); - // //vte.Type = (E_TextElementType)lt.MyParsedLinkType; - // //vte.Text = lt.MyValue; - // //vte.Link = lt.MyLink; - // //DisplayTextElementList.Add(vte); - // //return (indx_v0 < indx_protect0 ? indx_protect0 + 1 : indx_v0 + 1); - // ////if (lt.MyParsedLinkType == ParsedLinkType.ReferencedObject) return - // ////// first find if ReferencedObject or trans, the ReferencedObject has a #R. - // ////int istart = data.IndexOf("#Link:", startIndex); - // ////if (data[istart + 6] == 'R') return SaveROTE(data, startIndex); - // ////else if (data.Substring(istart+6,11) == "TransitionR") - // //// return SaveTranTE(data, startIndex, E_TextElementType.TRANS_Range); - // ////return SaveTranTE(data, startIndex, E_TextElementType.TRANS_Single); - // return 0; - // } - // //private int SaveTranTE(string data, int startIndex, E_TextElementType type) - // //{ - // // displayLinkElement vte = new displayLinkElement(); - - // // vte.Type = type; - // // // \protect {transition text} \v #Link:Transition(Range): 1 2 3\protect0\v0 - // // // where 1 2 3 are transition type and ids - // // int indx = data.IndexOf("\\v #Link:Transition", startIndex); - // // // use '9' to get past \\protect - // // vte.Text = data.Substring(startIndex + 9, indx - startIndex - 9); - // // // the link is the text between the #Link... and the next '\\'. - // // int iend = data.IndexOf("\\", indx+1); - // // int bindx = data.IndexOf("#", indx); - // // vte.Link = data.Substring(bindx, iend - bindx); - // // DisplayTextElementList.Add(vte); - // // // unfortunately, the rtf box may add the \protect0 \v0 in either order - // // // and with or without one or more spaces between then. The number of text - // // // characters = 11 for \protect0\v0 - find the number of spaces between them - // // // if any? - // // int nsp = 0; - // // for (int c = iend; c < iend + 11; c++) if (data[c] == ' ') nsp++; - // // return iend + 11 + nsp; - // //} - // //private int SaveROTE(string data, int startIndex) - // //{ - // // displayLinkElement vte = new displayLinkElement(); - // // vte.Type = E_TextElementType.ReferencedObject; - // // // \protect {rovalue} \v #Link:ReferencedObject (RoUsageId) {ROID}\protect0\v0 - // // int indx = data.IndexOf("\\v #Link:ReferencedObject", startIndex); - // // // use '9' to get past \\protect - // // vte.Text = data.Substring(startIndex + 9, indx - startIndex - 9); - // // // the link is the text between the #Link... and the next '\\'. - // // int iend = data.IndexOf("\\", indx); - // // int bindx = data.IndexOf("#", indx); - // // vte.Link = data.Substring(bindx, iend - bindx); - // // DisplayTextElementList.Add(vte); - // // // unfortunately, the rtf box may add the \protect0 \v0 in either order - // // // and with or without one or more spaces between then. The number of text - // // // characters = 11 for \protect0\v0 - find the number of spaces between them - // // // if any? - // // int nsp = 0; - // // for (int c = iend; c < iend + 11; c++) if (data[c] == ' ') nsp++; - // // return iend + 11 + nsp; - // //} - // private int FindRtfChar(string text, int startIndex) - // { - // int prindx = text.IndexOf("\\protect", startIndex); - // int symindx1 = text.IndexOf("\\'", startIndex); - // int symindx2 = text.IndexOf("\\u", startIndex); - // if (symindx2 > -1) - // { - // if (text[symindx2 + 2] == 'l') symindx2 = -1; // don't process underlines - // } - // if (prindx == -1 && symindx1 == -1 && symindx2 == -1) return -1; - // if (prindx == -1) prindx = text.Length + 1; - // if (symindx1 == -1) symindx1 = text.Length + 1; - // if (symindx2 == -1) symindx2 = text.Length + 1; - - // // Which token has smallest number, to determine which item is next - // // in the string. If it is a symbol - see if it has a font specifier - // // first. - // int symindx = symindx1 < symindx2 ? symindx1 : symindx2; - // int smallest = (prindx < symindx ? prindx : symindx); - // return smallest; - // } - // private int GetFontTable(string rtf) - // { - // dicRtfFontTable = new Dictionary(); - // // return unicode (symbol) font number, if it exists, to expedite finding - // // the font for symbols. - // int unicodeFont = -1; - // int bindx = rtf.IndexOf(@"{\fonttbl"); - // if (bindx < -1) return -1; - // int eindx = rtf.IndexOf("}}", bindx); - // // get font table string and then do regular expressions to get font number - // // with font name. - // string tbl = rtf.Substring(bindx + 9, eindx - bindx - 8); - // tbl = tbl.Replace("{", "<"); - // tbl = tbl.Replace("}", ">"); - // string pat = @"(?:<\\f)([0-9]+)(?:[\S]+ )([\w ]+)"; - // StringBuilder sb = new StringBuilder(); - // foreach (Match m in Regex.Matches(tbl, pat)) - // { - // int num = Convert.ToInt32(m.Result("${1}")); - // string nam = m.Result("${2}"); - // dicRtfFontTable.Add(num, nam); - // if ((unicodeFont == -1) && (nam == "Arial Unicode MS")) unicodeFont = num; - // } - // return unicodeFont; - // } - // public static string ReplaceRTFClause(Match m) - // { - // switch (m.Value[1]) - // { - // case 'u': - // if (Regex.IsMatch(m.Value, @"\\u[0-9]+")) - // return m.Value; // Special Charcaters - // if (Regex.IsMatch(m.Value, @"\\ulnone")) - // return m.Value; - // if (Regex.IsMatch(m.Value, @"\\ul.*")) - // return m.Value; // Underline - // if (Regex.IsMatch(m.Value, @"^\\up[0-9] ?$")) - // return m.Value; // shift up (superscript) - // break; - // case 'd': - // if (Regex.IsMatch(m.Value, @"^\\dn[0-9] ?$")) - // return m.Value; // shift down (subscript) - // break; - // case '\'': // Special Character - // return m.Value; - // case 'b': // Bold - // return m.Value; - // case 'i': // Italics - // return m.Value; - // case 'v': // save link hidden info - // if (m.Value == @"\v") return m.Value; // part of link - // if (Regex.IsMatch(m.Value, @"\\v0")) - // return m.Value; // hidden info off - // break; - // case 'p': - // if (m.Value == @"\par") return "\r\n"; - // if (m.Value == @"\protect") - // return m.Value; - // if (m.Value == @"\protect0") - // return m.Value; - // break; - // } - // return "";//Strip All - // } - // public static string StripRtfCommands(string rtf) - // { - // string retval = Regex.Replace(rtf, @"[\r\n]", "", RegexOptions.Singleline); // Strip Carriage Returns and Newlines - // retval = Regex.Replace(retval, @"^\{(.*)\}$", "$1", RegexOptions.Singleline); // Strip Opening and Closing Braces - // retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - // retval = Regex.Replace(retval, @"\{[^{]*?\}", "", RegexOptions.Singleline); // Strip Clauses - remove anything from curly braces - // retval = Regex.Replace(retval, @"\\[^ \\?]+", new MatchEvaluator(ReplaceRTFClause)); // take backslash xyz and evaluates them - // // remove a space if there is one as the first character.. - // if (retval[0] == ' ') retval = retval.Remove(0, 1); - // // remove \r\n at end of string - this was added with the \par at the end of string by the rtf box - // if (retval.Substring(retval.Length - 2, 2) == "\r\n") retval = retval.Remove(retval.Length - 2, 2); - - // return retval; - // } - // private string ToData_RO(displayLinkElement vte) - // { - // // get past the #Link:ReferencedObject part of the link. - // return String.Format("\x15ReferencedObjectv RO\\v0 {0}\\v #{1}\\v0", vte.Text, vte.Link.Substring(23, vte.Link.Length - 23)); - // } - // private string ToData_Trans(displayLinkElement vte) - // { - // char trchar = vte.Type == E_TextElementType.Transition ? '\x252C' : '\x2566'; - // // depending on type, get past the #Link:Transition: or #Link:TransitionRange: part - // // of text. - // int indx = vte.Type == E_TextElementType.Transition ? 18 : 23; - // return String.Format("{0}\\v TRAN\\v0 {1}\\v {2}\\v0", trchar, vte.Text, vte.Link.Substring(indx, vte.Link.Length - indx)); - // } - // #endregion - // //#region StyleData - // //private VE_Font GetItemFont() - // //{ - // // VE_Font font = null; - // // FormatInfo format = _MyItemInfo.ActiveFormat; - // // int type = (int)_MyItemInfo.MyContent.Type; - // // switch (type / 10000) - // // { - // // case 0: // procedure - // // font = format.PlantFormat.FormatData.Font; - // // break; - // // case 1: // section - // // font = format.PlantFormat.FormatData.SectData.SectionHeader.Font; - // // break; - // // case 2: // step types - // // int typindx = type - 20000; // what to do for other types rather than steps - // // font = format.PlantFormat.FormatData.StepDataList[typindx].Font; - // // break; - // // } - // // TextFont = font; - // // return font; - // //} - // //#endregion - // #region DoListElements - // private int FindTokenChar(string txt, int startIndex) - // { - // // tokens are ro, transitions and possible symbol - // char[] tok = { '\x15', '\x252C', '\x2566', '\\' }; - // bool done = false; - // // If there is only an rtf token from the indexed position on, don't return the - // // IndexOfAny index value, because it will by one character past the '\' and throw - // // of the return value of where in the string the text should be saved. For example - // // for the string '\b text \v somevalue \v0\b0', the first time through the while - // // loop has the index at the '\b' char of the b0. - // //int savstartIndex = startIndex; - // while (!done) - // { - // int indx = txt.IndexOfAny(tok, startIndex); - // if (indx < 0) return indx; - // if (txt[indx] != '\\') return indx; - // // see if symbol (but not underline) or another rtf command: has a 'u' - // // followed by a non-underline or single quote, and if so, return it. - // // Otherwise, get next index, must have been a slash or other rtf command. - // if (((txt[indx + 1] == 'u' && txt[indx + 2] != 'l')) || (txt[indx + 1] == '\'')) return indx; - // startIndex = indx + 1; - // } - // return -1; - // } - // private int DoTextElement(string text, int startIndex, int index) - // { - // displayTextElement vte = new displayTextElement(); - // vte.Type = E_TextElementType.Text; - // int len = (index == -1) ? text.Length - startIndex : index - startIndex; - // vte.Text = text.Substring(startIndex, len); - // DisplayTextElementList.Add(vte); - // return index + 1; - // } - // private string CreateLink(E_TextElementType type, string linktxt) - // { - // string retlink = ""; - // if (type == E_TextElementType.ReferencedObject) - // retlink = "#Link:ReferencedObject:" + linktxt; - // else if (type == E_TextElementType.Transition) - // retlink = "#Link:Transition:" + linktxt; - // else - // retlink = "#Link:TransitionRange:" + linktxt; - - // return retlink; - // } - // private int DoRO(string text, int index) - // { - // displayLinkElement vte = new displayLinkElement(); - // vte.Type = E_TextElementType.ReferencedObject; - // int iend = text.IndexOf(@"\v", index); - - // vte.Text = text.Substring(index + 1, iend - index - 1); - // int istart = text.IndexOf("#", index); - // iend = text.IndexOf(@"\v0", istart); - // vte.Link = text.Substring(istart, iend - istart); - // DisplayTextElementList.Add(vte); - // return iend + 3; - // } - // //private string FixTransition(string link, string text) - // //{ - // // int transitionID = Convert.ToInt32(link.Split(" ".ToCharArray())[1]); - // // // Find the transition - // // foreach (TransitionInfo ti in _MyItemInfo.MyContent.ContentTransitions) - // // { - // // if (ti.TransitionID == transitionID) - // // { - // // //string path = ti.PathTo.Replace(" Section PROCEDURE STEPS ", ", "); - // // //path = path.Replace(" Section PROCEDURE STEPS", ""); - // // string path = ti.ResolvePathTo(_MyFormat, _MyItemInfo, ItemInfo.Get(ti.ToID), ti.RangeID == 0 ? null : ItemInfo.Get(ti.RangeID)); - // // return path; - // // } - // // } - // // return text; - // //} - // private int DoTran(string text, int index) - // { - // //displayLinkElement vte = new displayLinkElement(); - // //if (text[index] == '\x252C') vte.Type = E_TextElementType.Transition; - // //else vte.Type = E_TextElementType.TransitionRange; // '\x2566'\ - // //int iend = text.IndexOf(@"\v", index); - // //vte.Text = text.Substring(index + 1, iend - index - 1); - // //int istart = text.IndexOf("#", index); - // //iend = text.IndexOf(@"\v0", istart); - // //vte.Link = text.Substring(istart, iend - istart); - // //vte.Text = FixTransition(vte.Link, vte.Text); // TODO: Transition text resolution? - // //DisplayTextElementList.Add(vte); - // //return iend + 3; - // return 0; - // } - // private int DoSymbol(string text, int startIndex, int index) - // { - // displayTextElement vte = new displayTextElement(); - // vte.Type = E_TextElementType.Symbol; - // // symbols are the unicode/rtf command. A symbol can be represented by \'xy or - // // in the text from the database \uxyz?. If the \'xy is used the length of the - // // symbol number will always be two, otherwise find the index of the '?' to - // // find the end. - // int endindx = -1; - // if (text[index + 1] == '\'') endindx = index + 3; - // else endindx = text.IndexOf("?", index); - // vte.Text = text.Substring(index, endindx - index + 1); - // DisplayTextElementList.Add(vte); - // // return the position just past the symbol. - // return endindx + 1; - // } - // #endregion - // #region ReplaceWords - // //private ReplaceStr _rs; - // //private string ReplaceIt(Match m) - // //{ - // // string s = m.ToString(); - // // string t = s.Replace(_rs.ReplaceWord, _rs.ReplaceWith); - // // return m.ToString().Replace(_rs.ReplaceWord, _rs.ReplaceWith); - // //} - // //private string DoReplaceWords(string Text) - // //{ - // // ReplaceStrList rsl = _MyFormat.PlantFormat.FormatData.SectData.ReplaceStrList; - // // foreach (ReplaceStr rs in rsl) - // // { - // // if (_MyItemInfo.MyContent.Type < 20000) return Text; // for now only replace in steps. - // // bool replaceit = false; - - // // // note that the order of this check is important. Check in this order... - // // // background here - // // if (_MyItemInfo.IsHigh && (rs.Flag & E_ReplaceFlags.High) > 0) replaceit = true; - // // else if ((_MyItemInfo.IsTable || _MyItemInfo.IsFigure) && (rs.Flag & E_ReplaceFlags.Table) > 0) replaceit = true; - // // else if (_MyItemInfo.IsInRNO && (rs.Flag & E_ReplaceFlags.RNO) > 0) replaceit = true; - // // else if (_MyItemInfo.IsCaution && (rs.Flag & E_ReplaceFlags.Caution) > 0) replaceit = true; - // // else if (_MyItemInfo.IsNote && (rs.Flag & E_ReplaceFlags.Note) > 0) replaceit = true; - // // else if (_MyItemInfo.IsInFirstLevelSubStep && (rs.Flag & E_ReplaceFlags.Substep) > 0) replaceit = true; - // // else if (_MyItemInfo.IsAccPages & (rs.Flag & E_ReplaceFlags.Attach) > 0) replaceit = true; - - // // if (replaceit) - // // { - // // // CASEINSENS: Do ReplaceWords for all words that match, regardless of case, and replace - // // // with the ReplaceWith string as is - // // if ((rs.Flag & E_ReplaceFlags.CaseInsens) > 0) - // // { - // // string res = ""; - // // string fortest = Text.ToUpper(); - // // string pat = @"(?<=\W|^)" + rs.ReplaceWord.ToUpper() + @"(?=\W|$)"; - // // int cpindx = 0; - // // foreach (Match m in Regex.Matches(fortest, pat)) - // // { - // // res += Text.Substring(cpindx, m.Index - cpindx); - // // cpindx += (m.Index - cpindx); - // // res += rs.ReplaceWith; - // // cpindx += rs.ReplaceWord.Length; - // // } - // // if (cpindx < Text.Length) res += Text.Substring(cpindx, Text.Length - cpindx); - // // Text = res; - // // } - // // // CASEINSENSALL: Do ReplaceWords for all words that match the ReplaceWord, regardless of case - // // else if ((rs.Flag & E_ReplaceFlags.CaseInsensAll) > 0) - // // { - // // // not in hlp - // // } - // // // CASEINSENSFIRST: Do ReplaceWords for all words that exactly match the ReplaceWord, - // // // except the case where the first character may be different - // // else if ((rs.Flag & E_ReplaceFlags.CaseInsensFirst) > 0) - // // { - // // // not in hlp - // // } - // // else - // // { - // // string pat = @"(?<=\W|^)" + rs.ReplaceWord + @"(?=\W|$)"; - // // Text = Regex.Replace(Text, pat, rs.ReplaceWith); - // // } - - // // } - // // } - // // return Text; - // //} - // #endregion - //} - //#region displayTextElementClass - //public enum E_TextElementType : uint - //{ - // Text = 0, - // Transition = 1, - // TransitionRange = 2, - // ReferencedObject = 3, - // Symbol = 4 - //}; - //public class displayTextElement - //{ - // private E_TextElementType _Type; - // public E_TextElementType Type - // { - // get { return _Type; } - // set { _Type = value; } - // } - // private string _Text; - // public string Text - // { - // get { return _Text; } - // set { _Text = value; } - // } - //} - //public class displayLinkElement : displayTextElement - //{ - // private string _Link; - // public string Link - // { - // get { return _Link; } - // set { _Link = value; } - // } - //} - //#endregion - -} \ No newline at end of file diff --git a/PROMS/Volian.Svg.Library/SvgRtf.cs b/PROMS/Volian.Svg.Library/SvgRtf.cs deleted file mode 100644 index 2feb4966..00000000 --- a/PROMS/Volian.Svg.Library/SvgRtf.cs +++ /dev/null @@ -1,12 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Drawing; -using System.Drawing.Drawing2D; -using System.Xml.Serialization; -using System.ComponentModel; - -namespace Volian.Svg.Library -{ - // planned to be done early on but became a problem. -} diff --git a/PROMS/Volian.Svg.Library/Volian.Svg.Library.sln b/PROMS/Volian.Svg.Library/Volian.Svg.Library.sln deleted file mode 100644 index 5ab6e57d..00000000 --- a/PROMS/Volian.Svg.Library/Volian.Svg.Library.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.Svg.Library", "Volian.Svg.Library.csproj", "{293911B5-C602-483F-A97F-F962EEFB3CAE}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Debug|x86 = Debug|x86 - Release|Any CPU = Release|Any CPU - Release|x86 = Release|x86 - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {293911B5-C602-483F-A97F-F962EEFB3CAE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {293911B5-C602-483F-A97F-F962EEFB3CAE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {293911B5-C602-483F-A97F-F962EEFB3CAE}.Debug|x86.ActiveCfg = Debug|x86 - {293911B5-C602-483F-A97F-F962EEFB3CAE}.Debug|x86.Build.0 = Debug|x86 - {293911B5-C602-483F-A97F-F962EEFB3CAE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {293911B5-C602-483F-A97F-F962EEFB3CAE}.Release|Any CPU.Build.0 = Release|Any CPU - {293911B5-C602-483F-A97F-F962EEFB3CAE}.Release|x86.ActiveCfg = Release|x86 - {293911B5-C602-483F-A97F-F962EEFB3CAE}.Release|x86.Build.0 = Release|x86 - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/Volian.Svg.Library/iTextSharp.cs.bak b/PROMS/Volian.Svg.Library/iTextSharp.cs.bak deleted file mode 100644 index 157539a2..00000000 --- a/PROMS/Volian.Svg.Library/iTextSharp.cs.bak +++ /dev/null @@ -1,1168 +0,0 @@ -using System; -using System.Collections; -using System.Text; -using System.Collections.Generic; -using System.Xml.Serialization; -using iTextSharp.text; -using iTextSharp.text.pdf; -using iTextSharp.text.factories; -using Itenso.Rtf; -using Itenso.Rtf.Parser; -using Itenso.Rtf.Interpreter; -using Itenso.Rtf.Support; -using Microsoft.Win32; -using System.Text.RegularExpressions; -using System.Xml; -using System.IO; - -namespace Volian.Svg.Library -{ - public static class VolianPdf - { - public static int PageCount(string fileName) - { - PdfReader pdfr = new PdfReader(fileName); - int retval = pdfr.NumberOfPages; - pdfr.Close(); - return retval; - } - public static void RegisterFont(string fontName) - { - if (!iTextSharp.text.FontFactory.IsRegistered(fontName)) - { - //foreach (string name in FontKey.GetValueNames()) - //{ - // if (name.StartsWith(fontName)) - // { - // string fontFile = (string)FontKey.GetValue(name); - // iTextSharp.text.FontFactory.Register(fontFile.Contains("\\") ? fontFile : FontFolder + "\\" + fontFile); - // } - //} - iTextSharp.text.FontFactory.RegisterDirectories(); - } - } - private static RegistryKey _FontKey = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Windows NT").OpenSubKey("CurrentVersion").OpenSubKey("Fonts"); - public static RegistryKey FontKey - { get { return _FontKey; } } - private static string _FontFolder = (String)Registry.CurrentUser.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Windows").OpenSubKey("CurrentVersion").OpenSubKey("Explorer").OpenSubKey("Shell Folders").GetValue("Fonts"); - public static string FontFolder - { get { return _FontFolder; } } - public static iTextSharp.text.Font GetFont(string fontName, int size, int style) - { - RegisterFont(fontName); - return iTextSharp.text.FontFactory.GetFont(fontName, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, size / 2, style); - } - public static iTextSharp.text.Font GetFont(System.Drawing.Font font) // fontName, int size, int style) - { - RegisterFont(font.Name); - int style = (font.Bold ? iTextSharp.text.Font.BOLD : 0) + (font.Italic ? iTextSharp.text.Font.ITALIC : 0); - return iTextSharp.text.FontFactory.GetFont(font.Name, BaseFont.IDENTITY_H, BaseFont.EMBEDDED, font.Size, style); - } - } - internal static class SvgITextLibrary - { - public static void StrokeAndFill(PdfContentByte cb, bool stroke, bool fill) - { - switch ((stroke ? 1 : 0) + (fill ? 2 : 0)) - { - case 0: // No Stroke or Fill - break; - case 1: // Stroke - cb.Stroke(); - break; - case 2: // Fill - cb.Fill(); - break; - case 3: // Stroke and Fill - cb.FillStroke(); - break; - } - } - } - public abstract partial class SvgPart - { - public abstract void Draw(PdfContentByte cb, SvgScale scale, Svg mySvg, SvgPartInheritance myParent); - public abstract void Draw(PdfTemplate tmp, SvgScale scale, Svg mySvg, SvgPartInheritance myParent); - } - public partial class SvgPartInheritance : SvgPart - { - public override void Draw(PdfContentByte cb, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - } - public override void Draw(PdfTemplate tmp, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - } - } - // TODO: Pages - // TODO: Page Background - public delegate string SvgProcessTextEvent(object sender, SvgProcessTextArgs args); - public class SvgProcessTextArgs - { - private string _MyText; - public string MyText - { - get { return _MyText; } - } - private SvgText _MySvgText; - public SvgText MySvgText - { - get { return _MySvgText; } - set { _MySvgText = value; } - } - private SvgScale _MySvgScale; - public SvgScale MySvgScale - { - get { return _MySvgScale; } - set { _MySvgScale = value; } - } - public SvgProcessTextArgs(string myText, SvgText mySvgText, SvgScale mySvgScale) - { - _MyText = myText; - _MySvgText = mySvgText; - _MySvgScale = mySvgScale; - } - } - public partial class Svg : SvgGroup - { - public void DrawMacro(string macroDef, float x, float y, PdfContentByte cb) - { - _MyContentByte = cb; - SvgMeasurement X = new SvgMeasurement(x, E_MeasurementUnits.PT); - SvgMeasurement Y = new SvgMeasurement(Height.GetSizeInPoints(72) - y, E_MeasurementUnits.PT); - if (!this.LookUp.ContainsKey(macroDef)) return; // AEP - DU1 (missing C22 macro for AEP) - SvgGroup macro = this[macroDef] as SvgGroup; - macro.SvgParts.Draw(cb, MyScale.AdjustOrigin(X, Y), this,this); - } - public event SvgProcessTextEvent ProcessText; - internal string OnProcessText(string myText, SvgText mySvgText, SvgScale scale) - { - if (ProcessText != null) - return ProcessText(this, new SvgProcessTextArgs(myText, mySvgText, scale)); - return myText; - } - private Dictionary _Templates; - public PdfTemplate GetTemplate(string name, PdfContentByte cb) - { - if (!_Templates.ContainsKey(name)) - { - PdfTemplate tmp = cb.CreateTemplate(100, 100); - _Templates.Add(name, tmp); - } - return _Templates[name]; - } - public static void FixBoundingBox(PdfTemplate tmp, float xll, float yll, float xul, float yul) - { - float left = tmp.BoundingBox.Left; - float bottom = tmp.BoundingBox.Bottom; - float right = tmp.BoundingBox.Right; - float top = tmp.BoundingBox.Top; - left = (xll < xul ? (xll < left ? xll : left) : (xul < left ? xul : left)); - right = (xll > xul ? (xll > right ? xll : right) : (xul > right ? xul : right)); - bottom = (yll < yul ? (yll < bottom ? yll : bottom) : (yul < bottom ? yul : bottom)); - top = (yll > yul ? (yll > top ? yll : top) : (yul > top ? yul : top)); - tmp.BoundingBox = new iTextSharp.text.Rectangle(xll, yll, xul, yul); - } - private PdfContentByte _MyContentByte; - [XmlIgnore] - public PdfContentByte MyContentByte - { - get { return _MyContentByte; } - set { _MyContentByte = value; } - } - private float _LeftMargin = 0; - public float LeftMargin - { - get { return _LeftMargin; } - set { _LeftMargin = value; } - } - private float _TopMargin = 0; - public float TopMargin - { - get { return _TopMargin; } - set { _TopMargin = value; } - } - private SvgScale _MyScale; - public SvgScale MyScale - { - get - { - if (_MyScale == null) - { - _MyScale = new SvgScale(72, new System.Drawing.RectangleF(0, 0, _MyContentByte.PdfWriter.PageSize.Width, _MyContentByte.PdfWriter.PageSize.Height), _Width, _Height, _ViewBox); - _MyScale.XLowerLimit -= _LeftMargin; - _MyScale.YLowerLimit -= _TopMargin; - } - return _MyScale; - } - } - public void Draw(PdfContentByte cb) - { - //myPdf.Clear(); - _MyContentByte = cb; - _Templates = new Dictionary(); - //RegisterFonts(); - SvgParts.Draw(cb, MyScale, this, this); //72 - Points - } - public static iTextSharp.text.Font GetFont(string fontName) - { - RegisterFont(fontName); - return FontFactory.GetFont(fontName); - } - public static iTextSharp.text.Font GetFont(string fontName, float size, int style, System.Drawing.Color color) - { - RegisterFont(fontName); - return FontFactory.GetFont(fontName, size, style, new iTextSharp.text.Color(color)); - } - public static void RegisterFont(string fontName) - { - if (!FontFactory.IsRegistered(fontName)) - { - foreach (string name in FontKey.GetValueNames()) - { - if (name.StartsWith(fontName)) - { - string fontFile = (string) FontKey.GetValue(name); - FontFactory.Register(fontFile.Contains("\\") ? fontFile : FontFolder + "\\" + fontFile); - } - } - } - } - private static RegistryKey _FontKey = Registry.LocalMachine.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Windows NT").OpenSubKey("CurrentVersion").OpenSubKey("Fonts"); - public static RegistryKey FontKey - { get { return _FontKey; } } - private static string _FontFolder = (String)Registry.CurrentUser.OpenSubKey("Software").OpenSubKey("Microsoft").OpenSubKey("Windows").OpenSubKey("CurrentVersion").OpenSubKey("Explorer").OpenSubKey("Shell Folders").GetValue("Fonts"); - public static string FontFolder - { get { return _FontFolder; } } - private static int _StackTraceSkip = 1; - private static DateTime _LastTime = DateTime.Now; - private static DateTime _StartTime = DateTime.Now; - public static void ResetWhen() - { - _StartTime = _LastTime = DateTime.Now; - } - public static void WhenAndWhere() - { - DateTime thisTime = DateTime.Now; - System.Diagnostics.StackFrame sf = new System.Diagnostics.StackFrame(_StackTraceSkip, true); - Console.WriteLine("{0:000000},{1:000000},'{2}',{3},'{4}'", TimeSpan.FromTicks(thisTime.Ticks - _StartTime.Ticks).TotalMilliseconds, - TimeSpan.FromTicks(thisTime.Ticks - _LastTime.Ticks).TotalMilliseconds, sf.GetMethod().Name, sf.GetFileLineNumber() - ,sf.GetFileName()); - _LastTime = thisTime; - } - } - public partial class SvgArc : SvgShapePart - { - public override void Draw(PdfContentByte cb, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - cb.SaveState(); - SetupInheritance(myParent.MyInheritedSettings); - if (FillColor != System.Drawing.Color.Transparent) - cb.SetColorFill(new Color(FillColor)); - if (OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty) - { - cb.SetLineWidth(scale.M(OutlineWidth)); - cb.SetColorStroke(new Color(OutlineColor)); - } - cb.Ellipse(scale.X(CX - Radius), scale.Y(cb, CY - Radius), scale.M(Radius * 2), scale.M(Radius * 2)); - SvgITextLibrary.StrokeAndFill(cb, (OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty), (FillColor != System.Drawing.Color.Transparent)); - cb.RestoreState(); - } - public override void Draw(PdfTemplate tmp, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - tmp.SaveState(); - SetupInheritance(myParent.MyInheritedSettings); - if (FillColor != System.Drawing.Color.Transparent) - tmp.SetColorFill(new Color(FillColor)); - if (OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty) - { - tmp.SetLineWidth(scale.M(OutlineWidth)); - tmp.SetColorStroke(new Color(OutlineColor)); - } - tmp.Ellipse(scale.X(CX - Radius), scale.Y(CY - Radius), scale.M(Radius * 2), scale.M(Radius * 2)); - SvgITextLibrary.StrokeAndFill(tmp, (OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty), (FillColor != System.Drawing.Color.Transparent)); - tmp.RestoreState(); - } - } - public partial class SvgCircle : SvgShapePart - { - public override void Draw(PdfContentByte cb, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - cb.SaveState(); - bool fill = FillColor != System.Drawing.Color.Transparent; - bool stroke = OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty; - if (fill) - cb.SetColorFill(new Color(FillColor)); - if (stroke) - { - cb.SetLineWidth(scale.M(OutlineWidth)); - cb.SetColorStroke(new Color(OutlineColor)); - } - float x1 = scale.X(CX - Radius); - float y1 = scale.Y(cb, CY - Radius); - float x2 = scale.X(CX + Radius); - float y2 = scale.Y(cb, CY + Radius); - cb.Ellipse(x1, y1, x2, y2); - SvgITextLibrary.StrokeAndFill(cb, stroke, fill); - cb.RestoreState(); - } - public override void Draw(PdfTemplate tmp, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - tmp.SaveState(); - bool fill = FillColor != System.Drawing.Color.Transparent; - bool stroke = OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty; - if (fill) - tmp.SetColorFill(new Color(FillColor)); - if (stroke) - { - tmp.SetLineWidth(scale.M(OutlineWidth)); - tmp.SetColorStroke(new Color(OutlineColor)); - } - tmp.Ellipse(scale.X(CX - Radius), scale.Y(CY - Radius), scale.X(CX + Radius), scale.Y(CY + Radius)); - SvgITextLibrary.StrokeAndFill(tmp, stroke, fill); - tmp.RestoreState(); - Svg.FixBoundingBox(tmp, scale.X(CX - Radius), scale.Y(CY - Radius), scale.X(CX + Radius), scale.Y(CY + Radius)); - } - } - public partial class SvgDefine : SvgGroup - { - public override void Draw(PdfContentByte cb, SvgScale myScale, Svg mySvg, SvgPartInheritance myParent) - { - // TODO: Could I try creating a template - // Don't draw - // SvgParts.Draw(cb, myScale, mySvg, myParent); - PdfTemplate tmp = null; - if (ID != "") tmp = mySvg.GetTemplate(ID, cb); // the size will be adjusted as items are added. - SvgParts.Draw(tmp, myScale, mySvg, myParent); - } - public override void Draw(PdfTemplate tmp, SvgScale myScale, Svg mySvg, SvgPartInheritance myParent) - { - // TODO: Could I try creating a template - // Don't draw - // SvgParts.Draw(cb, myScale, mySvg, myParent); - //PdfTemplate tmp2 = mySvg.GetTemplate(ID); // the size will be adjusted as items are added. - //SvgParts.Draw(tmp2, myScale, mySvg, myParent); - } - } - public partial class SvgUse : SvgPartInheritance - { - private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); - public override void Draw(PdfContentByte cb, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - // TODO: Could I use the template - SetupInheritance(myParent.MyInheritedSettings); - if (mySvg.LookUp.ContainsKey(_UseID)) - mySvg[_UseID].Draw(cb, scale.AdjustOrigin(X, Y), mySvg, this); - else - { - _MyLog.WarnFormat("Missing Macro '{0}'", _UseID); - } - //cb.AddTemplate(mySvg.GetTemplate(_UseID.Substring(1),cb), scale.X(X), scale.Y(cb, Y)); - } - public override void Draw(PdfTemplate tmp, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - // TODO: Could I use the template - SetupInheritance(myParent.MyInheritedSettings); - //mySvg[_UseID.Substring(1)].Draw(tmp, scale.AdjustOrigin(X, Y), mySvg, this); - mySvg[_UseID].Draw(tmp, scale.AdjustOrigin(X, Y), mySvg, this); - } - } - public partial class SvgEllipse : SvgShapePart - { - public override void Draw(PdfContentByte cb, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - cb.SaveState(); - bool fill = FillColor != System.Drawing.Color.Transparent; - bool stroke = OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty; - if (fill) - cb.SetColorFill(new Color(FillColor)); - if (stroke) - { - cb.SetLineWidth(scale.M(OutlineWidth)); - cb.SetColorStroke(new Color(OutlineColor)); - } - cb.Ellipse(scale.X(CX - RX), scale.Y(cb, CY - RY), scale.X(CX + RX), scale.Y(cb, CY + RY)); - SvgITextLibrary.StrokeAndFill(cb, stroke, fill); - cb.RestoreState(); - } - public override void Draw(PdfTemplate tmp, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - tmp.SaveState(); - bool fill = FillColor != System.Drawing.Color.Transparent; - bool stroke = OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty; - if (fill) - tmp.SetColorFill(new Color(FillColor)); - if (stroke) - { - tmp.SetLineWidth(scale.M(OutlineWidth)); - tmp.SetColorStroke(new Color(OutlineColor)); - } - tmp.Ellipse(scale.X(CX - RX), scale.Y(CY - RY), scale.X(CX + RX), scale.Y(CY + RY)); - SvgITextLibrary.StrokeAndFill(tmp, stroke, fill); - tmp.RestoreState(); - } - } - public partial class SvgGroup : SvgPartInheritance - { - public override void Draw(PdfContentByte cb, SvgScale myScale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - _SvgParts.Draw(cb, myScale, mySvg, this); - } - public override void Draw(PdfTemplate tmp, SvgScale myScale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - if (ID != "") tmp = mySvg.GetTemplate(ID, mySvg.MyContentByte); // the size will be adjusted as items are added. - SvgParts.Draw(tmp, myScale, mySvg, this); - } - } - public partial class SvgImage : SvgPart - { - public override void Draw(PdfContentByte cb, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - cb.SaveState(); - iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(ImagePath); - if (Height.Value != 0) - img.ScaleAbsoluteHeight(scale.M(Height)); - if (Width.Value != 0) - img.ScaleAbsoluteWidth(scale.M(Width)); - img.SetAbsolutePosition(scale.X(X), scale.Y(cb, Y) - scale.M(img.ScaledHeight)); - // The next three lines set the image opacity for testing - //PdfGState gState = new PdfGState(); - //gState.FillOpacity = .2f; - //cb.SetGState(gState); - cb.AddImage(img); - cb.RestoreState(); - } - public override void Draw(PdfTemplate tmp, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - tmp.SaveState(); - iTextSharp.text.Image img = iTextSharp.text.Image.GetInstance(ImagePath); - img.ScaleAbsolute(scale.M(Width), scale.M(Height)); - img.SetAbsolutePosition(scale.X(X), scale.Y(Y) - scale.M(img.ScaledHeight)); - tmp.AddImage(img); - tmp.RestoreState(); - } - } - public partial class SvgLine : SvgLinePart - { - public override void Draw(PdfContentByte cb, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - cb.SaveState(); - bool stroke = LineColor != System.Drawing.Color.Empty; - if (stroke) - { - cb.SetLineWidth(LineWidth.Value); - cb.SetColorStroke(new Color(LineColor)); - } - cb.SetLineCap(PdfContentByte.LINE_CAP_ROUND); - if (myParent is SvgGroup && (myParent as SvgGroup).Description.ToUpper() == "ABSOLUTE") - { - cb.MoveTo(scale.AbsX(X1), scale.AbsY(cb, Y1)); - cb.LineTo(scale.AbsX(X2), scale.AbsY(cb, Y2)); - } - else - { - cb.MoveTo(scale.X(X1), scale.Y(cb, Y1)); - cb.LineTo(scale.X(X2), scale.Y(cb, Y2)); - } - cb.Stroke(); - cb.RestoreState(); - } - public override void Draw(PdfTemplate tmp, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - tmp.SaveState(); - bool stroke = LineColor != System.Drawing.Color.Empty; - if (stroke) - { - tmp.SetLineWidth(scale.M(LineWidth)); - tmp.SetColorStroke(new Color(LineColor)); - } - tmp.MoveTo(scale.X(X1), scale.Y(Y1)); - tmp.LineTo(scale.X(X2), scale.Y(Y2)); - tmp.Stroke(); - tmp.RestoreState(); - Svg.FixBoundingBox(tmp, scale.X(X1), scale.Y(Y1), scale.X(X2), scale.Y(Y2)); - } - } - public partial class SvgParts : CollectionBase - { - public void Draw(PdfContentByte cb, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - foreach (SvgPart svgPart in List) - svgPart.Draw(cb, scale, mySvg, myParent); - } - public void Draw(PdfTemplate tmp, SvgScale myScale, Svg mySvg, SvgPartInheritance myParent) - { - foreach (SvgPart svgPart in List) - svgPart.Draw(tmp, myScale, mySvg, myParent); - } - } - public partial class SvgRectangle : SvgShapePart - { - public override void Draw(PdfContentByte cb, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - cb.SaveState(); - bool fill = FillColor != System.Drawing.Color.Transparent; - bool stroke = OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty; - if (fill) - cb.SetColorFill(new Color(FillColor)); - if (stroke) - { - cb.SetLineWidth(scale.M(OutlineWidth)); - cb.SetColorStroke(new Color(OutlineColor)); - } - if (myParent is SvgGroup && (myParent as SvgGroup).Description.ToUpper() == "ABSOLUTE") - cb.RoundRectangle(scale.AbsX(X), scale.AbsY(cb, Y), scale.M(Width), -scale.M(Height), .005F); - else - cb.RoundRectangle(scale.X(X), scale.Y(cb, Y), scale.M(Width), -scale.M(Height), .005F); - SvgITextLibrary.StrokeAndFill(cb, stroke, fill); - cb.RestoreState(); - } - public override void Draw(PdfTemplate tmp, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - SetupInheritance(myParent.MyInheritedSettings); - if (ID != "") tmp = mySvg.GetTemplate(ID, mySvg.MyContentByte); // the size will be adjusted as items are added. - tmp.SaveState(); - bool fill = FillColor != System.Drawing.Color.Transparent; - bool stroke = OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty; - if (fill) - tmp.SetColorFill(new Color(FillColor)); - if (stroke) - { - tmp.SetLineWidth(scale.M(OutlineWidth)); - tmp.SetColorStroke(new Color(OutlineColor)); - } - tmp.Rectangle(scale.X(X), scale.Y(Y), scale.M(Width), -scale.M(Height)); - SvgITextLibrary.StrokeAndFill(tmp, stroke, fill); - Svg.FixBoundingBox(tmp, scale.X(X), scale.Y(Y), scale.X(X) + scale.M(Width), scale.Y(Y) - scale.M(Height)); - tmp.RestoreState(); - } - } - public partial class SvgText : SvgShapePart - { - private static string ReplaceSpecialCharacter(Match m) - { - int i = int.Parse(m.ToString().Substring(2, m.ToString().Length - 3)); - char c = (char)i; - return c.ToString(); - } - private static string ReplaceHexCharacter(Match m) - { - int i = int.Parse(m.ToString().Substring(2, 2), System.Globalization.NumberStyles.HexNumber); - char c = (char)i; - return c.ToString(); - } - public int Align - { - get - { - switch (Justify) - { - case SvgJustify.Left: - return Element.ALIGN_LEFT; - break; - case SvgJustify.Center: - return Element.ALIGN_CENTER; - break; - case SvgJustify.Right: - return Element.ALIGN_RIGHT; - break; - } - return Element.ALIGN_LEFT; - } - } - // Draw's using PdfContentByte are for drawing PageList items. - public override void Draw(PdfContentByte cb, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - string text = mySvg.OnProcessText(Text, this, scale); - if (text == string.Empty) return; - SetupInheritance(myParent.MyInheritedSettings); - float yScale = (myParent is SvgGroup && (myParent as SvgGroup).Description.ToUpper() == "ABSOLUTE") ? scale.AbsY(cb, Y): scale.Y(cb, Y); - cb.SaveState(); - bool fill = FillColor != System.Drawing.Color.Transparent; - bool stroke = OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty; - - // Strip out inline commands that are overridden by the fontStyle - if (Font.Bold) text = StripCommands(text, @"\\b0", @"\\b"); - if (Font.Italic) text = StripCommands(text, @"\\i0", @"\\i"); - if (Font.Underline) text = StripCommands(text, @"\\ulnone", @"\\ul0", @"\\ul"); - - float fontSize = scale.M(new SvgMeasurement(Font.SizeInPoints, E_MeasurementUnits.PT)); - int fontStyle = (Font.Bold ? iTextSharp.text.Font.BOLD : 0) + (Font.Italic ? iTextSharp.text.Font.ITALIC : 0); - VolianPdf.RegisterFont(Font.Name); - //if (iTextSharp.text.FontFactory.IsRegistered(Font.Name) == false) - //{ - // //iTextSharp.text.FontFactory.RegisterDirectories(); - //} - iTextSharp.text.Font font = FontFactory.GetFont(Font.Name, BaseFont.IDENTITY_H, true, fontSize, fontStyle, new Color(FillColor)); - - Phrase ph = BuildPhrase(text, fontSize, fontStyle, font); - ColumnText ct = new ColumnText(cb); - float x = (myParent is SvgGroup && (myParent as SvgGroup).Description.ToUpper() == "ABSOLUTE") ? scale.AbsX(X): scale.X(X); - float w = 0; // chk.GetWidthPoint(); - foreach (Chunk chk in ph.Chunks) - w += chk.GetWidthPoint(); - switch (Justify) - { - //case SvgJustify.Left: - // x = x; - // break; - case SvgJustify.Center: - x-=w/2; - break; - case SvgJustify.Right: - x-=w; - break; - } - float y = yScale; - float xRight = x + w; - float Offset = 0; - if (Font.Underline) - { - foreach (Chunk chk in ph.Chunks) - chk.SetUnderline(new Color(FillColor), 0, 0.047F, 0, -.1373F, PdfContentByte.LINE_CAP_ROUND); - } - // The following line was changed so that a 6.5 size font would print, i.e. the 2 was changed to a 3 to make the - // 6.5 size work. - ct.SetSimpleColumn(x, y + ph.Leading + Offset, xRight + 1F, y + ph.Leading + Offset - 3 * font.Size);//2 * font.Size); - ct.AddElement(ph); - cb.SaveState(); - cb.SetColorFill(new Color(FillColor)); - ct.Go(); - cb.RestoreState(); - } - - private Phrase BuildPhrase(string text, float fontSize, int fontStyle, iTextSharp.text.Font font) - { - //if (text == "Caution") - //{ - // if (iTextSharp.text.FontFactory.IsRegistered("VolianScript")) - // Console.WriteLine("Is Registered"); - // Console.WriteLine("stop"); - //} - bool fontUnderline = false; - float fontTextRise = 0; - - text = Regex.Replace(text, @"\\u[0-9]+[?]", new MatchEvaluator(ReplaceSpecialCharacter)); - text = Regex.Replace(text, @"\\'[0-9a-fA-F][0-9a-fA-F]", new MatchEvaluator(ReplaceHexCharacter)); - text += " "; - Phrase ph = new Phrase(); - while (text.Length > 0) - { - string next = ""; - Match m = Regex.Match(text, @"\\[^ ]*?[ $]"); - if (m.Success) - { - // text is portion of text and next is remaining portion to process next - next = text.Substring(m.Index + m.Length); - text = text.Substring(0, m.Index); - } - else - if (text[text.Length - 1] == ' ') text = text.Substring(0, text.Length - 1); - - foreach (Chunk chk in BuildPartialPhrase(text, fontSize, fontStyle, font).Chunks) - { - if (fontUnderline) chk.SetUnderline(font.Color, 0, 0.05F, 0, -.131F, PdfContentByte.LINE_CAP_ROUND); - if (fontTextRise != 0) chk.SetTextRise(fontTextRise * chk.Font.Size); - ph.Add(chk); - } - if (m.Success) - { - // bold, underline, italics, subscript, superscript - if (m.Value.Contains(@"\ulnone") || m.Value.Contains(@"\ul0")) // off - fontUnderline = false; - else if (m.Value.Contains(@"\ul")) - fontUnderline = true; - if (m.Value.Contains(@"\up0") || m.Value.Contains(@"\dn0")) fontTextRise = 0; - else if (m.Value.Contains(@"\up")) fontTextRise = .25F; - else if (m.Value.Contains(@"\dn")) fontTextRise = -.25F; - if (m.Value.Contains(@"\b0")) - { - fontStyle ^= iTextSharp.text.Font.BOLD; - font = FontFactory.GetFont(font.Familyname, BaseFont.IDENTITY_H, true, fontSize, fontStyle, new Color(FillColor)); - } - else if (m.Value.Contains(@"\b")) - { - fontStyle |= iTextSharp.text.Font.BOLD; - font = FontFactory.GetFont(font.Familyname, BaseFont.IDENTITY_H, true, fontSize, fontStyle, new Color(FillColor)); - } - if (m.Value.Contains(@"\i0")) - { - fontStyle ^= iTextSharp.text.Font.ITALIC; - font = FontFactory.GetFont(font.Familyname, BaseFont.IDENTITY_H, true, fontSize, fontStyle, new Color(FillColor)); - } - else if (m.Value.Contains(@"\i")) - { - fontStyle |= iTextSharp.text.Font.ITALIC; - font = FontFactory.GetFont(font.Familyname, BaseFont.IDENTITY_H, true, fontSize, fontStyle, new Color(FillColor)); - } - } - text = next; - } - return ph; - } - - private Phrase BuildPartialPhrase(string text, float fontSize, int fontStyle, iTextSharp.text.Font font) - { - iTextSharp.text.pdf.FontSelector fs = new FontSelector(); - fs.AddFont(font); - if (font.BaseFont != null && font.BaseFont.GetWidthPoint("m", 12) == font.BaseFont.GetWidthPoint(".", 12)) - { - VolianPdf.RegisterFont("VESymbFix"); - fs.AddFont(FontFactory.GetFont("VESymbFix", BaseFont.IDENTITY_H, true, fontSize, fontStyle, new Color(FillColor))); - } - else - { - VolianPdf.RegisterFont("Arial Unicode MS"); - fs.AddFont(FontFactory.GetFont("Arial Unicode MS", BaseFont.IDENTITY_H, true, fontSize, fontStyle, new Color(FillColor))); - } - - Phrase ph = fs.Process(text); - return ph; - } - - private string StripCommands(string text, params string [] rtfCommands) - { - foreach (string rtfCommand in rtfCommands) - { - // remove rtf command preceeded by another rtf command with previous - // rtf ending with a space, i.e. "\ulnone\b0 " removing the "b0", leaves " " - // * - as many as there are, ? - minimum number that results in a match - text = Regex.Replace(text, @"(\\[^ ]*?)" + rtfCommand + " ", "$1 "); - // remove rtf command follwed by a space - text = Regex.Replace(text, rtfCommand + " ", ""); - // remove just the rtf command - text = Regex.Replace(text, rtfCommand, ""); - } - return text; - } - // Draw's using PdfTemplate are for drawing SVG (16-bit genmac). - public override void Draw(PdfTemplate tmp, SvgScale scale, Svg mySvg, SvgPartInheritance myParent) - { - string text = mySvg.OnProcessText(Text, this, scale); - if (text == string.Empty) return; - SetupInheritance(myParent.MyInheritedSettings); - float yScale = -scale.Y(Y); - tmp.SaveState(); - bool fill = FillColor != System.Drawing.Color.Transparent; - bool stroke = OutlineWidth.Value != 0F && OutlineColor != System.Drawing.Color.Empty; - tmp.BeginText(); - if (fill) - tmp.SetColorFill(new Color(FillColor)); - if (stroke) - { - tmp.SetLineWidth(scale.M(OutlineWidth)); - tmp.SetColorStroke(new Color(OutlineColor)); - } - iTextSharp.text.Font font = Svg.GetFont(Font.Name); - BaseFont baseFont = font.BaseFont; - tmp.MoveText(scale.X(X), yScale); - tmp.SetFontAndSize(baseFont, scale.M(new SvgMeasurement(Font.SizeInPoints, E_MeasurementUnits.PT))); - switch ((stroke ? 1 : 0) + (fill ? 2 : 0)) - { - case 0: // No Stroke or Fill - tmp.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_INVISIBLE); - break; - case 1: // Stroke - tmp.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_STROKE); - break; - case 2: // Fill - tmp.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL); - break; - case 3: // Stroke and Fill - tmp.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE); - break; - } - tmp.ShowTextKerned(text); - tmp.EndText(); - tmp.RestoreState(); - } - } - public class SvgPageTotal - { - public SvgPageTotal(System.Drawing.Font myFont, PdfContentByte cb) - { - _MyFont = myFont; - _MyTemplate = cb.CreateTemplate(100, 100); - _MyTemplate.BoundingBox= new Rectangle(-20, -20, 100, 100); - } - private int _PageCount=1; - private System.Drawing.Font _MyFont; - private PdfTemplate _MyTemplate; - public PdfTemplate MyTemplate - { - get { return _MyTemplate; } - } - public void Draw() - { - // Output Page Count - _MyTemplate.BeginText(); - iTextSharp.text.Font font = Svg.GetFont(_MyFont.Name); - BaseFont baseFont = font.BaseFont; - _MyTemplate.SetFontAndSize(baseFont,_MyFont.Size); - _MyTemplate.SetTextMatrix(0, 0); - _MyTemplate.ShowText(_PageCount.ToString()); - _MyTemplate.EndText(); - } - } - public class SvgPageHelper : PdfPageEventHelper - { - private List _AllowedWatermarks = new List(); - public List AllowedWatermarks - { - get { return _AllowedWatermarks; } - set { _AllowedWatermarks = value; } - } - private Svg _MySvg; - public Svg MySvg - { - get { return _MySvg; } - set { _MySvg = value; } - } - private PdfLayer _PageListLayer; - public PdfLayer PageListLayer - { - get { return _PageListLayer; } - set { _PageListLayer = value; } - } - private PdfLayer _WatermarkLayer; - public PdfLayer WatermarkLayer - { - get { return _WatermarkLayer; } - set { _WatermarkLayer = value; } - } - private string _Watermark=string.Empty; - public string Watermark - { - get { return _Watermark; } - set { _Watermark = value; } - } - private bool _DoZoomOMatic = false; - public bool DoZoomOMatic - { - get { return _DoZoomOMatic; } - set { _DoZoomOMatic = value; } - } - private int _CurrentPageNumber = 0; - public int CurrentPageNumber - { - get { return _CurrentPageNumber; } - set { _CurrentPageNumber = value; } - } - private bool _OnFoldoutPage = false; - public bool OnFoldoutPage - { - get { return _OnFoldoutPage; } - set { _OnFoldoutPage = value; } - } - private bool _CreatingFoldoutPage = false; - public bool CreatingFoldoutPage - { - get { return _CreatingFoldoutPage; } - set { _CreatingFoldoutPage = value; } - } - public SvgPageHelper(Svg mySvg) - { - _MySvg = mySvg; - } - public SvgPageHelper() - { - } - private int _BGPageOffset = 0; - public int BackgroundPageOffset - { - get { return _BGPageOffset; } - set { _BGPageOffset = value; } - } - protected virtual string ReplacePageListToken(Match match) - { - return string.Empty; - } - - public override void OnOpenDocument(PdfWriter writer, Document document) - { - //base.OnOpenDocument(writer, document); - //tmpTotal = writer.DirectContent.CreateTemplate(100, 100); - //tmpTotal.BoundingBox = new Rectangle(-20, -20, 100, 100); - //PdfContentByte cb = writer.DirectContent; - } - public override void OnEndPage(PdfWriter writer, Document document) - { - if (!OnFoldoutPage) - { - base.OnEndPage(writer, document); - if (!CreatingFoldoutPage) - { - DrawBackground(writer.DirectContentUnder); - DrawPageList(writer.DirectContent); - DrawWatermark(writer.DirectContentUnder); - if (DoZoomOMatic) DrawZoomOMatic(writer.DirectContent); - } - CurrentPageNumber++; - } - else - { - if (!CreatingFoldoutPage) - { - DrawBackground(writer.DirectContentUnder); - DrawPageList(writer.DirectContent); - DrawWatermark(writer.DirectContentUnder); - if (DoZoomOMatic) DrawZoomOMatic(writer.DirectContent); - CurrentPageNumber++; - } - } - } - private PdfReader _BackgroundReader = null; - public PdfReader BackgroundReader - { - get - { - if (_BackgroundReader == null && _BackgroundFile != null && File.Exists(_BackgroundFile)) - _BackgroundReader = new PdfReader(_BackgroundFile); - return _BackgroundReader; - } - } - private string _BackgroundFile = null; - public string BackgroundFile - { - get { return _BackgroundFile; } - set { _BackgroundFile = value; } - } - private PdfLayer _BackgroundLayer = null; - public PdfLayer BackgroundLayer - { - get { return _BackgroundLayer; } - set { _BackgroundLayer = value; } - } - private System.Drawing.PointF _BackgroundOffset = new System.Drawing.PointF(0, 0); - public System.Drawing.PointF BackgroundOffset - { - get { return _BackgroundOffset; } - set { _BackgroundOffset = value; } - } - public int BackgroundPageCount - { - get { return BackgroundReader == null ? 0 : BackgroundReader.NumberOfPages; } - } - private PdfImportedPage GetBackgroundPage(PdfContentByte cb) - { - if (BackgroundReader == null) return null; - int page = cb.PdfWriter.CurrentPageNumber + BackgroundPageOffset; - if (page < 1 || page > BackgroundPageCount) return null; - return cb.PdfWriter.GetImportedPage(BackgroundReader, page); - } - private void DrawBackground(PdfContentByte cb) - { - PdfImportedPage backgroundPage = GetBackgroundPage(cb); - if (backgroundPage == null) return; - if(BackgroundLayer != null) cb.BeginLayer(BackgroundLayer); - iTextSharp.text.Image image = iTextSharp.text.Image.GetInstance(backgroundPage); - image.SetAbsolutePosition(BackgroundOffset.X,BackgroundOffset.Y); - cb.AddImage(image); - if (BackgroundLayer != null) cb.EndLayer(); - } - private void DrawZoomOMatic(PdfContentByte cb) - { - cb.SaveState(); - ZoomOMatic(cb, 36); - cb.RestoreState(); - } - private bool _AllowAllWatermarks = false; - public bool AllowAllWatermarks - { - get { return _AllowAllWatermarks; } - set { _AllowAllWatermarks = value; } - } - private void DrawWatermark(PdfContentByte cb) - { - if (Watermark == null || Watermark.ToLower().Contains("none") || Watermark == "") return; - if (!AllowAllWatermarks && !AllowedWatermarks.Contains(Watermark)) return; - cb.SaveState(); - if (_WatermarkLayer != null) cb.BeginLayer(_WatermarkLayer); - SvgWatermark myWatermark = new SvgWatermark(cb, Watermark, System.Drawing.Color.Blue, .15F); - myWatermark.SetSquareDotPattern(.7F); - myWatermark.Draw(); - if (_WatermarkLayer != null) cb.EndLayer(); - cb.RestoreState(); - } - private void DrawPageList(PdfContentByte cb) - { - if (_MySvg != null) - { - cb.SaveState(); - if (_PageListLayer != null) cb.BeginLayer(_PageListLayer); - // Do anything needed to finish off the page - _MySvg.Draw(cb); - if (_PageListLayer != null) cb.EndLayer(); - cb.RestoreState(); - } - } - private void ZoomOMatic(PdfContentByte cb, float size) - { - for (float xx = 0; xx < cb.PdfDocument.PageSize.Width; xx += size) - { - for (float yy = 0; yy < cb.PdfDocument.PageSize.Height; yy += size) - { - PdfDestination dest = new PdfDestination(PdfDestination.FITR, xx - 1.5F * size, yy - 1.5F * size, xx + 1.5F * size, yy + 1.5F * size); - cb.SetAction(PdfAction.GotoLocalPage(cb.PdfWriter.CurrentPageNumber, dest, cb.PdfWriter), xx - size, yy - size, xx + size, yy + size); - } - } - } - public override void OnStartPage(PdfWriter writer, Document document) - { - //base.OnStartPage(writer, document); - } - public override void OnCloseDocument(PdfWriter writer, Document document) - { - // Build Templates for Page Count - } - } - public class SvgWatermark - { - private PdfContentByte _ContentByte; - private string _Text; - private Color _Color; - private PdfPatternPainter _PatternPainter; - private BaseFont _Basefont; - private float _Fontsize; - private float _XOffset; - private float _YOffset; - private float _TextAngle; - private float _Opacity; - public SvgWatermark(PdfContentByte contentByte, string text, System.Drawing.Color color, float opacity) - { - _ContentByte = contentByte; - _Text = text; - float radius = .5F; - float space = 3; - _Color = new Color(color); - _Opacity = opacity; - SetDotPattern(radius, space); - SetTextLayout(); - } - private void SetTextLayout() - { - Rectangle pageSize = _ContentByte.PdfWriter.PageSize; // Get page size - _Basefont = BaseFont.CreateFont(BaseFont.HELVETICA_BOLD, Encoding.ASCII.EncodingName, false); - float hgtA = _Basefont.GetAscentPoint(_Text, 12); - //float hgtD = basefont.GetDescentPoint(text,20); - float wid = _Basefont.GetWidthPointKerned(_Text, 12); - //Console.WriteLine("{0} {1} {2}",hgtA,hgtD,wid); - float rho = wid / hgtA; - float x2 = (rho * pageSize.Height - pageSize.Width) / (rho * rho - 1); - float y1 = x2 * rho; - float y2 = pageSize.Height - y1; - float x1 = pageSize.Width - x2; - _XOffset = x2 + x1 / 2; - _YOffset = y1 / 2; - _TextAngle = CalcAngle(y1, x1); - _Fontsize = (float)(10 * Math.Sqrt(x2 * x2 + y2 * y2) / hgtA); - } - public void SetDotPattern(float radius, float space) - { - _PatternPainter = _ContentByte.CreatePattern(radius * 2, radius * 2, radius * 2 + space, radius * 2 + space); - PdfGState gState = new PdfGState(); - gState.FillOpacity = _Opacity; - _PatternPainter.SetGState(gState); - _PatternPainter.SetColorFill(_Color); - _PatternPainter.Circle(radius, radius, radius); - _PatternPainter.Fill(); - } - public void SetSquareDotPattern(float radius) - { - _PatternPainter = _ContentByte.CreatePattern(radius * 4, radius * 2, radius * 4, radius * 2); - PdfGState gState = new PdfGState(); - gState.FillOpacity = .5f * _Opacity; - _PatternPainter.SetGState(gState); - _PatternPainter.SetColorFill(_Color); - _PatternPainter.Rectangle(0, 0, radius, radius); - _PatternPainter.Rectangle(radius * 2, radius, radius, radius); - _PatternPainter.Fill(); - } - public void SetHashPattern(float thickness, float size) - { - _PatternPainter = _ContentByte.CreatePattern(size, size, size, size); - PdfGState gState = new PdfGState(); - gState.FillOpacity = _Opacity; - gState.StrokeOpacity = _Opacity; - _PatternPainter.SetGState(gState); - _PatternPainter.SetLineWidth(.01F); - _PatternPainter.SetColorStroke(_Color); // Set color - _PatternPainter.MoveTo(0, 0); - _PatternPainter.LineTo(size, size); - _PatternPainter.MoveTo(size, 0); - _PatternPainter.LineTo(0, size); - _PatternPainter.Stroke(); - } - public void SetTextPattern(float fontSize, float space) - { - float hgtA = _Basefont.GetAscentPoint(_Text, fontSize) + _Basefont.GetDescentPoint(_Text, fontSize); - float wid = _Basefont.GetWidthPointKerned(_Text, fontSize); - _PatternPainter = _ContentByte.CreatePattern(wid, hgtA, wid + space, hgtA + space); - _PatternPainter.SetFontAndSize(_Basefont, fontSize); - _PatternPainter.BoundingBox = new Rectangle(-20, -20, 100, 100); - _PatternPainter.BeginText(); - PdfGState gs1 = new PdfGState(); - gs1.FillOpacity = _Opacity; - _PatternPainter.SetGState(gs1); - _PatternPainter.SetColorFill(_Color); // Set color - _PatternPainter.ShowText(_Text); - _PatternPainter.EndText(); - } - public void SetTextPattern2(float fontSize) - { - BaseFont _Basefont2 = BaseFont.CreateFont(BaseFont.HELVETICA, Encoding.ASCII.EncodingName, false); - float hgtA = _Basefont2.GetAscentPoint(_Text, fontSize); - float wid = _Basefont2.GetWidthPointKerned(_Text, fontSize); - _PatternPainter = _ContentByte.CreatePattern(wid * 2, hgtA * 2, wid * 2, hgtA * 2); - _PatternPainter.SetFontAndSize(_Basefont2, fontSize); - _PatternPainter.BoundingBox = new Rectangle(-20, -20, 100, 100); - _PatternPainter.BeginText(); - PdfGState gs1 = new PdfGState(); - gs1.FillOpacity = _Opacity; - _PatternPainter.SetGState(gs1); - _PatternPainter.SetColorFill(_Color); // Set color - _PatternPainter.ShowText(_Text); - _PatternPainter.ShowTextAligned(PdfContentByte.ALIGN_LEFT, _Text, wid, hgtA, 0); - _PatternPainter.EndText(); - } - public void Draw() - { - _ContentByte.SaveState(); - _ContentByte.BeginText(); - _ContentByte.SetPatternFill(_PatternPainter); - _ContentByte.SetTextRenderingMode(PdfContentByte.TEXT_RENDER_MODE_FILL_STROKE); - _ContentByte.SetLineWidth(.5F); - _ContentByte.SetFontAndSize(_Basefont, _Fontsize);// Set font and size - _ContentByte.SetColorStroke(_Color); - PdfGState gs2 = new PdfGState(); - gs2.StrokeOpacity = _Opacity; - _ContentByte.SetGState(gs2); - _ContentByte.ShowTextAlignedKerned(PdfContentByte.ALIGN_CENTER, _Text, _XOffset, _YOffset, _TextAngle);// Draw the text - _ContentByte.EndText(); - _ContentByte.FillStroke(); // Controlled by TextRenderMode above - _ContentByte.RestoreState(); - } - private float CalcAngle(float opposite, float adjacent) - { - return (float)(Math.Atan2(opposite, adjacent) * (180 / Math.PI)); - } - - } - public enum SvgWatermarkFill - { - Dots = 1, - Text1 = 2, - Text2 = 3, - Hash = 4 - } -} \ No newline at end of file diff --git a/PROMS/Volian.Utils.Library/CvtFont/CvtFont.cs b/PROMS/Volian.Utils.Library/CvtFont/CvtFont.cs deleted file mode 100644 index 5525ef81..00000000 --- a/PROMS/Volian.Utils.Library/CvtFont/CvtFont.cs +++ /dev/null @@ -1,346 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace CvtFont -{ - // - - public static class CvtFont - { - public const int ELITE = 0; - public const int PICA = 1; - public const int LN_PRN = 2; - public const int CONDENSE = 3; - public const int SANSERIF = 4; - public const int PICA12 = 5; - public const int PROPORTIONAL = 6; - public const int PROPT12 = 7; - public const int HVLPT18 = 8; - public const int HVLPT25 = 9; - public const int SPECIALCHARS = 10; - public const int PT14 = 11; - public const int SANSERIF14 = 12; - public const int SANSERIF17 = 13; - public const int HVLPT12 = 14; - public const int NARRATOR = 15; - public const int MEDUPUNIVERS = 16; - public const int LGUPMED16 = 17; - /* Old name for PROPT10: public const int PT12BOLD=18 */ - public const int PROPT10 = 18; - public const int LG1275HP4SI = 19; - public const int HVLPT10 = 20; - public const int HVLPT8 = 21; - public const int HVLPT14 = 22; - public const int SANSERIF25 = 23; - public const int EYECHART = 24; - public const int TIMES11 = 25; - public const int SANSCOND = 26; - - private static string [] OldNames = { - "Elite", - "Pica", - "LnPrn", - "Condense", - "SanSerif", - "Pica12", - "Proportional", - "Propt12", - "HvlPt18", - "HvlPt25", - "SpecialChars", - "Pt14", - "SanSerif14", - "SanSerif17", - "HvlPt12", - "Narrator", - "MedUpUnivers",/* this font is not used */ - "LgUpMed16", - "Propt10", - "Lg1275Hp4Si", - "HvlPt10", - "HvlPt8", - "HvlPt14", - "SanSerif25", - "EyeChart", - "Times11", - "SansCond", - "BigScript" - }; - private static string[] NewXML = { - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "", - "" - }; - private static string[] NewFamily = { - "Prestige Elite Tall", - "Courier New", - "Times New Roman", - "Times New Roman", - "Letter Gothic", - "Courier New", - "Arial", - "Arial", - "Times New Roman", - "Times New Roman", - "VolianDraw XXXXXX", - "Letter Gothic", - "Arial", - "Arial", - "Times New Roman", - "Gothic Ultra", - "NA", - "Letter Gothic Tall", - "Arial", - "Letter Gothic Tall", - "Times New Roman", - "Times New Roman", - "Times New Roman", - "Arial", - "Gothic Ultra", - "Times New Roman", - "Letter Gothic", - "VolianScript" - }; - private static int[] NewSize = { - 10, - 12, - 7, - 7, - 10, - 12, - 18, - 11, - 18, - 25, - 12, - 12, - 14, - 17, - 12, - 12, - 0, - 7, - 10, /* PROPT10 - NSP & TUEC - change from 0 to 10 */ - //10, - 10, - 8, - 14, - 25, - 14, - 11, - 7, - 32 - }; - /* The following array is not used for the migration. It is here to capture the - * values. Note that their was a difference in values in 16-bit for some of the fonts, - * as compared to the CPIS below. These fonts are PICA12, PROPT10 (PT12BOLD), HVLPT10, - * HVLPT8, HVLPT14. This was causing an incorrect results on placement of some of pagelist - * items in 16bit. What this means is that some of the 32bit will not compare identically - * with 16bit output. - */ - private static float[] PrintPitch = { - 12, //ELITE - 10, //PICA - 16.66F, //LN_PRN - 16.67F, //CONDENSE - 12, //SANSERIF - 12, //PICA12 - 10, //PROPORTIONAL - 10, //PROPT12 - 12, //HVLPT18 - 12, //HVLPT25 - 10, //SPECIALCHARS - 10, //PT14 - 12, //SANSERIF14 - 12, //SANSERIF17 - 12, //HVLPT12 - 10, //NARRATOR - 16.67F, //MEDUPUNIVERS - 16.67F, //LGUPMED16 - 10, //PROPT10 - 12, //LG1275HP4SI - 12, //HVLPT10 - 12, //HVLPT8 - 12, //HVLPT14 - 12, //SANSERIF25 - 8.11F, //EYECHART - 12, //TIMES11 - 16.67F, //SANSCOND - 8 //VOLIANSCRIPT?? - }; - private static float[] CPIS = { - 12, // ELITE - 10, // PICA - 16.66F, // LN_PRN - 16.665F, // CONDENSE - 12, // SANSERIF - 10, // PICA12 - 10, // PROPORTIONAL - 10, // PROPT12 - 12, // HVLPT18 - 12, // HVLPT25 - 10, // SPECIALCHARS - 10, // PT14 - 12, // SANSERIF14 - 12, // SANSERIF17 - 12, // HVLPT12 - 10, // NARRATOR - 16.67F, // MEDUPUNIVERS - medium upright univers fonts (HP3 internal) - 16.67F, // LGUPMED16 - Letter Gothic Upright Medium 16.67 - 12, // PT12BOLD - 12.50F, // LG1275HP4SI - 10, // HVLPT10 - 8, // HVLPT8 - 14, // HVLP14 - 12, // SANSERIF25 - 8, // EYECHART - 12, // TIMES11 - 16.665F // SANSCOND - }; - private static float[] CPISBadPICA12 = { - 12, // ELITE - 10, // PICA - 16.66F, // LN_PRN - 16.665F, // CONDENSE - 12, // SANSERIF - 12, // PICA12 - 10, // PROPORTIONAL - 10, // PROPT12 - 12, // HVLPT18 - 12, // HVLPT25 - 10, // SPECIALCHARS - 10, // PT14 - 12, // SANSERIF14 - 12, // SANSERIF17 - 12, // HVLPT12 - 10, // NARRATOR - 16.67F, // MEDUPUNIVERS - medium upright univers fonts (HP3 internal) - 16.67F, // LGUPMED16 - Letter Gothic Upright Medium 16.67 - 12, // PT12BOLD - 12.50F, // LG1275HP4SI - 10, // HVLPT10 - 8, // HVLPT8 - 14, // HVLP14 - 12, // SANSERIF25 - 8, // EYECHART - 12, // TIMES11 - 16.665F // SANSCOND - }; - private static Dictionary OldToNewStrings=null; - public static string ConvertToString(string oldstr) - { - if (OldToNewStrings == null) InitializeDictionary(); - return OldToNewStrings[oldstr]; - } - - public static string ConvertToFamily(string oldstr) - { - int i = 0; - foreach (string str in OldNames) - { - if (str == oldstr) return NewFamily[i]; - i++; - } - return null; - } - public static int ConvertToSize(string oldstr) - { - int i = 0; - foreach (string str in OldNames) - { - if (str == oldstr) return NewSize[i]; - i++; - } - return -1; - } - //public static float GetNewSize(uint i) - //{ - // return ConvertToNewSize[i&63]; - //} - - private static bool FontIsPropt(uint fontFace) - { - int f = (int)fontFace & 63; - switch (f) - { - case PROPORTIONAL: - case PROPT12: - case PROPT10: - case HVLPT12: - case HVLPT10: - case HVLPT8: - case HVLPT14: - case HVLPT18: - case HVLPT25: - case SANSERIF14: - case SANSERIF17: - case SANSERIF25: - case TIMES11: - return true; - default: - return false; - } - } - public static float GetCPIs(uint i) - { - if (FontIsPropt(i)) return 12; - uint j = i & 63; - if (j > CPIS.Length - 1) - return CPIS[0]; - return CPIS[j]; - } - public static float GetCPISBadPICA12(uint i) - { - if (FontIsPropt(i)) return 12; - uint j = i & 63; - if (j > CPISBadPICA12.Length - 1) - return CPISBadPICA12[0]; - return CPISBadPICA12[j]; - } - public static float GetPrintPitch(uint i) - { - if (FontIsPropt(i)) return 12; - return PrintPitch[i & 63]; - } - //public static XmlElement ConvertToXML(string oldstr) - //{ - // if (OldToNewStrings == null) InitializeDictionary(); - // XmlElement xml = new XmlElement(); - // xml.InnerXml = OldToNewStrings[oldstr]; - // return xml; - //} - private static void InitializeDictionary() - { - int i = 0; - foreach (string str in OldNames) - OldToNewStrings.Add(str, NewXML[i]); - } - } -} diff --git a/PROMS/Volian.Utils.Library/CvtFont/CvtFont.csproj b/PROMS/Volian.Utils.Library/CvtFont/CvtFont.csproj deleted file mode 100644 index 2957de8b..00000000 --- a/PROMS/Volian.Utils.Library/CvtFont/CvtFont.csproj +++ /dev/null @@ -1,52 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D} - Library - Properties - CvtFont - CvtFont - SAK - SAK - SAK - SAK - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - x86 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/Volian.Utils.Library/CvtFont/Properties/AssemblyInfo.cs b/PROMS/Volian.Utils.Library/CvtFont/Properties/AssemblyInfo.cs deleted file mode 100644 index 06df2886..00000000 --- a/PROMS/Volian.Utils.Library/CvtFont/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CvtFont")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Volian Enterprises, Inc.")] -[assembly: AssemblyProduct("CvtFont")] -[assembly: AssemblyCopyright("Copyright © Volian Enterprises, Inc. 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("d2266793-0f12-4f71-bbd4-0a1617554b27")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/Volian.Utils.Library/Volian.Utils.Library.sln b/PROMS/Volian.Utils.Library/Volian.Utils.Library.sln deleted file mode 100644 index c5470378..00000000 --- a/PROMS/Volian.Utils.Library/Volian.Utils.Library.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.Utils.Library", "Volian.Utils.Library.csproj", "{62314B9C-DA84-4037-8B68-AA18C1F641F5}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {62314B9C-DA84-4037-8B68-AA18C1F641F5}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/Volian.Utils.Library/vlnControl.xml b/PROMS/Volian.Utils.Library/vlnControl.xml deleted file mode 100644 index 9c97842a..00000000 --- a/PROMS/Volian.Utils.Library/vlnControl.xml +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/Volian.Utils.Library/vlnControl.xml.org b/PROMS/Volian.Utils.Library/vlnControl.xml.org deleted file mode 100644 index 44fc9861..00000000 --- a/PROMS/Volian.Utils.Library/vlnControl.xml.org +++ /dev/null @@ -1,244 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/XYPlots/XYPlots.sln b/PROMS/XYPlots/XYPlots.sln deleted file mode 100644 index efd5460d..00000000 --- a/PROMS/XYPlots/XYPlots.sln +++ /dev/null @@ -1,34 +0,0 @@ -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XYPlots", "XYPlots.csproj", "{04E168D0-9CC7-43D9-A9F1-93E481EA86A3}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Test XYPlots", "Test XYPlots\Test XYPlots.csproj", "{2BB292F1-507C-492F-AE66-CBEA54632B59}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 3 - SccLocalPath0 = . - SccProjectUniqueName1 = Test\u0020XYPlots\\Test\u0020XYPlots.csproj - SccLocalPath1 = . - SccProjectFilePathRelativizedFromConnection1 = Test\u0020XYPlots\\ - SccProjectUniqueName2 = XYPlots.csproj - SccLocalPath2 = . - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04E168D0-9CC7-43D9-A9F1-93E481EA86A3}.Release|Any CPU.Build.0 = Release|Any CPU - {2BB292F1-507C-492F-AE66-CBEA54632B59}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2BB292F1-507C-492F-AE66-CBEA54632B59}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2BB292F1-507C-492F-AE66-CBEA54632B59}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2BB292F1-507C-492F-AE66-CBEA54632B59}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessBase.cs deleted file mode 100644 index 303ff2f4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessBase.cs +++ /dev/null @@ -1,253 +0,0 @@ -using System; -using System.ComponentModel; -using Csla.Properties; - -namespace Csla -{ - - /// - /// This is the base class from which most business objects - /// will be derived. - /// - /// - /// - /// This class is the core of the CSLA .NET framework. To create - /// a business object, inherit from this class. - /// - /// Please refer to 'Expert C# 2005 Business Objects' for - /// full details on the use of this base class to create business - /// objects. - /// - /// - /// Type of the business object being defined. - [Serializable()] - public abstract class BusinessBase : - Core.BusinessBase, Core.ISavable where T : BusinessBase - { - - #region Object ID Value - - /// - /// Override this method to return a unique identifying - /// value for this object. - /// - /// - /// If you can not provide a unique identifying value, it - /// is best if you can generate such a unique value (even - /// temporarily). If you can not do that, then return - /// and then manually override the - /// , and - /// methods in your business object. - /// - protected abstract object GetIdValue(); - - #endregion - - #region System.Object Overrides - - /// - /// Compares this object for equality with another object, using - /// the results of to determine - /// equality. - /// - /// The object to be compared. - public override bool Equals(object obj) - { - if (obj is T) - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.Equals(((T)obj).GetIdValue()); - } - else - return false; - } - - /// - /// Returns a hash code value for this object, based on - /// the results of . - /// - public override int GetHashCode() - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.GetHashCode(); - } - - /// - /// Returns a text representation of this object by - /// returning the value - /// in text form. - /// - public override string ToString() - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.ToString(); - } - - #endregion - - #region Clone - - /// - /// Creates a clone of the object. - /// - /// - /// A new object containing the exact data of the original object. - /// - public T Clone() - { - return (T)GetClone(); - } - - #endregion - - #region Data Access - - /// - /// Saves the object to the database. - /// - /// - /// - /// Calling this method starts the save operation, causing the object - /// to be inserted, updated or deleted within the database based on the - /// object's current state. - /// - /// If is - /// the object will be deleted. Otherwise, if - /// is the object will be inserted. - /// Otherwise the object's data will be updated in the database. - /// - /// All this is contingent on . If - /// this value is , no data operation occurs. - /// It is also contingent on . - /// If this value is an - /// exception will be thrown to indicate that the UI attempted to save an - /// invalid object. - /// - /// It is important to note that this method returns a new version of the - /// business object that contains any data updated during the save operation. - /// You MUST update all object references to use this new version of the - /// business object in order to have access to the correct object data. - /// - /// You can override this method to add your own custom behaviors to the save - /// operation. For instance, you may add some security checks to make sure - /// the user can save the object. If all security checks pass, you would then - /// invoke the base Save method via base.Save(). - /// - /// - /// A new object containing the saved values. - public virtual T Save() - { - T result; - if (this.IsChild) - throw new NotSupportedException(Resources.NoSaveChildException); - if (EditLevel > 0) - throw new Validation.ValidationException(Resources.NoSaveEditingException); - if (!IsValid) - throw new Validation.ValidationException(Resources.NoSaveInvalidException); - if (IsDirty) - result = (T)DataPortal.Update(this); - else - result = (T)this; - OnSaved(result); - return result; - } - - /// - /// Saves the object to the database, forcing - /// IsNew to and IsDirty to True. - /// - /// - /// If , triggers overriding IsNew and IsDirty. - /// If then it is the same as calling Save(). - /// - /// A new object containing the saved values. - /// - /// This overload is designed for use in web applications - /// when implementing the Update method in your - /// data wrapper object. - /// - public T Save(bool forceUpdate) - { - if (forceUpdate && IsNew) - { - // mark the object as old - which makes it - // not dirty - MarkOld(); - // now mark the object as dirty so it can save - MarkDirty(true); - } - return this.Save(); - } - - #endregion - - #region ISavable Members - - object Csla.Core.ISavable.Save() - { - return Save(); - } - - - [NonSerialized] - [NotUndoable] - private EventHandler _nonSerializableSavedHandlers; - [NotUndoable] - private EventHandler _serializableSavedHandlers; - - /// - /// Event raised when an object has been saved. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", - "CA1062:ValidateArgumentsOfPublicMethods")] - public event EventHandler Saved - { - add - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableSavedHandlers = (EventHandler) - System.Delegate.Combine(_serializableSavedHandlers, value); - else - _nonSerializableSavedHandlers = (EventHandler) - System.Delegate.Combine(_nonSerializableSavedHandlers, value); - } - remove - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableSavedHandlers = (EventHandler) - System.Delegate.Remove(_serializableSavedHandlers, value); - else - _nonSerializableSavedHandlers = (EventHandler) - System.Delegate.Remove(_nonSerializableSavedHandlers, value); - } - } - - /// - /// Raises the Saved event, indicating that the - /// object has been saved, and providing a reference - /// to the new object instance. - /// - /// The new object instance. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected void OnSaved(T newObject) - { - Csla.Core.SavedEventArgs args = new Csla.Core.SavedEventArgs(newObject); - if (_nonSerializableSavedHandlers != null) - _nonSerializableSavedHandlers.Invoke(this, args); - if (_serializableSavedHandlers != null) - _serializableSavedHandlers.Invoke(this, args); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessListBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessListBase.cs deleted file mode 100644 index 5e6cbe3e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/BusinessListBase.cs +++ /dev/null @@ -1,762 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Runtime.Serialization; -using Csla.Properties; - -namespace Csla -{ - /// - /// This is the base class from which most business collections - /// or lists will be derived. - /// - /// Type of the business object being defined. - /// Type of the child objects contained in the list. - [System.Diagnostics.CodeAnalysis.SuppressMessage( - "Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] - [Serializable()] - public abstract class BusinessListBase : - Core.ExtendedBindingList, - Core.IEditableCollection, ICloneable, Core.ISavable, Core.IParent - where T : BusinessListBase - where C : Core.IEditableBusinessObject - { - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected BusinessListBase() - { - Initialize(); - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region IsDirty, IsValid - - /// - /// Gets a value indicating whether this object's data has been changed. - /// - public bool IsDirty - { - get - { - // any non-new deletions make us dirty - foreach (C item in DeletedList) - if (!item.IsNew) - return true; - - // run through all the child objects - // and if any are dirty then then - // collection is dirty - foreach (C child in this) - if (child.IsDirty) - return true; - return false; - } - } - - /// - /// Gets a value indicating whether this object is currently in - /// a valid state (has no broken validation rules). - /// - public virtual bool IsValid - { - get - { - // run through all the child objects - // and if any are invalid then the - // collection is invalid - foreach (C child in this) - if (!child.IsValid) - return false; - return true; - } - } - - #endregion - - #region Begin/Cancel/ApplyEdit - - /// - /// Starts a nested edit on the object. - /// - /// - /// - /// When this method is called the object takes a snapshot of - /// its current state (the values of its variables). This snapshot - /// can be restored by calling - /// or committed by calling . - /// - /// This is a nested operation. Each call to BeginEdit adds a new - /// snapshot of the object's state to a stack. You should ensure that - /// for each call to BeginEdit there is a corresponding call to either - /// CancelEdit or ApplyEdit to remove that snapshot from the stack. - /// - /// See Chapters 2 and 3 for details on n-level undo and state stacking. - /// - /// This method triggers the copying of all child object states. - /// - /// - public void BeginEdit() - { - if (this.IsChild) - throw new NotSupportedException(Resources.NoBeginEditChildException); - - CopyState(); - } - - /// - /// Cancels the current edit process, restoring the object's state to - /// its previous values. - /// - /// - /// Calling this method causes the most recently taken snapshot of the - /// object's state to be restored. This resets the object's values - /// to the point of the last - /// call. - /// - /// This method triggers an undo in all child objects. - /// - /// - public void CancelEdit() - { - if (this.IsChild) - throw new NotSupportedException(Resources.NoCancelEditChildException); - - UndoChanges(); - } - - /// - /// Commits the current edit process. - /// - /// - /// Calling this method causes the most recently taken snapshot of the - /// object's state to be discarded, thus committing any changes made - /// to the object's state since the last - /// call. - /// - /// This method triggers an - /// in all child objects. - /// - /// - public void ApplyEdit() - { - if (this.IsChild) - throw new NotSupportedException(Resources.NoApplyEditChildException); - - AcceptChanges(); - } - - void Core.IParent.ApplyEditChild(Core.IEditableBusinessObject child) - { - EditChildComplete(child); - } - - /// - /// Override this method to be notified when a child object's - /// method has - /// completed. - /// - /// The child object that was edited. - protected virtual void EditChildComplete(Core.IEditableBusinessObject child) - { - - // do nothing, we don't really care - // when a child has its edits applied - } - - #endregion - - #region N-level undo - - void Core.IUndoableObject.CopyState() - { - CopyState(); - } - - void Core.IUndoableObject.UndoChanges() - { - UndoChanges(); - } - - void Core.IUndoableObject.AcceptChanges() - { - AcceptChanges(); - } - - private void CopyState() - { - // we are going a level deeper in editing - _editLevel += 1; - - // cascade the call to all child objects - foreach (C child in this) - child.CopyState(); - - // cascade the call to all deleted child objects - foreach (C child in DeletedList) - child.CopyState(); - } - - private void UndoChanges() - { - C child; - - // we are coming up one edit level - _editLevel -= 1; - if (_editLevel < 0) _editLevel = 0; - - // Cancel edit on all current items - for (int index = Count - 1; index >= 0; index--) - { - child = this[index]; - child.UndoChanges(); - // if item is below its point of addition, remove - if (child.EditLevelAdded > _editLevel) - { - bool oldAllowRemove = this.AllowRemove; - try - { - this.AllowRemove = true; - RemoveAt(index); - } - finally - { - this.AllowRemove = oldAllowRemove; - } - } - } - - // cancel edit on all deleted items - for (int index = DeletedList.Count - 1; index >= 0; index--) - { - child = DeletedList[index]; - child.UndoChanges(); - if (child.EditLevelAdded > _editLevel) - { - // if item is below its point of addition, remove - DeletedList.RemoveAt(index); - } - else - { - // if item is no longer deleted move back to main list - if (!child.IsDeleted) UnDeleteChild(child); - } - } - } - - private void AcceptChanges() - { - // we are coming up one edit level - _editLevel -= 1; - if (_editLevel < 0) _editLevel = 0; - - // cascade the call to all child objects - foreach (C child in this) - { - child.AcceptChanges(); - // if item is below its point of addition, lower point of addition - if (child.EditLevelAdded > _editLevel) child.EditLevelAdded = _editLevel; - } - - // cascade the call to all deleted child objects - for (int index = DeletedList.Count - 1; index >= 0; index--) - { - C child = DeletedList[index]; - child.AcceptChanges(); - // if item is below its point of addition, remove - if (child.EditLevelAdded > _editLevel) - DeletedList.RemoveAt(index); - } - } - - #endregion - - #region Delete and Undelete child - - private List _deletedList; - - /// - /// A collection containing all child objects marked - /// for deletion. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage( - "Microsoft.Design", "CA1002:DoNotExposeGenericLists")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected List DeletedList - { - get - { - if (_deletedList == null) - _deletedList = new List(); - return _deletedList; - } - } - - private void DeleteChild(C child) - { - // mark the object as deleted - child.DeleteChild(); - // and add it to the deleted collection for storage - DeletedList.Add(child); - } - - private void UnDeleteChild(C child) - { - // we are inserting an _existing_ object so - // we need to preserve the object's editleveladded value - // because it will be changed by the normal add process - int saveLevel = child.EditLevelAdded; - Add(child); - child.EditLevelAdded = saveLevel; - - // since the object is no longer deleted, remove it from - // the deleted collection - DeletedList.Remove(child); - } - - /// - /// Returns if the internal deleted list - /// contains the specified child object. - /// - /// Child object to check. - [EditorBrowsable(EditorBrowsableState.Advanced)] - public bool ContainsDeleted(C item) - { - return DeletedList.Contains(item); - } - - #endregion - - #region Insert, Remove, Clear - - /// - /// This method is called by a child object when it - /// wants to be removed from the collection. - /// - /// The child object to remove. - void Core.IEditableCollection.RemoveChild(Csla.Core.IEditableBusinessObject child) - { - Remove((C)child); - } - - /// - /// This method is called by a child object when it - /// wants to be removed from the collection. - /// - /// The child object to remove. - void Core.IParent.RemoveChild(Csla.Core.IEditableBusinessObject child) - { - Remove((C)child); - } - - /// - /// Sets the edit level of the child object as it is added. - /// - /// Index of the item to insert. - /// Item to insert. - protected override void InsertItem(int index, C item) - { - // when an object is inserted we assume it is - // a new object and so the edit level when it was - // added must be set - item.EditLevelAdded = _editLevel; - item.SetParent(this); - base.InsertItem(index, item); - } - - /// - /// Marks the child object for deletion and moves it to - /// the collection of deleted objects. - /// - /// Index of the item to remove. - protected override void RemoveItem(int index) - { - // when an object is 'removed' it is really - // being deleted, so do the deletion work - C child = this[index]; - base.RemoveItem(index); - CopyToDeletedList(child); - } - - private void CopyToDeletedList(C child) - { - DeleteChild(child); - INotifyPropertyChanged c = child as INotifyPropertyChanged; - if (c != null) - c.PropertyChanged -= new PropertyChangedEventHandler(Child_PropertyChanged); - } - - /// - /// Clears the collection, moving all active - /// items to the deleted list. - /// - protected override void ClearItems() - { - while (base.Count > 0) RemoveItem(0); - base.ClearItems(); - } - - /// - /// Replaces the item at the specified index with - /// the specified item, first moving the original - /// item to the deleted list. - /// - /// The zero-based index of the item to replace. - /// - /// The new value for the item at the specified index. - /// The value can be null for reference types. - /// - /// - protected override void SetItem(int index, C item) - { - // copy the original object to the deleted list, - // marking as deleted, etc. - C child = default(C); - if (!ReferenceEquals(this[index], item)) - child = this[index]; - // replace the original object with this new - // object - base.SetItem(index, item); - if (child != null) - CopyToDeletedList(child); - } - - #endregion - - #region Edit level tracking - - // keep track of how many edit levels we have - private int _editLevel; - - /// - /// Returns the current edit level of the object. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - protected int EditLevel - { - get { return _editLevel; } - } - - #endregion - - #region IsChild - - [NotUndoable()] - private bool _isChild = false; - - /// - /// Indicates whether this collection object is a child object. - /// - /// True if this is a child object. - protected bool IsChild - { - get { return _isChild; } - } - - /// - /// Marks the object as being a child object. - /// - /// - /// - /// By default all business objects are 'parent' objects. This means - /// that they can be directly retrieved and updated into the database. - /// - /// We often also need child objects. These are objects which are contained - /// within other objects. For instance, a parent Invoice object will contain - /// child LineItem objects. - /// - /// To create a child object, the MarkAsChild method must be called as the - /// object is created. Please see Chapter 7 for details on the use of the - /// MarkAsChild method. - /// - /// - protected void MarkAsChild() - { - _isChild = true; - } - - #endregion - - #region ICloneable - - object ICloneable.Clone() - { - return GetClone(); - } - - /// - /// Creates a clone of the object. - /// - /// A new object containing the exact data of the original object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual object GetClone() - { - return Core.ObjectCloner.Clone(this); - } - - /// - /// Creates a clone of the object. - /// - /// A new object containing the exact data of the original object. - public T Clone() - { - return (T)GetClone(); - } - - #endregion - - #region Cascade Child events - - private void Child_PropertyChanged(object sender, PropertyChangedEventArgs e) - { - for (int index = 0; index < Count; index++) - { - if (ReferenceEquals(this[index], sender)) - { - OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, index)); - return; - } - } - } - - #endregion - - #region Serialization Notification - - [OnDeserialized()] - private void OnDeserializedHandler(StreamingContext context) - { - OnDeserialized(context); - foreach (Core.IEditableBusinessObject child in this) - { - child.SetParent(this); - INotifyPropertyChanged c = child as INotifyPropertyChanged; - if (c != null) - c.PropertyChanged += new PropertyChangedEventHandler(Child_PropertyChanged); - } - foreach (Core.IEditableBusinessObject child in DeletedList) - child.SetParent(this); - } - - /// - /// This method is called on a newly deserialized object - /// after deserialization is complete. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnDeserialized(StreamingContext context) - { - // do nothing - this is here so a subclass - // could override if needed - } - - #endregion - - #region Data Access - - /// - /// Saves the object to the database. - /// - /// - /// - /// Calling this method starts the save operation, causing the all child - /// objects to be inserted, updated or deleted within the database based on the - /// each object's current state. - /// - /// All this is contingent on . If - /// this value is , no data operation occurs. - /// It is also contingent on . If this value is - /// an exception will be thrown to - /// indicate that the UI attempted to save an invalid object. - /// - /// It is important to note that this method returns a new version of the - /// business collection that contains any data updated during the save operation. - /// You MUST update all object references to use this new version of the - /// business collection in order to have access to the correct object data. - /// - /// You can override this method to add your own custom behaviors to the save - /// operation. For instance, you may add some security checks to make sure - /// the user can save the object. If all security checks pass, you would then - /// invoke the base Save method via MyBase.Save(). - /// - /// - /// A new object containing the saved values. - public virtual T Save() - { - T result; - if (this.IsChild) - throw new NotSupportedException(Resources.NoSaveChildException); - - if (_editLevel > 0) - throw new Validation.ValidationException(Resources.NoSaveEditingException); - - if (!IsValid) - throw new Validation.ValidationException(Resources.NoSaveInvalidException); - - if (IsDirty) - result = (T)DataPortal.Update(this); - else - result = (T)this; - OnSaved(result); - return result; - } - - /// - /// Override this method to load a new business object with default - /// values from the database. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Create() - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - /// - /// Override this method to allow update of a business - /// object. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - /// - /// Override this method to allow immediate deletion of a business object. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - #region ISavable Members - - object Csla.Core.ISavable.Save() - { - return Save(); - } - - [NonSerialized()] - [NotUndoable] - private EventHandler _nonSerializableSavedHandlers; - [NotUndoable] - private EventHandler _serializableSavedHandlers; - - /// - /// Event raised when an object has been saved. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", - "CA1062:ValidateArgumentsOfPublicMethods")] - public event EventHandler Saved - { - add - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableSavedHandlers = (EventHandler) - System.Delegate.Combine(_serializableSavedHandlers, value); - else - _nonSerializableSavedHandlers = (EventHandler) - System.Delegate.Combine(_nonSerializableSavedHandlers, value); - } - remove - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableSavedHandlers = (EventHandler) - System.Delegate.Remove(_serializableSavedHandlers, value); - else - _nonSerializableSavedHandlers = (EventHandler) - System.Delegate.Remove(_nonSerializableSavedHandlers, value); - } - } - - /// - /// Raises the event, indicating that the - /// object has been saved, and providing a reference - /// to the new object instance. - /// - /// The new object instance. - [System.ComponentModel.EditorBrowsable(EditorBrowsableState.Advanced)] - protected void OnSaved(T newObject) - { - Csla.Core.SavedEventArgs args = new Csla.Core.SavedEventArgs(newObject); - if (_nonSerializableSavedHandlers != null) - _nonSerializableSavedHandlers.Invoke(this, args); - if (_serializableSavedHandlers != null) - _serializableSavedHandlers.Invoke(this, args); - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CommandBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CommandBase.cs deleted file mode 100644 index a551807f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CommandBase.cs +++ /dev/null @@ -1,141 +0,0 @@ -using System; -using System.ComponentModel; -using Csla.Properties; - -namespace Csla -{ - - /// - /// This is the base class from which command - /// objects will be derived. - /// - /// - /// - /// Command objects allow the execution of arbitrary server-side - /// functionality. Most often, this involves the invocation of - /// a stored procedure in the database, but can involve any other - /// type of stateless, atomic call to the server instead. - /// - /// To implement a command object, inherit from CommandBase and - /// override the DataPortal_Execute method. In this method you can - /// implement any server-side code as required. - /// - /// To pass data to/from the server, use instance variables within - /// the command object itself. The command object is instantiated on - /// the client, and is passed by value to the server where the - /// DataPortal_Execute method is invoked. The command object is then - /// returned to the client by value. - /// - /// - [Serializable()] - public abstract class CommandBase : Core.ICommandObject - { - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected CommandBase() - { - Initialize(); - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region Data Access - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Create(object criteria) - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Override this method to implement any server-side code - /// that is to be run when the command is executed. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Execute() - { - throw new NotSupportedException(Resources.ExecuteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during server-side processing. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during processing. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BindableBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BindableBase.cs deleted file mode 100644 index ac5b0503..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BindableBase.cs +++ /dev/null @@ -1,107 +0,0 @@ -using System; -using System.ComponentModel; -using System.Reflection; - -namespace Csla.Core -{ - /// - /// This class implements INotifyPropertyChanged - /// in a serialization-safe manner. - /// - [Serializable()] - public abstract class BindableBase : System.ComponentModel.INotifyPropertyChanged - { - [NonSerialized()] - private PropertyChangedEventHandler _nonSerializableHandlers; - private PropertyChangedEventHandler _serializableHandlers; - - /// - /// Creates an instance of the object. - /// - protected BindableBase() - { - - } - - /// - /// Implements a serialization-safe PropertyChanged event. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", - "CA1062:ValidateArgumentsOfPublicMethods")] - public event PropertyChangedEventHandler PropertyChanged - { - add - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableHandlers = (PropertyChangedEventHandler) - System.Delegate.Combine(_serializableHandlers, value); - else - _nonSerializableHandlers = (PropertyChangedEventHandler) - System.Delegate.Combine(_nonSerializableHandlers, value); - } - remove - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableHandlers = (PropertyChangedEventHandler) - System.Delegate.Remove(_serializableHandlers, value); - else - _nonSerializableHandlers = (PropertyChangedEventHandler) - System.Delegate.Remove(_nonSerializableHandlers, value); - } - } - - /// - /// Call this method to raise the PropertyChanged event - /// for all object properties. - /// - /// - /// This method is for backward compatibility with - /// CSLA .NET 1.x. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnIsDirtyChanged() - { - OnUnknownPropertyChanged(); - } - - /// - /// Call this method to raise the PropertyChanged event - /// for all object properties. - /// - /// - /// This method is automatically called by MarkDirty. It - /// actually raises PropertyChanged for an empty string, - /// which tells data binding to refresh all properties. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnUnknownPropertyChanged() - { - OnPropertyChanged(string.Empty); - } - - /// - /// Call this method to raise the PropertyChanged event - /// for a specific property. - /// - /// Name of the property that - /// has changed. - /// - /// This method may be called by properties in the business - /// class to indicate the change in a specific property. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnPropertyChanged(string propertyName) - { - if (_nonSerializableHandlers != null) - _nonSerializableHandlers.Invoke(this, - new PropertyChangedEventArgs(propertyName)); - if (_serializableHandlers != null) - _serializableHandlers.Invoke(this, - new PropertyChangedEventArgs(propertyName)); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BusinessBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BusinessBase.cs deleted file mode 100644 index ed8f7079..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/BusinessBase.cs +++ /dev/null @@ -1,1200 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using System.ComponentModel; -using System.Runtime.Serialization; -using Csla.Properties; - -namespace Csla.Core -{ - - /// - /// This is the non-generic base class from which most - /// business objects will be derived. - /// - /// - /// See Chapter 3 for details. - /// - [Serializable()] - public abstract class BusinessBase : - Csla.Core.UndoableBase, IEditableBusinessObject, - System.ComponentModel.IEditableObject, System.ComponentModel.IDataErrorInfo, - ICloneable, Csla.Security.IAuthorizeReadWrite - { - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected BusinessBase() - { - Initialize(); - AddInstanceBusinessRules(); - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - AddBusinessRules(); - } - } - AddInstanceAuthorizationRules(); - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - AddAuthorizationRules(); - } - } - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region IsNew, IsDeleted, IsDirty, IsSavable - - // keep track of whether we are new, deleted or dirty - private bool _isNew = true; - private bool _isDeleted; - private bool _isDirty = true; - - /// - /// Returns if this is a new object, - /// if it is a pre-existing object. - /// - /// - /// An object is considered to be new if its primary identifying (key) value - /// doesn't correspond to data in the database. In other words, - /// if the data values in this particular - /// object have not yet been saved to the database the object is considered to - /// be new. Likewise, if the object's data has been deleted from the database - /// then the object is considered to be new. - /// - /// A value indicating if this object is new. - [Browsable(false)] - public bool IsNew - { - get { return _isNew; } - } - - /// - /// Returns if this object is marked for deletion. - /// - /// - /// CSLA .NET supports both immediate and deferred deletion of objects. This - /// property is part of the support for deferred deletion, where an object - /// can be marked for deletion, but isn't actually deleted until the object - /// is saved to the database. This property indicates whether or not the - /// current object has been marked for deletion. If it is - /// , the object will - /// be deleted when it is saved to the database, otherwise it will be inserted - /// or updated by the save operation. - /// - /// A value indicating if this object is marked for deletion. - [Browsable(false)] - public bool IsDeleted - { - get { return _isDeleted; } - } - - /// - /// Returns if this object's data has been changed. - /// - /// - /// - /// When an object's data is changed, CSLA .NET makes note of that change - /// and considers the object to be 'dirty' or changed. This value is used to - /// optimize data updates, since an unchanged object does not need to be - /// updated into the database. All new objects are considered dirty. All objects - /// marked for deletion are considered dirty. - /// - /// Once an object's data has been saved to the database (inserted or updated) - /// the dirty flag is cleared and the object is considered unchanged. Objects - /// newly loaded from the database are also considered unchanged. - /// - /// - /// A value indicating if this object's data has been changed. - [Browsable(false)] - public virtual bool IsDirty - { - get { -// Console.WriteLine("IsDirty = {0} , Type = {1}", _isDirty, GetType().Name); - return _isDirty; - } - } - - /// - /// Marks the object as being a new object. This also marks the object - /// as being dirty and ensures that it is not marked for deletion. - /// - /// - /// - /// Newly created objects are marked new by default. You should call - /// this method in the implementation of DataPortal_Update when the - /// object is deleted (due to being marked for deletion) to indicate - /// that the object no longer reflects data in the database. - /// - /// If you override this method, make sure to call the base - /// implementation after executing your new code. - /// - /// - protected virtual void MarkNew() - { - _isNew = true; - _isDeleted = false; - MarkDirty(); - } - - /// - /// Marks the object as being an old (not new) object. This also - /// marks the object as being unchanged (not dirty). - /// - /// - /// - /// You should call this method in the implementation of - /// DataPortal_Fetch to indicate that an existing object has been - /// successfully retrieved from the database. - /// - /// You should call this method in the implementation of - /// DataPortal_Update to indicate that a new object has been successfully - /// inserted into the database. - /// - /// If you override this method, make sure to call the base - /// implementation after executing your new code. - /// - /// - protected virtual void MarkOld() - { - _isNew = false; - MarkClean(); - } - - /// - /// Marks an object for deletion. This also marks the object - /// as being dirty. - /// - /// - /// You should call this method in your business logic in the - /// case that you want to have the object deleted when it is - /// saved to the database. - /// - protected void MarkDeleted() - { - _isDeleted = true; - MarkDirty(); - } - - /// - /// Marks an object as being dirty, or changed. - /// - /// - /// - /// You should call this method in your business logic any time - /// the object's internal data changes. Any time any instance - /// variable changes within the object, this method should be called - /// to tell CSLA .NET that the object's data has been changed. - /// - /// Marking an object as dirty does two things. First it ensures - /// that CSLA .NET will properly save the object as appropriate. Second, - /// it causes CSLA .NET to tell Windows Forms data binding that the - /// object's data has changed so any bound controls will update to - /// reflect the new values. - /// - /// - protected void MarkDirty() - { - MarkDirty(false); - } - - /// - /// Marks an object as being dirty, or changed. - /// - /// - /// to supress the PropertyChanged event that is otherwise - /// raised to indicate that the object's state has changed. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected void MarkDirty(bool suppressEvent) - { - _isDirty = true; - if (!suppressEvent) - OnUnknownPropertyChanged(); - } - - /// - /// Performs processing required when the current - /// property has changed. - /// - /// - /// - /// This method calls CheckRules(propertyName), MarkDirty and - /// OnPropertyChanged(propertyName). MarkDirty is called such - /// that no event is raised for IsDirty, so only the specific - /// property changed event for the current property is raised. - /// - /// This implementation uses System.Diagnostics.StackTrace to - /// determine the name of the current property, and so must be called - /// directly from the property to be checked. - /// - /// - [System.Runtime.CompilerServices.MethodImpl( - System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - protected void PropertyHasChanged() - { - string propertyName = - new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - PropertyHasChanged(propertyName); - } - - /// - /// Performs processing required when a property - /// has changed. - /// - /// Name of the property that - /// has changed. - /// - /// This method calls CheckRules(propertyName), MarkDirty and - /// OnPropertyChanged(propertyName). MarkDirty is called such - /// that no event is raised for IsDirty, so only the specific - /// property changed event for the current property is raised. - /// - protected virtual void PropertyHasChanged(string propertyName) - { - ValidationRules.CheckRules(propertyName); - MarkDirty(true); - OnPropertyChanged(propertyName); - } - - /// - /// Forces the object's IsDirty flag to . - /// - /// - /// This method is normally called automatically and is - /// not intended to be called manually. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected void MarkClean() - { - _isDirty = false; - OnUnknownPropertyChanged(); - } - - /// - /// Returns if this object is both dirty and valid. - /// - /// - /// An object is considered dirty (changed) if - /// returns . It is - /// considered valid if IsValid - /// returns . The IsSavable property is - /// a combination of these two properties. - /// - /// A value indicating if this object is both dirty and valid. - [Browsable(false)] - public virtual bool IsSavable - { - get { return (IsDirty && IsValid); } - } - - #endregion - - #region Authorization - - [NotUndoable()] - [NonSerialized()] - private Dictionary _readResultCache; - [NotUndoable()] - [NonSerialized()] - private Dictionary _writeResultCache; - [NotUndoable()] - [NonSerialized()] - private System.Security.Principal.IPrincipal _lastPrincipal; - - [NotUndoable()] - [NonSerialized()] - private Security.AuthorizationRules _authorizationRules; - - /// - /// Override this method to add authorization - /// rules for your object's properties. - /// - /// - /// AddInstanceAuthorizationRules is automatically called by CSLA .NET - /// when your object should associate per-instance authorization roles - /// with its properties. - /// - protected virtual void AddInstanceAuthorizationRules() - { - - } - - /// - /// Override this method to add per-type - /// authorization rules for your type's properties. - /// - /// - /// AddAuthorizationRules is automatically called by CSLA .NET - /// when your object should associate per-type authorization roles - /// with its properties. - /// - protected virtual void AddAuthorizationRules() - { - - } - - /// - /// Provides access to the AuthorizationRules object for this - /// object. - /// - /// - /// Use this object to add a list of allowed and denied roles for - /// reading and writing properties of the object. Typically these - /// values are added once when the business object is instantiated. - /// - protected Security.AuthorizationRules AuthorizationRules - { - get - { - if (_authorizationRules == null) - _authorizationRules = new Security.AuthorizationRules(this.GetType()); - return _authorizationRules; - } - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - /// Indicates whether a negative - /// result should cause an exception. - [System.Runtime.CompilerServices.MethodImpl( - System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - public bool CanReadProperty(bool throwOnFalse) - { - string propertyName = - new System.Diagnostics.StackTrace(). - GetFrame(1).GetMethod().Name.Substring(4); - bool result = CanReadProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - String.Format("{0} ({1})", - Resources.PropertyGetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - /// Name of the property to read. - /// Indicates whether a negative - /// result should cause an exception. - public bool CanReadProperty(string propertyName, bool throwOnFalse) - { - bool result = CanReadProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - String.Format("{0} ({1})", - Resources.PropertyGetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - public bool CanReadProperty() - { - string propertyName = - new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - return CanReadProperty(propertyName); - } - - /// - /// Returns if the user is allowed to read the - /// specified property. - /// - /// Name of the property to read. - /// if read is allowed. - /// - /// - /// If a list of allowed roles is provided then only users in those - /// roles can read. If no list of allowed roles is provided then - /// the list of denied roles is checked. - /// - /// If a list of denied roles is provided then users in the denied - /// roles are denied read access. All other users are allowed. - /// - /// If neither a list of allowed nor denied roles is provided then - /// all users will have read access. - /// - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - public virtual bool CanReadProperty(string propertyName) - { - bool result = true; - - VerifyAuthorizationCache(); - - if (_readResultCache.ContainsKey(propertyName)) - { - // cache contains value - get cached value - result = _readResultCache[propertyName]; - } - else - { - if (AuthorizationRules.HasReadAllowedRoles(propertyName)) - { - // some users are explicitly granted read access - // in which case all other users are denied - if (!AuthorizationRules.IsReadAllowed(propertyName)) - result = false; - } - else if (AuthorizationRules.HasReadDeniedRoles(propertyName)) - { - // some users are explicitly denied read access - if (AuthorizationRules.IsReadDenied(propertyName)) - result = false; - } - // store value in cache - _readResultCache[propertyName] = result; - } - return result; - } - - /// - /// Returns if the user is allowed to write the - /// calling property. - /// - /// if write is allowed. - /// Indicates whether a negative - /// result should cause an exception. - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - public bool CanWriteProperty(bool throwOnFalse) - { - string propertyName = new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - bool result = CanWriteProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - String.Format("{0} ({1})", Resources.PropertySetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to write the - /// calling property. - /// - /// if write is allowed. - /// Name of the property to write. - /// Indicates whether a negative - /// result should cause an exception. - public bool CanWriteProperty(string propertyName, bool throwOnFalse) - { - bool result = CanWriteProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - String.Format("{0} ({1})", Resources.PropertySetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to write the - /// calling property. - /// - /// if write is allowed. - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - public bool CanWriteProperty() - { - string propertyName = new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - return CanWriteProperty(propertyName); - } - - /// - /// Returns if the user is allowed to write the - /// specified property. - /// - /// Name of the property to write. - /// if write is allowed. - /// - /// - /// If a list of allowed roles is provided then only users in those - /// roles can write. If no list of allowed roles is provided then - /// the list of denied roles is checked. - /// - /// If a list of denied roles is provided then users in the denied - /// roles are denied write access. All other users are allowed. - /// - /// If neither a list of allowed nor denied roles is provided then - /// all users will have write access. - /// - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - public virtual bool CanWriteProperty(string propertyName) - { - bool result = true; - - VerifyAuthorizationCache(); - - if (_writeResultCache.ContainsKey(propertyName)) - { - // cache contains value - get cached value - result = _writeResultCache[propertyName]; - } - else - { - if (this.AuthorizationRules.HasWriteAllowedRoles(propertyName)) - { - // some users are explicitly granted write access - // in which case all other users are denied - if (!AuthorizationRules.IsWriteAllowed(propertyName)) - result = false; - } - else if (AuthorizationRules.HasWriteDeniedRoles(propertyName)) - { - // some users are explicitly denied write access - if (AuthorizationRules.IsWriteDenied(propertyName)) - result = false; - } - _writeResultCache[propertyName] = result; - } - return result; - } - - private void VerifyAuthorizationCache() - { - if (_readResultCache == null) - _readResultCache = new Dictionary(); - if (_writeResultCache == null) - _writeResultCache = new Dictionary(); - if (!ReferenceEquals(Csla.ApplicationContext.User, _lastPrincipal)) - { - // the principal has changed - reset the cache - _readResultCache.Clear(); - _writeResultCache.Clear(); - _lastPrincipal = Csla.ApplicationContext.User; - } - } - - #endregion - - #region Parent/Child link - - [NotUndoable()] - [NonSerialized()] - private Core.IParent _parent; - - /// - /// Provide access to the parent reference for use - /// in child object code. - /// - /// - /// This value will be Nothing for root objects. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected Core.IParent Parent - { - get { return _parent; } - } - - /// - /// Used by BusinessListBase as a child object is - /// created to tell the child object about its - /// parent. - /// - /// A reference to the parent collection object. - internal void SetParent(Core.IParent parent) - { - _parent = parent; - } - - #endregion - - #region System.ComponentModel.IEditableObject - - [NotUndoable()] - private bool _bindingEdit; - private bool _neverCommitted = true; - - /// - /// Allow data binding to start a nested edit on the object. - /// - /// - /// Data binding may call this method many times. Only the first - /// call should be honored, so we have extra code to detect this - /// and do nothing for subsquent calls. - /// - void System.ComponentModel.IEditableObject.BeginEdit() - { - if (!_bindingEdit) - BeginEdit(); - } - - /// - /// Allow data binding to cancel the current edit. - /// - /// - /// Data binding may call this method many times. Only the first - /// call to either IEditableObject.CancelEdit or - /// IEditableObject.EndEdit - /// should be honored. We include extra code to detect this and do - /// nothing for subsequent calls. - /// - void System.ComponentModel.IEditableObject.CancelEdit() - { - if (_bindingEdit) - { - CancelEdit(); - if (IsNew && _neverCommitted && EditLevel <= EditLevelAdded) - { - // we're new and no EndEdit or ApplyEdit has ever been - // called on us, and now we've been cancelled back to - // where we were added so we should have ourselves - // removed from the parent collection - if (Parent != null) - Parent.RemoveChild(this); - } - } - } - - /// - /// Allow data binding to apply the current edit. - /// - /// - /// Data binding may call this method many times. Only the first - /// call to either IEditableObject.EndEdit or - /// IEditableObject.CancelEdit - /// should be honored. We include extra code to detect this and do - /// nothing for subsequent calls. - /// - void System.ComponentModel.IEditableObject.EndEdit() - { - if (_bindingEdit) - ApplyEdit(); - } - - #endregion - - #region Begin/Cancel/ApplyEdit - - /// - /// Starts a nested edit on the object. - /// - /// - /// - /// When this method is called the object takes a snapshot of - /// its current state (the values of its variables). This snapshot - /// can be restored by calling CancelEdit - /// or committed by calling ApplyEdit. - /// - /// This is a nested operation. Each call to BeginEdit adds a new - /// snapshot of the object's state to a stack. You should ensure that - /// for each call to BeginEdit there is a corresponding call to either - /// CancelEdit or ApplyEdit to remove that snapshot from the stack. - /// - /// See Chapters 2 and 3 for details on n-level undo and state stacking. - /// - /// - public void BeginEdit() - { - _bindingEdit = true; - CopyState(); - } - - /// - /// Cancels the current edit process, restoring the object's state to - /// its previous values. - /// - /// - /// Calling this method causes the most recently taken snapshot of the - /// object's state to be restored. This resets the object's values - /// to the point of the last BeginEdit call. - /// - public void CancelEdit() - { - UndoChanges(); - } - - /// - /// Called when an undo operation has completed. - /// - /// - /// This method resets the object as a result of - /// deserialization and raises PropertyChanged events - /// to notify data binding that the object has changed. - /// - protected override void UndoChangesComplete() - { - _bindingEdit = false; - ValidationRules.SetTarget(this); - AddInstanceBusinessRules(); - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - AddBusinessRules(); - } - } - OnUnknownPropertyChanged(); - base.UndoChangesComplete(); - } - - /// - /// Commits the current edit process. - /// - /// - /// Calling this method causes the most recently taken snapshot of the - /// object's state to be discarded, thus committing any changes made - /// to the object's state since the last BeginEdit call. - /// - public void ApplyEdit() - { - _bindingEdit = false; - _neverCommitted = false; - AcceptChanges(); - } - - /// - /// Notifies the parent object (if any) that this - /// child object's edits have been accepted. - /// - protected override void AcceptChangesComplete() - { - if (Parent != null) - Parent.ApplyEditChild(this); - base.AcceptChangesComplete(); - } - - #endregion - - #region IsChild - - [NotUndoable()] - private bool _isChild; - - /// - /// Returns if this is a child (non-root) object. - /// - protected internal bool IsChild - { - get { return _isChild; } - } - - /// - /// Marks the object as being a child object. - /// - protected void MarkAsChild() - { - _isChild = true; - } - - #endregion - - #region Delete - - /// - /// Marks the object for deletion. The object will be deleted as part of the - /// next save operation. - /// - /// - /// - /// CSLA .NET supports both immediate and deferred deletion of objects. This - /// method is part of the support for deferred deletion, where an object - /// can be marked for deletion, but isn't actually deleted until the object - /// is saved to the database. This method is called by the UI developer to - /// mark the object for deletion. - /// - /// To 'undelete' an object, use n-level undo as discussed in Chapters 2 and 3. - /// - /// - public virtual void Delete() - { - if (this.IsChild) - throw new NotSupportedException(Resources.ChildDeleteException); - - MarkDeleted(); - } - - /// - /// Called by a parent object to mark the child - /// for deferred deletion. - /// - internal void DeleteChild() - { - if (!this.IsChild) - throw new NotSupportedException(Resources.NoDeleteRootException); - - MarkDeleted(); - } - - #endregion - - #region Edit Level Tracking (child only) - - // we need to keep track of the edit - // level when we weere added so if the user - // cancels below that level we can be destroyed - private int _editLevelAdded; - - /// - /// Gets or sets the current edit level of the - /// object. - /// - /// - /// Allow the collection object to use the - /// edit level as needed. - /// - internal int EditLevelAdded - { - get { return _editLevelAdded; } - set { _editLevelAdded = value; } - } - - int IEditableBusinessObject.EditLevel - { - get - { - return this.EditLevel; - } - } - - #endregion - - #region ICloneable - - object ICloneable.Clone() - { - return GetClone(); - } - - /// - /// Creates a clone of the object. - /// - /// - /// A new object containing the exact data of the original object. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual object GetClone() - { - return ObjectCloner.Clone(this); - } - - #endregion - - #region ValidationRules, IsValid - - private Validation.ValidationRules _validationRules; - - /// - /// Provides access to the broken rules functionality. - /// - /// - /// This property is used within your business logic so you can - /// easily call the AddRule() method to associate validation - /// rules with your object's properties. - /// - protected Validation.ValidationRules ValidationRules - { - get - { - if (_validationRules == null) - _validationRules = new Csla.Validation.ValidationRules(this); - return _validationRules; - } - } - - /// - /// Override this method in your business class to - /// be notified when you need to set up business - /// rules. - /// - /// - /// This method is automatically called by CSLA .NET - /// when your object should associate per-instance - /// validation rules with its properties. - /// - protected virtual void AddInstanceBusinessRules() - { - - } - - /// - /// Override this method in your business class to - /// be notified when you need to set up shared - /// business rules. - /// - /// - /// This method is automatically called by CSLA .NET - /// when your object should associate per-type - /// validation rules with its properties. - /// - protected virtual void AddBusinessRules() - { - - } - - /// - /// Returns if the object is currently valid, if the - /// object has broken rules or is otherwise invalid. - /// - /// - /// - /// By default this property relies on the underling ValidationRules - /// object to track whether any business rules are currently broken for this object. - /// - /// You can override this property to provide more sophisticated - /// implementations of the behavior. For instance, you should always override - /// this method if your object has child objects, since the validity of this object - /// is affected by the validity of all child objects. - /// - /// - /// A value indicating if the object is currently valid. - [Browsable(false)] - public virtual bool IsValid - { - get { return ValidationRules.IsValid; } - } - - - /// - /// Provides access to the readonly collection of broken business rules - /// for this object. - /// - /// A Csla.Validation.RulesCollection object. - [Browsable(false)] - [EditorBrowsable(EditorBrowsableState.Advanced)] - public virtual Validation.BrokenRulesCollection BrokenRulesCollection - { - get { return ValidationRules.GetBrokenRules(); } - } - - #endregion - - #region Data Access - - /// - /// Override this method to load a new business object with default - /// values from the database. - /// - /// - /// Normally you will overload this method to accept a strongly-typed - /// criteria parameter, rather than overriding the method with a - /// loosely-typed criteria parameter. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Create() - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// - /// Normally you will overload this method to accept a strongly-typed - /// criteria parameter, rather than overriding the method with a - /// loosely-typed criteria parameter. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - /// - /// Override this method to allow insertion of a business - /// object. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Insert() - { - throw new NotSupportedException(Resources.InsertNotSupportedException); - } - - /// - /// Override this method to allow update of a business - /// object. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - /// - /// Override this method to allow deferred deletion of a business object. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_DeleteSelf() - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Override this method to allow immediate deletion of a business object. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_XYZ method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_XYZ method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - #region IDataErrorInfo - - string IDataErrorInfo.Error - { - get - { - if (!IsValid) - return ValidationRules.GetBrokenRules().ToString( - Csla.Validation.RuleSeverity.Error); - else - return String.Empty; - } - } - - string IDataErrorInfo.this[string columnName] - { - get - { - string result = string.Empty; - if (!IsValid) - { - Validation.BrokenRule rule = - ValidationRules.GetBrokenRules().GetFirstBrokenRule(columnName); - if (rule != null) - result = rule.Description; - } - return result; - } - } - - #endregion - - #region Serialization Notification - - [OnDeserialized()] - private void OnDeserializedHandler(StreamingContext context) - { - OnDeserialized(context); - ValidationRules.SetTarget(this); - AddInstanceBusinessRules(); - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Validation.SharedValidationRules.RulesExistFor(this.GetType())) - AddBusinessRules(); - } - } - AddInstanceAuthorizationRules(); - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - AddAuthorizationRules(); - } - } - } - - /// - /// This method is called on a newly deserialized object - /// after deserialization is complete. - /// - /// Serialization context object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnDeserialized(StreamingContext context) - { - // do nothing - this is here so a subclass - // could override if needed - } - - #endregion - - #region IEditableBusinessObject Members - - int IEditableBusinessObject.EditLevelAdded - { - get - { - return this.EditLevelAdded; - } - set - { - this.EditLevelAdded = value; - } - } - - void IEditableBusinessObject.DeleteChild() - { - this.DeleteChild(); - } - - void IEditableBusinessObject.SetParent(IParent parent) - { - this.SetParent(parent); - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ExtendedBindingList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ExtendedBindingList.cs deleted file mode 100644 index 69e3ff5c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ExtendedBindingList.cs +++ /dev/null @@ -1,85 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.ComponentModel; - -namespace Csla.Core -{ - /// - /// Extends BindingList of T by adding extra - /// events. - /// - /// Type of item contained in list. - [Serializable] - public class ExtendedBindingList : BindingList, IExtendedBindingList - { - #region RemovingItem event - - [NonSerialized()] - private EventHandler _nonSerializableHandlers; - private EventHandler _serializableHandlers; - - /// - /// Implements a serialization-safe RemovingItem event. - /// - public event EventHandler RemovingItem - { - add - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableHandlers = (EventHandler) - System.Delegate.Combine(_serializableHandlers, value); - else - _nonSerializableHandlers = (EventHandler) - System.Delegate.Combine(_nonSerializableHandlers, value); - } - remove - { - if (value.Method.IsPublic && - (value.Method.DeclaringType.IsSerializable || - value.Method.IsStatic)) - _serializableHandlers = (EventHandler) - System.Delegate.Remove(_serializableHandlers, value); - else - _nonSerializableHandlers = (EventHandler) - System.Delegate.Remove(_nonSerializableHandlers, value); - } - } - - /// - /// Raise the RemovingItem event. - /// - /// - /// A reference to the item that - /// is being removed. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected void OnRemovingItem(T removedItem) - { - if (_nonSerializableHandlers != null) - _nonSerializableHandlers.Invoke(this, - new RemovingItemEventArgs(removedItem)); - if (_serializableHandlers != null) - _serializableHandlers.Invoke(this, - new RemovingItemEventArgs(removedItem)); - } - - #endregion - - /// - /// Remove the item at the - /// specified index. - /// - /// - /// The zero-based index of the item - /// to remove. - /// - protected override void RemoveItem(int index) - { - OnRemovingItem(this[index]); - base.RemoveItem(index); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IBusinessObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IBusinessObject.cs deleted file mode 100644 index 85d34d50..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IBusinessObject.cs +++ /dev/null @@ -1,10 +0,0 @@ -namespace Csla.Core -{ - /// - /// This is the core interface implemented - /// by all CSLA .NET base classes. - /// - public interface IBusinessObject - { - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ICommandObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ICommandObject.cs deleted file mode 100644 index a18f0538..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ICommandObject.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// This interface is implemented by all - /// Command objects. - /// - interface ICommandObject : IBusinessObject - { - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableBusinessObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableBusinessObject.cs deleted file mode 100644 index 3416574c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableBusinessObject.cs +++ /dev/null @@ -1,126 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Defines the common methods required by all - /// editable CSLA single objects. - /// - /// - /// It is strongly recommended that the implementations - /// of the methods in this interface be made Private - /// so as to not clutter up the native interface of - /// the collection objects. - /// - public interface IEditableBusinessObject : IUndoableObject - { - /// - /// Returns if this object's data has been changed. - /// - /// - /// - /// When an object's data is changed, CSLA .NET makes note of that change - /// and considers the object to be 'dirty' or changed. This value is used to - /// optimize data updates, since an unchanged object does not need to be - /// updated into the database. All new objects are considered dirty. All objects - /// marked for deletion are considered dirty. - /// - /// Once an object's data has been saved to the database (inserted or updated) - /// the dirty flag is cleared and the object is considered unchanged. Objects - /// newly loaded from the database are also considered unchanged. - /// - /// - /// A value indicating if this object's data has been changed. - bool IsDirty { get;} - /// - /// Returns if the object is currently valid, if the - /// object has broken rules or is otherwise invalid. - /// - /// - /// - /// By default this property relies on the underling ValidationRules - /// object to track whether any business rules are currently broken for this object. - /// - /// You can override this property to provide more sophisticated - /// implementations of the behavior. For instance, you should always override - /// this method if your object has child objects, since the validity of this object - /// is affected by the validity of all child objects. - /// - /// - /// A value indicating if the object is currently valid. - bool IsValid { get;} - /// - /// Returns if this object is marked for deletion. - /// - /// - /// CSLA .NET supports both immediate and deferred deletion of objects. This - /// property is part of the support for deferred deletion, where an object - /// can be marked for deletion, but isn't actually deleted until the object - /// is saved to the database. This property indicates whether or not the - /// current object has been marked for deletion. If it is - /// , the object will - /// be deleted when it is saved to the database, otherwise it will be inserted - /// or updated by the save operation. - /// - /// A value indicating if this object is marked for deletion. - bool IsDeleted { get;} - /// - /// Returns if this is a new object, - /// if it is a pre-existing object. - /// - /// - /// An object is considered to be new if its primary identifying (key) value - /// doesn't correspond to data in the database. In other words, - /// if the data values in this particular - /// object have not yet been saved to the database the object is considered to - /// be new. Likewise, if the object's data has been deleted from the database - /// then the object is considered to be new. - /// - /// A value indicating if this object is new. - bool IsNew { get;} - /// - /// Returns if this object is both dirty and valid. - /// - /// - /// An object is considered dirty (changed) if - /// returns . It is - /// considered valid if IsValid - /// returns . The IsSavable property is - /// a combination of these two properties. - /// - /// A value indicating if this object is both dirty and valid. - bool IsSavable { get;} - /// - /// For internal use only!! - /// - /// - /// Altering this value will almost certainly - /// break your code. This property is for use - /// by the parent collection only! - /// - int EditLevelAdded { get; set;} - /// - /// Gets the current edit level of the object. - /// - int EditLevel { get; } - /// - /// Called by a parent object to mark the child - /// for deferred deletion. - /// - void DeleteChild(); - /// - /// Used by BusinessListBase as a child object is - /// created to tell the child object about its - /// parent. - /// - /// A reference to the parent collection object. - void SetParent(IParent parent); - /// - /// Marks the object for deletion. The object will be deleted as part of the - /// next save operation. - /// - void Delete(); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableCollection.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableCollection.cs deleted file mode 100644 index 8bf76611..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IEditableCollection.cs +++ /dev/null @@ -1,24 +0,0 @@ -namespace Csla.Core -{ - /// - /// Defines the common methods required by all - /// editable CSLA collection objects. - /// - /// - /// It is strongly recommended that the implementations - /// of the methods in this interface be made Private - /// so as to not clutter up the native interface of - /// the collection objects. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", - "CA1711:IdentifiersShouldNotHaveIncorrectSuffix")] - public interface IEditableCollection : IUndoableObject - { - /// - /// Removes the specified child from the parent - /// collection. - /// - /// Child object to be removed. - void RemoveChild(Core.IEditableBusinessObject child); - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IExtendedBindingList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IExtendedBindingList.cs deleted file mode 100644 index d769538a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IExtendedBindingList.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; -using System.ComponentModel; - -namespace Csla.Core -{ - /// - /// Extends by adding extra - /// events. - /// - public interface IExtendedBindingList : IBindingList - { - /// - /// Event indicating that an item is being - /// removed from the list. - /// - event EventHandler RemovingItem; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IParent.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IParent.cs deleted file mode 100644 index f8963982..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IParent.cs +++ /dev/null @@ -1,26 +0,0 @@ -using System; - -namespace Csla.Core -{ - /// - /// Defines the interface that must be implemented - /// by any business object that contains child - /// objects. - /// - public interface IParent - { - /// - /// This method is called by a child object when it - /// wants to be removed from the collection. - /// - /// The child object to remove. - void RemoveChild(Core.IEditableBusinessObject child); - /// - /// Override this method to be notified when a child object's - /// method has - /// completed. - /// - /// The child object that was edited. - void ApplyEditChild(Core.IEditableBusinessObject child); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyCollection.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyCollection.cs deleted file mode 100644 index ca9e0e55..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyCollection.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Interface implemented by all read-only collection - /// classes. - /// - public interface IReadOnlyCollection : IBusinessObject - { - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyObject.cs deleted file mode 100644 index a4d2b606..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReadOnlyObject.cs +++ /dev/null @@ -1,16 +0,0 @@ -namespace Csla.Core -{ - /// - /// Specifies that the object is a readonly - /// business object. - /// - public interface IReadOnlyObject : IBusinessObject - { - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// Name of the property to read. - bool CanReadProperty(string propertyName); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReportTotalRowCount.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReportTotalRowCount.cs deleted file mode 100644 index c88a15a8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IReportTotalRowCount.cs +++ /dev/null @@ -1,31 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Implement this interface in a collection - /// to report a total row count to - /// , where that - /// row count is different from the collection's - /// normal Count property value. - /// - /// - /// This interface is used to provide paging - /// support for web data binding through - /// . You should - /// implement this interface in your business - /// collection class, along with windowed - /// data loading, to provide efficient paging - /// support. - /// - public interface IReportTotalRowCount - { - /// - /// The total number of rows of available - /// data. - /// - int TotalRowCount { get;} - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ISavable.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ISavable.cs deleted file mode 100644 index fe29a438..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ISavable.cs +++ /dev/null @@ -1,23 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Specifies that the object can save - /// itself. - /// - public interface ISavable - { - /// - /// Saves the object to the database. - /// - /// A new object containing the saved values. - object Save(); - /// - /// Event raised when an object has been saved. - /// - event EventHandler Saved; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IUndoableObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IUndoableObject.cs deleted file mode 100644 index ce7c6588..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/IUndoableObject.cs +++ /dev/null @@ -1,40 +0,0 @@ -namespace Csla.Core -{ - /// - /// Defines the methods required to participate - /// in n-level undo within the CSLA .NET framework. - /// - /// - /// This interface is used by Csla.Core.UndoableBase - /// to initiate begin, cancel and apply edit operations. - /// - public interface IUndoableObject : IBusinessObject - { - /// - /// Copies the state of the object and places the copy - /// onto the state stack. - /// - void CopyState(); - /// - /// Restores the object's state to the most recently - /// copied values from the state stack. - /// - /// - /// Restores the state of the object to its - /// previous value by taking the data out of - /// the stack and restoring it into the fields - /// of the object. - /// - void UndoChanges(); - /// - /// Accepts any changes made to the object since the last - /// state copy was made. - /// - /// - /// The most recent state copy is removed from the state - /// stack and discarded, thus committing any changes made - /// to the object's state. - /// - void AcceptChanges(); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ObjectCloner.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ObjectCloner.cs deleted file mode 100644 index 398d5611..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ObjectCloner.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; - -namespace Csla.Core -{ - internal static class ObjectCloner - { - /// - /// Clones an object by using the - /// . - /// - /// The object to clone. - /// - /// The object to be cloned must be serializable. - /// - public static object Clone(object obj) - { - using (MemoryStream buffer = new MemoryStream()) - { - BinaryFormatter formatter = new BinaryFormatter(); - formatter.Serialize(buffer, obj); - buffer.Position = 0; - object temp = formatter.Deserialize(buffer); - return temp; - } - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ReadOnlyBindingList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ReadOnlyBindingList.cs deleted file mode 100644 index fb506e3f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/ReadOnlyBindingList.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System; -using Csla.Properties; - -namespace Csla.Core -{ - /// - /// A readonly version of BindingList(Of T) - /// - /// Type of item contained in the list. - /// - /// This is a subclass of BindingList(Of T) that implements - /// a readonly list, preventing adding and removing of items - /// from the list. Use the IsReadOnly property - /// to unlock the list for loading/unloading data. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", - "CA1710:IdentifiersShouldHaveCorrectSuffix")] - [Serializable()] - public abstract class ReadOnlyBindingList : - Core.ExtendedBindingList, Core.IBusinessObject - { - private bool _isReadOnly = true; - - /// - /// Gets or sets a value indicating whether the list is readonly. - /// - /// - /// Subclasses can set this value to unlock the collection - /// in order to alter the collection's data. - /// - /// True indicates that the list is readonly. - public bool IsReadOnly - { - get { return _isReadOnly; } - protected set { _isReadOnly = value; } - } - - /// - /// Creates an instance of the object. - /// - protected ReadOnlyBindingList() - { - this.RaiseListChangedEvents = false; - AllowEdit = false; - AllowRemove = false; - AllowNew = false; - this.RaiseListChangedEvents = true; - } - - /// - /// Prevents clearing the collection. - /// - protected override void ClearItems() - { - if (!IsReadOnly) - { - bool oldValue = AllowRemove; - AllowRemove = true; - base.ClearItems(); - AllowRemove = oldValue; - } - else - throw new NotSupportedException(Resources.ClearInvalidException); - } - - /// - /// Prevents insertion of items into the collection. - /// - protected override object AddNewCore() - { - if (!IsReadOnly) - return base.AddNewCore(); - else - throw new NotSupportedException(Resources.InsertInvalidException); - } - - /// - /// Prevents insertion of items into the collection. - /// - /// Index at which to insert the item. - /// Item to insert. - protected override void InsertItem(int index, C item) - { - if (!IsReadOnly) - base.InsertItem(index, item); - else - throw new NotSupportedException(Resources.InsertInvalidException); - } - - /// - /// Removes the item at the specified index if the collection is - /// not in readonly mode. - /// - /// Index of the item to remove. - protected override void RemoveItem(int index) - { - if (!IsReadOnly) - { - bool oldValue = AllowRemove; - AllowRemove = true; - base.RemoveItem(index); - AllowRemove = oldValue; - } - else - throw new NotSupportedException(Resources.RemoveInvalidException); - } - - /// - /// Replaces the item at the specified index with the - /// specified item if the collection is not in - /// readonly mode. - /// - /// Index of the item to replace. - /// New item for the list. - protected override void SetItem(int index, C item) - { - if (!IsReadOnly) - base.SetItem(index, item); - else - throw new NotSupportedException(Resources.ChangeInvalidException); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/RemovingItemEventArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/RemovingItemEventArgs.cs deleted file mode 100644 index 497bcb90..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/RemovingItemEventArgs.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Contains event data for the RemovingItem - /// event. - /// - public class RemovingItemEventArgs : EventArgs - { - private object _removingItem; - - /// - /// Gets a reference to the item that was - /// removed from the list. - /// - public object RemovingItem - { - get { return _removingItem; } - } - - /// - /// Create an instance of the object. - /// - /// - /// A reference to the item that was - /// removed from the list. - /// - public RemovingItemEventArgs(object removingItem) - { - _removingItem = removingItem; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/SavedEventArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/SavedEventArgs.cs deleted file mode 100644 index e3898611..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/SavedEventArgs.cs +++ /dev/null @@ -1,36 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Core -{ - /// - /// Event arguments containing a reference - /// to the new object that was returned - /// as a result of the Save() operation. - /// - public class SavedEventArgs : EventArgs - { - private object _newObject; - /// - /// Gets the object that was returned - /// as a result of the Save() operation. - /// - public object NewObject - { - get { return _newObject; } - } - - /// - /// Creates an instance of the object. - /// - /// - /// The object that was returned as a - /// result of the Save() operation. - /// - public SavedEventArgs(object newObject) - { - _newObject = newObject; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/UndoableBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/UndoableBase.cs deleted file mode 100644 index bc3ff61a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Core/UndoableBase.cs +++ /dev/null @@ -1,296 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Specialized; -using System.Collections.Generic; -using System.Reflection; -using System.IO; -using System.Runtime.Serialization; -using System.Runtime.Serialization.Formatters.Binary; -using System.ComponentModel; - -namespace Csla.Core -{ - /// - /// Implements n-level undo capabilities as - /// described in Chapters 2 and 3. - /// - [Serializable()] - public abstract class UndoableBase : Csla.Core.BindableBase, Csla.Core.IUndoableObject - { - // keep a stack of object state values. - [NotUndoable()] - private Stack _stateStack = new Stack(); - - /// - /// Creates an instance of the object. - /// - protected UndoableBase() - { - - } - - /// - /// Returns the current edit level of the object. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - protected int EditLevel - { - get { return _stateStack.Count; } - } - - void IUndoableObject.CopyState() - { - CopyState(); - } - - void IUndoableObject.UndoChanges() - { - UndoChanges(); - } - - void IUndoableObject.AcceptChanges() - { - AcceptChanges(); - } - - /// - /// This method is invoked after the CopyState - /// operation is complete. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void CopyStateComplete() - { - } - - /// - /// Copies the state of the object and places the copy - /// onto the state stack. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - protected internal void CopyState() - { - Type currentType = this.GetType(); - HybridDictionary state = new HybridDictionary(); - FieldInfo[] fields; - - do - { - // get the list of fields in this type - fields = currentType.GetFields( - BindingFlags.NonPublic | - BindingFlags.Instance | - BindingFlags.Public); - - foreach (FieldInfo field in fields) - { - // make sure we process only our variables - if (field.DeclaringType == currentType) - { - // see if this field is marked as not undoable - if (!NotUndoableField(field)) - { - // the field is undoable, so it needs to be processed. - object value = field.GetValue(this); - - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(field.FieldType)) - { - // make sure the variable has a value - if (value == null) - { - // variable has no value - store that fact - state.Add(GetFieldName(field), null); - } - else - { - // this is a child object, cascade the call - ((Core.IUndoableObject)value).CopyState(); - } - } - else - { - // this is a normal field, simply trap the value - state.Add(GetFieldName(field), value); - } - } - } - } - currentType = currentType.BaseType; - } while (currentType != typeof(UndoableBase)); - - // serialize the state and stack it - using (MemoryStream buffer = new MemoryStream()) - { - BinaryFormatter formatter = new BinaryFormatter(); - formatter.Serialize(buffer, state); - _stateStack.Push(buffer.ToArray()); - } - CopyStateComplete(); - } - - /// - /// This method is invoked after the UndoChanges - /// operation is complete. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void UndoChangesComplete() - { - } - - /// - /// Restores the object's state to the most recently - /// copied values from the state stack. - /// - /// - /// Restores the state of the object to its - /// previous value by taking the data out of - /// the stack and restoring it into the fields - /// of the object. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - protected internal void UndoChanges() - { - // if we are a child object we might be asked to - // undo below the level where stacked states, - // so just do nothing in that case - if (EditLevel > 0) - { - HybridDictionary state; - using (MemoryStream buffer = new MemoryStream(_stateStack.Pop())) - { - buffer.Position = 0; - BinaryFormatter formatter = new BinaryFormatter(); - state = (HybridDictionary)formatter.Deserialize(buffer); - } - - Type currentType = this.GetType(); - FieldInfo[] fields; - - do - { - // get the list of fields in this type - fields = currentType.GetFields( - BindingFlags.NonPublic | - BindingFlags.Instance | - BindingFlags.Public); - foreach (FieldInfo field in fields) - { - // make sure we process only our variables - if (field.DeclaringType == currentType) - { - // see if the field is undoable or not - if (!NotUndoableField(field)) - { - // the field is undoable, so restore its value - object value = field.GetValue(this); - - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(field.FieldType)) - { - // this is a child object - // see if the previous value was empty - if (state.Contains(GetFieldName(field))) - { - // previous value was empty - restore to empty - field.SetValue(this, null); - } - else - { - // make sure the variable has a value - if (value != null) - { - // this is a child object, cascade the call. - ((Core.IUndoableObject)value).UndoChanges(); - } - } - } - else - { - // this is a regular field, restore its value - field.SetValue(this, state[GetFieldName(field)]); - } - } - } - } - currentType = currentType.BaseType; - } while (currentType != typeof(UndoableBase)); - } - UndoChangesComplete(); - } - - /// - /// This method is invoked after the AcceptChanges - /// operation is complete. - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void AcceptChangesComplete() - { - } - - /// - /// Accepts any changes made to the object since the last - /// state copy was made. - /// - /// - /// The most recent state copy is removed from the state - /// stack and discarded, thus committing any changes made - /// to the object's state. - /// - [EditorBrowsable(EditorBrowsableState.Never)] - protected internal void AcceptChanges() - { - if (EditLevel > 0) - { - _stateStack.Pop(); - Type currentType = this.GetType(); - FieldInfo[] fields; - - do - { - // get the list of fields in this type - fields = currentType.GetFields( - BindingFlags.NonPublic | - BindingFlags.Instance | - BindingFlags.Public); - foreach (FieldInfo field in fields) - { - // make sure we process only our variables - if (field.DeclaringType == currentType) - { - // see if the field is undoable or not - if (!NotUndoableField(field)) - { - // the field is undoable so see if it is a child object - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(field.FieldType)) - { - object value = field.GetValue(this); - // make sure the variable has a value - if (value != null) - { - // it is a child object so cascade the call - ((Core.IUndoableObject)value).AcceptChanges(); - } - } - } - } - } - currentType = currentType.BaseType; - } while (currentType != typeof(UndoableBase)); - } - AcceptChangesComplete(); - } - - #region Helper Functions - - private static bool NotUndoableField(FieldInfo field) - { - return Attribute.IsDefined(field, typeof(NotUndoableAttribute)); - } - - private static string GetFieldName(FieldInfo field) - { - return field.DeclaringType.Name + "!" + field.Name; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Csla.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Csla.csproj deleted file mode 100644 index b5d150be..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Csla.csproj +++ /dev/null @@ -1,293 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {9DA591ED-C570-47AC-8E5D-35B039E07973} - Library - Properties - Csla - Csla - true - CslaKey.snk - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - false - bin\Debug\Csla.XML - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Component - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - Resources.resx - - - True - True - Settings.settings - - - - - - - - - - - - - - - - - - - - - - - - - - - - True - True - Reference.map - - - - - - Form - - - CslaDataSourceConfiguration.cs - - - - - - - - - - - Component - - - Component - - - - - - - - - - - - - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - ResXFileCodeGenerator - Resources.Designer.cs - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - - - Designer - CslaDataSourceConfiguration.cs - - - - - - - - Dynamic - Web References\WebServiceHost\ - http://localhost:4804/WSPortalcs/Service.asmx - - - - - Settings - Csla_WebServiceHost_WebServicePortal - - - - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - MSDiscoCodeGenerator - Reference.cs - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CslaKey.snk b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CslaKey.snk deleted file mode 100644 index a67ad193..00000000 Binary files a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/CslaKey.snk and /dev/null differ diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/DataMapper.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/DataMapper.cs deleted file mode 100644 index 468f5e17..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/DataMapper.cs +++ /dev/null @@ -1,230 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using System.ComponentModel; -using Csla.Properties; - -namespace Csla.Data -{ - /// - /// Map data from a source into a target object - /// by copying public property values. - /// - /// - public static class DataMapper - { - - #region Map from IDictionary - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// A name/value dictionary containing the source values. - /// An object with properties to be set from the dictionary. - /// - /// The key names in the dictionary must match the property names on the target - /// object. Target properties may not be readonly or indexed. - /// - public static void Map(System.Collections.IDictionary source, object target) - { - Map(source, target, false); - } - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// A name/value dictionary containing the source values. - /// An object with properties to be set from the dictionary. - /// A list of property names to ignore. - /// These properties will not be set on the target object. - /// - /// The key names in the dictionary must match the property names on the target - /// object. Target properties may not be readonly or indexed. - /// - public static void Map(System.Collections.IDictionary source, object target, params string[] ignoreList) - { - Map(source, target, false, ignoreList); - } - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// A name/value dictionary containing the source values. - /// An object with properties to be set from the dictionary. - /// A list of property names to ignore. - /// These properties will not be set on the target object. - /// If , any exceptions will be supressed. - /// - /// The key names in the dictionary must match the property names on the target - /// object. Target properties may not be readonly or indexed. - /// - public static void Map( - System.Collections.IDictionary source, - object target, bool suppressExceptions, - params string[] ignoreList) - { - List ignore = new List(ignoreList); - foreach (string propertyName in source.Keys) - { - if (!ignore.Contains(propertyName)) - { - try - { - SetPropertyValue(target, propertyName, source[propertyName]); - } - catch (Exception ex) - { - if (!suppressExceptions) - throw new ArgumentException( - String.Format("{0} ({1})", - Resources.PropertyCopyFailed, propertyName), ex); - } - } - } - } - - #endregion - - #region Map from Object - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// An object containing the source values. - /// An object with properties to be set from the dictionary. - /// - /// The property names and types of the source object must match the property names and types - /// on the target object. Source properties may not be indexed. - /// Target properties may not be readonly or indexed. - /// - public static void Map(object source, object target) - { - Map(source, target, false); - } - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// An object containing the source values. - /// An object with properties to be set from the dictionary. - /// A list of property names to ignore. - /// These properties will not be set on the target object. - /// - /// The property names and types of the source object must match the property names and types - /// on the target object. Source properties may not be indexed. - /// Target properties may not be readonly or indexed. - /// - public static void Map(object source, object target, params string[] ignoreList) - { - Map(source, target, false, ignoreList); - } - - /// - /// Copies values from the source into the - /// properties of the target. - /// - /// An object containing the source values. - /// An object with properties to be set from the dictionary. - /// A list of property names to ignore. - /// These properties will not be set on the target object. - /// If , any exceptions will be supressed. - /// - /// - /// The property names and types of the source object must match the property names and types - /// on the target object. Source properties may not be indexed. - /// Target properties may not be readonly or indexed. - /// - /// Properties to copy are determined based on the source object. Any properties - /// on the source object marked with the equal - /// to false are ignored. - /// - /// - public static void Map( - object source, object target, - bool suppressExceptions, - params string[] ignoreList) - { - List ignore = new List(ignoreList); - PropertyInfo[] sourceProperties = - GetSourceProperties(source.GetType()); - foreach (PropertyInfo sourceProperty in sourceProperties) - { - string propertyName = sourceProperty.Name; - if (!ignore.Contains(propertyName)) - { - try - { - SetPropertyValue( - target, propertyName, - sourceProperty.GetValue(source, null)); - } - catch (Exception ex) - { - if (!suppressExceptions) - throw new ArgumentException( - String.Format("{0} ({1})", - Resources.PropertyCopyFailed, propertyName), ex); - } - } - } - } - - private static PropertyInfo[] GetSourceProperties(Type sourceType) - { - List result = new List(); - PropertyDescriptorCollection props = - TypeDescriptor.GetProperties(sourceType); - foreach (PropertyDescriptor item in props) - if (item.IsBrowsable) - result.Add(sourceType.GetProperty(item.Name)); - return result.ToArray(); - } - - #endregion - - /// - /// Sets an object's property with the specified value, - /// coercing that value to the appropriate type if possible. - /// - /// Object containing the property to set. - /// Name of the property to set. - /// Value to set into the property. - public static void SetPropertyValue( - object target, string propertyName, object value) - { - PropertyInfo propertyInfo = - target.GetType().GetProperty(propertyName); - if (value == null) - propertyInfo.SetValue(target, value, null); - else - { - Type pType = - Utilities.GetPropertyType(propertyInfo.PropertyType); - Type vType = - Utilities.GetPropertyType(value.GetType()); - if (pType.Equals(vType)) - { - // types match, just copy value - propertyInfo.SetValue(target, value, null); - } - else - { - // types don't match, try to coerce - if (pType.Equals(typeof(Guid))) - propertyInfo.SetValue( - target, new Guid(value.ToString()), null); - else if (pType.IsEnum && vType.Equals(typeof(string))) - propertyInfo.SetValue(target, Enum.Parse(pType, value.ToString()), null); - else - propertyInfo.SetValue( - target, Convert.ChangeType(value, pType), null); - } - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/ObjectAdapter.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/ObjectAdapter.cs deleted file mode 100644 index 362b2883..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/ObjectAdapter.cs +++ /dev/null @@ -1,267 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Data; -using System.ComponentModel; -using System.Reflection; -using Csla.Properties; - -namespace Csla.Data -{ - - /// - /// An ObjectAdapter is used to convert data in an object - /// or collection into a DataTable. - /// - public class ObjectAdapter - { - /// - /// Fills the DataSet with data from an object or collection. - /// - /// - /// The name of the DataTable being filled is will be the class name of - /// the object acting as the data source. The - /// DataTable will be inserted if it doesn't already exist in the DataSet. - /// - /// A reference to the DataSet to be filled. - /// A reference to the object or collection acting as a data source. - public void Fill(DataSet ds, object source) - { - string className = source.GetType().Name; - Fill(ds, className, source); - } - - /// - /// Fills the DataSet with data from an object or collection. - /// - /// - /// The name of the DataTable being filled is specified as a parameter. The - /// DataTable will be inserted if it doesn't already exist in the DataSet. - /// - /// A reference to the DataSet to be filled. - /// - /// A reference to the object or collection acting as a data source. - public void Fill(DataSet ds, string tableName, object source) - { - DataTable dt; - bool exists; - - dt = ds.Tables[tableName]; - exists = (dt != null); - - if (!exists) - dt = new DataTable(tableName); - - Fill(dt, source); - - if (!exists) - ds.Tables.Add(dt); - } - - /// - /// Fills a DataTable with data values from an object or collection. - /// - /// A reference to the DataTable to be filled. - /// A reference to the object or collection acting as a data source. - public void Fill(DataTable dt, object source) - { - if (source == null) - throw new ArgumentException(Resources.NothingNotValid); - - // get the list of columns from the source - List columns = GetColumns(source); - if (columns.Count < 1) return; - - // create columns in DataTable if needed - foreach (string column in columns) - if (!dt.Columns.Contains(column)) - dt.Columns.Add(column); - - // get an IList and copy the data - CopyData(dt, GetIList(source), columns); - } - - #region DataCopyIList - - private IList GetIList(object source) - { - if (source is IListSource) - return ((IListSource)source).GetList(); - else if (source is IList) - return source as IList; - else - { - // this is a regular object - create a list - ArrayList col = new ArrayList(); - col.Add(source); - return col; - } - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")] - private void CopyData( - DataTable dt, IList ds, List columns) - { - // load the data into the DataTable - dt.BeginLoadData(); - for (int index = 0; index < ds.Count; index++) - { - DataRow dr = dt.NewRow(); - foreach (string column in columns) - { - try - { - dr[column] = GetField(ds[index], column); - } - catch (Exception ex) - { - dr[column] = ex.Message; - } - } - dt.Rows.Add(dr); - } - dt.EndLoadData(); - } - - #endregion - - #region GetColumns - - private List GetColumns(object source) - { - List result; - // first handle DataSet/DataTable - object innerSource; - IListSource iListSource = source as IListSource; - if (iListSource != null) - innerSource = iListSource.GetList(); - else - innerSource = source; - - DataView dataView = innerSource as DataView; - if (dataView != null) - result = ScanDataView(dataView); - else - { - // now handle lists/arrays/collections - IEnumerable iEnumerable = innerSource as IEnumerable; - if (iEnumerable != null) - { - Type childType = Utilities.GetChildItemType( - innerSource.GetType()); - result = ScanObject(childType); - } - else - { - // the source is a regular object - result = ScanObject(innerSource.GetType()); - } - } - return result; - } - - private List ScanDataView(DataView ds) - { - List result = new List(); - for (int field = 0; field < ds.Table.Columns.Count; field++) - result.Add(ds.Table.Columns[field].ColumnName); - return result; - } - - private List ScanObject(Type sourceType) - { - List result = new List(); - - if (sourceType != null) - { - // retrieve a list of all public properties - PropertyInfo[] props = sourceType.GetProperties(); - if (props.Length >= 0) - for (int column = 0; column < props.Length; column++) - if (props[column].CanRead) - result.Add(props[column].Name); - - // retrieve a list of all public fields - FieldInfo[] fields = sourceType.GetFields(); - if (fields.Length >= 0) - for (int column = 0; column < fields.Length; column++) - result.Add(fields[column].Name); - } - return result; - } - - #endregion - - #region GetField - - private static string GetField(object obj, string fieldName) - { - string result; - DataRowView dataRowView = obj as DataRowView; - if (dataRowView != null) - { - // this is a DataRowView from a DataView - result = dataRowView[fieldName].ToString(); - } - else if (obj is ValueType && obj.GetType().IsPrimitive) - { - // this is a primitive value type - result = obj.ToString(); - } - else - { - string tmp = obj as string; - if (tmp != null) - { - // this is a simple string - result = (string)obj; - } - else - { - // this is an object or Structure - try - { - Type sourceType = obj.GetType(); - - // see if the field is a property - PropertyInfo prop = sourceType.GetProperty(fieldName); - - if ((prop == null) || (!prop.CanRead)) - { - // no readable property of that name exists - - // check for a field - FieldInfo field = sourceType.GetField(fieldName); - if (field == null) - { - // no field exists either, throw an exception - throw new DataException( - Resources.NoSuchValueExistsException + - " " + fieldName); - } - else - { - // got a field, return its value - result = field.GetValue(obj).ToString(); - } - } - else - { - // found a property, return its value - result = prop.GetValue(obj, null).ToString(); - } - } - catch (Exception ex) - { - throw new DataException( - Resources.ErrorReadingValueException + - " " + fieldName, ex); - } - } - } - return result; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/SafeDataReader.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/SafeDataReader.cs deleted file mode 100644 index 7eea0605..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Data/SafeDataReader.cs +++ /dev/null @@ -1,761 +0,0 @@ -using System; -using System.Data; - -namespace Csla.Data -{ - /// - /// This is a DataReader that 'fixes' any null values before - /// they are returned to our business code. - /// - public class SafeDataReader : IDataReader - { - private IDataReader _dataReader; - - /// - /// Get a reference to the underlying data reader - /// object that actually contains the data from - /// the data source. - /// - protected IDataReader DataReader - { - get { return _dataReader; } - } - - /// - /// Initializes the SafeDataReader object to use data from - /// the provided DataReader object. - /// - /// The source DataReader object containing the data. - public SafeDataReader(IDataReader dataReader) - { - _dataReader = dataReader; - } - - /// - /// Gets a string value from the datareader. - /// - /// - /// Returns empty string for null. - /// - /// Name of the column containing the value. - public string GetString(string name) - { - return GetString(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a string value from the datareader. - /// - /// - /// Returns empty string for null. - /// - /// Ordinal column position of the value. - public virtual string GetString(int i) - { - if (_dataReader.IsDBNull(i)) - return string.Empty; - else - return _dataReader.GetString(i); - } - - - /// - /// Gets a value of type from the datareader. - /// - /// Name of the column containing the value. - public object GetValue(string name) - { - return GetValue(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a value of type from the datareader. - /// - /// Ordinal column position of the value. - public virtual object GetValue(int i) - { - if (_dataReader.IsDBNull(i)) - return null; - else - return _dataReader.GetValue(i); - } - - /// - /// Gets an integer from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public int GetInt32(string name) - { - return GetInt32(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets an integer from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual int GetInt32(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetInt32(i); - } - - /// - /// Gets a double from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public double GetDouble(string name) - { - return GetDouble(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a double from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual double GetDouble(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetDouble(i); - } - - /// - /// Gets a from the datareader. - /// - /// - /// A null is converted into min possible date - /// See Chapter 5 for more details on the SmartDate class. - /// - /// Name of the column containing the value. - public Csla.SmartDate GetSmartDate(string name) - { - return GetSmartDate(_dataReader.GetOrdinal(name), true); - } - - /// - /// Gets a from the datareader. - /// - /// - /// A null is converted into the min possible date - /// See Chapter 5 for more details on the SmartDate class. - /// - /// Ordinal column position of the value. - public virtual Csla.SmartDate GetSmartDate(int i) - { - return GetSmartDate(i, true); - } - - /// - /// Gets a from the datareader. - /// - /// - /// A null is converted into either the min or max possible date - /// depending on the MinIsEmpty parameter. See Chapter 5 for more - /// details on the SmartDate class. - /// - /// Name of the column containing the value. - /// - /// A flag indicating whether the min or max - /// value of a data means an empty date. - public Csla.SmartDate GetSmartDate(string name, bool minIsEmpty) - { - return GetSmartDate(_dataReader.GetOrdinal(name), minIsEmpty); - } - - /// - /// Gets a from the datareader. - /// - /// Ordinal column position of the value. - /// - /// A flag indicating whether the min or max - /// value of a data means an empty date. - public virtual Csla.SmartDate GetSmartDate( - int i, bool minIsEmpty) - { - if (_dataReader.IsDBNull(i)) - return new Csla.SmartDate(minIsEmpty); - else - return new Csla.SmartDate( - _dataReader.GetDateTime(i), minIsEmpty); - } - - /// - /// Gets a Guid value from the datareader. - /// - /// - /// Returns Guid.Empty for null. - /// - /// Name of the column containing the value. - public System.Guid GetGuid(string name) - { - return GetGuid(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a Guid value from the datareader. - /// - /// - /// Returns Guid.Empty for null. - /// - /// Ordinal column position of the value. - public virtual System.Guid GetGuid(int i) - { - if (_dataReader.IsDBNull(i)) - return Guid.Empty; - else - return _dataReader.GetGuid(i); - } - - /// - /// Reads the next row of data from the datareader. - /// - public bool Read() - { - return _dataReader.Read(); - } - - /// - /// Moves to the next result set in the datareader. - /// - public bool NextResult() - { - return _dataReader.NextResult(); - } - - /// - /// Closes the datareader. - /// - public void Close() - { - _dataReader.Close(); - } - - /// - /// Returns the depth property value from the datareader. - /// - public int Depth - { - get - { - return _dataReader.Depth; - } - } - - /// - /// Returns the FieldCount property from the datareader. - /// - public int FieldCount - { - get - { - return _dataReader.FieldCount; - } - } - - /// - /// Gets a boolean value from the datareader. - /// - /// - /// Returns for null. - /// - /// Name of the column containing the value. - public bool GetBoolean(string name) - { - return GetBoolean(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a boolean value from the datareader. - /// - /// - /// Returns for null. - /// - /// Ordinal column position of the value. - public virtual bool GetBoolean(int i) - { - if (_dataReader.IsDBNull(i)) - return false; - else - return _dataReader.GetBoolean(i); - } - - /// - /// Gets a byte value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public byte GetByte(string name) - { - return GetByte(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a byte value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual byte GetByte(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetByte(i); - } - - /// - /// Invokes the GetBytes method of the underlying datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - /// Array containing the data. - /// Offset position within the buffer. - /// Offset position within the field. - /// Length of data to read. - public Int64 GetBytes(string name, Int64 fieldOffset, - byte[] buffer, int bufferOffset, int length) - { - return GetBytes(_dataReader.GetOrdinal(name), fieldOffset, buffer, bufferOffset, length); - } - - /// - /// Invokes the GetBytes method of the underlying datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - /// Array containing the data. - /// Offset position within the buffer. - /// Offset position within the field. - /// Length of data to read. - public virtual Int64 GetBytes(int i, Int64 fieldOffset, - byte[] buffer, int bufferOffset, int length) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetBytes(i, fieldOffset, buffer, bufferOffset, length); - } - - /// - /// Gets a char value from the datareader. - /// - /// - /// Returns Char.MinValue for null. - /// - /// Name of the column containing the value. - public char GetChar(string name) - { - return GetChar(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a char value from the datareader. - /// - /// - /// Returns Char.MinValue for null. - /// - /// Ordinal column position of the value. - public virtual char GetChar(int i) - { - if (_dataReader.IsDBNull(i)) - return char.MinValue; - else - { - char[] myChar = new char[1]; - _dataReader.GetChars(i, 0, myChar, 0, 1); - return myChar[0]; - } - } - - /// - /// Invokes the GetChars method of the underlying datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - /// Array containing the data. - /// Offset position within the buffer. - /// Offset position within the field. - /// Length of data to read. - public Int64 GetChars(string name, Int64 fieldOffset, - char[] buffer, int bufferOffset, int length) - { - return GetChars(_dataReader.GetOrdinal(name), fieldOffset, buffer, bufferOffset, length); - } - - /// - /// Invokes the GetChars method of the underlying datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - /// Array containing the data. - /// Offset position within the buffer. - /// Offset position within the field. - /// Length of data to read. - public virtual Int64 GetChars(int i, Int64 fieldOffset, - char[] buffer, int bufferOffset, int length) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetChars(i, fieldOffset, buffer, bufferOffset, length); - } - - /// - /// Invokes the GetData method of the underlying datareader. - /// - /// Name of the column containing the value. - public IDataReader GetData(string name) - { - return GetData(_dataReader.GetOrdinal(name)); - } - - /// - /// Invokes the GetData method of the underlying datareader. - /// - /// Ordinal column position of the value. - public virtual IDataReader GetData(int i) - { - return _dataReader.GetData(i); - } - - /// - /// Invokes the GetDataTypeName method of the underlying datareader. - /// - /// Name of the column containing the value. - public string GetDataTypeName(string name) - { - return GetDataTypeName(_dataReader.GetOrdinal(name)); - } - - /// - /// Invokes the GetDataTypeName method of the underlying datareader. - /// - /// Ordinal column position of the value. - public virtual string GetDataTypeName(int i) - { - return _dataReader.GetDataTypeName(i); - } - - /// - /// Gets a date value from the datareader. - /// - /// - /// Returns DateTime.MinValue for null. - /// - /// Name of the column containing the value. - public virtual DateTime GetDateTime(string name) - { - return GetDateTime(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a date value from the datareader. - /// - /// - /// Returns DateTime.MinValue for null. - /// - /// Ordinal column position of the value. - public virtual DateTime GetDateTime(int i) - { - if (_dataReader.IsDBNull(i)) - return DateTime.MinValue; - else - return _dataReader.GetDateTime(i); - } - - /// - /// Gets a decimal value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public decimal GetDecimal(string name) - { - return GetDecimal(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a decimal value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual decimal GetDecimal(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetDecimal(i); - } - - /// - /// Invokes the GetFieldType method of the underlying datareader. - /// - /// Name of the column containing the value. - public Type GetFieldType(string name) - { - return GetFieldType(_dataReader.GetOrdinal(name)); - } - - /// - /// Invokes the GetFieldType method of the underlying datareader. - /// - /// Ordinal column position of the value. - public virtual Type GetFieldType(int i) - { - return _dataReader.GetFieldType(i); - } - - /// - /// Gets a Single value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public float GetFloat(string name) - { - return GetFloat(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a Single value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual float GetFloat(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetFloat(i); - } - - /// - /// Gets a Short value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public short GetInt16(string name) - { - return GetInt16(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a Short value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual short GetInt16(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetInt16(i); - } - - /// - /// Gets a Long value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Name of the column containing the value. - public Int64 GetInt64(string name) - { - return GetInt64(_dataReader.GetOrdinal(name)); - } - - /// - /// Gets a Long value from the datareader. - /// - /// - /// Returns 0 for null. - /// - /// Ordinal column position of the value. - public virtual Int64 GetInt64(int i) - { - if (_dataReader.IsDBNull(i)) - return 0; - else - return _dataReader.GetInt64(i); - } - - /// - /// Invokes the GetName method of the underlying datareader. - /// - /// Ordinal column position of the value. - public virtual string GetName(int i) - { - return _dataReader.GetName(i); - } - - /// - /// Gets an ordinal value from the datareader. - /// - /// Name of the column containing the value. - public int GetOrdinal(string name) - { - return _dataReader.GetOrdinal(name); - } - - /// - /// Invokes the GetSchemaTable method of the underlying datareader. - /// - public DataTable GetSchemaTable() - { - return _dataReader.GetSchemaTable(); - } - - - /// - /// Invokes the GetValues method of the underlying datareader. - /// - /// An array of System.Object to - /// copy the values into. - public int GetValues(object[] values) - { - return _dataReader.GetValues(values); - } - - /// - /// Returns the IsClosed property value from the datareader. - /// - public bool IsClosed - { - get - { - return _dataReader.IsClosed; - } - } - - /// - /// Invokes the IsDBNull method of the underlying datareader. - /// - /// Ordinal column position of the value. - public virtual bool IsDBNull(int i) - { - return _dataReader.IsDBNull(i); - } - - /// - /// Returns a value from the datareader. - /// - /// Name of the column containing the value. - public object this[string name] - { - get - { - object val = _dataReader[name]; - if (DBNull.Value.Equals(val)) - return null; - else - return val; - } - } - - /// - /// Returns a value from the datareader. - /// - /// Ordinal column position of the value. - public virtual object this[int i] - { - get - { - if (_dataReader.IsDBNull(i)) - return null; - else - return _dataReader[i]; - } - } - /// - /// Returns the RecordsAffected property value from the underlying datareader. - /// - public int RecordsAffected - { - get - { - return _dataReader.RecordsAffected; - } - } - - #region IDisposable Support - - private bool _disposedValue; // To detect redundant calls - - /// - /// Disposes the object. - /// - /// True if called by - /// the public Dispose method. - protected virtual void Dispose(bool disposing) - { - if (!_disposedValue) - { - if (disposing) - { - // free unmanaged resources when explicitly called - _dataReader.Dispose(); - } - - // free shared unmanaged resources - } - _disposedValue = true; - } - - /// - /// Disposes the object. - /// - public void Dispose() - { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above. - Dispose(true); - GC.SuppressFinalize(this); - } - - /// - /// Object finalizer. - /// - ~SafeDataReader() - { - Dispose(false); - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/ApplicationContext.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/ApplicationContext.cs deleted file mode 100644 index 99c49940..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/ApplicationContext.cs +++ /dev/null @@ -1,369 +0,0 @@ -using System; -using System.Threading; -using System.Security.Principal; -using System.Collections.Specialized; -using System.Configuration; -using System.Web; - -namespace Csla -{ - /// - /// Provides consistent context information between the client - /// and server DataPortal objects. - /// - public static class ApplicationContext - { - #region User - - /// - /// Get or set the current - /// object representing the user's identity. - /// - /// - /// This is discussed in Chapter 5. When running - /// under IIS the HttpContext.Current.User value - /// is used, otherwise the current Thread.CurrentPrincipal - /// value is used. - /// - public static IPrincipal User - { - get - { - if (HttpContext.Current == null) - return Thread.CurrentPrincipal; - else - return HttpContext.Current.User; - } - set - { - if (HttpContext.Current != null) - HttpContext.Current.User = value; - Thread.CurrentPrincipal = value; - } - } - - #endregion - - #region LocalContext - - private const string _localContextName = "Csla.LocalContext"; - - /// - /// Returns the application-specific context data that - /// is local to the current AppDomain. - /// - /// - /// - /// The return value is a HybridDictionary. If one does - /// not already exist, and empty one is created and returned. - /// - /// Note that data in this context is NOT transferred to and from - /// the client and server. - /// - /// - public static HybridDictionary LocalContext - { - get - { - HybridDictionary ctx = GetLocalContext(); - if (ctx == null) - { - ctx = new HybridDictionary(); - SetLocalContext(ctx); - } - return ctx; - } - } - - private static HybridDictionary GetLocalContext() - { - if (HttpContext.Current == null) - { - LocalDataStoreSlot slot = Thread.GetNamedDataSlot(_localContextName); - return (HybridDictionary)Thread.GetData(slot); - } - else - return (HybridDictionary)HttpContext.Current.Items[_localContextName]; - } - - private static void SetLocalContext(HybridDictionary localContext) - { - if (HttpContext.Current == null) - { - LocalDataStoreSlot slot = Thread.GetNamedDataSlot(_localContextName); - Thread.SetData(slot, localContext); - } - else - HttpContext.Current.Items[_localContextName] = localContext; - } - - #endregion - - #region Client/Global Context - - private static object _syncClientContext = new object(); - private const string _clientContextName = "Csla.ClientContext"; - private const string _globalContextName = "Csla.GlobalContext"; - - /// - /// Returns the application-specific context data provided - /// by the client. - /// - /// - /// - /// The return value is a HybridDictionary. If one does - /// not already exist, and empty one is created and returned. - /// - /// Note that data in this context is transferred from - /// the client to the server. No data is transferred from - /// the server to the client. - /// - /// This property is thread safe in a Windows client - /// setting and on an application server. It is not guaranteed - /// to be thread safe within the context of an ASP.NET - /// client setting (i.e. in your ASP.NET UI). - /// - /// - public static HybridDictionary ClientContext - { - get - { - lock (_syncClientContext) - { - HybridDictionary ctx = GetClientContext(); - if (ctx == null) - { - ctx = new HybridDictionary(); - SetClientContext(ctx); - } - return ctx; - } - } - } - - /// - /// Returns the application-specific context data shared - /// on both client and server. - /// - /// - /// - /// The return value is a HybridDictionary. If one does - /// not already exist, and empty one is created and returned. - /// - /// Note that data in this context is transferred to and from - /// the client and server. Any objects or data in this context - /// will be transferred bi-directionally across the network. - /// - /// - public static HybridDictionary GlobalContext - { - get - { - HybridDictionary ctx = GetGlobalContext(); - if (ctx == null) - { - ctx = new HybridDictionary(); - SetGlobalContext(ctx); - } - return ctx; - } - } - - internal static HybridDictionary GetClientContext() - { - if (HttpContext.Current == null) - { - if (ApplicationContext.ExecutionLocation == ExecutionLocations.Client) - lock (_syncClientContext) - return (HybridDictionary)AppDomain.CurrentDomain.GetData(_clientContextName); - else - { - LocalDataStoreSlot slot = - Thread.GetNamedDataSlot(_clientContextName); - return (HybridDictionary)Thread.GetData(slot); - } - } - else - return (HybridDictionary) - HttpContext.Current.Items[_clientContextName]; - } - - internal static HybridDictionary GetGlobalContext() - { - if (HttpContext.Current == null) - { - LocalDataStoreSlot slot = Thread.GetNamedDataSlot(_globalContextName); - return (HybridDictionary)Thread.GetData(slot); - } - else - return (HybridDictionary)HttpContext.Current.Items[_globalContextName]; - } - - private static void SetClientContext(HybridDictionary clientContext) - { - if (HttpContext.Current == null) - { - if (ApplicationContext.ExecutionLocation == ExecutionLocations.Client) - lock (_syncClientContext) - AppDomain.CurrentDomain.SetData(_clientContextName, clientContext); - else - { - LocalDataStoreSlot slot = Thread.GetNamedDataSlot(_clientContextName); - Thread.SetData(slot, clientContext); - } - } - else - HttpContext.Current.Items[_clientContextName] = clientContext; - } - - internal static void SetGlobalContext(HybridDictionary globalContext) - { - if (HttpContext.Current == null) - { - LocalDataStoreSlot slot = Thread.GetNamedDataSlot(_globalContextName); - Thread.SetData(slot, globalContext); - } - else - HttpContext.Current.Items[_globalContextName] = globalContext; - } - - internal static void SetContext( - HybridDictionary clientContext, - HybridDictionary globalContext) - { - SetClientContext(clientContext); - SetGlobalContext(globalContext); - } - - /// - /// Clears all context collections. - /// - public static void Clear() - { - SetContext(null, null); - SetLocalContext(null); - } - - #endregion - - #region Config Settings - - /// - /// Returns the authentication type being used by the - /// CSLA .NET framework. - /// - /// - /// - /// - /// This value is read from the application configuration - /// file with the key value "CslaAuthentication". The value - /// "Windows" indicates CSLA .NET should use Windows integrated - /// (or AD) security. Any other value indicates the use of - /// custom security derived from BusinessPrincipalBase. - /// - public static string AuthenticationType - { - get { return ConfigurationManager.AppSettings["CslaAuthentication"]; } - } - - /// - /// Returns the channel or network protocol - /// for the DataPortal server. - /// - /// Fully qualified assembly/type name of the proxy class. - /// - /// - /// - /// This value is read from the application configuration - /// file with the key value "CslaDataPortalProxy". - /// - /// The proxy class must implement Csla.Server.IDataPortalServer. - /// - /// The value "Local" is a shortcut to running the DataPortal - /// "server" in the client process. - /// - /// Other built-in values include: - /// - /// - /// Csla,Csla.DataPortalClient.RemotingProxy - /// Use .NET Remoting to communicate with the server - /// - /// - /// Csla,Csla.DataPortalClient.EnterpriseServicesProxy - /// Use Enterprise Services (DCOM) to communicate with the server - /// - /// - /// Csla,Csla.DataPortalClient.WebServicesProxy - /// Use Web Services (asmx) to communicate with the server - /// - /// - /// Each proxy type does require that the DataPortal server be hosted using the appropriate - /// technology. For instance, Web Services and Remoting should be hosted in IIS, while - /// Enterprise Services must be hosted in COM+. - /// - /// - public static string DataPortalProxy - { - get - { - string result = ConfigurationManager.AppSettings["CslaDataPortalProxy"]; - if (string.IsNullOrEmpty(result)) - result = "Local"; - return result; - } - } - - /// - /// Returns the URL for the DataPortal server. - /// - /// - /// - /// - /// This value is read from the application configuration - /// file with the key value "CslaDataPortalUrl". - /// - public static Uri DataPortalUrl - { - get { return new Uri(ConfigurationManager.AppSettings["CslaDataPortalUrl"]); } - } - - /// - /// Enum representing the locations code can execute. - /// - public enum ExecutionLocations - { - /// - /// The code is executing on the client. - /// - Client, - /// - /// The code is executing on the application server. - /// - Server - } - - #endregion - - #region In-Memory Settings - - private static ExecutionLocations _executionLocation = - ExecutionLocations.Client; - - /// - /// Returns a value indicating whether the application code - /// is currently executing on the client or server. - /// - public static ExecutionLocations ExecutionLocation - { - get { return _executionLocation; } - } - - internal static void SetExecutionLocation(ExecutionLocations location) - { - _executionLocation = location; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/DataPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/DataPortal.cs deleted file mode 100644 index d0bf28eb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/DataPortal.cs +++ /dev/null @@ -1,448 +0,0 @@ -using System; -using System.Threading; -using System.Reflection; -using System.Runtime.Remoting; -using System.Runtime.Remoting.Channels; -using System.Runtime.Remoting.Channels.Http; -using Csla.Properties; - -namespace Csla -{ - - /// - /// This is the client-side DataPortal as described in - /// Chapter 4. - /// - public static class DataPortal - { - - #region DataPortal events - - /// - /// Raised by DataPortal prior to calling the - /// requested server-side DataPortal method. - /// - public static event Action DataPortalInvoke; - - /// - /// Raised by DataPortal after the requested - /// server-side DataPortal method call is complete. - /// - public static event Action DataPortalInvokeComplete; - - private static void OnDataPortalInvoke(DataPortalEventArgs e) - { - Action action = DataPortalInvoke; - if (action != null) - action(e); - } - - private static void OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - Action action = DataPortalInvokeComplete; - if (action != null) - action(e); - } - - #endregion - - #region Data Access methods - - private const int EmptyCriteria = 1; - - /// - /// Called by a factory method in a business class to create - /// a new object, which is loaded with default - /// values from the database. - /// - /// Specific type of the business object. - /// Object-specific criteria. - /// A new object, populated with default values. - public static T Create(object criteria) - { - return (T)Create(typeof(T), criteria); - } - - /// - /// Called by a factory method in a business class to create - /// a new object, which is loaded with default - /// values from the database. - /// - /// Specific type of the business object. - /// A new object, populated with default values. - public static T Create() - { - return (T)Create(typeof(T), EmptyCriteria); - } - - /// - /// Called by a factory method in a business class to create - /// a new object, which is loaded with default - /// values from the database. - /// - /// Object-specific criteria. - /// A new object, populated with default values. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")] - public static object Create(object criteria) - { - return Create(MethodCaller.GetObjectType(criteria), criteria); - } - - private static object Create(Type objectType, object criteria) - { - Server.DataPortalResult result; - - MethodInfo method = MethodCaller.GetCreateMethod(objectType, criteria); - - DataPortalClient.IDataPortalProxy proxy; - proxy = GetDataPortalProxy(RunLocal(method)); - - Server.DataPortalContext dpContext = - new Csla.Server.DataPortalContext(GetPrincipal(), proxy.IsServerRemote); - - OnDataPortalInvoke(new DataPortalEventArgs(dpContext)); - - try - { - result = proxy.Create(objectType, criteria, dpContext); - } - catch (Server.DataPortalException ex) - { - result = ex.Result; - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - throw new DataPortalException( - string.Format("DataPortal.Create {0} ({1})", Resources.Failed, ex.InnerException.InnerException), - ex.InnerException, result.ReturnObject); - } - - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - - OnDataPortalInvokeComplete(new DataPortalEventArgs(dpContext)); - - return result.ReturnObject; - } - - /// - /// Called by a factory method in a business class to retrieve - /// an object, which is loaded with values from the database. - /// - /// Specific type of the business object. - /// Object-specific criteria. - /// An object populated with values from the database. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static T Fetch(object criteria) - { - return (T)Fetch(typeof(T), criteria); - } - - /// - /// Called by a factory method in a business class to retrieve - /// an object, which is loaded with values from the database. - /// - /// Specific type of the business object. - /// An object populated with values from the database. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2223:MembersShouldDifferByMoreThanReturnType")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static T Fetch() - { - return (T)Fetch(typeof(T), EmptyCriteria); - } - - /// - /// Called by a factory method in a business class to retrieve - /// an object, which is loaded with values from the database. - /// - /// Object-specific criteria. - /// An object populated with values from the database. - public static object Fetch(object criteria) - { - return Fetch(MethodCaller.GetObjectType(criteria), criteria); - } - - private static object Fetch(Type objectType, object criteria) - { - Server.DataPortalResult result; - - MethodInfo method = MethodCaller.GetFetchMethod(objectType, criteria); - - DataPortalClient.IDataPortalProxy proxy; - proxy = GetDataPortalProxy(RunLocal(method)); - - Server.DataPortalContext dpContext = - new Server.DataPortalContext(GetPrincipal(), - proxy.IsServerRemote); - - OnDataPortalInvoke(new DataPortalEventArgs(dpContext)); - - try - { - result = proxy.Fetch(objectType, criteria, dpContext); - } - catch (Server.DataPortalException ex) - { - result = ex.Result; - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - throw new DataPortalException( - String.Format("DataPortal.Fetch {0} ({1})", Resources.Failed, ex.InnerException.InnerException), - ex.InnerException, result.ReturnObject); - } - - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - - OnDataPortalInvokeComplete(new DataPortalEventArgs(dpContext)); - - return result.ReturnObject; - } - - /// - /// Called to execute a Command object on the server. - /// - /// - /// - /// To be a Command object, the object must inherit from - /// CommandBase. - /// - /// Note that this method returns a reference to the updated business object. - /// If the server-side DataPortal is running remotely, this will be a new and - /// different object from the original, and all object references MUST be updated - /// to use this new object. - /// - /// On the server, the Command object's DataPortal_Execute() method will - /// be invoked. Write any server-side code in that method. - /// - /// - /// Specific type of the Command object. - /// A reference to the Command object to be executed. - /// A reference to the updated Command object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", - MessageId="Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static T Execute(T obj) where T : CommandBase - { - return (T)Update(obj); - } - - /// - /// Called to execute a Command object on the server. - /// - /// - /// - /// Note that this method returns a reference to the updated business object. - /// If the server-side DataPortal is running remotely, this will be a new and - /// different object from the original, and all object references MUST be updated - /// to use this new object. - /// - /// On the server, the Command object's DataPortal_Execute() method will - /// be invoked. Write any server-side code in that method. - /// - /// - /// A reference to the Command object to be executed. - /// A reference to the updated Command object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId="Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static CommandBase Execute(CommandBase obj) - { - return (CommandBase)Update(obj); - } - - /// - /// Called by the business object's Save() method to - /// insert, update or delete an object in the database. - /// - /// - /// Note that this method returns a reference to the updated business object. - /// If the server-side DataPortal is running remotely, this will be a new and - /// different object from the original, and all object references MUST be updated - /// to use this new object. - /// - /// Specific type of the business object. - /// A reference to the business object to be updated. - /// A reference to the updated business object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static T Update(T obj) - { - return (T)Update((object)obj); - } - - /// - /// Called by the business object's Save() method to - /// insert, update or delete an object in the database. - /// - /// - /// Note that this method returns a reference to the updated business object. - /// If the server-side DataPortal is running remotely, this will be a new and - /// different object from the original, and all object references MUST be updated - /// to use this new object. - /// - /// A reference to the business object to be updated. - /// A reference to the updated business object. - public static object Update(object obj) - { - Server.DataPortalResult result; - - MethodInfo method; - string methodName; - if (obj is CommandBase) - methodName = "DataPortal_Execute"; - else if (obj is Core.BusinessBase) - { - Core.BusinessBase tmp = (Core.BusinessBase)obj; - if (tmp.IsDeleted) - methodName = "DataPortal_DeleteSelf"; - else - if (tmp.IsNew) - methodName = "DataPortal_Insert"; - else - methodName = "DataPortal_Update"; - } - else - methodName = "DataPortal_Update"; - - method = MethodCaller.GetMethod(obj.GetType(), methodName); - - DataPortalClient.IDataPortalProxy proxy; - proxy = GetDataPortalProxy(RunLocal(method)); - - Server.DataPortalContext dpContext = - new Server.DataPortalContext(GetPrincipal(), proxy.IsServerRemote); - - OnDataPortalInvoke(new DataPortalEventArgs(dpContext)); - - try - { - result = proxy.Update(obj, dpContext); - } - catch (Server.DataPortalException ex) - { - result = ex.Result; - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - throw new DataPortalException( - String.Format("DataPortal.Update {0} ({1})", Resources.Failed, ex.InnerException.InnerException), - ex.InnerException, result.ReturnObject); - } - - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - - OnDataPortalInvokeComplete(new DataPortalEventArgs(dpContext)); - - return result.ReturnObject; - } - - /// - /// Called by a Shared (static in C#) method in the business class to cause - /// immediate deletion of a specific object from the database. - /// - /// Object-specific criteria. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] - public static void Delete(object criteria) - { - Server.DataPortalResult result; - - MethodInfo method = MethodCaller.GetMethod( - MethodCaller.GetObjectType(criteria), "DataPortal_Delete", criteria); - - DataPortalClient.IDataPortalProxy proxy; - proxy = GetDataPortalProxy(RunLocal(method)); - - Server.DataPortalContext dpContext = new Server.DataPortalContext(GetPrincipal(), proxy.IsServerRemote); - - OnDataPortalInvoke(new DataPortalEventArgs(dpContext)); - - try - { - result = proxy.Delete(criteria, dpContext); - } - catch (Server.DataPortalException ex) - { - result = ex.Result; - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - throw new DataPortalException( - String.Format("DataPortal.Delete {0} ({1})", Resources.Failed, ex.InnerException.InnerException), - ex.InnerException, result.ReturnObject); - } - - if (proxy.IsServerRemote) - ApplicationContext.SetGlobalContext(result.GlobalContext); - - OnDataPortalInvokeComplete(new DataPortalEventArgs(dpContext)); - } - - #endregion - - #region DataPortal Proxy - - private static DataPortalClient.IDataPortalProxy _localPortal; - private static DataPortalClient.IDataPortalProxy _portal; - - private static DataPortalClient.IDataPortalProxy GetDataPortalProxy(bool forceLocal) - { - if (forceLocal) - { - if (_localPortal == null) - _localPortal = new DataPortalClient.LocalProxy(); - return _localPortal; - } - else - { - if (_portal == null) - { - string proxyTypeName = ApplicationContext.DataPortalProxy; - if (proxyTypeName == "Local") - _portal = new DataPortalClient.LocalProxy(); - else - { - string typeName = - proxyTypeName.Substring(0, proxyTypeName.IndexOf(",")).Trim(); - string assemblyName = - proxyTypeName.Substring(proxyTypeName.IndexOf(",") + 1).Trim(); - _portal = (DataPortalClient.IDataPortalProxy) - Activator.CreateInstance(assemblyName, typeName).Unwrap(); - } - } - return _portal; - } - } - - #endregion - - #region Security - - private static System.Security.Principal.IPrincipal GetPrincipal() - { - if (ApplicationContext.AuthenticationType == "Windows") - { - // Windows integrated security - return null; - } - else - { - // we assume using the CSLA framework security - return ApplicationContext.User; - } - } - - #endregion - - #region Helper methods - - private static bool RunLocal(MethodInfo method) - { - return Attribute.IsDefined(method, typeof(RunLocalAttribute), false); - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/EnterpriseServicesProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/EnterpriseServicesProxy.cs deleted file mode 100644 index 6a6de801..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/EnterpriseServicesProxy.cs +++ /dev/null @@ -1,118 +0,0 @@ -using System; - -namespace Csla.DataPortalClient -{ - /// - /// Implements a data portal proxy to relay data portal - /// calls to an application server hosted in COM+. - /// - public abstract class EnterpriseServicesProxy : DataPortalClient.IDataPortalProxy - { - /// - /// Override this method to return a reference to - /// the server-side COM+ (ServicedComponent) object - /// implementing the data portal server functionality. - /// - protected abstract Server.Hosts.EnterpriseServicesPortal GetServerObject(); - - /// - /// Called by to create a - /// new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public virtual Server.DataPortalResult Create(Type objectType, object criteria, Server.DataPortalContext context) - { - Server.Hosts.EnterpriseServicesPortal svc = GetServerObject(); - try - { - return svc.Create(objectType, criteria, context); - } - finally - { - if (svc != null) - svc.Dispose(); - } - } - - /// - /// Called by to load an - /// existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public virtual Server.DataPortalResult Fetch(Type objectType, object criteria, Server.DataPortalContext context) - { - Server.Hosts.EnterpriseServicesPortal svc = GetServerObject(); - try - { - return svc.Fetch(objectType, criteria, context); - } - finally - { - if (svc != null) - svc.Dispose(); - } - } - - /// - /// Called by to update a - /// business object. - /// - /// The business object to update. - /// - /// object passed to the server. - /// - public virtual Server.DataPortalResult Update(object obj, Server.DataPortalContext context) - { - Server.Hosts.EnterpriseServicesPortal svc = GetServerObject(); - try - { - return svc.Update(obj, context); - } - finally - { - if (svc != null) - svc.Dispose(); - } - } - - /// - /// Called by to delete a - /// business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public virtual Server.DataPortalResult Delete(object criteria, Server.DataPortalContext context) - { - Server.Hosts.EnterpriseServicesPortal svc = GetServerObject(); - try - { - return svc.Delete(criteria, context); - } - finally - { - if (svc != null) - svc.Dispose(); - } - } - - /// - /// Get a value indicating whether this proxy will invoke - /// a remote data portal server, or run the "server-side" - /// data portal in the caller's process and AppDomain. - /// - public virtual bool IsServerRemote - { - get { return true; } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/IDataPortalProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/IDataPortalProxy.cs deleted file mode 100644 index cf87f093..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/IDataPortalProxy.cs +++ /dev/null @@ -1,18 +0,0 @@ -using System; - -namespace Csla.DataPortalClient -{ - /// - /// Interface implemented by client-side - /// data portal proxy objects. - /// - public interface IDataPortalProxy : Server.IDataPortalServer - { - /// - /// Get a value indicating whether this proxy will invoke - /// a remote data portal server, or run the "server-side" - /// data portal in the caller's process and AppDomain. - /// - bool IsServerRemote { get;} - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/LocalProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/LocalProxy.cs deleted file mode 100644 index bc217040..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/LocalProxy.cs +++ /dev/null @@ -1,82 +0,0 @@ -using System; -using Csla.Server; - -namespace Csla.DataPortalClient -{ - /// - /// Implements a data portal proxy to relay data portal - /// calls to an application server hosted locally - /// in the client process and AppDomain. - /// - public class LocalProxy : DataPortalClient.IDataPortalProxy - { - private Server.IDataPortalServer _portal = - new Server.DataPortal(); - - /// - /// Called by to create a - /// new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Create( - Type objectType, object criteria, DataPortalContext context) - { - return _portal.Create(objectType, criteria, context); - } - - /// - /// Called by to load an - /// existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - return _portal.Fetch(objectType, criteria, context); - } - - /// - /// Called by to update a - /// business object. - /// - /// The business object to update. - /// - /// object passed to the server. - /// - public DataPortalResult Update(object obj, DataPortalContext context) - { - return _portal.Update(obj, context); - } - - /// - /// Called by to delete a - /// business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - return _portal.Delete(criteria, context); - } - - /// - /// Get a value indicating whether this proxy will invoke - /// a remote data portal server, or run the "server-side" - /// data portal in the caller's process and AppDomain. - /// - public bool IsServerRemote - { - get { return false; } - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/RemotingProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/RemotingProxy.cs deleted file mode 100644 index 796f0b05..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/RemotingProxy.cs +++ /dev/null @@ -1,150 +0,0 @@ -using System; -using System.Configuration; -using System.Collections; -using System.Threading; -using System.Reflection; -using System.Runtime.Remoting; -using System.Runtime.Remoting.Channels; -using System.Runtime.Remoting.Channels.Http; - -namespace Csla.DataPortalClient -{ - /// - /// Implements a data portal proxy to relay data portal - /// calls to a remote application server by using the - /// .NET Remoting technology. - /// - public class RemotingProxy : DataPortalClient.IDataPortalProxy - { - - #region Configure Remoting - - /// - /// Configure .NET Remoting to use a binary - /// serialization technology even when using - /// the HTTP channel. Also ensures that the - /// user's Windows credentials are passed to - /// the server appropriately. - /// - static RemotingProxy() - { - // create and register a custom HTTP channel - // that uses the binary formatter - Hashtable properties = new Hashtable(); - properties["name"] = "HttpBinary"; - - if (ApplicationContext.AuthenticationType == "Windows" || AlwaysImpersonate) - { - // make sure we pass the user's Windows credentials - // to the server - properties["useDefaultCredentials"] = true; - } - - BinaryClientFormatterSinkProvider - formatter = new BinaryClientFormatterSinkProvider(); - HttpChannel channel = new HttpChannel(properties, formatter, null); - ChannelServices.RegisterChannel(channel, EncryptChannel); - } - - private static bool AlwaysImpersonate - { - get - { - bool result = - (ConfigurationManager.AppSettings["AlwaysImpersonate"] == "true"); - return result; - } - } - - private static bool EncryptChannel - { - get - { - bool encrypt = - (ConfigurationManager.AppSettings["CslaEncryptRemoting"] == "true"); - return encrypt; - } - } - - #endregion - - private Server.IDataPortalServer _portal; - - private Server.IDataPortalServer Portal - { - get - { - if (_portal == null) - _portal = (Server.IDataPortalServer)Activator.GetObject( - typeof(Server.Hosts.RemotingPortal), - ApplicationContext.DataPortalUrl.ToString()); - return _portal; - } - } - - /// - /// Called by to create a - /// new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Create( - Type objectType, object criteria, Server.DataPortalContext context) - { - return Portal.Create(objectType, criteria, context); - } - - /// - /// Called by to load an - /// existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Fetch(Type objectType, object criteria, Server.DataPortalContext context) - { - return Portal.Fetch(objectType, criteria, context); - } - - /// - /// Called by to update a - /// business object. - /// - /// The business object to update. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Update(object obj, Server.DataPortalContext context) - { - return Portal.Update(obj, context); - } - - /// - /// Called by to delete a - /// business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Delete(object criteria, Server.DataPortalContext context) - { - return Portal.Delete(criteria, context); - } - - /// - /// Get a value indicating whether this proxy will invoke - /// a remote data portal server, or run the "server-side" - /// data portal in the caller's process and AppDomain. - /// - public bool IsServerRemote - { - get { return true; } - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/WebServicesProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/WebServicesProxy.cs deleted file mode 100644 index acba7ab0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Client/WebServicesProxy.cs +++ /dev/null @@ -1,177 +0,0 @@ -using System; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; -using Csla.WebServiceHost; - -namespace Csla.DataPortalClient -{ - /// - /// Implements a data portal proxy to relay data portal - /// calls to a remote application server by using - /// Web services. - /// - public class WebServicesProxy : DataPortalClient.IDataPortalProxy - { - private WebServiceHost.WebServicePortal GetPortal() - { - WebServiceHost.WebServicePortal wsvc = - new WebServiceHost.WebServicePortal(); - wsvc.Url = ApplicationContext.DataPortalUrl.ToString(); - return wsvc; - } - - - /// - /// Called by to create a - /// new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Create( - Type objectType, object criteria, Server.DataPortalContext context) - { - object result; - Csla.Server.Hosts.WebServicePortal.CreateRequest - request = new Csla.Server.Hosts.WebServicePortal.CreateRequest(); - request.ObjectType = objectType; - request.Criteria = criteria; - request.Context = context; - - using (WebServiceHost.WebServicePortal wsvc = GetPortal()) - { - byte[] rd = Serialize(request); - byte[] rp = wsvc.Create(rd); - result = Deserialize(rp); - } - - if (result is Exception) - throw (Exception)result; - return (Server.DataPortalResult)result; - } - - /// - /// Called by to load an - /// existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Fetch( - Type objectType, object criteria, Server.DataPortalContext context) - { - object result; - Server.Hosts.WebServicePortal.FetchRequest request = - new Server.Hosts.WebServicePortal.FetchRequest(); - request.ObjectType = objectType; - request.Criteria = criteria; - request.Context = context; - - using (WebServiceHost.WebServicePortal wsvc = GetPortal()) - { - result = Deserialize(wsvc.Fetch(Serialize(request))); - } - - if (result is Exception) - throw (Exception)result; - return (Server.DataPortalResult)result; - } - - /// - /// Called by to update a - /// business object. - /// - /// The business object to update. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Update(object obj, Server.DataPortalContext context) - { - object result; - Server.Hosts.WebServicePortal.UpdateRequest request = new Server.Hosts.WebServicePortal.UpdateRequest(); - request.Object = obj; - request.Context = context; - - using (WebServiceHost.WebServicePortal wsvc = GetPortal()) - { - result = Deserialize(wsvc.Update(Serialize(request))); - } - - if (result is Exception) - throw (Exception)result; - return (Server.DataPortalResult)result; - } - - /// - /// Called by to delete a - /// business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public Server.DataPortalResult Delete(object criteria, Server.DataPortalContext context) - { - object result; - Server.Hosts.WebServicePortal.DeleteRequest request = new Server.Hosts.WebServicePortal.DeleteRequest(); - request.Criteria = criteria; - request.Context = context; - - using (WebServiceHost.WebServicePortal wsvc = GetPortal()) - { - result = Deserialize(wsvc.Delete(Serialize(request))); - } - - if (result is Exception) - throw (Exception)result; - return (Server.DataPortalResult)result; - } - - /// - /// Get a value indicating whether this proxy will invoke - /// a remote data portal server, or run the "server-side" - /// data portal in the caller's process and AppDomain. - /// - public bool IsServerRemote - { - get { return true; } - } - - - #region Helper functions - - private static byte[] Serialize(object obj) - { - if (obj != null) - { - using (MemoryStream buffer = new MemoryStream()) - { - BinaryFormatter formatter = new BinaryFormatter(); - formatter.Serialize(buffer, obj); - return buffer.ToArray(); - } - } - return null; - } - - private static object Deserialize(byte[] obj) - { - if (obj != null) - { - using (MemoryStream buffer = new MemoryStream(obj)) - { - BinaryFormatter formatter = new BinaryFormatter(); - return formatter.Deserialize(buffer); - } - } - return null; - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/CriteriaBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/CriteriaBase.cs deleted file mode 100644 index 61be73dc..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/CriteriaBase.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; - -namespace Csla -{ - - /// - /// Base type from which Criteria classes can be - /// derived in a business class. - /// - [Serializable()] - public abstract class CriteriaBase - { - private Type _objectType; - - /// - /// Type of the business object to be instantiated by - /// the server-side DataPortal. - /// - public Type ObjectType - { - get { return _objectType; } - } - - /// - /// Initializes CriteriaBase with the type of - /// business object to be created by the DataPortal. - /// - /// The type of the - /// business object the data portal should create. - protected CriteriaBase(Type type) - { - _objectType = type; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalEventArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalEventArgs.cs deleted file mode 100644 index 69bd8145..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalEventArgs.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; - -namespace Csla -{ - /// - /// Provides information about the DataPortal - /// call. - /// - public class DataPortalEventArgs : EventArgs - { - private Server.DataPortalContext _dataPortalContext; - - /// - /// The DataPortalContext object passed to the - /// server-side DataPortal. - /// - public Server.DataPortalContext DataPortalContext - { - get { return _dataPortalContext; } - } - - /// - /// Creates an instance of the object. - /// - /// - /// Data portal context object. - /// - public DataPortalEventArgs(Server.DataPortalContext dataPortalContext) - { - _dataPortalContext = dataPortalContext; - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalException.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalException.cs deleted file mode 100644 index e5284dbf..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/DataPortalException.cs +++ /dev/null @@ -1,120 +0,0 @@ -using System; -using System.Security.Permissions; - -namespace Csla -{ - - /// - /// This exception is returned for any errors occuring - /// during the server-side DataPortal invocation. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors")] - [Serializable()] - public class DataPortalException : Exception - { - private object _businessObject; - private string _innerStackTrace; - - /// - /// Returns a reference to the business object - /// from the server-side DataPortal. - /// - /// - /// Remember that this object may be in an invalid - /// or undefined state. This is the business object - /// (and any child objects) as it existed when the - /// exception occured on the server. Thus the object - /// state may have been altered by the server and - /// may no longer reflect data in the database. - /// - public object BusinessObject - { - get { return _businessObject; } - } - - /// - /// Gets the original server-side exception. - /// - /// An exception object. - /// - /// When an exception occurs in business code behind - /// the data portal, it is wrapped in a - /// , which - /// is then wrapped in a - /// . This property - /// unwraps and returns the original exception - /// thrown by the business code on the server. - /// - public Exception BusinessException - { - get - { - return this.InnerException.InnerException; - } - } - - /// - /// Get the combined stack trace from the server - /// and client. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)")] - public override string StackTrace - { - get { return String.Format("{0}{1}{2}", _innerStackTrace, Environment.NewLine, base.StackTrace); } - } - - /// - /// Creates an instance of the object. - /// - /// Text describing the exception. - /// The business object - /// as it was at the time of the exception. - public DataPortalException(string message, object businessObject) - : base(message) - { - _innerStackTrace = String.Empty; - _businessObject = businessObject; - } - - /// - /// Creates an instance of the object. - /// - /// Text describing the exception. - /// Inner exception. - /// The business object - /// as it was at the time of the exception. - public DataPortalException(string message, Exception ex, object businessObject) - : base(message, ex) - { - _innerStackTrace = ex.StackTrace; - _businessObject = businessObject; - } - - /// - /// Creates an instance of the object for serialization. - /// - /// Serialiation info object. - /// Serialization context object. - protected DataPortalException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - : base(info, context) - { - _businessObject = info.GetValue("_businessObject", typeof(object)); - _innerStackTrace = info.GetString("_innerStackTrace"); - } - - /// - /// Serializes the object. - /// - /// Serialiation info object. - /// Serialization context object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)] - [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.SerializationFormatter)] - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - { - base.GetObjectData(info, context); - info.AddValue("_businessObject", _businessObject); - info.AddValue("_innerStackTrace", _innerStackTrace); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/EnterpriseServicesPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/EnterpriseServicesPortal.cs deleted file mode 100644 index c31a38ea..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/EnterpriseServicesPortal.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System; -using System.EnterpriseServices; -using System.Runtime.InteropServices; -using System.Reflection; - -namespace Csla.Server.Hosts -{ - - /// - /// Exposes server-side DataPortal functionality - /// through Enterprise Services. - /// - [EventTrackingEnabled(true)] - [ComVisible(true)] - public abstract class EnterpriseServicesPortal : ServicedComponent, Server.IDataPortalServer - { - - /// - /// Set up event handler to deal with - /// serialization issue as discussed - /// in Chapter 4. - /// - static EnterpriseServicesPortal() - { - SerializationWorkaround(); - } - - /// - /// Create a new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public virtual DataPortalResult Create(Type objectType, object criteria, DataPortalContext context) - { - Server.DataPortal portal = new Server.DataPortal(); - return portal.Create(objectType, criteria, context); - } - - /// - /// Get an existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - Server.DataPortal portal = new Server.DataPortal(); - return portal.Fetch(objectType, criteria, context); - } - - /// - /// Update a business object. - /// - /// Business object to update. - /// - /// object passed to the server. - /// - public virtual DataPortalResult Update(object obj, DataPortalContext context) - { - Server.DataPortal portal = new Server.DataPortal(); - return portal.Update(obj, context); - } - - /// - /// Delete a business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public virtual DataPortalResult Delete(object criteria, DataPortalContext context) - { - Server.DataPortal portal = new Server.DataPortal(); - return portal.Delete(criteria, context); - } - - #region Serialization bug workaround - - private static void SerializationWorkaround() - { - // hook up the AssemblyResolve - // event so deep serialization works properly - // this is a workaround for a bug in the .NET runtime - AppDomain currentDomain = AppDomain.CurrentDomain; - - currentDomain.AssemblyResolve += - new ResolveEventHandler(ResolveEventHandler); - } - - private static Assembly ResolveEventHandler( - object sender, ResolveEventArgs args) - { - // get a list of all the assemblies loaded in our appdomain - Assembly[] list = AppDomain.CurrentDomain.GetAssemblies(); - - // search the list to find the assembly that was not found automatically - // and return the assembly from the list - - foreach (Assembly asm in list) - if (asm.FullName == args.Name) - return asm; - - // if the assembly wasn't already in the appdomain, then try to load it. - return Assembly.Load(args.Name); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/RemotingPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/RemotingPortal.cs deleted file mode 100644 index baa86431..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/RemotingPortal.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; - -namespace Csla.Server.Hosts -{ - /// - /// Exposes server-side DataPortal functionality - /// through .NET Remoting. - /// - public class RemotingPortal : MarshalByRefObject, Server.IDataPortalServer - { - /// - /// Create a new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Create( - Type objectType, object criteria, DataPortalContext context) - { - Server.DataPortal portal = new DataPortal(); - return portal.Create(objectType, criteria, context); - } - - /// - /// Get an existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - Server.DataPortal portal = new DataPortal(); - return portal.Fetch(objectType, criteria, context); - } - - /// - /// Update a business object. - /// - /// Business object to update. - /// - /// object passed to the server. - /// - public DataPortalResult Update(object obj, DataPortalContext context) - { - Server.DataPortal portal = new DataPortal(); - return portal.Update(obj, context); - } - - /// - /// Delete a business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - Server.DataPortal portal = new DataPortal(); - return portal.Delete(criteria, context); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/WebServicePortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/WebServicePortal.cs deleted file mode 100644 index 155b0463..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Hosts/WebServicePortal.cs +++ /dev/null @@ -1,282 +0,0 @@ -using System; -using System.Web; -using System.Web.Services; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; - -namespace Csla.Server.Hosts -{ - // in asmx use web directive like - // <%@ WebService Class="Csla.Server.Hosts.WebServicePortal" %> - /// - /// Exposes server-side DataPortal functionality - /// through Web Services (asmx). - /// - [WebService(Namespace = "http://ws.lhotka.net/Csla")] - public class WebServicePortal : WebService - { - - #region Request classes - - /// - /// Request message for creating - /// a new business object. - /// - [Serializable()] - public class CreateRequest - { - private Type _objectType; - private object _criteria; - private Server.DataPortalContext _context; - - /// - /// Type of business object to create. - /// - public Type ObjectType - { - get { return _objectType; } - set { _objectType = value; } - } - - /// - /// Criteria object describing business object. - /// - public object Criteria - { - get { return _criteria; } - set { _criteria = value; } - } - - /// - /// Data portal context from client. - /// - public Server.DataPortalContext Context - { - get { return _context; } - set { _context = value; } - } - } - - /// - /// Request message for retrieving - /// an existing business object. - /// - [Serializable()] - public class FetchRequest - { - private Type _objectType; - private object _criteria; - private Server.DataPortalContext _context; - - /// - /// Type of business object to create. - /// - public Type ObjectType - { - get { return _objectType; } - set { _objectType = value; } - } - - /// - /// Criteria object describing business object. - /// - public object Criteria - { - get { return _criteria; } - set { _criteria = value; } - } - - /// - /// Data portal context from client. - /// - public Server.DataPortalContext Context - { - get { return _context; } - set { _context = value; } - } - } - - /// - /// Request message for updating - /// a business object. - /// - [Serializable()] - public class UpdateRequest - { - private object _object; - private Server.DataPortalContext _context; - - /// - /// Business object to be updated. - /// - public object Object - { - get { return _object; } - set { _object = value; } - } - - /// - /// Data portal context from client. - /// - public Server.DataPortalContext Context - { - get { return _context; } - set { _context = value; } - } - } - - /// - /// Request message for deleting - /// a business object. - /// - [Serializable()] - public class DeleteRequest - { - private object _criteria; - private Server.DataPortalContext _context; - - /// - /// Criteria object describing business object. - /// - public object Criteria - { - get { return _criteria; } - set { _criteria = value; } - } - - /// - /// Data portal context from client. - /// - public Server.DataPortalContext Context - { - get { return _context; } - set { _context = value; } - } - } - - #endregion - - /// - /// Create a new business object. - /// - /// Byte stream containing . - /// Byte stream containing resulting object data. - [WebMethod()] - public byte[] Create(byte[] requestData) - { - CreateRequest request = (CreateRequest)Deserialize(requestData); - - DataPortal portal = new DataPortal(); - object result; - try - { - result = portal.Create(request.ObjectType, request.Criteria, request.Context); - } - catch (Exception ex) - { - result = ex; - } - return Serialize(result); - } - - /// - /// Get an existing business object. - /// - /// Byte stream containing . - /// Byte stream containing resulting object data. - [WebMethod()] - public byte[] Fetch(byte[] requestData) - { - FetchRequest request = (FetchRequest)Deserialize(requestData); - - DataPortal portal = new DataPortal(); - object result; - try - { - result = portal.Fetch(request.ObjectType, request.Criteria, request.Context); - } - catch (Exception ex) - { - result = ex; - } - return Serialize(result); - } - - /// - /// Update a business object. - /// - /// Byte stream containing . - /// Byte stream containing resulting object data. - [WebMethod()] - public byte[] Update(byte[] requestData) - { - UpdateRequest request = (UpdateRequest)Deserialize(requestData); - - DataPortal portal = new DataPortal(); - object result; - try - { - result = portal.Update(request.Object, request.Context); - } - catch (Exception ex) - { - result = ex; - } - return Serialize(result); - } - - /// - /// Delete a business object. - /// - /// Byte stream containing . - /// Byte stream containing resulting object data. - [WebMethod()] - public byte[] Delete(byte[] requestData) - { - DeleteRequest request = (DeleteRequest)Deserialize(requestData); - - DataPortal portal = new DataPortal(); - object result; - try - { - result = portal.Delete(request.Criteria, request.Context); - } - catch (Exception ex) - { - result = ex; - } - return Serialize(result); - } - - #region Helper functions - - private static byte[] Serialize(object obj) - { - if (obj != null) - { - using (MemoryStream buffer = new MemoryStream()) - { - BinaryFormatter formatter = new BinaryFormatter(); - formatter.Serialize(buffer, obj); - return buffer.ToArray(); - } - } - return null; - } - - private static object Deserialize(byte[] obj) - { - if (obj != null) - { - using (MemoryStream buffer = new MemoryStream(obj)) - { - BinaryFormatter formatter = new BinaryFormatter(); - return formatter.Deserialize(buffer); - } - } - return null; - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/MethodCaller.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/MethodCaller.cs deleted file mode 100644 index 628de97c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/MethodCaller.cs +++ /dev/null @@ -1,249 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using System.Text; -using Csla.Properties; - -namespace Csla -{ - internal static class MethodCaller - { - const BindingFlags allLevelFlags = - BindingFlags.FlattenHierarchy | - BindingFlags.Instance | - BindingFlags.Public | - BindingFlags.NonPublic; - - const BindingFlags oneLevelFlags = - BindingFlags.DeclaredOnly | - BindingFlags.Instance | - BindingFlags.Public | - BindingFlags.NonPublic; - - /// - /// Gets a reference to the DataPortal_Create method for - /// the specified business object type. - /// - /// Type of the business object. - /// Criteria parameter value. - /// - /// If the criteria parameter value is an integer, that is a special - /// flag indicating that the parameter should be considered missing - /// (not Nothing/null - just not there). - /// - public static MethodInfo GetCreateMethod(Type objectType, object criteria) - { - MethodInfo method = null; - if (criteria is int) - { - // an "Integer" criteria is a special flag indicating - // that criteria is empty and should not be used - method = MethodCaller.GetMethod(objectType, "DataPortal_Create"); - } - else - method = MethodCaller.GetMethod(objectType, "DataPortal_Create", criteria); - return method; - } - - /// - /// Gets a reference to the DataPortal_Fetch method for - /// the specified business object type. - /// - /// Type of the business object. - /// Criteria parameter value. - /// - /// If the criteria parameter value is an integer, that is a special - /// flag indicating that the parameter should be considered missing - /// (not Nothing/null - just not there). - /// - public static MethodInfo GetFetchMethod(Type objectType, object criteria) - { - MethodInfo method = null; - if (criteria is int) - { - // an "Integer" criteria is a special flag indicating - // that criteria is empty and should not be used - method = MethodCaller.GetMethod(objectType, "DataPortal_Fetch"); - } - else - method = MethodCaller.GetMethod(objectType, "DataPortal_Fetch", criteria); - return method; - } - - /// - /// Uses reflection to dynamically invoke a method - /// if that method is implemented on the target object. - /// - public static object CallMethodIfImplemented( - object obj, string method, params object[] parameters) - { - MethodInfo info = GetMethod(obj.GetType(), method, parameters); - if (info != null) - return CallMethod(obj, info, parameters); - else - return null; - } - - /// - /// Uses reflection to dynamically invoke a method, - /// throwing an exception if it is not - /// implemented on the target object. - /// - public static object CallMethod( - object obj, string method, params object[] parameters) - { - MethodInfo info = GetMethod(obj.GetType(), method, parameters); - if (info == null) - throw new NotImplementedException( - method + " " + Resources.MethodNotImplemented); - return CallMethod(obj, info, parameters); - } - - /// - /// Uses reflection to dynamically invoke a method, - /// throwing an exception if it is not - /// implemented on the target object. - /// - public static object CallMethod( - object obj, MethodInfo info, params object[] parameters) - { - // call a private method on the object - object result; - try - { - result = info.Invoke(obj, parameters); - } - catch (Exception e) - { - throw new Csla.Server.CallMethodException( - info.Name + " " + Resources.MethodCallFailed, e.InnerException); - } - return result; - } - - /// - /// Uses reflection to locate a matching method - /// on the target object. - /// - public static MethodInfo GetMethod( - Type objectType, string method, params object[] parameters) - { - MethodInfo result = null; - - // try to find a strongly typed match - // put all param types into a list of Type - List types = new List(); - foreach (object item in parameters) - { - if (item == null) - types.Add(typeof(object)); - else - types.Add(item.GetType()); - } - - // first see if there's a matching method - // where all params match types - result = FindMethod(objectType, method, types.ToArray()); - - if (result == null) - { - // no match found - so look for any method - // with the right number of parameters - result = FindMethod(objectType, method, parameters.Length); - } - - // no strongly typed match found, get default - if (result == null) - { - try - { - result = objectType.GetMethod(method, allLevelFlags); - } - catch (AmbiguousMatchException) - { - MethodInfo[] methods = objectType.GetMethods(); - foreach (MethodInfo m in methods) - if (m.Name == method && m.GetParameters().Length == parameters.Length) - { - result = m; - break; - } - if (result == null) - throw; - } - } - return result; - } - - /// - /// Returns a business object type based on - /// the supplied criteria object. - /// - public static Type GetObjectType(object criteria) - { - if (criteria.GetType().IsSubclassOf(typeof(CriteriaBase))) - { - // get the type of the actual business object - // from CriteriaBase - return ((CriteriaBase)criteria).ObjectType; - } - else - { - // get the type of the actual business object - // based on the nested class scheme in the book - return criteria.GetType().DeclaringType; - } - } - - /// - /// Returns information about the specified - /// method, even if the parameter types are - /// generic and are located in an abstract - /// generic base class. - /// - public static MethodInfo FindMethod(Type objType, string method, Type[] types) - { - MethodInfo info = null; - do - { - //find for a strongly typed match - info = objType.GetMethod(method, oneLevelFlags, null, types, null); - if (info != null) - break; //match found - - objType = objType.BaseType; - } while (objType != null); - - return info; - } - - /// - /// Returns information about the specified - /// method, finding the method based purely - /// on the method name and number of parameters. - /// - public static MethodInfo FindMethod(Type objType, string method, int parameterCount) - { - // walk up the inheritance hierarchy looking - // for a method with the right number of - // parameters - MethodInfo result = null; - Type currentType = objType; - do - { - MethodInfo info = currentType.GetMethod(method, oneLevelFlags); - if (info != null) - { - if (info.GetParameters().Length == parameterCount) - { - // got a match so use it - result = info; - break; - } - } - currentType = currentType.BaseType; - } while (currentType != null); - return result; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/RunLocalAttribute.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/RunLocalAttribute.cs deleted file mode 100644 index c4667196..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/RunLocalAttribute.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; - -namespace Csla -{ - /// - /// Marks a DataPortal_XYZ method to - /// be run on the client even if the server-side - /// DataPortal is configured for remote use. - /// - [AttributeUsage(AttributeTargets.Method)] - public sealed class RunLocalAttribute : Attribute - { - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/CallMethodException.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/CallMethodException.cs deleted file mode 100644 index 803a20c2..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/CallMethodException.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Security.Permissions; - -namespace Csla.Server -{ - /// - /// This exception is returned from the - /// CallMethod method in the server-side DataPortal - /// and contains the exception thrown by the - /// underlying business object method that was - /// being invoked. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors")] - [Serializable()] - public class CallMethodException : Exception - { - private string _innerStackTrace; - - /// - /// Get the stack trace from the original - /// exception. - /// - /// - /// - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)")] - public override string StackTrace - { - get - { - return string.Format("{0}{1}{2}", - _innerStackTrace, Environment.NewLine, base.StackTrace); - } - } - - /// - /// Creates an instance of the object. - /// - /// Message text describing the exception. - /// Inner exception object. - public CallMethodException(string message, Exception ex) - : base(message, ex) - { - _innerStackTrace = ex.StackTrace; - } - - /// - /// Creates an instance of the object for deserialization. - /// - /// Serialization info. - /// Serialiation context. - protected CallMethodException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - : base(info, context) - { - _innerStackTrace = info.GetString("_innerStackTrace"); - } - - - /// - /// Serializes the object. - /// - /// Serialization info. - /// Serialization context. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [SecurityPermission(SecurityAction.LinkDemand, Flags = SecurityPermissionFlag.SerializationFormatter)] - [SecurityPermission(SecurityAction.Demand, Flags = SecurityPermissionFlag.SerializationFormatter)] - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - { - base.GetObjectData(info, context); - info.AddValue("_innerStackTrace", _innerStackTrace); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortal.cs deleted file mode 100644 index 70059005..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortal.cs +++ /dev/null @@ -1,327 +0,0 @@ -using System; -using System.Reflection; -using System.Security.Principal; -using System.Collections.Specialized; -using Csla.Properties; - -namespace Csla.Server -{ - /// - /// Implements the server-side DataPortal - /// message router as discussed - /// in Chapter 4. - /// - public class DataPortal : IDataPortalServer - { - - #region Data Access - - /// - /// Create a new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Create( - Type objectType, object criteria, DataPortalContext context) - { - try - { - SetContext(context); - - DataPortalResult result; - - MethodInfo method = MethodCaller.GetCreateMethod(objectType, criteria); - - IDataPortalServer portal; - switch (TransactionalType(method)) - { - case TransactionalTypes.EnterpriseServices: - portal = new ServicedDataPortal(); - try - { - result = portal.Create(objectType, criteria, context); - } - finally - { - ((ServicedDataPortal)portal).Dispose(); - } - - break; - case TransactionalTypes.TransactionScope: - - portal = new TransactionalDataPortal(); - result = portal.Create(objectType, criteria, context); - - break; - default: - portal = new SimpleDataPortal(); - result = portal.Create(objectType, criteria, context); - break; - } - return result; - } - finally - { - ClearContext(context); - } - } - - /// - /// Get an existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - try - { - SetContext(context); - - DataPortalResult result; - - MethodInfo method = MethodCaller.GetFetchMethod(objectType, criteria); - - IDataPortalServer portal; - switch (TransactionalType(method)) - { - case TransactionalTypes.EnterpriseServices: - portal = new ServicedDataPortal(); - try - { - result = portal.Fetch(objectType, criteria, context); - } - finally - { - ((ServicedDataPortal)portal).Dispose(); - } - break; - case TransactionalTypes.TransactionScope: - portal = new TransactionalDataPortal(); - result = portal.Fetch(objectType, criteria, context); - break; - default: - portal = new SimpleDataPortal(); - result = portal.Fetch(objectType, criteria, context); - break; - } - return result; - } - finally - { - ClearContext(context); - } - } - - /// - /// Update a business object. - /// - /// Business object to update. - /// - /// object passed to the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - public DataPortalResult Update(object obj, DataPortalContext context) - { - try - { - SetContext(context); - - DataPortalResult result; - - MethodInfo method; - string methodName; - if (obj is CommandBase) - methodName = "DataPortal_Execute"; - else if (obj is Core.BusinessBase) - { - Core.BusinessBase tmp = (Core.BusinessBase)obj; - if (tmp.IsDeleted) - methodName = "DataPortal_DeleteSelf"; - else - if (tmp.IsNew) - methodName = "DataPortal_Insert"; - else - methodName = "DataPortal_Update"; - } - else - methodName = "DataPortal_Update"; - - method = MethodCaller.GetMethod(obj.GetType(), methodName); - - IDataPortalServer portal; - switch (TransactionalType(method)) - { - case TransactionalTypes.EnterpriseServices: - portal = new ServicedDataPortal(); - try - { - result = portal.Update(obj, context); - } - finally - { - ((ServicedDataPortal)portal).Dispose(); - } - break; - case TransactionalTypes.TransactionScope: - portal = new TransactionalDataPortal(); - result = portal.Update(obj, context); - break; - default: - portal = new SimpleDataPortal(); - result = portal.Update(obj, context); - break; - } - return result; - } - finally - { - ClearContext(context); - } - } - - /// - /// Delete a business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - try - { - SetContext(context); - - DataPortalResult result; - - MethodInfo method = MethodCaller.GetMethod( - MethodCaller.GetObjectType(criteria), "DataPortal_Delete", criteria); - - IDataPortalServer portal; - switch (TransactionalType(method)) - { - case TransactionalTypes.EnterpriseServices: - portal = new ServicedDataPortal(); - try - { - result = portal.Delete(criteria, context); - } - finally - { - ((ServicedDataPortal)portal).Dispose(); - } - break; - case TransactionalTypes.TransactionScope: - portal = new TransactionalDataPortal(); - result = portal.Delete(criteria, context); - break; - default: - portal = new SimpleDataPortal(); - result = portal.Delete(criteria, context); - break; - } - return result; - } - finally - { - ClearContext(context); - } - } - - #endregion - - #region Context - - private static void SetContext(DataPortalContext context) - { - // if the dataportal is not remote then - // do nothing - if (!context.IsRemotePortal) return; - - // set the context value so everyone knows the - // code is running on the server - ApplicationContext.SetExecutionLocation(ApplicationContext.ExecutionLocations.Server); - - // set the app context to the value we got from the - // client - ApplicationContext.SetContext(context.ClientContext, context.GlobalContext); - - // set the thread's culture to match the client - System.Threading.Thread.CurrentThread.CurrentCulture = - new System.Globalization.CultureInfo(context.ClientCulture); - System.Threading.Thread.CurrentThread.CurrentUICulture = - new System.Globalization.CultureInfo(context.ClientUICulture); - - if (ApplicationContext.AuthenticationType == "Windows") - { - // When using integrated security, Principal must be null - if (context.Principal == null) - { - // Set .NET to use integrated security - AppDomain.CurrentDomain.SetPrincipalPolicy(PrincipalPolicy.WindowsPrincipal); - return; - } - else - { - throw new System.Security.SecurityException(Resources.NoPrincipalAllowedException); - } - } - // We expect the Principal to be of the type BusinesPrincipal - if (context.Principal != null) - { - if (context.Principal is Security.BusinessPrincipalBase) - ApplicationContext.User = context.Principal; - else - throw new System.Security.SecurityException( - Resources.BusinessPrincipalException + " " + - ((object)context.Principal).ToString()); - } - else - throw new System.Security.SecurityException( - Resources.BusinessPrincipalException + " Nothing"); - } - - private static void ClearContext(DataPortalContext context) - { - // if the dataportal is not remote then - // do nothing - if (!context.IsRemotePortal) return; - ApplicationContext.Clear(); - if (ApplicationContext.AuthenticationType != "Windows") - ApplicationContext.User = null; - } - - #endregion - - #region Helper methods - - private static bool IsTransactionalMethod(MethodInfo method) - { - return Attribute.IsDefined(method, typeof(TransactionalAttribute)); - } - - private static TransactionalTypes TransactionalType(MethodInfo method) - { - TransactionalTypes result; - if (IsTransactionalMethod(method)) - { - TransactionalAttribute attrib = - (TransactionalAttribute)Attribute.GetCustomAttribute( - method, typeof(TransactionalAttribute)); - result = attrib.TransactionType; - } - else - result = TransactionalTypes.Manual; - return result; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalContext.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalContext.cs deleted file mode 100644 index 232cbec3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalContext.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using System.Security.Principal; -using System.Threading; -using System.Collections.Specialized; - -namespace Csla.Server -{ - /// - /// Provides consistent context information between the client - /// and server DataPortal objects. - /// - [Serializable()] - public class DataPortalContext - { - private IPrincipal _principal; - private bool _remotePortal; - private string _clientCulture; - private string _clientUICulture; - private HybridDictionary _clientContext; - private HybridDictionary _globalContext; - - /// - /// The current principal object - /// if CSLA security is being used. - /// - public IPrincipal Principal - { - get { return _principal; } - } - - /// - /// Returns if the - /// server-side DataPortal is running - /// on a remote server via remoting. - /// - public bool IsRemotePortal - { - get { return _remotePortal; } - } - - /// - /// The culture setting on the client - /// workstation. - /// - public string ClientCulture - { - get { return _clientCulture; } - } - - /// - /// The culture setting on the client - /// workstation. - /// - public string ClientUICulture - { - get { return _clientUICulture; } - } - internal HybridDictionary ClientContext - { - get { return _clientContext; } - } - - internal HybridDictionary GlobalContext - { - get { return _globalContext; } - } - - /// - /// Creates a new DataPortalContext object. - /// - /// The current Principal object. - /// Indicates whether the DataPortal is remote. - public DataPortalContext(IPrincipal principal, bool isRemotePortal) - { - if (isRemotePortal) - { - _principal = principal; - _remotePortal = isRemotePortal; - _clientCulture = - System.Threading.Thread.CurrentThread.CurrentCulture.Name; - _clientUICulture = - System.Threading.Thread.CurrentThread.CurrentUICulture.Name; - _clientContext = Csla.ApplicationContext.GetClientContext(); - _globalContext = Csla.ApplicationContext.GetGlobalContext(); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalException.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalException.cs deleted file mode 100644 index b42ae7a0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalException.cs +++ /dev/null @@ -1,80 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Server -{ - /// - /// This exception is returned from the - /// server-side DataPortal and contains the exception - /// and context data from the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1032:ImplementStandardExceptionConstructors")] - [Serializable()] - public class DataPortalException : Exception - { - private DataPortalResult _result; - private string _innerStackTrace; - - /// - /// Returns the DataPortalResult object from the server. - /// - public DataPortalResult Result - { - get { return _result; } - } - - /// - /// Get the server-side stack trace from the - /// original exception. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)")] - public override string StackTrace - { - get { return String.Format("{0}{1}{2}", - _innerStackTrace, Environment.NewLine, base.StackTrace); } - } - - /// - /// Creates an instance of the object. - /// - /// Text describing the exception. - /// Inner exception. - /// The data portal result object. - public DataPortalException( - string message, Exception ex, DataPortalResult result) - : base(message, ex) - { - _innerStackTrace = ex.StackTrace; - _result = result; - } - - /// - /// Creates an instance of the object for serialization. - /// - /// Serialiation info object. - /// Serialization context object. - protected DataPortalException(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - : base(info, context) - { - _result = (DataPortalResult)info.GetValue( - "_result", typeof(DataPortalResult)); - _innerStackTrace = info.GetString("_innerStackTrace"); - } - - /// - /// Serializes the object. - /// - /// Serialiation info object. - /// Serialization context object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.LinkDemand, Flags = System.Security.Permissions.SecurityPermissionFlag.SerializationFormatter)] - [System.Security.Permissions.SecurityPermission(System.Security.Permissions.SecurityAction.Demand, Flags = System.Security.Permissions.SecurityPermissionFlag.SerializationFormatter)] - public override void GetObjectData(System.Runtime.Serialization.SerializationInfo info, System.Runtime.Serialization.StreamingContext context) - { - base.GetObjectData(info, context); - info.AddValue("_result", _result); - info.AddValue("_innerStackTrace", _innerStackTrace); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalResult.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalResult.cs deleted file mode 100644 index 9fc05724..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/DataPortalResult.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Specialized; -using System.Text; - -namespace Csla.Server -{ - /// - /// Returns data from the server-side DataPortal to the - /// client-side DataPortal. Intended for internal CSLA .NET - /// use only. - /// - [Serializable()] - public class DataPortalResult - { - private object _returnObject; - private HybridDictionary _globalContext; - - /// - /// The business object being returned from - /// the server. - /// - public object ReturnObject - { - get { return _returnObject; } - } - - /// - /// The global context being returned from - /// the server. - /// - public HybridDictionary GlobalContext - { - get { return _globalContext; } - } - - /// - /// Creates an instance of the object. - /// - public DataPortalResult() - { - _globalContext = ApplicationContext.GetGlobalContext(); - } - - /// - /// Creates an instance of the object. - /// - /// Object to return as part - /// of the result. - public DataPortalResult(object returnObject) - { - _returnObject = returnObject; - _globalContext = ApplicationContext.GetGlobalContext(); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/IDataPortalServer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/IDataPortalServer.cs deleted file mode 100644 index aead2ce1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/IDataPortalServer.cs +++ /dev/null @@ -1,48 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Server -{ - /// - /// Interface implemented by server-side data portal - /// components. - /// - public interface IDataPortalServer - { - /// - /// Create a new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - DataPortalResult Create(Type objectType, object criteria, DataPortalContext context); - /// - /// Get an existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context); - /// - /// Update a business object. - /// - /// Business object to update. - /// - /// object passed to the server. - /// - DataPortalResult Update(object obj, DataPortalContext context); - /// - /// Delete a business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - DataPortalResult Delete(object criteria, DataPortalContext context); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/ServicedDataPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/ServicedDataPortal.cs deleted file mode 100644 index 0f06af25..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/ServicedDataPortal.cs +++ /dev/null @@ -1,97 +0,0 @@ -using System; -using System.EnterpriseServices; -using System.Runtime.InteropServices; - -namespace Csla.Server -{ - /// - /// Implements the server-side Serviced - /// DataPortal described in Chapter 4. - /// - [Transaction(TransactionOption.Required)] - [EventTrackingEnabled(true)] - [ComVisible(true)] - public class ServicedDataPortal : ServicedComponent, IDataPortalServer - { - /// - /// Wraps a Create call in a ServicedComponent. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a COM+ transaction - /// to provide transactional support. - /// - /// A Type object - /// indicating the type of business object to be created. - /// A custom criteria object providing any - /// extra information that may be required to properly create - /// the object. - /// Context data from the client. - /// A populated business object. - [AutoComplete(true)] - public DataPortalResult Create( - Type objectType, object criteria, DataPortalContext context) - { - SimpleDataPortal portal = new SimpleDataPortal(); - return portal.Create(objectType, criteria, context); - } - - /// - /// Wraps a Fetch call in a ServicedComponent. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a COM+ transaction - /// to provide transactional support. - /// - /// Type of business object to retrieve. - /// Object-specific criteria. - /// Object containing context data from client. - /// A populated business object. - [AutoComplete(true)] - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - SimpleDataPortal portal = new SimpleDataPortal(); - return portal.Fetch(objectType, criteria, context); - } - - /// - /// Wraps an Update call in a ServicedComponent. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a COM+ transaction - /// to provide transactional support. - /// - /// A reference to the object being updated. - /// Context data from the client. - /// A reference to the newly updated object. - [AutoComplete(true)] - public DataPortalResult Update(object obj, DataPortalContext context) - { - SimpleDataPortal portal = new SimpleDataPortal(); - return portal.Update(obj, context); - } - - /// - /// Wraps a Delete call in a ServicedComponent. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a COM+ transaction - /// to provide transactional support. - /// - /// Object-specific criteria. - /// Context data from the client. - [AutoComplete(true)] - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - SimpleDataPortal portal = new SimpleDataPortal(); - return portal.Delete(criteria, context); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/SimpleDataPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/SimpleDataPortal.cs deleted file mode 100644 index a87f0834..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/SimpleDataPortal.cs +++ /dev/null @@ -1,317 +0,0 @@ -using System; -using System.Reflection; -using System.Security.Principal; -using System.Collections.Specialized; -using Csla.Properties; - -namespace Csla.Server -{ - /// - /// Implements the server-side DataPortal as discussed - /// in Chapter 4. - /// - public class SimpleDataPortal : IDataPortalServer - { - - #region Data Access - - /// - /// Create a new business object. - /// - /// Type of business object to create. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.Server.DataPortalException.#ctor(System.String,System.Exception,Csla.Server.DataPortalResult)")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")] - public DataPortalResult Create( - Type objectType, object criteria, DataPortalContext context) - { - object obj = null; - - try - { - // create an instance of the business object. - obj = Activator.CreateInstance(objectType, true); - - // tell the business object we're about to make a DataPortal_xyz call - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvoke", new DataPortalEventArgs(context)); - - // tell the business object to create its data - MethodInfo method = MethodCaller.GetCreateMethod(objectType, criteria); - if (criteria is int) - MethodCaller.CallMethod(obj, method); - else - MethodCaller.CallMethod(obj, method, criteria); - - // mark the object as new - MethodCaller.CallMethodIfImplemented( - obj, "MarkNew"); - - // tell the business object the DataPortal_xyz call is complete - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvokeComplete", - new DataPortalEventArgs(context)); - - // return the populated business object as a result - return new DataPortalResult(obj); - } - catch (Exception ex) - { - try - { - // tell the business object there was an exception - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalException", - new DataPortalEventArgs(context), ex); - } - catch - { - // ignore exceptions from the exception handler - } - throw new DataPortalException( - "DataPortal.Create " + Resources.FailedOnServer, - ex, new DataPortalResult(obj)); - } - - } - - /// - /// Get an existing business object. - /// - /// Type of business object to retrieve. - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.Server.DataPortalException.#ctor(System.String,System.Exception,Csla.Server.DataPortalResult)")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes")] - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - object obj = null; - try - { - // create an instance of the business object. - obj = Activator.CreateInstance(objectType, true); - - // tell the business object we're about to make a DataPortal_xyz call - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvoke", - new DataPortalEventArgs(context)); - - // tell the business object to fetch its data - MethodInfo method = MethodCaller.GetFetchMethod(objectType, criteria); - if (criteria is int) - MethodCaller.CallMethod(obj, method); - else - MethodCaller.CallMethod(obj, method, criteria); - - // mark the object as old - MethodCaller.CallMethodIfImplemented( - obj, "MarkOld"); - - // tell the business object the DataPortal_xyz call is complete - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvokeComplete", - new DataPortalEventArgs(context)); - - // return the populated business object as a result - return new DataPortalResult(obj); - } - catch (Exception ex) - { - try - { - // tell the business object there was an exception - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalException", - new DataPortalEventArgs(context), ex); - } - catch - { - // ignore exceptions from the exception handler - } - throw new DataPortalException( - "DataPortal.Fetch " + Resources.FailedOnServer, - ex, new DataPortalResult(obj)); - } - } - - /// - /// Update a business object. - /// - /// Business object to update. - /// - /// object passed to the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.Server.DataPortalException.#ctor(System.String,System.Exception,Csla.Server.DataPortalResult)")] - public DataPortalResult Update(object obj, DataPortalContext context) - { - try - { - // tell the business object we're about to make a DataPortal_xyz call - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvoke", - new DataPortalEventArgs(context)); - - // tell the business object to update itself - if (obj is Core.BusinessBase) - { - Core.BusinessBase busObj = (Core.BusinessBase)obj; - if (busObj.IsDeleted) - { - if (!busObj.IsNew) - { - // tell the object to delete itself - MethodCaller.CallMethod( - busObj, "DataPortal_DeleteSelf"); - } - // mark the object as new - MethodCaller.CallMethodIfImplemented( - busObj, "MarkNew"); - } - else - { - if (busObj.IsNew) - { - // tell the object to insert itself - MethodCaller.CallMethod( - busObj, "DataPortal_Insert"); - } - else - { - // tell the object to update itself - MethodCaller.CallMethod( - busObj, "DataPortal_Update"); - } - // mark the object as old - MethodCaller.CallMethodIfImplemented( - busObj, "MarkOld"); - } - } - else if (obj is CommandBase) - { - // tell the object to update itself - MethodCaller.CallMethod( - obj, "DataPortal_Execute"); - } - else - { - // this is an updatable collection or some other - // non-BusinessBase type of object - // tell the object to update itself - MethodCaller.CallMethod( - obj, "DataPortal_Update"); - // mark the object as old - MethodCaller.CallMethodIfImplemented( - obj, "MarkOld"); - } - - // tell the business object the DataPortal_xyz is complete - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvokeComplete", - new DataPortalEventArgs(context)); - - return new DataPortalResult(obj); - } - catch (Exception ex) - { - try - { - // tell the business object there was an exception - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalException", - new DataPortalEventArgs(context), ex); - } - catch - { - // ignore exceptions from the exception handler - } - throw new DataPortalException( - "DataPortal.Update " + Resources.FailedOnServer, - ex, new DataPortalResult(obj)); - } - } - - /// - /// Delete a business object. - /// - /// Criteria object describing business object. - /// - /// object passed to the server. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", MessageId = "Csla.Server.DataPortalException.#ctor(System.String,System.Exception,Csla.Server.DataPortalResult)")] - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - object obj = null; - try - { - // create an instance of the business objet - obj = CreateBusinessObject(criteria); - - // tell the business object we're about to make a DataPortal_xyz call - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvoke", - new DataPortalEventArgs(context)); - - // tell the business object to delete itself - MethodCaller.CallMethod( - obj, "DataPortal_Delete", criteria); - - // tell the business object the DataPortal_xyz call is complete - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalInvokeComplete", - new DataPortalEventArgs(context)); - - return new DataPortalResult(); - } - catch (Exception ex) - { - try - { - // tell the business object there was an exception - MethodCaller.CallMethodIfImplemented( - obj, "DataPortal_OnDataPortalException", - new DataPortalEventArgs(context), ex); - } - catch - { - // ignore exceptions from the exception handler - } - throw new DataPortalException( - "DataPortal.Delete " + Resources.FailedOnServer, - ex, new DataPortalResult()); - } - } - - #endregion - - #region Creating the business object - - private static object CreateBusinessObject(object criteria) - { - Type businessType; - if (criteria.GetType().IsSubclassOf(typeof(CriteriaBase))) - { - // get the type of the actual business object - // from CriteriaBase - businessType = ((CriteriaBase)criteria).ObjectType; - } - else - { - // get the type of the actual business object - // based on the nested class scheme in the book - businessType = criteria.GetType().DeclaringType; - } - - // create an instance of the business object - return Activator.CreateInstance(businessType, true); - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/TransactionalDataPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/TransactionalDataPortal.cs deleted file mode 100644 index 9c411338..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/Server/TransactionalDataPortal.cs +++ /dev/null @@ -1,121 +0,0 @@ -using System; -using System.Transactions; - -namespace Csla.Server -{ - /// - /// Implements the server-side Serviced - /// DataPortal described in Chapter 4. - /// - public class TransactionalDataPortal : IDataPortalServer - { - /// - /// Wraps a Create call in a TransactionScope - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a - /// TransactionScope - /// to provide transactional support via - /// System.Transactions. - /// - /// A Type object - /// indicating the type of business object to be created. - /// A custom criteria object providing any - /// extra information that may be required to properly create - /// the object. - /// Context data from the client. - /// A populated business object. - public DataPortalResult Create( - System.Type objectType, object criteria, DataPortalContext context) - { - DataPortalResult result; - using (TransactionScope tr = new TransactionScope()) - { - SimpleDataPortal portal = new SimpleDataPortal(); - result = portal.Create(objectType, criteria, context); - tr.Complete(); - } - return result; - } - - /// - /// Called by the client-side DataProtal to retrieve an object. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a - /// TransactionScope - /// to provide transactional support via - /// System.Transactions. - /// - /// Type of business object to retrieve. - /// Object-specific criteria. - /// Object containing context data from client. - /// A populated business object. - public DataPortalResult Fetch(Type objectType, object criteria, DataPortalContext context) - { - DataPortalResult result; - using (TransactionScope tr = new TransactionScope()) - { - SimpleDataPortal portal = new SimpleDataPortal(); - result = portal.Fetch(objectType, criteria, context); - tr.Complete(); - } - return result; - } - - /// - /// Called by the client-side DataPortal to update an object. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a - /// TransactionScope - /// to provide transactional support via - /// System.Transactions. - /// - /// A reference to the object being updated. - /// Context data from the client. - /// A reference to the newly updated object. - public DataPortalResult Update(object obj, DataPortalContext context) - { - DataPortalResult result; - using (TransactionScope tr = new TransactionScope()) - { - SimpleDataPortal portal = new SimpleDataPortal(); - result = portal.Update(obj, context); - tr.Complete(); - } - return result; - } - - /// - /// Called by the client-side DataPortal to delete an object. - /// - /// - /// This method delegates to - /// SimpleDataPortal - /// but wraps that call within a - /// TransactionScope - /// to provide transactional support via - /// System.Transactions. - /// - /// Object-specific criteria. - /// Context data from the client. - public DataPortalResult Delete(object criteria, DataPortalContext context) - { - DataPortalResult result; - using (TransactionScope tr = new TransactionScope()) - { - SimpleDataPortal portal = new SimpleDataPortal(); - result = portal.Delete(criteria, context); - tr.Complete(); - } - return result; - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalAttribute.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalAttribute.cs deleted file mode 100644 index f5c093d7..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalAttribute.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; - -namespace Csla -{ - /// - /// Marks a DataPortal_XYZ method to run within - /// the specified transactional context. - /// - /// - /// - /// Each business object method may be marked with this attribute - /// to indicate which type of transactional technology should - /// be used by the server-side DataPortal. The possible options - /// are listed in the - /// TransactionalTypes enum. - /// - /// If the Transactional attribute is not applied to a - /// DataPortal_XYZ method then the - /// Manual option - /// is assumed. - /// - /// If the Transactional attribute is applied with no explicit - /// choice for transactionType then the - /// EnterpriseServices - /// option is assumed. - /// - /// Both the EnterpriseServices and TransactionScope options provide - /// 2-phase distributed transactional support. - /// - /// - [AttributeUsage(AttributeTargets.Method)] - public sealed class TransactionalAttribute : Attribute - { - private TransactionalTypes _type; - - /// - /// Marks a method to run within a COM+ - /// transactional context. - /// - public TransactionalAttribute() - { - _type = TransactionalTypes.EnterpriseServices; - } - - /// - /// Marks a method to run within the specified - /// type of transactional context. - /// - /// - /// Specifies the transactional context within which the - /// method should run. - public TransactionalAttribute(TransactionalTypes transactionType) - { - _type = transactionType; - } - - /// - /// Gets the type of transaction requested by the - /// business object method. - /// - public TransactionalTypes TransactionType - { - get { return _type; } - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalTypes.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalTypes.cs deleted file mode 100644 index d523b84f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DataPortal/TransactionalTypes.cs +++ /dev/null @@ -1,34 +0,0 @@ -namespace Csla -{ - - /// - /// Provides a list of possible transactional - /// technologies to be used by the server-side - /// DataPortal. - /// - public enum TransactionalTypes - { - /// - /// Causes the server-side DataPortal to - /// use Enterprise Services (COM+) transactions. - /// - EnterpriseServices, - /// - /// Causes the server-side DataPortal to - /// use System.Transactions TransactionScope - /// style transactions. - /// - TransactionScope, - /// - /// Causes the server-side DataPortal to - /// use no explicit transactional technology. - /// - /// - /// This option allows the business developer to - /// implement their own transactions. Common options - /// include ADO.NET transactions and System.Transactions - /// TransactionScope. - /// - Manual - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DefaultFilter.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DefaultFilter.cs deleted file mode 100644 index 1b85e5a1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/DefaultFilter.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla -{ - internal static class DefaultFilter - { - public static bool Filter(object item, object filter) - { - bool result = false; - if (item != null && filter != null) - result = item.ToString().Contains(filter.ToString()); - return result; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/AuthorizationRules.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/AuthorizationRules.cd deleted file mode 100644 index 89f774ba..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/AuthorizationRules.cd +++ /dev/null @@ -1,25 +0,0 @@ - - - - - - - Security\AuthorizationRules.cs - AoiCAgAAAAAhAAAQAAAIAAAAAAAAAAAAAAABACIAgAA= - - - - - - Security\RolesForProperty.cs - AAgAAAAAABAAAAAABAQQBAAAAAAAAQBAAAAAECIAgAA= - - - - - - Security\AccessType.cs - AAAAAAAAABAAAAAABAAQBAAAAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/BindableBaseClasses.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/BindableBaseClasses.cd deleted file mode 100644 index 0c431f5b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/BindableBaseClasses.cd +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - BusinessBase.cs - AAAAAIAAAAAAAAAEgAAAAAAAAAAAAIAAAAAAAAAAgBA= - - - - - - BusinessListBase.cs - AgAAAIlACAAAHAJIkAgAGAgEQACAAAEEoQIBUAAgCFA= - - - - - - - - - - - - Core\BusinessBase.cs - FAgBAA8ACAADnCTIEAlISEiUBJHgAAEAIFKBAQAgKEA= - - - - - - - Core\UndoableBase.cs - AgAIAAAAAAgAAAQAAAIBEAAAAAAQAAAAAgBAEAAAAAA= - - - - - - - Core\BindableBase.cs - AAAABAAAAAAAAAACIAAAIAAAgAAAAAAAAAAAAAAAAAA= - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/Csla.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/Csla.cd deleted file mode 100644 index aceb36f2..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/Csla.cd +++ /dev/null @@ -1,88 +0,0 @@ - - - - - - - BusinessBase.cs - AAAAAIAAAAAAAAAEgAAAAAAAAAAAAIAAAAAAAAAAgBA= - - - - - - Core\BusinessBase.cs - FAgBAA8ACAADnCTIEAlISEiUBJHgAAEAIFKBAQAgKEA= - - - - - - - Core\UndoableBase.cs - AgAIAAAAAAAAAAQAAAIBkAAAAAAAEAAAAAhAEAAAAAA= - - - - - - - Core\BindableBase.cs - AAAABAAAAAAAAAACIAAAIAAAgAAAAAAAAAAAAAAAAAA= - - - - - - - BusinessListBase.cs - AgAAAIlACAAAHAJIEAgAGAgAAACIAAlEoQIBUAAgCFA= - - - - - - - - - - - - Core\ReadOnlyBindingList.cs - AAAAAABAAAAABAAQAAAAAAAAQCAAAAAEIAAAAAAAAAA= - - - - - - - NameValueListBase.cs - BAAAAAgAAAAEBAQIEAAAAAAAAAAAAAEAAAIgAAAACFA= - - - - - - - CommandBase.cs - AAAAAAgAAAAABABAEAAAAAAAAAAAAAEAAAAAAAAACEI= - - - - - - - ReadOnlyListBase.cs - BAAAAAgAAAAABAAIEAAAAAAAAAAAAAEAAAIAAAAACFA= - - - - - - - SortedBindingList.cs - AGoAAEAAgUQACBAUGAAINAQAKAE4ROAIeAEQADBQIpQ= - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaBaseClasses.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaBaseClasses.cd deleted file mode 100644 index e8aaefde..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaBaseClasses.cd +++ /dev/null @@ -1,51 +0,0 @@ - - - - - - - BusinessBase.cs - AAAAAIAAAAAAAAAEgAAAAAAAAAAAAIAAAAAAAAAAgBA= - - - - - - BusinessListBase.cs - AgAAAIlACAAAHAJIkAgAGAgEQACAAAEEoQIBUAAgCFA= - - - - - - - CommandBase.cs - AAAAAAgAAAAABABAEAAAAAAAAAAAAAEAAAAAAAAACEI= - - - - - - - NameValueListBase.cs - BAAAAAgAAAAEBAQIEAAAAAAAAAAAAAEAAAIgAAAACFA= - - - - - - - ReadOnlyBase.cs - AAAAAAgAAAAABABMkAAIAAAEAABAAIEAAAIAAAAAiFA= - - - - - - - ReadOnlyListBase.cs - BAAAAAgAAAAABAAIEAAAAAAAAAAAAAEAAAIAAAAACFA= - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaDataSource.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaDataSource.cd deleted file mode 100644 index c2e047b8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/CslaDataSource.cd +++ /dev/null @@ -1,84 +0,0 @@ - - - - - - - Web\Design\CslaDataSourceDesigner.cs - EAAAAACAAAAAAQABAAAAAAAAAAAAAAACCCABAAIAAAA= - - - - - - Web\Design\CslaDesignerDataSourceView.cs - AEACgAQAAAAAAAAAABABAAAEAAAAAAAAAAABAQAAAAA= - - - - - - Web\Design\ObjectFieldInfo.cs - AAAAAAAAAAIEAAAQgIIAAAREAAAwAEAABEAAAAAAkAA= - - - - - - - Web\Design\ObjectSchema.cs - AAAAAAAAAABAAAABAAAAAAAAAAAAAAAAAAAAACAAAAA= - - - - - - - Web\Design\ObjectViewSchema.cs - AIAAAAAAgABAAAABAAAAAAQAAAAAQAAAAAAAAAAAAAA= - - - - - - - Web\CslaDataSource.cs - AAAAgAAAAAAkAgABIAIAEABAAAAAABEACAABAAAAAIA= - - - - - - Web\CslaDataSource.cs - AAAACAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAAAAAA= - - - - - - Web\CslaDataSource.cs - AAAAAAAAAAAAAAgAAAAAAAAAAAQAAAAAAAAgAAAAACA= - - - - - - Web\CslaDataSource.cs - AAQQAAAAAAAAAAgACEAAAAAAAAQAAAAAAAAgAAAAACA= - - - - - - Web\CslaDataSource.cs - AAQQAAAAAAAAAAgACEAAAAAAAAQAAAAAAAAAAAAAAAA= - - - - - - Web\CslaDataSourceView.cs - AEACgAQAAABAAgABABAAAAAACAAAABAQAAgBAQAAAAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/DataPortal.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/DataPortal.cd deleted file mode 100644 index 94c017fa..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/DataPortal.cd +++ /dev/null @@ -1,98 +0,0 @@ - - - - - - - DataPortal\Client\DataPortal.cs - AAQAAAAAABAAAAQAAAHAAgAAIAEAAEAIAAAIAAADAAA= - - - - - - DataPortal\Client\EnterpriseServicesProxy.cs - AAQAAAAAAAAAAAAAAAEIAAAAAAEAAEQAAAAAAAAAAAA= - - - - - - - DataPortal\Client\LocalProxy.cs - AAQAAAAAAAAAAAAAAAGIAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Client\RemotingProxy.cs - AAQAAAAAAAAAAAAAAAGIAAAAAAEAAEAAAAAAAAABAIA= - - - - - - - DataPortal\Client\WebServicesProxy.cs - AAQAAAAAAAAAABAAAAEIAAAAACFAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\EnterpriseServicesPortal.cs - AAQAAAAAAAAAAAAIAAEAAAAAAAEAAEABAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\RemotingPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\WebServicePortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAACFAAEAAAAAAAAAAAAA= - - - - - - DataPortal\Server\TransactionalDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Server\SimpleDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAIAAAAA= - - - - - - - DataPortal\Server\ServicedDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Server\DataPortal.cs - AEQAAAAAAAIAAAAAQAEAAAAAAAEAAEAAAAQAAAAAAAA= - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/FullCsla.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/FullCsla.cd deleted file mode 100644 index 818ea5cf..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/FullCsla.cd +++ /dev/null @@ -1,452 +0,0 @@ - - - - - - - BusinessBase.cs - AAAAAIAAAAAAAAAEgAAAAAAAAAAAAIAAAAAAAAAAgBA= - - - - - - Core\BusinessBase.cs - FAgBAA8ACAATnCTIEAlISEiUBJHgAAEAIFCBAQAgKEA= - - - - - - - Core\UndoableBase.cs - AgAIAAAAAAgAAAQAAAIBEAAAAAAQAAAAAgBAEAAAAAA= - - - - - - - Core\BindableBase.cs - AAAABAAAAAAAAAACIAAAIAAAgIAAAAAAAAAAAAAAAAA= - - - - - - - BusinessListBase.cs - AgAAAIlACAAQHAJIkAgAGAgEQACAAAEEoQABUAAgCFA= - - - - - - - - - - - - CommandBase.cs - AAAAAAgAAAAABABAEAAAAAAAAAAAAAEAAAAAAAAACEI= - - - - - - - NameValueListBase.cs - BAAAAAgAAAAUBAQIEAAAAAAAAAAAAAEAAAAgAAAACFA= - - - - - - - Core\ReadOnlyBindingList.cs - AAAAAABAAAAABAAQAAAAAAAAQCAAAAAEIAAAAAAAAAA= - - - - - - - NotUndoableAttribute.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - ReadOnlyBase.cs - AAAAAAgAAAAQBABMkAAIAAAEAABAAIEAAAAAAAAAiFA= - - - - - - - ReadOnlyListBase.cs - BAAAAAgAAAAQBAAIEAAAAAAAAAAAAAEAAAAAAAAACFA= - - - - - - - SortedBindingList.cs - AGoAAEAAgUQACBAUGAAINAQAKAE4RKAIeAEQADBQIpQ= - - - - - - - DataPortal\Client\DataPortal.cs - AAQAAAAAABAAAAQAAAHAAgAAIAEAAEAIAAAIAAADAAA= - - - - - - DataPortal\Client\EnterpriseServicesProxy.cs - AAQAAAAAAAAAAAAAAAEIAAAAAAEAAEQAAAAAAAAAAAA= - - - - - - - DataPortal\Client\LocalProxy.cs - AAQAAAAAAAAAAAAAAAGIAAAAAAEAAEAAAAAAAAABAAA= - - - - - - - DataPortal\Client\RemotingProxy.cs - AAQAAAAAAAAAAAAAAAGIAAAAAAEAAEAAAAAAAAABAIA= - - - - - - - DataPortal\Client\WebServicesProxy.cs - AAQAAAAAAAAAABAAAAEIAAAAACFAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\EnterpriseServicesPortal.cs - AAQAAAAAAAAAAAAIAAEAAAAAAAEAAEABAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\RemotingPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Hosts\WebServicePortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAACFAAEAAAAAAAAAAAAA= - - - - - - DataPortal\Server\TransactionalDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Server\SimpleDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAIAAAAA= - - - - - - - DataPortal\Server\ServicedDataPortal.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - - DataPortal\Server\DataPortalContext.cs - AAASQAAAAAAAABAAACAAAABACAAAAAAEACAAAAIAACE= - - - - - - DataPortal\ApplicationContext.cs - IAABAACAAAIAAABAiCIAAgBAAAAAAAAIAAAAAAJACAA= - - - - - - DataPortal\Server\DataPortalResult.cs - AAAAQAAAAAAAAAAAACAAAAAAAAAAAAAAAAAAAEAAAAI= - - - - - - DataPortal\Server\DataPortalException.cs - AAAABAAAAAAAAgACAAAAAAQgAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\CriteriaBase.cs - AAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAAIAAAAAAAAA= - - - - - - DataPortal\RunLocalAttribute.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\Server\DataPortal.cs - AEQAAAAAAAIAAAAAQAEAAAAAAAEAAEAAAAQAAAAAAAA= - - - - - - - DataPortal\TransactionalAttribute.cs - AAAAAAAAAAAAAAQAAAAAAAAAAAAAAAEAAAAAAAAAAAA= - - - - - - Core\ObjectCloner.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABA= - - - - - - Data\SafeDataReader.cs - BCCQIAAgMCgAAAABCAIIBCYgAAJEAEQwIBQAAACAJEA= - - - - - - - Data\ObjectAdapter.cs - AAABAAAAgGAAAAAAAAAAAAAAQAAACAAAAIAAAAAAAAA= - - - - - - Security\AuthorizationRules.cs - AoiCAgAAAAAhAAAQAAAIAAAAAAAAAAAAAAABACIAgAA= - - - - - - Security\RolesForProperty.cs - AAgAAAAAABAAAAAABAQQBAAAAAAAAQBAAAAAECIAgAA= - - - - - - Security\BusinessPrincipalBase.cs - AAAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAEAAAAAAABA= - - - - - - - Validation\CommonRules.cs - AAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAgAAgEAAAAQA= - - - - - - Validation\ValidationRules.cs - AAAAAAAAAAAAACAAAAggAAIIQgAEAAAAAAgAAAAAgAI= - - - - - - Validation\BrokenRulesCollection.cs - AAIAAAAAAAAAAAAEIAAABAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Validation\BrokenRule.cs - EAAABAAAAAAgAAAEAAAAAAAABAAAAAAAAAAAAQAAAAA= - - - - - - Validation\ValidationException.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Data\DataMapper.cs - AAAAAAAAABAAAgAAAAAAQAAAAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\MethodCaller.cs - AAACAAAAAACAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAIA= - - - - - - DataPortal\Server\CallMethodException.cs - AAAABAAAAAAAAgAAAAAAAAAgAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\DataPortalEventArgs.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAEAAAAAAAAA= - - - - - - DataPortal\DataPortalException.cs - AAAADAAAAAAAAgAAAAAAAABgAAAAAAAAAAAAAAAAAEA= - - - - - - Validation\RuleArgs.cs - EAAAAAAAAAAgAAAEAAAAAAAAAAAAAAAAAAAAAABAAAA= - - - - - - SmartDate.cs - AAJAAAAAACAACAQExAGCEgAAAwAAAIAhAAAACAAAB2A= - - - - - - - Core\IBusinessObject.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Core\IUndoableObject.cs - AgAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAA= - - - - - - Core\IEditableCollection.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAA= - - - - - - Core\IReadOnlyObject.cs - AAAAAAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAA= - - - - - - Core\ICommandObject.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Core\IReadOnlyCollection.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\Server\IDataPortalServer.cs - AAQAAAAAAAAAAAAAAAEAAAAAAAEAAEAAAAAAAAAAAAA= - - - - - - DataPortal\Client\IDataPortalProxy.cs - AAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - DataPortal\TransactionalTypes.cs - AAAAAAAgQAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAAAAA= - - - - - - Security\AccessType.cs - AAAAAAAAABAAAAAABAAQBAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Validation\RuleHandler.cs - AAAAAAAAAAAAAAIAAAAAAAAQAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/UndoableBase.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/UndoableBase.cd deleted file mode 100644 index b7a56c0f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/UndoableBase.cd +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - BusinessBase.cs - AAAAAIAAAAAAAAAEgAAAAAAAAAAAAIAAAAAAAAAAgBA= - - - - - - Core\BusinessBase.cs - FAgBAA8ACAADnCDIEAlISEiUBJHgAAEAIFKBAQAgKEA= - - - - - - - Core\UndoableBase.cs - AgAAAAAAAAAAAAAAAAIAkAAAAAAAEAAAAAhAEAAAAAA= - - - - - - - NotUndoableAttribute.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - BusinessListBase.cs - AgAAAIhACAAADAJIEAgAGCgAQACIAAlEoQIBUAAgCFA= - - - - - - - Core\IEditableObject.cs - AgAAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAEAAAAAA= - - - - - - Core\IEditableCollection.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAAAAAAAAAAAAA= - - - - - - - - - - Core\IBusinessObject.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/ValidationRules.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/ValidationRules.cd deleted file mode 100644 index b3f1d3e3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Diagrams/ValidationRules.cd +++ /dev/null @@ -1,60 +0,0 @@ - - - - - - - Validation\ValidationRules.cs - AAAAAAAAAAAAACAAAAggAAIIQgAEAAAAAAgAAAAAgAI= - - - - - - Validation\ValidationException.cs - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Validation\RuleArgs.cs - EAAAAAAAAAAgAAAEAAAAAAAAAAAAAAAAAAAAAABAAAA= - - - - - - Validation\CommonRules.cs - AAAAAAAAAAAAAAgAAAAAAAAAAAAAAAAAgAAgEAAAAQA= - - - - - - Validation\BrokenRulesCollection.cs - AAIAAAAAAAAAAAAEIAAABAAAAAAAAAAAAAAAAAAAAAA= - - - - - - Validation\BrokenRule.cs - EAAABAAAAAAgAAAEAAAAAAAABAAAAAAAAAAAAQAAAAA= - - - - - - Validation\RuleMethod.cs - AAAAhAAAAAAIAAAEAAEAAAAARAAAAAAAAAAAAAAAAQA= - - - - - - Validation\RuleHandler.cs - AAAAAAAAAAAAAAIAAAAAAAAQAAAAAAAAAAAAAAAAAAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EditableRootListBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EditableRootListBase.cs deleted file mode 100644 index 809934a4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EditableRootListBase.cs +++ /dev/null @@ -1,281 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Runtime.Serialization; -using System.ComponentModel; - -namespace Csla -{ - /// - /// This is the base class from which collections - /// of editable root business objects should be - /// derived. - /// - /// - /// Type of editable root object to contain within - /// the collection. - /// - /// - /// - /// Your subclass should implement a factory method - /// and should override or overload - /// DataPortal_Fetch() to implement data retrieval. - /// - /// Saving (inserts or updates) of items in the collection - /// should be handled through the SaveItem() method on - /// the collection. - /// - /// Removing an item from the collection - /// through Remove() or RemoveAt() causes immediate deletion - /// of the object, by calling the object's Delete() and - /// Save() methods. - /// - /// - [Serializable()] - public abstract class EditableRootListBase : Core.ExtendedBindingList, Core.IParent - where T : Core.IEditableBusinessObject, Core.ISavable - { - - #region SaveItem Methods - - private bool _activelySaving; - - /// - /// Saves the specified item in the list. - /// - /// - /// Reference to the item to be saved. - /// - /// - /// This method properly saves the child item, - /// by making sure the item in the collection - /// is properly replaced by the result of the - /// Save() method call. - /// - public void SaveItem(T item) - { - - SaveItem(IndexOf(item)); - - } - - /// - /// Saves the specified item in the list. - /// - /// - /// Index of the item to be saved. - /// - /// - /// This method properly saves the child item, - /// by making sure the item in the collection - /// is properly replaced by the result of the - /// Save() method call. - /// - public virtual void SaveItem(int index) - { - bool raisingEvents = this.RaiseListChangedEvents; - this.RaiseListChangedEvents = false; - - _activelySaving = true; - - T item = this[index]; - int editLevel = item.EditLevel; - // commit all changes - for (int tmp = 1; tmp <= editLevel; tmp++) - item.AcceptChanges(); - try - { - // do the save - this[index] = (T)item.Save(); - } - finally - { - // restore edit level to previous level - for (int tmp = 1; tmp <= editLevel; tmp++) - item.CopyState(); - _activelySaving = false; - this.RaiseListChangedEvents = raisingEvents; - } - this.OnListChanged(new ListChangedEventArgs(ListChangedType.ItemChanged, index)); - } - - #endregion - - #region Insert, Remove, Clear - - /// - /// Gives the new object a parent reference to this - /// list. - /// - /// Index at which to insert the item. - /// Item to insert. - protected override void InsertItem(int index, T item) - { - item.SetParent(this); - base.InsertItem(index, item); - } - - /// - /// Removes an item from the list. - /// - /// Index of the item - /// to be removed. - protected override void RemoveItem(int index) - { - // delete item from database - T item = this[index]; - - // only delete/save the item if it is not new - if (!item.IsNew) - { - item.Delete(); - SaveItem(index); - } - - // disconnect event handler if necessary - System.ComponentModel.INotifyPropertyChanged c = item as System.ComponentModel.INotifyPropertyChanged; - if (c != null) - { - c.PropertyChanged -= new System.ComponentModel.PropertyChangedEventHandler(Child_PropertyChanged); - } - - base.RemoveItem(index); - } - - #endregion - - #region IParent Members - - void Csla.Core.IParent.ApplyEditChild(Core.IEditableBusinessObject child) - { - if (!_activelySaving && child.EditLevel == 0) - SaveItem((T)child); - } - - void Csla.Core.IParent.RemoveChild(Core.IEditableBusinessObject child) - { - // do nothing, removal of a child is handled by - // the RemoveItem override - } - - #endregion - - #region Cascade Child events - - private void Child_PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) - { - for (int index = 0; index < this.Count; index++) - { - if (ReferenceEquals(this[index], sender)) - { - OnListChanged(new System.ComponentModel.ListChangedEventArgs(System.ComponentModel.ListChangedType.ItemChanged, index)); - break; - } - } - } - - #endregion - - #region Serialization Notification - - [OnDeserialized()] - private void OnDeserializedHandler(StreamingContext context) - { - - OnDeserialized(context); - foreach (Core.IEditableBusinessObject child in this) - { - child.SetParent(this); - System.ComponentModel.INotifyPropertyChanged c = child as System.ComponentModel.INotifyPropertyChanged; - if (c != null) - { - c.PropertyChanged += new System.ComponentModel.PropertyChangedEventHandler(Child_PropertyChanged); - } - } - - } - - /// - /// This method is called on a newly deserialized object - /// after deserialization is complete. - /// - /// Serialization context object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnDeserialized(StreamingContext context) - { - - // do nothing - this is here so a subclass - // could override if needed - - } - - #endregion - - #region Data Access - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Create(object criteria) - { - throw new NotSupportedException(Properties.Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Properties.Resources.FetchNotSupportedException); - } - - private void DataPortal_Update() - { - throw new NotSupportedException(Properties.Resources.UpdateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Properties.Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member"), EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member"), EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member"), EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EnterpriseServicesSettings.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EnterpriseServicesSettings.cs deleted file mode 100644 index 1f9a5100..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/EnterpriseServicesSettings.cs +++ /dev/null @@ -1,7 +0,0 @@ -using System.EnterpriseServices; - -// EnterpriseServices settings -[assembly: ApplicationActivation(ActivationOption.Library)] -[assembly: ApplicationName("CSLA .NET DataPortal")] -[assembly: Description("CSLA .NET Serviced DataPortal")] -[assembly: ApplicationAccessControl(false)] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilterProvider.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilterProvider.cs deleted file mode 100644 index 51166a65..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilterProvider.cs +++ /dev/null @@ -1,13 +0,0 @@ -using System; - -namespace Csla -{ - /// - /// Defines the method signature for a filter - /// provider method used by FilteredBindingList. - /// - /// The object to be filtered. - /// The filter criteria. - /// if the item matches the filter. - public delegate bool FilterProvider(object item, object filter); -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilteredBindingList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilteredBindingList.cs deleted file mode 100644 index 61123545..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/FilteredBindingList.cs +++ /dev/null @@ -1,932 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Reflection; -using System.Collections; - -namespace Csla -{ - /// - /// Provides a filtered view into an existing IList(Of T). - /// - /// The type of the objects contained - /// in the original list. - public class FilteredBindingList : - IList, IBindingList, IEnumerable, - ICancelAddNew - { - - #region ListItem class - - private class ListItem - { - private object _key; - private int _baseIndex; - - public object Key - { - get { return _key; } - } - - public int BaseIndex - { - get { return _baseIndex; } - set { _baseIndex = value; } - } - - public ListItem(object key, int baseIndex) - { - _key = key; - _baseIndex = baseIndex; - } - - public override string ToString() - { - return Key.ToString(); - } - - } - - #endregion - - #region Filtered enumerator - - private class FilteredEnumerator : IEnumerator - { - private IList _list; - private List _filterIndex; - private int _index; - - public FilteredEnumerator( - IList list, - List filterIndex) - { - _list = list; - _filterIndex = filterIndex; - Reset(); - } - - public T Current - { - get { return _list[_filterIndex[_index].BaseIndex]; } - } - - Object System.Collections.IEnumerator.Current - { - get { return _list[_filterIndex[_index].BaseIndex]; } - } - - public bool MoveNext() - { - if (_index < _filterIndex.Count - 1) - { - _index++; - return true; - } - else - return false; - } - - public void Reset() - { - _index = -1; - } - - #region IDisposable Support - - private bool _disposedValue = false; // To detect redundant calls. - - // IDisposable - protected virtual void Dispose(bool disposing) - { - if (!_disposedValue) - { - if (disposing) - { - // TODO: free unmanaged resources when explicitly called - } - // TODO: free shared unmanaged resources - } - _disposedValue = true; - } - - // this code added to correctly implement the disposable pattern. - public void Dispose() - { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above. - Dispose(true); - GC.SuppressFinalize(this); - } - - ~FilteredEnumerator() - { - Dispose(false); - } - - #endregion - - } - - #endregion - - #region Filter/Unfilter - - private void DoFilter() - { - int index = 0; - _filterIndex.Clear(); - - if (_provider == null) - _provider = DefaultFilter.Filter; - - if (_filterBy == null) - { - foreach (T obj in _list) - { - if (_provider.Invoke(obj, _filter)) - _filterIndex.Add(new ListItem(obj, index)); - index++; - } - } - else - { - foreach (T obj in _list) - { - object tmp = _filterBy.GetValue(obj); - if (_provider.Invoke(tmp, _filter)) - _filterIndex.Add(new ListItem(tmp, index)); - index++; - } - } - - _filtered = true; - - OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, 0)); - - } - - private void UnDoFilter() - { - _filterIndex.Clear(); - _filterBy = null; - _filter = null; - _filtered = false; - - OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, 0)); - - } - - #endregion - - #region IEnumerable - - /// - /// Gets an enumerator object. - /// - /// - public IEnumerator GetEnumerator() - { - if (_filtered) - return new FilteredEnumerator(_list, _filterIndex); - else - return _list.GetEnumerator(); - } - - #endregion - - #region IBindingList, IList - - /// - /// Implemented by IList source object. - /// - /// Property on which - /// to build the index. - public void AddIndex(PropertyDescriptor property) - { - if (_supportsBinding) - _bindingList.AddIndex(property); - } - - /// - /// Implemented by IList source object. - /// - public object AddNew() - { - T result; - if (_supportsBinding) - result = (T)_bindingList.AddNew(); - else - result = default(T); - - //_newItem = (T)result; - return result; - } - - /// - /// Implemented by IList source object. - /// - public bool AllowEdit - { - get - { - if (_supportsBinding) - return _bindingList.AllowEdit; - else - return false; - } - } - - /// - /// Implemented by IList source object. - /// - public bool AllowNew - { - get - { - if (_supportsBinding) - return _bindingList.AllowNew; - else - return false; - } - } - - /// - /// Implemented by IList source object. - /// - public bool AllowRemove - { - get - { - if (_supportsBinding) - return _bindingList.AllowRemove; - else - return false; - } - } - - /// - /// Sorts the list if the original list - /// supports sorting. - /// - /// Property on which to sort. - /// Direction of the sort. - public void ApplySort( - PropertyDescriptor property, ListSortDirection direction) - { - if (SupportsSorting) - _bindingList.ApplySort(property, direction); - else - throw new NotSupportedException("Sorting not supported."); - } - - /// - /// Finds an item in the view - /// - /// Name of the property to search - /// Value to find - public int Find(string propertyName, object key) - { - PropertyDescriptor findProperty = null; - - if (!String.IsNullOrEmpty(propertyName)) - { - Type itemType = typeof(T); - foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(itemType)) - { - if (prop.Name == propertyName) - { - findProperty = prop; - break; - } - } - } - - return Find(findProperty, key); - - } - - /// - /// Implemented by IList source object. - /// - /// Key value for which to search. - /// Property to search for the key - /// value. - public int Find(PropertyDescriptor property, object key) - { - if (_supportsBinding) - return FilteredIndex(_bindingList.Find(property, key)); - else - return -1; - } - - /// - /// Returns True if the view is currently sorted. - /// - public bool IsSorted - { - get - { - if (SupportsSorting) - return _bindingList.IsSorted; - else - return false; - } - } - - /// - /// Raised to indicate that the list's data has changed. - /// - /// - /// This event is raised if the underling IList object's data changes - /// (assuming the underling IList also implements the IBindingList - /// interface). It is also raised if the filter - /// is changed to indicate that the view's data has changed. - /// - public event ListChangedEventHandler ListChanged; - - /// - /// Raises the ListChanged event. - /// - /// Parameter for the event. - protected void OnListChanged(ListChangedEventArgs e) - { - if (ListChanged != null) - ListChanged(this, e); - } - - /// - /// Implemented by IList source object. - /// - /// Property for which the - /// index should be removed. - public void RemoveIndex(PropertyDescriptor property) - { - if (_supportsBinding) - _bindingList.RemoveIndex(property); - } - - /// - /// Removes any sort currently applied to the view. - /// - public void RemoveSort() - { - if (SupportsSorting) - _bindingList.RemoveSort(); - else - throw new NotSupportedException("Sorting not supported"); - } - - /// - /// Returns the direction of the current sort. - /// - public ListSortDirection SortDirection - { - get - { - if (SupportsSorting) - return _bindingList.SortDirection; - else - return ListSortDirection.Ascending; - } - } - - /// - /// Returns the PropertyDescriptor of the current sort. - /// - public PropertyDescriptor SortProperty - { - get - { - if (SupportsSorting) - return _bindingList.SortProperty; - else - return null; - } - } - - /// - /// Returns True since this object does raise the - /// ListChanged event. - /// - public bool SupportsChangeNotification - { - get { return true; } - } - - /// - /// Implemented by IList source object. - /// - public bool SupportsSearching - { - get - { - if (_supportsBinding) - return _bindingList.SupportsSearching; - else - return false; - } - } - - /// - /// Returns True. Sorting is supported. - /// - public bool SupportsSorting - { - get - { - if (_supportsBinding) - return _bindingList.SupportsSorting; - else - return false; - } - } - - /// - /// Copies the contents of the list to - /// an array. - /// - /// Array to receive the data. - /// Starting array index. - public void CopyTo(T[] array, int arrayIndex) - { - _list.CopyTo(array, arrayIndex); - } - - void System.Collections.ICollection.CopyTo(System.Array array, int index) - { - CopyTo((T[])array, index); - } - - /// - /// Gets the number of items in the list. - /// - public int Count - { - get - { - if (_filtered) - return _filterIndex.Count; - else - return _list.Count; - } - } - - bool System.Collections.ICollection.IsSynchronized - { - get { return false; } - } - - object System.Collections.ICollection.SyncRoot - { - get { return _list; } - } - - IEnumerator System.Collections.IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - - /// - /// Adds an item to the list. - /// - /// Item to be added. - public void Add(T item) - { - _list.Add(item); - } - - int System.Collections.IList.Add(object value) - { - Add((T)value); - int index = FilteredIndex(_list.Count - 1); - if (index > -1) - return index; - else - return 0; - } - - /// - /// Clears the list. - /// - public void Clear() - { - _list.Clear(); - } - - /// - /// Determines whether the specified - /// item is contained in the list. - /// - /// Item to find. - /// if the item is - /// contained in the list. - public bool Contains(T item) - { - return _list.Contains(item); - } - - bool System.Collections.IList.Contains(object value) - { - return Contains((T)value); - } - - /// - /// Gets the 0-based index of an - /// item in the list. - /// - /// The item to find. - /// 0-based index of the item - /// in the list. - public int IndexOf(T item) - { - return FilteredIndex(_list.IndexOf(item)); - } - - int System.Collections.IList.IndexOf(object value) - { - return IndexOf((T)value); - } - - /// - /// Inserts an item into the list. - /// - /// Index at - /// which to insert the item. - /// Item to insert. - public void Insert(int index, T item) - { - _list.Insert(index, item); - } - - void System.Collections.IList.Insert(int index, object value) - { - Insert(index, (T)value); - } - - bool System.Collections.IList.IsFixedSize - { - get { return false; } - } - - /// - /// Gets a value indicating whether the list - /// is read-only. - /// - public bool IsReadOnly - { - get { return _list.IsReadOnly; } - } - - object System.Collections.IList.this[int index] - { - get - { - return this[index]; - } - set - { - this[index] = (T)value; - } - } - - /// - /// Removes an item from the list. - /// - /// Item to remove. - /// if the - /// remove succeeds. - public bool Remove(T item) - { - return _list.Remove(item); - } - - void System.Collections.IList.Remove(object value) - { - Remove((T)value); - } - - /// - /// Removes an item from the list. - /// - /// Index of item - /// to be removed. - public void RemoveAt(int index) - { - if (_filtered) - { - _list.RemoveAt(OriginalIndex(index)); - } - else - _list.RemoveAt(index); - } - - /// - /// Gets or sets the item at - /// the specified index. - /// - /// Index of the item. - /// Item at the specified index. - public T this[int index] - { - get - { - if (_filtered) - { - int src = OriginalIndex(index); - return _list[src]; - } - else - return _list[index]; - } - set - { - if (_filtered) - _list[OriginalIndex(index)] = value; - else - _list[index] = value; - } - } - - #endregion - - private IList _list; - private bool _supportsBinding; - private IBindingList _bindingList; - private bool _filtered; - private PropertyDescriptor _filterBy; - private object _filter; - FilterProvider _provider = null; - private List _filterIndex = - new List(); - - /// - /// Creates a new view based on the provided IList object. - /// - /// The IList (collection) containing the data. - public FilteredBindingList(IList list) - { - _list = list; - - if (_list is IBindingList) - { - _supportsBinding = true; - _bindingList = (IBindingList)_list; - _bindingList.ListChanged += - new ListChangedEventHandler(SourceChanged); - } - } - - /// - /// Creates a new view based on the provided IList object. - /// - /// The IList (collection) containing the data. - /// - /// Delegate pointer to a method that implements the filter behavior. - /// - public FilteredBindingList(IList list, FilterProvider filterProvider) : this(list) - { - _provider = filterProvider; - } - - /// - /// Gets or sets the filter provider method. - /// - /// - /// Delegate pointer to a method that implements the filter behavior. - /// - /// - /// Delegate pointer to a method that implements the filter behavior. - /// - /// - /// If this value is set to Nothing (null in C#) then the default - /// filter provider, will be used. - /// - public FilterProvider FilterProvider - { - get - { - return _provider; - } - set - { - _provider = value; - } - } - - /// - /// The property on which the items will be filtered. - /// - /// A descriptor for the property on which - /// the items in the collection will be filtered. - /// - /// - public PropertyDescriptor FilterProperty - { - get { return _filterBy; } - } - - /// - /// Returns True if the view is currently filtered. - /// - public bool IsFiltered - { - get { return _filtered; } - } - - /// - /// Applies a filter to the view. - /// - /// The text name of the property on which to filter. - /// The filter criteria. - public void ApplyFilter(string propertyName, object filter) - { - _filterBy = null; - _filter = filter; - - if (!String.IsNullOrEmpty(propertyName)) - { - Type itemType = typeof(T); - foreach (PropertyDescriptor prop in - TypeDescriptor.GetProperties(itemType)) - { - if (prop.Name == propertyName) - { - _filterBy = prop; - break; - } - } - } - - ApplyFilter(_filterBy, filter); - - } - - /// - /// Applies a filter to the view. - /// - /// A PropertyDescriptor for the property on which to filter. - /// The filter criteria. - public void ApplyFilter( - PropertyDescriptor property, object filter) - { - _filterBy = property; - _filter = filter; - DoFilter(); - } - - /// - /// Removes the filter from the list, - /// so the view reflects the state of - /// the original list. - /// - public void RemoveFilter() - { - UnDoFilter(); - } - - private void SourceChanged( - object sender, ListChangedEventArgs e) - { - if (_filtered) - { - int listIndex; - int filteredIndex = -1; - T newItem; - object newKey; - switch (e.ListChangedType) - { - case ListChangedType.ItemAdded: - listIndex = e.NewIndex; - // add new value to index - newItem = _list[listIndex]; - if (_filterBy != null) - newKey = _filterBy.GetValue(newItem); - else - newKey = newItem; - _filterIndex.Add( - new ListItem(newKey, listIndex)); - filteredIndex = _filterIndex.Count - 1; - // raise event - OnListChanged( - new ListChangedEventArgs( - e.ListChangedType, filteredIndex)); - break; - - case ListChangedType.ItemChanged: - listIndex = e.NewIndex; - // update index value - filteredIndex = FilteredIndex(listIndex); - if (filteredIndex != -1) - { - newItem = _list[listIndex]; - if (_filterBy != null) - newKey = _filterBy.GetValue(newItem); - else - newKey = newItem; - _filterIndex[filteredIndex] = - new ListItem(newKey, listIndex); - } - // raise event if appropriate - if (filteredIndex > -1) - OnListChanged( - new ListChangedEventArgs( - e.ListChangedType, filteredIndex)); - break; - - case ListChangedType.ItemDeleted: - listIndex = e.NewIndex; - // delete corresponding item from index - // (if any) - filteredIndex = FilteredIndex(listIndex); - if (filteredIndex != -1) - _filterIndex.RemoveAt(filteredIndex); - // adjust index xref values - foreach (ListItem item in _filterIndex) - if (item.BaseIndex > e.NewIndex) - item.BaseIndex--; - // raise event if appropriate - if (filteredIndex > -1) - OnListChanged( - new ListChangedEventArgs( - e.ListChangedType, filteredIndex)); - break; - - case ListChangedType.PropertyDescriptorAdded: - case ListChangedType.PropertyDescriptorChanged: - case ListChangedType.PropertyDescriptorDeleted: - OnListChanged(e); - break; - - default: - DoFilter(); - OnListChanged( - new ListChangedEventArgs( - ListChangedType.Reset, 0)); - break; - } - } - else - OnListChanged(e); - } - - private int OriginalIndex(int filteredIndex) - { - if (_filtered) - return _filterIndex[filteredIndex].BaseIndex; - else - return filteredIndex; - } - - private int FilteredIndex(int originalIndex) - { - int result = -1; - if (_filtered) - { - for (int index = 0; index < _filterIndex.Count; index++) - { - if (_filterIndex[index].BaseIndex == originalIndex) - { - result = index; - break; - } - } - } - else - result = originalIndex; - return result; - } - - #region ICancelAddNew Members - - //private T _newItem; - - //void ICancelAddNew.CancelNew(int itemIndex) - //{ - // if (_newItem != null) - // Remove(_newItem); - //} - - //void ICancelAddNew.EndNew(int itemIndex) - //{ - // // do nothing - //} - - void ICancelAddNew.CancelNew(int itemIndex) - { - ICancelAddNew can = _list as ICancelAddNew; - if (can != null) - can.CancelNew(itemIndex); - else - _list.RemoveAt(itemIndex); - } - - void ICancelAddNew.EndNew(int itemIndex) - { - ICancelAddNew can = _list as ICancelAddNew; - if (can != null) - can.EndNew(itemIndex); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/GlobalSuppressions.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/GlobalSuppressions.cs deleted file mode 100644 index 25350876..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/GlobalSuppressions.cs +++ /dev/null @@ -1,22 +0,0 @@ -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "Csla.Server.DataPortalResult..ctor(System.Object)", MessageId = "0#")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Server.DataPortalException..ctor(System.String,System.Exception,Csla.Server.DataPortalResult)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Server.DataPortalException..ctor(System.String,System.Exception)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Server.DataPortalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Server.CallMethodException..ctor(System.String,System.Exception)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Server.CallMethodException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "member", Target = "Csla.DataPortalClient.RemotingProxy..cctor()")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.Data.ObjectAdapter.Fill(System.Data.DataSet,System.String,System.Object):System.Void")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1306:SetLocaleForDataTypes", Scope = "member", Target = "Csla.Data.ObjectAdapter.Fill(System.Data.DataSet,System.String,System.Object):System.Void")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "Csla.Core.ReadOnlyBindingList`1..ctor()")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2214:DoNotCallOverridableMethodsInConstructors", Scope = "member", Target = "Csla.Core.BusinessBase..ctor()")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "Csla.SmartDate.DateToString(System.DateTime,System.String,System.Boolean):System.String", MessageId = "1#")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "Csla.SmartDate.DateToString(System.DateTime,System.String):System.String", MessageId = "1#")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "Csla.DataPortalException..ctor(System.String,System.Object)", MessageId = "1#")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.DataPortalException..ctor(System.String,System.Exception,System.Object)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1720:AvoidTypeNamesInParameters", Scope = "member", Target = "Csla.DataPortalException..ctor(System.String,System.Exception,System.Object)", MessageId = "2#")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods", Scope = "member", Target = "Csla.DataPortalException..ctor(System.Runtime.Serialization.SerializationInfo,System.Runtime.Serialization.StreamingContext)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1303:DoNotPassLiteralsAsLocalizedParameters", Scope = "member", Target = "Csla.DataPortal.Create(System.Type,System.Object):System.Object", MessageId = "Csla.DataPortalException.#ctor(System.String,System.Exception,System.Object)")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1004:GenericMethodsShouldProvideTypeParameter", Scope = "member", Target = "Csla.DataPortal.Create():T")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "Csla.BusinessBase`1.GetIdValue():System.Object")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Csla.Security")] -[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1020:AvoidNamespacesWithFewTypes", Scope = "namespace", Target = "Csla.Data")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NameValueListBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NameValueListBase.cs deleted file mode 100644 index 9102f378..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NameValueListBase.cs +++ /dev/null @@ -1,272 +0,0 @@ -using System; -using System.IO; -using System.Runtime.Serialization.Formatters.Binary; -using System.ComponentModel; -using Csla.Properties; - -namespace Csla -{ - - /// - /// This is the base class from which readonly name/value - /// collections should be derived. - /// - /// Type of the key values. - /// Type of the values. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1034:NestedTypesShouldNotBeVisible")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] - [Serializable()] - public abstract class NameValueListBase : - Core.ReadOnlyBindingList.NameValuePair>, - ICloneable, Core.IBusinessObject - { - - #region Core Implementation - - /// - /// Returns the value corresponding to the - /// specified key. - /// - /// Key value for which to retrieve a value. - public V Value(K key) - { - foreach (NameValuePair item in this) - if (item.Key.Equals(key)) - return item.Value; - return default(V); - } - - /// - /// Returns the key corresponding to the - /// first occurance of the specified value - /// in the list. - /// - /// Value for which to retrieve the key. - public K Key(V value) - { - foreach (NameValuePair item in this) - if (item.Value.Equals(value)) - return item.Key; - return default(K); - } - - /// - /// Gets a value indicating whether the list contains the - /// specified key. - /// - /// Key value for which to search. - public bool ContainsKey(K key) - { - foreach (NameValuePair item in this) - if (item.Key.Equals(key)) - return true; - return false; - } - - /// - /// Gets a value indicating whether the list contains the - /// specified value. - /// - /// Value for which to search. - public bool ContainsValue(V value) - { - foreach (NameValuePair item in this) - if (item.Value.Equals(value)) - return true; - return false; - } - - #endregion - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected NameValueListBase() - { - Initialize(); - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region NameValuePair class - - /// - /// Contains a key and value pair. - /// - [Serializable()] - public class NameValuePair - { - private K _key; - private V _value; - - /// - /// The Key or Name value. - /// - public K Key - { - get { return _key; } - } - - /// - /// The Value corresponding to the key/name. - /// - public V Value - { - get { return _value; } - } - - /// - /// Creates an instance of the object. - /// - /// The key. - /// The value. - public NameValuePair(K key, V value) - { - _key = key; - _value = value; - } - } - - #endregion - - #region ICloneable - - object ICloneable.Clone() - { - return GetClone(); - } - - /// - /// Creates a clone of the object. - /// - /// A new object containing the exact data of the original object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual object GetClone() - { - return Core.ObjectCloner.Clone(this); - } - - /// - /// Creates a clone of the object. - /// - public NameValueListBase Clone() - { - return (NameValueListBase)GetClone(); - } - - #endregion - - #region Criteria - - /// - /// Default Criteria for retrieving simple - /// name/value lists. - /// - /// - /// This criteria merely specifies the type of - /// collection to be retrieved. That type information - /// is used by the DataPortal to create the correct - /// type of collection object during data retrieval. - /// - [Serializable()] - protected class Criteria : CriteriaBase - { - /// - /// Creates an instance of the object. - /// - /// - /// The of the business - /// collection class. - /// - public Criteria(Type collectionType) - : base(collectionType) - { } - } - - #endregion - - #region Data Access - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Create(object criteria) - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - private void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_XYZ method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_XYZ method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NotUndoableAttribute.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NotUndoableAttribute.cs deleted file mode 100644 index e3904194..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/NotUndoableAttribute.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; - -namespace Csla -{ - /// - /// Marks a field to indicate that the value should not - /// be copied as part of the undo process. - /// - /// - /// Marking a variable with this attribute will cause the n-level - /// undo process to ignore that variable's value. The value will - /// not be included in a snapshot when BeginEdit is called, nor - /// will it be restored when CancelEdit is called. - /// - [AttributeUsage(AttributeTargets.Field)] - public sealed class NotUndoableAttribute : Attribute - { - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/AssemblyInfo.cs deleted file mode 100644 index d40cfea1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,38 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("CSLA .NET")] -[assembly: AssemblyDescription("CSLA .NET Framework")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Rockford Lhotka")] -[assembly: AssemblyProduct("CSLA .NET")] -[assembly: AssemblyCopyright("Copyright © 2007 Rockford Lhotka")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Mark the assembly as CLS compliant -[assembly: System.CLSCompliant(true)] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("43110d9d-9176-498d-95e0-2be52fcd11d2")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("2.1.4.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources-il.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources-il.resx deleted file mode 100644 index 37381b90..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources-il.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - היא פעולה שגוייה Clear - - - הוספה היא פעולה אסורה - - - הסרה הוא פעולה שגוייה - - - אסור לשנות אלמנט - - - ערך הורה יכול לקבל ערך רק עבור אפיקים שהם ילדים - - - לא ניתן למחוק אוביקט ילד ישירות - יש להשתמש באוסף האב - - - פעולה שגויה על אוביקט שורש - השתמש ב- Delete במקום - - - לא ניתן לשמור ישירות אוביקט ישל - - - אוביקט עדיין במצב עריכה ולכן לא ניתן לשמור - - - אוביקט לא תקין ולכן לא ניתן לשמור - - - פעולה שגויה - לא ניתן ליצור - - - פעולה שגויה - לא ניתן למשוך - - - פעולה שגויה - לא ניתן לעדכן - - - פעולה שגויה - לא ניתן למחוק - - - BeginEdit- פעולה שגויה על אוביקט ילד - - - CancelEdit - פעולה שגויה על אוביקט ילד - - - ApplayEdit - פעולה שגויה על אוביקט ילד - - - לא קיים ערך: - - - ערך שגוי - - - לא ניתן להסב מחרוזת לתאריך - - - ערך לא במיבנה של SmartDate - - - No principal object should be passed to DataPortal when using Windows integrated security - - - Principal must be of type BusinessPrincipal, not - - - t - - - היום - - - y - - - אתמול - - - tom - - - מחר - - - כישלון - - - כישלון בצד השרת - - - כישלון בקריאה לפונקציה - - - לא מיוסם - - - פעולה שגויה - לר ניתן להריץ - - - פעולה אסורה - לא ניתן להוסף - - - אסורה החזרה Nothing בפעולת GetIdValue - - - לא ניתן למשוך נתונים מתְּכוּנָה - - - לא ניתן לבצע השמה - - - פרמטר חייב להיות שונה מ-"כלום" - - - סוג פרמטר חייב להיות פרמיטיבי - - - העתקת תְּכוּנָה נכשלה - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.Designer.cs deleted file mode 100644 index d016292c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.Designer.cs +++ /dev/null @@ -1,495 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Csla.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Csla.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized string similar to Principal must be of type BusinessPrincipal, not. - /// - internal static string BusinessPrincipalException { - get { - return ResourceManager.GetString("BusinessPrincipalException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Changing an element is an invalid operation. - /// - internal static string ChangeInvalidException { - get { - return ResourceManager.GetString("ChangeInvalidException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Can not directly mark a child object for deletion - use its parent collection. - /// - internal static string ChildDeleteException { - get { - return ResourceManager.GetString("ChildDeleteException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Clear is an invalid operation. - /// - internal static string ClearInvalidException { - get { - return ResourceManager.GetString("ClearInvalidException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - create not allowed. - /// - internal static string CreateNotSupportedException { - get { - return ResourceManager.GetString("CreateNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - delete not allowed. - /// - internal static string DeleteNotSupportedException { - get { - return ResourceManager.GetString("DeleteNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Error reading value:. - /// - internal static string ErrorReadingValueException { - get { - return ResourceManager.GetString("ErrorReadingValueException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - execute not allowed. - /// - internal static string ExecuteNotSupportedException { - get { - return ResourceManager.GetString("ExecuteNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to failed. - /// - internal static string Failed { - get { - return ResourceManager.GetString("Failed", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to failed on the server. - /// - internal static string FailedOnServer { - get { - return ResourceManager.GetString("FailedOnServer", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - fetch not allowed. - /// - internal static string FetchNotSupportedException { - get { - return ResourceManager.GetString("FetchNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to GetIdValue must not return Nothing. - /// - internal static string GetIdValueCantBeNull { - get { - return ResourceManager.GetString("GetIdValueCantBeNull", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Insert is an invalid operation. - /// - internal static string InsertInvalidException { - get { - return ResourceManager.GetString("InsertInvalidException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - insert not allowed. - /// - internal static string InsertNotSupportedException { - get { - return ResourceManager.GetString("InsertNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid rule method (instance methods of the target object not allowed). - /// - internal static string InvalidRuleMethodException { - get { - return ResourceManager.GetString("InvalidRuleMethodException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} can not exceed {1}. - /// - internal static string MaxValueRule { - get { - return ResourceManager.GetString("MaxValueRule", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to method call failed. - /// - internal static string MethodCallFailed { - get { - return ResourceManager.GetString("MethodCallFailed", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to not implemented. - /// - internal static string MethodNotImplemented { - get { - return ResourceManager.GetString("MethodNotImplemented", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} can not be less than {1}. - /// - internal static string MinValueRule { - get { - return ResourceManager.GetString("MinValueRule", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to ApplyEdit is not valid on a child object. - /// - internal static string NoApplyEditChildException { - get { - return ResourceManager.GetString("NoApplyEditChildException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to BeginEdit is not valid on a child object. - /// - internal static string NoBeginEditChildException { - get { - return ResourceManager.GetString("NoBeginEditChildException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to CancelEdit is not valid on a child object. - /// - internal static string NoCancelEditChildException { - get { - return ResourceManager.GetString("NoCancelEditChildException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid for root objects - use Delete instead. - /// - internal static string NoDeleteRootException { - get { - return ResourceManager.GetString("NoDeleteRootException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to No principal object should be passed to DataPortal when using Windows integrated security. - /// - internal static string NoPrincipalAllowedException { - get { - return ResourceManager.GetString("NoPrincipalAllowedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Can not directly save a child object. - /// - internal static string NoSaveChildException { - get { - return ResourceManager.GetString("NoSaveChildException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Object is still being edited and can not be saved. - /// - internal static string NoSaveEditingException { - get { - return ResourceManager.GetString("NoSaveEditingException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Object is not valid and can not be saved. - /// - internal static string NoSaveInvalidException { - get { - return ResourceManager.GetString("NoSaveInvalidException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to No such value exists:. - /// - internal static string NoSuchValueExistsException { - get { - return ResourceManager.GetString("NoSuchValueExistsException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Argument must not be Nothing. - /// - internal static string NothingNotValid { - get { - return ResourceManager.GetString("NothingNotValid", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Parent value can only be set for child objects. - /// - internal static string ParentSetException { - get { - return ResourceManager.GetString("ParentSetException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Type parameter must be a primitive type. - /// - internal static string PrimitiveTypeRequired { - get { - return ResourceManager.GetString("PrimitiveTypeRequired", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Property copy failed. - /// - internal static string PropertyCopyFailed { - get { - return ResourceManager.GetString("PropertyCopyFailed", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Property get not allowed. - /// - internal static string PropertyGetNotAllowed { - get { - return ResourceManager.GetString("PropertyGetNotAllowed", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Property set not allowed. - /// - internal static string PropertySetNotAllowed { - get { - return ResourceManager.GetString("PropertySetNotAllowed", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} does not match regular expression. - /// - internal static string RegExMatchRule { - get { - return ResourceManager.GetString("RegExMatchRule", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Remove is an invalid operation. - /// - internal static string RemoveInvalidException { - get { - return ResourceManager.GetString("RemoveInvalidException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to t. - /// - internal static string SmartDateT { - get { - return ResourceManager.GetString("SmartDateT", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to today. - /// - internal static string SmartDateToday { - get { - return ResourceManager.GetString("SmartDateToday", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to tom. - /// - internal static string SmartDateTom { - get { - return ResourceManager.GetString("SmartDateTom", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to tomorrow. - /// - internal static string SmartDateTomorrow { - get { - return ResourceManager.GetString("SmartDateTomorrow", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to y. - /// - internal static string SmartDateY { - get { - return ResourceManager.GetString("SmartDateY", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to yesterday. - /// - internal static string SmartDateYesterday { - get { - return ResourceManager.GetString("SmartDateYesterday", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} can not exceed {1} characters. - /// - internal static string StringMaxLengthRule { - get { - return ResourceManager.GetString("StringMaxLengthRule", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to {0} required. - /// - internal static string StringRequiredRule { - get { - return ResourceManager.GetString("StringRequiredRule", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to String value can not be converted to a date. - /// - internal static string StringToDateException { - get { - return ResourceManager.GetString("StringToDateException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Failed to load type '{0}'. - /// - internal static string TypeLoadException { - get { - return ResourceManager.GetString("TypeLoadException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Invalid operation - update not allowed. - /// - internal static string UpdateNotSupportedException { - get { - return ResourceManager.GetString("UpdateNotSupportedException", resourceCulture); - } - } - - /// - /// Looks up a localized string similar to Value is not a SmartDate. - /// - internal static string ValueNotSmartDateException { - get { - return ResourceManager.GetString("ValueNotSmartDateException", resourceCulture); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.bs.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.bs.resx deleted file mode 100644 index 116a76d9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.bs.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Čišćenje nije dozvoljeno - - - Dodavanje nije dozvoljeno - - - Uklanjanje nije dozvoljeno - - - Izmjena nije dozvoljena - - - Parent vrijednost može biti podešena samo za objekte "djecu" - - - Objekti "djeca" se ne mogu direktno označiti za brisanje - koristite "roditelj" kolekciju - - - Nedozvoljena operacija za osnovne objekte - koristite Delete - - - "Dijete" objekat se ne može direktno sačuvati - - - Objekat se još uvijek uređuje i ne može biti sačuvan - - - Objekat nije ispravan i ne može biti sačuvan - - - Nedozvoljena operacija - kreiranje - - - Nedozvoljena operacija - učitavanje - - - Nedozvoljena operacija - ažuriranje - - - Nedozvoljena operacija - brisanje - - - BeginEdit nije važeći na "dijete" objektu - - - CancelEdit nije važeći na "dijete" objektu - - - ApplyEdit nije važeći na "dijete" objektu - - - Ne postoji vrijednost: - - - Greška pri čitanju vrijednosti: - - - String vrijednost ne može biti konvertovana u datum - - - Vrijednost nije tipa SmartDate - - - Principal objekat ne može biti proslijeđen DataPortal-u kada se koristi integrisana Windows sigurnost - - - Principal objekat mora biti tipa BusinessPrincipal, a ne - - - t - - - today - - - y - - - yesterday - - - tom - - - tomorrow - - - neuspješno - - - neuspješno na serveru - - - neuspješan poziv metoda - - - metod nije implementiran - - - Nedozvoljena operacija - izvršavanje - - - Nedozvoljena operacija - dodavanje - - - GetIdValue ne smije vratiti Nothing - - - Uzimanje osobine objekta (Property get) nije dopušteno - - - Podešavanje osobine objekta (Property set) nije dopušteno - - - Argument ne smije biti Nothing - - - Type parametar mora biti primitivni tip - - - Kopiranje osobine nije uspjelo - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ca-ES.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ca-ES.resx deleted file mode 100644 index 667a4e7f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ca-ES.resx +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Clear és una operació invàlida - - - Inserir (insert) és una operació invàlida - - - Remove és una operació invàlida - - - Canviar un element és una operació invàlida - - - El valor Parent només pot ser establert per objectes fill - - - No es pot marcar directament un objecte fill per a esborrar-lo - utilitzeu la col·lecció pare - - - Invàlid per a objectes arrel - utilitzeu Delete en el seu lloc - - - No es por guardar un objecte fill directament - - - L'objecte està en ús i no pot ser desat - - - L'objecte no és vàlid i no pot ser desat - - - Operació invàlida - no està permès crear (create) - - - Operació invàlida - lectura (fetch) no permesa - - - Operació invàlida - no està permès actualitzar (update) - - - Operació invàlida - no està permès esborrar (delete) - - - BeginEdit no és vàlid en un objecte fill - - - CancelEdit no és vàlid en un objecte fill - - - ApplyEdit no és vàlid en un objecte fill - - - No existeix el valor: - - - Error llegint el valor: - - - El valor de tipus String no pot ser convertit a una data - - - El valor no és un SmartDate - - - No s'hauria de passar un objecte principal al DataPortal quan s'utilitza la seguretat integrada de Windows - - - El Principal ha de ser del tipus BusinessPrincipal, no - - - t - - - today (avui) - - - y - - - yesterday (ahir) - - - tom - - - tomorrow (demà) - - - ha fallat - - - ha fallat en el servidor - - - Ha fallat la crida al mètode - - - no implementat - - - Operació invàlida - no està permès executar (execute) - - - Operació invàlida - no està permès inserir (insert) - - - GetIdValue no pot retornar un valor nul - - - No està permès recuperar el valor de la propietat (get) - - - No està permès establir un valor a la propietat (set) - - - L'argument no pot ser nul - - - El tipus del paràmetre ha de ser un tipus primitiu - - - Ha fallat la còpia de la propietat - - - {0} no pot excedir de {1} - - - {0} no pot ser menor que {1} - - - {0} no coincideix amb l'expressió regular - - - {0} no pot excedir de {1} caràcters - - - {0} obligatori - - - Regla invàlida (no està permès instanciar mètodes de l'objecte destí) - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.da.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.da.resx deleted file mode 100644 index 3d09488d..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.da.resx +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Clear er en ugyldig handling - - - Insert er en ugyldig handling - - - Remove er en ugyldig handling - - - Ændring af et element er en ugyldig handling - - - Forældreværdi kan kun sættes i børneobjekter - - - Det er ikke muligt direkte at markere et børneobjekt til sletning - brug objektets forældre kollektion - - - Ugyldig for rodobjekter - brug Delete i stedet - - - Kan ikke direkte lagre et børneobjekt - - - Objektet er stadig ved at blive rettet og kan ikke lagres - - - Objektet er ikke gyldigt og kan ikke lagres - - - Ugyldig handling - create er ikke tilladt - - - Ugyldig handling - fetch er ikke tilladt - - - Ugyldig handling - update er ikke tilladt - - - Ugyldig handling - delete er ikke tilladt - - - BeginEdit er ikke gyldig på et børneobjekt - - - CancelEdit er ikke gyldig på børneobjekt - - - ApplyEdit er ikke gyldig på et børneobjekt - - - Der findes ikke en sådan værdi: - - - Fejl ved læsning af værdi: - - - Strengværdi kan ikke konverteres til en dato - - - Værdi er ikke en SmartDate - - - Principal objekt skal ikke overføres til DataPortal når der bruges Windows integreret sikkerhed - - - Principal skal være af typen BusinessPrincipal, ikke - - - dd - - - idag - - - ig - - - igår - - - im - - - imorgen - - - fejlede - - - fejlede på serveren - - - metodekald fejlede - - - ikke implementeret - - - Ugyldig handling - execute er ikke tilladt - - - Ugyldig handling - insert er ikke tilladt - - - GetIdValue må ikke returnere Nothing - - - Property get er ikke tilladt - - - Property set er ikke tilladt - - - Argument kan ikke være Nothing - - - Type parameter skal være en primitiv type - - - Property kopi fejlede - - - Ugyldig regel metode (instans metoder af target objekt er ikke tilladt) - - - {0} kan ikke være større end {1} - - - {0} kan ikke være mindre end {1} - - - {0} passer ikke på det regulære udtryk - - - {0} kan ikke være længere end {1} tegn - - - {0} er påkrævet - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.de.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.de.resx deleted file mode 100644 index cf99f3e2..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.de.resx +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Clear ist eine ungültige Operation - Clear is an invalid operation - - - Einfügen ist eine ungültige Operation - Insert is an invalid operation - - - Entfernen ist eine ungültige Operation - Remove is an invalid operation - - - Ändern eines Elementes ist eine ungültige Operation - Changing an element is an invalid operation - - - Elternwert kann nur für Kindobjekte gesetzt werden - Parent comment can only be set for child objects - - - kann ein Kindobjekt nicht direkt zum Löschen markieren - benutzen Sie die Eltern Liste - Can not directly mark a child object for deletion - use its parent collection - - - ungültig für Root Objekte - stattdessen löschen - Invalid for root objects - use Delete instead - - - ein Kindobjekt kann nich direkt gespeichert werden - Can not directly save a child object - - - Objekt wird noch editiert und kann nicht gespeichert werden - Object is still being edited and can not be saved - - - Objekt ist ungültig und kann nicht gespeichert werden - Object is not valid and can not be saved - - - Ungültige Operation - Erzeugen nicht erlaubt - Invalid operation - create not allowed - - - Ungültige Operation - Abrufen nicht erlaubt - Invalid operation - fetch not allowed - - - Ungültige Operation - Aktualisieren nicht erlaubt - Invalid operation - update not allowed - - - Ungültige Operation - Löschen nicht erlaubt - Invalid operation - delete not allowed - - - BeginEdit kann nicht auf ein Kindobjekt angewandt werden - BeginEdit is not valid on a child object - - - CancelEdit kann nicht auf ein Kindobjekt angewandt werden - CancelEdit is not valid on a child object - - - ApplyEdit kann nicht auf ein Kindobjekt angewandt werden - ApplyEdit is not valid on a child object - - - Wert existiert nicht: - No such comment exists: - - - Fehler beim Lesen des Werts: - Error reading comment: - - - String Wert kann nicht zu einem Date Wert konvertiert werden - String comment can not be converted to a date - - - Wert ist kein SmartDate - comment is not a SmartDate - - - Bei Windows Authentifizierung sollte kein Principal Objekt zu DataPortal übergeben werden - No principal object should be passed to DataPortal when using Windows integrated security - - - Principal muss vom Typ BusinessPrincipal sein, nicht - Principal must be of type BusinessPrincipal, not - - - h - t - - - heute - today - - - g - y - - - gestern - yesterday - - - m - tom - - - morgen - tomorrow - - - fehlgeschlagen - failed - - - auf dem Server fehlgeschlagen - failed on the server - - - Methodenaufruf fehlgeschlagen - method call failed - - - nicht implementiert - not implemented - - - ungülitge Operation - Ausführen nicht erlaubt - Invalid operation - execute not allowed - - - ungülitge Operation - Einfügen nicht erlaubt - Invalid operation - insert not allowed - - - GetIdValue darf nicht Nothing zurückgeben - GetIdcomment must not return Nothing - - - Eigenschaft get nicht erlaubt - Property get not allowed - - - Eigenschaft set nicht erlaubt - Property set not allowed - - - Arguement darf nicht Nothing sein - Argument must not be Nothing - - - Type Parameter muss ein primitiver Typ sein - Type parameter must be a primitive type - - - Eigenschaft Kopie fehlgeschlagen - Property copy failed - - - {0} kann nicht grösser sein als {1} - {0} can not exceed {1} - - - {0} kann nicht geringer sein als {1} - {0} can not be less than {1} - - - {0} kann nicht mehr als {1} Zeichen haben - {0} can not exceed {1} characters - - - {0} erforderlich - {0} required - - - {0} enspricht nicht den normalen Bedingungen - {0} does not match regular expression - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es-ES.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es-ES.resx deleted file mode 100644 index 2bbad73b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es-ES.resx +++ /dev/null @@ -1,261 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Clear no es una operación válida - - - Insert no es una operación válida - - - Remove no es una operación válida - - - Cambiar un elemento no es una operación válida - - - El valor Parent sólo puede ser establecido para objetos hijo - - - No se puede marcar directamente un objeto hijo como borrado - use su colección padre - - - No válido para objetos raíz - use Delete en su lugar - - - No se puede guardar directamente un objeto hijo - - - El objeto todavía está siendo editado y no puede ser guardado - - - El objeto no es válido y no puede ser guardado - - - Operación no válida - no está permitido crear (create) - - - Operación no válida - lectura (fetch) no permitida - - - Operación no válida - no está permitido actualizar (update) - - - Operación no válida - no está permitido borrar (delete) - - - BeginEdit no es válido en un objeto hijo - - - CancelEdit no es válido en un objeto hijo - - - ApplyEdit no es válido en un objeto hijo - - - No existe tal valor: - - - Error leyendo el valor: - - - El valor de tipo String no puede ser convertido a una fecha - - - El valor no es un SmartDate - - - No se debería pasar un objeto principal al DataPortal cuando se está usando la seguridad integrada de Windows - - - El Principal debe ser del tipo BusinessPrincipal, no - - - h - - - hoy - - - a - - - ayer - - - m - - - mañana - - - falló - - - falló en el servidor - - - la llamada al método falló - - - no implementado - - - Operación no válida - no está permitido ejecutar (execute) - - - Operación no válida - no está permitido insertar (insert) - - - GetIdValue no debe devolver Nothing - - - No está permitido recuperar (get) la propiedad - - - No está permitido establecer (set) la propiedad - - - El argumento no puede ser Nothing - - - El tipo del parámetro debe ser un tipo primitivo - - - la copia de la propiedad falló - - - Método de regla no válido (no se permiten métodos de instancia del objeto de destino) - - - {0} no puede ser superior a {1} - - - {0} no puede ser menor que {1} - - - {0} no coincide con una expresión regular - - - {0} no puede exceder {1} caracteres - - - {0} es requerido - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es.resx deleted file mode 100644 index 1a3e5e0f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.es.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Clear es una operación inválida - - - Insert es una operación inválida - - - Remove es una operación inválida - - - Cambiar un elemento es una operación inválida - - - La referencia al padre sólo se puede establecer para los objetos hijo - - - No se puede marcar directamente a un hijo para borrarlo - use su colección padre - - - Inválido para objetos hijo - use "Delete" en su lugar - - - No se puede guardar un objeto hijo en forma directa - - - El objeto está siendo editado y no se puede guardar - - - El objeto no es válido y no se puede guardar - - - Operación inválida - Create no permitido - - - Operación inválida - Fetch no permitido - - - Operación inválida - Update no permitido - - - Operación inválida - Delete no permitido - - - BeginEdit no es válido en un objeto hijo - - - CancelEdit no es válido en un objeto hijo - - - ApplyEdit no es válido en un objeto hijo - - - No existe tal valor: - - - Error leyendo el valor: - - - Un valor del tipo string no se puede convertir a Date - - - El valor no es un SmartDate - - - No se debería pasar un objeto "Principal" al DataPortal cuando se usa seguridad integrada de Windows - - - El Principal debe ser del tipo BusinessPrincipal, no - - - h - - - hoy - - - a - - - ayer - - - m - - - mañana - - - falló - - - falló en el servidor - - - llamada al método falló - - - no implementado - - - Operación inválida - no se permite execute - - - Operación inválida - no se permite insert - - - GetIdValue no debe devolver Nothing - - - No se puede obtener el valor de la propiedad - - - No se puede establecer el valor de la propiedad - - - El argumento no puede ser Nothing - - - El parámetro Type debe ser in tipo primitivo - - - La copia de la propiedad falló - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.fr.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.fr.resx deleted file mode 100644 index a793002a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.fr.resx +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Nettoyer (clear) est une opération invalide - Clear is an invalid operation - - - Insérer (insert) est une opération invalide - Insert is an invalid operation - - - "Retirer" (Remove) est une opération invalide - Remove is an invalid operation - - - Changer un élément est une opération invalide - Changing an element is an invalid operation - - - La valeur "Parent" ne peux être appliquée qu'aux objets enfant - Parent value can only be set for child objects - - - Un objet enfant ne peux être directement marqué pour effacement - Utilisez la collection qui le contient - Can not directly mark a child object for deletion - use its parent collection - - - Invalide pour les objets racine - Utilisez plutôt "Effacer" (Delete) - Invalid for root objects - use Delete instead - - - Un objet enfant ne peux être directement sauvegardé - Can not directly save a child object - - - Impossible de sauvegarder l'objet car il est en cours d'édition - Object is still being edited and can not be saved - - - Impossible de sauvegarder l'objet car il possède des erreurs - Object is not valid and can not be saved - - - Opération invalide - Créer (create) n'est pas permis - Invalid operation - create not allowed - - - Opération invalide - Charger (fetch) n'est pas permis - Invalid operation - fetch not allowed - - - Operation invalide - mise à jour (update) n'est pas permis - Invalid operation - update not allowed - - - Opération invalide - Effacer (delete) n'est pas permis - Invalid operation - delete not allowed - - - Opération invalide - "BeginEdit" n'est pas permis sur un objet enfant - BeginEdit is not valid on a child object - - - Opération invalide - "CancelEdit" n'est pas permis sur un objet enfant - CancelEdit is not valid on a child object - - - Opération invalide - "ApplyEdit" n'est pas permis sur un objet enfant - ApplyEdit is not valid on a child object - - - Cette valeur n'existe pas: - No such value exists: - - - Erreur lors de la lecture de cette valeur: - Error reading value: - - - Cette chaine de caractère ne peux être convertis en type "Date" - String value can not be converted to a date - - - La valeur (Value) n'est pas du type "SmartDate" - Value is not a SmartDate - - - Un objet "Principal" ne doit être passé au "DataPortal" lorsque la sécurité intégrée à Windows est utilisée - No principal object should be passed to DataPortal when using Windows integrated security - - - Le "Principal" doit être du type "BusinessPrincipal" et non du type - Principal must be of type BusinessPrincipal, not - - - a - t - - - aujourd'hui - today - - - h - y - - - hier - yesterday - - - d - tom - - - demain - tomorrow - - - a échoué - failed - - - a échoué sur le serveur - failed on the server - - - L'appel à la méthode a échoué - method call failed - - - non implanté - not implemented - - - Opération invalide - Exécuter (execute) n'est pas permis - Invalid operation - execute not allowed - - - Opération invalide - Insérer (insert) n'est pas permis - Invalid operation - insert not allowed - - - "GetIdValue" ne peut retourner une valeur nul (Nothing) - GetIdValue must not return Nothing - - - Le "get" n'est pas permis pour cette propriété - Property get not allowed - - - Le "set" n'est pas permis pour cette propriété - Property set not allowed - - - Cet argument ne peut être nul (Nothing) - Argument must not be Nothing - - - Le paramètre doit être d'un type primaire (primitive type) - Type parameter must be a primitive type - - - La copie (copy) de cette propriété a échoué - Property copy failed - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.hr.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.hr.resx deleted file mode 100644 index e12d1625..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.hr.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Principal objekt mora biti tipa BusinessPrincipal, a ne - - - Izmjena nije dozvoljena - - - Objekti "djeca" se ne mogu direktno označiti za brisanje - koristite "roditelj" kolekciju - - - Čišćenje nije dozvoljeno - - - Nedozvoljena operacija - kreiranje - - - Nedozvoljena operacija - brisanje - - - Greška pri čitanju vrijednosti: - - - Nedozvoljena operacija - izvršavanje - - - neuspješno - - - neuspješno na serveru - - - Nedozvoljena operacija - učitavanje - - - GetIdValue ne smije vratiti Nothing - - - Dodavanje nije dozvoljeno - - - Nedozvoljena operacija - dodavanje - - - neuspješan poziv metoda - - - metod nije implementiran - - - ApplyEdit nije važeći na "dijete" objektu - - - BeginEdit nije važeći na "dijete" objektu - - - CancelEdit nije važeći na "dijete" objektu - - - Nedozvoljena operacija za osnovne objekte - koristite Delete - - - Principal objekt ne može biti proslijeđen DataPortal-u kada se koristi integrisana Windows sigurnost - - - "Dijete" objekt se ne može direktno sačuvati - - - Objekt se još uvijek uređuje i ne može biti sačuvan - - - Objekt nije ispravan i ne može biti sačuvan - - - Ne postoji vrijednost: - - - Argument ne smije biti Nothing - - - Parent vrijednost može biti podešena samo za objekte "djecu" - - - Type parametar mora biti primitivni tip - - - Kopiranje osobine nije uspjelo - - - Uzimanje osobine objekta (Property get) nije dopušteno - - - Podešavanje osobine objekta (Property set) nije dopušteno - - - Uklanjanje nije dozvoljeno - - - t - - - today - - - tom - - - tomorrow - - - y - - - yesterday - - - String vrijednost ne može biti konvertovana u datum - - - Nedozvoljena operacija - ažuriranje - - - Vrijednost nije tipa SmartDate - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.it.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.it.resx deleted file mode 100644 index c70ba8e0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.it.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Clear è un operazione non valida - - - Insert è un operazione non valida - - - Remove è un operazione non valida - - - Cambiare un elemento è una operazione non valida - - - Il Parent può essere impostato solo per gli oggetti child - - - Non è possibile marcare direttamente un elemento Child per la cancellazione - usare la sua collezione Parent - - - Non valido per oggetti root - usare invece Delete - - - Non è possibile salvare direttamente un oggetto child - - - L'oggetto è ancora in edit e non può essere salvato - - - L'oggetto non è valido e non può essere salvato - - - Operazione non valida - create non consentito - - - Operazione non valida - Fetch non è consentito - - - Operazione non valida - Update non è consentito - - - Operazione non valida - Delete non consentito - - - BeginEdit non è consentito su un oggetto child - - - CancelEdit non è consentito su un oggetto child - - - ApplyEdit non è consentito su un oggetto child - - - Non esiste il valore: - - - Errore durante la lettura del valore: - - - il valore stringa non può essere convertito in data - - - Value non è una SmartDate - - - Non si deve passare un oggetto Principal al DataPortal quando si usa l'autenticazione integrata di Windows - - - Principal deve essere del tipo BusinessPrincipal, non - - - o - - - oggi - - - i - - - ieri - - - d - - - domani - - - Fallito - - - Fallito sul server - - - chiamata a metodo fallita - - - non implementato - - - Operazione non valida - Execute non è consentito - - - Operazione non valida - Insert non è consentito - - - GetIdValue non può ritornare Nothing - - - Property get non consentito - - - Property set non consentito - - - Argument non deve essere Nothing - - - Il parametro Type deve essere un tipo primitivo - - - Copia della proprietà fallita - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.nl.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.nl.resx deleted file mode 100644 index d72b9f6f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.nl.resx +++ /dev/null @@ -1,304 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - leeg maken is een ongeldige bewerking - Clear is an invalid operation - - - toevoegen is een ongeldige bewerking - Insert is an invalid operation - - - Verwijderen is een ongeldige bewerking - Remove is an invalid operation - - - Het wijzigen van een element is een ongeldige bewerking - Changing an element is an invalid operation - - - Parent waarde kan alleen voor child objecten gewijzigd worden - Parent comment can only be set for child objects - - - Kan geen child object markeren om te verwijderen - gebruik de parent collectie - Can not directly mark a child object for deletion - use its parent collection - - - Niet toegestaan voor root objecten - gebruik verwijderen - Invalid for root objects - use Delete instead - - - Het is niet toegestaan om een rechtstreeks een child object te bewaren - Can not directly save a child object - - - Object wordt nog gewijzigd - bewaren is niet toegestaan - Object is still being edited and can not be saved - - - Validatie van het object is niet geldig - bewaren is niet toegestaan - Object is not valid and can not be saved - - - ongeldige bewerking - aanmaken is niet toegestaan - Invalid operation - create not allowed - - - ongeldige bewerking - ophalen is niet toegestaan - Invalid operation - fetch not allowed - - - ongeldige bewerking - wijzigen is niet toegestaan - Invalid operation - update not allowed - - - ongeldige bewerking - verwijderen is niet toegestaan - Invalid operation - delete not allowed - - - BeginEdit is een ongeldige bewerking voor een child object - BeginEdit is not valid on a child object - - - CancelEdit is een ongeldige bewerking voor een child object - CancelEdit is not valid on a child object - - - ApplyEdit is een ongeldige bewerking voor een child object - ApplyEdit is not valid on a child object - - - de volgende waarde bestaat niet: - No such comment exists: - - - Fout tijdens het lezen van de waarde: - Error reading comment: - - - Een string waarde kan niet geconverteerd worden naar een datum waarde - String comment can not be converted to a date - - - Waarde is geen SmartDate - comment is not a SmartDate - - - Er mag geen principal object naar de DataPortal gestuurd worden wanneer men gebruik maakt van Windows integrated security - No principal object should be passed to DataPortal when using Windows integrated security - - - Principal moet type BusinessPrincipal zijn, niet: - Principal must be of type BusinessPrincipal, not - - - v - t - - - vandaag - today - - - g - y - - - gisteren - yesterday - - - mor - tom - - - morgen - tomorrow - - - mislukt - failed - - - mislukt op de server - failed on the server - - - methode aanroepen mislukt - method call failed - - - niet geimplementeerd - not implemented - - - ongeldige bewerking - uitvoeren is niet toegestaan - Invalid operation - execute not allowed - - - ongeldige bewerking - toevoegen is niet toegestaan - Invalid operation - insert not allowed - - - GetIdValue mag geen Nothing(leeg) retourneren - GetIdcomment must not return Nothing - - - Property get is niet toegestaan - Property get not allowed - - - Property set is niet toegestaan - Property set not allowed - - - Argument mag niet Nothing(leeg) zijn - Argument must not be Nothing - - - Type parameter mag alleen een primitief type zijn - Type parameter must be a primitive type - - - Kopiëren van de property is mislukt - Property copy failed - - - {0} kan niet groter zijn dan {1} - {0} can not exceed {1} - - - {0} kan niet kleiner zijn dan {1} - {0} can not be less than {1} - - - {0} kan niet meer als {1} karakters hebben - {0} can not exceed {1} characters - - - {0} verplicht - {0} required - - - {0} komt niet overeen met de regular expression - {0} does not match regular expression - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.no.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.no.resx deleted file mode 100644 index d78a58d9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.no.resx +++ /dev/null @@ -1,279 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Clear (blanking) er en ugyldig operasjon - - - Insert (legg inn) er en ugyldig operasjon - - - Remove (fjern) er en ugyldig operasjon - - - Endring av et element er en ugyldig operasjon - - - Parent (foreldre) verdi kan kun bli satt av Child (barne) objekter - - - Child (barne) objektet kan ikke markeres for sletting direkte - benytt Parent Collection (foreldrelisten) - - - Ugyldig for Root (rot) objekter - benytt Delete (slett) istedet - - - Et Child (barne) objekt kan ikke lagres direkte - - - Objektet redigeres fortsatt og kan ikke lagres - - - Objektet er ugyldig og kan ikke lagres - - - Ugyldig operasjon - Create (opprett) er ikke tillatt - - - Ugyldig operasjon - Fetch (hent) er ikke tillatt - - - Ugyldig operasjon - Update (oppdater) er ikke tillatt - - - Ugyildig operasjon - Delete (slett) er ikke tillatt - - - BeginEdit er ugyldig på et Child (barne) objekt - - - CancelEdit er ugyldig på et Child (barne) objekt - - - ApplyEdit er ugyldig på et Child (barne) objekt - - - En slik verdi eksisterer ikke: - - - Feil ved lesing av verdi: - - - Insert (legg inn) er ugyldig for en Read-Only Collection (uredigerbar liste) - - - Remove (fjern) er ugyldig for en Read-Only Collection (uredigerbar liste) - - - Clear (blank) er ugyldig for en Read-Only Collection (uredigerbar liste) - - - Verdier kan ikke endres i en Read-Only Collection (uredigerbar liste) - - - String-verdien kan ikke konverteres til Date (en dato) - - - Verdien er ikke en SmartDate - - - Verdien må være en gyldig dato - - - Sortering er ikke støttet i denne listen - - - Søk er ikke støttet i denne listen - - - Det er ikke tillatt å legge til verdier - - - Ingen Principal objekter skal sendes til DataPortalen Windows Integrated Security benyttes - - - Principal må vaere av typen BusinessPrincipal, ikke - - - Ingen tilsvarende verdi eksisterer i listen - - - Sikkerhet - - - Login - - - @user - - - @pw - - - t - - - today (idag) - - - y (år) - - - yesterday (igår) - - - tom - - - tomorrow (imorgen) - - - Batch jobben er fullført - - - Batch jobb: - - - Jobb objekt: - - - Batch-jobben ble ikke fullført pga en feil under utføringen - - - Batchkø prosessoren har startet - - - Navn: - - - Port: - - - Koe: - - - Max antall jobber: - - - Feilet - - - Feilet på serveren - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt-br.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt-br.resx deleted file mode 100644 index acf9a59e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt-br.resx +++ /dev/null @@ -1,351 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Principal deve ser do tipo BusinessPrincipal, não - Principal must be of type BusinessPrincipal, not - - - - Alterar um elemento é uma operação inválida - Changing an element is an invalid operation - - - - Não se pode marcar diretamente um objeto filho para deleção - use a coleção pai dele - Can not directly mark a child object for deletion - use its parent collection - - - - Limpar é uma operação inválida - Clear is an invalid operation -Invalid operation - create not allowed - - - - Operação inválida - criação não permitida - Invalid operation - create not allowed - - - - Operação inválida - deleção não permitida - Invalid operation - delete not allowed - - - - Erro ao ler valor: - Error reading value: - - - - Operação inválida - execução não permitida - Invalid operation - execute not allowed - - - - falhou - failed - - - - falhou no servidor - failed on the server - - - - Operação inválida - leitura não permitida - Invalid operation - fetch not allowed - - - - 'Business Object' deve fornecer um valor não-nulo no GetIdValue - Business object must supply a non-null ID value in GetIdValue - - - - Inserir é uma operação inválida - Insert is an invalid operation - - - - Operação inválida - inserção não permitida - Invalid operation - insert not allowed - - - - {0} não pode exceder {1} - {0} can not exceed {1} - - - - chamada do método falhou - method call failed - - - - não implementado - not implemented - - - - {0} não pode ser menor que {1} - {0} can not be less than {1} - - - - ApplyEdit não é válido em um objeto filho - ApplyEdit is not valid on a child object - - - - BeginEdit não é válido em um objeto filho - BeginEdit is not valid on a child object - - - - CancelEdit não é válido em um objeto filho - CancelEdit is not valid on a child object - - - - Inválido para objetos raiz - use Deletar ao invés - Invalid for root objects - use Delete instead - - - - Nenhum objeto do tipo Principal deve ser passado para um DataPortal quando segurança integrada do Windows estiver sendo usada - No principal object should be passed to DataPortal when using Windows integrated security - - - - Não se pode salvar diretamente um objeto filho - Can not directly save a child object - - - - Objeto ainda está sendo editado e não pode ser salvo - Object is still being edited and can not be saved - - - - Objeto não é válido e não pode ser salvo - Object is not valid and can not be saved - - - - Tal valor não existe: - No such value exists: - - - - Argumento não pode ser nulo - Argument must not be null - - - - Valor do objeto pai só pode ser atribuido para objetos filhos - Parent value can only be set for child objects - - - - Tipo do parâmetro deve ser um tipo primitivo - Type parameter must be a primitive type - - - - Cópia da propriedade falhou - Property copy failed - - - - 'Property get' não permitida - Property get not allowed - - - - 'Property set' não permitida - Property set not allowed - - - - {0} não confere com 'regular expression' - {0} does not match regular expression - - - - Remover é uma operação inválida - Remove is an invalid operation - - - - t - t - - - - hoje - today - - - - tom - tom - - - - amanhã - tomorrow - - - - y - y - - - - ontem - yesterday - - - - {0} não pode exceder {1} caracteres - {0} can not exceed {1} characters - - - - {0} requerido - {0} required - - - - Valor do tipo string não pode ser convertido para uma data - String value can not be converted to a date - - - - Operação inválida - atualização não permitida - Invalid operation - update not allowed - - - - Valor não é uma SmartDate - Value is not a SmartDate - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt.resx deleted file mode 100644 index 6db4efa9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.pt.resx +++ /dev/null @@ -1,308 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - "Principal" tem que ser do tipo "BusinessPrincipal", não - Principal must be of type BusinessPrincipal, not - - - Alterar um elemento é uma operação inválida - Changing an element is an invalid operation - - - Não pode marcar directamente um objecto filho para apagar - use a colecção pai - Can not directly mark a child object for deletion - use its parent collection - - - "Clear" é uma operação inválida - Clear is an invalid operation - - - Operação inválida - não pode criar - Invalid operation - create not allowed - - - Operação inválida - não pode apagar - Invalid operation - delete not allowed - - - Erro ao ler valor: - Error reading value: - - - Operação inválida - não pode executar - Invalid operation - execute not allowed - - - falhou - failed - - - falhou no servidor - failed on the server - - - Operação inválida - não pode ler - Invalid operation - fetch not allowed - - - "GetIdValue" não pode devolver um ID nulo para o "business object" - Business object must supply a non-null ID value in GetIdValue - - - Inserir é uma operação inválida - Insert is an invalid operation - - - Operação inválida - não pode inserir - Invalid operation - insert not allowed - - - Método da regra inválido (não pode instanciar métodos do objecto alvo) - Invalid rule method (instance methods of the target object not allowed) - - - {0} não pode exceder {1} - {0} can not exceed {1} - - - chamada ao método falhou - method call failed - - - não implementado - not implemented - - - {0} não pode ser menos que {1} - {0} can not be less than {1} - - - "ApplyEdit" não é válido para um objecto filho - ApplyEdit is not valid on a child object - - - "BeginEdit" não é válido para um objecto filho - BeginEdit is not valid on a child object - - - "CancelEdit" não é válido para um objecto filho - CancelEdit is not valid on a child object - - - Inválido para objectos raíz - em vez disso, use "apagar" - Invalid for root objects - use Delete instead - - - Quando se usa a segurança integrada do Windows, nenhum objecto "Principal" deve ser passado para o "DataPortal" - No principal object should be passed to DataPortal when using Windows integrated security - - - Não pode guardar objectos filho directamente - Can not directly save a child object - - - O objecto está a ser editado e não pode ser guardado - Object is still being edited and can not be saved - - - O objecto não é válido e não pode ser guardado - Object is not valid and can not be saved - - - O valor não existe: - No such value exists: - - - O argumento não pode ser nulo - Argument must not be null - - - O valor "pai" só pode ser atribuído aos objectos filho - Parent value can only be set for child objects - - - O parâmetro tem que ser de um tipo primário - Type parameter must be a primitive type - - - A cópia da propriedade falhou - Property copy failed - - - Não pode ler o valor da propriedade - Property get not allowed - - - Não pode atribuir valor à propriedade - Property set not allowed - - - {0} não encaixa na expressão regular - {0} does not match regular expression - - - Remover é uma operação inválida - Remove is an invalid operation - - - h - t - - - hoje - today - - - a - tom - - - amanha - tomorrow - - - o - y - - - ontem - yesterday - - - {0} não pode exceder {1} caracteres - {0} can not exceed {1} characters - - - {0} exigido - {0} required - - - A cadeia de caracteres não pode ser convertido numa data - String value can not be converted to a date - - - Operação inválida - não pode actualizar - Invalid operation - update not allowed - - - O valor não é uma "SmartDate" - Value is not a SmartDate - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.resx deleted file mode 100644 index 25d8d9bb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.resx +++ /dev/null @@ -1,264 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Clear is an invalid operation - - - Insert is an invalid operation - - - Remove is an invalid operation - - - Changing an element is an invalid operation - - - Parent value can only be set for child objects - - - Can not directly mark a child object for deletion - use its parent collection - - - Invalid for root objects - use Delete instead - - - Can not directly save a child object - - - Object is still being edited and can not be saved - - - Object is not valid and can not be saved - - - Invalid operation - create not allowed - - - Invalid operation - fetch not allowed - - - Invalid operation - update not allowed - - - Invalid operation - delete not allowed - - - BeginEdit is not valid on a child object - - - CancelEdit is not valid on a child object - - - ApplyEdit is not valid on a child object - - - No such value exists: - - - Error reading value: - - - String value can not be converted to a date - - - Value is not a SmartDate - - - No principal object should be passed to DataPortal when using Windows integrated security - - - Principal must be of type BusinessPrincipal, not - - - t - - - today - - - y - - - yesterday - - - tom - - - tomorrow - - - failed - - - failed on the server - - - method call failed - - - not implemented - - - Invalid operation - execute not allowed - - - Invalid operation - insert not allowed - - - GetIdValue must not return Nothing - - - Property get not allowed - - - Property set not allowed - - - Argument must not be Nothing - - - Type parameter must be a primitive type - - - Property copy failed - - - {0} can not exceed {1} - - - {0} can not be less than {1} - - - {0} can not exceed {1} characters - - - {0} required - - - {0} does not match regular expression - - - Invalid rule method (instance methods of the target object not allowed) - - - Failed to load type '{0}' - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ro.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ro.resx deleted file mode 100644 index 6951c3c3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ro.resx +++ /dev/null @@ -1,284 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Clear este o operatie invalida - Clear is an invalid operation - - - Insert este o operatie invalida - Insert is an invalid operation - - - Remove nu e o peratie valida - Remove is an invalid operation - - - Schimbarea unui element este o operatie invalida - Changing an element is an invalid operation - - - Valoarea Parent poate fi setata doar pentru obiectele copil - Parent value can only be set for child objects - - - Nu se poate marca direct un copil pentru stergere - utilizati colectia sa parinte - Can not directly mark a child object for deletion - use its parent collection - - - Invalid pentru obiecte root - utilizati Delete - Invalid for root objects - use Delete instead - - - Nu se poate salva direct un obiect copil - Can not directly save a child object - - - Obiectul se editeaza inca si nu poate fi salvat - Object is still being edited and can not be saved - - - Obiectul nu e valid si nu poate fi salvat - Object is not valid and can not be saved - - - Crearea nu e operatie permisa - Invalid operation - create not allowed - - - Operatie invalida - umplerea nu e permisa - Invalid operation - fetch not allowed - - - operatie invalida - update nu e permis - Invalid operation - update not allowed - - - Stergerea nu e o operatie permisa - Invalid operation - delete not allowed - - - BeginEdit nu e valid pe un obiect copil - BeginEdit is not valid on a child object - - - CancelEdit nu e valid pe un obiect copil - CancelEdit is not valid on a child object - - - ApplyEdit nu e valid pe un obiect copil - ApplyEdit is not valid on a child object - - - Nu exista valoarea : - No such value exists: - - - Eroare la citirea - Error reading value: - - - valoarea stringului nu poate fi convertita la data - String value can not be converted to a date - - - Valoare nu e de tipul SmartDate - Value is not a SmartDate - - - Nu trebuie trecut un obiect Principal la DataProtal cind utilizati Windows Integrated security - No principal object should be passed to DataPortal when using Windows integrated security - - - principal trebuie sa fie de tipul BussinesPrincipal, nu - Principal must be of type BusinessPrincipal, not - - - a - t - - - azi - today - - - i - y - - - ieri - yesterday - - - miine - tom - - - miine - tomorrow - - - Eroare - failed - - - Eroare la server - failed on the server - - - Chemarea metodei a produs eroare - method call failed - - - Methoda nu e implementata - not implemented - - - Operatie invalida - executia nu e permisa - Invalid operation - execute not allowed - - - Operatie invalida - insert nu e permis - Invalid operation - insert not allowed - - - GetIdValue nu poate intoarce Nothing - GetIdValue must not return Nothing - - - Proprietatea nu admite get - Property get not allowed - - - Proprietatea nu admite set - Property set not allowed - - - Argumetul trebuie sa nu fie Nothing - Argument must not be Nothing - - - Parametru Type trebuie sa fie un type "primitiv" - Type parameter must be a primitive type - - - Copierea proprietatii a dat eroare - Property copy failed - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ru.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ru.resx deleted file mode 100644 index 029101d5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.ru.resx +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.0.0.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Неверная операция "Clear" - - - Неверная операция "Insert" - - - Неверная операция "Remove" - - - Редактирование элемента недопустимо - - - Значение Parent может быть установленно только для дочерних объектов - - - Невозможно напрямую пометить дочерний объект для удаления. Используйте его родительскую коллекцию - - - Неверно для корневого объекта - используйте команду Delete - - - Невозможно сохранить дочерний объект напрямую - - - Невозможно сохранить объект находящийся в состоянии редактирования - - - Невозможно сохранить объект с ошибками - - - Неверная операция - создание нового объекта не разрешено - - - Неверная операция - чтение не разрешено - - - Неверная операция - редактирование не разрешено - - - Неверная операция - удаление не разрешено - - - BeginEdit не разрешено для дочернего объекта - - - CancelEdit не разрешено для дочернего объекта - - - ApplyEdit не разрешено для дочернего объекта - - - Такого значения не существует: - - - Ошибка чтения значения: - - - Вставка не разрешена для коллекций "только для чтения" - - - Удаление не разрешено для коллекций "только для чтения" - - - Очистка коллекций "только для чтения" не разрешена - - - Редактирование коллекций "только для чтения" не разрешено - - - Строковое значение не может быть переведено в дату - - - Тип значения не SmartDate - - - Значение должно быть правильной датой - - - Сортировка не поддерживается данной коллекцией - - - Поиск не поддерживается данной коллекцией - - - Добавление записей не разрешено - - - Не следует передавать объект "principal" в DataPortal при использовании интегрированной системы безопасности Windows (WIS) - - - Объект "Principal" должен быть типа BusinessPrincipal, а не - - - Нет соответсвующей записи в коллекции - - - Security - - - Login - - - @user - - - @pw - - - t - - - сегодня - - - y - - - вчера - - - tom - - - завтра - - - Пакетное задание окончено - - - Пакетное задание: - - - Объект задания: - - - Пакетное задание не выполнено из-за ошибки выполнения - - - Стартовал обработчик пактной очереди - - - Имя: - - - Port: - - - Очередь: - - - Максимально заданий: - - - потерпел неудачу - - - потерпел неудачу на сервере - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sr.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sr.resx deleted file mode 100644 index 6550f787..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sr.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Principal objekat mora biti tipa BusinessPrincipal, a ne - - - Izmena nije dozvoljena - - - Objekti "deca" se ne mogu direktno označiti za brisanje - koristite "roditelj" kolekciju - - - Čišćenje nije dozvoljeno - - - Nedozvoljena operacija - kreiranje - - - Nedozvoljena operacija - brisanje - - - Greška pri čitanju vrednosti: - - - Nedozvoljena operacija - izvršavanje - - - neuspešno - - - neuspešno na serveru - - - Nedozvoljena operacija - učitavanje - - - GetIdValue ne sme vratiti Nothing - - - Dodavanje nije dozvoljeno - - - Nedozvoljena operacija - dodavanje - - - neuspešan poziv metoda - - - metod nije implementiran - - - ApplyEdit nije važeći na "dete" objektu - - - BeginEdit nije važeći na "dete" objektu - - - CancelEdit nije važeći na "dete" objektu - - - Nedozvoljena operacija za osnovne objekte - koristite Delete - - - Principal objekat ne može biti prosleđen DataPortal-u kada se koristi integrisana Windows sigurnost - - - "Dete" objekat se ne može direktno sačuvati - - - Objekat se još uvek uređuje i ne može biti sačuvan - - - Objekat nije ispravan i ne može biti sačuvan - - - Ne postoji vrednost: - - - Argument ne sme biti Nothing - - - Parent vrednost može biti podešena samo za objekte "decu" - - - Type parametar mora biti primitivni tip - - - Kopiranje osobine nije uspelo - - - Uzimanje osobine objekta (Property get) nije dopušteno - - - Podešavanje osobine objekta (Property set) nije dopušteno - - - Uklanjanje nije dozvoljeno - - - t - - - today - - - tom - - - tomorrow - - - y - - - yesterday - - - String vrednost ne može biti konvertovana u datum - - - Nedozvoljena operacija - ažuriranje - - - Vrednost nije tipa SmartDate - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sv.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sv.resx deleted file mode 100644 index 45a67d0c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.sv.resx +++ /dev/null @@ -1,201 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 1.0.0.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Rensa är en ogiltig åtgärd - - - Lägga till är en ogiltig åtgärd - - - Ta bort är en ogiltig åtgärd - - - Ändra ett element är en ogiltig åtgärd - - - Överordnat värde kan endast sättas på underordnade objekt - - - Kan inte märka ett underordnat objekt för borttagning - använd dess överordnades kollektion - - - Otillåtet för rotobjekt - använd ta bort istället - - - Kan inte spara ett underordnat objekt direkt - - - Objetet håller fortfarande på att ändras och kan inte sparas - - - Objektet är inte giltigt och kan inte sparas - - - Ogiltig åtgärd - skapa är inte tillåtet - - - Ogiltig åtgärd - hämta är inte tillåtet - - - Ogiltig åtgärd - uppdatera är inte tillåtet - - - Ogiltig åtgärd - ta bort är inte tillåtet - - - BeginEdit är inte giltigt på ett underordnat objekt - - - CancelEdit är inte giltigt på ett underordnat objekt - - - ApplyEdit är inte giltigt på ett underordnat objekt - - - Värdet saknas: - - - Fel vid läsande av värde: - - - Lägga till är ogiltigt på en skrivskyddad kollektion - - - Ta bort är ogiltigt på en skrivskyddad kollektion - - - Rensa är ogiltigt på en skrivskyddad kollektion - - - Objekt kan inte ändras i en skrivskyddad kollektion - - - Strängvärde kan inte omvandlas till ett datum - - - Värdet är inte ett SmartDate - - - Värdet måste vara ett giltigt datum - - - Sortering stöds inte av denna kollektion - - - Sökning stöds inte av denna kollektion - - - Det är inte tillåtet att lägga till objekt - - - Principal-objekt ska inte skickas med till DataPortal:en vid användande av Windows integrated security - - - Principal måste vara av typen BusinessPrincipal, inte - - - Inga matchande objekt i kollektionen - - - Security - - - Login - - - @user - - - @pw - - - t - - - today - - - y - - - yesterday - - - tom - - - tomorrow - - - Batch-jobb avslutat - - - Batch-jobb: - - - Jobbobjekt: - - - Batch-jobb misslyckades på grund av körningsfel - - - Processor för batch-kö startad - - - Namn: - - - Port: - - - Kö: - - - Max antal jobb: - - - misslyckades - - - misslyckades på servern - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.zh-CHS.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.zh-CHS.resx deleted file mode 100644 index 8c822f54..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Resources.zh-CHS.resx +++ /dev/null @@ -1,243 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 清除属非法操作 - - - 插入属非法操作 - - - 删除属无效操作 - - - 改变一个元素属非法操作 - - - 只允许给子对象赋值 - - - 不能直接将子对象标记为删除对象 – 请通过其 Parent 集合 - - - 不能用于源对象 – 请用删除 - - - 不能直接保存子对象 - - - 不能保存, 因为对象还在修改状态中 - - - 对象含无效值, 因此不能保存 - - - 非法操作 – 不允许创建 - - - 非法操作 – 不允许读取数据 - - - 无效操作 –不允许更新 - - - 非法操作 – 不允许删除 - - - BeginEdit 在子对象上无效 - - - CancelEdit 在子对象上无效 - - - ApplyEdit 在子对象上无效 - - - 此数值不存在: - - - 读取数值出错: - - - 字符串不能转化成日期 - - - 数值不是SmartDate 类型 - - - 使用视窗集成的安全模式时, 不能将主名对象传送给DataPortal - - - 主名必须是 BusinessPrincipal 的类型, 不能是 - - - 今天 - - - 今天 - - - 昨天 - - - 昨天 - - - 明天 - - - 明天 - - - 失败 - - - 伺服器出错 - - - 调用函数失败 - - - 尚未实现 - - - 非法操作 – 不允许执行 - - - 非法操作 – 不允许插入 - - - GetIdValue 返回值不能是空值 (Nothing) - - - 不允许 get 属性 - - - 不允许 set 属性 - - - 参数不能是空值 (Nothing) - - - 参数的类型必须是基本类型之一 - - - 拷贝属性失败 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.Designer.cs deleted file mode 100644 index 19d9d1a0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Csla.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] - [global::System.Configuration.DefaultSettingValueAttribute("http://localhost:4804/WSPortalcs/Service.asmx")] - public string Csla_WebServiceHost_WebServicePortal { - get { - return ((string)(this["Csla_WebServiceHost_WebServicePortal"])); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.settings b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.settings deleted file mode 100644 index 5ffc07b8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Properties/Settings.settings +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - http://localhost:4804/WSPortalcs/Service.asmx - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyBase.cs deleted file mode 100644 index 40c3189c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyBase.cs +++ /dev/null @@ -1,438 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Reflection; -using System.ComponentModel; -using System.Runtime.Serialization; -using Csla.Properties; - -namespace Csla -{ - - /// - /// This is a base class from which readonly business classes - /// can be derived. - /// - /// - /// This base class only supports data retrieve, not updating or - /// deleting. Any business classes derived from this base class - /// should only implement readonly properties. - /// - /// Type of the business object. - [Serializable()] - public abstract class ReadOnlyBase : ICloneable, Core.IReadOnlyObject, Csla.Security.IAuthorizeReadWrite - where T : ReadOnlyBase - { - #region Object ID Value - - /// - /// Override this method to return a unique identifying - /// vlaue for this object. - /// - /// - /// If you can not provide a unique identifying value, it - /// is best if you can generate such a unique value (even - /// temporarily). If you can not do that, then return - /// and then manually override the - /// , and - /// methods in your business object. - /// - protected abstract object GetIdValue(); - - #endregion - - #region System.Object Overrides - - /// - /// Compares this object for equality with another object, using - /// the results of to determine - /// equality. - /// - /// The object to be compared. - public override bool Equals(object obj) - { - if (obj is T) - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.Equals(((T)obj).GetIdValue()); - } - else - return false; - } - - /// - /// Returns a hash code value for this object, based on - /// the results of . - /// - public override int GetHashCode() - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.GetHashCode(); - } - - /// - /// Returns a text representation of this object by - /// returning the value - /// in text form. - /// - public override string ToString() - { - object id = GetIdValue(); - if (id == null) - throw new ArgumentException(Resources.GetIdValueCantBeNull); - return id.ToString(); - } - - #endregion - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected ReadOnlyBase() - { - Initialize(); - AddInstanceAuthorizationRules(); - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - AddAuthorizationRules(); - } - } - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region Authorization - - [NotUndoable()] - [NonSerialized()] - private Dictionary _readResultCache; - [NotUndoable()] - [NonSerialized()] - private System.Security.Principal.IPrincipal _lastPrincipal; - - [NotUndoable()] - [NonSerialized()] - private Security.AuthorizationRules _authorizationRules; - - - /// - /// Override this method to add authorization - /// rules for your object's properties. - /// - protected virtual void AddInstanceAuthorizationRules() - { - - } - - /// - /// Override this method to add per-type - /// authorization rules for your type's properties. - /// - /// - /// AddSharedAuthorizationRules is automatically called by CSLA .NET - /// when your object should associate per-type authorization roles - /// with its properties. - /// - protected virtual void AddAuthorizationRules() - { - - } - - /// - /// Provides access to the AuthorizationRules object for this - /// object. - /// - /// - /// Use this object to add a list of allowed and denied roles for - /// reading and writing properties of the object. Typically these - /// values are added once when the business object is instantiated. - /// - protected Security.AuthorizationRules AuthorizationRules - { - get - { - if (_authorizationRules == null) - _authorizationRules = new Security.AuthorizationRules(this.GetType()); - return _authorizationRules; - } - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - /// Indicates whether a negative - /// result should cause an exception. - [System.Runtime.CompilerServices.MethodImpl( - System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - public bool CanReadProperty(bool throwOnFalse) - { - string propertyName = - new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - bool result = CanReadProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - string.Format("{0} ({1})", - Resources.PropertyGetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - /// Name of the property to read. - /// Indicates whether a negative - /// result should cause an exception. - public bool CanReadProperty(string propertyName, bool throwOnFalse) - { - bool result = CanReadProperty(propertyName); - if (throwOnFalse && result == false) - throw new System.Security.SecurityException( - string.Format("{0} ({1})", - Resources.PropertyGetNotAllowed, propertyName)); - return result; - } - - /// - /// Returns if the user is allowed to read the - /// calling property. - /// - /// if read is allowed. - public bool CanReadProperty() - { - string propertyName = - new System.Diagnostics.StackTrace().GetFrame(1).GetMethod().Name.Substring(4); - return CanReadProperty(propertyName); - } - - /// - /// Returns if the user is allowed to read the - /// specified property. - /// - /// Name of the property to read. - /// if read is allowed. - /// - /// - /// If a list of allowed roles is provided then only users in those - /// roles can read. If no list of allowed roles is provided then - /// the list of denied roles is checked. - /// - /// If a list of denied roles is provided then users in the denied - /// roles are denied read access. All other users are allowed. - /// - /// If neither a list of allowed nor denied roles is provided then - /// all users will have read access. - /// - /// - [EditorBrowsable(EditorBrowsableState.Advanced)] - public virtual bool CanReadProperty(string propertyName) - { - bool result = true; - - VerifyAuthorizationCache(); - - if (_readResultCache.ContainsKey(propertyName)) - { - // cache contains value - get cached value - result = _readResultCache[propertyName]; - } - else - { - if (AuthorizationRules.HasReadAllowedRoles(propertyName)) - { - // some users are explicitly granted read access - // in which case all other users are denied. - if (!AuthorizationRules.IsReadAllowed(propertyName)) - result = false; - } - else if (AuthorizationRules.HasReadDeniedRoles(propertyName)) - { - // some users are explicitly denied read access. - if (AuthorizationRules.IsReadDenied(propertyName)) - result = false; - } - // store value in cache - _readResultCache[propertyName] = result; - } - return result; - } - - bool Csla.Security.IAuthorizeReadWrite.CanWriteProperty(string propertyName) - { - return false; - } - - private void VerifyAuthorizationCache() - { - if (_readResultCache == null) - _readResultCache = new Dictionary(); - if (!ReferenceEquals(Csla.ApplicationContext.User, _lastPrincipal)) - { - // the principal has changed - reset the cache - _readResultCache.Clear(); - _lastPrincipal = Csla.ApplicationContext.User; - } - } - - #endregion - - #region IClonable - - object ICloneable.Clone() - { - return GetClone(); - } - - /// - /// Creates a clone of the object. - /// - /// A new object containing the exact data of the original object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - public virtual object GetClone() - { - return Core.ObjectCloner.Clone(this); - } - - /// - /// Creates a clone of the object. - /// - /// - /// A new object containing the exact data of the original object. - /// - public T Clone() - { - return (T)GetClone(); - } - #endregion - - #region Data Access - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Create(object criteria) - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic")] - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - private void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - #region Serialization Notification - - [OnDeserialized()] - private void OnDeserializedHandler(StreamingContext context) - { - OnDeserialized(context); - AddInstanceAuthorizationRules(); - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - { - lock (this.GetType()) - { - if (!Security.SharedAuthorizationRules.RulesExistFor(this.GetType())) - AddAuthorizationRules(); - } - } - } - - /// - /// This method is called on a newly deserialized object - /// after deserialization is complete. - /// - /// Serialization context object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void OnDeserialized(StreamingContext context) - { - // do nothing - this is here so a subclass - // could override if needed - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyListBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyListBase.cs deleted file mode 100644 index 4a0e0a7e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/ReadOnlyListBase.cs +++ /dev/null @@ -1,145 +0,0 @@ -using System; -using System.ComponentModel; -using Csla.Properties; - -namespace Csla -{ - /// - /// This is the base class from which readonly collections - /// of readonly objects should be derived. - /// - /// Type of the list class. - /// Type of child objects contained in the list. - [System.Diagnostics.CodeAnalysis.SuppressMessage( - "Microsoft.Naming", "CA1710:IdentifiersShouldHaveCorrectSuffix")] - [Serializable()] - public abstract class ReadOnlyListBase : - Core.ReadOnlyBindingList, Csla.Core.IReadOnlyCollection, - ICloneable - where T : ReadOnlyListBase - { - - #region Constructors - - /// - /// Creates an instance of the object. - /// - protected ReadOnlyListBase() - { - Initialize(); - } - - #endregion - - #region Initialize - - /// - /// Override this method to set up event handlers so user - /// code in a partial class can respond to events raised by - /// generated code. - /// - protected virtual void Initialize() - { /* allows subclass to initialize events before any other activity occurs */ } - - #endregion - - #region ICloneable - - object ICloneable.Clone() - { - return GetClone(); - } - /// - /// Creates a clone of the object. - /// - /// A new object containing the exact data of the original object. - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual object GetClone() - { - return Core.ObjectCloner.Clone(this); - } - - /// - /// Creates a clone of the object. - /// - /// - /// A new object containing the exact data of the original object. - /// - public T Clone() - { - return (T)GetClone(); - } - - #endregion - - #region Data Access - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Create(object criteria) - { - throw new NotSupportedException(Resources.CreateNotSupportedException); - } - - /// - /// Override this method to allow retrieval of an existing business - /// object based on data in the database. - /// - /// An object containing criteria values to identify the object. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - protected virtual void DataPortal_Fetch(object criteria) - { - throw new NotSupportedException(Resources.FetchNotSupportedException); - } - - private void DataPortal_Update() - { - throw new NotSupportedException(Resources.UpdateNotSupportedException); - } - - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "criteria")] - private void DataPortal_Delete(object criteria) - { - throw new NotSupportedException(Resources.DeleteNotSupportedException); - } - - /// - /// Called by the server-side DataPortal prior to calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvoke(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal after calling the - /// requested DataPortal_xyz method. - /// - /// The DataPortalContext object passed to the DataPortal. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalInvokeComplete(DataPortalEventArgs e) - { - - } - - /// - /// Called by the server-side DataPortal if an exception - /// occurs during data access. - /// - /// The DataPortalContext object passed to the DataPortal. - /// The Exception thrown during data access. - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1707:IdentifiersShouldNotContainUnderscores", MessageId = "Member")] - [EditorBrowsable(EditorBrowsableState.Advanced)] - protected virtual void DataPortal_OnDataPortalException(DataPortalEventArgs e, Exception ex) - { - - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AccessType.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AccessType.cs deleted file mode 100644 index 93484d70..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AccessType.cs +++ /dev/null @@ -1,26 +0,0 @@ -namespace Csla.Security -{ - /// - /// The access types supported by authorization - /// as discussed in Chapter 3. - /// - public enum AccessType - { - /// - /// Roles allowed to read property. - /// - ReadAllowed, - /// - /// Roles denied read access to property. - /// - ReadDenied, - /// - /// Roles allowed to set property. - /// - WriteAllowed, - /// - /// Roles denied write access to property. - /// - WriteDenied - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRules.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRules.cs deleted file mode 100644 index 07cc9abf..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRules.cs +++ /dev/null @@ -1,324 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.ComponentModel; - -namespace Csla.Security -{ - - /// - /// Maintains a list of allowed and denied user roles - /// for each property. - /// - /// - [Serializable()] - public class AuthorizationRules - { - - private Type _businessObjectType; - private AuthorizationRulesManager _typeRules; - private AuthorizationRulesManager _instanceRules; - - /// - /// Creates an instance of the object, initializing - /// it with the business object type. - /// - /// - /// Type of the business object to which the rules - /// apply. - /// - public AuthorizationRules(Type businessObjectType) - { - _businessObjectType = businessObjectType; - } - - private AuthorizationRulesManager InstanceRules - { - get - { - if (_instanceRules == null) - _instanceRules = new AuthorizationRulesManager(); - return _instanceRules; - } - } - - private AuthorizationRulesManager TypeRules - { - get - { - if (_typeRules == null) - _typeRules = SharedAuthorizationRules.GetManager(_businessObjectType, true); - return _typeRules; - } - } - - #region Add Per-Instance Roles - - /// - /// Specify the roles allowed to read a given - /// property. - /// - /// Name of the property. - /// List of roles granted read access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of allowed roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void InstanceAllowRead(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = InstanceRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.ReadAllowed.Add(item); - } - - /// - /// Specify the roles denied read access to - /// a given property. - /// - /// Name of the property. - /// List of roles denied read access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of denied roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void InstanceDenyRead(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = InstanceRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.ReadDenied.Add(item); - } - - /// - /// Specify the roles allowed to write a given - /// property. - /// - /// Name of the property. - /// List of roles granted write access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of allowed roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void InstanceAllowWrite(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = InstanceRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.WriteAllowed.Add(item); - } - - /// - /// Specify the roles denied write access to - /// a given property. - /// - /// Name of the property. - /// List of roles denied write access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of denied roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void InstanceDenyWrite(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = InstanceRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.WriteDenied.Add(item); - } - - #endregion - - #region Add Per-Type Roles - - /// - /// Specify the roles allowed to read a given - /// property. - /// - /// Name of the property. - /// List of roles granted read access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of allowed roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void AllowRead(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = TypeRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.ReadAllowed.Add(item); - } - - /// - /// Specify the roles denied read access to - /// a given property. - /// - /// Name of the property. - /// List of roles denied read access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of denied roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void DenyRead(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = TypeRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.ReadDenied.Add(item); - } - - /// - /// Specify the roles allowed to write a given - /// property. - /// - /// Name of the property. - /// List of roles granted write access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of allowed roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void AllowWrite(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = TypeRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.WriteAllowed.Add(item); - } - - /// - /// Specify the roles denied write access to - /// a given property. - /// - /// Name of the property. - /// List of roles denied write access. - /// - /// This method may be called multiple times, with the roles in - /// each call being added to the end of the list of denied roles. - /// In other words, each call is cumulative, adding more roles - /// to the list. - /// - public void DenyWrite(string propertyName, params string[] roles) - { - RolesForProperty currentRoles = TypeRules.GetRolesForProperty(propertyName); - foreach (string item in roles) - currentRoles.WriteDenied.Add(item); - } - - #endregion - - #region Check Roles - - /// - /// Indicates whether the property has a list - /// of roles granted read access. - /// - /// Name of the property. - public bool HasReadAllowedRoles(string propertyName) - { - if (InstanceRules.GetRolesForProperty(propertyName).ReadAllowed.Count > 0) - return true; - return TypeRules.GetRolesForProperty(propertyName).ReadAllowed.Count > 0; - } - - /// - /// Indicates whether the current user as defined by - /// - /// is explicitly allowed to read the property. - /// - /// Name of the property. - public bool IsReadAllowed(string propertyName) - { - System.Security.Principal.IPrincipal user = ApplicationContext.User; - if (InstanceRules.GetRolesForProperty(propertyName).IsReadAllowed(user)) - return true; - return TypeRules.GetRolesForProperty(propertyName).IsReadAllowed(user); - } - - /// - /// Indicates whether the property has a list - /// of roles denied read access. - /// - /// Name of the property. - public bool HasReadDeniedRoles(string propertyName) - { - if (InstanceRules.GetRolesForProperty(propertyName).ReadDenied.Count > 0) - return true; - return TypeRules.GetRolesForProperty(propertyName).ReadDenied.Count > 0; - } - - /// - /// Indicates whether the current user as defined by - /// - /// is explicitly denied read access to the property. - /// - /// Name of the property. - public bool IsReadDenied(string propertyName) - { - System.Security.Principal.IPrincipal user = ApplicationContext.User; - if (InstanceRules.GetRolesForProperty(propertyName).IsReadDenied(user)) - return true; - return TypeRules.GetRolesForProperty(propertyName).IsReadDenied(user); - } - - /// - /// Indicates whether the property has a list - /// of roles granted write access. - /// - /// Name of the property. - public bool HasWriteAllowedRoles(string propertyName) - { - if (InstanceRules.GetRolesForProperty(propertyName).WriteAllowed.Count > 0) - return true; - return TypeRules.GetRolesForProperty(propertyName).WriteAllowed.Count > 0; - } - - /// - /// Indicates whether the current user as defined by - /// - /// is explicitly allowed to set the property. - /// - /// Name of the property. - public bool IsWriteAllowed(string propertyName) - { - System.Security.Principal.IPrincipal user = ApplicationContext.User; - if (InstanceRules.GetRolesForProperty(propertyName).IsWriteAllowed(user)) - return true; - return TypeRules.GetRolesForProperty(propertyName).IsWriteAllowed(user); - } - - /// - /// Indicates whether the property has a list - /// of roles denied write access. - /// - /// Name of the property. - public bool HasWriteDeniedRoles(string propertyName) - { - if (InstanceRules.GetRolesForProperty(propertyName).WriteDenied.Count > 0) - return true; - return TypeRules.GetRolesForProperty(propertyName).WriteDenied.Count > 0; - } - - /// - /// Indicates whether the current user as defined by - /// - /// is explicitly denied write access to the property. - /// - /// Name of the property. - public bool IsWriteDenied(string propertyName) - { - System.Security.Principal.IPrincipal user = ApplicationContext.User; - if (InstanceRules.GetRolesForProperty(propertyName).IsWriteDenied(user)) - return true; - return TypeRules.GetRolesForProperty(propertyName).IsWriteDenied(user); - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRulesManager.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRulesManager.cs deleted file mode 100644 index 5c52e671..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/AuthorizationRulesManager.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; - -namespace Csla.Security -{ - - /// - /// Maintains authorization roles for a business object - /// or business object type. - /// - public class AuthorizationRulesManager - { - private Dictionary _rules; - - internal Dictionary RulesList - { - get - { - if (_rules == null) - _rules = new Dictionary(); - return _rules; - } - } - - #region Get Roles - - internal RolesForProperty GetRolesForProperty(string propertyName) - { - RolesForProperty currentRoles = null; - if (!RulesList.ContainsKey(propertyName)) - { - currentRoles = new RolesForProperty(); - RulesList.Add(propertyName, currentRoles); - } - else - currentRoles = RulesList[propertyName]; - return currentRoles; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/BusinessPrincipalBase.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/BusinessPrincipalBase.cs deleted file mode 100644 index 92d75dbc..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/BusinessPrincipalBase.cs +++ /dev/null @@ -1,43 +0,0 @@ -using System; -using System.Security.Principal; - -namespace Csla.Security -{ - /// - /// Base class from which custom principal - /// objects should inherit to operate - /// properly with the data portal. - /// - [Serializable()] - public class BusinessPrincipalBase : IPrincipal - { - private IIdentity _identity; - - /// - /// Returns the user's identity object. - /// - public virtual IIdentity Identity - { - get { return _identity; } - } - - /// - /// Returns a value indicating whether the - /// user is in a given role. - /// - /// Name of the role. - public virtual bool IsInRole(string role) - { - return false; - } - - /// - /// Creates an instance of the object. - /// - /// Identity object for the user. - protected BusinessPrincipalBase(IIdentity identity) - { - _identity = identity; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/IAuthorizeReadWrite.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/IAuthorizeReadWrite.cs deleted file mode 100644 index fa232712..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/IAuthorizeReadWrite.cs +++ /dev/null @@ -1,29 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Security -{ - /// - /// Defines the authorization interface through which an - /// object can indicate which properties the current - /// user can read and write. - /// - public interface IAuthorizeReadWrite - { - /// - /// Returns if the user is allowed to write the - /// to the specified property. - /// - /// if write is allowed. - /// Name of the property to read. - bool CanWriteProperty(string propertyName); - /// - /// Returns if the user is allowed to read the - /// specified property. - /// - /// if read is allowed. - /// Name of the property to read. - bool CanReadProperty(string propertyName); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/RolesForProperty.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/RolesForProperty.cs deleted file mode 100644 index d0e7b7c7..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/RolesForProperty.cs +++ /dev/null @@ -1,122 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Security.Principal; -using System.ComponentModel; - -namespace Csla.Security -{ - - /// - /// Maintains a list of allowed and denied - /// user roles for a specific property. - /// - /// - [Serializable()] - internal class RolesForProperty - { - private List _readAllowed = new List(); - private List _readDenied = new List(); - private List _writeAllowed = new List(); - private List _writeDenied = new List(); - - /// - /// Returns a List(Of string) containing the list - /// of roles allowed read access. - /// - public List ReadAllowed - { - get { return _readAllowed; } - } - - /// - /// Returns a List(Of string) containing the list - /// of roles denied read access. - /// - public List ReadDenied - { - get { return _readDenied; } - } - - /// - /// Returns a List(Of string) containing the list - /// of roles allowed write access. - /// - public List WriteAllowed - { - get { return _writeAllowed; } - } - - /// - /// Returns a List(Of string) containing the list - /// of roles denied write access. - /// - public List WriteDenied - { - get { return _writeDenied; } - } - - /// - /// Returns if the user is in a role - /// explicitly allowed read access. - /// - /// A - /// representing the user. - /// if the user is allowed read access. - /// - public bool IsReadAllowed(IPrincipal principal) - { - foreach (string role in ReadAllowed) - if (principal.IsInRole(role)) - return true; - return false; - } - - /// - /// Returns if the user is in a role - /// explicitly denied read access. - /// - /// A - /// representing the user. - /// if the user is denied read access. - /// - public bool IsReadDenied(IPrincipal principal) - { - foreach (string role in ReadDenied) - if (principal.IsInRole(role)) - return true; - return false; - } - - /// - /// Returns if the user is in a role - /// explicitly allowed write access. - /// - /// A - /// representing the user. - /// if the user is allowed write access. - /// - public bool IsWriteAllowed(IPrincipal principal) - { - foreach (string role in WriteAllowed) - if (principal.IsInRole(role)) - return true; - return false; - } - - /// - /// Returns if the user is in a role - /// explicitly denied write access. - /// - /// A - /// representing the user. - /// if the user is denied write access. - /// - public bool IsWriteDenied(IPrincipal principal) - { - foreach (string role in WriteDenied) - if (principal.IsInRole(role)) - return true; - return false; - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/SharedAuthorizationRules.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/SharedAuthorizationRules.cs deleted file mode 100644 index 8e80cc70..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Security/SharedAuthorizationRules.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; - -namespace Csla.Security -{ - - /// - /// Maintains a list of all the per-type - /// objects - /// loaded in memory. - /// - internal static class SharedAuthorizationRules - { - private static Dictionary _managers = - new Dictionary(); - - /// - /// Gets the for the - /// specified object type, optionally creating a new instance - /// of the object if necessary. - /// - /// - /// Type of business object for which the rules apply. - /// - /// Indicates whether to create - /// a new instance of the object if one doesn't exist. - internal static AuthorizationRulesManager GetManager(Type objectType, bool create) - { - AuthorizationRulesManager result = null; - if (!_managers.TryGetValue(objectType, out result) && create) - { - lock (_managers) - { - result = new AuthorizationRulesManager(); - _managers.Add(objectType, result); - } - } - return result; - } - - /// - /// Gets a value indicating whether a set of rules - /// have been created for a given . - /// - /// - /// Type of business object for which the rules apply. - /// - /// if rules exist for the type. - public static bool RulesExistFor(Type objectType) - { - return _managers.ContainsKey(objectType); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SmartDate.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SmartDate.cs deleted file mode 100644 index 97d2ce76..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SmartDate.cs +++ /dev/null @@ -1,897 +0,0 @@ -using System; -using Csla.Properties; - -namespace Csla -{ - - /// - /// Provides a date data type that understands the concept - /// of an empty date value. - /// - /// - /// See Chapter 5 for a full discussion of the need for this - /// data type and the design choices behind it. - /// - [Serializable()] - public struct SmartDate : IComparable - { - private DateTime _date; - private bool _initialized; - private EmptyValue _emptyValue; - private string _format; - private static string _defaultFormat; - - #region EmptyValue enum - - /// - /// Indicates the empty value of a - /// SmartDate. - /// - public enum EmptyValue - { - /// - /// Indicates that an empty SmartDate - /// is the smallest date. - /// - MinDate, - /// - /// Indicates that an empty SmartDate - /// is the largest date. - /// - MaxDate - } - - #endregion - - #region Constructors - - static SmartDate() - { - _defaultFormat = "d"; - } - - /// - /// Creates a new SmartDate object. - /// - /// Indicates whether an empty date is the min or max date value. - public SmartDate(bool emptyIsMin) - { - _emptyValue = GetEmptyValue(emptyIsMin); - _format = null; - _initialized = false; - // provide a dummy value to allow real initialization - _date = DateTime.MinValue; - SetEmptyDate(_emptyValue); - } - - /// - /// Creates a new SmartDate object. - /// - /// Indicates whether an empty date is the min or max date value. - public SmartDate(EmptyValue emptyValue) - { - _emptyValue = emptyValue; - _format = null; - _initialized = false; - // provide a dummy value to allow real initialization - _date = DateTime.MinValue; - SetEmptyDate(_emptyValue); - } - - /// - /// Creates a new SmartDate object. - /// - /// - /// The SmartDate created will use the min possible - /// date to represent an empty date. - /// - /// The initial value of the object. - public SmartDate(DateTime value) - { - _emptyValue = Csla.SmartDate.EmptyValue.MinDate; - _format = null; - _initialized = false; - _date = DateTime.MinValue; - Date = value; - } - - /// - /// Creates a new SmartDate object. - /// - /// The initial value of the object. - /// Indicates whether an empty date is the min or max date value. - public SmartDate(DateTime value, bool emptyIsMin) - { - _emptyValue = GetEmptyValue(emptyIsMin); - _format = null; - _initialized = false; - _date = DateTime.MinValue; - Date = value; - } - - /// - /// Creates a new SmartDate object. - /// - /// The initial value of the object. - /// Indicates whether an empty date is the min or max date value. - public SmartDate(DateTime value, EmptyValue emptyValue) - { - _emptyValue = emptyValue; - _format = null; - _initialized = false; - _date = DateTime.MinValue; - Date = value; - } - - /// - /// Creates a new SmartDate object. - /// - /// - /// The SmartDate created will use the min possible - /// date to represent an empty date. - /// - /// The initial value of the object (as text). - public SmartDate(string value) - { - _emptyValue = EmptyValue.MinDate; - _format = null; - _initialized = true; - _date = DateTime.MinValue; - this.Text = value; - } - - /// - /// Creates a new SmartDate object. - /// - /// The initial value of the object (as text). - /// Indicates whether an empty date is the min or max date value. - public SmartDate(string value, bool emptyIsMin) - { - _emptyValue = GetEmptyValue(emptyIsMin); - _format = null; - _initialized = true; - _date = DateTime.MinValue; - this.Text = value; - } - - /// - /// Creates a new SmartDate object. - /// - /// The initial value of the object (as text). - /// Indicates whether an empty date is the min or max date value. - public SmartDate(string value, EmptyValue emptyValue) - { - _emptyValue = emptyValue; - _format = null; - _initialized = true; - _date = DateTime.MinValue; - this.Text = value; - } - - private static EmptyValue GetEmptyValue(bool emptyIsMin) - { - if (emptyIsMin) - return EmptyValue.MinDate; - else - return EmptyValue.MaxDate; - } - - private void SetEmptyDate(EmptyValue emptyValue) - { - if (emptyValue == SmartDate.EmptyValue.MinDate) - this.Date = DateTime.MinValue; - else - this.Date = DateTime.MaxValue; - } - - #endregion - - #region Text Support - - /// - /// Sets the global default format string used by all new - /// SmartDate values going forward. - /// - /// - /// The default global format string is "d" unless this - /// method is called to change that value. Existing SmartDate - /// values are unaffected by this method, only SmartDate - /// values created after calling this method are affected. - /// - /// - /// The format string should follow the requirements for the - /// .NET System.String.Format statement. - /// - public static void SetDefaultFormatString(string formatString) - { - _defaultFormat = formatString; - } - - /// - /// Gets or sets the format string used to format a date - /// value when it is returned as text. - /// - /// - /// The format string should follow the requirements for the - /// .NET System.String.Format statement. - /// - /// A format string. - public string FormatString - { - get - { - if (_format == null) - _format = _defaultFormat; - return _format; - } - set - { - _format = value; - } - } - - /// - /// Gets or sets the date value. - /// - /// - /// - /// This property can be used to set the date value by passing a - /// text representation of the date. Any text date representation - /// that can be parsed by the .NET runtime is valid. - /// - /// When the date value is retrieved via this property, the text - /// is formatted by using the format specified by the - /// property. The default is the - /// short date format (d). - /// - /// - public string Text - { - get { return DateToString(this.Date, FormatString, _emptyValue); } - set { this.Date = StringToDate(value, _emptyValue); } - } - - #endregion - - #region Date Support - - /// - /// Gets or sets the date value. - /// - public DateTime Date - { - get - { - if (!_initialized) - { - _date = DateTime.MinValue; - _initialized = true; - } - return _date; - } - set - { - _date = value; - _initialized = true; - } - } - - #endregion - - #region System.Object overrides - - /// - /// Returns a text representation of the date value. - /// - public override string ToString() - { - return this.Text; - } - - /// - /// Returns a text representation of the date value. - /// - /// - /// A standard .NET format string. - /// - public string ToString(string format) - { - return DateToString(this.Date, format, _emptyValue); - } - - /// - /// Compares this object to another - /// for equality. - /// - /// Object to compare for equality. - public override bool Equals(object obj) - { - if (obj is SmartDate) - { - SmartDate tmp = (SmartDate)obj; - if (this.IsEmpty && tmp.IsEmpty) - return true; - else - return this.Date.Equals(tmp.Date); - } - else if (obj is DateTime) - return this.Date.Equals((DateTime)obj); - else if (obj is string) - return (this.CompareTo(obj.ToString()) == 0); - else - return false; - } - - /// - /// Returns a hash code for this object. - /// - public override int GetHashCode() - { - return this.Date.GetHashCode(); - } - - #endregion - - #region DBValue - - /// - /// Gets a database-friendly version of the date value. - /// - /// - /// - /// If the SmartDate contains an empty date, this returns . - /// Otherwise the actual date value is returned as type Date. - /// - /// This property is very useful when setting parameter values for - /// a Command object, since it automatically stores null values into - /// the database for empty date values. - /// - /// When you also use the SafeDataReader and its GetSmartDate method, - /// you can easily read a null value from the database back into a - /// SmartDate object so it remains considered as an empty date value. - /// - /// - public object DBValue - { - get - { - if (this.IsEmpty) - return DBNull.Value; - else - return this.Date; - } - } - - #endregion - - #region Empty Dates - - /// - /// Gets a value indicating whether this object contains an empty date. - /// - public bool IsEmpty - { - get - { - if (_emptyValue == EmptyValue.MinDate) - return this.Date.Equals(DateTime.MinValue); - else - return this.Date.Equals(DateTime.MaxValue); - } - } - - /// - /// Gets a value indicating whether an empty date is the - /// min or max possible date value. - /// - /// - /// Whether an empty date is considered to be the smallest or largest possible - /// date is only important for comparison operations. This allows you to - /// compare an empty date with a real date and get a meaningful result. - /// - public bool EmptyIsMin - { - get { return (_emptyValue == EmptyValue.MinDate); } - } - - #endregion - - #region Conversion Functions - - /// - /// Converts a string value into a SmartDate. - /// - /// String containing the date value. - /// A new SmartDate containing the date value. - /// - /// EmptyIsMin will default to . - /// - public static SmartDate Parse(string value) - { - return new SmartDate(value); - } - - /// - /// Converts a string value into a SmartDate. - /// - /// String containing the date value. - /// Indicates whether an empty date is the min or max date value. - /// A new SmartDate containing the date value. - public static SmartDate Parse(string value, bool emptyIsMin) - { - return new SmartDate(value, emptyIsMin); - } - - /// - /// Converts a text date representation into a Date value. - /// - /// - /// An empty string is assumed to represent an empty date. An empty date - /// is returned as the MinValue of the Date datatype. - /// - /// The text representation of the date. - /// A Date value. - public static DateTime StringToDate(string value) - { - return StringToDate(value, true); - } - - /// - /// Converts a text date representation into a Date value. - /// - /// - /// An empty string is assumed to represent an empty date. An empty date - /// is returned as the MinValue or MaxValue of the Date datatype depending - /// on the EmptyIsMin parameter. - /// - /// The text representation of the date. - /// Indicates whether an empty date is the min or max date value. - /// A Date value. - public static DateTime StringToDate(string value, bool emptyIsMin) - { - return StringToDate(value, GetEmptyValue(emptyIsMin)); - } - - /// - /// Converts a text date representation into a Date value. - /// - /// - /// An empty string is assumed to represent an empty date. An empty date - /// is returned as the MinValue or MaxValue of the Date datatype depending - /// on the EmptyIsMin parameter. - /// - /// The text representation of the date. - /// Indicates whether an empty date is the min or max date value. - /// A Date value. - public static DateTime StringToDate(string value, EmptyValue emptyValue) - { - DateTime tmp; - if (String.IsNullOrEmpty(value)) - { - if (emptyValue == EmptyValue.MinDate) - return DateTime.MinValue; - else - return DateTime.MaxValue; - } - else if (DateTime.TryParse(value, out tmp)) - return tmp; - else - { - string ldate = value.Trim().ToLower(); - if (ldate == Resources.SmartDateT || - ldate == Resources.SmartDateToday || - ldate == ".") - return DateTime.Now; - if (ldate == Resources.SmartDateY || - ldate == Resources.SmartDateYesterday || - ldate == "-") - return DateTime.Now.AddDays(-1); - if (ldate == Resources.SmartDateTom || - ldate == Resources.SmartDateTomorrow || - ldate == "+") - return DateTime.Now.AddDays(1); - throw new ArgumentException(Resources.StringToDateException); - } - } - - /// - /// Converts a date value into a text representation. - /// - /// - /// The date is considered empty if it matches the min value for - /// the Date datatype. If the date is empty, this - /// method returns an empty string. Otherwise it returns the date - /// value formatted based on the FormatString parameter. - /// - /// The date value to convert. - /// The format string used to format the date into text. - /// Text representation of the date value. - public static string DateToString( - DateTime value, string formatString) - { - return DateToString(value, formatString, true); - } - - /// - /// Converts a date value into a text representation. - /// - /// - /// Whether the date value is considered empty is determined by - /// the EmptyIsMin parameter value. If the date is empty, this - /// method returns an empty string. Otherwise it returns the date - /// value formatted based on the FormatString parameter. - /// - /// The date value to convert. - /// The format string used to format the date into text. - /// Indicates whether an empty date is the min or max date value. - /// Text representation of the date value. - public static string DateToString( - DateTime value, string formatString, bool emptyIsMin) - { - return DateToString(value, formatString, GetEmptyValue(emptyIsMin)); - } - - /// - /// Converts a date value into a text representation. - /// - /// - /// Whether the date value is considered empty is determined by - /// the EmptyIsMin parameter value. If the date is empty, this - /// method returns an empty string. Otherwise it returns the date - /// value formatted based on the FormatString parameter. - /// - /// The date value to convert. - /// The format string used to format the date into text. - /// Indicates whether an empty date is the min or max date value. - /// Text representation of the date value. - public static string DateToString( - DateTime value, string formatString, EmptyValue emptyValue) - { - if (emptyValue == EmptyValue.MinDate) - { - if (value == DateTime.MinValue) - return string.Empty; - } - else - { - if (value == DateTime.MaxValue) - return string.Empty; - } - return string.Format("{0:" + formatString + "}", value); - } - - #endregion - - #region Manipulation Functions - - /// - /// Compares one SmartDate to another. - /// - /// - /// This method works the same as the DateTime.CompareTo method - /// on the Date datetype, with the exception that it - /// understands the concept of empty date values. - /// - /// The date to which we are being compared. - /// A value indicating if the comparison date is less than, equal to or greater than this date. - public int CompareTo(SmartDate value) - { - if (this.IsEmpty && value.IsEmpty) - return 0; - else - return _date.CompareTo(value.Date); - } - - /// - /// Compares one SmartDate to another. - /// - /// - /// This method works the same as the DateTime.CompareTo method - /// on the Date datetype, with the exception that it - /// understands the concept of empty date values. - /// - /// The date to which we are being compared. - /// A value indicating if the comparison date is less than, equal to or greater than this date. - int IComparable.CompareTo(object value) - { - if (value is SmartDate) - return CompareTo((SmartDate)value); - else - throw new ArgumentException(Resources.ValueNotSmartDateException); - } - - /// - /// Compares a SmartDate to a text date value. - /// - /// The date to which we are being compared. - /// A value indicating if the comparison date is less than, equal to or greater than this date. - public int CompareTo(string value) - { - return this.Date.CompareTo(StringToDate(value, _emptyValue)); - } - - /// - /// Compares a SmartDate to a date value. - /// - /// The date to which we are being compared. - /// A value indicating if the comparison date is less than, equal to or greater than this date. - public int CompareTo(DateTime value) - { - return this.Date.CompareTo(value); - } - - /// - /// Adds a TimeSpan onto the object. - /// - /// Span to add to the date. - public DateTime Add(TimeSpan value) - { - if (IsEmpty) - return this.Date; - else - return this.Date.Add(value); - } - - /// - /// Subtracts a TimeSpan from the object. - /// - /// Span to subtract from the date. - public DateTime Subtract(TimeSpan value) - { - if (IsEmpty) - return this.Date; - else - return this.Date.Subtract(value); - } - - /// - /// Subtracts a DateTime from the object. - /// - /// Date to subtract from the date. - public TimeSpan Subtract(DateTime value) - { - if (IsEmpty) - return TimeSpan.Zero; - else - return this.Date.Subtract(value); - } - - #endregion - - #region Operators - - /// - /// Equality operator - /// - /// First object - /// Second object - /// - public static bool operator ==(SmartDate obj1, SmartDate obj2) - { - return obj1.Equals(obj2); - } - - /// - /// Inequality operator - /// - /// First object - /// Second object - /// - public static bool operator !=(SmartDate obj1, SmartDate obj2) - { - return !obj1.Equals(obj2); - } - - /// - /// Equality operator - /// - /// First object - /// Second object - /// - public static bool operator ==(SmartDate obj1, DateTime obj2) - { - return obj1.Equals(obj2); - } - - /// - /// Inequality operator - /// - /// First object - /// Second object - /// - public static bool operator !=(SmartDate obj1, DateTime obj2) - { - return !obj1.Equals(obj2); - } - - /// - /// Equality operator - /// - /// First object - /// Second object - /// - public static bool operator ==(SmartDate obj1, string obj2) - { - return obj1.Equals(obj2); - } - - /// - /// Inequality operator - /// - /// First object - /// Second object - /// - public static bool operator !=(SmartDate obj1, string obj2) - { - return !obj1.Equals(obj2); - } - - /// - /// Addition operator - /// - /// Original date/time - /// Span to add - /// - public static SmartDate operator +(SmartDate start, TimeSpan span) - { - return new SmartDate(start.Add(span), start.EmptyIsMin); - } - - /// - /// Subtraction operator - /// - /// Original date/time - /// Span to subtract - /// - public static SmartDate operator -(SmartDate start, TimeSpan span) - { - return new SmartDate(start.Subtract(span), start.EmptyIsMin); - } - - /// - /// Subtraction operator - /// - /// Original date/time - /// Second date/time - /// - public static TimeSpan operator -(SmartDate start, SmartDate finish) - { - return start.Subtract(finish.Date); - } - - /// - /// Greater than operator - /// - /// First object - /// Second object - /// - public static bool operator >(SmartDate obj1, SmartDate obj2) - { - return obj1.CompareTo(obj2) > 0; - } - - /// - /// Less than operator - /// - /// First object - /// Second object - /// - public static bool operator <(SmartDate obj1, SmartDate obj2) - { - return obj1.CompareTo(obj2) < 0; - } - - /// - /// Greater than operator - /// - /// First object - /// Second object - /// - public static bool operator >(SmartDate obj1, DateTime obj2) - { - return obj1.CompareTo(obj2) > 0; - } - - /// - /// Less than operator - /// - /// First object - /// Second object - /// - public static bool operator <(SmartDate obj1, DateTime obj2) - { - return obj1.CompareTo(obj2) < 0; - } - - /// - /// Greater than operator - /// - /// First object - /// Second object - /// - public static bool operator >(SmartDate obj1, string obj2) - { - return obj1.CompareTo(obj2) > 0; - } - - /// - /// Less than operator - /// - /// First object - /// Second object - /// - public static bool operator <(SmartDate obj1, string obj2) - { - return obj1.CompareTo(obj2) < 0; - } - - /// - /// Greater than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator >=(SmartDate obj1, SmartDate obj2) - { - return obj1.CompareTo(obj2) >= 0; - } - - /// - /// Less than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator <=(SmartDate obj1, SmartDate obj2) - { - return obj1.CompareTo(obj2) <= 0; - } - - /// - /// Greater than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator >=(SmartDate obj1, DateTime obj2) - { - return obj1.CompareTo(obj2) >= 0; - } - - /// - /// Less than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator <=(SmartDate obj1, DateTime obj2) - { - return obj1.CompareTo(obj2) <= 0; - } - - /// - /// Greater than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator >=(SmartDate obj1, string obj2) - { - return obj1.CompareTo(obj2) >= 0; - } - - /// - /// Less than or equals operator - /// - /// First object - /// Second object - /// - public static bool operator <=(SmartDate obj1, string obj2) - { - return obj1.CompareTo(obj2) <= 0; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SortedBindingList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SortedBindingList.cs deleted file mode 100644 index 1132c133..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/SortedBindingList.cs +++ /dev/null @@ -1,836 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Reflection; -using System.Collections; - -namespace Csla -{ - - /// - /// Provides a sorted view into an existing IList(Of T). - /// - /// - /// Type of child object contained by - /// the original list or collection. - /// - public class SortedBindingList : - IList, IBindingList, IEnumerable, ICancelAddNew - { - - #region ListItem class - - private class ListItem : IComparable - { - - private object _key; - private int _baseIndex; - - public object Key - { - get { return _key; } - } - - public int BaseIndex - { - get { return _baseIndex; } - set { _baseIndex = value; } - } - - public ListItem(object key, int baseIndex) - { - _key = key; - _baseIndex = baseIndex; - } - - public int CompareTo(ListItem other) - { - object target = other.Key; - - if (Key is IComparable) - return ((IComparable)Key).CompareTo(target); - - else - { - if (Key == null) - return 0; - else if (Key.Equals(target)) - return 0; - else - return Key.ToString().CompareTo(target.ToString()); - } - } - - public override string ToString() - { - return Key.ToString(); - } - - } - - #endregion - - #region Sorted enumerator - - private class SortedEnumerator : IEnumerator - { - private IList _list; - private List _sortIndex; - private ListSortDirection _sortOrder; - private int _index; - - public SortedEnumerator( - IList list, - List sortIndex, - ListSortDirection direction) - { - _list = list; - _sortIndex = sortIndex; - _sortOrder = direction; - Reset(); - } - - public T Current - { - get { return _list[_sortIndex[_index].BaseIndex]; } - } - - Object System.Collections.IEnumerator.Current - { - get { return _list[_sortIndex[_index].BaseIndex]; } - } - - public bool MoveNext() - { - if (_sortOrder == ListSortDirection.Ascending) - { - if (_index < _sortIndex.Count - 1) - { - _index++; - return true; - } - else - return false; - } - else - { - if (_index > 0) - { - _index--; - return true; - } - else - return false; - } - } - - public void Reset() - { - if (_sortOrder == ListSortDirection.Ascending) - _index = -1; - else - _index = _sortIndex.Count; - } - - #region IDisposable Support - - private bool _disposedValue = false; // To detect redundant calls. - - // IDisposable - protected virtual void Dispose(bool disposing) - { - if (!_disposedValue) - { - if (disposing) - { - // TODO: free unmanaged resources when explicitly called - } - // TODO: free shared unmanaged resources - } - _disposedValue = true; - } - - // this code added to correctly implement the disposable pattern. - public void Dispose() - { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above. - Dispose(true); - GC.SuppressFinalize(this); - } - - ~SortedEnumerator() - { - Dispose(false); - } - - #endregion - - } - - #endregion - - #region Sort/Unsort - - private void DoSort() - { - int index = 0; - _sortIndex.Clear(); - - if (_sortBy == null) - { - foreach (T obj in _list) - { - _sortIndex.Add(new ListItem(obj, index)); - index++; - } - } - else - { - foreach (T obj in _list) - { - _sortIndex.Add(new ListItem(_sortBy.GetValue(obj), index)); - index++; - } - } - - _sortIndex.Sort(); - _sorted = true; - - OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, 0)); - - } - - private void UndoSort() - { - _sortIndex.Clear(); - _sortBy = null; - _sortOrder = ListSortDirection.Ascending; - _sorted = false; - - OnListChanged(new ListChangedEventArgs(ListChangedType.Reset, 0)); - - } - - #endregion - - #region IEnumerable - - /// - /// Returns an enumerator for the list, honoring - /// any sort that is active at the time. - /// - public IEnumerator GetEnumerator() - { - if (_sorted) - return new SortedEnumerator(_list, _sortIndex, _sortOrder); - else - return _list.GetEnumerator(); - } - - #endregion - - #region IBindingList, IList - - /// - /// Implemented by IList source object. - /// - /// Property on which - /// to build the index. - public void AddIndex(PropertyDescriptor property) - { - if (_supportsBinding) - _bindingList.AddIndex(property); - } - - /// - /// Implemented by IList source object. - /// - public object AddNew() - { - object result; - if (_supportsBinding) - { - _initiatedLocally = true; - result = _bindingList.AddNew(); - _initiatedLocally = false; - OnListChanged( - new ListChangedEventArgs( - ListChangedType.ItemAdded, _bindingList.Count - 1)); - } - else - result = null; - - return result; - } - - /// - /// Implemented by IList source object. - /// - public bool AllowEdit - { - get - { - if (_supportsBinding) - return _bindingList.AllowEdit; - else - return false; - } - } - - /// - /// Implemented by IList source object. - /// - public bool AllowNew - { - get - { - if (_supportsBinding) - return _bindingList.AllowNew; - else - return false; - } - } - - /// - /// Implemented by IList source object. - /// - public bool AllowRemove - { - get - { - if (_supportsBinding) - return _bindingList.AllowRemove; - else - return false; - } - } - - /// - /// Applies a sort to the view. - /// - /// The text name of the property on which to sort. - /// The direction to sort the data. - public void ApplySort(string propertyName, ListSortDirection direction) - { - _sortBy = null; - - if (!String.IsNullOrEmpty(propertyName)) - { - Type itemType = typeof(T); - foreach (PropertyDescriptor prop in - TypeDescriptor.GetProperties(itemType)) - { - if (prop.Name == propertyName) - { - _sortBy = prop; - break; - } - } - } - - ApplySort(_sortBy, direction); - - } - - /// - /// Applies a sort to the view. - /// - /// A PropertyDescriptor for the property on which to sort. - /// The direction to sort the data. - public void ApplySort( - PropertyDescriptor property, ListSortDirection direction) - { - _sortBy = property; - _sortOrder = direction; - DoSort(); - } - - /// - /// Finds an item in the view - /// - /// Name of the property to search - /// Value to find - public int Find(string propertyName, object key) - { - PropertyDescriptor findProperty = null; - - if (!String.IsNullOrEmpty(propertyName)) - { - Type itemType = typeof(T); - foreach (PropertyDescriptor prop in TypeDescriptor.GetProperties(itemType)) - { - if (prop.Name == propertyName) - { - findProperty = prop; - break; - } - } - } - - return Find(findProperty, key); - - } - - /// - /// Implemented by IList source object. - /// - /// Key value for which to search. - /// Property to search for the key - /// value. - public int Find(PropertyDescriptor property, object key) - { - if (_supportsBinding) - return SortedIndex(_bindingList.Find(property, key)); - else - return -1; - } - - /// - /// Gets a value indicating whether the view is currently sorted. - /// - public bool IsSorted - { - get { return _sorted; } - } - - /// - /// Raised to indicate that the list's data has changed. - /// - /// - /// This event is raised if the underling IList object's data changes - /// (assuming the underling IList also implements the IBindingList - /// interface). It is also raised if the sort property or direction - /// is changed to indicate that the view's data has changed. See - /// Chapter 5 for details. - /// - public event ListChangedEventHandler ListChanged; - - /// - /// Raises the event. - /// - /// Event arguments. - protected void OnListChanged(ListChangedEventArgs e) - { - if (ListChanged != null) - ListChanged(this, e); - } - - /// - /// Implemented by IList source object. - /// - /// Property for which the - /// index should be removed. - public void RemoveIndex(PropertyDescriptor property) - { - if (_supportsBinding) - _bindingList.RemoveIndex(property); - } - - /// - /// Removes any sort currently applied to the view. - /// - public void RemoveSort() - { - UndoSort(); - } - - /// - /// Returns the direction of the current sort. - /// - public ListSortDirection SortDirection - { - get { return _sortOrder; } - } - - /// - /// Returns the PropertyDescriptor of the current sort. - /// - public PropertyDescriptor SortProperty - { - get { return _sortBy; } - } - - /// - /// Returns since this object does raise the - /// ListChanged event. - /// - public bool SupportsChangeNotification - { - get { return true; } - } - - /// - /// Implemented by IList source object. - /// - public bool SupportsSearching - { - get - { - if (_supportsBinding) - return _bindingList.SupportsSearching; - else - return false; - } - } - - /// - /// Returns . Sorting is supported. - /// - public bool SupportsSorting - { - get { return true; } - } - - /// - /// Implemented by IList source object. - /// - /// Array to receive the data. - /// Starting array index. - public void CopyTo(T[] array, int arrayIndex) - { - _list.CopyTo(array, arrayIndex); - } - - void System.Collections.ICollection.CopyTo(System.Array array, int index) - { - CopyTo((T[])array, index); - } - - /// - /// Implemented by IList source object. - /// - public int Count - { - get { return _list.Count; } - } - - bool System.Collections.ICollection.IsSynchronized - { - get { return false; } - } - - object System.Collections.ICollection.SyncRoot - { - get { return _list; } - } - - IEnumerator System.Collections.IEnumerable.GetEnumerator() - { - return GetEnumerator(); - } - - /// - /// Implemented by IList source object. - /// - /// Item to add to the list. - public void Add(T item) - { - _list.Add(item); - } - - int System.Collections.IList.Add(object value) - { - Add((T)value); - return SortedIndex(_list.Count - 1); - } - - /// - /// Implemented by IList source object. - /// - public void Clear() - { - _list.Clear(); - } - - /// - /// Implemented by IList source object. - /// - /// Item for which to search. - public bool Contains(T item) - { - return _list.Contains(item); - } - - bool System.Collections.IList.Contains(object value) - { - return Contains((T)value); - } - - /// - /// Implemented by IList source object. - /// - /// Item for which to search. - public int IndexOf(T item) - { - return SortedIndex(_list.IndexOf(item)); - } - - int System.Collections.IList.IndexOf(object value) - { - return IndexOf((T)value); - } - - /// - /// Implemented by IList source object. - /// - /// Index at - /// which to insert the item. - /// Item to insert. - public void Insert(int index, T item) - { - _list.Insert(index, item); - } - - void System.Collections.IList.Insert(int index, object value) - { - Insert(index, (T)value); - } - - bool System.Collections.IList.IsFixedSize - { - get { return false; } - } - - /// - /// Implemented by IList source object. - /// - public bool IsReadOnly - { - get { return _list.IsReadOnly; } - } - - object System.Collections.IList.this[int index] - { - get - { - return this[index]; - } - set - { - this[index] = (T)value; - } - } - - /// - /// Implemented by IList source object. - /// - /// Item to be removed. - public bool Remove(T item) - { - return _list.Remove(item); - } - - void System.Collections.IList.Remove(object value) - { - Remove((T)value); - } - - /// - /// Removes the child object at the specified index - /// in the list, resorting the display as needed. - /// - /// The index of the object to remove. - /// - /// See Chapter 5 for details on how and why the list is - /// altered during the remove process. - /// - public void RemoveAt(int index) - { - if (_sorted) - { - _initiatedLocally = true; - int baseIndex = OriginalIndex(index); - - // remove the item from the source list - _list.RemoveAt(baseIndex); - - if (_list.Count != _sortIndex.Count) - { - // delete the corresponding value in the sort index - if (_sortOrder == ListSortDirection.Ascending) - _sortIndex.RemoveAt(index); - else - _sortIndex.RemoveAt(_sortIndex.Count - 1 - index); - - // now fix up all index pointers in the sort index - foreach (ListItem item in _sortIndex) - if (item.BaseIndex > baseIndex) - item.BaseIndex -= 1; - } - - OnListChanged(new ListChangedEventArgs( - ListChangedType.ItemDeleted, index)); - _initiatedLocally = false; - } - else - _list.RemoveAt(index); - } - - /// - /// Gets the child item at the specified index in the list, - /// honoring the sort order of the items. - /// - /// The index of the item in the sorted list. - public T this[int index] - { - get - { - if (_sorted) - return _list[OriginalIndex(index)]; - else - return _list[index]; - } - set - { - if (_sorted) - _list[OriginalIndex(index)] = value; - else - _list[index] = value; - } - } - - #endregion - - private IList _list; - private bool _supportsBinding; - private IBindingList _bindingList; - private bool _sorted; - private bool _initiatedLocally; - private PropertyDescriptor _sortBy; - private ListSortDirection _sortOrder = - ListSortDirection.Ascending; - private List _sortIndex = - new List(); - - - /// - /// Creates a new view based on the provided IList object. - /// - /// The IList (collection) containing the data. - public SortedBindingList(IList list) - { - _list = list; - - if (_list is IBindingList) - { - _supportsBinding = true; - _bindingList = (IBindingList)_list; - _bindingList.ListChanged += - new ListChangedEventHandler(SourceChanged); - } - } - - private void SourceChanged( - object sender, ListChangedEventArgs e) - { - if (_sorted) - { - switch (e.ListChangedType) - { - case ListChangedType.ItemAdded: - T newItem = _list[e.NewIndex]; - if (e.NewIndex == _list.Count - 1) - { - object newKey; - if (_sortBy != null) - newKey = _sortBy.GetValue(newItem); - else - newKey = newItem; - - if (_sortOrder == ListSortDirection.Ascending) - _sortIndex.Add( - new ListItem(newKey, e.NewIndex)); - else - _sortIndex.Insert(0, - new ListItem(newKey, e.NewIndex)); - if (!_initiatedLocally) - OnListChanged( - new ListChangedEventArgs( - ListChangedType.ItemAdded, - SortedIndex(e.NewIndex))); - } - else - DoSort(); - break; - - case ListChangedType.ItemChanged: - // an item changed - just relay the event with - // a translated index value - OnListChanged( - new ListChangedEventArgs( - ListChangedType.ItemChanged, SortedIndex(e.NewIndex))); - break; - - case ListChangedType.ItemDeleted: - if (!_initiatedLocally) - DoSort(); - break; - - default: - // for anything other than add, delete or change - // just re-sort the list - if (!_initiatedLocally) - DoSort(); - break; - } - } - else - OnListChanged(e); - } - - private int OriginalIndex(int sortedIndex) - { - if (_sorted) - { - if (_sortOrder == ListSortDirection.Ascending) - return _sortIndex[sortedIndex].BaseIndex; - else - return _sortIndex[_sortIndex.Count - 1 - sortedIndex].BaseIndex; - } - else - return sortedIndex; - } - - private int SortedIndex(int originalIndex) - { - int result = 0; - if (_sorted) - { - for (int index = 0; index < _sortIndex.Count; index++) - { - if (_sortIndex[index].BaseIndex == originalIndex) - { - result = index; - break; - } - } - if (_sortOrder == ListSortDirection.Descending) - result = _sortIndex.Count - 1 - result; - } - else - result = originalIndex; - return result; - - } - - #region ICancelAddNew Members - - void ICancelAddNew.CancelNew(int itemIndex) - { - ICancelAddNew can = _list as ICancelAddNew; - if (can != null) - can.CancelNew(itemIndex); - else - _list.RemoveAt(itemIndex); - } - - void ICancelAddNew.EndNew(int itemIndex) - { - ICancelAddNew can = _list as ICancelAddNew; - if (can != null) - can.EndNew(itemIndex); - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Utilities.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Utilities.cs deleted file mode 100644 index 46f1917d..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Utilities.cs +++ /dev/null @@ -1,132 +0,0 @@ -using System; -using System.Reflection; - -namespace Csla -{ - /// - /// Contains utility methods used by the - /// CSLA .NET framework. - /// - public static class Utilities - { - #region Replacements for VB runtime functionality - - /// - /// Determines whether the specified - /// value can be converted to a valid number. - /// - public static bool IsNumeric(object value) - { - double dbl; - return double.TryParse(value.ToString(), System.Globalization.NumberStyles.Any, - System.Globalization.NumberFormatInfo.InvariantInfo, out dbl); - } - - /// - /// Allows late bound invocation of - /// properties and methods. - /// - /// Object implementing the property or method. - /// Name of the property or method. - /// Specifies how to invoke the property or method. - /// List of arguments to pass to the method. - /// The result of the property or method invocation. - public static object CallByName( - object target, string methodName, CallType callType, - params object[] args) - { - switch (callType) - { - case CallType.Get: - { - PropertyInfo p = target.GetType().GetProperty(methodName); - return p.GetValue(target, args); - } - case CallType.Let: - case CallType.Set: - { - PropertyInfo p = target.GetType().GetProperty(methodName); - object[] index = null; - args.CopyTo(index, 1); - p.SetValue(target, args[0], index); - return null; - } - case CallType.Method: - { - MethodInfo m = target.GetType().GetMethod(methodName); - return m.Invoke(target, args); - } - } - return null; - } - - #endregion - - /// - /// Returns a property's type, dealing with - /// Nullable(Of T) if necessary. - /// - /// Type of the - /// property as returned by reflection. - public static Type GetPropertyType(Type propertyType) - { - Type type = propertyType; - if (type.IsGenericType && - (type.GetGenericTypeDefinition() == typeof(Nullable<>))) - return Nullable.GetUnderlyingType(type); - return type; - } - - /// - /// Returns the type of child object - /// contained in a collection or list. - /// - /// Type of the list. - public static Type GetChildItemType(Type listType) - { - Type result = null; - if (listType.IsArray) - result = listType.GetElementType(); - else - { - DefaultMemberAttribute indexer = - (DefaultMemberAttribute)Attribute.GetCustomAttribute( - listType, typeof(DefaultMemberAttribute)); - if (indexer != null) - foreach (PropertyInfo prop in listType.GetProperties( - BindingFlags.Public | - BindingFlags.Instance | - BindingFlags.FlattenHierarchy)) - { - if (prop.Name == indexer.MemberName) - result = Utilities.GetPropertyType(prop.PropertyType); - } - } - return result; - } - } - - /// - /// Valid options for calling a property or method - /// via the method. - /// - public enum CallType - { - /// - /// Gets a value from a property. - /// - Get, - /// - /// Sets a value into a property. - /// - Let, - /// - /// Invokes a method. - /// - Method, - /// - /// Sets a value into a property. - /// - Set - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRule.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRule.cs deleted file mode 100644 index 11f8b408..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRule.cs +++ /dev/null @@ -1,64 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Validation -{ - /// - /// Stores details about a specific broken business rule. - /// - [Serializable()] - public class BrokenRule - { - private string _ruleName; - private string _description; - private string _property; - private RuleSeverity _severity; - - internal BrokenRule(IRuleMethod rule) - { - _ruleName = rule.RuleName; - _description = rule.RuleArgs.Description; - _property = rule.RuleArgs.PropertyName; - _severity = rule.RuleArgs.Severity; - } - - /// - /// Provides access to the name of the broken rule. - /// - /// The name of the rule. - public string RuleName - { - get { return _ruleName; } - } - - /// - /// Provides access to the description of the broken rule. - /// - /// The description of the rule. - public string Description - { - get { return _description; } - } - - /// - /// Provides access to the property affected by the broken rule. - /// - /// The property affected by the rule. - public string Property - { - get { return _property; } - } - - /// - /// Gets the severity of the broken rule. - /// - /// - /// - /// - public RuleSeverity Severity - { - get { return _severity; } - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRulesCollection.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRulesCollection.cs deleted file mode 100644 index eea413fa..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/BrokenRulesCollection.cs +++ /dev/null @@ -1,255 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Csla.Validation -{ - /// - /// A collection of currently broken rules. - /// - /// - /// This collection is readonly and can be safely made available - /// to code outside the business object such as the UI. This allows - /// external code, such as a UI, to display the list of broken rules - /// to the user. - /// - [Serializable()] - public class BrokenRulesCollection : Core.ReadOnlyBindingList - { - - private int _errorCount; - private int _warningCount; - private int _infoCount; - - /// - /// Gets the number of broken rules in - /// the collection that have a severity - /// of Error. - /// - /// An integer value. - public int ErrorCount - { - get { return _errorCount; } - } - - /// - /// Gets the number of broken rules in - /// the collection that have a severity - /// of Warning. - /// - /// An integer value. - public int WarningCount - { - get { return _warningCount; } - } - - /// - /// Gets the number of broken rules in - /// the collection that have a severity - /// of Information. - /// - /// An integer value. - public int InformationCount - { - get { return _infoCount; } - } - - /// - /// Returns the first object - /// corresponding to the specified property. - /// - /// - /// Code in a business object or UI can also use this value to retrieve - /// the first broken rule in that corresponds - /// to a specfic property on the object. - /// - /// The name of the property affected by the rule. - /// - /// The first BrokenRule object corresponding to the specified property, or null if - /// there are no rules defined for the property. - /// - public BrokenRule GetFirstBrokenRule(string property) - { - return GetFirstMessage(property, RuleSeverity.Error); - } - - /// - /// Returns the first object - /// corresponding to the specified property. - /// - /// - /// Code in a business object or UI can also use this value to retrieve - /// the first broken rule in that corresponds - /// to a specfic property. - /// - /// The name of the property affected by the rule. - /// - /// The first BrokenRule object corresponding to the specified property, or Nothing - /// (null in C#) if there are no rules defined for the property. - /// - public BrokenRule GetFirstMessage(string property) - { - foreach (BrokenRule item in this) - if (item.Property == property) - return item; - return null; - } - - /// - /// Returns the first object - /// corresponding to the specified property - /// and severity. - /// - /// The name of the property affected by the rule. - /// The severity of broken rule to return. - /// - /// The first BrokenRule object corresponding to the specified property, or Nothing - /// (null in C#) if there are no rules defined for the property. - /// - public BrokenRule GetFirstMessage(string property, RuleSeverity severity) - { - foreach (BrokenRule item in this) - if (item.Property == property && item.Severity == severity) - return item; - return null; - } - - internal BrokenRulesCollection() - { - // limit creation to this assembly - } - - internal void Add(IRuleMethod rule) - { - Remove(rule); - IsReadOnly = false; - BrokenRule item = new BrokenRule(rule); - IncrementCount(item); - Add(item); - IsReadOnly = true; - } - - internal void Remove(IRuleMethod rule) - { - // we loop through using a numeric counter because - // removing items within a foreach isn't reliable - IsReadOnly = false; - for (int index = 0; index < Count; index++) - if (this[index].RuleName == rule.RuleName) - { - DecrementCount(this[index]); - RemoveAt(index); - break; - } - IsReadOnly = true; - } - - private void IncrementCount(BrokenRule item) - { - switch (item.Severity) - { - case RuleSeverity.Error: - _errorCount += 1; - break; - case RuleSeverity.Warning: - _warningCount += 1; - break; - case RuleSeverity.Information: - _infoCount += 1; - break; - } - } - - private void DecrementCount(BrokenRule item) - { - switch (item.Severity) - { - case RuleSeverity.Error: - _errorCount -= 1; - break; - case RuleSeverity.Warning: - _warningCount -= 1; - break; - case RuleSeverity.Information: - _infoCount -= 1; - break; - } - } - - /// - /// Returns the text of all broken rule descriptions, each - /// separated by a . - /// - /// The text of all broken rule descriptions. - public override string ToString() - { - System.Text.StringBuilder result = new System.Text.StringBuilder(); - bool first = true; - foreach (BrokenRule item in this) - { - if (first) - first = false; - else - result.Append(Environment.NewLine); - result.Append(item.Description); - } - return result.ToString(); - } - - /// - /// Returns the text of all broken rule descriptions, each - /// separated by a . - /// - /// The severity of rules to - /// include in the result. - /// The text of all broken rule descriptions - /// matching the specified severtiy. - public string ToString(RuleSeverity severity) - { - System.Text.StringBuilder result = new System.Text.StringBuilder(); - bool first = true; - foreach (BrokenRule item in this) - { - if (item.Severity == severity) - { - if (first) - first = false; - else - result.Append(Environment.NewLine); - result.Append(item.Description); - } - } - return result.ToString(); - } - - /// - /// Returns a string array containing all broken - /// rule descriptions. - /// - /// The text of all broken rule descriptions - /// matching the specified severtiy. - public string[] ToArray() - { - List result = new List(); - foreach (BrokenRule item in this) - result.Add(item.Description); - return result.ToArray(); - } - - /// - /// Returns a string array containing all broken - /// rule descriptions. - /// - /// The severity of rules - /// to include in the result. - /// The text of all broken rule descriptions - /// matching the specified severtiy. - public string[] ToArray(RuleSeverity severity) - { - List result = new List(); - foreach (BrokenRule item in this) - if (item.Severity == severity) - result.Add(item.Description); - return result.ToArray(); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/CommonRules.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/CommonRules.cs deleted file mode 100644 index a6723a93..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/CommonRules.cs +++ /dev/null @@ -1,491 +0,0 @@ -using System; -using Csla.Properties; -using System.Text.RegularExpressions; -using System.Reflection; - -namespace Csla.Validation -{ - /// - /// Implements common business rules. - /// - public static class CommonRules - { - - #region StringRequired - - /// - /// Rule ensuring a string value contains one or more - /// characters. - /// - /// Object containing the data to validate - /// Arguments parameter specifying the name of the string - /// property to validate - /// if the rule is broken - /// - /// This implementation uses late binding, and will only work - /// against string property values. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - public static bool StringRequired(object target, RuleArgs e) - { - string value = (string)Utilities.CallByName( - target, e.PropertyName, CallType.Get); - if (string.IsNullOrEmpty(value)) - { - e.Description = string.Format(Resources.StringRequiredRule, e.PropertyName); - return false; - } - return true; - } - - #endregion - - #region StringMaxLength - - /// - /// Rule ensuring a string value doesn't exceed - /// a specified length. - /// - /// Object containing the data to validate - /// Arguments parameter specifying the name of the string - /// property to validate - /// if the rule is broken - /// - /// This implementation uses late binding, and will only work - /// against string property values. - /// - [System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1062:ValidateArgumentsOfPublicMethods")] - public static bool StringMaxLength( - object target, RuleArgs e) - { - int max = ((MaxLengthRuleArgs)e).MaxLength; - string value = (string)Utilities.CallByName( - target, e.PropertyName, CallType.Get); - if (!String.IsNullOrEmpty(value) && (value.Length > max)) - { - e.Description = String.Format( - Resources.StringMaxLengthRule, - e.PropertyName, max.ToString()); - return false; - } - return true; - } - - /// - /// Custom object required by the - /// rule method. - /// - public class MaxLengthRuleArgs : RuleArgs - { - private int _maxLength; - - /// - /// Get the max length for the string. - /// - public int MaxLength - { - get { return _maxLength; } - } - - /// - /// Create a new object. - /// - /// Name of the property to validate. - /// Max length of characters allowed. - public MaxLengthRuleArgs( - string propertyName, int maxLength) - : base(propertyName) - { - _maxLength = maxLength; - } - - /// - /// Return a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?maxLength=" + _maxLength.ToString(); - } - } - - #endregion - - #region IntegerMaxValue - - /// - /// Rule ensuring an integer value doesn't exceed - /// a specified value. - /// - /// Object containing the data to validate. - /// Arguments parameter specifying the name of the - /// property to validate. - /// if the rule is broken. - public static bool IntegerMaxValue(object target, RuleArgs e) - { - int max = ((IntegerMaxValueRuleArgs)e).MaxValue; - int value = (int)Utilities.CallByName(target, e.PropertyName, CallType.Get); - if (value > max) - { - e.Description = String.Format(Resources.MaxValueRule, - e.PropertyName, max.ToString()); - return false; - } - return true; - } - - /// - /// Custom object required by the - /// rule method. - /// - public class IntegerMaxValueRuleArgs : RuleArgs - { - private int _maxValue; - - /// - /// Get the max value for the property. - /// - public int MaxValue - { - get { return _maxValue; } - } - - /// - /// Create a new object. - /// - /// Name of the property. - /// Maximum allowed value for the property. - public IntegerMaxValueRuleArgs(string propertyName, int maxValue) - : base(propertyName) - { - _maxValue = maxValue; - } - - /// - /// Return a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?maxValue=" + _maxValue.ToString(); - } - } - - #endregion - - #region IntegerMinValue - - /// - /// Rule ensuring an integer value doesn't go below - /// a specified value. - /// - /// Object containing the data to validate. - /// Arguments parameter specifying the name of the - /// property to validate. - /// if the rule is broken. - public static bool IntegerMinValue(object target, RuleArgs e) - { - int min = ((IntegerMinValueRuleArgs)e).MinValue; - int value = (int)Utilities.CallByName(target, e.PropertyName, CallType.Get); - if (value < min) - { - e.Description = String.Format(Resources.MinValueRule, - e.PropertyName, min.ToString()); - return false; - } - return true; - } - - /// - /// Custom object required by the - /// rule method. - /// - public class IntegerMinValueRuleArgs : RuleArgs - { - private int _minValue; - - /// - /// Get the min value for the property. - /// - public int MinValue - { - get { return _minValue; } - } - - /// - /// Create a new object. - /// - /// Name of the property. - /// Minimum allowed value for the property. - public IntegerMinValueRuleArgs(string propertyName, int minValue) - : base(propertyName) - { - _minValue = minValue; - } - - /// - /// Return a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?minValue=" + _minValue.ToString(); - } - } - - #endregion - - #region MaxValue - - /// - /// Rule ensuring that a numeric value - /// doesn't exceed a specified maximum. - /// - /// Type of the property to validate. - /// Object containing value to validate. - /// Arguments variable specifying the - /// name of the property to validate, along with the max - /// allowed value. - public static bool MaxValue(object target, RuleArgs e) where T : IComparable - { - PropertyInfo pi = target.GetType().GetProperty(e.PropertyName); - T value = (T)pi.GetValue(target, null); - T max = ((MaxValueRuleArgs)e).MaxValue; - - int result = value.CompareTo(max); - if (result >= 1) - { - e.Description = string.Format(Resources.MaxValueRule, - e.PropertyName, max.ToString()); - return false; - } - else - return true; - } - - /// - /// Custom object required by the - /// rule method. - /// - /// Type of the property to validate. - public class MaxValueRuleArgs : RuleArgs - { - T _maxValue = default(T); - - /// - /// Get the max value for the property. - /// - public T MaxValue - { - get { return _maxValue; } - } - - /// - /// Create a new object. - /// - /// Name of the property. - /// Maximum allowed value for the property. - public MaxValueRuleArgs(string propertyName, T maxValue) - : base(propertyName) - { - _maxValue = maxValue; - } - - /// - /// Returns a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?maxValue=" + _maxValue.ToString(); - } - } - - #endregion - - #region MinValue - - /// - /// Rule ensuring that a numeric value - /// doesn't exceed a specified minimum. - /// - /// Type of the property to validate. - /// Object containing value to validate. - /// Arguments variable specifying the - /// name of the property to validate, along with the min - /// allowed value. - public static bool MinValue(object target, RuleArgs e) where T : IComparable - { - PropertyInfo pi = target.GetType().GetProperty(e.PropertyName); - T value = (T)pi.GetValue(target, null); - T min = ((MinValueRuleArgs)e).MinValue; - - int result = value.CompareTo(min); - if (result <= -1) - { - e.Description = string.Format(Resources.MinValueRule, - e.PropertyName, min.ToString()); - return false; - } - else - return true; - } - - /// - /// Custom object required by the - /// rule method. - /// - /// Type of the property to validate. - public class MinValueRuleArgs : RuleArgs - { - T _minValue = default(T); - - /// - /// Get the min value for the property. - /// - public T MinValue - { - get { return _minValue; } - } - - /// - /// Create a new object. - /// - /// Name of the property. - /// Minimum allowed value for the property. - public MinValueRuleArgs(string propertyName, T minValue) - : base(propertyName) - { - _minValue = minValue; - } - - /// - /// Returns a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?minValue=" + _minValue.ToString(); - } - } - - #endregion - - #region RegEx - - /// - /// Rule that checks to make sure a value - /// matches a given regex pattern. - /// - /// Object containing the data to validate - /// RegExRuleArgs parameter specifying the name of the - /// property to validate and the regex pattern. - /// False if the rule is broken - /// - /// This implementation uses late binding. - /// - public static bool RegExMatch(object target, RuleArgs e) - { - Regex rx = ((RegExRuleArgs)e).RegEx; - if (!rx.IsMatch(Utilities.CallByName(target, e.PropertyName, CallType.Get).ToString())) - { - e.Description = String.Format(Resources.RegExMatchRule, e.PropertyName); - return false; - } - else - return true; - } - - /// - /// List of built-in regex patterns. - /// - public enum RegExPatterns - { - /// - /// US Social Security number pattern. - /// - SSN, - /// - /// Email address pattern. - /// - Email - } - - /// - /// Custom object required by the - /// rule method. - /// - public class RegExRuleArgs : RuleArgs - { - Regex _regEx; - - /// - /// The object used to validate - /// the property. - /// - public Regex RegEx - { - get { return _regEx; } - } - - /// - /// Creates a new object. - /// - /// Name of the property to validate. - /// Built-in regex pattern to use. - public RegExRuleArgs(string propertyName, RegExPatterns pattern) - : - base(propertyName) - { - _regEx = new Regex(GetPattern(pattern)); - } - - /// - /// Creates a new object. - /// - /// Name of the property to validate. - /// Custom regex pattern to use. - public RegExRuleArgs(string propertyName, string pattern) - : - base(propertyName) - { - _regEx = new Regex(pattern); - } - - /// - /// Creates a new object. - /// - /// Name of the property to validate. - /// object to use. - public RegExRuleArgs(string propertyName, System.Text.RegularExpressions.Regex regEx) - : - base(propertyName) - { - _regEx = regEx; - } - - /// f - /// Returns a string representation of the object. - /// - public override string ToString() - { - return base.ToString() + "?regex=" + _regEx.ToString(); - } - - /// - /// Returns the specified built-in regex pattern. - /// - /// Pattern to return. - public static string GetPattern(RegExPatterns pattern) - { - switch (pattern) - { - case RegExPatterns.SSN: - return @"^\d{3}-\d{2}-\d{4}$"; - case RegExPatterns.Email: - return @"^[A-Za-z0-9._%-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}$"; - default: - return string.Empty; - } - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/IRuleMethod.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/IRuleMethod.cs deleted file mode 100644 index 40dde70c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/IRuleMethod.cs +++ /dev/null @@ -1,45 +0,0 @@ -using System; - -namespace Csla.Validation -{ - /// - /// Tracks all information for a rule. - /// - internal interface IRuleMethod - { - /// - /// Gets the priority of the rule method. - /// - /// The priority value. - /// - /// Priorities are processed in descending - /// order, so priority 0 is processed - /// before priority 1, etc. - int Priority { get;} - - /// - /// Gets the name of the rule. - /// - /// - /// The rule's name must be unique and is used - /// to identify a broken rule in the BrokenRules - /// collection. - /// - string RuleName { get;} - - /// - /// Returns the name of the field, property or column - /// to which the rule applies. - /// - RuleArgs RuleArgs { get;} - - /// - /// Invokes the rule to validate the data. - /// - /// - /// if the data is valid, - /// if the data is invalid. - /// - bool Invoke(object target); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleArgs.cs deleted file mode 100644 index 4111b34f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleArgs.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System; - -namespace Csla.Validation -{ - - /// - /// Object providing extra information to methods that - /// implement business rules. - /// - public class RuleArgs - { - private string _propertyName; - private string _description; - private RuleSeverity _severity = RuleSeverity.Error; - private bool _stopProcessing; - - /// - /// The name of the property to be validated. - /// - public string PropertyName - { - get { return _propertyName; } - } - - /// - /// Set by the rule handler method to describe the broken - /// rule. - /// - /// A human-readable description of - /// the broken rule. - /// - /// Setting this property only has an effect if - /// the rule method returns . - /// - public string Description - { - get { return _description; } - set { _description = value; } - } - - /// - /// Gets or sets the severity of the broken rule. - /// - /// The severity of the broken rule. - /// - /// Setting this property only has an effect if - /// the rule method returns . - /// - public RuleSeverity Severity - { - get { return _severity; } - set { _severity = value; } - } - - /// - /// Gets or sets a value indicating whether this - /// broken rule should stop the processing of subsequent - /// rules for this property. - /// - /// if no further - /// rules should be process for this property. - /// - /// Setting this property only has an effect if - /// the rule method returns . - /// - public bool StopProcessing - { - get { return _stopProcessing; } - set { _stopProcessing = value; } - } - - /// - /// Creates an instance of RuleArgs. - /// - /// The name of the property to be validated. - public RuleArgs(string propertyName) - { - _propertyName = propertyName; - } - - /// - /// Return a string representation of the object. - /// - public override string ToString() - { - return _propertyName; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleHandler.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleHandler.cs deleted file mode 100644 index 5ba7090c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleHandler.cs +++ /dev/null @@ -1,60 +0,0 @@ -using System; - -namespace Csla.Validation -{ - - /// - /// Delegate that defines the method signature for all rule handler methods. - /// - /// - /// Object containing the data to be validated. - /// - /// - /// Parameter used to pass information to and from - /// the rule method. - /// - /// - /// if the rule was satisfied. - /// - /// - /// - /// When implementing a rule handler, you must conform to the method signature - /// defined by this delegate. You should also apply the Description attribute - /// to your method to provide a meaningful description for your rule. - /// - /// The method implementing the rule must return - /// if the data is valid and - /// return if the data is invalid. - /// - /// - public delegate bool RuleHandler(object target, RuleArgs e); - - /// - /// Delegate that defines the method signature for all rule handler methods. - /// - /// Type of the target object. - /// Type of the arguments parameter. - /// - /// Object containing the data to be validated. - /// - /// - /// Parameter used to pass information to and from - /// the rule method. - /// - /// - /// if the rule was satisfied. - /// - /// - /// - /// When implementing a rule handler, you must conform to the method signature - /// defined by this delegate. You should also apply the Description attribute - /// to your method to provide a meaningful description for your rule. - /// - /// The method implementing the rule must return - /// if the data is valid and - /// return if the data is invalid. - /// - /// - public delegate bool RuleHandler(T target, R e) where R : RuleArgs; - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleMethod.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleMethod.cs deleted file mode 100644 index 9819f85c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleMethod.cs +++ /dev/null @@ -1,247 +0,0 @@ -using System; - -namespace Csla.Validation -{ - /// - /// Tracks all information for a rule. - /// - internal class RuleMethod : IRuleMethod, IComparable, IComparable - { - private RuleHandler _handler; - private string _ruleName = String.Empty; - private RuleArgs _args; - private int _priority; - - /// - /// Returns the name of the method implementing the rule - /// and the property, field or column name to which the - /// rule applies. - /// - public override string ToString() - { - return _ruleName; - } - - /// - /// Gets the priority of the rule method. - /// - /// The priority value - /// - /// Priorities are processed in descending - /// order, so priority 0 is processed - /// before priority 1, etc. - /// - public int Priority - { - get { return _priority; } - } - - /// - /// Gets the name of the rule. - /// - /// - /// The rule's name must be unique and is used - /// to identify a broken rule in the BrokenRules - /// collection. - /// - public string RuleName - { - get { return _ruleName; } - } - - /// - /// Returns the name of the field, property or column - /// to which the rule applies. - /// - public RuleArgs RuleArgs - { - get { return _args; } - } - - /// - /// Creates and initializes the rule. - /// - /// The address of the method implementing the rule. - /// A RuleArgs object. - public RuleMethod(RuleHandler handler, RuleArgs args) - { - _handler = handler; - _args = args; - _ruleName = string.Format(@"rule://{0}/{1}", _handler.Method.Name, _args.ToString()); - } - - /// - /// Creates and initializes the rule. - /// - /// The address of the method implementing the rule. - /// A RuleArgs object. - /// - /// Priority for processing the rule (smaller numbers have higher priority, default=0). - /// - public RuleMethod(RuleHandler handler, RuleArgs args, int priority) - : this(handler, args) - { - _priority = priority; - } - - /// - /// Invokes the rule to validate the data. - /// - /// - /// if the data is valid, - /// if the data is invalid. - /// - public bool Invoke(object target) - { - return _handler.Invoke(target, _args); - } - - #region IComparable - - int IComparable.CompareTo(object obj) - { - return Priority.CompareTo(((IRuleMethod)obj).Priority); - } - - int IComparable.CompareTo(IRuleMethod other) - { - return Priority.CompareTo(other.Priority); - } - - #endregion - - } - - - /// - /// Tracks all information for a rule. - /// - /// Type of the target object. - /// Type of the arguments parameter. - internal class RuleMethod - : IRuleMethod, IComparable, IComparable - where R : RuleArgs - { - private RuleHandler _handler; - private string _ruleName = string.Empty; - private R _args; - private int _priority; - - /// - /// Returns the name of the method implementing the rule - /// and the property, field or column name to which the - /// rule applies. - /// - public override string ToString() - { - return _ruleName; - } - - /// - /// Gets the priority of the rule method. - /// - /// The priority value - /// - /// Priorities are processed in descending - /// order, so priority 0 is processed - /// before priority 1, etc. - /// - public int Priority - { - get { return _priority; } - } - - /// - /// Gets the name of the rule. - /// - /// - /// The rule's name must be unique and is used - /// to identify a broken rule in the BrokenRules - /// collection. - /// - public string RuleName - { - get {return _ruleName;} - } - - /// - /// Returns the name of the field, property or column - /// to which the rule applies. - /// - RuleArgs IRuleMethod.RuleArgs - { - get {return this.RuleArgs;} - } - - /// - /// Returns the name of the field, property or column - /// to which the rule applies. - /// - public R RuleArgs - { - get { return _args; } - } - - /// - /// Creates and initializes the rule. - /// - /// The address of the method implementing the rule. - /// A RuleArgs object. - public RuleMethod(RuleHandler handler, R args) - { - _handler = handler; - _args = args; - _ruleName = string.Format(@"rule://{0}/{1}", _handler.Method.Name, _args.ToString()); - } - - /// - /// Creates and initializes the rule. - /// - /// The address of the method implementing the rule. - /// A RuleArgs object. - /// - /// Priority for processing the rule (smaller numbers have higher priority, default=0). - /// - public RuleMethod(RuleHandler handler, R args, int priority) - : this(handler, args) - { - _priority = priority; - } - - /// - /// Invokes the rule to validate the data. - /// - /// True if the data is valid, False if the data is invalid. - bool IRuleMethod.Invoke(object target) - { - return this.Invoke((T)target); - } - - /// - /// Invokes the rule to validate the data. - /// - /// - /// if the data is valid, - /// if the data is invalid. - /// - public bool Invoke(T target) - { - return _handler.Invoke(target, _args); - } - - #region IComparable - - int IComparable.CompareTo(object obj) - { - return Priority.CompareTo(((IRuleMethod)obj).Priority); - } - - int IComparable.CompareTo(IRuleMethod other) - { - return Priority.CompareTo(other.Priority); - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleSeverity.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleSeverity.cs deleted file mode 100644 index 8503c056..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RuleSeverity.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System; - -namespace Csla.Validation -{ - /// - /// Values for validation rule severities. - /// - public enum RuleSeverity - { - /// - /// Represents a serious - /// business rule violation that - /// should cause an object to - /// be considered invalid. - /// - Error, - - /// - /// Represents a business rule - /// violation that should be - /// displayed to the user, but which - /// should not make an object be - /// invalid. - /// - Warning, - - /// - /// Represents a business rule - /// result that should be displayed - /// to the user, but which is less - /// severe than a warning. - /// - Information - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RulesList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RulesList.cs deleted file mode 100644 index 26a2e725..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/RulesList.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Csla.Validation -{ - internal class RulesList - { - private List _list = new List(); - private bool _sorted; - private List _dependantProperties; - - public void Add(IRuleMethod item) - { - _list.Add(item); - _sorted = false; - } - - public List GetList(bool applySort) - { - if (applySort && !_sorted) - { - lock (_list) - { - if (applySort && !_sorted) - { - _list.Sort(); - _sorted = true; - } - } - } - return _list; - } - - public List GetDependancyList(bool create) - { - if (_dependantProperties == null && create) - _dependantProperties = new List(); - return _dependantProperties; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/SharedValidationRules.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/SharedValidationRules.cs deleted file mode 100644 index f6a376a4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/SharedValidationRules.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Csla.Validation -{ - /// - /// Maintains a list of all the per-type - /// objects - /// loaded in memory. - /// - internal static class SharedValidationRules - { - private static Dictionary _managers = - new Dictionary(); - - /// - /// Gets the for the - /// specified object type, optionally creating a new instance - /// of the object if necessary. - /// - /// - /// Type of business object for which the rules apply. - /// - /// Indicates whether to create - /// a new instance of the object if one doesn't exist. - internal static ValidationRulesManager GetManager(Type objectType, bool create) - { - ValidationRulesManager result = null; - if (!_managers.TryGetValue(objectType, out result) && create) - { - lock (_managers) - { - result = new ValidationRulesManager(); - _managers.Add(objectType, result); - } - } - return result; - } - - /// - /// Gets a value indicating whether a set of rules - /// have been created for a given . - /// - /// - /// Type of business object for which the rules apply. - /// - /// if rules exist for the type. - public static bool RulesExistFor(Type objectType) - { - return _managers.ContainsKey(objectType); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationException.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationException.cs deleted file mode 100644 index 9ad98bce..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationException.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; - -namespace Csla.Validation -{ - - /// - /// Exception class indicating that there was a validation - /// problem with a business object. - /// - [Serializable()] - public class ValidationException : Exception - { - - /// - /// Creates an instance of the object. - /// - public ValidationException() - { - - } - - /// - /// Creates an instance of the object. - /// - /// Message describing the exception. - public ValidationException(string message) - : base(message) - { - - } - - /// - /// Creates an instance of the object. - /// - /// Message describing the exception. - /// Inner exception object. - public ValidationException(string message, Exception innerException) - : base(message, innerException) - { - - } - - /// - /// Creates an instance of the object for serialization. - /// - /// Serialization context. - /// Serialization info. - protected ValidationException(System.Runtime.Serialization.SerializationInfo info, - System.Runtime.Serialization.StreamingContext context) - : base(info, context) - { - - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRules.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRules.cs deleted file mode 100644 index 2f7512cd..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRules.cs +++ /dev/null @@ -1,768 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Csla.Validation -{ - - /// - /// Tracks the business rules broken within a business object. - /// - [Serializable()] - public class ValidationRules - { - // list of broken rules for this business object. - private BrokenRulesCollection _brokenRules; - // threshold for short-circuiting to kick in - private int _processThroughPriority; - // reference to current business object - [NonSerialized()] - private object _target; - // reference to per-instance rules manager for this object - [NonSerialized()] - private ValidationRulesManager _instanceRules; - // reference to per-type rules manager for this object - [NonSerialized()] - private ValidationRulesManager _typeRules; - // reference to the active set of rules for this object - [NonSerialized()] - private ValidationRulesManager _rulesToCheck; - - internal ValidationRules(object businessObject) - { - SetTarget(businessObject); - } - - internal void SetTarget(object businessObject) - { - _target = businessObject; - } - - private BrokenRulesCollection BrokenRulesList - { - get - { - if (_brokenRules == null) - _brokenRules = new BrokenRulesCollection(); - return _brokenRules; - } - } - - private ValidationRulesManager GetInstanceRules(bool createObject) - { - if (_instanceRules == null) - if (createObject) - _instanceRules = new ValidationRulesManager(); - return _instanceRules; - } - - private ValidationRulesManager GetTypeRules(bool createObject) - { - if (_typeRules == null) - _typeRules = SharedValidationRules.GetManager(_target.GetType(), createObject); - return _typeRules; - } - - private ValidationRulesManager RulesToCheck - { - get - { - if (_rulesToCheck == null) - { - ValidationRulesManager instanceRules = GetInstanceRules(false); - ValidationRulesManager typeRules = GetTypeRules(false); - if (instanceRules == null) - { - if (typeRules == null) - _rulesToCheck = null; - else - _rulesToCheck = typeRules; - } - else if (typeRules == null) - _rulesToCheck = instanceRules; - else - { - // both have values - consolidate into instance rules - _rulesToCheck = instanceRules; - foreach (KeyValuePair de in typeRules.RulesDictionary) - { - RulesList rules = _rulesToCheck.GetRulesForProperty(de.Key, true); - List instanceList = rules.GetList(false); - instanceList.AddRange(de.Value.GetList(false)); - List dependancy = de.Value.GetDependancyList(false); - if (dependancy != null) - rules.GetDependancyList(true).AddRange(dependancy); - } - } - } - return _rulesToCheck; - } - } - - /// - /// Returns an array containing the text descriptions of all - /// validation rules associated with this object. - /// - /// String array. - /// - public string[] GetRuleDescriptions() - { - List result = new List(); - ValidationRulesManager rules = RulesToCheck; - if (rules != null) - { - foreach (KeyValuePair de in rules.RulesDictionary) - { - List list = de.Value.GetList(false); - for (int i = 0; i < list.Count; i++) - { - IRuleMethod rule = list[i]; - result.Add(rule.ToString()); - } - } - } - return result.ToArray(); - } - - #region Short-Circuiting - - /// - /// Gets or sets the priority through which - /// CheckRules should process before short-circuiting - /// processing on broken rules. - /// - /// Defaults to 0. - /// - /// All rules for each property are processed by CheckRules - /// though this priority. Rules with lower priorities are - /// only processed if no previous rule has been marked as - /// broken. - /// - public int ProcessThroughPriority - { - get { return _processThroughPriority; } - set { _processThroughPriority = value; } - } - - #endregion - - #region Adding Instance Rules - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - public void AddInstanceRule(RuleHandler handler, string propertyName) - { - GetInstanceRules(true).AddRule(handler, new RuleArgs(propertyName), 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddInstanceRule(RuleHandler handler, string propertyName, int priority) - { - GetInstanceRules(true).AddRule(handler, new RuleArgs(propertyName), priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - /// Type of the business object to be validated. - public void AddInstanceRule(RuleHandler handler, string propertyName) - { - GetInstanceRules(true).AddRule(handler, new RuleArgs(propertyName), 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - /// Type of the business object to be validated. - public void AddInstanceRule(RuleHandler handler, string propertyName, int priority) - { - GetInstanceRules(true).AddRule(handler, new RuleArgs(propertyName), priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - public void AddInstanceRule(RuleHandler handler, RuleArgs args) - { - GetInstanceRules(true).AddRule(handler, args, 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddInstanceRule(RuleHandler handler, RuleArgs args, int priority) - { - GetInstanceRules(true).AddRule(handler, args, priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// Type of the target object. - /// Type of the arguments parameter. - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - public void AddInstanceRule(RuleHandler handler, R args) where R : RuleArgs - { - GetInstanceRules(true).AddRule(handler, args, 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// Type of the target object. - /// Type of the arguments parameter. - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddInstanceRule(RuleHandler handler, R args, int priority) where R : RuleArgs - { - GetInstanceRules(true).AddRule(handler, args, priority); - } - - #endregion - - #region Adding Per-Type Rules - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - public void AddRule(RuleHandler handler, string propertyName) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, new RuleArgs(propertyName), 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddRule(RuleHandler handler, string propertyName, int priority) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, new RuleArgs(propertyName), priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - public void AddRule(RuleHandler handler, string propertyName) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, new RuleArgs(propertyName), 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The propertyName may be used by the method that implements the rule - /// in order to retrieve the value to be validated. If the rule - /// implementation is inside the target object then it probably has - /// direct access to all data. However, if the rule implementation - /// is outside the target object then it will need to use reflection - /// or CallByName to dynamically invoke this property to retrieve - /// the value to be validated. - /// - /// - /// The method that implements the rule. - /// - /// The property name on the target object where the rule implementation can retrieve - /// the value to be validated. - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddRule(RuleHandler handler, string propertyName, int priority) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, new RuleArgs(propertyName), priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - public void AddRule(RuleHandler handler, RuleArgs args) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, args, 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddRule(RuleHandler handler, RuleArgs args, int priority) - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, args, priority); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// Type of the target object. - /// Type of the arguments parameter. - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - public void AddRule(RuleHandler handler, R args) where R : RuleArgs - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, args, 0); - } - - /// - /// Adds a rule to the list of rules to be enforced. - /// - /// - /// A rule is implemented by a method which conforms to the - /// method signature defined by the RuleHandler delegate. - /// - /// Type of the target object. - /// Type of the arguments parameter. - /// The method that implements the rule. - /// - /// A RuleArgs object specifying the property name and other arguments - /// passed to the rule method - /// - /// - /// The priority of the rule, where lower numbers are processed first. - /// - public void AddRule(RuleHandler handler, R args, int priority) where R : RuleArgs - { - ValidateHandler(handler); - GetTypeRules(true).AddRule(handler, args, priority); - } - - private bool ValidateHandler(RuleHandler handler) - { - return ValidateHandler(handler.Method); - } - - private bool ValidateHandler(RuleHandler handler) where R : RuleArgs - { - return ValidateHandler(handler.Method); - } - - private bool ValidateHandler(System.Reflection.MethodInfo method) - { - if (!method.IsStatic && method.DeclaringType.Equals(_target.GetType())) - throw new InvalidOperationException( - string.Format("{0}: {1}", - Properties.Resources.InvalidRuleMethodException, method.Name)); - return true; - } - - #endregion - - #region Adding per-type dependancies - - /// - /// Adds a property to the list of dependencies for - /// the specified property - /// - /// - /// The name of the property. - /// - /// - /// The name of the depandent property. - /// - /// - /// When rules are checked for propertyName, they will - /// also be checked for any dependant properties associated - /// with that property. - /// - public void AddDependantProperty(string propertyName, string dependantPropertyName) - { - GetTypeRules(true).AddDependantProperty(propertyName, dependantPropertyName); - } - - /// - /// Adds a property to the list of dependencies for - /// the specified property - /// - /// - /// The name of the property. - /// - /// - /// The name of the depandent property. - /// - /// - /// If then a - /// reverse dependancy is also established - /// from dependantPropertyName to propertyName. - /// - /// - /// When rules are checked for propertyName, they will - /// also be checked for any dependant properties associated - /// with that property. If isBidirectional is - /// then an additional association - /// is set up so when rules are checked for - /// dependantPropertyName the rules for propertyName - /// will also be checked. - /// - public void AddDependantProperty(string propertyName, string dependantPropertyName, bool isBidirectional) - { - - ValidationRulesManager mgr = GetTypeRules(true); - mgr.AddDependantProperty(propertyName, dependantPropertyName); - if (isBidirectional) - { - mgr.AddDependantProperty(dependantPropertyName, propertyName); - } - } - - #endregion - - #region Checking Rules - - /// - /// Invokes all rule methods associated with - /// the specified property and any - /// dependant properties. - /// - /// The name of the property to validate. - public void CheckRules(string propertyName) - { - // get the rules dictionary - ValidationRulesManager rules = RulesToCheck; - if (rules != null) - { - // get the rules list for this property - RulesList rulesList = rules.GetRulesForProperty(propertyName, false); - if (rulesList != null) - { - // get the actual list of rules (sorted by priority) - List list = rulesList.GetList(true); - if (list != null) - CheckRules(list); - List dependancies = rulesList.GetDependancyList(false); - if (dependancies != null) - { - for (int i = 0; i < dependancies.Count; i++) - { - string dependantProperty = dependancies[i]; - CheckRules(rules, dependantProperty); - } - } - } - } - } - - private void CheckRules(ValidationRulesManager rules, string propertyName) - { - // get the rules list for this property - RulesList rulesList = rules.GetRulesForProperty(propertyName, false); - if (rulesList != null) - { - // get the actual list of rules (sorted by priority) - List list = rulesList.GetList(true); - if (list != null) - CheckRules(list); - } - } - - /// - /// Invokes all rule methods for all properties - /// in the object. - /// - public void CheckRules() - { - ValidationRulesManager rules = RulesToCheck; - if (rules != null) - { - foreach (KeyValuePair de in rules.RulesDictionary) - CheckRules(de.Value.GetList(true)); - } - } - - /// - /// Given a list - /// containing IRuleMethod objects, this - /// method executes all those rule methods. - /// - private void CheckRules(List list) - { - bool previousRuleBroken = false; - bool shortCircuited = false; - - for (int index = 0; index < list.Count; index++) - { - IRuleMethod rule = list[index]; - // see if short-circuiting should kick in - if (!shortCircuited && (previousRuleBroken && rule.Priority > _processThroughPriority)) - shortCircuited = true; - - if (shortCircuited) - { - // we're short-circuited, so just remove - // all remaining broken rule entries - BrokenRulesList.Remove(rule); - } - else - { - // we're not short-circuited, so check rule - if (rule.Invoke(_target)) - { - // the rule is not broken - BrokenRulesList.Remove(rule); - } - else - { - // the rule is broken - BrokenRulesList.Add(rule); - if (rule.RuleArgs.Severity == RuleSeverity.Error) - previousRuleBroken = true; - } - if (rule.RuleArgs.StopProcessing) - shortCircuited = true; - } - } - } - - #endregion - - #region Status Retrieval - - /// - /// Returns a value indicating whether there are any broken rules - /// at this time. - /// - /// A value indicating whether any rules are broken. - internal bool IsValid - { - get { return BrokenRulesList.ErrorCount == 0; } - } - - /// - /// Returns a reference to the readonly collection of broken - /// business rules. - /// - /// - /// The reference returned points to the actual collection object. - /// This means that as rules are marked broken or unbroken over time, - /// the underlying data will change. Because of this, the UI developer - /// can bind a display directly to this collection to get a dynamic - /// display of the broken rules at all times. - /// - /// A reference to the collection of broken rules. - public BrokenRulesCollection GetBrokenRules() - { - return BrokenRulesList; - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRulesManager.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRulesManager.cs deleted file mode 100644 index 08835302..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Validation/ValidationRulesManager.cs +++ /dev/null @@ -1,93 +0,0 @@ -using System; -using System.Collections.Generic; - -namespace Csla.Validation -{ - /// - /// Maintains rule methods for a business object - /// or business object type. - /// - internal class ValidationRulesManager - { - private Dictionary _rulesList; - - internal Dictionary RulesDictionary - { - get - { - if (_rulesList == null) - _rulesList = new Dictionary(); - return _rulesList; - } - } - - internal RulesList GetRulesForProperty( - string propertyName, - bool createList) - { - // get the list (if any) from the dictionary - RulesList list = null; - if (RulesDictionary.ContainsKey(propertyName)) - list = RulesDictionary[propertyName]; - - if (createList && list == null) - { - // there is no list for this name - create one - list = new RulesList(); - RulesDictionary.Add(propertyName, list); - } - return list; - } - - #region Adding Rules - - public void AddRule(RuleHandler handler, RuleArgs args, int priority) - { - // get the list of rules for the property - List list = GetRulesForProperty(args.PropertyName, true).GetList(false); - - // we have the list, add out new rule - list.Add(new RuleMethod(handler, args, priority)); - } - - public void AddRule(RuleHandler handler, R args, int priority) where R : RuleArgs - { - // get the list of rules for the property - List list = GetRulesForProperty(args.PropertyName, true).GetList(false); - - // we have the list, add out new rule - list.Add(new RuleMethod(handler, args, priority)); - } - - #endregion - - #region Adding Dependencies - - /// - /// Adds a property to the list of dependencies for - /// the specified property - /// - /// - /// The name of the property. - /// - /// - /// The name of the dependant property. - /// - /// - /// When rules are checked for propertyName, they will - /// also be checked for any dependant properties associated - /// with that property. - /// - public void AddDependantProperty(string propertyName, string dependantPropertyName) - { - // get the list of rules for the property - List list = GetRulesForProperty(propertyName, true).GetDependancyList(true); - - // we have the list, add the dependency - list.Add(dependantPropertyName); - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.cs deleted file mode 100644 index ace2f718..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.cs +++ /dev/null @@ -1,334 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -// -// This source code was auto-generated by Microsoft.VSDesigner, Version 2.0.50727.42. -// -#pragma warning disable 1591 - -namespace Csla.WebServiceHost { - using System.Diagnostics; - using System.Web.Services; - using System.ComponentModel; - using System.Web.Services.Protocols; - using System; - using System.Xml.Serialization; - - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Web.Services.WebServiceBindingAttribute(Name="WebServicePortalSoap", Namespace="http://ws.lhotka.net/Csla")] - public partial class WebServicePortal : System.Web.Services.Protocols.SoapHttpClientProtocol { - - private System.Threading.SendOrPostCallback CreateOperationCompleted; - - private System.Threading.SendOrPostCallback FetchOperationCompleted; - - private System.Threading.SendOrPostCallback UpdateOperationCompleted; - - private System.Threading.SendOrPostCallback DeleteOperationCompleted; - - private bool useDefaultCredentialsSetExplicitly; - - /// - public WebServicePortal() { - this.Url = global::Csla.Properties.Settings.Default.Csla_WebServiceHost_WebServicePortal; - if ((this.IsLocalFileSystemWebService(this.Url) == true)) { - this.UseDefaultCredentials = true; - this.useDefaultCredentialsSetExplicitly = false; - } - else { - this.useDefaultCredentialsSetExplicitly = true; - } - } - - public new string Url { - get { - return base.Url; - } - set { - if ((((this.IsLocalFileSystemWebService(base.Url) == true) - && (this.useDefaultCredentialsSetExplicitly == false)) - && (this.IsLocalFileSystemWebService(value) == false))) { - base.UseDefaultCredentials = false; - } - base.Url = value; - } - } - - public new bool UseDefaultCredentials { - get { - return base.UseDefaultCredentials; - } - set { - base.UseDefaultCredentials = value; - this.useDefaultCredentialsSetExplicitly = true; - } - } - - /// - public event CreateCompletedEventHandler CreateCompleted; - - /// - public event FetchCompletedEventHandler FetchCompleted; - - /// - public event UpdateCompletedEventHandler UpdateCompleted; - - /// - public event DeleteCompletedEventHandler DeleteCompleted; - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/Csla/Create", RequestNamespace="http://ws.lhotka.net/Csla", ResponseNamespace="http://ws.lhotka.net/Csla", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - [return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] - public byte[] Create([System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] requestData) { - object[] results = this.Invoke("Create", new object[] { - requestData}); - return ((byte[])(results[0])); - } - - /// - public void CreateAsync(byte[] requestData) { - this.CreateAsync(requestData, null); - } - - /// - public void CreateAsync(byte[] requestData, object userState) { - if ((this.CreateOperationCompleted == null)) { - this.CreateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnCreateOperationCompleted); - } - this.InvokeAsync("Create", new object[] { - requestData}, this.CreateOperationCompleted, userState); - } - - private void OnCreateOperationCompleted(object arg) { - if ((this.CreateCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.CreateCompleted(this, new CreateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/Csla/Fetch", RequestNamespace="http://ws.lhotka.net/Csla", ResponseNamespace="http://ws.lhotka.net/Csla", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - [return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] - public byte[] Fetch([System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] requestData) { - object[] results = this.Invoke("Fetch", new object[] { - requestData}); - return ((byte[])(results[0])); - } - - /// - public void FetchAsync(byte[] requestData) { - this.FetchAsync(requestData, null); - } - - /// - public void FetchAsync(byte[] requestData, object userState) { - if ((this.FetchOperationCompleted == null)) { - this.FetchOperationCompleted = new System.Threading.SendOrPostCallback(this.OnFetchOperationCompleted); - } - this.InvokeAsync("Fetch", new object[] { - requestData}, this.FetchOperationCompleted, userState); - } - - private void OnFetchOperationCompleted(object arg) { - if ((this.FetchCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.FetchCompleted(this, new FetchCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/Csla/Update", RequestNamespace="http://ws.lhotka.net/Csla", ResponseNamespace="http://ws.lhotka.net/Csla", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - [return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] - public byte[] Update([System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] requestData) { - object[] results = this.Invoke("Update", new object[] { - requestData}); - return ((byte[])(results[0])); - } - - /// - public void UpdateAsync(byte[] requestData) { - this.UpdateAsync(requestData, null); - } - - /// - public void UpdateAsync(byte[] requestData, object userState) { - if ((this.UpdateOperationCompleted == null)) { - this.UpdateOperationCompleted = new System.Threading.SendOrPostCallback(this.OnUpdateOperationCompleted); - } - this.InvokeAsync("Update", new object[] { - requestData}, this.UpdateOperationCompleted, userState); - } - - private void OnUpdateOperationCompleted(object arg) { - if ((this.UpdateCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.UpdateCompleted(this, new UpdateCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/Csla/Delete", RequestNamespace="http://ws.lhotka.net/Csla", ResponseNamespace="http://ws.lhotka.net/Csla", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - [return: System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] - public byte[] Delete([System.Xml.Serialization.XmlElementAttribute(DataType="base64Binary")] byte[] requestData) { - object[] results = this.Invoke("Delete", new object[] { - requestData}); - return ((byte[])(results[0])); - } - - /// - public void DeleteAsync(byte[] requestData) { - this.DeleteAsync(requestData, null); - } - - /// - public void DeleteAsync(byte[] requestData, object userState) { - if ((this.DeleteOperationCompleted == null)) { - this.DeleteOperationCompleted = new System.Threading.SendOrPostCallback(this.OnDeleteOperationCompleted); - } - this.InvokeAsync("Delete", new object[] { - requestData}, this.DeleteOperationCompleted, userState); - } - - private void OnDeleteOperationCompleted(object arg) { - if ((this.DeleteCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.DeleteCompleted(this, new DeleteCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - public new void CancelAsync(object userState) { - base.CancelAsync(userState); - } - - private bool IsLocalFileSystemWebService(string url) { - if (((url == null) - || (url == string.Empty))) { - return false; - } - System.Uri wsUri = new System.Uri(url); - if (((wsUri.Port >= 1024) - && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) { - return true; - } - return false; - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void CreateCompletedEventHandler(object sender, CreateCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class CreateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal CreateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public byte[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((byte[])(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void FetchCompletedEventHandler(object sender, FetchCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class FetchCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal FetchCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public byte[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((byte[])(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void UpdateCompletedEventHandler(object sender, UpdateCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class UpdateCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal UpdateCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public byte[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((byte[])(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void DeleteCompletedEventHandler(object sender, DeleteCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class DeleteCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal DeleteCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public byte[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((byte[])(this.results[0])); - } - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.map b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.map deleted file mode 100644 index 77abb3b5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Reference.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.disco b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.disco deleted file mode 100644 index 93dff912..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.disco +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.wsdl b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.wsdl deleted file mode 100644 index 53313f75..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web References/WebServiceHost/Service.wsdl +++ /dev/null @@ -1,191 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSource.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSource.cs deleted file mode 100644 index 85c247de..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSource.cs +++ /dev/null @@ -1,210 +0,0 @@ -using System; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.Reflection; -using Csla.Properties; - -namespace Csla.Web -{ - - /// - /// A Web Forms data binding control designed to support - /// CSLA .NET business objects as data sources. - /// - [Designer(typeof(Csla.Web.Design.CslaDataSourceDesigner))] - [DisplayName("CslaDataSource")] - [Description("CSLA .NET Data Source Control")] - [ToolboxData("<{0}:CslaDataSource runat=\"server\">")] - public class CslaDataSource : DataSourceControl - { - - private CslaDataSourceView _defaultView; - - /// - /// Event raised when an object is to be created and - /// populated with data. - /// - /// Handle this event in a page and set - /// e.BusinessObject to the populated business object. - /// - public event EventHandler SelectObject; - - /// - /// Event raised when an object is to be populated with data - /// and inserted. - /// - /// Handle this event in a page to create an - /// instance of the object, load the object with data and - /// insert the object into the database. - public event EventHandler InsertObject; - - /// - /// Event raised when an object is to be updated. - /// - /// Handle this event in a page to update an - /// existing instance of an object with new data and then - /// save the object into the database. - public event EventHandler UpdateObject; - - /// - /// Event raised when an object is to be deleted. - /// - /// Handle this event in a page to delete - /// an object from the database. - public event EventHandler DeleteObject; - - /// - /// Returns the default view for this data control. - /// - /// Ignored. - /// - /// This control only contains a "Default" view. - protected override DataSourceView GetView(string viewName) - { - if (_defaultView == null) - _defaultView = new CslaDataSourceView(this, "Default"); - return _defaultView; - } - - /// - /// Get or set the name of the assembly (no longer used). - /// - /// Obsolete - do not use. - public string TypeAssemblyName - { - get { return ((CslaDataSourceView)this.GetView("Default")).TypeAssemblyName; } - set { ((CslaDataSourceView)this.GetView("Default")).TypeAssemblyName = value; } - } - - /// - /// Get or set the full type name of the business object - /// class to be used as a data source. - /// - /// Full type name of the business class, - /// including assembly name. - public string TypeName - { - get { return ((CslaDataSourceView)this.GetView("Default")).TypeName; } - set { ((CslaDataSourceView)this.GetView("Default")).TypeName = value; } - } - - /// - /// Get or set a value indicating whether the - /// business object data source supports paging. - /// - /// - /// To support paging, the business object - /// (collection) must implement - /// . - /// - public bool TypeSupportsPaging - { - get { return ((CslaDataSourceView)this.GetView("Default")).TypeSupportsPaging; } - set { ((CslaDataSourceView)this.GetView("Default")).TypeSupportsPaging = value; } - } - - /// - /// Get or set a value indicating whether the - /// business object data source supports sorting. - /// - public bool TypeSupportsSorting - { - get { return ((CslaDataSourceView)this.GetView("Default")).TypeSupportsSorting; } - set { ((CslaDataSourceView)this.GetView("Default")).TypeSupportsSorting = value; } - } - - private static System.Collections.Generic.Dictionary _typeCache = - new System.Collections.Generic.Dictionary(); - - /// - /// Returns a Type object based on the - /// assembly and type information provided. - /// - /// Optional assembly name. - /// Full type name of the class, - /// including assembly name. - /// - internal static Type GetType( - string typeAssemblyName, string typeName) - { - Type result = null; - if (!string.IsNullOrEmpty(typeAssemblyName)) - { - // explicit assembly name provided - result = Type.GetType(string.Format( - "{0}, {1}", typeName, typeAssemblyName), true, true); - } - else if (typeName.IndexOf(",") > 0) - { - // assembly qualified type name provided - result = Type.GetType(typeName, true, true); - } - else - { - // no assembly name provided - result = _typeCache[typeName]; - if (result == null) - foreach (Assembly asm in AppDomain.CurrentDomain.GetAssemblies()) - { - result = asm.GetType(typeName, false, true); - if (result != null) - { - _typeCache.Add(typeName, result); - break; - } - } - } - - if (result == null) - throw new TypeLoadException(String.Format(Resources.TypeLoadException, typeName)); - - return result; - } - - /// - /// Returns a list of views available for this control. - /// - /// This control only provides the "Default" view. - protected override System.Collections.ICollection GetViewNames() - { - return new string[] { "Default" }; - } - - /// - /// Raises the SelectObject event. - /// - internal void OnSelectObject(SelectObjectArgs e) - { - if (SelectObject != null) - SelectObject(this, e); - } - - /// - /// Raises the InsertObject event. - /// - internal void OnInsertObject(InsertObjectArgs e) - { - if (InsertObject != null) - InsertObject(this, e); - } - - /// - /// Raises the UpdateObject event. - /// - internal void OnUpdateObject(UpdateObjectArgs e) - { - if (UpdateObject != null) - UpdateObject(this, e); - } - - /// - /// Raises the DeleteObject event. - /// - internal void OnDeleteObject(DeleteObjectArgs e) - { - if (DeleteObject != null) - DeleteObject(this, e); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSourceView.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSourceView.cs deleted file mode 100644 index e0395d2a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/CslaDataSourceView.cs +++ /dev/null @@ -1,290 +0,0 @@ -using System; -using System.Collections; -using System.Web.UI; - -namespace Csla.Web -{ - - /// - /// The object responsible for managing data binding - /// to a specific CSLA .NET object. - /// - public class CslaDataSourceView : DataSourceView - { - - private CslaDataSource _owner; - private string _typeAssemblyName; - private string _typeName; - private bool _typeSupportsPaging; - private bool _typeSupportsSorting; - - /// - /// Creates an instance of the object. - /// - /// The CslaDataSource object - /// that owns this view. - /// The name of the view. - public CslaDataSourceView(CslaDataSource owner, string viewName) - : base(owner, viewName) - { - _owner = owner; - } - - /// - /// Get or set the name of the assembly (no longer used). - /// - /// Obsolete - do not use. - public string TypeAssemblyName - { - get { return _typeAssemblyName; } - set { _typeAssemblyName = value; } - } - - /// - /// Get or set the full type name of the business object - /// class to be used as a data source. - /// - /// Full type name of the business class. - public string TypeName - { - get { return _typeName; } - set { _typeName = value; } - } - - /// - /// Get or set a value indicating whether the - /// business object data source supports paging. - /// - /// - /// To support paging, the business object - /// (collection) must implement - /// . - /// - public bool TypeSupportsPaging - { - get { return _typeSupportsPaging; } - set { _typeSupportsPaging = value; } - } - - /// - /// Get or set a value indicating whether the - /// business object data source supports sorting. - /// - public bool TypeSupportsSorting - { - get { return _typeSupportsSorting; } - set { _typeSupportsSorting = value; } - } - - #region Select - - /// - /// Implements the select behavior for - /// the control by raising the - /// event. - /// - /// Arguments object. - /// The data returned from the select. - protected override System.Collections.IEnumerable - ExecuteSelect(DataSourceSelectArguments arguments) - { - // get the object from the page - SelectObjectArgs args = new SelectObjectArgs(arguments); - _owner.OnSelectObject(args); - object result = args.BusinessObject; - - if (arguments.RetrieveTotalRowCount) - { - int rowCount; - if (result == null) - rowCount = 0; - else if (result is Csla.Core.IReportTotalRowCount) - rowCount = ((Csla.Core.IReportTotalRowCount)result).TotalRowCount; - else if (result is IList) - rowCount = ((IList)result).Count; - else if (result is IEnumerable) - { - IEnumerable temp = (IEnumerable)result; - int count = 0; - foreach (object item in temp) - count++; - rowCount = count; - } - else - rowCount = 1; - arguments.TotalRowCount = rowCount; - } - - // if the result isn't IEnumerable then - // wrap it in a collection - if (!(result is IEnumerable)) - { - ArrayList list = new ArrayList(); - if (result != null) - list.Add(result); - result = list; - } - - // now return the object as a result - return (IEnumerable)result; - } - - #endregion - - #region Insert - - /// - /// Gets a value indicating whether the data source can - /// insert data. - /// - public override bool CanInsert - { - get - { - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom( - CslaDataSource.GetType(_typeAssemblyName, _typeName))) - return true; - else - return false; - } - } - - /// - /// Implements the insert behavior for - /// the control by raising the - /// event. - /// - /// The values from - /// the UI that are to be inserted. - /// The number of rows affected. - protected override int ExecuteInsert( - IDictionary values) - { - // tell the page to insert the object - InsertObjectArgs args = - new InsertObjectArgs(values); - _owner.OnInsertObject(args); - return args.RowsAffected; - } - - #endregion - - #region Delete - - /// - /// Gets a value indicating whether the data source can - /// delete data. - /// - public override bool CanDelete - { - get - { - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom( - CslaDataSource.GetType(_typeAssemblyName, _typeName))) - return true; - else - return false; - } - } - - /// - /// Implements the delete behavior for - /// the control by raising the - /// event. - /// - /// The key values from - /// the UI that are to be deleted. - /// The old values - /// from the UI. - /// The number of rows affected. - protected override int ExecuteDelete(IDictionary keys, IDictionary oldValues) - { - - // tell the page to delete the object - DeleteObjectArgs args = new DeleteObjectArgs(keys, oldValues); - _owner.OnDeleteObject(args); - return args.RowsAffected; - } - - #endregion - - #region Update - - /// - /// Gets a value indicating whether the data source can - /// update data. - /// - public override bool CanUpdate - { - get - { - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom( - CslaDataSource.GetType(_typeAssemblyName, _typeName))) - return true; - else - return false; - } - } - - /// - /// Implements the update behavior for - /// the control by raising the - /// event. - /// - /// The key values from the UI - /// that identify the object to be updated. - /// The values from - /// the UI that are to be inserted. - /// The old values - /// from the UI. - /// The number of rows affected. - protected override int ExecuteUpdate(IDictionary keys, IDictionary values, IDictionary oldValues) - { - // tell the page to update the object - UpdateObjectArgs args = new UpdateObjectArgs(keys, values, oldValues); - _owner.OnUpdateObject(args); - return args.RowsAffected; - } - - #endregion - - #region Other Operations - - /// - /// Gets a value indicating whether the data source supports - /// paging of the data. - /// - public override bool CanPage - { - get - { - return _typeSupportsPaging; - } - } - - /// - /// Gets a value indicating whether the data source can - /// retrieve the total number of rows of data. Always - /// returns . - /// - public override bool CanRetrieveTotalRowCount - { - get { return true; } - } - - /// - /// Gets a alue indicating whether the data source supports - /// sorting of the data. Always returns . - /// - public override bool CanSort - { - get - { - return _typeSupportsSorting; - } - } - - #endregion - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/DeleteObjectArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/DeleteObjectArgs.cs deleted file mode 100644 index e1a4a9b5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/DeleteObjectArgs.cs +++ /dev/null @@ -1,66 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Web -{ - /// - /// Argument object used in the DeleteObject event. - /// - public class DeleteObjectArgs : EventArgs - { - private System.Collections.IDictionary _keys; - private System.Collections.IDictionary _oldValues; - private int _rowsAffected; - - /// - /// Gets or sets the number of rows affected - /// while handling this event. - /// - /// - /// - /// - /// The code handling the event should set this - /// value to indicate the number of rows affected - /// by the operation. - /// - public int RowsAffected - { - get { return _rowsAffected; } - set { _rowsAffected = value; } - } - - /// - /// The list of key values entered by the user. - /// - /// It is up to the event handler in the - /// web page to use the values to identify the - /// object to be deleted. - public System.Collections.IDictionary Keys - { - get { return _keys; } - } - - /// - /// The list of old data values maintained by - /// data binding. - /// - /// It is up to the event handler in the - /// web page to use the values to identify the - /// object to be deleted. - public System.Collections.IDictionary OldValues - { - get { return _oldValues; } - } - - /// - /// Create an instance of the object. - /// - public DeleteObjectArgs(System.Collections.IDictionary keys, System.Collections.IDictionary oldValues) - { - _keys = keys; - _oldValues = oldValues; - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.Designer.cs deleted file mode 100644 index fd6f4106..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.Designer.cs +++ /dev/null @@ -1,90 +0,0 @@ -namespace Csla.Web.Design -{ - partial class CslaDataSourceConfiguration - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(CslaDataSourceConfiguration)); - this.label2 = new System.Windows.Forms.Label(); - this.okButton = new System.Windows.Forms.Button(); - this.cancelButton = new System.Windows.Forms.Button(); - this.TypeComboBox = new System.Windows.Forms.ComboBox(); - this.SuspendLayout(); - // - // label2 - // - resources.ApplyResources(this.label2, "label2"); - this.label2.Name = "label2"; - // - // okButton - // - resources.ApplyResources(this.okButton, "okButton"); - this.okButton.DialogResult = System.Windows.Forms.DialogResult.OK; - this.okButton.Name = "okButton"; - this.okButton.UseVisualStyleBackColor = true; - // - // cancelButton - // - resources.ApplyResources(this.cancelButton, "cancelButton"); - this.cancelButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.cancelButton.Name = "cancelButton"; - this.cancelButton.UseVisualStyleBackColor = true; - // - // TypeComboBox - // - resources.ApplyResources(this.TypeComboBox, "TypeComboBox"); - this.TypeComboBox.FormattingEnabled = true; - this.TypeComboBox.Name = "TypeComboBox"; - // - // CslaDataSourceConfiguration - // - this.AcceptButton = this.okButton; - resources.ApplyResources(this, "$this"); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.cancelButton; - this.ControlBox = false; - this.Controls.Add(this.TypeComboBox); - this.Controls.Add(this.cancelButton); - this.Controls.Add(this.okButton); - this.Controls.Add(this.label2); - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "CslaDataSourceConfiguration"; - this.ShowInTaskbar = false; - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Label label2; - private System.Windows.Forms.Button okButton; - private System.Windows.Forms.Button cancelButton; - private System.Windows.Forms.ComboBox TypeComboBox; - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.cs deleted file mode 100644 index 299899c8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.cs +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Collections; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.ComponentModel.Design; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace Csla.Web.Design -{ - /// - /// CslaDataSource configuration form. - /// - public partial class CslaDataSourceConfiguration : Form - { - private DataSourceControl _control; - - /// - /// Create instance of object. - /// - public CslaDataSourceConfiguration() - { - InitializeComponent(); - } - - /// - /// Create instance of object. - /// - /// Reference to the data source control. - /// Existing type name. - public CslaDataSourceConfiguration(DataSourceControl control, string oldTypeName) - : this() - { - _control = control; - DiscoverTypes(); - this.TypeComboBox.Text = oldTypeName; - } - - /// - /// Gets the type name entered by the user. - /// - public string TypeName - { - get { return this.TypeComboBox.Text; } - } - - private void DiscoverTypes() - { - // try to get a reference to the type discovery service - ITypeDiscoveryService discovery = null; - if (_control.Site != null) - discovery = (ITypeDiscoveryService)_control.Site.GetService(typeof(ITypeDiscoveryService)); - - if (discovery != null) - { - // saves the cursor and sets the wait cursor - Cursor previousCursor = Cursor.Current; - Cursor.Current = Cursors.WaitCursor; - try - { - // gets all types using the type discovery service - ICollection types = discovery.GetTypes(typeof(object), true); - TypeComboBox.BeginUpdate(); - TypeComboBox.Items.Clear(); - // adds the types to the list - foreach (Type type in types) - { - if (type.Assembly.FullName.Substring(0, type.Assembly.FullName.IndexOf(",")) != "Csla" && - typeof(Csla.Core.IBusinessObject).IsAssignableFrom(type)) - { - string name = type.AssemblyQualifiedName; - if (name.Substring(name.Length - 19, 19) == "PublicKeyToken=null") - name = name.Substring(0, name.IndexOf(",", name.IndexOf(",") + 1)); - TypeComboBox.Items.Add(name); - } - } - } - finally - { - Cursor.Current = previousCursor; - TypeComboBox.EndUpdate(); - } - } - } - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.resx deleted file mode 100644 index b04a81dc..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceConfiguration.resx +++ /dev/null @@ -1,249 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - True - - - - 12, 17 - - - 104, 13 - - - 0 - - - Business object type - - - label2 - - - System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 3 - - - - Top, Right - - - 562, 12 - - - 75, 23 - - - 2 - - - OK - - - okButton - - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 2 - - - Top, Right - - - 562, 41 - - - 75, 23 - - - 3 - - - Cancel - - - cancelButton - - - System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 1 - - - Top, Left, Right - - - 122, 14 - - - 429, 21 - - - 1 - - - TypeComboBox - - - System.Windows.Forms.ComboBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - $this - - - 0 - - - True - - - 6, 13 - - - 649, 75 - - - CenterParent - - - Configure CslaDataSource - - - CslaDataSourceConfiguration - - - System.Windows.Forms.Form, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceDesigner.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceDesigner.cs deleted file mode 100644 index 298fbf4f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDataSourceDesigner.cs +++ /dev/null @@ -1,164 +0,0 @@ -using System; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.Windows.Forms.Design; -using Csla.Web; - -namespace Csla.Web.Design -{ - /// - /// Implements designer support for CslaDataSource. - /// - public class CslaDataSourceDesigner : DataSourceDesigner - { - - private DataSourceControl _control = null; - private CslaDesignerDataSourceView _view = null; - - /// - /// Initialize the designer component. - /// - /// The CslaDataSource control to - /// be designed. - public override void Initialize(IComponent component) - { - base.Initialize(component); - _control = (DataSourceControl)component; - } - - internal System.ComponentModel.ISite Site - { - get - { - return _control.Site; - } - } - /// - /// Returns the default view for this designer. - /// - /// Ignored - /// - /// - /// This designer supports only a "Default" view. - /// - public override DesignerDataSourceView GetView(string viewName) - { - if (_view == null) - { - _view = new CslaDesignerDataSourceView(this, "Default"); - } - return _view; - } - - /// - /// Return a list of available views. - /// - /// - /// This designer supports only a "Default" view. - /// - public override string[] GetViewNames() - { - return new string[] { "Default" }; - } - - /// - /// Refreshes the schema for the data. - /// - /// - /// - public override void RefreshSchema(bool preferSilent) - { - this.OnSchemaRefreshed(EventArgs.Empty); - } - - /// - /// Get a value indicating whether the control can - /// refresh its schema. - /// - public override bool CanRefreshSchema - { - get - { - return true; - } - } - - /// - /// Invoke the design time configuration - /// support provided by the control. - /// - public override void Configure() - { - InvokeTransactedChange(_control, ConfigureCallback, null, "ConfigureDataSource"); - } - - private bool ConfigureCallback(object context) - { - bool result = false; - - string oldTypeName; - if (string.IsNullOrEmpty(((CslaDataSource)DataSourceControl).TypeAssemblyName)) - oldTypeName = ((CslaDataSource)DataSourceControl).TypeName; - else - oldTypeName = string.Format("{0}, {1}", - ((CslaDataSource)DataSourceControl).TypeName, ((CslaDataSource)DataSourceControl).TypeAssemblyName); - - IUIService uiService = (IUIService)_control.Site.GetService(typeof(IUIService)); - CslaDataSourceConfiguration cfg = new CslaDataSourceConfiguration(_control, oldTypeName); - if (uiService.ShowDialog(cfg) == System.Windows.Forms.DialogResult.OK) - { - SuppressDataSourceEvents(); - try - { - ((CslaDataSource)DataSourceControl).TypeAssemblyName = string.Empty; - ((CslaDataSource)DataSourceControl).TypeName = cfg.TypeName; - OnDataSourceChanged(EventArgs.Empty); - result = true; - } - finally - { - ResumeDataSourceEvents(); - } - } - cfg.Dispose(); - return result; - } - - /// - /// Get a value indicating whether this control - /// supports design time configuration. - /// - public override bool CanConfigure - { - get - { - return true; - } - } - - /// - /// Get a value indicating whether the control can - /// be resized. - /// - public override bool AllowResize - { - get - { - return false; - } - } - - /// - /// Get a reference to the CslaDataSource control being - /// designed. - /// - internal CslaDataSource DataSourceControl - { - get - { - return (CslaDataSource)_control; - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDesignerDataSourceView.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDesignerDataSourceView.cs deleted file mode 100644 index 76b2a233..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/CslaDesignerDataSourceView.cs +++ /dev/null @@ -1,229 +0,0 @@ -using System; -using System.Collections; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.ComponentModel.Design; -using System.Reflection; -using System.Data; - -namespace Csla.Web.Design -{ - /// - /// Object responsible for providing details about - /// data binding to a specific CSLA .NET object. - /// - public class CslaDesignerDataSourceView : DesignerDataSourceView - { - - private CslaDataSourceDesigner _owner = null; - - /// - /// Creates an instance of the object. - /// - public CslaDesignerDataSourceView(CslaDataSourceDesigner owner, string viewName) - : base(owner, viewName) - { - _owner = owner; - } - - /// - /// Returns a set of sample data used to populate - /// controls at design time. - /// - /// Minimum number of sample rows - /// to create. - /// Returns True if the data - /// is sample data. - public override IEnumerable GetDesignTimeData(int minimumRows, out bool isSampleData) - { - IDataSourceViewSchema schema = this.Schema; - DataTable result = new DataTable(); - - // create the columns - foreach (IDataSourceFieldSchema item in schema.GetFields()) - { - result.Columns.Add(item.Name, item.DataType); - } - - // create sample data - for (int index = 1; index <= minimumRows; index++) - { - object[] values = new object[result.Columns.Count]; - int colIndex = 0; - foreach (DataColumn col in result.Columns) - { - if (col.DataType.Equals(typeof(string))) - values[colIndex] = "abc"; - else if (col.DataType.Equals(typeof(System.DateTime))) - values[colIndex] = System.DateTime.Today.ToShortDateString(); - else if (col.DataType.Equals(typeof(bool))) - values[colIndex] = false; - else if (col.DataType.IsPrimitive) - values[colIndex] = index; - else if (col.DataType.Equals(typeof(Guid))) - values[colIndex] = Guid.Empty; - else if (col.DataType.IsValueType) - values[colIndex] = Activator.CreateInstance(col.DataType); - else - values[colIndex] = null; - colIndex += 1; - } - result.LoadDataRow(values, LoadOption.OverwriteChanges); - } - - isSampleData = true; - return (IEnumerable)result.DefaultView; - } - - /// - /// Returns schema information corresponding to the properties - /// of the CSLA .NET business object. - /// - /// - /// All public properties are returned except for those marked - /// with the Browsable attribute - /// as False. - /// - public override IDataSourceViewSchema Schema - { - get - { - return new ObjectSchema( - _owner, - _owner.DataSourceControl.TypeName).GetViews()[0]; - } - } - - /// - /// Get a value indicating whether data binding can retrieve - /// the total number of rows of data. - /// - public override bool CanRetrieveTotalRowCount - { - get - { - return true; - } - } - - private Type GetObjectType() - { - Type result; - try - { - ITypeResolutionService typeService = null; - typeService = (ITypeResolutionService)(_owner.Site.GetService(typeof(ITypeResolutionService))); - result = typeService.GetType(this._owner.DataSourceControl.TypeName, true, false); - } - catch - { - result = typeof(object); - } - return result; - } - - /// - /// Get a value indicating whether data binding can directly - /// delete the object. - /// - /// - /// If this returns true, the web page must handle the - /// DeleteObject - /// event. - /// - public override bool CanDelete - { - get - { - Type objectType = GetObjectType(); - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(objectType)) - { - return true; - } - else if (objectType.GetMethod("Remove") != null) - { - return true; - } - else - { - return false; - } - } - } - - /// - /// Get a value indicating whether data binding can directly - /// insert an instance of the object. - /// - /// - /// If this returns true, the web page must handle the - /// InsertObject - /// event. - /// - public override bool CanInsert - { - get - { - Type objectType = GetObjectType(); - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(objectType)) - { - return true; - } - else - { - return false; - } - } - } - - /// - /// Get a value indicating whether data binding can directly - /// update or edit the object. - /// - /// - /// If this returns true, the web page must handle the - /// UpdateObject - /// event. - /// - public override bool CanUpdate - { - get - { - Type objectType = GetObjectType(); - if (typeof(Csla.Core.IUndoableObject).IsAssignableFrom(objectType)) - { - return true; - } - else - { - return false; - } - } - } - - /// - /// Gets a value indicating whether the data source supports - /// paging. - /// - public override bool CanPage - { - get - { - return _owner.DataSourceControl.TypeSupportsPaging; - } - } - - /// - /// Gets a value indicating whether the data source supports - /// sorting. - /// - public override bool CanSort - { - get - { - return _owner.DataSourceControl.TypeSupportsSorting; - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectFieldInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectFieldInfo.cs deleted file mode 100644 index dae0b9d3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectFieldInfo.cs +++ /dev/null @@ -1,181 +0,0 @@ -using System; -using System.Data; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.Reflection; -using System.Collections; -using System.Collections.Generic; - -namespace Csla.Web.Design -{ - /// - /// Contains schema information for a single - /// object property. - /// - [Serializable] - public class ObjectFieldInfo : IDataSourceFieldSchema - { - private Type _dataType; - private bool _primaryKey; - private bool _isIdentity; - private bool _isNullable; - private int _length; - private bool _isReadOnly; - private string _name; - private bool _nullable; - - /// - /// Creates an instance of the object. - /// - /// The PropertyInfo object - /// describing the property. - public ObjectFieldInfo(PropertyDescriptor field) - { - DataObjectFieldAttribute attribute = - (DataObjectFieldAttribute) - field.Attributes[typeof(DataObjectFieldAttribute)]; - if (attribute != null) - { - _primaryKey = attribute.PrimaryKey; - _isIdentity = attribute.IsIdentity; - _isNullable = attribute.IsNullable; - _length = attribute.Length; - } - _dataType = Utilities.GetPropertyType( - field.PropertyType); - _isReadOnly = field.IsReadOnly; - _name = field.Name; - - // nullable - Type t = field.PropertyType; - if (!t.IsValueType || _isNullable) - _nullable = true; - else - { - if (t.IsGenericType) - _nullable = (t.GetGenericTypeDefinition() == typeof(Nullable<>)); - else - _nullable = false; - } - } - - /// - /// Gets the data type of the property. - /// - public Type DataType - { - get - { - return _dataType; - } - } - - /// - /// Gets a value indicating whether this property - /// is an identity key for the object. - /// - /// - /// Returns the optional value provided through - /// the DataObjectField - /// attribute on the property. - /// - public bool Identity - { - get { return _isIdentity; } - } - - /// - /// Gets a value indicating whether this property - /// is readonly. - /// - public bool IsReadOnly - { - get { return _isReadOnly; } - } - - /// - /// Gets a value indicating whether this property - /// must contain a unique value. - /// - /// - /// Always returns True if the property - /// is marked as a primary key, otherwise - /// returns False. - /// - public bool IsUnique - { - get { return _primaryKey; } - } - - /// - /// Gets the length of the property value. - /// - /// - /// Returns the optional value provided through - /// the DataObjectField - /// attribute on the property. - /// - public int Length - { - get { return _length; } - } - - /// - /// Gets the property name. - /// - public string Name - { - get { return _name; } - } - - /// - /// Gets a value indicating whether the property - /// is nullable - /// - /// - /// Returns True for reference types, and for - /// value types wrapped in the Nullable generic. - /// The result can also be set to True through - /// the DataObjectField - /// attribute on the property. - /// - public bool Nullable - { - get - { return _nullable; } - } - - /// - /// Gets the property's numeric precision. - /// - /// Always returns -1. - public int Precision - { - get { return -1; } - } - - /// - /// Gets a value indicating whether the property - /// is a primary key value. - /// - /// - /// Returns the optional value provided through - /// the DataObjectField - /// attribute on the property. - /// - public bool PrimaryKey - { - get { return _primaryKey; } - } - - /// - /// Gets the property's scale. - /// - /// Always returns -1. - public int Scale - { - get { return -1; } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectSchema.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectSchema.cs deleted file mode 100644 index 487678a3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectSchema.cs +++ /dev/null @@ -1,46 +0,0 @@ -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.Reflection; - -namespace Csla.Web.Design -{ - - /// - /// Object providing access to schema information for - /// a business object. - /// - /// - /// This object returns only one view, which corresponds - /// to the business object used by data binding. - /// - public class ObjectSchema : IDataSourceSchema - { - private string _typeName = ""; - private CslaDataSourceDesigner _designer; - - /// - /// Creates an instance of the object. - /// - /// Data source designer object. - /// Type name for - /// which the schema should be generated. - public ObjectSchema(CslaDataSourceDesigner designer, string typeName) - { - _typeName = typeName; - _designer = designer; - } - - - /// - /// Returns a single element array containing the - /// schema for the CSLA .NET business object. - /// - public System.Web.UI.Design.IDataSourceViewSchema[] GetViews() - { - IDataSourceViewSchema[] result = null; - result = new IDataSourceViewSchema[] { new ObjectViewSchema(_designer, _typeName) }; - return result; - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectViewSchema.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectViewSchema.cs deleted file mode 100644 index 83f62505..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/Design/ObjectViewSchema.cs +++ /dev/null @@ -1,104 +0,0 @@ -using System; -using System.Collections; -using System.Collections.Generic; -using System.Web.UI; -using System.Web.UI.Design; -using System.ComponentModel; -using System.ComponentModel.Design; -using System.Reflection; -using Csla; -using Csla.Web.Design; - -namespace Csla.Web.Design -{ - - /// - /// Object providing schema information for a - /// business object. - /// - [Serializable()] - public class ObjectViewSchema : IDataSourceViewSchema - { - private string _typeName = ""; - private CslaDataSourceDesigner _designer; - - /// - /// Create an instance of the object. - /// - /// Site containing the control. - /// The business class for - /// which to generate the schema. - public ObjectViewSchema(CslaDataSourceDesigner site, string typeName) - { - _typeName = typeName; - _designer = site; - } - - /// - /// Returns a list of child schemas belonging to the - /// object. - /// - /// This schema object only returns - /// schema for the object itself, so GetChildren will - /// always return Nothing (null in C#). - public System.Web.UI.Design.IDataSourceViewSchema[] GetChildren() - { - return null; - } - - /// - /// Returns schema information for each property on - /// the object. - /// - /// All public properties on the object - /// will be reflected in this schema list except - /// for those properties where the - /// Browsable attribute - /// is False. - /// - public System.Web.UI.Design.IDataSourceFieldSchema[] GetFields() - { - ITypeResolutionService typeService = null; - List result = new List(); - - if (_designer != null) - { - Type objectType = null; - try - { - typeService = (ITypeResolutionService)(_designer.Site.GetService(typeof(ITypeResolutionService))); - objectType = typeService.GetType(_typeName, true, false); - - if (typeof(IEnumerable).IsAssignableFrom(objectType)) - { - // this is a list so get the item type - objectType = Utilities.GetChildItemType(objectType); - } - PropertyDescriptorCollection props = TypeDescriptor.GetProperties(objectType); - foreach (PropertyDescriptor item in props) - { - if (item.IsBrowsable) - { - result.Add(new ObjectFieldInfo(item)); - } - } - } - catch - { /* do nothing - just swallow exception */ } - } - - return result.ToArray(); - } - - /// - /// Returns the name of the schema. - /// - public string Name - { - get - { - return "Default"; - } - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/InsertObjectArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/InsertObjectArgs.cs deleted file mode 100644 index 491f5486..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/InsertObjectArgs.cs +++ /dev/null @@ -1,54 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Web -{ - /// - /// Argument object used in the InsertObject event. - /// - public class InsertObjectArgs : EventArgs - { - - private System.Collections.IDictionary _values; - private int _rowsAffected; - - /// - /// Gets or sets the number of rows affected - /// while handling this event. - /// - /// - /// - /// - /// The code handling the event should set this - /// value to indicate the number of rows affected - /// by the operation. - /// - public int RowsAffected - { - get { return _rowsAffected; } - set { _rowsAffected = value; } - } - - /// - /// The list of data values entered by the user. - /// - /// It is up to the event handler in the - /// web page to take the list of values, put them - /// into a business object and to save that object - /// into the database. - public System.Collections.IDictionary Values - { - get { return _values; } - } - - /// - /// Create an instance of the object. - /// - public InsertObjectArgs(System.Collections.IDictionary values) - { - _values = values; - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/SelectObjectArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/SelectObjectArgs.cs deleted file mode 100644 index c0b74cac..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/SelectObjectArgs.cs +++ /dev/null @@ -1,157 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Text; - -namespace Csla.Web -{ -/// -/// Argument object used in the SelectObject event. -/// - [Serializable] - public class SelectObjectArgs : EventArgs - { - - private object _businessObject; - private string _sortExpression; - private string _sortProperty; - private ListSortDirection _sortDirection; - private int _startRowIndex; - private int _maximumRows; - private bool _retrieveTotalRowCount; - - /// - /// Get or set a reference to the business object - /// that is created and populated by the SelectObject - /// event handler in the web page. - /// - /// A reference to a CSLA .NET business object. - public object BusinessObject - { - get { return _businessObject; } - set { _businessObject = value; } - } - - /// - /// Gets the sort expression that should be used to - /// sort the data being returned to the data source - /// control. - /// - public string SortExpression - { - get - { - return _sortExpression; - } - } - - /// - /// Gets the property name for the sort if only one - /// property/column name is specified. - /// - /// - /// If multiple properties/columns are specified - /// for the sort, you must parse the value from - /// to find all the - /// property names and sort directions for the sort. - /// - public string SortProperty - { - get - { - return _sortProperty; - } - } - - /// - /// Gets the sort direction for the sort if only - /// one property/column name is specified. - /// - /// - /// If multiple properties/columns are specified - /// for the sort, you must parse the value from - /// to find all the - /// property names and sort directions for the sort. - /// - public ListSortDirection SortDirection - { - get - { - return _sortDirection; - } - } - - /// - /// Gets the index for the first row that will be - /// displayed. This should be the first row in - /// the resulting collection set into the - /// property. - /// - public int StartRowIndex - { - get - { - return _startRowIndex; - } - } - - /// - /// Gets the maximum number of rows that - /// should be returned as a result of this - /// query. For paged collections, this is the - /// page size. - /// - public int MaximumRows - { - get - { - return _maximumRows; - } - } - - /// - /// Gets a value indicating whether the - /// query should return the total row count - /// through the - /// - /// interface. - /// - public bool RetrieveTotalRowCount - { - get - { - return _retrieveTotalRowCount; - } - } - - /// - /// Creates an instance of the object, initializing - /// it with values from data binding. - /// - /// Values provided from data binding. - public SelectObjectArgs(System.Web.UI.DataSourceSelectArguments args) - { - - _startRowIndex = args.StartRowIndex; - _maximumRows = args.MaximumRows; - _retrieveTotalRowCount = args.RetrieveTotalRowCount; - - _sortExpression = args.SortExpression; - if (!(string.IsNullOrEmpty(_sortExpression))) - { - if (_sortExpression.Length >= 5 && - _sortExpression.Substring(_sortExpression.Length - 5) == " DESC") - { - _sortProperty = _sortExpression.Substring(0, _sortExpression.Length - 5); - _sortDirection = ListSortDirection.Descending; - - } - else - { - _sortProperty = args.SortExpression; - _sortDirection = ListSortDirection.Ascending; - } - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/UpdateObjectArgs.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/UpdateObjectArgs.cs deleted file mode 100644 index 4424e8e3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Web/UpdateObjectArgs.cs +++ /dev/null @@ -1,83 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace Csla.Web -{ - /// - /// Argument object used in the UpdateObject event. - /// - public class UpdateObjectArgs : EventArgs - { - - private System.Collections.IDictionary _keys; - private System.Collections.IDictionary _values; - private System.Collections.IDictionary _oldValues; - private int _rowsAffected; - - /// - /// Gets or sets the number of rows affected - /// while handling this event. - /// - /// - /// - /// - /// The code handling the event should set this - /// value to indicate the number of rows affected - /// by the operation. - /// - public int RowsAffected - { - get { return _rowsAffected; } - set { _rowsAffected = value; } - } - - /// - /// The list of key values entered by the user. - /// - /// It is up to the event handler in the - /// web page to take the list of values, put them - /// into a business object and to save that object - /// into the database. - public System.Collections.IDictionary Keys - { - get { return _keys; } - } - - /// - /// The list of data values entered by the user. - /// - /// It is up to the event handler in the - /// web page to take the list of values, put them - /// into a business object and to save that object - /// into the database. - public System.Collections.IDictionary Values - { - get { return _values; } - } - - /// - /// The list of old data values maintained by - /// data binding. - /// - /// It is up to the event handler in the - /// web page to take the list of values, put them - /// into a business object and to save that object - /// into the database. - public System.Collections.IDictionary OldValues - { - get { return _oldValues; } - } - - /// - /// Creates an instance of the object. - /// - public UpdateObjectArgs(System.Collections.IDictionary keys, System.Collections.IDictionary values, System.Collections.IDictionary oldValues) - { - _keys = keys; - _values = values; - _oldValues = oldValues; - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/BindingSourceRefresh.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/BindingSourceRefresh.cs deleted file mode 100644 index 31f4125f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/BindingSourceRefresh.cs +++ /dev/null @@ -1,95 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Windows.Forms; - -// code from Bill McCarthy -// http://msmvps.com/bill/archive/2005/10/05/69012.aspx -// used with permission - -namespace Csla.Windows -{ - /// - /// Windows Forms extender control that resolves the - /// data refresh issue with data bound detail controls - /// as discussed in Chapter 5. - /// - [DesignerCategory("")] - [ProvideProperty("ReadValuesOnChange", typeof(BindingSource))] - public class BindingSourceRefresh : Component, IExtenderProvider - { - - private Dictionary _sources = new Dictionary(); - - /// - /// Creates an instance of the object. - /// - /// Container of the control. - public BindingSourceRefresh(IContainer container) - { - container.Add(this); - } - - /// - /// Gets a value indicating whether the extender control - /// can extend the specified control. - /// - /// The control to be extended. - /// - /// This control only extends controls. - /// - public bool CanExtend(object extendee) - { - if (extendee is BindingSource) - return true; - return false; - } - - /// - /// Gets the value of the custom ReadValuesOnChange extender - /// property added to extended controls. - /// - /// Control being extended. - public bool GetReadValuesOnChange(BindingSource source) - { - if (_sources.ContainsKey(source)) - return _sources[source]; - return false; - } - - /// - /// Sets the value of the custom ReadValuesOnChange extender - /// property added to extended controls. - /// - /// Control being extended. - /// New value of property. - /// - public void SetReadValuesOnChange( - BindingSource source, bool value) - { - if (_sources.ContainsKey(source)) - _sources[source] = value; - else - _sources.Add(source, value); - if (value) - { - // hook - source.BindingComplete += - new BindingCompleteEventHandler(Source_BindingComplete); - } - else - { - // unhook - source.BindingComplete -= - new BindingCompleteEventHandler(Source_BindingComplete); - } - } - - private void Source_BindingComplete( - object sender, BindingCompleteEventArgs e) - { - e.Binding.ReadValue(); - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/ReadWriteAuthorization.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/ReadWriteAuthorization.cs deleted file mode 100644 index 23cd5d83..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/Windows/ReadWriteAuthorization.cs +++ /dev/null @@ -1,222 +0,0 @@ -using System; -using System.ComponentModel; -using System.Collections.Generic; -using System.Windows.Forms; -using System.Reflection; - -namespace Csla.Windows -{ - /// - /// Windows Forms extender control that automatically - /// enables and disables detail form controls based - /// on the authorization settings from a CSLA .NET - /// business object. - /// - [DesignerCategory("")] - [ProvideProperty("ApplyAuthorization", typeof(Control))] - public class ReadWriteAuthorization : Component, IExtenderProvider - { - - private Dictionary _sources = - new Dictionary(); - - /// - /// Creates an instance of the object. - /// - /// The container of the control. - public ReadWriteAuthorization(IContainer container) - { container.Add(this); } - - /// - /// Gets a value indicating whether the extender control - /// can extend the specified control. - /// - /// The control to be extended. - /// - /// Any control implementing either a ReadOnly property or - /// Enabled property can be extended. - /// - public bool CanExtend(object extendee) - { - if (IsPropertyImplemented(extendee, "ReadOnly") - || IsPropertyImplemented(extendee, "Enabled")) - return true; - else - return false; - } - - /// - /// Gets the custom ApplyAuthorization extender - /// property added to extended controls. - /// - /// Control being extended. - public bool GetApplyAuthorization(Control source) - { - if (_sources.ContainsKey(source)) - return _sources[source]; - else - return false; - } - - /// - /// Sets the custom ApplyAuthorization extender - /// property added to extended controls. - /// - /// Control being extended. - /// New value of property. - public void SetApplyAuthorization(Control source, bool value) - { - if (_sources.ContainsKey(source)) - _sources[source] = value; - else - _sources.Add(source, value); - } - - /// - /// Causes the ReadWriteAuthorization control - /// to apply authorization rules from the business - /// object to all extended controls on the form. - /// - /// - /// Call this method to refresh the display of detail - /// controls on the form any time the authorization - /// rules may have changed. Examples include: after - /// a user logs in or out, and after an object has - /// been updated, inserted, deleted or retrieved - /// from the database. - /// - public void ResetControlAuthorization() - { - foreach (KeyValuePair item in _sources) - { - if (item.Value) - { - // apply authorization rules - ApplyAuthorizationRules(item.Key); - } - } - } - - private void ApplyAuthorizationRules(Control control) - { - foreach (Binding binding in control.DataBindings) - { - // get the BindingSource if appropriate - if (binding.DataSource is BindingSource) - { - BindingSource bs = - (BindingSource)binding.DataSource; - // get the BusinessObject if appropriate - Csla.Security.IAuthorizeReadWrite ds = - bs.Current as Csla.Security.IAuthorizeReadWrite; - if (ds != null) - { - // get the object property name - string propertyName = - binding.BindingMemberInfo.BindingField; - - ApplyReadRules( - control, binding, - ds.CanReadProperty(propertyName)); - ApplyWriteRules( - control, binding, - ds.CanWriteProperty(propertyName)); - } - } - } - } - - private void ApplyReadRules( - Control ctl, Binding binding, - bool canRead) - { - // enable/disable reading of the value - if (canRead) - { - bool couldRead = ctl.Enabled; - ctl.Enabled = true; - binding.Format -= - new ConvertEventHandler(ReturnEmpty); - if (!couldRead) binding.ReadValue(); - } - else - { - ctl.Enabled = false; - binding.Format += - new ConvertEventHandler(ReturnEmpty); - - // clear the value displayed by the control - PropertyInfo propertyInfo = - ctl.GetType().GetProperty(binding.PropertyName, - BindingFlags.FlattenHierarchy | - BindingFlags.Instance | - BindingFlags.Public); - if (propertyInfo != null) - { - propertyInfo.SetValue(ctl, - GetEmptyValue( - Utilities.GetPropertyType( - propertyInfo.PropertyType)), - new object[] { }); - } - } - } - - private void ApplyWriteRules( - Control ctl, Binding binding, - bool canWrite) - { - if (ctl is Label) return; - - // enable/disable writing of the value - PropertyInfo propertyInfo = - ctl.GetType().GetProperty("ReadOnly", - BindingFlags.FlattenHierarchy | - BindingFlags.Instance | - BindingFlags.Public); - if (propertyInfo != null) - { - bool couldWrite = - (!(bool)propertyInfo.GetValue( - ctl, new object[] { })); - propertyInfo.SetValue( - ctl, !canWrite, new object[] { }); - if ((!couldWrite) && (canWrite)) - binding.ReadValue(); - } - else - { - bool couldWrite = ctl.Enabled; - ctl.Enabled = canWrite; - if ((!couldWrite) && (canWrite)) - binding.ReadValue(); - } - } - - private void ReturnEmpty( - object sender, ConvertEventArgs e) - { - e.Value = GetEmptyValue(e.DesiredType); - } - - private object GetEmptyValue(Type desiredType) - { - object result = null; - if (desiredType.IsValueType) - result = Activator.CreateInstance(desiredType); - return result; - } - - private static bool IsPropertyImplemented( - object obj, string propertyName) - { - if (obj.GetType().GetProperty(propertyName, - BindingFlags.FlattenHierarchy | - BindingFlags.Instance | - BindingFlags.Public) != null) - return true; - else - return false; - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/app.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/app.config deleted file mode 100644 index 7eb143a4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Csla/app.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - -
    - - - - - - http://localhost:4804/WSPortalcs/Service.asmx - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddACriteriaClass.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddACriteriaClass.snippet deleted file mode 100644 index 11cf2341..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddACriteriaClass.snippet +++ /dev/null @@ -1,57 +0,0 @@ - - - -
    - Add a criteria class - Rockford Lhotka - Add a nested criteria class to a CSLA .NET business class. - cslacrit -
    - - - - ClassName - Criteria - - - IdField - String - _id - - - IdType - String - Type of the id field - int - - - IdProperty - String - Name of the id property - Id - - - IdParam - String - Parameter name for id value - id - - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddBusinessRegions.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddBusinessRegions.snippet deleted file mode 100644 index e1156177..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddBusinessRegions.snippet +++ /dev/null @@ -1,41 +0,0 @@ - - - -
    - Insert business regions - Rockford Lhotka - Insert CSLA .NET business regions. - cslabiz -
    - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddDataAccessRegion.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddDataAccessRegion.snippet deleted file mode 100644 index ae124145..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddDataAccessRegion.snippet +++ /dev/null @@ -1,66 +0,0 @@ - - - -
    - Insert data access region - Rockford Lhotka - Insert CSLA .NET data access region. - csladata -
    - - - - IdType - Replace with the Id variable type. - int - - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddFactoryMethods.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddFactoryMethods.snippet deleted file mode 100644 index 8396c857..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/AddFactoryMethods.snippet +++ /dev/null @@ -1,59 +0,0 @@ - - - -
    - Define common Csla Factory Methods - Rockford Lhotka - Defines common Csla-style factory methods. - cslafact -
    - - - - ClassName - String - Replace with class name. - BusinessClass - - - CriteriaClassName - String - Replace with the Criteria class name. - Criteria - - - IdName - String - Replace with Id (primary key) variable name. - id - - - IdType - Replace with the Id (primary key) variable type. - int - - - (); -} - -public static $ClassName$ Get$ClassName$($IdType$ $IdName$) -{ - return DataPortal.Fetch<$ClassName$>(new $CriteriaClassName$($IdName$)); -} - -public static void Delete$ClassName$($IdType$ $IdName$) -{ - DataPortal.Delete(new $CriteriaClassName$($IdName$)); -} - -private $ClassName$() -{ /* Require use of factory methods */ } - -#endregion]]> - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaProperty.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaProperty.snippet deleted file mode 100644 index b4a42c0e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaProperty.snippet +++ /dev/null @@ -1,53 +0,0 @@ - - - -
    - Define a Csla Property - Rockford Lhotka - Defines a Csla-style Property with a backing field. - cslaprop -
    - - - - PropertyName - String - Replace with property name. - NewProperty - - - PropertyType - Replace with the property type. - int - - - PrivateVariable - Object - Replace this with the private variable name. - newPropertyValue - - - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaReadonlyProperty.snippet b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaReadonlyProperty.snippet deleted file mode 100644 index 32494ded..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Snippets/DefineACslaReadonlyProperty.snippet +++ /dev/null @@ -1,43 +0,0 @@ - - - -
    - Define a Csla Readonly Property - Rockford Lhotka - Defines a Csla-style readonly Property with a backing field. - cslaroprop -
    - - - - PropertyName - String - Replace with property name. - NewProperty - - - PropertyType - Replace with the property type. - int - - - PrivateVariable - Object - Replace this with the private variable name. - newPropertyValue - - - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/CommandObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/CommandObject.cs deleted file mode 100644 index 84f6d45f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/CommandObject.cs +++ /dev/null @@ -1,73 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace Templates -{ - [Serializable()] - class CommandObject : CommandBase - { - #region Authorization Methods - - public static bool CanExecuteCommand() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Client-side Code - - // TODO: add your own fields and properties - bool _result; - - public bool Result - { - get { return _result; } - } - - private void BeforeServer() - { - // TODO: implement code to run on client - // before server is called - } - - private void AfterServer() - { - // TODO: implement code to run on client - // after server is called - } - - #endregion - - #region Factory Methods - - public static bool Execute() - { - CommandObject cmd = new CommandObject(); - cmd.BeforeServer(); - cmd = DataPortal.Execute(cmd); - cmd.AfterServer(); - return cmd.Result; - } - - private CommandObject() - { /* require use of factory methods */ } - - #endregion - - #region Server-side Code - - protected override void DataPortal_Execute() - { - // TODO: implement code to run on server - // and set result value(s) - _result = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/DynamicRootList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/DynamicRootList.cs deleted file mode 100644 index c1edf24d..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/DynamicRootList.cs +++ /dev/null @@ -1,65 +0,0 @@ -using System; -using System.Data.SqlClient; -using Csla; - -[Serializable()] -public class DynamicRootList : - EditableRootListBase -{ - -#region Authorization Rules - - public static bool CanGetObject() - { - // TODO: customize to check user role - return ApplicationContext.User.IsInRole(""); - } - - public static bool CanEditObject() - { - // TODO: customize to check user role - return ApplicationContext.User.IsInRole(""); - } - -#endregion - -#region Factory Methods - - public static DynamicRootList NewDynamicRootList() - { - return new DynamicRootList(); - } - - public static DynamicRootList GetDynamicRootList() - { - return DataPortal.Fetch(); - } - - private DynamicRootList() - { - // require use of factory methods - } - -#endregion - -#region Data Access - - private void DataPortal_Fetch() - { - - // TODO: load values - RaiseListChangedEvents = false; - using (SqlDataReader dr = null) - { - while (dr.Read()) - { - Add(EditableRoot.GetEditableRoot(dr)); - } - } - RaiseListChangedEvents = true; - - } - -#endregion - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChild.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChild.cs deleted file mode 100644 index 367cc001..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChild.cs +++ /dev/null @@ -1,124 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class EditableChild : BusinessBase - { - #region Business Methods - - // TODO: add your own fields, properties and methods - private int _id; - - public int id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (_id != value) - { - _id = value; - PropertyHasChanged(); - } - } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - // TODO: add validation rules - //ValidationRules.AddRule(null, ""); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // TODO: add authorization rules - //AuthorizationRules.AllowWrite("", ""); - } - - #endregion - - #region Factory Methods - - internal static EditableChild NewEditableChild() - { - // TODO: change to use new keyword if not loading defaults - //return new EditableChild(); - return DataPortal.Create(); - } - - internal static EditableChild GetEditableChild(SqlDataReader dr) - { - return new EditableChild(dr); - } - - private EditableChild() - { - MarkAsChild(); - } - - private EditableChild(SqlDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - #endregion - - #region Data Access - - protected override void DataPortal_Create() - { - // TODO: load default values, or remove method - } - - private void Fetch(SqlDataReader dr) - { - // TODO: load values - MarkOld(); - } - - internal void Insert(object parent) - { - // TODO: insert values - MarkOld(); - } - - internal void Update(object parent) - { - // TODO: update values - MarkOld(); - } - - internal void DeleteSelf() - { - // TODO: delete values - MarkNew(); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChildList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChildList.cs deleted file mode 100644 index abee2013..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableChildList.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class EditableChildList : - BusinessListBase - { - #region Factory Methods - - internal static EditableChildList NewEditableChildList() - { - return new EditableChildList(); - } - - internal static EditableChildList GetEditableChildList( - SqlDataReader dr) - { - return new EditableChildList(dr); - } - - private EditableChildList() - { - MarkAsChild(); - } - - private EditableChildList(SqlDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - #endregion - - #region Data Access - - private void Fetch(SqlDataReader dr) - { - RaiseListChangedEvents = false; - while (dr.Read()) - { - this.Add(EditableChild.GetEditableChild(dr)); - } - RaiseListChangedEvents = true; - } - - internal void Update(object parent) - { - RaiseListChangedEvents = false; - foreach (EditableChild item in DeletedList) - item.DeleteSelf(); - DeletedList.Clear(); - - foreach (EditableChild item in this) - if (item.IsNew) - item.Insert(parent); - else - item.Update(parent); - RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRoot.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRoot.cs deleted file mode 100644 index c90b763a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRoot.cs +++ /dev/null @@ -1,159 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace Templates -{ - [Serializable()] - class EditableRoot : BusinessBase - { - #region Business Methods - - // TODO: add your own fields, properties and methods - private int _id; - - public int id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (_id != value) - { - _id = value; - PropertyHasChanged(); - } - } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - // TODO: add validation rules - //ValidationRules.AddRule(null, ""); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // TODO: add authorization rules - //AuthorizationRules.AllowWrite("", ""); - } - - public static bool CanAddObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanGetObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanEditObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanDeleteObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Factory Methods - - public static EditableRoot NewEditableRoot() - { - return DataPortal.Create(); - } - - public static EditableRoot GetEditableRoot(int id) - { - return DataPortal.Fetch(new Criteria(id)); - } - - public static void DeleteEditableRoot(int id) - { - DataPortal.Delete(new Criteria(id)); - } - - private EditableRoot() - { /* Require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private int _id; - public int Id - { - get { return _id; } - } - public Criteria(int id) - { _id = id; } - } - - protected override void DataPortal_Create() - { - // TODO: load default values - } - - private void DataPortal_Fetch(Criteria criteria) - { - // TODO: load values - } - - protected override void DataPortal_Insert() - { - // TODO: insert values - } - - protected override void DataPortal_Update() - { - // TODO: update values - } - - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new Criteria(_id)); - } - - private void DataPortal_Delete(Criteria criteria) - { - // TODO: delete values - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootList.cs deleted file mode 100644 index 42b0cc34..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootList.cs +++ /dev/null @@ -1,107 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class EditableRootList : - BusinessListBase - { - #region Authorization Rules - - public static bool CanAddObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanGetObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanEditObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanDeleteObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Factory Methods - - public static EditableRootList NewEditableRootList() - { - return new EditableRootList(); - } - - public static EditableRootList GetEditableRootList(int id) - { - return DataPortal.Fetch(new Criteria(id)); - } - - private EditableRootList() - { /* Require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private int _id; - public int Id - { - get { return _id; } - } - public Criteria(int id) - { _id = id; } - } - - private void DataPortal_Fetch(Criteria criteria) - { - RaiseListChangedEvents = false; - // TODO: load values - using (SqlDataReader dr = null) - { - while (dr.Read()) - { - this.Add(EditableChild.GetEditableChild(dr)); - } - } - RaiseListChangedEvents = true; - } - - protected override void DataPortal_Update() - { - RaiseListChangedEvents = false; - foreach (EditableChild item in DeletedList) - item.DeleteSelf(); - DeletedList.Clear(); - - foreach (EditableChild item in this) - if (item.IsNew) - item.Insert(this); - else - item.Update(this); - RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootParent.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootParent.cs deleted file mode 100644 index 90f69dfe..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/EditableRootParent.cs +++ /dev/null @@ -1,178 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class EditableRootParent : BusinessBase - { - #region Business Methods - - private int _id; - private EditableChildList _children = - EditableChildList.NewEditableChildList(); - - public int id - { - get - { - CanReadProperty(true); - return _id; - } - set - { - CanWriteProperty(true); - if (_id != value) - { - _id = value; - PropertyHasChanged(); - } - } - } - - protected override object GetIdValue() - { - return _id; - } - - public EditableChildList Children - { - get { return _children; } - } - - public override bool IsValid - { - get - { - return base.IsValid && _children.IsValid; - } - } - - public override bool IsDirty - { - get - { - return base.IsDirty || _children.IsDirty; - } - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - // TODO: add validation rules - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // TODO: add authorization rules - } - - public static bool CanAddObject() - { - return ApplicationContext.User.IsInRole(""); - } - - public static bool CanGetObject() - { - return ApplicationContext.User.IsInRole(""); - } - - public static bool CanEditObject() - { - return ApplicationContext.User.IsInRole(""); - } - - public static bool CanDeleteObject() - { - return ApplicationContext.User.IsInRole(""); - } - - #endregion - - #region Factory Methods - - public static EditableRootParent NewEditableRootParent() - { - return DataPortal.Create(); - } - - public static EditableRootParent GetEditableRootParent(int id) - { - return DataPortal.Create(new Criteria(id)); - } - - public static void DeleteEditableRootParent(int id) - { - DataPortal.Delete(new Criteria(id)); - } - - private EditableRootParent() - { /* Require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private int _id; - public int Id - { - get { return _id; } - } - public Criteria(int id) - { _id = id; } - } - - protected override void DataPortal_Create() - { - // TODO: load default values - } - - private void DataPortal_Fetch(Criteria criteria) - { - // TODO: load values - using (SqlDataReader dr = null) - { - _children = - EditableChildList.GetEditableChildList(dr); - } - } - - protected override void DataPortal_Insert() - { - // TODO: insert values - _children.Update(this); - } - - protected override void DataPortal_Update() - { - // TODO: update values - _children.Update(this); - } - - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new Criteria(_id)); - } - - private void DataPortal_Delete(Criteria criteria) - { - // TODO: delete values - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/NameValueList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/NameValueList.cs deleted file mode 100644 index efa1f2eb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/NameValueList.cs +++ /dev/null @@ -1,55 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class NameValueList : NameValueListBase - { - #region Factory Methods - - private static NameValueList _list; - - public static NameValueList GetNameValueList() - { - if (_list == null) - _list = DataPortal.Fetch( - new Criteria(typeof(NameValueList))); - return _list; - } - - public static void InvalidateCache() - { - _list = null; - } - - private NameValueList() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - protected override void DataPortal_Fetch(object criteria) - { - RaiseListChangedEvents = false; - IsReadOnly = false; - // TODO: load values - using (SqlDataReader dr = null) - { - while (dr.Read()) - { - Add(new NameValueListBase. - NameValuePair(dr.GetInt32(0), dr.GetString(1))); - } - } - IsReadOnly = true; - RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Properties/AssemblyInfo.cs deleted file mode 100644 index 895462f1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Templates")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Magenic Technologies")] -[assembly: AssemblyProduct("Templates")] -[assembly: AssemblyCopyright("Copyright © Magenic Technologies 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0e5f6790-52c6-495d-87ec-ec3dc6f1ea22")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyChild.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyChild.cs deleted file mode 100644 index 7c955784..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyChild.cs +++ /dev/null @@ -1,63 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class ReadOnlyChild : ReadOnlyBase - { - #region Business Methods - - // TODO: add your own fields, properties and methods - private int _id; - private string _data = string.Empty; - - public int Id - { - get { return _id; } - } - - public string Data - { - get { return _data; } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Factory Methods - - internal static ReadOnlyChild GetReadOnlyChild(SqlDataReader dr) - { - return new ReadOnlyChild(dr); - } - - private ReadOnlyChild() - { /* require use of factory methods */ } - - private ReadOnlyChild(SqlDataReader dr) - { - Fetch(dr); - } - - #endregion - - #region Data Access - - private void Fetch(SqlDataReader dr) - { - // load values - _id = dr.GetInt32(0); - _data = dr.GetString(1); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyList.cs deleted file mode 100644 index 4d9b63f6..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyList.cs +++ /dev/null @@ -1,68 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class ReadOnlyList : - ReadOnlyListBase - { - #region Authorization Rules - - public static bool CanGetObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Factory Methods - - public static ReadOnlyList GetReadOnlyList(string filter) - { - return DataPortal.Fetch(new Criteria(filter)); - } - - private ReadOnlyList() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private string _filter; - public string Filter - { - get { return _filter; } - } - public Criteria(string filter) - { - _filter = filter; - } - } - - private void DataPortal_Fetch(Criteria criteria) - { - RaiseListChangedEvents = false; - IsReadOnly = false; - // TODO: load values - using (SqlDataReader dr = null) - { - while (dr.Read()) - Add(ReadOnlyChild.GetReadOnlyChild(dr)); - } - IsReadOnly = true; - RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyRoot.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyRoot.cs deleted file mode 100644 index 87d62cec..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/ReadOnlyRoot.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using Csla; - -namespace Templates -{ - [Serializable()] - class ReadOnlyRoot : ReadOnlyBase - { - #region Business Methods - - // TODO: add your own fields, properties and methods - private int _id; - - public int Id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // TODO: add authorization rules - //AuthorizationRules.AllowRead("", ""); - } - - public static bool CanGetObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Factory Methods - - public static ReadOnlyRoot GetReadOnlyRoot(int id) - { - return DataPortal.Fetch(new Criteria(id)); - } - - private ReadOnlyRoot() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private int _id; - - public int Id - { - get { return _id; } - } - public Criteria(int id) - { - _id = id; - } - } - - private void DataPortal_Fetch(Criteria criteria) - { - // TODO: load values - _id = criteria.Id; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/SwitchableObject.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/SwitchableObject.cs deleted file mode 100644 index bd141a27..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/SwitchableObject.cs +++ /dev/null @@ -1,211 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; - -namespace Templates -{ - [Serializable()] - class SwitchableObject : BusinessBase - { - #region Business Methods - - // TODO: add your own fields, properties and methods - private int _id; - - public int id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (_id != value) - { - _id = value; - PropertyHasChanged(); - } - } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - // TODO: add validation rules - //ValidationRules.AddRule(null, ""); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // TODO: add authorization rules - //AuthorizationRules.AllowWrite("", ""); - } - - public static bool CanAddObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanGetObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanEditObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - public static bool CanDeleteObject() - { - // TODO: customize to check user role - //return ApplicationContext.User.IsInRole(""); - return true; - } - - #endregion - - #region Factory Methods - - public static SwitchableObject NewSwitchableRoot() - { - return DataPortal.Create( - new RootCriteria()); - } - - internal static SwitchableObject NewSwitchableChild() - { - return DataPortal.Create( - new ChildCriteria()); - } - - public static SwitchableObject GetSwitchableRoot(int id) - { - return DataPortal.Fetch( - new RootCriteria(id)); - } - - internal static SwitchableObject GetSwitchableChild( - SqlDataReader dr) - { - return new SwitchableObject(dr); - } - - public static void DeleteSwitchableObject(int id) - { - DataPortal.Delete(new RootCriteria(id)); - } - - private SwitchableObject() - { /* Require use of factory methods */ } - - private SwitchableObject(SqlDataReader dr) - { - Fetch(dr); - } - - #endregion - - #region Data Access - - [Serializable()] - private class RootCriteria - { - private int _id; - public int Id - { - get { return _id; } - } - public RootCriteria(int id) - { _id = id; } - public RootCriteria() - { } - } - - [Serializable()] - private class ChildCriteria - { } - - private void DataPortal_Create(RootCriteria criteria) - { - DoCreate(); - } - - private void DataPortal_Create(ChildCriteria criteria) - { - MarkAsChild(); - DoCreate(); - } - - private void DoCreate() - { - // TODO: load default values - } - - private void DataPortal_Fetch(RootCriteria criteria) - { - // TODO: create data reader to load values - using (SqlDataReader dr = null) - { - DoFetch(dr); - } - } - - private void Fetch(SqlDataReader dr) - { - MarkAsChild(); - DoFetch(dr); - } - - private void DoFetch(SqlDataReader dr) - { - // TODO: load values - } - - protected override void DataPortal_Insert() - { - // TODO: insert values - } - - protected override void DataPortal_Update() - { - // TODO: update values - } - - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new RootCriteria(_id)); - } - - private void DataPortal_Delete(RootCriteria criteria) - { - // TODO: delete values - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.csproj deleted file mode 100644 index ad746b00..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.csproj +++ /dev/null @@ -1,62 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {614537E1-9171-4052-BA7C-044CE96BBD62} - Library - Properties - Templates - Templates - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\Csla\bin\Debug\Csla.dll - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.sln b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.sln deleted file mode 100644 index 6e5f4984..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/Templates/Templates.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Templates", "Templates.csproj", "{614537E1-9171-4052-BA7C-044CE96BBD62}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {614537E1-9171-4052-BA7C-044CE96BBD62}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {614537E1-9171-4052-BA7C-044CE96BBD62}.Debug|Any CPU.Build.0 = Debug|Any CPU - {614537E1-9171-4052-BA7C-044CE96BBD62}.Release|Any CPU.ActiveCfg = Release|Any CPU - {614537E1-9171-4052-BA7C-044CE96BBD62}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/cslacs.sln b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/cslacs.sln deleted file mode 100644 index 5a2886d1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/cslacs.sln +++ /dev/null @@ -1,29 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Csla", "Csla\Csla.csproj", "{9DA591ED-C570-47AC-8E5D-35B039E07973}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{F19F70D9-566D-4303-B0CD-69327F32FCFF}" - ProjectSection(SolutionItems) = preProject - license.txt = license.txt - readme.txt = readme.txt - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {9DA591ED-C570-47AC-8E5D-35B039E07973}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {9DA591ED-C570-47AC-8E5D-35B039E07973}.Debug|Any CPU.Build.0 = Debug|Any CPU - {9DA591ED-C570-47AC-8E5D-35B039E07973}.Release|Any CPU.ActiveCfg = Release|Any CPU - {9DA591ED-C570-47AC-8E5D-35B039E07973}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(TestCaseManagementSettings) = postSolution - CategoryFile = cslacs.vsmdi - EndGlobalSection -EndGlobal diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/license.txt b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/license.txt deleted file mode 100644 index 3ed9d350..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/license.txt +++ /dev/null @@ -1,99 +0,0 @@ -LICENSE AND WARRANTY - -The CSLA .NET framework is Copyright 2007 by Rockford Lhotka. - -You can use this Software for any noncommercial purpose, including -distributing derivative works. You can use this Software for any commercial -purpose other than you may not use it, in whole or in part, to create a -commercial framework product. - -In short, you can use CSLA .NET and modify it to create other commercial or -business software, you just can't take the framework itself, modify it and -sell it as a product. - -In return, the owner simply requires that you agree: - -This Software License Agreement ("Agreement") is effective -upon your use of CSLA .NET ("Software"). - -1. Ownership. -The CSLA .NET framework is Copyright 2007 by Rockford Lhotka, -Eden Prairie, MN, USA. - -2. Copyright Notice. -You must not remove any copyright notices from the Software source code. - -3. License. -The owner hereby grants a perpetual, non-exclusive, limited license to use -the Software as set forth in this Agreement. - -4. Source Code Distribution. -If you distribute the Software in source code form you must do so only under -this License (i.e. you must include a complete copy of this License with -your distribution). - -5. Binary or Object Distribution. -You may distribute the Software in binary or object form with no requirement -to display copyright notices to the end user. The binary or object form must -retain the copyright notices included in the Software source code. - -6. Restrictions. -You may not sell the Software. If you create a software development framework -based on the Software as a derivative work, you may not sell that derivative -work. This does not restrict the use of the Software for creation of other -types of non-commercial or commercial applications or derivative works. - -7. Disclaimer of Warranty. -The Software comes "as is", with no warranties. None whatsoever. This means -no express, implied, statutory or other warranty, including without -limitation, warranties of merchantability or fitness for a particular -purpose, noninfringement, or the presence or absence of errors, whether or -not discoverable. Also, you must pass this disclaimer on whenever you -distribute the Software. - -8. Liability. -Neither Rockford Lhotka nor any contributor to the Software will be liable -for any of those types of damages known as indirect, special, consequential, -incidental, punitive or exemplary related to the Software or this License, to -the maximum extent the law permits, no matter what legal theory its based -on. Also, you must pass this limitation of liability on whenever you -distribute the Software. - -9. Patents. -If you sue anyone over patents that you think may apply to the Software -for a person's use of the Software, your license to the Software ends -automatically. - -The patent rights, if any, licensed hereunder only apply to the Software, -not to any derivative works you make. - -10. Termination. -Your rights under this License end automatically if you breach it in any way. - -Rockford Lhotka reserves the right to release the Software under different -license terms or to stop distributing the Software at any time. Such an -election will not serve to withdraw this Agreement, and this Agreement will -continue in full force and effect unless terminated as stated above. - -11. Governing Law. -This Agreement shall be construed and enforced in accordance with the laws -of the state of Minnesota, USA. - -12. No Assignment. -Neither this Agreement nor any interest in this Agreement may be assigned -by Licensee without the prior express written approval of Developer. - -13. Final Agreement. -This Agreement terminates and supersedes all prior understandings or -agreements on the subject matter hereof. This Agreement may be modified -only by a further writing that is duly executed by both parties. - -14. Severability. -If any term of this Agreement is held by a court of competent jurisdiction -to be invalid or unenforceable, then this Agreement, including all of the -remaining terms, will remain in full force and effect as if such invalid -or unenforceable term had never been included. - -15. Headings. -Headings used in this Agreement are provided for convenience only and shall -not be used to construe meaning or intent. diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/readme.txt b/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/readme.txt deleted file mode 100644 index 302e8c18..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/OLDcsla20cs/readme.txt +++ /dev/null @@ -1,2 +0,0 @@ -For information on installation, book errata, updates to the framework and so forth, -please visit http://www.lhotka.net/cslanet. diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesHostcs.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesHostcs.csproj deleted file mode 100644 index fe16b439..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesHostcs.csproj +++ /dev/null @@ -1,67 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {B390C88E-66FD-4E84-8149-29852AFA8723} - Library - Properties - EnterpriseServicesHostcs - EnterpriseServicesHostcs - true - eskey.snk - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\csla20cs\Csla\bin\Debug\Csla.dll - - - - - - - - - - - - - - - - - - - - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96} - ProjectTracker.Library - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesPortal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesPortal.cs deleted file mode 100644 index b1f397b7..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesPortal.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.EnterpriseServices; -using System.Runtime.InteropServices; - -namespace EnterpriseServicesHost -{ - [EventTrackingEnabled(true)] - [ComVisible(true)] - public class EnterpriseServicesPortal : - Csla.Server.Hosts.EnterpriseServicesPortal - { - // no code needed - implementation is in the base class - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesProxy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesProxy.cs deleted file mode 100644 index d5cf7350..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesProxy.cs +++ /dev/null @@ -1,16 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; - -namespace EnterpriseServicesHost -{ - public class EnterpriseServicesProxy : - Csla.DataPortalClient.EnterpriseServicesProxy - { - protected override - Csla.Server.Hosts.EnterpriseServicesPortal GetServerObject() - { - return new EnterpriseServicesPortal(); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesSettings.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesSettings.cs deleted file mode 100644 index b0b67fc4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/EnterpriseServicesSettings.cs +++ /dev/null @@ -1,7 +0,0 @@ -using System; -using System.EnterpriseServices; - -[assembly: ApplicationActivation(ActivationOption.Server)] -[assembly: ApplicationName("ProjectTracker20cs Portal")] -[assembly: Description("Project Tracker DataPortal host")] -[assembly: ApplicationAccessControl(false)] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/Properties/AssemblyInfo.cs deleted file mode 100644 index 779fa26e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("EnterpriseServicesHostcs")] -[assembly: AssemblyDescription("Enterprise Services host")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("ProjectTracker")] -[assembly: AssemblyCopyright("Copyright © Rockford Lhotka 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("0baa668e-9d03-48e3-860e-36628322b5ef")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.config deleted file mode 100644 index 593792d5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.config +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.manifest b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.manifest deleted file mode 100644 index 4b971cc5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/application.manifest +++ /dev/null @@ -1,3 +0,0 @@ - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/eskey.snk b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/eskey.snk deleted file mode 100644 index 3b77aa01..00000000 Binary files a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/EnterpriseServicesHostcs/eskey.snk and /dev/null differ diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTData.dbp b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTData.dbp deleted file mode 100644 index 5cbb4758..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTData.dbp +++ /dev/null @@ -1,25 +0,0 @@ -# Microsoft Developer Studio Project File - Database Project -Begin DataProject = "PTData" - MSDTVersion = "80" - DefDBRef = "PTracker.mdf" - Begin DBRefFolder = "Database References" - Begin DBRefNode = "PTracker.mdf" - ConnectStr = "Data Source=.\SQLEXPRESS;AttachDbFilename=""D:\Visual Studio Projects\csla20\ProjectTracker20vb\PTracker.mdf"";Integrated Security=True;Connect Timeout=30;User Instance=True" - Provider = "{91510608-8809-4020-8897-FBA057E22D54}" - Colorizer = 6 - End - Begin DBRefNode = "Security.mdf" - ConnectStr = "Data Source=.\SQLEXPRESS;AttachDbFilename=""D:\Visual Studio Projects\csla20\ProjectTracker20vb\Security.mdf"";Integrated Security=True;Connect Timeout=30;User Instance=True" - Provider = "{91510608-8809-4020-8897-FBA057E22D54}" - Colorizer = 6 - End - End - Begin Folder = "PTracker" - Script = "StoredProcedures.SQL" - Script = "Tables.SQL" - End - Begin Folder = "Security" - Script = "StoredProcedures.SQL" - Script = "Tables.SQL" - End -End diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/StoredProcedures.SQL b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/StoredProcedures.SQL deleted file mode 100644 index 6c66fd28..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/StoredProcedures.SQL +++ /dev/null @@ -1,997 +0,0 @@ -/****** Object: StoredProcedure [dbo].[addAssignment] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addAssignment]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[addAssignment] - -GO - -/****** Object: StoredProcedure [dbo].[updateRole] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateRole]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[updateRole] - -GO - -/****** Object: StoredProcedure [dbo].[addProject] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addProject]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[addProject] - -GO - -/****** Object: StoredProcedure [dbo].[addResource] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addResource]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[addResource] - -GO - -/****** Object: StoredProcedure [dbo].[addRole] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addRole]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[addRole] - -GO - -/****** Object: StoredProcedure [dbo].[deleteAssignment] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteAssignment]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[deleteAssignment] - -GO - -/****** Object: StoredProcedure [dbo].[deleteProject] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteProject]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[deleteProject] - -GO - -/****** Object: StoredProcedure [dbo].[deleteResource] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteResource]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[deleteResource] - -GO - -/****** Object: StoredProcedure [dbo].[deleteRole] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteRole]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[deleteRole] - -GO - -/****** Object: StoredProcedure [dbo].[existsProject] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[existsProject]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[existsProject] - -GO - -/****** Object: StoredProcedure [dbo].[existsResource] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[existsResource]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[existsResource] - -GO - -/****** Object: StoredProcedure [dbo].[getProject] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getProject]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[getProject] - -GO - -/****** Object: StoredProcedure [dbo].[getProjects] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getProjects]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[getProjects] - -GO - -/****** Object: StoredProcedure [dbo].[getResource] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getResource]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[getResource] - -GO - -/****** Object: StoredProcedure [dbo].[getResources] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getResources]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[getResources] - -GO - -/****** Object: StoredProcedure [dbo].[getRoles] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getRoles]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[getRoles] - -GO - -/****** Object: StoredProcedure [dbo].[updateAssignment] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateAssignment]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[updateAssignment] - -GO - -/****** Object: StoredProcedure [dbo].[updateProject] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateProject]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[updateProject] - -GO - -/****** Object: StoredProcedure [dbo].[updateResource] Script Date: 01/18/2006 09:28:48 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateResource]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[updateResource] - -GO - -/****** Object: StoredProcedure [dbo].[addAssignment] Script Date: 01/18/2006 09:28:48 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addAssignment]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE addAssignment - - ( - - @projectId uniqueidentifier, - - @resourceId int, - - @assigned datetime, - - @role int, - - @newLastChanged timestamp output - - ) - -AS - - INSERT INTO Assignments - - (ProjectId,ResourceId,Assigned,Role) - - VALUES - - (@projectId,@resourceId,@assigned,@role) - - - - SELECT @newLastChanged = LastChanged - - FROM Assignments - - WHERE ProjectId=@projectId AND ResourceId=@resourceId - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[updateRole] Script Date: 01/18/2006 09:28:49 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateRole]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[updateRole] - - ( - - @id int, - - @name varchar(50), - - @lastChanged timestamp, - - @newLastChanged timestamp output - - ) - -AS - - UPDATE Roles - - SET - - Name=@name - - WHERE Id=@id - - AND LastChanged=@lastChanged - - IF @@ROWCOUNT = 0 - - RAISERROR(''Row has been edited by another user'', 16, 1) - - - SELECT @newLastChanged = LastChanged - - FROM Roles WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[addProject] Script Date: 01/18/2006 09:28:49 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addProject]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE addProject - - ( - - @id uniqueidentifier, - - @name varchar(50), - - @started datetime, - - @ended datetime, - - @description varchar(MAX), - - @newLastChanged timestamp output - - ) - -AS - - INSERT INTO Projects - - (Id,Name,Started,Ended,Description) - - VALUES - - (@id,@name,@started,@ended,@description) - - - SELECT @newLastChanged = LastChanged - - FROM Projects WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[addResource] Script Date: 01/18/2006 09:28:50 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addResource]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE addResource - - ( - - @lastName varchar(50), - - @firstName varchar(50), - - @newId int output, - - @newLastChanged timestamp output - - ) - -AS - - INSERT INTO Resources - - (LastName,FirstName) - - VALUES - - (@lastName,@firstName) - - - - SELECT @newId = Id, @newLastChanged = LastChanged - - FROM Resources WHERE Id=SCOPE_IDENTITY() - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[addRole] Script Date: 01/18/2006 09:28:51 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[addRole]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[addRole] - - ( - - @id int, - - @name varchar(50), - - @newLastChanged timestamp output - - ) - -AS - - INSERT INTO Roles - - (Id,Name) - - VALUES - - (@id,@name) - - - SELECT @newLastChanged = LastChanged - - FROM Roles WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[deleteAssignment] Script Date: 01/18/2006 09:28:51 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteAssignment]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE deleteAssignment - - ( - - @projectId uniqueidentifier, - - @resourceId int - - ) - -AS - - DELETE Assignments - - WHERE ProjectId=@projectId AND ResourceId=@resourceId - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[deleteProject] Script Date: 01/18/2006 09:28:52 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteProject]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE deleteProject - - ( - - @id uniqueidentifier - - ) - -AS - - DELETE Assignments - - WHERE ProjectId=@id - - - - DELETE Projects - - WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[deleteResource] Script Date: 01/18/2006 09:28:52 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteResource]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE deleteResource - - ( - - @id int - - ) - -AS - - DELETE Assignments - - WHERE ResourceId=@id - - - DELETE Resources - - WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[deleteRole] Script Date: 01/18/2006 09:28:52 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[deleteRole]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[deleteRole] - - ( - - @id int - - ) - -AS - - DELETE Roles - - WHERE Id=@id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[existsProject] Script Date: 01/18/2006 09:28:53 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[existsProject]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE dbo.existsProject - - ( - - @id uniqueidentifier - - ) - -AS - - SELECT COUNT(*) - - FROM Projects WHERE Id=@id - - RETURN - -' - -END - -GO - -/****** Object: StoredProcedure [dbo].[existsResource] Script Date: 01/18/2006 09:28:53 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[existsResource]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE dbo.existsResource - - ( - - @id int - - ) - -AS - - SELECT COUNT(*) - - FROM Resources WHERE Id=@id - - RETURN - - -' - -END - -GO - -/****** Object: StoredProcedure [dbo].[getProject] Script Date: 01/18/2006 09:28:54 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getProject]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE getProject - - ( - - @id uniqueidentifier - - ) - -AS - - SELECT Id,Name,Started,Ended,Description,LastChanged - - FROM Projects - - WHERE Id=@id - - - SELECT ResourceId,LastName,FirstName,Assigned,Role,Assignments.LastChanged AS LastChanged - - FROM Resources,Assignments - - WHERE ProjectId=@id AND ResourceId=Id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[getProjects] Script Date: 01/18/2006 09:28:54 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getProjects]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE getProjects - -AS - - SELECT Id, Name - - FROM Projects - - RETURN ' - -END - -GO - -/****** Object: StoredProcedure [dbo].[getResource] Script Date: 01/18/2006 09:28:54 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getResource]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE getResource - - ( - - @id int - - ) - -AS - - SELECT Id,LastName,FirstName,LastChanged - - FROM Resources - - WHERE Id=@id - - - SELECT ProjectId,Name,Assigned,Role,Assignments.LastChanged AS LastChanged - - FROM Projects,Assignments - - WHERE ResourceId=@id AND ProjectId=Id - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[getResources] Script Date: 01/18/2006 09:28:55 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getResources]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE getResources - -AS - - SELECT Id,LastName,FirstName - - FROM Resources - - RETURN' - -END - -GO - -/****** Object: StoredProcedure [dbo].[getRoles] Script Date: 01/18/2006 09:28:55 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[getRoles]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE [dbo].[getRoles] - -AS - - SELECT Id,Name,LastChanged - - FROM Roles - - RETURN ' - -END - -GO - -/****** Object: StoredProcedure [dbo].[updateAssignment] Script Date: 01/18/2006 09:28:55 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateAssignment]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE updateAssignment - - ( - - @projectId uniqueidentifier, - - @resourceId int, - - @assigned datetime, - - @role int, - - @lastChanged timestamp, - - @newLastChanged timestamp output - - ) - -AS - - UPDATE Assignments - - SET - - Assigned=@assigned, - - Role=@role - - WHERE ProjectId=@projectId AND ResourceId=@resourceId - - AND LastChanged=@lastChanged - - IF @@ROWCOUNT = 0 - - RAISERROR(''Row has been edited by another user'', 16, 1) - - - SELECT @newLastChanged = LastChanged - - FROM Assignments - - WHERE ProjectId=@projectId AND ResourceId=@resourceId - - RETURN - -' - -END - -GO - -/****** Object: StoredProcedure [dbo].[updateProject] Script Date: 01/18/2006 09:28:56 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateProject]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE updateProject - - ( - - @id uniqueidentifier, - - @name varchar(50), - - @started datetime, - - @ended datetime, - - @description varchar(MAX), - - @lastChanged timestamp, - - @newLastChanged timestamp output - - ) - -AS - - UPDATE Projects - - SET - - Name=@name, - - Started=@started, - - Ended=@ended, - - Description=@description - - WHERE Id=@id - - AND LastChanged=@lastChanged - - IF @@ROWCOUNT = 0 - - RAISERROR(''Row has been edited by another user'', 16, 1) - - - SELECT @newLastChanged = LastChanged - - FROM Projects WHERE Id=@id - - RETURN - -' - -END - -GO - -/****** Object: StoredProcedure [dbo].[updateResource] Script Date: 01/18/2006 09:28:57 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[updateResource]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE updateResource - - ( - - @id int, - - @lastName varchar(50), - - @firstName varchar(50), - - @lastChanged timestamp, - - @newLastChanged timestamp output - - ) - -AS - - UPDATE Resources - - SET - - LastName=@lastName, - - FirstName=@firstName - - WHERE Id=@id - - AND LastChanged=@lastChanged - - IF @@ROWCOUNT = 0 - - RAISERROR(''Row has been edited by another user'', 16, 1) - - - - SELECT @newLastChanged = LastChanged - - FROM Resources WHERE Id=@id - - RETURN' - -END - -GO - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/Tables.SQL b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/Tables.SQL deleted file mode 100644 index 6586dd22..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/PTracker/Tables.SQL +++ /dev/null @@ -1,256 +0,0 @@ -IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Projects]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] DROP CONSTRAINT [FK_Assignments_Projects] - -GO - -IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Resources]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] DROP CONSTRAINT [FK_Assignments_Resources] - -GO - -IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Roles]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] DROP CONSTRAINT [FK_Assignments_Roles] - -GO - -/****** Object: Table [dbo].[Assignments] Script Date: 12/06/2005 11:11:16 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Assignments]') AND type in (N'U')) - -DROP TABLE [dbo].[Assignments] - -GO - -/****** Object: Table [dbo].[Roles] Script Date: 12/06/2005 11:11:16 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Roles]') AND type in (N'U')) - -DROP TABLE [dbo].[Roles] - -GO - -/****** Object: Table [dbo].[Projects] Script Date: 12/06/2005 11:11:16 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Projects]') AND type in (N'U')) - -DROP TABLE [dbo].[Projects] - -GO - -/****** Object: Table [dbo].[Resources] Script Date: 12/06/2005 11:11:16 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Resources]') AND type in (N'U')) - -DROP TABLE [dbo].[Resources] - -GO - -/****** Object: Table [dbo].[Assignments] Script Date: 12/06/2005 11:11:16 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Assignments]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Assignments]( - - [ProjectId] [uniqueidentifier] NOT NULL, - - [ResourceId] [int] NOT NULL, - - [Assigned] [datetime] NOT NULL, - - [Role] [int] NOT NULL, - - [LastChanged] [timestamp] NOT NULL, - - CONSTRAINT [PK_Assignments] PRIMARY KEY CLUSTERED - -( - - [ProjectId] ASC, - - [ResourceId] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -/****** Object: Table [dbo].[Roles] Script Date: 12/06/2005 11:11:16 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -SET ANSI_PADDING ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Roles]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Roles]( - - [Id] [int] NOT NULL, - - [Name] [varchar](50) NOT NULL, - - [LastChanged] [timestamp] NOT NULL, - - CONSTRAINT [PK_Roles] PRIMARY KEY CLUSTERED - -( - - [Id] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -SET ANSI_PADDING OFF - -GO - -/****** Object: Table [dbo].[Projects] Script Date: 12/06/2005 11:11:16 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -SET ANSI_PADDING ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Projects]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Projects]( - - [Id] [uniqueidentifier] NOT NULL, - - [Name] [varchar](50) NOT NULL, - - [Started] [datetime] NULL, - - [Ended] [datetime] NULL, - - [Description] [varchar](max) NULL, - - [LastChanged] [timestamp] NOT NULL, - - CONSTRAINT [PK_Projects] PRIMARY KEY CLUSTERED - -( - - [Id] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -SET ANSI_PADDING OFF - -GO - -/****** Object: Table [dbo].[Resources] Script Date: 12/06/2005 11:11:16 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -SET ANSI_PADDING ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Resources]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Resources]( - - [Id] [int] IDENTITY(1,1) NOT NULL, - - [LastName] [varchar](50) NULL, - - [FirstName] [varchar](50) NULL, - - [LastChanged] [timestamp] NOT NULL, - - CONSTRAINT [PK_Resources] PRIMARY KEY CLUSTERED - -( - - [Id] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -SET ANSI_PADDING OFF - -GO - -IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Projects]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] WITH CHECK ADD CONSTRAINT [FK_Assignments_Projects] FOREIGN KEY([ProjectId]) - -REFERENCES [dbo].[Projects] ([Id]) - -GO - -IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Resources]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] WITH CHECK ADD CONSTRAINT [FK_Assignments_Resources] FOREIGN KEY([ResourceId]) - -REFERENCES [dbo].[Resources] ([Id]) - -GO - -IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Assignments_Roles]') AND parent_object_id = OBJECT_ID(N'[dbo].[Assignments]')) - -ALTER TABLE [dbo].[Assignments] WITH CHECK ADD CONSTRAINT [FK_Assignments_Roles] FOREIGN KEY([Role]) - -REFERENCES [dbo].[Roles] ([Id]) - -GO - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/StoredProcedures.SQL b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/StoredProcedures.SQL deleted file mode 100644 index 79325bc5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/StoredProcedures.SQL +++ /dev/null @@ -1,56 +0,0 @@ -/****** Object: StoredProcedure [dbo].[Login] Script Date: 12/06/2005 11:21:14 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Login]') AND type in (N'P', N'PC')) - -DROP PROCEDURE [dbo].[Login] - -GO - -/****** Object: StoredProcedure [dbo].[Login] Script Date: 12/06/2005 11:21:14 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Login]') AND type in (N'P', N'PC')) - -BEGIN - -EXEC dbo.sp_executesql @statement = N'CREATE PROCEDURE Login - - ( - - @user varchar(20), - - @pw varchar(20) - - ) - -AS - - SELECT Username - - FROM Users - - WHERE Username=@user AND Password=@pw; - - - - SELECT R.Role - - FROM Users AS U INNER JOIN Roles AS R ON - - R.UserName = U.UserName - - WHERE U.Username = @user and U.Password = @pw - - RETURN' - -END - -GO - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/Tables.SQL b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/Tables.SQL deleted file mode 100644 index 7590c296..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTData/Security/Tables.SQL +++ /dev/null @@ -1,116 +0,0 @@ -IF EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Roles_Users]') AND parent_object_id = OBJECT_ID(N'[dbo].[Roles]')) - -ALTER TABLE [dbo].[Roles] DROP CONSTRAINT [FK_Roles_Users] - -GO - -/****** Object: Table [dbo].[Roles] Script Date: 12/06/2005 11:21:00 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Roles]') AND type in (N'U')) - -DROP TABLE [dbo].[Roles] - -GO - -/****** Object: Table [dbo].[Users] Script Date: 12/06/2005 11:21:00 ******/ - -IF EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Users]') AND type in (N'U')) - -DROP TABLE [dbo].[Users] - -GO - -/****** Object: Table [dbo].[Roles] Script Date: 12/06/2005 11:21:00 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -SET ANSI_PADDING ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Roles]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Roles]( - - [Username] [varchar](20) NOT NULL, - - [Role] [varchar](20) NOT NULL, - - CONSTRAINT [PK_Roles] PRIMARY KEY CLUSTERED - -( - - [Username] ASC, - - [Role] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -SET ANSI_PADDING OFF - -GO - -/****** Object: Table [dbo].[Users] Script Date: 12/06/2005 11:21:00 ******/ - -SET ANSI_NULLS ON - -GO - -SET QUOTED_IDENTIFIER ON - -GO - -SET ANSI_PADDING ON - -GO - -IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[Users]') AND type in (N'U')) - -BEGIN - -CREATE TABLE [dbo].[Users]( - - [Username] [varchar](20) NOT NULL, - - [Password] [varchar](20) NULL, - - CONSTRAINT [PK_Users] PRIMARY KEY CLUSTERED - -( - - [Username] ASC - -)WITH (IGNORE_DUP_KEY = OFF) ON [PRIMARY] - -) ON [PRIMARY] - -END - -GO - -SET ANSI_PADDING OFF - -GO - -IF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(N'[dbo].[FK_Roles_Users]') AND parent_object_id = OBJECT_ID(N'[dbo].[Roles]')) - -ALTER TABLE [dbo].[Roles] WITH CHECK ADD CONSTRAINT [FK_Roles_Users] FOREIGN KEY([Username]) - -REFERENCES [dbo].[Users] ([Username]) - -GO - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.Designer.cs deleted file mode 100644 index c5e6803d..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.Designer.cs +++ /dev/null @@ -1,667 +0,0 @@ -namespace PTServiceClient -{ - partial class MainForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.Label DescriptionLabel; - System.Windows.Forms.Label EndedLabel; - System.Windows.Forms.Label StartedLabel; - System.Windows.Forms.Label NameLabel; - System.Windows.Forms.Label IdLabel; - System.Windows.Forms.Label NameLabel3; - System.Windows.Forms.Label IdLabel4; - System.Windows.Forms.Label NameLabel1; - System.Windows.Forms.Label IdLabel2; - this.Label3 = new System.Windows.Forms.Label(); - this.Label2 = new System.Windows.Forms.Label(); - this.Label1 = new System.Windows.Forms.Label(); - this.Label5 = new System.Windows.Forms.Label(); - this.Label4 = new System.Windows.Forms.Label(); - this.NameLabel2 = new System.Windows.Forms.Label(); - this.ProjectDataBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.AssignToProjectButton = new System.Windows.Forms.Button(); - this.NameLabel4 = new System.Windows.Forms.Label(); - this.ResourceDataBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.GroupBox1 = new System.Windows.Forms.GroupBox(); - this.ProjectResourcesDataGridView = new System.Windows.Forms.DataGridView(); - this.RoleDataBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.ProjectResourcesBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.ProjectDetailBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.ClearProjectButton = new System.Windows.Forms.Button(); - this.SaveProjectButton = new System.Windows.Forms.Button(); - this.DescriptionTextBox = new System.Windows.Forms.TextBox(); - this.EndedTextBox = new System.Windows.Forms.TextBox(); - this.StartedTextBox = new System.Windows.Forms.TextBox(); - this.NameTextBox = new System.Windows.Forms.TextBox(); - this.IdLabel1 = new System.Windows.Forms.Label(); - this.ResourceIdLabel = new System.Windows.Forms.Label(); - this.ProjectIdLabel = new System.Windows.Forms.Label(); - this.GroupBox2 = new System.Windows.Forms.GroupBox(); - this.RoleInfoDataGridView = new System.Windows.Forms.DataGridView(); - this.idDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.nameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.ProjectDataDataGridView = new System.Windows.Forms.DataGridView(); - this.DataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.ResourceDataDataGridView = new System.Windows.Forms.DataGridView(); - this.DataGridViewTextBoxColumn6 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn7 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.label6 = new System.Windows.Forms.Label(); - this.usernameTextBox = new System.Windows.Forms.TextBox(); - this.label7 = new System.Windows.Forms.Label(); - this.passwordTextBox = new System.Windows.Forms.TextBox(); - this.DataGridViewTextBoxColumn4 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn3 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn5 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn10 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn11 = new System.Windows.Forms.DataGridViewComboBoxColumn(); - DescriptionLabel = new System.Windows.Forms.Label(); - EndedLabel = new System.Windows.Forms.Label(); - StartedLabel = new System.Windows.Forms.Label(); - NameLabel = new System.Windows.Forms.Label(); - IdLabel = new System.Windows.Forms.Label(); - NameLabel3 = new System.Windows.Forms.Label(); - IdLabel4 = new System.Windows.Forms.Label(); - NameLabel1 = new System.Windows.Forms.Label(); - IdLabel2 = new System.Windows.Forms.Label(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDataBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceDataBindingSource)).BeginInit(); - this.GroupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectResourcesDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.RoleDataBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectResourcesBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDetailBindingSource)).BeginInit(); - this.GroupBox2.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.RoleInfoDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDataDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceDataDataGridView)).BeginInit(); - this.SuspendLayout(); - // - // DescriptionLabel - // - DescriptionLabel.AutoSize = true; - DescriptionLabel.Location = new System.Drawing.Point(7, 148); - DescriptionLabel.Name = "DescriptionLabel"; - DescriptionLabel.Size = new System.Drawing.Size(63, 13); - DescriptionLabel.TabIndex = 8; - DescriptionLabel.Text = "Description:"; - // - // EndedLabel - // - EndedLabel.AutoSize = true; - EndedLabel.Location = new System.Drawing.Point(7, 117); - EndedLabel.Name = "EndedLabel"; - EndedLabel.Size = new System.Drawing.Size(41, 13); - EndedLabel.TabIndex = 6; - EndedLabel.Text = "Ended:"; - // - // StartedLabel - // - StartedLabel.AutoSize = true; - StartedLabel.Location = new System.Drawing.Point(7, 88); - StartedLabel.Name = "StartedLabel"; - StartedLabel.Size = new System.Drawing.Size(44, 13); - StartedLabel.TabIndex = 4; - StartedLabel.Text = "Started:"; - // - // NameLabel - // - NameLabel.AutoSize = true; - NameLabel.Location = new System.Drawing.Point(7, 59); - NameLabel.Name = "NameLabel"; - NameLabel.Size = new System.Drawing.Size(38, 13); - NameLabel.TabIndex = 2; - NameLabel.Text = "Name:"; - // - // IdLabel - // - IdLabel.AutoSize = true; - IdLabel.Location = new System.Drawing.Point(7, 30); - IdLabel.Name = "IdLabel"; - IdLabel.Size = new System.Drawing.Size(19, 13); - IdLabel.TabIndex = 0; - IdLabel.Text = "Id:"; - // - // NameLabel3 - // - NameLabel3.AutoSize = true; - NameLabel3.Location = new System.Drawing.Point(9, 153); - NameLabel3.Name = "NameLabel3"; - NameLabel3.Size = new System.Drawing.Size(38, 13); - NameLabel3.TabIndex = 7; - NameLabel3.Text = "Name:"; - // - // IdLabel4 - // - IdLabel4.AutoSize = true; - IdLabel4.Location = new System.Drawing.Point(9, 130); - IdLabel4.Name = "IdLabel4"; - IdLabel4.Size = new System.Drawing.Size(19, 13); - IdLabel4.TabIndex = 5; - IdLabel4.Text = "Id:"; - // - // NameLabel1 - // - NameLabel1.AutoSize = true; - NameLabel1.Location = new System.Drawing.Point(7, 68); - NameLabel1.Name = "NameLabel1"; - NameLabel1.Size = new System.Drawing.Size(38, 13); - NameLabel1.TabIndex = 2; - NameLabel1.Text = "Name:"; - // - // IdLabel2 - // - IdLabel2.AutoSize = true; - IdLabel2.Location = new System.Drawing.Point(9, 44); - IdLabel2.Name = "IdLabel2"; - IdLabel2.Size = new System.Drawing.Size(19, 13); - IdLabel2.TabIndex = 0; - IdLabel2.Text = "Id:"; - // - // Label3 - // - this.Label3.AutoSize = true; - this.Label3.Location = new System.Drawing.Point(596, 93); - this.Label3.Name = "Label3"; - this.Label3.Size = new System.Drawing.Size(34, 13); - this.Label3.TabIndex = 13; - this.Label3.Text = "Roles"; - // - // Label2 - // - this.Label2.AutoSize = true; - this.Label2.Location = new System.Drawing.Point(293, 93); - this.Label2.Name = "Label2"; - this.Label2.Size = new System.Drawing.Size(204, 13); - this.Label2.TabIndex = 12; - this.Label2.Text = "Resources (double-click to change name)"; - // - // Label1 - // - this.Label1.AutoSize = true; - this.Label1.Location = new System.Drawing.Point(10, 93); - this.Label1.Name = "Label1"; - this.Label1.Size = new System.Drawing.Size(45, 13); - this.Label1.TabIndex = 11; - this.Label1.Text = "Projects"; - // - // Label5 - // - this.Label5.AutoSize = true; - this.Label5.Location = new System.Drawing.Point(9, 109); - this.Label5.Name = "Label5"; - this.Label5.Size = new System.Drawing.Size(56, 13); - this.Label5.TabIndex = 4; - this.Label5.Text = "Resource:"; - // - // Label4 - // - this.Label4.AutoSize = true; - this.Label4.Location = new System.Drawing.Point(9, 25); - this.Label4.Name = "Label4"; - this.Label4.Size = new System.Drawing.Size(43, 13); - this.Label4.TabIndex = 4; - this.Label4.Text = "Project:"; - // - // NameLabel2 - // - this.NameLabel2.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDataBindingSource, "Name", true)); - this.NameLabel2.Location = new System.Drawing.Point(53, 68); - this.NameLabel2.Name = "NameLabel2"; - this.NameLabel2.Size = new System.Drawing.Size(227, 23); - this.NameLabel2.TabIndex = 3; - // - // ProjectDataBindingSource - // - this.ProjectDataBindingSource.DataSource = typeof(PTServiceClient.PTService.ProjectData); - // - // AssignToProjectButton - // - this.AssignToProjectButton.Location = new System.Drawing.Point(196, 205); - this.AssignToProjectButton.Name = "AssignToProjectButton"; - this.AssignToProjectButton.Size = new System.Drawing.Size(75, 23); - this.AssignToProjectButton.TabIndex = 9; - this.AssignToProjectButton.Text = "Assign"; - this.AssignToProjectButton.UseVisualStyleBackColor = true; - this.AssignToProjectButton.Click += new System.EventHandler(this.AssignToProjectButton_Click); - // - // NameLabel4 - // - this.NameLabel4.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ResourceDataBindingSource, "Name", true)); - this.NameLabel4.Location = new System.Drawing.Point(53, 153); - this.NameLabel4.Name = "NameLabel4"; - this.NameLabel4.Size = new System.Drawing.Size(218, 23); - this.NameLabel4.TabIndex = 8; - // - // ResourceDataBindingSource - // - this.ResourceDataBindingSource.DataSource = typeof(PTServiceClient.PTService.ResourceData); - // - // GroupBox1 - // - this.GroupBox1.Controls.Add(this.ProjectResourcesDataGridView); - this.GroupBox1.Controls.Add(this.ClearProjectButton); - this.GroupBox1.Controls.Add(this.SaveProjectButton); - this.GroupBox1.Controls.Add(DescriptionLabel); - this.GroupBox1.Controls.Add(this.DescriptionTextBox); - this.GroupBox1.Controls.Add(EndedLabel); - this.GroupBox1.Controls.Add(this.EndedTextBox); - this.GroupBox1.Controls.Add(StartedLabel); - this.GroupBox1.Controls.Add(this.StartedTextBox); - this.GroupBox1.Controls.Add(NameLabel); - this.GroupBox1.Controls.Add(this.NameTextBox); - this.GroupBox1.Controls.Add(IdLabel); - this.GroupBox1.Controls.Add(this.IdLabel1); - this.GroupBox1.Location = new System.Drawing.Point(10, 335); - this.GroupBox1.Name = "GroupBox1"; - this.GroupBox1.Size = new System.Drawing.Size(583, 282); - this.GroupBox1.TabIndex = 14; - this.GroupBox1.TabStop = false; - this.GroupBox1.Text = "Project"; - // - // ProjectResourcesDataGridView - // - this.ProjectResourcesDataGridView.AllowUserToAddRows = false; - this.ProjectResourcesDataGridView.AllowUserToDeleteRows = false; - this.ProjectResourcesDataGridView.AutoGenerateColumns = false; - this.ProjectResourcesDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.DataGridViewTextBoxColumn4, - this.DataGridViewTextBoxColumn3, - this.DataGridViewTextBoxColumn5, - this.DataGridViewTextBoxColumn10, - this.DataGridViewTextBoxColumn11}); - this.ProjectResourcesDataGridView.DataSource = this.ProjectResourcesBindingSource; - this.ProjectResourcesDataGridView.Location = new System.Drawing.Point(257, 56); - this.ProjectResourcesDataGridView.MultiSelect = false; - this.ProjectResourcesDataGridView.Name = "ProjectResourcesDataGridView"; - this.ProjectResourcesDataGridView.ReadOnly = true; - this.ProjectResourcesDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.ProjectResourcesDataGridView.Size = new System.Drawing.Size(313, 220); - this.ProjectResourcesDataGridView.TabIndex = 12; - // - // RoleDataBindingSource - // - this.RoleDataBindingSource.DataSource = typeof(PTServiceClient.PTService.RoleInfo); - // - // ProjectResourcesBindingSource - // - this.ProjectResourcesBindingSource.DataMember = "ProjectResources"; - this.ProjectResourcesBindingSource.DataSource = this.ProjectDetailBindingSource; - // - // ProjectDetailBindingSource - // - this.ProjectDetailBindingSource.DataSource = typeof(PTServiceClient.PTService.ProjectData); - // - // ClearProjectButton - // - this.ClearProjectButton.Location = new System.Drawing.Point(95, 253); - this.ClearProjectButton.Name = "ClearProjectButton"; - this.ClearProjectButton.Size = new System.Drawing.Size(75, 23); - this.ClearProjectButton.TabIndex = 11; - this.ClearProjectButton.Text = "Clear"; - this.ClearProjectButton.UseVisualStyleBackColor = true; - this.ClearProjectButton.Click += new System.EventHandler(this.ClearProjectButton_Click); - // - // SaveProjectButton - // - this.SaveProjectButton.Location = new System.Drawing.Point(176, 253); - this.SaveProjectButton.Name = "SaveProjectButton"; - this.SaveProjectButton.Size = new System.Drawing.Size(75, 23); - this.SaveProjectButton.TabIndex = 10; - this.SaveProjectButton.Text = "Save"; - this.SaveProjectButton.UseVisualStyleBackColor = true; - this.SaveProjectButton.Click += new System.EventHandler(this.SaveProjectButton_Click); - // - // DescriptionTextBox - // - this.DescriptionTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDetailBindingSource, "Description", true)); - this.DescriptionTextBox.Location = new System.Drawing.Point(76, 145); - this.DescriptionTextBox.Multiline = true; - this.DescriptionTextBox.Name = "DescriptionTextBox"; - this.DescriptionTextBox.ScrollBars = System.Windows.Forms.ScrollBars.Both; - this.DescriptionTextBox.Size = new System.Drawing.Size(175, 102); - this.DescriptionTextBox.TabIndex = 9; - // - // EndedTextBox - // - this.EndedTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDetailBindingSource, "Ended", true)); - this.EndedTextBox.Location = new System.Drawing.Point(76, 114); - this.EndedTextBox.Name = "EndedTextBox"; - this.EndedTextBox.Size = new System.Drawing.Size(175, 20); - this.EndedTextBox.TabIndex = 7; - // - // StartedTextBox - // - this.StartedTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDetailBindingSource, "Started", true)); - this.StartedTextBox.Location = new System.Drawing.Point(76, 85); - this.StartedTextBox.Name = "StartedTextBox"; - this.StartedTextBox.Size = new System.Drawing.Size(175, 20); - this.StartedTextBox.TabIndex = 5; - // - // NameTextBox - // - this.NameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDetailBindingSource, "Name", true)); - this.NameTextBox.Location = new System.Drawing.Point(76, 56); - this.NameTextBox.Name = "NameTextBox"; - this.NameTextBox.Size = new System.Drawing.Size(175, 20); - this.NameTextBox.TabIndex = 3; - // - // IdLabel1 - // - this.IdLabel1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDetailBindingSource, "Id", true)); - this.IdLabel1.Location = new System.Drawing.Point(73, 30); - this.IdLabel1.Name = "IdLabel1"; - this.IdLabel1.Size = new System.Drawing.Size(175, 23); - this.IdLabel1.TabIndex = 1; - // - // ResourceIdLabel - // - this.ResourceIdLabel.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ResourceDataBindingSource, "Id", true)); - this.ResourceIdLabel.Location = new System.Drawing.Point(53, 130); - this.ResourceIdLabel.Name = "ResourceIdLabel"; - this.ResourceIdLabel.Size = new System.Drawing.Size(218, 23); - this.ResourceIdLabel.TabIndex = 6; - // - // ProjectIdLabel - // - this.ProjectIdLabel.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ProjectDataBindingSource, "Id", true)); - this.ProjectIdLabel.Location = new System.Drawing.Point(53, 44); - this.ProjectIdLabel.Name = "ProjectIdLabel"; - this.ProjectIdLabel.Size = new System.Drawing.Size(227, 23); - this.ProjectIdLabel.TabIndex = 1; - // - // GroupBox2 - // - this.GroupBox2.Controls.Add(this.AssignToProjectButton); - this.GroupBox2.Controls.Add(NameLabel3); - this.GroupBox2.Controls.Add(this.NameLabel4); - this.GroupBox2.Controls.Add(IdLabel4); - this.GroupBox2.Controls.Add(this.ResourceIdLabel); - this.GroupBox2.Controls.Add(this.Label5); - this.GroupBox2.Controls.Add(this.Label4); - this.GroupBox2.Controls.Add(NameLabel1); - this.GroupBox2.Controls.Add(this.NameLabel2); - this.GroupBox2.Controls.Add(IdLabel2); - this.GroupBox2.Controls.Add(this.ProjectIdLabel); - this.GroupBox2.Location = new System.Drawing.Point(600, 335); - this.GroupBox2.Name = "GroupBox2"; - this.GroupBox2.Size = new System.Drawing.Size(300, 282); - this.GroupBox2.TabIndex = 15; - this.GroupBox2.TabStop = false; - this.GroupBox2.Text = "Add assignment"; - // - // RoleInfoDataGridView - // - this.RoleInfoDataGridView.AutoGenerateColumns = false; - this.RoleInfoDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.idDataGridViewTextBoxColumn, - this.nameDataGridViewTextBoxColumn}); - this.RoleInfoDataGridView.DataSource = this.RoleDataBindingSource; - this.RoleInfoDataGridView.Location = new System.Drawing.Point(599, 109); - this.RoleInfoDataGridView.MultiSelect = false; - this.RoleInfoDataGridView.Name = "RoleInfoDataGridView"; - this.RoleInfoDataGridView.ReadOnly = true; - this.RoleInfoDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.RoleInfoDataGridView.Size = new System.Drawing.Size(300, 220); - this.RoleInfoDataGridView.TabIndex = 10; - // - // idDataGridViewTextBoxColumn - // - this.idDataGridViewTextBoxColumn.DataPropertyName = "Id"; - this.idDataGridViewTextBoxColumn.HeaderText = "Id"; - this.idDataGridViewTextBoxColumn.Name = "idDataGridViewTextBoxColumn"; - this.idDataGridViewTextBoxColumn.ReadOnly = true; - // - // nameDataGridViewTextBoxColumn - // - this.nameDataGridViewTextBoxColumn.DataPropertyName = "Name"; - this.nameDataGridViewTextBoxColumn.HeaderText = "Name"; - this.nameDataGridViewTextBoxColumn.Name = "nameDataGridViewTextBoxColumn"; - this.nameDataGridViewTextBoxColumn.ReadOnly = true; - // - // ProjectDataDataGridView - // - this.ProjectDataDataGridView.AutoGenerateColumns = false; - this.ProjectDataDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.DataGridViewTextBoxColumn1, - this.DataGridViewTextBoxColumn2}); - this.ProjectDataDataGridView.DataSource = this.ProjectDataBindingSource; - this.ProjectDataDataGridView.Location = new System.Drawing.Point(10, 109); - this.ProjectDataDataGridView.MultiSelect = false; - this.ProjectDataDataGridView.Name = "ProjectDataDataGridView"; - this.ProjectDataDataGridView.ReadOnly = true; - this.ProjectDataDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.ProjectDataDataGridView.Size = new System.Drawing.Size(277, 220); - this.ProjectDataDataGridView.TabIndex = 8; - this.ProjectDataDataGridView.SelectionChanged += new System.EventHandler(this.ProjectDataDataGridView_SelectionChanged); - // - // DataGridViewTextBoxColumn1 - // - this.DataGridViewTextBoxColumn1.DataPropertyName = "Id"; - this.DataGridViewTextBoxColumn1.HeaderText = "Id"; - this.DataGridViewTextBoxColumn1.Name = "DataGridViewTextBoxColumn1"; - this.DataGridViewTextBoxColumn1.ReadOnly = true; - // - // DataGridViewTextBoxColumn2 - // - this.DataGridViewTextBoxColumn2.DataPropertyName = "Name"; - this.DataGridViewTextBoxColumn2.HeaderText = "Name"; - this.DataGridViewTextBoxColumn2.Name = "DataGridViewTextBoxColumn2"; - this.DataGridViewTextBoxColumn2.ReadOnly = true; - // - // ResourceDataDataGridView - // - this.ResourceDataDataGridView.AutoGenerateColumns = false; - this.ResourceDataDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.DataGridViewTextBoxColumn6, - this.DataGridViewTextBoxColumn7}); - this.ResourceDataDataGridView.DataSource = this.ResourceDataBindingSource; - this.ResourceDataDataGridView.Location = new System.Drawing.Point(293, 109); - this.ResourceDataDataGridView.MultiSelect = false; - this.ResourceDataDataGridView.Name = "ResourceDataDataGridView"; - this.ResourceDataDataGridView.ReadOnly = true; - this.ResourceDataDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.ResourceDataDataGridView.Size = new System.Drawing.Size(300, 220); - this.ResourceDataDataGridView.TabIndex = 9; - this.ResourceDataDataGridView.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.ResourceDataDataGridView_CellDoubleClick); - // - // DataGridViewTextBoxColumn6 - // - this.DataGridViewTextBoxColumn6.DataPropertyName = "Id"; - this.DataGridViewTextBoxColumn6.HeaderText = "Id"; - this.DataGridViewTextBoxColumn6.Name = "DataGridViewTextBoxColumn6"; - this.DataGridViewTextBoxColumn6.ReadOnly = true; - // - // DataGridViewTextBoxColumn7 - // - this.DataGridViewTextBoxColumn7.DataPropertyName = "Name"; - this.DataGridViewTextBoxColumn7.HeaderText = "Name"; - this.DataGridViewTextBoxColumn7.Name = "DataGridViewTextBoxColumn7"; - this.DataGridViewTextBoxColumn7.ReadOnly = true; - // - // label6 - // - this.label6.AutoSize = true; - this.label6.Location = new System.Drawing.Point(10, 21); - this.label6.Name = "label6"; - this.label6.Size = new System.Drawing.Size(58, 13); - this.label6.TabIndex = 16; - this.label6.Text = "Username:"; - // - // usernameTextBox - // - this.usernameTextBox.Location = new System.Drawing.Point(70, 18); - this.usernameTextBox.Name = "usernameTextBox"; - this.usernameTextBox.Size = new System.Drawing.Size(127, 20); - this.usernameTextBox.TabIndex = 17; - // - // label7 - // - this.label7.AutoSize = true; - this.label7.Location = new System.Drawing.Point(10, 47); - this.label7.Name = "label7"; - this.label7.Size = new System.Drawing.Size(56, 13); - this.label7.TabIndex = 18; - this.label7.Text = "Password:"; - // - // passwordTextBox - // - this.passwordTextBox.Location = new System.Drawing.Point(70, 44); - this.passwordTextBox.Name = "passwordTextBox"; - this.passwordTextBox.PasswordChar = '*'; - this.passwordTextBox.Size = new System.Drawing.Size(127, 20); - this.passwordTextBox.TabIndex = 19; - // - // DataGridViewTextBoxColumn4 - // - this.DataGridViewTextBoxColumn4.DataPropertyName = "ResourceId"; - this.DataGridViewTextBoxColumn4.HeaderText = "ResourceId"; - this.DataGridViewTextBoxColumn4.Name = "DataGridViewTextBoxColumn4"; - this.DataGridViewTextBoxColumn4.ReadOnly = true; - this.DataGridViewTextBoxColumn4.Visible = false; - // - // DataGridViewTextBoxColumn3 - // - this.DataGridViewTextBoxColumn3.DataPropertyName = "LastName"; - this.DataGridViewTextBoxColumn3.HeaderText = "LastName"; - this.DataGridViewTextBoxColumn3.Name = "DataGridViewTextBoxColumn3"; - this.DataGridViewTextBoxColumn3.ReadOnly = true; - // - // DataGridViewTextBoxColumn5 - // - this.DataGridViewTextBoxColumn5.DataPropertyName = "FirstName"; - this.DataGridViewTextBoxColumn5.HeaderText = "FirstName"; - this.DataGridViewTextBoxColumn5.Name = "DataGridViewTextBoxColumn5"; - this.DataGridViewTextBoxColumn5.ReadOnly = true; - // - // DataGridViewTextBoxColumn10 - // - this.DataGridViewTextBoxColumn10.DataPropertyName = "Assigned"; - this.DataGridViewTextBoxColumn10.HeaderText = "Assigned"; - this.DataGridViewTextBoxColumn10.Name = "DataGridViewTextBoxColumn10"; - this.DataGridViewTextBoxColumn10.ReadOnly = true; - // - // DataGridViewTextBoxColumn11 - // - this.DataGridViewTextBoxColumn11.DataPropertyName = "Role"; - this.DataGridViewTextBoxColumn11.DataSource = this.RoleDataBindingSource; - this.DataGridViewTextBoxColumn11.DisplayMember = "Name"; - this.DataGridViewTextBoxColumn11.HeaderText = "Role"; - this.DataGridViewTextBoxColumn11.Name = "DataGridViewTextBoxColumn11"; - this.DataGridViewTextBoxColumn11.ReadOnly = true; - this.DataGridViewTextBoxColumn11.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.DataGridViewTextBoxColumn11.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.DataGridViewTextBoxColumn11.ValueMember = "Id"; - // - // MainForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(914, 638); - this.Controls.Add(this.passwordTextBox); - this.Controls.Add(this.label7); - this.Controls.Add(this.usernameTextBox); - this.Controls.Add(this.label6); - this.Controls.Add(this.Label3); - this.Controls.Add(this.Label2); - this.Controls.Add(this.Label1); - this.Controls.Add(this.GroupBox1); - this.Controls.Add(this.GroupBox2); - this.Controls.Add(this.RoleInfoDataGridView); - this.Controls.Add(this.ProjectDataDataGridView); - this.Controls.Add(this.ResourceDataDataGridView); - this.Name = "MainForm"; - this.Text = "Project Tracker Client"; - this.Load += new System.EventHandler(this.MainForm_Load); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDataBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceDataBindingSource)).EndInit(); - this.GroupBox1.ResumeLayout(false); - this.GroupBox1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectResourcesDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.RoleDataBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectResourcesBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDetailBindingSource)).EndInit(); - this.GroupBox2.ResumeLayout(false); - this.GroupBox2.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.RoleInfoDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ProjectDataDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceDataDataGridView)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Label Label3; - internal System.Windows.Forms.Label Label2; - internal System.Windows.Forms.Label Label1; - internal System.Windows.Forms.BindingSource RoleDataBindingSource; - internal System.Windows.Forms.BindingSource ProjectResourcesBindingSource; - internal System.Windows.Forms.BindingSource ProjectDetailBindingSource; - internal System.Windows.Forms.Label Label5; - internal System.Windows.Forms.Label Label4; - internal System.Windows.Forms.Label NameLabel2; - internal System.Windows.Forms.BindingSource ProjectDataBindingSource; - internal System.Windows.Forms.Button AssignToProjectButton; - internal System.Windows.Forms.Label NameLabel4; - internal System.Windows.Forms.BindingSource ResourceDataBindingSource; - internal System.Windows.Forms.GroupBox GroupBox1; - internal System.Windows.Forms.DataGridView ProjectResourcesDataGridView; - internal System.Windows.Forms.Button ClearProjectButton; - internal System.Windows.Forms.Button SaveProjectButton; - internal System.Windows.Forms.TextBox DescriptionTextBox; - internal System.Windows.Forms.TextBox EndedTextBox; - internal System.Windows.Forms.TextBox StartedTextBox; - internal System.Windows.Forms.TextBox NameTextBox; - internal System.Windows.Forms.Label IdLabel1; - internal System.Windows.Forms.Label ResourceIdLabel; - internal System.Windows.Forms.Label ProjectIdLabel; - internal System.Windows.Forms.GroupBox GroupBox2; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn1; - internal System.Windows.Forms.DataGridView RoleInfoDataGridView; - internal System.Windows.Forms.DataGridView ProjectDataDataGridView; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn2; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn6; - internal System.Windows.Forms.DataGridView ResourceDataDataGridView; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn7; - private System.Windows.Forms.DataGridViewTextBoxColumn idDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn nameDataGridViewTextBoxColumn; - private System.Windows.Forms.Label label6; - private System.Windows.Forms.TextBox usernameTextBox; - private System.Windows.Forms.Label label7; - private System.Windows.Forms.TextBox passwordTextBox; - private System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn4; - private System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn3; - private System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn5; - private System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn10; - private System.Windows.Forms.DataGridViewComboBoxColumn DataGridViewTextBoxColumn11; - } -} - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.cs deleted file mode 100644 index c3a28790..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.cs +++ /dev/null @@ -1,151 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using PTServiceClient; - -namespace PTServiceClient -{ - public partial class MainForm : Form - { - public MainForm() - { - InitializeComponent(); - } - - private void MainForm_Load(object sender, EventArgs e) - { - using (PTService.PTService svc = new PTService.PTService()) - { - this.ProjectDataBindingSource.DataSource = - svc.GetProjectList(); - this.ResourceDataBindingSource.DataSource = - svc.GetResourceList(); - this.RoleDataBindingSource.DataSource = - svc.GetRoles(); - } - } - - private void ProjectDataDataGridView_SelectionChanged(object sender, EventArgs e) - { - if (this.ProjectDataDataGridView.SelectedRows.Count > 0) - { - string projectId = this.ProjectDataDataGridView.SelectedRows[0].Cells[0].Value.ToString(); - if (projectId != this.IdLabel1.Text) - { - using (PTService.PTService svc = new PTService.PTService()) - { - PTService.ProjectRequest request = new PTServiceClient.PTService.ProjectRequest(); - request.Id = new Guid(projectId); - this.ProjectDetailBindingSource.DataSource = svc.GetProject(request); - } - } - } - } - - private void SaveProjectButton_Click(object sender, EventArgs e) - { - using (PTService.PTService svc = new PTService.PTService()) - { - SetCredentials(svc); - Guid id = new Guid(this.IdLabel1.Text); - if (Guid.Empty.Equals(id)) - { - // adding - this.ProjectDetailBindingSource.DataSource = - svc.AddProject( - this.NameTextBox.Text, - this.StartedTextBox.Text, - this.EndedTextBox.Text, - this.DescriptionTextBox.Text); - } - else - { - // updating - this.ProjectDetailBindingSource.DataSource = - svc.EditProject(new Guid(this.IdLabel1.Text), - this.NameTextBox.Text, - this.StartedTextBox.Text, - this.EndedTextBox.Text, - this.DescriptionTextBox.Text); - } - // refresh project list - this.ProjectDataBindingSource.DataSource = svc.GetProjectList(); - } - } - - private void ClearProjectButton_Click(object sender, EventArgs e) - { - this.ProjectDetailBindingSource.Clear(); - this.ProjectDetailBindingSource.AddNew(); - } - - private void AssignToProjectButton_Click( - object sender, EventArgs e) - { - if (this.ResourceIdLabel.Text.Trim().Length == 0) - MessageBox.Show( - "You must select a resource first", "Assign resource", - MessageBoxButtons.OK, MessageBoxIcon.Information); - if (this.ProjectIdLabel.Text.Trim().Length == 0 || - Guid.Empty.Equals(new Guid(this.ProjectIdLabel.Text))) - MessageBox.Show( - "You must select a project first", "Assign resource", - MessageBoxButtons.OK, MessageBoxIcon.Information); - using (PTService.PTService svc = new PTService.PTService()) - { - SetCredentials(svc); - try - { - // do the assignment - svc.AssignResource( - int.Parse(this.ResourceIdLabel.Text), - new Guid(this.ProjectIdLabel.Text)); - // refresh the detail view - PTService.ProjectRequest request = - new PTServiceClient.PTService.ProjectRequest(); - request.Id = new Guid(this.ProjectIdLabel.Text); - this.ProjectDetailBindingSource.DataSource = - svc.GetProject(request); - } - catch (Exception ex) - { - MessageBox.Show(ex.Message, "Assign resource", - MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - } - } - - private void ResourceDataDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e) - { - ResourceName dlg = new ResourceName(this.ResourceDataDataGridView.SelectedRows[0].Cells[0].Value.ToString(), - this.ResourceDataDataGridView.SelectedRows[0].Cells[1].Value.ToString()); - if (dlg.ShowDialog() == DialogResult.OK) - { - using (PTService.PTService svc = new PTService.PTService()) - { - SetCredentials(svc); - // save the changes - int resourceId = int.Parse(dlg.IdLabel1.Text); - string firstName = dlg.FirstNameTextBox.Text; - string lastName = dlg.LastNameTextBox.Text; - svc.ChangeResourceName(resourceId, firstName, lastName); - // refresh the resource list. - this.ResourceDataBindingSource.DataSource = svc.GetResourceList(); - } - } - } - - private void SetCredentials(PTService.PTService svc) - { - PTService.CslaCredentials credentials = - new PTService.CslaCredentials(); - credentials.Username = usernameTextBox.Text; - credentials.Password = passwordTextBox.Text; - svc.CslaCredentialsValue = credentials; - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.resx deleted file mode 100644 index e822beea..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/MainForm.resx +++ /dev/null @@ -1,162 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - False - - - 375, 17 - - - 184, 17 - - - 17, 17 - - - 555, 17 - - - 763, 17 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/PTServiceClient.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/PTServiceClient.csproj deleted file mode 100644 index 8aafe230..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/PTServiceClient.csproj +++ /dev/null @@ -1,129 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {457C09F3-B15D-474F-A761-DC3419E745EF} - WinExe - Properties - PTServiceClient - PTServiceClient - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - - Form - - - MainForm.cs - - - - - Designer - MainForm.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - Designer - ResourceName.cs - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - Form - - - ResourceName.cs - - - True - True - Reference.map - - - - - - - - Dynamic - Web References\PTService\ - http://localhost/PTWebServicecs/PTService.asmx - - - - - Settings - PTServiceClient_PTService_PTService - - - - - - Reference.map - - - - - MSDiscoCodeGenerator - Reference.cs - - - Reference.map - - - Reference.map - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Program.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Program.cs deleted file mode 100644 index ac37cedf..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace PTServiceClient -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new MainForm()); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/AssemblyInfo.cs deleted file mode 100644 index 1bc9a99a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PTServiceClient")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("PTServiceClient")] -[assembly: AssemblyCopyright("Copyright © 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("ffc67a41-6945-4a9a-83ab-9d0d88fe37d7")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.Designer.cs deleted file mode 100644 index d89152a8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PTServiceClient.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PTServiceClient.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.Designer.cs deleted file mode 100644 index c6b28669..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.Designer.cs +++ /dev/null @@ -1,36 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PTServiceClient.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.ApplicationScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.SpecialSettingAttribute(global::System.Configuration.SpecialSetting.WebServiceUrl)] - [global::System.Configuration.DefaultSettingValueAttribute("http://localhost/PTWebServicecs/PTService.asmx")] - public string PTServiceClient_PTService_PTService { - get { - return ((string)(this["PTServiceClient_PTService_PTService"])); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.settings b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.settings deleted file mode 100644 index a8b60571..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Properties/Settings.settings +++ /dev/null @@ -1,9 +0,0 @@ - - - - - - http://localhost/PTWebServicecs/PTService.asmx - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.Designer.cs deleted file mode 100644 index 5438b5c8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.Designer.cs +++ /dev/null @@ -1,192 +0,0 @@ -namespace PTServiceClient -{ - partial class ResourceName - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Windows.Forms.Label NameLabel; - System.Windows.Forms.Label IdLabel; - this.Cancel_Button = new System.Windows.Forms.Button(); - this.NameLabel1 = new System.Windows.Forms.Label(); - this.OK_Button = new System.Windows.Forms.Button(); - this.IdLabel1 = new System.Windows.Forms.Label(); - this.LastNameTextBox = new System.Windows.Forms.TextBox(); - this.Label2 = new System.Windows.Forms.Label(); - this.FirstNameTextBox = new System.Windows.Forms.TextBox(); - this.Label1 = new System.Windows.Forms.Label(); - this.TableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - NameLabel = new System.Windows.Forms.Label(); - IdLabel = new System.Windows.Forms.Label(); - this.TableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // NameLabel - // - NameLabel.AutoSize = true; - NameLabel.Location = new System.Drawing.Point(10, 38); - NameLabel.Name = "NameLabel"; - NameLabel.Size = new System.Drawing.Size(38, 13); - NameLabel.TabIndex = 15; - NameLabel.Text = "Name:"; - // - // Cancel_Button - // - this.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel_Button.Location = new System.Drawing.Point(76, 3); - this.Cancel_Button.Name = "Cancel_Button"; - this.Cancel_Button.Size = new System.Drawing.Size(67, 23); - this.Cancel_Button.TabIndex = 1; - this.Cancel_Button.Text = "Cancel"; - this.Cancel_Button.Click += new System.EventHandler(this.Cancel_Button_Click); - // - // NameLabel1 - // - this.NameLabel1.Location = new System.Drawing.Point(97, 38); - this.NameLabel1.Name = "NameLabel1"; - this.NameLabel1.Size = new System.Drawing.Size(236, 23); - this.NameLabel1.TabIndex = 17; - // - // OK_Button - // - this.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.OK_Button.Location = new System.Drawing.Point(3, 3); - this.OK_Button.Name = "OK_Button"; - this.OK_Button.Size = new System.Drawing.Size(67, 23); - this.OK_Button.TabIndex = 0; - this.OK_Button.Text = "OK"; - this.OK_Button.Click += new System.EventHandler(this.OK_Button_Click); - // - // IdLabel - // - IdLabel.AutoSize = true; - IdLabel.Location = new System.Drawing.Point(10, 15); - IdLabel.Name = "IdLabel"; - IdLabel.Size = new System.Drawing.Size(19, 13); - IdLabel.TabIndex = 14; - IdLabel.Text = "Id:"; - // - // IdLabel1 - // - this.IdLabel1.Location = new System.Drawing.Point(97, 15); - this.IdLabel1.Name = "IdLabel1"; - this.IdLabel1.Size = new System.Drawing.Size(236, 23); - this.IdLabel1.TabIndex = 16; - // - // LastNameTextBox - // - this.LastNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.LastNameTextBox.Location = new System.Drawing.Point(100, 106); - this.LastNameTextBox.Name = "LastNameTextBox"; - this.LastNameTextBox.Size = new System.Drawing.Size(244, 20); - this.LastNameTextBox.TabIndex = 13; - // - // Label2 - // - this.Label2.AutoSize = true; - this.Label2.Location = new System.Drawing.Point(10, 109); - this.Label2.Name = "Label2"; - this.Label2.Size = new System.Drawing.Size(59, 13); - this.Label2.TabIndex = 12; - this.Label2.Text = "Last name:"; - // - // FirstNameTextBox - // - this.FirstNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.FirstNameTextBox.Location = new System.Drawing.Point(100, 80); - this.FirstNameTextBox.Name = "FirstNameTextBox"; - this.FirstNameTextBox.Size = new System.Drawing.Size(244, 20); - this.FirstNameTextBox.TabIndex = 11; - // - // Label1 - // - this.Label1.AutoSize = true; - this.Label1.Location = new System.Drawing.Point(10, 83); - this.Label1.Name = "Label1"; - this.Label1.Size = new System.Drawing.Size(58, 13); - this.Label1.TabIndex = 10; - this.Label1.Text = "First name:"; - // - // TableLayoutPanel1 - // - this.TableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.TableLayoutPanel1.ColumnCount = 2; - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Controls.Add(this.OK_Button, 0, 0); - this.TableLayoutPanel1.Controls.Add(this.Cancel_Button, 1, 0); - this.TableLayoutPanel1.Location = new System.Drawing.Point(198, 148); - this.TableLayoutPanel1.Name = "TableLayoutPanel1"; - this.TableLayoutPanel1.RowCount = 1; - this.TableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Size = new System.Drawing.Size(146, 29); - this.TableLayoutPanel1.TabIndex = 9; - // - // ResourceName - // - this.AcceptButton = this.OK_Button; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.Cancel_Button; - this.ClientSize = new System.Drawing.Size(355, 193); - this.Controls.Add(NameLabel); - this.Controls.Add(this.NameLabel1); - this.Controls.Add(IdLabel); - this.Controls.Add(this.IdLabel1); - this.Controls.Add(this.LastNameTextBox); - this.Controls.Add(this.Label2); - this.Controls.Add(this.FirstNameTextBox); - this.Controls.Add(this.Label1); - this.Controls.Add(this.TableLayoutPanel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ResourceName"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "ResourceName"; - this.TableLayoutPanel1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Button Cancel_Button; - internal System.Windows.Forms.Label NameLabel1; - internal System.Windows.Forms.Button OK_Button; - internal System.Windows.Forms.Label IdLabel1; - internal System.Windows.Forms.TextBox LastNameTextBox; - internal System.Windows.Forms.Label Label2; - internal System.Windows.Forms.TextBox FirstNameTextBox; - internal System.Windows.Forms.Label Label1; - internal System.Windows.Forms.TableLayoutPanel TableLayoutPanel1; - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.cs deleted file mode 100644 index e1db4240..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.cs +++ /dev/null @@ -1,32 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace PTServiceClient -{ - public partial class ResourceName : Form - { - public ResourceName(string id, string name) - { - InitializeComponent(); - this.IdLabel1.Text = id; - this.NameLabel1.Text = name; - } - - private void OK_Button_Click(object sender, EventArgs e) - { - this.DialogResult = DialogResult.OK; - this.Close(); - } - - private void Cancel_Button_Click(object sender, EventArgs e) - { - this.DialogResult = DialogResult.Cancel; - this.Close(); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.resx deleted file mode 100644 index 551559a6..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/ResourceName.resx +++ /dev/null @@ -1,126 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - False - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.disco b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.disco deleted file mode 100644 index 55c41078..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.disco +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.wsdl b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.wsdl deleted file mode 100644 index b2b46256..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/PTService.wsdl +++ /dev/null @@ -1,515 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Get a list of projects - - - - - Get a project - - - - - Add a project - - - - - Edit a project - - - - - Get a list of resources - - - - - Get a resource - - - - - Change a resource's name - - - - - Assign resource to a project - - - - - Get a list of roles - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ProjectData.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ProjectData.datasource deleted file mode 100644 index 5bc6c325..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ProjectData.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - PTServiceClient.PTService.ProjectData, Web References.PTService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.cs deleted file mode 100644 index 1a72a1fb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.cs +++ /dev/null @@ -1,1010 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -// -// This source code was auto-generated by Microsoft.VSDesigner, Version 2.0.50727.42. -// -#pragma warning disable 1591 - -namespace PTServiceClient.PTService { - using System.Diagnostics; - using System.Web.Services; - using System.ComponentModel; - using System.Web.Services.Protocols; - using System; - using System.Xml.Serialization; - - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Web.Services.WebServiceBindingAttribute(Name="PTServiceSoap", Namespace="http://ws.lhotka.net/")] - public partial class PTService : System.Web.Services.Protocols.SoapHttpClientProtocol { - - private System.Threading.SendOrPostCallback GetProjectListOperationCompleted; - - private System.Threading.SendOrPostCallback GetProjectOperationCompleted; - - private CslaCredentials cslaCredentialsValueField; - - private System.Threading.SendOrPostCallback AddProjectOperationCompleted; - - private System.Threading.SendOrPostCallback EditProjectOperationCompleted; - - private System.Threading.SendOrPostCallback GetResourceListOperationCompleted; - - private System.Threading.SendOrPostCallback GetResourceOperationCompleted; - - private System.Threading.SendOrPostCallback ChangeResourceNameOperationCompleted; - - private System.Threading.SendOrPostCallback AssignResourceOperationCompleted; - - private System.Threading.SendOrPostCallback GetRolesOperationCompleted; - - private bool useDefaultCredentialsSetExplicitly; - - /// - public PTService() { - this.Url = global::PTServiceClient.Properties.Settings.Default.PTServiceClient_PTService_PTService; - if ((this.IsLocalFileSystemWebService(this.Url) == true)) { - this.UseDefaultCredentials = true; - this.useDefaultCredentialsSetExplicitly = false; - } - else { - this.useDefaultCredentialsSetExplicitly = true; - } - } - - public CslaCredentials CslaCredentialsValue { - get { - return this.cslaCredentialsValueField; - } - set { - this.cslaCredentialsValueField = value; - } - } - - public new string Url { - get { - return base.Url; - } - set { - if ((((this.IsLocalFileSystemWebService(base.Url) == true) - && (this.useDefaultCredentialsSetExplicitly == false)) - && (this.IsLocalFileSystemWebService(value) == false))) { - base.UseDefaultCredentials = false; - } - base.Url = value; - } - } - - public new bool UseDefaultCredentials { - get { - return base.UseDefaultCredentials; - } - set { - base.UseDefaultCredentials = value; - this.useDefaultCredentialsSetExplicitly = true; - } - } - - /// - public event GetProjectListCompletedEventHandler GetProjectListCompleted; - - /// - public event GetProjectCompletedEventHandler GetProjectCompleted; - - /// - public event AddProjectCompletedEventHandler AddProjectCompleted; - - /// - public event EditProjectCompletedEventHandler EditProjectCompleted; - - /// - public event GetResourceListCompletedEventHandler GetResourceListCompleted; - - /// - public event GetResourceCompletedEventHandler GetResourceCompleted; - - /// - public event ChangeResourceNameCompletedEventHandler ChangeResourceNameCompleted; - - /// - public event AssignResourceCompletedEventHandler AssignResourceCompleted; - - /// - public event GetRolesCompletedEventHandler GetRolesCompleted; - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/GetProjectList", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ProjectData[] GetProjectList() { - object[] results = this.Invoke("GetProjectList", new object[0]); - return ((ProjectData[])(results[0])); - } - - /// - public void GetProjectListAsync() { - this.GetProjectListAsync(null); - } - - /// - public void GetProjectListAsync(object userState) { - if ((this.GetProjectListOperationCompleted == null)) { - this.GetProjectListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProjectListOperationCompleted); - } - this.InvokeAsync("GetProjectList", new object[0], this.GetProjectListOperationCompleted, userState); - } - - private void OnGetProjectListOperationCompleted(object arg) { - if ((this.GetProjectListCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetProjectListCompleted(this, new GetProjectListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/GetProject", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ProjectData GetProject(ProjectRequest request) { - object[] results = this.Invoke("GetProject", new object[] { - request}); - return ((ProjectData)(results[0])); - } - - /// - public void GetProjectAsync(ProjectRequest request) { - this.GetProjectAsync(request, null); - } - - /// - public void GetProjectAsync(ProjectRequest request, object userState) { - if ((this.GetProjectOperationCompleted == null)) { - this.GetProjectOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetProjectOperationCompleted); - } - this.InvokeAsync("GetProject", new object[] { - request}, this.GetProjectOperationCompleted, userState); - } - - private void OnGetProjectOperationCompleted(object arg) { - if ((this.GetProjectCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetProjectCompleted(this, new GetProjectCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapHeaderAttribute("CslaCredentialsValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/AddProject", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ProjectData AddProject(string name, string started, string ended, string description) { - object[] results = this.Invoke("AddProject", new object[] { - name, - started, - ended, - description}); - return ((ProjectData)(results[0])); - } - - /// - public void AddProjectAsync(string name, string started, string ended, string description) { - this.AddProjectAsync(name, started, ended, description, null); - } - - /// - public void AddProjectAsync(string name, string started, string ended, string description, object userState) { - if ((this.AddProjectOperationCompleted == null)) { - this.AddProjectOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAddProjectOperationCompleted); - } - this.InvokeAsync("AddProject", new object[] { - name, - started, - ended, - description}, this.AddProjectOperationCompleted, userState); - } - - private void OnAddProjectOperationCompleted(object arg) { - if ((this.AddProjectCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.AddProjectCompleted(this, new AddProjectCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapHeaderAttribute("CslaCredentialsValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/EditProject", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ProjectData EditProject(System.Guid id, string name, string started, string ended, string description) { - object[] results = this.Invoke("EditProject", new object[] { - id, - name, - started, - ended, - description}); - return ((ProjectData)(results[0])); - } - - /// - public void EditProjectAsync(System.Guid id, string name, string started, string ended, string description) { - this.EditProjectAsync(id, name, started, ended, description, null); - } - - /// - public void EditProjectAsync(System.Guid id, string name, string started, string ended, string description, object userState) { - if ((this.EditProjectOperationCompleted == null)) { - this.EditProjectOperationCompleted = new System.Threading.SendOrPostCallback(this.OnEditProjectOperationCompleted); - } - this.InvokeAsync("EditProject", new object[] { - id, - name, - started, - ended, - description}, this.EditProjectOperationCompleted, userState); - } - - private void OnEditProjectOperationCompleted(object arg) { - if ((this.EditProjectCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.EditProjectCompleted(this, new EditProjectCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/GetResourceList", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ResourceData[] GetResourceList() { - object[] results = this.Invoke("GetResourceList", new object[0]); - return ((ResourceData[])(results[0])); - } - - /// - public void GetResourceListAsync() { - this.GetResourceListAsync(null); - } - - /// - public void GetResourceListAsync(object userState) { - if ((this.GetResourceListOperationCompleted == null)) { - this.GetResourceListOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetResourceListOperationCompleted); - } - this.InvokeAsync("GetResourceList", new object[0], this.GetResourceListOperationCompleted, userState); - } - - private void OnGetResourceListOperationCompleted(object arg) { - if ((this.GetResourceListCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetResourceListCompleted(this, new GetResourceListCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/GetResource", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ResourceData GetResource(ResourceRequest request) { - object[] results = this.Invoke("GetResource", new object[] { - request}); - return ((ResourceData)(results[0])); - } - - /// - public void GetResourceAsync(ResourceRequest request) { - this.GetResourceAsync(request, null); - } - - /// - public void GetResourceAsync(ResourceRequest request, object userState) { - if ((this.GetResourceOperationCompleted == null)) { - this.GetResourceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetResourceOperationCompleted); - } - this.InvokeAsync("GetResource", new object[] { - request}, this.GetResourceOperationCompleted, userState); - } - - private void OnGetResourceOperationCompleted(object arg) { - if ((this.GetResourceCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetResourceCompleted(this, new GetResourceCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapHeaderAttribute("CslaCredentialsValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/ChangeResourceName", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public ResourceData ChangeResourceName(int id, string firstName, string lastName) { - object[] results = this.Invoke("ChangeResourceName", new object[] { - id, - firstName, - lastName}); - return ((ResourceData)(results[0])); - } - - /// - public void ChangeResourceNameAsync(int id, string firstName, string lastName) { - this.ChangeResourceNameAsync(id, firstName, lastName, null); - } - - /// - public void ChangeResourceNameAsync(int id, string firstName, string lastName, object userState) { - if ((this.ChangeResourceNameOperationCompleted == null)) { - this.ChangeResourceNameOperationCompleted = new System.Threading.SendOrPostCallback(this.OnChangeResourceNameOperationCompleted); - } - this.InvokeAsync("ChangeResourceName", new object[] { - id, - firstName, - lastName}, this.ChangeResourceNameOperationCompleted, userState); - } - - private void OnChangeResourceNameOperationCompleted(object arg) { - if ((this.ChangeResourceNameCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.ChangeResourceNameCompleted(this, new ChangeResourceNameCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapHeaderAttribute("CslaCredentialsValue")] - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/AssignResource", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public void AssignResource(int resourceId, System.Guid projectId) { - this.Invoke("AssignResource", new object[] { - resourceId, - projectId}); - } - - /// - public void AssignResourceAsync(int resourceId, System.Guid projectId) { - this.AssignResourceAsync(resourceId, projectId, null); - } - - /// - public void AssignResourceAsync(int resourceId, System.Guid projectId, object userState) { - if ((this.AssignResourceOperationCompleted == null)) { - this.AssignResourceOperationCompleted = new System.Threading.SendOrPostCallback(this.OnAssignResourceOperationCompleted); - } - this.InvokeAsync("AssignResource", new object[] { - resourceId, - projectId}, this.AssignResourceOperationCompleted, userState); - } - - private void OnAssignResourceOperationCompleted(object arg) { - if ((this.AssignResourceCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.AssignResourceCompleted(this, new System.ComponentModel.AsyncCompletedEventArgs(invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - [System.Web.Services.Protocols.SoapDocumentMethodAttribute("http://ws.lhotka.net/GetRoles", RequestNamespace="http://ws.lhotka.net/", ResponseNamespace="http://ws.lhotka.net/", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Wrapped)] - public RoleInfo[] GetRoles() { - object[] results = this.Invoke("GetRoles", new object[0]); - return ((RoleInfo[])(results[0])); - } - - /// - public void GetRolesAsync() { - this.GetRolesAsync(null); - } - - /// - public void GetRolesAsync(object userState) { - if ((this.GetRolesOperationCompleted == null)) { - this.GetRolesOperationCompleted = new System.Threading.SendOrPostCallback(this.OnGetRolesOperationCompleted); - } - this.InvokeAsync("GetRoles", new object[0], this.GetRolesOperationCompleted, userState); - } - - private void OnGetRolesOperationCompleted(object arg) { - if ((this.GetRolesCompleted != null)) { - System.Web.Services.Protocols.InvokeCompletedEventArgs invokeArgs = ((System.Web.Services.Protocols.InvokeCompletedEventArgs)(arg)); - this.GetRolesCompleted(this, new GetRolesCompletedEventArgs(invokeArgs.Results, invokeArgs.Error, invokeArgs.Cancelled, invokeArgs.UserState)); - } - } - - /// - public new void CancelAsync(object userState) { - base.CancelAsync(userState); - } - - private bool IsLocalFileSystemWebService(string url) { - if (((url == null) - || (url == string.Empty))) { - return false; - } - System.Uri wsUri = new System.Uri(url); - if (((wsUri.Port >= 1024) - && (string.Compare(wsUri.Host, "localHost", System.StringComparison.OrdinalIgnoreCase) == 0))) { - return true; - } - return false; - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - [System.Xml.Serialization.XmlRootAttribute(Namespace="http://ws.lhotka.net/", IsNullable=false)] - public partial class CslaCredentials : System.Web.Services.Protocols.SoapHeader { - - private string usernameField; - - private string passwordField; - - private System.Xml.XmlAttribute[] anyAttrField; - - /// - public string Username { - get { - return this.usernameField; - } - set { - this.usernameField = value; - } - } - - /// - public string Password { - get { - return this.passwordField; - } - set { - this.passwordField = value; - } - } - - /// - [System.Xml.Serialization.XmlAnyAttributeAttribute()] - public System.Xml.XmlAttribute[] AnyAttr { - get { - return this.anyAttrField; - } - set { - this.anyAttrField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class RoleInfo { - - private int idField; - - private string nameField; - - /// - public int Id { - get { - return this.idField; - } - set { - this.idField = value; - } - } - - /// - public string Name { - get { - return this.nameField; - } - set { - this.nameField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ResourceRequest { - - private int idField; - - /// - public int Id { - get { - return this.idField; - } - set { - this.idField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ResourceAssignmentData { - - private System.Guid projectIdField; - - private string projectNameField; - - private string assignedField; - - private int roleField; - - /// - public System.Guid ProjectId { - get { - return this.projectIdField; - } - set { - this.projectIdField = value; - } - } - - /// - public string ProjectName { - get { - return this.projectNameField; - } - set { - this.projectNameField = value; - } - } - - /// - public string Assigned { - get { - return this.assignedField; - } - set { - this.assignedField = value; - } - } - - /// - public int Role { - get { - return this.roleField; - } - set { - this.roleField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ResourceData { - - private int idField; - - private string nameField; - - private ResourceAssignmentData[] resourceAssignmentsField; - - /// - public int Id { - get { - return this.idField; - } - set { - this.idField = value; - } - } - - /// - public string Name { - get { - return this.nameField; - } - set { - this.nameField = value; - } - } - - /// - public ResourceAssignmentData[] ResourceAssignments { - get { - return this.resourceAssignmentsField; - } - set { - this.resourceAssignmentsField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ProjectRequest { - - private System.Guid idField; - - /// - public System.Guid Id { - get { - return this.idField; - } - set { - this.idField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ProjectResourceData { - - private int resourceIdField; - - private string firstNameField; - - private string lastNameField; - - private string assignedField; - - private int roleField; - - /// - public int ResourceId { - get { - return this.resourceIdField; - } - set { - this.resourceIdField = value; - } - } - - /// - public string FirstName { - get { - return this.firstNameField; - } - set { - this.firstNameField = value; - } - } - - /// - public string LastName { - get { - return this.lastNameField; - } - set { - this.lastNameField = value; - } - } - - /// - public string Assigned { - get { - return this.assignedField; - } - set { - this.assignedField = value; - } - } - - /// - public int Role { - get { - return this.roleField; - } - set { - this.roleField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "2.0.50727.42")] - [System.SerializableAttribute()] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://ws.lhotka.net/")] - public partial class ProjectData { - - private System.Guid idField; - - private string nameField; - - private string startedField; - - private string endedField; - - private string descriptionField; - - private ProjectResourceData[] projectResourcesField; - - /// - public System.Guid Id { - get { - return this.idField; - } - set { - this.idField = value; - } - } - - /// - public string Name { - get { - return this.nameField; - } - set { - this.nameField = value; - } - } - - /// - public string Started { - get { - return this.startedField; - } - set { - this.startedField = value; - } - } - - /// - public string Ended { - get { - return this.endedField; - } - set { - this.endedField = value; - } - } - - /// - public string Description { - get { - return this.descriptionField; - } - set { - this.descriptionField = value; - } - } - - /// - public ProjectResourceData[] ProjectResources { - get { - return this.projectResourcesField; - } - set { - this.projectResourcesField = value; - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void GetProjectListCompletedEventHandler(object sender, GetProjectListCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetProjectListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal GetProjectListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ProjectData[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ProjectData[])(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void GetProjectCompletedEventHandler(object sender, GetProjectCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetProjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal GetProjectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ProjectData Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ProjectData)(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void AddProjectCompletedEventHandler(object sender, AddProjectCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class AddProjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal AddProjectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ProjectData Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ProjectData)(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void EditProjectCompletedEventHandler(object sender, EditProjectCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class EditProjectCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal EditProjectCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ProjectData Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ProjectData)(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void GetResourceListCompletedEventHandler(object sender, GetResourceListCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetResourceListCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal GetResourceListCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ResourceData[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ResourceData[])(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void GetResourceCompletedEventHandler(object sender, GetResourceCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetResourceCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal GetResourceCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ResourceData Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ResourceData)(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void ChangeResourceNameCompletedEventHandler(object sender, ChangeResourceNameCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class ChangeResourceNameCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal ChangeResourceNameCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public ResourceData Result { - get { - this.RaiseExceptionIfNecessary(); - return ((ResourceData)(this.results[0])); - } - } - } - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void AssignResourceCompletedEventHandler(object sender, System.ComponentModel.AsyncCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - public delegate void GetRolesCompletedEventHandler(object sender, GetRolesCompletedEventArgs e); - - /// - [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Web.Services", "2.0.50727.42")] - [System.Diagnostics.DebuggerStepThroughAttribute()] - [System.ComponentModel.DesignerCategoryAttribute("code")] - public partial class GetRolesCompletedEventArgs : System.ComponentModel.AsyncCompletedEventArgs { - - private object[] results; - - internal GetRolesCompletedEventArgs(object[] results, System.Exception exception, bool cancelled, object userState) : - base(exception, cancelled, userState) { - this.results = results; - } - - /// - public RoleInfo[] Result { - get { - this.RaiseExceptionIfNecessary(); - return ((RoleInfo[])(this.results[0])); - } - } - } -} - -#pragma warning restore 1591 \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.map b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.map deleted file mode 100644 index 5155e89c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/Reference.map +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ResourceData.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ResourceData.datasource deleted file mode 100644 index 7d2fe35e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/ResourceData.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - PTServiceClient.PTService.ResourceData, Web References.PTService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/RoleInfo.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/RoleInfo.datasource deleted file mode 100644 index a7e9f7c2..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/Web References/PTService/RoleInfo.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - PTServiceClient.PTService.RoleInfo, Web References.PTService.Reference.cs, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/app.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/app.config deleted file mode 100644 index af1a26ed..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTServiceClient/app.config +++ /dev/null @@ -1,15 +0,0 @@ - - - - -
    - - - - - - http://localhost/PTWebServicecs/PTService.asmx - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/App.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/App.config deleted file mode 100644 index b23924a5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/App.config +++ /dev/null @@ -1,48 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.Designer.cs deleted file mode 100644 index 3ba6d825..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.Designer.cs +++ /dev/null @@ -1,141 +0,0 @@ -namespace PTWin -{ - partial class LoginForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(LoginForm)); - this.Cancel = new System.Windows.Forms.Button(); - this.OK = new System.Windows.Forms.Button(); - this.PasswordTextBox = new System.Windows.Forms.TextBox(); - this.UsernameTextBox = new System.Windows.Forms.TextBox(); - this.PasswordLabel = new System.Windows.Forms.Label(); - this.UsernameLabel = new System.Windows.Forms.Label(); - this.LogoPictureBox = new System.Windows.Forms.PictureBox(); - ((System.ComponentModel.ISupportInitialize)(this.LogoPictureBox)).BeginInit(); - this.SuspendLayout(); - // - // Cancel - // - this.Cancel.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel.Location = new System.Drawing.Point(300, 161); - this.Cancel.Name = "Cancel"; - this.Cancel.Size = new System.Drawing.Size(94, 23); - this.Cancel.TabIndex = 12; - this.Cancel.Text = "&Cancel"; - this.Cancel.Click += new System.EventHandler(this.Cancel_Click); - // - // OK - // - this.OK.Location = new System.Drawing.Point(197, 161); - this.OK.Name = "OK"; - this.OK.Size = new System.Drawing.Size(94, 23); - this.OK.TabIndex = 11; - this.OK.Text = "&OK"; - this.OK.Click += new System.EventHandler(this.OK_Click); - // - // PasswordTextBox - // - this.PasswordTextBox.Location = new System.Drawing.Point(174, 101); - this.PasswordTextBox.Name = "PasswordTextBox"; - this.PasswordTextBox.PasswordChar = '*'; - this.PasswordTextBox.Size = new System.Drawing.Size(220, 20); - this.PasswordTextBox.TabIndex = 10; - // - // UsernameTextBox - // - this.UsernameTextBox.Location = new System.Drawing.Point(174, 44); - this.UsernameTextBox.Name = "UsernameTextBox"; - this.UsernameTextBox.Size = new System.Drawing.Size(220, 20); - this.UsernameTextBox.TabIndex = 8; - // - // PasswordLabel - // - this.PasswordLabel.Location = new System.Drawing.Point(172, 81); - this.PasswordLabel.Name = "PasswordLabel"; - this.PasswordLabel.Size = new System.Drawing.Size(220, 23); - this.PasswordLabel.TabIndex = 9; - this.PasswordLabel.Text = "&Password"; - this.PasswordLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // UsernameLabel - // - this.UsernameLabel.Location = new System.Drawing.Point(172, 24); - this.UsernameLabel.Name = "UsernameLabel"; - this.UsernameLabel.Size = new System.Drawing.Size(220, 23); - this.UsernameLabel.TabIndex = 6; - this.UsernameLabel.Text = "&User name"; - this.UsernameLabel.TextAlign = System.Drawing.ContentAlignment.MiddleLeft; - // - // LogoPictureBox - // - this.LogoPictureBox.Image = ((System.Drawing.Image)(resources.GetObject("LogoPictureBox.Image"))); - this.LogoPictureBox.Location = new System.Drawing.Point(0, 0); - this.LogoPictureBox.Name = "LogoPictureBox"; - this.LogoPictureBox.Size = new System.Drawing.Size(165, 193); - this.LogoPictureBox.TabIndex = 7; - this.LogoPictureBox.TabStop = false; - // - // LoginForm - // - this.AcceptButton = this.OK; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.Cancel; - this.ClientSize = new System.Drawing.Size(401, 192); - this.Controls.Add(this.Cancel); - this.Controls.Add(this.OK); - this.Controls.Add(this.PasswordTextBox); - this.Controls.Add(this.UsernameTextBox); - this.Controls.Add(this.PasswordLabel); - this.Controls.Add(this.UsernameLabel); - this.Controls.Add(this.LogoPictureBox); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "LoginForm"; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Log in"; - this.Load += new System.EventHandler(this.LoginForm_Load); - ((System.ComponentModel.ISupportInitialize)(this.LogoPictureBox)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Button Cancel; - internal System.Windows.Forms.Button OK; - internal System.Windows.Forms.TextBox PasswordTextBox; - internal System.Windows.Forms.TextBox UsernameTextBox; - internal System.Windows.Forms.Label PasswordLabel; - internal System.Windows.Forms.Label UsernameLabel; - internal System.Windows.Forms.PictureBox LogoPictureBox; - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.cs deleted file mode 100644 index 349837b4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; - -namespace PTWin -{ - public partial class LoginForm : Form - { - public LoginForm() - { - InitializeComponent(); - } - - private void OK_Click(object sender, EventArgs e) - { - using (StatusBusy busy = - new StatusBusy("Verifying credentials...")) - { - ProjectTracker.Library.Security.PTPrincipal.Login( - this.UsernameTextBox.Text, this.PasswordTextBox.Text); - } - this.Close(); - } - - private void Cancel_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void LoginForm_Load(object sender, EventArgs e) - { - this.UsernameTextBox.Focus(); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.resx deleted file mode 100644 index 31526951..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/LoginForm.resx +++ /dev/null @@ -1,772 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - iVBORw0KGgoAAAANSUhEUgAAAXIAAADBCAYAAADSDTtmAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAAlwSFlzAAALEwAA - CxMBAJqcGAAAlvxJREFUeF7tXQV8FNfeDRbHNZ5ggQQJ7u5OW6BU0EKhtDjFihSo0VLcneIUd3dpgbr7 - 1/fa2egG92G/c2bnhpthdhPee21JMrx3frvZpJGZ2bNnzz3/c7P5zvdVPPDPcd/h4aHizj3gDj6+g4/x - f4/7/KQE3FUvqB53D97lf9YWuA7c1sEHCX4Xfjci5bs48I//kfUv9RHIli2bZ86cuf7v4495KB/+99VX - dz22bLnlYbP97nH3brKLw3ff4969ZA9VvebhcNzzuH+fpyH14XY47nv8/PMgntERD860x03cvwXw9oZ+ - y49xFWjgN9LOJU4f/1vrn3UErCPwuB0BErmAzxwfxWcWMA1400fxft1b8Z4IjNfxGm6Jsd5Kjmo5+AIw - BSgHlALCgGJAQSAP4At4AbmAHEB2IBu53ELqY8DjAzJXPvnkjinWrr2htG+fpFSt+qlSseIRFzikREdv - UsqUWa5ERi5WSpWaB8w1YA7P2Z/AM0AnoD3QHKgPVAWigAggECikn0cfcQ6t82Zdu9Y18HheAx4ykfvO - 81U0Mp8BvAsinwLSJplP0Il8nE7kIHOv/l5K9ojsJIa+QDRQEggFigIFJDL3tMjc/clPi8g3bbqhdOyY - fiIvXXpReoi8s4HIq+nnsbhF5I/nk9UiUeu8uLoGPHwXPFDkJHWfuSDx2cB04B2Q+SSdzE1UuWdnTyVb - 7mwk82a6miuB2xCdzPPjNjdARUcyz0nCAixVbnhXwhc6WCsuFfmWLTf/AyI3qvG5SsmSs3mu/gCeBQSR - t8B9KvI0idw6dxaRWC8mj+c18BCRa2QuWyxvGSwWocphr9BiydkwJ8lhNhADlAX41jwIKALkA/wBb5KV - TuaWxfIwkfv5+Pi5JPJt2/5XRD6D5+p3EyJvgMeqA7TJ+GLM8/eQtWIR+eP5JLbI1TovTiI3qPIUMp8J - Vf6eicUieeVew7yUHGU1v3wYUAGIBMIB4bPmxX0/wPLLXawP4NgUyJu3oEsi3779Zjo88oNKVNQGzSN3 - WisPK/ISJd7jefr1EYmcax1incN6N2Wt8VhrXI/hNfCAyI1kTr/clcViUOWez8Jiya9ZLFw8Kw+UBswW - P2W/3CIF/YLAsQouVizELZG3a5ekVKnyiZvFzgMakUdGLgORLzQl8uLF3+I5+iGdRF4YXycWrS0ifwyf - vJYSt5S4uAY8fBfqitxEmWt+OVMs75ukWCRV7j0GFksjzWJZAFQBxOKnO7/cslgeEHmZEiWi3ForrVsn - gsgvuiTyChX2g8jXuSXy8PDXeY6+MiHyhnishm6tcNGa1opF5BZ5W+o7g1wDbok8lcXCFMtkk4VP3Sv3 - GgqLJVKzWIYClQD65UxACFLIh/uWX25yYeC4VKtYsZbbxc4WLUjkF1wQ+WGFRF627Fq3RB4aOobn5xOJ - yDvgfktAEDnfTZHIgy0it9SepfgzzjXg4bsIityNKtciicJiedtk4VMncqpyzy6wWPw1i4VJiIqA8MsD - cF8sntFztSwWidBxPJrVq9fGJZEzftikCYn8vBsi3wsi/0An8gWm1kpw8FCem7MWkWecJ6hFpta5Ss81 - 4CTyNMg8JcXChc83DNlyfUCIRK5ZLLU1i+V9gAMmYlhIzpcbI4lZ3mLBcXq6bdtuLol8zZobSsOGCUrl - yh+7JfIyZVaByJfCIzcn8sDAfjw3RyQi55oGX3SFIuf5sqyVDPJ2Oj1PcOtrssYLgYfvYonIZWUuTXym - WCwcFDJmy7nwKalybVAoWBsU6g1UBjgtyEgb365bkURza2VAt27DXBL5smXXlbp1SeTnXBJ5+fJ7kFhZ - 6ZbIixbtxvOy24TIzeKHlkduEbrlkWeQa8BJ5Okg81QLnyJbLiY+Dao8V6tcJIw1ABfQYoAyQDggj35b - FsuDxc4JQ4dOdUnkc+deU2rXtoHIz7oh8l06kS+BIp9vaq0ULvwkz8umdBK5bIVZqZUM8oS2FHjWUODG - 8+wk8iUGMhcJFuPUJweFmC03LnwKVa7bK94j0cXizJaP0i0WLqKxj8WyWMwV+bw33/zAJZG/++5VpVat - fyuVKp1y2bNSrtwOEPkKrWfFFZEXKNCc52TFIxJ5StcK/jsrMmoRuqXSH8NrwOmRk8iXuiBz2WKRFz6N - E5+yKh+NhU+O73unjO8zkmhmsViDQs5CyC2LFx92SeQTJlxRatb8FUR+0g2Rb0shcvPCrLlKnjy1SORz - TIjcGtF/DJ+clrrOmur6PznvztIsqnISeTrIPMVi4cKnHEc0qnKQeY4qmip/y8RiYYpFbknM0l0sOBZn - d+z43iWRDx16SalR4wcXRH4Y5H4QzYebJSJ/eKqTk55+fuV4Pt4E2H5olWZZ5G2p60xyDXgwkaKpckHk - gszdDQrRYhGlWnLVrVGVd4Mqz6ep8qd0i8WYYhHFWlm2i4XrBkWLBivnz99wSeQvvJCsVKv2jRITc8JE - kZPID6RU2LoazyeRe3mF8FyM0YncqrHNJE/i/0TBWf9N5lL7Hpzc1FQ5CXyZDlotxkii3FsuJj7lHha2 - IxqI3HsU4oi1tDjiTKA2wBSLKNaSu1iM3eVZxovF8ahVpUp9lyTOjvLOne0g8i9A5MdMidw51bne7TBQ - yZKzlBw5cvNcDAC6AoLI2VxZT3+hFX3k4h0To6LiRTa79eTPXE9+63xmnvPpoXWPg5g1e4VEviKdFovo - LWcc0ajKxaIniNyrt5eSrZCmylmdWh0QxVqii4Xd5SJbnuUaEqmOO3bs5ZLIz5y5rXA8n5tKxMQcdUHk - HAZa7XYYSB/P/xo/r5tO5HyX1A4gkdcFuI7BF9lwgEQuzotF5JZytyyYx/wa8NB6VDC5qU13UpWTyGUy - d5Ut58KnvptQypCQK1VeV1Pl84A6OmGkZ+EzS6hyHI9xgwa95ZLId+y4qQ0DcarTnMgPKeXL74Y/7n4Y - KChoIM/BKYnIn8R9btVnRuTc6cki8sf8yWsp6syjqP/bc+nBmlpGCjV7hZYKSXylRObuLBajKhe5cg4I - UZVjwZP2ilefFFX+PAiiJhADiGy5q4XPLDHxieOw4v33t7gk8sWLr6dkyB8mcvrjh5QH0UPXGfKiRZ8j - ke8EeA6eBkjkbYCm+gssbS9xTrjLE9cv2I3D+mFuCmJZKxaxW8r8Mb0GnETOhUux6LkcJL5KJ3NaLbRc - XC18yqpcbAtnVOUgcs0rr5Oiyvk2XozvcxxcNCTmk4gjSwyg4O/NkT17DmXr1q9dEvmkSYwe/obEymkX - C50HQeRb04weFijQgkS+UiLyJ3Qib6ITOYvO2I1Dy8si8sf0CfvfKjfrv8+cKt6Dwz2avSIvepLIiXRY - LCl7fAqvnKpcjiLqRK555c7OckbfagGiITEc980mPjUVCGRaiwV/W3RkZEW3C50vvXRJqV7ddfSQC53O - TZdXuNxQgokVf//KogPnOV2Rk8hbA4318xGD29KAGNriCytz/iIammnPg0VumZPcstJ5dRL5NN1egcLW - FDgJ/AOJzN2lWIQqN+bKmWCR7BVNldfQVPkMgCkJ7hFpnPgkechVt5l6j0/8rZ3atHkuHYmVL11GDytU - 2KslVpw7A5lvKOGMHgaL6CGJvAvQEWgFNAJod3ERmtO3fIckOnEsIreUuWWnZIBrwIMlWBqRM71Ce4U2 - Cu0VEvlqnczNLBY5jii8clFzS3vFRJV7Po9cua+mykkiruKIYlcaoQQzrSrHMXDbsXLy5G2lWTPW135i - Ej10+uMsy0qrvjYi4g0le3YvHve+gNh4Oa0ucm7RJ/pw+O7IUuQZ4AmdlVSo9bc+eCflwQ5xjcjpkzO9 - wn4VpldorazRyZyLn3zM1cKnUZVPBJGTzMWip26vUJXnqKhNe3K6kGPhIo4o97BkGVWOv3/TwoUHXCry - VauuK3XqxGv1te4XOtl66HqhMyjoFR7zk0B3ichFhS2bD/nuyGzjZWu/Tou8LUWeAa4Bj+wlsmukqxG5 - 8MlppehE7rfWz6nOabcYFz6NqpzfQ3SwyIueenqFRO75lCdJZS9Ab5ZxRLMhoUyvyvF3hwcHF1eOHYtz - SeQTJzoXOitXPuOCyDnRuSXNhc7ChTvxmG/WiZxrFK6mOrmjk7xeYRVmZYAnsaVMLY8fz1uPN3O1yeW0 - Vkjk9MmpvEncUOR+6/0UjcxJ7OlR5WxGnAQ17mLRk2TOFw/83FezsirH396hRYsubv3x3r2TsdD5nYvW - Q27vti9dC51589bh8Z4PpHcYiD041lSnReKWGs8g1wCJvGb2gOyK10gv54APpzyFTw6PXCNyQLNZ0qPK - kYB5aECIi56SvZKrudZXvi4rq3L87a8PG/aeWyJv2zZJH803dqzI/rjYp9N8VyAudHp7R/B4jwfSkyHn - MJDowGGGnFFQK0OeQZ7QljrPmuqcRJ4PGJuzWU4nkYsFT90n14h8o07msio36SzXmhHZVy6iiC7sFa+X - UgaEekmq3FWCRZBJpkqw4O/etWLFSbf7dNarx4nOiy4WOg9ioXNnmrsChYdPxEKnZmf1Acyih1x0jgGY - IZejh9YwkEXeliLPINcAiZx+dIVsBbMpXiOgyknk0oKn3zqQ+CYdtFjSUuXcqBmLp1rFrZtFz5zVU6KI - 9MpJJnKuXJ72FD5tppkuxN9atWLFWsrFi7fTGAT6XdsVyGyh05kfT9sfDwh4gSR+COihEzmjh0ysWNHD - DPIktVR21lTZj3LeSeTMCjNq9mrOplDltFZI5Pq4Pv1xjcg/TKcqF1FE46KnwV7xfFpTiURzQOTKxea/ - xixzypg4vjbDx+DwNwzo3n24W1ule3f6499r/nhqInfaKsyPp2cQSJ/oXIWf6SqxwuQQ3w1xypb7qsp7 - dTICmqneCT3Kk8P6WotAM8o1QCJnux0XtsqzpZBDPBqRi8EgLniSyLfoZJ6WKhdRRC56shWRi56i3lZK - r2iLnhHaoucIgEMpYtpT9H3IxU2ZKj2Bv3XVjBnbXBL5uXO3lRYt2Hj4uckgkPDHdyM/vsZt4yH9cV/f - siLuKRY6XdXXWokVS6FbVkoGvQZI5FRdzAvTYhnLjZO1xU6ZyOmRk8gJ3E9JsLjoYNHG9rnoyf4V2V4x - EHnOhpq9shIQDXzsYIkGSkjq0DiYkqEHhPB3lYuMjFFOnEhwSeQLFnCz5Vi98fC4oWPFuZFEuXLbJX/c - fLPl8PBJ6CD35zFmBzkXOtlD7q710LS+NjO8C8ooysr6Pa13Af/JNUAiZyqB1gUtlipMsPhMhr0imhCZ - XNmgk/g23G7W44j0yt0NCHHRU570FCP7UnrFs2fKvp7sxm4IcFS8ImAsb5KjcBn6rT7+thefe26wW1vl - lVe4tdvPJv64sFUYO/wwza3dihXrTRI/APQE5IVOth6yLEusTVhlWRlUif0nT3rrv8l8LxYkci4iksxp - X5Aw38zVCapcdJOLCCLV+HaAZA6rRVPlJHtXqpyLnuxfke0Vg0+uTXqW1iY9xwGsUxUbHIidalyWaWXU - ixF/46qZM13bKtwRqF07xg6/0vboNPPHOZYfFbVO71dZpNBCMUP+/I15bJcBaS10lsbXuCrLsqKHFslb - lstjfg2QyKlwZVXeJHspqHKmV6i6ZSLfARLfqatzeuXsYKEqN4si6vt6aplyN/ZKrqZapnwt0ALguLir - sX2+Y8jQi57822Ji6ihnz152qchXrOBYvogdmuXHaavs0DeSWIaiLHf58eI8thMBLnTKGy7Lx1osMJst - dFodK4/5EzijChrr9/7fvisgkdNzFqpcLHwu8XzR05zId+vKnF45O1hcje2LRU85U27SvaLV23prRVrc - 1d1VFNG4HVyGtFfw97360ksT3doqgwZdwlj+r7BVzhny47Ktslm3VZZAic8zVeMhIcNwTLXjyqy+u4lO - s3c/mWpx2SKN/y1pWMfz8TueJPJsEpmLhc9nc9bM6bRPhCKnNw417r/HX/EjmcNq0doRacG4W/QU9ooY - DjKxV7KX1NIrtFfkjYDFomcQHjdG4jJcphx/Q948efIrq1addkvkTlvla5exQ6etwtpa9/3jhQp15DHd - BPQExESn2ExC3hVI7NNpur0brw/rifv4PXGtc2KdE/kakIlcWCxU5UHZ/BBFRHQwpW9FEPlef8V/H8ic - NgtH98Wipzt7RQwHiWpbacFT6yl3pleYdW4JNATkRU/h3cpbj2W4HYTwNz3RsmVXtyQ+f/41re3QOc0p - 2ypU4+xW2a+nVbg/p3tbxc+vPI/pu4Dsj3fEx/IgEBeWzfxxa3s3y1KxfPEMdA2QyEnghLBXRIJlfK6n - cmmFWdqYPhc7qchB4v4HACpzkLum2l1tByfsFXk4iPaKIYbInnL8fIKbAQu1aNzVnUVOjEhmyLf9+L3n - vfnmB26JvG/fZD2t4spW4RCQSKu4tlVCQ8diLN9XxA7d+ePGQSCrgzwDPXktVW6pcnENkMjZDc4nO1Vw - PoCKnAuLjXNE5lD8VuhETkUOFe5PRX7ISeZaioWLnu7sFaZXxHCQO3slSLNXhgCc9GRXuejIlicOH8qU - Z4SLGX9LjUqV6rrNjh89ektp3jwRtsqXLmwVdqvswhDQ2jTTKoULd+ax3ApY/rhFzJayzgLXgMf0eqWU - F6KKKTWL5lb8cmpkuhxgxSzV8Vbv4d5KSt8KiFtT5CRyYjfInIueadkrHA4S1bYmeXLNXqmm2StzAPHW - n5OeMYCrjLPWygc89h4ufsfxQ4a841aNv/76FaVWrT9hq1wwsVU4kk9bZZs+BOTeVvH3j+GxnAYIW+Vp - 3DfbbNlsipYv5Bnm2GaEF3Lrd7SU8199DXjcHdRYuTugnnL3xZrK953KKRsahiujyxdRmgf62wp65bic - PTj7Dc8enpcxpZkIe8VG8s59ILeS72A+p1fORU+mVxhDFBtNCL+cH9NeQde595t6DNGFT56rvRZD3AVw - WEXOlHMxLgJgpjzD2Sv4nUsXL15W2br1G7dE3qmTXetWcZZkHZOmOR/uVomMXOwyOx4aOlq2VUjkrrZ2 - 4x6dVn48C6i1v5pErO//z79Qedwb3lq5O7ipcvelusrdvjWUu70qK3e7V1DuPB9t+6ZtyYS5tQLUPpXz - q1WK+6jZ82VTUXZ11WeSjz3/5vxxuffltmkDQh+AzOmTSzsGafe5SQVutXpcYwzR4JN79UcM0UeLyzHv - nGnsFfwtQ/r0GeuWxBctuq7UrZuAbpVPDUNA8iLnDm1vzrQ2WZbSKrKtYtwRyLi1m1kq6LF/p2MRyD9P - INY5eDzOgce9cZ2VeyPbKfeGNIMyr68p87u9qzjJ/Lkom61T6Ru/PV9a/alHKXV92xD11TqF1CZl/dV8 - RXOp3p29r2GT5WSQeBxg852rwUngErgXaCqf3GTBUyrRGiPZK/TtM6y9gt89LCgoQlm37nyaOwE5R/I/ - ghqXu1VkNS6y40sxBGTerWIoyeqJn+8qdmi2kMyp3gy5kGyRyeNBJtZ5+OfOg8e9yd2Ue+O7KPdGdVDu - DW2u3B3YSLnbv45y94Vqyp0eFW3JXcte/v2Z0uqvPUurP4LMvwe+615K3doxTB1Tr4jaFKSet1BONVfb - XFe9XvGy+84Cmc/WQVIHNCJnR3ka4/o5a2k++ULJXuGenhmWdPC7D+jRY4RbEt+y5abSpAkXOb8wLHI6 - 1TgLsrjI6RzJX4HYoWtbxbnJsvauprfkj3fBfWP/eIZ9cbTI4p8jC+vYP77H3uPeGz2Ue68/q2jKfFR7 - 5d7wVsrdQU00q+VO3xq26z0qJf75dBn1j96R6m+9oMx7gsxB5N92L61+1a2U+tnzJdW1bYLVQdULqjWK - +6rZ82RTcz2Z6zIihgkaoZPYgZQ2RFFra7BWqMhzddR88r0Ad3g32itsRHQ1HPTY2QBCja9efS7Ngqya - Nf9Pbzo8IXWryJOc3EBiZZrZ8fz5m4jFamGrmG20nGnSQBaxPL7EYp2bv/fceNx77SlFw5gnnET+ahvl - 3rCWIHPnIuidF2vaYp+tcOvP3lHqny9Eqv/Xu7T6C9T5Dz1Kg8wj1S9B5p8+V1K98EwJ9eOnS6izGweo - z5TPqxYP8FQx6HPNqx9U+kyNyG0+U3xs3uO9bVo/OYl8pA59QMjrRS8FeQmSEVWkGA6qgfsZbmEOv/Og - 3r1HuyXx/ftvab3jnOSsXPmMtMgp1Dgjh7uhxjekqcYjIqYonp4BPHajAdlWYW1tplpAtkji7yUJ63g/ - /sfbQ1vg5ELnyw2ctgrVOMH7eOzOS3VtST2rXf2zd0X1z37lVKVvGfXfIPRfe0WqP/cso5N5SfXTZ0uq - 50Hk57oUV890Lq5ubhOqjqhRSK1dwlfNWTnnzVxP57rkPdY7DiRuw+YVNihwm/erIHJCEDpuszvz5Nxs - QlSt0l7hNnAZJirH37VEiWhl48ZP3RL58OGXETn8tzbJmbrp8IEad0YOxSTnQpdplSJFuvK47QCoxkVa - xWirZJpIp0Uujz+5WOfo7ztHHnGdIxV7lzLKtWfKcnETi5zlnckVeOQayQNXelWz/9mzkvrnSxVVpX95 - 1da3LNR5WfVfAMn8O6jzL2CxfApVrpE5iJxkfrJThHrsqQj1zXpF1bZlc6v5C+RUsZ3cZSjveBC4zXuE - BJ3Uc1TQam1nSPaKu2rbx3JxDr/72IED33BL4ocO3VJatUpE5PBbQ+TQqMY3plmQxUVOP79yYiQ/PWmV - DD9kZZHE30cS1rF+/I+1x9ftSijftS+p/NShlPLbE6WUP58qrcSD3JOffkDuN5+Liv+zK8j7RSjy/uVU - W79oNbYvEQUyj1J/gTrnAuiXsFg+A5lfkMj8BIicZH74yXB1VqNiapfovGpQ4Vxqjno5rnj19ErwHgYy - J4Y7ST1XY80n3wB0NNgrGWKcHL9z7SpVGih79/6aDjX+B9T4J27U+PZ0RQ4DA/vxmB2V1LhxE4lMWXtg - EczjTzDWOfp7zpHHhdbFlYvAp22KK5+3KaF81dZJ7D92KKn8CmL/95OlFVunSNsvHUvd/KVbac1WoRq3 - 9YnSyNzWJ1pX5qW1RdCvYbF81rWEehFk/lHnEpoyJ5kffTJCPdQxXD3YIVxd0ChAfa5cXjWsiKeao3aO - q17dHxC6ZydPGwjpBMBdgzhdympb2RIwboDwWBU84XedPmHCYrckvnev0xt/oMZF5FBW43tSNleOjFzi - NnKYN28dEvkCncjlTZaZVsm0RWQWSfw9JGEd58f/OHucb1VcESCpE5/oxP4FSF0o9s/blrh68akSWlLl - ux6RWPAsq/7eK0r944VokHsUEi3wzBFN/AGf/wbK/Aso809A5h93cZI5bZajT0SoB0Hm+9uHq3vbhakL - Ggeqz0bnA6FDodeFQu/tFe/V18uGXURJ5iQkQUTsXhH7eXLK87HcW5IvPq1bP6ucP38jzaRKrVr/SsMb - l9W4612AQkKGY1/O3CTyQUBPQOzNyRfCdkCmrQa2CObxJxjrHP095ygVkcukzvuyWv+oZfHk420i1DMg - 5/PPQHVjSOirbmWQK4/CsBC98kj1RyhyEvkPzz8g80+hzknmZ0nmVOYkc6jyfSDyPcDONmHqnIbF1M5R - edSiBeGhN855OXuh7HEgIPa9cLMJqvJGANMrtFeMGzM/Fj45fq/ggIBQZcGC/W5JfMOGG0rTpiKpwnF8 - oxpnbny3pMbdDwDlz9+UJL7SYKtwkbMj0Fp/RyP25hTd4/IL4WNx/Kwn/N/zhLeOc+Y8zm6JXCb2c60i - Eg62CFOPIpVyvEtJ9fTTpdSPu0aqnzxbRv3suTJY7HQueH4NNf6dDirzL3WrRfjmp54qrh6TyHw3iHxH - 61B1GzC1blG1dancqr93dhUEtB3gru9U5cyUc9HTmF5hG6K8Bdw/lifH7zGif/8Jbkmc+3H27p2MHYB+ - SzOp8mAc37UaZ11trlyFSeR80TPLjmf67fMsYsqcxGSd10c7r+km8o9bFbftbxKmHnqiuHoE3vexziXV - k0+XhkKPVM+B0M91La1+9Exx9TwUOD1yWisk8a8A3n/gmxdXT8EvP9YRnjksln1tw1RB5ltB5luAMZUK - qXWL+F4HOe0BOLLPKKJRlXM4qBDAjnLR2Jfjn7gA8POb1KnTStm//3e3RD5nzjWlfv0EbWPlh3Pjh6Qp - zgdJFXfj+AUKtCaJrzGocbnpMEtsaP1PnHPrZz4a0VjH6689Xh4gaEWG0V6RPz7SNPzGoQ4g8k4l1aOd - S0GZl1ZPdIlUTwInuvBj2CddYL/ARuFCJ1U4rRWSuMDFp4urH+Pzp0Hmx0Hmh2Gz7G8XrpH5dpA4yfzD - piHqhnrBN18pU8AeldcrCUS1FCBByao8BB8XBfLpqtwTt3/7ZsF8MSlQoIjy/vub01TjnTvbtY0jqlQ5 - r1XVxsQc1VsO5U4VTnGuSrNzPCxsnBgA4gsd1bhxAwmzRc4w/ZhxtyV2q6S8AOL+P/ZuxnqS/7VPcuv4 - Zv7j63GmRYRytmWE8pEEV8R+vFn4lYNtI6DIdSLvTAIvo4GkfgQEfbhTuHqEJA0//FSn4po3To+cKRYu - fhIXQfgf43Nn8HUnYbMYyXxLCyjzBiG3dzYKtS+oEZDUKSxPUgHPHIkgm7EAvXLu/F4cYLXtQ6qcpPR3 - ERN+zrC+fcelSeJjx15WateORcPh53qniqiqFSS+X+9UEVOc7pMqBQtqanytTuI9cSsKsjjJyXUFLnLy - hU8sEhvXFnzxOfHilyF63S1CyvyEZJ3j/+wce+xrHKYcbhqmHGsWrpxsHq6c1on9nE7sMqmfaB6RfLAV - Fiyhxo91Lq0e14n8ZJey2v3DnUqoB0HkB5EZP/REuJYdZ4aciRWqdA4KfQwSvwCcB5GTzM/y8yDzIx0i - 1ANCmbfSiPzuLhD5joah9m0NQ5LGly+cWKuwbwLIZ7FOVGLhjqqcClN45WI/z7+cnPAzWzVs2D5NS4XF - WM64IfvG2XBoVOMHsXEEt3Fjw6HoVHE9xRkWNtZMjcu94/LmHK6mYq1FTquL3No9KJNcAx6b6gcrH9YP - UUCWyu5GocqBJk5iPw5SJ7FTsQtSP9U8PHF/CyhuEPlRicRPdonSVDktlwNPhasHQOIHdciEzjz5aSx2 - ngWBf4RbErkg81Mgc/rmB+Cb74Fvvr1RiLqncdglqvLtIPLtDUISV9cNSugekS8+wCdnPEh0IFAKCAaK - APkAqkzmyknmtFk0Mv8r1Dl/dlhYKWX+/L1pqvFevbjA+bs+/HPKtBirXDnGDbmNm2g4nOdyHL9AgRZU - 4x8Y1DgXho2RQ7kgi1aUOE7yAvFf/oJnqaz/TGVZx806bum9BjzW1wtWiI2AIHWoYQUEqhjV+qnmEXF7 - moaBsEHkneiPl4UnHqWjrKbUBZEfQF5cgKQuCJ2DQScALnjSWjkHcieozAWZHySZNw1VDzQJvby3SZgd - yjxpZ8OQRLzYJGxtEJLweoXC8bUL+zKiOB3gsJC88CksA0Hm3Fj6f0pW+ovEW6++OiNNEp8y5Yq2aQT3 - 4nTu/nNcJ3KnpeKsqRVxw7QbDkNCRiCpUohEPlwncjEAJCKHVOMcojKLHBp3WNJe7NJ7sVhfZxGLdQ08 - nteAx+o6QcqausHKWmAdQFLHQqNLUoc6vrOvY0nYKJGwU0DknaPUU12iNTI/CrvlAGwUKnKZyB8idHz+ - KNQ3FztJ3lz4JKkTgswPNccLRtOwq4eahtn3NQlL2tMoNHGHTuZ4oYlfUTso7pnwvLHYji4WZMS6Vmaj - hV9OMudCHj3g/7k6x/fs37Xry8rFi7fdEvmOHTeVNm2SsMD5A0j8Y5cLnOXKbU0ZxXfXN85OlXz5GpDE - l6ShxjlAVR1g7p7vWuRpWH98LN618EXOWuTMJG+vLZJ9PEn27zgvHitrBymrQOaEGanLSh1qmGR/c1ub - EureJyPVQ53KwiuPhjLXiRwq/SDskv3wxvdLitxI6pzu5FDQYdwehTdOQqdPLkhdI/NW4erJFuHXTjQL - t8PqSUoh80ZU5aHxm+uHxMESih0ZXSi2Yn5vToKyvpWEJcichEUfWCbz/1qd4/u1rV+/jbJjx/dpqnFa - KpzgdG7hRkvFbIFzp1RTy+GfBS4tlcDAlzDF6Usif9mFGhcDQGyMrAzI+53KL3LWIqdF3pY/nomuAY/l - tYIUAgpXcUXqQqWT1FfUDry+ulmEurl9aXVnxzLqgSej1MNPlYPVEg3LBR/D+973RJhG5DJSkTlI/IAO - 2ihMrciETlI/0SZchT9/Hf68/WTzCPuRZuFJB5uEJe5pHJqABdB4vKjEbW4QEksyn1UtwNY6KLcNZjhJ - jpYCSSsfwIidUZ2nkPmjqlF8fZXSpSsoCxceSJPEx4+/otSpIzLjtFTkBU5hqbBP5UNpgdP18E/JkrOU - 3Lmr8O+bmU41zg53MzVuRQ4z0RP471B71s94/JV+CpELQjeS+ge69UL7hdbL8tqBV1c2DlfXtS2lbmxX - Rt3aoay6+4loqPBokHoZdc+TxfFxmLoXW8Ht6+DEQ4ROEgeBy5AJnYuex51EfgM5djvJ/FSLiCQkaxIP - Ng1L2Ns4LH5nw9A4Qeab6ofYiN4l8ivFfLTt4ugXc2GvAMCBof9anVPtMy8+efKKNEl85crrekrFaak8 - 3DXuTKmwa7xs2dXpWuAsUuRZ/l27AG7jJnLjTKoYvXFLjVtEbantLHYNmBK5TOpGlb6sVtClpQ3D1LVt - S2Mz5jLqpnZloc6j1S3to9TtHSJB7MWBUHVH+1B1d3v0qehknorQZSJH5JCxQ0HqnPbUFDqI/ETz8FsX - QOQk849aRSSB2BORpkmA1RKPhdg4KPO4bU5VrhE50zejyhVSyufDTkMeHoMBRhON6lxOtaTLatGV/duD - B7+dJomfPn1b4eCPcwyfFbX/vaUSHj5R8fEpwb9psk7i3DjCrBxLeOOWGs9iT2RLNT/+qvmvPEcec6oF - aNZKWqD1Qh99Sa3A5EX1QtTVbSJB5mWhyqNA5tHqhyByKvQ1GBha0zZY3dgmRN3aFoTezknoe42EDsJm - C6JG4jLwGNX5IUx6HmsWduvjlk4iP9+6eNLHrSISMbyUgFhkvCBzKPPYrQ01EtfInMmbaVWKKo2K+ZH4 - 3gK4s1BhgFlzqnNG7+SF0DStFnz9qJ49X02TxNml0r//JQz+/KkN/jjH8F2lVNJnqXCBU48brjJR4ywV - Exsri6SK5Y1bJG4p8ix2DXgU8c6p1Cjko3QNz6u8Vq6wAsXtltQX1wxMml8nRF3VOlJd06YsVHm0ugHY - CDKnQv8ADYnLWgWpK1oGqWtbBaubQOjbTAidJK4BJE4YyfwAsuRIrdymrYLmRTsGk5JA6InnW0ckCDJH - ZUDc/sZhsSRzJFlSVDnJHF6+8mRoHiVXdm1XeU44Up0zfseiLTOrxTRzjq8d8OSTfZRjx2LTJPIJE64o - 9erRF+cenK4Hfx6kVNLOjAcGDlBy5swr3mGIbdzExhHyFGc9/K7MjbtKqljeeBZ7cv+VCtD63o/XOwA8 - 7z36AW8D64CzJXN7Ki0D/ZVBZQoq86o/rNaX1AxMmFMrWF3ZGuq7TZSGdQAJnQp9Zevi6mIQ+dIWgerS - 5kHqShD6utbB6oc6oe+EOtcUOsAqW0HkRjLfD2sF0cM78MaTz7YAmcNaoSInSOb4OJ659qNNw2M1Mm8U - asPip2avkMgFepXIpyCiSCJkN3exR7FaaGO0bNlV2bXrpzRJfP78a0qzZpze/EHrUnG9B+d2pFTW6764 - +5RKiRLvKv7+MfzdmZcnifcEugGMW1KNtwfYqcJCMebpOcUpJl7l+gJrHN8icUulZ+JrgEROgiMh8C16 - R4CDJtxt5mCoXy6leYC/MhikvrBGoKbUl9YMip9dAwTdqqy6qlWU+kFrJ5kTa6HQV7QuoS4EeS9qHqgu - aUYydxL6By2D1fWtQ7Apc4i6HXbLLr2PnGTOBkQjoe9vC5XeJOwuEivJqA2wQ4UnQZ1rZE4iPw8ih1KP - A5nHamTeJMxGMucwk5HMB5UpoITjb8HfRF+ZBMeFUGG1iFSLcYDoWY7fb9r0eZokzhH89u2ZF2chFjdS - duWL79J7xsXgj+uUCi2VQoU68nfeBIgFTnrjxm3c5E4VdtBwP065UMzKjWfiJ7CljB8vZfxPnQ8SOYmg - ua7smENmZawgd47BzyGpl4JSfyIkD+2XuNnVgzQSFyCZr9YJfXmrEur8FkHqfJD4wqaB6iLcCkJfBkJf - A7tlIwh9axv458BukPhewEjmMpGDrO1nQOIEyJyqXCNyWC1xIPNYjcybhbNm14YpUMVI5oxNjsUiKJoU - SYwvAZwEpdUiUi1G37xr3bqtlTVrPkqTxE+duq107WpPyYu79sUZNWSXirPZ0Dn443oMPyhokLFrvKf+ - QsRR/E76iy/7xhsCNYEYgOsB4QCHo8QUp6XGLSK31HgmvwZI5PRWmXYgIXDBjB3WJHeSBMe9BbFTqS/z - y5k9tmohX3VQjQh1UYsyDxH6spYl1Xkg8rlNA9T5IPIFOpkvltS5ZrdAoW9uBf8cZM5dgtivQjJPRehN - wu5RkZPIocqTCCjzRG5yATKPR6IlDmQeew5kjs/ZSObsimG9AAaGUilzkvnkikWUygW8SebDAKFajb75 - c3XqtFQ++OBMmiTOxc0XXkjWFjerVftCH8E35sVF1JDTm2t0S4XNhq4Hf5yWSmX+njMAV3FDvug2ARg3 - rAJEAaLh0NipIorErCnOTP6E/qcUofVz/9l3BiRykgAXyVgPS5+VxEBybwDQeyVZyMTePUeuHFdrNKtx - q2rxomrPymHqe41LpxD60lYl1blQ3nNA5HOaBKjzABL6Q+q8GdR5C6jzllDn6CDnLkHsJE+lzkHkbFwk - kQsyZwSRRE6PHAugGpHjNvYjbHxBMmeLo0zmwisnkRPvVi6q1CrsQ5JkJS4nQWXfvDeUuG3VqtM2knRa - GDToEoZ+4tOxuCn74svckjgtlYIF2/H32yCRuGypcIFT7MUpxw0j8Tj7xvn38J0Gh6FEw2FKgZj1hPtn - n3DW8beO/19xDZDIqeTorTJ7HAMwvkZyZ1cH37KT2Jn6ILFTsbfKkSOH/c01b9r7Tex3ucmTTW6UDS2s - Pl0xRH2rQSl1actSIPJgdbZO5CTzuTqZy+pcs1uawmsHoa8DoWvqHGS+S1bnjUM1Iudkp0zkTK3AYtGI - nCROIJ5ow2M2tjWSzGGzKMiZa8pcJnP2yMysWkypX0QbdZ+gkx+tiIENGrSLXb36nA0dKhrcEfmoUZe1 - hEr16t+6GPo5hKGffSjE4gg+d/xJny8eGNgPKZV84l1DWgucnGI1ixsymSM3QVqdKpYSt+yVTHwNkMi5 - Kz3fknORjKqOqQeSO2NsFQEmIbg5AYmdir1etmzZkt7f8n7Su5veTXp7/dv2oe8NvdTquVbXS4UUVjuU - K6aOrFMERB6ozm4coEGQeSp1js8vbgL/HLfLmkCdg/w36eqcVgvV+T4QOTaz0IhcI3NYK1Tkgsi52CnI - nEROcIMMmcxR8vWQxUIyn4NETsOiWtZ8EjC+RYun4zZu/DT2woVbsYLIXZE5Y4YNG5LEv5cSKuYbRURH - b9JIPD2+OAd/fH3L8nd6BzCzVJ7A47S6xBZuPC98EZZH8Y27/1hqPBM/gf8KdWd9z4z3roFEzhQHF//o - GdNqCNfJncRe2kDsMSR1EHni3L1zE2ftnJU4fft0jdSnbpyaNHL2yOS6z9W9XjTAS21eJrc6ulbhVGQu - Wy0LQOKLAI3MgaUg8w+aBasbZKulUeg9qOtkFmcJIod9korISeZc8BREzq3pSObcIAOeuVbFK5M57RUS - Oftj3q9SzBbh73mlXbseV1GCFXfhwk3gllsyZy1tkyaJWqOh+4QKq2nF4qYzL+5u/01ns2FDkvgyicRl - S0V0jXNhmu+OaIXxfKS1wGmpcYvILTWeya8BEjkX+zjGzgUyJjnosZLcuWGDIHZuqyYUe/kcOXMkLD66 - OGHhoYUJ8w/MT5yzZ46T1LdNTxq8enBSsTHFknM1ynU9oGgutV1UHnVy3aKaKhfQlDnIe0FjeOfAIkCQ - eYrVAkIHAd873DQ8GWRuJ5lTkZPIkV7RrBWdxDUi5+bQBImcuxqRzPH1GpnvbRyqbZwhYokk89nVisW1 - Ccp9re/zA9Xd279WT55MvOokctdk/tZbV01I3GxykwmVLVKPivvFTZJ44cKdQeLa8NKLgGypMKVizIzT - UknvAuf/tIvdUmsZT61Z5yzznzMSOcfWCfqq+QAulJHYOdYuEzsVOxfTory8veJXnVsVv+L0ioSlx5dq - pL7g0ILEefvmJY7cMjIxeGZwkvco7yTP5zyTc9bIeaNUkJf6XIV86izdZtGsFtyfDwInFjZykvlindCX - wzun1fJh/eB78LqTMcFpJ5ljND+JuxSRyGGvuCRyQebc2YhkjuZEjcxFLPHNmCKJ4UWKqiMGjFfPH1fU - j44p6vHDf6inTiVdcUXmb755xda0KZX4j5ISf5jEnWVYTKiI3X7cD/2QxAMD+4uoIat4BYnLG0aYWSrG - CU55gdMT38eyVDK5CrMIOvMTdHrPMYmcyQYujBEcHmHawYzYhWKP9s/nH7fhsw1xay+ujV99frVG6stP - LU9YcmxJwvg94xOCFwQneo/zTvQa4pXkNcgrKVenXJdzxuS8WT3CVx1YraBTmYPI5zbSyRxEbiRzzTev - E3RvV8PQZJA5OsnD7SjM0oj8dItwjcgRO6Qaf0iRk8hlMueWddy+DhW4CvrL7ZXLlFPfGjdHI3GBc27I - fPLky7YmTRJssFNsziKs01KHypGUnX5Eo2FU1Do9ZsiEiuu9N0nioaFj4YtHUolPBcwGf0RKxZWlYjbB - acUNLRK37JQsdA2QyPmkJ6ji2AzITg5B7hyUkYmdC2nlCwcUjt3y7Za4D7/+MG7Tl5viNny6IW7NxTXx - H3z8QfzkI5Pjg5YHJXhP8U7wHumd6D0ChD7UK9FrMAi9Za4rBQvlVNuUzaO+CbuFRK6ROYicWCArc6hz - 9L7chR2SzH07SebsJMfip0bkZ1qEa0SuI5W1IhM5LRaQPpIsYcqA0vkvtarfQl0888NUJC6T+TFNmdsv - C2U+fvyl2MaN42Nr1PgeJH7BhqlN24MiLEHiIitujBm6n9xkXjxPnpok8UUGEhfNhmLwR4zhi5SKWWac - L8KiT8VS41noSZxe1WZ9XeZV8CRyLoYRfPIT7oidZFE1rFRY7K6fd8Xu/HFn7Pbvt6eQ+sbPN8a9dfqt - +IDVAfHe73jHQ5UneI+RCH2YV6LnC7BbauW8Hh3krfaNKaAR+byGD5P5IpD60lqBd9GDnoz4oF0n8yQU - aSWi3lYjconMtRy58MgFkQtVvqFucDxKwa716tJH3bn+nHpBUuKyKv8Yj5899qd6FGR++nTypZEj7XEN - GsTG1ajxXSz6U2LRnwISPwYcsVWsaEbiG1KUeFpbtkmthnJevCeOr9ylwtoEMfjDCKhZSsWyVCzSttR3 - Fr8GSOTaLvM6uDBGuCP2ulFVo2z7/rXPtvf/9tp2/7pbI/UdP+yI3fbdtth3LrwTV2xjsTifaT5x3q+D - zCfqhD4WhD4KGA6FPtgrMWeLnJdz58uhti6VW32zTtGHybwhFkBrBt5ZXTcoGfuJ2knmyIVruwQdbRam - VdmSyFGoRVWuETkhkzjvv1e5qL1CiVLquKFvagR+8YSiXgBkAjeS+Zmjf6r9+v6k1qnzr+Rq1b6Jq1z5 - fFylSidiY2KOAiTxw8BBQt8ggkqcJO7Miqc1fi8WN7Nl0/pfXgHc+eIcxhKDP4yDMiIaDhj3KOU7KstS - yeJPaEt1Z17V7e7cPvRKbkLssmInUbSq2aym7RD+d+DPA7b9/95v2/v7Xtue3/bE7vplV+zUz6bGFtpa - KNZnpk+cz5vAFOB1nweEDoXuNdwrwbOPZ2KuLrnsOSrluF4x2FsdWLlgajJvoBH5bXSgJ6+pG2TXyTwJ - nnniAewSBKsknmROIgdSiJyJFRI4pjtjX44scLlto9bqkhkb1U9A3iRxAVdkfnzfn+pLPX5WG9T6Tq1S - +ZQKPzwJ27TFVax4NA4kHgsSB0jiB2wVKuyxlSv3gMTTkxUniRcr1hNDP/lJ4mJxU+z4I9fTcnqTvnhD - gINZotmQCSLGRbkYnQ+wLBWLvC1FnsWvgTQvABO1/kyLri2UI3FHlMOxh23830HloO3AHwc0lf72V2/b - 8u/IH+sz1yfWZyrwjoHQJ3jHe40Ckff3TPDs7Zno2c0zMWeDnFeKFsypdkZUcZ7ul8+vjyQLiHwliBzb - zdlJ5thqLglJlkQUYyWg4jaeZM4qWxI5pzp1e4WTm0klihZVB/UeoR7c+jlI3KbDQOYGi2Xz6n+rPbr8 - pDat/ZXaoPoptXql/Wr58jvUihUPJYDA4ypUOAhCPwgiPxDrJPFtNlTS2uSBn7Sy4kFBLyteXsEk8SmA - cXFTLsQSvrjoUonG18vNhmLwR2wwbfniWfzJbKnxrKnGed7TJHL54tBJ/eWnX35aOZZ4TDmWcEw5Gn/U - SeogdKr0Sd9Msvnv8rf5zPex+bwPIp8GvCsR+mRYLq+BzAd4xXu+CDLvBYDMc7XLlZwjKsfNhsX91Um1 - i6rz62lEfgs7EyVDldtJ5mvrBiVhkCdxc4PghN2NwrBLUHgcFj/jkC3XiBy58/iXShe40rJuM3X22ysl - AhdEztvUqlz45Qun/652afuj2qTW5yDxE2rdKvvVOpV3qVUqbFPLldt5rUKFA/EAyHwfsCcWJB7rJPEV - wDJbegZ+QkKGY8u2UiTxaQYSF4ub8o4/7LgRvjijhhzOEl0qxmZDy1KxSPyRnssW6Wcu0n/kkw8ymTBg - ygDleNJxDUZCH/3NaJv/bn+b7yJfm+9MX5vPDBD6dJ3QqdDfBpFP9I6DTx7n9ZJXvNcLIPSeIPPuwHOe - iTmq5bhWAQuhgysUVBfWDLxJIse+oXaS+eo6QUnr6gUlYjIzAZnweGzCHEcyRx9L7OsVCyeXDQlVh/Yd - aVDhMok7idxI5lNG/6a2b/qD2qjmBbV+taNqvSr71DqVdqq1K21Ta8VsVWPKb6Yyv4J4YXz58rvjoqO3 - xoHEY0HiAEl8ka106Xk22iauEBo6RvHzK0cSZy2wrMTlxc2O+BxH8OmLs7iMtQjswBG+uIgaMvPPRJHY - fzRde49aT97M9eS1zqd1PsU18J8Q+bzxi8crJ+wnNKQidKj0V75+RfHf6a/4LgCRz9YhEzrUufck71iv - YSDygUA/kHkfoDfsFhK602q5HJw3l9qrRP4bJHLATjKHKk+CxZK4vl5QwoZ6IfFbG4TEvVu5WHLHkDzX - O7furC6ZuUknaiN5P0zm9MpPH1DUIX1/UVvWB4nX+EitX/UwSHyvRuJ1QOK1QeJEjYqb1YrlNkKZb72E - sfv4qKi1cSDwuMjIpbEg8Vgnic/R8TCZs0NFr6VdKJF4T9wniT8LdAE49NNWJ3EubooRfHbfsA+Hvrio - p7V8cUuBP/Jz1yL+zEv8j3wxgEy2zNo1K4XIBaELUu/+RXfFb4ef4rvYV/GdBwgy5y0JfbqPDRnzWK+R - XrFQ5bGwWKjM47xe1NU5rZYengnZg7Mn586V/VqXsDypiBwplkRYLAnvVSlq7xya91r9qnXVKWNmqB8f - /be2kOlU3GkRuU1ds/Bfao9OP6vN63ylNqp+Wm1Q9aBat/JuEPiOVCReO2aLWqviJrVK+XVqVNkVatmy - q5KQTImPjFwCIl8YBwUeCxInTIk8ImIysuI1jB0qJHExufm0TuLy4ibLydhqKPLiojvdzBe3ulQsUn/k - 57FF6pmL1B/5AgC5nF3/yXpTIieZd/i0g+K3RSfy+TqZC0KfpZP5GyDzMd42qPJYqPJYr5cBknl/wKnO - 40HkCfhZzFgfbx2U2z63eoB9Ve2gpOnViiY/G5H3WsVSUeqwl15T93z4iRYlZApFJFLSIvM3YKU81eJH - tVmtT0Hix0HiB9T6VXaByLebknjNCuvU6uVXqhXKLFRLlpylli69OAETm/EgbxC5RuISkZPQnao8IuIN - kHgtkvgqgxInicsJFW61x4082P8uelTE4ib7buTdjMSOP8IXt7pULCJ/5OexReRZmMhBKIFFgopoC5yy - Epfv1z9fX/HbJBE5yVwQ+lxfBbFEGyKJGpF7vwoMBaEPApG/klqdZy+YPR4/byYwEdhTs5BPcvvg3Nci - Q8PV/j2GqBtXHE2VBeeiZVpkvmvDH+qAHrBS6v6gNqn5kdoIfnjDqnvVeljUrAcSrws7pU4l2ilbgM1Q - 4hvVmhXWgsRXqFWjF6hVouaoUaVnksyvliw5O54oVWq2KZmTxPPmrU0S/wDoA8hZcUHibDSUN1AWCRVR - TWu2uGn54hZxW8RtXQOproFHuiBAOrVi6sS4JHESerkz5RS/9SDyRSDwBTokMveZ5aP4TPZRvMeCxEcC - w3Qyp81CQqc6hzLP5pstDj+PGz+8DWwPCAi7+XzXAerKRftUTmAKyMM8D5P5A4vl3Ym/qV3a/KQ2r/2F - 2rjGKRD4QbVBld1q/co7ge1qPZB4XZB4nUpbAJL4BpD4GpD4MhD4PI3EK5edqVaMnKaWLvG2WqLE9Euu - yDwiYpINStyG33s10FdS47ISl0mcG3aIhIq8uCmGfsTipjWCbz2BH+k5aynvzKW8XZ3PR7ooQDbPtHm+ - jUsi35+wXwk9Ear4rgGBL5SIXBA6LBYocgUTnwoiiAomPRV0sdgw7ZmK0JFgicXP+h3YGx4eeblHjxGX - ly8/fvnYsbgb7ELhGL0ZkWsWiz69Kfzy7WucKrxVvR/UprU+UhtXpwrfp5P4jhQSrwcSrwsSr1vpQ6hx - kvhqtXq5pSDwuSkkXqnMNDUmcqpartQ7aonib0OZz0h6oMqdyjw8fEIsPHGS+BqgH/CCTuRyt7joUOGe - qCJmyO32jAkVa+jHIu5Heo5axJ01iNt4nh/pIgHRjOv/en+XRL78j+VKgaMFFN9VLogcyhxxRCeRjwNG - A6+mIvNY70HeyZ7tPG/4+vrfbtCg7aV16y5eYu+JwPHj8ddlMjcbtRcWy6RXf3V64bU/V5vUOGmqwkng - ToDEYzaptaHEa1VYBRJfolYFiVeNmq1WKTtDFSROIifKlgSZl3jvGmyWBEHmoaGj45BO4YsQlfgAich7 - 4j6z4s8AMomLnX4YM+T4PTeJMCZUxN6boppWW9wkrCdt1nzSWufdOu//LZGvwF6dLol80s+TFP8DiB6u - MCFy3V5BaiU1kY8EkQ9HB8tg78s+L/uoeQbnUfO1LqBWqdLg1qhRM5IFgZ85cylZ4MSJhGuCzM2IfP60 - 39XuT8FGqfMtvPBzuhe+D+p7F5BahZPA68FKqRuzUa1TcR1IfIVao9xCtRqslCplZ2kkXrnMe2olncAF - kVfEx5GaxfL+ZZJ5SMjQeD+/aNpBVOKDgJcBbhLBzLhIqIiBHxZhkcRFVjwG9xkz5Pg9N/Tg4qYxoWIt - blrq/JGEl0X4WYfw031hgFhyZM+RXUH/uEsif+HrFxS/nfDHl5nYKvqCp897OpGPQZnWMO9LiCDe8B+S - W83/akG1yJgANWBciFoYGzc3a9bpxpgxszUil0n87NnLdoI7+pDMz8FmEWS+Yfm/tJ6UlvW/VxtjuKeh - nkgxeuH0w4UKrwcrhSReu+JqkPhytXr0PGAuiJxKfDoI/F2NxAUEkWsWS+l31JKwWLBhst3HpyQXZ0ni - I4EhAMuwBJFTjTNm2BEQe26SxOWsuBmJWwkVi7zT/Ry1iDvrEPd/rMhBOtEly5d0u9DZ7GIzZ/RwqTmR - wx9PwELnJXSt3PAb7q/mHZFfLTSmqBowIUQNnBiqBk4AxoeqhasHqJ0797s2duzcFBUuCJy3585dSSIE - me/c9Ic6tP8varsmP6iNa30CAj+F4Z6DGO7ZjTTKTi2RIhY0HxA4VfgmtU7MepD4KrVm+SVqDY3E54DE - Z6pVy05Tq5SZCjX+gMSNqpxkHhrwjOrlFXgdx4d2yniARVjDJCLvifsc+hF7boo2Q5nEufm1yIqzlpYb - e5DERULF6lGxCN0idOsacHkNpPviAKl0av5087QTKxv06CEXOOf5xmEgyA5f/CqU+C3/qVDekwqqhV4H - eb8e7CRvI0DmhSKLqS++OO7KuHHzHyJyQeIffXQtcd++K4kDB/5xtXmT79VGWkcKCfzBdCZz4RpSFLjT - C9dUeCVYKTFrNSulZrn5IPG5anWo8OpRM9RqGom/q8FI5DKZFy/WUc3vU0AN8M55FceHmffXgTHAcGAg - wMQKbRWqcXaLMyveEODAj2gztEjceoKm+3loqe6sq7ofqcbWZbxF71hxlR/fFb9LKXa4WLzvchD3LJ8r - KMu66T/NX803M79acE4RteiCIDVofpgaOBXk/QYwyYTEQeoBw0PUAsWKqiNHzrg0YcIijciFGhckvnv3 - lcQhQxISW7a0JdSs+X8J2PTharVKh1B0tRfEvQvxQTHYw1y4M1bIRIq2oFmJKnwDVPgHaq3ySzUV7iTx - WSDw6WpV+OFVQeCEKzKvWOp1NaxIEzWfp5f6RGjuK00D/C755sh+CeTMMqzXgBG6ImdihbYK1TgtFcYM - mRU3m9qUi7AsJW6Ru0Xu1jWQ7msg/V/o4bFpxvYZmiJH62EcKmwT0UeejOraK9hc4sbECxPVPFvzqvkW - gbjnFgZxB6qBS0LV4KXhavASJ4LmgsjfBoFPAV43J/JivYPVChVq3B4/fmHyxImLU4icJL5hQ3LSgAHx - ic2aKYk1a/6WUK3alwmVK3+cgJ17EtBKeK1KBeNkJnPhzmw4Y4XagiZUeG1NhS94SIULAjcj8sq6Tx4V - MUwNLlBNrVbQ5+azEXku9yyR71LPkvmSK+TzTgZB7wPG6YqcHjmJnEmVjgC7xemLM2YoBn7E1KYgcbkI - y7JTrCdyup+fllLP2kodnKLtKkMCoTfLxAQjcCQberm0BBijm14srNj19Z+uv4ndgG7v/GmnuvuXPeq+ - /9uvHvzXYfXwn8fU/p+/rAbvjlCDPwBpLwNI4AIk8UVhatAsncgnm5M4bZaiHYJUxA5vjh+/CES+RFPj - c+cm2nv0iE1q1EhJrFHjp8SqVT8HgX8EAj8Vj63X4rHtGnAwoVy5HderVOBUprPsSkxo1tYWM+GFI1ZY - Mw0V7o7MI0N6qcXyllYbFPW70QsErgEk3hvoHJ4nuZhPTpL5Ap3ImVrhNCePIXtUmBfn+H0MYLbLj5HE - rZihReQWkVvXQLquAY+cOXOhI9sP4+QFsXNNiFKiRBR2ha+l1KvXRmnbtpvSrdswpU2b55JbPd1WPaKc - UI/HnlJPJpx9CK0/bq8GbwORrzSQuK7IgxaCyKeDyN9ybauQyAvXC1A7dux9fcSIhckdOy5KfuIJxV67 - 9r/t2HItqWrVi4mVK58FgZ9IcBL4YeAQesIPcdMH3O5PLBf9oVqtwmaNxFl25ZzQXA0CX4ZY4XwtkSJ7 - 4UbiNvuYFkvJgI5qYd8iausg/2sg7kvECyBwog/Qt2T+5AZF/EjkJ3Qi5wsgh4CYG2fcsAHAPTfZoSJ2 - +WGbobGSlkrcInHrCZyuJ7ClxLO2Ek+psf3kkztKWujVa9TVEe+NNiVwQeqVTlVTgzeByFc8rMY1W4X+ - +Hvu/XESed7SxdSYmOFXoqNnJ5coMSsZ6tsO9Y3t1k4CRxOhvrlbj0TgGomnAH3h9gqonK1WYb1as+Ja - tQZ6UqpFL0IShZFCJlIe9sLdkXnFkqPU8ML11PyeOdVuEfmu9C2V/1KfUvku9S0F8i6VHwTuJPH+pZ0o - ncfTDiJeBnCqkzW1TwJc5BTeONW46FARGyfLo/cWiVskbpG4dQ080jXgkRaJ8/O1ajW/teTQCpdEvvj/ - lqthR0uowetB4stNiHyx5I+bLHQWeS1EzT8yRM3dJ1jN5VtYRX/3pYiIKcmogE2G8raDuJOgvEHiBwn4 - 4VTfDwgcn+M+mth+bV9c+fJ7sPHDh5fKR61Qq0SL6UzncE9VDPc4Y4XOxcy0EBXaSw3KV0ZtEeh/Y2iZ - gpeGlC1w6ZVIEDYIXMZLIHDsD5o8sEwB+xMheezeObIlgayHAFzoZM84h39oq3B6sxRAC4vj98aYoUXi - 1hP4kZ7AliK3FLm21VtaRL5ixcnEOk0bqCfiz7gk8oFfDVWD90KNr3bhj9NWkfzxAEQMC491kncepFRy - DwtW/YcGqT7ti6m5c1e9hd10ksPCiHHJsEvsQBK2WUsEQOIaQOROFf5gD829seXL78IWbFu5BVtc6dKL - rkRHcqhHTGdO06KEhEzk1co+TOiVS09SSxZrpRbxLaA+E5732siogpdejS54aURUweQhZQqAtEncTvJ+ - hQQODC5bwD4sqmDSyOhCSVUL+SSCpJcDYqGT/jhz49yyjXFDsdMPiVzec9MavbeI3CJy6xp45GsgTSIf - Nuy9Sy+M7O/WVmn2USs1eLvuj8sLnSKtsiBMLQZbpeDEEDXfKJ28hzrJ239ooI4A1btmYTV//iY3Q0JG - JIeGjtTIvHz5vSDyfTqR79dJ3Ll/pnMTZBL4bm0PzejojbHY+AHbry0HlqLEatb16NLTUqYzmTwRRC7I - nEQuk3l0WD81pEAltVEx35sg6iujogtdIsZEF0zGbfJI3A6NAnGTvIGhZQuSwO0jogsmjSpXKOm1ckUS - XyiRLyG/Zw72qTO5woVO9ozX1Imc/rhM5LRV2KOibddmKSxLYVnXgHUNPOo1kCaRt2jx9I33N81ySeSH - 4o6p0ScqpvLHg0DgxaDCCyNuWABKPO+7oWru8SDuUcBwQd4BIPDU8CxeUC1cuMtVJ5GPApGP1Yl8L4h8 - PxQ5iXw/FzU1C8WpwDUCt4HAsQnycrERMrZfW4jNHmYncoS+fGnndOYDIn9YlVeJnKSWCmirFvUronYK - y3N9NMibGAPyHlvOidfKA7gdDVCdQ6XbCRL42PKFE8eVL5L4eoUiCZMrFkloVMyPI/v0ytk3zvw4FTlj - h0KRi8ghFTmTQ1zktIqwLDX2yGrsUZ/01tdnvhcKt0S+bt2FhKp1a6r7fz1sSuQn4s+qU76fqgbsi1AL - Lw9TC84LU/OTuGeGqnlmANNhm0wLVnO/CfIeA+U9EsQ9TCbvYiBzJ/xeKKrm8i+A3pKXLj0g8tdgrZDE - iX0g8j0JUN/x2NU+zmmhbKAClwh8CTZBXqhvhOzcuadkyenJLLfiOL1G5ib2SnRYHzW0QEW1cVG/Wy9F - 5r+ikXi5QpdI3uOI8oWTJ1YonPw6MAmbPPN2fPlC9jHlocCB8RU0Ak+cBAJ/q1KR+HcqFY2HQo9DHJEl - Wlz0JJFTkbOmtiRAj1wkVjiKL4jc2u3HInKLyK1r4JGvAY8tW24q27bdVLZvd4L3t269qWzadEPp3v39 - S88P6oPY4Vlkxc+qh/44ox789xn1wO9nkCE/o+797Yza8nhXNe/aMDXPfFgmM4DpwU68H6Qh97uBau5J - IHEUYvmPeEDcgsDFrU+bIvDHK90KDh6aHBLyqq7ISeR7ksqX30kkQn0nREVtwubH67D58UrdQuEu9otl - Apc2QiaZz44rUWLaVdbOpibyqSoTKSWKNoUXnl99JiLvdRD2pdeAcVTeAG8ngMRJ3JNB4FNiCie/XamI - /a2YIva3Y4okTYopnDQ5pkjilJiiCW8A74DE361cNH5alWJxM6oWi2sZlJuVtksBebGzND4OB4oBbDiU - 8+PW/pvWk/iRn8SWws58CvtRz6lHx45JCtG+fZLSrl2S0rp1otKiRaLSpEmiUqTIEzdfXzZT3fPr6Qf4 - 5RSGgYiTGkruqazmXQ7ing3ingHink6AvN93wv8dEPh4EPgoYLhrIveuSn+86Y2QkGEgcmGtvAZrZXtS - dPSWxKiojQlly65O4MbHD3awXwwLZYFQ4Cl7ZT7YCFmo8tnx3AiiPNoKnd0pb6ulAjurgXlLqM0D/G4O - Llvw8ngQOFS1RtoTdQVOFU4CfyOmSDKUdjJI2j4NmFGlWNLMqsUS369SNPGdSsUS3qlcNAGPg8CLxk8H - gc+qVix2TrWA2PHli8QG+ubiJhMcDBI7AIkcOXf/kcfyRd+4pcotMrfI3LoGHuka8Kha9VNFoEqVT5Qq - VS4CF5TIyKWJ5WvUUbd+ewiEfcIUr3/6vpp3G6yTRSDtmQAJXIAk/h5I/E1gLAh8JDDMNZF7hhRUixbt - ejU4eAiInKqcZD4iOSpqbRK870T8PhqJly69BDvYL0QqZQHU9lxJfTs3PHZC7Giv3aZYLNyirXRIb4zY - V1KrFvS+hUTKVXjdl8bARiF5w9tOnqLhgQJ/EyQ+FeT9PgDyTpoNzK8RkLgAmF89MAHKOwGPx4O8QeAB - cXOrF4udVyMgFl9jW1Aj0NY2KDeJnNOeHAjiBhJMrjCCKNoO8+G+PyDvxWl55dYT+ZGeyI+q4Kyvz1wq - 3gMDNpjkfBjFivW+0m3YAJckTnJvdbyLmmcdFPg8EPiM1CSuqfF3QeKTgTEg8Fddk7hv1yJqzpz51aCg - V5KDgl6WMNAO2yQJSEScUNu5vnTpeUijpGx4rBO5TOLmZB4SMjw2b966V/08fTmdeR2xwUuDyxTQIoX0 - widBfZO0YY8kT61UlOQNBV4k+b0qRe3TqxSzk8DnVQ9IWlwrMHFFrcCElbWCiPglNQPj51cPiANxx4G4 - Y0HwsQtrBtoWgsQXAVD1tqLeObkJMzdcFkNB3ESC9oqcXhHd41bHikXiFolb18AjXQOmRB4dvT02X8EQ - dfrWxW6JvMSeGDXPChD5bBdErtkqwGhzW8VvCBY5Ae/6hdQ8earfCgzsmxwQ0CeZt4GB/YGX7SDuJKjs - RCjrlC3VhMp+oLzNiNypzJF8sRUo0MKWK1ch+tXb/HNlv9whJPelQciDDy1bIPlVEDmTKFzEJInDLkme - UVUDFbh9Fgh8Lgh8Yc2AxGUg8ZV1ghLW1g1OWF83OH593aD4NXWC4pbXDoxdWksgyLakVqANBE8oS2sG - KS0D/UnkM4D6AHtshCoXpVlClYsJT8srt57Ij/REthR25lLYj3o+TYk8LGx8cuMnOrgl8VcvTFbzbjWx - VYQ3TjVusFUEcTtvi+ooouYqmQ/+eLNrAQG9QOTEC8CLJHM7tlFLdO6L+WBvzPQQOYaJlIIFWyuengG0 - NtYBrJflFmzLy+TxTCaRDweJj0IuHAkUbSETPnfynGrF7PNrFLMvrBFAJC0CQMyJK2sHJawGia+vGxK/ - qX5I/LYGIXEaGobEgtRjV9UOsq3QAcK3gdyVZbWCNLxWrrCSJ1d2knlHgBOerLGlKuf+nJYqt0jbIm3r - GvivrgFTIi9QoPX1kTOnuCXy+ofbqHnWuLFVpoLIJwWofrBV/GCrPCBuEniRFPh2K6zm9MurFiny9KVi - xbolFyvWPblo0Z64fQFE3k8i8tnxD3as13xvU388NHSsgt+fBE7iFATOCGB/gEVWbCU8grF7bbhnLEh8 - ItQ40ihQ4cXssEbsy2sFJq2sHZj0QZ2gxA/qBiWurksCD07YVC8kfkuDkPidDUPj9jQOi9vXODR2d6PQ - WBC6bV3dYBvUuW0VANJXQOrKcoBEvhxAYyJ/nzd1VU6vnFFEeuWWKreexP/Vk/hR1Zv19ZlPvT9E5FTA - FWrWUTd9vs8lka/+fpsatKuMmmeZC1tlGkj8LZD3OJD2KGD4A+J2knjhFHg3KqD6+5e/VaTIMyDwZwGS - OVV5X3tg4ICkB4p8drzTGzf3x+GBK0i9KLlyFSZhcu9M7tTDjY8F2A3eB+CuPVND/XNhtD5/8gR4429U - LGx/r1JRO5ImSUtrBiatqxecuLF+cOLmBsEJxIdQ4JtB4DtA4LsahYLAw2IPNgmLPeSEDR/btoLM19cL - UtbUDVY+qBOsgNCdZK4T+aAyBfl77QXkzSUsVW6RuEXi1jXwX18DDxF50aLPX+3z2hATEj+Ox5zodmaA - mvdD2CoLmVYJQMxQxzR0pQD+U4uq/lNA4KNB2q8Cwx4Qt0zivO9ZOp+aN2+D60WLksifA7pLRP6yCZE7 - UyhCkUO1o4K3jpIjR24S5UrgVYBxP4GeuM/t1lgpK8DHNjct5mdHSsX+bqUiSfTCaaWsqhOYCOJO3N04 - NIHY0ygsHuQdD+UdtxcqnAR+uGl47NFm4bbjzSNsx3F7pGmYDV+rQLEr6+sF62Qe9BCZV8zvzd+Rvx+9 - ckuVW0/g//oJbKnrzKeu/5NzCiI/hNQKcVApU2ZJfESZCuqiI+tSSFuQt/P2mLrrZ4zk76uu5lkF8p4L - 4p4BvF/UiWlO+L9dRPWfCAIfDQIf7prEfZ4rCFslD8byn7zsJPLngR4g8t5Q5P3sSLGQyB/yx9GKGFuk - SFebn185+t/HAMb76H8L8iZhk7xZI8u0CDc/7iqBmz0MQZrEPhRFVzOqFNUihfC1EzfWC07Y1Sgk4WCT - 8PhjzcLjQdRxR5qFxR1uSgIPiz0CEid5nwCJn2oBNOf9cAUEr8BiUaDkU8jcqMq7F88n7B5LlVskbpG4 - dQ38z64Bj+joTQqBgRsMAD17+ZmBfUDWR11i9MUpyI4HqnkWg8BngbinG0h8Kkj8TZD4WBD4SMCNGveq - nx+2SkXYKl0lW6UnkyuwVfqDyAfqRO60VRBNjMufv3GsvoC5G2T8PkDLhAROlU0CF+TN5kESdheAmztw - 30xugEyw/4RY0izAL5EkjtQJ0ihBCVsbhMbvbxwWD3KO+6hVcSAi9mzLiNiTLSJi8ZiTwIHTIPEzLSOU - My3CFdxXjoHM90CVQ82nUuX0y4W98l7lYkqQby6SOX9focpdJVisXLn1RP+fPdH/E5Vn/TcZR+17YNgG - Snw5dgaaGhcUUVqdtXOpCxI/gsePqHUONlNzrwGJzwOBz9BJHGrcn0p8Gkj8HWCSrsZfBZEPda3Ic0Vg - j898ja9hEMjEVhmQFBw8ODEkZGRCoUId4n19y6K3JBsjhGuBCQAXMAWJk8DZ/U31LQi8M+5zUwdB3Nyl - pyXAvTMJbmX3XGGvHAnwyRNW1w7W0ii7GobGwzaJA3nHfdamROwXbUvE4tZ2vlWEDY+RvG1nQOLnQOLn - WhbXEaFAnSuHmoYpWAxVoOoVLH4qSLlo9oogct5ikVVEEanKmWCpBIhcuTztKZdpWa2IFqlbpG5dAy6v - AQ8M2ihEkSJdLnfq30Mja1eY8eUiteiOCDX3EpD2LBD2dOB9gAROvKur8XEg71Fp2CpPFlTha2tplQf+ - uNNWKVSokz1fvvpJPj4lE7Nn92UdLDc1ngsMAVgNK0i8p0TgtE6E+uZmDlTcbYFWOmmzE7whQCXMcXkO - 55BI32sXnBskHqylUfY3CYuD6o690Lp47FftSsR+176k7Zv2JWwgdBses0Ghg7wjlI9A4h+3Kq5AteM+ - lTlUebNwBX66gu/l0l4ZHlVIQek4ydy4GTPLtDjtyTKtfIDoYLEGhKwnsEXi1jXg9hrw4Eh7ePikuKDw - UuqMbYvcEnnzox3V3OtA4vNB2DNMiJy2yuT0qXGvqvlRklXthrBVChRomYxNJZK9vMLs2bJ5cbu0kwDV - 9xRgFDBUJ/EXccskClW48L6pvmmddNQJvA1uqb6putkFzt3rSdxsIOS+mcxxUwnH8OuK+eSIm4miK6ZR - jjYLi4Xqjv0cxP09SPzXJ0oDpXhf+aJtceViayeBE+f1W94nuZ+EvYIXAs1e2SAtesr2ClV5dD4vEvkI - /Xerpf8u3PQ6HGCZltgCTqhya0DIeiJbZG5dA64VOYm8UKGOl59+uZdbEl/y7Vo1eGdpNfdyEPkcnchl - Nf4eHnsLGJ/2IqfvC4XUnIVzwx+vdMXPr0wypi6xaXE2blx8BtgCzALeAmihjAaGAQMBKnGSOBcyhQIX - 9gk3cKB9wv0x2TbYEKDyJlFympLEzew2S6tImtw7k2Ab4VvPhueLPdIsHF54uGajfNm2pO3HDqVs/3qy - tO3fT5VWQOjKt+1KKiB45TzInCQuoClzXZVjQVTBkFAqe8VI5F3C8oqEDV9o5DItdpWLbeC4KbM1tm89 - eS0Ct66BNK8Bj7Cw1+Ijykarc/cud0vk7VFXm2cDooULQdYzXajxKSDxMbBU6I0bFjl9BxdUfQfnU30G - 5VFzNfJWs2XLeQtE9TXAXec3A0yekMC5gEkSnwSMBahcSeJCidMLJ4mTwIV9ItQ3fWeWU5EchfomgXND - B/rQHMDhDj3hAAdxaGXwtmGYn6cNo/eaD/5Jm+K2b9qVsP3coZRCElc6RSr/frK08lPHUsrX7Uoon4DI - YbOkInKhyo9DlSOq+JC9IvvkaFlU/HJqk558F9FQ/125n6fYmLko7rPiNjdgje1bT+Q0n8jWwmTGWZj8 - K86VB6Ygr/QcOcAtiS//doMaigGg3Cugxue6UeMTnGrcdwRJOz9IOy+QW/Ue6Kt6veKteg3yuuU12OtG - 9ojsV0FQBwF2dS8C5gOzgenAO8BkYBxAEmeskEq8J8CFTNooXMCk/y2rb9on9LyZz64CkBiF+qb/HA6Q - tIMA2hckS26AzFt+PPWVMgWgxovbPm9TXPmufQnlZxD3n09FKvGdI5U4AOocj5dUsPiZisiFxUJVzkXP - AwZ7xRhDJKlXKeBDIuffyHcPfOHh7xwFuB3b/ysuAut7Zm0SsM5/xj//HhVr11JXnNqYthrfCDW+yKDG - 3yuMqlqQ9jv5VN/JeVXvUf6q93CQ9mCNtG+DtG96DfG67j3U+4r3MO9LQLJnR09aKN8Ci4GFgEziU/Ex - PXH2onBwhkqck5j0w0niVLC0UEjgXLyk+pa9b2GfkBCpbmlVhANU3kyEkLQLAVS7RD79lr3gLSsV8FZg - rShfwj6hJw5vXPkTajyxSxklCbDhPsmdn6dX7spegUWjbJfsFYz6K0Z75dkIzV7hGgD/FlFxaza2by16 - WorcUuTWNeB+sXPI1DEg8cMp2PnTIdWJg8ABdcFXy9XAHeGq/zKQ9ew8qu+03Krvu/6qz1Rf1eddn7vA - be+3vW96T/S+4T3a+5r3SJD2cCdpmyFH+Rwk8kOAIHFhp1CJk8SpUkniVOK0U+iHMw/eEaAHTgUrCNyo - voV9QlUbBtBvptpmEoRkTeLmzvW0LNgBTpAo+TE/txTbtME+Kan80KGk8huInLYKifzS02WUBKjy36HK - 6ZV/CtXuyl7hgBAz5SK9YhZDRPe5sFf4DsNVFNFa9LSewBaJW9dAmteAx9Zvt97b/sN2DTt+3HGX2PnT - zju7ft51m2h6tOktvw1+N30W+tzwme1zzWemz1WfGT5XfGf6XgKSfd73SfZ52yfZezyIewzwqjmBa2r8 - GU97Nt9sTKRwU+I5wEyAnrggcaMSJ4lzmIdeOBcGGwJU4Fy8ZPJEeN+y+qZ9wkZBYZ2QDAWBk7i5gEjf - mQM3nvot0yH83HNtgnJr9smPOpH/CY+cavwyiJxkTmLn5xBHdGmvcEBI2CtiZN+YJ6e9EuMc2ecLF/82 - WkNM1NAO4jsJWkC0fvjCk2rR03ornPHfClvn0DqH/8trwOPAnweSXeH9799PLrK/SLLfar9k30W+yb5z - gFkACFwj8ekg8XeBKSDy10Dgo4ER3nYoclPkrJaTJH4EEH74e7gvFjYFiTMnznIrDveQxIUKJ9HVAGJ0 - smPyxOh9G+0TJj+otqm6SdaCvMVmx7wV4OeDWDfLgZ6fsNBJRS6I/GrXssq1Z8pq6pyPi0VPo73CRU9m - ymmvoEhL+15YREWRVuoSLRK5nl5ZhZ/LxdqGABdoxaKnaEWkBWTtIGSpsjRV2f+SGKzvlbFeaDwOKgft - rlDnZB2732Y/u+8yX7vvfGAOMBuY5QSI3A41bocat3uPBUa6JPEkrx5eSdnyZUsCKXGBcxpAP5y1rhMB - NhUyYkgSZ7yQ+XAO9ZDESXBcxORiIMfZZfVN60SQN9WrrL5J4FSygsAFYXPAhrls7o1J8D4fozrn14/D - zkGaFy6sFSpykvjNZ8tqypzkTtVutFfEoicz5bRXxHCQmPI0+uRj0VOuDwdx4ZaWEd9t8O90N+lpZcot - UrdI3boGUl0DLol85Jcj7Xn35rVDjdt9F4K45xpIfAZI/F1gik+S9zjvJKjxJKjxJKhxU+SsnTMRBEVv - nDYKCZzJFObEOewzBHgJIIlzUbMjwMlHTmFShVOlcgFTKHASuLBO6H1TtQrvm+pb2CckZ6G+ZQIHf3po - +2LyFiA58utouTSsWtBH+QY++P8hO04rRRD57WejNDKnV06id2evML0ihoPc2Sslc3vSXuHfL/5e2ka0 - jPi3usyUW4opYykm63xZ5+uvvAY8DtkOJZkh+lh0kt8mvyTfpb5JvvOAOcBsYJYT8MaToMaToMaToMaT - oMZJ5Ilm8OrtlZitUDYS+TyA+XCqcGbERwKDAcYLmUxhPpx+OEmNkTySmlDh4bgvooMieULrhAQuvG8z - +0RW3ykELg6qTuRU5rIqX4cSLW1hk0kVOxT5dSjyu89FaaAqZxSR9opZekXYKxwO2ixNeZr55C0CtO4V - rhewSoBTqBxgigGMmXLZXuHva23QbKkyS5lb14B2DXgcjj2caETXT7om+u/1T4QaT4QaTwSRJ4LIE0Hk - GrDgmegzDZjikwgiT8QiZyIWOZ0k/qp3ghE56+RkX8pencDphVOFi2lNJlNI4kxvkMRFrlos/FGZ0i+m - hUL7JB9AAndH3qbq29Urok7msiof2KdkfuUPWCixOpHfIJE/H63c7V5eU+V8nBFF2iuyTy7bK+xewWYU - bn3y/qULkMh3AawVkDPltFdEppzvOviCZY3sW09ci7yta+Cha8DjSNyRBBnzf5ufEHg4MAFqPAHeeILv - AmAeMBeYA8z2TYA3ngA1ngAST8AiZwJsFSN5x4PMNXj19IqHGo8HCTGdQgJntHAIwG3XuKjJZEoXicTp - EzORItIbtBcYH6T/TQI3W7gU9olb9Z0GkcuqvFo59KF8jwVPDgIlQ4GTvO8+X0652zNGI3Sq9LTsFXav - 7NVjiK588ndRbevvnPKkpWTZK9aT1CJq6xp45GvA42h86v/VPls73m+HX7zvKt9438XAfGAeMNcJn1k+ - 8T7v+cR7TwZRjwfGOAn7IYz0joPdEpezZs44EBT7UzilSRXOfDhJnBW0z+skziEf0TtCEqcfzlF64RGL - cXVXC5eCwB+yTtLrS+Fn8b+lkueLAn/OWiZN6IczdqgROdT43V6VNTKn1ZIee0WOITJPblzwZHqlXD4t - hsgFX2GvML0SA1j2ivWkfuQndXqveevrMo9v73Es4VicQN8v+8blPpA73m8tiHwZiHuBRuRxIHANyJHH - QY3H+bzlE+c9AUQ9DhjtJGwzeD7vGYekCjvE6YuTwJlK6a+TODeAkJU4PXHaKYLE6YdTiQsbhQuRXLw0 - pk7+Y/KWL2SdyKnKSeSMKQ55JbKAttB5BdHDO/THqcb7VFfuvlBNU+W0V5heYfeKmb2C3hYthpiWT94W - 2XX8PA5ICXvFVXqFSRzLXrHI3SJ36xpInVoRJL7096Vx4cfD4xA3jPNdAeJeCJDE50lEPgMkPhUk/jqI - ezww1jsWBO4SOarkIImv1gmcKly0FwolLhY2mU4hiRvTGvnwGK0UuThKW+gj/teKAt9TtlfqVi/koxE5 - M+QpRN63hnK3X22QeiXNcqG94q57hSVask9utuA5wOmTcw1BPh4iveJuOOh/fgz+18fU+n6ZR/VZ5/Lx - PZcexxKPxRJ1ztWJ9d/tH+u3xi/Wd4lvLIg8FkQeCyLXADUei6RKrM+bPrEYx4+FGo+FGjcn8VHeNs9O - nrZs3tlsIKfhAKOF7ExhvJAkzpF7Fl+JnhFGDF1teZaKxP/Ki0l/gZAXPfdw15+UxAptFZL4gHrKXRA6 - 7RYmW9KKIYpxffrkZoNBrAXwyp6NZM53KGI4iMeE3SulATEcJF7YxDsTa+cgS5lZ6ty6Bjw8jicdt3X/ - srvN/5C/DaP4Nt/lvjZMcdpgq9hA5DaQuM1njo8NSRWbzzs+NpC4DWrcBjVu8wZhm+JVb1uOsjlI4nN1 - Fc5FzV4A7RRGDEniJCwRt2PZFSc1wwF2o8ieOK2Ov2UIRidyWZW/+U7log8WOl+oqtx9qa5yd2AjJ5l3 - K6/FE5k5N8YQRXqFU570yeXelRXSPp6i3raEM0/OFz3aKywEo71iPC6ie0W8uFkxROtJbBG5dQ1gOueX - d2yBxwJtsFRsvitB3ItTkzi8cRsWOG1Y4LR5TwJxk8hfc0PiIPdcLXORxBmpowrnoiZJnEqcJP6kRFb0 - xTnJKPvizIg/1C9Ckv0r1bghVy5UeZcuYXmctgoXOumPv9xAuTekuXJ3cFN45VW19AoLtlz55JzyZJ5c - bMrsasGzQVE/EjlrfOWFX3FsjNW2lk9uPXktAreugZRrwKPcmXKK304/xXeNr4LhHwVqXIEaV6DGNUCN - K1jgVLDAqcAbV6DGFSRVFChxU3i96KVkD9bidG/oJN4Tt1TijNeJAizG7NxVtzIj/o9sqCCpcr4TKF3c - 31OJB1lrC50v1tTU+L3hrYDWmjqn7fKL7pObLXiyo5x5cvauiO3fzHzyZ8K1Wtv1AH1yudqWlpO7Kc+/ - 5QXu73gRtX7G4+vBWufm8T43Hv77/RW/9SDy5TqJL5RIfC4IfCYwVSLxsa5JnOSes1ZOEtIHkhJnTpzd - KRz4oaXCiJ2obWXUUB58+UfVuKTKZXtly8HmxZW7vasod/vXgRpvptwb1V65N6ajU5UjvcIYojufnHny - ndg1iAVaa+CTmxE5N2XGsTgGdNSPEW0nUaJl5pMzWcMEj+WTW8rMUudZ/BrwwOCPAktFgaWiYIHzgRqf - BzU+CyT+Hkh8Msh7IvCaexL37OypZPPXFu04dk87hRObbDHk4iYtFZZDicpWMX5fCo/Ji3n/mBp3Ya9M - ebdakLa4qdkqVOOvPaXcG99FufdqW43gGUPkuL7cTy7v50mfXAwGsQnRjMjfr1JM8cqhHTvaT3IMUbzY - heNxrh9YPnkWf9Ja6vjxVsf/xPnxwOCP01KRSVxYKu+DyN9Mp6Uy2EvJEZlD+Lwk8Z6AsFTE+L1xgVO0 - /LE//LFQ41KRlsiUd32+VCFnWoW2CshbI/HJzyv3xnXW7BXGEJknd7XgyTy5WPAUyRV5D09xP9Qvl3gR - tHxyi6wtlW1dA+m+Bjxc+uIzQOLvPIKl0lCzVDYBjBga1TgraakyxfSmnBnnNmxsMswHPDa927QsdOui - UsVCfs60CqyUe6M6KPdef1a592YvJ5nDamEPC/Pk6V3wNIsgksyroXURP5PNkEaf3JivNy4GWz659aRP - 95P+n1CM1s/8a99FeGiLm0ZfnJbKuyDxSbBSJqTDUukKSyW/ZguwR0WocZFSEQucXMBrCIjxcxE3ZBmW - KIVKtRMOHv/HCIo/G2B6xTtHtmzKN8/XUO4Na+m0Vd7oodx7t59y7+0+ml/ODhZ2l7sq0BILnpzwZKUt - kytmEUR9wnMJfqZYSxA+uZUnt4jaImrrGnB5DXi49MWngMCZUhmXRkqFlkoZzVKZIalxscDJAZeOADeI - ENloEanjxKIoxKIaF5sM/225cXcqQSJy/j6rtnao5FzknPiMcm9qX+XezEHKvekDlXsTumoxRG42wQVP - Y3KFH5PIueDJ5IroJjfrXOlVIj+P41ZAvIPhMeOmGsyTu+pdsRY8rSe4RfJZ/BrwSIkacnFzNpT4I/ji - WkqlvmapbJBI3LjAKfxejuFXB6guBSnJi3ciG60R0z+pxk3SKxPfblD2gRqf/opyb/5IJ97qrdku8SjX - +spkH08xGMSNJphcERFEMyIf4UyunADkhWGRtZd3DbIWPLP4E9eyKv5aqyKjHV+Ph/Lib6ffF/d8CpZK - bs1SYathWgucVJZmcUOWYtFSYZzusVDjhvQKX1i69Y6JcKrxd2CnzB6mqEvGK+rSCU5VPrS5ttnEt5jw - dJdc4ai+uwgiR/Xxs74EhB0lEj5ymZi8MGwNBlmEbqlx6xoAg4qEiry4mQ5fXBv8idAGf7h1m1jglC0V - YQ/IG0Vw0U6OG4pRfDH889iocSm9Qp+8Xv3wIk5vfNpLyr0FYxR15RuK+sHbUOWjtEw5e1c44emKyJlc - 2dfYOarvKoK4pGagws2f9eOZ1mCQvOD5t1QYZDSVYv2+lmrNKteAhza5yaEfsbgp8uKj3WfG0WxIwlnm - wlJ5Co/TUhETnCyAigHSWuB8rAiJ9o5u84SG5PVTbsFGuTdriKbE1XXvKerGGYq6fJKWYuGCJ5MrriKI - 9MkP6p0rroicyZUwZwSR73DMFjz5IsiUTxEgH8B1BVGg9Y8tDGeVJ4v1d1ovDI/rNeBRaFaBO4WmFbhT - cEr+OwUnAxPy3y74GjDGFLfw+K18rfPc8vPzvdWhXZOvnuzY7Avg86eebPFpl86tLnbt0ub888+1P9ez - +xOn+r7Q+fiAfs8eGfRK9wOvDn9hz9jR/Xe8Pv6VrW9MHrLp3bdfXT/9vdGrZ814bdWcmeOXz5s9Yen8 - ORMXL5j7+sKF8ybNB+YBc4DZwExgBvA+MA14F5gKvA28BbwBTAEmAa8DE4BxwGvAGGA0MBJ4FRgODAOG - AIOBgcArwADgJaAf8CLQB3gBv1fv2TPG9c6Tx//nb8d1T741f1Ty7VVvJd/+cHby7a3zk2+vnWa/NbWf - /Vaf6vafnypjv9CulP2jtjralEr6SMfZ1iWTDrUonrSxUVjSugZhSavqhSQur/MwYgr5JQYFFl0WU7Hs - qKpVyg2pVTPmpXp1q/Zq3rTOMzjeT3Tt0rpF755PNcIxrT1yRJ/qkycOinn3nVfLzZr+WhR+30igNFAS - KAEUByKAcCAMCAVCgCAgEAgAigFFgSJAYaAQUBAoAOQH8gF5gTw6cuPWH/ADfAEfwFuHF249gVw6cuI2 - h47suM1GPK5PBuv3sog6o14DHhHzIxzhM8Md4dOAd4G3gDdcI7RvqCOwTKDj7bffdixfvtyxYsUKx6pV - qxxr1651bNy40bF161bH7t27HYcOHXKcOnXKceHCBceXX37p+PHHHx2///67IzY21pGUlOS4cuWK48aN - G47bt2877t6961BV1XH//n0cx8frH38n/n4dO3Z0nJ74kkNdP82h7ljsUA+uc6hHNznUfasc95ZNdNwd - 1d6hvFDH8VW3mo7PnnsYnzxbw3H66eqOXU9UcWzrUNnxYftKjg1tH0bH8sUdgwcPvr958+Z7u3btunvw - 4MG7OI53cBzvfPPNN3d++eWX23/++eetxMTEm5cvX75x8+bN6ziG1+7du3cFvytxGbikIxm3diAJSNSR - gNt4IA6IBWyAAvwJ/Bv4F/A78H/Ab8CvwC/Az8BPwI/AD8D3wLfANzhjXwFfAl8AnwOf6riI2wvAeeAj - 4BxwBjgNnAJOAieAY8BR4DBwCDgIHAD2A3uBPcBuYBewA9gObNWxGbcfApuADcA6YK2O1bhdpWM5boml - wBJgEbAQWADMB+YCc4BZwExgOvA+MA14F5gKvAO8BbyhYzJuJwGvAxOAccBrwBgdo3D7qo7huB0KDAEG - AwOBV4ABOvrjth/wItAH6A30AnoCPYBuwPPAszq64rYL0BnoBDwFPAF00NEOt22BNkBroCXQAmgONAWa - AI2BRkADoD5QD6gL1AFqATWB6jqq4bYKUBmoBMQAFXSUw200EAWUBcoAkUBpoBRQEigBFAfCgTAdobgN - BoJ0BOK2mI4iuCUKA4WAgkABID+QD8irIw9ucwP+gJ8OX9z66PDGLeGpIxduc+rIgVtWXBAUGBlWZHgU - fEtX4hNxOw4wV+KaQi/wYr5bucv43apdq/JvUOFU418+9UTzLzo/1fLTpzu3vvhs17bnuz3X4RwU4+l+ - fZ8+8cqA548MHdTzwKgRffeOHztgx6SJg7a+NWXYh+9NHbl+xrQxa6F0qcZXQvUugxJfArW2CHisFDne - JfTG79g7NDTwyJr+nZNvr56afHv7wuTbB9cm3z6yKfn2vlX220sm2G8NaW7/s0uU/dP2pU0V+Tko86Mt - SyRtahSetL5hWNIHLhR5u9B8iQUL5ttRsUKZ0ZUrRQ2vXq3Cy3VrV3mhSaNaz7Vt3fDJzp1atur+fMfG - L/V7pt6IYS/UmDjulUpvvzm8vKXILTUJIrIWPrPoMfBIUeJvu1fiYePDHMGNgx0vvviiY9myZZoaX7ly - pWP16tWO9evXOz788EPHjh07HPv27XMcPXrUcebMGccnn3zigIp0/Pzzz45///vfjri4OEdycrLj6tWr - DihJx507dx5rNY4nhvYuAWrXMWHCBMf8l7s71F3LHOqxDx33P9rvuH/xiEM9u8ehbpnnuDelu8Per57j - 2+61TBX5p1DpH3Wt7tgNRb69o2tF3r96pKNLly7qpk2b7m3fvv0ejufdY8eO3fn444/vfPXVV7d/+umn - WziWt3Asb+BY3rh+/fo1KPKreNdwBe9qZEVONS4UOVU5FblRjVORU40TfxgUOdU4QTVOGNX4dy4U+Wc4 - bFTknwBU5FTjHwOu1PhxfI5q/AhgVOT78JisxnfiY6rxbQAVuVGNy4qcavwDYCWwAqAaXwaYqfF5eFxW - 4zPwMRU51fh7gFDjb+P+mwAVuVGNj8djVONCkY/G/ZEAFTnV+DCAinwwMAigIn8ZoCIXarwv7lONvwAI - Rd4D96nGieeAZwCq8acBociFGu+IxzoAVOOErMapyIUapyIXarwh7jcAqMiNarwGHqMipxqvCsiKvCI+ - piKnGheKXFbjVORGNR6Bx6jIqcSJEEBW4wH4mIq8KCCrcXeKnGpcVuRmatwLX2NU5FTjQpFnaDWOvwMj - lVTi4zUlLmDqj+dtmPt2VNkSsU8+0fwb4Gso8a+gxL+AL/7ZM0+3uQhf/Dx88Y/69O58GmrxBDzcIyOG - 9j4wZlS/PRPGvbzzjUlDtr7z5vAPp00dtXHm+2PXzpk5bvXcWRNWQfGugBpfCiX+WCpy/F698I6hF/zq - D0Y80Sz59o4lybcPb0y+c25f8p0LR5LvnN1jv715jv3W+Kft9mei7V90cK3IT0CRb27sVOSrXSjyvpGF - EnPn9jtdoXzk2EoxZYdXq1p+YK2alfo2blizW6uW9Tvj2Ld9/tn2TV/s83S9YUN61Rw7ql9lKvL33x0d - jeNZBr+v5ZFnUVXGJ7SFrHkMPMLfca/E6ZeHdgl1BIQEOObMmePWF4ef6zhx4oQD6tHx+eefO77//nvH - b7/95lAUxZGQkOCAp+uAgtR8capxKl0q3sf9H/17vusY1LmdQz2+BUr8sOP+1+cc93/4VLtVj2x03Js5 - 2HHjpfqO790o8vPP1HDsf8qpyDfTI2/3sEc+rl6Uo3Hjxvex3nBv27Ztd/fu3Xv3yJEjd86ePXsHx/TW - Dz/8cAtrDTew1nDDbrdfv4Z/t27duorjSUVOf1x45EKR0x8XHrk7f1xW5EZ/XFbjqfxxfO+vcf6+xK3s - jws1LvxxKvKzgOyP0xunGj8GCEVu5o/TGzf649vw2BZAKPKNuL8eEP64UOP0x6nIhRqnP74YoD8uvHGh - xmfjMXrjMwDhj1ON0x+nN041LvzxKbhPRS68ceGPj8Vj9MepxoU/PgL3ZX/cTI1TkdMbpyI3qvHueIze - ONU4/XFZjQtv/Ek8LtR4e9wX/ji98VaA8Meb4b5Q42b+OL3x2gD9capxochlNU5vvCJANV4eSI8/Tm9c - qPEw3BeKXPjj9MZlNU5FLrxxV2pceONCjdMjpxo3KnKqcYLeuPDHZTUu/PEM/SLoISlxU0We78k8t/2L - +d1u1rTOz1Dhmhrv9GSLr7p0avUFEiqfPfdMu0/g2Z6HL34OvvgZ+OIn4IsfRaLiwGtjXto7acLAnW9N - GboNKZXNUI0b4eWuh+e8BurxA6jxlVDjy6EiH2tFjt+zV5tWDd5rX7da8u2jHybfOX8o+c6XZ5346qwd - Xrn91nsv2W92K2//umOkqUfO9MrpViWTtjeJSFHkK+o+nFoZU75Yoq+P95fly5Uei+TKq1UqlxtUs0ZM - vwb1qvVo0bxuFyRX2uEdUPMXenVqMPDlbrVGvdq3ClJAFXB8LUVuKdIMTUYgWuv3/w+PgYfbhEq/UEdQ - +SDHuHHjUvnia9asMfXFT58+7bh48aLj66+/dsDLdfzrX//SUipQjhkmpYKL6aF/fNfw0UcfOdo1rue4 - /8lRx/3vLzrVuAAUupZcGdjY8VMPc4+cSZaLSK4c7FTVscONIn+/cXlHpUqV7q9bt+7eli1b7jK5ggTQ - HRzbO1hzuP3dd9/dxLucG3iXcwPpn2tYb6AivyIpciZWZH/cnRp3l1gxS6swqZLijVON64r8C12Rf4aD - Z6bGmVgxqnE5rSL88f8mrUJFbkyryP64u7QK1bhIq8zAfaZVhBqnP041LvxxWY1PxONU48Ifl9W47I+b - pVXoj78EyGpc+OMirUI1LtIqwh+nN06ItArVONMqVOSyGqc/bqbGmVZhUiWttArVOL1xOa1CNS7SKlTj - hEirMLHCtAqTKiKtIpIqVOOyIqc3LqtxoyI3+uMircLESl4d7tIqTKlQhacnrZIpNmZxqcjz98x7O3ek - 320kVP4NJf498C2U+DdQ4l9BiX+BhMrn3Z/v8EmvHk+eR178HPLipwcP7H4CvvgR+OIH4YvvhS++C/7t - NqRUtiClshG+ONX4OnjOq6HEV0GJrwAyhCKH9z+6YmTJ5DufHH2gxnVFDq/cfnvRa/Zbvavav3vCtSJn - lnxnU/eK/J0qAYleXp6/QJG/FlOxzEgkV4bUqF7xJSRXejVrUvuZdm0adcA5aIHj3vDll56rjXx+VaSB - KlKR491OWcsjt1QdCMxStlnsGJgq8rChYY6gWkGOV155JZUS/+CDDxxQig4kKhzwb7W8OH3xkydPar74 - F198keKLI+us+eKXLl1ywMZ1QDWm+OKPa2YcTwDTf1TkzMBXjamQWokLRQ6FjilPx91hrRy/9nSvyA93 - diryLciSm3nki1tWdJQqVUpT5EgC3d25c+fdAwcO3MExvo0s+S2kgG4iS34divw6suTXse5wFQkgKvLL - WHOQ/XEmVWQ1Tn9cZMdFWoXZcZEfZ4bcmB83y45TkX+jg4pcy4/jVuTHjWkVkR9ndpwQ2XHZH5fTKsyO - G9MqIjsu8uP0x0V23JU/blTjVOT0xmV/XGTHjf64yI7L/rhZWmUivp9Q4/THhTeenrSKUONydpz+uJwd - F4rcmFaRs+NGf1zOjgtFzrQK/XE5Oy7SKmbZcTmtIpIqIj9eEd/HlT/uKjtuVONGRW5Mq1CRC2/cVX7c - mFZhhpz+uMiNC2+caRXZH2eGPNOkVcSL9kOKvMCAfLfzxPjfRkrDhmnNH4DvocS/gwr8BlOFXz/Tte0X - SKh81qPbE59ApZ5HQuUcvNpTSFAch197dPxrAw5AIe6DL74LE4fb4YtvgVL8EEp8A3zxdfCb10KNfwDl - mGEUOX7XnsjBDyhWuGBqNS4UOX3yte/Zb/Wrbf/hiTIuPXIq8j3NnIp8Tf3QRDOPfF7NoMRcuXL+WS66 - 1DhkyUdViokaiuTKgDq1K/dGcuXZ1i0bdERaqCUSQo3wLqgOjns1vPuJefuNYZzutBR5FlNilvq23n3w - GkilyMNGIyveKNjRu3fvFCUuT25u2LBBm9yESnRAJTqQb3YgTZEqL+7OF88oKRUzWc7se4mICHNFDmXO - fDmnO3/rVds0R06PnNOdR9JQ5KvbxDhCQkLuY1L2Ht753MU7nzvIkt9GGuj2+fPnb2H9QVPkf/zxx3W8 - 47mGdzxXMSF7BUkgKnLZHzd6466mOV3lx+mRu5zmxOe+0sHEyufAZzhusj/OpIpQ40ysCDVORW5Mq1CR - C3+calye5mR2nIp8G8DsuEircJKTapzZceGPy2mVFXicYHb8P0mryNlxplWoyOmPi0nOibgv0irMjsuK - nNlxV2kVMc0pT3LK+XFOchKyGjemVajImR0X/ngH3E9PWsU4zSmrcWNaxSw7LvvjxrSKrMaZH5f9cWbH - wwCRHTeb5mRSxZgfN6rxfPgaOa1CVS6mOcUkJ29lNS4rcpFWybyKvMDA/HfyVs99B75sPBT4T1B9PwLf - Q4l/ByX+LZT411DiX/bo1vEzJCYu9uvb9TwSKueQUDmNhMrx10b3P4IelYNvTh66d+pbI3YjL74DvvhW - +OJU45vgi6+HGl8HNb4GCjfDKfLp08b09vP1ca3Ity2w33qlgf3HJ/87Rb60dkhizpw546nI4ZOPRnJl - GBU51ipeaNSwxnPIkj+Bd0nadGf/F7vWtRS5pchAXJYnnsWPgabIw8ZAiTcJdnTr1s2xdOnSVFlxJlSo - xNH9kWpyUyRUMG2o9aj83//9n8Nmszng26bkxTOyL44nR6p/fDcRGBjoWpEfWu+4O/bJ/1qRr0f/SkBA - wH0c97s47nfwDugOsuS3MS17C8mZm+ituYFJ2euY7ryG6c6rmO68ijWIy1DklzDdKU9yPmp23FW/iuhW - oTcu/HF641TkWn5cV+Sf4oBxklPOjp/DxyI/fgr3mVQR+XGRHXenxnfh682mOc3U+Bp8rdk0p1lahdnx - 9HSriOy4UOMiOy7y47I/zsSKyI7L05xD8LjIjlONy2kV+uOyGqc/3kOHmOSkGhfTnPIkp6zGhSKnP87s - uLtuFXmSUyhyocbddatUxPd91Oy43K3iSo27muakGheKnEo8rw5jflx441Tisj8uT3LSI8+0apwv5B4F - XnEqcfixCVDiv0CFa2ocE5s/QIl/h3TKN1DiX8MT/wJK/DNkxS8iLfHxkEE9zqLr4xQSKsfh0R5BQuUg - Eir7kFDZDfW6A37ttrmzxm+BL74JSnwjlPg6KPG1QIZU5HhX0RNpEteKHJ0rtwY2Sbci52SnmUe+DI2I - UOQJUOTjocjHUJFXrVL+5dq1KvVp2KDG8y1b1HsSWf7WOCeNOd2Jd0TVx419qRI9cqxHsAHRmuzM4uqM - T2wLWesYeNAT7969e4oSZ4cK2wyFEhcdKlCFjsOHD2uNhvBqH0qoxMfHZ7geldSa2/1HnEQNDQlxrchP - bIMi75RuRa5NdhraD6nG17WpROV/Hx02dzFNSkV+e8+ePZoiP3fu3E0kg24goy8U+TWjIkciSE6ryP0q - oulQzo4bpzk50Sny46LxkIpc5MfltIpQ5Jo/Drjzx5khF2mVY7hPUJGLtMoB3HeVVpH9cU5yElTkwhvn - NCfVOGHsVhFqnNOcCwFOc8pq3CytInerCG9cdKsIRT4R34dqfBwgpjmpxkVahf64u24VJlZEWkWe5pS9 - cTHNKXeryGkVkR3vgO9Ff1xOq4hJTpFWMXar1MfXE+xWoRqX/XF2q3CS0900J7PjBLtViP8krUIl7kqN - y9OcVOMCeXGfipxTnIRQ42KaU+THhRoX/rhIqmQ6bxzHQHvR9qhSOToBCvxXtOr9AvwMJf4jcuI/QIl/ - j06Pb5CO+ApK/Auov8+gxC8iK/4xsuJnocRPTXjt5WNTXh98BI2GB997Z+Q+KMI96FHZCV98O5T4Fijx - zVDiVOMboBQztCLHu42++fPkca3ID61PlyLfradWXHWtLKoVzNRKLBT5hAeKvNwr7Ftp2KB6t5bN6z31 - RIdmbTBR28RMkeNdEDvJrT5yS5VaqjwLXQMeoslQpFOMU5tQg1q3uMiKf/bZZ45vv/3WgeSE1mhoNrkp - elQyWl4cr2wu/7FDPSoy0rUiP7UjTY/8oclOSZFTjRMrWlW8Hx4efh+Z/TuSIr+FvpWbSAjdQN/KDaxJ - XEc6SHjkV5CooUeeDI/cblDkTKq46x436x+Xu8d/wvdjt4pxmpNqXHjjVOOf6opc+ONyWkVMdMrdKmKS - 879Nq4huFaHGRbfKCpzI5YCcVqEinw+46lZhdtw4zWnWrTIRXyenVYzdKuxVEWpc9sdF06FxmlN0q1CN - 9wDcdasYpzk74OtFWoWTnO6mOdmtImfH6Y/L3SrCHzemVZhUqQgY/XGjGuc0Z0nAmFYRiRWz7DgVuZxW - cZcdpxKXpzmNitzMH6cSl9U4FbloOsyw3eNChcu3Hkil/Ab8gj7xn9Hh8ROU3g/wX7/D5OA3UOJfwRP/ - Akr8UyjxC1DiH48e+eIZZMVPYmea48iKH0FW/CCU+D4o8T1Q4rugCHdAiW8DtkCJfwh1uBHI8Ioc6ZAh - JUKDXSvywxu01Iq7HPkZabLTVR/5jOqBUOS5fk+PIu/Tu5PmkePdUYpHbinyrOWNmj2prcey3jXgIStx - plOEJy4rcfaMCCXObnGRFadKFY2GIqHyOO/241pvp/0ZdJw4Gtaq6V6Rj2zndrLzAtoPDzxV1WUf+fq2 - MffnNC1/Pzo6+iFFjvWJW+h4pyK/jgZEKvKreDfE1IpQ5HZdkaeVVhHd4/TH3e4GBDX+IxU54DatQjUO - MLFyHnCVH3eXHac/LmfHmVYR05xydpzTnMbsuEirmKnxJfh6TnKa+eNpdasY1bjIj1ONy90qclrFXXY8 - Pd0qVOTGbhW2HTKtQrhqOxRpFblbhf44vXGRHacaJ+iNu5vmlL3xSvhaoyIX3SqyNy7UOBW5aDo0th3K - ilx442bd43J23FW3iqzGRX5c+OPGpkMzfzzT2U4eSKb8ioz4z/DDf0J3yg9Q4t9hYvMb5MS/ghL/fPDA - Hp8inXIBqu8jKPEzmNo8CSV+DN0eR95/d9RBKPH92OlnD5TgbvjiO6HEt0OJb4UK3wxkGkWOdysT61et - 5FqRH1irTXa66lrhDkFsP9zWxP0OQZNjAhK9vb2+f6DIywzHlO1A9K30rV+vWrfmzep26ti+aVucs6aW - Is96ystS29Y5N7VWuNemnBNnOkV44q6UuFlWPLMqcaHV2SnT/ckOrhU5dg26O7SF42cX7YfcIehjKPI9 - Tzr7yDcZUitOjzzm/psNou/XqFFDFR45GhBvo9PmllDkeGd0HT3v19D9QkV+GYr8MjzyS/DIqciToJ6p - yNmrInerMKki0ipyUkUocuPenD9Lavx7E0Uu++NU48QFgIrczB+XpznlpkNOc4q0ilDkIjvuaprTVVpF - KHLhjQt/XKhx+uNm3SpsOpT98XfwsWg6ZFpFnuaU1bhZ97iZPy6y4wPwveRpzj74+FH8cXdqnN64MTsu - d4+z6dCVGq+Fz8ndKlTkoldFKHLZH2fLofDHRdshJznN/HFmx435cTYdUom7UuNm3SrusuNCkVOJG7Pj - skeeKXrHXb2Qe8AP/wXTmj9Cif/Q94Uu32Fa8GtMbH4J7/VzKPFPoMTPQ4l/BCV+BumUk5jaPAYlfgRT - m4egxPdDie+FEt8NJb4LSnwHVPg2INMp8gb1q8/r9WQ714p85xL7rV6V7d+4aD+kIucOQR9iz851DcKS - VrnYIWhwdJFEPz+fC0aPXChyplaoyJlasRS5pc4shW5dA7wGPNidIvbaRDJCy4mzydDMExdKXG4zpBIX - HSpQZELAZrrbefPmOSYPedm1It+zwnH3lYaOH9zsEHQOe3buwp6d29B8KCtykVihIh9WK/J+69athSK/ - jfNzC+sVcmqFHvk1eORXdEV+CYo8WVfkiVDPxuy4yI/TG2fTYVrdKg+pcXzPb/HffY1bre1Qn+RMSavQ - H9cVOf1xMc3JbhVCbjsUalzeCUh0q+zG16alxoU/bpZWWYH/nmC3Cr1xZseN/vgcPGbMjgtFbtZ0SDUu - suNU40Z/XLQduutWoTduNs0p1LiY5mRaxdU0p6zGmR/vAIi0itEfl7Pj9Mfl7nF64yKtwsQK1TjTKsbu - cSpxoiKQnmlOocaZWHHnjYvecTk/Xhj/DdMqcnac3riY5nSXVnE1zUklbpzmzJRpFfydzhw5dvb5CXnk - 7wf0f/ZbtBh+PXRwzy9eHd7nM+wF+QkmNj9GOuUclPgZKPGTUOLHocSPQIkfghI/ACW+D0p8L5Q41fhO - KPFMq8ixX+nWaSMHu20/vPZ8OfuXHV3v2XkUinwTFPlaKPKVJrsDLcdU57MlCiTmzZv7SHpSKyJHbqVW - LFUmntDWbda8FjzYYshd79mdgr5rbWKTCQ05Jy7SKVlRieOJof0bMGCAY8u86a4V+fppjqv96zu+daHI - 2Xx46unqjp1POLvIN2K/TlmJU40Tz8eUvI9J23vwyG8jR+5KkV+lIkfXCj3ySzgvVORJeHdERW7cl1NT - 5HhcAf4ERFqF/rhxb06t7VD3x+mNE9/qoCI3y48LNX4e/y0VuehWMarxY/gcc+PGaU5644RQ5CKtsg2P - selQ7h6nPy6rcXaryGkV0XToKq0i7wQ0Hf+t7I/TGyfkpkOqcTmtwklO0XQo0iqc5hRpFXmacyAed9et - 0hufpxoX+XGhxuXucdGtYvTHZTXuKjvOxIrIjhv9cblbRfjjxrRKRfz3shpn26Hwx+mNG6c5mVYR3SrM - jgt/3KzpMD1pFVmRi+5xeZLT1TQnlbjRG6c/nrk9ciRTvkdG/JvhQ3t/NWpE3y+wz+anaDG8OGXS4PPo - 7ziHnPhp5MRPIZ1yHDnxo1Dih9BkeBBK/ABUONX4HijxXUCmVuRFixS8cGTlfJeK/Nac4fb4rtH2T9ub - K3J2kR9sUTxpYyN0kUORm/WsUJE3CMidWLhwgQ+Nijy9XStWjjxrKjIQVaaL1Fl/U/rPqQf7xLnPJlsM - xa736LpOmdg0y4lnBU8cF1Gqf7Vq1XL8dmyPS0V+b+5wR3zfuo6vuz28QxATK5zqPNa5WsruQA/UuDOt - ItA4Muz+6NGj76JrJUWRI0l0E++abqBr5TreMV3DZOdVTNVSkV+CIk+GIrdDkSdiolZT5ECqaU5JjVOR - u53mNKRVhBr/hv444Mof19Q4wMQKFbnRHz+Gx1x1q7hLqxi7VYQiF9lxdqsY0yrCHzemVZhYMfPH5W6V - tNIqQpHLalz441TjnOQ0m+aU0yrGbpUe+G+oxoUiN+tWEU2HHfF1HYB2AL1x2R9vgY/NulUa4HFjdtzY - rSL25ayCr2VixSw7LneruEurhOG/J6jIqcaFIhf+uLu0Cr1xd/646B6nGjeb5GRqRahxkR8XSlx45Jny - Bc8DyZRv4LF+iWTK569PGPgpdmS/gF6Rj9Gdcm76e6NPQ4mfhBI/AaV3FEr8CJT4IahwqvH9UOF7gUyv - yLEv5pDiIUHJNz4/5VqRj3/a/n+dytovti/10A5BTKxwqjOlZ6V+aBLVtxmK5/FODAkJmK+3H2p95KL9 - UO4jt9oP069W8OTOlE9e6++yzqu4BjywB6S24z37xLEPpEO0GF65csVx/fr1lL025Zx4Zk6n4MA89I/v - Wp5s1dylGr+PHYLuTezq+Ffv2o4vnq/50A5BVOSc6jzY6cFUp5kiX9Om4v1SwYH3Z8+efQedN7eR77+F - HPlNKPIb2I3pBnL919FHfhXn6wreNV3GuUrGDkHJOE+aIhceORU5EAfEAqn8cV2Ra93juJ8qP27Mjuve - eIoax8dfAGw71LpV9KQK8+OaGgeYWBHdKqJ/nBOdVOOESKswOy5Pc7pLq4hpTu4CJHYCEoqcanwFwOy4 - yI+LtAqbDo3ZcU5zzgBkf1xOqxj98dfxtRMBplVkNe4qrTIYX0cIf5zZcWPTIfPj9MfpjZu1HXKS82lA - +ONP4b7cPS78cZEdF9OcZmqciZUGgDzJadY9LvxxkVahIneXVuEkp6tulTB8jpAnOYPwsbHpsAgeE4kV - s+x4Xnxe7lYR/rg8ySmmOY35cdE9LqvxTP1i7oFkypdIpnyGZMonSKZcwM4+H0OJn0Of+Bl0cJ+EEj8B - JX4cSvwoVPhh4CBU+AEgyyjyBvWqLejbpePDalzs2fnJUfutl+ppXeQftzNX5MyQb2nsnOpc5UKRv1Ml - INHL0/PXqLIlJ3GHoArlI0dBkZvu2ckdgqw9Oy1FBrLL1ARl/X3pO78eojeFGXHueM+9KbEHpAMKT9v1 - PrNPbOJCSfPflClTHHNfH+umZ2Wn4+7gJtpU5+cmipyJlbPIkO+WMuRmiZVJ9aPu165dW0X/zW0o8lvY - s/PW9u3bNUV+/Pjx68j3X8NaxlX03WiKHHt2UpHb6ZGj64aKXPPHdZiqcXzuX8DvgFDkKW2HJmkVqnHi - K/rjVOOAyI/LaRWqcUL441Tj8jSnK398D76OaZWdOrbjdhvApAr9cbOdgNbicXknICpxOa0iusepxh9l - JyDZH3eVVqE3bvTHOc05FKA3PhgYBDCtQjUuT3OKnYDktIrIjhu7x+W0iit/nJOcxm4VTnOKbhWhxo3+ - uDE7TjUuT3MKf7w8HifojQt/XE6ryJOcol9FpFWoxoUipzcupjlF0yGVuKzGqciFN25Mq4heFVmRm/nj - TKuI7Dj98UyfVMHfmPIi7gE//HP44Z8gmXIBfvjHyIifgxI/AyV+Gir8JHAcKvwYFPgR4DCQ5RR5cFCx - U1vnvOdSkd/eONMuMuRGRU5/nImVw1DkTKxoGfJ65h5579KFEvPk9j8dHVXydXSRv4Zdm0ZVrhQ1pHq1 - Ci/VrV2lV5NGtZ5p27phR/THt8QkbkMkjmrDv6+KqduK6L6JxruostYOQelTMPKTwLpvHbOMfg142O32 - lAbDmzdvpqhwJlOgvhxZzQ/HCU31j8chODjI8dOhna4TKyunOC71q2eaIReJlRNIrIgM+YaUDPmDtApT - K92QIce+qfdWrlx5Gx04VOQ3MXV7E1n/GydOnLiOnP81rGlcQcb/8p9//nmJihypIjs88iS8g0qAIhfe - OP1xozf+B/1xXZFralyHpshd+ONadlxX45o/DtAfpxonUtIq9McB+uNCjZ/A/WMA1biY6DyA+3K3ipwd - N3ar0BsXipzeuMiPy2p8BR4XitxVWkVMcwp/nNlxwphWoT/+BiCr8Yn4eDxAf5zdKsIbZ3ZcTqsIRU41 - Tn+ck5zuulXkaU6hxp/FfyP8cfaOE8Ifl9MqTKyI7LiZPy6mOV1lx4Uir47vI9IqcrdKRTxu9MfZrWLM - jrNfhZOcshoPw8dMq8j+uDGtQlVuNs1JJW6WHXe3E5DcryJnx+mRZ4m0Cv5O52Qn9tf8FEr8ApIp5zGp - +RH88LNQ4WeAU1DiJ6DwjgNZVpGjz2Rc1XJR5mpc98hvTelm/6NLVOoMeVt45VDjovVwD3YG2gB/fDX9 - 8brmirxGEf/EYkULrYcin0hFHlOxzEjs4DQYPSv90XzYs1nTOl3bt2vcHo2VLajIMYlba9SrfasgaVSB - ihznr4ylyC11KZ7c1m3WuRY8XPnhWV2J40mg/WM/+8Aez6WZWPl37zqOr7qZJ1bYevhwYiW1Gqcir1I8 - +D78+DvYM/X2unXrbuFn39y5c+cNNC9eRwfOtU8//fQqdme68uuvv15GwigZ6xqaIsc7qUQqcrx7cJtW - kfzxFDWOx34BhCKXpznltEqKPy4pcpFWYWKFavysrsjlbhVZjTOxIhR5Wk2HVONppVVW4mvM0irMj8v+ - uHGak02HhLFb5U08JrpVOM05ERBqnNOc9MapyKnGxTSnPMkp1LhxmvNFfL1Zdlz2x6nGmR93l1bpgM+L - /LjRHxdNh8IfpxpvAAh/nL0qTKuwV0V0q1CRG6c5RVqFipyTnOnNjtMbDwNkNc78uPDHmViRdwIyplUK - 4PNCjefFfTmtQkXO3LiY5BT9KlTjQpG7y45nicVgD/jhF6HkzkOBfwycgwo/A5yGsjsFZHlFjgTJNtOO - Fapx4vxB+62+NbWdgc7LiRUocuGPH4c/vllOrJgo8verBSb6euZMjIyMeIdTnUisjEViZQS7yGvVjHkR - 7Yvd0XzYWW8+bNb3hc710RVfE504lS1FnnWUF8grSxCT9Xc+2nn2EO2Flh+OS8fkX+fOnR2nNqxwnVg5 - sNpx5+UGjp9MEiv0x0XHClsPt6bqWEmtyF9HYqVOnTrq8uXLb7NnBYr8JjPk6CK/gS7y68iyX0Mj5VVM - 315B5v8ymg+Tsb5hR94/CYmVBCSM4qHI5ew4PXKtW0XyxplYEf74r5Ia1/bmBES3ilDjRn/8M3yNthuQ - lB3X0ipU4wAnOumNMzt+DBCKXM6Ps+1QpFWYHxfdKltxn2BaRfjjnOQU/ricHacaXwEwrUKYNR2KSU56 - 4zMBY3Z8Kh5z1a0yEZ9jdpyK3Kxbhf64Ma1i1q0i1LjIjov8uDGtIvxxV2kVkR3nJKexW4X5cfaqmKVV - 6uJxqnFZkYumQ1dpFaHG0+pWEf441biZIpfVOKc5mRuXs+OF8DGVuKu0CvtVjP64nFYRatzYrSL88Uzd - rYJjk+oF3QMq/CLVOFT4R1Dg54AzgKXI503qgw6aUWWKh1+KP3PQpUd+a+4IewI6Vr7oUDp1hlxX5Jzo - 3N9c6lhhYsVEkeuth8fgj0/hVGeFCpFjKsWUHY7Eyiu1a1Xu27hRzefbtG741FNPNG/T7bkOTdh8iH1E - a44fO6AykkflkTqyPHJLrVpqPYteAx70wi0/HK9vJv+Q4Xb0f/5p9/741BcdsX3quEysnIc/frhzVa1j - ZTN2BRI7Acn9Krz/RPni9/v163dXZMg3btx4C13kN5Ahv46pzmuY6ryGqc4rmOq8jOz/JfSssGYlCRly - KvJ4vLOiGheKnE2HKW2HkjfO/Dj9capxgt64aDuUFbnWPa4nVkRahWr8UypyINU0p67GqcjFNOcxHE7Z - Hz+Ij+mPm3WPi+w41bgxP26WVpGnOUV+nL3jhLtpTiZV6I0zrSL8cSZVRFqF/rjcdCinVVx1qzCtMhgQ - 2XGRH5e7VajG2T1ubDo0S6sYpzlFWkUocjHN2RLfz9itYkyr0B8XipxJFYJqXChy0asiEisV8Tk5rRKF - jwkmVkTToatpTnrjwh/nFCchp1WEIpfTKlTjsiLPi4+FNy6rcbP8uJjk5K1Q5MZpTr6osV8lS7y4eUB9 - XwA+BixFPm/SSzgO/YAXgT7wx3e8P3roJc0Ld4FbL9e3//xUmdQdK1TjAPPj9MfFPp3aRCfVuIkiL53P - hx0rS6DGJyGxMo4Z8iqVyw2FIh9Qt06V3k0a13q2XZtGT3Tu1LIVEiuNsYtTHfTk1MBUbgwVOTLkUfid - I63UStZ44mYVgrL+zvRdz3y1sv65OAJt27Z1XNi6zv0+na80cvzas9ZDHSsiP34aHeTyrkBGJc6P5zQt - fz80MOD+woULbyNDfgtTnTeRIb+BDPkNZMivY6rzGjPkX3/9NTPkl5ghR2LFjqnOJGTImVgRipy++EPd - KniMSjxlmlPyxkVa5UfdH/8Ot2w81JoOdVCRCzV+EfcJkR9PSatQjQMnAZEfF9lxM3+c3rjsj2/Dx2bT - nCI7btatItS4sVuF05wiO05v3MwfpzfOSU5ZjTM//jowEaA/LrpV5Py4u+y4UOPGbhWqcaHIe+A+/XFZ - jRvTKuweN+tWMTYdCkUuesc5ySlPc1KNC0Uu0ipMqrhKq1TE5+S0CtU4s+Oi6VBW43J+PAxfY8yOG7tV - mFj5T7pV0jPNadY9nqmbDnEsH3qX8f/ZXcAmG/Xg8wAAAABJRU5ErkJggg== - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.Designer.cs deleted file mode 100644 index 88b84dfa..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.Designer.cs +++ /dev/null @@ -1,240 +0,0 @@ -namespace PTWin -{ - partial class MainForm - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForm)); - this.toolStrip1 = new System.Windows.Forms.ToolStrip(); - this.ProjectsStripDropDownButton1 = new System.Windows.Forms.ToolStripDropDownButton(); - this.NewProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.EditProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.DeleteProjectToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.ResourcesToolStripDropDownButton = new System.Windows.Forms.ToolStripDropDownButton(); - this.NewResourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.EditResourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.DeleteResourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.AdminToolStripDropDownButton = new System.Windows.Forms.ToolStripDropDownButton(); - this.EditRolesToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.LoginToolStripLabel = new System.Windows.Forms.ToolStripLabel(); - this.LoginToolStripButton = new System.Windows.Forms.ToolStripButton(); - this.DocumentsToolStripDropDownButton = new System.Windows.Forms.ToolStripDropDownButton(); - this.Panel1 = new System.Windows.Forms.Panel(); - this.StatusStrip1 = new System.Windows.Forms.StatusStrip(); - this.StatusLabel = new System.Windows.Forms.ToolStripStatusLabel(); - this.toolStrip1.SuspendLayout(); - this.StatusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // toolStrip1 - // - this.toolStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.ProjectsStripDropDownButton1, - this.ResourcesToolStripDropDownButton, - this.AdminToolStripDropDownButton, - this.LoginToolStripLabel, - this.LoginToolStripButton, - this.DocumentsToolStripDropDownButton}); - this.toolStrip1.Location = new System.Drawing.Point(0, 0); - this.toolStrip1.Name = "toolStrip1"; - this.toolStrip1.Size = new System.Drawing.Size(827, 25); - this.toolStrip1.TabIndex = 1; - // - // ProjectsStripDropDownButton1 - // - this.ProjectsStripDropDownButton1.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.NewProjectToolStripMenuItem, - this.EditProjectToolStripMenuItem, - this.DeleteProjectToolStripMenuItem}); - this.ProjectsStripDropDownButton1.Image = ((System.Drawing.Image)(resources.GetObject("ProjectsStripDropDownButton1.Image"))); - this.ProjectsStripDropDownButton1.ImageTransparentColor = System.Drawing.Color.Magenta; - this.ProjectsStripDropDownButton1.Name = "ProjectsStripDropDownButton1"; - this.ProjectsStripDropDownButton1.Size = new System.Drawing.Size(75, 22); - this.ProjectsStripDropDownButton1.Text = "Projects"; - // - // NewProjectToolStripMenuItem - // - this.NewProjectToolStripMenuItem.Name = "NewProjectToolStripMenuItem"; - this.NewProjectToolStripMenuItem.Size = new System.Drawing.Size(142, 22); - this.NewProjectToolStripMenuItem.Text = "New project"; - this.NewProjectToolStripMenuItem.Click += new System.EventHandler(this.NewProjectToolStripMenuItem_Click); - // - // EditProjectToolStripMenuItem - // - this.EditProjectToolStripMenuItem.Name = "EditProjectToolStripMenuItem"; - this.EditProjectToolStripMenuItem.Size = new System.Drawing.Size(142, 22); - this.EditProjectToolStripMenuItem.Text = "Edit project"; - this.EditProjectToolStripMenuItem.Click += new System.EventHandler(this.EditProjectToolStripMenuItem_Click); - // - // DeleteProjectToolStripMenuItem - // - this.DeleteProjectToolStripMenuItem.Name = "DeleteProjectToolStripMenuItem"; - this.DeleteProjectToolStripMenuItem.Size = new System.Drawing.Size(142, 22); - this.DeleteProjectToolStripMenuItem.Text = "Delete project"; - this.DeleteProjectToolStripMenuItem.Click += new System.EventHandler(this.DeleteProjectToolStripMenuItem_Click); - // - // ResourcesToolStripDropDownButton - // - this.ResourcesToolStripDropDownButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.NewResourceToolStripMenuItem, - this.EditResourceToolStripMenuItem, - this.DeleteResourceToolStripMenuItem}); - this.ResourcesToolStripDropDownButton.Image = ((System.Drawing.Image)(resources.GetObject("ResourcesToolStripDropDownButton.Image"))); - this.ResourcesToolStripDropDownButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.ResourcesToolStripDropDownButton.Name = "ResourcesToolStripDropDownButton"; - this.ResourcesToolStripDropDownButton.Size = new System.Drawing.Size(86, 22); - this.ResourcesToolStripDropDownButton.Text = "Resources"; - // - // NewResourceToolStripMenuItem - // - this.NewResourceToolStripMenuItem.Name = "NewResourceToolStripMenuItem"; - this.NewResourceToolStripMenuItem.Size = new System.Drawing.Size(150, 22); - this.NewResourceToolStripMenuItem.Text = "New resource"; - this.NewResourceToolStripMenuItem.Click += new System.EventHandler(this.NewResourceToolStripMenuItem_Click); - // - // EditResourceToolStripMenuItem - // - this.EditResourceToolStripMenuItem.Name = "EditResourceToolStripMenuItem"; - this.EditResourceToolStripMenuItem.Size = new System.Drawing.Size(150, 22); - this.EditResourceToolStripMenuItem.Text = "Edit resource"; - this.EditResourceToolStripMenuItem.Click += new System.EventHandler(this.EditResourceToolStripMenuItem_Click); - // - // DeleteResourceToolStripMenuItem - // - this.DeleteResourceToolStripMenuItem.Name = "DeleteResourceToolStripMenuItem"; - this.DeleteResourceToolStripMenuItem.Size = new System.Drawing.Size(150, 22); - this.DeleteResourceToolStripMenuItem.Text = "Delete resource"; - this.DeleteResourceToolStripMenuItem.Click += new System.EventHandler(this.DeleteResourceToolStripMenuItem_Click); - // - // AdminToolStripDropDownButton - // - this.AdminToolStripDropDownButton.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.EditRolesToolStripMenuItem}); - this.AdminToolStripDropDownButton.Image = ((System.Drawing.Image)(resources.GetObject("AdminToolStripDropDownButton.Image"))); - this.AdminToolStripDropDownButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.AdminToolStripDropDownButton.Name = "AdminToolStripDropDownButton"; - this.AdminToolStripDropDownButton.Size = new System.Drawing.Size(65, 22); - this.AdminToolStripDropDownButton.Text = "Admin"; - // - // EditRolesToolStripMenuItem - // - this.EditRolesToolStripMenuItem.Name = "EditRolesToolStripMenuItem"; - this.EditRolesToolStripMenuItem.Size = new System.Drawing.Size(118, 22); - this.EditRolesToolStripMenuItem.Text = "Edit roles"; - this.EditRolesToolStripMenuItem.Click += new System.EventHandler(this.EditRolesToolStripMenuItem_Click); - // - // LoginToolStripLabel - // - this.LoginToolStripLabel.Name = "LoginToolStripLabel"; - this.LoginToolStripLabel.Size = new System.Drawing.Size(70, 22); - this.LoginToolStripLabel.Text = "Not logged in"; - // - // LoginToolStripButton - // - this.LoginToolStripButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.LoginToolStripButton.Image = ((System.Drawing.Image)(resources.GetObject("LoginToolStripButton.Image"))); - this.LoginToolStripButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.LoginToolStripButton.Name = "LoginToolStripButton"; - this.LoginToolStripButton.Size = new System.Drawing.Size(36, 22); - this.LoginToolStripButton.Text = "Login"; - this.LoginToolStripButton.Click += new System.EventHandler(this.LoginToolStripButton_Click); - // - // DocumentsToolStripDropDownButton - // - this.DocumentsToolStripDropDownButton.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Text; - this.DocumentsToolStripDropDownButton.Image = ((System.Drawing.Image)(resources.GetObject("DocumentsToolStripDropDownButton.Image"))); - this.DocumentsToolStripDropDownButton.ImageTransparentColor = System.Drawing.Color.Magenta; - this.DocumentsToolStripDropDownButton.Name = "DocumentsToolStripDropDownButton"; - this.DocumentsToolStripDropDownButton.Size = new System.Drawing.Size(73, 22); - this.DocumentsToolStripDropDownButton.Text = "Documents"; - this.DocumentsToolStripDropDownButton.DropDownOpening += new System.EventHandler(this.DocumentsToolStripDropDownButton_DropDownOpening); - // - // Panel1 - // - this.Panel1.BackColor = System.Drawing.SystemColors.ControlDark; - this.Panel1.Dock = System.Windows.Forms.DockStyle.Fill; - this.Panel1.Location = new System.Drawing.Point(0, 25); - this.Panel1.Name = "Panel1"; - this.Panel1.Size = new System.Drawing.Size(827, 393); - this.Panel1.TabIndex = 2; - // - // StatusStrip1 - // - this.StatusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.StatusLabel}); - this.StatusStrip1.Location = new System.Drawing.Point(0, 396); - this.StatusStrip1.Name = "StatusStrip1"; - this.StatusStrip1.Size = new System.Drawing.Size(827, 22); - this.StatusStrip1.TabIndex = 3; - this.StatusStrip1.Text = "statusStrip1"; - // - // StatusLabel - // - this.StatusLabel.Name = "StatusLabel"; - this.StatusLabel.Size = new System.Drawing.Size(0, 17); - // - // MainForm - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(827, 418); - this.Controls.Add(this.StatusStrip1); - this.Controls.Add(this.Panel1); - this.Controls.Add(this.toolStrip1); - this.Name = "MainForm"; - this.Text = "Project Tracker"; - this.Load += new System.EventHandler(this.MainForm_Load); - this.toolStrip1.ResumeLayout(false); - this.toolStrip1.PerformLayout(); - this.StatusStrip1.ResumeLayout(false); - this.StatusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.ToolStrip toolStrip1; - internal System.Windows.Forms.ToolStripDropDownButton ProjectsStripDropDownButton1; - internal System.Windows.Forms.ToolStripMenuItem NewProjectToolStripMenuItem; - internal System.Windows.Forms.ToolStripMenuItem EditProjectToolStripMenuItem; - internal System.Windows.Forms.ToolStripMenuItem DeleteProjectToolStripMenuItem; - internal System.Windows.Forms.ToolStripLabel LoginToolStripLabel; - internal System.Windows.Forms.ToolStripButton LoginToolStripButton; - internal System.Windows.Forms.ToolStripDropDownButton ResourcesToolStripDropDownButton; - internal System.Windows.Forms.ToolStripMenuItem NewResourceToolStripMenuItem; - internal System.Windows.Forms.ToolStripMenuItem EditResourceToolStripMenuItem; - internal System.Windows.Forms.ToolStripMenuItem DeleteResourceToolStripMenuItem; - internal System.Windows.Forms.ToolStripDropDownButton AdminToolStripDropDownButton; - internal System.Windows.Forms.ToolStripMenuItem EditRolesToolStripMenuItem; - internal System.Windows.Forms.ToolStripDropDownButton DocumentsToolStripDropDownButton; - internal System.Windows.Forms.Panel Panel1; - internal System.Windows.Forms.StatusStrip StatusStrip1; - internal System.Windows.Forms.ToolStripStatusLabel StatusLabel; - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.cs deleted file mode 100644 index 2cd0b6c3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.cs +++ /dev/null @@ -1,462 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library; - -namespace PTWin -{ - public partial class MainForm : Form - { - public MainForm() - { - InitializeComponent(); - _main = this; - } - - private static MainForm _main; - - internal static MainForm Instance - { - get { return _main; } - } - - private void MainForm_Load(object sender, EventArgs e) - { - if (Csla.ApplicationContext.AuthenticationType == "Windows") - AppDomain.CurrentDomain.SetPrincipalPolicy( - System.Security.Principal.PrincipalPolicy.WindowsPrincipal); - else - DoLogin(); - if (DocumentCount == 0) - this.DocumentsToolStripDropDownButton.Enabled = false; - ApplyAuthorizationRules(); - } - - #region Projects - - private void NewProjectToolStripMenuItem_Click( - object sender, EventArgs e) - { - using (StatusBusy busy = - new StatusBusy("Creating project...")) - { - AddWinPart(new ProjectEdit(Project.NewProject())); - } - } - - private void EditProjectToolStripMenuItem_Click( - object sender, EventArgs e) - { - using (ProjectSelect dlg = new ProjectSelect()) - { - dlg.Text = "Edit Project"; - if (dlg.ShowDialog() == DialogResult.OK) - { - ShowEditProject(dlg.ProjectId); - } - } - } - - public void ShowEditProject(Guid projectId) - { - // see if this project is already loaded - foreach (Control ctl in Panel1.Controls) - { - if (ctl is ProjectEdit) - { - ProjectEdit part = (ProjectEdit)ctl; - if (part.Project.Id.Equals(projectId)) - { - // project already loaded so just - // display the existing winpart - ShowWinPart(part); - return; - } - } - } - - // the project wasn't already loaded - // so load it and display the new winpart - using (StatusBusy busy = new StatusBusy("Loading project...")) - { - try - { - AddWinPart(new ProjectEdit(Project.GetProject(projectId))); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error loading", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error loading", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - } - - private void DeleteProjectToolStripMenuItem_Click(object sender, EventArgs e) - { - ProjectSelect dlg = new ProjectSelect(); - dlg.Text = "Delete Project"; - if (dlg.ShowDialog() == DialogResult.OK) - { - // get the project id - Guid projectId = dlg.ProjectId; - - if (MessageBox.Show("Are you sure?", "Delete project", - MessageBoxButtons.YesNo, MessageBoxIcon.Question, - MessageBoxDefaultButton.Button2) == DialogResult.Yes) - { - using (StatusBusy busy = new StatusBusy("Deleting project...")) - { - try - { - Project.DeleteProject(projectId); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error deleting", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error deleting", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - } - } - } - - #endregion - - #region Resources - - private void NewResourceToolStripMenuItem_Click(object sender, EventArgs e) - { - using (StatusBusy busy = new StatusBusy("Creating resource...")) - { - AddWinPart(new ResourceEdit(Resource.NewResource())); - } - } - - private void EditResourceToolStripMenuItem_Click( - object sender, EventArgs e) - { - ResourceSelect dlg = new ResourceSelect(); - dlg.Text = "Edit Resource"; - if (dlg.ShowDialog() == DialogResult.OK) - { - // get the resource id - ShowEditResource(dlg.ResourceId); - } - } - - public void ShowEditResource(int resourceId) - { - // see if this resource is already loaded - foreach (Control ctl in Panel1.Controls) - { - if (ctl is ResourceEdit) - { - ResourceEdit part = (ResourceEdit)ctl; - if (part.Resource.Id.Equals(resourceId)) - { - // resource already loaded so just - // display the existing winpart - ShowWinPart(part); - return; - } - } - } - - // the resource wasn't already loaded - // so load it and display the new winpart - using (StatusBusy busy = new StatusBusy("Loading resource...")) - { - try - { - AddWinPart(new ResourceEdit(Resource.GetResource(resourceId))); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error loading", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error loading", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - } - - private void DeleteResourceToolStripMenuItem_Click( - object sender, EventArgs e) - { - ResourceSelect dlg = new ResourceSelect(); - dlg.Text = "Delete Resource"; - if (dlg.ShowDialog() == DialogResult.OK) - { - // get the resource id - int resourceId = dlg.ResourceId; - - if (MessageBox.Show("Are you sure?", "Delete resource", - MessageBoxButtons.YesNo, MessageBoxIcon.Question, - MessageBoxDefaultButton.Button2) == DialogResult.Yes) - { - using (StatusBusy busy = - new StatusBusy("Deleting resource...")) - { - try - { - Resource.DeleteResource(resourceId); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error deleting", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error deleting", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - } - } - } - - #endregion - - #region Roles - - private void EditRolesToolStripMenuItem_Click( - object sender, EventArgs e) - { - // see if this form is already loaded - foreach (Control ctl in Panel1.Controls) - { - if (ctl is RolesEdit) - { - ShowWinPart((WinPart)ctl); - return; - } - } - - // it wasn't already loaded, so show it. - AddWinPart(new RolesEdit()); - } - - #endregion - - #region ApplyAuthorizationRules - - private void ApplyAuthorizationRules() - { - // Project menu - this.NewProjectToolStripMenuItem.Enabled = - Project.CanAddObject(); - this.EditProjectToolStripMenuItem.Enabled = - Project.CanGetObject(); - if (Project.CanEditObject()) - this.EditProjectToolStripMenuItem.Text = - "Edit project"; - else - this.EditProjectToolStripMenuItem.Text = - "View project"; - this.DeleteProjectToolStripMenuItem.Enabled = - Project.CanDeleteObject(); - - // Resource menu - this.NewResourceToolStripMenuItem.Enabled = - Resource.CanAddObject(); - this.EditResourceToolStripMenuItem.Enabled = - Resource.CanGetObject(); - if (Resource.CanEditObject()) - this.EditResourceToolStripMenuItem.Text = - "Edit resource"; - else - this.EditResourceToolStripMenuItem.Text = - "View resource"; - this.DeleteResourceToolStripMenuItem.Enabled = - Resource.CanDeleteObject(); - - // Admin menu - this.EditRolesToolStripMenuItem.Enabled = - ProjectTracker.Library.Admin.Roles.CanEditObject(); - } - - #endregion - - #region Login/Logout - - private void LoginToolStripButton_Click( - object sender, EventArgs e) - { - DoLogin(); - } - - private void DoLogin() - { - ProjectTracker.Library.Security.PTPrincipal.Logout(); - - if (this.LoginToolStripButton.Text == "Login") - { - LoginForm loginForm = new LoginForm(); - loginForm.ShowDialog(this); - } - - System.Security.Principal.IPrincipal user = - Csla.ApplicationContext.User; - - if (user.Identity.IsAuthenticated) - { - this.LoginToolStripLabel.Text = "Logged in as " + - user.Identity.Name; - this.LoginToolStripButton.Text = "Logout"; - } - else - { - this.LoginToolStripLabel.Text = "Not logged in"; - this.LoginToolStripButton.Text = "Login"; - } - - // reset menus, etc. - ApplyAuthorizationRules(); - - // notify all documents - foreach (Control ctl in Panel1.Controls) - if (ctl is WinPart) - ((WinPart)ctl).OnCurrentPrincipalChanged(this, EventArgs.Empty); - } - - #endregion - - #region WinPart handling - - /// - /// Add a new WinPart control to the - /// list of available documents and - /// make it the active WinPart. - /// - /// The WinPart control to add and display. - private void AddWinPart(WinPart part) - { - part.CloseWinPart += new EventHandler(CloseWinPart); - part.BackColor = toolStrip1.BackColor; - Panel1.Controls.Add(part); - this.DocumentsToolStripDropDownButton.Enabled = true; - ShowWinPart(part); - } - - /// - /// Make the specified WinPart the - /// active, displayed control. - /// - /// The WinPart control to display. - private void ShowWinPart(WinPart part) - { - part.Dock = DockStyle.Fill; - part.Visible = true; - part.BringToFront(); - this.Text = "Project Tracker - " + part.ToString(); - } - - /// - /// Populate the Documents dropdown list. - /// - private void DocumentsToolStripDropDownButton_DropDownOpening( - object sender, EventArgs e) - { - ToolStripItemCollection items = - DocumentsToolStripDropDownButton.DropDownItems; - foreach (ToolStripItem item in items) - item.Click -= new EventHandler(DocumentClick); - items.Clear(); - foreach (Control ctl in Panel1.Controls) - if (ctl is WinPart) - { - ToolStripItem item = new ToolStripMenuItem(); - item.Text = ((WinPart)ctl).ToString(); - item.Tag = ctl; - item.Click += new EventHandler(DocumentClick); - items.Add(item); - } - } - - /// - /// Make selected WinPart the active control. - /// - private void DocumentClick(object sender, EventArgs e) - { - WinPart ctl = (WinPart)((ToolStripItem)sender).Tag; - ShowWinPart(ctl); - } - - /// - /// Gets a count of the number of loaded - /// documents. - /// - public int DocumentCount - { - get - { - int count = 0; - foreach (Control ctl in Panel1.Controls) - if (ctl is WinPart) - count++; - return count; - } - } - - /// - /// Handles event from WinPart when that - /// WinPart is closing. - /// - private void CloseWinPart(object sender, EventArgs e) - { - WinPart part = (WinPart)sender; - part.CloseWinPart -= new EventHandler(CloseWinPart); - part.Visible = false; - Panel1.Controls.Remove(part); - part.Dispose(); - if (DocumentCount == 0) - { - this.DocumentsToolStripDropDownButton.Enabled = false; - this.Text = "Project Tracker"; - } - else - { - // Find the first WinPart control and set - // the main form's Text property accordingly. - // This works because the first WinPart - // is the active one. - foreach (Control ctl in Panel1.Controls) - { - if (ctl is WinPart) - { - this.Text = "Project Tracker - " + ((WinPart)ctl).ToString(); - break; - } - } - } - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.resx deleted file mode 100644 index 899ce552..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/MainForm.resx +++ /dev/null @@ -1,403 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - - - - 2.0 - - - - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - - 17, 17 - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL - - U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI - - VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ - - QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 - - /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 - - cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j - - 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR - - dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb - - NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE - - s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL - - U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI - - VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ - - QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 - - /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 - - cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j - - 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR - - dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb - - NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE - - s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL - - U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI - - VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ - - QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 - - /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 - - cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j - - 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR - - dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb - - NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE - - s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL - - U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI - - VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ - - QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 - - /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 - - cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j - - 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR - - dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb - - NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE - - s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC - - - - - - - - - - iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAgxJREFUOE+lkvtL - - U2EYx+0PEbtpFwnBKPGKiJImGP0gYhIYs1E5GF5gIxkpA00JRSmMEF0ohMh+GaRWYlqabMVcNdS2QpaI - - VqiDIYhk397vA6fXhCjyhYdzeM/5fp7vczkAdeL2cwho7v/wWzT1zcN+Pwhr51uY2/y41PQaF+wzKKiZ - - QvaN58g0jyLd5KEUcQbg+84P/Cm2tncQjW3j68YWIqubCC3FcOJc478BAuGoZM6zvoRnakXEruEIjhc4 - - /g5gZop9c+voGAyLbQIfeBZxLL9BA1jzXvuGbWamuKh+GmmVbswE19A59FEBbmoAG7YbsLtm2mZmiml9 - - cvabNDwpz6YB7LYBoMXCumkJr7LOmnnHzBQ/9X2Bo2cOibm1GsBREbAQiYmw/8lnuCeWkVzcgnZlnw1j - - 3HV/wuNXK6i/9x5Hc6wawDlTXHbLJ+LZUBQPRyKwdQdxutwl1h+NLXHh5Ht1ewBHsiwawCW57HyDAfWR - - dvl0uhZQ1eqX8aVc7EKLqrum651ATLf9OJx5XQM4KmY0xPzZ0hFAiQJnXB0WwME0E3IsL5B17ZlADqWb - - NYDrOepdlcysmTWWOrxqbceRWtaLk0VO1XW72D5Vckd2gMBfq8zdpmUG62NJvKM4+XyziDk24xmfWoGE - - s1c0gHPmbrPTpHNJKOCo2G1mZs20zcwUJ5yp1AB5+8/zEwgF5GMVDxh4AAAAAElFTkSuQmCC - - - - - - - - 116, 17 - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/PTWin.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/PTWin.csproj deleted file mode 100644 index b6aeb54d..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/PTWin.csproj +++ /dev/null @@ -1,164 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {DAB85BA2-86A3-4D3B-8D34-324D939D952C} - WinExe - Properties - PTWin - PTWin - PTWin.Program - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\csla20cs\Csla\bin\Debug\Csla.dll - - - - - - - - - - - Form - - - LoginForm.cs - - - Form - - - MainForm.cs - - - - UserControl - - - ProjectEdit.cs - - - Form - - - ProjectSelect.cs - - - - Designer - LoginForm.cs - - - Designer - MainForm.cs - - - Designer - ProjectEdit.cs - - - Designer - ProjectSelect.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - Designer - ResourceEdit.cs - - - Designer - ResourceSelect.cs - - - Designer - RolesEdit.cs - - - True - Resources.resx - True - - - - - - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - UserControl - - - ResourceEdit.cs - - - Form - - - ResourceSelect.cs - - - UserControl - - - RolesEdit.cs - - - - UserControl - - - WinPart.cs - - - - - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96} - ProjectTracker.Library - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Program.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Program.cs deleted file mode 100644 index 6cab92de..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace PTWin -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new MainForm()); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.Designer.cs deleted file mode 100644 index 674d79b0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.Designer.cs +++ /dev/null @@ -1,414 +0,0 @@ -namespace PTWin -{ - partial class ProjectEdit - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.Label DescriptionLabel; - System.Windows.Forms.Label EndedLabel; - System.Windows.Forms.Label IdLabel; - System.Windows.Forms.Label NameLabel; - System.Windows.Forms.Label StartedLabel; - this.CloseButton = new System.Windows.Forms.Button(); - this.ApplyButton = new System.Windows.Forms.Button(); - this.Cancel_Button = new System.Windows.Forms.Button(); - this.OKButton = new System.Windows.Forms.Button(); - this.GroupBox1 = new System.Windows.Forms.GroupBox(); - this.UnassignButton = new System.Windows.Forms.Button(); - this.AssignButton = new System.Windows.Forms.Button(); - this.ResourcesDataGridView = new System.Windows.Forms.DataGridView(); - this.ResourceId = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.FullName = new System.Windows.Forms.DataGridViewLinkColumn(); - this.Role = new System.Windows.Forms.DataGridViewComboBoxColumn(); - this.roleListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.assignedDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.resourcesBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.projectBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.DescriptionTextBox = new System.Windows.Forms.TextBox(); - this.EndedTextBox = new System.Windows.Forms.TextBox(); - this.IdLabel1 = new System.Windows.Forms.Label(); - this.NameTextBox = new System.Windows.Forms.TextBox(); - this.StartedTextBox = new System.Windows.Forms.TextBox(); - this.ErrorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); - this.ReadWriteAuthorization1 = new Csla.Windows.ReadWriteAuthorization(this.components); - this.BindingSourceRefresh1 = new Csla.Windows.BindingSourceRefresh(this.components); - DescriptionLabel = new System.Windows.Forms.Label(); - EndedLabel = new System.Windows.Forms.Label(); - IdLabel = new System.Windows.Forms.Label(); - NameLabel = new System.Windows.Forms.Label(); - StartedLabel = new System.Windows.Forms.Label(); - this.GroupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.ResourcesDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.roleListBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.resourcesBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.projectBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).BeginInit(); - this.SuspendLayout(); - // - // DescriptionLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(DescriptionLabel, false); - DescriptionLabel.AutoSize = true; - DescriptionLabel.Location = new System.Drawing.Point(12, 120); - DescriptionLabel.Name = "DescriptionLabel"; - DescriptionLabel.Size = new System.Drawing.Size(63, 13); - DescriptionLabel.TabIndex = 31; - DescriptionLabel.Text = "Description:"; - // - // EndedLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(EndedLabel, false); - EndedLabel.AutoSize = true; - EndedLabel.Location = new System.Drawing.Point(12, 94); - EndedLabel.Name = "EndedLabel"; - EndedLabel.Size = new System.Drawing.Size(41, 13); - EndedLabel.TabIndex = 33; - EndedLabel.Text = "Ended:"; - // - // IdLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(IdLabel, false); - IdLabel.AutoSize = true; - IdLabel.Location = new System.Drawing.Point(12, 13); - IdLabel.Name = "IdLabel"; - IdLabel.Size = new System.Drawing.Size(19, 13); - IdLabel.TabIndex = 35; - IdLabel.Text = "Id:"; - // - // NameLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(NameLabel, false); - NameLabel.AutoSize = true; - NameLabel.Location = new System.Drawing.Point(12, 42); - NameLabel.Name = "NameLabel"; - NameLabel.Size = new System.Drawing.Size(38, 13); - NameLabel.TabIndex = 37; - NameLabel.Text = "Name:"; - // - // StartedLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(StartedLabel, false); - StartedLabel.AutoSize = true; - StartedLabel.Location = new System.Drawing.Point(12, 68); - StartedLabel.Name = "StartedLabel"; - StartedLabel.Size = new System.Drawing.Size(44, 13); - StartedLabel.TabIndex = 39; - StartedLabel.Text = "Started:"; - // - // CloseButton - // - this.CloseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.CloseButton, false); - this.CloseButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.CloseButton.Location = new System.Drawing.Point(578, 100); - this.CloseButton.Name = "CloseButton"; - this.CloseButton.Size = new System.Drawing.Size(75, 23); - this.CloseButton.TabIndex = 45; - this.CloseButton.Text = "Close"; - this.CloseButton.UseVisualStyleBackColor = true; - this.CloseButton.Click += new System.EventHandler(this.CloseButton_Click); - // - // ApplyButton - // - this.ApplyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.ApplyButton, false); - this.ApplyButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.ApplyButton.Location = new System.Drawing.Point(578, 42); - this.ApplyButton.Name = "ApplyButton"; - this.ApplyButton.Size = new System.Drawing.Size(75, 23); - this.ApplyButton.TabIndex = 44; - this.ApplyButton.Text = "Apply"; - this.ApplyButton.UseVisualStyleBackColor = true; - this.ApplyButton.Click += new System.EventHandler(this.ApplyButton_Click); - // - // Cancel_Button - // - this.Cancel_Button.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.Cancel_Button, false); - this.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel_Button.Location = new System.Drawing.Point(578, 71); - this.Cancel_Button.Name = "Cancel_Button"; - this.Cancel_Button.Size = new System.Drawing.Size(75, 23); - this.Cancel_Button.TabIndex = 43; - this.Cancel_Button.Text = "Cancel"; - this.Cancel_Button.UseVisualStyleBackColor = true; - this.Cancel_Button.Click += new System.EventHandler(this.Cancel_Button_Click); - // - // OKButton - // - this.OKButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.OKButton, false); - this.OKButton.Location = new System.Drawing.Point(578, 13); - this.OKButton.Name = "OKButton"; - this.OKButton.Size = new System.Drawing.Size(75, 23); - this.OKButton.TabIndex = 42; - this.OKButton.Text = "OK"; - this.OKButton.UseVisualStyleBackColor = true; - this.OKButton.Click += new System.EventHandler(this.OKButton_Click); - // - // GroupBox1 - // - this.GroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.GroupBox1, false); - this.GroupBox1.Controls.Add(this.UnassignButton); - this.GroupBox1.Controls.Add(this.AssignButton); - this.GroupBox1.Controls.Add(this.ResourcesDataGridView); - this.GroupBox1.Location = new System.Drawing.Point(81, 231); - this.GroupBox1.Name = "GroupBox1"; - this.GroupBox1.Size = new System.Drawing.Size(460, 210); - this.GroupBox1.TabIndex = 41; - this.GroupBox1.TabStop = false; - this.GroupBox1.Text = "Resources"; - // - // UnassignButton - // - this.UnassignButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.UnassignButton, false); - this.UnassignButton.Location = new System.Drawing.Point(379, 48); - this.UnassignButton.Name = "UnassignButton"; - this.UnassignButton.Size = new System.Drawing.Size(75, 23); - this.UnassignButton.TabIndex = 12; - this.UnassignButton.Text = "Unassign"; - this.UnassignButton.UseVisualStyleBackColor = true; - this.UnassignButton.Click += new System.EventHandler(this.UnassignButton_Click); - // - // AssignButton - // - this.AssignButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.AssignButton, false); - this.AssignButton.Location = new System.Drawing.Point(379, 19); - this.AssignButton.Name = "AssignButton"; - this.AssignButton.Size = new System.Drawing.Size(75, 23); - this.AssignButton.TabIndex = 11; - this.AssignButton.Text = "Assign"; - this.AssignButton.UseVisualStyleBackColor = true; - this.AssignButton.Click += new System.EventHandler(this.AssignButton_Click); - // - // ResourcesDataGridView - // - this.ResourcesDataGridView.AllowUserToAddRows = false; - this.ResourcesDataGridView.AllowUserToDeleteRows = false; - this.ResourcesDataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.ResourcesDataGridView, false); - this.ResourcesDataGridView.AutoGenerateColumns = false; - this.ResourcesDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; - this.ResourcesDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.ResourceId, - this.FullName, - this.Role, - this.assignedDataGridViewTextBoxColumn}); - this.ResourcesDataGridView.DataSource = this.resourcesBindingSource; - this.ResourcesDataGridView.Location = new System.Drawing.Point(6, 19); - this.ResourcesDataGridView.MultiSelect = false; - this.ResourcesDataGridView.Name = "ResourcesDataGridView"; - this.ResourcesDataGridView.RowHeadersVisible = false; - this.ResourcesDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.ResourcesDataGridView.Size = new System.Drawing.Size(367, 185); - this.ResourcesDataGridView.TabIndex = 10; - this.ResourcesDataGridView.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.ResourcesDataGridView_CellContentClick); - // - // ResourceId - // - this.ResourceId.DataPropertyName = "ResourceId"; - this.ResourceId.HeaderText = "ResourceId"; - this.ResourceId.Name = "ResourceId"; - this.ResourceId.ReadOnly = true; - this.ResourceId.Visible = false; - this.ResourceId.Width = 87; - // - // FullName - // - this.FullName.DataPropertyName = "FullName"; - this.FullName.HeaderText = "FullName"; - this.FullName.Name = "FullName"; - this.FullName.ReadOnly = true; - this.FullName.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.FullName.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.FullName.Width = 76; - // - // Role - // - this.Role.DataPropertyName = "Role"; - this.Role.DataSource = this.roleListBindingSource; - this.Role.DisplayMember = "Value"; - this.Role.HeaderText = "Role"; - this.Role.Name = "Role"; - this.Role.ValueMember = "Key"; - this.Role.Width = 35; - // - // roleListBindingSource - // - this.roleListBindingSource.DataSource = typeof(ProjectTracker.Library.RoleList); - this.BindingSourceRefresh1.SetReadValuesOnChange(this.roleListBindingSource, false); - // - // assignedDataGridViewTextBoxColumn - // - this.assignedDataGridViewTextBoxColumn.DataPropertyName = "Assigned"; - this.assignedDataGridViewTextBoxColumn.HeaderText = "Assigned"; - this.assignedDataGridViewTextBoxColumn.Name = "assignedDataGridViewTextBoxColumn"; - this.assignedDataGridViewTextBoxColumn.ReadOnly = true; - this.assignedDataGridViewTextBoxColumn.Width = 75; - // - // resourcesBindingSource - // - this.resourcesBindingSource.DataMember = "Resources"; - this.resourcesBindingSource.DataSource = this.projectBindingSource; - this.BindingSourceRefresh1.SetReadValuesOnChange(this.resourcesBindingSource, false); - // - // projectBindingSource - // - this.projectBindingSource.DataSource = typeof(ProjectTracker.Library.Project); - this.BindingSourceRefresh1.SetReadValuesOnChange(this.projectBindingSource, true); - // - // DescriptionTextBox - // - this.DescriptionTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.DescriptionTextBox, true); - this.DescriptionTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.projectBindingSource, "Description", true)); - this.DescriptionTextBox.Location = new System.Drawing.Point(81, 117); - this.DescriptionTextBox.Multiline = true; - this.DescriptionTextBox.Name = "DescriptionTextBox"; - this.DescriptionTextBox.Size = new System.Drawing.Size(460, 108); - this.DescriptionTextBox.TabIndex = 32; - // - // EndedTextBox - // - this.EndedTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.EndedTextBox, true); - this.EndedTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.projectBindingSource, "Ended", true)); - this.EndedTextBox.Location = new System.Drawing.Point(81, 91); - this.EndedTextBox.Name = "EndedTextBox"; - this.EndedTextBox.Size = new System.Drawing.Size(460, 20); - this.EndedTextBox.TabIndex = 34; - // - // IdLabel1 - // - this.IdLabel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.IdLabel1, false); - this.IdLabel1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.projectBindingSource, "Id", true)); - this.IdLabel1.Location = new System.Drawing.Point(81, 13); - this.IdLabel1.Name = "IdLabel1"; - this.IdLabel1.Size = new System.Drawing.Size(460, 23); - this.IdLabel1.TabIndex = 36; - // - // NameTextBox - // - this.NameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.NameTextBox, true); - this.NameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.projectBindingSource, "Name", true)); - this.NameTextBox.Location = new System.Drawing.Point(81, 39); - this.NameTextBox.Name = "NameTextBox"; - this.NameTextBox.Size = new System.Drawing.Size(460, 20); - this.NameTextBox.TabIndex = 38; - // - // StartedTextBox - // - this.StartedTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.StartedTextBox, true); - this.StartedTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.projectBindingSource, "Started", true)); - this.StartedTextBox.Location = new System.Drawing.Point(81, 65); - this.StartedTextBox.Name = "StartedTextBox"; - this.StartedTextBox.Size = new System.Drawing.Size(460, 20); - this.StartedTextBox.TabIndex = 40; - // - // ErrorProvider1 - // - this.ErrorProvider1.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink; - this.ErrorProvider1.ContainerControl = this; - this.ErrorProvider1.DataSource = this.projectBindingSource; - // - // ProjectEdit - // - this.ReadWriteAuthorization1.SetApplyAuthorization(this, false); - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.CloseButton); - this.Controls.Add(this.ApplyButton); - this.Controls.Add(this.Cancel_Button); - this.Controls.Add(this.OKButton); - this.Controls.Add(this.GroupBox1); - this.Controls.Add(DescriptionLabel); - this.Controls.Add(this.DescriptionTextBox); - this.Controls.Add(EndedLabel); - this.Controls.Add(IdLabel); - this.Controls.Add(NameLabel); - this.Controls.Add(StartedLabel); - this.Controls.Add(this.EndedTextBox); - this.Controls.Add(this.IdLabel1); - this.Controls.Add(this.NameTextBox); - this.Controls.Add(this.StartedTextBox); - this.Name = "ProjectEdit"; - this.Size = new System.Drawing.Size(665, 454); - this.CurrentPrincipalChanged += new System.EventHandler(this.ProjectEdit_CurrentPrincipalChanged); - this.GroupBox1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.ResourcesDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.roleListBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.resourcesBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.projectBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Button CloseButton; - internal System.Windows.Forms.Button ApplyButton; - internal System.Windows.Forms.Button Cancel_Button; - internal System.Windows.Forms.Button OKButton; - internal System.Windows.Forms.GroupBox GroupBox1; - internal System.Windows.Forms.Button UnassignButton; - internal System.Windows.Forms.Button AssignButton; - internal System.Windows.Forms.DataGridView ResourcesDataGridView; - internal System.Windows.Forms.TextBox DescriptionTextBox; - internal System.Windows.Forms.TextBox EndedTextBox; - internal System.Windows.Forms.Label IdLabel1; - internal System.Windows.Forms.TextBox NameTextBox; - internal System.Windows.Forms.TextBox StartedTextBox; - internal Csla.Windows.ReadWriteAuthorization ReadWriteAuthorization1; - internal System.Windows.Forms.ErrorProvider ErrorProvider1; - internal System.Windows.Forms.BindingSource projectBindingSource; - internal Csla.Windows.BindingSourceRefresh BindingSourceRefresh1; - internal System.Windows.Forms.BindingSource resourcesBindingSource; - internal System.Windows.Forms.BindingSource roleListBindingSource; - private System.Windows.Forms.DataGridViewTextBoxColumn ResourceId; - private System.Windows.Forms.DataGridViewLinkColumn FullName; - private System.Windows.Forms.DataGridViewComboBoxColumn Role; - private System.Windows.Forms.DataGridViewTextBoxColumn assignedDataGridViewTextBoxColumn; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.cs deleted file mode 100644 index 98f9f69b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.cs +++ /dev/null @@ -1,187 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library; - -namespace PTWin -{ - public partial class ProjectEdit : WinPart - { - - private Project _project; - - public Project Project - { - get { return _project; } - } - - #region WinPart Code - - public override string ToString() - { - return _project.Name; - } - - protected internal override object GetIdValue() - { - return _project; - } - - private void ProjectEdit_CurrentPrincipalChanged( - object sender, EventArgs e) - { - ApplyAuthorizationRules(); - } - - #endregion - - private void ApplyAuthorizationRules() - { - // have the controls enable/disable/etc - this.ReadWriteAuthorization1.ResetControlAuthorization(); - - bool canEdit = - ProjectTracker.Library.Project.CanEditObject(); - - // enable/disable appropriate buttons - this.OKButton.Enabled = canEdit; - this.ApplyButton.Enabled = canEdit; - this.Cancel_Button.Enabled = canEdit; - this.AssignButton.Enabled = canEdit; - this.UnassignButton.Enabled = canEdit; - - // enable/disable role column in grid - this.ResourcesDataGridView.Columns[2].ReadOnly = - !canEdit; - } - - private void SaveProject(bool rebind) - { - using (StatusBusy busy = new StatusBusy("Saving...")) - { - this.projectBindingSource.RaiseListChangedEvents = false; - this.resourcesBindingSource.RaiseListChangedEvents = false; - // do the save - this.projectBindingSource.EndEdit(); - this.resourcesBindingSource.EndEdit(); - try - { - Project temp = _project.Clone(); - _project = temp.Save(); - if (rebind) - { - // rebind the UI - this.projectBindingSource.DataSource = null; - this.resourcesBindingSource.DataSource = this.projectBindingSource; - this.projectBindingSource.DataSource = _project; - ApplyAuthorizationRules(); - } - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error Saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - finally - { - this.projectBindingSource.RaiseListChangedEvents = true; - this.resourcesBindingSource.RaiseListChangedEvents = true; - this.projectBindingSource.ResetBindings(false); - this.resourcesBindingSource.ResetBindings(false); - } - } - } - - public ProjectEdit(Project project) - { - InitializeComponent(); - - _project = project; - - this.roleListBindingSource.DataSource = RoleList.GetList(); - this.projectBindingSource.DataSource = _project; - - ApplyAuthorizationRules(); - } - - private void OKButton_Click(object sender, EventArgs e) - { - SaveProject(false); - this.Close(); - } - - private void ApplyButton_Click(object sender, EventArgs e) - { - SaveProject(true); - } - - private void Cancel_Button_Click(object sender, EventArgs e) - { - this.projectBindingSource.CancelEdit(); - this.resourcesBindingSource.CancelEdit(); - } - - private void CloseButton_Click(object sender, EventArgs e) - { - this.projectBindingSource.CancelEdit(); - this.resourcesBindingSource.CancelEdit(); - this.Close(); - } - - private void AssignButton_Click(object sender, EventArgs e) - { - ResourceSelect dlg = new ResourceSelect(); - if (dlg.ShowDialog() == DialogResult.OK) - try - { - _project.Resources.Assign(dlg.ResourceId); - } - catch (InvalidOperationException ex) - { - MessageBox.Show(ex.ToString(), - "Error Assigning", MessageBoxButtons.OK, - MessageBoxIcon.Information); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error Assigning", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - - private void UnassignButton_Click(object sender, EventArgs e) - { - if (this.ResourcesDataGridView.SelectedRows.Count > 0) - { - int resourceId = int.Parse( - this.ResourcesDataGridView.SelectedRows[0]. - Cells[0].Value.ToString()); - _project.Resources.Remove(resourceId); - } - } - - private void ResourcesDataGridView_CellContentClick( - object sender, DataGridViewCellEventArgs e) - { - if (e.ColumnIndex == 1 && e.RowIndex > -1) - { - int resourceId = int.Parse( - this.ResourcesDataGridView.Rows[ - e.RowIndex].Cells[0].Value.ToString()); - MainForm.Instance.ShowEditResource(resourceId); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.resx deleted file mode 100644 index 6fd2e9b9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectEdit.resx +++ /dev/null @@ -1,186 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - 297, 17 - - - False - - - False - - - False - - - False - - - True - - - True - - - True - - - 472, 17 - - - True - - - True - - - True - - - 645, 17 - - - 645, 17 - - - 806, 17 - - - 472, 17 - - - 140, 17 - - - 140, 17 - - - 297, 17 - - - 17, 17 - - - 806, 17 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.Designer.cs deleted file mode 100644 index d0ad6829..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.Designer.cs +++ /dev/null @@ -1,164 +0,0 @@ -namespace PTWin -{ - partial class ProjectSelect - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.GetListButton = new System.Windows.Forms.Button(); - this.NameTextBox = new System.Windows.Forms.TextBox(); - this.NameLabel = new System.Windows.Forms.Label(); - this.ProjectListListBox = new System.Windows.Forms.ListBox(); - this.projectListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.TableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.OK_Button = new System.Windows.Forms.Button(); - this.Cancel_Button = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.projectListBindingSource)).BeginInit(); - this.TableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // GetListButton - // - this.GetListButton.Location = new System.Drawing.Point(356, 9); - this.GetListButton.Name = "GetListButton"; - this.GetListButton.Size = new System.Drawing.Size(75, 23); - this.GetListButton.TabIndex = 10; - this.GetListButton.Text = "Get list"; - this.GetListButton.UseVisualStyleBackColor = true; - this.GetListButton.Click += new System.EventHandler(this.GetListButton_Click); - // - // NameTextBox - // - this.NameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.NameTextBox.Location = new System.Drawing.Point(83, 9); - this.NameTextBox.Name = "NameTextBox"; - this.NameTextBox.Size = new System.Drawing.Size(267, 20); - this.NameTextBox.TabIndex = 9; - // - // NameLabel - // - this.NameLabel.AutoSize = true; - this.NameLabel.Location = new System.Drawing.Point(12, 12); - this.NameLabel.Name = "NameLabel"; - this.NameLabel.Size = new System.Drawing.Size(38, 13); - this.NameLabel.TabIndex = 8; - this.NameLabel.Text = "Name:"; - // - // ProjectListListBox - // - this.ProjectListListBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ProjectListListBox.DataSource = this.projectListBindingSource; - this.ProjectListListBox.DisplayMember = "Name"; - this.ProjectListListBox.Location = new System.Drawing.Point(12, 41); - this.ProjectListListBox.Name = "ProjectListListBox"; - this.ProjectListListBox.Size = new System.Drawing.Size(419, 238); - this.ProjectListListBox.TabIndex = 7; - this.ProjectListListBox.ValueMember = "Id"; - // - // projectListBindingSource - // - this.projectListBindingSource.DataSource = typeof(ProjectTracker.Library.ProjectInfo); - // - // TableLayoutPanel1 - // - this.TableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.TableLayoutPanel1.ColumnCount = 2; - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Controls.Add(this.OK_Button, 0, 0); - this.TableLayoutPanel1.Controls.Add(this.Cancel_Button, 1, 0); - this.TableLayoutPanel1.Location = new System.Drawing.Point(285, 285); - this.TableLayoutPanel1.Name = "TableLayoutPanel1"; - this.TableLayoutPanel1.RowCount = 1; - this.TableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Size = new System.Drawing.Size(146, 29); - this.TableLayoutPanel1.TabIndex = 6; - // - // OK_Button - // - this.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.OK_Button.DialogResult = System.Windows.Forms.DialogResult.OK; - this.OK_Button.Location = new System.Drawing.Point(3, 3); - this.OK_Button.Name = "OK_Button"; - this.OK_Button.Size = new System.Drawing.Size(67, 23); - this.OK_Button.TabIndex = 0; - this.OK_Button.Text = "OK"; - this.OK_Button.Click += new System.EventHandler(this.OK_Button_Click); - // - // Cancel_Button - // - this.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel_Button.Location = new System.Drawing.Point(76, 3); - this.Cancel_Button.Name = "Cancel_Button"; - this.Cancel_Button.Size = new System.Drawing.Size(67, 23); - this.Cancel_Button.TabIndex = 1; - this.Cancel_Button.Text = "Cancel"; - this.Cancel_Button.Click += new System.EventHandler(this.Cancel_Button_Click); - // - // ProjectSelect - // - this.AcceptButton = this.OK_Button; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.Cancel_Button; - this.ClientSize = new System.Drawing.Size(443, 323); - this.Controls.Add(this.GetListButton); - this.Controls.Add(this.NameTextBox); - this.Controls.Add(this.NameLabel); - this.Controls.Add(this.ProjectListListBox); - this.Controls.Add(this.TableLayoutPanel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ProjectSelect"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "Select Project"; - this.Load += new System.EventHandler(this.ProjectSelect_Load); - ((System.ComponentModel.ISupportInitialize)(this.projectListBindingSource)).EndInit(); - this.TableLayoutPanel1.ResumeLayout(false); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Button GetListButton; - internal System.Windows.Forms.TextBox NameTextBox; - internal System.Windows.Forms.Label NameLabel; - internal System.Windows.Forms.ListBox ProjectListListBox; - internal System.Windows.Forms.TableLayoutPanel TableLayoutPanel1; - internal System.Windows.Forms.Button OK_Button; - internal System.Windows.Forms.Button Cancel_Button; - private System.Windows.Forms.BindingSource projectListBindingSource; - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.cs deleted file mode 100644 index 648c8821..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.cs +++ /dev/null @@ -1,59 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library; - -namespace PTWin -{ - public partial class ProjectSelect : Form - { - - private Guid _projectId; - - public Guid ProjectId - { - get { return _projectId; } - } - - - - public ProjectSelect() - { - InitializeComponent(); - } - - private void OK_Button_Click(object sender, EventArgs e) - { - _projectId = (Guid)this.ProjectListListBox.SelectedValue; - this.Close(); - } - - private void Cancel_Button_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void ProjectSelect_Load(object sender, EventArgs e) - { - DisplayList(ProjectList.GetProjectList()); - } - - private void DisplayList(ProjectList list) - { - Csla.SortedBindingList sortedList = - new Csla.SortedBindingList(list); - sortedList.ApplySort("Name", ListSortDirection.Ascending); - this.projectListBindingSource.DataSource = sortedList; - } - - private void GetListButton_Click( - object sender, EventArgs e) - { - DisplayList(ProjectList.GetProjectList(NameTextBox.Text)); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.resx deleted file mode 100644 index d82137bd..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ProjectSelect.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/AssemblyInfo.cs deleted file mode 100644 index 0affdd49..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PTWin")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Rockford Lhotka")] -[assembly: AssemblyProduct("ProjectTracker")] -[assembly: AssemblyCopyright("Copyright © Rockford Lhotka 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("e8881d52-b4d0-431b-894b-7919c175f24c")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Admin.Roles.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Admin.Roles.datasource deleted file mode 100644 index e1b701e0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Admin.Roles.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ProjectTracker.Library.Admin.Roles, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Project.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Project.datasource deleted file mode 100644 index b31a08e0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Project.datasource +++ /dev/null @@ -1,21 +0,0 @@ - - - - ProjectTracker.Library.Project, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ProjectList.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ProjectList.datasource deleted file mode 100644 index fbc96d41..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ProjectList.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ProjectTracker.Library.ProjectList, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Resource.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Resource.datasource deleted file mode 100644 index bf9ff331..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.Resource.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ProjectTracker.Library.Resource, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ResourceList.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ResourceList.datasource deleted file mode 100644 index 1d881703..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.ResourceList.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ProjectTracker.Library.ResourceList, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.RoleList.datasource b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.RoleList.datasource deleted file mode 100644 index d1b811f9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/DataSources/ProjectTracker.Library.RoleList.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - ProjectTracker.Library.RoleList, ProjectTracker.Library, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.Designer.cs deleted file mode 100644 index 55db546e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PTWin.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PTWin.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.Designer.cs deleted file mode 100644 index 43f85cce..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.Designer.cs +++ /dev/null @@ -1,26 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PTWin.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.settings b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.Designer.cs deleted file mode 100644 index 5ee72aff..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.Designer.cs +++ /dev/null @@ -1,358 +0,0 @@ -namespace PTWin -{ - partial class ResourceEdit - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.Windows.Forms.Label FirstNameLabel; - System.Windows.Forms.Label IdLabel; - System.Windows.Forms.Label LastNameLabel; - this.CloseButton = new System.Windows.Forms.Button(); - this.ApplyButton = new System.Windows.Forms.Button(); - this.Cancel_Button = new System.Windows.Forms.Button(); - this.OKButton = new System.Windows.Forms.Button(); - this.GroupBox1 = new System.Windows.Forms.GroupBox(); - this.AssignmentsDataGridView = new System.Windows.Forms.DataGridView(); - this.RoleListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.AssignmentsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.ResourceBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.UnassignButton = new System.Windows.Forms.Button(); - this.AssignButton = new System.Windows.Forms.Button(); - this.FirstNameTextBox = new System.Windows.Forms.TextBox(); - this.IdLabel1 = new System.Windows.Forms.Label(); - this.LastNameTextBox = new System.Windows.Forms.TextBox(); - this.ErrorProvider1 = new System.Windows.Forms.ErrorProvider(this.components); - this.BindingSourceRefresh1 = new Csla.Windows.BindingSourceRefresh(this.components); - this.ReadWriteAuthorization1 = new Csla.Windows.ReadWriteAuthorization(this.components); - this.projectIdDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.projectNameDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewLinkColumn(); - this.assignedDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.Role = new System.Windows.Forms.DataGridViewComboBoxColumn(); - FirstNameLabel = new System.Windows.Forms.Label(); - IdLabel = new System.Windows.Forms.Label(); - LastNameLabel = new System.Windows.Forms.Label(); - this.GroupBox1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.AssignmentsDataGridView)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.RoleListBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.AssignmentsBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).BeginInit(); - this.SuspendLayout(); - // - // FirstNameLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(FirstNameLabel, false); - FirstNameLabel.AutoSize = true; - FirstNameLabel.Location = new System.Drawing.Point(13, 42); - FirstNameLabel.Name = "FirstNameLabel"; - FirstNameLabel.Size = new System.Drawing.Size(60, 13); - FirstNameLabel.TabIndex = 35; - FirstNameLabel.Text = "First Name:"; - // - // IdLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(IdLabel, false); - IdLabel.AutoSize = true; - IdLabel.Location = new System.Drawing.Point(13, 13); - IdLabel.Name = "IdLabel"; - IdLabel.Size = new System.Drawing.Size(19, 13); - IdLabel.TabIndex = 37; - IdLabel.Text = "Id:"; - // - // LastNameLabel - // - this.ReadWriteAuthorization1.SetApplyAuthorization(LastNameLabel, false); - LastNameLabel.AutoSize = true; - LastNameLabel.Location = new System.Drawing.Point(13, 68); - LastNameLabel.Name = "LastNameLabel"; - LastNameLabel.Size = new System.Drawing.Size(61, 13); - LastNameLabel.TabIndex = 39; - LastNameLabel.Text = "Last Name:"; - // - // CloseButton - // - this.CloseButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.CloseButton, false); - this.CloseButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.CloseButton.Location = new System.Drawing.Point(501, 100); - this.CloseButton.Name = "CloseButton"; - this.CloseButton.Size = new System.Drawing.Size(75, 23); - this.CloseButton.TabIndex = 45; - this.CloseButton.Text = "Close"; - this.CloseButton.UseVisualStyleBackColor = true; - this.CloseButton.Click += new System.EventHandler(this.CloseButton_Click); - // - // ApplyButton - // - this.ApplyButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.ApplyButton, false); - this.ApplyButton.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.ApplyButton.Location = new System.Drawing.Point(501, 42); - this.ApplyButton.Name = "ApplyButton"; - this.ApplyButton.Size = new System.Drawing.Size(75, 23); - this.ApplyButton.TabIndex = 44; - this.ApplyButton.Text = "Apply"; - this.ApplyButton.UseVisualStyleBackColor = true; - this.ApplyButton.Click += new System.EventHandler(this.ApplyButton_Click); - // - // Cancel_Button - // - this.Cancel_Button.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.Cancel_Button, false); - this.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel_Button.Location = new System.Drawing.Point(501, 71); - this.Cancel_Button.Name = "Cancel_Button"; - this.Cancel_Button.Size = new System.Drawing.Size(75, 23); - this.Cancel_Button.TabIndex = 43; - this.Cancel_Button.Text = "Cancel"; - this.Cancel_Button.UseVisualStyleBackColor = true; - this.Cancel_Button.Click += new System.EventHandler(this.Cancel_Button_Click); - // - // OKButton - // - this.OKButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.OKButton, false); - this.OKButton.Location = new System.Drawing.Point(501, 13); - this.OKButton.Name = "OKButton"; - this.OKButton.Size = new System.Drawing.Size(75, 23); - this.OKButton.TabIndex = 42; - this.OKButton.Text = "OK"; - this.OKButton.UseVisualStyleBackColor = true; - this.OKButton.Click += new System.EventHandler(this.OKButton_Click); - // - // GroupBox1 - // - this.GroupBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.GroupBox1, false); - this.GroupBox1.Controls.Add(this.AssignmentsDataGridView); - this.GroupBox1.Controls.Add(this.UnassignButton); - this.GroupBox1.Controls.Add(this.AssignButton); - this.GroupBox1.Location = new System.Drawing.Point(16, 91); - this.GroupBox1.Name = "GroupBox1"; - this.GroupBox1.Size = new System.Drawing.Size(449, 310); - this.GroupBox1.TabIndex = 41; - this.GroupBox1.TabStop = false; - this.GroupBox1.Text = "Assigned projects"; - // - // AssignmentsDataGridView - // - this.AssignmentsDataGridView.AllowUserToAddRows = false; - this.AssignmentsDataGridView.AllowUserToDeleteRows = false; - this.AssignmentsDataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.AssignmentsDataGridView, false); - this.AssignmentsDataGridView.AutoGenerateColumns = false; - this.AssignmentsDataGridView.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells; - this.AssignmentsDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.projectIdDataGridViewTextBoxColumn, - this.projectNameDataGridViewTextBoxColumn, - this.assignedDataGridViewTextBoxColumn, - this.Role}); - this.AssignmentsDataGridView.DataSource = this.AssignmentsBindingSource; - this.AssignmentsDataGridView.Location = new System.Drawing.Point(6, 19); - this.AssignmentsDataGridView.MultiSelect = false; - this.AssignmentsDataGridView.Name = "AssignmentsDataGridView"; - this.AssignmentsDataGridView.RowHeadersVisible = false; - this.AssignmentsDataGridView.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect; - this.AssignmentsDataGridView.Size = new System.Drawing.Size(356, 285); - this.AssignmentsDataGridView.TabIndex = 15; - this.AssignmentsDataGridView.CellContentClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.AssignmentsDataGridView_CellContentClick); - // - // RoleListBindingSource - // - this.RoleListBindingSource.DataSource = typeof(ProjectTracker.Library.RoleList); - this.BindingSourceRefresh1.SetReadValuesOnChange(this.RoleListBindingSource, false); - // - // AssignmentsBindingSource - // - this.AssignmentsBindingSource.DataMember = "Assignments"; - this.AssignmentsBindingSource.DataSource = this.ResourceBindingSource; - this.BindingSourceRefresh1.SetReadValuesOnChange(this.AssignmentsBindingSource, false); - // - // ResourceBindingSource - // - this.ResourceBindingSource.DataSource = typeof(ProjectTracker.Library.Resource); - this.BindingSourceRefresh1.SetReadValuesOnChange(this.ResourceBindingSource, true); - // - // UnassignButton - // - this.UnassignButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.UnassignButton, false); - this.UnassignButton.Location = new System.Drawing.Point(368, 48); - this.UnassignButton.Name = "UnassignButton"; - this.UnassignButton.Size = new System.Drawing.Size(75, 23); - this.UnassignButton.TabIndex = 14; - this.UnassignButton.Text = "Unassign"; - this.UnassignButton.UseVisualStyleBackColor = true; - this.UnassignButton.Click += new System.EventHandler(this.UnassignButton_Click); - // - // AssignButton - // - this.AssignButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.AssignButton, false); - this.AssignButton.Location = new System.Drawing.Point(368, 19); - this.AssignButton.Name = "AssignButton"; - this.AssignButton.Size = new System.Drawing.Size(75, 23); - this.AssignButton.TabIndex = 13; - this.AssignButton.Text = "Assign"; - this.AssignButton.UseVisualStyleBackColor = true; - this.AssignButton.Click += new System.EventHandler(this.AssignButton_Click); - // - // FirstNameTextBox - // - this.FirstNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.FirstNameTextBox, true); - this.FirstNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ResourceBindingSource, "FirstName", true)); - this.FirstNameTextBox.Location = new System.Drawing.Point(80, 39); - this.FirstNameTextBox.Name = "FirstNameTextBox"; - this.FirstNameTextBox.Size = new System.Drawing.Size(385, 20); - this.FirstNameTextBox.TabIndex = 36; - // - // IdLabel1 - // - this.IdLabel1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.IdLabel1, true); - this.IdLabel1.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ResourceBindingSource, "Id", true)); - this.IdLabel1.Location = new System.Drawing.Point(80, 13); - this.IdLabel1.Name = "IdLabel1"; - this.IdLabel1.Size = new System.Drawing.Size(385, 23); - this.IdLabel1.TabIndex = 38; - // - // LastNameTextBox - // - this.LastNameTextBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ReadWriteAuthorization1.SetApplyAuthorization(this.LastNameTextBox, true); - this.LastNameTextBox.DataBindings.Add(new System.Windows.Forms.Binding("Text", this.ResourceBindingSource, "LastName", true)); - this.LastNameTextBox.Location = new System.Drawing.Point(80, 65); - this.LastNameTextBox.Name = "LastNameTextBox"; - this.LastNameTextBox.Size = new System.Drawing.Size(385, 20); - this.LastNameTextBox.TabIndex = 40; - // - // ErrorProvider1 - // - this.ErrorProvider1.BlinkStyle = System.Windows.Forms.ErrorBlinkStyle.NeverBlink; - this.ErrorProvider1.ContainerControl = this; - this.ErrorProvider1.DataSource = this.ResourceBindingSource; - // - // projectIdDataGridViewTextBoxColumn - // - this.projectIdDataGridViewTextBoxColumn.DataPropertyName = "ProjectId"; - this.projectIdDataGridViewTextBoxColumn.HeaderText = "ProjectId"; - this.projectIdDataGridViewTextBoxColumn.Name = "projectIdDataGridViewTextBoxColumn"; - this.projectIdDataGridViewTextBoxColumn.ReadOnly = true; - this.projectIdDataGridViewTextBoxColumn.Visible = false; - this.projectIdDataGridViewTextBoxColumn.Width = 74; - // - // projectNameDataGridViewTextBoxColumn - // - this.projectNameDataGridViewTextBoxColumn.DataPropertyName = "ProjectName"; - this.projectNameDataGridViewTextBoxColumn.HeaderText = "Project Name"; - this.projectNameDataGridViewTextBoxColumn.Name = "projectNameDataGridViewTextBoxColumn"; - this.projectNameDataGridViewTextBoxColumn.ReadOnly = true; - this.projectNameDataGridViewTextBoxColumn.Resizable = System.Windows.Forms.DataGridViewTriState.True; - this.projectNameDataGridViewTextBoxColumn.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.Automatic; - this.projectNameDataGridViewTextBoxColumn.Width = 96; - // - // assignedDataGridViewTextBoxColumn - // - this.assignedDataGridViewTextBoxColumn.DataPropertyName = "Assigned"; - this.assignedDataGridViewTextBoxColumn.HeaderText = "Assigned"; - this.assignedDataGridViewTextBoxColumn.Name = "assignedDataGridViewTextBoxColumn"; - this.assignedDataGridViewTextBoxColumn.ReadOnly = true; - this.assignedDataGridViewTextBoxColumn.Width = 75; - // - // Role - // - this.Role.DataPropertyName = "Role"; - this.Role.DataSource = this.RoleListBindingSource; - this.Role.DisplayMember = "Value"; - this.Role.HeaderText = "Role"; - this.Role.Name = "Role"; - this.Role.ValueMember = "Key"; - this.Role.Width = 35; - // - // ResourceEdit - // - this.ReadWriteAuthorization1.SetApplyAuthorization(this, false); - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.CloseButton); - this.Controls.Add(this.ApplyButton); - this.Controls.Add(this.Cancel_Button); - this.Controls.Add(this.OKButton); - this.Controls.Add(this.GroupBox1); - this.Controls.Add(FirstNameLabel); - this.Controls.Add(this.FirstNameTextBox); - this.Controls.Add(IdLabel); - this.Controls.Add(this.IdLabel1); - this.Controls.Add(LastNameLabel); - this.Controls.Add(this.LastNameTextBox); - this.Name = "ResourceEdit"; - this.Size = new System.Drawing.Size(588, 415); - this.GroupBox1.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.AssignmentsDataGridView)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.RoleListBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.AssignmentsBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.ErrorProvider1)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - internal System.Windows.Forms.Button CloseButton; - internal System.Windows.Forms.Button ApplyButton; - internal System.Windows.Forms.Button Cancel_Button; - internal System.Windows.Forms.Button OKButton; - internal System.Windows.Forms.GroupBox GroupBox1; - internal System.Windows.Forms.Button UnassignButton; - internal System.Windows.Forms.Button AssignButton; - internal System.Windows.Forms.TextBox FirstNameTextBox; - internal System.Windows.Forms.Label IdLabel1; - internal System.Windows.Forms.TextBox LastNameTextBox; - internal Csla.Windows.ReadWriteAuthorization ReadWriteAuthorization1; - internal System.Windows.Forms.DataGridView AssignmentsDataGridView; - internal System.Windows.Forms.BindingSource RoleListBindingSource; - internal Csla.Windows.BindingSourceRefresh BindingSourceRefresh1; - internal System.Windows.Forms.BindingSource AssignmentsBindingSource; - internal System.Windows.Forms.BindingSource ResourceBindingSource; - internal System.Windows.Forms.ErrorProvider ErrorProvider1; - private System.Windows.Forms.DataGridViewTextBoxColumn projectIdDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewLinkColumn projectNameDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn assignedDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewComboBoxColumn Role; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.cs deleted file mode 100644 index 36a2014f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.cs +++ /dev/null @@ -1,190 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library; - -namespace PTWin -{ - public partial class ResourceEdit : WinPart - { - - private Resource _resource; - - public Resource Resource - { - get { return _resource; } - } - - public ResourceEdit(Resource resource) - { - InitializeComponent(); - - _resource = resource; - - this.CurrentPrincipalChanged += new EventHandler(ResourceEdit_CurrentPrincipalChanged); - _resource.PropertyChanged += new PropertyChangedEventHandler(mResource_PropertyChanged); - - this.RoleListBindingSource.DataSource = RoleList.GetList(); - this.ResourceBindingSource.DataSource = _resource; - - ApplyAuthorizationRules(); - } - - #region WinPart Code - - protected internal override object GetIdValue() - { - return _resource; - } - - public override string ToString() - { - return _resource.FullName; - } - - private void ResourceEdit_CurrentPrincipalChanged(object sender, EventArgs e) - { - ApplyAuthorizationRules(); - } - - #endregion - - private void ApplyAuthorizationRules() - { - // have the controls enable/disable/etc - this.ReadWriteAuthorization1.ResetControlAuthorization(); - - bool canEdit = ProjectTracker.Library.Project.CanEditObject(); - - // enable/disable appropriate buttons - this.OKButton.Enabled = canEdit; - this.ApplyButton.Enabled = canEdit; - this.Cancel_Button.Enabled = canEdit; - - // enable/disable role column in grid - this.AssignmentsDataGridView.Columns[3].ReadOnly = !canEdit; - } - - private void SaveResource(bool rebind) - { - using (StatusBusy busy = new StatusBusy("Saving...")) - { - // stop the flow of events - this.ResourceBindingSource.RaiseListChangedEvents = false; - this.AssignmentsBindingSource.RaiseListChangedEvents = false; - // do the save - this.ResourceBindingSource.EndEdit(); - this.AssignmentsBindingSource.EndEdit(); - try - { - Resource temp = Resource.Clone(); - _resource = temp.Save(); - if (rebind) - { - // rebind the UI - this.ResourceBindingSource.DataSource = null; - this.AssignmentsBindingSource.DataSource = this.ResourceBindingSource; - this.ResourceBindingSource.DataSource = _resource; - ApplyAuthorizationRules(); - } - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error Saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - finally - { - this.ResourceBindingSource.RaiseListChangedEvents = true; - this.AssignmentsBindingSource.RaiseListChangedEvents = true; - this.ResourceBindingSource.ResetBindings(false); - this.AssignmentsBindingSource.ResetBindings(false); - } - } - } - - private void OKButton_Click(object sender, EventArgs e) - { - SaveResource(false); - this.Close(); - } - - private void ApplyButton_Click(object sender, EventArgs e) - { - SaveResource(true); - } - - private void Cancel_Button_Click(object sender, EventArgs e) - { - this.ResourceBindingSource.CancelEdit(); - this.AssignmentsBindingSource.CancelEdit(); - } - - private void CloseButton_Click(object sender, EventArgs e) - { - this.ResourceBindingSource.CancelEdit(); - this.AssignmentsBindingSource.CancelEdit(); - this.Close(); - } - - private void AssignButton_Click(object sender, EventArgs e) - { - ProjectSelect dlg = new ProjectSelect(); - if (dlg.ShowDialog() == DialogResult.OK) - try - { - _resource.Assignments.AssignTo(dlg.ProjectId); - } - catch (InvalidOperationException ex) - { - MessageBox.Show(ex.ToString(), - "Error Assigning", MessageBoxButtons.OK, - MessageBoxIcon.Information); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Error Assigning", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - } - - private void UnassignButton_Click(object sender, EventArgs e) - { - if (this.AssignmentsDataGridView.SelectedRows.Count > 0) - { - Guid projectId = (Guid)this.AssignmentsDataGridView.SelectedRows[0].Cells[0].Value; - _resource.Assignments.Remove(projectId); - } - } - - private void mResource_PropertyChanged(object sender, PropertyChangedEventArgs e) - { - if (e.PropertyName == "IsDirty") - { - this.ResourceBindingSource.ResetBindings(true); - this.AssignmentsBindingSource.ResetBindings(true); - } - } - - private void AssignmentsDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e) - { - if (e.ColumnIndex == 1 && e.RowIndex > -1) - { - Guid projectId = (Guid)this.AssignmentsDataGridView.Rows[e.RowIndex].Cells[0].Value; - MainForm.Instance.ShowEditProject(projectId); - } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.resx deleted file mode 100644 index a47eb52e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceEdit.resx +++ /dev/null @@ -1,159 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - 21, 38 - - - False - - - False - - - 21, 38 - - - True - - - 15, 9 - - - 652, 9 - - - 344, 9 - - - 176, 9 - - - 176, 9 - - - 529, 9 - - - 652, 9 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.Designer.cs deleted file mode 100644 index 442fede5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.Designer.cs +++ /dev/null @@ -1,121 +0,0 @@ -namespace PTWin -{ - partial class ResourceSelect - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.ResourceListListBox = new System.Windows.Forms.ListBox(); - this.ResourceListBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.TableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel(); - this.OK_Button = new System.Windows.Forms.Button(); - this.Cancel_Button = new System.Windows.Forms.Button(); - ((System.ComponentModel.ISupportInitialize)(this.ResourceListBindingSource)).BeginInit(); - this.TableLayoutPanel1.SuspendLayout(); - this.SuspendLayout(); - // - // ResourceListListBox - // - this.ResourceListListBox.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.ResourceListListBox.DataSource = this.ResourceListBindingSource; - this.ResourceListListBox.Location = new System.Drawing.Point(12, 12); - this.ResourceListListBox.Name = "ResourceListListBox"; - this.ResourceListListBox.Size = new System.Drawing.Size(416, 264); - this.ResourceListListBox.TabIndex = 4; - // - // ResourceListBindingSource - // - this.ResourceListBindingSource.DataSource = typeof(ProjectTracker.Library.ResourceList); - // - // TableLayoutPanel1 - // - this.TableLayoutPanel1.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Right))); - this.TableLayoutPanel1.ColumnCount = 2; - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Controls.Add(this.OK_Button, 0, 0); - this.TableLayoutPanel1.Controls.Add(this.Cancel_Button, 1, 0); - this.TableLayoutPanel1.Location = new System.Drawing.Point(285, 282); - this.TableLayoutPanel1.Name = "TableLayoutPanel1"; - this.TableLayoutPanel1.RowCount = 1; - this.TableLayoutPanel1.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50F)); - this.TableLayoutPanel1.Size = new System.Drawing.Size(146, 29); - this.TableLayoutPanel1.TabIndex = 3; - // - // OK_Button - // - this.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.OK_Button.DialogResult = System.Windows.Forms.DialogResult.OK; - this.OK_Button.Location = new System.Drawing.Point(3, 3); - this.OK_Button.Name = "OK_Button"; - this.OK_Button.Size = new System.Drawing.Size(67, 23); - this.OK_Button.TabIndex = 0; - this.OK_Button.Text = "OK"; - this.OK_Button.Click += new System.EventHandler(this.OK_Button_Click); - // - // Cancel_Button - // - this.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None; - this.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel; - this.Cancel_Button.Location = new System.Drawing.Point(76, 3); - this.Cancel_Button.Name = "Cancel_Button"; - this.Cancel_Button.Size = new System.Drawing.Size(67, 23); - this.Cancel_Button.TabIndex = 1; - this.Cancel_Button.Text = "Cancel"; - this.Cancel_Button.Click += new System.EventHandler(this.Cancel_Button_Click); - // - // ResourceSelect - // - this.ClientSize = new System.Drawing.Size(443, 323); - this.Controls.Add(this.ResourceListListBox); - this.Controls.Add(this.TableLayoutPanel1); - this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog; - this.MaximizeBox = false; - this.MinimizeBox = false; - this.Name = "ResourceSelect"; - this.ShowInTaskbar = false; - this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent; - this.Text = "ResourceSelect"; - this.Load += new System.EventHandler(this.ResourceSelect_Load); - ((System.ComponentModel.ISupportInitialize)(this.ResourceListBindingSource)).EndInit(); - this.TableLayoutPanel1.ResumeLayout(false); - this.ResumeLayout(false); - - } - - #endregion - - internal System.Windows.Forms.ListBox ResourceListListBox; - internal System.Windows.Forms.TableLayoutPanel TableLayoutPanel1; - internal System.Windows.Forms.Button OK_Button; - internal System.Windows.Forms.Button Cancel_Button; - internal System.Windows.Forms.BindingSource ResourceListBindingSource; - - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.cs deleted file mode 100644 index ee236b01..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library; - -namespace PTWin -{ - public partial class ResourceSelect : Form - { - private int _resourceId; - public int ResourceId - { - get { return _resourceId; } - } - - public ResourceSelect() - { - InitializeComponent(); - } - - private void OK_Button_Click(object sender, EventArgs e) - { - _resourceId = - ((ResourceInfo) - this.ResourceListListBox.SelectedValue).Id; - this.Close(); - } - - private void Cancel_Button_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void ResourceSelect_Load(object sender, EventArgs e) - { - this.ResourceListBindingSource.DataSource = - ResourceList.GetResourceList(); - } - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.resx deleted file mode 100644 index 956c5f2b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/ResourceSelect.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.Designer.cs deleted file mode 100644 index acfef455..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.Designer.cs +++ /dev/null @@ -1,122 +0,0 @@ -namespace PTWin -{ - partial class RolesEdit - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - this.CancelButton = new System.Windows.Forms.Button(); - this.SaveButton = new System.Windows.Forms.Button(); - this.rolesBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.RolesDataGridView = new System.Windows.Forms.DataGridView(); - this.DataGridViewTextBoxColumn1 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.DataGridViewTextBoxColumn2 = new System.Windows.Forms.DataGridViewTextBoxColumn(); - ((System.ComponentModel.ISupportInitialize)(this.rolesBindingSource)).BeginInit(); - ((System.ComponentModel.ISupportInitialize)(this.RolesDataGridView)).BeginInit(); - this.SuspendLayout(); - // - // CancelButton - // - this.CancelButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.CancelButton.Location = new System.Drawing.Point(453, 42); - this.CancelButton.Name = "CancelButton"; - this.CancelButton.Size = new System.Drawing.Size(75, 23); - this.CancelButton.TabIndex = 6; - this.CancelButton.Text = "Cancel"; - this.CancelButton.UseVisualStyleBackColor = true; - this.CancelButton.Click += new System.EventHandler(this.CancelButton_Click); - // - // SaveButton - // - this.SaveButton.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.SaveButton.Location = new System.Drawing.Point(453, 13); - this.SaveButton.Name = "SaveButton"; - this.SaveButton.Size = new System.Drawing.Size(75, 23); - this.SaveButton.TabIndex = 5; - this.SaveButton.Text = "Save"; - this.SaveButton.UseVisualStyleBackColor = true; - this.SaveButton.Click += new System.EventHandler(this.SaveButton_Click); - // - // rolesBindingSource - // - this.rolesBindingSource.DataSource = typeof(ProjectTracker.Library.Admin.Roles); - // - // RolesDataGridView - // - this.RolesDataGridView.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.RolesDataGridView.AutoGenerateColumns = false; - this.RolesDataGridView.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.DataGridViewTextBoxColumn1, - this.DataGridViewTextBoxColumn2}); - this.RolesDataGridView.DataSource = this.rolesBindingSource; - this.RolesDataGridView.Location = new System.Drawing.Point(12, 13); - this.RolesDataGridView.MultiSelect = false; - this.RolesDataGridView.Name = "RolesDataGridView"; - this.RolesDataGridView.Size = new System.Drawing.Size(435, 323); - this.RolesDataGridView.TabIndex = 7; - // - // DataGridViewTextBoxColumn1 - // - this.DataGridViewTextBoxColumn1.DataPropertyName = "Id"; - this.DataGridViewTextBoxColumn1.HeaderText = "Id"; - this.DataGridViewTextBoxColumn1.Name = "DataGridViewTextBoxColumn1"; - // - // DataGridViewTextBoxColumn2 - // - this.DataGridViewTextBoxColumn2.DataPropertyName = "Name"; - this.DataGridViewTextBoxColumn2.HeaderText = "Name"; - this.DataGridViewTextBoxColumn2.Name = "DataGridViewTextBoxColumn2"; - // - // RolesEdit - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.Controls.Add(this.RolesDataGridView); - this.Controls.Add(this.CancelButton); - this.Controls.Add(this.SaveButton); - this.Name = "RolesEdit"; - this.Size = new System.Drawing.Size(541, 348); - this.Load += new System.EventHandler(this.RolesEdit_Load); - this.CurrentPrincipalChanged += new System.EventHandler(this.RolesEdit_CurrentPrincipalChanged); - ((System.ComponentModel.ISupportInitialize)(this.rolesBindingSource)).EndInit(); - ((System.ComponentModel.ISupportInitialize)(this.RolesDataGridView)).EndInit(); - this.ResumeLayout(false); - - } - - #endregion - - internal System.Windows.Forms.Button CancelButton; - internal System.Windows.Forms.Button SaveButton; - internal System.Windows.Forms.BindingSource rolesBindingSource; - internal System.Windows.Forms.DataGridView RolesDataGridView; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn1; - internal System.Windows.Forms.DataGridViewTextBoxColumn DataGridViewTextBoxColumn2; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.cs deleted file mode 100644 index 08aa0426..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.cs +++ /dev/null @@ -1,89 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; -using ProjectTracker.Library.Admin; - -namespace PTWin -{ - public partial class RolesEdit : WinPart - { - - private Roles _roles; - - public RolesEdit() - { - InitializeComponent(); - } - - private void RolesEdit_Load(object sender, EventArgs e) - { - try - { - _roles = Roles.GetRoles(); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Data load error", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), - "Data load error", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - if (_roles != null) - this.rolesBindingSource.DataSource = _roles; - } - - protected internal override object GetIdValue() - { - return "Edit Roles"; - } - - private void SaveButton_Click(object sender, EventArgs e) - { - this.rolesBindingSource.RaiseListChangedEvents = false; - this.rolesBindingSource.EndEdit(); - try - { - Roles temp = _roles.Clone(); - _roles = temp.Save(); - this.Close(); - } - catch (Csla.DataPortalException ex) - { - MessageBox.Show(ex.BusinessException.ToString(), - "Error saving", MessageBoxButtons.OK, - MessageBoxIcon.Exclamation); - } - catch (Exception ex) - { - MessageBox.Show(ex.ToString(), "Error saving", - MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - } - finally - { - this.rolesBindingSource.RaiseListChangedEvents = true; - this.rolesBindingSource.ResetBindings(false); - } - } - - private void CancelButton_Click(object sender, EventArgs e) - { - this.Close(); - } - - private void RolesEdit_CurrentPrincipalChanged( - object sender, EventArgs e) - { - if (!Roles.CanEditObject()) - this.Close(); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.resx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.resx deleted file mode 100644 index ddc5798f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/RolesEdit.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/StatusBusy.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/StatusBusy.cs deleted file mode 100644 index e3d99e52..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/StatusBusy.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Windows.Forms; - -namespace PTWin -{ - public class StatusBusy : IDisposable - { - private string _oldStatus; - private Cursor _oldCursor; - - public StatusBusy(string statusText) - { - _oldStatus = MainForm.Instance.StatusLabel.Text; - MainForm.Instance.StatusLabel.Text = statusText; - _oldCursor = MainForm.Instance.Cursor; - MainForm.Instance.Cursor = Cursors.WaitCursor; - } - - // IDisposable - private bool _disposedValue = false; // To detect redundant calls - - protected void Dispose(bool disposing) - { - if (!_disposedValue) - if (disposing) - { - MainForm.Instance.StatusLabel.Text = _oldStatus; - MainForm.Instance.Cursor = _oldCursor; - } - _disposedValue = true; - } - - public void Dispose() - { - // Do not change this code. Put cleanup code in Dispose(bool disposing) above - Dispose(true); - GC.SuppressFinalize(this); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.Designer.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.Designer.cs deleted file mode 100644 index e90b3af1..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.Designer.cs +++ /dev/null @@ -1,37 +0,0 @@ -namespace PTWin -{ - partial class WinPart - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Component Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - components = new System.ComponentModel.Container(); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.cs deleted file mode 100644 index 90b027f6..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/PTWin/WinPart.cs +++ /dev/null @@ -1,81 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Drawing; -using System.Data; -using System.Text; -using System.Windows.Forms; - -namespace PTWin -{ - public partial class WinPart : UserControl - { - public WinPart() - { - InitializeComponent(); - } - - protected internal virtual object GetIdValue() - { - return null; - } - - public override bool Equals(object obj) - { - if (this.DesignMode) - return base.Equals(obj); - else - { - object id = GetIdValue(); - if (this.GetType().Equals(obj.GetType()) && id != null) - return ((WinPart)obj).GetIdValue().Equals(id); - else - return false; - } - } - - public override int GetHashCode() - { - object id = GetIdValue(); - if (id != null) - return GetIdValue().GetHashCode(); - else - return base.GetHashCode(); - } - - public override string ToString() - { - object id = GetIdValue(); - if (id != null) - return id.ToString(); - else - return base.ToString(); - } - - #region CloseWinPart - - public event EventHandler CloseWinPart; - - protected void Close() - { - if (CloseWinPart != null) - CloseWinPart(this, EventArgs.Empty); - } - - #endregion - - #region CurrentPrincipalChanged - - public event EventHandler CurrentPrincipalChanged; - - protected internal virtual void OnCurrentPrincipalChanged( - object sender, EventArgs e) - { - if (CurrentPrincipalChanged != null) - CurrentPrincipalChanged(sender, e); - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Role.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Role.cs deleted file mode 100644 index 9ff4f3f6..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Role.cs +++ /dev/null @@ -1,220 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; - -namespace ProjectTracker.Library.Admin -{ - [Serializable()] - public class Role : BusinessBase - { - #region Business Methods - - private int _id; - private bool _idSet; - private string _name = String.Empty; - private byte[] _timestamp = new byte[8]; - - [System.ComponentModel.DataObjectField(true, true)] - public int Id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - if (!_idSet) - { - // generate a default id value - _idSet = true; - Roles parent = (Roles)this.Parent; - int max = 0; - foreach (Role item in parent) - { - if (item.Id > max) - max = item.Id; - } - _id = max + 1; - } - return _id; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (!_id.Equals(value)) - { - _idSet = true; - _id = value; - PropertyHasChanged(); - } - } - } - - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (!_name.Equals(value)) - { - _name = value; - PropertyHasChanged(); - } - } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - } - - protected override void AddInstanceBusinessRules() - { - ValidationRules.AddInstanceRule(NoDuplicates, "Id"); - } - - private bool NoDuplicates(object target, Csla.Validation.RuleArgs e) - { - Roles parent = (Roles)this.Parent; - foreach (Role item in parent) - if (item.Id == _id && !ReferenceEquals(item, this)) - { - e.Description = "Role Id must be unique"; - return false; - } - return true; - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - AuthorizationRules.AllowWrite( - "Id", "Administrator"); - AuthorizationRules.AllowWrite( - "Name", "Administrator"); - } - - #endregion - - #region Factory Methods - - internal static Role NewRole() - { - return new Role(); - } - - internal static Role - GetRole(Csla.Data.SafeDataReader dr) - { - return new Role(dr); - } - - private Role() - { - MarkAsChild(); - } - - #endregion - - #region Data Access - - private Role(Csla.Data.SafeDataReader dr) - { - MarkAsChild(); - _id = dr.GetInt32("id"); - _idSet = true; - _name = dr.GetString("name"); - dr.GetBytes("lastChanged", 0, _timestamp, 0, 8); - MarkOld(); - } - - internal void Insert(SqlConnection cn) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "addRole"; - DoInsertUpdate(cm); - } - } - - internal void Update(SqlConnection cn) - { - // if we're not dirty then don't update the database. - if (!this.IsDirty) return; - - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "updateRole"; - cm.Parameters.AddWithValue("@lastChanged", _timestamp); - DoInsertUpdate(cm); - } - } - - void DoInsertUpdate(SqlCommand cm) - { - cm.CommandType = CommandType.StoredProcedure; - cm.Parameters.AddWithValue("@id", _id); - cm.Parameters.AddWithValue("@name", _name); - SqlParameter param = - new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - - cm.ExecuteNonQuery(); - - _timestamp = (byte[])cm.Parameters["@newLastChanged"].Value; - - MarkOld(); - } - - internal void DeleteSelf(SqlConnection cn) - { - // 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; - - DeleteRole(cn, _id); - MarkNew(); - } - - internal static void DeleteRole(SqlConnection cn, int id) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteRole"; - cm.Parameters.AddWithValue("@id", id); - cm.ExecuteNonQuery(); - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Roles.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Roles.cs deleted file mode 100644 index 4d8f8684..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Admin/Roles.cs +++ /dev/null @@ -1,175 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library.Admin -{ - /// - /// Used to maintain the list of roles - /// in the system. - /// - [Serializable()] - public class Roles : - BusinessListBase - { - #region Business Methods - - /// - /// Remove a role based on the role's - /// id value. - /// - /// Id value of the role to remove. - public void Remove(int id) - { - foreach (Role item in this) - { - if (item.Id == id) - { - Remove(item); - break; - } - } - } - - /// - /// Get a role based on its id value. - /// - /// Id valud of the role to return - public Role GetRoleById(int id) - { - foreach (Role item in this) - if (item.Id == id) - return item; - return null; - } - - protected override object AddNewCore() - { - Role item = Role.NewRole(); - Add(item); - return item; - } - - #endregion - - #region Authorization Rules - - public static bool CanAddObject() - { - return Csla.ApplicationContext.User.IsInRole("Administrator"); - } - - public static bool CanGetObject() - { - return true; - } - - public static bool CanDeleteObject() - { - return Csla.ApplicationContext.User.IsInRole("Administrator"); - } - - public static bool CanEditObject() - { - return Csla.ApplicationContext.User.IsInRole("Administrator"); - } - - #endregion - - #region Factory Methods - - public static Roles GetRoles() - { - return DataPortal.Fetch(new Criteria()); - } - - private Roles() - { - this.AllowNew = true; - } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { /* no criteria */ } - - public override Roles Save() - { - // see if save is allowed - if (!CanEditObject()) - throw new System.Security.SecurityException( - "User not authorized to save roles"); - - // do the save - Roles result; - result = base.Save(); - // this runs on the client and invalidates - // the RoleList cache - RoleList.InvalidateCache(); - return result; - } - - protected override void DataPortal_OnDataPortalInvokeComplete( - DataPortalEventArgs e) - { - if (ApplicationContext.ExecutionLocation == - ApplicationContext.ExecutionLocations.Server) - { - // this runs on the server and invalidates - // the RoleList cache - RoleList.InvalidateCache(); - } - } - - private void DataPortal_Fetch(Criteria criteria) - { - RaiseListChangedEvents = false; - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRoles"; - - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - while (dr.Read()) - this.Add(Role.GetRole(dr)); - } - } - RaiseListChangedEvents = true; - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - this.RaiseListChangedEvents = false; - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - foreach (Role item in DeletedList) - { - item.DeleteSelf(cn); - } - DeletedList.Clear(); - - foreach (Role item in this) - { - if (item.IsNew) - item.Insert(cn); - else - item.Update(cn); - } - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Assignment.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Assignment.cs deleted file mode 100644 index bf970ebc..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Assignment.cs +++ /dev/null @@ -1,114 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Validation; -using Csla.Data; -using System.Reflection; - -namespace ProjectTracker.Library -{ - internal interface IHoldRoles - { - int Role { get; set;} - } - - internal static class Assignment - { - - #region Business Methods - - public static DateTime GetDefaultAssignedDate() - { - return DateTime.Today; - } - - #endregion - - #region Validation Rules - - /// - /// Ensure the Role property value exists - /// in RoleList - /// - public static bool ValidRole(object target, RuleArgs e) - { - int role = ((IHoldRoles)target).Role; - - if (RoleList.GetList().ContainsKey(role)) - return true; - else - { - e.Description = "Role must be in RoleList"; - return false; - } - } - - #endregion - - #region Data Access - - public static byte[] AddAssignment( - SqlConnection cn, Guid projectId, int resourceId, - SmartDate assigned, int role) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "addAssignment"; - return DoAddUpdate( - cm, projectId, resourceId, assigned, role); - } - } - - public static byte[] UpdateAssignment(SqlConnection cn, - Guid projectId, int resourceId, SmartDate assigned, - int newRole, byte[] timestamp) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "updateAssignment"; - cm.Parameters.AddWithValue("@lastChanged", timestamp); - return DoAddUpdate( - cm, projectId, resourceId, assigned, newRole); - } - } - - private static byte[] DoAddUpdate(SqlCommand cm, - Guid projectId, int resourceId, SmartDate assigned, - int newRole) - { - cm.CommandType = CommandType.StoredProcedure; - cm.Parameters.AddWithValue("@projectId", projectId); - cm.Parameters.AddWithValue("@resourceId", resourceId); - cm.Parameters.AddWithValue("@assigned", assigned.DBValue); - cm.Parameters.AddWithValue("@role", newRole); - SqlParameter param = - new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - - cm.ExecuteNonQuery(); - - return (byte[])cm.Parameters["@newLastChanged"].Value; - } - - public static void RemoveAssignment( - SqlConnection cn, Guid projectId, int resourceId) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteAssignment"; - cm.Parameters.AddWithValue("@projectId", projectId); - cm.Parameters.AddWithValue("@resourceId", resourceId); - - cm.ExecuteNonQuery(); - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Database.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Database.cs deleted file mode 100644 index 097986ec..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Database.cs +++ /dev/null @@ -1,24 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Configuration; - -namespace ProjectTracker.Library -{ - public static class Database - { - public static string PTrackerConnection - { - get - { - return ConfigurationManager.ConnectionStrings - ["PTracker"].ConnectionString; - } - } - - public static string SecurityConnection - { - get { return System.Configuration.ConfigurationManager.ConnectionStrings["Security"].ConnectionString; } - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/BaseClasses.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/BaseClasses.cd deleted file mode 100644 index 5c4aa758..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/BaseClasses.cd +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - - Project.cs - EAACIIwBIgAgRAEEAAjIAgQAAAJAgAECAhgBAAEAmAA= - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/EditableObjects.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/EditableObjects.cd deleted file mode 100644 index bfcec955..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/EditableObjects.cd +++ /dev/null @@ -1,69 +0,0 @@ - - - - - - - Project.cs - EAACIIwBIgAgRAEEAAjIAgQAAAJAgAECAhgBAAEAmAA= - - - - - - Resource.cs - FAMCgMgAAAAARIAAAAlIAAAAAABAgAECABgJCAEAiAg= - - - - - - - - - - ProjectResource.cs - EAUAAEAAAgAAgIAAEAEAAAAAAAAAAAoAAAABCEAAigg= - - - - - - ResourceAssignment.cs - EAQAAEAAAAAAAABAGAAAAAAABAAAAAIAAgABAEAIigA= - - - - - - ProjectResources.cs - AAQAAAQAAAAAAGAAAAAABAAAAAAAAAAAAAAAQBAQCAA= - - - - - - ResourceAssignments.cs - AAQAAAAAAAAAAAAACAAABAAAIAAAgAAAEAAAAAAACAA= - - - - - - - - - - - Admin\Roles.cs - AAAAAIAAAAAARAAAEAAAhAACACAAgAECAAgAAAAAAAA= - - - - - - Admin\Role.cs - UAQCIEEAAAAAAAAAgARAAAQAAAAAAAAAAAAAAEAAgAA= - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/ReadOnlyObjects.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/ReadOnlyObjects.cd deleted file mode 100644 index d5563141..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/ReadOnlyObjects.cd +++ /dev/null @@ -1,35 +0,0 @@ - - - - - - - ResourceList.cs - AAAAAAAAAAAABAAAgAAAAAAAAAAAIAAAAAAAAAAAAAA= - - - - - - ProjectList.cs - AAAAAAAAAAAABEAAAAEAAAAAAAAAAAAAAAAAAAAAAAA= - - - - - - - - - - - RoleList.cs - AAABAAAAAAAABAAAAAAAAAAAAAAAAABAQAAAAAAAAAI= - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/Security.cd b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/Security.cd deleted file mode 100644 index f9cc8cfe..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Diagrams/Security.cd +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - Security\PTPrincipal.cs - AAAAAAAACAAAAAAAAAAAAAIAAAAAAAAAAAAQAAAAAAA= - - - - - - Security\PTIdentity.cs - AAAAIAAACAAABAAACAAAAAQgAAAEAAAAAAABAIAAABA= - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Project.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Project.cs deleted file mode 100644 index 40d8e3f8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Project.cs +++ /dev/null @@ -1,440 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class Project : BusinessBase - { - #region Business Methods - - private Guid _id; - private string _name = string.Empty; - private SmartDate _started; - private SmartDate _ended = new SmartDate(false); - private string _description = string.Empty; - private byte[] _timestamp = new byte[8]; - - private ProjectResources _resources = - ProjectResources.NewProjectResources(); - - [System.ComponentModel.DataObjectField(true, true)] - public Guid Id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - } - - public string Name - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _name; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (_name != value) - { - _name = value; - PropertyHasChanged(); - } - } - } - - public string Started - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _started.Text; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (_started != value) - { - _started.Text = value; - PropertyHasChanged(); - } - } - } - - public string Ended - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _ended.Text; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (_ended != value) - { - _ended.Text = value; - PropertyHasChanged(); - } - } - } - - public string Description - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _description; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (_description != value) - { - _description = value; - PropertyHasChanged(); - } - } - } - - public ProjectResources Resources - { - get { return _resources; } - } - - public override bool IsValid - { - get { return base.IsValid && _resources.IsValid; } - } - - public override bool IsDirty - { - get { return base.IsDirty || _resources.IsDirty; } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringRequired, "Name"); - ValidationRules.AddRule( - Csla.Validation.CommonRules.StringMaxLength, - new Csla.Validation.CommonRules.MaxLengthRuleArgs("Name", 50)); - - ValidationRules.AddRule( - StartDateGTEndDate, "Started"); - ValidationRules.AddRule( - StartDateGTEndDate, "Ended"); - - ValidationRules.AddDependantProperty("Started", "Ended", true); - } - - private static bool StartDateGTEndDate( - T target, Csla.Validation.RuleArgs e) where T : Project - { - if (target._started > target._ended) - { - e.Description = - "Start date can't be after end date"; - return false; - } - else - return true; - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - AuthorizationRules.AllowWrite( - "Name", "ProjectManager"); - AuthorizationRules.AllowWrite( - "Started", "ProjectManager"); - AuthorizationRules.AllowWrite( - "Ended", "ProjectManager"); - AuthorizationRules.AllowWrite( - "Description", "ProjectManager"); - } - - public static bool CanAddObject() - { - return Csla.ApplicationContext.User.IsInRole( - "ProjectManager"); - } - - public static bool CanGetObject() - { - return true; - } - - public static bool CanDeleteObject() - { - bool result = false; - if (Csla.ApplicationContext.User.IsInRole( - "ProjectManager")) - result = true; - if (Csla.ApplicationContext.User.IsInRole( - "Administrator")) - result = true; - return result; - } - - public static bool CanEditObject() - { - return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - } - - #endregion - - #region Factory Methods - - public static Project NewProject() - { - if (!CanAddObject()) - throw new System.Security.SecurityException( - "User not authorized to add a project"); - return DataPortal.Create(); - } - - public static Project GetProject(Guid id) - { - if (!CanGetObject()) - throw new System.Security.SecurityException( - "User not authorized to view a project"); - return DataPortal.Fetch(new Criteria(id)); - } - - public static void DeleteProject(Guid id) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException( - "User not authorized to remove a project"); - DataPortal.Delete(new Criteria(id)); - } - - private Project() - { /* require use of factory methods */ } - - public override Project Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException( - "User not authorized to remove a project"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException( - "User not authorized to add a project"); - else if (!CanEditObject()) - throw new System.Security.SecurityException( - "User not authorized to update a project"); - - return base.Save(); - } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private Guid _id; - public Guid Id - { - get { return _id; } - } - - public Criteria(Guid id) - { _id = id; } - } - - [RunLocal()] - protected override void DataPortal_Create() - { - _id = Guid.NewGuid(); - _started.Date = DateTime.Today; - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(Criteria criteria) - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getProject"; - cm.Parameters.AddWithValue("@id", criteria.Id); - - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _id = dr.GetGuid("Id"); - _name = dr.GetString("Name"); - _started = dr.GetSmartDate("Started", _started.EmptyIsMin); - _ended = dr.GetSmartDate("Ended", _ended.EmptyIsMin); - _description = dr.GetString("Description"); - dr.GetBytes("LastChanged", 0, _timestamp, 0, 8); - - // load child objects - dr.NextResult(); - _resources = ProjectResources.GetProjectResources(dr); - } - } - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "addProject"; - DoInsertUpdate(cm); - } - } - // update child objects - _resources.Update(this); - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - if (base.IsDirty) - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "updateProject"; - cm.Parameters.AddWithValue("@lastChanged", _timestamp); - DoInsertUpdate(cm); - } - } - } - // update child objects - _resources.Update(this); - } - - private void DoInsertUpdate(SqlCommand cm) - { - cm.CommandType = CommandType.StoredProcedure; - cm.Parameters.AddWithValue("@id", _id); - cm.Parameters.AddWithValue("@name", _name); - cm.Parameters.AddWithValue("@started", _started.DBValue); - cm.Parameters.AddWithValue("@ended", _ended.DBValue); - cm.Parameters.AddWithValue("@description", _description); - SqlParameter param = - new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - - cm.ExecuteNonQuery(); - - _timestamp = (byte[])cm.Parameters["@newLastChanged"].Value; - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new Criteria(_id)); - } - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(Criteria criteria) - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteProject"; - cm.Parameters.AddWithValue("@id", criteria.Id); - cm.ExecuteNonQuery(); - } - } - } - - #endregion - - #region Exists - - public static bool Exists(Guid id) - { - ExistsCommand result; - result = DataPortal.Execute - (new ExistsCommand(id)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - private Guid _id; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(Guid id) - { - _id = id; - } - - protected override void DataPortal_Execute() - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsProject"; - cm.Parameters.AddWithValue("@id", _id); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectInfo.cs deleted file mode 100644 index a759825c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectInfo.cs +++ /dev/null @@ -1,53 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ProjectInfo : - ReadOnlyBase - { - #region Business Methods - - private Guid _id; - private string _name; - - public Guid Id - { - get { return _id; } - } - - public string Name - { - get { return _name; } - } - - protected override object GetIdValue() - { - return _id; - } - - public override string ToString() - { - return _name; - } - - #endregion - - #region Constructors - - private ProjectInfo() - { /* require use of factory methods */ } - - internal ProjectInfo(Guid id, string name) - { - _id = id; - _name = name; - } - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectList.cs deleted file mode 100644 index 48f12e7c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectList.cs +++ /dev/null @@ -1,103 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ProjectList : - ReadOnlyListBase - { - #region Factory Methods - - /// - /// Return a list of all projects. - /// - public static ProjectList GetProjectList() - { - return DataPortal.Fetch(new Criteria()); - } - - /// - /// Return a list of projects filtered - /// by project name. - /// - public static ProjectList GetProjectList(string name) - { - return DataPortal.Fetch - (new FilteredCriteria(name)); - } - - private ProjectList() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { /* no criteria - retrieve all projects */ } - - [Serializable()] - private class FilteredCriteria - { - private string _name; - public string Name - { - get { return _name; } - } - - public FilteredCriteria(string name) - { - _name = name; - } - } - - private void DataPortal_Fetch(Criteria criteria) - { - // fetch with no filter - Fetch(""); - } - - private void DataPortal_Fetch(FilteredCriteria criteria) - { - Fetch(criteria.Name); - } - - private void Fetch(string nameFilter) - { - this.RaiseListChangedEvents = false; - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getProjects"; - using (SafeDataReader dr = new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ProjectInfo info = new ProjectInfo( - dr.GetGuid(0), - dr.GetString(1)); - // apply filter if necessary - if ((nameFilter.Length == 0) || (info.Name.IndexOf(nameFilter) == 0)) - this.Add(info); - } - IsReadOnly = true; - } - } - } - this.RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResource.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResource.cs deleted file mode 100644 index 71e9e782..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResource.cs +++ /dev/null @@ -1,228 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; -using Csla.Validation; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ProjectResource : - BusinessBase, IHoldRoles - { - #region Business Methods - - private int _resourceId; - private string _firstName = string.Empty; - private string _lastName = string.Empty; - private SmartDate _assigned; - private int _role; - private byte[] _timestamp = new byte[8]; - - [System.ComponentModel.DataObjectField(false, true)] - public int ResourceId - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _resourceId; - } - } - - public string FirstName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _firstName; - } - } - - public string LastName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _lastName; - } - } - - public string FullName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (CanReadProperty("FirstName") && - CanReadProperty("LastName")) - return string.Format("{0}, {1}", LastName, FirstName); - else - throw new System.Security.SecurityException( - "Property read not allowed"); - } - } - - public string Assigned - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _assigned.Text; - } - } - - public int Role - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _role; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (!_role.Equals(value)) - { - _role = value; - PropertyHasChanged(); - } - } - } - - public Resource GetResource() - { - return Resource.GetResource(_resourceId); - } - - protected override object GetIdValue() - { - return _resourceId; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - new Csla.Validation.RuleHandler( - Assignment.ValidRole), "Role"); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - AuthorizationRules.AllowWrite( - "Role", "ProjectManager"); - } - - #endregion - - #region Factory Methods - - internal static ProjectResource NewProjectResource(int resourceId) - { - return new ProjectResource( - Resource.GetResource(resourceId), - RoleList.DefaultRole()); - } - - internal static ProjectResource GetResource(SafeDataReader dr) - { - return new ProjectResource(dr); - } - - private ProjectResource() - { - MarkAsChild(); - } - - private ProjectResource(Resource resource, int role) - { - MarkAsChild(); - _resourceId = resource.Id; - _lastName = resource.LastName; - _firstName = resource.FirstName; - _assigned.Date = Assignment.GetDefaultAssignedDate(); - _role = role; - } - - private ProjectResource(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - #endregion - - #region Data Access - - private void Fetch(SafeDataReader dr) - { - _resourceId = dr.GetInt32("ResourceId"); - _lastName = dr.GetString("LastName"); - _firstName = dr.GetString("FirstName"); - _assigned = dr.GetSmartDate("Assigned"); - _role = dr.GetInt32("Role"); - dr.GetBytes("LastChanged", 0, _timestamp, 0, 8); - MarkOld(); - } - - internal void Insert(Project project) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - _timestamp = Assignment.AddAssignment( - cn, project.Id, _resourceId, _assigned, _role); - MarkOld(); - } - } - - internal void Update(Project project) - { - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - _timestamp = Assignment.UpdateAssignment( - cn, project.Id, _resourceId, _assigned, _role, _timestamp); - MarkOld(); - } - } - - internal void DeleteSelf(Project project) - { - // 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; - - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - Assignment.RemoveAssignment(cn, project.Id, _resourceId); - MarkNew(); - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResources.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResources.cs deleted file mode 100644 index fb87d68f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectResources.cs +++ /dev/null @@ -1,125 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ProjectResources : - BusinessListBase - { - #region Business Methods - - public ProjectResource GetItem(int resourceId) - { - foreach (ProjectResource res in this) - if (res.ResourceId == resourceId) - return res; - return null; - } - - public void Assign(int resourceId) - { - if (!Contains(resourceId)) - { - ProjectResource resource = - ProjectResource.NewProjectResource(resourceId); - this.Add(resource); - } - else - throw new InvalidOperationException( - "Resource already assigned to project"); - } - - public void Remove(int resourceId) - { - foreach (ProjectResource res in this) - { - if (res.ResourceId == resourceId) - { - Remove(res); - break; - } - } - } - - public bool Contains(int resourceId) - { - foreach (ProjectResource res in this) - if (res.ResourceId == resourceId) - return true; - return false; - } - - public bool ContainsDeleted(int resourceId) - { - foreach (ProjectResource res in DeletedList) - if (res.ResourceId == resourceId) - return true; - return false; - } - - #endregion - - #region Factory Methods - - internal static ProjectResources NewProjectResources() - { - return new ProjectResources(); - } - - internal static ProjectResources GetProjectResources(SafeDataReader dr) - { - return new ProjectResources(dr); - } - - private ProjectResources() - { - MarkAsChild(); - } - - private ProjectResources(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - #endregion - - #region Data Access - - // called to load data from the database - private void Fetch(SafeDataReader dr) - { - this.RaiseListChangedEvents = false; - while (dr.Read()) - this.Add(ProjectResource.GetResource(dr)); - this.RaiseListChangedEvents = true; - } - - internal void Update(Project project) - { - this.RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (ProjectResource obj in DeletedList) - obj.DeleteSelf(project); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (ProjectResource obj in this) - { - if (obj.IsNew) - obj.Insert(project); - else - obj.Update(project); - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectTracker.Library.csproj b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectTracker.Library.csproj deleted file mode 100644 index 4b9eeee9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ProjectTracker.Library.csproj +++ /dev/null @@ -1,74 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96} - Library - Properties - ProjectTracker.Library - ProjectTracker.Library - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - ..\..\csla20cs\Csla\bin\Debug\Csla.dll - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Properties/AssemblyInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Properties/AssemblyInfo.cs deleted file mode 100644 index 43c00902..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,35 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("ProjectTracker.Library")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Rockford Lhotka")] -[assembly: AssemblyProduct("ProjectTracker")] -[assembly: AssemblyCopyright("Copyright © Rockford Lhotka 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("52a894db-5427-450c-9924-b11ce791853a")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Resource.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Resource.cs deleted file mode 100644 index f02b5896..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Resource.cs +++ /dev/null @@ -1,395 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; -using Csla.Validation; - -namespace ProjectTracker.Library -{ - - [Serializable()] - public class Resource : BusinessBase - { - - #region Business Methods - - private int _id; - private string _lastName = string.Empty; - private string _firstName = string.Empty; - private byte[] _timestamp = new byte[8]; - - private ResourceAssignments _assignments = ResourceAssignments.NewResourceAssignments(); - - [System.ComponentModel.DataObjectField(true, true)] - public int Id - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _id; - } - } - - public string LastName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _lastName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (value == null) value = string.Empty; - if (_lastName != value) - { - _lastName = value; - PropertyHasChanged(); - } - } - } - - public string FirstName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _firstName; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(); - if (value == null) value = string.Empty; - if (_firstName != value) - { - _firstName = value; - PropertyHasChanged(); - } - } - } - public string FullName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - if (CanReadProperty("FirstName") && CanReadProperty("LastName")) - return string.Format("{0}, {1}", _lastName, _firstName); - else - throw new System.Security.SecurityException("Property read not allowed"); - } - } - - public ResourceAssignments Assignments - { - get { return _assignments; } - } - - public override bool IsValid - { - get { return base.IsValid && _assignments.IsValid; } - } - - public override bool IsDirty - { - get { return base.IsDirty || _assignments.IsDirty; } - } - - protected override object GetIdValue() - { - return _id; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule(new RuleHandler(CommonRules.StringRequired), "FirstName"); - ValidationRules.AddRule(new RuleHandler(CommonRules.StringMaxLength), - new CommonRules.MaxLengthRuleArgs("FirstName", 50)); - - ValidationRules.AddRule(new RuleHandler(CommonRules.StringMaxLength), - new CommonRules.MaxLengthRuleArgs("LastName", 50)); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - // add AuthorizationRules here - AuthorizationRules.AllowWrite("LastName", "ProjectManager"); - AuthorizationRules.AllowWrite("FirstName", "ProjectManager"); - } - - public static bool CanAddObject() - { - return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - } - - public static bool CanGetObject() - { - return true; - } - - public static bool CanDeleteObject() - { - bool result = false; - if (Csla.ApplicationContext.User.IsInRole("ProjectManager")) - result = true; - if (Csla.ApplicationContext.User.IsInRole("Administrator")) - result = true; - return result; - } - - public static bool CanEditObject() - { - return Csla.ApplicationContext.User.IsInRole("ProjectManager"); - } - - #endregion - - #region Factory Methods - - public static Resource NewResource() - { - if (!CanAddObject()) - throw new System.Security.SecurityException( - "User not authorized to add a resource"); - return DataPortal.Create(); - } - - public static void DeleteResource(int id) - { - if (!CanDeleteObject()) - throw new System.Security.SecurityException( - "User not authorized to remove a resource"); - DataPortal.Delete(new Criteria(id)); - } - - public static Resource GetResource(int id) - { - if (!CanGetObject()) - throw new System.Security.SecurityException( - "User not authorized to view a resource"); - return DataPortal.Fetch(new Criteria(id)); - } - - public override Resource Save() - { - if (IsDeleted && !CanDeleteObject()) - throw new System.Security.SecurityException( - "User not authorized to remove a resource"); - else if (IsNew && !CanAddObject()) - throw new System.Security.SecurityException( - "User not authorized to add a resource"); - else if (!CanEditObject()) - throw new System.Security.SecurityException( - "User not authorized to update a resource"); - return base.Save(); - } - - private Resource() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private int _id; - public int Id - { - get { return _id; } - } - - public Criteria(int id) - { _id = id; } - } - - [RunLocal()] - protected override void DataPortal_Create() - { - // nothing to initialize - ValidationRules.CheckRules(); - } - - private void DataPortal_Fetch(Criteria criteria) - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getResource"; - cm.Parameters.AddWithValue("@id", criteria.Id); - - using (SafeDataReader dr = - new SafeDataReader(cm.ExecuteReader())) - { - dr.Read(); - _id = dr.GetInt32("Id"); - _lastName = dr.GetString("LastName"); - _firstName = dr.GetString("FirstName"); - dr.GetBytes("LastChanged", 0, _timestamp, 0, 8); - - // load child objects - dr.NextResult(); - _assignments = - ResourceAssignments.GetResourceAssignments(dr); - } - } - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Insert() - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - ApplicationContext.LocalContext["cn"] = cn; - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "addResource"; - cm.Parameters.AddWithValue("@lastName", _lastName); - cm.Parameters.AddWithValue("@firstName", _firstName); - SqlParameter param = - new SqlParameter("@newId",SqlDbType.Int); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - param = new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - - cm.ExecuteNonQuery(); - - _id = (int)cm.Parameters["@newId"].Value; - _timestamp = (byte[])cm.Parameters["@newLastChanged"].Value; - } - // update child objects - _assignments.Update(this); - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation==ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_Update() - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - ApplicationContext.LocalContext["cn"] = cn; - if (base.IsDirty) - { - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "updateResource"; - cm.Parameters.AddWithValue("@id", _id); - cm.Parameters.AddWithValue("@lastName", _lastName); - cm.Parameters.AddWithValue("@firstName", _firstName); - cm.Parameters.AddWithValue("@lastChanged", _timestamp); - SqlParameter param = - new SqlParameter("@newLastChanged", SqlDbType.Timestamp); - param.Direction = ParameterDirection.Output; - cm.Parameters.Add(param); - - cm.ExecuteNonQuery(); - - _timestamp = (byte[])cm.Parameters["@newLastChanged"].Value; - } - } - // update child objects - _assignments.Update(this); - // removing of item only needed for local data portal - if (ApplicationContext.ExecutionLocation == ApplicationContext.ExecutionLocations.Client) - ApplicationContext.LocalContext.Remove("cn"); - } - } - - [Transactional(TransactionalTypes.TransactionScope)] - protected override void DataPortal_DeleteSelf() - { - DataPortal_Delete(new Criteria(_id)); - } - - [Transactional(TransactionalTypes.TransactionScope)] - private void DataPortal_Delete(Criteria criteria) - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "deleteResource"; - cm.Parameters.AddWithValue("@id", criteria.Id); - cm.ExecuteNonQuery(); - } - } - } - - #endregion - - #region Exists - - public static bool Exists(string id) - { - ExistsCommand result; - result = DataPortal.Execute(new ExistsCommand(id)); - return result.Exists; - } - - [Serializable()] - private class ExistsCommand : CommandBase - { - - private string _id; - private bool _exists; - - public bool Exists - { - get { return _exists; } - } - - public ExistsCommand(string id) - { - _id = id; - } - - protected override void DataPortal_Execute() - { - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "existsResource"; - cm.Parameters.AddWithValue("@id", _id); - int count = (int)cm.ExecuteScalar(); - _exists = (count > 0); - } - } - } - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignment.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignment.cs deleted file mode 100644 index e1f21a71..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignment.cs +++ /dev/null @@ -1,192 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ResourceAssignment : BusinessBase, IHoldRoles - { - #region Business Methods - - private Guid _projectId = Guid.Empty; - private string _projectName = string.Empty; - private SmartDate _assigned = new SmartDate(DateTime.Today); - private int _role; - private byte[] _timestamp = new byte[8]; - - public Guid ProjectId - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _projectId; - } - } - - public string ProjectName - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _projectName; - } - } - - public string Assigned - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _assigned.Text; - } - } - - public int Role - { - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - get - { - CanReadProperty(true); - return _role; - } - [System.Runtime.CompilerServices.MethodImpl(System.Runtime.CompilerServices.MethodImplOptions.NoInlining)] - set - { - CanWriteProperty(true); - if (!_role.Equals(value)) - { - _role = value; - PropertyHasChanged(); - } - } - } - - public Project GetProject() - { - return Project.GetProject(_projectId); - } - - protected override object GetIdValue() - { - return _projectId; - } - - #endregion - - #region Validation Rules - - protected override void AddBusinessRules() - { - ValidationRules.AddRule( - new Csla.Validation.RuleHandler( - Assignment.ValidRole), "Role"); - } - - #endregion - - #region Authorization Rules - - protected override void AddAuthorizationRules() - { - AuthorizationRules.AllowWrite( - "Role", "ProjectManager"); - } - - #endregion - - #region Factory Methods - - internal static ResourceAssignment NewResourceAssignment( - Guid projectId) - { - return new ResourceAssignment( - Project.GetProject(projectId), RoleList.DefaultRole()); - } - - internal static ResourceAssignment GetResourceAssignment( - SafeDataReader dr) - { - return new ResourceAssignment(dr); - } - - private ResourceAssignment() - { MarkAsChild(); } - - #endregion - - #region Data Access - - /// - /// Called to when a new object is created. - /// - private ResourceAssignment(Project project, int role) - { - MarkAsChild(); - _projectId = project.Id; - _projectName = project.Name; - _assigned.Date = Assignment.GetDefaultAssignedDate(); - _role = role; - } - - /// - /// Called when loading data from the database. - /// - private ResourceAssignment(SafeDataReader dr) - { - MarkAsChild(); - _projectId = dr.GetGuid("ProjectId"); - _projectName = dr.GetString("Name"); - _assigned = dr.GetSmartDate("Assigned"); - _role = dr.GetInt32("Role"); - dr.GetBytes("LastChanged", 0, _timestamp, 0, 8); - MarkOld(); - } - - internal void Insert(Resource resource) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - _timestamp = Assignment.AddAssignment( - cn, _projectId, resource.Id, _assigned, _role); - MarkOld(); - } - - internal void Update(Resource resource) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - - // if we're not dirty then don't update the database - if (!this.IsDirty) return; - - _timestamp = Assignment.UpdateAssignment( - cn, _projectId, resource.Id, _assigned, _role, _timestamp); - MarkOld(); - } - - internal void DeleteSelf(Resource resource) - { - SqlConnection cn = (SqlConnection)ApplicationContext.LocalContext["cn"]; - - // 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; - - Assignment.RemoveAssignment(cn, _projectId, resource.Id); - MarkNew(); - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignments.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignments.cs deleted file mode 100644 index cb53a5af..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceAssignments.cs +++ /dev/null @@ -1,123 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ResourceAssignments : BusinessListBase - { - #region Business Methods - - public ResourceAssignment this[Guid projectId] - { - get - { - foreach (ResourceAssignment res in this) - if (res.ProjectId.Equals(projectId)) - return res; - return null; - } - } - - public void AssignTo(Guid projectId) - { - if (!Contains(projectId)) - { - ResourceAssignment project = ResourceAssignment.NewResourceAssignment(projectId); - this.Add(project); - } - else - throw new InvalidOperationException("Resource already assigned to project"); - } - - public void Remove(Guid projectId) - { - foreach (ResourceAssignment res in this) - { - if (res.ProjectId.Equals(projectId)) - { - Remove(res); - break; - } - } - } - - public bool Contains(Guid projectId) - { - foreach (ResourceAssignment project in this) - if (project.ProjectId == projectId) - return true; - return false; - } - - public bool ContainsDeleted(Guid projectId) - { - foreach (ResourceAssignment project in DeletedList) - if (project.ProjectId == projectId) - return true; - return false; - } - - #endregion - - #region Factory Methods - - internal static ResourceAssignments NewResourceAssignments() - { - return new ResourceAssignments(); - } - - internal static ResourceAssignments GetResourceAssignments(SafeDataReader dr) - { - return new ResourceAssignments(dr); - } - - private ResourceAssignments() - { - MarkAsChild(); - } - - private ResourceAssignments(SafeDataReader dr) - { - MarkAsChild(); - Fetch(dr); - } - - #endregion - - #region Data Access - - private void Fetch(SafeDataReader dr) - { - RaiseListChangedEvents = false; - while (dr.Read()) - this.Add(ResourceAssignment.GetResourceAssignment(dr)); - RaiseListChangedEvents = true; - } - - internal void Update(Resource resource) - { - RaiseListChangedEvents = false; - // update (thus deleting) any deleted child objects - foreach (ResourceAssignment item in DeletedList) - item.DeleteSelf(resource); - // now that they are deleted, remove them from memory too - DeletedList.Clear(); - - // add/update any current child objects - foreach (ResourceAssignment item in this) - { - if (item.IsNew) - item.Insert(resource); - else - item.Update(resource); - } - RaiseListChangedEvents = true; - } - - #endregion - } -} \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceInfo.cs deleted file mode 100644 index 3df7c6d8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceInfo.cs +++ /dev/null @@ -1,56 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ResourceInfo : - ReadOnlyBase - { - #region Business Methods - - private int _id; - private string _name; - - public int Id - { - get { return _id; } - } - - public string Name - { - get { return _name; } - } - - protected override object GetIdValue() - { - return _id; - } - - public override string ToString() - { - return _name; - } - - #endregion - - #region Constructors - - private ResourceInfo() - { /* require use of factory methods */ } - - internal ResourceInfo(SafeDataReader dr) - { - _id = dr.GetInt32("Id"); - _name = string.Format("{0}, {1}", - dr.GetString("LastName"), - dr.GetString("FirstName")); - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceList.cs deleted file mode 100644 index 1aba1165..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/ResourceList.cs +++ /dev/null @@ -1,61 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class ResourceList : - ReadOnlyListBase - { - #region Factory Methods - - public static ResourceList GetResourceList() - { - return DataPortal.Fetch(new Criteria()); - } - - private ResourceList() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { /* no criteria - retrieve all resources */ } - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getResources"; - - using (SafeDataReader dr = - new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - ResourceInfo info = new ResourceInfo(dr); - this.Add(info); - } - IsReadOnly = true; - } - } - } - this.RaiseListChangedEvents = true; - } - - #endregion - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/RoleList.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/RoleList.cs deleted file mode 100644 index 773e58b8..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/RoleList.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using Csla; -using Csla.Data; - -namespace ProjectTracker.Library -{ - [Serializable()] - public class RoleList : - NameValueListBase - { - #region Business Methods - - public static int DefaultRole() - { - RoleList list = GetList(); - if (list.Count > 0) - return list.Items[0].Key; - else - throw new NullReferenceException( - "No roles available; default role can not be returned"); - } - - #endregion - - #region Factory Methods - - private static RoleList _list; - - /// - /// Returns a list of roles. - /// - public static RoleList GetList() - { - if (_list == null) - _list = DataPortal.Fetch - (new Criteria(typeof(RoleList))); - return _list; - } - - /// - /// Clears the in-memory RoleList cache - /// so the list of roles is reloaded on - /// next request. - /// - public static void InvalidateCache() - { - _list = null; - } - - private RoleList() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - private void DataPortal_Fetch(Criteria criteria) - { - this.RaiseListChangedEvents = false; - using (SqlConnection cn = new SqlConnection(Database.PTrackerConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandType = CommandType.StoredProcedure; - cm.CommandText = "getRoles"; - - using (SafeDataReader dr = - new SafeDataReader(cm.ExecuteReader())) - { - IsReadOnly = false; - while (dr.Read()) - { - this.Add(new NameValuePair( - dr.GetInt32("id"), dr.GetString("name"))); - } - IsReadOnly = true; - } - } - } - this.RaiseListChangedEvents = true; - } - - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTIdentity.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTIdentity.cs deleted file mode 100644 index 4e69a214..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTIdentity.cs +++ /dev/null @@ -1,128 +0,0 @@ -using System; -using System.Data; -using System.Data.SqlClient; -using System.Collections.Generic; -using System.Security.Principal; -using Csla; - -namespace ProjectTracker.Library.Security -{ - [Serializable()] - public class PTIdentity : - ReadOnlyBase, IIdentity - { - #region Business Methods - - private bool _isAuthenticated; - private string _name = string.Empty; - private List _roles = new List(); - - public string AuthenticationType - { - get { return "Csla"; } - } - - public bool IsAuthenticated - { - get { return _isAuthenticated; } - } - - public string Name - { - get { return _name; } - } - - protected override object GetIdValue() - { - return _name; - } - - internal bool IsInRole(string role) - { - return _roles.Contains(role); - } - - #endregion - - #region Factory Methods - - internal static PTIdentity UnauthenticatedIdentity() - { - return new PTIdentity(); - } - - internal static PTIdentity GetIdentity( - string username, string password) - { - return DataPortal.Fetch - (new Criteria(username, password)); - } - - private PTIdentity() - { /* require use of factory methods */ } - - #endregion - - #region Data Access - - [Serializable()] - private class Criteria - { - private string _username; - public string Username - { - get { return _username; } - } - - private string _password; - public string Password - { - get { return _password; } - } - - public Criteria(string username, string password) - { - _username = username; - _password = password; - } - } - - private void DataPortal_Fetch(Criteria criteria) - { - using (SqlConnection cn = - new SqlConnection(Database.SecurityConnection)) - { - cn.Open(); - using (SqlCommand cm = cn.CreateCommand()) - { - cm.CommandText = "Login"; - cm.CommandType = CommandType.StoredProcedure; - cm.Parameters.AddWithValue("@user", criteria.Username); - cm.Parameters.AddWithValue("@pw", criteria.Password); - using (SqlDataReader dr = cm.ExecuteReader()) - { - if (dr.Read()) - { - _name = criteria.Username; - _isAuthenticated = true; - if (dr.NextResult()) - { - while (dr.Read()) - { - _roles.Add(dr.GetString(0)); - } - } - } - else - { - _name = string.Empty; - _isAuthenticated = false; - _roles.Clear(); - } - } - } - } - } - #endregion - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTPrincipal.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTPrincipal.cs deleted file mode 100644 index d21c7b78..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker.Library/Security/PTPrincipal.cs +++ /dev/null @@ -1,39 +0,0 @@ -using System; -using System.Security.Principal; - -namespace ProjectTracker.Library.Security -{ - [Serializable()] - public class PTPrincipal : Csla.Security.BusinessPrincipalBase - { - - private PTPrincipal(IIdentity identity) - : base(identity) { } - - public static bool Login(string username, string password) - { - PTIdentity identity = - PTIdentity.GetIdentity(username, password); - if (identity.IsAuthenticated) - { - PTPrincipal principal = new PTPrincipal(identity); - Csla.ApplicationContext.User = principal; - } - return identity.IsAuthenticated; - } - - public static void Logout() - { - PTIdentity identity = PTIdentity.UnauthenticatedIdentity(); - PTPrincipal principal = new PTPrincipal(identity); - Csla.ApplicationContext.User = principal; - } - - public override bool IsInRole(string role) - { - PTIdentity identity = (PTIdentity)this.Identity; - return identity.IsInRole(role); - } - - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker20cs.sln b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker20cs.sln deleted file mode 100644 index 553d7980..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/ProjectTracker20cs.sln +++ /dev/null @@ -1,198 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PTWin", "PTWin\PTWin.csproj", "{DAB85BA2-86A3-4D3B-8D34-324D939D952C}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ProjectTracker.Library", "ProjectTracker.Library\ProjectTracker.Library.csproj", "{366FD3E8-E0AA-40CF-99ED-BB2966E30C96}" -EndProject -Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "C:\...\PTWeb\", "www\PTWeb\", "{D8F59D26-50C8-4DFD-B8B9-C529530297F1}" - ProjectSection(WebsiteProperties) = preProject - ProjectReferences = "{366FD3E8-E0AA-40CF-99ED-BB2966E30C96}|ProjectTracker.Library.dll;{B390C88E-66FD-4E84-8149-29852AFA8723}|EnterpriseServicesHostcs.dll;" - Debug.AspNetCompiler.VirtualPath = "/PTWeb" - Debug.AspNetCompiler.PhysicalPath = "www\PTWeb\" - Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\PTWeb\" - Debug.AspNetCompiler.Updateable = "true" - Debug.AspNetCompiler.ForceOverwrite = "true" - Debug.AspNetCompiler.FixedNames = "false" - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.VirtualPath = "/PTWeb" - Release.AspNetCompiler.PhysicalPath = "www\PTWeb\" - Release.AspNetCompiler.TargetPath = "PrecompiledWeb\PTWeb\" - Release.AspNetCompiler.Updateable = "true" - Release.AspNetCompiler.ForceOverwrite = "true" - Release.AspNetCompiler.FixedNames = "false" - Release.AspNetCompiler.Debug = "False" - VWDPort = "2161" - DefaultWebSiteLanguage = "Visual C#" - EndProjectSection -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{FAC3F50C-78A8-4F17-A4E3-B6BAE7BB612F}" - ProjectSection(SolutionItems) = preProject - license.txt = license.txt - readme.txt = readme.txt - EndProjectSection -EndProject -Project("{4F174C21-8C12-11D0-8340-0000F80270F8}") = "PTData", "PTData\PTData.dbp", "{09B6FE9B-E21E-4454-8E64-928422F60E08}" -EndProject -Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "C:\...\RemotingHost\", "www\RemotingHost\", "{5A15CF97-BBA1-4C15-990D-AF08907C8A0C}" - ProjectSection(WebsiteProperties) = preProject - ProjectReferences = "{366FD3E8-E0AA-40CF-99ED-BB2966E30C96}|ProjectTracker.Library.dll;" - Debug.AspNetCompiler.VirtualPath = "/RemotingHost" - Debug.AspNetCompiler.PhysicalPath = "www\RemotingHost\" - Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\RemotingHost\" - Debug.AspNetCompiler.Updateable = "true" - Debug.AspNetCompiler.ForceOverwrite = "true" - Debug.AspNetCompiler.FixedNames = "false" - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.VirtualPath = "/RemotingHost" - Release.AspNetCompiler.PhysicalPath = "www\RemotingHost\" - Release.AspNetCompiler.TargetPath = "PrecompiledWeb\RemotingHost\" - Release.AspNetCompiler.Updateable = "true" - Release.AspNetCompiler.ForceOverwrite = "true" - Release.AspNetCompiler.FixedNames = "false" - Release.AspNetCompiler.Debug = "False" - VWDPort = "3187" - DefaultWebSiteLanguage = "Visual C#" - EndProjectSection -EndProject -Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "C:\...\PTWebService\", "www\PTWebService\", "{86BA904A-AC1A-4CC1-AA54-98F3A090AD83}" - ProjectSection(WebsiteProperties) = preProject - ProjectReferences = "{366FD3E8-E0AA-40CF-99ED-BB2966E30C96}|ProjectTracker.Library.dll;{B390C88E-66FD-4E84-8149-29852AFA8723}|EnterpriseServicesHostcs.dll;" - Debug.AspNetCompiler.VirtualPath = "/PTWebService" - Debug.AspNetCompiler.PhysicalPath = "www\PTWebService\" - Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\PTWebService\" - Debug.AspNetCompiler.Updateable = "true" - Debug.AspNetCompiler.ForceOverwrite = "true" - Debug.AspNetCompiler.FixedNames = "false" - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.VirtualPath = "/PTWebService" - Release.AspNetCompiler.PhysicalPath = "www\PTWebService\" - Release.AspNetCompiler.TargetPath = "PrecompiledWeb\PTWebService\" - Release.AspNetCompiler.Updateable = "true" - Release.AspNetCompiler.ForceOverwrite = "true" - Release.AspNetCompiler.FixedNames = "false" - Release.AspNetCompiler.Debug = "False" - VWDPort = "7411" - DefaultWebSiteLanguage = "Visual C#" - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PTServiceClient", "PTServiceClient\PTServiceClient.csproj", "{457C09F3-B15D-474F-A761-DC3419E745EF}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "EnterpriseServicesHostcs", "EnterpriseServicesHostcs\EnterpriseServicesHostcs.csproj", "{B390C88E-66FD-4E84-8149-29852AFA8723}" -EndProject -Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "C:\...\WebServicesHost\", "www\WebServicesHost\", "{68865A7C-0792-4757-89D1-874F5A2FF551}" - ProjectSection(WebsiteProperties) = preProject - ProjectReferences = "{366FD3E8-E0AA-40CF-99ED-BB2966E30C96}|ProjectTracker.Library.dll;" - Debug.AspNetCompiler.VirtualPath = "/WebServicesHost" - Debug.AspNetCompiler.PhysicalPath = "www\WebServicesHost\" - Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\WebServicesHost\" - Debug.AspNetCompiler.Updateable = "true" - Debug.AspNetCompiler.ForceOverwrite = "true" - Debug.AspNetCompiler.FixedNames = "false" - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.VirtualPath = "/WebServicesHost" - Release.AspNetCompiler.PhysicalPath = "www\WebServicesHost\" - Release.AspNetCompiler.TargetPath = "PrecompiledWeb\WebServicesHost\" - Release.AspNetCompiler.Updateable = "true" - Release.AspNetCompiler.ForceOverwrite = "true" - Release.AspNetCompiler.FixedNames = "false" - Release.AspNetCompiler.Debug = "False" - VWDPort = "4334" - DefaultWebSiteLanguage = "Visual C#" - EndProjectSection -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|.NET = Debug|.NET - Debug|Any CPU = Debug|Any CPU - Debug|Mixed Platforms = Debug|Mixed Platforms - Release|.NET = Release|.NET - Release|Any CPU = Release|Any CPU - Release|Mixed Platforms = Release|Mixed Platforms - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Debug|.NET.ActiveCfg = Debug|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Debug|Any CPU.Build.0 = Debug|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Release|.NET.ActiveCfg = Release|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Release|Any CPU.ActiveCfg = Release|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Release|Any CPU.Build.0 = Release|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {DAB85BA2-86A3-4D3B-8D34-324D939D952C}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Debug|.NET.ActiveCfg = Debug|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Debug|Any CPU.Build.0 = Debug|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Release|.NET.ActiveCfg = Release|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Release|Any CPU.ActiveCfg = Release|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Release|Any CPU.Build.0 = Release|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {366FD3E8-E0AA-40CF-99ED-BB2966E30C96}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Debug|.NET.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Debug|.NET.Build.0 = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Debug|Any CPU.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Debug|Mixed Platforms.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Debug|Mixed Platforms.Build.0 = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Release|.NET.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Release|.NET.Build.0 = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Release|Any CPU.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Release|Mixed Platforms.ActiveCfg = Debug|.NET - {D8F59D26-50C8-4DFD-B8B9-C529530297F1}.Release|Mixed Platforms.Build.0 = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Debug|.NET.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Debug|.NET.Build.0 = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Debug|Any CPU.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Debug|Mixed Platforms.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Debug|Mixed Platforms.Build.0 = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Release|.NET.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Release|.NET.Build.0 = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Release|Any CPU.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Release|Mixed Platforms.ActiveCfg = Debug|.NET - {5A15CF97-BBA1-4C15-990D-AF08907C8A0C}.Release|Mixed Platforms.Build.0 = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Debug|.NET.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Debug|.NET.Build.0 = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Debug|Any CPU.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Debug|Mixed Platforms.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Debug|Mixed Platforms.Build.0 = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Release|.NET.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Release|.NET.Build.0 = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Release|Any CPU.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Release|Mixed Platforms.ActiveCfg = Debug|.NET - {86BA904A-AC1A-4CC1-AA54-98F3A090AD83}.Release|Mixed Platforms.Build.0 = Debug|.NET - {457C09F3-B15D-474F-A761-DC3419E745EF}.Debug|.NET.ActiveCfg = Debug|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Debug|Any CPU.Build.0 = Debug|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Release|.NET.ActiveCfg = Release|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Release|Any CPU.ActiveCfg = Release|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Release|Any CPU.Build.0 = Release|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {457C09F3-B15D-474F-A761-DC3419E745EF}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Debug|.NET.ActiveCfg = Debug|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Release|.NET.ActiveCfg = Release|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Release|Any CPU.Build.0 = Release|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU - {B390C88E-66FD-4E84-8149-29852AFA8723}.Release|Mixed Platforms.Build.0 = Release|Any CPU - {68865A7C-0792-4757-89D1-874F5A2FF551}.Debug|.NET.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Debug|.NET.Build.0 = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Debug|Any CPU.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Debug|Mixed Platforms.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Debug|Mixed Platforms.Build.0 = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Release|.NET.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Release|.NET.Build.0 = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Release|Any CPU.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Release|Mixed Platforms.ActiveCfg = Debug|.NET - {68865A7C-0792-4757-89D1-874F5A2FF551}.Release|Mixed Platforms.Build.0 = Debug|.NET - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/license.txt b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/license.txt deleted file mode 100644 index 3e481a86..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/license.txt +++ /dev/null @@ -1,99 +0,0 @@ -LICENSE AND WARRANTY - -The CSLA .NET framework is Copyright 2006 by Rockford Lhotka. - -You can use this Software for any noncommercial purpose, including -distributing derivative works. You can use this Software for any commercial -purpose other than you may not use it, in whole or in part, to create a -commercial framework product. - -In short, you can use CSLA .NET and modify it to create other commercial or -business software, you just can't take the framework itself, modify it and -sell it as a product. - -In return, the owner simply requires that you agree: - -This Software License Agreement ("Agreement") is effective -upon your use of CSLA .NET ("Software"). - -1. Ownership. -The CSLA .NET framework is Copyright 2006 by Rockford Lhotka, -Eden Prairie, MN, USA. - -2. Copyright Notice. -You must not remove any copyright notices from the Software source code. - -3. License. -The owner hereby grants a perpetual, non-exclusive, limited license to use -the Software as set forth in this Agreement. - -4. Source Code Distribution. -If you distribute the Software in source code form you must do so only under -this License (i.e. you must include a complete copy of this License with -your distribution). - -5. Binary or Object Distribution. -You may distribute the Software in binary or object form with no requirement -to display copyright notices to the end user. The binary or object form must -retain the copyright notices included in the Software source code. - -6. Restrictions. -You may not sell the Software. If you create a software development framework -based on the Software as a derivative work, you may not sell that derivative -work. This does not restrict the use of the Software for creation of other -types of non-commercial or commercial applications or derivative works. - -7. Disclaimer of Warranty. -The Software comes "as is", with no warranties. None whatsoever. This means -no express, implied, statutory or other warranty, including without -limitation, warranties of merchantability or fitness for a particular -purpose, noninfringement, or the presence or absence of errors, whether or -not discoverable. Also, you must pass this disclaimer on whenever you -distribute the Software. - -8. Liability. -Neither Rockford Lhotka nor any contributor to the Software will be liable -for any of those types of damages known as indirect, special, consequential, -incidental, punitive or exemplary related to the Software or this License, to -the maximum extent the law permits, no matter what legal theory its based -on. Also, you must pass this limitation of liability on whenever you -distribute the Software. - -9. Patents. -If you sue anyone over patents that you think may apply to the Software -for a person's use of the Software, your license to the Software ends -automatically. - -The patent rights, if any, licensed hereunder only apply to the Software, -not to any derivative works you make. - -10. Termination. -Your rights under this License end automatically if you breach it in any way. - -Rockford Lhotka reserves the right to release the Software under different -license terms or to stop distributing the Software at any time. Such an -election will not serve to withdraw this Agreement, and this Agreement will -continue in full force and effect unless terminated as stated above. - -11. Governing Law. -This Agreement shall be construed and enforced in accordance with the laws -of the state of Minnesota, USA. - -12. No Assignment. -Neither this Agreement nor any interest in this Agreement may be assigned -by Licensee without the prior express written approval of Developer. - -13. Final Agreement. -This Agreement terminates and supersedes all prior understandings or -agreements on the subject matter hereof. This Agreement may be modified -only by a further writing that is duly executed by both parties. - -14. Severability. -If any term of this Agreement is held by a court of competent jurisdiction -to be invalid or unenforceable, then this Agreement, including all of the -remaining terms, will remain in full force and effect as if such invalid -or unenforceable term had never been included. - -15. Headings. -Headings used in this Agreement are provided for convenience only and shall -not be used to construe meaning or intent. diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/readme.txt b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/readme.txt deleted file mode 100644 index 302e8c18..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/readme.txt +++ /dev/null @@ -1,2 +0,0 @@ -For information on installation, book errata, updates to the framework and so forth, -please visit http://www.lhotka.net/cslanet. diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Code/PTMembershipProvider.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Code/PTMembershipProvider.cs deleted file mode 100644 index 1a04e45f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Code/PTMembershipProvider.cs +++ /dev/null @@ -1,161 +0,0 @@ -using System; -using ProjectTracker.Library.Security; -using System.Web; -using System.Web.Security; - -public class PTMembershipProvider : MembershipProvider -{ - public override bool ValidateUser( - string username, string password) - { - bool result = PTPrincipal.Login(username, password); - HttpContext.Current.Session["CslaPrincipal"] = - Csla.ApplicationContext.User; - return result; - } - - #region Non-Implemented Members - - // the following members must be implemented due to the abstract class MembershipProvider, - // but not required to be functional for using the Login control. - public override bool ChangePassword(string username, string oldPassword, string newPassword) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override bool ChangePasswordQuestionAndAnswer(string username, string password, string newPasswordQuestion, string newPasswordAnswer) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override MembershipUser CreateUser(string username, string password, string email, string passwordQuestion, string passwordAnswer, bool isApproved, object providerUserKey, out MembershipCreateStatus status) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override bool DeleteUser(string username, bool deleteAllRelatedData) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override bool EnablePasswordReset - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override bool EnablePasswordRetrieval - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override MembershipUserCollection FindUsersByEmail(string emailToMatch, int pageIndex, int pageSize, out int totalRecords) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override MembershipUserCollection FindUsersByName(string usernameToMatch, int pageIndex, int pageSize, out int totalRecords) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override MembershipUserCollection GetAllUsers(int pageIndex, int pageSize, out int totalRecords) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override int GetNumberOfUsersOnline() - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override string GetPassword(string username, string answer) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override MembershipUser GetUser(string username, bool userIsOnline) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override MembershipUser GetUser(object providerUserKey, bool userIsOnline) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override string GetUserNameByEmail(string email) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override int MaxInvalidPasswordAttempts - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override int MinRequiredNonAlphanumericCharacters - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override int MinRequiredPasswordLength - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override int PasswordAttemptWindow - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override MembershipPasswordFormat PasswordFormat - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override string PasswordStrengthRegularExpression - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override bool RequiresQuestionAndAnswer - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override bool RequiresUniqueEmail - { - get { throw new NotSupportedException("The method or operation is not implemented."); } - } - - public override string ResetPassword(string username, string answer) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override bool UnlockUser(string userName) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override void UpdateUser(MembershipUser user) - { - throw new NotSupportedException("The method or operation is not implemented."); - } - - public override string ApplicationName - { - get - { - throw new NotSupportedException("The method or operation is not implemented."); - } - set - { - throw new NotSupportedException("The method or operation is not implemented."); - } - } - - #endregion - -} - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.css b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.css deleted file mode 100644 index c3f3450e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.css +++ /dev/null @@ -1,106 +0,0 @@ -html,body -{ - background-color: #DEDEDE; - height: 90%; -} - -a -{ - color: #000000; - text-decoration: none; -} - -a:hover -{ - text-decoration: underline; -} - -.nav -{ - color: #FFFFFF; - text-decoration: none; -} - -.nav:hover -{ - text-decoration: underline; -} - -#mainTable -{ - border: solid 1px #000000; - width: 798px; - height: 90%; - min-height: 100%; - padding: 0px; - border-collapse: collapse; - margin-left: auto; - margin-right: auto; - background-color: #FFFFFF; -} - -#header -{ - background-image: url('images/background.jpg'); - background-repeat: no-repeat; - height: 64px; - line-height: 60px; - text-align: left; - color: #FFFFFF; - font-family: - Verdana, Arial, Helvetica, sans-serif; - font-size: 36px; - font-weight: bold; - font-style: italic; - padding-left: 10px -} - -#navigation -{ - float: left; - width: 150px; - background-color: #000000; - height: 100% -} - -#navigationContent -{ - color: #FFFFFF; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 12px; - font-weight: bold; - font-style: italic; - margin-left: 25px; - white-space: nowrap; - margin-top: 30px; -} - -#subnavigation -{ - background-color: #DEDEDE; - height: 19px; - background-image: url('images/corner.png'); - position: relative; - left: -3px; - background-repeat: no-repeat; - background-position: left top; - line-height: 19px -} - -#logout -{ - text-align: right; - padding-right: 10px; - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 11px; -} - -#content -{ - font-family: Verdana, Arial, Helvetica, sans-serif; - font-size: 11px; - float: left; - padding: 10px; - padding-top: 10px; - width: 625px; -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.skin b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.skin deleted file mode 100644 index 955ce708..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Basic.skin +++ /dev/null @@ -1,29 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/background.jpg b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/background.jpg deleted file mode 100644 index a5cf8d82..00000000 Binary files a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/background.jpg and /dev/null differ diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/corner.png b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/corner.png deleted file mode 100644 index b14943dc..00000000 Binary files a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/App_Themes/Basic/Images/corner.png and /dev/null differ diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx deleted file mode 100644 index 7ed6a6a0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx +++ /dev/null @@ -1,5 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Default.aspx.cs" Inherits="_Default" title="Project Tracker" %> - - Welcome to the Project Tracker system. - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx.cs deleted file mode 100644 index 3754b167..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Default.aspx.cs +++ /dev/null @@ -1,14 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public partial class _Default : System.Web.UI.Page -{ - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Global.asax b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Global.asax deleted file mode 100644 index ba5c2c75..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Global.asax +++ /dev/null @@ -1,74 +0,0 @@ -<%@ Application Language="C#" %> - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx deleted file mode 100644 index 66847230..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx +++ /dev/null @@ -1,8 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="false" CodeFile="Login.aspx.cs" Inherits="Login" title="Login" %> - -
    -
    - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx.cs deleted file mode 100644 index fbe33966..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Login.aspx.cs +++ /dev/null @@ -1,15 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public partial class Login : System.Web.UI.Page -{ - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master deleted file mode 100644 index 79b1148a..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master +++ /dev/null @@ -1,43 +0,0 @@ -<%@ Master Language="C#" CodeFile="MasterPage.master.cs" - Inherits="MasterPage" %> - - - - Untitled Page - - - -
    -
    - - - -
    - - -
    -
    - - - - \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master.cs deleted file mode 100644 index 725f76ab..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/MasterPage.master.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public partial class MasterPage : System.Web.UI.MasterPage -{ - //protected void Page_Init(object sender, EventArgs e) - //{ - // if (Csla.ApplicationContext.AuthenticationType != "Windows") - // PTSecurity.ReloadPrincipal(); - //} - - protected void Page_Load(object sender, EventArgs e) - { - PageTitle.Text = Page.Title; - } - - protected void LoginStatus1_LoggingOut( - object sender, LoginCancelEventArgs e) - { - ProjectTracker.Library.Security.PTPrincipal.Logout(); - Session["CslaPrincipal"] = - Csla.ApplicationContext.User; - System.Web.Security.FormsAuthentication.SignOut(); - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx deleted file mode 100644 index 93562fd3..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx +++ /dev/null @@ -1,101 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" - CodeFile="ProjectEdit.aspx.cs" Inherits="ProjectEdit" Title="Project Information" %> - - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -    
    - - - - - - - - - - - - - - - - - - - Add resource
    -
    -   -
    - - Pick resource:
    - - - - - - - Cancel
    - - -
    -
    -
    -   - - - - - -
    -
    -
    -   -
    diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx.cs deleted file mode 100644 index dda43b8c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectEdit.aspx.cs +++ /dev/null @@ -1,293 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; -using ProjectTracker.Library; - -public partial class ProjectEdit : System.Web.UI.Page -{ - - private enum Views - { - MainView = 0, - AssignView = 1 - } - - protected void Page_Load(object sender, EventArgs e) - { - if (!Page.IsPostBack) - { - ApplyAuthorizationRules(); - } - else - this.ErrorLabel.Text = string.Empty; - } - - private void ApplyAuthorizationRules() - { - Project obj = GetProject(); - // project display - if (Project.CanEditObject()) - { - if (obj.IsNew) - this.DetailsView1.DefaultMode = DetailsViewMode.Insert; - else - this.DetailsView1.DefaultMode = DetailsViewMode.Edit; - this.AddResourceButton.Visible = !obj.IsNew; - } - else - { - this.DetailsView1.DefaultMode = DetailsViewMode.ReadOnly; - this.AddResourceButton.Visible = false; - } - this.DetailsView1.Rows[ - this.DetailsView1.Rows.Count - 1].Visible = - Project.CanEditObject(); - - // resource display - this.GridView1.Columns[ - this.GridView1.Columns.Count - 1].Visible = - Project.CanEditObject(); - } - - #region Project DetailsView - - protected void DetailsView1_ItemCreated(object sender, EventArgs e) - { - if (DetailsView1.DefaultMode == DetailsViewMode.Insert) - { - Project obj = GetProject(); - ((TextBox)DetailsView1.Rows[1].Cells[1].Controls[0]).Text = obj.Name; - ((TextBox)DetailsView1.Rows[2].Cells[1].Controls[0]).Text = obj.Started; - ((TextBox)DetailsView1.Rows[3].Cells[1].Controls[0]).Text = obj.Ended; - ((TextBox)DetailsView1.FindControl("TextBox1")).Text = obj.Description; - } - } - - protected void DetailsView1_ItemInserted( - object sender, DetailsViewInsertedEventArgs e) - { - Project project = GetProject(); - if (!project.IsNew) - Response.Redirect("ProjectEdit.aspx?id=" + project.Id.ToString()); - } - - protected void DetailsView1_ItemUpdated( - object sender, DetailsViewUpdatedEventArgs e) - { - ApplyAuthorizationRules(); - } - - protected void DetailsView1_ItemDeleted( - object sender, DetailsViewDeletedEventArgs e) - { - Response.Redirect("ProjectList.aspx"); - } - - #endregion - - #region Resource Grid - - protected void AddResourceButton_Click( - object sender, EventArgs e) - { - this.MultiView1.ActiveViewIndex = - (int)Views.AssignView; - } - - protected void GridView2_SelectedIndexChanged( - object sender, EventArgs e) - { - Project obj = GetProject(); - try - { - obj.Resources.Assign(int.Parse( - this.GridView2.SelectedDataKey.Value.ToString())); - if (SaveProject(obj) > 0) - { - this.GridView1.DataBind(); - this.MultiView1.ActiveViewIndex = (int)Views.MainView; - } - } - catch (InvalidOperationException ex) - { - ErrorLabel.Text = ex.Message; - } - } - - protected void CancelAssignButton_Click( - object sender, EventArgs e) - { - this.MultiView1.ActiveViewIndex = - (int)Views.MainView; - } - - #endregion - - #region ProjectDataSource - - protected void ProjectDataSource_DeleteObject( - object sender, Csla.Web.DeleteObjectArgs e) - { - try - { - Project.DeleteProject(new Guid(e.Keys["Id"].ToString())); - Session["currentObject"] = null; - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - protected void ProjectDataSource_InsertObject( - object sender, Csla.Web.InsertObjectArgs e) - { - Project obj = GetProject(); - Csla.Data.DataMapper.Map(e.Values, obj, "Id"); - e.RowsAffected = SaveProject(obj); - } - - protected void ProjectDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = GetProject(); - } - - protected void ProjectDataSource_UpdateObject(object sender, Csla.Web.UpdateObjectArgs e) - { - Project obj = GetProject(); - Csla.Data.DataMapper.Map(e.Values, obj); - e.RowsAffected = SaveProject(obj); - } - - #endregion - - #region ResourcesDataSource - - protected void ResourcesDataSource_DeleteObject( - object sender, Csla.Web.DeleteObjectArgs e) - { - Project obj = GetProject(); - int rid = int.Parse(e.Keys["ResourceId"].ToString()); - obj.Resources.Remove(rid); - e.RowsAffected = SaveProject(obj); - } - - protected void ResourcesDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - Project obj = GetProject(); - e.BusinessObject = obj.Resources; - } - - protected void ResourcesDataSource_UpdateObject( - object sender, Csla.Web.UpdateObjectArgs e) - { - Project obj = GetProject(); - int rid = int.Parse(e.Keys["ResourceId"].ToString()); - ProjectResource res = - obj.Resources.GetItem(rid); - Csla.Data.DataMapper.Map(e.Values, res); - e.RowsAffected = SaveProject(obj); - } - - #endregion - - #region ResourceListDataSource - - protected void ResourceListDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = - ProjectTracker.Library.ResourceList.GetResourceList(); - } - - #endregion - - #region RoleListDataSource - - protected void RoleListDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = RoleList.GetList(); - } - - #endregion - - private Project GetProject() - { - object businessObject = Session["currentObject"]; - if (businessObject == null || - !(businessObject is Project)) - { - try - { - string idString = Request.QueryString["id"]; - if (!string.IsNullOrEmpty(idString)) - { - Guid id = new Guid(idString); - businessObject = Project.GetProject(id); - } - else - businessObject = Project.NewProject(); - Session["currentObject"] = businessObject; - } - catch (System.Security.SecurityException) - { - Response.Redirect("ProjectList.aspx"); - } - } - return (Project)businessObject; - } - - private int SaveProject(Project project) - { - int rowsAffected; - try - { - Session["currentObject"] = project.Save(); - rowsAffected = 1; - } - catch (Csla.Validation.ValidationException ex) - { - System.Text.StringBuilder message = new System.Text.StringBuilder(); - message.AppendFormat("{0}
    ", ex.Message); - if (project.BrokenRulesCollection.Count == 1) - message.AppendFormat("* {0}: {1}", - project.BrokenRulesCollection[0].Property, - project.BrokenRulesCollection[0].Description); - else - foreach (Csla.Validation.BrokenRule rule in project.BrokenRulesCollection) - message.AppendFormat("* {0}: {1}
    ", rule.Property, rule.Description); - this.ErrorLabel.Text = message.ToString(); - rowsAffected = 0; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - rowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - rowsAffected = 0; - } - return rowsAffected; - } - -} - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx deleted file mode 100644 index 7a8a467b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx +++ /dev/null @@ -1,34 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" - CodeFile="ProjectList.aspx.cs" Inherits="ProjectList" Title="Project List" %> - - -
    - Projects:
    -
    - - - - - - - - New project -
    -
    - - - -
    -
    -
    diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx.cs deleted file mode 100644 index 4d47189e..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ProjectList.aspx.cs +++ /dev/null @@ -1,94 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; -using ProjectTracker.Library; - -public partial class ProjectList : System.Web.UI.Page -{ - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - Session["currentObject"] = null; - ApplyAuthorizationRules(); - } - else - ErrorLabel.Text = string.Empty; - } - - private void ApplyAuthorizationRules() - { - this.GridView1.Columns[ - this.GridView1.Columns.Count - 1].Visible = - Project.CanDeleteObject(); - NewProjectButton.Visible = - ProjectTracker.Library.Project.CanAddObject(); - } - - #region GridView1 - - protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e) - { - Session["currentObject"] = null; - GridView1.DataBind(); - } - - protected void NewProjectButton_Click(object sender, EventArgs e) - { - // allow user to add a new project - Response.Redirect("ProjectEdit.aspx"); - } - - #endregion - - #region ProjectListDataSource - - protected void ProjectListDataSource_DeleteObject( - object sender, Csla.Web.DeleteObjectArgs e) - { - try - { - ProjectTracker.Library.Project.DeleteProject( - new Guid(e.Keys["Id"].ToString())); - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - protected void ProjectListDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = GetProjectList(); - } - - #endregion - - private ProjectTracker.Library.ProjectList GetProjectList() - { - object businessObject = Session["currentObject"]; - if (businessObject == null || - !(businessObject is ProjectTracker.Library.ProjectList)) - { - businessObject = - ProjectTracker.Library.ProjectList.GetProjectList(); - Session["currentObject"] = businessObject; - } - return (ProjectTracker.Library.ProjectList)businessObject; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx deleted file mode 100644 index 8048b28f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx +++ /dev/null @@ -1,66 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ResourceEdit.aspx.cs" Inherits="ResourceEdit" title="Resource Information" %> - -
    - - - - - - - - - - - - - - - - -
    - - - - - - - - - - - - - - - - - - - Assign to project
    - - - - - - - - Cancel -
    -
    - - - - - -
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx.cs deleted file mode 100644 index 5cb8eee5..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceEdit.aspx.cs +++ /dev/null @@ -1,246 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; -using ProjectTracker.Library; - -public partial class ResourceEdit : System.Web.UI.Page -{ - - private enum Views - { - MainView = 0, - AssignView = 1 - } - - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - Session["currentObject"] = null; - ApplyAuthorizationRules(); - } - else - this.ErrorLabel.Text = ""; - } - - private void ApplyAuthorizationRules() - { - Resource obj = GetResource(); - // Resource display - if (Resource.CanEditObject()) - { - if (obj.IsNew) - this.DetailsView1.DefaultMode = DetailsViewMode.Insert; - else - this.DetailsView1.DefaultMode = DetailsViewMode.Edit; - this.AssignProjectButton.Visible = !obj.IsNew; - } - else - { - this.DetailsView1.DefaultMode = DetailsViewMode.ReadOnly; - this.AssignProjectButton.Visible = false; - } - this.DetailsView1.Rows[this.DetailsView1.Rows.Count - 1].Visible = Resource.CanEditObject(); - - // resources display - this.GridView1.Columns[this.GridView1.Columns.Count - 1].Visible = Resource.CanEditObject(); - } - - #region DetailsView - - protected void DetailsView1_ItemInserted(object sender, DetailsViewInsertedEventArgs e) - { - Resource resource = GetResource(); - if (!resource.IsNew) - Response.Redirect("ResourceEdit.aspx?id=" + resource.Id.ToString()); - } - - protected void DetailsView1_ItemUpdated(object sender, DetailsViewUpdatedEventArgs e) - { - ApplyAuthorizationRules(); - } - - protected void DetailsView1_ItemDeleted(object sender, DetailsViewDeletedEventArgs e) - { - Response.Redirect("ResourceList.aspx"); - } - - #endregion - - #region Project Grid - - protected void AssignProjectButton_Click(object sender, EventArgs e) - { - this.MultiView1.ActiveViewIndex = (int)Views.AssignView; - } - - protected void GridView2_SelectedIndexChanged(object sender, EventArgs e) - { - Resource obj = GetResource(); - try - { - obj.Assignments.AssignTo(new Guid(this.GridView2.SelectedDataKey.Value.ToString())); - if (SaveResource(obj) > 0) - { - this.GridView1.DataBind(); - this.MultiView1.ActiveViewIndex = (int)Views.MainView; - } - } - catch (InvalidOperationException ex) - { - ErrorLabel.Text = ex.Message; - } - } - - protected void CancelAssignButton_Click(object sender, EventArgs e) - { - this.MultiView1.ActiveViewIndex = (int)Views.MainView; - } - - #endregion - - #region RoleListDataSource - - protected void RoleListDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = RoleList.GetList(); - } - - #endregion - - #region ResourceDataSource - - protected void ResourceDataSource_DeleteObject(object sender, Csla.Web.DeleteObjectArgs e) - { - Resource.DeleteResource(int.Parse(e.Keys["Id"].ToString())); - Session.Remove("currentObject"); - e.RowsAffected = 1; - } - - protected void ResourceDataSource_InsertObject(object sender, Csla.Web.InsertObjectArgs e) - { - Resource obj = Resource.NewResource(); - Csla.Data.DataMapper.Map(e.Values, obj, "Id"); - e.RowsAffected = SaveResource(obj); - } - - protected void ResourceDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = GetResource(); - } - - protected void ResourceDataSource_UpdateObject(object sender, Csla.Web.UpdateObjectArgs e) - { - Resource obj = GetResource(); - Csla.Data.DataMapper.Map(e.Values, obj); - e.RowsAffected = SaveResource(obj); - } - - #endregion - - #region AssignmentsDataSource - - protected void AssignmentsDataSource_DeleteObject(object sender, Csla.Web.DeleteObjectArgs e) - { - Resource obj = GetResource(); - Guid rid = new Guid(e.Keys["ProjectId"].ToString()); - obj.Assignments.Remove(rid); - e.RowsAffected = SaveResource(obj); - } - - protected void AssignmentsDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e) - { - Resource obj = GetResource(); - e.BusinessObject = obj.Assignments; - } - - protected void AssignmentsDataSource_UpdateObject(object sender, Csla.Web.UpdateObjectArgs e) - { - Resource obj = GetResource(); - ResourceAssignment res; - Guid rid = new Guid(e.Keys["ProjectId"].ToString()); - res = obj.Assignments[rid]; - Csla.Data.DataMapper.Map(e.Values, res); - e.RowsAffected = SaveResource(obj); - } - - #endregion - - #region ProjectListDataSource - - protected void ProjectListDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = ProjectTracker.Library.ProjectList.GetProjectList(); - } - - #endregion - - private Resource GetResource() - { - object businessObject = Session["currentObject"]; - if (businessObject == null || - !(businessObject is Resource)) - { - try - { - string idString = Request.QueryString["id"]; - if (!string.IsNullOrEmpty(idString)) - { - int id = Int32.Parse(idString); - businessObject = Resource.GetResource(id); - } - else - businessObject = Resource.NewResource(); - Session["currentObject"] = businessObject; - } - catch (System.Security.SecurityException) - { - Response.Redirect("ResourceList.aspx"); - } - } - return (Resource)businessObject; - } - - private int SaveResource(Resource resource) - { - int rowsAffected; - try - { - Session["currentObject"] = resource.Save(); - rowsAffected = 1; - } - catch (Csla.Validation.ValidationException ex) - { - System.Text.StringBuilder message = new System.Text.StringBuilder(); - message.AppendFormat("{0}
    ", ex.Message); - if (resource.BrokenRulesCollection.Count == 1) - message.AppendFormat("* {0}: {1}", - resource.BrokenRulesCollection[0].Property, - resource.BrokenRulesCollection[0].Description); - else - foreach (Csla.Validation.BrokenRule rule in resource.BrokenRulesCollection) - message.AppendFormat("* {0}: {1}
    ", rule.Property, rule.Description); - this.ErrorLabel.Text = message.ToString(); - rowsAffected = 0; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - rowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - rowsAffected = 0; - } - return rowsAffected; - } - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx deleted file mode 100644 index 1d3acb48..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx +++ /dev/null @@ -1,21 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="ResourceList.aspx.cs" Inherits="ResourceList" title="Resource List" %> - -
    - Resources:
    - - - - - - - - - New resource
    -
    - - - -  
    -
    \ No newline at end of file diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx.cs deleted file mode 100644 index ced207ba..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/ResourceList.aspx.cs +++ /dev/null @@ -1,87 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; -using ProjectTracker.Library; - -public partial class ResourceList : System.Web.UI.Page -{ - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - Session["currentObject"] = null; - ApplyAuthorizationRules(); - } - else - ErrorLabel.Text = string.Empty; - } - - private void ApplyAuthorizationRules() - { - this.GridView1.Columns[this.GridView1.Columns.Count - 1].Visible = Resource.CanDeleteObject(); - NewResourceButton.Visible = Resource.CanAddObject(); - } - - #region GridView1 - - protected void NewResourceButton_Click(object sender, EventArgs e) - { - Response.Redirect("ResourceEdit.aspx"); - } - - protected void GridView1_RowDeleted(object sender, GridViewDeletedEventArgs e) - { - Session["currentObject"] = null; - GridView1.DataBind(); - } - - #endregion - - #region ResourceListDataSource - - protected void ResourceListDataSource_DeleteObject(object sender, Csla.Web.DeleteObjectArgs e) - { - try - { - Resource.DeleteResource(int.Parse(e.Keys["Id"].ToString())); - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - protected void ResourceListDataSource_SelectObject(object sender, Csla.Web.SelectObjectArgs e) - { - e.BusinessObject = GetResourceList(); - } - - #endregion - - private ProjectTracker.Library.ResourceList GetResourceList() - { - object businessObject = Session["currentObject"]; - if (businessObject == null || - !(businessObject is ProjectTracker.Library.ResourceList)) - { - businessObject = - ProjectTracker.Library.ResourceList.GetResourceList(); - Session["currentObject"] = businessObject; - } - return (ProjectTracker.Library.ResourceList)businessObject; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx deleted file mode 100644 index 49876187..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx +++ /dev/null @@ -1,49 +0,0 @@ -<%@ Page Language="C#" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" - CodeFile="RolesEdit.aspx.cs" Inherits="RolesEdit" Title="Project Roles" %> - - -
    - - - - - - - - - - Add role
    -
    - - - - - - - - - -
    -
    -    - - -
    -
    diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx.cs deleted file mode 100644 index 1fa09f9c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/RolesEdit.aspx.cs +++ /dev/null @@ -1,154 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Collections; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public partial class RolesEdit : System.Web.UI.Page -{ - private enum Views - { - MainView = 0, - InsertView = 1 - } - - - protected void Page_Load(object sender, EventArgs e) - { - if (!IsPostBack) - { - Session["currentObject"] = null; - ApplyAuthorizationRules(); - } - else - this.ErrorLabel.Text = ""; - } - - private void ApplyAuthorizationRules() - { - this.GridView1.Columns[ - this.GridView1.Columns.Count - 1].Visible = - ProjectTracker.Library.Admin.Roles.CanEditObject(); - this.AddRoleButton.Visible = - ProjectTracker.Library.Admin.Roles.CanAddObject(); - } - - protected void AddRoleButton_Click(object sender, EventArgs e) - { - this.DetailsView1.DefaultMode = DetailsViewMode.Insert; - MultiView1.ActiveViewIndex = (int)Views.InsertView; - } - - protected void DetailsView1_ItemInserted( - object sender, DetailsViewInsertedEventArgs e) - { - MultiView1.ActiveViewIndex = (int)Views.MainView; - this.GridView1.DataBind(); - } - - protected void DetailsView1_ModeChanged( - object sender, EventArgs e) - { - MultiView1.ActiveViewIndex = (int)Views.MainView; - } - - private ProjectTracker.Library.Admin.Roles GetRoles() - { - object businessObject = Session["currentObject"]; - if (businessObject == null || - !(businessObject is ProjectTracker.Library.Admin.Roles)) - { - businessObject = - ProjectTracker.Library.Admin.Roles.GetRoles(); - Session["currentObject"] = businessObject; - } - return (ProjectTracker.Library.Admin.Roles)businessObject; - } - - #region RolesDataSource - - protected void RolesDataSource_DeleteObject( - object sender, Csla.Web.DeleteObjectArgs e) - { - try - { - ProjectTracker.Library.Admin.Roles obj = GetRoles(); - int id = (int)e.Keys["Id"]; - obj.Remove(id); - Session["currentObject"] = obj.Save(); - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - protected void RolesDataSource_InsertObject( - object sender, Csla.Web.InsertObjectArgs e) - { - try - { - ProjectTracker.Library.Admin.Roles obj = GetRoles(); - ProjectTracker.Library.Admin.Role role = obj.AddNew(); - Csla.Data.DataMapper.Map(e.Values, role); - Session["currentObject"] = obj.Save(); - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - protected void RolesDataSource_SelectObject( - object sender, Csla.Web.SelectObjectArgs e) - { - ProjectTracker.Library.Admin.Roles obj = GetRoles(); - e.BusinessObject = obj; - } - - protected void RolesDataSource_UpdateObject( - object sender, Csla.Web.UpdateObjectArgs e) - { - ProjectTracker.Library.Admin.Roles obj = GetRoles(); - try - { - ProjectTracker.Library.Admin.Role role = - obj.GetRoleById(int.Parse(e.Keys["Id"].ToString())); - role.Name = e.Values["Name"].ToString(); - Session["currentObject"] = obj.Save(); - e.RowsAffected = 1; - } - catch (Csla.DataPortalException ex) - { - this.ErrorLabel.Text = ex.BusinessException.Message; - e.RowsAffected = 0; - } - catch (Exception ex) - { - this.ErrorLabel.Text = ex.Message; - e.RowsAffected = 0; - } - } - - #endregion - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Web.sitemap b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Web.sitemap deleted file mode 100644 index 3196b3e4..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/Web.sitemap +++ /dev/null @@ -1,14 +0,0 @@ - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/web.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/web.config deleted file mode 100644 index 516171e0..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWeb/web.config +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/CslaCredentials.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/CslaCredentials.cs deleted file mode 100644 index 326c4007..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/CslaCredentials.cs +++ /dev/null @@ -1,8 +0,0 @@ -using System; -using System.Web.Services.Protocols; - -public class CslaCredentials : SoapHeader -{ - public string Username; - public string Password; -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/PTService.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/PTService.cs deleted file mode 100644 index 544fbd93..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/PTService.cs +++ /dev/null @@ -1,300 +0,0 @@ -using System; -using System.Web; -using System.Collections; -using System.Collections.Generic; -using System.Web.Services; -using System.Web.Services.Protocols; -using ProjectTracker.Library; - - -/// -/// Web Service interface for the ProjectTracker application. -/// -[WebService(Namespace = "http://ws.lhotka.net/")] -[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] -public class PTService : System.Web.Services.WebService -{ - - /// - /// Credentials for custom authentication. - /// - public CslaCredentials Credentials = new CslaCredentials(); - - #region Projects - - [WebMethod(Description="Get a list of projects")] - public ProjectData[] GetProjectList() - { - // anonymous access allowed - Security.UseAnonymous(); - - try - { - ProjectList list = ProjectList.GetProjectList(); - List result = new List(); - foreach (ProjectInfo item in list) - { - ProjectData info = new ProjectData(); - Csla.Data.DataMapper.Map(item, info); - result.Add(info); - } - return result.ToArray(); - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - [WebMethod(Description="Get a project")] - public ProjectData GetProject(ProjectRequest request) - { - // anonymous access allowed - Security.UseAnonymous(); - - try - { - Project proj = Project.GetProject(request.Id); - ProjectData result = new ProjectData(); - Csla.Data.DataMapper.Map(proj, result, "Resources"); - foreach (ProjectResource resource in proj.Resources) - { - ProjectResourceData info = new ProjectResourceData(); - Csla.Data.DataMapper.Map(resource, info, "FullName"); - result.AddResource(info); - } - return result; - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - [WebMethod(Description="Add a project")] - [SoapHeader("Credentials")] - public ProjectData AddProject( - string name, string started, string ended, string description) - { - // user credentials required - Security.Login(Credentials); - - try - { - Project proj = Project.NewProject(); - proj.Name = name; - proj.Started = started; - proj.Ended = ended; - proj.Description = description; - proj = proj.Save(); - - ProjectData result = new ProjectData(); - Csla.Data.DataMapper.Map(proj, result, "Resources"); - return result; - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - [WebMethod(Description = "Edit a project")] - [SoapHeader("Credentials")] - public ProjectData EditProject(Guid id, string name, - string started, string ended, - string description) - { - // user credentials required - Security.Login(Credentials); - - try - { - Project proj = Project.GetProject(id); - proj.Name = name; - proj.Started = started; - proj.Ended = ended; - proj.Description = description; - proj = proj.Save(); - - ProjectData result = new ProjectData(); - Csla.Data.DataMapper.Map(proj, result, "Resources"); - return result; - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - #endregion - - #region Resources - - [WebMethod(Description="Get a list of resources")] - public ResourceData[] GetResourceList() - { - // anonymous access allowed - Security.UseAnonymous(); - - try - { - ResourceList list = ResourceList.GetResourceList(); - List result = new List(); - foreach (ProjectTracker.Library.ResourceInfo item in list) - { - ResourceData info = - new ResourceData(); - Csla.Data.DataMapper.Map(item, info); - result.Add(info); - } - return result.ToArray(); - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - [WebMethod(Description="Get a resource")] - public ResourceData GetResource(ResourceRequest request) - { - // anonymous access allowed - Security.UseAnonymous(); - - try - { - Resource res = Resource.GetResource(request.Id); - ResourceData result = new ResourceData(); - result.Id = res.Id; - result.Name = res.FullName; - foreach (ResourceAssignment resource in res.Assignments) - { - ResourceAssignmentData info = new ResourceAssignmentData(); - Csla.Data.DataMapper.Map(resource, info); - result.AddProject(info); - } - return result; - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - [WebMethod(Description="Change a resource's name")] - [SoapHeader("Credentials")] - public ResourceData ChangeResourceName(int id, - string firstName, string lastName) - { - // user credentials required. - Security.Login(Credentials); - - try - { - Resource res = Resource.GetResource(id); - res.FirstName = firstName; - res.LastName = lastName; - res = res.Save(); - - ResourceData result = new ResourceData(); - result.Id = res.Id; - result.Name = string.Format("{1}, {0}", res.FirstName, res.LastName); - return result; - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - #endregion - - #region Assign Resource to Project - - [WebMethod(Description="Assign resource to a project")] - [SoapHeader("Credentials")] - public void AssignResource(int resourceId, Guid projectId) - { - // user credentials required - Security.Login(Credentials); - - try - { - Resource res = Resource.GetResource(resourceId); - res.Assignments.AssignTo(projectId); - res.Save(); - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - #endregion - - #region Roles - - [WebMethod(Description="Get a list of roles")] - public RoleInfo[] GetRoles() - { - // anonymous access allowed - Security.UseAnonymous(); - - try - { - RoleList list = RoleList.GetList(); - List result = new List(); - foreach (RoleList.NameValuePair role in list) - { - RoleInfo info = new RoleInfo(); - info.Id = role.Key; - info.Name = role.Value; - result.Add(info); - } - return result.ToArray(); - } - catch (Csla.DataPortalException ex) - { - throw ex.BusinessException; - } - catch (Exception ex) - { - throw new Exception(ex.Message); - } - } - - #endregion -} - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectData.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectData.cs deleted file mode 100644 index f49cf699..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectData.cs +++ /dev/null @@ -1,62 +0,0 @@ -using System; -using System.Collections.Generic; - -public class ProjectData -{ - private Guid _id; - private string _name; - private string _started; - private string _ended; - private string _description; - private List - _resources = new List(); - - public Guid Id - { - get { return _id; } - set { _id = value; } - } - - public string Name - { - get { return _name; } - set { _name = value; } - } - - public string Started - { - get { return _started; } - set { _started = value; } - } - - public string Ended - { - get { return _ended; } - set { _ended = value; } - } - - public string Description - { - get { return _description; } - set { _description = value; } - } - - public void AddResource(ProjectResourceData resource) - { - _resources.Add(resource); - } - - public ProjectResourceData[] ProjectResources - { - get - { - if (_resources.Count > 0) - return _resources.ToArray(); - return null; - } - set - { - _resources = new List(value); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectRequest.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectRequest.cs deleted file mode 100644 index c98e120c..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectRequest.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public class ProjectRequest -{ - private Guid _id; - - public Guid Id - { - get { return _id; } - set { _id = value; } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectResourceData.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectResourceData.cs deleted file mode 100644 index ff9ec4d9..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ProjectResourceData.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; - -public class ProjectResourceData -{ - private int _resourceId; - private string _firstName; - private string _lastName; - private string _assigned; - private int _role; - - public int ResourceId - { - get { return _resourceId; } - set { _resourceId = value; } - } - - public string FirstName - { - get { return _firstName; } - set { _firstName = value; } - } - - public string LastName - { - get { return _lastName; } - set { _lastName = value; } - } - - public string Assigned - { - get { return _assigned; } - set { _assigned = value; } - } - - public int Role - { - get { return _role; } - set { _role = value; } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceAssignmentData.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceAssignmentData.cs deleted file mode 100644 index 8f76d297..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceAssignmentData.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System; - -public class ResourceAssignmentData -{ - private Guid _projectId; - private string _projectName; - private string _assigned; - private int _role; - - public Guid ProjectId - { - get { return _projectId; } - set { _projectId = value; } - } - - public string ProjectName - { - get { return _projectName; } - set { _projectName = value; } - } - - public string Assigned - { - get { return _assigned; } - set { _assigned = value; } - } - - public int Role - { - get { return _role; } - set { _role = value; } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceData.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceData.cs deleted file mode 100644 index dabfaa1b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceData.cs +++ /dev/null @@ -1,40 +0,0 @@ -using System; -using System.Collections.Generic; - -public class ResourceData -{ - private int _id; - private string _name; - private List _projects = new List(); - - public int Id - { - get { return _id; } - set { _id = value; } - } - - public string Name - { - get { return _name; } - set { _name = value; } - } - - public void AddProject(ResourceAssignmentData project) - { - _projects.Add(project); - } - - public ResourceAssignmentData[] ResourceAssignments - { - get - { - if (_projects.Count > 0) - return _projects.ToArray(); - return null; - } - set - { - _projects = new List(value); - } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceRequest.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceRequest.cs deleted file mode 100644 index 774d7174..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/ResourceRequest.cs +++ /dev/null @@ -1,21 +0,0 @@ -using System; -using System.Data; -using System.Configuration; -using System.Web; -using System.Web.Security; -using System.Web.UI; -using System.Web.UI.WebControls; -using System.Web.UI.WebControls.WebParts; -using System.Web.UI.HtmlControls; - -public class ResourceRequest -{ - private int _id; - - public int Id - { - get { return _id; } - set { _id = value; } - } - -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/RoleInfo.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/RoleInfo.cs deleted file mode 100644 index a396665f..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/RoleInfo.cs +++ /dev/null @@ -1,19 +0,0 @@ -using System; - -public class RoleInfo -{ - private int _id; - private string _name; - - public int Id - { - get { return _id; } - set { _id = value; } - } - - public string Name - { - get { return _name; } - set { _name = value; } - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/Security.cs b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/Security.cs deleted file mode 100644 index 90fab5e2..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/App_Code/Security.cs +++ /dev/null @@ -1,44 +0,0 @@ -using System; -using System.Web; -using System.Security.Principal; -using ProjectTracker.Library.Security; - -public static class Security -{ - public static void UseAnonymous() - { - // setting an unauthenticated principal when running - // under the VShost causes serialization issues - // and isn't strictly necessary anyway - if (UrlIsHostedByVS(HttpContext.Current.Request.Url)) - return; - ProjectTracker.Library.Security.PTPrincipal.Logout(); - } - - public static void Login(CslaCredentials credentials) - { - if (string.IsNullOrEmpty(credentials.Username)) - throw new System.Security.SecurityException( - "Valid credentials not provided"); - - // set to unauthenticated principal - PTPrincipal.Logout(); - - PTPrincipal.Login(credentials.Username, credentials.Password); - - if (!Csla.ApplicationContext.User.Identity.IsAuthenticated) - { - // the user is not valid, raise an error - throw - new System.Security.SecurityException( - "Invalid user or password"); - } - } - - public static bool UrlIsHostedByVS(Uri uri) - { - if (uri.Port >= 1024 && string.Compare(uri.Host, "localhost", StringComparison.OrdinalIgnoreCase) == 0) - return true; - return false; - } -} diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/PTService.asmx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/PTService.asmx deleted file mode 100644 index 1cf6b86b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/PTService.asmx +++ /dev/null @@ -1 +0,0 @@ -<%@ WebService Language="C#" CodeBehind="~/App_Code/PTService.cs" Class="PTService" %> diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/Web.Config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/Web.Config deleted file mode 100644 index ca6d4270..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/PTWebService/Web.Config +++ /dev/null @@ -1,64 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/RemotingHost/Web.config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/RemotingHost/Web.config deleted file mode 100644 index aa186546..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/RemotingHost/Web.config +++ /dev/null @@ -1,73 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/Web.Config b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/Web.Config deleted file mode 100644 index 093b399b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/Web.Config +++ /dev/null @@ -1,54 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/WebServicePortal.asmx b/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/WebServicePortal.asmx deleted file mode 100644 index 5a3a2f9b..00000000 --- a/PROMS/csla20cs-2.1.4-070223/csla20cs/ProjectTracker20cs/www/WebServicesHost/WebServicePortal.asmx +++ /dev/null @@ -1 +0,0 @@ -<%@ WebService Language="C#" Class="Csla.Server.Hosts.WebServicePortal" %> diff --git a/PROMS/fmtxml/App.ico b/PROMS/fmtxml/App.ico deleted file mode 100644 index 3a5525fd..00000000 Binary files a/PROMS/fmtxml/App.ico and /dev/null differ diff --git a/PROMS/fmtxml/AppendPlantSpecific.cs b/PROMS/fmtxml/AppendPlantSpecific.cs deleted file mode 100644 index 4adc4966..00000000 --- a/PROMS/fmtxml/AppendPlantSpecific.cs +++ /dev/null @@ -1,1525 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - public void AddPlantSpecificOverrideInheritance(string genFileName, ref FormatData fmtdata) - { - string genName = genFileName.Substring(genFileName.LastIndexOf('\\') + 1); - //genName = genName.Substring(0, genName.IndexOf('.')); - switch (genName.ToUpper()) - { - case "SUM.FMT": - AddSUMOverridefmt(ref fmtdata); - break; - case "NSPAB.X01": - AddNSPAB_X01(ref fmtdata); - break; - case "TUEC.FMT": - AddTuecfmtOVR(ref fmtdata); - break; - } - } - - public void AddPlantSpecific(string genFileName, ref FormatData fmtdata) - { - string genName = genFileName.Substring(genFileName.LastIndexOf('\\') + 1); - //genName = genName.Substring(0, genName.IndexOf('.')); - switch (genName.ToUpper()) - { - case "TP.FMT": - AddTPFmt(ref fmtdata); - break; - case "TPBCK2.FMT": - AddTPBCK2Fmt(ref fmtdata); - break; - case "RGE.FMT": - AddRGEFmt(ref fmtdata); - break; - case "RGESAM1.FMT": - case "RGESAM2.FMT": - case "RGESMPE.FMT": - AddRGESAMGFmt(ref fmtdata); - break; - case "RGEBCK.FMT": - AddRGEBCKFmt(ref fmtdata); - break; - case "RGEBCK.X00": - AddRGEBCKX00(ref fmtdata); - break; - case "RGEDEV.FMT": - AddRGEDEVFmt(ref fmtdata); - break; - case "WCN1.FMT": - AddWCN1Fmt(ref fmtdata); - break; - case "WCN2.FMT": - AddWCN2Fmt(ref fmtdata); - break; - case "WCNCKL.FMT": - AddWCNCKLFmt(ref fmtdata); - break; - case "WCNBCK.FMT": - AddWCNBCKFmt(ref fmtdata); - break; - case "WCNOFB.FMT": - AddWCNOFBFmt(ref fmtdata); - break; - case "NSP.FMT": - AddNSPFMT(ref fmtdata); - break; - case "NSPAB.FMT": - case "NSPAB.X00": - case "NSPAB.X01": - case "NSPAB.X02": - AddNSPABFMT(ref fmtdata); - break; - case "NSP.X00": - AddNSP00FMT(ref fmtdata); - break; - case "NSPBCK.FMT": - AddNSPBCKFMT(ref fmtdata); - break; - case "NSPARP.FMT": - case "NSPARP.X00": - AddNSPARPfmt(ref fmtdata); - break; - case "NSPDEV.FMT": - AddNSPDEVFMT(ref fmtdata); - break; - case "NSPIFG.FMT": - case "NSPIFG2.FMT": - case "NSPIFG.X00": - AddNSPIFGFMT(ref fmtdata); - break; - case "NSPSAM.FMT": - AddNSPSAMFMT(ref fmtdata); - break; - case "SHE.FMT": - AddSHEfmt(ref fmtdata); - break; - case "SHESSD.FMT": - AddSHESSDfmt(ref fmtdata); - break; - case "CPLSSDD.FMT": - AddCPLSSDDfmt(ref fmtdata); - break; - case "IP3.X15": - AddIP3_15fmt(ref fmtdata); - break; - case "IP3.FMT": - AddIP3fmt(ref fmtdata); - break; - case "IP2.FMT": - AddIP2fmt(ref fmtdata); - break; - case "IP2BCK.FMT": - AddIP2BCKFmt(ref fmtdata); - break; - case "SUM.FMT": - AddSUMfmt(ref fmtdata); - break; - case "VCSDEV.FMT": - AddVCSDEVfmt(ref fmtdata); - break; - case "CAL2.FMT": - case "CALOTO.FMT": - AddCAL2fmt(ref fmtdata); - break; - case "CALBCK.FMT": - AddCALBCKfmt(ref fmtdata); - break; - case "FNP.FMT": - AddFNPfmt(ref fmtdata); - break; - case "FNP.X00": - case "FNP.X01": - AddFNP_X0x(ref fmtdata); - break; - case "FNPCAS.FMT": - AddFNPCASfmt(ref fmtdata); - break; - case "CPL.FMT": - AddCPLfmt(ref fmtdata); - break; - case "CPL.X00": - AddCPL_X00(ref fmtdata); - break; - case "CPL.X01": - AddCPL_X01(ref fmtdata); - break; - case "CPL.X02": - AddCPL_X02(ref fmtdata); - break; - case "CPL.X03": - AddCPL_X03(ref fmtdata); - break; - case "CPLRDEV.FMT": - AddCPLRDev(ref fmtdata); - break; - case "CPLA.FMT": - AddCPLA(ref fmtdata); - break; - case "CPBCK.FMT": - AddCPBCK(ref fmtdata); - break; - case "CPBCK.X00": - AddCPBCK_X00(ref fmtdata); - break; - case "CPBCK.X01": - AddCPBCK_X01(ref fmtdata); - break; - case "CPBCK2.FMT": - AddCPBCK2(ref fmtdata); - break; - case "TUEC.FMT": - AddTuecfmt(ref fmtdata); - break; - case "TUECDEV.FMT": - AddTuecDevfmt(ref fmtdata); - break; - case "MCG.FMT": - case "MCGBOX.FMT": - AddMCGfmt(ref fmtdata); - break; - case "MCGDEV.FMT": - AddCATDEVfmt(ref fmtdata); - break; - case "CAT.FMT": - case "CATBOX.FMT": - AddCATfmt(ref fmtdata); - break; - case "CATADEV.FMT": - AddCATADEVfmt(ref fmtdata); - break; - case "CATDEV.FMT": - AddCATDEVfmt(ref fmtdata); - break; - case "GEN.FMT": - AddGENfmt(ref fmtdata); - break; - case "CWE.FMT": - AddCWEfmt(ref fmtdata); - break; - case "CWE.X00": - AddCWE00fmt(ref fmtdata); - break; - case "EXCLN.FMT": - AddEXCLNfmt(ref fmtdata); - break; - case "EXCLN.X00": - AddEXCLN00fmt(ref fmtdata); - break; - case "EXCLN.X01": - AddEXCLN01fmt(ref fmtdata); - break; - case "EXEDEV.FMT": - AddEXEDEVfmt(ref fmtdata); - break; - case "WEP2.FMT": - AddWEP2fmt(ref fmtdata); - break; - case "WPB.X20": - AddWPB20fmt(ref fmtdata); - break; - case "WPB.X22": - AddWPB22fmt(ref fmtdata); - break; - case "WEPENB.FMT": - AddWEPENBFmt(ref fmtdata); - break; - case "BGEEOP.FMT": - AddBGEEOPfmt(ref fmtdata); - break; - case "BGEALN.FMT": - AddBGEALNfmt(ref fmtdata); - break; - case "OHLP.FMT": - AddOHLPfmt(ref fmtdata); - break; - } - } - - private void AddCALBCKfmt(ref FormatData fmtdata) - { - fmtdata.StepData[42].ReadOnly = "True"; - fmtdata.StepData[43].ReadOnly = "True"; - fmtdata.StepData[43].ChildIndent = "14.4"; // 2 characters at 10 cpi - fmtdata.StepData[2].TabData.IdentAltPrint = @"\ul EOP STEP:\ulnone \STEP: "; - fmtdata.StepData[2].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[6].TabData.IdentAltPrint = @"\ul EOP STEP:\ulnone \STEP: "; - fmtdata.StepData[6].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[7].TabData.IdentAltPrint = @"\ul EOP STEP:\ulnone \STEP: "; - fmtdata.StepData[7].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[6].WidthOverride = "490"; - fmtdata.StepData[7].WidthOverride = "490"; - fmtdata.StepData[24].WidthOverride = "490"; - fmtdata.StepData[2].UseOldTemplate = "True"; - fmtdata.StepData[6].UseOldTemplate = "True"; - fmtdata.StepData[7].UseOldTemplate = "True"; - fmtdata.StepData[9].UseOldTemplate = "True"; - fmtdata.StepData[40].StepLayoutData.AlignWithParentTab = "True"; - } - private void AddFNPfmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "445,186,120"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "420,186,120"; - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = "0,186"; - fmtdata.SectData.StepSectionData.StpSectLayData.ColRTable = "0,198,138"; - fmtdata.SectData.StepSectionData.SequentialTabFormat[2].TabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[2].PrintTabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[3].TabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[3].PrintTabFormat = "#1#{seq} "; - fmtdata.StepData[6].OneLineBeforeTab = "True"; - fmtdata.StepData[7].OneLineBeforeTab = "True"; - fmtdata.StepData[41].TabData.Ident = "{ROMAN}. "; - fmtdata.StepData[41].TabData.RNOIdent = "{ROMAN}. "; - fmtdata.BoxData[1].End = 500; - fmtdata.BoxData[2].Start = -15; - fmtdata.BoxData[2].End = 505; - fmtdata.StepData[40].AdjHighLevelTab = "60"; - fmtdata.StepData[41].AlignHLSTabWithSectOvride = "True"; - fmtdata.StepData[42].ReadOnly = "True"; - fmtdata.StepData[43].ReadOnly = "True"; - fmtdata.StepData[9].UseOldTemplate = "True"; - } - private void AddFNP_X0x(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.SequentialTabFormat[2].TabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[2].PrintTabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[3].TabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[3].PrintTabFormat = "#1#{seq} "; - - fmtdata.PrintData.DoRevDate = "True"; - fmtdata.PrintData.RevDateWithForwardSlash = "False"; - } - private void AddFNPCASfmt(ref FormatData fmtdata) - { - fmtdata.PrintData.DoRevDate = "True"; - fmtdata.PrintData.RevDateWithForwardSlash = "False"; - } - private void AddCAL2fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.SeparatorLocation = 10; - fmtdata.StepData[9].TabData.Ident = " {!C0}{Section Prefix}{numeric}. "; - fmtdata.StepData[9].TabData.RNOIdent = " {!C0}{Section Prefix}. "; - fmtdata.StepData[9].TabData.MacroList[0].LocWithXOff = "True"; - fmtdata.TransData.TransTypeData[5].TransFormat = "{Sect Num}, {Sect Title}, Step {First Step}"; - fmtdata.TransData.TransTypeData[5].TransMenu = "{Sect Num}, {Sect Title}, Step {First Step}"; - } - - private void AddIP3fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectPrtData.RNOSepLineLength = 186; - fmtdata.SectData.StepSectionData.StpSectPrtData.RNOSepString = null; - fmtdata.StepData[9].Suffix = "{ulnone} *"; - } - - private void AddIP2fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.IndentToken = 0; - fmtdata.StepData[9].TabData.Ident = "{!C0}{numeric}. "; - fmtdata.StepData[9].TabData.RNOIdent = "{!C0}. "; - } - - private void AddIP2BCKFmt(ref FormatData fmtdata) - { - /* Under development - * Turn this on when we start working on Indian Point Backgrounds - * */ - //fmtdata.TransData.TransTypeData[7].TransUI = "ProcMenu, SectDefault, StepFirst"; - } - - private void AddTPFmt(ref FormatData fmtdata) - { - /* Under development - fmtdata.SectData.StepSectionData.StpSectLayData.TableCenterPos = "146,0,0"; - * */ - // When a plant does not have the TextSubFollowsTextStyle, the 16bit code was adding two characters - // before the tab if the parent of this step is a Caution or Note. But the two characters was related - // to the spaces on the parents tab. The code was very hard to follow. This format variable was - // introduced to allow setting of the number of spaces before the tab. - fmtdata.StepData[1].CautionOrNoteSubstepIndent = "2"; - } - private void AddTPBCK2Fmt(ref FormatData fmtdata) - { - /* Under development - * Turn this on when we start working on Turkey Point Backgrounds - * */ - //fmtdata.TransData.TransTypeData[7].TransUI = "ProcMenu, SectDefault, StepFirst"; - } - private void AddRGEFmt(ref FormatData fmtdata) - { - // RGE is now call CEG - fmtdata.Name = "CEG Ginna EOP/AOP Format"; - RGEcommonAdjustments(ref fmtdata); - } - private void AddRGESAMGFmt(ref FormatData fmtdata) - { - RGEcommonAdjustments(ref fmtdata); - } - private void RGEcommonAdjustments(ref FormatData fmtdata) - { - // The RGE formats had a PrintPosAdjust in 16 bit on the High, Immediate, LossocAC & continuous step - // types with a value of -1 (move back one character). However, on the printed output, it printed - // as about a 1/4 of a character. This value will be set in the 32bit format file to a -2.4 in - // these step types. - fmtdata.StepData[2].StepPrintData.PosAdjust = "-2.4"; - fmtdata.StepData[3].StepPrintData.PosAdjust = "-2.4"; - fmtdata.StepData[9].StepPrintData.PosAdjust = "-2.4"; - fmtdata.StepData[18].StepPrintData.PosAdjust = "-2.4"; - // The RGE formats tabs for HLS were printing one character over to the left in 32 bit, except for - // immediate (index = 3). Adjust format tab data to make it match 16bit. - fmtdata.StepData[2].TabData.Ident = " {numeric} "; - fmtdata.StepData[2].TabData.IdentEdit = " {numeric} "; - fmtdata.StepData[2].TabData.RNOIdentEdit = ""; - fmtdata.StepData[2].TabData.RNOIdent = ""; - //fmtdata.StepData[2].TabData.IdentEditWid=""; - //fmtdata.StepData[2].TabData.IdentWid="18"; - //fmtdata.StepData[2].TabData.RNOIdentEditWid="18"; - //fmtdata.StepData[2].TabData.RNOIdentWid = "18"; - fmtdata.StepData[9].TabData.IdentEdit = "*{numeric} "; - fmtdata.StepData[9].TabData.Ident = "*{numeric} "; - fmtdata.StepData[9].TabData.RNOIdentEdit = "* "; - fmtdata.StepData[9].TabData.RNOIdent = "* "; - - // the following change was made because the code that supports the TStepNoFlag was not - // written when Ginna was delivered and the difference in the transition text for ranges - // did not match the 16bit but was not caught in compares. As per Paul Linn on 6/18/13 - // keep the transition text the same as for the delivery, which means that TStepNoFlag - // should be = true (the default). - fmtdata.TransData.TStepNoFlag = "True"; - - // adjust the width of the Caution and Notes - fmtdata.SectData.StepSectionData.StpSectLayData.WidT = 457; - } - private void AddRGEDEVFmt(ref FormatData fmtdata) - { - // RGE is now call CEG - fmtdata.Name = "CEG Ginna Deviation Format"; - fmtdata.TransData.TStepNoFlag = "True"; // see comment in RgeCommonAdjustments - } - private void AddRGEBCKFmt(ref FormatData fmtdata) - { - // RGE is now call CEG //\u160? - fmtdata.Name = "CEG Ginna Background Format"; - fmtdata.TPL = "0 0 title\r\n1 1 \r\n2 41 PURPOSE: \r\n2 42 BASIS:\r\n2 42 SUPPLEMENTAL INFORMATION:\r\n2 42 DEVIATION/JUSTIFICATION:\r\n2 42 REFERENCES:\r\n1 39 \xA0\r\n0 0 title\r\n1 5 \r\n2 41 PURPOSE: \r\n2 42 BASIS:\r\n2 42 SUPPLEMENTAL INFORMATION:\r\n2 42 DEVIATION/JUSTIFICATION:\r\n2 42 REFERENCES:\r\n1 39 \xA0\r\n0 0 title\r\n1 6 \r\n2 41 PURPOSE: \r\n2 42 BASIS:\r\n2 42 SUPPLEMENTAL INFORMATION:\r\n2 42 DEVIATION/JUSTIFICATION:\r\n2 42 REFERENCES:\r\n1 39 \xA0\r\n"; - // High - fmtdata.StepData[2].ColOverride = "66"; - fmtdata.StepData[2].UseOldTemplate = "True"; - // Imediate - fmtdata.StepData[3].ColOverride = "66"; - // Continuous - fmtdata.StepData[9].ColOverride = "66"; - // Loss of AC - fmtdata.StepData[18].ColOverride = "66"; - // High 5 - fmtdata.StepData[41].ColOverride = "66"; - // And - fmtdata.StepData[4].StepLayoutData.STExtraSpace = "0"; - // Explicate And - fmtdata.StepData[45].StepLayoutData.STExtraSpace = "0"; - // ContAcAnd - fmtdata.StepData[19].StepLayoutData.STExtraSpace = "0"; - // OR - fmtdata.StepData[5].StepLayoutData.STExtraSpace = "0"; - // Implicate OR - fmtdata.StepData[35].StepLayoutData.STExtraSpace = "0"; - // ContAcOR - fmtdata.StepData[46].StepLayoutData.STExtraSpace = "0"; - // Caution - fmtdata.StepData[6].UseOldTemplate = "True"; - //Note - fmtdata.StepData[7].UseOldTemplate = "True"; - // Paragraph - fmtdata.StepData[24].StepLayoutData.STExtraSpace = "0"; - // RNO - fmtdata.StepData[40].StepLayoutData.AlignWithParentTab = "True"; - fmtdata.StepData[40].ColOverride = "66"; - // TitleWithTextRight - fmtdata.StepData[42].ReadOnly = "True"; - fmtdata.StepData[42].ColOverride = "66"; - fmtdata.StepData[42].StepLayoutData.STExtraSpace = "0"; - // TitleWithTextBelow - fmtdata.StepData[43].ReadOnly = "True"; - fmtdata.StepData[43].ColOverride = "66"; - fmtdata.StepData[43].WidthOverride = "468"; - fmtdata.StepData[43].StepLayoutData.STExtraSpace = "0"; - } - private void AddRGEBCKX00(ref FormatData fmtdata) - { - // RGE is now call CEG - fmtdata.Name = "CEG Ginna Background Subformat"; - fmtdata.TransData.TStepNoFlag = "True"; // see comment in RgeCommonAdjustments - } - - private void AddSHEfmt(ref FormatData fmtdata) - { - fmtdata.ProcData.CoverTitleLength = 42; - fmtdata.ProcData.CheckOffData.CheckOffList[0].NotOnEmpty = "True"; - fmtdata.SectData.StepSectionData.StpSectLayData.ColRTable = "0,216,144"; //"0,204,144"; - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = "0,193,0"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "396,190,114"; //"396,192,114" - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "396,190,114"; //"396,192,114" - fmtdata.StepData[2].TabData.Ident = " {numeric}."; - fmtdata.StepData[2].TabData.RNOIdent = " ."; - fmtdata.StepData[4].TabData.RNOAdjustTabSize = 12; - fmtdata.StepData[7].TabData.Ident = @" \ul NOTE\ulnone"; - fmtdata.StepData[26].TabData.Ident = @" \ul NOTE\ulnone"; - fmtdata.StepData[6].MatchUpRNO = "False"; - fmtdata.StepData[6].MixCautionsAndNotes = "True"; - fmtdata.StepData[7].MatchUpRNO = "False"; - fmtdata.StepData[7].MixCautionsAndNotes = "True"; - fmtdata.StepData[7].TabData.NoTrim = "True"; // need this field in stepdata/tabdata. - fmtdata.StepData[9].TabData.Ident = "{asterisk} {numeric}."; - fmtdata.StepData[18].TabData.Ident = null; - fmtdata.StepData[18].TabData.RNOIdent = null; - fmtdata.StepData[23].MatchUpRNO = "True"; - fmtdata.BoxData[2].TxtWidth = 432; - fmtdata.TransData.TransTypeData[6].TransFormat = ""; // not used and not supported in code - fmtdata.TransData.TransTypeData[7].TransFormat = ""; - // tables - fmtdata.StepData[8].Font.FontFamily = "Consolas"; - fmtdata.StepData[10].Font.FontFamily = "Consolas"; - } - private void AddSHESSDfmt(ref FormatData fmtdata) - { - fmtdata.StepData[24].StepLayoutData.STExtraSpace = null; - } - private void AddCPLSSDDfmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.PMode = 0; - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = "0,90,0"; - } - private void AddIP3_15fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.ShowSectionTitles = "False"; - fmtdata.BoxData[4].TxtStart = 36; - fmtdata.BoxData[4].TxtWidth = 426; - fmtdata.BoxData[4].BXURC = " *"; - fmtdata.BoxData[4].BXLRC = " *"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontStyle = "Underline"; - fmtdata.StepData[9].Suffix = "{ulnone} *"; - fmtdata.StepData[6].TabData.IdentEdit = "CAUTION"; - fmtdata.StepData[6].TabData.Ident = "CAUTION"; - fmtdata.StepData[6].TabData.RNOIdentEdit = "CAUTION"; - fmtdata.StepData[6].TabData.RNOIdent = "CAUTION"; - fmtdata.StepData[7].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[7].TabData.Ident = "NOTE"; - fmtdata.StepData[7].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[7].TabData.RNOIdent = "NOTE"; - fmtdata.StepData[20].TabData.IdentEdit = "CAUTION"; - fmtdata.StepData[20].TabData.Ident = "CAUTION"; - fmtdata.StepData[20].TabData.RNOIdentEdit = "CAUTION"; - fmtdata.StepData[20].TabData.RNOIdent = "CAUTION"; - fmtdata.StepData[21].TabData.IdentEdit = "CAUTION"; - fmtdata.StepData[21].TabData.Ident = "CAUTION"; - fmtdata.StepData[21].TabData.RNOIdentEdit = "CAUTION"; - fmtdata.StepData[21].TabData.RNOIdent = "CAUTION"; - fmtdata.StepData[22].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[22].TabData.Ident = "NOTE"; - fmtdata.StepData[22].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[22].TabData.RNOIdent = "NOTE"; - fmtdata.StepData[23].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[23].TabData.Ident = "NOTE"; - fmtdata.StepData[23].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[23].TabData.RNOIdent = "NOTE"; - fmtdata.StepData[26].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[26].TabData.Ident = "NOTE"; - fmtdata.StepData[26].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[26].TabData.RNOIdent = "NOTE"; - fmtdata.StepData[27].TabData.IdentEdit = "CAUTION"; - fmtdata.StepData[27].TabData.Ident = "CAUTION"; - fmtdata.StepData[27].TabData.RNOIdentEdit = "CAUTION"; - fmtdata.StepData[27].TabData.RNOIdent = "CAUTION"; - fmtdata.StepData[28].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[28].TabData.Ident = "NOTE"; - fmtdata.StepData[28].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[28].TabData.RNOIdent = "NOTE"; - fmtdata.StepData[32].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[32].TabData.Ident = "NOTE"; - fmtdata.StepData[32].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[32].TabData.RNOIdent = "NOTE"; - } - } - public partial class FmtToXml - { - public void AddPlantSpecific(string genFileName, ref PageStyles pgstyles) - { - //string genName = genFileName.Substring(genFileName.LastIndexOf('\\') + 1); - //genName = genName.Substring(0, genName.IndexOf('.')); - //switch (genName.ToUpper()) - switch (genFileName.ToUpper()) - { - case "NSP.PAG": - AddNSPPage(ref pgstyles); - break; - case "NSP.Z00": - AddNSP00Page(ref pgstyles); - break; - case "NSPBCK.PAG": - AddNSPBckPage(ref pgstyles); - break; - case "NSPAB.PAG": - AddNSPABPage(ref pgstyles); - break; - case "NSPAB.Z00": - AddNSPABPage_Z00(ref pgstyles); - break; - case "NSPAB.Z01": - AddNSPABPage_Z01(ref pgstyles); - break; - case "NSPAB.Z02": - AddNSPABPage_Z02(ref pgstyles); - break; - case "NSPDEV.PAG": - AddNSPDEVPage(ref pgstyles); - break; - case "NSPIFG.PAG": - case "NSPIFG2.PAG": - AddNSPIFGPage(ref pgstyles); - break; - case "NSPIFG.Z00": - AddNSPIFG_00Page(ref pgstyles); - break; - case "NSPARP.PAG": - AddNSPARPPage(ref pgstyles); - break; - case "NSPARP.Z00": - AddNSPARP_00Page(ref pgstyles); - break; - case "NSPSAM.PAG": - AddNSPSAMPage(ref pgstyles); - break; - case "SHE.PAG": - AddSHEPage(ref pgstyles); - break; - case "RGESAM1.PAG": - AddRGESam1Page(ref pgstyles); - break; - case "RGE.PAG": - AddRGEPage(ref pgstyles); - break; - case "RGEBCK.PAG": - AddRGEBCKPage(ref pgstyles); - break; - case "VCSDEV.PAG": - AddVCSDEVfmt(ref pgstyles); - break; - case "SUM.PAG": - AddSUMfmt(ref pgstyles); - break; - case "CWE.PAG": - AddCWEfmt(ref pgstyles); - break; - case "CAL2.PAG": - case "CALOTO.PAG": - AddCAL2Page(ref pgstyles); - break; - case "CALBCK.PAG": - AddCALBCKPage(ref pgstyles); - break; - case "CPLRDEV.PAG": - AddCPLRDevPage(ref pgstyles); - break; - case "CPL.PAG": - AddCPLPage(ref pgstyles); - break; - case "CPLA.PAG": - AddCPLAPage(ref pgstyles); - break; - case "CPL.Z00": - case "CPL.Z01": - case "CPL.Z02": - SetRobinsonPageListFont(ref pgstyles); - break; - case "CPL.Z03": - AddCPL_Z03(ref pgstyles); - break; - case "CPBCK.PAG": - AddCPBCK(ref pgstyles); - break; - case "CPBCK.Z00": - AddCPBCK_Z00(ref pgstyles); - break; - case "CPBCK.Z01": - AddCPBCK_Z01(ref pgstyles); - break; - case "CPBCK2.PAG": - AddCPBCK2(ref pgstyles); - break; - case "TUEC.PAG": - AddTUECPage(ref pgstyles); - break; - /* Under Development - case "TP.PAG": - AddTPPage(ref pgstyles); - break; - case "TP.Z00": - AddTP00Page(ref pgstyles); - break; - * */ - case "FNP.PAG": - AddFNPPage(ref pgstyles); - break; - case "FNP.Z00": - AddFNP_00Page(ref pgstyles); - break; - case "FNP.Z01": - AddFNP_01Page(ref pgstyles); - break; - case "FNPCAS.PAG": - AddFNPCASPage(ref pgstyles); - break; - case "MCG.PAG": - case "MCGBOX.PAG": - AddMCGPage(ref pgstyles); - break; - case "CAT.PAG": - case "CATBOX.PAG": - AddCATPage(ref pgstyles); - break; - case "EXCLN.Z00": - AddEXCLN00fmt(ref pgstyles); - break; - case "WCN1.PAG": - AddWCN1Page(ref pgstyles); - break; - case "WCNBCK.PAG": - AddWCNBCKPage(ref pgstyles); - break; - case "WEPENB.PAG": - AddWEPENBPage(ref pgstyles); - break; - case "BGEEOP.PAG": - AddBGEEOPPage(ref pgstyles); - break; - case "BGEEOP.Z00": - AddBGEEOPPage_Z00(ref pgstyles); - break; - case "BGEALN.PAG": - AddBGEALNPage(ref pgstyles); - break; - } - } - - private void AddFNPCASPage(ref PageStyles pgstyles) - { - // adjust location of procedure title slightly to the right. Long section titles - // were touching left line of header box - pgstyles.PgStyles[0].Items[3].Col = 234; - } - private void AddFNP_00Page(ref PageStyles pgstyles) - { - pgstyles.PgStyles[0].Items[2].Col = 30; - pgstyles.PgStyles[1].Items[2].Col = 30; - pgstyles.PgStyles[2].Items[2].Col = 30; - pgstyles.PgStyles[3].Items[2].Col = 30; - - // adjust location of procedure title slightly to the right. Long section titles - // were touching left line of header box - pgstyles.PgStyles[0].Items[3].Col = 234; - pgstyles.PgStyles[1].Items[3].Col = 234; - pgstyles.PgStyles[2].Items[3].Col = 234; - pgstyles.PgStyles[3].Items[3].Col = 234; - } - private void AddFNP_01Page(ref PageStyles pgstyles) - { - pgstyles.PgStyles[0].Items[2].Col = 30; - pgstyles.PgStyles[1].Items[2].Col = 30; - pgstyles.PgStyles[2].Items[2].Col = 30; - - // adjust location of procedure title slightly to the right. Long section titles - // were touching left line of header box - pgstyles.PgStyles[0].Items[3].Col = 234; - pgstyles.PgStyles[1].Items[3].Col = 234; - pgstyles.PgStyles[2].Items[3].Col = 234; - } - - private void AddFNPPage(ref PageStyles pgstyles) - { - pgstyles.PgStyles[0].Items[2].Col = 30; - pgstyles.PgStyles[1].Items[2].Col = 30; - pgstyles.PgStyles[2].Items[2].Col = 30; - pgstyles.PgStyles[3].Items[2].Col = 30; - pgstyles.PgStyles[4].Items[3].Col = 30; // foldout - pgstyles.PgStyles[7].Items[2].Col = 30; // component list - pgstyles.PgStyles[8].Items[2].Col = 30; - pgstyles.PgStyles[9].Items[2].Col = 30; - pgstyles.PgStyles[10].Items[2].Col = 30; - pgstyles.PgStyles[11].Items[2].Col = 30; - - // adjust location of procedure title slightly to the right. Long section titles - // were touching left line of header box - pgstyles.PgStyles[0].Items[3].Col = 234; - pgstyles.PgStyles[1].Items[3].Col = 234; - pgstyles.PgStyles[2].Items[3].Col = 234; - pgstyles.PgStyles[3].Items[3].Col = 234; - pgstyles.PgStyles[4].Items[2].Col = 234; // foldout page - pgstyles.PgStyles[4].Items[4].Col = 234; - pgstyles.PgStyles[7].Items[3].Col = 234; - pgstyles.PgStyles[8].Items[3].Col = 234; - pgstyles.PgStyles[10].Items[3].Col = 234; - pgstyles.PgStyles[11].Items[3].Col = 234; - - pgstyles.PgStyles[4].Items[2].Row = 32; // foldout page's 'FOLDOUT PAGE' - } - - private void AddCALBCKPage(ref PageStyles pgstyles) - { - pgstyles.PgStyles[1].Items[3].Style.FontSize = "14"; - pgstyles.PgStyles[1].Items[4].Style.FontSize = "14"; - pgstyles.PgStyles[0].Items[7].Col = 518; - } - private void AddCAL2Page(ref PageStyles pgstyles) - { - pgstyles.PgStyles[6].Items[2].Col = 240; - pgstyles.PgStyles[6].Items[3].Col = 240; - pgstyles.PgStyles[6].Items[4].Col = 240; - pgstyles.PgStyles[6].Items[3].Row = 295; - pgstyles.PgStyles[6].Items[4].Row = 317; - pgstyles.PgStyles[6].Items[3].Justify = pgstyles.PgStyles[6].Items[4].Justify; - pgstyles.PgStyles[6].Items[3].Style.FontSize = "14"; - pgstyles.PgStyles[6].Items[4].Style.FontSize = "14"; - pgstyles.PgStyles[6].Items[5].Col = 240; - pgstyles.PgStyles[6].Items[6].Col = 522; - pgstyles.PgStyles[6].Items[6].Style.FontSize = "14"; - } - - private void AddSHEPage(ref PageStyles pgstyles) - { - // Procedure Steps - pgstyles.PgStyles[0].Items[1].Col = 78; // Column for BOX5 needed adjusted to match 16bit - pgstyles.PgStyles[1].Items[9].Col = 396; - pgstyles.PgStyles[2].Items[2].Col = 315; // Adjust columns on PSI items for cover page. - pgstyles.PgStyles[2].Items[3].Col = 315; - pgstyles.PgStyles[2].Items[4].Col = 315; - pgstyles.PgStyles[2].Items[5].Col = 315; - pgstyles.PgStyles[2].Items[6].Col = 315; - pgstyles.PgStyles[2].Items[7].Col = 315; - pgstyles.PgStyles[2].Items[8].Col = 315; - pgstyles.PgStyles[2].Items[9].Col = 315; - pgstyles.PgStyles[3].Items[4].Col = 477; // Adjust columns on some PSI for cover page. - pgstyles.PgStyles[3].Items[5].Col = 477; - pgstyles.PgStyles[3].Items[6].Col = 477; - pgstyles.PgStyles[3].Items[7].Col = 477; - pgstyles.PgStyles[3].Items[8].Col = 477; - pgstyles.PgStyles[3].Items[9].Col = 477; - pgstyles.PgStyles[3].Items[10].Col = 477; - pgstyles.PgStyles[3].Items[11].Col = 477; - pgstyles.PgStyles[3].Items[12].Col = 477; - pgstyles.PgStyles[3].Items[23].Col = 272; - pgstyles.PgStyles[3].Items[23].Style.CPI = "12"; - pgstyles.PgStyles[3].Items[24].Row = 426; - pgstyles.PgStyles[3].Items[24].Col = 272; - pgstyles.PgStyles[3].Items[24].Justify = "PSCenter, PSTop"; - pgstyles.PgStyles[3].Items[24].Style.CPI = "12"; - pgstyles.PgStyles[4].Items[5].Col = 414; - - // added Purpose/Symptom page/doc style - Array.Resize(ref pgstyles.PgStyles, pgstyles.PgStyles.Length + 1); - pgstyles.PgStyles[9].Name = "Purpose/Symptom"; - pgstyles.PgStyles[9].Index = 9; - if (pgstyles.PgStyles[9].Items == null) - Array.Resize(ref pgstyles.PgStyles[9].Items, 6); - pgstyles.PgStyles[9].Items[0].Col = 3F; - pgstyles.PgStyles[9].Items[0].Justify = "PSCenter"; - pgstyles.PgStyles[9].Items[0].Row = 12F; - pgstyles.PgStyles[9].Items[0].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[0].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[0].Style.FontFamily = "Prestige Elite Tall"; - pgstyles.PgStyles[9].Items[0].Style.FontSize = "10"; - pgstyles.PgStyles[9].Items[0].Style.FontStyle = "None"; - pgstyles.PgStyles[9].Items[0].Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - - pgstyles.PgStyles[9].Items[1].Col = 78; - pgstyles.PgStyles[9].Items[1].Justify = "PSNoHalfLine"; - pgstyles.PgStyles[9].Items[1].Row = 24; - pgstyles.PgStyles[9].Items[1].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[1].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[9].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[9].Items[1].Style.FontStyle = "None"; - pgstyles.PgStyles[9].Items[1].Token = "{PMODEBOX}"; - - pgstyles.PgStyles[9].Items[2].Col = 237; - pgstyles.PgStyles[9].Items[2].Justify = "PSCenter"; - pgstyles.PgStyles[9].Items[2].Row = 42; - pgstyles.PgStyles[9].Items[2].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[2].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[9].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[9].Items[2].Style.FontStyle = "Bold"; - pgstyles.PgStyles[9].Items[2].Token = "{PROCTITLE}"; - - pgstyles.PgStyles[9].Items[3].Col = -12; - pgstyles.PgStyles[9].Items[3].Justify = "PSLeft"; - pgstyles.PgStyles[9].Items[3].Row = 754; - pgstyles.PgStyles[9].Items[3].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[3].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[9].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[9].Items[3].Style.FontStyle = "None"; - pgstyles.PgStyles[9].Items[3].Token = "EOP-{EOPNUM}"; - - pgstyles.PgStyles[9].Items[4].Col = 225; - pgstyles.PgStyles[9].Items[4].Justify = "PSCenter"; - pgstyles.PgStyles[9].Items[4].Row = 754; - pgstyles.PgStyles[9].Items[4].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[4].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[9].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[9].Items[4].Style.FontStyle = "None"; - pgstyles.PgStyles[9].Items[4].Token = "Rev. {REV}"; - - pgstyles.PgStyles[9].Items[5].Col = 396; - pgstyles.PgStyles[9].Items[5].Justify = "PSLeft"; - pgstyles.PgStyles[9].Items[5].Row = 754; - pgstyles.PgStyles[9].Items[5].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[5].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[9].Items[5].Style.FontSize = "11"; - pgstyles.PgStyles[9].Items[5].Style.FontStyle = "None"; - pgstyles.PgStyles[9].Items[5].Token = "Page {PAGE} of {OF}"; - } - private void AddRGEPage(ref PageStyles pgstyles) - { - // Procedure Steps - pgstyles.PgStyles[0].Items[4].Col = 30; // EOPNUM - } - private void AddRGEBCKPage(ref PageStyles pgstyles) - { - // Procedure Steps - pgstyles.PgStyles[0].Items[1].Token = @"\ul STEP DESCRIPTION TABLE FOR {EOPNUM}\ulnone {CM:(Cont)}"; - // Cover page - pgstyles.PgStyles[1].Items[8].Col = 432; // REV - // Revision Page / Table of Contents - pgstyles.PgStyles[2].Items[1].Row = 738; // EOPNUM - pgstyles.PgStyles[2].Items[2].Row = 738; // REV - //Revision Page / Table of Contents (After first page) - pgstyles.PgStyles[5].Items[1].Row = 738; // EOPNUM - pgstyles.PgStyles[5].Items[2].Row = 738; // ROMANPAGE - pgstyles.PgStyles[5].Items[3].Row = 738; // REV - } - - private void AddRGESam1Page(ref PageStyles pgstyles) - { - // CoverPage - add the Revision to the pagelist - int cnt = pgstyles.PgStyles.Length + 1; - PSItem[] Fpsitms = null; - PSItem pi = new PSItem(); - pi.Style = new VE_Font(); - - pi.Token = "REVISION {REV}"; - pi.Row = 382; - pi.Col = 242; - pi.Justify = "PSCenter"; - pi.Style.FontFamily = "Courier New"; - pi.Style.FontSize = "12"; - pi.Style.CPI = "10"; - Fpsitms = new PSItem[cnt]; - pgstyles.PgStyles[3].Items.CopyTo(Fpsitms, 0); - Fpsitms[cnt - 1] = pi; - pgstyles.PgStyles[3].Items = Fpsitms; - } - - /* Under Development - // TP_ALL - private void AddTPPage(ref PageStyles pgstyles) - { - // Procedure Steps - pgstyles.PgStyles[0].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[0].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[0].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[0].Items[2].Col = 465; //{PAGE} - pgstyles.PgStyles[0].Items[3].Col = 45; //{EOPNUM} - pgstyles.PgStyles[0].Items[4].Col = 249; //{PROCTITLE} - pgstyles.PgStyles[0].Items[5].Col = 471; //{REV} - pgstyles.PgStyles[0].Items[6].Col = -54; //{BOX1} - pgstyles.PgStyles[0].Items[6].Row = -13; //{BOX1} - pgstyles.PgStyles[0].Items[7].Col = 255; //{FINALPAGE} - - // cover page - pgstyles.PgStyles[1].Items[2].Row = 186; //{UnitText} - pgstyles.PgStyles[1].Items[3].Row = 330; //{EOPNUM} - pgstyles.PgStyles[1].Items[3].Col = 309; //{EOPNUM} - pgstyles.PgStyles[1].Items[4].Row = 576; //{COVERTITLE1} - pgstyles.PgStyles[1].Items[4].Col = 309; //{COVERTITEL1} - pgstyles.PgStyles[1].Items[5].Row = 594; //{COVERTITLE2} - pgstyles.PgStyles[1].Items[5].Col = 309; //{COVERTITEL2} - pgstyles.PgStyles[1].Items[6].Row = 636; //"Continuous Use" - pgstyles.PgStyles[1].Items[6].Col = 309; //"Continuous Use" - pgstyles.PgStyles[1].Items[7].Row = 660; //{Box6} - pgstyles.PgStyles[1].Items[7].Col = 57; //{Box6} - pgstyles.PgStyles[1].Items[8].Row = 672; //{PS-PROCTYPE} - pgstyles.PgStyles[1].Items[8].Col = 291; //{PS-PROCTYPE} - pgstyles.PgStyles[1].Items[9].Row = 696; //{PS-RESPDEPT} - pgstyles.PgStyles[1].Items[10].Row = 708; //{PS-RESPAPP} - - //unused - Purpose, Symptoms, Reference - pgstyles.PgStyles[2].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[2].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[2].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[2].Items[2].Col = 447; //{PAGE} - pgstyles.PgStyles[2].Items[3].Col = 33; //{EOPNUM} - pgstyles.PgStyles[2].Items[4].Col = 249; //{PROCTITLE} - pgstyles.PgStyles[2].Items[5].Col = 459; //{REV} - pgstyles.PgStyles[2].Items[6].Col = -54; //{BOX3} - pgstyles.PgStyles[2].Items[6].Row = -13; //{BOX3} - pgstyles.PgStyles[2].Items[7].Col = 243; //{FINALPAGE} - - // Single Column Attachments - pgstyles.PgStyles[3].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[3].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[3].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[3].Items[2].Col = 459; //{PAGE} - pgstyles.PgStyles[3].Items[3].Col = 39; //{EOPNUM} - pgstyles.PgStyles[3].Items[4].Col = 249; //{PROCTITLE} - pgstyles.PgStyles[3].Items[5].Col = 459; //{REV} - pgstyles.PgStyles[3].Items[6].Col = -54; //{BOX3} - pgstyles.PgStyles[3].Items[6].Row = -13; //{BOX3} - pgstyles.PgStyles[3].Items[7].Col = 255; //{SECTIONLEVELNUMBER} - pgstyles.PgStyles[3].Items[8].Col = 255; //{DOCCURPAGE} - pgstyles.PgStyles[3].Items[10].Col = 243; //{FINALPAGE} - - //Two Column Attachments - pgstyles.PgStyles[4].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[4].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[4].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[4].Items[2].Col = 459; //{PAGE} - pgstyles.PgStyles[4].Items[3].Col = 39; //{EOPNUM} - pgstyles.PgStyles[4].Items[4].Col = 249; //{PROCTITLE} - pgstyles.PgStyles[4].Items[5].Col = 459; //{REV} - pgstyles.PgStyles[4].Items[6].Col = -54; //{BOX1} - pgstyles.PgStyles[4].Items[6].Row = -13; //{BOX1} - pgstyles.PgStyles[4].Items[7].Col = 255; //{SECTIONLEVELNUMBER} - pgstyles.PgStyles[4].Items[8].Col = 255; //{DOCCURPAGE} - pgstyles.PgStyles[4].Items[10].Col = 243; //{FINALPAGE} - - //Ter Editor Attachments - pgstyles.PgStyles[5].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[5].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[5].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[5].Items[2].Col = 447; //{PAGE} - pgstyles.PgStyles[5].Items[3].Col = 33; //{EOPNUM} - pgstyles.PgStyles[5].Items[4].Col = 237; //{PROCTITLE} - pgstyles.PgStyles[5].Items[5].Col = 459; //{REV} - pgstyles.PgStyles[5].Items[6].Col = -54; //{BOX3} - pgstyles.PgStyles[5].Items[6].Row = -13; //{BOX3} - pgstyles.PgStyles[5].Items[7].Col = 237; //{SECTIONLEVELNUMBER} - pgstyles.PgStyles[5].Items[8].Col = 237; //{DOCCURPAGE} - pgstyles.PgStyles[5].Items[10].Col = 243; //{FINALPAGE} - - //Duplex Foldout Page - pgstyles.PgStyles[6].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[6].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[6].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[6].Items[2].Col = 465; //{PAGE} - pgstyles.PgStyles[6].Items[4].Col = 39; //{EOPNUM} - pgstyles.PgStyles[6].Items[5].Col = 471; //{REV} - pgstyles.PgStyles[6].Items[6].Col = -54; //{BOX3} - pgstyles.PgStyles[6].Items[6].Row = -13; //{BOX3} - - //Figures (Ter Editor) - pgstyles.PgStyles[7].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[7].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[7].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[7].Items[2].Col = 447; //{PAGE} - pgstyles.PgStyles[7].Items[3].Col = 27; //{EOPNUM} - pgstyles.PgStyles[7].Items[4].Col = 237; //{PROCTITLE} - pgstyles.PgStyles[7].Items[5].Col = 453; //{REV} - pgstyles.PgStyles[7].Items[6].Col = -54; //{BOX3} - pgstyles.PgStyles[7].Items[6].Row = -13; //{BOX3} - pgstyles.PgStyles[7].Items[7].Col = 243; //{SECTIONLEVELNUMBER} - pgstyles.PgStyles[7].Items[8].Col = 243; //{DOCCURPAGE} - pgstyles.PgStyles[7].Items[10].Col = 243; //{FINALPAGE} - } - - private void AddTP00Page(ref PageStyles pgstyles) - { - //Purpose, Symptoms, Reference - pgstyles.PgStyles[0].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[0].Items[1].Col = -66; // {HEADER1} - pgstyles.PgStyles[0].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[0].Items[2].Col = 447; //{PAGE} - pgstyles.PgStyles[0].Items[3].Col = 33; //{EOPNUM} - pgstyles.PgStyles[0].Items[4].Col = 249; //{PROCTITLE} - pgstyles.PgStyles[0].Items[5].Col = 459; //{REV} - pgstyles.PgStyles[0].Items[6].Col = -66; //{BOX3} - pgstyles.PgStyles[0].Items[6].Row = -13; //{BOX3} - - } - * */ - #region DocStyles - public void AddPlantSpecific(string genFileName, ref DocStyles dcstyles) - { - switch (genFileName.ToUpper()) - { - case "RGESAM1.DOC": - AddRGESam1DOC(ref dcstyles); - break; - case "RGESAM2.DOC": - AddRGESam2DOC(ref dcstyles); - break; - case "RGE.DOC": - AddRGEDOC(ref dcstyles); - break; - case "RGEBCK.DOC": - AddRGEBCKDOC(ref dcstyles); - break; - // in shearon harris format, the fonts were set to 0 in the 16bit docstyle. - // we want them to inherit from plant format, not use the Prestige Elite (font 0) - // from 16bit, so delete those nodes: - case "SHE.DOC": - AddSheDOC(ref dcstyles); - break; - case "SHESSD.DOC": - AddSHESSDDOC(ref dcstyles); - break; - case "CPLSSDD.DOC": - AddCPLSSDDDoc(ref dcstyles); - break; - // in Wolf Creek single column, the Table Of Contents document style was not included in the - // count of pages for the automatic Table Of Contents. This page should be counted in the - // page count when doing the automatic ToC so that page numbers in Toc Match page numbers - // in the document: - case "WCN1.DOC": - AddWCN1Doc(ref dcstyles); - break; - case "WCN2.DOC": - AddWCN2Doc(ref dcstyles); - break; - case "WCNBCK.DOC": - AddWCNBCKDoc(ref dcstyles); - break; - // Adjusted the left margin to better align the procedure text - case "NSP.DOC": - AddNSPDOC(ref dcstyles); - break; - case "NSP.Y00": - AddNSP00DOC(ref dcstyles); - break; - // Adjusted the left margin to better align the procedure text - case "NSPBCK.DOC": - AddNSPBckDOC(ref dcstyles); - break; - case "NSPAB.DOC": - AddNSPABDOC(ref dcstyles); - break; - case "NSPAB.Y00": - AddNSPAB_00DOC(ref dcstyles); - break; - case "NSPAB.Y01": - AddNSPAB_01DOC(ref dcstyles); - break; - case "NSPAB.Y02": - AddNSPAB_02DOC(ref dcstyles); - break; - case "NSPDEV.DOC": - AddNSPDEVDOC(ref dcstyles); - break; - case "NSPIFG.DOC": - case "NSPIFG2.DOC": - AddNSPIFGDOC(ref dcstyles); - break; - case "NSPIFG.Y00": - AddNSPARP_00DOC(ref dcstyles); - break; - case "NSPARP.DOC": - AddNSPARPDOC(ref dcstyles); - break; - case "NSPARP.Y00": - AddNSPARP_00DOC(ref dcstyles); - break; - case "NSPSAM.DOC": - AddNSPSAMDOC(ref dcstyles); - break; - case "IP2.DOC": - AddIp2DOC(ref dcstyles); - break; - case "VCSDEV.DOC": - AddVCSDEVDOC(ref dcstyles); - break; - case "SUM.DOC": - AddSUMDOC(ref dcstyles); - break; - case "IP2.Y02": - AddIP202DOC(ref dcstyles); - break; - case "IP3.Y15": - AddIP315DOC(ref dcstyles); - break; - case "CAL2.DOC": - AddCAL2DOC(ref dcstyles); - break; - case "CALOTO.DOC": - case "CAL2.Y00": - AddCAL2RestDOC(ref dcstyles); - break; - case "CALBCK.DOC": - AddCALBCKDOC(ref dcstyles); - break; - case "CPL.DOC": - AddCPLDOC(ref dcstyles); - break; - case "CPL.Y00": - AddCPL_Y00(ref dcstyles); - break; - case "CPL.Y01": - AddCPL_Y01(ref dcstyles); - break; - case "CPL.Y02": - AddCPL_Y02(ref dcstyles); - break; - case "CPL.Y03": - AddCPL_Y03(ref dcstyles); - break; - case "CPLA.DOC": - AddCPLA(ref dcstyles); - break; - case "CPLRDEV.DOC": - AddCPLRDEV(ref dcstyles); - break; - case "CPBCK.DOC": - AddCPBCK(ref dcstyles); - break; - case "CPBCK.Y00": - AddCPBCK_Y00(ref dcstyles); - break; - case "CPBCK.Y01": - AddCPBCK_Y01(ref dcstyles); - break; - case "CPBCK2.DOC": - AddCPBCK2(ref dcstyles); - break; - case "TUEC.DOC": - AddTUCEDOC(ref dcstyles); - break; - case "FNP.DOC": - AddFNPDOC(ref dcstyles); - break; - case "FNP.Y00": - case "FNP.Y01": - AddFNP_Y0x(ref dcstyles); - break; - case "FNPCAS.DOC": - AddFNPCASDOC(ref dcstyles); - break; - case "CAT.DOC": - case "CATBOX.DOC": - AddCATDOC(ref dcstyles); - break; - case "MCG.DOC": - case "MCGBOX.DOC": - AddMCGDOC(ref dcstyles); - break; - case "EXCLN.Y00": - AddEXCLN00Doc(ref dcstyles); - CWEDocFixCB(ref dcstyles); - break; - case "EXCLN.Y01": - CWEDocFixCB(ref dcstyles); - break; - case "EXCLN.DOC": - CWEDocFixCB(ref dcstyles); - break; - case "CWE.DOC": - AddCWEDoc(ref dcstyles); - CWEDocFixCB(ref dcstyles); - break; - case "CWE.Y00": - CWEDocFixCB(ref dcstyles); - break; - case "EXEDEV.DOC": - AddEXEDEVDoc(ref dcstyles); - break; - case "WEP2.DOC": - AddWEP2DOC(ref dcstyles); - break; - case "WPB.Y20": - AddWPB20DOC(ref dcstyles); - break; - case "WPB.Y22": - AddWPB20DOC(ref dcstyles); // subformat 22 change is same as 20 - break; - case "WEPENB.DOC": - AddWEPENBDOC(ref dcstyles); - break; - case "WEPENB.Y00": - AddWEPENB_00DOC(ref dcstyles); - break; - case "BGEEOP.DOC": - AddBGEEOPDOC(ref dcstyles); - break; - case "BGEEOP.Y00": - AddBGEEOPDOC_Y00(ref dcstyles); - break; - case "BGEALN.DOC": - AddBGEALNDOC(ref dcstyles); - break; - } - } - private void AddFNPCASDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].TopMargin = 78; - dcstyles.DcStyles[0].PageLength = 672; - dcstyles.DcStyles[0].PageWidth = 560; - } - private void AddFNPDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[5].ComponentList = true; - dcstyles.DcStyles[5].TopMargin = 144; - dcstyles.DcStyles[0].CBNoOverrideSpace = true; - dcstyles.DcStyles[1].CBNoOverrideSpace = true; - dcstyles.DcStyles[3].CBNoOverrideSpace = true; - dcstyles.DcStyles[4].CBNoOverrideSpace = true; - dcstyles.DcStyles[7].CBNoOverrideSpace = true; - } - private void AddFNP_Y0x(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].CBNoOverrideSpace = true; - dcstyles.DcStyles[1].ComponentList = true; - dcstyles.DcStyles[1].TopMargin = 144; - } - private void AddCALBCKDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].PageWidth = 560; - dcstyles.DcStyles[0].ContTop = ""; - } - private void AddCAL2RestDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[1].PageLength = 672; - } - private void AddCAL2DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[1].PageLength = 672; - dcstyles.DcStyles[5].ExtraLineHeader = true; - } - private void AddIP315DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].ContBottom = "(STEP %0d CONTINUED ON NEXT PAGE)"; - } - private void AddIP202DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].LeftMargin = 12; - dcstyles.DcStyles[1].LeftMargin = 12; - } - - private void AddIp2DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].ContTop = ""; - } - private void AddCPLSSDDDoc(ref DocStyles dcstyles) - { - dcstyles.DcStyles[2].PageWidth = 576; - } - private void AddSHESSDDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].CTMargin = 0; - dcstyles.DcStyles[0].ContTop = ""; - dcstyles.DcStyles[0].PageLength = 618; - dcstyles.DcStyles[5].CTMargin = 0; - dcstyles.DcStyles[5].ContTop = ""; - } - - private void AddSheDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].ContTopHLS = 0; - dcstyles.DcStyles[0].CTMargin = 24; - dcstyles.DcStyles[0].ContTop = "Step %d (Continued)"; - dcstyles.DcStyles[0].UseCheckOffs = false; - dcstyles.DcStyles[1].UseCheckOffs = false; - // fonts (dstyle) in DocStyles that had a '0' in the 16bit format file (she.doc), should - // inherit from the plant level in 32 bit rather than use Prestige Elite (0 -> Prestige Elite) - dcstyles.DcStyles[1].dstyle = null; - dcstyles.DcStyles[2].dstyle = null; - dcstyles.DcStyles[3].dstyle = null; - dcstyles.DcStyles[4].dstyle = null; - dcstyles.DcStyles[5].dstyle = null; - dcstyles.DcStyles[6].dstyle = null; - dcstyles.DcStyles[7].dstyle = null; - dcstyles.DcStyles[8].dstyle = null; - dcstyles.DcStyles[1].PageLength = 592; - - //adding new single column docstyle for purpose and symptoms - Array.Resize(ref dcstyles.DcStyles, dcstyles.DcStyles.Length + 1); - dcstyles.DcStyles[9].Name = "Purpose/Symptom"; - dcstyles.DcStyles[9].Index = 9; - dcstyles.DcStyles[9].pagestyle = 9; - dcstyles.DcStyles[9].CancelSectTitle = false; - dcstyles.DcStyles[9].FooterLen = 12F; - dcstyles.DcStyles[9].IsStepSection = true; - dcstyles.DcStyles[9].LeftMargin = 102; - dcstyles.DcStyles[9].numberingsequence = 1; - dcstyles.DcStyles[9].PageLength = 636; - dcstyles.DcStyles[9].PageWidth = 547.2F; - dcstyles.DcStyles[9].ShowSectionTitles = true; - dcstyles.DcStyles[9].SpecialStepsFoldout = false; - dcstyles.DcStyles[9].TopMargin = 108F; - dcstyles.DcStyles[9].UseCheckOffs = false; - dcstyles.DcStyles[9].dstyle = new VE_Font(); - dcstyles.DcStyles[9].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[9].dstyle.FontSize = "11"; - dcstyles.DcStyles[9].dstyle.FontStyle = "None"; - dcstyles.DcStyles[9].dstyle.CPI = "12"; - } - - public void AddRGESam1DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[4].numberingsequence = 1; // count this section with total document page count - } - - public void AddRGESam2DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[2].numberingsequence = 1; // count this section with total document page count - } - public void AddRGEDOC(ref DocStyles dcstyles) - { - // Introduction pages - dcstyles.DcStyles[1].PageWidth = 591; // needed to increase to match 16-bit word wrapping - // Attachment Pages - dcstyles.DcStyles[2].PageWidth = 601; // needed to increase to match 16-bit word wrapping - } - public void AddRGEBCKDOC(ref DocStyles dcstyles) - { - // Revision Page / Table of Contents - dcstyles.DcStyles[2].TopMargin = 55; - // Revision Page / Table of Contents (after first page) - dcstyles.DcStyles[3].TopMargin = 91; - // Introduction Pages - dcstyles.DcStyles[4].PageWidth = 578; - } - - #endregion - } - public partial class RtfToSvg - { - public void AppendPlantSpecific(string genFileName, XmlDocument myDoc) - { - string genName = genFileName.Substring(genFileName.LastIndexOf('\\') + 1); - genName = genName.Substring(0, genName.IndexOf('.')); - switch (genName.ToUpper()) - { - case "WCN2": - case "WCN1": // same cover page box as wcn2 - case "WCNBCK": // same cover page box as wcn2 - case "WCNOFB": // same cover page box as wcn2 - AddWCN2(myDoc); - break; - case "NSP": - AddNSP(myDoc); - break; - case "NSPDEV": - AddNSPDEV(myDoc); - break; - case "NSPARP": - AddNSPARP(myDoc); - break; - case "NSPAB": - AddNSPAB(myDoc); - break; - case "NSPIFG": - AddNSPIFG(myDoc); - break; - case "NSPSAM": - AddNSPSAM(myDoc); - break; - case "IP2": - AddIP2(myDoc); - break; - case "FNP": - AddFNP(myDoc); - break; - case "CAL2": - AddCAL2(myDoc); - break; - case "CALOTO": - AddCALOTO(myDoc); - break; - case "TUEC": - AddTUEC(myDoc); - break; - case "CPL": - AddCPL(myDoc); - break; - case "CPLA": - AddCPLA(myDoc); - break; - case "CPLRDEV": - AddCPLRDEV(myDoc); - break; - case "CWE": - AddCWE(myDoc); - break; - case "EXCLN": - AddEXCLN(myDoc); - break; - case "SUM": - AddSUM(myDoc); - break; - case "WEP2": - AddWEP2(myDoc); - break; - case "WEPENB": - AddWEPENB(myDoc); - break; - } - } - - private void AddCALOTO(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "__" + - "__" + - "#" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - } - - private void AddCAL2(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "__" + - "__" + - "#" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - - xdNew.LoadXml(" " + - "" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[1]); - } - - private void AddFNP(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - } - - private void AddIP2(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "\r\n" + - "*\r\n" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - } - - } -} diff --git a/PROMS/fmtxml/AppendPlantSpecific.cs.bak b/PROMS/fmtxml/AppendPlantSpecific.cs.bak deleted file mode 100644 index e7ef0d37..00000000 --- a/PROMS/fmtxml/AppendPlantSpecific.cs.bak +++ /dev/null @@ -1,4421 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - public void AddPlantSpecificOverrideInheritance(string genFileName, ref FormatData fmtdata) - { - string genName = genFileName.Substring(genFileName.LastIndexOf('\\') + 1); - //genName = genName.Substring(0, genName.IndexOf('.')); - switch (genName.ToUpper()) - { - case "SUM.FMT": - AddSUMOverridefmt(ref fmtdata); - break; - case "NSPAB.X01": - AddNSPAB_X01(ref fmtdata); - break; - case "TUEC.FMT": - AddTuecfmtOVR(ref fmtdata); - break; - } - } - - public void AddPlantSpecific(string genFileName, ref FormatData fmtdata) - { - string genName = genFileName.Substring(genFileName.LastIndexOf('\\') + 1); - //genName = genName.Substring(0, genName.IndexOf('.')); - switch (genName.ToUpper()) - { - case "TP.FMT": - AddTPFmt(ref fmtdata); - break; - case "RGE.FMT": - AddRGEFmt(ref fmtdata); - break; - case "RGESAM1.FMT": - case "RGESAM2.FMT": - case "RGESMPE.FMT": - AddRGESAMGFmt(ref fmtdata); - break; - case "RGEBCK.FMT": - AddRGEBCKFmt(ref fmtdata); - break; - case "RGEBCK.X00": - AddRGEBCKX00(ref fmtdata); - break; - case "RGEDEV.FMT": - AddRGEDEVFmt(ref fmtdata); - break; - case "WCN2.FMT": - AddWCN2Fmt(ref fmtdata); - break; - case "WCNCKL.FMT": - AddWCNCKLFmt(ref fmtdata); - break; - case "NSP.FMT": - AddNSPFMT(ref fmtdata); - break; - case "NSPAB.FMT": - case "NSPAB.X00": - case "NSPAB.X01": - case "NSPAB.X02": - AddNSPABFMT(ref fmtdata); - break; - case "NSP.X00": - AddNSP00FMT(ref fmtdata); - break; - case "NSPBCK.FMT": - AddNSPBCKFMT(ref fmtdata); - break; - case "NSPARP.FMT": - case "NSPARP.X00": - AddNSPARPfmt(ref fmtdata); - break; - case "NSPDEV.FMT": - AddNSPDEVFMT(ref fmtdata); - break; - case "NSPIFG.FMT": - case "NSPIFG2.FMT": - case "NSPIFG.X00": - AddNSPIFGFMT(ref fmtdata); - break; - case "NSPSAM.FMT": - AddNSPSAMFMT(ref fmtdata); - break; - case "SHE.FMT": - AddSHEfmt(ref fmtdata); - break; - case "SHESSD.FMT": - AddSHESSDfmt(ref fmtdata); - break; - case "CPLSSDD.FMT": - AddCPLSSDDfmt(ref fmtdata); - break; - case "IP3.X15": - AddIP3_15fmt(ref fmtdata); - break; - case "IP3.FMT": - AddIP3fmt(ref fmtdata); - break; - case "IP2.FMT": - AddIP2fmt(ref fmtdata); - break; - case "SUM.FMT": - AddSUMfmt(ref fmtdata); - break; - case "VCSDEV.FMT": - AddVCSDEVfmt(ref fmtdata); - break; - case "CAL2.FMT": - case "CALOTO.FMT": - AddCAL2fmt(ref fmtdata); - break; - case "CALBCK.FMT": - AddCALBCKfmt(ref fmtdata); - break; - case "FNP.FMT": - AddFNPfmt(ref fmtdata); - break; - case "FNP.X00": - case "FNP.X01": - AddFNP_X0x(ref fmtdata); - break; - case "FNPCAS.FMT": - AddFNPCASfmt(ref fmtdata); - break; - case "CPL.FMT": - AddCPLfmt(ref fmtdata); - break; - case "CPL.X00": - AddCPL_X00(ref fmtdata); - break; - case "CPL.X01": - AddCPL_X01(ref fmtdata); - break; - case "CPL.X02": - AddCPL_X02(ref fmtdata); - break; - case "CPL.X03": - AddCPL_X03(ref fmtdata); - break; - case "CPLRDEV.FMT": - AddCPLRDev(ref fmtdata); - break; - case "CPLA.FMT": - AddCPLA(ref fmtdata); - break; - case "CPBCK.FMT": - AddCPBCK(ref fmtdata); - break; - case "CPBCK.X00": - AddCPBCK_X00(ref fmtdata); - break; - case "CPBCK.X01": - AddCPBCK_X01(ref fmtdata); - break; - case "CPBCK2.FMT": - AddCPBCK2(ref fmtdata); - break; - case "TUEC.FMT": - AddTuecfmt(ref fmtdata); - break; - case "TUECDEV.FMT": - AddTuecDevfmt(ref fmtdata); - break; - case "MCG.FMT": - case "MCGBOX.FMT": - AddMCGfmt(ref fmtdata); - break; - case "CAT.FMT": - case "CATBOX.FMT": - AddCATfmt(ref fmtdata); - break; - case "CATADEV.FMT": - AddCATADEVfmt(ref fmtdata); - break; - case "CWE.FMT": - AddCWEfmt(ref fmtdata); - break; - case "CWE.X00": - AddCWE00fmt(ref fmtdata); - break; - case "EXCLN.FMT": - AddEXCLNfmt(ref fmtdata); - break; - case "EXCLN.X00": - AddEXCLN00fmt(ref fmtdata); - break; - } - } - - private void AddCALBCKfmt(ref FormatData fmtdata) - { - fmtdata.StepData[42].ReadOnly = "True"; - fmtdata.StepData[43].ReadOnly = "True"; - fmtdata.StepData[43].ChildIndent = "14.4"; // 2 characters at 10 cpi - fmtdata.StepData[2].TabData.IdentAltPrint = @"\ul EOP STEP:\ulnone \STEP: "; - fmtdata.StepData[2].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[6].TabData.IdentAltPrint = @"\ul EOP STEP:\ulnone \STEP: "; - fmtdata.StepData[6].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[7].TabData.IdentAltPrint = @"\ul EOP STEP:\ulnone \STEP: "; - fmtdata.StepData[7].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[6].WidthOverride = "490"; - fmtdata.StepData[7].WidthOverride = "490"; - fmtdata.StepData[24].WidthOverride = "490"; - fmtdata.StepData[2].UseOldTemplate = "True"; - fmtdata.StepData[6].UseOldTemplate = "True"; - fmtdata.StepData[7].UseOldTemplate = "True"; - fmtdata.StepData[9].UseOldTemplate = "True"; - fmtdata.StepData[40].StepLayoutData.AlignWithParentTab = "True"; - } - private void AddFNPfmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "445,186,120"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "420,186,120"; - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = "0,186"; - fmtdata.SectData.StepSectionData.StpSectLayData.ColRTable = "0,198,138"; - fmtdata.SectData.StepSectionData.SequentialTabFormat[2].TabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[2].PrintTabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[3].TabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[3].PrintTabFormat = "#1#{seq} "; - fmtdata.StepData[6].OneLineBeforeTab = "True"; - fmtdata.StepData[7].OneLineBeforeTab = "True"; - fmtdata.StepData[41].TabData.Ident = "{ROMAN}. "; - fmtdata.StepData[41].TabData.RNOIdent = "{ROMAN}. "; - fmtdata.BoxData[1].End = 500; - fmtdata.BoxData[2].Start = -15; - fmtdata.BoxData[2].End = 505; - fmtdata.StepData[40].AdjHighLevelTab = "60"; - fmtdata.StepData[41].AlignHLSTabWithSectOvride = "True"; - fmtdata.StepData[42].ReadOnly = "True"; - fmtdata.StepData[43].ReadOnly = "True"; - fmtdata.StepData[9].UseOldTemplate = "True"; - } - private void AddFNP_X0x(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.SequentialTabFormat[2].TabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[2].PrintTabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[3].TabFormat = "#1#{seq} "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[3].PrintTabFormat = "#1#{seq} "; - - fmtdata.PrintData.DoRevDate = "True"; - fmtdata.PrintData.RevDateWithForwardSlash = "False"; - } - private void AddFNPCASfmt(ref FormatData fmtdata) - { - fmtdata.PrintData.DoRevDate = "True"; - fmtdata.PrintData.RevDateWithForwardSlash = "False"; - } - private void AddCAL2fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.SeparatorLocation = 10; - fmtdata.StepData[9].TabData.Ident = " {!C0}{Section Prefix}{numeric}. "; - fmtdata.StepData[9].TabData.RNOIdent = " {!C0}{Section Prefix}. "; - fmtdata.StepData[9].TabData.MacroList[0].LocWithXOff = "True"; - fmtdata.TransData.TransTypeData[5].TransFormat = "{Sect Num}, {Sect Title}, Step {First Step}"; - fmtdata.TransData.TransTypeData[5].TransMenu = "{Sect Num}, {Sect Title}, Step {First Step}"; - } - - private void AddIP3fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectPrtData.RNOSepLineLength = 186; - fmtdata.SectData.StepSectionData.StpSectPrtData.RNOSepString = null; - fmtdata.StepData[9].Suffix = "{ulnone} *"; - } - - private void AddIP2fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.IndentToken = 0; - fmtdata.StepData[9].TabData.Ident = "{!C0}{numeric}. "; - fmtdata.StepData[9].TabData.RNOIdent = "{!C0}. "; - } - - private void AddWCNCKLFmt(ref FormatData fmtdata) - { - fmtdata.BoxData[3].End = 518; - fmtdata.BoxData[4].End = 518; - fmtdata.StepData[30].StepLayoutData.AlignWithParentTab = "True"; - fmtdata.StepData[2].StepPrintData.Justify = "Center"; - fmtdata.StepData[9].StepPrintData.Justify = "Center"; - } - - private void AddTPFmt(ref FormatData fmtdata) - { - /* Under development - fmtdata.SectData.StepSectionData.StpSectLayData.TableCenterPos = "146,0,0"; - * */ - // When a plant does not have the TextSubFollowsTextStyle, the 16bit code was adding two characters - // before the tab if the parent of this step is a Caution or Note. But the two characters was related - // to the spaces on the parents tab. The code was very hard to follow. This format variable was - // introduced to allow setting of the number of spaces before the tab. - fmtdata.StepData[1].CautionOrNoteSubstepIndent = "2"; - } - private void AddRGEFmt(ref FormatData fmtdata) - { - // RGE is now call CEG - fmtdata.Name = "CEG Ginna EOP/AOP Format"; - RGEcommonAdjustments(ref fmtdata); - } - private void AddRGESAMGFmt(ref FormatData fmtdata) - { - RGEcommonAdjustments(ref fmtdata); - } - private void RGEcommonAdjustments(ref FormatData fmtdata) - { - // The RGE formats had a PrintPosAdjust in 16 bit on the High, Immediate, LossocAC & continuous step - // types with a value of -1 (move back one character). However, on the printed output, it printed - // as about a 1/4 of a character. This value will be set in the 32bit format file to a -2.4 in - // these step types. - fmtdata.StepData[2].StepPrintData.PosAdjust = "-2.4"; - fmtdata.StepData[3].StepPrintData.PosAdjust = "-2.4"; - fmtdata.StepData[9].StepPrintData.PosAdjust = "-2.4"; - fmtdata.StepData[18].StepPrintData.PosAdjust = "-2.4"; - // The RGE formats tabs for HLS were printing one character over to the left in 32 bit, except for - // immediate (index = 3). Adjust format tab data to make it match 16bit. - fmtdata.StepData[2].TabData.Ident = " {numeric} "; - fmtdata.StepData[2].TabData.IdentEdit = " {numeric} "; - fmtdata.StepData[2].TabData.RNOIdentEdit = ""; - fmtdata.StepData[2].TabData.RNOIdent = ""; - //fmtdata.StepData[2].TabData.IdentEditWid=""; - //fmtdata.StepData[2].TabData.IdentWid="18"; - //fmtdata.StepData[2].TabData.RNOIdentEditWid="18"; - //fmtdata.StepData[2].TabData.RNOIdentWid = "18"; - fmtdata.StepData[9].TabData.IdentEdit = "*{numeric} "; - fmtdata.StepData[9].TabData.Ident = "*{numeric} "; - fmtdata.StepData[9].TabData.RNOIdentEdit = "* "; - fmtdata.StepData[9].TabData.RNOIdent = "* "; - - // the following change was made because the code that supports the TStepNoFlag was not - // written when Ginna was delivered and the difference in the transition text for ranges - // did not match the 16bit but was not caught in compares. As per Paul Linn on 6/18/13 - // keep the transition text the same as for the delivery, which means that TStepNoFlag - // should be = true (the default). - fmtdata.TransData.TStepNoFlag = "True"; - } - private void AddRGEDEVFmt(ref FormatData fmtdata) - { - // RGE is now call CEG - fmtdata.Name = "CEG Ginna Deviation Format"; - fmtdata.TransData.TStepNoFlag = "True"; // see comment in RgeCommonAdjustments - } - private void AddRGEBCKFmt(ref FormatData fmtdata) - { - // RGE is now call CEG //\u160? - fmtdata.Name = "CEG Ginna Background Format"; - fmtdata.TPL = "0 0 title\r\n1 1 \r\n2 41 PURPOSE: \r\n2 42 BASIS:\r\n2 42 SUPPLEMENTAL INFORMATION:\r\n2 42 DEVIATION/JUSTIFICATION:\r\n2 42 REFERENCES:\r\n1 39 \xA0\r\n0 0 title\r\n1 5 \r\n2 41 PURPOSE: \r\n2 42 BASIS:\r\n2 42 SUPPLEMENTAL INFORMATION:\r\n2 42 DEVIATION/JUSTIFICATION:\r\n2 42 REFERENCES:\r\n1 39 \xA0\r\n0 0 title\r\n1 6 \r\n2 41 PURPOSE: \r\n2 42 BASIS:\r\n2 42 SUPPLEMENTAL INFORMATION:\r\n2 42 DEVIATION/JUSTIFICATION:\r\n2 42 REFERENCES:\r\n1 39 \xA0\r\n"; - // High - fmtdata.StepData[2].ColOverride = "66"; - fmtdata.StepData[2].UseOldTemplate = "True"; - // Imediate - fmtdata.StepData[3].ColOverride = "66"; - // Continuous - fmtdata.StepData[9].ColOverride = "66"; - // Loss of AC - fmtdata.StepData[18].ColOverride = "66"; - // High 5 - fmtdata.StepData[41].ColOverride = "66"; - // And - fmtdata.StepData[4].StepLayoutData.STExtraSpace = "0"; - // Explicate And - fmtdata.StepData[45].StepLayoutData.STExtraSpace = "0"; - // ContAcAnd - fmtdata.StepData[19].StepLayoutData.STExtraSpace = "0"; - // OR - fmtdata.StepData[5].StepLayoutData.STExtraSpace = "0"; - // Implicate OR - fmtdata.StepData[35].StepLayoutData.STExtraSpace = "0"; - // ContAcOR - fmtdata.StepData[46].StepLayoutData.STExtraSpace = "0"; - // Caution - fmtdata.StepData[6].UseOldTemplate = "True"; - //Note - fmtdata.StepData[7].UseOldTemplate = "True"; - // Paragraph - fmtdata.StepData[24].StepLayoutData.STExtraSpace = "0"; - // RNO - fmtdata.StepData[40].StepLayoutData.AlignWithParentTab = "True"; - fmtdata.StepData[40].ColOverride = "66"; - // TitleWithTextRight - fmtdata.StepData[42].ReadOnly = "True"; - fmtdata.StepData[42].ColOverride = "66"; - fmtdata.StepData[42].StepLayoutData.STExtraSpace = "0"; - // TitleWithTextBelow - fmtdata.StepData[43].ReadOnly = "True"; - fmtdata.StepData[43].ColOverride = "66"; - fmtdata.StepData[43].WidthOverride = "468"; - fmtdata.StepData[43].StepLayoutData.STExtraSpace = "0"; - } - private void AddRGEBCKX00(ref FormatData fmtdata) - { - // RGE is now call CEG - fmtdata.Name = "CEG Ginna Background Subformat"; - fmtdata.TransData.TStepNoFlag = "True"; // see comment in RgeCommonAdjustments - } - private void AddWCN2Fmt(ref FormatData fmtdata) - { - // the WCN2 tab for continuous HLS type had only 1 space after the period ('.'). The other - // tabs had two spaces. This tab type also uses the C0 macro to draw the lines above/below - // the number. Because it only had 1 space, the tab and lines were not matching the - // 16bit output. A space is added here to make the continuous HLS type match the number - // of spaces as other HLS tabs, and to make the printed output match that of 16bit. - fmtdata.StepData[9].TabData.Ident = fmtdata.StepData[9].TabData.Ident + " "; - fmtdata.StepData[9].TabData.IdentEdit = fmtdata.StepData[9].TabData.IdentEdit + " "; - fmtdata.StepData[9].TabData.RNOIdent = fmtdata.StepData[9].TabData.RNOIdent + " "; - fmtdata.StepData[9].TabData.RNOIdentEdit = fmtdata.StepData[9].TabData.RNOIdentEdit + " "; - } - private void AddNSPFMT(ref FormatData fmtdata) - { - NSP_ArialFontInProcedures(ref fmtdata); - // checkoffs - fmtdata.ProcData.CheckOffData.CheckOffList[7].Index = 7; - fmtdata.ProcData.CheckOffData.CheckOffList[7].UIMark = 83; - fmtdata.ProcData.CheckOffData.CheckOffList[7].MenuItem = "S"; - fmtdata.ProcData.CheckOffData.CheckOffList[7].Macro = "C7"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Index = 8; - fmtdata.ProcData.CheckOffData.CheckOffList[8].UIMark = 88; - fmtdata.ProcData.CheckOffData.CheckOffList[8].MenuItem = "X"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Macro = "C8"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Index = 9; - fmtdata.ProcData.CheckOffData.CheckOffList[9].UIMark = 67; - fmtdata.ProcData.CheckOffData.CheckOffList[9].MenuItem = "C"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Macro = "C9"; - // Standard High Level step - fmtdata.StepData[2].Font.FontStyle = "Bold"; - // Caution - fmtdata.StepData[6].StepLayoutData.STBoxindex = null; - fmtdata.StepData[6].WidthOverride = "333"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note - fmtdata.StepData[7].TabData.Ident = "Note "; - fmtdata.StepData[7].TabData.RNOIdent = "Note "; - fmtdata.StepData[7].StepLayoutData.STBoxindex = null; - fmtdata.StepData[7].WidthOverride = "333"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - } - private void NSP_ArialFontInProcedures(ref FormatData fmtdata) - { - // Set the overall font to Arial 11 pt - fmtdata.FontData.FontFamily = "Arial"; - fmtdata.FontData.FontSize = "11"; - fmtdata.FontData.CPI = "10"; - - fmtdata.SectData.SectionNumber.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionNumber.Font.FontSize = "11"; - fmtdata.SectData.SectionHeader.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionHeader.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle.FontSize = "11"; - //// Step Type Base - fmtdata.StepData[0].Font.FontFamily = "Arial"; - fmtdata.StepData[0].Font.FontSize = "11"; - fmtdata.StepData[0].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[0].TabData.Font.FontSize = "11"; - - // Substep - //fmtdata.StepData[1].Font.FontFamily = "Arial"; - //fmtdata.StepData[1].Font.FontSize = "11"; - fmtdata.StepData[1].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[1].TabData.Font.FontSize = "11"; - - // Standard High Level step - fmtdata.StepData[2].Font.FontFamily = "Arial"; - fmtdata.StepData[2].Font.FontSize = "11"; - fmtdata.StepData[2].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[2].TabData.Font.FontSize = "11"; - - // Immediate - fmtdata.StepData[3].Font.FontFamily = "Arial"; - fmtdata.StepData[3].Font.FontSize = "11"; - fmtdata.StepData[3].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[3].TabData.Font.FontSize = "11"; - - // And - fmtdata.StepData[4].Font.FontFamily = "Arial"; - fmtdata.StepData[4].Font.FontSize = "11"; - fmtdata.StepData[4].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[4].TabData.Font.FontSize = "11"; - - // OR - fmtdata.StepData[5].Font.FontFamily = "Arial"; - fmtdata.StepData[5].Font.FontSize = "11"; - fmtdata.StepData[5].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[5].TabData.Font.FontSize = "11"; - - // Cautions use Arial Font for Tab (instead of Script) and - // any bullets following the tab are at a different point size - fmtdata.StepData[6].Font.FontFamily = "Arial"; - fmtdata.StepData[6].Font.FontSize = "11"; - fmtdata.StepData[6].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[6].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[6].TabData.Font.FontSize = "18"; - fmtdata.StepData[6].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[6].TabData.Font.CPI = "8"; - fmtdata.StepData[6].TabData.Bullet.Separate = "True"; - fmtdata.StepData[6].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[6].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[6].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[6].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[6].WidthOverride = "421"; - fmtdata.StepData[6].ColOverride = "194"; - - ////fmtdata.StepData[20] = fmtdata.StepData[6]; - ////fmtdata.StepData[20].Type = "Caution1"; - ////fmtdata.StepData[20].ParentType = "Caution"; - fmtdata.StepData[20].Font.FontFamily = "Arial"; - fmtdata.StepData[20].Font.FontSize = "11"; - fmtdata.StepData[20].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[20].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[20].TabData.Font.FontSize = "18"; - fmtdata.StepData[20].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[20].TabData.Font.CPI = "8"; - fmtdata.StepData[20].TabData.Bullet.Separate = "True"; - fmtdata.StepData[20].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[20].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[20].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[20].TabData.Bullet.Font.FontStyle = "Bold"; - - ////fmtdata.StepData[21] = fmtdata.StepData[6]; - ////fmtdata.StepData[21].Type = "Caution2"; - ////fmtdata.StepData[21].ParentType = "Caution"; - fmtdata.StepData[21].Font.FontFamily = "Arial"; - fmtdata.StepData[21].Font.FontSize = "11"; - fmtdata.StepData[21].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[21].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[21].TabData.Font.FontSize = "18"; - fmtdata.StepData[21].TabData.Font.CPI = "8"; - fmtdata.StepData[21].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[21].TabData.Bullet.Separate = "True"; - fmtdata.StepData[21].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[21].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[21].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[21].TabData.Bullet.Font.FontStyle = "Bold"; - - ////fmtdata.StepData[27] = fmtdata.StepData[6]; - ////fmtdata.StepData[27].Type = "Caution3"; - ////fmtdata.StepData[27].ParentType = "Caution"; - fmtdata.StepData[27].Font.FontFamily = "Arial"; - fmtdata.StepData[27].Font.FontSize = "11"; - fmtdata.StepData[27].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[27].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[27].TabData.Font.FontSize = "18"; - fmtdata.StepData[27].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[27].TabData.Font.CPI = "8"; - fmtdata.StepData[27].TabData.Bullet.Separate = "True"; - fmtdata.StepData[27].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[27].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[27].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[27].TabData.Bullet.Font.FontStyle = "Bold"; - - ////fmtdata.StepData[29] = fmtdata.StepData[6]; - ////fmtdata.StepData[29].Type = "Caution4"; - ////fmtdata.StepData[29].ParentType = "Caution"; - fmtdata.StepData[29].Font.FontFamily = "Arial"; - fmtdata.StepData[29].Font.FontSize = "11"; - fmtdata.StepData[29].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[29].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[29].TabData.Font.FontSize = "18"; - fmtdata.StepData[29].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[29].TabData.Font.CPI = "8"; - fmtdata.StepData[29].TabData.Bullet.Separate = "True"; - fmtdata.StepData[29].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[29].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[29].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[29].TabData.Bullet.Font.FontStyle = "Bold"; - - // Notes used Arial font and any bullets following the tab are at - // a different point size - fmtdata.StepData[7].Font.FontFamily = "Arial"; - fmtdata.StepData[7].Font.FontSize = "11"; - fmtdata.StepData[7].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[7].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[7].TabData.Font.FontSize = "14"; - fmtdata.StepData[7].TabData.Font.CPI = "8"; - fmtdata.StepData[7].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[7].TabData.Bullet.Separate = "True"; - fmtdata.StepData[7].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[7].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[7].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[7].TabData.Bullet.Font.FontStyle = "Bold"; - fmtdata.StepData[7].WidthOverride = "401"; - - ////fmtdata.StepData[22] = fmtdata.StepData[7]; - ////fmtdata.StepData[22].Type = "Note1"; - ////fmtdata.StepData[22].ParentType = "Note"; - fmtdata.StepData[22].Font.FontFamily = "Arial"; - fmtdata.StepData[22].Font.FontSize = "11"; - fmtdata.StepData[22].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[22].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[22].TabData.Font.FontSize = "14"; - fmtdata.StepData[22].TabData.Font.CPI = "8"; - fmtdata.StepData[22].TabData.Font.FontStyle = "Italics, Bold"; - - ////fmtdata.StepData[23] = fmtdata.StepData[7]; - ////fmtdata.StepData[23].Type = "Note2"; - ////fmtdata.StepData[23].ParentType = "Note"; - fmtdata.StepData[23].Font.FontFamily = "Arial"; - fmtdata.StepData[23].Font.FontSize = "11"; - fmtdata.StepData[23].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[23].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[23].TabData.Font.FontSize = "14"; - fmtdata.StepData[23].TabData.Font.CPI = "8"; - fmtdata.StepData[23].TabData.Font.FontStyle = "Italics, Bold"; - - ////fmtdata.StepData[26] = fmtdata.StepData[7]; - ////fmtdata.StepData[26].Type = "Note3"; - ////fmtdata.StepData[26].ParentType = "Note"; - fmtdata.StepData[26].Font.FontFamily = "Arial"; - fmtdata.StepData[26].Font.FontSize = "11"; - fmtdata.StepData[26].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[26].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[26].TabData.Font.FontSize = "14"; - fmtdata.StepData[26].TabData.Font.CPI = "8"; - fmtdata.StepData[26].TabData.Font.FontStyle = "Italics, Bold"; - - ////fmtdata.StepData[28] = fmtdata.StepData[7]; - ////fmtdata.StepData[28].Type = "Note4"; - ////fmtdata.StepData[28].ParentType = "Note"; - fmtdata.StepData[28].Font.FontFamily = "Arial"; - fmtdata.StepData[28].Font.FontSize = "11"; - fmtdata.StepData[28].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[28].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[28].TabData.Font.FontSize = "14"; - fmtdata.StepData[28].TabData.Font.CPI = "8"; - fmtdata.StepData[28].TabData.Font.FontStyle = "Italics, Bold"; - - ////fmtdata.StepData[32] = fmtdata.StepData[7]; - ////fmtdata.StepData[32].Type = "Note5"; - ////fmtdata.StepData[32].ParentType = "Note"; - fmtdata.StepData[32].Font.FontFamily = "Arial"; - fmtdata.StepData[32].Font.FontSize = "11"; - fmtdata.StepData[32].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[32].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[32].TabData.Font.FontSize = "14"; - fmtdata.StepData[32].TabData.Font.CPI = "8"; - fmtdata.StepData[32].TabData.Font.FontStyle = "Italics, Bold"; - - // Table - fmtdata.StepData[8].Font.FontFamily = "Arial"; - fmtdata.StepData[8].Font.FontSize = "11"; - fmtdata.StepData[8].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[8].TabData.Font.FontSize = "11"; - - // Continuous - fmtdata.StepData[9].Font.FontFamily = "Arial"; - fmtdata.StepData[9].Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[9].TabData.Font.FontSize = "11"; - // AER Table - fmtdata.StepData[10].Font.FontFamily = "Arial"; - fmtdata.StepData[10].Font.FontSize = "11"; - fmtdata.StepData[10].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[10].TabData.Font.FontSize = "11"; - // EquipmentList - fmtdata.StepData[11].Font.FontFamily = "Arial"; - fmtdata.StepData[11].Font.FontSize = "11"; - fmtdata.StepData[11].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[11].TabData.Font.FontSize = "11"; - // Title - fmtdata.StepData[12].Font.FontFamily = "Arial"; - fmtdata.StepData[12].Font.FontSize = "11"; - fmtdata.StepData[12].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[12].TabData.Font.FontSize = "11"; - // PageNumber - fmtdata.StepData[13].Font.FontFamily = "Arial"; - fmtdata.StepData[13].Font.FontSize = "11"; - fmtdata.StepData[13].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[13].TabData.Font.FontSize = "11"; - // EquipmentWBlank - fmtdata.StepData[14].Font.FontFamily = "Arial"; - fmtdata.StepData[14].Font.FontSize = "11"; - fmtdata.StepData[14].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[14].TabData.Font.FontSize = "11"; - // ProcNumber - fmtdata.StepData[15].Font.FontFamily = "Arial"; - fmtdata.StepData[15].Font.FontSize = "11"; - fmtdata.StepData[15].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[15].TabData.Font.FontSize = "11"; - // RevNumber - fmtdata.StepData[16].Font.FontFamily = "Arial"; - fmtdata.StepData[16].Font.FontSize = "11"; - fmtdata.StepData[16].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[16].TabData.Font.FontSize = "11"; - // AccPages - fmtdata.StepData[17].Font.FontFamily = "Arial"; - fmtdata.StepData[17].Font.FontSize = "11"; - fmtdata.StepData[17].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[17].TabData.Font.FontSize = "11"; - // LossOfAC - fmtdata.StepData[18].Font.FontFamily = "Arial"; - fmtdata.StepData[18].Font.FontSize = "11"; - fmtdata.StepData[18].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[18].TabData.Font.FontSize = "11"; - // ExplicitAnd - fmtdata.StepData[19].Font.FontFamily = "Arial"; - fmtdata.StepData[19].Font.FontSize = "11"; - fmtdata.StepData[19].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[19].TabData.Font.FontSize = "11"; - // Paragraph - fmtdata.StepData[24].Font.FontFamily = "Arial"; - fmtdata.StepData[24].Font.FontSize = "11"; - fmtdata.StepData[24].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[24].TabData.Font.FontSize = "11"; - // Default - fmtdata.StepData[25].Font.FontFamily = "Arial"; - fmtdata.StepData[25].Font.FontSize = "11"; - fmtdata.StepData[25].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[25].TabData.Font.FontSize = "11"; - // EquipmentOpt - fmtdata.StepData[30].Font.FontFamily = "Arial"; - fmtdata.StepData[30].Font.FontSize = "11"; - fmtdata.StepData[30].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[30].TabData.Font.FontSize = "11"; - // EquipmentOptWBlank - fmtdata.StepData[31].Font.FontFamily = "Arial"; - fmtdata.StepData[31].Font.FontSize = "11"; - fmtdata.StepData[31].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[31].TabData.Font.FontSize = "11"; - // BorderlessAERTable - fmtdata.StepData[33].Font.FontFamily = "Arial"; - fmtdata.StepData[33].Font.FontSize = "11"; - fmtdata.StepData[33].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[33].TabData.Font.FontSize = "11"; - // BorderlessTable - fmtdata.StepData[34].Font.FontFamily = "Arial"; - fmtdata.StepData[34].Font.FontSize = "11"; - fmtdata.StepData[34].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[34].TabData.Font.FontSize = "11"; - // ImplicitOr - fmtdata.StepData[35].Font.FontFamily = "Arial"; - fmtdata.StepData[35].Font.FontSize = "11"; - fmtdata.StepData[35].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[35].TabData.Font.FontSize = "11"; - // Figure - fmtdata.StepData[36].Font.FontFamily = "Arial"; - fmtdata.StepData[36].Font.FontSize = "11"; - fmtdata.StepData[36].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[36].TabData.Font.FontSize = "11"; - // AERFigure - fmtdata.StepData[37].Font.FontFamily = "Arial"; - fmtdata.StepData[37].Font.FontSize = "11"; - fmtdata.StepData[37].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[37].TabData.Font.FontSize = "11"; - // BorderlessFigure - fmtdata.StepData[38].Font.FontFamily = "Arial"; - fmtdata.StepData[38].Font.FontSize = "11"; - fmtdata.StepData[38].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[38].TabData.Font.FontSize = "11"; - // BorderlessFAERigure - fmtdata.StepData[39].Font.FontFamily = "Arial"; - fmtdata.StepData[39].Font.FontSize = "11"; - fmtdata.StepData[39].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[39].TabData.Font.FontSize = "11"; - // RNOType - fmtdata.StepData[40].Font.FontFamily = "Arial"; - fmtdata.StepData[40].Font.FontSize = "11"; - fmtdata.StepData[40].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[40].TabData.Font.FontSize = "11"; - // HIGH5 - fmtdata.StepData[41].Font.FontFamily = "Arial"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[41].TabData.Font.FontSize = "11"; - // TitleWithTextRight - fmtdata.StepData[42].Font.FontFamily = "Arial"; - fmtdata.StepData[42].Font.FontSize = "11"; - fmtdata.StepData[42].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[42].TabData.Font.FontSize = "11"; - // TitleWithTextBelow - fmtdata.StepData[43].Font.FontFamily = "Arial"; - fmtdata.StepData[43].Font.FontSize = "11"; - fmtdata.StepData[43].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[43].TabData.Font.FontSize = "11"; - // ContAcSequential - fmtdata.StepData[44].Font.FontFamily = "Arial"; - fmtdata.StepData[44].Font.FontSize = "11"; - fmtdata.StepData[44].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[44].TabData.Font.FontSize = "11"; - // ContAcAnd - fmtdata.StepData[45].Font.FontFamily = "Arial"; - fmtdata.StepData[45].Font.FontSize = "11"; - fmtdata.StepData[45].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[45].TabData.Font.FontSize = "11"; - // ContAcOr - fmtdata.StepData[46].Font.FontFamily = "Arial"; - fmtdata.StepData[46].Font.FontSize = "11"; - fmtdata.StepData[46].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[46].TabData.Font.FontSize = "11"; - // ContAcParagraph - fmtdata.StepData[47].Font.FontFamily = "Arial"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[47].TabData.Font.FontSize = "11"; - } - private void AddNSP00FMT(ref FormatData fmtdata) - { - NSP_ArialFontInProcedures(ref fmtdata); - - // High - fmtdata.StepData[2].Font.FontFamily = "Arial"; - fmtdata.StepData[2].Font.FontSize = "11"; - fmtdata.StepData[2].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[2].TabData.Font.FontSize = "11"; - // Immediate - fmtdata.StepData[3].Font.FontFamily = "Arial"; - fmtdata.StepData[3].Font.FontSize = "11"; - fmtdata.StepData[3].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[3].TabData.Font.FontSize = "11"; - // Continuous - fmtdata.StepData[9].Font.FontFamily = "Arial"; - fmtdata.StepData[9].Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[9].TabData.Font.FontSize = "11"; - // LossOfAC - fmtdata.StepData[18].Font.FontFamily = "Arial"; - fmtdata.StepData[18].Font.FontSize = "11"; - fmtdata.StepData[18].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[18].TabData.Font.FontSize = "11"; - // High5 - fmtdata.StepData[41].Font.FontFamily = "Arial"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[41].TabData.Font.FontSize = "11"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - } - private void AddNSPBCKFMT(ref FormatData fmtdata) - { - // section - fmtdata.SectData.SectionNumber.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionNumber.Font.FontSize = "11"; - fmtdata.SectData.SectionHeader.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionHeader.Font.FontSize = "11"; - // Table - fmtdata.StepData[8].Font.FontFamily = "Arial"; - fmtdata.StepData[8].Font.FontSize = "11"; - // Title - fmtdata.StepData[12].Font.FontFamily = "Arial"; - fmtdata.StepData[12].Font.FontSize = "11"; - // PageNumber - fmtdata.StepData[13].Font.FontFamily = "Arial"; - fmtdata.StepData[13].Font.FontSize = "11"; - // EquipmentWBlank - fmtdata.StepData[14].Font.FontFamily = "Arial"; - fmtdata.StepData[14].Font.FontSize = "11"; - // ProcNumber - fmtdata.StepData[15].Font.FontFamily = "Arial"; - fmtdata.StepData[15].Font.FontSize = "11"; - // RevNumber - fmtdata.StepData[16].Font.FontFamily = "Arial"; - fmtdata.StepData[16].Font.FontSize = "11"; - // AccPages - fmtdata.StepData[17].Font.FontFamily = "Arial"; - fmtdata.StepData[17].Font.FontSize = "11"; - // Default - fmtdata.StepData[25].Font.FontFamily = "Arial"; - fmtdata.StepData[25].Font.FontSize = "11"; - // Note4 - fmtdata.StepData[28].Font.FontFamily = "Arial"; - fmtdata.StepData[28].Font.FontSize = "11"; - // Caution4 - fmtdata.StepData[29].Font.FontFamily = "Arial"; - fmtdata.StepData[29].Font.FontSize = "11"; - // EquipmentOptWBlank - fmtdata.StepData[31].Font.FontFamily = "Arial"; - fmtdata.StepData[31].Font.FontSize = "11"; - // Note5 - fmtdata.StepData[32].Font.FontFamily = "Arial"; - fmtdata.StepData[32].Font.FontSize = "11"; - // BorderlessTable - fmtdata.StepData[34].Font.FontFamily = "Arial"; - fmtdata.StepData[34].Font.FontSize = "11"; - // Figure - fmtdata.StepData[36].Font.FontFamily = "Arial"; - fmtdata.StepData[36].Font.FontSize = "11"; - // AERFigure - fmtdata.StepData[37].Font.FontFamily = "Arial"; - fmtdata.StepData[37].Font.FontSize = "11"; - // BorderlessFigure - fmtdata.StepData[38].Font.FontFamily = "Arial"; - fmtdata.StepData[38].Font.FontSize = "11"; - // BorderlessAERFigure - fmtdata.StepData[39].Font.FontFamily = "Arial"; - fmtdata.StepData[39].Font.FontSize = "11"; - // High5 - fmtdata.StepData[41].Font.FontFamily = "Arial"; - fmtdata.StepData[41].Font.FontSize = "11"; - // TitleWithTextRight - fmtdata.StepData[42].Font.FontFamily = "Arial"; - fmtdata.StepData[42].Font.FontSize = "11"; - // TitleWithTextBelow - fmtdata.StepData[43].Font.FontFamily = "Arial"; - fmtdata.StepData[43].Font.FontSize = "11"; - // ContAcSequential - fmtdata.StepData[44].Font.FontFamily = "Arial"; - fmtdata.StepData[44].Font.FontSize = "11"; - // ContAcAnd - fmtdata.StepData[45].Font.FontFamily = "Arial"; - fmtdata.StepData[45].Font.FontSize = "11"; - // ContAcOR - fmtdata.StepData[46].Font.FontFamily = "Arial"; - fmtdata.StepData[46].Font.FontSize = "11"; - // ContAcParagraph - fmtdata.StepData[47].Font.FontFamily = "Arial"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[47].TabData.Font.FontSize = "11"; - fmtdata.StepData[47].TabData.Font.FontStyle = "None"; - - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - } - private void AddNSPABFMT(ref FormatData fmtdata) - { - NSP_ArialFontInProcedures(ref fmtdata); - fmtdata.ProcData.CoverTitleLength = 46; - fmtdata.ProcData.ChangeBarData.FixedChangeColumn = 0; - // checkoffs - fmtdata.ProcData.CheckOffData.CheckOffList[7].Index = 7; - fmtdata.ProcData.CheckOffData.CheckOffList[7].UIMark = 83; - fmtdata.ProcData.CheckOffData.CheckOffList[7].MenuItem = "S"; - fmtdata.ProcData.CheckOffData.CheckOffList[7].Macro = "C7"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Index = 8; - fmtdata.ProcData.CheckOffData.CheckOffList[8].UIMark = 88; - fmtdata.ProcData.CheckOffData.CheckOffList[8].MenuItem = "X"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Macro = "C8"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Index = 9; - fmtdata.ProcData.CheckOffData.CheckOffList[9].UIMark = 67; - fmtdata.ProcData.CheckOffData.CheckOffList[9].MenuItem = "C"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Macro = "C8"; - // Base - fmtdata.StepData[0].Font.CPI = "12"; - // Substep - //fmtdata.StepData[1].Font.CPI = "12"; - // High - fmtdata.StepData[2].Font.CPI = "12"; - // And - fmtdata.StepData[4].Font.CPI = "12"; - // OR - fmtdata.StepData[5].Font.CPI = "12"; - // Caution - fmtdata.StepData[6].Font.CPI = "12"; - fmtdata.StepData[6].OneLineBeforeTab = "True"; - // Note - fmtdata.StepData[7].OneLineBeforeTab = "True"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - fmtdata.StepData[20].OneLineBeforeTab = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - fmtdata.StepData[21].OneLineBeforeTab = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - fmtdata.StepData[27].OneLineBeforeTab = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - fmtdata.StepData[29].OneLineBeforeTab = "True"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - fmtdata.StepData[22].OneLineBeforeTab = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - fmtdata.StepData[23].OneLineBeforeTab = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - fmtdata.StepData[26].OneLineBeforeTab = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - fmtdata.StepData[28].OneLineBeforeTab = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - fmtdata.StepData[32].OneLineBeforeTab = "True"; - } - private void AddNSPAB_X01(ref FormatData fmtdata) - { - // Turn off Replace Words - fmtdata.SectData.TurnOffReplaceWords = "True"; - //ReplaceStr[] repstr = new ReplaceStr[1]; - // fmtdata.SectData.ReplaceStrData = repstr; - // fmtdata.SectData.ReplaceStrData[0].Flag = "None"; - // fmtdata.SectData.ReplaceStrData[0].ReplaceWith = "x"; - // fmtdata.SectData.ReplaceStrData[0].ReplaceWord = "x"; - } - private void AddNSPARPfmt(ref FormatData fmtdata) - { - NSP_ArialFontInProcedures(ref fmtdata); - fmtdata.StepData[1].TabData.RNOIdentEdit = ""; - fmtdata.StepData[1].TabData.RNOIdent = ""; - // High - fmtdata.StepData[2].Font.FontFamily = "Arial"; - fmtdata.StepData[2].Font.FontSize = "11"; - fmtdata.StepData[2].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[2].TabData.Font.FontSize = "11"; - // Immediate - fmtdata.StepData[3].Font.FontFamily = "Arial"; - fmtdata.StepData[3].Font.FontSize = "11"; - fmtdata.StepData[3].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[3].TabData.Font.FontSize = "11"; - // Continuous - fmtdata.StepData[9].Font.FontFamily = "Arial"; - fmtdata.StepData[9].Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[9].TabData.Font.FontSize = "11"; - // LossOfAC - fmtdata.StepData[18].Font.FontFamily = "Arial"; - fmtdata.StepData[18].Font.FontSize = "11"; - fmtdata.StepData[18].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[18].TabData.Font.FontSize = "11"; - // RNOType - fmtdata.StepData[40].WidthOverride = "75"; - fmtdata.StepData[40].WidthOverrideEdit = "75"; - // High5 - fmtdata.StepData[41].Font.FontFamily = "Arial"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[41].TabData.Font.FontSize = "11"; - // Caution - fmtdata.StepData[6].OneLineBeforeTab = "True"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note - fmtdata.StepData[7].OneLineBeforeTab = "True"; - fmtdata.StepData[7].TabData.Bullet.Separate = "False"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - // RNO - fmtdata.StepData[40].Font.FontFamily = "Consolas"; - - } - private void AddNSPDEVFMT(ref FormatData fmtdata) - { - // Adjust page length - fmtdata.ProcData.TitleLength = 50; - // Turn off Replace Words - fmtdata.SectData.TurnOffReplaceWords = "True"; - - // Set the overall font to Arial 11 pt - fmtdata.FontData.FontFamily = "Arial"; - fmtdata.FontData.FontSize = "11"; - fmtdata.FontData.CPI = "10"; - - fmtdata.SectData.SectionNumber.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionNumber.Font.FontSize = "11"; - fmtdata.SectData.SectionHeader.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionHeader.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle.FontSize = "11"; - // Step Type Base - fmtdata.StepData[0].Font.FontFamily = "Arial"; - fmtdata.StepData[0].Font.FontSize = "11"; - fmtdata.StepData[0].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[0].TabData.Font.FontSize = "11"; - - // Substep - fmtdata.StepData[1].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[1].TabData.Font.FontSize = "11"; - - // Standard High Level step - fmtdata.StepData[2].Font.FontFamily = "Arial"; - fmtdata.StepData[2].Font.FontSize = "11"; - fmtdata.StepData[2].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[2].TabData.Font.FontSize = "11"; - - // Immediate High Level step - fmtdata.StepData[3].Font.FontFamily = "Arial"; - fmtdata.StepData[3].Font.FontSize = "11"; - fmtdata.StepData[3].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[3].TabData.Font.FontSize = "11"; - - // And - fmtdata.StepData[4].Font.FontFamily = "Arial"; - fmtdata.StepData[4].Font.FontSize = "11"; - fmtdata.StepData[4].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[4].TabData.Font.FontSize = "11"; - - // OR - fmtdata.StepData[5].Font.FontFamily = "Arial"; - fmtdata.StepData[5].Font.FontSize = "11"; - fmtdata.StepData[5].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[5].TabData.Font.FontSize = "11"; - - // Cautions - fmtdata.StepData[6].Font.FontFamily = "Arial"; - fmtdata.StepData[6].Font.FontSize = "11"; - fmtdata.StepData[6].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[6].TabData.Font.FontSize = "11"; - fmtdata.StepData[6].TabData.Font.CPI = "12"; - - // Notes - fmtdata.StepData[7].Font.FontFamily = "Arial"; - fmtdata.StepData[7].Font.FontSize = "11"; - fmtdata.StepData[7].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[7].TabData.Font.FontSize = "11"; - fmtdata.StepData[7].TabData.Font.CPI = "12"; - - // Table - fmtdata.StepData[8].Font.FontFamily = "Arial"; - fmtdata.StepData[8].Font.FontSize = "11"; - fmtdata.StepData[8].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[8].TabData.Font.FontSize = "11"; - fmtdata.StepData[8].TabData.Font.CPI = "12"; - - // Continuous - fmtdata.StepData[9].Font.FontFamily = "Arial"; - fmtdata.StepData[9].Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[9].TabData.Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.CPI = "12"; - - // AER Table - fmtdata.StepData[10].Font.FontFamily = "Arial"; - fmtdata.StepData[10].Font.FontSize = "11"; - fmtdata.StepData[10].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[10].TabData.Font.FontSize = "11"; - fmtdata.StepData[10].TabData.Font.CPI = "12"; - - // EquipmentList - fmtdata.StepData[11].Font.FontFamily = "Arial"; - fmtdata.StepData[11].Font.FontSize = "11"; - fmtdata.StepData[11].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[11].TabData.Font.FontSize = "11"; - fmtdata.StepData[11].TabData.Font.CPI = "12"; - - // Title - fmtdata.StepData[12].Font.FontFamily = "Arial"; - fmtdata.StepData[12].Font.FontSize = "11"; - fmtdata.StepData[12].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[12].TabData.Font.FontSize = "11"; - fmtdata.StepData[12].TabData.Font.CPI = "12"; - - // PageNumber - fmtdata.StepData[13].Font.FontFamily = "Arial"; - fmtdata.StepData[13].Font.FontSize = "11"; - fmtdata.StepData[13].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[13].TabData.Font.FontSize = "11"; - fmtdata.StepData[13].TabData.Font.CPI = "12"; - - // EquipmentWBlank - fmtdata.StepData[14].Font.FontFamily = "Arial"; - fmtdata.StepData[14].Font.FontSize = "11"; - fmtdata.StepData[14].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[14].TabData.Font.FontSize = "11"; - fmtdata.StepData[14].TabData.Font.CPI = "12"; - - // ProcNumber - fmtdata.StepData[15].Font.FontFamily = "Arial"; - fmtdata.StepData[15].Font.FontSize = "11"; - fmtdata.StepData[15].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[15].TabData.Font.FontSize = "11"; - fmtdata.StepData[15].TabData.Font.CPI = "12"; - - // RevNumber - fmtdata.StepData[16].Font.FontFamily = "Arial"; - fmtdata.StepData[16].Font.FontSize = "11"; - fmtdata.StepData[16].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[16].TabData.Font.FontSize = "11"; - fmtdata.StepData[16].TabData.Font.CPI = "12"; - - // AccPages - fmtdata.StepData[17].Font.FontFamily = "Arial"; - fmtdata.StepData[17].Font.FontSize = "11"; - fmtdata.StepData[17].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[17].TabData.Font.FontSize = "11"; - fmtdata.StepData[17].TabData.Font.CPI = "12"; - - // LossOfAC - fmtdata.StepData[18].Font.FontFamily = "Arial"; - fmtdata.StepData[18].Font.FontSize = "11"; - fmtdata.StepData[18].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[18].TabData.Font.FontSize = "11"; - // ExplicitAnd - fmtdata.StepData[19].Font.FontFamily = "Arial"; - fmtdata.StepData[19].Font.FontSize = "11"; - fmtdata.StepData[19].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[19].TabData.Font.FontSize = "11"; - // Caution1 - fmtdata.StepData[20].Font.FontFamily = "Arial"; - fmtdata.StepData[20].Font.FontSize = "11"; - fmtdata.StepData[20].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[20].TabData.Font.FontSize = "11"; - // Caution2 - fmtdata.StepData[21].Font.FontFamily = "Arial"; - fmtdata.StepData[21].Font.FontSize = "11"; - fmtdata.StepData[21].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[21].TabData.Font.FontSize = "11"; - // Note1 - fmtdata.StepData[22].Font.FontFamily = "Arial"; - fmtdata.StepData[22].Font.FontSize = "11"; - fmtdata.StepData[22].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[22].TabData.Font.FontSize = "11"; - // Note2 - fmtdata.StepData[23].Font.FontFamily = "Arial"; - fmtdata.StepData[23].Font.FontSize = "11"; - fmtdata.StepData[23].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[23].TabData.Font.FontSize = "11"; - // Paragraph - fmtdata.StepData[24].Font.FontFamily = "Arial"; - fmtdata.StepData[24].Font.FontSize = "11"; - fmtdata.StepData[24].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[24].TabData.Font.FontSize = "11"; - // Default - fmtdata.StepData[25].Font.FontFamily = "Arial"; - fmtdata.StepData[25].Font.FontSize = "11"; - fmtdata.StepData[25].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[25].TabData.Font.FontSize = "11"; - // Note3 - fmtdata.StepData[26].Font.FontFamily = "Arial"; - fmtdata.StepData[26].Font.FontSize = "11"; - fmtdata.StepData[26].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[26].TabData.Font.FontSize = "11"; - // Caution3 - fmtdata.StepData[27].Font.FontFamily = "Arial"; - fmtdata.StepData[27].Font.FontSize = "11"; - fmtdata.StepData[27].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[27].TabData.Font.FontSize = "11"; - // Note4 - fmtdata.StepData[28].Font.FontFamily = "Arial"; - fmtdata.StepData[28].Font.FontSize = "11"; - fmtdata.StepData[28].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[28].TabData.Font.FontSize = "11"; - // Caution4 - fmtdata.StepData[29].Font.FontFamily = "Arial"; - fmtdata.StepData[29].Font.FontSize = "11"; - fmtdata.StepData[29].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[29].TabData.Font.FontSize = "11"; - // EquipmentOpt - fmtdata.StepData[30].Font.FontFamily = "Arial"; - fmtdata.StepData[30].Font.FontSize = "11"; - fmtdata.StepData[30].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[30].TabData.Font.FontSize = "11"; - // EquipmentOptWBlank - fmtdata.StepData[31].Font.FontFamily = "Arial"; - fmtdata.StepData[31].Font.FontSize = "11"; - fmtdata.StepData[31].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[31].TabData.Font.FontSize = "11"; - // Note5 - fmtdata.StepData[32].Font.FontFamily = "Arial"; - fmtdata.StepData[32].Font.FontSize = "11"; - fmtdata.StepData[32].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[32].TabData.Font.FontSize = "11"; - // BorderlessAERTable - fmtdata.StepData[33].Font.FontFamily = "Arial"; - fmtdata.StepData[33].Font.FontSize = "11"; - fmtdata.StepData[33].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[33].TabData.Font.FontSize = "11"; - // BorderlessTable - fmtdata.StepData[34].Font.FontFamily = "Arial"; - fmtdata.StepData[34].Font.FontSize = "11"; - fmtdata.StepData[34].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[34].TabData.Font.FontSize = "11"; - // ImplicitOr - fmtdata.StepData[35].Font.FontFamily = "Arial"; - fmtdata.StepData[35].Font.FontSize = "11"; - fmtdata.StepData[35].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[35].TabData.Font.FontSize = "11"; - // Figure - fmtdata.StepData[36].Font.FontFamily = "Arial"; - fmtdata.StepData[36].Font.FontSize = "11"; - fmtdata.StepData[36].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[36].TabData.Font.FontSize = "11"; - // AERFigure - fmtdata.StepData[37].Font.FontFamily = "Arial"; - fmtdata.StepData[37].Font.FontSize = "11"; - fmtdata.StepData[37].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[37].TabData.Font.FontSize = "11"; - // BorderlessFigure - fmtdata.StepData[38].Font.FontFamily = "Arial"; - fmtdata.StepData[38].Font.FontSize = "11"; - fmtdata.StepData[38].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[38].TabData.Font.FontSize = "11"; - // BorderlessAERFigure - fmtdata.StepData[39].Font.FontFamily = "Arial"; - fmtdata.StepData[39].Font.FontSize = "11"; - fmtdata.StepData[39].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[39].TabData.Font.FontSize = "11"; - // RNOType - fmtdata.StepData[40].Font.FontFamily = "Arial"; - fmtdata.StepData[40].Font.FontSize = "11"; - fmtdata.StepData[40].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[40].TabData.Font.FontSize = "11"; - // High5 - fmtdata.StepData[41].Font.FontFamily = "Arial"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[41].TabData.Font.FontSize = "11"; - // TitleWithTextRight - fmtdata.StepData[42].Font.FontFamily = "Arial"; - fmtdata.StepData[42].Font.FontSize = "11"; - fmtdata.StepData[42].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[42].TabData.Font.FontSize = "11"; - // TitleWithTextBelow - fmtdata.StepData[43].Font.FontFamily = "Arial"; - fmtdata.StepData[43].Font.FontSize = "11"; - fmtdata.StepData[43].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[43].TabData.Font.FontSize = "11"; - // ContAcSequential - fmtdata.StepData[44].Font.FontFamily = "Arial"; - fmtdata.StepData[44].Font.FontSize = "11"; - fmtdata.StepData[44].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[44].TabData.Font.FontSize = "11"; - // ContAcAnd - fmtdata.StepData[45].Font.FontFamily = "Arial"; - fmtdata.StepData[45].Font.FontSize = "11"; - fmtdata.StepData[45].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[45].TabData.Font.FontSize = "11"; - // ContAcOr - fmtdata.StepData[46].Font.FontFamily = "Arial"; - fmtdata.StepData[46].Font.FontSize = "11"; - fmtdata.StepData[46].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[46].TabData.Font.FontSize = "11"; - // ContAcParagraph - fmtdata.StepData[47].Font.FontFamily = "Arial"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[47].TabData.Font.FontSize = "11"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - } - private void AddNSPIFGFMT(ref FormatData fmtdata) - { - // Set the overall font to Arial 11 pt - NSP_ArialFontInProcedures(ref fmtdata); - // checkoffs - fmtdata.ProcData.CheckOffData.CheckOffList[7].Index = 7; - fmtdata.ProcData.CheckOffData.CheckOffList[7].UIMark = 83; - fmtdata.ProcData.CheckOffData.CheckOffList[7].MenuItem = "S"; - fmtdata.ProcData.CheckOffData.CheckOffList[7].Macro = "C7"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Index = 8; - fmtdata.ProcData.CheckOffData.CheckOffList[8].UIMark = 88; - fmtdata.ProcData.CheckOffData.CheckOffList[8].MenuItem = "X"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Macro = "C8"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Index = 9; - fmtdata.ProcData.CheckOffData.CheckOffList[9].UIMark = 67; - fmtdata.ProcData.CheckOffData.CheckOffList[9].MenuItem = "C"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Macro = "C9"; - // High - fmtdata.StepData[2].Font.FontFamily = "Arial"; - fmtdata.StepData[2].Font.FontSize = "11"; - fmtdata.StepData[2].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[2].TabData.Font.FontSize = "11"; - // Immediate - fmtdata.StepData[3].Font.FontFamily = "Arial"; - fmtdata.StepData[3].Font.FontSize = "11"; - fmtdata.StepData[3].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[3].TabData.Font.FontSize = "11"; - // Continuous - fmtdata.StepData[9].Font.FontFamily = "Arial"; - fmtdata.StepData[9].Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[9].TabData.Font.FontSize = "11"; - // LossOfAC - fmtdata.StepData[18].Font.FontFamily = "Arial"; - fmtdata.StepData[18].Font.FontSize = "11"; - fmtdata.StepData[18].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[18].TabData.Font.FontSize = "11"; - // High5 - fmtdata.StepData[41].Font.FontFamily = "Consolas"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].TabData.Font.FontFamily = "Consolas"; - fmtdata.StepData[41].TabData.Font.FontSize = "11"; - fmtdata.StepData[41].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Unnumbered Step"; - fmtdata.StepData[41].TabData.IdentEdit = ""; - fmtdata.StepData[41].TabData.Ident = ""; - fmtdata.StepData[41].TabData.RNOIdentEdit = ""; - fmtdata.StepData[41].TabData.RNOIdent = ""; - - // Caution & Note - so that a line exists before the caution/note - fmtdata.StepData[6].OneLineBeforeTab = "True"; - fmtdata.StepData[7].OneLineBeforeTab = "True"; - - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - - //change Continuous Action Paragraph to a Fix Pitched font paragraph - fmtdata.StepData[47].WidthOverride = "425"; - fmtdata.StepData[47].Font.FontFamily = "Consolas"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].Font.CPI = "12"; - fmtdata.StepData[47].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Paragraph"; - fmtdata.StepData[47].TabData.IdentEdit = ""; - fmtdata.StepData[47].TabData.Ident = ""; - fmtdata.StepData[47].TabData.RNOIdentEdit = ""; - fmtdata.StepData[47].TabData.RNOIdent = ""; - - // Add Procedure Information - fmtdata.ProcData.Psi.x = 415; - fmtdata.ProcData.Psi.y = 112; - fmtdata.ProcData.Psi.Caption = "Instrument Failure Guide"; - fmtdata.ProcData.Psi.font = "ARIAL"; - fmtdata.ProcData.Psi.ButtonsOnBottom = "YES"; - fmtdata.ProcData.Psi.Labels = new PsiLabel[1]; - fmtdata.ProcData.Psi.Labels[0].text = "IFG Name:"; - fmtdata.ProcData.Psi.Labels[0].Justify = "LEFT"; - fmtdata.ProcData.Psi.Labels[0].x = 9; - fmtdata.ProcData.Psi.Labels[0].y = 15; - fmtdata.ProcData.Psi.Labels[0].width = 30; - fmtdata.ProcData.Psi.Labels[0].height = 12; - fmtdata.ProcData.Psi.Fields = new PsiField[2]; - fmtdata.ProcData.Psi.Fields[0].name = "IFGName"; - fmtdata.ProcData.Psi.Fields[0].type = "TEXT"; - fmtdata.ProcData.Psi.Fields[0].text = ""; - fmtdata.ProcData.Psi.Fields[0].Length = 12; - fmtdata.ProcData.Psi.Fields[0].x = 50; - fmtdata.ProcData.Psi.Fields[0].y = 15; - fmtdata.ProcData.Psi.Fields[0].width = 60; - fmtdata.ProcData.Psi.Fields[0].height = 12; - fmtdata.ProcData.Psi.Fields[1].name = "UseIFGName"; - fmtdata.ProcData.Psi.Fields[1].type = "LOGICAL"; - fmtdata.ProcData.Psi.Fields[1].text = "Use IFG Name In the Page Header"; - fmtdata.ProcData.Psi.Fields[1].Length = 0; - fmtdata.ProcData.Psi.Fields[1].x = 9; - fmtdata.ProcData.Psi.Fields[1].y = 40; - fmtdata.ProcData.Psi.Fields[1].width = 130; - fmtdata.ProcData.Psi.Fields[1].height = 12; - } - private void AddNSPSAMFMT(ref FormatData fmtdata) - { - // Set the overall font to Arial 11 pt - NSP_ArialFontInProcedures(ref fmtdata); - // checkoffs - fmtdata.ProcData.CheckOffData.CheckOffList[7].Index = 7; - fmtdata.ProcData.CheckOffData.CheckOffList[7].UIMark = 83; - fmtdata.ProcData.CheckOffData.CheckOffList[7].MenuItem = "S"; - fmtdata.ProcData.CheckOffData.CheckOffList[7].Macro = "C7"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Index = 8; - fmtdata.ProcData.CheckOffData.CheckOffList[8].UIMark = 88; - fmtdata.ProcData.CheckOffData.CheckOffList[8].MenuItem = "X"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Macro = "C8"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Index = 9; - fmtdata.ProcData.CheckOffData.CheckOffList[9].UIMark = 67; - fmtdata.ProcData.CheckOffData.CheckOffList[9].MenuItem = "C"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Macro = "C9"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - } - - private void AddSHEfmt(ref FormatData fmtdata) - { - fmtdata.ProcData.CoverTitleLength = 42; - fmtdata.ProcData.CheckOffData.CheckOffList[0].NotOnEmpty = "True"; - fmtdata.SectData.StepSectionData.StpSectLayData.ColRTable = "0,204,144"; - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = "0,193,0"; - fmtdata.StepData[2].TabData.Ident = " {numeric}."; - fmtdata.StepData[2].TabData.RNOIdent = " ."; - fmtdata.StepData[4].TabData.RNOAdjustTabSize = 12; - fmtdata.StepData[7].TabData.Ident = @" \ul NOTE\ulnone"; - fmtdata.StepData[26].TabData.Ident = @" \ul NOTE\ulnone"; - fmtdata.StepData[6].MatchUpRNO = "False"; - fmtdata.StepData[6].MixCautionsAndNotes = "True"; - fmtdata.StepData[7].MatchUpRNO = "False"; - fmtdata.StepData[7].MixCautionsAndNotes = "True"; - fmtdata.StepData[7].TabData.NoTrim = "True"; // need this field in stepdata/tabdata. - fmtdata.StepData[9].TabData.Ident = "{asterisk} {numeric}."; - fmtdata.StepData[18].TabData.Ident = null; - fmtdata.StepData[18].TabData.RNOIdent = null; - fmtdata.StepData[23].MatchUpRNO = "True"; - fmtdata.BoxData[2].TxtWidth = 432; - fmtdata.TransData.TransTypeData[6].TransFormat = ""; // not used and not supported in code - fmtdata.TransData.TransTypeData[7].TransFormat = ""; - // tables - fmtdata.StepData[8].Font.FontFamily = "Consolas"; - fmtdata.StepData[10].Font.FontFamily = "Consolas"; - } - private void AddSHESSDfmt(ref FormatData fmtdata) - { - fmtdata.StepData[24].StepLayoutData.STExtraSpace = null; - } - private void AddCPLSSDDfmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.PMode = 0; - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = "0,90,0"; - } - private void AddIP3_15fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.ShowSectionTitles = "False"; - fmtdata.BoxData[4].TxtStart = 36; - fmtdata.BoxData[4].TxtWidth = 426; - fmtdata.BoxData[4].BXURC = " *"; - fmtdata.BoxData[4].BXLRC = " *"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontStyle = "Underline"; - fmtdata.StepData[9].Suffix = "{ulnone} *"; - fmtdata.StepData[6].TabData.IdentEdit = "CAUTION"; - fmtdata.StepData[6].TabData.Ident = "CAUTION"; - fmtdata.StepData[6].TabData.RNOIdentEdit = "CAUTION"; - fmtdata.StepData[6].TabData.RNOIdent = "CAUTION"; - fmtdata.StepData[7].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[7].TabData.Ident = "NOTE"; - fmtdata.StepData[7].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[7].TabData.RNOIdent = "NOTE"; - fmtdata.StepData[20].TabData.IdentEdit = "CAUTION"; - fmtdata.StepData[20].TabData.Ident = "CAUTION"; - fmtdata.StepData[20].TabData.RNOIdentEdit = "CAUTION"; - fmtdata.StepData[20].TabData.RNOIdent = "CAUTION"; - fmtdata.StepData[21].TabData.IdentEdit = "CAUTION"; - fmtdata.StepData[21].TabData.Ident = "CAUTION"; - fmtdata.StepData[21].TabData.RNOIdentEdit = "CAUTION"; - fmtdata.StepData[21].TabData.RNOIdent = "CAUTION"; - fmtdata.StepData[22].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[22].TabData.Ident = "NOTE"; - fmtdata.StepData[22].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[22].TabData.RNOIdent = "NOTE"; - fmtdata.StepData[23].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[23].TabData.Ident = "NOTE"; - fmtdata.StepData[23].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[23].TabData.RNOIdent = "NOTE"; - fmtdata.StepData[26].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[26].TabData.Ident = "NOTE"; - fmtdata.StepData[26].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[26].TabData.RNOIdent = "NOTE"; - fmtdata.StepData[27].TabData.IdentEdit = "CAUTION"; - fmtdata.StepData[27].TabData.Ident = "CAUTION"; - fmtdata.StepData[27].TabData.RNOIdentEdit = "CAUTION"; - fmtdata.StepData[27].TabData.RNOIdent = "CAUTION"; - fmtdata.StepData[28].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[28].TabData.Ident = "NOTE"; - fmtdata.StepData[28].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[28].TabData.RNOIdent = "NOTE"; - fmtdata.StepData[32].TabData.IdentEdit = "NOTE"; - fmtdata.StepData[32].TabData.Ident = "NOTE"; - fmtdata.StepData[32].TabData.RNOIdentEdit = "NOTE"; - fmtdata.StepData[32].TabData.RNOIdent = "NOTE"; - } - } - public partial class FmtToXml - { - public void AddPlantSpecific(string genFileName, ref PageStyles pgstyles) - { - //string genName = genFileName.Substring(genFileName.LastIndexOf('\\') + 1); - //genName = genName.Substring(0, genName.IndexOf('.')); - //switch (genName.ToUpper()) - switch (genFileName.ToUpper()) - { - case "NSP.PAG": - AddNSPPage(ref pgstyles); - break; - case "NSP.Z00": - AddNSP00Page(ref pgstyles); - break; - case "NSPBCK.PAG": - AddNSPBckPage(ref pgstyles); - break; - case "NSPAB.PAG": - AddNSPABPage(ref pgstyles); - break; - case "NSPAB.Z00": - AddNSPABPage_Z00(ref pgstyles); - break; - case "NSPAB.Z01": - AddNSPABPage_Z01(ref pgstyles); - break; - case "NSPAB.Z02": - AddNSPABPage_Z02(ref pgstyles); - break; - case "NSPDEV.PAG": - AddNSPDEVPage(ref pgstyles); - break; - case "NSPIFG.PAG": - case "NSPIFG2.PAG": - AddNSPIFGPage(ref pgstyles); - break; - case "NSPIFG.Z00": - AddNSPIFG_00Page(ref pgstyles); - break; - case "NSPARP.PAG": - AddNSPARPPage(ref pgstyles); - break; - case "NSPARP.Z00": - AddNSPARP_00Page(ref pgstyles); - break; - case "NSPSAM.PAG": - AddNSPSAMPage(ref pgstyles); - break; - case "SHE.PAG": - AddSHEPage(ref pgstyles); - break; - case "RGESAM1.PAG": - AddRGESam1Page(ref pgstyles); - break; - case "RGE.PAG": - AddRGEPage(ref pgstyles); - break; - case "RGEBCK.PAG": - AddRGEBCKPage(ref pgstyles); - break; - case "VCSDEV.PAG": - AddVCSDEVfmt(ref pgstyles); - break; - case "SUM.PAG": - AddSUMfmt(ref pgstyles); - break; - case "CWE.PAG": - AddCWEfmt(ref pgstyles); - break; - case "CAL2.PAG": - case "CALOTO.PAG": - AddCAL2Page(ref pgstyles); - break; - case "CALBCK.PAG": - AddCALBCKPage(ref pgstyles); - break; - case "CPLRDEV.PAG": - AddCPLRDevPage(ref pgstyles); - break; - case "CPL.PAG": - AddCPLPage(ref pgstyles); - break; - case "CPLA.PAG": - AddCPLAPage(ref pgstyles); - break; - case "CPL.Z00": - case "CPL.Z01": - case "CPL.Z02": - SetRobinsonPageListFont(ref pgstyles); - break; - case "CPL.Z03": - AddCPL_Z03(ref pgstyles); - break; - case "CPBCK.PAG": - AddCPBCK(ref pgstyles); - break; - case "CPBCK.Z00": - AddCPBCK_Z00(ref pgstyles); - break; - case "CPBCK.Z01": - AddCPBCK_Z01(ref pgstyles); - break; - case "CPBCK2.PAG": - AddCPBCK2(ref pgstyles); - break; - case "TUEC.PAG": - AddTUECPage(ref pgstyles); - break; - /* Under Development - case "TP.PAG": - AddTPPage(ref pgstyles); - break; - case "TP.Z00": - AddTP00Page(ref pgstyles); - break; - * */ - case "FNP.PAG": - AddFNPPage(ref pgstyles); - break; - case "FNP.Z00": - AddFNP_00Page(ref pgstyles); - break; - case "FNP.Z01": - AddFNP_01Page(ref pgstyles); - break; - case "FNPCAS.PAG": - AddFNPCASPage(ref pgstyles); - break; - case "MCG.PAG": - case "MCGBOX.PAG": - AddMCGPage(ref pgstyles); - break; - case "CAT.PAG": - case "CATBOX.PAG": - AddCATPage(ref pgstyles); - break; - } - } - - private void AddFNPCASPage(ref PageStyles pgstyles) - { - // adjust location of procedure title slightly to the right. Long section titles - // were touching left line of header box - pgstyles.PgStyles[0].Items[3].Col = 234; - } - private void AddFNP_00Page(ref PageStyles pgstyles) - { - pgstyles.PgStyles[0].Items[2].Col = 30; - pgstyles.PgStyles[1].Items[2].Col = 30; - pgstyles.PgStyles[2].Items[2].Col = 30; - pgstyles.PgStyles[3].Items[2].Col = 30; - - // adjust location of procedure title slightly to the right. Long section titles - // were touching left line of header box - pgstyles.PgStyles[0].Items[3].Col = 234; - pgstyles.PgStyles[1].Items[3].Col = 234; - pgstyles.PgStyles[2].Items[3].Col = 234; - pgstyles.PgStyles[3].Items[3].Col = 234; - } - private void AddFNP_01Page(ref PageStyles pgstyles) - { - pgstyles.PgStyles[0].Items[2].Col = 30; - pgstyles.PgStyles[1].Items[2].Col = 30; - pgstyles.PgStyles[2].Items[2].Col = 30; - - // adjust location of procedure title slightly to the right. Long section titles - // were touching left line of header box - pgstyles.PgStyles[0].Items[3].Col = 234; - pgstyles.PgStyles[1].Items[3].Col = 234; - pgstyles.PgStyles[2].Items[3].Col = 234; - } - - private void AddFNPPage(ref PageStyles pgstyles) - { - pgstyles.PgStyles[0].Items[2].Col = 30; - pgstyles.PgStyles[1].Items[2].Col = 30; - pgstyles.PgStyles[2].Items[2].Col = 30; - pgstyles.PgStyles[3].Items[2].Col = 30; - pgstyles.PgStyles[4].Items[3].Col = 30; // foldout - pgstyles.PgStyles[7].Items[2].Col = 30; // component list - pgstyles.PgStyles[8].Items[2].Col = 30; - pgstyles.PgStyles[9].Items[2].Col = 30; - pgstyles.PgStyles[10].Items[2].Col = 30; - pgstyles.PgStyles[11].Items[2].Col = 30; - - // adjust location of procedure title slightly to the right. Long section titles - // were touching left line of header box - pgstyles.PgStyles[0].Items[3].Col = 234; - pgstyles.PgStyles[1].Items[3].Col = 234; - pgstyles.PgStyles[2].Items[3].Col = 234; - pgstyles.PgStyles[3].Items[3].Col = 234; - pgstyles.PgStyles[4].Items[2].Col = 234; // foldout page - pgstyles.PgStyles[4].Items[4].Col = 234; - pgstyles.PgStyles[7].Items[3].Col = 234; - pgstyles.PgStyles[8].Items[3].Col = 234; - pgstyles.PgStyles[10].Items[3].Col = 234; - pgstyles.PgStyles[11].Items[3].Col = 234; - - pgstyles.PgStyles[4].Items[2].Row = 32; // foldout page's 'FOLDOUT PAGE' - } - - private void AddCALBCKPage(ref PageStyles pgstyles) - { - pgstyles.PgStyles[1].Items[3].Style.FontSize = "14"; - pgstyles.PgStyles[1].Items[4].Style.FontSize = "14"; - pgstyles.PgStyles[0].Items[7].Col = 518; - } - private void AddCAL2Page(ref PageStyles pgstyles) - { - pgstyles.PgStyles[6].Items[2].Col = 240; - pgstyles.PgStyles[6].Items[3].Col = 240; - pgstyles.PgStyles[6].Items[4].Col = 240; - pgstyles.PgStyles[6].Items[3].Row = 295; - pgstyles.PgStyles[6].Items[4].Row = 317; - pgstyles.PgStyles[6].Items[3].Justify = pgstyles.PgStyles[6].Items[4].Justify; - pgstyles.PgStyles[6].Items[3].Style.FontSize = "14"; - pgstyles.PgStyles[6].Items[4].Style.FontSize = "14"; - pgstyles.PgStyles[6].Items[5].Col = 240; - pgstyles.PgStyles[6].Items[6].Col = 522; - pgstyles.PgStyles[6].Items[6].Style.FontSize = "14"; - } - - private void AddSHEPage(ref PageStyles pgstyles) - { - // Procedure Steps - pgstyles.PgStyles[0].Items[1].Col = 78; // Column for BOX5 needed adjusted to match 16bit - pgstyles.PgStyles[1].Items[9].Col = 396; - pgstyles.PgStyles[2].Items[2].Col = 315; // Adjust columns on PSI items for cover page. - pgstyles.PgStyles[2].Items[3].Col = 315; - pgstyles.PgStyles[2].Items[4].Col = 315; - pgstyles.PgStyles[2].Items[5].Col = 315; - pgstyles.PgStyles[2].Items[6].Col = 315; - pgstyles.PgStyles[2].Items[7].Col = 315; - pgstyles.PgStyles[2].Items[8].Col = 315; - pgstyles.PgStyles[2].Items[9].Col = 315; - pgstyles.PgStyles[3].Items[4].Col = 477; // Adjust columns on some PSI for cover page. - pgstyles.PgStyles[3].Items[5].Col = 477; - pgstyles.PgStyles[3].Items[6].Col = 477; - pgstyles.PgStyles[3].Items[7].Col = 477; - pgstyles.PgStyles[3].Items[8].Col = 477; - pgstyles.PgStyles[3].Items[9].Col = 477; - pgstyles.PgStyles[3].Items[10].Col = 477; - pgstyles.PgStyles[3].Items[11].Col = 477; - pgstyles.PgStyles[3].Items[12].Col = 477; - pgstyles.PgStyles[3].Items[23].Col = 272; - pgstyles.PgStyles[3].Items[23].Style.CPI = "12"; - pgstyles.PgStyles[3].Items[24].Row = 426; - pgstyles.PgStyles[3].Items[24].Col = 272; - pgstyles.PgStyles[3].Items[24].Justify = "PSCenter, PSTop"; - pgstyles.PgStyles[3].Items[24].Style.CPI = "12"; - pgstyles.PgStyles[4].Items[5].Col = 414; - - // added Purpose/Symptom page/doc style - Array.Resize(ref pgstyles.PgStyles, pgstyles.PgStyles.Length + 1); - pgstyles.PgStyles[9].Name = "Purpose/Symptom"; - pgstyles.PgStyles[9].Index = 9; - if (pgstyles.PgStyles[9].Items == null) - Array.Resize(ref pgstyles.PgStyles[9].Items, 6); - pgstyles.PgStyles[9].Items[0].Col = 3F; - pgstyles.PgStyles[9].Items[0].Justify = "PSCenter"; - pgstyles.PgStyles[9].Items[0].Row = 12F; - pgstyles.PgStyles[9].Items[0].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[0].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[0].Style.FontFamily = "Prestige Elite Tall"; - pgstyles.PgStyles[9].Items[0].Style.FontSize = "10"; - pgstyles.PgStyles[9].Items[0].Style.FontStyle = "None"; - pgstyles.PgStyles[9].Items[0].Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - - pgstyles.PgStyles[9].Items[1].Col = 78; - pgstyles.PgStyles[9].Items[1].Justify = "PSNoHalfLine"; - pgstyles.PgStyles[9].Items[1].Row = 24; - pgstyles.PgStyles[9].Items[1].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[1].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[9].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[9].Items[1].Style.FontStyle = "None"; - pgstyles.PgStyles[9].Items[1].Token = "{PMODEBOX}"; - - pgstyles.PgStyles[9].Items[2].Col = 237; - pgstyles.PgStyles[9].Items[2].Justify = "PSCenter"; - pgstyles.PgStyles[9].Items[2].Row = 42; - pgstyles.PgStyles[9].Items[2].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[2].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[9].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[9].Items[2].Style.FontStyle = "Bold"; - pgstyles.PgStyles[9].Items[2].Token = "{PROCTITLE}"; - - pgstyles.PgStyles[9].Items[3].Col = -12; - pgstyles.PgStyles[9].Items[3].Justify = "PSLeft"; - pgstyles.PgStyles[9].Items[3].Row = 754; - pgstyles.PgStyles[9].Items[3].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[3].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[9].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[9].Items[3].Style.FontStyle = "None"; - pgstyles.PgStyles[9].Items[3].Token = "EOP-{EOPNUM}"; - - pgstyles.PgStyles[9].Items[4].Col = 225; - pgstyles.PgStyles[9].Items[4].Justify = "PSCenter"; - pgstyles.PgStyles[9].Items[4].Row = 754; - pgstyles.PgStyles[9].Items[4].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[4].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[9].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[9].Items[4].Style.FontStyle = "None"; - pgstyles.PgStyles[9].Items[4].Token = "Rev. {REV}"; - - pgstyles.PgStyles[9].Items[5].Col = 396; - pgstyles.PgStyles[9].Items[5].Justify = "PSLeft"; - pgstyles.PgStyles[9].Items[5].Row = 754; - pgstyles.PgStyles[9].Items[5].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[5].Style.CPI = "12"; - pgstyles.PgStyles[9].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[9].Items[5].Style.FontSize = "11"; - pgstyles.PgStyles[9].Items[5].Style.FontStyle = "None"; - pgstyles.PgStyles[9].Items[5].Token = "Page {PAGE} of {OF}"; - } - // NSP_ALL - private void AddNSPPage(ref PageStyles pgstyles) - { - // Adjusted the left margin to better align the procedure text - - // Procedure Steps - pgstyles.PgStyles[0].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[0].Items[1].Col = -18; // {HEADER1} - pgstyles.PgStyles[0].Items[2].Col = 269; // {PROCTITLE} - pgstyles.PgStyles[0].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[0].Items[3].Col = 515; // REV. {REV} - pgstyles.PgStyles[0].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[0].Items[4].Col = 28; // {EOPNUM} - pgstyles.PgStyles[0].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[4].Style.CPI = "10"; - pgstyles.PgStyles[0].Items[5].Col = -18; // {BOX2} - pgstyles.PgStyles[0].Items[6].Col = 246; // Page {PAGE} of {OF} - pgstyles.PgStyles[0].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[6].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[6].Style.CPI = "10"; - // Figure Included in Page Count - pgstyles.PgStyles[1].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[1].Items[1].Col = -18; // {HEADER1} - pgstyles.PgStyles[1].Items[2].Col = 243; // {PROCTITLE} - pgstyles.PgStyles[1].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[1].Items[3].Col = 461; // {REV} - pgstyles.PgStyles[1].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[1].Items[4].Col = 25; // {EOPNUM} - pgstyles.PgStyles[1].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[4].Style.CPI = "10"; - pgstyles.PgStyles[1].Items[5].Col = -18; // {BOX1} - pgstyles.PgStyles[1].Items[6].Col = 221; // Page {PAGE} of {OF} - pgstyles.PgStyles[1].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[6].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[6].Style.CPI = "10"; - // Cover sheet with Retention 5 years - pgstyles.PgStyles[2].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[2].Items[1].Col = 320; // {EOPNUM} - pgstyles.PgStyles[2].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[1].Style.CPI = "10"; - pgstyles.PgStyles[2].Items[2].Col = 320; // REV. {REV} - pgstyles.PgStyles[2].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[2].Items[3].Col = 320; // Page {PAGE} of {OF} - pgstyles.PgStyles[2].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[2].Items[4].Col = 320; // Retention: 5 Yrs. - pgstyles.PgStyles[2].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[4].Style.CPI = "10"; - - // Cover Sheet 2004 With no Retention - pgstyles.PgStyles[3].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[3].Items[1].Col = -18; // {HEADER1} - pgstyles.PgStyles[3].Items[2].Col = 240; // {PROCTITLE} - pgstyles.PgStyles[3].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[3].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[3].Items[3].Col = 460; // {REV} - pgstyles.PgStyles[3].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[3].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[3].Items[4].Col = 25; // {EOPNUM} - pgstyles.PgStyles[3].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[3].Items[4].Style.CPI = "10"; - pgstyles.PgStyles[3].Items[5].Col = 220; // Page {PAGE} of {OF} - pgstyles.PgStyles[3].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[5].Style.FontSize = "11"; - pgstyles.PgStyles[3].Items[5].Style.CPI = "10"; - - // Cover Sheet - pgstyles.PgStyles[4].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[4].Items[1].Col = 513; // {EOPNUM} - pgstyles.PgStyles[4].Items[1].Justify = "PSRight"; - pgstyles.PgStyles[4].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[4].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[4].Items[1].Style.CPI = "10"; - pgstyles.PgStyles[4].Items[2].Col = 513; // REV. {REV} - pgstyles.PgStyles[4].Items[2].Justify = "PSRight"; - pgstyles.PgStyles[4].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[4].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[4].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[4].Items[3].Col = 513; // Page {PAGE} of {OF} - pgstyles.PgStyles[4].Items[3].Justify = "PSRight"; - pgstyles.PgStyles[4].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[4].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[4].Items[3].Style.CPI = "10"; - - // Ter Editor Foldout pages - pgstyles.PgStyles[5].Name = "MS Word Editor Foldout pages"; - pgstyles.PgStyles[5].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - - // Purpose And Entry Conditions with Header Box - pgstyles.PgStyles[6].Items[0].Col = 1; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[6].Items[1].Col = 0; // {HEADER1} - pgstyles.PgStyles[6].Items[2].Col = 258; // {PROCTITLE} - pgstyles.PgStyles[6].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[6].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[6].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[6].Items[3].Col = 478; // {REV} - pgstyles.PgStyles[6].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[6].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[6].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[6].Items[4].Col = 43; // {EOPNUM} - pgstyles.PgStyles[6].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[6].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[6].Items[4].Style.CPI = "10"; - pgstyles.PgStyles[6].Items[5].Col = 239; // Page {PAGE} of {OF} - pgstyles.PgStyles[6].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[6].Items[5].Style.FontSize = "11"; - pgstyles.PgStyles[6].Items[5].Style.CPI = "10"; - - // Two Column Auto Action Pages - pgstyles.PgStyles[7].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[7].Items[1].Col = 503; // {REV} - pgstyles.PgStyles[7].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[7].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[7].Items[1].Style.CPI = "10"; - pgstyles.PgStyles[7].Items[2].Col = 503; // {EOPNUM} - pgstyles.PgStyles[7].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[7].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[7].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[7].Items[3].Col = 248; // {SECTIONLEVELTITLE} - pgstyles.PgStyles[7].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[7].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[7].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[7].Items[4].Col = -18; // {BOX2} - pgstyles.PgStyles[7].Items[5].Col = 503; // Page {PAGE} of {OF} - pgstyles.PgStyles[7].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[7].Items[5].Style.FontSize = "11"; - pgstyles.PgStyles[7].Items[5].Style.CPI = "10"; - pgstyles.PgStyles[7].Items[5].Justify = "PSRight, PSTrue"; // Page {PAGE} of {OF} - - // Auto Continuous Action Summary - pgstyles.PgStyles[8].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[8].Items[1].Col = -18; // {HEADER1} - pgstyles.PgStyles[8].Items[2].Col = 29; // {EOPNUM} - pgstyles.PgStyles[8].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[3].Col = 251; // {PROCTITLE} - pgstyles.PgStyles[8].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[4].Col = 503; // {REV} - pgstyles.PgStyles[8].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[4].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[5].Col = -18; // {BOX4} - pgstyles.PgStyles[8].Items[6].Col = 263; // {SECTIONLEVELNUMBER} - pgstyles.PgStyles[8].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[6].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[6].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[7].Col = 263; // {SECTIONLEVELTITLE} - pgstyles.PgStyles[8].Items[7].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[7].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[7].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[8].Col = 263; // Page {DOCCURPAGE} of {DOCTOTPAGE} - pgstyles.PgStyles[8].Items[8].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[8].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[8].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[9].Col = 251; // Page {PAGE} of {OF} - pgstyles.PgStyles[8].Items[9].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[9].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[9].Style.CPI = "10"; - } - // NSP foldouts - private void AddNSP00Page(ref PageStyles pgstyles) - { - // Adjusted the left margin to better align the procedure text - - // Foldout Pages - pgstyles.PgStyles[0].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[0].Items[0].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[0].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[0].Style.CPI = "10"; - pgstyles.PgStyles[0].Items[1].Col = 258; // {SECTIONLEVELTITLE} - pgstyles.PgStyles[0].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[1].Style.FontSize = "10"; - pgstyles.PgStyles[0].Items[1].Style.CPI = "10"; - PSItem[] Fpsitms = null; - Fpsitms = new PSItem[4]; - pgstyles.PgStyles[0].Items.CopyTo(Fpsitms, 0); - - PSItem pi = new PSItem(); - pi.Token = "{EOPNUM}"; //{EOPNUM} - pi.Col = 530; - pi.Row = 12; - pi.Justify = "PSRight"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "REV. {REV}"; //{REV} - pi.Col = 530; - pi.Row = 24; - pi.Justify = "PSRight"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[3] = pi; - - pgstyles.PgStyles[0].Items = Fpsitms; - } - // NSPBCK_ALL - private void AddNSPBckPage(ref PageStyles pgstyles) - { - // Background Text - first page - pgstyles.PgStyles[0].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[0].Items[1].Col = 519; //{EOPNUM} - pgstyles.PgStyles[0].Items[1].Justify = "PSRight"; - pgstyles.PgStyles[0].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[2].Col = 519; //{REV} - pgstyles.PgStyles[0].Items[2].Justify = "PSRight"; - pgstyles.PgStyles[0].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[3].Col = 519; //{Page} of {OF} - pgstyles.PgStyles[0].Items[3].Justify = "PSRight"; - pgstyles.PgStyles[0].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[4].Col = 285; // BACKGROUND INFORMATION FOR - pgstyles.PgStyles[0].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[5].Col = 285; // {EOPNUM}, {PROCTITLE} - pgstyles.PgStyles[0].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[5].Style.FontSize = "11"; - // Background Text - rest of pages - pgstyles.PgStyles[1].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[1].Items[1].Col = 519; //{EOPNUM} - pgstyles.PgStyles[1].Items[1].Justify = "PSRight"; - pgstyles.PgStyles[1].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[2].Col = 519; //{REV} - pgstyles.PgStyles[1].Items[2].Justify = "PSRight"; - pgstyles.PgStyles[1].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[3].Col = 519; //{Page} of {OF} - pgstyles.PgStyles[1].Items[3].Justify = "PSRight"; - pgstyles.PgStyles[1].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[3].Style.FontSize = "11"; - // attachments - pgstyles.PgStyles[2].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[2].Items[1].Col = 477; //{EOPNUM} - pgstyles.PgStyles[2].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[2].Col = 477;//{REV} - pgstyles.PgStyles[2].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[3].Col = 477; //{Page} of {OF} - pgstyles.PgStyles[2].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[3].Style.FontSize = "11"; - } - private void AddNSPABPage(ref PageStyles pgstyles) - { - //Procedure Steps - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[1].Col = 287; - //{COVERPROCTITLE} - pgstyles.PgStyles[0].Items[6].Col = 336; - pgstyles.PgStyles[0].Items[6].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[0].Items[7].Col = 511; - pgstyles.PgStyles[0].Items[7].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[0].Items[8].Col = 513; - pgstyles.PgStyles[0].Items[8].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[0].Items[9].Col = 513; - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[10].Col = 287; - - //Purpose and Entry - //{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[1].Items[0].Col = 48; - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[1].Col = 337; - //{PS=AB_OP_PROC?[HEADER1]|} - pgstyles.PgStyles[1].Items[2].Col = 45; - //{PS=AB_PROC?[HEADER2]|} - pgstyles.PgStyles[1].Items[3].Col = 45; - //{BOX1} - pgstyles.PgStyles[1].Items[4].Col = 45; - //{COVERPROCTITLE} - pgstyles.PgStyles[1].Items[5].Col = 386; - pgstyles.PgStyles[1].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[1].Items[6].Col = 556; - pgstyles.PgStyles[1].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[1].Items[7].Col = 558; - pgstyles.PgStyles[1].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[1].Items[8].Col = 558; - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[9].Col = 337; - - //Cover Page - //{PS-CONFSTATE} - pgstyles.PgStyles[2].Items[1].Col = 256; - //{COVERPROCTITLE} - pgstyles.PgStyles[2].Items[6].Col = 300; - pgstyles.PgStyles[2].Items[6].Row = 84; - pgstyles.PgStyles[2].Items[6].Style.CPI = "8"; - pgstyles.PgStyles[2].Items[6].Justify = "PSCenter"; - //{EOPNUM} - pgstyles.PgStyles[2].Items[7].Col = 511; - pgstyles.PgStyles[2].Items[7].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[2].Items[8].Col = 513; - pgstyles.PgStyles[2].Items[8].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[2].Items[9].Col = 513; - //{PS-CONFSTATE} - pgstyles.PgStyles[2].Items[13].Col = 256; - - //Accessory page - //{PS-CONFSTATE} - pgstyles.PgStyles[3].Items[1].Col = 256; - //{COVERPROCTITLE} - pgstyles.PgStyles[3].Items[5].Col = 300; - pgstyles.PgStyles[3].Items[5].Row = 84; - pgstyles.PgStyles[3].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[3].Items[6].Col = 511; - pgstyles.PgStyles[3].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[3].Items[7].Col = 513; - pgstyles.PgStyles[3].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[3].Items[8].Col = 513; - //{PS-CONFSTATE} - pgstyles.PgStyles[3].Items[11].Col = 256; - - //Attachment with Checkoffs (Step Editor) - //{PS-CONFSTATE} - pgstyles.PgStyles[4].Items[1].Col = 287; - //{COVERPROCTITLE} - pgstyles.PgStyles[4].Items[5].Col = 336; - pgstyles.PgStyles[4].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[4].Items[6].Col = 511; - pgstyles.PgStyles[4].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[4].Items[7].Col = 513; - pgstyles.PgStyles[4].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[4].Items[8].Col = 513; - //{PS-CONFSTATE} - pgstyles.PgStyles[4].Items[11].Col = 287; - - } - private void AddNSPABPage_Z00(ref PageStyles pgstyles) - { - //"Attachment with Checkoff - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[1].Col = 287; - //{COVERPROCTITLE} - pgstyles.PgStyles[0].Items[5].Col = 336; - pgstyles.PgStyles[0].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[0].Items[6].Col = 511; - pgstyles.PgStyles[0].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[0].Items[7].Col = 513; - pgstyles.PgStyles[0].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[0].Items[8].Col = 513; - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[11].Col = 287; - - //Attachments - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[1].Col = 267; - //{COVERPROCTITLE} - pgstyles.PgStyles[1].Items[5].Col = 279; - pgstyles.PgStyles[1].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[1].Items[6].Col = 510; - pgstyles.PgStyles[1].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[1].Items[7].Col = 510; - pgstyles.PgStyles[1].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[1].Items[8].Col = 504; - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[11].Col = 267; - } - private void AddNSPABPage_Z01(ref PageStyles pgstyles) - { - //Background Text - First Page - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[1].Col = 287; - //{COVERPROCTITLE} - pgstyles.PgStyles[0].Items[5].Col = 336; - pgstyles.PgStyles[0].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[0].Items[6].Col = 511; - pgstyles.PgStyles[0].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[0].Items[7].Col = 513; - pgstyles.PgStyles[0].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[0].Items[8].Col = 512; - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[12].Col = 287; - - //Background Text - Blank Page - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[1].Col = 287; - //{COVERPROCTITLE} - pgstyles.PgStyles[1].Items[5].Col = 336; - pgstyles.PgStyles[1].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[1].Items[6].Col = 511; - pgstyles.PgStyles[1].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[1].Items[7].Col = 513; - pgstyles.PgStyles[1].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[1].Items[8].Col = 512; - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[10].Col = 287; - } - private void AddNSPABPage_Z02(ref PageStyles pgstyles) - { - //Foldout Pages - //{SECTIONLEVELTITLE} - pgstyles.PgStyles[0].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[2].Style.CPI = "12"; - } - private void AddNSPDEVPage(ref PageStyles pgstyles) - { - // we need to add one new pgstyle - // expand the pgstyles.PgStyles array by one; - int numstyles = pgstyles.PgStyles.Length; // number of current PgStyles - numstyles += 1; // adding one more page styles - PageStyle[] pgs = new PageStyle[numstyles]; - // Deviation - - //int ii = 0; - //for (int i = 0; i < numstyles; i++) - //{ - // PageStyle ps = new PageStyle(); - // if (i != 2) ii++; // insert a new section by copying the second one - // if (i < numstyles - 1) - // ps = pgstyles.PgStyles[ii]; - // pgs[i] = ps; - //} - //pgstyles.PgStyles = pgs; - - - //Procedure Steps (Step Deviations) - copy and adjust font size - PageStyle ps = new PageStyle(); - PSItem[] Fpsitms = null; - ps = pgstyles.PgStyles[0]; - //PROCTITLE - ps.Items[2].Style.FontSize = "11"; - //REV - ps.Items[3].Style.FontSize = "11"; - //EOPNUM - ps.Items[4].Style.FontSize = "11"; - //Page {PAGE} of {OF} - ps.Items[6].Style.FontSize = "11"; - pgs[0] = ps; - - // Cover Page - ps = new PageStyle(); - ps.Name = "Cover Page"; - ps.Index = 1; - - Fpsitms = null; - Fpsitms = new PSItem[5]; - - PSItem pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -3; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[0] = pi; - - pi = new PSItem(); - pi.Token = "Deviation Document"; - pi.Row = 132; - pi.Col = 237; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[1] = pi; - - pi = new PSItem(); - pi.Token = "{EOPNUM}"; - pi.Row = 156; - pi.Col = 237; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "{PROCTITLE}"; - pi.Row = 180; - pi.Col = 237; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[3] = pi; - - pi = new PSItem(); - pi.Token = "Revision {REV}"; - pi.Row = 204; - pi.Col = 237; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[4] = pi; - - ps.Items = Fpsitms; - pgs[1] = ps; - - //Introduction and Accessory page - With one Box (Header with One Box) - ps = new PageStyle(); - ps.Name = "Introduction and Accessory page - With Box"; - ps.Index = 2; - - Fpsitms = null; - Fpsitms = new PSItem[7]; - - pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[0] = pi; - - pi = new PSItem(); - pi.Token = "{HEADER1}"; - pi.Row = 24; - pi.Col = -6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[1] = pi; - - pi = new PSItem(); - pi.Token = "{PROCTITLE}"; - pi.Row = 60; - pi.Col = 255; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "{REV}"; - pi.Row = 60; - pi.Col = 477; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[3] = pi; - - pi = new PSItem(); - pi.Token = "{EOPNUM}"; - pi.Row = 60; - pi.Col = 45; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[4] = pi; - - pi = new PSItem(); - pi.Token = "{BOX1}"; - pi.Row = 96; - pi.Col = -6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[5] = pi; - - pi = new PSItem(); - pi.Token = "Page {PAGE} of {OF}"; - pi.Row = 732; - pi.Col = 261; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[6] = pi; - - ps.Items = Fpsitms; - pgs[2] = ps; - - //Introduction and Accessory page - Without Box (Header without Box) - ps = new PageStyle(); - ps.Name = "Introduction and Accessory page - Without Box"; - ps.Index = 3; - - Fpsitms = null; - Fpsitms = new PSItem[6]; - - pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[0] = pi; - - pi = new PSItem(); - pi.Token = "{HEADER1}"; - pi.Row = 24; - pi.Col = -6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[1] = pi; - - pi = new PSItem(); - pi.Token = "{PROCTITLE}"; - pi.Row = 60; - pi.Col = 255; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "{REV}"; - pi.Row = 60; - pi.Col = 477; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[3] = pi; - - pi = new PSItem(); - pi.Token = "{EOPNUM}"; - pi.Row = 60; - pi.Col = 45; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[4] = pi; - - pi = new PSItem(); - pi.Token = "Page {PAGE} of {OF}"; - pi.Row = 732; - pi.Col = 261; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[5] = pi; - - ps.Items = Fpsitms; - pgs[3] = ps; - - pgstyles.PgStyles = pgs; - - } - private void AddNSPIFGPage(ref PageStyles pgstyles) - { - //First Page of Procedure Steps - //{EOPNUM} - pgstyles.PgStyles[0].Items[4].Token = "{PS=UseIFGName?[PS-IFGName]|[EOPNUM]}"; - - //The Rest of the Procedure Steps - //{EOPNUM} - pgstyles.PgStyles[1].Items[4].Token = "{PS=UseIFGName?[PS-IFGName]|[EOPNUM]}"; - //{HLSTEXT} - pgstyles.PgStyles[1].Items[8].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[8].Style.FontSize = "11"; - } - private void AddNSPIFG_00Page(ref PageStyles pgstyles) - { - //First Page of Procedure Steps - //{EOPNUM} - pgstyles.PgStyles[0].Items[4].Token = "{PS=UseIFGName?[PS-IFGName]|[EOPNUM]}"; - //{SECTIONLEVELTITLE} - pgstyles.PgStyles[0].Items[8].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[8].Style.FontSize = "11"; - //{HLSTEXT} - pgstyles.PgStyles[0].Items[9].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[9].Style.FontSize = "11"; - //The Rest of the Procedure Steps - //{EOPNUM} - pgstyles.PgStyles[1].Items[4].Token = "{PS=UseIFGName?[PS-IFGName]|[EOPNUM]}"; - } - private void AddNSPARPPage(ref PageStyles pgstyles) - { - //First Page of Procedure Steps - //{PS-SHORTTIT1} - pgstyles.PgStyles[0].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[4].Style.FontSize = "11"; - //{PS-ALARM1} - pgstyles.PgStyles[0].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[5].Style.FontSize = "11"; - //{PS-SHORTTIT2} - pgstyles.PgStyles[0].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[6].Style.FontSize = "11"; - //{PS-ALARM2} - pgstyles.PgStyles[0].Items[7].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[7].Style.FontSize = "11"; - //{PS-SHORTTIT3} - pgstyles.PgStyles[0].Items[8].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[8].Style.FontSize = "11"; - //{PS-ALARM3} - pgstyles.PgStyles[0].Items[9].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[9].Style.FontSize = "11"; - //{PS-ALARM4} - pgstyles.PgStyles[0].Items[10].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[10].Style.FontSize = "11"; - //{PS-LONGTIT1} - pgstyles.PgStyles[0].Items[11].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[11].Style.FontSize = "11"; - //{PS-LONGTIT2} - pgstyles.PgStyles[0].Items[12].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[12].Style.FontSize = "11"; - //{PS-LONGTIT3} - pgstyles.PgStyles[0].Items[13].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[13].Style.FontSize = "11"; - //{PS-TRIPPED1} - pgstyles.PgStyles[0].Items[14].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[14].Style.FontSize = "11"; - //{PS-RESET1} - pgstyles.PgStyles[0].Items[15].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[15].Style.FontSize = "11"; - //{PS-LONGTIT4} - pgstyles.PgStyles[0].Items[16].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[16].Style.FontSize = "11"; - //{PS-TRIPPED2} - pgstyles.PgStyles[0].Items[17].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[17].Style.FontSize = "11"; - //{PS-RESET2} - pgstyles.PgStyles[0].Items[18].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[18].Style.FontSize = "11"; - //{PS=BOP_NSSS?SER Input Point: [PS-SERINPORT]|} - pgstyles.PgStyles[0].Items[19].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[19].Style.FontSize = "11"; - //{PS-TRIPPED3} - pgstyles.PgStyles[0].Items[20].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[20].Style.FontSize = "11"; - //{PS-RESET3} - pgstyles.PgStyles[0].Items[21].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[21].Style.FontSize = "11"; - //{PS=BOP_NSSS? Address: [PS-ADDRESS]|} - pgstyles.PgStyles[0].Items[22].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[22].Style.FontSize = "11"; - //{PS-TRIPPED4} - pgstyles.PgStyles[0].Items[23].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[23].Style.FontSize = "11"; - //{PS-RESET4} - pgstyles.PgStyles[0].Items[24].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[24].Style.FontSize = "11"; - } - private void AddNSPARP_00Page(ref PageStyles pgstyles) - { - //First Page of Procedure Steps - //{PS=TIMEDELAY?[BOX4]|} - pgstyles.PgStyles[0].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[3].Style.FontSize = "11"; - //{PS-SHORTTIT1} - pgstyles.PgStyles[0].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[4].Style.FontSize = "11"; - //{PS-ALARM1} - pgstyles.PgStyles[0].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[5].Style.FontSize = "11"; - //{PS-SHORTTIT2} - pgstyles.PgStyles[0].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[6].Style.FontSize = "11"; - //{PS-ALARM2} - pgstyles.PgStyles[0].Items[7].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[7].Style.FontSize = "11"; - //{PS-SHORTTIT3} - pgstyles.PgStyles[0].Items[8].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[8].Style.FontSize = "11"; - //{PS-ALARM3} - pgstyles.PgStyles[0].Items[9].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[9].Style.FontSize = "11"; - //{PS-ALARM4} - pgstyles.PgStyles[0].Items[10].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[10].Style.FontSize = "11"; - //{PS-LONGTIT1} - pgstyles.PgStyles[0].Items[11].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[11].Style.FontSize = "11"; - //{PS-LONGTIT2} - pgstyles.PgStyles[0].Items[12].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[12].Style.FontSize = "11"; - //{PS-LONGTIT3} - pgstyles.PgStyles[0].Items[13].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[13].Style.FontSize = "11"; - //{PS-TRIPPED1} - pgstyles.PgStyles[0].Items[14].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[14].Style.FontSize = "11"; - //{PS-RESET1} - pgstyles.PgStyles[0].Items[15].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[15].Style.FontSize = "11"; - //{PS-LONGTIT4} - pgstyles.PgStyles[0].Items[16].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[16].Style.FontSize = "11"; - //{PS-TRIPPED2} - pgstyles.PgStyles[0].Items[17].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[17].Style.FontSize = "11"; - //{PS-RESET2} - pgstyles.PgStyles[0].Items[18].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[18].Style.FontSize = "11"; - //{PS-TRIPPED3} - pgstyles.PgStyles[0].Items[19].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[19].Style.FontSize = "11"; - //{PS-RESET3} - pgstyles.PgStyles[0].Items[20].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[20].Style.FontSize = "11"; - //{PS-TRIPPED4} - pgstyles.PgStyles[0].Items[21].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[21].Style.FontSize = "11"; - //{PS-RESET4} - pgstyles.PgStyles[0].Items[22].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[22].Style.FontSize = "11"; - } - private void AddNSPSAMPage(ref PageStyles pgstyles) - { - // Procedure Steps - pgstyles.PgStyles[0].Items[2].Style.CPI = "10"; - // Figures Included in Page Count - pgstyles.PgStyles[1].Items[2].Style.CPI = "10"; - //Cover sheet with retention 5 years - //{EOPNUM} - pgstyles.PgStyles[2].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[1].Style.FontSize = "11"; - //REV. {REV} - pgstyles.PgStyles[2].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[2].Style.FontSize = "11"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[2].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[3].Style.FontSize = "11"; - //Retention: 5 Yrs. - pgstyles.PgStyles[2].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[4].Style.FontSize = "11"; - //Cover Sheet - //{EOPNUM} - pgstyles.PgStyles[3].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[1].Style.FontSize = "11"; - //REV. {REV} - pgstyles.PgStyles[3].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[2].Style.FontSize = "11"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[3].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[3].Style.FontSize = "11"; - //Figures with Seperate Pagination - // PROCTITLE - pgstyles.PgStyles[6].Items[2].Style.CPI = "10"; - //Page {DOCCURPAGE} of {DOCTOTPAGE} - pgstyles.PgStyles[6].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[6].Items[6].Style.FontSize = "11"; - // Figures with Section Info - // PROCTITLE - pgstyles.PgStyles[7].Items[2].Style.CPI = "10"; - - // we need to add one new pgstyle - // expand the pgstyles.PgStyles array by one; - int numstyles = pgstyles.PgStyles.Length; // number of current PgStyles - numstyles += 1; // adding one more page styles - PageStyle[] pgs = new PageStyle[numstyles]; - PageStyle ps;// new PageStyle(); - // copy existing page lists - for (int i = 0; i < numstyles - 1; i++) - { - ps = new PageStyle(); - ps = pgstyles.PgStyles[i]; - pgs[i] = ps; - } - // Attachment with Section Info - ps = new PageStyle(); - ps.Name = "Attachment with Section Info"; - ps.Index = 8; - - PSItem[] Fpsitms = null; - Fpsitms = new PSItem[9]; - - PSItem pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -3; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[0] = pi; - - pi = new PSItem(); - pi.Token = "{HEADER1}"; - pi.Row = 24; - pi.Col = -18; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[1] = pi; - - pi = new PSItem(); - pi.Token = "{PROCTITLE}"; - pi.Row = 60; - pi.Col = 249; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "10"; - pi.Style.FontStyle = "None"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "REV. {REV}"; - pi.Row = 60; - pi.Col = 465; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[3] = pi; - - pi = new PSItem(); - pi.Token = "{EOPNUM}"; - pi.Row = 60; - pi.Col = 27; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[4] = pi; - - pi = new PSItem(); - pi.Token = "{BOX1}"; - pi.Row = 96; - pi.Col = -18; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[5] = pi; - - pi = new PSItem(); - pi.Token = "{SECTIONLEVELNUMBER}"; - pi.Row = 126; - pi.Col = 231; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "12"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "Bold"; - Fpsitms[6] = pi; - - pi = new PSItem(); - pi.Token = "{SECTIONLEVELTITLE}"; - pi.Row = 138; - pi.Col = 231; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "12"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "Bold"; - Fpsitms[7] = pi; - - pi = new PSItem(); - pi.Token = "Page {DOCCURPAGE} of {DOCTOTPAGE}"; - pi.Row = 732; - pi.Col = 231; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[8] = pi; - - ps.Items = Fpsitms; - pgs[numstyles-1] = ps; - - pgstyles.PgStyles = pgs; // save new pagelist - } - private void AddRGEPage(ref PageStyles pgstyles) - { - // Procedure Steps - pgstyles.PgStyles[0].Items[4].Col = 30; // EOPNUM - } - private void AddRGEBCKPage(ref PageStyles pgstyles) - { - // Procedure Steps - pgstyles.PgStyles[0].Items[1].Token = @"\ul STEP DESCRIPTION TABLE FOR {EOPNUM}\ulnone {CM:(Cont)}"; - // Cover page - pgstyles.PgStyles[1].Items[8].Col = 432; // REV - // Revision Page / Table of Contents - pgstyles.PgStyles[2].Items[1].Row = 738; // EOPNUM - pgstyles.PgStyles[2].Items[2].Row = 738; // REV - //Revision Page / Table of Contents (After first page) - pgstyles.PgStyles[5].Items[1].Row = 738; // EOPNUM - pgstyles.PgStyles[5].Items[2].Row = 738; // ROMANPAGE - pgstyles.PgStyles[5].Items[3].Row = 738; // REV - } - - private void AddRGESam1Page(ref PageStyles pgstyles) - { - // CoverPage - add the Revision to the pagelist - int cnt = pgstyles.PgStyles.Length + 1; - PSItem[] Fpsitms = null; - PSItem pi = new PSItem(); - pi.Style = new VE_Font(); - - pi.Token = "REVISION {REV}"; - pi.Row = 382; - pi.Col = 242; - pi.Justify = "PSCenter"; - pi.Style.FontFamily = "Courier New"; - pi.Style.FontSize = "12"; - pi.Style.CPI = "10"; - Fpsitms = new PSItem[cnt]; - pgstyles.PgStyles[3].Items.CopyTo(Fpsitms, 0); - Fpsitms[cnt - 1] = pi; - pgstyles.PgStyles[3].Items = Fpsitms; - } - - /* Under Development - // TP_ALL - private void AddTPPage(ref PageStyles pgstyles) - { - // Procedure Steps - pgstyles.PgStyles[0].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[0].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[0].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[0].Items[2].Col = 465; //{PAGE} - pgstyles.PgStyles[0].Items[3].Col = 45; //{EOPNUM} - pgstyles.PgStyles[0].Items[4].Col = 249; //{PROCTITLE} - pgstyles.PgStyles[0].Items[5].Col = 471; //{REV} - pgstyles.PgStyles[0].Items[6].Col = -54; //{BOX1} - pgstyles.PgStyles[0].Items[6].Row = -13; //{BOX1} - pgstyles.PgStyles[0].Items[7].Col = 255; //{FINALPAGE} - - // cover page - pgstyles.PgStyles[1].Items[2].Row = 186; //{UnitText} - pgstyles.PgStyles[1].Items[3].Row = 330; //{EOPNUM} - pgstyles.PgStyles[1].Items[3].Col = 309; //{EOPNUM} - pgstyles.PgStyles[1].Items[4].Row = 576; //{COVERTITLE1} - pgstyles.PgStyles[1].Items[4].Col = 309; //{COVERTITEL1} - pgstyles.PgStyles[1].Items[5].Row = 594; //{COVERTITLE2} - pgstyles.PgStyles[1].Items[5].Col = 309; //{COVERTITEL2} - pgstyles.PgStyles[1].Items[6].Row = 636; //"Continuous Use" - pgstyles.PgStyles[1].Items[6].Col = 309; //"Continuous Use" - pgstyles.PgStyles[1].Items[7].Row = 660; //{Box6} - pgstyles.PgStyles[1].Items[7].Col = 57; //{Box6} - pgstyles.PgStyles[1].Items[8].Row = 672; //{PS-PROCTYPE} - pgstyles.PgStyles[1].Items[8].Col = 291; //{PS-PROCTYPE} - pgstyles.PgStyles[1].Items[9].Row = 696; //{PS-RESPDEPT} - pgstyles.PgStyles[1].Items[10].Row = 708; //{PS-RESPAPP} - - //unused - Purpose, Symptoms, Reference - pgstyles.PgStyles[2].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[2].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[2].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[2].Items[2].Col = 447; //{PAGE} - pgstyles.PgStyles[2].Items[3].Col = 33; //{EOPNUM} - pgstyles.PgStyles[2].Items[4].Col = 249; //{PROCTITLE} - pgstyles.PgStyles[2].Items[5].Col = 459; //{REV} - pgstyles.PgStyles[2].Items[6].Col = -54; //{BOX3} - pgstyles.PgStyles[2].Items[6].Row = -13; //{BOX3} - pgstyles.PgStyles[2].Items[7].Col = 243; //{FINALPAGE} - - // Single Column Attachments - pgstyles.PgStyles[3].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[3].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[3].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[3].Items[2].Col = 459; //{PAGE} - pgstyles.PgStyles[3].Items[3].Col = 39; //{EOPNUM} - pgstyles.PgStyles[3].Items[4].Col = 249; //{PROCTITLE} - pgstyles.PgStyles[3].Items[5].Col = 459; //{REV} - pgstyles.PgStyles[3].Items[6].Col = -54; //{BOX3} - pgstyles.PgStyles[3].Items[6].Row = -13; //{BOX3} - pgstyles.PgStyles[3].Items[7].Col = 255; //{SECTIONLEVELNUMBER} - pgstyles.PgStyles[3].Items[8].Col = 255; //{DOCCURPAGE} - pgstyles.PgStyles[3].Items[10].Col = 243; //{FINALPAGE} - - //Two Column Attachments - pgstyles.PgStyles[4].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[4].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[4].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[4].Items[2].Col = 459; //{PAGE} - pgstyles.PgStyles[4].Items[3].Col = 39; //{EOPNUM} - pgstyles.PgStyles[4].Items[4].Col = 249; //{PROCTITLE} - pgstyles.PgStyles[4].Items[5].Col = 459; //{REV} - pgstyles.PgStyles[4].Items[6].Col = -54; //{BOX1} - pgstyles.PgStyles[4].Items[6].Row = -13; //{BOX1} - pgstyles.PgStyles[4].Items[7].Col = 255; //{SECTIONLEVELNUMBER} - pgstyles.PgStyles[4].Items[8].Col = 255; //{DOCCURPAGE} - pgstyles.PgStyles[4].Items[10].Col = 243; //{FINALPAGE} - - //Ter Editor Attachments - pgstyles.PgStyles[5].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[5].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[5].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[5].Items[2].Col = 447; //{PAGE} - pgstyles.PgStyles[5].Items[3].Col = 33; //{EOPNUM} - pgstyles.PgStyles[5].Items[4].Col = 237; //{PROCTITLE} - pgstyles.PgStyles[5].Items[5].Col = 459; //{REV} - pgstyles.PgStyles[5].Items[6].Col = -54; //{BOX3} - pgstyles.PgStyles[5].Items[6].Row = -13; //{BOX3} - pgstyles.PgStyles[5].Items[7].Col = 237; //{SECTIONLEVELNUMBER} - pgstyles.PgStyles[5].Items[8].Col = 237; //{DOCCURPAGE} - pgstyles.PgStyles[5].Items[10].Col = 243; //{FINALPAGE} - - //Duplex Foldout Page - pgstyles.PgStyles[6].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[6].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[6].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[6].Items[2].Col = 465; //{PAGE} - pgstyles.PgStyles[6].Items[4].Col = 39; //{EOPNUM} - pgstyles.PgStyles[6].Items[5].Col = 471; //{REV} - pgstyles.PgStyles[6].Items[6].Col = -54; //{BOX3} - pgstyles.PgStyles[6].Items[6].Row = -13; //{BOX3} - - //Figures (Ter Editor) - pgstyles.PgStyles[7].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[7].Items[1].Col = -54; // {HEADER1} - pgstyles.PgStyles[7].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[7].Items[2].Col = 447; //{PAGE} - pgstyles.PgStyles[7].Items[3].Col = 27; //{EOPNUM} - pgstyles.PgStyles[7].Items[4].Col = 237; //{PROCTITLE} - pgstyles.PgStyles[7].Items[5].Col = 453; //{REV} - pgstyles.PgStyles[7].Items[6].Col = -54; //{BOX3} - pgstyles.PgStyles[7].Items[6].Row = -13; //{BOX3} - pgstyles.PgStyles[7].Items[7].Col = 243; //{SECTIONLEVELNUMBER} - pgstyles.PgStyles[7].Items[8].Col = 243; //{DOCCURPAGE} - pgstyles.PgStyles[7].Items[10].Col = 243; //{FINALPAGE} - } - - private void AddTP00Page(ref PageStyles pgstyles) - { - //Purpose, Symptoms, Reference - pgstyles.PgStyles[0].Items[0].Col = -3; // {DRAFT}{MASTER}.... - pgstyles.PgStyles[0].Items[1].Col = -66; // {HEADER1} - pgstyles.PgStyles[0].Items[1].Row = -13; //{HEADER1} - pgstyles.PgStyles[0].Items[2].Col = 447; //{PAGE} - pgstyles.PgStyles[0].Items[3].Col = 33; //{EOPNUM} - pgstyles.PgStyles[0].Items[4].Col = 249; //{PROCTITLE} - pgstyles.PgStyles[0].Items[5].Col = 459; //{REV} - pgstyles.PgStyles[0].Items[6].Col = -66; //{BOX3} - pgstyles.PgStyles[0].Items[6].Row = -13; //{BOX3} - - } - * */ - #region DocStyles - public void AddPlantSpecific(string genFileName, ref DocStyles dcstyles) - { - switch (genFileName.ToUpper()) - { - case "RGESAM1.DOC": - AddRGESam1DOC(ref dcstyles); - break; - case "RGESAM2.DOC": - AddRGESam2DOC(ref dcstyles); - break; - case "RGE.DOC": - AddRGEDOC(ref dcstyles); - break; - case "RGEBCK.DOC": - AddRGEBCKDOC(ref dcstyles); - break; - // in shearon harris format, the fonts were set to 0 in the 16bit docstyle. - // we want them to inherit from plant format, not use the Prestige Elite (font 0) - // from 16bit, so delete those nodes: - case "SHE.DOC": - AddSheDOC(ref dcstyles); - break; - case "SHESSD.DOC": - AddSHESSDDOC(ref dcstyles); - break; - case "CPLSSDD.DOC": - AddCPLSSDDDoc(ref dcstyles); - break; - // in Wolf Creek single column, the Table Of Contents document style was not included in the - // count of pages for the automatic Table Of Contents. This page should be counted in the - // page count when doing the automatic ToC so that page numbers in Toc Match page numbers - // in the document: - case "WCN1.DOC": - AddWCN1Doc(ref dcstyles); - break; - // Adjusted the left margin to better align the procedure text - case "NSP.DOC": - AddNSPDOC(ref dcstyles); - break; - case "NSP.Y00": - AddNSP00DOC(ref dcstyles); - break; - // Adjusted the left margin to better align the procedure text - case "NSPBCK.DOC": - AddNSPBckDOC(ref dcstyles); - break; - case "NSPAB.DOC": - AddNSPABDOC(ref dcstyles); - break; - case "NSPAB.Y00": - AddNSPAB_00DOC(ref dcstyles); - break; - case "NSPAB.Y01": - AddNSPAB_01DOC(ref dcstyles); - break; - case "NSPAB.Y02": - AddNSPAB_02DOC(ref dcstyles); - break; - case "NSPDEV.DOC": - AddNSPDEVDOC(ref dcstyles); - break; - case "NSPIFG.DOC": - case "NSPIFG2.DOC": - AddNSPIFGDOC(ref dcstyles); - break; - case "NSPIFG.Y00": - AddNSPARP_00DOC(ref dcstyles); - break; - case "NSPARP.DOC": - AddNSPARPDOC(ref dcstyles); - break; - case "NSPARP.Y00": - AddNSPARP_00DOC(ref dcstyles); - break; - case "NSPSAM.DOC": - AddNSPSAMDOC(ref dcstyles); - break; - case "IP2.DOC": - AddIp2DOC(ref dcstyles); - break; - case "VCSDEV.DOC": - AddVCSDEVDOC(ref dcstyles); - break; - case "SUM.DOC": - AddSUMDOC(ref dcstyles); - break; - case "IP2.Y02": - AddIP202DOC(ref dcstyles); - break; - case "IP3.Y15": - AddIP315DOC(ref dcstyles); - break; - case "CAL2.DOC": - AddCAL2DOC(ref dcstyles); - break; - case "CALOTO.DOC": - case "CAL2.Y00": - AddCAL2RestDOC(ref dcstyles); - break; - case "CALBCK.DOC": - AddCALBCKDOC(ref dcstyles); - break; - case "CPL.DOC": - AddCPLDOC(ref dcstyles); - break; - case "CPL.Y00": - AddCPL_Y00(ref dcstyles); - break; - case "CPL.Y01": - AddCPL_Y01(ref dcstyles); - break; - case "CPL.Y02": - AddCPL_Y02(ref dcstyles); - break; - case "CPL.Y03": - AddCPL_Y03(ref dcstyles); - break; - case "CPLA.DOC": - AddCPLA(ref dcstyles); - break; - case "CPLRDEV.DOC": - AddCPLRDEV(ref dcstyles); - break; - case "CPBCK.DOC": - AddCPBCK(ref dcstyles); - break; - case "CPBCK.Y00": - AddCPBCK_Y00(ref dcstyles); - break; - case "CPBCK.Y01": - AddCPBCK_Y01(ref dcstyles); - break; - case "CPBCK2.DOC": - AddCPBCK2(ref dcstyles); - break; - case "TUEC.DOC": - AddTUCEDOC(ref dcstyles); - break; - case "FNP.DOC": - AddFNPDOC(ref dcstyles); - break; - case "FNP.Y00": - case "FNP.Y01": - AddFNP_Y0x(ref dcstyles); - break; - case "FNPCAS.DOC": - AddFNPCASDOC(ref dcstyles); - break; - case "CAT.DOC": - case "CATBOX.DOC": - AddCATDOC(ref dcstyles); - break; - case "MCG.DOC": - case "MCGBOX.DOC": - AddMCGDOC(ref dcstyles); - break; - } - } - private void AddFNPCASDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].TopMargin = 78; - dcstyles.DcStyles[0].PageLength = 672; - dcstyles.DcStyles[0].PageWidth = 560; - } - private void AddFNPDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[5].ComponentList = true; - dcstyles.DcStyles[5].TopMargin = 144; - dcstyles.DcStyles[0].CBNoOverrideSpace = true; - dcstyles.DcStyles[1].CBNoOverrideSpace = true; - dcstyles.DcStyles[3].CBNoOverrideSpace = true; - dcstyles.DcStyles[4].CBNoOverrideSpace = true; - dcstyles.DcStyles[7].CBNoOverrideSpace = true; - } - private void AddFNP_Y0x(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].CBNoOverrideSpace = true; - dcstyles.DcStyles[1].ComponentList = true; - dcstyles.DcStyles[1].TopMargin = 144; - } - private void AddCALBCKDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].PageWidth = 560; - dcstyles.DcStyles[0].ContTop = ""; - } - private void AddCAL2RestDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[1].PageLength = 672; - } - private void AddCAL2DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[1].PageLength = 672; - dcstyles.DcStyles[5].ExtraLineHeader = true; - } - private void AddIP315DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].ContBottom = "(STEP %0d CONTINUED ON NEXT PAGE)"; - } - private void AddIP202DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].LeftMargin = 12; - dcstyles.DcStyles[1].LeftMargin = 12; - } - - private void AddIp2DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].ContTop = ""; - } - private void AddCPLSSDDDoc(ref DocStyles dcstyles) - { - dcstyles.DcStyles[2].PageWidth = 576; - } - private void AddSHESSDDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].CTMargin = 0; - dcstyles.DcStyles[0].ContTop = ""; - dcstyles.DcStyles[0].PageLength = 618; - dcstyles.DcStyles[5].CTMargin = 0; - dcstyles.DcStyles[5].ContTop = ""; - } - - private void AddSheDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].ContTopHLS = 0; - dcstyles.DcStyles[0].CTMargin = 24; - dcstyles.DcStyles[0].ContTop = "Step %d (Continued)"; - dcstyles.DcStyles[0].UseCheckOffs = false; - dcstyles.DcStyles[1].UseCheckOffs = false; - // fonts (dstyle) in DocStyles that had a '0' in the 16bit format file (she.doc), should - // inherit from the plant level in 32 bit rather than use Prestige Elite (0 -> Prestige Elite) - dcstyles.DcStyles[1].dstyle = null; - dcstyles.DcStyles[2].dstyle = null; - dcstyles.DcStyles[3].dstyle = null; - dcstyles.DcStyles[4].dstyle = null; - dcstyles.DcStyles[5].dstyle = null; - dcstyles.DcStyles[6].dstyle = null; - dcstyles.DcStyles[7].dstyle = null; - dcstyles.DcStyles[8].dstyle = null; - dcstyles.DcStyles[1].PageLength = 592; - - //adding new single column docstyle for purpose and symptoms - Array.Resize(ref dcstyles.DcStyles, dcstyles.DcStyles.Length + 1); - dcstyles.DcStyles[9].Name = "Purpose/Symptom"; - dcstyles.DcStyles[9].Index = 9; - dcstyles.DcStyles[9].pagestyle = 9; - dcstyles.DcStyles[9].CancelSectTitle = false; - dcstyles.DcStyles[9].FooterLen = 12F; - dcstyles.DcStyles[9].IsStepSection = true; - dcstyles.DcStyles[9].LeftMargin = 102; - dcstyles.DcStyles[9].numberingsequence = 1; - dcstyles.DcStyles[9].PageLength = 636; - dcstyles.DcStyles[9].PageWidth = 547.2F; - dcstyles.DcStyles[9].ShowSectionTitles = true; - dcstyles.DcStyles[9].SpecialStepsFoldout = false; - dcstyles.DcStyles[9].TopMargin = 108F; - dcstyles.DcStyles[9].UseCheckOffs = false; - dcstyles.DcStyles[9].dstyle = new VE_Font(); - dcstyles.DcStyles[9].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[9].dstyle.FontSize = "11"; - dcstyles.DcStyles[9].dstyle.FontStyle = "None"; - dcstyles.DcStyles[9].dstyle.CPI = "12"; - } - - public void AddRGESam1DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[4].numberingsequence = 1; // count this section with total document page count - } - - public void AddRGESam2DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[2].numberingsequence = 1; // count this section with total document page count - } - public void AddRGEDOC(ref DocStyles dcstyles) - { - // Introduction pages - dcstyles.DcStyles[1].PageWidth = 591; // needed to increase to match 16-bit word wrapping - // Attachment Pages - dcstyles.DcStyles[2].PageWidth = 601; // needed to increase to match 16-bit word wrapping - } - public void AddRGEBCKDOC(ref DocStyles dcstyles) - { - // Revision Page / Table of Contents - dcstyles.DcStyles[2].TopMargin = 55; - // Revision Page / Table of Contents (after first page) - dcstyles.DcStyles[3].TopMargin = 91; - // Introduction Pages - dcstyles.DcStyles[4].PageWidth = 578; - } - - public void AddWCN1Doc(ref DocStyles dcstyles) - { - // remove the 'DontCountInTabOfCont' flag on the cover page so that page counts in the - // auto table of contents will be correct. - dcstyles.DcStyles[3].DocStructStyle.DocStyle = dcstyles.DcStyles[3].DocStructStyle.DocStyle.Replace(", DontCountInTabOfCont", ""); - } - - public void AddNSPDOC(ref DocStyles dcstyles) - { - //Procedure Steps - dcstyles.DcStyles[0].LeftMargin = 80; - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - //Purpose And Entry Conditions - dcstyles.DcStyles[1].LeftMargin = 62; - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - //Figure Included in Page Count - dcstyles.DcStyles[2].LeftMargin = 80; - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //Cover Page with Retention of 5 Years - dcstyles.DcStyles[3].LeftMargin = 62; - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - //Cover Page 2004 with No Retention - dcstyles.DcStyles[4].LeftMargin = 80; - dcstyles.DcStyles[4].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[4].dstyle.FontSize = "11"; - //Cover Page - dcstyles.DcStyles[5].LeftMargin = 62; - dcstyles.DcStyles[5].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[5].dstyle.FontSize = "11"; - //TER Editor Foldout Pages - dcstyles.DcStyles[6].Name = "MS Word Editor Foldout Pages"; - dcstyles.DcStyles[6].LeftMargin = 50; - dcstyles.DcStyles[6].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[6].dstyle.FontSize = "11"; - //Attachment Pages - dcstyles.DcStyles[7].LeftMargin = 68; - dcstyles.DcStyles[7].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[7].dstyle.FontSize = "11"; - //Two Column Auto Action Pages - dcstyles.DcStyles[8].LeftMargin = 80; - dcstyles.DcStyles[8].PageLength = 552; - dcstyles.DcStyles[8].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[8].dstyle.FontSize = "11"; - dcstyles.DcStyles[8].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[8].ContStyle.FontSize = "11"; - //Auto Continuous Action Summary - dcstyles.DcStyles[9].LeftMargin = 80; - dcstyles.DcStyles[9].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[9].dstyle.FontSize = "11"; - } - public void AddNSP00DOC(ref DocStyles dcstyles) - { - //Step Editor Foldout - dcstyles.DcStyles[0].LeftMargin = 50; - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].dstyle.FontStyle = "None"; - //Foldout Pages (Accessory Editor) - dcstyles.DcStyles[1].LeftMargin = 20; - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].dstyle.FontStyle = "None"; - } - public void AddNSPBckDOC(ref DocStyles dcstyles) - { - //Background Text - first page - dcstyles.DcStyles[0].LeftMargin = 62; - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - //Background Text - rest of pages - dcstyles.DcStyles[1].LeftMargin = 62; - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - //attachments - dcstyles.DcStyles[2].LeftMargin = 68; - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - } - public void AddNSPABDOC(ref DocStyles dcstyles) - { - //Procedure Steps - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].dstyle.CPI = "12"; - //Purpose And Entry Conditions - dcstyles.DcStyles[1].LeftMargin = 15; - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].dstyle.CPI = "12"; - //Attchment with Checkoffs (step editor) - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - dcstyles.DcStyles[2].dstyle.CPI = "12"; - } - public void AddNSPAB_00DOC(ref DocStyles dcstyles) - { - //Abnormal Attachment with Checkoffs - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].dstyle.CPI = "12"; - //Attachments - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].dstyle.CPI = "12"; - } - public void AddNSPAB_01DOC(ref DocStyles dcstyles) - { - //Background Text - First Page - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].dstyle.CPI = "12"; - //Background Text - Blank Page - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].dstyle.CPI = "12"; - } - public void AddNSPAB_02DOC(ref DocStyles dcstyles) - { - //Step Editor Foldout - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].dstyle.CPI = "12"; - //Foldout Pages (Accessory Editor) - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].dstyle.CPI = "12"; - } - public void AddNSPDEVDOC(ref DocStyles dcstyles) - { - // we need to add one new docsyles - // expand the dcstyles.DcStyle array by one; - int numstyles = dcstyles.DcStyles.Length; // number of current docstyles - numstyles += 1; // adding one more docstyles - DocStyle[] dcs = new DocStyle[numstyles]; - int ii = 0; - for (int i = 0; i < numstyles; i++) - { - DocStyle dc = new DocStyle(); - dc = dcstyles.DcStyles[ii]; - dcs[i] = dc; - if (i != 1) ii++; // insert a new section by copying the second one - } - dcstyles.DcStyles = dcs; - - dcstyles.DcStyles[0].Name = "Step Deviations"; - //Procedure Steps - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - //dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - //dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - dcstyles.DcStyles[0].PageLength = 564; - - //Cover Page - dcstyles.DcStyles[1].Name = "Cover Page"; - dcstyles.DcStyles[1].numberingsequence = 3; - dcstyles.DcStyles[1].oldtonew = 32; // gotten from NSP Enhanced Dev format - dcstyles.DcStyles[1].TopMargin = 228; - dcstyles.DcStyles[1].FooterLen = 12; - dcstyles.DcStyles[1].PageLength = 540; - dcstyles.DcStyles[1].PageWidth = 576; - dcstyles.DcStyles[1].LeftMargin = 48; - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - //dcstyles.DcStyles[1].ContStyle.FontFamily = "Arial"; - //dcstyles.DcStyles[1].ContStyle.FontSize = "11"; - - //Introduction & Appendix Pages - With Box - dcstyles.DcStyles[2].Name = "Introduction & Appendix Pages - With Box"; - dcstyles.DcStyles[2].Index = 2; - dcstyles.DcStyles[2].oldtonew = 448; - dcstyles.DcStyles[2].pagestyle = 2; - dcstyles.DcStyles[2].TopMargin = 132; - dcstyles.DcStyles[2].FooterLen = 0; - dcstyles.DcStyles[2].PageLength = 780; - dcstyles.DcStyles[2].PageWidth = 576; - dcstyles.DcStyles[2].LeftMargin = 42; - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //dcstyles.DcStyles[2].ContStyle.FontFamily = "Arial"; - //dcstyles.DcStyles[2].ContStyle.FontSize = "11"; - - //Foldout Pages - //Introduction & Appendix Pages - Without Box - dcstyles.DcStyles[3].Name = "Introduction & Appendix Pages - Without Box"; - dcstyles.DcStyles[3].Index = 3; - dcstyles.DcStyles[3].numberingsequence = 1; - dcstyles.DcStyles[3].oldtonew = 506888; - dcstyles.DcStyles[3].pagestyle = 3; - dcstyles.DcStyles[3].TopMargin = 108; - dcstyles.DcStyles[3].FooterLen = 0; - dcstyles.DcStyles[3].PageLength = 780; - dcstyles.DcStyles[3].PageWidth = 576; - dcstyles.DcStyles[3].LeftMargin = 42; - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - //dcstyles.DcStyles[3].ContStyle.FontFamily = "Arial"; - //dcstyles.DcStyles[3].ContStyle.FontSize = "11"; - } - public void AddNSPIFGDOC(ref DocStyles dcstyles) - { - //First Procedure Steps Page - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - //All But First Procedure Steps Page - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].ContStyle.FontSize = "11"; - //Cover Page - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //Appendix Pages - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - - dcstyles.DcStyles[0].ContTop = ""; - dcstyles.DcStyles[1].ContTop = ""; - - } - public void AddNSPARPDOC(ref DocStyles dcstyles) - { - //First Procedure Steps Page - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - //All But First Procedure Steps Page - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].ContStyle.FontSize = "11"; - //Cover Page - dcstyles.DcStyles[2].pagestyle = 4; - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //Appendix Pages - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - //Annunciator Title Page - dcstyles.DcStyles[4].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[4].dstyle.FontSize = "11"; - dcstyles.DcStyles[4].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[4].ContStyle.FontSize = "11"; - } - public void AddNSPARP_00DOC(ref DocStyles dcstyles) - { - //First Procedure Steps Page - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - //All But First Procedure Steps Page - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].ContStyle.FontSize = "11"; - //Cover Page - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //Appendix Pages - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - } - public void AddNSPSAMDOC(ref DocStyles dcstyles) - { - // we need to add one new docsyles - // expand the dcstyles.DcStyle array by one; - int numstyles = dcstyles.DcStyles.Length; // number of current docstyles - numstyles += 1; // adding one more docstyle - DocStyle[] dcs = new DocStyle[numstyles]; - int ii = 0; - for (int i = 0; i < numstyles; i++) - { - DocStyle dc = new DocStyle(); - if (i == numstyles - 1) - dc = dcstyles.DcStyles[5]; // insert a new section by copying the sixth one - else - dc = dcstyles.DcStyles[ii]; - dcs[i] = dc; - ii++; - } - dcstyles.DcStyles = dcs; - //Procedure Steps - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - //Purpose And Entry Conditions - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - //Figures Included in Page Count - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //Cover Page with retention of 5 years - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - //Cover Page - dcstyles.DcStyles[4].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[4].dstyle.FontSize = "11"; - //Foldout Pages - dcstyles.DcStyles[5].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[5].dstyle.FontSize = "11"; - //Attachment Pages - dcstyles.DcStyles[6].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[6].dstyle.FontSize = "11"; - //Landscape Pages - dcstyles.DcStyles[7].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[7].dstyle.FontSize = "11"; - //Figures with Seperate Pagination - dcstyles.DcStyles[8].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[8].dstyle.FontSize = "11"; - //Figures with Section Info - dcstyles.DcStyles[9].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[9].dstyle.FontSize = "11"; - //Attachments with Section Info (copyied from Attachment Pages section) - dcstyles.DcStyles[10].Name = "Attachment Pages With Section Info"; - dcstyles.DcStyles[10].Index = 10; - dcstyles.DcStyles[10].pagestyle = 8; - dcstyles.DcStyles[10].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[10].dstyle.FontSize = "11"; - dcstyles.DcStyles[10].TopMargin = 162; - } - #endregion - } - public partial class RtfToSvg - { - public void AppendPlantSpecific(string genFileName, XmlDocument myDoc) - { - string genName = genFileName.Substring(genFileName.LastIndexOf('\\') + 1); - genName = genName.Substring(0, genName.IndexOf('.')); - switch (genName.ToUpper()) - { - case "WCN2": - AddWCN2(myDoc); - break; - case "WCN1": - AddWCN2(myDoc); // same cover page box as wcn2 - break; - case "NSP": - AddNSP(myDoc); - break; - case "NSPDEV": - AddNSPDEV(myDoc); - break; - case "NSPARP": - AddNSPARP(myDoc); - break; - case "NSPAB": - AddNSPAB(myDoc); - break; - case "NSPIFG": - AddNSPIFG(myDoc); - break; - case "NSPSAM": - AddNSPSAM(myDoc); - break; - case "IP2": - AddIP2(myDoc); - break; - case "FNP": - AddFNP(myDoc); - break; - case "CAL2": - AddCAL2(myDoc); - break; - case "CALOTO": - AddCALOTO(myDoc); - break; - case "TUEC": - AddTUEC(myDoc); - break; - case "CPL": - AddCPL(myDoc); - break; - case "CPLA": - AddCPLA(myDoc); - break; - case "CPLRDEV": - AddCPLRDEV(myDoc); - break; - case "CWE": - AddCWE(myDoc); - break; - case "EXCLN": - AddEXCLN(myDoc); - break; - } - } - - private void AddCALOTO(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "__" + - "__" + - "#" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - } - - private void AddCAL2(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "__" + - "__" + - "#" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - - xdNew.LoadXml(" " + - "" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[1]); - } - - private void AddFNP(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - } - - private void AddIP2(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "\r\n" + - "*\r\n" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - } - - private void AddWCN2(XmlDocument myDoc) - { - XmlDocument xd = new XmlDocument(); - // include the svg level so that the xmlns can be set to be the same as the generated document. - xd.LoadXml("" + - "\r\n" + - "\r\n" + - "\r\n" + - "\r\n" + - "\r\n" + - "\r\n" + - ""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xd.DocumentElement.ChildNodes[0], true)); - } - private void AddNSP(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "Number:" + - "Title:" + - "Revision{sp}Number:" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[1]); - - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "STEP" + - "ACTION/EXPECTED{sp}RESPONSE" + - "RESPONSE{sp}NOT{sp}OBTAINED" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[3]); - - xdNew.LoadXml(" " + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"STEP" + -"ACTION/EXPECTED{sp}RESPONSE" + -"RESPONSE{sp}NOT{sp}OBTAINED" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - - xdNew.LoadXml(" " + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"APPLY" + -"STEP" + -"CONTINUOUS{sp}ACTION" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[5]); - - xdNew.LoadXml(" " + - "E" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[6]); - - xdNew.LoadXml(" " + - "L" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[7]); - - xdNew.LoadXml(" " + - "M" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[8]); - - xdNew.LoadXml(" " + - "N" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[9]); - - xdNew.LoadXml(" " + - "$" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - - xdNew.LoadXml(" " + - "S" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[11]); - - xdNew.LoadXml(" " + - "X" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[12]); - - xdNew.LoadXml(" " + - "C" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - } - - private void AddNSPDEV(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "EOP{sp}Number:" + - "Title:" + - "Revision{sp}Number:" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[1]); - - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "EOP{sp}STEP" + - "ERG{sp}STEP" + - "DEVIATION{sp}/{sp}JUSTIFICATION" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[3]); - - } - private void AddNSPARP(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "" + - "" + - "" + - "O.C.{sp}REVIEW{sp}DATE" + - "REVIEWED{sp}BY:" + - "APPROVED{sp}BY:" + - "DATE:" + - "DATE:" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[2]); - - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "" + - "Alarm" + - "Approximate{sp}Setpoints" + - "Tripped" + - "Reset" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[3]); - - xdNew.LoadXml(" " + - "" + - "TD" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - - xdNew.LoadXml(" " + - "E" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[7]); - - xdNew.LoadXml(" " + - "L" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[8]); - - xdNew.LoadXml(" " + - "M" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[9]); - - xdNew.LoadXml(" " + - "N" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - - xdNew.LoadXml(" " + - "$" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[11]); - - xdNew.LoadXml(" " + - "S" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[12]); - - xdNew.LoadXml(" " + - "X" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[13]); - - xdNew.LoadXml(" " + - "C" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[14]); - - } - private void AddNSPAB(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + -"E" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[7]); - - xdNew.LoadXml(" " + -"L" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[8]); - - xdNew.LoadXml(" " + -"M" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[9]); - - xdNew.LoadXml(" " + -"N" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - - xdNew.LoadXml(" " + -"$" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[11]); - - xdNew.LoadXml(" " + - "S" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[12]); - - xdNew.LoadXml(" " + - "X" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[13]); - - xdNew.LoadXml(" " + - "C" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + -"" + -""); - - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + -""); - - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - } - private void AddNSPIFG(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + -"" + -"" + -"" + -"O.C.{sp}REVIEW{sp}DATE" + -"REVIEWED{sp}BY:" + -"APPROVED{sp}BY:" + -"DATE:" + -"DATE:" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[2]); - - xdNew.LoadXml(" " + -"" + -"" + -"" + -"" + -"" + -"Alarm" + -"Approximate{sp}Setpoints" + -"Tripped" + -"Reset" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[3]); - - xdNew.LoadXml(" " + -"TD" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - - xdNew.LoadXml(" " + -"E" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[7]); - - xdNew.LoadXml(" " + -"L" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[8]); - - xdNew.LoadXml(" " + -"M" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[9]); - - xdNew.LoadXml(" " + -"N" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - - xdNew.LoadXml(" " + -"$" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[11]); - - xdNew.LoadXml(" " + - "S" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "X" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "C" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - } - private void AddNSPSAM(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + -"" + -"" + -"" + -"" + -"Number:" + -"Title:" + -"Revision{sp}Number:" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[1]); - - xdNew.LoadXml(" " + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"STEP" + -"ACTION/EXPECTED{sp}RESPONSE" + -"RESPONSE{sp}NOT{sp}OBTAINED" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[3]); - - xdNew.LoadXml(" " + -"E" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - - xdNew.LoadXml(" " + -"L" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[5]); - - xdNew.LoadXml(" " + -"M" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[6]); - - xdNew.LoadXml(" " + -"N" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[7]); - - xdNew.LoadXml(" " + -"$" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[8]); - - xdNew.LoadXml(" " + - "S" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "X" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "C" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - } - } -} diff --git a/PROMS/fmtxml/AssemblyInfo.cs b/PROMS/fmtxml/AssemblyInfo.cs deleted file mode 100644 index 9f89a328..00000000 --- a/PROMS/fmtxml/AssemblyInfo.cs +++ /dev/null @@ -1,58 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; - -// -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -// -[assembly: AssemblyTitle("")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("")] -[assembly: AssemblyCopyright("")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -// You can specify all the values or you can default the Revision and Build Numbers -// by using the '*' as shown below: - -[assembly: AssemblyVersion("1.0.*")] - -// -// In order to sign your assembly you must specify a key to use. Refer to the -// Microsoft .NET Framework documentation for more information on assembly signing. -// -// Use the attributes below to control which key is used for signing. -// -// Notes: -// (*) If no key is specified, the assembly is not signed. -// (*) KeyName refers to a key that has been installed in the Crypto Service -// Provider (CSP) on your machine. KeyFile refers to a file which contains -// a key. -// (*) If the KeyFile and the KeyName values are both specified, the -// following processing occurs: -// (1) If the KeyName can be found in the CSP, that key is used. -// (2) If the KeyName does not exist and the KeyFile does exist, the key -// in the KeyFile is installed into the CSP and used. -// (*) In order to create a KeyFile, you can use the sn.exe (Strong Name) utility. -// When specifying the KeyFile, the location of the KeyFile should be -// relative to the project output directory which is -// %Project Directory%\obj\. For example, if your KeyFile is -// located in the project directory, you would specify the AssemblyKeyFile -// attribute as [assembly: AssemblyKeyFile("..\\..\\mykey.snk")] -// (*) Delay Signing is an advanced option - see the Microsoft .NET Framework -// documentation for more information on this. -// -[assembly: AssemblyDelaySign(false)] -[assembly: AssemblyKeyFile("")] -[assembly: AssemblyKeyName("")] diff --git a/PROMS/fmtxml/ComPeakFlex.svg b/PROMS/fmtxml/ComPeakFlex.svg deleted file mode 100644 index 9e8c0c16..00000000 Binary files a/PROMS/fmtxml/ComPeakFlex.svg and /dev/null differ diff --git a/PROMS/fmtxml/ComPeakFlexall.xml b/PROMS/fmtxml/ComPeakFlexall.xml deleted file mode 100644 index c5f7071d..00000000 Binary files a/PROMS/fmtxml/ComPeakFlexall.xml and /dev/null differ diff --git a/PROMS/fmtxml/EntireFormat.cs b/PROMS/fmtxml/EntireFormat.cs deleted file mode 100644 index 1ead88b1..00000000 --- a/PROMS/fmtxml/EntireFormat.cs +++ /dev/null @@ -1,76 +0,0 @@ -using System; -using System.IO; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - class EntireFormat - { - private string MyPath; - public EntireFormat(string mxml, string path) - { - MyPath = path; - XmlDocument xmldoc = new XmlDocument(); - XmlComment copyright = xmldoc.CreateComment("Proprietary Information - Copyright 2012 - Volian Enterprises, Inc. All rights reserved."); - XmlElement top = xmldoc.CreateElement("PlantFormat"); - xmldoc.AppendChild(copyright); - xmldoc.AppendChild(top); - try - { - XmlReaderSettings settings = new XmlReaderSettings(); - settings.IgnoreWhitespace = true; - StreamReader strrdr = new StreamReader(mxml); - XmlTextReader rdr = new XmlTextReader(strrdr); - using (rdr) - { - rdr.MoveToContent(); - XmlNode fmt = xmldoc.ReadNode(rdr); - top.AppendChild(fmt); - } - rdr.Close(); - // load page xml - string pagename = mxml.Substring(0, mxml.Length - 5) + "p.xml"; - using (XmlReader reader = XmlReader.Create(pagename, settings)) - { - reader.MoveToContent(); - XmlNode pag = xmldoc.ReadNode(reader); - top.AppendChild(pag); - } - - string docname = mxml.Substring(0, mxml.Length - 5) + "d.xml"; - using (XmlReader reader = XmlReader.Create(docname, settings)) - { - reader.MoveToContent(); - XmlNode doc = xmldoc.ReadNode(reader); - top.AppendChild(doc); - } - string outname = MyPath + @"\fmtall\" + mxml.Substring(mxml.IndexOf("\\")+1,mxml.Length - 13) + "all.xml"; - XmlWriterSettings settingsout = new XmlWriterSettings(); - settingsout.Encoding = Encoding.Unicode; - settingsout.Indent = true; - settingsout.IndentChars = "\t"; - XmlWriter xmlwrite = XmlWriter.Create(outname,settingsout); - xmldoc.WriteContentTo(xmlwrite); - xmlwrite.Close(); - XmlDocument newDoc = new XmlDocument(); - newDoc.Load(outname); - XmlNodeReader xtr = new XmlNodeReader(newDoc); - XmlTextWriter xtw = new XmlTextWriter(outname, Encoding.Unicode); - xtw.Formatting = Formatting.Indented; - xtw.Indentation = 1; - xtw.IndentChar = '\t'; - xtw.WriteNode(xtr, true); - xtr.Close(); - xtw.Close(); - } - catch (Exception ex) - { - Console.WriteLine("Error on merge, format = {0}, msg = {1}", mxml, ex.Message); - } - } - - - } -} diff --git a/PROMS/fmtxml/FNPNMPall.xml b/PROMS/fmtxml/FNPNMPall.xml deleted file mode 100644 index be5c850b..00000000 Binary files a/PROMS/fmtxml/FNPNMPall.xml and /dev/null differ diff --git a/PROMS/fmtxml/FmtFileToXml.cs b/PROMS/fmtxml/FmtFileToXml.cs deleted file mode 100644 index 1fcadd43..00000000 --- a/PROMS/fmtxml/FmtFileToXml.cs +++ /dev/null @@ -1,5869 +0,0 @@ -using System; -using System.Windows.Forms; -using System.IO; -using System.Text; -using System.Collections; -using System.Collections.Generic; -using System.Text.RegularExpressions; -using System.Runtime.Serialization.Formatters.Binary; -using System.Xml.Xsl; -using System.Xml; -using System.Xml.Serialization; -using System.ComponentModel; - -#region StructDefinitions -// top of the format. - -// convert ALL rows & columns to points, i.e. a point = 1/72 inch -// the row is set based on 6 rows per inch, i.e. row = input * 72/6, row = input * 12 -// the column is 12 char/inch, i.e. col = input * 72/12, col = input * 6 -[Serializable] -public struct FormatData -{ - public string Name; - public string PurchaseOptions; - public string TPL; - //public XtraFlgs XtraFlags; - public VE_Font FontData; - public Symbol[] Symbols; - public GeneralEditor EditData; - public GeneralPrint PrintData; - public Procedure ProcData; - public Section SectData; - public Step[] StepData; - public Box[] BoxData; - public Trans TransData; - public RO ROData; -} -[Flags] -public enum E_PurchaseOptions : uint -{ - ApproveOne = 0x0001, - AccPagination = 0x0002, - LibMaint = 0x0004, - Transfer = 0x0008, - STrees = 0x0010, - DateChgSumRpt = 0x0020, - SetpointUsage = 0x0040, - Replace = 0x0080, - FloppyTransfer = 0x0100, - ApproveGenericBack = 0x0200, - DistributeApproved = 0x0400, - OutsideTransitions = 0x0800, - EnhancedBackgrounds = 0x1000, - EnhancedDeviations = 0x2000, - AutoTableOfContents = 0x4000, - AutoPlacekeeper = 0x8000 -} -[Serializable] -public struct XtraFlgs -{ -#region xtraflags0 - public string DoubleRNOSpace; // from xtra_flag array 0 - public string MixCautionsAndNotes; - // public string MULTILEVELCAUTION; // not migrated used by: ano/bge/sum - public string AlwaysUseExtralines; - public string AlwaysTabNote; - public string AlwaysTabCaution; - // public string CHECKOFFEQUIPMENT; // not used by any format - public string SpecialPageBreakFlag; - // public string INSYNC; // not migraged used by: genplan & scedev - public string DontPaginateOnFirstSubStep; - // public string PRINTONESTEPPERPAGE; // not migrated used by: anos & genplan - public string ImperfectStructure; - public string DontUseHalfLines; - public string FortranFormatNumbers; - public string AllUnits; - public string CapsTransitions; -#endregion -#region xtraflags1 - public string CapTranStep; // from xtra_flag array 1 - // public string BOLDTRANSITIONS; // not migraged used by: ano1 & sum - public string TSTepNoFlag; - public string LowerCaseTranNumber; - //public string UNDERLINESTEPNUMBER // not migraged used by: cpla - public string CondensedChangeBar; - public string DoRevDate; - public string SeparateBox; - public string NumberHighLevelRNO; - // public string STUPIDBLANKRNONUMBERING; //not migrated used by: lpl - // public string BULLETINSTEADOFNUMBERRNO //not migrated used by: sce - // public string BIZZAREINDENTSAVE //not migrated used by: sce - public string AlternateFoldoutPages; - // public string ONLYEXTERNALBOLD; // not migrated pac & sce - //public string DONTSPLITTHESTEPATIF // not migrated used by: sce, vnp, vpe - public string DontTryToFillHalfOfPage; -#endregion -#region xtraflags2 - public string DontCapitalizeTitle; // from xtra_flag array 2 - // public string MOVEPARENSTOTOKEN // not migrated used by: scedev - public string NoSpaceDoubleRNO; - //public string SECTIONTITLES; // not used - public string DontOffsetTab; - public string UpSetpntAftrDash; - public string LowerCaseRevnum; - public string DoNotCompressSteps; - public string ReduceLineAfterNoteAndCaut; - public string RNOSameLevel; - //public string USENOTECAUTIONSEPARATOR; // not migrated: used in genplan - //public string TRUNCATEPROCNMAFTER1STSPACE // not migrated: used in paca & sce - //public string EXTRALINEBEFOREANDAFTERCAUT1 // not migrated: used in mya - public string BoldHighLevelRNO; - public string OneLineBeforeNoteCautionTab; - public string ContinuousChangeBars; -#endregion -#region xtraflags3 // from xtra_flag array 3 - // public string DONTDOLINEAFTERENDMESS // not migrated: used in ano1 - // public string ENDAFTERBOXEDSTEP // not migrated: used in ano1 - // public string CheckOffOnAllSteps; // not migrated - NOT USED - // public string SPECIALCHANGEBARID // not migrated: used in sce - // public string STEPTABBEFORENOTEANDSTEP // not migrated: used in ano1 - public string DontBoxAC; - //public string OKTOSEPARATESTEPANDTABLE; // no supporting code - public string UseTopContinueMessageAtEnd; - // public string ONLYUSEONELINEFORTOPOFPAGE; // not used - // public string ARROWONTRANS; // not migrated: used in mya - // public string PROCEEDMESS; // not migrated: used in mya - // public string UP1INDENTFOROPTEQUIPLIST; // not migrated: used in mya - // public string UPCASETHETRANSITIONSUBSTEPONLY; // not migrated: used in ano1, ano2 - public string UpcaseTranAnd; - public string UpcaseAllSetpointUnits; - // public string OBSERVENOTECAUTIONTRAN; // not used -#endregion -#region xtraflags4 - public string Dev_Format; // from xtra_flag array 4 - // public string UPURS; // not migrated: used in yae - public string DontDoSTExtraAtTop; - public string Xlines_StepFix; - public string ReBoxCautNote; - public string IMMStepSpcHdr; - // public string GENLESSONPLAN; // not migrated: used in genplan - public string FloatingContinueMessage; - // public string STATREESONACCPAGE; // not migrated: used in status tress (lots of formats) - public string AbsoluteFixedChangeColumn; - // public string QUESTIONTRANSSTEP; // not migrated: used in sce - public string LJBorderlessTable; - public string SuppressAndInTran; - public string CapHighSetpnt; - public string CapFirstLetterInHighSP; // used in fpl - public string CapsPIFLastLower; -#endregion -#region xtraflags5 - public string AlternateFloatingFoldout; // from xtra_flag array 5 - public string WrapSameAsEdit; - public string KeepStepsOnPage; - public string SpecifiedSubstepsOnly; - public string ThreeBlanksAboveNotesCautions; - // public string DONTADDUNITTOREV // not migrated: used in paca - public string ImperfectSubstep; - public string DontBreakOnSections; - public string NoStepNumIfOnlyOneStep; - public string ShowSectionTitles; - public string LJTabs; - public string DontNumberRNOSubs; - // public string ALIGNNOTECAUTWTAB // not used - // public string RNOCONTINUESTEP // not migrated: used in sum - public string DropCheckOff; - public string NoCheckOffsInRNO; -#endregion -#region xtraflags6 - // from xtra_flag array 6 - public string ChgBarMessageFromEdit; - public string ChangeBarToRNOSep; - // public string SMALLACBOX // not migrated: used in lpl - public string ChangeStyleForEverySection; - public string SectionLevelFoldouts; - public string BoxContinousActions; - public string DoSectionTrans; - // public string DONTUSESECNUMBERS // not used - public string UpSpIfPrevUpper; - public string ContinueSectionHeader; - public string GlobalProcInfo; - public string CompressHPSub; - public string BulletOnContinuous; - public string CancelSecTitlesOnS2; - public string NoEndForSingle; - public string UseMetaSections; -#endregion -#region xtraflags7 - public string RNOContinueOnly; // from xtra_flag array 7 - public string Cap1stCharTrans; - public string DontPaginateOnFirstSubstep3X; - public string RNOSepAfterAER; - public string RevDateWithForwardSlash; - // public string UPSETPNTAFTRCAPS // not migrated: used in sum - public string UseAlternateStepBox; - public string CancelSecTitlesOnS1; - public string SpecialStepsFoldout; - public string UnderlineAfterDashSpace; - public string NoSpaceInNoteOrCaution; - public string UseXtraRevNumber; - public string UnderlineSetpoints; - public string DoSectionTransTypeB; - public string PaginateOnLowerStepLevel; - public string UseTransitionModifier; -#endregion -#region xtraflags8 - public string CustomSpacing; // from xtra_flag array 8 - public string EnhancedShortFormDev; - // public string NOHIGHLEVELREADONLY; // no supporting code - // public string NORNOREADONLY // not used - public string PageBreakOnHighLevelStep; - // public string CHANGEONLYGROUPEDTYPES // not used - public string PageBreakOnCautions; - public string PageBreakOnNotes; - public string AlignNullTabWSectHead; - public string DontUseSecTitles; - public string TextSubFollowsTextStyle; - public string TranProcTitleInParen; - public string HardSpTranProcNumb; - public string TreatAndOrAsSequential; - public string DontSplitStepInPrntStep; - public string LineAboveUnderSection; -#endregion -#region xtraflags9 - // public string REMOVEREDUNDANTSEPERATORS // from xtra_flag array 9 // not used - // public string UNINDENTTABSANDSEPERATORS // not migrated: used in bgeal bgealn bgevl - public string PicaIgnoreFiveSixths; - public string SpaceFoRNOSecNumb; - public string NonEditableSteps; - public string BoxedSubsteps; - public string DontNumberHighLevelSteps; - // public string ASTERISKONIMMEDIATE // not migrated: used in a number of bge fmts - // public string CONTINUEAFTERSTEPTEXT // not used - // public string FIXPAGELISTSPECIALCHARS // not migrated: used in a number of bge fmts - public string NoStepNumberForHighLevelRNO; - public string PromptForCautinType; - public string Caution1SameRowAsParent; - //public string DONTPAGINATEONCAUTION1; // no supporting code - public string WolfCreekBackgroundFormat; - public string EnhancedStepNumFromPrev; -#endregion -#region xtraflags10 - public string ControlUnderlineStyle; // from xtra_flag array 10 - // public string LANDSCAPEMODE // not used - // public string HORIZONTALSUBSTEPS // not migrated: used in ano2vlv & bgevl - public string MultipleChangeIds; - public string UseMultiLineSectionTitle; - // public string SECTIONNOTESCAUTIONS // not migrated: used in anono & various bge - public string PageBreakOnFirstBlankLine; - public string DontPrintNoTitle; - // public string PRINTCAUTION1CONTINUED // not migrated: used in bgeal - // public string USECHECKOFFSINS2 // not used - public string NotesToFootnotes; // used in ano2vlv, some bge, many rbnd, NSPF00.in - public string UndSpecialStepsFoldout; - // public string DONTAUTOENDFORMATTING // not migrated: used in various bge - // public string REMOVEBASISFROMTRANS // not migrated: used in various bge - public string PutOnPageByItself; - public string PrintPhoneList; // used in bge AOP data (UsePhoneList in 16-bit) -#endregion -#region xtraflags11 - public string SecTitleContinue; // from xtra_flag array 11 - public string CancelSecTitlesOnE0; - public string MetaSectEndMessage; - public string RNONumberWithLevel; // not migrated: used in bgeeop - // public string FORCELETTEREDHLS // not migrated: used in bgestp - // public string CANCELSECTITLESONE1 // not migrated: used in bgeoid - public string CancelSecTitlesOnE2; - // public string USESECTITLECONTASIS // not used - // public string SMARTLETTEREDHLS // not migrated: used in various bge - // public string DOTWOMESSAGES // not migrated: used in bgeeop - // public string DONTBOLDINTABLES // not migrated: used in bgestp - // public string EXTRALINEAFTERSECTION // not migrated: used in bgestp - // public string BGESTPSPECIALFEAT // not migrated: used in bgestp - public string CompressHPSuper; - // public string PRETENDNOTPROPORTIONAL // not used - // public string DOINGPLACEKEEPERS // not used -#endregion -#region xtraflags12 - public string MatchUpRNOCautNote; // from xtra_flag array 12 - // public string NEWHLSTEPONENTER // not migrated: used in bgevl - // public string DONTSEPARATEMULTITEXT // not migrated: used in bgeop - public string PaginateAtHighestPaginLevel; - // public string DONTRESETINDENTONNEWLINE // not migrated: used in anonop & various bge - // public string CONTINUEMESSONNEXTLINE // not migrated: used in anoann - // public string CAP1STSECTIONTITLE // not migrated: used in anono - // public string DOUBLESPACEHLS // not migrated: used in anoann - public string UseLongProcTitles; - // public string INCLUDENOTEINPLACKEEP // not migrated: used in bgeeop - // public string OUTTRANTOSECTIONSTEP // not used - // public string ANOANNUNCIATORS // not migrated: used in anoann - public string SpecialLandscapeMode; - public string RNOInPagelist; - public string StpCautNoteTabInPagelist; - public string ReadOnlyTypeInContMsg; -#endregion -#region xtraflags13 - public string CenterOneLineOnly; // from xtra_flag array 13 - public string TieTabToLevel; - // public string LEFTJUSTIMMEDIATE // not migrated: used in anoann - public string AccessoryDocsInDuplex; - public string FoldoutsInDuplex; - // public string ABPAGE // not migrated: used in various ano - public string UseSTExtraRealValue; - public string SubTableGetSup1Level; - // public string DONTNUMBERNOTECAUT1 // not migrated: used in anonop - public string DontCountFoldoutPages; - // public string ANONOPHACKS // not migrated: used in anonop - // public string FLOATSECNUMPOS // not migrated: used in bgeoi bgestp - public string SearchAllReplaceWords; - // public string CALVERTCLIFFSFORMATS // not migrated: used in various bge - // public string NOSTUPIDSUBLOGIC // not migrated: used in anonop - // public string REMEMBERRNOSTEP // not migrated: used in bgeeop, rbndan, rbnd -#endregion -#region xtraflags14 - public string RememberCautionsAndNotes; // from xtra_flag array 14 - // public string PUTONPAGEAFTERHALFPAGE // not migrated: used in anonop - // public string FLOATINGSTEPS // not migrated: used in anonop - public string RtfAdjustments; - public string CenterOneLineAdjust; - public string CountAllSubLevels; - // public string AERCHGBARMSGRNOCHGBARNOMSG // not migrated: used in nae - public string DontReplaceWordsInROs; - public string HighLevelRNOBeforeAERSubStps; - public string UnderlineAllMetaTitles; - public string DontBreakCautionsOrNotes; - public string BoldOnlySectionZero; - public string DontBreakOnRNO; - public string RNOCheckOffSameAsParent; - public string UseStepTypeWidthOverride; - public string WolfcreekCKLFormat; -#endregion -#region xtraflags15 - public string DontPaginateOnFirstSubStep2X; // from xtra_flag array 15 - public string UseStepTypeWidthOverrideEditPrint; - public string PartialStepCompression; - public string UseSmartTemplate; - public string CheckoffOnHLSOnly; - // public string KEEPCHANGEIDFORCOPYSTEP // not migrated: used in various ANO - // public string RNOBELOWCHECKOFF // not migrated: used in various RBND - public string Caution2SameRowAsParent; - // public string DONTUNDERLINEMETATITLES // not migrated: used in various RBND - public string CenterTextWithinWidth; - public string DontBreakEquipmentList; - // public string USELOCALTEMPLATEFILE // not migrated: used in various RBND - public string AlwaysTabCaution2; - public string VirtualDotInHLSTab; - public string ImperfectStructurePlus4; - // public string RIVERBENDVALVESHEETS // not migrated: used in various RBND -#endregion -#region xtraflags16 - // public string RIVERBENDPUMPDATASHEET // from xtra_flag array 16 -not migrated: used in various RBND - public string UseRNOTypeInActable; - public string AbsoluteTransitionUpdate; - public string SeparateBoxCautions; - // public string RIVERBENDALARMFORMAT // not migrated: used in RBNDAN - public string HLSTextInPagelist; - // public string HLSCAUT2INPAGELIST // not migrated: used in RBNDAN - public string LowerCaseStepInTran; - // public string DONTCHANGELOWERLIMIT // not migrated: used in BGEALN PAC - // public string UPPERCASESECTIONTITLE // not migrated: used in various RBND - //public string ALGNCOMPRESSSUPERTABLE; // not migrated: no supporting code. - // public string RIVERBENDLINEUPFORMAT // not migrated: used in various RBND - public string ChangeBarsOnLinkedText; - public string QuotedSubsteps; - // public string PROPOVERFLOWLETITHANG // not migrated: used in BGEEOP - // public string TURKEYPOINTBACKGNDFORMAT // not migrated: used in FPLBCK -#endregion -#region xtraflags17 - // public string DRAWCENTERLINE // from xtra_flag array 17 -not migrated: used in BGEEOP - // public string DOVALVEDIVIDER // not migrated: used in ANO2VLV - // public string DOSECTIONOVERUNDERSTRING // not migrated: used in bgeeop, bgevl - public string OverrideEnhancedTabs; - // public string USEREALCOMPRESSED7LPI // not used - public string NoNewlineAfterRNO; - public string DoSectionSeparatorLine; - public string ParensOnExtPagenumTrans; - public string AtLeastTwoDigitsForHLS; - public string DontBreakOptEquipmentList; - public string PagelistChangeIDsWithCommas; - public string DontStartLineWithDash; - public string NoBlankLineBeforeSubstep; - public string DontBreakCautionsNotesOnSubstps; - public string DontConvertCaretToDelta; // handled in data migration -#endregion -#region xtraflags18 - // this was original veairflag, but an extra array element was added to the xtraflags, - // xtraflags[18], since some of the flags were used in other formats. - // public string NOTEAFTERAPPLIEDTEXT // from xtra_flag array 18 -not migrated: used in ata - public string NoRNO; - // public string ALTWFORWARNINGS // not migrated: used in ata, some bge & some rbnd - public string OnlySingleColumn; - public string NullBox; // used in bgeeop and NSP - public string XChngTranSpForHard; - public string WolfcreekCKLBackgndFormat; -#endregion -} -[Serializable] -public struct Symbol -{ - public string Unicode; - public string Desc; -} -[Serializable] -public struct GeneralEditor -{ - public string EMode; - /* Format Flags */ - public string PromptForCautionType; - /* End of format flags */ -} -[Serializable] -public struct GeneralPrint -{ - public Int16 DoPrnDrvrAdjusts; - public string TopOfPageThing; - /* Format flags moved to here.... */ - public string DoRevDate; - public string AlternateFoldoutPages; - public string AlternateFloatingFoldout; - public string SectionLevelFoldouts; - public string RevDateWithForwardSlash; - // Added for BGE: - // Used to flag that a the user interface should display a Unit Number text box for Docverion properties. - // this piece of data is stored in the config for a docversion & is used for pagelist items. - public string UnitNumber; - // Added for BGE: didn't want to name it for them, but that's what it is - public string SpecialCaseCalvert; - public string SpecialCaseCalvertAlarm; - // added for Comanche Peak to print "COMMON" in place of "Unit 0" (from pagelist) - public string PrintCommonForZeroUnit; // added for Comanche Peak to print "COMMON" in place of "Unit 0" (from pagelist) - //public string SpecialStepsFoldout; - // Added AllowDuplex to eliminate hardcoded check for WEP2 and WPB formats - // for the Disable Automatic Duplexing - public string AllowDuplex; - public string AccessoryDocsInDuplex; - public string FoldoutsInDuplex; - public string PagelistChangeIDsWithCommas; - /* end Format flags */ - public ProcDescr [] ProcDescrList; - public string[] VersionIdText; - public string DuplexBGDirectory; // this may go away?? - public string DuplexDDDirectory; // " " -} -[Serializable] -public struct ProcDescr -{ - public string MatchProcNumber; - public string ProcDescr1; - public string ProcDescr2; -} -//[Serializable] -//public struct GeneralLayout // no data in this category. Comment out -//{ // in case later some data moves to here. - -//} -[Serializable] -public struct Procedure -{ - public Int16 TitleLength; - public Int16 CoverTitleLength; - public string ProcForeColor; - public string ProcBackColor; - public string ProcedureSuffixFlags; - /* Format flags moved to here.... */ - public string CapitalizeTitle; - public string ChangeStyleForEverySection; - public string PrintNoTitle; - public string NotesToFootnotes; - public string CountFoldoutPages; - /* End of Format flags */ - public string[] ProcedureSuffix; - public PSI Psi; - public ChangeBar ChangeBarData; - public CheckOffData CheckOffData; -} -[Serializable] -public struct PSI -{ - public int x; - public int y; - public string Caption; - public string ButtonsOnBottom; - public string font; - public PsiBox[] Boxes; - public PsiLabel[] Labels; - public PsiField[] Fields; -} -[Serializable] -public struct PsiBox -{ - public string style; - public int x; - public int y; - public int width; - public int height; -} -[Serializable] -public struct PsiLabel -{ - public string text; - public string Justify; - public int x; - public int y; - public int width; - public int height; -} -[Serializable] -public struct PsiField -{ - public string name; - public string type; - public string text; - public int Length; - public int x; - public int y; - public int width; - public int height; -} -[Serializable] -public struct CheckOffData -{ - public string Menu; - public string AllowSectEdit; - public string AllowStepEdit; - public int UseCheckOffsIn; - public float CheckOffAdjustment; - public float XLocation; - //for VCSummer by jcb - public float RelXLocation; - //end for VCSummer by jcb - /* Format flags ... */ - public string DropCheckOff; - public string CheckOffOnHLSOnly; - public string SkipSpaces; - /* end of format flags */ - // for Byron and Braidwood - public string CheckoffOnSubStepsOnly; - //public RightCheckOffBx [] RightCheckOffBoxList; - public Absolute [] LayoutList; - public CheckOffHeader[] CheckOffHeaderList; - public CheckOff [] CheckOffList; -} -//[Serializable] -//public struct RightCheckOffBx -//{ -// public int Index; -// public int RightCheckOffBox; -//} -[Serializable] -public struct Absolute -{ - public string RnoLevel; - public int Column; -} -[Serializable] -public struct CheckOffHeader -{ - public int Index; - public string CheckOffHeading; - public VE_Font Font; -} -[Serializable] -public struct CheckOff -{ - public int Index; - public byte UIMark; - public string MenuItem; - public string ExcludeInSectMenu; - public string NotOnEmpty; - public string Macro; - public float CheckOffWidAdjust; - public int CheckOffXtraLines; -} -[Serializable] -public struct ChangeBar -{ - public string DefaultCBLoc; - public string ChangeBarMessage; - public Int16 FixedChangeColumn; // really flags not columns (don't convert to points - public Int16 FixedAERChangeColumn; - public long ChangeSummaryStyle; // not really change bar - put here for now. - public long ChangeBarStyle; - public string SpecialChangeBar; - /* Format flags moved to here.... */ - public string CondensedChangeBar; - public string AbsoluteFixedChangeColumn; - public string ContinuousChangeBars; - public string ChgBarMessageFromEdit; - public string ChangeIds; - public string ChangeBarToRNOSep; - public string ChangeBarsOnLinkedText; - /* End of Format flags */ -} -[Flags] -public enum E_ChangeBarMessage : uint -{ - DateChgID = 0, - RevNum = 1, - ChgID = 2, - None = 3 -} -[Flags] -public enum E_EMode : uint -{ - Insert = 0, - Override = 1 -} -[Serializable] -public struct Section -{ - public Int16 SectionTitleLength; - public string SectForeColor; - public string SectBackColor; - /* Format Flags moved here... */ - //public string CancelSecTitlesOnS1; // moved to docstyle - //public string CancelSecTitlesOnS2; - //public string CancelSecTitlesOnE0; - //public string CancelSecTitlesOnE2; - public string MetaSectEndMessage; - public string ReadOnlyTypeInContMsg; - public string ReplaceWordsInROs; - public string UseMetaSections; - public string NonEditableSteps; - public string SearchAllReplaceWords; - public string SecTitleContinue; - public string ConvertCaretToDelta; - public string TurnOffReplaceWords; - public string PrintPhoneList; - /* end of Format flags */ - public SectionNum SectionNumber; - public SectionHead SectionHeader; - public StepSection StepSectionData; - public AccSection AccSectionData; - public MetaSection [] MetaSectionData; - public ReplaceStr[] ReplaceStrData; - -} -[Serializable] -public struct SectionNum -{ - public float Pos; - public string Level0Big; // Added for BGE was in their format. - public string Just; - public VE_Font Font; -} -[Serializable] -public struct SectionHead -{ - public float Pos; - public string Level0Big; // Added for BGE was in their format. - public string Just; - public VE_Font Font; -} -[Serializable] -public struct StepSection -{ - public Int16 TopRow; - public byte IndentToken; - public Int16 NumberOfHighLevelSteps; - public Int16 NumberOfSubStepTypes; - //public Int16[] TextTypeValue; - //public string[] TextType; - public string IdentB; - public string[] UnderlineTerminate; - public string [] ObserveNCString1; - public string[] ObserveNCString2; - /* Format flags moved to here.... */ - public string WolfCreekBackgroundFormat; - public string WolfcreekCKLFormat; - public string WolfcreekCKLBackgndFormat; - public string FortranFormatNumbers; - public string UseTopContinueMessageAtEnd; - public string FloatingContinueMessage; - public string WrapSameAsEdit; - public string ContinueSectionHeader; - public string CompressHPSub; - public string CompressHPSuper; - public string CompressPropSubSup; - //public string UndSpecialStepsFoldout; - public string UnderlineAllMetaTitles; - public string BoldOnlySectionZero; - public string ImperfectStructure; - public string ImperfectSubstep; - public string ImperfectStructurePlus4; - public string CountAllSubLevels; - public string UseMultiLineSectionTitle; // Need for data migration only - public string AdjustRNOCautionNoteWidth; // added to Catawba and McGuire - /* end of Format flags */ - public StepSectionLayout StpSectLayData; - public StepSectionEdit StpSectEditData; - public StepSectionPrint StpSectPrtData; - public SeqTabFmt[] SequentialTabFormat; -} -[Serializable] -public struct AccSection -{ - public int AutoContActSumSection; - public TOC TableOfContentsData; - public PlaceKeeper PlaceKeeperData; -} -[Serializable] -public struct TOC -{ - public float TofCSecNumPos; - public float TofCSecTitlePos; - public byte TofCSecTitleLen; - public float TofCPageNumPos; - public string TofCSpaceChar; - public byte TofCLineSpacing; - public VE_Font Font; -} -[Serializable] -public struct PlaceKeeper -{ - public string PKTopContinueMessage; - public string PKBottomNote; - public VE_Font Font; - public PKColumn[] PKColumns; -} -[Serializable] -public struct PKColumn -{ - public float PKColPos; - public float PKColWidth; - public string PKColHeaderText; - public VE_Font PKColHeaderFont; -} -[Serializable] -public struct MetaSection -{ - public int Index; // do I need this to order them or will SecNumPositionAdj work? - public float SecNumPositionAdj; - public float SecTitlePositionAdj; - public float ColSByLevel; - public float TofCPositionAdj; - public float WidSAdjByLevel; -} -[Serializable] -public struct StepSectionLayout -{ - public float LastLineToStartStep; - public Int16 LineDrawingOption; - public float ColS; - public float ColT; - public float ColAbs; - public float WidT; - public Int16 PMode; - public Int16 MaxRNO; - public string MaxRNOTable; - public string ColRTable; - public string WidSTableEdit; - public string WidSTablePrint; - public float AdjRNOCol; - public Int16 EndMessagePos; - public string RNOWidthAlt; - public Int16 HLSWidthOVRD; - public Int16 SubPaginationWght; - public Int16 TextTitleAdjustment; - public float? TabPtsPerChar; // added for BGE - public string TableCenterPos; // string array with floats. - public string LowerLimitDivisor; // pagination - should it be in print? - 16bit: quoted float - public string NonLinkedStepNumber; - public string NonLinkedCautNoteNumber; - public string NonLinkedRNONumber; - //for VCSummer by jcb - public float SingleColumnRNOIndent; - public bool RNOWidthSameAsHighParent; - //end for VCSummer by jcb - //for Braidwood by jcb - public string RNOWidthAdj; - public string BoxLeftAdj; - public string UseRNOParentIdent; - public string DevNoteOrCautionTabOffset; - //end for Braidwood by jcb - //for Calvert Cliffs (bge) to force the order of Warnings, Cautions, Notes, and Messages - public string CautionNoteOrder; - - /* Format flags moved to here.... */ - public string Dev_Format; - public string EnhancedShortFormDev; - public string SpecialPageBreakFlag; - public string PaginateOnFirstSubstep; - public string PaginateOnFirstSubstep2X; - public string UseHalfLines; - public string TryToFillHalfOfPage; - public string CompressSteps; - public string DoSTExtraAtTop; - public string KeepStepsOnPage; - public string BreakOnSections; - public string ShowSectionTitles; - public string EndForSingle; - public string PaginateOnFirstSubstep3X; - public string PaginateOnLowerStepLevel; - public string CustomSpacing; - public string SplitStepInPrntStep; - public string LineAboveUnderSection; - public string PicaIgnoreFiveSixths; - public string SpaceForNoSecNumb; - public string PageBreakOnFirstBlankLine; - public string PutOnPageByItself; - public string PaginateAtHighestPaginLevel; - public string UseSTExtraRealValue; - public string DoSectionSeparatorLine; - public string TieTabToLevel; - public string HighLevelRNOBeforeAERSubsteps; - public string UseStepTypeWidthOverride; - public string UseStepTypeWidthOverrideEditPrint; - public string PartialStepCompression; - public string VirtualDotInHLSTab; - public string OverrideEnhancedTabs; - public string RNO; - public string OnlySingleColumn; - public string NullBox; - /* End of format flags */ - public VE_Font VertStyle; - public TopOfPg TopOfPage; - public Separtr Separator; -} -[Serializable] -public struct TopOfPg -{ - public float Row; - public float Col; - public VE_Font Font; -} -[Serializable] -public struct Separtr -{ - public Int16 SeparatorLocation; - public VE_Font Font; -} -[Serializable] -public struct StepSectionEdit -{ - public float ColSScreenAdj; - public float ScrnAdjRNOText; - public string ColRScreen; -} -[Serializable] -public struct SeqTabFmt -{ - public int Index; - public string TabToken; - public string TabFormat; - public string PrintTabFormat; -} -[Serializable] -public struct StepSectionPrint -{ - public float ImmStepHdrCol; - public string DiffContActBox; // introduced to flag different processing for wep2 asterisk (continuous) boxes. - public string ContActBoxOnSubSteps; // added for Point Beach (wep2) to use tab & text position on boxed substeps (cont. Action steps) - public Int16 SecColHdrforActPMode; - public string RNOSepString; - public float RNOSepLineLength; - public string HLStpSeparatorString; - public string HLRNOStpSeparatorString; - /* Format flags moved to here.... */ - public string LowerCaseRevNum; - public string UseXtraRevNumber; - public string SpecialLandscapeMode; - public string LimitWidToPageWid; - /* End of format flags */ - public VE_Font ModifiedTextStyle; - public VE_Font ImmStepHdrStyle; - public LeftJustify[] LeftJustifyList; - public string[] ImmStepHdr; -} -[Serializable] -public struct LeftJustify -{ - public int Index; - public float Size; -} -[Serializable] -public struct ReplaceStr -{ - public string Flag; - public string ReplaceWord; - public string ReplaceWith; -} -[Flags] -public enum E_ReplaceStr : uint -{ - High =0x0001, // Do ReplaceWords in HIGH LEVEL STEPS - RNO =0x0002, // Do ReplaceWords in RNOS - Caution =0x0004, // Do ReplaceWords in CAUTIONS - Note =0x0008, // Do ReplaceWords in NOTES - Table =0x0010, // Do ReplaceWords in TABLES - Substep =0x0020, // Do ReplaceWords in SUBSTEPS - Attach =0x0040, // Do ReplaceWords in ATTACHMENTS - Bkgd =0x0080, // Do ReplaceWords in BACKGROUNDS - DiffUnit =0x0100, // Do ReplaceWords ONLY for different UNIT # - TOC =0x0200, // Do in auto table-of-contents - StatTree =0x0400, - HLSSetpnt =0x0800, // Do ReplaceWords in HighLevelStep SETPoiNTs - Trans =0x1000, // Do ReplaceWords in TRANSITIONS - Setpoint =0x2000, // Do ReplaceWords in SETPOINTS - - // Case Sensitivity Flags - default is off (Case Sensitive Replace) - CaseInsens =0x0000C000, // Do ReplaceWords for all words thatmatch, regardless of case, - // and replace with the ReplaceWith string as is - CaseInsensFirst = 0x4000, // Do ReplaceWords for all words thatexactly match the ReplaceWord, - // except the case of the first character may be different - CaseInsensAll = 0x8000, // Do ReplaceWords for all words that match the ReplaceWord, regardless of case - - Partials =0x10000, // Do replace even on partial matches - Plackeep =0x20000, // Do replace in PlaceKeepers - InSecTitle =0x40000 // replace words in section titles -} -// all Step variables are strings here so that inheritance check for step variables can be done. -// Some will have float/integer values and should be treated as such in format code in Proms code. -[Serializable] -public struct Step -{ - public int Index; - public string Type; - public string ParentType; - public string ReadOnly; - public string Inactive; - public string ColOverride; - public string ColOverrideEdit; - public string WidthOverride; - public string WidthOverrideEdit; - public string Sep; - public string Prefix; - public string Suffix; - public string UnderlineTheseChar; - public string VertPos; - /* the following are xtraflags that have been moved, string is set to true if plant has flag */ - /* Flag name is listed as comment after each if different than name (change is made if generically used. */ - public string DoubleSpace; //DoubleRNOSpace - public string EnhancedStepNumFromPrev; - public string UseSmartTemplate; - public string AlwaysUseExtraLines; - public string SeparateBox; - public string SeparateBoxCautions; - public string SpaceDouble; // NoSpaceDoubleRNO - public string ReduceLineAfter; // ReduceLineAfterNoteAndCaut - public string SameLevel; // RNOSameLevel - public string BoldHighLevel; // BoldHighLevelRNO - public string OneLineBeforeTab; // OneLineBeforeNoteCautionTab - public string BoxIt; // DontBoxAC - public string Boxed; // BoxContinuousActions, BoxedSubsteps - public string XLines_StepFix; - public string Rebox; // ReboxCautNote - public string SpcHdr; // ImmStepSpcHdr - public string ContinueOnly; // RNOContinueOnly - public string SepAfterAER; // RNOSepAfterAER - public string UseAlternateStepBox; - public string UnderlineAfterDashSpace; - public string SpaceIn; // NoSpaceInNoteOrCaution - public string PageBreakOnStep; // PageBreakOnHighLevelStep, PageBreakOnCautions, PageBreakOnNotes - public string UseOldTemplate; - public string AlignNullTabWSectHead; - public string AlignHLSTabWithSectOvride; - public string TextSubFollowsTextStyle; - public string CautionOrNoteSubstepIndent; - public string TreatAsSequential; // TreatAND_ORasSequential - public string MatchUpRNO; // MatchUpRNOCautNote - public string InPageList; // RNOInPageList, StpCautNoteTabInPageList, HLSTextInPageList - public string CenterOneLineOnly; - public string SubTableGetsUp1Level; - public string Remember; // RememberCautionsAndNotes - public string CenterOneLineAdjust; - public string Break; // DontBreakCautionsOrNotes, DontBreakOnRNO, DontBreakOptEquiptmentList - public string BreakEquipmentList; // Need this one as separate from above because differentiate between DontBreakOptEquiptmentList - public string BreakCautionsNotesOnSubstps; - public string CenterTextWithinWidth; - public string NewlineAfter; // NoNewlineAfterRNO - public string StartLineWithDash; - public string BlankLineBeforeSubStep; - public string AlwaysTab; // AlwaysTabNote, AlwaysTabCaution, AlwaysTabCaution2 - //for Comanche Peak by jcb - public bool NoSpaceMultipleRNOs; - //end for Comanche Peak by jcb - public string MixCautionsAndNotes; - public string NumberHighLevel; // NumberHighLevelRNO - public string NumberWithLevel; // RNONumberWithLevel; - public string OffsetTab; - public string AdjHighLevelTab; // Added for FNP - high level RNO - public string ChildIndent; // Added for Callaway Backgrounds - public string LeftJustifyBorderless; // LJBorderlessTable - public string StepNumIfOnlyOne; // NoStepNumIfOnlyOneStep - public string LJTabs; - public string NumberSubs; // DontNumberRNOSubs - public string BulletOnContinuous; // BulletOnContinuous - public string StepNumberForHighLevel; // NoStepNumberForHighLevelRNO - public string SameRowAsParent; // Caution1SameRowAsParent, Caution2SameRowAsParent - public string CheckoffSameAsParent; // RNOCheckoffSameAsParent - public string AtLeastTwoDigits; // AtLeastTwoDigitsForHLS - public string UseInAcTable; // UseRNOTypeInAcTable - public string Number; // DontNumberHighLevelSteps - public string ThreeBlanksAbove; // ThreeBlanksAboveNotesCautions - public string CheckOffs; // NoCheckOffsInRNO - public string Quoted; // QuotedSubSteps - /* end of xtraflags */ - public VE_Font Font; - public Layout StepLayoutData; - public Edit StepEditData; - public Print StepPrintData; - public Tab TabData; -} -[Serializable] -public struct Edit -{ - public string ForeColor; // Doesn't exist in old format - See StepLayoutData - public string BackColor; // Doesn't exist in old format - See StepLayoutData - public string AcTable; - public string Searchable; - public TypeMenu TypeMenu; -} -[Flags] - // acceptence list for adding Tables, Cautions, Notes, Substeps, Next, Previous and RNO -public enum E_AccStep : uint -{ - AddingCaution = 1, - AddingNote = 2, - AddingRNO = 4, - AddingSub = 8, - AddingTable = 16, - AddingNext = 32, - AddingPrev = 64 -} -[Serializable] -public struct TypeMenu -{ - public string InMenu; // bool - list in menu if step is in Normal (Left-side) column - public string RnoInMenu; // bool - list in menu if step is in RNO (right-side) column - public string MenuItem; // for migration, if alternatename or rnoalternate name, use it, otherwise it's type - public string RnoMenuItem; // for migration, if alternatename or rnoalternate name, use it, otherwise it's type - public string NoChgReason; // if not in any menu, list reason for User Interface - public string AlternateNameList; // put indices of alternate types in a list (string) - //public AlternateName[] AlternateNames; // during migration from 16-bit, this is textype values -} -//[Serializable] -//public struct AlternateName -//{ -// public string Type; // Step Types that can be included/mixed in the menu (caution/notes) -//} -[Serializable] -public struct Print -{ - public string ForeColor; // Doesn't exist in old format - See StepLayoutData - public string BackColor; // Doesn't exist in old format - See StepLayoutData - public string PosAdjust; - public string HLSLength; // added for wolf creek checklist to define max string len of HLS (checklist steps) - public string Justify; // added for wolf creek checklist procedures. -} -[Serializable] -public struct Layout -{ - public string ForeColor; - public string BackColor; - public string STExtraSpace; - public string STBoxindex; - public string EveryNLines; - public string SpaceBefore; // = 0 - public string SpaceAfter; // 1 line (in points) - public string AlwaysUpperCase; - public string PageBreakAtTypeChange; - public string AlignWithParentTab; -} -[Serializable] -public struct Tab -{ - //for VCSummer by jcb - public bool RNOExcludeMacros; - public bool IsTransition; - public float MacroTabAdjust; - //end for VCSummer by jcb - public float RNOAdjustTabSize; // added for SHE to align rno whose parent is AND - public string IdentEdit; - public string Ident; - public string IdentAltPrint; - public string RNOIdentEdit; - public string RNOIdent; - //public string IdentEditWid; - public string IdentWid; - //public string RNOIdentEditWid; - //public string RNOIdentWid; - public string Justify; // from tbstyle - None, CENTER, LEFT, RIGHT - public string UsePreviousStyle; - public string NoTrim; - public COMacro[] MacroList; - public VE_Font Font; - public TabBullet Bullet; -} -[Serializable] -public struct COMacro -{ - public string Name; - public string Macro; - public string Grouping; - public string NotInRNO; - public string LocWithXOff; -} -[Serializable] -public struct Box -{ - public int Index; - public float Start; - public float End; - public float TxtStart; - public float TxtWidth; - public float Height; - public float TabPos; - public sbyte TxtRowAdj; - public string BXURC; // Upper Right Corner, etc. - public string BXHorz; - public string BXULC; - public string BXVert; - public string BXMLS; - public string BXMRS; - public string BXLRC; - public string BXLLC; - public string BXMID; - public string BXLHorz; - public string BXUMID; - public string BXLMID; - public VE_Font Font; -} -[Serializable] -public struct Trans -{ - public string DelimiterForTransitionTitle; - public string StepSubstepDelimeter; - public string ThroughString; - /* Format flags moved to here.... */ - public string SpecifiedSubstepsOnly; - public string CapsTransitions; - public string CapTranStep; - public string Underline; - public string TStepNoFlag; - public string LowerCaseTranNumber; - public string UpcaseTranAnd; - public string SuppressAndInTran; - public string Cap1stCharTrans; - public string UseTransitionModifier; - public string UseSpecificTransitionModifier; // added for BGE. Modifier, i.e. page num, is within the specific format string that defines the transition - public string UseSpecificPageNo; // added for BGE. Use specific page number instead of 'Next Page' or 'Previous Page' - public string UseSecTitles; - public string HardSpTranProcNumb; - public string XchngTranSpForHard; - public string AbsoluteTransitionUpdate; - public string LowerCaseStepInTran; - public string DoSectionTransitions; - public bool AdjustStepTransitionText; - public bool BoldTransitionExceptHLS; - /* End of Format flags */ - public TransTypes[] TransTypeData; -} -[Serializable] -public struct TransTypes -{ - public int Index; - public byte TransType; - public string TransFormat; - public string TransMenu; - public string TransUI; -} -[Serializable] -public struct RO -{ - /* Format flags moved to here.... */ - public string AllUnits; - public string UpRoAftrDash; //UpSetpntAftrDash; - public string UpRoImmAftrDashSpace; //New - used this to differentiate from already (incorrect) existing UpRoAftrDash - public string UpcaseAllRoUnits; //UpcaseAllSetpointUnits; - public string CapHighRo; //CapHighSetpnt; - public string CapRoIfLastLower; //Old CapsPIFLastLower; - public string CapSPIfLastLower; //Adding in CapSPIFLastLower; - public string UpRoIfPrevUpper; //UpSpIfPrevUpper - public string UnderlineRo; //UnderlineSetpoints - public string CapFirstLetterInHighRO; //CAPFIRSTLETTERINHIGHSP - /* End of Format flags */ -} -[Serializable] -public struct TabBullet -{ - public string Separate; - public VE_Font Font; -} - -[Flags] -public enum E_TransitionMenus : uint -{ - None = 0, - ProcCur = 0x0001, - ProcMenu = 0x0002, - SectCur = 0x0004, - SectDefault = 0x0008, - SectMenuAny = 0x0010, - SectMenuStep = 0x0020, - StepAllowNone = 0x0040, - StepFirst = 0x0080, - StepLast = 0x0100 -} -[Flags] -public enum E_TransFormatXlate : uint -{ - None = 0, - Step = 1, - Range = 2, - Section = 4, - Procedure = 8, - Page = 16 -} - -#endregion - -/////////////////////////// -namespace fmtxml -{ - public partial class FmtFileToXml - { - #region localdata - public XtraFlgs BaseXtraFlags; // used to set up all flags for the Base format. - public XtraFlgs SubXtraFlags; - public static int MAXSTEPS = 47; - public static int MAXBOXES = 12; - public static int MAXTABS = 20; - public static int MAXTRANS = 15; - public static int MAXCHECKOFFS = 18; - public static int MAXCHKHEADINGS = 5; - public static int MAXSEQ = 9; - public static int MAXREPLACE = 60; - #region XtraFlagBits - // XtraFlag translation fields... - // - // XtraFlag[0] from 16-bit... - public static int DOUBLERNOSPACE = 0x0001; - public static int MIXCAUTIONSANDNOTES = 0x0002; - public static int ALWAYSUSEEXTRALINES = 0x0008; - public static int ALWAYSTABNOTE = 0x0010; - public static int ALWAYSTABCAUTION = 0x0020; - public static int SPECIALPAGEBREAKFLAG = 0x0080; - public static int DONTPAGINATEONFIRSTSUBSTEP = 0x0200; - public static int IMPERFECTSTRUCTURE = 0x0800; - public static int DONTUSEHALFLINES = 0x1000; - public static int FORTRANFORMATNUMBERS = 0x2000; - public static int ALLUNITS = 0x4000; - public static int CAPSTRANSITIONS = 0x8000; - - // XtraFlag[1] from 16-bit... - public static int CAPTRANSTEP = 0x0001; - public static int TSTEPNOFLAG = 0x0004; - public static int LOWERCASETRANNUMBER = 0x0008; - public static int CONDENSEDCHANGEBAR = 0x0020; - public static int DOREVDATE = 0x0040; - public static int SEPARATEBOX = 0x0080; - public static int NUMBERHIGHLEVELRNO = 0x0100; - public static int ALTERNATEFOLDOUTPAGES = 0x1000; - public static int DONTTRYTOFILLHALFOFPAGE = 0x8000; - - // XtraFlag[2] from 16-bit... - public static int DONTCAPITALIZETITLE = 0x0001; - public static int NOSPACEDOUBLERNO = 0x0004; - public static int DONTOFFSETTAB = 0x0010; - public static int UPSETPNTAFTRDASH = 0x0020; - public static int LOWERCASEREVNUM = 0x0040; - public static int DONOTCOMPRESSSTEPS = 0x0080; - public static int REDUCELINEAFTERNOTEANDCAUT = 0x0100; - public static int RNOSAMELEVEL = 0x0200; - public static int BOLDHIGHLEVELRNO = 0x2000; - public static int ONELINEBEFORENOTECAUTIONTAB = 0x4000; - public static int CONTINUOUSCHANGEBARS = 0x8000; - - // XtraFlag[3] from 16-bit... - //public static int CHECKOFFONALLSTEPS = 0x0004; - public static int DONTBOXAC = 0x0020; - public static int USETOPCONTINUEMESSAGEATEND = 0x0080; - public static int UPCASETRANAND = 0x2000; - public static int UPCASEALLSETPOINTUNITS = 0x4000; - - // XtraFlag[4] from 16-bit... - public static int DEV_FORMAT = 0x0001; - public static int DONTDOSTEXTRAATTOP = 0x0004; - public static int XLINES_STEPFIX = 0x0008; - public static int REBOXCAUTNOTE = 0x0010; - public static int IMMSTEPSPCHDR = 0x0020; - public static int FLOATINGCONTINUEMESSAGE = 0x0080; - public static int ABSOLUTEFIXEDCHANGECOLUMN = 0x0200; - public static int LJBORDERLESSTABLE = 0x0800; - public static int SUPPRESSANDINTRAN = 0x1000; - public static int CAPHIGHSETPNT = 0x2000; - public static int CAPFIRSTLETTERINHIGHSP = 0x4000; - public static int CAPSPIFLASTLOWER = 0x8000; - - // XtraFlag[5] from 16-bit... - public static int ALTERNATEFLOATINGFOLDOUT = 0x0001; - public static int WRAPSAMEASEDIT = 0x0002; - public static int KEEPSTEPSONPAGE = 0x0004; - public static int SPECIFIEDSUBSTEPSONLY = 0x0008; - public static int THREEBLANKSABOVENOTESCAUTIONS = 0x0010; - public static int IMPERFECTSUBSTEP = 0x0040; - public static int DONTBREAKONSECTIONS = 0x0080; - public static int NOSTEPNUMIFONLYONESTEP = 0x0100; - public static int SHOWSECTIONTITLES = 0x0200; - public static int LJTABS = 0x0400; - public static int DONTNUMBERRNOSUBS = 0x0800; - public static int DROPCHECKOFF = 0x4000; - public static int NOCHECKOFFSINRNO = 0x8000; - - // XtraFlag[6] from 16-bit... - - public static int CHGBARMESSAGEFROMEDIT = 0x0001; - public static int CHANGEBARTORNOSEP = 0X0002; - public static int CHGSTYLEPERSECTION = 0x0008; - public static int SECTIONLEVELFOLDOUTS = 0x0010; - public static int BOXCONTACTIONS = 0x0020; - public static int DOSECTIONTRANS = 0x0040; - public static int UPSPIFPREVUPPER = 0x0100; - public static int CONTINUESECTIONHEADER = 0x0200; - public static int GLOBALPROCINFO = 0x0400; - public static int COMPRESSHPSUB = 0x0800; - public static int BULLETONCONTINUOUS = 0x1000; - public static int CANCELSECTITLESONS2 = 0x2000; - public static int NOENDFORSINGLE = 0x4000; - public static int USEMETASECTIONS = 0x8000; - - // XtraFlag[7] from 16-bit... - - public static int RNOCONTINUEONLY = 0x0001; - public static int CAP1STCHARTRANS = 0x0002; - public static int DONTPAGINATEONFIRSTSUBSTEP3X = 0x0004; - public static int RNOSEPAFTERAER = 0x0008; - public static int REVDATEWITHFORWARDSLASH = 0x0010; - public static int USEALTERNATESTEPBOX = 0x0040; - public static int CANCELSECTITLESONS1 = 0x0080; - public static int SPECIALSTEPSFOLDOUT = 0x0100; - public static int UNDERLINEAFTERDASHSPACE = 0x0200; - public static int NOSPACEINNOTEORCAUTION = 0x0400; - public static int USEXTRAREVNUMBER = 0x0800; - public static int UNDERLINESETPOINTS = 0x1000; - public static int DOSECTIONTRANSTYPEB = 0x2000; - public static int PAGINATEONLOWERSTEPLEVEL = 0x4000; - public static int USETRANSITIONMODIFIER = 0x8000; - - // XtraFlag[8] from 16-bit... - - public static int CUSTOMSPACING = 0x0001; - public static int ENHANCEDSHORTFORMDEV = 0x0002; - public static int PAGEBREAKONHIGHLEVELSTEP = 0x0010; - public static int PAGEBREAKONCAUTIONS = 0X0040; - public static int PAGEBREAKONNOTES = 0X0080; - public static int ALIGNNULLTABWSECTHEAD = 0X0100; - public static int DONTUSESECTITLES = 0x0200; - public static int TEXTSUBFOLLOWSTEXTSTYLE = 0x0400; - public static int TRANSPROCTITLEINPAREN = 0x0800; - public static int HARDSPTRANPROCNUMB = 0x1000; - public static int TREATANDORASSEQUENTIAL = 0x2000; - public static int DONTSPLITSTEPINPRNTSTEP = 0x4000; - public static int LINEABOVEUNDERSECTION = 0x8000; - - // XtraFlag[9] from 16-bit... - - public static int PICAIGNOREFIVESIXTHS = 0x0004; - public static int SPACEFORNOSECNUMB = 0x0008; - public static int NONEDITABLESTEPS = 0x0010; - public static int BOXEDSUBSTEPS = 0x0020; - public static int DONTNUMBERHIGHLEVELSTEPS = 0x0040; - public static int NOSTEPNUMBERFORHIGHLEVELRNO = 0x0400; - public static int PROMPTFORCAUTINTYPE = 0x0800; - public static int CAUTION1SAMEROWASPARENT = 0x1000; - public static int WOLFCREEKBACKGROUNDFORMAT = 0x4000; - public static int ENHANCEDSTEPNUMFROMPREV = 0x8000; - - // XtraFlag[10] from 16-bit... - - public static int CONTROLUNDERLINESTYLE = 0x0001; - public static int MULTIPLECHANGEIDS = 0x0008; - public static int USEMULTILINESECTIONTITLE = 0x0010; - public static int PAGEBREAKONFIRSTBLANKLINE = 0x0040; - public static int DONTPRINTNOTITLE = 0x0080; - public static int NOTESTOFOOTNOTES = 0x0400; - public static int UNDSPECIALSTEPSFOLDOUT = 0x0800; - public static int PUTONPAGEBYITSELF = 0x4000; - public static int PRINTPHONELIST = 0x8000; // USEPHONELIST in 16-bit code - - // XtraFlag[11] from 16-bit... - - public static int SECTITLECONTINUE = 0x0001; - public static int CANCELSECTITLESONE0 = 0x0002; - public static int METASECTENDMESSAGE = 0x0004; - public static int RNONUMBERWITHLEVEL = 0x0008; - public static int CANCELSECTITLESONE2 = 0x0040; - public static int COMPRESSHPSUPER = 0x2000; - - // XtraFlag[12] from 16-bit... - - public static int MATCHUPRNOCAUTNOTE = 0x0001; - public static int PAGINATEATHIGHESTPAGINLEVEL = 0x0008; - public static int USELONGPROCTITLES = 0x0100; - public static int SPECIALLANDSCAPEMODE = 0x1000; - public static int RNOINPAGELIST = 0x2000; - public static int STPCAUTNOTETABINPAGELIST = 0x4000; - public static int READONLYTYPEINCONTMSG = 0x8000; - - // XtraFlag[13] from 16-bit... - - public static int CENTERONELINEONLY = 0X0001; - public static int TIETABTOLEVEL = 0x0002; - public static int ACCESSORYDOCSINDUPLEX = 0x0008; - public static int FOLDOUTSINDUPLEX = 0x0010; - public static int USESTEXTRAREALVALUE = 0x0040; - public static int SUBTABLEGETSUP1LEVEL = 0x0080; - public static int DONTCOUNTFOLDOUTPAGES = 0x0200; - public static int SEARCHALLREPLACEWORDS = 0x1000; - - // XtraFlag[14] from 16-bit... - - public static int REMEMBERCAUTIONSANDNOTES = 0x0001; - public static int RTFADJUSTMENTS = 0x0008; - public static int CENTERONELINEADJUST = 0x0010; - public static int COUNTALLSUBLEVELS = 0x0020; - public static int DONTREPLACEWORDSINROS = 0x0080; - public static int HIGHLEVELRNOBEFOREAERSUBSTPS = 0x0100; - public static int UNDERLINEALLMETATITLES = 0x0200; - public static int DONTBREAKCAUTIONSORNOTES = 0x0400; - public static int BOLDONLYSECTIONZERO = 0x0800; - public static int DONTBREAKONRNO = 0x1000; - public static int RNOCHECKOFFSAMEASPARENT = 0x2000; - public static int USESTEPTYPEWIDTHOVERRRIDE = 0x4000; - public static int WOLFCREEKCKLFORMAT = 0x8000; - - // XtraFlag[15] from 16-bit... - - public static int DONTPAGINATEONFIRSTSUBSTEP2X = 0x0001; - public static int USESTEPTYPEWIDTHOVERRRIDEEDITPRINT = 0x0002; - public static int PARTIALSTEPCOMPRESSION = 0x0004; - public static int USESMARTTEMPLATE = 0x0008; - public static int CHECKOFFONHLSONLY = 0x0010; - public static int CAUTION2SAMEROWASPARENT = 0x0080; - public static int CENTERTEXTWITHINWIDTH = 0x0200; - public static int DONTBREAKEQUIPMENTLIST = 0x0400; - public static int ALWAYSTABCAUTION2 = 0x1000; - public static int VIRTUALDOTINHLSTAB = 0x2000; - public static int IMPERFECTSTRUCTUREPLUS4 = 0x4000; - - // XtraFlag[16] from 16-bit... - - public static int USERNOTYPEINACTABLE = 0x0002; - public static int ABSOLUTETRANSITIONUPDATE = 0x0004; - public static int SEPARATEBOXCAUTIONS = 0x0008; - public static int HLSTEXTINPAGELIST = 0x0020; - public static int LOWERCASESTEPINTRAN = 0x0080; - public static int CHANGEBARSONLINKEDTEXT = 0X1000; - public static int QUOTEDSUBSTEPS = 0x2000; - - // XtraFlag[17] from 16-bit... - - public static int OVERRIDEENHANCEDTABS = 0x0008; - public static int NONEWLINEAFTERRNO = 0x0020; - public static int DOSECTIONSEPARATORLINE = 0x0040; - public static int PARENSONEXTPAGENUMTRANS = 0x0080; - public static int ATLEASTTWODIGITSFORHLS = 0x0100; - public static int DONTBREAKOPTEQUIPMENTLIST = 0x0200; - public static int PAGELISTCHANGEIDSWITHCOMMAS = 0x0400; - public static int DONTSTARTLINEWITHDASH = 0x0800; - public static int NOBLANKLINEBEFORESUBSTEP = 0x1000; - public static int DONTBREAKCAUTIONSNOTESONSUBSTPS = 0x2000; - public static int DONTCONVERTCARETTODELTA = 0x4000; - - // XtraFlag[18] (was VEAIRFLAG) from 16-bit... - public static int NORNO = 0x0002; - public static int ONLYSINGLECOLUMN = 0x0008; - public static int NULLBOX = 0x0010; - public static int XCHNGTRANSPFORHARD = 0x0020; - public static int WOLFCREEKCKLBACKGNDFORMAT = 0x0040; - #endregion - // use the following to define which step the AlternateStepType data is associated with. - // i.e. look in new.def to determine the #defines for the original step type associated - // with the name of the define. Note that all have been incremented by 1 since these are - // indices into the step list and we introduced 'Base' at index 0. - // (ALT_HIGH, ALT_CONTINUOUS, ALT_IMMEDIATE, ALT_LOSSOFAC, ALT_HIGH5) - private int[] altsteps = { 2, 9, 3, 18, 41 }; // before increment of 1: { 1, 8, 2, 17, 40 }; - - // use the following to define which step the AlternateSubType data is associated with. - // (see above) (ALT_STANDARD, ALT_AND, ALT_OR, ALT_EQUIPMENTLIST, ALT_EQUIPMENTWBLANK, ALT_EXPLICITAND - private int[] altsubsteps = {1, 4, 5, 11, 14, 19, // before increment of 1: {0, 3, 4, 10, 13, 18, - // ALT_IMPLICITOR, ALT_PARAGRAPH, ALT_EQUIPMENTOPT, ALT_EQUIPMENTOPTWBLANK, ALT_TITLEWITHTEXTRIGHT - 35, 24, 30, 31, 42, // before increment of 1: 34, 23, 29, 30, 41, - // ALT_TITLEWITHTEXTBELOW, ALT_CONTACSEQUENTIAL, ALT_CONTACAND, ALT_CONTACOR, ALT_CONTACPARAGRAPH - 43, 44, 45, 46, 47}; // before increment of 1: 42, 43, 44, 45, 46}; - - private string[] StepTypes = { - "Base", "Substep","High","Immediate","And","Or","Caution","Note","Table","Continuous", - "AERTable","EquipmentList","Title","PageNumber","EquipmentWBlank","ProcNumber", - "RevNumber","AccPages","LossOfAC","ExplicitAnd","Caution1","Caution2", - "Note1","Note2","Paragraph","Default","Note3","Caution3","Note4","Caution4", - "EquipmentOpt","EquipmentOptWBlank","Note5","BorderlessAERTable","BorderlessTable", - "ImplicitOr","Figure","AERFigure","BorderlessFigure","BorderlessAERFigure", - "RNOType","High5","TitleWithTextRight","TitleWithTextBelow", - "ContAcSequential","ContAcAnd","ContAcOr","ContAcParagraph" - }; - private string[] ParentTypes = { - "", "Base","Base","High","Substep","Substep","Base","Base","Base","High", - "Table","Substep","Base","Title","EquipmentList","Title", - "Title","Base","High","And","Caution","Caution", - "Note","Note","Substep","Substep","Note","Caution","Note","Caution", - "EquipmentList","EquipmentWBlank","Note","AERTable","Table", - "Or","Base","Figure","Figure","AERFigure", - "High","High","Title","Title", - "Substep","And","Or","Paragraph" - }; - private string[] Inactive = { - "False", "False","False","False","False","False","False","False","False","False", - "False","False","False","True","False","True","True","True","False","False","False","False", - "False","False","False","True","False","False","False","False","False","False","False","False","False", - "False","False","False","False","False","False","False","False","False","False","False","False","False" - }; - private string[] Searchable = { - "False", "True", "True","True","True", "True", "True","True","True","True", - "True", "True", "False","False","True", "False","False","True","True","True","True","True", - "True","True","True","False","True","True","True","True","True","True","True","True","True", - "True","True","True","True","True","True","True","False","False","True","True","True","False" - }; - private string[] TypeMenuItem = { - "Base", "Sequential Substep", "Standard High Level Step","Immediate Action Step","AND", "OR", "Caution","Note","Centered Table","Continuous Action Step", - "AER Table", "Equipment List", "Title","Page Number","Equipment Preceded by Blank Line", "Procedure Number", - "Rev Number","Acc Pages","Boxed High Level Step","Explicit AND","Caution 1","Caution 2", - "Note 1","Note 2","Paragraph","Default","Note 3","Caution 3","Note 4","Caution 4", - "Optional Equipment List","Optional Equipment with Blank Line","Note 5","AER Table Without Border","Centered Table Without Border", - "Implicit OR","Centered Figure","AER Figure","Centered Figure Without Border","AER Figure Without Border", - "RNO Type","Alternate High Level Step","Title With Text Right","Title With Text Below", - "Continuous Action Sequential","Continuous Action AND","Continuous Action OR","Continuous Action Paragraph" - }; - private string[] NoChangeTypeReason = { - "Base Type - No change at this level", null, null,null,null, null, null,null,null,null, - null, null, null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, - null,null,null,null,null,null,null,null,null,null,"RNO - No change allowed",null,null,null, - null,null,null,null - }; - private string[] RnoInMenu = { - null, "True",null,null,"True","True",null,null,"True",null,"False","True",null,null,"True",null, - null,null,null,"True",null,null,null,null,"True",null,null,null,null,null,"True","True",null,"False","True", - "True","True","False","True","False","False",null,null,null,"True","True","True","True" - }; - - /* - * from the 16-bit code, the following step type attributes/strings were defined. This was found in \promnt\lib\edit\slectyp.c - * High level types: - * "High Level Step","Continuous Action Step","Immediate Action Step","Boxed High Level Step","Alternate High Level Step" - * int far HighTypeValue[]={HIGH,CONTINUOUS,IMMEDIATE,LOSSOFAC,HIGH5}; - * Substep types: - * char *SubType[NBRSUB]={ - * "Sequential", - * "AND", - * "OR", - * "Equipment List", - * "Equipment Preceded by Blank Line", - * "Explicit AND", - * "Implicit OR", - * "Paragraph", - * "Optional Equipment List", - * "Optional Equipment with Blank Line", - * "Continuous Action Sequential", - * "Continuous Action AND", - * "Continuous Action OR", - * "Continuous Action Paragraph", - * "Title With Text To The Right", - * "Title With Text Placed Below" - * int SubTypeValue[NBRSUB]={STANDARD,AND,OR,EQUIPMENTLIST,EQUIPMENTWBLANK,EXPLICITAND,IMPLICITOR,PARAGRAPH, - * EQUIPMENTOPT,EQUIPMENTOPTWBLANK,CONTACSEQUENTIAL,CONTACAND,CONTACOR,CONTACPARAGRAPH,TITLEWITHTEXTRIGHT,TITLEWITHTEXTBELOW - * - */ - - private string[] WinColors = - { - "black","blue","green","cyan","red","magenta", - "brown","lightgray","darkgray","ligthblue", - "lightgreen","lightcyan","lightred","lightmagenta", - "yellow","white" - }; - /* - * The ?. characters have been added to the DefaultTransStr. This string is used in the - * code to determine the text that gets resolved for a transition. - * - * ?. means the following (for !section transitions) - * for proc - if current, don't put out text, if !current, put out text - * for sect - if curproc: if cursect, don't put out text; if !cursect, put out text - * if !curproc: if default sect, don't put out text; if !default sect, put out text - */ - private string[] DefaultTransStr = - { - "{Proc Num}, {Proc Title}, Step {First Step}", - "{First Step}", - "{First Step}, {.}, {.}, {.} and {Last Step}", - "{First Step} thru {Last Step} of {?.Proc Num}, {?.Proc Title}, {?.Sect Hdr}", - // The section transition had
    for the following, but the 16-bit code - // put in the number & title, so 32-bit uses '{?.Sect Hdr}'. This will need to be - // tested for formats that actually use
    : AEP, BGE, FNP, NSP. OHLP did not. - "{?.Sect Hdr}, Step {First Step}", - "{Proc Num}, {Proc Title}, {?.Sect Hdr}, Step {First Step}" - }; - - #region SectionTransitionVariables - private string DefaultSectionTransStrTypeB = "{Sect Num}, {Sect Title}, {First Step}"; - private string DefaultSectionTransStrTypeBNone = "{Sect Hdr}, Step {SectNum}{First Step}"; //original - private string[] DefaultSectionTransFormatStr = - { - "{Proc Num}, {Proc Title}, Step {Sect Num}{First Step}", - "{Sect Num}{First Step}", - "{Sect Num}{First Step}, {.}, {.}, {.} and {Sect Num}{Last Step}", - "{Sect Num}{First Step} thru {Sect Num}{Last Step}", - "{Sect Num}, Step {?.Sect Num}{First Step}", - "{Sect Hdr}, Step {SectNum}{First Step}" - }; - // made up the following strings so that the token processing for setting - // up the menu enums would work as expected. These are only used in this migration - // code to set up the enums. The above (DefaultSectionTransFormatStr) is used for - // the actual formatting of the strings in the new code. - private string[] DefaultSectionTransTokenStr = - { - "{Proc Num}, {Proc Title}, Step {First Step}", - "{First Step} ( Within the current section )", - "{First Step}, {.}, {.}, {.} and {Last Step}", - "{Sect Num}{First Step} thru {Sect Num}.{Last Step}", - "{Sect Num}{First Step} ( To a different section )", - "{Sect Num}{First Step}, {Sect Title} ( To a different section )" - }; - - #endregion - - private Int16[] Tabindx; - private BinaryReader brFmt; - private string fmtName; - - private static Dictionary dicChar; - #endregion - public FormatData BaseFormat; - public static List> StepParentList = new List>(); - public static List> StepList = new List>(); - public bool HasBase; - public FormatData MyFormat; - public string MyPath; - public FmtFileToXml(FmtFileToXml gendata, string alias, string nm, string path) - { - //DateTime tStart = DateTime.Now; - MyPath = path; - if (gendata == null) - HasBase = false; - else - { - HasBase = true; - BaseFormat = gendata.MyFormat; - - } - BuildDictionaryText(); - fmtName = alias; - //if (fmtName.ToUpper() != "BGEALN" && fmtName.ToUpper() != "BASE") return; - //if (fmtName.ToUpper() != "OHLP" && fmtName.ToUpper() != "BASE" && fmtName.ToUpper() != "WCN2") return; - //if (fmtName.ToUpper() != "WCNCKL" && fmtName.ToUpper() != "BASE") return; - //if (fmtName.ToUpper() != "NSPARP" && fmtName.ToUpper() != "BASE") return; - //if (!fmtName.ToUpper().StartsWith("FNP") && fmtName.ToUpper() != "BASE") return; - try - { - LoadFormatFile(nm + ".fmt", ref SubXtraFlags); - } - catch (Exception ex) - { - MessageBox.Show("Format name FAILED = " + nm, ex.Message); - } - //Console.WriteLine(" {0:0.000} seconds", TimeSpan.FromTicks(DateTime.Now.Ticks - tStart.Ticks).TotalSeconds); - } - #region GetBinaryReaderData - private byte[] GetByteArray(BinaryReader br, int len) - { - byte[] input; // = new byte[len + 1]; - input = br.ReadBytes(len); - return input; - } - - public static Regex Reg2; - public static void BuildDictionaryText() - { - #region ExtraUnicodeConvert - dicChar = new Dictionary(); - // note that the following characters needed adjusted, i.e. the - // default conversion to unicode did not result in the desired letter, - // so an extra conversion was needed. - dicChar[966] = 216; // dist zero - dicChar[201] = 274; // capital E with macron (line above) - dicChar[127] = 916; // delta - dicChar[964] = 947; // little gamma - dicChar[920] = 952; // little theta - dicChar[915] = 961; // little rho - dicChar[191] = 964; // little tau - dicChar[8801] = 8773; // approx. equal - dicChar[8734] = 8857; // circle w/ dot - dicChar[7] = 9679; // bullet - dicChar[8976] = 9830; // diamond - // dicChar[15] = 167; // grave 15=F; 167=xA7 - #endregion - #region DefinedLineDrawChars - // do all of the box/line draw characters to unicode. These were part - // of the Volian Line Draw font. - dicChar[179] = 9474; // b3 - dicChar[180] = 9508; // b4 - dicChar[181] = 9569; - dicChar[182] = 9570; - dicChar[183] = 9558; - dicChar[184] = 9557; - dicChar[185] = 9571; // b9 - dicChar[186] = 9553; // ba - dicChar[187] = 9559; - dicChar[188] = 9565; - dicChar[189] = 9564; - dicChar[190] = 9563; - dicChar[191] = 9488; - dicChar[192] = 9492; // c0 - dicChar[193] = 9524; - dicChar[194] = 9516; - dicChar[195] = 9500; - dicChar[196] = 9472; - dicChar[197] = 9532; // C5 - dicChar[198] = 9566; - dicChar[199] = 9567; - dicChar[200] = 9562; - dicChar[201] = 9556; - dicChar[202] = 9577; // ca - dicChar[203] = 9574; - dicChar[204] = 9568; - dicChar[205] = 9552; - dicChar[206] = 9580; - dicChar[207] = 9575; - dicChar[208] = 9576; // d0 - dicChar[209] = 9572; - dicChar[210] = 9573; - dicChar[211] = 9561; - dicChar[212] = 9560; - dicChar[213] = 9554; // d5 - dicChar[214] = 9555; - dicChar[215] = 9579; - dicChar[216] = 9578; - dicChar[217] = 9496; - dicChar[218] = 9484; // da - dicChar[219] = 9608; - dicChar[220] = 9604; - dicChar[221] = 9612; - dicChar[222] = 9616; - dicChar[223] = 9600; - #endregion - #region StyleTokens - - /* - * char AttrOnList[7] = {0xd3,0xd5,0xae,0xb2,SUBSCRIPT_ON,SUPERSCRIPT_ON,0}; - char AttrOffList[7] = {0xd4,0xd6,0xaf,0xdd,SUBSCRIPT_OFF,SUPERSCRIPT_OFF,0}; - int AttrList[7] = {BUNDERLINE_WORD, BOLD_WORD, UNDERLINE_WORD, - ITALICS_WORD, SUBSCRIPT_WORD, SUPERSCRIPT_WORD,0}; - - dicChar[13] = 213; //bold on 13=D -> 213=xD5 - //bold off ?? -> 214=xD6 - dicChar[16] = 244; //underline on 16=x10 -> 244=xF4 - //underline off ?? -> 246=xF6 - //bold&uline on ?? -> 211=xD3 - //bold/uline off ?? -> 212=xD4 - dicChar[18] = 198; //superscript on 18=x12 -> 108=xC6 - //superscript off ?? -> 109=xc7 - dicChar[19] = 209; //subscript on 19=x13 -> 209=D9 - //subscript off ?? -> 166->xA6 - - - // see exe\edit\vestdstp.c for some of these.... - dicChar[1] = 161; //Bold word or toggle - dicChar[2] = 162; //Underline word - // not used except in TRANSITIONS dicChar[3] = 164; //Bold/Uline word - // not used except in TRANSITIONS dicChar[4] = 165; //Italics word - dicChar[5] = 111; //Bold/Italics word - dicChar[6] = 111; //Bold/Uline word - //dicChar[7] = 111; //Bold/Uline/Italics word - dicChar[8] = 111; //super word - dicChar[9] = 111; - dicChar[10] = 111; - dicChar[11] = 111; - dicChar[12] = 111; - dicChar[14] = 111; - // ... 9-15 - dicChar[16] = 111; //subscript word - dicChar[17] = 111; - // ... 17-31 - dicChar[20] = 162; - dicChar[21] = 162; - dicChar[22] = 162; // toggle underline - dicChar[25] = 163; //subscript on 25=x19; 163=xA3 - dicChar[24] = 122; //subscript off (0x18) - dicChar[23] = 123; // underline next word - dicChar[31] = 163; - dicChar[26] = 163; - dicChar[27] = 163; - dicChar[28] = 163; - dicChar[29] = 163; - dicChar[30] = 163; - * */ - #endregion - - char[] creg = new char[dicChar.Count]; - int i = 0; - foreach (int ic in dicChar.Keys) - { - creg[i] = (char)ic; - i++; - } - Reg2 = new Regex("[" + new string(creg) + "]"); - } - public static string ReplaceChars(Match m) - { - char[] cs = m.Value.ToCharArray(); - for (int i = 0; i < cs.Length; i++) - { - if (dicChar.ContainsKey((int)(cs[i]))) - { - int iKey = (int)cs[i]; - int iValue = dicChar[iKey]; - //if(iKey<32 && iKey!=7)Console.WriteLine(" {0} {1} {2} {3}", iKey, (char)iKey, iValue, (char)iValue); - cs[i] = (char)iValue; - } - } - return new string(cs); - } - public static string ConvertText(string s1) - { - string s2 = Reg2.Replace(s1, new MatchEvaluator(ReplaceChars)); - return s2; - } - private string GetStringFromByteNoConvert(Byte[] barray, int offset) - { - offset--; - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - bool stillread = true; - do - { - input = barray[offset++]; - if (input == 0) stillread = false; - inpstr.Append(Convert.ToChar(input)); - cnt++; - } while (stillread); - - string retstr = inpstr.ToString(); - retstr = retstr.Replace('<', '{'); - retstr = retstr.Replace('>', '}'); - //retstr = ConvertText(retstr); - if (retstr.Substring(retstr.Length - 1, 1) == "\0") return retstr.Substring(0, retstr.Length - 1); - return retstr; - } - private string GetStringFromByte(Byte[] barray, int offset) - { - offset--; - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - bool stillread = true; - do - { - input = barray[offset++]; - if (input == 0) stillread = false; - inpstr.Append(Convert.ToChar(input)); - cnt++; - } while (stillread); - - string retstr = inpstr.ToString(); - retstr = retstr.Replace('<', '{'); - retstr = retstr.Replace('>', '}'); - retstr = ConvertText(retstr); - if (retstr.Substring(retstr.Length - 1, 1) == "\0") return retstr.Substring(0, retstr.Length - 1); - return retstr; - } - static public string GetStringUntilNull(BinaryReader br) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - bool stillread = true; - do - { - try - { - input = br.ReadByte(); - if (input == 0) stillread = false; - inpstr.Append(Convert.ToChar(input)); - } - catch (System.IO.EndOfStreamException) - { - stillread = false; - } - cnt++; - } while (stillread); - - string retstr = inpstr.ToString(); - retstr = retstr.Replace('<', '{'); - retstr = retstr.Replace('>', '}'); - if (retstr.Substring(retstr.Length - 1, 1) == "\0") return retstr.Substring(0, retstr.Length - 1); - return retstr; - } - private string GetString(BinaryReader br, int len) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - do - { - try - { - input = br.ReadByte(); - inpstr.Append(Convert.ToChar(input)); - } - catch (System.IO.EndOfStreamException) - { - input = 0; - while (cnt < len) - { - inpstr.Append(Convert.ToChar(input)); - cnt++; - } - } - cnt++; - } while (cnt < len); - - string retstr = inpstr.ToString(); - retstr = retstr.Replace('<', '{'); - retstr = retstr.Replace('>', '}'); - if (retstr.Substring(retstr.Length - 1, 1) == "\0") return retstr.Substring(0, retstr.Length - 1); - return retstr; - } - #endregion - private VE_Font LoadVE_Font() - { - UInt32 ui = brFmt.ReadUInt32(); - //if (ui > 0) - Always set the font, even if it is 0 (default) - //{ - VE_Font retval = new VE_Font(ui); - return retval; - //} - //return null; - } - private VE_Font LoadVE_FontByte() - { - byte bt = brFmt.ReadByte(); - if (bt > 0) - { - VE_Font retval = new VE_Font(Convert.ToUInt32(bt)); - return retval; - } - return null; - } - #region XtraFlags - private void AddFlags(ref XtraFlgs XtraFlags, int i, Int16 flg) - { - if (i == 0) - { - if ((flg & DOUBLERNOSPACE) > 0) XtraFlags.DoubleRNOSpace = true.ToString(); - if ((flg & MIXCAUTIONSANDNOTES) > 0) XtraFlags.MixCautionsAndNotes = true.ToString(); - if ((flg & ALWAYSUSEEXTRALINES) > 0) XtraFlags.AlwaysUseExtralines = true.ToString(); - if ((flg & ALWAYSTABNOTE) > 0) XtraFlags.AlwaysTabNote = true.ToString(); - if ((flg & ALWAYSTABCAUTION) > 0) XtraFlags.AlwaysTabCaution = true.ToString(); - if ((flg & SPECIALPAGEBREAKFLAG) > 0) XtraFlags.SpecialPageBreakFlag = true.ToString(); - if ((flg & DONTPAGINATEONFIRSTSUBSTEP) > 0) XtraFlags.DontPaginateOnFirstSubStep = true.ToString(); - if ((flg & IMPERFECTSTRUCTURE) > 0) XtraFlags.ImperfectStructure = true.ToString(); - if ((flg & DONTUSEHALFLINES) > 0) XtraFlags.DontUseHalfLines = true.ToString(); - if ((flg & FORTRANFORMATNUMBERS) > 0) XtraFlags.FortranFormatNumbers = true.ToString(); - if ((flg & ALLUNITS) > 0) XtraFlags.AllUnits = true.ToString(); - if ((flg & CAPSTRANSITIONS) > 0) XtraFlags.CapsTransitions = true.ToString(); - } - else if (i == 1) - { - if ((flg & CAPTRANSTEP) > 0) XtraFlags.CapTranStep = true.ToString(); - if ((flg & TSTEPNOFLAG) > 0) XtraFlags.TSTepNoFlag = true.ToString(); - if ((flg & LOWERCASETRANNUMBER) > 0) XtraFlags.LowerCaseTranNumber = true.ToString(); - if ((flg & CONDENSEDCHANGEBAR) > 0) XtraFlags.CondensedChangeBar = true.ToString(); - if ((flg & DOREVDATE) > 0) XtraFlags.DoRevDate = true.ToString(); - if ((flg & SEPARATEBOX) > 0) XtraFlags.SeparateBox = true.ToString(); - if ((flg & NUMBERHIGHLEVELRNO) > 0) XtraFlags.NumberHighLevelRNO = true.ToString(); - if ((flg & ALTERNATEFOLDOUTPAGES) > 0) XtraFlags.AlternateFoldoutPages = true.ToString(); - if ((flg & DONTTRYTOFILLHALFOFPAGE) > 0) XtraFlags.DontTryToFillHalfOfPage = true.ToString(); - } - else if (i == 2) - { - if ((flg & DONTCAPITALIZETITLE) > 0) XtraFlags.DontCapitalizeTitle = true.ToString(); - if ((flg & NOSPACEDOUBLERNO) > 0) XtraFlags.NoSpaceDoubleRNO = true.ToString(); - if ((flg & DONTOFFSETTAB) > 0) XtraFlags.DontOffsetTab = true.ToString(); - if ((flg & UPSETPNTAFTRDASH) > 0) XtraFlags.UpSetpntAftrDash = true.ToString(); - if ((flg & LOWERCASEREVNUM) > 0) XtraFlags.LowerCaseRevnum = true.ToString(); - if ((flg & DONOTCOMPRESSSTEPS) > 0) XtraFlags.DoNotCompressSteps = true.ToString(); - if ((flg & REDUCELINEAFTERNOTEANDCAUT) > 0) XtraFlags.ReduceLineAfterNoteAndCaut = true.ToString(); - if ((flg & RNOSAMELEVEL) > 0) XtraFlags.RNOSameLevel = true.ToString(); - if ((flg & BOLDHIGHLEVELRNO) > 0) XtraFlags.BoldHighLevelRNO = true.ToString(); - if ((flg & ONELINEBEFORENOTECAUTIONTAB) > 0) XtraFlags.OneLineBeforeNoteCautionTab = true.ToString(); - if ((flg & CONTINUOUSCHANGEBARS) > 0) XtraFlags.ContinuousChangeBars = true.ToString(); - } - else if (i == 3) - { - if ((flg & DONTBOXAC) > 0) XtraFlags.DontBoxAC = true.ToString(); - if ((flg & USETOPCONTINUEMESSAGEATEND) > 0) XtraFlags.UseTopContinueMessageAtEnd = true.ToString(); - if ((flg & UPCASETRANAND) > 0) XtraFlags.UpcaseTranAnd = true.ToString(); - if ((flg & UPCASEALLSETPOINTUNITS) > 0) XtraFlags.UpcaseAllSetpointUnits = true.ToString(); - } - else if (i == 4) - { - if ((flg & DEV_FORMAT) > 0) XtraFlags.Dev_Format = true.ToString(); - if ((flg & DONTDOSTEXTRAATTOP) > 0) XtraFlags.DontDoSTExtraAtTop = true.ToString(); - if ((flg & XLINES_STEPFIX) > 0) XtraFlags.Xlines_StepFix = true.ToString(); - if ((flg & REBOXCAUTNOTE) > 0) XtraFlags.ReBoxCautNote = true.ToString(); - if ((flg & IMMSTEPSPCHDR) > 0) XtraFlags.IMMStepSpcHdr = true.ToString(); - if ((flg & FLOATINGCONTINUEMESSAGE) > 0) XtraFlags.FloatingContinueMessage = true.ToString(); - if ((flg & ABSOLUTEFIXEDCHANGECOLUMN) > 0) XtraFlags.AbsoluteFixedChangeColumn = true.ToString(); - if ((flg & LJBORDERLESSTABLE) > 0) XtraFlags.LJBorderlessTable = true.ToString(); - if ((flg & SUPPRESSANDINTRAN) > 0) XtraFlags.SuppressAndInTran = true.ToString(); - if ((flg & CAPHIGHSETPNT) > 0) XtraFlags.CapHighSetpnt = true.ToString(); - if ((flg & CAPSPIFLASTLOWER) > 0) XtraFlags.CapsPIFLastLower = true.ToString(); - if ((flg & CAPFIRSTLETTERINHIGHSP) > 0) XtraFlags.CapFirstLetterInHighSP = true.ToString(); - } - else if (i == 5) - { - if ((flg & ALTERNATEFLOATINGFOLDOUT) > 0) XtraFlags.AlternateFloatingFoldout = true.ToString(); - if ((flg & WRAPSAMEASEDIT) > 0) XtraFlags.WrapSameAsEdit = true.ToString(); - if ((flg & KEEPSTEPSONPAGE) > 0) XtraFlags.KeepStepsOnPage = true.ToString(); - if ((flg & SPECIFIEDSUBSTEPSONLY) > 0) XtraFlags.SpecifiedSubstepsOnly = true.ToString(); - if ((flg & THREEBLANKSABOVENOTESCAUTIONS) > 0) XtraFlags.ThreeBlanksAboveNotesCautions = true.ToString(); - if ((flg & IMPERFECTSUBSTEP) > 0) XtraFlags.ImperfectSubstep = true.ToString(); - if ((flg & DONTBREAKONSECTIONS) > 0) XtraFlags.DontBreakOnSections = true.ToString(); - if ((flg & NOSTEPNUMIFONLYONESTEP) > 0) XtraFlags.NoStepNumIfOnlyOneStep = true.ToString(); - if ((flg & SHOWSECTIONTITLES) > 0) XtraFlags.ShowSectionTitles = true.ToString(); - if ((flg & LJTABS) > 0) XtraFlags.LJTabs = true.ToString(); - if ((flg & DONTNUMBERRNOSUBS) > 0) XtraFlags.DontNumberRNOSubs = true.ToString(); - if ((flg & DROPCHECKOFF) > 0) XtraFlags.DropCheckOff = true.ToString(); - if ((flg & NOCHECKOFFSINRNO) > 0) XtraFlags.NoCheckOffsInRNO = true.ToString(); - } - else if (i == 6) - { - if ((flg & CHGBARMESSAGEFROMEDIT) > 0) XtraFlags.ChgBarMessageFromEdit = true.ToString(); - if ((flg & CHANGEBARTORNOSEP) > 0) XtraFlags.ChangeBarToRNOSep = true.ToString(); - if ((flg & CHGSTYLEPERSECTION) > 0) XtraFlags.ChangeStyleForEverySection = true.ToString(); - if ((flg & SECTIONLEVELFOLDOUTS) > 0) XtraFlags.SectionLevelFoldouts = true.ToString(); - if ((flg & BOXCONTACTIONS) > 0) XtraFlags.BoxContinousActions = true.ToString(); - if ((flg & DOSECTIONTRANS) > 0) XtraFlags.DoSectionTrans = true.ToString(); - if ((flg & UPSPIFPREVUPPER) > 0) XtraFlags.UpSpIfPrevUpper = true.ToString(); - if ((flg & CONTINUESECTIONHEADER) > 0) XtraFlags.ContinueSectionHeader = true.ToString(); - if ((flg & GLOBALPROCINFO) > 0) XtraFlags.GlobalProcInfo = true.ToString(); - if ((flg & COMPRESSHPSUB) > 0) XtraFlags.CompressHPSub = true.ToString(); - if ((flg & BULLETONCONTINUOUS) > 0) XtraFlags.BulletOnContinuous = true.ToString(); - if ((flg & CANCELSECTITLESONS2) > 0) XtraFlags.CancelSecTitlesOnS2 = true.ToString(); - if ((flg & NOENDFORSINGLE) > 0) XtraFlags.NoEndForSingle = true.ToString(); - if ((flg & USEMETASECTIONS) > 0) XtraFlags.UseMetaSections = true.ToString(); - } - else if (i == 7) - { - if ((flg & RNOCONTINUEONLY) > 0) XtraFlags.RNOContinueOnly = true.ToString(); - if ((flg & CAP1STCHARTRANS) > 0) XtraFlags.Cap1stCharTrans = true.ToString(); - if ((flg & DONTPAGINATEONFIRSTSUBSTEP3X) > 0) XtraFlags.DontPaginateOnFirstSubstep3X = true.ToString(); - if ((flg & RNOSEPAFTERAER) > 0) XtraFlags.RNOSepAfterAER = true.ToString(); - if ((flg & REVDATEWITHFORWARDSLASH) > 0) XtraFlags.RevDateWithForwardSlash = true.ToString(); - if ((flg & USEALTERNATESTEPBOX) > 0) XtraFlags.UseAlternateStepBox = true.ToString(); - if ((flg & CANCELSECTITLESONS1) > 0) XtraFlags.CancelSecTitlesOnS1 = true.ToString(); - if ((flg & SPECIALSTEPSFOLDOUT) > 0) XtraFlags.SpecialStepsFoldout = true.ToString(); - if ((flg & UNDERLINEAFTERDASHSPACE) > 0) XtraFlags.UnderlineAfterDashSpace = true.ToString(); - if ((flg & NOSPACEINNOTEORCAUTION) > 0) XtraFlags.NoSpaceInNoteOrCaution = true.ToString(); - if ((flg & USEXTRAREVNUMBER) > 0) XtraFlags.UseXtraRevNumber = true.ToString(); - if ((flg & UNDERLINESETPOINTS) > 0) XtraFlags.UnderlineSetpoints = true.ToString(); - if ((flg & DOSECTIONTRANSTYPEB) > 0) XtraFlags.DoSectionTransTypeB = true.ToString(); - if ((flg & PAGINATEONLOWERSTEPLEVEL) > 0) XtraFlags.PaginateOnLowerStepLevel = true.ToString(); - if ((flg & USETRANSITIONMODIFIER) > 0) XtraFlags.UseTransitionModifier = true.ToString(); - } - else if (i == 8) - { - if ((flg & CUSTOMSPACING) > 0) XtraFlags.CustomSpacing = true.ToString(); - if ((flg & ENHANCEDSHORTFORMDEV) > 0) XtraFlags.EnhancedShortFormDev = true.ToString(); - if ((flg & PAGEBREAKONHIGHLEVELSTEP) > 0) XtraFlags.PageBreakOnHighLevelStep = true.ToString(); - if ((flg & PAGEBREAKONCAUTIONS) > 0) XtraFlags.PageBreakOnCautions = true.ToString(); - if ((flg & PAGEBREAKONNOTES) > 0) XtraFlags.PageBreakOnNotes = true.ToString(); - if ((flg & ALIGNNULLTABWSECTHEAD) > 0) XtraFlags.AlignNullTabWSectHead = true.ToString(); - if ((flg & DONTUSESECTITLES) > 0) XtraFlags.DontUseSecTitles = true.ToString(); - if ((flg & TEXTSUBFOLLOWSTEXTSTYLE) > 0) XtraFlags.TextSubFollowsTextStyle = true.ToString(); - if ((flg & TRANSPROCTITLEINPAREN) > 0) XtraFlags.TranProcTitleInParen = true.ToString(); - if ((flg & HARDSPTRANPROCNUMB) > 0) XtraFlags.HardSpTranProcNumb = true.ToString(); - if ((flg & TREATANDORASSEQUENTIAL) > 0) XtraFlags.TreatAndOrAsSequential = true.ToString(); - if ((flg & DONTSPLITSTEPINPRNTSTEP) > 0) XtraFlags.DontSplitStepInPrntStep = true.ToString(); - if ((flg & LINEABOVEUNDERSECTION) > 0) XtraFlags.LineAboveUnderSection = true.ToString(); - } - else if (i == 9) - { - if ((flg & PICAIGNOREFIVESIXTHS) > 0) XtraFlags.PicaIgnoreFiveSixths = true.ToString(); - if ((flg & SPACEFORNOSECNUMB) > 0) XtraFlags.SpaceFoRNOSecNumb = true.ToString(); - if ((flg & NONEDITABLESTEPS) > 0) XtraFlags.NonEditableSteps = true.ToString(); - if ((flg & BOXEDSUBSTEPS) > 0) XtraFlags.BoxedSubsteps = true.ToString(); - if ((flg & DONTNUMBERHIGHLEVELSTEPS) > 0) XtraFlags.DontNumberHighLevelSteps = true.ToString(); - if ((flg & NOSTEPNUMBERFORHIGHLEVELRNO) > 0) XtraFlags.NoStepNumberForHighLevelRNO = true.ToString(); - if ((flg & PROMPTFORCAUTINTYPE) > 0) XtraFlags.PromptForCautinType = true.ToString(); - if ((flg & CAUTION1SAMEROWASPARENT) > 0) XtraFlags.Caution1SameRowAsParent = true.ToString(); - if ((flg & WOLFCREEKBACKGROUNDFORMAT) > 0) XtraFlags.WolfCreekBackgroundFormat = true.ToString(); - if ((flg & ENHANCEDSTEPNUMFROMPREV) > 0) XtraFlags.EnhancedStepNumFromPrev = true.ToString(); - } - else if (i == 10) - { - if ((flg & CONTROLUNDERLINESTYLE) > 0) XtraFlags.ControlUnderlineStyle = true.ToString(); - if ((flg & MULTIPLECHANGEIDS) > 0) XtraFlags.MultipleChangeIds = true.ToString(); - if ((flg & USEMULTILINESECTIONTITLE) > 0) XtraFlags.UseMultiLineSectionTitle = true.ToString(); - if ((flg & PAGEBREAKONFIRSTBLANKLINE) > 0) XtraFlags.PageBreakOnFirstBlankLine = true.ToString(); - if ((flg & DONTPRINTNOTITLE) > 0) XtraFlags.DontPrintNoTitle = true.ToString(); - if ((flg & NOTESTOFOOTNOTES) > 0) XtraFlags.NotesToFootnotes = true.ToString(); - if ((flg & UNDSPECIALSTEPSFOLDOUT) > 0) XtraFlags.UndSpecialStepsFoldout = true.ToString(); - if ((flg & PUTONPAGEBYITSELF) > 0) XtraFlags.PutOnPageByItself = true.ToString(); - if ((flg & PRINTPHONELIST) > 0) XtraFlags.PrintPhoneList = true.ToString(); - } - else if (i == 11) - { - if ((flg & SECTITLECONTINUE) > 0) XtraFlags.SecTitleContinue = true.ToString(); - if ((flg & CANCELSECTITLESONE0) > 0) XtraFlags.CancelSecTitlesOnE0 = true.ToString(); - if ((flg & METASECTENDMESSAGE) > 0) XtraFlags.MetaSectEndMessage = true.ToString(); - if ((flg & RNONUMBERWITHLEVEL) > 0) XtraFlags.RNONumberWithLevel = true.ToString(); - if ((flg & CANCELSECTITLESONE2) > 0) XtraFlags.CancelSecTitlesOnE2 = true.ToString(); - if ((flg & COMPRESSHPSUPER) > 0) XtraFlags.CompressHPSuper = true.ToString(); - } - else if (i == 12) - { - if ((flg & MATCHUPRNOCAUTNOTE) > 0) XtraFlags.MatchUpRNOCautNote = true.ToString(); - if ((flg & PAGINATEATHIGHESTPAGINLEVEL) > 0) XtraFlags.PaginateAtHighestPaginLevel = true.ToString(); - if ((flg & USELONGPROCTITLES) > 0) XtraFlags.UseLongProcTitles = true.ToString(); - if ((flg & SPECIALLANDSCAPEMODE) > 0) XtraFlags.SpecialLandscapeMode = true.ToString(); - if ((flg & RNOINPAGELIST) > 0) XtraFlags.RNOInPagelist = true.ToString(); - if ((flg & STPCAUTNOTETABINPAGELIST) > 0) XtraFlags.StpCautNoteTabInPagelist = true.ToString(); - if ((flg & READONLYTYPEINCONTMSG) > 0) XtraFlags.ReadOnlyTypeInContMsg = true.ToString(); - } - else if (i == 13) - { - if ((flg & CENTERONELINEONLY) > 0) XtraFlags.CenterOneLineOnly = true.ToString(); - if ((flg & TIETABTOLEVEL) > 0) XtraFlags.TieTabToLevel = true.ToString(); - if ((flg & ACCESSORYDOCSINDUPLEX) > 0) XtraFlags.AccessoryDocsInDuplex = true.ToString(); - if ((flg & FOLDOUTSINDUPLEX) > 0) XtraFlags.FoldoutsInDuplex = true.ToString(); - if ((flg & USESTEXTRAREALVALUE) > 0) XtraFlags.UseSTExtraRealValue = true.ToString(); - if ((flg & SUBTABLEGETSUP1LEVEL) > 0) XtraFlags.SubTableGetSup1Level = true.ToString(); - if ((flg & DONTCOUNTFOLDOUTPAGES) > 0) XtraFlags.DontCountFoldoutPages = true.ToString(); - if ((flg & SEARCHALLREPLACEWORDS) > 0) XtraFlags.SearchAllReplaceWords = true.ToString(); - } - else if (i == 14) - { - if ((flg & REMEMBERCAUTIONSANDNOTES) > 0) XtraFlags.RememberCautionsAndNotes = true.ToString(); - if ((flg & RTFADJUSTMENTS) > 0) XtraFlags.RtfAdjustments = true.ToString(); - if ((flg & CENTERONELINEADJUST) > 0) XtraFlags.CenterOneLineAdjust = true.ToString(); - if ((flg & COUNTALLSUBLEVELS) > 0) XtraFlags.CountAllSubLevels = true.ToString(); - if ((flg & DONTREPLACEWORDSINROS) > 0) XtraFlags.DontReplaceWordsInROs = true.ToString(); - if ((flg & HIGHLEVELRNOBEFOREAERSUBSTPS) > 0) XtraFlags.HighLevelRNOBeforeAERSubStps = true.ToString(); - if ((flg & UNDERLINEALLMETATITLES) > 0) XtraFlags.UnderlineAllMetaTitles = true.ToString(); - if ((flg & DONTBREAKCAUTIONSORNOTES) > 0) XtraFlags.DontBreakCautionsOrNotes = true.ToString(); - if ((flg & BOLDONLYSECTIONZERO) > 0) XtraFlags.BoldOnlySectionZero = true.ToString(); - if ((flg & DONTBREAKONRNO) > 0) XtraFlags.DontBreakOnRNO = true.ToString(); - if ((flg & RNOCHECKOFFSAMEASPARENT) > 0) XtraFlags.RNOCheckOffSameAsParent = true.ToString(); - if ((flg & USESTEPTYPEWIDTHOVERRRIDE) > 0) XtraFlags.UseStepTypeWidthOverride = true.ToString(); - if ((flg & WOLFCREEKCKLFORMAT) > 0) XtraFlags.WolfcreekCKLFormat = true.ToString(); - } - else if (i == 15) - { - if ((flg & DONTPAGINATEONFIRSTSUBSTEP2X) > 0) XtraFlags.DontPaginateOnFirstSubStep2X = true.ToString(); - if ((flg & USESTEPTYPEWIDTHOVERRRIDEEDITPRINT) > 0) XtraFlags.UseStepTypeWidthOverrideEditPrint = true.ToString(); - if ((flg & PARTIALSTEPCOMPRESSION) > 0) XtraFlags.PartialStepCompression = true.ToString(); - if ((flg & USESMARTTEMPLATE) > 0) XtraFlags.UseSmartTemplate = true.ToString(); - if ((flg & CHECKOFFONHLSONLY) > 0) XtraFlags.CheckoffOnHLSOnly = true.ToString(); - if ((flg & CAUTION2SAMEROWASPARENT) > 0) XtraFlags.Caution2SameRowAsParent = true.ToString(); - if ((flg & CENTERTEXTWITHINWIDTH) > 0) XtraFlags.CenterTextWithinWidth = true.ToString(); - if ((flg & DONTBREAKEQUIPMENTLIST) > 0) XtraFlags.DontBreakEquipmentList = true.ToString(); - if ((flg & ALWAYSTABCAUTION2) > 0) XtraFlags.AlwaysTabCaution2 = true.ToString(); - if ((flg & VIRTUALDOTINHLSTAB) > 0) XtraFlags.VirtualDotInHLSTab = true.ToString(); - if ((flg & IMPERFECTSTRUCTUREPLUS4) > 0) XtraFlags.ImperfectStructurePlus4 = true.ToString(); - } - else if (i == 16) - { - if ((flg & USERNOTYPEINACTABLE) > 0) XtraFlags.UseRNOTypeInActable = true.ToString(); - if ((flg & ABSOLUTETRANSITIONUPDATE) > 0) XtraFlags.AbsoluteTransitionUpdate = true.ToString(); - if ((flg & SEPARATEBOXCAUTIONS) > 0) XtraFlags.SeparateBoxCautions = true.ToString(); - if ((flg & HLSTEXTINPAGELIST) > 0) XtraFlags.HLSTextInPagelist = true.ToString(); - if ((flg & LOWERCASESTEPINTRAN) > 0) XtraFlags.LowerCaseStepInTran = true.ToString(); - if ((flg & CHANGEBARSONLINKEDTEXT) > 0) XtraFlags.ChangeBarsOnLinkedText = true.ToString(); - if ((flg & QUOTEDSUBSTEPS) > 0) XtraFlags.QuotedSubsteps = true.ToString(); - } - else if (i == 17) - { - if ((flg & OVERRIDEENHANCEDTABS) > 0) XtraFlags.OverrideEnhancedTabs = true.ToString(); - if ((flg & NONEWLINEAFTERRNO) > 0) XtraFlags.NoNewlineAfterRNO = true.ToString(); - if ((flg & DOSECTIONSEPARATORLINE) > 0) XtraFlags.DoSectionSeparatorLine = true.ToString(); - if ((flg & PARENSONEXTPAGENUMTRANS) > 0) XtraFlags.ParensOnExtPagenumTrans = true.ToString(); - if ((flg & ATLEASTTWODIGITSFORHLS) > 0) XtraFlags.AtLeastTwoDigitsForHLS = true.ToString(); - if ((flg & DONTBREAKOPTEQUIPMENTLIST) > 0) - XtraFlags.DontBreakOptEquipmentList = true.ToString(); - if ((flg & PAGELISTCHANGEIDSWITHCOMMAS) > 0) XtraFlags.PagelistChangeIDsWithCommas = true.ToString(); - if ((flg & DONTSTARTLINEWITHDASH) > 0) XtraFlags.DontStartLineWithDash = true.ToString(); - if ((flg & NOBLANKLINEBEFORESUBSTEP) > 0) XtraFlags.NoBlankLineBeforeSubstep = true.ToString(); - if ((flg & DONTBREAKCAUTIONSNOTESONSUBSTPS) > 0) XtraFlags.DontBreakCautionsNotesOnSubstps = true.ToString(); - if ((flg & DONTCONVERTCARETTODELTA) > 0) XtraFlags.DontConvertCaretToDelta = true.ToString(); - } - else if (i == 18) - { - if ((flg & NORNO) > 0) XtraFlags.NoRNO = true.ToString(); - if ((flg & ONLYSINGLECOLUMN) > 0) XtraFlags.OnlySingleColumn = true.ToString(); - if ((flg & NULLBOX) > 0) XtraFlags.NullBox = true.ToString(); - if ((flg & XCHNGTRANSPFORHARD) > 0) XtraFlags.XChngTranSpForHard = true.ToString(); - if ((flg & WOLFCREEKCKLBACKGNDFORMAT) > 0) XtraFlags.WolfcreekCKLBackgndFormat = true.ToString(); - } - } - #endregion - #region ReadInFile - private float RowToPoints(int i) - { - return (i * 12); // row_in_points = input * 72/6, row = input * 12 - } - private float ColToPoints(float f, uint style) - { - return 72 * (f / CvtFont.CvtFont.GetPrintPitch(style)); - } - string _AlternateIndex = null; - int[] rtCheckOffGroups = new int[MAXSTEPS + 1]; - private string _fmtFileName; - private uint _PlantDefaultFontStyle; - public bool ReadInFmtFile(ref FormatData fmtdata, ref XtraFlgs XtraFlags, string fname) - { - _fmtFileName = fname; - int[] tmpshort3 = new int[3]; - ArrayList stringoffsets = new ArrayList(); - byte tmpbyte; - Int16 tmpshort; - string tmpstr; - try - { - tmpshort = brFmt.ReadInt16(); - fmtdata.Name = GetStringUntilNull(brFmt); - for (int i = 0; i < 3; i++) - { - tmpshort = brFmt.ReadInt16(); - tmpstr = GetStringUntilNull(brFmt); - } - - short vnum = brFmt.ReadInt16(); // number of ints, etc. - long posatints = brFmt.BaseStream.Position; - long tstloc = vnum + posatints; - fmtdata.FontData = new VE_Font(0); - #region LoadInts - tmpbyte = brFmt.ReadByte(); // FirstChar - - // NOTE 16bit had xtraflag as 18 & had a VEAIRFlag. VEAIRFlag actually - // had some flags used in other formats besides it, so these were rolled - // into the xtraflag array just to make conversion easier. - Int16[] xtraflag = new Int16[19]; - for (int i = 0; i < 19; i++) - { - xtraflag[i] = brFmt.ReadInt16(); - AddFlags(ref XtraFlags, i, xtraflag[i]); - } - // if this format has an associated PSI or TPL file, just read in the string & save - // it. - string otherfile = MyPath + @"\" + fname.Substring(0, fname.LastIndexOf(".")) + @".tpl"; - // if this is subformat, the tpl file will be name FNP00.TPL for fnp.x00, using 'fnp' as - // an example. check for this too. - bool issub = (fname.ToUpper().Substring(fname.LastIndexOf(".") + 1, 1) == "X"); - if (File.Exists(otherfile) && !issub) - fmtdata.TPL = FixXmlString(File.ReadAllText(otherfile)); - else - { - if (issub) - { - string subtpl = fname.Substring(0, fname.LastIndexOf(".")) + fname.Substring(fname.Length - 2, 2); - otherfile = MyPath + @"\" + subtpl + @".tpl"; - if (File.Exists(otherfile)) - fmtdata.TPL = FixXmlString(File.ReadAllText(otherfile)); - } - } - // http://www.w3.org/TR/2000/REC-xml-20001006#NT-Char - otherfile = MyPath + @"\" + fname.Substring(0, fname.LastIndexOf(".")) + @".ini"; - if (File.Exists(otherfile)) PsiIniToXml(ref fmtdata, otherfile); - fmtdata.PurchaseOptions = ((E_PurchaseOptions)brFmt.ReadInt16()).ToString(); - fmtdata.ProcData.ProcForeColor = "Black"; - fmtdata.ProcData.ProcBackColor = "White"; - fmtdata.EditData = new GeneralEditor(); - fmtdata.EditData.EMode = ((E_EMode)brFmt.ReadInt16()).ToString(); - fmtdata.SectData = new Section(); - fmtdata.SectData.SectForeColor = "Black"; - fmtdata.SectData.SectBackColor = "White"; - fmtdata.SectData.StepSectionData = new StepSection(); - fmtdata.SectData.StepSectionData.TopRow = (Int16)(RowToPoints(brFmt.ReadInt16())); - tmpshort = brFmt.ReadInt16(); // Appendlines - not used. - fmtdata.PrintData = new GeneralPrint(); - fmtdata.PrintData.DoPrnDrvrAdjusts = brFmt.ReadInt16(); - fmtdata.StepData = new Step[MAXSTEPS + 1]; // add 1 for the 'BASE' - for (int i = 0; i < MAXSTEPS + 1; i++) - { - fmtdata.StepData[i].Type = StepTypes[i]; - fmtdata.StepData[i].ParentType = ParentTypes[i]; - if (i == 1) - { - _PlantDefaultFontStyle = brFmt.ReadUInt32(); - fmtdata.StepData[0].Font = new VE_Font(_PlantDefaultFontStyle); - fmtdata.FontData = fmtdata.StepData[0].Font.Copy(); - //fmtdata.StepData[1].Font will inherit the Base Font - } - if (i > 1) - { - uint tmpuint = brFmt.ReadUInt32(); - if (i == 40 && tmpuint == 0) // check if RNOtype's font = 0, if so use the plant default - { - fmtdata.StepData[i].Font = new VE_Font(_PlantDefaultFontStyle); - } - else - fmtdata.StepData[i].Font = new VE_Font(tmpuint); - } - } - for (int i = 1; i < MAXSTEPS + 1; i++) - { - Int16 tmpcoli = brFmt.ReadInt16(); - int tmpcol = (tmpcoli & 0x0F00) >> 8; - if (tmpcol > 0 && tmpcol < WinColors.Length) - fmtdata.StepData[i].StepLayoutData.ForeColor = WinColors[tmpcol]; - else - fmtdata.StepData[i].StepLayoutData.ForeColor = "Black"; - tmpcol = (tmpcoli & 0xF); - if (tmpcol > 0 && tmpcol < WinColors.Length) - fmtdata.StepData[i].StepLayoutData.BackColor = WinColors[tmpcol]; - else - fmtdata.StepData[i].StepLayoutData.BackColor = "White"; - } - fmtdata.StepData[0].StepLayoutData.ForeColor = "Black"; - fmtdata.StepData[0].StepLayoutData.BackColor = "White"; - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepLayoutData.STExtraSpace = (RowToPoints(brFmt.ReadInt16())).ToString(); - fmtdata.StepData[0].StepLayoutData.STExtraSpace = fmtdata.StepData[1].StepLayoutData.STExtraSpace; - for (int i = 1; i < MAXSTEPS + 1; i++) - { - Int16 itmp = brFmt.ReadInt16(); - if (fmtdata.StepData[i].Font != null && fmtdata.StepData[i].Font.IsBoxed) fmtdata.StepData[i].StepLayoutData.STBoxindex = (itmp + 1).ToString(); - } - - // Read the tab indexes into a temporary array. Once the tab strings are read - // in the structure's data will be added. - Tabindx = new Int16[MAXSTEPS]; - for (int i = 0; i < MAXSTEPS; i++) Tabindx[i] = brFmt.ReadInt16(); - - for (int i = 1; i < MAXSTEPS + 1; i++) - { - fmtdata.StepData[i].StepPrintData = new Print(); - fmtdata.StepData[i].StepPrintData.PosAdjust = ((Int16)(ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle))).ToString(); - } - - // NOTE a default is added for boxes for the default box for tables, if - // they are boxed. - fmtdata.BoxData = new Box[MAXBOXES + 1]; - // convert these to points. Also, each set of data had 24, not 12 box fields, the - // second twelve for RTF. For now, I'm going to just skip these. They can be added in - // later - // Note that the box start (we think) and the box end locations used ELITE, at 12 characters per inch, - // for locating the line draw/box drawing. - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].Start = ColToPoints(brFmt.ReadInt16(), CvtFont.CvtFont.ELITE); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].End = ColToPoints(brFmt.ReadInt16(), CvtFont.CvtFont.ELITE); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].TxtStart = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].TxtWidth = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].Height = RowToPoints(brFmt.ReadInt16()); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].TabPos = RowToPoints(brFmt.ReadInt16()); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - tmpshort = brFmt.ReadInt16(); // TransitionCautionOffset - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].Font = LoadVE_Font(); - int tmpint; - for (int i = 1; i < MAXBOXES + 1; i++) tmpint = brFmt.ReadInt32(); - for (int i = 0; i < MAXTABS; i++) - { - VE_Font st = LoadVE_Font(); - if (i == 0) - { - fmtdata.StepData[0].TabData.Font = st == null ? null : st.Copy(); - fmtdata.StepData[0].TabData.Justify = st == null ? "None" : st.FontJustify; - if (st != null && st.FontCheckOff != "None") - { - if (fmtdata.StepData[0].TabData.MacroList == null) fmtdata.StepData[0].TabData.MacroList = new COMacro[1]; - fmtdata.StepData[0].TabData.MacroList[0].Name = "CHECKOFF"; - fmtdata.StepData[0].TabData.MacroList[0].Macro = "C22"; - if (rtCheckOffGroups[0] != 0) fmtdata.StepData[0].TabData.MacroList[0].Grouping = rtCheckOffGroups[0].ToString(); - } - for (int j = 0; j < MAXSTEPS; j++) - { - if (Tabindx[j] == -1) - { - fmtdata.StepData[j + 1].TabData.UsePreviousStyle = "True"; - fmtdata.StepData[j + 1].TabData.Font = st == null ? null : st.Copy(); - fmtdata.StepData[j + 1].TabData.Justify = st == null ? "None" : st.FontJustify; - - if (st != null && st.FontCheckOff != "None") - { - fmtdata.StepData[j + 1].TabData.MacroList = new COMacro[1]; - fmtdata.StepData[j + 1].TabData.MacroList[0].Name = "CHECKOFF"; - fmtdata.StepData[j + 1].TabData.MacroList[0].Macro = st.FontCheckOff == "Right" ? "C22" : "M20"; - if (rtCheckOffGroups[j + 1] != 0) fmtdata.StepData[j + 1].TabData.MacroList[0].Grouping = rtCheckOffGroups[j + 1].ToString(); - } - } - } - } - for (int j = 0; j < MAXSTEPS; j++) - { - if (Tabindx[j] == i) - { - fmtdata.StepData[j + 1].TabData.Font = st == null ? null : st.Copy(); - fmtdata.StepData[j + 1].TabData.Justify = st == null ? "None" : st.FontJustify; - if (st != null && st.FontCheckOff != "None") - { - fmtdata.StepData[j + 1].TabData.MacroList = new COMacro[1]; - fmtdata.StepData[j + 1].TabData.MacroList[0].Name = "CHECKOFF"; - fmtdata.StepData[j + 1].TabData.MacroList[0].Macro = st.FontCheckOff == "Right" ? "C22" : "M20"; - } - } - } - } - for (int i = 1; i < MAXSTEPS + 1; i++) - { - fmtdata.StepData[i].StepEditData.AcTable = ((E_AccStep)brFmt.ReadInt16()).ToString(); - if (fmtdata.StepData[i].StepEditData.AcTable == "0") - fmtdata.StepData[i].StepEditData.AcTable = null; - } - for (int i = 1; i < MAXSTEPS + 1; i++) - { - tmpint = brFmt.ReadInt16(); - if (tmpint == 0) tmpint = 1; // everynlines default value should be 1. - fmtdata.StepData[i].StepLayoutData.EveryNLines = tmpint.ToString(); - } - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepLayoutData.SpaceBefore = "0"; - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepLayoutData.SpaceAfter = RowToPoints(1).ToString(); - for (int i = 1; i < MAXSTEPS + 1; i++) - { - tmpint = brFmt.ReadInt16(); - fmtdata.StepData[i].StepLayoutData.AlwaysUpperCase = tmpint==1?true.ToString():false.ToString(); - } - - fmtdata.SectData.StepSectionData.StpSectLayData = new StepSectionLayout(); - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage = new TopOfPg(); - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font = LoadVE_Font(); - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Row = RowToPoints(brFmt.ReadInt16()); - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Col = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - - fmtdata.SectData.StepSectionData.StpSectPrtData = new StepSectionPrint(); - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle = LoadVE_Font(); - fmtdata.SectData.StepSectionData.StpSectLayData.Separator = new Separtr(); - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font = LoadVE_Font(); - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.SeparatorLocation = brFmt.ReadInt16(); - - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepLayoutData.PageBreakAtTypeChange = (brFmt.ReadInt16()).ToString(); - fmtdata.SectData.StepSectionData.StpSectLayData.LastLineToStartStep = RowToPoints(brFmt.ReadInt16()); - - /* To do TextTypeValue - not sure how this is used & where to store it, so temporarily read it in */ - //fmtdata.SectData.StepSectionData.TextTypeValue = new Int16[10]; - //for (int i = 0; i < 10; i++) fmtdata.SectData.StepSectionData.TextTypeValue[i] = brFmt.ReadInt16(); - - Int16[] TextTypeValue = new Int16[10]; - for (int i = 0; i < 10; i++) TextTypeValue[i] = brFmt.ReadInt16(); - - for (int i = 0; i < 10; i++) tmpint = brFmt.ReadInt32(); // DontPrintInSection - not used. - - tmpshort = brFmt.ReadInt16(); // LeftMarginReset - not used. - tmpshort = brFmt.ReadInt16(); // OmitErgEopUsage - not used. - - fmtdata.SectData.StepSectionData.StpSectLayData.LineDrawingOption = brFmt.ReadInt16(); - fmtdata.SectData.StepSectionData.StpSectLayData.ColS = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - - fmtdata.SectData.StepSectionData.StpSectEditData = new StepSectionEdit(); - fmtdata.SectData.StepSectionData.StpSectEditData.ColSScreenAdj = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.StepSectionData.StpSectEditData.ScrnAdjRNOText = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.StepSectionData.StpSectLayData.ColT = ColToPoints(brFmt.ReadInt16(), 0); - tmpshort = brFmt.ReadInt16(); // Coltincr - not used - tmpshort = brFmt.ReadInt16(); // ColTab - not used - fmtdata.SectData.StepSectionData.StpSectLayData.ColAbs = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.StepSectionData.StpSectLayData.WidT = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - tmpshort = brFmt.ReadInt16(); // WidTab - not used. - fmtdata.SectData.StepSectionData.StpSectLayData.PMode = brFmt.ReadInt16(); - - fmtdata.SectData.StepSectionData.StpSectLayData.MaxRNO = brFmt.ReadInt16(); - - // maxrnotable, colrtable, widstable, and colrscreen all have three values. - for (int i = 0; i < 3; i++) tmpshort3[i] = brFmt.ReadInt16(); - tmpstr = string.Format("{0},{1},{2}", tmpshort3[0], tmpshort3[1], tmpshort3[2]); - fmtdata.SectData.StepSectionData.StpSectLayData.MaxRNOTable = tmpstr; - - float[] tmpfloat = new float[3]; - for (int i = 0; i < 3; i++) tmpfloat[i] = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - tmpstr = string.Format("{0},{1},{2}", tmpfloat[0], tmpfloat[1], tmpfloat[2]); - fmtdata.SectData.StepSectionData.StpSectLayData.ColRTable = tmpstr; - - float[] tmpfloata = new float[3]; - for (int i = 0; i < 3; i++) - { - tmpfloat[i] = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - tmpfloata[i] = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - } - tmpstr = string.Format("{0},{1},{2}", tmpfloat[0], tmpfloat[1], tmpfloat[2]); - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = tmpstr; - tmpstr = string.Format("{0},{1},{2}", tmpfloata[0], tmpfloata[1], tmpfloata[2]); - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = tmpstr; - - for (int i = 0; i < 3; i++) tmpfloat[i] = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - tmpstr = string.Format("{0},{1},{2}", tmpfloat[0], tmpfloat[1], tmpfloat[2]); - fmtdata.SectData.StepSectionData.StpSectEditData.ColRScreen = tmpstr; - - fmtdata.SectData.StepSectionData.StpSectLayData.AdjRNOCol = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - - ChangeBar cb = new ChangeBar(); - - cb.ChangeBarMessage = ((E_ChangeBarMessage)brFmt.ReadUInt16()).ToString(); - - cb.FixedChangeColumn = brFmt.ReadInt16(); - cb.FixedAERChangeColumn = brFmt.ReadByte(); - - //read in a number of format items that are not supported... - for (int i = 0; i < 3; i++) tmpshort3[i] = brFmt.ReadInt16(); // BD_PageNumOnCover - not used. - - tmpshort = brFmt.ReadInt16(); // VESearchLeftMargin - not used (same for rest that list varname. - tmpshort = brFmt.ReadInt16(); // VEStdPrtLeftMarE - tmpshort = brFmt.ReadInt16(); // VEStdPrtLeftMarP - - int tmplong = brFmt.ReadInt32(); // ImperfectSTructureSepStyle - tmpshort = brFmt.ReadInt16(); // FormsLPI - tmplong = brFmt.ReadInt32(); // FormsStyle - tmplong = brFmt.ReadInt32(); // FormsBoxStyle - tmpshort = brFmt.ReadInt16(); // FormsMargin - tmpshort = brFmt.ReadInt16(); // ChangeSummaryLPI - - cb.ChangeSummaryStyle = brFmt.ReadInt32(); // this may be moved into a different struct - cb.ChangeBarStyle = brFmt.ReadInt32(); - fmtdata.ProcData.ChangeBarData = cb; - - for (int i = 0; i < 30; i++) tmpshort = brFmt.ReadInt16(); // XPosition - - fmtdata.ProcData.TitleLength = brFmt.ReadInt16(); - fmtdata.ProcData.CoverTitleLength = brFmt.ReadInt16(); - - fmtdata.ProcData.CheckOffData = new CheckOffData(); - // for the Base format, set the Default Change bar locations from hardcoded - // data in the 16-bit program: (ovrchgbr.c) - if (!HasBase) fmtdata.ProcData.ChangeBarData.DefaultCBLoc = "0,85,-85,-3"; - int[] rightCheckOffBox = new int[4]; - for (int i = 0; i < 4; i++) - { - rightCheckOffBox[i] = brFmt.ReadInt16(); - } - int DefaultCheckOffType = (rightCheckOffBox[2] > 0) ? rightCheckOffBox[2] : rightCheckOffBox[3] >> 8; - fmtdata.ProcData.CheckOffData.AllowSectEdit = DefaultCheckOffType == 1 || (rightCheckOffBox[0] > 0 || rightCheckOffBox[1] > 0) ? "True" : "False"; - fmtdata.ProcData.CheckOffData.AllowStepEdit = DefaultCheckOffType >= 1 ? "True" : "False"; - fmtdata.ProcData.CheckOffData.CheckoffOnSubStepsOnly = "False"; - tmpshort = brFmt.ReadInt16(); // TwoCheckOffs - fmtdata.ProcData.CheckOffData.CheckOffList = new CheckOff[MAXCHECKOFFS]; - for (int i = 0; i < MAXCHECKOFFS; i++) fmtdata.ProcData.CheckOffData.CheckOffList[i].Index = i; - for (int i = 0; i < MAXCHECKOFFS; i++) fmtdata.ProcData.CheckOffData.CheckOffList[i].UIMark = brFmt.ReadByte(); - for (int i = 0; i < MAXCHECKOFFS; i++) fmtdata.ProcData.CheckOffData.CheckOffList[i].CheckOffXtraLines = brFmt.ReadByte(); // CheckOffXtraLines - for (int i = 0; i < MAXCHECKOFFS; i++) fmtdata.ProcData.CheckOffData.CheckOffList[i].CheckOffWidAdjust = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - for (int i = 0; i < MAXCHECKOFFS; i++) tmpbyte = brFmt.ReadByte(); // CheckOffFeatures - fmtdata.ProcData.CheckOffData.CheckOffHeaderList = new CheckOffHeader[MAXCHKHEADINGS]; - for (int i = 0; i < MAXCHKHEADINGS; i++) fmtdata.ProcData.CheckOffData.CheckOffHeaderList[i].Index = i; - for (int i = 0; i < MAXCHKHEADINGS; i++) fmtdata.ProcData.CheckOffData.CheckOffHeaderList[i].Font = LoadVE_Font(); - fmtdata.ProcData.CheckOffData.UseCheckOffsIn = brFmt.ReadInt32(); - // 16 bit code was defaulting to Elite when calculating the starting location of the check off line. - // so use elite: 72 points per inch, 12 chars per inch - int tmpcolco = (rightCheckOffBox[3] & 0xFF) * 72/12; - if (tmpcolco > 0) fmtdata.ProcData.CheckOffData.XLocation = (float)tmpcolco; // ColToPoints((float)tmpcolco, _PlantDefaultFontStyle); - tmplong = (int)brFmt.ReadUInt32(); - fmtdata.SectData.StepSectionData.StpSectLayData.EndMessagePos = brFmt.ReadInt16(); - tmpshort = brFmt.ReadInt16(); // CenterTableAdjustment - tmpshort = brFmt.ReadInt16(); // NumberOfLinesForNoteOrCaution - - //for (int i = 0; i < MAXSEQ; i++) fmtdata.SectData.StepSectionData.SeqStart[i] = brFmt.ReadByte(); - fmtdata.SectData.StepSectionData.SequentialTabFormat = new SeqTabFmt[MAXSEQ]; - for (int i = 0; i < MAXSEQ; i++) - { - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabToken = ConvertSeqStart(brFmt.ReadByte()); - } - - //fmtdata.SectData.StepSectionData.HighSeqStart = brFmt.ReadByte(); - tmpbyte = brFmt.ReadByte(); // HighSeqStart - fmtdata.SectData.StepSectionData.IndentToken = brFmt.ReadByte(); - - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrCol = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle = LoadVE_Font(); - - ReplaceStr[] repstr = new ReplaceStr[MAXREPLACE]; - fmtdata.SectData.ReplaceStrData = repstr; - for (int i = 0; i < 60; i++) repstr[i].Flag = ((E_ReplaceStr)brFmt.ReadUInt32()).ToString(); - - //for (int i = 0; i < 2; i++) tmpshort3[i] = brFmt.ReadInt16(); - //tmpstr = string.Format("{0},{1}", tmpshort3[0], tmpshort3[1]); - tmpstr = ""; - for (int i = 0; i < 2; i++) - { - tmpstr += ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle).ToString(); - //tmpstr += ((float)(brFmt.ReadInt16() * 7.2)).ToString(); - if (i == 0) tmpstr += ","; - } - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = tmpstr; - fmtdata.SectData.StepSectionData.StpSectLayData.HLSWidthOVRD = brFmt.ReadInt16(); - fmtdata.SectData.StepSectionData.StpSectPrtData.SecColHdrforActPMode = brFmt.ReadInt16(); - - for (int i = 0; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].Index = i; - for (int i = 1; i < MAXSTEPS + 1; i++) - { - tmpbyte = brFmt.ReadByte(); - fmtdata.StepData[i].StepLayoutData.AlignWithParentTab = tmpbyte == 1 ? true.ToString() : false.ToString(); - } - - fmtdata.SectData.SectionNumber = new SectionNum(); - fmtdata.SectData.SectionHeader = new SectionHead(); - fmtdata.SectData.SectionNumber.Font = LoadVE_Font(); - fmtdata.SectData.SectionHeader.Font = LoadVE_Font(); - fmtdata.SectData.SectionNumber.Pos = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.SectionNumber.Just = ((E_PageStructMod)brFmt.ReadByte()).ToString(); - fmtdata.SectData.SectionHeader.Pos = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.SectionHeader.Just = ((E_PageStructMod)brFmt.ReadByte()).ToString(); - - for (int i = 0; i < 10; i++) tmpbyte = brFmt.ReadByte(); // SecLevelDelta - fmtdata.SectData.SectionTitleLength = brFmt.ReadInt16(); - tmpshort = brFmt.ReadInt16(); - - rtCheckOffGroups[0] = 0; - for (int i = 1; i < MAXSTEPS + 1; i++) rtCheckOffGroups[i] = (brFmt.ReadInt16()); - for (int i = 1; i < MAXSTEPS + 1; i++) - { - // if the grouping is > 0, then use the 'right check off' macro WHEN there - // are more than rtCheckOffGroups[i] of the step type. - if (rtCheckOffGroups[i] != 0) - { - if (fmtdata.StepData[i].TabData.MacroList == null) - { - fmtdata.StepData[i].TabData.MacroList = new COMacro[1]; - fmtdata.StepData[i].TabData.MacroList[0].Name = "CHECKOFF"; - fmtdata.StepData[i].TabData.MacroList[0].Macro = "C22"; - } - fmtdata.StepData[i].TabData.MacroList[0].Grouping = rtCheckOffGroups[i].ToString(); - } - } - for (int i = 0; i < 100; i++) tmpshort = brFmt.ReadInt16(); // TypeGroups - for (int i = 0; i < 20; i++) tmpshort = brFmt.ReadInt16(); // EnhancedSubTypes; - - fmtdata.SectData.StepSectionData.StpSectLayData.SubPaginationWght = brFmt.ReadInt16(); - fmtdata.SectData.StepSectionData.StpSectLayData.TextTitleAdjustment = brFmt.ReadInt16(); - - for (int i = 1; i < MAXSTEPS + 1; i++) tmpshort = brFmt.ReadInt16(); // STAfterLines - - fmtdata.TransData.TransTypeData = new TransTypes[MAXTRANS]; - for (int i = 0; i < MAXTRANS; i++) - { - fmtdata.TransData.TransTypeData[i].TransType = brFmt.ReadByte(); - if (i < 6 && fmtdata.TransData.TransTypeData[i].TransType == 0) fmtdata.TransData.TransTypeData[i].TransType = (byte)i; - } - for (int i = 0; i < MAXTRANS; i++) tmpbyte = brFmt.ReadByte(); // TransMode - for (int i = 0; i < MAXTRANS; i++) tmpbyte = brFmt.ReadByte(); // OutsideTransType - - for (int i = 1; i < MAXSTEPS+1; i++) - { - tmpshort = brFmt.ReadInt16(); - fmtdata.StepData[i].WidthOverride = (ColToPoints((tmpshort & 0x00FF), _PlantDefaultFontStyle)).ToString(); - fmtdata.StepData[i].WidthOverrideEdit = (ColToPoints(((tmpshort & 0xFF00) >> 8), _PlantDefaultFontStyle)).ToString(); - } - - // auto table of contents data - AccSection accsec = new AccSection(); - - TOC toc = new TOC(); - // the toc position values are all 12 CPI regardless of font used (according to a comment in - // the wcn1 format files. - float tmpfloat1 = Convert.ToInt16(brFmt.ReadSByte()); - toc.TofCSecNumPos = 72 * (tmpfloat1 / 12); // 12cpi - tmpfloat1 = Convert.ToInt16(brFmt.ReadSByte()); - toc.TofCSecTitlePos = 72 * (tmpfloat1 / 12); // 12cpi - tmpbyte = brFmt.ReadByte(); // TofCSecTitlePos2 - toc.TofCSecTitleLen = brFmt.ReadByte(); - tmpfloat1 = Convert.ToInt16(brFmt.ReadSByte()); - toc.TofCPageNumPos = 72 * (tmpfloat1 / 12); - byte tofCSpaceChar = brFmt.ReadByte(); - toc.TofCSpaceChar = tofCSpaceChar == 0 ? null : Convert.ToString(Convert.ToChar(tofCSpaceChar)); - toc.TofCLineSpacing = brFmt.ReadByte(); - toc.Font = LoadVE_FontByte(); ; - accsec.TableOfContentsData = toc; - for (int i = 0; i < MAXSTEPS; i++) tmpbyte = brFmt.ReadByte(); - - fmtdata.ProcData.CheckOffData.CheckOffAdjustment = ColToPoints(Convert.ToInt16(brFmt.ReadSByte()), _PlantDefaultFontStyle); - - tmpshort = brFmt.ReadInt16(); // ColsAdjustInS2 - tmpbyte = brFmt.ReadByte(); // SeriesTitleLength; - - for (int i = 1; i < MAXSTEPS + 1; i++) - { - sbyte[] vp = new sbyte[15]; - for (int j = 0; j < 15; j++) vp[j] = brFmt.ReadSByte(); - bool hasdata = false; - for (int j = 0; j < 15; j++) - { - if (vp[j] != '\0') - { - hasdata = true; - break; - } - } - if (!hasdata) - fmtdata.StepData[i].VertPos = null; - else - { - fmtdata.StepData[i].VertPos = null; - for (int j = 0; j < 15; j++) - fmtdata.StepData[i].VertPos = fmtdata.StepData[i].VertPos + string.Format("{0},", ColToPoints(vp[j], _PlantDefaultFontStyle)); - fmtdata.StepData[i].VertPos = fmtdata.StepData[i].VertPos.Substring(0, fmtdata.StepData[i].VertPos.Length - 1); // remove last "," - } - } - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle = LoadVE_Font(); - - for (int i = 0; i < 3; i++) - { - tmpfloat[i] = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - } - tmpstr = string.Format("{0},{1},{2}", tmpfloat[0], tmpfloat[1], tmpfloat[2]); - fmtdata.SectData.StepSectionData.StpSectLayData.TableCenterPos = tmpstr; - for (int i = 0; i < MAXSEQ; i++) fmtdata.SectData.StepSectionData.SequentialTabFormat[i].Index = i; - LeftJustify[] lftjust = new LeftJustify[MAXSEQ]; - fmtdata.SectData.StepSectionData.StpSectPrtData.LeftJustifyList = lftjust; - for (int i = 0; i < MAXSEQ; i++) - { - lftjust[i].Index = i; - lftjust[i].Size = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); //brFmt.ReadInt16(); - } - MetaSection[] metsects = new MetaSection[10]; - fmtdata.SectData.MetaSectionData = metsects; - for (int i = 0; i < 10; i++) metsects[i].Index = i; - for (int i = 0; i < 10; i++) metsects[i].SecNumPositionAdj = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - for (int i = 0; i < 10; i++) metsects[i].SecTitlePositionAdj = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - for (int i = 0; i < 10; i++) metsects[i].ColSByLevel = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - for (int i = 0; i < 10; i++) metsects[i].TofCPositionAdj = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - for (int i = 0; i < 10; i++) metsects[i].WidSAdjByLevel = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - - fmtdata.SectData.StepSectionData.NumberOfHighLevelSteps = brFmt.ReadByte(); - - for (int i = 0; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].Index = i; - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].TxtRowAdj = brFmt.ReadSByte(); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadByte(); - - for (int i = 1; i < MAXSTEPS+1; i++) - { - tmpshort = brFmt.ReadInt16(); - fmtdata.StepData[i].ColOverride = (ColToPoints((tmpshort & 0x00FF), _PlantDefaultFontStyle)).ToString(); - fmtdata.StepData[i].ColOverrideEdit = (ColToPoints(((tmpshort & 0xFF00)>>8), _PlantDefaultFontStyle)).ToString(); - } - - fmtdata.SectData.StepSectionData.NumberOfSubStepTypes = brFmt.ReadByte(); - - accsec.AutoContActSumSection = brFmt.ReadInt32(); - fmtdata.SectData.AccSectionData = accsec; - #endregion - #region LoadStrings - long floc = brFmt.BaseStream.Position; - ////////////////// - // STRINGS NOW - ///////////////// - - brFmt.BaseStream.Seek(tstloc, SeekOrigin.Begin); - short numstr = brFmt.ReadInt16(); - short len = brFmt.ReadInt16(); - byte[] input = GetByteArray(brFmt, len); - - // now load in the offset info for data. - // read in the offsets from the begining of tmpstr - // this allows us to conserve on memory because duplicate strings - // will only be held once - // - Int16[] offset = new Int16[numstr]; - int indx; - for (int i = 0; i < numstr; i++) offset[i] = brFmt.ReadInt16(); - - // Add the default box characters to be used. - fmtdata.BoxData[0].BXULC = ConvertText("\x0DA"); - fmtdata.BoxData[0].BXHorz = ConvertText("\x0C4"); - fmtdata.BoxData[0].BXURC = ConvertText("\x0BF"); - fmtdata.BoxData[0].BXVert = ConvertText("\x0B3"); - fmtdata.BoxData[0].BXMLS = ConvertText("\x0C3"); - fmtdata.BoxData[0].BXMRS = ConvertText("\x0B4"); - fmtdata.BoxData[0].BXLLC = ConvertText("\x0C0"); - fmtdata.BoxData[0].BXLRC = ConvertText("\x0D9"); - fmtdata.BoxData[0].BXMID = ConvertText("\x0C5"); - fmtdata.BoxData[0].BXUMID = ConvertText("\x0C2"); - fmtdata.BoxData[0].BXLMID = ConvertText("\x0C1"); - - // using offsets, get data & put into fields. - int arcnt = 1; // use this to count into offset array for data. - for (int i = 1; i < MAXBOXES + 1; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXURC = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXHorz = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXULC = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXVert = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXMLS = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXMRS = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXLRC = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXLLC = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXMID = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXLHorz = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXUMID = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXLMID = GetStringFromByte(input, indx); - } - - // increment arcnt by 144 because there were 24 box possibilities in the - // 16bit the second 12 were rtf - arcnt = arcnt + 144; - - //tabs - string[,] tabstrings = new string[MAXTABS, 2]; - for (int i = 0; i < MAXTABS; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) tabstrings[i, 0] = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) tabstrings[i, 1] = GetStringFromByte(input, indx); - } - NBRSub = fmtdata.SectData.StepSectionData.NumberOfSubStepTypes != 0 ? fmtdata.SectData.StepSectionData.NumberOfSubStepTypes : NBRSub; - for (int i = 0; i < MAXSTEPS; i++) - { - for (int j = 0; j < MAXTABS; j++) - { - if (Tabindx[i] == j) - { - fmtdata.StepData[i + 1].TabData.IdentEdit = DoTabs(fmtdata.StepData[i].TabData.Font, fmtdata.PurchaseOptions, i, tabstrings[j, 0], true); - //fmtdata.StepData[i + 1].TabData.IdentEditWid = CalculateTabWid(tabstrings[j, 0]).ToString(); - fmtdata.StepData[i + 1].TabData.Ident = DoTabs(fmtdata.StepData[i].TabData.Font, fmtdata.PurchaseOptions, i, tabstrings[j, 1], true); - //fmtdata.StepData[i + 1].TabData.IdentWid = CalculateTabWid(tabstrings[j, 1]).ToString(); - break; - } - } - } - - // separators - for (int i = 1; i < MAXSTEPS + 1; i++) - { - indx = offset[arcnt]; - arcnt++; - // differentiate between an empty string and null. An empty string is used to put out - // blank lines. A null string means there is not any separator, thus use the string "{Null}" - // so that inheritance tests can show a difference between having a separator and not having one. - if (indx > 0) fmtdata.StepData[i].Sep = DoReplaceTokens(GetStringFromByte(input, indx)); - else fmtdata.StepData[i].Sep = "{Null}"; - } - - // Step prefix & suffix - for (int i = 1; i < MAXSTEPS + 1; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.StepData[i].Prefix = DoReplaceTokens(GetStringFromByte(input, indx)); - } - for (int i = 1; i < MAXSTEPS + 1; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.StepData[i].Suffix = DoReplaceTokens(GetStringFromByte(input, indx)); - } - - // IdentB & SeqTab - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.IdentB = GetStringFromByte(input, indx); - for (int i = 0; i < MAXSEQ; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) - { - string p = GetStringFromByte(input, indx); // seqtab. - if (p != null) - { - if (p[0] == '+') - { - string tmp = null; - if (fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabToken.IndexOf("{numeric}") > -1) - { - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabToken = fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabToken.Replace("{numeric}", "{numericWpar}"); - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = p.Replace("+", "{seq}"); - } - else if (fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabToken.IndexOf("{alpha}") > -1) - { - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabToken = fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabToken.Replace("{alpha}", "{alphaWpar}"); - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = p.Replace("+", "{seq}"); - } - else if (fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabToken.IndexOf("{ALPHA}") > -1) - { - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabToken = fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabToken.Replace("{ALPHA}", "{ALPHAWpar}"); - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = p.Replace("+", "{seq}"); - } - else - tmp = p.Replace("+", "{UNKNOWNWpar}"); - } - else - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = "{seq}" + p; - } - else - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = null; - } - else - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = null; - //if (indx > 0) fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat + GetStringFromByte(input, indx); - } - // replace word strings - for (int i = 0; i < MAXREPLACE; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) repstr[i].ReplaceWord = DoReplaceTokens(GetStringFromByteNoConvert(input, indx)); - } - for (int i = 0; i < MAXREPLACE; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) repstr[i].ReplaceWith = DoReplaceTokens(GetStringFromByte(input, indx)); - } - - // various proc matching/data - ProcDescr[] pd = new ProcDescr[10]; - for (int i = 0; i < 10; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) pd[i].MatchProcNumber = GetStringFromByte(input, indx); - } - - for (int i = 0; i < 10; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) pd[i].ProcDescr1 = GetStringFromByte(input, indx); - } - - for (int i = 0; i < 10; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) pd[i].ProcDescr2 = GetStringFromByte(input, indx); - } - fmtdata.PrintData.ProcDescrList = pd; - - string[] Versid = new string[5]; - for (int i = 0; i < 5; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) Versid[i] = GetStringFromByte(input, indx); - } - fmtdata.PrintData.VersionIdText = Versid; - - // a few transition strings - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.TransData.DelimiterForTransitionTitle = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.TransData.StepSubstepDelimeter = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - // Replace the with a blank, one of the formats (cpla - robinson) used this to flag - // an underline for step numbers in transitions, but this format is no longer used. - if (indx > 0) fmtdata.TransData.ThroughString = GetStringFromByte(input, indx).Replace('', ' '); - - // procedure suffix data - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.ProcData.ProcedureSuffixFlags = GetStringFromByte(input, indx); - - fmtdata.ProcData.ProcedureSuffix = new string[10]; - for (int i = 0; i < 10; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.ProcData.ProcedureSuffix[i] = GetStringFromByte(input, indx); - } - - // PlantDnLoad not used - skip it. - arcnt++; - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.PrintData.TopOfPageThing = DoReplaceTokens(GetStringFromByte(input, indx)); - - // not used: xtitle[3][10] - skip 30 - arcnt = arcnt + 30; - - for (int i = 0; i < MAXSTEPS + 1; i++) - { - fmtdata.StepData[i].Inactive = Inactive[i]; - fmtdata.StepData[i].StepEditData.Searchable = Searchable[i]; - fmtdata.StepData[i].StepEditData.TypeMenu.MenuItem = TypeMenuItem[i]; - fmtdata.StepData[i].StepEditData.TypeMenu.InMenu = (fmtdata.StepData[i].Type == "RNOType" || fmtdata.StepData[i].Type == "Base") ? false.ToString() : true.ToString(); - - // Set all caution/note 'InMenu' to false except basic caution/note, types 6 & 7. Use the AlternateNameList to set them to true. - if (i == 20 || i == 21 || i == 22 || i == 23 || i == 26 || i == 27 || i == 28 || i == 29 || i == 32) fmtdata.StepData[i].StepEditData.TypeMenu.InMenu = false.ToString(); - - fmtdata.StepData[i].StepEditData.TypeMenu.NoChgReason = NoChangeTypeReason[i]; - fmtdata.StepData[i].StepEditData.TypeMenu.RnoInMenu = RnoInMenu[i]; - if (fmtdata.StepData[i].Type == "Figure") - //{ - //fmtdata.StepData[i].StepEditData.TypeMenu.RnoInMenu = true.ToString(); - fmtdata.StepData[i].StepEditData.TypeMenu.RnoMenuItem = "With Border"; - //} - else if (fmtdata.StepData[i].Type == "Table") - fmtdata.StepData[i].StepEditData.TypeMenu.RnoMenuItem = "Table"; - else if (fmtdata.StepData[i].Type == "BorderlessTable" || fmtdata.StepData[i].Type == "BorderlessFigure") - //{ - //fmtdata.StepData[i].StepEditData.TypeMenu.RnoInMenu = true.ToString(); - fmtdata.StepData[i].StepEditData.TypeMenu.RnoMenuItem = "Without Border"; - - //} - //else if (fmtdata.StepData[i].Type == "AERTable" || fmtdata.StepData[i].Type == "BorderlessAERTable" || fmtdata.StepData[i].Type == "AERFigure" || fmtdata.StepData[i].Type == "BorderlessAERFigure") - // fmtdata.StepData[i].StepEditData.TypeMenu.RnoInMenu = false.ToString(); - if (fmtdata.StepData[i].Type.Contains("Borderless") && fmtdata.StepData[i].Type.Contains("Table")) fmtdata.StepData[i].Inactive = true.ToString(); - } - // fmtdata.SectData.StepSectionData.TextType = new string[10]; - // Set up the text type fields - these are used to define what types of steps the current step - // can be changed to.. - _AlternateIndex = null; - int[] tmparray ={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - for (int i = 0; i < 10; i++) - { - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) - { - string tmpstring = GetStringFromByte(input, indx); - // put this in the step data alternatename field. If there already is one. stop - // here for now to see this!. - //if (fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.MenuItem != null && fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.MenuItem != tmpstring) - // Console.WriteLine("different name, " + fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.MenuItem + ", " + tmpstring); - fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.MenuItem = tmpstring; - - _AlternateIndex = (_AlternateIndex == null) ? fmtdata.StepData[TextTypeValue[i] + 1].Type : _AlternateIndex + "," + fmtdata.StepData[TextTypeValue[i] + 1].Type; - //fmtdata.SectData.StepSectionData.TextType[i] = GetStringFromByte(input, indx); - } - - } - if (_AlternateIndex != null) - { - // For any step types in the texttypevalue list, add the alternatename list: - for (int i = 0; i < 10; i++) - { - // this was only used for cautions/notes - so only add if texttypevalue isn't 0, 0 was substep and it - // was getting set for substeps, that can never have an alternate type - at least from - // format->xml migration. - if (TextTypeValue[i] != 0) - { - fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.AlternateNameList = _AlternateIndex; - fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.InMenu = true.ToString(); - } - } - } - // not used, SectionsToPrint - 10; SectionNumberMask - 10; SectionsToPrintTitle - 10; - // DocumentTitleExtensions - 10; DocumentFixFileExtensions - 10; - - arcnt = arcnt + 50; - - // some seqtab data. - string[] tmpSeqStrings = new string[MAXSEQ]; - for (int i = 0; i < MAXSEQ; i++) - { - tmpSeqStrings[i] = fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat; - indx = offset[arcnt]; - arcnt++; - if (indx > 0) // PreSeqTab - Edit - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = GetStringFromByte(input, indx) + tmpSeqStrings[i]; - indx = offset[arcnt]; - arcnt++; - if (indx > 0) // PreSeqTab - Print - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].PrintTabFormat = GetStringFromByte(input, indx).Replace("\x08", "{0x08}") + tmpSeqStrings[i]; - else - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].PrintTabFormat = tmpSeqStrings[i]; - //tmpstr = GetStringFromByte(input, indx).Replace("\x08", ""); - } - for (int i = 0; i < MAXSEQ; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) // PostSeqTab - Edit - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat += GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) // PostSeqTab - Print - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].PrintTabFormat += GetStringFromByte(input, indx); - } - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectPrtData.RNOSepString = DoReplaceTokens(GetStringFromByte(input, indx)); - - fmtdata.SectData.StepSectionData.UnderlineTerminate = new string[10]; - for (int i = 0; i < 10; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.UnderlineTerminate[i] = GetStringFromByte(input, indx); - } - - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdr = new string[2]; - for (int i = 0; i < 2; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdr[i] = GetStringFromByte(input, indx); - } - for (int i = 0; i < 5; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.StepData[this.altsteps[i]].StepEditData.TypeMenu.MenuItem = GetStringFromByte(input, indx); - //if (indx > 0) fmtdata.StepData[TextTypeValue[i]].StepEditData.TypeMenu.MenuItem = GetStringFromByte(input, indx); - } - string mytmp = null; - for (int i = 0; i < 16; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.StepData[this.altsubsteps[i]].StepEditData.TypeMenu.MenuItem = GetStringFromByte(input, indx); - } - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.ProcData.ChangeBarData.SpecialChangeBar = DoReplaceTokens(GetStringFromByte(input, indx)); - - // not used - ImperfectStructureSeparator - arcnt++; - - fmtdata.SectData.StepSectionData.ObserveNCString1 = new string[4]; - fmtdata.SectData.StepSectionData.ObserveNCString2 = new string[4]; - for (int i = 0; i < 4; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.ObserveNCString1[i] = DoReplaceTokens(GetStringFromByteNoConvert(input, indx)); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.ObserveNCString2[i] = DoReplaceTokens(GetStringFromByteNoConvert(input, indx)); - } - - for (int i = 1; i < MAXSTEPS + 1; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) - fmtdata.StepData[i].UnderlineTheseChar = GetStringFromByte(input, indx); - } - - // not used - SubScriptTheseChar - arcnt++; - - bool hasMenuItem = false; - for (int i = 0; i < MAXCHECKOFFS; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) - { - fmtdata.ProcData.CheckOffData.CheckOffList[i].MenuItem = GetStringFromByte(input, indx); - hasMenuItem = true; - } - } - - if (hasMenuItem) - { - fmtdata.ProcData.CheckOffData.Menu = "Checkoff"; - for (int i = 0; i < MAXCHECKOFFS; i++) - if (i > 1) fmtdata.ProcData.CheckOffData.CheckOffList[i].Macro = "C" + i.ToString(); - } - // add signoff menuitems which are Endabled/Disabled & also Menu - if (rightCheckOffBox[0] != 0 && rightCheckOffBox[1] != 0) - { - fmtdata.ProcData.CheckOffData.Menu = "Signoff"; - fmtdata.ProcData.CheckOffData.CheckOffList[0].Index = 0; - fmtdata.ProcData.CheckOffData.CheckOffList[0].MenuItem = "Enabled"; - fmtdata.ProcData.CheckOffData.CheckOffList[0].Macro = "C1"; - fmtdata.ProcData.CheckOffData.CheckOffList[1].Index = 1; - fmtdata.ProcData.CheckOffData.CheckOffList[1].MenuItem = "Disabled"; - if (rightCheckOffBox[0] == -2 && rightCheckOffBox[1] == -2) fmtdata.ProcData.CheckOffData.SkipSpaces = "true"; - else - { - if (fmtdata.ProcData.CheckOffData.LayoutList == null) - fmtdata.ProcData.CheckOffData.LayoutList = new Absolute [2]; - fmtdata.ProcData.CheckOffData.LayoutList[0].RnoLevel = "0"; - fmtdata.ProcData.CheckOffData.LayoutList[0].Column = rightCheckOffBox[0]; - fmtdata.ProcData.CheckOffData.LayoutList[1].RnoLevel = "1"; - fmtdata.ProcData.CheckOffData.LayoutList[1].Column = rightCheckOffBox[1]; - } - } - for (int i = 0; i < MAXCHKHEADINGS; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.ProcData.CheckOffData.CheckOffHeaderList[i].CheckOffHeading = DoReplaceTokens(GetStringFromByte(input, indx)); - } - - // not used - WindEditFile - arcnt++; - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) tmpstr = GetStringFromByte(input, indx); - - // not used - RNOPreSeqTab[9][2] - arcnt = arcnt + 18; - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectPrtData.HLStpSeparatorString = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectPrtData.HLRNOStpSeparatorString = GetStringFromByte(input, indx); - - for (int i = 0; i < MAXTABS; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) tabstrings[i, 0] = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) tabstrings[i, 1] = GetStringFromByte(input, indx); - } - for (int i = 0; i < MAXSTEPS; i++) - { - for (int j = 0; j < MAXTABS; j++) - { - if (Tabindx[i] == j) - { - fmtdata.StepData[i + 1].TabData.RNOIdentEdit = DoTabs(fmtdata.StepData[i].TabData.Font, fmtdata.PurchaseOptions, i, tabstrings[j, 0], fmtdata.StepData[i].StepNumberForHighLevel == "True"); - //fmtdata.StepData[i + 1].TabData.RNOIdentEditWid = CalculateTabWid(tabstrings[j, 0]).ToString(); - fmtdata.StepData[i + 1].TabData.RNOIdent = DoTabs(fmtdata.StepData[i].TabData.Font, fmtdata.PurchaseOptions, i, tabstrings[j, 1], fmtdata.StepData[i].StepNumberForHighLevel == "True"); - //fmtdata.StepData[i + 1].TabData.RNOIdentWid = CalculateTabWid(tabstrings[j, 1]).ToString(); - break; - } - } - } - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectLayData.LowerLimitDivisor = GetStringFromByte(input, indx); - - // If the DoSectionTrans flag is set, use DefaultSectionTransStr for defaults, - // otherwise use the DefaultTransStr. The DoSectionTransTypeB flags just - // replaces the [5] item in the DefaultSectionTransStr array. I'll reset - // if this flag isn't used since formats are processed in a loop and only want - // the change to the default for the current format if the flag is set in it. - if (XtraFlags.DoSectionTransTypeB == "True") - { - DefaultSectionTransTokenStr[5] = DefaultSectionTransStrTypeB; - DefaultSectionTransFormatStr[5] = DefaultSectionTransStrTypeB; - } - else // if flag not set, just reset default in case used in one of next formats. - { - DefaultSectionTransTokenStr[5] = DefaultSectionTransStrTypeBNone; - DefaultSectionTransFormatStr[5] = DefaultSectionTransStrTypeBNone; - } - - // If the plant uses the TransProcTitleInParen flag, then place parens - // around the proc & section titles. - if (XtraFlags.TranProcTitleInParen == "True") - { - DefaultTransStr[0] = "{Proc Num} ({Proc Title}) Step {First Step}"; - DefaultTransStr[3] = "{First Step} thru {Last Step} of {Proc Num} ({Proc Title}) ({Sect Hdr})"; - DefaultTransStr[4] = "({Sect Title}), Step {First Step}"; - DefaultTransStr[5] = "{Proc Num}, ({Proc Title}) ({Sect Hdr}), Step {First Step}"; - } - if (fmtdata.TransData.ThroughString != null && fmtdata.TransData.ThroughString != "") - { - DefaultTransStr[3] = DefaultTransStr[3].Replace(" thru ", fmtdata.TransData.ThroughString); - DefaultSectionTransTokenStr[3] = DefaultSectionTransTokenStr[3].Replace(" thru ", fmtdata.TransData.ThroughString); - DefaultSectionTransFormatStr[3] = DefaultSectionTransFormatStr[3].Replace(" thru ", fmtdata.TransData.ThroughString); - } - for (int i = 0; i < MAXTRANS; i++) - { - fmtdata.TransData.TransTypeData[i].Index = i; - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.TransData.TransTypeData[i].TransFormat = ConvertTransFormat(GetStringFromByteNoConvert(input, indx)); - else if (i < 6) - { - fmtdata.TransData.TransTypeData[i].TransFormat = XtraFlags.DoSectionTrans == "True" ? DefaultSectionTransFormatStr[i] : DefaultTransStr[i]; - fmtdata.TransData.TransTypeData[i].TransType = (byte)i; // reset type - } - } - - for (int i = 0; i < MAXTRANS; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.TransData.TransTypeData[i].TransMenu = ConvertTransFormat(GetStringFromByteNoConvert(input, indx)); - else if (i < 6) - { - fmtdata.TransData.TransTypeData[i].TransMenu = XtraFlags.DoSectionTrans == "True" ? DefaultSectionTransTokenStr[i] : DefaultTransStr[i]; - fmtdata.TransData.TransTypeData[i].TransType = (byte)i; // reset type - } - } - for (int i = 0; i < MAXTRANS; i++) - { - if (fmtdata.TransData.TransTypeData[i].TransFormat != null && fmtdata.TransData.TransTypeData[i].TransMenu != null) fmtdata.TransData.TransTypeData[i].TransUI = GetTransUIEnum(fmtdata.TransData.TransTypeData[i].TransFormat, fmtdata.TransData.TransTypeData[i].TransMenu); - } - // if in dosectiontransitions, put the format/menu strings back to original - //if (XtraFlags.DoSectionTrans == "True") - //{ - // for (int i = 0; i < MAXTRANS; i++) - // { - // if (i < 6 && fmtdata.TransData.TransTypeData[i].TransMenu != null) - // { - // fmtdata.TransData.TransTypeData[i].TransFormat = DefaultSectionTransFormatStr[i]; - // fmtdata.TransData.TransTypeData[i].TransMenu = DefaultSectionTransFormatStr[i]; - - // } - // } - //} - //arcnt = arcnt + MAXTRANS; - - // not used OutsideTransFmt & OutsideTransMenu - arcnt = arcnt + (MAXTRANS * 2); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectLayData.NonLinkedStepNumber = GetStringFromByte(input, indx); - - //not used BldLstFile - arcnt++; - // AltPrintTBIdent (20 items) - //arcnt += MAXTABS; - for (int j = 0; j < MAXTABS; j++) - { - indx = offset[arcnt]; - arcnt++; - if (indx != 0) - { - string ts = GetStringFromByte(input, indx); - for (int i = 0; i < MAXSTEPS; i++) - { - if (Tabindx[i] == j) - { - fmtdata.StepData[i + 1].TabData.IdentAltPrint = ts; - break; - } - } - } - } - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectLayData.NonLinkedCautNoteNumber = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.PrintData.DuplexBGDirectory = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.PrintData.DuplexDDDirectory = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectLayData.NonLinkedRNONumber = GetStringFromByte(input, indx); - - #endregion - } - catch (Exception ex) - { - Console.WriteLine("Error on read - format = {0}", fmtdata.Name); - Console.WriteLine(ex.Message); - Console.WriteLine(); - return false; - } - return AdjustFlags(ref fmtdata, ref XtraFlags); - } - - /// - /// Replace invalid characters with a special sequence - /// - /// - /// - private string FixXmlString(string str) - { - // http://www.w3.org/TR/2000/REC-xml-20001006#NT-Char - // http://cse-mjmcl.cse.bris.ac.uk/blog/2007/02/14/1171465494443.html - // The regular expression below find any invalid characters - // by looking for characters that are not valid - MatchCollection matches = Regex.Matches(str, @"[^\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD]"); - int lastIndex = 0; - StringBuilder sb = new StringBuilder(); - int len = str.Length; - foreach (Match match in matches) - { - sb.Append(str.Substring(lastIndex, match.Index - lastIndex)); - foreach (char c in match.Value) - sb.Append(string.Format("[({0:X04}])", (int)c)); - lastIndex = match.Index + match.Length; - } - sb.Append(str.Substring(lastIndex)); - if (!str.Substring(lastIndex).EndsWith("\n")) - sb.Append("\n"); - return sb.ToString(); - } - - private bool AdjustFlags(ref FormatData fmtdata, ref XtraFlgs XtraFlags) - { - // do format flags here - this will get yucky!!! - #region StepFlags - int step = 0; - try - { - for (int i = 0; i < MAXSTEPS + 1; i++) - { - step = i; - // Do base here - if (i == 0) - { - // All types get this thru inheritance - if (XtraFlags.SeparateBox == "True") fmtdata.StepData[i].SeparateBox = "True"; - else fmtdata.StepData[i].SeparateBox = "False"; - // All types get this thru inheritance - if (XtraFlags.LJTabs == "True") fmtdata.StepData[i].LJTabs = "True"; - else fmtdata.StepData[i].LJTabs = "False"; - } - if (i == 1) // Sequential flags - new name will be substeps - { - if (XtraFlags.BoxedSubsteps == "True") fmtdata.StepData[i].Boxed = "True"; - else fmtdata.StepData[i].Boxed = "False"; - - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - if (XtraFlags.TextSubFollowsTextStyle == "True") fmtdata.StepData[i].TextSubFollowsTextStyle = "True"; - else fmtdata.StepData[i].TextSubFollowsTextStyle = "False"; - - if (XtraFlags.DontStartLineWithDash == "True") fmtdata.StepData[i].StartLineWithDash = "False"; - else fmtdata.StepData[i].StartLineWithDash = "True"; - - if (XtraFlags.NoBlankLineBeforeSubstep == "True") fmtdata.StepData[i].BlankLineBeforeSubStep = "False"; - else fmtdata.StepData[i].BlankLineBeforeSubStep = "True"; - } - else if (i == 2) // High - { - // All High get this thru inheritance - if (XtraFlags.EnhancedStepNumFromPrev == "True") fmtdata.StepData[i].EnhancedStepNumFromPrev = "True"; - else fmtdata.StepData[i].EnhancedStepNumFromPrev = "False"; - - // All High get this thru inheritance - if (XtraFlags.UseSmartTemplate == "True") fmtdata.StepData[i].UseSmartTemplate = "True"; - else fmtdata.StepData[i].UseSmartTemplate = "False"; - - // All High get this thru inheritance - if (XtraFlags.BoxContinousActions == "True") fmtdata.StepData[i].Boxed = "True"; - else fmtdata.StepData[i].Boxed = "False"; - - // All High get this thru inheritance - if (XtraFlags.Xlines_StepFix == "True") fmtdata.StepData[i].XLines_StepFix = "True"; - else fmtdata.StepData[i].XLines_StepFix = "False"; - - // All High get this thru inheritance - if (XtraFlags.UseAlternateStepBox == "True") fmtdata.StepData[i].UseAlternateStepBox = "True"; - else fmtdata.StepData[i].UseAlternateStepBox = "False"; - - // All High get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // All High get this thru inheritance - if (XtraFlags.PageBreakOnHighLevelStep == "True") fmtdata.StepData[i].PageBreakOnStep = "True"; - else fmtdata.StepData[i].PageBreakOnStep = "False"; - - // All High get this thru inheritance - if (XtraFlags.AlignNullTabWSectHead == "True") fmtdata.StepData[i].AlignNullTabWSectHead = "True"; - else fmtdata.StepData[i].AlignNullTabWSectHead = "False"; - - // All High get this thru inheritance - if (XtraFlags.HLSTextInPagelist == "True") fmtdata.StepData[i].InPageList = "True"; - else fmtdata.StepData[i].InPageList = "False"; - - // All High get this thru inheritance - if (XtraFlags.NoStepNumIfOnlyOneStep == "True") fmtdata.StepData[i].StepNumIfOnlyOne = "False"; - else fmtdata.StepData[i].StepNumIfOnlyOne = "True"; - - // All High get this thru inheritance - if (XtraFlags.AtLeastTwoDigitsForHLS == "True") fmtdata.StepData[i].AtLeastTwoDigits = "True"; - else fmtdata.StepData[i].AtLeastTwoDigits = "False"; - - // All High get this thru inheritance - if (XtraFlags.DontNumberHighLevelSteps == "True") fmtdata.StepData[i].Number = "False"; - else fmtdata.StepData[i].Number = "True"; - } - else if (i == 3) // Immediate - { - if (XtraFlags.IMMStepSpcHdr == "True") fmtdata.StepData[i].SpcHdr = "True"; - else fmtdata.StepData[i].SpcHdr = "False"; - } - else if (i == 4) // And - { - // All And get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // All And get this thru inheritance - if (XtraFlags.TreatAndOrAsSequential == "True") fmtdata.StepData[i].TreatAsSequential = "True"; - else fmtdata.StepData[i].TreatAsSequential = "False"; - } - else if (i == 5) // Or - { - // All Or get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // All Or get this thru inheritance - if (XtraFlags.TreatAndOrAsSequential == "True") fmtdata.StepData[i].TreatAsSequential = "True"; - else fmtdata.StepData[i].TreatAsSequential = "False"; - - } - else if (i == 6) // Caution - { - // All Cautions get this thru inheritance - if (XtraFlags.EnhancedStepNumFromPrev == "True") fmtdata.StepData[i].EnhancedStepNumFromPrev = "True"; - else fmtdata.StepData[i].EnhancedStepNumFromPrev = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.AlwaysUseExtralines == "True") fmtdata.StepData[i].AlwaysUseExtraLines = "True"; - else fmtdata.StepData[i].AlwaysUseExtraLines = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.SeparateBoxCautions == "True") fmtdata.StepData[i].SeparateBoxCautions = "True"; - else fmtdata.StepData[i].SeparateBoxCautions = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.ReduceLineAfterNoteAndCaut == "True") fmtdata.StepData[i].ReduceLineAfter = "True"; - else fmtdata.StepData[i].ReduceLineAfter = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.OneLineBeforeNoteCautionTab == "True") fmtdata.StepData[i].OneLineBeforeTab = "True"; - else fmtdata.StepData[i].OneLineBeforeTab = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.ReBoxCautNote == "True") fmtdata.StepData[i].Rebox = "True"; - else fmtdata.StepData[i].Rebox = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.NoSpaceInNoteOrCaution == "True") fmtdata.StepData[i].SpaceIn = "False"; - else fmtdata.StepData[i].SpaceIn = "True"; - - // All Cautions get this thru inheritance - if (XtraFlags.PageBreakOnCautions == "True") fmtdata.StepData[i].PageBreakOnStep = "True"; - else fmtdata.StepData[i].PageBreakOnStep = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.MatchUpRNOCautNote == "True") fmtdata.StepData[i].MatchUpRNO = "True"; - else fmtdata.StepData[i].MatchUpRNO = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.StpCautNoteTabInPagelist == "True") fmtdata.StepData[i].InPageList = "True"; - else fmtdata.StepData[i].InPageList = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.CenterOneLineOnly == "True") fmtdata.StepData[i].CenterOneLineOnly = "True"; - else fmtdata.StepData[i].CenterOneLineOnly = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.RememberCautionsAndNotes == "True") fmtdata.StepData[i].Remember = "True"; - else fmtdata.StepData[i].Remember = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.CenterOneLineAdjust == "True") fmtdata.StepData[i].CenterOneLineAdjust = "True"; - else fmtdata.StepData[i].CenterOneLineAdjust = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.DontBreakCautionsOrNotes == "True") fmtdata.StepData[i].Break = "False"; - else fmtdata.StepData[i].Break = "True"; - - // All Cautions get this thru inheritance - if (XtraFlags.CenterTextWithinWidth == "True") fmtdata.StepData[i].CenterTextWithinWidth = "True"; - else fmtdata.StepData[i].CenterTextWithinWidth = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.DontBreakCautionsNotesOnSubstps == "True") fmtdata.StepData[i].BreakCautionsNotesOnSubstps = "False"; - else fmtdata.StepData[i].BreakCautionsNotesOnSubstps = "True"; - - // All Cautions get this thru inheritance - if (XtraFlags.AlwaysTabCaution == "True") fmtdata.StepData[i].AlwaysTab = "True"; - else fmtdata.StepData[i].AlwaysTab = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.ThreeBlanksAboveNotesCautions == "True") fmtdata.StepData[i].ThreeBlanksAbove = "True"; - else fmtdata.StepData[i].ThreeBlanksAbove = "False"; - } - else if (i == 7) // Note - { - // All Notes get this thru inheritance - if (XtraFlags.EnhancedStepNumFromPrev == "True") fmtdata.StepData[i].EnhancedStepNumFromPrev = "True"; - else fmtdata.StepData[i].EnhancedStepNumFromPrev = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.AlwaysUseExtralines == "True") fmtdata.StepData[i].AlwaysUseExtraLines = "True"; - else fmtdata.StepData[i].AlwaysUseExtraLines = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.ReduceLineAfterNoteAndCaut == "True") fmtdata.StepData[i].ReduceLineAfter = "True"; - else fmtdata.StepData[i].ReduceLineAfter = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.OneLineBeforeNoteCautionTab == "True") fmtdata.StepData[i].OneLineBeforeTab = "True"; - else fmtdata.StepData[i].OneLineBeforeTab = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.ReBoxCautNote == "True") fmtdata.StepData[i].Rebox = "True"; - else fmtdata.StepData[i].Rebox = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.NoSpaceInNoteOrCaution == "True") fmtdata.StepData[i].SpaceIn = "False"; - else fmtdata.StepData[i].SpaceIn = "True"; - - // All Notes get this thru inheritance - if (XtraFlags.PageBreakOnNotes == "True") fmtdata.StepData[i].PageBreakOnStep = "True"; - else fmtdata.StepData[i].PageBreakOnStep = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.MatchUpRNOCautNote == "True") fmtdata.StepData[i].MatchUpRNO = "True"; - else fmtdata.StepData[i].MatchUpRNO = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.StpCautNoteTabInPagelist == "True") fmtdata.StepData[i].InPageList = "True"; - else fmtdata.StepData[i].InPageList = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.CenterOneLineOnly == "True") fmtdata.StepData[i].CenterOneLineOnly = "True"; - else fmtdata.StepData[i].CenterOneLineOnly = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.RememberCautionsAndNotes == "True") fmtdata.StepData[i].Remember = "True"; - else fmtdata.StepData[i].Remember = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.CenterOneLineAdjust == "True") fmtdata.StepData[i].CenterOneLineAdjust = "True"; - else fmtdata.StepData[i].CenterOneLineAdjust = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.DontBreakCautionsOrNotes == "True") fmtdata.StepData[i].Break = "False"; - else fmtdata.StepData[i].Break = "True"; - - // All Notes get this thru inheritance - if (XtraFlags.DontBreakCautionsNotesOnSubstps == "True") fmtdata.StepData[i].BreakCautionsNotesOnSubstps = "False"; - else fmtdata.StepData[i].BreakCautionsNotesOnSubstps = "True"; - - // All Notes get this thru inheritance - if (XtraFlags.CenterTextWithinWidth == "True") fmtdata.StepData[i].CenterTextWithinWidth = "True"; - else fmtdata.StepData[i].CenterTextWithinWidth = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.AlwaysTabNote == "True") fmtdata.StepData[i].AlwaysTab = "True"; - else fmtdata.StepData[i].AlwaysTab = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.ThreeBlanksAboveNotesCautions == "True") fmtdata.StepData[i].ThreeBlanksAbove = "True"; - else fmtdata.StepData[i].ThreeBlanksAbove = "False"; - } - else if (i == 8) // Table - { - // All Table get this thru inheritance - if (XtraFlags.SubTableGetSup1Level == "True") fmtdata.StepData[i].SubTableGetsUp1Level = "True"; - else fmtdata.StepData[i].SubTableGetsUp1Level = "False"; - } - else if (i == 9) // Continuous - { - if (XtraFlags.BulletOnContinuous == "True") fmtdata.StepData[i].BulletOnContinuous = "True"; - else fmtdata.StepData[i].BulletOnContinuous = "False"; - } - else if (i == 10) // AERTable - { - } - else if (i == 11) // EquipmentList - { - // All EquipmentList get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // Note that only equipment lists (and wblank) get this - no inherit - must be done in code! - if (XtraFlags.DontBreakEquipmentList == "True") fmtdata.StepData[i].BreakEquipmentList = "False"; - else fmtdata.StepData[i].BreakEquipmentList = "True"; - } - else if (i == 12) // Title - { - // All Title get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - } - else if (i == 13) // PageNumber - { - } - else if (i == 14) // EquipmentWBlank - { - } - else if (i == 15) // ProcNumber - { - } - else if (i == 16) // RevNumber - { - } - else if (i == 17) // AccPages - { - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - } - else if (i == 18) // LossOfAC - { - if (XtraFlags.DontBoxAC == "True") fmtdata.StepData[i].BoxIt = "False"; - else fmtdata.StepData[i].BoxIt = "True"; - } - else if (i == 19) // ExplicitAnd - { - } - else if (i == 20) // Caution1 - { - if (XtraFlags.MixCautionsAndNotes == "True") fmtdata.StepData[i].MixCautionsAndNotes = "True"; - else fmtdata.StepData[i].MixCautionsAndNotes = "False"; - - if (XtraFlags.Caution1SameRowAsParent == "True") fmtdata.StepData[i].SameRowAsParent = "True"; - else fmtdata.StepData[i].SameRowAsParent = "False"; - } - else if (i == 21) // Caution2 - { - if (XtraFlags.AlwaysTabCaution2 == "True") fmtdata.StepData[i].AlwaysTab = "True"; - else fmtdata.StepData[i].AlwaysTab = "False"; - - if (XtraFlags.Caution2SameRowAsParent == "True") fmtdata.StepData[i].SameRowAsParent = "True"; - else fmtdata.StepData[i].SameRowAsParent = "False"; - } - else if (i == 22) // Note1 - { - if (XtraFlags.MixCautionsAndNotes == "True") fmtdata.StepData[i].MixCautionsAndNotes = "True"; - else fmtdata.StepData[i].MixCautionsAndNotes = "False"; - } - else if (i == 23) // Note2 - { - } - else if (i == 24) // Paragraph - { - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - } - else if (i == 25) // Default - { - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - } - else if (i == 26) // Note3 - { - } - else if (i == 27) // Caution3 - { - } - else if (i == 28) // Note4 - { - } - else if (i == 29) // Caution4 - { - } - else if (i == 30) // EquipmentOpt - { - // All EquipmentOpt get this thru inheritance - if (XtraFlags.QuotedSubsteps == "True") fmtdata.StepData[i].Quoted = "True"; - else fmtdata.StepData[i].Quoted = "False"; - - // Note that only opt equipment lists (and wblank) get this - no inherit - must be done in code! - if (XtraFlags.DontBreakOptEquipmentList == "True") - fmtdata.StepData[i].BreakEquipmentList = "False"; - else - fmtdata.StepData[i].BreakEquipmentList = "True"; - } - else if (i == 31) // EquipmentOptWBlank - { - // All EquipmentOptWBlank get this thru inheritance - if (XtraFlags.QuotedSubsteps == "True") fmtdata.StepData[i].Quoted = "True"; - else fmtdata.StepData[i].Quoted = "False"; - } - else if (i == 32) // Note5 - { - } - else if (i == 33) // BorderlessAERTable - { - if (XtraFlags.LJBorderlessTable == "True") fmtdata.StepData[i].LeftJustifyBorderless = "True"; - else fmtdata.StepData[i].LeftJustifyBorderless = "False"; - } - else if (i == 34) // BorderlessTable - { - if (XtraFlags.LJBorderlessTable == "True") fmtdata.StepData[i].LeftJustifyBorderless = "True"; - else fmtdata.StepData[i].LeftJustifyBorderless = "False"; - } - else if (i == 35) // ImplicitOr - { - } - else if (i == 36) // Figure - { - } - else if (i == 37) // AERFigure - { - } - else if (i == 38) // BorderlessFigure - { - if (XtraFlags.LJBorderlessTable == "True") fmtdata.StepData[i].LeftJustifyBorderless = "True"; - else fmtdata.StepData[i].LeftJustifyBorderless = "False"; - } - else if (i == 39) // BorderlessAERFigure - { - if (XtraFlags.LJBorderlessTable == "True") fmtdata.StepData[i].LeftJustifyBorderless = "True"; - else fmtdata.StepData[i].LeftJustifyBorderless = "False"; - } - else if (i == 40) // RNOType - { - if (XtraFlags.DoubleRNOSpace == "True") fmtdata.StepData[i].DoubleSpace = "True"; - else fmtdata.StepData[i].DoubleSpace = "False"; - - if (XtraFlags.EnhancedStepNumFromPrev == "True") fmtdata.StepData[i].EnhancedStepNumFromPrev = "True"; - else fmtdata.StepData[i].EnhancedStepNumFromPrev = "False"; - - if (XtraFlags.NoSpaceDoubleRNO == "True") fmtdata.StepData[i].SpaceDouble = "False"; - else fmtdata.StepData[i].SpaceDouble = "True"; - - if (XtraFlags.RNOSameLevel == "True") fmtdata.StepData[i].SameLevel = "True"; - else fmtdata.StepData[i].SameLevel = "False"; - - if (XtraFlags.BoldHighLevelRNO == "True") fmtdata.StepData[i].BoldHighLevel = "True"; - else fmtdata.StepData[i].BoldHighLevel = "False"; - - if (XtraFlags.RNOContinueOnly == "True") fmtdata.StepData[i].ContinueOnly = "True"; - else fmtdata.StepData[i].ContinueOnly = "False"; - - if (XtraFlags.RNOSepAfterAER == "True") fmtdata.StepData[i].SepAfterAER = "True"; - else fmtdata.StepData[i].SepAfterAER = "False"; - - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - if (XtraFlags.RNOInPagelist == "True") fmtdata.StepData[i].InPageList = "True"; - else fmtdata.StepData[i].InPageList = "False"; - - if (XtraFlags.DontBreakOnRNO == "True") fmtdata.StepData[i].Break = "False"; - else fmtdata.StepData[i].Break = "True"; - - if (XtraFlags.NoNewlineAfterRNO == "True") fmtdata.StepData[i].NewlineAfter = "False"; - else fmtdata.StepData[i].NewlineAfter = "True"; - - if (XtraFlags.NumberHighLevelRNO == "True") fmtdata.StepData[i].NumberHighLevel = "True"; - else fmtdata.StepData[i].NumberHighLevel = "False"; - - if (XtraFlags.RNONumberWithLevel == "True") fmtdata.StepData[i].NumberWithLevel = "True"; - else fmtdata.StepData[i].NumberWithLevel = "False"; - - if (XtraFlags.DontOffsetTab == "True") fmtdata.StepData[i].OffsetTab = "False"; - else fmtdata.StepData[i].OffsetTab = "True"; - - if (XtraFlags.DontNumberRNOSubs == "True") fmtdata.StepData[i].NumberSubs = "False"; - else fmtdata.StepData[i].NumberSubs = "True"; - - if (XtraFlags.NoStepNumberForHighLevelRNO == "True") fmtdata.StepData[i].StepNumberForHighLevel = "False"; - else fmtdata.StepData[i].StepNumberForHighLevel = "True"; - - if (XtraFlags.RNOCheckOffSameAsParent == "True") fmtdata.StepData[i].CheckoffSameAsParent = "True"; - else fmtdata.StepData[i].CheckoffSameAsParent = "False"; - - if (XtraFlags.UseRNOTypeInActable == "True") fmtdata.StepData[i].UseInAcTable = "True"; - else fmtdata.StepData[i].UseInAcTable = "False"; - } - else if (i == 41) // High5 - { - } - else if (i == 42) // TitleWithTextRight - { - } - else if (i == 43) // TitleWithTextBelow - { - } - else if (i == 44) // ContAcSequential - { - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - } - else if (i == 45) // ContAcAnd - { - } - else if (i == 46) // ContAcOr - { - } - else if (i == 47) // ContAcParagraph - { - } - if (fmtdata.StepData[i].TabData.MacroList != null) - { - if (XtraFlags.NoCheckOffsInRNO == "True") fmtdata.StepData[i].TabData.MacroList[0].NotInRNO = "True"; - else fmtdata.StepData[i].TabData.MacroList[0].NotInRNO = "False"; - } - } - } - catch (Exception ex) - { - Console.WriteLine("Error on step data"); - } - #endregion - #region StepStructLayout - if (XtraFlags.Dev_Format == "True") fmtdata.SectData.StepSectionData.StpSectLayData.Dev_Format = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.Dev_Format = "False"; - if (XtraFlags.EnhancedShortFormDev == "True") fmtdata.SectData.StepSectionData.StpSectLayData.EnhancedShortFormDev = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.EnhancedShortFormDev = "False"; - if (XtraFlags.SpecialPageBreakFlag == "True") fmtdata.SectData.StepSectionData.StpSectLayData.SpecialPageBreakFlag = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.SpecialPageBreakFlag = "False"; - if (XtraFlags.DontPaginateOnFirstSubStep == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep = "True"; - if (XtraFlags.DontPaginateOnFirstSubStep2X == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep2X = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep2X = "True"; - if (XtraFlags.DontUseHalfLines == "True") fmtdata.SectData.StepSectionData.StpSectLayData.UseHalfLines = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.UseHalfLines = "True"; - if (XtraFlags.DontTryToFillHalfOfPage == "True") fmtdata.SectData.StepSectionData.StpSectLayData.TryToFillHalfOfPage = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.TryToFillHalfOfPage = "True"; - if (XtraFlags.DoNotCompressSteps == "True") fmtdata.SectData.StepSectionData.StpSectLayData.CompressSteps = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.CompressSteps = "True"; - if (XtraFlags.DontDoSTExtraAtTop == "True") fmtdata.SectData.StepSectionData.StpSectLayData.DoSTExtraAtTop = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.DoSTExtraAtTop = "True"; - if (XtraFlags.KeepStepsOnPage == "True") fmtdata.SectData.StepSectionData.StpSectLayData.KeepStepsOnPage = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.KeepStepsOnPage = "False"; - if (XtraFlags.DontBreakOnSections == "True") fmtdata.SectData.StepSectionData.StpSectLayData.BreakOnSections = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.BreakOnSections = "True"; - if (XtraFlags.ShowSectionTitles == "True") fmtdata.SectData.StepSectionData.StpSectLayData.ShowSectionTitles = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.ShowSectionTitles = "False"; - if (XtraFlags.NoEndForSingle == "True") fmtdata.SectData.StepSectionData.StpSectLayData.EndForSingle = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.EndForSingle = "True"; - if (XtraFlags.DontPaginateOnFirstSubstep3X == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep3X = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep3X = "True"; - if (XtraFlags.PaginateOnLowerStepLevel == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnLowerStepLevel = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnLowerStepLevel = "False"; - if (XtraFlags.CustomSpacing == "True") fmtdata.SectData.StepSectionData.StpSectLayData.CustomSpacing = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.CustomSpacing = "False"; - if (XtraFlags.DontSplitStepInPrntStep == "True") fmtdata.SectData.StepSectionData.StpSectLayData.SplitStepInPrntStep = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.SplitStepInPrntStep = "True"; - if (XtraFlags.LineAboveUnderSection == "True") fmtdata.SectData.StepSectionData.StpSectLayData.LineAboveUnderSection = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.LineAboveUnderSection = "False"; - if (XtraFlags.PicaIgnoreFiveSixths == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PicaIgnoreFiveSixths = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PicaIgnoreFiveSixths = "False"; - if (XtraFlags.SpaceFoRNOSecNumb == "True") fmtdata.SectData.StepSectionData.StpSectLayData.SpaceForNoSecNumb = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.SpaceForNoSecNumb = "False"; - if (XtraFlags.PageBreakOnFirstBlankLine == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PageBreakOnFirstBlankLine = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PageBreakOnFirstBlankLine = "False"; - if (XtraFlags.PutOnPageByItself == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PutOnPageByItself = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PutOnPageByItself = "False"; - if (XtraFlags.PaginateAtHighestPaginLevel == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PaginateAtHighestPaginLevel = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PaginateAtHighestPaginLevel = "False"; - if (XtraFlags.UseSTExtraRealValue == "True") fmtdata.SectData.StepSectionData.StpSectLayData.UseSTExtraRealValue = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.UseSTExtraRealValue = "False"; - if (XtraFlags.DoSectionSeparatorLine == "True") fmtdata.SectData.StepSectionData.StpSectLayData.DoSectionSeparatorLine = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.DoSectionSeparatorLine = "False"; - if (XtraFlags.TieTabToLevel == "True") fmtdata.SectData.StepSectionData.StpSectLayData.TieTabToLevel = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.TieTabToLevel = "False"; - if (XtraFlags.HighLevelRNOBeforeAERSubStps == "True") fmtdata.SectData.StepSectionData.StpSectLayData.HighLevelRNOBeforeAERSubsteps = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.HighLevelRNOBeforeAERSubsteps = "False"; - if (XtraFlags.UseStepTypeWidthOverride == "True") fmtdata.SectData.StepSectionData.StpSectLayData.UseStepTypeWidthOverride = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.UseStepTypeWidthOverride = "False"; - if (XtraFlags.UseStepTypeWidthOverrideEditPrint == "True") fmtdata.SectData.StepSectionData.StpSectLayData.UseStepTypeWidthOverrideEditPrint = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.UseStepTypeWidthOverrideEditPrint = "False"; - if (XtraFlags.PartialStepCompression == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PartialStepCompression = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PartialStepCompression = "False"; - if (XtraFlags.VirtualDotInHLSTab == "True") fmtdata.SectData.StepSectionData.StpSectLayData.VirtualDotInHLSTab = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.VirtualDotInHLSTab = "False"; - if (XtraFlags.OverrideEnhancedTabs == "True") fmtdata.SectData.StepSectionData.StpSectLayData.OverrideEnhancedTabs = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.OverrideEnhancedTabs = "False"; - if (XtraFlags.NoRNO == "True") fmtdata.SectData.StepSectionData.StpSectLayData.RNO = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.RNO = "True"; - if (XtraFlags.OnlySingleColumn == "True") fmtdata.SectData.StepSectionData.StpSectLayData.OnlySingleColumn = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.OnlySingleColumn = "False"; - if (XtraFlags.NullBox == "True") fmtdata.SectData.StepSectionData.StpSectLayData.NullBox = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.NullBox = "False"; - #endregion - #region StepSection - if (XtraFlags.WolfCreekBackgroundFormat == "True") fmtdata.SectData.StepSectionData.WolfCreekBackgroundFormat = "True"; - else fmtdata.SectData.StepSectionData.WolfCreekBackgroundFormat = "False"; - if (XtraFlags.WolfcreekCKLFormat == "True") fmtdata.SectData.StepSectionData.WolfcreekCKLFormat = "True"; - else fmtdata.SectData.StepSectionData.WolfcreekCKLFormat = "False"; - if (XtraFlags.WolfcreekCKLBackgndFormat == "True") fmtdata.SectData.StepSectionData.WolfcreekCKLBackgndFormat = "True"; - else fmtdata.SectData.StepSectionData.WolfcreekCKLBackgndFormat = "False"; - if (XtraFlags.FortranFormatNumbers == "True") fmtdata.SectData.StepSectionData.FortranFormatNumbers = "True"; - else fmtdata.SectData.StepSectionData.FortranFormatNumbers = "False"; - if (XtraFlags.UseTopContinueMessageAtEnd == "True") fmtdata.SectData.StepSectionData.UseTopContinueMessageAtEnd = "True"; - else fmtdata.SectData.StepSectionData.UseTopContinueMessageAtEnd = "False"; - if (XtraFlags.FloatingContinueMessage == "True") fmtdata.SectData.StepSectionData.FloatingContinueMessage = "True"; - else fmtdata.SectData.StepSectionData.FloatingContinueMessage = "False"; - if (XtraFlags.WrapSameAsEdit == "True") fmtdata.SectData.StepSectionData.WrapSameAsEdit = "True"; - else fmtdata.SectData.StepSectionData.WrapSameAsEdit = "False"; - if (XtraFlags.ContinueSectionHeader == "True") fmtdata.SectData.StepSectionData.ContinueSectionHeader = "True"; - else fmtdata.SectData.StepSectionData.ContinueSectionHeader = "False"; - if (XtraFlags.CompressHPSub == "True") fmtdata.SectData.StepSectionData.CompressHPSub = "True"; - else fmtdata.SectData.StepSectionData.CompressHPSub = "False"; - if (XtraFlags.CompressHPSuper == "True") fmtdata.SectData.StepSectionData.CompressHPSuper = "True"; - else fmtdata.SectData.StepSectionData.CompressHPSuper = "False"; - fmtdata.SectData.StepSectionData.CompressPropSubSup = "False"; - //if (XtraFlags.UndSpecialStepsFoldout == "True") fmtdata.SectData.StepSectionData.UndSpecialStepsFoldout = "True"; - //else fmtdata.SectData.StepSectionData.UndSpecialStepsFoldout = "False"; - if (XtraFlags.UnderlineAllMetaTitles == "True") fmtdata.SectData.StepSectionData.UnderlineAllMetaTitles = "True"; - else fmtdata.SectData.StepSectionData.UnderlineAllMetaTitles = "False"; - if (XtraFlags.BoldOnlySectionZero == "True") fmtdata.SectData.StepSectionData.BoldOnlySectionZero = "True"; - else fmtdata.SectData.StepSectionData.BoldOnlySectionZero = "False"; - if (XtraFlags.ImperfectStructure == "True") fmtdata.SectData.StepSectionData.ImperfectStructure = "True"; - else fmtdata.SectData.StepSectionData.ImperfectStructure = "False"; - if (XtraFlags.ImperfectSubstep == "True") fmtdata.SectData.StepSectionData.ImperfectSubstep = "True"; - else fmtdata.SectData.StepSectionData.ImperfectSubstep = "False"; - if (XtraFlags.ImperfectStructurePlus4 == "True") fmtdata.SectData.StepSectionData.ImperfectStructurePlus4 = "True"; - else fmtdata.SectData.StepSectionData.ImperfectStructurePlus4 = "False"; - if (XtraFlags.CountAllSubLevels == "True") fmtdata.SectData.StepSectionData.CountAllSubLevels = "True"; - else fmtdata.SectData.StepSectionData.CountAllSubLevels = "False"; - if (XtraFlags.UseMultiLineSectionTitle == "True") fmtdata.SectData.StepSectionData.UseMultiLineSectionTitle = "True"; - else fmtdata.SectData.StepSectionData.UseMultiLineSectionTitle = "False"; - #endregion - #region ChangeBars - if (XtraFlags.CondensedChangeBar == "True") fmtdata.ProcData.ChangeBarData.CondensedChangeBar = "True"; - else fmtdata.ProcData.ChangeBarData.CondensedChangeBar = "False"; - if (XtraFlags.AbsoluteFixedChangeColumn == "True") fmtdata.ProcData.ChangeBarData.AbsoluteFixedChangeColumn = "True"; - else fmtdata.ProcData.ChangeBarData.AbsoluteFixedChangeColumn = "False"; - if (XtraFlags.ContinuousChangeBars == "True") fmtdata.ProcData.ChangeBarData.ContinuousChangeBars = "True"; - else fmtdata.ProcData.ChangeBarData.ContinuousChangeBars = "False"; - if (XtraFlags.ChgBarMessageFromEdit == "True") fmtdata.ProcData.ChangeBarData.ChgBarMessageFromEdit = "True"; - else fmtdata.ProcData.ChangeBarData.ChgBarMessageFromEdit = "False"; - if (XtraFlags.MultipleChangeIds == "True") fmtdata.ProcData.ChangeBarData.ChangeIds = "True"; - else fmtdata.ProcData.ChangeBarData.ChangeIds = "False"; - if (XtraFlags.ChangeBarToRNOSep == "True") fmtdata.ProcData.ChangeBarData.ChangeBarToRNOSep = "True"; - else fmtdata.ProcData.ChangeBarData.ChangeBarToRNOSep = "False"; - if (XtraFlags.ChangeBarsOnLinkedText == "True") fmtdata.ProcData.ChangeBarData.ChangeBarsOnLinkedText = "True"; - else fmtdata.ProcData.ChangeBarData.ChangeBarsOnLinkedText = "False"; - #endregion - #region GeneralPrint & GeneralEdit - if (XtraFlags.DoRevDate == "True") fmtdata.PrintData.DoRevDate = "True"; - else fmtdata.PrintData.DoRevDate = "False"; - if (XtraFlags.AlternateFoldoutPages == "True") fmtdata.PrintData.AlternateFoldoutPages = "True"; - else fmtdata.PrintData.AlternateFoldoutPages = "False"; - if (XtraFlags.AlternateFloatingFoldout == "True") fmtdata.PrintData.AlternateFloatingFoldout = "True"; - else fmtdata.PrintData.AlternateFloatingFoldout = "False"; - if (XtraFlags.SectionLevelFoldouts == "True") fmtdata.PrintData.SectionLevelFoldouts = "True"; - else fmtdata.PrintData.SectionLevelFoldouts = "False"; - if (XtraFlags.RevDateWithForwardSlash == "True") fmtdata.PrintData.RevDateWithForwardSlash = "True"; - else fmtdata.PrintData.RevDateWithForwardSlash = "False"; - //if (XtraFlags.SpecialStepsFoldout == "True") fmtdata.PrintData.SpecialStepsFoldout = "True"; - //else fmtdata.PrintData.SpecialStepsFoldout = "False"; - if (XtraFlags.AccessoryDocsInDuplex == "True") fmtdata.PrintData.AccessoryDocsInDuplex = "True"; - else fmtdata.PrintData.AccessoryDocsInDuplex = "False"; - if (XtraFlags.FoldoutsInDuplex == "True") fmtdata.PrintData.FoldoutsInDuplex = "True"; - else fmtdata.PrintData.FoldoutsInDuplex = "False"; - if (XtraFlags.PagelistChangeIDsWithCommas == "True") fmtdata.PrintData.PagelistChangeIDsWithCommas = "True"; - else fmtdata.PrintData.PagelistChangeIDsWithCommas = "False"; - if (XtraFlags.PromptForCautinType == "True") fmtdata.EditData.PromptForCautionType = "True"; - else fmtdata.EditData.PromptForCautionType = "False"; - fmtdata.PrintData.AllowDuplex = _fmtFileName.StartsWith("WPB") || _fmtFileName.StartsWith("WEP2") ? "True" : "False"; - #endregion - #region Procedure - if (XtraFlags.DontCapitalizeTitle == "True") fmtdata.ProcData.CapitalizeTitle = "False"; - else fmtdata.ProcData.CapitalizeTitle = "True"; - if (XtraFlags.ChangeStyleForEverySection == "True") fmtdata.ProcData.ChangeStyleForEverySection = "True"; - else fmtdata.ProcData.ChangeStyleForEverySection = "False"; - if (XtraFlags.DontPrintNoTitle == "True") fmtdata.ProcData.PrintNoTitle = "False"; - else fmtdata.ProcData.PrintNoTitle = "True"; - if (XtraFlags.NotesToFootnotes == "True") fmtdata.ProcData.NotesToFootnotes = "True"; - else fmtdata.ProcData.NotesToFootnotes = "False"; - if (XtraFlags.DontCountFoldoutPages == "True") fmtdata.ProcData.CountFoldoutPages = "False"; - else fmtdata.ProcData.CountFoldoutPages = "True"; - #endregion - #region Section - //if (XtraFlags.CancelSecTitlesOnS1 == "True") fmtdata.SectData.CancelSecTitlesOnS1 = "True"; - //else fmtdata.SectData.CancelSecTitlesOnS1 = "False"; - //if (XtraFlags.CancelSecTitlesOnS2 == "True") fmtdata.SectData.CancelSecTitlesOnS2 = "True"; - //else fmtdata.SectData.CancelSecTitlesOnS2 = "False"; - //if (XtraFlags.CancelSecTitlesOnE0 == "True") fmtdata.SectData.CancelSecTitlesOnE0 = "True"; - //else fmtdata.SectData.CancelSecTitlesOnE0 = "False"; - //if (XtraFlags.CancelSecTitlesOnE2 == "True") fmtdata.SectData.CancelSecTitlesOnE2 = "True"; - //else fmtdata.SectData.CancelSecTitlesOnE2 = "False"; - if (XtraFlags.MetaSectEndMessage == "True") fmtdata.SectData.MetaSectEndMessage = "True"; - else fmtdata.SectData.MetaSectEndMessage = "False"; - if (XtraFlags.ReadOnlyTypeInContMsg == "True") fmtdata.SectData.ReadOnlyTypeInContMsg = "True"; - else fmtdata.SectData.ReadOnlyTypeInContMsg = "False"; - if (XtraFlags.DontReplaceWordsInROs == "True") fmtdata.SectData.ReplaceWordsInROs = "False"; - else fmtdata.SectData.ReplaceWordsInROs = "True"; - if (XtraFlags.UseMetaSections == "True") fmtdata.SectData.UseMetaSections = "True"; - else fmtdata.SectData.UseMetaSections = "False"; - if (XtraFlags.NonEditableSteps == "True") fmtdata.SectData.NonEditableSteps = "True"; - else fmtdata.SectData.NonEditableSteps = "False"; - if (XtraFlags.SearchAllReplaceWords == "True") fmtdata.SectData.SearchAllReplaceWords = "True"; - else fmtdata.SectData.SearchAllReplaceWords = "False"; - if (XtraFlags.SecTitleContinue == "True") fmtdata.SectData.SecTitleContinue = "True"; - else fmtdata.SectData.SecTitleContinue = "False"; - if (XtraFlags.DontConvertCaretToDelta == "True") fmtdata.SectData.ConvertCaretToDelta = "False"; - else fmtdata.SectData.ConvertCaretToDelta = "True"; - if (XtraFlags.PrintPhoneList == "True") fmtdata.SectData.PrintPhoneList = "True"; - else fmtdata.SectData.PrintPhoneList = "False"; - #endregion - #region StepSectionPrint - if (XtraFlags.LowerCaseRevnum == "True") fmtdata.SectData.StepSectionData.StpSectPrtData.LowerCaseRevNum = "True"; - else fmtdata.SectData.StepSectionData.StpSectPrtData.LowerCaseRevNum = "False"; - if (XtraFlags.UseXtraRevNumber == "True") fmtdata.SectData.StepSectionData.StpSectPrtData.UseXtraRevNumber = "True"; - else fmtdata.SectData.StepSectionData.StpSectPrtData.UseXtraRevNumber = "False"; - if (XtraFlags.SpecialLandscapeMode == "True") fmtdata.SectData.StepSectionData.StpSectPrtData.SpecialLandscapeMode = "True"; - else fmtdata.SectData.StepSectionData.StpSectPrtData.SpecialLandscapeMode = "False"; - #endregion - #region CheckOff - if (XtraFlags.DropCheckOff == "True") fmtdata.ProcData.CheckOffData.DropCheckOff = "True"; - else fmtdata.ProcData.CheckOffData.DropCheckOff = "False"; - if (XtraFlags.CheckoffOnHLSOnly == "True") fmtdata.ProcData.CheckOffData.CheckOffOnHLSOnly = "True"; - else fmtdata.ProcData.CheckOffData.CheckOffOnHLSOnly = "False"; - #endregion - #region Trans - if (XtraFlags.SpecifiedSubstepsOnly == "True") fmtdata.TransData.SpecifiedSubstepsOnly = "True"; - else fmtdata.TransData.SpecifiedSubstepsOnly = "False"; - if (XtraFlags.CapsTransitions == "True") fmtdata.TransData.CapsTransitions = "True"; - else fmtdata.TransData.CapsTransitions = "False"; - if (XtraFlags.CapTranStep == "True") fmtdata.TransData.CapTranStep = "True"; - else fmtdata.TransData.CapTranStep = "False"; - if (XtraFlags.TSTepNoFlag == "True") fmtdata.TransData.TStepNoFlag = "True"; - else fmtdata.TransData.TStepNoFlag = "False"; - if (XtraFlags.LowerCaseTranNumber == "True") fmtdata.TransData.LowerCaseTranNumber = "True"; - else fmtdata.TransData.LowerCaseTranNumber = "False"; - if (XtraFlags.UpcaseTranAnd == "True") fmtdata.TransData.UpcaseTranAnd = "True"; - else fmtdata.TransData.UpcaseTranAnd = "False"; - if (XtraFlags.SuppressAndInTran == "True") fmtdata.TransData.SuppressAndInTran = "True"; - else fmtdata.TransData.SuppressAndInTran = "False"; - if (XtraFlags.Cap1stCharTrans == "True") fmtdata.TransData.Cap1stCharTrans = "True"; - else fmtdata.TransData.Cap1stCharTrans = "False"; - if (XtraFlags.UseTransitionModifier == "True") fmtdata.TransData.UseTransitionModifier = "True"; - else fmtdata.TransData.UseTransitionModifier = "False"; - if (XtraFlags.DontUseSecTitles == "True") fmtdata.TransData.UseSecTitles = "False"; - else fmtdata.TransData.UseSecTitles = "True"; - if (XtraFlags.HardSpTranProcNumb == "True") fmtdata.TransData.HardSpTranProcNumb = "True"; - else fmtdata.TransData.HardSpTranProcNumb = "False"; - if (XtraFlags.XChngTranSpForHard == "True") fmtdata.TransData.XchngTranSpForHard = "True"; - else fmtdata.TransData.XchngTranSpForHard = "False"; - if (XtraFlags.AbsoluteTransitionUpdate == "True") fmtdata.TransData.AbsoluteTransitionUpdate = "True"; - else fmtdata.TransData.AbsoluteTransitionUpdate = "False"; - if (XtraFlags.LowerCaseStepInTran == "True") fmtdata.TransData.LowerCaseStepInTran = "True"; - else fmtdata.TransData.LowerCaseStepInTran = "False"; - if (XtraFlags.DoSectionTrans == "True") fmtdata.TransData.DoSectionTransitions = "True"; - else fmtdata.TransData.DoSectionTransitions = "False"; - #endregion - #region RO - fmtdata.ROData.UpRoImmAftrDashSpace = "False"; - if (XtraFlags.AllUnits == "True") fmtdata.ROData.AllUnits = "True"; - else fmtdata.ROData.AllUnits = "False"; - if (XtraFlags.UpSetpntAftrDash == "True") fmtdata.ROData.UpRoAftrDash = "True"; - else fmtdata.ROData.UpRoAftrDash = "False"; - if (XtraFlags.UpcaseAllSetpointUnits == "True") fmtdata.ROData.UpcaseAllRoUnits = "True"; - else fmtdata.ROData.UpcaseAllRoUnits = "False"; - if (XtraFlags.CapHighSetpnt == "True") fmtdata.ROData.CapHighRo = "True"; - else fmtdata.ROData.CapHighRo = "False"; - if (XtraFlags.CapsPIFLastLower == "True") fmtdata.ROData.CapRoIfLastLower = "True"; - else fmtdata.ROData.CapRoIfLastLower = "False"; - fmtdata.ROData.CapSPIfLastLower = "null"; - if (XtraFlags.UpSpIfPrevUpper == "True") fmtdata.ROData.UpRoIfPrevUpper = "True"; - else fmtdata.ROData.UpRoIfPrevUpper = "False"; - if (XtraFlags.UnderlineSetpoints == "True") fmtdata.ROData.UnderlineRo = "True"; - else fmtdata.ROData.UnderlineRo = "False"; - if (XtraFlags.CapFirstLetterInHighSP == "True") fmtdata.ROData.CapFirstLetterInHighRO = "True"; - else fmtdata.ROData.CapFirstLetterInHighRO = "False"; - #endregion - #region New Format Flags - // by default TurnOffReplaceWords should be False. - // this will be overrided as needed (ex. NSP (Prairie Island) Deviations - fmtdata.SectData.TurnOffReplaceWords = "False"; - // by default AdjustRNOCautionNoteWidth should be False - // this will be set to True for Catawba and McGuire formats - fmtdata.SectData.StepSectionData.AdjustRNOCautionNoteWidth = "False"; - #endregion - return true; - } - - private string GetTransUIEnum(string format, string menu) - { - string transtrtmp = (menu == null || menu == "") ? format : menu; - E_TransFormatXlate xlt = TransFormat(transtrtmp); - // xlt has flags that say what is included in the transition menu - // string. Use this to set the enum that the 32-bit code will use - // to display menuing... - E_TransitionMenus transmenuflag = TransToMenuFlags(xlt); - return ((E_TransitionMenus)transmenuflag).ToString(); - } - private E_TransitionMenus TransToMenuFlags(E_TransFormatXlate xlt) - { - E_TransitionMenus result = E_TransitionMenus.None; - - // for procedures, if the menu string contains a 'procedure', then the - // selection will come from a menu, otherwise, it defaults to current procedure - // and the menu will be disabled. - result |= (xlt & E_TransFormatXlate.Procedure) == E_TransFormatXlate.Procedure ? E_TransitionMenus.ProcMenu : E_TransitionMenus.ProcCur; - - // for sections... - if ((xlt & E_TransFormatXlate.Section) == E_TransFormatXlate.Section) - { - if ((xlt & E_TransFormatXlate.Range) == E_TransFormatXlate.Range) - result |= E_TransitionMenus.SectMenuStep; - else - result |= E_TransitionMenus.SectMenuAny; - - } - else - { - if ((xlt & E_TransFormatXlate.Procedure) == E_TransFormatXlate.Procedure) - result |= E_TransitionMenus.SectDefault; - else - result |= E_TransitionMenus.SectCur; - } - - // now do steps... - if ((xlt & E_TransFormatXlate.Range) == E_TransFormatXlate.Range) - { - result |= E_TransitionMenus.StepFirst; - result |= E_TransitionMenus.StepLast; - } - else - result |= E_TransitionMenus.StepFirst; - if (((result & E_TransitionMenus.SectDefault) == E_TransitionMenus.SectDefault) || ((result & E_TransitionMenus.SectMenuAny) == E_TransitionMenus.SectMenuAny)) - result |= E_TransitionMenus.StepAllowNone; - - return result; - } - private static E_TransFormatXlate TransFormat(string str) - { - E_TransFormatXlate retval = E_TransFormatXlate.None; - if (HasRange(str)) retval |= E_TransFormatXlate.Range; - else if (HasStep(str)) retval |= E_TransFormatXlate.Step; - if (HasSection(str)) retval |= E_TransFormatXlate.Section; - if (HasProc(str)) retval |= E_TransFormatXlate.Procedure; - if (HasPage(str)) retval |= E_TransFormatXlate.Page; - return retval; - } - private static bool HasProc(string str) - { - return str.Contains("{Proc") || str.Contains("{?.Proc"); - } - private static bool HasPage(string str) - { - return str.Contains("{Page"); - } - private static bool HasSection(string str) - { - return str.Contains("{Sect") || str.Contains("{?.Sect"); - } - private static bool HasRange(string str) - { - return str.Contains("{Last"); - } - private static bool HasStep(string str) - { - if (str.Contains("{Step")) return true; - return str.Contains("{First Step"); - } - private string ConvertSeqStart(byte p) - { - if (p == 0 || p == 0x30) return "{numeric}"; - else if (p == 0x60) return "{alpha}"; - else if (p == 0x40) return "{ALPHA}"; - else return "{UNKNOWN}"; - } - #endregion - private static Dictionary _TransForms = new Dictionary(); - public static XslCompiledTransform getTransform(string path) - { - if (!_TransForms.ContainsKey(path)) - { - XslCompiledTransform xsl = new XslCompiledTransform(); - xsl.Load(path); - _TransForms.Add(path, xsl); - } - return _TransForms[path]; - } - public bool WriteOutXmlTmp(FormatData fmtdata, string suffix) - { - try - { - XmlSerializer serializer = new XmlSerializer(typeof(FormatData)); - string lfmtname = fmtName; - int findx = fmtName.IndexOf('.'); - // for subformats, make the name FMT_00 where FMT is format name & 00 is number - // from original name. This will allow the data load to know it's a sub. - if (findx > 0) - lfmtname = fmtName.Substring(0, fmtName.Length - 4) + "_" + fmtName.Substring(fmtName.Length - 2, 2); - string destfile = "tmp_fmt_xml\\" + lfmtname + "_" + suffix + ".xml"; - if (File.Exists(destfile)) File.Delete(destfile); - TextWriter writer = new StreamWriter(destfile); - _MyFormatSerializer.Serialize(writer, fmtdata); - writer.Close(); - return true; - } - catch (Exception e) - { - Console.WriteLine("Error writing out xml or xsl - format = {0}", fmtdata.Name); - Console.WriteLine(e.Message); - Console.WriteLine(); - return false; - } - } - #region WriteOutXml - static private XmlSerializer _MyFormatSerializer = new XmlSerializer(typeof(FormatData)); - public bool WriteOutXml(FormatData fmtdata) - { - // First serialize files based on the above - then use xsl to transform - // into prefered xml. - if (!Directory.Exists("fmt_xml")) Directory.CreateDirectory("fmt_xml"); - if (!Directory.Exists("tmp_fmt_xml")) Directory.CreateDirectory("tmp_fmt_xml"); - //XmlSerializer serializer = new XmlSerializer(typeof(FormatData)); - - string lfmtname = fmtName; - int findx = fmtName.IndexOf('.'); - // for subformats, make the name FMT_00 where FMT is format name & 00 is number - // from original name. This will allow the data load to know it's a sub. - if (findx > 0) - lfmtname = fmtName.Substring(0, fmtName.Length - 4) + "_" + fmtName.Substring(fmtName.Length - 2, 2); - string destfile = "tmp_fmt_xml\\" + lfmtname + "f.xml"; - if (File.Exists(destfile)) File.Delete(destfile); - TextWriter writer = new StreamWriter(destfile); - try - { - _MyFormatSerializer.Serialize(writer, fmtdata); - writer.Close(); - //XslCompiledTransform xsl = new XslCompiledTransform(); - //xsl.Load(Application.StartupPath + "\\TranslateFmt.XSL"); - string sResults = "fmt_xml\\" + lfmtname + "f.xml"; - //xsl.Transform(destfile, sResults); // Perform Transform - XslCompiledTransform xsl = getTransform(Application.StartupPath + "\\TranslateFmt.XSL"); - xsl.Transform(destfile, sResults); // Perform Transform - xsl = getTransform(Application.StartupPath + "\\removeempty.XSL"); - //xsl.Load(Application.StartupPath + "\\removeempty.XSL"); - string sResults2 = "fmt_xml\\" + lfmtname + "xf.xml"; - xsl.Transform(sResults, sResults2); - File.Delete(sResults); - xsl.Transform(sResults2, sResults); - File.Delete(sResults2); - } - - catch (Exception e) - { - Console.WriteLine("Error writing out xml or xsl - format = {0}", fmtdata.Name); - Console.WriteLine(e.Message); - Console.WriteLine(); - return false; - } - return true; - } - #endregion - #region OriginalNoBase - //public void LoadFormatFileOrig(string fname) - //{ - // FormatData fmtdata = new FormatData(); - - // // read in data & put into correct place of structures. - // // for test string fnm = "E:\\proms.net\\exe\\fmtxml\\" + fname; - // string fnm = "E:\\ve-proms\\format\\" + fname; - // brFmt = new BinaryReader(File.Open(fnm, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)); - // bool success = ReadInFmtFile(ref fmtdata); - // #region FinishMainConvert - // if (success) - // { - // DoStepInheritance(ref fmtdata.StepData); - // success = WriteOutXml(fmtdata); - // } - // #endregion - // brFmt.Close(); - - // #region ProcessSubFormats - // // For each sub-format, load the entire file & compare to parent contents - // DirectoryInfo di = new DirectoryInfo("E:\\ve-proms\\format"); - // string substr = fname.Substring(0, fname.IndexOf('.')) + ".x*"; - // FileInfo [] fis = di.GetFiles(substr); - // foreach (FileInfo fi in fis) - // { - // //this.listBox1.Items.Add(fi.Name); - // fmtName = fi.Name; - // fnm = "E:\\ve-proms\\format\\" + fi.Name; - // brFmt = new BinaryReader(File.Open(fnm, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)); - // FormatData subdata = new FormatData(); - // success = ReadInFmtFile(ref subdata); - // if (success) - // { - // DoStepInheritance(ref subdata.StepData); - // } - // // Now do entire format inheritance - then write out. - // success = CompareParentSub(fmtdata, ref subdata); - // success = WriteOutXml(subdata); - - // } - // #endregion - //} - #endregion - #region InheritBase - public void LoadFormatFile(string fname, ref XtraFlgs XtraFlags) - { - FormatData fmtdata = new FormatData(); - - // read in data & put into correct place of structures. - // for test string fnm = "E:\\proms.net\\exe\\fmtxml\\" + fname; - string fnm = MyPath + @"\" + fname; - brFmt = new BinaryReader(File.Open(fnm, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)); - bool success = ReadInFmtFile(ref fmtdata, ref BaseXtraFlags, fname); - AddPlantSpecific(fname, ref fmtdata); - if (!HasBase) SetBaseStepNumericValues(ref fmtdata); - FixInactiveForHigh(ref fmtdata); - FixInactiveForSubStep(ref fmtdata); - FixInactiveForText(ref fmtdata); - if (!HasBase) InitSymbols(ref fmtdata); - else fmtdata.Symbols = null; - if (success) - { - PushStepLists(fmtdata.StepData); - DoStepInheritance(ref fmtdata.StepData, fname); - AddPlantSpecificOverrideInheritance(fname, ref fmtdata); - } - brFmt.Close(); - - // Now compare with gen (if !gen). - if (HasBase == false) - success = WriteOutXml(fmtdata); - else - { - //success = WriteOutXmlTmp(fmtdata, "beforeParent"); - success = CompareParentSub(BaseFormat, ref fmtdata); - AddPlantSpecificOverrideAfterInheritance(fname, ref fmtdata); - success = WriteOutXml(fmtdata); - - // For each sub-format, load the entire file & compare to parent contents - DirectoryInfo di = new DirectoryInfo(MyPath); - string substr = fname.Substring(0, fname.IndexOf('.')) + ".x*"; - FileInfo[] fis = di.GetFiles(substr); - foreach (FileInfo fi in fis) - { - if (!Form1.Excluded(fi)) - { - //this.listBox1.Items.Add(fi.Name); - fmtName = fi.Name; - fnm = MyPath + @"\" + fi.Name; - brFmt = new BinaryReader(File.Open(fnm, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)); - FormatData subdata = new FormatData(); - success = ReadInFmtFile(ref subdata, ref SubXtraFlags, fi.Name); - AddPlantSpecific(fi.Name, ref subdata); - //OutputStepFonts(fi.Name, subdata); - if (success) - { - PushStepLists(subdata.StepData); - DoStepInheritance(ref subdata.StepData, fname); - AddPlantSpecificOverrideInheritance(fmtName, ref subdata); - PopStepLists(); - } - // Now do entire format inheritance - then write out. - success = CompareParentSub(fmtdata, ref subdata); - success = CompareParentSub(BaseFormat, ref subdata); - AddPlantSpecificOverrideAfterInheritance(fmtName, ref subdata); - success = WriteOutXml(subdata); - } - } - } - MyFormat = fmtdata; - if (HasBase) PopStepLists(); // leave the base format on 'stack', i.e. only pop if !base. - } - - private void AddPlantSpecificOverrideAfterInheritance(string genFileName, ref FormatData fmtdata) - { - string genName = genFileName.Substring(genFileName.LastIndexOf('\\') + 1); - switch (genName.ToUpper()) - { - case "CPL.X03": - OverrideCPL_X03(ref fmtdata); - break; - case "CPBCK.FMT": - case "CPBCK2.FMT": - OverrideAddCPBCK(ref fmtdata); - break; - case "MCG.FMT": - case "MCGBOX.FMT": - AddMCGfmtOVR(ref fmtdata); - break; - case "CAT.FMT": - case "CATBOX.FMT": - AddCATfmtOVR(ref fmtdata); - break; - case "WEP2.FMT": - AddWEP2Overridefmt(ref fmtdata); - break; - case "EXCLN.X00": - AddEXCLN00_OVRfmt(ref fmtdata); - break; - case "NSPAB.X00": - AddNSPAB_X00_OVRfmt(ref fmtdata); - break; - case "BGEEOP.FMT": - AddBGEEOPOverridefmt(ref fmtdata); - break; - } - } - - private void SetBaseStepNumericValues(ref FormatData fmtdata) - { - Step stp = fmtdata.StepData[0]; - stp.ColOverride = "0"; - stp.ColOverrideEdit = "0"; - stp.WidthOverride = "0"; - stp.WidthOverrideEdit = "0"; - stp.StepLayoutData.STExtraSpace = "0"; - stp.StepLayoutData.EveryNLines = "1"; //default for this is 1 - stp.StepLayoutData.SpaceAfter = "0"; - stp.StepLayoutData.SpaceBefore = "0"; - } - - private void PushStepLists(Step[] stpdata) - { - Dictionary dicSteps = BuildStepDic(stpdata); - StepList.Insert(0, dicSteps); - Dictionary dicParents = BuildParentDic(stpdata, dicSteps); - StepParentList.Insert(0, dicParents); - } - private void PopStepLists() - { - StepList.RemoveAt(0); - StepParentList.RemoveAt(0); - } - private static void OutputStepFonts1(string fname, FormatData fmtdata) - { - if (fname == "BASE.fmt") - { - Console.Write("'Name','Description'"); - for (int i = 0; i < MAXSTEPS + 1; i++) - { - Console.Write(",'{0}'", fmtdata.StepData[i].Type); - } - Console.Write("\r\n"); - Console.Write("'base','Default'"); - } - else - Console.Write("'{0}','{1}'", FixName(fname), fmtdata.Name); - for (int i = 0; i < MAXSTEPS + 1; i++) - { - if (fmtdata.StepData[i].Font != null) - Console.Write(",'{0} [{1}] - {2}'", fmtdata.StepData[i].Font.FontFamily, fmtdata.StepData[i].Font.FontSize, fmtdata.StepData[i].Font.FontStyle); - else if (i == 1 && fmtdata.StepData[0].Font != null) - Console.Write(",'{0} [{1}] - {2}'", fmtdata.StepData[0].Font.FontFamily, fmtdata.StepData[0].Font.FontSize, fmtdata.StepData[0].Font.FontStyle); - else - Console.Write(",'Prestige Elite Tall [10] - None'"); - } - Console.Write("\r\n"); - } - private static void OutputStepFonts(string fname, FormatData fmtdata) - { - if (fname == "BASE.fmt") - { - Console.Write("'Name','Description'"); - for (int i = 0; i < MAXSTEPS + 1; i++) - { - Console.Write(",'{0}'", fmtdata.StepData[i].Type); - } - Console.Write("\r\n"); - Console.Write("'base','Default'"); - } - else - Console.Write("'{0}','{1}'", FixName(fname), fmtdata.Name); - for (int i = 0; i < MAXSTEPS + 1; i++) - { - if (fmtdata.StepData[i].TabData.Font != null) - Console.Write(",'{0} [{1}] - {2}'", fmtdata.StepData[i].TabData.Font.FontFamily, fmtdata.StepData[i].TabData.Font.FontSize, fmtdata.StepData[i].TabData.Font.FontStyle); - else if (i == 1 && fmtdata.StepData[0].TabData.Font != null) - Console.Write(",'{0} [{1}] - {2}'", fmtdata.StepData[0].TabData.Font.FontFamily, fmtdata.StepData[0].TabData.Font.FontSize, fmtdata.StepData[0].TabData.Font.FontStyle); - else - Console.Write(",'*'"); - } - Console.Write("\r\n"); - } - private static string FixName(string fname) - { - string lfmtname = fname; - int findx = fname.IndexOf('.'); - // for subformats, make the name FMT_00 where FMT is format name & 00 is number - // from original name. This will allow the data load to know it's a sub. - if (findx > 0) - { - if (fname.ToUpper().EndsWith(".FMT")) - lfmtname = fname.Substring(0, fname.Length - 4); - else - lfmtname = fname.Substring(0, fname.Length - 4) + fname.Substring(fname.Length - 2, 2); - } - return lfmtname; - } - private void InitSymbols(ref FormatData fmtdata) - { - fmtdata.Symbols = new Symbol[37]; - fmtdata.Symbols[0].Unicode = "176"; - fmtdata.Symbols[0].Desc = "degree"; - fmtdata.Symbols[1].Unicode = "916"; - fmtdata.Symbols[1].Desc = "delta"; - fmtdata.Symbols[2].Unicode = "8805"; - fmtdata.Symbols[2].Desc = "greater than or equal"; - fmtdata.Symbols[3].Unicode = "8804"; - fmtdata.Symbols[3].Desc = "less than or equal"; - fmtdata.Symbols[4].Unicode = "177"; - fmtdata.Symbols[4].Desc = "plus minus"; - fmtdata.Symbols[5].Unicode = "931"; - fmtdata.Symbols[5].Desc = "sigma"; - fmtdata.Symbols[6].Unicode = "947"; - fmtdata.Symbols[6].Desc = "gamma"; - fmtdata.Symbols[7].Unicode = "189"; - fmtdata.Symbols[7].Desc = "half"; - fmtdata.Symbols[8].Unicode = "9604"; - fmtdata.Symbols[8].Desc = "accum"; - fmtdata.Symbols[9].Unicode = "9679"; - fmtdata.Symbols[9].Desc = "bullet"; - fmtdata.Symbols[10].Unicode = "8776"; - fmtdata.Symbols[10].Desc = "approx eq"; - fmtdata.Symbols[11].Unicode = "8773"; - fmtdata.Symbols[11].Desc = "similar eq"; - fmtdata.Symbols[12].Unicode = "247"; - fmtdata.Symbols[12].Desc = "division"; - fmtdata.Symbols[13].Unicode = "8730"; - fmtdata.Symbols[13].Desc = "square root"; - fmtdata.Symbols[14].Unicode = "961"; - fmtdata.Symbols[14].Desc = "rho"; - fmtdata.Symbols[15].Unicode = "960"; - fmtdata.Symbols[15].Desc = "pi"; - fmtdata.Symbols[16].Unicode = "956"; - fmtdata.Symbols[16].Desc = "micro"; - fmtdata.Symbols[17].Unicode = "948"; - fmtdata.Symbols[17].Desc = "lower case delta"; - fmtdata.Symbols[18].Unicode = "963"; - fmtdata.Symbols[18].Desc = "lower case sigma"; - fmtdata.Symbols[19].Unicode = "188"; - fmtdata.Symbols[19].Desc = "quarter"; - fmtdata.Symbols[20].Unicode = "216"; - fmtdata.Symbols[20].Desc = "dist zero"; - fmtdata.Symbols[21].Unicode = "274"; - fmtdata.Symbols[21].Desc = "energy"; - fmtdata.Symbols[22].Unicode = "236"; - fmtdata.Symbols[22].Desc = "grave"; - fmtdata.Symbols[23].Unicode = "9474"; - fmtdata.Symbols[23].Desc = "bar"; - fmtdata.Symbols[24].Unicode = "949"; - fmtdata.Symbols[24].Desc = "epsilon"; - fmtdata.Symbols[25].Unicode = "952"; - fmtdata.Symbols[25].Desc = "theta"; - fmtdata.Symbols[26].Unicode = "8857"; - fmtdata.Symbols[26].Desc = "dot in oval"; - fmtdata.Symbols[27].Unicode = "964"; - fmtdata.Symbols[27].Desc = "tau"; - fmtdata.Symbols[28].Unicode = "9830"; - fmtdata.Symbols[28].Desc = "diamond"; - fmtdata.Symbols[29].Unicode = "8594"; - fmtdata.Symbols[29].Desc = "right arrow"; - fmtdata.Symbols[30].Unicode = "8592"; - fmtdata.Symbols[30].Desc = "left arrow"; - fmtdata.Symbols[31].Unicode = "8593"; - fmtdata.Symbols[31].Desc = "up arrow"; - fmtdata.Symbols[32].Unicode = "8595"; - fmtdata.Symbols[32].Desc = "down arrow"; - fmtdata.Symbols[33].Unicode = "8711"; - fmtdata.Symbols[33].Desc = "unknown5"; - fmtdata.Symbols[34].Unicode = "945"; - fmtdata.Symbols[34].Desc = "alpha"; - fmtdata.Symbols[35].Unicode = "946"; - fmtdata.Symbols[35].Desc = "beta"; - } - #endregion - #region TokenConvert - private string ConvertTransFormat(string p) - { - // parenflag puts paren around proc title AND sectitle. - p = p.Replace("\xff", "\xA0"); - p = p.Replace("\x07", "{First Step}"); - p = p.Replace("\x08", "{Last Step}"); - p = p.Replace("\x04", "{Sect Title}"); - p = p.Replace("\x06", "{Sect Title}"); - p = p.Replace("\x03", "{Sect Num}"); - p = p.Replace("\x17", "{Sect Num}"); - p = p.Replace("\x02", "{Proc Title}"); - p = p.Replace("\x01", "{Proc Num}"); - p = p.Replace("\xF", "{Page Num}"); - p = p.Replace("\x1E", "{Page Num}"); - p = p.Replace("\x1D", "{Step Text}"); - p = p.Replace("\x0D", "Step {First Step}"); - - // the following are in cpl & she format Not sure what to do so just - // flag them - //if (p.Length==1 && (p.IndexOfAny("\x19\x1A".ToCharArray())>-1)) - //{ - p = p.Replace("\x19", "{TransFmt hex 19}"); - p = p.Replace("\x1A", "{TransFmt hex 1a}"); - //} - - p = ConvertText(p); - p = DoReplaceTokens(p); - return p; - } - private string DoReplaceTokens(string p) - { - if (p == null || p == "") return p; - string wkstr = p; - // use regular expressions to do the following... - - try - { - // replace newline with {par} - wkstr = wkstr.Replace("\n", @"{\par}"); - - // special change bar token (various cpl formats) - wkstr = wkstr.Replace("\x08\x08\x08\x08\x08\x05", "{CHG_BAR with Backspace Token}"); - - // special change bar token (various gpc formats) - wkstr = wkstr.Replace("\x05", "{CHG_BAR Token}"); - - // backspage - just flag for positioning if needed. - wkstr = wkstr.Replace("\x08", "{Backspace}"); - - //sub on/off - //sub on/off - stop at EOL, another token or a space. - wkstr = wkstr.Replace("\x19\x19", "\x19"); // replace double sub on with single - wkstr = wkstr.Replace("~~", "\x19"); - wkstr = Regex.Replace(wkstr, @"\x19([^\x19\x18 ]*?)(?:[\x19\x18]|(?= )|\Z)(.*?)", @"\dn2 $1\up0 $2"); - - //super on/off - //super on/off - stop at EOL, another token or a space. - wkstr = Regex.Replace(wkstr, @"\x18([^\x19\x18 ]*?)(?:[\x19\x18]|(?= )|\Z)(.*?)", @"\up2 $1\up0 $2"); - - //bold on/off - stop at end of line or another token. - wkstr = Regex.Replace(wkstr, @"\x01([^\x01]*?)(?:\x01|\Z)", @"\b $1\b0 "); - //OLD CODE (pre-10/2007): wkstr = Regex.Replace(wkstr, @"\x01([^\x01 ]*?)(?:[\x01]|(?= )|\Z)(.*?)", @"\b$1\b0$2"); - //bold on/off - stop at EOL, another token or a space - wkstr = Regex.Replace(wkstr, @"\x13([^\x13\xd6 ]*?)(?:[\x13\xd6]|(?= )|\Z)(.*?)", @"\b $1\b0 $2"); - - //underline on/off - look for 16 followed by non-sixteen (as many as there are) and followed by 16 or endofline - //OLD CODE (pre-10/2007): wkstr = Regex.Replace(wkstr, @"\x16([^\x16 ]*?)(?:[\x16]|(?= )|\Z)(.*?)", @"\ul$1\ul0$2"); - //underline on/off - stop at end of line or another token. - //wkstr = Regex.Replace(wkstr, @"\x16([^\x16]*?)(?:\x16|\Z)", @"\ul $1\ul0 "); - wkstr = Regex.Replace(wkstr, @"\x16([^\x16]*?)(?:\x16|\Z)", @"\ul $1\ulnone "); - - //narrator - //wkstr = Regex.Replace(wkstr, @"\x86([^\x86 ]*?)(?:[\x86]|(?= )|\Z)(.*?)", @"\f{Narrator}$1\f0$2"); - wkstr = Regex.Replace(wkstr, @"\x86([^\x86 ]*?)(?:[\x86]|(?= )|\Z)(.*?)", @"$1$2"); - - // remove hanging indent, vertical tab - wkstr = Regex.Replace(wkstr, @"\x02", @"\NonSupported Hanging Indent (Hex x02)"); - //wkstr = Regex.Replace(wkstr, @"\x0B", @"\NonSupported Vertical Tab (Hex x0b"); - wkstr = Regex.Replace(wkstr, @"\x0B", @""); - - // remove some unknown chars for ano & fpl - these plants are not supported - // as of conversion date. - wkstr = Regex.Replace(wkstr, @"\x95", @"\NonSupported Unknown (Hex x95)"); //ano2vlv - wkstr = Regex.Replace(wkstr, @"\x1bf1", @"\NonSupported Unknown (hex 1b f1)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bf0", @"\NonSupported Unknown (hex 1b f0)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bM1", @"\NonSupported Unknown (hex 1b M1)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bM0", @"\NonSupported Unknown (hex 1b M0)"); //fpl - - // replace \xff with \xA0, i.e. hardspace - wkstr = Regex.Replace(wkstr, @"\xFF", @"\xA0"); - - // replace x10 & x11 in various ano tabs - not this needs fixed if ANO comes - // back into the program - wkstr = wkstr.Replace("\x10", ""); - wkstr = wkstr.Replace("\x11", ""); - - // replace x15 with {RO} for now. - wkstr = wkstr.Replace("\x15", "{RO}"); - } - catch (Exception ex) - { - Console.WriteLine("error replacing token (regex) = {0}", ex.Message); - } - - return wkstr; - } - private float CalculateTabWid(string p) - { - if (p == null || p.Length == 0) return 0; - int tablen = p.Length; - // don't count if macro.... - int tokb = p.IndexOf("{"); - if (tokb > -1) - { - if ((tokb = p.IndexOf("{!")) > -1) - { - int toke = p.IndexOf("}", tokb + 2); - tablen -= (toke - tokb + 1); - } - else - tablen -= 2; // "{}" - } - if ((tokb = p.IndexOf("\xA1")) > -1) tablen--; // flags circle macro - if ((tokb = p.IndexOf("##-3#")) > -1) tablen -= 5; // positioning - if ((tokb = p.IndexOf("\xAF")) > -1) tablen--; // indent - if ((tokb = p.IndexOf("\n")) > -1) tablen--; // newline - not sure what to do here - if ((tokb = p.IndexOf("")) > -1) tablen--; // box step flag - for (int i = 0; i < p.Length; i++) if (p[i] == 0x08) tablen--; // discount backspaces. - for (int i = 0; i < p.Length; i++) if (p[i] == 0x16) tablen--; // underline toggle tokens - if (tablen < 0) tablen = 0; - return ColToPoints(tablen, _PlantDefaultFontStyle); - } - private int NBRSub = 16; - // STANDARD,AND,OR,EQUIPMENTLIST,EQUIPMENTWBLANK,EXPLICITAND,IMPLICITOR,PARAGRAPH, - // EQUIPMENTOPT,EQUIPMENTOPTWBLANK,CONTACSEQUENTIAL,CONTACAND,CONTACOR,CONTACPARAGRAPH,TITLEWITHTEXTRIGHT,TITLEWITHTEXTBELOW - private int[] SubTypeValue ={0,3,4,10,13,18,34,23,29,30,43,44,45,46,41,42}; - private string DoTabs(VE_Font vefont, string po, int i, string p, bool doNumeric) - { - // subtypes were defined as the list of types in the comment above from 16bit. These types, if a tab - // string is not defined, should get a {seq} - if ((p == null || p == "") && !IsSubType(i)) return p ?? ""; - - string wkstr = p; - if (p == null) - return "{seq}"; - //Number Formatting - // $ - Uppercase Alphabetical (IP2, GEN, CAL2, VLNCAS) - // & - Roman Numeral - UpperCase - // @ - Uppercase Alphabetical (AEP, CAL2, GEN, IP2, NSP, RGE, VLNCAS) - wkstr = Regex.Replace(wkstr, @"\$", @"{ALPHA}"); - wkstr = Regex.Replace(wkstr, @"&", @"{ROMAN}"); - wkstr = Regex.Replace(wkstr, @"@", @"{ALPHA}"); - - // Position offset - do this one here, so don't get background substitution below.. - // ##-3# - Offset of -3 from Parent (FNP) - wkstr = Regex.Replace(wkstr, @"##-3#", @"{Pos-3}"); - - // Background/Deviation Documents - check for E_PurchaseOptions.(ENHANCEDBACKGROUNDS or ENHANCEDDEVIATIONS) - // # - Related Caution or Note number - // ~ - Linked Step Number - - if ((po.ToUpper().IndexOf("ENHANCEDBACKGROUNDS") > -1) || (po.ToUpper().IndexOf("ENHANCEDDEVIATIONS") > -1)) - { - wkstr = wkstr.Replace("#", "{LNK C/N Num}"); - wkstr = wkstr.Replace("~", "{LNK Step Num}"); - } - - // Insert seq & numeric for sequential & any high type if there are not other - // commands. - int indx = 0; - // if sequential or high, add the seq or numeric token - if (i == 0 && ((indx = wkstr.IndexOf("{")) < 0)) // sequential - put in "{seq}" - wkstr = wkstr.Insert(0, "{seq}"); - // high, immediate, continuous, lossofac, high5 - put in " {numeric} " - else if ((i == 1 || i == 2 || i == 8 || i == 17 || i == 40) && ((indx = wkstr.IndexOf("{")) < 0) && doNumeric) - { - int indxColon = wkstr.IndexOf(":"); - int indxPercent = wkstr.IndexOf("%"); - if (indxColon > 0) - wkstr = wkstr.Insert(indxColon, "{numeric}"); - else if (indxPercent > 0) - wkstr = wkstr.Insert(indxPercent + 1, "{numeric}"); // put numeric after section prefix - else - wkstr = wkstr.Insert(1, "{numeric}"); - } - - //Section Numbers - // % - Prefix with section number (works string in 16 bit, ie.e For 4.3 the prefix becomes 4. - // wid that would be stored. - wkstr = Regex.Replace(wkstr, @"%", @"{Section Prefix}"); - - // Position offset - // \257 - Indent (CALLOWAY BACKGROUNDS) - // Newline within a tab (calbck) - wkstr = wkstr.Replace("\xAF", @"{indent}"); - wkstr = wkstr.Replace("\n", @"{par}"); - - //Macros - // - draws a diamond around the stepnumber - // - A macro - // for SHE (Shearon Harris) format. Convert to just a tab with asterisk. - // <> - ignored - // \241 - circle macro around step, same as - // Also note, the format files had "<>", these get converted during input in this - // format converter code. - if (wkstr.Contains("!asterisk")) wkstr = "{asterisk} {numeric}. "; - wkstr = Regex.Replace(wkstr, @"{![.*?]}", @"{!$1}"); - wkstr = wkstr.Replace("{}", ""); - wkstr = wkstr.Replace("", "{!C0}"); - if (vefont != null && vefont.HasCircleString2()) wkstr.Insert(0, "{!C0}"); - - // Symbols - // * - simply an asterisk (do nothing here) - // - - simlply a dash (do nothing here) - // \007 - bullet (gets translated - wkstr = wkstr.Replace("\007", "\x9679"); - wkstr = wkstr.Replace("", @"{Box Step}"); - wkstr = DoReplaceTokens(wkstr); - wkstr = ConvertText(wkstr); - return wkstr; - } - private bool IsSubType(int indx) - { - for (int i = 0; i < NBRSub; i++) if (indx == SubTypeValue[i]) return true; - return false; - } - #endregion - #region DoEntireInherit - private bool CompareParentSub(FormatData mainFmt, ref FormatData subFmt) - { - // just compare all fields - clear the subformat if equal. - #region COMPAREACTIVE - subFmt.FontData = FixInheritedFont(subFmt.FontData, mainFmt.FontData); // Phase 10 - if (mainFmt.PurchaseOptions == subFmt.PurchaseOptions) subFmt.PurchaseOptions = null; - if (mainFmt.TPL == subFmt.TPL) subFmt.TPL = null; - if (mainFmt.EditData.EMode == subFmt.EditData.EMode) subFmt.EditData.EMode = null; - if (mainFmt.EditData.PromptForCautionType != null && mainFmt.EditData.PromptForCautionType == subFmt.EditData.PromptForCautionType) subFmt.EditData.PromptForCautionType = "null"; - if (mainFmt.SectData.StepSectionData.TopRow == subFmt.SectData.StepSectionData.TopRow) subFmt.SectData.StepSectionData.TopRow = NullInt; - if (mainFmt.PrintData.DoPrnDrvrAdjusts == subFmt.PrintData.DoPrnDrvrAdjusts) subFmt.PrintData.DoPrnDrvrAdjusts = NullInt; - if (mainFmt.PrintData.DoRevDate != null && mainFmt.PrintData.DoRevDate == subFmt.PrintData.DoRevDate) subFmt.PrintData.DoRevDate = "null"; - if (mainFmt.PrintData.AlternateFoldoutPages != null && mainFmt.PrintData.AlternateFoldoutPages == subFmt.PrintData.AlternateFoldoutPages) subFmt.PrintData.AlternateFoldoutPages = "null"; - if (mainFmt.PrintData.AlternateFloatingFoldout != null && mainFmt.PrintData.AlternateFloatingFoldout == subFmt.PrintData.AlternateFloatingFoldout) subFmt.PrintData.AlternateFloatingFoldout = "null"; - if (mainFmt.PrintData.SectionLevelFoldouts != null && mainFmt.PrintData.SectionLevelFoldouts == subFmt.PrintData.SectionLevelFoldouts) subFmt.PrintData.SectionLevelFoldouts = "null"; - if (mainFmt.PrintData.RevDateWithForwardSlash != null && mainFmt.PrintData.RevDateWithForwardSlash == subFmt.PrintData.RevDateWithForwardSlash) subFmt.PrintData.RevDateWithForwardSlash = "null"; - if (mainFmt.PrintData.UnitNumber != null && mainFmt.PrintData.UnitNumber == subFmt.PrintData.UnitNumber) subFmt.PrintData.UnitNumber = "null"; if (mainFmt.PrintData.UnitNumber != null && mainFmt.PrintData.UnitNumber == subFmt.PrintData.UnitNumber) subFmt.PrintData.UnitNumber = "null"; - if (mainFmt.PrintData.SpecialCaseCalvert != null && mainFmt.PrintData.SpecialCaseCalvert == subFmt.PrintData.SpecialCaseCalvert) subFmt.PrintData.SpecialCaseCalvert = "null"; - if (mainFmt.PrintData.SpecialCaseCalvertAlarm != null && mainFmt.PrintData.SpecialCaseCalvertAlarm == subFmt.PrintData.SpecialCaseCalvertAlarm) subFmt.PrintData.SpecialCaseCalvertAlarm = "null"; - if (mainFmt.PrintData.PrintCommonForZeroUnit != null && mainFmt.PrintData.PrintCommonForZeroUnit == subFmt.PrintData.PrintCommonForZeroUnit) subFmt.PrintData.PrintCommonForZeroUnit = "null"; - //if (mainFmt.PrintData.SpecialStepsFoldout != null && mainFmt.PrintData.SpecialStepsFoldout == subFmt.PrintData.SpecialStepsFoldout) subFmt.PrintData.SpecialStepsFoldout = "null"; - if (mainFmt.PrintData.AccessoryDocsInDuplex != null && mainFmt.PrintData.AccessoryDocsInDuplex == subFmt.PrintData.AccessoryDocsInDuplex) subFmt.PrintData.AccessoryDocsInDuplex = "null"; - if (mainFmt.PrintData.AllowDuplex != null && mainFmt.PrintData.AllowDuplex == subFmt.PrintData.AllowDuplex) subFmt.PrintData.AllowDuplex = "null"; - if (mainFmt.PrintData.FoldoutsInDuplex != null && mainFmt.PrintData.FoldoutsInDuplex == subFmt.PrintData.FoldoutsInDuplex) subFmt.PrintData.FoldoutsInDuplex = "null"; - if (mainFmt.PrintData.PagelistChangeIDsWithCommas != null && mainFmt.PrintData.PagelistChangeIDsWithCommas == subFmt.PrintData.PagelistChangeIDsWithCommas) subFmt.PrintData.PagelistChangeIDsWithCommas = "null"; - - // box data... - for (int i = 0; i < MAXBOXES + 1; i++) - { - Box mbox = mainFmt.BoxData[i]; - Box sbox = subFmt.BoxData[i]; - if (mbox.Start == sbox.Start) sbox.Start = NullInt; - if (mbox.End == sbox.End) sbox.End = NullInt; - if (mbox.TxtStart == sbox.TxtStart) sbox.TxtStart = NullInt; - if (mbox.TxtWidth == sbox.TxtWidth) sbox.TxtWidth = NullInt; - if (mbox.Height == sbox.Height) sbox.Height = NullInt; - if (mbox.TabPos == sbox.TabPos) sbox.TabPos = NullInt; - subFmt.BoxData[i].Font = FixInheritedFont(sbox.Font, mbox.Font); // Phase 3 - } - string subName = subFmt.Name; - bool inheritShowSectionTitles = true; - if (fmtName.Contains("NSPIFG.X00")) inheritShowSectionTitles = false; - StepSectionLayout msctlay = mainFmt.SectData.StepSectionData.StpSectLayData; - StepSectionLayout ssctlay = subFmt.SectData.StepSectionData.StpSectLayData; - if (msctlay.TableCenterPos == ssctlay.TableCenterPos) subFmt.SectData.StepSectionData.StpSectLayData.TableCenterPos = null; - subFmt.SectData.StepSectionData.StpSectLayData.TopOfPage.Font = FixInheritedFont(ssctlay.TopOfPage.Font, msctlay.TopOfPage.Font);// Phase 4 - if (msctlay.TopOfPage.Row == ssctlay.TopOfPage.Row) subFmt.SectData.StepSectionData.StpSectLayData.TopOfPage.Row = NullInt; - if (msctlay.TopOfPage.Col == ssctlay.TopOfPage.Col) subFmt.SectData.StepSectionData.StpSectLayData.TopOfPage.Col = NullInt; - - StepSectionPrint msctpr = mainFmt.SectData.StepSectionData.StpSectPrtData; - StepSectionPrint ssctpr = subFmt.SectData.StepSectionData.StpSectPrtData; - subFmt.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle = FixInheritedFont(msctpr.ModifiedTextStyle, msctpr.ModifiedTextStyle); // Phase 11 - if (!subFmt.Name.Contains("IP3"))subFmt.SectData.StepSectionData.StpSectLayData.Separator.Font = FixInheritedFont(ssctlay.Separator.Font, msctlay.Separator.Font); // Phase 5 - if (msctlay.Separator.SeparatorLocation == ssctlay.Separator.SeparatorLocation) subFmt.SectData.StepSectionData.StpSectLayData.Separator.SeparatorLocation = NullInt; - if (msctlay.LastLineToStartStep == ssctlay.LastLineToStartStep) subFmt.SectData.StepSectionData.StpSectLayData.LastLineToStartStep = NullInt; - - //for (int i=0; i<10; i++) - // if (mainFmt.SectData.StepSectionData.TextTypeValue[i] == subFmt.SectData.StepSectionData.TextTypeValue[i]) mainFmt.SectData.StepSectionData.TextTypeValue[i] = 0; - - if (msctlay.LineDrawingOption == ssctlay.LineDrawingOption) subFmt.SectData.StepSectionData.StpSectLayData.LineDrawingOption = NullInt; - if (msctlay.ColS == ssctlay.ColS) subFmt.SectData.StepSectionData.StpSectLayData.ColS = NullInt; - - StepSectionEdit mscted = mainFmt.SectData.StepSectionData.StpSectEditData; - StepSectionEdit sscted = subFmt.SectData.StepSectionData.StpSectEditData; - if (mscted.ColSScreenAdj == sscted.ColSScreenAdj) subFmt.SectData.StepSectionData.StpSectEditData.ColSScreenAdj = NullInt; - if (mscted.ScrnAdjRNOText == sscted.ScrnAdjRNOText) subFmt.SectData.StepSectionData.StpSectEditData.ScrnAdjRNOText = NullInt; - - if (msctlay.ColT == ssctlay.ColT) subFmt.SectData.StepSectionData.StpSectLayData.ColT = NullInt; - if (msctlay.ColAbs == ssctlay.ColAbs) subFmt.SectData.StepSectionData.StpSectLayData.ColAbs = NullInt; - if (msctlay.WidT == ssctlay.WidT) subFmt.SectData.StepSectionData.StpSectLayData.WidT = NullInt; - if (msctlay.TabPtsPerChar == ssctlay.TabPtsPerChar) subFmt.SectData.StepSectionData.StpSectLayData.TabPtsPerChar = NullInt; - if (msctlay.PMode == ssctlay.PMode) subFmt.SectData.StepSectionData.StpSectLayData.PMode = NullInt; - if (msctlay.MaxRNO == ssctlay.MaxRNO) subFmt.SectData.StepSectionData.StpSectLayData.MaxRNO = NullInt; - if (msctlay.MaxRNOTable == ssctlay.MaxRNOTable) subFmt.SectData.StepSectionData.StpSectLayData.MaxRNOTable = null; - if (msctlay.ColRTable == ssctlay.ColRTable) subFmt.SectData.StepSectionData.StpSectLayData.ColRTable = null; - if (msctlay.WidSTablePrint == ssctlay.WidSTablePrint) subFmt.SectData.StepSectionData.StpSectLayData.WidSTablePrint = null; - if (mscted.ColRScreen == sscted.ColRScreen) subFmt.SectData.StepSectionData.StpSectEditData.ColRScreen = null; - if (msctlay.AdjRNOCol == ssctlay.AdjRNOCol) subFmt.SectData.StepSectionData.StpSectLayData.AdjRNOCol = NullInt; - if (msctlay.CautionNoteOrder == ssctlay.CautionNoteOrder) subFmt.SectData.StepSectionData.StpSectLayData.CautionNoteOrder = null; - - // change bar - ChangeBar mcb = mainFmt.ProcData.ChangeBarData; - ChangeBar scb = subFmt.ProcData.ChangeBarData; - if (mcb.ChangeBarMessage == scb.ChangeBarMessage) subFmt.ProcData.ChangeBarData.ChangeBarMessage = null; - if (mcb.FixedChangeColumn == scb.FixedChangeColumn) subFmt.ProcData.ChangeBarData.FixedChangeColumn = NullInt; - if (mcb.FixedAERChangeColumn == scb.FixedAERChangeColumn) subFmt.ProcData.ChangeBarData.FixedAERChangeColumn = NullInt; - if (mcb.ChangeSummaryStyle == scb.ChangeSummaryStyle) subFmt.ProcData.ChangeBarData.ChangeSummaryStyle = NullInt; - if (mcb.ChangeBarStyle == scb.ChangeBarStyle) subFmt.ProcData.ChangeBarData.ChangeBarStyle = NullInt; - if (mcb.CondensedChangeBar != null && mcb.CondensedChangeBar == scb.CondensedChangeBar) subFmt.ProcData.ChangeBarData.CondensedChangeBar = "null"; - if (mcb.AbsoluteFixedChangeColumn != null && mcb.AbsoluteFixedChangeColumn == scb.AbsoluteFixedChangeColumn) subFmt.ProcData.ChangeBarData.AbsoluteFixedChangeColumn = "null"; - if (mcb.ContinuousChangeBars != null && mcb.ContinuousChangeBars == scb.ContinuousChangeBars) subFmt.ProcData.ChangeBarData.ContinuousChangeBars = "null"; - if (mcb.ChgBarMessageFromEdit != null && mcb.ChgBarMessageFromEdit == scb.ChgBarMessageFromEdit) subFmt.ProcData.ChangeBarData.ChgBarMessageFromEdit = "null"; - if (mcb.ChangeIds != null && mcb.ChangeIds == scb.ChangeIds) subFmt.ProcData.ChangeBarData.ChangeIds = "null"; - if (mcb.ChangeBarToRNOSep != null && mcb.ChangeBarToRNOSep == scb.ChangeBarToRNOSep) subFmt.ProcData.ChangeBarData.ChangeBarToRNOSep = "null"; - if (mcb.ChangeBarsOnLinkedText != null && mcb.ChangeBarsOnLinkedText == scb.ChangeBarsOnLinkedText) subFmt.ProcData.ChangeBarData.ChangeBarsOnLinkedText = "null"; - - if (mainFmt.ProcData.TitleLength == subFmt.ProcData.TitleLength) subFmt.ProcData.TitleLength = NullInt; - if (mainFmt.ProcData.CoverTitleLength == subFmt.ProcData.CoverTitleLength) subFmt.ProcData.CoverTitleLength = NullInt; - if (mainFmt.ProcData.ProcForeColor == subFmt.ProcData.ProcForeColor) subFmt.ProcData.ProcForeColor = null; - if (mainFmt.ProcData.ProcBackColor == subFmt.ProcData.ProcBackColor) subFmt.ProcData.ProcBackColor = null; - if (mainFmt.ProcData.CapitalizeTitle != null && mainFmt.ProcData.CapitalizeTitle == subFmt.ProcData.CapitalizeTitle) subFmt.ProcData.CapitalizeTitle = "null"; - if (mainFmt.ProcData.ChangeStyleForEverySection != null && mainFmt.ProcData.ChangeStyleForEverySection == subFmt.ProcData.ChangeStyleForEverySection) subFmt.ProcData.ChangeStyleForEverySection = "null"; - if (mainFmt.ProcData.PrintNoTitle != null && mainFmt.ProcData.PrintNoTitle == subFmt.ProcData.PrintNoTitle) subFmt.ProcData.PrintNoTitle = "null"; - if (mainFmt.ProcData.CountFoldoutPages != null && mainFmt.ProcData.CountFoldoutPages == subFmt.ProcData.CountFoldoutPages) subFmt.ProcData.CountFoldoutPages = "null"; - - // checkoff - CheckOffData mco = mainFmt.ProcData.CheckOffData; - CheckOffData sco = subFmt.ProcData.CheckOffData; - for (int i = 0; i < MAXCHKHEADINGS; i++) - { - if (mco.CheckOffHeaderList[i].CheckOffHeading == sco.CheckOffHeaderList[i].CheckOffHeading) subFmt.ProcData.CheckOffData.CheckOffHeaderList[i].CheckOffHeading = null; - sco.CheckOffHeaderList[i].Font = FixInheritedFont(sco.CheckOffHeaderList[i].Font, mco.CheckOffHeaderList[i].Font); // Phase 6 - } - if (mco.Menu == sco.Menu) subFmt.ProcData.CheckOffData.Menu = "null"; - if (mco.AllowSectEdit == sco.AllowSectEdit) subFmt.ProcData.CheckOffData.AllowSectEdit = "null"; - if (mco.AllowStepEdit == sco.AllowStepEdit) subFmt.ProcData.CheckOffData.AllowStepEdit = "null"; - if (mco.CheckoffOnSubStepsOnly == sco.CheckoffOnSubStepsOnly) subFmt.ProcData.CheckOffData.CheckoffOnSubStepsOnly = "null"; - if (mco.UseCheckOffsIn == sco.UseCheckOffsIn) subFmt.ProcData.CheckOffData.UseCheckOffsIn = NullInt; - if (mco.XLocation == sco.XLocation) subFmt.ProcData.CheckOffData.XLocation = NullInt; - if (mco.CheckOffAdjustment == sco.CheckOffAdjustment) subFmt.ProcData.CheckOffData.CheckOffAdjustment = NullInt; - if (mco.DropCheckOff != null && mco.DropCheckOff == sco.DropCheckOff) subFmt.ProcData.CheckOffData.DropCheckOff = "null"; - if (mco.CheckOffOnHLSOnly != null && mco.CheckOffOnHLSOnly == sco.CheckOffOnHLSOnly) subFmt.ProcData.CheckOffData.CheckOffOnHLSOnly = "null"; - if (mco.SkipSpaces != null && mco.SkipSpaces == sco.SkipSpaces) subFmt.ProcData.CheckOffData.SkipSpaces = "null"; - - if (mco.LayoutList != null && sco.LayoutList != null) - { - int mLayoutCount = mco.LayoutList.Length; - int sLayoutCount = sco.LayoutList.Length; - if (sLayoutCount == mLayoutCount) - { - for (int i = 0; i < sLayoutCount; i++) - { - if (mco.LayoutList[i].RnoLevel == sco.LayoutList[i].RnoLevel) subFmt.ProcData.CheckOffData.LayoutList[i].RnoLevel = "null"; - if (mco.LayoutList[i].Column == sco.LayoutList[i].Column) subFmt.ProcData.CheckOffData.LayoutList[i].Column = NullInt; - } - } - } - - if (msctlay.EndMessagePos == ssctlay.EndMessagePos) subFmt.SectData.StepSectionData.StpSectLayData.EndMessagePos = NullInt; - - StepSection msctstp = mainFmt.SectData.StepSectionData; - StepSection ssctstp = subFmt.SectData.StepSectionData; - if (msctstp.IndentToken == ssctstp.IndentToken) subFmt.SectData.StepSectionData.IndentToken = NullByte; - if (msctpr.ImmStepHdrCol == ssctpr.ImmStepHdrCol) subFmt.SectData.StepSectionData.StpSectPrtData.ImmStepHdrCol = NullInt; - subFmt.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle = FixInheritedFont(ssctpr.ImmStepHdrStyle, msctpr.ImmStepHdrStyle); - if (msctstp.WolfCreekBackgroundFormat != null && msctstp.WolfCreekBackgroundFormat == ssctstp.WolfCreekBackgroundFormat) subFmt.SectData.StepSectionData.WolfCreekBackgroundFormat = "null"; - if (msctstp.WolfcreekCKLFormat != null && msctstp.WolfcreekCKLFormat == ssctstp.WolfcreekCKLFormat) subFmt.SectData.StepSectionData.WolfcreekCKLFormat = "null"; - if (msctstp.WolfcreekCKLBackgndFormat != null && msctstp.WolfcreekCKLBackgndFormat == ssctstp.WolfcreekCKLBackgndFormat) subFmt.SectData.StepSectionData.WolfcreekCKLBackgndFormat = "null"; - if (msctstp.FortranFormatNumbers != null && msctstp.FortranFormatNumbers == ssctstp.FortranFormatNumbers) subFmt.SectData.StepSectionData.FortranFormatNumbers = "null"; - if (msctstp.UseTopContinueMessageAtEnd != null && msctstp.UseTopContinueMessageAtEnd == ssctstp.UseTopContinueMessageAtEnd) subFmt.SectData.StepSectionData.UseTopContinueMessageAtEnd = "null"; - if (msctstp.FloatingContinueMessage != null && msctstp.FloatingContinueMessage == ssctstp.FloatingContinueMessage) subFmt.SectData.StepSectionData.FloatingContinueMessage = "null"; - if (msctstp.WrapSameAsEdit != null && msctstp.WrapSameAsEdit == ssctstp.WrapSameAsEdit) subFmt.SectData.StepSectionData.WrapSameAsEdit = "null"; - if (msctstp.ContinueSectionHeader != null && msctstp.ContinueSectionHeader == ssctstp.ContinueSectionHeader) subFmt.SectData.StepSectionData.ContinueSectionHeader = "null"; - if (msctstp.CompressHPSub != null && msctstp.CompressHPSub == ssctstp.CompressHPSub) subFmt.SectData.StepSectionData.CompressHPSub = "null"; - if (msctstp.CompressHPSuper != null && msctstp.CompressHPSuper == ssctstp.CompressHPSuper) subFmt.SectData.StepSectionData.CompressHPSuper = "null"; - if (msctstp.CompressPropSubSup != null && msctstp.CompressPropSubSup == ssctstp.CompressPropSubSup) subFmt.SectData.StepSectionData.CompressPropSubSup = "null"; - //if (msctstp.UndSpecialStepsFoldout != null && msctstp.UndSpecialStepsFoldout == ssctstp.UndSpecialStepsFoldout) subFmt.SectData.StepSectionData.UndSpecialStepsFoldout = "null"; - if (msctstp.UnderlineAllMetaTitles != null && msctstp.UnderlineAllMetaTitles == ssctstp.UnderlineAllMetaTitles) subFmt.SectData.StepSectionData.UnderlineAllMetaTitles = "null"; - if (msctstp.BoldOnlySectionZero != null && msctstp.BoldOnlySectionZero == ssctstp.BoldOnlySectionZero) subFmt.SectData.StepSectionData.BoldOnlySectionZero = "null"; - if (msctstp.ImperfectStructure != null && msctstp.ImperfectStructure == ssctstp.ImperfectStructure) subFmt.SectData.StepSectionData.ImperfectStructure = "null"; - if (msctstp.ImperfectSubstep != null && msctstp.ImperfectSubstep == ssctstp.ImperfectSubstep) subFmt.SectData.StepSectionData.ImperfectSubstep = "null"; - if (msctstp.ImperfectStructurePlus4 != null && msctstp.ImperfectStructurePlus4 == ssctstp.ImperfectStructurePlus4) subFmt.SectData.StepSectionData.ImperfectStructurePlus4 = "null"; - if (msctstp.CountAllSubLevels != null && msctstp.CountAllSubLevels == ssctstp.CountAllSubLevels) subFmt.SectData.StepSectionData.CountAllSubLevels = "null"; - if (msctstp.UseMultiLineSectionTitle != null && msctstp.UseMultiLineSectionTitle == ssctstp.UseMultiLineSectionTitle) subFmt.SectData.StepSectionData.UseMultiLineSectionTitle = "null"; - if (msctstp.AdjustRNOCautionNoteWidth != null && msctstp.AdjustRNOCautionNoteWidth == ssctstp.AdjustRNOCautionNoteWidth) subFmt.SectData.StepSectionData.AdjustRNOCautionNoteWidth = "null"; - - if (msctlay.RNOWidthAlt == ssctlay.RNOWidthAlt) subFmt.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = null; - if (msctlay.HLSWidthOVRD == ssctlay.HLSWidthOVRD) subFmt.SectData.StepSectionData.StpSectLayData.HLSWidthOVRD = NullInt; - if (msctpr.SecColHdrforActPMode == ssctpr.SecColHdrforActPMode) subFmt.SectData.StepSectionData.StpSectPrtData.SecColHdrforActPMode = NullInt; - SectionNum msctn = mainFmt.SectData.SectionNumber; - SectionNum ssctn = subFmt.SectData.SectionNumber; - SectionHead mscth = mainFmt.SectData.SectionHeader; - SectionHead sscth = subFmt.SectData.SectionHeader; - subFmt.SectData.SectionNumber.Font = FixInheritedFont(ssctn.Font, msctn.Font); // Phase 7 - if (msctn.Pos == ssctn.Pos) subFmt.SectData.SectionNumber.Pos = NullInt; - if (msctn.Level0Big == ssctn.Level0Big) subFmt.SectData.SectionNumber.Level0Big = null; - if (msctn.Just == ssctn.Just) subFmt.SectData.SectionNumber.Just = null; - subFmt.SectData.SectionHeader.Font = FixInheritedFont(sscth.Font, mscth.Font); // Phase 8 - if (mscth.Pos == sscth.Pos) subFmt.SectData.SectionHeader.Pos = NullInt; - if (mscth.Level0Big == sscth.Level0Big) subFmt.SectData.SectionHeader.Level0Big = null; - if (mscth.Just == sscth.Just) subFmt.SectData.SectionHeader.Just = null; - - if (mainFmt.SectData.SectionTitleLength == subFmt.SectData.SectionTitleLength) subFmt.SectData.SectionTitleLength = NullInt; - if (mainFmt.SectData.SectForeColor == subFmt.SectData.SectForeColor) subFmt.SectData.SectForeColor = null; - if (mainFmt.SectData.SectBackColor == subFmt.SectData.SectBackColor) subFmt.SectData.SectBackColor = null; - if (mainFmt.SectData.MetaSectEndMessage != null && mainFmt.SectData.MetaSectEndMessage == subFmt.SectData.MetaSectEndMessage) subFmt.SectData.MetaSectEndMessage = "null"; - if (mainFmt.SectData.ReadOnlyTypeInContMsg != null && mainFmt.SectData.ReadOnlyTypeInContMsg == subFmt.SectData.ReadOnlyTypeInContMsg) subFmt.SectData.ReadOnlyTypeInContMsg = "null"; - if (mainFmt.SectData.ReplaceWordsInROs != null && mainFmt.SectData.ReplaceWordsInROs == subFmt.SectData.ReplaceWordsInROs) subFmt.SectData.ReplaceWordsInROs = "null"; - if (mainFmt.SectData.UseMetaSections != null && mainFmt.SectData.UseMetaSections == subFmt.SectData.UseMetaSections) subFmt.SectData.UseMetaSections = "null"; - if (mainFmt.SectData.NonEditableSteps != null && mainFmt.SectData.NonEditableSteps == subFmt.SectData.NonEditableSteps) subFmt.SectData.NonEditableSteps = "null"; - if (mainFmt.SectData.SearchAllReplaceWords != null && mainFmt.SectData.SearchAllReplaceWords == subFmt.SectData.SearchAllReplaceWords) subFmt.SectData.SearchAllReplaceWords = "null"; - if (mainFmt.SectData.SecTitleContinue != null && mainFmt.SectData.SecTitleContinue == subFmt.SectData.SecTitleContinue) subFmt.SectData.SecTitleContinue = "null"; - if (mainFmt.SectData.ConvertCaretToDelta != null && mainFmt.SectData.ConvertCaretToDelta == subFmt.SectData.ConvertCaretToDelta) subFmt.SectData.ConvertCaretToDelta = "null"; - if (mainFmt.SectData.TurnOffReplaceWords != null && mainFmt.SectData.TurnOffReplaceWords == subFmt.SectData.TurnOffReplaceWords) subFmt.SectData.TurnOffReplaceWords = "null"; - if (mainFmt.SectData.PrintPhoneList != null && mainFmt.SectData.PrintPhoneList == subFmt.SectData.PrintPhoneList) subFmt.SectData.PrintPhoneList = "null"; - - if (msctlay.SubPaginationWght == ssctlay.SubPaginationWght) subFmt.SectData.StepSectionData.StpSectLayData.SubPaginationWght = NullInt; - if (msctlay.TextTitleAdjustment == ssctlay.TextTitleAdjustment) subFmt.SectData.StepSectionData.StpSectLayData.TextTitleAdjustment = NullInt; - - AccSection maccsec = mainFmt.SectData.AccSectionData; - AccSection saccsec = subFmt.SectData.AccSectionData; - - if (maccsec.TableOfContentsData.TofCSecNumPos == saccsec.TableOfContentsData.TofCSecNumPos) subFmt.SectData.AccSectionData.TableOfContentsData.TofCSecNumPos = NullInt; - if (maccsec.TableOfContentsData.TofCSecTitlePos == saccsec.TableOfContentsData.TofCSecTitlePos) subFmt.SectData.AccSectionData.TableOfContentsData.TofCSecTitlePos = NullInt; - if (maccsec.TableOfContentsData.TofCSecTitleLen == saccsec.TableOfContentsData.TofCSecTitleLen) subFmt.SectData.AccSectionData.TableOfContentsData.TofCSecTitleLen = NullByte; - if (maccsec.TableOfContentsData.TofCPageNumPos == saccsec.TableOfContentsData.TofCPageNumPos) subFmt.SectData.AccSectionData.TableOfContentsData.TofCPageNumPos = NullInt; - if (maccsec.TableOfContentsData.TofCSpaceChar == saccsec.TableOfContentsData.TofCSpaceChar) subFmt.SectData.AccSectionData.TableOfContentsData.TofCSpaceChar = null; - if (maccsec.TableOfContentsData.TofCLineSpacing == saccsec.TableOfContentsData.TofCLineSpacing) subFmt.SectData.AccSectionData.TableOfContentsData.TofCLineSpacing = NullByte; - subFmt.SectData.AccSectionData.TableOfContentsData.Font = FixInheritedFont(saccsec.TableOfContentsData.Font, maccsec.TableOfContentsData.Font); // Phase 9 - subFmt.SectData.StepSectionData.StpSectLayData.VertStyle = FixInheritedFont(ssctlay.VertStyle, msctlay.VertStyle);// Phase 13 - - for (int i = 0; i < 10; i++) - { - if (mainFmt.SectData.MetaSectionData[i].SecNumPositionAdj == subFmt.SectData.MetaSectionData[i].SecNumPositionAdj) subFmt.SectData.MetaSectionData[i].SecNumPositionAdj = NullInt; - if (mainFmt.SectData.MetaSectionData[i].SecTitlePositionAdj == subFmt.SectData.MetaSectionData[i].SecTitlePositionAdj) subFmt.SectData.MetaSectionData[i].SecTitlePositionAdj = NullInt; - if (mainFmt.SectData.MetaSectionData[i].ColSByLevel == subFmt.SectData.MetaSectionData[i].ColSByLevel) subFmt.SectData.MetaSectionData[i].ColSByLevel = NullInt; - if (mainFmt.SectData.MetaSectionData[i].TofCPositionAdj == subFmt.SectData.MetaSectionData[i].TofCPositionAdj) subFmt.SectData.MetaSectionData[i].TofCPositionAdj = NullInt; - if (mainFmt.SectData.MetaSectionData[i].WidSAdjByLevel == subFmt.SectData.MetaSectionData[i].WidSAdjByLevel) subFmt.SectData.MetaSectionData[i].WidSAdjByLevel = NullInt; - } - - if (msctstp.NumberOfHighLevelSteps == ssctstp.NumberOfHighLevelSteps) subFmt.SectData.StepSectionData.NumberOfHighLevelSteps = NullInt; - - for (int i = 0; i < MAXBOXES + 1; i++) - { - if (mainFmt.BoxData[i].TxtRowAdj == subFmt.BoxData[i].TxtRowAdj) subFmt.BoxData[i].TxtRowAdj = (sbyte)NullByte; - if (mainFmt.BoxData[i].BXURC == subFmt.BoxData[i].BXURC) subFmt.BoxData[i].BXURC = null; - if (mainFmt.BoxData[i].BXHorz == subFmt.BoxData[i].BXHorz) subFmt.BoxData[i].BXHorz = null; - if (mainFmt.BoxData[i].BXULC == subFmt.BoxData[i].BXULC) subFmt.BoxData[i].BXULC = NullString; - if (mainFmt.BoxData[i].BXVert == subFmt.BoxData[i].BXVert) subFmt.BoxData[i].BXVert = null; - if (mainFmt.BoxData[i].BXMLS == subFmt.BoxData[i].BXMLS) subFmt.BoxData[i].BXMLS = null; - if (mainFmt.BoxData[i].BXMRS == subFmt.BoxData[i].BXMRS) subFmt.BoxData[i].BXMRS = null; - if (mainFmt.BoxData[i].BXLRC == subFmt.BoxData[i].BXLRC) subFmt.BoxData[i].BXLRC = null; - if (mainFmt.BoxData[i].BXLLC == subFmt.BoxData[i].BXLLC) subFmt.BoxData[i].BXLLC = null; - if (mainFmt.BoxData[i].BXMID == subFmt.BoxData[i].BXMID) subFmt.BoxData[i].BXMID = null; - if (mainFmt.BoxData[i].BXLHorz == subFmt.BoxData[i].BXLHorz) subFmt.BoxData[i].BXLHorz = null; - if (mainFmt.BoxData[i].BXUMID == subFmt.BoxData[i].BXUMID) subFmt.BoxData[i].BXUMID = null; - if (mainFmt.BoxData[i].BXLMID == subFmt.BoxData[i].BXLMID) subFmt.BoxData[i].BXLMID = null; - - } - - if (msctstp.NumberOfSubStepTypes == ssctstp.NumberOfSubStepTypes) subFmt.SectData.StepSectionData.NumberOfSubStepTypes = NullInt; - - if (mainFmt.SectData.AccSectionData.AutoContActSumSection == subFmt.SectData.AccSectionData.AutoContActSumSection) subFmt.SectData.AccSectionData.AutoContActSumSection = NullInt; - - if (msctstp.IdentB == ssctstp.IdentB) subFmt.SectData.StepSectionData.IdentB = null; - - //for (int i = 0; i < MAXSEQ; i++) - // if (msctstp.SeqTab[i] == ssctstp.SeqTab[i]) subFmt.SectData.StepSectionData.SeqTab[i]=null; - - // don't clear replace words. these would have to match exactly, because order matters when processing replace words & integrating the two lists when they are to be - // used is too complicated. - //for (int i = 0; i < MAXREPLACE; i++) - //{ - // if (mainFmt.SectData.ReplaceStrData[i].ReplaceWord == subFmt.SectData.ReplaceStrData[i].ReplaceWord) subFmt.SectData.ReplaceStrData[i].ReplaceWord = null; - // if (mainFmt.SectData.ReplaceStrData[i].ReplaceWith == subFmt.SectData.ReplaceStrData[i].ReplaceWith) subFmt.SectData.ReplaceStrData[i].ReplaceWith = null; - // // clear flags only if both replaceword & replacewith ended up getting cleared. - // if ((subFmt.SectData.ReplaceStrData[i].ReplaceWord == null) && (subFmt.SectData.ReplaceStrData[i].ReplaceWith == null)) subFmt.SectData.ReplaceStrData[i].Flag = null; - //} - - for (int i = 0; i < 10; i++) - { - if (mainFmt.PrintData.ProcDescrList[i].MatchProcNumber == subFmt.PrintData.ProcDescrList[i].MatchProcNumber) subFmt.PrintData.ProcDescrList[i].MatchProcNumber = null; - if (mainFmt.PrintData.ProcDescrList[i].ProcDescr1 == subFmt.PrintData.ProcDescrList[i].ProcDescr1) subFmt.PrintData.ProcDescrList[i].ProcDescr1 = null; - if (mainFmt.PrintData.ProcDescrList[i].ProcDescr2 == subFmt.PrintData.ProcDescrList[i].ProcDescr2) subFmt.PrintData.ProcDescrList[i].ProcDescr2 = null; - } - for (int i = 0; i < 5; i++) - if (mainFmt.PrintData.VersionIdText[i] == subFmt.PrintData.VersionIdText[i]) subFmt.PrintData.VersionIdText[i] = null; - - if (mainFmt.TransData.DelimiterForTransitionTitle == subFmt.TransData.DelimiterForTransitionTitle) subFmt.TransData.DelimiterForTransitionTitle = null; - if (mainFmt.TransData.StepSubstepDelimeter == subFmt.TransData.StepSubstepDelimeter) subFmt.TransData.StepSubstepDelimeter = null; - if (mainFmt.TransData.ThroughString == subFmt.TransData.ThroughString) subFmt.TransData.ThroughString = null; - if (mainFmt.TransData.SpecifiedSubstepsOnly != null && mainFmt.TransData.SpecifiedSubstepsOnly == subFmt.TransData.SpecifiedSubstepsOnly) subFmt.TransData.SpecifiedSubstepsOnly = "null"; - if (mainFmt.TransData.CapsTransitions != null && mainFmt.TransData.CapsTransitions == subFmt.TransData.CapsTransitions) subFmt.TransData.CapsTransitions = "null"; - if (mainFmt.TransData.CapTranStep != null && mainFmt.TransData.CapTranStep == subFmt.TransData.CapTranStep) subFmt.TransData.CapTranStep = "null"; - if (mainFmt.TransData.Underline != null && mainFmt.TransData.Underline == subFmt.TransData.Underline) subFmt.TransData.Underline = "null"; - if (mainFmt.TransData.TStepNoFlag != null && mainFmt.TransData.TStepNoFlag == subFmt.TransData.TStepNoFlag) subFmt.TransData.TStepNoFlag = "null"; - if (mainFmt.TransData.LowerCaseTranNumber != null && mainFmt.TransData.LowerCaseTranNumber == subFmt.TransData.LowerCaseTranNumber) subFmt.TransData.LowerCaseTranNumber = "null"; - if (mainFmt.TransData.UpcaseTranAnd != null && mainFmt.TransData.UpcaseTranAnd == subFmt.TransData.UpcaseTranAnd) subFmt.TransData.UpcaseTranAnd = "null"; - if (mainFmt.TransData.SuppressAndInTran != null && mainFmt.TransData.SuppressAndInTran == subFmt.TransData.SuppressAndInTran) subFmt.TransData.SuppressAndInTran = "null"; - if (mainFmt.TransData.Cap1stCharTrans != null && mainFmt.TransData.Cap1stCharTrans == subFmt.TransData.Cap1stCharTrans) subFmt.TransData.Cap1stCharTrans = "null"; - if (mainFmt.TransData.UseTransitionModifier != null && mainFmt.TransData.UseTransitionModifier == subFmt.TransData.UseTransitionModifier) subFmt.TransData.UseTransitionModifier = "null"; - if (mainFmt.TransData.UseSpecificTransitionModifier != null && mainFmt.TransData.UseSpecificTransitionModifier == subFmt.TransData.UseSpecificTransitionModifier) subFmt.TransData.UseSpecificTransitionModifier = "null"; - if (mainFmt.TransData.UseSpecificPageNo != null && mainFmt.TransData.UseSpecificPageNo == subFmt.TransData.UseSpecificPageNo) subFmt.TransData.UseSpecificPageNo = "null"; - if (mainFmt.TransData.UseSecTitles != null && mainFmt.TransData.UseSecTitles == subFmt.TransData.UseSecTitles) subFmt.TransData.UseSecTitles = "null"; - if (mainFmt.TransData.HardSpTranProcNumb != null && mainFmt.TransData.HardSpTranProcNumb == subFmt.TransData.HardSpTranProcNumb) subFmt.TransData.HardSpTranProcNumb = "null"; - if (mainFmt.TransData.XchngTranSpForHard != null && mainFmt.TransData.XchngTranSpForHard == subFmt.TransData.XchngTranSpForHard) subFmt.TransData.XchngTranSpForHard = "null"; - if (mainFmt.TransData.AbsoluteTransitionUpdate != null && mainFmt.TransData.AbsoluteTransitionUpdate == subFmt.TransData.AbsoluteTransitionUpdate) subFmt.TransData.AbsoluteTransitionUpdate = "null"; - if (mainFmt.TransData.LowerCaseStepInTran != null && mainFmt.TransData.LowerCaseStepInTran == subFmt.TransData.LowerCaseStepInTran) subFmt.TransData.LowerCaseStepInTran = "null"; - if (mainFmt.TransData.DoSectionTransitions != null && mainFmt.TransData.DoSectionTransitions == subFmt.TransData.DoSectionTransitions) subFmt.TransData.DoSectionTransitions = "null"; - - if (mainFmt.ROData.AllUnits != null && mainFmt.ROData.AllUnits == subFmt.ROData.AllUnits) subFmt.ROData.AllUnits = "null"; - if (mainFmt.ROData.UpRoAftrDash != null && mainFmt.ROData.UpRoAftrDash == subFmt.ROData.UpRoAftrDash) subFmt.ROData.UpRoAftrDash = "null"; - if (mainFmt.ROData.UpcaseAllRoUnits != null && mainFmt.ROData.UpcaseAllRoUnits == subFmt.ROData.UpcaseAllRoUnits) subFmt.ROData.UpcaseAllRoUnits = "null"; - if (mainFmt.ROData.CapHighRo != null && mainFmt.ROData.CapHighRo == subFmt.ROData.CapHighRo) subFmt.ROData.CapHighRo = "null"; - if (mainFmt.ROData.CapRoIfLastLower != null && mainFmt.ROData.CapRoIfLastLower == subFmt.ROData.CapRoIfLastLower) subFmt.ROData.CapRoIfLastLower = "null"; - if (mainFmt.ROData.UpRoIfPrevUpper != null && mainFmt.ROData.UpRoIfPrevUpper == subFmt.ROData.UpRoIfPrevUpper) subFmt.ROData.UpRoIfPrevUpper = "null"; - if (mainFmt.ROData.UnderlineRo != null && mainFmt.ROData.UnderlineRo == subFmt.ROData.UnderlineRo) subFmt.ROData.UnderlineRo = "null"; - if (mainFmt.ROData.CapFirstLetterInHighRO != null && mainFmt.ROData.CapFirstLetterInHighRO == subFmt.ROData.CapFirstLetterInHighRO) subFmt.ROData.CapFirstLetterInHighRO = "null"; - - if (mainFmt.ProcData.ProcedureSuffixFlags == subFmt.ProcData.ProcedureSuffixFlags) subFmt.ProcData.ProcedureSuffixFlags = null; - for (int i = 0; i < 10; i++) - if (mainFmt.ProcData.ProcedureSuffix[i] == subFmt.ProcData.ProcedureSuffix[i]) subFmt.ProcData.ProcedureSuffix[i] = null; - - if (mainFmt.PrintData.TopOfPageThing == subFmt.PrintData.TopOfPageThing) subFmt.PrintData.TopOfPageThing = null; - - //for (int i=0; i<10; i++) - // if (msctstp.TextType[i] == ssctstp.TextType[i]) subFmt.SectData.StepSectionData.TextType[i]=null; - - //for (int i=0; i dicSteps = BuildStepDic(stpdata); - Dictionary dicParents = BuildParentDic(stpdata, dicSteps); - int startIndx = fname.ToUpper() == "GEN.FMT" && !baseDone? 1 : 0; - baseDone = true; - for (int i = startIndx; i < MAXSTEPS; i++) - //for (int i = 0; i < MAXSTEPS; i++) - { - FixInheritance(ref stpdata[i], dicParents); - // Since 'Step' is a structure, the StepParentList (dictionary) needs to be updated each time - // the stpdata is updated. Each instance of Step, because it is a structure, will be a separate copy - // so the dictionary had a distinct copy of the step's format data from what gets passed in by reference. - for (int j = 0; j < MAXSTEPS; j++) - { - if (stpdata[i].Type == stpdata[j].ParentType) StepParentList[0][stpdata[j].Type] = stpdata[i]; - } - } - } - public const string NullString = "-12345"; - public const int NullInt = -12345; - public const byte NullByte = 123; - - private void FixInheritance(ref Step step, Dictionary dicParents) - { - if (CheckInheritedStr(new StepPartStr(StepPartReadOnly), step, dicParents)) step.ReadOnly = null; - if (CheckInheritedStr(new StepPartStr(StepPartInactive), step, dicParents)) step.Inactive = null; - if (CheckInheritedStr(new StepPartStr(StepPartColOverride), step, dicParents)) step.ColOverride = NullString; - if (CheckInheritedStr(new StepPartStr(StepPartColOverrideEdit), step, dicParents)) step.ColOverrideEdit = NullString; - if (CheckInheritedStr(new StepPartStr(StepPartWidthOverride), step, dicParents)) step.WidthOverride = NullString; - if (CheckInheritedStr(new StepPartStr(StepPartWidthOverrideEdit), step, dicParents)) step.WidthOverrideEdit = NullString; - if (CheckInheritedStr(new StepPartStr(StepPartSep), step, dicParents)) step.Sep = null; - if (CheckInheritedStr(new StepPartStr(StepPartPrefix), step, dicParents)) step.Prefix = null; - if (CheckInheritedStr(new StepPartStr(StepPartSuffix), step, dicParents)) step.Suffix = null; - if (CheckInheritedStr(new StepPartStr(StepPartUnderlineTheseChar), step, dicParents)) step.UnderlineTheseChar = null; - if (CheckInheritedStr(new StepPartStr(StepPartVertPos), step, dicParents)) step.VertPos = null; - // substructures - Font - if (step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontFamily), step, dicParents)) - step.Font.FontFamily = null; - if (step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontStyle), step, dicParents)) - step.Font.FontStyle = null; - if (step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontSize), step, dicParents)) - step.Font.FontSize = null; - bool skipCPIForCalvertAlarmTypeHigh5 = false; - if (step.Type.ToUpper() == "HIGH5" && fmtName.ToUpper() == "BGEALN") skipCPIForCalvertAlarmTypeHigh5 = true; - if (!skipCPIForCalvertAlarmTypeHigh5 && step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontCPI), step, dicParents)) - step.Font.CPI = null; - if (step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontJustify), step, dicParents)) - step.Font.FontJustify = null; - if (step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontCheckOff), step, dicParents)) - step.Font.FontCheckOff = null; - if ((step.Font != null) && (step.Font.FontFamily == null) && (step.Font.FontStyle == null) && (step.Font.FontSize == null) && (step.Font.FontJustify == null) && (step.Font.FontCheckOff == null) && (step.Font.CPI == null)) - step.Font = null; - // substructure - StepLayoutData - if (CheckInheritedStr(new StepPartStr(StepPartLayoutForeColor), step, dicParents)) step.StepLayoutData.ForeColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutBackColor), step, dicParents)) step.StepLayoutData.BackColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutSTExtraSpace), step, dicParents)) - { - Console.WriteLine("{0}", fmtName); - step.StepLayoutData.STExtraSpace = NullString; - } - if (CheckInheritedStr(new StepPartStr(StepPartLayoutSTBoxindex), step, dicParents)) step.StepLayoutData.STBoxindex = NullString; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutEveryNLines), step, dicParents)) step.StepLayoutData.EveryNLines = NullString; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutSpaceBefore), step, dicParents)) step.StepLayoutData.SpaceBefore = NullString; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutSpaceAfter), step, dicParents)) step.StepLayoutData.SpaceAfter = NullString; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutAlwaysUpperCase), step, dicParents)) step.StepLayoutData.AlwaysUpperCase = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutPageBreakAtTypeChange), step, dicParents)) step.StepLayoutData.PageBreakAtTypeChange = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutAlignWithParentTab), step, dicParents)) step.StepLayoutData.AlignWithParentTab = null; - // substructure - StepEditData - if (CheckInheritedStr(new StepPartStr(StepPartEditForeColor), step, dicParents)) step.StepEditData.ForeColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditBackColor), step, dicParents)) step.StepEditData.BackColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditAcTable), step, dicParents)) step.StepEditData.AcTable = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditSearchable), step, dicParents)) step.StepEditData.Searchable = null; - // substructure - TypeMenu - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeInMenu), step, dicParents)) step.StepEditData.TypeMenu.InMenu = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeRnoInMenu), step, dicParents)) step.StepEditData.TypeMenu.RnoInMenu = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeMenuItem), step, dicParents)) step.StepEditData.TypeMenu.MenuItem = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeRnoMenuItem), step, dicParents)) step.StepEditData.TypeMenu.RnoMenuItem = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeNoChg_Reason), step, dicParents)) step.StepEditData.TypeMenu.NoChgReason = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeAlternateNameList), step, dicParents)) step.StepEditData.TypeMenu.AlternateNameList = null; - // substructure - StepPrintData - if (CheckInheritedStr(new StepPartStr(StepPartPrintForeColor), step, dicParents)) step.StepPrintData.ForeColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartPrintBackColor), step, dicParents)) step.StepPrintData.BackColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartPrintPosAdjust), step, dicParents)) step.StepPrintData.PosAdjust = NullString; - if (CheckInheritedStr(new StepPartStr(StepPartPrintHLSLength), step, dicParents)) step.StepPrintData.HLSLength = NullString; - - // substructure - TabData - - //RHM/KBR added this - not sure: if (mstp.TabData.IdentEdit == sstp.TabData.IdentEdit) subFmt.StepData[i].TabData.IdentEdit = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabIdentEdit), step, dicParents)) step.TabData.IdentEdit = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabIdent), step, dicParents)) step.TabData.Ident = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabIdentAltPrint), step, dicParents)) step.TabData.IdentAltPrint = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabRNOIdentEdit), step, dicParents)) step.TabData.RNOIdentEdit = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabRNOIdent), step, dicParents)) step.TabData.RNOIdent = null; - //if (CheckInheritedStr(new StepPartStr(StepPartTabIdentEditWid), step, dicParents)) step.TabData.IdentEditWid = NullString; - if (CheckInheritedStr(new StepPartStr(StepPartTabIdentWid), step, dicParents)) step.TabData.IdentWid = NullString; - //if (CheckInheritedStr(new StepPartStr(StepPartTabRNOIdentEditWid), step, dicParents)) step.TabData.RNOIdentEditWid = NullString; - //if (CheckInheritedStr(new StepPartStr(StepPartTabRNOIdentWid), step, dicParents)) step.TabData.RNOIdentWid = NullString; - if (CheckInheritedStr(new StepPartStr(StepPartTabJustify), step, dicParents)) step.TabData.Justify = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabTrim), step, dicParents)) step.TabData.NoTrim = null; - //if (CheckInheritedStr(new StepPartStr(StepPartTabCheckOff), step, dicParents)) step.TabData.CheckOff = null; - - // substructures - Tab - Font - if (step.TabData.Font != null && CheckInheritedStr(new StepPartStr(StepPartTabFontFamily), step, dicParents)) - step.TabData.Font.FontFamily = null; - if (step.TabData.Font != null && CheckInheritedStr(new StepPartStr(StepPartTabFontStyle), step, dicParents)) - step.TabData.Font.FontStyle = null; - if (step.TabData.Font != null && CheckInheritedStr(new StepPartStr(StepPartTabFontSize), step, dicParents)) - step.TabData.Font.FontSize = null; - if (step.TabData.Font != null && CheckInheritedStr(new StepPartStr(StepPartTabFontCPI), step, dicParents)) - step.TabData.Font.CPI = null; - if (step.TabData.Font != null && CheckInheritedStr(new StepPartStr(StepPartTabJustify), step, dicParents)) - step.TabData.Font.FontJustify = null; - if (step.TabData.Font != null) // && CheckInheritedStr(new StepPartStr(StepPartTabCheckOff), step, dicParents)) - step.TabData.Font.FontCheckOff = null; - if ((step.TabData.Font != null) && (step.TabData.Font.FontFamily == null) && (step.TabData.Font.FontStyle == null) && (step.TabData.Font.FontSize == null) && (step.TabData.Font.FontJustify == null) && (step.TabData.Font.CPI == null)) - step.TabData.Font = null; - - // All macro list items must be identical from step to inherited parent in order to removeit. - if (step.TabData.MacroList != null) - { - if (CheckInheritedStr(new StepPartStr(StepPartTabMacroListName), step, dicParents) && - CheckInheritedStr(new StepPartStr(StepPartTabMacroListMacro), step, dicParents) && - CheckInheritedStr(new StepPartStr(StepPartTabMacroListGrouping), step, dicParents) && - CheckInheritedStr(new StepPartStr(StepPartTabMacroListLocWithXOff), step, dicParents) && - CheckInheritedStr(new StepPartStr(StepPartTabMacroListNotInRNO), step, dicParents)) - { - step.TabData.MacroList[0].Macro = null; - step.TabData.MacroList[0].Grouping = NullString; - step.TabData.MacroList[0].NotInRNO = null; - step.TabData.MacroList[0].LocWithXOff = null; - } - } - - // flags: - if (CheckInheritedStr(new StepPartStr(StepPartDoubleSpace), step, dicParents)) step.DoubleSpace = null; - if (CheckInheritedStr(new StepPartStr(StepPartEnhancedStepNumFromPrev), step, dicParents)) step.EnhancedStepNumFromPrev = null; - if (CheckInheritedStr(new StepPartStr(StepPartUseSmartTemplate), step, dicParents)) step.UseSmartTemplate = null; - if (CheckInheritedStr(new StepPartStr(StepPartAlwaysUseExtraLines), step, dicParents)) step.AlwaysUseExtraLines = null; - if (CheckInheritedStr(new StepPartStr(StepPartSeparateBox), step, dicParents)) step.SeparateBox = null; - if (CheckInheritedStr(new StepPartStr(StepPartSeparateBoxCautions), step, dicParents)) step.SeparateBoxCautions = null; - if (CheckInheritedStr(new StepPartStr(StepPartSpaceDouble), step, dicParents)) step.SpaceDouble = null; - if (CheckInheritedStr(new StepPartStr(StepPartReduceLineAfter), step, dicParents)) step.ReduceLineAfter = null; - if (CheckInheritedStr(new StepPartStr(StepPartSameLevel), step, dicParents)) step.SameLevel = null; - if (CheckInheritedStr(new StepPartStr(StepPartBoldHighLevel), step, dicParents)) step.BoldHighLevel = null; - if (CheckInheritedStr(new StepPartStr(StepPartOneLineBeforeTab), step, dicParents)) step.OneLineBeforeTab = null; - if (CheckInheritedStr(new StepPartStr(StepPartBoxIt), step, dicParents)) step.BoxIt = null; - if (CheckInheritedStr(new StepPartStr(StepPartBoxed), step, dicParents)) step.Boxed = null; - if (CheckInheritedStr(new StepPartStr(StepPartXLines_StepFix), step, dicParents)) step.XLines_StepFix = null; - if (CheckInheritedStr(new StepPartStr(StepPartRebox), step, dicParents)) step.Rebox = null; - if (CheckInheritedStr(new StepPartStr(StepPartSpcHdr), step, dicParents)) step.SpcHdr = null; - if (CheckInheritedStr(new StepPartStr(StepPartContinueOnly), step, dicParents)) step.ContinueOnly = null; - if (CheckInheritedStr(new StepPartStr(StepPartSepAfterAER), step, dicParents)) step.SepAfterAER = null; - if (CheckInheritedStr(new StepPartStr(StepPartUseAlternateStepBox), step, dicParents)) step.UseAlternateStepBox = null; - if (CheckInheritedStr(new StepPartStr(StepPartUnderlineAfterDashSpace), step, dicParents)) step.UnderlineAfterDashSpace = null; - if (CheckInheritedStr(new StepPartStr(StepPartSpaceIn), step, dicParents)) step.SpaceIn = null; - if (CheckInheritedStr(new StepPartStr(StepPartPageBreakOnStep), step, dicParents)) step.PageBreakOnStep = null; - if (CheckInheritedStr(new StepPartStr(StepPartUseOldTemplate), step, dicParents)) step.UseOldTemplate = null; - if (CheckInheritedStr(new StepPartStr(StepPartAlignNullTabWSectHead), step, dicParents)) step.AlignNullTabWSectHead = null; - if (CheckInheritedStr(new StepPartStr(StepPartAlignHLSTabWithSectOvride), step, dicParents)) step.AlignHLSTabWithSectOvride = null; - if (CheckInheritedStr(new StepPartStr(StepPartTextSubFollowsTextStyle), step, dicParents)) step.TextSubFollowsTextStyle = null; - if (CheckInheritedStr(new StepPartStr(StepPartTreatAsSequential), step, dicParents)) step.TreatAsSequential = null; - if (CheckInheritedStr(new StepPartStr(StepPartMatchUpRNO), step, dicParents)) step.MatchUpRNO = null; - if (CheckInheritedStr(new StepPartStr(StepPartInPageList), step, dicParents)) step.InPageList = null; - if (CheckInheritedStr(new StepPartStr(StepPartCenterOneLineOnly), step, dicParents)) step.CenterOneLineOnly = null; - if (CheckInheritedStr(new StepPartStr(StepPartSubTableGetsUp1Level), step, dicParents)) step.SubTableGetsUp1Level = null; - if (CheckInheritedStr(new StepPartStr(StepPartRemember), step, dicParents)) step.Remember = null; - if (CheckInheritedStr(new StepPartStr(StepPartCenterOneLineAdjust), step, dicParents)) step.CenterOneLineAdjust = null; - if (CheckInheritedStr(new StepPartStr(StepPartBreak), step, dicParents)) step.Break = null; - if (CheckInheritedStr(new StepPartStr(StepPartBreakEquipmentList), step, dicParents)) step.BreakEquipmentList = null; - if (CheckInheritedStr(new StepPartStr(StepPartBreakCautionsNotesOnSubstps), step, dicParents)) step.BreakCautionsNotesOnSubstps = null; - if (CheckInheritedStr(new StepPartStr(StepPartCenterTextWithinWidth), step, dicParents)) step.CenterTextWithinWidth = null; - if (CheckInheritedStr(new StepPartStr(StepPartNewlineAfter), step, dicParents)) step.NewlineAfter = null; - if (CheckInheritedStr(new StepPartStr(StepPartStartLineWithDash), step, dicParents)) step.StartLineWithDash = null; - if (CheckInheritedStr(new StepPartStr(StepPartBlankLineBeforeSubStep), step, dicParents)) step.BlankLineBeforeSubStep = null; - if (CheckInheritedStr(new StepPartStr(StepPartAlwaysTab), step, dicParents)) step.AlwaysTab = null; - if (CheckInheritedStr(new StepPartStr(StepPartMixCautionsAndNotes), step, dicParents)) step.MixCautionsAndNotes = null; - if (CheckInheritedStr(new StepPartStr(StepPartNumberHighLevel), step, dicParents)) step.NumberHighLevel = null; - if (CheckInheritedStr(new StepPartStr(StepPartNumberWithLevel), step, dicParents)) step.NumberWithLevel = null; - if (CheckInheritedStr(new StepPartStr(StepPartOffsetTab), step, dicParents)) step.OffsetTab = null; - if (CheckInheritedStr(new StepPartStr(StepPartAdjHighLevelTab), step, dicParents)) step.AdjHighLevelTab = null; - if (CheckInheritedStr(new StepPartStr(StepPartChildIndent), step, dicParents)) step.ChildIndent = null; - if (CheckInheritedStr(new StepPartStr(StepPartLeftJustifyBorderless), step, dicParents)) step.LeftJustifyBorderless = null; - if (CheckInheritedStr(new StepPartStr(StepPartStepNumIfOnlyOne), step, dicParents)) step.StepNumIfOnlyOne = null; - if (CheckInheritedStr(new StepPartStr(StepPartLJTabs), step, dicParents)) step.LJTabs = null; - if (CheckInheritedStr(new StepPartStr(StepPartNumberSubs), step, dicParents)) step.NumberSubs = null; - if (CheckInheritedStr(new StepPartStr(StepPartBullet), step, dicParents)) step.BulletOnContinuous = null; - if (CheckInheritedStr(new StepPartStr(StepPartStepNumberForHighLevel), step, dicParents)) step.StepNumberForHighLevel = null; - if (CheckInheritedStr(new StepPartStr(StepPartSameRowAsParent), step, dicParents)) step.SameRowAsParent = null; - if (CheckInheritedStr(new StepPartStr(StepPartCheckoffSameAsParent), step, dicParents)) step.CheckoffSameAsParent = null; - if (CheckInheritedStr(new StepPartStr(StepPartAtLeastTwoDigits), step, dicParents)) step.AtLeastTwoDigits = null; - if (CheckInheritedStr(new StepPartStr(StepPartUseInAcTable), step, dicParents)) step.UseInAcTable = null; - if (CheckInheritedStr(new StepPartStr(StepPartNumber), step, dicParents)) step.Number = null; - if (CheckInheritedStr(new StepPartStr(StepPartThreeBlanksAbove), step, dicParents)) step.ThreeBlanksAbove = null; - if (CheckInheritedStr(new StepPartStr(StepPartCheckOffs), step, dicParents)) step.CheckOffs = null; - if (CheckInheritedStr(new StepPartStr(StepPartQuoted), step, dicParents)) step.Quoted = null; - - } - - private bool CheckInheritedStr(StepPartStr stepPartStr, Step step, Dictionary dicParents) - { - string inheritedValue = GetStepInherited(stepPartStr, step.Type, 0); - string stepValue = stepPartStr(step); - return inheritedValue == stepValue; - //Step parent = step; - //while ((stepPartStr(parent) == null) || (step.Type == parent.Type)) - //{ - // if (!dicParents.ContainsKey(parent.Type)) - // { - // if (BaseFormat.StepData != null) - // { - // Step mstp = BaseFormat.StepData[step.Index]; - // if (stepPartStr(mstp) == stepPartStr(step)) return true; - // } - // return false;// No non-null parent value found - // } - // parent = dicParents[parent.Type]; - // if (stepPartStr(step) == stepPartStr(parent)) - // return true; // step value same as parent. - //} - //return false; // parent value different from step value - } - - private string GetStepInherited(StepPartStr stepPartStr, string stepType, int level) - { - string typ = stepType; - // spin through the step inheritance looking for a value - while (StepParentList[level].ContainsKey(typ)) - { - Step parent = StepParentList[level][typ]; - string parentVal = stepPartStr(parent); - if (parentVal != null && parentVal != "-12345") return parentVal; - typ = parent.Type; - } - // no more parent formats to look at: - if (level >= (StepParentList.Count - 1)) return null; - Step stp = StepList[level + 1][stepType]; - string stpVal = stepPartStr(stp); - if (stpVal != null) return stpVal; - return GetStepInherited(stepPartStr, stepType, level + 1); - } - private Dictionary BuildStepDic(Step[] stpdata) - { - Dictionary dicSteps = new Dictionary(); - foreach (Step stp in stpdata) dicSteps[stp.Type] = stp; - return dicSteps; - } - private Dictionary BuildParentDic(Step[] stpdata, Dictionary dicSteps) - { - Dictionary dicParent = new Dictionary(); - foreach (Step stp in stpdata) - if (stp.ParentType != "") dicParent[stp.Type] = dicSteps[stp.ParentType]; - return dicParent; - } - #endregion - private void FixInactiveForHigh(ref FormatData fmtdata) // set all the HighLevelSteps beyond - { - Step[] stpdata = fmtdata.StepData; - int numHigh = fmtdata.SectData.StepSectionData.NumberOfHighLevelSteps; - if (numHigh == 0) return; - if (numHigh < HighTypeValue.Length) // need to set steps to inactive beyond numHigh - { - for (int i = numHigh; i < HighTypeValue.Length; i++) - { - string inactiveType = HighTypeValue[i]; - for (int j = 0; j < stpdata.Length; j++) - { - if (stpdata[j].Type == inactiveType) - stpdata[j].Inactive = "True"; - } - } - } - } - private void FixInactiveForSubStep(ref FormatData fmtdata) - { - Step[] stpdata = fmtdata.StepData; - int numSub = fmtdata.SectData.StepSectionData.NumberOfSubStepTypes; - if (numSub == 0) return; - if (numSub < SubStepValue.Length) // need to set steps to inactive beyond numHigh - { - for (int i = numSub; i < SubStepValue.Length; i++) - { - string inactiveType = SubStepValue[i]; - for (int j = 0; j < stpdata.Length; j++) - { - if (stpdata[j].Type == inactiveType) - stpdata[j].Inactive = "True"; - } - } - } - } - private void FixInactiveForText(ref FormatData fmtdata) - { - Step[] stpdata = fmtdata.StepData; - if ((_AlternateIndex ?? "") == "") return; - string mask = "," + _AlternateIndex + ","; - foreach (string textType in TextTypes) - { - if (!mask.Contains("," + textType + ",")) - { - for (int j = 0; j < stpdata.Length; j++) - { - if (stpdata[j].Type == textType) - stpdata[j].Inactive = "True"; - } - } - } - } - private string[] HighTypeValue ={ "High", "Continuous", "Immediate", "LossOfAC", "High5" }; - private string[] SubStepValue = {"Substep","And","Or","EquipmentList","EquipmentWBlank", - "ExplicitAnd","ImplicitOr","Paragraph","EquipmentOpt","EquipmentOptWBlank","ContAcSequential", - "ContAcAnd","ContAcOr","ContAcParagraph","TitleWithTextRight","TitleWithTextBelow"}; - private string[] TextTypes = {"Caution","Caution1","Caution2","Caution3","Caution4", - "Note","Note1","Note2","Note3","Note4","Note5"}; - - private bool RHMDebugPause(string fname, string lookfor) - { - return lookfor.Contains("." + fname.Substring(0, fname.LastIndexOf(".")).ToLower() + "."); - } - } - -} diff --git a/PROMS/fmtxml/FmtFileToXml.cs.bak b/PROMS/fmtxml/FmtFileToXml.cs.bak deleted file mode 100644 index 41d8bfad..00000000 --- a/PROMS/fmtxml/FmtFileToXml.cs.bak +++ /dev/null @@ -1,5579 +0,0 @@ -using System; -using System.Windows.Forms; -using System.IO; -using System.Text; -using System.Collections; -using System.Collections.Generic; -using System.Text.RegularExpressions; -using System.Runtime.Serialization.Formatters.Binary; -using System.Xml.Xsl; -using System.Xml; -using System.Xml.Serialization; -using System.ComponentModel; - -#region StructDefinitions -// top of the format. - -// convert ALL rows & columns to points, i.e. a point = 1/72 inch -// the row is set based on 6 rows per inch, i.e. row = input * 72/6, row = input * 12 -// the column is 12 char/inch, i.e. col = input * 72/12, col = input * 6 -[Serializable] -public struct FormatData -{ - public string Name; - public string PurchaseOptions; - public string TPL; - //public XtraFlgs XtraFlags; - public VE_Font FontData; - public Symbol[] Symbols; - public GeneralEditor EditData; - public GeneralPrint PrintData; - public Procedure ProcData; - public Section SectData; - public Step[] StepData; - public Box[] BoxData; - public Trans TransData; - public RO ROData; -} -[Flags] -public enum E_PurchaseOptions : uint -{ - ApproveOne = 0x0001, - AccPagination = 0x0002, - LibMaint = 0x0004, - Transfer = 0x0008, - STrees = 0x0010, - DateChgSumRpt = 0x0020, - SetpointUsage = 0x0040, - Replace = 0x0080, - FloppyTransfer = 0x0100, - ApproveGenericBack = 0x0200, - DistributeApproved = 0x0400, - OutsideTransitions = 0x0800, - EnhancedBackgrounds = 0x1000, - EnhancedDeviations = 0x2000, - AutoTableOfContents = 0x4000, - AutoPlacekeeper = 0x8000 -} -[Serializable] -public struct XtraFlgs -{ -#region xtraflags0 - public string DoubleRNOSpace; // from xtra_flag array 0 - public string MixCautionsAndNotes; - // public string MULTILEVELCAUTION; // not migrated used by: ano/bge/sum - public string AlwaysUseExtralines; - public string AlwaysTabNote; - public string AlwaysTabCaution; - // public string CHECKOFFEQUIPMENT; // not used by any format - public string SpecialPageBreakFlag; - // public string INSYNC; // not migraged used by: genplan & scedev - public string DontPaginateOnFirstSubStep; - // public string PRINTONESTEPPERPAGE; // not migrated used by: anos & genplan - public string ImperfectStructure; - public string DontUseHalfLines; - public string FortranFormatNumbers; - public string AllUnits; - public string CapsTransitions; -#endregion -#region xtraflags1 - public string CapTranStep; // from xtra_flag array 1 - // public string BOLDTRANSITIONS; // not migraged used by: ano1 & sum - public string TSTepNoFlag; - public string LowerCaseTranNumber; - //public string UNDERLINESTEPNUMBER // not migraged used by: cpla - public string CondensedChangeBar; - public string DoRevDate; - public string SeparateBox; - public string NumberHighLevelRNO; - // public string STUPIDBLANKRNONUMBERING; //not migrated used by: lpl - // public string BULLETINSTEADOFNUMBERRNO //not migrated used by: sce - // public string BIZZAREINDENTSAVE //not migrated used by: sce - public string AlternateFoldoutPages; - // public string ONLYEXTERNALBOLD; // not migrated pac & sce - //public string DONTSPLITTHESTEPATIF // not migrated used by: sce, vnp, vpe - public string DontTryToFillHalfOfPage; -#endregion -#region xtraflags2 - public string DontCapitalizeTitle; // from xtra_flag array 2 - // public string MOVEPARENSTOTOKEN // not migrated used by: scedev - public string NoSpaceDoubleRNO; - //public string SECTIONTITLES; // not used - public string DontOffsetTab; - public string UpSetpntAftrDash; - public string LowerCaseRevnum; - public string DoNotCompressSteps; - public string ReduceLineAfterNoteAndCaut; - public string RNOSameLevel; - //public string USENOTECAUTIONSEPARATOR; // not migrated: used in genplan - //public string TRUNCATEPROCNMAFTER1STSPACE // not migrated: used in paca & sce - //public string EXTRALINEBEFOREANDAFTERCAUT1 // not migrated: used in mya - public string BoldHighLevelRNO; - public string OneLineBeforeNoteCautionTab; - public string ContinuousChangeBars; -#endregion -#region xtraflags3 // from xtra_flag array 3 - // public string DONTDOLINEAFTERENDMESS // not migrated: used in ano1 - // public string ENDAFTERBOXEDSTEP // not migrated: used in ano1 - // public string CheckOffOnAllSteps; // not migrated - NOT USED - // public string SPECIALCHANGEBARID // not migrated: used in sce - // public string STEPTABBEFORENOTEANDSTEP // not migrated: used in ano1 - public string DontBoxAC; - //public string OKTOSEPARATESTEPANDTABLE; // no supporting code - public string UseTopContinueMessageAtEnd; - // public string ONLYUSEONELINEFORTOPOFPAGE; // not used - // public string ARROWONTRANS; // not migrated: used in mya - // public string PROCEEDMESS; // not migrated: used in mya - // public string UP1INDENTFOROPTEQUIPLIST; // not migrated: used in mya - // public string UPCASETHETRANSITIONSUBSTEPONLY; // not migrated: used in ano1, ano2 - public string UpcaseTranAnd; - public string UpcaseAllSetpointUnits; - // public string OBSERVENOTECAUTIONTRAN; // not used -#endregion -#region xtraflags4 - public string Dev_Format; // from xtra_flag array 4 - // public string UPURS; // not migrated: used in yae - public string DontDoSTExtraAtTop; - public string Xlines_StepFix; - public string ReBoxCautNote; - public string IMMStepSpcHdr; - // public string GENLESSONPLAN; // not migrated: used in genplan - public string FloatingContinueMessage; - // public string STATREESONACCPAGE; // not migrated: used in status tress (lots of formats) - public string AbsoluteFixedChangeColumn; - // public string QUESTIONTRANSSTEP; // not migrated: used in sce - public string LJBorderlessTable; - public string SuppressAndInTran; - public string CapHighSetpnt; - public string CapFirstLetterInHighSP; // used in fpl - public string CapsPIFLastLower; -#endregion -#region xtraflags5 - public string AlternateFloatingFoldout; // from xtra_flag array 5 - public string WrapSameAsEdit; - public string KeepStepsOnPage; - public string SpecifiedSubstepsOnly; - public string ThreeBlanksAboveNotesCautions; - // public string DONTADDUNITTOREV // not migrated: used in paca - public string ImperfectSubstep; - public string DontBreakOnSections; - public string NoStepNumIfOnlyOneStep; - public string ShowSectionTitles; - public string LJTabs; - public string DontNumberRNOSubs; - // public string ALIGNNOTECAUTWTAB // not used - // public string RNOCONTINUESTEP // not migrated: used in sum - public string DropCheckOff; - public string NoCheckOffsInRNO; -#endregion -#region xtraflags6 - // from xtra_flag array 6 - public string ChgBarMessageFromEdit; - public string ChangeBarToRNOSep; - // public string SMALLACBOX // not migrated: used in lpl - public string ChangeStyleForEverySection; - public string SectionLevelFoldouts; - public string BoxContinousActions; - public string DoSectionTrans; - // public string DONTUSESECNUMBERS // not used - public string UpSpIfPrevUpper; - public string ContinueSectionHeader; - public string GlobalProcInfo; - public string CompressHPSub; - public string BulletOnContinuous; - public string CancelSecTitlesOnS2; - public string NoEndForSingle; - public string UseMetaSections; -#endregion -#region xtraflags7 - public string RNOContinueOnly; // from xtra_flag array 7 - public string Cap1stCharTrans; - public string DontPaginateOnFirstSubstep3X; - public string RNOSepAfterAER; - public string RevDateWithForwardSlash; - // public string UPSETPNTAFTRCAPS // not migrated: used in sum - public string UseAlternateStepBox; - public string CancelSecTitlesOnS1; - public string SpecialStepsFoldout; - public string UnderlineAfterDashSpace; - public string NoSpaceInNoteOrCaution; - public string UseXtraRevNumber; - public string UnderlineSetpoints; - public string DoSectionTransTypeB; - public string PaginateOnLowerStepLevel; - public string UseTransitionModifier; -#endregion -#region xtraflags8 - public string CustomSpacing; // from xtra_flag array 8 - public string EnhancedShortFormDev; - // public string NOHIGHLEVELREADONLY; // no supporting code - // public string NORNOREADONLY // not used - public string PageBreakOnHighLevelStep; - // public string CHANGEONLYGROUPEDTYPES // not used - public string PageBreakOnCautions; - public string PageBreakOnNotes; - public string AlignNullTabWSectHead; - public string DontUseSecTitles; - public string TextSubFollowsTextStyle; - public string TranProcTitleInParen; - public string HardSpTranProcNumb; - public string TreatAndOrAsSequential; - public string DontSplitStepInPrntStep; - public string LineAboveUnderSection; -#endregion -#region xtraflags9 - // public string REMOVEREDUNDANTSEPERATORS // from xtra_flag array 9 // not used - // public string UNINDENTTABSANDSEPERATORS // not migrated: used in bgeal bgealn bgevl - public string PicaIgnoreFiveSixths; - public string SpaceFoRNOSecNumb; - public string NonEditableSteps; - public string BoxedSubsteps; - public string DontNumberHighLevelSteps; - // public string ASTERISKONIMMEDIATE // not migrated: used in a number of bge fmts - // public string CONTINUEAFTERSTEPTEXT // not used - // public string FIXPAGELISTSPECIALCHARS // not migrated: used in a number of bge fmts - public string NoStepNumberForHighLevelRNO; - public string PromptForCautinType; - public string Caution1SameRowAsParent; - //public string DONTPAGINATEONCAUTION1; // no supporting code - public string WolfCreekBackgroundFormat; - public string EnhancedStepNumFromPrev; -#endregion -#region xtraflags10 - public string ControlUnderlineStyle; // from xtra_flag array 10 - // public string LANDSCAPEMODE // not used - // public string HORIZONTALSUBSTEPS // not migrated: used in ano2vlv & bgevl - public string MultipleChangeIds; - public string UseMultiLineSectionTitle; - // public string SECTIONNOTESCAUTIONS // not migrated: used in anono & various bge - public string PageBreakOnFirstBlankLine; - public string DontPrintNoTitle; - // public string PRINTCAUTION1CONTINUED // not migrated: used in bgeal - // public string USECHECKOFFSINS2 // not used - // public string NOTESTOFOOTNOTES // not migrated: used in ano2vlv, some bge, many rbnd - public string UndSpecialStepsFoldout; - // public string DONTAUTOENDFORMATTING // not migrated: used in various bge - // public string REMOVEBASISFROMTRANS // not migrated: used in various bge - public string PutOnPageByItself; - // public string USEPHONELIST // not migrated: used in bge -#endregion -#region xtraflags11 - public string SecTitleContinue; // from xtra_flag array 11 - public string CancelSecTitlesOnE0; - public string MetaSectEndMessage; - // public string RNONUMBERWITHLEVEL // not migrated: used in bgeeop - // public string FORCELETTEREDHLS // not migrated: used in bgestp - // public string CANCELSECTITLESONE1 // not migrated: used in bgeoid - public string CancelSecTitlesOnE2; - // public string USESECTITLECONTASIS // not used - // public string SMARTLETTEREDHLS // not migrated: used in various bge - // public string DOTWOMESSAGES // not migrated: used in bgeeop - // public string DONTBOLDINTABLES // not migrated: used in bgestp - // public string EXTRALINEAFTERSECTION // not migrated: used in bgestp - // public string BGESTPSPECIALFEAT // not migrated: used in bgestp - public string CompressHPSuper; - // public string PRETENDNOTPROPORTIONAL // not used - // public string DOINGPLACEKEEPERS // not used -#endregion -#region xtraflags12 - public string MatchUpRNOCautNote; // from xtra_flag array 12 - // public string NEWHLSTEPONENTER // not migrated: used in bgevl - // public string DONTSEPARATEMULTITEXT // not migrated: used in bgeop - public string PaginateAtHighestPaginLevel; - // public string DONTRESETINDENTONNEWLINE // not migrated: used in anonop & various bge - // public string CONTINUEMESSONNEXTLINE // not migrated: used in anoann - // public string CAP1STSECTIONTITLE // not migrated: used in anono - // public string DOUBLESPACEHLS // not migrated: used in anoann - public string UseLongProcTitles; - // public string INCLUDENOTEINPLACKEEP // not migrated: used in bgeeop - // public string OUTTRANTOSECTIONSTEP // not used - // public string ANOANNUNCIATORS // not migrated: used in anoann - public string SpecialLandscapeMode; - public string RNOInPagelist; - public string StpCautNoteTabInPagelist; - public string ReadOnlyTypeInContMsg; -#endregion -#region xtraflags13 - public string CenterOneLineOnly; // from xtra_flag array 13 - public string TieTabToLevel; - // public string LEFTJUSTIMMEDIATE // not migrated: used in anoann - public string AccessoryDocsInDuplex; - public string FoldoutsInDuplex; - // public string ABPAGE // not migrated: used in various ano - public string UseSTExtraRealValue; - public string SubTableGetSup1Level; - // public string DONTNUMBERNOTECAUT1 // not migrated: used in anonop - public string DontCountFoldoutPages; - // public string ANONOPHACKS // not migrated: used in anonop - // public string FLOATSECNUMPOS // not migrated: used in bgeoi bgestp - public string SearchAllReplaceWords; - // public string CALVERTCLIFFSFORMATS // not migrated: used in various bge - // public string NOSTUPIDSUBLOGIC // not migrated: used in anonop - // public string REMEMBERRNOSTEP // not migrated: used in bgeeop, rbndan, rbnd -#endregion -#region xtraflags14 - public string RememberCautionsAndNotes; // from xtra_flag array 14 - // public string PUTONPAGEAFTERHALFPAGE // not migrated: used in anonop - // public string FLOATINGSTEPS // not migrated: used in anonop - public string RtfAdjustments; - public string CenterOneLineAdjust; - public string CountAllSubLevels; - // public string AERCHGBARMSGRNOCHGBARNOMSG // not migrated: used in nae - public string DontReplaceWordsInROs; - public string HighLevelRNOBeforeAERSubStps; - public string UnderlineAllMetaTitles; - public string DontBreakCautionsOrNotes; - public string BoldOnlySectionZero; - public string DontBreakOnRNO; - public string RNOCheckOffSameAsParent; - public string UseStepTypeWidthOverride; - public string WolfcreekCKLFormat; -#endregion -#region xtraflags15 - public string DontPaginateOnFirstSubStep2X; // from xtra_flag array 15 - public string UseStepTypeWidthOverrideEditPrint; - public string PartialStepCompression; - public string UseSmartTemplate; - public string CheckoffOnHLSOnly; - // public string KEEPCHANGEIDFORCOPYSTEP // not migrated: used in various ANO - // public string RNOBELOWCHECKOFF // not migrated: used in various RBND - public string Caution2SameRowAsParent; - // public string DONTUNDERLINEMETATITLES // not migrated: used in various RBND - public string CenterTextWithinWidth; - public string DontBreakEquipmentList; - // public string USELOCALTEMPLATEFILE // not migrated: used in various RBND - public string AlwaysTabCaution2; - public string VirtualDotInHLSTab; - public string ImperfectStructurePlus4; - // public string RIVERBENDVALVESHEETS // not migrated: used in various RBND -#endregion -#region xtraflags16 - // public string RIVERBENDPUMPDATASHEET // from xtra_flag array 16 -not migrated: used in various RBND - public string UseRNOTypeInActable; - public string AbsoluteTransitionUpdate; - public string SeparateBoxCautions; - // public string RIVERBENDALARMFORMAT // not migrated: used in RBNDAN - public string HLSTextInPagelist; - // public string HLSCAUT2INPAGELIST // not migrated: used in RBNDAN - public string LowerCaseStepInTran; - // public string DONTCHANGELOWERLIMIT // not migrated: used in BGEALN PAC - // public string UPPERCASESECTIONTITLE // not migrated: used in various RBND - //public string ALGNCOMPRESSSUPERTABLE; // not migrated: no supporting code. - // public string RIVERBENDLINEUPFORMAT // not migrated: used in various RBND - public string ChangeBarsOnLinkedText; - public string QuotedSubsteps; - // public string PROPOVERFLOWLETITHANG // not migrated: used in BGEEOP - // public string TURKEYPOINTBACKGNDFORMAT // not migrated: used in FPLBCK -#endregion -#region xtraflags17 - // public string DRAWCENTERLINE // from xtra_flag array 17 -not migrated: used in BGEEOP - // public string DOVALVEDIVIDER // not migrated: used in ANO2VLV - // public string DOSECTIONOVERUNDERSTRING // not migrated: used in bgeeop, bgevl - public string OverrideEnhancedTabs; - // public string USEREALCOMPRESSED7LPI // not used - public string NoNewlineAfterRNO; - public string DoSectionSeparatorLine; - public string ParensOnExtPagenumTrans; - public string AtLeastTwoDigitsForHLS; - public string DontBreakOptEquipmentList; - public string PagelistChangeIDsWithCommas; - public string DontStartLineWithDash; - public string NoBlankLineBeforeSubstep; - public string DontBreakCautionsNotesOnSubstps; - public string DontConvertCaretToDelta; // handled in data migration -#endregion -#region xtraflags18 - // this was original veairflag, but an extra array element was added to the xtraflags, - // xtraflags[18], since some of the flags were used in other formats. - // public string NOTEAFTERAPPLIEDTEXT // from xtra_flag array 18 -not migrated: used in ata - public string NoRNO; - // public string ALTWFORWARNINGS // not migrated: used in ata, some bge & some rbnd - public string OnlySingleColumn; - // public string NULLBOX // not migrated: used in bgeeop - public string XChngTranSpForHard; - public string WolfcreekCKLBackgndFormat; -#endregion -} -[Serializable] -public struct Symbol -{ - public string Unicode; - public string Desc; -} -[Serializable] -public struct GeneralEditor -{ - public string EMode; - /* Format Flags */ - public string PromptForCautionType; - /* End of format flags */ -} -[Serializable] -public struct GeneralPrint -{ - public Int16 DoPrnDrvrAdjusts; - public string TopOfPageThing; - /* Format flags moved to here.... */ - public string DoRevDate; - public string AlternateFoldoutPages; - public string AlternateFloatingFoldout; - public string SectionLevelFoldouts; - public string RevDateWithForwardSlash; - public string SpecialStepsFoldout; - // Added AllowDuplex to eliminate hardcoded check for WEP2 and WPB formats - // for the Disable Automatic Duplexing - public string AllowDuplex; - public string AccessoryDocsInDuplex; - public string FoldoutsInDuplex; - public string PagelistChangeIDsWithCommas; - /* end Format flags */ - public ProcDescr [] ProcDescrList; - public string[] VersionIdText; - public string DuplexBGDirectory; // this may go away?? - public string DuplexDDDirectory; // " " -} -[Serializable] -public struct ProcDescr -{ - public string MatchProcNumber; - public string ProcDescr1; - public string ProcDescr2; -} -//[Serializable] -//public struct GeneralLayout // no data in this category. Comment out -//{ // in case later some data moves to here. - -//} -[Serializable] -public struct Procedure -{ - public Int16 TitleLength; - public Int16 CoverTitleLength; - public string ProcForeColor; - public string ProcBackColor; - public string ProcedureSuffixFlags; - /* Format flags moved to here.... */ - public string CapitalizeTitle; - public string ChangeStyleForEverySection; - public string PrintNoTitle; - public string CountFoldoutPages; - /* End of Format flags */ - public string[] ProcedureSuffix; - public PSI Psi; - public ChangeBar ChangeBarData; - public CheckOffData CheckOffData; -} -[Serializable] -public struct PSI -{ - public int x; - public int y; - public string Caption; - public string ButtonsOnBottom; - public string font; - public PsiBox[] Boxes; - public PsiLabel[] Labels; - public PsiField[] Fields; -} -[Serializable] -public struct PsiBox -{ - public string style; - public int x; - public int y; - public int width; - public int height; -} -[Serializable] -public struct PsiLabel -{ - public string text; - public string Justify; - public int x; - public int y; - public int width; - public int height; -} -[Serializable] -public struct PsiField -{ - public string name; - public string type; - public string text; - public int Length; - public int x; - public int y; - public int width; - public int height; -} -[Serializable] -public struct CheckOffData -{ - public string Menu; - public string AllowSectEdit; - public string AllowStepEdit; - public int UseCheckOffsIn; - public sbyte CheckOffAdjustment; - /* Format flags ... */ - public string DropCheckOff; - public string CheckOffOnHLSOnly; - public string SkipSpaces; - /* end of format flags */ - //public RightCheckOffBx [] RightCheckOffBoxList; - public Absolute [] LayoutList; - public CheckOffHeader[] CheckOffHeaderList; - public CheckOff [] CheckOffList; -} -//[Serializable] -//public struct RightCheckOffBx -//{ -// public int Index; -// public int RightCheckOffBox; -//} -[Serializable] -public struct Absolute -{ - public string RnoLevel; - public int Column; -} -[Serializable] -public struct CheckOffHeader -{ - public int Index; - public string CheckOffHeading; - public VE_Font Font; -} -[Serializable] -public struct CheckOff -{ - public int Index; - public byte UIMark; - public string MenuItem; - public string ExcludeInSectMenu; - public string Macro; - public float CheckOffWidAdjust; - public int CheckOffXtraLines; -} -[Serializable] -public struct ChangeBar -{ - public string DefaultCBLoc; - public string ChangeBarMessage; - public Int16 FixedChangeColumn; // really flags not columns (don't convert to points - public Byte FixedAERChangeColumn; - public long ChangeSummaryStyle; // not really change bar - put here for now. - public long ChangeBarStyle; - public string SpecialChangeBar; - /* Format flags moved to here.... */ - public string CondensedChangeBar; - public string AbsoluteFixedChangeColumn; - public string ContinuousChangeBars; - public string ChgBarMessageFromEdit; - public string MultipleChangeIds; - public string ChangeBarToRNOSep; - public string ChangeBarsOnLinkedText; - /* End of Format flags */ -} -[Flags] -public enum E_ChangeBarMessage : uint -{ - DateChgID = 0, - RevNum = 1, - ChgID = 2, - None = 3 -} -[Flags] -public enum E_EMode : uint -{ - Insert = 0, - Override = 1 -} -[Serializable] -public struct Section -{ - public Int16 SectionTitleLength; - public string SectForeColor; - public string SectBackColor; - /* Format Flags moved here... */ - public string CancelSecTitlesOnS1; - public string CancelSecTitlesOnS2; - public string CancelSecTitlesOnE0; - public string CancelSecTitlesOnE2; - public string MetaSectEndMessage; - public string ReadOnlyTypeInContMsg; - public string ReplaceWordsInROs; - public string UseMetaSections; - public string NonEditableSteps; - public string SearchAllReplaceWords; - public string SecTitleContinue; - public string ConvertCaretToDelta; - /* end of Format flags */ - public SectionNum SectionNumber; - public SectionHead SectionHeader; - public StepSection StepSectionData; - public AccSection AccSectionData; - public MetaSection [] MetaSectionData; - public ReplaceStr[] ReplaceStrData; - -} -[Serializable] -public struct SectionNum -{ - public float Pos; - public string Just; - public VE_Font Font; -} -[Serializable] -public struct SectionHead -{ - public float Pos; - public string Just; - public VE_Font Font; -} -[Serializable] -public struct StepSection -{ - public Int16 TopRow; - public byte IndentToken; - public byte NumberOfHighLevelSteps; - public byte NumberOfSubStepTypes; - //public Int16[] TextTypeValue; - //public string[] TextType; - public string IdentB; - public string[] UnderlineTerminate; - public string [] ObserveNCString1; - public string[] ObserveNCString2; - /* Format flags moved to here.... */ - public string WolfCreekBackgroundFormat; - public string WolfcreekCKLFormat; - public string WolfcreekCKLBackgndFormat; - public string FortranFormatNumbers; - public string UseTopContinueMessageAtEnd; - public string FloatingContinueMessage; - public string WrapSameAsEdit; - public string ContinueSectionHeader; - public string CompressHPSub; - public string CompressHPSuper; - public string UndSpecialStepsFoldout; - public string UnderlineAllMetaTitles; - public string BoldOnlySectionZero; - public string ImperfectStructure; - public string ImperfectSubstep; - public string ImperfectStructurePlus4; - public string CountAllSubLevels; - public string UseMultiLineSectionTitle; // Need for data migration only - /* end of Format flags */ - public StepSectionLayout StpSectLayData; - public StepSectionEdit StpSectEditData; - public StepSectionPrint StpSectPrtData; - public SeqTabFmt[] SequentialTabFormat; -} -[Serializable] -public struct AccSection -{ - public int AutoContActSumSection; - public TOC TableOfContentsData; -} -[Serializable] -public struct TOC -{ - public float TofCSecNumPos; - public float TofCSecTitlePos; - public byte TofCSecTitleLen; - public float TofCPageNumPos; - public byte TofCSpaceChar; - public byte TofCLineSpacing; - public VE_Font Font; -} -[Serializable] -public struct MetaSection -{ - public int Index; // do I need this to order them or will SecNumPositionAdj work? - public float SecNumPositionAdj; - public float SecTitlePositionAdj; - public float ColSByLevel; - public float TofCPositionAdj; - public float WidSAdjByLevel; -} -[Serializable] -public struct StepSectionLayout -{ - public float LastLineToStartStep; - public Int16 LineDrawingOption; - public float ColS; - public float ColT; - public float ColAbs; - public float WidT; - public Int16 PMode; - public Int16 MaxRNO; - public string MaxRNOTable; - public string ColRTable; - public string WidSTableEdit; - public string WidSTablePrint; - public float AdjRNOCol; - public Int16 EndMessagePos; - public string RNOWidthAlt; - public Int16 HLSWidthOVRD; - public Int16 SubPaginationWght; - public Int16 TextTitleAdjustment; - public string TableCenterPos; - public string LowerLimitDivisor; // pagination - should it be in print? - public string NonLinkedStepNumber; - public string NonLinkedCautNoteNumber; - public string NonLinkedRNONumber; - /* Format flags moved to here.... */ - public string Dev_Format; - public string EnhancedShortFormDev; - public string SpecialPageBreakFlag; - public string PaginateOnFirstSubstep; - public string PaginateOnFirstSubstep2X; - public string UseHalfLines; - public string TryToFillHalfOfPage; - public string CompressSteps; - public string DoSTExtraAtTop; - public string KeepStepsOnPage; - public string BreakOnSections; - public string ShowSectionTitles; - public string EndForSingle; - public string PaginateOnFirstSubstep3X; - public string PaginateOnLowerStepLevel; - public string CustomSpacing; - public string SplitStepInPrntStep; - public string LineAboveUnderSection; - public string PicaIgnoreFiveSixths; - public string SpaceForNoSecNumb; - public string PageBreakOnFirstBlankLine; - public string PutOnPageByItself; - public string PaginateAtHighestPaginLevel; - public string UseSTExtraRealValue; - public string DoSectionSeparatorLine; - public string TieTabToLevel; - public string HighLevelRNOBeforeAERSubsteps; - public string UseStepTypeWidthOverride; - public string UseStepTypeWidthOverrideEditPrint; - public string PartialStepCompression; - public string VirtualDotInHLSTab; - public string OverrideEnhancedTabs; - public string RNO; - public string OnlySingleColumn; - /* End of format flags */ - public VE_Font VertStyle; - public TopOfPg TopOfPage; - public Separtr Separator; -} -[Serializable] -public struct TopOfPg -{ - public float Row; - public float Col; - public VE_Font Font; -} -[Serializable] -public struct Separtr -{ - public Int16 SeparatorLocation; - public VE_Font Font; -} -[Serializable] -public struct StepSectionEdit -{ - public float ColSScreenAdj; - public float ScrnAdjRNOText; - public string ColRScreen; -} -[Serializable] -public struct SeqTabFmt -{ - public int Index; - public int LeftJustify; - public string TabFormat; - public string PrintTabFormat; -} -[Serializable] -public struct StepSectionPrint -{ - public float ImmStepHdrCol; - public Int16 SecColHdrforActPMode; - public string RNOSepString; - public string HLStpSeparatorString; - public string HLRNOStpSeparatorString; - /* Format flags moved to here.... */ - public string LowerCaseRevNum; - public string UseXtraRevNumber; - public string SpecialLandscapeMode; - /* End of format flags */ - public VE_Font ModifiedTextStyle; - public VE_Font ImmStepHdrStyle; - public string[] ImmStepHdr; -} -[Serializable] -public struct ReplaceStr -{ - public string Flag; - public string ReplaceWord; - public string ReplaceWith; -} -[Flags] -public enum E_ReplaceStr : uint -{ - High =0x0001, // Do ReplaceWords in HIGH LEVEL STEPS - RNO =0x0002, // Do ReplaceWords in RNOS - Caution =0x0004, // Do ReplaceWords in CAUTIONS - Note =0x0008, // Do ReplaceWords in NOTES - Table =0x0010, // Do ReplaceWords in TABLES - Substep =0x0020, // Do ReplaceWords in SUBSTEPS - Attach =0x0040, // Do ReplaceWords in ATTACHMENTS - Bkgd =0x0080, // Do ReplaceWords in BACKGROUNDS - DiffUnit =0x0100, // Do ReplaceWords ONLY for different UNIT # - TOC =0x0200, // Do in auto table-of-contents - StatTree =0x0400, - HLSSetpnt =0x0800, // Do ReplaceWords in HighLevelStep SETPoiNTs - Trans =0x1000, // Do ReplaceWords in TRANSITIONS - Setpoint =0x2000, // Do ReplaceWords in SETPOINTS - - // Case Sensitivity Flags - default is off (Case Sensitive Replace) - CaseInsens =0x0000C000, // Do ReplaceWords for all words thatmatch, regardless of case, - // and replace with the ReplaceWith string as is - CaseInsensFirst = 0x4000, // Do ReplaceWords for all words thatexactly match the ReplaceWord, - // except the case of the first character may be different - CaseInsensAll = 0x8000, // Do ReplaceWords for all words that match the ReplaceWord, regardless of case - - Partials =0x10000, // Do replace even on partial matches - Plackeep =0x20000, // Do replace in PlaceKeepers - InSecTitle =0x40000 // replace words in section titles -} -[Serializable] -public struct Step -{ - public int Index; - public string Type; - public string ParentType; - public string Inactive; - public string StepTypeColOverride; - public string Sep; - public string Prefix; - public string Suffix; - public string UnderlineTheseChar; - public string VertPos; - /* the following are xtraflags that have been moved, string is set to true if plant has flag */ - /* Flag name is listed as comment after each if different than name (change is made if generically used. */ - public string DoubleSpace; //DoubleRNOSpace - public string EnhancedStepNumFromPrev; - public string UseSmartTemplate; - public string AlwaysUseExtraLines; - public string SeparateBox; - public string SeparateBoxCautions; - public string SpaceDouble; // NoSpaceDoubleRNO - public string ReduceLineAfter; // ReduceLineAfterNoteAndCaut - public string SameLevel; // RNOSameLevel - public string BoldHighLevel; // BoldHighLevelRNO - public string OneLineBeforeTab; // OneLineBeforeNoteCautionTab - public string BoxIt; // DontBoxAC - public string Boxed; // BoxContinuousActions, BoxedSubsteps - public string XLines_StepFix; - public string Rebox; // ReboxCautNote - public string SpcHdr; // ImmStepSpcHdr - public string ContinueOnly; // RNOContinueOnly - public string SepAfterAER; // RNOSepAfterAER - public string UseAlternateStepBox; - public string UnderlineAfterDashSpace; - public string SpaceIn; // NoSpaceInNoteOrCaution - public string PageBreakOnStep; // PageBreakOnHighLevelStep, PageBreakOnCautions, PageBreakOnNotes - public string AlignNullTabWSectHead; - public string TextSubFollowsTextStyle; - public string TreatAsSequential; // TreatAND_ORasSequential - public string MatchUpRNO; // MatchUpRNOCautNote - public string InPageList; // RNOInPageList, StpCautNoteTabInPageList, HLSTextInPageList - public string CenterOneLineOnly; - public string SubTableGetsUp1Level; - public string Remember; // RememberCautionsAndNotes - public string CenterOneLineAdjust; - public string Break; // DontBreakCautionsOrNotes, DontBreakOnRNO, DontBreakOptEquiptmentList - public string BreakEquipmentList; // Need this one as separate from above because differentiate between DontBreakOptEquiptmentList - public string BreakCautionsNotesOnSubstps; - public string CenterTextWithinWidth; - public string NewlineAfter; // NoNewlineAfterRNO - public string StartLineWithDash; - public string BlankLineBeforeSubStep; - public string AlwaysTab; // AlwaysTabNote, AlwaysTabCaution, AlwaysTabCaution2 - public string MixCautionsAndNotes; - public string NumberHighLevel; // NumberHighLevelRNO - public string OffsetTab; - public string LeftJustifyBorderless; // LJBorderlessTable - public string StepNumIfOnlyOne; // NoStepNumIfOnlyOneStep - public string LJTabs; - public string NumberSubs; // DontNumberRNOSubs - public string Bullet; // BulletOnContinuous - public string StepNumberForHighLevel; // NoStepNumberForHighLevelRNO - public string SameRowAsParent; // Caution1SameRowAsParent, Caution2SameRowAsParent - public string CheckoffSameAsParent; // RNOCheckoffSameAsParent - public string AtLeastTwoDigits; // AtLeastTwoDigitsForHLS - public string UseInAcTable; // UseRNOTypeInAcTable - public string Number; // DontNumberHighLevelSteps - public string ThreeBlanksAbove; // ThreeBlanksAboveNotesCautions - public string CheckOffs; // NoCheckOffsInRNO - public string Quoted; // QuotedSubSteps - /* end of xtraflags */ - public VE_Font Font; - public Layout StepLayoutData; - public Edit StepEditData; - public Print StepPrintData; - public Tab TabData; -} -[Serializable] -public struct Edit -{ - public string ForeColor; // Doesn't exist in old format - See StepLayoutData - public string BackColor; // Doesn't exist in old format - See StepLayoutData - public string AcTable; - public string Searchable; - public TypeMenu TypeMenu; -} -[Flags] - // acceptence list for adding Tables, Cautions, Notes, Substeps, Next, Previous and RNO -public enum E_AccStep : uint -{ - AddingCaution = 1, - AddingNote = 2, - AddingRNO = 4, - AddingSub = 8, - AddingTable = 16, - AddingNext = 32, - AddingPrev = 64 -} -[Serializable] -public struct TypeMenu -{ - public string InMenu; // bool - list in menu if step is in Normal (Left-side) column - public string RnoInMenu; // bool - list in menu if step is in RNO (right-side) column - public string MenuItem; // for migration, if alternatename or rnoalternate name, use it, otherwise it's type - public string RnoMenuItem; // for migration, if alternatename or rnoalternate name, use it, otherwise it's type - public string NoChgReason; // if not in any menu, list reason for User Interface - public string AlternateNameList; // put indices of alternate types in a list (string) - //public AlternateName[] AlternateNames; // during migration from 16-bit, this is textype values -} -//[Serializable] -//public struct AlternateName -//{ -// public string Type; // Step Types that can be included/mixed in the menu (caution/notes) -//} -[Serializable] -public struct Print -{ - public string ForeColor; // Doesn't exist in old format - See StepLayoutData - public string BackColor; // Doesn't exist in old format - See StepLayoutData - public string PosAdjust; -} -[Serializable] -public struct Layout -{ - public string ForeColor; - public string BackColor; - public string STExtraSpace; - public string STBoxindex; - public string EveryNLines; - public string SpaceBefore; // = 0 - public string SpaceAfter; // 1 line (in points) - public string AlwaysUpperCase; - public string PageBreakAtTypeChange; - public string AlignWithParentTab; - //public string RtCheckOffGroups; - public string StepTypeWidthOverride; -} -[Serializable] -public struct Tab -{ - public string IdentEdit; - public string Ident; - public string IdentAltPrint; - public string RNOIdentEdit; - public string RNOIdent; - public string IdentEditWid; - public string IdentWid; - public string RNOIdentEditWid; - public string RNOIdentWid; - public string Justify; // from tbstyle - None, CENTER, LEFT, RIGHT - //public string CheckOff; // from tbstyle - None, LEFT, RIGHT - public string UsePreviousStyle; - public COMacro[] MacroList; - public VE_Font Font; -} -[Serializable] -public struct COMacro -{ - public string Name; - public string Macro; - public string Grouping; - public string NotInRNO; -} -[Serializable] -public struct Box -{ - public int Index; - public float Start; - public float End; - public float TxtStart; - public float TxtWidth; - public float Height; - public float TabPos; - public sbyte TxtRowAdj; - public string BXURC; // Upper Right Corner, etc. - public string BXHorz; - public string BXULC; - public string BXVert; - public string BXMLS; - public string BXMRS; - public string BXLRC; - public string BXLLC; - public string BXMID; - public string BXLHorz; - public string BXUMID; - public string BXLMID; - public VE_Font Font; -} -[Serializable] -public struct Trans -{ - public string DelimiterForTransitionTitle; - public string StepSubstepDelimeter; - public string ThroughString; - /* Format flags moved to here.... */ - public string SpecifiedSubstepsOnly; - public string CapsTransitions; - public string CapTranStep; - public string TStepNoFlag; - public string LowerCaseTranNumber; - public string UpcaseTranAnd; - public string SuppressAndInTran; - public string Cap1stCharTrans; - public string UseTransitionModifier; - public string UseSecTitles; - public string HardSpTranProcNumb; - public string XchngTranSpForHard; - public string AbsoluteTransitionUpdate; - public string LowerCaseStepInTran; - public string DoSectionTransitions; - /* End of Format flags */ - public TransTypes[] TransTypeData; -} -[Serializable] -public struct TransTypes -{ - public int Index; - public byte TransType; - public string TransFormat; - public string TransMenu; - public string TransUI; -} -[Serializable] -public struct RO -{ - /* Format flags moved to here.... */ - public string AllUnits; - public string UpRoAftrDash; //UpSetpntAftrDash; - public string UpcaseAllRoUnits; //UpcaseAllSetpointUnits; - public string CapHighRo; //CapHighSetpnt; - public string CapRoIfLastLower; //CapsPIFLastLower; - public string UpRoIfPrevUpper; //UpSpIfPrevUpper - public string UnderlineRo; //UnderlineSetpoints - public string CapFirstLetterInHighRO; //CAPFIRSTLETTERINHIGHSP - /* End of Format flags */ -} -[Flags] -public enum E_TransitionMenus : uint -{ - None = 0, - ProcCur = 0x0001, - ProcMenu = 0x0002, - SectCur = 0x0004, - SectDefault = 0x0008, - SectMenuAny = 0x0010, - SectMenuStep = 0x0020, - StepAllowNone = 0x0040, - StepFirst = 0x0080, - StepLast = 0x0100 -} -[Flags] -public enum E_TransFormatXlate : uint -{ - None = 0, - Step = 1, - Range = 2, - Section = 4, - Procedure = 8, - Page = 16 -} - -#endregion - -/////////////////////////// -namespace fmtxml -{ - public partial class FmtFileToXml - { - #region localdata - public XtraFlgs BaseXtraFlags; // used to set up all flags for the Base format. - public XtraFlgs SubXtraFlags; - public static int MAXSTEPS = 47; - public static int MAXBOXES = 12; - public static int MAXTABS = 20; - public static int MAXTRANS = 15; - public static int MAXCHECKOFFS = 18; - public static int MAXCHKHEADINGS = 5; - public static int MAXSEQ = 9; - public static int MAXREPLACE = 60; - #region XtraFlagBits - // XtraFlag translation fields... - // - // XtraFlag[0] from 16-bit... - public static int DOUBLERNOSPACE = 0x0001; - public static int MIXCAUTIONSANDNOTES = 0x0002; - public static int ALWAYSUSEEXTRALINES = 0x0008; - public static int ALWAYSTABNOTE = 0x0010; - public static int ALWAYSTABCAUTION = 0x0020; - public static int SPECIALPAGEBREAKFLAG = 0x0080; - public static int DONTPAGINATEONFIRSTSUBSTEP = 0x0200; - public static int IMPERFECTSTRUCTURE = 0x0800; - public static int DONTUSEHALFLINES = 0x1000; - public static int FORTRANFORMATNUMBERS = 0x2000; - public static int ALLUNITS = 0x4000; - public static int CAPSTRANSITIONS = 0x8000; - - // XtraFlag[1] from 16-bit... - public static int CAPTRANSTEP = 0x0001; - public static int TSTEPNOFLAG = 0x0004; - public static int LOWERCASETRANNUMBER = 0x0008; - public static int CONDENSEDCHANGEBAR = 0x0020; - public static int DOREVDATE = 0x0040; - public static int SEPARATEBOX = 0x0080; - public static int NUMBERHIGHLEVELRNO = 0x0100; - public static int ALTERNATEFOLDOUTPAGES = 0x1000; - public static int DONTTRYTOFILLHALFOFPAGE = 0x8000; - - // XtraFlag[2] from 16-bit... - public static int DONTCAPITALIZETITLE = 0x0001; - public static int NOSPACEDOUBLERNO = 0x0004; - public static int DONTOFFSETTAB = 0x0010; - public static int UPSETPNTAFTRDASH = 0x0020; - public static int LOWERCASEREVNUM = 0x0040; - public static int DONOTCOMPRESSSTEPS = 0x0080; - public static int REDUCELINEAFTERNOTEANDCAUT = 0x0100; - public static int RNOSAMELEVEL = 0x0200; - public static int BOLDHIGHLEVELRNO = 0x2000; - public static int ONELINEBEFORENOTECAUTIONTAB = 0x4000; - public static int CONTINUOUSCHANGEBARS = 0x8000; - - // XtraFlag[3] from 16-bit... - //public static int CHECKOFFONALLSTEPS = 0x0004; - public static int DONTBOXAC = 0x0020; - public static int USETOPCONTINUEMESSAGEATEND = 0x0080; - public static int UPCASETRANAND = 0x2000; - public static int UPCASEALLSETPOINTUNITS = 0x4000; - - // XtraFlag[4] from 16-bit... - public static int DEV_FORMAT = 0x0001; - public static int DONTDOSTEXTRAATTOP = 0x0004; - public static int XLINES_STEPFIX = 0x0008; - public static int REBOXCAUTNOTE = 0x0010; - public static int IMMSTEPSPCHDR = 0x0020; - public static int FLOATINGCONTINUEMESSAGE = 0x0080; - public static int ABSOLUTEFIXEDCHANGECOLUMN = 0x0200; - public static int LJBORDERLESSTABLE = 0x0800; - public static int SUPPRESSANDINTRAN = 0x1000; - public static int CAPHIGHSETPNT = 0x2000; - public static int CAPFIRSTLETTERINHIGHSP = 0x4000; - public static int CAPSPIFLASTLOWER = 0x8000; - - // XtraFlag[5] from 16-bit... - public static int ALTERNATEFLOATINGFOLDOUT = 0x0001; - public static int WRAPSAMEASEDIT = 0x0002; - public static int KEEPSTEPSONPAGE = 0x0004; - public static int SPECIFIEDSUBSTEPSONLY = 0x0008; - public static int THREEBLANKSABOVENOTESCAUTIONS = 0x0010; - public static int IMPERFECTSUBSTEP = 0x0040; - public static int DONTBREAKONSECTIONS = 0x0080; - public static int NOSTEPNUMIFONLYONESTEP = 0x0100; - public static int SHOWSECTIONTITLES = 0x0200; - public static int LJTABS = 0x0400; - public static int DONTNUMBERRNOSUBS = 0x0800; - public static int DROPCHECKOFF = 0x4000; - public static int NOCHECKOFFSINRNO = 0x8000; - - // XtraFlag[6] from 16-bit... - - public static int CHGBARMESSAGEFROMEDIT = 0x0001; - public static int CHANGEBARTORNOSEP = 0X0002; - public static int CHGSTYLEPERSECTION = 0x0008; - public static int SECTIONLEVELFOLDOUTS = 0x0010; - public static int BOXCONTACTIONS = 0x0020; - public static int DOSECTIONTRANS = 0x0040; - public static int UPSPIFPREVUPPER = 0x0100; - public static int CONTINUESECTIONHEADER = 0x0200; - public static int GLOBALPROCINFO = 0x0400; - public static int COMPRESSHPSUB = 0x0800; - public static int BULLETONCONTINUOUS = 0x1000; - public static int CANCELSECTITLESONS2 = 0x2000; - public static int NOENDFORSINGLE = 0x4000; - public static int USEMETASECTIONS = 0x8000; - - // XtraFlag[7] from 16-bit... - - public static int RNOCONTINUEONLY = 0x0001; - public static int CAP1STCHARTRANS = 0x0002; - public static int DONTPAGINATEONFIRSTSUBSTEP3X = 0x0004; - public static int RNOSEPAFTERAER = 0x0008; - public static int REVDATEWITHFORWARDSLASH = 0x0010; - public static int USEALTERNATESTEPBOX = 0x0040; - public static int CANCELSECTITLESONS1 = 0x0080; - public static int SPECIALSTEPSFOLDOUT = 0x0100; - public static int UNDERLINEAFTERDASHSPACE = 0x0200; - public static int NOSPACEINNOTEORCAUTION = 0x0400; - public static int USEXTRAREVNUMBER = 0x0800; - public static int UNDERLINESETPOINTS = 0x1000; - public static int DOSECTIONTRANSTYPEB = 0x2000; - public static int PAGINATEONLOWERSTEPLEVEL = 0x4000; - public static int USETRANSITIONMODIFIER = 0x8000; - - // XtraFlag[8] from 16-bit... - - public static int CUSTOMSPACING = 0x0001; - public static int ENHANCEDSHORTFORMDEV = 0x0002; - public static int PAGEBREAKONHIGHLEVELSTEP = 0x0010; - public static int PAGEBREAKONCAUTIONS = 0X0040; - public static int PAGEBREAKONNOTES = 0X0080; - public static int ALIGNNULLTABWSECTHEAD = 0X0100; - public static int DONTUSESECTITLES = 0x0200; - public static int TEXTSUBFOLLOWSTEXTSTYLE = 0x0400; - public static int TRANSPROCTITLEINPAREN = 0x0800; - public static int HARDSPTRANPROCNUMB = 0x1000; - public static int TREATANDORASSEQUENTIAL = 0x2000; - public static int DONTSPLITSTEPINPRNTSTEP = 0x4000; - public static int LINEABOVEUNDERSECTION = 0x8000; - - // XtraFlag[9] from 16-bit... - - public static int PICAIGNOREFIVESIXTHS = 0x0004; - public static int SPACEFORNOSECNUMB = 0x0008; - public static int NONEDITABLESTEPS = 0x0010; - public static int BOXEDSUBSTEPS = 0x0020; - public static int DONTNUMBERHIGHLEVELSTEPS = 0x0040; - public static int NOSTEPNUMBERFORHIGHLEVELRNO = 0x0400; - public static int PROMPTFORCAUTINTYPE = 0x0800; - public static int CAUTION1SAMEROWASPARENT = 0x1000; - public static int WOLFCREEKBACKGROUNDFORMAT = 0x4000; - public static int ENHANCEDSTEPNUMFROMPREV = 0x8000; - - // XtraFlag[10] from 16-bit... - - public static int CONTROLUNDERLINESTYLE = 0x0001; - public static int MULTIPLECHANGEIDS = 0x0008; - public static int USEMULTILINESECTIONTITLE = 0x0010; - public static int PAGEBREAKONFIRSTBLANKLINE = 0x0040; - public static int DONTPRINTNOTITLE = 0x0080; - public static int UNDSPECIALSTEPSFOLDOUT = 0x0800; - public static int PUTONPAGEBYITSELF = 0x4000; - - // XtraFlag[11] from 16-bit... - - public static int SECTITLECONTINUE = 0x0001; - public static int CANCELSECTITLESONE0 = 0x0002; - public static int METASECTENDMESSAGE = 0x0004; - public static int CANCELSECTITLESONE2 = 0x0040; - public static int COMPRESSHPSUPER = 0x2000; - - // XtraFlag[12] from 16-bit... - - public static int MATCHUPRNOCAUTNOTE = 0x0001; - public static int PAGINATEATHIGHESTPAGINLEVEL = 0x0008; - public static int USELONGPROCTITLES = 0x0100; - public static int SPECIALLANDSCAPEMODE = 0x1000; - public static int RNOINPAGELIST = 0x2000; - public static int STPCAUTNOTETABINPAGELIST = 0x4000; - public static int READONLYTYPEINCONTMSG = 0x8000; - - // XtraFlag[13] from 16-bit... - - public static int CENTERONELINEONLY = 0X0001; - public static int TIETABTOLEVEL = 0x0002; - public static int ACCESSORYDOCSINDUPLEX = 0x0008; - public static int FOLDOUTSINDUPLEX = 0x0010; - public static int USESTEXTRAREALVALUE = 0x0040; - public static int SUBTABLEGETSUP1LEVEL = 0x0080; - public static int DONTCOUNTFOLDOUTPAGES = 0x0200; - public static int SEARCHALLREPLACEWORDS = 0x1000; - - // XtraFlag[14] from 16-bit... - - public static int REMEMBERCAUTIONSANDNOTES = 0x0001; - public static int RTFADJUSTMENTS = 0x0008; - public static int CENTERONELINEADJUST = 0x0010; - public static int COUNTALLSUBLEVELS = 0x0020; - public static int DONTREPLACEWORDSINROS = 0x0080; - public static int HIGHLEVELRNOBEFOREAERSUBSTPS = 0x0100; - public static int UNDERLINEALLMETATITLES = 0x0200; - public static int DONTBREAKCAUTIONSORNOTES = 0x0400; - public static int BOLDONLYSECTIONZERO = 0x0800; - public static int DONTBREAKONRNO = 0x1000; - public static int RNOCHECKOFFSAMEASPARENT = 0x2000; - public static int USESTEPTYPEWIDTHOVERRRIDE = 0x4000; - public static int WOLFCREEKCKLFORMAT = 0x8000; - - // XtraFlag[15] from 16-bit... - - public static int DONTPAGINATEONFIRSTSUBSTEP2X = 0x0001; - public static int USESTEPTYPEWIDTHOVERRRIDEEDITPRINT = 0x0002; - public static int PARTIALSTEPCOMPRESSION = 0x0004; - public static int USESMARTTEMPLATE = 0x0008; - public static int CHECKOFFONHLSONLY = 0x0010; - public static int CAUTION2SAMEROWASPARENT = 0x0080; - public static int CENTERTEXTWITHINWIDTH = 0x0200; - public static int DONTBREAKEQUIPMENTLIST = 0x0400; - public static int ALWAYSTABCAUTION2 = 0x1000; - public static int VIRTUALDOTINHLSTAB = 0x2000; - public static int IMPERFECTSTRUCTUREPLUS4 = 0x4000; - - // XtraFlag[16] from 16-bit... - - public static int USERNOTYPEINACTABLE = 0x0002; - public static int ABSOLUTETRANSITIONUPDATE = 0x0004; - public static int SEPARATEBOXCAUTIONS = 0x0008; - public static int HLSTEXTINPAGELIST = 0x0020; - public static int LOWERCASESTEPINTRAN = 0x0080; - public static int CHANGEBARSONLINKEDTEXT = 0X1000; - public static int QUOTEDSUBSTEPS = 0x2000; - - // XtraFlag[17] from 16-bit... - - public static int OVERRIDEENHANCEDTABS = 0x0008; - public static int NONEWLINEAFTERRNO = 0x0020; - public static int DOSECTIONSEPARATORLINE = 0x0040; - public static int PARENSONEXTPAGENUMTRANS = 0x0080; - public static int ATLEASTTWODIGITSFORHLS = 0x0100; - public static int DONTBREAKOPTEQUIPMENTLIST = 0x0200; - public static int PAGELISTCHANGEIDSWITHCOMMAS = 0x0400; - public static int DONTSTARTLINEWITHDASH = 0x0800; - public static int NOBLANKLINEBEFORESUBSTEP = 0x1000; - public static int DONTBREAKCAUTIONSNOTESONSUBSTPS = 0x2000; - public static int DONTCONVERTCARETTODELTA = 0x4000; - - // XtraFlag[18] (was VEAIRFLAG) from 16-bit... - public static int NORNO = 0x0002; - public static int ONLYSINGLECOLUMN = 0x0008; - public static int XCHNGTRANSPFORHARD = 0x0020; - public static int WOLFCREEKCKLBACKGNDFORMAT = 0x0040; - #endregion - // use the following to define which step the AlternateStepType data is associated with. - // i.e. look in new.def to determine the #defines for the original step type associated - // with the name of the define. Note that all have been incremented by 1 since these are - // indices into the step list and we introduced 'Base' at index 0. - // (ALT_HIGH, ALT_CONTINUOUS, ALT_IMMEDIATE, ALT_LOSSOFAC, ALT_HIGH5) - private int[] altsteps = { 2, 9, 3, 18, 41 }; // before increment of 1: { 1, 8, 2, 17, 40 }; - - // use the following to define which step the AlternateSubType data is associated with. - // (see above) (ALT_STANDARD, ALT_AND, ALT_OR, ALT_EQUIPMENTLIST, ALT_EQUIPMENTWBLANK, ALT_EXPLICITAND - private int[] altsubsteps = {1, 4, 5, 11, 14, 19, // before increment of 1: {0, 3, 4, 10, 13, 18, - // ALT_IMPLICITOR, ALT_PARAGRAPH, ALT_EQUIPMENTOPT, ALT_EQUIPMENTOPTWBLANK, ALT_TITLEWITHTEXTRIGHT - 35, 24, 30, 31, 42, // before increment of 1: 34, 23, 29, 30, 41, - // ALT_TITLEWITHTEXTBELOW, ALT_CONTACSEQUENTIAL, ALT_CONTACAND, ALT_CONTACOR, ALT_CONTACPARAGRAPH - 43, 44, 45, 46, 47}; // before increment of 1: 42, 43, 44, 45, 46}; - - private string[] StepTypes = { - "Base", "Substep","High","Immediate","And","Or","Caution","Note","Table","Continuous", - "AERTable","EquipmentList","Title","PageNumber","EquipmentWBlank","ProcNumber", - "RevNumber","AccPages","LossOfAC","ExplicitAnd","Caution1","Caution2", - "Note1","Note2","Paragraph","Default","Note3","Caution3","Note4","Caution4", - "EquipmentOpt","EquipmentOptWBlank","Note5","BorderlessAERTable","BorderlessTable", - "ImplicitOr","Figure","AERFigure","BorderlessFigure","BorderlessAERFigure", - "RNOType","High5","TitleWithTextRight","TitleWithTextBelow", - "ContAcSequential","ContAcAnd","ContAcOr","ContAcParagraph" - }; - private string[] ParentTypes = { - "", "Base","Base","High","Substep","Substep","Base","Base","Base","High", - "Table","Substep","Base","Title","EquipmentList","Title", - "Title","Base","High","And","Caution","Caution", - "Note","Note","Substep","Substep","Note","Caution","Note","Caution", - "EquipmentList","EquipmentWBlank","Note","AERTable","Table", - "Or","Base","Figure","Figure","AERFigure", - "High","High","Title","Title", - "Substep","And","Or","Paragraph" - }; - private string[] Inactive = { - "False", "False","False","False","False","False","False","False","False","False", - "False","False","False","True","False","True","True","True","False","False","False","False", - "False","False","False","True","False","False","False","False","False","False","False","False","False", - "False","False","False","False","False","False","False","False","False","False","False","False","False" - }; - private string[] Searchable = { - "False", "True", "True","True","True", "True", "True","True","True","True", - "True", "True", "False","False","True", "False","False","True","True","True","True","True", - "True","True","True","False","True","True","True","True","True","True","True","True","True", - "True","True","True","True","True","True","True","False","False","True","True","True","False" - }; - private string[] TypeMenuItem = { - "Base", "Sequential Substep", "Standard High Level Step","Immediate Action Step","AND", "OR", "Caution","Note","Centered Table","Continuous Action Step", - "AER Table", "Equipment List", "Title","Page Number","Equipment Preceded by Blank Line", "Procedure Number", - "Rev Number","Acc Pages","Boxed High Level Step","Explicit AND","Caution 1","Caution 2", - "Note 1","Note 2","Paragraph","Default","Note 3","Caution 3","Note 4","Caution 4", - "Optional Equipment List","Optional Equipment with Blank Line","Note 5","AER Table Without Border","Centered Table Without Border", - "Implicit OR","Centered Figure","AER Figure","Centered Figure Without Border","AER Figure Without Border", - "RNO Type","Alternate High Level Step","Title With Text Right","Title With Text Below", - "Continuous Action Sequential","Continuous Action AND","Continuous Action OR","Continuous Action Paragraph" - }; - private string[] NoChangeTypeReason = { - "Base Type - No change at this level", null, null,null,null, null, null,null,null,null, - null, null, null,null,null, null,null,null,null,null,null,null,null,null,null,null,null,null,null,null, - null,null,null,null,null,null,null,null,null,null,"RNO - No change allowed",null,null,null, - null,null,null,null - }; - private string[] RnoInMenu = { - null, "True",null,null,"True","True",null,null,"True",null,"False","True",null,null,"True",null, - null,null,null,"True",null,null,null,null,"True",null,null,null,null,null,"True","True",null,"False","True", - "True","True","False","True","False","False",null,null,null,"True","True","True","True" - }; - - /* - * from the 16-bit code, the following step type attributes/strings were defined. This was found in \promnt\lib\edit\slectyp.c - * High level types: - * "High Level Step","Continuous Action Step","Immediate Action Step","Boxed High Level Step","Alternate High Level Step" - * int far HighTypeValue[]={HIGH,CONTINUOUS,IMMEDIATE,LOSSOFAC,HIGH5}; - * Substep types: - * char *SubType[NBRSUB]={ - * "Sequential", - * "AND", - * "OR", - * "Equipment List", - * "Equipment Preceded by Blank Line", - * "Explicit AND", - * "Implicit OR", - * "Paragraph", - * "Optional Equipment List", - * "Optional Equipment with Blank Line", - * "Continuous Action Sequential", - * "Continuous Action AND", - * "Continuous Action OR", - * "Continuous Action Paragraph", - * "Title With Text To The Right", - * "Title With Text Placed Below" - * int SubTypeValue[NBRSUB]={STANDARD,AND,OR,EQUIPMENTLIST,EQUIPMENTWBLANK,EXPLICITAND,IMPLICITOR,PARAGRAPH, - * EQUIPMENTOPT,EQUIPMENTOPTWBLANK,CONTACSEQUENTIAL,CONTACAND,CONTACOR,CONTACPARAGRAPH,TITLEWITHTEXTRIGHT,TITLEWITHTEXTBELOW - * - */ - - private string[] WinColors = - { - "black","blue","green","cyan","red","magenta", - "brown","lightgray","darkgray","ligthblue", - "lightgreen","lightcyan","lightred","lightmagenta", - "yellow","white" - }; - /* - * The ?. characters have been added to the DefaultTransStr. This string is used in the - * code to determine the text that gets resolved for a transition. - * - * ?. means the following (for !section transitions) - * for proc - if current, don't put out text, if !current, put out text - * for sect - if curproc: if cursect, don't put out text; if !cursect, put out text - * if !curproc: if default sect, don't put out text; if !default sect, put out text - */ - private string[] DefaultTransStr = - { - "{Proc Num}, {Proc Title}, Step {First Step}", - "{First Step}", - "{First Step}, {.}, {.}, {.} and {Last Step}", - "{First Step} thru {Last Step} of {?.Proc Num}, {?.Proc Title}, {?.Sect Hdr}", - // The section transition had
    for the following, but the 16-bit code - // put in the number & title, so 32-bit uses '{?.Sect Hdr}'. This will need to be - // tested for formats that actually use
    : AEP, BGE, FNP, NSP. OHLP did not. - "{?.Sect Hdr}, Step {First Step}", - "{Proc Num}, {Proc Title}, {?.Sect Hdr}, Step {First Step}" - }; - - #region SectionTransitionVariables - private string DefaultSectionTransStrTypeB = "{Sect Num}, {Sect Title}, {First Step}"; - private string DefaultSectionTransStrTypeBNone = "{Sect Hdr}, Step {SectNum}{First Step}"; //original - private string[] DefaultSectionTransFormatStr = - { - "{Proc Num}, {Proc Title}, Step {Sect Num}{First Step}", - "{Sect Num}{First Step}", - "{Sect Num}{First Step}, {.}, {.}, {.} and {Sect Num}{Last Step}", - "{Sect Num}{First Step} thru {Sect Num}{Last Step}", - "{Sect Num}, Step {?.Sect Num}{First Step}", - "{Sect Hdr}, Step {SectNum}{First Step}" - }; - // made up the following strings so that the token processing for setting - // up the menu enums would work as expected. These are only used in this migration - // code to set up the enums. The above (DefaultSectionTransFormatStr) is used for - // the actual formatting of the strings in the new code. - private string[] DefaultSectionTransTokenStr = - { - "{Proc Num}, {Proc Title}, Step {First Step}", - "{First Step} ( Within the current section )", - "{First Step}, {.}, {.}, {.} and {Last Step}", - "{Sect Num}{First Step} thru {Sect Num}.{Last Step}", - "{Sect Num}{First Step} ( To a different section )", - "{Sect Num}{First Step}, {Sect Title} ( To a different section )" - }; - - #endregion - - private Int16[] Tabindx; - private BinaryReader brFmt; - private string fmtName; - - private static Dictionary dicChar; - #endregion - public FormatData BaseFormat; - public static List> StepParentList = new List>(); - public static List> StepList = new List>(); - public bool HasBase; - public FormatData MyFormat; - public string MyPath; - public FmtFileToXml(FmtFileToXml gendata, string alias, string nm, string path) - { - //DateTime tStart = DateTime.Now; - MyPath = path; - if (gendata == null) - HasBase = false; - else - { - HasBase = true; - BaseFormat = gendata.MyFormat; - - } - BuildDictionaryText(); - fmtName = alias; - //if (fmtName.ToUpper() != "CPLS" && fmtName.ToUpper() != "BASE") return; - if (fmtName.ToUpper() != "OHLP" && fmtName.ToUpper() != "BASE" && fmtName.ToUpper() != "WCN2") return; - //if (fmtName.ToUpper() != "AEP" && fmtName.ToUpper() != "BASE") return; - try - { - LoadFormatFile(nm + ".fmt", ref SubXtraFlags); - } - catch (Exception ex) - { - MessageBox.Show("Format name FAILED = " + nm, ex.Message); - } - //Console.WriteLine(" {0:0.000} seconds", TimeSpan.FromTicks(DateTime.Now.Ticks - tStart.Ticks).TotalSeconds); - } - #region GetBinaryReaderData - private byte[] GetByteArray(BinaryReader br, int len) - { - byte[] input; // = new byte[len + 1]; - input = br.ReadBytes(len); - return input; - } - - public static Regex Reg2; - public static void BuildDictionaryText() - { - #region ExtraUnicodeConvert - dicChar = new Dictionary(); - // note that the following characters needed adjusted, i.e. the - // default conversion to unicode did not result in the desired letter, - // so an extra conversion was needed. - dicChar[966] = 216; // dist zero - dicChar[201] = 274; // capital E with macron (line above) - dicChar[127] = 916; // delta - dicChar[964] = 947; // little gamma - dicChar[920] = 952; // little theta - dicChar[915] = 961; // little rho - dicChar[191] = 964; // little tau - dicChar[8801] = 8773; // approx. equal - dicChar[8734] = 8857; // circle w/ dot - dicChar[7] = 9679; // bullet - dicChar[8976] = 9830; // diamond - // dicChar[15] = 167; // grave 15=F; 167=xA7 - #endregion - #region DefinedLineDrawChars - // do all of the box/line draw characters to unicode. These were part - // of the Volian Line Draw font. - dicChar[179] = 9474; // b3 - dicChar[180] = 9508; // b4 - dicChar[181] = 9569; - dicChar[182] = 9570; - dicChar[183] = 9558; - dicChar[184] = 9557; - dicChar[185] = 9571; // b9 - dicChar[186] = 9553; // ba - dicChar[187] = 9559; - dicChar[188] = 9565; - dicChar[189] = 9564; - dicChar[190] = 9563; - dicChar[191] = 9488; - dicChar[192] = 9492; // c0 - dicChar[193] = 9524; - dicChar[194] = 9516; - dicChar[195] = 9500; - dicChar[196] = 9472; - dicChar[197] = 9532; // C5 - dicChar[198] = 9566; - dicChar[199] = 9567; - dicChar[200] = 9562; - dicChar[201] = 9556; - dicChar[202] = 9577; // ca - dicChar[203] = 9574; - dicChar[204] = 9568; - dicChar[205] = 9552; - dicChar[206] = 9580; - dicChar[207] = 9575; - dicChar[208] = 9576; // d0 - dicChar[209] = 9572; - dicChar[210] = 9573; - dicChar[211] = 9561; - dicChar[212] = 9560; - dicChar[213] = 9554; // d5 - dicChar[214] = 9555; - dicChar[215] = 9579; - dicChar[216] = 9578; - dicChar[217] = 9496; - dicChar[218] = 9484; // da - dicChar[219] = 9608; - dicChar[220] = 9604; - dicChar[221] = 9612; - dicChar[222] = 9616; - dicChar[223] = 9600; - #endregion - #region StyleTokens - - /* - * char AttrOnList[7] = {0xd3,0xd5,0xae,0xb2,SUBSCRIPT_ON,SUPERSCRIPT_ON,0}; - char AttrOffList[7] = {0xd4,0xd6,0xaf,0xdd,SUBSCRIPT_OFF,SUPERSCRIPT_OFF,0}; - int AttrList[7] = {BUNDERLINE_WORD, BOLD_WORD, UNDERLINE_WORD, - ITALICS_WORD, SUBSCRIPT_WORD, SUPERSCRIPT_WORD,0}; - - dicChar[13] = 213; //bold on 13=D -> 213=xD5 - //bold off ?? -> 214=xD6 - dicChar[16] = 244; //underline on 16=x10 -> 244=xF4 - //underline off ?? -> 246=xF6 - //bold&uline on ?? -> 211=xD3 - //bold/uline off ?? -> 212=xD4 - dicChar[18] = 198; //superscript on 18=x12 -> 108=xC6 - //superscript off ?? -> 109=xc7 - dicChar[19] = 209; //subscript on 19=x13 -> 209=D9 - //subscript off ?? -> 166->xA6 - - - // see exe\edit\vestdstp.c for some of these.... - dicChar[1] = 161; //Bold word or toggle - dicChar[2] = 162; //Underline word - // not used except in TRANSITIONS dicChar[3] = 164; //Bold/Uline word - // not used except in TRANSITIONS dicChar[4] = 165; //Italics word - dicChar[5] = 111; //Bold/Italics word - dicChar[6] = 111; //Bold/Uline word - //dicChar[7] = 111; //Bold/Uline/Italics word - dicChar[8] = 111; //super word - dicChar[9] = 111; - dicChar[10] = 111; - dicChar[11] = 111; - dicChar[12] = 111; - dicChar[14] = 111; - // ... 9-15 - dicChar[16] = 111; //subscript word - dicChar[17] = 111; - // ... 17-31 - dicChar[20] = 162; - dicChar[21] = 162; - dicChar[22] = 162; // toggle underline - dicChar[25] = 163; //subscript on 25=x19; 163=xA3 - dicChar[24] = 122; //subscript off (0x18) - dicChar[23] = 123; // underline next word - dicChar[31] = 163; - dicChar[26] = 163; - dicChar[27] = 163; - dicChar[28] = 163; - dicChar[29] = 163; - dicChar[30] = 163; - * */ - #endregion - - char[] creg = new char[dicChar.Count]; - int i = 0; - foreach (int ic in dicChar.Keys) - { - creg[i] = (char)ic; - i++; - } - Reg2 = new Regex("[" + new string(creg) + "]"); - } - public static string ReplaceChars(Match m) - { - char[] cs = m.Value.ToCharArray(); - for (int i = 0; i < cs.Length; i++) - { - if (dicChar.ContainsKey((int)(cs[i]))) - { - int iKey = (int)cs[i]; - int iValue = dicChar[iKey]; - //if(iKey<32 && iKey!=7)Console.WriteLine(" {0} {1} {2} {3}", iKey, (char)iKey, iValue, (char)iValue); - cs[i] = (char)iValue; - } - } - return new string(cs); - } - public static string ConvertText(string s1) - { - string s2 = Reg2.Replace(s1, new MatchEvaluator(ReplaceChars)); - return s2; - } - private string GetStringFromByteNoConvert(Byte[] barray, int offset) - { - offset--; - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - bool stillread = true; - do - { - input = barray[offset++]; - if (input == 0) stillread = false; - inpstr.Append(Convert.ToChar(input)); - cnt++; - } while (stillread); - - string retstr = inpstr.ToString(); - retstr = retstr.Replace('<', '{'); - retstr = retstr.Replace('>', '}'); - //retstr = ConvertText(retstr); - if (retstr.Substring(retstr.Length - 1, 1) == "\0") return retstr.Substring(0, retstr.Length - 1); - return retstr; - } - private string GetStringFromByte(Byte[] barray, int offset) - { - offset--; - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - bool stillread = true; - do - { - input = barray[offset++]; - if (input == 0) stillread = false; - inpstr.Append(Convert.ToChar(input)); - cnt++; - } while (stillread); - - string retstr = inpstr.ToString(); - retstr = retstr.Replace('<', '{'); - retstr = retstr.Replace('>', '}'); - retstr = ConvertText(retstr); - if (retstr.Substring(retstr.Length - 1, 1) == "\0") return retstr.Substring(0, retstr.Length - 1); - return retstr; - } - private string GetStringUntilNull(BinaryReader br) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - bool stillread = true; - do - { - try - { - input = br.ReadByte(); - if (input == 0) stillread = false; - inpstr.Append(Convert.ToChar(input)); - } - catch (System.IO.EndOfStreamException) - { - stillread = false; - } - cnt++; - } while (stillread); - - string retstr = inpstr.ToString(); - retstr = retstr.Replace('<', '{'); - retstr = retstr.Replace('>', '}'); - if (retstr.Substring(retstr.Length - 1, 1) == "\0") return retstr.Substring(0, retstr.Length - 1); - return retstr; - } - private string GetString(BinaryReader br, int len) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - do - { - try - { - input = br.ReadByte(); - inpstr.Append(Convert.ToChar(input)); - } - catch (System.IO.EndOfStreamException) - { - input = 0; - while (cnt < len) - { - inpstr.Append(Convert.ToChar(input)); - cnt++; - } - } - cnt++; - } while (cnt < len); - - string retstr = inpstr.ToString(); - retstr = retstr.Replace('<', '{'); - retstr = retstr.Replace('>', '}'); - if (retstr.Substring(retstr.Length - 1, 1) == "\0") return retstr.Substring(0, retstr.Length - 1); - return retstr; - } - #endregion - private VE_Font LoadVE_Font() - { - UInt32 ui = brFmt.ReadUInt32(); - //if (ui > 0) - Always set the font, even if it is 0 (default) - //{ - VE_Font retval = new VE_Font(ui); - return retval; - //} - //return null; - } - private VE_Font LoadVE_FontByte() - { - byte bt = brFmt.ReadByte(); - if (bt > 0) - { - VE_Font retval = new VE_Font(Convert.ToUInt32(bt)); - return retval; - } - return null; - } - #region XtraFlags - private void AddFlags(ref XtraFlgs XtraFlags, int i, Int16 flg) - { - if (i == 0) - { - if ((flg & DOUBLERNOSPACE) > 0) XtraFlags.DoubleRNOSpace = true.ToString(); - if ((flg & MIXCAUTIONSANDNOTES) > 0) XtraFlags.MixCautionsAndNotes = true.ToString(); - if ((flg & ALWAYSUSEEXTRALINES) > 0) XtraFlags.AlwaysUseExtralines = true.ToString(); - if ((flg & ALWAYSTABNOTE) > 0) XtraFlags.AlwaysTabNote = true.ToString(); - if ((flg & ALWAYSTABCAUTION) > 0) XtraFlags.AlwaysTabCaution = true.ToString(); - if ((flg & SPECIALPAGEBREAKFLAG) > 0) XtraFlags.SpecialPageBreakFlag = true.ToString(); - if ((flg & DONTPAGINATEONFIRSTSUBSTEP) > 0) XtraFlags.DontPaginateOnFirstSubStep = true.ToString(); - if ((flg & IMPERFECTSTRUCTURE) > 0) XtraFlags.ImperfectStructure = true.ToString(); - if ((flg & DONTUSEHALFLINES) > 0) XtraFlags.DontUseHalfLines = true.ToString(); - if ((flg & FORTRANFORMATNUMBERS) > 0) XtraFlags.FortranFormatNumbers = true.ToString(); - if ((flg & ALLUNITS) > 0) XtraFlags.AllUnits = true.ToString(); - if ((flg & CAPSTRANSITIONS) > 0) XtraFlags.CapsTransitions = true.ToString(); - } - else if (i == 1) - { - if ((flg & CAPTRANSTEP) > 0) XtraFlags.CapTranStep = true.ToString(); - if ((flg & TSTEPNOFLAG) > 0) XtraFlags.TSTepNoFlag = true.ToString(); - if ((flg & LOWERCASETRANNUMBER) > 0) XtraFlags.LowerCaseTranNumber = true.ToString(); - if ((flg & CONDENSEDCHANGEBAR) > 0) XtraFlags.CondensedChangeBar = true.ToString(); - if ((flg & DOREVDATE) > 0) XtraFlags.DoRevDate = true.ToString(); - if ((flg & SEPARATEBOX) > 0) XtraFlags.SeparateBox = true.ToString(); - if ((flg & NUMBERHIGHLEVELRNO) > 0) XtraFlags.NumberHighLevelRNO = true.ToString(); - if ((flg & ALTERNATEFOLDOUTPAGES) > 0) XtraFlags.AlternateFoldoutPages = true.ToString(); - if ((flg & DONTTRYTOFILLHALFOFPAGE) > 0) XtraFlags.DontTryToFillHalfOfPage = true.ToString(); - } - else if (i == 2) - { - if ((flg & DONTCAPITALIZETITLE) > 0) XtraFlags.DontCapitalizeTitle = true.ToString(); - if ((flg & NOSPACEDOUBLERNO) > 0) XtraFlags.NoSpaceDoubleRNO = true.ToString(); - if ((flg & DONTOFFSETTAB) > 0) XtraFlags.DontOffsetTab = true.ToString(); - if ((flg & UPSETPNTAFTRDASH) > 0) XtraFlags.UpSetpntAftrDash = true.ToString(); - if ((flg & LOWERCASEREVNUM) > 0) XtraFlags.LowerCaseRevnum = true.ToString(); - if ((flg & DONOTCOMPRESSSTEPS) > 0) XtraFlags.DoNotCompressSteps = true.ToString(); - if ((flg & REDUCELINEAFTERNOTEANDCAUT) > 0) XtraFlags.ReduceLineAfterNoteAndCaut = true.ToString(); - if ((flg & RNOSAMELEVEL) > 0) XtraFlags.RNOSameLevel = true.ToString(); - if ((flg & BOLDHIGHLEVELRNO) > 0) XtraFlags.BoldHighLevelRNO = true.ToString(); - if ((flg & ONELINEBEFORENOTECAUTIONTAB) > 0) XtraFlags.OneLineBeforeNoteCautionTab = true.ToString(); - if ((flg & CONTINUOUSCHANGEBARS) > 0) XtraFlags.ContinuousChangeBars = true.ToString(); - } - else if (i == 3) - { - if ((flg & DONTBOXAC) > 0) XtraFlags.DontBoxAC = true.ToString(); - if ((flg & USETOPCONTINUEMESSAGEATEND) > 0) XtraFlags.UseTopContinueMessageAtEnd = true.ToString(); - if ((flg & UPCASETRANAND) > 0) XtraFlags.UpcaseTranAnd = true.ToString(); - if ((flg & UPCASEALLSETPOINTUNITS) > 0) XtraFlags.UpcaseAllSetpointUnits = true.ToString(); - } - else if (i == 4) - { - if ((flg & DEV_FORMAT) > 0) XtraFlags.Dev_Format = true.ToString(); - if ((flg & DONTDOSTEXTRAATTOP) > 0) XtraFlags.DontDoSTExtraAtTop = true.ToString(); - if ((flg & XLINES_STEPFIX) > 0) XtraFlags.Xlines_StepFix = true.ToString(); - if ((flg & REBOXCAUTNOTE) > 0) XtraFlags.ReBoxCautNote = true.ToString(); - if ((flg & IMMSTEPSPCHDR) > 0) XtraFlags.IMMStepSpcHdr = true.ToString(); - if ((flg & FLOATINGCONTINUEMESSAGE) > 0) XtraFlags.FloatingContinueMessage = true.ToString(); - if ((flg & ABSOLUTEFIXEDCHANGECOLUMN) > 0) XtraFlags.AbsoluteFixedChangeColumn = true.ToString(); - if ((flg & LJBORDERLESSTABLE) > 0) XtraFlags.LJBorderlessTable = true.ToString(); - if ((flg & SUPPRESSANDINTRAN) > 0) XtraFlags.SuppressAndInTran = true.ToString(); - if ((flg & CAPHIGHSETPNT) > 0) XtraFlags.CapHighSetpnt = true.ToString(); - if ((flg & CAPSPIFLASTLOWER) > 0) XtraFlags.CapsPIFLastLower = true.ToString(); - if ((flg & CAPFIRSTLETTERINHIGHSP) > 0) XtraFlags.CapFirstLetterInHighSP = true.ToString(); - } - else if (i == 5) - { - if ((flg & ALTERNATEFLOATINGFOLDOUT) > 0) XtraFlags.AlternateFloatingFoldout = true.ToString(); - if ((flg & WRAPSAMEASEDIT) > 0) XtraFlags.WrapSameAsEdit = true.ToString(); - if ((flg & KEEPSTEPSONPAGE) > 0) XtraFlags.KeepStepsOnPage = true.ToString(); - if ((flg & SPECIFIEDSUBSTEPSONLY) > 0) XtraFlags.SpecifiedSubstepsOnly = true.ToString(); - if ((flg & THREEBLANKSABOVENOTESCAUTIONS) > 0) XtraFlags.ThreeBlanksAboveNotesCautions = true.ToString(); - if ((flg & IMPERFECTSUBSTEP) > 0) XtraFlags.ImperfectSubstep = true.ToString(); - if ((flg & DONTBREAKONSECTIONS) > 0) XtraFlags.DontBreakOnSections = true.ToString(); - if ((flg & NOSTEPNUMIFONLYONESTEP) > 0) XtraFlags.NoStepNumIfOnlyOneStep = true.ToString(); - if ((flg & SHOWSECTIONTITLES) > 0) XtraFlags.ShowSectionTitles = true.ToString(); - if ((flg & LJTABS) > 0) XtraFlags.LJTabs = true.ToString(); - if ((flg & DONTNUMBERRNOSUBS) > 0) XtraFlags.DontNumberRNOSubs = true.ToString(); - if ((flg & DROPCHECKOFF) > 0) XtraFlags.DropCheckOff = true.ToString(); - if ((flg & NOCHECKOFFSINRNO) > 0) XtraFlags.NoCheckOffsInRNO = true.ToString(); - } - else if (i == 6) - { - if ((flg & CHGBARMESSAGEFROMEDIT) > 0) XtraFlags.ChgBarMessageFromEdit = true.ToString(); - if ((flg & CHANGEBARTORNOSEP) > 0) XtraFlags.ChangeBarToRNOSep = true.ToString(); - if ((flg & CHGSTYLEPERSECTION) > 0) XtraFlags.ChangeStyleForEverySection = true.ToString(); - if ((flg & SECTIONLEVELFOLDOUTS) > 0) XtraFlags.SectionLevelFoldouts = true.ToString(); - if ((flg & BOXCONTACTIONS) > 0) XtraFlags.BoxContinousActions = true.ToString(); - if ((flg & DOSECTIONTRANS) > 0) XtraFlags.DoSectionTrans = true.ToString(); - if ((flg & UPSPIFPREVUPPER) > 0) XtraFlags.UpSpIfPrevUpper = true.ToString(); - if ((flg & CONTINUESECTIONHEADER) > 0) XtraFlags.ContinueSectionHeader = true.ToString(); - if ((flg & GLOBALPROCINFO) > 0) XtraFlags.GlobalProcInfo = true.ToString(); - if ((flg & COMPRESSHPSUB) > 0) XtraFlags.CompressHPSub = true.ToString(); - if ((flg & BULLETONCONTINUOUS) > 0) XtraFlags.BulletOnContinuous = true.ToString(); - if ((flg & CANCELSECTITLESONS2) > 0) XtraFlags.CancelSecTitlesOnS2 = true.ToString(); - if ((flg & NOENDFORSINGLE) > 0) XtraFlags.NoEndForSingle = true.ToString(); - if ((flg & USEMETASECTIONS) > 0) XtraFlags.UseMetaSections = true.ToString(); - } - else if (i == 7) - { - if ((flg & RNOCONTINUEONLY) > 0) XtraFlags.RNOContinueOnly = true.ToString(); - if ((flg & CAP1STCHARTRANS) > 0) XtraFlags.Cap1stCharTrans = true.ToString(); - if ((flg & DONTPAGINATEONFIRSTSUBSTEP3X) > 0) XtraFlags.DontPaginateOnFirstSubstep3X = true.ToString(); - if ((flg & RNOSEPAFTERAER) > 0) XtraFlags.RNOSepAfterAER = true.ToString(); - if ((flg & REVDATEWITHFORWARDSLASH) > 0) XtraFlags.RevDateWithForwardSlash = true.ToString(); - if ((flg & USEALTERNATESTEPBOX) > 0) XtraFlags.UseAlternateStepBox = true.ToString(); - if ((flg & CANCELSECTITLESONS1) > 0) XtraFlags.CancelSecTitlesOnS1 = true.ToString(); - if ((flg & SPECIALSTEPSFOLDOUT) > 0) XtraFlags.SpecialStepsFoldout = true.ToString(); - if ((flg & UNDERLINEAFTERDASHSPACE) > 0) XtraFlags.UnderlineAfterDashSpace = true.ToString(); - if ((flg & NOSPACEINNOTEORCAUTION) > 0) XtraFlags.NoSpaceInNoteOrCaution = true.ToString(); - if ((flg & USEXTRAREVNUMBER) > 0) XtraFlags.UseXtraRevNumber = true.ToString(); - if ((flg & UNDERLINESETPOINTS) > 0) XtraFlags.UnderlineSetpoints = true.ToString(); - if ((flg & DOSECTIONTRANSTYPEB) > 0) XtraFlags.DoSectionTransTypeB = true.ToString(); - if ((flg & PAGINATEONLOWERSTEPLEVEL) > 0) XtraFlags.PaginateOnLowerStepLevel = true.ToString(); - if ((flg & USETRANSITIONMODIFIER) > 0) XtraFlags.UseTransitionModifier = true.ToString(); - } - else if (i == 8) - { - if ((flg & CUSTOMSPACING) > 0) XtraFlags.CustomSpacing = true.ToString(); - if ((flg & ENHANCEDSHORTFORMDEV) > 0) XtraFlags.EnhancedShortFormDev = true.ToString(); - if ((flg & PAGEBREAKONHIGHLEVELSTEP) > 0) XtraFlags.PageBreakOnHighLevelStep = true.ToString(); - if ((flg & PAGEBREAKONCAUTIONS) > 0) XtraFlags.PageBreakOnCautions = true.ToString(); - if ((flg & PAGEBREAKONNOTES) > 0) XtraFlags.PageBreakOnNotes = true.ToString(); - if ((flg & ALIGNNULLTABWSECTHEAD) > 0) XtraFlags.AlignNullTabWSectHead = true.ToString(); - if ((flg & DONTUSESECTITLES) > 0) XtraFlags.DontUseSecTitles = true.ToString(); - if ((flg & TEXTSUBFOLLOWSTEXTSTYLE) > 0) XtraFlags.TextSubFollowsTextStyle = true.ToString(); - if ((flg & TRANSPROCTITLEINPAREN) > 0) XtraFlags.TranProcTitleInParen = true.ToString(); - if ((flg & HARDSPTRANPROCNUMB) > 0) XtraFlags.HardSpTranProcNumb = true.ToString(); - if ((flg & TREATANDORASSEQUENTIAL) > 0) XtraFlags.TreatAndOrAsSequential = true.ToString(); - if ((flg & DONTSPLITSTEPINPRNTSTEP) > 0) XtraFlags.DontSplitStepInPrntStep = true.ToString(); - if ((flg & LINEABOVEUNDERSECTION) > 0) XtraFlags.LineAboveUnderSection = true.ToString(); - } - else if (i == 9) - { - if ((flg & PICAIGNOREFIVESIXTHS) > 0) XtraFlags.PicaIgnoreFiveSixths = true.ToString(); - if ((flg & SPACEFORNOSECNUMB) > 0) XtraFlags.SpaceFoRNOSecNumb = true.ToString(); - if ((flg & NONEDITABLESTEPS) > 0) XtraFlags.NonEditableSteps = true.ToString(); - if ((flg & BOXEDSUBSTEPS) > 0) XtraFlags.BoxedSubsteps = true.ToString(); - if ((flg & DONTNUMBERHIGHLEVELSTEPS) > 0) XtraFlags.DontNumberHighLevelSteps = true.ToString(); - if ((flg & NOSTEPNUMBERFORHIGHLEVELRNO) > 0) XtraFlags.NoStepNumberForHighLevelRNO = true.ToString(); - if ((flg & PROMPTFORCAUTINTYPE) > 0) XtraFlags.PromptForCautinType = true.ToString(); - if ((flg & CAUTION1SAMEROWASPARENT) > 0) XtraFlags.Caution1SameRowAsParent = true.ToString(); - if ((flg & WOLFCREEKBACKGROUNDFORMAT) > 0) XtraFlags.WolfCreekBackgroundFormat = true.ToString(); - if ((flg & ENHANCEDSTEPNUMFROMPREV) > 0) XtraFlags.EnhancedStepNumFromPrev = true.ToString(); - } - else if (i == 10) - { - if ((flg & CONTROLUNDERLINESTYLE) > 0) XtraFlags.ControlUnderlineStyle = true.ToString(); - if ((flg & MULTIPLECHANGEIDS) > 0) XtraFlags.MultipleChangeIds = true.ToString(); - if ((flg & USEMULTILINESECTIONTITLE) > 0) XtraFlags.UseMultiLineSectionTitle = true.ToString(); - if ((flg & PAGEBREAKONFIRSTBLANKLINE) > 0) XtraFlags.PageBreakOnFirstBlankLine = true.ToString(); - if ((flg & DONTPRINTNOTITLE) > 0) XtraFlags.DontPrintNoTitle = true.ToString(); - if ((flg & UNDSPECIALSTEPSFOLDOUT) > 0) XtraFlags.UndSpecialStepsFoldout = true.ToString(); - if ((flg & PUTONPAGEBYITSELF) > 0) XtraFlags.PutOnPageByItself = true.ToString(); - } - else if (i == 11) - { - if ((flg & SECTITLECONTINUE) > 0) XtraFlags.SecTitleContinue = true.ToString(); - if ((flg & CANCELSECTITLESONE0) > 0) XtraFlags.CancelSecTitlesOnE0 = true.ToString(); - if ((flg & METASECTENDMESSAGE) > 0) XtraFlags.MetaSectEndMessage = true.ToString(); - if ((flg & CANCELSECTITLESONE2) > 0) XtraFlags.CancelSecTitlesOnE2 = true.ToString(); - if ((flg & COMPRESSHPSUPER) > 0) XtraFlags.CompressHPSuper = true.ToString(); - } - else if (i == 12) - { - if ((flg & MATCHUPRNOCAUTNOTE) > 0) XtraFlags.MatchUpRNOCautNote = true.ToString(); - if ((flg & PAGINATEATHIGHESTPAGINLEVEL) > 0) XtraFlags.PaginateAtHighestPaginLevel = true.ToString(); - if ((flg & USELONGPROCTITLES) > 0) XtraFlags.UseLongProcTitles = true.ToString(); - if ((flg & SPECIALLANDSCAPEMODE) > 0) XtraFlags.SpecialLandscapeMode = true.ToString(); - if ((flg & RNOINPAGELIST) > 0) XtraFlags.RNOInPagelist = true.ToString(); - if ((flg & STPCAUTNOTETABINPAGELIST) > 0) XtraFlags.StpCautNoteTabInPagelist = true.ToString(); - if ((flg & READONLYTYPEINCONTMSG) > 0) XtraFlags.ReadOnlyTypeInContMsg = true.ToString(); - } - else if (i == 13) - { - if ((flg & CENTERONELINEONLY) > 0) XtraFlags.CenterOneLineOnly = true.ToString(); - if ((flg & TIETABTOLEVEL) > 0) XtraFlags.TieTabToLevel = true.ToString(); - if ((flg & ACCESSORYDOCSINDUPLEX) > 0) XtraFlags.AccessoryDocsInDuplex = true.ToString(); - if ((flg & FOLDOUTSINDUPLEX) > 0) XtraFlags.FoldoutsInDuplex = true.ToString(); - if ((flg & USESTEXTRAREALVALUE) > 0) XtraFlags.UseSTExtraRealValue = true.ToString(); - if ((flg & SUBTABLEGETSUP1LEVEL) > 0) XtraFlags.SubTableGetSup1Level = true.ToString(); - if ((flg & DONTCOUNTFOLDOUTPAGES) > 0) XtraFlags.DontCountFoldoutPages = true.ToString(); - if ((flg & SEARCHALLREPLACEWORDS) > 0) XtraFlags.SearchAllReplaceWords = true.ToString(); - } - else if (i == 14) - { - if ((flg & REMEMBERCAUTIONSANDNOTES) > 0) XtraFlags.RememberCautionsAndNotes = true.ToString(); - if ((flg & RTFADJUSTMENTS) > 0) XtraFlags.RtfAdjustments = true.ToString(); - if ((flg & CENTERONELINEADJUST) > 0) XtraFlags.CenterOneLineAdjust = true.ToString(); - if ((flg & COUNTALLSUBLEVELS) > 0) XtraFlags.CountAllSubLevels = true.ToString(); - if ((flg & DONTREPLACEWORDSINROS) > 0) XtraFlags.DontReplaceWordsInROs = true.ToString(); - if ((flg & HIGHLEVELRNOBEFOREAERSUBSTPS) > 0) XtraFlags.HighLevelRNOBeforeAERSubStps = true.ToString(); - if ((flg & UNDERLINEALLMETATITLES) > 0) XtraFlags.UnderlineAllMetaTitles = true.ToString(); - if ((flg & DONTBREAKCAUTIONSORNOTES) > 0) XtraFlags.DontBreakCautionsOrNotes = true.ToString(); - if ((flg & BOLDONLYSECTIONZERO) > 0) XtraFlags.BoldOnlySectionZero = true.ToString(); - if ((flg & DONTBREAKONRNO) > 0) XtraFlags.DontBreakOnRNO = true.ToString(); - if ((flg & RNOCHECKOFFSAMEASPARENT) > 0) XtraFlags.RNOCheckOffSameAsParent = true.ToString(); - if ((flg & USESTEPTYPEWIDTHOVERRRIDE) > 0) XtraFlags.UseStepTypeWidthOverride = true.ToString(); - if ((flg & WOLFCREEKCKLFORMAT) > 0) XtraFlags.WolfcreekCKLFormat = true.ToString(); - } - else if (i == 15) - { - if ((flg & DONTPAGINATEONFIRSTSUBSTEP2X) > 0) XtraFlags.DontPaginateOnFirstSubStep2X = true.ToString(); - if ((flg & USESTEPTYPEWIDTHOVERRRIDEEDITPRINT) > 0) XtraFlags.UseStepTypeWidthOverrideEditPrint = true.ToString(); - if ((flg & PARTIALSTEPCOMPRESSION) > 0) XtraFlags.PartialStepCompression = true.ToString(); - if ((flg & USESMARTTEMPLATE) > 0) XtraFlags.UseSmartTemplate = true.ToString(); - if ((flg & CHECKOFFONHLSONLY) > 0) XtraFlags.CheckoffOnHLSOnly = true.ToString(); - if ((flg & CAUTION2SAMEROWASPARENT) > 0) XtraFlags.Caution2SameRowAsParent = true.ToString(); - if ((flg & CENTERTEXTWITHINWIDTH) > 0) XtraFlags.CenterTextWithinWidth = true.ToString(); - if ((flg & DONTBREAKEQUIPMENTLIST) > 0) XtraFlags.DontBreakEquipmentList = true.ToString(); - if ((flg & ALWAYSTABCAUTION2) > 0) XtraFlags.AlwaysTabCaution2 = true.ToString(); - if ((flg & VIRTUALDOTINHLSTAB) > 0) XtraFlags.VirtualDotInHLSTab = true.ToString(); - if ((flg & IMPERFECTSTRUCTUREPLUS4) > 0) XtraFlags.ImperfectStructurePlus4 = true.ToString(); - } - else if (i == 16) - { - if ((flg & USERNOTYPEINACTABLE) > 0) XtraFlags.UseRNOTypeInActable = true.ToString(); - if ((flg & ABSOLUTETRANSITIONUPDATE) > 0) XtraFlags.AbsoluteTransitionUpdate = true.ToString(); - if ((flg & SEPARATEBOXCAUTIONS) > 0) XtraFlags.SeparateBoxCautions = true.ToString(); - if ((flg & HLSTEXTINPAGELIST) > 0) XtraFlags.HLSTextInPagelist = true.ToString(); - if ((flg & LOWERCASESTEPINTRAN) > 0) XtraFlags.LowerCaseStepInTran = true.ToString(); - if ((flg & CHANGEBARSONLINKEDTEXT) > 0) XtraFlags.ChangeBarsOnLinkedText = true.ToString(); - if ((flg & QUOTEDSUBSTEPS) > 0) XtraFlags.QuotedSubsteps = true.ToString(); - } - else if (i == 17) - { - if ((flg & OVERRIDEENHANCEDTABS) > 0) XtraFlags.OverrideEnhancedTabs = true.ToString(); - if ((flg & NONEWLINEAFTERRNO) > 0) XtraFlags.NoNewlineAfterRNO = true.ToString(); - if ((flg & DOSECTIONSEPARATORLINE) > 0) XtraFlags.DoSectionSeparatorLine = true.ToString(); - if ((flg & PARENSONEXTPAGENUMTRANS) > 0) XtraFlags.ParensOnExtPagenumTrans = true.ToString(); - if ((flg & ATLEASTTWODIGITSFORHLS) > 0) XtraFlags.AtLeastTwoDigitsForHLS = true.ToString(); - if ((flg & DONTBREAKOPTEQUIPMENTLIST) > 0) - XtraFlags.DontBreakOptEquipmentList = true.ToString(); - if ((flg & PAGELISTCHANGEIDSWITHCOMMAS) > 0) XtraFlags.PagelistChangeIDsWithCommas = true.ToString(); - if ((flg & DONTSTARTLINEWITHDASH) > 0) XtraFlags.DontStartLineWithDash = true.ToString(); - if ((flg & NOBLANKLINEBEFORESUBSTEP) > 0) XtraFlags.NoBlankLineBeforeSubstep = true.ToString(); - if ((flg & DONTBREAKCAUTIONSNOTESONSUBSTPS) > 0) XtraFlags.DontBreakCautionsNotesOnSubstps = true.ToString(); - if ((flg & DONTCONVERTCARETTODELTA) > 0) XtraFlags.DontConvertCaretToDelta = true.ToString(); - } - else if (i == 18) - { - if ((flg & NORNO) > 0) XtraFlags.NoRNO = true.ToString(); - if ((flg & ONLYSINGLECOLUMN) > 0) XtraFlags.OnlySingleColumn = true.ToString(); - if ((flg & XCHNGTRANSPFORHARD) > 0) XtraFlags.XChngTranSpForHard = true.ToString(); - if ((flg & WOLFCREEKCKLBACKGNDFORMAT) > 0) XtraFlags.WolfcreekCKLBackgndFormat = true.ToString(); - } - } - #endregion - #region ReadInFile - private float RowToPoints(int i) - { - return (i * 12); // row_in_points = input * 72/6, row = input * 12 - } - private float ColToPoints(float f, uint style) - { - return 72 * (f / CvtFont.CvtFont.GetPrintPitch(style)); - } - string _AlternateIndex = null; - int[] rtCheckOffGroups = new int[MAXSTEPS + 1]; - private string _fmtFileName; - private uint _PlantDefaultFontStyle; - public bool ReadInFmtFile(ref FormatData fmtdata, ref XtraFlgs XtraFlags, string fname) - { - _fmtFileName = fname; - int[] tmpshort3 = new int[3]; - ArrayList stringoffsets = new ArrayList(); - byte tmpbyte; - Int16 tmpshort; - string tmpstr; - try - { - tmpshort = brFmt.ReadInt16(); - fmtdata.Name = GetStringUntilNull(brFmt); - for (int i = 0; i < 3; i++) - { - tmpshort = brFmt.ReadInt16(); - tmpstr = GetStringUntilNull(brFmt); - } - - short vnum = brFmt.ReadInt16(); // number of ints, etc. - long posatints = brFmt.BaseStream.Position; - long tstloc = vnum + posatints; - fmtdata.FontData = new VE_Font(0); - #region LoadInts - tmpbyte = brFmt.ReadByte(); // FirstChar - - // NOTE 16bit had xtraflag as 18 & had a VEAIRFlag. VEAIRFlag actually - // had some flags used in other formats besides it, so these were rolled - // into the xtraflag array just to make conversion easier. - Int16[] xtraflag = new Int16[19]; - for (int i = 0; i < 19; i++) - { - xtraflag[i] = brFmt.ReadInt16(); - AddFlags(ref XtraFlags, i, xtraflag[i]); - } - // if this format has an associated PSI or TPL file, just read in the string & save - // it. - string otherfile = MyPath + @"\" + fname.Substring(0, fname.LastIndexOf(".")) + @".tpl"; - if (File.Exists(otherfile)) - fmtdata.TPL = FixXmlString(File.ReadAllText(otherfile)); - // http://www.w3.org/TR/2000/REC-xml-20001006#NT-Char - otherfile = MyPath + @"\" + fname.Substring(0, fname.LastIndexOf(".")) + @".ini"; - if (File.Exists(otherfile)) PsiIniToXml(ref fmtdata, otherfile); - fmtdata.PurchaseOptions = ((E_PurchaseOptions)brFmt.ReadInt16()).ToString(); - fmtdata.ProcData.ProcForeColor = "Black"; - fmtdata.ProcData.ProcBackColor = "White"; - fmtdata.EditData = new GeneralEditor(); - fmtdata.EditData.EMode = ((E_EMode)brFmt.ReadInt16()).ToString(); - fmtdata.SectData = new Section(); - fmtdata.SectData.SectForeColor = "Black"; - fmtdata.SectData.SectBackColor = "White"; - fmtdata.SectData.StepSectionData = new StepSection(); - fmtdata.SectData.StepSectionData.TopRow = (Int16)(RowToPoints(brFmt.ReadInt16())); - tmpshort = brFmt.ReadInt16(); // Appendlines - not used. - fmtdata.PrintData = new GeneralPrint(); - fmtdata.PrintData.DoPrnDrvrAdjusts = brFmt.ReadInt16(); - fmtdata.StepData = new Step[MAXSTEPS + 1]; // add 1 for the 'BASE' - for (int i = 0; i < MAXSTEPS + 1; i++) - { - fmtdata.StepData[i].Type = StepTypes[i]; - fmtdata.StepData[i].ParentType = ParentTypes[i]; - if (i == 1) - { - _PlantDefaultFontStyle = brFmt.ReadUInt32(); - fmtdata.StepData[0].Font = new VE_Font(_PlantDefaultFontStyle); - fmtdata.FontData = fmtdata.StepData[0].Font.Copy(); - //fmtdata.StepData[1].Font will inherit the Base Font - } - if (i > 1) - { - uint tmpuint = brFmt.ReadUInt32(); - if (i == 40 && tmpuint == 0) // check if RNOtype's font = 0, if so use the plant default - { - fmtdata.StepData[i].Font = new VE_Font(_PlantDefaultFontStyle); - } - else - fmtdata.StepData[i].Font = new VE_Font(tmpuint); - } - } - for (int i = 1; i < MAXSTEPS + 1; i++) - { - Int16 tmpcoli = brFmt.ReadInt16(); - int tmpcol = (tmpcoli & 0x0F00) >> 8; - if (tmpcol > 0 && tmpcol < WinColors.Length) - fmtdata.StepData[i].StepLayoutData.ForeColor = WinColors[tmpcol]; - else - fmtdata.StepData[i].StepLayoutData.ForeColor = "Black"; - tmpcol = (tmpcoli & 0xF); - if (tmpcol > 0 && tmpcol < WinColors.Length) - fmtdata.StepData[i].StepLayoutData.BackColor = WinColors[tmpcol]; - else - fmtdata.StepData[i].StepLayoutData.BackColor = "White"; - } - fmtdata.StepData[0].StepLayoutData.ForeColor = "Black"; - fmtdata.StepData[0].StepLayoutData.BackColor = "White"; - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepLayoutData.STExtraSpace = (RowToPoints(brFmt.ReadInt16())).ToString(); - for (int i = 1; i < MAXSTEPS + 1; i++) - { - Int16 itmp = brFmt.ReadInt16(); - if (fmtdata.StepData[i].Font != null && fmtdata.StepData[i].Font.IsBoxed) fmtdata.StepData[i].StepLayoutData.STBoxindex = (itmp + 1).ToString(); - } - - // Read the tab indexes into a temporary array. Once the tab strings are read - // in the structure's data will be added. - Tabindx = new Int16[MAXSTEPS]; - for (int i = 0; i < MAXSTEPS; i++) Tabindx[i] = brFmt.ReadInt16(); - - for (int i = 1; i < MAXSTEPS + 1; i++) - { - fmtdata.StepData[i].StepPrintData = new Print(); - fmtdata.StepData[i].StepPrintData.PosAdjust = ((Int16)(RowToPoints(brFmt.ReadInt16()))).ToString(); - } - - // NOTE a default is added for boxes for the default box for tables, if - // they are boxed. - fmtdata.BoxData = new Box[MAXBOXES + 1]; - // convert these to points. Also, each set of data had 24, not 12 box fields, the - // second twelve for RTF. For now, I'm going to just skip these. They can be added in - // later - // Note that the box start (we think) and the box end locations used ELITE, at 12 characters per inch, - // for locating the line draw/box drawing. - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].Start = ColToPoints(brFmt.ReadInt16(), CvtFont.CvtFont.ELITE); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].End = ColToPoints(brFmt.ReadInt16(), CvtFont.CvtFont.ELITE); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].TxtStart = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].TxtWidth = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].Height = RowToPoints(brFmt.ReadInt16()); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].TabPos = RowToPoints(brFmt.ReadInt16()); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadInt16(); - tmpshort = brFmt.ReadInt16(); // TransitionCautionOffset - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].Font = LoadVE_Font(); - int tmpint; - for (int i = 1; i < MAXBOXES + 1; i++) tmpint = brFmt.ReadInt32(); - for (int i = 0; i < MAXTABS; i++) - { - VE_Font st = LoadVE_Font(); - if (i == 0) - { - fmtdata.StepData[0].TabData.Font = st == null ? null : st.Copy(); - fmtdata.StepData[0].TabData.Justify = st == null ? "None" : st.FontJustify; - if (st != null && st.FontCheckOff != "None") - { - if (fmtdata.StepData[0].TabData.MacroList == null) fmtdata.StepData[0].TabData.MacroList = new COMacro[1]; - fmtdata.StepData[0].TabData.MacroList[0].Name = "CHECKOFF"; - fmtdata.StepData[0].TabData.MacroList[0].Macro = "C22"; - if (rtCheckOffGroups[0] != 0) fmtdata.StepData[0].TabData.MacroList[0].Grouping = rtCheckOffGroups[0].ToString(); - } - for (int j = 0; j < MAXSTEPS; j++) - { - if (Tabindx[j] == -1) - { - fmtdata.StepData[j + 1].TabData.UsePreviousStyle = "True"; - fmtdata.StepData[j + 1].TabData.Font = st == null ? null : st.Copy(); - fmtdata.StepData[j + 1].TabData.Justify = st == null ? "None" : st.FontJustify; - //fmtdata.StepData[j+1].TabData.CheckOff = st == null ? "None" : st.FontCheckOff; - - if (st != null && st.FontCheckOff != "None") - { - fmtdata.StepData[j + 1].TabData.MacroList = new COMacro[1]; - fmtdata.StepData[j + 1].TabData.MacroList[0].Name = "CHECKOFF"; - fmtdata.StepData[j + 1].TabData.MacroList[0].Macro = st.FontCheckOff == "Right" ? "C22" : "M20"; - if (rtCheckOffGroups[j + 1] != 0) fmtdata.StepData[j + 1].TabData.MacroList[0].Grouping = rtCheckOffGroups[j + 1].ToString(); - } - } - } - } - for (int j = 0; j < MAXSTEPS; j++) - { - if (Tabindx[j] == i) - { - fmtdata.StepData[j + 1].TabData.Font = st == null ? null : st.Copy(); - fmtdata.StepData[j + 1].TabData.Justify = st == null ? "None" : st.FontJustify; - //fmtdata.StepData[j+1].TabData.CheckOff = st == null ? "None" : st.FontCheckOff; - if (st != null && st.FontCheckOff != "None") - { - fmtdata.StepData[j + 1].TabData.MacroList = new COMacro[1]; - fmtdata.StepData[j + 1].TabData.MacroList[0].Name = "CHECKOFF"; - fmtdata.StepData[j + 1].TabData.MacroList[0].Macro = st.FontCheckOff == "Right" ? "C22" : "M20"; - //if (rtCheckOffGroups[j + 1] != 0) fmtdata.StepData[j + 1].TabData.MacroList[0].Grouping = rtCheckOffGroups[j + 1]; - } - } - } - } - for (int i = 1; i < MAXSTEPS + 1; i++) - { - fmtdata.StepData[i].StepEditData.AcTable = ((E_AccStep)brFmt.ReadInt16()).ToString(); - if (fmtdata.StepData[i].StepEditData.AcTable == "0") - fmtdata.StepData[i].StepEditData.AcTable = null; - } - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepLayoutData.EveryNLines = (brFmt.ReadInt16()).ToString(); - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepLayoutData.SpaceBefore = "0"; - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepLayoutData.SpaceAfter = (RowToPoints(1)).ToString(); - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepLayoutData.AlwaysUpperCase = (brFmt.ReadInt16()).ToString(); - - fmtdata.SectData.StepSectionData.StpSectLayData = new StepSectionLayout(); - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage = new TopOfPg(); - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font = LoadVE_Font(); - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Row = RowToPoints(brFmt.ReadInt16()); - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Col = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - - fmtdata.SectData.StepSectionData.StpSectPrtData = new StepSectionPrint(); - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle = LoadVE_Font(); - fmtdata.SectData.StepSectionData.StpSectLayData.Separator = new Separtr(); - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font = LoadVE_Font(); - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.SeparatorLocation = brFmt.ReadInt16(); - - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepLayoutData.PageBreakAtTypeChange = (brFmt.ReadInt16()).ToString(); - fmtdata.SectData.StepSectionData.StpSectLayData.LastLineToStartStep = RowToPoints(brFmt.ReadInt16()); - - /* To do TextTypeValue - not sure how this is used & where to store it, so temporarily read it in */ - //fmtdata.SectData.StepSectionData.TextTypeValue = new Int16[10]; - //for (int i = 0; i < 10; i++) fmtdata.SectData.StepSectionData.TextTypeValue[i] = brFmt.ReadInt16(); - - Int16[] TextTypeValue = new Int16[10]; - for (int i = 0; i < 10; i++) TextTypeValue[i] = brFmt.ReadInt16(); - - for (int i = 0; i < 10; i++) tmpint = brFmt.ReadInt32(); // DontPrintInSection - not used. - - tmpshort = brFmt.ReadInt16(); // LeftMarginReset - not used. - tmpshort = brFmt.ReadInt16(); // OmitErgEopUsage - not used. - - fmtdata.SectData.StepSectionData.StpSectLayData.LineDrawingOption = brFmt.ReadInt16(); - fmtdata.SectData.StepSectionData.StpSectLayData.ColS = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - - fmtdata.SectData.StepSectionData.StpSectEditData = new StepSectionEdit(); - fmtdata.SectData.StepSectionData.StpSectEditData.ColSScreenAdj = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.StepSectionData.StpSectEditData.ScrnAdjRNOText = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.StepSectionData.StpSectLayData.ColT = ColToPoints(brFmt.ReadInt16(), 0); - tmpshort = brFmt.ReadInt16(); // Coltincr - not used - tmpshort = brFmt.ReadInt16(); // ColTab - not used - fmtdata.SectData.StepSectionData.StpSectLayData.ColAbs = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.StepSectionData.StpSectLayData.WidT = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - tmpshort = brFmt.ReadInt16(); // WidTab - not used. - fmtdata.SectData.StepSectionData.StpSectLayData.PMode = brFmt.ReadInt16(); - - fmtdata.SectData.StepSectionData.StpSectLayData.MaxRNO = brFmt.ReadInt16(); - - // maxrnotable, colrtable, widstable, and colrscreen all have three values. - for (int i = 0; i < 3; i++) tmpshort3[i] = brFmt.ReadInt16(); - tmpstr = string.Format("{0},{1},{2}", tmpshort3[0], tmpshort3[1], tmpshort3[2]); - fmtdata.SectData.StepSectionData.StpSectLayData.MaxRNOTable = tmpstr; - - float[] tmpfloat = new float[3]; - for (int i = 0; i < 3; i++) tmpfloat[i] = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - tmpstr = string.Format("{0},{1},{2}", tmpfloat[0], tmpfloat[1], tmpfloat[2]); - fmtdata.SectData.StepSectionData.StpSectLayData.ColRTable = tmpstr; - - float[] tmpfloata = new float[3]; - for (int i = 0; i < 3; i++) - { - tmpfloat[i] = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - tmpfloata[i] = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - } - tmpstr = string.Format("{0},{1},{2}", tmpfloat[0], tmpfloat[1], tmpfloat[2]); - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = tmpstr; - tmpstr = string.Format("{0},{1},{2}", tmpfloata[0], tmpfloata[1], tmpfloata[2]); - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = tmpstr; - - for (int i = 0; i < 3; i++) tmpfloat[i] = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - tmpstr = string.Format("{0},{1},{2}", tmpfloat[0], tmpfloat[1], tmpfloat[2]); - fmtdata.SectData.StepSectionData.StpSectEditData.ColRScreen = tmpstr; - - fmtdata.SectData.StepSectionData.StpSectLayData.AdjRNOCol = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - - ChangeBar cb = new ChangeBar(); - - cb.ChangeBarMessage = ((E_ChangeBarMessage)brFmt.ReadUInt16()).ToString(); - - cb.FixedChangeColumn = brFmt.ReadInt16(); - cb.FixedAERChangeColumn = brFmt.ReadByte(); - - //read in a number of format items that are not supported... - for (int i = 0; i < 3; i++) tmpshort3[i] = brFmt.ReadInt16(); // BD_PageNumOnCover - not used. - - tmpshort = brFmt.ReadInt16(); // VESearchLeftMargin - not used (same for rest that list varname. - tmpshort = brFmt.ReadInt16(); // VEStdPrtLeftMarE - tmpshort = brFmt.ReadInt16(); // VEStdPrtLeftMarP - - int tmplong = brFmt.ReadInt32(); // ImperfectSTructureSepStyle - tmpshort = brFmt.ReadInt16(); // FormsLPI - tmplong = brFmt.ReadInt32(); // FormsStyle - tmplong = brFmt.ReadInt32(); // FormsBoxStyle - tmpshort = brFmt.ReadInt16(); // FormsMargin - tmpshort = brFmt.ReadInt16(); // ChangeSummaryLPI - - cb.ChangeSummaryStyle = brFmt.ReadInt32(); // this may be moved into a different struct - cb.ChangeBarStyle = brFmt.ReadInt32(); - fmtdata.ProcData.ChangeBarData = cb; - - for (int i = 0; i < 30; i++) tmpshort = brFmt.ReadInt16(); // XPosition - - fmtdata.ProcData.TitleLength = brFmt.ReadInt16(); - fmtdata.ProcData.CoverTitleLength = brFmt.ReadInt16(); - - fmtdata.ProcData.CheckOffData = new CheckOffData(); - // for the Base format, set the Default Change bar locations from hardcoded - // data in the 16-bit program: (ovrchgbr.c) - if (!HasBase) fmtdata.ProcData.ChangeBarData.DefaultCBLoc = "0,85,-85,-3"; - int[] rightCheckOffBox = new int[4]; - for (int i = 0; i < 4; i++) - { - rightCheckOffBox[i] = brFmt.ReadInt16(); - } - int DefaultCheckOffType = (rightCheckOffBox[2] > 0) ? rightCheckOffBox[2] : rightCheckOffBox[3] >> 8; - fmtdata.ProcData.CheckOffData.AllowSectEdit = DefaultCheckOffType == 1 || (rightCheckOffBox[0] > 0 || rightCheckOffBox[1] > 0) ? "True" : "False"; - fmtdata.ProcData.CheckOffData.AllowStepEdit = DefaultCheckOffType >= 1 ? "True" : "False"; - tmpshort = brFmt.ReadInt16(); // TwoCheckOffs - fmtdata.ProcData.CheckOffData.CheckOffList = new CheckOff[MAXCHECKOFFS]; - for (int i = 0; i < MAXCHECKOFFS; i++) fmtdata.ProcData.CheckOffData.CheckOffList[i].Index = i; - for (int i = 0; i < MAXCHECKOFFS; i++) fmtdata.ProcData.CheckOffData.CheckOffList[i].UIMark = brFmt.ReadByte(); - for (int i = 0; i < MAXCHECKOFFS; i++) fmtdata.ProcData.CheckOffData.CheckOffList[i].CheckOffXtraLines = brFmt.ReadByte(); // CheckOffXtraLines - for (int i = 0; i < MAXCHECKOFFS; i++) fmtdata.ProcData.CheckOffData.CheckOffList[i].CheckOffWidAdjust = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - for (int i = 0; i < MAXCHECKOFFS; i++) tmpbyte = brFmt.ReadByte(); // CheckOffFeatures - fmtdata.ProcData.CheckOffData.CheckOffHeaderList = new CheckOffHeader[MAXCHKHEADINGS]; - for (int i = 0; i < MAXCHKHEADINGS; i++) fmtdata.ProcData.CheckOffData.CheckOffHeaderList[i].Index = i; - for (int i = 0; i < MAXCHKHEADINGS; i++) fmtdata.ProcData.CheckOffData.CheckOffHeaderList[i].Font = LoadVE_Font(); - fmtdata.ProcData.CheckOffData.UseCheckOffsIn = brFmt.ReadInt32(); - tmplong = (int)brFmt.ReadUInt32(); - fmtdata.SectData.StepSectionData.StpSectLayData.EndMessagePos = brFmt.ReadInt16(); - tmpshort = brFmt.ReadInt16(); // CenterTableAdjustment - tmpshort = brFmt.ReadInt16(); // NumberOfLinesForNoteOrCaution - - //for (int i = 0; i < MAXSEQ; i++) fmtdata.SectData.StepSectionData.SeqStart[i] = brFmt.ReadByte(); - fmtdata.SectData.StepSectionData.SequentialTabFormat = new SeqTabFmt[MAXSEQ]; - for (int i = 0; i < MAXSEQ; i++) - { - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = ConvertSeqStart(brFmt.ReadByte()); - } - - //fmtdata.SectData.StepSectionData.HighSeqStart = brFmt.ReadByte(); - tmpbyte = brFmt.ReadByte(); // HighSeqStart - fmtdata.SectData.StepSectionData.IndentToken = brFmt.ReadByte(); - - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrCol = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle = LoadVE_Font(); - - ReplaceStr[] repstr = new ReplaceStr[MAXREPLACE]; - fmtdata.SectData.ReplaceStrData = repstr; - for (int i = 0; i < 60; i++) repstr[i].Flag = ((E_ReplaceStr)brFmt.ReadUInt32()).ToString(); - - for (int i = 0; i < 2; i++) tmpshort3[i] = brFmt.ReadInt16(); - tmpstr = string.Format("{0},{1}", tmpshort3[0], tmpshort3[1]); - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = tmpstr; - fmtdata.SectData.StepSectionData.StpSectLayData.HLSWidthOVRD = brFmt.ReadInt16(); - fmtdata.SectData.StepSectionData.StpSectPrtData.SecColHdrforActPMode = brFmt.ReadInt16(); - - for (int i = 0; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].Index = i; - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepLayoutData.AlignWithParentTab = (brFmt.ReadByte()).ToString(); - - fmtdata.SectData.SectionNumber = new SectionNum(); - fmtdata.SectData.SectionHeader = new SectionHead(); - fmtdata.SectData.SectionNumber.Font = LoadVE_Font(); - fmtdata.SectData.SectionHeader.Font = LoadVE_Font(); - fmtdata.SectData.SectionNumber.Pos = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.SectionNumber.Just = ((E_PageStructMod)brFmt.ReadByte()).ToString(); - fmtdata.SectData.SectionHeader.Pos = ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle); - fmtdata.SectData.SectionHeader.Just = ((E_PageStructMod)brFmt.ReadByte()).ToString(); - - for (int i = 0; i < 10; i++) tmpbyte = brFmt.ReadByte(); // SecLevelDelta - fmtdata.SectData.SectionTitleLength = brFmt.ReadInt16(); - tmpshort = brFmt.ReadInt16(); - - rtCheckOffGroups[0] = 0; - for (int i = 1; i < MAXSTEPS + 1; i++) rtCheckOffGroups[i] = (brFmt.ReadInt16()); - for (int i = 1; i < MAXSTEPS + 1; i++) - { - // if the grouping is > 0, then use the 'right check off' macro WHEN there - // are more than rtCheckOffGroups[i] of the step type. - if (rtCheckOffGroups[i] != 0) - { - if (fmtdata.StepData[i].TabData.MacroList == null) - { - fmtdata.StepData[i].TabData.MacroList = new COMacro[1]; - fmtdata.StepData[i].TabData.MacroList[0].Name = "CHECKOFF"; - fmtdata.StepData[i].TabData.MacroList[0].Macro = "C22"; - } - fmtdata.StepData[i].TabData.MacroList[0].Grouping = rtCheckOffGroups[i].ToString(); - } - } - for (int i = 0; i < 100; i++) tmpshort = brFmt.ReadInt16(); // TypeGroups - for (int i = 0; i < 20; i++) tmpshort = brFmt.ReadInt16(); // EnhancedSubTypes; - - fmtdata.SectData.StepSectionData.StpSectLayData.SubPaginationWght = brFmt.ReadInt16(); - fmtdata.SectData.StepSectionData.StpSectLayData.TextTitleAdjustment = brFmt.ReadInt16(); - - for (int i = 1; i < MAXSTEPS + 1; i++) tmpshort = brFmt.ReadInt16(); // STAfterLines - - fmtdata.TransData.TransTypeData = new TransTypes[MAXTRANS]; - for (int i = 0; i < MAXTRANS; i++) - { - fmtdata.TransData.TransTypeData[i].TransType = brFmt.ReadByte(); - if (i < 6 && fmtdata.TransData.TransTypeData[i].TransType == 0) fmtdata.TransData.TransTypeData[i].TransType = (byte)i; - } - for (int i = 0; i < MAXTRANS; i++) tmpbyte = brFmt.ReadByte(); // TransMode - for (int i = 0; i < MAXTRANS; i++) tmpbyte = brFmt.ReadByte(); // OutsideTransType - - for (int i = 0; i < MAXSTEPS; i++) fmtdata.StepData[i].StepLayoutData.StepTypeWidthOverride = (ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle)).ToString(); - - // auto table of contents data - AccSection accsec = new AccSection(); - - TOC toc = new TOC(); - toc.TofCSecNumPos = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - toc.TofCSecTitlePos = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - tmpbyte = brFmt.ReadByte(); // TofCSecTitlePos2 - toc.TofCSecTitleLen = brFmt.ReadByte(); - toc.TofCPageNumPos = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - toc.TofCSpaceChar = brFmt.ReadByte(); - toc.TofCLineSpacing = brFmt.ReadByte(); - toc.Font = LoadVE_FontByte(); ; - accsec.TableOfContentsData = toc; - for (int i = 0; i < MAXSTEPS; i++) tmpbyte = brFmt.ReadByte(); - - fmtdata.ProcData.CheckOffData.CheckOffAdjustment = brFmt.ReadSByte(); - - tmpshort = brFmt.ReadInt16(); // ColsAdjustInS2 - tmpbyte = brFmt.ReadByte(); // SeriesTitleLength; - - for (int i = 1; i < MAXSTEPS + 1; i++) - { - sbyte[] vp = new sbyte[15]; - for (int j = 0; j < 15; j++) vp[j] = brFmt.ReadSByte(); - bool hasdata = false; - for (int j = 0; j < 15; j++) - { - if (vp[j] != '\0') - { - hasdata = true; - break; - } - } - if (!hasdata) - fmtdata.StepData[i].VertPos = null; - else - { - fmtdata.StepData[i].VertPos = null; - for (int j = 0; j < 15; j++) - fmtdata.StepData[i].VertPos = fmtdata.StepData[i].VertPos + string.Format("{0},", vp[j]); - fmtdata.StepData[i].VertPos = fmtdata.StepData[i].VertPos.Substring(0, fmtdata.StepData[i].VertPos.Length - 1); // remove last "," - } - } - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle = LoadVE_Font(); - - sbyte[] tmpbyte3 = new sbyte[3]; - for (int i = 0; i < 3; i++) tmpbyte3[i] = brFmt.ReadSByte(); - tmpstr = string.Format("{0}, {1}, {2}", tmpbyte3[0], tmpbyte3[1], tmpbyte3[2]); - fmtdata.SectData.StepSectionData.StpSectLayData.TableCenterPos = tmpstr; - - //short[] tmpint9 = new short[9]; - //for (int i = 0; i < 9; i++) tmpint9[i] = brFmt.ReadInt16(); - //tmpstr = string.Format("{0},{1},{2},{3},{4},{5},{6},{7},{8}", tmpint9[0], tmpint9[1], tmpint9[2], tmpint9[3], tmpint9[4], tmpint9[5], tmpint9[6], tmpint9[7], tmpint9[8]); - //fmtdata.SectData.StepSectionData.LeftJustSeqTab = tmpstr; - for (int i = 0; i < MAXSEQ; i++) fmtdata.SectData.StepSectionData.SequentialTabFormat[i].Index = i; - for (int i = 0; i < MAXSEQ; i++) fmtdata.SectData.StepSectionData.SequentialTabFormat[i].LeftJustify = brFmt.ReadInt16(); - MetaSection[] metsects = new MetaSection[10]; - fmtdata.SectData.MetaSectionData = metsects; - for (int i = 0; i < 10; i++) metsects[i].Index = i; - for (int i = 0; i < 10; i++) metsects[i].SecNumPositionAdj = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - for (int i = 0; i < 10; i++) metsects[i].SecTitlePositionAdj = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - for (int i = 0; i < 10; i++) metsects[i].ColSByLevel = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - for (int i = 0; i < 10; i++) metsects[i].TofCPositionAdj = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - for (int i = 0; i < 10; i++) metsects[i].WidSAdjByLevel = ColToPoints(brFmt.ReadSByte(), _PlantDefaultFontStyle); - - fmtdata.SectData.StepSectionData.NumberOfHighLevelSteps = brFmt.ReadByte(); - - for (int i = 0; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].Index = i; - for (int i = 1; i < MAXBOXES + 1; i++) fmtdata.BoxData[i].TxtRowAdj = brFmt.ReadSByte(); - for (int i = 1; i < MAXBOXES + 1; i++) tmpshort = brFmt.ReadByte(); - - for (int i = 1; i < MAXSTEPS + 1; i++) fmtdata.StepData[i].StepTypeColOverride = (ColToPoints(brFmt.ReadInt16(), _PlantDefaultFontStyle)).ToString(); - - fmtdata.SectData.StepSectionData.NumberOfSubStepTypes = brFmt.ReadByte(); - - accsec.AutoContActSumSection = brFmt.ReadInt32(); - fmtdata.SectData.AccSectionData = accsec; - #endregion - #region LoadStrings - long floc = brFmt.BaseStream.Position; - ////////////////// - // STRINGS NOW - ///////////////// - - brFmt.BaseStream.Seek(tstloc, SeekOrigin.Begin); - short numstr = brFmt.ReadInt16(); - short len = brFmt.ReadInt16(); - byte[] input = GetByteArray(brFmt, len); - - // now load in the offset info for data. - // read in the offsets from the begining of tmpstr - // this allows us to conserve on memory because duplicate strings - // will only be held once - // - Int16[] offset = new Int16[numstr]; - int indx; - for (int i = 0; i < numstr; i++) offset[i] = brFmt.ReadInt16(); - - // Add the default box characters to be used. - fmtdata.BoxData[0].BXULC = ConvertText("\x0DA"); - fmtdata.BoxData[0].BXHorz = ConvertText("\x0C4"); - fmtdata.BoxData[0].BXURC = ConvertText("\x0BF"); - fmtdata.BoxData[0].BXVert = ConvertText("\x0B3"); - fmtdata.BoxData[0].BXMLS = ConvertText("\x0C3"); - fmtdata.BoxData[0].BXMRS = ConvertText("\x0B4"); - fmtdata.BoxData[0].BXLLC = ConvertText("\x0C0"); - fmtdata.BoxData[0].BXLRC = ConvertText("\x0D9"); - fmtdata.BoxData[0].BXMID = ConvertText("\x0C5"); - fmtdata.BoxData[0].BXUMID = ConvertText("\x0C2"); - fmtdata.BoxData[0].BXLMID = ConvertText("\x0C1"); - - // using offsets, get data & put into fields. - int arcnt = 1; // use this to count into offset array for data. - for (int i = 1; i < MAXBOXES + 1; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXURC = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXHorz = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXULC = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXVert = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXMLS = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXMRS = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXLRC = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXLLC = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXMID = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXLHorz = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXUMID = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.BoxData[i].BXLMID = GetStringFromByte(input, indx); - } - - // increment arcnt by 144 because there were 24 box possibilities in the - // 16bit the second 12 were rtf - arcnt = arcnt + 144; - - //tabs - string[,] tabstrings = new string[MAXTABS, 2]; - for (int i = 0; i < MAXTABS; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) tabstrings[i, 0] = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) tabstrings[i, 1] = GetStringFromByte(input, indx); - } - for (int i = 0; i < MAXSTEPS; i++) - { - for (int j = 0; j < MAXTABS; j++) - { - if (Tabindx[i] == j) - { - fmtdata.StepData[i + 1].TabData.IdentEdit = DoTabs(fmtdata.StepData[i].TabData.Font, fmtdata.PurchaseOptions, i, tabstrings[j, 0], true); - fmtdata.StepData[i + 1].TabData.IdentEditWid = CalculateTabWid(tabstrings[j, 0]).ToString(); - fmtdata.StepData[i + 1].TabData.Ident = DoTabs(fmtdata.StepData[i].TabData.Font, fmtdata.PurchaseOptions, i, tabstrings[j, 1], true); - fmtdata.StepData[i + 1].TabData.IdentWid = CalculateTabWid(tabstrings[j, 1]).ToString(); - break; - } - } - } - - // separators - for (int i = 1; i < MAXSTEPS + 1; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.StepData[i].Sep = DoReplaceTokens(GetStringFromByte(input, indx)); - } - - // Step prefix & suffix - for (int i = 1; i < MAXSTEPS + 1; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.StepData[i].Prefix = DoReplaceTokens(GetStringFromByte(input, indx)); - } - for (int i = 1; i < MAXSTEPS + 1; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.StepData[i].Suffix = DoReplaceTokens(GetStringFromByte(input, indx)); - } - - // IdentB & SeqTab - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.IdentB = GetStringFromByte(input, indx); - for (int i = 0; i < MAXSEQ; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) - { - string p = GetStringFromByte(input, indx); - if (p != null) - { - if (p[0] == '+') - { - string tmp = null; - if (fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat.IndexOf("{numeric}") > -1) - tmp = p.Replace("+", "{numericWpar}"); - else if (fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat.IndexOf("{alpha}") > -1) - tmp = p.Replace("+", "{alphaWpar}"); - else if (fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat.IndexOf("{ALPHA}") > -1) - tmp = p.Replace("+", "{ALPHAWpar}"); - else - tmp = p.Replace("+", "{UNKNOWNWpar}"); - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = tmp; - } - else - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat + p; - } - else - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = null; - } - else - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = null; - //if (indx > 0) fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat + GetStringFromByte(input, indx); - } - // replace word strings - for (int i = 0; i < MAXREPLACE; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) repstr[i].ReplaceWord = DoReplaceTokens(GetStringFromByteNoConvert(input, indx)); - } - for (int i = 0; i < MAXREPLACE; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) repstr[i].ReplaceWith = DoReplaceTokens(GetStringFromByte(input, indx)); - } - - // various proc matching/data - ProcDescr[] pd = new ProcDescr[10]; - for (int i = 0; i < 10; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) pd[i].MatchProcNumber = GetStringFromByte(input, indx); - } - - for (int i = 0; i < 10; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) pd[i].ProcDescr1 = GetStringFromByte(input, indx); - } - - for (int i = 0; i < 10; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) pd[i].ProcDescr2 = GetStringFromByte(input, indx); - } - fmtdata.PrintData.ProcDescrList = pd; - - string[] Versid = new string[5]; - for (int i = 0; i < 5; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) Versid[i] = GetStringFromByte(input, indx); - } - fmtdata.PrintData.VersionIdText = Versid; - - // a few transition strings - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.TransData.DelimiterForTransitionTitle = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.TransData.StepSubstepDelimeter = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - // Replace the with a blank, one of the formats (cpla - robinson) used this to flag - // an underline for step numbers in transitions, but this format is no longer used. - if (indx > 0) fmtdata.TransData.ThroughString = GetStringFromByte(input, indx).Replace('', ' '); - - // procedure suffix data - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.ProcData.ProcedureSuffixFlags = GetStringFromByte(input, indx); - - fmtdata.ProcData.ProcedureSuffix = new string[10]; - for (int i = 0; i < 10; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.ProcData.ProcedureSuffix[i] = GetStringFromByte(input, indx); - } - - // PlantDnLoad not used - skip it. - arcnt++; - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.PrintData.TopOfPageThing = DoReplaceTokens(GetStringFromByte(input, indx)); - - // not used: xtitle[3][10] - skip 30 - arcnt = arcnt + 30; - - for (int i = 0; i < MAXSTEPS + 1; i++) - { - fmtdata.StepData[i].Inactive = Inactive[i]; - fmtdata.StepData[i].StepEditData.Searchable = Searchable[i]; - fmtdata.StepData[i].StepEditData.TypeMenu.MenuItem = TypeMenuItem[i]; - fmtdata.StepData[i].StepEditData.TypeMenu.InMenu = (fmtdata.StepData[i].Type == "RNOType" || fmtdata.StepData[i].Type == "Base") ? false.ToString() : true.ToString(); - - // Set all caution/note 'InMenu' to false except basic caution/note, types 6 & 7. Use the AlternateNameList to set them to true. - if (i == 20 || i == 21 || i == 22 || i == 23 || i == 26 || i == 27 || i == 28 || i == 29 || i == 32) fmtdata.StepData[i].StepEditData.TypeMenu.InMenu = false.ToString(); - - fmtdata.StepData[i].StepEditData.TypeMenu.NoChgReason = NoChangeTypeReason[i]; - fmtdata.StepData[i].StepEditData.TypeMenu.RnoInMenu = RnoInMenu[i]; - if (fmtdata.StepData[i].Type == "Figure") - //{ - //fmtdata.StepData[i].StepEditData.TypeMenu.RnoInMenu = true.ToString(); - fmtdata.StepData[i].StepEditData.TypeMenu.RnoMenuItem = "With Border"; - //} - else if (fmtdata.StepData[i].Type == "Table") - fmtdata.StepData[i].StepEditData.TypeMenu.RnoMenuItem = "Table"; - else if (fmtdata.StepData[i].Type == "BorderlessTable" || fmtdata.StepData[i].Type == "BorderlessFigure") - //{ - //fmtdata.StepData[i].StepEditData.TypeMenu.RnoInMenu = true.ToString(); - fmtdata.StepData[i].StepEditData.TypeMenu.RnoMenuItem = "Without Border"; - - //} - //else if (fmtdata.StepData[i].Type == "AERTable" || fmtdata.StepData[i].Type == "BorderlessAERTable" || fmtdata.StepData[i].Type == "AERFigure" || fmtdata.StepData[i].Type == "BorderlessAERFigure") - // fmtdata.StepData[i].StepEditData.TypeMenu.RnoInMenu = false.ToString(); - if (fmtdata.StepData[i].Type.Contains("Borderless") && fmtdata.StepData[i].Type.Contains("Table")) fmtdata.StepData[i].Inactive = true.ToString(); - } - // fmtdata.SectData.StepSectionData.TextType = new string[10]; - // Set up the text type fields - these are used to define what types of steps the current step - // can be changed to.. - _AlternateIndex = null; - int[] tmparray ={ 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; - for (int i = 0; i < 10; i++) - { - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) - { - string tmpstring = GetStringFromByte(input, indx); - // put this in the step data alternatename field. If there already is one. stop - // here for now to see this!. - //if (fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.MenuItem != null && fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.MenuItem != tmpstring) - // Console.WriteLine("different name, " + fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.MenuItem + ", " + tmpstring); - fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.MenuItem = tmpstring; - - _AlternateIndex = (_AlternateIndex == null) ? fmtdata.StepData[TextTypeValue[i] + 1].Type : _AlternateIndex + "," + fmtdata.StepData[TextTypeValue[i] + 1].Type; - //fmtdata.SectData.StepSectionData.TextType[i] = GetStringFromByte(input, indx); - } - - } - if (_AlternateIndex != null) - { - // For any step types in the texttypevalue list, add the alternatename list: - for (int i = 0; i < 10; i++) - { - // this was only used for cautions/notes - so only add if texttypevalue isn't 0, 0 was substep and it - // was getting set for substeps, that can never have an alternate type - at least from - // format->xml migration. - if (TextTypeValue[i] != 0) - { - fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.AlternateNameList = _AlternateIndex; - fmtdata.StepData[TextTypeValue[i] + 1].StepEditData.TypeMenu.InMenu = true.ToString(); - } - } - } - // not used, SectionsToPrint - 10; SectionNumberMask - 10; SectionsToPrintTitle - 10; - // DocumentTitleExtensions - 10; DocumentFixFileExtensions - 10; - - arcnt = arcnt + 50; - - // some seqtab data. - string[] tmpSeqStrings = new string[MAXSEQ]; - for (int i = 0; i < MAXSEQ; i++) - { - tmpSeqStrings[i] = fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat; - indx = offset[arcnt]; - arcnt++; - if (indx > 0) // PreSeqTab - Edit - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = GetStringFromByte(input, indx) + tmpSeqStrings[i]; - indx = offset[arcnt]; - arcnt++; - if (indx > 0) // PreSeqTab - Print - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].PrintTabFormat = GetStringFromByte(input, indx).Replace("\x08", "{0x08}") + tmpSeqStrings[i]; - else - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].PrintTabFormat = tmpSeqStrings[i]; - //tmpstr = GetStringFromByte(input, indx).Replace("\x08", ""); - } - for (int i = 0; i < MAXSEQ; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) // PostSeqTab - Edit - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].TabFormat += GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) // PostSeqTab - Print - fmtdata.SectData.StepSectionData.SequentialTabFormat[i].PrintTabFormat += GetStringFromByte(input, indx); - } - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectPrtData.RNOSepString = DoReplaceTokens(GetStringFromByte(input, indx)); - - fmtdata.SectData.StepSectionData.UnderlineTerminate = new string[10]; - for (int i = 0; i < 10; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.UnderlineTerminate[i] = GetStringFromByte(input, indx); - } - - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdr = new string[2]; - for (int i = 0; i < 2; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdr[i] = GetStringFromByte(input, indx); - } - for (int i = 0; i < 5; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.StepData[this.altsteps[i]].StepEditData.TypeMenu.MenuItem = GetStringFromByte(input, indx); - //if (indx > 0) fmtdata.StepData[TextTypeValue[i]].StepEditData.TypeMenu.MenuItem = GetStringFromByte(input, indx); - } - string mytmp = null; - for (int i = 0; i < 16; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.StepData[this.altsubsteps[i]].StepEditData.TypeMenu.MenuItem = GetStringFromByte(input, indx); - } - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.ProcData.ChangeBarData.SpecialChangeBar = DoReplaceTokens(GetStringFromByte(input, indx)); - - // not used - ImperfectStructureSeparator - arcnt++; - - fmtdata.SectData.StepSectionData.ObserveNCString1 = new string[4]; - fmtdata.SectData.StepSectionData.ObserveNCString2 = new string[4]; - for (int i = 0; i < 4; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.ObserveNCString1[i] = DoReplaceTokens(GetStringFromByteNoConvert(input, indx)); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.ObserveNCString2[i] = DoReplaceTokens(GetStringFromByteNoConvert(input, indx)); - } - - for (int i = 1; i < MAXSTEPS + 1; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) - fmtdata.StepData[i].UnderlineTheseChar = GetStringFromByte(input, indx); - } - - // not used - SubScriptTheseChar - arcnt++; - - bool hasMenuItem = false; - for (int i = 0; i < MAXCHECKOFFS; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) - { - fmtdata.ProcData.CheckOffData.CheckOffList[i].MenuItem = GetStringFromByte(input, indx); - hasMenuItem = true; - } - } - - if (hasMenuItem) - { - fmtdata.ProcData.CheckOffData.Menu = "Checkoff"; - for (int i = 0; i < MAXCHECKOFFS; i++) - if (i > 1) fmtdata.ProcData.CheckOffData.CheckOffList[i].Macro = "C" + i.ToString(); - } - // add signoff menuitems which are Endabled/Disabled & also Menu - if (rightCheckOffBox[0] != 0 && rightCheckOffBox[1] != 0) - { - fmtdata.ProcData.CheckOffData.Menu = "Signoff"; - fmtdata.ProcData.CheckOffData.CheckOffList[0].Index = 0; - fmtdata.ProcData.CheckOffData.CheckOffList[0].MenuItem = "Enabled"; - fmtdata.ProcData.CheckOffData.CheckOffList[0].Macro = "C1"; - fmtdata.ProcData.CheckOffData.CheckOffList[1].Index = 1; - fmtdata.ProcData.CheckOffData.CheckOffList[1].MenuItem = "Disabled"; - if (rightCheckOffBox[0] == -2 && rightCheckOffBox[1] == -2) fmtdata.ProcData.CheckOffData.SkipSpaces = "true"; - else - { - fmtdata.ProcData.CheckOffData.LayoutList[0].RnoLevel = "0"; - fmtdata.ProcData.CheckOffData.LayoutList[0].Column = rightCheckOffBox[0]; - fmtdata.ProcData.CheckOffData.LayoutList[0].RnoLevel = "1"; - fmtdata.ProcData.CheckOffData.LayoutList[0].Column = rightCheckOffBox[1]; - } - } - for (int i = 0; i < MAXCHKHEADINGS; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.ProcData.CheckOffData.CheckOffHeaderList[i].CheckOffHeading = DoReplaceTokens(GetStringFromByte(input, indx)); - } - - // not used - WindEditFile - arcnt++; - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) tmpstr = GetStringFromByte(input, indx); - - // not used - RNOPreSeqTab[9][2] - arcnt = arcnt + 18; - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectPrtData.HLStpSeparatorString = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectPrtData.HLRNOStpSeparatorString = GetStringFromByte(input, indx); - - for (int i = 0; i < MAXTABS; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) tabstrings[i, 0] = GetStringFromByte(input, indx); - indx = offset[arcnt]; - arcnt++; - if (indx > 0) tabstrings[i, 1] = GetStringFromByte(input, indx); - } - for (int i = 0; i < MAXSTEPS; i++) - { - for (int j = 0; j < MAXTABS; j++) - { - if (Tabindx[i] == j) - { - fmtdata.StepData[i + 1].TabData.RNOIdentEdit = DoTabs(fmtdata.StepData[i].TabData.Font, fmtdata.PurchaseOptions, i, tabstrings[j, 0], fmtdata.StepData[i].StepNumberForHighLevel == "True"); - fmtdata.StepData[i + 1].TabData.RNOIdentEditWid = CalculateTabWid(tabstrings[j, 0]).ToString(); - fmtdata.StepData[i + 1].TabData.RNOIdent = DoTabs(fmtdata.StepData[i].TabData.Font, fmtdata.PurchaseOptions, i, tabstrings[j, 1], fmtdata.StepData[i].StepNumberForHighLevel == "True"); - fmtdata.StepData[i + 1].TabData.RNOIdentWid = CalculateTabWid(tabstrings[j, 1]).ToString(); - break; - } - } - } - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectLayData.LowerLimitDivisor = GetStringFromByte(input, indx); - - // If the DoSectionTrans flag is set, use DefaultSectionTransStr for defaults, - // otherwise use the DefaultTransStr. The DoSectionTransTypeB flags just - // replaces the [5] item in the DefaultSectionTransStr array. I'll reset - // if this flag isn't used since formats are processed in a loop and only want - // the change to the default for the current format if the flag is set in it. - if (XtraFlags.DoSectionTransTypeB == "True") - { - DefaultSectionTransTokenStr[5] = DefaultSectionTransStrTypeB; - DefaultSectionTransFormatStr[5] = DefaultSectionTransStrTypeB; - } - else // if flag not set, just reset default in case used in one of next formats. - { - DefaultSectionTransTokenStr[5] = DefaultSectionTransStrTypeBNone; - DefaultSectionTransFormatStr[5] = DefaultSectionTransStrTypeBNone; - } - - // If the plant uses the TransProcTitleInParen flag, then place parens - // around the proc & section titles. - if (XtraFlags.TranProcTitleInParen == "True") - { - DefaultTransStr[0] = "{Proc Num} ({Proc Title}) Step {First Step}"; - DefaultTransStr[3] = "{First Step} thru {Last Step} of {Proc Num} ({Proc Title}) ({Sect Hdr})"; - DefaultTransStr[4] = "({Sect Title}), Step {First Step}"; - DefaultTransStr[5] = "{Proc Num}, ({Proc Title}) ({Sect Hdr}), Step {First Step}"; - } - if (fmtdata.TransData.ThroughString != null && fmtdata.TransData.ThroughString != "") - { - DefaultTransStr[3] = DefaultTransStr[3].Replace(" thru ", fmtdata.TransData.ThroughString); - DefaultSectionTransTokenStr[3] = DefaultSectionTransTokenStr[3].Replace(" thru ", fmtdata.TransData.ThroughString); - DefaultSectionTransFormatStr[3] = DefaultSectionTransFormatStr[3].Replace(" thru ", fmtdata.TransData.ThroughString); - } - for (int i = 0; i < MAXTRANS; i++) - { - fmtdata.TransData.TransTypeData[i].Index = i; - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.TransData.TransTypeData[i].TransFormat = ConvertTransFormat(GetStringFromByteNoConvert(input, indx)); - else if (i < 6) - { - fmtdata.TransData.TransTypeData[i].TransFormat = XtraFlags.DoSectionTrans == "True" ? DefaultSectionTransFormatStr[i] : DefaultTransStr[i]; - fmtdata.TransData.TransTypeData[i].TransType = (byte)i; // reset type - } - } - - for (int i = 0; i < MAXTRANS; i++) - { - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.TransData.TransTypeData[i].TransMenu = ConvertTransFormat(GetStringFromByteNoConvert(input, indx)); - else if (i < 6) fmtdata.TransData.TransTypeData[i].TransMenu = XtraFlags.DoSectionTrans == "True" ? DefaultSectionTransTokenStr[i] : DefaultTransStr[i]; - fmtdata.TransData.TransTypeData[i].TransType = (byte)i; // reset type - } - for (int i = 0; i < MAXTRANS; i++) - { - if (fmtdata.TransData.TransTypeData[i].TransFormat != null && fmtdata.TransData.TransTypeData[i].TransMenu != null) fmtdata.TransData.TransTypeData[i].TransUI = GetTransUIEnum(fmtdata.TransData.TransTypeData[i].TransFormat, fmtdata.TransData.TransTypeData[i].TransMenu); - } - // if in dosectiontransitions, put the format/menu strings back to original - if (XtraFlags.DoSectionTrans == "True") - { - for (int i = 0; i < MAXTRANS; i++) - { - if (i < 6 && fmtdata.TransData.TransTypeData[i].TransMenu != null) - { - fmtdata.TransData.TransTypeData[i].TransFormat = DefaultSectionTransFormatStr[i]; - fmtdata.TransData.TransTypeData[i].TransMenu = DefaultSectionTransFormatStr[i]; - - } - } - } - //arcnt = arcnt + MAXTRANS; - - // not used OutsideTransFmt & OutsideTransMenu - arcnt = arcnt + (MAXTRANS * 2); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectLayData.NonLinkedStepNumber = GetStringFromByte(input, indx); - - //not used BldLstFile - arcnt++; - // AltPrintTBIdent (20 items) - //arcnt += MAXTABS; - for (int j = 0; j < MAXTABS; j++) - { - indx = offset[arcnt]; - arcnt++; - if (indx != 0) - { - string ts = GetStringFromByte(input, indx); - for (int i = 0; i < MAXSTEPS; i++) - { - if (Tabindx[i] == j) - { - fmtdata.StepData[i + 1].TabData.IdentAltPrint = ts; - break; - } - } - } - } - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectLayData.NonLinkedCautNoteNumber = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.PrintData.DuplexBGDirectory = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.PrintData.DuplexDDDirectory = GetStringFromByte(input, indx); - - indx = offset[arcnt]; - arcnt++; - if (indx > 0) fmtdata.SectData.StepSectionData.StpSectLayData.NonLinkedRNONumber = GetStringFromByte(input, indx); - - #endregion - } - catch (Exception ex) - { - Console.WriteLine("Error on read - format = {0}", fmtdata.Name); - Console.WriteLine(ex.Message); - Console.WriteLine(); - return false; - } - return AdjustFlags(ref fmtdata, ref XtraFlags); - } - - /// - /// Replace invalid characters with a special sequence - /// - /// - /// - private string FixXmlString(string str) - { - // http://www.w3.org/TR/2000/REC-xml-20001006#NT-Char - // http://cse-mjmcl.cse.bris.ac.uk/blog/2007/02/14/1171465494443.html - // The regular expression below find any invalid characters - // by looking for characters that are not valid - MatchCollection matches = Regex.Matches(str, @"[^\x09\x0A\x0D\x20-\uD7FF\uE000-\uFFFD]"); - int lastIndex = 0; - StringBuilder sb = new StringBuilder(); - int len = str.Length; - foreach (Match match in matches) - { - sb.Append(str.Substring(lastIndex, match.Index - lastIndex)); - foreach (char c in match.Value) - sb.Append(string.Format("[({0:X04}])", (int)c)); - lastIndex = match.Index + match.Length; - } - sb.Append(str.Substring(lastIndex)); - return sb.ToString(); - } - - private bool AdjustFlags(ref FormatData fmtdata, ref XtraFlgs XtraFlags) - { - // do format flags here - this will get yucky!!! - #region StepFlags - int step = 0; - try - { - for (int i = 0; i < MAXSTEPS + 1; i++) - { - step = i; - // Do base here - if (i == 0) - { - // All types get this thru inheritance - if (XtraFlags.SeparateBox == "True") fmtdata.StepData[i].SeparateBox = "True"; - else fmtdata.StepData[i].SeparateBox = "False"; - // All types get this thru inheritance - if (XtraFlags.LJTabs == "True") fmtdata.StepData[i].LJTabs = "True"; - else fmtdata.StepData[i].LJTabs = "False"; - } - if (i == 1) // Sequential flags - new name will be substeps - { - if (XtraFlags.BoxedSubsteps == "True") fmtdata.StepData[i].Boxed = "True"; - else fmtdata.StepData[i].Boxed = "False"; - - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - if (XtraFlags.TextSubFollowsTextStyle == "True") fmtdata.StepData[i].TextSubFollowsTextStyle = "True"; - else fmtdata.StepData[i].TextSubFollowsTextStyle = "False"; - - if (XtraFlags.DontStartLineWithDash == "True") fmtdata.StepData[i].StartLineWithDash = "False"; - else fmtdata.StepData[i].StartLineWithDash = "True"; - - if (XtraFlags.NoBlankLineBeforeSubstep == "True") fmtdata.StepData[i].BlankLineBeforeSubStep = "False"; - else fmtdata.StepData[i].BlankLineBeforeSubStep = "True"; - } - else if (i == 2) // High - { - // All High get this thru inheritance - if (XtraFlags.EnhancedStepNumFromPrev == "True") fmtdata.StepData[i].EnhancedStepNumFromPrev = "True"; - else fmtdata.StepData[i].EnhancedStepNumFromPrev = "False"; - - // All High get this thru inheritance - if (XtraFlags.UseSmartTemplate == "True") fmtdata.StepData[i].UseSmartTemplate = "True"; - else fmtdata.StepData[i].UseSmartTemplate = "False"; - - // All High get this thru inheritance - if (XtraFlags.BoxContinousActions == "True") fmtdata.StepData[i].Boxed = "True"; - else fmtdata.StepData[i].Boxed = "False"; - - // All High get this thru inheritance - if (XtraFlags.Xlines_StepFix == "True") fmtdata.StepData[i].XLines_StepFix = "True"; - else fmtdata.StepData[i].XLines_StepFix = "False"; - - // All High get this thru inheritance - if (XtraFlags.UseAlternateStepBox == "True") fmtdata.StepData[i].UseAlternateStepBox = "True"; - else fmtdata.StepData[i].UseAlternateStepBox = "False"; - - // All High get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // All High get this thru inheritance - if (XtraFlags.PageBreakOnHighLevelStep == "True") fmtdata.StepData[i].PageBreakOnStep = "True"; - else fmtdata.StepData[i].PageBreakOnStep = "False"; - - // All High get this thru inheritance - if (XtraFlags.AlignNullTabWSectHead == "True") fmtdata.StepData[i].AlignNullTabWSectHead = "True"; - else fmtdata.StepData[i].AlignNullTabWSectHead = "False"; - - // All High get this thru inheritance - if (XtraFlags.HLSTextInPagelist == "True") fmtdata.StepData[i].InPageList = "True"; - else fmtdata.StepData[i].InPageList = "False"; - - // All High get this thru inheritance - if (XtraFlags.NoStepNumIfOnlyOneStep == "True") fmtdata.StepData[i].StepNumIfOnlyOne = "False"; - else fmtdata.StepData[i].StepNumIfOnlyOne = "True"; - - // All High get this thru inheritance - if (XtraFlags.AtLeastTwoDigitsForHLS == "True") fmtdata.StepData[i].AtLeastTwoDigits = "True"; - else fmtdata.StepData[i].AtLeastTwoDigits = "False"; - - // All High get this thru inheritance - if (XtraFlags.DontNumberHighLevelSteps == "True") fmtdata.StepData[i].Number = "False"; - else fmtdata.StepData[i].Number = "True"; - } - else if (i == 3) // Immediate - { - if (XtraFlags.IMMStepSpcHdr == "True") fmtdata.StepData[i].SpcHdr = "True"; - else fmtdata.StepData[i].SpcHdr = "False"; - } - else if (i == 4) // And - { - // All And get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // All And get this thru inheritance - if (XtraFlags.TreatAndOrAsSequential == "True") fmtdata.StepData[i].TreatAsSequential = "True"; - else fmtdata.StepData[i].TreatAsSequential = "False"; - } - else if (i == 5) // Or - { - // All Or get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // All Or get this thru inheritance - if (XtraFlags.TreatAndOrAsSequential == "True") fmtdata.StepData[i].TreatAsSequential = "True"; - else fmtdata.StepData[i].TreatAsSequential = "False"; - - } - else if (i == 6) // Caution - { - // All Cautions get this thru inheritance - if (XtraFlags.EnhancedStepNumFromPrev == "True") fmtdata.StepData[i].EnhancedStepNumFromPrev = "True"; - else fmtdata.StepData[i].EnhancedStepNumFromPrev = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.AlwaysUseExtralines == "True") fmtdata.StepData[i].AlwaysUseExtraLines = "True"; - else fmtdata.StepData[i].AlwaysUseExtraLines = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.SeparateBoxCautions == "True") fmtdata.StepData[i].SeparateBoxCautions = "True"; - else fmtdata.StepData[i].SeparateBoxCautions = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.ReduceLineAfterNoteAndCaut == "True") fmtdata.StepData[i].ReduceLineAfter = "True"; - else fmtdata.StepData[i].ReduceLineAfter = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.OneLineBeforeNoteCautionTab == "True") fmtdata.StepData[i].OneLineBeforeTab = "True"; - else fmtdata.StepData[i].OneLineBeforeTab = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.ReBoxCautNote == "True") fmtdata.StepData[i].Rebox = "True"; - else fmtdata.StepData[i].Rebox = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.NoSpaceInNoteOrCaution == "True") fmtdata.StepData[i].SpaceIn = "False"; - else fmtdata.StepData[i].SpaceIn = "True"; - - // All Cautions get this thru inheritance - if (XtraFlags.PageBreakOnCautions == "True") fmtdata.StepData[i].PageBreakOnStep = "True"; - else fmtdata.StepData[i].PageBreakOnStep = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.MatchUpRNOCautNote == "True") fmtdata.StepData[i].MatchUpRNO = "True"; - else fmtdata.StepData[i].MatchUpRNO = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.StpCautNoteTabInPagelist == "True") fmtdata.StepData[i].InPageList = "True"; - else fmtdata.StepData[i].InPageList = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.CenterOneLineOnly == "True") fmtdata.StepData[i].CenterOneLineOnly = "True"; - else fmtdata.StepData[i].CenterOneLineOnly = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.RememberCautionsAndNotes == "True") fmtdata.StepData[i].Remember = "True"; - else fmtdata.StepData[i].Remember = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.CenterOneLineAdjust == "True") fmtdata.StepData[i].CenterOneLineAdjust = "True"; - else fmtdata.StepData[i].CenterOneLineAdjust = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.DontBreakCautionsOrNotes == "True") fmtdata.StepData[i].Break = "False"; - else fmtdata.StepData[i].Break = "True"; - - // All Cautions get this thru inheritance - if (XtraFlags.CenterTextWithinWidth == "True") fmtdata.StepData[i].CenterTextWithinWidth = "True"; - else fmtdata.StepData[i].CenterTextWithinWidth = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.DontBreakCautionsNotesOnSubstps == "True") fmtdata.StepData[i].BreakCautionsNotesOnSubstps = "False"; - else fmtdata.StepData[i].BreakCautionsNotesOnSubstps = "True"; - - // All Cautions get this thru inheritance - if (XtraFlags.AlwaysTabCaution == "True") fmtdata.StepData[i].AlwaysTab = "True"; - else fmtdata.StepData[i].AlwaysTab = "False"; - - // All Cautions get this thru inheritance - if (XtraFlags.ThreeBlanksAboveNotesCautions == "True") fmtdata.StepData[i].ThreeBlanksAbove = "True"; - else fmtdata.StepData[i].ThreeBlanksAbove = "False"; - } - else if (i == 7) // Note - { - // All Notes get this thru inheritance - if (XtraFlags.EnhancedStepNumFromPrev == "True") fmtdata.StepData[i].EnhancedStepNumFromPrev = "True"; - else fmtdata.StepData[i].EnhancedStepNumFromPrev = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.AlwaysUseExtralines == "True") fmtdata.StepData[i].AlwaysUseExtraLines = "True"; - else fmtdata.StepData[i].AlwaysUseExtraLines = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.ReduceLineAfterNoteAndCaut == "True") fmtdata.StepData[i].ReduceLineAfter = "True"; - else fmtdata.StepData[i].ReduceLineAfter = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.OneLineBeforeNoteCautionTab == "True") fmtdata.StepData[i].OneLineBeforeTab = "True"; - else fmtdata.StepData[i].OneLineBeforeTab = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.ReBoxCautNote == "True") fmtdata.StepData[i].Rebox = "True"; - else fmtdata.StepData[i].Rebox = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.NoSpaceInNoteOrCaution == "True") fmtdata.StepData[i].SpaceIn = "False"; - else fmtdata.StepData[i].SpaceIn = "True"; - - // All Notes get this thru inheritance - if (XtraFlags.PageBreakOnNotes == "True") fmtdata.StepData[i].PageBreakOnStep = "True"; - else fmtdata.StepData[i].PageBreakOnStep = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.MatchUpRNOCautNote == "True") fmtdata.StepData[i].MatchUpRNO = "True"; - else fmtdata.StepData[i].MatchUpRNO = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.StpCautNoteTabInPagelist == "True") fmtdata.StepData[i].InPageList = "True"; - else fmtdata.StepData[i].InPageList = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.CenterOneLineOnly == "True") fmtdata.StepData[i].CenterOneLineOnly = "True"; - else fmtdata.StepData[i].CenterOneLineOnly = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.RememberCautionsAndNotes == "True") fmtdata.StepData[i].Remember = "True"; - else fmtdata.StepData[i].Remember = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.CenterOneLineAdjust == "True") fmtdata.StepData[i].CenterOneLineAdjust = "True"; - else fmtdata.StepData[i].CenterOneLineAdjust = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.DontBreakCautionsOrNotes == "True") fmtdata.StepData[i].Break = "False"; - else fmtdata.StepData[i].Break = "True"; - - // All Notes get this thru inheritance - if (XtraFlags.DontBreakCautionsNotesOnSubstps == "True") fmtdata.StepData[i].BreakCautionsNotesOnSubstps = "False"; - else fmtdata.StepData[i].BreakCautionsNotesOnSubstps = "True"; - - // All Notes get this thru inheritance - if (XtraFlags.CenterTextWithinWidth == "True") fmtdata.StepData[i].CenterTextWithinWidth = "True"; - else fmtdata.StepData[i].CenterTextWithinWidth = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.AlwaysTabNote == "True") fmtdata.StepData[i].AlwaysTab = "True"; - else fmtdata.StepData[i].AlwaysTab = "False"; - - // All Notes get this thru inheritance - if (XtraFlags.ThreeBlanksAboveNotesCautions == "True") fmtdata.StepData[i].ThreeBlanksAbove = "True"; - else fmtdata.StepData[i].ThreeBlanksAbove = "False"; - } - else if (i == 8) // Table - { - // All Table get this thru inheritance - if (XtraFlags.SubTableGetSup1Level == "True") fmtdata.StepData[i].SubTableGetsUp1Level = "True"; - else fmtdata.StepData[i].SubTableGetsUp1Level = "False"; - } - else if (i == 9) // Continuous - { - if (XtraFlags.BulletOnContinuous == "True") fmtdata.StepData[i].Bullet = "True"; - else fmtdata.StepData[i].Bullet = "False"; - } - else if (i == 10) // AERTable - { - } - else if (i == 11) // EquipmentList - { - // All EquipmentList get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - // Note that only equipment lists (and wblank) get this - no inherit - must be done in code! - if (XtraFlags.DontBreakEquipmentList == "True") fmtdata.StepData[i].BreakEquipmentList = "False"; - else fmtdata.StepData[i].BreakEquipmentList = "True"; - } - else if (i == 12) // Title - { - // All Title get this thru inheritance - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - } - else if (i == 13) // PageNumber - { - } - else if (i == 14) // EquipmentWBlank - { - } - else if (i == 15) // ProcNumber - { - } - else if (i == 16) // RevNumber - { - } - else if (i == 17) // AccPages - { - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - } - else if (i == 18) // LossOfAC - { - if (XtraFlags.DontBoxAC == "True") fmtdata.StepData[i].BoxIt = "False"; - else fmtdata.StepData[i].BoxIt = "True"; - } - else if (i == 19) // ExplicitAnd - { - } - else if (i == 20) // Caution1 - { - if (XtraFlags.MixCautionsAndNotes == "True") fmtdata.StepData[i].MixCautionsAndNotes = "True"; - else fmtdata.StepData[i].MixCautionsAndNotes = "False"; - - if (XtraFlags.Caution1SameRowAsParent == "True") fmtdata.StepData[i].SameRowAsParent = "True"; - else fmtdata.StepData[i].SameRowAsParent = "False"; - } - else if (i == 21) // Caution2 - { - if (XtraFlags.AlwaysTabCaution2 == "True") fmtdata.StepData[i].AlwaysTab = "True"; - else fmtdata.StepData[i].AlwaysTab = "False"; - - if (XtraFlags.Caution2SameRowAsParent == "True") fmtdata.StepData[i].SameRowAsParent = "True"; - else fmtdata.StepData[i].SameRowAsParent = "False"; - } - else if (i == 22) // Note1 - { - if (XtraFlags.MixCautionsAndNotes == "True") fmtdata.StepData[i].MixCautionsAndNotes = "True"; - else fmtdata.StepData[i].MixCautionsAndNotes = "False"; - } - else if (i == 23) // Note2 - { - } - else if (i == 24) // Paragraph - { - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - } - else if (i == 25) // Default - { - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - } - else if (i == 26) // Note3 - { - } - else if (i == 27) // Caution3 - { - } - else if (i == 28) // Note4 - { - } - else if (i == 29) // Caution4 - { - } - else if (i == 30) // EquipmentOpt - { - // All EquipmentOpt get this thru inheritance - if (XtraFlags.QuotedSubsteps == "True") fmtdata.StepData[i].Quoted = "True"; - else fmtdata.StepData[i].Quoted = "False"; - - // Note that only opt equipment lists (and wblank) get this - no inherit - must be done in code! - if (XtraFlags.DontBreakOptEquipmentList == "True") - fmtdata.StepData[i].BreakEquipmentList = "False"; - else - fmtdata.StepData[i].BreakEquipmentList = "True"; - } - else if (i == 31) // EquipmentOptWBlank - { - // All EquipmentOptWBlank get this thru inheritance - if (XtraFlags.QuotedSubsteps == "True") fmtdata.StepData[i].Quoted = "True"; - else fmtdata.StepData[i].Quoted = "False"; - } - else if (i == 32) // Note5 - { - } - else if (i == 33) // BorderlessAERTable - { - if (XtraFlags.LJBorderlessTable == "True") fmtdata.StepData[i].LeftJustifyBorderless = "True"; - else fmtdata.StepData[i].LeftJustifyBorderless = "False"; - } - else if (i == 34) // BorderlessTable - { - if (XtraFlags.LJBorderlessTable == "True") fmtdata.StepData[i].LeftJustifyBorderless = "True"; - else fmtdata.StepData[i].LeftJustifyBorderless = "False"; - } - else if (i == 35) // ImplicitOr - { - } - else if (i == 36) // Figure - { - } - else if (i == 37) // AERFigure - { - } - else if (i == 38) // BorderlessFigure - { - if (XtraFlags.LJBorderlessTable == "True") fmtdata.StepData[i].LeftJustifyBorderless = "True"; - else fmtdata.StepData[i].LeftJustifyBorderless = "False"; - } - else if (i == 39) // BorderlessAERFigure - { - if (XtraFlags.LJBorderlessTable == "True") fmtdata.StepData[i].LeftJustifyBorderless = "True"; - else fmtdata.StepData[i].LeftJustifyBorderless = "False"; - } - else if (i == 40) // RNOType - { - if (XtraFlags.DoubleRNOSpace == "True") fmtdata.StepData[i].DoubleSpace = "True"; - else fmtdata.StepData[i].DoubleSpace = "False"; - - if (XtraFlags.EnhancedStepNumFromPrev == "True") fmtdata.StepData[i].EnhancedStepNumFromPrev = "True"; - else fmtdata.StepData[i].EnhancedStepNumFromPrev = "False"; - - if (XtraFlags.NoSpaceDoubleRNO == "True") fmtdata.StepData[i].SpaceDouble = "False"; - else fmtdata.StepData[i].SpaceDouble = "True"; - - if (XtraFlags.RNOSameLevel == "True") fmtdata.StepData[i].SameLevel = "True"; - else fmtdata.StepData[i].SameLevel = "False"; - - if (XtraFlags.BoldHighLevelRNO == "True") fmtdata.StepData[i].BoldHighLevel = "True"; - else fmtdata.StepData[i].BoldHighLevel = "False"; - - if (XtraFlags.RNOContinueOnly == "True") fmtdata.StepData[i].ContinueOnly = "True"; - else fmtdata.StepData[i].ContinueOnly = "False"; - - if (XtraFlags.RNOSepAfterAER == "True") fmtdata.StepData[i].SepAfterAER = "True"; - else fmtdata.StepData[i].SepAfterAER = "False"; - - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - - if (XtraFlags.RNOInPagelist == "True") fmtdata.StepData[i].InPageList = "True"; - else fmtdata.StepData[i].InPageList = "False"; - - if (XtraFlags.DontBreakOnRNO == "True") fmtdata.StepData[i].Break = "False"; - else fmtdata.StepData[i].Break = "True"; - - if (XtraFlags.NoNewlineAfterRNO == "True") fmtdata.StepData[i].NewlineAfter = "False"; - else fmtdata.StepData[i].NewlineAfter = "True"; - - if (XtraFlags.NumberHighLevelRNO == "True") fmtdata.StepData[i].NumberHighLevel = "True"; - else fmtdata.StepData[i].NumberHighLevel = "False"; - - if (XtraFlags.DontOffsetTab == "True") fmtdata.StepData[i].OffsetTab = "False"; - else fmtdata.StepData[i].OffsetTab = "True"; - - if (XtraFlags.DontNumberRNOSubs == "True") fmtdata.StepData[i].NumberSubs = "False"; - else fmtdata.StepData[i].NumberSubs = "True"; - - if (XtraFlags.NoStepNumberForHighLevelRNO == "True") fmtdata.StepData[i].StepNumberForHighLevel = "False"; - else fmtdata.StepData[i].StepNumberForHighLevel = "True"; - - if (XtraFlags.RNOCheckOffSameAsParent == "True") fmtdata.StepData[i].CheckoffSameAsParent = "True"; - else fmtdata.StepData[i].CheckoffSameAsParent = "False"; - - if (XtraFlags.UseRNOTypeInActable == "True") fmtdata.StepData[i].UseInAcTable = "True"; - else fmtdata.StepData[i].UseInAcTable = "False"; - } - else if (i == 41) // High5 - { - } - else if (i == 42) // TitleWithTextRight - { - } - else if (i == 43) // TitleWithTextBelow - { - } - else if (i == 44) // ContAcSequential - { - if (XtraFlags.UnderlineAfterDashSpace == "True") fmtdata.StepData[i].UnderlineAfterDashSpace = "True"; - else fmtdata.StepData[i].UnderlineAfterDashSpace = "False"; - } - else if (i == 45) // ContAcAnd - { - } - else if (i == 46) // ContAcOr - { - } - else if (i == 47) // ContAcParagraph - { - } - if (fmtdata.StepData[i].TabData.MacroList != null) - { - if (XtraFlags.NoCheckOffsInRNO == "True") fmtdata.StepData[i].TabData.MacroList[0].NotInRNO = "True"; - else fmtdata.StepData[i].TabData.MacroList[0].NotInRNO = "False"; - } - } - } - catch (Exception ex) - { - Console.WriteLine("here"); - } - #endregion - #region StepStructLayout - if (XtraFlags.Dev_Format == "True") fmtdata.SectData.StepSectionData.StpSectLayData.Dev_Format = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.Dev_Format = "False"; - if (XtraFlags.EnhancedShortFormDev == "True") fmtdata.SectData.StepSectionData.StpSectLayData.EnhancedShortFormDev = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.EnhancedShortFormDev = "False"; - if (XtraFlags.SpecialPageBreakFlag == "True") fmtdata.SectData.StepSectionData.StpSectLayData.SpecialPageBreakFlag = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.SpecialPageBreakFlag = "False"; - if (XtraFlags.DontPaginateOnFirstSubStep == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep = "True"; - if (XtraFlags.DontPaginateOnFirstSubStep2X == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep2X = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep2X = "True"; - if (XtraFlags.DontUseHalfLines == "True") fmtdata.SectData.StepSectionData.StpSectLayData.UseHalfLines = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.UseHalfLines = "True"; - if (XtraFlags.DontTryToFillHalfOfPage == "True") fmtdata.SectData.StepSectionData.StpSectLayData.TryToFillHalfOfPage = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.TryToFillHalfOfPage = "True"; - if (XtraFlags.DoNotCompressSteps == "True") fmtdata.SectData.StepSectionData.StpSectLayData.CompressSteps = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.CompressSteps = "True"; - if (XtraFlags.DontDoSTExtraAtTop == "True") fmtdata.SectData.StepSectionData.StpSectLayData.DoSTExtraAtTop = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.DoSTExtraAtTop = "True"; - if (XtraFlags.KeepStepsOnPage == "True") fmtdata.SectData.StepSectionData.StpSectLayData.KeepStepsOnPage = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.KeepStepsOnPage = "False"; - if (XtraFlags.DontBreakOnSections == "True") fmtdata.SectData.StepSectionData.StpSectLayData.BreakOnSections = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.BreakOnSections = "True"; - if (XtraFlags.ShowSectionTitles == "True") fmtdata.SectData.StepSectionData.StpSectLayData.ShowSectionTitles = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.ShowSectionTitles = "False"; - if (XtraFlags.NoEndForSingle == "True") fmtdata.SectData.StepSectionData.StpSectLayData.EndForSingle = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.EndForSingle = "True"; - if (XtraFlags.DontPaginateOnFirstSubstep3X == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep3X = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnFirstSubstep3X = "True"; - if (XtraFlags.PaginateOnLowerStepLevel == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnLowerStepLevel = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PaginateOnLowerStepLevel = "False"; - if (XtraFlags.CustomSpacing == "True") fmtdata.SectData.StepSectionData.StpSectLayData.CustomSpacing = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.CustomSpacing = "False"; - if (XtraFlags.DontSplitStepInPrntStep == "True") fmtdata.SectData.StepSectionData.StpSectLayData.SplitStepInPrntStep = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.SplitStepInPrntStep = "True"; - if (XtraFlags.LineAboveUnderSection == "True") fmtdata.SectData.StepSectionData.StpSectLayData.LineAboveUnderSection = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.LineAboveUnderSection = "False"; - if (XtraFlags.PicaIgnoreFiveSixths == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PicaIgnoreFiveSixths = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PicaIgnoreFiveSixths = "False"; - if (XtraFlags.SpaceFoRNOSecNumb == "True") fmtdata.SectData.StepSectionData.StpSectLayData.SpaceForNoSecNumb = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.SpaceForNoSecNumb = "False"; - if (XtraFlags.PageBreakOnFirstBlankLine == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PageBreakOnFirstBlankLine = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PageBreakOnFirstBlankLine = "False"; - if (XtraFlags.PutOnPageByItself == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PutOnPageByItself = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PutOnPageByItself = "False"; - if (XtraFlags.PaginateAtHighestPaginLevel == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PaginateAtHighestPaginLevel = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PaginateAtHighestPaginLevel = "False"; - if (XtraFlags.UseSTExtraRealValue == "True") fmtdata.SectData.StepSectionData.StpSectLayData.UseSTExtraRealValue = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.UseSTExtraRealValue = "False"; - if (XtraFlags.DoSectionSeparatorLine == "True") fmtdata.SectData.StepSectionData.StpSectLayData.DoSectionSeparatorLine = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.DoSectionSeparatorLine = "False"; - if (XtraFlags.TieTabToLevel == "True") fmtdata.SectData.StepSectionData.StpSectLayData.TieTabToLevel = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.TieTabToLevel = "False"; - if (XtraFlags.HighLevelRNOBeforeAERSubStps == "True") fmtdata.SectData.StepSectionData.StpSectLayData.HighLevelRNOBeforeAERSubsteps = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.HighLevelRNOBeforeAERSubsteps = "False"; - if (XtraFlags.UseStepTypeWidthOverride == "True") fmtdata.SectData.StepSectionData.StpSectLayData.UseStepTypeWidthOverride = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.UseStepTypeWidthOverride = "False"; - if (XtraFlags.UseStepTypeWidthOverrideEditPrint == "True") fmtdata.SectData.StepSectionData.StpSectLayData.UseStepTypeWidthOverrideEditPrint = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.UseStepTypeWidthOverrideEditPrint = "False"; - if (XtraFlags.PartialStepCompression == "True") fmtdata.SectData.StepSectionData.StpSectLayData.PartialStepCompression = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.PartialStepCompression = "False"; - if (XtraFlags.VirtualDotInHLSTab == "True") fmtdata.SectData.StepSectionData.StpSectLayData.VirtualDotInHLSTab = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.VirtualDotInHLSTab = "False"; - if (XtraFlags.OverrideEnhancedTabs == "True") fmtdata.SectData.StepSectionData.StpSectLayData.OverrideEnhancedTabs = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.OverrideEnhancedTabs = "False"; - if (XtraFlags.NoRNO == "True") fmtdata.SectData.StepSectionData.StpSectLayData.RNO = "False"; - else fmtdata.SectData.StepSectionData.StpSectLayData.RNO = "True"; - if (XtraFlags.OnlySingleColumn == "True") fmtdata.SectData.StepSectionData.StpSectLayData.OnlySingleColumn = "True"; - else fmtdata.SectData.StepSectionData.StpSectLayData.OnlySingleColumn = "False"; - #endregion - #region StepSection - if (XtraFlags.WolfCreekBackgroundFormat == "True") fmtdata.SectData.StepSectionData.WolfCreekBackgroundFormat = "True"; - else fmtdata.SectData.StepSectionData.WolfCreekBackgroundFormat = "False"; - if (XtraFlags.WolfcreekCKLFormat == "True") fmtdata.SectData.StepSectionData.WolfcreekCKLFormat = "True"; - else fmtdata.SectData.StepSectionData.WolfcreekCKLFormat = "False"; - if (XtraFlags.WolfcreekCKLBackgndFormat == "True") fmtdata.SectData.StepSectionData.WolfcreekCKLBackgndFormat = "True"; - else fmtdata.SectData.StepSectionData.WolfcreekCKLBackgndFormat = "False"; - if (XtraFlags.FortranFormatNumbers == "True") fmtdata.SectData.StepSectionData.FortranFormatNumbers = "True"; - else fmtdata.SectData.StepSectionData.FortranFormatNumbers = "False"; - if (XtraFlags.UseTopContinueMessageAtEnd == "True") fmtdata.SectData.StepSectionData.UseTopContinueMessageAtEnd = "True"; - else fmtdata.SectData.StepSectionData.UseTopContinueMessageAtEnd = "False"; - if (XtraFlags.FloatingContinueMessage == "True") fmtdata.SectData.StepSectionData.FloatingContinueMessage = "True"; - else fmtdata.SectData.StepSectionData.FloatingContinueMessage = "False"; - if (XtraFlags.WrapSameAsEdit == "True") fmtdata.SectData.StepSectionData.WrapSameAsEdit = "True"; - else fmtdata.SectData.StepSectionData.WrapSameAsEdit = "False"; - if (XtraFlags.ContinueSectionHeader == "True") fmtdata.SectData.StepSectionData.ContinueSectionHeader = "True"; - else fmtdata.SectData.StepSectionData.ContinueSectionHeader = "False"; - if (XtraFlags.CompressHPSub == "True") fmtdata.SectData.StepSectionData.CompressHPSub = "True"; - else fmtdata.SectData.StepSectionData.CompressHPSub = "False"; - if (XtraFlags.CompressHPSuper == "True") fmtdata.SectData.StepSectionData.CompressHPSuper = "True"; - else fmtdata.SectData.StepSectionData.CompressHPSuper = "False"; - if (XtraFlags.UndSpecialStepsFoldout == "True") fmtdata.SectData.StepSectionData.UndSpecialStepsFoldout = "True"; - else fmtdata.SectData.StepSectionData.UndSpecialStepsFoldout = "False"; - if (XtraFlags.UnderlineAllMetaTitles == "True") fmtdata.SectData.StepSectionData.UnderlineAllMetaTitles = "True"; - else fmtdata.SectData.StepSectionData.UnderlineAllMetaTitles = "False"; - if (XtraFlags.BoldOnlySectionZero == "True") fmtdata.SectData.StepSectionData.BoldOnlySectionZero = "True"; - else fmtdata.SectData.StepSectionData.BoldOnlySectionZero = "False"; - if (XtraFlags.ImperfectStructure == "True") fmtdata.SectData.StepSectionData.ImperfectStructure = "True"; - else fmtdata.SectData.StepSectionData.ImperfectStructure = "False"; - if (XtraFlags.ImperfectSubstep == "True") fmtdata.SectData.StepSectionData.ImperfectSubstep = "True"; - else fmtdata.SectData.StepSectionData.ImperfectSubstep = "False"; - if (XtraFlags.ImperfectStructurePlus4 == "True") fmtdata.SectData.StepSectionData.ImperfectStructurePlus4 = "True"; - else fmtdata.SectData.StepSectionData.ImperfectStructurePlus4 = "False"; - if (XtraFlags.CountAllSubLevels == "True") fmtdata.SectData.StepSectionData.CountAllSubLevels = "True"; - else fmtdata.SectData.StepSectionData.CountAllSubLevels = "False"; - if (XtraFlags.UseMultiLineSectionTitle == "True") fmtdata.SectData.StepSectionData.UseMultiLineSectionTitle = "True"; - else fmtdata.SectData.StepSectionData.UseMultiLineSectionTitle = "False"; - #endregion - #region ChangeBars - if (XtraFlags.CondensedChangeBar == "True") fmtdata.ProcData.ChangeBarData.CondensedChangeBar = "True"; - else fmtdata.ProcData.ChangeBarData.CondensedChangeBar = "False"; - if (XtraFlags.AbsoluteFixedChangeColumn == "True") fmtdata.ProcData.ChangeBarData.AbsoluteFixedChangeColumn = "True"; - else fmtdata.ProcData.ChangeBarData.AbsoluteFixedChangeColumn = "False"; - if (XtraFlags.ContinuousChangeBars == "True") fmtdata.ProcData.ChangeBarData.ContinuousChangeBars = "True"; - else fmtdata.ProcData.ChangeBarData.ContinuousChangeBars = "False"; - if (XtraFlags.ChgBarMessageFromEdit == "True") fmtdata.ProcData.ChangeBarData.ChgBarMessageFromEdit = "True"; - else fmtdata.ProcData.ChangeBarData.ChgBarMessageFromEdit = "False"; - if (XtraFlags.MultipleChangeIds == "True") fmtdata.ProcData.ChangeBarData.MultipleChangeIds = "True"; - else fmtdata.ProcData.ChangeBarData.MultipleChangeIds = "False"; - if (XtraFlags.ChangeBarToRNOSep == "True") fmtdata.ProcData.ChangeBarData.ChangeBarToRNOSep = "True"; - else fmtdata.ProcData.ChangeBarData.ChangeBarToRNOSep = "False"; - if (XtraFlags.ChangeBarsOnLinkedText == "True") fmtdata.ProcData.ChangeBarData.ChangeBarsOnLinkedText = "True"; - else fmtdata.ProcData.ChangeBarData.ChangeBarsOnLinkedText = "False"; - #endregion - #region GeneralPrint & GeneralEdit - if (XtraFlags.DoRevDate == "True") fmtdata.PrintData.DoRevDate = "True"; - else fmtdata.PrintData.DoRevDate = "False"; - if (XtraFlags.AlternateFoldoutPages == "True") fmtdata.PrintData.AlternateFoldoutPages = "True"; - else fmtdata.PrintData.AlternateFoldoutPages = "False"; - if (XtraFlags.AlternateFloatingFoldout == "True") fmtdata.PrintData.AlternateFloatingFoldout = "True"; - else fmtdata.PrintData.AlternateFloatingFoldout = "False"; - if (XtraFlags.SectionLevelFoldouts == "True") fmtdata.PrintData.SectionLevelFoldouts = "True"; - else fmtdata.PrintData.SectionLevelFoldouts = "False"; - if (XtraFlags.RevDateWithForwardSlash == "True") fmtdata.PrintData.RevDateWithForwardSlash = "True"; - else fmtdata.PrintData.RevDateWithForwardSlash = "False"; - if (XtraFlags.SpecialStepsFoldout == "True") fmtdata.PrintData.SpecialStepsFoldout = "True"; - else fmtdata.PrintData.SpecialStepsFoldout = "False"; - if (XtraFlags.AccessoryDocsInDuplex == "True") fmtdata.PrintData.AccessoryDocsInDuplex = "True"; - else fmtdata.PrintData.AccessoryDocsInDuplex = "False"; - if (XtraFlags.FoldoutsInDuplex == "True") fmtdata.PrintData.FoldoutsInDuplex = "True"; - else fmtdata.PrintData.FoldoutsInDuplex = "False"; - if (XtraFlags.PagelistChangeIDsWithCommas == "True") fmtdata.PrintData.PagelistChangeIDsWithCommas = "True"; - else fmtdata.PrintData.PagelistChangeIDsWithCommas = "False"; - if (XtraFlags.PromptForCautinType == "True") fmtdata.EditData.PromptForCautionType = "True"; - else fmtdata.EditData.PromptForCautionType = "False"; - fmtdata.PrintData.AllowDuplex = _fmtFileName.StartsWith("WPB") || _fmtFileName.StartsWith("WEP2") ? "True" : "False"; - #endregion - #region Procedure - if (XtraFlags.DontCapitalizeTitle == "True") fmtdata.ProcData.CapitalizeTitle = "False"; - else fmtdata.ProcData.CapitalizeTitle = "True"; - if (XtraFlags.ChangeStyleForEverySection == "True") fmtdata.ProcData.ChangeStyleForEverySection = "True"; - else fmtdata.ProcData.ChangeStyleForEverySection = "False"; - if (XtraFlags.DontPrintNoTitle == "True") fmtdata.ProcData.PrintNoTitle = "False"; - else fmtdata.ProcData.PrintNoTitle = "True"; - if (XtraFlags.DontCountFoldoutPages == "True") fmtdata.ProcData.CountFoldoutPages = "False"; - else fmtdata.ProcData.CountFoldoutPages = "True"; - #endregion - #region Section - if (XtraFlags.CancelSecTitlesOnS1 == "True") fmtdata.SectData.CancelSecTitlesOnS1 = "True"; - else fmtdata.SectData.CancelSecTitlesOnS1 = "False"; - if (XtraFlags.CancelSecTitlesOnS2 == "True") fmtdata.SectData.CancelSecTitlesOnS2 = "True"; - else fmtdata.SectData.CancelSecTitlesOnS2 = "False"; - if (XtraFlags.CancelSecTitlesOnE0 == "True") fmtdata.SectData.CancelSecTitlesOnE0 = "True"; - else fmtdata.SectData.CancelSecTitlesOnE0 = "False"; - if (XtraFlags.CancelSecTitlesOnE2 == "True") fmtdata.SectData.CancelSecTitlesOnE2 = "True"; - else fmtdata.SectData.CancelSecTitlesOnE2 = "False"; - if (XtraFlags.MetaSectEndMessage == "True") fmtdata.SectData.MetaSectEndMessage = "True"; - else fmtdata.SectData.MetaSectEndMessage = "False"; - if (XtraFlags.ReadOnlyTypeInContMsg == "True") fmtdata.SectData.ReadOnlyTypeInContMsg = "True"; - else fmtdata.SectData.ReadOnlyTypeInContMsg = "False"; - if (XtraFlags.DontReplaceWordsInROs == "True") fmtdata.SectData.ReplaceWordsInROs = "False"; - else fmtdata.SectData.ReplaceWordsInROs = "True"; - if (XtraFlags.UseMetaSections == "True") fmtdata.SectData.UseMetaSections = "True"; - else fmtdata.SectData.UseMetaSections = "False"; - if (XtraFlags.NonEditableSteps == "True") fmtdata.SectData.NonEditableSteps = "True"; - else fmtdata.SectData.NonEditableSteps = "False"; - if (XtraFlags.SearchAllReplaceWords == "True") fmtdata.SectData.SearchAllReplaceWords = "True"; - else fmtdata.SectData.SearchAllReplaceWords = "False"; - if (XtraFlags.SecTitleContinue == "True") fmtdata.SectData.SecTitleContinue = "True"; - else fmtdata.SectData.SecTitleContinue = "False"; - if (XtraFlags.DontConvertCaretToDelta == "True") fmtdata.SectData.ConvertCaretToDelta = "False"; - else fmtdata.SectData.ConvertCaretToDelta = "True"; - #endregion - #region StepSectionPrint - if (XtraFlags.LowerCaseRevnum == "True") fmtdata.SectData.StepSectionData.StpSectPrtData.LowerCaseRevNum = "True"; - else fmtdata.SectData.StepSectionData.StpSectPrtData.LowerCaseRevNum = "False"; - if (XtraFlags.UseXtraRevNumber == "True") fmtdata.SectData.StepSectionData.StpSectPrtData.UseXtraRevNumber = "True"; - else fmtdata.SectData.StepSectionData.StpSectPrtData.UseXtraRevNumber = "False"; - if (XtraFlags.SpecialLandscapeMode == "True") fmtdata.SectData.StepSectionData.StpSectPrtData.SpecialLandscapeMode = "True"; - else fmtdata.SectData.StepSectionData.StpSectPrtData.SpecialLandscapeMode = "False"; - #endregion - #region CheckOff - if (XtraFlags.DropCheckOff == "True") fmtdata.ProcData.CheckOffData.DropCheckOff = "True"; - else fmtdata.ProcData.CheckOffData.DropCheckOff = "False"; - if (XtraFlags.CheckoffOnHLSOnly == "True") fmtdata.ProcData.CheckOffData.CheckOffOnHLSOnly = "True"; - else fmtdata.ProcData.CheckOffData.CheckOffOnHLSOnly = "False"; - #endregion - #region Trans - if (XtraFlags.SpecifiedSubstepsOnly == "True") fmtdata.TransData.SpecifiedSubstepsOnly = "True"; - else fmtdata.TransData.SpecifiedSubstepsOnly = "False"; - if (XtraFlags.CapsTransitions == "True") fmtdata.TransData.CapsTransitions = "True"; - else fmtdata.TransData.CapsTransitions = "False"; - if (XtraFlags.CapTranStep == "True") fmtdata.TransData.CapTranStep = "True"; - else fmtdata.TransData.CapTranStep = "False"; - if (XtraFlags.TSTepNoFlag == "True") fmtdata.TransData.TStepNoFlag = "True"; - else fmtdata.TransData.TStepNoFlag = "False"; - if (XtraFlags.LowerCaseTranNumber == "True") fmtdata.TransData.LowerCaseTranNumber = "True"; - else fmtdata.TransData.LowerCaseTranNumber = "False"; - if (XtraFlags.UpcaseTranAnd == "True") fmtdata.TransData.UpcaseTranAnd = "True"; - else fmtdata.TransData.UpcaseTranAnd = "False"; - if (XtraFlags.SuppressAndInTran == "True") fmtdata.TransData.SuppressAndInTran = "True"; - else fmtdata.TransData.SuppressAndInTran = "False"; - if (XtraFlags.Cap1stCharTrans == "True") fmtdata.TransData.Cap1stCharTrans = "True"; - else fmtdata.TransData.Cap1stCharTrans = "False"; - if (XtraFlags.UseTransitionModifier == "True") fmtdata.TransData.UseTransitionModifier = "True"; - else fmtdata.TransData.UseTransitionModifier = "False"; - if (XtraFlags.DontUseSecTitles == "True") fmtdata.TransData.UseSecTitles = "False"; - else fmtdata.TransData.UseSecTitles = "True"; - if (XtraFlags.HardSpTranProcNumb == "True") fmtdata.TransData.HardSpTranProcNumb = "True"; - else fmtdata.TransData.HardSpTranProcNumb = "False"; - if (XtraFlags.XChngTranSpForHard == "True") fmtdata.TransData.XchngTranSpForHard = "True"; - else fmtdata.TransData.XchngTranSpForHard = "False"; - if (XtraFlags.AbsoluteTransitionUpdate == "True") fmtdata.TransData.AbsoluteTransitionUpdate = "True"; - else fmtdata.TransData.AbsoluteTransitionUpdate = "False"; - if (XtraFlags.LowerCaseStepInTran == "True") fmtdata.TransData.LowerCaseStepInTran = "True"; - else fmtdata.TransData.LowerCaseStepInTran = "False"; - if (XtraFlags.DoSectionTrans == "True") fmtdata.TransData.DoSectionTransitions = "True"; - else fmtdata.TransData.DoSectionTransitions = "False"; - #endregion - #region RO - if (XtraFlags.AllUnits == "True") fmtdata.ROData.AllUnits = "True"; - else fmtdata.ROData.AllUnits = "False"; - if (XtraFlags.UpSetpntAftrDash == "True") fmtdata.ROData.UpRoAftrDash = "True"; - else fmtdata.ROData.UpRoAftrDash = "False"; - if (XtraFlags.UpcaseAllSetpointUnits == "True") fmtdata.ROData.UpcaseAllRoUnits = "True"; - else fmtdata.ROData.UpcaseAllRoUnits = "False"; - if (XtraFlags.CapHighSetpnt == "True") fmtdata.ROData.CapHighRo = "True"; - else fmtdata.ROData.CapHighRo = "False"; - if (XtraFlags.CapsPIFLastLower == "True") fmtdata.ROData.CapRoIfLastLower = "True"; - else fmtdata.ROData.CapRoIfLastLower = "False"; - if (XtraFlags.UpSpIfPrevUpper == "True") fmtdata.ROData.UpRoIfPrevUpper = "True"; - else fmtdata.ROData.UpRoIfPrevUpper = "False"; - if (XtraFlags.UnderlineSetpoints == "True") fmtdata.ROData.UnderlineRo = "True"; - else fmtdata.ROData.UnderlineRo = "False"; - if (XtraFlags.CapFirstLetterInHighSP == "True") fmtdata.ROData.CapFirstLetterInHighRO = "True"; - else fmtdata.ROData.CapFirstLetterInHighRO = "False"; - #endregion - return true; - } - - private string GetTransUIEnum(string format, string menu) - { - string transtrtmp = (menu == null || menu == "") ? format : menu; - E_TransFormatXlate xlt = TransFormat(transtrtmp); - // xlt has flags that say what is included in the transition menu - // string. Use this to set the enum that the 32-bit code will use - // to display menuing... - E_TransitionMenus transmenuflag = TransToMenuFlags(xlt); - return ((E_TransitionMenus)transmenuflag).ToString(); - } - private E_TransitionMenus TransToMenuFlags(E_TransFormatXlate xlt) - { - E_TransitionMenus result = E_TransitionMenus.None; - - // for procedures, if the menu string contains a 'procedure', then the - // selection will come from a menu, otherwise, it defaults to current procedure - // and the menu will be disabled. - result |= (xlt & E_TransFormatXlate.Procedure) == E_TransFormatXlate.Procedure ? E_TransitionMenus.ProcMenu : E_TransitionMenus.ProcCur; - - // for sections... - if ((xlt & E_TransFormatXlate.Section) == E_TransFormatXlate.Section) - { - if ((xlt & E_TransFormatXlate.Range) == E_TransFormatXlate.Range) - result |= E_TransitionMenus.SectMenuStep; - else - result |= E_TransitionMenus.SectMenuAny; - - } - else - { - if ((xlt & E_TransFormatXlate.Procedure) == E_TransFormatXlate.Procedure) - result |= E_TransitionMenus.SectDefault; - else - result |= E_TransitionMenus.SectCur; - } - - // now do steps... - if ((xlt & E_TransFormatXlate.Range) == E_TransFormatXlate.Range) - { - result |= E_TransitionMenus.StepFirst; - result |= E_TransitionMenus.StepLast; - } - else - result |= E_TransitionMenus.StepFirst; - if (((result & E_TransitionMenus.SectDefault) == E_TransitionMenus.SectDefault) || ((result & E_TransitionMenus.SectMenuAny) == E_TransitionMenus.SectMenuAny)) - result |= E_TransitionMenus.StepAllowNone; - - return result; - } - private static E_TransFormatXlate TransFormat(string str) - { - E_TransFormatXlate retval = E_TransFormatXlate.None; - if (HasRange(str)) retval |= E_TransFormatXlate.Range; - else if (HasStep(str)) retval |= E_TransFormatXlate.Step; - if (HasSection(str)) retval |= E_TransFormatXlate.Section; - if (HasProc(str)) retval |= E_TransFormatXlate.Procedure; - if (HasPage(str)) retval |= E_TransFormatXlate.Page; - return retval; - } - private static bool HasProc(string str) - { - return str.Contains("{Proc") || str.Contains("{?.Proc"); - } - private static bool HasPage(string str) - { - return str.Contains("{Page"); - } - private static bool HasSection(string str) - { - return str.Contains("{Sect") || str.Contains("{?.Sect"); - } - private static bool HasRange(string str) - { - return str.Contains("{Last"); - } - private static bool HasStep(string str) - { - if (str.Contains("{Step")) return true; - return str.Contains("{First Step"); - } - private string ConvertSeqStart(byte p) - { - if (p == 0 || p == 0x30) return "{numeric}"; - else if (p == 0x60) return "{alpha}"; - else if (p == 0x40) return "{ALPHA}"; - else return "{UNKNOWN}"; - } - #endregion - private static Dictionary _TransForms = new Dictionary(); - public static XslCompiledTransform getTransform(string path) - { - if (!_TransForms.ContainsKey(path)) - { - XslCompiledTransform xsl = new XslCompiledTransform(); - xsl.Load(path); - _TransForms.Add(path, xsl); - } - return _TransForms[path]; - } - public bool WriteOutXmlTmp(FormatData fmtdata, string suffix) - { - try - { - XmlSerializer serializer = new XmlSerializer(typeof(FormatData)); - string lfmtname = fmtName; - int findx = fmtName.IndexOf('.'); - // for subformats, make the name FMT_00 where FMT is format name & 00 is number - // from original name. This will allow the data load to know it's a sub. - if (findx > 0) - lfmtname = fmtName.Substring(0, fmtName.Length - 4) + "_" + fmtName.Substring(fmtName.Length - 2, 2); - string destfile = "tmp_fmt_xml\\" + lfmtname + "_" + suffix + ".xml"; - if (File.Exists(destfile)) File.Delete(destfile); - TextWriter writer = new StreamWriter(destfile); - _MyFormatSerializer.Serialize(writer, fmtdata); - writer.Close(); - return true; - } - catch (Exception e) - { - Console.WriteLine("Error writing out xml or xsl - format = {0}", fmtdata.Name); - Console.WriteLine(e.Message); - Console.WriteLine(); - return false; - } - } - #region WriteOutXml - static private XmlSerializer _MyFormatSerializer = new XmlSerializer(typeof(FormatData)); - public bool WriteOutXml(FormatData fmtdata) - { - // First serialize files based on the above - then use xsl to transform - // into prefered xml. - if (!Directory.Exists("fmt_xml")) Directory.CreateDirectory("fmt_xml"); - if (!Directory.Exists("tmp_fmt_xml")) Directory.CreateDirectory("tmp_fmt_xml"); - //XmlSerializer serializer = new XmlSerializer(typeof(FormatData)); - - string lfmtname = fmtName; - int findx = fmtName.IndexOf('.'); - // for subformats, make the name FMT_00 where FMT is format name & 00 is number - // from original name. This will allow the data load to know it's a sub. - if (findx > 0) - lfmtname = fmtName.Substring(0, fmtName.Length - 4) + "_" + fmtName.Substring(fmtName.Length - 2, 2); - string destfile = "tmp_fmt_xml\\" + lfmtname + "f.xml"; - if (File.Exists(destfile)) File.Delete(destfile); - TextWriter writer = new StreamWriter(destfile); - try - { - _MyFormatSerializer.Serialize(writer, fmtdata); - writer.Close(); - //XslCompiledTransform xsl = new XslCompiledTransform(); - //xsl.Load(Application.StartupPath + "\\TranslateFmt.XSL"); - string sResults = "fmt_xml\\" + lfmtname + "f.xml"; - //xsl.Transform(destfile, sResults); // Perform Transform - XslCompiledTransform xsl = getTransform(Application.StartupPath + "\\TranslateFmt.XSL"); - xsl.Transform(destfile, sResults); // Perform Transform - xsl = getTransform(Application.StartupPath + "\\removeempty.XSL"); - //xsl.Load(Application.StartupPath + "\\removeempty.XSL"); - string sResults2 = "fmt_xml\\" + lfmtname + "xf.xml"; - xsl.Transform(sResults, sResults2); - File.Delete(sResults); - xsl.Transform(sResults2, sResults); - File.Delete(sResults2); - } - - catch (Exception e) - { - Console.WriteLine("Error writing out xml or xsl - format = {0}", fmtdata.Name); - Console.WriteLine(e.Message); - Console.WriteLine(); - return false; - } - return true; - } - #endregion - #region OriginalNoBase - //public void LoadFormatFileOrig(string fname) - //{ - // FormatData fmtdata = new FormatData(); - - // // read in data & put into correct place of structures. - // // for test string fnm = "E:\\proms.net\\exe\\fmtxml\\" + fname; - // string fnm = "E:\\ve-proms\\format\\" + fname; - // brFmt = new BinaryReader(File.Open(fnm, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)); - // bool success = ReadInFmtFile(ref fmtdata); - // #region FinishMainConvert - // if (success) - // { - // DoStepInheritance(ref fmtdata.StepData); - // success = WriteOutXml(fmtdata); - // } - // #endregion - // brFmt.Close(); - - // #region ProcessSubFormats - // // For each sub-format, load the entire file & compare to parent contents - // DirectoryInfo di = new DirectoryInfo("E:\\ve-proms\\format"); - // string substr = fname.Substring(0, fname.IndexOf('.')) + ".x*"; - // FileInfo [] fis = di.GetFiles(substr); - // foreach (FileInfo fi in fis) - // { - // //this.listBox1.Items.Add(fi.Name); - // fmtName = fi.Name; - // fnm = "E:\\ve-proms\\format\\" + fi.Name; - // brFmt = new BinaryReader(File.Open(fnm, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)); - // FormatData subdata = new FormatData(); - // success = ReadInFmtFile(ref subdata); - // if (success) - // { - // DoStepInheritance(ref subdata.StepData); - // } - // // Now do entire format inheritance - then write out. - // success = CompareParentSub(fmtdata, ref subdata); - // success = WriteOutXml(subdata); - - // } - // #endregion - //} - #endregion - #region InheritBase - public void LoadFormatFile(string fname, ref XtraFlgs XtraFlags) - { - Console.WriteLine("1_List Count = {0}", StepParentList.Count); - FormatData fmtdata = new FormatData(); - - // read in data & put into correct place of structures. - // for test string fnm = "E:\\proms.net\\exe\\fmtxml\\" + fname; - string fnm = MyPath + @"\" + fname; - brFmt = new BinaryReader(File.Open(fnm, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)); - bool success = ReadInFmtFile(ref fmtdata, ref BaseXtraFlags, fname); - FixInactiveForHigh(ref fmtdata); - FixInactiveForSubStep(ref fmtdata); - FixInactiveForText(ref fmtdata); - if (!HasBase) InitSymbols(ref fmtdata); - else fmtdata.Symbols = null; - - if (success) - { - PushStepLists(fmtdata.StepData); - DoStepInheritance(ref fmtdata.StepData); - } - brFmt.Close(); - - // Now compare with gen (if !gen). - if (HasBase == false) - success = WriteOutXml(fmtdata); - else - { - //success = WriteOutXmlTmp(fmtdata, "beforeParent"); - success = CompareParentSub(BaseFormat, ref fmtdata); - success = WriteOutXml(fmtdata); - - // For each sub-format, load the entire file & compare to parent contents - DirectoryInfo di = new DirectoryInfo(MyPath); - string substr = fname.Substring(0, fname.IndexOf('.')) + ".x*"; - FileInfo[] fis = di.GetFiles(substr); - foreach (FileInfo fi in fis) - { - if (!Form1.Excluded(fi)) - { - //this.listBox1.Items.Add(fi.Name); - fmtName = fi.Name; - fnm = MyPath + @"\" + fi.Name; - brFmt = new BinaryReader(File.Open(fnm, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)); - FormatData subdata = new FormatData(); - success = ReadInFmtFile(ref subdata, ref SubXtraFlags, fi.Name); - //OutputStepFonts(fi.Name, subdata); - if (success) - { - PushStepLists(subdata.StepData); - DoStepInheritance(ref subdata.StepData); - PopStepLists(); - } - // Now do entire format inheritance - then write out. - success = CompareParentSub(fmtdata, ref subdata); - success = CompareParentSub(BaseFormat, ref subdata); - success = WriteOutXml(subdata); - } - } - } - MyFormat = fmtdata; - if (HasBase) PopStepLists(); // leave the base format on 'stack', i.e. only pop if !base. - Console.WriteLine("2_List Count = {0}", StepParentList.Count); - } - - private void PushStepLists(Step[] stpdata) - { - Dictionary dicSteps = BuildStepDic(stpdata); - StepList.Insert(0, dicSteps); - Dictionary dicParents = BuildParentDic(stpdata, dicSteps); - StepParentList.Insert(0, dicParents); - } - private void PopStepLists() - { - StepList.RemoveAt(0); - StepParentList.RemoveAt(0); - } - private static void OutputStepFonts1(string fname, FormatData fmtdata) - { - if (fname == "BASE.fmt") - { - Console.Write("'Name','Description'"); - for (int i = 0; i < MAXSTEPS + 1; i++) - { - Console.Write(",'{0}'", fmtdata.StepData[i].Type); - } - Console.Write("\r\n"); - Console.Write("'base','Default'"); - } - else - Console.Write("'{0}','{1}'", FixName(fname), fmtdata.Name); - for (int i = 0; i < MAXSTEPS + 1; i++) - { - if (fmtdata.StepData[i].Font != null) - Console.Write(",'{0} [{1}] - {2}'", fmtdata.StepData[i].Font.FontFamily, fmtdata.StepData[i].Font.FontSize, fmtdata.StepData[i].Font.FontStyle); - else if (i == 1 && fmtdata.StepData[0].Font != null) - Console.Write(",'{0} [{1}] - {2}'", fmtdata.StepData[0].Font.FontFamily, fmtdata.StepData[0].Font.FontSize, fmtdata.StepData[0].Font.FontStyle); - else - Console.Write(",'Prestige Elite Tall [10] - None'"); - } - Console.Write("\r\n"); - } - private static void OutputStepFonts(string fname, FormatData fmtdata) - { - if (fname == "BASE.fmt") - { - Console.Write("'Name','Description'"); - for (int i = 0; i < MAXSTEPS + 1; i++) - { - Console.Write(",'{0}'", fmtdata.StepData[i].Type); - } - Console.Write("\r\n"); - Console.Write("'base','Default'"); - } - else - Console.Write("'{0}','{1}'", FixName(fname), fmtdata.Name); - for (int i = 0; i < MAXSTEPS + 1; i++) - { - if (fmtdata.StepData[i].TabData.Font != null) - Console.Write(",'{0} [{1}] - {2}'", fmtdata.StepData[i].TabData.Font.FontFamily, fmtdata.StepData[i].TabData.Font.FontSize, fmtdata.StepData[i].TabData.Font.FontStyle); - else if (i == 1 && fmtdata.StepData[0].TabData.Font != null) - Console.Write(",'{0} [{1}] - {2}'", fmtdata.StepData[0].TabData.Font.FontFamily, fmtdata.StepData[0].TabData.Font.FontSize, fmtdata.StepData[0].TabData.Font.FontStyle); - else - Console.Write(",'*'"); - } - Console.Write("\r\n"); - } - private static string FixName(string fname) - { - string lfmtname = fname; - int findx = fname.IndexOf('.'); - // for subformats, make the name FMT_00 where FMT is format name & 00 is number - // from original name. This will allow the data load to know it's a sub. - if (findx > 0) - { - if (fname.ToUpper().EndsWith(".FMT")) - lfmtname = fname.Substring(0, fname.Length - 4); - else - lfmtname = fname.Substring(0, fname.Length - 4) + fname.Substring(fname.Length - 2, 2); - } - return lfmtname; - } - private void InitSymbols(ref FormatData fmtdata) - { - fmtdata.Symbols = new Symbol[35]; - fmtdata.Symbols[0].Unicode = "176"; - fmtdata.Symbols[0].Desc = "degree"; - fmtdata.Symbols[1].Unicode = "916"; - fmtdata.Symbols[1].Desc = "delta"; - fmtdata.Symbols[2].Unicode = "8805"; - fmtdata.Symbols[2].Desc = "greater than or equal"; - fmtdata.Symbols[3].Unicode = "8804"; - fmtdata.Symbols[3].Desc = "less than or equal"; - fmtdata.Symbols[4].Unicode = "177"; - fmtdata.Symbols[4].Desc = "plus minus"; - fmtdata.Symbols[5].Unicode = "931"; - fmtdata.Symbols[5].Desc = "sigma"; - fmtdata.Symbols[6].Unicode = "947"; - fmtdata.Symbols[6].Desc = "gamma"; - fmtdata.Symbols[7].Unicode = "189"; - fmtdata.Symbols[7].Desc = "half"; - fmtdata.Symbols[8].Unicode = "9604"; - fmtdata.Symbols[8].Desc = "accum"; - fmtdata.Symbols[9].Unicode = "9679"; - fmtdata.Symbols[9].Desc = "bullet"; - fmtdata.Symbols[10].Unicode = "8776"; - fmtdata.Symbols[10].Desc = "approx eq"; - fmtdata.Symbols[11].Unicode = "8773"; - fmtdata.Symbols[11].Desc = "similar eq"; - fmtdata.Symbols[12].Unicode = "247"; - fmtdata.Symbols[12].Desc = "division"; - fmtdata.Symbols[13].Unicode = "8730"; - fmtdata.Symbols[13].Desc = "square root"; - fmtdata.Symbols[14].Unicode = "961"; - fmtdata.Symbols[14].Desc = "rho"; - fmtdata.Symbols[15].Unicode = "960"; - fmtdata.Symbols[15].Desc = "pi"; - fmtdata.Symbols[16].Unicode = "956"; - fmtdata.Symbols[16].Desc = "micro"; - fmtdata.Symbols[17].Unicode = "948"; - fmtdata.Symbols[17].Desc = "lower case delta"; - fmtdata.Symbols[18].Unicode = "963"; - fmtdata.Symbols[18].Desc = "lower case sigma"; - fmtdata.Symbols[19].Unicode = "188"; - fmtdata.Symbols[19].Desc = "quarter"; - fmtdata.Symbols[20].Unicode = "216"; - fmtdata.Symbols[20].Desc = "dist zero"; - fmtdata.Symbols[21].Unicode = "274"; - fmtdata.Symbols[21].Desc = "energy"; - fmtdata.Symbols[22].Unicode = "236"; - fmtdata.Symbols[22].Desc = "grave"; - fmtdata.Symbols[23].Unicode = "9474"; - fmtdata.Symbols[23].Desc = "bar"; - fmtdata.Symbols[24].Unicode = "949"; - fmtdata.Symbols[24].Desc = "epsilon"; - fmtdata.Symbols[25].Unicode = "952"; - fmtdata.Symbols[25].Desc = "theta"; - fmtdata.Symbols[26].Unicode = "8857"; - fmtdata.Symbols[26].Desc = "dot in oval"; - fmtdata.Symbols[27].Unicode = "964"; - fmtdata.Symbols[27].Desc = "tau"; - fmtdata.Symbols[28].Unicode = "9830"; - fmtdata.Symbols[28].Desc = "diamond"; - fmtdata.Symbols[29].Unicode = "8594"; - fmtdata.Symbols[29].Desc = "right arrow"; - fmtdata.Symbols[30].Unicode = "8592"; - fmtdata.Symbols[30].Desc = "left arrow"; - fmtdata.Symbols[31].Unicode = "8593"; - fmtdata.Symbols[31].Desc = "up arrow"; - fmtdata.Symbols[32].Unicode = "8595"; - fmtdata.Symbols[32].Desc = "down arrow"; - fmtdata.Symbols[33].Unicode = "8711"; - fmtdata.Symbols[33].Desc = "unknown5"; - } - #endregion - #region TokenConvert - private string ConvertTransFormat(string p) - { - // parenflag puts paren around proc title AND sectitle. - p = p.Replace("\xff", "\xA0"); - p = p.Replace("\x07", "{First Step}"); - p = p.Replace("\x08", "{Last Step}"); - p = p.Replace("\x04", "{Sect Title}"); - p = p.Replace("\x06", "{Sect Title}"); - p = p.Replace("\x03", "{Sect Num}"); - p = p.Replace("\x17", "{Sect Num}"); - p = p.Replace("\x02", "{Proc Title}"); - p = p.Replace("\x01", "{Proc Num}"); - p = p.Replace("\xF", "{Page Num}"); - p = p.Replace("\x1E", "{Page Num}"); - p = p.Replace("\x1D", "{Step Text}"); - p = p.Replace("\x0D", "Step {First Step}"); - - // the following are in cpl & she format Not sure what to do so just - // flag them - //if (p.Length==1 && (p.IndexOfAny("\x19\x1A".ToCharArray())>-1)) - //{ - p = p.Replace("\x19", "{TransFmt hex 19}"); - p = p.Replace("\x1A", "{TransFmt hex 1a}"); - //} - - p = ConvertText(p); - p = DoReplaceTokens(p); - return p; - } - private string DoReplaceTokens(string p) - { - if (p == null || p == "") return p; - string wkstr = p; - // use regular expressions to do the following... - - try - { - // replace newline with {par} - wkstr = wkstr.Replace("\n", @"{\par}"); - - // special change bar token (various cpl formats) - wkstr = wkstr.Replace("\x08\x08\x08\x08\x08\x05", "{CHG_BAR with Backspace Token}"); - - // special change bar token (various gpc formats) - wkstr = wkstr.Replace("\x05", "{CHG_BAR Token}"); - - // backspage - just flag for positioning if needed. - wkstr = wkstr.Replace("\x08", "{Backspace}"); - - //sub on/off - //sub on/off - stop at EOL, another token or a space. - wkstr = wkstr.Replace("\x19\x19", "\x19"); // replace double sub on with single - wkstr = wkstr.Replace("~~", "\x19"); - wkstr = Regex.Replace(wkstr, @"\x19([^\x19\x18 ]*?)(?:[\x19\x18]|(?= )|\Z)(.*?)", @"\sub $1\nosupersub $2"); - - //super on/off - //super on/off - stop at EOL, another token or a space. - wkstr = Regex.Replace(wkstr, @"\x18([^\x19\x18 ]*?)(?:[\x19\x18]|(?= )|\Z)(.*?)", @"\super $1\nosupersub $2"); - - //bold on/off - stop at end of line or another token. - wkstr = Regex.Replace(wkstr, @"\x01([^\x01]*?)(?:\x01|\Z)", @"\b $1\b0 "); - //OLD CODE (pre-10/2007): wkstr = Regex.Replace(wkstr, @"\x01([^\x01 ]*?)(?:[\x01]|(?= )|\Z)(.*?)", @"\b$1\b0$2"); - //bold on/off - stop at EOL, another token or a space - wkstr = Regex.Replace(wkstr, @"\x13([^\x13\xd6 ]*?)(?:[\x13\xd6]|(?= )|\Z)(.*?)", @"\b $1\b0 $2"); - - //underline on/off - look for 16 followed by non-sixteen (as many as there are) and followed by 16 or endofline - //OLD CODE (pre-10/2007): wkstr = Regex.Replace(wkstr, @"\x16([^\x16 ]*?)(?:[\x16]|(?= )|\Z)(.*?)", @"\ul$1\ul0$2"); - //underline on/off - stop at end of line or another token. - //wkstr = Regex.Replace(wkstr, @"\x16([^\x16]*?)(?:\x16|\Z)", @"\ul $1\ul0 "); - wkstr = Regex.Replace(wkstr, @"\x16([^\x16]*?)(?:\x16|\Z)", @"\ul $1\ulnone "); - - //narrator - wkstr = Regex.Replace(wkstr, @"\x86([^\x86 ]*?)(?:[\x86]|(?= )|\Z)(.*?)", @"\f{Narrator}$1\f0$2"); - - // remove hanging indent, vertical tab - wkstr = Regex.Replace(wkstr, @"\x02", @"\NonSupported Hanging Indent (Hex x02)"); - wkstr = Regex.Replace(wkstr, @"\x0B", @"\NonSupported Vertical Tab (Hex x0b"); - - // remove some unknown chars for ano & fpl - these plants are not supported - // as of conversion date. - wkstr = Regex.Replace(wkstr, @"\x95", @"\NonSupported Unknown (Hex x95)"); //ano2vlv - wkstr = Regex.Replace(wkstr, @"\x1bf1", @"\NonSupported Unknown (hex 1b f1)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bf0", @"\NonSupported Unknown (hex 1b f0)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bM1", @"\NonSupported Unknown (hex 1b M1)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bM0", @"\NonSupported Unknown (hex 1b M0)"); //fpl - - // replace \xff with \xA0, i.e. hardspace - wkstr = Regex.Replace(wkstr, @"\xFF", @"\xA0"); - - // replace x10 & x11 in various ano tabs - not this needs fixed if ANO comes - // back into the program - wkstr = wkstr.Replace("\x10", ""); - wkstr = wkstr.Replace("\x11", ""); - - // replace x15 with {RO} for now. - wkstr = wkstr.Replace("\x15", "{RO}"); - } - catch (Exception ex) - { - Console.WriteLine("error replacing token (regex) = {0}", ex.Message); - } - - return wkstr; - } - private float CalculateTabWid(string p) - { - if (p == null || p.Length == 0) return 0; - int tablen = p.Length; - // don't count if macro.... - int tokb = p.IndexOf("{"); - if (tokb > -1) - { - if ((tokb = p.IndexOf("{!")) > -1) - { - int toke = p.IndexOf("}", tokb + 2); - tablen -= (toke - tokb + 1); - } - else - tablen -= 2; // "{}" - } - if ((tokb = p.IndexOf("\xA1")) > -1) tablen--; // flags circle macro - if ((tokb = p.IndexOf("##-3#")) > -1) tablen -= 5; // positioning - if ((tokb = p.IndexOf("\xAF")) > -1) tablen--; // indent - if ((tokb = p.IndexOf("\n")) > -1) tablen--; // newline - not sure what to do here - if ((tokb = p.IndexOf("")) > -1) tablen--; // box step flag - for (int i = 0; i < p.Length; i++) if (p[i] == 0x08) tablen--; // discount backspaces. - for (int i = 0; i < p.Length; i++) if (p[i] == 0x16) tablen--; // underline toggle tokens - if (tablen < 0) tablen = 0; - return ColToPoints(tablen, _PlantDefaultFontStyle); - } - private string DoTabs(VE_Font vefont, string po, int i, string p, bool doNumeric) - { - //if (i == 39 || i == 41) Console.WriteLine("Here"); - if ((p == null || p == "") && i != 0) return p ?? ""; - - string wkstr = p; - if (i == 0 && p == null) - return "{seq}"; - //Number Formatting - // $ - Uppercase Alphabetical (IP2, GEN, CAL2, VLNCAS) - // & - Roman Numeral - UpperCase - // @ - Uppercase Alphabetical (AEP, CAL2, GEN, IP2, NSP, RGE, VLNCAS) - wkstr = Regex.Replace(wkstr, @"\$", @"{ALPHA}"); - wkstr = Regex.Replace(wkstr, @"&", @"{ROMAN}"); - wkstr = Regex.Replace(wkstr, @"@", @"{ALPHA}"); - - // Position offset - do this one here, so don't get background substitution below.. - // ##-3# - Offset of -3 from Parent (FNP) - wkstr = Regex.Replace(wkstr, @"##-3#", @"{Pos-3}"); - - // Background/Deviation Documents - check for E_PurchaseOptions.(ENHANCEDBACKGROUNDS or ENHANCEDDEVIATIONS) - // # - Related Caution or Note number - // ~ - Linked Step Number - - if ((po.ToUpper().IndexOf("ENHANCEDBACKGROUNDS") > -1) || (po.ToUpper().IndexOf("ENHANCEDDEVIATIONS") > -1)) - { - wkstr = wkstr.Replace("#", "{LNK C/N Num}"); - wkstr = wkstr.Replace("~", "{LNK Step Num}"); - } - - // Insert seq & numeric for sequential & any high type if there are not other - // commands. - int indx = 0; - // if sequential or high, add the seq or numeric token - if (i == 0 && ((indx = wkstr.IndexOf("{")) < 0)) // sequential - put in "{seq}" - wkstr = wkstr.Insert(0, "{seq}"); - // high, immediate, continuous, lossofac, high5 - put in " {numeric} " - else if ((i == 1 || i == 2 || i == 8 || i == 17 || i == 40) && ((indx = wkstr.IndexOf("{")) < 0) && doNumeric) - { - int indxColon = wkstr.IndexOf(":"); - int indxPercent = wkstr.IndexOf("%"); - if (indxColon > 0) - wkstr = wkstr.Insert(indxColon, "{numeric}"); - else if (indxPercent > 0) - wkstr = wkstr.Insert(indxPercent + 1, "{numeric}"); // put numeric after section prefix - else - wkstr = wkstr.Insert(1, "{numeric}"); - } - - //Section Numbers - // % - Prefix with section number (works string in 16 bit, ie.e For 4.3 the prefix becomes 4. - // wid that would be stored. - wkstr = Regex.Replace(wkstr, @"%", @"{Section Prefix}"); - - // Position offset - // \257 - Indent (CALLOWAY BACKGROUNDS) - // Newline within a tab (calbck) - wkstr = wkstr.Replace("\xAF", @"{indent}"); - wkstr = wkstr.Replace("\n", @"{par}"); - - //Macros - // - draws a diamond around the stepnumber - // - A macro - // - // <> - ignored - // \241 - circle macro around step, same as - // Also note, the format files had "<>", these get converted during input in this - // format converter code. - wkstr = wkstr.Replace("{!asterisk}", "\\fs10 \\b*\\b0"); // was font size 20 in 16-bit - wkstr = Regex.Replace(wkstr, @"{![.*?]}", @"{!$1}"); - wkstr = wkstr.Replace("{}", ""); - wkstr = wkstr.Replace("", "{!C0}"); - if (vefont != null && vefont.HasCircleString2()) wkstr.Insert(0, "{!C0}"); - - // Symbols - // * - simply an asterisk (do nothing here) - // - - simlply a dash (do nothing here) - // \007 - bullet (gets translated - wkstr = wkstr.Replace("\007", "\x9679"); - wkstr = wkstr.Replace("", @"{Box Step}"); - wkstr = DoReplaceTokens(wkstr); - wkstr = ConvertText(wkstr); - return wkstr; - } - #endregion - #region DoEntireInherit - private bool CompareParentSub(FormatData mainFmt, ref FormatData subFmt) - { - // just compare all fields - clear the subformat if equal. - #region COMPAREACTIVE - subFmt.FontData = FixInheritedFont(subFmt.FontData, mainFmt.FontData); // Phase 10 - if (mainFmt.PurchaseOptions == subFmt.PurchaseOptions) subFmt.PurchaseOptions = null; - if (mainFmt.TPL == subFmt.TPL) subFmt.TPL = null; - if (mainFmt.EditData.EMode == subFmt.EditData.EMode) subFmt.EditData.EMode = null; - if (mainFmt.EditData.PromptForCautionType != null && mainFmt.EditData.PromptForCautionType == subFmt.EditData.PromptForCautionType) subFmt.EditData.PromptForCautionType = "null"; - if (mainFmt.SectData.StepSectionData.TopRow == subFmt.SectData.StepSectionData.TopRow) subFmt.SectData.StepSectionData.TopRow = 0; - if (mainFmt.PrintData.DoPrnDrvrAdjusts == subFmt.PrintData.DoPrnDrvrAdjusts) subFmt.PrintData.DoPrnDrvrAdjusts = 0; - if (mainFmt.PrintData.DoRevDate != null && mainFmt.PrintData.DoRevDate == subFmt.PrintData.DoRevDate) subFmt.PrintData.DoRevDate = "null"; - if (mainFmt.PrintData.AlternateFoldoutPages != null && mainFmt.PrintData.AlternateFoldoutPages == subFmt.PrintData.AlternateFoldoutPages) subFmt.PrintData.AlternateFoldoutPages = "null"; - if (mainFmt.PrintData.AlternateFloatingFoldout != null && mainFmt.PrintData.AlternateFloatingFoldout == subFmt.PrintData.AlternateFloatingFoldout) subFmt.PrintData.AlternateFloatingFoldout = "null"; - if (mainFmt.PrintData.SectionLevelFoldouts != null && mainFmt.PrintData.SectionLevelFoldouts == subFmt.PrintData.SectionLevelFoldouts) subFmt.PrintData.SectionLevelFoldouts = "null"; - if (mainFmt.PrintData.RevDateWithForwardSlash != null && mainFmt.PrintData.RevDateWithForwardSlash == subFmt.PrintData.RevDateWithForwardSlash) subFmt.PrintData.RevDateWithForwardSlash = "null"; - if (mainFmt.PrintData.SpecialStepsFoldout != null && mainFmt.PrintData.SpecialStepsFoldout == subFmt.PrintData.SpecialStepsFoldout) subFmt.PrintData.SpecialStepsFoldout = "null"; - if (mainFmt.PrintData.AccessoryDocsInDuplex != null && mainFmt.PrintData.AccessoryDocsInDuplex == subFmt.PrintData.AccessoryDocsInDuplex) subFmt.PrintData.AccessoryDocsInDuplex = "null"; - if (mainFmt.PrintData.AllowDuplex != null && mainFmt.PrintData.AllowDuplex == subFmt.PrintData.AllowDuplex) subFmt.PrintData.AllowDuplex = "null"; - if (mainFmt.PrintData.FoldoutsInDuplex != null && mainFmt.PrintData.FoldoutsInDuplex == subFmt.PrintData.FoldoutsInDuplex) subFmt.PrintData.FoldoutsInDuplex = "null"; - if (mainFmt.PrintData.PagelistChangeIDsWithCommas != null && mainFmt.PrintData.PagelistChangeIDsWithCommas == subFmt.PrintData.PagelistChangeIDsWithCommas) subFmt.PrintData.PagelistChangeIDsWithCommas = "null"; - - // compare step data, step index by step index. This assumes that step data between - // the two indices is the same. - //for (int i = 0; i < MAXSTEPS; i++) - //{ - // if (i == 40) Console.WriteLine("Here"); - // Step mstp = mainFmt.StepData[i]; - // Step sstp = subFmt.StepData[i]; - // if (mstp.StepLayoutData.ForeColor == sstp.StepLayoutData.ForeColor) subFmt.StepData[i].StepLayoutData.ForeColor = null; - // if (mstp.StepLayoutData.BackColor == sstp.StepLayoutData.BackColor) subFmt.StepData[i].StepLayoutData.BackColor = null; - // if (mstp.StepLayoutData.STExtraSpace == sstp.StepLayoutData.STExtraSpace) subFmt.StepData[i].StepLayoutData.STExtraSpace = null; - // // don't inherit stboxindex because box definition may not be the same. - // //if (mstp.StepLayoutData.STBoxindex == sstp.StepLayoutData.STBoxindex) subFmt.StepData[i].StepLayoutData.STBoxindex = null; - // if (mstp.StepPrintData.PosAdjust == sstp.StepPrintData.PosAdjust) subFmt.StepData[i].StepPrintData.PosAdjust = null; - // if (mstp.StepEditData.AcTable == sstp.StepEditData.AcTable) subFmt.StepData[i].StepEditData.AcTable = null; - // if (mstp.StepLayoutData.EveryNLines == sstp.StepLayoutData.EveryNLines) subFmt.StepData[i].StepLayoutData.EveryNLines = null; - // if (mstp.StepLayoutData.SpaceBefore == sstp.StepLayoutData.SpaceBefore) subFmt.StepData[i].StepLayoutData.SpaceBefore = null; - // if (mstp.StepLayoutData.SpaceAfter == sstp.StepLayoutData.SpaceAfter) subFmt.StepData[i].StepLayoutData.SpaceAfter = null; - // if (mstp.StepLayoutData.AlwaysUpperCase == sstp.StepLayoutData.AlwaysUpperCase) subFmt.StepData[i].StepLayoutData.AlwaysUpperCase = null; - // if (mstp.StepLayoutData.PageBreakAtTypeChange == sstp.StepLayoutData.PageBreakAtTypeChange) subFmt.StepData[i].StepLayoutData.PageBreakAtTypeChange = null; - // if (mstp.StepLayoutData.AlignWithParentTab == sstp.StepLayoutData.AlignWithParentTab) subFmt.StepData[i].StepLayoutData.AlignWithParentTab = null; - // if (mstp.StepLayoutData.StepTypeWidthOverride == sstp.StepLayoutData.StepTypeWidthOverride) subFmt.StepData[i].StepLayoutData.StepTypeWidthOverride = null; - // if (mstp.VertPos == sstp.VertPos) subFmt.StepData[i].VertPos = null; - // if (mstp.DoubleSpace != null && mstp.DoubleSpace == sstp.DoubleSpace) subFmt.StepData[i].DoubleSpace = "null"; - // if (mstp.EnhancedStepNumFromPrev != null && mstp.EnhancedStepNumFromPrev == sstp.EnhancedStepNumFromPrev) subFmt.StepData[i].EnhancedStepNumFromPrev = "null"; - // if (mstp.UseSmartTemplate != null && mstp.UseSmartTemplate == sstp.UseSmartTemplate) subFmt.StepData[i].UseSmartTemplate = "null"; - // if (mstp.AlwaysUseExtraLines != null && mstp.AlwaysUseExtraLines == sstp.AlwaysUseExtraLines) subFmt.StepData[i].AlwaysUseExtraLines = "null"; - // if (mstp.SeparateBox != null && mstp.SeparateBox == sstp.SeparateBox) subFmt.StepData[i].SeparateBox = "null"; - // if (mstp.SeparateBoxCautions != null && mstp.SeparateBoxCautions == sstp.SeparateBoxCautions) subFmt.StepData[i].SeparateBoxCautions = "null"; - // if (mstp.SpaceDouble != null && mstp.SpaceDouble == sstp.SpaceDouble) subFmt.StepData[i].SpaceDouble = "null"; - // if (mstp.ReduceLineAfter != null && mstp.ReduceLineAfter == sstp.ReduceLineAfter) subFmt.StepData[i].ReduceLineAfter = "null"; - // if (mstp.SameLevel != null && mstp.SameLevel == sstp.SameLevel) subFmt.StepData[i].SameLevel = "null"; - // if (mstp.BoldHighLevel != null && mstp.BoldHighLevel == sstp.BoldHighLevel) subFmt.StepData[i].BoldHighLevel = "null"; - // if (mstp.OneLineBeforeTab != null && mstp.OneLineBeforeTab == sstp.OneLineBeforeTab) subFmt.StepData[i].OneLineBeforeTab = "null"; - // if (mstp.BoxIt != null && mstp.BoxIt == sstp.BoxIt) subFmt.StepData[i].BoxIt = "null"; - // if (mstp.Boxed != null && mstp.Boxed == sstp.Boxed) subFmt.StepData[i].Boxed = "null"; - // if (mstp.XLines_StepFix != null && mstp.XLines_StepFix == sstp.XLines_StepFix) subFmt.StepData[i].XLines_StepFix = "null"; - // if (mstp.Rebox != null && mstp.Rebox == sstp.Rebox) subFmt.StepData[i].Rebox = "null"; - // if (mstp.SpcHdr != null && mstp.SpcHdr == sstp.SpcHdr) subFmt.StepData[i].SpcHdr = "null"; - // if (mstp.ContinueOnly != null && mstp.ContinueOnly == sstp.ContinueOnly) subFmt.StepData[i].ContinueOnly = "null"; - // if (mstp.SepAfterAER != null && mstp.SepAfterAER == sstp.SepAfterAER) subFmt.StepData[i].SepAfterAER = "null"; - // if (mstp.UseAlternateStepBox != null && mstp.UseAlternateStepBox == sstp.UseAlternateStepBox) subFmt.StepData[i].UseAlternateStepBox = "null"; - // if (mstp.UnderlineAfterDashSpace != null && mstp.UnderlineAfterDashSpace == sstp.UnderlineAfterDashSpace) subFmt.StepData[i].UnderlineAfterDashSpace = "null"; - // if (mstp.SpaceIn != null && mstp.SpaceIn == sstp.SpaceIn) subFmt.StepData[i].SpaceIn = "null"; - // if (mstp.PageBreakOnStep != null && mstp.PageBreakOnStep == sstp.PageBreakOnStep) subFmt.StepData[i].PageBreakOnStep = "null"; - // if (mstp.AlignNullTabWSectHead != null && mstp.AlignNullTabWSectHead == sstp.AlignNullTabWSectHead) subFmt.StepData[i].AlignNullTabWSectHead = "null"; - // if (mstp.TextSubFollowsTextStyle != null && mstp.TextSubFollowsTextStyle == sstp.TextSubFollowsTextStyle) subFmt.StepData[i].TextSubFollowsTextStyle = "null"; - // if (mstp.TreatAsSequential != null && mstp.TreatAsSequential == sstp.TreatAsSequential) subFmt.StepData[i].TreatAsSequential = "null"; - // if (mstp.MatchUpRNO != null && mstp.MatchUpRNO == sstp.MatchUpRNO) subFmt.StepData[i].MatchUpRNO = "null"; - // if (mstp.InPageList != null && mstp.InPageList == sstp.InPageList) subFmt.StepData[i].InPageList = "null"; - // if (mstp.CenterOneLineOnly != null && mstp.CenterOneLineOnly == sstp.CenterOneLineOnly) subFmt.StepData[i].CenterOneLineOnly = "null"; - // if (mstp.SubTableGetsUp1Level != null && mstp.SubTableGetsUp1Level == sstp.SubTableGetsUp1Level) subFmt.StepData[i].SubTableGetsUp1Level = "null"; - // if (mstp.Remember != null && mstp.Remember == sstp.Remember) subFmt.StepData[i].Remember = "null"; - // if (mstp.CenterOneLineAdjust != null && mstp.CenterOneLineAdjust == sstp.CenterOneLineAdjust) subFmt.StepData[i].CenterOneLineAdjust = "null"; - // if (mstp.Break != null && mstp.Break == sstp.Break) subFmt.StepData[i].Break = "null"; - // if (mstp.BreakEquipmentList != null && mstp.BreakEquipmentList == sstp.BreakEquipmentList) subFmt.StepData[i].BreakEquipmentList = "null"; - // if (mstp.BreakCautionsNotesOnSubstps != null && mstp.BreakCautionsNotesOnSubstps == sstp.BreakCautionsNotesOnSubstps) subFmt.StepData[i].BreakCautionsNotesOnSubstps = "null"; - // if (mstp.CenterTextWithinWidth != null && mstp.CenterTextWithinWidth == sstp.CenterTextWithinWidth) subFmt.StepData[i].CenterTextWithinWidth = "null"; - // if (mstp.NewlineAfter != null && mstp.NewlineAfter == sstp.NewlineAfter) subFmt.StepData[i].NewlineAfter = "null"; - // if (mstp.StartLineWithDash != null && mstp.StartLineWithDash == sstp.StartLineWithDash) subFmt.StepData[i].StartLineWithDash = "null"; - // if (mstp.BlankLineBeforeSubStep != null && mstp.BlankLineBeforeSubStep == sstp.BlankLineBeforeSubStep) subFmt.StepData[i].BlankLineBeforeSubStep = "null"; - // if (mstp.AlwaysTab != null && mstp.AlwaysTab == sstp.AlwaysTab) subFmt.StepData[i].AlwaysTab = "null"; - // if (mstp.MixCautionsAndNotes != null && mstp.MixCautionsAndNotes == sstp.MixCautionsAndNotes) subFmt.StepData[i].MixCautionsAndNotes = "null"; - // if (mstp.NumberHighLevel != null && mstp.NumberHighLevel == sstp.NumberHighLevel) subFmt.StepData[i].NumberHighLevel = "null"; - // if (mstp.OffsetTab != null && mstp.OffsetTab == sstp.OffsetTab) subFmt.StepData[i].OffsetTab = "null"; - // if (mstp.LeftJustifyBorderless != null && mstp.LeftJustifyBorderless == sstp.LeftJustifyBorderless) subFmt.StepData[i].LeftJustifyBorderless = "null"; - // if (mstp.StepNumIfOnlyOne != null && mstp.StepNumIfOnlyOne == sstp.StepNumIfOnlyOne) subFmt.StepData[i].StepNumIfOnlyOne = "null"; - // if (mstp.LJTabs != null && mstp.LJTabs == sstp.LJTabs) subFmt.StepData[i].LJTabs = "null"; - // if (mstp.NumberSubs != null && mstp.NumberSubs == sstp.NumberSubs) subFmt.StepData[i].NumberSubs = "null"; - // if (mstp.Bullet != null && mstp.Bullet == sstp.Bullet) subFmt.StepData[i].Bullet = "null"; - // if (mstp.StepNumberForHighLevel != null && mstp.StepNumberForHighLevel == sstp.StepNumberForHighLevel) subFmt.StepData[i].StepNumberForHighLevel = "null"; - // if (mstp.SameRowAsParent != null && mstp.SameRowAsParent == sstp.SameRowAsParent) subFmt.StepData[i].SameRowAsParent = "null"; - // if (mstp.CheckoffSameAsParent != null && mstp.CheckoffSameAsParent == sstp.CheckoffSameAsParent) subFmt.StepData[i].CheckoffSameAsParent = "null"; - // if (mstp.AtLeastTwoDigits != null && mstp.AtLeastTwoDigits == sstp.AtLeastTwoDigits) subFmt.StepData[i].AtLeastTwoDigits = "null"; - // if (mstp.UseInAcTable != null && mstp.UseInAcTable == sstp.UseInAcTable) subFmt.StepData[i].UseInAcTable = "null"; - // if (mstp.Number != null && mstp.Number == sstp.Number) subFmt.StepData[i].Number = "null"; - // if (mstp.ThreeBlanksAbove != null && mstp.ThreeBlanksAbove == sstp.ThreeBlanksAbove) subFmt.StepData[i].ThreeBlanksAbove = "null"; - // if (mstp.CheckOffs != null && mstp.CheckOffs == sstp.CheckOffs) subFmt.StepData[i].CheckOffs = "null"; - // if (mstp.Quoted != null && mstp.Quoted == sstp.Quoted) subFmt.StepData[i].Quoted = "null"; - // if (mstp.Sep == sstp.Sep) subFmt.StepData[i].Sep = null; - // if (mstp.Prefix == sstp.Prefix) subFmt.StepData[i].Prefix = null; - // if (mstp.Suffix == sstp.Suffix) subFmt.StepData[i].Suffix = null; - // // KBR TODO if (mstp.AlternateName == sstp.AlternateName) subFmt.StepData[i].AlternateName = null; - // if (mstp.UnderlineTheseChar == sstp.UnderlineTheseChar) subFmt.StepData[i].UnderlineTheseChar = null; - // //subFmt.StepData[i].TabData.Font = FixInheritedFont(sstp.TabData.Font, mstp.TabData.Font);// Phase 2 - // // if (mstp.TabData.IdentEdit == sstp.TabData.IdentEdit) subFmt.StepData[i].TabData.IdentEdit = null; - // if (mstp.TabData.Ident == sstp.TabData.Ident) subFmt.StepData[i].TabData.Ident = null; - // if (mstp.TabData.RNOIdentEdit == sstp.TabData.RNOIdentEdit) subFmt.StepData[i].TabData.RNOIdentEdit = null; - // if (mstp.TabData.RNOIdent == sstp.TabData.RNOIdent) subFmt.StepData[i].TabData.RNOIdent = null; - // if (mstp.TabData.IdentEditWid == sstp.TabData.IdentEditWid) subFmt.StepData[i].TabData.IdentEditWid = null; - // if (mstp.TabData.IdentWid == sstp.TabData.IdentWid) subFmt.StepData[i].TabData.IdentWid = null; - // if (mstp.TabData.RNOIdentEditWid == sstp.TabData.RNOIdentEditWid) subFmt.StepData[i].TabData.RNOIdentEditWid = null; - // if (mstp.TabData.RNOIdentWid == sstp.TabData.RNOIdentWid) subFmt.StepData[i].TabData.RNOIdentWid = null; - // if (mstp.TabData.Justify == sstp.TabData.Justify) subFmt.StepData[i].TabData.Justify = null; - //} - // box data... - for (int i = 0; i < MAXBOXES + 1; i++) - { - Box mbox = mainFmt.BoxData[i]; - Box sbox = subFmt.BoxData[i]; - if (mbox.Start == sbox.Start) sbox.Start = 0; - if (mbox.End == sbox.End) sbox.End = 0; - if (mbox.TxtStart == sbox.TxtStart) sbox.TxtStart = 0; - if (mbox.TxtWidth == sbox.TxtWidth) sbox.TxtWidth = 0; - if (mbox.Height == sbox.Height) sbox.Height = 0; - if (mbox.TabPos == sbox.TabPos) sbox.TabPos = 0; - subFmt.BoxData[i].Font = FixInheritedFont(sbox.Font, mbox.Font); // Phase 3 - } - - StepSectionLayout msctlay = mainFmt.SectData.StepSectionData.StpSectLayData; - StepSectionLayout ssctlay = subFmt.SectData.StepSectionData.StpSectLayData; - if (msctlay.TableCenterPos == ssctlay.TableCenterPos) subFmt.SectData.StepSectionData.StpSectLayData.TableCenterPos = null; - subFmt.SectData.StepSectionData.StpSectLayData.TopOfPage.Font = FixInheritedFont(ssctlay.TopOfPage.Font, msctlay.TopOfPage.Font);// Phase 4 - if (msctlay.TopOfPage.Row == ssctlay.TopOfPage.Row) subFmt.SectData.StepSectionData.StpSectLayData.TopOfPage.Row = 0; - if (msctlay.TopOfPage.Col == ssctlay.TopOfPage.Col) subFmt.SectData.StepSectionData.StpSectLayData.TopOfPage.Col = 0; - - StepSectionPrint msctpr = mainFmt.SectData.StepSectionData.StpSectPrtData; - StepSectionPrint ssctpr = subFmt.SectData.StepSectionData.StpSectPrtData; - subFmt.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle = FixInheritedFont(msctpr.ModifiedTextStyle, msctpr.ModifiedTextStyle); // Phase 11 - subFmt.SectData.StepSectionData.StpSectLayData.Separator.Font = FixInheritedFont(ssctlay.Separator.Font, msctlay.Separator.Font); // Phase 5 - if (msctlay.Separator.SeparatorLocation == ssctlay.Separator.SeparatorLocation) subFmt.SectData.StepSectionData.StpSectLayData.Separator.SeparatorLocation = 0; - if (msctlay.LastLineToStartStep == ssctlay.LastLineToStartStep) subFmt.SectData.StepSectionData.StpSectLayData.LastLineToStartStep = 0; - - //for (int i=0; i<10; i++) - // if (mainFmt.SectData.StepSectionData.TextTypeValue[i] == subFmt.SectData.StepSectionData.TextTypeValue[i]) mainFmt.SectData.StepSectionData.TextTypeValue[i] = 0; - - if (msctlay.LineDrawingOption == ssctlay.LineDrawingOption) subFmt.SectData.StepSectionData.StpSectLayData.LineDrawingOption = 0; - if (msctlay.ColS == ssctlay.ColS) subFmt.SectData.StepSectionData.StpSectLayData.ColS = 0; - - StepSectionEdit mscted = mainFmt.SectData.StepSectionData.StpSectEditData; - StepSectionEdit sscted = subFmt.SectData.StepSectionData.StpSectEditData; - if (mscted.ColSScreenAdj == sscted.ColSScreenAdj) subFmt.SectData.StepSectionData.StpSectEditData.ColSScreenAdj = 0; - if (mscted.ScrnAdjRNOText == sscted.ScrnAdjRNOText) subFmt.SectData.StepSectionData.StpSectEditData.ScrnAdjRNOText = 0; - - if (msctlay.ColT == ssctlay.ColT) subFmt.SectData.StepSectionData.StpSectLayData.ColT = 0; - if (msctlay.ColAbs == ssctlay.ColAbs) subFmt.SectData.StepSectionData.StpSectLayData.ColAbs = 0; - if (msctlay.WidT == ssctlay.WidT) subFmt.SectData.StepSectionData.StpSectLayData.WidT = 0; - if (msctlay.PMode == ssctlay.PMode) subFmt.SectData.StepSectionData.StpSectLayData.PMode = 0; - if (msctlay.MaxRNO == ssctlay.MaxRNO) subFmt.SectData.StepSectionData.StpSectLayData.MaxRNO = 0; - if (msctlay.MaxRNOTable == ssctlay.MaxRNOTable) subFmt.SectData.StepSectionData.StpSectLayData.MaxRNOTable = null; - if (msctlay.ColRTable == ssctlay.ColRTable) subFmt.SectData.StepSectionData.StpSectLayData.ColRTable = null; - if (msctlay.WidSTablePrint == ssctlay.WidSTablePrint) subFmt.SectData.StepSectionData.StpSectLayData.WidSTablePrint = null; - if (mscted.ColRScreen == sscted.ColRScreen) subFmt.SectData.StepSectionData.StpSectEditData.ColRScreen = null; - if (msctlay.AdjRNOCol == ssctlay.AdjRNOCol) subFmt.SectData.StepSectionData.StpSectLayData.AdjRNOCol = 0; - - // change bar - ChangeBar mcb = mainFmt.ProcData.ChangeBarData; - ChangeBar scb = subFmt.ProcData.ChangeBarData; - if (mcb.ChangeBarMessage == scb.ChangeBarMessage) subFmt.ProcData.ChangeBarData.ChangeBarMessage = null; - if (mcb.FixedChangeColumn == scb.FixedChangeColumn) subFmt.ProcData.ChangeBarData.FixedChangeColumn = 0; - if (mcb.FixedAERChangeColumn == scb.FixedAERChangeColumn) subFmt.ProcData.ChangeBarData.FixedAERChangeColumn = 0; - if (mcb.ChangeSummaryStyle == scb.ChangeSummaryStyle) subFmt.ProcData.ChangeBarData.ChangeSummaryStyle = 0; - if (mcb.ChangeBarStyle == scb.ChangeBarStyle) subFmt.ProcData.ChangeBarData.ChangeBarStyle = 0; - if (mcb.CondensedChangeBar != null && mcb.CondensedChangeBar == scb.CondensedChangeBar) subFmt.ProcData.ChangeBarData.CondensedChangeBar = "null"; - if (mcb.AbsoluteFixedChangeColumn != null && mcb.AbsoluteFixedChangeColumn == scb.AbsoluteFixedChangeColumn) subFmt.ProcData.ChangeBarData.AbsoluteFixedChangeColumn = "null"; - if (mcb.ContinuousChangeBars != null && mcb.ContinuousChangeBars == scb.ContinuousChangeBars) subFmt.ProcData.ChangeBarData.ContinuousChangeBars = "null"; - if (mcb.ChgBarMessageFromEdit != null && mcb.ChgBarMessageFromEdit == scb.ChgBarMessageFromEdit) subFmt.ProcData.ChangeBarData.ChgBarMessageFromEdit = "null"; - if (mcb.MultipleChangeIds != null && mcb.MultipleChangeIds == scb.MultipleChangeIds) subFmt.ProcData.ChangeBarData.MultipleChangeIds = "null"; - if (mcb.ChangeBarToRNOSep != null && mcb.ChangeBarToRNOSep == scb.ChangeBarToRNOSep) subFmt.ProcData.ChangeBarData.ChangeBarToRNOSep = "null"; - if (mcb.ChangeBarsOnLinkedText != null && mcb.ChangeBarsOnLinkedText == scb.ChangeBarsOnLinkedText) subFmt.ProcData.ChangeBarData.ChangeBarsOnLinkedText = "null"; - - if (mainFmt.ProcData.TitleLength == subFmt.ProcData.TitleLength) subFmt.ProcData.TitleLength = 0; - if (mainFmt.ProcData.CoverTitleLength == subFmt.ProcData.CoverTitleLength) subFmt.ProcData.CoverTitleLength = 0; - if (mainFmt.ProcData.ProcForeColor == subFmt.ProcData.ProcForeColor) subFmt.ProcData.ProcForeColor = null; - if (mainFmt.ProcData.ProcBackColor == subFmt.ProcData.ProcBackColor) subFmt.ProcData.ProcBackColor = null; - if (mainFmt.ProcData.CapitalizeTitle != null && mainFmt.ProcData.CapitalizeTitle == subFmt.ProcData.CapitalizeTitle) subFmt.ProcData.CapitalizeTitle = "null"; - if (mainFmt.ProcData.ChangeStyleForEverySection != null && mainFmt.ProcData.ChangeStyleForEverySection == subFmt.ProcData.ChangeStyleForEverySection) subFmt.ProcData.ChangeStyleForEverySection = "null"; - if (mainFmt.ProcData.PrintNoTitle != null && mainFmt.ProcData.PrintNoTitle == subFmt.ProcData.PrintNoTitle) subFmt.ProcData.PrintNoTitle = "null"; - if (mainFmt.ProcData.CountFoldoutPages != null && mainFmt.ProcData.CountFoldoutPages == subFmt.ProcData.CountFoldoutPages) subFmt.ProcData.CountFoldoutPages = "null"; - - // checkoff - CheckOffData mco = mainFmt.ProcData.CheckOffData; - CheckOffData sco = subFmt.ProcData.CheckOffData; - for (int i = 0; i < MAXCHKHEADINGS; i++) - { - if (mco.CheckOffHeaderList[i].CheckOffHeading == sco.CheckOffHeaderList[i].CheckOffHeading) subFmt.ProcData.CheckOffData.CheckOffHeaderList[i].CheckOffHeading = null; - sco.CheckOffHeaderList[i].Font = FixInheritedFont(sco.CheckOffHeaderList[i].Font, mco.CheckOffHeaderList[i].Font); // Phase 6 - } - if (mco.Menu == sco.Menu) subFmt.ProcData.CheckOffData.Menu = "null"; - if (mco.AllowSectEdit == sco.AllowSectEdit) subFmt.ProcData.CheckOffData.AllowSectEdit = "null"; - if (mco.AllowStepEdit == sco.AllowStepEdit) subFmt.ProcData.CheckOffData.AllowStepEdit = "null"; - if (mco.UseCheckOffsIn == sco.UseCheckOffsIn) subFmt.ProcData.CheckOffData.UseCheckOffsIn = 0; - if (mco.CheckOffAdjustment == sco.CheckOffAdjustment) subFmt.ProcData.CheckOffData.CheckOffAdjustment = 0; - if (mco.DropCheckOff != null && mco.DropCheckOff == sco.DropCheckOff) subFmt.ProcData.CheckOffData.DropCheckOff = "null"; - if (mco.CheckOffOnHLSOnly != null && mco.CheckOffOnHLSOnly == sco.CheckOffOnHLSOnly) subFmt.ProcData.CheckOffData.CheckOffOnHLSOnly = "null"; - if (mco.SkipSpaces != null && mco.SkipSpaces == sco.SkipSpaces) subFmt.ProcData.CheckOffData.SkipSpaces = "null"; - - if (mco.LayoutList != null && sco.LayoutList != null) - { - int mLayoutCount = mco.LayoutList.Length; - int sLayoutCount = sco.LayoutList.Length; - if (sLayoutCount == mLayoutCount) - { - for (int i = 0; i < sLayoutCount; i++) - { - if (mco.LayoutList[i].RnoLevel == sco.LayoutList[i].RnoLevel) subFmt.ProcData.CheckOffData.LayoutList[i].RnoLevel = "null"; - if (mco.LayoutList[i].Column == sco.LayoutList[i].Column) subFmt.ProcData.CheckOffData.LayoutList[i].Column = 0; - } - } - } - - if (msctlay.EndMessagePos == ssctlay.EndMessagePos) subFmt.SectData.StepSectionData.StpSectLayData.EndMessagePos = 0; - - StepSection msctstp = mainFmt.SectData.StepSectionData; - StepSection ssctstp = subFmt.SectData.StepSectionData; - - //for (int i = 0; i < MAXSEQ; i++) - // if (msctstp.SeqStart[i] == ssctstp.SeqStart[i]) subFmt.SectData.StepSectionData.SeqStart[i] = 0; - //for (int i = 0; i < MAXSEQ; i++) - //{ - //if (msctstp.SequentialTabFormat[i].LeftJustify == ssctstp.SequentialTabFormat[i].LeftJustify) subFmt.SectData.StepSectionData.SequentialTabFormat[i].LeftJustify = 0; - //if (msctstp.SequentialTabFormat[i].TabFormat == ssctstp.SequentialTabFormat[i].TabFormat) subFmt.SectData.StepSectionData.SequentialTabFormat[i].TabFormat = null; - //} - - //if (msctstp.HighSeqStart == ssctstp.HighSeqStart) subFmt.SectData.StepSectionData.HighSeqStart = 0; - if (msctstp.IndentToken == ssctstp.IndentToken) subFmt.SectData.StepSectionData.IndentToken = 0; - - if (msctpr.ImmStepHdrCol == ssctpr.ImmStepHdrCol) subFmt.SectData.StepSectionData.StpSectPrtData.ImmStepHdrCol = 0; - subFmt.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle = FixInheritedFont(ssctpr.ImmStepHdrStyle, msctpr.ImmStepHdrStyle); - if (msctstp.WolfCreekBackgroundFormat != null && msctstp.WolfCreekBackgroundFormat == ssctstp.WolfCreekBackgroundFormat) subFmt.SectData.StepSectionData.WolfCreekBackgroundFormat = "null"; - if (msctstp.WolfcreekCKLFormat != null && msctstp.WolfcreekCKLFormat == ssctstp.WolfcreekCKLFormat) subFmt.SectData.StepSectionData.WolfcreekCKLFormat = "null"; - if (msctstp.WolfcreekCKLBackgndFormat != null && msctstp.WolfcreekCKLBackgndFormat == ssctstp.WolfcreekCKLBackgndFormat) subFmt.SectData.StepSectionData.WolfcreekCKLBackgndFormat = "null"; - if (msctstp.FortranFormatNumbers != null && msctstp.FortranFormatNumbers == ssctstp.FortranFormatNumbers) subFmt.SectData.StepSectionData.FortranFormatNumbers = "null"; - if (msctstp.UseTopContinueMessageAtEnd != null && msctstp.UseTopContinueMessageAtEnd == ssctstp.UseTopContinueMessageAtEnd) subFmt.SectData.StepSectionData.UseTopContinueMessageAtEnd = "null"; - if (msctstp.FloatingContinueMessage != null && msctstp.FloatingContinueMessage == ssctstp.FloatingContinueMessage) subFmt.SectData.StepSectionData.FloatingContinueMessage = "null"; - if (msctstp.WrapSameAsEdit != null && msctstp.WrapSameAsEdit == ssctstp.WrapSameAsEdit) subFmt.SectData.StepSectionData.WrapSameAsEdit = "null"; - if (msctstp.ContinueSectionHeader != null && msctstp.ContinueSectionHeader == ssctstp.ContinueSectionHeader) subFmt.SectData.StepSectionData.ContinueSectionHeader = "null"; - if (msctstp.CompressHPSub != null && msctstp.CompressHPSub == ssctstp.CompressHPSub) subFmt.SectData.StepSectionData.CompressHPSub = "null"; - if (msctstp.CompressHPSuper != null && msctstp.CompressHPSuper == ssctstp.CompressHPSuper) subFmt.SectData.StepSectionData.CompressHPSuper = "null"; - if (msctstp.UndSpecialStepsFoldout != null && msctstp.UndSpecialStepsFoldout == ssctstp.UndSpecialStepsFoldout) subFmt.SectData.StepSectionData.UndSpecialStepsFoldout = "null"; - if (msctstp.UnderlineAllMetaTitles != null && msctstp.UnderlineAllMetaTitles == ssctstp.UnderlineAllMetaTitles) subFmt.SectData.StepSectionData.UnderlineAllMetaTitles = "null"; - if (msctstp.BoldOnlySectionZero != null && msctstp.BoldOnlySectionZero == ssctstp.BoldOnlySectionZero) subFmt.SectData.StepSectionData.BoldOnlySectionZero = "null"; - if (msctstp.ImperfectStructure != null && msctstp.ImperfectStructure == ssctstp.ImperfectStructure) subFmt.SectData.StepSectionData.ImperfectStructure = "null"; - if (msctstp.ImperfectSubstep != null && msctstp.ImperfectSubstep == ssctstp.ImperfectSubstep) subFmt.SectData.StepSectionData.ImperfectSubstep = "null"; - if (msctstp.ImperfectStructurePlus4 != null && msctstp.ImperfectStructurePlus4 == ssctstp.ImperfectStructurePlus4) subFmt.SectData.StepSectionData.ImperfectStructurePlus4 = "null"; - if (msctstp.CountAllSubLevels != null && msctstp.CountAllSubLevels == ssctstp.CountAllSubLevels) subFmt.SectData.StepSectionData.CountAllSubLevels = "null"; - if (msctstp.UseMultiLineSectionTitle != null && msctstp.UseMultiLineSectionTitle == ssctstp.UseMultiLineSectionTitle) subFmt.SectData.StepSectionData.UseMultiLineSectionTitle = "null"; - - if (msctlay.RNOWidthAlt == ssctlay.RNOWidthAlt) subFmt.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = null; - if (msctlay.HLSWidthOVRD == ssctlay.HLSWidthOVRD) subFmt.SectData.StepSectionData.StpSectLayData.HLSWidthOVRD = 0; - if (msctpr.SecColHdrforActPMode == ssctpr.SecColHdrforActPMode) subFmt.SectData.StepSectionData.StpSectPrtData.SecColHdrforActPMode = 0; - - SectionNum msctn = mainFmt.SectData.SectionNumber; - SectionNum ssctn = subFmt.SectData.SectionNumber; - SectionHead mscth = mainFmt.SectData.SectionHeader; - SectionHead sscth = subFmt.SectData.SectionHeader; - subFmt.SectData.SectionNumber.Font = FixInheritedFont(ssctn.Font, msctn.Font); // Phase 7 - if (msctn.Pos == ssctn.Pos) subFmt.SectData.SectionNumber.Pos = 0; - if (msctn.Just == ssctn.Just) subFmt.SectData.SectionNumber.Just = null; - subFmt.SectData.SectionHeader.Font = FixInheritedFont(sscth.Font, mscth.Font); // Phase 8 - if (mscth.Pos == sscth.Pos) subFmt.SectData.SectionHeader.Pos = 0; - if (mscth.Just == sscth.Just) subFmt.SectData.SectionHeader.Just = null; - - if (mainFmt.SectData.SectionTitleLength == subFmt.SectData.SectionTitleLength) subFmt.SectData.SectionTitleLength = 0; - if (mainFmt.SectData.SectForeColor == subFmt.SectData.SectForeColor) subFmt.SectData.SectForeColor = null; - if (mainFmt.SectData.SectBackColor == subFmt.SectData.SectBackColor) subFmt.SectData.SectBackColor = null; - if (mainFmt.SectData.CancelSecTitlesOnS1 != null && mainFmt.SectData.CancelSecTitlesOnS1 == subFmt.SectData.CancelSecTitlesOnS1) subFmt.SectData.CancelSecTitlesOnS1 = "null"; - if (mainFmt.SectData.CancelSecTitlesOnS2 != null && mainFmt.SectData.CancelSecTitlesOnS2 == subFmt.SectData.CancelSecTitlesOnS2) subFmt.SectData.CancelSecTitlesOnS2 = "null"; - if (mainFmt.SectData.CancelSecTitlesOnE0 != null && mainFmt.SectData.CancelSecTitlesOnE0 == subFmt.SectData.CancelSecTitlesOnE0) subFmt.SectData.CancelSecTitlesOnE0 = "null"; - if (mainFmt.SectData.CancelSecTitlesOnE2 != null && mainFmt.SectData.CancelSecTitlesOnE2 == subFmt.SectData.CancelSecTitlesOnE2) subFmt.SectData.CancelSecTitlesOnE2 = "null"; - if (mainFmt.SectData.MetaSectEndMessage != null && mainFmt.SectData.MetaSectEndMessage == subFmt.SectData.MetaSectEndMessage) subFmt.SectData.MetaSectEndMessage = "null"; - if (mainFmt.SectData.ReadOnlyTypeInContMsg != null && mainFmt.SectData.ReadOnlyTypeInContMsg == subFmt.SectData.ReadOnlyTypeInContMsg) subFmt.SectData.ReadOnlyTypeInContMsg = "null"; - if (mainFmt.SectData.ReplaceWordsInROs != null && mainFmt.SectData.ReplaceWordsInROs == subFmt.SectData.ReplaceWordsInROs) subFmt.SectData.ReplaceWordsInROs = "null"; - if (mainFmt.SectData.UseMetaSections != null && mainFmt.SectData.UseMetaSections == subFmt.SectData.UseMetaSections) subFmt.SectData.UseMetaSections = "null"; - if (mainFmt.SectData.NonEditableSteps != null && mainFmt.SectData.NonEditableSteps == subFmt.SectData.NonEditableSteps) subFmt.SectData.NonEditableSteps = "null"; - if (mainFmt.SectData.SearchAllReplaceWords != null && mainFmt.SectData.SearchAllReplaceWords == subFmt.SectData.SearchAllReplaceWords) subFmt.SectData.SearchAllReplaceWords = "null"; - if (mainFmt.SectData.SecTitleContinue != null && mainFmt.SectData.SecTitleContinue == subFmt.SectData.SecTitleContinue) subFmt.SectData.SecTitleContinue = "null"; - if (mainFmt.SectData.ConvertCaretToDelta != null && mainFmt.SectData.ConvertCaretToDelta == subFmt.SectData.ConvertCaretToDelta) subFmt.SectData.ConvertCaretToDelta = "null"; - - if (msctlay.SubPaginationWght == ssctlay.SubPaginationWght) subFmt.SectData.StepSectionData.StpSectLayData.SubPaginationWght = 0; - if (msctlay.TextTitleAdjustment == ssctlay.TextTitleAdjustment) subFmt.SectData.StepSectionData.StpSectLayData.TextTitleAdjustment = 0; - - AccSection maccsec = mainFmt.SectData.AccSectionData; - AccSection saccsec = subFmt.SectData.AccSectionData; - - if (maccsec.TableOfContentsData.TofCSecNumPos == saccsec.TableOfContentsData.TofCSecNumPos) subFmt.SectData.AccSectionData.TableOfContentsData.TofCSecNumPos = 0; - if (maccsec.TableOfContentsData.TofCSecTitlePos == saccsec.TableOfContentsData.TofCSecTitlePos) subFmt.SectData.AccSectionData.TableOfContentsData.TofCSecTitlePos = 0; - if (maccsec.TableOfContentsData.TofCSecTitleLen == saccsec.TableOfContentsData.TofCSecTitleLen) subFmt.SectData.AccSectionData.TableOfContentsData.TofCSecTitleLen = 0; - if (maccsec.TableOfContentsData.TofCPageNumPos == saccsec.TableOfContentsData.TofCPageNumPos) subFmt.SectData.AccSectionData.TableOfContentsData.TofCPageNumPos = 0; - if (maccsec.TableOfContentsData.TofCSpaceChar == saccsec.TableOfContentsData.TofCSpaceChar) subFmt.SectData.AccSectionData.TableOfContentsData.TofCSpaceChar = 0; - if (maccsec.TableOfContentsData.TofCLineSpacing == saccsec.TableOfContentsData.TofCLineSpacing) subFmt.SectData.AccSectionData.TableOfContentsData.TofCLineSpacing = 0; - subFmt.SectData.AccSectionData.TableOfContentsData.Font = FixInheritedFont(saccsec.TableOfContentsData.Font, maccsec.TableOfContentsData.Font); // Phase 9 - subFmt.SectData.StepSectionData.StpSectLayData.VertStyle = FixInheritedFont(ssctlay.VertStyle, msctlay.VertStyle);// Phase 13 - //if (msctstp.LeftJustSeqTab == ssctstp.LeftJustSeqTab) subFmt.SectData.StepSectionData.LeftJustSeqTab = null; - - for (int i = 0; i < 10; i++) - { - if (mainFmt.SectData.MetaSectionData[i].SecNumPositionAdj == subFmt.SectData.MetaSectionData[i].SecNumPositionAdj) subFmt.SectData.MetaSectionData[i].SecNumPositionAdj = 0; - if (mainFmt.SectData.MetaSectionData[i].SecTitlePositionAdj == subFmt.SectData.MetaSectionData[i].SecTitlePositionAdj) subFmt.SectData.MetaSectionData[i].SecTitlePositionAdj = 0; - if (mainFmt.SectData.MetaSectionData[i].ColSByLevel == subFmt.SectData.MetaSectionData[i].ColSByLevel) subFmt.SectData.MetaSectionData[i].ColSByLevel = 0; - if (mainFmt.SectData.MetaSectionData[i].TofCPositionAdj == subFmt.SectData.MetaSectionData[i].TofCPositionAdj) subFmt.SectData.MetaSectionData[i].TofCPositionAdj = 0; - if (mainFmt.SectData.MetaSectionData[i].WidSAdjByLevel == subFmt.SectData.MetaSectionData[i].WidSAdjByLevel) subFmt.SectData.MetaSectionData[i].WidSAdjByLevel = 0; - } - - if (msctstp.NumberOfHighLevelSteps == ssctstp.NumberOfHighLevelSteps) subFmt.SectData.StepSectionData.NumberOfHighLevelSteps = 0; - - for (int i = 0; i < MAXBOXES + 1; i++) - { - if (mainFmt.BoxData[i].TxtRowAdj == subFmt.BoxData[i].TxtRowAdj) subFmt.BoxData[i].TxtRowAdj = 0; - if (mainFmt.BoxData[i].BXURC == subFmt.BoxData[i].BXURC) subFmt.BoxData[i].BXURC = null; - if (mainFmt.BoxData[i].BXHorz == subFmt.BoxData[i].BXHorz) subFmt.BoxData[i].BXHorz = null; - if (mainFmt.BoxData[i].BXULC == subFmt.BoxData[i].BXULC) subFmt.BoxData[i].BXULC = null; - if (mainFmt.BoxData[i].BXVert == subFmt.BoxData[i].BXVert) subFmt.BoxData[i].BXVert = null; - if (mainFmt.BoxData[i].BXMLS == subFmt.BoxData[i].BXMLS) subFmt.BoxData[i].BXMLS = null; - if (mainFmt.BoxData[i].BXMRS == subFmt.BoxData[i].BXMRS) subFmt.BoxData[i].BXMRS = null; - if (mainFmt.BoxData[i].BXLRC == subFmt.BoxData[i].BXLRC) subFmt.BoxData[i].BXLRC = null; - if (mainFmt.BoxData[i].BXLLC == subFmt.BoxData[i].BXLLC) subFmt.BoxData[i].BXLLC = null; - if (mainFmt.BoxData[i].BXMID == subFmt.BoxData[i].BXMID) subFmt.BoxData[i].BXMID = null; - if (mainFmt.BoxData[i].BXLHorz == subFmt.BoxData[i].BXLHorz) subFmt.BoxData[i].BXLHorz = null; - if (mainFmt.BoxData[i].BXUMID == subFmt.BoxData[i].BXUMID) subFmt.BoxData[i].BXUMID = null; - if (mainFmt.BoxData[i].BXLMID == subFmt.BoxData[i].BXLMID) subFmt.BoxData[i].BXLMID = null; - - } - - if (msctstp.NumberOfSubStepTypes == ssctstp.NumberOfSubStepTypes) subFmt.SectData.StepSectionData.NumberOfSubStepTypes = 0; - - if (mainFmt.SectData.AccSectionData.AutoContActSumSection == subFmt.SectData.AccSectionData.AutoContActSumSection) subFmt.SectData.AccSectionData.AutoContActSumSection = 0; - - if (msctstp.IdentB == ssctstp.IdentB) subFmt.SectData.StepSectionData.IdentB = null; - - //for (int i = 0; i < MAXSEQ; i++) - // if (msctstp.SeqTab[i] == ssctstp.SeqTab[i]) subFmt.SectData.StepSectionData.SeqTab[i]=null; - - // don't clear replace words. these would have to match exactly, because order matters when processing replace words & integrating the two lists when they are to be - // used is too complicated. - //for (int i = 0; i < MAXREPLACE; i++) - //{ - // if (mainFmt.SectData.ReplaceStrData[i].ReplaceWord == subFmt.SectData.ReplaceStrData[i].ReplaceWord) subFmt.SectData.ReplaceStrData[i].ReplaceWord = null; - // if (mainFmt.SectData.ReplaceStrData[i].ReplaceWith == subFmt.SectData.ReplaceStrData[i].ReplaceWith) subFmt.SectData.ReplaceStrData[i].ReplaceWith = null; - // // clear flags only if both replaceword & replacewith ended up getting cleared. - // if ((subFmt.SectData.ReplaceStrData[i].ReplaceWord == null) && (subFmt.SectData.ReplaceStrData[i].ReplaceWith == null)) subFmt.SectData.ReplaceStrData[i].Flag = null; - //} - - for (int i = 0; i < 10; i++) - { - if (mainFmt.PrintData.ProcDescrList[i].MatchProcNumber == subFmt.PrintData.ProcDescrList[i].MatchProcNumber) subFmt.PrintData.ProcDescrList[i].MatchProcNumber = null; - if (mainFmt.PrintData.ProcDescrList[i].ProcDescr1 == subFmt.PrintData.ProcDescrList[i].ProcDescr1) subFmt.PrintData.ProcDescrList[i].ProcDescr1 = null; - if (mainFmt.PrintData.ProcDescrList[i].ProcDescr2 == subFmt.PrintData.ProcDescrList[i].ProcDescr2) subFmt.PrintData.ProcDescrList[i].ProcDescr2 = null; - } - for (int i = 0; i < 5; i++) - if (mainFmt.PrintData.VersionIdText[i] == subFmt.PrintData.VersionIdText[i]) subFmt.PrintData.VersionIdText[i] = null; - - if (mainFmt.TransData.DelimiterForTransitionTitle == subFmt.TransData.DelimiterForTransitionTitle) subFmt.TransData.DelimiterForTransitionTitle = null; - if (mainFmt.TransData.StepSubstepDelimeter == subFmt.TransData.StepSubstepDelimeter) subFmt.TransData.StepSubstepDelimeter = null; - if (mainFmt.TransData.ThroughString == subFmt.TransData.ThroughString) subFmt.TransData.ThroughString = null; - if (mainFmt.TransData.SpecifiedSubstepsOnly != null && mainFmt.TransData.SpecifiedSubstepsOnly == subFmt.TransData.SpecifiedSubstepsOnly) subFmt.TransData.SpecifiedSubstepsOnly = "null"; - if (mainFmt.TransData.CapsTransitions != null && mainFmt.TransData.CapsTransitions == subFmt.TransData.CapsTransitions) subFmt.TransData.CapsTransitions = "null"; - if (mainFmt.TransData.CapTranStep != null && mainFmt.TransData.CapTranStep == subFmt.TransData.CapTranStep) subFmt.TransData.CapTranStep = "null"; - if (mainFmt.TransData.TStepNoFlag != null && mainFmt.TransData.TStepNoFlag == subFmt.TransData.TStepNoFlag) subFmt.TransData.TStepNoFlag = "null"; - if (mainFmt.TransData.LowerCaseTranNumber != null && mainFmt.TransData.LowerCaseTranNumber == subFmt.TransData.LowerCaseTranNumber) subFmt.TransData.LowerCaseTranNumber = "null"; - if (mainFmt.TransData.UpcaseTranAnd != null && mainFmt.TransData.UpcaseTranAnd == subFmt.TransData.UpcaseTranAnd) subFmt.TransData.UpcaseTranAnd = "null"; - if (mainFmt.TransData.SuppressAndInTran != null && mainFmt.TransData.SuppressAndInTran == subFmt.TransData.SuppressAndInTran) subFmt.TransData.SuppressAndInTran = "null"; - if (mainFmt.TransData.Cap1stCharTrans != null && mainFmt.TransData.Cap1stCharTrans == subFmt.TransData.Cap1stCharTrans) subFmt.TransData.Cap1stCharTrans = "null"; - if (mainFmt.TransData.UseTransitionModifier != null && mainFmt.TransData.UseTransitionModifier == subFmt.TransData.UseTransitionModifier) subFmt.TransData.UseTransitionModifier = "null"; - if (mainFmt.TransData.UseSecTitles != null && mainFmt.TransData.UseSecTitles == subFmt.TransData.UseSecTitles) subFmt.TransData.UseSecTitles = "null"; - if (mainFmt.TransData.HardSpTranProcNumb != null && mainFmt.TransData.HardSpTranProcNumb == subFmt.TransData.HardSpTranProcNumb) subFmt.TransData.HardSpTranProcNumb = "null"; - if (mainFmt.TransData.XchngTranSpForHard != null && mainFmt.TransData.XchngTranSpForHard == subFmt.TransData.XchngTranSpForHard) subFmt.TransData.XchngTranSpForHard = "null"; - if (mainFmt.TransData.AbsoluteTransitionUpdate != null && mainFmt.TransData.AbsoluteTransitionUpdate == subFmt.TransData.AbsoluteTransitionUpdate) subFmt.TransData.AbsoluteTransitionUpdate = "null"; - if (mainFmt.TransData.LowerCaseStepInTran != null && mainFmt.TransData.LowerCaseStepInTran == subFmt.TransData.LowerCaseStepInTran) subFmt.TransData.LowerCaseStepInTran = "null"; - if (mainFmt.TransData.DoSectionTransitions != null && mainFmt.TransData.DoSectionTransitions == subFmt.TransData.DoSectionTransitions) subFmt.TransData.DoSectionTransitions = "null"; - - if (mainFmt.ROData.AllUnits != null && mainFmt.ROData.AllUnits == subFmt.ROData.AllUnits) subFmt.ROData.AllUnits = "null"; - if (mainFmt.ROData.UpRoAftrDash != null && mainFmt.ROData.UpRoAftrDash == subFmt.ROData.UpRoAftrDash) subFmt.ROData.UpRoAftrDash = "null"; - if (mainFmt.ROData.UpcaseAllRoUnits != null && mainFmt.ROData.UpcaseAllRoUnits == subFmt.ROData.UpcaseAllRoUnits) subFmt.ROData.UpcaseAllRoUnits = "null"; - if (mainFmt.ROData.CapHighRo != null && mainFmt.ROData.CapHighRo == subFmt.ROData.CapHighRo) subFmt.ROData.CapHighRo = "null"; - if (mainFmt.ROData.CapRoIfLastLower != null && mainFmt.ROData.CapRoIfLastLower == subFmt.ROData.CapRoIfLastLower) subFmt.ROData.CapRoIfLastLower = "null"; - if (mainFmt.ROData.UpRoIfPrevUpper != null && mainFmt.ROData.UpRoIfPrevUpper == subFmt.ROData.UpRoIfPrevUpper) subFmt.ROData.UpRoIfPrevUpper = "null"; - if (mainFmt.ROData.UnderlineRo != null && mainFmt.ROData.UnderlineRo == subFmt.ROData.UnderlineRo) subFmt.ROData.UnderlineRo = "null"; - if (mainFmt.ROData.CapFirstLetterInHighRO != null && mainFmt.ROData.CapFirstLetterInHighRO == subFmt.ROData.CapFirstLetterInHighRO) subFmt.ROData.CapFirstLetterInHighRO = "null"; - - if (mainFmt.ProcData.ProcedureSuffixFlags == subFmt.ProcData.ProcedureSuffixFlags) subFmt.ProcData.ProcedureSuffixFlags = null; - for (int i = 0; i < 10; i++) - if (mainFmt.ProcData.ProcedureSuffix[i] == subFmt.ProcData.ProcedureSuffix[i]) subFmt.ProcData.ProcedureSuffix[i] = null; - - if (mainFmt.PrintData.TopOfPageThing == subFmt.PrintData.TopOfPageThing) subFmt.PrintData.TopOfPageThing = null; - - //for (int i=0; i<10; i++) - // if (msctstp.TextType[i] == ssctstp.TextType[i]) subFmt.SectData.StepSectionData.TextType[i]=null; - - //for (int i=0; i dicSteps = BuildStepDic(stpdata); - Dictionary dicParents = BuildParentDic(stpdata, dicSteps); - for (int i = 1; i < MAXSTEPS; i++) - { - if (i == 40) Console.WriteLine("here"); - FixInheritance(ref stpdata[i], dicParents); - } - } - private void FixInheritance(ref Step step, Dictionary dicParents) - { - if (CheckInheritedStr(new StepPartStr(StepPartInactive), step, dicParents)) step.Inactive = null; - if (CheckInheritedStr(new StepPartStr(StepPartColOverride), step, dicParents)) step.StepTypeColOverride = null; - if (CheckInheritedStr(new StepPartStr(StepPartSep), step, dicParents)) step.Sep = null; - if (CheckInheritedStr(new StepPartStr(StepPartPrefix), step, dicParents)) step.Prefix = null; - if (CheckInheritedStr(new StepPartStr(StepPartSuffix), step, dicParents)) step.Suffix = null; - if (CheckInheritedStr(new StepPartStr(StepPartUnderlineTheseChar), step, dicParents)) step.UnderlineTheseChar = null; - if (CheckInheritedStr(new StepPartStr(StepPartVertPos), step, dicParents)) step.VertPos = null; - // substructures - Font - if (step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontFamily), step, dicParents)) - step.Font.FontFamily = null; - if (step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontStyle), step, dicParents)) - step.Font.FontStyle = null; - if (step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontSize), step, dicParents)) - step.Font.FontSize = null; - if (step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontCPI), step, dicParents)) - step.Font.CPI = null; - if (step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontJustify), step, dicParents)) - step.Font.FontJustify = null; - if (step.Font != null && CheckInheritedStr(new StepPartStr(StepPartFontCheckOff), step, dicParents)) - step.Font.FontCheckOff = null; - if ((step.Font != null) && (step.Font.FontFamily == null) && (step.Font.FontStyle == null) && (step.Font.FontSize == null) && (step.Font.FontJustify == null) && (step.Font.FontCheckOff == null) && (step.Font.CPI == null)) - step.Font = null; - // substructure - StepLayoutData - if (CheckInheritedStr(new StepPartStr(StepPartLayoutForeColor), step, dicParents)) step.StepLayoutData.ForeColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutBackColor), step, dicParents)) step.StepLayoutData.BackColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutSTExtraSpace), step, dicParents)) step.StepLayoutData.STExtraSpace = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutSTBoxindex), step, dicParents)) step.StepLayoutData.STBoxindex = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutEveryNLines), step, dicParents)) step.StepLayoutData.EveryNLines = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutSpaceBefore), step, dicParents)) step.StepLayoutData.SpaceBefore = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutSpaceAfter), step, dicParents)) step.StepLayoutData.SpaceAfter = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutAlwaysUpperCase), step, dicParents)) step.StepLayoutData.AlwaysUpperCase = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutPageBreakAtTypeChange), step, dicParents)) step.StepLayoutData.PageBreakAtTypeChange = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutAlignWithParentTab), step, dicParents)) step.StepLayoutData.AlignWithParentTab = null; - //if (CheckInheritedStr(new StepPartStr(StepPartLayoutRtCheckOffGroups), step, dicParents)) step.StepLayoutData.RtCheckOffGroups = null; - if (CheckInheritedStr(new StepPartStr(StepPartLayoutStepTypeWidthOverride), step, dicParents)) step.StepLayoutData.StepTypeWidthOverride = null; - // substructure - StepEditData - if (CheckInheritedStr(new StepPartStr(StepPartEditForeColor), step, dicParents)) step.StepEditData.ForeColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditBackColor), step, dicParents)) step.StepEditData.BackColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditAcTable), step, dicParents)) step.StepEditData.AcTable = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditSearchable), step, dicParents)) step.StepEditData.Searchable = null; - // substructure - TypeMenu - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeInMenu), step, dicParents)) step.StepEditData.TypeMenu.InMenu = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeRnoInMenu), step, dicParents)) step.StepEditData.TypeMenu.RnoInMenu = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeMenuItem), step, dicParents)) step.StepEditData.TypeMenu.MenuItem = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeRnoMenuItem), step, dicParents)) step.StepEditData.TypeMenu.RnoMenuItem = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeNoChg_Reason), step, dicParents)) step.StepEditData.TypeMenu.NoChgReason = null; - if (CheckInheritedStr(new StepPartStr(StepPartEditTypeAlternateNameList), step, dicParents)) step.StepEditData.TypeMenu.AlternateNameList = null; - // substructure - StepPrintData - if (CheckInheritedStr(new StepPartStr(StepPartPrintForeColor), step, dicParents)) step.StepPrintData.ForeColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartPrintBackColor), step, dicParents)) step.StepPrintData.BackColor = null; - if (CheckInheritedStr(new StepPartStr(StepPartPrintPosAdjust), step, dicParents)) step.StepPrintData.PosAdjust = null; - // substructure - TabData - - //RHM/KBR added this - not sure: if (mstp.TabData.IdentEdit == sstp.TabData.IdentEdit) subFmt.StepData[i].TabData.IdentEdit = null; - - if (CheckInheritedStr(new StepPartStr(StepPartTabIdentEdit), step, dicParents)) step.TabData.IdentEdit = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabIdent), step, dicParents)) step.TabData.Ident = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabRNOIdentEdit), step, dicParents)) step.TabData.RNOIdentEdit = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabRNOIdent), step, dicParents)) step.TabData.RNOIdent = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabIdentEditWid), step, dicParents)) step.TabData.IdentEditWid = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabIdentWid), step, dicParents)) step.TabData.IdentWid = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabRNOIdentEditWid), step, dicParents)) step.TabData.RNOIdentEditWid = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabRNOIdentWid), step, dicParents)) step.TabData.RNOIdentWid = null; - if (CheckInheritedStr(new StepPartStr(StepPartTabJustify), step, dicParents)) step.TabData.Justify = null; - //if (CheckInheritedStr(new StepPartStr(StepPartTabCheckOff), step, dicParents)) step.TabData.CheckOff = null; - - // substructures - Tab - Font - if (step.TabData.Font != null && CheckInheritedStr(new StepPartStr(StepPartTabFontFamily), step, dicParents)) - step.TabData.Font.FontFamily = null; - if (step.TabData.Font != null && CheckInheritedStr(new StepPartStr(StepPartTabFontStyle), step, dicParents)) - step.TabData.Font.FontStyle = null; - if (step.TabData.Font != null && CheckInheritedStr(new StepPartStr(StepPartTabFontSize), step, dicParents)) - step.TabData.Font.FontSize = null; - if (step.TabData.Font != null && CheckInheritedStr(new StepPartStr(StepPartTabFontCPI), step, dicParents)) - step.TabData.Font.CPI = null; - if (step.TabData.Font != null && CheckInheritedStr(new StepPartStr(StepPartTabJustify), step, dicParents)) - step.TabData.Font.FontJustify = null; - if (step.TabData.Font != null) // && CheckInheritedStr(new StepPartStr(StepPartTabCheckOff), step, dicParents)) - step.TabData.Font.FontCheckOff = null; - if ((step.TabData.Font != null) && (step.TabData.Font.FontFamily == null) && (step.TabData.Font.FontStyle == null) && (step.TabData.Font.FontSize == null) && (step.TabData.Font.FontJustify == null) && (step.TabData.Font.CPI == null)) - step.TabData.Font = null; - - // All macro list items must be identical from step to inherited parent in order to removeit. - if (step.TabData.MacroList != null) - { - if (CheckInheritedStr(new StepPartStr(StepPartTabMacroListName), step, dicParents) && - CheckInheritedStr(new StepPartStr(StepPartTabMacroListMacro), step, dicParents) && - CheckInheritedStr(new StepPartStr(StepPartTabMacroListGrouping), step, dicParents) && - CheckInheritedStr(new StepPartStr(StepPartTabMacroListNotInRNO), step, dicParents)) - { - step.TabData.MacroList[0].Macro = null; - step.TabData.MacroList[0].Grouping = null; - step.TabData.MacroList[0].NotInRNO = null; - } - } - - // flags: - if (CheckInheritedStr(new StepPartStr(StepPartDoubleSpace), step, dicParents)) step.DoubleSpace = null; - if (CheckInheritedStr(new StepPartStr(StepPartEnhancedStepNumFromPrev), step, dicParents)) step.EnhancedStepNumFromPrev = null; - - - } - - private bool CheckInheritedStr(StepPartStr stepPartStr, Step step, Dictionary dicParents) - { - - string inheritedValue = GetStepInherited(stepPartStr, step.Type, 0); - string stepValue = stepPartStr(step); - return inheritedValue == stepValue; - //Step parent = step; - //while ((stepPartStr(parent) == null) || (step.Type == parent.Type)) - //{ - // if (!dicParents.ContainsKey(parent.Type)) - // { - // if (BaseFormat.StepData != null) - // { - // Step mstp = BaseFormat.StepData[step.Index]; - // if (stepPartStr(mstp) == stepPartStr(step)) return true; - // } - // return false;// No non-null parent value found - // } - // parent = dicParents[parent.Type]; - // if (stepPartStr(step) == stepPartStr(parent)) - // return true; // step value same as parent. - //} - //return false; // parent value different from step value - } - - private string GetStepInherited(StepPartStr stepPartStr, string stepType, int level) - { - string typ = stepType; - // spin through the step inheritance looking for a value - while (StepParentList[level].ContainsKey(typ)) - { - Step parent = StepParentList[level][typ]; - string parentVal = stepPartStr(parent); - if (parentVal != null) return parentVal; - typ = parent.Type; - } - // no more parent formats to look at: - if (level >= (StepParentList.Count - 1)) return null; - Step stp = StepList[level + 1][stepType]; - string stpVal = stepPartStr(stp); - if (stpVal != null) return stpVal; - return GetStepInherited(stepPartStr, stepType, level + 1); - } - private Dictionary BuildStepDic(Step[] stpdata) - { - Dictionary dicSteps = new Dictionary(); - foreach (Step stp in stpdata) dicSteps[stp.Type] = stp; - return dicSteps; - } - private Dictionary BuildParentDic(Step[] stpdata, Dictionary dicSteps) - { - Dictionary dicParent = new Dictionary(); - foreach (Step stp in stpdata) - if (stp.ParentType != "") dicParent[stp.Type] = dicSteps[stp.ParentType]; - return dicParent; - } - #endregion - private void FixInactiveForHigh(ref FormatData fmtdata) // set all the HighLevelSteps beyond - { - Step[] stpdata = fmtdata.StepData; - int numHigh = fmtdata.SectData.StepSectionData.NumberOfHighLevelSteps; - if (numHigh == 0) return; - if (numHigh < HighTypeValue.Length) // need to set steps to inactive beyond numHigh - { - for (int i = numHigh; i < HighTypeValue.Length; i++) - { - string inactiveType = HighTypeValue[i]; - for (int j = 0; j < stpdata.Length; j++) - { - if (stpdata[j].Type == inactiveType) - stpdata[j].Inactive = "True"; - } - } - } - } - private void FixInactiveForSubStep(ref FormatData fmtdata) - { - Step[] stpdata = fmtdata.StepData; - int numSub = fmtdata.SectData.StepSectionData.NumberOfSubStepTypes; - if (numSub == 0) return; - if (numSub < SubStepValue.Length) // need to set steps to inactive beyond numHigh - { - for (int i = numSub; i < SubStepValue.Length; i++) - { - string inactiveType = SubStepValue[i]; - for (int j = 0; j < stpdata.Length; j++) - { - if (stpdata[j].Type == inactiveType) - stpdata[j].Inactive = "True"; - } - } - } - } - private void FixInactiveForText(ref FormatData fmtdata) - { - Step[] stpdata = fmtdata.StepData; - if ((_AlternateIndex ?? "") == "") return; - string mask = "," + _AlternateIndex + ","; - foreach (string textType in TextTypes) - { - if (!mask.Contains("," + textType + ",")) - { - for (int j = 0; j < stpdata.Length; j++) - { - if (stpdata[j].Type == textType) - stpdata[j].Inactive = "True"; - } - } - } - } - private string[] HighTypeValue ={ "High", "Continuous", "Immediate", "LossOfAC", "High5" }; - private string[] SubStepValue = {"Substep","And","Or","EquipmentList","EquipmentWBlank", - "ExplicitAnd","ImplicitOr","Paragraph","EquipmentOpt","EquipmentOptWBlank","ContAcSequential", - "ContAcAnd","ContAcOr","ContAcParagraph","TitleWithTextRight","TitleWithTextBelow"}; - private string[] TextTypes = {"Caution","Caution1","Caution2","Caution3","Caution4", - "Note","Note1","Note2","Note3","Note4","Note5"}; - - private bool RHMDebugPause(string fname, string lookfor) - { - return lookfor.Contains("." + fname.Substring(0, fname.LastIndexOf(".")).ToLower() + "."); - } - } - -} diff --git a/PROMS/fmtxml/FmtToXml.cs b/PROMS/fmtxml/FmtToXml.cs deleted file mode 100644 index 747edb34..00000000 --- a/PROMS/fmtxml/FmtToXml.cs +++ /dev/null @@ -1,1487 +0,0 @@ -using System; -using System.Windows.Forms; -using System.IO; -using System.Text; -using System.Text.RegularExpressions; -using System.Collections; -using System.Runtime.Serialization.Formatters.Binary; // read in struct -using System.Xml.Xsl; -using System.Xml; -using System.Xml.Serialization; -using System.ComponentModel; - -#region Structs -// top of the page style list. -[Serializable] -public struct PageStyles -{ - public string Name; - public PageStyle [] PgStyles; -} -[Serializable] -public struct PageStyle -{ - public string Name; - public short Index; - public PSItem [] Items; -} -[Serializable] -public struct PSItem -{ - public float Row; - public float Col; - //public E_PageStructMod Justify; - public string Justify; - public VE_Font Style; - public string Token; -} -//// top of the doc style list. -[Serializable] -public struct DocStyles -{ - public string Name; - public DocStyle [] DcStyles; -} -[Serializable] -public struct DocStyle -{ - //for VCSummer by jcb - public float CenterLineX; - public float CenterLineYTop; - public float CenterLineYBottom; - public bool LandscapePageList; - public bool ShowSectionTitles; - //end for VCSummer by jcb - public string Name; - public short Index; - public short pagestyle; // Index into page style array - public VE_Font dstyle; // 'Printer driver styles' for the entire document - public float TopMargin; // First 'document text' row on printed page/ renamed to TopMargin - public float FooterLen; // Number of lines required for footer - public float LeftMargin; // Size of left margin - public float PageLength; - public float PageWidth; - public short numberingsequence; // 0 - no page number - // 1 - included with steps - // 2 - within sections ie. document styles - // 3 - within each accessory document - public short IndexOtherThanFirstPage; // reference document style for remaining pages (not first), if - // one exists. - public bool IsStepSection; // using oldtonew, determine whether is step - // section or word doc section (new to 32-bit) - public bool UseCheckOffs; // This was originally in fmt. Load fmt to get - public bool UseColSByLevel; // Didn't want a OldToNew Test in new proms, so set this if doc is an E2. - public int oldtonew; // Bits for converting from old to new - // document style - public bool CancelSectTitle; // Was format flags CancelSecTitlesOnS1 & CancelSecTitlesOnS2 - public bool SpecialStepsFoldout; // Was format flag SpecialStepsFoldout - but put on E2 (was in 16bit code) - public bool UndSpecialStepsFoldout; // Was format flag UndSpecialStepsFoldout - but put here on E2 only. - public bool ExtraLineHeader; // added for Callaway foldout Notes (needed line bewteen 'NOTE' and text) - public bool AlignHLSTabWithSect; // added for FNP (was in WST) - public bool ComponentList; // Added for FNP component lists - public short ContTopHLS; // Flag for including High Level step - // as part of top continue message. - public float CTMargin; // Margin for top message - public float CBMargin; // Margin for bottom message - public float CBMarginR; // Margin for bottom message RNO column - Added for BGE - public short CBLoc; // 0 - place continue string at end of text - // 1 - between end of text & bottom of page - // 2 - place at bottom of page - public bool CBNoOverrideSpace; // Added for farley pagination of bottomcontinue message - public VE_Font ContStyle; // Style of continue messages - public short EndFlag; // Does end statement exist for this type - public float EndMargin; // Added for BGE - need to position the end message (differs for single vs dual column) - public VE_Font EndStyle; // Style of end message at end of page - public string ContTop; // Message at top of page - public string ContBottom; // Message at bottom of page - public string EndString; // String for end of document - public string FinalMsg; // Message for the final page of th text - public VE_DocStyle DocStructStyle; // Describe How / When structure is used -} -#endregion -#region ENums -[Flags] -public enum E_PageStructMod : uint -{ - PSCenter = 0, // Page style, center field - PSLeft = 1, // Page style, left justify - PSRight = 2, // Page style, right justify - // *** PS modifiers: *** - PSBottom = 4, // Page style, always use bottom half line - PSTop = 8, // Page style, always use top half line - PSTrue = 16, // page style, don't adjust per CPI* (not needed after 4.0) - PSNotFirst = 32, // page style, don't put this token on the first page of section - PSOnlyFirst = 64, // page style, only put this token on the first page of section - PSRelRow = 128, // place in RelPageList - PSNoHalfLine= 256, // DontDoHalflines for his paglist row item - PSNotLast = 0x200, // 512 - use this token on all but the last page of this section - PSRtfOnly = 0x400, // Only use this token when the driver is rtf - PSRtfNot = 0x800, // Do NOT use token when driver is rtf - PSGDIOnly = 0X1000, // Only use this token when the driver is GDI - PSGDINot = 0x2000, // Do NOT use token when driver is GDI - PSAdjBngRow = 0x4000 // If the pagelist item exceeds the row it's printed on, - // then adjust the starting row for the procedure body -}; -// Possible settings for DocStructStyle (DSS_) -// These styles describe How and When the defined Doc Style is used -[Flags] public enum E_DocStructStyle:uint -{ - UseOnAllPages = 0, // Default - UseOnFirstPage = 1, // Use only on the first page - UseOnAllButFirstPage = 2, // Use on all but the first page - UseOnLastPage = 4, // NO LOGIC exists for this selection. Use only on the last page - UseSectionFoldout = 8, // Attach section foldouts (only active if using SectionLevelFoldouts_ON - DontCountFoldoutPgs = 16, // Used with the USESECTIONFOLDOUT flag. Keeps foldout pages from - // being included in the section total page count. - TableOfContents = 32, - DontCountInTabOfCont = 64, - Placekeeper = 128, - Align1StLevSubWHLS = 0x00000100, // guess? - DoubleBoxHLS = 0x00000200, - UseAltCntrline = 0x00000400, - DontNumberInTOC = 0x00000800, // Don't include page number for this section in the Table of Contents - UseSpecialFigFrame = 0x00001000, // for use with stp55 and 55a in bge - HLSUseLetters = 0x00002000, // docstyles with this bit set in the DocStructStyle will - // default to using letters for HLSteps - NoSectionInStepContinue = 0x00004000, // don't include the section number in the step continue - BottomSectionContinue = 0x00008000, // print the continue message if the section continues - AlwaysDotStep = 0x00010000, // put the period after step number in the continue message - XBlankW1stLevSub = 0x00020000, // insert an extra blank line before a 1st level substep - AffectedPages = 0x00040000, - DSS_TreatAsTrueSectNum = 0x00080000, // in conjunction with tietabtolevel, takes section number - // from the last space and appends a period - SampleWatermark = 0x00100000, // Will force "SAMPLE" to be printed across the page - // on all pages in this section - DSS_PageBreakHLS = 0x00200000, // Page Breaks on all high level steps - DSS_NoChkIfContTypeHigh = 0x00400000, // Will suppress the checkoff if type is HIGH and the - // step is continued on the next page - DSS_WidthOvrdStdHLS = 0x00800000, // Width Override for Standard HLStep in this section - DSS_AddDotZeroStdHLS = 0x01000000, // Append .0 to the Standard HLStep for this section - DSS_SectionCompress = 0x02000000, // Compress all the steps of this section (i.e. use 7 LPI) - DSS_PrintSectOnFirst = 0x04000000, // Prints section title/number only on the first - // page of an attachment section, assuming numberingsequence is not 1 - DSS_UnNumLikeRoman = 0x08000000, // the substeps underneath unnumbered HLSteps will have same tabs as romans - DSS_DontChangeRomanLevel = 0x10000000, // Dont alter the the substep level for roman-numeral-tabbed hlsteps - DSS_SkipTwoStepLevels = 0x20000000, // Skip two step levels for this doc style - DSS_SkipOneStepLevel = 0x40000000, // Skip one step level for this doc style - DSS_SimpleTopSectionContinue = 0x80000000, // Use the Top continue message as the section continue */ -}; -public enum E_DocStyleUse:uint -{ - UseOnAllPages=0,UseOnFirstPage=1,UseOnAllButFirstPage=2,UseOnLastPage=4 -}; -[Flags] -public enum E_DocStyle:uint -{ - None=0,UseSectionFoldout=8,DontCountFoldoutPgs=16,TableOfContents=32, - DontCountInTabOfCont=64,Placekeeper=128,Align1StLevSubWHLS=0x00000100, - DoubleBoxHLS=0x00000200,UseAltCntrline=0x00000400,DontNumberInTOC=0x00000800, - UseSpecialFigFrame=0x00001000,HLSUseLetters=0x00002000,NoSectionInStepContinue=0x00004000, - BottomSectionContinue=0x00008000,AlwaysDotStep=0x00010000,XBlankW1stLevSub=0x00020000, - AffectedPages=0x00040000,DSS_TreatAsTrueSectNum=0x00080000,SampleWatermark=0x00100000, - DSS_PageBreakHLS=0x00200000,DSS_NoChkIfContTypeHigh=0x00400000,DSS_WidthOvrdStdHLS=0x00800000, - DSS_AddDotZeroStdHLS=0x01000000,DSS_SectionCompress=0x02000000,DSS_PrintSectOnFirst=0x04000000, - DSS_UnNumLikeRoman=0x08000000,DSS_DontChangeRomanLevel=0x10000000, - DSS_SkipTwoStepLevels=0x20000000,DSS_SkipOneStepLevel=0x40000000,DSS_SimpleTopSectionContinue=0x80000000 -}; -//[Flags] -//public enum E_Style:uint -//{ -// ELITE=0,PICA=1,SANSERIF=2,EXPANDED=4,PICA12=5,COMPRESSEDHVLPT18=8,HVLPT25=9,SPECIALCHARS=10,PT14=11,SANSERIF14=12,SANSERIF17=13, -// HVLPT12=14,NARRATOR=15,MEDUPUNIVERS=16,LGUPMED16=17,PROPT10=18,LG1275HP4SI=19, -// HVLPT10=20,HVLPT8=21,HVLPT14=22,SANSERIF25=23,EYECHART=24,TIMES11=25,SANSCOND=26, -// UNDERLINE=64,BOLD=128,LANDSCAPE=256,ITALICS=512,BOXED=1024,BOXELEMENT=0x00000800, -// TBCENTERED=4096,RTCHECKOFF=8192,LTCHECKOFF=16384,BIGSCRIPT=32768,HLTEXTHL=65536, -// RTCHECKOFFWITHASTERISK=131072,DB_UNDERLINE=262144,COLDOTS=524288, -// MMBOLD=1048576,RIGHTJUSTIFY=2097152,SUBSCRIPT=4194304,SUPERSCRIPT=8388608, -// PAGELISTITEM=16777216,PRINTONTOPOFLINE=33554432,HORZCENTER=67108864, -// CIRCLESTRING2=0x08000000,ALIGNWITHUP1=0x10000000,ALIGNWSECNUM=0x20000000, -// MATCHCOLUMNMODE=0x40000000,KEEPRNOSUBSTYLE=0x80000000 -//}; -public enum E_FontName:uint -{ - Elite=0,Pica=1,LnPrn=2,Condense=3,SanSerif=4,Pica12=5,Proportional=6, - Propt12=7,HvlPt18=8,HvlPt25=9,SpecialChars=10,Pt14=11,SanSerif14=12,SanSerif17=13, - HvlPt12=14,Narrator=15,MedUpUnivers=16,LgUpMed16=17,Propt10=18,Lg1275Hp4Si=19, - HvlPt10=20,HvlPt8=21,HvlPt14=22,SanSerif25=23,EyeChart=24,Times11=25,SansCond=26 - }; -//[Flags] -//public enum E_FontStyle:uint -//{ -// NONE=0,UNDERLINE=64,BOLD=128,LANDSCAPE=256,ITALICS=512,BOXED=1024,BOXELEMENT=0x00000800, -// TBCENTERED=4096,RTCHECKOFF=8192,LTCHECKOFF=16384,BIGSCRIPT=32768,HLTEXTHL=65536, -// RTCHECKOFFWITHASTERISK=131072,DB_UNDERLINE=262144,COLDOTS=524288, -// MMBOLD=1048576,RIGHTJUSTIFY=2097152,SUBSCRIPT=4194304,SUPERSCRIPT=8388608, -// PAGELISTITEM=16777216,PRINTONTOPOFLINE=33554432,HORZCENTER=67108864, -// CIRCLESTRING2=0x08000000,ALIGNWITHUP1=0x10000000,ALIGNWSECNUM=0x20000000, -// MATCHCOLUMNMODE=0x40000000,KEEPRNOSUBSTYLE=0x80000000 -//}; -[Flags] public enum E_FontStyle:uint -{ - None=0,Underline=64,Bold=128,Italics=512,BigScript=32768, - DbUnderline=262144,MmBold=1048576,Subscript=4194304,Superscript=8388608 -}; -public enum E_Justify : uint -{ - None=0, Center=1, Left=2, Right=3 -}; -public enum E_TabCheckOff : uint -{ - None=0, Left=1, Right=2 -}; -[Flags] public enum E_Style:uint -{ - None=0,Landscape=256,Boxed=1024,BoxElement=0x00000800,TbCentered=4096,RtCheckoff=8192, - LtCheckOff=16384,HlTextHl=65536,RtCheckoffWithAsterisk=131072,ColDots=524288, - RightJustify=2097152,PageListItem=16777216,PrintOnTopOfLine=33554432, - HorzCenter=67108864,CircleString2=0x08000000,AlighWithUp1=0x10000000, - AlignWSecNum=0x20000000,MatchColumnMode=0x40000000,KeepRNOSubStyle=0x80000000 -}; - -public enum E_OldToNewSteps : uint -{ - S0 = 1, S1 = 2, S2 = 4, E0 = 1048576, E1 = 2097152, E2 = 4194304, X0 = 33554432, X1 = 67108864, X2 = 134217728 -}; -#endregion -#region TypeConverters -[Serializable,TypeConverter(typeof(VE_DocStyleConverter))] -public class VE_DocStyle -{ - uint i; - public VE_DocStyle(string s) - { - - } - public VE_DocStyle(uint i) - { - this.i=i; - } - public VE_DocStyle() - { - this.i=0; - } - public E_DocStyleUse DocStyleUse - { - get{return (E_DocStyleUse)(i & 0x7);} - set{i = ((uint)value) | (i & 0xFFFFFFF8);} - } - public string DocStyle - { - get{return ((E_DocStyle)(i & 0xFFFFFFF8)).ToString();} - set{i = ((uint)Enum.Parse(typeof (E_DocStyle),value)) | (i & 0x7);} - } -} -internal class VE_DocStyleConverter:ExpandableObjectConverter -{ - public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) - { - if(sourceType == typeof(string)) - { - return false; - } - return base.CanConvertFrom(context,sourceType); - } - public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) - { - return base.ConvertFrom (context, culture, value); - } - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) - { - if(destinationType==typeof(string)) - { - VE_DocStyle v = (VE_DocStyle)value; - return string.Format((v.DocStyle=="None"?"{0}":"{0}, {1}"),v.DocStyleUse,v.DocStyle); - } - return base.ConvertTo (context, culture, value, destinationType); - } -} - -[Serializable,TypeConverter(typeof(VE_FontConverter))] -public class VE_Font -{ - uint i; - private bool _PartialInheritance = false; - -//public bool PartialInheritance -//{ -// get { return _PartialInheritance; } -// set { _PartialInheritance = value; } -//} - public bool CanInherit() - { - return !_PartialInheritance; - } - public VE_Font(string s) - { - - } - public VE_Font(uint i) - { - this.i=i; - } - public VE_Font() - { - this.i=0; - } - public VE_Font(XmlNode fxml) - { - // The "Family", "Size", and "Style" are attributes to the "Font" node - // We were trying to get this information by fxml.SelectSingleNode("Family") - // but this would always return a NULL because this items are Attributes not Nodes. - // thus the FontFamily, FontSize, and FontStyle was never set - - XmlAttributeCollection ac = fxml.Attributes; // get the attributes from the passed in Font node - XmlNode tmp = ac.GetNamedItem("Family"); // get the Family attribute from the Font node - if (tmp!=null)FontFamily = tmp.InnerText; - tmp = ac.GetNamedItem("Size"); // get the Size attribute from the Font node - if (tmp != null) FontSize = tmp.InnerText; - tmp = ac.GetNamedItem("Style"); // get the Style attribute from the Font node - if (tmp != null) FontStyle = tmp.InnerText; - } - private string _FontFamily = null; - private bool _FontFamilySet = false; - - public string FontFamily - { - get - { - if ((!_FontFamilySet)&&(_FontFamily == null)) _FontFamily = CvtFont.CvtFont.ConvertToFamily(((E_FontName)(i & 0x3f)).ToString()); - _FontFamilySet = true; - return _FontFamily; - } - set { CheckPartial(_FontFamily,value); _FontFamily = value; } - } - private void CheckPartial(string member, string value) - { - if (member != null && value == null) - _PartialInheritance = true; - } - private string _FontSize = null; - private bool _FontSizeSet = false; - public string FontSize - { - get - { - if ((!_FontSizeSet)&&(_FontSize == null)) _FontSize = CvtFont.CvtFont.ConvertToSize(((E_FontName)(i & 0x3f)).ToString()).ToString(); - _FontSizeSet = true; - return _FontSize; - } - set { CheckPartial(_FontSize, value); _FontSize = value; } - //set { i = ((uint)value) | (i & 0xFFFFFFC0); } - } - //public E_FontName FontName - //{ - // get{return (E_FontName)(i & 0x3F);} - // set{i = ((uint)value) | (i & 0xFFFFFFC0);} - //} - private string _FontStyle = null; - private bool _FontStyleSet = false; - public string FontStyle - { - get{ - if ((!_FontStyleSet) && (_FontStyle == null)) _FontStyle = ((E_FontStyle)(i & 0xD482C0)).ToString(); - //if ((!_FontStyleSet) && (_FontStyle == null)) _FontStyle = ((E_FontStyle)(i & 0xFFFFFFC0)).ToString(); - _FontStyleSet = true; - return _FontStyle; - } - // return (E_FontStyle)(i & 0xFFFFFFC0);} - set { CheckPartial(_FontStyle, value); _FontStyle = value; } - //set{i = ((uint)value) | (i & 0x3F);} - } - private string _CPI; - private bool _CPISet = false; - public string CPI - { - get - { - if (!_CPISet) - { - _CPI = CvtFont.CvtFont.GetCPIs(i).ToString(); - } - _CPISet = true; - return _CPI; - } - set - { - CheckPartial(_CPI, value); - _CPI = value; - if (value != null) _CPISet = true; - } - } - private string _FontCheckOff = null; - private bool _FontCheckOffSet = false; - public string FontCheckOff - { - get - { - // 16-bit code had check offs in font style integer flag. 32-bit is converting this to its own - // xml attribute not part of the font. This code is used for the format -> xml conversion - // the 32-bit code should NOT have this as part of the font. RTCHECKOFF in 16-bit code = 8192 - // and LTCHECKOFF in 16-bit code = 16384 - if ((!_FontCheckOffSet) && (_FontCheckOff == null)) - { - if ((i & 8192)>0) _FontCheckOff = E_TabCheckOff.Right.ToString(); - else if ((i & 16384) > 0) _FontCheckOff = E_TabCheckOff.Left.ToString(); - else _FontCheckOff = E_TabCheckOff.None.ToString(); - } - _FontCheckOffSet = true; - return _FontCheckOff; - } - set { CheckPartial(_FontCheckOff, value); _FontCheckOff = value; } - } - private string _FontJustify = null; - private bool _FontJustifySet = false; - public string FontJustify - { - get - { - // 16-bit code had justify in font style integer flag. 32-bit is converting this to its own - // xml attribute not part of the font. This code is used for the format -> xml conversion - // the 32-bit code should NOT have this as part of the font. TBCENTERED in 16-bit code = 4096 - // and RIGHTJUSTIFY in 16-bit code = 2097152. Note 16-bit did not have a left justify. - if ((!_FontJustifySet) && (_FontJustify == null)) - { - if ((i & 4096) > 0) _FontJustify = E_Justify.Center.ToString(); - else if ((i & 2097152) > 0) _FontJustify = E_Justify.Right.ToString(); - else _FontJustify = E_Justify.None.ToString(); - } - _FontJustifySet = true; - return _FontJustify; - } - set { CheckPartial(_FontJustify, value); _FontJustify = value; } - } - public bool IsBoxed - { - get - { - return ((i & (int)E_Style.Boxed) > 0); - } - } - //CIRCLESTRING2=0x08000000 - public bool HasCircleString2() - { - if ((i & 0x08000000)>0) return true; - else return false; - } - public VE_Font Copy() - { - VE_Font c = new VE_Font(i); - return c; - } -} -internal class VE_FontConverter:ExpandableObjectConverter -{ - public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) - { - if(sourceType == typeof(string)) - { - return false; - } - return base.CanConvertFrom(context,sourceType); - } - public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) - { - return base.ConvertFrom (context, culture, value); - } - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) - { - if(destinationType==typeof(string)) - { - VE_Font v = (VE_Font)value; - return string.Format((v.FontStyle == "None" ? "Family={0} Size={1}" : "{0}, {1}, {2}"), v.FontFamily, v.FontSize, v.FontStyle); - } - return base.ConvertTo (context, culture, value, destinationType); - } -} -#endregion - - -/////////////////////////// -namespace fmtxml -{ - public partial class FmtToXml - { - private BinaryReader brFmt; - private string fmtName; - private VE_Font DefBaseFont; - private VE_Font DefPlantFont; - private string MyPath; - public FmtToXml(string nm, string path) - { - MyPath = path; - fmtName = nm; - //if (!fmtName.ToUpper().StartsWith("FNP") && fmtName.ToUpper() != "BASE") return; - try - { - // get the default base & plant files to use when figuring out inheritance. - if (GetPlantBaseDefaultFonts()) - { - - // will have entire name, such as aep.x01 - use number to differentiate it. - int indx = nm.IndexOf('.'); - if (indx > 0) - { - LoadPageFile(nm); - string tmpDocName = fmtName; - tmpDocName = tmpDocName.Remove(indx + 1, 1); - tmpDocName = tmpDocName.Insert(indx + 1, "y"); - LoadDocFile(tmpDocName); - } - else - { - LoadPageFile(nm + ".pag"); - LoadDocFile(nm + ".doc"); - } - } - } - catch (Exception ex) - { - MessageBox.Show("Format name = " + nm, ex.Message); - } - } - private float RowToPoints(int i) - { - return (i * 12); // row_in_points = input * 72/6, row = input * 12 - } - private float ColToPoints(float f, uint style) - { - return 72 * (f / CvtFont.CvtFont.GetCPISBadPICA12(style)); - } - private string GetAsciiStringUntilNull(BinaryReader br) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - bool stillread = true; - do - { - try - { - input = br.ReadByte(); - if (input==0) stillread=false; - inpstr.Append(Convert.ToChar(input)); - } - catch (System.IO.EndOfStreamException) - { - stillread=false; - } - cnt++; - }while (stillread); - - string retstr = inpstr.ToString(); - if (retstr.Substring(retstr.Length-1,1)=="\0") return retstr.Substring(0,retstr.Length-1); - return retstr; - } - private string GetAsciiString(BinaryReader br, int len) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - do - { - try - { - input = br.ReadByte(); - inpstr.Append(Convert.ToChar(input)); - } - catch (System.IO.EndOfStreamException) - { - input = 0; - while (cnt < len) - { - inpstr.Append(Convert.ToChar(input)); - cnt++; - } - } - cnt++; - }while (cnt < len); - - string retstr = inpstr.ToString(); - if (retstr.Substring(retstr.Length-1,1)=="\0") return retstr.Substring(0,retstr.Length-1); - return retstr; - } - private VE_Font LoadVE_Font() - { - VE_Font retval=new VE_Font(brFmt.ReadUInt32()); - return retval; - } - private VE_DocStyle LoadVE_DocStyle() - { - VE_DocStyle retval=new VE_DocStyle(brFmt.ReadUInt32()); - return retval; - } - private bool _PicaIgnoreFiveSixths; - public bool PicaIgnoreFiveSixths - { - get { return _PicaIgnoreFiveSixths; } - set { _PicaIgnoreFiveSixths = value; } - } - public void LoadPageFile(string fname) - { - string lfmtname = fmtName; - int indx = fmtName.IndexOf('.'); - if (indx > 0) - lfmtname = fmtName.Substring(0, fmtName.Length - 4) + "_" + fmtName.Substring(fmtName.Length - 2, 2); - GetFormatFlags(lfmtname); - ArrayList stringoffsets = new ArrayList(); - short strings = 0; - PageStyles pgstyles = new PageStyles(); - - // read in title. - string fnm = MyPath + @"\" + fname; - brFmt = new BinaryReader(File.Open(fnm,System.IO.FileMode.Open,System.IO.FileAccess.ReadWrite,FileShare.ReadWrite)); - pgstyles.Name = GetAsciiString(brFmt); - - // read in struct name/def name/page file name - //for (int i=0;i<3;i++) - //{ - // len = brFmt.ReadInt16(); - // str = GetAsciiString(brFmt,len); - //} - string structName = GetAsciiString(brFmt); - string includeName = GetAsciiString(brFmt); - string formatName = GetAsciiString(brFmt); - // Get the number of page styles, and create the array for them. - short numpgstyles = brFmt.ReadInt16(); - - // If any page styles need added for a plant, the new count will be here: - short newnumpgstyles = GetPlantSpecificStyleCount(fname, numpgstyles); - bool didNewPageStyle = newnumpgstyles != numpgstyles; - - PageStyle[] pgs = new PageStyle[newnumpgstyles]; - pgstyles.PgStyles = pgs; - - short offptr = brFmt.ReadInt16(); - short vnum = brFmt.ReadInt16(); - if (vnum!=0) - { - strings = vnum; - for(int i=0;i' with '}' - pi.Token = pi.Token.Replace('<', '{'); - pi.Token = pi.Token.Replace('>', '}'); - pi.Token = pi.Token.Replace("REVDATE", "REV2"); - cnt++; - if (!isfirst) - { - Fpsitms = new PSItem[cnt]; - psitms.CopyTo(Fpsitms, 0); - Fpsitms[cnt - 1] = pi; - psitms = Fpsitms; - - } - else - psitms[0] = pi; - isfirst = false; - } - else - { - if (!didLineDraw) - { - didLineDraw = true; - pi.Token = "{BOX9}"; - cnt++; - if (!isfirst) - { - Fpsitms = new PSItem[cnt]; - psitms.CopyTo(Fpsitms, 0); - Fpsitms[cnt - 1] = pi; - psitms = Fpsitms; - - } - else - psitms[0] = pi; - isfirst = false; - } - } - brFmt.BaseStream.Position = fseek+vnum; - } - pg.Items = psitms; - pgs[i] = pg; - } - if (didNewPageStyle) pgs[numpgstyles] = AddPageStyles(fname); - brFmt.Close(); - // Don't do the font inheritance for the pagelist - // you can have multiple docsytles point/use the same pagelist, - // with each docstyle having different default font information. - // The DoPSFontInherit() was calucating the font inheritance based on the font - // set to the overall format, but the PROMS print module checks the docstyle default font - // In NSP's case, the overall format uses an Arial font, the pagelist item uses - // an Arial font, but the docstyle default font is Prestige Elite Tall. - // the results from DoPSFontInherit() kept only the font size and style for the pagelist item. - // the print module then ended up using Prestige Elite Tall instead of Arial for that pagelist item - // - jsj 02/11/13 - //DoPSFontInherit(ref pgstyles); - AddPlantSpecific(fname, ref pgstyles); - - // First serialize files based on the above - then use xsl to transform - // into prefered xml. - if (!Directory.Exists("fmt_xml")) Directory.CreateDirectory("fmt_xml"); - if (!Directory.Exists("tmp_fmt_xml")) Directory.CreateDirectory("tmp_fmt_xml"); - XmlSerializer serializer = new XmlSerializer(typeof(PageStyles)); - // for subformats, make the name FMT_00 where FMT is format name & 00 is number - // from original name. This will allow the data load to know it's a sub. - string destfile = "tmp_fmt_xml\\" + lfmtname + "p.xml"; - if (File.Exists(destfile)) File.Delete(destfile); - TextWriter writer = new StreamWriter(destfile); - try - { - serializer.Serialize(writer, pgstyles); - writer.Close(); - XslCompiledTransform xsl = FmtFileToXml.getTransform(Application.StartupPath + "\\TranslatePag.XSL"); - string sResults = "fmt_xml\\" + lfmtname + "p.xml"; - xsl.Transform(destfile, sResults); // Perform Transform - if (lfmtname == "GEN") - File.Copy(sResults, "fmt_xml\\BASEp.xml"); // Create BASE from GEN format - } - catch (Exception e) - { - Console.WriteLine(e.Message); - writer.Close(); - } - } - - private short GetPlantSpecificStyleCount(string fname, short nmstyles) - { - switch (fname.ToUpper()) - { - case "RGESAM1.PAG": - case "RGESAM1.DOC": - return ++nmstyles; - break; - default: - return nmstyles; - break; - } - } - private PageStyle AddPageStyles(string fname) - { - PageStyle pg = new PageStyle(); - switch (fname.ToUpper()) - { - case "RGESAM1.PAG": - /* - * - - - - - - - - - - - - * - * - * - - - - - - - - */ - - pg.Index=3; - pg.Name = "Cover Page"; - - PSItem [] psitms = new PSItem[4]; - PSItem pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -2; - pi.Justify = "PSCenter"; - psitms[0] = pi; - - PSItem pi0 = new PSItem(); - pi0.Token = "{EOPNUM}"; - pi0.Row = 320; - pi0.Col = 262; - pi0.Justify = "PSCenter"; - pi0.Style = new VE_Font(); - pi0.Style.FontFamily = "Arial"; - pi0.Style.FontSize = "18"; - pi0.Style.CPI = "9"; - psitms[1] = pi0; - - PSItem pi1 = new PSItem(); - pi1.Token = "{COVERTITLE1}"; - pi1.Row=350; - pi1.Col=282; - pi1.Justify="PSTop"; - pi1.Style = new VE_Font(); - pi1.Style.FontFamily = "Arial"; - pi1.Style.FontSize = "18"; - pi1.Style.CPI = "9"; - psitms[2] = pi1; - - PSItem pi2 = new PSItem(); - pi2.Token = "{COVERTITLE2}"; - pi2.Row=366; - pi2.Col=282; - pi2.Justify="PSCenter"; - pi2.Style = new VE_Font(); - pi2.Style.FontFamily = "Arial"; - pi2.Style.FontSize = "18"; - pi2.Style.CPI = "9"; - psitms[3] = pi2; - pg.Items = psitms; - return pg; - break; - default: - break; - } - return pg; - } - private void GetFormatFlags(string lfmtname) - { - string fmtFile = "tmp_fmt_xml\\" + lfmtname + "f.xml"; - string fmtParent = null; - if (Regex.IsMatch(lfmtname, "[^_]*_[0-9][0-9]")) - fmtParent = "tmp_fmt_xml\\" + lfmtname.Substring(0, lfmtname.Length - 3) + "f.xml"; - XmlDocument fmtDoc = GetXMLDoc(fmtFile); - string picaIgnoreFiveSixths = GetXML(fmtDoc, "PicaIgnoreFiveSixths"); - if (picaIgnoreFiveSixths != "True" && fmtParent != null) // Could not find it, look in parent - { - fmtDoc = GetXMLDoc(fmtParent); - picaIgnoreFiveSixths = GetXML(fmtDoc, "PicaIgnoreFiveSixths"); - } - PicaIgnoreFiveSixths = (picaIgnoreFiveSixths == "True"); - } - private string GetXML(XmlDocument fDoc, string lookFor) - { - if (fDoc == null) return null; - XmlNodeList xl = fDoc.DocumentElement.SelectNodes("//*/@" + lookFor); // Look for Attribute - if (xl.Count == 0) xl = fDoc.DocumentElement.SelectNodes("//" + lookFor); // Look for Node - string found = xl.Count == 1 ? xl[0].InnerText : null; - if (found != null) - Console.WriteLine("Found '" + lookFor + "'"); - return found; - } - private XmlDocument GetXMLDoc(string fmtFile) - { - XmlDocument fDoc=null; - if (File.Exists(fmtFile)) - { - fDoc = new XmlDocument(); - fDoc.Load(fmtFile); - } - return fDoc; - } - private string RemoveInitialLineDraw(string tkn, ref int coladj) - { - // if first two characters are line draw and space, remove them and adjust column. - if (tkn[0] == '\xB3' && tkn[1] == ' ') - { - coladj += 2; - tkn = tkn.Substring(2, tkn.Length - 2); - //trim any end line char too. - tkn = tkn.Replace('\xB3',' '); - tkn = tkn.TrimEnd(" ".ToCharArray()); - } - return tkn; - } - - private string GetAsciiString(BinaryReader brFmt) - { - short len = brFmt.ReadInt16(); - return GetAsciiString(brFmt, len); - } - public void LoadDocFile(string fname) - { - ArrayList stringoffsets = new ArrayList(); - short strings = 0; - DocStyles dcstyles = new DocStyles(); - - // read in title. - string fnm = MyPath + @"\" + fname; - // construct format file name from this path.\ - string fmtFileName = fname; - if (fname.Contains(".Y")) - { - // subformat - replace .Y with .X - fmtFileName = MyPath + @"\" + fname.Replace(".Y", ".X"); - } - else - { - fmtFileName = MyPath + @"\" + fname.Substring(0, fname.IndexOf(".")) + ".FMT"; - } - //if (fname == "CPL.Y01") Console.WriteLine(fname); - brFmt = new BinaryReader(File.Open(fnm,System.IO.FileMode.Open,System.IO.FileAccess.ReadWrite,FileShare.ReadWrite)); - dcstyles.Name = GetAsciiString(brFmt); - bool didNewDocStyle = false; - short newnumdcstyles = 0; - - // read in struct name/def name/doc file name - string structName = GetAsciiString(brFmt); - string includeName = GetAsciiString(brFmt); - string formatName = GetAsciiString(brFmt); - DocStyle[] dcs = null; - if (structName.ToUpper() != "DOCSTYL.STR") - { - Console.WriteLine("Other Structure {0}", structName); - if (structName == "BKPGDOC.STR") - { - for(int i=0;i<4;i++) brFmt.ReadInt16(); // Skip 4 integers - dcs = new DocStyle[4]; - string baseName = GetAsciiString(brFmt); - dcs[0].Index = 0; - dcs[1].Index = 1; - dcs[2].Index = 2; - dcs[3].Index = 3; - dcs[0].Name = baseName + "- portrait @ 6 lpi"; - dcs[1].Name = baseName + "- portrait @ 4 lpi"; - dcs[2].Name = baseName + "- landscape @ 6 lpi"; - dcs[3].Name = baseName + "- landscape @ 4 lpi"; - brFmt.ReadInt16(); - dcs[0].dstyle = LoadVE_Font(); - dcs[1].dstyle = dcs[0].dstyle.Copy(); - dcs[2].dstyle = dcs[0].dstyle.Copy(); - dcs[3].dstyle = dcs[0].dstyle.Copy(); - dcs[0].TopMargin = dcs[1].TopMargin = dcs[2].TopMargin = dcs[3].TopMargin = brFmt.ReadInt16(); - dcs[0].LeftMargin = dcs[1].LeftMargin = dcs[2].LeftMargin = dcs[3].LeftMargin = brFmt.ReadInt16(); - dcs[0].PageLength = brFmt.ReadInt16(); - dcs[1].PageLength = brFmt.ReadInt16(); - dcs[2].PageLength = brFmt.ReadInt16(); - dcs[3].PageLength = brFmt.ReadInt16(); - } - } - else - { - - // Get the number of page styles, and create the array for them. - short numdcstyles = brFmt.ReadInt16(); - - // If any doc styles need added for a plant, the new count will be here: - newnumdcstyles = GetPlantSpecificStyleCount(fname, numdcstyles); - didNewDocStyle = newnumdcstyles != numdcstyles; - - dcs = new DocStyle[newnumdcstyles]; - - short offptr = brFmt.ReadInt16(); // not sure what these bytes contain? - short vnum = brFmt.ReadInt16(); - if (vnum != 0) - { - strings = vnum; - for (int i = 0; i < strings; i++) - { - vnum = brFmt.ReadInt16(); - stringoffsets.Add(vnum); - } - } - - for (short i = 0; i < numdcstyles; i++) - { - DocStyle dc = new DocStyle(); - dc.Index = i; - dc.Name = GetAsciiString(brFmt); - vnum = brFmt.ReadInt16(); // not sure what this is! - dc.pagestyle = brFmt.ReadInt16(); - uint tmpstyle = brFmt.ReadUInt32(); - dc.dstyle = new VE_Font(tmpstyle); - dc.TopMargin = RowToPoints(brFmt.ReadInt16()); - dc.FooterLen = RowToPoints(brFmt.ReadInt16()); - dc.LeftMargin = ColToPoints(brFmt.ReadInt16(), tmpstyle); - dc.PageLength = RowToPoints(brFmt.ReadInt16()); - dc.PageWidth = ColToPoints(brFmt.ReadInt16(), tmpstyle); - dc.numberingsequence = brFmt.ReadInt16(); - dc.oldtonew = brFmt.ReadInt32(); - SetupDocStyleFromFmtFlags(ref dc, fmtFileName); - dc.IsStepSection = ConvertToSectType(dc.oldtonew); - dc.ContTopHLS = brFmt.ReadInt16(); - dc.CTMargin = brFmt.ReadInt16(); - dc.CBMargin = brFmt.ReadInt16(); - dc.CBLoc = brFmt.ReadInt16(); - tmpstyle = brFmt.ReadUInt32(); - dc.ContStyle = new VE_Font(tmpstyle); - dc.CTMargin = ColToPoints(dc.CTMargin, tmpstyle); - dc.CBMargin = ColToPoints(dc.CBMargin, tmpstyle); - dc.CBMarginR = 0; - dc.EndFlag = brFmt.ReadInt16(); - dc.EndStyle = LoadVE_Font(); - dc.UseCheckOffs = UseCheckOffsIn(fname.Substring(0, fname.Length - 4), dc.oldtonew); - dc.UseColSByLevel = dc.oldtonew == 5; - - // use the string offsets to read in the strings. - int[] offst = new int[strings]; - for (int j = 0; j < strings; j++) - { - offst[j] = brFmt.ReadInt32(); - } - dc.DocStructStyle = LoadVE_DocStyle(); - if (offst[0] != 0) dc.ContTop = DoReplaceTokens(GetAsciiStringUntilNull(brFmt)); - //else dc.ContTop = null; - // in 16-bit a null setting would prevent the Top Continue Message from printing - // we need to set this to a blank string, else it will be inherited from the BASE format(BASEall.xml) - else dc.ContTop = ""; - if (offst[1] != 0) dc.ContBottom = DoReplaceTokens(GetAsciiStringUntilNull(brFmt)); - else dc.ContBottom = null; - if (offst[2] != 0) dc.EndString = DoReplaceTokens(GetAsciiStringUntilNull(brFmt)); - else dc.EndString = null; - if (dc.EndString == "") - { - dc.EndString = null; - dc.EndFlag = 0; - dc.EndMargin = 0; - } - if (offst[3] != 0) dc.FinalMsg = DoReplaceTokens(GetAsciiStringUntilNull(brFmt)); - else dc.FinalMsg = null; - if (dc.ContTop == null && dc.ContBottom == null) dc.ContStyle = null; - if (dc.EndString == null) dc.EndStyle = null; - - dcs[i] = dc; - vnum = brFmt.ReadInt16(); - } - } - if (didNewDocStyle) dcs[newnumdcstyles - 1] = AddDocStyles(fname); - dcstyles.DcStyles = dcs; - brFmt.Close(); - - // Inherit fonts. - DoDSFontInherit(ref dcstyles); - - // Do UseOnFirstPage/UseOnAllbutFirstPage index additions. This was added for 32bit support - // of the document style 'StructureStyle Where = "UseOnFirstPage" or "UseOnAllButFirstPage" - DoUseOnPagesAttribute(ref dcstyles); - - // do Plant specific adjustments - AddPlantSpecific(fname, ref dcstyles); - - // First serialize files based on the above - then use xsl to transform - // into prefered xml. - if (!Directory.Exists("fmt_xml")) Directory.CreateDirectory("fmt_xml"); - if (!Directory.Exists("tmp_fmt_xml")) Directory.CreateDirectory("tmp_fmt_xml"); - XmlSerializer serializer = new XmlSerializer(typeof(DocStyles)); - string lfmtname = fmtName; - int indx = fmtName.IndexOf('.'); - // for subformats, make the name FMT_00 where FMT is format name & 00 is number - // from original name. This will allow the data load to know it's a sub. - if (indx > 0) - lfmtname = fmtName.Substring(0, fmtName.Length - 4) + "_" + fmtName.Substring(fmtName.Length - 2, 2); - string destfile = "tmp_fmt_xml\\" + lfmtname + "d.xml"; - if (File.Exists(destfile)) File.Delete(destfile); - TextWriter writer = new StreamWriter(destfile); - try - { - serializer.Serialize(writer, dcstyles); - writer.Close(); - XslCompiledTransform xsl = FmtFileToXml.getTransform(Application.StartupPath + "\\TranslateDoc.XSL"); - string sResults = "fmt_xml\\" + lfmtname + "d.xml"; - xsl.Transform(destfile, sResults); // Perform Transform - xsl = FmtFileToXml.getTransform(Application.StartupPath + "\\removeFmtUseCO.XSL"); - //xsl.Load(Application.StartupPath + "\\removeempty.XSL"); - string sFormatResults = "fmt_xml\\" + lfmtname + "f.xml"; - string sResults2 = "fmt_xml\\" + lfmtname + "xf.xml"; - xsl.Transform(sFormatResults, sResults2); - File.Delete(sFormatResults); - File.Move(sResults2, sFormatResults); - if (lfmtname == "GEN") - File.Copy(sResults, "fmt_xml\\BASEd.xml"); // Create BASE from GEN format - } - catch (Exception e) - { - Console.WriteLine(e.Message); - writer.Close(); - } - } - - private void DoUseOnPagesAttribute(ref DocStyles docstyles) - { - int indxFirst = -1; - int indxAllButFirst = -1; - for (int i = 0; i < docstyles.DcStyles.Length; i++) - - { - if ((docstyles.DcStyles[i].DocStructStyle.DocStyleUse & E_DocStyleUse.UseOnFirstPage) == E_DocStyleUse.UseOnFirstPage) - indxFirst = docstyles.DcStyles[i].Index; - if ((docstyles.DcStyles[i].DocStructStyle.DocStyleUse & E_DocStyleUse.UseOnAllButFirstPage) == E_DocStyleUse.UseOnAllButFirstPage) - indxAllButFirst = docstyles.DcStyles[i].Index; - } - if (indxFirst != -1 && indxAllButFirst != -1) - { - docstyles.DcStyles[indxFirst].IndexOtherThanFirstPage = (short)indxAllButFirst; - } - } - - private DocStyle AddDocStyles(string fname) - { - DocStyle dc = new DocStyle(); - switch (fname.ToUpper()) - { - case "RGESAM1.DOC": - /* - * - - - - */ - dc.Index = 5; - dc.Name = "Cover Page"; - dc.numberingsequence = 0; - dc.IsStepSection = false; - dc.UseCheckOffs = false; - dc.UseColSByLevel = false; - dc.oldtonew = 544; - dc.CancelSectTitle = false; - dc.SpecialStepsFoldout=false; - dc.UndSpecialStepsFoldout=false; - dc.pagestyle = 3; - dc.TopMargin = 54; - dc.FooterLen = 0; - dc.PageLength = 780; - dc.PageWidth = 540; - dc.LeftMargin = 72; - dc.dstyle = new VE_Font(); - dc.dstyle.FontFamily = "Courier New"; - dc.dstyle.FontSize = "12"; - dc.dstyle.CPI = "10"; - dc.DocStructStyle = new VE_DocStyle(); - dc.DocStructStyle.DocStyleUse = E_DocStyleUse.UseOnAllPages; - break; - default: - break; - } - return dc; - } - - private bool UseCheckOffsIn(string p, int p_2) - { - try - { - XmlDocument xdoc = new XmlDocument(); - string path = "fmt_xml\\" + p + "f.xml"; - if (!File.Exists(path)) return false; - xdoc.Load("fmt_xml\\" + p + "f.xml"); - XmlNode useCO = xdoc.SelectSingleNode("FormatData/ProcData/CheckOffData/@UseCheckOffsIn"); - if (useCO == null) return false; - int iDoc = System.Convert.ToInt32(useCO.Value); - if ((p_2 & iDoc)>0) return true; - } - catch (Exception ex) - { - Console.WriteLine("here"); - } - return false; - } - private void SetupDocStyleFromFmtFlags(ref DocStyle dc, string fmtFileName) - { - int oldToNew = dc.oldtonew; - BinaryReader brFmt = new BinaryReader(File.Open(fmtFileName, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)); - int[] tmpshort3 = new int[3]; - ArrayList stringoffsets = new ArrayList(); - byte tmpbyte; - Int16 tmpshort; - string tmpstr; - try - { - tmpshort = brFmt.ReadInt16(); - tmpstr = fmtxml.FmtFileToXml.GetStringUntilNull(brFmt); - for (int i = 0; i < 3; i++) - { - tmpshort = brFmt.ReadInt16(); - tmpstr = fmtxml.FmtFileToXml.GetStringUntilNull(brFmt); - } - - short vnum = brFmt.ReadInt16(); // number of ints, etc. - long posatints = brFmt.BaseStream.Position; - long tstloc = vnum + posatints; - tmpbyte = brFmt.ReadByte(); // FirstChar - Int16[] xtraflag = new Int16[19]; - for (int i = 0; i < 19; i++) - { - xtraflag[i] = brFmt.ReadInt16(); - } - dc.CancelSectTitle = CheckSectType(oldToNew, xtraflag); - dc.SpecialStepsFoldout = GetSpecialStepsFoldout(oldToNew, xtraflag); - dc.UndSpecialStepsFoldout = GetUndSpecialStepsFoldout(oldToNew, xtraflag); - } - catch (Exception exception) - { - Console.WriteLine("Didn't process docstyle"); - } - } - - private bool GetUndSpecialStepsFoldout(int oldToNew, Int16[] flg) - { - if (((oldToNew & (int)E_OldToNewSteps.E2) != 0) && ((flg[10] & fmtxml.FmtFileToXml.UNDSPECIALSTEPSFOLDOUT) > 0)) return true; - return false; - } - - private bool GetSpecialStepsFoldout(int oldToNew, Int16[] flg) - { - if (((oldToNew & (int)E_OldToNewSteps.E2) != 0) && ((flg[7] & fmtxml.FmtFileToXml.SPECIALSTEPSFOLDOUT) > 0)) return true; - return false; - } - private bool CheckSectType(int oldToNew, Int16[] flg) - { - if (((oldToNew & (int)E_OldToNewSteps.S2) != 0) && ((flg[6] & fmtxml.FmtFileToXml.CANCELSECTITLESONS2) > 0)) return true; - if (((oldToNew & (int)E_OldToNewSteps.S1) != 0) && ((flg[7] & fmtxml.FmtFileToXml.CANCELSECTITLESONS1) > 0)) return true; - if (((oldToNew & (int)E_OldToNewSteps.E0) != 0) && ((flg[11] & fmtxml.FmtFileToXml.CANCELSECTITLESONE0) > 0)) return true; - if (((oldToNew & (int)E_OldToNewSteps.E2) != 0) && ((flg[11] & fmtxml.FmtFileToXml.CANCELSECTITLESONE2) > 0)) return true; - return false; - } - - private bool ConvertToSectType(int p) - { - if (((p & (int)E_OldToNewSteps.S0) != 0) || ((p & (int)E_OldToNewSteps.S1) != 0) || ((p & (int)E_OldToNewSteps.S2) != 0) || - ((p & (int)E_OldToNewSteps.E0) != 0) || ((p & (int)E_OldToNewSteps.E1) != 0) || ((p & (int)E_OldToNewSteps.E2) != 0) || - ((p & (int)E_OldToNewSteps.X0) != 0) || ((p & (int)E_OldToNewSteps.X1) != 0) || ((p & (int)E_OldToNewSteps.X2) != 0)) - return true; - return false; - } - private string DoReplaceTokens(string p) - { - if (p == null || p == "") return p; - string wkstr = p; - // use regular expressions to do the following... - - // first see if entire string is line draw type chars, if so, just don't include it. - if (AllDrawChars(wkstr)) return null; - try - { - // replace newline with {par} - wkstr = wkstr.Replace("\n", "{par}"); - - // special change bar token (various cpl formats) - wkstr = wkstr.Replace("\x08\x08\x08\x08\x08\x05", "{CHG_BAR with Backspace Token}"); - - // special change bar token (various gpc formats) - wkstr = wkstr.Replace("\x05", "{CHG_BAR Token}"); - - // backspage - just flag for positioning if needed. - wkstr = wkstr.Replace("\x08", "{Backspace}"); - - //sub on/off - wkstr = wkstr.Replace("\x19\x19", "\x19"); // replace double sub on with single - wkstr = wkstr.Replace("~~", "\x19"); - wkstr = Regex.Replace(wkstr, @"\x19([^\x19\x18 ]*?)(?:[\x19\x18]|(?= )|\Z)(.*?)", @"\dn2$1\up0$2"); - - //super on/off - wkstr = Regex.Replace(wkstr, @"\x18([^\x19\x18 ]*?)(?:[\x19\x18]|(?= )|\Z)(.*?)", @"\up2$1\up0$2"); - - //bold on/off - wkstr = Regex.Replace(wkstr, @"\x01([^\x01 ]*?)(?:[\x01]|(?= )|\Z)(.*?)", @"\b$1\b0$2"); - wkstr = Regex.Replace(wkstr, @"\x13([^\x13\xd6 ]*?)(?:[\x13\xd6]|(?= )|\Z)(.*?)", @"\b$1\b0$2"); - - //underline on/off - //wkstr = Regex.Replace(wkstr, @"\x16([^\x16 ]*?)(?:[\x16]|(?= )|\Z)(.*?)", @"\ul$1\ul0$2"); - wkstr = Regex.Replace(wkstr, @"\x16([^\x16 ]*?)(?:[\x16]|(?= )|\Z)(.*?)", @"\ul $1\ulnone $2"); - - //narrator - //wkstr = Regex.Replace(wkstr, @"\x86([^\x86 ]*?)(?:[\x86]|(?= )|\Z)(.*?)", @"\f{Narrator}$1\f0$2"); - wkstr = Regex.Replace(wkstr, @"\x86([^\x86 ]*?)(?:[\x86]|(?= )|\Z)(.*?)", @"$1$2"); - - // remove hanging indent, vertical tab - wkstr = Regex.Replace(wkstr, @"\x02", @"\NonSupported Hanging Indent (Hex x02)"); - //wkstr = Regex.Replace(wkstr, @"\x0B", @"\NonSupported Vertical Tab (Hex x0b"); - wkstr = Regex.Replace(wkstr, @"\x0B", @""); - - // remove some unknown chars for ano & fpl - these plants are not supported - // as of conversion date. - wkstr = Regex.Replace(wkstr, @"\x95", @"\NonSupported Unknown (Hex x95)"); //ano2vlv - wkstr = Regex.Replace(wkstr, @"\x1bf1", @"\NonSupported Unknown (hex 1b f1)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bf0", @"\NonSupported Unknown (hex 1b f0)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bM1", @"\NonSupported Unknown (hex 1b M1)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bM0", @"\NonSupported Unknown (hex 1b M0)"); //fpl - - // ATA page?? - wkstr = Regex.Replace(wkstr, @"\x1b", @"{NonSupported Hex 1b}"); - - // replace the \xff33 13 with {Section Number} - wkstr = Regex.Replace(wkstr, @"\xFF33 13", @"{Section Number}"); - // replace \xff with \xA0, i.e. hardspace - wkstr = Regex.Replace(wkstr, @"\xFF", @"\xA0"); - - // replace x10 & x11 in various ano tabs - not this needs fixed if ANO comes - // back into the program - wkstr = wkstr.Replace("\x10", ""); - wkstr = wkstr.Replace("\x11", ""); - - // replace x15 with {RO} for now. - wkstr = wkstr.Replace("\x15", "{RO}"); - - } - catch (Exception ex) - { - Console.WriteLine("error replacing token (regex) = {0}", ex.Message); - } - - return wkstr; - } - - private bool AllDrawChars(string wkstr) - { - foreach (char c in wkstr) - { - if (c < '\xB3' || c > '\xDF') return false; - } - return true; - } - private bool CompareFonts(VE_Font parFont, ref VE_Font subFont) - { - bool rtval = false; - if (parFont != null && subFont != null) - { - if (parFont.FontFamily == subFont.FontFamily) - { - subFont.FontFamily = null; - rtval = true; - } - if (rtval && parFont.FontSize == subFont.FontSize) - { - subFont.FontSize = null; - } - if (rtval && parFont.FontStyle == subFont.FontStyle) - { - subFont.FontStyle = null; - } - if (rtval && parFont.CPI == subFont.CPI) - { - subFont.CPI = null; - } - } - return rtval; - } - //private void DoPSFontInherit(ref PageStyles pagstyles) - //{ - // for (int i=0; i 0) // we are working with a sub-format - { - parentOfSub = fmtName.Substring(0, fmtName.Length - 4); // name of sub format's parent - lfmtName = fmtName.Substring(0, fmtName.Length - 4) + "_" + fmtName.Substring(fmtName.Length - 2, 2); - getFontFromBase = false; // get the font from sub-format parent format - } - - string parentName = "fmt_xml\\" + parentOfSub + "f.xml"; - // if we have a valid parent format then use it to find the default font - if (!getFontFromBase && File.Exists(parentName)) - { - xdoc.Load(parentName); - xfont = xdoc.SelectSingleNode("FormatData/Font"); - if (xfont != null) - DefBaseFont = new VE_Font(xfont); - else - getFontFromBase = true; // font not found, use the font from base.xml - } - if (getFontFromBase) - { - xdoc.Load("fmt_xml\\basef.xml"); - xfont = xdoc.SelectSingleNode("FormatData/Font"); - DefBaseFont = new VE_Font(xfont); - } - // Get the font from the current plant format (or sub-format) - string fName = "fmt_xml\\" + lfmtName + "f.xml"; - if (!File.Exists(fName)) return false; - xdoc.Load(fName); - xfont = xdoc.SelectSingleNode("FormatData/Font"); - if (xfont != null) DefPlantFont = new VE_Font(xfont); - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - return false; - } - return true; - } - - } -} diff --git a/PROMS/fmtxml/FmtToXml.cs.bak b/PROMS/fmtxml/FmtToXml.cs.bak deleted file mode 100644 index 7a891e76..00000000 --- a/PROMS/fmtxml/FmtToXml.cs.bak +++ /dev/null @@ -1,1482 +0,0 @@ -using System; -using System.Windows.Forms; -using System.IO; -using System.Text; -using System.Text.RegularExpressions; -using System.Collections; -using System.Runtime.Serialization.Formatters.Binary; // read in struct -using System.Xml.Xsl; -using System.Xml; -using System.Xml.Serialization; -using System.ComponentModel; - -#region Structs -// top of the page style list. -[Serializable] -public struct PageStyles -{ - public string Name; - public PageStyle [] PgStyles; -} -[Serializable] -public struct PageStyle -{ - public string Name; - public short Index; - public PSItem [] Items; -} -[Serializable] -public struct PSItem -{ - public float Row; - public float Col; - //public E_PageStructMod Justify; - public string Justify; - public VE_Font Style; - public string Token; -} -//// top of the doc style list. -[Serializable] -public struct DocStyles -{ - public string Name; - public DocStyle [] DcStyles; -} -[Serializable] -public struct DocStyle -{ - //for VCSummer by jcb - public float CenterLineX; - public float CenterLineYTop; - public float CenterLineYBottom; - public bool LandscapePageList; - public bool ShowSectionTitles; - //end for VCSummer by jcb - public string Name; - public short Index; - public short pagestyle; // Index into page style array - public VE_Font dstyle; // 'Printer driver styles' for the entire document - public float TopMargin; // First 'document text' row on printed page/ renamed to TopMargin - public float FooterLen; // Number of lines required for footer - public float LeftMargin; // Size of left margin - public float PageLength; - public float PageWidth; - public short numberingsequence; // 0 - no page number - // 1 - included with steps - // 2 - within sections ie. document styles - // 3 - within each accessory document - public short IndexOtherThanFirstPage; // reference document style for remaining pages (not first), if - // one exists. - public bool IsStepSection; // using oldtonew, determine whether is step - // section or word doc section (new to 32-bit) - public bool UseCheckOffs; // This was originally in fmt. Load fmt to get - public bool UseColSByLevel; // Didn't want a OldToNew Test in new proms, so set this if doc is an E2. - public int oldtonew; // Bits for converting from old to new - // document style - public bool CancelSectTitle; // Was format flags CancelSecTitlesOnS1 & CancelSecTitlesOnS2 - public bool SpecialStepsFoldout; // Was format flag SpecialStepsFoldout - but put on E2 (was in 16bit code) - public bool UndSpecialStepsFoldout; // Was format flag UndSpecialStepsFoldout - but put here on E2 only. - public bool ExtraLineHeader; // added for Callaway foldout Notes (needed line bewteen 'NOTE' and text) - public bool AlignHLSTabWithSect; // added for FNP (was in WST) - public short ContTopHLS; // Flag for including High Level step - // as part of top continue message. - public float CTMargin; // Margin for top message - public float CBMargin; // Margin for bottom message - public short CBLoc; // 0 - place continue string at end of text - // 1 - between end of text & bottom of page - // 2 - place at bottom of page - // - public VE_Font ContStyle; // Style of continue messages - public short EndFlag; // Does end statement exist for this type - public VE_Font EndStyle; // Style of end message at end of page - public string ContTop; // Message at top of page - public string ContBottom; // Message at bottom of page - public string EndString; // String for end of document - public string FinalMsg; // Message for the final page of th text - public VE_DocStyle DocStructStyle; // Describe How / When structure is used -} -#endregion -#region ENums -[Flags] -public enum E_PageStructMod : uint -{ - PSCenter = 0, // Page style, center field - PSLeft = 1, // Page style, left justify - PSRight = 2, // Page style, right justify - // *** PS modifiers: *** - PSBottom = 4, // Page style, always use bottom half line - PSTop = 8, // Page style, always use top half line - PSTrue = 16, // page style, don't adjust per CPI* (not needed after 4.0) - PSNotFirst = 32, // page style, don't put this token on the first page of section - PSOnlyFirst = 64, // page style, only put this token on the first page of section - PSRelRow = 128, // place in RelPageList - PSNoHalfLine= 256, // DontDoHalflines for his paglist row item - PSNotLast = 0x200, // 512 - use this token on all but the last page of this section - PSRtfOnly = 0x400, // Only use this token when the driver is rtf - PSRtfNot = 0x800, // Do NOT use token when driver is rtf - PSGDIOnly = 0X1000, // Only use this token when the driver is GDI - PSGDINot = 0x2000, // Do NOT use token when driver is GDI - PSAdjBngRow = 0x4000 // If the pagelist item exceeds the row it's printed on, - // then adjust the starting row for the procedure body -}; -// Possible settings for DocStructStyle (DSS_) -// These styles describe How and When the defined Doc Style is used -[Flags] public enum E_DocStructStyle:uint -{ - UseOnAllPages = 0, // Default - UseOnFirstPage = 1, // Use only on the first page - UseOnAllButFirstPage = 2, // Use on all but the first page - UseOnLastPage = 4, // NO LOGIC exists for this selection. Use only on the last page - UseSectionFoldout = 8, // Attach section foldouts (only active if using SectionLevelFoldouts_ON - DontCountFoldoutPgs = 16, // Used with the USESECTIONFOLDOUT flag. Keeps foldout pages from - // being included in the section total page count. - TableOfContents = 32, - DontCountInTabOfCont = 64, - Placekeeper = 128, - Align1StLevSubWHLS = 0x00000100, // guess? - DoubleBoxHLS = 0x00000200, - UseAltCntrline = 0x00000400, - DontNumberInTOC = 0x00000800, // Don't include page number for this section in the Table of Contents - UseSpecialFigFrame = 0x00001000, // for use with stp55 and 55a in bge - HLSUseLetters = 0x00002000, // docstyles with this bit set in the DocStructStyle will - // default to using letters for HLSteps - NoSectionInStepContinue = 0x00004000, // don't include the section number in the step continue - BottomSectionContinue = 0x00008000, // print the continue message if the section continues - AlwaysDotStep = 0x00010000, // put the period after step number in the continue message - XBlankW1stLevSub = 0x00020000, // insert an extra blank line before a 1st level substep - AffectedPages = 0x00040000, - DSS_TreatAsTrueSectNum = 0x00080000, // in conjunction with tietabtolevel, takes section number - // from the last space and appends a period - SampleWatermark = 0x00100000, // Will force "SAMPLE" to be printed across the page - // on all pages in this section - DSS_PageBreakHLS = 0x00200000, // Page Breaks on all high level steps - DSS_NoChkIfContTypeHigh = 0x00400000, // Will suppress the checkoff if type is HIGH and the - // step is continued on the next page - DSS_WidthOvrdStdHLS = 0x00800000, // Width Override for Standard HLStep in this section - DSS_AddDotZeroStdHLS = 0x01000000, // Append .0 to the Standard HLStep for this section - DSS_SectionCompress = 0x02000000, // Compress all the steps of this section (i.e. use 7 LPI) - DSS_PrintSectOnFirst = 0x04000000, // Prints section title/number only on the first - // page of an attachment section, assuming numberingsequence is not 1 - DSS_UnNumLikeRoman = 0x08000000, // the substeps underneath unnumbered HLSteps will have same tabs as romans - DSS_DontChangeRomanLevel = 0x10000000, // Dont alter the the substep level for roman-numeral-tabbed hlsteps - DSS_SkipTwoStepLevels = 0x20000000, // Skip two step levels for this doc style - DSS_SkipOneStepLevel = 0x40000000, // Skip one step level for this doc style - DSS_SimpleTopSectionContinue = 0x80000000, // Use the Top continue message as the section continue */ -}; -public enum E_DocStyleUse:uint -{ - UseOnAllPages=0,UseOnFirstPage=1,UseOnAllButFirstPage=2,UseOnLastPage=4 -}; -[Flags] -public enum E_DocStyle:uint -{ - None=0,UseSectionFoldout=8,DontCountFoldoutPgs=16,TableOfContents=32, - DontCountInTabOfCont=64,Placekeeper=128,Align1StLevSubWHLS=0x00000100, - DoubleBoxHLS=0x00000200,UseAltCntrline=0x00000400,DontNumberInTOC=0x00000800, - UseSpecialFigFrame=0x00001000,HLSUseLetters=0x00002000,NoSectionInStepContinue=0x00004000, - BottomSectionContinue=0x00008000,AlwaysDotStep=0x00010000,XBlankW1stLevSub=0x00020000, - AffectedPages=0x00040000,DSS_TreatAsTrueSectNum=0x00080000,SampleWatermark=0x00100000, - DSS_PageBreakHLS=0x00200000,DSS_NoChkIfContTypeHigh=0x00400000,DSS_WidthOvrdStdHLS=0x00800000, - DSS_AddDotZeroStdHLS=0x01000000,DSS_SectionCompress=0x02000000,DSS_PrintSectOnFirst=0x04000000, - DSS_UnNumLikeRoman=0x08000000,DSS_DontChangeRomanLevel=0x10000000, - DSS_SkipTwoStepLevels=0x20000000,DSS_SkipOneStepLevel=0x40000000,DSS_SimpleTopSectionContinue=0x80000000 -}; -//[Flags] -//public enum E_Style:uint -//{ -// ELITE=0,PICA=1,SANSERIF=2,EXPANDED=4,PICA12=5,COMPRESSEDHVLPT18=8,HVLPT25=9,SPECIALCHARS=10,PT14=11,SANSERIF14=12,SANSERIF17=13, -// HVLPT12=14,NARRATOR=15,MEDUPUNIVERS=16,LGUPMED16=17,PROPT10=18,LG1275HP4SI=19, -// HVLPT10=20,HVLPT8=21,HVLPT14=22,SANSERIF25=23,EYECHART=24,TIMES11=25,SANSCOND=26, -// UNDERLINE=64,BOLD=128,LANDSCAPE=256,ITALICS=512,BOXED=1024,BOXELEMENT=0x00000800, -// TBCENTERED=4096,RTCHECKOFF=8192,LTCHECKOFF=16384,BIGSCRIPT=32768,HLTEXTHL=65536, -// RTCHECKOFFWITHASTERISK=131072,DB_UNDERLINE=262144,COLDOTS=524288, -// MMBOLD=1048576,RIGHTJUSTIFY=2097152,SUBSCRIPT=4194304,SUPERSCRIPT=8388608, -// PAGELISTITEM=16777216,PRINTONTOPOFLINE=33554432,HORZCENTER=67108864, -// CIRCLESTRING2=0x08000000,ALIGNWITHUP1=0x10000000,ALIGNWSECNUM=0x20000000, -// MATCHCOLUMNMODE=0x40000000,KEEPRNOSUBSTYLE=0x80000000 -//}; -public enum E_FontName:uint -{ - Elite=0,Pica=1,LnPrn=2,Condense=3,SanSerif=4,Pica12=5,Proportional=6, - Propt12=7,HvlPt18=8,HvlPt25=9,SpecialChars=10,Pt14=11,SanSerif14=12,SanSerif17=13, - HvlPt12=14,Narrator=15,MedUpUnivers=16,LgUpMed16=17,Propt10=18,Lg1275Hp4Si=19, - HvlPt10=20,HvlPt8=21,HvlPt14=22,SanSerif25=23,EyeChart=24,Times11=25,SansCond=26 - }; -//[Flags] -//public enum E_FontStyle:uint -//{ -// NONE=0,UNDERLINE=64,BOLD=128,LANDSCAPE=256,ITALICS=512,BOXED=1024,BOXELEMENT=0x00000800, -// TBCENTERED=4096,RTCHECKOFF=8192,LTCHECKOFF=16384,BIGSCRIPT=32768,HLTEXTHL=65536, -// RTCHECKOFFWITHASTERISK=131072,DB_UNDERLINE=262144,COLDOTS=524288, -// MMBOLD=1048576,RIGHTJUSTIFY=2097152,SUBSCRIPT=4194304,SUPERSCRIPT=8388608, -// PAGELISTITEM=16777216,PRINTONTOPOFLINE=33554432,HORZCENTER=67108864, -// CIRCLESTRING2=0x08000000,ALIGNWITHUP1=0x10000000,ALIGNWSECNUM=0x20000000, -// MATCHCOLUMNMODE=0x40000000,KEEPRNOSUBSTYLE=0x80000000 -//}; -[Flags] public enum E_FontStyle:uint -{ - None=0,Underline=64,Bold=128,Italics=512,BigScript=32768, - DbUnderline=262144,MmBold=1048576,Subscript=4194304,Superscript=8388608 -}; -public enum E_Justify : uint -{ - None=0, Center=1, Left=2, Right=3 -}; -public enum E_TabCheckOff : uint -{ - None=0, Left=1, Right=2 -}; -[Flags] public enum E_Style:uint -{ - None=0,Landscape=256,Boxed=1024,BoxElement=0x00000800,TbCentered=4096,RtCheckoff=8192, - LtCheckOff=16384,HlTextHl=65536,RtCheckoffWithAsterisk=131072,ColDots=524288, - RightJustify=2097152,PageListItem=16777216,PrintOnTopOfLine=33554432, - HorzCenter=67108864,CircleString2=0x08000000,AlighWithUp1=0x10000000, - AlignWSecNum=0x20000000,MatchColumnMode=0x40000000,KeepRNOSubStyle=0x80000000 -}; - -public enum E_OldToNewSteps : uint -{ - S0 = 1, S1 = 2, S2 = 4, E0 = 1048576, E1 = 2097152, E2 = 4194304, X0 = 33554432, X1 = 67108864, X2 = 134217728 -}; -#endregion -#region TypeConverters -[Serializable,TypeConverter(typeof(VE_DocStyleConverter))] -public class VE_DocStyle -{ - uint i; - public VE_DocStyle(string s) - { - - } - public VE_DocStyle(uint i) - { - this.i=i; - } - public VE_DocStyle() - { - this.i=0; - } - public E_DocStyleUse DocStyleUse - { - get{return (E_DocStyleUse)(i & 0x7);} - set{i = ((uint)value) | (i & 0xFFFFFFF8);} - } - public string DocStyle - { - get{return ((E_DocStyle)(i & 0xFFFFFFF8)).ToString();} - set{i = ((uint)Enum.Parse(typeof (E_DocStyle),value)) | (i & 0x7);} - } -} -internal class VE_DocStyleConverter:ExpandableObjectConverter -{ - public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) - { - if(sourceType == typeof(string)) - { - return false; - } - return base.CanConvertFrom(context,sourceType); - } - public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) - { - return base.ConvertFrom (context, culture, value); - } - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) - { - if(destinationType==typeof(string)) - { - VE_DocStyle v = (VE_DocStyle)value; - return string.Format((v.DocStyle=="None"?"{0}":"{0}, {1}"),v.DocStyleUse,v.DocStyle); - } - return base.ConvertTo (context, culture, value, destinationType); - } -} - -[Serializable,TypeConverter(typeof(VE_FontConverter))] -public class VE_Font -{ - uint i; - private bool _PartialInheritance = false; - -//public bool PartialInheritance -//{ -// get { return _PartialInheritance; } -// set { _PartialInheritance = value; } -//} - public bool CanInherit() - { - return !_PartialInheritance; - } - public VE_Font(string s) - { - - } - public VE_Font(uint i) - { - this.i=i; - } - public VE_Font() - { - this.i=0; - } - public VE_Font(XmlNode fxml) - { - // The "Family", "Size", and "Style" are attributes to the "Font" node - // We were trying to get this information by fxml.SelectSingleNode("Family") - // but this would always return a NULL because this items are Attributes not Nodes. - // thus the FontFamily, FontSize, and FontStyle was never set - - XmlAttributeCollection ac = fxml.Attributes; // get the attributes from the passed in Font node - XmlNode tmp = ac.GetNamedItem("Family"); // get the Family attribute from the Font node - if (tmp!=null)FontFamily = tmp.InnerText; - tmp = ac.GetNamedItem("Size"); // get the Size attribute from the Font node - if (tmp != null) FontSize = tmp.InnerText; - tmp = ac.GetNamedItem("Style"); // get the Style attribute from the Font node - if (tmp != null) FontStyle = tmp.InnerText; - } - private string _FontFamily = null; - private bool _FontFamilySet = false; - - public string FontFamily - { - get - { - if ((!_FontFamilySet)&&(_FontFamily == null)) _FontFamily = CvtFont.CvtFont.ConvertToFamily(((E_FontName)(i & 0x3f)).ToString()); - _FontFamilySet = true; - return _FontFamily; - } - set { CheckPartial(_FontFamily,value); _FontFamily = value; } - } - private void CheckPartial(string member, string value) - { - if (member != null && value == null) - _PartialInheritance = true; - } - private string _FontSize = null; - private bool _FontSizeSet = false; - public string FontSize - { - get - { - if ((!_FontSizeSet)&&(_FontSize == null)) _FontSize = CvtFont.CvtFont.ConvertToSize(((E_FontName)(i & 0x3f)).ToString()).ToString(); - _FontSizeSet = true; - return _FontSize; - } - set { CheckPartial(_FontSize, value); _FontSize = value; } - //set { i = ((uint)value) | (i & 0xFFFFFFC0); } - } - //public E_FontName FontName - //{ - // get{return (E_FontName)(i & 0x3F);} - // set{i = ((uint)value) | (i & 0xFFFFFFC0);} - //} - private string _FontStyle = null; - private bool _FontStyleSet = false; - public string FontStyle - { - get{ - if ((!_FontStyleSet) && (_FontStyle == null)) _FontStyle = ((E_FontStyle)(i & 0xD482C0)).ToString(); - //if ((!_FontStyleSet) && (_FontStyle == null)) _FontStyle = ((E_FontStyle)(i & 0xFFFFFFC0)).ToString(); - _FontStyleSet = true; - return _FontStyle; - } - // return (E_FontStyle)(i & 0xFFFFFFC0);} - set { CheckPartial(_FontStyle, value); _FontStyle = value; } - //set{i = ((uint)value) | (i & 0x3F);} - } - private string _CPI; - private bool _CPISet = false; - public string CPI - { - get - { - if (!_CPISet) - { - _CPI = CvtFont.CvtFont.GetCPIs(i).ToString(); - } - _CPISet = true; - return _CPI; - } - set - { - CheckPartial(_CPI, value); - _CPI = value; - if (value != null) _CPISet = true; - } - } - private string _FontCheckOff = null; - private bool _FontCheckOffSet = false; - public string FontCheckOff - { - get - { - // 16-bit code had check offs in font style integer flag. 32-bit is converting this to its own - // xml attribute not part of the font. This code is used for the format -> xml conversion - // the 32-bit code should NOT have this as part of the font. RTCHECKOFF in 16-bit code = 8192 - // and LTCHECKOFF in 16-bit code = 16384 - if ((!_FontCheckOffSet) && (_FontCheckOff == null)) - { - if ((i & 8192)>0) _FontCheckOff = E_TabCheckOff.Right.ToString(); - else if ((i & 16384) > 0) _FontCheckOff = E_TabCheckOff.Left.ToString(); - else _FontCheckOff = E_TabCheckOff.None.ToString(); - } - _FontCheckOffSet = true; - return _FontCheckOff; - } - set { CheckPartial(_FontCheckOff, value); _FontCheckOff = value; } - } - private string _FontJustify = null; - private bool _FontJustifySet = false; - public string FontJustify - { - get - { - // 16-bit code had justify in font style integer flag. 32-bit is converting this to its own - // xml attribute not part of the font. This code is used for the format -> xml conversion - // the 32-bit code should NOT have this as part of the font. TBCENTERED in 16-bit code = 4096 - // and RIGHTJUSTIFY in 16-bit code = 2097152. Note 16-bit did not have a left justify. - if ((!_FontJustifySet) && (_FontJustify == null)) - { - if ((i & 4096) > 0) _FontJustify = E_Justify.Center.ToString(); - else if ((i & 2097152) > 0) _FontJustify = E_Justify.Right.ToString(); - else _FontJustify = E_Justify.None.ToString(); - } - _FontJustifySet = true; - return _FontJustify; - } - set { CheckPartial(_FontJustify, value); _FontJustify = value; } - } - public bool IsBoxed - { - get - { - return ((i & (int)E_Style.Boxed) > 0); - } - } - //CIRCLESTRING2=0x08000000 - public bool HasCircleString2() - { - if ((i & 0x08000000)>0) return true; - else return false; - } - public VE_Font Copy() - { - VE_Font c = new VE_Font(i); - return c; - } -} -internal class VE_FontConverter:ExpandableObjectConverter -{ - public override bool CanConvertFrom(ITypeDescriptorContext context, Type sourceType) - { - if(sourceType == typeof(string)) - { - return false; - } - return base.CanConvertFrom(context,sourceType); - } - public override object ConvertFrom(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value) - { - return base.ConvertFrom (context, culture, value); - } - public override object ConvertTo(ITypeDescriptorContext context, System.Globalization.CultureInfo culture, object value, Type destinationType) - { - if(destinationType==typeof(string)) - { - VE_Font v = (VE_Font)value; - return string.Format((v.FontStyle == "None" ? "Family={0} Size={1}" : "{0}, {1}, {2}"), v.FontFamily, v.FontSize, v.FontStyle); - } - return base.ConvertTo (context, culture, value, destinationType); - } -} -#endregion - - -/////////////////////////// -namespace fmtxml -{ - public partial class FmtToXml - { - private BinaryReader brFmt; - private string fmtName; - private VE_Font DefBaseFont; - private VE_Font DefPlantFont; - private string MyPath; - public FmtToXml(string nm, string path) - { - MyPath = path; - fmtName = nm; - //if (!fmtName.ToUpper().StartsWith("FNP") && fmtName.ToUpper() != "BASE") return; - try - { - // get the default base & plant files to use when figuring out inheritance. - if (GetPlantBaseDefaultFonts()) - { - - // will have entire name, such as aep.x01 - use number to differentiate it. - int indx = nm.IndexOf('.'); - if (indx > 0) - { - LoadPageFile(nm); - string tmpDocName = fmtName; - tmpDocName = tmpDocName.Remove(indx + 1, 1); - tmpDocName = tmpDocName.Insert(indx + 1, "y"); - LoadDocFile(tmpDocName); - } - else - { - LoadPageFile(nm + ".pag"); - LoadDocFile(nm + ".doc"); - } - } - } - catch (Exception ex) - { - MessageBox.Show("Format name = " + nm, ex.Message); - } - } - private float RowToPoints(int i) - { - return (i * 12); // row_in_points = input * 72/6, row = input * 12 - } - private float ColToPoints(float f, uint style) - { - return 72 * (f / CvtFont.CvtFont.GetCPISBadPICA12(style)); - } - private string GetAsciiStringUntilNull(BinaryReader br) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - bool stillread = true; - do - { - try - { - input = br.ReadByte(); - if (input==0) stillread=false; - inpstr.Append(Convert.ToChar(input)); - } - catch (System.IO.EndOfStreamException) - { - stillread=false; - } - cnt++; - }while (stillread); - - string retstr = inpstr.ToString(); - if (retstr.Substring(retstr.Length-1,1)=="\0") return retstr.Substring(0,retstr.Length-1); - return retstr; - } - private string GetAsciiString(BinaryReader br, int len) - { - StringBuilder inpstr = new StringBuilder(); - byte input = 0; - int cnt = 0; - do - { - try - { - input = br.ReadByte(); - inpstr.Append(Convert.ToChar(input)); - } - catch (System.IO.EndOfStreamException) - { - input = 0; - while (cnt < len) - { - inpstr.Append(Convert.ToChar(input)); - cnt++; - } - } - cnt++; - }while (cnt < len); - - string retstr = inpstr.ToString(); - if (retstr.Substring(retstr.Length-1,1)=="\0") return retstr.Substring(0,retstr.Length-1); - return retstr; - } - private VE_Font LoadVE_Font() - { - VE_Font retval=new VE_Font(brFmt.ReadUInt32()); - return retval; - } - private VE_DocStyle LoadVE_DocStyle() - { - VE_DocStyle retval=new VE_DocStyle(brFmt.ReadUInt32()); - return retval; - } - private bool _PicaIgnoreFiveSixths; - public bool PicaIgnoreFiveSixths - { - get { return _PicaIgnoreFiveSixths; } - set { _PicaIgnoreFiveSixths = value; } - } - public void LoadPageFile(string fname) - { - string lfmtname = fmtName; - int indx = fmtName.IndexOf('.'); - if (indx > 0) - lfmtname = fmtName.Substring(0, fmtName.Length - 4) + "_" + fmtName.Substring(fmtName.Length - 2, 2); - GetFormatFlags(lfmtname); - ArrayList stringoffsets = new ArrayList(); - short strings = 0; - PageStyles pgstyles = new PageStyles(); - - // read in title. - string fnm = MyPath + @"\" + fname; - brFmt = new BinaryReader(File.Open(fnm,System.IO.FileMode.Open,System.IO.FileAccess.ReadWrite,FileShare.ReadWrite)); - pgstyles.Name = GetAsciiString(brFmt); - - // read in struct name/def name/page file name - //for (int i=0;i<3;i++) - //{ - // len = brFmt.ReadInt16(); - // str = GetAsciiString(brFmt,len); - //} - string structName = GetAsciiString(brFmt); - string includeName = GetAsciiString(brFmt); - string formatName = GetAsciiString(brFmt); - // Get the number of page styles, and create the array for them. - short numpgstyles = brFmt.ReadInt16(); - - // If any page styles need added for a plant, the new count will be here: - short newnumpgstyles = GetPlantSpecificStyleCount(fname, numpgstyles); - bool didNewPageStyle = newnumpgstyles != numpgstyles; - - PageStyle[] pgs = new PageStyle[newnumpgstyles]; - pgstyles.PgStyles = pgs; - - short offptr = brFmt.ReadInt16(); - short vnum = brFmt.ReadInt16(); - if (vnum!=0) - { - strings = vnum; - for(int i=0;i' with '}' - pi.Token = pi.Token.Replace('<', '{'); - pi.Token = pi.Token.Replace('>', '}'); - pi.Token = pi.Token.Replace("REVDATE", "REV2"); - cnt++; - if (!isfirst) - { - Fpsitms = new PSItem[cnt]; - psitms.CopyTo(Fpsitms, 0); - Fpsitms[cnt - 1] = pi; - psitms = Fpsitms; - - } - else - psitms[0] = pi; - isfirst = false; - } - else - { - if (!didLineDraw) - { - didLineDraw = true; - pi.Token = "{BOX9}"; - cnt++; - if (!isfirst) - { - Fpsitms = new PSItem[cnt]; - psitms.CopyTo(Fpsitms, 0); - Fpsitms[cnt - 1] = pi; - psitms = Fpsitms; - - } - else - psitms[0] = pi; - isfirst = false; - } - } - brFmt.BaseStream.Position = fseek+vnum; - } - pg.Items = psitms; - pgs[i] = pg; - } - if (didNewPageStyle) pgs[numpgstyles] = AddPageStyles(fname); - brFmt.Close(); - // Don't do the font inheritance for the pagelist - // you can have multiple docsytles point/use the same pagelist, - // with each docstyle having different default font information. - // The DoPSFontInherit() was calucating the font inheritance based on the font - // set to the overall format, but the PROMS print module checks the docstyle default font - // In NSP's case, the overall format uses an Arial font, the pagelist item uses - // an Arial font, but the docstyle default font is Prestige Elite Tall. - // the results from DoPSFontInherit() kept only the font size and style for the pagelist item. - // the print module then ended up using Prestige Elite Tall instead of Arial for that pagelist item - // - jsj 02/11/13 - //DoPSFontInherit(ref pgstyles); - AddPlantSpecific(fname, ref pgstyles); - - // First serialize files based on the above - then use xsl to transform - // into prefered xml. - if (!Directory.Exists("fmt_xml")) Directory.CreateDirectory("fmt_xml"); - if (!Directory.Exists("tmp_fmt_xml")) Directory.CreateDirectory("tmp_fmt_xml"); - XmlSerializer serializer = new XmlSerializer(typeof(PageStyles)); - // for subformats, make the name FMT_00 where FMT is format name & 00 is number - // from original name. This will allow the data load to know it's a sub. - string destfile = "tmp_fmt_xml\\" + lfmtname + "p.xml"; - if (File.Exists(destfile)) File.Delete(destfile); - TextWriter writer = new StreamWriter(destfile); - try - { - serializer.Serialize(writer, pgstyles); - writer.Close(); - XslCompiledTransform xsl = FmtFileToXml.getTransform(Application.StartupPath + "\\TranslatePag.XSL"); - string sResults = "fmt_xml\\" + lfmtname + "p.xml"; - xsl.Transform(destfile, sResults); // Perform Transform - if (lfmtname == "GEN") - File.Copy(sResults, "fmt_xml\\BASEp.xml"); // Create BASE from GEN format - } - catch (Exception e) - { - Console.WriteLine(e.Message); - writer.Close(); - } - } - - private short GetPlantSpecificStyleCount(string fname, short nmstyles) - { - switch (fname.ToUpper()) - { - case "RGESAM1.PAG": - case "RGESAM1.DOC": - return ++nmstyles; - break; - default: - return nmstyles; - break; - } - } - private PageStyle AddPageStyles(string fname) - { - PageStyle pg = new PageStyle(); - switch (fname.ToUpper()) - { - case "RGESAM1.PAG": - /* - * - - - - - - - - - - - - * - * - * - - - - - - - - */ - - pg.Index=3; - pg.Name = "Cover Page"; - - PSItem [] psitms = new PSItem[4]; - PSItem pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -2; - pi.Justify = "PSCenter"; - psitms[0] = pi; - - PSItem pi0 = new PSItem(); - pi0.Token = "{EOPNUM}"; - pi0.Row = 320; - pi0.Col = 262; - pi0.Justify = "PSCenter"; - pi0.Style = new VE_Font(); - pi0.Style.FontFamily = "Arial"; - pi0.Style.FontSize = "18"; - pi0.Style.CPI = "9"; - psitms[1] = pi0; - - PSItem pi1 = new PSItem(); - pi1.Token = "{COVERTITLE1}"; - pi1.Row=350; - pi1.Col=282; - pi1.Justify="PSTop"; - pi1.Style = new VE_Font(); - pi1.Style.FontFamily = "Arial"; - pi1.Style.FontSize = "18"; - pi1.Style.CPI = "9"; - psitms[2] = pi1; - - PSItem pi2 = new PSItem(); - pi2.Token = "{COVERTITLE2}"; - pi2.Row=366; - pi2.Col=282; - pi2.Justify="PSCenter"; - pi2.Style = new VE_Font(); - pi2.Style.FontFamily = "Arial"; - pi2.Style.FontSize = "18"; - pi2.Style.CPI = "9"; - psitms[3] = pi2; - pg.Items = psitms; - return pg; - break; - default: - break; - } - return pg; - } - private void GetFormatFlags(string lfmtname) - { - string fmtFile = "tmp_fmt_xml\\" + lfmtname + "f.xml"; - string fmtParent = null; - if (Regex.IsMatch(lfmtname, "[^_]*_[0-9][0-9]")) - fmtParent = "tmp_fmt_xml\\" + lfmtname.Substring(0, lfmtname.Length - 3) + "f.xml"; - XmlDocument fmtDoc = GetXMLDoc(fmtFile); - string picaIgnoreFiveSixths = GetXML(fmtDoc, "PicaIgnoreFiveSixths"); - if (picaIgnoreFiveSixths != "True" && fmtParent != null) // Could not find it, look in parent - { - fmtDoc = GetXMLDoc(fmtParent); - picaIgnoreFiveSixths = GetXML(fmtDoc, "PicaIgnoreFiveSixths"); - } - PicaIgnoreFiveSixths = (picaIgnoreFiveSixths == "True"); - } - private string GetXML(XmlDocument fDoc, string lookFor) - { - if (fDoc == null) return null; - XmlNodeList xl = fDoc.DocumentElement.SelectNodes("//*/@" + lookFor); // Look for Attribute - if (xl.Count == 0) xl = fDoc.DocumentElement.SelectNodes("//" + lookFor); // Look for Node - string found = xl.Count == 1 ? xl[0].InnerText : null; - if (found != null) - Console.WriteLine("Found '" + lookFor + "'"); - return found; - } - private XmlDocument GetXMLDoc(string fmtFile) - { - XmlDocument fDoc=null; - if (File.Exists(fmtFile)) - { - fDoc = new XmlDocument(); - fDoc.Load(fmtFile); - } - return fDoc; - } - private string RemoveInitialLineDraw(string tkn, ref int coladj) - { - // if first two characters are line draw and space, remove them and adjust column. - if (tkn[0] == '\xB3' && tkn[1] == ' ') - { - coladj += 2; - tkn = tkn.Substring(2, tkn.Length - 2); - //trim any end line char too. - tkn = tkn.Replace('\xB3',' '); - tkn = tkn.TrimEnd(" ".ToCharArray()); - } - return tkn; - } - - private string GetAsciiString(BinaryReader brFmt) - { - short len = brFmt.ReadInt16(); - return GetAsciiString(brFmt, len); - } - public void LoadDocFile(string fname) - { - ArrayList stringoffsets = new ArrayList(); - short strings = 0; - DocStyles dcstyles = new DocStyles(); - - // read in title. - string fnm = MyPath + @"\" + fname; - // construct format file name from this path.\ - string fmtFileName = fname; - if (fname.Contains(".Y")) - { - // subformat - replace .Y with .X - fmtFileName = MyPath + @"\" + fname.Replace(".Y", ".X"); - } - else - { - fmtFileName = MyPath + @"\" + fname.Substring(0, fname.IndexOf(".")) + ".FMT"; - } - //if (fname == "CPL.Y01") Console.WriteLine(fname); - brFmt = new BinaryReader(File.Open(fnm,System.IO.FileMode.Open,System.IO.FileAccess.ReadWrite,FileShare.ReadWrite)); - dcstyles.Name = GetAsciiString(brFmt); - bool didNewDocStyle = false; - short newnumdcstyles = 0; - - // read in struct name/def name/doc file name - string structName = GetAsciiString(brFmt); - string includeName = GetAsciiString(brFmt); - string formatName = GetAsciiString(brFmt); - DocStyle[] dcs = null; - if (structName.ToUpper() != "DOCSTYL.STR") - { - Console.WriteLine("Other Structure {0}", structName); - if (structName == "BKPGDOC.STR") - { - for(int i=0;i<4;i++) brFmt.ReadInt16(); // Skip 4 integers - dcs = new DocStyle[4]; - string baseName = GetAsciiString(brFmt); - dcs[0].Index = 0; - dcs[1].Index = 1; - dcs[2].Index = 2; - dcs[3].Index = 3; - dcs[0].Name = baseName + "- portrait @ 6 lpi"; - dcs[1].Name = baseName + "- portrait @ 4 lpi"; - dcs[2].Name = baseName + "- landscape @ 6 lpi"; - dcs[3].Name = baseName + "- landscape @ 4 lpi"; - brFmt.ReadInt16(); - dcs[0].dstyle = LoadVE_Font(); - dcs[1].dstyle = dcs[0].dstyle.Copy(); - dcs[2].dstyle = dcs[0].dstyle.Copy(); - dcs[3].dstyle = dcs[0].dstyle.Copy(); - dcs[0].TopMargin = dcs[1].TopMargin = dcs[2].TopMargin = dcs[3].TopMargin = brFmt.ReadInt16(); - dcs[0].LeftMargin = dcs[1].LeftMargin = dcs[2].LeftMargin = dcs[3].LeftMargin = brFmt.ReadInt16(); - dcs[0].PageLength = brFmt.ReadInt16(); - dcs[1].PageLength = brFmt.ReadInt16(); - dcs[2].PageLength = brFmt.ReadInt16(); - dcs[3].PageLength = brFmt.ReadInt16(); - } - } - else - { - - // Get the number of page styles, and create the array for them. - short numdcstyles = brFmt.ReadInt16(); - - // If any doc styles need added for a plant, the new count will be here: - newnumdcstyles = GetPlantSpecificStyleCount(fname, numdcstyles); - didNewDocStyle = newnumdcstyles != numdcstyles; - - dcs = new DocStyle[newnumdcstyles]; - - short offptr = brFmt.ReadInt16(); // not sure what these bytes contain? - short vnum = brFmt.ReadInt16(); - if (vnum != 0) - { - strings = vnum; - for (int i = 0; i < strings; i++) - { - vnum = brFmt.ReadInt16(); - stringoffsets.Add(vnum); - } - } - - for (short i = 0; i < numdcstyles; i++) - { - DocStyle dc = new DocStyle(); - dc.Index = i; - dc.Name = GetAsciiString(brFmt); - vnum = brFmt.ReadInt16(); // not sure what this is! - dc.pagestyle = brFmt.ReadInt16(); - uint tmpstyle = brFmt.ReadUInt32(); - dc.dstyle = new VE_Font(tmpstyle); - dc.TopMargin = RowToPoints(brFmt.ReadInt16()); - dc.FooterLen = RowToPoints(brFmt.ReadInt16()); - dc.LeftMargin = ColToPoints(brFmt.ReadInt16(), tmpstyle); - dc.PageLength = RowToPoints(brFmt.ReadInt16()); - dc.PageWidth = ColToPoints(brFmt.ReadInt16(), tmpstyle); - dc.numberingsequence = brFmt.ReadInt16(); - dc.oldtonew = brFmt.ReadInt32(); - SetupDocStyleFromFmtFlags(ref dc, fmtFileName); - dc.IsStepSection = ConvertToSectType(dc.oldtonew); - dc.ContTopHLS = brFmt.ReadInt16(); - dc.CTMargin = brFmt.ReadInt16(); - dc.CBMargin = brFmt.ReadInt16(); - dc.CBLoc = brFmt.ReadInt16(); - tmpstyle = brFmt.ReadUInt32(); - dc.ContStyle = new VE_Font(tmpstyle); - dc.CTMargin = ColToPoints(dc.CTMargin, tmpstyle); - dc.CBMargin = ColToPoints(dc.CBMargin, tmpstyle); - dc.EndFlag = brFmt.ReadInt16(); - dc.EndStyle = LoadVE_Font(); - dc.UseCheckOffs = UseCheckOffsIn(fname.Substring(0, fname.Length - 4), dc.oldtonew); - dc.UseColSByLevel = dc.oldtonew == 5; - - // use the string offsets to read in the strings. - int[] offst = new int[strings]; - for (int j = 0; j < strings; j++) - { - offst[j] = brFmt.ReadInt32(); - } - dc.DocStructStyle = LoadVE_DocStyle(); - if (offst[0] != 0) dc.ContTop = DoReplaceTokens(GetAsciiStringUntilNull(brFmt)); - //else dc.ContTop = null; - // in 16-bit a null setting would prevent the Top Continue Message from printing - // we need to set this to a blank string, else it will be inherited from the BASE format(BASEall.xml) - else dc.ContTop = ""; - if (offst[1] != 0) dc.ContBottom = DoReplaceTokens(GetAsciiStringUntilNull(brFmt)); - else dc.ContBottom = null; - if (offst[2] != 0) dc.EndString = DoReplaceTokens(GetAsciiStringUntilNull(brFmt)); - else dc.EndString = null; - if (dc.EndString == "") - { - dc.EndString = null; - dc.EndFlag = 0; - } - if (offst[3] != 0) dc.FinalMsg = DoReplaceTokens(GetAsciiStringUntilNull(brFmt)); - else dc.FinalMsg = null; - if (dc.ContTop == null && dc.ContBottom == null) dc.ContStyle = null; - if (dc.EndString == null) dc.EndStyle = null; - - dcs[i] = dc; - vnum = brFmt.ReadInt16(); - } - } - if (didNewDocStyle) dcs[newnumdcstyles - 1] = AddDocStyles(fname); - dcstyles.DcStyles = dcs; - brFmt.Close(); - - // Inherit fonts. - DoDSFontInherit(ref dcstyles); - - // Do UseOnFirstPage/UseOnAllbutFirstPage index additions. This was added for 32bit support - // of the document style 'StructureStyle Where = "UseOnFirstPage" or "UseOnAllButFirstPage" - DoUseOnPagesAttribute(ref dcstyles); - - // do Plant specific adjustments - AddPlantSpecific(fname, ref dcstyles); - - // First serialize files based on the above - then use xsl to transform - // into prefered xml. - if (!Directory.Exists("fmt_xml")) Directory.CreateDirectory("fmt_xml"); - if (!Directory.Exists("tmp_fmt_xml")) Directory.CreateDirectory("tmp_fmt_xml"); - XmlSerializer serializer = new XmlSerializer(typeof(DocStyles)); - string lfmtname = fmtName; - int indx = fmtName.IndexOf('.'); - // for subformats, make the name FMT_00 where FMT is format name & 00 is number - // from original name. This will allow the data load to know it's a sub. - if (indx > 0) - lfmtname = fmtName.Substring(0, fmtName.Length - 4) + "_" + fmtName.Substring(fmtName.Length - 2, 2); - string destfile = "tmp_fmt_xml\\" + lfmtname + "d.xml"; - if (File.Exists(destfile)) File.Delete(destfile); - TextWriter writer = new StreamWriter(destfile); - try - { - serializer.Serialize(writer, dcstyles); - writer.Close(); - XslCompiledTransform xsl = FmtFileToXml.getTransform(Application.StartupPath + "\\TranslateDoc.XSL"); - string sResults = "fmt_xml\\" + lfmtname + "d.xml"; - xsl.Transform(destfile, sResults); // Perform Transform - xsl = FmtFileToXml.getTransform(Application.StartupPath + "\\removeFmtUseCO.XSL"); - //xsl.Load(Application.StartupPath + "\\removeempty.XSL"); - string sFormatResults = "fmt_xml\\" + lfmtname + "f.xml"; - string sResults2 = "fmt_xml\\" + lfmtname + "xf.xml"; - xsl.Transform(sFormatResults, sResults2); - File.Delete(sFormatResults); - File.Move(sResults2, sFormatResults); - if (lfmtname == "GEN") - File.Copy(sResults, "fmt_xml\\BASEd.xml"); // Create BASE from GEN format - } - catch (Exception e) - { - Console.WriteLine(e.Message); - writer.Close(); - } - } - - private void DoUseOnPagesAttribute(ref DocStyles docstyles) - { - int indxFirst = -1; - int indxAllButFirst = -1; - for (int i = 0; i < docstyles.DcStyles.Length; i++) - - { - if ((docstyles.DcStyles[i].DocStructStyle.DocStyleUse & E_DocStyleUse.UseOnFirstPage) == E_DocStyleUse.UseOnFirstPage) - indxFirst = docstyles.DcStyles[i].Index; - if ((docstyles.DcStyles[i].DocStructStyle.DocStyleUse & E_DocStyleUse.UseOnAllButFirstPage) == E_DocStyleUse.UseOnAllButFirstPage) - indxAllButFirst = docstyles.DcStyles[i].Index; - } - if (indxFirst != -1 && indxAllButFirst != -1) - { - docstyles.DcStyles[indxFirst].IndexOtherThanFirstPage = (short)indxAllButFirst; - } - } - - private DocStyle AddDocStyles(string fname) - { - DocStyle dc = new DocStyle(); - switch (fname.ToUpper()) - { - case "RGESAM1.DOC": - /* - * - - - - */ - dc.Index = 5; - dc.Name = "Cover Page"; - dc.numberingsequence = 0; - dc.IsStepSection = false; - dc.UseCheckOffs = false; - dc.UseColSByLevel = false; - dc.oldtonew = 544; - dc.CancelSectTitle = false; - dc.SpecialStepsFoldout=false; - dc.UndSpecialStepsFoldout=false; - dc.pagestyle = 3; - dc.TopMargin = 54; - dc.FooterLen = 0; - dc.PageLength = 780; - dc.PageWidth = 540; - dc.LeftMargin = 72; - dc.dstyle = new VE_Font(); - dc.dstyle.FontFamily = "Courier New"; - dc.dstyle.FontSize = "12"; - dc.dstyle.CPI = "10"; - dc.DocStructStyle = new VE_DocStyle(); - dc.DocStructStyle.DocStyleUse = E_DocStyleUse.UseOnAllPages; - break; - default: - break; - } - return dc; - } - - private bool UseCheckOffsIn(string p, int p_2) - { - try - { - XmlDocument xdoc = new XmlDocument(); - string path = "fmt_xml\\" + p + "f.xml"; - if (!File.Exists(path)) return false; - xdoc.Load("fmt_xml\\" + p + "f.xml"); - XmlNode useCO = xdoc.SelectSingleNode("FormatData/ProcData/CheckOffData/@UseCheckOffsIn"); - if (useCO == null) return false; - int iDoc = System.Convert.ToInt32(useCO.Value); - if ((p_2 & iDoc)>0) return true; - } - catch (Exception ex) - { - Console.WriteLine("here"); - } - return false; - } - private void SetupDocStyleFromFmtFlags(ref DocStyle dc, string fmtFileName) - { - int oldToNew = dc.oldtonew; - BinaryReader brFmt = new BinaryReader(File.Open(fmtFileName, System.IO.FileMode.Open, System.IO.FileAccess.ReadWrite, FileShare.ReadWrite)); - int[] tmpshort3 = new int[3]; - ArrayList stringoffsets = new ArrayList(); - byte tmpbyte; - Int16 tmpshort; - string tmpstr; - try - { - tmpshort = brFmt.ReadInt16(); - tmpstr = fmtxml.FmtFileToXml.GetStringUntilNull(brFmt); - for (int i = 0; i < 3; i++) - { - tmpshort = brFmt.ReadInt16(); - tmpstr = fmtxml.FmtFileToXml.GetStringUntilNull(brFmt); - } - - short vnum = brFmt.ReadInt16(); // number of ints, etc. - long posatints = brFmt.BaseStream.Position; - long tstloc = vnum + posatints; - tmpbyte = brFmt.ReadByte(); // FirstChar - Int16[] xtraflag = new Int16[19]; - for (int i = 0; i < 19; i++) - { - xtraflag[i] = brFmt.ReadInt16(); - } - dc.CancelSectTitle = CheckSectType(oldToNew, xtraflag); - dc.SpecialStepsFoldout = GetSpecialStepsFoldout(oldToNew, xtraflag); - dc.UndSpecialStepsFoldout = GetUndSpecialStepsFoldout(oldToNew, xtraflag); - } - catch (Exception exception) - { - Console.WriteLine("Didn't process docstyle"); - } - } - - private bool GetUndSpecialStepsFoldout(int oldToNew, Int16[] flg) - { - if (((oldToNew & (int)E_OldToNewSteps.E2) != 0) && ((flg[10] & fmtxml.FmtFileToXml.UNDSPECIALSTEPSFOLDOUT) > 0)) return true; - return false; - } - - private bool GetSpecialStepsFoldout(int oldToNew, Int16[] flg) - { - if (((oldToNew & (int)E_OldToNewSteps.E2) != 0) && ((flg[7] & fmtxml.FmtFileToXml.SPECIALSTEPSFOLDOUT) > 0)) return true; - return false; - } - private bool CheckSectType(int oldToNew, Int16[] flg) - { - if (((oldToNew & (int)E_OldToNewSteps.S2) != 0) && ((flg[6] & fmtxml.FmtFileToXml.CANCELSECTITLESONS2) > 0)) return true; - if (((oldToNew & (int)E_OldToNewSteps.S1) != 0) && ((flg[7] & fmtxml.FmtFileToXml.CANCELSECTITLESONS1) > 0)) return true; - if (((oldToNew & (int)E_OldToNewSteps.E0) != 0) && ((flg[11] & fmtxml.FmtFileToXml.CANCELSECTITLESONE0) > 0)) return true; - if (((oldToNew & (int)E_OldToNewSteps.E2) != 0) && ((flg[11] & fmtxml.FmtFileToXml.CANCELSECTITLESONE2) > 0)) return true; - return false; - } - - private bool ConvertToSectType(int p) - { - if (((p & (int)E_OldToNewSteps.S0) != 0) || ((p & (int)E_OldToNewSteps.S1) != 0) || ((p & (int)E_OldToNewSteps.S2) != 0) || - ((p & (int)E_OldToNewSteps.E0) != 0) || ((p & (int)E_OldToNewSteps.E1) != 0) || ((p & (int)E_OldToNewSteps.E2) != 0) || - ((p & (int)E_OldToNewSteps.X0) != 0) || ((p & (int)E_OldToNewSteps.X1) != 0) || ((p & (int)E_OldToNewSteps.X2) != 0)) - return true; - return false; - } - private string DoReplaceTokens(string p) - { - if (p == null || p == "") return p; - string wkstr = p; - // use regular expressions to do the following... - - // first see if entire string is line draw type chars, if so, just don't include it. - if (AllDrawChars(wkstr)) return null; - try - { - // replace newline with {par} - wkstr = wkstr.Replace("\n", "{par}"); - - // special change bar token (various cpl formats) - wkstr = wkstr.Replace("\x08\x08\x08\x08\x08\x05", "{CHG_BAR with Backspace Token}"); - - // special change bar token (various gpc formats) - wkstr = wkstr.Replace("\x05", "{CHG_BAR Token}"); - - // backspage - just flag for positioning if needed. - wkstr = wkstr.Replace("\x08", "{Backspace}"); - - //sub on/off - wkstr = wkstr.Replace("\x19\x19", "\x19"); // replace double sub on with single - wkstr = wkstr.Replace("~~", "\x19"); - wkstr = Regex.Replace(wkstr, @"\x19([^\x19\x18 ]*?)(?:[\x19\x18]|(?= )|\Z)(.*?)", @"\dn2$1\up0$2"); - - //super on/off - wkstr = Regex.Replace(wkstr, @"\x18([^\x19\x18 ]*?)(?:[\x19\x18]|(?= )|\Z)(.*?)", @"\up2$1\up0$2"); - - //bold on/off - wkstr = Regex.Replace(wkstr, @"\x01([^\x01 ]*?)(?:[\x01]|(?= )|\Z)(.*?)", @"\b$1\b0$2"); - wkstr = Regex.Replace(wkstr, @"\x13([^\x13\xd6 ]*?)(?:[\x13\xd6]|(?= )|\Z)(.*?)", @"\b$1\b0$2"); - - //underline on/off - //wkstr = Regex.Replace(wkstr, @"\x16([^\x16 ]*?)(?:[\x16]|(?= )|\Z)(.*?)", @"\ul$1\ul0$2"); - wkstr = Regex.Replace(wkstr, @"\x16([^\x16 ]*?)(?:[\x16]|(?= )|\Z)(.*?)", @"\ul $1\ulnone $2"); - - //narrator - //wkstr = Regex.Replace(wkstr, @"\x86([^\x86 ]*?)(?:[\x86]|(?= )|\Z)(.*?)", @"\f{Narrator}$1\f0$2"); - wkstr = Regex.Replace(wkstr, @"\x86([^\x86 ]*?)(?:[\x86]|(?= )|\Z)(.*?)", @"$1$2"); - - // remove hanging indent, vertical tab - wkstr = Regex.Replace(wkstr, @"\x02", @"\NonSupported Hanging Indent (Hex x02)"); - //wkstr = Regex.Replace(wkstr, @"\x0B", @"\NonSupported Vertical Tab (Hex x0b"); - wkstr = Regex.Replace(wkstr, @"\x0B", @""); - - // remove some unknown chars for ano & fpl - these plants are not supported - // as of conversion date. - wkstr = Regex.Replace(wkstr, @"\x95", @"\NonSupported Unknown (Hex x95)"); //ano2vlv - wkstr = Regex.Replace(wkstr, @"\x1bf1", @"\NonSupported Unknown (hex 1b f1)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bf0", @"\NonSupported Unknown (hex 1b f0)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bM1", @"\NonSupported Unknown (hex 1b M1)"); //fpl - wkstr = Regex.Replace(wkstr, @"\x1bM0", @"\NonSupported Unknown (hex 1b M0)"); //fpl - - // ATA page?? - wkstr = Regex.Replace(wkstr, @"\x1b", @"{NonSupported Hex 1b}"); - - // replace the \xff33 13 with {Section Number} - wkstr = Regex.Replace(wkstr, @"\xFF33 13", @"{Section Number}"); - // replace \xff with \xA0, i.e. hardspace - wkstr = Regex.Replace(wkstr, @"\xFF", @"\xA0"); - - // replace x10 & x11 in various ano tabs - not this needs fixed if ANO comes - // back into the program - wkstr = wkstr.Replace("\x10", ""); - wkstr = wkstr.Replace("\x11", ""); - - // replace x15 with {RO} for now. - wkstr = wkstr.Replace("\x15", "{RO}"); - - } - catch (Exception ex) - { - Console.WriteLine("error replacing token (regex) = {0}", ex.Message); - } - - return wkstr; - } - - private bool AllDrawChars(string wkstr) - { - foreach (char c in wkstr) - { - if (c < '\xB3' || c > '\xDF') return false; - } - return true; - } - private bool CompareFonts(VE_Font parFont, ref VE_Font subFont) - { - bool rtval = false; - if (parFont != null && subFont != null) - { - if (parFont.FontFamily == subFont.FontFamily) - { - subFont.FontFamily = null; - rtval = true; - } - if (rtval && parFont.FontSize == subFont.FontSize) - { - subFont.FontSize = null; - } - if (rtval && parFont.FontStyle == subFont.FontStyle) - { - subFont.FontStyle = null; - } - if (rtval && parFont.CPI == subFont.CPI) - { - subFont.CPI = null; - } - } - return rtval; - } - //private void DoPSFontInherit(ref PageStyles pagstyles) - //{ - // for (int i=0; i 0) // we are working with a sub-format - { - parentOfSub = fmtName.Substring(0, fmtName.Length - 4); // name of sub format's parent - lfmtName = fmtName.Substring(0, fmtName.Length - 4) + "_" + fmtName.Substring(fmtName.Length - 2, 2); - getFontFromBase = false; // get the font from sub-format parent format - } - - string parentName = "fmt_xml\\" + parentOfSub + "f.xml"; - // if we have a valid parent format then use it to find the default font - if (!getFontFromBase && File.Exists(parentName)) - { - xdoc.Load(parentName); - xfont = xdoc.SelectSingleNode("FormatData/Font"); - if (xfont != null) - DefBaseFont = new VE_Font(xfont); - else - getFontFromBase = true; // font not found, use the font from base.xml - } - if (getFontFromBase) - { - xdoc.Load("fmt_xml\\basef.xml"); - xfont = xdoc.SelectSingleNode("FormatData/Font"); - DefBaseFont = new VE_Font(xfont); - } - // Get the font from the current plant format (or sub-format) - string fName = "fmt_xml\\" + lfmtName + "f.xml"; - if (!File.Exists(fName)) return false; - xdoc.Load(fName); - xfont = xdoc.SelectSingleNode("FormatData/Font"); - if (xfont != null) DefPlantFont = new VE_Font(xfont); - } - catch (Exception ex) - { - Console.WriteLine(ex.Message); - return false; - } - return true; - } - - } -} diff --git a/PROMS/fmtxml/Form1.cs b/PROMS/fmtxml/Form1.cs deleted file mode 100644 index e8717a57..00000000 --- a/PROMS/fmtxml/Form1.cs +++ /dev/null @@ -1,689 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.IO; - -namespace fmtxml -{ - /// - /// Summary description for Form1. - /// - public class Form1 : System.Windows.Forms.Form - { - private System.Windows.Forms.Button btnCvtPagDoc; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnExit; - private System.Windows.Forms.ListBox listBox1; - private System.Windows.Forms.Button btnCvtGenmac; - private System.Windows.Forms.Button btnCvtXmlToSVG; - //private C1.C1Pdf.C1PdfDocument c1PdfDocument1; - private Button btnCvtFormat; - private Button btnMergeFmtPagDoc; - private Label lblPathFmt; - private Button btnBrowseFmt; - private TextBox tbFmtPath; - private TextBox tbGenmacPath; - private Button btnBrowseGenmac; - private Label lblPathGenmac; - private Label lblResult; - private TextBox tbResultPath; - private Button btnBrowseResult; - private StatusStrip statusStrip1; - private ToolStripStatusLabel tsslStatus; - private Button btnRtfToSvg; - private Button btnWestinghouse; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public Form1() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - if (Directory.Exists(@"c:\16bit\ve-proms\format")) - tbFmtPath.Text = @"c:\16bit\ve-proms\format"; - else if (Directory.Exists(@"c:\16-bit\ve-proms\format")) - tbFmtPath.Text = @"c:\16-bit\ve-proms\format"; - else - MessageBox.Show("Specify Path for format files.", "Cannot find 16 Bit Formats", MessageBoxButtons.OK, MessageBoxIcon.Exclamation); - tbGenmacPath.Text = @"C:\16bit\promsnt\genmac"; - tbResultPath.Text = @"c:\development\"; - // - // TODO: Add any constructor code after InitializeComponent call - // - } - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.btnCvtPagDoc = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.btnExit = new System.Windows.Forms.Button(); - this.listBox1 = new System.Windows.Forms.ListBox(); - this.btnCvtGenmac = new System.Windows.Forms.Button(); - this.btnCvtXmlToSVG = new System.Windows.Forms.Button(); - this.btnCvtFormat = new System.Windows.Forms.Button(); - this.btnMergeFmtPagDoc = new System.Windows.Forms.Button(); - this.lblPathFmt = new System.Windows.Forms.Label(); - this.btnBrowseFmt = new System.Windows.Forms.Button(); - this.tbFmtPath = new System.Windows.Forms.TextBox(); - this.tbGenmacPath = new System.Windows.Forms.TextBox(); - this.btnBrowseGenmac = new System.Windows.Forms.Button(); - this.lblPathGenmac = new System.Windows.Forms.Label(); - this.lblResult = new System.Windows.Forms.Label(); - this.tbResultPath = new System.Windows.Forms.TextBox(); - this.btnBrowseResult = new System.Windows.Forms.Button(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.btnRtfToSvg = new System.Windows.Forms.Button(); - this.btnWestinghouse = new System.Windows.Forms.Button(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // btnCvtPagDoc - // - this.btnCvtPagDoc.Location = new System.Drawing.Point(217, 63); - this.btnCvtPagDoc.Name = "btnCvtPagDoc"; - this.btnCvtPagDoc.Size = new System.Drawing.Size(201, 51); - this.btnCvtPagDoc.TabIndex = 0; - this.btnCvtPagDoc.Text = "Convert Page and Doc Styles in format directory (Step 2)"; - this.btnCvtPagDoc.Click += new System.EventHandler(this.btnCvtPagDoc_Click); - // - // label1 - // - this.label1.Location = new System.Drawing.Point(12, 237); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(200, 18); - this.label1.TabIndex = 1; - this.label1.Text = "Converted:"; - // - // btnExit - // - this.btnExit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnExit.Location = new System.Drawing.Point(560, 224); - this.btnExit.Name = "btnExit"; - this.btnExit.Size = new System.Drawing.Size(63, 28); - this.btnExit.TabIndex = 2; - this.btnExit.Text = "Exit"; - this.btnExit.Click += new System.EventHandler(this.btnExit_Click); - // - // listBox1 - // - this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.listBox1.ItemHeight = 16; - this.listBox1.Location = new System.Drawing.Point(10, 258); - this.listBox1.Name = "listBox1"; - this.listBox1.Size = new System.Drawing.Size(613, 212); - this.listBox1.TabIndex = 3; - // - // btnCvtGenmac - // - this.btnCvtGenmac.Enabled = false; - this.btnCvtGenmac.Location = new System.Drawing.Point(10, 172); - this.btnCvtGenmac.Name = "btnCvtGenmac"; - this.btnCvtGenmac.Size = new System.Drawing.Size(183, 46); - this.btnCvtGenmac.TabIndex = 4; - this.btnCvtGenmac.Text = "Convert genmac files to XML (Genmac Step 1)"; - this.btnCvtGenmac.Click += new System.EventHandler(this.btnCvtGenmac_Click); - // - // btnCvtXmlToSVG - // - this.btnCvtXmlToSVG.Enabled = false; - this.btnCvtXmlToSVG.Location = new System.Drawing.Point(199, 170); - this.btnCvtXmlToSVG.Name = "btnCvtXmlToSVG"; - this.btnCvtXmlToSVG.Size = new System.Drawing.Size(183, 50); - this.btnCvtXmlToSVG.TabIndex = 5; - this.btnCvtXmlToSVG.Text = "Convert Genmac_XML to SVG (Genmac Step 2)"; - this.btnCvtXmlToSVG.Click += new System.EventHandler(this.btnCvtXmlToSVG_Click); - // - // btnCvtFormat - // - this.btnCvtFormat.Location = new System.Drawing.Point(10, 63); - this.btnCvtFormat.Name = "btnCvtFormat"; - this.btnCvtFormat.Size = new System.Drawing.Size(201, 51); - this.btnCvtFormat.TabIndex = 8; - this.btnCvtFormat.Text = "Convert Format in format directory (Step 1)"; - this.btnCvtFormat.UseVisualStyleBackColor = true; - this.btnCvtFormat.Click += new System.EventHandler(this.btnCvtFormat_Click); - // - // btnMergeFmtPagDoc - // - this.btnMergeFmtPagDoc.Location = new System.Drawing.Point(424, 63); - this.btnMergeFmtPagDoc.Name = "btnMergeFmtPagDoc"; - this.btnMergeFmtPagDoc.Size = new System.Drawing.Size(201, 51); - this.btnMergeFmtPagDoc.TabIndex = 9; - this.btnMergeFmtPagDoc.Text = "Integrate Fmt, Doc & Pag to single xml (Step 3)"; - this.btnMergeFmtPagDoc.UseVisualStyleBackColor = true; - this.btnMergeFmtPagDoc.Click += new System.EventHandler(this.btnMergeFmtPagDoc_Click); - // - // lblPathFmt - // - this.lblPathFmt.AutoSize = true; - this.lblPathFmt.Location = new System.Drawing.Point(7, 42); - this.lblPathFmt.Name = "lblPathFmt"; - this.lblPathFmt.Size = new System.Drawing.Size(139, 17); - this.lblPathFmt.TabIndex = 10; - this.lblPathFmt.Text = "Path To Format Files"; - // - // btnBrowseFmt - // - this.btnBrowseFmt.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowseFmt.Location = new System.Drawing.Point(476, 36); - this.btnBrowseFmt.Name = "btnBrowseFmt"; - this.btnBrowseFmt.Size = new System.Drawing.Size(153, 23); - this.btnBrowseFmt.TabIndex = 11; - this.btnBrowseFmt.Text = "Browse (Format)"; - this.btnBrowseFmt.UseVisualStyleBackColor = true; - this.btnBrowseFmt.Click += new System.EventHandler(this.btnBrowseFmt_Click); - // - // tbFmtPath - // - this.tbFmtPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbFmtPath.Location = new System.Drawing.Point(155, 37); - this.tbFmtPath.Name = "tbFmtPath"; - this.tbFmtPath.Size = new System.Drawing.Size(303, 22); - this.tbFmtPath.TabIndex = 12; - // - // tbGenmacPath - // - this.tbGenmacPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbGenmacPath.Enabled = false; - this.tbGenmacPath.Location = new System.Drawing.Point(155, 144); - this.tbGenmacPath.Name = "tbGenmacPath"; - this.tbGenmacPath.Size = new System.Drawing.Size(303, 22); - this.tbGenmacPath.TabIndex = 15; - // - // btnBrowseGenmac - // - this.btnBrowseGenmac.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowseGenmac.Enabled = false; - this.btnBrowseGenmac.Location = new System.Drawing.Point(476, 143); - this.btnBrowseGenmac.Name = "btnBrowseGenmac"; - this.btnBrowseGenmac.Size = new System.Drawing.Size(153, 23); - this.btnBrowseGenmac.TabIndex = 14; - this.btnBrowseGenmac.Text = "Browse (Genmac)"; - this.btnBrowseGenmac.UseVisualStyleBackColor = true; - this.btnBrowseGenmac.Click += new System.EventHandler(this.btnBrowseGenmac_Click); - // - // lblPathGenmac - // - this.lblPathGenmac.AutoSize = true; - this.lblPathGenmac.Enabled = false; - this.lblPathGenmac.Location = new System.Drawing.Point(7, 149); - this.lblPathGenmac.Name = "lblPathGenmac"; - this.lblPathGenmac.Size = new System.Drawing.Size(148, 17); - this.lblPathGenmac.TabIndex = 13; - this.lblPathGenmac.Text = "Path To Genmac Files"; - // - // lblResult - // - this.lblResult.AutoSize = true; - this.lblResult.Location = new System.Drawing.Point(16, 10); - this.lblResult.Name = "lblResult"; - this.lblResult.Size = new System.Drawing.Size(163, 17); - this.lblResult.TabIndex = 16; - this.lblResult.Text = "Path To Result Directory"; - // - // tbResultPath - // - this.tbResultPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbResultPath.Location = new System.Drawing.Point(185, 8); - this.tbResultPath.Name = "tbResultPath"; - this.tbResultPath.Size = new System.Drawing.Size(273, 22); - this.tbResultPath.TabIndex = 17; - // - // btnBrowseResult - // - this.btnBrowseResult.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowseResult.Location = new System.Drawing.Point(476, 3); - this.btnBrowseResult.Name = "btnBrowseResult"; - this.btnBrowseResult.Size = new System.Drawing.Size(153, 24); - this.btnBrowseResult.TabIndex = 18; - this.btnBrowseResult.Text = "Browse (Result)"; - this.btnBrowseResult.UseVisualStyleBackColor = true; - this.btnBrowseResult.Click += new System.EventHandler(this.btnBrowseResult_Click); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 545); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(631, 25); - this.statusStrip1.TabIndex = 19; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(50, 20); - this.tsslStatus.Text = "Ready"; - // - // btnRtfToSvg - // - this.btnRtfToSvg.Location = new System.Drawing.Point(424, 167); - this.btnRtfToSvg.Name = "btnRtfToSvg"; - this.btnRtfToSvg.Size = new System.Drawing.Size(182, 51); - this.btnRtfToSvg.TabIndex = 20; - this.btnRtfToSvg.Text = "Convert Genmac RTF to SVG (GenMac One Step)"; - this.btnRtfToSvg.Click += new System.EventHandler(this.btnRtfToSvg_Click); - // - // btnWestinghouse - // - this.btnWestinghouse.Location = new System.Drawing.Point(387, 224); - this.btnWestinghouse.Name = "btnWestinghouse"; - this.btnWestinghouse.Size = new System.Drawing.Size(164, 26); - this.btnWestinghouse.TabIndex = 21; - this.btnWestinghouse.Text = "Copy New Formats"; - this.btnWestinghouse.UseVisualStyleBackColor = true; - this.btnWestinghouse.Click += new System.EventHandler(this.btnWestinghouse_Click); - // - // Form1 - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(631, 570); - this.Controls.Add(this.btnWestinghouse); - this.Controls.Add(this.btnRtfToSvg); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.btnBrowseResult); - this.Controls.Add(this.tbResultPath); - this.Controls.Add(this.lblResult); - this.Controls.Add(this.tbGenmacPath); - this.Controls.Add(this.btnBrowseGenmac); - this.Controls.Add(this.lblPathGenmac); - this.Controls.Add(this.tbFmtPath); - this.Controls.Add(this.btnBrowseFmt); - this.Controls.Add(this.lblPathFmt); - this.Controls.Add(this.btnMergeFmtPagDoc); - this.Controls.Add(this.btnCvtFormat); - this.Controls.Add(this.btnCvtXmlToSVG); - this.Controls.Add(this.btnCvtGenmac); - this.Controls.Add(this.listBox1); - this.Controls.Add(this.btnExit); - this.Controls.Add(this.label1); - this.Controls.Add(this.btnCvtPagDoc); - this.Name = "Form1"; - this.Text = "Form1"; - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - #endregion - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.Run(new Form1()); - } - private static string[] _ExcludeList = "ANO,ATA,ATLAS,LPL,MYA,NAE,NAI,NAS,PAC,RBN,ROB,SCE,SRS,VP,WPF,YAE".Split(",".ToCharArray()); - public static bool Excluded(FileInfo fi) - { - foreach (string prefix in _ExcludeList) - if (fi.Name.ToUpper().StartsWith(prefix)) return true; - return false; - } - - private void btnCvtPagDoc_Click(object sender, System.EventArgs e) - { - CleanupDestinationFolder("*p.xml"); - CleanupDestinationFolder("*d.xml"); - // get all of the files in the e:\ve-proms\format directory. - DirectoryInfo di = new DirectoryInfo(tbFmtPath.Text); // "C:\\16bit\\ve-proms\\format"); - FileInfo[] fis = di.GetFiles("*.pag"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - if (!Excluded(fi)) - { - string fn = fi.Name.Substring(0, fi.Name.Length - 4); - AddFileToListBox(fi); - FmtToXml fx = new FmtToXml(fn, tbFmtPath.Text); - } - } - fis = di.GetFiles("*.z*"); - foreach (FileInfo fi in fis) - { - if (!Excluded(fi)) - { - AddFileToListBox(fi); - FmtToXml fx = new FmtToXml(fi.Name, tbFmtPath.Text); - } - } - MessageBox.Show("DONE Converting Page and Document Styles to XML"); - } - - private void AddFileToListBox(FileInfo fi) - { - this.listBox1.Items.Add(fi.Name); - this.listBox1.SelectedIndex = this.listBox1.Items.Count - 1; - MyStatus = "Processing " + fi.Name; - Application.DoEvents(); - } - - private void ClearListBox() - { - listBox1.Items.Clear(); - } - - private void btnExit_Click(object sender, System.EventArgs e) - { - Application.Exit(); - } - - private void btnCvtGenmac_Click(object sender, System.EventArgs e) - { - // before doing the genmac change, use cpp -DRTF file after genmac.h - // has been emptied out on files in \promsnt\genmac. This creates - // precompiled files only, i.e. gets rid of some of the junk in the files. - // This conversion is done 1 time. After 32-bit print is done, the xml - // files will be used rather than the genmac. - - DirectoryInfo di = new DirectoryInfo(tbGenmacPath.Text + @"\preproc"); // "C:\\16bit\\promsnt\\genmac\\preproc"); - FileInfo[] fis = di.GetFiles("*.i"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - // results go to e:\\proms.net\\genmac.xml\\convert - if (!Excluded(fi)) - { - AddFileToListBox(fi); - GenToXml gn = new GenToXml(fi.Name, tbGenmacPath.Text, tbResultPath.Text); - } - } - MessageBox.Show("DONE Converting genmacs to XML - Results are in " + tbResultPath.Text + @"\genmacall\convert"); - } - - private void btnCvtXmlToSVG_Click(object sender, System.EventArgs e) - { - // delete current svg's - DirectoryInfo disvg = new DirectoryInfo(tbResultPath.Text + @"\genmacall"); //(@"C:\development\proms.net\genmac.xml"); - FileInfo[] fissvg = disvg.GetFiles("*.svg"); - foreach (FileInfo fi in fissvg)fi.Delete(); - DirectoryInfo di = new DirectoryInfo(tbResultPath.Text + @"\genmacall\convert"); - FileInfo[] fis = di.GetFiles("*.xml"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - // results go to e:\proms.net\genmac.xml - AddFileToListBox(fi); - GenXmlToSvg gn = new GenXmlToSvg(fi.Name, tbResultPath.Text); - } - MessageBox.Show("DONE Converting genmacs.xmls to drawing svg - Results are in " + tbResultPath.Text + @"\genmacall"); - } - - - private void btnCvtFormat_Click(object sender, EventArgs e) - { - CleanupDestinationFolder("*f.xml"); - DateTime tStart = DateTime.Now; - // first convert base format - for now use genfmt. - MyStatus = "Processing Base"; - FmtFileToXml gx = new FmtFileToXml(null, "BASE", "GEN", tbFmtPath.Text); // Create BASE from GEN format - - // get all of the format files in the e:\ve-proms\format directory. - DirectoryInfo di = new DirectoryInfo(tbFmtPath.Text); // "C:\\16bit\\ve-proms\\format"); - //DirectoryInfo di = new DirectoryInfo("E:\\proms.net\\exe\\fmtxml"); - // This excludes Background format files *.BFM which use a different structure - FileInfo[] fis = di.GetFiles("*.fmt"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - if (!Excluded(fi)) - { - string fn = fi.Name.Substring(0, fi.Name.Length - 4); - if (fn.ToLower() != "base") - { - AddFileToListBox(fi); - FmtFileToXml fx = new FmtFileToXml(gx, fn, fn, tbFmtPath.Text); - } - } - } - MyStatus = string.Format("DONE Converting Formats to XML {0:F3} seconds", TimeSpan.FromTicks(DateTime.Now.Ticks - tStart.Ticks).TotalSeconds); - MessageBox.Show("DONE Converting Formats to XML"); - } - - private void CleanupDestinationFolder(string pattern) - { - DirectoryInfo di = new DirectoryInfo("fmt_xml"); - if (di.Exists == false) - di.Create(); - FileInfo[] fis = di.GetFiles(pattern); - foreach (FileInfo fi in fis) fi.Delete(); - } - - private void btnMergeFmtPagDoc_Click(object sender, EventArgs e) - { - ClearResults(tbResultPath.Text); - DateTime tStart = DateTime.Now; - MyStatus = "Merging..."; - // get all of the generated xml format files in the fmt_xml directory and merge - // the fmt/doc/pag & subformats into one file. - DirectoryInfo di = new DirectoryInfo("fmt_xml"); - //testDirectoryInfo di = new DirectoryInfo("E:\\proms.net\\exe\\fmtxml"); - FileInfo[] fis = di.GetFiles("*f.xml"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - // see if all three, format, doc & pag exist - if not, print error, - // if so, process - string docname = "fmt_xml\\" + fi.Name.Substring(0, fi.Name.Length - 5) + "p.xml"; - string pagname = "fmt_xml\\" + fi.Name.Substring(0, fi.Name.Length - 5) + "d.xml"; - if (File.Exists(docname) && File.Exists(pagname)) - { - AddFileToListBox(fi); - EntireFormat ef = new EntireFormat("fmt_xml\\" + fi.Name, tbResultPath.Text); - } - else - Console.WriteLine("For {0}, page or document file does not exist.", fi.Name); - } - MyStatus = string.Format("DONE Merging Formats {0:F3} seconds", TimeSpan.FromTicks(DateTime.Now.Ticks - tStart.Ticks).TotalSeconds); - MessageBox.Show("DONE Merging Formats - Results are in " + tbResultPath.Text + @"fmtall'"); - } - - private void ClearResults(string path) - { - DirectoryInfo di = new DirectoryInfo(path); - if (di.Exists == false) return; - di = di.GetDirectories("fmtall")[0]; - FileInfo[] fis = di.GetFiles("*.xml"); - foreach (FileInfo fi in fis) - { - if (fi.IsReadOnly) fi.IsReadOnly = false; - fi.Delete(); - } - } - private void btnBrowseFmt_Click(object sender, EventArgs e) - { - FolderBrowserDialog fbd = new FolderBrowserDialog(); - - fbd.SelectedPath = tbFmtPath.Text; - if (fbd.ShowDialog() == DialogResult.OK) - if (Directory.Exists(fbd.SelectedPath)) tbFmtPath.Text = fbd.SelectedPath; - } - - private void btnBrowseGenmac_Click(object sender, EventArgs e) - { - FolderBrowserDialog fbd = new FolderBrowserDialog(); - - fbd.SelectedPath = tbFmtPath.Text; - if (fbd.ShowDialog() == DialogResult.OK) - { - if (Directory.Exists(fbd.SelectedPath)) tbGenmacPath.Text = fbd.SelectedPath; - } - } - - private void btnBrowseResult_Click(object sender, EventArgs e) - { - FolderBrowserDialog fbd = new FolderBrowserDialog(); - - fbd.SelectedPath = tbResultPath.Text; - if (fbd.ShowDialog() == DialogResult.OK) - { - if (Directory.Exists(fbd.SelectedPath)) tbResultPath.Text = fbd.SelectedPath + @"\"; - } - } - private void btnRtfToSvg_Click(object sender, EventArgs e) - { - // delete current svg's - DirectoryInfo disvg = new DirectoryInfo(tbResultPath.Text + @"\genmacall"); //(@"C:\development\proms.net\genmac.xml"); - FileInfo[] fissvg = disvg.GetFiles("*.svg"); - foreach (FileInfo fi in fissvg) - { - if (fi.IsReadOnly) fi.IsReadOnly = false; - fi.Delete(); - } - - DirectoryInfo di = new DirectoryInfo(tbFmtPath.Text); - FileInfo[] fis = di.GetFiles("*.rtf"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - if (!Excluded(fi)) - { - - // results go to e:\proms.net\genmac.xml - AddFileToListBox(fi); - RtfToSvg myConvert = new RtfToSvg(fi); - if (myConvert.IsGenMac) - myConvert.Save(tbResultPath.Text + @"genmacall\" + fi.Name.ToLower().Replace(".rtf", ".svg")); - } - } - // The NSPIFG2 file did not exist. Copy over NSPIFG to it. - FileInfo fix = new FileInfo(tbResultPath.Text + @"genmacall\nspifg.svg"); - fix.CopyTo(tbResultPath.Text + @"genmacall\nspifg2.svg"); - MessageBox.Show("DONE converting GenMac RTF files to drawing svg - Results are in " + tbResultPath.Text + @"genmacall"); - } - - private void btnWestinghouse_Click(object sender, EventArgs e) - { - DateTime tStart = DateTime.Now; - CopyFormat("wst1all.xml"); - CopyFormat("wst2all.xml"); - CopyFormat("wstcklall.xml"); - CopyFormat("wstalrall.xml"); - CopyFormat("wstbckall.xml"); - CopyFormat("wstdcsall.xml"); - CopySVG("wst1.svg"); - CopySVG("wst2.svg"); - CopySVG("wstckl.svg"); - CopySVG("wstalr.svg"); - CopySVG("wstbck.svg"); - CopySVG("wstdcs.svg"); - - CopyFormat("fnpnmpall.xml"); - CopySVG("fnpnmp.svg"); - - CopyFormat("hlpfsgall.xml"); - CopySVG("hlpfsg.svg"); - - // Comanche Peak Flex Format - CopyFormat("ComPeakFlexall.xml"); - CopySVG("ComPeakFlex.svg"); - - MyStatus = string.Format("Copied Developed Formats/Genmacs {0:F3} seconds", TimeSpan.FromTicks(DateTime.Now.Ticks - tStart.Ticks).TotalSeconds); - MessageBox.Show("DONE Copy Developed Formats/Genmacs - Results are in " + tbResultPath.Text + @"fmtall' and 'genmacall'"); - } - private void CopyFormat(string fileName) - { - FileInfo fi1 = new FileInfo(Application.StartupPath + "\\" + fileName); - FileInfo fi2 = new FileInfo(@"..\..\" + fileName); - if (fi2.Exists && (!fi1.Exists ||(fi1.Exists && fi2.LastAccessTimeUtc > fi1.LastAccessTimeUtc))) - { - if (fi1.Exists && fi1.IsReadOnly) fi1.IsReadOnly = false; - fi2.CopyTo(fi1.FullName, true); - fi1 = new FileInfo(Application.StartupPath + "\\" + fileName); - } - if (fi1.Exists) - { - FileInfo fio = new FileInfo(tbResultPath.Text + @"fmtall\" + fileName); - if (fio.Exists && fio.IsReadOnly) fio.IsReadOnly = false; - fi1.CopyTo(fio.FullName, true); - } - } - private void CopySVG(string fileName) - { - FileInfo fi1 = new FileInfo(Application.StartupPath + "\\" + fileName); - FileInfo fi2 = new FileInfo(@"..\..\" + fileName); - if (fi2.Exists && (!fi1.Exists || (fi1.Exists && fi2.LastAccessTimeUtc > fi1.LastAccessTimeUtc))) - { - if (fi1.Exists && fi1.IsReadOnly) fi1.IsReadOnly = false; - fi2.CopyTo(fi1.FullName, true); - fi1 = new FileInfo(Application.StartupPath + "\\" + fileName); - } - if (fi1.Exists) - { - FileInfo fio = new FileInfo(tbResultPath.Text + @"genmacall\" + fileName); - if (fio.Exists && fio.IsReadOnly) fio.IsReadOnly = false; - fi1.CopyTo(fio.FullName, true); - } - } - // old code: - //private void button5_Click(object sender, System.EventArgs e) - //{ - - // DirectoryInfo di = new DirectoryInfo("C:\\16bit\\ve-proms.net\\genmac.xml"); - // FileInfo[] fis = di.GetFiles("*.xml"); - // listBox1.Items.Clear(); - // foreach (FileInfo fi in fis) - // { - // this.listBox1.Items.Add(fi.Name); - // //XmlToPdf pdf = new XmlToPdf("C:\\16bit\\ve-proms.net\\genmac.xml",fi.Name); - // } - // MessageBox.Show("DONE generating PDF files from XML"); - //} - - //private void button6_Click(object sender, System.EventArgs e) - //{ - // DirectoryInfo di = new DirectoryInfo("C:\\16bit\\proms.net\\genmac.xml"); - // FileInfo[] fis = di.GetFiles("*.svg"); - // listBox1.Items.Clear(); - // foreach (FileInfo fi in fis) - // { - // this.listBox1.Items.Add(fi.Name); - // //SvgToPdf pdf = new SvgToPdf("C:\\16bit\\proms.net\\genmac.xml", fi.Name); - // } - // MessageBox.Show("DONE generating PDF files from SVG"); - //} - - } -} diff --git a/PROMS/fmtxml/Form1.cs.bak b/PROMS/fmtxml/Form1.cs.bak deleted file mode 100644 index 2df9382d..00000000 --- a/PROMS/fmtxml/Form1.cs.bak +++ /dev/null @@ -1,597 +0,0 @@ -using System; -using System.Drawing; -using System.Collections; -using System.ComponentModel; -using System.Windows.Forms; -using System.Data; -using System.IO; - -namespace fmtxml -{ - /// - /// Summary description for Form1. - /// - public class Form1 : System.Windows.Forms.Form - { - private System.Windows.Forms.Button btnCvtPagDoc; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnExit; - private System.Windows.Forms.ListBox listBox1; - private System.Windows.Forms.Button btnCvtGenmac; - private System.Windows.Forms.Button btnCvtXmlToSVG; - //private C1.C1Pdf.C1PdfDocument c1PdfDocument1; - private Button btnCvtFormat; - private Button btnMergeFmtPagDoc; - private Label lblPathFmt; - private Button btnBrowseFmt; - private TextBox tbFmtPath; - private TextBox tbGenmacPath; - private Button btnBrowseGenmac; - private Label lblPathGenmac; - private Label lblResult; - private TextBox tbResultPath; - private Button btnBrowseResult; - private StatusStrip statusStrip1; - private ToolStripStatusLabel tsslStatus; - private Button btnRtfToSvg; - /// - /// Required designer variable. - /// - private System.ComponentModel.Container components = null; - - public Form1() - { - // - // Required for Windows Form Designer support - // - InitializeComponent(); - tbFmtPath.Text = @"c:\16bit\ve-proms\format"; - tbGenmacPath.Text = @"C:\16bit\promsnt\genmac"; - tbResultPath.Text = @"c:\development\"; - // - // TODO: Add any constructor code after InitializeComponent call - // - } - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - - /// - /// Clean up any resources being used. - /// - protected override void Dispose( bool disposing ) - { - if( disposing ) - { - if (components != null) - { - components.Dispose(); - } - } - base.Dispose( disposing ); - } - - #region Windows Form Designer generated code - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.btnCvtPagDoc = new System.Windows.Forms.Button(); - this.label1 = new System.Windows.Forms.Label(); - this.btnExit = new System.Windows.Forms.Button(); - this.listBox1 = new System.Windows.Forms.ListBox(); - this.btnCvtGenmac = new System.Windows.Forms.Button(); - this.btnCvtXmlToSVG = new System.Windows.Forms.Button(); - this.btnCvtFormat = new System.Windows.Forms.Button(); - this.btnMergeFmtPagDoc = new System.Windows.Forms.Button(); - this.lblPathFmt = new System.Windows.Forms.Label(); - this.btnBrowseFmt = new System.Windows.Forms.Button(); - this.tbFmtPath = new System.Windows.Forms.TextBox(); - this.tbGenmacPath = new System.Windows.Forms.TextBox(); - this.btnBrowseGenmac = new System.Windows.Forms.Button(); - this.lblPathGenmac = new System.Windows.Forms.Label(); - this.lblResult = new System.Windows.Forms.Label(); - this.tbResultPath = new System.Windows.Forms.TextBox(); - this.btnBrowseResult = new System.Windows.Forms.Button(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.btnRtfToSvg = new System.Windows.Forms.Button(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // btnCvtPagDoc - // - this.btnCvtPagDoc.Location = new System.Drawing.Point(217, 63); - this.btnCvtPagDoc.Name = "btnCvtPagDoc"; - this.btnCvtPagDoc.Size = new System.Drawing.Size(201, 51); - this.btnCvtPagDoc.TabIndex = 0; - this.btnCvtPagDoc.Text = "Convert Page and Doc Styles in format directory (Step 2)"; - this.btnCvtPagDoc.Click += new System.EventHandler(this.btnCvtPagDoc_Click); - // - // label1 - // - this.label1.Location = new System.Drawing.Point(12, 237); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(200, 18); - this.label1.TabIndex = 1; - this.label1.Text = "Converted:"; - // - // btnExit - // - this.btnExit.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnExit.Location = new System.Drawing.Point(560, 224); - this.btnExit.Name = "btnExit"; - this.btnExit.Size = new System.Drawing.Size(63, 28); - this.btnExit.TabIndex = 2; - this.btnExit.Text = "Exit"; - this.btnExit.Click += new System.EventHandler(this.btnExit_Click); - // - // listBox1 - // - this.listBox1.Anchor = ((System.Windows.Forms.AnchorStyles)((((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom) - | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.listBox1.ItemHeight = 16; - this.listBox1.Location = new System.Drawing.Point(10, 258); - this.listBox1.Name = "listBox1"; - this.listBox1.Size = new System.Drawing.Size(613, 212); - this.listBox1.TabIndex = 3; - // - // btnCvtGenmac - // - this.btnCvtGenmac.Enabled = false; - this.btnCvtGenmac.Location = new System.Drawing.Point(10, 172); - this.btnCvtGenmac.Name = "btnCvtGenmac"; - this.btnCvtGenmac.Size = new System.Drawing.Size(183, 46); - this.btnCvtGenmac.TabIndex = 4; - this.btnCvtGenmac.Text = "Convert genmac files to XML (Genmac Step 1)"; - this.btnCvtGenmac.Click += new System.EventHandler(this.btnCvtGenmac_Click); - // - // btnCvtXmlToSVG - // - this.btnCvtXmlToSVG.Enabled = false; - this.btnCvtXmlToSVG.Location = new System.Drawing.Point(199, 170); - this.btnCvtXmlToSVG.Name = "btnCvtXmlToSVG"; - this.btnCvtXmlToSVG.Size = new System.Drawing.Size(183, 50); - this.btnCvtXmlToSVG.TabIndex = 5; - this.btnCvtXmlToSVG.Text = "Convert Genmac_XML to SVG (Genmac Step 2)"; - this.btnCvtXmlToSVG.Click += new System.EventHandler(this.btnCvtXmlToSVG_Click); - // - // btnCvtFormat - // - this.btnCvtFormat.Location = new System.Drawing.Point(10, 63); - this.btnCvtFormat.Name = "btnCvtFormat"; - this.btnCvtFormat.Size = new System.Drawing.Size(201, 51); - this.btnCvtFormat.TabIndex = 8; - this.btnCvtFormat.Text = "Convert Format in format directory (Step 1)"; - this.btnCvtFormat.UseVisualStyleBackColor = true; - this.btnCvtFormat.Click += new System.EventHandler(this.btnCvtFormat_Click); - // - // btnMergeFmtPagDoc - // - this.btnMergeFmtPagDoc.Location = new System.Drawing.Point(424, 63); - this.btnMergeFmtPagDoc.Name = "btnMergeFmtPagDoc"; - this.btnMergeFmtPagDoc.Size = new System.Drawing.Size(201, 51); - this.btnMergeFmtPagDoc.TabIndex = 9; - this.btnMergeFmtPagDoc.Text = "Integrate Fmt, Doc & Pag to single xml (Step 3)"; - this.btnMergeFmtPagDoc.UseVisualStyleBackColor = true; - this.btnMergeFmtPagDoc.Click += new System.EventHandler(this.btnMergeFmtPagDoc_Click); - // - // lblPathFmt - // - this.lblPathFmt.AutoSize = true; - this.lblPathFmt.Location = new System.Drawing.Point(7, 42); - this.lblPathFmt.Name = "lblPathFmt"; - this.lblPathFmt.Size = new System.Drawing.Size(139, 17); - this.lblPathFmt.TabIndex = 10; - this.lblPathFmt.Text = "Path To Format Files"; - // - // btnBrowseFmt - // - this.btnBrowseFmt.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowseFmt.Location = new System.Drawing.Point(476, 36); - this.btnBrowseFmt.Name = "btnBrowseFmt"; - this.btnBrowseFmt.Size = new System.Drawing.Size(153, 23); - this.btnBrowseFmt.TabIndex = 11; - this.btnBrowseFmt.Text = "Browse (Format)"; - this.btnBrowseFmt.UseVisualStyleBackColor = true; - this.btnBrowseFmt.Click += new System.EventHandler(this.btnBrowseFmt_Click); - // - // tbFmtPath - // - this.tbFmtPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbFmtPath.Location = new System.Drawing.Point(155, 37); - this.tbFmtPath.Name = "tbFmtPath"; - this.tbFmtPath.Size = new System.Drawing.Size(303, 22); - this.tbFmtPath.TabIndex = 12; - // - // tbGenmacPath - // - this.tbGenmacPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbGenmacPath.Enabled = false; - this.tbGenmacPath.Location = new System.Drawing.Point(155, 144); - this.tbGenmacPath.Name = "tbGenmacPath"; - this.tbGenmacPath.Size = new System.Drawing.Size(303, 22); - this.tbGenmacPath.TabIndex = 15; - // - // btnBrowseGenmac - // - this.btnBrowseGenmac.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowseGenmac.Enabled = false; - this.btnBrowseGenmac.Location = new System.Drawing.Point(476, 143); - this.btnBrowseGenmac.Name = "btnBrowseGenmac"; - this.btnBrowseGenmac.Size = new System.Drawing.Size(153, 23); - this.btnBrowseGenmac.TabIndex = 14; - this.btnBrowseGenmac.Text = "Browse (Genmac)"; - this.btnBrowseGenmac.UseVisualStyleBackColor = true; - this.btnBrowseGenmac.Click += new System.EventHandler(this.btnBrowseGenmac_Click); - // - // lblPathGenmac - // - this.lblPathGenmac.AutoSize = true; - this.lblPathGenmac.Enabled = false; - this.lblPathGenmac.Location = new System.Drawing.Point(7, 149); - this.lblPathGenmac.Name = "lblPathGenmac"; - this.lblPathGenmac.Size = new System.Drawing.Size(148, 17); - this.lblPathGenmac.TabIndex = 13; - this.lblPathGenmac.Text = "Path To Genmac Files"; - // - // lblResult - // - this.lblResult.AutoSize = true; - this.lblResult.Location = new System.Drawing.Point(16, 10); - this.lblResult.Name = "lblResult"; - this.lblResult.Size = new System.Drawing.Size(163, 17); - this.lblResult.TabIndex = 16; - this.lblResult.Text = "Path To Result Directory"; - // - // tbResultPath - // - this.tbResultPath.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbResultPath.Location = new System.Drawing.Point(185, 8); - this.tbResultPath.Name = "tbResultPath"; - this.tbResultPath.Size = new System.Drawing.Size(273, 22); - this.tbResultPath.TabIndex = 17; - // - // btnBrowseResult - // - this.btnBrowseResult.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrowseResult.Location = new System.Drawing.Point(476, 3); - this.btnBrowseResult.Name = "btnBrowseResult"; - this.btnBrowseResult.Size = new System.Drawing.Size(153, 24); - this.btnBrowseResult.TabIndex = 18; - this.btnBrowseResult.Text = "Browse (Result)"; - this.btnBrowseResult.UseVisualStyleBackColor = true; - this.btnBrowseResult.Click += new System.EventHandler(this.btnBrowseResult_Click); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 545); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(631, 25); - this.statusStrip1.TabIndex = 19; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(50, 20); - this.tsslStatus.Text = "Ready"; - // - // btnRtfToSvg - // - this.btnRtfToSvg.Location = new System.Drawing.Point(424, 167); - this.btnRtfToSvg.Name = "btnRtfToSvg"; - this.btnRtfToSvg.Size = new System.Drawing.Size(182, 51); - this.btnRtfToSvg.TabIndex = 20; - this.btnRtfToSvg.Text = "Convert Genmac RTF to SVG (GenMac One Step)"; - this.btnRtfToSvg.Click += new System.EventHandler(this.btnRtfToSvg_Click); - // - // Form1 - // - this.AutoScaleBaseSize = new System.Drawing.Size(6, 15); - this.ClientSize = new System.Drawing.Size(631, 570); - this.Controls.Add(this.btnRtfToSvg); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.btnBrowseResult); - this.Controls.Add(this.tbResultPath); - this.Controls.Add(this.lblResult); - this.Controls.Add(this.tbGenmacPath); - this.Controls.Add(this.btnBrowseGenmac); - this.Controls.Add(this.lblPathGenmac); - this.Controls.Add(this.tbFmtPath); - this.Controls.Add(this.btnBrowseFmt); - this.Controls.Add(this.lblPathFmt); - this.Controls.Add(this.btnMergeFmtPagDoc); - this.Controls.Add(this.btnCvtFormat); - this.Controls.Add(this.btnCvtXmlToSVG); - this.Controls.Add(this.btnCvtGenmac); - this.Controls.Add(this.listBox1); - this.Controls.Add(this.btnExit); - this.Controls.Add(this.label1); - this.Controls.Add(this.btnCvtPagDoc); - this.Name = "Form1"; - this.Text = "Form1"; - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - #endregion - - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.Run(new Form1()); - } - private static string[] _ExcludeList = "ANO,ATA,ATLAS,LPL,MYA,NAE,NAI,NAS,PAC,RBN,SCE,SRS,VP,WPF,YAE".Split(",".ToCharArray()); - public static bool Excluded(FileInfo fi) - { - foreach (string prefix in _ExcludeList) - if (fi.Name.ToUpper().StartsWith(prefix)) return true; - return false; - } - - private void btnCvtPagDoc_Click(object sender, System.EventArgs e) - { - CleanupDestinationFolder("*p.xml"); - CleanupDestinationFolder("*d.xml"); - // get all of the files in the e:\ve-proms\format directory. - DirectoryInfo di = new DirectoryInfo(tbFmtPath.Text); // "C:\\16bit\\ve-proms\\format"); - FileInfo[] fis = di.GetFiles("*.pag"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - if (!Excluded(fi)) - { - string fn = fi.Name.Substring(0, fi.Name.Length - 4); - AddFileToListBox(fi); - FmtToXml fx = new FmtToXml(fn, tbFmtPath.Text); - } - } - fis = di.GetFiles("*.z*"); - foreach (FileInfo fi in fis) - { - if (!Excluded(fi)) - { - AddFileToListBox(fi); - FmtToXml fx = new FmtToXml(fi.Name, tbFmtPath.Text); - } - } - MessageBox.Show("DONE Converting Page and Document Styles to XML"); - } - - private void AddFileToListBox(FileInfo fi) - { - this.listBox1.Items.Add(fi.Name); - this.listBox1.SelectedIndex = this.listBox1.Items.Count - 1; - MyStatus = "Processing " + fi.Name; - Application.DoEvents(); - } - - private void ClearListBox() - { - listBox1.Items.Clear(); - } - - private void btnExit_Click(object sender, System.EventArgs e) - { - Application.Exit(); - } - - private void btnCvtGenmac_Click(object sender, System.EventArgs e) - { - // before doing the genmac change, use cpp -DRTF file after genmac.h - // has been emptied out on files in \promsnt\genmac. This creates - // precompiled files only, i.e. gets rid of some of the junk in the files. - // This conversion is done 1 time. After 32-bit print is done, the xml - // files will be used rather than the genmac. - - DirectoryInfo di = new DirectoryInfo(tbGenmacPath.Text + @"\preproc"); // "C:\\16bit\\promsnt\\genmac\\preproc"); - FileInfo[] fis = di.GetFiles("*.i"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - // results go to e:\\proms.net\\genmac.xml\\convert - if (!Excluded(fi)) - { - AddFileToListBox(fi); - GenToXml gn = new GenToXml(fi.Name, tbGenmacPath.Text, tbResultPath.Text); - } - } - MessageBox.Show("DONE Converting genmacs to XML - Results are in " + tbResultPath.Text + @"\genmacall\convert"); - } - - private void btnCvtXmlToSVG_Click(object sender, System.EventArgs e) - { - // delete current svg's - DirectoryInfo disvg = new DirectoryInfo(tbResultPath.Text + @"\genmacall"); //(@"C:\development\proms.net\genmac.xml"); - FileInfo[] fissvg = disvg.GetFiles("*.svg"); - foreach (FileInfo fi in fissvg)fi.Delete(); - DirectoryInfo di = new DirectoryInfo(tbResultPath.Text + @"\genmacall\convert"); - FileInfo[] fis = di.GetFiles("*.xml"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - // results go to e:\proms.net\genmac.xml - AddFileToListBox(fi); - GenXmlToSvg gn = new GenXmlToSvg(fi.Name, tbResultPath.Text); - } - MessageBox.Show("DONE Converting genmacs.xmls to drawing svg - Results are in " + tbResultPath.Text + @"\genmacall"); - } - - - private void btnCvtFormat_Click(object sender, EventArgs e) - { - CleanupDestinationFolder("*f.xml"); - DateTime tStart = DateTime.Now; - // first convert base format - for now use genfmt. - MyStatus = "Processing Base"; - FmtFileToXml gx = new FmtFileToXml(null, "BASE", "GEN", tbFmtPath.Text); // Create BASE from GEN format - - // get all of the format files in the e:\ve-proms\format directory. - DirectoryInfo di = new DirectoryInfo(tbFmtPath.Text); // "C:\\16bit\\ve-proms\\format"); - //DirectoryInfo di = new DirectoryInfo("E:\\proms.net\\exe\\fmtxml"); - // This excludes Background format files *.BFM which use a different structure - FileInfo[] fis = di.GetFiles("*.fmt"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - if (!Excluded(fi)) - { - string fn = fi.Name.Substring(0, fi.Name.Length - 4); - if (fn.ToLower() != "base") - { - AddFileToListBox(fi); - FmtFileToXml fx = new FmtFileToXml(gx, fn, fn, tbFmtPath.Text); - } - } - } - MyStatus = string.Format("DONE Converting Formats to XML {0:F3} seconds", TimeSpan.FromTicks(DateTime.Now.Ticks - tStart.Ticks).TotalSeconds); - MessageBox.Show("DONE Converting Formats to XML"); - } - - private void CleanupDestinationFolder(string pattern) - { - DirectoryInfo di = new DirectoryInfo("fmt_xml"); - if (di.Exists == false) - di.Create(); - FileInfo[] fis = di.GetFiles(pattern); - foreach (FileInfo fi in fis) fi.Delete(); - } - - private void btnMergeFmtPagDoc_Click(object sender, EventArgs e) - { - ClearResults(tbResultPath.Text); - DateTime tStart = DateTime.Now; - MyStatus = "Merging..."; - // get all of the generated xml format files in the fmt_xml directory and merge - // the fmt/doc/pag & subformats into one file. - DirectoryInfo di = new DirectoryInfo("fmt_xml"); - //testDirectoryInfo di = new DirectoryInfo("E:\\proms.net\\exe\\fmtxml"); - FileInfo[] fis = di.GetFiles("*f.xml"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - // see if all three, format, doc & pag exist - if not, print error, - // if so, process - string docname = "fmt_xml\\" + fi.Name.Substring(0, fi.Name.Length - 5) + "p.xml"; - string pagname = "fmt_xml\\" + fi.Name.Substring(0, fi.Name.Length - 5) + "d.xml"; - if (File.Exists(docname) && File.Exists(pagname)) - { - AddFileToListBox(fi); - EntireFormat ef = new EntireFormat("fmt_xml\\" + fi.Name, tbResultPath.Text); - } - else - Console.WriteLine("For {0}, page or document file does not exist.", fi.Name); - } - MyStatus = string.Format("DONE Merging Formats {0:F3} seconds", TimeSpan.FromTicks(DateTime.Now.Ticks - tStart.Ticks).TotalSeconds); - MessageBox.Show("DONE Merging Formats - Results are in " + tbResultPath.Text + @"fmtall'"); - } - - private void ClearResults(string path) - { - DirectoryInfo di = new DirectoryInfo(path); - if (di.Exists == false) return; - di = di.GetDirectories("fmtall")[0]; - FileInfo[] fis = di.GetFiles("*.xml"); - foreach (FileInfo fi in fis) - fi.Delete(); - } - private void btnBrowseFmt_Click(object sender, EventArgs e) - { - FolderBrowserDialog fbd = new FolderBrowserDialog(); - - fbd.SelectedPath = tbFmtPath.Text; - if (fbd.ShowDialog() == DialogResult.OK) - if (Directory.Exists(fbd.SelectedPath)) tbFmtPath.Text = fbd.SelectedPath; - } - - private void btnBrowseGenmac_Click(object sender, EventArgs e) - { - FolderBrowserDialog fbd = new FolderBrowserDialog(); - - fbd.SelectedPath = tbFmtPath.Text; - if (fbd.ShowDialog() == DialogResult.OK) - { - if (Directory.Exists(fbd.SelectedPath)) tbGenmacPath.Text = fbd.SelectedPath; - } - } - - private void btnBrowseResult_Click(object sender, EventArgs e) - { - FolderBrowserDialog fbd = new FolderBrowserDialog(); - - fbd.SelectedPath = tbResultPath.Text; - if (fbd.ShowDialog() == DialogResult.OK) - { - if (Directory.Exists(fbd.SelectedPath)) tbResultPath.Text = fbd.SelectedPath; - } - } - private void btnRtfToSvg_Click(object sender, EventArgs e) - { - // delete current svg's - DirectoryInfo disvg = new DirectoryInfo(tbResultPath.Text + @"\genmacall"); //(@"C:\development\proms.net\genmac.xml"); - FileInfo[] fissvg = disvg.GetFiles("*.svg"); - foreach (FileInfo fi in fissvg) fi.Delete(); - - DirectoryInfo di = new DirectoryInfo(tbFmtPath.Text); - FileInfo[] fis = di.GetFiles("*.rtf"); - ClearListBox(); - foreach (FileInfo fi in fis) - { - if (!Excluded(fi)) - { - - // results go to e:\proms.net\genmac.xml - AddFileToListBox(fi); - RtfToSvg myConvert = new RtfToSvg(fi); - if (myConvert.IsGenMac) - myConvert.Save(tbResultPath.Text + @"genmacall\" + fi.Name.ToLower().Replace(".rtf", ".svg")); - } - } - MessageBox.Show("DONE converting GenMac RTF files to drawing svg - Results are in " + tbResultPath.Text + @"genmacall"); - } - // old code: - //private void button5_Click(object sender, System.EventArgs e) - //{ - - // DirectoryInfo di = new DirectoryInfo("C:\\16bit\\ve-proms.net\\genmac.xml"); - // FileInfo[] fis = di.GetFiles("*.xml"); - // listBox1.Items.Clear(); - // foreach (FileInfo fi in fis) - // { - // this.listBox1.Items.Add(fi.Name); - // //XmlToPdf pdf = new XmlToPdf("C:\\16bit\\ve-proms.net\\genmac.xml",fi.Name); - // } - // MessageBox.Show("DONE generating PDF files from XML"); - //} - - //private void button6_Click(object sender, System.EventArgs e) - //{ - // DirectoryInfo di = new DirectoryInfo("C:\\16bit\\proms.net\\genmac.xml"); - // FileInfo[] fis = di.GetFiles("*.svg"); - // listBox1.Items.Clear(); - // foreach (FileInfo fi in fis) - // { - // this.listBox1.Items.Add(fi.Name); - // //SvgToPdf pdf = new SvgToPdf("C:\\16bit\\proms.net\\genmac.xml", fi.Name); - // } - // MessageBox.Show("DONE generating PDF files from SVG"); - //} - - } -} diff --git a/PROMS/fmtxml/Form1.resx b/PROMS/fmtxml/Form1.resx deleted file mode 100644 index b9c202bf..00000000 --- a/PROMS/fmtxml/Form1.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/fmtxml/Format To XML.csproj b/PROMS/fmtxml/Format To XML.csproj deleted file mode 100644 index 6385aab5..00000000 --- a/PROMS/fmtxml/Format To XML.csproj +++ /dev/null @@ -1,69 +0,0 @@ - - - Debug - AnyCPU - {68A28293-001C-4726-AA1A-7783E0FA6439} - WinExe - false - Format, Genmac To XML, SVG - Format__Genmac_To_XML__SVG - SAK - SAK - SAK - SAK - - - true - full - false - .\bin\Debug\ - DEBUG;TRACE - - - pdbonly - true - .\bin\Release\ - TRACE - - - - - - - - - - - - - - - - - - - - Form - - - - - - - - - Form1.cs - Designer - - - - - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D} - CvtFont - - - - - - - \ No newline at end of file diff --git a/PROMS/fmtxml/Format To XML.sln b/PROMS/fmtxml/Format To XML.sln deleted file mode 100644 index 1a1e8898..00000000 --- a/PROMS/fmtxml/Format To XML.sln +++ /dev/null @@ -1,37 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Format To XML", "Format To XML.csproj", "{68A28293-001C-4726-AA1A-7783E0FA6439}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CvtFont", "..\Volian.Utils.Library\CvtFont\CvtFont.csproj", "{652EB5F6-18DD-4F22-9C0B-62EB46613C4D}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 2 - SccProjectUniqueName0 = ..\\Volian.Utils.Library\\CvtFont\\CvtFont.csproj - SccProjectName0 = \u0022$/PROMS/Volian.Utils.Library/CvtFont\u0022,\u0020TRDAAAAA - SccLocalPath0 = ..\\Volian.Utils.Library\\CvtFont - SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - SccProjectUniqueName1 = Format\u0020To\u0020XML.csproj - SccProjectName1 = \u0022$/PROMS/fmtxml\u0022,\u0020URDAAAAA - SccLocalPath1 = . - SccProvider1 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {68A28293-001C-4726-AA1A-7783E0FA6439}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {68A28293-001C-4726-AA1A-7783E0FA6439}.Debug|Any CPU.Build.0 = Debug|Any CPU - {68A28293-001C-4726-AA1A-7783E0FA6439}.Release|Any CPU.ActiveCfg = Release|Any CPU - {68A28293-001C-4726-AA1A-7783E0FA6439}.Release|Any CPU.Build.0 = Release|Any CPU - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/fmtxml/GenToXml.cs b/PROMS/fmtxml/GenToXml.cs deleted file mode 100644 index da68c6ca..00000000 --- a/PROMS/fmtxml/GenToXml.cs +++ /dev/null @@ -1,155 +0,0 @@ -using System; -using System.IO; -using System.Text.RegularExpressions; -using System.Windows.Forms; - - - -namespace fmtxml -{ - /// - /// Summary description for GenToXml. - /// - public class GenToXml - { - private StreamWriter strGenXml; - private string genName; - - private string MyPath; - private string MyResPath; - public GenToXml(string nm, string path, string resPath) - { - MyPath = path; - MyResPath = resPath; - genName = nm; - try - { - OpenFiles(); - ConvertGenToXml(); - CloseFiles(); - } - catch (Exception ex) - { - MessageBox.Show("Genmac name = " + nm, ex.Message); - } - } - - public void OpenFiles() - { - if (!Directory.Exists(MyResPath + @"\genmacall\convert")) - Directory.CreateDirectory(MyResPath + @"\genmacall\convert"); - string fnm = MyResPath + @"\genmacall\convert" + @"\" + genName; - string outnm = fnm.Substring(0,fnm.LastIndexOf(".")) + ".xml"; - strGenXml = new StreamWriter(outnm,false,System.Text.Encoding.ASCII); - } - - public void CloseFiles() - { - strGenXml.Close(); - } - - public void ConvertGenToXml() - { - string linein; - try - { - // use regular expressions to read in the genmac C file and convert to XML. - StreamReader sr = new StreamReader(MyPath + @"\preproc\"+genName); - linein = sr.ReadToEnd(); - sr.Close(); - } - catch (Exception e) - { - // Let the user know what went wrong. - MessageBox.Show("File cannot be written " + genName + " error is " + e.Message); - return; - } - if (linein==null)return; - int indxb = linein.IndexOf("BEGIN"); - string line = linein.Substring(indxb,linein.Length-indxb); - linein=null; - // first Find defmac - endmac -> convert these do an element. - Regex defmacs = new Regex(@"DEFMAC(\s*|.*?)*ENDMAC",RegexOptions.IgnoreCase|RegexOptions.Compiled); - Match m; - strGenXml.Write("<" + genName.Substring(0,genName.LastIndexOf(".")) + "_GENMAC>\n"); - for (m = defmacs.Match(line); m.Success; m = m.NextMatch()) - { - strGenXml.Write(""); - string mt = line.Substring(m.Index,m.Length); - //Find the macro name, i.e. DEFMAC(xyz) - int indxend = mt.IndexOf(")"); - string macname = mt.Substring(7,indxend-7); - strGenXml.Write(macname+"\n\n"); - // the '+3' is to remove the \n\r also. The -9 is to account for the +3 & - // also remove the endmac - string macstr = mt.Substring(indxend+3,mt.Length-indxend-9); - // take x chars for the name & put out the name & definition. - string macnocomment = Regex.Replace(macstr, @"(\/\*(\s*|.*?)*\*\/)|(\/\/.*)", ""); - mt = Regex.Replace(macnocomment,";",""); - macnocomment = Regex.Replace(mt,@"\r\n",";"); - mt = Regex.Replace(macnocomment,@";+",";"); // eliminate multiple ';' - macnocomment = mt; - if (mt.IndexOf("&")>-1) - macnocomment = mt.Replace("&","&"); - strGenXml.Write(macnocomment); - strGenXml.Write("\n\n\n"); - } - // next find userdef - endmac -> convert these do an element. - defmacs = new Regex(@"USERDEF(\s*|.*?)*ENDMAC",RegexOptions.IgnoreCase|RegexOptions.Compiled); - for (m = defmacs.Match(line); m.Success; m = m.NextMatch()) - { - strGenXml.Write(""); - string mt = line.Substring(m.Index,m.Length); - //Find the macro name, i.e. USERDEF(xyz) - int indxend = mt.IndexOf(")"); - string macname = mt.Substring(8,indxend-8); - strGenXml.Write(macname+"\n\n\n"); - // the '+3' is to remove the \n\r also. The -9 is to account for the +3 & - // also remove the endmac - string macstr = mt.Substring(indxend+3,mt.Length-indxend-9); - // take x chars for the name & put out the name & definition. - string macnocomment = Regex.Replace(macstr, @"(\/\*(\s*|.*?)*\*\/)|(\/\/.*)", ""); - mt = Regex.Replace(macnocomment,";",""); - macnocomment = Regex.Replace(mt,@"\r\n",";"); - mt = Regex.Replace(macnocomment,@";+",";"); // eliminate multiple ';' - macnocomment = mt; - if (mt.IndexOf("&")>-1) - macnocomment = mt.Replace("&","&"); - strGenXml.Write(macnocomment); - strGenXml.Write("\n\n\n"); - } - // last find static functions - these have macro definitions too. - Regex defmacf = new Regex(@"static void (\s*|.*?)*}",RegexOptions.IgnoreCase|RegexOptions.Compiled); - for (m = defmacf.Match(line); m.Success; m = m.NextMatch()) - { - strGenXml.Write(""); - string mt = line.Substring(m.Index,m.Length); - //Find the function name, i.e. static void boxx. Parameters are on an different node(int i) - int indxbeg= mt.IndexOf("("); - string fnname = mt.Substring(12,indxbeg-12); - strGenXml.Write(fnname+"\n\""); - int indxend=mt.IndexOf(")"); - string param = null; - if (indxend-1==indxbeg) - param = "none"; - else - param = mt.Substring(indxbeg+1,indxend-1-indxbeg); - - strGenXml.Write(param+"\"\n\n"); - // now get past the opening curly. - indxbeg = mt.IndexOf("{"); - string fnstr = mt.Substring(indxbeg+2,mt.Length-indxbeg-3); - string macnocomment = Regex.Replace(fnstr, @"(\/\*(\s*|.*?)*\*\/)|(\/\/.*)", ""); // matches multi/single line comments: (\/\*(\s*|.*?)*\*\/)|(\/\/.*) - mt = Regex.Replace(macnocomment,";",""); - macnocomment = Regex.Replace(mt,@"\r\n",";"); - mt = Regex.Replace(macnocomment,@";+",";"); - if (mt.IndexOf("&")>-1) - mt = mt.Replace("&","&"); - strGenXml.Write(mt); - strGenXml.Write("\n\n\n"); - } - - strGenXml.Write(""); - } - } -} diff --git a/PROMS/fmtxml/GenXmlToSvg.cs b/PROMS/fmtxml/GenXmlToSvg.cs deleted file mode 100644 index 484eebad..00000000 --- a/PROMS/fmtxml/GenXmlToSvg.cs +++ /dev/null @@ -1,809 +0,0 @@ -using System; -using System.IO; -using System.Xml; -using System.Text; -using System.Drawing; -using System.Windows.Forms; - -namespace fmtxml -{ - /// - /// Convert genmac xml files to svg. svg (Scalar Vector Graphics - /// in XML format), so that genmac can be used in the 32-bit proms - /// system. The generated files will be used by developers and - /// customer service persons to do macros. - /// - public class GenXmlToSvg - { - private string genName; - private XmlDocument xmlDoc; - private XmlDocument xmlOutDoc; - private XmlElement topOutElement; - private int Convertn = 300, I = 300, C = 118, D = 1, N = 0; - private float Wid = 3; - private int RTFFontSize = 20; - private int RTFFontFamily = 3; - private string [] FontChoice = - { - "Times New Roman", - "VESymb XXXXXX", - "VolianDraw XXXXXX", - "Prestige Elite Tall", - "Courier New", - "Arial", - "Letter Gothic", - "Times New Roman", - "Letter Gothic Tall", - "Letter Gothic Tall", - "Gothic Ultra", - "VolianScript" - }; - - private string [] OldName = - { - "BOX1", - "BOX2", - "BOX3", - "BOX4", - "BOX5", - "HDR1", - "HDR2", - "HDR3", - "HDR4", - "HDR5", - "BOLDX", - "CNUM", - "CHKBOX", - "CHKBOX2", - "CHKBOX3", - "CHKBOX4", - "CHKBOX5", - "CHKBOX6", - "CHKBOX7", - "CHKBOX8", - "CHKBOX9", - "CHKBOX10", - "CHKBOX11", - "CHKBOX12", - "CHKBOX13", - "CHKBOX14", - "CHKBOX15", - "CHKBOX16", - "CHKBOX17", - "PLNTPLMAC", - "PLNTPLMAC2", - "GRAPHMAC0", - "GRAPHMAC1", - "RIGHTCHECKOFF", - "HPGLCOMMAND0", - "HPGLCOMMAND1", - "HPGLCOMMAND2", - "HPGLCOMMAND3", - "HPGLCOMMAND4", - "HPGLCOMMAND5", - "HPGLCOMMAND6", - "HPGLCOMMAND7", - "HPGLCOMMAND8", - "HPGLCOMMAND9", - "LTCO", - "SECDBLBXVERT", - "BOX6", - "BOX7", - "BOX8", - "ACAS_CHECKBOX", - "ACAS_CHECKLINE", - }; - - private string [] NewName = - { - "B1", - "B2", - "B3", - "B4", - "B5", - "H1", - "H2", - "H3", - "H4", - "H5", - "m33", - "C0", - "C1", - "C2", - "C3", - "C4", - "C5", - "C6", - "C7", - "C8", - "C9", - "C10", - "C11", - "C12", - "C13", - "C14", - "C15", - "C16", - "C17", - "m18", - "m19", - "m20", - "m21", - "C22", - "m23", - "m24", - "m25", - "m26", - "m27", - "m28", - "m29", - "m30", - "m31", - "m32", - "m20", - "m34", - "B6", - "B7", - "B8", - "m35", - "m36", - }; - - private int RTFBUI = 0; - private int Sp = -1; - private float cx = 0; - private float cy = 0; - private int fidx=0; - private int [] fontfam; - private int [] fontsiz; - private float [] PPx; - private float [] PPy; - - // the following define RTFBUI values - private static int BOLD = 0x01; - private static int UNDERLINE = 0x02; - private static int ITALICS = 0x04; - - private string MyResultPath; - - /* - * The following svg group must be added for WCN2 for its box on the cover page: - * - - - - - - - - - */ - public GenXmlToSvg(string nm, string resPath) - { - MyResultPath = resPath; - genName = nm; - try - { - fontfam = new int[20]; - fontsiz = new int[20]; - PPx = new float[12]; - PPy = new float[12]; - ReadXml(); - ConvertGenXmlToDIXml(); - WriteXml(); - } - catch (Exception ex) - { - Console.WriteLine("Genmac.xml name = " + nm + ". Error is " + ex.Message); - } - } - - private float CPoint(float x) - { - if (Convertn == C) - { - // convert from x (in centimeters) to inches & then to points - return (float) (.3937 * x * 72); - } // convert from x (in inches) to points - else if (Convertn == I) - return (float)(x * 72); - else if (Convertn == N) - return (float)x; - else // convert from x (in dots) to twips & then points - return (float)(((4.8 * x + 0.5)/1440f)*72); - } - - private void WriteXml() - { - string path = MyResultPath + @"\genmacall\" + genName.Substring(0, genName.LastIndexOf(".")) + ".svg"; - XmlTextWriter writer = new XmlTextWriter(path,System.Text.Encoding.Unicode); - writer.Formatting=System.Xml.Formatting.Indented; - xmlOutDoc.Save(writer); - } - - private void ReadXml() - { - string fnm = MyResultPath + @"\genmacall\convert\" + genName; - xmlDoc = new XmlDocument(); - XmlTextReader reader = new XmlTextReader(fnm); - xmlDoc.Load(reader); - reader.Close(); - } - private void ConvertGenXmlToDIXml() - { - // first create the document for the svg version of the macro files - // and add the top svg element. - xmlOutDoc = new XmlDocument(); - topOutElement = xmlOutDoc.CreateElement("svg"); - topOutElement.SetAttribute("width","8in"); - topOutElement.SetAttribute("height","10in"); - topOutElement.SetAttribute("viewBox","0 0 576 720"); - // topOutNode.Attributes.Append(attr); - // topOutNode.Attributes.Append - xmlOutDoc.AppendChild(topOutElement); - - // Next add the description node, which is the name of the plant format. - XmlElement descNode = xmlOutDoc.CreateElement("desc"); - descNode.InnerText = genName.Substring(0,genName.LastIndexOf(".")); - topOutElement.AppendChild(descNode); - XmlElement top = (XmlElement) xmlDoc.FirstChild; - XmlNode sv = top.SelectSingleNode("STATICVOID"); - XmlNodeList xmlNds = top.SelectNodes("MACRO"); - - // Now for each macro, create a svg group with the name given to - // it. Later we may change this to map to what was created in 16-bit - // proms (for example BOX1 -> B1) - bool hasC0 = false; - foreach (XmlNode nd in xmlNds) - { - XmlNode name = nd.SelectSingleNode("NAME"); - XmlElement elm = (XmlElement) name; - XmlElement grp = xmlOutDoc.CreateElement("g"); - string cname = GetName(name.InnerText); - if (cname == "CNUM") hasC0 = true; - grp.SetAttribute("id",cname); - topOutElement.AppendChild(grp); - XmlNode definition = nd.SelectSingleNode("DEFINITION"); - try - { - string str = ProcessMacroDefinition(grp,definition,sv); - } - catch (Exception e) - { - MessageBox.Show("Error processing macro definition for " + this.genName, e.Message); - } - } - // if the C0 (circle string) macro didn't exist, add a default. This is done so special code - // does not have to be written to do the circle string in edit/print. - /* Add the C0 macro if not there! - - - - */ - if (!hasC0) - { - int savconvertn = Convertn; - Convertn = 0; // don't convert size - XmlElement grp = xmlOutDoc.CreateElement("g"); - grp.SetAttribute("id", "C0"); - topOutElement.AppendChild(grp); - // these numbers were gotten from hlp backup circle. They may need adjusted - // as genmacs are used! - cx = -76; - cy = -306; - grp.AppendChild(Ellipse(430,450)); - Convertn = savconvertn; - } - - xmlNds = top.SelectNodes("USERDEF"); - - // Now for each user defined macro, create a svg group with the - // name given to it. - foreach (XmlNode nd in xmlNds) - { - XmlNode name = nd.SelectSingleNode("NAME"); - XmlElement elm = (XmlElement) name; - XmlElement grp = xmlOutDoc.CreateElement("g"); - string tmpdebug = name.InnerText.Trim("\n".ToCharArray()); - grp.SetAttribute("id",tmpdebug); - topOutElement.AppendChild(grp); - XmlNode definition = nd.SelectSingleNode("DEFINITION"); - try - { - string str = ProcessMacroDefinition(grp,definition,sv); - } - catch (Exception e) - { - MessageBox.Show("Error processing macro definition for " + this.genName, e.Message); - } - } - - } - - // convert the macro names as was done in 16-bit code? - string GetName(string oname) - { - for (int i=0; i<51 ; i++) - { - if (oname == OldName[i]) return NewName[i]; - } - return "NONAME"; - } - - private void PushFont() - { - if( fidx < 19 ) - { - fontfam[fidx] = RTFFontFamily; - fontsiz[fidx] = RTFFontSize; - fidx++; - } - return; - } - private void PopFont() - { - if( fidx > 0 ) - { - fidx--; - RTFFontFamily = fontfam[fidx]; - RTFFontSize = fontsiz[fidx]; - } - return; - } - private void PushPos() - { - if (Sp < 11) - { - Sp++; - PPx[Sp] = cx; - PPy[Sp] = cy; - } - } - - private void PopPos() - { - if (Sp > -1) - { - cx = PPx[Sp]; - cy = PPy[Sp]; - Sp--; - } - } - - private XmlElement RTFAdjust(float x, float y) - { - // This was used for RTF export only. - return null; - } - private XmlElement GDIAdjust(float x, float y) - { - // can't quite figure out what this is doing - // KBR TODO: gdiadjust - return null; - } - - private float GetOneFloat(string cmd) - { - int indxlp = cmd.IndexOf("("); - int indxrp = cmd.IndexOf(")"); - string tmp = cmd.Substring(indxlp+1,indxrp-indxlp-1); - return (float) Convert.ToDouble(tmp); - } - - private void GetTwoFloats(string cmd, ref float x, ref float y) - { - int indxlp = cmd.IndexOf("("); - int indxcm = cmd.IndexOf(","); - int indxrp = cmd.IndexOfAny("),".ToCharArray(),indxcm+1); - x = (float) Convert.ToDouble(cmd.Substring(indxlp+1,indxcm-indxlp-1)); - y = (float) Convert.ToDouble(cmd.Substring(indxcm+1,indxrp-indxcm-1)); - } - - private XmlElement DefineMacro(string str) - { - byte x = Convert.ToByte(173); - cx=cy=0; - return null; - } - private XmlElement HorizontalLine(float X) - { - XmlElement box = this.xmlOutDoc.CreateElement("line"); - box.SetAttribute("x1",cx.ToString()); - box.SetAttribute("y1",cy.ToString()); - box.SetAttribute("x2",(cx+CPoint(X)).ToString()); - box.SetAttribute("y2",cy.ToString()); - box.SetAttribute("stroke-width",Wid.ToString()); - return box; - } - - private XmlElement VerticalLine(float Y) - { - XmlElement box = this.xmlOutDoc.CreateElement("line"); - box.SetAttribute("x1",cx.ToString()); - box.SetAttribute("y1",cy.ToString()); - box.SetAttribute("x2",cx.ToString()); - box.SetAttribute("y2",(cy+CPoint(Y)).ToString()); - box.SetAttribute("stroke-width",Wid.ToString()); - return box; - } - - private XmlElement DiagLine(float X, float Y) - { - XmlElement box = this.xmlOutDoc.CreateElement("line"); - box.SetAttribute("x1",cx.ToString()); - box.SetAttribute("y1",cy.ToString()); - box.SetAttribute("x2",(cx+CPoint(X)).ToString()); - box.SetAttribute("y2",(cy+CPoint(Y)).ToString()); - box.SetAttribute("stroke-width",Wid.ToString()); - return box; - } - - private XmlElement Box(float X, float Y) - { - XmlElement box = this.xmlOutDoc.CreateElement("rect"); - box.SetAttribute("x",cx.ToString()); - box.SetAttribute("y",cy.ToString()); - box.SetAttribute("width",CPoint(X).ToString()); - box.SetAttribute("height",CPoint(Y).ToString()); - box.SetAttribute("fill","none"); - box.SetAttribute("stroke","black"); - box.SetAttribute("stroke-width",Wid.ToString()); - return box; - } - - private XmlElement Ellipse(float X, float Y) - { - XmlElement ellipse = this.xmlOutDoc.CreateElement("ellipse"); - ellipse.SetAttribute("cx",cx.ToString()); - ellipse.SetAttribute("cy",cy.ToString()); - ellipse.SetAttribute("rx",(CPoint(X)).ToString()); - ellipse.SetAttribute("ry",(CPoint(Y)).ToString()); - ellipse.SetAttribute("fill","none"); - ellipse.SetAttribute("stroke","black"); - ellipse.SetAttribute("stroke-width",Wid.ToString()); - return ellipse; - } - - private XmlElement Text(float X, float Y, string str) - { - //text-decoration="underline" - //font-weight="bold" - //font-style="italic" - XmlElement text = this.xmlOutDoc.CreateElement("text"); - text.SetAttribute("x",(cx+CPoint(X)).ToString()); - text.SetAttribute("y",(cy+CPoint(Y)).ToString()); - text.SetAttribute("font-family",FontChoice[RTFFontFamily]); - text.SetAttribute("font-size",(RTFFontSize/2).ToString()); - if ((RTFBUI&BOLD)==1) text.SetAttribute("font-weight","bold"); - if ((RTFBUI&UNDERLINE)==1) text.SetAttribute("text-decoration", "underline"); - if ((RTFBUI&ITALICS)==1) text.SetAttribute("font-style","italic"); - text.InnerText = str; - return text; - } - - private XmlElement[] RTFBox3(float x, float y) - { - XmlElement[] elearr = new XmlElement[3]; - PushPos(); - elearr[0] = VerticalLine(y); - cy += CPoint(y); - elearr[1] = HorizontalLine(x); - cx += CPoint(x); - float ftmp = (float) (y*-1.0); - cy += CPoint(ftmp); - elearr[2] = VerticalLine(y); - PopPos(); - return elearr; - } - - private XmlElement BitMap(float X, float Y, string str) - { - XmlElement bmap = xmlOutDoc.CreateElement("image"); - bmap.SetAttribute("x",(cx+CPoint(X)).ToString()); - bmap.SetAttribute("y",(cy+CPoint(Y)).ToString()); - Bitmap bmp= new Bitmap(str); - bmap.SetAttribute("width",bmp.Width.ToString()+"px"); - bmap.SetAttribute("height",bmp.Height.ToString()+"px"); - bmap.SetAttribute("xlink:href", str); - //bmap.SetAttribute("href", str); - return bmap; - } - - private void GetFont(string fontexp) - { - if (fontexp==null||fontexp=="") - { - RTFFontFamily = 3; - RTFFontSize = 20; - } - else if (fontexp.IndexOf("PICA")>-1) - { - RTFFontFamily = 4; - RTFFontSize = 24; - } - else if (fontexp.IndexOf("EXPANDED")>-1) - { - RTFFontSize = 24; - } - else if(fontexp.IndexOf("SANSERIF")>-1) - { - RTFFontFamily = 6; - RTFFontSize = 20; - } - else if (fontexp.IndexOf("PROPT12")>-1) - { - RTFFontFamily = 5; - RTFFontSize = 22; - } - else if (fontexp.IndexOf("COMPRESSED")>-1) - { - RTFFontFamily = 6; - RTFFontSize = 14; - } - if (fontexp.IndexOf("BOLD")>-1) RTFBUI |= BOLD; else RTFBUI &= 0xFFFE; - if (fontexp.IndexOf("UNDERLINE")>-1) RTFBUI |= UNDERLINE; else RTFBUI &= 0xFFFD; - if (fontexp.IndexOf("ITALICS")>-1) RTFBUI |= ITALICS; else RTFBUI &= 0xFFFB; - } - - private string ProcessMacroDefinition(XmlElement grp, XmlNode idef, XmlNode functions) - { - XmlElement elm = (XmlElement) idef; - string def = elm.InnerText; - StringBuilder str_result = new StringBuilder(); - - fidx=0; - cx = 0; - cy = 0; - Wid = 3; - RTFFontSize = 20; - RTFFontFamily = 3; - Sp = -1; - - // for each element, process the token for the element and add it to the - // xml tree (ProcessToken does both). - int lindx = 0; - int indx = def.IndexOf(";"); - while (indx>-1) - { - ProcessToken(grp, def, lindx, indx, functions); - lindx = indx+1; - indx = def.IndexOf(";",lindx); - } - return str_result.ToString(); - } - - private void ProcessToken(XmlElement grp, string def, int lindx, int indx, XmlNode functions) - { - - float x=0,y=0; - XmlElement retval = null; - //get the token, i.e. from last index to this one. - string token = def.Substring(lindx,indx-lindx).Trim(); - if (token==null||token=="")return; - string cmd = token; // cmd has the command without parens/values - if (token.IndexOf("(")>-1) cmd = token.Substring(0,token.IndexOf("(")); - if (token.IndexOf("RTFFontSize")>-1)cmd = "RTFFontSize"; - if (token.IndexOf("RTFFontFamily")>-1)cmd = "RTFFontFamily"; - if (token.IndexOf("RTFBUI")>-1) cmd = "RTFBUI"; - if (token.IndexOf("DEFMAC")>-1) cmd = "DEFMAC"; - if (token.IndexOf("HLINE")>-1) cmd = "HLINE"; - if (token.IndexOf("TEXT")>-1) cmd = "TEXT"; - if (token.IndexOf("BITMAP")>-1) cmd = "BITMAP"; - if (cmd==null)return; - try - { - switch (cmd) - { - case "DEFMAC": // command is DEFMAC(xyz) - MessageBox.Show("DEFMAC found, format = " + genName + " not converted - do manually"); - int indxl = token.IndexOf("("); - int indxr = token.IndexOf(")"); - string strx = token.Substring(indxl+1,indxr-indxl-1).Trim(); - retval = DefineMacro(strx); - break; - case "PUSHF": - PushFont(); - break; - case "POPF": - PopFont(); - break; - case "PUSHP": - PushPos(); - break; - case "POPP": - PopPos(); - break; - case "UNIT": - if (token.IndexOf("C")>-1)Convertn = C; - else if (token.IndexOf("I",4)>-1)Convertn = I; - else if (token.IndexOf("D")>-1)Convertn = D; - break; - case "RTFADJ": // command is RTFADJ(x,y) - GetTwoFloats(token, ref x, ref y); - retval = RTFAdjust(x, y); - break; - case "GDIADJ": // command is GDIADJ(x,y) - GetTwoFloats(token, ref x, ref y); - retval = GDIAdjust(x, y); - break; - case "FONT": //comand is FONT(FONTSTR) - GetFont(token); - break; - case "RTFFontSize": // command is RTFFontSize = x - int indxe = token.IndexOf("="); - string numstr = token.Substring(indxe+1,token.Length-indxe-1).Trim(); - if (numstr.IndexOf("*")>-1) - { - int i1 = Convert.ToInt32(numstr.Substring(0,numstr.IndexOf("*"))); - int i2 = Convert.ToInt32(numstr.Substring(numstr.IndexOf("*")+1,numstr.Length-numstr.IndexOf("*")-1)); - RTFFontSize = i1*i2; - } - else - RTFFontSize = Convert.ToInt32(numstr); - break; - case "RTFBUI": - // command either sets it '=' or ORs it '|= ', look for these. - int ieq = token.IndexOf("="); - string val = token.Substring(ieq+1,token.Length-ieq-1).Trim(); - int amt=0; - if (token.IndexOf("0x")<0) - amt = Convert.ToInt32(val); - else - amt = Convert.ToInt32(val,16); - int operor = token.IndexOf("|="); - int operand = token.IndexOf("&="); - if (operor<0 && operand<0) - RTFBUI = amt; - else if (operor>0) - RTFBUI |= amt; - else - RTFBUI &= amt; - break; - case "RTFFontFamily": // command is RTFFontFamily = x - indxe = token.IndexOf("="); - numstr = token.Substring(indxe+1,token.Length-indxe-1).Trim(); - RTFFontFamily = Convert.ToInt32(numstr); - break; - case "LNWID": // command is LNWID(w) - float w = GetOneFloat(token); - Wid = CPoint(w); - break; - case "MOVA": // command is MOVA(x, y) - GetTwoFloats(token,ref x, ref y); - cx = CPoint(x); - cy = CPoint(y); - break; - case "MOVR": // command is MOVR(x, y) - GetTwoFloats(token,ref x, ref y); - cx += CPoint(x); - cy += CPoint(y); - break; - case "HLINE": // command is HLINE(x) - x = GetOneFloat(token); - grp.AppendChild(HorizontalLine(x)); - break; - case "VLINE": // command is VLINE(y) - y = GetOneFloat(token); - grp.AppendChild(VerticalLine(y)); - break; - case "DLINE": // command is DLINE(x, y) - GetTwoFloats(token, ref x, ref y); - grp.AppendChild(DiagLine(x, y)); - break; - case "BOX": // command is BOX(x, y) - GetTwoFloats(token,ref x, ref y); - grp.AppendChild(Box(x,y)); - break; - case "BOX3SIDES": // command is BOX3SIDES(X,Y) - GetTwoFloats(token, ref x, ref y); - XmlElement [] bxsd = new XmlElement[3]; - bxsd = RTFBox3(x, y); - for (int ib = 0;ib < 3; ib++) grp.AppendChild(bxsd[ib]); - break; - case "DBOX": // * DBOX(X,Y,A) DoubleBox((double)X,(double)Y,(double)A); - MessageBox.Show("Not supported - ANO only"); - break; - case "CIRCLE": // command is CIRCLE(X,Y) - GetTwoFloats(token, ref x, ref y); - grp.AppendChild(Ellipse(x,y)); - break; - case "TEXT": // command is TEXT(x, y, str) - GetTwoFloats(token,ref x, ref y); - int indxrp = token.IndexOf(","); - indxrp = token.IndexOf(",",indxrp+1); - // this found the last argument, i.e. text - now find the " - indxrp = token.IndexOf("\"",indxrp+1); - string str = token.Substring(indxrp+1,token.LastIndexOf("\"")-indxrp-1); - // only trim if has characters? -// if (str!=null)str = str.Trim(); - if (str!=null && str!="") grp.AppendChild(Text(x, y, str)); - break; - case "BITMAP": - int ibm = token.IndexOf("BITMAP"); - int ibmq = token.IndexOf("\"",ibm); - string thestr = token.Substring(ibm,ibmq-ibm); - string [] bmap = thestr.Split(" ".ToCharArray(),4); - x=(float)Convert.ToDouble(bmap[1]); - y=(float)Convert.ToDouble(bmap[2]); - thestr=bmap[3]; - if (thestr.IndexOf("~FORMAT\\")>-1) thestr=thestr.Replace("~FORMAT","E:\\VE-PROMS\\FORMAT"); - grp.AppendChild(BitMap(x,y,thestr)); - break; - case "ABSOLUTE": // no-op ? - break; - default: // function calls - // see if in the STATICVOID list. The name is the function name - // without () or parameters... - - XmlNode parent = functions.ParentNode; - XmlNode foundsv = parent.SelectSingleNode("STATICVOID[NAME = \""+cmd+"\"]"); - if (foundsv==null) - Console.WriteLine("Name " + genName + " failed. The token is not in list, token = " +token); - else - { - XmlNode param = foundsv.SelectSingleNode("PARAMETERS"); - XmlNode deffn = foundsv.SelectSingleNode("DEFINITION"); - // get the argument value to pass in. - int ilp = token.IndexOf("("); - int irp = token.IndexOf(")"); - string aval=null; - if (ilp>0&&irp>0) aval = token.Substring(ilp+1,irp-ilp-1); - ProcessFunctions(grp, param.InnerText,functions, aval, deffn.InnerText); - } - break; - } - } - catch (Exception e) - { - Console.WriteLine("Name = " + genName + ". Error in token: " + token, e.Message); - retval = null; - } - return; - } - - private void ProcessFunctions(XmlElement grp, string param, XmlNode functions, string val, string fntext) - { - // Each function contains a series of commands that must be processed for the - // function. Results are added to the group element for this group (macro). - - string repstr=null; - // if there is a parameter, get the substitution string... - if (param.IndexOf("none")==-1) - { - int chrindx = param.IndexOf("char *"); - int end = -1; - if (chrindx>-1) - { - end = param.IndexOf("\"",chrindx); - repstr = param.Substring(chrindx+6,end-chrindx-6); - } - else - { - chrindx = param.IndexOf("int "); - if (chrindx>-1) - { - end = param.IndexOf("\"",chrindx); - repstr = param.Substring(chrindx+4,end-chrindx-4); - } - } - - } - - // find the function commands and include them here. - - string funstr = fntext; - if (repstr!=null)funstr = funstr.Replace(repstr,val); - // for each element, process commands. - int lindx = 0; - int indx = funstr.IndexOf(";"); - while (indx>-1) - { - - ProcessToken(grp, funstr, lindx, indx, functions); - lindx = indx+1; - indx = funstr.IndexOf(";",lindx); - } - } - } -} diff --git a/PROMS/fmtxml/HLPFSGall.xml b/PROMS/fmtxml/HLPFSGall.xml deleted file mode 100644 index 1ed89dae..00000000 Binary files a/PROMS/fmtxml/HLPFSGall.xml and /dev/null differ diff --git a/PROMS/fmtxml/PSI.cs b/PROMS/fmtxml/PSI.cs deleted file mode 100644 index 0f8d4c0e..00000000 --- a/PROMS/fmtxml/PSI.cs +++ /dev/null @@ -1,210 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Xml; -using System.Text.RegularExpressions; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private bool _DoingFields = false; - private int NumBoxes = 0; - private int NumTexts = 0; - private int NumFields = 0; - private int CountForLists = 0; - private Regex removeComment = new Regex("/[*].*?[*]/"); - private Regex removeComment1 = new Regex("/[*].*?$"); - private Regex removeComment2 = new Regex("[*]/"); - private string RemoveComments(string inStr) - { - string str = removeComment.Replace(inStr, ""); - str = removeComment1.Replace(str, ""); - str = removeComment2.Replace(str, ""); - return str.Trim(); - } - public void PsiIniToXml(ref FormatData fmtdata, string path) - { - string sLine; - - StreamReader myReader = new StreamReader(path);// Open file - while ((sLine = myReader.ReadLine()) != null)// read line-by-line - { - try - { - if (sLine.Length > 0) - { - switch (sLine.Substring(0, 1)) - { - case "[": - if (sLine.Contains("[OBJECT COUNT]")) - { - // read in the count of objects - these may not be in order, fix this: - sLine = myReader.ReadLine(); - while(sLine.StartsWith(";")) sLine = myReader.ReadLine(); // Skip Comments - int indx = sLine.IndexOf("="); - string tmp = sLine.Substring(indx + 1, sLine.Length - indx - 1); - if (sLine.Contains("BOXES")) - NumBoxes = tmp == "" ? 1 : Convert.ToInt32(RemoveComments(tmp)) + 1; - else if (sLine.Contains("TEXT")) - NumTexts = tmp == "" ? 1 : Convert.ToInt32(RemoveComments(tmp)) + 1; - else if (sLine.Contains("FIELDS")) - NumFields = tmp == "" ? 1 : Convert.ToInt32(RemoveComments(tmp)) + 1; - sLine = myReader.ReadLine(); - while (sLine.StartsWith(";")) sLine = myReader.ReadLine(); // Skip Comments - indx = sLine.IndexOf("="); - tmp = sLine.Substring(indx + 1, sLine.Length -indx - 1); - if (sLine.Contains("BOXES")) - NumBoxes = tmp == "" ? 1 : Convert.ToInt32(RemoveComments(tmp)) + 1; - else if (sLine.Contains("TEXT")) - NumTexts = tmp == "" ? 1 : Convert.ToInt32(RemoveComments(tmp)) + 1; - else if (sLine.Contains("FIELDS")) - NumFields = tmp == "" ? 1 : Convert.ToInt32(RemoveComments(tmp)) + 1; - sLine = myReader.ReadLine(); - while (sLine.StartsWith(";")) sLine = myReader.ReadLine(); // Skip Comments - indx = sLine.IndexOf("="); - tmp = sLine.Substring(indx + 1, sLine.Length -indx - 1); - if (sLine.Contains("BOXES")) - NumBoxes = tmp == "" ? 1 : Convert.ToInt32(RemoveComments(tmp)) + 1; - else if (sLine.Contains("TEXT")) - NumTexts = tmp == "" ? 1 : Convert.ToInt32(RemoveComments(tmp)) + 1; - else if (sLine.Contains("FIELDS")) - NumFields = tmp == "" ? 1 : Convert.ToInt32(RemoveComments(tmp)) + 1; - if (NumBoxes == 0) NumBoxes++; - if (NumTexts == 0) NumTexts++; - if (NumFields == 0) NumFields++; - fmtdata.ProcData.Psi.Boxes = new PsiBox[NumBoxes]; - fmtdata.ProcData.Psi.Labels = new PsiLabel[NumTexts]; - fmtdata.ProcData.Psi.Fields = new PsiField[NumFields]; - break; - } - if (sLine.Contains("[DIALOG]") || sLine.Contains("[BOXES]") || sLine.Contains("[TEXT]") || sLine.Contains("[FIELDS]")) - { - _DoingFields = sLine.Contains("[FIELDS]"); - CountForLists = 0; - break; - } - break; - case ";": - break; - case "/": - if (sLine[1] == '*') break; // if it isn't a comment, fall thru to the default. - if (sLine.IndexOf("=") >= 0) - { - AddParam(ref fmtdata, RemoveComments(sLine)); - } - break; - default: - if (sLine.IndexOf("=") >= 0) - { - AddParam(ref fmtdata, RemoveComments(sLine)); - } - break; - } - } - } - catch (Exception ex) - { - Console.WriteLine(string.Format("error parsing .INI file: {0}, message: {1}", path, ex.Message)); - } - } - myReader.Close(); - } - private Regex findBOX = new Regex("^BOX[0-9]+$"); - private Regex findSIZE = new Regex("^SIZE$"); - private Regex findFONT = new Regex("^FONT$"); - private Regex findCAPTION = new Regex("^CAPTION$"); - private Regex findBUTTONSONBOTTOM = new Regex("^BUTTONSONBOTTOM$"); - private Regex findTEXT = new Regex("^TEXT[0-9]+$"); - private void AddParam(ref FormatData fmtdata, string sParam) - { - int i = sParam.IndexOf("="); - string attrname = sParam.Substring(0, i); - if (findSIZE.IsMatch(attrname)) - { - int end = (sParam.IndexOf(";") > -1) ? sParam.IndexOf(";") : sParam.Length; - string sb = sParam.Substring(i + 1, end - i - 1); - string[] split = sb.Split(new char[] { ',' }); - fmtdata.ProcData.Psi.x = Convert.ToInt32(split[0].Trim()); - fmtdata.ProcData.Psi.y = Convert.ToInt32(split[1].Trim()); - return; - } - if (findFONT.IsMatch(attrname)) - { - int end = (sParam.IndexOf(";") > -1) ? sParam.IndexOf(";") : sParam.Length; - string sb = sParam.Substring(i + 1, end - i - 1); - string[] split = sb.Split(new char[] { ',' }); - fmtdata.ProcData.Psi.font = split[0].Trim(); - return; - } - if (findCAPTION.IsMatch(attrname)) - { - int end = (sParam.IndexOf(";") > -1) ? sParam.IndexOf(";") : sParam.Length; - fmtdata.ProcData.Psi.Caption = sParam.Substring(i + 1, end-i-1).Replace("\"",""); - return; - } - if (findBUTTONSONBOTTOM.IsMatch(attrname)) - { - int end = (sParam.IndexOf(";") > -1) ? sParam.IndexOf(";") : sParam.Length; - fmtdata.ProcData.Psi.ButtonsOnBottom = sParam.Substring(i + 1, end - i - 1); - return; - } - if (findBOX.IsMatch(attrname)) // attrname.StartsWith("BOX")) - { - // - int end = (sParam.IndexOf(";") > -1) ? sParam.IndexOf(";") : sParam.Length; - string sb = sParam.Substring(i + 1, end - i - 1); - string[] split = sb.Split(new char[] { ',' }); - if (CountForLists <= NumBoxes - 1) - { - fmtdata.ProcData.Psi.Boxes[CountForLists].style = split[0].Trim(); - fmtdata.ProcData.Psi.Boxes[CountForLists].x = Convert.ToInt32(split[1].Trim()); - fmtdata.ProcData.Psi.Boxes[CountForLists].y = Convert.ToInt32(split[2].Trim()); - fmtdata.ProcData.Psi.Boxes[CountForLists].width = Convert.ToInt32(split[3].Trim()); - fmtdata.ProcData.Psi.Boxes[CountForLists].height = Convert.ToInt32(split[4].Trim()); - } - CountForLists++; - return; - } - if (findTEXT.IsMatch(attrname)) - { - // - int end = (sParam.IndexOf(";") > -1) ? sParam.IndexOf(";") : sParam.Length; - string sb = sParam.Substring(i + 1, end - i - 1); - string[] split = sb.Split(new char[] { ',' }); - fmtdata.ProcData.Psi.Labels[CountForLists].text = split[0].Trim(); - fmtdata.ProcData.Psi.Labels[CountForLists].Justify = split[1].Trim(); - fmtdata.ProcData.Psi.Labels[CountForLists].x = Convert.ToInt32(split[2].Trim()); - fmtdata.ProcData.Psi.Labels[CountForLists].y = Convert.ToInt32(split[3].Trim()); - fmtdata.ProcData.Psi.Labels[CountForLists].width = Convert.ToInt32(split[4].Trim()); - fmtdata.ProcData.Psi.Labels[CountForLists].height = Convert.ToInt32(split[5].Trim()); - CountForLists++; - return; - } - if (_DoingFields) - { - // - // - - int end = (sParam.IndexOf(";") > -1) ? sParam.IndexOf(";") : sParam.Length; - string sb = sParam.Substring(i + 1, end - i - 1); - string[] split = sb.Split(new char[] { ',' }); - // first check whether it is a text field or a logical (checkbox) field: - fmtdata.ProcData.Psi.Fields[CountForLists].name = attrname; - fmtdata.ProcData.Psi.Fields[CountForLists].type = split[0].Trim(); - string typ = fmtdata.ProcData.Psi.Fields[CountForLists].type; - fmtdata.ProcData.Psi.Fields[CountForLists].text = split[1] == null ? null : split[1].Trim(); - if (typ.ToUpper() == "TEXT") - fmtdata.ProcData.Psi.Fields[CountForLists].Length = Convert.ToInt32(split[2].Trim()); - else - fmtdata.ProcData.Psi.Fields[CountForLists].Length = 0; - fmtdata.ProcData.Psi.Fields[CountForLists].x = Convert.ToInt32(split[3].Trim()); - fmtdata.ProcData.Psi.Fields[CountForLists].y = Convert.ToInt32(split[4].Trim()); - fmtdata.ProcData.Psi.Fields[CountForLists].width = Convert.ToInt32(split[5].Trim()); - fmtdata.ProcData.Psi.Fields[CountForLists].height = Convert.ToInt32(split[6].Trim()); - CountForLists++; - } - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_ByrBwd.cs b/PROMS/fmtxml/PlantSpecific_ByrBwd.cs deleted file mode 100644 index 13afb456..00000000 --- a/PROMS/fmtxml/PlantSpecific_ByrBwd.cs +++ /dev/null @@ -1,221 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddCWEfmt(ref FormatData fmtdata) - { - fmtdata.ProcData.CheckOffData.SkipSpaces = "True"; - fmtdata.ProcData.CheckOffData.CheckOffList[2].Macro = "C3"; - fmtdata.ProcData.CheckOffData.CheckoffOnSubStepsOnly = "True"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "475.2,252.2,144"; - fmtdata.SectData.ReplaceStrData[3].Flag = "RNO, Caution, Note, Table, Substep, Attach"; - fmtdata.SectData.ReplaceStrData[4].Flag = "RNO, Caution, Note, Table, Substep, Attach"; - fmtdata.StepData[9].TabData.Ident = " {!C2}{numeric} "; - fmtdata.StepData[9].TabData.RNOIdent = " {!C2}{numeric} "; - fmtdata.BoxData[2].TabPos = 265F; - fmtdata.BoxData[2].Start = 128F; - fmtdata.BoxData[2].End = 420F; - fmtdata.BoxData[2].TxtStart = 151F; - fmtdata.BoxData[2].TxtWidth = 254F; - fmtdata.BoxData[1].TabPos = 265F; - fmtdata.BoxData[1].Start = 128F; - fmtdata.BoxData[1].End = 420F; - fmtdata.BoxData[1].TxtStart = 151F; - fmtdata.BoxData[1].TxtWidth = 254F; - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = "212,212"; - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAdj = "-40"; - fmtdata.StepData[6].StepLayoutData.EveryNLines = "-99"; - fmtdata.StepData[7].StepLayoutData.EveryNLines = "-99"; - // Transitions - fmtdata.TransData.TransTypeData[4].TransFormat = "{Sect Hdr}, Step {First Step}"; - fmtdata.TransData.TransTypeData[4].TransMenu = "{Sect Hdr}, Step {First Step}"; - } - private void AddCWE00fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "489,229.2,144"; - fmtdata.StepData[2].TabData.Ident = "{ALPHA}. "; - fmtdata.StepData[1].TabData.Ident = "{alpha}) "; - fmtdata.SectData.StepSectionData.StpSectLayData.BoxLeftAdj = "-43.2"; - fmtdata.StepData[6].StepLayoutData.EveryNLines = "-99"; - fmtdata.StepData[7].StepLayoutData.EveryNLines = "-99"; - } - private void AddEXCLNfmt(ref FormatData fmtdata) - { - fmtdata.ProcData.CheckOffData.SkipSpaces = "True"; - fmtdata.ProcData.CheckOffData.CheckOffList[2].Macro = "C3"; - fmtdata.ProcData.CheckOffData.CheckoffOnSubStepsOnly = "True"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "475.2,229.2,144"; - fmtdata.SectData.StepSectionData.StpSectLayData.ColRTable = "0,236.4,135.6"; - fmtdata.SectData.ReplaceStrData[3].Flag = "RNO, Caution, Note, Table, Substep, Attach"; - fmtdata.SectData.ReplaceStrData[4].Flag = "RNO, Caution, Note, Table, Substep, Attach"; - fmtdata.StepData[9].TabData.Ident = " {!C2}{numeric} "; - fmtdata.StepData[9].TabData.RNOIdent = " {!C2}{numeric} "; - fmtdata.StepData[1].TabData.Ident = "{alpha}) "; - fmtdata.BoxData[2].TabPos = 265F; - fmtdata.BoxData[2].Start = 128F; - fmtdata.BoxData[2].End = 420F; - fmtdata.BoxData[2].TxtStart = 151F; - fmtdata.BoxData[2].TxtWidth = 254F; - fmtdata.BoxData[1].TabPos = 265F; - fmtdata.BoxData[1].Start = 128F; - fmtdata.BoxData[1].End = 420F; - fmtdata.BoxData[1].TxtStart = 151F; - fmtdata.BoxData[1].TxtWidth = 254F; - fmtdata.StepData[6].StepLayoutData.EveryNLines = "-99"; - fmtdata.StepData[7].StepLayoutData.EveryNLines = "-99"; - // Transitions - fmtdata.TransData.TransTypeData[4].TransFormat = "{Sect Hdr}, Step {First Step}"; - fmtdata.TransData.TransTypeData[4].TransMenu = "{Sect Hdr}, Step {First Step}"; - } - private void AddEXCLN00fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "489,229.2,144"; - fmtdata.StepData[2].TabData.Ident = "{ALPHA}. "; - fmtdata.StepData[1].TabData.Ident = "{alpha}) "; - } - private void AddEXCLN00_OVRfmt(ref FormatData fmtdata) - { - fmtdata.BoxData[1].Index = 1; - fmtdata.BoxData[1].BXHorz = ConvertText("\x0C4"); - fmtdata.BoxData[1].BXLLC = ConvertText("\x0C0"); - fmtdata.BoxData[1].BXLRC = ConvertText("\x0D9"); - fmtdata.BoxData[1].BXULC = ConvertText("\x0DA"); - fmtdata.BoxData[1].BXURC = ConvertText("\x0BF"); - fmtdata.BoxData[1].BXVert = ConvertText("\x0B3"); - fmtdata.BoxData[1].Height = 0; - fmtdata.BoxData[1].TabPos = 213F; - fmtdata.BoxData[1].Start = 85F; - fmtdata.BoxData[1].End = 377F; - fmtdata.BoxData[1].TxtStart = 108F; - fmtdata.BoxData[1].TxtWidth = 254F; - fmtdata.BoxData[1].Font = new VE_Font(); - fmtdata.BoxData[1].Font.FontFamily = "Courier New"; - fmtdata.BoxData[1].Font.FontSize = "12"; - fmtdata.BoxData[1].Font.CPI = "10"; - - fmtdata.BoxData[2].Index = 2; - fmtdata.BoxData[2].BXHorz = "*"; - fmtdata.BoxData[2].BXLLC = "*"; - fmtdata.BoxData[2].BXLRC = "*"; - fmtdata.BoxData[2].BXULC = "*"; - fmtdata.BoxData[2].BXURC = "*"; - fmtdata.BoxData[2].BXVert = "*"; - fmtdata.BoxData[2].BXMLS = "*"; - fmtdata.BoxData[2].BXMRS = "*"; - fmtdata.BoxData[2].BXMID = "*"; - fmtdata.BoxData[2].BXUMID = "*"; - fmtdata.BoxData[2].BXLMID = "*"; - fmtdata.BoxData[2].Height = 0; - fmtdata.BoxData[2].TabPos = 213F; - fmtdata.BoxData[2].Start = 85F; - fmtdata.BoxData[2].End = 377F; - fmtdata.BoxData[2].TxtStart = 108F; - fmtdata.BoxData[2].TxtWidth = 254F; - fmtdata.BoxData[2].Font = new VE_Font(); - fmtdata.BoxData[2].Font.FontFamily = "Courier New"; - fmtdata.BoxData[2].Font.FontSize = "12"; - fmtdata.BoxData[2].Font.CPI = "10"; - } - private void AddEXCLN01fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "489,229.2,144"; - fmtdata.SectData.StepSectionData.StpSectLayData.BoxLeftAdj = "-43.2"; - fmtdata.StepData[6].StepLayoutData.EveryNLines = "-99"; - fmtdata.StepData[7].StepLayoutData.EveryNLines = "-99"; - } - private void AddEXEDEVfmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "471,180,120"; - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = "200,200"; - fmtdata.SectData.StepSectionData.StpSectLayData.ColS = 66F; - fmtdata.SectData.StepSectionData.StpSectLayData.WidT = 526F; - fmtdata.StepData[2].TabData.RNOIdent = "ERG STEP : "; - fmtdata.StepData[3].TabData.RNOIdent = "ERG NOTE : "; - fmtdata.StepData[6].TabData.RNOIdent = "ERG CAUTION : "; - fmtdata.StepData[7].TabData.RNOIdent = "ERG NOTE : "; - fmtdata.StepData[9].TabData.RNOIdent = "ERG CAUTION : "; - fmtdata.StepData[43].ColOverride = "42"; - fmtdata.SectData.StepSectionData.StpSectLayData.UseRNOParentIdent = "True"; - fmtdata.SectData.StepSectionData.StpSectLayData.DevNoteOrCautionTabOffset = "42"; - } - } - public partial class FmtToXml - { - private void AddCWEfmt(ref PageStyles pgstyles) - { - pgstyles.PgStyles[0].Items[5].Col = 270F; - } - private void AddEXCLN00fmt(ref PageStyles pgstyles) - { - pgstyles.PgStyles[0].Items[4].Col = 446F; - pgstyles.PgStyles[0].Items[4].Row = 30F; - pgstyles.PgStyles[0].Items[5].Col = 230F; - } - private void AddEXCLN00Doc(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].PageWidth = 576.2F; - dcstyles.DcStyles[0].PageLength = 600F; - dcstyles.DcStyles[0].FooterLen = 24F; - } - private void AddCWEDoc(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].PageWidth = 580.2F; - dcstyles.DcStyles[1].LeftMargin = 48F; - dcstyles.DcStyles[1].PageWidth = 579.2F; - dcstyles.DcStyles[1].PageLength = 578F; - } - private void CWEDocFixCB(ref DocStyles dcstyles) - { - for(int i=0;i " + - "" + - "" + - "" + - "" + - ""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "*" + - ""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - } - private void AddEXCLN(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - ""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "*" + - ""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_Calvert.cs b/PROMS/fmtxml/PlantSpecific_Calvert.cs deleted file mode 100644 index b18ab944..00000000 --- a/PROMS/fmtxml/PlantSpecific_Calvert.cs +++ /dev/null @@ -1,528 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddBGEALNfmt(ref FormatData fmtdata) - { - fmtdata.TPL = "0, 0, 0, 0, 0, 0, title\n1, 1, 65, 10,-19, -32768,\n2, 42, 0, 26, -1, 0,DEVICE\n2, 42, 27, 31, -1, 0,SETPOINT\n2, 42, 0, 77, 0, 0,POSSIBLE CAUSES\n2, 42, 0, 77, 0, 0,AUTOMATIC ACTIONS\n2, 42, 0, 0, 12294, 5186, CONDITION RESPONSE\n2, 42, 0, 77, 0, 0,ANNUNCIATOR COMPENSATORY ACTIONS\n2, 42, 0, 77, 0, 0,REFERENCES\n\n"; - fmtdata.SectData.StepSectionData.StpSectLayData.CautionNoteOrder = "7,6,22"; // Note,Caution,Warning - fmtdata.SectData.StepSectionData.CompressHPSub = "False"; - fmtdata.SectData.StepSectionData.CompressPropSubSup = "True"; - fmtdata.PrintData.UnitNumber = "True"; - fmtdata.PrintData.SpecialCaseCalvert = "True"; // do I need this for alarms - fmtdata.PrintData.SpecialCaseCalvertAlarm = "True"; - fmtdata.ProcData.TitleLength = 37; - fmtdata.ProcData.CoverTitleLength = 45; - fmtdata.SectData.StepSectionData.SequentialTabFormat[1].TabFormat = " {seq}. "; - fmtdata.SectData.StepSectionData.SequentialTabFormat[1].PrintTabFormat = " {seq}. "; - fmtdata.StepData[2].TabData.IdentEdit = "WINDOW "; - fmtdata.StepData[2].TabData.Ident = "WINDOW "; - fmtdata.StepData[2].UseOldTemplate = "True"; - //fmtdata.StepData[6].StepLayoutData.EveryNLines = "-99"; - //fmtdata.StepData[7].StepLayoutData.EveryNLines = "-99"; - - // Table - fmtdata.StepData[8].Font.FontFamily = "Lucida Console"; - - // AER Table - fmtdata.StepData[10].Font.FontFamily = "Lucida Console"; - - fmtdata.StepData[20].StepLayoutData.EveryNLines = "1"; - //fmtdata.StepData[22].StepLayoutData.EveryNLines = "-99"; - - // Title - fmtdata.StepData[12].StepEditData.Searchable = "True"; - //TitleWithTextRight - fmtdata.StepData[42].StepEditData.Searchable = "True"; - // TitleWithTextBelow - fmtdata.StepData[43].UseOldTemplate = "True"; - fmtdata.StepData[43].StepEditData.Searchable = "True"; - - fmtdata.StepData[14].StepLayoutData.EveryNLines = "-99"; - fmtdata.StepData[31].StepLayoutData.EveryNLines = "-99"; // not sure if I need this - inheritance - fmtdata.StepData[20].StepPrintData.Justify = "Center"; - fmtdata.StepData[20].OneLineBeforeTab = "True"; - fmtdata.StepData[20].SpaceIn = "True"; - fmtdata.StepData[20].StepLayoutData.EveryNLines = "1"; - fmtdata.StepData[0].Font.CPI = "12"; - fmtdata.BoxData[1].TxtStart = 356; - fmtdata.BoxData[1].TxtWidth = 130; - fmtdata.BoxData[1].BXMLS = null; - fmtdata.BoxData[1].BXMRS = null; - fmtdata.BoxData[2].TxtWidth = 440; - fmtdata.BoxData[3].TxtWidth = 440; - fmtdata.BoxData[4].TxtWidth = 440; - - fmtdata.SectData.ReplaceStrData[10].ReplaceWord = @"(\[B\w*\])"; - fmtdata.SectData.ReplaceStrData[10].ReplaceWith = @"\b $1\b0 "; - } - private void AddBGEEOPfmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.CompressHPSub = "False"; - fmtdata.SectData.StepSectionData.CompressPropSubSup = "True"; - fmtdata.PrintData.UnitNumber = "True"; - fmtdata.PrintData.SpecialCaseCalvert = "True"; - fmtdata.SectData.SectionNumber.Level0Big = "True"; - fmtdata.SectData.SectionHeader.Level0Big = "True"; - fmtdata.SectData.StepSectionData.StpSectLayData.ColS = 30; - fmtdata.SectData.StepSectionData.StpSectLayData.ColRTable = "0,192,126"; - fmtdata.SectData.StepSectionData.StpSectLayData.ColT = -16; - fmtdata.SectData.StepSectionData.StpSectLayData.WidT = 442; - fmtdata.SectData.StepSectionData.StpSectLayData.TabPtsPerChar = 6.2f; - fmtdata.SectData.StepSectionData.StpSectLayData.CautionNoteOrder = "29,7,6,22"; // Message,Note,Caution,Warning - fmtdata.SectData.StepSectionData.SequentialTabFormat[4].TabFormat = "{seq})"; - fmtdata.SectData.StepSectionData.SequentialTabFormat[4].PrintTabFormat = "{seq})"; - fmtdata.TransData.UseSpecificTransitionModifier = "True"; - fmtdata.TransData.UseSpecificPageNo = "True"; - fmtdata.StepData[2].TabData.Ident = " {numeric}. "; - fmtdata.StepData[2].TabData.IdentEdit = " {numeric}. "; - fmtdata.StepData[2].TabData.RNOIdent = " . "; - fmtdata.StepData[2].TabData.RNOIdentEdit = " . "; - - fmtdata.StepData[6].SeparateBox = "True"; - //fmtdata.StepData[6].MatchUpRNO = "False"; - fmtdata.StepData[7].SeparateBox = "True"; - //fmtdata.StepData[7].MatchUpRNO = "False"; - - // Table - fmtdata.StepData[8].Font.FontFamily = "Lucida Console"; - - // AER Table - fmtdata.StepData[10].Font.FontFamily = "Lucida Console"; - - fmtdata.StepData[29].CenterOneLineOnly = "False"; // this is BGE's message type (used as paragraph off section. - fmtdata.StepData[29].MatchUpRNO = "False"; - fmtdata.StepData[29].AlignNullTabWSectHead = "True"; - - // fix caution/notes starting xlocation: - fmtdata.StepData[6].ColOverride = "72"; - fmtdata.StepData[7].ColOverride = "72"; - fmtdata.StepData[20].ColOverride = "72"; - fmtdata.StepData[21].ColOverride = "72"; - fmtdata.StepData[22].ColOverride = "72"; - fmtdata.StepData[23].ColOverride = "72"; - fmtdata.StepData[26].ColOverride = "72"; - fmtdata.StepData[27].ColOverride = "72"; - fmtdata.StepData[28].ColOverride = "72"; - fmtdata.StepData[29].ColOverride = "72"; - fmtdata.StepData[32].ColOverride = "72"; - - // equip list - don't override width: - fmtdata.StepData[31].WidthOverride = null; - fmtdata.StepData[31].WidthOverrideEdit = null; - - fmtdata.TransData.TransTypeData[4].TransFormat = @"{Sect Num}, \ul {Sect Title}\ulnone , Step {First Step}"; - fmtdata.TransData.TransTypeData[5].TransFormat = @"{Proc Num}, \ul {Proc Title}\ulnone , {Sect Num}, \ul {Sect Title}\ulnone , Step {First Step}"; - fmtdata.TransData.TransTypeData[6].TransFormat = @"{Sect Num}, \ul {Sect Title}\ulnone , Step {First Step}{Page Num}"; - fmtdata.TransData.TransTypeData[9].TransFormat = @"{Proc Num} {IND}\ul {Proc Title}\ulnone "; - fmtdata.TransData.TransTypeData[10].TransFormat = @"{First Step}, \ul {Step Text}\ulnone {Page Num}"; - - fmtdata.SectData.ReplaceStrData[27].ReplaceWord = @"(\[B\w*\])"; - fmtdata.SectData.ReplaceStrData[27].ReplaceWith = @"\b $1\b0 "; - } - private void AddBGEEOPOverridefmt(ref FormatData fmtdata) - { - fmtdata.TransData.TransTypeData[0].TransUI = "ProcMenu, SectDefault, StepAllowNone, StepFirst"; - fmtdata.TransData.TransTypeData[4].TransUI = "ProcCur, SectMenuAny, StepAllowNone, StepFirst"; - fmtdata.TransData.TransTypeData[5].TransUI = "ProcMenu, SectMenuAny, StepAllowNone, StepFirst"; - - } - } - public partial class FmtToXml - { - private void AddBGEEOPDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].TopMargin = 96; - dcstyles.DcStyles[0].CBLoc = 6; - dcstyles.DcStyles[1].PageLength = 600; - dcstyles.DcStyles[1].PageWidth = 552; - dcstyles.DcStyles[1].EndMargin = 206; - dcstyles.DcStyles[2].CBMargin = 96; - dcstyles.DcStyles[2].CBMarginR = 335; - dcstyles.DcStyles[2].CBLoc = 6; - dcstyles.DcStyles[2].EndMargin = 75; - dcstyles.DcStyles[2].PageWidth = 552; - dcstyles.DcStyles[2].CenterLineX = 240; - dcstyles.DcStyles[2].CenterLineYTop = 647; - dcstyles.DcStyles[2].CenterLineYBottom = 24; - dcstyles.DcStyles[3].PageWidth = 552; - dcstyles.DcStyles[3].CenterLineX = 240; - dcstyles.DcStyles[3].CenterLineYTop = 624; - dcstyles.DcStyles[3].CenterLineYBottom = 24; - - // Attachment Step - dcstyles.DcStyles[4].FooterLen = 0; - dcstyles.DcStyles[4].PageWidth = 552; - - - // EOP Placekeeper - dcstyles.DcStyles[12].TopMargin = 138; - dcstyles.DcStyles[12].PageLength = 609; - dcstyles.DcStyles[12].LeftMargin = 106; - - // AOP Placekeeper - dcstyles.DcStyles[13].TopMargin = 138; - dcstyles.DcStyles[13].PageLength = 609; - dcstyles.DcStyles[13].LeftMargin = 106; - - // various styles without DONTCOUNTINTOC - dcstyles.DcStyles[6].DocStructStyle.DocStyle = "DontNumberInTOC"; // Cover page - dcstyles.DcStyles[10].DocStructStyle.DocStyle = "DontNumberInTOC"; // list of effective pages - dcstyles.DcStyles[11].DocStructStyle.DocStyle = "TableOfContents"; // Table of Contents - } - private void AddBGEEOPDOC_Y00(ref DocStyles dcstyles) - { - // AOP PlaceKeeper w/ Initials - dcstyles.DcStyles[2].TopMargin = 138; - dcstyles.DcStyles[2].PageLength = 609; - dcstyles.DcStyles[2].LeftMargin = 76; - } - private void AddBGEEOPPage(ref PageStyles pgstyles) - { - pgstyles.PgStyles[0].Items[2].Col = 480; - pgstyles.PgStyles[0].Items[3].Col = 480; - pgstyles.PgStyles[0].Items[4].Col = 480; - pgstyles.PgStyles[1].Items[2].Col = 480; - pgstyles.PgStyles[1].Items[3].Col = 480; - pgstyles.PgStyles[1].Items[4].Col = 480; - pgstyles.PgStyles[2].Items[2].Col = 480; - pgstyles.PgStyles[2].Items[3].Col = 480; - pgstyles.PgStyles[2].Items[4].Col = 480; - pgstyles.PgStyles[2].Items[6].Col = 120; - pgstyles.PgStyles[3].Items[6].Col = 246; - pgstyles.PgStyles[4].Items[2].Col = 480; - pgstyles.PgStyles[4].Items[3].Col = 480; - pgstyles.PgStyles[5].Items[2].Col = 480; - pgstyles.PgStyles[5].Items[3].Col = 480; - pgstyles.PgStyles[6].Items[2].Col = 474; - pgstyles.PgStyles[6].Items[3].Col = 474; - pgstyles.PgStyles[6].Items[4].Col = 474; - pgstyles.PgStyles[7].Items[2].Col = 474; - pgstyles.PgStyles[7].Items[3].Col = 474; - pgstyles.PgStyles[8].Items[2].Col = 474; - pgstyles.PgStyles[8].Items[3].Col = 474; - pgstyles.PgStyles[8].Items[4].Col = 474; - // EOP Placekeeper - pgstyles.PgStyles[9].Items[1].Col = -16; // BOX5 - pgstyles.PgStyles[9].Items[2].Col = 464; // EOPNUM - pgstyles.PgStyles[9].Items[3].Col = 464; // REVUNIT - pgstyles.PgStyles[9].Items[4].Col = 463; // Page {PAGE} of {OF} - pgstyles.PgStyles[9].Items[5].Col = 227; // PLACEKEEPER - - Array.Resize(ref pgstyles.PgStyles[9].Items, 7); - pgstyles.PgStyles[9].Items[6].Token = "NOTE: Continuously applicable steps are designated with a \"C\" in the DONE column."; // Continuous foot note - pgstyles.PgStyles[9].Items[6].Row = 750; // Continuous foot note - pgstyles.PgStyles[9].Items[6].Col = 227; // Continuous foot note - pgstyles.PgStyles[9].Items[6].Justify = "PSCenter"; // Continuous foot note - pgstyles.PgStyles[9].Items[6].Style = new VE_Font(); - pgstyles.PgStyles[9].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[9].Items[6].Style.FontSize = "10"; - pgstyles.PgStyles[9].Items[6].Style.FontStyle = "None"; - pgstyles.PgStyles[9].Items[6].Style.CPI = "12"; - - pgstyles.PgStyles[10].Items[2].Col = 474; - pgstyles.PgStyles[10].Items[3].Col = 474; - pgstyles.PgStyles[11].Items[2].Col = 480; - pgstyles.PgStyles[11].Items[3].Col = 480; - pgstyles.PgStyles[11].Items[4].Col = 480; - pgstyles.PgStyles[13].Items[2].Col = 474; - pgstyles.PgStyles[13].Items[3].Col = 474; - pgstyles.PgStyles[13].Items[4].Col = 474; - - // AOP Placekeeper - pgstyles.PgStyles[14].Items[1].Col = -16; // BOX5 - pgstyles.PgStyles[14].Items[2].Col = 464; // EOPNUM - pgstyles.PgStyles[14].Items[3].Col = 464; // REVUNIT - pgstyles.PgStyles[14].Items[4].Col = 227; // SECTIONLEVELNUMBER - pgstyles.PgStyles[14].Items[5].Col = 227; // Page {PAGE} of {OF} - pgstyles.PgStyles[14].Items[6].Col = 227; // PLACEKEEPER - - Array.Resize(ref pgstyles.PgStyles[14].Items, 8); - pgstyles.PgStyles[14].Items[7].Token = "NOTE: Continuously applicable steps are designated with a \"C\"; in the DONE column."; // Continuous foot note - pgstyles.PgStyles[14].Items[7].Row = 750; // Continuous foot note - pgstyles.PgStyles[14].Items[7].Col = 227; // Continuous foot note - pgstyles.PgStyles[14].Items[7].Justify = "PSCenter"; // Continuous foot note - pgstyles.PgStyles[14].Items[7].Style = new VE_Font(); - pgstyles.PgStyles[14].Items[7].Style.FontFamily = "Arial"; - pgstyles.PgStyles[14].Items[7].Style.FontSize = "10"; - pgstyles.PgStyles[14].Items[7].Style.FontStyle = "None"; - pgstyles.PgStyles[14].Items[7].Style.CPI = "12"; - - } - private void AddBGEEOPPage_Z00(ref PageStyles pgstyles) - { - // AOP PlaceKeeper w/ Initials - pgstyles.PgStyles[1].Items[1].Col = -16; // BOX5 - pgstyles.PgStyles[1].Items[2].Col = 458; // EOPNUM - pgstyles.PgStyles[1].Items[3].Col = 458; // REVUNIT - pgstyles.PgStyles[1].Items[4].Col = 227; // SECTIONLEVELNUMBER - pgstyles.PgStyles[1].Items[5].Col = 227; // Page {PAGE} of {OF} - pgstyles.PgStyles[1].Items[6].Col = 227; // PLACEKEEPER - - Array.Resize(ref pgstyles.PgStyles[1].Items, 8); - pgstyles.PgStyles[1].Items[7].Token = "NOTE: Continuously applicable steps are designated with a \"C\"in the DONE column."; // Continuous foot note - pgstyles.PgStyles[1].Items[7].Row = 750; // Continuous foot note - pgstyles.PgStyles[1].Items[7].Col = 227; // Continuous foot note - pgstyles.PgStyles[1].Items[7].Justify = "PSCenter"; // Continuous foot note - pgstyles.PgStyles[1].Items[7].Style = new VE_Font(); - pgstyles.PgStyles[1].Items[7].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[7].Style.FontSize = "10"; - pgstyles.PgStyles[1].Items[7].Style.FontStyle = "None"; - pgstyles.PgStyles[1].Items[7].Style.CPI = "12"; - } - - private void AddBGEALNPage(ref PageStyles pgstyles) - { - pgstyles.PgStyles[1].Items[4].Token = "{COVERPROCTITLE}"; - - // remove the INIT item in proc steps: - int numstyles = pgstyles.PgStyles.Length; // number of current PgStyles - PageStyle[] pgs = new PageStyle[numstyles+1]; - PageStyle ps; - // copy existing page lists except for the one with the INIT - for (int i = 0; i < numstyles - 1; i++) - { - if (i != 4) - { - ps = new PageStyle(); - ps = pgstyles.PgStyles[i]; - pgs[i] = ps; - } - } - // now do the proc step pageslists without the INIT - ps = new PageStyle(); - ps.Name = "Procedure Steps"; - ps.Index = 4; - - PSItem[] Fpsitms = null; - Fpsitms = new PSItem[6]; - - PSItem pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -3; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[0] = pi; - - pi = new PSItem(); - pi.Token = "{EOPNUM}"; - pi.Row = 24; - pi.Col = 432; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "Bold"; - pi.Style.CPI = "12"; - Fpsitms[1] = pi; - - pi = new PSItem(); - pi.Token = "Rev. {REVUNIT}"; - pi.Row = 36; - pi.Col = 432; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "Bold"; - pi.Style.CPI = "12"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "{PROCTITLE}"; - pi.Row = 36; - pi.Col = 255; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "Bold"; - pi.Style.CPI = "12"; - Fpsitms[3] = pi; - - pi = new PSItem(); - pi.Token = "Page {PAGE} of {OF}"; - pi.Row = 48; - pi.Col = 432; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "Bold"; - pi.Style.CPI = "12"; - Fpsitms[4] = pi; - - pi = new PSItem(); - pi.Token = "{BOX5}"; - pi.Row = 48; - pi.Col = 6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[5] = pi; - - ps.Items = Fpsitms; - pgs[4] = ps; - - // now add the Attachment Step - No Header - ps = new PageStyle(); - ps.Name = "Attachment Step - No Header"; - ps.Index = 5; - - Fpsitms = new PSItem[8]; - - pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -3; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[0] = pi; - - pi = new PSItem(); - pi.Token = "{EOPNUM}"; - pi.Row = 24; - pi.Col = 438; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "Bold"; - pi.Style.CPI = "12"; - Fpsitms[1] = pi; - - pi = new PSItem(); - pi.Token = "{SECTIONLEVELNUMBER}"; - pi.Row = 36; - pi.Col = 438; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "Bold"; - pi.Style.CPI = "12"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "Rev. {REVUNIT}"; - pi.Row = 48; - pi.Col = 438; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "Bold"; - pi.Style.CPI = "12"; - Fpsitms[3] = pi; - - pi = new PSItem(); - pi.Token = "{PROCTITLE}"; - pi.Row = 48; - pi.Col = 255; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "Bold"; - pi.Style.CPI = "12"; - Fpsitms[4] = pi; - - pi = new PSItem(); - pi.Token = "Page {DOCCURPAGE} of {DOCTOTPAGE}"; - pi.Row = 60; - pi.Col = 438; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "Bold"; - pi.Style.CPI = "12"; - Fpsitms[5] = pi; - - pi = new PSItem(); - pi.Token = "{BOX5}"; - pi.Row = 60; - pi.Col = 6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[6] = pi; - - pi = new PSItem(); - pi.Token = "{SECTIONLEVELTITLE}"; - pi.Row = 96; - pi.Col = 255; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "14"; - pi.Style.FontStyle = "Underline, Bold"; - pi.Style.CPI = "12"; - Fpsitms[7] = pi; - - ps.Items = Fpsitms; - pgs[5] = ps; - - pgstyles.PgStyles = pgs; // save new pagelist - } - - private void AddBGEALNDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].ComponentList = true; - dcstyles.DcStyles[0].PageWidth = 558; - dcstyles.DcStyles[0].CBLoc = 4; - dcstyles.DcStyles[0].CBMargin = 35; - dcstyles.DcStyles[0].CBMarginR = 287; - - //adding new "Attachment Step - No Header" docstyle - Array.Resize(ref dcstyles.DcStyles, dcstyles.DcStyles.Length + 1); - - dcstyles.DcStyles[5].Name = "Attachment Step - No Header"; - dcstyles.DcStyles[5].Index = 5; - dcstyles.DcStyles[5].numberingsequence = 4; - dcstyles.DcStyles[5].IsStepSection = true; - dcstyles.DcStyles[5].UseCheckOffs = false; - dcstyles.DcStyles[5].UseColSByLevel = true; - dcstyles.DcStyles[5].oldtonew = 1048576; - dcstyles.DcStyles[5].CancelSectTitle = true; - dcstyles.DcStyles[5].SpecialStepsFoldout = false; - dcstyles.DcStyles[5].UndSpecialStepsFoldout = false; - dcstyles.DcStyles[5].ExtraLineHeader = false; - dcstyles.DcStyles[5].AlignHLSTabWithSect = false; - dcstyles.DcStyles[5].pagestyle = 5; - dcstyles.DcStyles[5].TopMargin = 120F; - dcstyles.DcStyles[5].FooterLen = 0F; - dcstyles.DcStyles[5].PageLength = 600; - dcstyles.DcStyles[5].PageWidth = 576F; - dcstyles.DcStyles[5].LeftMargin = 48F; - dcstyles.DcStyles[5].dstyle = new VE_Font(); - dcstyles.DcStyles[5].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[5].dstyle.FontSize = "11"; - dcstyles.DcStyles[5].dstyle.FontStyle = "None"; - dcstyles.DcStyles[5].dstyle.CPI = "12"; - dcstyles.DcStyles[5].DocStructStyle = new VE_DocStyle(); - dcstyles.DcStyles[5].DocStructStyle.DocStyleUse = E_DocStyleUse.UseOnAllPages; - dcstyles.DcStyles[5].DocStructStyle.DocStyle = "DontNumberInTOC"; - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_Catawba.cs b/PROMS/fmtxml/PlantSpecific_Catawba.cs deleted file mode 100644 index 36d6863c..00000000 --- a/PROMS/fmtxml/PlantSpecific_Catawba.cs +++ /dev/null @@ -1,203 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddCATADEVfmt(ref FormatData fmtdata) - { - fmtdata.ProcData.TitleLength = 45; - // Fix Logic for CAPSPIfLastLower - fmtdata.ROData.CapRoIfLastLower = "False"; - fmtdata.ROData.CapSPIfLastLower = "True"; - fmtdata.SectData.ReplaceWordsInROs = "False"; - } - private void AddCATDEVfmt(ref FormatData fmtdata) - { - fmtdata.SectData.ReplaceWordsInROs = "False"; - } - private void AddCATfmt(ref FormatData fmtdata) // Catawba - { - // Fix Logic for CAPSPIfLastLower - fmtdata.ROData.CapRoIfLastLower = "False"; - fmtdata.ROData.CapSPIfLastLower = "True"; - fmtdata.FontData.FontSize = "12"; - //fmtdata.SectData.StepSectionData.StpSectLayData.Separator.SeparatorLocation = 2; - fmtdata.SectData.StepSectionData.StpSectLayData.ColT = -3; - // ColS="42" WidT="454" ColRTable="0,264,138" WidSTableEdit="432,221,120" WidSTablePrint="480,221,120" - fmtdata.SectData.StepSectionData.StpSectLayData.ColS = 42; - fmtdata.SectData.StepSectionData.StpSectLayData.WidT = 455; - fmtdata.SectData.StepSectionData.StpSectLayData.ColRTable = "0,264,138"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "432,221,120"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "480,221,120"; - fmtdata.SectData.StepSectionData.AdjustRNOCautionNoteWidth = "True"; - fmtdata.SectData.ReplaceWordsInROs = "False"; - - fmtdata.ProcData.TitleLength = 45; - // Base - fmtdata.StepData[0].StepLayoutData.STExtraSpace = "0"; - - // High - fmtdata.StepData[2].StepLayoutData.STExtraSpace = "12"; - - - for (int i = 0; i < fmtdata.StepData.Length; i++) - { - if (fmtdata.StepData[i].Font != null && fmtdata.StepData[i].Font.FontFamily == "Arial") - fmtdata.StepData[i].Font.FontSize = "12"; - if (fmtdata.StepData[i].TabData.Font.FontFamily == "Arial") - fmtdata.StepData[i].TabData.Font.FontSize = "12"; - } - - // caution separator - //fmtdata.StepData[6].StepLayoutData.STBoxindex = "1"; - fmtdata.StepData[6].TabData.Bullet.Separate = "True"; - fmtdata.StepData[6].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[6].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[6].TabData.Bullet.Font.FontSize = "12"; - fmtdata.StepData[6].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[6].TabData.Bullet.Font.CPI = "12"; - - // note location/tab - //fmtdata.StepData[7].StepLayoutData.STBoxindex = "1"; - fmtdata.StepData[7].TabData.Ident = "NOTE "; - fmtdata.StepData[7].TabData.IdentEdit = "NOTE "; - fmtdata.StepData[7].TabData.RNOIdent = "NOTE "; - fmtdata.StepData[7].TabData.Bullet.Separate = "True"; - fmtdata.StepData[7].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[7].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[7].TabData.Bullet.Font.FontSize = "12"; - fmtdata.StepData[7].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[7].TabData.Bullet.Font.CPI = "12"; - - // Bulleted High Level Step - fmtdata.StepData[9].TabData.Ident = "{bullet} "; - fmtdata.StepData[9].TabData.IdentEdit = "{bullet} "; - fmtdata.StepData[9].TabData.RNOIdent = "{bullet} "; - fmtdata.StepData[9].TabData.RNOIdentEdit = "{bullet} "; - - // RNOType - fmtdata.StepData[40].Font.FontFamily = "Arial"; - fmtdata.StepData[40].Font.FontSize = "12"; - fmtdata.StepData[40].StepLayoutData.STExtraSpace = "0"; - - //// note location (create a box to locate it) - //fmtdata.BoxData[1].Index = 1; - //fmtdata.BoxData[1].Start = 6; - //fmtdata.BoxData[1].End = 240; - //fmtdata.BoxData[1].TxtStart = 12; - //fmtdata.BoxData[1].TxtWidth = 450; - //fmtdata.BoxData[1].BXULC = " "; - //Disable extra Cautions and notes - // Caution 1 - fmtdata.StepData[20].Inactive = "True"; - // Caution 2 - fmtdata.StepData[21].Inactive = "True"; - // Caution 3 - fmtdata.StepData[27].Inactive = "True"; - // Caution 4 - fmtdata.StepData[29].Inactive = "True"; - // Note 1 - fmtdata.StepData[22].Inactive = "True"; - // Note 2 - fmtdata.StepData[23].Inactive = "True"; - // Note 3 - fmtdata.StepData[26].Inactive = "True"; - // Note 4 - fmtdata.StepData[28].Inactive = "True"; - // Note 5 - fmtdata.StepData[32].Inactive = "True"; - } - private void AddCATfmtOVR(ref FormatData fmtdata) // Catawba - { - // Transitions - fmtdata.TransData.TransTypeData[0].TransFormat = "{Proc Num} ({Proc Title}), Step {First Step}"; - fmtdata.TransData.TransTypeData[0].TransMenu = "{Proc Num} ({Proc Title}), Step {First Step}"; - - fmtdata.TransData.TransTypeData[3].TransFormat = "{First Step} through {Last Step} of {?.Proc Num} ({?.Proc Title}), {?.Sect Num} ({?.Sect Title})"; - fmtdata.TransData.TransTypeData[3].TransMenu = "{First Step} through {Last Step} of {Proc Num} ({Proc Title}), {Sect Num} ({Sect Title})"; - fmtdata.TransData.TransTypeData[3].TransUI = "ProcMenu, SectMenuStep, StepFirst, StepLast"; - - fmtdata.TransData.TransTypeData[4].TransFormat = "{Sect Num} ({Sect Title}), Step {First Step}"; - fmtdata.TransData.TransTypeData[4].TransMenu = "{Sect Num} ({Sect Title}), Step {First Step}"; - fmtdata.TransData.TransTypeData[4].TransUI = "ProcCur, SectMenuAny, StepAllowNone, StepFirst"; - - fmtdata.TransData.TransTypeData[5].TransFormat = "{Proc Num} ({Proc Title}), {Sect Num} ({Sect Title}), Step {First Step}"; - fmtdata.TransData.TransTypeData[5].TransMenu = "{Proc Num} ({Proc Title}), {Sect Num} ({Sect Title}), Step {First Step}"; - fmtdata.TransData.TransTypeData[5].TransUI = "ProcMenu, SectMenuAny, StepAllowNone, StepFirst"; - - fmtdata.TransData.TransTypeData[6].TransUI = "ProcCur, SectMenuStep, StepFirst"; - - //RNO Separator - fmtdata.SectData.StepSectionData.StpSectPrtData.RNOSepString = "\xA0 "; - - } - } - public partial class FmtToXml - { - private void AddCATPage(ref PageStyles pgstyles) - { - // proc steps - pgstyles.PgStyles[0].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[0].Items[6].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[0].Items[9].Token = "Revision {REV}"; - // proc steps - no header - pgstyles.PgStyles[1].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[1].Items[6].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[1].Items[9].Token = "Revision {REV}"; - // enclosures - pgstyles.PgStyles[2].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[2].Items[6].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[2].Items[8].Token = "Revision {REV}"; - // Attachments - pgstyles.PgStyles[4].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[4].Items[6].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[4].Items[8].Token = "Revision {REV}"; - // Status Tree - pgstyles.PgStyles[5].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[5].Items[6].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[5].Items[8].Token = "Revision {REV}"; - // Table of contents - pgstyles.PgStyles[6].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[6].Items[5].Token = "{ROMANPAGE}"; - pgstyles.PgStyles[6].Items[7].Token = "Revision {REV}"; - } - - private void AddCATDOC(ref DocStyles dcstyles) - { - SetCatawbaDocStyleFont(ref dcstyles); - dcstyles.DcStyles[0].CBMargin = 50; - //dcstyles.DcStyles[0].CBLoc = 3; - dcstyles.DcStyles[0].PageLength = 624; - dcstyles.DcStyles[1].CBMargin = 50; - //dcstyles.DcStyles[1].CBLoc = 3; - dcstyles.DcStyles[1].PageLength = 624; - dcstyles.DcStyles[2].CBMargin = 50; - //dcstyles.DcStyles[2].CBLoc = 3; - dcstyles.DcStyles[2].PageLength = 624; - } - private static void SetCatawbaDocStyleFont(ref DocStyles dcstyles) - { - int i = 0; - int ii = 0; - // Set font to Arial 12 pt - for (i = 0; i < dcstyles.DcStyles.Length; i++) - { - dcstyles.DcStyles[i].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[i].dstyle.FontSize = "12"; - dcstyles.DcStyles[i].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[i].ContStyle.FontSize = "12"; - } - return; - } - } - public partial class RtfToSvg - { - private void AddCAT(XmlDocument myDoc) - { - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_ComanchePeak.cs b/PROMS/fmtxml/PlantSpecific_ComanchePeak.cs deleted file mode 100644 index ec18b299..00000000 --- a/PROMS/fmtxml/PlantSpecific_ComanchePeak.cs +++ /dev/null @@ -1,347 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddTuecfmt(ref FormatData fmtdata) // Comanche Peak - { - fmtdata.PrintData.PrintCommonForZeroUnit = "True"; - // SectionNumber - fmtdata.SectData.SectionNumber.Pos = 0; - fmtdata.SectData.SectionNumber.Just = "PSLeft"; - fmtdata.SectData.SectionNumber.Font.FontFamily = "Prestige Elite Tall"; - fmtdata.SectData.SectionNumber.Font.FontSize = "10"; - fmtdata.SectData.SectionNumber.Font.FontStyle = "None"; - fmtdata.SectData.SectionNumber.Font.CPI = "12"; - // SectionHeader - fmtdata.SectData.SectionHeader.Pos = 19; - fmtdata.SectData.SectionHeader.Just = "PSLeft"; - fmtdata.SectData.SectionHeader.Font.FontFamily = "Prestige Elite Tall"; - fmtdata.SectData.SectionHeader.Font.FontSize = "10"; - fmtdata.SectData.SectionHeader.Font.FontStyle = "Underline"; - fmtdata.SectData.SectionHeader.Font.CPI = "12"; - // StepSectionData - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "426,198,120"; //"426,192,120"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "426,198,120"; //"426,192,120"; - fmtdata.SectData.StepSectionData.StpSectLayData.ShowSectionTitles = "True"; - // High Level Step - fmtdata.StepData[2].TabData.Ident = " {numeric} "; - // Imediate Action High Level Step - fmtdata.StepData[3].TabData.Ident = "{!C0}{numeric} "; - // Caution - fmtdata.StepData[6].OneLineBeforeTab = "True"; - // Note - fmtdata.StepData[7].OneLineBeforeTab = "True"; - // Continuous Action High Level Step - fmtdata.StepData[9].TabData.Ident = "*{numeric} "; - // LossOfAC - still working on this - fmtdata.StepData[18].ColOverride = "38"; - fmtdata.StepData[18].ColOverrideEdit = "38"; - fmtdata.StepData[18].WidthOverride = "438,198,120"; //"438,192,120"; - fmtdata.StepData[18].WidthOverrideEdit = "438,198,120"; //"438,192,120"; - fmtdata.StepData[18].StepEditData.TypeMenu.MenuItem = "Symptoms and Entry Step"; - fmtdata.StepData[18].TabData.IdentEdit = "{numeric}) "; - fmtdata.StepData[18].TabData.Ident = "{numeric}) "; - fmtdata.StepData[18].TabData.RNOIdentEdit = " "; - //fmtdata.StepData[18].TabData.Justify = "Left"; - // Caution 2 - fmtdata.StepData[21].ParentType = "Base"; - // Paragraph - fmtdata.StepData[24].StepEditData.TypeMenu.MenuItem = "Indented Paragraph"; - fmtdata.StepData[24].TabData.IdentEdit = "{!.+?}{!.+?}"; // {!.+?} gets replaced with a space in PROMS - fmtdata.StepData[24].TabData.Ident = "{!.+?}{!.+?}"; - fmtdata.StepData[24].TabData.RNOIdent = "{!.+?}{!.+?}"; - fmtdata.StepData[24].TabData.RNOIdentEdit = "{!.+?}{!.+?}"; - // High5 - fmtdata.StepData[41].ColOverride = "20"; - fmtdata.StepData[41].ColOverrideEdit = "20"; - fmtdata.StepData[41].WidthOverride = "456,198,120"; //"456,192,120"; - fmtdata.StepData[41].WidthOverrideEdit = "456,198,120"; //"456,192,120"; - fmtdata.StepData[41].StepEditData.TypeMenu.MenuItem = "Unnumbered High Level Step"; - } - private void AddTuecfmtOVR(ref FormatData fmtdata) // Comanche Peak - override after inheritance - { - // Note - fmtdata.StepData[7].Inactive = "False"; - // Note 1 - fmtdata.StepData[22].Inactive = "True"; - // Note 2 - fmtdata.StepData[23].Inactive = "True"; - // Note 3 - fmtdata.StepData[26].Inactive = "True"; - // Note 4 - fmtdata.StepData[28].Inactive = "True"; - // Note 5 - fmtdata.StepData[32].Inactive = "True"; - } - - private void AddTuecDevfmt(ref FormatData fmtdata) // Comanche Peak - { - fmtdata.StepData[40].NoSpaceMultipleRNOs = true; - } - - //private void AddCPLOverridefmt(ref FormatData fmtdata) - //{ - // fmtdata.BoxData[1].BXLLC = "-12345"; //this will put in a null string - // fmtdata.BoxData[1].BXULC = "-12345"; //this will put in a null string - // fmtdata.BoxData[1].BXVert = "-12345"; //this will put in a null string - // fmtdata.BoxData[1].BXURC = "-12345"; //this will put in a null string - // fmtdata.BoxData[1].BXULC = "-12345"; //this will put in a null string - //} - - } - public partial class FmtToXml - { - private void AddTUECPage(ref PageStyles pgstyles) - { - // Procedure Steps - pgstyles.PgStyles[0].Items[2].Token = "UNIT {UNITNUMBER}"; - // Cover Page - pgstyles.PgStyles[1].Items[3].Token = "UNIT {UNITNUMBER}"; - // Cover Page with ECC Stamp - pgstyles.PgStyles[2].Items[3].Token = "UNIT {UNITNUMBER}"; - // Introduction & Appendix Pages - pgstyles.PgStyles[3].Items[3].Token = "UNIT {UNITNUMBER}"; - //Cover Page with Small Stamp - pgstyles.PgStyles[4].Items[3].Token = "UNIT {UNITNUMBER}"; - - // we need to add one new pgstyle - // expand the pgstyles.PgStyles array by one; - int numstyles = pgstyles.PgStyles.Length; // number of current PgStyles - numstyles += 1; // adding one more page styles - PageStyle[] pgs = new PageStyle[numstyles]; - PageStyle ps;// new PageStyle(); - // copy existing page lists - for (int i = 0; i < numstyles - 1; i++) - { - ps = new PageStyle(); - ps = pgstyles.PgStyles[i]; - pgs[i] = ps; - } - // Attachmet (Step Editor) - ps = new PageStyle(); - ps.Name = "Attachmet (Step Editor)"; - ps.Index = 5; - - PSItem[] Fpsitms = null; - Fpsitms = new PSItem[10]; - - PSItem pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -3; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[0] = pi; - - pi = new PSItem(); - pi.Token = "{HEADER1}"; - pi.Row = 24; - pi.Col = -18; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[1] = pi; - - pi = new PSItem(); - pi.Token = "{EOPNUM}"; - pi.Row = 48; - pi.Col = 447; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "UNIT {UNITNUMBER}"; - pi.Row = 48; - pi.Col = 339; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[3] = pi; - - pi = new PSItem(); - pi.Token = "{PROCTITLE}"; - pi.Row = 84; - pi.Col = 129; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[4] = pi; - - pi = new PSItem(); - pi.Token = "REVISION NO. {REV}"; - pi.Row = 84; - pi.Col = 339; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[5] = pi; - - pi = new PSItem(); - pi.Token = "PAGE {PAGE} OF {OF}"; - pi.Row = 84; - pi.Col = 447; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "Bold"; - Fpsitms[6] = pi; - - pi = new PSItem(); - pi.Token = "{BOX1}"; - pi.Row = 96; - pi.Col = -18; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[7] = pi; - - pi = new PSItem(); - pi.Token = "{SECTIONLEVELNUMBER}"; - pi.Row = 120; - pi.Col = 244; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "Underline"; - Fpsitms[8] = pi; - - pi = new PSItem(); - pi.Token = "PAGE {DOCCURPAGE} OF {DOCTOTPAGE}"; - pi.Row = 130; - pi.Col = 244; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[9] = pi; - - ps.Items = Fpsitms; - pgs[numstyles - 1] = ps; - - pgstyles.PgStyles = pgs; // save new pagelist - - } - private void AddTUCEDOC(ref DocStyles dcstyles) - { - // we need to add one new docsyles - // expand the dcstyles.DcStyle array by one; - int numstyles = dcstyles.DcStyles.Length; // number of current docstyles - numstyles += 2; // adding one more docstyles - DocStyle[] dcs = new DocStyle[numstyles]; - for (int i = 0; i < numstyles-2; i++) - { - DocStyle dc = new DocStyle(); - dc = dcstyles.DcStyles[i]; - dcs[i] = dc; - if (i+1 == numstyles - 2) - { - dc = new DocStyle(); - dc = dcstyles.DcStyles[0]; // insert a new section by copying the first one - dcs[i+1] = dc; - dc = new DocStyle(); - dc = dcstyles.DcStyles[0]; // insert a new section by copying the first one - dcs[i+2] = dc; - } - } - dcstyles.DcStyles = dcs; - //"Procedure Steps" - dcstyles.DcStyles[0].oldtonew = 1; - dcstyles.DcStyles[0].CancelSectTitle = true; - dcstyles.DcStyles[0].CBLoc = 2; - // Cover Page - dcstyles.DcStyles[1].PageLength = 620; - // Cover Page with ECC Stamp - dcstyles.DcStyles[2].PageLength = 620; - // Introduction & Appendix Pages - dcstyles.DcStyles[3].PageLength = 640; - dcstyles.DcStyles[3].PageWidth = 564; - // Cover Page with Small Stamp - dcstyles.DcStyles[4].PageLength = 620; - // Purpose and Entry - step editor - dcstyles.DcStyles[5].Name = "Purpose and Entry"; - dcstyles.DcStyles[5].Index = 5; - dcstyles.DcStyles[5].pagestyle = 3; - dcstyles.DcStyles[5].oldtonew = 2; - dcstyles.DcStyles[5].CancelSectTitle = false; - dcstyles.DcStyles[5].TopMargin = 120; - dcstyles.DcStyles[5].PageLength = 640; - dcstyles.DcStyles[5].LeftMargin = 78; - dcstyles.DcStyles[5].EndFlag = 0; - dcstyles.DcStyles[5].EndString = null; - dcstyles.DcStyles[5].CBLoc = 2; - // Attachment (Step Editor) - dcstyles.DcStyles[6].Name = "Attachment (Step Editor)"; - dcstyles.DcStyles[6].Index = 6; - dcstyles.DcStyles[6].pagestyle = 5; - dcstyles.DcStyles[6].oldtonew = 4; - dcstyles.DcStyles[6].CancelSectTitle = true; - dcstyles.DcStyles[6].TopMargin = 150; - dcstyles.DcStyles[6].PageLength = 564; - dcstyles.DcStyles[6].LeftMargin = 60; - dcstyles.DcStyles[6].EndFlag = 0; - dcstyles.DcStyles[6].EndString = null; - dcstyles.DcStyles[6].CBLoc = 2; - } - } - public partial class RtfToSvg - { - private void AddTUEC(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[12]); - - xdNew.LoadXml(" " + - "" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[9]); - - xdNew.LoadXml(" " + - "" + - "" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[11]); - - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_Gen.cs b/PROMS/fmtxml/PlantSpecific_Gen.cs deleted file mode 100644 index ace17621..00000000 --- a/PROMS/fmtxml/PlantSpecific_Gen.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddGENfmt(ref FormatData fmtdata) // Catawba - { - fmtdata.SectData.StepSectionData.StpSectLayData.ColT = -3; - } - } - public partial class FmtToXml - { - private void AddGENPage(ref PageStyles pgstyles) - { - } - - } - public partial class RtfToSvg - { - private void AddGEN(XmlDocument myDoc) - { - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_McGuire.cs b/PROMS/fmtxml/PlantSpecific_McGuire.cs deleted file mode 100644 index c764783f..00000000 --- a/PROMS/fmtxml/PlantSpecific_McGuire.cs +++ /dev/null @@ -1,198 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddMCGfmt(ref FormatData fmtdata) // McGuire - { - // Fix Logic for CAPSPIfLastLower - fmtdata.ROData.CapRoIfLastLower = "False"; - fmtdata.ROData.CapSPIfLastLower = "True"; - fmtdata.FontData.FontSize = "12"; - //fmtdata.SectData.StepSectionData.StpSectLayData.Separator.SeparatorLocation = 2; - fmtdata.SectData.StepSectionData.StpSectLayData.ColT = -3; - // ColS="42" WidT="454" ColRTable="0,264,138" WidSTableEdit="432,221,120" WidSTablePrint="480,221,120" - fmtdata.SectData.StepSectionData.StpSectLayData.ColS = 42; - fmtdata.SectData.StepSectionData.StpSectLayData.WidT = 455; - fmtdata.SectData.StepSectionData.StpSectLayData.ColRTable = "0,264,138"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "432,221,120"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "480,221,120"; - fmtdata.SectData.StepSectionData.AdjustRNOCautionNoteWidth = "True"; - fmtdata.SectData.ReplaceWordsInROs = "False"; - - fmtdata.ProcData.TitleLength = 45; - // Base - fmtdata.StepData[0].StepLayoutData.STExtraSpace = "0"; - - // High - fmtdata.StepData[2].StepLayoutData.STExtraSpace = "12"; - - for (int i = 0; i < fmtdata.StepData.Length; i++) - { - if (fmtdata.StepData[i].Font != null && fmtdata.StepData[i].Font.FontFamily == "Arial") - fmtdata.StepData[i].Font.FontSize = "12"; - if (fmtdata.StepData[i].TabData.Font.FontFamily == "Arial") - fmtdata.StepData[i].TabData.Font.FontSize = "12"; - } - // caution separator - //fmtdata.StepData[6].StepLayoutData.STBoxindex = "1"; - fmtdata.StepData[6].TabData.Bullet.Separate = "True"; - fmtdata.StepData[6].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[6].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[6].TabData.Bullet.Font.FontSize = "12"; - fmtdata.StepData[6].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[6].TabData.Bullet.Font.CPI = "12"; - - // note location/tab - //fmtdata.StepData[7].StepLayoutData.STBoxindex = "1"; - fmtdata.StepData[7].TabData.Ident = "NOTE "; - fmtdata.StepData[7].TabData.IdentEdit = "NOTE "; - fmtdata.StepData[7].TabData.RNOIdent = "NOTE "; - fmtdata.StepData[7].TabData.Bullet.Separate = "True"; - fmtdata.StepData[7].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[7].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[7].TabData.Bullet.Font.FontSize = "12"; - fmtdata.StepData[7].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[7].TabData.Bullet.Font.CPI = "12"; - - // Bulleted High Level Step - fmtdata.StepData[9].TabData.Ident = "{bullet} "; - fmtdata.StepData[9].TabData.IdentEdit = "{bullet} "; - fmtdata.StepData[9].TabData.RNOIdent = "{bullet} "; - fmtdata.StepData[9].TabData.RNOIdentEdit = "{bullet} "; - - // RNOType - fmtdata.StepData[40].Font.FontFamily = "Arial"; - fmtdata.StepData[40].Font.FontSize = "12"; - fmtdata.StepData[40].StepLayoutData.STExtraSpace = "0"; - - // note location (create a box to locate it) - //fmtdata.BoxData[1].Index = 1; - //fmtdata.BoxData[1].Start = 6; - //fmtdata.BoxData[1].End = 240; - //fmtdata.BoxData[1].TxtStart = 12; - //fmtdata.BoxData[1].TxtWidth = 450; - //fmtdata.BoxData[1].BXULC = " "; - - //Disable extra Cautions and notes - // Caution 1 - fmtdata.StepData[20].Inactive = "True"; - // Caution 2 - fmtdata.StepData[21].Inactive = "True"; - // Caution 3 - fmtdata.StepData[27].Inactive = "True"; - // Caution 4 - fmtdata.StepData[29].Inactive = "True"; - // Note 1 - fmtdata.StepData[22].Inactive = "True"; - // Note 2 - fmtdata.StepData[23].Inactive = "True"; - // Note 3 - fmtdata.StepData[26].Inactive = "True"; - // Note 4 - fmtdata.StepData[28].Inactive = "True"; - // Note 5 - fmtdata.StepData[32].Inactive = "True"; - } - private void AddMCGfmtOVR(ref FormatData fmtdata) // McGuire - { - // Transitions - fmtdata.TransData.Cap1stCharTrans = "False"; - - fmtdata.TransData.TransTypeData[0].TransFormat = "{Proc Num} ({Proc Title}), Step {First Step}"; - fmtdata.TransData.TransTypeData[0].TransMenu = "{Proc Num} ({Proc Title}), Step {First Step}"; - - fmtdata.TransData.TransTypeData[3].TransFormat = "{First Step} through {Last Step} of {?.Proc Num} ({?.Proc Title}), {?.Sect Num} ({?.Sect Title})"; - fmtdata.TransData.TransTypeData[3].TransMenu = "{First Step} through {Last Step} of {Proc Num} ({Proc Title}), {Sect Num} ({Sect Title})"; - fmtdata.TransData.TransTypeData[3].TransUI = "ProcMenu, SectMenuStep, StepFirst, StepLast"; - - fmtdata.TransData.TransTypeData[4].TransFormat = "{Sect Num} ({Sect Title}), Step {First Step}"; - fmtdata.TransData.TransTypeData[4].TransMenu = "{Sect Num} ({Sect Title}), Step {First Step}"; - fmtdata.TransData.TransTypeData[4].TransUI = "ProcCur, SectMenuAny, StepAllowNone, StepFirst"; - - fmtdata.TransData.TransTypeData[5].TransFormat = "{Proc Num} ({Proc Title}), {Sect Num} ({Sect Title}), Step {First Step}"; - fmtdata.TransData.TransTypeData[5].TransMenu = "{Proc Num} ({Proc Title}), {Sect Num} ({Sect Title}), Step {First Step}"; - fmtdata.TransData.TransTypeData[5].TransUI = "ProcMenu, SectMenuAny, StepAllowNone, StepFirst"; - - fmtdata.TransData.TransTypeData[6].TransUI = "ProcCur, SectMenuStep, StepFirst"; - } - private void AddMCGDEVfmt(ref FormatData fmtdata) - { - fmtdata.SectData.ReplaceWordsInROs = "False"; - } - } - public partial class FmtToXml - { - private void AddMCGPage(ref PageStyles pgstyles) - { - // proc steps - pgstyles.PgStyles[0].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[0].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[0].Items[7].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[0].Items[10].Token = "Rev. {REV}"; - // proc steps - no header - pgstyles.PgStyles[1].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[1].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[1].Items[7].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[1].Items[10].Token = "Rev. {REV}"; - // enclosures - pgstyles.PgStyles[2].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[2].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[2].Items[7].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[2].Items[9].Token = "Rev. {REV}"; - // Attachments - pgstyles.PgStyles[4].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[4].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[4].Items[7].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[4].Items[9].Token = "Rev. {REV}"; - // Status Tree - pgstyles.PgStyles[5].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[5].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[5].Items[7].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[5].Items[9].Token = "Rev. {REV}"; - // Table of contents - pgstyles.PgStyles[6].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[6].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[6].Items[6].Token = "{ROMANPAGE}"; - pgstyles.PgStyles[6].Items[8].Token = "Rev. {REV}"; - } - private void AddMCGDOC(ref DocStyles dcstyles) - { - SetMcGuireDocStyleFont(ref dcstyles); - - dcstyles.DcStyles[0].CBMargin = 50; - //dcstyles.DcStyles[0].CBLoc = 3; - dcstyles.DcStyles[0].PageLength = 624; - dcstyles.DcStyles[1].CBMargin = 50; - //dcstyles.DcStyles[1].CBLoc = 3; - dcstyles.DcStyles[1].PageLength = 624; - dcstyles.DcStyles[2].CBMargin = 50; - //dcstyles.DcStyles[2].CBLoc = 3; - dcstyles.DcStyles[2].PageLength = 624; - } - private static void SetMcGuireDocStyleFont(ref DocStyles dcstyles) - { - int i = 0; - int ii = 0; - // Set font to Arial 12 pt - for (i = 0; i < dcstyles.DcStyles.Length; i++) - { - dcstyles.DcStyles[i].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[i].dstyle.FontSize = "12"; - dcstyles.DcStyles[i].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[i].ContStyle.FontSize = "12"; - } - return; - } - } - public partial class RtfToSvg - { - private void AddMCG(XmlDocument myDoc) - { - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_McGuire.cs.org b/PROMS/fmtxml/PlantSpecific_McGuire.cs.org deleted file mode 100644 index 59017ae0..00000000 --- a/PROMS/fmtxml/PlantSpecific_McGuire.cs.org +++ /dev/null @@ -1,91 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddMCGfmt(ref FormatData fmtdata) // McGuire - { - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.SeparatorLocation = -2; - - // caution separator - fmtdata.StepData[6].StepLayoutData.STBoxindex = "1"; - fmtdata.StepData[6].TabData.Bullet.Separate = "True"; - fmtdata.StepData[6].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[6].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[6].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[6].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[6].TabData.Bullet.Font.CPI = "12"; - - // note location/tab - fmtdata.StepData[7].StepLayoutData.STBoxindex = "1"; - fmtdata.StepData[7].TabData.Ident = "NOTE: "; - fmtdata.StepData[7].TabData.Bullet.Separate = "True"; - fmtdata.StepData[7].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[7].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[7].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[7].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[7].TabData.Bullet.Font.CPI = "12"; - - // RNOType - fmtdata.StepData[40].Font.FontFamily = "Arial"; - fmtdata.StepData[40].Font.FontSize = "11"; - - // note location (create a box to locate it) - fmtdata.BoxData[1].Index = 1; - fmtdata.BoxData[1].Start = 6; - fmtdata.BoxData[1].End = 240; - fmtdata.BoxData[1].TxtStart = 12; - fmtdata.BoxData[1].TxtWidth = 450; - fmtdata.BoxData[1].BXULC = " "; - } - } - public partial class FmtToXml - { - private void AddMCGPage(ref PageStyles pgstyles) - { - // proc steps - pgstyles.PgStyles[0].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[0].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[0].Items[7].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[0].Items[10].Token = "Rev. {REV}"; - // proc steps - no header - pgstyles.PgStyles[1].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[1].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[1].Items[7].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[1].Items[10].Token = "Rev. {REV}"; - // enclosures - pgstyles.PgStyles[2].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[2].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[2].Items[7].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[2].Items[9].Token = "Rev. {REV}"; - // Attachments - pgstyles.PgStyles[4].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[4].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[4].Items[7].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[4].Items[9].Token = "Rev. {REV}"; - // Status Tree - pgstyles.PgStyles[5].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[5].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[5].Items[7].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[5].Items[9].Token = "Rev. {REV}"; - // Table of contents - pgstyles.PgStyles[6].Items[2].Token = "PAGE NO."; - pgstyles.PgStyles[6].Items[5].Style.FontSize = "14"; - pgstyles.PgStyles[6].Items[6].Token = "{ROMANPAGE}"; - pgstyles.PgStyles[6].Items[8].Token = "Rev. {REV}"; - } - private void AddMCGDOC(ref DocStyles dcstyles) - { - } - } - public partial class RtfToSvg - { - private void AddMCG(XmlDocument myDoc) - { - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_PointBeach.cs b/PROMS/fmtxml/PlantSpecific_PointBeach.cs deleted file mode 100644 index 398c1a08..00000000 --- a/PROMS/fmtxml/PlantSpecific_PointBeach.cs +++ /dev/null @@ -1,206 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddWEP2fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectPrtData.DiffContActBox = "True"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ContActBoxOnSubSteps = "True"; - fmtdata.TransData.Underline = "True"; - fmtdata.StepData[2].TabData.Ident = "{Section Prefix}{numeric} "; - fmtdata.StepData[3].TabData.Ident = "{!C0}{numeric} "; - fmtdata.StepData[9].TabData.Ident = "{Section Prefix}{numeric} "; - //// EQuipment List - //fmtdata.StepData[11].StepLayoutData.EveryNLines = "1"; - // EQuipment List With Blank - fmtdata.StepData[14].StepLayoutData.EveryNLines = "99"; - //// Optional EQuipment List - //fmtdata.StepData[30].StepLayoutData.EveryNLines = "99"; - //TitleWithTextRight - fmtdata.StepData[42].StepEditData.TypeMenu.MenuItem = "Title With Text Right"; - //TitleWithTextBelow - fmtdata.StepData[43].StepEditData.TypeMenu.MenuItem = "Title With Text Below"; - //ContAcSequential - fmtdata.StepData[44].StepEditData.TypeMenu.MenuItem = "Continuous Action AER"; - //ContAcAnd - fmtdata.StepData[45].StepEditData.TypeMenu.MenuItem = "Continuous Action RNO"; - //ContAcOr - fmtdata.StepData[46].StepEditData.TypeMenu.MenuItem = "Continuous Action AER & RNO"; - - fmtdata.TransData.TransTypeData[5].TransFormat = "{?.Sect Hdr}, Step {First Step}"; - fmtdata.TransData.TransTypeData[5].TransMenu = "{Sect Num}, {Sect Title}, Step {First Step}"; - fmtdata.TransData.TransTypeData[7].TransType = 4; - fmtdata.TransData.TransTypeData[7].TransFormat = "Attachment {Sect Num}{First Step}"; - fmtdata.TransData.TransTypeData[7].TransMenu = "Attachment {Sect Num}{First Step} ( To a different section )"; - fmtdata.TransData.TransTypeData[7].TransUI = "ProcCur, SectMenuAny, StepAllowNone, StepFirst"; - fmtdata.TransData.TransTypeData[8].TransType = 0; - fmtdata.TransData.TransTypeData[8].TransFormat = "{Proc Num}, {Proc Title}, {Sect Num}, {Sect Title}, Step {First Step}"; - fmtdata.TransData.TransTypeData[8].TransMenu = "{Proc Num}, {Proc Title}, {Sect Num}, {Sect Title}, Step {First Step}"; - fmtdata.TransData.TransTypeData[8].TransUI = "ProcMenu, SectMenuAny, StepAllowNone, StepFirst"; - } - private void AddWEP2Overridefmt(ref FormatData fmtdata) - { - // Boxes - fmtdata.BoxData[3].Start = 260; - fmtdata.BoxData[3].End = 504; - fmtdata.BoxData[3].TxtWidth = 210; - fmtdata.BoxData[3].Font.FontFamily = "Prestige Elite Tall"; - fmtdata.BoxData[4].End = 504; - fmtdata.BoxData[4].TxtWidth = 216; - fmtdata.BoxData[4].Font.FontFamily = "Prestige Elite Tall"; - fmtdata.BoxData[5].End = 504; - fmtdata.BoxData[5].TxtWidth = 198; - fmtdata.BoxData[5].Font.FontFamily = "Prestige Elite Tall"; - fmtdata.BoxData[8].End = 260; - fmtdata.BoxData[8].TxtWidth = 198; - fmtdata.BoxData[8].Font.FontFamily = "Prestige Elite Tall"; - fmtdata.BoxData[9].Start = 260; - fmtdata.BoxData[9].End = 504; - fmtdata.BoxData[9].TxtWidth = 210; - fmtdata.BoxData[9].Font.FontFamily = "Prestige Elite Tall"; - } - private void AddWEPENBFmt(ref FormatData fmtdata) - { - fmtdata.ProcData.ChangeBarData.AbsoluteFixedChangeColumn = "True"; - fmtdata.ProcData.ChangeBarData.FixedChangeColumn = 71; - fmtdata.ProcData.ChangeBarData.FixedAERChangeColumn = 0; - fmtdata.StepData[2].TabData.RNOIdent = @"\ul ERG STEP:\ulnone "; - fmtdata.StepData[3].TabData.RNOIdent = @"\ul ERG STEP:\ulnone "; - fmtdata.StepData[6].TabData.RNOIdent = @"\ul ERG CAUTION:\ulnone "; - fmtdata.StepData[7].TabData.RNOIdent = @"\ul ERG NOTE:\ulnone "; - fmtdata.StepData[18].TabData.RNOIdent = @"\ul ERG STEP:\ulnone "; - fmtdata.StepData[20].TabData.RNOIdent = @"\ul ERG CAUTION:\ulnone "; - fmtdata.StepData[21].TabData.RNOIdent = @"\ul ERG CAUTION:\ulnone "; - fmtdata.StepData[22].TabData.RNOIdent = @"\ul ERG NOTE:\ulnone "; - fmtdata.StepData[23].TabData.RNOIdent = @"\ul ERG NOTE:\ulnone "; - fmtdata.StepData[26].TabData.RNOIdent = @"\ul ERG NOTE:\ulnone "; - fmtdata.StepData[27].TabData.RNOIdent = @"\ul ERG CAUTION:\ulnone "; - } - private void AddWPB20fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.ColS = 50; - fmtdata.SectData.StepSectionData.StpSectPrtData.LimitWidToPageWid = "True"; - fmtdata.TransData.DoSectionTransitions = "True"; - fmtdata.PrintData.ProcDescrList[0].ProcDescr1 = "{null}"; - fmtdata.StepData[2].TabData.IdentEdit = "STEP {numeric} : "; - fmtdata.StepData[2].TabData.Ident = "STEP {numeric} : "; - fmtdata.StepData[2].TabData.RNOIdentEdit = "STEP {numeric} : "; - fmtdata.StepData[2].TabData.RNOIdent = "STEP {numeric} : "; - fmtdata.StepData[2].StepPrintData.PosAdjust = "36"; //HLSs - fmtdata.StepData[3].StepPrintData.PosAdjust = "36"; - fmtdata.StepData[18].StepPrintData.PosAdjust = "36"; - fmtdata.StepData[40].StepPrintData.PosAdjust = "36"; // (RNO inherits from HLS) - fmtdata.StepData[41].StepPrintData.PosAdjust = "36"; - fmtdata.StepData[6].StepPrintData.PosAdjust = "50"; //Cautions - fmtdata.StepData[20].StepPrintData.PosAdjust = "50"; - fmtdata.StepData[21].StepPrintData.PosAdjust = "50"; - fmtdata.StepData[27].StepPrintData.PosAdjust = "50"; - fmtdata.StepData[29].StepPrintData.PosAdjust = "50"; - fmtdata.StepData[7].StepPrintData.PosAdjust = "67"; //Notes - fmtdata.StepData[22].StepPrintData.PosAdjust = "67"; - fmtdata.StepData[23].StepPrintData.PosAdjust = "67"; - fmtdata.StepData[26].StepPrintData.PosAdjust = "67"; - fmtdata.StepData[28].StepPrintData.PosAdjust = "67"; - fmtdata.StepData[32].StepPrintData.PosAdjust = "67"; - fmtdata.StepData[9].StepPrintData.PosAdjust = "0"; - fmtdata.StepData[24].StepPrintData.PosAdjust = "-50"; - } - private void AddWPB22fmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.ColS = 50; - fmtdata.SectData.StepSectionData.StpSectPrtData.LimitWidToPageWid = "True"; - fmtdata.TransData.DoSectionTransitions = "True"; - fmtdata.PrintData.ProcDescrList[0].ProcDescr1 = "{null}"; - fmtdata.StepData[2].TabData.IdentEdit = "STEP {numeric} : "; - fmtdata.StepData[2].TabData.Ident = "STEP {numeric} : "; - fmtdata.StepData[2].TabData.RNOIdentEdit = "STEP {numeric} : "; - fmtdata.StepData[2].TabData.RNOIdent = "STEP {numeric} : "; - //fmtdata.StepData[23].StepPrintData.PosAdjust = "46"; - //fmtdata.StepData[24].StepPrintData.PosAdjust = "-50"; - fmtdata.StepData[2].StepPrintData.PosAdjust = "36"; //HLSs - fmtdata.StepData[3].StepPrintData.PosAdjust = "36"; - fmtdata.StepData[18].StepPrintData.PosAdjust = "36"; - fmtdata.StepData[40].StepPrintData.PosAdjust = "36"; // (RNO inherits from HLS) - fmtdata.StepData[41].StepPrintData.PosAdjust = "36"; - fmtdata.StepData[6].StepPrintData.PosAdjust = "50"; //Cautions - fmtdata.StepData[20].StepPrintData.PosAdjust = "50"; - fmtdata.StepData[21].StepPrintData.PosAdjust = "50"; - fmtdata.StepData[27].StepPrintData.PosAdjust = "50"; - fmtdata.StepData[29].StepPrintData.PosAdjust = "50"; - fmtdata.StepData[7].StepPrintData.PosAdjust = "67"; //Notes - fmtdata.StepData[22].StepPrintData.PosAdjust = "67"; - fmtdata.StepData[23].StepPrintData.PosAdjust = "67"; - fmtdata.StepData[26].StepPrintData.PosAdjust = "67"; - fmtdata.StepData[28].StepPrintData.PosAdjust = "67"; - fmtdata.StepData[32].StepPrintData.PosAdjust = "67"; - fmtdata.StepData[9].StepPrintData.PosAdjust = "0"; - fmtdata.StepData[24].StepPrintData.PosAdjust = "-50"; - } - } - public partial class FmtToXml - { - private void AddWEP2DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[1].PageLength = 654; - dcstyles.DcStyles[6].PageWidth = 564; - } - private void AddWEPENBPage(ref PageStyles pgstyles) - { - pgstyles.PgStyles[0].Items[12].Col = 520; // Step Descr:HLRNO location - pgstyles.PgStyles[0].Items[12].Justify = "PSRight"; - pgstyles.PgStyles[1].Items[1].Col = 247; // Cover page token location adjustments - pgstyles.PgStyles[1].Items[2].Col = 238; - pgstyles.PgStyles[1].Items[3].Col = 238; - pgstyles.PgStyles[1].Items[4].Col = 266; - pgstyles.PgStyles[1].Items[5].Col = 288; - pgstyles.PgStyles[1].Items[6].Col = 266; - pgstyles.PgStyles[1].Items[7].Col = 288; - pgstyles.PgStyles[1].Items[8].Col = 266; - pgstyles.PgStyles[1].Items[9].Col = 288; - pgstyles.PgStyles[1].Items[10].Col = 266; - pgstyles.PgStyles[1].Items[11].Col = 288; - pgstyles.PgStyles[1].Items[12].Col = 266; - pgstyles.PgStyles[1].Items[13].Col = 288; - pgstyles.PgStyles[1].Items[14].Col = 266; - pgstyles.PgStyles[1].Items[15].Col = 288; - pgstyles.PgStyles[2].Items[1].Token = "{BOX3}"; - } - private void AddWPB20DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].ContTop = ". . . Step %3d Continued from Previous Page . . ."; - dcstyles.DcStyles[0].ContBottom = ". . . Step %3d Continued on Next Page . . ."; - } - private void AddWEPENBDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].PageWidth = 580; - dcstyles.DcStyles[2].PageWidth = 584; - } - private void AddWEPENB_00DOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].PageWidth = 580; - } - } - public partial class RtfToSvg - { - private void AddWEP2(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[6]); - myDoc.DocumentElement.RemoveChild(myDoc.DocumentElement.ChildNodes[4]); // remove references to BMP files. - myDoc.DocumentElement.RemoveChild(myDoc.DocumentElement.ChildNodes[4]); - } - private void AddWEPENB(XmlDocument myDoc) - { - myDoc.DocumentElement.RemoveChild(myDoc.DocumentElement.ChildNodes[4]); // remove references to BMP files. - myDoc.DocumentElement.RemoveChild(myDoc.DocumentElement.ChildNodes[4]); - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_PrairieIsland.cs b/PROMS/fmtxml/PlantSpecific_PrairieIsland.cs deleted file mode 100644 index 3cf259b5..00000000 --- a/PROMS/fmtxml/PlantSpecific_PrairieIsland.cs +++ /dev/null @@ -1,3107 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - // FMT - public partial class FmtFileToXml - { - private void AddNSPFMT(ref FormatData fmtdata) - { - NSP_ArialFontInProcedures(ref fmtdata); - // checkoffs - fmtdata.ProcData.CheckOffData.CheckOffList[7].Index = 7; - fmtdata.ProcData.CheckOffData.CheckOffList[7].UIMark = 83; - fmtdata.ProcData.CheckOffData.CheckOffList[7].MenuItem = "S"; - fmtdata.ProcData.CheckOffData.CheckOffList[7].Macro = "C7"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Index = 8; - fmtdata.ProcData.CheckOffData.CheckOffList[8].UIMark = 88; - fmtdata.ProcData.CheckOffData.CheckOffList[8].MenuItem = "X"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Macro = "C8"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Index = 9; - fmtdata.ProcData.CheckOffData.CheckOffList[9].UIMark = 67; - fmtdata.ProcData.CheckOffData.CheckOffList[9].MenuItem = "C"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Macro = "C9"; - // Standard High Level step - fmtdata.StepData[2].Font.FontStyle = "Bold"; - // Immediate Actions step - fmtdata.StepData[3].Font.FontStyle = "Bold"; - // Continuous Action High Level Step - fmtdata.StepData[9].Font.FontStyle = "Bold"; - // Caution - fmtdata.StepData[6].StepLayoutData.STBoxindex = null; - fmtdata.StepData[6].WidthOverride = "333"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note - fmtdata.StepData[7].TabData.Ident = "Note "; - fmtdata.StepData[7].TabData.RNOIdent = "Note "; - fmtdata.StepData[7].StepLayoutData.STBoxindex = null; - fmtdata.StepData[7].WidthOverride = "333"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - } - private void NSP_ArialFontInProcedures(ref FormatData fmtdata) - { - // Set the overall font to Arial 11 pt - fmtdata.FontData.FontFamily = "Arial"; - fmtdata.FontData.FontSize = "11"; - fmtdata.FontData.CPI = "10"; - - fmtdata.SectData.SectionNumber.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionNumber.Font.FontSize = "11"; - fmtdata.SectData.SectionHeader.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionHeader.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle.FontSize = "11"; - //// Step Type Base - fmtdata.StepData[0].Font.FontFamily = "Arial"; - fmtdata.StepData[0].Font.FontSize = "11"; - fmtdata.StepData[0].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[0].TabData.Font.FontSize = "11"; - - // Substep - //fmtdata.StepData[1].Font.FontFamily = "Arial"; - //fmtdata.StepData[1].Font.FontSize = "11"; - fmtdata.StepData[1].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[1].TabData.Font.FontSize = "11"; - - // Standard High Level step - fmtdata.StepData[2].Font.FontFamily = "Arial"; - fmtdata.StepData[2].Font.FontSize = "11"; - fmtdata.StepData[2].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[2].TabData.Font.FontSize = "11"; - - // Immediate - fmtdata.StepData[3].Font.FontFamily = "Arial"; - fmtdata.StepData[3].Font.FontSize = "11"; - fmtdata.StepData[3].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[3].TabData.Font.FontSize = "11"; - - // And - fmtdata.StepData[4].Font.FontFamily = "Arial"; - fmtdata.StepData[4].Font.FontSize = "11"; - fmtdata.StepData[4].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[4].TabData.Font.FontSize = "11"; - - // OR - fmtdata.StepData[5].Font.FontFamily = "Arial"; - fmtdata.StepData[5].Font.FontSize = "11"; - fmtdata.StepData[5].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[5].TabData.Font.FontSize = "11"; - - // Cautions use Arial Font for Tab (instead of Script) and - // any bullets following the tab are at a different point size - fmtdata.StepData[6].Font.FontFamily = "Arial"; - fmtdata.StepData[6].Font.FontSize = "11"; - fmtdata.StepData[6].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[6].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[6].TabData.Font.FontSize = "18"; - fmtdata.StepData[6].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[6].TabData.Font.CPI = "8"; - fmtdata.StepData[6].TabData.Bullet.Separate = "True"; - fmtdata.StepData[6].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[6].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[6].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[6].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[6].WidthOverride = "421"; - fmtdata.StepData[6].ColOverride = "194"; - - ////fmtdata.StepData[20] = fmtdata.StepData[6]; - ////fmtdata.StepData[20].Type = "Caution1"; - ////fmtdata.StepData[20].ParentType = "Caution"; - fmtdata.StepData[20].Font.FontFamily = "Arial"; - fmtdata.StepData[20].Font.FontSize = "11"; - fmtdata.StepData[20].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[20].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[20].TabData.Font.FontSize = "18"; - fmtdata.StepData[20].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[20].TabData.Font.CPI = "8"; - fmtdata.StepData[20].TabData.Bullet.Separate = "True"; - fmtdata.StepData[20].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[20].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[20].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[20].TabData.Bullet.Font.FontStyle = "Bold"; - - ////fmtdata.StepData[21] = fmtdata.StepData[6]; - ////fmtdata.StepData[21].Type = "Caution2"; - ////fmtdata.StepData[21].ParentType = "Caution"; - fmtdata.StepData[21].Font.FontFamily = "Arial"; - fmtdata.StepData[21].Font.FontSize = "11"; - fmtdata.StepData[21].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[21].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[21].TabData.Font.FontSize = "18"; - fmtdata.StepData[21].TabData.Font.CPI = "8"; - fmtdata.StepData[21].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[21].TabData.Bullet.Separate = "True"; - fmtdata.StepData[21].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[21].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[21].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[21].TabData.Bullet.Font.FontStyle = "Bold"; - - ////fmtdata.StepData[27] = fmtdata.StepData[6]; - ////fmtdata.StepData[27].Type = "Caution3"; - ////fmtdata.StepData[27].ParentType = "Caution"; - fmtdata.StepData[27].Font.FontFamily = "Arial"; - fmtdata.StepData[27].Font.FontSize = "11"; - fmtdata.StepData[27].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[27].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[27].TabData.Font.FontSize = "18"; - fmtdata.StepData[27].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[27].TabData.Font.CPI = "8"; - fmtdata.StepData[27].TabData.Bullet.Separate = "True"; - fmtdata.StepData[27].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[27].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[27].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[27].TabData.Bullet.Font.FontStyle = "Bold"; - - ////fmtdata.StepData[29] = fmtdata.StepData[6]; - ////fmtdata.StepData[29].Type = "Caution4"; - ////fmtdata.StepData[29].ParentType = "Caution"; - fmtdata.StepData[29].Font.FontFamily = "Arial"; - fmtdata.StepData[29].Font.FontSize = "11"; - fmtdata.StepData[29].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[29].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[29].TabData.Font.FontSize = "18"; - fmtdata.StepData[29].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[29].TabData.Font.CPI = "8"; - fmtdata.StepData[29].TabData.Bullet.Separate = "True"; - fmtdata.StepData[29].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[29].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[29].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[29].TabData.Bullet.Font.FontStyle = "Bold"; - - // Notes used Arial font and any bullets following the tab are at - // a different point size - fmtdata.StepData[7].Font.FontFamily = "Arial"; - fmtdata.StepData[7].Font.FontSize = "11"; - fmtdata.StepData[7].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[7].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[7].TabData.Font.FontSize = "14"; - fmtdata.StepData[7].TabData.Font.CPI = "8"; - fmtdata.StepData[7].TabData.Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[7].TabData.Bullet.Separate = "True"; - fmtdata.StepData[7].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[7].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[7].TabData.Bullet.Font.FontSize = "11"; - fmtdata.StepData[7].TabData.Bullet.Font.FontStyle = "Bold"; - fmtdata.StepData[7].WidthOverride = "401"; - - ////fmtdata.StepData[22] = fmtdata.StepData[7]; - ////fmtdata.StepData[22].Type = "Note1"; - ////fmtdata.StepData[22].ParentType = "Note"; - fmtdata.StepData[22].Font.FontFamily = "Arial"; - fmtdata.StepData[22].Font.FontSize = "11"; - fmtdata.StepData[22].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[22].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[22].TabData.Font.FontSize = "14"; - fmtdata.StepData[22].TabData.Font.CPI = "8"; - fmtdata.StepData[22].TabData.Font.FontStyle = "Italics, Bold"; - - ////fmtdata.StepData[23] = fmtdata.StepData[7]; - ////fmtdata.StepData[23].Type = "Note2"; - ////fmtdata.StepData[23].ParentType = "Note"; - fmtdata.StepData[23].Font.FontFamily = "Arial"; - fmtdata.StepData[23].Font.FontSize = "11"; - fmtdata.StepData[23].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[23].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[23].TabData.Font.FontSize = "14"; - fmtdata.StepData[23].TabData.Font.CPI = "8"; - fmtdata.StepData[23].TabData.Font.FontStyle = "Italics, Bold"; - - ////fmtdata.StepData[26] = fmtdata.StepData[7]; - ////fmtdata.StepData[26].Type = "Note3"; - ////fmtdata.StepData[26].ParentType = "Note"; - fmtdata.StepData[26].Font.FontFamily = "Arial"; - fmtdata.StepData[26].Font.FontSize = "11"; - fmtdata.StepData[26].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[26].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[26].TabData.Font.FontSize = "14"; - fmtdata.StepData[26].TabData.Font.CPI = "8"; - fmtdata.StepData[26].TabData.Font.FontStyle = "Italics, Bold"; - - ////fmtdata.StepData[28] = fmtdata.StepData[7]; - ////fmtdata.StepData[28].Type = "Note4"; - ////fmtdata.StepData[28].ParentType = "Note"; - fmtdata.StepData[28].Font.FontFamily = "Arial"; - fmtdata.StepData[28].Font.FontSize = "11"; - fmtdata.StepData[28].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[28].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[28].TabData.Font.FontSize = "14"; - fmtdata.StepData[28].TabData.Font.CPI = "8"; - fmtdata.StepData[28].TabData.Font.FontStyle = "Italics, Bold"; - - ////fmtdata.StepData[32] = fmtdata.StepData[7]; - ////fmtdata.StepData[32].Type = "Note5"; - ////fmtdata.StepData[32].ParentType = "Note"; - fmtdata.StepData[32].Font.FontFamily = "Arial"; - fmtdata.StepData[32].Font.FontSize = "11"; - fmtdata.StepData[32].Font.FontStyle = "Italics, Bold"; - fmtdata.StepData[32].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[32].TabData.Font.FontSize = "14"; - fmtdata.StepData[32].TabData.Font.CPI = "8"; - fmtdata.StepData[32].TabData.Font.FontStyle = "Italics, Bold"; - - // Table - fmtdata.StepData[8].Font.FontFamily = "Arial"; - fmtdata.StepData[8].Font.FontSize = "11"; - fmtdata.StepData[8].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[8].TabData.Font.FontSize = "11"; - - // Continuous - fmtdata.StepData[9].Font.FontFamily = "Arial"; - fmtdata.StepData[9].Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[9].TabData.Font.FontSize = "11"; - // AER Table - fmtdata.StepData[10].Font.FontFamily = "Arial"; - fmtdata.StepData[10].Font.FontSize = "11"; - fmtdata.StepData[10].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[10].TabData.Font.FontSize = "11"; - // EquipmentList - fmtdata.StepData[11].Font.FontFamily = "Arial"; - fmtdata.StepData[11].Font.FontSize = "11"; - fmtdata.StepData[11].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[11].TabData.Font.FontSize = "11"; - // Title - fmtdata.StepData[12].Font.FontFamily = "Arial"; - fmtdata.StepData[12].Font.FontSize = "11"; - fmtdata.StepData[12].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[12].TabData.Font.FontSize = "11"; - // PageNumber - fmtdata.StepData[13].Font.FontFamily = "Arial"; - fmtdata.StepData[13].Font.FontSize = "11"; - fmtdata.StepData[13].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[13].TabData.Font.FontSize = "11"; - // EquipmentWBlank - fmtdata.StepData[14].Font.FontFamily = "Arial"; - fmtdata.StepData[14].Font.FontSize = "11"; - fmtdata.StepData[14].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[14].TabData.Font.FontSize = "11"; - // ProcNumber - fmtdata.StepData[15].Font.FontFamily = "Arial"; - fmtdata.StepData[15].Font.FontSize = "11"; - fmtdata.StepData[15].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[15].TabData.Font.FontSize = "11"; - // RevNumber - fmtdata.StepData[16].Font.FontFamily = "Arial"; - fmtdata.StepData[16].Font.FontSize = "11"; - fmtdata.StepData[16].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[16].TabData.Font.FontSize = "11"; - // AccPages - fmtdata.StepData[17].Font.FontFamily = "Arial"; - fmtdata.StepData[17].Font.FontSize = "11"; - fmtdata.StepData[17].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[17].TabData.Font.FontSize = "11"; - // LossOfAC - fmtdata.StepData[18].Font.FontFamily = "Arial"; - fmtdata.StepData[18].Font.FontSize = "11"; - fmtdata.StepData[18].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[18].TabData.Font.FontSize = "11"; - // ExplicitAnd - fmtdata.StepData[19].Font.FontFamily = "Arial"; - fmtdata.StepData[19].Font.FontSize = "11"; - fmtdata.StepData[19].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[19].TabData.Font.FontSize = "11"; - // Paragraph - fmtdata.StepData[24].Font.FontFamily = "Arial"; - fmtdata.StepData[24].Font.FontSize = "11"; - fmtdata.StepData[24].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[24].TabData.Font.FontSize = "11"; - // Default - fmtdata.StepData[25].Font.FontFamily = "Arial"; - fmtdata.StepData[25].Font.FontSize = "11"; - fmtdata.StepData[25].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[25].TabData.Font.FontSize = "11"; - // EquipmentOpt - fmtdata.StepData[30].Font.FontFamily = "Arial"; - fmtdata.StepData[30].Font.FontSize = "11"; - fmtdata.StepData[30].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[30].TabData.Font.FontSize = "11"; - // EquipmentOptWBlank - fmtdata.StepData[31].Font.FontFamily = "Arial"; - fmtdata.StepData[31].Font.FontSize = "11"; - fmtdata.StepData[31].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[31].TabData.Font.FontSize = "11"; - // BorderlessAERTable - fmtdata.StepData[33].Font.FontFamily = "Arial"; - fmtdata.StepData[33].Font.FontSize = "11"; - fmtdata.StepData[33].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[33].TabData.Font.FontSize = "11"; - // BorderlessTable - fmtdata.StepData[34].Font.FontFamily = "Arial"; - fmtdata.StepData[34].Font.FontSize = "11"; - fmtdata.StepData[34].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[34].TabData.Font.FontSize = "11"; - // ImplicitOr - fmtdata.StepData[35].Font.FontFamily = "Arial"; - fmtdata.StepData[35].Font.FontSize = "11"; - fmtdata.StepData[35].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[35].TabData.Font.FontSize = "11"; - // Figure - fmtdata.StepData[36].Font.FontFamily = "Arial"; - fmtdata.StepData[36].Font.FontSize = "11"; - fmtdata.StepData[36].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[36].TabData.Font.FontSize = "11"; - // AERFigure - fmtdata.StepData[37].Font.FontFamily = "Arial"; - fmtdata.StepData[37].Font.FontSize = "11"; - fmtdata.StepData[37].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[37].TabData.Font.FontSize = "11"; - // BorderlessFigure - fmtdata.StepData[38].Font.FontFamily = "Arial"; - fmtdata.StepData[38].Font.FontSize = "11"; - fmtdata.StepData[38].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[38].TabData.Font.FontSize = "11"; - // BorderlessFAERigure - fmtdata.StepData[39].Font.FontFamily = "Arial"; - fmtdata.StepData[39].Font.FontSize = "11"; - fmtdata.StepData[39].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[39].TabData.Font.FontSize = "11"; - // RNOType - fmtdata.StepData[40].Font.FontFamily = "Arial"; - fmtdata.StepData[40].Font.FontSize = "11"; - fmtdata.StepData[40].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[40].TabData.Font.FontSize = "11"; - // HIGH5 - fmtdata.StepData[41].Font.FontFamily = "Arial"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[41].TabData.Font.FontSize = "11"; - // TitleWithTextRight - fmtdata.StepData[42].Font.FontFamily = "Arial"; - fmtdata.StepData[42].Font.FontSize = "11"; - fmtdata.StepData[42].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[42].TabData.Font.FontSize = "11"; - // TitleWithTextBelow - fmtdata.StepData[43].Font.FontFamily = "Arial"; - fmtdata.StepData[43].Font.FontSize = "11"; - fmtdata.StepData[43].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[43].TabData.Font.FontSize = "11"; - // ContAcSequential - fmtdata.StepData[44].Font.FontFamily = "Arial"; - fmtdata.StepData[44].Font.FontSize = "11"; - fmtdata.StepData[44].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[44].TabData.Font.FontSize = "11"; - // ContAcAnd - fmtdata.StepData[45].Font.FontFamily = "Arial"; - fmtdata.StepData[45].Font.FontSize = "11"; - fmtdata.StepData[45].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[45].TabData.Font.FontSize = "11"; - // ContAcOr - fmtdata.StepData[46].Font.FontFamily = "Arial"; - fmtdata.StepData[46].Font.FontSize = "11"; - fmtdata.StepData[46].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[46].TabData.Font.FontSize = "11"; - // ContAcParagraph - fmtdata.StepData[47].Font.FontFamily = "Arial"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[47].TabData.Font.FontSize = "11"; - } - private void AddNSP00FMT(ref FormatData fmtdata) - { - NSP_ArialFontInProcedures(ref fmtdata); - - // High - fmtdata.StepData[2].Font.FontFamily = "Arial"; - fmtdata.StepData[2].Font.FontSize = "11"; - fmtdata.StepData[2].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[2].TabData.Font.FontSize = "11"; - // Immediate - fmtdata.StepData[3].Font.FontFamily = "Arial"; - fmtdata.StepData[3].Font.FontSize = "11"; - fmtdata.StepData[3].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[3].TabData.Font.FontSize = "11"; - // Continuous - fmtdata.StepData[9].Font.FontFamily = "Arial"; - fmtdata.StepData[9].Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[9].TabData.Font.FontSize = "11"; - // LossOfAC - fmtdata.StepData[18].Font.FontFamily = "Arial"; - fmtdata.StepData[18].Font.FontSize = "11"; - fmtdata.StepData[18].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[18].TabData.Font.FontSize = "11"; - // High5 - fmtdata.StepData[41].Font.FontFamily = "Arial"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[41].TabData.Font.FontSize = "11"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - } - private void AddNSPBCKFMT(ref FormatData fmtdata) - { - // section - fmtdata.SectData.SectionNumber.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionNumber.Font.FontSize = "11"; - fmtdata.SectData.SectionHeader.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionHeader.Font.FontSize = "11"; - // Table - fmtdata.StepData[8].Font.FontFamily = "Arial"; - fmtdata.StepData[8].Font.FontSize = "11"; - // Title - fmtdata.StepData[12].Font.FontFamily = "Arial"; - fmtdata.StepData[12].Font.FontSize = "11"; - // PageNumber - fmtdata.StepData[13].Font.FontFamily = "Arial"; - fmtdata.StepData[13].Font.FontSize = "11"; - // EquipmentWBlank - fmtdata.StepData[14].Font.FontFamily = "Arial"; - fmtdata.StepData[14].Font.FontSize = "11"; - // ProcNumber - fmtdata.StepData[15].Font.FontFamily = "Arial"; - fmtdata.StepData[15].Font.FontSize = "11"; - // RevNumber - fmtdata.StepData[16].Font.FontFamily = "Arial"; - fmtdata.StepData[16].Font.FontSize = "11"; - // AccPages - fmtdata.StepData[17].Font.FontFamily = "Arial"; - fmtdata.StepData[17].Font.FontSize = "11"; - // Default - fmtdata.StepData[25].Font.FontFamily = "Arial"; - fmtdata.StepData[25].Font.FontSize = "11"; - // Note4 - fmtdata.StepData[28].Font.FontFamily = "Arial"; - fmtdata.StepData[28].Font.FontSize = "11"; - // Caution4 - fmtdata.StepData[29].Font.FontFamily = "Arial"; - fmtdata.StepData[29].Font.FontSize = "11"; - // EquipmentOptWBlank - fmtdata.StepData[31].Font.FontFamily = "Arial"; - fmtdata.StepData[31].Font.FontSize = "11"; - // Note5 - fmtdata.StepData[32].Font.FontFamily = "Arial"; - fmtdata.StepData[32].Font.FontSize = "11"; - // BorderlessTable - fmtdata.StepData[34].Font.FontFamily = "Arial"; - fmtdata.StepData[34].Font.FontSize = "11"; - // Indented Paragraph - fmtdata.StepData[35].TabData.Ident = "{indent} "; - fmtdata.StepData[35].TabData.IdentEdit = "{indent} "; - fmtdata.StepData[35].TabData.RNOIdent = "{indent} "; - fmtdata.StepData[35].TabData.RNOIdentEdit = "{indent} "; - // Figure - fmtdata.StepData[36].Font.FontFamily = "Arial"; - fmtdata.StepData[36].Font.FontSize = "11"; - // AERFigure - fmtdata.StepData[37].Font.FontFamily = "Arial"; - fmtdata.StepData[37].Font.FontSize = "11"; - // BorderlessFigure - fmtdata.StepData[38].Font.FontFamily = "Arial"; - fmtdata.StepData[38].Font.FontSize = "11"; - // BorderlessAERFigure - fmtdata.StepData[39].Font.FontFamily = "Arial"; - fmtdata.StepData[39].Font.FontSize = "11"; - // High5 - fmtdata.StepData[41].Font.FontFamily = "Arial"; - fmtdata.StepData[41].Font.FontSize = "11"; - // TitleWithTextRight - fmtdata.StepData[42].Font.FontFamily = "Arial"; - fmtdata.StepData[42].Font.FontSize = "11"; - // TitleWithTextBelow - fmtdata.StepData[43].Font.FontFamily = "Arial"; - fmtdata.StepData[43].Font.FontSize = "11"; - // ContAcSequential - fmtdata.StepData[44].Font.FontFamily = "Arial"; - fmtdata.StepData[44].Font.FontSize = "11"; - // ContAcAnd - fmtdata.StepData[45].Font.FontFamily = "Arial"; - fmtdata.StepData[45].Font.FontSize = "11"; - // ContAcOR - fmtdata.StepData[46].Font.FontFamily = "Arial"; - fmtdata.StepData[46].Font.FontSize = "11"; - // ContAcParagraph - fmtdata.StepData[47].Font.FontFamily = "Arial"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[47].TabData.Font.FontSize = "11"; - fmtdata.StepData[47].TabData.Font.FontStyle = "None"; - - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - } - private void AddNSPABFMT(ref FormatData fmtdata) - { - NSP_ArialFontInProcedures(ref fmtdata); - fmtdata.ProcData.CoverTitleLength = 46; - fmtdata.ProcData.ChangeBarData.FixedChangeColumn = 0; - // checkoffs - fmtdata.ProcData.CheckOffData.CheckOffList[7].Index = 7; - fmtdata.ProcData.CheckOffData.CheckOffList[7].UIMark = 83; - fmtdata.ProcData.CheckOffData.CheckOffList[7].MenuItem = "S"; - fmtdata.ProcData.CheckOffData.CheckOffList[7].Macro = "C7"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Index = 8; - fmtdata.ProcData.CheckOffData.CheckOffList[8].UIMark = 88; - fmtdata.ProcData.CheckOffData.CheckOffList[8].MenuItem = "X"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Macro = "C8"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Index = 9; - fmtdata.ProcData.CheckOffData.CheckOffList[9].UIMark = 67; - fmtdata.ProcData.CheckOffData.CheckOffList[9].MenuItem = "C"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Macro = "C9"; - // Base - fmtdata.StepData[0].Font.CPI = "12"; - // Substep - //fmtdata.StepData[1].Font.CPI = "12"; - // High - fmtdata.StepData[2].Font.CPI = "12"; - // And - fmtdata.StepData[4].Font.CPI = "12"; - // OR - fmtdata.StepData[5].Font.CPI = "12"; - // Caution - fmtdata.StepData[6].Font.CPI = "12"; - fmtdata.StepData[6].OneLineBeforeTab = "True"; - // Note - fmtdata.StepData[7].OneLineBeforeTab = "True"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - fmtdata.StepData[20].OneLineBeforeTab = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - fmtdata.StepData[21].OneLineBeforeTab = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - fmtdata.StepData[27].OneLineBeforeTab = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - fmtdata.StepData[29].OneLineBeforeTab = "True"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - fmtdata.StepData[22].OneLineBeforeTab = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - fmtdata.StepData[23].OneLineBeforeTab = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - fmtdata.StepData[26].OneLineBeforeTab = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - fmtdata.StepData[28].OneLineBeforeTab = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - fmtdata.StepData[32].OneLineBeforeTab = "True"; - } - private void AddNSPAB_X00_OVRfmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "422,180,120"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "422,180,120"; - // checkoffs - fmtdata.ProcData.CheckOffData.CheckOffList[0].Index = 0; - fmtdata.ProcData.CheckOffData.CheckOffList[0].MenuItem = "{section default}"; - fmtdata.ProcData.CheckOffData.CheckOffList[1].Index = 1; - fmtdata.ProcData.CheckOffData.CheckOffList[1].MenuItem = "{no checkoff}"; - - fmtdata.ProcData.CheckOffData.CheckOffList[2].Index = 2; - fmtdata.ProcData.CheckOffData.CheckOffList[2].UIMark = 69; - fmtdata.ProcData.CheckOffData.CheckOffList[2].MenuItem = "E"; - fmtdata.ProcData.CheckOffData.CheckOffList[2].Macro = "C2"; - - fmtdata.ProcData.CheckOffData.CheckOffList[3].Index = 3; - fmtdata.ProcData.CheckOffData.CheckOffList[3].UIMark = 76; - fmtdata.ProcData.CheckOffData.CheckOffList[3].MenuItem = "L"; - fmtdata.ProcData.CheckOffData.CheckOffList[3].Macro = "C3"; - fmtdata.ProcData.CheckOffData.CheckOffList[4].Index = 4; - fmtdata.ProcData.CheckOffData.CheckOffList[4].UIMark = 77; - fmtdata.ProcData.CheckOffData.CheckOffList[4].MenuItem = "M"; - fmtdata.ProcData.CheckOffData.CheckOffList[4].Macro = "C4"; - fmtdata.ProcData.CheckOffData.CheckOffList[5].Index = 5; - fmtdata.ProcData.CheckOffData.CheckOffList[5].UIMark = 78; - fmtdata.ProcData.CheckOffData.CheckOffList[5].MenuItem = "N"; - fmtdata.ProcData.CheckOffData.CheckOffList[5].Macro = "C5"; - fmtdata.ProcData.CheckOffData.CheckOffList[6].Index = 6; - fmtdata.ProcData.CheckOffData.CheckOffList[6].UIMark = 36; - fmtdata.ProcData.CheckOffData.CheckOffList[6].MenuItem = "$"; - fmtdata.ProcData.CheckOffData.CheckOffList[6].Macro = "C6"; - - fmtdata.ProcData.CheckOffData.CheckOffList[7].Index = 7; - fmtdata.ProcData.CheckOffData.CheckOffList[7].UIMark = 83; - fmtdata.ProcData.CheckOffData.CheckOffList[7].MenuItem = "S"; - fmtdata.ProcData.CheckOffData.CheckOffList[7].Macro = "C7"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Index = 8; - fmtdata.ProcData.CheckOffData.CheckOffList[8].UIMark = 88; - fmtdata.ProcData.CheckOffData.CheckOffList[8].MenuItem = "X"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Macro = "C8"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Index = 9; - fmtdata.ProcData.CheckOffData.CheckOffList[9].UIMark = 67; - fmtdata.ProcData.CheckOffData.CheckOffList[9].MenuItem = "C"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Macro = "C9"; - fmtdata.ProcData.CheckOffData.CheckOffList[10].Index = 10; - fmtdata.ProcData.CheckOffData.CheckOffList[10].UIMark = 196; - fmtdata.ProcData.CheckOffData.CheckOffList[10].MenuItem = "___________"; - fmtdata.ProcData.CheckOffData.CheckOffList[10].Macro = "C10"; - - //fmtdata.ProcData.CheckOffData.CheckOffList[2].Index = 2; - //fmtdata.ProcData.CheckOffData.CheckOffList[2].UIMark = 196; - //fmtdata.ProcData.CheckOffData.CheckOffList[2].MenuItem = "___________"; - //fmtdata.ProcData.CheckOffData.CheckOffList[2].Macro = "C10"; - } - private void AddNSPAB_X01(ref FormatData fmtdata) - { - // Turn off Replace Words - fmtdata.SectData.TurnOffReplaceWords = "True"; - //ReplaceStr[] repstr = new ReplaceStr[1]; - // fmtdata.SectData.ReplaceStrData = repstr; - // fmtdata.SectData.ReplaceStrData[0].Flag = "None"; - // fmtdata.SectData.ReplaceStrData[0].ReplaceWith = "x"; - // fmtdata.SectData.ReplaceStrData[0].ReplaceWord = "x"; - } - private void AddNSPARPfmt(ref FormatData fmtdata) - { - NSP_ArialFontInProcedures(ref fmtdata); - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthAlt = "73,73"; - fmtdata.StepData[1].TabData.RNOIdentEdit = ""; - fmtdata.StepData[1].TabData.RNOIdent = ""; - // High - fmtdata.StepData[2].Font.FontFamily = "Arial"; - fmtdata.StepData[2].Font.FontSize = "11"; - fmtdata.StepData[2].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[2].TabData.Font.FontSize = "11"; - // Immediate - fmtdata.StepData[3].Font.FontFamily = "Arial"; - fmtdata.StepData[3].Font.FontSize = "11"; - fmtdata.StepData[3].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[3].TabData.Font.FontSize = "11"; - // Continuous - fmtdata.StepData[9].Font.FontFamily = "Arial"; - fmtdata.StepData[9].Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[9].TabData.Font.FontSize = "11"; - // LossOfAC - fmtdata.StepData[18].Font.FontFamily = "Arial"; - fmtdata.StepData[18].Font.FontSize = "11"; - fmtdata.StepData[18].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[18].TabData.Font.FontSize = "11"; - // RNOType - fmtdata.StepData[40].WidthOverride = "73"; - fmtdata.StepData[40].WidthOverrideEdit = "73"; - // High5 - fmtdata.StepData[41].Font.FontFamily = "Arial"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[41].TabData.Font.FontSize = "11"; - // Caution - fmtdata.StepData[6].OneLineBeforeTab = "True"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note - fmtdata.StepData[7].OneLineBeforeTab = "True"; - fmtdata.StepData[7].TabData.Bullet.Separate = "False"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - // RNO - fmtdata.StepData[40].Font.FontFamily = "Consolas"; - fmtdata.TPL = "0 0 title\r\n1 39 \\ul\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\xA0\\ulnone\r\n"; - - } - private void AddNSPDEVFMT(ref FormatData fmtdata) - { - // Adjust page length - fmtdata.ProcData.TitleLength = 50; - // Turn off Replace Words - fmtdata.SectData.TurnOffReplaceWords = "True"; - - // Set the overall font to Arial 11 pt - fmtdata.FontData.FontFamily = "Arial"; - fmtdata.FontData.FontSize = "11"; - fmtdata.FontData.CPI = "10"; - - fmtdata.SectData.SectionNumber.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionNumber.Font.FontSize = "11"; - fmtdata.SectData.SectionHeader.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionHeader.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle.FontSize = "11"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle.FontSize = "11"; - // Step Type Base - fmtdata.StepData[0].Font.FontFamily = "Arial"; - fmtdata.StepData[0].Font.FontSize = "11"; - fmtdata.StepData[0].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[0].TabData.Font.FontSize = "11"; - - // Substep - fmtdata.StepData[1].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[1].TabData.Font.FontSize = "11"; - - // Standard High Level step - fmtdata.StepData[2].Font.FontFamily = "Arial"; - fmtdata.StepData[2].Font.FontSize = "11"; - fmtdata.StepData[2].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[2].TabData.Font.FontSize = "11"; - - // Immediate High Level step - fmtdata.StepData[3].Font.FontFamily = "Arial"; - fmtdata.StepData[3].Font.FontSize = "11"; - fmtdata.StepData[3].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[3].TabData.Font.FontSize = "11"; - - // And - fmtdata.StepData[4].Font.FontFamily = "Arial"; - fmtdata.StepData[4].Font.FontSize = "11"; - fmtdata.StepData[4].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[4].TabData.Font.FontSize = "11"; - - // OR - fmtdata.StepData[5].Font.FontFamily = "Arial"; - fmtdata.StepData[5].Font.FontSize = "11"; - fmtdata.StepData[5].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[5].TabData.Font.FontSize = "11"; - - // Cautions - fmtdata.StepData[6].Font.FontFamily = "Arial"; - fmtdata.StepData[6].Font.FontSize = "11"; - fmtdata.StepData[6].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[6].TabData.Font.FontSize = "11"; - fmtdata.StepData[6].TabData.Font.CPI = "12"; - - // Notes - fmtdata.StepData[7].Font.FontFamily = "Arial"; - fmtdata.StepData[7].Font.FontSize = "11"; - fmtdata.StepData[7].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[7].TabData.Font.FontSize = "11"; - fmtdata.StepData[7].TabData.Font.CPI = "12"; - - // Table - fmtdata.StepData[8].Font.FontFamily = "Arial"; - fmtdata.StepData[8].Font.FontSize = "11"; - fmtdata.StepData[8].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[8].TabData.Font.FontSize = "11"; - fmtdata.StepData[8].TabData.Font.CPI = "12"; - - // Continuous - fmtdata.StepData[9].Font.FontFamily = "Arial"; - fmtdata.StepData[9].Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[9].TabData.Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.CPI = "12"; - - // AER Table - fmtdata.StepData[10].Font.FontFamily = "Arial"; - fmtdata.StepData[10].Font.FontSize = "11"; - fmtdata.StepData[10].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[10].TabData.Font.FontSize = "11"; - fmtdata.StepData[10].TabData.Font.CPI = "12"; - - // EquipmentList - fmtdata.StepData[11].Font.FontFamily = "Arial"; - fmtdata.StepData[11].Font.FontSize = "11"; - fmtdata.StepData[11].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[11].TabData.Font.FontSize = "11"; - fmtdata.StepData[11].TabData.Font.CPI = "12"; - - // Title - fmtdata.StepData[12].Font.FontFamily = "Arial"; - fmtdata.StepData[12].Font.FontSize = "11"; - fmtdata.StepData[12].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[12].TabData.Font.FontSize = "11"; - fmtdata.StepData[12].TabData.Font.CPI = "12"; - - // PageNumber - fmtdata.StepData[13].Font.FontFamily = "Arial"; - fmtdata.StepData[13].Font.FontSize = "11"; - fmtdata.StepData[13].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[13].TabData.Font.FontSize = "11"; - fmtdata.StepData[13].TabData.Font.CPI = "12"; - - // EquipmentWBlank - fmtdata.StepData[14].Font.FontFamily = "Arial"; - fmtdata.StepData[14].Font.FontSize = "11"; - fmtdata.StepData[14].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[14].TabData.Font.FontSize = "11"; - fmtdata.StepData[14].TabData.Font.CPI = "12"; - - // ProcNumber - fmtdata.StepData[15].Font.FontFamily = "Arial"; - fmtdata.StepData[15].Font.FontSize = "11"; - fmtdata.StepData[15].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[15].TabData.Font.FontSize = "11"; - fmtdata.StepData[15].TabData.Font.CPI = "12"; - - // RevNumber - fmtdata.StepData[16].Font.FontFamily = "Arial"; - fmtdata.StepData[16].Font.FontSize = "11"; - fmtdata.StepData[16].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[16].TabData.Font.FontSize = "11"; - fmtdata.StepData[16].TabData.Font.CPI = "12"; - - // AccPages - fmtdata.StepData[17].Font.FontFamily = "Arial"; - fmtdata.StepData[17].Font.FontSize = "11"; - fmtdata.StepData[17].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[17].TabData.Font.FontSize = "11"; - fmtdata.StepData[17].TabData.Font.CPI = "12"; - - // LossOfAC - fmtdata.StepData[18].Font.FontFamily = "Arial"; - fmtdata.StepData[18].Font.FontSize = "11"; - fmtdata.StepData[18].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[18].TabData.Font.FontSize = "11"; - // ExplicitAnd - fmtdata.StepData[19].Font.FontFamily = "Arial"; - fmtdata.StepData[19].Font.FontSize = "11"; - fmtdata.StepData[19].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[19].TabData.Font.FontSize = "11"; - // Caution1 - fmtdata.StepData[20].Font.FontFamily = "Arial"; - fmtdata.StepData[20].Font.FontSize = "11"; - fmtdata.StepData[20].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[20].TabData.Font.FontSize = "11"; - // Caution2 - fmtdata.StepData[21].Font.FontFamily = "Arial"; - fmtdata.StepData[21].Font.FontSize = "11"; - fmtdata.StepData[21].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[21].TabData.Font.FontSize = "11"; - // Note1 - fmtdata.StepData[22].Font.FontFamily = "Arial"; - fmtdata.StepData[22].Font.FontSize = "11"; - fmtdata.StepData[22].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[22].TabData.Font.FontSize = "11"; - // Note2 - fmtdata.StepData[23].Font.FontFamily = "Arial"; - fmtdata.StepData[23].Font.FontSize = "11"; - fmtdata.StepData[23].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[23].TabData.Font.FontSize = "11"; - // Paragraph - fmtdata.StepData[24].Font.FontFamily = "Arial"; - fmtdata.StepData[24].Font.FontSize = "11"; - fmtdata.StepData[24].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[24].TabData.Font.FontSize = "11"; - // Default - fmtdata.StepData[25].Font.FontFamily = "Arial"; - fmtdata.StepData[25].Font.FontSize = "11"; - fmtdata.StepData[25].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[25].TabData.Font.FontSize = "11"; - // Note3 - fmtdata.StepData[26].Font.FontFamily = "Arial"; - fmtdata.StepData[26].Font.FontSize = "11"; - fmtdata.StepData[26].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[26].TabData.Font.FontSize = "11"; - // Caution3 - fmtdata.StepData[27].Font.FontFamily = "Arial"; - fmtdata.StepData[27].Font.FontSize = "11"; - fmtdata.StepData[27].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[27].TabData.Font.FontSize = "11"; - // Note4 - fmtdata.StepData[28].Font.FontFamily = "Arial"; - fmtdata.StepData[28].Font.FontSize = "11"; - fmtdata.StepData[28].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[28].TabData.Font.FontSize = "11"; - // Caution4 - fmtdata.StepData[29].Font.FontFamily = "Arial"; - fmtdata.StepData[29].Font.FontSize = "11"; - fmtdata.StepData[29].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[29].TabData.Font.FontSize = "11"; - // EquipmentOpt - fmtdata.StepData[30].Font.FontFamily = "Arial"; - fmtdata.StepData[30].Font.FontSize = "11"; - fmtdata.StepData[30].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[30].TabData.Font.FontSize = "11"; - // EquipmentOptWBlank - fmtdata.StepData[31].Font.FontFamily = "Arial"; - fmtdata.StepData[31].Font.FontSize = "11"; - fmtdata.StepData[31].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[31].TabData.Font.FontSize = "11"; - // Note5 - fmtdata.StepData[32].Font.FontFamily = "Arial"; - fmtdata.StepData[32].Font.FontSize = "11"; - fmtdata.StepData[32].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[32].TabData.Font.FontSize = "11"; - // BorderlessAERTable - fmtdata.StepData[33].Font.FontFamily = "Arial"; - fmtdata.StepData[33].Font.FontSize = "11"; - fmtdata.StepData[33].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[33].TabData.Font.FontSize = "11"; - // BorderlessTable - fmtdata.StepData[34].Font.FontFamily = "Arial"; - fmtdata.StepData[34].Font.FontSize = "11"; - fmtdata.StepData[34].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[34].TabData.Font.FontSize = "11"; - // ImplicitOr - fmtdata.StepData[35].Font.FontFamily = "Arial"; - fmtdata.StepData[35].Font.FontSize = "11"; - fmtdata.StepData[35].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[35].TabData.Font.FontSize = "11"; - // Figure - fmtdata.StepData[36].Font.FontFamily = "Arial"; - fmtdata.StepData[36].Font.FontSize = "11"; - fmtdata.StepData[36].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[36].TabData.Font.FontSize = "11"; - // AERFigure - fmtdata.StepData[37].Font.FontFamily = "Arial"; - fmtdata.StepData[37].Font.FontSize = "11"; - fmtdata.StepData[37].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[37].TabData.Font.FontSize = "11"; - // BorderlessFigure - fmtdata.StepData[38].Font.FontFamily = "Arial"; - fmtdata.StepData[38].Font.FontSize = "11"; - fmtdata.StepData[38].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[38].TabData.Font.FontSize = "11"; - // BorderlessAERFigure - fmtdata.StepData[39].Font.FontFamily = "Arial"; - fmtdata.StepData[39].Font.FontSize = "11"; - fmtdata.StepData[39].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[39].TabData.Font.FontSize = "11"; - // RNOType - fmtdata.StepData[40].Font.FontFamily = "Arial"; - fmtdata.StepData[40].Font.FontSize = "11"; - fmtdata.StepData[40].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[40].TabData.Font.FontSize = "11"; - // High5 - fmtdata.StepData[41].Font.FontFamily = "Arial"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[41].TabData.Font.FontSize = "11"; - // TitleWithTextRight - fmtdata.StepData[42].Font.FontFamily = "Arial"; - fmtdata.StepData[42].Font.FontSize = "11"; - fmtdata.StepData[42].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[42].TabData.Font.FontSize = "11"; - // TitleWithTextBelow - fmtdata.StepData[43].Font.FontFamily = "Arial"; - fmtdata.StepData[43].Font.FontSize = "11"; - fmtdata.StepData[43].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[43].TabData.Font.FontSize = "11"; - // ContAcSequential - fmtdata.StepData[44].Font.FontFamily = "Arial"; - fmtdata.StepData[44].Font.FontSize = "11"; - fmtdata.StepData[44].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[44].TabData.Font.FontSize = "11"; - // ContAcAnd - fmtdata.StepData[45].Font.FontFamily = "Arial"; - fmtdata.StepData[45].Font.FontSize = "11"; - fmtdata.StepData[45].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[45].TabData.Font.FontSize = "11"; - // ContAcOr - fmtdata.StepData[46].Font.FontFamily = "Arial"; - fmtdata.StepData[46].Font.FontSize = "11"; - fmtdata.StepData[46].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[46].TabData.Font.FontSize = "11"; - // ContAcParagraph - fmtdata.StepData[47].Font.FontFamily = "Arial"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[47].TabData.Font.FontSize = "11"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - } - private void AddNSPIFGFMT(ref FormatData fmtdata) - { - // Set the overall font to Arial 11 pt - NSP_ArialFontInProcedures(ref fmtdata); - // checkoffs - fmtdata.ProcData.CheckOffData.CheckOffList[7].Index = 7; - fmtdata.ProcData.CheckOffData.CheckOffList[7].UIMark = 83; - fmtdata.ProcData.CheckOffData.CheckOffList[7].MenuItem = "S"; - fmtdata.ProcData.CheckOffData.CheckOffList[7].Macro = "C7"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Index = 8; - fmtdata.ProcData.CheckOffData.CheckOffList[8].UIMark = 88; - fmtdata.ProcData.CheckOffData.CheckOffList[8].MenuItem = "X"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Macro = "C8"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Index = 9; - fmtdata.ProcData.CheckOffData.CheckOffList[9].UIMark = 67; - fmtdata.ProcData.CheckOffData.CheckOffList[9].MenuItem = "C"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Macro = "C9"; - // High - fmtdata.StepData[2].Font.FontFamily = "Arial"; - fmtdata.StepData[2].Font.FontSize = "11"; - fmtdata.StepData[2].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[2].TabData.Font.FontSize = "11"; - // Immediate - fmtdata.StepData[3].Font.FontFamily = "Arial"; - fmtdata.StepData[3].Font.FontSize = "11"; - fmtdata.StepData[3].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[3].TabData.Font.FontSize = "11"; - // Continuous - fmtdata.StepData[9].Font.FontFamily = "Arial"; - fmtdata.StepData[9].Font.FontSize = "11"; - fmtdata.StepData[9].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[9].TabData.Font.FontSize = "11"; - // LossOfAC - fmtdata.StepData[18].Font.FontFamily = "Arial"; - fmtdata.StepData[18].Font.FontSize = "11"; - fmtdata.StepData[18].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[18].TabData.Font.FontSize = "11"; - // High5 - fmtdata.StepData[41].Font.FontFamily = "Consolas"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].TabData.Font.FontFamily = "Consolas"; - fmtdata.StepData[41].TabData.Font.FontSize = "11"; - fmtdata.StepData[41].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Unnumbered Step"; - fmtdata.StepData[41].TabData.IdentEdit = ""; - fmtdata.StepData[41].TabData.Ident = ""; - fmtdata.StepData[41].TabData.RNOIdentEdit = ""; - fmtdata.StepData[41].TabData.RNOIdent = ""; - - // Caution & Note - so that a line exists before the caution/note - fmtdata.StepData[6].OneLineBeforeTab = "True"; - fmtdata.StepData[7].OneLineBeforeTab = "True"; - - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - - //change Continuous Action Paragraph to a Fix Pitched font paragraph - fmtdata.StepData[47].WidthOverride = "425"; - fmtdata.StepData[47].Font.FontFamily = "Consolas"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].Font.CPI = "12"; - fmtdata.StepData[47].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Paragraph"; - fmtdata.StepData[47].TabData.IdentEdit = ""; - fmtdata.StepData[47].TabData.Ident = ""; - fmtdata.StepData[47].TabData.RNOIdentEdit = ""; - fmtdata.StepData[47].TabData.RNOIdent = ""; - - // Add Procedure Information - fmtdata.ProcData.Psi.x = 415; - fmtdata.ProcData.Psi.y = 112; - fmtdata.ProcData.Psi.Caption = "Instrument Failure Guide"; - fmtdata.ProcData.Psi.font = "ARIAL"; - fmtdata.ProcData.Psi.ButtonsOnBottom = "YES"; - fmtdata.ProcData.Psi.Labels = new PsiLabel[1]; - fmtdata.ProcData.Psi.Labels[0].text = "IFG Name:"; - fmtdata.ProcData.Psi.Labels[0].Justify = "LEFT"; - fmtdata.ProcData.Psi.Labels[0].x = 9; - fmtdata.ProcData.Psi.Labels[0].y = 15; - fmtdata.ProcData.Psi.Labels[0].width = 30; - fmtdata.ProcData.Psi.Labels[0].height = 12; - fmtdata.ProcData.Psi.Fields = new PsiField[2]; - fmtdata.ProcData.Psi.Fields[0].name = "IFGName"; - fmtdata.ProcData.Psi.Fields[0].type = "TEXT"; - fmtdata.ProcData.Psi.Fields[0].text = ""; - fmtdata.ProcData.Psi.Fields[0].Length = 12; - fmtdata.ProcData.Psi.Fields[0].x = 50; - fmtdata.ProcData.Psi.Fields[0].y = 15; - fmtdata.ProcData.Psi.Fields[0].width = 60; - fmtdata.ProcData.Psi.Fields[0].height = 12; - fmtdata.ProcData.Psi.Fields[1].name = "UseIFGName"; - fmtdata.ProcData.Psi.Fields[1].type = "LOGICAL"; - fmtdata.ProcData.Psi.Fields[1].text = "Use IFG Name In the Page Header"; - fmtdata.ProcData.Psi.Fields[1].Length = 0; - fmtdata.ProcData.Psi.Fields[1].x = 9; - fmtdata.ProcData.Psi.Fields[1].y = 40; - fmtdata.ProcData.Psi.Fields[1].width = 130; - fmtdata.ProcData.Psi.Fields[1].height = 12; - } - private void AddNSPSAMFMT(ref FormatData fmtdata) - { - // Set the overall font to Arial 11 pt - NSP_ArialFontInProcedures(ref fmtdata); - fmtdata.SectData.StepSectionData.StpSectLayData.NullBox = "True"; - // checkoffs - fmtdata.ProcData.CheckOffData.CheckOffList[7].Index = 7; - fmtdata.ProcData.CheckOffData.CheckOffList[7].UIMark = 83; - fmtdata.ProcData.CheckOffData.CheckOffList[7].MenuItem = "S"; - fmtdata.ProcData.CheckOffData.CheckOffList[7].Macro = "C7"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Index = 8; - fmtdata.ProcData.CheckOffData.CheckOffList[8].UIMark = 88; - fmtdata.ProcData.CheckOffData.CheckOffList[8].MenuItem = "X"; - fmtdata.ProcData.CheckOffData.CheckOffList[8].Macro = "C8"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Index = 9; - fmtdata.ProcData.CheckOffData.CheckOffList[9].UIMark = 67; - fmtdata.ProcData.CheckOffData.CheckOffList[9].MenuItem = "C"; - fmtdata.ProcData.CheckOffData.CheckOffList[9].Macro = "C9"; - // Caution - fmtdata.StepData[6].ColOverride = "197"; - fmtdata.StepData[6].WidthOverride = "330"; - // Caution1 - fmtdata.StepData[20].Inactive = "True"; - // Caution2 - fmtdata.StepData[21].Inactive = "True"; - // Caution3 - fmtdata.StepData[27].Inactive = "True"; - // Caution4 - fmtdata.StepData[29].Inactive = "True"; - // Note - fmtdata.StepData[7].WidthOverride = "330"; - // Note1 - fmtdata.StepData[22].Inactive = "True"; - // Note2 - fmtdata.StepData[23].Inactive = "True"; - // Note3 - fmtdata.StepData[26].Inactive = "True"; - // Note4 - fmtdata.StepData[28].Inactive = "True"; - // Note5 - fmtdata.StepData[32].Inactive = "True"; - } - } - // Page and DOC - public partial class FmtToXml - { - #region Pagelist - // PageList - private void AddNSPPage(ref PageStyles pgstyles) - { - // Adjusted the left margin to better align the procedure text - - // Procedure Steps - pgstyles.PgStyles[0].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[0].Items[1].Col = -18; // {HEADER1} - pgstyles.PgStyles[0].Items[2].Col = 269; // {PROCTITLE} - pgstyles.PgStyles[0].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[0].Items[3].Col = 515; // REV. {REV} - pgstyles.PgStyles[0].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[0].Items[4].Col = 28; // {EOPNUM} - pgstyles.PgStyles[0].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[4].Style.CPI = "10"; - pgstyles.PgStyles[0].Items[5].Col = -18; // {BOX2} - pgstyles.PgStyles[0].Items[6].Col = 246; // Page {PAGE} of {OF} - pgstyles.PgStyles[0].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[6].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[6].Style.CPI = "10"; - // Figure Included in Page Count - pgstyles.PgStyles[1].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[1].Items[1].Col = -18; // {HEADER1} - pgstyles.PgStyles[1].Items[2].Col = 243; // {PROCTITLE} - pgstyles.PgStyles[1].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[1].Items[3].Col = 461; // {REV} - pgstyles.PgStyles[1].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[1].Items[4].Col = 25; // {EOPNUM} - pgstyles.PgStyles[1].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[4].Style.CPI = "10"; - pgstyles.PgStyles[1].Items[5].Col = -18; // {BOX1} - pgstyles.PgStyles[1].Items[6].Col = 221; // Page {PAGE} of {OF} - pgstyles.PgStyles[1].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[6].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[6].Style.CPI = "10"; - // Cover sheet with Retention 5 years - pgstyles.PgStyles[2].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[2].Items[1].Col = 320; // {EOPNUM} - pgstyles.PgStyles[2].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[1].Style.CPI = "10"; - pgstyles.PgStyles[2].Items[2].Col = 320; // REV. {REV} - pgstyles.PgStyles[2].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[2].Items[3].Col = 320; // Page {PAGE} of {OF} - pgstyles.PgStyles[2].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[2].Items[4].Col = 320; // Retention: 5 Yrs. - pgstyles.PgStyles[2].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[4].Style.CPI = "10"; - - // Cover Sheet 2004 With no Retention - pgstyles.PgStyles[3].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[3].Items[1].Col = -18; // {HEADER1} - pgstyles.PgStyles[3].Items[2].Col = 240; // {PROCTITLE} - pgstyles.PgStyles[3].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[3].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[3].Items[3].Col = 460; // {REV} - pgstyles.PgStyles[3].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[3].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[3].Items[4].Col = 25; // {EOPNUM} - pgstyles.PgStyles[3].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[3].Items[4].Style.CPI = "10"; - pgstyles.PgStyles[3].Items[5].Col = 220; // Page {PAGE} of {OF} - pgstyles.PgStyles[3].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[5].Style.FontSize = "11"; - pgstyles.PgStyles[3].Items[5].Style.CPI = "10"; - - // Cover Sheet - pgstyles.PgStyles[4].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[4].Items[1].Col = 513; // {EOPNUM} - pgstyles.PgStyles[4].Items[1].Justify = "PSRight"; - pgstyles.PgStyles[4].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[4].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[4].Items[1].Style.CPI = "10"; - pgstyles.PgStyles[4].Items[2].Col = 513; // REV. {REV} - pgstyles.PgStyles[4].Items[2].Justify = "PSRight"; - pgstyles.PgStyles[4].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[4].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[4].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[4].Items[3].Col = 513; // Page {PAGE} of {OF} - pgstyles.PgStyles[4].Items[3].Justify = "PSRight"; - pgstyles.PgStyles[4].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[4].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[4].Items[3].Style.CPI = "10"; - - // Ter Editor Foldout pages - pgstyles.PgStyles[5].Name = "MS Word Editor Foldout pages"; - pgstyles.PgStyles[5].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - - // Purpose And Entry Conditions with Header Box - pgstyles.PgStyles[6].Items[0].Col = 1; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[6].Items[1].Col = 0; // {HEADER1} - pgstyles.PgStyles[6].Items[2].Col = 258; // {PROCTITLE} - pgstyles.PgStyles[6].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[6].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[6].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[6].Items[3].Col = 478; // {REV} - pgstyles.PgStyles[6].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[6].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[6].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[6].Items[4].Col = 43; // {EOPNUM} - pgstyles.PgStyles[6].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[6].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[6].Items[4].Style.CPI = "10"; - pgstyles.PgStyles[6].Items[5].Col = 239; // Page {PAGE} of {OF} - pgstyles.PgStyles[6].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[6].Items[5].Style.FontSize = "11"; - pgstyles.PgStyles[6].Items[5].Style.CPI = "10"; - - // Two Column Auto Action Pages - pgstyles.PgStyles[7].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[7].Items[1].Col = 503; // {REV} - pgstyles.PgStyles[7].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[7].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[7].Items[1].Style.CPI = "10"; - pgstyles.PgStyles[7].Items[2].Col = 503; // {EOPNUM} - pgstyles.PgStyles[7].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[7].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[7].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[7].Items[3].Col = 248; // {SECTIONLEVELTITLE} - pgstyles.PgStyles[7].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[7].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[7].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[7].Items[4].Col = -18; // {BOX2} - pgstyles.PgStyles[7].Items[5].Col = 503; // Page {PAGE} of {OF} - pgstyles.PgStyles[7].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[7].Items[5].Style.FontSize = "11"; - pgstyles.PgStyles[7].Items[5].Style.CPI = "10"; - pgstyles.PgStyles[7].Items[5].Justify = "PSRight, PSTrue"; // Page {PAGE} of {OF} - - // Auto Continuous Action Summary - pgstyles.PgStyles[8].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[8].Items[1].Col = -18; // {HEADER1} - pgstyles.PgStyles[8].Items[2].Col = 29; // {EOPNUM} - pgstyles.PgStyles[8].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[2].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[3].Col = 251; // {PROCTITLE} - pgstyles.PgStyles[8].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[3].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[4].Col = 503; // {REV} - pgstyles.PgStyles[8].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[4].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[5].Col = -18; // {BOX4} - pgstyles.PgStyles[8].Items[6].Col = 263; // {SECTIONLEVELNUMBER} - pgstyles.PgStyles[8].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[6].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[6].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[7].Col = 263; // {SECTIONLEVELTITLE} - pgstyles.PgStyles[8].Items[7].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[7].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[7].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[8].Col = 263; // Page {DOCCURPAGE} of {DOCTOTPAGE} - pgstyles.PgStyles[8].Items[8].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[8].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[8].Style.CPI = "10"; - pgstyles.PgStyles[8].Items[9].Col = 251; // Page {PAGE} of {OF} - pgstyles.PgStyles[8].Items[9].Style.FontFamily = "Arial"; - pgstyles.PgStyles[8].Items[9].Style.FontSize = "11"; - pgstyles.PgStyles[8].Items[9].Style.CPI = "10"; - } - // NSP foldouts - private void AddNSP00Page(ref PageStyles pgstyles) - { - // Adjusted the left margin to better align the procedure text - - // Foldout Pages - pgstyles.PgStyles[0].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[0].Items[0].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[0].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[0].Style.CPI = "10"; - pgstyles.PgStyles[0].Items[1].Col = 258; // {SECTIONLEVELTITLE} - pgstyles.PgStyles[0].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[1].Style.FontSize = "10"; - pgstyles.PgStyles[0].Items[1].Style.CPI = "10"; - PSItem[] Fpsitms = null; - Fpsitms = new PSItem[4]; - pgstyles.PgStyles[0].Items.CopyTo(Fpsitms, 0); - - PSItem pi = new PSItem(); - pi.Token = "{EOPNUM}"; //{EOPNUM} - pi.Col = 530; - pi.Row = 12; - pi.Justify = "PSRight"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "REV. {REV}"; //{REV} - pi.Col = 530; - pi.Row = 24; - pi.Justify = "PSRight"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[3] = pi; - - pgstyles.PgStyles[0].Items = Fpsitms; - } - // NSPBCK_ALL - private void AddNSPBckPage(ref PageStyles pgstyles) - { - // Background Text - first page - pgstyles.PgStyles[0].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[0].Items[1].Col = 519; //{EOPNUM} - pgstyles.PgStyles[0].Items[1].Justify = "PSRight"; - pgstyles.PgStyles[0].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[2].Col = 519; //{REV} - pgstyles.PgStyles[0].Items[2].Justify = "PSRight"; - pgstyles.PgStyles[0].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[3].Col = 519; //{Page} of {OF} - pgstyles.PgStyles[0].Items[3].Justify = "PSRight"; - pgstyles.PgStyles[0].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[3].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[4].Col = 285; // BACKGROUND INFORMATION FOR - pgstyles.PgStyles[0].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[4].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[5].Col = 285; // {EOPNUM}, {PROCTITLE} - pgstyles.PgStyles[0].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[5].Style.FontSize = "11"; - // Background Text - rest of pages - pgstyles.PgStyles[1].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[1].Items[1].Col = 519; //{EOPNUM} - pgstyles.PgStyles[1].Items[1].Justify = "PSRight"; - pgstyles.PgStyles[1].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[2].Col = 519; //{REV} - pgstyles.PgStyles[1].Items[2].Justify = "PSRight"; - pgstyles.PgStyles[1].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[1].Items[3].Col = 519; //{Page} of {OF} - pgstyles.PgStyles[1].Items[3].Justify = "PSRight"; - pgstyles.PgStyles[1].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[3].Style.FontSize = "11"; - // attachments - pgstyles.PgStyles[2].Items[0].Col = -5; // {DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[2].Items[1].Col = 477; //{EOPNUM} - pgstyles.PgStyles[2].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[1].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[2].Col = 477;//{REV} - pgstyles.PgStyles[2].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[2].Items[3].Col = 477; //{Page} of {OF} - pgstyles.PgStyles[2].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[3].Style.FontSize = "11"; - } - private void AddNSPABPage(ref PageStyles pgstyles) - { - //Procedure Steps - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[1].Col = 287; - //{COVERPROCTITLE} - pgstyles.PgStyles[0].Items[6].Col = 336; - pgstyles.PgStyles[0].Items[6].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[0].Items[7].Col = 511; - pgstyles.PgStyles[0].Items[7].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[0].Items[8].Col = 513; - pgstyles.PgStyles[0].Items[8].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[0].Items[9].Col = 513; - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[10].Col = 287; - - //Purpose and Entry - //{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE} - pgstyles.PgStyles[1].Items[0].Col = 48; - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[1].Col = 337; - //{PS=AB_OP_PROC?[HEADER1]|} - pgstyles.PgStyles[1].Items[2].Col = 45; - //{PS=AB_PROC?[HEADER2]|} - pgstyles.PgStyles[1].Items[3].Col = 45; - //{BOX1} - pgstyles.PgStyles[1].Items[4].Col = 45; - //{COVERPROCTITLE} - pgstyles.PgStyles[1].Items[5].Col = 386; - pgstyles.PgStyles[1].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[1].Items[6].Col = 556; - pgstyles.PgStyles[1].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[1].Items[7].Col = 558; - pgstyles.PgStyles[1].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[1].Items[8].Col = 558; - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[9].Col = 337; - - //Cover Page - //{PS-CONFSTATE} - pgstyles.PgStyles[2].Items[1].Col = 256; - //{COVERPROCTITLE} - pgstyles.PgStyles[2].Items[6].Col = 300; - pgstyles.PgStyles[2].Items[6].Row = 84; - pgstyles.PgStyles[2].Items[6].Style.CPI = "8"; - pgstyles.PgStyles[2].Items[6].Justify = "PSCenter"; - //{EOPNUM} - pgstyles.PgStyles[2].Items[7].Col = 511; - pgstyles.PgStyles[2].Items[7].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[2].Items[8].Col = 513; - pgstyles.PgStyles[2].Items[8].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[2].Items[9].Col = 513; - //{PS-CONFSTATE} - pgstyles.PgStyles[2].Items[13].Col = 256; - - //Accessory page - //{PS-CONFSTATE} - pgstyles.PgStyles[3].Items[1].Col = 256; - //{COVERPROCTITLE} - pgstyles.PgStyles[3].Items[5].Col = 300; - pgstyles.PgStyles[3].Items[5].Row = 84; - pgstyles.PgStyles[3].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[3].Items[6].Col = 511; - pgstyles.PgStyles[3].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[3].Items[7].Col = 513; - pgstyles.PgStyles[3].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[3].Items[8].Col = 513; - //{PS-CONFSTATE} - pgstyles.PgStyles[3].Items[11].Col = 256; - - //Attachment with Checkoffs (Step Editor) - //{PS-CONFSTATE} - pgstyles.PgStyles[4].Items[1].Col = 287; - //{COVERPROCTITLE} - pgstyles.PgStyles[4].Items[5].Col = 336; - pgstyles.PgStyles[4].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[4].Items[6].Col = 511; - pgstyles.PgStyles[4].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[4].Items[7].Col = 513; - pgstyles.PgStyles[4].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[4].Items[8].Col = 513; - //{PS-CONFSTATE} - pgstyles.PgStyles[4].Items[11].Col = 287; - - } - private void AddNSPABPage_Z00(ref PageStyles pgstyles) - { - //"Attachment with Checkoff - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[1].Col = 287; - //{COVERPROCTITLE} - pgstyles.PgStyles[0].Items[5].Col = 336; - pgstyles.PgStyles[0].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[0].Items[6].Col = 511; - pgstyles.PgStyles[0].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[0].Items[7].Col = 513; - pgstyles.PgStyles[0].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[0].Items[8].Col = 513; - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[11].Col = 287; - - //Attachments - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[1].Col = 267; - //{COVERPROCTITLE} - pgstyles.PgStyles[1].Items[5].Col = 279; - pgstyles.PgStyles[1].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[1].Items[6].Col = 510; - pgstyles.PgStyles[1].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[1].Items[7].Col = 510; - pgstyles.PgStyles[1].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[1].Items[8].Col = 504; - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[11].Col = 267; - } - private void AddNSPABPage_Z01(ref PageStyles pgstyles) - { - //Background Text - First Page - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[1].Col = 287; - //{COVERPROCTITLE} - pgstyles.PgStyles[0].Items[5].Col = 336; - pgstyles.PgStyles[0].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[0].Items[6].Col = 511; - pgstyles.PgStyles[0].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[0].Items[7].Col = 513; - pgstyles.PgStyles[0].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[0].Items[8].Col = 512; - //{PS-CONFSTATE} - pgstyles.PgStyles[0].Items[12].Col = 287; - - //Background Text - Blank Page - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[1].Col = 287; - //{COVERPROCTITLE} - pgstyles.PgStyles[1].Items[5].Col = 336; - pgstyles.PgStyles[1].Items[5].Style.CPI = "8"; - //{EOPNUM} - pgstyles.PgStyles[1].Items[6].Col = 511; - pgstyles.PgStyles[1].Items[6].Style.CPI = "8"; - //{REV} - pgstyles.PgStyles[1].Items[7].Col = 513; - pgstyles.PgStyles[1].Items[7].Style.CPI = "8"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[1].Items[8].Col = 512; - //{PS-CONFSTATE} - pgstyles.PgStyles[1].Items[10].Col = 287; - } - private void AddNSPABPage_Z02(ref PageStyles pgstyles) - { - //Foldout Pages - //{SECTIONLEVELTITLE} - pgstyles.PgStyles[0].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[2].Style.FontSize = "11"; - pgstyles.PgStyles[0].Items[2].Style.CPI = "12"; - } - private void AddNSPDEVPage(ref PageStyles pgstyles) - { - // we need to add one new pgstyle - // expand the pgstyles.PgStyles array by one; - int numstyles = pgstyles.PgStyles.Length; // number of current PgStyles - numstyles += 1; // adding one more page styles - PageStyle[] pgs = new PageStyle[numstyles]; - // Deviation - - //int ii = 0; - //for (int i = 0; i < numstyles; i++) - //{ - // PageStyle ps = new PageStyle(); - // if (i != 2) ii++; // insert a new section by copying the second one - // if (i < numstyles - 1) - // ps = pgstyles.PgStyles[ii]; - // pgs[i] = ps; - //} - //pgstyles.PgStyles = pgs; - - - //Procedure Steps (Step Deviations) - copy and adjust font size - PageStyle ps = new PageStyle(); - PSItem[] Fpsitms = null; - ps = pgstyles.PgStyles[0]; - //PROCTITLE - ps.Items[2].Style.FontSize = "11"; - //REV - ps.Items[3].Style.FontSize = "11"; - //EOPNUM - ps.Items[4].Style.FontSize = "11"; - //Page {PAGE} of {OF} - ps.Items[6].Style.FontSize = "11"; - pgs[0] = ps; - - // Cover Page - ps = new PageStyle(); - ps.Name = "Cover Page"; - ps.Index = 1; - - Fpsitms = null; - Fpsitms = new PSItem[5]; - - PSItem pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -3; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[0] = pi; - - pi = new PSItem(); - pi.Token = "Deviation Document"; - pi.Row = 132; - pi.Col = 237; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[1] = pi; - - pi = new PSItem(); - pi.Token = "{EOPNUM}"; - pi.Row = 156; - pi.Col = 237; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "{PROCTITLE}"; - pi.Row = 180; - pi.Col = 237; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[3] = pi; - - pi = new PSItem(); - pi.Token = "Revision {REV}"; - pi.Row = 204; - pi.Col = 237; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[4] = pi; - - ps.Items = Fpsitms; - pgs[1] = ps; - - //Introduction and Accessory page - With one Box (Header with One Box) - ps = new PageStyle(); - ps.Name = "Introduction and Accessory page - With Box"; - ps.Index = 2; - - Fpsitms = null; - Fpsitms = new PSItem[7]; - - pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[0] = pi; - - pi = new PSItem(); - pi.Token = "{HEADER1}"; - pi.Row = 24; - pi.Col = -6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[1] = pi; - - pi = new PSItem(); - pi.Token = "{PROCTITLE}"; - pi.Row = 60; - pi.Col = 255; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "{REV}"; - pi.Row = 60; - pi.Col = 477; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[3] = pi; - - pi = new PSItem(); - pi.Token = "{EOPNUM}"; - pi.Row = 60; - pi.Col = 45; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[4] = pi; - - pi = new PSItem(); - pi.Token = "{BOX1}"; - pi.Row = 96; - pi.Col = -6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[5] = pi; - - pi = new PSItem(); - pi.Token = "Page {PAGE} of {OF}"; - pi.Row = 732; - pi.Col = 261; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[6] = pi; - - ps.Items = Fpsitms; - pgs[2] = ps; - - //Introduction and Accessory page - Without Box (Header without Box) - ps = new PageStyle(); - ps.Name = "Introduction and Accessory page - Without Box"; - ps.Index = 3; - - Fpsitms = null; - Fpsitms = new PSItem[6]; - - pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[0] = pi; - - pi = new PSItem(); - pi.Token = "{HEADER1}"; - pi.Row = 24; - pi.Col = -6; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[1] = pi; - - pi = new PSItem(); - pi.Token = "{PROCTITLE}"; - pi.Row = 60; - pi.Col = 255; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "{REV}"; - pi.Row = 60; - pi.Col = 477; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[3] = pi; - - pi = new PSItem(); - pi.Token = "{EOPNUM}"; - pi.Row = 60; - pi.Col = 45; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[4] = pi; - - pi = new PSItem(); - pi.Token = "Page {PAGE} of {OF}"; - pi.Row = 732; - pi.Col = 261; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[5] = pi; - - ps.Items = Fpsitms; - pgs[3] = ps; - - pgstyles.PgStyles = pgs; - - } - private void AddNSPIFGPage(ref PageStyles pgstyles) - { - //First Page of Procedure Steps - //{EOPNUM} - pgstyles.PgStyles[0].Items[4].Token = "{PS=UseIFGName?[PS-IFGName]|[EOPNUM]}"; - - //The Rest of the Procedure Steps - //{EOPNUM} - pgstyles.PgStyles[1].Items[4].Token = "{PS=UseIFGName?[PS-IFGName]|[EOPNUM]}"; - //{HLSTEXT} - pgstyles.PgStyles[1].Items[8].Style.FontFamily = "Arial"; - pgstyles.PgStyles[1].Items[8].Style.FontSize = "11"; - } - private void AddNSPIFG_00Page(ref PageStyles pgstyles) - { - //First Page of Procedure Steps - //{EOPNUM} - pgstyles.PgStyles[0].Items[4].Token = "{PS=UseIFGName?[PS-IFGName]|[EOPNUM]}"; - //{SECTIONLEVELTITLE} - pgstyles.PgStyles[0].Items[8].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[8].Style.FontSize = "11"; - //{HLSTEXT} - pgstyles.PgStyles[0].Items[9].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[9].Style.FontSize = "11"; - //The Rest of the Procedure Steps - //{EOPNUM} - pgstyles.PgStyles[1].Items[4].Token = "{PS=UseIFGName?[PS-IFGName]|[EOPNUM]}"; - } - private void AddNSPARPPage(ref PageStyles pgstyles) - { - //First Page of Procedure Steps - //{PS-SHORTTIT1} - pgstyles.PgStyles[0].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[4].Style.FontSize = "11"; - //{PS-ALARM1} - pgstyles.PgStyles[0].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[5].Style.FontSize = "11"; - //{PS-SHORTTIT2} - pgstyles.PgStyles[0].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[6].Style.FontSize = "11"; - //{PS-ALARM2} - pgstyles.PgStyles[0].Items[7].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[7].Style.FontSize = "11"; - //{PS-SHORTTIT3} - pgstyles.PgStyles[0].Items[8].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[8].Style.FontSize = "11"; - //{PS-ALARM3} - pgstyles.PgStyles[0].Items[9].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[9].Style.FontSize = "11"; - //{PS-ALARM4} - pgstyles.PgStyles[0].Items[10].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[10].Style.FontSize = "11"; - //{PS-LONGTIT1} - pgstyles.PgStyles[0].Items[11].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[11].Style.FontSize = "11"; - //{PS-LONGTIT2} - pgstyles.PgStyles[0].Items[12].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[12].Style.FontSize = "11"; - //{PS-LONGTIT3} - pgstyles.PgStyles[0].Items[13].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[13].Style.FontSize = "11"; - //{PS-TRIPPED1} - pgstyles.PgStyles[0].Items[14].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[14].Style.FontSize = "11"; - //{PS-RESET1} - pgstyles.PgStyles[0].Items[15].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[15].Style.FontSize = "11"; - //{PS-LONGTIT4} - pgstyles.PgStyles[0].Items[16].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[16].Style.FontSize = "11"; - //{PS-TRIPPED2} - pgstyles.PgStyles[0].Items[17].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[17].Style.FontSize = "11"; - //{PS-RESET2} - pgstyles.PgStyles[0].Items[18].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[18].Style.FontSize = "11"; - //{PS=BOP_NSSS?SER Input Point: [PS-SERINPORT]|} - pgstyles.PgStyles[0].Items[19].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[19].Style.FontSize = "11"; - //{PS-TRIPPED3} - pgstyles.PgStyles[0].Items[20].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[20].Style.FontSize = "11"; - //{PS-RESET3} - pgstyles.PgStyles[0].Items[21].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[21].Style.FontSize = "11"; - //{PS=BOP_NSSS? Address: [PS-ADDRESS]|} - pgstyles.PgStyles[0].Items[22].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[22].Style.FontSize = "11"; - //{PS-TRIPPED4} - pgstyles.PgStyles[0].Items[23].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[23].Style.FontSize = "11"; - //{PS-RESET4} - pgstyles.PgStyles[0].Items[24].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[24].Style.FontSize = "11"; - } - private void AddNSPARP_00Page(ref PageStyles pgstyles) - { - //First Page of Procedure Steps - //{PS=TIMEDELAY?[BOX4]|} - pgstyles.PgStyles[0].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[3].Style.FontSize = "11"; - //{PS-SHORTTIT1} - pgstyles.PgStyles[0].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[4].Style.FontSize = "11"; - //{PS-ALARM1} - pgstyles.PgStyles[0].Items[5].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[5].Style.FontSize = "11"; - //{PS-SHORTTIT2} - pgstyles.PgStyles[0].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[6].Style.FontSize = "11"; - //{PS-ALARM2} - pgstyles.PgStyles[0].Items[7].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[7].Style.FontSize = "11"; - //{PS-SHORTTIT3} - pgstyles.PgStyles[0].Items[8].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[8].Style.FontSize = "11"; - //{PS-ALARM3} - pgstyles.PgStyles[0].Items[9].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[9].Style.FontSize = "11"; - //{PS-ALARM4} - pgstyles.PgStyles[0].Items[10].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[10].Style.FontSize = "11"; - //{PS-LONGTIT1} - pgstyles.PgStyles[0].Items[11].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[11].Style.FontSize = "11"; - //{PS-LONGTIT2} - pgstyles.PgStyles[0].Items[12].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[12].Style.FontSize = "11"; - //{PS-LONGTIT3} - pgstyles.PgStyles[0].Items[13].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[13].Style.FontSize = "11"; - //{PS-TRIPPED1} - pgstyles.PgStyles[0].Items[14].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[14].Style.FontSize = "11"; - //{PS-RESET1} - pgstyles.PgStyles[0].Items[15].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[15].Style.FontSize = "11"; - //{PS-LONGTIT4} - pgstyles.PgStyles[0].Items[16].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[16].Style.FontSize = "11"; - //{PS-TRIPPED2} - pgstyles.PgStyles[0].Items[17].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[17].Style.FontSize = "11"; - //{PS-RESET2} - pgstyles.PgStyles[0].Items[18].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[18].Style.FontSize = "11"; - //{PS-TRIPPED3} - pgstyles.PgStyles[0].Items[19].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[19].Style.FontSize = "11"; - //{PS-RESET3} - pgstyles.PgStyles[0].Items[20].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[20].Style.FontSize = "11"; - //{PS-TRIPPED4} - pgstyles.PgStyles[0].Items[21].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[21].Style.FontSize = "11"; - //{PS-RESET4} - pgstyles.PgStyles[0].Items[22].Style.FontFamily = "Arial"; - pgstyles.PgStyles[0].Items[22].Style.FontSize = "11"; - } - private void AddNSPSAMPage(ref PageStyles pgstyles) - { - // Procedure Steps - pgstyles.PgStyles[0].Items[2].Style.CPI = "10"; - // Figures Included in Page Count - pgstyles.PgStyles[1].Items[2].Style.CPI = "10"; - //Cover sheet with retention 5 years - //{EOPNUM} - pgstyles.PgStyles[2].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[1].Style.FontSize = "11"; - //REV. {REV} - pgstyles.PgStyles[2].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[2].Style.FontSize = "11"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[2].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[3].Style.FontSize = "11"; - //Retention: 5 Yrs. - pgstyles.PgStyles[2].Items[4].Style.FontFamily = "Arial"; - pgstyles.PgStyles[2].Items[4].Style.FontSize = "11"; - //Cover Sheet - //{EOPNUM} - pgstyles.PgStyles[3].Items[1].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[1].Style.FontSize = "11"; - //REV. {REV} - pgstyles.PgStyles[3].Items[2].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[2].Style.FontSize = "11"; - //Page {PAGE} of {OF} - pgstyles.PgStyles[3].Items[3].Style.FontFamily = "Arial"; - pgstyles.PgStyles[3].Items[3].Style.FontSize = "11"; - //Figures with Seperate Pagination - // PROCTITLE - pgstyles.PgStyles[6].Items[2].Style.CPI = "10"; - //Page {DOCCURPAGE} of {DOCTOTPAGE} - pgstyles.PgStyles[6].Items[6].Style.FontFamily = "Arial"; - pgstyles.PgStyles[6].Items[6].Style.FontSize = "11"; - // Figures with Section Info - // PROCTITLE - pgstyles.PgStyles[7].Items[2].Style.CPI = "10"; - - // we need to add one new pgstyle - // expand the pgstyles.PgStyles array by one; - int numstyles = pgstyles.PgStyles.Length; // number of current PgStyles - numstyles += 1; // adding one more page styles - PageStyle[] pgs = new PageStyle[numstyles]; - PageStyle ps;// new PageStyle(); - // copy existing page lists - for (int i = 0; i < numstyles - 1; i++) - { - ps = new PageStyle(); - ps = pgstyles.PgStyles[i]; - pgs[i] = ps; - } - // Attachment with Section Info - ps = new PageStyle(); - ps.Name = "Attachment with Section Info"; - ps.Index = 8; - - PSItem[] Fpsitms = null; - Fpsitms = new PSItem[9]; - - PSItem pi = new PSItem(); - pi.Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pi.Row = 12; - pi.Col = -3; - pi.Justify = "PSCenter"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[0] = pi; - - pi = new PSItem(); - pi.Token = "{HEADER1}"; - pi.Row = 24; - pi.Col = -18; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.FontStyle = "None"; - pi.Style.CPI = "12"; - Fpsitms[1] = pi; - - pi = new PSItem(); - pi.Token = "{PROCTITLE}"; - pi.Row = 60; - pi.Col = 249; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "10"; - pi.Style.FontStyle = "None"; - Fpsitms[2] = pi; - - pi = new PSItem(); - pi.Token = "REV. {REV}"; - pi.Row = 60; - pi.Col = 465; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[3] = pi; - - pi = new PSItem(); - pi.Token = "{EOPNUM}"; - pi.Row = 60; - pi.Col = 27; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[4] = pi; - - pi = new PSItem(); - pi.Token = "{BOX1}"; - pi.Row = 96; - pi.Col = -18; - pi.Justify = "PSLeft"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Prestige Elite Tall"; - pi.Style.FontSize = "10"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[5] = pi; - - pi = new PSItem(); - pi.Token = "{SECTIONLEVELNUMBER}"; - pi.Row = 126; - pi.Col = 231; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "12"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "Bold"; - Fpsitms[6] = pi; - - pi = new PSItem(); - pi.Token = "{SECTIONLEVELTITLE}"; - pi.Row = 138; - pi.Col = 231; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "12"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "Bold"; - Fpsitms[7] = pi; - - pi = new PSItem(); - pi.Token = "Page {DOCCURPAGE} of {DOCTOTPAGE}"; - pi.Row = 732; - pi.Col = 231; - pi.Justify = "PSTrue"; - pi.Style = new VE_Font(); - pi.Style.FontFamily = "Arial"; - pi.Style.FontSize = "11"; - pi.Style.CPI = "12"; - pi.Style.FontStyle = "None"; - Fpsitms[8] = pi; - - ps.Items = Fpsitms; - pgs[numstyles - 1] = ps; - - pgstyles.PgStyles = pgs; // save new pagelist - } - #endregion - #region DocStyle - // DOCSytle - public void AddNSPDOC(ref DocStyles dcstyles) - { - //Procedure Steps - dcstyles.DcStyles[0].LeftMargin = 80; - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - dcstyles.DcStyles[0].FooterLen = 0; - dcstyles.DcStyles[0].PageLength = 558; - //Purpose And Entry Conditions - dcstyles.DcStyles[1].LeftMargin = 62; - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - //Figure Included in Page Count - dcstyles.DcStyles[2].LeftMargin = 80; - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //Cover Page with Retention of 5 Years - dcstyles.DcStyles[3].LeftMargin = 62; - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - //Cover Page 2004 with No Retention - dcstyles.DcStyles[4].LeftMargin = 80; - dcstyles.DcStyles[4].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[4].dstyle.FontSize = "11"; - //Cover Page - dcstyles.DcStyles[5].LeftMargin = 62; - dcstyles.DcStyles[5].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[5].dstyle.FontSize = "11"; - //TER Editor Foldout Pages - dcstyles.DcStyles[6].Name = "MS Word Editor Foldout Pages"; - dcstyles.DcStyles[6].LeftMargin = 50; - dcstyles.DcStyles[6].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[6].dstyle.FontSize = "11"; - //Attachment Pages - dcstyles.DcStyles[7].LeftMargin = 68; - dcstyles.DcStyles[7].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[7].dstyle.FontSize = "11"; - //Two Column Auto Action Pages - dcstyles.DcStyles[8].LeftMargin = 80; - dcstyles.DcStyles[8].PageLength = 552; - dcstyles.DcStyles[8].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[8].dstyle.FontSize = "11"; - dcstyles.DcStyles[8].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[8].ContStyle.FontSize = "11"; - //Auto Continuous Action Summary - dcstyles.DcStyles[9].LeftMargin = 80; - dcstyles.DcStyles[9].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[9].dstyle.FontSize = "11"; - } - public void AddNSP00DOC(ref DocStyles dcstyles) - { - //Step Editor Foldout - dcstyles.DcStyles[0].LeftMargin = 50; - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].dstyle.FontStyle = "None"; - //Foldout Pages (Accessory Editor) - dcstyles.DcStyles[1].LeftMargin = 20; - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].dstyle.FontStyle = "None"; - } - public void AddNSPBckDOC(ref DocStyles dcstyles) - { - //Background Text - first page - dcstyles.DcStyles[0].LeftMargin = 62; - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - //Background Text - rest of pages - dcstyles.DcStyles[1].LeftMargin = 62; - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - //attachments - dcstyles.DcStyles[2].LeftMargin = 68; - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - } - public void AddNSPABDOC(ref DocStyles dcstyles) - { - //Procedure Steps - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].dstyle.CPI = "12"; - //Purpose And Entry Conditions - dcstyles.DcStyles[1].LeftMargin = 15; - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].dstyle.CPI = "12"; - //Attchment with Checkoffs (step editor) - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - dcstyles.DcStyles[2].dstyle.CPI = "12"; - } - public void AddNSPAB_00DOC(ref DocStyles dcstyles) - { - //Abnormal Attachment with Checkoffs - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].dstyle.CPI = "12"; - //Attachments - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].dstyle.CPI = "12"; - } - public void AddNSPAB_01DOC(ref DocStyles dcstyles) - { - //Background Text - First Page - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].dstyle.CPI = "12"; - //Background Text - Blank Page - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].dstyle.CPI = "12"; - } - public void AddNSPAB_02DOC(ref DocStyles dcstyles) - { - //Step Editor Foldout - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].dstyle.CPI = "12"; - //Foldout Pages (Accessory Editor) - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].dstyle.CPI = "12"; - } - public void AddNSPDEVDOC(ref DocStyles dcstyles) - { - // we need to add one new docsyles - // expand the dcstyles.DcStyle array by one; - int numstyles = dcstyles.DcStyles.Length; // number of current docstyles - numstyles += 1; // adding one more docstyles - DocStyle[] dcs = new DocStyle[numstyles]; - int ii = 0; - for (int i = 0; i < numstyles; i++) - { - DocStyle dc = new DocStyle(); - dc = dcstyles.DcStyles[ii]; - dcs[i] = dc; - if (i != 1) ii++; // insert a new section by copying the second one - } - dcstyles.DcStyles = dcs; - - dcstyles.DcStyles[0].Name = "Step Deviations"; - //Procedure Steps - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - //dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - //dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - dcstyles.DcStyles[0].PageLength = 564; - - //Cover Page - dcstyles.DcStyles[1].Name = "Cover Page"; - dcstyles.DcStyles[1].numberingsequence = 3; - dcstyles.DcStyles[1].oldtonew = 32; // gotten from NSP Enhanced Dev format - dcstyles.DcStyles[1].TopMargin = 228; - dcstyles.DcStyles[1].FooterLen = 12; - dcstyles.DcStyles[1].PageLength = 540; - dcstyles.DcStyles[1].PageWidth = 576; - dcstyles.DcStyles[1].LeftMargin = 48; - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - //dcstyles.DcStyles[1].ContStyle.FontFamily = "Arial"; - //dcstyles.DcStyles[1].ContStyle.FontSize = "11"; - - //Introduction & Appendix Pages - With Box - dcstyles.DcStyles[2].Name = "Introduction & Appendix Pages - With Box"; - dcstyles.DcStyles[2].Index = 2; - dcstyles.DcStyles[2].oldtonew = 448; - dcstyles.DcStyles[2].pagestyle = 2; - dcstyles.DcStyles[2].TopMargin = 132; - dcstyles.DcStyles[2].FooterLen = 0; - dcstyles.DcStyles[2].PageLength = 780; - dcstyles.DcStyles[2].PageWidth = 576; - dcstyles.DcStyles[2].LeftMargin = 42; - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //dcstyles.DcStyles[2].ContStyle.FontFamily = "Arial"; - //dcstyles.DcStyles[2].ContStyle.FontSize = "11"; - - //Foldout Pages - //Introduction & Appendix Pages - Without Box - dcstyles.DcStyles[3].Name = "Introduction & Appendix Pages - Without Box"; - dcstyles.DcStyles[3].Index = 3; - dcstyles.DcStyles[3].numberingsequence = 1; - dcstyles.DcStyles[3].oldtonew = 506888; - dcstyles.DcStyles[3].pagestyle = 3; - dcstyles.DcStyles[3].TopMargin = 108; - dcstyles.DcStyles[3].FooterLen = 0; - dcstyles.DcStyles[3].PageLength = 780; - dcstyles.DcStyles[3].PageWidth = 576; - dcstyles.DcStyles[3].LeftMargin = 42; - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - //dcstyles.DcStyles[3].ContStyle.FontFamily = "Arial"; - //dcstyles.DcStyles[3].ContStyle.FontSize = "11"; - } - public void AddNSPIFGDOC(ref DocStyles dcstyles) - { - //First Procedure Steps Page - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - //All But First Procedure Steps Page - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].ContStyle.FontSize = "11"; - //Cover Page - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //Appendix Pages - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - - dcstyles.DcStyles[0].ContTop = ""; - dcstyles.DcStyles[1].ContTop = ""; - - } - public void AddNSPARPDOC(ref DocStyles dcstyles) - { - //First Procedure Steps Page - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - //All But First Procedure Steps Page - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].ContStyle.FontSize = "11"; - //Cover Page - dcstyles.DcStyles[2].pagestyle = 4; - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //Appendix Pages - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - //Annunciator Title Page - dcstyles.DcStyles[4].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[4].dstyle.FontSize = "11"; - dcstyles.DcStyles[4].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[4].ContStyle.FontSize = "11"; - } - public void AddNSPARP_00DOC(ref DocStyles dcstyles) - { - //First Procedure Steps Page - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - //All But First Procedure Steps Page - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - dcstyles.DcStyles[1].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].ContStyle.FontSize = "11"; - //Cover Page - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //Appendix Pages - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - } - public void AddNSPSAMDOC(ref DocStyles dcstyles) - { - // we need to add one new docsyles - // expand the dcstyles.DcStyle array by one; - int numstyles = dcstyles.DcStyles.Length; // number of current docstyles - numstyles += 1; // adding one more docstyle - DocStyle[] dcs = new DocStyle[numstyles]; - int ii = 0; - for (int i = 0; i < numstyles; i++) - { - DocStyle dc = new DocStyle(); - if (i == numstyles - 1) - dc = dcstyles.DcStyles[5]; // insert a new section by copying the sixth one - else - dc = dcstyles.DcStyles[ii]; - dcs[i] = dc; - ii++; - } - dcstyles.DcStyles = dcs; - //Procedure Steps - dcstyles.DcStyles[0].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].dstyle.FontSize = "11"; - dcstyles.DcStyles[0].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[0].ContStyle.FontSize = "11"; - //Purpose And Entry Conditions - dcstyles.DcStyles[1].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[1].dstyle.FontSize = "11"; - //Figures Included in Page Count - dcstyles.DcStyles[2].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[2].dstyle.FontSize = "11"; - //Cover Page with retention of 5 years - dcstyles.DcStyles[3].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[3].dstyle.FontSize = "11"; - //Cover Page - dcstyles.DcStyles[4].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[4].dstyle.FontSize = "11"; - //Foldout Pages - dcstyles.DcStyles[5].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[5].dstyle.FontSize = "11"; - //Attachment Pages - dcstyles.DcStyles[6].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[6].dstyle.FontSize = "11"; - //Landscape Pages - dcstyles.DcStyles[7].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[7].dstyle.FontSize = "11"; - //Figures with Seperate Pagination - dcstyles.DcStyles[8].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[8].dstyle.FontSize = "11"; - //Figures with Section Info - dcstyles.DcStyles[9].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[9].dstyle.FontSize = "11"; - //Attachments with Section Info (copyied from Attachment Pages section) - dcstyles.DcStyles[10].Name = "Attachment Pages With Section Info"; - dcstyles.DcStyles[10].Index = 10; - dcstyles.DcStyles[10].pagestyle = 8; - dcstyles.DcStyles[10].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[10].dstyle.FontSize = "11"; - dcstyles.DcStyles[10].TopMargin = 162; - } - #endregion - } - // Genmac - public partial class RtfToSvg - { - private void AddNSP(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "Number:" + - "Title:" + - "Revision{sp}Number:" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[1]); - - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "STEP" + - "ACTION/EXPECTED{sp}RESPONSE" + - "RESPONSE{sp}NOT{sp}OBTAINED" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[3]); - - xdNew.LoadXml(" " + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"STEP" + -"ACTION/EXPECTED{sp}RESPONSE" + -"RESPONSE{sp}NOT{sp}OBTAINED" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - - xdNew.LoadXml(" " + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"APPLY" + -"STEP" + -"CONTINUOUS{sp}ACTION" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[5]); - - xdNew.LoadXml(" " + - "E" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[6]); - - xdNew.LoadXml(" " + - "L" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[7]); - - xdNew.LoadXml(" " + - "M" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[8]); - - xdNew.LoadXml(" " + - "N" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[9]); - - xdNew.LoadXml(" " + - "$" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - - xdNew.LoadXml(" " + - "S" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[11]); - - xdNew.LoadXml(" " + - "X" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[12]); - - xdNew.LoadXml(" " + - "C" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - } - - private void AddNSPDEV(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "EOP{sp}Number:" + - "Title:" + - "Revision{sp}Number:" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[1]); - - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "EOP{sp}STEP" + - "ERG{sp}STEP" + - "DEVIATION{sp}/{sp}JUSTIFICATION" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[3]); - - } - private void AddNSPARP(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + - "" + - "" + - "" + - "O.C.{sp}REVIEW{sp}DATE" + - "REVIEWED{sp}BY:" + - "APPROVED{sp}BY:" + - "DATE:" + - "DATE:" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[2]); - - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "" + - "Alarm" + - "Approximate{sp}Setpoints" + - "Tripped" + - "Reset" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[3]); - - xdNew.LoadXml(" " + - "" + - "TD" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - - xdNew.LoadXml(" " + - "E" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[7]); - - xdNew.LoadXml(" " + - "L" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[8]); - - xdNew.LoadXml(" " + - "M" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[9]); - - xdNew.LoadXml(" " + - "N" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - - xdNew.LoadXml(" " + - "$" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[11]); - - xdNew.LoadXml(" " + - "S" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[12]); - - xdNew.LoadXml(" " + - "X" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[13]); - - xdNew.LoadXml(" " + - "C" + - ""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[14]); - - } - private void AddNSPAB(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + -"E" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[7]); - - xdNew.LoadXml(" " + -"L" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[8]); - - xdNew.LoadXml(" " + -"M" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[9]); - - xdNew.LoadXml(" " + -"N" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - - xdNew.LoadXml(" " + -"$" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[11]); - - xdNew.LoadXml(" " + - "S" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[12]); - - xdNew.LoadXml(" " + - "X" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[13]); - - xdNew.LoadXml(" " + - "C" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + -"" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + -"" + -""); - - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + -""); - - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - } - private void AddNSPIFG(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + -"" + -"" + -"" + -"O.C.{sp}REVIEW{sp}DATE" + -"REVIEWED{sp}BY:" + -"APPROVED{sp}BY:" + -"DATE:" + -"DATE:" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[2]); - - xdNew.LoadXml(" " + -"" + -"" + -"" + -"" + -"" + -"Alarm" + -"Approximate{sp}Setpoints" + -"Tripped" + -"Reset" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[3]); - - xdNew.LoadXml(" " + -"TD" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - - xdNew.LoadXml(" " + -"E" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[7]); - - xdNew.LoadXml(" " + -"L" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[8]); - - xdNew.LoadXml(" " + -"M" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[9]); - - xdNew.LoadXml(" " + -"N" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[10]); - - xdNew.LoadXml(" " + -"$" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[11]); - - xdNew.LoadXml(" " + - "S" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "X" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "C" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - } - private void AddNSPSAM(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - xdNew.LoadXml(" " + -"" + -"" + -"" + -"" + -"Number:" + -"Title:" + -"Revision{sp}Number:" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[1]); - - xdNew.LoadXml(" " + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"" + -"STEP" + -"ACTION/EXPECTED{sp}RESPONSE" + -"RESPONSE{sp}NOT{sp}OBTAINED" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[3]); - - xdNew.LoadXml(" " + -"E" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[4]); - - xdNew.LoadXml(" " + -"L" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[5]); - - xdNew.LoadXml(" " + -"M" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[6]); - - xdNew.LoadXml(" " + -"N" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[7]); - - xdNew.LoadXml(" " + -"$" + -""); - - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[8]); - - xdNew.LoadXml(" " + - "S" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "X" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - - xdNew.LoadXml(" " + - "C" + -""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true)); - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_Robinson.cs b/PROMS/fmtxml/PlantSpecific_Robinson.cs deleted file mode 100644 index caaffa87..00000000 --- a/PROMS/fmtxml/PlantSpecific_Robinson.cs +++ /dev/null @@ -1,1098 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddCPLfmt(ref FormatData fmtdata) // Robinson - { - Robinson_ArialFontInProcedures(ref fmtdata); - fmtdata.Name = "Duke Energy - Robinson EOP Format"; - fmtdata.ProcData.TitleLength = 42; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "443,193,114"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "443,193,114"; - fmtdata.BoxData[1].End = 457; // caution box - // Caution - fmtdata.StepData[6].MixCautionsAndNotes = "True"; - fmtdata.StepData[6].TabData.Bullet.Separate = "True"; - fmtdata.StepData[6].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[6].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[6].TabData.Bullet.Font.FontSize = "12"; - fmtdata.StepData[6].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[6].TabData.Bullet.Font.CPI = "12"; - // Note - fmtdata.StepData[7].MixCautionsAndNotes = "True"; - fmtdata.StepData[7].TabData.Bullet.Separate = "True"; - fmtdata.StepData[7].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[7].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[7].TabData.Bullet.Font.FontSize = "12"; - fmtdata.StepData[7].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[7].TabData.Bullet.Font.CPI = "12"; - // Unnumber High level Step - fmtdata.StepData[18].BoxIt = "False"; - fmtdata.StepData[18].StepEditData.TypeMenu.MenuItem = "Unnumbered Step"; - fmtdata.StepData[18].TabData.IdentEdit = ""; - fmtdata.StepData[18].TabData.Ident = ""; - fmtdata.StepData[18].TabData.RNOIdent = ""; - fmtdata.StepData[18].TabData.RNOIdentEdit = ""; - fmtdata.StepData[18].StepLayoutData.ForeColor = "cyan"; - - // Fixed Spaceing Unnumber High level Step - fmtdata.StepData[41].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Unnumbered Step"; - fmtdata.StepData[41].TabData.IdentEdit = ""; - fmtdata.StepData[41].Font.FontFamily = "Consolas"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].Font.CPI = "12"; - fmtdata.StepData[41].TabData.Ident = ""; - fmtdata.StepData[41].TabData.RNOIdent = ""; - fmtdata.StepData[41].TabData.RNOIdentEdit = ""; - fmtdata.StepData[41].StepLayoutData.ForeColor = "cyan"; - - // Fixed Spacing Paragraph (ContAcParagraph) - //change Continuous Action Paragraph to a Fix Pitched font paragraph - //fmtdata.StepData[47].WidthOverride = "425"; - fmtdata.StepData[47].Font.FontFamily = "Consolas"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].Font.CPI = "12"; - fmtdata.StepData[47].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Paragraph"; - fmtdata.StepData[47].TabData.IdentEdit = ""; - fmtdata.StepData[47].TabData.Ident = ""; - fmtdata.StepData[47].TabData.RNOIdentEdit = ""; - fmtdata.StepData[47].TabData.RNOIdent = ""; - - // Transitions - - fmtdata.TransData.TransTypeData[6].TransUI = "ProcMenu, SectMenuAny, StepFirst"; - fmtdata.TransData.TransTypeData[9].TransUI = "ProcMenu, SectMenuAny, StepAllowNone, StepFirst"; - - } - private void AddCPL_X00(ref FormatData fmtdata) // Robinson - { - Robinson_ArialFontInProcedures(ref fmtdata); - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "400,195,114"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "400,195,114"; - // Unnumber High level Step - fmtdata.StepData[18].BoxIt = "False"; - fmtdata.StepData[18].StepEditData.TypeMenu.MenuItem = "Unnumbered Step"; - fmtdata.StepData[18].TabData.IdentEdit = ""; - fmtdata.StepData[18].TabData.Ident = ""; - fmtdata.StepData[18].TabData.RNOIdent = ""; - fmtdata.StepData[18].TabData.RNOIdentEdit = ""; - fmtdata.StepData[18].StepLayoutData.ForeColor = "cyan"; - - // Fixed Spaceing Unnumber High level Step - fmtdata.StepData[41].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Unnumbered Step"; - fmtdata.StepData[41].TabData.IdentEdit = ""; - fmtdata.StepData[41].Font.FontFamily = "Consolas"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].Font.CPI = "12"; - fmtdata.StepData[41].TabData.Ident = ""; - fmtdata.StepData[41].TabData.RNOIdent = ""; - fmtdata.StepData[41].TabData.RNOIdentEdit = ""; - fmtdata.StepData[41].StepLayoutData.ForeColor = "cyan"; - - // Fixed Spacing Paragraph (ContAcParagraph) - //change Continuous Action Paragraph to a Fix Pitched font paragraph - //fmtdata.StepData[47].WidthOverride = "425"; - fmtdata.StepData[47].Font.FontFamily = "Consolas"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].Font.CPI = "12"; - fmtdata.StepData[47].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Paragraph"; - fmtdata.StepData[47].TabData.IdentEdit = ""; - fmtdata.StepData[47].TabData.Ident = ""; - fmtdata.StepData[47].TabData.RNOIdentEdit = ""; - fmtdata.StepData[47].TabData.RNOIdent = ""; - } - private void AddCPL_X01(ref FormatData fmtdata) // Robinson - { - Robinson_ArialFontInProcedures(ref fmtdata); - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "380,195,114"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "380,195,114"; - // Unnumber High level Step - fmtdata.StepData[18].BoxIt = "False"; - fmtdata.StepData[18].StepEditData.TypeMenu.MenuItem = "Unnumbered Step"; - fmtdata.StepData[18].TabData.IdentEdit = ""; - fmtdata.StepData[18].TabData.Ident = ""; - fmtdata.StepData[18].TabData.RNOIdent = ""; - fmtdata.StepData[18].TabData.RNOIdentEdit = ""; - fmtdata.StepData[18].StepLayoutData.ForeColor = "cyan"; - - // Fixed Spaceing Unnumber High level Step - fmtdata.StepData[41].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Unnumbered Step"; - fmtdata.StepData[41].TabData.IdentEdit = ""; - fmtdata.StepData[41].Font.FontFamily = "Consolas"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].Font.CPI = "12"; - fmtdata.StepData[41].TabData.Ident = ""; - fmtdata.StepData[41].TabData.RNOIdent = ""; - fmtdata.StepData[41].TabData.RNOIdentEdit = ""; - fmtdata.StepData[41].StepLayoutData.ForeColor = "cyan"; - - // Fixed Spacing Paragraph (ContAcParagraph) - //change Continuous Action Paragraph to a Fix Pitched font paragraph - //fmtdata.StepData[47].WidthOverride = "425"; - fmtdata.StepData[47].Font.FontFamily = "Consolas"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].Font.CPI = "12"; - fmtdata.StepData[47].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Paragraph"; - fmtdata.StepData[47].TabData.IdentEdit = ""; - fmtdata.StepData[47].TabData.Ident = ""; - fmtdata.StepData[47].TabData.RNOIdentEdit = ""; - fmtdata.StepData[47].TabData.RNOIdent = ""; - } - private void AddCPL_X02(ref FormatData fmtdata) // Robinson - { - Robinson_ArialFontInProcedures(ref fmtdata); - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "400,195,114"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "400,195,114"; - // Unnumber High level Step - fmtdata.StepData[18].BoxIt = "False"; - fmtdata.StepData[18].StepEditData.TypeMenu.MenuItem = "Unnumbered Step"; - fmtdata.StepData[18].TabData.IdentEdit = ""; - fmtdata.StepData[18].TabData.Ident = ""; - fmtdata.StepData[18].TabData.RNOIdent = ""; - fmtdata.StepData[18].TabData.RNOIdentEdit = ""; - fmtdata.StepData[18].StepLayoutData.ForeColor = "cyan"; - - // Fixed Spaceing Unnumber High level Step - fmtdata.StepData[41].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Unnumbered Step"; - fmtdata.StepData[41].TabData.IdentEdit = ""; - fmtdata.StepData[41].Font.FontFamily = "Consolas"; - fmtdata.StepData[41].Font.FontSize = "11"; - fmtdata.StepData[41].Font.CPI = "12"; - fmtdata.StepData[41].TabData.Ident = ""; - fmtdata.StepData[41].TabData.RNOIdent = ""; - fmtdata.StepData[41].TabData.RNOIdentEdit = ""; - fmtdata.StepData[41].StepLayoutData.ForeColor = "cyan"; - - // Fixed Spacing Paragraph (ContAcParagraph) - //change Continuous Action Paragraph to a Fix Pitched font paragraph - //fmtdata.StepData[47].WidthOverride = "425"; - fmtdata.StepData[47].Font.FontFamily = "Consolas"; - fmtdata.StepData[47].Font.FontSize = "11"; - fmtdata.StepData[47].Font.CPI = "12"; - fmtdata.StepData[47].StepEditData.TypeMenu.MenuItem = "Fixed Spacing Paragraph"; - fmtdata.StepData[47].TabData.IdentEdit = ""; - fmtdata.StepData[47].TabData.Ident = ""; - fmtdata.StepData[47].TabData.RNOIdentEdit = ""; - fmtdata.StepData[47].TabData.RNOIdent = ""; - } - private void AddCPL_X03(ref FormatData fmtdata) // Robinson Duplex Foldouts - { - Robinson_ArialFontInProcedures(ref fmtdata); - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "460,138,114"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "460,138,114"; - } - private void OverrideCPL_X03(ref FormatData fmtdata) // Robinson Duplex Foldouts - { - fmtdata.TransData.CapsTransitions = "True"; - } - private void AddCPLRDev(ref FormatData fmtdata) // Robinson - { - Robinson_ArialFontInProcedures(ref fmtdata); - fmtdata.Name = "Duke Energy - Robinson Deviation Format"; - fmtdata.ProcData.TitleLength = 49; - } - private void AddCPLA(ref FormatData fmtdata) // Robinson - { - Robinson_ArialFontInProcedures(ref fmtdata); - fmtdata.Name = "Duke Energy - Robinson AOP Format"; - // Caution - fmtdata.StepData[6].MixCautionsAndNotes = "True"; - fmtdata.StepData[6].TabData.Bullet.Separate = "True"; - fmtdata.StepData[6].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[6].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[6].TabData.Bullet.Font.FontSize = "12"; - fmtdata.StepData[6].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[6].TabData.Bullet.Font.CPI = "12"; - // Note - fmtdata.StepData[7].MixCautionsAndNotes = "True"; - fmtdata.StepData[7].TabData.Bullet.Separate = "True"; - fmtdata.StepData[7].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[7].TabData.Bullet.Font.FontFamily = "Arial"; - fmtdata.StepData[7].TabData.Bullet.Font.FontSize = "12"; - fmtdata.StepData[7].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[7].TabData.Bullet.Font.CPI = "12"; - } - private void AddCPBCK(ref FormatData fmtdata) // Robinson - { - //Robinson_ArialFontInProcedures(ref fmtdata); - fmtdata.Name = "Duke Energy - Robinson Enhanced Background Format"; - } - private void OverrideAddCPBCK(ref FormatData fmtdata) // Robinson - { - // high - fmtdata.StepData[2].UseOldTemplate = "True"; - // Continuous - fmtdata.StepData[9].UseOldTemplate = "True"; - // Immediate - fmtdata.StepData[3].UseOldTemplate = "True"; - // LossOfAC - fmtdata.StepData[18].UseOldTemplate = "True"; - // High5 - fmtdata.StepData[41].UseOldTemplate = "True"; - // Caution - fmtdata.StepData[6].UseOldTemplate = "True"; - // Note - fmtdata.StepData[7].UseOldTemplate = "True"; - fmtdata.StepData[7].Inactive = "False"; - // Note 1 - fmtdata.StepData[22].Inactive = "True"; - // Note 2 - fmtdata.StepData[23].Inactive = "True"; - // Note 3 - fmtdata.StepData[26].Inactive = "True"; - // Note 4 - fmtdata.StepData[28].Inactive = "True"; - // Note 5 - fmtdata.StepData[32].Inactive = "True"; - // TitleWithTextRight - fmtdata.StepData[42].ReadOnly = "True"; - // TitleWithTextBelow - fmtdata.StepData[43].ReadOnly = "True"; - } - private void AddCPBCK_X00(ref FormatData fmtdata) // Robinson - { - //Robinson_ArialFontInProcedures(ref fmtdata); - fmtdata.Name = "Duke Energy - Enhanced Background Procedure Information"; - } - private void AddCPBCK_X01(ref FormatData fmtdata) // Robinson - { - //Robinson_ArialFontInProcedures(ref fmtdata); - fmtdata.Name = "Duke Energy - Robinson Enhanced Background Status Tree Format"; - } - private void AddCPBCK2(ref FormatData fmtdata) // Robinson - { - //Robinson_ArialFontInProcedures(ref fmtdata); - fmtdata.Name = "Duke Energy - Robinson Enhanced Background Additional Styles"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "496,216,144"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "496,216,144"; - - fmtdata.TransData.TransTypeData[7].TransUI = "ProcMenu, SectMenuStep, StepFirst"; - } - - - //private void AddCPLOverridefmt(ref FormatData fmtdata) - //{ - // fmtdata.BoxData[1].BXLLC = "-12345"; //this will put in a null string - // fmtdata.BoxData[1].BXULC = "-12345"; //this will put in a null string - // fmtdata.BoxData[1].BXVert = "-12345"; //this will put in a null string - // fmtdata.BoxData[1].BXURC = "-12345"; //this will put in a null string - // fmtdata.BoxData[1].BXULC = "-12345"; //this will put in a null string - //} - private void Robinson_ArialFontInProcedures(ref FormatData fmtdata) - { - // Set the overall font to Arial 12 pt - fmtdata.FontData.FontFamily = "Arial"; - fmtdata.FontData.FontSize = "12"; - fmtdata.FontData.CPI = "10"; - - fmtdata.SectData.SectionNumber.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionNumber.Font.FontSize = "12"; - fmtdata.SectData.SectionHeader.Font.FontFamily = "Arial"; - fmtdata.SectData.SectionHeader.Font.FontSize = "12"; - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.VertStyle.FontSize = "12"; - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.TopOfPage.Font.FontSize = "12"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectLayData.Separator.Font.FontSize = "12"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ModifiedTextStyle.FontSize = "12"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle.FontFamily = "Arial"; - fmtdata.SectData.StepSectionData.StpSectPrtData.ImmStepHdrStyle.FontSize = "12"; - - // set the font in all the step/substep types - for (int i = 0; i < fmtdata.StepData.Length; i++) - { - if (fmtdata.StepData[i].Font != null) - { - fmtdata.StepData[i].Font.FontFamily = "Arial"; - fmtdata.StepData[i].Font.FontSize = "12"; - } - else - fmtdata.StepData[i].Font = CreateFont("Arial", "12", "None"); - if (fmtdata.StepData[i].TabData.Font != null) - { - fmtdata.StepData[i].TabData.Font.FontFamily = "Arial"; - fmtdata.StepData[i].TabData.Font.FontSize = "12"; - } - else - fmtdata.StepData[i].TabData.Font = CreateFont("Arial", "12", "None"); - } - #region broken out substeps - //// Step Type Base - //fmtdata.StepData[0].Font.FontFamily = "Arial"; - //fmtdata.StepData[0].Font.FontSize = "12"; - //fmtdata.StepData[0].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[0].TabData.Font.FontSize = "12"; - - //// Substep - //fmtdata.StepData[1].Font.FontFamily = "Arial"; - //fmtdata.StepData[1].Font.FontSize = "12"; - //fmtdata.StepData[1].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[1].TabData.Font.FontSize = "12"; - - //// Standard High Level step - //fmtdata.StepData[2].Font.FontFamily = "Arial"; - //fmtdata.StepData[2].Font.FontSize = "12"; - //fmtdata.StepData[2].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[2].TabData.Font.FontSize = "12"; - - //// Immediate - //fmtdata.StepData[3].Font.FontFamily = "Arial"; - //fmtdata.StepData[3].Font.FontSize = "12"; - //fmtdata.StepData[3].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[3].TabData.Font.FontSize = "12"; - - //// And - //fmtdata.StepData[4].Font.FontFamily = "Arial"; - //fmtdata.StepData[4].Font.FontSize = "12"; - //fmtdata.StepData[4].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[4].TabData.Font.FontSize = "12"; - - //// OR - //fmtdata.StepData[5].Font.FontFamily = "Arial"; - //fmtdata.StepData[5].Font.FontSize = "12"; - //fmtdata.StepData[5].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[5].TabData.Font.FontSize = "12"; - - //// Cautions - //fmtdata.StepData[6].Font.FontFamily = "Arial"; - //fmtdata.StepData[6].Font.FontSize = "12"; - //fmtdata.StepData[6].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[6].TabData.Font.FontSize = "12"; - //fmtdata.StepData[6].TabData.Font.CPI = "10"; - ////fmtdata.StepData[6].TabData.Bullet.Separate = "True"; - ////fmtdata.StepData[6].TabData.Bullet.Font = new VE_Font(); - ////fmtdata.StepData[6].TabData.Bullet.Font.FontFamily = "Arial"; - ////fmtdata.StepData[6].TabData.Bullet.Font.FontSize = "12"; - ////fmtdata.StepData[6].TabData.Bullet.Font.FontStyle = "none"; - ////fmtdata.StepData[6].WidthOverride = "421"; - ////fmtdata.StepData[6].ColOverride = "194"; - - //// Caution1 - //fmtdata.StepData[20].Font.FontFamily = "Arial"; - //fmtdata.StepData[20].Font.FontSize = "12"; - //fmtdata.StepData[20].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[20].TabData.Font.FontSize = "12"; - //fmtdata.StepData[20].TabData.Font.FontStyle = "Italics, Bold"; - //fmtdata.StepData[20].TabData.Font.CPI = "10"; - ////fmtdata.StepData[20].TabData.Bullet.Separate = "True"; - ////fmtdata.StepData[20].TabData.Bullet.Font = new VE_Font(); - ////fmtdata.StepData[20].TabData.Bullet.Font.FontFamily = "Arial"; - ////fmtdata.StepData[20].TabData.Bullet.Font.FontSize = "12"; - ////fmtdata.StepData[20].TabData.Bullet.Font.FontStyle = "Bold"; - - //// Caution2 - //fmtdata.StepData[21].Font.FontFamily = "Arial"; - //fmtdata.StepData[21].Font.FontSize = "12"; - //fmtdata.StepData[21].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[21].TabData.Font.FontSize = "12"; - //fmtdata.StepData[21].TabData.Font.CPI = "10"; - ////fmtdata.StepData[21].TabData.Bullet.Separate = "True"; - ////fmtdata.StepData[21].TabData.Bullet.Font = new VE_Font(); - ////fmtdata.StepData[21].TabData.Bullet.Font.FontFamily = "Arial"; - ////fmtdata.StepData[21].TabData.Bullet.Font.FontSize = "12"; - ////fmtdata.StepData[21].TabData.Bullet.Font.FontStyle = "Bold"; - - //// Caution3 - //fmtdata.StepData[27].Font.FontFamily = "Arial"; - //fmtdata.StepData[27].Font.FontSize = "12"; - //fmtdata.StepData[27].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[27].TabData.Font.FontSize = "12"; - //fmtdata.StepData[27].TabData.Font.CPI = "10"; - ////fmtdata.StepData[27].TabData.Bullet.Separate = "True"; - ////fmtdata.StepData[27].TabData.Bullet.Font = new VE_Font(); - ////fmtdata.StepData[27].TabData.Bullet.Font.FontFamily = "Arial"; - ////fmtdata.StepData[27].TabData.Bullet.Font.FontSize = "12"; - ////fmtdata.StepData[27].TabData.Bullet.Font.FontStyle = "Bold"; - - //// Caution4 - //fmtdata.StepData[29].Font.FontFamily = "Arial"; - //fmtdata.StepData[29].Font.FontSize = "12"; - //fmtdata.StepData[29].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[29].TabData.Font.FontSize = "12"; - //fmtdata.StepData[29].TabData.Font.CPI = "10"; - ////fmtdata.StepData[29].TabData.Bullet.Separate = "True"; - ////fmtdata.StepData[29].TabData.Bullet.Font = new VE_Font(); - ////fmtdata.StepData[29].TabData.Bullet.Font.FontFamily = "Arial"; - ////fmtdata.StepData[29].TabData.Bullet.Font.FontSize = "12"; - ////fmtdata.StepData[29].TabData.Bullet.Font.FontStyle = "Bold"; - - //// Notes - //fmtdata.StepData[7].Font.FontFamily = "Arial"; - //fmtdata.StepData[7].Font.FontSize = "12"; - //fmtdata.StepData[7].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[7].TabData.Font.FontSize = "12"; - //fmtdata.StepData[7].TabData.Font.CPI = "10"; - ////fmtdata.StepData[7].TabData.Bullet.Separate = "True"; - ////fmtdata.StepData[7].TabData.Bullet.Font = new VE_Font(); - ////fmtdata.StepData[7].TabData.Bullet.Font.FontFamily = "Arial"; - ////fmtdata.StepData[7].TabData.Bullet.Font.FontSize = "12"; - ////fmtdata.StepData[7].TabData.Bullet.Font.FontStyle = "Bold"; - ////fmtdata.StepData[7].WidthOverride = "401"; - - //// Note1 - //fmtdata.StepData[22].Font.FontFamily = "Arial"; - //fmtdata.StepData[22].Font.FontSize = "12"; - //fmtdata.StepData[22].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[22].TabData.Font.FontSize = "12"; - //fmtdata.StepData[22].TabData.Font.CPI = "10"; - - //// Note2 - //fmtdata.StepData[23].Font.FontFamily = "Arial"; - //fmtdata.StepData[23].Font.FontSize = "12"; - //fmtdata.StepData[23].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[23].TabData.Font.FontSize = "12"; - //fmtdata.StepData[23].TabData.Font.CPI = "10"; - - //// Note3 - //fmtdata.StepData[26].Font.FontFamily = "Arial"; - //fmtdata.StepData[26].Font.FontSize = "12"; - //fmtdata.StepData[26].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[26].TabData.Font.FontSize = "12"; - //fmtdata.StepData[26].TabData.Font.CPI = "10"; - - //// Note4 - //fmtdata.StepData[28].Font.FontFamily = "Arial"; - //fmtdata.StepData[28].Font.FontSize = "12"; - //fmtdata.StepData[28].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[28].TabData.Font.FontSize = "12"; - //fmtdata.StepData[28].TabData.Font.CPI = "10"; - - //// Note5 - //fmtdata.StepData[32].Font.FontFamily = "Arial"; - //fmtdata.StepData[32].Font.FontSize = "12"; - //fmtdata.StepData[32].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[32].TabData.Font.FontSize = "12"; - //fmtdata.StepData[32].TabData.Font.CPI = "10"; - - //// Table - //fmtdata.StepData[8].Font.FontFamily = "Arial"; - //fmtdata.StepData[8].Font.FontSize = "12"; - //fmtdata.StepData[8].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[8].TabData.Font.FontSize = "12"; - - //// Continuous - //fmtdata.StepData[9].Font.FontFamily = "Arial"; - //fmtdata.StepData[9].Font.FontSize = "12"; - //fmtdata.StepData[9].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[9].TabData.Font.FontSize = "12"; - //// AER Table - //fmtdata.StepData[10].Font.FontFamily = "Arial"; - //fmtdata.StepData[10].Font.FontSize = "12"; - //fmtdata.StepData[10].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[10].TabData.Font.FontSize = "12"; - //// EquipmentList - //fmtdata.StepData[11].Font.FontFamily = "Arial"; - //fmtdata.StepData[11].Font.FontSize = "12"; - //fmtdata.StepData[11].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[11].TabData.Font.FontSize = "12"; - //// Title - //fmtdata.StepData[12].Font.FontFamily = "Arial"; - //fmtdata.StepData[12].Font.FontSize = "12"; - //fmtdata.StepData[12].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[12].TabData.Font.FontSize = "12"; - //// PageNumber - //fmtdata.StepData[13].Font.FontFamily = "Arial"; - //fmtdata.StepData[13].Font.FontSize = "12"; - //fmtdata.StepData[13].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[13].TabData.Font.FontSize = "12"; - //// EquipmentWBlank - //fmtdata.StepData[14].Font.FontFamily = "Arial"; - //fmtdata.StepData[14].Font.FontSize = "12"; - //fmtdata.StepData[14].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[14].TabData.Font.FontSize = "12"; - //// ProcNumber - //fmtdata.StepData[15].Font.FontFamily = "Arial"; - //fmtdata.StepData[15].Font.FontSize = "12"; - //fmtdata.StepData[15].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[15].TabData.Font.FontSize = "12"; - //// RevNumber - //fmtdata.StepData[16].Font.FontFamily = "Arial"; - //fmtdata.StepData[16].Font.FontSize = "12"; - //fmtdata.StepData[16].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[16].TabData.Font.FontSize = "12"; - //// AccPages - //fmtdata.StepData[17].Font.FontFamily = "Arial"; - //fmtdata.StepData[17].Font.FontSize = "12"; - //fmtdata.StepData[17].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[17].TabData.Font.FontSize = "12"; - //// LossOfAC - //fmtdata.StepData[18].Font.FontFamily = "Arial"; - //fmtdata.StepData[18].Font.FontSize = "12"; - //fmtdata.StepData[18].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[18].TabData.Font.FontSize = "12"; - //// ExplicitAnd - //fmtdata.StepData[19].Font.FontFamily = "Arial"; - //fmtdata.StepData[19].Font.FontSize = "12"; - //fmtdata.StepData[19].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[19].TabData.Font.FontSize = "12"; - //// Paragraph - //fmtdata.StepData[24].Font.FontFamily = "Arial"; - //fmtdata.StepData[24].Font.FontSize = "12"; - //fmtdata.StepData[24].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[24].TabData.Font.FontSize = "12"; - //// Default - //fmtdata.StepData[25].Font.FontFamily = "Arial"; - //fmtdata.StepData[25].Font.FontSize = "12"; - //fmtdata.StepData[25].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[25].TabData.Font.FontSize = "12"; - //// EquipmentOpt - //fmtdata.StepData[30].Font.FontFamily = "Arial"; - //fmtdata.StepData[30].Font.FontSize = "12"; - //fmtdata.StepData[30].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[30].TabData.Font.FontSize = "12"; - //// EquipmentOptWBlank - //fmtdata.StepData[31].Font.FontFamily = "Arial"; - //fmtdata.StepData[31].Font.FontSize = "12"; - //fmtdata.StepData[31].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[31].TabData.Font.FontSize = "12"; - //// BorderlessAERTable - //fmtdata.StepData[33].Font.FontFamily = "Arial"; - //fmtdata.StepData[33].Font.FontSize = "12"; - //fmtdata.StepData[33].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[33].TabData.Font.FontSize = "12"; - //// BorderlessTable - //fmtdata.StepData[34].Font.FontFamily = "Arial"; - //fmtdata.StepData[34].Font.FontSize = "12"; - //fmtdata.StepData[34].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[34].TabData.Font.FontSize = "12"; - //// ImplicitOr - //fmtdata.StepData[35].Font.FontFamily = "Arial"; - //fmtdata.StepData[35].Font.FontSize = "12"; - //fmtdata.StepData[35].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[35].TabData.Font.FontSize = "12"; - //// Figure - //fmtdata.StepData[36].Font.FontFamily = "Arial"; - //fmtdata.StepData[36].Font.FontSize = "12"; - //fmtdata.StepData[36].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[36].TabData.Font.FontSize = "12"; - //// AERFigure - //fmtdata.StepData[37].Font.FontFamily = "Arial"; - //fmtdata.StepData[37].Font.FontSize = "12"; - //fmtdata.StepData[37].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[37].TabData.Font.FontSize = "12"; - //// BorderlessFigure - //fmtdata.StepData[38].Font.FontFamily = "Arial"; - //fmtdata.StepData[38].Font.FontSize = "12"; - //fmtdata.StepData[38].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[38].TabData.Font.FontSize = "12"; - //// BorderlessFAERigure - //fmtdata.StepData[39].Font.FontFamily = "Arial"; - //fmtdata.StepData[39].Font.FontSize = "12"; - //fmtdata.StepData[39].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[39].TabData.Font.FontSize = "12"; - //// RNOType - //fmtdata.StepData[40].Font.FontFamily = "Arial"; - //fmtdata.StepData[40].Font.FontSize = "12"; - //fmtdata.StepData[40].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[40].TabData.Font.FontSize = "12"; - //// HIGH5 - //fmtdata.StepData[41].Font.FontFamily = "Arial"; - //fmtdata.StepData[41].Font.FontSize = "12"; - //fmtdata.StepData[41].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[41].TabData.Font.FontSize = "12"; - //// TitleWithTextRight - //fmtdata.StepData[42].Font.FontFamily = "Arial"; - //fmtdata.StepData[42].Font.FontSize = "12"; - //fmtdata.StepData[42].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[42].TabData.Font.FontSize = "12"; - //// TitleWithTextBelow - //fmtdata.StepData[43].Font.FontFamily = "Arial"; - //fmtdata.StepData[43].Font.FontSize = "12"; - //fmtdata.StepData[43].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[43].TabData.Font.FontSize = "12"; - //// ContAcSequential - //fmtdata.StepData[44].Font.FontFamily = "Arial"; - //fmtdata.StepData[44].Font.FontSize = "12"; - //fmtdata.StepData[44].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[44].TabData.Font.FontSize = "12"; - //// ContAcAnd - //fmtdata.StepData[45].Font.FontFamily = "Arial"; - //fmtdata.StepData[45].Font.FontSize = "12"; - //fmtdata.StepData[45].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[45].TabData.Font.FontSize = "12"; - //// ContAcOr - //fmtdata.StepData[46].Font.FontFamily = "Arial"; - //fmtdata.StepData[46].Font.FontSize = "12"; - //fmtdata.StepData[46].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[46].TabData.Font.FontSize = "12"; - //// ContAcParagraph - //fmtdata.StepData[47].Font.FontFamily = "Arial"; - //fmtdata.StepData[47].Font.FontSize = "12"; - //fmtdata.StepData[47].TabData.Font.FontFamily = "Arial"; - //fmtdata.StepData[47].TabData.Font.FontSize = "12"; - #endregion - } - private VE_Font CreateFont(string name, string size, string style) - { - VE_Font vf = new VE_Font(); - vf.FontFamily = name; - vf.FontSize = size; - vf.FontStyle = style; - return vf; - } - } - public partial class FmtToXml - { - private void AddCPLRDevPage(ref PageStyles pgstyles) - { - SetRobinsonPageListFont(ref pgstyles); - pgstyles.Name = "Duke Energy - Robinson Deviation Format Page Styles"; - pgstyles.PgStyles[0].Items[4].Col = 224; - pgstyles.PgStyles[1].Items[4].Col = 224; - } - private void AddCPLAPage(ref PageStyles pgstyles) - { - SetRobinsonPageListFont(ref pgstyles); - pgstyles.Name = "Duke Energy - Robinson AOP Format Page Styles"; - } - private void AddCPLPage(ref PageStyles pgstyles) - { - SetRobinsonPageListFont(ref pgstyles); - pgstyles.Name = "Duke Energy - Robinson EOP Format Page Styles"; - //"Cover Page-Progress Logo" - pgstyles.PgStyles[3].Name="Cover Page-Duke Logo"; - pgstyles.PgStyles[3].Items[2].Col = 462; - pgstyles.PgStyles[3].Items[3].Col = 230; - pgstyles.PgStyles[3].Items[4].Col = 230; - pgstyles.PgStyles[3].Items[5].Col = 234; - pgstyles.PgStyles[3].Items[6].Col = 232; - pgstyles.PgStyles[3].Items[7].Col = 232; - pgstyles.PgStyles[3].Items[8].Col = 235; - } - private void AddCPL_Z03(ref PageStyles pgstyles) - { - pgstyles.Name = "Duke Energy - Robinson Duplex Foldout Page Style"; - } - private void AddCPBCK(ref PageStyles pgstyles) - { - // add a new page style for Attachments with the section number in the page header - Array.Resize(ref pgstyles.PgStyles, pgstyles.PgStyles.Length + 1); - - //SetRobinsonPageListFont(ref pgstyles); - pgstyles.Name = "Duke Energy - Robinson Enhanced Background Page Styles"; - // Step Description Table - pgstyles.PgStyles[0].Items[7].Col = 276; - pgstyles.PgStyles[0].Items[8].Col = 525; - // Cover Page - pgstyles.PgStyles[1].Items[2].Token = "DUKE ENERGY"; - pgstyles.PgStyles[1].Items[2].Col = 260; - pgstyles.PgStyles[1].Items[3].Col = 255; - pgstyles.PgStyles[1].Items[5].Col = 255; - pgstyles.PgStyles[1].Items[6].Col = 255; - pgstyles.PgStyles[1].Items[7].Col = 251; - pgstyles.PgStyles[1].Items[8].Col = 242; - // General Text - pgstyles.PgStyles[2].Items[2].Col = 6; - pgstyles.PgStyles[2].Items[3].Col = 246; - pgstyles.PgStyles[2].Items[5].Col = 246; - pgstyles.PgStyles[2].Items[7].Col = 228; - // Attachment with Section number and Title in header - pgstyles.PgStyles[3].Name = "Attachment Pages Section Number and Title"; - pgstyles.PgStyles[3].Items[8].Token = "{SECTIONLEVELNUMBER}"; - // Attachment with Section Number in header - pgstyles.PgStyles[4].Name = "Attachment with Section Number"; - pgstyles.PgStyles[4].Index = 4; - if (pgstyles.PgStyles[4].Items == null) - Array.Resize(ref pgstyles.PgStyles[4].Items, 11); - pgstyles.PgStyles[4].Items[0].Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - pgstyles.PgStyles[4].Items[0].Row = 12; - pgstyles.PgStyles[4].Items[0].Col=3; - pgstyles.PgStyles[4].Items[0].Justify="PSCenter"; - pgstyles.PgStyles[4].Items[0].Style = new VE_Font(); - pgstyles.PgStyles[4].Items[0].Style.FontFamily = "Prestige Elite Tall"; - pgstyles.PgStyles[4].Items[0].Style.FontSize = "10"; - pgstyles.PgStyles[4].Items[0].Style.FontStyle = "None"; - pgstyles.PgStyles[4].Items[0].Style.CPI= "12"; - - pgstyles.PgStyles[4].Items[1].Token = "{HEADER1}"; - pgstyles.PgStyles[4].Items[1].Row = 12; - pgstyles.PgStyles[4].Items[1].Col = -18; - pgstyles.PgStyles[4].Items[1].Justify = "PSLeft"; - pgstyles.PgStyles[4].Items[1].Style = new VE_Font(); - pgstyles.PgStyles[4].Items[1].Style.FontFamily = "Prestige Elite Tall"; - pgstyles.PgStyles[4].Items[1].Style.FontSize = "10"; - pgstyles.PgStyles[4].Items[1].Style.FontStyle = "None"; - pgstyles.PgStyles[4].Items[1].Style.CPI= "12"; - - pgstyles.PgStyles[4].Items[2].Token = "{EOPNUM}-BD"; - pgstyles.PgStyles[4].Items[2].Row = 36; - pgstyles.PgStyles[4].Items[2].Col = 6; - pgstyles.PgStyles[4].Items[2].Justify = "PSLeft, PSTop"; - pgstyles.PgStyles[4].Items[2].Style = new VE_Font(); - pgstyles.PgStyles[4].Items[2].Style.FontFamily = "Letter Gothic"; - pgstyles.PgStyles[4].Items[2].Style.FontSize = "10"; - pgstyles.PgStyles[4].Items[2].Style.FontStyle = "Bold"; - pgstyles.PgStyles[4].Items[2].Style.CPI= "12"; - - pgstyles.PgStyles[4].Items[3].Token = "{PROCTITLE1}"; - pgstyles.PgStyles[4].Items[3].Row = 48; - pgstyles.PgStyles[4].Items[3].Col = 243; - pgstyles.PgStyles[4].Items[3].Justify = "PSTop"; - pgstyles.PgStyles[4].Items[3].Style = new VE_Font(); - pgstyles.PgStyles[4].Items[3].Style.FontFamily = "Letter Gothic"; - pgstyles.PgStyles[4].Items[3].Style.FontSize = "10"; - pgstyles.PgStyles[4].Items[3].Style.FontStyle = "Bold"; - pgstyles.PgStyles[4].Items[3].Style.CPI= "12"; - - pgstyles.PgStyles[4].Items[4].Token = "{PAGE} of {OF}"; - pgstyles.PgStyles[4].Items[4].Row = 36; - pgstyles.PgStyles[4].Items[4].Col = 450; - pgstyles.PgStyles[4].Items[4].Justify = "PSLeft, PSTop"; - pgstyles.PgStyles[4].Items[4].Style = new VE_Font(); - pgstyles.PgStyles[4].Items[4].Style.FontFamily = "Letter Gothic"; - pgstyles.PgStyles[4].Items[4].Style.FontSize = "10"; - pgstyles.PgStyles[4].Items[4].Style.FontStyle = "Bold"; - pgstyles.PgStyles[4].Items[4].Style.CPI= "12"; - - pgstyles.PgStyles[4].Items[5].Token = "{PROCTITLE2}"; - pgstyles.PgStyles[4].Items[5].Row = 48; - pgstyles.PgStyles[4].Items[5].Col = 243; - pgstyles.PgStyles[4].Items[5].Justify = "PSTop"; - pgstyles.PgStyles[4].Items[5].Style = new VE_Font(); - pgstyles.PgStyles[4].Items[5].Style.FontFamily = "Letter Gothic"; - pgstyles.PgStyles[4].Items[5].Style.FontSize = "10"; - pgstyles.PgStyles[4].Items[5].Style.FontStyle = "Bold"; - pgstyles.PgStyles[4].Items[5].Style.CPI= "12"; - - pgstyles.PgStyles[4].Items[6].Token = "Rev {REV}"; - pgstyles.PgStyles[4].Items[6].Row = 60; - pgstyles.PgStyles[4].Items[6].Col = 450; - pgstyles.PgStyles[4].Items[6].Justify = "PSLeft"; - pgstyles.PgStyles[4].Items[6].Style = new VE_Font(); - pgstyles.PgStyles[4].Items[6].Style.FontFamily = "Letter Gothic"; - pgstyles.PgStyles[4].Items[6].Style.FontSize = "10"; - pgstyles.PgStyles[4].Items[6].Style.FontStyle = "Bold"; - pgstyles.PgStyles[4].Items[6].Style.CPI= "12"; - - pgstyles.PgStyles[4].Items[7].Token = "BASIS DOCUMENT"; - pgstyles.PgStyles[4].Items[7].Row = 60; - pgstyles.PgStyles[4].Items[7].Col = 276; - pgstyles.PgStyles[4].Items[7].Justify = "PSCenter"; - pgstyles.PgStyles[4].Items[7].Style = new VE_Font(); - pgstyles.PgStyles[4].Items[7].Style.FontFamily = "Arial"; - pgstyles.PgStyles[4].Items[7].Style.FontSize = "14"; - pgstyles.PgStyles[4].Items[7].Style.FontStyle = "Bold"; - pgstyles.PgStyles[4].Items[7].Style.CPI= "12"; - - pgstyles.PgStyles[4].Items[8].Token = "{SECTIONLEVELNUMBER}"; - pgstyles.PgStyles[4].Items[8].Row = 86; - pgstyles.PgStyles[4].Items[8].Col = 240; - pgstyles.PgStyles[4].Items[8].Justify = "PSCenter"; - pgstyles.PgStyles[4].Items[8].Style = new VE_Font(); - pgstyles.PgStyles[4].Items[8].Style.FontFamily = "Letter Gothic"; - pgstyles.PgStyles[4].Items[8].Style.FontSize = "10"; - pgstyles.PgStyles[4].Items[8].Style.FontStyle = "Bold"; - pgstyles.PgStyles[4].Items[8].Style.CPI= "12"; - - pgstyles.PgStyles[4].Items[9].Token = "{HLRNO}"; - pgstyles.PgStyles[4].Items[9].Row = 108; - pgstyles.PgStyles[4].Items[9].Col = 525; - pgstyles.PgStyles[4].Items[9].Justify = "PSRight, PSTrue"; - pgstyles.PgStyles[4].Items[9].Style = new VE_Font(); - pgstyles.PgStyles[4].Items[9].Style.FontFamily = "Courier New"; - pgstyles.PgStyles[4].Items[9].Style.FontSize = "12"; - pgstyles.PgStyles[4].Items[9].Style.FontStyle = "None"; - pgstyles.PgStyles[4].Items[9].Style.CPI= "10"; - - pgstyles.PgStyles[4].Items[10].Token = "{HLSTAB}"; - pgstyles.PgStyles[4].Items[10].Row = 108; - pgstyles.PgStyles[4].Items[10].Col = 0; - pgstyles.PgStyles[4].Items[10].Justify = "PSLeft"; - pgstyles.PgStyles[4].Items[10].Style = new VE_Font(); - pgstyles.PgStyles[4].Items[10].Style.FontFamily = "Courier New"; - pgstyles.PgStyles[4].Items[10].Style.FontSize = "12"; - pgstyles.PgStyles[4].Items[10].Style.FontStyle = "None"; - pgstyles.PgStyles[4].Items[10].Style.CPI = "10"; - } - private void AddCPBCK_Z00(ref PageStyles pgstyles) - { - SetRobinsonPageListFont(ref pgstyles); - pgstyles.Name = "Duke Energy - Robinson Enhanced Background Foldout Page Styles"; - // Step Description Table - pgstyles.PgStyles[0].Items[7].Col = 276; - pgstyles.PgStyles[0].Items[8].Col = 525; - } - private void AddCPBCK_Z01(ref PageStyles pgstyles) - { - //SetRobinsonPageListFont(ref pgstyles); - pgstyles.Name = "Duke Energy - Robinson Enhanced Background Status Tree Page Styles"; - // Step Description Table - pgstyles.PgStyles[0].Items[7].Col = 276; - pgstyles.PgStyles[0].Items[8].Col = 525; - } - private void AddCPBCK2(ref PageStyles pgstyles) - { - //SetRobinsonPageListFont(ref pgstyles); - pgstyles.Name = "Duke Energy - Robinson Enhanced Backgrounds Additional Page Styles"; - // Additional Information Pages - pgstyles.PgStyles[0].Items[3].Col = 252; - pgstyles.PgStyles[0].Items[5].Col = 252; - pgstyles.PgStyles[0].Items[6].Col = 450; - pgstyles.PgStyles[0].Items[7].Col = 249; - } - - private static void SetRobinsonPageListFont(ref PageStyles pgstyles) - { - int i = 0; - int ii = 0; - // Set font to Arial 12 pt - for (i = 0; i < pgstyles.PgStyles.Length; i++) - { - for (ii = 0; ii < pgstyles.PgStyles[i].Items.Length; ii++) - { - pgstyles.PgStyles[i].Items[ii].Style.FontFamily = "Arial"; - //pgstyles.PgStyles[i].Items[ii].Style.FontSize = "12"; - } - } - return; - } - private void AddCPLDOC(ref DocStyles dcstyles) - { - SetRobinsonDocStyleFont(ref dcstyles); - - dcstyles.Name = "Duke Energy - Robinson EOP Format Doc Styles"; - - dcstyles.DcStyles[0].ContTop = "%d. (CONTINUED)"; - //dcstyles.DcStyles[0].AlignHLSTabWithSect = true; - dcstyles.DcStyles[1].ContTop = "%d. (CONTINUED)"; - dcstyles.DcStyles[2].ContTop = "%d. (CONTINUED)"; - dcstyles.DcStyles[6].Name = "Cover Page-Duke Logo"; - dcstyles.DcStyles[7].TopMargin = 91; - dcstyles.DcStyles[7].PageWidth = 593; - } - - private static void SetRobinsonDocStyleFont(ref DocStyles dcstyles) - { - int i = 0; - int ii = 0; - // Set font to Arial 12 pt - for (i = 0; i < dcstyles.DcStyles.Length; i++) - { - dcstyles.DcStyles[i].dstyle.FontFamily = "Arial"; - dcstyles.DcStyles[i].dstyle.FontSize = "12"; - dcstyles.DcStyles[i].ContStyle.FontFamily = "Arial"; - dcstyles.DcStyles[i].ContStyle.FontSize = "12"; - } - return; - } - private void AddCPL_Y00(ref DocStyles dcstyles) - { - SetRobinsonDocStyleFont(ref dcstyles); - - dcstyles.DcStyles[0].ContTop = "%d. (CONTINUED)"; - dcstyles.DcStyles[0].UseCheckOffs = true; - dcstyles.DcStyles[1].ContTop = "%d. (CONTINUED)"; - dcstyles.DcStyles[1].UseCheckOffs = true; - dcstyles.DcStyles[2].ContTop = "%d. (CONTINUED)"; - dcstyles.DcStyles[2].UseCheckOffs = true; - dcstyles.DcStyles[6].TopMargin = 91; - dcstyles.DcStyles[6].PageWidth = 593; - } - private void AddCPL_Y01(ref DocStyles dcstyles) - { - SetRobinsonDocStyleFont(ref dcstyles); - - dcstyles.DcStyles[0].ContTop = "%d. (CONTINUED)"; - dcstyles.DcStyles[0].UseCheckOffs = true; - dcstyles.DcStyles[1].ContTop = "%d. (CONTINUED)"; - dcstyles.DcStyles[1].UseCheckOffs = true; - dcstyles.DcStyles[2].ContTop = "%d. (CONTINUED)"; - dcstyles.DcStyles[2].UseCheckOffs = true; - dcstyles.DcStyles[6].TopMargin = 91; - dcstyles.DcStyles[6].PageWidth = 593; - } - private void AddCPL_Y02(ref DocStyles dcstyles) - { - SetRobinsonDocStyleFont(ref dcstyles); - - dcstyles.DcStyles[0].ContTop = "%d. (CONTINUED)"; - dcstyles.DcStyles[0].UseCheckOffs = true; - dcstyles.DcStyles[1].ContTop = "%d. (CONTINUED)"; - dcstyles.DcStyles[1].UseCheckOffs = true; - dcstyles.DcStyles[2].ContTop = "%d. (CONTINUED)"; - dcstyles.DcStyles[2].UseCheckOffs = true; - dcstyles.DcStyles[6].TopMargin = 91; - dcstyles.DcStyles[6].PageWidth = 593; - } - private void AddCPL_Y03(ref DocStyles dcstyles) - { - SetRobinsonDocStyleFont(ref dcstyles); - - dcstyles.Name = "Duke Energy - Robinson Robinson Duplex Foldout Doc Style"; - dcstyles.DcStyles[0].UseCheckOffs = true; - } - private void AddCPLRDEV(ref DocStyles dcstyles) - { - dcstyles.Name = "Duke Energy - Robinson Deviation Format Document Styles"; - SetRobinsonDocStyleFont(ref dcstyles); - } - private void AddCPLA(ref DocStyles dcstyles) - { - dcstyles.Name = "Duke Energy - Robinson AOP Format Document Styles"; - SetRobinsonDocStyleFont(ref dcstyles); - } - private void AddCPBCK(ref DocStyles dcstyles) - { - dcstyles.Name = "Duke Energy - Robinson Enhanced Background Styles"; - //SetRobinsonDocStyleFont(ref dcstyles); - dcstyles.DcStyles[2].PageWidth = 585; - - // change title of Attachment doc style - dcstyles.DcStyles[3].Name = "Attachment With Section Number and Title"; - - //adding new Attachment style prints the section number in the page header - /** - **/ - Array.Resize(ref dcstyles.DcStyles, dcstyles.DcStyles.Length + 1); - - dcstyles.DcStyles[4].Name = "Attachment with Section Number"; - dcstyles.DcStyles[4].Index = 4; - dcstyles.DcStyles[4].numberingsequence = 1; - dcstyles.DcStyles[4].IsStepSection = true; - dcstyles.DcStyles[4].UseCheckOffs = false; - dcstyles.DcStyles[4].UseColSByLevel = false; - dcstyles.DcStyles[4].oldtonew = 7; - dcstyles.DcStyles[4].CancelSectTitle = false; - dcstyles.DcStyles[4].SpecialStepsFoldout=false; - dcstyles.DcStyles[4].UndSpecialStepsFoldout=false; - dcstyles.DcStyles[4].ExtraLineHeader=false; - dcstyles.DcStyles[4].AlignHLSTabWithSect=false; - dcstyles.DcStyles[4].pagestyle=4; - dcstyles.DcStyles[4].dstyle = new VE_Font(); - dcstyles.DcStyles[4].dstyle.FontFamily = "Courier New"; - dcstyles.DcStyles[4].dstyle.FontSize ="12"; - dcstyles.DcStyles[4].dstyle.FontStyle="None"; - dcstyles.DcStyles[4].dstyle.CPI = "10"; - dcstyles.DcStyles[4].TopMargin=144; - dcstyles.DcStyles[4].FooterLen=12; - dcstyles.DcStyles[4].PageLength=612; - dcstyles.DcStyles[4].PageWidth=489.6F; - dcstyles.DcStyles[4].LeftMargin=72; - dcstyles.DcStyles[4].ContStyle = new VE_Font(); - dcstyles.DcStyles[4].ContStyle.FontFamily= "Courier New"; - dcstyles.DcStyles[4].ContStyle.FontSize = "12"; - dcstyles.DcStyles[4].ContStyle.FontStyle = "None"; - dcstyles.DcStyles[4].ContTop = " (Continued)"; - dcstyles.DcStyles[4].ContTopHLS = 1; - dcstyles.DcStyles[4].CTMargin = 0; - dcstyles.DcStyles[4].ContBottom = " (Continued on next page)"; - dcstyles.DcStyles[4].CBMargin = 7.2F; - dcstyles.DcStyles[4].CBLoc = 0; - dcstyles.DcStyles[4].DocStructStyle = new VE_DocStyle(); - dcstyles.DcStyles[4].DocStructStyle.DocStyleUse = E_DocStyleUse.UseOnAllPages; - } - private void AddCPBCK_Y00(ref DocStyles dcstyles) - { - dcstyles.Name = "Duke Energy - Robinson Enhanced Background Foldout Styles"; - //SetRobinsonDocStyleFont(ref dcstyles); - } - private void AddCPBCK_Y01(ref DocStyles dcstyles) - { - dcstyles.Name = "Duke Energy - Robinson Enhanced Background Status Tree Styles"; - //SetRobinsonDocStyleFont(ref dcstyles); - } - private void AddCPBCK2(ref DocStyles dcstyles) - { - dcstyles.Name = "Duke Energy - Robinson Enhanced Background Additional Styles"; - //SetRobinsonDocStyleFont(ref dcstyles); - dcstyles.DcStyles[0].PageWidth = 570; - } - } - public partial class RtfToSvg - { - private void AddCPL(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - // B1 - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "" + - "STEP" + - "" + - "ACTION/EXPECTED{sp}RESPONSE" + - "" + - "" + - "" + - "RESPONSE{sp}NOT{sp}OBTAINED" + - "" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[1]); - - // C2 - xdNew.LoadXml(" " + - "" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[7]); - - // C3 - xdNew.LoadXml(" " + - "" + - "" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[8]); - - // C4 - xdNew.LoadXml(" " + - "" + - "" + - "N/A" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[9]); - - } - - private void AddCPLA(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - // B1 - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "" + - "STEP" + - "" + - "INSTRUCTIONS" + - "" + - "" + - "" + - "RESPONSE{sp}NOT{sp}OBTAINED" + - "" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[1]); - } - - private void AddCPLRDEV(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - // B2 - xdNew.LoadXml(" " + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "" + - "EOP{sp}STEP" + - "ERG{sp}STEP" + - "DEVIATION / JUSTIFICATION" + -""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[2]); - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_SouthTexas.cs b/PROMS/fmtxml/PlantSpecific_SouthTexas.cs deleted file mode 100644 index a2eeb898..00000000 --- a/PROMS/fmtxml/PlantSpecific_SouthTexas.cs +++ /dev/null @@ -1,286 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddOHLPfmt(ref FormatData fmtdata) // Catawba - { - fmtdata.SectData.StepSectionData.StpSectLayData.ColT = -3; - - Array.Resize(ref fmtdata.SectData.ReplaceStrData, fmtdata.SectData.ReplaceStrData.Length + 64); - - fmtdata.SectData.ReplaceStrData[15].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[15].ReplaceWord = "actuate"; - fmtdata.SectData.ReplaceStrData[15].ReplaceWith = "ACTUATE"; - - fmtdata.SectData.ReplaceStrData[16].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[16].ReplaceWord = "adjust"; - fmtdata.SectData.ReplaceStrData[16].ReplaceWith = "ADJUST"; - - fmtdata.SectData.ReplaceStrData[17].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[17].ReplaceWord = "align"; - fmtdata.SectData.ReplaceStrData[17].ReplaceWith = "ALIGN"; - - fmtdata.SectData.ReplaceStrData[18].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[18].ReplaceWord = "allow"; - fmtdata.SectData.ReplaceStrData[18].ReplaceWith = "ALLOW"; - - fmtdata.SectData.ReplaceStrData[19].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[19].ReplaceWord = "block"; - fmtdata.SectData.ReplaceStrData[19].ReplaceWith = "BLOCK"; - - fmtdata.SectData.ReplaceStrData[20].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[20].ReplaceWord = "borate"; - fmtdata.SectData.ReplaceStrData[20].ReplaceWith = "BORATE"; - - fmtdata.SectData.ReplaceStrData[21].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[21].ReplaceWord = "check"; - fmtdata.SectData.ReplaceStrData[21].ReplaceWith = "CHECK"; - - fmtdata.SectData.ReplaceStrData[22].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[22].ReplaceWord = "close"; - fmtdata.SectData.ReplaceStrData[22].ReplaceWith = "CLOSE"; - - fmtdata.SectData.ReplaceStrData[23].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[23].ReplaceWord = "complete"; - fmtdata.SectData.ReplaceStrData[23].ReplaceWith = "COMPLETE"; - - fmtdata.SectData.ReplaceStrData[24].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[24].ReplaceWord = "control"; - fmtdata.SectData.ReplaceStrData[24].ReplaceWith = "CONTROL"; - - fmtdata.SectData.ReplaceStrData[25].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[25].ReplaceWord = "consult"; - fmtdata.SectData.ReplaceStrData[25].ReplaceWith = "CONSULT"; - - fmtdata.SectData.ReplaceStrData[26].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[26].ReplaceWord = "continue"; - fmtdata.SectData.ReplaceStrData[26].ReplaceWith = "CONTINUE"; - - fmtdata.SectData.ReplaceStrData[27].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[27].ReplaceWord = "cooldown"; - fmtdata.SectData.ReplaceStrData[27].ReplaceWith = "COOLDOWN"; - - fmtdata.SectData.ReplaceStrData[28].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[28].ReplaceWord = "decrease"; - fmtdata.SectData.ReplaceStrData[28].ReplaceWith = "DECREASE"; - - fmtdata.SectData.ReplaceStrData[29].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[29].ReplaceWord = "deenergize"; - fmtdata.SectData.ReplaceStrData[29].ReplaceWith = "DEENERGIZE"; - - fmtdata.SectData.ReplaceStrData[30].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[30].ReplaceWord = "depress"; - fmtdata.SectData.ReplaceStrData[30].ReplaceWith = "DEPRESS"; - - fmtdata.SectData.ReplaceStrData[31].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[31].ReplaceWord = "depressurize"; - fmtdata.SectData.ReplaceStrData[31].ReplaceWith = "DEPRESSURIZE"; - - fmtdata.SectData.ReplaceStrData[32].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[32].ReplaceWord = "determine"; - fmtdata.SectData.ReplaceStrData[32].ReplaceWith = "DETERMINE"; - - fmtdata.SectData.ReplaceStrData[33].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[33].ReplaceWord = "dispatch"; - fmtdata.SectData.ReplaceStrData[33].ReplaceWith = "DISPATCH"; - - fmtdata.SectData.ReplaceStrData[34].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[34].ReplaceWord = "dump"; - fmtdata.SectData.ReplaceStrData[34].ReplaceWith = "DUMP"; - - fmtdata.SectData.ReplaceStrData[35].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[35].ReplaceWord = "energize"; - fmtdata.SectData.ReplaceStrData[35].ReplaceWith = "ENERGIZE"; - - fmtdata.SectData.ReplaceStrData[36].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[36].ReplaceWord = "ensure"; - fmtdata.SectData.ReplaceStrData[36].ReplaceWith = "ENSURE"; - - fmtdata.SectData.ReplaceStrData[37].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[37].ReplaceWord = "equalize"; - fmtdata.SectData.ReplaceStrData[37].ReplaceWith = "EQUALIZE"; - - fmtdata.SectData.ReplaceStrData[38].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[38].ReplaceWord = "establish"; - fmtdata.SectData.ReplaceStrData[38].ReplaceWith = "ESTABLISH"; - - fmtdata.SectData.ReplaceStrData[39].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[39].ReplaceWord = "evaluate"; - fmtdata.SectData.ReplaceStrData[39].ReplaceWith = "EVALUATE"; - - fmtdata.SectData.ReplaceStrData[40].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[40].ReplaceWord = "identify"; - fmtdata.SectData.ReplaceStrData[40].ReplaceWith = "IDENTIFY"; - - fmtdata.SectData.ReplaceStrData[41].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[41].ReplaceWord = "increase"; - fmtdata.SectData.ReplaceStrData[41].ReplaceWith = "INCREASE"; - - fmtdata.SectData.ReplaceStrData[42].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[42].ReplaceWord = "initiate"; - fmtdata.SectData.ReplaceStrData[42].ReplaceWith = "INITIATE"; - - fmtdata.SectData.ReplaceStrData[43].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[43].ReplaceWord = "insert"; - fmtdata.SectData.ReplaceStrData[43].ReplaceWith = "INSERT"; - - fmtdata.SectData.ReplaceStrData[44].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[44].ReplaceWord = "isolate"; - fmtdata.SectData.ReplaceStrData[44].ReplaceWith = "ISOLATE"; - - fmtdata.SectData.ReplaceStrData[45].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[45].ReplaceWord = "load"; - fmtdata.SectData.ReplaceStrData[45].ReplaceWith = "LOAD"; - - fmtdata.SectData.ReplaceStrData[46].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[46].ReplaceWord = "lower"; - fmtdata.SectData.ReplaceStrData[46].ReplaceWith = "LOWER"; - - fmtdata.SectData.ReplaceStrData[47].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[47].ReplaceWord = "maintain"; - fmtdata.SectData.ReplaceStrData[47].ReplaceWith = "MAINTAIN"; - - fmtdata.SectData.ReplaceStrData[48].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[48].ReplaceWord = "minimize"; - fmtdata.SectData.ReplaceStrData[48].ReplaceWith = "MINIMIZE"; - - fmtdata.SectData.ReplaceStrData[49].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[49].ReplaceWord = "monitor"; - fmtdata.SectData.ReplaceStrData[49].ReplaceWith = "MONITOR"; - - fmtdata.SectData.ReplaceStrData[50].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[50].ReplaceWord = "notify"; - fmtdata.SectData.ReplaceStrData[50].ReplaceWith = "NOTIFY"; - - fmtdata.SectData.ReplaceStrData[51].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[51].ReplaceWord = "observe"; - fmtdata.SectData.ReplaceStrData[51].ReplaceWith = "OBSERVE"; - - fmtdata.SectData.ReplaceStrData[52].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[52].ReplaceWord = "open"; - fmtdata.SectData.ReplaceStrData[52].ReplaceWith = "OPEN"; - - fmtdata.SectData.ReplaceStrData[53].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[53].ReplaceWord = "operate"; - fmtdata.SectData.ReplaceStrData[53].ReplaceWith = "OPERATE"; - - fmtdata.SectData.ReplaceStrData[54].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[54].ReplaceWord = "perform"; - fmtdata.SectData.ReplaceStrData[54].ReplaceWith = "PERFORM"; - - fmtdata.SectData.ReplaceStrData[55].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[55].ReplaceWord = "place"; - fmtdata.SectData.ReplaceStrData[55].ReplaceWith = "PLACE"; - - fmtdata.SectData.ReplaceStrData[56].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[56].ReplaceWord = "prepare"; - fmtdata.SectData.ReplaceStrData[56].ReplaceWith = "PREPARE"; - - fmtdata.SectData.ReplaceStrData[57].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[57].ReplaceWord = "raise"; - fmtdata.SectData.ReplaceStrData[57].ReplaceWith = "RAISE"; - - fmtdata.SectData.ReplaceStrData[58].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[58].ReplaceWord = "record"; - fmtdata.SectData.ReplaceStrData[58].ReplaceWith = "RECORD"; - - fmtdata.SectData.ReplaceStrData[59].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[59].ReplaceWord = "release"; - fmtdata.SectData.ReplaceStrData[59].ReplaceWith = "RELEASE"; - - fmtdata.SectData.ReplaceStrData[60].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[60].ReplaceWord = "reset"; - fmtdata.SectData.ReplaceStrData[60].ReplaceWith = "RESET"; - - fmtdata.SectData.ReplaceStrData[61].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[61].ReplaceWord = "restore"; - fmtdata.SectData.ReplaceStrData[61].ReplaceWith = "RESTORE"; - - fmtdata.SectData.ReplaceStrData[62].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[62].ReplaceWord = "return"; - fmtdata.SectData.ReplaceStrData[62].ReplaceWith = "RETURN"; - - fmtdata.SectData.ReplaceStrData[63].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[63].ReplaceWord = "runback"; - fmtdata.SectData.ReplaceStrData[63].ReplaceWith = "RUNBACK"; - - fmtdata.SectData.ReplaceStrData[64].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[64].ReplaceWord = "select"; - fmtdata.SectData.ReplaceStrData[64].ReplaceWith = "SELECT"; - - fmtdata.SectData.ReplaceStrData[65].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[65].ReplaceWord = "set"; - fmtdata.SectData.ReplaceStrData[65].ReplaceWith = "SET"; - - fmtdata.SectData.ReplaceStrData[66].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[66].ReplaceWord = "shed"; - fmtdata.SectData.ReplaceStrData[66].ReplaceWith = "SHED"; - - fmtdata.SectData.ReplaceStrData[67].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[67].ReplaceWord = "secure"; - fmtdata.SectData.ReplaceStrData[67].ReplaceWith = "SECURE"; - - fmtdata.SectData.ReplaceStrData[68].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[68].ReplaceWord = "start"; - fmtdata.SectData.ReplaceStrData[68].ReplaceWith = "START"; - - fmtdata.SectData.ReplaceStrData[69].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[69].ReplaceWord = "stop"; - fmtdata.SectData.ReplaceStrData[69].ReplaceWith = "STOP"; - - fmtdata.SectData.ReplaceStrData[70].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[70].ReplaceWord = "throttle"; - fmtdata.SectData.ReplaceStrData[70].ReplaceWith = "THROTTLE"; - - fmtdata.SectData.ReplaceStrData[71].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[71].ReplaceWord = "transfer"; - fmtdata.SectData.ReplaceStrData[71].ReplaceWith = "TRANSFER"; - - fmtdata.SectData.ReplaceStrData[72].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[72].ReplaceWord = "trip"; - fmtdata.SectData.ReplaceStrData[72].ReplaceWith = "TRIP"; - - fmtdata.SectData.ReplaceStrData[73].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[73].ReplaceWord = "try"; - fmtdata.SectData.ReplaceStrData[73].ReplaceWith = "TRY"; - - fmtdata.SectData.ReplaceStrData[74].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[74].ReplaceWord = "turn on"; - fmtdata.SectData.ReplaceStrData[74].ReplaceWith = "TURN ON"; - - fmtdata.SectData.ReplaceStrData[75].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[75].ReplaceWord = "turn off"; - fmtdata.SectData.ReplaceStrData[75].ReplaceWith = "TURN OFF"; - - fmtdata.SectData.ReplaceStrData[76].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[76].ReplaceWord = "use"; - fmtdata.SectData.ReplaceStrData[76].ReplaceWith = "USE"; - - fmtdata.SectData.ReplaceStrData[77].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[77].ReplaceWord = "vent"; - fmtdata.SectData.ReplaceStrData[77].ReplaceWith = "VENT"; - - fmtdata.SectData.ReplaceStrData[78].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsens"; - fmtdata.SectData.ReplaceStrData[78].ReplaceWord = "verify"; - fmtdata.SectData.ReplaceStrData[78].ReplaceWith = "VERIFY"; - } - } - public partial class FmtToXml - { - private void AddOHLPPage(ref PageStyles pgstyles) - { - } - - } - public partial class RtfToSvg - { - private void AddOHLP(XmlDocument myDoc) - { - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_Summer.cs b/PROMS/fmtxml/PlantSpecific_Summer.cs deleted file mode 100644 index d6f89e94..00000000 --- a/PROMS/fmtxml/PlantSpecific_Summer.cs +++ /dev/null @@ -1,422 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddVCSDEVfmt(ref FormatData fmtdata) - { - } - - private void AddSUMfmt(ref FormatData fmtdata) - { - fmtdata.ProcData.ChangeBarData.FixedChangeColumn = 91; - fmtdata.ProcData.TitleLength = 53; - fmtdata.ProcData.CheckOffData.RelXLocation = 5; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTableEdit = "460,204,126"; - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "460,204,126"; - fmtdata.SectData.SectionNumber.Pos = 0; - fmtdata.SectData.SectionNumber.Just = "PSCenter"; - fmtdata.SectData.SectionNumber.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.SectData.SectionNumber.Font.FontStyle = "None"; - fmtdata.SectData.SectionNumber.Font.CPI = "12.5"; - fmtdata.SectData.SectionHeader.Pos = 0; - fmtdata.SectData.SectionHeader.Just = "PSCenter"; - fmtdata.SectData.SectionHeader.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.SectData.SectionHeader.Font.FontStyle = "Underline"; - fmtdata.SectData.SectionHeader.Font.CPI = "12.5"; - fmtdata.SectData.StepSectionData.StpSectLayData.SingleColumnRNOIndent = 30; - fmtdata.SectData.StepSectionData.StpSectLayData.DoSTExtraAtTop = "False"; - fmtdata.SectData.StepSectionData.StpSectLayData.RNOWidthSameAsHighParent = true; - fmtdata.SectData.StepSectionData.StpSectLayData.ColRTable = "0,258,138"; - fmtdata.SectData.StepSectionData.StpSectEditData.ColRScreen = "0,0,0"; - fmtdata.StepData[2].StepLayoutData.STExtraSpace = "12"; - fmtdata.StepData[3].TabData.RNOIdent = " {numeric}"; - fmtdata.StepData[3].TabData.RNOExcludeMacros = true; - fmtdata.StepData[3].TabData.MacroTabAdjust = -6; - // Caution - fmtdata.StepData[6].TabData.Bullet.Separate = "True"; - fmtdata.StepData[6].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[6].TabData.Bullet.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.StepData[6].TabData.Bullet.Font.FontSize = "10"; - fmtdata.StepData[6].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[6].TabData.Bullet.Font.CPI = "12.5"; - // Note - fmtdata.StepData[7].TabData.Bullet.Separate = "True"; - fmtdata.StepData[7].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[7].TabData.Bullet.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.StepData[7].TabData.Bullet.Font.FontSize = "10"; - fmtdata.StepData[7].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[7].TabData.Bullet.Font.CPI = "12.5"; - // Table - fmtdata.StepData[8].StepLayoutData.STBoxindex = null; - // LossOfAC - fmtdata.StepData[18].StepEditData.TypeMenu.MenuItem = "Un-Numbered High Level Step"; - fmtdata.StepData[18].TabData.IdentEdit = ""; - fmtdata.StepData[18].TabData.Ident = ""; - fmtdata.StepData[18].TabData.RNOIdentEdit = ""; - fmtdata.StepData[18].TabData.RNOIdent = ""; - fmtdata.StepData[18].TabData.Justify = "None"; - // Caution 1 - fmtdata.StepData[20].TabData.Bullet.Separate = "True"; - fmtdata.StepData[20].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[20].TabData.Bullet.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.StepData[20].TabData.Bullet.Font.FontSize = "10"; - fmtdata.StepData[20].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[20].TabData.Bullet.Font.CPI = "12.5"; - - // Caution 2 - fmtdata.StepData[21].TabData.IsTransition = true; - fmtdata.StepData[21].TabData.Bullet.Separate = "True"; - fmtdata.StepData[21].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[21].TabData.Bullet.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.StepData[21].TabData.Bullet.Font.FontSize = "10"; - fmtdata.StepData[21].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[21].TabData.Bullet.Font.CPI = "12.5"; - - // Note 1 - fmtdata.StepData[22].TabData.Bullet.Separate = "True"; - fmtdata.StepData[22].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[22].TabData.Bullet.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.StepData[22].TabData.Bullet.Font.FontSize = "10"; - fmtdata.StepData[22].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[22].TabData.Bullet.Font.CPI = "12.5"; - - // Note 2 - fmtdata.StepData[23].TabData.IsTransition = true; - fmtdata.StepData[23].TabData.Bullet.Separate = "True"; - fmtdata.StepData[23].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[23].TabData.Bullet.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.StepData[23].TabData.Bullet.Font.FontSize = "10"; - fmtdata.StepData[23].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[23].TabData.Bullet.Font.CPI = "12.5"; - - // Note 3 - fmtdata.StepData[26].TabData.Bullet.Separate = "True"; - fmtdata.StepData[26].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[26].TabData.Bullet.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.StepData[26].TabData.Bullet.Font.FontSize = "10"; - fmtdata.StepData[26].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[26].TabData.Bullet.Font.CPI = "12.5"; - - // Caution 3 - fmtdata.StepData[27].TabData.Bullet.Separate = "True"; - fmtdata.StepData[27].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[27].TabData.Bullet.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.StepData[27].TabData.Bullet.Font.FontSize = "10"; - fmtdata.StepData[27].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[27].TabData.Bullet.Font.CPI = "12.5"; - - // Note 4 - fmtdata.StepData[28].TabData.Bullet.Separate = "True"; - fmtdata.StepData[28].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[28].TabData.Bullet.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.StepData[28].TabData.Bullet.Font.FontSize = "10"; - fmtdata.StepData[28].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[28].TabData.Bullet.Font.CPI = "12.5"; - - // Caution 4 - fmtdata.StepData[29].TabData.Bullet.Separate = "True"; - fmtdata.StepData[29].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[29].TabData.Bullet.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.StepData[29].TabData.Bullet.Font.FontSize = "10"; - fmtdata.StepData[29].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[29].TabData.Bullet.Font.CPI = "12.5"; - - // Note 5 - fmtdata.StepData[32].TabData.Bullet.Separate = "True"; - fmtdata.StepData[32].TabData.Bullet.Font = new VE_Font(); - fmtdata.StepData[32].TabData.Bullet.Font.FontFamily = "Letter Gothic Tall"; - fmtdata.StepData[32].TabData.Bullet.Font.FontSize = "10"; - fmtdata.StepData[32].TabData.Bullet.Font.FontStyle = "none"; - fmtdata.StepData[32].TabData.Bullet.Font.CPI = "12.5"; - - fmtdata.StepData[3].StepLayoutData.STExtraSpace = "-12345"; //this will put in a null - fmtdata.StepData[9].StepLayoutData.STExtraSpace = "-12345"; //this will put in a null - fmtdata.StepData[18].StepLayoutData.STExtraSpace = "-12345"; //this will put in a null - fmtdata.StepData[41].StepLayoutData.STExtraSpace = "-12345"; //this will put in a null - fmtdata.BoxData[1].TxtWidth = 420; - fmtdata.BoxData[2].TxtWidth = 420; - fmtdata.TransData.AdjustStepTransitionText = true; - fmtdata.TransData.BoldTransitionExceptHLS = true; - //fmtdata.TransData.TransTypeData[6].Index = 6; - //fmtdata.TransData.TransTypeData[6].TransType = 6; - //fmtdata.TransData.TransTypeData[6].TransFormat = "Step {First Step} of this procedure"; - //fmtdata.TransData.TransTypeData[6].TransMenu = "Step {First Step} of this procedure"; - //fmtdata.TransData.TransTypeData[6].TransUI = "ProcCur, SectMenuAny, StepFirst"; - } - private void AddSUMOverridefmt(ref FormatData fmtdata) - { - fmtdata.StepData[2].StepLayoutData.STExtraSpace = "12"; - fmtdata.StepData[40].StepLayoutData.STExtraSpace = "0"; - // add lower cased versions to replacewords - Array.Resize(ref fmtdata.SectData.ReplaceStrData, fmtdata.SectData.ReplaceStrData.Length + 20); - fmtdata.SectData.ReplaceStrData[42].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[42].ReplaceWord = "any"; - fmtdata.SectData.ReplaceStrData[42].ReplaceWith=@"\ul any\ulnone "; - fmtdata.SectData.ReplaceStrData[43].Flag="High, RNO, Caution, Note, Table, Substep, Attach, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[43].ReplaceWord="each"; - fmtdata.SectData.ReplaceStrData[43].ReplaceWith=@"\ul each\ulnone "; - fmtdata.SectData.ReplaceStrData[44].Flag = "High, RNO, Caution, Note, Table, Substep, Attach, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[44].ReplaceWord="all"; - fmtdata.SectData.ReplaceStrData[44].ReplaceWith=@"\ul all\ulnone "; - fmtdata.SectData.ReplaceStrData[45].Flag="High, RNO, Caution, Note, Table, Substep, Attach, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[45].ReplaceWord="either"; - fmtdata.SectData.ReplaceStrData[45].ReplaceWith=@"\ul either\ulnone "; - fmtdata.SectData.ReplaceStrData[46].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[46].ReplaceWord="eleven"; - fmtdata.SectData.ReplaceStrData[46].ReplaceWith=@"\ul eleven\ulnone "; - fmtdata.SectData.ReplaceStrData[47].Flag="High, RNO, Caution, Note, Table, Substep, Attach, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[47]. ReplaceWord="no"; - fmtdata.SectData.ReplaceStrData[47].ReplaceWith=@"\ul no\ulnone "; - fmtdata.SectData.ReplaceStrData[48].Flag="High, RNO, Caution, Note, Table, Substep, Attach, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[48].ReplaceWord="both"; - fmtdata.SectData.ReplaceStrData[48].ReplaceWith=@"\ul both\ulnone "; - fmtdata.SectData.ReplaceStrData[49].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[49].ReplaceWord="one"; - fmtdata.SectData.ReplaceStrData[49].ReplaceWith=@"\ul one\ulnone "; - fmtdata.SectData.ReplaceStrData[50].Flag="High, RNO, Caution, Note, Table, Substep, Attach, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[50].ReplaceWord="neither"; - fmtdata.SectData.ReplaceStrData[50].ReplaceWith=@"\ul neither\ulnone "; - fmtdata.SectData.ReplaceStrData[51].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[51].ReplaceWord="three"; - fmtdata.SectData.ReplaceStrData[51].ReplaceWith=@"\ul three\ulnone "; - fmtdata.SectData.ReplaceStrData[52].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[52].ReplaceWord="two"; - fmtdata.SectData.ReplaceStrData[52].ReplaceWith=@"\ul two\ulnone "; - fmtdata.SectData.ReplaceStrData[53].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[53].ReplaceWord="four"; - fmtdata.SectData.ReplaceStrData[53].ReplaceWith=@"\ul four\ulnone "; - fmtdata.SectData.ReplaceStrData[55].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[55].ReplaceWord="five"; - fmtdata.SectData.ReplaceStrData[55].ReplaceWith=@"\ul five\ulnone "; - fmtdata.SectData.ReplaceStrData[56].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[56].ReplaceWord="six"; - fmtdata.SectData.ReplaceStrData[56].ReplaceWith=@"\ul six\ulnone "; - fmtdata.SectData.ReplaceStrData[57].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[57].ReplaceWord="seven"; - fmtdata.SectData.ReplaceStrData[57].ReplaceWith=@"\ul seven\ulnone "; - fmtdata.SectData.ReplaceStrData[58].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[58].ReplaceWord="eight"; - fmtdata.SectData.ReplaceStrData[58].ReplaceWith=@"\ul eight\ulnone "; - fmtdata.SectData.ReplaceStrData[59].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[59].ReplaceWord="nine"; - fmtdata.SectData.ReplaceStrData[59].ReplaceWith=@"\ul nine\ulnone "; - fmtdata.SectData.ReplaceStrData[60].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[60].ReplaceWord="ten"; - fmtdata.SectData.ReplaceStrData[60].ReplaceWith=@"\ul ten\ulnone "; - fmtdata.SectData.ReplaceStrData[61].Flag="High, RNO, Caution, Note, Table, Substep, Attach, Setpoint, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[61].ReplaceWord="zero"; - fmtdata.SectData.ReplaceStrData[61].ReplaceWith=@"\ul zero\ulnone "; - fmtdata.SectData.ReplaceStrData[62].Flag="High, RNO, Caution, Note, Table, Substep, Attach, CaseInsensFirst"; - fmtdata.SectData.ReplaceStrData[62].ReplaceWord="none"; - fmtdata.SectData.ReplaceStrData[62].ReplaceWith=@"\ul none\ulnone "; - } - - } - public partial class FmtToXml - { - private void AddVCSDEVfmt(ref PageStyles pgstyles) - { - } - private void AddSUMfmt(ref PageStyles pgstyles) - { - pgstyles.PgStyles[4].Items[1].Style.FontSize = "14"; - pgstyles.PgStyles[4].Items[2].Style.FontSize = "14"; - Array.Resize(ref pgstyles.PgStyles, pgstyles.PgStyles.Length + 1); - pgstyles.PgStyles[12].Name = "Purpose/Symptom"; - pgstyles.PgStyles[12].Index = 12; - if (pgstyles.PgStyles[12].Items == null) - Array.Resize(ref pgstyles.PgStyles[12].Items, 7); - pgstyles.PgStyles[12].Items[0].Col = 3F; - pgstyles.PgStyles[12].Items[0].Justify = "PSCenter"; - pgstyles.PgStyles[12].Items[0].Row = 12F; - pgstyles.PgStyles[12].Items[0].Style = new VE_Font(); - pgstyles.PgStyles[12].Items[0].Style.CPI = "12"; - pgstyles.PgStyles[12].Items[0].Style.FontFamily = "Prestige Elite Tall"; - pgstyles.PgStyles[12].Items[0].Style.FontSize = "10"; - pgstyles.PgStyles[12].Items[0].Style.FontStyle = "None"; - pgstyles.PgStyles[12].Items[0].Token = "{DRAFTPAGE}{REFERENCEPAGE}{MASTERPAGE}{SAMPLEPAGE}"; - - pgstyles.PgStyles[12].Items[1].Col = 426.24F; - pgstyles.PgStyles[12].Items[1].Justify = "PSLeft"; - pgstyles.PgStyles[12].Items[1].Row = 12F; - pgstyles.PgStyles[12].Items[1].Style = new VE_Font(); - pgstyles.PgStyles[12].Items[1].Style.CPI = "12.5"; - pgstyles.PgStyles[12].Items[1].Style.FontFamily = "Letter Gothic Tall"; - pgstyles.PgStyles[12].Items[1].Style.FontSize = "10"; - pgstyles.PgStyles[12].Items[1].Style.FontStyle = "None"; - pgstyles.PgStyles[12].Items[1].Token = "{EOPNUM}"; - - pgstyles.PgStyles[12].Items[2].Col = 426.24F; - pgstyles.PgStyles[12].Items[2].Justify = "PSLeft"; - pgstyles.PgStyles[12].Items[2].Row = 24F; - pgstyles.PgStyles[12].Items[2].Style = new VE_Font(); - pgstyles.PgStyles[12].Items[2].Style.CPI = "12.5"; - pgstyles.PgStyles[12].Items[2].Style.FontFamily = "Letter Gothic Tall"; - pgstyles.PgStyles[12].Items[2].Style.FontSize = "10"; - pgstyles.PgStyles[12].Items[2].Style.FontStyle = "None"; - pgstyles.PgStyles[12].Items[2].Token = "REVISION {REV}"; - - pgstyles.PgStyles[12].Items[3].Col = 426.24F; - pgstyles.PgStyles[12].Items[3].Justify = "PSLeft"; - pgstyles.PgStyles[12].Items[3].Row = 36F; - pgstyles.PgStyles[12].Items[3].Style = new VE_Font(); - pgstyles.PgStyles[12].Items[3].Style.CPI = "12.5"; - pgstyles.PgStyles[12].Items[3].Style.FontFamily = "Letter Gothic Tall"; - pgstyles.PgStyles[12].Items[3].Style.FontSize = "10"; - pgstyles.PgStyles[12].Items[3].Style.FontStyle = "None"; - pgstyles.PgStyles[12].Items[3].Token = "{PS-DRAFT}"; - - pgstyles.PgStyles[12].Items[4].Col = 250.56F; - pgstyles.PgStyles[12].Items[4].Justify = "PSCenter"; - pgstyles.PgStyles[12].Items[4].Row = 48F; - pgstyles.PgStyles[12].Items[4].Style = new VE_Font(); - pgstyles.PgStyles[12].Items[4].Style.CPI = "12.5"; - pgstyles.PgStyles[12].Items[4].Style.FontFamily = "Letter Gothic Tall"; - pgstyles.PgStyles[12].Items[4].Style.FontSize = "10"; - pgstyles.PgStyles[12].Items[4].Style.FontStyle = "None"; - pgstyles.PgStyles[12].Items[4].Token = "{PROCTITLE}"; - - pgstyles.PgStyles[12].Items[5].Col = 0;//-23.04F; - pgstyles.PgStyles[12].Items[5].Justify = "PSLeft"; - pgstyles.PgStyles[12].Items[5].Row = 60F; - pgstyles.PgStyles[12].Items[5].Style = new VE_Font(); - pgstyles.PgStyles[12].Items[5].Style.CPI = "12.5"; - pgstyles.PgStyles[12].Items[5].Style.FontFamily = "Letter Gothic Tall"; - pgstyles.PgStyles[12].Items[5].Style.FontSize = "10"; - pgstyles.PgStyles[12].Items[5].Style.FontStyle = "None"; - pgstyles.PgStyles[12].Items[5].Token = "{BOX3}"; - - pgstyles.PgStyles[12].Items[6].Col = 250.56F; - pgstyles.PgStyles[12].Items[6].Justify = "PSCenter"; - pgstyles.PgStyles[12].Items[6].Row = 756F; - pgstyles.PgStyles[12].Items[6].Style = new VE_Font(); - pgstyles.PgStyles[12].Items[6].Style.CPI = "12.5"; - pgstyles.PgStyles[12].Items[6].Style.FontFamily = "Letter Gothic Tall"; - pgstyles.PgStyles[12].Items[6].Style.FontSize = "10"; - pgstyles.PgStyles[12].Items[6].Style.FontStyle = "None"; - pgstyles.PgStyles[12].Items[6].Token = "PAGE {PAGE} OF {OF}"; - } - private void AddVCSDEVDOC(ref DocStyles dcstyles) - { - /* - - - - */ - } - private void AddSUMDOC(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].CenterLineX = 261.9F; - dcstyles.DcStyles[0].CenterLineYTop = 652.2F; - //dcstyles.DcStyles[0].CenterLineYBottom = 49.2F; - dcstyles.DcStyles[0].CenterLineYBottom = 40.2F; - //dcstyles.DcStyles[0].EndString = " - - - - - - - - - - - - - - - - \n - - - - - - - - - - - - - - | End of %-8s | - - - - - - - - - - - - \n - - - - - - - - - - - - - - - -"; - dcstyles.DcStyles[0].EndString = " - - - - - - - - - - - - - - - - \n - - - - - - - - - - - - - - | End of %-12s | - - - - - - - - - - - - \n - - - - - - - - - - - - - - - -"; - dcstyles.DcStyles[1].CenterLineX = 261.9F; - dcstyles.DcStyles[1].CenterLineYTop = 678.2F; - //dcstyles.DcStyles[1].CenterLineYBottom = 49.2F; - dcstyles.DcStyles[1].CenterLineYBottom = 40.2F; - //dcstyles.DcStyles[1].EndString = " - - - - - - - - - - - - - - - - \n - - - - - - - - - - - - - - | End of %-8s | - - - - - - - - - - - - \n - - - - - - - - - - - - - - - -"; - dcstyles.DcStyles[1].EndString = " - - - - - - - - - - - - - - - - \n - - - - - - - - - - - - - - | End of %-12s | - - - - - - - - - - - - \n - - - - - - - - - - - - - - - -"; - dcstyles.DcStyles[2].CenterLineX = 261.9F; - dcstyles.DcStyles[2].CenterLineYTop = 678.2F; - //dcstyles.DcStyles[2].CenterLineYBottom = 49.2F; - dcstyles.DcStyles[2].CenterLineYBottom = 40.2F; - dcstyles.DcStyles[2].FooterLen = 0; - dcstyles.DcStyles[3].PageWidth = 612.96F; - dcstyles.DcStyles[4].PageWidth = 612.96F; - dcstyles.DcStyles[5].PageWidth = 612.96F; - dcstyles.DcStyles[7].LandscapePageList = true; - // foldout (Step Editor) - dcstyles.DcStyles[11].TopMargin = 103; - //adding new single column docstyle for purpose and symptoms and - //single column procedure steps section and - // single column step editor attachment section - Array.Resize(ref dcstyles.DcStyles, dcstyles.DcStyles.Length + 3); - //jcb single column docstyle for purpose and symptoms - dcstyles.DcStyles[12].Name = "Purpose/Symptom"; - dcstyles.DcStyles[12].Index = 12; - dcstyles.DcStyles[12].pagestyle = 12; - dcstyles.DcStyles[12].CancelSectTitle = false; - dcstyles.DcStyles[12].FooterLen = 12F; - dcstyles.DcStyles[12].IsStepSection = true; - dcstyles.DcStyles[12].LeftMargin = 51.84F; - dcstyles.DcStyles[12].numberingsequence = 1; - dcstyles.DcStyles[12].PageLength = 636; - dcstyles.DcStyles[12].PageWidth = 572.2F; //547.2F; - dcstyles.DcStyles[12].ShowSectionTitles = true; - dcstyles.DcStyles[12].SpecialStepsFoldout = false; - dcstyles.DcStyles[12].TopMargin = 108F; - dcstyles.DcStyles[12].UseCheckOffs = false; - dcstyles.DcStyles[12].dstyle = new VE_Font(); - dcstyles.DcStyles[12].dstyle.FontFamily = "Letter Gothic Tall"; - dcstyles.DcStyles[12].dstyle.FontSize = "10"; - dcstyles.DcStyles[12].dstyle.FontStyle = "None"; - dcstyles.DcStyles[12].dstyle.CPI = "12.5"; - //jsj single column Procedure Steps section - dcstyles.DcStyles[13].Name = "Single Column Procedure Steps"; - dcstyles.DcStyles[13].Index = 13; - dcstyles.DcStyles[13].pagestyle = 12; - dcstyles.DcStyles[13].CancelSectTitle = false; - dcstyles.DcStyles[13].FooterLen = 12F; - dcstyles.DcStyles[13].IsStepSection = true; - dcstyles.DcStyles[13].LeftMargin = 51.84F; - dcstyles.DcStyles[13].numberingsequence = 1; - dcstyles.DcStyles[13].PageLength = 636; - dcstyles.DcStyles[13].PageWidth = 547.2F; - dcstyles.DcStyles[13].SpecialStepsFoldout = false; - dcstyles.DcStyles[13].TopMargin = 108F; - dcstyles.DcStyles[13].UseCheckOffs = false; - dcstyles.DcStyles[13].dstyle = new VE_Font(); - dcstyles.DcStyles[13].dstyle.FontFamily = "Letter Gothic Tall"; - dcstyles.DcStyles[13].dstyle.FontSize = "10"; - dcstyles.DcStyles[13].dstyle.FontStyle = "None"; - dcstyles.DcStyles[13].dstyle.CPI = "12.5"; - //jsj Attachment Steps- one Column - dcstyles.DcStyles[14].Name = "Attachment Steps- One Column"; - dcstyles.DcStyles[14].Index = 14; - dcstyles.DcStyles[14].pagestyle = 5; - dcstyles.DcStyles[14].CancelSectTitle = false; - dcstyles.DcStyles[14].FooterLen = 12F; - dcstyles.DcStyles[14].IsStepSection = true; - dcstyles.DcStyles[14].LeftMargin = 51.84F; - dcstyles.DcStyles[14].numberingsequence = 1; - dcstyles.DcStyles[14].PageLength = 636; - dcstyles.DcStyles[14].PageWidth = 547.2F; - dcstyles.DcStyles[14].SpecialStepsFoldout = false; - dcstyles.DcStyles[14].TopMargin = 108F; - dcstyles.DcStyles[14].UseCheckOffs = false; - dcstyles.DcStyles[14].dstyle = new VE_Font(); - dcstyles.DcStyles[14].dstyle.FontFamily = "Letter Gothic Tall"; - dcstyles.DcStyles[14].dstyle.FontSize = "10"; - dcstyles.DcStyles[14].dstyle.FontStyle = "None"; - dcstyles.DcStyles[14].dstyle.CPI = "12.5"; - } - } - public partial class RtfToSvg - { - private void AddSUM(XmlDocument myDoc) - { - XmlDocument xdNew = new XmlDocument(); - // B2 - xdNew.LoadXml(" " + - "" + - "" + - "ACTION/EXPECTED{sp}RESPONSE" + - "" + - "ALTERNATIVE{sp}ACTION" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[2]); - //B3 - xdNew.LoadXml(" " + - "" + - ""); - myDoc.DocumentElement.ReplaceChild(myDoc.ImportNode(xdNew.DocumentElement.ChildNodes[0], true), myDoc.DocumentElement.ChildNodes[3]); - } - } -} diff --git a/PROMS/fmtxml/PlantSpecific_WolfCreak.cs b/PROMS/fmtxml/PlantSpecific_WolfCreak.cs deleted file mode 100644 index b13fee13..00000000 --- a/PROMS/fmtxml/PlantSpecific_WolfCreak.cs +++ /dev/null @@ -1,290 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.Xml; - -namespace fmtxml -{ - public partial class FmtFileToXml - { - private void AddWCN1Fmt(ref FormatData fmtdata) - { - // Set a section title length - fmtdata.SectData.SectionTitleLength = 71; - - fmtdata.ROData.UpRoAftrDash = "False"; - fmtdata.ROData.UpRoImmAftrDashSpace = "True"; - - // replace words - fmtdata.SectData.ReplaceStrData[0].ReplaceWith = @"\b \ul IF\ulnone \b0 "; - fmtdata.SectData.ReplaceStrData[2].ReplaceWith = @"{\par}\b \ul THEN\ulnone \b0 "; - fmtdata.SectData.ReplaceStrData[3].ReplaceWith = @"\b \ul WHEN\ulnone \b0 "; - fmtdata.SectData.ReplaceStrData[4].ReplaceWith = @"{\par}\b \ul AND\ulnone \b0 "; - fmtdata.SectData.ReplaceStrData[5].ReplaceWith = @"{\par}\b \ul OR\ulnone \b0 "; - - - // transdata - fmtdata.TransData.TransTypeData[4].TransFormat = @"{Sect Num}{First Step}"; - - // psi definition - fmtdata.ProcData.Psi = new PSI(); - fmtdata.ProcData.Psi.x = 200; - fmtdata.ProcData.Psi.y = 129; - fmtdata.ProcData.Psi.Caption = "Wolf Creek Procedure Information"; - fmtdata.ProcData.Psi.ButtonsOnBottom = "NO"; - fmtdata.ProcData.Psi.font = "ARIAL"; - fmtdata.ProcData.Psi.Labels = new PsiLabel[5]; - fmtdata.ProcData.Psi.Labels[0].text = "Responsible Manager's Title:"; - fmtdata.ProcData.Psi.Labels[0].Justify = "LEFT"; - fmtdata.ProcData.Psi.Labels[0].x = 12; - fmtdata.ProcData.Psi.Labels[0].y = 11; - fmtdata.ProcData.Psi.Labels[0].width = 100; - fmtdata.ProcData.Psi.Labels[0].height = 8; - - fmtdata.ProcData.Psi.Labels[1].text = "Use Category (Continuous/Reference):"; - fmtdata.ProcData.Psi.Labels[1].Justify = "LEFT"; - fmtdata.ProcData.Psi.Labels[1].x = 12; - fmtdata.ProcData.Psi.Labels[1].y = 36; - fmtdata.ProcData.Psi.Labels[1].width = 100; - fmtdata.ProcData.Psi.Labels[1].height = 8; - - fmtdata.ProcData.Psi.Labels[2].text = "Administrative Controls Procedure (Yes/No):"; - fmtdata.ProcData.Psi.Labels[2].Justify = "LEFT"; - fmtdata.ProcData.Psi.Labels[2].x = 12; - fmtdata.ProcData.Psi.Labels[2].y = 62; - fmtdata.ProcData.Psi.Labels[2].width = 148; - fmtdata.ProcData.Psi.Labels[2].height = 8; - - fmtdata.ProcData.Psi.Labels[3].text = "Management Oversight Evolution (Yes/No):"; - fmtdata.ProcData.Psi.Labels[3].Justify = "LEFT"; - fmtdata.ProcData.Psi.Labels[3].x = 12; - fmtdata.ProcData.Psi.Labels[3].y = 80; - fmtdata.ProcData.Psi.Labels[3].width = 144; - fmtdata.ProcData.Psi.Labels[3].height = 8; - - fmtdata.ProcData.Psi.Labels[4].text = "Program Number:"; - fmtdata.ProcData.Psi.Labels[4].Justify = "LEFT"; - fmtdata.ProcData.Psi.Labels[4].x = 12; - fmtdata.ProcData.Psi.Labels[4].y = 97; - fmtdata.ProcData.Psi.Labels[4].width = 60; - fmtdata.ProcData.Psi.Labels[4].height = 8; - - fmtdata.ProcData.Psi.Fields = new PsiField[5]; - fmtdata.ProcData.Psi.Fields[0].name = "CLASSIFICATION"; - fmtdata.ProcData.Psi.Fields[0].type = "TEXT"; - fmtdata.ProcData.Psi.Fields[0].text = ""; - fmtdata.ProcData.Psi.Fields[0].Length = 51; - fmtdata.ProcData.Psi.Fields[0].x = 12; - fmtdata.ProcData.Psi.Fields[0].y = 20; - fmtdata.ProcData.Psi.Fields[0].width = 180; - fmtdata.ProcData.Psi.Fields[0].height = 12; - - fmtdata.ProcData.Psi.Fields[1].name = "USECATEGORY"; - fmtdata.ProcData.Psi.Fields[1].type = "TEXT"; - fmtdata.ProcData.Psi.Fields[1].text = ""; - fmtdata.ProcData.Psi.Fields[1].Length = 21; - fmtdata.ProcData.Psi.Fields[1].x = 12; - fmtdata.ProcData.Psi.Fields[1].y = 44; - fmtdata.ProcData.Psi.Fields[1].width = 145; - fmtdata.ProcData.Psi.Fields[1].height = 12; - - fmtdata.ProcData.Psi.Fields[2].name = "CLASSABBR"; - fmtdata.ProcData.Psi.Fields[2].type = "TEXT"; - fmtdata.ProcData.Psi.Fields[2].text = ""; - fmtdata.ProcData.Psi.Fields[2].Length = 4; - fmtdata.ProcData.Psi.Fields[2].x = 160; - fmtdata.ProcData.Psi.Fields[2].y = 61; - fmtdata.ProcData.Psi.Fields[2].width = 28; - fmtdata.ProcData.Psi.Fields[2].height = 12; - - fmtdata.ProcData.Psi.Fields[3].name = "MNGOSEVOL"; - fmtdata.ProcData.Psi.Fields[3].type = "TEXT"; - fmtdata.ProcData.Psi.Fields[3].text = ""; - fmtdata.ProcData.Psi.Fields[3].Length = 4; - fmtdata.ProcData.Psi.Fields[3].x = 160; - fmtdata.ProcData.Psi.Fields[3].y = 80; - fmtdata.ProcData.Psi.Fields[3].width = 28; - fmtdata.ProcData.Psi.Fields[3].height = 12; - - fmtdata.ProcData.Psi.Fields[4].name = "PROGNUMBER"; - fmtdata.ProcData.Psi.Fields[4].type = "TEXT"; - fmtdata.ProcData.Psi.Fields[4].text = ""; - fmtdata.ProcData.Psi.Fields[4].Length = 4; - fmtdata.ProcData.Psi.Fields[4].x = 76; - fmtdata.ProcData.Psi.Fields[4].y = 96; - fmtdata.ProcData.Psi.Fields[4].width = 28; - fmtdata.ProcData.Psi.Fields[4].height = 12; - } - private void AddWCN2Fmt(ref FormatData fmtdata) - { - // the WCN2 tab for continuous HLS type had only 1 space after the period ('.'). The other - // tabs had two spaces. This tab type also uses the C0 macro to draw the lines above/below - // the number. Because it only had 1 space, the tab and lines were not matching the - // 16bit output. A space is added here to make the continuous HLS type match the number - // of spaces as other HLS tabs, and to make the printed output match that of 16bit. - fmtdata.StepData[9].TabData.Ident = fmtdata.StepData[9].TabData.Ident + " "; - fmtdata.StepData[9].TabData.IdentEdit = fmtdata.StepData[9].TabData.IdentEdit + " "; - fmtdata.StepData[9].TabData.RNOIdent = fmtdata.StepData[9].TabData.RNOIdent + " "; - fmtdata.StepData[9].TabData.RNOIdentEdit = fmtdata.StepData[9].TabData.RNOIdentEdit + " "; - fmtdata.ROData.UpRoAftrDash = "False"; - fmtdata.ROData.UpRoImmAftrDashSpace = "True"; - } - private void AddWCNCKLFmt(ref FormatData fmtdata) - { - fmtdata.BoxData[3].End = 518; - fmtdata.BoxData[4].End = 518; - fmtdata.StepData[30].StepLayoutData.AlignWithParentTab = "True"; - fmtdata.StepData[2].StepPrintData.Justify = "Center"; - fmtdata.StepData[9].StepPrintData.Justify = "Center"; - fmtdata.StepData[2].StepPrintData.HLSLength = "66"; - fmtdata.StepData[9].StepPrintData.HLSLength = "66"; - fmtdata.ROData.UpRoAftrDash = "False"; - fmtdata.ROData.UpRoImmAftrDashSpace = "True"; - } - private void AddWCNBCKFmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "485,216,144"; - fmtdata.StepData[20].ColOverride = "86.4"; - fmtdata.StepData[20].PageBreakOnStep = "False"; - fmtdata.ROData.UpRoAftrDash = "False"; - fmtdata.ROData.UpRoImmAftrDashSpace = "True"; - fmtdata.StepData[2].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[3].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[6].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[7].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[9].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[18].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[22].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[23].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - fmtdata.StepData[26].TabData.RNOIdent = @"\ul WOG ERG STEP:\ulnone "; - } - private void AddWCNOFBFmt(ref FormatData fmtdata) - { - fmtdata.SectData.StepSectionData.StpSectLayData.WidSTablePrint = "495,216,144"; - fmtdata.StepData[20].PageBreakOnStep = "False"; - fmtdata.StepData[43].ColOverride = "86.4"; - fmtdata.ROData.UpRoAftrDash = "False"; - fmtdata.ROData.UpRoImmAftrDashSpace = "True"; - - // tabbing for hls types: - fmtdata.StepData[2].TabData.IdentEdit = @"STEP: {Section Prefix}{numeric}"; - fmtdata.StepData[2].TabData.Ident = @"STEP: {Section Prefix}{numeric} "; - fmtdata.StepData[2].TabData.IdentAltPrint = @"STEP: {Section Prefix}{numeric}\STEP: {Section Prefix}{numeric}"; - fmtdata.StepData[2].TabData.RNOIdentEdit = "STEP {Section Prefix}: "; - fmtdata.StepData[2].TabData.RNOIdent = "STEP: {Section Prefix} "; - fmtdata.StepData[2].TabData.IdentWid = "100"; - fmtdata.StepData[3].TabData.IdentEdit = @"STEP: {Section Prefix}{numeric}"; - fmtdata.StepData[3].TabData.Ident = @"STEP: {Section Prefix}{numeric} "; - fmtdata.StepData[3].TabData.IdentAltPrint = @"STEP: {Section Prefix}{numeric}\STEP: {Section Prefix}{numeric}"; - fmtdata.StepData[3].TabData.RNOIdentEdit = "STEP {Section Prefix}: "; - fmtdata.StepData[3].TabData.RNOIdent = "STEP: {Section Prefix} "; - fmtdata.StepData[3].TabData.IdentWid = "100"; - fmtdata.StepData[9].TabData.IdentEdit = @"STEP: {Section Prefix}{numeric}"; - fmtdata.StepData[9].TabData.Ident = @"STEP: {Section Prefix}{numeric} "; - fmtdata.StepData[9].TabData.IdentAltPrint = @"STEP: {Section Prefix}{numeric}\STEP: {Section Prefix}{numeric}"; - fmtdata.StepData[9].TabData.RNOIdentEdit = "STEP {Section Prefix}: "; - fmtdata.StepData[9].TabData.RNOIdent = "STEP: {Section Prefix} "; - fmtdata.StepData[9].TabData.IdentWid = "100"; - fmtdata.StepData[18].TabData.IdentEdit = @"STEP: {Section Prefix}{numeric}"; - fmtdata.StepData[18].TabData.Ident = @"STEP: {Section Prefix}{numeric} "; - fmtdata.StepData[18].TabData.IdentAltPrint = @"STEP: {Section Prefix}{numeric}\STEP: {Section Prefix}{numeric}"; - fmtdata.StepData[18].TabData.RNOIdentEdit = "STEP {Section Prefix}: "; - fmtdata.StepData[18].TabData.RNOIdent = "STEP: {Section Prefix} "; - fmtdata.StepData[18].TabData.IdentWid = "100"; - - // tabbing for cautions/notes - // cautions: - fmtdata.StepData[6].TabData.Ident = @"STEP: {Section Prefix}{LNK Step Num}-CAUTION {LNK C/N Num} "; - fmtdata.StepData[6].TabData.IdentAltPrint = @"STEP: {Section Prefix}{LNK Step Num}-CAUTION {LNK C/N Num} /STEP: {Section Prefix}{LNK Step Num}-CAUTION {LNK C/N Num} "; - fmtdata.StepData[6].TabData.RNOIdent = @"STEP: {Section Prefix}{LNK Step Num}-CAUTION {LNK C/N Num} "; - // notes: - fmtdata.StepData[7].TabData.Ident = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - fmtdata.StepData[7].TabData.IdentAltPrint = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} \STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - fmtdata.StepData[7].TabData.RNOIdent = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - fmtdata.StepData[22].TabData.Ident = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - fmtdata.StepData[22].TabData.IdentAltPrint = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} \STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - fmtdata.StepData[22].TabData.RNOIdent = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - fmtdata.StepData[23].TabData.Ident = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - fmtdata.StepData[23].TabData.IdentAltPrint = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} \STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - fmtdata.StepData[23].TabData.RNOIdent = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - fmtdata.StepData[26].TabData.Ident = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - fmtdata.StepData[26].TabData.IdentAltPrint = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} \STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - fmtdata.StepData[26].TabData.RNOIdent = @"STEP: {Section Prefix}{LNK Step Num}-NOTE {LNK C/N Num} "; - } - - } - public partial class FmtToXml - { - private void AddWCN1Page(ref PageStyles pgstyles) - { - // Attachments - pgstyles.PgStyles[1].Items[8].Row = 88; - pgstyles.PgStyles[1].Items[9].Row = 100; - - // Attachments (Norton Editor) - pgstyles.PgStyles[4].Name = "Attachments (MSWord Section)"; - pgstyles.PgStyles[4].Items[8].Row = 83; - pgstyles.PgStyles[4].Items[9].Row = 94; - pgstyles.PgStyles[4].Items[10].Row = 112; - - // Figures - pgstyles.PgStyles[5].Items[9].Row = 101; - - // Landscape Attachments (Norton Editor) - pgstyles.PgStyles[6].Name = "Landscape Attachments (MSWord Section)"; - pgstyles.PgStyles[6].Items[8].Row = 83; - pgstyles.PgStyles[6].Items[9].Row = 94; - pgstyles.PgStyles[6].Items[10].Row = 112; - } - - private void AddWCNBCKPage(ref PageStyles pgstyles) - { - pgstyles.PgStyles[0].Items[9].Col = 518; - } - - private void AddWCNBCKDoc(ref DocStyles dcstyles) - { - dcstyles.DcStyles[0].ContTop = ""; - dcstyles.DcStyles[0].ContTopHLS = 0; - dcstyles.DcStyles[2].PageWidth = 592; - dcstyles.DcStyles[3].PageWidth = 592; - dcstyles.DcStyles[4].PageWidth = 592; - } - private void AddWCN2Doc(ref DocStyles dcstyles) - { - dcstyles.DcStyles[1].PageLength = 660; - } - - public void AddWCN1Doc(ref DocStyles dcstyles) - { - // Procedure Steps - dcstyles.DcStyles[0].FooterLen = 0; // was set to 12 - // Attachments - dcstyles.DcStyles[1].PageLength = 606; - // remove the 'DontCountInTabOfCont' flag on the cover page so that page counts in the - // auto table of contents will be correct. - dcstyles.DcStyles[3].DocStructStyle.DocStyle = dcstyles.DcStyles[3].DocStructStyle.DocStyle.Replace(", DontCountInTabOfCont", ""); - // Records - dcstyles.DcStyles[7].FooterLen = 0; - dcstyles.DcStyles[7].PageLength = 672; // same length as Procedure Steps section to fix End message placement - } - - } - public partial class RtfToSvg - { - private void AddWCN2(XmlDocument myDoc) - { - XmlDocument xd = new XmlDocument(); - // include the svg level so that the xmlns can be set to be the same as the generated document. - xd.LoadXml("" + - "\r\n" + - "\r\n" + - "\r\n" + - "\r\n" + - "\r\n" + - "\r\n" + - ""); - myDoc.DocumentElement.AppendChild(myDoc.ImportNode(xd.DocumentElement.ChildNodes[0], true)); - } - } -} diff --git a/PROMS/fmtxml/PrettyPrint/PrettyPrint.csproj b/PROMS/fmtxml/PrettyPrint/PrettyPrint.csproj deleted file mode 100644 index eae920b4..00000000 --- a/PROMS/fmtxml/PrettyPrint/PrettyPrint.csproj +++ /dev/null @@ -1,78 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {830C64FF-60EF-4771-8073-D25BF2F2E3AE} - WinExe - Properties - PrettyPrint - PrettyPrint - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmPrettyPrint.cs - - - - - Designer - frmPrettyPrint.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - \ No newline at end of file diff --git a/PROMS/fmtxml/PrettyPrint/Program.cs b/PROMS/fmtxml/PrettyPrint/Program.cs deleted file mode 100644 index 378889e5..00000000 --- a/PROMS/fmtxml/PrettyPrint/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace PrettyPrint -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmPrettyPrint()); - } - } -} \ No newline at end of file diff --git a/PROMS/fmtxml/PrettyPrint/Properties/AssemblyInfo.cs b/PROMS/fmtxml/PrettyPrint/Properties/AssemblyInfo.cs deleted file mode 100644 index 995fe28d..00000000 --- a/PROMS/fmtxml/PrettyPrint/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("PrettyPrint")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("PrettyPrint")] -[assembly: AssemblyCopyright("Copyright © 2011")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("fa8c01a2-0c39-405f-b733-1b38af0c590c")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/fmtxml/PrettyPrint/Properties/Resources.Designer.cs b/PROMS/fmtxml/PrettyPrint/Properties/Resources.Designer.cs deleted file mode 100644 index ba5c7d51..00000000 --- a/PROMS/fmtxml/PrettyPrint/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4216 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PrettyPrint.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PrettyPrint.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/fmtxml/PrettyPrint/Properties/Resources.resx b/PROMS/fmtxml/PrettyPrint/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/fmtxml/PrettyPrint/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/fmtxml/PrettyPrint/Properties/Settings.Designer.cs b/PROMS/fmtxml/PrettyPrint/Properties/Settings.Designer.cs deleted file mode 100644 index ad9acb16..00000000 --- a/PROMS/fmtxml/PrettyPrint/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4216 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace PrettyPrint.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/fmtxml/PrettyPrint/Properties/Settings.settings b/PROMS/fmtxml/PrettyPrint/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/fmtxml/PrettyPrint/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/fmtxml/PrettyPrint/frmPrettyPrint.Designer.cs b/PROMS/fmtxml/PrettyPrint/frmPrettyPrint.Designer.cs deleted file mode 100644 index d58de117..00000000 --- a/PROMS/fmtxml/PrettyPrint/frmPrettyPrint.Designer.cs +++ /dev/null @@ -1,208 +0,0 @@ -namespace PrettyPrint -{ - partial class frmPrettyPrint - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.tbInputFileName = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.tspbStatus = new System.Windows.Forms.ToolStripProgressBar(); - this.btnBrowse = new System.Windows.Forms.Button(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.sfd = new System.Windows.Forms.SaveFileDialog(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.btnPretty = new System.Windows.Forms.Button(); - this.label2 = new System.Windows.Forms.Label(); - this.tbOutputFileName = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.tbFolder = new System.Windows.Forms.TextBox(); - this.btnFolderBrowse = new System.Windows.Forms.Button(); - this.btnFolderPretty = new System.Windows.Forms.Button(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // tbInputFileName - // - this.tbInputFileName.Location = new System.Drawing.Point(76, 29); - this.tbInputFileName.Name = "tbInputFileName"; - this.tbInputFileName.Size = new System.Drawing.Size(434, 20); - this.tbInputFileName.TabIndex = 0; - this.tbInputFileName.Text = "C:\\Development\\fmtall\\AEP_00all.xml"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 31); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(50, 13); - this.label1.TabIndex = 1; - this.label1.Text = "Input File"; - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tspbStatus, - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 282); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(657, 22); - this.statusStrip1.TabIndex = 2; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // tspbStatus - // - this.tspbStatus.Name = "tspbStatus"; - this.tspbStatus.Size = new System.Drawing.Size(100, 16); - this.tspbStatus.Visible = false; - // - // btnBrowse - // - this.btnBrowse.Location = new System.Drawing.Point(516, 27); - this.btnBrowse.Name = "btnBrowse"; - this.btnBrowse.Size = new System.Drawing.Size(59, 23); - this.btnBrowse.TabIndex = 3; - this.btnBrowse.Text = "Browse..."; - this.btnBrowse.UseVisualStyleBackColor = true; - // - // btnPretty - // - this.btnPretty.Location = new System.Drawing.Point(516, 53); - this.btnPretty.Name = "btnPretty"; - this.btnPretty.Size = new System.Drawing.Size(59, 23); - this.btnPretty.TabIndex = 4; - this.btnPretty.Text = "Pretty"; - this.btnPretty.UseVisualStyleBackColor = true; - this.btnPretty.Click += new System.EventHandler(this.btnPretty_Click); - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 57); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(58, 13); - this.label2.TabIndex = 6; - this.label2.Text = "Output File"; - // - // tbOutputFileName - // - this.tbOutputFileName.Location = new System.Drawing.Point(76, 55); - this.tbOutputFileName.Name = "tbOutputFileName"; - this.tbOutputFileName.Size = new System.Drawing.Size(434, 20); - this.tbOutputFileName.TabIndex = 5; - this.tbOutputFileName.Text = "C:\\Development\\fmtall\\AEP_00all_out.xml"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(12, 169); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(36, 13); - this.label3.TabIndex = 8; - this.label3.Text = "Folder"; - // - // tbFolder - // - this.tbFolder.Location = new System.Drawing.Point(76, 167); - this.tbFolder.Name = "tbFolder"; - this.tbFolder.Size = new System.Drawing.Size(434, 20); - this.tbFolder.TabIndex = 7; - this.tbFolder.Text = "C:\\Development\\fmtall"; - // - // btnFolderBrowse - // - this.btnFolderBrowse.Location = new System.Drawing.Point(516, 165); - this.btnFolderBrowse.Name = "btnFolderBrowse"; - this.btnFolderBrowse.Size = new System.Drawing.Size(59, 23); - this.btnFolderBrowse.TabIndex = 9; - this.btnFolderBrowse.Text = "Browse..."; - this.btnFolderBrowse.UseVisualStyleBackColor = true; - this.btnFolderBrowse.Click += new System.EventHandler(this.btnFolderBrowse_Click); - // - // btnFolderPretty - // - this.btnFolderPretty.Location = new System.Drawing.Point(581, 164); - this.btnFolderPretty.Name = "btnFolderPretty"; - this.btnFolderPretty.Size = new System.Drawing.Size(59, 23); - this.btnFolderPretty.TabIndex = 10; - this.btnFolderPretty.Text = "Pretty"; - this.btnFolderPretty.UseVisualStyleBackColor = true; - this.btnFolderPretty.Click += new System.EventHandler(this.btnFolderPretty_Click); - // - // frmPrettyPrint - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(657, 304); - this.Controls.Add(this.btnFolderPretty); - this.Controls.Add(this.btnFolderBrowse); - this.Controls.Add(this.label3); - this.Controls.Add(this.tbFolder); - this.Controls.Add(this.label2); - this.Controls.Add(this.tbOutputFileName); - this.Controls.Add(this.btnPretty); - this.Controls.Add(this.btnBrowse); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.label1); - this.Controls.Add(this.tbInputFileName); - this.Name = "frmPrettyPrint"; - this.Text = "PrettyPrint"; - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.TextBox tbInputFileName; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.ToolStripProgressBar tspbStatus; - private System.Windows.Forms.Button btnBrowse; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.SaveFileDialog sfd; - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.Button btnPretty; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox tbOutputFileName; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.TextBox tbFolder; - private System.Windows.Forms.Button btnFolderBrowse; - private System.Windows.Forms.Button btnFolderPretty; - } -} - diff --git a/PROMS/fmtxml/PrettyPrint/frmPrettyPrint.cs b/PROMS/fmtxml/PrettyPrint/frmPrettyPrint.cs deleted file mode 100644 index b1d91424..00000000 --- a/PROMS/fmtxml/PrettyPrint/frmPrettyPrint.cs +++ /dev/null @@ -1,96 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.Xml; -using System.IO; - -namespace PrettyPrint -{ - public partial class frmPrettyPrint : Form - { - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - public frmPrettyPrint() - { - InitializeComponent(); - } - private void btnPretty_Click(object sender, EventArgs e) - { - FileInfo fi = new FileInfo(tbOutputFileName.Text); - using(FileStream fs = fi.Create()) - { - using (StreamWriter sw = new StreamWriter(fs)) - { - XmlDocument doc = new XmlDocument(); - //get your document - doc.Load(tbInputFileName.Text); - //create reader and writer - XmlNodeReader xmlReader = new XmlNodeReader(doc); - XmlTextWriter xmlWriter = new XmlTextWriter(sw); - //set formatting options - xmlWriter.Formatting = Formatting.Indented; - xmlWriter.Indentation = 1; - xmlWriter.IndentChar = '\t'; - //write the document formatted - xmlWriter.WriteNode(xmlReader, true); - xmlWriter.Close(); - xmlReader.Close(); - sw.Close(); - } - fs.Close(); - } - } - private void btnFolderBrowse_Click(object sender, EventArgs e) - { - fbd.SelectedPath = tbFolder.Text; - if (fbd.ShowDialog() == DialogResult.OK) - tbFolder.Text = fbd.SelectedPath; - } - private void btnFolderPretty_Click(object sender, EventArgs e) - { - DirectoryInfo di = new DirectoryInfo(tbFolder.Text); - FileInfo [] files = di.GetFiles("*.xml"); - tspbStatus.Maximum = files.Length; - tspbStatus.Visible = true; - tspbStatus.Value = 0; - foreach(FileInfo fi in files) - { - tspbStatus.Value ++; - MyStatus = string.Format("Processing {0}", fi.Name); - FixXML(fi); - } - tspbStatus.Visible = false; - MyStatus = "Ready"; - } - private void FixXML(FileInfo fi) - { - DateTime lastModified = fi.LastWriteTime; - XmlDocument doc = new XmlDocument(); - //get your document - doc.Load(fi.FullName); - using (FileStream fs = fi.Create()) - { - //create reader and writer - XmlNodeReader xmlReader = new XmlNodeReader(doc); - XmlTextWriter xmlWriter = new XmlTextWriter(fs, Encoding.Unicode); - //set formatting options - xmlWriter.Formatting = Formatting.Indented; - xmlWriter.Indentation = 1; - xmlWriter.IndentChar = '\t'; - //write the document formatted - xmlWriter.WriteNode(xmlReader, true); - xmlWriter.Close(); - xmlReader.Close(); - fs.Close(); - } - fi.LastWriteTime = lastModified; - } - } -} \ No newline at end of file diff --git a/PROMS/fmtxml/PrettyPrint/frmPrettyPrint.resx b/PROMS/fmtxml/PrettyPrint/frmPrettyPrint.resx deleted file mode 100644 index 213b7d22..00000000 --- a/PROMS/fmtxml/PrettyPrint/frmPrettyPrint.resx +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 133, 17 - - - 273, 17 - - - 409, 17 - - \ No newline at end of file diff --git a/PROMS/fmtxml/RtfToSvg.cs b/PROMS/fmtxml/RtfToSvg.cs deleted file mode 100644 index 17a19b52..00000000 --- a/PROMS/fmtxml/RtfToSvg.cs +++ /dev/null @@ -1,387 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Text.RegularExpressions; -using System.Drawing; -using System.Xml; - -namespace fmtxml -{ - public partial class RtfToSvg - { - public RtfToSvg(string rtfFileName) - { - RtfFileName = rtfFileName; - _FormatFolder = RtfFile.Directory; - } - private static DirectoryInfo _FormatFolder; - public RtfToSvg(FileInfo rtfFile) - { - RtfFile = rtfFile; - _FormatFolder = RtfFile.Directory; - } - private bool? _IsGenMac; - public bool IsGenMac - { - get - { - if (_IsGenMac == null) - Convert(); - return (bool)_IsGenMac; - } - set { _IsGenMac = value; } - } - private string _RtfFileName; - public string RtfFileName - { - get { return _RtfFileName; } - set - { - _RtfFileName = value; - _RtfFile = new FileInfo(_RtfFileName); - } - } - private FileInfo _RtfFile; - public FileInfo RtfFile - { - get { return _RtfFile; } - set - { - _RtfFile = value; - _RtfFileName = _RtfFile.FullName; - } - } - private string _Svg; - public string Svg - { - get - { - if (_Svg == null) - Convert(); - return _Svg; - } - } - private string Convert() - { - string buff = LoadFile(RtfFile);// Load Text - _Svg = CreateSvg(RtfFile, buff);// Convert to SVG - return _Svg; - } - /// - /// Load the file into a string by bytes - /// - /// - /// - private static string LoadFile(FileInfo file) - { - byte[] bytes = new byte[file.Length]; - using (FileStream fs = file.OpenRead()) - { - fs.Read(bytes, 0, (int)file.Length); - fs.Close(); - } - StringBuilder sb = new StringBuilder(); - foreach (byte byt in bytes) - sb.Append((char)byt); - return sb.ToString(); - } - private const string _TripleBang = "\xAD\xAD\xAD\xA8\xA8"; - Regex regLines = new Regex(@"([^\r\n]*)?\r?\n", RegexOptions.Singleline); - - // If processing any of the RGE (except RGEDEV) C0 macros, adjust the x location of the ellipse, so that - // 32bit printing matches 16bit. This flag shows that we're in a format that needs this adjustment. - private static bool _InRge = false; - private static bool _DoingRgeC0 = false; - private string CreateSvg(FileInfo file, string buff) - { - IsGenMac = (buff.Substring(0, 5) == _TripleBang); - if(!IsGenMac) - return null; - _InRge = (file.Name.ToUpper().Contains("RGE") && !file.Name.ToUpper().Contains("RGEDEV")); - StringBuilder sb = new StringBuilder(); - MatchCollection lines = regLines.Matches(buff); - bool svg = false; - bool group = false; - bool hasC0 = false; - foreach (Match line in lines) - { - string text = line.Groups[1].Value; - if (text == _TripleBang) - if (!svg) - svg = AddSvgPrefix(file, sb, svg); - else - AddSvgSuffix(sb, hasC0); - else if (text.StartsWith("\xAD\xAD")) - { - hasC0 |= AddGroupStart(sb, ref group, text).ToLower() == "c0"; - _DoingRgeC0 = (hasC0 && _InRge); - } - else if (text == "END") - { - group = AddGroupEnd(sb, group); - _DoingRgeC0 = false; - } - else if (text != "") - ProcessCommand(sb, text, file); - } - return sb.ToString(); - } - private static void AddSvgSuffix(StringBuilder sb, bool hasC0) - { - if (!hasC0) - { - AddC0(sb); - } - sb.Append(string.Format("\r\n")); - } - private static bool AddGroupEnd(StringBuilder sb, bool group) - { - if (group) sb.Append(" \r\n"); - group = false; - _Xoff = 0; - _Yoff = 0; - return group; - } - private static string AddGroupStart(StringBuilder sb, ref bool group, string text) - { - AddGroupEnd(sb, group); - group = true; - string grpID = text.Substring(2).ToUpper(); - sb.Append(string.Format(" \r\n", grpID)); - return grpID; - } - private static void AddC0(StringBuilder sb) - { - // note that cx = 1 has been tested with NSP. - sb.Append(" \r\n"); - sb.Append(" \r\n"); - sb.Append(" \r\n"); - } - private static bool AddSvgPrefix(FileInfo file, StringBuilder sb, bool svg) - { - sb.Append("\r\n"); - sb.Append("\r\n"); - sb.Append("\r\n"); - sb.Append(string.Format(" {0}\r\n", file.Name.ToLower().Replace(".rtf", ""))); - svg = true; - return svg; - } - private static Regex regCommand = new Regex(@"^[A-Z][^ \r\n]*", RegexOptions.Multiline); - private static void ProcessCommand(StringBuilder sb, string text, FileInfo file) - { - Match commandMatch = regCommand.Match(text); - ECommand command = (ECommand)Enum.Parse(typeof(ECommand), commandMatch.Value); - Converters[(int)command](sb, text); - } - private enum ECommand : int - { - LINE, - BOX, - ELLIPSE, - TEXT, - BITMAP, - GDIADJ, - RTFADJ, - ABSOLUTE - } - private delegate void Converter(StringBuilder sb, string text); - private static Converter[] _Converters; - private static Converter[] Converters - { - get - { - if (_Converters == null) - SetupConverters(); - return RtfToSvg._Converters; - } - set { _Converters = value; } - } - private static void SetupConverters() - { - Converters = new Converter[Enum.GetNames(typeof(ECommand)).Length]; - Converters[(int)ECommand.LINE] = new Converter(AddLine); - Converters[(int)ECommand.BOX] = new Converter(AddRect); - Converters[(int)ECommand.ELLIPSE] = new Converter(AddEllipse); - Converters[(int)ECommand.TEXT] = new Converter(AddText); - Converters[(int)ECommand.BITMAP] = new Converter(AddImage); - Converters[(int)ECommand.GDIADJ] = new Converter(AddGdiAdj); - Converters[(int)ECommand.RTFADJ] = new Converter(AddRtfAdj); - Converters[(int)ECommand.ABSOLUTE] = new Converter(AddAbsolute); - } - private static Regex regGdiAdj = new Regex(@"GDIADJ ([-0-9]*) ([-0-9]*)$", RegexOptions.Multiline); - private static void AddGdiAdj(StringBuilder sb, string text) - { - Match gdiadjMatch = regGdiAdj.Match(text); - _Xoff = int.Parse(gdiadjMatch.Groups[1].Value); - _Yoff = int.Parse(gdiadjMatch.Groups[2].Value); - } - private static void AddAbsolute(StringBuilder sb, string text) - { - sb.Append(" ABSOLUTE"); - } - private static void AddRtfAdj(StringBuilder sb, string text) - { - // Not needed - } - private static Regex regBitmap = new Regex(@"BITMAP ([-0-9]*) ([-0-9]*) (.*)$", RegexOptions.Multiline); - private static void AddImage(StringBuilder sb, string text) - { - Match bitmapMatch = regBitmap.Match(text); - //string bmFileName = FixXmlText(bitmapMatch.Groups[3].Value); - string bmFileName = FixFileName(bitmapMatch.Groups[3].Value); - Bitmap bmp = new Bitmap(bmFileName); - string bmWidth = bmp.Width.ToString() + "px"; - string bmHeight = bmp.Height.ToString() + "px"; - //Console.WriteLine("'{0}'", bmFileName); - sb.Append(string.Format(" \r\n", - TwipsToPointsX(bitmapMatch.Groups[1].Value), - TwipsToPointsY(bitmapMatch.Groups[2].Value), - bmWidth, - bmHeight, - bmFileName)); - } - private static Regex regText = new Regex(@"TEXT ([-0-9]*) ([-0-9]*) ([-0-9]*) ([-0-9]*) ([-0-9]*) ""([^""]*)""", RegexOptions.Multiline); - private static void AddText(StringBuilder sb, string text) - { - Match textMatch = regText.Match(text); - - sb.Append(string.Format(" {5}\r\n", - TwipsToPointsX(textMatch.Groups[1].Value), - TwipsToPointsY(textMatch.Groups[2].Value), - FontSizeToPoints(textMatch.Groups[3].Value), - FontToFamily(textMatch.Groups[4].Value), - FontStyle(textMatch.Groups[5].Value), - FixXmlText(textMatch.Groups[6].Value))); - } - private static Regex regEllipse = new Regex(@"ELLIPSE ([-0-9]*) ([-0-9]*) ([-0-9]*) ([-0-9]*) ([-0-9]*)", RegexOptions.Multiline); - private static void AddEllipse(StringBuilder sb, string text) - { - Match ellipseMatch = regEllipse.Match(text); - // code in the new veproms that draws the ellipse must use the 'y' location differently. So - // add in the radius to the 'y' to get the correct value. - float yadj = TwipsToPointsEllipse(ellipseMatch.Groups[4].Value); - sb.Append(string.Format(" \r\n", - _DoingRgeC0?6.5:TwipsToPointsX(ellipseMatch.Groups[1].Value), - yadj + TwipsToPointsY(ellipseMatch.Groups[2].Value), - TwipsToPointsEllipse(ellipseMatch.Groups[3].Value), - TwipsToPointsEllipse(ellipseMatch.Groups[4].Value), - TwipsToPoints(ellipseMatch.Groups[5].Value))); - } - private static Regex regBox = new Regex(@"BOX ([-0-9]*) ([-0-9]*) ([-0-9]*) ([-0-9]*) ([-0-9]*)", RegexOptions.Multiline); - private static void AddRect(StringBuilder sb, string text) - { - Match boxMatch = regBox.Match(text); - sb.Append(string.Format(" \r\n", - TwipsToPointsX(boxMatch.Groups[1].Value), - TwipsToPointsY(boxMatch.Groups[2].Value), - TwipsToPoints(boxMatch.Groups[3].Value), - TwipsToPoints(boxMatch.Groups[4].Value), - TwipsToPoints(boxMatch.Groups[5].Value))); - } - private static int _Xoff = 0; - private static int _Yoff = 0; - private static Regex regLine = new Regex(@"LINE ([-0-9]*) ([-0-9]*) ([-0-9]*) ([-0-9]*) ([-0-9]*)", RegexOptions.Multiline); - private static void AddLine(StringBuilder sb, string text) - { - Match lineMatch = regLine.Match(text); - sb.Append(string.Format(" \r\n", - TwipsToPointsX(lineMatch.Groups[1].Value), - TwipsToPointsY(lineMatch.Groups[2].Value), - TwipsToPoints(lineMatch.Groups[3].Value) + TwipsToPointsX(lineMatch.Groups[1].Value), - TwipsToPoints(lineMatch.Groups[4].Value) + TwipsToPointsY(lineMatch.Groups[2].Value), - TwipsToPoints(lineMatch.Groups[5].Value))); - } - private static string FontStyle(string style) - { - StringBuilder sb = new StringBuilder(); - int iStyle = int.Parse(style); - if ((iStyle & 1) == 1) - sb.Append("font-weight=\"bold\" "); - if ((iStyle & 2) == 2) - sb.Append("text-decoration=\"underline\" "); - if ((iStyle & 4) == 4) - sb.Append("font-style=\"italic\" "); - return sb.ToString(); - } - private static string FixFileName(string fileName) - { - return Regex.Replace(fileName, @"^.*FORMAT\\", _FormatFolder.FullName + @"\"); - } - private static string FixXmlText(string str) - { - str = str.Replace("&", "&"); - str = str.Replace("'", "'"); - str = str.Replace("\"", """); - str = str.Replace("<", "<"); - str = str.Replace(">", ">"); - str = str.Replace("\x0B", " "); - str = str.Replace(" ", "{sp}"); - str = str.Replace("\xAE",@"\u8594?"); // Turkey Point uses a Right Arrow from VESYMB - return str; - } - private static string[] FontChoice = - { - "Times New Roman", - "VESymb XXXXXX", - "VolianDraw XXXXXX", - "Prestige Elite Tall", - "Courier New", - "Arial", - "Letter Gothic", - "Times New Roman", - "Letter Gothic Tall", - "Letter Gothic Tall", - "Gothic Ultra", - "VolianScript" - }; - private static float TwipsToPoints(string twips) - { - return float.Parse(twips) / 20; - } - private static float TwipsToPointsEllipse(string twips) - { - // divide the ellipse by 40. This is the 20 to convert from twips to points - // and an addition divide by 2 since the definition in 16bit is diameter & - // in 32 is radius. - return float.Parse(twips) / 40; - } - private static float TwipsToPointsX(string twips) - { - return (_Xoff + float.Parse(twips)) / 20; - } - private static float TwipsToPointsY(string twips) - { - return (_Yoff + float.Parse(twips)) / 20; - } - private static float FontSizeToPoints(string fontSize) - { - return float.Parse(fontSize) / 2; - } - private static string FontToFamily(string fontID) - { - if (int.Parse(fontID) >= FontChoice.Length) - return "Font-" + fontID; - return FontChoice[int.Parse(fontID)]; - } - public void Save(string svgFileName) - { - FileInfo outFile = new FileInfo(svgFileName); - if (outFile.Exists) outFile.Delete(); - XmlDocument xDoc = new XmlDocument(); - try - { - //if (svgFileName.Contains("nsppe")) - // Console.WriteLine("stop"); - xDoc.LoadXml(Svg); - AppendPlantSpecific(svgFileName, xDoc); - xDoc.Save(outFile.FullName); - } - catch (Exception ex) - { - Console.WriteLine("Error generating {0}", svgFileName); - Console.WriteLine("ex = {0}", ex); - } - } - } -} diff --git a/PROMS/fmtxml/Settings.Designer.cs b/PROMS/fmtxml/Settings.Designer.cs deleted file mode 100644 index f10ca454..00000000 --- a/PROMS/fmtxml/Settings.Designer.cs +++ /dev/null @@ -1,62 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.4016 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace fmtxml { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("c:\\development\\")] - public string ResultsFolder { - get { - return ((string)(this["ResultsFolder"])); - } - set { - this["ResultsFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("c:\\16bit\\ve-proms\\format")] - public string FormatFolder { - get { - return ((string)(this["FormatFolder"])); - } - set { - this["FormatFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("C:\\16bit\\promsnt\\genmac")] - public string GenmacFolder { - get { - return ((string)(this["GenmacFolder"])); - } - set { - this["GenmacFolder"] = value; - } - } - } -} diff --git a/PROMS/fmtxml/Settings.settings b/PROMS/fmtxml/Settings.settings deleted file mode 100644 index df88ab49..00000000 --- a/PROMS/fmtxml/Settings.settings +++ /dev/null @@ -1,15 +0,0 @@ - - - - - - c:\development\ - - - c:\16bit\ve-proms\format - - - C:\16bit\promsnt\genmac - - - \ No newline at end of file diff --git a/PROMS/fmtxml/StepTypeMenu.txt b/PROMS/fmtxml/StepTypeMenu.txt deleted file mode 100644 index 52049aa5..00000000 --- a/PROMS/fmtxml/StepTypeMenu.txt +++ /dev/null @@ -1,16 +0,0 @@ - - - - - - - - - - - - - - - - diff --git a/PROMS/fmtxml/StepTypeMenu.xlsx b/PROMS/fmtxml/StepTypeMenu.xlsx deleted file mode 100644 index 040fa79b..00000000 Binary files a/PROMS/fmtxml/StepTypeMenu.xlsx and /dev/null differ diff --git a/PROMS/fmtxml/SvgToPdf.cs b/PROMS/fmtxml/SvgToPdf.cs deleted file mode 100644 index e69dc592..00000000 --- a/PROMS/fmtxml/SvgToPdf.cs +++ /dev/null @@ -1,191 +0,0 @@ -using System; -using System.Text; -using System.Xml; -using System.Drawing; -using System.Windows.Forms; -//using C1.C1Pdf; - -namespace fmtxml -{ - /// - /// Summary description for XmlToPdf. - /// - public class SvgToPdf - { - private float ConvertToPoints=72f; - private XmlDocument xmlDoc; - private string FileName; - private string FilePath; - //private C1.C1Pdf.C1PdfDocument _c1pdf; - - private string [] FontChoice = - {"Times New Roman", - "VESymb XXXXXX", - "VolianDraw XXXXXX", - "Prestige Elite Tall", - "Courier New", - "Arial", - "Letter Gothic", - "Times New Roman", - "Letter Gothic Tall", - "Letter Gothic Tall", - "Gothic Ultra", - "VolianScript" - }; - private float LeftMargin; //todo: define in page info - private float VerticalOffset; //todo: define in page info - private bool Portrait; //todo: define in page info - - public SvgToPdf(string path, string fname) - { - LeftMargin=0.5f * ConvertToPoints; // KBR: TODO - VerticalOffset=0.5f * ConvertToPoints; // KBR: TODO - Portrait = true; // KBR: TODO - FileName = fname; - FilePath = path; - xmlDoc = new XmlDocument(); - XmlTextReader reader = new XmlTextReader(FilePath+"\\"+FileName); - xmlDoc.Load(reader); - reader.Close(); - try - { - GeneratePDFForFile(); - } - catch (Exception e) - { - MessageBox.Show("Error processing: " + fname, e.Message); - } - } - - private void GeneratePDFForFile() - { - //_c1pdf = new C1.C1Pdf.C1PdfDocument(); - //string rootname = FileName.Substring(0,FileName.Length-4); - //// create a pdf file with a page for each macro (i.e. macro element in xml tree), - //// put it into the pdf file. - //XmlNode topnode = xmlDoc.LastChild; - //XmlNodeList ndlist = topnode.SelectNodes("/g"); - //for (int i=0;i - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/fmtxml/TranslateFMT.XSL b/PROMS/fmtxml/TranslateFMT.XSL deleted file mode 100644 index 5a07e0a6..00000000 Binary files a/PROMS/fmtxml/TranslateFMT.XSL and /dev/null differ diff --git a/PROMS/fmtxml/TranslateFMT.XSL.bak b/PROMS/fmtxml/TranslateFMT.XSL.bak deleted file mode 100644 index fef5f557..00000000 Binary files a/PROMS/fmtxml/TranslateFMT.XSL.bak and /dev/null differ diff --git a/PROMS/fmtxml/TranslatePAG.XSL b/PROMS/fmtxml/TranslatePAG.XSL deleted file mode 100644 index f58c1397..00000000 --- a/PROMS/fmtxml/TranslatePAG.XSL +++ /dev/null @@ -1,62 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/PROMS/fmtxml/WST1all.xml b/PROMS/fmtxml/WST1all.xml deleted file mode 100644 index 58c16928..00000000 Binary files a/PROMS/fmtxml/WST1all.xml and /dev/null differ diff --git a/PROMS/fmtxml/WST2all.xml b/PROMS/fmtxml/WST2all.xml deleted file mode 100644 index d6e19b47..00000000 Binary files a/PROMS/fmtxml/WST2all.xml and /dev/null differ diff --git a/PROMS/fmtxml/WSTALRall.xml b/PROMS/fmtxml/WSTALRall.xml deleted file mode 100644 index 1d9c25e0..00000000 Binary files a/PROMS/fmtxml/WSTALRall.xml and /dev/null differ diff --git a/PROMS/fmtxml/WSTBCKall.xml b/PROMS/fmtxml/WSTBCKall.xml deleted file mode 100644 index 29553494..00000000 Binary files a/PROMS/fmtxml/WSTBCKall.xml and /dev/null differ diff --git a/PROMS/fmtxml/WSTCKLall.xml b/PROMS/fmtxml/WSTCKLall.xml deleted file mode 100644 index 986f5ad9..00000000 Binary files a/PROMS/fmtxml/WSTCKLall.xml and /dev/null differ diff --git a/PROMS/fmtxml/WSTDCSall.xml b/PROMS/fmtxml/WSTDCSall.xml deleted file mode 100644 index 4fd10321..00000000 Binary files a/PROMS/fmtxml/WSTDCSall.xml and /dev/null differ diff --git a/PROMS/fmtxml/Westinghouse backups/Original/WST1all.xml b/PROMS/fmtxml/Westinghouse backups/Original/WST1all.xml deleted file mode 100644 index f19bdbf2..00000000 Binary files a/PROMS/fmtxml/Westinghouse backups/Original/WST1all.xml and /dev/null differ diff --git a/PROMS/fmtxml/Westinghouse backups/Original/WST2all.xml b/PROMS/fmtxml/Westinghouse backups/Original/WST2all.xml deleted file mode 100644 index 62d2a0c3..00000000 Binary files a/PROMS/fmtxml/Westinghouse backups/Original/WST2all.xml and /dev/null differ diff --git a/PROMS/fmtxml/Westinghouse backups/Original/wst1.svg b/PROMS/fmtxml/Westinghouse backups/Original/wst1.svg deleted file mode 100644 index d64327c4..00000000 Binary files a/PROMS/fmtxml/Westinghouse backups/Original/wst1.svg and /dev/null differ diff --git a/PROMS/fmtxml/Westinghouse backups/Original/wst2.svg b/PROMS/fmtxml/Westinghouse backups/Original/wst2.svg deleted file mode 100644 index 8270be88..00000000 Binary files a/PROMS/fmtxml/Westinghouse backups/Original/wst2.svg and /dev/null differ diff --git a/PROMS/fmtxml/Westinghouse backups/WST2all.xml b/PROMS/fmtxml/Westinghouse backups/WST2all.xml deleted file mode 100644 index 8981fd48..00000000 Binary files a/PROMS/fmtxml/Westinghouse backups/WST2all.xml and /dev/null differ diff --git a/PROMS/fmtxml/Westinghouse backups/wst2.svg b/PROMS/fmtxml/Westinghouse backups/wst2.svg deleted file mode 100644 index 6c73f6cf..00000000 Binary files a/PROMS/fmtxml/Westinghouse backups/wst2.svg and /dev/null differ diff --git a/PROMS/fmtxml/XSL Transform/ARW05RT.ICO b/PROMS/fmtxml/XSL Transform/ARW05RT.ICO deleted file mode 100644 index 83d5485d..00000000 Binary files a/PROMS/fmtxml/XSL Transform/ARW05RT.ICO and /dev/null differ diff --git a/PROMS/fmtxml/XSL Transform/BASEf.xml b/PROMS/fmtxml/XSL Transform/BASEf.xml deleted file mode 100644 index 3ac11646..00000000 --- a/PROMS/fmtxml/XSL Transform/BASEf.xml +++ /dev/null @@ -1,1982 +0,0 @@ - - - Generic EOP Format - ApproveOne, AccPagination, LibMaint, STrees, DateChgSumRpt, SetpointUsage, Replace - - - Prestige Elite Tall - 10 - None - None - None - - - Insert - False - - - 0 - False - False - False - False - True - False - False - False - False - - - - - - - - - - - - - - - - - - - - - - 52 - 0 - Black - White - False - False - False - False - - - - - - - - - - - - - - Nothing - 0 - 0 - 0 - 0 - False - False - False - False - False - False - False - - - 0 - 0 - False - False - - - 0 - 0 - - - 1 - 0 - - - 2 - 0 - - - 3 - 0 - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - 0 - 0 - - - 1 - 0 - 0 - - - 2 - 0 - 0 - - - 3 - 0 - 0 - - - 4 - 0 - 0 - - - 5 - 0 - 0 - - - 6 - 0 - 0 - - - 7 - 0 - 0 - - - 8 - 0 - 0 - - - 9 - 0 - 0 - - - 10 - 0 - 0 - - - 11 - 0 - 0 - - - 12 - 0 - 0 - - - 13 - 0 - 0 - - - 14 - 0 - 0 - - - 15 - 0 - 0 - - - 16 - 0 - 0 - - - 17 - 0 - 0 - - - - - - 0 - Black - White - False - False - False - False - False - False - False - False - False - False - False - - 0 - PSCenter - - - 0 - PSCenter - - - 24 - 0 - 0 - 0 - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - False - False - False - False - False - False - False - False - False - False - False - False - False - True - False - False - False - - 0 - 1 - 18 - 30 - 0 - 480 - 2 - 0 - 0,1,2 - 0,240,138 - 444,198,120 - 444,198,120 - 18 - 0 - 38,38 - 0 - 0 - 0 - 0, 0, 0 - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - - 0 - 0 - - - 3 - - - - 6 - 270 - 0,0,0 - - - 0 - 0 - False - False - False - - Prestige Elite Tall - 10 - Bold - None - None - - - - - - - - - 0 - 0 - {numeric}. - - - 1 - 0 - {alpha}. - - - 2 - 0 - {numeric}) - - - 3 - 0 - {alpha}) - - - 4 - 0 - {numeric} - - - 5 - 0 - {numeric} - - - 6 - 0 - {numeric} - - - 7 - 0 - {numeric} - - - 8 - 0 - {numeric} - - - - - 0 - - 0 - 0 - 0 - 0 - 0 - 0 - - - - - 0 - 0 - 0 - 0 - 0 - 0 - - - 1 - 0 - 0 - 0 - 0 - 0 - - - 2 - 0 - 0 - 0 - 0 - 0 - - - 3 - 0 - 0 - 0 - 0 - 0 - - - 4 - 0 - 0 - 0 - 0 - 0 - - - 5 - 0 - 0 - 0 - 0 - 0 - - - 6 - 0 - 0 - 0 - 0 - 0 - - - 7 - 0 - 0 - 0 - 0 - 0 - - - 8 - 0 - 0 - 0 - 0 - 0 - - - 9 - 0 - 0 - 0 - 0 - 0 - - - - - High, RNO, Caution, Note, Table, Substep, Attach - IF - \ul IF\ul0 - - - High, RNO, Caution, Note, Table, Substep, Attach - NOT - \ul NOT\ul0 - - - High, RNO, Caution, Note, Table, Substep, Attach - THEN - \ul THEN\ul0 - - - High, RNO, Caution, Note, Table, Substep, Attach - WHEN - \ul WHEN\ul0 - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - High, RNO, Caution, Note, Table, Substep, Attach - - - - - - 0 - Base - - False - False - - Black - White - 0 - - - - - - - 1 - Substep - Base - 0 - False - False - False - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingRNO, AddingSub, AddingTable, AddingNext, AddingPrev - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - - - 2 - High - Base - 0 - False - False - False - False - False - False - False - False - False - False - False - False - False - - Courier New - 12 - Bold - None - None - - - lightgray - 12 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingCaution, AddingNote, AddingRNO, AddingSub, AddingTable, AddingNext, AddingPrev - - - 0 - - - {numeric} - {numeric} - {numeric} - {numeric} - 18 - 18 - 18 - 18 - None - None - - - - 3 - Immediate - High - False - - - - - [{numeric}] - [{numeric}] - [{numeric}] - [{numeric}] - - - - 4 - And - Base - 0 - False - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingRNO, AddingSub, AddingTable, AddingNext, AddingPrev - - - 0 - - - - - - - 12 - 12 - 12 - 12 - None - None - - - - 5 - Or - Base - 0 - - OR - - False - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingRNO, AddingSub, AddingTable, AddingNext, AddingPrev - - - 0 - - - - - - - 12 - 12 - 12 - 12 - None - None - - - - 6 - Caution - Base - 0 - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - - Prestige Elite Tall - 10 - Italics - None - None - - - brown - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingNote, AddingTable, AddingNext, AddingPrev - - - 0 - - - CAUTION - CAUTION - CAUTION - CAUTION - 54 - 54 - 54 - 54 - None - None - - Prestige Elite Tall - 10 - Italics - None - None - - - - - 7 - Note - Base - 0 - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - - Prestige Elite Tall - 10 - Italics - None - None - - - green - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingTable, AddingNext, AddingPrev - - - 0 - - - NOTE - NOTE - NOTE - NOTE - 54 - 54 - 54 - 54 - None - None - - Prestige Elite Tall - 10 - Italics - None - None - - - - - 8 - Table - Base - 0 - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - - - 9 - Continuous - High - False - - - - - *{numeric} - *{numeric} - *{numeric} - *{numeric} - - - - 10 - AERTable - Table - - - - - - - 11 - EquipmentList - Base - 0 - False - False - False - - magenta - 0 - 0 - 4 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingNext, AddingPrev - - - 0 - - - - - - - 12 - 12 - 12 - 12 - None - None - - - - 12 - Title - Base - 0 - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - - - 13 - PageNumber - Title - - - - - - - 14 - EquipmentWBlank - EquipmentList - - - - - - - - 15 - ProcNumber - Title - - - - - - - 16 - RevNumber - Title - - - - - - - 17 - AccPages - Base - 0 - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - - - 18 - LossOfAC - High - False - - - - - {Box Step}{numeric} - {Box Step}{numeric} - 12 - 12 - - - - 19 - ExplicitAnd - And - - AND - - - - - - - - 20 - Caution1 - Caution - False - False - - - - - - - 21 - Caution2 - Caution - False - False - - - - - - - 22 - Note1 - Note - False - - - - - - - 23 - Note2 - Note - - - - - - - 24 - Paragraph - Base - 0 - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingRNO, AddingSub, AddingTable, AddingNext, AddingPrev - - - 0 - - - - - - - 0 - 0 - 0 - 0 - None - None - - - - 25 - Default - Base - 0 - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - - - 26 - Note3 - Note - - - - - - - 27 - Caution3 - Caution - - - - - - - 28 - Note4 - Note - - cyan - - - - - 0 - 0 - 0 - 0 - - - - 29 - Caution4 - Caution - - cyan - - - - - 0 - 0 - 0 - 0 - - - - 30 - EquipmentOpt - EquipmentList - False - False - - - - - - - 31 - EquipmentOptWBlank - EquipmentWBlank - - - - - - - 32 - Note5 - Note - - cyan - - - - - 0 - 0 - 0 - 0 - - - - 33 - BorderlessAERTable - AERTable - False - - - - - - - 34 - BorderlessTable - Table - False - - - - - - - 35 - ImplicitOr - Or - - - - - - - 36 - Figure - Table - - Black - - - - - - - 37 - AERFigure - Figure - - - - - - - 38 - BorderlessFigure - Figure - False - - - - - - - 39 - BorderlessAERFigure - AERFigure - False - - - - - - - 40 - RNOType - Base - 0 - Lettered High Level Step - True - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - - - 41 - High5 - High - - - - - {ALPHA}. - {ALPHA}. - {ALPHA}. - {ALPHA}. - 24 - 30 - 24 - 30 - - - - 42 - TitleWithTextRight - Title - - - - - - - 43 - TitleWithTextBelow - Title - - - - - - - 44 - ContAcSequential - Base - 0 - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - - - 45 - ContAcAnd - And - - - - - 0 - 0 - 0 - 0 - - - - 46 - ContAcOr - Or - - - - - 0 - 0 - 0 - 0 - - - - 47 - ContAcParagraph - Paragraph - 0 - - cyan - White - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - - - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - 1 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 2 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 3 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 4 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 5 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 6 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 7 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 8 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 9 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 10 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 11 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 12 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - throughò - False - True - False - True - False - False - False - False - False - False - False - False - False - False - - - 0 - 0 - {Proc Num}, {Proc Title}, Step {First Step} - {Proc Num}, {Proc Title}, Step {First Step} - ProcMenu, SectDefault, StepAllowNone, StepFirst - - - 1 - 1 - {First Step} - {First Step} - ProcCur, SectCur, StepFirst - - - 2 - 2 - {First Step}, {.}, {.}, {.} and {Last Step} - {First Step}, {.}, {.}, {.} and {Last Step} - ProcCur, SectCur, StepFirst, StepLast - - - 3 - 3 - {First Step} thru {Last Step} of {Proc Num}, {Proc Title}, {Sect Hdr} - {First Step} thru {Last Step} of {Proc Num}, {Proc Title}, {Sect Hdr} - ProcMenu, SectMenuStep, StepFirst, StepLast - - - 4 - 4 - {Sect Title}, Step {First Step} - {Sect Title}, Step {First Step} - ProcCur, SectMenuAny, StepAllowNone, StepFirst - - - 5 - 5 - {Proc Num}, {Proc Title}, {Sect Hdr}, Step {First Step} - {Proc Num}, {Proc Title}, {Sect Hdr}, Step {First Step} - ProcMenu, SectMenuAny, StepAllowNone, StepFirst - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - 13 - 13 - - - 14 - 14 - - - - - True - False - False - False - True - False - False - - \ No newline at end of file diff --git a/PROMS/fmtxml/XSL Transform/Program.cs b/PROMS/fmtxml/XSL Transform/Program.cs deleted file mode 100644 index cef70661..00000000 --- a/PROMS/fmtxml/XSL Transform/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace XSL_Transform -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmMain()); - } - } -} \ No newline at end of file diff --git a/PROMS/fmtxml/XSL Transform/Properties/AssemblyInfo.cs b/PROMS/fmtxml/XSL Transform/Properties/AssemblyInfo.cs deleted file mode 100644 index 7139dc9b..00000000 --- a/PROMS/fmtxml/XSL Transform/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("XSL Transform")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Volian Enterprises, Inc.")] -[assembly: AssemblyProduct("XSL Transform")] -[assembly: AssemblyCopyright("Copyright © Volian Enterprises, Inc. 2006")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("7e95cb06-46be-49c6-81e1-92302d9017e4")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/fmtxml/XSL Transform/Properties/Resources.Designer.cs b/PROMS/fmtxml/XSL Transform/Properties/Resources.Designer.cs deleted file mode 100644 index e597f907..00000000 --- a/PROMS/fmtxml/XSL Transform/Properties/Resources.Designer.cs +++ /dev/null @@ -1,71 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace XSL_Transform.Properties -{ - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "2.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources - { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() - { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager - { - get - { - if ((resourceMan == null)) - { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("XSL_Transform.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture - { - get - { - return resourceCulture; - } - set - { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/fmtxml/XSL Transform/Properties/Resources.resx b/PROMS/fmtxml/XSL Transform/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/fmtxml/XSL Transform/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/fmtxml/XSL Transform/Properties/Settings.Designer.cs b/PROMS/fmtxml/XSL Transform/Properties/Settings.Designer.cs deleted file mode 100644 index c6d333c7..00000000 --- a/PROMS/fmtxml/XSL Transform/Properties/Settings.Designer.cs +++ /dev/null @@ -1,30 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:2.0.50727.42 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace XSL_Transform.Properties -{ - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "8.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase - { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default - { - get - { - return defaultInstance; - } - } - } -} diff --git a/PROMS/fmtxml/XSL Transform/Properties/Settings.settings b/PROMS/fmtxml/XSL Transform/Properties/Settings.settings deleted file mode 100644 index 39645652..00000000 --- a/PROMS/fmtxml/XSL Transform/Properties/Settings.settings +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - diff --git a/PROMS/fmtxml/XSL Transform/TranslateFMT.XSL b/PROMS/fmtxml/XSL Transform/TranslateFMT.XSL deleted file mode 100644 index b74ad997..00000000 Binary files a/PROMS/fmtxml/XSL Transform/TranslateFMT.XSL and /dev/null differ diff --git a/PROMS/fmtxml/XSL Transform/TranslateFMT.XSL.bak b/PROMS/fmtxml/XSL Transform/TranslateFMT.XSL.bak deleted file mode 100644 index 02acf0a4..00000000 Binary files a/PROMS/fmtxml/XSL Transform/TranslateFMT.XSL.bak and /dev/null differ diff --git a/PROMS/fmtxml/XSL Transform/WCNCKLf.xml b/PROMS/fmtxml/XSL Transform/WCNCKLf.xml deleted file mode 100644 index fe93d6dd..00000000 --- a/PROMS/fmtxml/XSL Transform/WCNCKLf.xml +++ /dev/null @@ -1,2016 +0,0 @@ - - - Wolf Creek Checklist Attachment Format - ApproveOne, AccPagination, LibMaint, STrees, DateChgSumRpt, SetpointUsage, Replace, OutsideTransitions, AutoTableOfContents - - None - None - - - null - - - 0 - null - null - null - null - False - null - null - null - null - - - - - - - - - - - - - - - - - - - - - - 45 - 0 - null - True - null - null - - - - - - - - - - - - - - 69 - 174 - 0 - 1 - null - True - null - null - null - null - null - - - 0 - 0 - null - null - - - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - - 0 - 0 - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - 0 - 0 - - - 1 - 0 - 0 - - - 2 - 0 - 0 - - - 3 - 0 - 0 - - - 4 - 0 - 0 - - - 5 - 0 - 0 - - - 6 - 0 - 0 - - - 7 - 0 - 0 - - - 8 - 0 - 0 - - - 9 - 0 - 0 - - - 10 - 0 - 0 - - - 11 - 0 - 0 - - - 12 - 0 - 0 - - - 13 - 0 - 0 - - - 14 - 0 - 0 - - - 15 - 0 - 0 - - - 16 - 0 - 0 - - - 17 - 0 - 0 - - - - - - 0 - null - null - null - null - True - null - True - null - null - null - null - - 0 - - - 0 - - - 48 - 0 - 2 - 0 - - 5 - 6 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - Caution - Note - - - - - - - - - - o - - - - - - - - - - - - - null - True - null - null - null - null - True - null - True - True - True - null - null - null - True - null - null - - 0 - 0 - 6 - 18 - 0 - 366 - 0 - 0 - 594,198,138 - 420,174,126 - 420,174,126 - 0 - 0 - 0,0 - 0 - 0 - 0 - null - null - True - null - null - null - null - True - null - True - True - null - null - null - null - null - null - null - True - null - null - null - null - null - null - null - null - True - null - null - null - null - True - True - - Courier New - 12 - None - None - None - - - 0 - 0 - - - 8 - - Courier New - 12 - None - None - None - - - - - 0 - 0 - 0,24,0 - - - 0 - 0 - null - null - null - - - - - - - - 0 - 0 - {numeric}+ - - - 1 - 0 - {numeric}+ - - - 2 - 0 - {numeric}. - - - 3 - 0 - {alpha}. - - - 4 - 0 - {numeric}) - - - 5 - 0 - {alpha}) - - - 6 - 0 - - - 7 - 0 - - - 8 - 0 - - - - - 0 - - 0 - 0 - 0 - 0 - 0 - 0 - - - - - 0 - 0 - 0 - 0 - 0 - 0 - - - 1 - 0 - 0 - 0 - 0 - 0 - - - 2 - 0 - 0 - 0 - 0 - 0 - - - 3 - 0 - 0 - 0 - 0 - 0 - - - 4 - 0 - 0 - 0 - 0 - 0 - - - 5 - 0 - 0 - 0 - 0 - 0 - - - 6 - 0 - 0 - 0 - 0 - 0 - - - 7 - 0 - 0 - 0 - 0 - 0 - - - 8 - 0 - 0 - 0 - 0 - 0 - - - 9 - 0 - 0 - 0 - 0 - 0 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - Base - - null - null - - None - None - - - - - - - - 1 - Substep - Base - 0 - Component Location (2 Signoffs) - null - null - null - null - null - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - - - Courier New - 12 - None - None - None - - - - - 2 - High - Base - 0 - Spare - {Backspace}┌───────────────────────────────────────────────────────────────────────┐ - {Backspace}├──────────────┬─────────────────────────┬─────────┬──────────┬─────────┤{par}{Backspace}│ COMPONENT │ COMPONENT DESCRIPTION │REQUIRED │PERFORMER │VERIFIER │{par}{Backspace}│ NUMBER │ │POSITION │ INITIALS │INITIALS │{par}{Backspace}├──────────────┼─────────────────────────┼─────────┼──────────┼─────────┤ - 1,16,42,52,63,73,0,0,0,0,0,0,0,0,0 - null - True - False - null - null - null - null - null - null - null - null - null - null - - None - Center - - - 0 - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - 24 - - - - - - - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - - 3 - Immediate - High - null - - - - - - - 4 - And - Base - 0 - False - null - null - - Courier New - 12 - None - None - None - - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - - o - o - o - o - - Courier New - 12 - None - None - None - - - - - 5 - Or - Base - 0 - \ul OR\ul0 - False - null - null - - Courier New - 12 - None - None - None - - - -32384 - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - - * - * - * - * - - Courier New - 12 - None - None - None - - - - - 6 - Caution - Base - 0 - null - null - null - null - null - False - False - null - null - null - null - null - null - null - null - null - null - null - null - null - - None - None - - - 2 - -32384 - - - AddingCaution, AddingNote, AddingNext, AddingPrev - - - - CAUTION - CAUTIONS - CAUTION - CAUTIONS - 48 - 48 - Center - - Courier New - 12 - Underline, Bold - None - Center - - - - - 7 - Note - Base - 0 - null - null - null - null - False - False - null - null - False - null - null - null - null - null - null - null - null - null - - None - None - - - 3 - - - AddingNext, AddingPrev - - - - NOTE - NOTES - NOTE - NOTES - 30 - 36 - 30 - 36 - Center - - Courier New - 12 - Underline, Bold - None - Center - - - - - 8 - Table - Base - 0 - Component Location (Performed By) - False - null - - Courier New - 12 - None - None - None - - - - - - - Courier New - 12 - None - None - None - - - - - 9 - Continuous - High - {Backspace}├──────────────┬───────────────────────────────────┬─────────┬──────────┤{par}{Backspace}│ COMPONENT │ COMPONENT DESCRIPTION │REQUIRED │PERFORMER │{par}{Backspace}│ NUMBER │ │POSITION │ INITIALS │{par}{Backspace}├──────────────┼───────────────────────────────────┼─────────┼──────────┤ - 1,16,52,62,73,0,0,0,0,0,0,0,0,0,0 - null - - - - - - - 10 - AERTable - Table - - - - - - - 11 - EquipmentList - Base - 0 - False - null - null - - Courier New - 12 - None - None - None - - - cyan - 99 - - - AddingSub, AddingNext, AddingPrev - - - - o - o - o - o - - Courier New - 12 - None - None - None - - - - - 12 - Title - Base - 0 - False - null - - Courier New - 12 - None - None - None - - - - - - - Courier New - 12 - None - None - None - - - - - 13 - PageNumber - Title - - - - - - - 14 - EquipmentWBlank - EquipmentList - - 1 - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - - 0 - 0 - 0 - 0 - - - - 15 - ProcNumber - Title - - - - - - - 16 - RevNumber - Title - - - - - - - 17 - AccPages - Base - 0 - Spare - False - null - - Courier New - 12 - None - None - None - - - - - - - Courier New - 12 - None - None - None - - - - - 18 - LossOfAC - High - True - - - - - - - 19 - ExplicitAnd - And - \ul AND\ul0 - - -32384 - - - - - - - 20 - Caution1 - Caution - True - null - - - - - - - 21 - Caution2 - Caution - null - null - - - - - - - 22 - Note1 - Note - True - - - - - - - 23 - Note2 - Note - - - - - - - 24 - Paragraph - Base - 0 - null - - Courier New - 12 - None - None - None - - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - - - Courier New - 12 - None - None - None - - - - - 25 - Default - Base - 0 - False - null - - - - - - Courier New - 12 - None - None - None - - - - - 26 - Note3 - Note - - 0 - - - - - 0 - 0 - 0 - 0 - None - - None - None - None - - - - - 27 - Caution3 - Caution - - 0 - 0 - - - - - 0 - 0 - 0 - 0 - None - - None - None - None - - - - - 28 - Note4 - Note - - 0 - - - - - None - - None - None - None - - - - - 29 - Caution4 - Caution - Component Description - - 0 - -26986 - - - - - None - - None - None - None - - - - - 30 - EquipmentOpt - EquipmentList - Component Number - null - null - - magenta - 1 - 21588 - - - - - COMPONENT DESCRIPTION: - - COMPONENT DESCRIPTION: - - 138 - 0 - 138 - 0 - - - - 31 - EquipmentOptWBlank - EquipmentWBlank - - - - - COMPONENT NUMBER: - - COMPONENT NUMBER: - - 108 - 108 - - - - 32 - Note5 - Note - - 0 - - - - - None - - None - None - None - - - - - 33 - BorderlessAERTable - AERTable - null - - - - - - - 34 - BorderlessTable - Table - Required Position - null - - 13878 - - - - - - - 35 - ImplicitOr - Or - - red - 1 - 0 - - - - - REQUIRED POSITION: - - REQUIRED POSITION: - - 138 - 0 - 138 - 0 - - - - 36 - Figure - Table - - - - - - - 37 - AERFigure - Figure - - - - - - - 38 - BorderlessFigure - Figure - null - - - - - - - 39 - BorderlessAERFigure - AERFigure - null - - - - - - - 40 - RNOType - Base - 0 - Spare - False - null - True - null - null - null - null - null - null - null - null - null - null - null - null - null - null - null - - - - - - Courier New - 12 - None - None - None - - - - - 41 - High5 - High - - - - 0 - - - - - 42 - TitleWithTextRight - Title - - magenta - - - AddingSub, AddingNext, AddingPrev - - - - - - - - - - - 43 - TitleWithTextBelow - Title - - magenta - - - AddingSub, AddingNext, AddingPrev - - - - - - - - - - - 44 - ContAcSequential - Base - 0 - False - null - - - - - - Courier New - 12 - None - None - None - - - - - 45 - ContAcAnd - And - - - - - - - 46 - ContAcOr - Or - - 0 - - - - - - - 47 - ContAcParagraph - Paragraph - 0 - - cyan - White - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - Courier New - 12 - None - None - None - - - - - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - 1 - 0 - 516 - 18 - 444 - 0 - 0 - 0 - - - - - - - - - - - - - Courier New - 12 - None - None - None - - - - 2 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 3 - 0 - 432 - 18 - 402 - 0 - 0 - 0 - - - - - - - - - Courier New - 12 - None - None - None - - - - 4 - 0 - 432 - 18 - 402 - 0 - 0 - 0 - - - - - - - - - Courier New - 12 - None - None - None - - - - 5 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 6 - 0 - 516 - 18 - 444 - 0 - 0 - 0 - - - - - - - - - - - - - Courier New - 12 - None - None - None - - - - 7 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 8 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 9 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 10 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 11 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 12 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - - ..)). - null - null - null - null - null - null - null - null - null - null - True - null - null - null - - - 0 - 0 - - - 1 - 1 - {First Step} ( Within the current section ) - {First Step} ( Within the current section ) - - - 2 - 2 - - - 3 - 3 - {Sect Num}.{First Step} thru {Sect Num}.{Last Step} - {Sect Num}.{First Step} thru {Sect Num}.{Last Step} - ProcCur, SectMenuStep, StepFirst, StepLast - - - 4 - 4 - {Sect Num}.{First Step} ( To a different section ) - {Sect Num}.{First Step} ( To a different section ) - - - 5 - 5 - {Sect Num}, {Sect Title}, {First Step} - {Sect Num}, {Sect Title}, {First Step} - ProcCur, SectMenuAny, StepAllowNone, StepFirst - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - 13 - 13 - - - 14 - 14 - - - - - null - True - False - null - null - True - null - - \ No newline at end of file diff --git a/PROMS/fmtxml/XSL Transform/WCNCKLf.xml.bak b/PROMS/fmtxml/XSL Transform/WCNCKLf.xml.bak deleted file mode 100644 index a82031af..00000000 --- a/PROMS/fmtxml/XSL Transform/WCNCKLf.xml.bak +++ /dev/null @@ -1,2351 +0,0 @@ - - - Wolf Creek Checklist Attachment Format - ApproveOne, AccPagination, LibMaint, STrees, DateChgSumRpt, SetpointUsage, Replace, OutsideTransitions, AutoTableOfContents - - Prestige Elite Tall - 10 - None - None - None - - - Insert - False - - - 0 - False - False - False - False - False - False - False - False - False - - - - - - - - - - - - - - - - - - - - - - 45 - 0 - Black - White - False - True - False - False - - - - - - - - - - - - - - Nothing - 69 - 174 - 0 - 1 - False - True - False - False - False - False - False - - - 0 - 0 - False - False - - - 0 - 0 - - - 1 - 0 - - - 2 - 0 - - - 3 - 0 - - - - - 0 - - - 1 - - - 2 - - - 3 - - - 4 - - - - - 0 - 0 - 0 - - - 1 - 0 - 0 - - - 2 - 0 - 0 - - - 3 - 0 - 0 - - - 4 - 0 - 0 - - - 5 - 0 - 0 - - - 6 - 0 - 0 - - - 7 - 0 - 0 - - - 8 - 0 - 0 - - - 9 - 0 - 0 - - - 10 - 0 - 0 - - - 11 - 0 - 0 - - - 12 - 0 - 0 - - - 13 - 0 - 0 - - - 14 - 0 - 0 - - - 15 - 0 - 0 - - - 16 - 0 - 0 - - - 17 - 0 - 0 - - - - - - 0 - Black - White - False - False - False - False - True - False - True - False - False - False - False - - 0 - PSCenter - - - 0 - PSCenter - - - 48 - 0 - 2 - 0 - - 5 - 6 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - Caution - Note - - - - - - - - - - o - - - - - - - - - - - - - - - - - - - - - - - - - False - True - False - False - False - False - True - False - True - True - True - False - False - True - True - False - False - - 0 - 1 - 6 - 18 - 0 - 366 - 0 - 0 - 0,1,2 - 594,198,138 - 420,174,126 - 420,174,126 - 0 - 0 - 0,0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - 0, 0, 0 - False - False - True - False - False - False - False - True - False - True - True - False - False - False - False - False - False - False - True - False - False - False - False - False - False - False - False - True - False - False - False - False - True - True - - 0 - 0 - - - 8 - - Courier New - 12 - None - None - None - - - - - 0 - 0 - 0,24,0 - - - 0 - 0 - False - False - False - - - - - - - - 0 - 0 - {numeric}+ - - - 1 - 0 - {numeric}+ - - - 2 - 0 - {numeric}. - - - 3 - 0 - {alpha}. - - - 4 - 0 - {numeric}) - - - 5 - 0 - {alpha}) - - - 6 - 0 - {numeric} - - - 7 - 0 - {numeric} - - - 8 - 0 - {numeric} - - - - - 0 - - 0 - 0 - 0 - 0 - 0 - 0 - - - - - 0 - 0 - 0 - 0 - 0 - 0 - - - 1 - 0 - 0 - 0 - 0 - 0 - - - 2 - 0 - 0 - 0 - 0 - 0 - - - 3 - 0 - 0 - 0 - 0 - 0 - - - 4 - 0 - 0 - 0 - 0 - 0 - - - 5 - 0 - 0 - 0 - 0 - 0 - - - 6 - 0 - 0 - 0 - 0 - 0 - - - 7 - 0 - 0 - 0 - 0 - 0 - - - 8 - 0 - 0 - 0 - 0 - 0 - - - 9 - 0 - 0 - 0 - 0 - 0 - - - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - 0 - - - - - - 0 - Base - - False - False - - None - None - - - Black - White - 0 - - - - - - - 1 - Substep - Base - 0 - Component Location (2 Signoffs) - False - False - False - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - Courier New - 12 - None - None - None - - - - - 2 - High - Base - 0 - Spare - {Backspace}┌───────────────────────────────────────────────────────────────────────┐ - {Backspace}├──────────────┬─────────────────────────┬─────────┬──────────┬─────────┤{par}{Backspace}│ COMPONENT │ COMPONENT DESCRIPTION │REQUIRED │PERFORMER │VERIFIER │{par}{Backspace}│ NUMBER │ │POSITION │ INITIALS │INITIALS │{par}{Backspace}├──────────────┼─────────────────────────┼─────────┼──────────┼─────────┤ - 1,16,42,52,63,73,0,0,0,0,0,0,0,0,0 - False - True - False - False - False - False - False - False - False - False - False - False - False - - Courier New - 12 - None - None - Center - - - lightgray - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - 24 - - - - - - - 0 - 0 - 0 - 0 - None - None - - Courier New - 12 - None - None - None - - - - - 3 - Immediate - High - False - - - - - - - 4 - And - Base - 0 - False - False - False - - Courier New - 12 - None - None - None - - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - 0 - - - o - o - o - o - 12 - 12 - 12 - 12 - None - None - - Courier New - 12 - None - None - None - - - - - 5 - Or - Base - 0 - \ul OR\ul0 - False - False - False - - Courier New - 12 - None - None - None - - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - -32384 - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - 0 - - - * - * - * - * - 12 - 12 - 12 - 12 - None - None - - Courier New - 12 - None - None - None - - - - - 6 - Caution - Base - 0 - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - - Courier New - 12 - Bold - None - None - - - brown - 0 - 2 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - -32384 - - - AddingCaution, AddingNote, AddingNext, AddingPrev - - - 0 - - - CAUTION - CAUTIONS - CAUTION - CAUTIONS - 48 - 54 - 48 - 54 - Center - None - - Courier New - 12 - Underline, Bold - None - Center - - - - - 7 - Note - Base - 0 - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - - Courier New - 12 - Bold - None - None - - - green - 0 - 3 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingNext, AddingPrev - - - 0 - - - NOTE - NOTES - NOTE - NOTES - 30 - 36 - 30 - 36 - Center - None - - Courier New - 12 - Underline, Bold - None - Center - - - - - 8 - Table - Base - 0 - Component Location (Performed By) - False - False - - Courier New - 12 - None - None - None - - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - Courier New - 12 - None - None - None - - - - - 9 - Continuous - High - {Backspace}├──────────────┬───────────────────────────────────┬─────────┬──────────┤{par}{Backspace}│ COMPONENT │ COMPONENT DESCRIPTION │REQUIRED │PERFORMER │{par}{Backspace}│ NUMBER │ │POSITION │ INITIALS │{par}{Backspace}├──────────────┼───────────────────────────────────┼─────────┼──────────┤ - 1,16,52,62,73,0,0,0,0,0,0,0,0,0,0 - False - - - - - - - 10 - AERTable - Table - - - - - - - 11 - EquipmentList - Base - 0 - False - False - False - - Courier New - 12 - None - None - None - - - cyan - 0 - 0 - 99 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingSub, AddingNext, AddingPrev - - - 0 - - - o - o - o - o - 12 - 12 - 12 - 12 - None - None - - Courier New - 12 - None - None - None - - - - - 12 - Title - Base - 0 - False - False - - Courier New - 12 - None - None - None - - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - Courier New - 12 - None - None - None - - - - - 13 - PageNumber - Title - - - - - - - 14 - EquipmentWBlank - EquipmentList - - 1 - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - - 0 - 0 - 0 - 0 - - - - 15 - ProcNumber - Title - - - - - - - 16 - RevNumber - Title - - - - - - - 17 - AccPages - Base - 0 - Spare - False - False - - Courier New - 12 - None - None - None - - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - Courier New - 12 - None - None - None - - - - - 18 - LossOfAC - High - True - - - - - - - 19 - ExplicitAnd - And - \ul AND\ul0 - - -32384 - - - - - - - 20 - Caution1 - Caution - True - False - - - - - - - 21 - Caution2 - Caution - False - False - - - - - - - 22 - Note1 - Note - True - - - - - - - 23 - Note2 - Note - - - - - - - 24 - Paragraph - Base - 0 - False - - Courier New - 12 - None - None - None - - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - AddingCaution, AddingNote, AddingSub, AddingNext, AddingPrev - - - 0 - - - - - - - 0 - 0 - 0 - 0 - None - None - - Courier New - 12 - None - None - None - - - - - 25 - Default - Base - 0 - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - Courier New - 12 - None - None - None - - - - - 26 - Note3 - Note - - 0 - - - - - 0 - 0 - 0 - 0 - None - - None - None - None - - - - - 27 - Caution3 - Caution - - 0 - 0 - - - - - 0 - 0 - 0 - 0 - None - - None - None - None - - - - - 28 - Note4 - Note - - cyan - 0 - - - - - 0 - 0 - 0 - 0 - None - - None - None - None - - - - - 29 - Caution4 - Caution - Component Description - - cyan - 0 - -26986 - - - - - 0 - 0 - 0 - 0 - None - - None - None - None - - - - - 30 - EquipmentOpt - EquipmentList - Component Number - False - False - - magenta - 1 - 21588 - - - - - COMPONENT DESCRIPTION: - - COMPONENT DESCRIPTION: - - 138 - 0 - 138 - 0 - - - - 31 - EquipmentOptWBlank - EquipmentWBlank - - - - - COMPONENT NUMBER: - - COMPONENT NUMBER: - - 108 - 108 - - - - 32 - Note5 - Note - - cyan - 0 - - - - - 0 - 0 - 0 - 0 - None - - None - None - None - - - - - 33 - BorderlessAERTable - AERTable - False - - - - - - - 34 - BorderlessTable - Table - Required Position - False - - 13878 - - - - - - - 35 - ImplicitOr - Or - - red - 1 - 0 - - - - - REQUIRED POSITION: - - REQUIRED POSITION: - - 138 - 0 - 138 - 0 - - - - 36 - Figure - Table - - Black - - - - - - - 37 - AERFigure - Figure - - - - - - - 38 - BorderlessFigure - Figure - False - - - - - - - 39 - BorderlessAERFigure - AERFigure - False - - - - - - - 40 - RNOType - Base - 0 - Spare - False - False - True - False - False - False - False - False - False - False - False - False - False - False - False - False - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - Courier New - 12 - None - None - None - - - - - 41 - High5 - High - - - - 0 - - - - - 42 - TitleWithTextRight - Title - - magenta - - - AddingSub, AddingNext, AddingPrev - - - - - - - - - - - 43 - TitleWithTextBelow - Title - - magenta - - - AddingSub, AddingNext, AddingPrev - - - - - - - - - - - 44 - ContAcSequential - Base - 0 - False - False - - cyan - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - Courier New - 12 - None - None - None - - - - - 45 - ContAcAnd - And - - - - - 0 - 0 - 0 - 0 - - - - 46 - ContAcOr - Or - - 0 - - - - - 0 - 0 - 0 - 0 - - - - 47 - ContAcParagraph - Paragraph - 0 - - cyan - White - 0 - 0 - 1 - 0 - 12 - 0 - 0 - 0 - 0 - - - - 0 - - - 0 - 0 - 0 - 0 - None - None - - Courier New - 12 - None - None - None - - - - - - - 0 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - - - - - - - - - - - - - 1 - 0 - 516 - 18 - 444 - 0 - 0 - 0 - - - - - - - - - - - - - Courier New - 12 - None - None - None - - - - 2 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 3 - 0 - 432 - 18 - 402 - 0 - 0 - 0 - - - - - - - - - Courier New - 12 - None - None - None - - - - 4 - 0 - 432 - 18 - 402 - 0 - 0 - 0 - - - - - - - - - Courier New - 12 - None - None - None - - - - 5 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 6 - 0 - 516 - 18 - 444 - 0 - 0 - 0 - - - - - - - - - - - - - Courier New - 12 - None - None - None - - - - 7 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 8 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 9 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 10 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 11 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - 12 - 0 - 0 - 0 - 0 - 0 - 0 - 0 - - Courier New - 12 - None - None - None - - - - - - ..)). - throughò - False - True - False - True - False - False - False - False - False - False - True - False - False - False - - - 0 - 0 - {Proc Num}, {Proc Title}, Step {First Step} - {Proc Num}, {Proc Title}, Step {First Step} - ProcMenu, SectDefault, StepAllowNone, StepFirst - - - 1 - 1 - {First Step} ( Within the current section ) - {First Step} ( Within the current section ) - ProcCur, SectCur, StepFirst - - - 2 - 2 - {First Step}, {.}, {.}, {.} and {Last Step} - {First Step}, {.}, {.}, {.} and {Last Step} - ProcCur, SectCur, StepFirst, StepLast - - - 3 - 3 - {Sect Num}.{First Step} thru {Sect Num}.{Last Step} - {Sect Num}.{First Step} thru {Sect Num}.{Last Step} - ProcCur, SectMenuStep, StepFirst, StepLast - - - 4 - 4 - {Sect Num}.{First Step} ( To a different section ) - {Sect Num}.{First Step} ( To a different section ) - ProcCur, SectMenuAny, StepAllowNone, StepFirst - - - 5 - 5 - {Sect Num}, {Sect Title}, {First Step} - {Sect Num}, {Sect Title}, {First Step} - ProcCur, SectMenuAny, StepAllowNone, StepFirst - - - 6 - 6 - - - 7 - 7 - - - 8 - 8 - - - 9 - 9 - - - 10 - 10 - - - 11 - 11 - - - 12 - 12 - - - 13 - 13 - - - 14 - 14 - - - - - True - True - False - False - True - True - False - - \ No newline at end of file diff --git a/PROMS/fmtxml/XSL Transform/XSL Transform.csproj b/PROMS/fmtxml/XSL Transform/XSL Transform.csproj deleted file mode 100644 index e4647124..00000000 --- a/PROMS/fmtxml/XSL Transform/XSL Transform.csproj +++ /dev/null @@ -1,82 +0,0 @@ - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {74593BA8-2F88-4FF2-89A6-9FBD358231D7} - WinExe - Properties - XSL_Transform - XSL Transform - ARW05RT.ICO - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - Form - - - frmMain.cs - - - - - Designer - frmMain.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/fmtxml/XSL Transform/XSL Transform.sln b/PROMS/fmtxml/XSL Transform/XSL Transform.sln deleted file mode 100644 index ed297537..00000000 --- a/PROMS/fmtxml/XSL Transform/XSL Transform.sln +++ /dev/null @@ -1,20 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSL Transform", "XSL Transform.csproj", "{74593BA8-2F88-4FF2-89A6-9FBD358231D7}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {74593BA8-2F88-4FF2-89A6-9FBD358231D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {74593BA8-2F88-4FF2-89A6-9FBD358231D7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {74593BA8-2F88-4FF2-89A6-9FBD358231D7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {74593BA8-2F88-4FF2-89A6-9FBD358231D7}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/fmtxml/XSL Transform/frmMain.Designer.cs b/PROMS/fmtxml/XSL Transform/frmMain.Designer.cs deleted file mode 100644 index b92ec2f0..00000000 --- a/PROMS/fmtxml/XSL Transform/frmMain.Designer.cs +++ /dev/null @@ -1,591 +0,0 @@ -namespace XSL_Transform -{ - partial class frmMain - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - System.Windows.Forms.TabPage tpSX; - System.Windows.Forms.TabPage tpRS; - System.Windows.Forms.TabPage tpSR; - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmMain)); - this.tbSX = new System.Windows.Forms.TextBox(); - this.wbRS = new System.Windows.Forms.WebBrowser(); - this.tbSR = new System.Windows.Forms.TextBox(); - this.splitContainer1 = new System.Windows.Forms.SplitContainer(); - this.tcSource = new System.Windows.Forms.TabControl(); - this.tpSS = new System.Windows.Forms.TabPage(); - this.tbSS = new System.Windows.Forms.TextBox(); - this.tcResults = new System.Windows.Forms.TabControl(); - this.tpRX = new System.Windows.Forms.TabPage(); - this.wbRX = new System.Windows.Forms.WebBrowser(); - this.tpRR = new System.Windows.Forms.TabPage(); - this.wbRR = new System.Windows.Forms.WebBrowser(); - this.tpXslHelp = new System.Windows.Forms.TabPage(); - this.wbXSLHelp = new System.Windows.Forms.WebBrowser(); - this.tpXPathHelp = new System.Windows.Forms.TabPage(); - this.wbXPathHelp = new System.Windows.Forms.WebBrowser(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.xMLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.miOpenXML = new System.Windows.Forms.ToolStripMenuItem(); - this.miSaveXML = new System.Windows.Forms.ToolStripMenuItem(); - this.miSaveAsXML = new System.Windows.Forms.ToolStripMenuItem(); - this.xSLToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.miOpenXSL = new System.Windows.Forms.ToolStripMenuItem(); - this.miSaveXSL = new System.Windows.Forms.ToolStripMenuItem(); - this.miSaveAsXSL = new System.Windows.Forms.ToolStripMenuItem(); - this.resultToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.miTransform = new System.Windows.Forms.ToolStripMenuItem(); - this.miQuery = new System.Windows.Forms.ToolStripMenuItem(); - this.miSaveAsResults = new System.Windows.Forms.ToolStripMenuItem(); - this.miQuit = new System.Windows.Forms.ToolStripMenuItem(); - this.searchToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.specialToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.ofdxml = new System.Windows.Forms.OpenFileDialog(); - this.sfdxml = new System.Windows.Forms.SaveFileDialog(); - this.ofdxsl = new System.Windows.Forms.OpenFileDialog(); - this.sfdxsl = new System.Windows.Forms.SaveFileDialog(); - this.sfdResults = new System.Windows.Forms.SaveFileDialog(); - this.ofdResults = new System.Windows.Forms.OpenFileDialog(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.RowLbl = new System.Windows.Forms.ToolStripStatusLabel(); - this.ColLbl = new System.Windows.Forms.ToolStripStatusLabel(); - this.miRefreshXML = new System.Windows.Forms.ToolStripMenuItem(); - this.miRefreshXSL = new System.Windows.Forms.ToolStripMenuItem(); - tpSX = new System.Windows.Forms.TabPage(); - tpRS = new System.Windows.Forms.TabPage(); - tpSR = new System.Windows.Forms.TabPage(); - tpSX.SuspendLayout(); - tpRS.SuspendLayout(); - tpSR.SuspendLayout(); - this.splitContainer1.Panel1.SuspendLayout(); - this.splitContainer1.Panel2.SuspendLayout(); - this.splitContainer1.SuspendLayout(); - this.tcSource.SuspendLayout(); - this.tpSS.SuspendLayout(); - this.tcResults.SuspendLayout(); - this.tpRX.SuspendLayout(); - this.tpRR.SuspendLayout(); - this.tpXslHelp.SuspendLayout(); - this.tpXPathHelp.SuspendLayout(); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // tpSX - // - tpSX.Controls.Add(this.tbSX); - tpSX.Location = new System.Drawing.Point(4, 22); - tpSX.Name = "tpSX"; - tpSX.Padding = new System.Windows.Forms.Padding(3); - tpSX.Size = new System.Drawing.Size(426, 463); - tpSX.TabIndex = 0; - tpSX.Text = "XML"; - tpSX.UseVisualStyleBackColor = true; - // - // tbSX - // - this.tbSX.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbSX.Location = new System.Drawing.Point(3, 3); - this.tbSX.Multiline = true; - this.tbSX.Name = "tbSX"; - this.tbSX.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbSX.Size = new System.Drawing.Size(420, 457); - this.tbSX.TabIndex = 0; - this.tbSX.MouseUp += new System.Windows.Forms.MouseEventHandler(this.tbSX_MouseUp); - this.tbSX.TextChanged += new System.EventHandler(this.tbTextChanged); - // - // tpRS - // - tpRS.Controls.Add(this.wbRS); - tpRS.Location = new System.Drawing.Point(4, 22); - tpRS.Name = "tpRS"; - tpRS.Padding = new System.Windows.Forms.Padding(3); - tpRS.Size = new System.Drawing.Size(419, 463); - tpRS.TabIndex = 1; - tpRS.Text = "XSL"; - tpRS.UseVisualStyleBackColor = true; - // - // wbRS - // - this.wbRS.Dock = System.Windows.Forms.DockStyle.Fill; - this.wbRS.Location = new System.Drawing.Point(3, 3); - this.wbRS.MinimumSize = new System.Drawing.Size(20, 20); - this.wbRS.Name = "wbRS"; - this.wbRS.Size = new System.Drawing.Size(413, 457); - this.wbRS.TabIndex = 1; - // - // tpSR - // - tpSR.Controls.Add(this.tbSR); - tpSR.Location = new System.Drawing.Point(4, 22); - tpSR.Name = "tpSR"; - tpSR.Size = new System.Drawing.Size(426, 463); - tpSR.TabIndex = 2; - tpSR.Text = "Results"; - tpSR.UseVisualStyleBackColor = true; - // - // tbSR - // - this.tbSR.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbSR.Location = new System.Drawing.Point(0, 0); - this.tbSR.Multiline = true; - this.tbSR.Name = "tbSR"; - this.tbSR.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbSR.Size = new System.Drawing.Size(426, 463); - this.tbSR.TabIndex = 1; - this.tbSR.TextChanged += new System.EventHandler(this.tbTextChanged); - // - // splitContainer1 - // - this.splitContainer1.Dock = System.Windows.Forms.DockStyle.Fill; - this.splitContainer1.Location = new System.Drawing.Point(0, 24); - this.splitContainer1.Name = "splitContainer1"; - // - // splitContainer1.Panel1 - // - this.splitContainer1.Panel1.Controls.Add(this.tcSource); - // - // splitContainer1.Panel2 - // - this.splitContainer1.Panel2.Controls.Add(this.tcResults); - this.splitContainer1.Size = new System.Drawing.Size(865, 489); - this.splitContainer1.SplitterDistance = 434; - this.splitContainer1.TabIndex = 0; - // - // tcSource - // - this.tcSource.Controls.Add(tpSX); - this.tcSource.Controls.Add(this.tpSS); - this.tcSource.Controls.Add(tpSR); - this.tcSource.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcSource.Location = new System.Drawing.Point(0, 0); - this.tcSource.Name = "tcSource"; - this.tcSource.SelectedIndex = 0; - this.tcSource.Size = new System.Drawing.Size(434, 489); - this.tcSource.TabIndex = 0; - // - // tpSS - // - this.tpSS.Controls.Add(this.tbSS); - this.tpSS.Location = new System.Drawing.Point(4, 22); - this.tpSS.Name = "tpSS"; - this.tpSS.Padding = new System.Windows.Forms.Padding(3); - this.tpSS.Size = new System.Drawing.Size(426, 463); - this.tpSS.TabIndex = 1; - this.tpSS.Text = "XSL"; - this.tpSS.UseVisualStyleBackColor = true; - // - // tbSS - // - this.tbSS.Dock = System.Windows.Forms.DockStyle.Fill; - this.tbSS.Location = new System.Drawing.Point(3, 3); - this.tbSS.Multiline = true; - this.tbSS.Name = "tbSS"; - this.tbSS.ScrollBars = System.Windows.Forms.ScrollBars.Vertical; - this.tbSS.Size = new System.Drawing.Size(420, 457); - this.tbSS.TabIndex = 1; - this.tbSS.TextChanged += new System.EventHandler(this.tbTextChanged); - // - // tcResults - // - this.tcResults.Controls.Add(this.tpRX); - this.tcResults.Controls.Add(tpRS); - this.tcResults.Controls.Add(this.tpRR); - this.tcResults.Controls.Add(this.tpXslHelp); - this.tcResults.Controls.Add(this.tpXPathHelp); - this.tcResults.Dock = System.Windows.Forms.DockStyle.Fill; - this.tcResults.Location = new System.Drawing.Point(0, 0); - this.tcResults.Name = "tcResults"; - this.tcResults.SelectedIndex = 0; - this.tcResults.Size = new System.Drawing.Size(427, 489); - this.tcResults.TabIndex = 1; - this.tcResults.SelectedIndexChanged += new System.EventHandler(this.tcResults_SelectedIndexChanged); - // - // tpRX - // - this.tpRX.Controls.Add(this.wbRX); - this.tpRX.Location = new System.Drawing.Point(4, 22); - this.tpRX.Name = "tpRX"; - this.tpRX.Padding = new System.Windows.Forms.Padding(3); - this.tpRX.Size = new System.Drawing.Size(419, 463); - this.tpRX.TabIndex = 0; - this.tpRX.Text = "XML"; - this.tpRX.UseVisualStyleBackColor = true; - // - // wbRX - // - this.wbRX.Dock = System.Windows.Forms.DockStyle.Fill; - this.wbRX.Location = new System.Drawing.Point(3, 3); - this.wbRX.MinimumSize = new System.Drawing.Size(20, 20); - this.wbRX.Name = "wbRX"; - this.wbRX.Size = new System.Drawing.Size(413, 457); - this.wbRX.TabIndex = 0; - // - // tpRR - // - this.tpRR.Controls.Add(this.wbRR); - this.tpRR.Location = new System.Drawing.Point(4, 22); - this.tpRR.Name = "tpRR"; - this.tpRR.Size = new System.Drawing.Size(419, 463); - this.tpRR.TabIndex = 2; - this.tpRR.Text = "Results"; - this.tpRR.UseVisualStyleBackColor = true; - // - // wbRR - // - this.wbRR.Dock = System.Windows.Forms.DockStyle.Fill; - this.wbRR.Location = new System.Drawing.Point(0, 0); - this.wbRR.MinimumSize = new System.Drawing.Size(20, 20); - this.wbRR.Name = "wbRR"; - this.wbRR.Size = new System.Drawing.Size(419, 463); - this.wbRR.TabIndex = 1; - // - // tpXslHelp - // - this.tpXslHelp.Controls.Add(this.wbXSLHelp); - this.tpXslHelp.Location = new System.Drawing.Point(4, 22); - this.tpXslHelp.Name = "tpXslHelp"; - this.tpXslHelp.Size = new System.Drawing.Size(419, 463); - this.tpXslHelp.TabIndex = 3; - this.tpXslHelp.Text = "XSL Help"; - this.tpXslHelp.UseVisualStyleBackColor = true; - // - // wbXSLHelp - // - this.wbXSLHelp.Dock = System.Windows.Forms.DockStyle.Fill; - this.wbXSLHelp.Location = new System.Drawing.Point(0, 0); - this.wbXSLHelp.MinimumSize = new System.Drawing.Size(20, 20); - this.wbXSLHelp.Name = "wbXSLHelp"; - this.wbXSLHelp.Size = new System.Drawing.Size(419, 463); - this.wbXSLHelp.TabIndex = 3; - // - // tpXPathHelp - // - this.tpXPathHelp.Controls.Add(this.wbXPathHelp); - this.tpXPathHelp.Location = new System.Drawing.Point(4, 22); - this.tpXPathHelp.Name = "tpXPathHelp"; - this.tpXPathHelp.Size = new System.Drawing.Size(419, 463); - this.tpXPathHelp.TabIndex = 4; - this.tpXPathHelp.Text = "XPath Help"; - this.tpXPathHelp.UseVisualStyleBackColor = true; - // - // wbXPathHelp - // - this.wbXPathHelp.Dock = System.Windows.Forms.DockStyle.Fill; - this.wbXPathHelp.Location = new System.Drawing.Point(0, 0); - this.wbXPathHelp.MinimumSize = new System.Drawing.Size(20, 20); - this.wbXPathHelp.Name = "wbXPathHelp"; - this.wbXPathHelp.Size = new System.Drawing.Size(419, 463); - this.wbXPathHelp.TabIndex = 2; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.xMLToolStripMenuItem, - this.xSLToolStripMenuItem, - this.resultToolStripMenuItem, - this.miQuit, - this.searchToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(865, 24); - this.menuStrip1.TabIndex = 1; - this.menuStrip1.Text = "menuStrip1"; - // - // xMLToolStripMenuItem - // - this.xMLToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.miOpenXML, - this.miSaveXML, - this.miSaveAsXML, - this.miRefreshXML}); - this.xMLToolStripMenuItem.Name = "xMLToolStripMenuItem"; - this.xMLToolStripMenuItem.Size = new System.Drawing.Size(38, 20); - this.xMLToolStripMenuItem.Text = "XML"; - // - // miOpenXML - // - this.miOpenXML.Name = "miOpenXML"; - this.miOpenXML.Size = new System.Drawing.Size(152, 22); - this.miOpenXML.Tag = "0"; - this.miOpenXML.Text = "Open"; - this.miOpenXML.Click += new System.EventHandler(this.miOpen_Click); - // - // miSaveXML - // - this.miSaveXML.Name = "miSaveXML"; - this.miSaveXML.Size = new System.Drawing.Size(152, 22); - this.miSaveXML.Tag = "0"; - this.miSaveXML.Text = "Save"; - this.miSaveXML.Click += new System.EventHandler(this.miSave_Click); - // - // miSaveAsXML - // - this.miSaveAsXML.Name = "miSaveAsXML"; - this.miSaveAsXML.Size = new System.Drawing.Size(152, 22); - this.miSaveAsXML.Tag = "0"; - this.miSaveAsXML.Text = "Save As"; - this.miSaveAsXML.Click += new System.EventHandler(this.miSaveAs_Click); - // - // xSLToolStripMenuItem - // - this.xSLToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.miOpenXSL, - this.miSaveXSL, - this.miSaveAsXSL, - this.miRefreshXSL}); - this.xSLToolStripMenuItem.Name = "xSLToolStripMenuItem"; - this.xSLToolStripMenuItem.Size = new System.Drawing.Size(36, 20); - this.xSLToolStripMenuItem.Text = "XSL"; - // - // miOpenXSL - // - this.miOpenXSL.Name = "miOpenXSL"; - this.miOpenXSL.Size = new System.Drawing.Size(152, 22); - this.miOpenXSL.Tag = "1"; - this.miOpenXSL.Text = "Open"; - this.miOpenXSL.Click += new System.EventHandler(this.miOpen_Click); - // - // miSaveXSL - // - this.miSaveXSL.Name = "miSaveXSL"; - this.miSaveXSL.Size = new System.Drawing.Size(152, 22); - this.miSaveXSL.Tag = "1"; - this.miSaveXSL.Text = "Save"; - this.miSaveXSL.Click += new System.EventHandler(this.miSave_Click); - // - // miSaveAsXSL - // - this.miSaveAsXSL.Name = "miSaveAsXSL"; - this.miSaveAsXSL.Size = new System.Drawing.Size(152, 22); - this.miSaveAsXSL.Tag = "1"; - this.miSaveAsXSL.Text = "Save As"; - this.miSaveAsXSL.Click += new System.EventHandler(this.miSaveAs_Click); - // - // resultToolStripMenuItem - // - this.resultToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.miTransform, - this.miQuery, - this.miSaveAsResults}); - this.resultToolStripMenuItem.Name = "resultToolStripMenuItem"; - this.resultToolStripMenuItem.Size = new System.Drawing.Size(49, 20); - this.resultToolStripMenuItem.Text = "Result"; - // - // miTransform - // - this.miTransform.Name = "miTransform"; - this.miTransform.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.T))); - this.miTransform.Size = new System.Drawing.Size(172, 22); - this.miTransform.Text = "Transform"; - this.miTransform.Click += new System.EventHandler(this.miTransform_Click); - // - // miQuery - // - this.miQuery.Name = "miQuery"; - this.miQuery.ShortcutKeys = ((System.Windows.Forms.Keys)((System.Windows.Forms.Keys.Control | System.Windows.Forms.Keys.Q))); - this.miQuery.Size = new System.Drawing.Size(172, 22); - this.miQuery.Text = "Query"; - this.miQuery.Click += new System.EventHandler(this.miQuery_Click); - // - // miSaveAsResults - // - this.miSaveAsResults.Name = "miSaveAsResults"; - this.miSaveAsResults.Size = new System.Drawing.Size(172, 22); - this.miSaveAsResults.Tag = "2"; - this.miSaveAsResults.Text = "Save"; - this.miSaveAsResults.Click += new System.EventHandler(this.miSaveAs_Click); - // - // miQuit - // - this.miQuit.Name = "miQuit"; - this.miQuit.Size = new System.Drawing.Size(39, 20); - this.miQuit.Text = "&Quit"; - this.miQuit.Click += new System.EventHandler(this.miQuit_Click); - // - // searchToolStripMenuItem - // - this.searchToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.specialToolStripMenuItem}); - this.searchToolStripMenuItem.Name = "searchToolStripMenuItem"; - this.searchToolStripMenuItem.Size = new System.Drawing.Size(52, 20); - this.searchToolStripMenuItem.Text = "Search"; - // - // specialToolStripMenuItem - // - this.specialToolStripMenuItem.Name = "specialToolStripMenuItem"; - this.specialToolStripMenuItem.Size = new System.Drawing.Size(174, 22); - this.specialToolStripMenuItem.Text = "Special Characters"; - this.specialToolStripMenuItem.Click += new System.EventHandler(this.specialToolStripMenuItem_Click); - // - // ofdxml - // - this.ofdxml.FileOk += new System.ComponentModel.CancelEventHandler(this.OpenFileOk); - // - // sfdxml - // - this.sfdxml.FileOk += new System.ComponentModel.CancelEventHandler(this.SaveFileOk); - // - // ofdxsl - // - this.ofdxsl.FileOk += new System.ComponentModel.CancelEventHandler(this.OpenFileOk); - // - // sfdxsl - // - this.sfdxsl.FileOk += new System.ComponentModel.CancelEventHandler(this.SaveFileOk); - // - // sfdResults - // - this.sfdResults.FileOk += new System.ComponentModel.CancelEventHandler(this.SaveFileOk); - // - // ofdResults - // - this.ofdResults.FileOk += new System.ComponentModel.CancelEventHandler(this.OpenFileOk); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.RowLbl, - this.ColLbl}); - this.statusStrip1.Location = new System.Drawing.Point(0, 513); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(865, 22); - this.statusStrip1.TabIndex = 2; - this.statusStrip1.Text = "statusStrip1"; - // - // RowLbl - // - this.RowLbl.Name = "RowLbl"; - this.RowLbl.Size = new System.Drawing.Size(41, 17); - this.RowLbl.Text = "Row: 0"; - // - // ColLbl - // - this.ColLbl.Name = "ColLbl"; - this.ColLbl.Size = new System.Drawing.Size(55, 17); - this.ColLbl.Text = "Column: 0"; - // - // miRefreshXML - // - this.miRefreshXML.Name = "miRefreshXML"; - this.miRefreshXML.Size = new System.Drawing.Size(152, 22); - this.miRefreshXML.Tag = "0"; - this.miRefreshXML.Text = "Refresh"; - this.miRefreshXML.Click += new System.EventHandler(this.miRefresh_Click); - // - // miRefreshXSL - // - this.miRefreshXSL.Name = "miRefreshXSL"; - this.miRefreshXSL.Size = new System.Drawing.Size(152, 22); - this.miRefreshXSL.Tag = "1"; - this.miRefreshXSL.Text = "Refresh"; - this.miRefreshXSL.Click += new System.EventHandler(this.miRefresh_Click); - // - // frmMain - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(865, 535); - this.Controls.Add(this.splitContainer1); - this.Controls.Add(this.menuStrip1); - this.Controls.Add(this.statusStrip1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.Name = "frmMain"; - this.Text = "XML Query and Transform Tool"; - tpSX.ResumeLayout(false); - tpSX.PerformLayout(); - tpRS.ResumeLayout(false); - tpSR.ResumeLayout(false); - tpSR.PerformLayout(); - this.splitContainer1.Panel1.ResumeLayout(false); - this.splitContainer1.Panel2.ResumeLayout(false); - this.splitContainer1.ResumeLayout(false); - this.tcSource.ResumeLayout(false); - this.tpSS.ResumeLayout(false); - this.tpSS.PerformLayout(); - this.tcResults.ResumeLayout(false); - this.tpRX.ResumeLayout(false); - this.tpRR.ResumeLayout(false); - this.tpXslHelp.ResumeLayout(false); - this.tpXPathHelp.ResumeLayout(false); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.SplitContainer splitContainer1; - private System.Windows.Forms.TabControl tcSource; - private System.Windows.Forms.TabPage tpSS; - private System.Windows.Forms.TabControl tcResults; - private System.Windows.Forms.TabPage tpRX; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem xMLToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem miOpenXML; - private System.Windows.Forms.ToolStripMenuItem miSaveXML; - private System.Windows.Forms.ToolStripMenuItem miSaveAsXML; - private System.Windows.Forms.ToolStripMenuItem xSLToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem miOpenXSL; - private System.Windows.Forms.ToolStripMenuItem miSaveXSL; - private System.Windows.Forms.ToolStripMenuItem miSaveAsXSL; - private System.Windows.Forms.ToolStripMenuItem resultToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem miTransform; - private System.Windows.Forms.ToolStripMenuItem miQuery; - private System.Windows.Forms.ToolStripMenuItem miSaveAsResults; - private System.Windows.Forms.ToolStripMenuItem miQuit; - private System.Windows.Forms.OpenFileDialog ofdxml; - private System.Windows.Forms.SaveFileDialog sfdxml; - private System.Windows.Forms.OpenFileDialog ofdxsl; - private System.Windows.Forms.SaveFileDialog sfdxsl; - private System.Windows.Forms.SaveFileDialog sfdResults; - private System.Windows.Forms.TabPage tpRR; - private System.Windows.Forms.TextBox tbSX; - private System.Windows.Forms.TextBox tbSS; - private System.Windows.Forms.TextBox tbSR; - private System.Windows.Forms.WebBrowser wbRX; - private System.Windows.Forms.WebBrowser wbRS; - private System.Windows.Forms.WebBrowser wbRR; - private System.Windows.Forms.OpenFileDialog ofdResults; - private System.Windows.Forms.TabPage tpXslHelp; - private System.Windows.Forms.TabPage tpXPathHelp; - private System.Windows.Forms.WebBrowser wbXSLHelp; - private System.Windows.Forms.WebBrowser wbXPathHelp; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel RowLbl; - private System.Windows.Forms.ToolStripStatusLabel ColLbl; - private System.Windows.Forms.ToolStripMenuItem searchToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem specialToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem miRefreshXML; - private System.Windows.Forms.ToolStripMenuItem miRefreshXSL; - } -} - diff --git a/PROMS/fmtxml/XSL Transform/frmMain.cs b/PROMS/fmtxml/XSL Transform/frmMain.cs deleted file mode 100644 index bd979f8e..00000000 --- a/PROMS/fmtxml/XSL Transform/frmMain.cs +++ /dev/null @@ -1,289 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.Xml.Xsl; -using System.Xml; -using System.IO; -using System.Text.RegularExpressions; - -namespace XSL_Transform -{ - public partial class frmMain : Form - { - private bool[] _Dirty = new bool[] { false, false, false }; - private string[] _Name = new string[] { "XML", "XSL", "Results" }; - private SaveFileDialog[] _Sfd; - private OpenFileDialog[] _Ofd; - private TextBox[] _Tb; - private WebBrowser[] _Wb; - private Dictionary _OpenDict = new Dictionary(); - private Dictionary _SaveDict = new Dictionary(); - private Dictionary _TextBoxDict = new Dictionary(); - enum Tabs : int - { - XML=0,XSL=1,Results=2 - } - public frmMain() - { - InitializeComponent(); - _Sfd = new SaveFileDialog[] { sfdxml, sfdxsl, sfdResults }; - _Ofd = new OpenFileDialog[] { ofdxml, ofdxsl, ofdResults }; - _Tb = new TextBox[] { tbSX, tbSS, tbSR }; - _Wb = new WebBrowser[] { wbRX, wbRS, wbRR }; - foreach (Tabs tab in Enum.GetValues(typeof(Tabs))) - { - _SaveDict.Add(_Sfd[(int)tab], tab); - _OpenDict.Add(_Ofd[(int)tab], tab); - _TextBoxDict.Add(_Tb[(int)tab], tab); - } - } - void SaveFileOk(object sender, CancelEventArgs e) - { - SaveIt(_SaveDict[(SaveFileDialog)sender]); - } - private void SaveIt(Tabs tab) - { - _Ofd[(int)tab].FileName = _Sfd[(int)tab].FileName; - StreamWriter sw = File.CreateText(_Sfd[(int)tab].FileName); - sw.Write(_Tb[(int)tab].Text); - sw.Close(); - _Dirty[(int)tab] = false; - } - void OpenFileOk(object sender, CancelEventArgs e) - { - OpenIt(_OpenDict[(OpenFileDialog) sender]); - } - private void ShowTab(Tabs tabs) - { - if (tcResults.SelectedIndex == (int)tabs) - ShowActiveTab(); - else - tcResults.SelectedIndex = (int)tabs;// Activate the Approproate Browser - } - private void OpenIt(Tabs tab) - { - _Sfd[(int)tab].FileName = _Ofd[(int)tab].FileName; - LoadTB(_Tb[(int)tab],_Ofd[(int)tab].FileName); - _Dirty[(int)tab] = false; - tcSource.SelectedIndex = (int)tab;// Activate the Appropriate Tab - ShowTab(tab); - } - private bool SaveChanges(Tabs tab) - { - if (!_Dirty[(int)tab]) return true; - DialogResult dr = MessageBox.Show("Save changes to " + _Name[(int)tab] + " file?", "Save Changes", - MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - if (dr == DialogResult.Cancel) return false; - if (dr == DialogResult.Yes) SaveIt(tab); - return true; - } - private void LoadTB(TextBox tb, string fileName) - { - FileInfo f = new FileInfo(fileName); - StreamReader sr = f.OpenText(); - tb.Text = sr.ReadToEnd(); - sr.Close(); - } - private void miQuit_Click(object sender, EventArgs e) - { - if (SaveChanges()) this.Close(); - } - private bool SaveChanges() - { - foreach (Tabs tab in Enum.GetValues(typeof(Tabs))) - if (!SaveChanges(tab)) return false; - return true; - } - private Tabs TabValue(ToolStripDropDownItem mi) - { - return (Tabs)int.Parse(mi.Tag.ToString()); - } - private void miOpen_Click(object sender, EventArgs e) - { - Tabs tab = TabValue((ToolStripDropDownItem)sender); - if (SaveChanges(tab)) - _Ofd[(int)tab].ShowDialog(); - } - private void miRefresh_Click(object sender, EventArgs e) - { - Tabs tab = TabValue((ToolStripDropDownItem)sender); - OpenIt(tab); - } - private void miSaveAs_Click(object sender, EventArgs e) - { - Tabs tab = TabValue((ToolStripDropDownItem)sender); - _Sfd[(int)tab].ShowDialog(); - } - private void miSave_Click(object sender, EventArgs e) - { - Tabs tab = TabValue((ToolStripDropDownItem)sender); - if (_Sfd[(int)tab].FileName == string.Empty) - _Sfd[(int)tab].ShowDialog(); - else - SaveIt(tab); - } - private string FormatException(Exception ex) - { - return string.Format("{0} - {1}", ex.GetType().Name, ex.Message); - } - private void ShowException(Exception ex) - { - ShowException(ex, null); - } - private void ShowException(Exception ex,string sResults) - { - if (sResults != null) - { - LoadTB(tbSR, sResults); - } - StringBuilder sb = new StringBuilder(FormatException(ex)); - sb.Append("\r\n"); - for (; ex.InnerException != null; ex = ex.InnerException) - { - sb.Append(FormatException(ex.InnerException)); - sb.Append("\r\n"); - } - tbSR.SelectionStart = 0; - tbSR.SelectedText=sb.ToString(); - } - private void miQuery_Click(object sender, EventArgs e) - { - try - { - XmlDocument xd = new XmlDocument(); - xd.LoadXml(tbSX.Text); - XmlNodeList nl = xd.SelectNodes(tbSS.Text); - if (nl.Count > 0) - { - StringBuilder sb= new StringBuilder(""); - foreach (XmlNode nd in nl) - sb.Append(string.Format("\r\n {1}",nd.GetType().Name,nd.OuterXml)); - sb.Append("\r\n"); - tbSR.Text = sb.ToString(); - } - else - tbSR.Text = "No nodes found matching criteria"; - } - catch (Exception ex) - { - ShowException(ex); - } - ShowTab(Tabs.Results); - } - private void miTransform_Click(object sender, EventArgs e) - { - string sXSL = Save(tbSS, "tmpS"); - string sXML = Save(tbSX, "tmpX"); - string sResults = Application.StartupPath + "\\" + "tmpR.XML"; - try - { - XslCompiledTransform xsl = new XslCompiledTransform(); - xsl.Load(sXSL); - xsl.Transform(sXML, sResults); // Perform Transform - LoadTB(tbSR, sResults); - } - catch (Exception ex) - { - ShowException(ex,sResults); - } - ShowTab(Tabs.Results); - } - private void ShowActiveTab() - { - Tabs tab = (Tabs)tcResults.SelectedIndex; - _Wb[(int)tab].Navigate(Save(_Tb[(int)tab], _Name[(int)tab])); - } - private void tcResults_SelectedIndexChanged(object sender, EventArgs e) - { - switch (tcResults.SelectedIndex) - { - case 3: - if (wbXSLHelp.Url == null) - wbXSLHelp.Navigate("http://www.w3schools.com/xsl/default.asp"); - break; - case 4: - if (wbXPathHelp.Url == null) - wbXPathHelp.Navigate("http://www.w3schools.com/xpath/"); - break; - default: - ShowActiveTab(); - break; - } - } - private string Extension(string txt) - { - if (txt.Substring(0, 5) == " sl = new SortedList(); - foreach (Match match in Regex.Matches(tbSX.Text,"&#x([0-9]*);")) - { - int num = int.Parse(match.Value.Substring(3).TrimEnd(";".ToCharArray())); - if(num != 9 && num != 10 && num != 13){ - if (sl.ContainsKey(num)) sl[num] = sl[num] + 1; - else sl[num] = 1; - } - } - // When all done show the results in a list. - tbSR.Text = "Special Characters"; - foreach (int key in sl.Keys) - { - tbSR.Text += string.Format("\r\n{0} Ctrl-{1} - {2}", key, Convert.ToChar('A' - 1 + key), sl[key]); - } - ShowTab(Tabs.Results); - } - } -} \ No newline at end of file diff --git a/PROMS/fmtxml/XSL Transform/frmMain.resx b/PROMS/fmtxml/XSL Transform/frmMain.resx deleted file mode 100644 index e5e18c7a..00000000 --- a/PROMS/fmtxml/XSL Transform/frmMain.resx +++ /dev/null @@ -1,176 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - False - - - False - - - False - - - 17, 17 - - - 126, 17 - - - 256, 17 - - - 340, 17 - - - 470, 17 - - - 598, 17 - - - 700, 17 - - - 803, 17 - - - - - AAABAAIAICAQAAAAAADoAgAAJgAAABAQEAAAAAAAKAEAAA4DAAAoAAAAIAAAAEAAAAABAAQAAAAAAIAC - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAAAACAAIAAgIAAAICAgADAwMAAAAD/AAD/ - AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//////// - //////////////////////////P////4/////D////wP///+A////gD///8AP4AAAA8AAAADAAAAAAAA - AAOAAAAP//8AP//+AP///gP///wP///8P///+P////P///////////////////////////////////// - //8oAAAAEAAAACAAAAABAAQAAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAgAAAAICAAIAA - AACAAIAAgIAAAICAgADAwMAAAAD/AAD/AAAA//8A/wAAAP8A/wD//wAA////AAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAP// - AAD//wAA/P8AAP4/AAD+DwAAgAMAAAAAAACAAQAA/gcAAP4fAAD8fwAA/f8AAP//AAD//wAA//8AAA== - - - \ No newline at end of file diff --git a/PROMS/fmtxml/XmlToPdf.cs b/PROMS/fmtxml/XmlToPdf.cs deleted file mode 100644 index f7816650..00000000 --- a/PROMS/fmtxml/XmlToPdf.cs +++ /dev/null @@ -1,188 +0,0 @@ -using System; -using System.Xml; -using System.Drawing; -using System.Windows.Forms; -//using C1.C1Pdf; - -namespace fmtxml -{ - /// - /// Summary description for XmlToPdf. - /// - public class XmlToPdf - { - private float ConvertToPoints=72f; - private XmlDocument xmlDoc; - private string FileName; - private string FilePath; - //private C1.C1Pdf.C1PdfDocument _c1pdf; - - private string [] FontChoice = - {"Times New Roman", - "VESymb XXXXXX", - "VolianDraw XXXXXX", - "Prestige Elite Tall", - "Courier New", - "Arial", - "Letter Gothic", - "Times New Roman", - "Letter Gothic Tall", - "Letter Gothic Tall", - "Gothic Ultra", - "VolianScript" - }; - private float LeftMargin; //todo: define in page info - private float VerticalOffset; //todo: define in page info - private bool Portrait; //todo: define in page info - - public XmlToPdf(string path, string fname) - { - LeftMargin=0.5f * ConvertToPoints; // KBR: TODO - VerticalOffset=0.5f * ConvertToPoints; // KBR: TODO - Portrait = true; // KBR: TODO - FileName = fname; - FilePath = path; - xmlDoc = new XmlDocument(); - XmlTextReader reader = new XmlTextReader(FilePath+"\\"+FileName); - xmlDoc.Load(reader); - reader.Close(); - try - { - GeneratePDFForFile(); - } - catch (Exception e) - { - MessageBox.Show("Error processing: " + fname, e.Message); - } - } - - private void GeneratePDFForFile() - { - //_c1pdf = new C1.C1Pdf.C1PdfDocument(); - //string rootname = FileName.Substring(0,FileName.Length-4); - //// create a pdf file & for each macro (i.e. macro element in xml tree), - //// put it into the pdf file. - //XmlElement top = (XmlElement) xmlDoc.SelectSingleNode(rootname + "_GENMAC"); - //XmlNodeList xmlNds = top.SelectNodes("MACRO"); - //foreach (XmlNode nd in xmlNds) - //{ - // XmlNode name = nd.SelectSingleNode("NAME"); - // XmlElement elm = (XmlElement) name; - // XmlNode definition = nd.SelectSingleNode("DEFINITION"); - // MacroGeneratePDF(definition); - // _c1pdf.NewPage(); - //} - //string outname = "E:\\ve-proms.net\\genmac.xml\\testpdf\\" + rootname + ".pdf"; - //_c1pdf.Save(outname); - } - - private void MacroGeneratePDF(XmlNode definition) - { - XmlElement elm = (XmlElement) definition; - string def = elm.InnerText; - int lindx = 0; - int indx = def.IndexOf(";"); - while (indx>-1) - { - string command = def.Substring(lindx,indx-lindx).Trim(); - DoPDF(command); - lindx = indx+1; - indx = def.IndexOf(";",lindx); - } - - } - - private void DoPDF(string cmdline) - { - string cmd = cmdline.Substring(0,cmdline.IndexOf(" ")); - int stx, sty, ex, ey = 0; - float fstx, fsty, fex, fey = 0; - int lw=0; - string restOfIt=null; - string [] parts; - - Pen pn = null; - switch (cmd) - { - case "BOX": - restOfIt = cmdline.Substring(4,cmdline.Length-4); - parts = restOfIt.Split(" ".ToCharArray(),5); - fstx = (float) System.Convert.ToDouble(parts[0]); - fsty = (float) System.Convert.ToDouble(parts[1]); - fex = (float) System.Convert.ToDouble(parts[2]); - fey = (float) System.Convert.ToDouble(parts[3]); - float flw = (float) System.Convert.ToDouble(parts[4]); - pn = new Pen(Brushes.Black,flw); - //KBR: TODO - storing page stuff such as portland, vertical offset, tab, etc. - RectangleF rc = new RectangleF(LeftMargin+fstx,VerticalOffset+fsty,fex,fey); - //_c1pdf.DrawRectangle(pn,rc); - break; - case "LINE": // command is LINE startx, starty, endx, endy, lnwidth - restOfIt = cmdline.Substring(5,cmdline.Length-5); - parts = restOfIt.Split(" ".ToCharArray(),5); - fstx = (float) System.Convert.ToDouble(parts[0]); - fsty = (float) System.Convert.ToDouble(parts[1]); - fex = (float) System.Convert.ToDouble(parts[2]); - fey = (float) System.Convert.ToDouble(parts[3]); - float flw1 = (float) System.Convert.ToDouble(parts[4]); -//KBR: TODO - storing page stuff such as portland, vertical offset, tab, etc. -// startx = portland ? (vof + cy + adjy) : (cx + tab + adjx); -// starty = portland ? (tab - (cx + adjx)) : (cy + vof + adjy); - pn = new Pen(Brushes.Black,flw1); -//KBR: TODO - move ablsolute? -// if (MoveAbsolute) -// {tab = 0;vof = 0;} - //_c1pdf.DrawLine(pn, LeftMargin+fstx, VerticalOffset+fsty, LeftMargin+fstx+fex, VerticalOffset+fsty+fey); - break; - case "TEXT": - int quote = cmdline.IndexOf("\""); - string txt = cmdline.Substring(quote+1,cmdline.LastIndexOf("\"")-quote-1); - restOfIt = cmdline.Substring(5,quote-6); - parts = restOfIt.Split(" ".ToCharArray(),5); - fstx = (float) System.Convert.ToDouble(parts[0]); - fsty = (float) System.Convert.ToDouble(parts[1]); - int FontSize = System.Convert.ToInt32(parts[2]); - FontSize = FontSize/2; - int FontFamily = System.Convert.ToInt32(parts[3]); - int bui = System.Convert.ToInt32(parts[4]); //kbr todo: use bui - Font myfont = new Font(this.FontChoice[FontFamily],FontSize); - rc = new Rectangle(); - //rc.Size = _c1pdf.MeasureStringRtf(txt,myfont,500); // kbr todo: 500? - rc.X = LeftMargin+fstx; - rc.Y = VerticalOffset+fsty-FontSize; //-(rc.Size.Height/2); - //_c1pdf.DrawStringRtf(txt,myfont,Brushes.Black,rc); - break; - case "GDIADJ": - break; - case "ELLIPSE": - restOfIt = cmdline.Substring(8,cmdline.Length-8); - parts = restOfIt.Split(" ".ToCharArray(),5); - stx = System.Convert.ToInt32(parts[0]); - sty = System.Convert.ToInt32(parts[1]); - ex = System.Convert.ToInt32(parts[2]); - ey = System.Convert.ToInt32(parts[3]); - lw = System.Convert.ToInt32(parts[4]); - //_c1pdf.DrawEllipse(pn,LeftMargin+stx, VerticalOffset+sty, LeftMargin+ex, VerticalOffset+ey); - break; - case "BITMAP": - restOfIt = cmdline.Substring(8,cmdline.Length-7); - parts = restOfIt.Split(" ".ToCharArray(),3); - fstx = (float) System.Convert.ToDouble(parts[0]); - fsty = (float) System.Convert.ToDouble(parts[1]); - string fname = parts[2]; - Image img = Image.FromFile(fname); - rc = new RectangleF(); - rc.Height = img.Height; - rc.Width = img.Width; - rc.X = LeftMargin+fstx; - rc.Y = VerticalOffset+fsty-(rc.Size.Height/2); - //_c1pdf.DrawImage(img, rc, ContentAlignment.MiddleCenter, ImageSizeModeEnum.Scale); - break; - case "ABSOLUTE": - break; - default: - break; - } - } - } -} diff --git a/PROMS/fmtxml/app.config b/PROMS/fmtxml/app.config deleted file mode 100644 index a2264e36..00000000 --- a/PROMS/fmtxml/app.config +++ /dev/null @@ -1,21 +0,0 @@ - - - - -
    - - - - - - c:\development\ - - - c:\16bit\ve-proms\format - - - C:\16bit\promsnt\genmac - - - - \ No newline at end of file diff --git a/PROMS/fmtxml/copywest.bat b/PROMS/fmtxml/copywest.bat deleted file mode 100644 index 5fa37aee..00000000 --- a/PROMS/fmtxml/copywest.bat +++ /dev/null @@ -1,3 +0,0 @@ -copy c:\development\proms\fmtxml\wst1all.xml c:\development\fmtall\ -copy c:\development\proms\fmtxml\wst2all.xml c:\development\fmtall\ -pause \ No newline at end of file diff --git a/PROMS/fmtxml/copywest.bat.bak b/PROMS/fmtxml/copywest.bat.bak deleted file mode 100644 index 560b9e36..00000000 --- a/PROMS/fmtxml/copywest.bat.bak +++ /dev/null @@ -1,3 +0,0 @@ -copy c:\development\proms\fmtxml\wst1.xml c:\development\fmtall\ -copy c:\development\proms\fmtxml\wst2.xml c:\development\fmtall\ -pause \ No newline at end of file diff --git a/PROMS/fmtxml/fmtxml.csproj b/PROMS/fmtxml/fmtxml.csproj deleted file mode 100644 index b762b8ed..00000000 --- a/PROMS/fmtxml/fmtxml.csproj +++ /dev/null @@ -1,138 +0,0 @@ - - - Debug - AnyCPU - {66A20362-1B7E-4F9D-BABA-86E29EA60994} - WinExe - false - fmtxml - fmtxml - "%24/PROMS/fmtxml", URDAAAAA - . - - - MSSCCI:Microsoft Visual SourceSafe - OnOutputUpdated - - - true - full - false - .\bin\Debug\ - DEBUG;TRACE - x86 - - - pdbonly - true - .\bin\Release\ - TRACE - - - - - - - - - - - - - - - - - - - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - PreserveNewest - - - - - - - - - PreserveNewest - - - - - - - PreserveNewest - - - - - - - - - - - - - - - - - - - - - - - Form - - - - - - - - - - - - - - - - - - - Form1.cs - Designer - - - - - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D} - CvtFont - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/fmtxml/fmtxml.sln b/PROMS/fmtxml/fmtxml.sln deleted file mode 100644 index 0970529d..00000000 --- a/PROMS/fmtxml/fmtxml.sln +++ /dev/null @@ -1,55 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "fmtxml", "fmtxml.csproj", "{66A20362-1B7E-4F9D-BABA-86E29EA60994}" - ProjectSection(WebsiteProperties) = preProject - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.Debug = "False" - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "CvtFont", "..\Volian.Utils.Library\CvtFont\CvtFont.csproj", "{652EB5F6-18DD-4F22-9C0B-62EB46613C4D}" - ProjectSection(WebsiteProperties) = preProject - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.Debug = "False" - EndProjectSection -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "XSL Transform", "XSL Transform\XSL Transform.csproj", "{74593BA8-2F88-4FF2-89A6-9FBD358231D7}" - ProjectSection(WebsiteProperties) = preProject - Debug.AspNetCompiler.Debug = "True" - Release.AspNetCompiler.Debug = "False" - EndProjectSection -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 2 - SccProjectUniqueName0 = ..\\Volian.Utils.Library\\CvtFont\\CvtFont.csproj - SccProjectName0 = \u0022$/PROMS/Volian.Utils.Library/CvtFont\u0022,\u0020TRDAAAAA - SccLocalPath0 = ..\\Volian.Utils.Library\\CvtFont - SccProvider0 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - SccProjectUniqueName1 = fmtxml.csproj - SccProjectName1 = \u0022$/PROMS/fmtxml\u0022,\u0020URDAAAAA - SccLocalPath1 = . - SccProvider1 = MSSCCI:Microsoft\u0020Visual\u0020SourceSafe - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {66A20362-1B7E-4F9D-BABA-86E29EA60994}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {66A20362-1B7E-4F9D-BABA-86E29EA60994}.Debug|Any CPU.Build.0 = Debug|Any CPU - {66A20362-1B7E-4F9D-BABA-86E29EA60994}.Release|Any CPU.ActiveCfg = Release|Any CPU - {66A20362-1B7E-4F9D-BABA-86E29EA60994}.Release|Any CPU.Build.0 = Release|Any CPU - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D}.Release|Any CPU.ActiveCfg = Release|Any CPU - {652EB5F6-18DD-4F22-9C0B-62EB46613C4D}.Release|Any CPU.Build.0 = Release|Any CPU - {74593BA8-2F88-4FF2-89A6-9FBD358231D7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {74593BA8-2F88-4FF2-89A6-9FBD358231D7}.Debug|Any CPU.Build.0 = Debug|Any CPU - {74593BA8-2F88-4FF2-89A6-9FBD358231D7}.Release|Any CPU.ActiveCfg = Release|Any CPU - {74593BA8-2F88-4FF2-89A6-9FBD358231D7}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/fmtxml/fnpfsg.svg.bak b/PROMS/fmtxml/fnpfsg.svg.bak deleted file mode 100644 index 050d9d4b..00000000 Binary files a/PROMS/fmtxml/fnpfsg.svg.bak and /dev/null differ diff --git a/PROMS/fmtxml/fnpnmp.svg b/PROMS/fmtxml/fnpnmp.svg deleted file mode 100644 index e8a56701..00000000 Binary files a/PROMS/fmtxml/fnpnmp.svg and /dev/null differ diff --git a/PROMS/fmtxml/hlpfsg.svg b/PROMS/fmtxml/hlpfsg.svg deleted file mode 100644 index 41dc2f79..00000000 Binary files a/PROMS/fmtxml/hlpfsg.svg and /dev/null differ diff --git a/PROMS/fmtxml/metaAndSectTitle.TXT b/PROMS/fmtxml/metaAndSectTitle.TXT deleted file mode 100644 index 49d0fad4..00000000 --- a/PROMS/fmtxml/metaAndSectTitle.TXT +++ /dev/null @@ -1,215 +0,0 @@ ----------------------------------------- -Find 'usemeta' (false by default) - format flag on section -C:\Development\fmtall\BGEALNall.xml(12): -C:\Development\fmtall\BGEEOPall.xml(18): -C:\Development\fmtall\BGEOIall.xml(32): -C:\Development\fmtall\BGESTPall.xml(30): -C:\Development\fmtall\CAL1all.xml': -C:\Development\fmtall\CATall.xml': -C:\Development\fmtall\CATBOXall.xml(17): -C:\Development\fmtall\FNPall.xml(28): -C:\Development\fmtall\GPCAall.xml(17): -C:\Development\fmtall\MCGBOXall.xml(21): -C:\Development\fmtall\RGEBCK_00all.xml(10): -C:\Development\fmtall\WCN1all.xml(25): -C:\Development\fmtall\wst1all.xml(36): ----------------------------------------- -'showsectiontitles' (false by default) format flag on sectionlayout - -C:\Development\fmtall\BGEALNall.xml(32): -C:\Development\fmtall\BGEEOPall.xml(26): -C:\Development\fmtall\BGEOIall.xml(40): -C:\Development\fmtall\BGESTPall.xml(38): -C:\Development\fmtall\CAL1all.xml(39): -C:\Development\fmtall\CATall.xml(25): -C:\Development\fmtall\CATBOXall.xml(25): -C:\Development\fmtall\FNPall.xml(36): -C:\Development\fmtall\GPCAall.xml(25): -C:\Development\fmtall\IP3_08all.xml(19): (and other subformats) -C:\Development\fmtall\MCGall.xml(29): -C:\Development\fmtall\MCGBOXall.xml(29): -C:\Development\fmtall\NSPARPall.xml(62): -C:\Development\fmtall\NSPFCall.xml(29): -C:\Development\fmtall\NSPIFG2all.xml(27): -C:\Development\fmtall\NSPIFGall.xml(27): -C:\Development\fmtall\NSPPEall.xml(32): -C:\Development\fmtall\RGEBCK_00all.xml(16): -C:\Development\fmtall\TPall.xml(34): -C:\Development\fmtall\WCN1all.xml(39): -C:\Development\fmtall\WCN2all.xml(38): -C:\Development\fmtall\WEP2all.xml(35): -C:\Development\fmtall\WEPSAM2all.xml(25): -C:\Development\fmtall\WEPSAMGall.xml(25): -C:\Development\fmtall\WPSall.xml(31): -C:\Development\fmtall\WPSARPall.xml(59): -C:\Development\fmtall\WPSBCK_00all.xml(61): -C:\Development\fmtall\WPSDOMall.xml(40): -C:\Development\fmtall\WPSOPall.xml(56): -C:\Development\fmtall\wst1all.xml(44): -C:\Development\fmtall\wst2all.xml(28): -C:\Development\fmtall\wstalrall.xml(28): - - - ----------------------------------------- -Find 'cancelsection title (true by default) defined on docstyle -C:\Development\fmtall\AEPall.xml(371): -C:\Development\fmtall\AEPAPPRall.xml(227): -C:\Development\fmtall\AEPCHIDall.xml(385): -C:\Development\fmtall\AEPCHID_00all.xml(206): -C:\Development\fmtall\AEPDEVall.xml(234): -C:\Development\fmtall\AEP_00all.xml(206): and other subformats -C:\Development\fmtall\BASEall.xml(505): -C:\Development\fmtall\BGEALNall.xml(371): -C:\Development\fmtall\BGEEOPall.xml(519): -C:\Development\fmtall\BGEEOP_00all.xml(164): -C:\Development\fmtall\BGEOI_00all.xml(314): -C:\Development\fmtall\BGESTPall.xml(590): -C:\Development\fmtall\BGEVLall.xml(328): -C:\Development\fmtall\CAL1all.xml(473): -C:\Development\fmtall\CAL2all.xml(403): -C:\Development\fmtall\CAL2_00all.xml(266): -C:\Development\fmtall\CALBCKall.xml(287): -C:\Development\fmtall\CALOTOall.xml(392): -C:\Development\fmtall\CATADEVall.xml(211): -C:\Development\fmtall\CATall.xml(313): -C:\Development\fmtall\CATBOXall.xml(313): -C:\Development\fmtall\CATDEVall.xml(181): -C:\Development\fmtall\CATEBCKall.xml(237): -C:\Development\fmtall\CPBCK2all.xml(286): -C:\Development\fmtall\CPBCKall.xml(366): -C:\Development\fmtall\CPBCK_00all.xml(188): & other sub -C:\Development\fmtall\CPLAall.xml(258): -C:\Development\fmtall\CPLall.xml(340): -C:\Development\fmtall\CPLRDEVall.xml(173): -C:\Development\fmtall\CPLS2all.xml(333): -C:\Development\fmtall\CPLSall.xml(331): -C:\Development\fmtall\CPLSDEVall.xml(202): -C:\Development\fmtall\CPLSSDDall.xml(319): -C:\Development\fmtall\CPLSSUMall.xml(193): -C:\Development\fmtall\CPL_00all.xml(253): & other sub -C:\Development\fmtall\CWEall.xml(387): -C:\Development\fmtall\CWEDEVall.xml(161): -C:\Development\fmtall\CWERall.xml(371): -C:\Development\fmtall\CWER_00all.xml(199): & other sub -C:\Development\fmtall\EBCKall.xml(231): -C:\Development\fmtall\ELFDEVall.xml(221): -C:\Development\fmtall\ENall.xml(242): -C:\Development\fmtall\ESFDEVall.xml(211): -C:\Development\fmtall\EXCLNall.xml(390): -C:\Development\fmtall\EXCLN_00all.xml(206): & other sub -C:\Development\fmtall\EXEBCKall.xml(270): -C:\Development\fmtall\EXEBCK_00all.xml(163): -C:\Development\fmtall\EXEDEVall.xml(221): -C:\Development\fmtall\FNPall.xml(359): -C:\Development\fmtall\FNPCASall.xml(110): -C:\Development\fmtall\FNPDEVall.xml(303): -C:\Development\fmtall\FNPDEVall.xml(337): -C:\Development\fmtall\FNPEBKall.xml(244): -C:\Development\fmtall\FNP_00all.xml(152): & other sub -C:\Development\fmtall\FPLall.xml(328): -C:\Development\fmtall\FPLBCKall.xml(297): -C:\Development\fmtall\GENall.xml(377): -C:\Development\fmtall\GENDEVall.xml(161): -C:\Development\fmtall\GENPLANall.xml(175): -C:\Development\fmtall\GPCAall.xml(307): -C:\Development\fmtall\GPCall.xml(301): -C:\Development\fmtall\GPCA_00all.xml(179): -C:\Development\fmtall\HLPall.xml(537): -C:\Development\fmtall\HLPDEVall.xml(255): -C:\Development\fmtall\IP2all.xml(254): -C:\Development\fmtall\IP2BCKall.xml(290): -C:\Development\fmtall\IP2DEVall.xml(171): -C:\Development\fmtall\IP2_00all.xml(169): and sub -C:\Development\fmtall\IP3all.xml(192): -C:\Development\fmtall\IP3DEVall.xml(171): -C:\Development\fmtall\IP3DEV_00all.xml(235): -C:\Development\fmtall\IP3_00all.xml(264): & sub -C:\Development\fmtall\MAINGall.xml(154): -C:\Development\fmtall\MCGall.xml(346): -C:\Development\fmtall\MCGBOXall.xml(346): -C:\Development\fmtall\MCGDEVall.xml(181): -C:\Development\fmtall\MCGEBCKall.xml(234): -C:\Development\fmtall\NSPABall.xml(358): -C:\Development\fmtall\NSPAB_00all.xml(206): & sub -C:\Development\fmtall\NSPall.xml(318): -C:\Development\fmtall\NSPARPall.xml(394): -C:\Development\fmtall\NSPARP_00all.xml(271): -C:\Development\fmtall\NSPBCKall.xml(198): -C:\Development\fmtall\NSPDEVall.xml(178): -C:\Development\fmtall\NSPEDEVall.xml(229): -C:\Development\fmtall\NSPFCall.xml(262): -C:\Development\fmtall\NSPIFG2all.xml(289): -C:\Development\fmtall\NSPIFGall.xml(289): -C:\Development\fmtall\NSPIFG_00all.xml(188): -C:\Development\fmtall\NSPPEall.xml(265): -C:\Development\fmtall\NSPSAMall.xml(291): -C:\Development\fmtall\NSPWGall.xml(143): -C:\Development\fmtall\NSP_00all.xml(144): -C:\Development\fmtall\OHLPall.xml(313): -C:\Development\fmtall\OHLPall.xml(360): -C:\Development\fmtall\RGEall.xml(257): -C:\Development\fmtall\RGEBCKall.xml(253): -C:\Development\fmtall\RGEBCK_00all.xml(196): -C:\Development\fmtall\RGEDEVall.xml(177): -C:\Development\fmtall\RGESAM1all.xml(242): -C:\Development\fmtall\RGESAM2all.xml(211): -C:\Development\fmtall\RGESMPEall.xml(176): -C:\Development\fmtall\ROBall.xml(382): -C:\Development\fmtall\ROB_00all.xml(270): & other sub -C:\Development\fmtall\SETDEVall.xml(168): -C:\Development\fmtall\SHEall.xml(413): -C:\Development\fmtall\SHEDEVall.xml(208): -C:\Development\fmtall\SHERVSUall.xml(206): -C:\Development\fmtall\SHESSDall.xml(261): -C:\Development\fmtall\SHESSD_00all.xml(111): -C:\Development\fmtall\TPall.xml(445): -C:\Development\fmtall\TPBCK2all.xml(286): -C:\Development\fmtall\TPBCKall.xml(367): -C:\Development\fmtall\TPBCK_00all.xml(188): & sub -C:\Development\fmtall\TP_00all.xml(173): -C:\Development\fmtall\TUECABNall.xml(351): -C:\Development\fmtall\TUECall.xml(311): -C:\Development\fmtall\TUECDEVall.xml(179): -C:\Development\fmtall\VLNCASall.xml(120): -C:\Development\fmtall\WCN1all.xml(473): -C:\Development\fmtall\WCN1all.xml(504): -C:\Development\fmtall\WCN2all.xml(409): -C:\Development\fmtall\WCNBCKall.xml(309): -C:\Development\fmtall\WCNCKLall.xml(316): -C:\Development\fmtall\WCNCLBall.xml(230): -C:\Development\fmtall\WCNDEVall.xml(198): -C:\Development\fmtall\WCNOFBall.xml(301): -C:\Development\fmtall\WEP2all.xml(529): -C:\Development\fmtall\WEPBCKall.xml(432): -C:\Development\fmtall\WEPENBall.xml(369): -C:\Development\fmtall\WEPENB_00all.xml(181): & other -C:\Development\fmtall\WEPSAM2all.xml(518): -C:\Development\fmtall\WEPSAMGall.xml(375): -C:\Development\fmtall\WPBAall.xml(232): -C:\Development\fmtall\WPBall.xml(237): -C:\Development\fmtall\WPB_20all.xml(340): & sub -C:\Development\fmtall\WPSall.xml(392): -C:\Development\fmtall\WPSARPall.xml(365): -C:\Development\fmtall\WPSARP_00all.xml(244): -C:\Development\fmtall\WPSBCKall.xml(360): -C:\Development\fmtall\WPSBCK_00all.xml(268): -C:\Development\fmtall\WPSDEVall.xml(181): -C:\Development\fmtall\WPSDOMall.xml(321): -C:\Development\fmtall\WPSDOM_00all.xml(421): & sub -C:\Development\fmtall\WPSOPall.xml(450): & sub -C:\Development\fmtall\WPSSAMGall.xml(331): -C:\Development\fmtall\WPS_00all.xml(159): & sub -C:\Development\fmtall\wst1all.xml(604): -C:\Development\fmtall\wst2all.xml(511): -C:\Development\fmtall\wstalrall.xml(415): -C:\Development\fmtall\wstcklall.xml(322): -C:\Development\fmtall\backup\WCN2all.xml(407): - - -Find 'tietabtolevel' (looks like this just determines a different tabstyle, xoffset & width for tabs/text, - used for metasections, uses section number as part of tab) -C:\Development\fmtall\CAL1all.xml(39): -C:\Development\fmtall\RGEBCK_00all.xml(16): -C:\Development\fmtall\WCN1all.xml(39): -C:\Development\fmtall\wst1all.xml(44): \ No newline at end of file diff --git a/PROMS/fmtxml/metaAndSectTitle.TXT.bak b/PROMS/fmtxml/metaAndSectTitle.TXT.bak deleted file mode 100644 index 92bfe483..00000000 --- a/PROMS/fmtxml/metaAndSectTitle.TXT.bak +++ /dev/null @@ -1,207 +0,0 @@ ----------------------------------------- -Find 'usemeta' (false by default) - format flag on section -C:\Development\fmtall\BGEALNall.xml(12): -C:\Development\fmtall\BGEEOPall.xml(18): -C:\Development\fmtall\BGEOIall.xml(32): -C:\Development\fmtall\BGESTPall.xml(30): -C:\Development\fmtall\CAL1all.xml': -C:\Development\fmtall\CATall.xml': -C:\Development\fmtall\CATBOXall.xml(17): -C:\Development\fmtall\FNPall.xml(28): -C:\Development\fmtall\GPCAall.xml(17): -C:\Development\fmtall\MCGBOXall.xml(21): -C:\Development\fmtall\RGEBCK_00all.xml(10): -C:\Development\fmtall\WCN1all.xml(25): -C:\Development\fmtall\wst1all.xml(36): ----------------------------------------- -'showsectiontitles' (false by default) format flag on sectionlayout - -C:\Development\fmtall\BGEALNall.xml(32): -C:\Development\fmtall\BGEEOPall.xml(26): -C:\Development\fmtall\BGEOIall.xml(40): -C:\Development\fmtall\BGESTPall.xml(38): -C:\Development\fmtall\CAL1all.xml(39): -C:\Development\fmtall\CATall.xml(25): -C:\Development\fmtall\CATBOXall.xml(25): -C:\Development\fmtall\FNPall.xml(36): -C:\Development\fmtall\GPCAall.xml(25): -C:\Development\fmtall\IP3_08all.xml(19): (and other subformats) -C:\Development\fmtall\MCGall.xml(29): -C:\Development\fmtall\MCGBOXall.xml(29): -C:\Development\fmtall\NSPARPall.xml(62): -C:\Development\fmtall\NSPFCall.xml(29): -C:\Development\fmtall\NSPIFG2all.xml(27): -C:\Development\fmtall\NSPIFGall.xml(27): -C:\Development\fmtall\NSPPEall.xml(32): -C:\Development\fmtall\RGEBCK_00all.xml(16): -C:\Development\fmtall\TPall.xml(34): -C:\Development\fmtall\WCN1all.xml(39): -C:\Development\fmtall\WCN2all.xml(38): -C:\Development\fmtall\WEP2all.xml(35): -C:\Development\fmtall\WEPSAM2all.xml(25): -C:\Development\fmtall\WEPSAMGall.xml(25): -C:\Development\fmtall\WPSall.xml(31): -C:\Development\fmtall\WPSARPall.xml(59): -C:\Development\fmtall\WPSBCK_00all.xml(61): -C:\Development\fmtall\WPSDOMall.xml(40): -C:\Development\fmtall\WPSOPall.xml(56): -C:\Development\fmtall\wst1all.xml(44): -C:\Development\fmtall\wst2all.xml(28): -C:\Development\fmtall\wstalrall.xml(28): - - - ----------------------------------------- -Find 'cancelsection title (true by default) defined on docstyle -C:\Development\fmtall\AEPall.xml(371): -C:\Development\fmtall\AEPAPPRall.xml(227): -C:\Development\fmtall\AEPCHIDall.xml(385): -C:\Development\fmtall\AEPCHID_00all.xml(206): -C:\Development\fmtall\AEPDEVall.xml(234): -C:\Development\fmtall\AEP_00all.xml(206): and other subformats -C:\Development\fmtall\BASEall.xml(505): -C:\Development\fmtall\BGEALNall.xml(371): -C:\Development\fmtall\BGEEOPall.xml(519): -C:\Development\fmtall\BGEEOP_00all.xml(164): -C:\Development\fmtall\BGEOI_00all.xml(314): -C:\Development\fmtall\BGESTPall.xml(590): -C:\Development\fmtall\BGEVLall.xml(328): -C:\Development\fmtall\CAL1all.xml(473): -C:\Development\fmtall\CAL2all.xml(403): -C:\Development\fmtall\CAL2_00all.xml(266): -C:\Development\fmtall\CALBCKall.xml(287): -C:\Development\fmtall\CALOTOall.xml(392): -C:\Development\fmtall\CATADEVall.xml(211): -C:\Development\fmtall\CATall.xml(313): -C:\Development\fmtall\CATBOXall.xml(313): -C:\Development\fmtall\CATDEVall.xml(181): -C:\Development\fmtall\CATEBCKall.xml(237): -C:\Development\fmtall\CPBCK2all.xml(286): -C:\Development\fmtall\CPBCKall.xml(366): -C:\Development\fmtall\CPBCK_00all.xml(188): & other sub -C:\Development\fmtall\CPLAall.xml(258): -C:\Development\fmtall\CPLall.xml(340): -C:\Development\fmtall\CPLRDEVall.xml(173): -C:\Development\fmtall\CPLS2all.xml(333): -C:\Development\fmtall\CPLSall.xml(331): -C:\Development\fmtall\CPLSDEVall.xml(202): -C:\Development\fmtall\CPLSSDDall.xml(319): -C:\Development\fmtall\CPLSSUMall.xml(193): -C:\Development\fmtall\CPL_00all.xml(253): & other sub -C:\Development\fmtall\CWEall.xml(387): -C:\Development\fmtall\CWEDEVall.xml(161): -C:\Development\fmtall\CWERall.xml(371): -C:\Development\fmtall\CWER_00all.xml(199): & other sub -C:\Development\fmtall\EBCKall.xml(231): -C:\Development\fmtall\ELFDEVall.xml(221): -C:\Development\fmtall\ENall.xml(242): -C:\Development\fmtall\ESFDEVall.xml(211): -C:\Development\fmtall\EXCLNall.xml(390): -C:\Development\fmtall\EXCLN_00all.xml(206): & other sub -C:\Development\fmtall\EXEBCKall.xml(270): -C:\Development\fmtall\EXEBCK_00all.xml(163): -C:\Development\fmtall\EXEDEVall.xml(221): -C:\Development\fmtall\FNPall.xml(359): -C:\Development\fmtall\FNPCASall.xml(110): -C:\Development\fmtall\FNPDEVall.xml(303): -C:\Development\fmtall\FNPDEVall.xml(337): -C:\Development\fmtall\FNPEBKall.xml(244): -C:\Development\fmtall\FNP_00all.xml(152): & other sub -C:\Development\fmtall\FPLall.xml(328): -C:\Development\fmtall\FPLBCKall.xml(297): -C:\Development\fmtall\GENall.xml(377): -C:\Development\fmtall\GENDEVall.xml(161): -C:\Development\fmtall\GENPLANall.xml(175): -C:\Development\fmtall\GPCAall.xml(307): -C:\Development\fmtall\GPCall.xml(301): -C:\Development\fmtall\GPCA_00all.xml(179): -C:\Development\fmtall\HLPall.xml(537): -C:\Development\fmtall\HLPDEVall.xml(255): -C:\Development\fmtall\IP2all.xml(254): -C:\Development\fmtall\IP2BCKall.xml(290): -C:\Development\fmtall\IP2DEVall.xml(171): -C:\Development\fmtall\IP2_00all.xml(169): and sub -C:\Development\fmtall\IP3all.xml(192): -C:\Development\fmtall\IP3DEVall.xml(171): -C:\Development\fmtall\IP3DEV_00all.xml(235): -C:\Development\fmtall\IP3_00all.xml(264): & sub -C:\Development\fmtall\MAINGall.xml(154): -C:\Development\fmtall\MCGall.xml(346): -C:\Development\fmtall\MCGBOXall.xml(346): -C:\Development\fmtall\MCGDEVall.xml(181): -C:\Development\fmtall\MCGEBCKall.xml(234): -C:\Development\fmtall\NSPABall.xml(358): -C:\Development\fmtall\NSPAB_00all.xml(206): & sub -C:\Development\fmtall\NSPall.xml(318): -C:\Development\fmtall\NSPARPall.xml(394): -C:\Development\fmtall\NSPARP_00all.xml(271): -C:\Development\fmtall\NSPBCKall.xml(198): -C:\Development\fmtall\NSPDEVall.xml(178): -C:\Development\fmtall\NSPEDEVall.xml(229): -C:\Development\fmtall\NSPFCall.xml(262): -C:\Development\fmtall\NSPIFG2all.xml(289): -C:\Development\fmtall\NSPIFGall.xml(289): -C:\Development\fmtall\NSPIFG_00all.xml(188): -C:\Development\fmtall\NSPPEall.xml(265): -C:\Development\fmtall\NSPSAMall.xml(291): -C:\Development\fmtall\NSPWGall.xml(143): -C:\Development\fmtall\NSP_00all.xml(144): -C:\Development\fmtall\OHLPall.xml(313): -C:\Development\fmtall\OHLPall.xml(360): -C:\Development\fmtall\RGEall.xml(257): -C:\Development\fmtall\RGEBCKall.xml(253): -C:\Development\fmtall\RGEBCK_00all.xml(196): -C:\Development\fmtall\RGEDEVall.xml(177): -C:\Development\fmtall\RGESAM1all.xml(242): -C:\Development\fmtall\RGESAM2all.xml(211): -C:\Development\fmtall\RGESMPEall.xml(176): -C:\Development\fmtall\ROBall.xml(382): -C:\Development\fmtall\ROB_00all.xml(270): & other sub -C:\Development\fmtall\SETDEVall.xml(168): -C:\Development\fmtall\SHEall.xml(413): -C:\Development\fmtall\SHEDEVall.xml(208): -C:\Development\fmtall\SHERVSUall.xml(206): -C:\Development\fmtall\SHESSDall.xml(261): -C:\Development\fmtall\SHESSD_00all.xml(111): -C:\Development\fmtall\TPall.xml(445): -C:\Development\fmtall\TPBCK2all.xml(286): -C:\Development\fmtall\TPBCKall.xml(367): -C:\Development\fmtall\TPBCK_00all.xml(188): & sub -C:\Development\fmtall\TP_00all.xml(173): -C:\Development\fmtall\TUECABNall.xml(351): -C:\Development\fmtall\TUECall.xml(311): -C:\Development\fmtall\TUECDEVall.xml(179): -C:\Development\fmtall\VLNCASall.xml(120): -C:\Development\fmtall\WCN1all.xml(473): -C:\Development\fmtall\WCN1all.xml(504): -C:\Development\fmtall\WCN2all.xml(409): -C:\Development\fmtall\WCNBCKall.xml(309): -C:\Development\fmtall\WCNCKLall.xml(316): -C:\Development\fmtall\WCNCLBall.xml(230): -C:\Development\fmtall\WCNDEVall.xml(198): -C:\Development\fmtall\WCNOFBall.xml(301): -C:\Development\fmtall\WEP2all.xml(529): -C:\Development\fmtall\WEPBCKall.xml(432): -C:\Development\fmtall\WEPENBall.xml(369): -C:\Development\fmtall\WEPENB_00all.xml(181): & other -C:\Development\fmtall\WEPSAM2all.xml(518): -C:\Development\fmtall\WEPSAMGall.xml(375): -C:\Development\fmtall\WPBAall.xml(232): -C:\Development\fmtall\WPBall.xml(237): -C:\Development\fmtall\WPB_20all.xml(340): & sub -C:\Development\fmtall\WPSall.xml(392): -C:\Development\fmtall\WPSARPall.xml(365): -C:\Development\fmtall\WPSARP_00all.xml(244): -C:\Development\fmtall\WPSBCKall.xml(360): -C:\Development\fmtall\WPSBCK_00all.xml(268): -C:\Development\fmtall\WPSDEVall.xml(181): -C:\Development\fmtall\WPSDOMall.xml(321): -C:\Development\fmtall\WPSDOM_00all.xml(421): & sub -C:\Development\fmtall\WPSOPall.xml(450): & sub -C:\Development\fmtall\WPSSAMGall.xml(331): -C:\Development\fmtall\WPS_00all.xml(159): & sub -C:\Development\fmtall\wst1all.xml(604): -C:\Development\fmtall\wst2all.xml(511): -C:\Development\fmtall\wstalrall.xml(415): -C:\Development\fmtall\wstcklall.xml(322): -C:\Development\fmtall\backup\WCN2all.xml(407): \ No newline at end of file diff --git a/PROMS/fmtxml/removeFmtUseCO.xsl b/PROMS/fmtxml/removeFmtUseCO.xsl deleted file mode 100644 index 1a1fad0f..00000000 --- a/PROMS/fmtxml/removeFmtUseCO.xsl +++ /dev/null @@ -1,18 +0,0 @@ - - - - - - - - - - - - - - - - - - diff --git a/PROMS/fmtxml/removeempty.xsl b/PROMS/fmtxml/removeempty.xsl deleted file mode 100644 index bbdcb1e7..00000000 --- a/PROMS/fmtxml/removeempty.xsl +++ /dev/null @@ -1,17 +0,0 @@ - - - - - - - - - - - - - - - - - diff --git a/PROMS/fmtxml/wst1.svg b/PROMS/fmtxml/wst1.svg deleted file mode 100644 index 6e31a676..00000000 Binary files a/PROMS/fmtxml/wst1.svg and /dev/null differ diff --git a/PROMS/fmtxml/wst2.svg b/PROMS/fmtxml/wst2.svg deleted file mode 100644 index 0d71fe03..00000000 Binary files a/PROMS/fmtxml/wst2.svg and /dev/null differ diff --git a/PROMS/fmtxml/wstDCS.svg b/PROMS/fmtxml/wstDCS.svg deleted file mode 100644 index bdf21ad7..00000000 Binary files a/PROMS/fmtxml/wstDCS.svg and /dev/null differ diff --git a/PROMS/fmtxml/wst_backup/WST2all.xml b/PROMS/fmtxml/wst_backup/WST2all.xml deleted file mode 100644 index 74b480bb..00000000 Binary files a/PROMS/fmtxml/wst_backup/WST2all.xml and /dev/null differ diff --git a/PROMS/fmtxml/wst_backup/wst2.svg b/PROMS/fmtxml/wst_backup/wst2.svg deleted file mode 100644 index 003f44b2..00000000 Binary files a/PROMS/fmtxml/wst_backup/wst2.svg and /dev/null differ diff --git a/PROMS/fmtxml/wstalr.svg b/PROMS/fmtxml/wstalr.svg deleted file mode 100644 index 6e8f93b0..00000000 Binary files a/PROMS/fmtxml/wstalr.svg and /dev/null differ diff --git a/PROMS/fmtxml/wstbck.svg b/PROMS/fmtxml/wstbck.svg deleted file mode 100644 index 4ce6da47..00000000 Binary files a/PROMS/fmtxml/wstbck.svg and /dev/null differ diff --git a/PROMS/fmtxml/wstckl.svg b/PROMS/fmtxml/wstckl.svg deleted file mode 100644 index a14bcf4a..00000000 Binary files a/PROMS/fmtxml/wstckl.svg and /dev/null differ diff --git a/PROMS/proms.sln b/PROMS/proms.sln deleted file mode 100644 index bd631219..00000000 --- a/PROMS/proms.sln +++ /dev/null @@ -1,76 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "DataLoader", "DataLoader\DataLoader.csproj", "{8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.Controls.Library", "Volian.Controls.Library\Volian.Controls.Library.csproj", "{8556527C-6615-487F-8AF7-22EBC3EF0268}" -EndProject -Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Volian.Utils.Library", "Volian.Utils.Library", "{5A0EDD18-70A4-4D5E-93CC-39F4D246352A}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "IniReader", "Volian.Utils.Library\IniReader\IniReader.csproj", "{889E30F7-CFBC-470D-9488-7009C354F9C9}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "MSWord", "Volian.Utils.Library\MSWord\MSWord.csproj", "{2F79D7F9-885E-4441-99F3-045D7612B2E5}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vlnObjectLibrary", "Volian.Utils.Library\vlnObject\vlnObjectLibrary.csproj", "{933269F5-C3AD-423E-88EB-133A7333FD6B}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "vlnServerLibrary", "Volian.Utils.Library\vlnServerLibrary\vlnServerLibrary.csproj", "{F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "veproms", "veproms\veproms.csproj", "{0D8723B4-51DD-486A-A5E1-8D55BB526690}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.CSLA.Library", "Volian.CSLA.Library\Volian.CSLA.Library.csproj", "{3C162BD7-5DBC-45A6-90D8-9391AC8CD0FD}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Volian.Object.Library", "Volian.Object.Library\Volian.Object.Library.csproj", "{B8BED4CF-D60A-4CC0-B652-CEFA04B774B1}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8E239A2B-B38C-4CD5-BA0D-A41A88BD2AEE}.Release|Any CPU.Build.0 = Release|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Debug|Any CPU.Build.0 = Debug|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Release|Any CPU.ActiveCfg = Release|Any CPU - {8556527C-6615-487F-8AF7-22EBC3EF0268}.Release|Any CPU.Build.0 = Release|Any CPU - {889E30F7-CFBC-470D-9488-7009C354F9C9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {889E30F7-CFBC-470D-9488-7009C354F9C9}.Debug|Any CPU.Build.0 = Debug|Any CPU - {889E30F7-CFBC-470D-9488-7009C354F9C9}.Release|Any CPU.ActiveCfg = Release|Any CPU - {889E30F7-CFBC-470D-9488-7009C354F9C9}.Release|Any CPU.Build.0 = Release|Any CPU - {2F79D7F9-885E-4441-99F3-045D7612B2E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2F79D7F9-885E-4441-99F3-045D7612B2E5}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2F79D7F9-885E-4441-99F3-045D7612B2E5}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2F79D7F9-885E-4441-99F3-045D7612B2E5}.Release|Any CPU.Build.0 = Release|Any CPU - {933269F5-C3AD-423E-88EB-133A7333FD6B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {933269F5-C3AD-423E-88EB-133A7333FD6B}.Debug|Any CPU.Build.0 = Debug|Any CPU - {933269F5-C3AD-423E-88EB-133A7333FD6B}.Release|Any CPU.ActiveCfg = Release|Any CPU - {933269F5-C3AD-423E-88EB-133A7333FD6B}.Release|Any CPU.Build.0 = Release|Any CPU - {F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2}.Release|Any CPU.Build.0 = Release|Any CPU - {0D8723B4-51DD-486A-A5E1-8D55BB526690}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {0D8723B4-51DD-486A-A5E1-8D55BB526690}.Debug|Any CPU.Build.0 = Debug|Any CPU - {0D8723B4-51DD-486A-A5E1-8D55BB526690}.Release|Any CPU.ActiveCfg = Release|Any CPU - {0D8723B4-51DD-486A-A5E1-8D55BB526690}.Release|Any CPU.Build.0 = Release|Any CPU - {3C162BD7-5DBC-45A6-90D8-9391AC8CD0FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {3C162BD7-5DBC-45A6-90D8-9391AC8CD0FD}.Debug|Any CPU.Build.0 = Debug|Any CPU - {3C162BD7-5DBC-45A6-90D8-9391AC8CD0FD}.Release|Any CPU.ActiveCfg = Release|Any CPU - {3C162BD7-5DBC-45A6-90D8-9391AC8CD0FD}.Release|Any CPU.Build.0 = Release|Any CPU - {B8BED4CF-D60A-4CC0-B652-CEFA04B774B1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {B8BED4CF-D60A-4CC0-B652-CEFA04B774B1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {B8BED4CF-D60A-4CC0-B652-CEFA04B774B1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {B8BED4CF-D60A-4CC0-B652-CEFA04B774B1}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection - GlobalSection(NestedProjects) = preSolution - {889E30F7-CFBC-470D-9488-7009C354F9C9} = {5A0EDD18-70A4-4D5E-93CC-39F4D246352A} - {2F79D7F9-885E-4441-99F3-045D7612B2E5} = {5A0EDD18-70A4-4D5E-93CC-39F4D246352A} - {933269F5-C3AD-423E-88EB-133A7333FD6B} = {5A0EDD18-70A4-4D5E-93CC-39F4D246352A} - {F9B53DDC-2A2E-4A17-B777-4EC0EE585DE2} = {5A0EDD18-70A4-4D5E-93CC-39F4D246352A} - EndGlobalSection -EndGlobal diff --git a/PROMS/xxxSync/7zip/7z.dll b/PROMS/xxxSync/7zip/7z.dll deleted file mode 100644 index 2bdaed6a..00000000 Binary files a/PROMS/xxxSync/7zip/7z.dll and /dev/null differ diff --git a/PROMS/xxxSync/7zip/7z64.dll b/PROMS/xxxSync/7zip/7z64.dll deleted file mode 100644 index f4f869f9..00000000 Binary files a/PROMS/xxxSync/7zip/7z64.dll and /dev/null differ diff --git a/PROMS/xxxSync/7zip/SevenZipSharp.dll b/PROMS/xxxSync/7zip/SevenZipSharp.dll deleted file mode 100644 index f588f8a2..00000000 Binary files a/PROMS/xxxSync/7zip/SevenZipSharp.dll and /dev/null differ diff --git a/PROMS/xxxSync/ActiveSync_icon_by_alex3305.png b/PROMS/xxxSync/ActiveSync_icon_by_alex3305.png deleted file mode 100644 index 390fe453..00000000 Binary files a/PROMS/xxxSync/ActiveSync_icon_by_alex3305.png and /dev/null differ diff --git a/PROMS/xxxSync/Sync.sln b/PROMS/xxxSync/Sync.sln deleted file mode 100644 index cdbac3a0..00000000 --- a/PROMS/xxxSync/Sync.sln +++ /dev/null @@ -1,37 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 12.00 -# Visual Studio 2013 -VisualStudioVersion = 12.0.30723.0 -MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sync", "Sync\Sync.csproj", "{400F2DAC-E405-4C1B-A388-5120FCF59DF0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SyncMany", "SyncMany\SyncMany.csproj", "{256A41AF-440F-42FE-A9B1-2CE36F1261A2}" -EndProject -Global - GlobalSection(SourceCodeControl) = preSolution - SccNumberOfProjects = 3 - SccLocalPath0 = . - SccProjectUniqueName1 = Sync\\Sync.csproj - SccLocalPath1 = Sync - SccProjectUniqueName2 = SyncMany\\SyncMany.csproj - SccProjectName2 = \u0022$/PROMS/Sync/SyncMany\u0022,\u0020LEEAAAAA - SccLocalPath2 = SyncMany - EndGlobalSection - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.Build.0 = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/xxxSync/Sync/7z.dll b/PROMS/xxxSync/Sync/7z.dll deleted file mode 100644 index 2bdaed6a..00000000 Binary files a/PROMS/xxxSync/Sync/7z.dll and /dev/null differ diff --git a/PROMS/xxxSync/Sync/7z64.dll b/PROMS/xxxSync/Sync/7z64.dll deleted file mode 100644 index f4f869f9..00000000 Binary files a/PROMS/xxxSync/Sync/7z64.dll and /dev/null differ diff --git a/PROMS/xxxSync/Sync/FileCompare.cs b/PROMS/xxxSync/Sync/FileCompare.cs deleted file mode 100644 index 44b9878e..00000000 --- a/PROMS/xxxSync/Sync/FileCompare.cs +++ /dev/null @@ -1,141 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; - -namespace Sync -{ - class FileCompare - { - private FileInfo _Developement; - private FileInfo _SourceSafe; - private bool _ToProcess = false; - public bool ToProcess - { - get { return _ToProcess; } - set { _ToProcess = value; } - } - public string FileName - { - get { return _Developement.FullName; } - } - public Nullable DevModified - { - get - { - if (_Developement.Exists) - return _Developement.LastWriteTime; - return null; - } - } - public Nullable SSModified - { - get - { - if(_SourceSafe.Exists) - return _SourceSafe.LastWriteTime; - return null; - } - } - private bool _Different; - public bool Different - { - get { return _Different; } - } - public string SSFileName - { - get { return _SourceSafe.FullName; } - } - private bool _ReadOnly; - public bool ReadOnly - { - get { return _ReadOnly; } - } - private bool _Merge = false; - public bool Merge - { - get { return _Merge; } - set { _Merge = value; } - } - public FileCompare(FileInfo development, FileInfo sourceSafe) - { - _Developement = development; - _SourceSafe = sourceSafe; - _Different = DifferentContents(development, sourceSafe); - _ToProcess = _Different; - _ReadOnly = (development.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly; - } - public static bool DifferentContents(FileInfo development, FileInfo sourceSafe) - { - string strDev =ReadFile(development); - string strSS = ReadFile(sourceSafe); - return strDev != strSS; - } - private static string ReadFile(FileInfo fi) - { - if (fi.Exists == false) return ""; - TextReader tr = fi.OpenText(); - string retval = tr.ReadToEnd(); - tr.Close(); - return retval; - } - public void MoveToDevelopment() - { - if (_Developement.Exists) - { - _Developement.Attributes &= (_Developement.Attributes ^ FileAttributes.ReadOnly);// Turn-Off ReadOnly Attribute - _Developement.Attributes &= (_Developement.Attributes ^ FileAttributes.Hidden);// Turn-Off Hidden Attribute - } - BuildFolder(_Developement.Directory); - if(_SourceSafe.Exists)_SourceSafe.CopyTo(_Developement.FullName , true); - } - public void MoveDevToMailBox(string devFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_Developement.FullName.Replace(devFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if (fi1.Exists) fi1.IsReadOnly = false; - if(_Developement.Exists)_Developement.CopyTo(fi1.FullName,true); - } - } - public void MoveMailBoxToDev(string devFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_Developement.FullName.Replace(devFolder, mailboxFolder)); - BuildFolder(_Developement.Directory); - if (fi1.Exists) fi1.IsReadOnly = false; - if (_Developement.Exists) fi1.CopyTo(_Developement.FullName, true); - } - } - public void MoveSSToMailBox(string SSFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_SourceSafe.FullName.Replace(SSFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if (fi1.Exists) fi1.IsReadOnly = false; - if (_SourceSafe.Exists) _SourceSafe.CopyTo(fi1.FullName, true); - } - } - public void MoveMailBoxToSS(string SSFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_SourceSafe.FullName.Replace(SSFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if (fi1.Exists) fi1.IsReadOnly = false; - if (_SourceSafe.Exists) fi1.CopyTo(_SourceSafe.FullName, true); - } - } - private static void BuildFolder(DirectoryInfo directoryInfo) - { - if (!directoryInfo.Exists) - { - BuildFolder(directoryInfo.Parent); - directoryInfo.Create(); - } - } - } -} diff --git a/PROMS/xxxSync/Sync/FileCompare.cs.bak b/PROMS/xxxSync/Sync/FileCompare.cs.bak deleted file mode 100644 index 11f24c99..00000000 --- a/PROMS/xxxSync/Sync/FileCompare.cs.bak +++ /dev/null @@ -1,122 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; - -namespace Sync -{ - class FileCompare - { - private FileInfo _Developement; - private FileInfo _SourceSafe; - private bool _ToProcess = false; - public bool ToProcess - { - get { return _ToProcess; } - set { _ToProcess = value; } - } - public string FileName - { - get { return _Developement.FullName; } - } - public Nullable DevModified - { - get - { - if (_Developement.Exists) - return _Developement.LastWriteTime; - return null; - } - } - public Nullable SSModified - { - get - { - if(_SourceSafe.Exists) - return _SourceSafe.LastWriteTime; - return null; - } - } - private bool _Different; - public bool Different - { - get { return _Different; } - } - public string SSFileName - { - get { return _SourceSafe.FullName; } - } - public FileCompare(FileInfo development, FileInfo sourceSafe) - { - _Developement = development; - _SourceSafe = sourceSafe; - _Different = DifferentContents(development, sourceSafe); - _ToProcess = _Different; - } - public static bool DifferentContents(FileInfo development, FileInfo sourceSafe) - { - string strDev =ReadFile(development); - string strSS = ReadFile(sourceSafe); - return strDev != strSS; - } - private static string ReadFile(FileInfo fi) - { - if (fi.Exists == false) return ""; - TextReader tr = fi.OpenText(); - string retval = tr.ReadToEnd(); - tr.Close(); - return retval; - } - public void MoveToDevelopment() - { - //if (_Developement.Attributes & FileAttributes.ReadOnly == FileAttributes.ReadOnly) - if (_Developement.Exists) _Developement.Attributes &= (_Developement.Attributes ^ FileAttributes.ReadOnly); - BuildFolder(_Developement.Directory); - if(_SourceSafe.Exists)_SourceSafe.CopyTo(_Developement.FullName , true); - } - public void MoveDevToMailBox(string devFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_Developement.FullName.Replace(devFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if(_Developement.Exists)_Developement.CopyTo(fi1.FullName,true); - } - } - public void MoveMailBoxToDev(string devFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_Developement.FullName.Replace(devFolder, mailboxFolder)); - BuildFolder(_Developement.Directory); - fi1.CopyTo(_Developement.FullName, true); - } - } - public void MoveSSToMailBox(string SSFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_SourceSafe.FullName.Replace(SSFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if(_SourceSafe.Exists) _SourceSafe.CopyTo(fi1.FullName, true); - } - } - public void MoveMailBoxToSS(string SSFolder, string mailboxFolder) - { - if (ToProcess) - { - FileInfo fi1 = new FileInfo(_SourceSafe.FullName.Replace(SSFolder, mailboxFolder)); - BuildFolder(fi1.Directory); - if(fi1.Exists)fi1.CopyTo(_SourceSafe.FullName, true); - } - } - private static void BuildFolder(DirectoryInfo directoryInfo) - { - if (!directoryInfo.Exists) - { - BuildFolder(directoryInfo.Parent); - directoryInfo.Create(); - } - } - } -} diff --git a/PROMS/xxxSync/Sync/Program.cs b/PROMS/xxxSync/Sync/Program.cs deleted file mode 100644 index 8de31e2d..00000000 --- a/PROMS/xxxSync/Sync/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace Sync -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmSync()); - } - } -} \ No newline at end of file diff --git a/PROMS/xxxSync/Sync/Properties/AssemblyInfo.cs b/PROMS/xxxSync/Sync/Properties/AssemblyInfo.cs deleted file mode 100644 index fc96276e..00000000 --- a/PROMS/xxxSync/Sync/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("Sync")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("Volian Enterprises, Inc.")] -[assembly: AssemblyProduct("Sync")] -[assembly: AssemblyCopyright("Copyright © Volian Enterprises, Inc. 2007")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("5e74e740-f6c7-46e4-a77d-2353564108b6")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/xxxSync/Sync/Properties/Resources.Designer.cs b/PROMS/xxxSync/Sync/Properties/Resources.Designer.cs deleted file mode 100644 index 3b8c4ead..00000000 --- a/PROMS/xxxSync/Sync/Properties/Resources.Designer.cs +++ /dev/null @@ -1,133 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Sync.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("Sync.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon iSync { - get { - object obj = ResourceManager.GetObject("iSync", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Bitmap. - /// - internal static System.Drawing.Bitmap iSync_128x128 { - get { - object obj = ResourceManager.GetObject("iSync_128x128", resourceCulture); - return ((System.Drawing.Bitmap)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon wi0124_16 { - get { - object obj = ResourceManager.GetObject("wi0124_16", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon wi0124_24 { - get { - object obj = ResourceManager.GetObject("wi0124_24", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon wi0124_32 { - get { - object obj = ResourceManager.GetObject("wi0124_32", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon wi0124_48 { - get { - object obj = ResourceManager.GetObject("wi0124_48", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - - /// - /// Looks up a localized resource of type System.Drawing.Icon similar to (Icon). - /// - internal static System.Drawing.Icon wi0124_64 { - get { - object obj = ResourceManager.GetObject("wi0124_64", resourceCulture); - return ((System.Drawing.Icon)(obj)); - } - } - } -} diff --git a/PROMS/xxxSync/Sync/Properties/Resources.resx b/PROMS/xxxSync/Sync/Properties/Resources.resx deleted file mode 100644 index 2979ec09..00000000 --- a/PROMS/xxxSync/Sync/Properties/Resources.resx +++ /dev/null @@ -1,2380 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - AAABAAQAgIAAAAEAIAAoCAEARgAAADAwAAABACAAqCUAAG4IAQAgIAAAAQAgAKgQAAAWLgEAEBAAAAEA - IABoBAAAvj4BACgAAACAAAAAAAEAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAwAA - AAYAAAAIAAAACgAAAA0AAAAPAAAAEAAAABEAAAATAAAAEwAAABQAAAAUAAAAEwAAABMAAAARAAAAEAAA - AA8AAAANAAAACgAAAAgAAAAGAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAAwAAAAYAAAAKAAAADgAAABMAAAAZAAAAIAAAACUAAAArAAAALgAAADMAAAA2AAAAOAAA - ADoAAAA8AAAAPQAAAD0AAAA8AAAAOgAAADgAAAA2AAAAMwAAAC4AAAArAAAAJQAAACAAAAAZAAAAEwAA - AA4AAAAKAAAABgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAACgAAABAAAAAXAAAAHwAAACgAAAAxAAAAOwAA - AEYAAABPAAAAWAAAAGAAAABmAAAAbAAAAHAAAAB0AAAAeAAAAHoAAAB8AAAAfAAAAHoAAAB4AAAAdAAA - AHAAAABsAAAAZgAAAGAAAABYAAAATwAAAEYAAAA7AAAAMQAAACgAAAAfAAAAFwAAABAAAAAKAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAKAAAAEQAA - ABwAAAAnAAAANAAAAEEAAABPAAAAXQAAAGoAAAB4ExMTkiQkJKotLS27NTU1yT09PddGRkbjS0tL6VBQ - UO9UVFT0WVlZ+llZWfpZWVn6WVlZ+lRUVPRQUFDvS0tL6UZGRuM9PT3XNjY2yS0tLbskJCSqExMTkgAA - AHgAAABqAAAAXQAAAE8AAABBAAAANAAAACcAAAAcAAAAEQAAAAoAAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAAwAAAAcAAAAPAAAAGQAAACcAAAA2AAAARwAAAFkAAABqDw8PiBoaGqMwMDDEQ0ND4E1N - Te9WVlb4Xl5e/2RkZP9vb2//fHx8/4iIiP+RkZH/mZmZ/6Ghof+np6f/q6ur/6urq/+np6f/oaGh/5qa - mv+SkpL/iIiI/3x8fP9wcHD/ZGRk/19fX/9XV1f4Tk5O70REROAxMTHEHBwcow8PD4gAAABqAAAAWQAA - AEcAAAA2AAAAJwAAABkAAAAPAAAABwAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAoAAAATAAAAIQAAADEAAABEAAAAWAAA - AG4RERGRLS0tv0FBQd5RUVH1XFxc/2lpaf+AgID/l5eX/6ysrP++vr7/y8vL/9XV1f/d3d3/5ubm/+zs - 7P/x8fH/9vb2//n5+f/6+vr/+vr6//n5+f/29vb/8vLy/+3t7f/m5ub/39/f/9fX1//Nzc3/v7+//66u - rv+Xl5f/goKC/2pqav9dXV3/UVFR9UFBQd4tLS2/ERERkQAAAG4AAABYAAAARAAAADEAAAAhAAAAEwAA - AAoAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AAoAAAAVAAAAJQAAADkAAABPAAAAZg4ODooqKiq7QkJC41VVVfxkZGT/fn5+/52dnf+3t7f/zc3N/93d - 3f/o6Oj/8fHx//f39//6+vr/+/v7//z8/P/8/Pz//v7+//7+/v////////////////////////////// - //////////////7+/v/+/v7//v7+//v7+//6+vr/9PT0/+vr6//f39//z8/P/7i4uP+enp7/gYGB/2Vl - Zf9WVlb8Q0ND4y0tLbsODg6KAAAAZgAAAE8AAAA5AAAAJQAAABUAAAAKAAAABAAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAoAAAAVAAAAJgAAADwAAABVAAAAbxkZGaI7OzvYTk5O9mJi - Yv+BgYH/o6Oj/8HBwf/X19f/5+fn//Hx8f/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//z8 - /P/+/v7//v7+/////////////////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7 - +//7+/v/+vr6//r6+v/39/f/9PT0/+rq6v/a2tr/w8PD/6ampv+EhIT/ZGRk/1BQUPY8PDzYGhoaogAA - AG8AAABVAAAAPAAAACYAAAAVAAAACgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAASAAAAIwAA - ADoAAABVAgICcyMjI7JCQkLlV1dX/3Nzc/+Xl5f/u7u7/9XV1f/l5eX/7e3t//Hx8f/y8vL/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+/v7//v7+//8/Pz//Pz8//7+/v/+/v7///////////////////////// - ///////////////////+/v7//v7+//z8/P/8/Pz/+/v7//v7+//6+vr/+fn5//n5+f/39/f/9vb2//X1 - 9f/x8fH/6Ojo/9nZ2f+9vb3/m5ub/3V1df9ZWVn/Q0ND5SUlJbICAgJzAAAAVQAAADoAAAAjAAAAEgAA - AAcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAANAAAAHAAAADQAAABQAAAAbiQkJLBDQ0PpXFxc/319ff+mpqb/yMjI/9zc - 3P/n5+f/6+vr/+3t7f/w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/6+vr/+/v7//z8 - /P/8/Pz//v7+//7+/v///////////////////////////////////////v7+//7+/v/+/v7//Pz8//z8 - /P/7+/v/+/v7//r6+v/5+fn/9/f3//f39//29vb/9fX1//T09P/y8vL/8PDw/+zs7P/h4eH/zc3N/6mp - qf+BgYH/XV1d/0ZGRukkJCSwAAAAbgAAAFAAAAA0AAAAHAAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAJAAAAFgAAACsAAABGAAAAZRoa - GqFBQUHnW1tb/4CAgP+pqan/y8vL/9/f3//m5ub/6Ojo/+vr6//s7Oz/7e3t/+/v7//x8fH/8vLy//T0 - 9P/19fX/9vb2//f39//5+fn/+vr6//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//7+/v////////////// - ///////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/39/f/9vb2//X1 - 9f/09PT/9PT0//Ly8v/w8PD/7+/v/+3t7f/r6+v/4uLi/9DQ0P+urq7/g4OD/11dXf9DQ0PnHBwcowAA - AGUAAABGAAAAKwAAABYAAAAJAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAEAAAADgAAACAAAAA6AAAAWQ8PD4g0NDTUUlJS/nl5ef+mpqb/x8fH/9vb2//i4uL/5eXl/+fn - 5//o6Oj/6urq/+vr6//t7e3/7+/v//Dw8P/x8fH/8vLy//T09P/19fX/9/f3//f39//5+fn/+vr6//v7 - +//8/Pz//Pz8//7+/v/+/v7//v7+//////////////////////////////////7+/v/+/v7//v7+//z8 - /P/8/Pz/+/v7//r6+v/6+vr/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7e3t/+zs - 7P/r6+v/5+fn/+Dg4P/Nzc3/qamp/3x8fP9VVVX+Nzc31A8PD4gAAABZAAAAOgAAACAAAAAOAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABwAAABQAAAArAAAASQAAAG0mJia4SEhI9Gxs - bP+ZmZn/v7+//9XV1f/f39//4eHh/+Li4v/l5eX/5ubm/+fn5//q6ur/6+vr/+zs7P/t7e3/8PDw//Hx - 8f/y8vL/9PT0//X19f/29vb/9/f3//n5+f/6+vr/+/v7//v7+//8/Pz//v7+//7+/v/+/v7///////// - /////////////////////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/x8fH/8PDw/+/v7//s7Oz/6+vr/+rq6v/o6Oj/5+fn/+Tk5P/b29v/xMTE/52d - nf9wcHD/SUlJ9CgoKLgAAABtAAAASQAAACsAAAAUAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA - AAoAAAAbAAAANQAAAFgRERGPPDw84l5eXv+FhYX/sLCw/83Nzf/Z2dn/3Nzc/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6 - +v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v/////////////////////////////////+/v7//v7+//7+ - /v/8/Pz/+/v7//v7+//6+vr/+fn5//f39//39/f/9vb2//X19f/09PT/8fHx//Dw8P/v7+//7e3t/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Tk5P/f39//0dHR/7a2tv+Kior/YGBg/z4+PuIRERGPAAAAWAAA - ADUAAAAbAAAACgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAANAAAAIQAAAD8AAABkIyMjtElJSfdxcXH/nZ2d/8HB - wf/R0dH/19fX/9ra2v/c3Nz/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq6v/r6+v/7e3t/+/v - 7//w8PD/8fHx//T09P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//7+/v/+/v7//v7+//// - //////////////////////////////7+/v/+/v7//v7+//z8/P/7+/v/+/v7//r6+v/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/x8fH/8PDw/+/v7//t7e3/6+vr/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Hh - 4f/d3d3/2dnZ/8fHx/+jo6P/dHR0/0tLS/ckJCS0AAAAZAAAAD8AAAAhAAAADQAAAAQAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAADwAA - ACUAAABHBgYGdDIyMtFcXFz/g4OD/66urv/Jycn/0dHR/9XV1f/X19f/2dnZ/9vb2//c3Nz/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+vr6//s7Oz/7e3t//Dw8P/x8fH/8vLy//T09P/19fX/9/f3//n5 - +f/6+vr/+vr6//v7+//8/Pz//v7+//7+/v/+/v7//////////////////////////////////v7+//7+ - /v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7e3t/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/9/f3//c3Nz/2dnZ/9DQ0P+0tLT/h4eH/19f - X/80NDTRBgYGdAAAAEcAAAAlAAAADwAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABEAAAApAAAATREREYc+Pj7lZmZm/5KSkv+4uLj/y8vL/9DQ - 0P/T09P/1dXV/9bW1v/X19f/2tra/9vb2//d3d3/39/f/+Hh4f/i4uL/5eXl/+bm5v/o6Oj/6urq/+zs - 7P/t7e3/7+/v//Hx8f/y8vL/9PT0//X19f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+ - /v/////////////////////////////////+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3d3d/9vb2//a2tr/19fX/9TU1P+/v7//l5eX/2pqav8/Pz/lERERhwAAAE0AAAApAAAAEQAA - AAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAATAAAALQAA - AFIYGBiURkZG8XBwcP+cnJz/vLy8/8rKyv/Ozs7/0NDQ/9HR0f/T09P/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/f39//4ODg/+Hh4f/k5OT/5ubm/+fn5//q6ur/6+vr/+zs7P/v7+//8PDw//Hx8f/09PT/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//////////////////////////////////7+ - /v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/93d3f/c3Nz/29vb/9nZ2f/X19f/1tbW/9HR - 0f/ExMT/o6Oj/3R0dP9KSkrxGBgYlAAAAFIAAAAtAAAAEwAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAGAAAAFAAAAC8AAABVGRkZnkpKSvV2dnb/pKSk/76+vv/IyMj/y8vL/83N - zf/Pz8//0NDQ/9HR0f/U1NT/1tbW/9fX1//a2tr/29vb/93d3f/f39//4eHh/+Li4v/l5eX/5ubm/+jo - 6P/q6ur/7Ozs/+3t7f/w8PD/8fHx//Ly8v/19fX/9vb2//f39//5+fn/+vr6//v7+//8/Pz//Pz8//7+ - /v/+/v7//////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7+//6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/y8vL/8fHx/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3Nzc/9vb2//a2tr/19fX/9bW1v/V1dX/09PT/9DQ0P/FxcX/qamp/3t7e/9PT0/1GxsbngAA - AFUAAAAvAAAAFAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABMAAAAwAAAAWCEh - IapRUVH6enp6/6Wlpf++vr7/xcXF/8jIyP/Kysr/y8vL/87Ozv/Pz8//0NDQ/9PT0//V1dX/1tbW/9nZ - 2f/a2tr/3Nzc/93d3f/g4OD/4eHh/+Tk5P/m5ub/5+fn/+rq6v/r6+v/7e3t/+/v7//x8fH/8vLy//X1 - 9f/29vb/+vr6//v7+//8/Pz//v7+//7+/v/+/v7///////////////////////////////////////// - //////////////7+/v/+/v7//Pz8//z8/P/6+vr/+fn5//b29v/19fX/9PT0//Hx8f/w8PD/7+/v/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/39/f/93d3f/c3Nz/2tra/9nZ2f/W1tb/1dXV/9TU - 1P/R0dH/0NDQ/87Ozv/FxcX/rKys/35+fv9TU1P6JCQkqgAAAFgAAAAwAAAAEwAAAAUAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAATAAAALgAAAFclJSWxUlJS/Hx8fP+mpqb/vLy8/8LCwv/FxcX/x8fH/8jI - yP/Kysr/y8vL/87Ozv/Pz8//0dHR/9PT0//V1dX/19fX/9nZ2f/b29v/3Nzc/9/f3//h4eH/4uLi/+Xl - 5f/m5ub/6Ojo/+vr6//s7Oz/8fHx//T09P/39/f/+vr6//r6+v/7+/v/+/v7//z8/P/g4fn/y8v3/6Gf - 8P+Ni+7/d3Tt/3d07f93dO7/d3Tu/3d07v93dO7/jYvw/6Kg8v+ioPL/ubf1/9nY+P/+/v7//Pz8//z8 - /P/7+/v/+vr6//f39//09PT/8fHx//Dw8P/t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4eHh/+Dg - 4P/d3d3/3Nzc/9vb2//Z2dn/19fX/9XV1f/U1NT/09PT/9DQ0P/Pz8//zs7O/8rKyv/ExMT/ra2t/4OD - g/9WVlb8JiYmsQAAAFcAAAAuAAAAEwAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAACsAAABVIyMjrVhY - WP1+fn7/pqam/7u7u//BwcH/wsLC/8PDw//FxcX/x8fH/8nJyf/Kysr/zc3N/87Ozv/Q0ND/0dHR/9TU - 1P/W1tb/19fX/9ra2v/b29v/3d3d/+Dg4P/h4eH/5OTk/+bm5v/q6ur/8PDw//X19f/29vb/9/f3//n5 - +f/a2fT/qKbs/3t55/9RTeH/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm - 5P8wJuP/MCbh/y8m4f8vJuD/LyXe/zIp3v9UUOL/hoPp/7u68P/19fn/+vr6//n5+f/29vb/8vLy/+3t - 7f/r6+v/6urq/+fn5//m5ub/5OTk/+Li4v/g4OD/39/f/9zc3P/b29v/2tra/9fX1//W1tb/1NTU/9PT - 0//Q0ND/z8/P/87Ozv/Ly8v/ysrK/8nJyf/ExMT/rq6u/4SEhP9cXFz9JiYmrQAAAFUAAAArAAAAEAAA - AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAgAAAA0AAAAnAAAATyIiIqVWVlb8fX19/6ampv+4uLj/vb29/7+/v//BwcH/wsLC/8TE - xP/T09P/ysrK/8nJyf/Kysr/zc3N/8/Pz//Q0ND/09PT/9TU1P/W1tb/2dnZ/9ra2v/c3Nz/39/f/+Hh - 4f/n5+f/7+/v//T09P/09PT/9fX1/7e36v97eeD/PznX/ywl1v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m - 3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m - 2v8uJdn/LSXY/zQt1/9qZ+D/tLPr//f39//39/f/9fX1//Hx8f/q6ur/5+fn/+Xl5f/k5OT/4eHh/+Dg - 4P/d3d3/3Nzc/9ra2v/Z2dn/1tbW/9XV1f/T09P/0dHR/8/Pz//Ozs7/zc3N/8rKyv/Jycn/yMjI/8fH - x//BwcH/ra2t/4SEhP9aWlr8IyMjpQAAAE8AAAAnAAAADQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAKAAAAIAAAAEcZGRmVVVVV+Hp6 - ev+jo6P/tbW1/7q6uv+8vLz/vb29/7+/v//BwcH/wsLC/9PU1f/c3Nz/ysrK/8nJyf/Ly8v/zc3N/8/P - z//R0dH/09PT/9XV1f/X19f/2dnZ/9vb2//h4eH/7Ozs//Dw8P/x8fH/zMzr/3V02/80Mc3/KiTN/ysk - 0P8rJNP/LCXW/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm - 5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdj/LCXW/ywk0/8rJNH/OTTS/4uK - 4f/l5fL/9fX1//Ly8v/s7Oz/5eXl/+Li4v/g4OD/39/f/9zc3P/b29v/2dnZ/9bW1v/V1dX/09PT/9HR - 0f/Q0ND/zs7O/83Nzf/Kysr/ycnJ/8jIyP/Hx8f/xMTE/8PDw/++vr7/qamp/4GBgf9YWFj4HR0dlQAA - AEcAAAAgAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABwAAABkAAAA9ERERgExMTPJ1dXX/nZ2d/7Ozs/+3t7f/uLi4/7q6uv+8vLz/vb29/7+/ - v//BwcH/b3Kp/8jJ2P/c3Nz/ysrK/8nJyf/Ly8v/zs7O/8/Pz//R0dH/1NTU/9bW1v/a2tr/5ubm/+3t - 7f/v7+//qarg/1JQz/8oIsb/KSPK/yoky/8qJM3/KyTQ/ysk0/8sJdb/LSXX/y4l2P8uJtr/Libd/y8l - 3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m - 3f8uJtr/LiXZ/y0l1/8sJdb/LCTT/ysk0f8qJM7/KiTM/y4py/9zctn/3+Dv//Ly8v/v7+//5ubm/9/f - 3//d3d3/29vb/9ra2v/X19f/1dXV/9TU1P/R0dH/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/IyMj/x8fH/8TE - xP/Dw8P/wcHB/7+/v/+7u7v/paWl/3t7e/9RUVHyExMTgAAAAD0AAAAZAAAABwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAATAAAANAUFBWVGRkbjb29v/5aW - lv+tra3/s7Oz/7W1tf+3t7f/uLi4/7q6uv+8vLz/vb29/7+/v/9VWaD/Nzqj/9DR3P/d3d3/ysrK/8rK - yv/Ly8v/zs7O/9DQ0P/T09P/2tra/+jo6P/s7Oz/ubnh/0hGyP8mIsD/JyHE/ygixv8pIsn/KiPL/yok - zf8rJND/KyTT/ywl1v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm - 5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1v8sJNP/KyTR/yok - zv8qJMz/KSPK/ygjx/8vKsb/fH3X/+Xm7v/w8PD/6Ojo/93d3f/a2tr/19fX/9bW1v/U1NT/09PT/9DQ - 0P/Pz8//zc3N/8vLy//Jycn/yMjI/8fHx//ExMT/w8PD/8HBwf+/v7//vr6+/7y8vP+2trb/np6e/3V1 - df9JSUnjBQUFZQAAADQAAAATAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAACAAAADgAAACoAAABVNzc3x2dnZ/+Ojo7/qKio/7CwsP+zs7P/tLS0/7W1tf+3t7f/uLi4/7q6 - uv+8vLz/vb29/1BUn/8cHpn/OTyp/83O3P/f39//y8vL/8rKyv/Nzc3/z8/P/93d3f/o6Oj/0NHk/1hZ - yP8lIbv/JiG+/yYiwP8nIcT/KCLG/ykiyf8qI8v/KiTN/ysk0P8rJNP/LCXU/y0l1/8uJdj/Liba/y4m - 3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l - 3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk0/8rJNH/KiTO/yoky/8pI8r/KCPH/ycixP8mIsL/ODbE/6ip - 3v/t7e3/6+vr/9zc3P/W1tb/1dXV/9PT0//Q0ND/z8/P/83Nzf/Ly8v/ycnJ/8jIyP/Hx8f/xMTE/8PD - w//BwcH/v7+//76+vv+9vb3/vLy8/7q6uv+wsLD/k5OT/2xsbP84ODjHAAAAVQAAACoAAAAOAAAAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAkAAAAgAAAASSUlJaRcXFz+goKC/6Gh - of+tra3/r6+v/7Kysv+zs7P/tLS0/7W1tf+2trb/uLi4/7q6uv+8vLz/Rkqa/xwdmf8dHaD/NTiq/8vM - 2v/f39//zc3N/8rKyv/d3d3/5+fn/6Wl2P8vL7r/JCC6/yUhu/8mIb7/JiLA/ychxP8oIsb/KSLJ/yoj - y/8qI83/KyTQ/ysk0/8sJdT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm - 5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdb/LCTT/ysk - 0f8qJM7/KiTL/ykjyv8oIsf/JyHE/yYiwv8mIb7/JSG9/1layP/f3+j/6urq/93d3f/T09P/0dHR/8/P - z//Ozs7/y8vL/8rKyv/IyMj/x8fH/8TExP/Dw8P/wcHB/7+/v/++vr7/vb29/7u7u/+6urr/uLi4/7a2 - tv+pqan/iIiI/2FhYf4mJiakAAAASQAAACAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAFAAAAFgAAADoTExOCUVFR9Xd3d/+ampr/q6ur/62trf+urq7/r6+v/7CwsP+ysrL/tLS0/7W1 - tf+2trb/uLi4/7q6uv9DRpn/HB2a/x0doP8dHaH/MzWr/8fH2v/g4OD/2tra/+Hh4/9rbcX/IiCz/yMg - tv8kILj/JSG7/yYhvv8mIsD/JyHE/ygixv8pIsn/KiPL/yojzf8rJND/KyTT/ywl1P8tJdf/LiXY/y4m - 2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m - 4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1v8sJNP/KyTR/yokzv8qI8v/KSPK/ygix/8nIcT/JiLC/yYh - vv8lIbz/JCC6/zY2vP+/v97/6urq/9/f3//Q0ND/zs7O/8vLy//Kysr/yMjI/8fHx//ExMT/w8PD/8HB - wf+/v7//vr6+/7y8vP+7u7v/urq6/7i4uP+3t7f/tra2/7Ozs/+jo6P/fHx8/1VVVfUVFRWCAAAAOgAA - ABYAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAA4AAAAsAgICXkVFReFtbW3/kJCQ/6Wl - pf+pqan/q6ur/62trf+urq7/r6+v/7CwsP+ysrL/s7Oz/7W1tf+2trb/uLi4/zxAmP8cHZr/HR2f/x0d - of8eHaT/LzCr/8TF2v/g4OL/WFq+/yIfsP8iILP/IyC2/yQguP8lIbv/JiG+/yYiwP8nIcT/KCLF/yki - yf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm - 4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk - 0/8rJNH/KiTO/yojy/8pIsn/KCLH/ychxP8mIsL/JiG+/yUhvP8kILr/IyC2/ygmtv+QktH/5+fn/+Hh - 4f/Ozs7/ysrK/8jIyP/Hx8f/xMTE/8PDw//BwcH/v7+//76+vv+8vLz/u7u7/7q6uv+4uLj/tra2/7W1 - tf+0tLT/s7Oz/66urv+Xl5f/cnJy/0lJSeECAgJeAAAALAAAAA4AAAACAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAHAAAAHwAAAEktLS2yZGRk/4aGhv+fn5//pqam/6ioqP+pqan/q6ur/6ysrP+tra3/r6+v/7Cw - sP+ysrL/s7Oz/7W1tf+2trb/NjiV/xwdm/8dHZ//HR2h/x4dpP8fHab/Ly+t/1dZvf8hH63/Ih+w/yIg - s/8jILb/JCC4/yUhu/8mIb7/JiLA/ychxP8oIsX/KSLJ/yojy/8qI83/KyTQ/ysj0v8sJNT/LSXX/y4l - 2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m - 4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdT/LCTT/ysj0f8qJM7/KiPL/ykiyf8oIsf/JyHE/yYi - wv8mIb7/JSG8/yQguv8jILb/IiC0/yIgsP9iY8L/3d3j/+Dg4P/Kysr/x8fH/8TExP/Dw8P/wcHB/7+/ - v/+9vb3/vLy8/7u7u/+4uLj/t7e3/7a2tv+1tbX/tLS0/7Ozs/+ysrL/r6+v/6enp/+Ojo7/ampq/zAw - MLIAAABJAAAAHwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABMAAAA1FBQUfVVVVfd5eXn/l5eX/6Sk - pP+mpqb/p6en/6ioqP+pqan/q6ur/6ysrP+tra3/rq6u/6+vr/+ysrL/s7Oz/7S0tP8zN5X/HB2c/x0d - n/8dHaH/Hh2k/x8dpv8fHqf/IB6r/yEerf8iH7D/IiCz/yMhtf8kILj/JSG7/yYhvv8mIsD/JyHD/ygi - xf8pIsn/KiPL/yojzf8rJND/KyPS/ywk1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm - 4P8wJt7/LyXe/y8l3v8vJd7/LyXe/zAm3v8wJt//Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl - 1P8sJNP/KyPR/yojzv8qI8v/KSLJ/ygixv8nIcT/JiLC/yYhvv8lIbz/JCC4/yMgtv8iILT/IiCw/yEf - rv9AQ7b/0NDe/93d3f/Hx8f/w8PD/8HBwf+/v7//vb29/7y8vP+7u7v/uLi4/7e3t/+2trb/tbW1/7S0 - tP+ysrL/sLCw/6+vr/+urq7/rKys/6CgoP+AgID/W1tb9xQUFH0AAAA2AAAAEwAAAAMAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJAAAAFJAQEDVbW1t/46Ojv+enp7/o6Oj/6SkpP+lpaX/pqam/6enp/+oqKj/qamp/6ur - q/+tra3/rq6u/6+vr/+wsLD/s7Oz/ystkv8cHZv/HB2f/x0dof8dHaT/Hh2l/x8ep/8gHqv/IB6t/yEe - sP8iH7P/IyC1/yMguP8kIbv/JSG+/yYiwP8mIcP/JyLF/ykiyf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0k - 1/8uJdj/Liba/y4m2v8uJdj/LibT/y0l0f8tJcz/LSXJ/y0lw/8tJcP/LSXD/y0lw/8tJcP/LSXE/y0l - yf8tJc3/LSXR/y4l1v8uJtr/Liba/y4l2f8tJdf/LCXU/ywk0/8rI9H/KiPO/yojy/8pIsn/KCLG/ych - xP8mIsL/JiG+/yUhvP8kILj/IyC2/yIgtP8iILD/IR+u/yAgq/84ObL/y8za/9vb2//Dw8P/vr6+/729 - vf+8vLz/urq6/7i4uP+3t7f/tbW1/7S0tP+zs7P/srKy/7CwsP+vr6//rq6u/62trf+srKz/p6en/5SU - lP9ycnL/RERE1QAAAFIAAAAkAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABUAAAA6IiIilV9fX/5+fn7/mZmZ/5+f - n/+hoaH/o6Oj/6SkpP+lpaX/paWl/6enp/+oqKj/qamp/6urq/+srKz/ra2t/6+vr/+wsLD/KCmS/xwd - nP8cHZ//HB2h/x0dpP8eHaX/Hx6n/yAeq/8gHq3/IR6w/yIfsv8jILX/IyC4/yQgu/8lIb7/JiK//yYh - w/8nIsX/KCLJ/ykjy/8qI83/KiTO/ysj0v8sJNT/LSTW/y0k0/8tJM7/LCTG/yskvP8qI7L/KSSq/ykj - ov8oI57/KCOa/ygjmv8oI5r/KCOa/ygjmv8oI5r/KCOc/ygjo/8qJKz/KyS3/ywkxP8sJcz/LSTS/y0l - 1P8sJNT/LCPS/ysj0f8qI87/KiPL/ykiyf8oIsb/JyHE/yYiwv8mIb7/JSG8/yQguP8jILb/IiC0/yIg - sP8hH67/IB+r/yAeqf80Nq3/ysvZ/9bW1v++vr7/u7u7/7q6uv+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+wsLD/rq6u/62trf+srKz/q6ur/6urq/+oqKj/oaGh/4aGhv9kZGT+IyMjlQAAADoAAAAVAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJgICAlhLS0vlcXFx/4+Pj/+dnZ3/n5+f/5+fn/+goKD/oaGh/6Ojo/+kpKT/paWl/6am - pv+np6f/qKio/6urq/+srKz/ra2t/6+vr/8jI4//HB2c/xwdn/8cHaH/HR2j/x4dpf8fHqf/IB6r/yAe - rf8hHq//Ih+y/yMgtf8jILj/JCC7/yUhvv8mIr//JiHD/ycixf8oIsn/KSPL/yojzf8qJM7/KyTQ/ysk - zv8rJMX/KiO4/ygjq/8nIp7/JyKW/yYikf8mIoz/JiKK/yomjP9IRZ7/SUaf/0lGn/9JRp//SUaf/0hF - nv8oJIn/JiKL/yYhjv8nIpT/KCKc/ygjqP8qI7X/KyPD/yslzP8sI9H/KyPR/yojzv8qI8v/KSLJ/ygi - xv8nIcP/JiLC/yYhvv8lIbz/JCC4/yMhtf8iILT/Ih+w/yEerv8gH6v/IB6p/x8dpv84Oq3/0NHZ/87O - zv+6urr/t7e3/7a2tv+1tbX/s7Oz/7Kysv+wsLD/r6+v/66urv+tra3/rKys/6urq/+pqan/qKio/6en - p/+lpaX/l5eX/3d3d/9PT0/lAgICWAAAACYAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABUAAAA8KCgon2VlZf+CgoL/l5eX/5yc - nP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ghof+jo6P/pKSk/6Wlpf+np6f/qKio/6mpqf+rq6v/r6+v/xwe - jf8cHZz/HB2f/xwdof8dHaP/Hh2l/x8ep/8gHqv/IB6t/yEer/8iH7L/IyC1/yMguP8kILv/JSC9/yYh - v/8mIcP/JyLF/ygiyf8pI8v/KiPM/yojyf8pIsL/KCK0/yYhov8mIZT/JSGL/yUgh/9RT6D/hIO9/7Cv - 1P/e3e3//Pz8//7+/v///////////////////////v7+//z8/P/V1ej/rq3T/11aqP8qJ4v/JSGL/yYh - kv8mIp//KCOy/yojwv8rI8z/KiPN/yojy/8pIsn/KCLG/yYhw/8mIsD/JSG+/yQhvP8jILj/IyC1/yIf - s/8hH7D/IB6u/yAfq/8gHqn/Hx2m/x4dpP9ESK7/1tbY/8HBwf+2trb/tLS0/7Ozs/+ysrL/sLCw/6+v - r/+tra3/rKys/6urq/+pqan/qKio/6ioqP+np6f/pqam/6Wlpf+fn5//iIiI/2tra/8rKyugAAAAPAAA - ABUAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJQICAlhMTEzmcnJy/46Ojv+ZmZn/m5ub/5ycnP+cnJz/nZ2d/56env+fn5//oKCg/6Gh - of+jo6P/pKSk/6Wlpf+mpqb/p6en/6ioqP+srK3/GxyM/xwcnP8cHZ//HB2g/x0do/8eHaX/Hx6n/yAe - q/8gHqz/IR6v/yIfsv8jILX/IyC4/yQgu/8lIL3/JiG//yYhw/8nIcX/KCLH/ygixf8oIr7/JyKv/yUh - n/8kII//Ix+H/0RClf+QkMD/3t3o//X19f/39/f/+vr6//v7+//8/Pz//v7+//////////////////7+ - /v/+/v7//Pz8//v7+//5+fn/9vb2/+fn7v+dnMf/VlSg/yYih/8kII//JiGi/ygitf8pIsT/KSPJ/ygi - yf8nIsb/JiHD/yYiwP8lIb7/JCC8/yMguP8jILX/Ih+z/yEfsP8gHq7/IB+r/x8eqf8eHaX/HR2k/x0d - ov9maLX/1tbW/7a2tv+ysrL/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qamp/6ioqP+np6f/pqam/6Wl - pf+kpKT/pKSk/6Ghof+VlZX/eHh4/1BQUOYCAgJYAAAAJQAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABMAAAA5KSkpnmVlZf+BgYH/lJSU/5mZ - mf+ampr/mpqa/5ubm/+cnJz/nZ2d/52dnf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+lpaX/p6en/6Kj - qf8bHI3/HByc/xwcnf8cHaD/HR2j/x4dpf8fHqf/IB6q/yAerP8hHq//Ih+y/yMgtf8jILj/JCC6/yUg - vf8mIb//JiHD/ychwv8nIrz/JiKu/yUfnP8jH43/Ix+F/0VElv+np8n/6+vr/+3t7f/x8fH/9PT0//b2 - 9v/5+fn/+/v7//z8/P/+/v7//////////////////v7+//7+/v/8/Pz/+vr6//n5+f/29vb/9PT0//Hx - 8f/v7+//ysrb/05Om/8jH4b/JCCT/yYhqf8oIrz/KCLG/ycixv8mIcP/JiLA/yUgvf8kILz/IyC4/yMg - tf8iH7P/IR+v/yAerv8gH6v/Hx6p/x4dpf8dHaP/HR2i/xwdnf+focb/y8vL/7CwsP+vr6//ra2t/6ys - rP+rq6v/qamp/6ioqP+np6f/pqam/6Wlpf+kpKT/pKSk/6Ojo/+hoaH/oKCg/52dnf+Hh4f/ampq/y0t - LZ4AAAA5AAAAEwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAHAAAAIQMDA1JJSUngcXFx/4qKiv+VlZX/lpaW/5eXl/+ZmZn/mpqa/5qamv+bm5v/nJyc/52d - nf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+lpaX/nJ2o/xsbjf8cHJz/HByd/xwcoP8dHKP/Hh2l/x8d - p/8gHqr/IB6s/yEer/8iH7L/IyC1/yMgt/8kILr/JSC9/yYhv/8mIcD/JiC1/yMfnv8iHov/IR6C/z08 - jv+iocD/4uLi/+bm5v/q6ur/7e3t//Dw8P/09PT/9vb2//n5+f/7+/v//Pz8//7+/v////////////// - ///+/v7//v7+//v7+//6+vr/9/f3//X19f/y8vL/8PDw/+3t7f/q6ur/5+fn/5mYv/8xMIn/Ih6J/yUg - n/8mIbf/JyLD/yYhw/8mIcD/JSC9/yQgu/8jILj/IyC1/yIfs/8hH6//IB6t/yAfq/8fHqn/Hh2l/x0d - o/8cHaH/HB2f/ygroP/HxtH/vb29/62trf+rq6v/qamp/6ioqP+np6f/pqam/6ampv+lpaX/pKSk/6Oj - o/+hoaH/oKCg/6CgoP+fn5//nZ2d/5KSkv93d3f/TU1N4AMDA1IAAAAhAAAABwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA8AAAAxISEhi2RkZP98fHz/kJCQ/5SU - lP+VlZX/lpaW/5aWlv+Xl5f/mZmZ/5qamv+ampr/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Oj - o/+YmKX/GxuN/xwcm/8cHJ3/HByg/x0co/8eHKX/Hx2m/yAdqv8gHaz/IR6v/yIfsv8iILT/IyC3/yQg - uv8lIL3/JiG//yYhv/8kIKz/IR2P/zQyh/+Li7L/2tra/93d3f/h4eH/5eXl/+jo6P/s7Oz/7+/v//Ly - 8v/19fX/9/f3//r6+v/8/Pz//v7+//////////////////7+/v/8/Pz/+/v7//r6+v/39/f/9fX1//Hx - 8f/v7+//7Ozs/+jo6P/l5eX/4uLi/9TU2v9gYKD/IR+F/yMfmv8lIbP/JiG+/yYhwP8lIL3/JCC7/yMg - uP8jILX/Ih+z/yEfr/8gHq3/IB+r/x8eqf8eHaX/HR2j/xwdof8cHZ//HB2c/0tPqf/T09P/r6+v/6mp - qf+oqKj/p6en/6ampv+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//np6e/52dnf+dnZ3/l5eX/4SE - hP9paWn/IiIiiwAAADEAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAEAAAAGgAAAEVDQ0PPbm5u/4aGhv+SkpL/k5OT/5SUlP+UlJT/lZWV/5aWlv+Wlpb/l5eX/5mZ - mf+ampr/mpqa/5ubm/+cnJz/nZ2d/56env+fn5//oKCg/42NoP8bG47/HByb/xwcnf8cHKD/HRyj/x0c - pP8eHab/Hx2q/yAdrP8gHa//IR6y/yIftP8jILf/IyC6/yUgvf8mIb//JiHA/ysmt/+EhL//y8vO/9TU - 1P/X19f/29vb/9/f3//i4uL/5ubm/+rq6v/t7e3/8fHx//X19f/39/f/+vr6//z8/P/+/v7///////// - /////////v7+//z8/P/7+/v/+fn5//b29v/09PT/8fHx/+3t7f/q6ur/5+fn/+Tk5P/g4OD/3Nzc/9ra - 2v97e6v/IB2C/yIelv8kIK//JiG8/yUgvf8kILv/IyC3/yMgtf8iH7P/IR+v/yAerf8gH6r/Hx6p/x4d - pf8dHaP/HB2h/xwdn/8cHJz/Gxua/36Ct//CwsL/p6en/6ampv+lpaX/pKSk/6Ojo/+hoaH/oKCg/5+f - n/+fn5//np6e/52dnf+dnZ3/nJyc/5ubm/+ampr/jo6O/3R0dP9ISEjPAAAARQAAABoAAAAEAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAnExMTa1paWvZ3d3f/i4uL/5GR - kf+SkpL/kpKS/5OTk/+Tk5P/lJSU/5WVlf+Wlpb/lpaW/5eXl/+ZmZn/mpqa/5qamv+bm5v/nJyc/52d - nf+enp7/iIqf/xobjv8bHJv/HByd/xwcoP8dHKP/HRyk/x4dpv8fHar/IB2s/yAdr/8hHrD/Ih+0/yMf - t/8jH7r/JCC8/yUhvv8mIcL/WlnM/+Xl5f/Z2dn/0dHR/9XV1f/Z2dn/3Nzc/+Hh4f/l5eX/6Ojo/+zs - 7P/w8PD/9PT0//b29v/6+vr/+/v7//7+/v/////////////////+/v7//Pz8//v7+//5+fn/9vb2//Ly - 8v/w8PD/7Ozs/+jo6P/l5eX/4eHh/93d3f/b29v/19fX/9TU1P+EhK3/IB6B/yEelf8kIK//JSC7/yQg - u/8jILf/IyC1/yIfs/8hH6//IB6t/yAeqv8fHqn/Hh2l/x0co/8cHaH/HByd/xwcnP8bG5r/ICOZ/7q7 - yf+tra3/pKSk/6Ojo/+hoaH/oKCg/5+fn/+fn5//np6e/52dnf+cnJz/nJyc/5ubm/+ampr/mpqa/5mZ - mf+Tk5P/fX19/19fX/YTExNrAAAAJwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAEgAAADczMzOoaWlp/4GBgf+Ojo7/kJCQ/5GRkf+RkZH/kpKS/5KSkv+Tk5P/k5OT/5SU - lP+VlZX/lZWV/5aWlv+Xl5f/mZmZ/5qamv+ampr/m5ub/5ycnP+Dg53/GhuP/xscm/8cHJ3/HByg/x0c - ov8dHKT/Hh2m/x8dqv8gHaz/IB2u/yEesP8iH7T/Ix+3/yMfuv8kH7z/JSC+/yYhwv8mIcT/fHvU/+Xl - 5f/a2tr/09PT/9bW1v/a2tr/39/f/+Li4v/n5+f/6+vr/+/v7//y8vL/9vb2//n5+f/7+/v//v7+//// - //////////////7+/v/8/Pz/+vr6//f39//19fX/8fHx/+/v7//r6+v/5+fn/+Tk5P/g4OD/3Nzc/9nZ - 2f/V1dX/0dHR/87Ozv+Ojq//IyCC/yEel/8kIK//JCC4/yMgt/8iILT/Ih+z/yEer/8gHa3/IB6q/x8d - p/8eHKX/HRyj/xwdof8cHJ3/HByb/xsbmv8aG5j/VVip/7+/v/+hoaH/oKCg/5+fn/+fn5//np6e/52d - nf+cnJz/nJyc/5ubm/+ampr/mpqa/5mZmf+Xl5f/l5eX/5SUlP+Hh4f/bm5u/zY2NqgAAAA3AAAAEgAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAASUxMTN1xcXH/hoaG/4yM - jP+Pj4//j4+P/5CQkP+QkJD/kZGR/5GRkf+SkpL/kpKS/5OTk/+UlJT/lJSU/5WVlf+Wlpb/l5eX/5mZ - mf+ampr/mpqa/25xjv8XFor/GBeW/xgXmP8YGJn/GRmc/xoYn/8bGaH/Gxmk/xwapv8dGar/Hhqs/x8c - rv8gG7L/IBy0/yEct/8iHrr/Ix29/yQev/8lH8P/d3fF/8vLy//Pz8//1NTU/9fX1//c3Nz/4eHh/+Xl - 5f/q6ur/7e3t//Hx8f/19fX/+fn5//v7+//+/v7//////////////////v7+//z8/P/6+vr/9/f3//T0 - 9P/w8PD/7Ozs/+jo6P/l5eX/4eHh/93d3f/a2tr/1dXV/9HR0f/Ozs7/y8vL/8jIyP+Fhaj/HhuB/yEd - nP8jILP/IyC3/yIftP8hHrL/IB6v/yAdrf8fHqr/Hh2n/x4cpf8dHKP/HB2h/xwcnf8cHJv/GxuZ/xob - mP8cHJf/p6rB/6Wlpf+enp7/np6e/52dnf+cnJz/m5ub/5ubm/+ampr/mZmZ/5mZmf+Xl5f/l5eX/5aW - lv+VlZX/lJSU/4uLi/92dnb/UFBQ3QAAAEkAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAACQAAACcWFhZwYGBg+3l5ef+IiIj/jIyM/46Ojv+Ojo7/j4+P/4+Pj/+Pj4//kJCQ/5CQ - kP+RkZH/kpKS/5KSkv+Tk5P/k5OT/5SUlP+VlZX/lpaW/5eXl/+ZmZn/a2yM/xYWiv8YF5X/GBeX/xgX - mf8ZF5z/Ghif/xsZof8bGaP/HBql/x0Zqf8dGqv/Hhuu/yAbsv8gHLT/IRy3/yIduv8jHb3/Ix6//yUe - w/8mH8X/eXjG/83Nzf/Q0ND/1dXV/9ra2v/f39//4uLi/+fn5//s7Oz/8PDw//T09P/39/f/+/v7//z8 - /P/////////////////+/v7/+/v7//n5+f/29vb/8vLy/+/v7//r6+v/5+fn/+Li4v/f39//29vb/9bW - 1v/T09P/z8/P/8vLy//IyMj/xMTE/8HBwf9naJr/HhuF/yEeo/8iH7P/Ih+0/yEesv8gHq//IB2t/x8e - qv8eHaf/HRyk/x0co/8cHaH/HByd/xscm/8aG5n/GhuY/xoal/9MUKL/tra2/52dnf+cnJz/m5ub/5qa - mv+ampr/mZmZ/5eXl/+Xl5f/lpaW/5aWlv+VlZX/lZWV/5SUlP+UlJT/j4+P/35+fv9kZGT7GRkZcAAA - ACcAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAQAAAAMzk5Oapra2v/gICA/4qK - iv+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//j4+P/5CQkP+QkJD/kZGR/5GRkf+SkpL/k5OT/5OT - k/+UlJT/lZWV/5aWlv9iZIr/FhaK/xcXlf8YF5f/GBeZ/xkYnP8ZF53/Gxig/xsYo/8cGaX/HRmp/x0a - q/8eG67/Hxqy/yAbtP8hHLf/Ih26/yMcvf8jHb//JB7D/yYfxf8nH8f/fn3H/87Ozv/R0dH/1tbW/9vb - 2//g4OD/5eXl/+rq6v/v7+//8vLy//f39//6+vr//Pz8//7+/v////////////7+/v/7+/v/+fn5//X1 - 9f/x8fH/7e3t/+jo6P/l5eX/4ODg/9zc3P/X19f/1NTU/8/Pz//Ly8v/yMjI/8TExP/BwcH/vr6+/7u7 - u/8/Poj/HxyN/yEfqv8iH7L/IR6y/yAerv8gHaz/Hx6q/x4dp/8dHKT/HRyi/xwdof8cHJ3/Gxyb/xob - mf8aG5f/GhuW/xock/+vscD/nZ2d/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5WVlf+VlZX/lJSU/5SU - lP+Tk5P/k5OT/5KSkv+RkZH/hoaG/3BwcP88PDyqAAAANAAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAwAAABcAAABBSkpK0nFxcf+Dg4P/ioqK/4qKiv+Kior/i4uL/4uLi/+Li4v/jIyM/4yM - jP+Ojo7/jo6O/4+Pj/+Pj4//kJCQ/5CQkP+RkZH/kpKS/5KSkv+Tk5P/lJSU/11ghv8WFoj/FxeR/xcX - kf8XF5P/GBeV/xkXl/8aGJn/Gxec/xsYn/8cGaL/HRqj/x0apf8eGqn/Hxur/yAbrv8gHK//Ihyy/yId - s/8jHrb/JB63/yUduv8mH73/goHE/8/Pz//U1NT/2dnZ/93d3f/i4uL/6Ojo/+3t7f/x8fH/9vb2//r6 - +v/8/Pz//v7+/////////////v7+//v7+//39/f/9PT0//Dw8P/r6+v/5+fn/+Li4v/d3d3/2dnZ/9XV - 1f/Q0ND/zc3N/8jIyP/ExMT/wcHB/729vf+7u7v/t7e3/6Skr/8lJH//IB2Z/yEerv8hHrL/IB6u/yAd - rP8fHqr/Hh2n/x0cpP8dHKL/HB2g/xwcnf8bHJv/GhuZ/xobl/8aG5b/GRuV/19jpv+np6f/l5eX/5eX - l/+Wlpb/lZWV/5WVlf+UlJT/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5GRkf+JiYn/dnZ2/01N - TdMAAABBAAAAFwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAHxAQEF5ZWVnwdXV1/4SE - hP+JiYn/iYmJ/4mJif+Kior/ioqK/4qKiv+Li4v/i4uL/4uLi/+MjIz/jIyM/46Ojv+Ojo7/j4+P/4+P - j/+QkJD/kZGR/5GRkf+SkpL/V1mA/xUWeP8WFn7/FhZ9/xYWff8XF37/GBeB/xgXgv8YF4X/GReG/xoY - if8bGYr/GxqM/xwZjv8dGpD/HRqU/x4blf8fGpT/IBuU/yAclv8gHJj/IhyZ/yIem/8jHZ//goK4/9DQ - 0P/V1dX/2tra/+Dg4P/m5ub/6+vr//Dw8P/19fX/+fn5//z8/P/+/v7////////////8/Pz/+vr6//b2 - 9v/y8vL/7+/v/+rq6v/l5eX/4ODg/9vb2//W1tb/0dHR/83Nzf/Jycn/xMTE/8HBwf+9vb3/urq6/7e3 - t/+0tLT/srKy/3N1mP8cGoX/IR6k/yEesP8gHq7/IB2s/x8dqf8eHaf/HRyk/x0bov8cHKD/HBud/xsb - m/8aGpn/GhqX/xoalv8ZGpT/ISSS/7Cytf+VlZX/lZWV/5SUlP+UlJT/k5OT/5OTk/+SkpL/kpKS/5GR - kf+RkZH/kJCQ/5CQkP+QkJD/j4+P/4qKiv97e3v/XFxc8RAQEF4AAAAgAAAABgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAoAAAApJiYmhGhoaP97e3v/hYWF/4iIiP+IiIj/iIiI/4iIiP+JiYn/iYmJ/4mJ - if+Kior/ioqK/4uLi/+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//kJCQ/5CQkP9QUnj/FBVh/xQW - ZP8VFmT/FRVl/xYWZv8WFmf/FhZp/xcWa/8XFmz/GBdu/xgXb/8YGHH/Ghhz/xsYdf8bGHf/Gxp3/xwa - eP8dGnj/HRp6/x0bfP8fG33/IByA/yAcgv8iHoX/iomx/9HR0f/X19f/3Nzc/+Li4v/o6Oj/7+/v//T0 - 9P/39/f/+/v7//7+/v////////////z8/P/6+vr/9vb2//Hx8f/s7Oz/5+fn/+Hh4f/c3Nz/19fX/9PT - 0//Ozs7/ycnJ/8TExP/BwcH/vb29/7q6uv+2trb/s7Oz/7CwsP+urq7/rKys/zU2g/8eG5T/IR6q/yAd - rv8gHaz/Hx2p/x4cpv8dG6T/HRui/xwcoP8cG5z/Gxub/xoamf8aGpf/GhqW/xkalP8YGpH/h4qw/5WV - lf+Tk5P/k5OT/5KSkv+SkpL/kZGR/5GRkf+QkJD/kJCQ/4+Pj/+Pj4//j4+P/46Ojv+Ojo7/i4uL/4CA - gP9sbGz/JiYmhAAAACkAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADwAAADI7OzuwbW1t/35+ - fv+FhYX/h4eH/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/ioqK/4uL - i/+Li4v/jIyM/4yMjP+Ojo7/jo6O/1pbef8mKWP/Jylk/zM1av8/QXD/P0Jx/0BDcv9BQ3P/QkN1/0ND - dv9ERHj/RUV5/0ZGe/9HR33/R0l+/0hKgf9KS4L/Y2KO/2pqkv9ra5X/bW2X/3Bwmv9ycpz/dnWh/3l5 - pP9/fqr/yMjK/9PT0//Z2dn/4ODg/+bm5v/s7Oz/8vLy//f39//7+/v//v7+///////+/v7//Pz8//n5 - +f/09PT/7+/v/+rq6v/k5OT/39/f/9nZ2f/T09P/zs7O/8nJyf/ExMT/v7+//7y8vP+4uLj/tbW1/7Ky - sv+vr6//ra2t/6urq/+oqKj/hYaa/xwagv8gHaH/IB2t/x8drP8fHan/Hhym/x0bpP8dG6L/HByg/xwb - nP8bG5v/GhqZ/xoal/8aGpb/GRqU/xgak/9KTpv/np6e/5GRkf+RkZH/kJCQ/5CQkP+QkJD/j4+P/4+P - j/+Ojo7/jo6O/46Ojv+MjIz/jIyM/4yMjP+Kior/hISE/3Fxcf8+Pj6wAAAAMgAAAA8AAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAUAAAAPE1NTdVxcXH/gICA/4aGhv+Ghob/hoaG/4aGhv+Ghob/h4eH/4eH - h/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/i4uL/4uLi/+MjIz/jIyM/46O - jv+Pj4//j4+P/5CQkP+RkZH/kpKS/5OTk/+Tk5P/lZWV/5aWlv+Xl5f/mpqa/5ubm/+dnZ3/n5+f/6Gh - of+kpKT/pqam/6mpqf+tra3/sLCw/7S0tP+4uLj/vb29/8PDw//IyMj/z8/P/9XV1f/c3Nz/4uLi/+rq - 6v/w8PD/9vb2//v7+//+/v7///////7+/v/7+/v/9/f3//Ly8v/t7e3/5+fn/+Hh4f/b29v/1dXV/8/P - z//Jycn/xMTE/7+/v/+8vLz/t7e3/7S0tP+wsLD/rq6u/6urq/+oqKj/pqam/6Wlpf+jo6P/PDyB/x0b - lf8fHan/Hx2s/x4dqf8dHKb/HRuj/x0bov8cHKD/HBuc/xsbmv8aGpn/GhqX/xoalv8ZGpT/GBqT/x4f - jP+lpaf/kJCQ/4+Pj/+Pj4//j4+P/46Ojv+Ojo7/jIyM/4yMjP+MjIz/i4uL/4uLi/+Li4v/i4uL/4qK - iv+FhYX/dXV1/1JSUtUAAAA8AAAAFAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABoDAwNKV1dX63V1 - df+BgYH/hYWF/4WFhf+FhYX/hYWF/4WFhf+Ghob/hoaG/4aGhv+Ghob/h4eH/4eHh/+Hh4f/h4eH/4iI - iP+IiIj/iIiI/4mJif+JiYn/ioqK/4qKiv+Li4v/i4uL/4yMjP+MjIz/jo6O/4+Pj/+Pj4//kJCQ/5GR - kf+SkpL/k5OT/5SUlP+Wlpb/l5eX/5qamv+bm5v/nZ2d/5+fn/+hoaH/paWl/6enp/+rq6v/r6+v/7Oz - s/+4uLj/vb29/8PDw//Jycn/0NDQ/9fX1//f39//5ubm/+3t7f/19fX/+vr6//7+/v///////v7+//v7 - +//29vb/8fHx/+rq6v/k5OT/3Nzc/9bW1v/Q0ND/ysrK/8TExP+/v7//u7u7/7a2tv+zs7P/r6+v/62t - rf+pqan/p6en/6Wlpf+jo6P/oKCg/5+fn/9+fpL/GxmF/x4dov8fHav/Hh2p/x0cpv8dG6P/HBui/xsc - oP8bG5z/Ghua/xoamP8aGpf/GhqW/xkalP8YGpP/GBqM/4iLpv+Ojo7/jo6O/4yMjP+MjIz/jIyM/4uL - i/+Li4v/i4uL/4qKiv+Kior/ioqK/4qKiv+JiYn/iYmJ/4aGhv95eXn/W1tb6wMDA0oAAAAaAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAGAAAAIBoaGmlfX1/2eHh4/4KCgv+EhIT/hISE/4SEhP+EhIT/hISE/4WF - hf+FhYX/hYWF/4WFhf+FhYX/hoaG/4aGhv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJ - if+JiYn/ioqK/4qKiv+Li4v/jIyM/4yMjP+Ojo7/j4+P/5CQkP+RkZH/kpKS/5OTk/+UlJT/lZWV/5eX - l/+ampr/m5ub/52dnf+goKD/o6Oj/6ampv+pqan/rq6u/7Ozs/+3t7f/vb29/8TExP/Kysr/09PT/9ra - 2v/i4uL/6+vr//Ly8v/5+fn//v7+///////+/v7/+vr6//X19f/v7+//5+fn/+Dg4P/Z2dn/0dHR/8rK - yv/ExMT/vr6+/7q6uv+1tbX/srKy/66urv+rq6v/qKio/6Wlpf+jo6P/oKCg/5+fn/+dnZ3/nJyc/5qa - mv8wMX//Hh2Y/x8dqf8eHan/HRym/x0bo/8cHKH/Gxyg/xsbnP8aG5r/GhqY/xoal/8aGpb/GRqU/xga - k/8YGo7/Y2ie/4yMjP+Li4v/i4uL/4uLi/+Kior/ioqK/4qKiv+JiYn/iYmJ/4mJif+JiYn/iIiI/4iI - iP+IiIj/hoaG/3x8fP9iYmL2HR0daQAAACAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAlLS0th2ho - aP57e3v/goKC/4ODg/+Dg4P/g4OD/4ODg/+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+FhYX/hYWF/4WF - hf+FhYX/hoaG/4aGhv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4mJif+Kior/ioqK/4uL - i/+MjIz/jIyM/46Ojv+Pj4//kJCQ/5GRkf+SkpL/k5OT/5WVlf+Xl5f/mpqa/5ycnP+enp7/oaGh/6Sk - pP+oqKj/ra2t/7Kysv+3t7f/vb29/8TExP/Nzc3/1dXV/9/f3//n5+f/8PDw//f39//8/Pz///////7+ - /v/5+fn/8vLy/+vr6//i4uL/29vb/9PT0//Ly8v/xMTE/76+vv+4uLj/tLS0/7CwsP+srKz/qKio/6am - pv+jo6P/oKCg/56env+dnZ3/m5ub/5qamv+Xl5f/lpaW/2RliP8cGoz/Hxyk/x4cp/8dHKb/HRuj/xwc - of8bHJ//Gxuc/xobmv8aGpj/GRuW/xkalv8YGpT/GBqT/xgZj/9ARZT/jIyM/4qKiv+JiYn/iYmJ/4mJ - if+JiYn/iIiI/4iIiP+IiIj/iIiI/4eHh/+Hh4f/h4eH/4eHh/+Ghob/gICA/2pqav4tLS2HAAAAJQAA - AAgAAAAAAAAAAAAAAAAAAAAAAAAACgAAACs4ODidb29v/3x8fP+BgYH/goKC/4KCgv+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4SEhP+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+FhYX/hYWF/4aG - hv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4mJif+Kior/i4uL/4uLi/+MjIz/jo6O/4+P - j/+QkJD/kpKS/5OTk/+VlZX/lpaW/5qamv+cnJz/n5+f/6Ojo/+mpqb/q6ur/7CwsP+2trb/vb29/8XF - xf/Pz8//2dnZ/+Li4v/t7e3/9vb2//z8/P///////v7+//f39//w8PD/5+fn/93d3f/V1dX/zc3N/8TE - xP+9vb3/t7e3/7Ozs/+urq7/qamp/6ampv+kpKT/oKCg/56env+cnJz/m5ub/5mZmf+Xl5f/lZWV/5SU - lP+Tk5P/jo6R/x8fgv8eHaD/Hhyn/x0bpf8dG6P/HBuh/xsbn/8bG5z/Ghqa/xoamP8ZG5b/GRqV/xga - lP8XGpP/FxmQ/yQniv+Tk5P/iIiI/4iIiP+IiIj/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Ghob/hoaG/4aG - hv+Ghob/hoaG/4WFhf+BgYH/cnJy/zw8PJ0AAAArAAAACgAAAAAAAAAAAAAAAAAAAAAAAAANAAAALkND - Q7JxcXH/fn5+/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hYWF/4WFhf+Ghob/hoaG/4aG - hv+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4qKiv+Li4v/i4uL/4yMjP+Ojo7/kJCQ/5GRkf+SkpL/lJSU/5aW - lv+ampr/nJyc/5+fn/+kpKT/qKio/66urv+1tbX/vb29/8fHx//R0dH/3Nzc/+jo6P/09PT/+/v7//// - ///8/Pz/9vb2/+zs7P/h4eH/19fX/87Ozv/ExMT/vb29/7a2tv+wsLD/rKys/6enp/+kpKT/oKCg/56e - nv+cnJz/mpqa/5eXl/+Wlpb/lJSU/5OTk/+SkpL/kZGR/5CQkP+Pj4//Pz9+/x0bmP8dHKb/HRul/x0b - o/8cG6H/Gxuf/xsanP8aGpr/GhqY/xkalv8ZGpX/GBqU/xcak/8XGZD/FxmF/5GSlv+Hh4f/h4eH/4aG - hv+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WFhf+FhYX/hYWF/4KCgv9zc3P/REREsgAA - AC4AAAANAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAzS0tLx3Jycv99fX3/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4SEhP+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+Ghob/hoaG/4aGhv+Hh4f/h4eH/4iI - iP+JiYn/iYmJ/4qKiv+Li4v/jIyM/4+Pj/+QkJD/kpKS/5OTk/+Wlpb/mpqa/52dnf+hoaH/pqam/62t - rf+0tLT/vb29/8jIyP/V1dX/4uLi//Dw8P/7+/v///////v7+//y8vL/5+fn/9vb2//Pz8//xMTE/7y8 - vP+0tLT/rq6u/6ioqP+lpaX/oKCg/52dnf+bm5v/mZmZ/5aWlv+VlZX/k5OT/5KSkv+RkZH/kJCQ/4+P - j/+Ojo7/jIyM/4yMjP9kZIL/GxqP/x0bo/8dG6X/HBui/xwbof8bG5//Gxqb/xoamv8aGpj/GRqW/xkZ - lf8YGZP/FxmT/xcZkP8XGYb/fX6R/4WFhf+FhYX/hYWF/4WFhf+FhYX/hYWF/4WFhf+EhIT/hISE/4SE - hP+EhIT/hISE/4SEhP+EhIT/gYGB/3V1df9MTEzHAAAAMwAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAEAAA - ADZSUlLVdHR0/35+fv+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hoaG/4aGhv+Hh4f/h4eH/4iIiP+JiYn/ioqK/4uL - i/+MjIz/j4+P/5GRkf+Tk5P/lZWV/5qamv+dnZ3/o6Oj/6mpqf+zs7P/vb29/8rKyv/a2tr/6+vr//n5 - +f//////+vr6/+/v7//g4OD/0dHR/8TExP+6urr/srKy/6urq/+lpaX/oKCg/52dnf+ampr/l5eX/5WV - lf+Tk5P/kpKS/5CQkP+Pj4//jo6O/4yMjP+MjIz/i4uL/4qKiv+Kior/iYmJ/4WFiP8dHIb/HRyf/x0b - pf8cG6L/Gxuh/xsbn/8bGpv/Ghqa/xoamP8ZGpb/GRmV/xgZk/8XGZH/FxiQ/xcZh/9pbIz/hISE/4SE - hP+EhIT/hISE/4SEhP+EhIT/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+BgYH/dnZ2/1VV - VdQAAAA2AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAOVhYWOB2dnb/fX19/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+EhIT/hISE/4SEhP+FhYX/hYWF/4aGhv+Hh4f/h4eH/4iIiP+JiYn/i4uL/4yMjP+Pj4//kpKS/5WV - lf+ampr/n5+f/6ampv+wsLD/vb29/8/Pz//i4uL/9vb2///////39/f/5+fn/9XV1f/ExMT/t7e3/66u - rv+mpqb/oKCg/5ycnP+ZmZn/lZWV/5OTk/+RkZH/kJCQ/4+Pj/+MjIz/i4uL/4uLi/+Kior/iYmJ/4mJ - if+IiIj/h4eH/4eHh/+Hh4f/hoaG/zI0gP8cG47/GxuU/xsakf8aGpD/GhqO/xoai/8aGor/GRmJ/xgZ - h/8YGYb/GBmE/xcZhP8XGIL/Fhl7/2Rmiv+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+CgoL/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4CAgP94eHj/WVlZ4AAAADgAAAASAAAAAAAAAAAAAAAAAAAAAAAA - ABMAAAA6XV1d63d3d/9+fn7/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4SE - hP+EhIT/hYWF/4aGhv+Ghob/h4eH/4mJif+Kior/jIyM/5CQkP+Tk5P/mpqa/6Ghof+tra3/vb29/9XV - 1f/w8PD///////Ly8v/b29v/xMTE/7S0tP+oqKj/oKCg/5ubm/+Wlpb/k5OT/5GRkf+Pj4//jIyM/4uL - i/+Kior/iYmJ/4iIiP+IiIj/h4eH/4eHh/+Ghob/hoaG/4WFhf+FhYX/hYWF/4SEhP+EhIT/RUV0/xYW - bP8VFW3/FRVr/xUVav8UFWn/FBRn/xQUZv8TE2X/EhNj/xIUYv8SFGH/EhRg/xITYP8RE13/S05u/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gICA/3h4 - eP9fX1/rAAAAOgAAABMAAAAAAAAAAAAAAAAAAAAAAAAAEwAAADxhYWHxeHh4/319ff9+fn7/fn5+/35+ - fv9+fn7/fn5+/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4ODg/+Dg4P/hISE/4WF - hf+Ghob/h4eH/4mJif+MjIz/kpKS/5qamv+mpqb/vb29/+Li4v//////5+fn/8TExP+urq7/oKCg/5mZ - mf+Tk5P/kJCQ/4yMjP+Li4v/iYmJ/4iIiP+Hh4f/hoaG/4aGhv+FhYX/hYWF/4SEhP+EhIT/hISE/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/goKC/4KCgv9cW3f/FBVf/xQVXv8UFFz/ExRb/xMUWv8TE1n/ExNY/xIT - V/8SE1b/EhNV/xETVP8RE1P/ERNS/xETUv9FR2n/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP9+fn7/eXl5/2JiYvAAAAA8AAAAEwAAAAAAAAAAAAAAAAAA - AAAAAAATAAAAPWZmZvV5eXn/fX19/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GBgf+CgoL/goKC/4ODg/+FhYX/h4eH/4yM - jP+ampr/vb29///////ExMT/oKCg/5OTk/+MjIz/iYmJ/4eHh/+Ghob/hYWF/4SEhP+Dg4P/g4OD/4OD - g/+CgoL/goKC/4KCgv+CgoL/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/35+ - fv96enr/ZGRk8wAAAD0AAAATAAAAAAAAAAAAAAAAAAAAAAAAABMAAAA9Z2dn+Ht7e/99fX3/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv+bm5v/vLy8/7y8 - vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+SkpL/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fX19/3p6ev9mZmb2AAAAPQAAABMAAAAAAAAAAAAA - AAAAAAAAAAAAEwAAADxoaGj4fHx8/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/2pri/9OUpr/TlKg/05SoP9OU6L/TlOi/09To/9PVKT/T1Sl/1BU - pf9RU6f/UVOo/1FUq/9SVKz/UlWm/4GBk/9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/gICA/4CAgP+AgID/gICA/4GBgf+CgoL/g4OD/4WF - hf+Kior/lpaW/7u7u///////w8PD/6CgoP+Tk5P/jIyM/4mJif+Hh4f/hoaG/4WFhf+EhIT/g4OD/4OD - g/+Dg4P/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/fHx8/2pqavgAAAA8AAAAEwAAAAAAAAAAAAAAAAAAAAAAAAATAAAAOmlpafV8fHz/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/UFOB/xcY - hv8XGY7/FxiP/xcZkf8YGZP/GBmV/xgalv8ZGpf/GhqZ/xsam/8bGpz/Gxug/xwbov8cG5z/b3CW/35+ - fv9+fn7/fn5+/35+fv+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4GBgf+BgYH/gYGB/4KC - gv+CgoL/g4OD/4SEhP+FhYX/h4eH/4qKiv+Pj4//lpaW/6Ojo/+7u7v/4uLi///////l5eX/w8PD/62t - rf+goKD/mZmZ/5OTk/+Pj4//jIyM/4qKiv+JiYn/iIiI/4eHh/+Ghob/hoaG/4WFhf+FhYX/hISE/4SE - hP+EhIT/g4OD/4ODg/+Dg4P/g4OD/4ODg/+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP99fX3/ampq9QAAADoAAAATAAAAAAAA - AAAAAAAAAAAAAAAAABIAAAA5Z2dn8H19ff+AgID/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9QUn7/FxiF/xcZjv8XGI//FxmR/xgZk/8YGZX/GBqW/xka - l/8aGpn/Gxqb/xsanf8bG6D/HBui/xwbn/9naZ7/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GB - gf+BgYH/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hYWF/4aGhv+IiIj/ioqK/4yMjP+RkZH/lpaW/56e - nv+pqan/u7u7/9XV1f/x8fH///////Hx8f/Z2dn/w8PD/7Ozs/+oqKj/oKCg/5qamv+Wlpb/k5OT/5CQ - kP+Pj4//jIyM/4uLi/+Kior/iYmJ/4iIiP+Hh4f/h4eH/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4SE - hP+EhIT/hISE/4SEhP+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4KCgv+CgoL/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/goKC/4CAgP9paWnwAAAAOQAAABIAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADZmZmbqfX19/4CA - gP9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/4CAgP+AgID/gICA/1RW - e/8XGIP/FxiP/xcYj/8XGZH/GBmT/xkZlf8ZGpb/GRqX/xoamf8bGpv/Gxqd/xsboP8cG6L/HRui/1hZ - ov+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hISE/4WFhf+Ghob/h4eH/4iI - iP+Kior/jIyM/4+Pj/+SkpL/lpaW/5ycnP+jo6P/rq6u/7u7u//Ozs7/4uLi//b29v//////9vb2/+Xl - 5f/T09P/w8PD/7a2tv+tra3/pqam/6CgoP+cnJz/mZmZ/5WVlf+Tk5P/kZGR/4+Pj/+Ojo7/jIyM/4uL - i/+Kior/ioqK/4mJif+IiIj/iIiI/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/gYGB/2lpaekAAAA2AAAAEAAA - AAAAAAAAAAAAAAAAAAAAAAAPAAAAM2FhYd59fX3/gYGB/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/WVt3/xcYgf8XGY7/FxiP/xcZkf8YGZP/GRmV/xka - lv8ZGpf/GhqZ/xsam/8bGp3/Gxug/xwbov8dG6T/P0Ch/4yMjP+CgoL/g4OD/4ODg/+EhIT/hISE/4WF - hf+FhYX/hoaG/4eHh/+IiIj/iIiI/4qKiv+Li4v/jo6O/5CQkP+Tk5P/lpaW/5ubm/+goKD/p6en/7Cw - sP+7u7v/ycnJ/9ra2v/r6+v/+vr6///////5+fn/7Ozs/93d3f/Pz8//w8PD/7i4uP+wsLD/qamp/6Wl - pf+goKD/nJyc/5qamv+Wlpb/lJSU/5OTk/+RkZH/kJCQ/4+Pj/+Ojo7/jIyM/4uLi/+Li4v/ioqK/4mJ - if+JiYn/iIiI/4iIiP+IiIj/h4eH/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hISE/4SEhP+EhIT/hISE/4SEhP+EhIT/hISE/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4WFhf+CgoL/ZGRk3QAAADIAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAuX19f0X5+ - fv+CgoL/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gYGB/4GB - gf9oaHn/Fhh7/xcZjf8XGI//FxmR/xgZk/8ZGZX/GRqW/xoamP8aGpn/Gxqb/xsanf8bG6D/HBui/x0b - pP8mJqD/n5+f/4SEhP+FhYX/hYWF/4aGhv+Ghob/h4eH/4iIiP+JiYn/ioqK/4uLi/+MjIz/j4+P/5GR - kf+Tk5P/lpaW/5qamv+enp7/o6Oj/6mpqf+ysrL/u7u7/8fHx//V1dX/4uLi//Hx8f/7+/v///////v7 - +//x8fH/5eXl/9nZ2f/Ozs7/w8PD/7q6uv+zs7P/ra2t/6ioqP+kpKT/oKCg/52dnf+ampr/mZmZ/5aW - lv+UlJT/k5OT/5KSkv+QkJD/j4+P/4+Pj/+Ojo7/jIyM/4uLi/+Li4v/ioqK/4qKiv+JiYn/iYmJ/4iI - iP+IiIj/iIiI/4eHh/+Hh4f/h4eH/4eHh/+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hYWF/4SEhP+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+EhIT/hoaG/4KCgv9gYGDRAAAALgAA - AA0AAAAAAAAAAAAAAAAAAAAAAAAACgAAACpZWVnCfn5+/4KCgv+AgID/gICA/4CAgP+AgID/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/3h5fv8VF3X/FxmL/xcYkP8XGZH/GBmT/xkZ - lf8ZGpb/GhqY/xoamf8bGpv/Gxqd/xsboP8cG6L/HRuk/x0bo/+Ula3/hoaG/4eHh/+Hh4f/iIiI/4mJ - if+Kior/i4uL/4yMjP+Ojo7/kJCQ/5GRkf+Tk5P/lpaW/5qamv+dnZ3/oaGh/6ampv+srKz/s7Oz/7u7 - u//FxcX/0NDQ/9zc3P/q6ur/9fX1//z8/P//////+/v7//X19f/r6+v/4ODg/9XV1f/Ly8v/w8PD/7y8 - vP+1tbX/r6+v/6urq/+mpqb/o6Oj/6CgoP+dnZ3/m5ub/5mZmf+Xl5f/lZWV/5SUlP+Tk5P/kpKS/5GR - kf+QkJD/j4+P/46Ojv+Ojo7/jIyM/4yMjP+Li4v/i4uL/4qKiv+Kior/iYmJ/4mJif+JiYn/iIiI/4iI - iP+IiIj/h4eH/4eHh/+Hh4f/h4eH/4aGhv+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hYWF/4WFhf+Ghob/g4OD/1xcXMIAAAArAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJVJS - Uqt+fn7/g4OD/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4KC - gv+CgoL/goKC/x4hc/8XGIj/FxiQ/xcZkf8YGZP/GRmV/xkalv8aGpj/GhqZ/xsam/8bGp3/Gxug/xwb - ov8dG6T/HRum/2psrv+RkZH/iYmJ/4qKiv+Li4v/jIyM/46Ojv+Pj4//kJCQ/5KSkv+UlJT/lpaW/5mZ - mf+cnJz/n5+f/6Ojo/+oqKj/rq6u/7S0tP+7u7v/xMTE/87Ozv/X19f/4uLi/+3t7f/29vb//Pz8//// - ///8/Pz/9vb2/+/v7//l5eX/3Nzc/9PT0//Kysr/w8PD/7y8vP+2trb/srKy/62trf+pqan/pqam/6Oj - o/+goKD/nZ2d/5ycnP+ampr/mZmZ/5aWlv+VlZX/lJSU/5OTk/+SkpL/kZGR/5CQkP+Pj4//j4+P/46O - jv+Ojo7/jIyM/4yMjP+Li4v/i4uL/4qKiv+Kior/ioqK/4mJif+JiYn/iYmJ/4iIiP+IiIj/iIiI/4iI - iP+Hh4f/h4eH/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4aGhv+Ghob/hoaG/4eHh/+Dg4P/VVVVqwAA - ACUAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAfR0dHk35+fv+EhIT/gYGB/4GBgf+BgYH/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/g4OD/4ODg/+Dg4P/MDRy/xcZhP8XGJD/FxmR/xgZ - k/8ZGZX/GRqW/xoamP8aGpr/Gxqb/xsanf8bG6H/HBui/x0bpP8dG6f/OTuo/6mpqf+Li4v/jIyM/46O - jv+Pj4//kZGR/5KSkv+UlJT/lpaW/5mZmf+bm5v/np6e/6Ghof+lpaX/qamp/6+vr/+1tbX/u7u7/8PD - w//Ly8v/1dXV/93d3f/n5+f/8fHx//n5+f/+/v7///////z8/P/39/f/8fHx/+rq6v/h4eH/2dnZ/9HR - 0f/Kysr/w8PD/729vf+3t7f/s7Oz/6+vr/+rq6v/qKio/6Wlpf+jo6P/oKCg/56env+cnJz/mpqa/5mZ - mf+Xl5f/lpaW/5WVlf+UlJT/k5OT/5KSkv+RkZH/kJCQ/5CQkP+Pj4//j4+P/46Ojv+Ojo7/jIyM/4yM - jP+Li4v/i4uL/4qKiv+Kior/ioqK/4mJif+JiYn/iYmJ/4mJif+IiIj/iIiI/4iIiP+IiIj/h4eH/4eH - h/+Hh4f/h4eH/4eHh/+Ghob/iIiI/4SEhP9ISEiTAAAAIAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAwAA - ABk8PDx6fHx8/oaGhv+Dg4P/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4SE - hP+EhIT/hISE/4SEhP9GSnL/Fhh+/xcYjv8XGZH/GBmT/xkZlf8ZGpb/GhqY/xoamv8bGpv/Gxqd/xwb - of8dG6P/HRuk/x0bp/8eHKf/pKW7/5KSkv+QkJD/kZGR/5OTk/+UlJT/lpaW/5mZmf+bm5v/nZ2d/6Cg - oP+jo6P/p6en/6ysrP+wsLD/tbW1/7u7u//CwsL/ycnJ/9HR0f/a2tr/4uLi/+vr6//09PT/+vr6//7+ - /v///////v7+//n5+f/09PT/7Ozs/+Xl5f/d3d3/1tbW/8/Pz//Jycn/w8PD/729vf+4uLj/tLS0/7Cw - sP+tra3/qamp/6enp/+lpaX/oaGh/6CgoP+enp7/nJyc/5ubm/+ampr/mZmZ/5aWlv+VlZX/lJSU/5SU - lP+Tk5P/kpKS/5KSkv+ZmZn/m5ub/5ubm/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uL - i/+Kior/ioqK/4qKiv+JiYn/iYmJ/4mJif+JiYn/iIiI/4iIiP+IiIj/iIiI/4mJif+Li4v/goKC/kBA - QHoAAAAaAAAABAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAFCkpKVd2dnb0h4eH/4WFhf+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+FhYX/hYWF/2Zmev8VF3X/FxqL/xcZ - k/8YGZP/GRqV/xkalv8aGpj/Ghqa/xsanP8bGp3/HBuh/x0bo/8dG6T/Hhun/x4cqv9gYbL/rKys/5OT - k/+UlJT/lpaW/5mZmf+ampr/nJyc/5+fn/+hoaH/paWl/6ioqP+tra3/sLCw/7a2tv+7u7v/wsLC/8jI - yP/Pz8//19fX/9/f3//n5+f/7+/v//X19f/7+/v//v7+///////+/v7/+vr6//X19f/v7+//6Ojo/+Li - 4v/b29v/1dXV/8/Pz//Jycn/w8PD/76+vv+6urr/tbW1/7Kysv+urq7/rKys/6ioqP+mpqb/pKSk/6Gh - of+goKD/oaGh/6ampv+rq6v/ra2t/7S0tP+1tbX/vr6+/76+vv/IyMj/yMjI/8jIyP/Hx8f/uLi4/5GR - kf+QkJD/kJCQ/4+Pj/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uLi/+Kior/ioqK/4qK - iv+Kior/iYmJ/4mJif+JiYn/i4uL/46Ojv9+fn70KioqWQAAABQAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAOBAQENnJycueIiIj/hoaG/4ODg/+EhIT/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hYWF/4WF - hf+Ghob/hoaG/4aGhv+Hh4f/hYWG/xocbf8XGYb/FxqT/xgalP8ZGpX/GRuW/xoamP8aGpr/Gxuc/xsb - nf8cG6H/HRuj/x0bpf8eHKf/Hxyq/yQjq/+5usP/nJyc/5eXl/+ampr/nJyc/56env+goKD/o6Oj/6am - pv+pqan/rq6u/7Kysv+2trb/u7u7/8HBwf/Hx8f/zs7O/9XV1f/b29v/4uLi/+rq6v/x8fH/9vb2//v7 - +//+/v7///////7+/v/7+/v/9vb2//Hx8f/r6+v/5eXl/9/f3//Z2dn/09PT/87Ozv/IyMj/w8PD/76+ - vv+/v7//vb29/8LCwv/BwcH/xcXF/8XFxf/Kysr/zc3N/9DQ0P/Pz8//z8/P/87Ozv/Bwcr/o6TF/6Kj - xP98fbz/e325/2Fjsv9WWa//SEyp/zU5of9VWZr/k5OT/5KSkv+SkpL/kZGR/5CQkP+QkJD/j4+P/4+P - j/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uLi/+Li4v/ioqK/4qKiv+Ojo7/kJCQ/3h4 - eOcEBAQ2AAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAoaWlpzYmJif+IiIj/hISE/4SE - hP+FhYX/hYWF/4WFhf+FhYX/hoaG/4aGhv+Ghob/h4eH/4eHh/+Hh4f/iIiI/4iIiP+IiIj/NTlw/xcY - gf8YGpD/GBqU/xkalf8ZG5b/GhqY/xobmv8bG5z/Gxuf/xwcof8dG6P/HRyl/x4cp/8fHar/IB2t/2xt - uf+6urr/m5ub/52dnf+fn5//oaGh/6Wlpf+np6f/q6ur/66urv+zs7P/tra2/7u7u//BwcH/x8fH/8vL - y//T09P/2dnZ/+Dg4P/m5ub/7Ozs//Ly8v/39/f//Pz8/////////////v7+//v7+//39/f/8vLy/+3t - 7f/o6Oj/4uLi/9zc3P/X19f/1dXV/9/f3//i4uL/4eHh/9/f3/+5udj/sbHW/5yc0/+Hh87/f3/M/2Fh - xv9gYMT/QUK9/z49uv8sK7X/IB2w/yAdrv8fHaz/Hh2p/x4cpv8dG6T/HRui/xwcoP8cG5z/GxuY/zk8 - kf+VlZX/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5CQkP+QkJD/j4+P/4+Pj/+Pj4//jo6O/46O - jv+MjIz/jIyM/4yMjP+Li4v/i4uL/4+Pj/+RkZH/bm5uzQAAACgAAAAKAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAABgAAAB9VVVWfiYmJ/4qKiv+FhYX/hYWF/4aGhv+Ghob/hoaG/4aGhv+Hh4f/h4eH/4eH - h/+IiIj/iIiI/4iIiP+JiYn/iYmJ/4qKiv9bXHn/FRd0/xgajf8ZGpT/GRqW/xkblv8aGpj/Ghua/xsb - nP8bG5//HByh/x0bo/8dHKX/Hhyp/x8dqv8gHa3/JiWv/7e3yP+srKz/oaGh/6Ojo/+mpqb/qKio/6ys - rP+vr6//s7Oz/7e3t/+7u7v/wcHB/8XFxf/Ly8v/0NDQ/9bW1v/c3Nz/4uLi/+rq6v/v7+//9fX1//n5 - +f/8/Pz////////////+/v7/+/v7//n5+f/19fX/8PDw/+vr6//l5eX/4ODg/9bW2P9WVKD/QD6l/0E9 - u/8pIsb/KiLM/ykhzP8oIcn/JyDG/yYhxP8lIMD/JCC+/yMfvP8jH7r/Ih62/yEes/8hHbD/IB2u/yAd - rP8fHan/Hhym/x0bpP8dG6L/HByg/xwbnP8bG5n/NjmS/5eXl/+Wlpb/lZWV/5WVlf+UlJT/k5OT/5OT - k/+SkpL/kpKS/5GRkf+RkZH/kJCQ/5CQkP+Pj4//j4+P/4+Pj/+Ojo7/jo6O/46Ojv+MjIz/kpKS/5GR - kf9dXV2fAAAAHwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFz09PWyJiYn/jIyM/4iI - iP+Ghob/h4eH/4eHh/+Hh4f/iIiI/4iIiP+IiIj/iIiI/4mJif+JiYn/ioqK/4qKiv+Li4v/i4uL/4eI - iv8YGWn/GBqF/xkak/8aGpb/GhqX/xoamP8aG5r/Gxuc/xsbn/8cG6L/HRuj/x0cpf8eHKn/Hx2r/yAd - rf8gHa//VFW5/8vLy/+oqKj/p6en/6mpqf+tra3/sLCw/7S0tP+3t7f/u7u7/7+/v//ExMT/ycnJ/8/P - z//V1dX/2tra/+Dg4P/m5ub/6+vr//Hx8f/29vb/+vr6//z8/P////////////7+/v/8/Pz/+fn5//X1 - 9f/x8fH/7Ozs/+fn5//i4uL/3d3d/6Wkwv8rKIj/Ix6T/ychrf8oIsD/KSLJ/yghyf8nIMb/JiHE/yYg - wP8lIL//JB+8/yMfuv8jH7b/Ih+z/yEesv8gHa7/IB2s/x8dqf8eHKf/HRyk/x0bov8cHKD/HBud/xsb - mv8vMZL/mpqa/5mZmf+Xl5f/lpaW/5aWlv+VlZX/lJSU/5SUlP+Tk5P/k5OT/5KSkv+SkpL/kZGR/5GR - kf+QkJD/kJCQ/5CQkP+Pj4//j4+P/5CQkP+UlJT/kZGR/0FBQW0AAAAXAAAAAwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAQISEhRX5+fu2RkZH/ioqK/4eHh/+IiIj/iIiI/4iIiP+JiYn/iYmJ/4mJ - if+Kior/ioqK/4uLi/+Li4v/jIyM/4yMjP+Ojo7/jo6O/z5Bcf8WGHn/GRmO/xoalv8aGpf/GhqZ/xsb - mv8cG5z/HBuf/x0bov8dG6P/HRyl/x4cqf8fHav/IB2t/yAdr/8hHrL/mJjH/8fHx/+srKz/rq6u/7Cw - sP+0tLT/t7e3/7u7u/+/v7//xMTE/8nJyf/Ozs7/09PT/9fX1//d3d3/4uLi/+jo6P/t7e3/8vLy//b2 - 9v/6+vr//Pz8/////////////v7+//z8/P/6+vr/9vb2//Ly8v/v7+//6urq/+Xl5f/g4OD/3Nzc/7q5 - y/86N47/Ix2N/yUgpP8nIbv/KCLG/ycgxv8mIcT/JiDC/yUgv/8kH7z/Ix+6/yMftv8iH7T/IR6y/yAe - rv8gHaz/Hx6q/x4dp/8dHKT/HRyi/xwdoP8cHJ3/Gxua/yorkP+cnJz/m5ub/5qamv+ZmZn/mZmZ/5eX - l/+Wlpb/lZWV/5WVlf+UlJT/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5GRkf+QkJD/k5OT/5eX - l/+GhobtISEhRQAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAobW1txpGR - kf+Ojo7/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/i4uL/4uLi/+Li4v/jIyM/46Ojv+Ojo7/j4+P/4+P - j/+QkJD/dXaF/xQWav8ZGoj/GhqV/xoal/8aGpn/Gxua/xwbnP8cG5//HRui/x0bpP8eHKX/Hxyp/yAd - q/8gHK7/IR2w/yEes/8uLbb/w8TR/8XFxf+ysrL/tLS0/7e3t/+7u7v/v7+//8PDw//IyMj/zc3N/9HR - 0f/W1tb/29vb/+Dg4P/m5ub/6+vr/+/v7//09PT/9/f3//v7+//+/v7////////////+/v7//Pz8//r6 - +v/39/f/9PT0//Dw8P/s7Oz/5+fn/+Tk5P/f39//2tra/8vL0v9KSZX/IR2I/yMenP8mIbX/JyHC/yYh - xP8mIML/JSC//yQfvP8jH7r/Ix+3/yIftP8hHrL/IB6u/yAdrP8fHqr/Hh2n/x0cpP8dHKL/HB2h/xwc - nf8bHJv/IySP/5+fn/+dnZ3/nJyc/5ubm/+ampr/mpqa/5mZmf+Xl5f/lpaW/5aWlv+VlZX/lZWV/5SU - lP+UlJT/k5OT/5OTk/+SkpL/kpKS/5GRkf+VlZX/mpqa/3d3d8cAAAAoAAAACQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABxcXFyVkZGR/5GRkf+Kior/ioqK/4qKiv+Li4v/i4uL/4uL - i/+MjIz/jIyM/46Ojv+Ojo7/j4+P/4+Pj/+QkJD/kZGR/5KSkv+SkpL/MjRu/xcZe/8aGZD/GhqX/xoa - mf8bG5v/HBuc/xwbn/8dG6L/HRuk/x4cpv8fHKn/IB2r/yAdrv8hHrD/Ih+z/yMftv9MTb7/1dXX/8nJ - yf+4uLj/u7u7/7+/v//Dw8P/x8fH/8vLy//Q0ND/1dXV/9nZ2f/d3d3/4uLi/+fn5//s7Oz/8fHx//X1 - 9f/5+fn/+/v7//7+/v////////////7+/v/8/Pz/+/v7//f39//19fX/8fHx/+3t7f/q6ur/5eXl/+Hh - 4f/d3d3/2dnZ/9PT1P9nZ6H/IB2E/yIelf8lIK//JiG//yYhwv8lIL//JB+8/yMfuv8jH7f/Ih+0/yEe - sv8gHq7/IB2t/x8eqv8eHaf/HRyk/x0cov8cHaH/HByd/xscm/8dHo3/o6Oj/5+fn/+enp7/nZ2d/5yc - nP+bm5v/mpqa/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5WVlf+VlZX/lJSU/5SUlP+Tk5P/lJSU/5mZ - mf+ampr/YmJilgAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAETEx - MVOMjIz6lZWV/4+Pj/+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//j4+P/5CQkP+QkJD/kZGR/5KS - kv+Tk5P/k5OT/5SUlP91doj/FRZr/xkaiP8aG5X/GhqZ/xsbm/8cG53/HByf/x0bov8dHKT/Hh2m/x8d - qf8gHqv/IB2u/yEesP8iH7T/Ix+2/yMguP9lZMb/29vb/9DQ0P+/v7//w8PD/8fHx//Kysr/z8/P/9PT - 0//X19f/3Nzc/+Hh4f/l5eX/6urq/+3t7f/y8vL/9vb2//n5+f/7+/v//v7+/////////////v7+//z8 - /P/7+/v/+fn5//b29v/y8vL/7+/v/+vr6//n5+f/5OTk/+Dg4P/b29v/19fX/9TU1P+FhK7/IyCF/yId - nP8mIbr/JiHC/yUhv/8kILz/Ix+7/yMft/8iH7T/IR6y/yAer/8gHa3/Hx6q/x4dp/8dHKT/HRyj/xwd - of8cHJ3/HByb/xsbjP+mpqf/oaGh/6CgoP+fn5//np6e/52dnf+cnJz/m5ub/5ubm/+ampr/mZmZ/5mZ - mf+Xl5f/l5eX/5aWlv+VlZX/lZWV/5WVlf+Wlpb/np6e/5SUlPo0NDRTAAAAEQAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAJ3x8fNGZmZn/k5OT/4yMjP+Ojo7/jo6O/4+P - j/+Pj4//j4+P/5CQkP+RkZH/kZGR/5KSkv+Tk5P/k5OT/5SUlP+VlZX/lpaW/5eXl/8wM27/Fxh4/xob - j/8aG5j/Gxub/xwcnf8cHKD/HRyi/x0cpP8eHab/Hx2q/yAdrP8gHa7/IR6w/yIftP8jH7f/IyC4/yQf - vP9vbsr/39/f/9nZ2f/Hx8f/ycnJ/87Ozv/R0dH/1tbW/9ra2v/f39//4uLi/+fn5//r6+v/8PDw//T0 - 9P/29vb/+vr6//z8/P/+/v7////////////+/v7//v7+//v7+//5+fn/9vb2//T09P/w8PD/7Ozs/+jo - 6P/l5eX/4eHh/93d3f/a2tr/1tbW/9PT0/+hoL//Mi2t/yYhvf8mIcL/JiG//yUgvf8jILv/IyC3/yIf - tP8hHrL/IB6v/yAdrf8gHqr/Hx2n/x4cpf8dHKP/HB2h/xwcnf8cHJv/GxuM/6ChqP+kpKT/oaGh/6Gh - of+goKD/n5+f/56env+dnZ3/nJyc/5ycnP+bm5v/mpqa/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5ub - m/+goKD/g4OD0QAAACcAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAQAAAAZX19fjpmZmf+Wlpb/kJCQ/4+Pj/+Pj4//kJCQ/5CQkP+RkZH/kZGR/5KSkv+Tk5P/k5OT/5SU - lP+VlZX/lpaW/5eXl/+ZmZn/mpqa/31+jv8WF2j/GRqE/xobl/8bHJv/HByd/xwcoP8dHKL/HRyk/x4d - pv8fHar/IB2s/yAdrv8hHrD/Ih+0/yMft/8jH7r/JB+8/yUhvv9hYsv/3d3h/9/f3//Q0ND/0NDQ/9XV - 1f/Z2dn/3Nzc/+Hh4f/l5eX/6urq/+3t7f/x8fH/9fX1//f39//6+vr//Pz8//7+/v////////////// - ///+/v7/+/v7//r6+v/39/f/9fX1//Hx8f/t7e3/6+vr/+fn5//k5OT/4ODg/9zc3P/Z2dn/3d3d/+bm - 5v/ExeH/KSPD/yYhwv8mIcD/JSC9/yQgu/8jILf/IyC1/yIfs/8hH6//IB6t/yAeqv8fHaf/Hhyl/x0c - o/8cHaH/HByd/xwcnP8bG43/mZql/6Wlpf+kpKT/o6Oj/6Ghof+goKD/oKCg/5+fn/+enp7/nZ2d/52d - nf+cnJz/m5ub/5qamv+ampr/mZmZ/5mZmf+ZmZn/oKCg/6Ghof9mZmaOAAAAGQAAAAQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA8qKipIkZGR8pycnP+Tk5P/kJCQ/5GR - kf+RkZH/kpKS/5KSkv+Tk5P/lJSU/5SUlP+VlZX/lpaW/5eXl/+ZmZn/mZmZ/5qamv+bm5v/nJyc/0dI - d/8WF3L/GhuN/xscmv8cHJ3/HByg/x0cov8dHKT/Hh2m/x8dqv8gHaz/IB2v/yEesP8iH7T/Ix+3/yMf - uv8kIL3/JSG+/yYhwv9NSsr/2trj/+bm5v/c3Nz/19fX/9vb2//f39//4uLi/+fn5//r6+v/7+/v//Ly - 8v/19fX/+fn5//v7+//8/Pz//v7+//////////////////7+/v/8/Pz/+vr6//f39//19fX/8vLy/+/v - 7//s7Oz/6Ojo/+Xl5f/i4uL/5OTk/+rq6v/r6+v/39/o/19d0f8nIcX/JiHD/yYhwP8lIL3/JCC7/yMg - t/8jILX/Ih+z/yEfr/8gHq3/IB+q/x8eqf8eHaX/HR2j/xwdof8cHJ3/HByc/xscjv+Vlqb/p6en/6am - pv+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//np6e/52dnf+dnZ3/nJyc/5ubm/+bm5v/mpqa/52d - nf+kpKT/mZmZ8i4uLkgAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAABwAAACF6enq9np6e/5mZmf+SkpL/kpKS/5KSkv+Tk5P/lJSU/5SUlP+VlZX/lpaW/5eX - l/+ZmZn/mZmZ/5qamv+bm5v/nJyc/52dnf+enp7/l5ec/yAjaf8YGXv/GxyT/xwcnP8cHKD/HRyj/x0c - pP8eHab/Hx2q/yAdrP8gHa//IR6y/yIftP8jILf/JCC6/yUgvf8mIb//JiHC/ychxP9DQMz/zMvk/+vr - 6//o6Oj/4eHh/+Hh4f/l5eX/6Ojo/+zs7P/w8PD/8vLy//b29v/5+fn/+/v7//z8/P/+/v7///////// - /////////v7+//z8/P/6+vr/+fn5//b29v/09PT/8PDw/+3t7f/q6ur/6urq/+/v7//w8PD/6+vu/5ST - 3v82M8z/KCLH/ychxf8mIcP/JiHA/yUgvf8kILv/IyC4/yMgtf8iH7P/IR+v/yAerf8gH6v/Hx6p/x4d - pf8dHaP/HB2h/xwdn/8cHZz/GxyP/5OUqf+pqan/qKio/6enp/+mpqb/paWl/6SkpP+jo6P/oaGh/6Cg - oP+goKD/n5+f/56env+dnZ3/nZ2d/5ycnP+cnJz/o6Oj/6enp/+Dg4O+AAAAIQAAAAcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAE0xMTGecnJz+n5+f/5aW - lv+Tk5P/lJSU/5WVlf+VlZX/lpaW/5eXl/+Xl5f/mZmZ/5qamv+bm5v/nJyc/52dnf+enp7/n5+f/6Cg - oP+hoaH/bW6K/xYWaf8aG4X/HBuZ/xwcoP8dHKP/Hhyl/x8dpv8gHar/IB2s/yEer/8iH7L/IiC0/yMg - t/8kILr/JSC9/yYhv/8mIcP/JyHE/yghx/8wKsv/j47b/+3t7f/v7+//7e3t/+rq6v/q6ur/7e3t//Hx - 8f/09PT/9vb2//n5+f/7+/v//Pz8//7+/v/////////////////+/v7//Pz8//v7+//5+fn/9vb2//T0 - 9P/x8fH/8fHx//Ly8v/09PT/8vLy/6mp5v9EP9X/KiPN/ykjyv8oIsn/JyHG/yYhw/8mIcD/JSC9/yQg - u/8jILj/IyC1/yIfs/8hH6//IB6t/yAfq/8fHqn/Hh2l/x0do/8cHaH/HB2f/xwdnP8bHJD/jY6n/6ys - rP+rq6v/qamp/6ioqP+np6f/pqam/6Wlpf+kpKT/o6Oj/6Ghof+goKD/oKCg/5+fn/+enp7/nZ2d/6Cg - oP+np6f/pqam/lBQUGgAAAATAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAKBgYGKYmJidOjo6P/nJyc/5WVlf+VlZX/lpaW/5eXl/+Xl5f/mZmZ/5qa - mv+bm5v/nJyc/52dnf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+mpqb/R0l6/xcYb/8bG4z/HByd/x0c - o/8eHaX/Hx2n/yAeqv8gHqz/IR6v/yIfsv8jILX/IyC3/yQguv8lIL3/JiG//yYhw/8nIcX/KCLH/ykj - yv8qI8z/TEnV/7q66P/y8vL/9PT0//X19f/09PT/9PT0//X19f/39/f/+vr6//v7+//+/v7//v7+//// - //////////////7+/v/8/Pz/+/v7//n5+f/5+fn/9/f3//f39//39/f/9vb2/7u77P9NStr/KyPS/yok - 0P8qI83/KSPL/ygiyf8nIsb/JiHD/yYhwP8lIL3/JCC8/yMguP8jILX/Ih+z/yEfr/8gHq7/IB+r/x8e - qf8eHaX/HR2j/x0dov8cHZ//HB2c/xsckf+Ehqf/rq6u/6ysrP+rq6v/qamp/6ioqP+np6f/pqam/6Wl - pf+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//paWl/62trf+RkZHTBgYGKQAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAVYWFhfaam - pv+jo6P/mZmZ/5eXl/+Xl5f/mZmZ/5qamv+bm5v/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Oj - o/+lpaX/pqam/6enp/+kpKb/Ky5v/xkZdf8bHJD/HR2g/x4dpf8fHqf/IB6q/yAerP8hHq//Ih+y/yMg - tf8jILj/JCC6/yUgvf8mIb//JiHD/ychxf8oIsf/KSPK/yojzP8qJM7/KyPS/1ZT2/+sq+v/7u31//f3 - 9//5+fn/+vr6//r6+v/7+/v//Pz8//7+/v///////////////////////v7+//7+/v/8/Pz//Pz8//v7 - +//6+vr/+fn5/7W17/9RTd7/LSTX/ywk1P8rI9L/KiTQ/yojzf8pI8v/KCLJ/ycixv8mIcP/JiLA/yUh - vv8kILz/IyC4/yMgtf8iH7P/IR+w/yAerv8gH6v/Hx6p/x4dpf8dHaP/HR2i/xwdn/8cHZz/GxyT/4CC - p/+vr6//rq6u/62trf+srKz/q6ur/6mpqf+oqKj/p6en/6ampv+lpaX/pKSk/6SkpP+jo6P/oaGh/6Oj - o/+srKz/rq6u/2ZmZn0AAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAoGBgYqk5OT2qioqP+enp7/mZmZ/5qamv+ampr/m5ub/5yc - nP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ojo/+kpKT/paWl/6enp/+oqKj/qamp/6ysrP+SkqD/Hh5p/xkZ - ev8cHJX/Hh2j/x8ep/8gHqv/IB6s/yEer/8iH7L/IyC1/yMguP8kILv/JSC9/yYhv/8mIcP/JyLF/ygi - yf8pI8v/KiPM/yokzv8rI9L/LCTU/y0k1/8zKtn/ZGHi/7Cu8P/z8vr//Pz8//z8/P/+/v7///////// - /////////////////////////v7+//7+/v/8/Pz/xsX1/4J/6v9AOt//Liba/y4l2f8tJNf/LCTU/ysj - 0v8qJND/KiPN/ykjy/8oIsn/JyLG/yYhw/8mIsD/JSG+/yQhvP8jILj/IyC1/yIfs/8hH7D/IB6u/yAf - q/8fHqn/Hh2l/x0dpP8dHaL/HB2f/xwdnP8bG5P/enym/7Kysv+wsLD/r6+v/66urv+srKz/q6ur/6mp - qf+oqKj/qKio/6enp/+mpqb/paWl/6SkpP+jo6P/qamp/7Kysv+ZmZnbBgYGKgAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA - ABVmZmZ8qamp/qenp/+dnZ3/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ghof+jo6P/paWl/6am - pv+np6f/qKio/6urq/+srKz/rq6u/6+vr/+Dg5v/Ghpq/xoafv8dHZf/Hx6k/yAeq/8gHq3/IR6v/yIf - sv8jILX/IyC4/yQgu/8lIL3/JiG//yYhw/8nIsX/KCLJ/ykjy/8qI83/KiTO/ysj0v8sJNT/LSTX/y4l - 2P8uJtr/Libd/zQs3/9VUOX/dnTr/5yZ8P+ioPP/srD1/8/O+f+sq/T/oqDz/5+d8/93dO3/U03m/zcv - 4v8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0k1/8sJNT/LCPS/ysk0P8qI87/KiPL/ykiyf8oIsb/JyHD/yYi - wP8lIb7/JCG8/yMguP8jILX/IiC0/yIfsP8hHq7/IB+p/x8epf8fHaX/Hh2k/x0dov8dHZ//HB2c/xsb - lP91eKX/tLS0/7Kysv+wsLD/r6+v/66urv+tra3/rKys/6urq/+pqan/qKio/6enp/+mpqb/pqam/6en - p/+wsLD/sbGx/mtra3sAAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACgAAACeVlZXXra2t/6SkpP+dnZ3/nZ2d/56e - nv+fn5//oKCg/6Ghof+jo6P/pKSk/6Wlpf+mpqb/qKio/6mpqf+rq6v/ra2t/66urv+vr6//srKy/7Oz - s/91dpb/GBlr/xoagP8eHZj/Hx6m/yAerf8hHq//Ih+y/yMgtf8jILj/JCC7/yUhvv8mIr//JiHD/yci - xf8oIsn/KSPL/yojzf8rJND/KyPS/ywk1P8tJNf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm - 4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywk - 1P8sI9L/KyTQ/yojzv8qI8v/KSLJ/ygixv8nIcP/JiLC/yYhvv8lIbz/JCC4/yMhtf8iILT/Ih+v/yEf - qf8fH5r/HR2T/x4dmf8eHaH/HR2i/x0dn/8cHZ3/GxuV/2tupP+1tbX/tLS0/7Ozs/+ysrL/sLCw/6+v - r/+tra3/rKys/6ysrP+rq6v/qamp/6ioqP+oqKj/ra2t/7W1tf+dnZ3XBgYGJwAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAADAAAAE2BgYGqtra3+ra2t/6Ojo/+fn5//oKCg/6Ghof+jo6P/o6Oj/6Wlpf+mpqb/p6en/6io - qP+pqan/rKys/62trf+urq7/sLCw/7Kysv+0tLT/tbW1/7e3t/9tb5X/GBlr/xsbgP8eHZn/IB+p/yEe - sP8iH7L/IyC1/yMguP8kIbv/JSG+/yYiwP8mIcP/JyLF/ykiyf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0l - 1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm - 4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCTU/ywj0v8rI9H/KiPO/yojy/8pIsn/KCLG/ych - xP8mIsL/JiG+/yUhvP8kILj/IyC2/yIgsv8hIKb/Hh2V/xwcfv8aG3X/GxuB/x0dlP8dHZ//HR2f/xwd - nf8bG5X/Zmmi/7e3t/+2trb/tLS0/7Ozs/+ysrL/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qamp/6ys - rP+2trb/tra2/mZmZmsAAAATAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAHAAAAH5OTk8Czs7P/q6ur/6Oj - o/+hoaH/o6Oj/6SkpP+lpaX/pqam/6enp/+oqKj/q6ur/6ysrP+tra3/r6+v/7CwsP+ysrL/tLS0/7W1 - tf+3t7f/urq6/7u7u/9vcZf/Ghtt/xsbgP8fHpj/IR+q/yIfsv8jILX/IyC4/yUhu/8mIb7/JiLA/ych - w/8oIsX/KSLJ/yojy/8qI83/KyTQ/ysj0v8sJNT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm - 4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l - 1/8sJNT/LCPS/ysj0f8qI87/KiPL/ykiyf8oIsb/JyHE/yYiwv8mIb7/JSG8/yQguP8jIbL/IR+k/x8d - jv8cG3n/HyBu/01Oh/8aG23/Ght7/xwcj/8dHZr/HB2c/xwclv9fY6H/uLi4/7e3t/+2trb/tbW1/7S0 - tP+zs7P/srKy/7CwsP+vr6//ra2t/62trf+tra3/tbW1/7y8vP+bm5vAAAAAHwAAAAcAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAIAAAAOR0dHS62trfK0tLT/qamp/6Ojo/+lpaX/pqam/6enp/+oqKj/qamp/6ur - q/+srKz/rq6u/6+vr/+wsLD/s7Oz/7S0tP+2trb/t7e3/7q6uv+7u7v/vb29/7+/v/+CgqH/HR1u/xsb - fP8fHZX/ISCp/yMhtP8kILj/JSG7/yYhvv8mIsD/JyHE/ygixf8pIsn/KiPL/yojzf8rJND/KyPS/ywk - 1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm - 4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1P8sJNP/KyPR/yojzv8qI8v/KSLJ/ygi - xv8nIcT/JiLC/yYhvv8lIbr/IyCy/yEfoP8eHYn/HBt1/zM0e/+qqrr/ycnJ/4WGpP8dHmz/GRp2/xwc - i/8cHZj/HByW/1peoP+7u7v/urq6/7e3t/+2trb/tbW1/7S0tP+zs7P/srKy/7CwsP+vr6//rq6u/7Oz - s/+8vLz/tbW18kpKSksAAAAOAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAWfn5+jbi4 - uP+zs7P/qKio/6ampv+np6f/qKio/6mpqf+rq6v/ra2t/66urv+vr6//sLCw/7Ozs/+0tLT/tra2/7e3 - t/+6urr/u7u7/729vf+/v7//wsLC/8TExP+Tla3/IyVx/xwbef8fHY7/IiCl/yQgtP8lIbr/JiG+/yYi - wP8nIcT/KCLF/ykiyf8qI8v/KiPN/ysk0P8rJNP/LCXU/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m - 4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l - 2f8tJdf/LCXU/ywk0/8rI9H/KiPO/yojy/8pIsn/KCLH/ychxP8mIsL/JiG8/yQhsP8iH5v/Hh2D/x0c - c/9dXpT/yMjL/83Nzf/Kysr/ycnJ/5SVrP8hJG3/GRpz/xsch/8bHJD/UFOc/7y8vP+7u7v/urq6/7i4 - uP+3t7f/tbW1/7S0tP+zs7P/srKy/7CwsP+zs7P/u7u7/8HBwf+FhYWNAAAAFgAAAAUAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAkHBwcjpKSkzry8vP+ysrL/qamp/6ioqP+rq6v/rKys/62t - rf+urq7/r6+v/7Kysv+zs7P/tLS0/7a2tv+3t7f/urq6/7u7u/+9vb3/v7+//8LCwv/Dw8P/xcXF/8jI - yP+ysb7/OzyA/x0bdv8fHon/Ih+g/yQhsP8mIbz/JiLA/ychxP8oIsb/KSLJ/yojy/8qI83/KyTQ/ysk - 0/8sJdT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm - 5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdT/LCTT/ysk0f8qJM7/KiPL/yki - yf8oIsf/JyHD/yYhvP8kIKz/IR+V/x8cgP8nJ3j/kpSy/9HR0f/Q0ND/zs7O/83Nzf/Kysr/ycnJ/6Ok - s/8nKW7/GBlv/xobgP9JTJb/vr6+/729vf+7u7v/urq6/7i4uP+3t7f/tra2/7W1tf+0tLT/tLS0/7y8 - vP/Dw8P/qqqqzgcHByMAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA - AA1MTExJtLS07ry8vP+ysrL/rKys/6ysrP+tra3/rq6u/7CwsP+ysrL/s7Oz/7W1tf+2trb/t7e3/7q6 - uv+7u7v/vb29/7+/v//BwcH/w8PD/8XFxf/IyMj/ycnJ/8vLy//Jycv/YWOW/x0cc/8eHYL/ISCV/yQg - q/8lIbj/JyHC/ygixv8pIsn/KiPL/yokzf8rJND/KyTT/ywl1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m - 3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m - 2v8uJdn/LSXX/ywl1P8sJNP/KyTR/yokzv8qI8v/KSLJ/ygiw/8mIbb/IyCk/yEejP8fHXv/QkSJ/8DB - y//V1dX/1NTU/9HR0f/Pz8//zs7O/8vLy//Kysr/yMjI/66vuv8vMnP/GBlq/0BDhv+/v7//vr6+/729 - vf+8vLz/urq6/7i4uP+3t7f/tra2/7a2tv+7u7v/xMTE/7u7u+5QUFBJAAAADQAAAAIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABN2dnZ0v7+//by8vP+zs7P/rq6u/6+v - r/+wsLD/srKy/7Ozs/+1tbX/tra2/7i4uP+6urr/u7u7/729vf+/v7//wcHB/8PDw//FxcX/x8fH/8nJ - yf/Ly8v/zs7O/9DQ0P/R0dH/m5u3/zAvfv8fHXv/IR6L/yMgn/8lIrD/JyK+/ykix/8qI8v/KiTN/ysk - 0P8rJNP/LCXW/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm - 5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk0/8rJNH/KiTO/yok - yf8oI73/JSKt/yMgl/8gH4X/IR94/3N0pv/X19r/2dnZ/9bW1v/V1dX/09PT/9HR0f/Pz8//zs7O/8vL - y//Kysr/yMjI/7e4v/85PHb/NTh1/8LCwv+/v7//vr6+/729vf+8vLz/urq6/7i4uP+3t7f/u7u7/8TE - xP/Gxsb9e3t7dAAAABMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABwAAABmWlpakw8PD/7y8vP+zs7P/sLCw/7Kysv+0tLT/tbW1/7a2tv+4uLj/urq6/7u7 - u/+9vb3/v7+//8HBwf/Dw8P/xMTE/8fHx//Jycn/y8vL/83Nzf/Pz8//0dHR/9TU1P/W1tb/0NHV/2xs - oP8hIXn/IB6B/yEfjv8lIaL/JyK0/ygkwP8qI8r/KyTO/ysk0/8sJdb/LSXX/y4l2P8uJtr/Libd/y8l - 3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m - 3f8uJtr/LiXZ/y0l1/8sJdb/LCTS/yokzP8pI8D/JyKz/yUhn/8iH4v/IB59/0FAi/+ztMn/39/f/9zc - 3P/a2tr/2dnZ/9bW1v/U1NT/09PT/9DQ0P/Pz8//zc3N/8vLy//Kysr/yMjI/8C/w/9kZ4//w8PD/8LC - wv+/v7//vr6+/729vf+8vLz/u7u7/729vf/ExMT/y8vL/52dnaUAAAAZAAAABwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACg0NDSWurq7QxMTE/7y8 - vP+1tbX/tLS0/7W1tf+2trb/uLi4/7q6uv+7u7v/vb29/76+vv/BwcH/w8PD/8TExP/Hx8f/yMjI/8rK - yv/Nzc3/z8/P/9DQ0P/T09P/1dXV/9fX1//a2tr/3Nzc/7q7zP9ZWZj/Hx16/yEfg/8jH5L/JiGh/ycj - sv8pJL7/KiTK/ywl0v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm - 5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdj/LCTT/ysly/8qJL//KCKy/yYh - oP8kII7/Ih+D/zIyhf+Wlrv/5OTk/+Hh4f/g4OD/3d3d/9vb2//a2tr/19fX/9bW1v/U1NT/0dHR/9DQ - 0P/Pz8//zc3N/8vLy//Jycn/yMjI/8fHx//ExMT/w8PD/8LCwv+/v7//vr6+/729vf++vr7/xMTE/83N - zf+0tLTRDQ0NJgAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAACAAAADU5OTkG6urrox8fH/729vf+2trb/tra2/7i4uP+6urr/u7u7/729 - vf++vr7/wcHB/8LCwv/ExMT/x8fH/8jIyP/Kysr/y8vL/87Ozv/Q0ND/09PT/9XV1f/W1tb/2dnZ/9vb - 2//d3d3/4ODg/+Hh4f/AwNL/X2Cf/yMhff8iIIT/JCCO/yUhmv8nIqv/KSO4/ysjw/8sJMr/LSXR/y4l - 2f8uJtv/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybe/y4l - 2P8tJdL/LCXL/ywjxP8qI7f/KCOp/yYhmv8kIY7/IyCF/ywrhf+AgLP/4ODl/+bm5v/l5eX/4uLi/+Dg - 4P/f39//3Nzc/9vb2//Z2dn/19fX/9XV1f/U1NT/0dHR/9DQ0P/Ozs7/zc3N/8vLy//Jycn/yMjI/8fH - x//ExMT/w8PD/8LCwv/BwcH/v7+//8XFxf/Ozs7/wsLC6FJSUkEAAAANAAAAAgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEHBw - cFvDw8P0ycnJ/7+/v/+6urr/urq6/7u7u/+9vb3/vr6+/8HBwf/CwsL/xMTE/8XFxf/IyMj/ycnJ/8vL - y//Ozs7/0NDQ/9HR0f/U1NT/1tbW/9fX1//a2tr/3Nzc/9/f3//h4eH/4uLi/+Xl5f/n5+f/0NDd/3t8 - sP82NIr/IyCD/yQgi/8lIZP/JyKc/ygipv8qJLP/KyW9/ywkxP8tJcr/LSXO/y4l0v8uJdT/LiXU/y4l - 1P8uJdT/LiXU/y4l0v8uJdH/LiXN/y0ly/8sJMT/KyS7/yojsv8oI6X/KCKb/yYhk/8kIYr/JCCE/0JB - kv+Vk8D/5OPo/+vr6//o6Oj/5+fn/+Xl5f/k5OT/4eHh/+Dg4P/d3d3/3Nzc/9ra2v/Z2dn/1tbW/9XV - 1f/T09P/0dHR/8/Pz//Ozs7/zc3N/8rKyv/Jycn/yMjI/8fHx//ExMT/w8PD/8PDw//IyMj/z8/P/8vL - y/RycnJbAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAEoSEhG7Jycn6y8vL/8HBwf+8vLz/vb29/76+ - vv/BwcH/wsLC/8TExP/FxcX/yMjI/8nJyf/Ly8v/zc3N/8/Pz//R0dH/09PT/9XV1f/X19f/2tra/9vb - 2//d3d3/4ODg/+Li4v/k5OT/5ubm/+jo6P/q6ur/7Ozs/+/v7/+1tNH/bGyr/zg3j/8kIYb/JSGK/yYh - kf8nIpb/JyKa/ygjoP8pJKb/KiSs/yskr/8rJK//KySw/ysksP8qI67/KiSs/ykjpv8pI6T/KCOf/ygj - m/8nIpX/JiGR/yUiiv8lIIb/RUOX/35+tv/Ozd//8fHx/+/v7//t7e3/6+vr/+rq6v/o6Oj/5ubm/+Xl - 5f/i4uL/4eHh/9/f3//d3d3/29vb/9ra2v/X19f/1tbW/9TU1P/T09P/0NDQ/8/Pz//Ozs7/zc3N/8rK - yv/Jycn/yMjI/8XFxf/FxcX/ycnJ/9PT0//S0tL6h4eHbwAAABMAAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAFAAAAE42NjXnOzs78zs7O/8XFxf+/v7//wcHB/8LCwv/Dw8P/xcXF/8fHx//Jycn/y8vL/83N - zf/Pz8//0NDQ/9PT0//V1dX/1tbW/9nZ2f/a2tr/3Nzc/9/f3//h4eH/4uLi/+Xl5f/n5+f/6urq/+vr - 6//t7e3/7+/v//Hx8f/y8vL/9fX1/9nY6P+bmsj/aWeu/0dFm/8qJ4v/JiKJ/yYii/8mIY//JyKR/yci - kf8nIpL/JyKS/ycikf8nIo//JiGN/yYii/8mIon/MS6P/1NQo/95d7f/rKvS/+bm7v/29vb/9fX1//Ly - 8v/x8fH/8PDw/+3t7f/s7Oz/6+vr/+jo6P/n5+f/5eXl/+Tk5P/h4eH/4ODg/93d3f/c3Nz/29vb/9nZ - 2f/X19f/1dXV/9TU1P/T09P/0NDQ/8/Pz//Ozs7/y8vL/8rKyv/Jycn/ycnJ/83Nzf/U1NT/1NTU/JGR - kXkAAAATAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAFJmZmX3Pz8/50dHR/8jI - yP/ExMT/w8PD/8XFxf/Hx8f/ycnJ/8rKyv/Nzc3/zs7O/9DQ0P/R0dH/1NTU/9bW1v/X19f/2tra/9zc - 3P/d3d3/4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/7Ozs/+3t7f/w8PD/8fHx//T09P/19fX/9vb2//f3 - 9//5+fn/+vr6//v7+//f3u7/zMvl/5+dzv+cm83/nJvN/5ybzv+cm87/nJvO/7u63f/My+X/zMvl//n5 - +//7+/v/+/v7//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Hx8f/w8PD/7+/v/+3t7f/r6+v/6urq/+jo - 6P/m5ub/5eXl/+Li4v/h4eH/39/f/93d3f/c3Nz/2tra/9nZ2f/W1tb/1dXV/9TU1P/R0dH/0NDQ/8/P - z//Nzc3/y8vL/8vLy//Q0ND/19fX/9XV1fmZmZl9AAAAFAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAFAAAAE46OjnHS0tL11dXV/8vLy//Hx8f/x8fH/8jIyP/Kysr/y8vL/87O - zv/Pz8//0dHR/9TU1P/V1dX/19fX/9nZ2f/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/n5+f/6Ojo/+vr - 6//s7Oz/7+/v//Dw8P/y8vL/9PT0//X19f/29vb/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//// - //////////////////////////////7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/39/f/9vb2//X1 - 9f/09PT/8vLy//Hx8f/v7+//7e3t/+zs7P/q6ur/6Ojo/+fn5//l5eX/5OTk/+Li4v/g4OD/39/f/9zc - 3P/b29v/2tra/9fX1//W1tb/1dXV/9PT0//R0dH/0NDQ/8/Pz//Pz8//09PT/9ra2v/Y2Nj1kJCQcQAA - ABMAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAEYKC - gl7Ozs7s19fX/9DQ0P/Kysr/ycnJ/8vLy//Nzc3/z8/P/9DQ0P/T09P/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/d3d3/4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+3t7f/v7+//8fHx//Ly8v/09PT/9vb2//f3 - 9//5+fn/+vr6//v7+//8/Pz//Pz8//7+/v/+/v7//////////////////////////////////v7+//7+ - /v/8/Pz//Pz8//v7+//6+vr/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7Ozs/+vr - 6//q6ur/5+fn/+bm5v/l5eX/4uLi/+Hh4f/g4OD/3d3d/9zc3P/a2tr/2dnZ/9fX1//W1tb/1NTU/9PT - 0//R0dH/0dHR/9bW1v/d3d3/09PT7IKCgl4AAAARAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAD3d3d1HOzs7k3Nzc/9TU1P/Pz8//zc3N/8/P - z//Q0ND/0dHR/9TU1P/W1tb/19fX/9ra2v/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+vr - 6//s7Oz/7e3t//Dw8P/x8fH/8vLy//X19f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+ - /v/////////////////////////////////+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3d3d/9vb2//a2tr/2dnZ/9bW1v/V1dX/1NTU/9bW1v/a2tr/4ODg/9XV1eR6enpRAAAADwAA - AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAEAAAADV9fXzvHx8fL4ODg/9ra2v/T09P/0dHR/9HR0f/U1NT/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/f39//4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+3t7f/v7+//8PDw//Ly8v/09PT/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//////////////////////////////////7+ - /v/+/v7//Pz8//z8/P/7+/v/+vr6//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Ly8v/x8fH/7+/v/+3t - 7f/s7Oz/6+vr/+rq6v/n5+f/5ubm/+Xl5f/i4uL/4eHh/+Dg4P/d3d3/3Nzc/9vb2//a2tr/19fX/9fX - 1//a2tr/39/f/+Tk5P/Ly8vLY2NjOwAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACiYmJiG1tbWi5OTk/9/f - 3//Z2dn/1dXV/9XV1f/W1tb/19fX/9ra2v/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//x8fH/8vLy//T09P/19fX/9vb2//n5+f/5+fn/+vr6//v7+//8/Pz//Pz8//7+ - /v/+/v7//////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5 - +f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs7P/r6+v/6urq/+jo6P/n5+f/5eXl/+Tk - 5P/i4uL/4ODg/9/f3//d3d3/3Nzc/9ra2v/b29v/3d3d/+Tk5P/n5+f/ubm5oiYmJiEAAAAKAAAAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAABwAAABOZmZlu2tra7OTk5P/d3d3/2tra/9nZ2f/Z2dn/29vb/9zc - 3P/f39//4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+zs7P/v7+//8PDw//Hx8f/y8vL/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v////////////////////////////// - ///+/v7//v7+//7+/v/8/Pz/+/v7//v7+//6+vr/+fn5//f39//29vb/9fX1//X19f/y8vL/8fHx//Dw - 8P/v7+//7e3t/+zs7P/r6+v/6Ojo/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/9/f3//f39//39/f/+Li - 4v/n5+f/3d3d7Jubm24AAAATAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AA1vb29Az8/Px+jo6P/k5OT/4ODg/9zc3P/c3Nz/3d3d/+Dg4P/h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq - 6v/r6+v/7e3t/+/v7//w8PD/8fHx//T09P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//7+ - /v/+/v7//v7+//////////////////////////////////7+/v/+/v7//v7+//z8/P/7+/v/+/v7//r6 - +v/5+fn/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/t7e3/7Ozs/+vr6//q6ur/6Ojo/+bm - 5v/l5eX/5OTk/+Li4v/h4eH/4eHh/+Tk5P/o6Oj/6+vr/9DQ0Mdvb29AAAAADQAAAAQAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAkAAAAZqqqqft7e3unq6ur/5eXl/+Li - 4v/g4OD/4ODg/+Li4v/k5OT/5ubm/+fn5//o6Oj/6+vr/+zs7P/t7e3/7+/v//Hx8f/y8vL/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+/v////////////////////////////// - /////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Ly - 8v/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+bm5v/l5eX/5eXl/+Xl5f/o6Oj/7Ozs/+Dg - 4OmsrKx+AAAAGQAAAAkAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAANYmJiNMbGxqzp6en86+vr/+fn5//l5eX/5OTk/+Xl5f/m5ub/5+fn/+rq - 6v/r6+v/7Ozs/+/v7//w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/7+/v//Pz8//z8 - /P/+/v7//v7+///////////////////////////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7 - +//6+vr/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+3t7f/s7Oz/6+vr/+rq - 6v/o6Oj/5+fn/+fn5//r6+v/7e3t/+vr6/zIyMisYmJiNAAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAHAAAAEZeX - l1nZ2dnO7+/v/+3t7f/q6ur/5+fn/+jo6P/o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+vr6//v7+//8/Pz//Pz8//7+/v/+/v7///////////////////////// - //////////////7+/v/+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f39//29vb/9vb2//X1 - 9f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs7P/r6+v/6+vr/+vr6//t7e3/8PDw//Hx8f/b29vOl5eXWQAA - ABEAAAAHAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAACQAAABWoqKht3t7e0vLy8v/w8PD/7e3t/+3t - 7f/s7Oz/7Ozs/+3t7f/w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/6+vr/+/v7//z8 - /P/8/Pz//v7+//7+/v///////////////////////////////////////v7+//7+/v/+/v7//Pz8//z8 - /P/7+/v/+/v7//r6+v/5+fn/9/f3//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7+/v/+/v - 7//w8PD/8vLy//T09P/f39/Sra2tbQAAABUAAAAJAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABAAAAAoKCgoZsLCwb9zc3Mn19fX/9PT0//Ly8v/x8fH/8fHx//Hx8f/x8fH/8vLy//T0 - 9P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//z8/P/+/v7//v7+//////////////////// - ///////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/y8vL/8fHx//Ly8v/09PT/9fX1//b29v/e3t7JsLCwbwoKChkAAAAKAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAKAAAAFZeX - l1TS0tKr6Ojo5vb29v/29vb/9fX1//T09P/19fX/9fX1//b29v/29vb/9/f3//n5+f/6+vr/+/v7//v7 - +//8/Pz//Pz8//7+/v/+/v7///////////////////////////////////////7+/v/+/v7//v7+//z8 - /P/8/Pz/+/v7//v7+//6+vr/+fn5//n5+f/39/f/9vb2//X19f/29vb/9vb2//b29v/39/f/9/f3/+jo - 6ObS0tKsl5eXVAAAABUAAAAKAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAABwAAAA5MTEwor6+vbdjY2Lry8vL1+fn5//n5 - +f/5+fn/+fn5//n5+f/6+vr/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v////////////// - /////////////////////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+/v7//r6+v/6+vr/+vr6//n5 - +f/5+fn/+fn5//r6+v/6+vr/8/Pz9djY2Lqvr69tTExMKAAAAA4AAAAHAAAAAgAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAAIAAAAEHZ2djbBwcGA29vbuu7u7uf7+/v/+/v7//v7+//7+/v/+/v7//z8 - /P/8/Pz//Pz8//7+/v/+/v7//v7+///////////////////////////////////////+/v7//v7+//7+ - /v/8/Pz//Pz8//z8/P/8/Pz/+/v7//v7+//7+/v/+/v7//v7+//u7u7n3NzcusHBwYB2dnY2AAAAEAAA - AAgAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AAkAAAAQaWlpLpqamlHFxcWK4eHhwOvr69/z8/Pw/v7+//7+/v/+/v7//v7+//7+/v/+/v7///////// - //////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/z8/Pw6+vr3+Hh - 4cDFxcWKmpqaUWlpaS4AAAAQAAAACQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABgAAAAoAAAAOCgoKGIOD - gzqurq5fvb29ecvLy5Xd3d2u5eXlxenp6dHw8PDd8PDw5vn5+fT5+fn0+fn59Pn5+fTw8PDm8PDw3enp - 6dHl5eXF3d3drsvLy5W9vb15rq6uX4ODgzoKCgoYAAAADgAAAAoAAAAGAAAAAwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAwAAAAYAAAAIAAAACgAAAA0AAAAPAAAAEAAA - ABEAAAATAAAAEwAAABQAAAAUAAAAEwAAABMAAAARAAAAEAAAAA8AAAANAAAACgAAAAgAAAAGAAAAAwAA - AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA/////////////////////////////+AAAAf///////////////4AAAAAf//////////////w - AAAAAA//////////////gAAAAAAB/////////////AAAAAAAAD////////////AAAAAAAAAP//////// - ///AAAAAAAAAA///////////AAAAAAAAAAD//////////gAAAAAAAAAAf/////////gAAAAAAAAAAB// - ///////gAAAAAAAAAAAH////////wAAAAAAAAAAAA////////4AAAAAAAAAAAAH///////8AAAAAAAAA - AAAA///////8AAAAAAAAAAAAAD//////+AAAAAAAAAAAAAAf//////AAAAAAAAAAAAAAD//////gAAAA - AAAAAAAAAAf/////wAAAAAAAAAAAAAAD/////4AAAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAD///// - AAAAAAAAAAAAAAAA/////gAAAAAAAAAAAAAAAH////wAAAAAAAAAAAAAAAA////4AAAAAAAAAAAAAAAA - H///+AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAB///4AAAAAAAAAAA - AAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAH//wAAAAAA - AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/wA - AAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAP/gAAAAAAAAAAAAAAAAA - AB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAA - AAAAAAAP8AAAAAAAAAAAAAAAAAAAD+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAA - AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA - AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA - AAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAA - AAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA - AAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA - AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA - AAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAA - AAAAAAADwAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAA - AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD/AA - AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA - AB/8AAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA - AAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//4AAAAAA - AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAAAAAAAAAAAAAH///g - AAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////gAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAA - H////AAAAAAAAAAAAAAAAD////4AAAAAAAAAAAAAAAB/////AAAAAAAAAAAAAAAA/////wAAAAAAAAAA - AAAAAP////+AAAAAAAAAAAAAAAH/////wAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAAAB//////wAAAA - AAAAAAAAAA//////+AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAP///////AAAAAAAAAAAAAP////// - /4AAAAAAAAAAAAH////////AAAAAAAAAAAAD////////8AAAAAAAAAAAD/////////gAAAAAAAAAAB// - ///////+AAAAAAAAAAB//////////wAAAAAAAAAA///////////AAAAAAAAAA///////////8AAAAAAA - AA////////////wAAAAAAAA/////////////gAAAAAAB//////////////AAAAAAD//////////////+ - AAAAAH///////////////+AAAAf///////////////////////////////////////////////////// - //////////////////8oAAAAMAAAAGAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAFAAAACwAAAA8AAAARAAAAEQAAAA8AAAALAAAABQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAUAAAAaAAAAPAoKCmAgICCENDQ0nEFBQatLS0uzS0tLs0FBQasyMjKcICAghAoK - CmAAAAA8AAAAGgAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAQAAAAPx8fH4FMTEy/dnZ255qamvu7u7v/0NDQ/+Dg4P/p6en/6enp/+Dg - 4P/S0tL/vb29/5ycnPt3d3fnTU1Nvx8fH4EAAAA/AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAEk0NDSkcXFx566urv/c3Nz/9PT0//z8/P////////////// - ///////////////////////////////////29vb/4ODg/7Gxsf9zc3PnNjY2pAAAAEkAAAAOAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAwKioqlnR0dOu9vb3/5ubm/+/v7//y8vL/8/Pz//b2 - 9v/5+fn//Pz8//7+/v////////////7+/v/9/f3/+/v7//n5+f/39/f/9fX1//X19f/r6+v/wcHB/3Z2 - duwsLCyWAAAAMAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwoKCl1VVVXSpqam/9vb2//k5OT/5ubm/+np - 6f/t7e3/8fHx//X19f/5+fn/+/v7//7+/v////////////7+/v/9/f3/+/v7//j4+P/29vb/8fHx/+7u - 7v/r6+v/6urq/+Hh4f+rq6v/WFhY0g0NDV0AAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATIiIif3Nzc/HCwsL/2NjY/9nZ - 2f/d3d3/4uLi/+fn5//s7Oz/8PDw//T09P/39/j/+/v7/////f///////////////v/9/fz/+vr6//j4 - +P/09PT/8PDw/+zs7P/o6Oj/5OTk/+Dg4P/g4OD/ycnJ/3h4ePEkJCR/AAAAEwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYqKiqRgoKC+sbG - xv/Ozs7/0dHR/9bW1v/a2tr/39/f/+Xl5f/q6un/8/Pw//z89f////r//f38//Dw/P/r6/z/6+v8//Dw - /P/3+Pz////8////+f/39/T/7+/u/+rq6v/m5ub/4eHh/9zc3P/Y2Nj/19fX/87Ozv+Hh4f6LS0tkQAA - ABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAES8v - L5KGhob+wMDA/8fHxv/Ozsz/zc3N/9LS0v/X19j/3d3c/+rq5f/w8O7/1tXu/6mm6v98d+b/Xlfl/0tE - 5f9DO+b/RDvn/0tC5v9VTeX/cGrm/6Ge6//Y1/H/9fXy/+7u6v/j4+P/39/f/9ra2v/V1dX/0dHR/83N - zf/Jycn/jIyM/jAwMJIAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAGJycnen5+fvu5ubn/vb28/7W2vv+ys8n/0tLO/83Nzf/Y2NX/4+Pi/7Kx4P9jYNT/My3P/yQc - 0/8mHdj/KCDd/ysi4P8tI+L/LSPj/ywi4f8qId7/Jx3a/yUc1f80LdL/bWrZ/8TD5v/s7Of/3t7c/9bW - 1v/R0dH/zc3N/8nJyf/FxcX/wcHB/4aGhvspKSl6AAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAASEhJRbW1t7q+vr/+0tLT/ubm4/6iotf84OqL/p6fL/9zc0//Gxtn/YV/J/yMe - v/8hG8X/KCHM/ywk0/8uJdn/Libe/y8m4f8wJuP/MCbk/zAm4v8vJt//LiXb/y0l1v8pIs//IRvI/ykl - xP95eNH/2Njg/9ra1f/Nzc3/ycnJ/8TExP+/v7//vb29/7e3t/9ycnLuEhISUQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVVVVXPoKCg/62trf+vr6//tbWz/6Slsf8hIpr/Kiqn/42N - yf89PLj/Gxi2/yUgv/8oIsb/KiPN/ywk0/8uJdn/Libf/y8m4/8wJuX/MCbm/zAm5P8vJuH/LiXc/y0l - 1v8rI9D/KSLJ/yUfw/8cGLn/SknA/7291//S0s7/xMTE/7+/v/+7u7v/uLi4/7a2tv+pqan/WFhYzwAA - ACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjY2NoyKior/pqam/6enp/+qqqr/sLCu/52e - rP8iI5v/Ghqi/xoZqP8eG6//IyC3/yUhv/8nIsb/KSPN/ywk1P8tJNj/KCDR/yQcxf8kG77/JBy+/yQb - v/8lHcn/KyLW/y0l1/8rI9H/KSLJ/ychw/8lIbv/HBmx/y8vsv+pqcz/ycnE/7q6uv+2trb/s7Oz/7Cw - sP+vr6//kZGR/zg4OIwAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQkJN2ZmZumenp7/oKCg/6Ki - ov+lpaX/q6up/5eXp/8fH5r/HByj/x8eqf8hHrD/IyC3/yUgvv8nIsf/KCLL/yIbvP8rJaj/Uk6r/399 - vP+bmsr/n57M/5eVx/9ua7b/OjWm/yIcsv8nIMr/KSLK/yYhwv8kIbv/IiCz/xsaqv8sK6r/qKnE/7y7 - t/+ysrL/rq6u/6urq/+pqan/pqam/2xsbOkJCQk3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPj4+lIqK - iv+ampr/m5ub/52dnf+goKD/pqak/4+Po/8dHZn/HByi/x8dqP8hHq//IyC3/yUgv/8iHLj/JyOe/2dl - qf/AwNP/8fHx/////f/////////////////9/fr/39/m/5KRvf80MKD/IRy6/yYhw/8kILr/Ih+z/yAe - rP8YF6P/PD2p/7W1vP+urqz/qamp/6ampv+jo6P/o6Oj/5KSkv9DQ0OUAAAABQAAAAAAAAAAAAAAAAAA - AAAAAAAoY2Nj4pSUlP+VlZX/lpaW/5mZmf+bm5v/oaGe/4aHnv8cHJn/HBui/x4dqP8gHa//Ih+3/yEd - vv9LSLj/sbHA/+Li3v/s7Or/8fHx//n5+f/+/v7///////z8/P/29vb/8fHv/+7u6f/Dw87/Skif/x4a - sP8kILv/Ih+z/yAerP8eHaX/FRWd/2Firf+xsa7/o6Oj/6Ghof+enp7/nZ2d/5ycnP9nZ2fiAAAAKAAA - AAAAAAAAAAAAAAAAAAAwMDBqfHx8/5GRkf+RkZH/kpKS/5SUlP+Wlpb/nJyZ/3t7lv8ZGZb/Ghqf/xwb - pf8eG6z/IB20/yAbuv9DP8n/vr7V/9zc1//i4uL/7e3t//f39//+/v7///////v7+//z8/P/6urq/+Dg - 4P/b29n/wcHF/0hGm/8dGrD/Ih+z/x8dq/8dHKT/Gxue/xwdmv+Mjqz/oqKe/5ycnP+ampr/mZmZ/5iY - mP+BgYH/MjIyagAAAAAAAAAAAAAAAAAAAAdRUVGtiYmJ/4yMjP+NjY3/jo6O/5CQkP+RkZH/mJiU/29w - jv8UFJD/FhWX/xkWnv8bF6X/HRis/x8as/8bFbn/OzW+/7a1zP/f39z/6enp//X19f/8/Pz///////n5 - +f/w8PD/5eXl/9nZ2f/Ozs7/yMjG/6mqsv8wLpn/Hhux/x8dq/8dHKT/HBye/xQVlv9LTaD/oaGf/5eX - l/+VlZX/lJSU/5OTk/+QkJD/VVVVrgAAAAgAAAAAAAAAAAAAACFjY2PdioqK/4iIiP+JiYn/ioqK/4uL - i/+NjY3/k5KQ/2lqg/8aG27/ISJz/yMjeP8lJH3/JyWB/yooh/8yMIz/MCyQ/1ZTn//IyM7/4+Ti//Hx - 8f/7+/v//v7+//j4+P/s7Oz/3t7e/9DQ0P/ExMT/urq6/7m5tP95eZz/HBqh/x8drP8dG6T/HBud/xkY - mP8gIpb/iYqc/5SUkv+RkZH/kJCQ/4+Pj/+QkJD/ZmZm3QAAACEAAAAAAAAAAB4eHkJvb2/3h4eH/4WF - hf+Ghob/h4eH/4eHh/+IiIj/ioqK/4WGiP9+foX/g4SJ/4aGi/+JiY7/jY2T/5KSmP+cnKD/pKSo/6ys - sv/CwsX/2dnZ/+vr6//7+/v//v7+//T09P/k5OT/09PT/8TExP+4uLj/r6+v/6ioqP+hoaD/OTiT/xsZ - qf8cG6P/Gxud/xoal/8UFZP/ZWaW/5KSjv+NjY3/i4uL/4qKiv+MjIz/c3Nz9yIiIkIAAAAAAAAAADo6 - OmV5eXn/hISE/4ODg/+EhIT/hISE/4WFhf+FhYX/hoaG/4eHh/+Kion/ioqK/4yMi/+Pj47/kpKQ/5WV - lP+ampn/oaGg/6qqqv+3t7f/ysrK/+Li4v/4+Pj//v7+/+7u7v/Y2Nj/xMTE/7W1tf+qqqr/oqKi/5yc - nP+dnZj/ZmaO/xoYof8cG6T/Gxud/xkal/8UFZP/Q0aQ/46Oiv+IiIj/iIiI/4eHh/+IiIj/fX19/zw8 - PGUAAAAAAAAAAEZGRn5+fn7/goKC/4GBgf+CgoL/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hISE/4WF - hf+Ghob/iIiI/4qKiv+NjY3/kpKS/5mZmf+jo6P/tLS0/9DQ0P/z8/P/+/v7/+Li4v/ExMT/sLCw/6Oj - o/+bm5v/lZWV/5KSkv+QkI//gYGJ/yUkmP8bGab/Gxqe/xkamf8UFpX/MTON/4eHh/+FhYX/hYWF/4SE - hP+FhYX/gYGB/0hISH4AAAAAAAAAAFBQUI6AgID/gICA/4CAgP+AgID/gICA/4CAgP9/f3//f39+/39/ - fv9/f3//gIB//4CAgP+CgoL/goKC/4ODg/+EhIT/hoaG/4mJif+Ojo7/mJiY/66urv/h4eH/9vb2/8TE - xP+lpaX/l5eX/5CQkP+MjIz/iYmJ/4iIiP+Ghob/h4eF/zQ0fv8REX3/FBR5/xMTdf8PEXH/IyVx/319 - gf+Dg4L/gYGB/4GBgf+BgYH/goKC/1VVVY0AAAAAAAAAAFdXV5SBgYH/fn5+/35+fv9+fn7/fn5+/4B/ - gP+NjpH/kJGV/5CQlP+QkJT/kZGV/4qKjP9+fn7/f39//39/f/9/f3//f39//39/f/+AgID/gYGB/4SE - hP+jo6P/u7u7/42Njf+FhYX/g4OD/4KCgv+BgYH/gICA/4CAgP+AgID/gICA/25uef9iYnT/Y2Nz/2Nj - c/9iYnL/ZmZz/319fv+AgH//f39//39/f/9/f3//gYGB/1dXV5QAAAAAAAAAAFtbW5SCgoL/fn5+/35+ - fv9+fn7/fn5+/3p6fv9AQ5H/NTec/zc5n/85OaL/Nzeo/1pam/+BgX3/f39//39/f/9/f3//f39//4CA - gP+CgoL/hYWF/46Ojv+7u7v/1tbW/6CgoP+Ojo7/iIiI/4aGhv+EhIT/g4OD/4KCgv+CgoL/gYGB/4OD - gv+FhYL/hISC/4SEgv+EhIL/g4OC/4GBgf+AgID/gICA/4CAgP+AgID/hISE/1tbW5MAAAAAAAAAAFlZ - WYuDg4P/f39//39/f/9/f3//gIB//3t7fv8kJoP/ERKQ/xUVlP8WFpj/FBOf/zw7nv+FhYP/goKC/4OD - g/+FhYX/h4eH/4yMjP+Tk5P/oKCg/7u7u//r6+v/+vr6/9HR0f+xsbH/oKCg/5eXl/+RkZH/jY2N/4uL - i/+JiYn/h4eH/4eHh/+Ghob/hYWF/4WFhf+EhIT/g4OD/4ODg/+Dg4P/goKC/4KCgv+CgoL/hoaG/1tb - W4sAAAAAAAAAAFZWVnmDg4P/gICA/4GBgf+BgYH/gYGB/4KCgP8wMoD/FBWR/xkZlf8aGpn/GRif/y0s - pf+Hh5H/iIiH/4uLi/+Ojo7/lJSU/5ycnP+oqKj/u7u7/9fX1//29vb//Pz8/+bm5v/Ly8v/t7e3/6mp - qf+goKD/mpqa/5WVlf+SkpL/j4+P/4yMjP+Kior/iYmJ/4iIiP+IiIj/h4eH/4aGhv+Ghob/hoaG/4WF - hf+FhYX/h4eH/1hYWHkAAAAAAAAAAE5OTluCgoL/goKC/4KCgv+Dg4P/g4OD/4eHg/9DRX3/EhSP/xkZ - lf8aGpr/Gxqf/xsap/95eaT/lJSP/5SUlP+ampr/oaGh/6ysrP+7u7v/z8/P/+bm5v/6+vr//f39/+/v - 7//c3Nz/ysrJ/7y8uv+xsa7/q6um/6amof+jo53/pKSd/6Kinf+hoZ7/oaKh/5aWlv+MjIz/i4uL/4qK - iv+JiYn/iYmJ/4iIiP+IiIj/iIiI/1NTU1wAAAAAAAAAAD09PTZ+fn71hYWF/4SEhP+FhYX/hYWF/4uL - h/9iYn7/FBaK/xkalv8aGpr/HBug/xkWpv9MTLH/pKSi/56dnf+lpaX/r6+v/7u7u//Kysr/3Nzc/+7u - 7v/8/Pz//v7+//T09P/m5uX/z8/T/7W1yv+trMv/m5rG/4uLwf99fb7/c3G6/2Rjtf9VVLD/REWp/3Jz - mf+VlZH/kZGR/4+Pj/+Ojo7/jIyM/4yMjP+MjIz/h4eH9T09PTYAAAAAAAAAAAwMDBR+fn7Wi4uL/4eH - h/+IiIj/iIiI/4uLiv+Bgof/IiSA/xgYl/8aG5r/HBuh/x0bp/8fHa7/i4u6/7Gxq/+wsLD/u7u7/8fH - x//V1dX/5eXl//Pz8//9/f3//v7+//f39//u7uz/09PY/1lXqf8jHbb/JyHJ/yIdwf8dGbn/Ghax/xgW - qf8XFqP/EhKb/19glv+dnZj/lZWV/5OTk/+SkpL/kZGR/5CQkP+Tk5P/hYWF1gwMDBQAAAAAAAAAAAAA - AAF3d3egkpKS/4qKiv+Li4v/jY2N/4+Pj/+UlZH/TU5//xQUj/8bG5v/HBuh/x4cp/8dGa3/ODW5/7Oz - xv/Cwrz/xMTF/9HR0f/e3t7/6+vr//b29v/+/v7//v7+//n5+f/w8PD/6Ojn/9HR1f9iYKT/IBur/yQf - wf8jH7n/IR6y/x8dq/8dHKT/FRad/19gmf+kpJ7/m5ub/5iYmP+Xl5f/lZWV/5OTk/+cnJz/fX19oAAA - AAEAAAAAAAAAAAAAAABkZGRUkpKS/o+Pj/+Pj4//kZGR/5KSkv+Xl5b/hoaP/yAhgP8ZGpv/HByh/x4d - qP8gHa7/HRm1/0hFxP/AwNT/2NjS/9nZ2P/k5OT/7+/v//j4+P/+/v7//v7+//r6+v/z8/P/6urq/+Tk - 4f/j49r/dnTE/yAcv/8jILr/IR6y/yAdq/8eHKX/FRad/11dm/+oqaT/n5+f/52dnf+bm5v/mZmZ/5iY - mP+ampr+bW1tVAAAAAAAAAAAAAAAAAAAAAAzMzMUj4+P15iYmP+Tk5P/lZWV/5iYmP+ampr/oqKe/2Bh - h/8VFYv/HByj/x4dqP8gHa//Ix+2/x8avP9APMr/tbTf/+vs5v/w8Or/9PTy//r6+v/+/v7///////z8 - +//4+Pb/9/fw/+jo7P+joeL/RkHO/yMewf8kILr/Ih+z/yAerP8eHaX/Fhed/1lanf+tran/paWl/6Ki - ov+fn5//nZ2d/6Kiov+Xl5fYJCQkFQAAAAAAAAAAAAAAAAAAAAAAAAAAgoKCe6Kiov+Xl5f/mpqa/5yc - nP+fn5//o6Oj/6SkpP9BQoL/FhaX/x8eqv8hHq//IyC3/yUgvv8jHcX/LSbM/3Rw3v/Bv+3/7+73//7/ - /P////////////3+/f/o5/f/rqvs/1VP3P8lHs7/JB7I/yYhwv8kILr/Ih+z/yAerf8eHab/Fhee/1VW - n/+ysq7/qqqq/6enp/+lpaX/oqKi/6ysrP+IiIh7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/HJ2d - nd+hoaH/np6e/6Ghof+kpKT/qKio/6+vrv+hoaj/NDSD/xgXnf8hHrH/IyC3/yUgvv8nIsb/KCLM/yQc - 0v8sI9j/TEXi/21n6v9/eu7/enXu/2Nc6f9COuL/KSDa/yge1P8qI8//KSLJ/yYhwv8kIbv/Ih+0/xsa - oP8ZGZr/Fxef/1BRoP+2trP/r6+v/6ysrP+pqan/rKys/6Wlpd8/Pz8cAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIyMjG2urq7/oqKi/6Wlpf+pqan/ra2t/7Gxsf+6urj/pKSu/zc4h/8ZF5//IyC5/yYh - wP8oIsb/KiPN/ywk0/8tJNn/KiLd/ygf4P8oHeL/KB7j/yog4f8sI9//LiXb/y0k1f8rI9D/KSLJ/ych - xP8jH7r/GRia/0ZGjf9ERYn/ERGN/0tMof+5ubf/tLS0/7CwsP+urq7/t7e3/5GRkW0AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwqlpaW5tLS0/6mpqf+urq7/srKy/7a2tv+6urr/xcXD/7a2 - vP9QUJH/GhiY/yMeuv8oIsj/KiPO/ywk0/8uJdn/Libe/y8m4f8wJuP/MCbk/zAm4v8vJt//LiXb/y0l - 1v8rJNH/KSLL/yEcuv8hHpb/b2+g/8rLy//CwsT/TU6K/z0/jP+9vbz/ubm4/7S0tP++vr7/ra2tuTMz - MwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MqtLS047a2tv+ysrL/t7e3/7u7 - u//AwMD/xcXF/8/Ozf/Pz87/hIWs/y8uk/8dGKr/Jh/G/ywk1f8uJdv/Libf/y8m4v8wJuT/MCbl/zAm - 4/8vJuD/LiXd/ywk1/8mH8j/Hhqp/z49mP+iorz/3d3a/9TU0//Q0M//wsPF/4GCn/+8vL7/vLy8/8DA - wP+8vLzjc3NzKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk5OTUb+/ - v/a7u7v/urq6/7+/v//FxcX/ycnJ/8/Pz//W1tX/4eHe/8nJ0v9+frD/PDqe/yMeqP8iG7v/Jh7N/ykh - 1v8rIdr/KyHa/ykg1v8mHs3/Ihu8/yUfqf9CP6H/jIu4/9na3f/n5+P/29vb/9bW1v/R0dH/zs7N/8zM - yv/ExMT/xcXF/8fHx/aamppRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAKmpqWjHx8f6xMTE/8PDw//Jycn/zs7O/9PT0//Y2Nj/3t7e/+fn5v/w8O3/4eHm/7W0 - 0P+Egrz/YF2w/01Jrf9HQq7/SUSv/1NPr/9kYbL/iojA/7u61P/m5ur/8/Pw/+rq6f/j4+P/3t7e/9nZ - 2f/V1dX/0NDQ/8vLy//MzMz/z8/P+q6urmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvr69kzs7O88/Pz//MzMz/0dHR/9bW1v/b29v/4ODg/+bm - 5v/r6+v/8vLx//v7+P////z////9//b2+f/y8vf/9PT4//v7+/////3////9//z8+f/09PP/7e3u/+rq - 6v/l5eX/4ODg/9zc3P/X19f/09PT/9fX1//V1dXzsrKyZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr6+vTdPT0+Hd3d3/1dXV/9nZ - 2f/e3t7/4+Pj/+jo6P/t7e3/8vLy//X19f/5+fn//Pz8/////////////////////v/7+/v/+vr6//f3 - 9//z8/P/7+/v/+vr6//n5+f/4+Pj/97e3v/b29v/4+Pj/9jY2OGysrJNAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyc - nCfS0tKz4uLi/+Pj4//g4OD/5ubm/+rq6v/u7u7/8vLy//f39//6+vr//Pz8//7+/v////////////7+ - /v/8/Pz/+vr6//f39//09PT/8fHx/+3t7f/o6Oj/5eXl/+jo6P/m5ub/1dXVs5ycnCcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAExcXFYuLi4tjv7+//7+/v/+3t7f/w8PD/9PT0//f39//6+vr//Pz8//7+ - /v////////////7+/v/8/Pz/+vr6//j4+P/19fX/8fHx/+/v7//y8vL/8vLy/+Xl5djIyMhiAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGRkRXW1tZx5+fnzu7u7v38/Pz//Pz8//v7 - +//7+/v//Pz8//7+/v////////////7+/v/8/Pz//Pz8//v7+//9/f3//v7+/+/v7/3p6enO1tbWcZGR - kRUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzCsnJ - yUPh4eGT7Ozsz/Pz8/H7+/v//////////////////////////////////Pz8//T09PHs7OzP4+Pjk8nJ - yUMzMzMKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAHBwcCbW1tSbOzs5K3NzcZuPj43jt7e2B7e3tgePj43jh4eFmzs7OSrW1 - tSYcHBwJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///wD///AAD//wAA//8AAP/8AAA//wAA//AAAA// - AAD/wAAAA/8AAP+AAAAB/wAA/wAAAAD/AAD+AAAAAH8AAPwAAAAAPwAA+AAAAAAfAAD4AAAAAB8AAPAA - AAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAIAAAAAAAQAAgAAAAAAB - AACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAA - AAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAADAAAAAAAMAAMAAAAAAAwAA4AAAAAAH - AADgAAAAAAcAAPAAAAAADwAA8AAAAAAPAAD4AAAAAB8AAPwAAAAAPwAA/gAAAAB/AAD/AAAAAP8AAP+A - AAAB/wAA/8AAAAP/AAD/4AAAB/8AAP/4AAAf/wAA//4AAH//AAD//8AD//8AAP///////wAAKAAAACAA - AABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAoAAAAKAAAABgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAA2MjIyb1lZWZ1xcXG4goKCxIKCgsRxcXG4WVlZnTIy - Mm8AAAA2AAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsiIiJaaWlpu6Ojo/LU1NT/8fHx//39/f////////////// - ///z8/P/19fX/6ampvJqamq7IiIiWgAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4X19fuLCwsP/n5+f/9PT0//f39//6+vr//f39//// - //////////////z8/P/6+vr/+fn5/+zs7P+0tLT/YmJiuAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkYoWFhezS0tL/4uLi/+Tk5P/q6ur/8vLx//v7 - +P////3///////////////7//v/6//b29f/v7+//6urq/+jo6P/Z2dn/ioqK7CcnJ2IAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMXGQkJD80dHP/9LS0f/X19f/4eHf//Dw - 6v/u7vH/19fz/7278/+qp/P/qqf0/7e19P/U0vT/8fH1//X17v/n5+X/3t7e/9nZ2f/X19f/lpaW/DMz - M3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKytdi4uL/MPDwf+xssL/y8vO/9nZ - 0//U1N//kY/b/1BL1v8yK9j/KSDd/yge4v8oHuP/KB/f/zAn2v9RS9n/nJrg/+Dg5f/f39v/0dHS/8zM - zP/Ly8v/kpKS/C4uLl0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFMHd3d+m0tLT/vLy3/2pr - qP9qarn/qqnP/0A9wP8eGcL/JR7N/ywk1/8vJuD/LyXl/y8l5v8vJuL/LSTb/yYf0P8gGsX/TEnG/7m5 - 1v/U1M7/xMTE/76+vv++vr7/fX196QUFBTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVaWlqxpKSk/6mp - qf+0tK//ZGWk/xUVof8jIa7/Hxy3/yciw/8pItD/Jh7R/ycfyP8vJ8P/MSrD/yoixf8lHc//KiLS/ygi - x/8fG7r/LCq0/5ycxv/ExMD/tra2/7Kysv+tra3/YGBgsQAAAAUAAAAAAAAAAAAAAAAAAAAAKysrTIKC - gv6goKD/oaGh/6ysp/9cXZ//Fxeh/x8drP8jILj/JB/A/ygis/9iX7b/razS/9XV5v/c3Or/wsHc/3t5 - v/8wK7T/Ix3E/yUhvP8dG6//JiWp/56euv+zs6//qqqq/6mpqf+JiYn+Li4uTAAAAAAAAAAAAAAAAAAA - AABcXFyulpaW/5aWlv+ampr/o6Oe/1RUm/8XF6H/IB2s/yEduP80ML3/qqrC/+jp4//6+/b///////// - ///+/vv/9PTu/7q6y/8/Par/Hxu4/yEfsP8YGKP/PD2l/6enrP+jo6L/n5+f/5+fn/9gYGCuAAAAAAAA - AAAAAAAADQ0NJXNzc+2RkZH/kJCQ/5KSkv+ampb/RkaR/xAPmv8ZFqT/Gxev/yEbvP9+fMn/29va/+7u - 7f/8/Pz//v7+//T09P/k5OT/2dnW/6+wuv8yMKT/Hhuw/x0dpP8VFZr/a2yi/6Cgm/+Xl5f/mJiY/3h4 - eO0NDQ0lAAAAAAAAAAA/Pz9ZgYGB/4mJif+Kior/jIyM/5GRj/9RUn7/NDR7/zs6g/8+PYr/RUOT/01K - nP+rqsD/6Ojm//n5+f/9/f3/7u7u/9jY2P/ExMT/vL23/3x7oP8cGqb/HRyk/xcXmv8zNZj/k5SW/5GR - kP+QkJD/hoaG/0RERFoAAAAAAAAAAFRUVIiGhob/hYWF/4WFhf+Ghob/h4eH/4qKiP+Njov/kZGO/5WV - kv+dnZr/qaml/7e3t//U1NT/9fX1//z8/P/i4uL/xMTE/7CwsP+lpaT/m5ua/zY1mf8aGaX/Ghqb/xwd - lf96e4//jIyJ/4mJif+Kior/WlpaiAAAAAAAAAAAX19fpYWFhf+BgYH/goKC/4KCgf+CgoH/g4OC/4OD - gv+FhYX/iIiI/4qKiv+QkJD/m5ub/7Ozs//n5+f/9vb2/8TExP+np6f/mZmZ/5KSkv+Sko3/VlWM/xIR - mv8UFZL/DxGL/2Jkhv+JiIX/hISE/4iIiP9hYWGlAAAAAAAAAABkZGSxg4OD/39/f/9/f37/goKE/4iI - jf+IiI3/iIiO/4KCg/+AgID/gICA/4GBgf+CgoL/h4eH/62trf/AwMD/j4+P/4aGhv+EhIT/goKC/4OE - gv9xcX3/R0h0/0hIcv9FRm//a2t5/4KCgf+AgID/hYWF/2ZmZrAAAAAAAAAAAGlpabCDg4P/fn5+/4GB - fv9hYoT/LC6Y/zAxnf8yMqX/bW2M/4KCfv+AgID/goKC/4SEhP+NjY3/vLy8/9DQ0P+ampr/jY2N/4iI - iP+FhYX/hISE/4SEg/+Hh4P/h4eD/4eHg/+Dg4L/gYGB/4GBgf+Ghob/a2trrwAAAAAAAAAAampqoYWF - hf+AgID/hISB/2Bhf/8SE43/FheX/xUToP9eXZr/jIyG/4uLi/+SkpL/n5+f/7u7u//t7e3/+Pj4/83N - zf+urq7/np6e/5aWlf+RkY//jo6M/42Nif+Li4j/h4eH/4aGhv+Ghob/hYWF/4qKiv9tbW2hAAAAAAAA - AABpaWmAiIiI/4ODg/+GhoX/dXWB/xsdiv8ZGZj/GBeg/0FAqf+Zmpn/m5ua/6ioqP+7u7v/2dnZ//f3 - 9//8/Pz/4+Pj/8fHyf+3t7v/qKiw/52dq/+UlKn/iIin/4aGn/+Pj47/jY2M/4uLi/+Kior/j4+P/25u - boEAAAAAAAAAAGBgYE+JiYn/h4eH/4mJif+Li4n/MzSE/xYXmP8cG6D/Hhys/4aGtP+zs6z/u7u7/9DQ - 0P/n5+f/+/v7//39/f/x8u//tbTL/0pGuP87Nsb/Mi+9/yglsf8cG6f/PT2a/5mal/+UlJT/kZGR/5CQ - kP+RkZH/Z2dnTwAAAAAAAAAAMTExGoeHh+eOjo7/jo6O/5aWkv9oaIj/FhaR/x0cov8cGav/NjS6/7Cv - x//T08z/3d3c/+/v7//9/f3//f39//Pz8//n5+T/o6LA/zItuf8gHLv/Hx2v/xkYpP86Opv/oaGf/5yc - nP+ZmZn/mJiY/5CQkOc6OjoaAAAAAAAAAAAAAAAAh4eHoJqamv+UlJT/mZmZ/5ycmv87PIj/Fxeg/yAe - rP8eG7b/PDjG/7Cu3P/t7en//f31/////v/////////4/+zs7v+qqOH/OzbI/yIeuv8hH6//Ghql/zg5 - nf+np6f/pKSj/5+fn/+lpaX/j4+PoAAAAAAAAAAAAAAAAAAAAAB2dnY4mpqa+52dnf+goKD/qKim/5WV - oP8pKY7/Gxms/yMguP8iHcL/LCXO/2Zg4P+no+//xsT3/8PA9/+em+//WFLg/ycf0P8lH8b/JSG8/x4c - rv8WFaH/NTaf/6usr/+sq6v/p6en/6Ojo/t6eno4AAAAAAAAAAAAAAAAAAAAAAAAAACbm5udrKys/6am - pv+tra3/ubm2/5eYqf8tLZX/HBmz/ycixf8pIs7/Jx7W/yce3f8tI+P/LCLj/ycd3/8pINj/KyPR/ygh - yf8dGbP/PTya/0pKlP8rLJT/r6+1/7Ozsv+4uLj/pKSknQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm - ZhmsrKzctLS0/7S0tP+7u7v/ycnG/7Ozvf9RT6H/IBuu/yMdyv8sI9n/Lybg/zAm5f8wJub/Lybi/ywj - 2/8kHcz/Ix6v/2Niqf/Gxsr/y8vJ/3FynP+vsLf/wMC//7S0tNxwcHAZAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJmZmT+5ubn1wMDA/8LCwv/Kysr/19fV/9ra2f+iosP/WVey/zMtuP8oIMT/Jx7N/yce - zf8pIcX/Ni+5/19btf+vrsr/5OTh/9zc2//T09P/zc3L/8jIyP/BwcH1nZ2dPwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKurq0/FxcXzz8/P/9DQ0P/Y2Nj/4eHh/+/w7P/y8u//3Nzn/8HA - 3P+wrtj/tLLZ/8TD3v/f3+n/9fXy//Ly7//l5eX/3d3e/9bW1v/X19f/zMzM87GxsU8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6urjzQ0NDa4eHh/97e3v/k5OT/7Ozs//Pz - 8v/8/Pr///////////////////////z8+//09PT/7u7u/+jo6P/j4+P/5+fn/9TU1Nq7u7s8AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIuLixbU1NSW4ODg+fPz - 8//y8vL/9fX1//n5+f/9/f3////////////9/f3/+vr6//b29v/09PT/9vb2/+Tk5PnW1taWi4uLFgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADMzMwy4ODglurq6uL4+Pj/////////////////////////////////+fn5/+zs7OLi4uKWzMzMMgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAqqqqEtLS0kXk5OR17e3tlfLy8qTy8vKk7e3tleTk5HXS0tJFqqqqEgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//D///8AD//8A - AP/+AAB//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADwAAAA4AAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA - AAGAAAABgAAAAYAAAAHAAAADwAAAA+AAAAfgAAAH8AAAD/gAAB/8AAA//gAAf/+AAf//4Af//////ygA - AAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAbS0tLM0tLSzMAAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVV - VUiioqK1zMzM7OPj4Pvj5OH7z8/O7KamprVVVVVIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnp6 - eY3GxcP/9vbx//r6+//v7v//7+7///z8/v/8/Pb/ycnJ/35+fo0AAAACAAAAAAAAAAAAAAAAAAAAAHR0 - coqwsLr/t7jN/5eW1P9UTtr/OC/j/zct5P9TTd3/n53a/9ra2f/GxsX/eHh4igAAAAAAAAAAAAAAAFVV - VUKbm5j/lpar/ysrqP8gHLv/MCnG/2Ne0/9qZdX/My3I/xoWvv9oaLr/vLy7/6CgoP9VVVVCAAAAAAAA - AAB0dHStnp6b/4GCmf8WFZ//Hhm0/5+dzP/+//b////7/8fH1f9CP7L/FROn/3N0pP+oqKT/enp6rQAA - AAAaGhoTeXl55oyMi/+AgIf/W1uG/2Fgk/+Uk7D/7u7s//T09P/Ly8b/jo2k/xkYov8wMJj/kZGS/39/ - fuYaGhoTVVVVJ3h4ePeBgYL/gYKI/4iIiP+KioT/jY2K/7W1tv/CwsL/kZGR/4mJiP9DQ4f/NTaB/319 - g/97e3r3VVVVJ1BQUCZ6enn3eXqA/ywtk/8/P5v/hoaF/4yMi/+8vLz/ycnJ/5qal/+Skov/j4+G/4eH - g/+EhIT/fHx891BQUCY/Pz8QgIB/5ImJiP8vMIz/HBuk/42NqP/Cwrv/7+/v//f39P+hoMP/Yl+1/1FQ - p/+BgZb/lJSR/4eHh+Q/Pz8QAAAAAIiIiKaenpr/bW6R/xQToP9CP77/v77b//z8+f////v/p6bb/yIe - vv8REKf/fX2h/6mppf+RkZGmAAAAAAAAAACLi4s3oaGh/LCwrf9lZaT/Gha0/y4n1P9fWOn/XVXq/y0l - 1v8lILj/Pj2g/4aGqv+xsa38mZmZNwAAAAAAAAAAAAAAAKysrHvFxcX/z9DM/56dxf9XUsf/OTHS/zsy - 0/9aVcn/qKjM/9HR0P/Bwcf/tra0ewAAAAAAAAAAAAAAAAAAAAAAAAAAw8PDedXV1fz39/P/+vr2/+/v - 9v/w8Pb/+/v4//r69v/b29r8zMzMeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs415eXlofPz - 8+D///v0///79PPz8+Dn5+ehzs7ONQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACwsLAN2NjYIdjY2CGwsLANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/D81e/APAADAAwAAwAPmE4AB - //+AAf//AAD//wAArQAAAP//AAD//4AB//+AAUIAwAOK/+AH///wD////D8AAA== - - - - - iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8 - YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAP1VJREFUeF7tnQeU - VUX27t+b4Lz/rKWjo5JzDmNAERMGVMxZUdExowgIqICCCKMgQaKERglKE5WMLYqCKKMIIsEhqKgjgtkx - B0zjUO/7VZ/dFodz7r3dBBn/3LVqdfftG86p79vf3rVrV9X/+T+7H7t7YHcP7O6B3T2wuwd+FT3wf3UX - tN+q7aH2/9T+qLan2p/U9lbbR23fqO2nnzT7m//xGl7Le3gvn8Fn8Zn2+b+Kzvo13EQINmDt9cc//rFM - z549j5o5c+aVCxYs6LJs2bK8N998c+Z77733/EcffbTqiy++eFPt/R9++OGbsPEc/+M1vJb38F4+g8/i - M/lsviMiRkiKX0Nf/tfcA6D/Tu1/sNZWrVodOGrUqPOef/75fhs3blz48ccfv/X1119/sXnzZpfUXIZH - 2nt4ns/ks/kOvovv5LsjxeBauCaubfdjB/SAgY4c733rrbc2+vvf/37nG2+8Me+zzz774N///reLt59+ - +slZC4HNlQDh+/k96Tv47n/+85/zuBauKSID17ibDNuBBID+G7U/ILtnnnlmnVmzZrVdt27dvK+++mqT - 5NvF248//uif46cBBnjbQgD7HD7TWvi99pwUYhPXxjVyrZGr4Nq5h93KUAxCmLXj0/e/7777Lly9evW0 - Dz/88P1vv/3W0TZt2uS++eYb/5Nmz3/33XeJBAhJUFwFCAlgwPM9dh323fzkeRrXqmuezrVzD1HMsFsV - spCgCHgFW2Vnz57dXvK61MCW1bsvv/xyi8ZzRgQDIEkBdiQB+H6uw64vfk3r169fyr1wT7uJkMwAi+QJ - pPZ/+OGH26rTVtORisrdp59+6tsnn3ziG7/zPGTIRABzA/E4YFsVwKw8VCIDn+v6/PPPixp/2zW+9dZb - q2fMmNE2UgTu1YaVxRDHX99LzcfvI7ls/tprr62kAwH5X//6l/vggw+QU9/42wjAa4wEaQqwPQkQ+n6T - /0wE4Do1YihqIWkVuK7kXgUlOQeLEX59yOYo93tec801DRcvXjxd4++f6DRA1zjcvfvuu/7n+++/75+D - APyfzg0JkM0NbA8FSCJA3DWZ9Ztaca1cM+Tl+mk8x//186cXXnhhOveufiLh9L8qPsDqkcCyU6dO7S65 - /4iOAuy3337bbdiwwTd+hwRGADrSCEAnQoJsboAA7pciQAg+98D9WeNeILLu86Pp06d3py+iPqFvfrUP - C/L2bN++/fEvvfTSEjoCkAFcAZ9vysD5v5Vw8SQwFTA3YFaUixso7lAwHC6GY38bXhJghiMACwAhosUr - Jv9GAAOf++R+uC8afxup//GPfyyhT37NagD4+Lt9R44c2e7111//hA4AbP3u5Pt9k3/0JFDAlKgCmdyA - DQfThoK55AKyESAEn++LB3+h/Jv0GwEMfMjN/VnjedyD+uKT0aNHt6OPor761eQOkLU/1qpVq+pjjz02 - HuC5eQB/+eWXfXvllVfcq6++6skACSAGr0lTgTAYTHIDNl4vbiBoBDC3Ec8BZLJ+FClu/WE8Y+6N++L+ - IHp4v/QLr3/yySfH01fRkPG/2iUUSf6VV1559JIlS5bBfm56zZo1btWqVb6tXbu2iASQgv/nogIWB4RD - rTQVyDUOSCJALgGgjVxCAgBmkvUb+BCde4X4Rn7IARE0CbXs2muvPfq/2SUY+H+67bbbzlu5cuW7gArY - 8v1uxYoV/qd8XxEJiqMCYTAY5gR2NgHM94cECIM/G83Erd/Ah/DcNypI3/A7pMBQ9Ny7t99++3kiAVPT - /1WjBMD/PePcHj16XCHwP4HhgP3iiy+6pUuXwvAtSIAimCsIVcACwviIwGKBpNFAUkZwWxUgW/AXl/9s - 1m9xD/0C6IAfqiLPce967hP6MMoZ0Ke7fFxg4O87aNCgm5UP3wSwAC4X4JvGv54IPCdyeCUIXQGdYgFh - UixgyaF4TiCeD8g0KZSWDUxzAZkIUBzrRwVD6TfrN/AxEvqDxnMQRRNMm+69996bo+BwlyYB4FMksZ8i - /W66iR8AFsAXLVrknnvuOad5dE8CVAAS4AogQZorCIeFSSoQTw1nmhf4bP1b7r1ly93KB8a6FaPH+LYy - aG/Om+//T/u3hnvZAsC4/IeJn7jvjwd+cemnnwx8+gTjoPEcBiEj+oE+pW+jPt7llKDI8gcOHNhFoP4E - sAD+zDPPOM2Xu2effXYrEuTqCuIjgjAzGHcDxAEfrnvNvTBqtJvZspUb3fQU1792PXdPtVquv9rgqrXc - kGq1fRsaNX4frDZQ/+M1vHbwgQ3chHMvcHNv6+JWT5vuPlMyx9K/4fAvaehnvp9RDP48DPwAPwK1SPoN - fPqMPjFXiaFACFyE2k9DhgzpsisqgQV8f7777rvb6aJ/5CYA/amnnnIqqXJPP/10EQlQA4iBMsTjASzB - 4oH4sDCeHQznB5DhVXMec9NuvNENPvwI17tqDdevak03RICOELCj1PKr13GTa9R102vUc7Nq1PdtdtRm - Vq/nn59cva6bqDZWrx2tlgdR9Bn9qtV0vavUdPed2NQ93r27e2vFSp+FNPnPxfrj0m9+PwQfsA18+od+ - otFP9Itc6o99+vRpH5FglwkMuZC9b7rppssk899wsVj9vHnzfJs/f35OJMjmCpJU4E1J5Ow7urp+DRu5 - nlWqu/5VarhhAn6MgJtcrY57VKAuqFnfLarxF/dizQPcSrXVNQ90axMaz69SW6G2TK/jPfNFkAKRYxKE - 0OcNgwwi1936nqFNTnALh+W5D99516eoLfGTZv0W+MX9Pv6ee4+Dj6s014n7hBC8Vsb1zS233HIZfR6N - Dn7R1DGJij3PPvvsJgL7Qy4ai3/88cd9e+KJJzKSICkoxCLiowJLDlmKePXChW7sVVe6blWrC4xqbpAA - GSXgpwn4J2TBz1Wv714UgKsE5GsC9I1aB7q3ah3kNqhtrHWweydq7+pn2Hie/2/U69arrdN7V+szltX8 - i1tU/S9ursgwRWQYJSIMEhF6iXS96v/FPXrnne49SX3o+y3jZ4FfXPrN7xv4qCbGA9Ah+LhO1BSjQg14 - vZ778Pzzz28S5Ql+sWQR0v/HPffcs6aqZv8BW5F8ZfvcnDlz/M9MJIDVvCckQZgfiLsCOnL5/Hnu/ubN - 3e0VK7uelau6oZWru3ECo6B6bfe05P1FWfxqgfWqQAO81wX8m2rrax5UbAJAFt7H+/kcPm+NSLVMivKM - vqdAipAPEUS+npWruV6HHOLmjxjhEzmh70+S/qSgLw18gMeFmiulz+gn9fEq9X2tKGO404NCy+2XHTFi - xETABPxHH33UqfrFFRQUZCSBBYYhCZLiAUuOvLzqHy5f/r1L1arurkpV3CCBP14WP0cWv7BGHfeiLHOl - 5HqN2is7iAAoCcTi81eLCMtFgoVSm0d1DWN1Lf1Fgm66tv7HN3FL5zzqU9mW7rWoP+73LeLH72P5zz2z - 0A1u2cIHy1h+CD79a+4UEqAYDzzwwCQRgJlE5ll2Kgnw+/uqErajLvI/Br6UwKkosogEECJNCUIShMND - yw/Y0HDu6NGu+0EHu66y+v6Vqrqxkt3ZCsqeVscvqVbXLRP4KwTGP3YiAVCCVfq+lfrepcQZcgszdE33 - 4RIqV3GdRdDJHTu416OcRprft4gf8J95Yq67tfGRrtMRhyWCTzyFS507d64nAiRQHcV/unbt2jEICndK - POD9vipfT5MMfQb4WLzmtX1T2ZODCKYEIQm4+DAwjJMgHBkskz8cce3VrkOFiq5HxUour0pVN01y+4Ss - 7dmqtd1iSfDSBAKs3cEKwOeHBICAXMdzup7H5RImigQDRFQIe89JJ7hlf19YlOpF+i3oC8GfN2um63DI - Qa512TKu94nHb2X5IfgWXxkJ9POzc88997SdFQ8gM//zhz/8ofrEiRNXGvhTpkxxquVz06ZN24IEqAHk - gATEBVx8EgnCHAEkePqRAndn46PdreUrunsqVXb5ktfZCrqeUgcv1Bh9UZwAAsEU4JciwBIR4DldF9c4 - XUTNkwrcWaGy61y7tisYPtRnO1G1eMT/6MQJrl3d2q69wL+zfDk34szTinw+IMfBtxiL/qT/cRcqrFkJ - JmCzo10BqchS3bt3H4gcASzAT5482T300EP+d8gAEUwJzCXkQgJkbUbeMHdzzequS/kKbpCsaJKi/Dnq - 0Hmy/KcDAjwfKsAvQQCNNFbqe00BIADEfFYEhQQQdrSI21PqhYoNv+Jyt0zkDod70/OGu7Y1qroO5cq6 - PhXKu3vVxlxwrgc2Dr4BTz9iVCgsv/M6Rgm9evUaCDZqYLRDHkj/XqeccsoZAvcrGAjYEyZMcJMmTUok - AS4hjAuykWBcjx6uXcWK7o7y5V2ewJ8i2Z+jod4TIsD8HAiwWqCslX/eEaMACwKLXECMALgkIwBEhbAF - cgf5UoJ7RIJOInTXhoe6eVOn+uHexN693I2VKrpbBX7/ChXc/RUruBH6mX/FpUXgo5aoZhL4GBZ9S59G - o6+vTj/99DPASG27Dw0t6q88bNiwhXwpVg7448aN8z/lErYiQugSwuDQhomhO7jv5vaurSTwToF/v2R/ - qjquQBb0mDrxCbWQAEhtkgLsFAKIYKuVE1iVhQBPiQAQt0AEnqh7Qc1QtXZVKrs+Z5/l77Wr2mCBPkqk - HxMRYNy1VxYFe5nAR2GtQRBIoIqihQK/8o4YFVDDvu9VV13VWl+6mS8G9LFjx7r8/PwiEqSpQVJwGJIg - r31b18b7wPJupKxliiLp2QqktiRADbmAmj4GeE4W9rxGAUVBYOQCdkUCPC7yFsiNTZaa5eneugvwTgL+ - Lt3rcAE/NmoPiAB5em58q+t9nAT49FEo+Wb19D99ioGhwvweBYebr7/++jbRqADMtsvDJ3zUaufl5b3K - l2PtGoP69uCDD25FhFAN0uICCw5H3NqpEPxy5SSDldxkWf8MjadnxQkga4IAz2xBgDrywXXdijgBamz/ - RFCRC4gUgKAzjAFwASgTMQAuwBTgMSnAHBFgltRsipRgVOXKbphAh+jj1MbHCDCxXZtUyTfgQ/DpXxr/ - QwmEyat77LFH7Qiz7ZIbYMy/v5h1h9i2mWAP4CU3bsyYMYkkMLcQjw3MJVhcMLpnT9dawHdXu08dMVHg - TxP4aQRYoAmZZ9S5PyvAzwRgTF6kADECvPWXhu69c5u5jzve6r4YOcZ9nT/ebZpd4H5Y+ZL7RjN9/P21 - pok/7Xibe/+sC9zbBx3u08ZhJtATQJ9LjIELSCMACgVRn1IQiOvChUGA2SLATJEadZuk+5wklzAxIAAu - YLgUYFLnTt7yLdBLs3pABwsCcAvCCQwfeeSRzW3atOkKZmpgt00Pb/1iVD35/tf5Uixec9NO6+N9y0SE - MDYIRwkwOH/oUNeqUiV3e9myLk+yOEGd8VBEgOkpCpBGgOU+E7glAV6rd6h7++oW7ouZs92PX329xfqA - XApCNj2/2P3rbz3cW0cd71PBWxKgvgigBJQfBdSVK6qjvERtT8wkAjzKMFbWP1P3NU0EmOIJUEkEqBgp - QAUfAwwTASbfcftW4CdZvIGPkaG49DXuAOIInzfAbHuogLf+q6++uhss40sAX0ubfDMiQIJsRAjVYLIu - uP2B9V0ngc/QJ18dQYdAgKnqpCQCzJML2IIAkluGXi8KgJAAb1xwkftYVr3p0898Db9VBoUVwlT+xB+Z - qoE+l7SuP+u8QAFyIABJq0gB0ggwIU4A9cVDPe702VRUMu7rQ6s34A18U10beUmxKSDZJhUw6697zz33 - rAF8JF9xgG+aA0gkQppbMDWASLefdoprX6a0GyDGP4D1a5zsCSBZTCLAXHVkNgK8fNqZ7kOlS8PSMCqE - rEoIMhgJDOyQBDxni0HCZeDhYtBPNOZ+/fSzvKtJVQCpAER9KkaAWQkKECfAEAjQ+24PftzqQ4sPrR7g - CcRpBOX8D+KoeGSNVKDutqiAj/yV8m0pUDfz4YAuV+CGDx9eYiL0a9fWtSpVyvVSJDxSw6J8I0AFBYAQ - oKIUQM2CQPxnEgEYcy+pqhig3sHujUGD/Zq7cGEphaM8R+EGJKCaB2BtuVhcBeIE4PW8z5akG7H4+b6k - 9uXjTvIuAAXyLkDX411ARID5CQQgtgldAAQYJ+kfq4YLQA0fGjQwI/ihxYfA45qJzXguIstmpYhv2JYR - ATNMVVWavMD8/lD5bWtGBCODKQJuIXQNoSKMkdtoVb2K66qofxhZLxIfEQEmSgUmSwWmigSeAGoFCprm - yH/GCfCsOhkCLD/+RPeuavisIMOWXVGUYevvbN1ArgSwZWBGAFvyBaFotiTtMxWBrB823C0/tJF3Rc9v - BwIMVp9MGT7M+/Ikube8SxLwgE9f03gdJNDGVk+DYZQXKFYwiPz/qV69eqdKSr7iQwFc1alIi28lIcJt - p57ibildyg2U9Y/SzSL/EGC8wE8iALkATwDN+89TWxANBSHAi5Lid1Q1SxEG066UkDH3zjSsLbeCGACG - 1VIrmIsCQABk35Z+Wck3hLIFrMz5W2n6h/q+VZdfmUgAiMsogBgAF4ACTA2CQFMA+gFjGKQ+mTwiryi6 - zyT1ZvEGvMVhBOY8h1LIEL868MADTwVLtWINCQn+ympFzyCsGesG/MGDB/vG73EyQJDQPYSKwEUN6t7N - 3SDw71bq8z4RYHQWAsyUAsQJ8FTlwlzAsmuudhuj5WNMsNAoP2feHTKgBIAVugEAtTjAdgyJxwC4h5AA - yH+0nNsv2woXsvJdFHtCwI3Pq+pZrgBihi4gkQAiAbHOJLk8Yh9cgBFgIMPAUSO9H88m9SHwNiIz9eWn - JegUDA4Cy+IOCX3i54477ljFhwHsgAEDnGr9fTMiGBlCVUgjQrtDD3adFfgNFvj3Q4AoAExTgDgBiKgh - wIvt2hetLbQSc2bYmG2zlTVxFUDGLQ4A4DgBLCiEAKhEKP+Unpv1Qyxb0Mp3UbX0TP44N+OAQ9wCgQ8B - yFMQBM7X9UIAFAxXNov8hkhNkJtEgNFSAILih8fle/AJ7izAI/4yizeZx+LjwDMyw/Bo/B8SyA2sAsso - GMzJDSAV+zRo0OACgf4jET9A9+/f3zeIkESGUBVwDyER+pLtK7W/6yvrzyP4U+LHE0BB4FhcgKZ9zQVM - kXWQDAoJ8LjkHwIsbnGdl3ksnloCpkIhARU1tpgCV5CkAriBMA4Ig8CkAJDXI/+2aYVZP9/Pd1DdM/Pu - Xr4ucEzFapr8MQIUjgDm65pxXVsToLIIoByArD9UACPAQxolpQEfyrxZuw3JAd1GaDZKgzSK0X5s2LDh - BWCaqxtA/iv89a9/zTPL7tevn7NmRMhGhjBOaNfwEAV+pd29ZZXxE/hGgDEQQM0TQG2yZHGK5tCnyVKM - APhPCPD0WWe6VyXzzKQxFc00aEgCW0hhrgBLtVgAK0bOwzggjQDm/03+bfMKs36kf60sf1zLlu5uXWde - Jfn3KEPpFYAhoJSKmCUkAEmgQgX4mQDEPuYCcIkDNTtocyyhxWezdgOegJxmrtiCce1EMgJMc3UDFBXU - adu27WJARPL79u3rlAsoamlkiLsIVKGXrL91qf0KrZ+Ub0SAUVKAOAHwi0UEqKAYoGJV96jk8/EDVLK9 - qHBlkdUbWmmUkYBCEubazRVgqVTm4qMtGMQNADBSn0QA8/+8DrcBccz341Yo7V6tWry80053fXVtYyop - yPOWX1ujEv2skpkAjG4yEWBwjep+LJ/m30OJTwId4C04Bzteg5vQAt0lYKoGthkfyP/eVatWbaqij0/5 - EMDWYgRPAmuZyBB3ETc3OdZ1KVPKDVLWb0QGAkyQAkySRUwRCabJDWAtNhRccv/9Xuoty0XOm3x5SAKK - SVAH4gF8MzJtKoAPJ5gzN2BxgAWB5gJ4Hjdh8m/WbzuYLHtynht0+FFuYEVN8eLno8qkxVWSCYBymQtA - AZIIkB8FgRjEvfXr+WGcWXwo86HEh5YeB91UG+Pjf5Cmd+/en4Ip2GZzAyR/Sh9zzDE3AjJgAro+wJPA - WkiGUB3iytCvbx/XSmP+XuU07pcCGAHuFxFGKRYYo5seyxSo3EAaAZ5sdqGvgLVxMWNkMl2ZSEA8gCuw - pdamAsg6AKcRgAAQN8HrzPpxIxDp2YmTXN869d0wWf0MAb8wqkhaqmSUEWBhTAEgAC6MIBCXBgGIcR4S - yYkBcH0EwcRCEGBog4O8xVq63QI6LDkb6BaDxUdrvA9SNGnShC3qSqtlnCZmcWflZs2ajYUAAKpSI98g - QdjSCGHqwHu7/PUy17H0/m6gCDDcE0CtfFkXJ8A4kkGBApAM8gpQs5Z7QXPjWL7lukklQwaeI2fOfLkp - AaVRuAmLB4jUCQgB0ZI4FgcwEggVwEYA/B/5x20wlMT61+lz8i+8yE069ng3/5gmmvjR/EO1em55VWUB - tyCAytYUAD4V5S0eV3yAC8OVhQQg1iHmMQLgCkdCgCMbeYuNW7sF1KG8A6qBHo7KzA3zEwPmPbz28ssv - Hwu2amCc+mD4V0e7YK8ASKxb6/18MyIkESKNDDcdeZi7S0O/ez0ByigGyE4ArMMI8GTbG31RJJKIX8Q/ - QgTGyWS6mF62sigKIqw+DncBCXAFBG0WC2DVyDtxQBIBeJ7/4y5wGxDHkkwoig0vCQj5fd2TT7pXHnnE - rZFsr5RCLv/b39ziq692i666yi04oYmbd8yx7jGtHJodBbXTKXOj5iGBAPeLAENUFm7WXhLQzf3y04J1 - yAEB2rVrtyKKA8A48YH/3+t3v/tdI609+8CkX+PIIhIYGXIhRG+pRtsK5VxvRf/DypXemgByA7iAB9TG - mQuQVXgCMBKoXsM9N+9J7xOxCqSR34mOGd8SLaMGuARIQHAYJwHxAMAREJoKmBsIA0FiAP7GPfB/s37b - ywgi8Vl+8YaGnqzUIfhktY4t3bKFnLbsPVzrz3tfRJ1UAbxownj3VLc73JPduroClb3Pan6Rm3LmqW6c - jGVU82beb4eWnsnKkwA34M0dowR8RufOnT8AW2GcmhWEAPvVrVv3Yi34+AarxtohQFILyZBEiNuvv951 - kvz3F/jDIIFiAa8Aat4FQIByIoCaEQBZfKg8BKjkCq6+ysu8DWmQRRvWQIRQDawihrjASAAwtqCSgBAw - iegZ2yPzcQIQF/A8/zfrhzgQiJiCANPAR5WovoF0NnNn1dGWxLFMHCS1Kmkrg4NANK7PGqrF8DZJ2k3W - 0wAPh+n8HgbpEIL3K6j/Rql9dihlj4HEtDDBQdnGjRvfrgzgZvw9wGuLkq1aLoS45fSTXXeif7mAIUYA - PxL4mQCjEwlQqALzJ030lmAp5zgRzC2YGuASIAwkABzcASQAOIaGBISoANbNMA/AbSjITwJAnsdN4PsJ - /IghQvCxeEACSL6HYBQF4rtxS5bAQaXi0bz59TCYM0uH2JbkQbKLA3gItrnt+IgNEgjHzccff/ztwric - WmKlkA8AVfY9TGzxsn/XXXcVtSQihM/FSXFLw4Pd3SR/ciJA4UigUAEquoePPtJ3rCWbLP1sySU60RSB - jqPDLTbgfQSHRgKslngASwZUVACZB3AjAPEA/p/nCRbx8cQOEAdJ5zMAn2CToJPPx6qxeoDHHUFEAz4e - yYd+3YKyuLTHQY9Ledyyk8AOYzH7HUO2WO7UU08dJoyrpAWCnHRRU8uOp0EAAA0JkPZ7GjE6VK3k+hIA - phDAZwMjBciPhoI+G6g288bWXgptJBInAp1HR4ZEMLcAGACDNGOptoQKP4wrQAUI8vD3Fgjyk7+Rf6yf - wA+/b+BTco1rQfLN6q1CCuAtcWPAh9ZuPt2k3SL24gIeH3rHwY6P0uIjNvDU6G4aGKuB9VYPosN6zZs3 - fxYCAOydWvcetlwIwWu6d+lc6P8zKEAaARgOztCKmTD3YLkGrCAkQ+ge6HSbCkUNAAiXYKtnCNIIzAAX - K8ffGwGIB/gb9xBt0eZVw1Y9oyZm9XHgUSAbt6dZepKsxy08lPIQ7FyBjo/Swr/NnSu9/6wwrq+WOBJg - 1+oDNQW8Ko0AcUKkEaTLDTe4rvL/A0WAwcVUgPxatXyAFwaWxmbLSMaVwYY6WJsRATkOCyVRAgItXAEq - gNwDPA9+8jfWj/SjFoBPsAeBsHpUhQDPLD60dsu/W8wSWnk4JLNgzcAuLtBpIMcD8vjf9B8GrXUdzAxy - 0BVYb/VgeHCoCkDXd+vWzct/NsDT/n/bZc39+H9QCgHuUyCYpgDjjj/OJzC4YIsr4rkIUwfrQFMGG/IY - EWxKlCCNoA0SEBQSEGLtBII8iAcI/ogRCPoAn2CP9xBT4OcBHjcD8JDMQA+l3ZIvoXVnAzsu3UkgZwI4 - bZQWPs9n0p8tWrR4UxgfEg0FtyLA3nqmkQoI/gUBABclyLWFZOh60YWuJ3P/UYuPAtIIQGZsfPNLMgaf - SaQICQEZIBBWiEUClpVJERdAAiwcFcDv8+An1o/fB3z8PVaP3BvwyDwSD7kA3WTdLDy0biNmGIiFQMdB - TgM4F3DTRmrxAB2DVoLvIzBWA+utHn/WM0e2bNnyi5IQYAuinH+u65WoAGU0DCyjGcFkBWBq+MFWLROV - Jx5/JI1AzG1Y5GtkADCIgFvAoiEBrgDZ58FPpB/wbcUzwJu1WzkcoIeAWySeBHQIchzgbMBmG3HF/58t - NrN4TgT4AozVwHqrB9uUH6UXbVIeIGfLT1KIu7TEuXeOBCAZZKMAcuIjbmq/1Xdnc0VJw1XLYAIEAEEG - AIQIxAaQABXggfUDPlYP8FYFZYDbEAzL5rPMmg3kEOAkcLMBmg3AXP6frY8w6tatW28CYzWwTiRA4xtu - uOH7bSVA/zat3ajzz3b5URt/wdmONuGCc9zEC89xk3w71z10wXnuYbVpF57npl94vpvc7Hw3jFFEMVxP - 0muTglOLKQANQCECJOAB+ABvpW9YtgHN6wE4BLa4FpgNnJ3xfzAVAb4X6o0zEeAYuYDvte+MgzElBYLg - i7FzSRp+u6Tfu/t9yTEbWKq83ym++1bgH5ORAHrRpi5dumwTAbYHENtiFWkuwdwBfhz/TnaPB8Ukv2YF - AA8IoFHA19kI0FjDwC81c5RKgG0BpqTvzeQDswWDSLkVt6AuAE90D/gWA5AehgSMEsIYgESTBX1hwFfS - GOC2y/7qrtx/P3eF2l/3289dtt++7lK15vvu6y5Ru3jfP7uL1JqpXbjvPu4CtfOj1uqUphkzs5n6FgJg - 1KoNJAjM6AKOUuHAx6oh8zJcUsCyvS+XoIbXZJuICvMDYbLIEkWAZ6VRAE+GkEAP8BkFUPjBgxoAZv4g - Aeljkj4QAVdmy+Fs6Jc0CrDgMClAtBiCa+3YtKm7Ucvi2u6/v2uj1lqtlcjQUmS4Xu06keBagX/Nfn92 - V6tdRdPfl4sE7c4+I7E/6KNs/QkeGLWSfB9nCgL9MPCSSy7ZoOlgrwDZgLT/Z7uA4s4jxCPppDqEpFSx - pYktB2BFkWQWsXoSO4BPsifMAzARhApACkjApA9qkCkPYKVX8UxfmPgJ07hc752qjh6kkQ77AAzR6Ode - zYcMUuuv1k/tHs2W9mGrOLW7fSvtemg01bVsKdfv+hapU/PZRhlGAKX5NwjjI9KGgSQHGmky6OWOHTt6 - BSgpsGnWm2n2MKnwJF59FNYkZkoHG/BM0lg6mPE94DPBY5lAMoA8yAgyEcQ8ADOAkIA0MJM/zPpZJpDP - Q0koULGkUJj+tUxgYnKIsjrVAY5lJbQvB6ugOojCmkgmxaiPoE6C6fI8EYH6CRJoTKb10c8BN7ZKLMyJ - j1CShqHggVFrMmgtGKuB9VYPnwo+44wzlqgiyCtArr43jYG5FpMk5f2TLDwJdJsZDOcBAMomhJB8ZB3w - Kb6wuQDkP5wLwA2gArgCFML2Pua9qIFN/dpcgE0C2cxf0qxfSIgeLVq4wQLa1z4WEYB1EekEoJDmXjWq - qoZoaV2mCZ9M6WJw7NSpk9NKb8rDD1UD660efjLoxBNPLLj55pu9AmSTljBfnyvYudQWhuXnludPmgUM - p4StZAy5Z9LGpoSZyQN8JoKwbmYDqfih+MMIYNPBzAdQC8C0MeliSGC7n+M+mF1kXsEmhcL5fyvmDCeG - wnmC7scdpyVxLH4pJABEoBIKApAM20IBpALUUFJKBwF6qY0YOqSoKjtt6jeNIODUoUMHd9JJJxWAsVri - ZBBThPWPOOKIB3SKpSNxEEp5tvRlEgNzATtccxBWFIdL0awgJLR2W/4UAm91gsi2lYcBIFPBWDXp3qR6 - AApDiANQhegQR68ULDQxElgxCGpAOpn4IE6EtKnhISrJ6qHNofLZBEPVTlsRQCQoIoCqpimdCwnQr7bO - QdAcRKbZwzAAjc87gCOqrmqvB8BYLXE62BeEHHDAAX2UDdxMMijJwtOkJhPYaesKQsDDuX5bexguPrX1 - hgAfLxJF7s3qkXx8N4ABvm2vblW9AAzQYWWwlYThBpglhCS4AiaHqAvgM6jhC8vBUAOrAwwrgmwDLYsV - cBF9r2vhBpRTxZOKXSEAKuAVQOXwY9knAQKwaJYYQAQgDigkQBk3WLHA8KbH++FoSaqCfPCpUYCygJvB - FozVEgtCKAmrUq5cuVYaLnzLsAEC5GLZJV03kCvotgmFAR+vBwyrg22dgIFP0GcncFlNIECHJWEQICwK - hSQEhGFZmJEgXhCaVBoWLu+CCH9rcLDfAo9FIYVl4T8TID9GAJbOsYCGdRQQYJDagzdcW5SPKG6pGARA - zZUD+LZixYqtwFgtcW0ARaHlfvvb355+8cUXf0zQgHQk+ZVMi0TSlpHFVw2FS8jCfQes7i8sAo0Dn7Q+ - wBaJYKWAT36fuX87eYuqYFYIUQ5G9U+8KDQsC6diiNXAxAsUhtqZh5CAcnDmEJgytvrAeHGoKQLXOVSx - VK+yqnkU8Cx5CwnASCAbAQaIAJP79y1WoWioFGBFEuiyyy77GGzBWC2xKNSXhas1Puuss14mEEQ6kgKO - eJlSSdYNpoEO8OEmVLYVXbgwBLk3qw+XiYXgW0k40h+uDkL+mf9PWhcQLgxBBQgI46XhRgLmOXAzViFM - bGBqwLVZsehdjRtrSbzWPPqtb+IEKFwaxiwoS8MokokrwIDKihtUkBIu+cqlchilsJVdGDPDe7CNME4s - C/fbwqgdcvTRR8/W6mA/ErD8ebalYDZEy2TpBHNdLrvUXVu3lmuhLdJbH3aou6nJce7mE45zt2if/A4n - NnGdTjzB3Xriia7zSSe5LsqcdT35ZNftlFNcd+0sdtfpp7oeZ5zuBl1zrRvaurXLa9PG3afrHHXTTW6M - gpxxnW51E8X2qd3/5l7UkC/TyqA4ARgJWGk4OQFTgfjiEFQlJAGkszUCqBCENCKM0obQPeT7x2llEEvd - CglQOXFlEPslJBFg9Nmn+zqGcNFnWkVxOOy0mAEXjjEfe+yxs8E2wjh1uxiiw7o6vfpuBYKOQBACpC0G - DUHPtm+AXXRnFYtcrfRnCy0Zb6FNI65TOvR6pUdbqrF7WJtSpZUuLe3alS7j2qvdXKaM61CmnOtUpry7 - jaYhU2d1audyFd3tanfIurqVr6y9+au4Hmq9tB7vkXv6+SGfbRaB72foB7BpS8QhgK0ODheHogK2PMxW - CBkJWIuIuyEuMJfA6MMWi/RsdJiyflroElscmrQ0LIkAQyT/s/v1KUo6Ja0EzrRyCExQ8Rt13A6Ygm3a - CMCSAn5twN57732F0oZfIB0wKGk5eDg+z2WzCPPtdza/2HUW8N0FdreodS9d2t0lsHuo9VLrXbqsu0eg - 95PvHCDAB5XVFmoCe7hanjp0eLnK6tgq2l69irtfbWSFam60gB+rZdtPKHC1PYPiq4OR/3BxaLhHQEiA - pOXhuALiAYjF8DCJBOYSGIXc36mDVkUr8mdxKASIlof71cHRDiHh6uAkAgzVWQKPFcwu2vmjuCuEwQgj - VjXwl2CaKQA0Avjl4WpNtPf8aqSD8X9Jdgixku34bmK9r7rc9RXwQwQ6bZhankC/T6CPFOhjSis9Kksf - L9AnCPBJalPKKYCSlc8U6LMEeIEAf1TbsjyupdpzK2k3joo13YLK2jrurh5+vM/2LbaJk1m/7RkYLg+P - bxKBWyAOsA0ibHsYWyLOZxJTQDBIYMfimhIQHEKCWYpR/lajpjaE1k4nbHodECC+QYTtD8AOISM1FGQD - rRFqeRoOTtbW8SSekraByUYGW1dBClgx3RowjbDNuDzcbxChduiRRx45VZsOewmJZ+Oy7REURvLxncP6 - tbjG9RMB8gT8fQJ+pNqYMmXdAyJAvoCfoDZJ4E8pW9FNE/gzZfEFsvg5An9uhaoCu5pbUKG6e0bW/pzA - f17AL6msTSO7dffZu/gOIbZbmG0Xl7ZTmC0QDfcIsFXCtkzcXAEEiw5x3IIE5AogQd9jj3MDNea3Mw8y - ESDcIiYkwDAtrF34yCy/6MRK0JP2DUjbOwAMCOB1oCcJoKnCtGGEbdbt4thGpHapUqVuUh35vxlCEANk - 2iUsydrTtowbcGObiABYfUQAgT9W1j9Okj9BbZKkcwsCCPw5svwiAgj8Z2T9z1Wq6QmwuHMXb5Gh9Ic7 - hZHitZ3CbIuYcHk4E0IhAcJdQkIV4DPNFRAPJJFg1A0ttQuqtoCT1bM5RO6bRBUqADuoMRIYf+6ZPq7I - tF1Mpi1jGCkQxKsI5N9ly5a9CUyz+X9zA36TKLXTNHnwJm4AJlmpddo+gZapM2kKh3Lh7uKDbm4nAii3 - LfDvhwAK8sZo9ssIMFEEmCwCTJUCTJf0z5QlFYQEkK9f4Amg5eOVRQDVLpCtM+lP2yUs0yZRRgCLA0I3 - kLZNHK4AtbEDn3EHDytgvkvgj2Fvo9Rt4gpjgPg+gewSxiYRngD6/e9TCxecMgKIbxiVtIVMuLEEGBCX - If/aLpa1AJwqlvMmUUgEtQGHH3rooQ+rStgnhGzRRdJOoWn7ByduK6+Ygr0CS7xRpPbmKdwqtpZb2/UO - X9FLsIdFpu0TaPKftk1cEgFsq5ikreJwBRYPGAlmke8X6PexJ6DfJ7hG4T6B2uvY7xSq57PtE0guAAJM - uaSZTziF28XlslegxQoQgGG7NoVwjRo1ehgsI0yzyr+pgN8oct99921z6aWXfkuFEIyKbxEbl/n47qCJ - 5wn0U1YrRgD2y8tlq1j232OnUAiwvPmlRUu5ACFpp9Bwv+Bwo8j4LmEhAcLNIhkN2G5h8c0iw/0CZ7CS - WlF+XgT+fL9RZCEBttoqVq+z8wLiO4X6ZJD2Ul6qI3LtZJZwf2BIkAsRwIXpfFL6YFgc+Q/dACnDppoe - fgkm4QbSZD4n4KPzhfIHDhQBNAfO5kjF2iyavYILTwxhO9a5tXSGrzp+peSfoCy+VzBp3+JuFRtuFx/u - Fk4wyGfFt4tFeaYxaaZof4TfL7DwbMPCnUJTCJCwV7DfLZzDo9Qvc3t09/saJB0IkaYI8TgBtaaoR8vB - XwJDtdT0rwEe/2lZwQbaXqy/Agk/oUCwF+4OXhzgi46R0ZZv7IkbJwA+Mdft4iEBhzMOlq/tc0hDVyB1 - AgzW9tk+wWb94WbR2fYKNgLE9wtO2jD6dZEuX3sB9fLnAGk3MDvWbhu2i59yzhnelZFRLOmO4bgBcje4 - 7mrVqvUXsA3Uir1ZNITw28VrAuH80047bQPBIMPBtOAu24khdpDUww+M8QSA8aECFOfACBTgMW3J9qA6 - vr8sr4ekd1DjY9zCceP9VG5o/eE+wdl2C7eRQHzH8HDLeFTgmftHunsObqBTTZV8krXP5RwjOzKmhATI - r1/HrVq8xGcWLZ0cJ4HNMaRtJI0SoNK4bI39N4AdGEZYphl76vP+wAi1I7Vv0IPXXXedDwZRgLQzg7Kd - IoasTdEmSQOjswI8ASR/bJte3CNj2J3zKXX6TB3SNEajgYEiQy+1ESc1dUv1PQzfintgRLhhZLhpNCMI - VOANTS2PPvts11vfM0wKNIXTwfx5QVueGVTcE0M4Mm7xuLF+NEMq2eYUMp0aAgniRKD/Cf409+809/8g - 2EUYlugIOTsuruZvfvObSzQkfJ+qEvyL7WljO1dnAz48WnaGCikGRATA98UJwEbROR0aFZ0ZxAGST6vN - io5xHyxg+gigvBNOcgvlsj58c71P/4ZHxqRtF5+0afRnsvglY3QSh/YJ7COy8fnjUSBOCtV+gUvTDo3K - 4cwgOzTqsRuu9yMY24XESFCcc4NwsagzdRwa+r0PZgKf4g8C+pyj/7gc+EOj1BrXqVNnLCpAkQh+JtuR - cSb58TOFYffASoVHpEAAMmGhApTk2DgOjVqq9qwAmSNgAGi4Wn/55T6S6PxzznMLet7t1s6a7T4VIZII - EI4EPtQYf80MFYJeernrX7ue/5yh+ryxIkCBjop/Vt+1XOcGFZ4aVnh6eOG5gbmeGlbFxzscGzfz1JP8 - RpSkk9MOi0w6PCp+ogijAxJ2ZG/r16+fD2YRdtt0dJypQC0YpYrh94gFSAbZ/Hz89NBcjpAdXJ0t1otP - gEwHR3JsnD/LT+15tScEzDSB9aCUYYTaEIE3QK0fP2vVcw82PdWNPfm0LRrP3VOjjuuv1wyCRHrfGAH7 - sD7nMX3ecwJ9ec36OjY2+ejYTAdH2rmBhWcGFRJgxlFHuNdWFZ4ozoxieFZwLieGGglIGGGU+P5zzjnn - vcj6a22r9YdDQlTgKEWVeRpbbibFiBuwypzwfEDbxTM8MdSOjrXzg4fWrbMFAZBCiwFMAbY6OjbLyaHh - uYGv6IDHNWor1RbroMenRIgCATi1Rl03XpL9oAAdldLG6PkJatNFqLl63yK9f3lNHRbJoZE1fz44Mtez - gzk61h8cqTZTIwYjwIxGDd1ry1700m9zCHZUfNqZwXGXYHUHyD/DdI3WNlevXj0PrLaH9RsBTAVq6Inz - tdfcyxSLEAvYPjxJVp/pGPmhB9R3o4sUQEmgFAKQQfv58OhinB0cnBzKoY/rdOrnGv1cJQCXqy1Vey6h - LYr+t0I/ee0reh/vLzo4EgKIDGtEihIToIpmM488wr2+fJmfV7DNJ4n+qTIyEqAGmU4NN7eAiyUwJz5T - 2TdVP0T+YLVNvj8eC9iI4LD99tuvm1aYfMckEbJj5VlxXx8eGI3l21nBlFDlHX5opAAcmAABCnMAdnLo - DObQBf6jshrO3o0fH7+tp4dvqHWwW0+rWXg8bFHTc2+pbdSxsYlHx24HAjyuyqf1mk4mZ8FaBQiA/7et - ZyEBM4pUGsWPj48fJ+tPYNUaRmZsVfP3HdgIOFb+MHorUeSfNiYsOj5eLzhNQ4wCkkPIjq27yyT5Bj6M - Rt7yjmgUKcCWBJhx0EFugQpGZkgqjQBIaJwAHBn3ix0fHyqA3IQFgRwdx3WFh0dz2GXoAp699hr3joCn - 4phqZQhAeVlxSGCxAUaF0aHEDPsOPvhgFn0w6bNDjo+HGL9R20vtLwoyrmjatOlGXAHZQfx+muTHwYfZ - 9x/f2I3yLuBnAkw7+CD3uk7felud8/Sll+yyBHjFCOADztwI8HgtJXmG3utTyWQq/ebRIgAziEkkICYw - JUiLC4gHUGCkX4m6jWACNhFGYLVDHr/Xp5YiyNAkQ4/zzjtvE5Enkz62IbKdDM5Y1o53McsHfG5o5Mkn - egJwZjAuYJqKQ1+XNWAZpHTfUSc937aNdwFpCsCwi+EXFmjHx68RKPjoVyXV+H1895tqSPxbkaxvlMS/ - E7V39TNsPM//M7mAJAJwemiaAjzVqJFbr5k95hKoJ6BmwaaQi0sCcwmoAIE36Xm54037779/jyjwAxsw - 2mEPXAEFI1WQm5o1a05UvdlmcgO29j7u7+Pgw+xR2kh6ZESAqUcc5gMiOoeiDjrF9vRdJ2WZJ7eAlM63 - XLuGaEjtLkMAqUASARboel+4tLnjYEnA557I8zNzSe1CriQgOCQmCJUAtWXMr808NqvYc2Ik/WACNiVO - +uTKGnMFHE/e7PDDD1+ifYW8LyIOwPJhqG2NDmvN8gGfGxqrDaJGKhk0RQck/HPlCg8+aVDba58OosOY - 0HlX4+QXtHdgRgJEOYBfRAGMABo6LlLegBhgUaMj3PopDxcdOmkLTJiyhgR2lgCE574pMM3kDsIRAv3L - dC+VvlrHyWrfZmpggXveYdIfJwfZJSLNhr///e+vO/nkk99hQSmzgwxPIACWnwQ+0W6+DkaYcNTh7p8C - F6ABnkZnYBl0kC3nslm9jTqd44WTT9VZPQkKEBAAid6ZLmB5QIDF9Q5yr+owiM/ef8/XEXDtdtAk09WM - +Zm6LgkJbMNqht5Ua8vvv0Pfg0GExTZl/HK1fnudjQo4kvSYffbZ507NFXzFhZEhtPV5ccsHfIY8U25p - 79YtfcHX2wM8FmDgY/3IJB1lFT62pMtv4jB1invp3PO9C0B6lwmAFb8wAZbVPdC9dksH9/mGt4pOHOOa - UTYIwHif2AYSoALcG/do8UAuSoAbINimzFux11eKwe6k79XAgJnbHS79cZJYggjfc4oKD/MUkHzPblQE - KCgAfstk38Cn2OHltWu2Ap9OMPCxEDqKDqP0ig4kerbiTn+sy/Ll7o2OndyKBg13GgHW+eRQlAhSwLm6 - 4ZFuY7/+7iuVpdlh03bgBNPSBLWQAKJzD9wLpDZXECeBGUPcHTAqwO8zG6stfL7XIk+yfadEsdh2TfgU - VwnwOWw2QMXpOUoVT7rooot+ohyJGUBbqxeCz7jX9uLH8kO/b9Jv1k+HYTl0IB0JCezYF0q8aHT8vxRn - bOjS1b165HEeoB3lAiDAqwc0dBtatnYfPzrHzzCGJ41a1RB1iiwu5XohASrAPXAvSSSwoNCC4DAmQDFx - qxR5qDzvJ6V6J9HXUZ/T9zvN76eRA9+ztxobDzTTBc4QS//DfAEksJO8sHwSHmzWYIc+G/jm90Ppx/rp - MCyHDqQj6VA61go+bKUP5VsA4df2vfa6+2Tyw+4DEWLjWedt8zBwfd1D3NvnXug+6tnbfTFvvvshWlls - 9QJ2yhj1B0YAro/rTFIBcwVJ8UA4MrCVRwyrAV+jrf8o4p9BH0d9TZ/vVL+fRgBcgQWFbD9ysYaHj2g1 - 6k+MUyEBbgACGPhIXBj0ZZL+0PrpUKyLDibAotPtXGBb80c1D43iTppf9Llxg/tOAeYXY8e5z/oPdJ92 - vM23z2LtC/3vq/zxvm2a+6T7ft1rfr0AnxEvF+P7cEVWLcR1QACuC5VKUwFzBWE8EAaFliRCKbF8Vmah - qgL/EfpWjT4mAKfPd7rfz0QCEhBc2MFql6iWcKqClR+JCQhe8GMQIAl8k358I5YRSn+S9dPBdLZV/RAc - AgbWiEuw5V9GADsePlwK5rcHy/Cw9xj4kMqsnu8ICWA1g3EVgASQ1s4ZTHMF8aCQfiLPj4pecMEFP9ao - UYOVPRR40Lf0MX29y4BvpOCCWFzKHgMHIVUKDB/UGsNNLFBg0siOSiPit6AP8DNJv/n+uPVDAKyOsi+s - ME4AcwmmBgakAZuGfRx4SGTg85mQywgA4axcjOtIU4FsriDMDwA+AR/Rvub2N5UvX57SLmSfPqVv6eNd - DvyQBKYEB+jJ88uUKTNceYIvWaNGFRHuAPkP/b5F/XHrB/y47w+tnw7H+owAFhSGMcHOIADfn4sKhAFh - 6Aps1TGyzwiKkm4Zzpf0HX2oRl/uspYfdwuwExLso8Z69LOUJ+ijDQre00bUvmqV0YGd7xuCHw/8crH+ - UP53JAHSVMDiAK4jVxWI5wZwAYyUmNxhZu+44457jz6j76I+pC93SdmPgx8qAUEK9egUJp6yxx57dDzk - kENWKZr1gQ3RrR3qGB/zW+CHxSCfRNT4U6w/DP7i8m8ECOU/VIBcYoEkF5CLGwiDwUyxQJgbINbBBZI2 - p5pX1VauYcOGq+gr+izqO/pwlwr40kBPUgIunLEqtenHqbXQMHGO0pjfUVtI1pBxru3mYWN+LCST9YfB - Xy7yX5xgMCSJRf65EsBUwAgQHxFYQMj9AT7DYZN81Vt+p2BvDn0U9RV9Rt/9V4IfkoFEBdmq8mqHqV0i - eRusNetvX3HFFX4LGiY4CArplGzWHwZ/ucr/9iZAPBhMcgNJKoCSQWwIT2EMC220BJ/9e96mT+ibqI/o - K/rsF0/y5Grt2V5ncwdEsSSMqFxpq7HtE1q/9g0zWxSZ4gdtQ0eGTmHkHw/+0uQ/KQDcFgKE43+GgbS0 - 0UBSMGgqAPi2JT3KR1AsJfxG5fZP0BdRn9A39NEvktvPBuK2/t8SRkxbVlGjcrX5n/70p77ye2uVONpM - nSGJI6TRjnwPfX987B8O/0L/n20ImCkfEHcBIQGyDQeNABYM2uYS+H0UjuFdVMSxWdPoa7l3+iDqC/qE - vvmvl/xMRIEEyBqFC1SvwPiT1a7TDqXjmjRp8oGKG32RI53FSME2eIwHf7nIf9oQsCQEyBQHQD5bSh7G - ASgYQR4BL4GvDuNwWm39QYUKFSZwz9G90wf0BX1C3+yyY/xtVYDw/aYGBDnsXMGc9rlq7RQIzVYnfcRo - wSaVyB4SG+AGLABMsv64/Bc3B2Crg3IZCSS5AdtLAPdlFs8MHsArF/IR98Y9RvfKPXPvv4pAr6TkgPH4 - O3Ykqa6GW2imAscOGi0UnHDCCe9p21q/1TljZDvwEbdgCz+xvEzjf/P/thwsl3RwNgLE4wCCQBSKIJbq - HVZKUxuhrfaw+Pc0N1LAPXFv0T1yr9wz9/6rCfRKSgLUgBp2ol5WILGkiXVtdFZ7pZPHa+fSdWefffa3 - 2vDYz4kzdGL4SOIIVbD9fzIFgNuLALZ0HNIRkzB0ZZaT2IVZO8rltTjzW41y1smtjeceonvhnrg37pF7 - 5Z7/V8h9rsQwt2BEIIHE8mbmvq/fa6+9+tWrV2++VOEdFZ78REczWUJETekZkmt1hBAivhq4JAQI9wsA - cNwPMQmzl2QzKc+CkCyaZcZO1v6O1kzM51q55ujauQfuxYD/VQd5uYKd6XUhEch/kxBpoHaSGuPkdhoz - D1FHP6OgcT2l6cQL7IhB8IirYCaNiSeCSIaVEIMpZJs6ts2ibOo4Prdv5VwoDMRieGp1+FRAk67Fr/Pd - XAPXwjVxbdE1cq1cM9fOPUDq3cAXkx3mGvCTpEOpfaPyiKVPpEkZPrVmKCWpnaCVMYtkgRu0M8bnssbv - STKhEnb6CWXUbHJFvoESdlbVsJaBxu88x/oG5ip4LcM1xup8BilaxSLfyw19rvV3Gxo0aLCISD4axrWO - roVr4tq4Rq6Va+bad0t9MYFPenmoCkyMED3T0UTSTdRwE5dDCLXOKpgcyhw6cnzYYYctPeaYY16lclnp - 1o/knz+/8MILv1GA9mPYeI7/8Rpey3u0xdpSPoPP4jP57Og7+C6+k+/mGrgWrolr223t2wHwTB8RkmFv - vZC9jVkPV0cN2T1ajdwCAOEyrlLDH9+odpMaEy0AebvaHVHjd57jf7yG1/Ie3stn8Fl8Jp/Nd/BdfCff - vbfabtDVCb/Ew9wERRKAQCYNn4sEV1Ej+CLRQhkVx6Uh0RycyHCTqJyyahq/8xz/4zW8lvfwXj6Dz+Iz - +Wy+g+/iO3fLuzphV3pAiJAUHI4EWCRb8Ml7qyHTAEkj706zv/kfr+G1vIf38hkh2LuHbrsS4ruvZdt6 - 4P8D1FQWc8pO1OcAAAAASUVORK5CYII= - - - - - AAABAAEAEBAAAAEAIABoBAAAFgAAACgAAAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAcAAAAUAAAAIwAAAC0AAAAwAAAAMAAAADAAAAAwAAAALQAAACMAAAAUAAAABwAA - AAEAAAAAAAAAAAAAAAwAAAAuAAAAVwAAAHYAAACJAAAAjwAAAI8AAACPAAAAjwAAAIkAAAB2AAAAVgAA - AC0AAAALAAAAAAAAAABDBQAvgQcCrKMJBefGQwD/y3EA/9B/AP/bjgD/954A//+iLP/QgkHuejsn1BMB - AKUAAABpAAAAIAAAAAAAAAAAwQoG5cwdAP/CWQD/wmEA/79sAP+/eAD/yoUA/9mVAP//vhX//9Ri///t - u//gqGvyAAAAiAAAACwAAAAAAAAAAMUJCf/44OD//IgT/8JjAP+8cAD/wXsA/86JAP/bmAD//85M///r - qf//8cH//89S/wAAAHcAAAAkAAAAAAAAAADFEATD//Xr///MlP//lgL/9acA/92eAP/bmwD/2pgA///P - Wf//5Jb//+F9//B1CfIAAABOAAAAEAAAAAAAAAAAvgkJQuWKgP///fj//9dw///LK//1vQD/46gA/9iU - AP//3p7//9GH/9ZqAP9UBASUAAAAJwAAAAMAAAAAAAAAAAAAAADGHh7D+vHx///jmP//yiX/8rsA/+Gm - AP/onwD//9uc///Lh//ATCzfAAAAQgAAAA8AAAAAAAAAAAAAAAAAAAAAvgkJQt14eO/69uz0vat0z+zL - VtP5zFPQ68qG0fTkv+y/fnnbZBwchQAAAB8AAAADAAAAAAAAAAAAAAAAAAAAAAAAAADDERG6+e3r+Kie - ib+UhWS8o49hru/FZs3ovn7bszojzQAAADoAAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvgkJQuF5 - a+/u37HgxKI82L+SBc7/vwnV3GMA6TsDA2sAAAAiAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADHMAC0///////////awnHpgmUAvaosAMYAAABGAAAAGQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAACwhoAuf//////////7OK79X1gAMWRLAC8AAAATwAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAB7cJCc3//////////+/kvfJ8YADGhykAyQAAAGkAAAAiAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAP/EFDfSZADl+4oA/8BgAP/AYAD/vWIA9KtRANwAAABZAAAAHgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAD/ngNCzWwA5/OFErzvoT+c9KQ8me9+AMy8dADkAAAAHgAAAAoAAAAAAAAAAAAA - AAAAAAAAgAEAAIABAACAAQAAgAEAAIABAACAAQAAgAEAAMADAADAAwAA4AcAAOAHAADwDwAA4A8AAOAP - AADgDwAA4A8AAA== - - - - - AAABAAEAGBgAAAEAIACICQAAFgAAACgAAAAYAAAAMAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAACAAAABQAAAAgAAAAKQAAAC4AAAAwAAAAMAAAADAAAAAwAAAAMAAA - AC4AAAAnAAAAHQAAABIAAAAHAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAoAAAAiAAAAPQAA - AFgAAABwAAAAggAAAIwAAACPAAAAjwAAAI8AAACPAAAAjwAAAIsAAAB9AAAAagAAAFQAAAA6AAAAHwAA - AAkAAAABAAAAAAAAAAAAAAAAAAAACwAAADQyAwB+cwgAwZoJA+K2JgD1yF0A/89tAP/PfAD/3JEA/+ae - AP/tjgD//38D/95xFPOoSBnkXgYAyyUDAK0AAACOAAAAZQAAADAAAAAKAAAAAAAAAAAAAAAARQUALq4K - AtrGCgb/zBQA/8VJAP/AYAD/xGcA/7xvAP+9dgD/w30A/8qGAP/alQD/9q0A///AHf//0Vv//+Wt//us - fv+dSz3lEwEAqgAAAGgAAAAfAAAAAAAAAAAAAAAAwhoA2MUJCf/KLAD/wV0A/8BgAP/CYQD/w2kA/7tw - AP+/eAD/xYAA/82JAP/YkwD/25sA/+CjAP/ztAD//9t6///nnf//+/L/zGgZ7gAAAIkAAAAtAAAAAAAA - AAAAAAAAxQkJ/8woKP/607X//JIn/8BgAP/DYwD/wGsA/7pyAP/AegD/xoIA/9CMAP/alQD/3JwA///G - Kf//3nX//+eZ///ebv//1lP//8Yx/wAAAIYAAAArAAAAAAAAAAAAAAAAwwkJ8emQfP///////syd/8Bg - AP/EZgD/vW0A/7x0AP/CfAD/yYQA/9OOAP/bmAD/3Z8A///IKv//77v//9RG////////7rr//7I6/wAA - AGgAAAAcAAAAAAAAAAAAAAAAvwkJg+doLv///////////9RrAP/thwD/7pkA/+2kAP/enwD/3J0A/9ub - AP/bmQD/2pkA///TXf//55n//+SJ///gev//yyr/sTsC1QAAAD8AAAAKAAAAAAAAAAAAAAAAvAkJEcoU - APH+17H////////quf//1Gr//89E///JG//3vwD/67IA/+GlAP/cmgD/0o0A///fnv/5mQD//+TE//uw - AP/8gAD/NQMDdQAAABwAAAABAAAAAAAAAAAAAAAAAAAAAL8JCYPznX/////////67///1Gf//85A///I - GP/1vgD/6rEA/+CjAP/bmQD/0IwA///y1///tDf//6M7/8NaAP+NGgLCAAAANwAAAAcAAAAAAAAAAAAA - AAAAAAAAAAAAALwJCRHOKBzx//nu////////3H7//808///IE//zvAD/6a8A/9+iAP/bmAD//7os///F - Xf//26L/6YEA/9hQIvghAgJgAAAAGQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/CQmD1oGB0f// - ////7sL7/9FD8f/PLvr/yA7//8EF//+9Ev//thb//9R7+v7IZfLgxp/lxopx2ZgzM7EAAAAsAAAABgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRxRgY3+jo6Nn5+fn7jo6OyZOTk7GoqKibsLCvlLGx - rpStrKmX9tuk3ODXxtyjlpC8xFVQ4wAAAEYAAAATAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvwkJg85bWdH/////u7q02pCKfLqmnoqitKiPl7aoi5bIsYCn6cd+zdvGmdHLbU3cew8OnQAA - ACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAkJEcUQDujs2czg6ubd75h9 - QMOpiD6xs443qrmQLKj9xEDL9MhZzNaNEMDDKA3lAAAAQwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCYPbWCXT/////7yRCc/HnxnQxZ0T0oFkAMPhqQDJyJkArspW - AOlbBASKAAAAKAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwJ - CRHHDwf39uvC6+/lvfL//////////9zDcuiHaAC2uHEAxbIPBNkAAABSAAAAGwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADBCQnk9+zE6vjy3/j//////////9zD - cuiHaAC2tXYAvpAHB64AAABFAAAAFQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAC8CQnI+O3E6f///////////////93EcueHaAC2sHcAuJMHB6sAAAA4AAAADwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAG7CQnJ78+Q4P// - /////////////93EcueBZAC+p3EAwlkEBI0AAAA+AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAy1CQnQ5KZ+7v/////z6s329/He+d7Fc+Z7XwDHmmgA0kkD - A6wAAABiAAAAIgAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJt4 - ADTJSADq1HYA+8FhAP/AYAD/wGAA/8BgAP/AYAD/uWIA9IM4ANUAAAB8AAAANAAAAAcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPytAMPMeQD/024A6dx0AdPgdwDP4ncAzeF4 - AMzXbwDax20A9MBuAP9hNQCBAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAALpdAFLHYwDJ8oEOxOmUPqznp2aa6adlmOqoZJjyiBm73YAAwrV0AKxWOQAnAAAACQAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAA8AgAADAIAAAwCAAAMAgAADAIAAAwCAAAMAgAADAIAA - AwDAAAcAwAAHAOAADwDgAB8A8AAfAPAAPwD4AD8A+AB/APwAfwD8AH8A+AB/APgAPwD4AD8A+AA/APgA - PwA= - - - - - AAABAAEAICAAAAEAIACoEAAAFgAAACgAAAAgAAAAQAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAADgAAABkAAAAiAAAAKgAAAC4AAAAwAAAAMAAA - ADAAAAAwAAAAMAAAADAAAAAwAAAALgAAACgAAAAgAAAAFwAAAAwAAAADAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAATAAAAJQAAADgAAABMAAAAYQAAAHQAAACDAAAAjAAA - AI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACLAAAAfwAAAHAAAABeAAAASAAAADIAAAAfAAAADgAA - AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAALAAAAKQAAAFMZAgCBWQYAs3sJAM6iHADptCMA9chE - AP/JVwD/zmMA/9RuAP/XdAD/23oA/+B9AP/oewD/41QA/8pHBfOfGQPodggA10MFAL0AAACbAAAAiwAA - AG4AAABIAAAAIQAAAAcAAAAAAAAAAAAAAAAAAAAAAAAACgAAADRyCACmrwsA7ccLA//GCgb/yiwA/8VJ - AP/EZgD/x3EA/8R3AP/DfAD/x4MA/8yJAP/RkAD/4KAA//izAP//uQv//8g7///Ua///0n3//7Vq/+xv - Q/+gKBjqQQUAwwAAAJQAAABjAAAAKAAAAAcAAAAAAAAAAAAAAABHBQAttgsC48YKBv/FCQn/zB0A/8RR - AP/AYAD/wGAA/8RjAP/DaQD/u28A/7t0AP+/eQD/xH4A/8mEAP/QiwD/2JIA/9yZAP/cnQD/4KMA//++ - Bv//3IX//+m8///w0P/0sZf/kyoi5QAAAKAAAABeAAAAGQAAAAAAAAAAAAAAALwLA8rFCQn/xQkJ/8ky - AP/AYAD/wGAA/8BgAP/AYAD/xWYA/8FrAP+6bwD/vHUA/8F6AP/FgAD/yoYA/9ONAP/alAD/25kA/92f - AP/hpQD/5qwA///MN///11v//9xo///57f//7c//lToA4QAAAIUAAAArAAAAAAAAAAAAAAAAxQkJ/8UJ - Cf/TKQv//rBi//ymT//AYAD/wGAA/8JhAP/EZwD/v20A/7pxAP++dwD/wnwA/8aCAP/NiQD/1ZAA/9uW - AP/cmwD/3qEA///MPf//01H//993///ZV///yQ7//9I7///RQ///vyz/AAAAjgAAAC8AAAAAAAAAAAAA - AADFCQn/xQkJ//e4kv///////+vX/8BgAP/AYAD/w2IA/8NpAP+9bgD/u3MA/794AP/DfgD/yIMA/8+K - AP/WkQD/3JgA/9ucAP/fowD//9Zg///ml///xAH///fd////////66j//886///OQf8AAAB9AAAAJwAA - AAAAAAAAAAAAAMEJCcPMHQD//tex/////////////JIn/8BgAP/FZAD/wWoA/7twAP+8dAD/wHoA/8R/ - AP/KhQD/0YwA/9mTAP/cmgD/3J4A/+GkAP//yiz///////C5AP//7Kv///zw///XV///3HP//4EB+QAA - AFYAAAAUAAAAAAAAAAAAAAAAvgkJQswUAP/+sGL////////////+zJ3/wGEA/8VmAP/miQD/24sA/++m - AP/joQD/250A/9ydAP/bnAD/3JoA/9uZAP/bmwD/3J4A///jk///66r/8boA///87v//1kz//8oj//++ - Kv96GgSrAAAAKwAAAAQAAAAAAAAAAAAAAAAAAAAAwgkJwsVJAP//69f/////////////y27//9Zx///S - Wf//zTz//8kf///GBP/xugD/67IA/+OoAP/dnwD/3JkA/9WQAP/KhQD///jr//+zKf//w0L//+2+///J - FP//yyn/0UcA7AAAAEwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkhzBQA//+7eP/////////////s - v///1W///9JX///NOv//yRz//8UB//C6AP/qsQD/46cA/92eAP/bmAD/1I8A//+xGf//8Nf/vXUA///n - wv//jhT/130A//uEAP9UBASVAAAAJQAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADACQmj731T///9 - 9f////////rv///Vbf//0VP//8w3///IGf/+xQD/8LkA/+mwAP/ipgD/3J0A/9yXAP/TjQD//9F5///M - dP//pA7//9yw/8RmAP/CXQD/qg0D4wAAAEIAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL0J - CSHKGBL//+Ky/////////////+CX///RUf//zTT//8kW//rCAP/wuAD/6a8A/+GlAP/cnQD/25YA/9KM - AP//6b//6ZMA///Zm//mhAD/3HEA/95PIf83AwNzAAAAHQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMAJCaPTYFPb8vDq8P//////8tH//9BN///MMP//yRP/+MEA/++3AP/orgD/4aUA/9yc - AP/alQD/+qgA///jrf//qxj/+d2z9uWjSuHUjGnhoUBAvwAAADQAAAAIAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAvQkJIcYPD/fIqanC///////////DtIzfyrZ2z//TQdH/0znN/9A1zv/L - Mc7/xy3O+shLzvLCWs7/2YXp3caY2OPax+Krqqm1oZaWrsxRUfEjAgJYAAAAFwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQkJo8M2NtLn5+fl/////8jIyOSHh4fBnp6epa6u - rpWwsLCUsLCvlLGvrpSxr66Ur62rlvjboNysp5q44NnG256ak6fIcGnghQ8PqAAAACwAAAAFAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRwwkJ8b+cmbP/////8/Pz+IWD - fMaXk4qwraibmbSun5S1rpuUtqyYlLeslJS9rouf/daE3dTEoMq2poK0uIRkwcMoIe4AAABGAAAAEAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/CQmDxiwm2ePf - 1+D/////t66b15eFYrqwm22gwKdwlMKna5TEpmWUxaZflOq/XrrSqlC2782G0rmLOa7aSiL1WwQEigAA - ACQAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwJ - CRHDCQnxzH1UwPv59fvl3cntoHwowrKKJLDBkx2lw5MTpciVCaTQmwCf/8g4zu65JbfiqgCt0GkA264P - CN0AAAA/AAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAL8JCYPNJAXh6dKE1/////+9kgLQgmQAx4FjAMV9YQDHfmEAxIhpALT8uwDDo34Al6p2 - ALPSIwD/NgMDdAAAAB8AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAvAkJEcMJCfLLXwDO/////+vbq/D////////////////t4rv0gWMAv5l2 - AKGmgACUzEkA7o8HB8UAAABFAAAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvQkJx7lIAND//////////////////////////+3i - u/SBYwC/mXYAoaaAAJTSIwD/QgMDjgAAADQAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC+CQnGvEkAzf/////38d75//////// - ////////7eK79IFjAL+ZdgChpoAAlNIjAP8AAABtAAAALQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALQJCYu9SgDM/////+/k - vfL////////////////t4rv0gWMAv5l2AKGmgACUziYA+QAAAGIAAAAoAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAkJi8BB - ANP/////8OW+8f///////////////+3iu/SCZAC9mncAoKaAAJTJRQDmAAAAVQAAACEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACzCQmMxicA5vLnv+/v5b3y////////////////7eK79H9iAMKObgCtlnQApLJIAM0AAABaAAAAIwAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAACqQICJnCJgDq8OW+8erbq/Du47zz+9qz/P7Xsf/jzobpel4AyntfAMd9YQDEnEMA1gAA - AIEAAABGAAAAEgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAfoUIAvcg+APu0bgD1wGAA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wGAA/7Ji - APGyUwDwIhEAsgAAAH4AAAAxAAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/GCtbgoAD/y3oA/7BfAPHAYQD/rVcA5ataAMSuXQDAq1cA0cBg - AP+6XQD2u2AA975oAP/AYgD/KhUAkgAAADcAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA1nYA/8BgAP/WfSDJwI1Os6+edp+1oXebu6V4lsGp - eJPDqnSSv6ZvlcGbW6DWiyi7xnsA88V/AP9vRgB2AAAAGwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XQBCul0ApM5nALXzegHN7oUdve2M - K7Tmp2aa6alnme2XP6rwhh278YEOxdZ4AL2ybwC6qG0AcgAAABEAAAAEAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAA+AAAf+AAAA+AAAAHgAAAA4AAAAOAAAADgAAAA4AAAAOAAAADgAAAA8AA - AAfAAAAH4AAAD+AAAA/wAAAf8AAAH/gAAD/4AAB//AAAf/wAAP/+AAD//gAB//8AAf//AAP//wAD//8A - A///AAH//gAA//4AAP/+AAD//gAA//4AAf8= - - - - - AAABAAEAMDAAAAEAIACoJQAAFgAAACgAAAAwAAAAYAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAHAAAADwAA - ABgAAAAfAAAAJQAAACsAAAAvAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAALgAA - ACgAAAAjAAAAHgAAABYAAAANAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAATAAAAIAAA - AC4AAAA8AAAATgAAAGAAAABuAAAAegAAAIYAAACOAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAA - AI8AAACPAAAAiwAAAIAAAAB2AAAAawAAAF0AAABJAAAANgAAACgAAAAbAAAADgAAAAQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAOAAAAIgAA - ADsAAABVAAAAcCoDAJVXBgC2ewgAz5kLAOSiCwDrvg0A+scOAP/HDgD/xS0A/8Q3AP/FOAD/xjkA/8c7 - AP/HPAD/xykA/8cOAP/HDgD/qgwA86ELAO2MCgDidwgA1kMFALwUAQCiAAAAjwAAAH0AAABlAAAASwAA - ADEAAAAaAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACgAA - ACUAAABJMQMAgmcHALmaCwDivg0A+sgMAP/IGgD/yR4A/8VXAP/FYwD/yXoA/8t+AP/SigD/05AA/9WV - AP/ZmwD/3qEA/+y0AP/xugD/+cEA///HDf//ySD//8ov//+uKv//rDD//n0d//FgEP/aNhL/qgwA84AJ - AN9RBgDFAAAAnAAAAIYAAABjAAAAOwAAABkAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAANAAAANVcGAJKdCwDfyAwA/8cLA//GCgb/xQkJ/8sjAP/FTgD/wGAA/8BhAP/FZAD/w2kA/8Bs - AP+6bwD/unIA/712AP/AegD/w30A/8aBAP/KhQD/z4oA/9eSAP/spQD/86sA//+8Fv//xDL//9Jh///a - g///3ZL//+Ge//+3c//rcEb/yCoV+38JAOAjAgCzAAAAiQAAAFgAAAAlAAAABwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAkzAwA/rAwA3ckUAP/GCgb/xQkJ/8UJCf/LIwD/w1YA/8BgAP/AYAD/wGAA/8Jh - AP/FZgD/w2kA/75tAP+6cAD/u3MA/753AP/BegD/xH4A/8aCAP/LhgD/0IsA/9WQAP/ZlAD/3ZgA/9ua - AP/dngD/4KMA//e1AP//yTT//92O///msf//6r7//+7L//evi//OSTj7aAcA1gAAAJwAAABiAAAAIgAA - AAQAAAAAAAAAAAAAAAAAAAAAAAAAAEwFACq3CwDiyhAC/8UJCf/FCQn/xQkJ/8dEAP/AYAD/wGAA/8Bg - AP/AYAD/wGAA/8NiAP/FZwD/wmsA/7xuAP+5cQD/vHUA/794AP/CfAD/xH8A/8eDAP/MiAD/0YwA/9aR - AP/alQD/3ZkA/9ucAP/doAD/4KQA/+OoAP/nrQD//9NY///ouP//7MX//91w///13v//+ez/6JWL/48a - EeUAAACXAAAATgAAABEAAAAAAAAAAAAAAAAAAAAAAAAAALULALDFCgj/xQkJ/8UJCf/FCQn/xUkA/8Bg - AP/AYAD/wGAA/8BgAP/AYAD/wGAA/8RjAP/FaAD/wGwA/7tvAP+6cgD/vXYA/8B5AP/CfQD/xYAA/8iE - AP/NiQD/040A/9iSAP/clwD/25oA/9udAP/eoQD/4aUA/+SqAP/orgD//8UR///VVv//1U///84h///0 - 1v//+/L////+//+7NP9OBQDKAAAAdgAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAMYLBf/FCQn/xQkJ/8UJ - Cf/FSQD/6HQA//ySJ//AYAD/wGAA/8BgAP/AYAD/wmEA/8VkAP/EaQD/v20A/7pvAP+7cwD/vncA/8B6 - AP/DfgD/xoEA/8qFAP/PigD/044A/9mTAP/cmAD/25sA/9yeAP/xrwD//8s8///OPv//z0H//8oh//C5 - AP/xuwD/+cEA///JFv//33j//9po///MMP/ngwDzAAAAiwAAAC4AAAAAAAAAAAAAAAAAAAAAAAAAAMUJ - Cf/FCQn/xQkJ/8kyAP/+uHX////////16//UagD/wGAA/8BgAP/AYAD/wmIA/8ZmAP/CagD/vm4A/7pw - AP+8dAD/vngA/8F7AP/EfwD/x4IA/8uGAP/QiwD/1ZAA/9qUAP/dmQD/25sA/92fAP/gowD/9LUA///B - C//7vgD//993///33f//7Kz//9pf///KG///yRj//8om///NNP//xzr/AAAAjwAAADAAAAAAAAAAAAAA - AAAAAAAAAAAAAMUJCf/FCQn/xQkJ//WSRP/////////////////8nDv/wGAA/8BgAP/AYAD/xGMA/8Ro - AP/BawD/u28A/7pxAP+8dQD/v3kA/8J8AP/FgAD/yIQA/82JAP/SjQD/15IA/9uWAP/cmgD/25wA/96g - AP/hpQD//8AI////////1VT/7rcA///VRv//////////////////6Jz//884///MOf//z0X/AAAAgwAA - ACoAAAAAAAAAAAAAAAAAAAAAAAAAAMEJCcPFCQn/zB0A//6wYv/////////////////+4cX/wGAA/8Bg - AP/AYQD/xWQA/8RpAP/AbAD/u3AA/7pyAP+9dgD/wHoA/8N9AP/GgQD/yoUA/86KAP/TjgD/2JMA/9yX - AP/cmgD/3J0A/9+hAP/ipgD/5aoA////////+u7/77gA//G7AP/////////////11P//3nT//+ux///N - PP//rir/AAAAYAAAABkAAAAAAAAAAAAAAAAAAAAAAAAAAL4JCULFCQn/yTIA//ymT/////////////// - ////////+34A/8BgAP/CYQD/xWYA/8NpAP++bQD/unAA/7tzAP++dwD/wXoA/8R+AP/GggD/y4YA/9CL - AP/VkAD/2ZQA/92YAP/bmgD/3Z4A/+CjAP/ipwD//8EK////////66r/8LkA///HA/////////jh///M - Jf//yiT//9A////IOP+WLAXDAAAANwAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADCCQnCyyMA/9Rq - AP//9ev//////////////////sKJ/8BgAP/DYgD/xWcA/8JqAP+9bgD/2osA/9eMAP/ZkgD/46EA/9yd - AP/bngD/3J0A/9ycAP/cmwD/3JoA/9yaAP/bmwD/25sA/9+iAP/jqAD//+GE////////00X/8boA///d - aP///////9I7///IGv//yyj//8w3//hyAfkfAQFlAAAAFwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC9CQkhxQkJ/8RRAP/+sGL///////////////////Xr//+NBv//pCH//79F///OVv//0E7//807///L - KP//yRT//8YD//O9AP/vuAD/67IA/+asAP/hpQD/3Z8A/9ybAP/blgD/1ZAA/86KAP/IgwD//+3G///4 - 6//cngD/6rEA///43f//6qL//8gQ///JHv//yyz//64e/3kGBrYAAAAuAAAABQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAwAkJo8sjAP/UagD///Xr///////////////////ptP//2Hz//9Vu///S - Xv//0Ez//805///KJf//yBP//8UC//K8AP/vuAD/6rEA/+WrAP/hpQD/3Z8A/9yaAP/blQD/1ZAA/82J - AP/unQD////////Lc/+8dAD//6Yg////////sw///8kU///KIv//zDD/zzcE8gAAAE4AAAAQAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvQkJIcUJCf/FTgD//8mG///////////////////3 - 6P//2Hv//9Vs///TXf//z0r//8w3///KJP//yBH//8UA//K8AP/vtwD/6rEA/+WqAP/hpAD/3Z4A/9ya - AP/alQD/044A/82JAP//wlH///////udAP+7cwD//9+t///Iif/FZAD/zG8A//+9E///fwD/VAQElgAA - ACYAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAJCaPPJh7//+i5///9 - 9f//////////////////3Ir//9Vr///RW///z0j//8w2///KIv//yA///cQA//G7AP/utgD/6bAA/+Sq - AP/gowD/3J4A/9yaAP/ZlAD/044A/82IAP//3Z7//+nD/794AP/jjQD//////+p/AP/FZAD/wGAA/9Bo - AP+lCAjkAAAARgAAAA0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL0J - CSHFCQn/+Zll///uzP//////////////////7sL//9Rq///SWf//z0f//80z///JIP//yA3/+sIA//G7 - AP/utgD/6bAA/+SpAP/gowD/3J0A/92ZAP/ZkwD/040A/8uHAP///////7Y5/753AP//0Yb//8yI/8Np - AP/EYwD/wGAA/8sjAP9HAwOFAAAAIAAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADACQmjzycb///kqv//+e7//////////////Pb//9Ro///SV///z0T//8wx///J - Hv//xwz/+MEA//G6AP/ttQD/6K8A/+OpAP/fogD/250A/9yZAP/ZkwD/0o0A//+4Kv///vv/1YcA/9KD - AP//9+v/5YUA/8NpAP/EYwD/3VAA/5kWFtEAAAA6AAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkhxQkJ/9pzWej/6Lb3/////////////////+Se///R - Vf//zkL//8wv///JHP//xwr/98AA//G6AP/ttQD/6K4A/+OoAP/fogD/25wA/92YAP/YkgD/0YwA///V - gP//0n//wXsA//+7S///1ZX/9o4A//6UG/rklFDs019a9yACAmMAAAAZAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAkJo8UPD/iYiIi16enp7f// - //////////TY///UYf//zkD//8wt///IGv//xgj/9sAA//C6AP/stAD/564A/+OnAP/foQD/3JsA/9yY - AP/YkgD/7qAA///pvP//vUT//64h///y2v/esm/fyqVzwaKioqDMdnblkSEhtQAAADIAAAAHAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvQkJIcMJ - CfG5RUXOsrKyyf///////////////5yYj9q+rn/L7cxlxP/US83/1ELN/9M72v/SPOf/0Djn/8015//K - Muf/xjDn/8Q24fLEWs/xwVvO98hs3f/tw/W0oHm/w8K9xOLg2OGdnZ2mqKiom7aJicLEPj7uIwICWgAA - ABUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAL8JCYPFDw/3mYmJtOPj4+n//////////8vLy+yFhYXEnZ2dpq6urpWwsLCUsLCwlLCw - sJSwsLCUsLCwlLCwsJSwsLCUsLCwlLCwsJSwsLCU4c+oyt/NpteZmZmq8urb6ayrp7WkpKKfqZ2bptRb - Wfp1BgahAAAAKQAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAALwJCRHDCQnxuzw81KCgoML///////////j4+Px/f3/NkpKSsqmp - qZqwsLCUsLCwlLCwr5SwsK+UsLCvlLGvrpSxr66UsbCtlLGwrJSvrKiW/+Gm7q2lkrivqZ+06N/J36Ge - lKSoo5eexXFp26wWFt8AAABHAAAADwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC/CQmDxQkJ/5x7e7rc3Nzl//////// - //+0srLjioiFvqOhnKGyrqiUsq+nlLKuppSzr6SUs66jlLStoZS1rp+Uta2dlLWtmpS6rZGg/92S6aGX - gKnt37retqmNsqyfgKC6h2290jIq/1kEBI0AAAAkAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRwwkJ8b00 - MNuhnpXC///////////k4+HzhoBxyJ6Wg6q0qZGXuKySlLisj5S5q4yUuquJlLuqh5S7qoSUvKmBlL2o - fpTqxnbC475xyLSeb6zu1aHYsZhioreSXajXUTX2oAgI1wAAAD8AAAALAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvwkJg8UJCf+ieGC708y/3P//////////mo5y1JuIYba0nm6cwKZxlMGmbpTDpmmUw6VmlMSl - YZTGpV2Ux6NZlMajVJX/zmPVtZJDpuvIfczLplCuvpY3odNuKNbKFA7/NwMDcgAAABwAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAvAkJEcMJCfHBKB3hpYxZv/v59fv/////zsOp5pp9O8K3kkGly6JDlc6k - PpTQozmU0qMzlNOjLZTWoyaU2KMflNWhF5f/yknVzZgHoP/QXs7NmQCdy4QAt90yBP+EBga+AAAANgAA - AAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCYPFCQn/uF4cxNvJnN3/////9vLp+KN6 - CMm6iQKzyJUAo8SSAKK7jQCktIkApa+GAKSvhgCfsokAmfO2ALLdqACv1qQAptilAKSdegCezlkA8b4J - CfggAgJhAAAAFgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwJCRHECQnwySQC5rCH - AMD9+e/7/////9CuO9qBZADDhWcAu4FkAL99YADFe18Ax31gAMWFZwC5lnQApPO3ALijfgCXpX8AlaJ9 - AJi4bgDPzhYC/28FBaoAAAAtAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC/CQlixQkJ/6hSANHcvE7X/////+3drO7r3Kzv7+W98v///////////////+zhu/XHnAvTj24ArKJ9 - AJimgACUpoAAlKl5AKnPLAD6tgkJ8QAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAxQkJ/8ImAOrUrCPO//////DlvvHv5L3y//////////////////////// - ///KoyHZjm0ArqJ9AJimgACUpoAAlMlYAOHFCQn/TAQEpAAAADYAAAADAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAkJyMMmAOrVrCPO//////DlvvHv5L3y//////// - ///////////////////KoyHZjm0ArqJ9AJimgACUpoAAlMJaANTFCQn/AAAAfQAAAC4AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAkJyMImAOrSqiLQ//////Dl - vvHv5L3y///////////////////////////KoyHZjm0ArqJ9AJimgACUpoAAlMBiAM7FCQn/AAAAcgAA - ACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAvAkJyMYW - AvXRqSLR//////DlvvHu5L3z///////////////////////////KoyHZjm0ArqJ9AJimgACUpoAAlMBi - AM2xCAjmAAAAaQAAACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAvQkJx8UJCf/UqyPP//////DlvvHu47z0///////////////////////////KoyHZjGwAr6F8 - AJmmgACUpoAAlMFiAMyrCAjbAAAAYwAAACMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAugkJqcUJCf/ClQDD//////z47/zt4rv0//////////////////////// - ///IoiHbiWoAs597AJumgACUpoAAlLVmALitCAjZAAAAWQAAAB8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAkJi8UJCf+EZgC6///////////t4rv0//////// - ///////////////////XvF7kh2gAtp15AJymgACUpoAAlLZ7ALKnCAjOAAAATwAAABoAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtAkJi8UJCf+DZQC8//////// - ///u47zz///////////////////////////fxnTkiGkAtZt4AJ+lfwCVpoAAlLd8ALGQBweuAAAASQAA - ABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAtQkJi8UJ - Cf+TXADL///////////v5L3y///////////////////////////hyHXigmQAvYxsALCTcQCnlnQApK52 - ALqNBwexAAAASAAAABcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAJqAgIlcUJCf+UVgDV7+W98vDlvvHdpTLl3psd5N6bHeTemx3k3psd5N6bHeTemx3kkGEA1n1h - AMV/YgDBgGMAv4pnAMGBBgbDAAAAZQAAADIAAAAOAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAoAAAAtfhwAn8UJCf+5ZwD2uGwA+cJhAP/AYAD/wGAA/8BgAP/AYAD/wGAA/8Bg - AP/AYAD/wGAA/8BgAP/AYAD/sWEA8qVgAOltHgDNAAAAlgAAAG8AAAA3AAAADQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAG1UACfHmADB4JwA/9eFAP/AfQD6nF8A55lPAN6iUQDjo1EA4qNS - AOGkUgDgpVMA3qVTAN6kUgDgo1IA4aNRAOKiUQDjuVwA+cBgAP/AYAD/plMA7zUbAKwAAABcAAAAGQAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/HGbjpqwD1vngA9LJhAPWxWADywGAA/8Jj - APTGZwDoxWcA6MhsANvKcgDPynMAzsdqAODFaADnxWcA58JjAPPAYAD/uWAA7aliAOenYADsr1wA9ZVL - AOEAAABdAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAM5yAKbAYAD/wGAA/81q - AOrDeCDMrpNWp7aZWaC4mVifuZpWn7ubVZ28m1OcvZtRnL6bT5y9nE6cvZpLnbyYSZ/Dkzyl2IUUvst6 - AOS/eAD/xYEA/4lXALwAAAA9AAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALtd - AGK/YADwwGAA/+R+Fse+nXqjrKihmqmnn5ynpJuep6OanqqnnJutqZ2araedmq2onJqtp5uarKWYm6mi - k56qopOex5dUrtSCAODAegD/w4AA85VkAG4AAAATAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAuV0AQrdcAIW4XAC3wmEAv+BwANDodADW7YQdvu6FHb3vhR2974Udve+F - Hb3vhR296XQA1t9wANHCYQDAtmQAuqdmAI+YYABRAAAADAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4AAAD/8AAP4AAAAB/wAA+AAAAAA/ - AADgAAAAAB8AAMAAAAAADwAAwAAAAAAHAADAAAAAAAcAAMAAAAAABwAAwAAAAAAHAADAAAAAAAcAAMAA - AAAABwAAwAAAAAAHAADAAAAAAAcAAOAAAAAABwAA4AAAAAAPAADwAAAAAB8AAPAAAAAAHwAA+AAAAAA/ - AAD4AAAAAD8AAPwAAAAAfwAA/AAAAAB/AAD+AAAAAP8AAP4AAAAA/wAA/wAAAAH/AAD/AAAAA/8AAP+A - AAAD/wAA/4AAAAf/AAD/wAAAB/8AAP/AAAAP/wAA/+AAAA//AAD/4AAAH/8AAP/wAAA//wAA//gAAD// - AAD/+AAAf/8AAP/4AAB//wAA//gAAH//AAD/+AAAf/8AAP/4AAB//wAA//gAAH//AAD/+AAAf/8AAP/4 - AAB//wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA/+AAAB//AAD/4AAAH/8AAP/gAAAf/wAA//gAAH// - AAA= - - - - - AAABAAEAQEAAAAEAIAAoQgAAFgAAACgAAABAAAAAgAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAGAAAADQAAABYAAAAcAAAAIgAAACYAAAArAAAALwAAADAAAAAwAAAAMAAA - ADAAAAAwAAAAMAAAADAAAAAwAAAAMAAAADAAAAAwAAAALgAAACgAAAAkAAAAHwAAABkAAAASAAAACgAA - AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAMAAAAMAAAAGAAAACQAAAAwAAAAPAAAAEsAAABbAAAAaAAAAHMAAAB8AAAAhgAA - AI4AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAI8AAACPAAAAjwAAAIsAAACAAAAAdwAA - AG4AAABhAAAAVAAAAEUAAAA0AAAAJwAAAB0AAAASAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAGAAAAEgAAACEAAAAyAAAASAAAAGAAAAB3KQMAmUgFALB7CQDOhAkA2KML - AOqiCwDrvg0A+scOAP/HDgD/xw4A/8cOAP/HDgD/xw4A/8cOAP/HDgD/xw4A/8cOAP/HDgD/xw4A/8cO - AP+qDADzoQsA7ZcKAOd2CADXXwcAyUUFALkAAACaAAAAjgAAAH0AAABqAAAAVAAAAD0AAAArAAAAGgAA - AAsAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAoAAAAeAAAANwAAAFQAAABxTAUAqHwJAM2jCwDpxw4A/8cO - AP/HDgD/xSsA/8YxAP/GRgD/yVMA/8hfAP/McQD/znYA/855AP/TggD/2YsA/9qZAP/enQD/4pcA/+Sb - AP/mnwD/6qIA//WmAP/4pAD/9YgA//1/AP/1bwD/50UD/9s2AP/HDgD/xw4A/6oMAPOLCgDkXgYAyyUD - AK0AAACUAAAAgAAAAGQAAABFAAAAKgAAABMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACAAAAB0AAAA/HAIAc2gHALebCwDixw4A/8cO - AP/HDAL/xgsF/8oXAP/KJQD/xz4A/8RfAP/EcwD/x3cA/8p6AP/KfgD/y4EA/8uEAP/KhwD/zYoA/8+O - AP/SkgD/1ZUA/9iZAP/bnQD/4KMA//C0AP/7vAD//8EM///LKP//zDj//89H///RVv//02T//9Zv//+6 - T///mT//+Hw0/+BEHP/OGgb/tAwA94AJAN8zBAC5AAAAlwAAAH0AAABVAAAALQAAABAAAAADAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADQAAADA1BAB3lQoA1ccO - AP/IDAD/xwsD/8UKCP/FCQn/xQkJ/8osAP/FTgD/wGAA/8BgAP/AYAD/w2IA/8ZmAP/DaQD/wGwA/7xu - AP+6cAD/u3MA/712AP+/eAD/wXsA/8N9AP/FgAD/x4MA/8uGAP/PigD/0o0A/9aRAP/ZlAD/3ZgA//ev - AP//ugv//8Ms///MTv//2X///9yK///elf//4Z7//+Oo//+3eP/rcUf/0ikV/7QMAPdbBgDQAAAAoAAA - AHwAAABJAAAAGwAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACy8D - AEOSCgDDxw4A/8cLA//GCgb/xQkJ/8UJCf/FCQn/yyMA/8JZAP/AYAD/wGAA/8BgAP/AYAD/wGEA/8Rj - AP/FZwD/w2oA/79sAP+7bwD/uXEA/7tzAP+9dgD/v3kA/8F7AP/DfgD/xoEA/8iEAP/MiAD/0IsA/9OO - AP/YkgD/2pUA/9yYAP/cmgD/25wA/92fAP/fogD/4aYA///CGv//0Fb//+Gj///krf//57f//+vA///v - yv/4r4f/2Ug0/7QMAPdABADGAAAAkQAAAFUAAAAeAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAABjcEADm0DADlyRQA/8kQBP/FCQn/xQkJ/8UJCf/JDwX/xU4A/8BgAP/AYAD/wGAA/8Bg - AP/AYAD/wGAA/8JhAP/FZAD/xWgA/8FqAP++bQD/um8A/7pxAP+8dAD/vncA/8B5AP/CfAD/xH8A/8aC - AP/KhQD/zYkA/9CMAP/VkAD/2JMA/9uWAP/dmQD/2poA/9ydAP/eoAD/4KMA/+KmAP/kqgD/564A///L - Mv//5bH//+m6///sxf//6rL///PY///24f/3v6v/zyoe/1oGANIAAACVAAAAVAAAABgAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABa4DQDgyhEB/8UJCf/FCQn/xQkJ/8UJCf/JDwX/w1YA/8Bg - AP/AYAD/wGAA/8BgAP/AYAD/wGAA/8BgAP/CYgD/xWYA/8RpAP/BawD/vW4A/7lvAP+6cgD/vHUA/754 - AP/AegD/w30A/8WAAP/HgwD/yoUA/86KAP/SjAD/1ZEA/9mTAP/cmAD/3ZoA/9ubAP/cngD/3qEA/+Gk - AP/jpwD/5asA/+iuAP//zkH//+e2///qv///7cn//9RH///jiP//+Ob///rw//3v6f/caV//WgYA0gAA - AIsAAAA9AAAACgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACtDACTyhEB/8UJCf/FCQn/xQkJ/8UJ - Cf/JDwX/w1YA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wGAA/8BgAP/AYAD/xGMA/8ZnAP/DaQD/v2wA/7xv - AP+5cAD/u3MA/712AP+/eAD/wXsA/8N+AP/FgQD/x4MA/8uGAP/PigD/040A/9aRAP/alAD/3ZkA/9ya - AP/bnAD/3Z8A/9+iAP/hpQD/46gA/+asAP/psAD/7LMA///JIf//zCX//8ob//W+AP//44z///nq///9 - 9P////7//996/+5lAP8jAgC1AAAAZQAAABsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwgwC5cUJ - Cf/FCQn/xQkJ/8UJCf/JDwX/w1YA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wmEA/8Rl - AP/FZwD/wmoA/79tAP+7bwD/uXEA/7t0AP++dwD/wHkA/8J8AP/EfgD/xoEA/8iEAP/NiAD/0IsA/9OO - AP/YkgD/2pUA/92YAP/bmgD/25wA/92gAP/xsAD//8s8///JLP/4ugD/6rAA/+y0AP/vtwD/8boA//G7 - AP/4wQD//8YD///bYf//7bL//+us///LK///xi//mysA5AAAAIAAAAAoAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMYKBv/FCQn/xQkJ/8UJCf/FCQn/w1YA//yIE//+zJ3//////+h0AP/AYAD/wGAA/8Bg - AP/AYAD/wGAA/8JiAP/FZAD/xGgA/8FrAP+9bQD/um8A/7pyAP+8dQD/vncA/8B6AP/CfAD/xH8A/8aC - AP/KhQD/zYkA/9GMAP/VkAD/2ZMA/9uWAP/cmQD/25oA/9ydAP/eoAD/4KQA/+KnAP/2uAD//89A///d - dv//66n//+SI///VRv//xwT/+sMA///GBv//yA///8kY///KI///yy7//8w4//+eA/cAAACMAAAALgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADFCQn/xQkJ/8UJCf/FCQn/yTIA//ycO/////////////// - ///+sGL/wGAA/8BgAP/AYAD/wGAA/8BgAP/DYgD/xWYA/8NpAP/AawD/vG4A/7pwAP+7cwD/vXUA/794 - AP/BewD/w30A/8WAAP/HgwD/y4YA/8+KAP/SjQD/1pEA/9mUAP/dmAD/3JoA/9qbAP/cngD/36EA/+Gl - AP//vgf//9di//q8AP/rsgD/7bYA///omf/////////////xv///22X//8sh///JHP//yib//8wx///N - O///yD3/AAAAjwAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxQkJ/8UJCf/FCQn/xQkJ/+lr - AP///////////////////////+vX/8BgAP/AYAD/wGAA/8BgAP/AYAD/xGMA/8ZnAP/DagD/v2wA/7tv - AP+5cQD/u3MA/712AP+/eQD/wXsA/8N+AP/GgQD/yIQA/8yIAP/QiwD/044A/9eSAP/alAD/3ZkA/9ya - AP/bnAD/3Z8A/9+iAP/hpQD/5KkA///33P//+u7//8oh/+63AP/xugD///C8///////////////////8 - 8P//4YH//8sp///MM///zj7//89J/wAAAIkAAAAtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMEK - CMPFCQn/xQkJ/8wdAP/8iBP////////////////////////////8kif/wGAA/8BgAP/AYAD/wmEA/8Vk - AP/FaAD/wWoA/75tAP+6bwD/unEA/7x0AP++dwD/wHkA/8J8AP/EfwD/xoIA/8mEAP/NiQD/0IsA/9WQ - AP/YkgD/25YA/92ZAP/bmwD/3J0A/96gAP/gowD/4qYA/+SqAP//7bn////////rqf/vuAD/8boA///X - Rv//////////////////9dX//+ie///vvf//zDf//85B///AO/8AAABuAAAAHwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAC+CQlCxQkJ/8UJCf/IOQD//IgT/////////////////////////////syd/8Bg - AP/AYAD/wGAA/8JiAP/FZgD/xGgA/8FrAP+9bgD/uW8A/7pyAP+8dQD/vngA/8B6AP/DfQD/xYAA/8eC - AP/KhQD/zYkA/9KMAP/VkAD/2ZMA/9yXAP/dmgD/25sA/9yeAP/eoQD/4KQA/+OnAP/lqwD//+65//// - ////66r/8LkA//G7AP//10b/////////////8sT//8wo///KJP//0kn//914///OQ//JSAfjAAAAQgAA - AAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMEJCcPFCQn/xz4A/9RqAP////////////// - ///////////////////UagD/wGAA/8BgAP/EYwD/xmYA/8NpAP+/bAD/vG4A/7pwAP+7cwD/vXYA/794 - AP/BewD/w34A/8WAAP/HgwD/y4YA/8+KAP/TjQD/1pEA/9qUAP/dmAD/25kA/9ucAP/dnwD/36IA/+Gl - AP/jqAD//8EK/////////////9dW//C5AP/xuwD//+WK////////9NL//8si///JHf//yyf//8wy///N - PP//jBH/NAICeAAAAB0AAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkyxQkJ/8ky - AP/AYAD//sKJ/////////////////////////////KZP/8BgAP/CYQD/xGMA/8VnAP/CagD/v20A/7pv - AP+5cQD/yYAA/9WNAP/TjQD/1pIA/9yeAP/bngD/254A/9ydAP/bnAD/25wA/9ybAP/bmgD/3ZoA/9ya - AP/bmwD/3Z8A/+CjAP/ipgD/5KkA///XYv////////ru/++3AP/xugD/8bsA///43v///////9I6///J - Ff//ySD//8sr///NNf//yDf/lBkGywAAADkAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAMAJCaPFCQn/wlkA/+h0AP//9ev////////////////////////r1//AYAD/wmEA//KF - AP//ng///7Mn//++MP//yj///806///LLP//yR3//8gP///GAv/0vgD/8boA/++3AP/rsgD/560A/+So - AP/gpAD/3aAA/9ucAP/cmQD/2pUA/9WRAP/QjAD/0I0A/86MAP//5aP////////jh//vuAD/8boA///a - V////////+qi///ID///yRj//8oi///LLf//zDj/5lMD+R4BAWcAAAAZAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkhxQkJ/8kyAP/AYAD//rBi//////////////////// - /////////8l1///Zgv//13j//9Vt///TY///0VX//89I///NOf//yyr//8kc///ID///xQL/9L4A//G6 - AP/utgD/67IA/+etAP/jqAD/4KMA/92fAP/bmwD/3ZkA/9qUAP/VkAD/0IsA/8qGAP/GggD///////// - ///6nAD/wnwA/8+LAP//7Ln////////OKP//yBH//8kb///KJv//zDD//6MZ/4MGBsAAAAAxAAAABgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAJCaPFCQn/wlkA/9Rq - AP//9ev////////////////////////y0///2YH//9d2///VbP//0mH//9FU///PRv//zDj//8sp///J - Gv//xw3//8UA//O9AP/xugD/7rYA/+uxAP/nrAD/46gA/+CjAP/dnwD/25oA/92YAP/alAD/1ZAA/9CL - AP/KhgD//7Up////////6cP/vXcA/7pzAP/2lAD////////Pjf/nmQD//8UP///JHv//yyn//8Us/8Yo - BfMAAABUAAAAEwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC9CQkhxQkJ/8sjAP/QaQD//9Of/////////////////////////////9uJ///Xdv//1Wz//9Jg///R - Uv//z0P//8w2///KJ///yBr//8cM//7FAP/yvQD/8LoA/+21AP/qsQD/5qwA/+KnAP/fogD/3J4A/9ub - AP/cmAD/2ZQA/9WPAP/PigD/yoUA///Wiv///////7xM/712AP+6cgD//86G///////rfQD/xGUA/8dn - AP//sQP//8ss//pwAP9vBQWpAAAAKgAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAJCaPFCQn//Z1V///qvf///fv////////////////////////p - tv//13T//9Rq///SX///0VH//85D///NNf//yib//8kX///HC//9xAD/8r0A//C5AP/ttQD/6rAA/+as - AP/ipwD/36IA/9yeAP/bmwD/3ZgA/9mTAP/TjgD/z4oA/8qFAP//8dj//////9OFAP+9dgD/zn0A//// - ////yoj/xWgA/8RjAP/AYAD/wGAA//uQAP+lCAjlAAAASQAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkhxQkJ/9lEMP//6Lf//+7N//// - ////////////////////9+f//9d0///Uaf//013//9BP///OQf//zDP//8ol///JFv//xwn/+sIA//G7 - AP/wuQD/7bQA/+mwAP/lqwD/4qYA/9+iAP/cnQD/25oA/9yXAP/YkwD/044A/86JAP//qgT////////b - nP+/eQD/vXYA///BXv//////6YAA/8VoAP/EYwD/wGAA/8BgAP/MHQD/VwQEkAAAACIAAAADAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAJ - CaPFCQn//7d8///krf//+/T////////////////////////ejP//1Gn//9Fc///QT///zkD//8wx///K - I///yRX//8YI//rCAP/xuwD/8LkA/+y0AP/prwD/5aoA/+GmAP/eoQD/250A/9yaAP/blgD/2JIA/9ON - AP/NiQD//8RR////////sSb/v3gA/7x1AP//79b//8yH/8FrAP/FZwD/w2IA/8BgAP/HPgD/kwcH1QAA - AD8AAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAC9CQkhxQkJ/9U0JP//5Kz//+7G////////////////////////78n//9Nn///R - Wv//0E3//84+///MMP//yiH//8gT///GBv/4wQD/8bsA//C4AP/stAD/6a8A/+WqAP/hpQD/3qEA/9ud - AP/cmgD/3JcA/9iSAP/SjQD/zYkA///lr///8Nf/wnwA/794AP//tDX//////+aFAP/CagD/xmcA/8Ji - AP/CWQD/xxYW/zUDA3UAAAAcAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAJCaPFCQn/7I5i9v/jpv//+ez///////// - //////////31///Wb///0ln//9BL///NPP//zC7//8kg///IE///xgX/9sAA//G7AP/vuAD/67MA/+iu - AP/kqQD/4aUA/96gAP/bnAD/3JoA/9uWAP/XkgD/0owA/96TAP//+/L//81v/8F7AP+/eAD//+Ct///O - hf++bgD/0nIA//R/AP/ziiH243Nb/44wML0AAAA2AAAABwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC9CQkhwwkJ8cIW - FvOfmo/H2M602v//////////////////////5J7//9JY///PSv//zTz//8wu///JHv//yBH//8YE//bA - AP/xuwD/77cA/+uyAP/orgD/5KkA/+GlAP/eoAD/25wA/92aAP/alQD/1pEA/9CMAP//vTb///jo/+mX - AP/BewD/9poA///+/f//rjT//6cv/+ynU+POonLGun9/0stCQvciAgJdAAAAFgAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAL8JCYPFCQn/qFNT0ImJib7s7Ozq//////////////////fh///VZ///0E3//806///L - LP//yR3//8gP///GAv/0vgD/8boA/++3AP/rsgD/560A/+OoAP/gpAD/3aAA/9ubAP/cmQD/2pUA/+Wa - AP/uoAD//9V+///rwv//sST//7pA+v/js/rm2MHpwKJ2v6mpqZmtra2WrJiYrdViYvp0Dw+mAAAALAAA - AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRwwkJ8cIWFvOMfn7EsrKyyf////////////////// - //+ZmZnasqWDx9LAibj+1VnF/9VNzf/VR9T/zyrn/84g5//MHuf/yRzn/8gZ5//FFuf/whPn/8Uq5//F - L+f/wi/n/8dI5//GTufvv1rP7rxZ0P/vyv/Yw5fdpp6Qrq2srKX49Ov1oaGfsqampp2vr6+UqKiom8t1 - dea9IyPwAAAASwAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCYPFCQn/r0FB2oeH - h8Ds7Ozq////////////////0tLS8ISEhMWdnZ2mrq6ulbCwsJSwsLCUsLCwlLCwsJSwsLCUsLCwlLCw - sJSwsLCUsLCwlLCwsJSwsLCUsLCwlLCwsJSwsLCUsLCwlMS7qq//7MP6nZyXt6KioqDX1MrL1tPL1p6e - nqStra2XrKysl7WJh8PSQUH/VgQEkgAAACYAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC8CQkRwwkJ8cQPD/mMfX3EoaGhv/////////////////j4+P1/f3/NkpKSsqmpqZqwsLCUsLCwlLCw - sJSwsLCUsLCwlLCwsJSwsLCUsLCwlLCwsJSwsLCUsLCwlLCwsJSwsLCUsLCwlK+vr5To06XQ7tWj4pmZ - mKqlpKKe+O/c76Shnq+npqKcsK2qlaqdmaXWYV/6qQ8P4QAAAEYAAAANAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCYPFCQn/r0FB2oeHh8Hh4eHg////////////////srKy5ImJ - ib6hoaGhr6+vlLCwsJSwsLCUsLCwlLCwr5SwsK+UsLCvlLGvrpSxr66UsbCtlLGwrZSxsKyUsq+rlLKv - qpSvrKaX/+Gl7r+wkcWhn5ak0Mi1vdzUvtSjnpSjsauel62nmprGeG7cyyEf/0gDA4IAAAAgAAAAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRwwkJ8cQPD/mMfXzFoKCgwf// - /////////////+Li4vWCgYDJmZiVq62sqJeyr6uUsq+rlLKvqpSysKmUsq+olLKwppSyrqaUs6+klLOu - o5S0rqKUtK6glLWun5S1rZ2Uw7STp//goPSdloOsqaCKoPPlwuKtooqsr6OJnLWpjZa6iXG81T81/5cH - B9AAAAA6AAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8J - CYPFCQn/sjk334eFgMPb2tjb////////////////ko+J15GMgrippJedta6flLWunpS1rpyUta2blLat - mZS2rZeUt6yVlLeslJS4rJKUuKuQlLisjpS5q4yUuquKlOfGfsLuyXvVqZl1pcCvhqvm0qbSr5xyobqk - d5eznW+e2l5D9sAPDfgeAQFoAAAAGQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAC8CQkRwwkJ8cUJCf+TcGXKmZSFvvv7+fr//////////8zJwu2Lgm3EpZl/preq - ipW6q4qUu6uIlLurhpS8qoSUvKqClL2pf5S9qX2Uvqh7lL+oeJS/p3aUwKdzlL+lb5X/13vhv6BhtLOY - X6Hz153Vup9iqb2dWpu/nlmZ0HRB1s4gFv+DBga/AAAANAAAAAcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCYPFCQn/uDEo446BZcPY0sTX//////// - ///4+Pb8iXlXzZ+LY7K3oG+awKZxlMGmb5TCpWuUw6VolMOlZpTEpGSUxaRflMajXZTHo1qUyKRWlMij - U5TDn06Z/9Bl3beSQqTHoUul7cp6ysKYOZ7KnjeYyoYttNk2GP+2CQnyIQICXwAAABUAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC8CQkRxAkJ8MUJ - Cf+dbEfIo41fv/z6+Pr//////////7uukeSbgES+uJZNocijUZTKpE2Uy6NKlM2jRpTOo0KUzqM/lNCk - OpTRojaU0qIylNOjLpTVoymU9r43u/W9NsfLmRef9cdYwNejGqTWngia05wBneFaBuzFCQn/cAUFqAAA - ACoAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAL8JCWLFCQn/vicX55t7MsTez6vY///////////n4ND0nHgiybiNJarRnyWX16MglNmk - GpTapBWU3KUPlN6lCpTgpQSU3qUAlNqiAJTVoACU0JwAlP/HMs60iQCjuY0Am//JM720iwCXrYYAmcB1 - AM/QGwP/pQgI5AAAAEoAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwwkJ4sUJCf+wWg7QrIAJvvn26PT//////////7CL - H9WqfwC3vpAAn7+RAJu2iwCfr4YAoKuDAKGngAChpH4AoKR+AJ6mgACaqIIAlaeBAJX/xB/MnXkAnKJ9 - AJimgACUpX8AlaV2AK3RQAD7xQkJ/1YEBJIAAAAkAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCWLFCQn/xRwE8Ilp - AMbiwlfQ///////////ZwnXpgGMAw49uAK6LbACwhGYAu4JkAL6BYwC/gWMAv4JkAL6FZwC4kG8Aqp97 - AJrJmgCi2aQAqaR+AJalgACVpoAAlJ56AJvGYADnxQkJ/50HB9wAAABBAAAACwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAwwkJ4sUJCf+hTgDagGMAwPv14vX/////9vHe+ph1AM3nzXfd6dib6e3jvPTt4rv07eK79O3i - u/Tj05jv0rNL4YNlALyZdgCgpoAAlKaAAJSmgACUpoAAlKR/AJWzdQDB0RwA/8UJCf80AgJ5AAAAHQAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAL8JCWLFCQn/xBUC93xgAMb268Pr///////////KoyHZ//////// - /////////////////////////////+zhu/V9YADFlnQApKaAAJSmgACUpoAAlKaAAJSofQCe0kAA+sUJ - Cf+IBgbPAAAAPQAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAxQkJ/8UJCf97XwDI7dJ71/// - ////////yqMh2f//////////////////////////////////////////e18Ax5VzAKWmgACUpoAAlKaA - AJSmgACUtnsAssUJCf/FCQn/FwEBhgAAACgAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMUJ - Cf/FCQn/e18AyevRetj//////////8qjIdn//////////////////////////////////////////3tf - AMeVcwClpoAAlKaAAJSmgACUpoAAlLd8ALHFCQn/owgI5gAAAHcAAAAkAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAADFCQn/xQkJ/4hcAM7pz3na///////////JoiHa//////////////////////// - //////////////////97XwDHlXMApaaAAJSmgACUpoAAlKaAAJS5fQCvxQkJ/6QICOUAAAB0AAAAIgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwQkJ5MUJCf+VVwDU6c952///////////0rNL4f// - ////////////////////////////////////////e18Ax5VzAKWmgACUpoAAlKaAAJSmgACUpoAAlNEc - AP+lCAjjAAAAawAAAB4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAALwJCcjFCQn/lVcA0+nP - edr//////////9zDcuj//////////////////////////////////////////3tfAMeVcwClpoAAlKaA - AJSmgACUpoAAlKaAAJTSIwD/lAcH1AAAAGMAAAAZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC8CQnIxQkJ/5VXANTpz3na///////////cxHLn//////////////////////////////////////// - //97XwDHlXMApaaAAJSmgACUpoAAlKaAAJSmgACU0iMA/4EGBsMAAABeAAAAGAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAvAkJyMUJCf+UVwDV2a8jyv//////////3cRz5v////////////////// - ////////////////////////e18Ax5VzAKWmgACUpoAAlKaAAJSmgACUpoAAlNIjAP+EBga+AAAAVgAA - ABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAL4JCcbFCQn/q0MA4teuI8z//////////86s - N9z//////////////////////////////////////////3tfAMeVcwClpoAAlKaAAJSmgACUpoAAlKaA - AJTFJwDnhwYGugAAAEoAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3CQmaxQkJ/6xD - AOHXriPM///////////IoiHb//////////////////////////////////////////97XwDHlXMApaaA - AJSmgACUpoAAlKaAAJSmgACUyEUA52QFBZ0AAABCAAAADQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAtAkJi8UJCf+sQwDh1q0jzf//////////17xe5P////////////////////////////////// - ////////e18Ax5VzAKWmgACUpoAAlKaAAJSmgACUpoAAlMlFAOdXBASPAAAAPAAAAAsAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAALQJCYvFCQn/q0MA4dSsI87//////////9/Gc+X///////////// - /////////////////////////////39iAMKUcgCmon0AmKN+AJelfwCVpoAAlKaAAJTGRgDgXAQEiAAA - ADIAAAAHAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC2CQmKxQkJ/7U1AOnQqSLS//////// - ///hyHTi//////////////////////////////////////////9/YgDBiWkAtI5tAK6PbwCrk3IAp5Z0 - AKOZdgCguEgA0kwEBHwAAAAnAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEsAgIj8UJ - Cf+9JQDxeFwAze3dre3fxnPl1psc5I1fANuTYADbomIA46JiAOShYgDkoWIA5KFiAOShYgDkj2EA1o9h - ANeOYADYeV4Ay3tfAMh9YQDEgWQAvq9KAN0AAAB6AAAAQgAAABYAAAAGAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAALAAAAKWIFBYDFCQn/xC8A+KxwAO+4awD4wmEA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wGAA/8Bg - AP/AYAD/wGAA/8BgAP/AYAD/wGAA/8BgAP+9YAD8sWEA8qFiAOSyWgDrAAAAoAAAAIUAAABaAAAAKgAA - AAkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAHAAAALopoAKLCfQDr1F0A/816AP/BewD/u3AA/8NlAP/AYAD/wGAA/6JR - AOKiUQDiolEA4qJRAOKjUQDio1EA4qJRAOKyWQDxwGAA/8BgAP/AYAD/wGAA/8BgAP/AYAD/wGAA/7BY - APR0OgDUAAAAmAAAAGMAAAAeAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlXEAH+24AN3ttQD/4qYA/7R+AOmWYwDcjlUA2oxN - ANiGRADNf0AAwJVLAM2mUwDdplMA3aZTAN6mUwDdp1MA3KZTAN2mUwDdplMA3oNBALuDQgC7nU8A1n4/ - AMKaTQDcjUcA2bBYAPPAYAD/wGAA/51OAOoAAACCAAAAKwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/HHIj/wQT0s3cA5p5U - AO2vWAD1wGAA/8BgAP/AYAD/xmcA6chpAOLNcwDPznMAzs50AM7OcgDO0X4Au893AMfNcwDNy3MAzstz - AM7JcADUxWgA58RlAO3AYAD/xWcA/75tAP+kZQDqnl4A6aZaAPHAYAD/AAAAhgAAACwAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAC+bQBKxmcA/8BgAP/AYAD/wmIA+ctwCdvAhC26u5pQnsOfU5jIo1SVyaNSlMmkUZTKo0+UyqNOlMuk - TJTLo0uUzKRJlMyjSJTNo0aUzaJFlM6jQ5TOo0KUzKE/ld6IDbrOfADcu3QA/8B6AP/FgAD/uXcA9AAA - AG8AAAAiAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAu14Ac8BgAP/AYAD/wGAA/7V/QMiVjXy1nJSBraOZhKannYWjqp+GoKuf - hqCpnoShqp2CoaqegqCsoIGfrqCBnq6ff56tnXygrJx7oa2ceaGtnHihrp14n62cd6CqmXKkpZNtqsp+ - AOzBewD/xoEA/8iFAPUAAAA2AAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC5XQBCu14AtMBgAP/AYAD/4nEA3NWI - Ob3Bl2urp6ennKSkpJ6ioqKgoaGhoqCgoKKhoaGipKSkn6enp5ympqadoqKioaGhn6KgoJ+joaGfoq2e - jKXGjlW16oME08Z3APK9dgD/vHcA5rBzAKJ5UAA2AAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAuV0AQrZbAHayWQCJul0AxrhcAMfEYgDc4HAA3+BwAN/gcADf6HQA1+2EHb7wgA7F4HAA3uBw - AN/gcADf12sA57ZbAMm3XADJtVwArK1gAI6bXQBghVMALQAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA//+AAAAH////+AAAAAA///+AAAAAAAf//gAAAAAAAf/4AAAAAAAAf/AAAAAAAAA/8AAAAAAA - AB/gAAAAAAAAD+AAAAAAAAAP4AAAAAAAAA/gAAAAAAAAD+AAAAAAAAAP4AAAAAAAAA/gAAAAAAAAD+AA - AAAAAAAP4AAAAAAAAA/wAAAAAAAAD/AAAAAAAAAf+AAAAAAAAB/4AAAAAAAAP/wAAAAAAAB//AAAAAAA - AH/+AAAAAAAA//4AAAAAAAD//wAAAAAAAf//AAAAAAAB//+AAAAAAAP//4AAAAAAA///wAAAAAAH///A - AAAAAA///+AAAAAAD///4AAAAAAf///wAAAAAB////AAAAAAP///+AAAAAA////4AAAAAH////wAAAAA - f////AAAAAD////+AAAAAf////8AAAAB/////wAAAAP/////gAAAA/////+AAAAH/////8AAAAf///// - wAAAD//////AAAAP/////8AAAA//////wAAAD//////AAAAP/////8AAAA//////wAAAD//////AAAAP - /////8AAAA//////wAAAD//////AAAAP/////4AAAAf////+AAAAA/////4AAAAD/////gAAAAP////+ - AAAAA/////4AAAAD/////gAAAAP/////AAAAA//////gAAAf//8= - - - \ No newline at end of file diff --git a/PROMS/xxxSync/Sync/Properties/Settings.Designer.cs b/PROMS/xxxSync/Sync/Properties/Settings.Designer.cs deleted file mode 100644 index 06191e8a..00000000 --- a/PROMS/xxxSync/Sync/Properties/Settings.Designer.cs +++ /dev/null @@ -1,107 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace Sync.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string DevelopmentFolder { - get { - return ((string)(this["DevelopmentFolder"])); - } - set { - this["DevelopmentFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string SourceSafeFolder { - get { - return ((string)(this["SourceSafeFolder"])); - } - set { - this["SourceSafeFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MailBoxDevelopmentFolder { - get { - return ((string)(this["MailBoxDevelopmentFolder"])); - } - set { - this["MailBoxDevelopmentFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string MailBoxSourceSafeFolder { - get { - return ((string)(this["MailBoxSourceSafeFolder"])); - } - set { - this["MailBoxSourceSafeFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Drawing.Point Location { - get { - return ((global::System.Drawing.Point)(this["Location"])); - } - set { - this["Location"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Drawing.Size Size { - get { - return ((global::System.Drawing.Size)(this["Size"])); - } - set { - this["Size"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Collections.Specialized.StringCollection Widths { - get { - return ((global::System.Collections.Specialized.StringCollection)(this["Widths"])); - } - set { - this["Widths"] = value; - } - } - } -} diff --git a/PROMS/xxxSync/Sync/Properties/Settings.settings b/PROMS/xxxSync/Sync/Properties/Settings.settings deleted file mode 100644 index 258fd349..00000000 --- a/PROMS/xxxSync/Sync/Properties/Settings.settings +++ /dev/null @@ -1,27 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/xxxSync/Sync/Resources/iSync-128x128.png b/PROMS/xxxSync/Sync/Resources/iSync-128x128.png deleted file mode 100644 index b6293d16..00000000 Binary files a/PROMS/xxxSync/Sync/Resources/iSync-128x128.png and /dev/null differ diff --git a/PROMS/xxxSync/Sync/Resources/iSync.ico b/PROMS/xxxSync/Sync/Resources/iSync.ico deleted file mode 100644 index af4a5cb4..00000000 Binary files a/PROMS/xxxSync/Sync/Resources/iSync.ico and /dev/null differ diff --git a/PROMS/xxxSync/Sync/Resources/wi0124-16.ico b/PROMS/xxxSync/Sync/Resources/wi0124-16.ico deleted file mode 100644 index bdc5fedf..00000000 Binary files a/PROMS/xxxSync/Sync/Resources/wi0124-16.ico and /dev/null differ diff --git a/PROMS/xxxSync/Sync/Resources/wi0124-24.ico b/PROMS/xxxSync/Sync/Resources/wi0124-24.ico deleted file mode 100644 index d2d7b27c..00000000 Binary files a/PROMS/xxxSync/Sync/Resources/wi0124-24.ico and /dev/null differ diff --git a/PROMS/xxxSync/Sync/Resources/wi0124-32.ico b/PROMS/xxxSync/Sync/Resources/wi0124-32.ico deleted file mode 100644 index ef130ac0..00000000 Binary files a/PROMS/xxxSync/Sync/Resources/wi0124-32.ico and /dev/null differ diff --git a/PROMS/xxxSync/Sync/Resources/wi0124-48.ico b/PROMS/xxxSync/Sync/Resources/wi0124-48.ico deleted file mode 100644 index 9a475063..00000000 Binary files a/PROMS/xxxSync/Sync/Resources/wi0124-48.ico and /dev/null differ diff --git a/PROMS/xxxSync/Sync/Resources/wi0124-64.ico b/PROMS/xxxSync/Sync/Resources/wi0124-64.ico deleted file mode 100644 index 3cb97438..00000000 Binary files a/PROMS/xxxSync/Sync/Resources/wi0124-64.ico and /dev/null differ diff --git a/PROMS/xxxSync/Sync/SevenZipSharp.dll b/PROMS/xxxSync/Sync/SevenZipSharp.dll deleted file mode 100644 index f588f8a2..00000000 Binary files a/PROMS/xxxSync/Sync/SevenZipSharp.dll and /dev/null differ diff --git a/PROMS/xxxSync/Sync/Sync.csproj b/PROMS/xxxSync/Sync/Sync.csproj deleted file mode 100644 index 3deece84..00000000 --- a/PROMS/xxxSync/Sync/Sync.csproj +++ /dev/null @@ -1,121 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {400F2DAC-E405-4C1B-A388-5120FCF59DF0} - WinExe - Properties - Sync - Sync - Resources\iSync.ico - "%24/PROMS/Sync/Sync", KEEAAAAA - . - - - MSSCCI:Microsoft Visual SourceSafe - v2.0 - - - - - 2.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - False - - - - - - - - - - - - Form - - - frmSync.cs - - - - - Designer - frmSync.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/xxxSync/Sync/Sync.sln b/PROMS/xxxSync/Sync/Sync.sln deleted file mode 100644 index aa4d02a8..00000000 --- a/PROMS/xxxSync/Sync/Sync.sln +++ /dev/null @@ -1,26 +0,0 @@ - -Microsoft Visual Studio Solution File, Format Version 9.00 -# Visual Studio 2005 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Sync", "Sync\Sync.csproj", "{400F2DAC-E405-4C1B-A388-5120FCF59DF0}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "SyncMany", "SyncMany\SyncMany.csproj", "{256A41AF-440F-42FE-A9B1-2CE36F1261A2}" -EndProject -Global - GlobalSection(SolutionConfigurationPlatforms) = preSolution - Debug|Any CPU = Debug|Any CPU - Release|Any CPU = Release|Any CPU - EndGlobalSection - GlobalSection(ProjectConfigurationPlatforms) = postSolution - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Debug|Any CPU.Build.0 = Debug|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.ActiveCfg = Release|Any CPU - {400F2DAC-E405-4C1B-A388-5120FCF59DF0}.Release|Any CPU.Build.0 = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Debug|Any CPU.Build.0 = Debug|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.ActiveCfg = Release|Any CPU - {256A41AF-440F-42FE-A9B1-2CE36F1261A2}.Release|Any CPU.Build.0 = Release|Any CPU - EndGlobalSection - GlobalSection(SolutionProperties) = preSolution - HideSolutionNode = FALSE - EndGlobalSection -EndGlobal diff --git a/PROMS/xxxSync/Sync/app.config b/PROMS/xxxSync/Sync/app.config deleted file mode 100644 index 6787e77e..00000000 --- a/PROMS/xxxSync/Sync/app.config +++ /dev/null @@ -1,24 +0,0 @@ - - - - -
    - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/xxxSync/Sync/frmSync.Designer.cs b/PROMS/xxxSync/Sync/frmSync.Designer.cs deleted file mode 100644 index e15c8dfd..00000000 --- a/PROMS/xxxSync/Sync/frmSync.Designer.cs +++ /dev/null @@ -1,511 +0,0 @@ -namespace Sync -{ - partial class frmSync - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmSync)); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnBrwsSSMail = new System.Windows.Forms.Button(); - this.tbSSMailBox = new System.Windows.Forms.TextBox(); - this.label4 = new System.Windows.Forms.Label(); - this.btnBrwsMail = new System.Windows.Forms.Button(); - this.tbMailBox = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.btnBrwsSS = new System.Windows.Forms.Button(); - this.tbSourceSafe = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.btnBrwsDev = new System.Windows.Forms.Button(); - this.tbDevelopment = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.cms = new System.Windows.Forms.ContextMenuStrip(this.components); - this.compareToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.compareSourceSafeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.compareMailboxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.editToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.selectAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.selectNoneToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.mailboxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.clearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.buildToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.checkedOutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.differentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.contentDifferentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.sourceSafeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreUnchangedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreSelectedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreReadOnlyToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.listToClipboardToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.differentAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.cms.SuspendLayout(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Controls.Add(this.btnBrwsSSMail); - this.panel1.Controls.Add(this.tbSSMailBox); - this.panel1.Controls.Add(this.label4); - this.panel1.Controls.Add(this.btnBrwsMail); - this.panel1.Controls.Add(this.tbMailBox); - this.panel1.Controls.Add(this.label3); - this.panel1.Controls.Add(this.btnBrwsSS); - this.panel1.Controls.Add(this.tbSourceSafe); - this.panel1.Controls.Add(this.label2); - this.panel1.Controls.Add(this.btnBrwsDev); - this.panel1.Controls.Add(this.tbDevelopment); - this.panel1.Controls.Add(this.label1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 24); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(759, 117); - this.panel1.TabIndex = 1; - // - // btnBrwsSSMail - // - this.btnBrwsSSMail.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsSSMail.Location = new System.Drawing.Point(672, 86); - this.btnBrwsSSMail.Name = "btnBrwsSSMail"; - this.btnBrwsSSMail.Size = new System.Drawing.Size(75, 23); - this.btnBrwsSSMail.TabIndex = 14; - this.btnBrwsSSMail.Text = "Browse..."; - this.btnBrwsSSMail.UseVisualStyleBackColor = true; - this.btnBrwsSSMail.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbSSMailBox - // - this.tbSSMailBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSSMailBox.Location = new System.Drawing.Point(120, 88); - this.tbSSMailBox.Name = "tbSSMailBox"; - this.tbSSMailBox.Size = new System.Drawing.Size(546, 20); - this.tbSSMailBox.TabIndex = 13; - this.tbSSMailBox.Text = "E:\\Mailbox\\SourceSafe\\Proms"; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(12, 91); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(92, 13); - this.label4.TabIndex = 12; - this.label4.Text = "SS Mailbox Folder"; - // - // btnBrwsMail - // - this.btnBrwsMail.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsMail.Location = new System.Drawing.Point(672, 60); - this.btnBrwsMail.Name = "btnBrwsMail"; - this.btnBrwsMail.Size = new System.Drawing.Size(75, 23); - this.btnBrwsMail.TabIndex = 8; - this.btnBrwsMail.Text = "Browse..."; - this.btnBrwsMail.UseVisualStyleBackColor = true; - this.btnBrwsMail.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbMailBox - // - this.tbMailBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbMailBox.Location = new System.Drawing.Point(120, 62); - this.tbMailBox.Name = "tbMailBox"; - this.tbMailBox.Size = new System.Drawing.Size(546, 20); - this.tbMailBox.TabIndex = 7; - this.tbMailBox.Text = "E:\\Mailbox\\Proms"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(12, 65); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(75, 13); - this.label3.TabIndex = 6; - this.label3.Text = "Mailbox Folder"; - // - // btnBrwsSS - // - this.btnBrwsSS.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsSS.Location = new System.Drawing.Point(672, 34); - this.btnBrwsSS.Name = "btnBrwsSS"; - this.btnBrwsSS.Size = new System.Drawing.Size(75, 23); - this.btnBrwsSS.TabIndex = 5; - this.btnBrwsSS.Text = "Browse..."; - this.btnBrwsSS.UseVisualStyleBackColor = true; - this.btnBrwsSS.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbSourceSafe - // - this.tbSourceSafe.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSourceSafe.Location = new System.Drawing.Point(120, 36); - this.tbSourceSafe.Name = "tbSourceSafe"; - this.tbSourceSafe.Size = new System.Drawing.Size(546, 20); - this.tbSourceSafe.TabIndex = 4; - this.tbSourceSafe.Text = "E:\\SourceSafe\\Proms"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 39); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(98, 13); - this.label2.TabIndex = 3; - this.label2.Text = "Source Safe Folder"; - // - // btnBrwsDev - // - this.btnBrwsDev.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsDev.Location = new System.Drawing.Point(672, 8); - this.btnBrwsDev.Name = "btnBrwsDev"; - this.btnBrwsDev.Size = new System.Drawing.Size(75, 23); - this.btnBrwsDev.TabIndex = 2; - this.btnBrwsDev.Text = "Browse..."; - this.btnBrwsDev.UseVisualStyleBackColor = true; - this.btnBrwsDev.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbDevelopment - // - this.tbDevelopment.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbDevelopment.Location = new System.Drawing.Point(120, 10); - this.tbDevelopment.Name = "tbDevelopment"; - this.tbDevelopment.Size = new System.Drawing.Size(546, 20); - this.tbDevelopment.TabIndex = 1; - this.tbDevelopment.Text = "E:\\Proms"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 13); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(102, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Development Folder"; - // - // dgv - // - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.ContextMenuStrip = this.cms; - this.dgv.Dock = System.Windows.Forms.DockStyle.Fill; - this.dgv.Location = new System.Drawing.Point(0, 141); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(759, 283); - this.dgv.TabIndex = 2; - this.dgv.ColumnWidthChanged += new System.Windows.Forms.DataGridViewColumnEventHandler(this.dgv_ColumnWidthChanged); - this.dgv.MouseDown += new System.Windows.Forms.MouseEventHandler(this.dgv_MouseDown); - // - // cms - // - this.cms.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.compareToolStripMenuItem, - this.compareSourceSafeToolStripMenuItem, - this.compareMailboxToolStripMenuItem, - this.restoreToolStripMenuItem}); - this.cms.Name = "cms"; - this.cms.Size = new System.Drawing.Size(188, 92); - // - // compareToolStripMenuItem - // - this.compareToolStripMenuItem.Name = "compareToolStripMenuItem"; - this.compareToolStripMenuItem.Size = new System.Drawing.Size(187, 22); - this.compareToolStripMenuItem.Text = "Compare"; - this.compareToolStripMenuItem.Click += new System.EventHandler(this.compareToolStripMenuItem_Click); - // - // compareSourceSafeToolStripMenuItem - // - this.compareSourceSafeToolStripMenuItem.Name = "compareSourceSafeToolStripMenuItem"; - this.compareSourceSafeToolStripMenuItem.Size = new System.Drawing.Size(187, 22); - this.compareSourceSafeToolStripMenuItem.Text = "Compare Source Safe"; - this.compareSourceSafeToolStripMenuItem.Click += new System.EventHandler(this.compareSourceSafeToolStripMenuItem_Click); - // - // compareMailboxToolStripMenuItem - // - this.compareMailboxToolStripMenuItem.Name = "compareMailboxToolStripMenuItem"; - this.compareMailboxToolStripMenuItem.Size = new System.Drawing.Size(187, 22); - this.compareMailboxToolStripMenuItem.Text = "Compare Mailbox"; - this.compareMailboxToolStripMenuItem.Click += new System.EventHandler(this.compareMailboxToolStripMenuItem_Click); - // - // restoreToolStripMenuItem - // - this.restoreToolStripMenuItem.Name = "restoreToolStripMenuItem"; - this.restoreToolStripMenuItem.Size = new System.Drawing.Size(187, 22); - this.restoreToolStripMenuItem.Text = "Restore"; - this.restoreToolStripMenuItem.Click += new System.EventHandler(this.restoreToolStripMenuItem_Click); - // - // statusStrip1 - // - this.statusStrip1.Location = new System.Drawing.Point(0, 424); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(759, 22); - this.statusStrip1.TabIndex = 3; - this.statusStrip1.Text = "statusStrip1"; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.editToolStripMenuItem, - this.mailboxToolStripMenuItem, - this.findToolStripMenuItem, - this.sourceSafeToolStripMenuItem, - this.listToClipboardToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(759, 24); - this.menuStrip1.TabIndex = 4; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // editToolStripMenuItem - // - this.editToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.selectAllToolStripMenuItem, - this.selectNoneToolStripMenuItem}); - this.editToolStripMenuItem.Name = "editToolStripMenuItem"; - this.editToolStripMenuItem.Size = new System.Drawing.Size(39, 20); - this.editToolStripMenuItem.Text = "&Edit"; - // - // selectAllToolStripMenuItem - // - this.selectAllToolStripMenuItem.Name = "selectAllToolStripMenuItem"; - this.selectAllToolStripMenuItem.Size = new System.Drawing.Size(137, 22); - this.selectAllToolStripMenuItem.Text = "Select All"; - this.selectAllToolStripMenuItem.Click += new System.EventHandler(this.selectAllToolStripMenuItem_Click); - // - // selectNoneToolStripMenuItem - // - this.selectNoneToolStripMenuItem.Name = "selectNoneToolStripMenuItem"; - this.selectNoneToolStripMenuItem.Size = new System.Drawing.Size(137, 22); - this.selectNoneToolStripMenuItem.Text = "Select None"; - this.selectNoneToolStripMenuItem.Click += new System.EventHandler(this.selectNoneToolStripMenuItem_Click); - // - // mailboxToolStripMenuItem - // - this.mailboxToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.clearToolStripMenuItem, - this.buildToolStripMenuItem}); - this.mailboxToolStripMenuItem.Name = "mailboxToolStripMenuItem"; - this.mailboxToolStripMenuItem.Size = new System.Drawing.Size(61, 20); - this.mailboxToolStripMenuItem.Text = "Mailbox"; - // - // clearToolStripMenuItem - // - this.clearToolStripMenuItem.Name = "clearToolStripMenuItem"; - this.clearToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.clearToolStripMenuItem.Text = "Clear"; - this.clearToolStripMenuItem.Click += new System.EventHandler(this.clearToolStripMenuItem_Click); - // - // buildToolStripMenuItem - // - this.buildToolStripMenuItem.Name = "buildToolStripMenuItem"; - this.buildToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.buildToolStripMenuItem.Text = "Build"; - this.buildToolStripMenuItem.Click += new System.EventHandler(this.buildToolStripMenuItem_Click); - // - // findToolStripMenuItem - // - this.findToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.checkedOutToolStripMenuItem, - this.differentToolStripMenuItem, - this.contentDifferentToolStripMenuItem, - this.differentAllToolStripMenuItem}); - this.findToolStripMenuItem.Name = "findToolStripMenuItem"; - this.findToolStripMenuItem.Size = new System.Drawing.Size(42, 20); - this.findToolStripMenuItem.Text = "Find"; - // - // checkedOutToolStripMenuItem - // - this.checkedOutToolStripMenuItem.Name = "checkedOutToolStripMenuItem"; - this.checkedOutToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.checkedOutToolStripMenuItem.Text = "Checked-Out"; - this.checkedOutToolStripMenuItem.Click += new System.EventHandler(this.checkedOutToolStripMenuItem_Click); - // - // differentToolStripMenuItem - // - this.differentToolStripMenuItem.Name = "differentToolStripMenuItem"; - this.differentToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.differentToolStripMenuItem.Text = "Different"; - this.differentToolStripMenuItem.Click += new System.EventHandler(this.differentToolStripMenuItem_Click); - // - // contentDifferentToolStripMenuItem - // - this.contentDifferentToolStripMenuItem.Name = "contentDifferentToolStripMenuItem"; - this.contentDifferentToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.contentDifferentToolStripMenuItem.Text = "Content Different"; - this.contentDifferentToolStripMenuItem.Click += new System.EventHandler(this.contentDifferentToolStripMenuItem_Click); - // - // sourceSafeToolStripMenuItem - // - this.sourceSafeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.restoreUnchangedToolStripMenuItem, - this.restoreSelectedToolStripMenuItem, - this.restoreAllToolStripMenuItem, - this.restoreReadOnlyToolStripMenuItem}); - this.sourceSafeToolStripMenuItem.Name = "sourceSafeToolStripMenuItem"; - this.sourceSafeToolStripMenuItem.Size = new System.Drawing.Size(80, 20); - this.sourceSafeToolStripMenuItem.Text = "Source Safe"; - // - // restoreUnchangedToolStripMenuItem - // - this.restoreUnchangedToolStripMenuItem.Name = "restoreUnchangedToolStripMenuItem"; - this.restoreUnchangedToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreUnchangedToolStripMenuItem.Text = "Restore Unchanged"; - this.restoreUnchangedToolStripMenuItem.Click += new System.EventHandler(this.restoreUnchangedToolStripMenuItem_Click); - // - // restoreSelectedToolStripMenuItem - // - this.restoreSelectedToolStripMenuItem.Name = "restoreSelectedToolStripMenuItem"; - this.restoreSelectedToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreSelectedToolStripMenuItem.Text = "Restore Selected (To Process)"; - this.restoreSelectedToolStripMenuItem.Click += new System.EventHandler(this.restoreSelectedToolStripMenuItem_Click); - // - // restoreAllToolStripMenuItem - // - this.restoreAllToolStripMenuItem.Name = "restoreAllToolStripMenuItem"; - this.restoreAllToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreAllToolStripMenuItem.Text = "Restore All"; - this.restoreAllToolStripMenuItem.Click += new System.EventHandler(this.restoreAllToolStripMenuItem_Click); - // - // restoreReadOnlyToolStripMenuItem - // - this.restoreReadOnlyToolStripMenuItem.Name = "restoreReadOnlyToolStripMenuItem"; - this.restoreReadOnlyToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreReadOnlyToolStripMenuItem.Text = "Restore Read Only"; - this.restoreReadOnlyToolStripMenuItem.Click += new System.EventHandler(this.restoreReadOnlyToolStripMenuItem_Click); - // - // listToClipboardToolStripMenuItem - // - this.listToClipboardToolStripMenuItem.Name = "listToClipboardToolStripMenuItem"; - this.listToClipboardToolStripMenuItem.Size = new System.Drawing.Size(103, 20); - this.listToClipboardToolStripMenuItem.Text = "List toClipboard"; - this.listToClipboardToolStripMenuItem.Click += new System.EventHandler(this.listToClipboardToolStripMenuItem_Click); - // - // differentAllToolStripMenuItem - // - this.differentAllToolStripMenuItem.Name = "differentAllToolStripMenuItem"; - this.differentAllToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.differentAllToolStripMenuItem.Text = "DifferentAll"; - this.differentAllToolStripMenuItem.Click += new System.EventHandler(this.differentAllToolStripMenuItem_Click); - // - // frmSync - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(759, 446); - this.Controls.Add(this.dgv); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmSync"; - this.Text = "Volian Sync"; - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmSync_FormClosing); - this.Load += new System.EventHandler(this.frmSync_Load); - this.LocationChanged += new System.EventHandler(this.frmSync_LocationChanged); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.cms.ResumeLayout(false); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnBrwsDev; - private System.Windows.Forms.TextBox tbDevelopment; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnBrwsMail; - private System.Windows.Forms.TextBox tbMailBox; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Button btnBrwsSS; - private System.Windows.Forms.TextBox tbSourceSafe; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.Button btnBrwsSSMail; - private System.Windows.Forms.TextBox tbSSMailBox; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem mailboxToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem clearToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem buildToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem findToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem checkedOutToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem differentToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem sourceSafeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreUnchangedToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreSelectedToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreAllToolStripMenuItem; - private System.Windows.Forms.ContextMenuStrip cms; - private System.Windows.Forms.ToolStripMenuItem compareToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem contentDifferentToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreReadOnlyToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem listToClipboardToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem editToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem selectAllToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem selectNoneToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem compareSourceSafeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem compareMailboxToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem differentAllToolStripMenuItem; - } -} - diff --git a/PROMS/xxxSync/Sync/frmSync.Designer.cs.bak b/PROMS/xxxSync/Sync/frmSync.Designer.cs.bak deleted file mode 100644 index 11723591..00000000 --- a/PROMS/xxxSync/Sync/frmSync.Designer.cs.bak +++ /dev/null @@ -1,430 +0,0 @@ -namespace Sync -{ - partial class frmSync - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmSync)); - this.panel1 = new System.Windows.Forms.Panel(); - this.btnBrwsSSMail = new System.Windows.Forms.Button(); - this.tbSSMailBox = new System.Windows.Forms.TextBox(); - this.label4 = new System.Windows.Forms.Label(); - this.btnBrwsMail = new System.Windows.Forms.Button(); - this.tbMailBox = new System.Windows.Forms.TextBox(); - this.label3 = new System.Windows.Forms.Label(); - this.btnBrwsSS = new System.Windows.Forms.Button(); - this.tbSourceSafe = new System.Windows.Forms.TextBox(); - this.label2 = new System.Windows.Forms.Label(); - this.btnBrwsDev = new System.Windows.Forms.Button(); - this.tbDevelopment = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.fbd = new System.Windows.Forms.FolderBrowserDialog(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.cms = new System.Windows.Forms.ContextMenuStrip(this.components); - this.compareToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.mailboxToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.clearToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.buildToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.findToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.checkedOutToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.differentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.contentDifferentToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.sourceSafeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreUnchangedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreSelectedToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.restoreAllToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.panel1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.cms.SuspendLayout(); - this.menuStrip1.SuspendLayout(); - this.SuspendLayout(); - // - // panel1 - // - this.panel1.Controls.Add(this.btnBrwsSSMail); - this.panel1.Controls.Add(this.tbSSMailBox); - this.panel1.Controls.Add(this.label4); - this.panel1.Controls.Add(this.btnBrwsMail); - this.panel1.Controls.Add(this.tbMailBox); - this.panel1.Controls.Add(this.label3); - this.panel1.Controls.Add(this.btnBrwsSS); - this.panel1.Controls.Add(this.tbSourceSafe); - this.panel1.Controls.Add(this.label2); - this.panel1.Controls.Add(this.btnBrwsDev); - this.panel1.Controls.Add(this.tbDevelopment); - this.panel1.Controls.Add(this.label1); - this.panel1.Dock = System.Windows.Forms.DockStyle.Top; - this.panel1.Location = new System.Drawing.Point(0, 24); - this.panel1.Name = "panel1"; - this.panel1.Size = new System.Drawing.Size(759, 117); - this.panel1.TabIndex = 1; - // - // btnBrwsSSMail - // - this.btnBrwsSSMail.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsSSMail.Location = new System.Drawing.Point(672, 86); - this.btnBrwsSSMail.Name = "btnBrwsSSMail"; - this.btnBrwsSSMail.Size = new System.Drawing.Size(75, 23); - this.btnBrwsSSMail.TabIndex = 14; - this.btnBrwsSSMail.Text = "Browse..."; - this.btnBrwsSSMail.UseVisualStyleBackColor = true; - this.btnBrwsSSMail.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbSSMailBox - // - this.tbSSMailBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSSMailBox.Location = new System.Drawing.Point(120, 88); - this.tbSSMailBox.Name = "tbSSMailBox"; - this.tbSSMailBox.Size = new System.Drawing.Size(546, 20); - this.tbSSMailBox.TabIndex = 13; - this.tbSSMailBox.Text = "E:\\Mailbox\\SourceSafe\\Proms"; - // - // label4 - // - this.label4.AutoSize = true; - this.label4.Location = new System.Drawing.Point(12, 91); - this.label4.Name = "label4"; - this.label4.Size = new System.Drawing.Size(92, 13); - this.label4.TabIndex = 12; - this.label4.Text = "SS Mailbox Folder"; - // - // btnBrwsMail - // - this.btnBrwsMail.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsMail.Location = new System.Drawing.Point(672, 60); - this.btnBrwsMail.Name = "btnBrwsMail"; - this.btnBrwsMail.Size = new System.Drawing.Size(75, 23); - this.btnBrwsMail.TabIndex = 8; - this.btnBrwsMail.Text = "Browse..."; - this.btnBrwsMail.UseVisualStyleBackColor = true; - this.btnBrwsMail.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbMailBox - // - this.tbMailBox.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbMailBox.Location = new System.Drawing.Point(120, 62); - this.tbMailBox.Name = "tbMailBox"; - this.tbMailBox.Size = new System.Drawing.Size(546, 20); - this.tbMailBox.TabIndex = 7; - this.tbMailBox.Text = "E:\\Mailbox\\Proms"; - // - // label3 - // - this.label3.AutoSize = true; - this.label3.Location = new System.Drawing.Point(12, 65); - this.label3.Name = "label3"; - this.label3.Size = new System.Drawing.Size(75, 13); - this.label3.TabIndex = 6; - this.label3.Text = "Mailbox Folder"; - // - // btnBrwsSS - // - this.btnBrwsSS.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsSS.Location = new System.Drawing.Point(672, 34); - this.btnBrwsSS.Name = "btnBrwsSS"; - this.btnBrwsSS.Size = new System.Drawing.Size(75, 23); - this.btnBrwsSS.TabIndex = 5; - this.btnBrwsSS.Text = "Browse..."; - this.btnBrwsSS.UseVisualStyleBackColor = true; - this.btnBrwsSS.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbSourceSafe - // - this.tbSourceSafe.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbSourceSafe.Location = new System.Drawing.Point(120, 36); - this.tbSourceSafe.Name = "tbSourceSafe"; - this.tbSourceSafe.Size = new System.Drawing.Size(546, 20); - this.tbSourceSafe.TabIndex = 4; - this.tbSourceSafe.Text = "E:\\SourceSafe\\Proms"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 39); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(98, 13); - this.label2.TabIndex = 3; - this.label2.Text = "Source Safe Folder"; - // - // btnBrwsDev - // - this.btnBrwsDev.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right))); - this.btnBrwsDev.Location = new System.Drawing.Point(672, 8); - this.btnBrwsDev.Name = "btnBrwsDev"; - this.btnBrwsDev.Size = new System.Drawing.Size(75, 23); - this.btnBrwsDev.TabIndex = 2; - this.btnBrwsDev.Text = "Browse..."; - this.btnBrwsDev.UseVisualStyleBackColor = true; - this.btnBrwsDev.Click += new System.EventHandler(this.btnBrowse_Click); - // - // tbDevelopment - // - this.tbDevelopment.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Left) - | System.Windows.Forms.AnchorStyles.Right))); - this.tbDevelopment.Location = new System.Drawing.Point(120, 10); - this.tbDevelopment.Name = "tbDevelopment"; - this.tbDevelopment.Size = new System.Drawing.Size(546, 20); - this.tbDevelopment.TabIndex = 1; - this.tbDevelopment.Text = "E:\\Proms"; - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 13); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(102, 13); - this.label1.TabIndex = 0; - this.label1.Text = "Development Folder"; - // - // dgv - // - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.ContextMenuStrip = this.cms; - this.dgv.Dock = System.Windows.Forms.DockStyle.Fill; - this.dgv.Location = new System.Drawing.Point(0, 141); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(759, 283); - this.dgv.TabIndex = 2; - this.dgv.ColumnWidthChanged += new System.Windows.Forms.DataGridViewColumnEventHandler(this.dgv_ColumnWidthChanged); - // - // cms - // - this.cms.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.compareToolStripMenuItem, - this.restoreToolStripMenuItem}); - this.cms.Name = "cms"; - this.cms.Size = new System.Drawing.Size(124, 48); - // - // compareToolStripMenuItem - // - this.compareToolStripMenuItem.Name = "compareToolStripMenuItem"; - this.compareToolStripMenuItem.Size = new System.Drawing.Size(123, 22); - this.compareToolStripMenuItem.Text = "Compare"; - this.compareToolStripMenuItem.Click += new System.EventHandler(this.compareToolStripMenuItem_Click); - // - // restoreToolStripMenuItem - // - this.restoreToolStripMenuItem.Name = "restoreToolStripMenuItem"; - this.restoreToolStripMenuItem.Size = new System.Drawing.Size(123, 22); - this.restoreToolStripMenuItem.Text = "Restore"; - this.restoreToolStripMenuItem.Click += new System.EventHandler(this.restoreToolStripMenuItem_Click); - // - // statusStrip1 - // - this.statusStrip1.Location = new System.Drawing.Point(0, 424); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(759, 22); - this.statusStrip1.TabIndex = 3; - this.statusStrip1.Text = "statusStrip1"; - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.mailboxToolStripMenuItem, - this.findToolStripMenuItem, - this.sourceSafeToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(759, 24); - this.menuStrip1.TabIndex = 4; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(92, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // mailboxToolStripMenuItem - // - this.mailboxToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.clearToolStripMenuItem, - this.buildToolStripMenuItem}); - this.mailboxToolStripMenuItem.Name = "mailboxToolStripMenuItem"; - this.mailboxToolStripMenuItem.Size = new System.Drawing.Size(61, 20); - this.mailboxToolStripMenuItem.Text = "Mailbox"; - // - // clearToolStripMenuItem - // - this.clearToolStripMenuItem.Name = "clearToolStripMenuItem"; - this.clearToolStripMenuItem.Size = new System.Drawing.Size(101, 22); - this.clearToolStripMenuItem.Text = "Clear"; - this.clearToolStripMenuItem.Click += new System.EventHandler(this.clearToolStripMenuItem_Click); - // - // buildToolStripMenuItem - // - this.buildToolStripMenuItem.Name = "buildToolStripMenuItem"; - this.buildToolStripMenuItem.Size = new System.Drawing.Size(101, 22); - this.buildToolStripMenuItem.Text = "Build"; - this.buildToolStripMenuItem.Click += new System.EventHandler(this.buildToolStripMenuItem_Click); - // - // findToolStripMenuItem - // - this.findToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.checkedOutToolStripMenuItem, - this.differentToolStripMenuItem, - this.contentDifferentToolStripMenuItem}); - this.findToolStripMenuItem.Name = "findToolStripMenuItem"; - this.findToolStripMenuItem.Size = new System.Drawing.Size(42, 20); - this.findToolStripMenuItem.Text = "Find"; - // - // checkedOutToolStripMenuItem - // - this.checkedOutToolStripMenuItem.Name = "checkedOutToolStripMenuItem"; - this.checkedOutToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.checkedOutToolStripMenuItem.Text = "Checked-Out"; - this.checkedOutToolStripMenuItem.Click += new System.EventHandler(this.checkedOutToolStripMenuItem_Click); - // - // differentToolStripMenuItem - // - this.differentToolStripMenuItem.Name = "differentToolStripMenuItem"; - this.differentToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.differentToolStripMenuItem.Text = "Different"; - this.differentToolStripMenuItem.Click += new System.EventHandler(this.differentToolStripMenuItem_Click); - // - // contentDifferentToolStripMenuItem - // - this.contentDifferentToolStripMenuItem.Name = "contentDifferentToolStripMenuItem"; - this.contentDifferentToolStripMenuItem.Size = new System.Drawing.Size(166, 22); - this.contentDifferentToolStripMenuItem.Text = "Content Different"; - this.contentDifferentToolStripMenuItem.Click += new System.EventHandler(this.contentDifferentToolStripMenuItem_Click); - // - // sourceSafeToolStripMenuItem - // - this.sourceSafeToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.restoreUnchangedToolStripMenuItem, - this.restoreSelectedToolStripMenuItem, - this.restoreAllToolStripMenuItem}); - this.sourceSafeToolStripMenuItem.Name = "sourceSafeToolStripMenuItem"; - this.sourceSafeToolStripMenuItem.Size = new System.Drawing.Size(80, 20); - this.sourceSafeToolStripMenuItem.Text = "Source Safe"; - // - // restoreUnchangedToolStripMenuItem - // - this.restoreUnchangedToolStripMenuItem.Name = "restoreUnchangedToolStripMenuItem"; - this.restoreUnchangedToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreUnchangedToolStripMenuItem.Text = "Restore Unchanged"; - this.restoreUnchangedToolStripMenuItem.Click += new System.EventHandler(this.restoreUnchangedToolStripMenuItem_Click); - // - // restoreSelectedToolStripMenuItem - // - this.restoreSelectedToolStripMenuItem.Name = "restoreSelectedToolStripMenuItem"; - this.restoreSelectedToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreSelectedToolStripMenuItem.Text = "Restore Selected (To Process)"; - this.restoreSelectedToolStripMenuItem.Click += new System.EventHandler(this.restoreSelectedToolStripMenuItem_Click); - // - // restoreAllToolStripMenuItem - // - this.restoreAllToolStripMenuItem.Name = "restoreAllToolStripMenuItem"; - this.restoreAllToolStripMenuItem.Size = new System.Drawing.Size(228, 22); - this.restoreAllToolStripMenuItem.Text = "Restore All"; - this.restoreAllToolStripMenuItem.Click += new System.EventHandler(this.restoreAllToolStripMenuItem_Click); - // - // frmSync - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(759, 446); - this.Controls.Add(this.dgv); - this.Controls.Add(this.panel1); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmSync"; - this.Text = "Volian Sync"; - this.Load += new System.EventHandler(this.frmSync_Load); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmSync_FormClosing); - this.LocationChanged += new System.EventHandler(this.frmSync_LocationChanged); - this.panel1.ResumeLayout(false); - this.panel1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.cms.ResumeLayout(false); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Panel panel1; - private System.Windows.Forms.Button btnBrwsDev; - private System.Windows.Forms.TextBox tbDevelopment; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Button btnBrwsMail; - private System.Windows.Forms.TextBox tbMailBox; - private System.Windows.Forms.Label label3; - private System.Windows.Forms.Button btnBrwsSS; - private System.Windows.Forms.TextBox tbSourceSafe; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.FolderBrowserDialog fbd; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.Button btnBrwsSSMail; - private System.Windows.Forms.TextBox tbSSMailBox; - private System.Windows.Forms.Label label4; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem mailboxToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem clearToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem buildToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem findToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem checkedOutToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem differentToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem sourceSafeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreUnchangedToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreSelectedToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreAllToolStripMenuItem; - private System.Windows.Forms.ContextMenuStrip cms; - private System.Windows.Forms.ToolStripMenuItem compareToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem restoreToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem contentDifferentToolStripMenuItem; - } -} - diff --git a/PROMS/xxxSync/Sync/frmSync.cs b/PROMS/xxxSync/Sync/frmSync.cs deleted file mode 100644 index 02561d28..00000000 --- a/PROMS/xxxSync/Sync/frmSync.cs +++ /dev/null @@ -1,687 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using SevenZip; - -namespace Sync -{ - public partial class frmSync : Form - { - private List _CheckedOut; - private bool IsLoading = false; - private float _DPI=100; - public frmSync() - { - InitializeComponent(); - using (Graphics gr = CreateGraphics()) - _DPI = gr.DpiX; - } - private void LoadSettings() - { - if (Properties.Settings.Default["Location"] != null) - Location = Properties.Settings.Default.Location; - if (Properties.Settings.Default["Size"] != null) - Size = Properties.Settings.Default.Size; - if (Properties.Settings.Default.DevelopmentFolder != "") - tbDevelopment.Text = Properties.Settings.Default.DevelopmentFolder; - if (Properties.Settings.Default.SourceSafeFolder != "") - tbSourceSafe.Text = Properties.Settings.Default.SourceSafeFolder; - if(Properties.Settings.Default.MailBoxDevelopmentFolder != "") - tbMailBox.Text = Properties.Settings.Default.MailBoxDevelopmentFolder; - if (Properties.Settings.Default.MailBoxSourceSafeFolder != "") - tbSSMailBox.Text = Properties.Settings.Default.MailBoxSourceSafeFolder; - } - private void frmSync_Load(object sender, EventArgs e) - { - LoadSettings(); - Setup(); - } - private void Setup() - { - // Setup Browse Buttons - btnBrwsDev.Tag = this.tbDevelopment; - btnBrwsSS.Tag = this.tbSourceSafe; - btnBrwsMail.Tag = this.tbMailBox; - btnBrwsSSMail.Tag = this.tbSSMailBox; - - } - private void btnBrowse_Click(object sender, EventArgs e) - { - TextBox tb = (TextBox)((Button)sender).Tag; - fbd.SelectedPath = tb.Text; - if (fbd.ShowDialog() == DialogResult.OK) - tb.Text = fbd.SelectedPath; - } - private void ClearResults() - { - _CheckedOut = new List(); - dgv.DataSource = null; - Application.DoEvents(); - } - private void FindCheckedOut(DirectoryInfo di) - { - FindCheckedOut(di.GetFiles()); - FindCheckedOut(di.GetDirectories()); - } - private void FindCheckedOut(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindCheckedOut(di); - } - private void FindCheckedOut(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindCheckedOut(fi); - } - private void FindCheckedOut(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (fi.Name.ToLower().EndsWith("sln")) return; - if (fi.Name.ToLower().EndsWith("csproj")) - { - // Find files that have been added to the new Project - List compileList = GetCompileList(fi.FullName); - FileInfo fi1csproj = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if (fi1csproj.Exists) - { - List compileList1 = GetCompileList(fi1csproj.FullName); - CompareLists(compileList, compileList1, fi, fi1csproj); - } - return; - } - if (fi.Name.ToLower().EndsWith("licx")) return; - FileInfo fi1 = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if ((fi1.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly) - AddToResults(fi, fi1); - } - - private void CompareLists(List compileList, List compileList1, FileInfo fi, FileInfo fi1) - { - // If anything is in compileList1 and not in CompileList add it to the results - foreach (string filename in compileList1) - if (!compileList.Contains(filename)) - AddToResults(fi, fi1, filename); - } - private void AddToResults(FileInfo fi, FileInfo fi1, string filename) - { - FileInfo newfi = new FileInfo(fi.DirectoryName + "/" + filename); - FileInfo newfi1 = new FileInfo(fi1.DirectoryName + "/" + filename); - if(!newfi.Exists)AddToResults(newfi, newfi1); // Only add if the file does not exist - } - private List GetCompileList(string fileName) - { - List retval = new List(); - XmlDocument doc = new XmlDocument(); - doc.Load(fileName); - XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); - foreach (XmlAttribute attrib in doc.DocumentElement.Attributes) - if (attrib.Name == "xmlns") - nsmgr.AddNamespace("ns", attrib.Value); - XmlNodeList xl = doc.DocumentElement.SelectNodes(@"//ns:Compile/@Include",nsmgr); - foreach (XmlAttribute xa in xl) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:Content/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - { - if (xa.Value.ToUpper().EndsWith("DLL")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().EndsWith("XML")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().EndsWith("SVG")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().EndsWith("BAS")) - retval.Add(xa.Value); - } - xl = doc.DocumentElement.SelectNodes(@"//ns:EmbeddedResource/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - if (!xa.Value.ToUpper().EndsWith("LICX")) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:None/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - { - if(xa.Value.ToUpper().EndsWith("SQL")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().EndsWith("FRM")) - retval.Add(xa.Value); - if (xa.Value.ToUpper().EndsWith("FRX")) - retval.Add(xa.Value); - } - return retval; - } - private void AddToResults(FileInfo fiSS,FileInfo fiDev) - { - FileCompare fc = new FileCompare(fiDev, fiSS); - FileInfo fiMB = new FileInfo(fc.FileName.Replace(tbDevelopment.Text, tbSSMailBox.Text)); - if (fiMB.Exists && fiSS.LastWriteTimeUtc != fiMB.LastWriteTimeUtc) - fc.Merge = true; - //if(!_OnlyContentDifferent || (fc.Different && (fc.DevModified != null))) - if (!_OnlyContentDifferent || (fc.Different)) - _CheckedOut.Add(fc); - //if (tbResults.Text == "") tbResults.Text = "Found:"; - //tbResults.Text += "\r\n" + fiDev.FullName + " - " + ((fiDev.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly ? "" : "ReadOnly"); - } - private void ClearMailBox() - { - DeleteFolder(new DirectoryInfo(tbMailBox.Text)); - DeleteFolder(new DirectoryInfo(tbSSMailBox.Text)); - } - private void DeleteFolder(DirectoryInfo directoryInfo) - { - if (directoryInfo.Exists) - { - AdjustAttributes(directoryInfo); - directoryInfo.Delete(true); - } - } - private void AdjustAttributes(DirectoryInfo directoryInfo) - { - foreach (DirectoryInfo di in directoryInfo.GetDirectories()) - AdjustAttributes(di); - foreach (FileInfo fi in directoryInfo.GetFiles()) - AdjustAttribute(fi); - } - private void AdjustAttribute(FileInfo fi) - { - fi.Attributes &= (fi.Attributes ^ FileAttributes.ReadOnly);// Turn-Off ReadOnly Attribute - fi.Attributes &= (fi.Attributes ^ FileAttributes.Hidden);// Turn-Off Hidden Attribute - } - private void frmSync_FormClosing(object sender, FormClosingEventArgs e) - { - Properties.Settings.Default.Location = Location; - Properties.Settings.Default.Size = Size; - Properties.Settings.Default.DevelopmentFolder = tbDevelopment.Text; - Properties.Settings.Default.SourceSafeFolder = tbSourceSafe.Text; - Properties.Settings.Default.MailBoxDevelopmentFolder = tbMailBox.Text; - Properties.Settings.Default.MailBoxSourceSafeFolder = tbSSMailBox.Text; - Properties.Settings.Default.Save(); - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - private void clearToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearMailBox(); - } - private void buildToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearMailBox(); - if (_CheckedOut == null) - checkedOutToolStripMenuItem_Click(sender, e); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) - { - fc.MoveDevToMailBox(tbDevelopment.Text, tbMailBox.Text); - fc.MoveSSToMailBox(tbSourceSafe.Text, tbSSMailBox.Text); - } - } - BuildZipOfMailBox(tbMailBox.Text); - } - private string _RTFFile = null; - public string RTFFile - { - get { return _RTFFile; } - set { _RTFFile = value; } - } - private void BuildZipOfMailBox(string mailbox) - { - SevenZipCompressor.SetLibraryPath(Application.StartupPath + @"\7z.dll"); - SevenZipCompressor cmpr = new SevenZipCompressor(); - cmpr.PreserveDirectoryRoot = true; - string fileDate = DateTime.Now.ToString("yyyyMMdd HHmm"); - RTFFile = string.Format("{0} To SS {1}.Rtf", mailbox, fileDate); - string zipName = string.Format("{0} To SS {1}.7z", mailbox, fileDate); - cmpr.CompressDirectory(mailbox, zipName, "*.*", true); - MessageBox.Show(string.Format("{0} created!", zipName), "Mailbox Zip Created", MessageBoxButtons.OK, MessageBoxIcon.Information); - - //if (System.IO.File.Exists(@"c:\program files\7-zip\7z.exe")) - //{ - // string args = string.Format(@"a -t7z ""{0} To SS {1}.7z"" ""{0}\*.*"" -r", mailbox, DateTime.Now.ToString("yyyyMMdd HHmm")); - // System.Diagnostics.Process p = System.Diagnostics.Process.Start(@"c:\program files\7-zip\7z", args); - // p.WaitForExit(); - //} - //"c:\program files\7-zip\7z" a -t7z "C:\Development\MailBox\Proms To SS 20120424 1850.7z" "C:\Development\MailBox\Proms\*.*" -r - } - private void checkedOutToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindCheckedOut(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void syncAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - private void restoreUnchangedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if(!fc.Different || fc.DevModified == null) - fc.MoveToDevelopment(); - } - } - private void restoreSelectedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) fc.MoveToDevelopment(); - } - } - private void restoreAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - private List SelectedList - { - get - { - dgv.EndEdit(); - List fcList = new List(); - foreach (DataGridViewCell dgc in dgv.SelectedCells) - { - FileCompare fc = dgv.Rows[dgc.RowIndex].DataBoundItem as FileCompare; - if (fc != null && fcList.Contains(fc) == false) - fcList.Add(fc); - } - return fcList; - } - } - private void compareToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.FileName, fc.SSFileName); - } - } - private static void CompareOneFile(string fileDev, string fileSS) - { - Console.WriteLine("Compare {0} and {1}", fileDev, fileSS); - string progname = string.Empty; - if (System.IO.File.Exists(@"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe")) - progname = @"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe"; - if (System.IO.File.Exists(@"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe")) - progname = @"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe"; - // string cmd = string.Format("\"{0}\" -t \"{1}\" \"{2}\"", progname, fc.FileName, fc.SSFileName); - System.Diagnostics.ProcessStartInfo psi = - new System.Diagnostics.ProcessStartInfo(progname, string.Format(@" -t ""{0}"" ""{1}""", fileDev, fileSS)); - System.Diagnostics.Process prc = System.Diagnostics.Process.Start(psi); - } - private void restoreToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - fc.MoveToDevelopment(); - } - } - private bool _ExcludeSolutions = true; - private void differentAllToolStripMenuItem_Click(object sender, EventArgs e) - { - _ExcludeSolutions = false; - dgv.EndEdit(); - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - _ExcludeSolutions = true; - } - private void differentToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void SetColumnWidth() - { - IsLoading = true; - if (Properties.Settings.Default["Widths"] == null) - { - dgv.Columns[0].Width = 60; - dgv.Columns[1].Visible = false; - dgv.Columns[2].Width = 125; - dgv.Columns[3].Width = 125; - dgv.Columns[4].Width = 50; - dgv.Columns[5].Width = 500; - } - else - { - for (int i = 0; i < Properties.Settings.Default.Widths.Count; i++) - { - string sWidth = Properties.Settings.Default.Widths[i]; - if (sWidth == "Invisible") - dgv.Columns[i].Visible = false; - else - dgv.Columns[i].Width = int.Parse(sWidth); - } - } - dgv.Columns[1].Visible = false; - IsLoading = false; - } - private void FindDifferent(DirectoryInfo di) - { - FindDifferent(di.GetFiles()); - FindDifferent(di.GetDirectories()); - } - private void FindDifferent(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindDifferent(di); - } - private void FindDifferent(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindDifferent(fi); - } - private void FindDifferent(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (_ExcludeSolutions && fi.Name.ToLower().EndsWith("sln")) return; - if (_ExcludeSolutions && fi.Name.ToLower().EndsWith("csproj")) - { - // Find files that have been added to the new Project - List compileList = GetCompileList(fi.FullName); - FileInfo fi1csproj = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if (fi1csproj.Exists) - { - List compileList1 = GetCompileList(fi1csproj.FullName); - CompareLists(compileList, compileList1, fi, fi1csproj); - } - if(_ExcludeSolutions ) return; - } - if (fi.Name.ToLower().EndsWith("licx")) return; - FileInfo fiD = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - FileInfo fiS = fi; - // Only check Read-Only flag, other attributes are unimportant - if (fiS.LastWriteTimeUtc != fiD.LastWriteTimeUtc || (fiS.Attributes & FileAttributes.ReadOnly ) != (fiD.Attributes & FileAttributes.ReadOnly )) - AddToResults(fi, fiD); - } - private void dgv_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) - { - if (!IsLoading) - { - System.Collections.Specialized.StringCollection widths = new System.Collections.Specialized.StringCollection(); - foreach (DataGridViewColumn col in dgv.Columns) - widths.Add(col.Visible ? col.Width.ToString() : "Invisible"); - Properties.Settings.Default.Widths = widths; - Properties.Settings.Default.Save(); - } - } - private bool _OnlyContentDifferent = false; - private void contentDifferentToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - _OnlyContentDifferent = true; - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - _OnlyContentDifferent = false; - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void frmSync_LocationChanged(object sender, EventArgs e) - { - Rectangle rec = Screen.GetWorkingArea(this); - int newLeft = Left; - int newTop = Top; - if (Math.Abs(Left - rec.X) < 10) newLeft = rec.X; - if (Math.Abs(Top - rec.Y) < 10) newTop = rec.Y; - if (Math.Abs(rec.X + rec.Width - Right) < 10) newLeft = rec.X + rec.Width - Width; - if (Math.Abs(rec.Y + rec.Height - Bottom) < 10) newTop = rec.Y + rec.Height - Height; - if (newTop != Top || newLeft != Left) - Location = new Point(newLeft, newTop); - } - private void restoreReadOnlyToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ReadOnly) fc.MoveToDevelopment(); - } - } - private void listToClipboardToolStripMenuItem_Click(object sender, EventArgs e) - { - RichTextBox rtb = new RichTextBox(); - Font fntNormal = new Font("Arial", 10, FontStyle.Regular); - rtb.Font = fntNormal; - Font fntBold = new Font("Arial", 12, FontStyle.Bold); - Font fntWing = new Font("Wingdings 2", 11, FontStyle.Regular); - Font fntItalic = new Font("Arial", 11, FontStyle.Italic); - Font fntBoldItalic = new Font("Arial", 14, FontStyle.Bold | FontStyle.Italic); - StringBuilder sb = new StringBuilder(); - dgv.EndEdit(); - sb.Append("Applicability:\r\n\r\n"); - AddText(rtb, fntBold, "Applicability:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n"); - if (HasFmtXML(_CheckedOut)) - { - sb.Append("* This change includes format changes which must be loaded into the databases.\r\n\r\n"); - AddText(rtb, fntBoldItalic, "*\tThis change includes format changes\r\n\twhich must be loaded into the databases.",Color.Orange); - AddText(rtb, fntNormal, "\r\n\r\n",Color.Black); - } - if (HasFormats(_CheckedOut)) - { - sb.Append("* This change includes format changes which must be loaded into the databases.\r\n\r\n"); - AddText(rtb, fntBoldItalic, "*\tThis change includes format changes\r\n\twhich must be loaded into the databases.", Color.Orange); - AddText(rtb, fntNormal, "\r\n\r\n", Color.Black); - } - if (HasPromsFixes(_CheckedOut)) - { - sb.Append("* This change includes changes to PROMSFixes.SQL which must be loaded into the databases.\r\n\r\n"); - AddText(rtb, fntBoldItalic, "*\tThis change includes changes to PROMSFixes.SQL\r\n\twhich must be loaded into the databases.\r\n\r\n", Color.Red); - AddText(rtb, fntNormal, "\r\n\r\n", Color.Black); - } - sb.Append("\r\nInternal Data Fixes:\r\n\r\n"); - AddText(rtb, fntBold, "Internal Data Fixes:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n",Color.Magenta); - sb.Append("Code Changes:\r\n\r\n"); - AddText(rtb, fntBold, "Code Changes:"); - AddText(rtb, fntNormal, "\r\n\r\n"); - int lenFolder = tbDevelopment.Text.Length; - string lastFolder = ""; - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) - { - FileInfo fi = new FileInfo(fc.FileName); - FileInfo fis = new FileInfo(fc.SSFileName); - string folder = fi.Directory.FullName.Substring(lenFolder + 1); - if (folder != lastFolder) - { - sb.Append(folder + ":\r\n"); - AddText(rtb, fntItalic, folder + ":\r\n"); - lastFolder = folder; - } - sb.Append((fis.Exists ? "" : " =>NEW") + "\t" + fi.Name + "\r\n"); - AddText(rtb, fntNormal, (fis.Exists ? "" : " =>NEW") + "\t" + fi.Name + "\r\n"); - AddIndent(rtb); - } - } - sb.Append("\r\nInternal Release:\r\n\r\n"); - sb.Append("\r\nGeneric External Release:\r\n\r\n"); - sb.Append("\r\nPlant Specific Information for Release Letter:\r\n\r\n"); - sb.Append("\r\nTesting Performed:\r\n\r\n"); - sb.Append("\r\nTesting Requirements:\r\n\r\n"); - sb.Append("\r\nChanges/Additions to User Documentation:\r\n\r\n"); - - AddText(rtb, fntNormal, "\r\n"); - AddText(rtb, fntBold, "Internal Release:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n"); - AddText(rtb, fntBold, "Generic External Release:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n"); - AddText(rtb, fntBold, "Plant Specific Information for Release Letter:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n"); - AddText(rtb, fntBold, "Testing Performed:"); - AddText(rtb, fntNormal, "\r\n\r\n\r\n\r\n"); - AddText(rtb, fntBold, "Testing Requirements:"); - AddText(rtb, fntNormal, "\r\n\r\n"); - AddText(rtb, fntWing, "\x51\x52\xA3"); - AddText(rtb, fntNormal, " Sample Checkboxes"); - AddText(rtb, fntNormal, "\r\n\r\n"); - AddText(rtb, fntBold, "Changes/Additions to User Documentation:"); - AddText(rtb, fntNormal, "\r\n\r\n"); - try - { - Clipboard.Clear(); - DataObject dao = new DataObject(); - dao.SetData(DataFormats.Text,sb.ToString()); - dao.SetData(DataFormats.Rtf, rtb.Rtf); - Clipboard.SetDataObject(dao, true, 10, 500); - if (RTFFile != null) - { - rtb.SaveFile(RTFFile); - System.Diagnostics.Process.Start(RTFFile); - } - else - MessageBox.Show(sb.ToString(), "Copied to Clipboard", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - catch (Exception ex) - { - StringBuilder sb2 = new StringBuilder(); - string prefix = ""; - while (ex != null) - { - sb2.AppendLine(string.Format("{0}{1} - {2}",prefix, ex.GetType().Name, ex.Message)); - prefix += " "; - } - MessageBox.Show(sb2.ToString(), "Error saving Clipboard", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - private bool HasPromsFixes(List _CheckedOut) - { - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess && fc.FileName.ToLower().Contains("promsfixes.sql")) - return true; - } - return false; - } - - private bool HasFmtXML(List _CheckedOut) - { - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess && fc.FileName.ToLower().Contains("\\fmtxml\\")) - return true; - } - return false; - } - private bool HasFormats(List _CheckedOut) - { - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess && fc.FileName.ToLower().Contains("\\formats\\")) - return true; - } - return false; - } - private void AddIndent(RichTextBox rtb) - { - rtb.Select(rtb.TextLength, 0); - rtb.SelectionIndent = (int) _DPI; - rtb.SelectedText = "\r\n"; - rtb.Select(rtb.TextLength, 0); - rtb.SelectionIndent = 0; - } - private static void AddText(RichTextBox rtb, Font font, string txt) - { - rtb.Select(rtb.TextLength, 0); - rtb.SelectionFont = font; - rtb.SelectedText = txt; - } - private static void AddText(RichTextBox rtb, Font font, string txt, Color myColor) - { - rtb.Select(rtb.TextLength, 0); - rtb.SelectionFont = font; - rtb.SelectionColor = myColor; - rtb.SelectedText = txt; - rtb.Select(rtb.TextLength, 0); - rtb.SelectionColor = Color.Black; - } - private void dgv_MouseDown(object sender, MouseEventArgs e) - { - dgv.ClearSelection(); - DataGridView.HitTestInfo info = dgv.HitTest(e.X, e.Y); - if (info.RowIndex < 0) return; - dgv.CurrentCell = dgv[0, info.RowIndex]; - dgv.Rows[info.RowIndex].Selected = true; - } - - private void selectAllToolStripMenuItem_Click(object sender, EventArgs e) - { - if (_CheckedOut == null || _CheckedOut.Count == 0) - { - MessageBox.Show("Don't you really think you should get a list first!", "Hey Moron!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - return; - } - foreach (FileCompare fc in _CheckedOut) fc.ToProcess = true; - dgv.Refresh(); - } - - private void selectNoneToolStripMenuItem_Click(object sender, EventArgs e) - { - if (_CheckedOut == null || _CheckedOut.Count == 0) - { - MessageBox.Show("Don't you really think you should get a list first!", "Hey Moron!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - return; - } - foreach (FileCompare fc in _CheckedOut) fc.ToProcess = false; - dgv.Refresh(); - } - - private void compareSourceSafeToolStripMenuItem_Click(object sender, EventArgs e) - { - // Compare SS version with SS version from Mailbox - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.SSFileName, fc.SSFileName.Replace(tbSourceSafe.Text, tbSSMailBox.Text)); - } - } - - private void compareMailboxToolStripMenuItem_Click(object sender, EventArgs e) - { - // Compare MailBox version with Mailbox Source Safe version - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.FileName, fc.FileName.Replace(tbDevelopment.Text, tbSSMailBox.Text)); - } - } - } -} \ No newline at end of file diff --git a/PROMS/xxxSync/Sync/frmSync.cs.bak b/PROMS/xxxSync/Sync/frmSync.cs.bak deleted file mode 100644 index 36cfb160..00000000 --- a/PROMS/xxxSync/Sync/frmSync.cs.bak +++ /dev/null @@ -1,321 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; - - -namespace Sync -{ - public partial class frmSync : Form - { - private List _CheckedOut; - private bool IsLoading = false; - public frmSync() - { - InitializeComponent(); - } - private void LoadSettings() - { - if (Properties.Settings.Default["Location"] != null) - Location = Properties.Settings.Default.Location; - if (Properties.Settings.Default["Size"] != null) - Size = Properties.Settings.Default.Size; - if (Properties.Settings.Default.DevelopmentFolder != "") - tbDevelopment.Text = Properties.Settings.Default.DevelopmentFolder; - if (Properties.Settings.Default.SourceSafeFolder != "") - tbSourceSafe.Text = Properties.Settings.Default.SourceSafeFolder; - if(Properties.Settings.Default.MailBoxDevelopmentFolder != "") - tbMailBox.Text = Properties.Settings.Default.MailBoxDevelopmentFolder; - if (Properties.Settings.Default.MailBoxSourceSafeFolder != "") - tbSSMailBox.Text = Properties.Settings.Default.MailBoxSourceSafeFolder; - } - private void frmSync_Load(object sender, EventArgs e) - { - LoadSettings(); - Setup(); - } - private void Setup() - { - // Setup Browse Buttons - btnBrwsDev.Tag = this.tbDevelopment; - btnBrwsSS.Tag = this.tbSourceSafe; - btnBrwsMail.Tag = this.tbMailBox; - btnBrwsSSMail.Tag = this.tbSSMailBox; - } - private void btnBrowse_Click(object sender, EventArgs e) - { - TextBox tb = (TextBox)((Button)sender).Tag; - fbd.SelectedPath = tb.Text; - if (fbd.ShowDialog() == DialogResult.OK) - tb.Text = fbd.SelectedPath; - } - private void ClearResults() - { - _CheckedOut = new List(); - } - private void FindCheckedOut(DirectoryInfo di) - { - FindCheckedOut(di.GetFiles()); - FindCheckedOut(di.GetDirectories()); - } - private void FindCheckedOut(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindCheckedOut(di); - } - private void FindCheckedOut(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindCheckedOut(fi); - } - private void FindCheckedOut(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (fi.Name.ToLower().EndsWith("sln")) return; - if (fi.Name.ToLower().EndsWith("csproj")) return; - if (fi.Name.ToLower().EndsWith("licx")) return; - FileInfo fi1 = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if ((fi1.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly) - AddToResults(fi, fi1); - } - private void AddToResults(FileInfo fiSS,FileInfo fiDev) - { - FileCompare fc = new FileCompare(fiDev, fiSS); - if(!_OnlyContentDifferent || (fc.Different && (fc.DevModified != null))) - _CheckedOut.Add(fc); - //if (tbResults.Text == "") tbResults.Text = "Found:"; - //tbResults.Text += "\r\n" + fiDev.FullName + " - " + ((fiDev.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly ? "" : "ReadOnly"); - } - private void ClearMailBox() - { - DeleteFolder(new DirectoryInfo(tbMailBox.Text)); - DeleteFolder(new DirectoryInfo(tbSSMailBox.Text)); - } - private void DeleteFolder(DirectoryInfo directoryInfo) - { - if (directoryInfo.Exists) - { - AdjustAttributes(directoryInfo); - directoryInfo.Delete(true); - } - } - private void AdjustAttributes(DirectoryInfo directoryInfo) - { - foreach (DirectoryInfo di in directoryInfo.GetDirectories()) - AdjustAttributes(di); - foreach (FileInfo fi in directoryInfo.GetFiles()) - AdjustAttribute(fi); - } - private void AdjustAttribute(FileInfo fi) - { - if ((fi.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) - fi.Attributes = fi.Attributes ^ FileAttributes.ReadOnly; - } - private void frmSync_FormClosing(object sender, FormClosingEventArgs e) - { - Properties.Settings.Default.Location = Location; - Properties.Settings.Default.Size = Size; - Properties.Settings.Default.DevelopmentFolder = tbDevelopment.Text; - Properties.Settings.Default.SourceSafeFolder = tbSourceSafe.Text; - Properties.Settings.Default.MailBoxDevelopmentFolder = tbMailBox.Text; - Properties.Settings.Default.MailBoxSourceSafeFolder = tbSSMailBox.Text; - Properties.Settings.Default.Save(); - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - private void clearToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearMailBox(); - } - private void buildToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearMailBox(); - if (_CheckedOut == null) - checkedOutToolStripMenuItem_Click(sender, e); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) - { - fc.MoveDevToMailBox(tbDevelopment.Text, tbMailBox.Text); - fc.MoveSSToMailBox(tbSourceSafe.Text, tbSSMailBox.Text); - } - } - } - private void checkedOutToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindCheckedOut(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void syncAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - private void restoreUnchangedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if(!fc.Different || fc.DevModified == null) - fc.MoveToDevelopment(); - } - } - private void restoreSelectedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) fc.MoveToDevelopment(); - } - } - private void restoreAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - private List SelectedList - { - get - { - dgv.EndEdit(); - List fcList = new List(); - foreach (DataGridViewCell dgc in dgv.SelectedCells) - { - FileCompare fc = dgv.Rows[dgc.RowIndex].DataBoundItem as FileCompare; - if (fc != null && fcList.Contains(fc) == false) - fcList.Add(fc); - } - return fcList; - } - } - private void compareToolStripMenuItem_Click(object sender, EventArgs e) - { - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - Console.WriteLine("Compare {0} and {1}", fc.FileName, fc.SSFileName); - string cmd = string.Format("\"C:\\Program Files\\IDM Computer Solutions\\UltraCompare\\UC.exe\" -t \"{0}\" \"{1}\"", fc.FileName, fc.SSFileName); - System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe", - string.Format(@" -t ""{0}"" ""{1}""", fc.FileName, fc.SSFileName)); - System.Diagnostics.Process prc = System.Diagnostics.Process.Start(psi); - } - } - private void restoreToolStripMenuItem_Click(object sender, EventArgs e) - { - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - fc.MoveToDevelopment(); - } - } - private void differentToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void SetColumnWidth() - { - IsLoading = true; - if (Properties.Settings.Default["Widths"] == null) - { - dgv.Columns[0].Width = 60; - dgv.Columns[1].Visible = false; - dgv.Columns[2].Width = 125; - dgv.Columns[3].Width = 125; - dgv.Columns[4].Width = 50; - dgv.Columns[5].Width = 500; - } - else - { - for (int i = 0; i < Properties.Settings.Default.Widths.Count; i++) - { - string sWidth = Properties.Settings.Default.Widths[i]; - if (sWidth == "Invisible") - dgv.Columns[i].Visible = false; - else - dgv.Columns[i].Width = int.Parse(sWidth); - } - } - dgv.Columns[1].Visible = false; - IsLoading = false; - } - private void FindDifferent(DirectoryInfo di) - { - FindDifferent(di.GetFiles()); - FindDifferent(di.GetDirectories()); - } - private void FindDifferent(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindDifferent(di); - } - private void FindDifferent(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindDifferent(fi); - } - private void FindDifferent(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (fi.Name.ToLower().EndsWith("sln")) return; - if (fi.Name.ToLower().EndsWith("csproj")) return; - if (fi.Name.ToLower().EndsWith("licx")) return; - FileInfo fiD = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - FileInfo fiS = fi; - // Only check Read-Only flag, other attributes are unimportant - if (fiS.LastWriteTimeUtc != fiD.LastWriteTimeUtc || (fiS.Attributes & FileAttributes.ReadOnly ) != (fiD.Attributes & FileAttributes.ReadOnly )) - AddToResults(fi, fiD); - } - private void dgv_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) - { - if (!IsLoading) - { - System.Collections.Specialized.StringCollection widths = new System.Collections.Specialized.StringCollection(); - foreach (DataGridViewColumn col in dgv.Columns) - widths.Add(col.Visible ? col.Width.ToString() : "Invisible"); - Properties.Settings.Default.Widths = widths; - Properties.Settings.Default.Save(); - } - } - private bool _OnlyContentDifferent = false; - private void contentDifferentToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearResults(); - _OnlyContentDifferent = true; - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - _OnlyContentDifferent = false; - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void frmSync_LocationChanged(object sender, EventArgs e) - { - Rectangle rec = Screen.GetWorkingArea(this); - if (Math.Abs(Left - rec.X) < 10) Left = rec.X; - if (Math.Abs(Top - rec.Y) < 10) Top = rec.Y; - if (Math.Abs(rec.X + rec.Width - Right) < 10) Left = rec.X + rec.Width - Width; - if (Math.Abs(rec.Y + rec.Height - Bottom) < 10) Top = rec.Y + rec.Height - Height; - } - } -} \ No newline at end of file diff --git a/PROMS/xxxSync/Sync/frmSync.resx b/PROMS/xxxSync/Sync/frmSync.resx deleted file mode 100644 index f0eaa433..00000000 --- a/PROMS/xxxSync/Sync/frmSync.resx +++ /dev/null @@ -1,1516 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 303, 17 - - - 84, 17 - - - 194, 17 - - - - - AAABAAQAgIAAAAEAIAAoCAEARgAAADAwAAABACAAqCUAAG4IAQAgIAAAAQAgAKgQAAAWLgEAEBAAAAEA - IABoBAAAvj4BACgAAACAAAAAAAEAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAwAA - AAYAAAAIAAAACgAAAA0AAAAPAAAAEAAAABEAAAATAAAAEwAAABQAAAAUAAAAEwAAABMAAAARAAAAEAAA - AA8AAAANAAAACgAAAAgAAAAGAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAAwAAAAYAAAAKAAAADgAAABMAAAAZAAAAIAAAACUAAAArAAAALgAAADMAAAA2AAAAOAAA - ADoAAAA8AAAAPQAAAD0AAAA8AAAAOgAAADgAAAA2AAAAMwAAAC4AAAArAAAAJQAAACAAAAAZAAAAEwAA - AA4AAAAKAAAABgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAACgAAABAAAAAXAAAAHwAAACgAAAAxAAAAOwAA - AEYAAABPAAAAWAAAAGAAAABmAAAAbAAAAHAAAAB0AAAAeAAAAHoAAAB8AAAAfAAAAHoAAAB4AAAAdAAA - AHAAAABsAAAAZgAAAGAAAABYAAAATwAAAEYAAAA7AAAAMQAAACgAAAAfAAAAFwAAABAAAAAKAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAKAAAAEQAA - ABwAAAAnAAAANAAAAEEAAABPAAAAXQAAAGoAAAB4ExMTkiQkJKotLS27NTU1yT09PddGRkbjS0tL6VBQ - UO9UVFT0WVlZ+llZWfpZWVn6WVlZ+lRUVPRQUFDvS0tL6UZGRuM9PT3XNjY2yS0tLbskJCSqExMTkgAA - AHgAAABqAAAAXQAAAE8AAABBAAAANAAAACcAAAAcAAAAEQAAAAoAAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAAwAAAAcAAAAPAAAAGQAAACcAAAA2AAAARwAAAFkAAABqDw8PiBoaGqMwMDDEQ0ND4E1N - Te9WVlb4Xl5e/2RkZP9vb2//fHx8/4iIiP+RkZH/mZmZ/6Ghof+np6f/q6ur/6urq/+np6f/oaGh/5qa - mv+SkpL/iIiI/3x8fP9wcHD/ZGRk/19fX/9XV1f4Tk5O70REROAxMTHEHBwcow8PD4gAAABqAAAAWQAA - AEcAAAA2AAAAJwAAABkAAAAPAAAABwAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAoAAAATAAAAIQAAADEAAABEAAAAWAAA - AG4RERGRLS0tv0FBQd5RUVH1XFxc/2lpaf+AgID/l5eX/6ysrP++vr7/y8vL/9XV1f/d3d3/5ubm/+zs - 7P/x8fH/9vb2//n5+f/6+vr/+vr6//n5+f/29vb/8vLy/+3t7f/m5ub/39/f/9fX1//Nzc3/v7+//66u - rv+Xl5f/goKC/2pqav9dXV3/UVFR9UFBQd4tLS2/ERERkQAAAG4AAABYAAAARAAAADEAAAAhAAAAEwAA - AAoAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AAoAAAAVAAAAJQAAADkAAABPAAAAZg4ODooqKiq7QkJC41VVVfxkZGT/fn5+/52dnf+3t7f/zc3N/93d - 3f/o6Oj/8fHx//f39//6+vr/+/v7//z8/P/8/Pz//v7+//7+/v////////////////////////////// - //////////////7+/v/+/v7//v7+//v7+//6+vr/9PT0/+vr6//f39//z8/P/7i4uP+enp7/gYGB/2Vl - Zf9WVlb8Q0ND4y0tLbsODg6KAAAAZgAAAE8AAAA5AAAAJQAAABUAAAAKAAAABAAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAAAwAAAAoAAAAVAAAAJgAAADwAAABVAAAAbxkZGaI7OzvYTk5O9mJi - Yv+BgYH/o6Oj/8HBwf/X19f/5+fn//Hx8f/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//z8 - /P/+/v7//v7+/////////////////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7 - +//7+/v/+vr6//r6+v/39/f/9PT0/+rq6v/a2tr/w8PD/6ampv+EhIT/ZGRk/1BQUPY8PDzYGhoaogAA - AG8AAABVAAAAPAAAACYAAAAVAAAACgAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAcAAAASAAAAIwAA - ADoAAABVAgICcyMjI7JCQkLlV1dX/3Nzc/+Xl5f/u7u7/9XV1f/l5eX/7e3t//Hx8f/y8vL/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+/v7//v7+//8/Pz//Pz8//7+/v/+/v7///////////////////////// - ///////////////////+/v7//v7+//z8/P/8/Pz/+/v7//v7+//6+vr/+fn5//n5+f/39/f/9vb2//X1 - 9f/x8fH/6Ojo/9nZ2f+9vb3/m5ub/3V1df9ZWVn/Q0ND5SUlJbICAgJzAAAAVQAAADoAAAAjAAAAEgAA - AAcAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAANAAAAHAAAADQAAABQAAAAbiQkJLBDQ0PpXFxc/319ff+mpqb/yMjI/9zc - 3P/n5+f/6+vr/+3t7f/w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/6+vr/+/v7//z8 - /P/8/Pz//v7+//7+/v///////////////////////////////////////v7+//7+/v/+/v7//Pz8//z8 - /P/7+/v/+/v7//r6+v/5+fn/9/f3//f39//29vb/9fX1//T09P/y8vL/8PDw/+zs7P/h4eH/zc3N/6mp - qf+BgYH/XV1d/0ZGRukkJCSwAAAAbgAAAFAAAAA0AAAAHAAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAIAAAAJAAAAFgAAACsAAABGAAAAZRoa - GqFBQUHnW1tb/4CAgP+pqan/y8vL/9/f3//m5ub/6Ojo/+vr6//s7Oz/7e3t/+/v7//x8fH/8vLy//T0 - 9P/19fX/9vb2//f39//5+fn/+vr6//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//7+/v////////////// - ///////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/39/f/9vb2//X1 - 9f/09PT/9PT0//Ly8v/w8PD/7+/v/+3t7f/r6+v/4uLi/9DQ0P+urq7/g4OD/11dXf9DQ0PnHBwcowAA - AGUAAABGAAAAKwAAABYAAAAJAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAEAAAADgAAACAAAAA6AAAAWQ8PD4g0NDTUUlJS/nl5ef+mpqb/x8fH/9vb2//i4uL/5eXl/+fn - 5//o6Oj/6urq/+vr6//t7e3/7+/v//Dw8P/x8fH/8vLy//T09P/19fX/9/f3//f39//5+fn/+vr6//v7 - +//8/Pz//Pz8//7+/v/+/v7//v7+//////////////////////////////////7+/v/+/v7//v7+//z8 - /P/8/Pz/+/v7//r6+v/6+vr/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7e3t/+zs - 7P/r6+v/5+fn/+Dg4P/Nzc3/qamp/3x8fP9VVVX+Nzc31A8PD4gAAABZAAAAOgAAACAAAAAOAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABwAAABQAAAArAAAASQAAAG0mJia4SEhI9Gxs - bP+ZmZn/v7+//9XV1f/f39//4eHh/+Li4v/l5eX/5ubm/+fn5//q6ur/6+vr/+zs7P/t7e3/8PDw//Hx - 8f/y8vL/9PT0//X19f/29vb/9/f3//n5+f/6+vr/+/v7//v7+//8/Pz//v7+//7+/v/+/v7///////// - /////////////////////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/x8fH/8PDw/+/v7//s7Oz/6+vr/+rq6v/o6Oj/5+fn/+Tk5P/b29v/xMTE/52d - nf9wcHD/SUlJ9CgoKLgAAABtAAAASQAAACsAAAAUAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA - AAoAAAAbAAAANQAAAFgRERGPPDw84l5eXv+FhYX/sLCw/83Nzf/Z2dn/3Nzc/9/f3//g4OD/4uLi/+Tk - 5P/l5eX/5+fn/+jo6P/q6ur/7Ozs/+3t7f/v7+//8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6 - +v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v/////////////////////////////////+/v7//v7+//7+ - /v/8/Pz/+/v7//v7+//6+vr/+fn5//f39//39/f/9vb2//X19f/09PT/8fHx//Dw8P/v7+//7e3t/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Tk5P/f39//0dHR/7a2tv+Kior/YGBg/z4+PuIRERGPAAAAWAAA - ADUAAAAbAAAACgAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAANAAAAIQAAAD8AAABkIyMjtElJSfdxcXH/nZ2d/8HB - wf/R0dH/19fX/9ra2v/c3Nz/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq6v/r6+v/7e3t/+/v - 7//w8PD/8fHx//T09P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//7+/v/+/v7//v7+//// - //////////////////////////////7+/v/+/v7//v7+//z8/P/7+/v/+/v7//r6+v/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/x8fH/8PDw/+/v7//t7e3/6+vr/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Hh - 4f/d3d3/2dnZ/8fHx/+jo6P/dHR0/0tLS/ckJCS0AAAAZAAAAD8AAAAhAAAADQAAAAQAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAADwAA - ACUAAABHBgYGdDIyMtFcXFz/g4OD/66urv/Jycn/0dHR/9XV1f/X19f/2dnZ/9vb2//c3Nz/39/f/+Dg - 4P/i4uL/5OTk/+Xl5f/n5+f/6Ojo/+vr6//s7Oz/7e3t//Dw8P/x8fH/8vLy//T09P/19fX/9/f3//n5 - +f/6+vr/+vr6//v7+//8/Pz//v7+//7+/v/+/v7//////////////////////////////////v7+//7+ - /v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7e3t/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/9/f3//c3Nz/2dnZ/9DQ0P+0tLT/h4eH/19f - X/80NDTRBgYGdAAAAEcAAAAlAAAADwAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABEAAAApAAAATREREYc+Pj7lZmZm/5KSkv+4uLj/y8vL/9DQ - 0P/T09P/1dXV/9bW1v/X19f/2tra/9vb2//d3d3/39/f/+Hh4f/i4uL/5eXl/+bm5v/o6Oj/6urq/+zs - 7P/t7e3/7+/v//Hx8f/y8vL/9PT0//X19f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+ - /v/////////////////////////////////+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3d3d/9vb2//a2tr/19fX/9TU1P+/v7//l5eX/2pqav8/Pz/lERERhwAAAE0AAAApAAAAEQAA - AAUAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAUAAAATAAAALQAA - AFIYGBiURkZG8XBwcP+cnJz/vLy8/8rKyv/Ozs7/0NDQ/9HR0f/T09P/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/f39//4ODg/+Hh4f/k5OT/5ubm/+fn5//q6ur/6+vr/+zs7P/v7+//8PDw//Hx8f/09PT/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//////////////////////////////////7+ - /v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/93d3f/c3Nz/29vb/9nZ2f/X19f/1tbW/9HR - 0f/ExMT/o6Oj/3R0dP9KSkrxGBgYlAAAAFIAAAAtAAAAEwAAAAUAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAGAAAAFAAAAC8AAABVGRkZnkpKSvV2dnb/pKSk/76+vv/IyMj/y8vL/83N - zf/Pz8//0NDQ/9HR0f/U1NT/1tbW/9fX1//a2tr/29vb/93d3f/f39//4eHh/+Li4v/l5eX/5ubm/+jo - 6P/q6ur/7Ozs/+3t7f/w8PD/8fHx//Ly8v/19fX/9vb2//f39//5+fn/+vr6//v7+//8/Pz//Pz8//7+ - /v/+/v7//////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7+//6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/y8vL/8fHx/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3Nzc/9vb2//a2tr/19fX/9bW1v/V1dX/09PT/9DQ0P/FxcX/qamp/3t7e/9PT0/1GxsbngAA - AFUAAAAvAAAAFAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAABMAAAAwAAAAWCEh - IapRUVH6enp6/6Wlpf++vr7/xcXF/8jIyP/Kysr/y8vL/87Ozv/Pz8//0NDQ/9PT0//V1dX/1tbW/9nZ - 2f/a2tr/3Nzc/93d3f/g4OD/4eHh/+Tk5P/m5ub/5+fn/+rq6v/r6+v/7e3t/+/v7//x8fH/8vLy//X1 - 9f/29vb/+vr6//v7+//8/Pz//v7+//7+/v/+/v7///////////////////////////////////////// - //////////////7+/v/+/v7//Pz8//z8/P/6+vr/+fn5//b29v/19fX/9PT0//Hx8f/w8PD/7+/v/+zs - 7P/r6+v/6urq/+fn5//m5ub/5eXl/+Li4v/h4eH/39/f/93d3f/c3Nz/2tra/9nZ2f/W1tb/1dXV/9TU - 1P/R0dH/0NDQ/87Ozv/FxcX/rKys/35+fv9TU1P6JCQkqgAAAFgAAAAwAAAAEwAAAAUAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAATAAAALgAAAFclJSWxUlJS/Hx8fP+mpqb/vLy8/8LCwv/FxcX/x8fH/8jI - yP/Kysr/y8vL/87Ozv/Pz8//0dHR/9PT0//V1dX/19fX/9nZ2f/b29v/3Nzc/9/f3//h4eH/4uLi/+Xl - 5f/m5ub/6Ojo/+vr6//s7Oz/8fHx//T09P/39/f/+vr6//r6+v/7+/v/+/v7//z8/P/g4fn/y8v3/6Gf - 8P+Ni+7/d3Tt/3d07f93dO7/d3Tu/3d07v93dO7/jYvw/6Kg8v+ioPL/ubf1/9nY+P/+/v7//Pz8//z8 - /P/7+/v/+vr6//f39//09PT/8fHx//Dw8P/t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4eHh/+Dg - 4P/d3d3/3Nzc/9vb2//Z2dn/19fX/9XV1f/U1NT/09PT/9DQ0P/Pz8//zs7O/8rKyv/ExMT/ra2t/4OD - g/9WVlb8JiYmsQAAAFcAAAAuAAAAEwAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAACsAAABVIyMjrVhY - WP1+fn7/pqam/7u7u//BwcH/wsLC/8PDw//FxcX/x8fH/8nJyf/Kysr/zc3N/87Ozv/Q0ND/0dHR/9TU - 1P/W1tb/19fX/9ra2v/b29v/3d3d/+Dg4P/h4eH/5OTk/+bm5v/q6ur/8PDw//X19f/29vb/9/f3//n5 - +f/a2fT/qKbs/3t55/9RTeH/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm - 5P8wJuP/MCbh/y8m4f8vJuD/LyXe/zIp3v9UUOL/hoPp/7u68P/19fn/+vr6//n5+f/29vb/8vLy/+3t - 7f/r6+v/6urq/+fn5//m5ub/5OTk/+Li4v/g4OD/39/f/9zc3P/b29v/2tra/9fX1//W1tb/1NTU/9PT - 0//Q0ND/z8/P/87Ozv/Ly8v/ysrK/8nJyf/ExMT/rq6u/4SEhP9cXFz9JiYmrQAAAFUAAAArAAAAEAAA - AAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAgAAAA0AAAAnAAAATyIiIqVWVlb8fX19/6ampv+4uLj/vb29/7+/v//BwcH/wsLC/8TE - xP/T09P/ysrK/8nJyf/Kysr/zc3N/8/Pz//Q0ND/09PT/9TU1P/W1tb/2dnZ/9ra2v/c3Nz/39/f/+Hh - 4f/n5+f/7+/v//T09P/09PT/9fX1/7e36v97eeD/PznX/ywl1v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m - 3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m - 2v8uJdn/LSXY/zQt1/9qZ+D/tLPr//f39//39/f/9fX1//Hx8f/q6ur/5+fn/+Xl5f/k5OT/4eHh/+Dg - 4P/d3d3/3Nzc/9ra2v/Z2dn/1tbW/9XV1f/T09P/0dHR/8/Pz//Ozs7/zc3N/8rKyv/Jycn/yMjI/8fH - x//BwcH/ra2t/4SEhP9aWlr8IyMjpQAAAE8AAAAnAAAADQAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAKAAAAIAAAAEcZGRmVVVVV+Hp6 - ev+jo6P/tbW1/7q6uv+8vLz/vb29/7+/v//BwcH/wsLC/9PU1f/c3Nz/ysrK/8nJyf/Ly8v/zc3N/8/P - z//R0dH/09PT/9XV1f/X19f/2dnZ/9vb2//h4eH/7Ozs//Dw8P/x8fH/zMzr/3V02/80Mc3/KiTN/ysk - 0P8rJNP/LCXW/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm - 5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdj/LCXW/ywk0/8rJNH/OTTS/4uK - 4f/l5fL/9fX1//Ly8v/s7Oz/5eXl/+Li4v/g4OD/39/f/9zc3P/b29v/2dnZ/9bW1v/V1dX/09PT/9HR - 0f/Q0ND/zs7O/83Nzf/Kysr/ycnJ/8jIyP/Hx8f/xMTE/8PDw/++vr7/qamp/4GBgf9YWFj4HR0dlQAA - AEcAAAAgAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABwAAABkAAAA9ERERgExMTPJ1dXX/nZ2d/7Ozs/+3t7f/uLi4/7q6uv+8vLz/vb29/7+/ - v//BwcH/b3Kp/8jJ2P/c3Nz/ysrK/8nJyf/Ly8v/zs7O/8/Pz//R0dH/1NTU/9bW1v/a2tr/5ubm/+3t - 7f/v7+//qarg/1JQz/8oIsb/KSPK/yoky/8qJM3/KyTQ/ysk0/8sJdb/LSXX/y4l2P8uJtr/Libd/y8l - 3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m - 3f8uJtr/LiXZ/y0l1/8sJdb/LCTT/ysk0f8qJM7/KiTM/y4py/9zctn/3+Dv//Ly8v/v7+//5ubm/9/f - 3//d3d3/29vb/9ra2v/X19f/1dXV/9TU1P/R0dH/0NDQ/87Ozv/Nzc3/y8vL/8nJyf/IyMj/x8fH/8TE - xP/Dw8P/wcHB/7+/v/+7u7v/paWl/3t7e/9RUVHyExMTgAAAAD0AAAAZAAAABwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAATAAAANAUFBWVGRkbjb29v/5aW - lv+tra3/s7Oz/7W1tf+3t7f/uLi4/7q6uv+8vLz/vb29/7+/v/9VWaD/Nzqj/9DR3P/d3d3/ysrK/8rK - yv/Ly8v/zs7O/9DQ0P/T09P/2tra/+jo6P/s7Oz/ubnh/0hGyP8mIsD/JyHE/ygixv8pIsn/KiPL/yok - zf8rJND/KyTT/ywl1v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm - 5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1v8sJNP/KyTR/yok - zv8qJMz/KSPK/ygjx/8vKsb/fH3X/+Xm7v/w8PD/6Ojo/93d3f/a2tr/19fX/9bW1v/U1NT/09PT/9DQ - 0P/Pz8//zc3N/8vLy//Jycn/yMjI/8fHx//ExMT/w8PD/8HBwf+/v7//vr6+/7y8vP+2trb/np6e/3V1 - df9JSUnjBQUFZQAAADQAAAATAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAACAAAADgAAACoAAABVNzc3x2dnZ/+Ojo7/qKio/7CwsP+zs7P/tLS0/7W1tf+3t7f/uLi4/7q6 - uv+8vLz/vb29/1BUn/8cHpn/OTyp/83O3P/f39//y8vL/8rKyv/Nzc3/z8/P/93d3f/o6Oj/0NHk/1hZ - yP8lIbv/JiG+/yYiwP8nIcT/KCLG/ykiyf8qI8v/KiTN/ysk0P8rJNP/LCXU/y0l1/8uJdj/Liba/y4m - 3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l - 3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk0/8rJNH/KiTO/yoky/8pI8r/KCPH/ycixP8mIsL/ODbE/6ip - 3v/t7e3/6+vr/9zc3P/W1tb/1dXV/9PT0//Q0ND/z8/P/83Nzf/Ly8v/ycnJ/8jIyP/Hx8f/xMTE/8PD - w//BwcH/v7+//76+vv+9vb3/vLy8/7q6uv+wsLD/k5OT/2xsbP84ODjHAAAAVQAAACoAAAAOAAAAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAkAAAAgAAAASSUlJaRcXFz+goKC/6Gh - of+tra3/r6+v/7Kysv+zs7P/tLS0/7W1tf+2trb/uLi4/7q6uv+8vLz/Rkqa/xwdmf8dHaD/NTiq/8vM - 2v/f39//zc3N/8rKyv/d3d3/5+fn/6Wl2P8vL7r/JCC6/yUhu/8mIb7/JiLA/ychxP8oIsb/KSLJ/yoj - y/8qI83/KyTQ/ysk0/8sJdT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm - 5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdb/LCTT/ysk - 0f8qJM7/KiTL/ykjyv8oIsf/JyHE/yYiwv8mIb7/JSG9/1layP/f3+j/6urq/93d3f/T09P/0dHR/8/P - z//Ozs7/y8vL/8rKyv/IyMj/x8fH/8TExP/Dw8P/wcHB/7+/v/++vr7/vb29/7u7u/+6urr/uLi4/7a2 - tv+pqan/iIiI/2FhYf4mJiakAAAASQAAACAAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAFAAAAFgAAADoTExOCUVFR9Xd3d/+ampr/q6ur/62trf+urq7/r6+v/7CwsP+ysrL/tLS0/7W1 - tf+2trb/uLi4/7q6uv9DRpn/HB2a/x0doP8dHaH/MzWr/8fH2v/g4OD/2tra/+Hh4/9rbcX/IiCz/yMg - tv8kILj/JSG7/yYhvv8mIsD/JyHE/ygixv8pIsn/KiPL/yojzf8rJND/KyTT/ywl1P8tJdf/LiXY/y4m - 2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m - 4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1v8sJNP/KyTR/yokzv8qI8v/KSPK/ygix/8nIcT/JiLC/yYh - vv8lIbz/JCC6/zY2vP+/v97/6urq/9/f3//Q0ND/zs7O/8vLy//Kysr/yMjI/8fHx//ExMT/w8PD/8HB - wf+/v7//vr6+/7y8vP+7u7v/urq6/7i4uP+3t7f/tra2/7Ozs/+jo6P/fHx8/1VVVfUVFRWCAAAAOgAA - ABYAAAAFAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAA4AAAAsAgICXkVFReFtbW3/kJCQ/6Wl - pf+pqan/q6ur/62trf+urq7/r6+v/7CwsP+ysrL/s7Oz/7W1tf+2trb/uLi4/zxAmP8cHZr/HR2f/x0d - of8eHaT/LzCr/8TF2v/g4OL/WFq+/yIfsP8iILP/IyC2/yQguP8lIbv/JiG+/yYiwP8nIcT/KCLF/yki - yf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm - 4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk - 0/8rJNH/KiTO/yojy/8pIsn/KCLH/ychxP8mIsL/JiG+/yUhvP8kILr/IyC2/ygmtv+QktH/5+fn/+Hh - 4f/Ozs7/ysrK/8jIyP/Hx8f/xMTE/8PDw//BwcH/v7+//76+vv+8vLz/u7u7/7q6uv+4uLj/tra2/7W1 - tf+0tLT/s7Oz/66urv+Xl5f/cnJy/0lJSeECAgJeAAAALAAAAA4AAAACAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAHAAAAHwAAAEktLS2yZGRk/4aGhv+fn5//pqam/6ioqP+pqan/q6ur/6ysrP+tra3/r6+v/7Cw - sP+ysrL/s7Oz/7W1tf+2trb/NjiV/xwdm/8dHZ//HR2h/x4dpP8fHab/Ly+t/1dZvf8hH63/Ih+w/yIg - s/8jILb/JCC4/yUhu/8mIb7/JiLA/ychxP8oIsX/KSLJ/yojy/8qI83/KyTQ/ysj0v8sJNT/LSXX/y4l - 2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m - 4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdT/LCTT/ysj0f8qJM7/KiPL/ykiyf8oIsf/JyHE/yYi - wv8mIb7/JSG8/yQguv8jILb/IiC0/yIgsP9iY8L/3d3j/+Dg4P/Kysr/x8fH/8TExP/Dw8P/wcHB/7+/ - v/+9vb3/vLy8/7u7u/+4uLj/t7e3/7a2tv+1tbX/tLS0/7Ozs/+ysrL/r6+v/6enp/+Ojo7/ampq/zAw - MLIAAABJAAAAHwAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABMAAAA1FBQUfVVVVfd5eXn/l5eX/6Sk - pP+mpqb/p6en/6ioqP+pqan/q6ur/6ysrP+tra3/rq6u/6+vr/+ysrL/s7Oz/7S0tP8zN5X/HB2c/x0d - n/8dHaH/Hh2k/x8dpv8fHqf/IB6r/yEerf8iH7D/IiCz/yMhtf8kILj/JSG7/yYhvv8mIsD/JyHD/ygi - xf8pIsn/KiPL/yojzf8rJND/KyPS/ywk1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm - 4P8wJt7/LyXe/y8l3v8vJd7/LyXe/zAm3v8wJt//Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl - 1P8sJNP/KyPR/yojzv8qI8v/KSLJ/ygixv8nIcT/JiLC/yYhvv8lIbz/JCC4/yMgtv8iILT/IiCw/yEf - rv9AQ7b/0NDe/93d3f/Hx8f/w8PD/8HBwf+/v7//vb29/7y8vP+7u7v/uLi4/7e3t/+2trb/tbW1/7S0 - tP+ysrL/sLCw/6+vr/+urq7/rKys/6CgoP+AgID/W1tb9xQUFH0AAAA2AAAAEwAAAAMAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJAAAAFJAQEDVbW1t/46Ojv+enp7/o6Oj/6SkpP+lpaX/pqam/6enp/+oqKj/qamp/6ur - q/+tra3/rq6u/6+vr/+wsLD/s7Oz/ystkv8cHZv/HB2f/x0dof8dHaT/Hh2l/x8ep/8gHqv/IB6t/yEe - sP8iH7P/IyC1/yMguP8kIbv/JSG+/yYiwP8mIcP/JyLF/ykiyf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0k - 1/8uJdj/Liba/y4m2v8uJdj/LibT/y0l0f8tJcz/LSXJ/y0lw/8tJcP/LSXD/y0lw/8tJcP/LSXE/y0l - yf8tJc3/LSXR/y4l1v8uJtr/Liba/y4l2f8tJdf/LCXU/ywk0/8rI9H/KiPO/yojy/8pIsn/KCLG/ych - xP8mIsL/JiG+/yUhvP8kILj/IyC2/yIgtP8iILD/IR+u/yAgq/84ObL/y8za/9vb2//Dw8P/vr6+/729 - vf+8vLz/urq6/7i4uP+3t7f/tbW1/7S0tP+zs7P/srKy/7CwsP+vr6//rq6u/62trf+srKz/p6en/5SU - lP9ycnL/RERE1QAAAFIAAAAkAAAACgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABUAAAA6IiIilV9fX/5+fn7/mZmZ/5+f - n/+hoaH/o6Oj/6SkpP+lpaX/paWl/6enp/+oqKj/qamp/6urq/+srKz/ra2t/6+vr/+wsLD/KCmS/xwd - nP8cHZ//HB2h/x0dpP8eHaX/Hx6n/yAeq/8gHq3/IR6w/yIfsv8jILX/IyC4/yQgu/8lIb7/JiK//yYh - w/8nIsX/KCLJ/ykjy/8qI83/KiTO/ysj0v8sJNT/LSTW/y0k0/8tJM7/LCTG/yskvP8qI7L/KSSq/ykj - ov8oI57/KCOa/ygjmv8oI5r/KCOa/ygjmv8oI5r/KCOc/ygjo/8qJKz/KyS3/ywkxP8sJcz/LSTS/y0l - 1P8sJNT/LCPS/ysj0f8qI87/KiPL/ykiyf8oIsb/JyHE/yYiwv8mIb7/JSG8/yQguP8jILb/IiC0/yIg - sP8hH67/IB+r/yAeqf80Nq3/ysvZ/9bW1v++vr7/u7u7/7q6uv+4uLj/tra2/7W1tf+0tLT/s7Oz/7Ky - sv+wsLD/rq6u/62trf+srKz/q6ur/6urq/+oqKj/oaGh/4aGhv9kZGT+IyMjlQAAADoAAAAVAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJgICAlhLS0vlcXFx/4+Pj/+dnZ3/n5+f/5+fn/+goKD/oaGh/6Ojo/+kpKT/paWl/6am - pv+np6f/qKio/6urq/+srKz/ra2t/6+vr/8jI4//HB2c/xwdn/8cHaH/HR2j/x4dpf8fHqf/IB6r/yAe - rf8hHq//Ih+y/yMgtf8jILj/JCC7/yUhvv8mIr//JiHD/ycixf8oIsn/KSPL/yojzf8qJM7/KyTQ/ysk - zv8rJMX/KiO4/ygjq/8nIp7/JyKW/yYikf8mIoz/JiKK/yomjP9IRZ7/SUaf/0lGn/9JRp//SUaf/0hF - nv8oJIn/JiKL/yYhjv8nIpT/KCKc/ygjqP8qI7X/KyPD/yslzP8sI9H/KyPR/yojzv8qI8v/KSLJ/ygi - xv8nIcP/JiLC/yYhvv8lIbz/JCC4/yMhtf8iILT/Ih+w/yEerv8gH6v/IB6p/x8dpv84Oq3/0NHZ/87O - zv+6urr/t7e3/7a2tv+1tbX/s7Oz/7Kysv+wsLD/r6+v/66urv+tra3/rKys/6urq/+pqan/qKio/6en - p/+lpaX/l5eX/3d3d/9PT0/lAgICWAAAACYAAAAKAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABUAAAA8KCgon2VlZf+CgoL/l5eX/5yc - nP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ghof+jo6P/pKSk/6Wlpf+np6f/qKio/6mpqf+rq6v/r6+v/xwe - jf8cHZz/HB2f/xwdof8dHaP/Hh2l/x8ep/8gHqv/IB6t/yEer/8iH7L/IyC1/yMguP8kILv/JSC9/yYh - v/8mIcP/JyLF/ygiyf8pI8v/KiPM/yojyf8pIsL/KCK0/yYhov8mIZT/JSGL/yUgh/9RT6D/hIO9/7Cv - 1P/e3e3//Pz8//7+/v///////////////////////v7+//z8/P/V1ej/rq3T/11aqP8qJ4v/JSGL/yYh - kv8mIp//KCOy/yojwv8rI8z/KiPN/yojy/8pIsn/KCLG/yYhw/8mIsD/JSG+/yQhvP8jILj/IyC1/yIf - s/8hH7D/IB6u/yAfq/8gHqn/Hx2m/x4dpP9ESK7/1tbY/8HBwf+2trb/tLS0/7Ozs/+ysrL/sLCw/6+v - r/+tra3/rKys/6urq/+pqan/qKio/6ioqP+np6f/pqam/6Wlpf+fn5//iIiI/2tra/8rKyugAAAAPAAA - ABUAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAKAAAAJQICAlhMTEzmcnJy/46Ojv+ZmZn/m5ub/5ycnP+cnJz/nZ2d/56env+fn5//oKCg/6Gh - of+jo6P/pKSk/6Wlpf+mpqb/p6en/6ioqP+srK3/GxyM/xwcnP8cHZ//HB2g/x0do/8eHaX/Hx6n/yAe - q/8gHqz/IR6v/yIfsv8jILX/IyC4/yQgu/8lIL3/JiG//yYhw/8nIcX/KCLH/ygixf8oIr7/JyKv/yUh - n/8kII//Ix+H/0RClf+QkMD/3t3o//X19f/39/f/+vr6//v7+//8/Pz//v7+//////////////////7+ - /v/+/v7//Pz8//v7+//5+fn/9vb2/+fn7v+dnMf/VlSg/yYih/8kII//JiGi/ygitf8pIsT/KSPJ/ygi - yf8nIsb/JiHD/yYiwP8lIb7/JCC8/yMguP8jILX/Ih+z/yEfsP8gHq7/IB+r/x8eqf8eHaX/HR2k/x0d - ov9maLX/1tbW/7a2tv+ysrL/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qamp/6ioqP+np6f/pqam/6Wl - pf+kpKT/pKSk/6Ghof+VlZX/eHh4/1BQUOYCAgJYAAAAJQAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABMAAAA5KSkpnmVlZf+BgYH/lJSU/5mZ - mf+ampr/mpqa/5ubm/+cnJz/nZ2d/52dnf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+lpaX/p6en/6Kj - qf8bHI3/HByc/xwcnf8cHaD/HR2j/x4dpf8fHqf/IB6q/yAerP8hHq//Ih+y/yMgtf8jILj/JCC6/yUg - vf8mIb//JiHD/ychwv8nIrz/JiKu/yUfnP8jH43/Ix+F/0VElv+np8n/6+vr/+3t7f/x8fH/9PT0//b2 - 9v/5+fn/+/v7//z8/P/+/v7//////////////////v7+//7+/v/8/Pz/+vr6//n5+f/29vb/9PT0//Hx - 8f/v7+//ysrb/05Om/8jH4b/JCCT/yYhqf8oIrz/KCLG/ycixv8mIcP/JiLA/yUgvf8kILz/IyC4/yMg - tf8iH7P/IR+v/yAerv8gH6v/Hx6p/x4dpf8dHaP/HR2i/xwdnf+focb/y8vL/7CwsP+vr6//ra2t/6ys - rP+rq6v/qamp/6ioqP+np6f/pqam/6Wlpf+kpKT/pKSk/6Ojo/+hoaH/oKCg/52dnf+Hh4f/ampq/y0t - LZ4AAAA5AAAAEwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAHAAAAIQMDA1JJSUngcXFx/4qKiv+VlZX/lpaW/5eXl/+ZmZn/mpqa/5qamv+bm5v/nJyc/52d - nf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+lpaX/nJ2o/xsbjf8cHJz/HByd/xwcoP8dHKP/Hh2l/x8d - p/8gHqr/IB6s/yEer/8iH7L/IyC1/yMgt/8kILr/JSC9/yYhv/8mIcD/JiC1/yMfnv8iHov/IR6C/z08 - jv+iocD/4uLi/+bm5v/q6ur/7e3t//Dw8P/09PT/9vb2//n5+f/7+/v//Pz8//7+/v////////////// - ///+/v7//v7+//v7+//6+vr/9/f3//X19f/y8vL/8PDw/+3t7f/q6ur/5+fn/5mYv/8xMIn/Ih6J/yUg - n/8mIbf/JyLD/yYhw/8mIcD/JSC9/yQgu/8jILj/IyC1/yIfs/8hH6//IB6t/yAfq/8fHqn/Hh2l/x0d - o/8cHaH/HB2f/ygroP/HxtH/vb29/62trf+rq6v/qamp/6ioqP+np6f/pqam/6ampv+lpaX/pKSk/6Oj - o/+hoaH/oKCg/6CgoP+fn5//nZ2d/5KSkv93d3f/TU1N4AMDA1IAAAAhAAAABwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA8AAAAxISEhi2RkZP98fHz/kJCQ/5SU - lP+VlZX/lpaW/5aWlv+Xl5f/mZmZ/5qamv+ampr/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Oj - o/+YmKX/GxuN/xwcm/8cHJ3/HByg/x0co/8eHKX/Hx2m/yAdqv8gHaz/IR6v/yIfsv8iILT/IyC3/yQg - uv8lIL3/JiG//yYhv/8kIKz/IR2P/zQyh/+Li7L/2tra/93d3f/h4eH/5eXl/+jo6P/s7Oz/7+/v//Ly - 8v/19fX/9/f3//r6+v/8/Pz//v7+//////////////////7+/v/8/Pz/+/v7//r6+v/39/f/9fX1//Hx - 8f/v7+//7Ozs/+jo6P/l5eX/4uLi/9TU2v9gYKD/IR+F/yMfmv8lIbP/JiG+/yYhwP8lIL3/JCC7/yMg - uP8jILX/Ih+z/yEfr/8gHq3/IB+r/x8eqf8eHaX/HR2j/xwdof8cHZ//HB2c/0tPqf/T09P/r6+v/6mp - qf+oqKj/p6en/6ampv+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//np6e/52dnf+dnZ3/l5eX/4SE - hP9paWn/IiIiiwAAADEAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAEAAAAGgAAAEVDQ0PPbm5u/4aGhv+SkpL/k5OT/5SUlP+UlJT/lZWV/5aWlv+Wlpb/l5eX/5mZ - mf+ampr/mpqa/5ubm/+cnJz/nZ2d/56env+fn5//oKCg/42NoP8bG47/HByb/xwcnf8cHKD/HRyj/x0c - pP8eHab/Hx2q/yAdrP8gHa//IR6y/yIftP8jILf/IyC6/yUgvf8mIb//JiHA/ysmt/+EhL//y8vO/9TU - 1P/X19f/29vb/9/f3//i4uL/5ubm/+rq6v/t7e3/8fHx//X19f/39/f/+vr6//z8/P/+/v7///////// - /////////v7+//z8/P/7+/v/+fn5//b29v/09PT/8fHx/+3t7f/q6ur/5+fn/+Tk5P/g4OD/3Nzc/9ra - 2v97e6v/IB2C/yIelv8kIK//JiG8/yUgvf8kILv/IyC3/yMgtf8iH7P/IR+v/yAerf8gH6r/Hx6p/x4d - pf8dHaP/HB2h/xwdn/8cHJz/Gxua/36Ct//CwsL/p6en/6ampv+lpaX/pKSk/6Ojo/+hoaH/oKCg/5+f - n/+fn5//np6e/52dnf+dnZ3/nJyc/5ubm/+ampr/jo6O/3R0dP9ISEjPAAAARQAAABoAAAAEAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAnExMTa1paWvZ3d3f/i4uL/5GR - kf+SkpL/kpKS/5OTk/+Tk5P/lJSU/5WVlf+Wlpb/lpaW/5eXl/+ZmZn/mpqa/5qamv+bm5v/nJyc/52d - nf+enp7/iIqf/xobjv8bHJv/HByd/xwcoP8dHKP/HRyk/x4dpv8fHar/IB2s/yAdr/8hHrD/Ih+0/yMf - t/8jH7r/JCC8/yUhvv8mIcL/WlnM/+Xl5f/Z2dn/0dHR/9XV1f/Z2dn/3Nzc/+Hh4f/l5eX/6Ojo/+zs - 7P/w8PD/9PT0//b29v/6+vr/+/v7//7+/v/////////////////+/v7//Pz8//v7+//5+fn/9vb2//Ly - 8v/w8PD/7Ozs/+jo6P/l5eX/4eHh/93d3f/b29v/19fX/9TU1P+EhK3/IB6B/yEelf8kIK//JSC7/yQg - u/8jILf/IyC1/yIfs/8hH6//IB6t/yAeqv8fHqn/Hh2l/x0co/8cHaH/HByd/xwcnP8bG5r/ICOZ/7q7 - yf+tra3/pKSk/6Ojo/+hoaH/oKCg/5+fn/+fn5//np6e/52dnf+cnJz/nJyc/5ubm/+ampr/mpqa/5mZ - mf+Tk5P/fX19/19fX/YTExNrAAAAJwAAAAoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAAEgAAADczMzOoaWlp/4GBgf+Ojo7/kJCQ/5GRkf+RkZH/kpKS/5KSkv+Tk5P/k5OT/5SU - lP+VlZX/lZWV/5aWlv+Xl5f/mZmZ/5qamv+ampr/m5ub/5ycnP+Dg53/GhuP/xscm/8cHJ3/HByg/x0c - ov8dHKT/Hh2m/x8dqv8gHaz/IB2u/yEesP8iH7T/Ix+3/yMfuv8kH7z/JSC+/yYhwv8mIcT/fHvU/+Xl - 5f/a2tr/09PT/9bW1v/a2tr/39/f/+Li4v/n5+f/6+vr/+/v7//y8vL/9vb2//n5+f/7+/v//v7+//// - //////////////7+/v/8/Pz/+vr6//f39//19fX/8fHx/+/v7//r6+v/5+fn/+Tk5P/g4OD/3Nzc/9nZ - 2f/V1dX/0dHR/87Ozv+Ojq//IyCC/yEel/8kIK//JCC4/yMgt/8iILT/Ih+z/yEer/8gHa3/IB6q/x8d - p/8eHKX/HRyj/xwdof8cHJ3/HByb/xsbmv8aG5j/VVip/7+/v/+hoaH/oKCg/5+fn/+fn5//np6e/52d - nf+cnJz/nJyc/5ubm/+ampr/mpqa/5mZmf+Xl5f/l5eX/5SUlP+Hh4f/bm5u/zY2NqgAAAA3AAAAEgAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAcAAAASUxMTN1xcXH/hoaG/4yM - jP+Pj4//j4+P/5CQkP+QkJD/kZGR/5GRkf+SkpL/kpKS/5OTk/+UlJT/lJSU/5WVlf+Wlpb/l5eX/5mZ - mf+ampr/mpqa/25xjv8XFor/GBeW/xgXmP8YGJn/GRmc/xoYn/8bGaH/Gxmk/xwapv8dGar/Hhqs/x8c - rv8gG7L/IBy0/yEct/8iHrr/Ix29/yQev/8lH8P/d3fF/8vLy//Pz8//1NTU/9fX1//c3Nz/4eHh/+Xl - 5f/q6ur/7e3t//Hx8f/19fX/+fn5//v7+//+/v7//////////////////v7+//z8/P/6+vr/9/f3//T0 - 9P/w8PD/7Ozs/+jo6P/l5eX/4eHh/93d3f/a2tr/1dXV/9HR0f/Ozs7/y8vL/8jIyP+Fhaj/HhuB/yEd - nP8jILP/IyC3/yIftP8hHrL/IB6v/yAdrf8fHqr/Hh2n/x4cpf8dHKP/HB2h/xwcnf8cHJv/GxuZ/xob - mP8cHJf/p6rB/6Wlpf+enp7/np6e/52dnf+cnJz/m5ub/5ubm/+ampr/mZmZ/5mZmf+Xl5f/l5eX/5aW - lv+VlZX/lJSU/4uLi/92dnb/UFBQ3QAAAEkAAAAcAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAACQAAACcWFhZwYGBg+3l5ef+IiIj/jIyM/46Ojv+Ojo7/j4+P/4+Pj/+Pj4//kJCQ/5CQ - kP+RkZH/kpKS/5KSkv+Tk5P/k5OT/5SUlP+VlZX/lpaW/5eXl/+ZmZn/a2yM/xYWiv8YF5X/GBeX/xgX - mf8ZF5z/Ghif/xsZof8bGaP/HBql/x0Zqf8dGqv/Hhuu/yAbsv8gHLT/IRy3/yIduv8jHb3/Ix6//yUe - w/8mH8X/eXjG/83Nzf/Q0ND/1dXV/9ra2v/f39//4uLi/+fn5//s7Oz/8PDw//T09P/39/f/+/v7//z8 - /P/////////////////+/v7/+/v7//n5+f/29vb/8vLy/+/v7//r6+v/5+fn/+Li4v/f39//29vb/9bW - 1v/T09P/z8/P/8vLy//IyMj/xMTE/8HBwf9naJr/HhuF/yEeo/8iH7P/Ih+0/yEesv8gHq//IB2t/x8e - qv8eHaf/HRyk/x0co/8cHaH/HByd/xscm/8aG5n/GhuY/xoal/9MUKL/tra2/52dnf+cnJz/m5ub/5qa - mv+ampr/mZmZ/5eXl/+Xl5f/lpaW/5aWlv+VlZX/lZWV/5SUlP+UlJT/j4+P/35+fv9kZGT7GRkZcAAA - ACcAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAQAAAAMzk5Oapra2v/gICA/4qK - iv+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//j4+P/5CQkP+QkJD/kZGR/5GRkf+SkpL/k5OT/5OT - k/+UlJT/lZWV/5aWlv9iZIr/FhaK/xcXlf8YF5f/GBeZ/xkYnP8ZF53/Gxig/xsYo/8cGaX/HRmp/x0a - q/8eG67/Hxqy/yAbtP8hHLf/Ih26/yMcvf8jHb//JB7D/yYfxf8nH8f/fn3H/87Ozv/R0dH/1tbW/9vb - 2//g4OD/5eXl/+rq6v/v7+//8vLy//f39//6+vr//Pz8//7+/v////////////7+/v/7+/v/+fn5//X1 - 9f/x8fH/7e3t/+jo6P/l5eX/4ODg/9zc3P/X19f/1NTU/8/Pz//Ly8v/yMjI/8TExP/BwcH/vr6+/7u7 - u/8/Poj/HxyN/yEfqv8iH7L/IR6y/yAerv8gHaz/Hx6q/x4dp/8dHKT/HRyi/xwdof8cHJ3/Gxyb/xob - mf8aG5f/GhuW/xock/+vscD/nZ2d/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5WVlf+VlZX/lJSU/5SU - lP+Tk5P/k5OT/5KSkv+RkZH/hoaG/3BwcP88PDyqAAAANAAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAwAAABcAAABBSkpK0nFxcf+Dg4P/ioqK/4qKiv+Kior/i4uL/4uLi/+Li4v/jIyM/4yM - jP+Ojo7/jo6O/4+Pj/+Pj4//kJCQ/5CQkP+RkZH/kpKS/5KSkv+Tk5P/lJSU/11ghv8WFoj/FxeR/xcX - kf8XF5P/GBeV/xkXl/8aGJn/Gxec/xsYn/8cGaL/HRqj/x0apf8eGqn/Hxur/yAbrv8gHK//Ihyy/yId - s/8jHrb/JB63/yUduv8mH73/goHE/8/Pz//U1NT/2dnZ/93d3f/i4uL/6Ojo/+3t7f/x8fH/9vb2//r6 - +v/8/Pz//v7+/////////////v7+//v7+//39/f/9PT0//Dw8P/r6+v/5+fn/+Li4v/d3d3/2dnZ/9XV - 1f/Q0ND/zc3N/8jIyP/ExMT/wcHB/729vf+7u7v/t7e3/6Skr/8lJH//IB2Z/yEerv8hHrL/IB6u/yAd - rP8fHqr/Hh2n/x0cpP8dHKL/HB2g/xwcnf8bHJv/GhuZ/xobl/8aG5b/GRuV/19jpv+np6f/l5eX/5eX - l/+Wlpb/lZWV/5WVlf+UlJT/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5GRkf+JiYn/dnZ2/01N - TdMAAABBAAAAFwAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGAAAAHxAQEF5ZWVnwdXV1/4SE - hP+JiYn/iYmJ/4mJif+Kior/ioqK/4qKiv+Li4v/i4uL/4uLi/+MjIz/jIyM/46Ojv+Ojo7/j4+P/4+P - j/+QkJD/kZGR/5GRkf+SkpL/V1mA/xUWeP8WFn7/FhZ9/xYWff8XF37/GBeB/xgXgv8YF4X/GReG/xoY - if8bGYr/GxqM/xwZjv8dGpD/HRqU/x4blf8fGpT/IBuU/yAclv8gHJj/IhyZ/yIem/8jHZ//goK4/9DQ - 0P/V1dX/2tra/+Dg4P/m5ub/6+vr//Dw8P/19fX/+fn5//z8/P/+/v7////////////8/Pz/+vr6//b2 - 9v/y8vL/7+/v/+rq6v/l5eX/4ODg/9vb2//W1tb/0dHR/83Nzf/Jycn/xMTE/8HBwf+9vb3/urq6/7e3 - t/+0tLT/srKy/3N1mP8cGoX/IR6k/yEesP8gHq7/IB2s/x8dqf8eHaf/HRyk/x0bov8cHKD/HBud/xsb - m/8aGpn/GhqX/xoalv8ZGpT/ISSS/7Cytf+VlZX/lZWV/5SUlP+UlJT/k5OT/5OTk/+SkpL/kpKS/5GR - kf+RkZH/kJCQ/5CQkP+QkJD/j4+P/4qKiv97e3v/XFxc8RAQEF4AAAAgAAAABgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAoAAAApJiYmhGhoaP97e3v/hYWF/4iIiP+IiIj/iIiI/4iIiP+JiYn/iYmJ/4mJ - if+Kior/ioqK/4uLi/+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//kJCQ/5CQkP9QUnj/FBVh/xQW - ZP8VFmT/FRVl/xYWZv8WFmf/FhZp/xcWa/8XFmz/GBdu/xgXb/8YGHH/Ghhz/xsYdf8bGHf/Gxp3/xwa - eP8dGnj/HRp6/x0bfP8fG33/IByA/yAcgv8iHoX/iomx/9HR0f/X19f/3Nzc/+Li4v/o6Oj/7+/v//T0 - 9P/39/f/+/v7//7+/v////////////z8/P/6+vr/9vb2//Hx8f/s7Oz/5+fn/+Hh4f/c3Nz/19fX/9PT - 0//Ozs7/ycnJ/8TExP/BwcH/vb29/7q6uv+2trb/s7Oz/7CwsP+urq7/rKys/zU2g/8eG5T/IR6q/yAd - rv8gHaz/Hx2p/x4cpv8dG6T/HRui/xwcoP8cG5z/Gxub/xoamf8aGpf/GhqW/xkalP8YGpH/h4qw/5WV - lf+Tk5P/k5OT/5KSkv+SkpL/kZGR/5GRkf+QkJD/kJCQ/4+Pj/+Pj4//j4+P/46Ojv+Ojo7/i4uL/4CA - gP9sbGz/JiYmhAAAACkAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAADwAAADI7OzuwbW1t/35+ - fv+FhYX/h4eH/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/ioqK/4uL - i/+Li4v/jIyM/4yMjP+Ojo7/jo6O/1pbef8mKWP/Jylk/zM1av8/QXD/P0Jx/0BDcv9BQ3P/QkN1/0ND - dv9ERHj/RUV5/0ZGe/9HR33/R0l+/0hKgf9KS4L/Y2KO/2pqkv9ra5X/bW2X/3Bwmv9ycpz/dnWh/3l5 - pP9/fqr/yMjK/9PT0//Z2dn/4ODg/+bm5v/s7Oz/8vLy//f39//7+/v//v7+///////+/v7//Pz8//n5 - +f/09PT/7+/v/+rq6v/k5OT/39/f/9nZ2f/T09P/zs7O/8nJyf/ExMT/v7+//7y8vP+4uLj/tbW1/7Ky - sv+vr6//ra2t/6urq/+oqKj/hYaa/xwagv8gHaH/IB2t/x8drP8fHan/Hhym/x0bpP8dG6L/HByg/xwb - nP8bG5v/GhqZ/xoal/8aGpb/GRqU/xgak/9KTpv/np6e/5GRkf+RkZH/kJCQ/5CQkP+QkJD/j4+P/4+P - j/+Ojo7/jo6O/46Ojv+MjIz/jIyM/4yMjP+Kior/hISE/3Fxcf8+Pj6wAAAAMgAAAA8AAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAUAAAAPE1NTdVxcXH/gICA/4aGhv+Ghob/hoaG/4aGhv+Ghob/h4eH/4eH - h/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/i4uL/4uLi/+MjIz/jIyM/46O - jv+Pj4//j4+P/5CQkP+RkZH/kpKS/5OTk/+Tk5P/lZWV/5aWlv+Xl5f/mpqa/5ubm/+dnZ3/n5+f/6Gh - of+kpKT/pqam/6mpqf+tra3/sLCw/7S0tP+4uLj/vb29/8PDw//IyMj/z8/P/9XV1f/c3Nz/4uLi/+rq - 6v/w8PD/9vb2//v7+//+/v7///////7+/v/7+/v/9/f3//Ly8v/t7e3/5+fn/+Hh4f/b29v/1dXV/8/P - z//Jycn/xMTE/7+/v/+8vLz/t7e3/7S0tP+wsLD/rq6u/6urq/+oqKj/pqam/6Wlpf+jo6P/PDyB/x0b - lf8fHan/Hx2s/x4dqf8dHKb/HRuj/x0bov8cHKD/HBuc/xsbmv8aGpn/GhqX/xoalv8ZGpT/GBqT/x4f - jP+lpaf/kJCQ/4+Pj/+Pj4//j4+P/46Ojv+Ojo7/jIyM/4yMjP+MjIz/i4uL/4uLi/+Li4v/i4uL/4qK - iv+FhYX/dXV1/1JSUtUAAAA8AAAAFAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAwAAABoDAwNKV1dX63V1 - df+BgYH/hYWF/4WFhf+FhYX/hYWF/4WFhf+Ghob/hoaG/4aGhv+Ghob/h4eH/4eHh/+Hh4f/h4eH/4iI - iP+IiIj/iIiI/4mJif+JiYn/ioqK/4qKiv+Li4v/i4uL/4yMjP+MjIz/jo6O/4+Pj/+Pj4//kJCQ/5GR - kf+SkpL/k5OT/5SUlP+Wlpb/l5eX/5qamv+bm5v/nZ2d/5+fn/+hoaH/paWl/6enp/+rq6v/r6+v/7Oz - s/+4uLj/vb29/8PDw//Jycn/0NDQ/9fX1//f39//5ubm/+3t7f/19fX/+vr6//7+/v///////v7+//v7 - +//29vb/8fHx/+rq6v/k5OT/3Nzc/9bW1v/Q0ND/ysrK/8TExP+/v7//u7u7/7a2tv+zs7P/r6+v/62t - rf+pqan/p6en/6Wlpf+jo6P/oKCg/5+fn/9+fpL/GxmF/x4dov8fHav/Hh2p/x0cpv8dG6P/HBui/xsc - oP8bG5z/Ghua/xoamP8aGpf/GhqW/xkalP8YGpP/GBqM/4iLpv+Ojo7/jo6O/4yMjP+MjIz/jIyM/4uL - i/+Li4v/i4uL/4qKiv+Kior/ioqK/4qKiv+JiYn/iYmJ/4aGhv95eXn/W1tb6wMDA0oAAAAaAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAGAAAAIBoaGmlfX1/2eHh4/4KCgv+EhIT/hISE/4SEhP+EhIT/hISE/4WF - hf+FhYX/hYWF/4WFhf+FhYX/hoaG/4aGhv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iIiI/4mJ - if+JiYn/ioqK/4qKiv+Li4v/jIyM/4yMjP+Ojo7/j4+P/5CQkP+RkZH/kpKS/5OTk/+UlJT/lZWV/5eX - l/+ampr/m5ub/52dnf+goKD/o6Oj/6ampv+pqan/rq6u/7Ozs/+3t7f/vb29/8TExP/Kysr/09PT/9ra - 2v/i4uL/6+vr//Ly8v/5+fn//v7+///////+/v7/+vr6//X19f/v7+//5+fn/+Dg4P/Z2dn/0dHR/8rK - yv/ExMT/vr6+/7q6uv+1tbX/srKy/66urv+rq6v/qKio/6Wlpf+jo6P/oKCg/5+fn/+dnZ3/nJyc/5qa - mv8wMX//Hh2Y/x8dqf8eHan/HRym/x0bo/8cHKH/Gxyg/xsbnP8aG5r/GhqY/xoal/8aGpb/GRqU/xga - k/8YGo7/Y2ie/4yMjP+Li4v/i4uL/4uLi/+Kior/ioqK/4qKiv+JiYn/iYmJ/4mJif+JiYn/iIiI/4iI - iP+IiIj/hoaG/3x8fP9iYmL2HR0daQAAACAAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAlLS0th2ho - aP57e3v/goKC/4ODg/+Dg4P/g4OD/4ODg/+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+FhYX/hYWF/4WF - hf+FhYX/hoaG/4aGhv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4mJif+Kior/ioqK/4uL - i/+MjIz/jIyM/46Ojv+Pj4//kJCQ/5GRkf+SkpL/k5OT/5WVlf+Xl5f/mpqa/5ycnP+enp7/oaGh/6Sk - pP+oqKj/ra2t/7Kysv+3t7f/vb29/8TExP/Nzc3/1dXV/9/f3//n5+f/8PDw//f39//8/Pz///////7+ - /v/5+fn/8vLy/+vr6//i4uL/29vb/9PT0//Ly8v/xMTE/76+vv+4uLj/tLS0/7CwsP+srKz/qKio/6am - pv+jo6P/oKCg/56env+dnZ3/m5ub/5qamv+Xl5f/lpaW/2RliP8cGoz/Hxyk/x4cp/8dHKb/HRuj/xwc - of8bHJ//Gxuc/xobmv8aGpj/GRuW/xkalv8YGpT/GBqT/xgZj/9ARZT/jIyM/4qKiv+JiYn/iYmJ/4mJ - if+JiYn/iIiI/4iIiP+IiIj/iIiI/4eHh/+Hh4f/h4eH/4eHh/+Ghob/gICA/2pqav4tLS2HAAAAJQAA - AAgAAAAAAAAAAAAAAAAAAAAAAAAACgAAACs4ODidb29v/3x8fP+BgYH/goKC/4KCgv+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4SEhP+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+FhYX/hYWF/4aG - hv+Ghob/hoaG/4eHh/+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4mJif+Kior/i4uL/4uLi/+MjIz/jo6O/4+P - j/+QkJD/kpKS/5OTk/+VlZX/lpaW/5qamv+cnJz/n5+f/6Ojo/+mpqb/q6ur/7CwsP+2trb/vb29/8XF - xf/Pz8//2dnZ/+Li4v/t7e3/9vb2//z8/P///////v7+//f39//w8PD/5+fn/93d3f/V1dX/zc3N/8TE - xP+9vb3/t7e3/7Ozs/+urq7/qamp/6ampv+kpKT/oKCg/56env+cnJz/m5ub/5mZmf+Xl5f/lZWV/5SU - lP+Tk5P/jo6R/x8fgv8eHaD/Hhyn/x0bpf8dG6P/HBuh/xsbn/8bG5z/Ghqa/xoamP8ZG5b/GRqV/xga - lP8XGpP/FxmQ/yQniv+Tk5P/iIiI/4iIiP+IiIj/h4eH/4eHh/+Hh4f/h4eH/4eHh/+Ghob/hoaG/4aG - hv+Ghob/hoaG/4WFhf+BgYH/cnJy/zw8PJ0AAAArAAAACgAAAAAAAAAAAAAAAAAAAAAAAAANAAAALkND - Q7JxcXH/fn5+/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hYWF/4WFhf+Ghob/hoaG/4aG - hv+Hh4f/h4eH/4iIiP+IiIj/iYmJ/4qKiv+Li4v/i4uL/4yMjP+Ojo7/kJCQ/5GRkf+SkpL/lJSU/5aW - lv+ampr/nJyc/5+fn/+kpKT/qKio/66urv+1tbX/vb29/8fHx//R0dH/3Nzc/+jo6P/09PT/+/v7//// - ///8/Pz/9vb2/+zs7P/h4eH/19fX/87Ozv/ExMT/vb29/7a2tv+wsLD/rKys/6enp/+kpKT/oKCg/56e - nv+cnJz/mpqa/5eXl/+Wlpb/lJSU/5OTk/+SkpL/kZGR/5CQkP+Pj4//Pz9+/x0bmP8dHKb/HRul/x0b - o/8cG6H/Gxuf/xsanP8aGpr/GhqY/xkalv8ZGpX/GBqU/xcak/8XGZD/FxmF/5GSlv+Hh4f/h4eH/4aG - hv+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WFhf+FhYX/hYWF/4KCgv9zc3P/REREsgAA - AC4AAAANAAAAAAAAAAAAAAAAAAAAAAAAAA8AAAAzS0tLx3Jycv99fX3/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4SEhP+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+Ghob/hoaG/4aGhv+Hh4f/h4eH/4iI - iP+JiYn/iYmJ/4qKiv+Li4v/jIyM/4+Pj/+QkJD/kpKS/5OTk/+Wlpb/mpqa/52dnf+hoaH/pqam/62t - rf+0tLT/vb29/8jIyP/V1dX/4uLi//Dw8P/7+/v///////v7+//y8vL/5+fn/9vb2//Pz8//xMTE/7y8 - vP+0tLT/rq6u/6ioqP+lpaX/oKCg/52dnf+bm5v/mZmZ/5aWlv+VlZX/k5OT/5KSkv+RkZH/kJCQ/4+P - j/+Ojo7/jIyM/4yMjP9kZIL/GxqP/x0bo/8dG6X/HBui/xwbof8bG5//Gxqb/xoamv8aGpj/GRqW/xkZ - lf8YGZP/FxmT/xcZkP8XGYb/fX6R/4WFhf+FhYX/hYWF/4WFhf+FhYX/hYWF/4WFhf+EhIT/hISE/4SE - hP+EhIT/hISE/4SEhP+EhIT/gYGB/3V1df9MTEzHAAAAMwAAAA8AAAAAAAAAAAAAAAAAAAAAAAAAEAAA - ADZSUlLVdHR0/35+fv+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hoaG/4aGhv+Hh4f/h4eH/4iIiP+JiYn/ioqK/4uL - i/+MjIz/j4+P/5GRkf+Tk5P/lZWV/5qamv+dnZ3/o6Oj/6mpqf+zs7P/vb29/8rKyv/a2tr/6+vr//n5 - +f//////+vr6/+/v7//g4OD/0dHR/8TExP+6urr/srKy/6urq/+lpaX/oKCg/52dnf+ampr/l5eX/5WV - lf+Tk5P/kpKS/5CQkP+Pj4//jo6O/4yMjP+MjIz/i4uL/4qKiv+Kior/iYmJ/4WFiP8dHIb/HRyf/x0b - pf8cG6L/Gxuh/xsbn/8bGpv/Ghqa/xoamP8ZGpb/GRmV/xgZk/8XGZH/FxiQ/xcZh/9pbIz/hISE/4SE - hP+EhIT/hISE/4SEhP+EhIT/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+BgYH/dnZ2/1VV - VdQAAAA2AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAOVhYWOB2dnb/fX19/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4OD - g/+EhIT/hISE/4SEhP+FhYX/hYWF/4aGhv+Hh4f/h4eH/4iIiP+JiYn/i4uL/4yMjP+Pj4//kpKS/5WV - lf+ampr/n5+f/6ampv+wsLD/vb29/8/Pz//i4uL/9vb2///////39/f/5+fn/9XV1f/ExMT/t7e3/66u - rv+mpqb/oKCg/5ycnP+ZmZn/lZWV/5OTk/+RkZH/kJCQ/4+Pj/+MjIz/i4uL/4uLi/+Kior/iYmJ/4mJ - if+IiIj/h4eH/4eHh/+Hh4f/hoaG/zI0gP8cG47/GxuU/xsakf8aGpD/GhqO/xoai/8aGor/GRmJ/xgZ - h/8YGYb/GBmE/xcZhP8XGIL/Fhl7/2Rmiv+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+CgoL/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4CAgP94eHj/WVlZ4AAAADgAAAASAAAAAAAAAAAAAAAAAAAAAAAA - ABMAAAA6XV1d63d3d/9+fn7/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/goKC/4ODg/+Dg4P/g4OD/4SE - hP+EhIT/hYWF/4aGhv+Ghob/h4eH/4mJif+Kior/jIyM/5CQkP+Tk5P/mpqa/6Ghof+tra3/vb29/9XV - 1f/w8PD///////Ly8v/b29v/xMTE/7S0tP+oqKj/oKCg/5ubm/+Wlpb/k5OT/5GRkf+Pj4//jIyM/4uL - i/+Kior/iYmJ/4iIiP+IiIj/h4eH/4eHh/+Ghob/hoaG/4WFhf+FhYX/hYWF/4SEhP+EhIT/RUV0/xYW - bP8VFW3/FRVr/xUVav8UFWn/FBRn/xQUZv8TE2X/EhNj/xIUYv8SFGH/EhRg/xITYP8RE13/S05u/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gICA/3h4 - eP9fX1/rAAAAOgAAABMAAAAAAAAAAAAAAAAAAAAAAAAAEwAAADxhYWHxeHh4/319ff9+fn7/fn5+/35+ - fv9+fn7/fn5+/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4ODg/+Dg4P/hISE/4WF - hf+Ghob/h4eH/4mJif+MjIz/kpKS/5qamv+mpqb/vb29/+Li4v//////5+fn/8TExP+urq7/oKCg/5mZ - mf+Tk5P/kJCQ/4yMjP+Li4v/iYmJ/4iIiP+Hh4f/hoaG/4aGhv+FhYX/hYWF/4SEhP+EhIT/hISE/4OD - g/+Dg4P/g4OD/4ODg/+Dg4P/goKC/4KCgv9cW3f/FBVf/xQVXv8UFFz/ExRb/xMUWv8TE1n/ExNY/xIT - V/8SE1b/EhNV/xETVP8RE1P/ERNS/xETUv9FR2n/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP9+fn7/eXl5/2JiYvAAAAA8AAAAEwAAAAAAAAAAAAAAAAAA - AAAAAAATAAAAPWZmZvV5eXn/fX19/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GBgf+CgoL/goKC/4ODg/+FhYX/h4eH/4yM - jP+ampr/vb29///////ExMT/oKCg/5OTk/+MjIz/iYmJ/4eHh/+Ghob/hYWF/4SEhP+Dg4P/g4OD/4OD - g/+CgoL/goKC/4KCgv+CgoL/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/35+ - fv96enr/ZGRk8wAAAD0AAAATAAAAAAAAAAAAAAAAAAAAAAAAABMAAAA9Z2dn+Ht7e/99fX3/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv+bm5v/vLy8/7y8 - vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+8vLz/vLy8/7y8vP+SkpL/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fX19/3p6ev9mZmb2AAAAPQAAABMAAAAAAAAAAAAA - AAAAAAAAAAAAEwAAADxoaGj4fHx8/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/2pri/9OUpr/TlKg/05SoP9OU6L/TlOi/09To/9PVKT/T1Sl/1BU - pf9RU6f/UVOo/1FUq/9SVKz/UlWm/4GBk/9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/gICA/4CAgP+AgID/gICA/4GBgf+CgoL/g4OD/4WF - hf+Kior/lpaW/7u7u///////w8PD/6CgoP+Tk5P/jIyM/4mJif+Hh4f/hoaG/4WFhf+EhIT/g4OD/4OD - g/+Dg4P/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/fHx8/2pqavgAAAA8AAAAEwAAAAAAAAAAAAAAAAAAAAAAAAATAAAAOmlpafV8fHz/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/UFOB/xcY - hv8XGY7/FxiP/xcZkf8YGZP/GBmV/xgalv8ZGpf/GhqZ/xsam/8bGpz/Gxug/xwbov8cG5z/b3CW/35+ - fv9+fn7/fn5+/35+fv+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4GBgf+BgYH/gYGB/4KC - gv+CgoL/g4OD/4SEhP+FhYX/h4eH/4qKiv+Pj4//lpaW/6Ojo/+7u7v/4uLi///////l5eX/w8PD/62t - rf+goKD/mZmZ/5OTk/+Pj4//jIyM/4qKiv+JiYn/iIiI/4eHh/+Ghob/hoaG/4WFhf+FhYX/hISE/4SE - hP+EhIT/g4OD/4ODg/+Dg4P/g4OD/4ODg/+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP99fX3/ampq9QAAADoAAAATAAAAAAAA - AAAAAAAAAAAAAAAAABIAAAA5Z2dn8H19ff+AgID/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+ - fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9QUn7/FxiF/xcZjv8XGI//FxmR/xgZk/8YGZX/GBqW/xka - l/8aGpn/Gxqb/xsanf8bG6D/HBui/xwbn/9naZ7/gICA/4CAgP+AgID/gICA/4CAgP+BgYH/gYGB/4GB - gf+BgYH/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hYWF/4aGhv+IiIj/ioqK/4yMjP+RkZH/lpaW/56e - nv+pqan/u7u7/9XV1f/x8fH///////Hx8f/Z2dn/w8PD/7Ozs/+oqKj/oKCg/5qamv+Wlpb/k5OT/5CQ - kP+Pj4//jIyM/4uLi/+Kior/iYmJ/4iIiP+Hh4f/h4eH/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4SE - hP+EhIT/hISE/4SEhP+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4KCgv+CgoL/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GB - gf+BgYH/goKC/4CAgP9paWnwAAAAOQAAABIAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADZmZmbqfX19/4CA - gP9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/35+fv9+fn7/fn5+/4CAgP+AgID/gICA/1RW - e/8XGIP/FxiP/xcYj/8XGZH/GBmT/xkZlf8ZGpb/GRqX/xoamf8bGpv/Gxqd/xsboP8cG6L/HRui/1hZ - ov+BgYH/gYGB/4GBgf+CgoL/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hISE/4WFhf+Ghob/h4eH/4iI - iP+Kior/jIyM/4+Pj/+SkpL/lpaW/5ycnP+jo6P/rq6u/7u7u//Ozs7/4uLi//b29v//////9vb2/+Xl - 5f/T09P/w8PD/7a2tv+tra3/pqam/6CgoP+cnJz/mZmZ/5WVlf+Tk5P/kZGR/4+Pj/+Ojo7/jIyM/4uL - i/+Kior/ioqK/4mJif+IiIj/iIiI/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/goKC/4KCgv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/gYGB/2lpaekAAAA2AAAAEAAA - AAAAAAAAAAAAAAAAAAAAAAAPAAAAM2FhYd59fX3/gYGB/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CA - gP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/WVt3/xcYgf8XGY7/FxiP/xcZkf8YGZP/GRmV/xka - lv8ZGpf/GhqZ/xsam/8bGp3/Gxug/xwbov8dG6T/P0Ch/4yMjP+CgoL/g4OD/4ODg/+EhIT/hISE/4WF - hf+FhYX/hoaG/4eHh/+IiIj/iIiI/4qKiv+Li4v/jo6O/5CQkP+Tk5P/lpaW/5ubm/+goKD/p6en/7Cw - sP+7u7v/ycnJ/9ra2v/r6+v/+vr6///////5+fn/7Ozs/93d3f/Pz8//w8PD/7i4uP+wsLD/qamp/6Wl - pf+goKD/nJyc/5qamv+Wlpb/lJSU/5OTk/+RkZH/kJCQ/4+Pj/+Ojo7/jIyM/4uLi/+Li4v/ioqK/4mJ - if+JiYn/iIiI/4iIiP+IiIj/h4eH/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hISE/4SEhP+EhIT/hISE/4SEhP+EhIT/hISE/4ODg/+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4WFhf+CgoL/ZGRk3QAAADIAAAAPAAAAAAAAAAAAAAAAAAAAAAAAAA0AAAAuX19f0X5+ - fv+CgoL/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gICA/4CAgP+AgID/gYGB/4GB - gf9oaHn/Fhh7/xcZjf8XGI//FxmR/xgZk/8ZGZX/GRqW/xoamP8aGpn/Gxqb/xsanf8bG6D/HBui/x0b - pP8mJqD/n5+f/4SEhP+FhYX/hYWF/4aGhv+Ghob/h4eH/4iIiP+JiYn/ioqK/4uLi/+MjIz/j4+P/5GR - kf+Tk5P/lpaW/5qamv+enp7/o6Oj/6mpqf+ysrL/u7u7/8fHx//V1dX/4uLi//Hx8f/7+/v///////v7 - +//x8fH/5eXl/9nZ2f/Ozs7/w8PD/7q6uv+zs7P/ra2t/6ioqP+kpKT/oKCg/52dnf+ampr/mZmZ/5aW - lv+UlJT/k5OT/5KSkv+QkJD/j4+P/4+Pj/+Ojo7/jIyM/4uLi/+Li4v/ioqK/4qKiv+JiYn/iYmJ/4iI - iP+IiIj/iIiI/4eHh/+Hh4f/h4eH/4eHh/+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hYWF/4SEhP+EhIT/hISE/4SEhP+EhIT/hISE/4SEhP+EhIT/hoaG/4KCgv9gYGDRAAAALgAA - AA0AAAAAAAAAAAAAAAAAAAAAAAAACgAAACpZWVnCfn5+/4KCgv+AgID/gICA/4CAgP+AgID/gYGB/4GB - gf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/3h5fv8VF3X/FxmL/xcYkP8XGZH/GBmT/xkZ - lf8ZGpb/GhqY/xoamf8bGpv/Gxqd/xsboP8cG6L/HRuk/x0bo/+Ula3/hoaG/4eHh/+Hh4f/iIiI/4mJ - if+Kior/i4uL/4yMjP+Ojo7/kJCQ/5GRkf+Tk5P/lpaW/5qamv+dnZ3/oaGh/6ampv+srKz/s7Oz/7u7 - u//FxcX/0NDQ/9zc3P/q6ur/9fX1//z8/P//////+/v7//X19f/r6+v/4ODg/9XV1f/Ly8v/w8PD/7y8 - vP+1tbX/r6+v/6urq/+mpqb/o6Oj/6CgoP+dnZ3/m5ub/5mZmf+Xl5f/lZWV/5SUlP+Tk5P/kpKS/5GR - kf+QkJD/j4+P/46Ojv+Ojo7/jIyM/4yMjP+Li4v/i4uL/4qKiv+Kior/iYmJ/4mJif+JiYn/iIiI/4iI - iP+IiIj/h4eH/4eHh/+Hh4f/h4eH/4aGhv+Ghob/hoaG/4aGhv+Ghob/hoaG/4WFhf+FhYX/hYWF/4WF - hf+FhYX/hYWF/4WFhf+Ghob/g4OD/1xcXMIAAAArAAAACgAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAJVJS - Uqt+fn7/g4OD/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4GBgf+BgYH/gYGB/4KCgv+CgoL/goKC/4KC - gv+CgoL/goKC/x4hc/8XGIj/FxiQ/xcZkf8YGZP/GRmV/xkalv8aGpj/GhqZ/xsam/8bGp3/Gxug/xwb - ov8dG6T/HRum/2psrv+RkZH/iYmJ/4qKiv+Li4v/jIyM/46Ojv+Pj4//kJCQ/5KSkv+UlJT/lpaW/5mZ - mf+cnJz/n5+f/6Ojo/+oqKj/rq6u/7S0tP+7u7v/xMTE/87Ozv/X19f/4uLi/+3t7f/29vb//Pz8//// - ///8/Pz/9vb2/+/v7//l5eX/3Nzc/9PT0//Kysr/w8PD/7y8vP+2trb/srKy/62trf+pqan/pqam/6Oj - o/+goKD/nZ2d/5ycnP+ampr/mZmZ/5aWlv+VlZX/lJSU/5OTk/+SkpL/kZGR/5CQkP+Pj4//j4+P/46O - jv+Ojo7/jIyM/4yMjP+Li4v/i4uL/4qKiv+Kior/ioqK/4mJif+JiYn/iYmJ/4iIiP+IiIj/iIiI/4iI - iP+Hh4f/h4eH/4eHh/+Hh4f/hoaG/4aGhv+Ghob/hoaG/4aGhv+Ghob/hoaG/4eHh/+Dg4P/VVVVqwAA - ACUAAAAIAAAAAAAAAAAAAAAAAAAAAAAAAAYAAAAfR0dHk35+fv+EhIT/gYGB/4GBgf+BgYH/goKC/4KC - gv+CgoL/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/g4OD/4ODg/+Dg4P/MDRy/xcZhP8XGJD/FxmR/xgZ - k/8ZGZX/GRqW/xoamP8aGpr/Gxqb/xsanf8bG6H/HBui/x0bpP8dG6f/OTuo/6mpqf+Li4v/jIyM/46O - jv+Pj4//kZGR/5KSkv+UlJT/lpaW/5mZmf+bm5v/np6e/6Ghof+lpaX/qamp/6+vr/+1tbX/u7u7/8PD - w//Ly8v/1dXV/93d3f/n5+f/8fHx//n5+f/+/v7///////z8/P/39/f/8fHx/+rq6v/h4eH/2dnZ/9HR - 0f/Kysr/w8PD/729vf+3t7f/s7Oz/6+vr/+rq6v/qKio/6Wlpf+jo6P/oKCg/56env+cnJz/mpqa/5mZ - mf+Xl5f/lpaW/5WVlf+UlJT/k5OT/5KSkv+RkZH/kJCQ/5CQkP+Pj4//j4+P/46Ojv+Ojo7/jIyM/4yM - jP+Li4v/i4uL/4qKiv+Kior/ioqK/4mJif+JiYn/iYmJ/4mJif+IiIj/iIiI/4iIiP+IiIj/h4eH/4eH - h/+Hh4f/h4eH/4eHh/+Ghob/iIiI/4SEhP9ISEiTAAAAIAAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAwAA - ABk8PDx6fHx8/oaGhv+Dg4P/goKC/4KCgv+CgoL/goKC/4KCgv+Dg4P/g4OD/4ODg/+Dg4P/g4OD/4SE - hP+EhIT/hISE/4SEhP9GSnL/Fhh+/xcYjv8XGZH/GBmT/xkZlf8ZGpb/GhqY/xoamv8bGpv/Gxqd/xwb - of8dG6P/HRuk/x0bp/8eHKf/pKW7/5KSkv+QkJD/kZGR/5OTk/+UlJT/lpaW/5mZmf+bm5v/nZ2d/6Cg - oP+jo6P/p6en/6ysrP+wsLD/tbW1/7u7u//CwsL/ycnJ/9HR0f/a2tr/4uLi/+vr6//09PT/+vr6//7+ - /v///////v7+//n5+f/09PT/7Ozs/+Xl5f/d3d3/1tbW/8/Pz//Jycn/w8PD/729vf+4uLj/tLS0/7Cw - sP+tra3/qamp/6enp/+lpaX/oaGh/6CgoP+enp7/nJyc/5ubm/+ampr/mZmZ/5aWlv+VlZX/lJSU/5SU - lP+Tk5P/kpKS/5KSkv+ZmZn/m5ub/5ubm/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uL - i/+Kior/ioqK/4qKiv+JiYn/iYmJ/4mJif+JiYn/iIiI/4iIiP+IiIj/iIiI/4mJif+Li4v/goKC/kBA - QHoAAAAaAAAABAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAFCkpKVd2dnb0h4eH/4WFhf+Dg4P/g4OD/4OD - g/+Dg4P/g4OD/4ODg/+EhIT/hISE/4SEhP+EhIT/hYWF/4WFhf+FhYX/hYWF/2Zmev8VF3X/FxqL/xcZ - k/8YGZP/GRqV/xkalv8aGpj/Ghqa/xsanP8bGp3/HBuh/x0bo/8dG6T/Hhun/x4cqv9gYbL/rKys/5OT - k/+UlJT/lpaW/5mZmf+ampr/nJyc/5+fn/+hoaH/paWl/6ioqP+tra3/sLCw/7a2tv+7u7v/wsLC/8jI - yP/Pz8//19fX/9/f3//n5+f/7+/v//X19f/7+/v//v7+///////+/v7/+vr6//X19f/v7+//6Ojo/+Li - 4v/b29v/1dXV/8/Pz//Jycn/w8PD/76+vv+6urr/tbW1/7Kysv+urq7/rKys/6ioqP+mpqb/pKSk/6Gh - of+goKD/oaGh/6ampv+rq6v/ra2t/7S0tP+1tbX/vr6+/76+vv/IyMj/yMjI/8jIyP/Hx8f/uLi4/5GR - kf+QkJD/kJCQ/4+Pj/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uLi/+Kior/ioqK/4qK - iv+Kior/iYmJ/4mJif+JiYn/i4uL/46Ojv9+fn70KioqWQAAABQAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAOBAQENnJycueIiIj/hoaG/4ODg/+EhIT/hISE/4SEhP+EhIT/hISE/4WFhf+FhYX/hYWF/4WF - hf+Ghob/hoaG/4aGhv+Hh4f/hYWG/xocbf8XGYb/FxqT/xgalP8ZGpX/GRuW/xoamP8aGpr/Gxuc/xsb - nf8cG6H/HRuj/x0bpf8eHKf/Hxyq/yQjq/+5usP/nJyc/5eXl/+ampr/nJyc/56env+goKD/o6Oj/6am - pv+pqan/rq6u/7Kysv+2trb/u7u7/8HBwf/Hx8f/zs7O/9XV1f/b29v/4uLi/+rq6v/x8fH/9vb2//v7 - +//+/v7///////7+/v/7+/v/9vb2//Hx8f/r6+v/5eXl/9/f3//Z2dn/09PT/87Ozv/IyMj/w8PD/76+ - vv+/v7//vb29/8LCwv/BwcH/xcXF/8XFxf/Kysr/zc3N/9DQ0P/Pz8//z8/P/87Ozv/Bwcr/o6TF/6Kj - xP98fbz/e325/2Fjsv9WWa//SEyp/zU5of9VWZr/k5OT/5KSkv+SkpL/kZGR/5CQkP+QkJD/j4+P/4+P - j/+Pj4//jo6O/46Ojv+MjIz/jIyM/4yMjP+Li4v/i4uL/4uLi/+Li4v/ioqK/4qKiv+Ojo7/kJCQ/3h4 - eOcEBAQ2AAAADwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAoAAAAoaWlpzYmJif+IiIj/hISE/4SE - hP+FhYX/hYWF/4WFhf+FhYX/hoaG/4aGhv+Ghob/h4eH/4eHh/+Hh4f/iIiI/4iIiP+IiIj/NTlw/xcY - gf8YGpD/GBqU/xkalf8ZG5b/GhqY/xobmv8bG5z/Gxuf/xwcof8dG6P/HRyl/x4cp/8fHar/IB2t/2xt - uf+6urr/m5ub/52dnf+fn5//oaGh/6Wlpf+np6f/q6ur/66urv+zs7P/tra2/7u7u//BwcH/x8fH/8vL - y//T09P/2dnZ/+Dg4P/m5ub/7Ozs//Ly8v/39/f//Pz8/////////////v7+//v7+//39/f/8vLy/+3t - 7f/o6Oj/4uLi/9zc3P/X19f/1dXV/9/f3//i4uL/4eHh/9/f3/+5udj/sbHW/5yc0/+Hh87/f3/M/2Fh - xv9gYMT/QUK9/z49uv8sK7X/IB2w/yAdrv8fHaz/Hh2p/x4cpv8dG6T/HRui/xwcoP8cG5z/GxuY/zk8 - kf+VlZX/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5CQkP+QkJD/j4+P/4+Pj/+Pj4//jo6O/46O - jv+MjIz/jIyM/4yMjP+Li4v/i4uL/4+Pj/+RkZH/bm5uzQAAACgAAAAKAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAABgAAAB9VVVWfiYmJ/4qKiv+FhYX/hYWF/4aGhv+Ghob/hoaG/4aGhv+Hh4f/h4eH/4eH - h/+IiIj/iIiI/4iIiP+JiYn/iYmJ/4qKiv9bXHn/FRd0/xgajf8ZGpT/GRqW/xkblv8aGpj/Ghua/xsb - nP8bG5//HByh/x0bo/8dHKX/Hhyp/x8dqv8gHa3/JiWv/7e3yP+srKz/oaGh/6Ojo/+mpqb/qKio/6ys - rP+vr6//s7Oz/7e3t/+7u7v/wcHB/8XFxf/Ly8v/0NDQ/9bW1v/c3Nz/4uLi/+rq6v/v7+//9fX1//n5 - +f/8/Pz////////////+/v7/+/v7//n5+f/19fX/8PDw/+vr6//l5eX/4ODg/9bW2P9WVKD/QD6l/0E9 - u/8pIsb/KiLM/ykhzP8oIcn/JyDG/yYhxP8lIMD/JCC+/yMfvP8jH7r/Ih62/yEes/8hHbD/IB2u/yAd - rP8fHan/Hhym/x0bpP8dG6L/HByg/xwbnP8bG5n/NjmS/5eXl/+Wlpb/lZWV/5WVlf+UlJT/k5OT/5OT - k/+SkpL/kpKS/5GRkf+RkZH/kJCQ/5CQkP+Pj4//j4+P/4+Pj/+Ojo7/jo6O/46Ojv+MjIz/kpKS/5GR - kf9dXV2fAAAAHwAAAAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAFz09PWyJiYn/jIyM/4iI - iP+Ghob/h4eH/4eHh/+Hh4f/iIiI/4iIiP+IiIj/iIiI/4mJif+JiYn/ioqK/4qKiv+Li4v/i4uL/4eI - iv8YGWn/GBqF/xkak/8aGpb/GhqX/xoamP8aG5r/Gxuc/xsbn/8cG6L/HRuj/x0cpf8eHKn/Hx2r/yAd - rf8gHa//VFW5/8vLy/+oqKj/p6en/6mpqf+tra3/sLCw/7S0tP+3t7f/u7u7/7+/v//ExMT/ycnJ/8/P - z//V1dX/2tra/+Dg4P/m5ub/6+vr//Hx8f/29vb/+vr6//z8/P////////////7+/v/8/Pz/+fn5//X1 - 9f/x8fH/7Ozs/+fn5//i4uL/3d3d/6Wkwv8rKIj/Ix6T/ychrf8oIsD/KSLJ/yghyf8nIMb/JiHE/yYg - wP8lIL//JB+8/yMfuv8jH7b/Ih+z/yEesv8gHa7/IB2s/x8dqf8eHKf/HRyk/x0bov8cHKD/HBud/xsb - mv8vMZL/mpqa/5mZmf+Xl5f/lpaW/5aWlv+VlZX/lJSU/5SUlP+Tk5P/k5OT/5KSkv+SkpL/kZGR/5GR - kf+QkJD/kJCQ/5CQkP+Pj4//j4+P/5CQkP+UlJT/kZGR/0FBQW0AAAAXAAAAAwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAQISEhRX5+fu2RkZH/ioqK/4eHh/+IiIj/iIiI/4iIiP+JiYn/iYmJ/4mJ - if+Kior/ioqK/4uLi/+Li4v/jIyM/4yMjP+Ojo7/jo6O/z5Bcf8WGHn/GRmO/xoalv8aGpf/GhqZ/xsb - mv8cG5z/HBuf/x0bov8dG6P/HRyl/x4cqf8fHav/IB2t/yAdr/8hHrL/mJjH/8fHx/+srKz/rq6u/7Cw - sP+0tLT/t7e3/7u7u/+/v7//xMTE/8nJyf/Ozs7/09PT/9fX1//d3d3/4uLi/+jo6P/t7e3/8vLy//b2 - 9v/6+vr//Pz8/////////////v7+//z8/P/6+vr/9vb2//Ly8v/v7+//6urq/+Xl5f/g4OD/3Nzc/7q5 - y/86N47/Ix2N/yUgpP8nIbv/KCLG/ycgxv8mIcT/JiDC/yUgv/8kH7z/Ix+6/yMftv8iH7T/IR6y/yAe - rv8gHaz/Hx6q/x4dp/8dHKT/HRyi/xwdoP8cHJ3/Gxua/yorkP+cnJz/m5ub/5qamv+ZmZn/mZmZ/5eX - l/+Wlpb/lZWV/5WVlf+UlJT/lJSU/5OTk/+Tk5P/kpKS/5KSkv+RkZH/kZGR/5GRkf+QkJD/k5OT/5eX - l/+GhobtISEhRQAAABAAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAAobW1txpGR - kf+Ojo7/iIiI/4mJif+JiYn/iYmJ/4qKiv+Kior/i4uL/4uLi/+Li4v/jIyM/46Ojv+Ojo7/j4+P/4+P - j/+QkJD/dXaF/xQWav8ZGoj/GhqV/xoal/8aGpn/Gxua/xwbnP8cG5//HRui/x0bpP8eHKX/Hxyp/yAd - q/8gHK7/IR2w/yEes/8uLbb/w8TR/8XFxf+ysrL/tLS0/7e3t/+7u7v/v7+//8PDw//IyMj/zc3N/9HR - 0f/W1tb/29vb/+Dg4P/m5ub/6+vr/+/v7//09PT/9/f3//v7+//+/v7////////////+/v7//Pz8//r6 - +v/39/f/9PT0//Dw8P/s7Oz/5+fn/+Tk5P/f39//2tra/8vL0v9KSZX/IR2I/yMenP8mIbX/JyHC/yYh - xP8mIML/JSC//yQfvP8jH7r/Ix+3/yIftP8hHrL/IB6u/yAdrP8fHqr/Hh2n/x0cpP8dHKL/HB2h/xwc - nf8bHJv/IySP/5+fn/+dnZ3/nJyc/5ubm/+ampr/mpqa/5mZmf+Xl5f/lpaW/5aWlv+VlZX/lZWV/5SU - lP+UlJT/k5OT/5OTk/+SkpL/kpKS/5GRkf+VlZX/mpqa/3d3d8cAAAAoAAAACQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABxcXFyVkZGR/5GRkf+Kior/ioqK/4qKiv+Li4v/i4uL/4uL - i/+MjIz/jIyM/46Ojv+Ojo7/j4+P/4+Pj/+QkJD/kZGR/5KSkv+SkpL/MjRu/xcZe/8aGZD/GhqX/xoa - mf8bG5v/HBuc/xwbn/8dG6L/HRuk/x4cpv8fHKn/IB2r/yAdrv8hHrD/Ih+z/yMftv9MTb7/1dXX/8nJ - yf+4uLj/u7u7/7+/v//Dw8P/x8fH/8vLy//Q0ND/1dXV/9nZ2f/d3d3/4uLi/+fn5//s7Oz/8fHx//X1 - 9f/5+fn/+/v7//7+/v////////////7+/v/8/Pz/+/v7//f39//19fX/8fHx/+3t7f/q6ur/5eXl/+Hh - 4f/d3d3/2dnZ/9PT1P9nZ6H/IB2E/yIelf8lIK//JiG//yYhwv8lIL//JB+8/yMfuv8jH7f/Ih+0/yEe - sv8gHq7/IB2t/x8eqv8eHaf/HRyk/x0cov8cHaH/HByd/xscm/8dHo3/o6Oj/5+fn/+enp7/nZ2d/5yc - nP+bm5v/mpqa/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5WVlf+VlZX/lJSU/5SUlP+Tk5P/lJSU/5mZ - mf+ampr/YmJilgAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAETEx - MVOMjIz6lZWV/4+Pj/+Li4v/i4uL/4yMjP+MjIz/jo6O/46Ojv+Pj4//j4+P/5CQkP+QkJD/kZGR/5KS - kv+Tk5P/k5OT/5SUlP91doj/FRZr/xkaiP8aG5X/GhqZ/xsbm/8cG53/HByf/x0bov8dHKT/Hh2m/x8d - qf8gHqv/IB2u/yEesP8iH7T/Ix+2/yMguP9lZMb/29vb/9DQ0P+/v7//w8PD/8fHx//Kysr/z8/P/9PT - 0//X19f/3Nzc/+Hh4f/l5eX/6urq/+3t7f/y8vL/9vb2//n5+f/7+/v//v7+/////////////v7+//z8 - /P/7+/v/+fn5//b29v/y8vL/7+/v/+vr6//n5+f/5OTk/+Dg4P/b29v/19fX/9TU1P+FhK7/IyCF/yId - nP8mIbr/JiHC/yUhv/8kILz/Ix+7/yMft/8iH7T/IR6y/yAer/8gHa3/Hx6q/x4dp/8dHKT/HRyj/xwd - of8cHJ3/HByb/xsbjP+mpqf/oaGh/6CgoP+fn5//np6e/52dnf+cnJz/m5ub/5ubm/+ampr/mZmZ/5mZ - mf+Xl5f/l5eX/5aWlv+VlZX/lZWV/5WVlf+Wlpb/np6e/5SUlPo0NDRTAAAAEQAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAKAAAAJ3x8fNGZmZn/k5OT/4yMjP+Ojo7/jo6O/4+P - j/+Pj4//j4+P/5CQkP+RkZH/kZGR/5KSkv+Tk5P/k5OT/5SUlP+VlZX/lpaW/5eXl/8wM27/Fxh4/xob - j/8aG5j/Gxub/xwcnf8cHKD/HRyi/x0cpP8eHab/Hx2q/yAdrP8gHa7/IR6w/yIftP8jH7f/IyC4/yQf - vP9vbsr/39/f/9nZ2f/Hx8f/ycnJ/87Ozv/R0dH/1tbW/9ra2v/f39//4uLi/+fn5//r6+v/8PDw//T0 - 9P/29vb/+vr6//z8/P/+/v7////////////+/v7//v7+//v7+//5+fn/9vb2//T09P/w8PD/7Ozs/+jo - 6P/l5eX/4eHh/93d3f/a2tr/1tbW/9PT0/+hoL//Mi2t/yYhvf8mIcL/JiG//yUgvf8jILv/IyC3/yIf - tP8hHrL/IB6v/yAdrf8gHqr/Hx2n/x4cpf8dHKP/HB2h/xwcnf8cHJv/GxuM/6ChqP+kpKT/oaGh/6Gh - of+goKD/n5+f/56env+dnZ3/nJyc/5ycnP+bm5v/mpqa/5qamv+ZmZn/mZmZ/5eXl/+Wlpb/lpaW/5ub - m/+goKD/g4OD0QAAACcAAAAKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAQAAAAZX19fjpmZmf+Wlpb/kJCQ/4+Pj/+Pj4//kJCQ/5CQkP+RkZH/kZGR/5KSkv+Tk5P/k5OT/5SU - lP+VlZX/lpaW/5eXl/+ZmZn/mpqa/31+jv8WF2j/GRqE/xobl/8bHJv/HByd/xwcoP8dHKL/HRyk/x4d - pv8fHar/IB2s/yAdrv8hHrD/Ih+0/yMft/8jH7r/JB+8/yUhvv9hYsv/3d3h/9/f3//Q0ND/0NDQ/9XV - 1f/Z2dn/3Nzc/+Hh4f/l5eX/6urq/+3t7f/x8fH/9fX1//f39//6+vr//Pz8//7+/v////////////// - ///+/v7/+/v7//r6+v/39/f/9fX1//Hx8f/t7e3/6+vr/+fn5//k5OT/4ODg/9zc3P/Z2dn/3d3d/+bm - 5v/ExeH/KSPD/yYhwv8mIcD/JSC9/yQgu/8jILf/IyC1/yIfs/8hH6//IB6t/yAeqv8fHaf/Hhyl/x0c - o/8cHaH/HByd/xwcnP8bG43/mZql/6Wlpf+kpKT/o6Oj/6Ghof+goKD/oKCg/5+fn/+enp7/nZ2d/52d - nf+cnJz/m5ub/5qamv+ampr/mZmZ/5mZmf+ZmZn/oKCg/6Ghof9mZmaOAAAAGQAAAAQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAA8qKipIkZGR8pycnP+Tk5P/kJCQ/5GR - kf+RkZH/kpKS/5KSkv+Tk5P/lJSU/5SUlP+VlZX/lpaW/5eXl/+ZmZn/mZmZ/5qamv+bm5v/nJyc/0dI - d/8WF3L/GhuN/xscmv8cHJ3/HByg/x0cov8dHKT/Hh2m/x8dqv8gHaz/IB2v/yEesP8iH7T/Ix+3/yMf - uv8kIL3/JSG+/yYhwv9NSsr/2trj/+bm5v/c3Nz/19fX/9vb2//f39//4uLi/+fn5//r6+v/7+/v//Ly - 8v/19fX/+fn5//v7+//8/Pz//v7+//////////////////7+/v/8/Pz/+vr6//f39//19fX/8vLy/+/v - 7//s7Oz/6Ojo/+Xl5f/i4uL/5OTk/+rq6v/r6+v/39/o/19d0f8nIcX/JiHD/yYhwP8lIL3/JCC7/yMg - t/8jILX/Ih+z/yEfr/8gHq3/IB+q/x8eqf8eHaX/HR2j/xwdof8cHJ3/HByc/xscjv+Vlqb/p6en/6am - pv+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//np6e/52dnf+dnZ3/nJyc/5ubm/+bm5v/mpqa/52d - nf+kpKT/mZmZ8i4uLkgAAAAPAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAABwAAACF6enq9np6e/5mZmf+SkpL/kpKS/5KSkv+Tk5P/lJSU/5SUlP+VlZX/lpaW/5eX - l/+ZmZn/mZmZ/5qamv+bm5v/nJyc/52dnf+enp7/l5ec/yAjaf8YGXv/GxyT/xwcnP8cHKD/HRyj/x0c - pP8eHab/Hx2q/yAdrP8gHa//IR6y/yIftP8jILf/JCC6/yUgvf8mIb//JiHC/ychxP9DQMz/zMvk/+vr - 6//o6Oj/4eHh/+Hh4f/l5eX/6Ojo/+zs7P/w8PD/8vLy//b29v/5+fn/+/v7//z8/P/+/v7///////// - /////////v7+//z8/P/6+vr/+fn5//b29v/09PT/8PDw/+3t7f/q6ur/6urq/+/v7//w8PD/6+vu/5ST - 3v82M8z/KCLH/ychxf8mIcP/JiHA/yUgvf8kILv/IyC4/yMgtf8iH7P/IR+v/yAerf8gH6v/Hx6p/x4d - pf8dHaP/HB2h/xwdn/8cHZz/GxyP/5OUqf+pqan/qKio/6enp/+mpqb/paWl/6SkpP+jo6P/oaGh/6Cg - oP+goKD/n5+f/56env+dnZ3/nZ2d/5ycnP+cnJz/o6Oj/6enp/+Dg4O+AAAAIQAAAAcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAAE0xMTGecnJz+n5+f/5aW - lv+Tk5P/lJSU/5WVlf+VlZX/lpaW/5eXl/+Xl5f/mZmZ/5qamv+bm5v/nJyc/52dnf+enp7/n5+f/6Cg - oP+hoaH/bW6K/xYWaf8aG4X/HBuZ/xwcoP8dHKP/Hhyl/x8dpv8gHar/IB2s/yEer/8iH7L/IiC0/yMg - t/8kILr/JSC9/yYhv/8mIcP/JyHE/yghx/8wKsv/j47b/+3t7f/v7+//7e3t/+rq6v/q6ur/7e3t//Hx - 8f/09PT/9vb2//n5+f/7+/v//Pz8//7+/v/////////////////+/v7//Pz8//v7+//5+fn/9vb2//T0 - 9P/x8fH/8fHx//Ly8v/09PT/8vLy/6mp5v9EP9X/KiPN/ykjyv8oIsn/JyHG/yYhw/8mIcD/JSC9/yQg - u/8jILj/IyC1/yIfs/8hH6//IB6t/yAfq/8fHqn/Hh2l/x0do/8cHaH/HB2f/xwdnP8bHJD/jY6n/6ys - rP+rq6v/qamp/6ioqP+np6f/pqam/6Wlpf+kpKT/o6Oj/6Ghof+goKD/oKCg/5+fn/+enp7/nZ2d/6Cg - oP+np6f/pqam/lBQUGgAAAATAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAKBgYGKYmJidOjo6P/nJyc/5WVlf+VlZX/lpaW/5eXl/+Xl5f/mZmZ/5qa - mv+bm5v/nJyc/52dnf+enp7/n5+f/6CgoP+hoaH/o6Oj/6SkpP+mpqb/R0l6/xcYb/8bG4z/HByd/x0c - o/8eHaX/Hx2n/yAeqv8gHqz/IR6v/yIfsv8jILX/IyC3/yQguv8lIL3/JiG//yYhw/8nIcX/KCLH/ykj - yv8qI8z/TEnV/7q66P/y8vL/9PT0//X19f/09PT/9PT0//X19f/39/f/+vr6//v7+//+/v7//v7+//// - //////////////7+/v/8/Pz/+/v7//n5+f/5+fn/9/f3//f39//39/f/9vb2/7u77P9NStr/KyPS/yok - 0P8qI83/KSPL/ygiyf8nIsb/JiHD/yYhwP8lIL3/JCC8/yMguP8jILX/Ih+z/yEfr/8gHq7/IB+r/x8e - qf8eHaX/HR2j/x0dov8cHZ//HB2c/xsckf+Ehqf/rq6u/6ysrP+rq6v/qamp/6ioqP+np6f/pqam/6Wl - pf+lpaX/pKSk/6Ojo/+hoaH/oKCg/6CgoP+fn5//paWl/62trf+RkZHTBgYGKQAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAVYWFhfaam - pv+jo6P/mZmZ/5eXl/+Xl5f/mZmZ/5qamv+bm5v/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Oj - o/+lpaX/pqam/6enp/+kpKb/Ky5v/xkZdf8bHJD/HR2g/x4dpf8fHqf/IB6q/yAerP8hHq//Ih+y/yMg - tf8jILj/JCC6/yUgvf8mIb//JiHD/ychxf8oIsf/KSPK/yojzP8qJM7/KyPS/1ZT2/+sq+v/7u31//f3 - 9//5+fn/+vr6//r6+v/7+/v//Pz8//7+/v///////////////////////v7+//7+/v/8/Pz//Pz8//v7 - +//6+vr/+fn5/7W17/9RTd7/LSTX/ywk1P8rI9L/KiTQ/yojzf8pI8v/KCLJ/ycixv8mIcP/JiLA/yUh - vv8kILz/IyC4/yMgtf8iH7P/IR+w/yAerv8gH6v/Hx6p/x4dpf8dHaP/HR2i/xwdn/8cHZz/GxyT/4CC - p/+vr6//rq6u/62trf+srKz/q6ur/6mpqf+oqKj/p6en/6ampv+lpaX/pKSk/6SkpP+jo6P/oaGh/6Oj - o/+srKz/rq6u/2ZmZn0AAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAoGBgYqk5OT2qioqP+enp7/mZmZ/5qamv+ampr/m5ub/5yc - nP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ojo/+kpKT/paWl/6enp/+oqKj/qamp/6ysrP+SkqD/Hh5p/xkZ - ev8cHJX/Hh2j/x8ep/8gHqv/IB6s/yEer/8iH7L/IyC1/yMguP8kILv/JSC9/yYhv/8mIcP/JyLF/ygi - yf8pI8v/KiPM/yokzv8rI9L/LCTU/y0k1/8zKtn/ZGHi/7Cu8P/z8vr//Pz8//z8/P/+/v7///////// - /////////////////////////v7+//7+/v/8/Pz/xsX1/4J/6v9AOt//Liba/y4l2f8tJNf/LCTU/ysj - 0v8qJND/KiPN/ykjy/8oIsn/JyLG/yYhw/8mIsD/JSG+/yQhvP8jILj/IyC1/yIfs/8hH7D/IB6u/yAf - q/8fHqn/Hh2l/x0dpP8dHaL/HB2f/xwdnP8bG5P/enym/7Kysv+wsLD/r6+v/66urv+srKz/q6ur/6mp - qf+oqKj/qKio/6enp/+mpqb/paWl/6SkpP+jo6P/qamp/7Kysv+ZmZnbBgYGKgAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAA - ABVmZmZ8qamp/qenp/+dnZ3/m5ub/5ycnP+dnZ3/np6e/5+fn/+goKD/oaGh/6Ghof+jo6P/paWl/6am - pv+np6f/qKio/6urq/+srKz/rq6u/6+vr/+Dg5v/Ghpq/xoafv8dHZf/Hx6k/yAeq/8gHq3/IR6v/yIf - sv8jILX/IyC4/yQgu/8lIL3/JiG//yYhw/8nIsX/KCLJ/ykjy/8qI83/KiTO/ysj0v8sJNT/LSTX/y4l - 2P8uJtr/Libd/zQs3/9VUOX/dnTr/5yZ8P+ioPP/srD1/8/O+f+sq/T/oqDz/5+d8/93dO3/U03m/zcv - 4v8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0k1/8sJNT/LCPS/ysk0P8qI87/KiPL/ykiyf8oIsb/JyHD/yYi - wP8lIb7/JCG8/yMguP8jILX/IiC0/yIfsP8hHq7/IB+p/x8epf8fHaX/Hh2k/x0dov8dHZ//HB2c/xsb - lP91eKX/tLS0/7Kysv+wsLD/r6+v/66urv+tra3/rKys/6urq/+pqan/qKio/6enp/+mpqb/pqam/6en - p/+wsLD/sbGx/mtra3sAAAAVAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACgAAACeVlZXXra2t/6SkpP+dnZ3/nZ2d/56e - nv+fn5//oKCg/6Ghof+jo6P/pKSk/6Wlpf+mpqb/qKio/6mpqf+rq6v/ra2t/66urv+vr6//srKy/7Oz - s/91dpb/GBlr/xoagP8eHZj/Hx6m/yAerf8hHq//Ih+y/yMgtf8jILj/JCC7/yUhvv8mIr//JiHD/yci - xf8oIsn/KSPL/yojzf8rJND/KyPS/ywk1P8tJNf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm - 4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywk - 1P8sI9L/KyTQ/yojzv8qI8v/KSLJ/ygixv8nIcP/JiLC/yYhvv8lIbz/JCC4/yMhtf8iILT/Ih+v/yEf - qf8fH5r/HR2T/x4dmf8eHaH/HR2i/x0dn/8cHZ3/GxuV/2tupP+1tbX/tLS0/7Ozs/+ysrL/sLCw/6+v - r/+tra3/rKys/6ysrP+rq6v/qamp/6ioqP+oqKj/ra2t/7W1tf+dnZ3XBgYGJwAAAAoAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAADAAAAE2BgYGqtra3+ra2t/6Ojo/+fn5//oKCg/6Ghof+jo6P/o6Oj/6Wlpf+mpqb/p6en/6io - qP+pqan/rKys/62trf+urq7/sLCw/7Kysv+0tLT/tbW1/7e3t/9tb5X/GBlr/xsbgP8eHZn/IB+p/yEe - sP8iH7L/IyC1/yMguP8kIbv/JSG+/yYiwP8mIcP/JyLF/ykiyf8qI8v/KiPN/ysk0P8rI9L/LCTU/y0l - 1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm - 4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCTU/ywj0v8rI9H/KiPO/yojy/8pIsn/KCLG/ych - xP8mIsL/JiG+/yUhvP8kILj/IyC2/yIgsv8hIKb/Hh2V/xwcfv8aG3X/GxuB/x0dlP8dHZ//HR2f/xwd - nf8bG5X/Zmmi/7e3t/+2trb/tLS0/7Ozs/+ysrL/sLCw/6+vr/+urq7/ra2t/6ysrP+rq6v/qamp/6ys - rP+2trb/tra2/mZmZmsAAAATAAAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAHAAAAH5OTk8Czs7P/q6ur/6Oj - o/+hoaH/o6Oj/6SkpP+lpaX/pqam/6enp/+oqKj/q6ur/6ysrP+tra3/r6+v/7CwsP+ysrL/tLS0/7W1 - tf+3t7f/urq6/7u7u/9vcZf/Ghtt/xsbgP8fHpj/IR+q/yIfsv8jILX/IyC4/yUhu/8mIb7/JiLA/ych - w/8oIsX/KSLJ/yojy/8qI83/KyTQ/ysj0v8sJNT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm - 4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l - 1/8sJNT/LCPS/ysj0f8qI87/KiPL/ykiyf8oIsb/JyHE/yYiwv8mIb7/JSG8/yQguP8jIbL/IR+k/x8d - jv8cG3n/HyBu/01Oh/8aG23/Ght7/xwcj/8dHZr/HB2c/xwclv9fY6H/uLi4/7e3t/+2trb/tbW1/7S0 - tP+zs7P/srKy/7CwsP+vr6//ra2t/62trf+tra3/tbW1/7y8vP+bm5vAAAAAHwAAAAcAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAIAAAAOR0dHS62trfK0tLT/qamp/6Ojo/+lpaX/pqam/6enp/+oqKj/qamp/6ur - q/+srKz/rq6u/6+vr/+wsLD/s7Oz/7S0tP+2trb/t7e3/7q6uv+7u7v/vb29/7+/v/+CgqH/HR1u/xsb - fP8fHZX/ISCp/yMhtP8kILj/JSG7/yYhvv8mIsD/JyHE/ygixf8pIsn/KiPL/yojzf8rJND/KyPS/ywk - 1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm - 4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdn/LSXX/ywl1P8sJNP/KyPR/yojzv8qI8v/KSLJ/ygi - xv8nIcT/JiLC/yYhvv8lIbr/IyCy/yEfoP8eHYn/HBt1/zM0e/+qqrr/ycnJ/4WGpP8dHmz/GRp2/xwc - i/8cHZj/HByW/1peoP+7u7v/urq6/7e3t/+2trb/tbW1/7S0tP+zs7P/srKy/7CwsP+vr6//rq6u/7Oz - s/+8vLz/tbW18kpKSksAAAAOAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAUAAAAWfn5+jbi4 - uP+zs7P/qKio/6ampv+np6f/qKio/6mpqf+rq6v/ra2t/66urv+vr6//sLCw/7Ozs/+0tLT/tra2/7e3 - t/+6urr/u7u7/729vf+/v7//wsLC/8TExP+Tla3/IyVx/xwbef8fHY7/IiCl/yQgtP8lIbr/JiG+/yYi - wP8nIcT/KCLF/ykiyf8qI8v/KiPN/ysk0P8rJNP/LCXU/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m - 4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l - 2f8tJdf/LCXU/ywk0/8rI9H/KiPO/yojy/8pIsn/KCLH/ychxP8mIsL/JiG8/yQhsP8iH5v/Hh2D/x0c - c/9dXpT/yMjL/83Nzf/Kysr/ycnJ/5SVrP8hJG3/GRpz/xsch/8bHJD/UFOc/7y8vP+7u7v/urq6/7i4 - uP+3t7f/tbW1/7S0tP+zs7P/srKy/7CwsP+zs7P/u7u7/8HBwf+FhYWNAAAAFgAAAAUAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAkHBwcjpKSkzry8vP+ysrL/qamp/6ioqP+rq6v/rKys/62t - rf+urq7/r6+v/7Kysv+zs7P/tLS0/7a2tv+3t7f/urq6/7u7u/+9vb3/v7+//8LCwv/Dw8P/xcXF/8jI - yP+ysb7/OzyA/x0bdv8fHon/Ih+g/yQhsP8mIbz/JiLA/ychxP8oIsb/KSLJ/yojy/8qI83/KyTQ/ysk - 0/8sJdT/LSXX/y4l2P8uJtr/Libd/y8l3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm - 5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m3f8uJtr/LiXZ/y0l1/8sJdT/LCTT/ysk0f8qJM7/KiPL/yki - yf8oIsf/JyHD/yYhvP8kIKz/IR+V/x8cgP8nJ3j/kpSy/9HR0f/Q0ND/zs7O/83Nzf/Kysr/ycnJ/6Ok - s/8nKW7/GBlv/xobgP9JTJb/vr6+/729vf+7u7v/urq6/7i4uP+3t7f/tra2/7W1tf+0tLT/tLS0/7y8 - vP/Dw8P/qqqqzgcHByMAAAAJAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA - AA1MTExJtLS07ry8vP+ysrL/rKys/6ysrP+tra3/rq6u/7CwsP+ysrL/s7Oz/7W1tf+2trb/t7e3/7q6 - uv+7u7v/vb29/7+/v//BwcH/w8PD/8XFxf/IyMj/ycnJ/8vLy//Jycv/YWOW/x0cc/8eHYL/ISCV/yQg - q/8lIbj/JyHC/ygixv8pIsn/KiPL/yokzf8rJND/KyTT/ywl1P8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m - 3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m - 2v8uJdn/LSXX/ywl1P8sJNP/KyTR/yokzv8qI8v/KSLJ/ygiw/8mIbb/IyCk/yEejP8fHXv/QkSJ/8DB - y//V1dX/1NTU/9HR0f/Pz8//zs7O/8vLy//Kysr/yMjI/66vuv8vMnP/GBlq/0BDhv+/v7//vr6+/729 - vf+8vLz/urq6/7i4uP+3t7f/tra2/7a2tv+7u7v/xMTE/7u7u+5QUFBJAAAADQAAAAIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABN2dnZ0v7+//by8vP+zs7P/rq6u/6+v - r/+wsLD/srKy/7Ozs/+1tbX/tra2/7i4uP+6urr/u7u7/729vf+/v7//wcHB/8PDw//FxcX/x8fH/8nJ - yf/Ly8v/zs7O/9DQ0P/R0dH/m5u3/zAvfv8fHXv/IR6L/yMgn/8lIrD/JyK+/ykix/8qI8v/KiTN/ysk - 0P8rJNP/LCXW/y0l1/8uJdj/Liba/y4m3f8vJd7/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm - 5P8wJuT/MCbj/zAm4f8vJuH/Lybg/y8l3v8uJt3/Liba/y4l2f8tJdf/LCXW/ywk0/8rJNH/KiTO/yok - yf8oI73/JSKt/yMgl/8gH4X/IR94/3N0pv/X19r/2dnZ/9bW1v/V1dX/09PT/9HR0f/Pz8//zs7O/8vL - y//Kysr/yMjI/7e4v/85PHb/NTh1/8LCwv+/v7//vr6+/729vf+8vLz/urq6/7i4uP+3t7f/u7u7/8TE - xP/Gxsb9e3t7dAAAABMAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABwAAABmWlpakw8PD/7y8vP+zs7P/sLCw/7Kysv+0tLT/tbW1/7a2tv+4uLj/urq6/7u7 - u/+9vb3/v7+//8HBwf/Dw8P/xMTE/8fHx//Jycn/y8vL/83Nzf/Pz8//0dHR/9TU1P/W1tb/0NHV/2xs - oP8hIXn/IB6B/yEfjv8lIaL/JyK0/ygkwP8qI8r/KyTO/ysk0/8sJdb/LSXX/y4l2P8uJtr/Libd/y8l - 3v8vJt//Lybg/zAm4f8wJuP/MCbj/zAm5P8wJuT/MCbk/zAm5P8wJuP/MCbh/y8m4f8vJuD/LyXe/y4m - 3f8uJtr/LiXZ/y0l1/8sJdb/LCTS/yokzP8pI8D/JyKz/yUhn/8iH4v/IB59/0FAi/+ztMn/39/f/9zc - 3P/a2tr/2dnZ/9bW1v/U1NT/09PT/9DQ0P/Pz8//zc3N/8vLy//Kysr/yMjI/8C/w/9kZ4//w8PD/8LC - wv+/v7//vr6+/729vf+8vLz/u7u7/729vf/ExMT/y8vL/52dnaUAAAAZAAAABwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAACg0NDSWurq7QxMTE/7y8 - vP+1tbX/tLS0/7W1tf+2trb/uLi4/7q6uv+7u7v/vb29/76+vv/BwcH/w8PD/8TExP/Hx8f/yMjI/8rK - yv/Nzc3/z8/P/9DQ0P/T09P/1dXV/9fX1//a2tr/3Nzc/7q7zP9ZWZj/Hx16/yEfg/8jH5L/JiGh/ycj - sv8pJL7/KiTK/ywl0v8tJdf/LiXY/y4m2v8uJt3/LyXe/y8m3/8vJuD/MCbh/zAm4/8wJuP/MCbk/zAm - 5P8wJuT/MCbk/zAm4/8wJuH/Lybh/y8m4P8vJd7/Libd/y4m2v8uJdj/LCTT/ysly/8qJL//KCKy/yYh - oP8kII7/Ih+D/zIyhf+Wlrv/5OTk/+Hh4f/g4OD/3d3d/9vb2//a2tr/19fX/9bW1v/U1NT/0dHR/9DQ - 0P/Pz8//zc3N/8vLy//Jycn/yMjI/8fHx//ExMT/w8PD/8LCwv+/v7//vr6+/729vf++vr7/xMTE/83N - zf+0tLTRDQ0NJgAAAAoAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAACAAAADU5OTkG6urrox8fH/729vf+2trb/tra2/7i4uP+6urr/u7u7/729 - vf++vr7/wcHB/8LCwv/ExMT/x8fH/8jIyP/Kysr/y8vL/87Ozv/Q0ND/09PT/9XV1f/W1tb/2dnZ/9vb - 2//d3d3/4ODg/+Hh4f/AwNL/X2Cf/yMhff8iIIT/JCCO/yUhmv8nIqv/KSO4/ysjw/8sJMr/LSXR/y4l - 2f8uJtv/Lybf/y8m4P8wJuH/MCbj/zAm4/8wJuT/MCbk/zAm5P8wJuT/MCbj/zAm4f8vJuH/Lybe/y4l - 2P8tJdL/LCXL/ywjxP8qI7f/KCOp/yYhmv8kIY7/IyCF/ywrhf+AgLP/4ODl/+bm5v/l5eX/4uLi/+Dg - 4P/f39//3Nzc/9vb2//Z2dn/19fX/9XV1f/U1NT/0dHR/9DQ0P/Ozs7/zc3N/8vLy//Jycn/yMjI/8fH - x//ExMT/w8PD/8LCwv/BwcH/v7+//8XFxf/Ozs7/wsLC6FJSUkEAAAANAAAAAgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEHBw - cFvDw8P0ycnJ/7+/v/+6urr/urq6/7u7u/+9vb3/vr6+/8HBwf/CwsL/xMTE/8XFxf/IyMj/ycnJ/8vL - y//Ozs7/0NDQ/9HR0f/U1NT/1tbW/9fX1//a2tr/3Nzc/9/f3//h4eH/4uLi/+Xl5f/n5+f/0NDd/3t8 - sP82NIr/IyCD/yQgi/8lIZP/JyKc/ygipv8qJLP/KyW9/ywkxP8tJcr/LSXO/y4l0v8uJdT/LiXU/y4l - 1P8uJdT/LiXU/y4l0v8uJdH/LiXN/y0ly/8sJMT/KyS7/yojsv8oI6X/KCKb/yYhk/8kIYr/JCCE/0JB - kv+Vk8D/5OPo/+vr6//o6Oj/5+fn/+Xl5f/k5OT/4eHh/+Dg4P/d3d3/3Nzc/9ra2v/Z2dn/1tbW/9XV - 1f/T09P/0dHR/8/Pz//Ozs7/zc3N/8rKyv/Jycn/yMjI/8fHx//ExMT/w8PD/8PDw//IyMj/z8/P/8vL - y/RycnJbAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAEoSEhG7Jycn6y8vL/8HBwf+8vLz/vb29/76+ - vv/BwcH/wsLC/8TExP/FxcX/yMjI/8nJyf/Ly8v/zc3N/8/Pz//R0dH/09PT/9XV1f/X19f/2tra/9vb - 2//d3d3/4ODg/+Li4v/k5OT/5ubm/+jo6P/q6ur/7Ozs/+/v7/+1tNH/bGyr/zg3j/8kIYb/JSGK/yYh - kf8nIpb/JyKa/ygjoP8pJKb/KiSs/yskr/8rJK//KySw/ysksP8qI67/KiSs/ykjpv8pI6T/KCOf/ygj - m/8nIpX/JiGR/yUiiv8lIIb/RUOX/35+tv/Ozd//8fHx/+/v7//t7e3/6+vr/+rq6v/o6Oj/5ubm/+Xl - 5f/i4uL/4eHh/9/f3//d3d3/29vb/9ra2v/X19f/1tbW/9TU1P/T09P/0NDQ/8/Pz//Ozs7/zc3N/8rK - yv/Jycn/yMjI/8XFxf/FxcX/ycnJ/9PT0//S0tL6h4eHbwAAABMAAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAFAAAAE42NjXnOzs78zs7O/8XFxf+/v7//wcHB/8LCwv/Dw8P/xcXF/8fHx//Jycn/y8vL/83N - zf/Pz8//0NDQ/9PT0//V1dX/1tbW/9nZ2f/a2tr/3Nzc/9/f3//h4eH/4uLi/+Xl5f/n5+f/6urq/+vr - 6//t7e3/7+/v//Hx8f/y8vL/9fX1/9nY6P+bmsj/aWeu/0dFm/8qJ4v/JiKJ/yYii/8mIY//JyKR/yci - kf8nIpL/JyKS/ycikf8nIo//JiGN/yYii/8mIon/MS6P/1NQo/95d7f/rKvS/+bm7v/29vb/9fX1//Ly - 8v/x8fH/8PDw/+3t7f/s7Oz/6+vr/+jo6P/n5+f/5eXl/+Tk5P/h4eH/4ODg/93d3f/c3Nz/29vb/9nZ - 2f/X19f/1dXV/9TU1P/T09P/0NDQ/8/Pz//Ozs7/y8vL/8rKyv/Jycn/ycnJ/83Nzf/U1NT/1NTU/JGR - kXkAAAATAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAGAAAAFJmZmX3Pz8/50dHR/8jI - yP/ExMT/w8PD/8XFxf/Hx8f/ycnJ/8rKyv/Nzc3/zs7O/9DQ0P/R0dH/1NTU/9bW1v/X19f/2tra/9zc - 3P/d3d3/4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/7Ozs/+3t7f/w8PD/8fHx//T09P/19fX/9vb2//f3 - 9//5+fn/+vr6//v7+//f3u7/zMvl/5+dzv+cm83/nJvN/5ybzv+cm87/nJvO/7u63f/My+X/zMvl//n5 - +//7+/v/+/v7//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Hx8f/w8PD/7+/v/+3t7f/r6+v/6urq/+jo - 6P/m5ub/5eXl/+Li4v/h4eH/39/f/93d3f/c3Nz/2tra/9nZ2f/W1tb/1dXV/9TU1P/R0dH/0NDQ/8/P - z//Nzc3/y8vL/8vLy//Q0ND/19fX/9XV1fmZmZl9AAAAFAAAAAYAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAAFAAAAE46OjnHS0tL11dXV/8vLy//Hx8f/x8fH/8jIyP/Kysr/y8vL/87O - zv/Pz8//0dHR/9TU1P/V1dX/19fX/9nZ2f/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/n5+f/6Ojo/+vr - 6//s7Oz/7+/v//Dw8P/y8vL/9PT0//X19f/29vb/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//// - //////////////////////////////7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//n5+f/39/f/9vb2//X1 - 9f/09PT/8vLy//Hx8f/v7+//7e3t/+zs7P/q6ur/6Ojo/+fn5//l5eX/5OTk/+Li4v/g4OD/39/f/9zc - 3P/b29v/2tra/9fX1//W1tb/1dXV/9PT0//R0dH/0NDQ/8/Pz//Pz8//09PT/9ra2v/Y2Nj1kJCQcQAA - ABMAAAAFAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAAEYKC - gl7Ozs7s19fX/9DQ0P/Kysr/ycnJ/8vLy//Nzc3/z8/P/9DQ0P/T09P/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/d3d3/4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+3t7f/v7+//8fHx//Ly8v/09PT/9vb2//f3 - 9//5+fn/+vr6//v7+//8/Pz//Pz8//7+/v/+/v7//////////////////////////////////v7+//7+ - /v/8/Pz//Pz8//v7+//6+vr/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7Ozs/+vr - 6//q6ur/5+fn/+bm5v/l5eX/4uLi/+Hh4f/g4OD/3d3d/9zc3P/a2tr/2dnZ/9fX1//W1tb/1NTU/9PT - 0//R0dH/0dHR/9bW1v/d3d3/09PT7IKCgl4AAAARAAAABQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAEAAAAD3d3d1HOzs7k3Nzc/9TU1P/Pz8//zc3N/8/P - z//Q0ND/0dHR/9TU1P/W1tb/19fX/9ra2v/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+vr - 6//s7Oz/7e3t//Dw8P/x8fH/8vLy//X19f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+ - /v/////////////////////////////////+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f3 - 9//29vb/9fX1//T09P/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+Xl5f/k5OT/4uLi/+Dg - 4P/f39//3d3d/9vb2//a2tr/2dnZ/9bW1v/V1dX/1NTU/9bW1v/a2tr/4ODg/9XV1eR6enpRAAAADwAA - AAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAEAAAAEAAAADV9fXzvHx8fL4ODg/9ra2v/T09P/0dHR/9HR0f/U1NT/1dXV/9bW1v/Z2dn/2tra/9zc - 3P/f39//4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+3t7f/v7+//8PDw//Ly8v/09PT/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v//Pz8//z8/P/+/v7//v7+//////////////////////////////////7+ - /v/+/v7//Pz8//z8/P/7+/v/+vr6//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Ly8v/x8fH/7+/v/+3t - 7f/s7Oz/6+vr/+rq6v/n5+f/5ubm/+Xl5f/i4uL/4eHh/+Dg4P/d3d3/3Nzc/9vb2//a2tr/19fX/9fX - 1//a2tr/39/f/+Tk5P/Ly8vLY2NjOwAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAAAACiYmJiG1tbWi5OTk/9/f - 3//Z2dn/1dXV/9XV1f/W1tb/19fX/9ra2v/b29v/3d3d/9/f3//h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq - 6v/s7Oz/7e3t/+/v7//x8fH/8vLy//T09P/19fX/9vb2//n5+f/5+fn/+vr6//v7+//8/Pz//Pz8//7+ - /v/+/v7//////////////////////////////////v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5 - +f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs7P/r6+v/6urq/+jo6P/n5+f/5eXl/+Tk - 5P/i4uL/4ODg/9/f3//d3d3/3Nzc/9ra2v/b29v/3d3d/+Tk5P/n5+f/ubm5oiYmJiEAAAAKAAAAAgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAABwAAABOZmZlu2tra7OTk5P/d3d3/2tra/9nZ2f/Z2dn/29vb/9zc - 3P/f39//4ODg/+Li4v/k5OT/5ubm/+fn5//q6ur/6+vr/+zs7P/v7+//8PDw//Hx8f/y8vL/9fX1//b2 - 9v/39/f/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v////////////////////////////// - ///+/v7//v7+//7+/v/8/Pz/+/v7//v7+//6+vr/+fn5//f39//29vb/9fX1//X19f/y8vL/8fHx//Dw - 8P/v7+//7e3t/+zs7P/r6+v/6Ojo/+fn5//m5ub/5eXl/+Li4v/h4eH/4ODg/9/f3//f39//39/f/+Li - 4v/n5+f/3d3d7Jubm24AAAATAAAABwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AA1vb29Az8/Px+jo6P/k5OT/4ODg/9zc3P/c3Nz/3d3d/+Dg4P/h4eH/4uLi/+Xl5f/m5ub/6Ojo/+rq - 6v/r6+v/7e3t/+/v7//w8PD/8fHx//T09P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//7+ - /v/+/v7//v7+//////////////////////////////////7+/v/+/v7//v7+//z8/P/7+/v/+/v7//r6 - +v/5+fn/+fn5//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/t7e3/7Ozs/+vr6//q6ur/6Ojo/+bm - 5v/l5eX/5OTk/+Li4v/h4eH/4eHh/+Tk5P/o6Oj/6+vr/9DQ0Mdvb29AAAAADQAAAAQAAAABAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAAAAkAAAAZqqqqft7e3unq6ur/5eXl/+Li - 4v/g4OD/4ODg/+Li4v/k5OT/5ubm/+fn5//o6Oj/6+vr/+zs7P/t7e3/7+/v//Hx8f/y8vL/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+/v7//z8/P/8/Pz//v7+//7+/v////////////////////////////// - /////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+vr6//r6+v/5+fn/9/f3//b29v/19fX/9PT0//Ly - 8v/x8fH/8PDw/+/v7//t7e3/7Ozs/+rq6v/o6Oj/5+fn/+bm5v/l5eX/5eXl/+Xl5f/o6Oj/7Ozs/+Dg - 4OmsrKx+AAAAGQAAAAkAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAANYmJiNMbGxqzp6en86+vr/+fn5//l5eX/5OTk/+Xl5f/m5ub/5+fn/+rq - 6v/r6+v/7Ozs/+/v7//w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/7+/v//Pz8//z8 - /P/+/v7//v7+///////////////////////////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7 - +//6+vr/+vr6//n5+f/39/f/9vb2//X19f/09PT/8vLy//Hx8f/w8PD/7+/v/+3t7f/s7Oz/6+vr/+rq - 6v/o6Oj/5+fn/+fn5//r6+v/7e3t/+vr6/zIyMisYmJiNAAAAA0AAAAEAAAAAQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAAHAAAAEZeX - l1nZ2dnO7+/v/+3t7f/q6ur/5+fn/+jo6P/o6Oj/6urq/+zs7P/t7e3/7+/v//Dw8P/x8fH/9PT0//X1 - 9f/29vb/9/f3//n5+f/6+vr/+vr6//v7+//8/Pz//Pz8//7+/v/+/v7///////////////////////// - //////////////7+/v/+/v7//v7+//z8/P/8/Pz/+/v7//r6+v/6+vr/+fn5//f39//29vb/9vb2//X1 - 9f/09PT/8vLy//Hx8f/w8PD/7+/v/+zs7P/r6+v/6+vr/+vr6//t7e3/8PDw//Hx8f/b29vOl5eXWQAA - ABEAAAAHAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAACQAAABWoqKht3t7e0vLy8v/w8PD/7e3t/+3t - 7f/s7Oz/7Ozs/+3t7f/w8PD/8fHx//Ly8v/09PT/9fX1//b29v/39/f/+fn5//r6+v/6+vr/+/v7//z8 - /P/8/Pz//v7+//7+/v///////////////////////////////////////v7+//7+/v/+/v7//Pz8//z8 - /P/7+/v/+/v7//r6+v/5+fn/9/f3//f39//29vb/9fX1//T09P/y8vL/8fHx//Dw8P/v7+//7+/v/+/v - 7//w8PD/8vLy//T09P/f39/Sra2tbQAAABUAAAAJAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAAAABAAAAAoKCgoZsLCwb9zc3Mn19fX/9PT0//Ly8v/x8fH/8fHx//Hx8f/x8fH/8vLy//T0 - 9P/19fX/9vb2//f39//5+fn/+vr6//v7+//7+/v//Pz8//z8/P/+/v7//v7+//////////////////// - ///////////////////+/v7//v7+//7+/v/8/Pz//Pz8//v7+//7+/v/+vr6//n5+f/5+fn/9/f3//b2 - 9v/19fX/9PT0//Ly8v/y8vL/8fHx//Ly8v/09PT/9fX1//b29v/e3t7JsLCwbwoKChkAAAAKAAAABAAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAKAAAAFZeX - l1TS0tKr6Ojo5vb29v/29vb/9fX1//T09P/19fX/9fX1//b29v/29vb/9/f3//n5+f/6+vr/+/v7//v7 - +//8/Pz//Pz8//7+/v/+/v7///////////////////////////////////////7+/v/+/v7//v7+//z8 - /P/8/Pz/+/v7//v7+//6+vr/+fn5//n5+f/39/f/9vb2//X19f/29vb/9vb2//b29v/39/f/9/f3/+jo - 6ObS0tKsl5eXVAAAABUAAAAKAAAABAAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAACAAAABwAAAA5MTEwor6+vbdjY2Lry8vL1+fn5//n5 - +f/5+fn/+fn5//n5+f/6+vr/+fn5//r6+v/7+/v/+/v7//z8/P/+/v7//v7+//7+/v////////////// - /////////////////////////v7+//7+/v/+/v7//Pz8//z8/P/7+/v/+/v7//r6+v/6+vr/+vr6//n5 - +f/5+fn/+fn5//r6+v/6+vr/8/Pz9djY2Lqvr69tTExMKAAAAA4AAAAHAAAAAgAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAQAAAAIAAAAEHZ2djbBwcGA29vbuu7u7uf7+/v/+/v7//v7+//7+/v/+/v7//z8 - /P/8/Pz//Pz8//7+/v/+/v7//v7+///////////////////////////////////////+/v7//v7+//7+ - /v/8/Pz//Pz8//z8/P/8/Pz/+/v7//v7+//7+/v/+/v7//v7+//u7u7n3NzcusHBwYB2dnY2AAAAEAAA - AAgAAAAEAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAA - AAkAAAAQaWlpLpqamlHFxcWK4eHhwOvr69/z8/Pw/v7+//7+/v/+/v7//v7+//7+/v/+/v7///////// - //////////////////////////////7+/v/+/v7//v7+//7+/v/+/v7//v7+//7+/v/z8/Pw6+vr3+Hh - 4cDFxcWKmpqaUWlpaS4AAAAQAAAACQAAAAQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAABgAAAAoAAAAOCgoKGIOD - gzqurq5fvb29ecvLy5Xd3d2u5eXlxenp6dHw8PDd8PDw5vn5+fT5+fn0+fn59Pn5+fTw8PDm8PDw3enp - 6dHl5eXF3d3drsvLy5W9vb15rq6uX4ODgzoKCgoYAAAADgAAAAoAAAAGAAAAAwAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAABAAAAAwAAAAYAAAAIAAAACgAAAA0AAAAPAAAAEAAA - ABEAAAATAAAAEwAAABQAAAAUAAAAEwAAABMAAAARAAAAEAAAAA8AAAANAAAACgAAAAgAAAAGAAAAAwAA - AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA/////////////////////////////+AAAAf///////////////4AAAAAf//////////////w - AAAAAA//////////////gAAAAAAB/////////////AAAAAAAAD////////////AAAAAAAAAP//////// - ///AAAAAAAAAA///////////AAAAAAAAAAD//////////gAAAAAAAAAAf/////////gAAAAAAAAAAB// - ///////gAAAAAAAAAAAH////////wAAAAAAAAAAAA////////4AAAAAAAAAAAAH///////8AAAAAAAAA - AAAA///////8AAAAAAAAAAAAAD//////+AAAAAAAAAAAAAAf//////AAAAAAAAAAAAAAD//////gAAAA - AAAAAAAAAAf/////wAAAAAAAAAAAAAAD/////4AAAAAAAAAAAAAAAf////8AAAAAAAAAAAAAAAD///// - AAAAAAAAAAAAAAAA/////gAAAAAAAAAAAAAAAH////wAAAAAAAAAAAAAAAA////4AAAAAAAAAAAAAAAA - H///+AAAAAAAAAAAAAAAAB////AAAAAAAAAAAAAAAAAP///gAAAAAAAAAAAAAAAAB///4AAAAAAAAAAA - AAAAAAf//8AAAAAAAAAAAAAAAAAD//+AAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAH//wAAAAAA - AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAf/wA - AAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAP/gAAAAAAAAAAAAAAAAA - AB/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAA - AAAAAAAP8AAAAAAAAAAAAAAAAAAAD+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAA - AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA - AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA - AAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAA - AAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAA - AAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AA - AAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAA - AAPAAAAAAAAAAAAAAAAAAAADwAAAAAAAAAAAAAAAAAAAA8AAAAAAAAAAAAAAAAAAAAPAAAAAAAAAAAAA - AAAAAAADwAAAAAAAAAAAAAAAAAAAA+AAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAH4AAAAAAA - AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAfwAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAD/AA - AAAAAAAAAAAAAAAAAA/4AAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA - AB/8AAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAD/+AAAAAAAAAAAA - AAAAAAB//gAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAD//4AAAAAA - AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAf//wAAAAAAAAAAAAAAAAAP//+AAAAAAAAAAAAAAAAAH///g - AAAAAAAAAAAAAAAAB///8AAAAAAAAAAAAAAAAA////gAAAAAAAAAAAAAAAAf///4AAAAAAAAAAAAAAAA - H////AAAAAAAAAAAAAAAAD////4AAAAAAAAAAAAAAAB/////AAAAAAAAAAAAAAAA/////wAAAAAAAAAA - AAAAAP////+AAAAAAAAAAAAAAAH/////wAAAAAAAAAAAAAAD/////+AAAAAAAAAAAAAAB//////wAAAA - AAAAAAAAAA//////+AAAAAAAAAAAAAAf//////wAAAAAAAAAAAAAP///////AAAAAAAAAAAAAP////// - /4AAAAAAAAAAAAH////////AAAAAAAAAAAAD////////8AAAAAAAAAAAD/////////gAAAAAAAAAAB// - ///////+AAAAAAAAAAB//////////wAAAAAAAAAA///////////AAAAAAAAAA///////////8AAAAAAA - AA////////////wAAAAAAAA/////////////gAAAAAAB//////////////AAAAAAD//////////////+ - AAAAAH///////////////+AAAAf///////////////////////////////////////////////////// - //////////////////8oAAAAMAAAAGAAAAABACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAFAAAACwAAAA8AAAARAAAAEQAAAA8AAAALAAAABQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAUAAAAaAAAAPAoKCmAgICCENDQ0nEFBQatLS0uzS0tLs0FBQasyMjKcICAghAoK - CmAAAAA8AAAAGgAAAAUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAQAAAAPx8fH4FMTEy/dnZ255qamvu7u7v/0NDQ/+Dg4P/p6en/6enp/+Dg - 4P/S0tL/vb29/5ycnPt3d3fnTU1Nvx8fH4EAAAA/AAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAEk0NDSkcXFx566urv/c3Nz/9PT0//z8/P////////////// - ///////////////////////////////////29vb/4ODg/7Gxsf9zc3PnNjY2pAAAAEkAAAAOAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAwKioqlnR0dOu9vb3/5ubm/+/v7//y8vL/8/Pz//b2 - 9v/5+fn//Pz8//7+/v////////////7+/v/9/f3/+/v7//n5+f/39/f/9fX1//X19f/r6+v/wcHB/3Z2 - duwsLCyWAAAAMAAAAAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwoKCl1VVVXSpqam/9vb2//k5OT/5ubm/+np - 6f/t7e3/8fHx//X19f/5+fn/+/v7//7+/v////////////7+/v/9/f3/+/v7//j4+P/29vb/8fHx/+7u - 7v/r6+v/6urq/+Hh4f+rq6v/WFhY0g0NDV0AAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAATIiIif3Nzc/HCwsL/2NjY/9nZ - 2f/d3d3/4uLi/+fn5//s7Oz/8PDw//T09P/39/j/+/v7/////f///////////////v/9/fz/+vr6//j4 - +P/09PT/8PDw/+zs7P/o6Oj/5OTk/+Dg4P/g4OD/ycnJ/3h4ePEkJCR/AAAAEwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYqKiqRgoKC+sbG - xv/Ozs7/0dHR/9bW1v/a2tr/39/f/+Xl5f/q6un/8/Pw//z89f////r//f38//Dw/P/r6/z/6+v8//Dw - /P/3+Pz////8////+f/39/T/7+/u/+rq6v/m5ub/4eHh/9zc3P/Y2Nj/19fX/87Ozv+Hh4f6LS0tkQAA - ABYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAES8v - L5KGhob+wMDA/8fHxv/Ozsz/zc3N/9LS0v/X19j/3d3c/+rq5f/w8O7/1tXu/6mm6v98d+b/Xlfl/0tE - 5f9DO+b/RDvn/0tC5v9VTeX/cGrm/6Ge6//Y1/H/9fXy/+7u6v/j4+P/39/f/9ra2v/V1dX/0dHR/83N - zf/Jycn/jIyM/jAwMJIAAAARAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAGJycnen5+fvu5ubn/vb28/7W2vv+ys8n/0tLO/83Nzf/Y2NX/4+Pi/7Kx4P9jYNT/My3P/yQc - 0/8mHdj/KCDd/ysi4P8tI+L/LSPj/ywi4f8qId7/Jx3a/yUc1f80LdL/bWrZ/8TD5v/s7Of/3t7c/9bW - 1v/R0dH/zc3N/8nJyf/FxcX/wcHB/4aGhvspKSl6AAAABgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAASEhJRbW1t7q+vr/+0tLT/ubm4/6iotf84OqL/p6fL/9zc0//Gxtn/YV/J/yMe - v/8hG8X/KCHM/ywk0/8uJdn/Libe/y8m4f8wJuP/MCbk/zAm4v8vJt//LiXb/y0l1v8pIs//IRvI/ykl - xP95eNH/2Njg/9ra1f/Nzc3/ycnJ/8TExP+/v7//vb29/7e3t/9ycnLuEhISUQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVVVVXPoKCg/62trf+vr6//tbWz/6Slsf8hIpr/Kiqn/42N - yf89PLj/Gxi2/yUgv/8oIsb/KiPN/ywk0/8uJdn/Libf/y8m4/8wJuX/MCbm/zAm5P8vJuH/LiXc/y0l - 1v8rI9D/KSLJ/yUfw/8cGLn/SknA/7291//S0s7/xMTE/7+/v/+7u7v/uLi4/7a2tv+pqan/WFhYzwAA - ACUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABjY2NoyKior/pqam/6enp/+qqqr/sLCu/52e - rP8iI5v/Ghqi/xoZqP8eG6//IyC3/yUhv/8nIsb/KSPN/ywk1P8tJNj/KCDR/yQcxf8kG77/JBy+/yQb - v/8lHcn/KyLW/y0l1/8rI9H/KSLJ/ychw/8lIbv/HBmx/y8vsv+pqcz/ycnE/7q6uv+2trb/s7Oz/7Cw - sP+vr6//kZGR/zg4OIwAAAAGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQkJN2ZmZumenp7/oKCg/6Ki - ov+lpaX/q6up/5eXp/8fH5r/HByj/x8eqf8hHrD/IyC3/yUgvv8nIsf/KCLL/yIbvP8rJaj/Uk6r/399 - vP+bmsr/n57M/5eVx/9ua7b/OjWm/yIcsv8nIMr/KSLK/yYhwv8kIbv/IiCz/xsaqv8sK6r/qKnE/7y7 - t/+ysrL/rq6u/6urq/+pqan/pqam/2xsbOkJCQk3AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFPj4+lIqK - iv+ampr/m5ub/52dnf+goKD/pqak/4+Po/8dHZn/HByi/x8dqP8hHq//IyC3/yUgv/8iHLj/JyOe/2dl - qf/AwNP/8fHx/////f/////////////////9/fr/39/m/5KRvf80MKD/IRy6/yYhw/8kILr/Ih+z/yAe - rP8YF6P/PD2p/7W1vP+urqz/qamp/6ampv+jo6P/o6Oj/5KSkv9DQ0OUAAAABQAAAAAAAAAAAAAAAAAA - AAAAAAAoY2Nj4pSUlP+VlZX/lpaW/5mZmf+bm5v/oaGe/4aHnv8cHJn/HBui/x4dqP8gHa//Ih+3/yEd - vv9LSLj/sbHA/+Li3v/s7Or/8fHx//n5+f/+/v7///////z8/P/29vb/8fHv/+7u6f/Dw87/Skif/x4a - sP8kILv/Ih+z/yAerP8eHaX/FRWd/2Firf+xsa7/o6Oj/6Ghof+enp7/nZ2d/5ycnP9nZ2fiAAAAKAAA - AAAAAAAAAAAAAAAAAAAwMDBqfHx8/5GRkf+RkZH/kpKS/5SUlP+Wlpb/nJyZ/3t7lv8ZGZb/Ghqf/xwb - pf8eG6z/IB20/yAbuv9DP8n/vr7V/9zc1//i4uL/7e3t//f39//+/v7///////v7+//z8/P/6urq/+Dg - 4P/b29n/wcHF/0hGm/8dGrD/Ih+z/x8dq/8dHKT/Gxue/xwdmv+Mjqz/oqKe/5ycnP+ampr/mZmZ/5iY - mP+BgYH/MjIyagAAAAAAAAAAAAAAAAAAAAdRUVGtiYmJ/4yMjP+NjY3/jo6O/5CQkP+RkZH/mJiU/29w - jv8UFJD/FhWX/xkWnv8bF6X/HRis/x8as/8bFbn/OzW+/7a1zP/f39z/6enp//X19f/8/Pz///////n5 - +f/w8PD/5eXl/9nZ2f/Ozs7/yMjG/6mqsv8wLpn/Hhux/x8dq/8dHKT/HBye/xQVlv9LTaD/oaGf/5eX - l/+VlZX/lJSU/5OTk/+QkJD/VVVVrgAAAAgAAAAAAAAAAAAAACFjY2PdioqK/4iIiP+JiYn/ioqK/4uL - i/+NjY3/k5KQ/2lqg/8aG27/ISJz/yMjeP8lJH3/JyWB/yooh/8yMIz/MCyQ/1ZTn//IyM7/4+Ti//Hx - 8f/7+/v//v7+//j4+P/s7Oz/3t7e/9DQ0P/ExMT/urq6/7m5tP95eZz/HBqh/x8drP8dG6T/HBud/xkY - mP8gIpb/iYqc/5SUkv+RkZH/kJCQ/4+Pj/+QkJD/ZmZm3QAAACEAAAAAAAAAAB4eHkJvb2/3h4eH/4WF - hf+Ghob/h4eH/4eHh/+IiIj/ioqK/4WGiP9+foX/g4SJ/4aGi/+JiY7/jY2T/5KSmP+cnKD/pKSo/6ys - sv/CwsX/2dnZ/+vr6//7+/v//v7+//T09P/k5OT/09PT/8TExP+4uLj/r6+v/6ioqP+hoaD/OTiT/xsZ - qf8cG6P/Gxud/xoal/8UFZP/ZWaW/5KSjv+NjY3/i4uL/4qKiv+MjIz/c3Nz9yIiIkIAAAAAAAAAADo6 - OmV5eXn/hISE/4ODg/+EhIT/hISE/4WFhf+FhYX/hoaG/4eHh/+Kion/ioqK/4yMi/+Pj47/kpKQ/5WV - lP+ampn/oaGg/6qqqv+3t7f/ysrK/+Li4v/4+Pj//v7+/+7u7v/Y2Nj/xMTE/7W1tf+qqqr/oqKi/5yc - nP+dnZj/ZmaO/xoYof8cG6T/Gxud/xkal/8UFZP/Q0aQ/46Oiv+IiIj/iIiI/4eHh/+IiIj/fX19/zw8 - PGUAAAAAAAAAAEZGRn5+fn7/goKC/4GBgf+CgoL/goKC/4KCgv+CgoL/g4OD/4ODg/+EhIT/hISE/4WF - hf+Ghob/iIiI/4qKiv+NjY3/kpKS/5mZmf+jo6P/tLS0/9DQ0P/z8/P/+/v7/+Li4v/ExMT/sLCw/6Oj - o/+bm5v/lZWV/5KSkv+QkI//gYGJ/yUkmP8bGab/Gxqe/xkamf8UFpX/MTON/4eHh/+FhYX/hYWF/4SE - hP+FhYX/gYGB/0hISH4AAAAAAAAAAFBQUI6AgID/gICA/4CAgP+AgID/gICA/4CAgP9/f3//f39+/39/ - fv9/f3//gIB//4CAgP+CgoL/goKC/4ODg/+EhIT/hoaG/4mJif+Ojo7/mJiY/66urv/h4eH/9vb2/8TE - xP+lpaX/l5eX/5CQkP+MjIz/iYmJ/4iIiP+Ghob/h4eF/zQ0fv8REX3/FBR5/xMTdf8PEXH/IyVx/319 - gf+Dg4L/gYGB/4GBgf+BgYH/goKC/1VVVY0AAAAAAAAAAFdXV5SBgYH/fn5+/35+fv9+fn7/fn5+/4B/ - gP+NjpH/kJGV/5CQlP+QkJT/kZGV/4qKjP9+fn7/f39//39/f/9/f3//f39//39/f/+AgID/gYGB/4SE - hP+jo6P/u7u7/42Njf+FhYX/g4OD/4KCgv+BgYH/gICA/4CAgP+AgID/gICA/25uef9iYnT/Y2Nz/2Nj - c/9iYnL/ZmZz/319fv+AgH//f39//39/f/9/f3//gYGB/1dXV5QAAAAAAAAAAFtbW5SCgoL/fn5+/35+ - fv9+fn7/fn5+/3p6fv9AQ5H/NTec/zc5n/85OaL/Nzeo/1pam/+BgX3/f39//39/f/9/f3//f39//4CA - gP+CgoL/hYWF/46Ojv+7u7v/1tbW/6CgoP+Ojo7/iIiI/4aGhv+EhIT/g4OD/4KCgv+CgoL/gYGB/4OD - gv+FhYL/hISC/4SEgv+EhIL/g4OC/4GBgf+AgID/gICA/4CAgP+AgID/hISE/1tbW5MAAAAAAAAAAFlZ - WYuDg4P/f39//39/f/9/f3//gIB//3t7fv8kJoP/ERKQ/xUVlP8WFpj/FBOf/zw7nv+FhYP/goKC/4OD - g/+FhYX/h4eH/4yMjP+Tk5P/oKCg/7u7u//r6+v/+vr6/9HR0f+xsbH/oKCg/5eXl/+RkZH/jY2N/4uL - i/+JiYn/h4eH/4eHh/+Ghob/hYWF/4WFhf+EhIT/g4OD/4ODg/+Dg4P/goKC/4KCgv+CgoL/hoaG/1tb - W4sAAAAAAAAAAFZWVnmDg4P/gICA/4GBgf+BgYH/gYGB/4KCgP8wMoD/FBWR/xkZlf8aGpn/GRif/y0s - pf+Hh5H/iIiH/4uLi/+Ojo7/lJSU/5ycnP+oqKj/u7u7/9fX1//29vb//Pz8/+bm5v/Ly8v/t7e3/6mp - qf+goKD/mpqa/5WVlf+SkpL/j4+P/4yMjP+Kior/iYmJ/4iIiP+IiIj/h4eH/4aGhv+Ghob/hoaG/4WF - hf+FhYX/h4eH/1hYWHkAAAAAAAAAAE5OTluCgoL/goKC/4KCgv+Dg4P/g4OD/4eHg/9DRX3/EhSP/xkZ - lf8aGpr/Gxqf/xsap/95eaT/lJSP/5SUlP+ampr/oaGh/6ysrP+7u7v/z8/P/+bm5v/6+vr//f39/+/v - 7//c3Nz/ysrJ/7y8uv+xsa7/q6um/6amof+jo53/pKSd/6Kinf+hoZ7/oaKh/5aWlv+MjIz/i4uL/4qK - iv+JiYn/iYmJ/4iIiP+IiIj/iIiI/1NTU1wAAAAAAAAAAD09PTZ+fn71hYWF/4SEhP+FhYX/hYWF/4uL - h/9iYn7/FBaK/xkalv8aGpr/HBug/xkWpv9MTLH/pKSi/56dnf+lpaX/r6+v/7u7u//Kysr/3Nzc/+7u - 7v/8/Pz//v7+//T09P/m5uX/z8/T/7W1yv+trMv/m5rG/4uLwf99fb7/c3G6/2Rjtf9VVLD/REWp/3Jz - mf+VlZH/kZGR/4+Pj/+Ojo7/jIyM/4yMjP+MjIz/h4eH9T09PTYAAAAAAAAAAAwMDBR+fn7Wi4uL/4eH - h/+IiIj/iIiI/4uLiv+Bgof/IiSA/xgYl/8aG5r/HBuh/x0bp/8fHa7/i4u6/7Gxq/+wsLD/u7u7/8fH - x//V1dX/5eXl//Pz8//9/f3//v7+//f39//u7uz/09PY/1lXqf8jHbb/JyHJ/yIdwf8dGbn/Ghax/xgW - qf8XFqP/EhKb/19glv+dnZj/lZWV/5OTk/+SkpL/kZGR/5CQkP+Tk5P/hYWF1gwMDBQAAAAAAAAAAAAA - AAF3d3egkpKS/4qKiv+Li4v/jY2N/4+Pj/+UlZH/TU5//xQUj/8bG5v/HBuh/x4cp/8dGa3/ODW5/7Oz - xv/Cwrz/xMTF/9HR0f/e3t7/6+vr//b29v/+/v7//v7+//n5+f/w8PD/6Ojn/9HR1f9iYKT/IBur/yQf - wf8jH7n/IR6y/x8dq/8dHKT/FRad/19gmf+kpJ7/m5ub/5iYmP+Xl5f/lZWV/5OTk/+cnJz/fX19oAAA - AAEAAAAAAAAAAAAAAABkZGRUkpKS/o+Pj/+Pj4//kZGR/5KSkv+Xl5b/hoaP/yAhgP8ZGpv/HByh/x4d - qP8gHa7/HRm1/0hFxP/AwNT/2NjS/9nZ2P/k5OT/7+/v//j4+P/+/v7//v7+//r6+v/z8/P/6urq/+Tk - 4f/j49r/dnTE/yAcv/8jILr/IR6y/yAdq/8eHKX/FRad/11dm/+oqaT/n5+f/52dnf+bm5v/mZmZ/5iY - mP+ampr+bW1tVAAAAAAAAAAAAAAAAAAAAAAzMzMUj4+P15iYmP+Tk5P/lZWV/5iYmP+ampr/oqKe/2Bh - h/8VFYv/HByj/x4dqP8gHa//Ix+2/x8avP9APMr/tbTf/+vs5v/w8Or/9PTy//r6+v/+/v7///////z8 - +//4+Pb/9/fw/+jo7P+joeL/RkHO/yMewf8kILr/Ih+z/yAerP8eHaX/Fhed/1lanf+tran/paWl/6Ki - ov+fn5//nZ2d/6Kiov+Xl5fYJCQkFQAAAAAAAAAAAAAAAAAAAAAAAAAAgoKCe6Kiov+Xl5f/mpqa/5yc - nP+fn5//o6Oj/6SkpP9BQoL/FhaX/x8eqv8hHq//IyC3/yUgvv8jHcX/LSbM/3Rw3v/Bv+3/7+73//7/ - /P////////////3+/f/o5/f/rqvs/1VP3P8lHs7/JB7I/yYhwv8kILr/Ih+z/yAerf8eHab/Fhee/1VW - n/+ysq7/qqqq/6enp/+lpaX/oqKi/6ysrP+IiIh7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPz8/HJ2d - nd+hoaH/np6e/6Ghof+kpKT/qKio/6+vrv+hoaj/NDSD/xgXnf8hHrH/IyC3/yUgvv8nIsb/KCLM/yQc - 0v8sI9j/TEXi/21n6v9/eu7/enXu/2Nc6f9COuL/KSDa/yge1P8qI8//KSLJ/yYhwv8kIbv/Ih+0/xsa - oP8ZGZr/Fxef/1BRoP+2trP/r6+v/6ysrP+pqan/rKys/6Wlpd8/Pz8cAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIyMjG2urq7/oqKi/6Wlpf+pqan/ra2t/7Gxsf+6urj/pKSu/zc4h/8ZF5//IyC5/yYh - wP8oIsb/KiPN/ywk0/8tJNn/KiLd/ygf4P8oHeL/KB7j/yog4f8sI9//LiXb/y0k1f8rI9D/KSLJ/ych - xP8jH7r/GRia/0ZGjf9ERYn/ERGN/0tMof+5ubf/tLS0/7CwsP+urq7/t7e3/5GRkW0AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAADMzMwqlpaW5tLS0/6mpqf+urq7/srKy/7a2tv+6urr/xcXD/7a2 - vP9QUJH/GhiY/yMeuv8oIsj/KiPO/ywk0/8uJdn/Libe/y8m4f8wJuP/MCbk/zAm4v8vJt//LiXb/y0l - 1v8rJNH/KSLL/yEcuv8hHpb/b2+g/8rLy//CwsT/TU6K/z0/jP+9vbz/ubm4/7S0tP++vr7/ra2tuTMz - MwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABzc3MqtLS047a2tv+ysrL/t7e3/7u7 - u//AwMD/xcXF/8/Ozf/Pz87/hIWs/y8uk/8dGKr/Jh/G/ywk1f8uJdv/Libf/y8m4v8wJuT/MCbl/zAm - 4/8vJuD/LiXd/ywk1/8mH8j/Hhqp/z49mP+iorz/3d3a/9TU0//Q0M//wsPF/4GCn/+8vL7/vLy8/8DA - wP+8vLzjc3NzKgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk5OTUb+/ - v/a7u7v/urq6/7+/v//FxcX/ycnJ/8/Pz//W1tX/4eHe/8nJ0v9+frD/PDqe/yMeqP8iG7v/Jh7N/ykh - 1v8rIdr/KyHa/ykg1v8mHs3/Ihu8/yUfqf9CP6H/jIu4/9na3f/n5+P/29vb/9bW1v/R0dH/zs7N/8zM - yv/ExMT/xcXF/8fHx/aamppRAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAKmpqWjHx8f6xMTE/8PDw//Jycn/zs7O/9PT0//Y2Nj/3t7e/+fn5v/w8O3/4eHm/7W0 - 0P+Egrz/YF2w/01Jrf9HQq7/SUSv/1NPr/9kYbL/iojA/7u61P/m5ur/8/Pw/+rq6f/j4+P/3t7e/9nZ - 2f/V1dX/0NDQ/8vLy//MzMz/z8/P+q6urmgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACvr69kzs7O88/Pz//MzMz/0dHR/9bW1v/b29v/4ODg/+bm - 5v/r6+v/8vLx//v7+P////z////9//b2+f/y8vf/9PT4//v7+/////3////9//z8+f/09PP/7e3u/+rq - 6v/l5eX/4ODg/9zc3P/X19f/09PT/9fX1//V1dXzsrKyZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAr6+vTdPT0+Hd3d3/1dXV/9nZ - 2f/e3t7/4+Pj/+jo6P/t7e3/8vLy//X19f/5+fn//Pz8/////////////////////v/7+/v/+vr6//f3 - 9//z8/P/7+/v/+vr6//n5+f/4+Pj/97e3v/b29v/4+Pj/9jY2OGysrJNAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJyc - nCfS0tKz4uLi/+Pj4//g4OD/5ubm/+rq6v/u7u7/8vLy//f39//6+vr//Pz8//7+/v////////////7+ - /v/8/Pz/+vr6//f39//09PT/8fHx/+3t7f/o6Oj/5eXl/+jo6P/m5ub/1dXVs5ycnCcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAExcXFYuLi4tjv7+//7+/v/+3t7f/w8PD/9PT0//f39//6+vr//Pz8//7+ - /v////////////7+/v/8/Pz/+vr6//j4+P/19fX/8fHx/+/v7//y8vL/8vLy/+Xl5djIyMhiAAAABAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGRkRXW1tZx5+fnzu7u7v38/Pz//Pz8//v7 - +//7+/v//Pz8//7+/v////////////7+/v/8/Pz//Pz8//v7+//9/f3//v7+/+/v7/3p6enO1tbWcZGR - kRUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMzMzCsnJ - yUPh4eGT7Ozsz/Pz8/H7+/v//////////////////////////////////Pz8//T09PHs7OzP4+Pjk8nJ - yUMzMzMKAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAHBwcCbW1tSbOzs5K3NzcZuPj43jt7e2B7e3tgePj43jh4eFmzs7OSrW1 - tSYcHBwJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///wD///AAD//wAA//8AAP/8AAA//wAA//AAAA// - AAD/wAAAA/8AAP+AAAAB/wAA/wAAAAD/AAD+AAAAAH8AAPwAAAAAPwAA+AAAAAAfAAD4AAAAAB8AAPAA - AAAADwAA4AAAAAAHAADgAAAAAAcAAMAAAAAAAwAAwAAAAAADAADAAAAAAAMAAIAAAAAAAQAAgAAAAAAB - AACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAACAAAAAAAEAAIAA - AAAAAQAAgAAAAAABAACAAAAAAAEAAIAAAAAAAQAAgAAAAAABAADAAAAAAAMAAMAAAAAAAwAA4AAAAAAH - AADgAAAAAAcAAPAAAAAADwAA8AAAAAAPAAD4AAAAAB8AAPwAAAAAPwAA/gAAAAB/AAD/AAAAAP8AAP+A - AAAB/wAA/8AAAAP/AAD/4AAAB/8AAP/4AAAf/wAA//4AAH//AAD//8AD//8AAP///////wAAKAAAACAA - AABAAAAAAQAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABgAAAAoAAAAKAAAABgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkAAAA2MjIyb1lZWZ1xcXG4goKCxIKCgsRxcXG4WVlZnTIy - Mm8AAAA2AAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAsiIiJaaWlpu6Ojo/LU1NT/8fHx//39/f////////////// - ///z8/P/19fX/6ampvJqamq7IiIiWgAAAAsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA4X19fuLCwsP/n5+f/9PT0//f39//6+vr//f39//// - //////////////z8/P/6+vr/+fn5/+zs7P+0tLT/YmJiuAAAADgAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCQkYoWFhezS0tL/4uLi/+Tk5P/q6ur/8vLx//v7 - +P////3///////////////7//v/6//b29f/v7+//6urq/+jo6P/Z2dn/ioqK7CcnJ2IAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADExMXGQkJD80dHP/9LS0f/X19f/4eHf//Dw - 6v/u7vH/19fz/7278/+qp/P/qqf0/7e19P/U0vT/8fH1//X17v/n5+X/3t7e/9nZ2f/X19f/lpaW/DMz - M3EAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAArKytdi4uL/MPDwf+xssL/y8vO/9nZ - 0//U1N//kY/b/1BL1v8yK9j/KSDd/yge4v8oHuP/KB/f/zAn2v9RS9n/nJrg/+Dg5f/f39v/0dHS/8zM - zP/Ly8v/kpKS/C4uLl0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABQUFMHd3d+m0tLT/vLy3/2pr - qP9qarn/qqnP/0A9wP8eGcL/JR7N/ywk1/8vJuD/LyXl/y8l5v8vJuL/LSTb/yYf0P8gGsX/TEnG/7m5 - 1v/U1M7/xMTE/76+vv++vr7/fX196QUFBTAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAVaWlqxpKSk/6mp - qf+0tK//ZGWk/xUVof8jIa7/Hxy3/yciw/8pItD/Jh7R/ycfyP8vJ8P/MSrD/yoixf8lHc//KiLS/ygi - x/8fG7r/LCq0/5ycxv/ExMD/tra2/7Kysv+tra3/YGBgsQAAAAUAAAAAAAAAAAAAAAAAAAAAKysrTIKC - gv6goKD/oaGh/6ysp/9cXZ//Fxeh/x8drP8jILj/JB/A/ygis/9iX7b/razS/9XV5v/c3Or/wsHc/3t5 - v/8wK7T/Ix3E/yUhvP8dG6//JiWp/56euv+zs6//qqqq/6mpqf+JiYn+Li4uTAAAAAAAAAAAAAAAAAAA - AABcXFyulpaW/5aWlv+ampr/o6Oe/1RUm/8XF6H/IB2s/yEduP80ML3/qqrC/+jp4//6+/b///////// - ///+/vv/9PTu/7q6y/8/Par/Hxu4/yEfsP8YGKP/PD2l/6enrP+jo6L/n5+f/5+fn/9gYGCuAAAAAAAA - AAAAAAAADQ0NJXNzc+2RkZH/kJCQ/5KSkv+ampb/RkaR/xAPmv8ZFqT/Gxev/yEbvP9+fMn/29va/+7u - 7f/8/Pz//v7+//T09P/k5OT/2dnW/6+wuv8yMKT/Hhuw/x0dpP8VFZr/a2yi/6Cgm/+Xl5f/mJiY/3h4 - eO0NDQ0lAAAAAAAAAAA/Pz9ZgYGB/4mJif+Kior/jIyM/5GRj/9RUn7/NDR7/zs6g/8+PYr/RUOT/01K - nP+rqsD/6Ojm//n5+f/9/f3/7u7u/9jY2P/ExMT/vL23/3x7oP8cGqb/HRyk/xcXmv8zNZj/k5SW/5GR - kP+QkJD/hoaG/0RERFoAAAAAAAAAAFRUVIiGhob/hYWF/4WFhf+Ghob/h4eH/4qKiP+Njov/kZGO/5WV - kv+dnZr/qaml/7e3t//U1NT/9fX1//z8/P/i4uL/xMTE/7CwsP+lpaT/m5ua/zY1mf8aGaX/Ghqb/xwd - lf96e4//jIyJ/4mJif+Kior/WlpaiAAAAAAAAAAAX19fpYWFhf+BgYH/goKC/4KCgf+CgoH/g4OC/4OD - gv+FhYX/iIiI/4qKiv+QkJD/m5ub/7Ozs//n5+f/9vb2/8TExP+np6f/mZmZ/5KSkv+Sko3/VlWM/xIR - mv8UFZL/DxGL/2Jkhv+JiIX/hISE/4iIiP9hYWGlAAAAAAAAAABkZGSxg4OD/39/f/9/f37/goKE/4iI - jf+IiI3/iIiO/4KCg/+AgID/gICA/4GBgf+CgoL/h4eH/62trf/AwMD/j4+P/4aGhv+EhIT/goKC/4OE - gv9xcX3/R0h0/0hIcv9FRm//a2t5/4KCgf+AgID/hYWF/2ZmZrAAAAAAAAAAAGlpabCDg4P/fn5+/4GB - fv9hYoT/LC6Y/zAxnf8yMqX/bW2M/4KCfv+AgID/goKC/4SEhP+NjY3/vLy8/9DQ0P+ampr/jY2N/4iI - iP+FhYX/hISE/4SEg/+Hh4P/h4eD/4eHg/+Dg4L/gYGB/4GBgf+Ghob/a2trrwAAAAAAAAAAampqoYWF - hf+AgID/hISB/2Bhf/8SE43/FheX/xUToP9eXZr/jIyG/4uLi/+SkpL/n5+f/7u7u//t7e3/+Pj4/83N - zf+urq7/np6e/5aWlf+RkY//jo6M/42Nif+Li4j/h4eH/4aGhv+Ghob/hYWF/4qKiv9tbW2hAAAAAAAA - AABpaWmAiIiI/4ODg/+GhoX/dXWB/xsdiv8ZGZj/GBeg/0FAqf+Zmpn/m5ua/6ioqP+7u7v/2dnZ//f3 - 9//8/Pz/4+Pj/8fHyf+3t7v/qKiw/52dq/+UlKn/iIin/4aGn/+Pj47/jY2M/4uLi/+Kior/j4+P/25u - boEAAAAAAAAAAGBgYE+JiYn/h4eH/4mJif+Li4n/MzSE/xYXmP8cG6D/Hhys/4aGtP+zs6z/u7u7/9DQ - 0P/n5+f/+/v7//39/f/x8u//tbTL/0pGuP87Nsb/Mi+9/yglsf8cG6f/PT2a/5mal/+UlJT/kZGR/5CQ - kP+RkZH/Z2dnTwAAAAAAAAAAMTExGoeHh+eOjo7/jo6O/5aWkv9oaIj/FhaR/x0cov8cGav/NjS6/7Cv - x//T08z/3d3c/+/v7//9/f3//f39//Pz8//n5+T/o6LA/zItuf8gHLv/Hx2v/xkYpP86Opv/oaGf/5yc - nP+ZmZn/mJiY/5CQkOc6OjoaAAAAAAAAAAAAAAAAh4eHoJqamv+UlJT/mZmZ/5ycmv87PIj/Fxeg/yAe - rP8eG7b/PDjG/7Cu3P/t7en//f31/////v/////////4/+zs7v+qqOH/OzbI/yIeuv8hH6//Ghql/zg5 - nf+np6f/pKSj/5+fn/+lpaX/j4+PoAAAAAAAAAAAAAAAAAAAAAB2dnY4mpqa+52dnf+goKD/qKim/5WV - oP8pKY7/Gxms/yMguP8iHcL/LCXO/2Zg4P+no+//xsT3/8PA9/+em+//WFLg/ycf0P8lH8b/JSG8/x4c - rv8WFaH/NTaf/6usr/+sq6v/p6en/6Ojo/t6eno4AAAAAAAAAAAAAAAAAAAAAAAAAACbm5udrKys/6am - pv+tra3/ubm2/5eYqf8tLZX/HBmz/ycixf8pIs7/Jx7W/yce3f8tI+P/LCLj/ycd3/8pINj/KyPR/ygh - yf8dGbP/PTya/0pKlP8rLJT/r6+1/7Ozsv+4uLj/pKSknQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGZm - ZhmsrKzctLS0/7S0tP+7u7v/ycnG/7Ozvf9RT6H/IBuu/yMdyv8sI9n/Lybg/zAm5f8wJub/Lybi/ywj - 2/8kHcz/Ix6v/2Niqf/Gxsr/y8vJ/3FynP+vsLf/wMC//7S0tNxwcHAZAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJmZmT+5ubn1wMDA/8LCwv/Kysr/19fV/9ra2f+iosP/WVey/zMtuP8oIMT/Jx7N/yce - zf8pIcX/Ni+5/19btf+vrsr/5OTh/9zc2//T09P/zc3L/8jIyP/BwcH1nZ2dPwAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKurq0/FxcXzz8/P/9DQ0P/Y2Nj/4eHh/+/w7P/y8u//3Nzn/8HA - 3P+wrtj/tLLZ/8TD3v/f3+n/9fXy//Ly7//l5eX/3d3e/9bW1v/X19f/zMzM87GxsU8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAK6urjzQ0NDa4eHh/97e3v/k5OT/7Ozs//Pz - 8v/8/Pr///////////////////////z8+//09PT/7u7u/+jo6P/j4+P/5+fn/9TU1Nq7u7s8AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIuLixbU1NSW4ODg+fPz - 8//y8vL/9fX1//n5+f/9/f3////////////9/f3/+vr6//b29v/09PT/9vb2/+Tk5PnW1taWi4uLFgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AADMzMwy4ODglurq6uL4+Pj/////////////////////////////////+fn5/+zs7OLi4uKWzMzMMgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAqqqqEtLS0kXk5OR17e3tlfLy8qTy8vKk7e3tleTk5HXS0tJFqqqqEgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//D///8AD//8A - AP/+AAB//AAAP/gAAB/wAAAP4AAAB8AAAAPAAAADwAAAA4AAAAGAAAABgAAAAYAAAAGAAAABgAAAAYAA - AAGAAAABgAAAAYAAAAHAAAADwAAAA+AAAAfgAAAH8AAAD/gAAB/8AAA//gAAf/+AAf//4Af//////ygA - AAAQAAAAIAAAAAEAIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAbS0tLM0tLSzMAAAAbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFVV - VUiioqK1zMzM7OPj4Pvj5OH7z8/O7KamprVVVVVIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnp6 - eY3GxcP/9vbx//r6+//v7v//7+7///z8/v/8/Pb/ycnJ/35+fo0AAAACAAAAAAAAAAAAAAAAAAAAAHR0 - coqwsLr/t7jN/5eW1P9UTtr/OC/j/zct5P9TTd3/n53a/9ra2f/GxsX/eHh4igAAAAAAAAAAAAAAAFVV - VUKbm5j/lpar/ysrqP8gHLv/MCnG/2Ne0/9qZdX/My3I/xoWvv9oaLr/vLy7/6CgoP9VVVVCAAAAAAAA - AAB0dHStnp6b/4GCmf8WFZ//Hhm0/5+dzP/+//b////7/8fH1f9CP7L/FROn/3N0pP+oqKT/enp6rQAA - AAAaGhoTeXl55oyMi/+AgIf/W1uG/2Fgk/+Uk7D/7u7s//T09P/Ly8b/jo2k/xkYov8wMJj/kZGS/39/ - fuYaGhoTVVVVJ3h4ePeBgYL/gYKI/4iIiP+KioT/jY2K/7W1tv/CwsL/kZGR/4mJiP9DQ4f/NTaB/319 - g/97e3r3VVVVJ1BQUCZ6enn3eXqA/ywtk/8/P5v/hoaF/4yMi/+8vLz/ycnJ/5qal/+Skov/j4+G/4eH - g/+EhIT/fHx891BQUCY/Pz8QgIB/5ImJiP8vMIz/HBuk/42NqP/Cwrv/7+/v//f39P+hoMP/Yl+1/1FQ - p/+BgZb/lJSR/4eHh+Q/Pz8QAAAAAIiIiKaenpr/bW6R/xQToP9CP77/v77b//z8+f////v/p6bb/yIe - vv8REKf/fX2h/6mppf+RkZGmAAAAAAAAAACLi4s3oaGh/LCwrf9lZaT/Gha0/y4n1P9fWOn/XVXq/y0l - 1v8lILj/Pj2g/4aGqv+xsa38mZmZNwAAAAAAAAAAAAAAAKysrHvFxcX/z9DM/56dxf9XUsf/OTHS/zsy - 0/9aVcn/qKjM/9HR0P/Bwcf/tra0ewAAAAAAAAAAAAAAAAAAAAAAAAAAw8PDedXV1fz39/P/+vr2/+/v - 9v/w8Pb/+/v4//r69v/b29r8zMzMeQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADOzs415eXlofPz - 8+D///v0///79PPz8+Dn5+ehzs7ONQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACwsLAN2NjYIdjY2CGwsLANAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/D81e/APAADAAwAAwAPmE4AB - //+AAf//AAD//wAArQAAAP//AAD//4AB//+AAUIAwAOK/+AH///wD////D8AAA== - - - \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/CompareItem.cs b/PROMS/xxxSync/SyncMany/CompareItem.cs deleted file mode 100644 index af9cae84..00000000 --- a/PROMS/xxxSync/SyncMany/CompareItem.cs +++ /dev/null @@ -1,101 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Xml.Serialization; - -namespace SyncMany -{ - [XmlRoot("SyncFile")] - public class SyncFile - { - private CompareItems _Items=new CompareItems(); - [XmlElement("CompareItem")] - public CompareItems Items - { - get { return _Items; } - set { _Items = value; } - } - } - public partial class CompareItems : List - { - } - public class CompareItem - { - private string _Source; - [XmlAttribute("Source")] - public string Source - { - get { return _Source; } - set { _Source = value; } - } - private string _Destination; - [XmlAttribute("Destination")] - public string DestinationItem - { - get { return _Destination; } - set { _Destination = value; } - } - public CompareItem() - { - } - public CompareItem(string source, string destination) - { - _Source = source; - _Destination = destination; - } - private FileInfo _SourceFile; - [XmlIgnore] - public FileInfo SourceFile - { - get - { - if (_SourceFile == null) - _SourceFile = new FileInfo(_Source); - return _SourceFile; - } - set { _SourceFile = value; } - } - private FileInfo _DestinationFile; - [XmlIgnore] - public FileInfo DestinationFile - { - get - { - if (_DestinationFile == null) - _DestinationFile = new FileInfo(_Destination); - return _DestinationFile; - } - set { _DestinationFile = value; } - } - public bool IsDifferent - { - get - { - string srcText = ReadFile(SourceFile); - string dstText = ReadFile(DestinationFile); - return srcText != dstText; - } - } - private string ReadFile(FileInfo myFile) - { - string retval; - using (StreamReader sr = myFile.OpenText()) - { - retval = sr.ReadToEnd(); - sr.Close(); - } - return retval; - } - public void CopySourceToDestination() - { - _DestinationFile.IsReadOnly = false; - _SourceFile.CopyTo(_Destination,true); - } - public void CopyDestinationToSource() - { - _SourceFile.IsReadOnly = false; - _DestinationFile.CopyTo(Source,true); - } - } -} diff --git a/PROMS/xxxSync/SyncMany/GenericSerializer.cs b/PROMS/xxxSync/SyncMany/GenericSerializer.cs deleted file mode 100644 index 107157e8..00000000 --- a/PROMS/xxxSync/SyncMany/GenericSerializer.cs +++ /dev/null @@ -1,99 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Text; -using System.IO; -using System.Xml; -using System.Xml.Schema; -using System.Xml.Serialization; - -namespace SyncMany -{ - public static class ObjectSerializer where T : class - { - public static string StringSerialize(T t) - { - string strOutput = string.Empty; - XmlSerializer xs = new XmlSerializer(typeof(T)); - using (MemoryStream ms = new MemoryStream()) - { - xs.Serialize(new NonXsiTextWriter(ms, Encoding.UTF8), t); - //xs.Serialize(ms, t); - ms.Position = 0; - StreamReader sr = new StreamReader(ms); - strOutput = sr.ReadToEnd(); - ms.Close(); - } - return strOutput; - } - public static T StringDeserialize(string s) - { - T t; - XmlSerializer xs = new XmlSerializer(typeof(T)); - UTF8Encoding enc = new UTF8Encoding(); - Byte[] arrBytData = enc.GetBytes(s); - using (MemoryStream ms = new MemoryStream(arrBytData)) - { - t = (T)xs.Deserialize(ms); - } - return t; - } - public static void WriteFile(T t, string fileName) - { - string strOutput = string.Empty; - XmlSerializer xs = new XmlSerializer(typeof(T)); - using (FileStream fs = new FileStream(fileName, FileMode.Create)) - { - xs.Serialize(new NonXsiTextWriter(fs, Encoding.UTF8), t); - fs.Close(); - } - } - public static T ReadFile(string fileName) - { - T t; - XmlSerializer xs = new XmlSerializer(typeof(T)); - using (FileStream fs = new FileStream(fileName, FileMode.Open)) - { - t = (T)xs.Deserialize(fs); - } - return t; - } - } - public class NonXsiTextWriter : XmlTextWriter - { - public NonXsiTextWriter(TextWriter w) : base(w) { } - public NonXsiTextWriter(Stream w, Encoding encoding) - : base(w, encoding) - { - this.Formatting = Formatting.Indented; - } - public NonXsiTextWriter(string filename, Encoding encoding) : base(filename, encoding) { } - bool _skip = false; - public override void WriteStartAttribute(string prefix, string localName, string ns) - { - if ((prefix == "xmlns" && (localName == "xsd" || localName == "xsi")) || // Omits XSD and XSI declarations. - ns == XmlSchema.InstanceNamespace) // Omits all XSI attributes. - { - _skip = true; - return; - } - if (localName == "xlink_href") - base.WriteStartAttribute(prefix, "xlink:href", ns); - else - base.WriteStartAttribute(prefix, localName, ns); - } - public override void WriteString(string text) - { - if (_skip) return; - base.WriteString(text); - } - public override void WriteEndAttribute() - { - if (_skip) - { // Reset the flag, so we keep writing. - _skip = false; - return; - } - base.WriteEndAttribute(); - } - } -} diff --git a/PROMS/xxxSync/SyncMany/Program.cs b/PROMS/xxxSync/SyncMany/Program.cs deleted file mode 100644 index 2b42030b..00000000 --- a/PROMS/xxxSync/SyncMany/Program.cs +++ /dev/null @@ -1,20 +0,0 @@ -using System; -using System.Collections.Generic; -using System.Windows.Forms; - -namespace SyncMany -{ - static class Program - { - /// - /// The main entry point for the application. - /// - [STAThread] - static void Main() - { - Application.EnableVisualStyles(); - Application.SetCompatibleTextRenderingDefault(false); - Application.Run(new frmSyncMany()); - } - } -} \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/Properties/AssemblyInfo.cs b/PROMS/xxxSync/SyncMany/Properties/AssemblyInfo.cs deleted file mode 100644 index 6cf4b7c6..00000000 --- a/PROMS/xxxSync/SyncMany/Properties/AssemblyInfo.cs +++ /dev/null @@ -1,33 +0,0 @@ -using System.Reflection; -using System.Runtime.CompilerServices; -using System.Runtime.InteropServices; - -// General Information about an assembly is controlled through the following -// set of attributes. Change these attribute values to modify the information -// associated with an assembly. -[assembly: AssemblyTitle("SyncMany")] -[assembly: AssemblyDescription("")] -[assembly: AssemblyConfiguration("")] -[assembly: AssemblyCompany("")] -[assembly: AssemblyProduct("SyncMany")] -[assembly: AssemblyCopyright("Copyright © 2010")] -[assembly: AssemblyTrademark("")] -[assembly: AssemblyCulture("")] - -// Setting ComVisible to false makes the types in this assembly not visible -// to COM components. If you need to access a type in this assembly from -// COM, set the ComVisible attribute to true on that type. -[assembly: ComVisible(false)] - -// The following GUID is for the ID of the typelib if this project is exposed to COM -[assembly: Guid("1d309448-e6cc-4ad8-97ca-15dd2d5c551a")] - -// Version information for an assembly consists of the following four values: -// -// Major Version -// Minor Version -// Build Number -// Revision -// -[assembly: AssemblyVersion("1.0.0.0")] -[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/PROMS/xxxSync/SyncMany/Properties/DataSources/CompareItems.datasource b/PROMS/xxxSync/SyncMany/Properties/DataSources/CompareItems.datasource deleted file mode 100644 index 471fcc0d..00000000 --- a/PROMS/xxxSync/SyncMany/Properties/DataSources/CompareItems.datasource +++ /dev/null @@ -1,10 +0,0 @@ - - - - SyncMany.CompareItems, SyncMany, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null - \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/Properties/Resources.Designer.cs b/PROMS/xxxSync/SyncMany/Properties/Resources.Designer.cs deleted file mode 100644 index 2b4d39b5..00000000 --- a/PROMS/xxxSync/SyncMany/Properties/Resources.Designer.cs +++ /dev/null @@ -1,63 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace SyncMany.Properties { - using System; - - - /// - /// A strongly-typed resource class, for looking up localized strings, etc. - /// - // This class was auto-generated by the StronglyTypedResourceBuilder - // class via a tool like ResGen or Visual Studio. - // To add or remove a member, edit your .ResX file then rerun ResGen - // with the /str option, or rebuild your VS project. - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - internal class Resources { - - private static global::System.Resources.ResourceManager resourceMan; - - private static global::System.Globalization.CultureInfo resourceCulture; - - [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] - internal Resources() { - } - - /// - /// Returns the cached ResourceManager instance used by this class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Resources.ResourceManager ResourceManager { - get { - if (object.ReferenceEquals(resourceMan, null)) { - global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("SyncMany.Properties.Resources", typeof(Resources).Assembly); - resourceMan = temp; - } - return resourceMan; - } - } - - /// - /// Overrides the current thread's CurrentUICulture property for all - /// resource lookups using this strongly typed resource class. - /// - [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] - internal static global::System.Globalization.CultureInfo Culture { - get { - return resourceCulture; - } - set { - resourceCulture = value; - } - } - } -} diff --git a/PROMS/xxxSync/SyncMany/Properties/Resources.resx b/PROMS/xxxSync/SyncMany/Properties/Resources.resx deleted file mode 100644 index af7dbebb..00000000 --- a/PROMS/xxxSync/SyncMany/Properties/Resources.resx +++ /dev/null @@ -1,117 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/Properties/Settings.Designer.cs b/PROMS/xxxSync/SyncMany/Properties/Settings.Designer.cs deleted file mode 100644 index 60e8cac4..00000000 --- a/PROMS/xxxSync/SyncMany/Properties/Settings.Designer.cs +++ /dev/null @@ -1,96 +0,0 @@ -//------------------------------------------------------------------------------ -// -// This code was generated by a tool. -// Runtime Version:4.0.30319.18408 -// -// Changes to this file may cause incorrect behavior and will be lost if -// the code is regenerated. -// -//------------------------------------------------------------------------------ - -namespace SyncMany.Properties { - - - [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] - [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "12.0.0.0")] - internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase { - - private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings()))); - - public static Settings Default { - get { - return defaultInstance; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Drawing.Size Size { - get { - return ((global::System.Drawing.Size)(this["Size"])); - } - set { - this["Size"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - public global::System.Drawing.Point Location { - get { - return ((global::System.Drawing.Point)(this["Location"])); - } - set { - this["Location"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("Normal")] - public global::System.Windows.Forms.FormWindowState WindowState { - get { - return ((global::System.Windows.Forms.FormWindowState)(this["WindowState"])); - } - set { - this["WindowState"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string FileName { - get { - return ((string)(this["FileName"])); - } - set { - this["FileName"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string SourceFolder { - get { - return ((string)(this["SourceFolder"])); - } - set { - this["SourceFolder"] = value; - } - } - - [global::System.Configuration.UserScopedSettingAttribute()] - [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] - [global::System.Configuration.DefaultSettingValueAttribute("")] - public string DestinationFolder { - get { - return ((string)(this["DestinationFolder"])); - } - set { - this["DestinationFolder"] = value; - } - } - } -} diff --git a/PROMS/xxxSync/SyncMany/Properties/Settings.settings b/PROMS/xxxSync/SyncMany/Properties/Settings.settings deleted file mode 100644 index a2e3d8d9..00000000 --- a/PROMS/xxxSync/SyncMany/Properties/Settings.settings +++ /dev/null @@ -1,24 +0,0 @@ - - - - - - - - - - - - Normal - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/SyncMany.csproj b/PROMS/xxxSync/SyncMany/SyncMany.csproj deleted file mode 100644 index c79f91a1..00000000 --- a/PROMS/xxxSync/SyncMany/SyncMany.csproj +++ /dev/null @@ -1,108 +0,0 @@ - - - - Debug - AnyCPU - 8.0.50727 - 2.0 - {256A41AF-440F-42FE-A9B1-2CE36F1261A2} - WinExe - Properties - SyncMany - SyncMany - sync.ico - SAK - SAK - SAK - SAK - v2.0 - - - - - 2.0 - - - true - full - false - bin\Debug\ - DEBUG;TRACE - prompt - 4 - - - pdbonly - true - bin\Release\ - TRACE - prompt - 4 - - - - - - - - - - - - - Form - - - frmAddCompareItem.cs - - - Form - - - frmSyncMany.cs - - - - - - Designer - frmAddCompareItem.cs - - - Designer - frmSyncMany.cs - - - ResXFileCodeGenerator - Resources.Designer.cs - Designer - - - True - Resources.resx - True - - - - - SettingsSingleFileGenerator - Settings.Designer.cs - - - True - Settings.settings - True - - - - - - - - \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/Thumbs.db b/PROMS/xxxSync/SyncMany/Thumbs.db deleted file mode 100644 index 37de5f2d..00000000 Binary files a/PROMS/xxxSync/SyncMany/Thumbs.db and /dev/null differ diff --git a/PROMS/xxxSync/SyncMany/app.config b/PROMS/xxxSync/SyncMany/app.config deleted file mode 100644 index 217e8909..00000000 --- a/PROMS/xxxSync/SyncMany/app.config +++ /dev/null @@ -1,24 +0,0 @@ - - - - -
    - - - - - - Normal - - - - - - - - - - - - - \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/frmAddCompareItem.Designer.cs b/PROMS/xxxSync/SyncMany/frmAddCompareItem.Designer.cs deleted file mode 100644 index 21d06f43..00000000 --- a/PROMS/xxxSync/SyncMany/frmAddCompareItem.Designer.cs +++ /dev/null @@ -1,155 +0,0 @@ -namespace SyncMany -{ - partial class frmAddCompareItem - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.btnSource = new System.Windows.Forms.Button(); - this.tbSource = new System.Windows.Forms.TextBox(); - this.label1 = new System.Windows.Forms.Label(); - this.label2 = new System.Windows.Forms.Label(); - this.tbDestination = new System.Windows.Forms.TextBox(); - this.btnDestination = new System.Windows.Forms.Button(); - this.btnOK = new System.Windows.Forms.Button(); - this.btnCancel = new System.Windows.Forms.Button(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.SuspendLayout(); - // - // btnSource - // - this.btnSource.Location = new System.Drawing.Point(634, 11); - this.btnSource.Name = "btnSource"; - this.btnSource.Size = new System.Drawing.Size(75, 23); - this.btnSource.TabIndex = 0; - this.btnSource.Text = "Browse..."; - this.btnSource.UseVisualStyleBackColor = true; - this.btnSource.Click += new System.EventHandler(this.btnSource_Click); - // - // tbSource - // - this.tbSource.Location = new System.Drawing.Point(90, 13); - this.tbSource.Name = "tbSource"; - this.tbSource.Size = new System.Drawing.Size(538, 20); - this.tbSource.TabIndex = 1; - this.tbSource.TextChanged += new System.EventHandler(this.tbText_TextChanged); - // - // label1 - // - this.label1.AutoSize = true; - this.label1.Location = new System.Drawing.Point(12, 16); - this.label1.Name = "label1"; - this.label1.Size = new System.Drawing.Size(41, 13); - this.label1.TabIndex = 2; - this.label1.Text = "Source"; - // - // label2 - // - this.label2.AutoSize = true; - this.label2.Location = new System.Drawing.Point(12, 42); - this.label2.Name = "label2"; - this.label2.Size = new System.Drawing.Size(60, 13); - this.label2.TabIndex = 5; - this.label2.Text = "Destination"; - // - // tbDestination - // - this.tbDestination.Location = new System.Drawing.Point(90, 39); - this.tbDestination.Name = "tbDestination"; - this.tbDestination.Size = new System.Drawing.Size(538, 20); - this.tbDestination.TabIndex = 4; - this.tbDestination.TextChanged += new System.EventHandler(this.tbText_TextChanged); - // - // btnDestination - // - this.btnDestination.Location = new System.Drawing.Point(634, 37); - this.btnDestination.Name = "btnDestination"; - this.btnDestination.Size = new System.Drawing.Size(75, 23); - this.btnDestination.TabIndex = 3; - this.btnDestination.Text = "Browse..."; - this.btnDestination.UseVisualStyleBackColor = true; - this.btnDestination.Click += new System.EventHandler(this.btnDestination_Click); - // - // btnOK - // - this.btnOK.DialogResult = System.Windows.Forms.DialogResult.OK; - this.btnOK.Location = new System.Drawing.Point(553, 65); - this.btnOK.Name = "btnOK"; - this.btnOK.Size = new System.Drawing.Size(75, 23); - this.btnOK.TabIndex = 6; - this.btnOK.Text = "OK"; - this.btnOK.UseVisualStyleBackColor = true; - // - // btnCancel - // - this.btnCancel.DialogResult = System.Windows.Forms.DialogResult.Retry; - this.btnCancel.Location = new System.Drawing.Point(634, 65); - this.btnCancel.Name = "btnCancel"; - this.btnCancel.Size = new System.Drawing.Size(75, 23); - this.btnCancel.TabIndex = 7; - this.btnCancel.Text = "Cancel"; - this.btnCancel.UseVisualStyleBackColor = true; - // - // ofd - // - this.ofd.Filter = "CSharp Files|*.cs|All Files|*.*"; - // - // frmAddCompareItem - // - this.AcceptButton = this.btnOK; - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.CancelButton = this.btnCancel; - this.ClientSize = new System.Drawing.Size(782, 145); - this.Controls.Add(this.btnCancel); - this.Controls.Add(this.btnOK); - this.Controls.Add(this.label2); - this.Controls.Add(this.tbDestination); - this.Controls.Add(this.btnDestination); - this.Controls.Add(this.label1); - this.Controls.Add(this.tbSource); - this.Controls.Add(this.btnSource); - this.Name = "frmAddCompareItem"; - this.Text = "frmAddCompareItem"; - this.Resize += new System.EventHandler(this.frmAddCompareItem_Resize); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.Button btnSource; - private System.Windows.Forms.TextBox tbSource; - private System.Windows.Forms.Label label1; - private System.Windows.Forms.Label label2; - private System.Windows.Forms.TextBox tbDestination; - private System.Windows.Forms.Button btnDestination; - private System.Windows.Forms.Button btnOK; - private System.Windows.Forms.Button btnCancel; - private System.Windows.Forms.OpenFileDialog ofd; - } -} \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/frmAddCompareItem.cs b/PROMS/xxxSync/SyncMany/frmAddCompareItem.cs deleted file mode 100644 index e1ff1436..00000000 --- a/PROMS/xxxSync/SyncMany/frmAddCompareItem.cs +++ /dev/null @@ -1,88 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; - -namespace SyncMany -{ - public partial class frmAddCompareItem : Form - { - public string SourceName - { get { return tbSource.Text; } } - public string DestinationName - { get { return tbDestination.Text; } } - private string _SourceFolder; - public string SourceFolder - { - get { return _SourceFolder; } - set { _SourceFolder = value; } - } - private string _DestinationFolder; - public string DestinationFolder - { - get { return _DestinationFolder; } - set { _DestinationFolder = value; } - } - public frmAddCompareItem(string sourceFolder, string destinationFolder) - { - InitializeComponent(); - SetupButtons(); - SourceFolder = sourceFolder; - DestinationFolder = destinationFolder; - } - private void SetupButtons() - { - btnOK.Enabled = tbDestination.Text != null && tbSource != null; - } - private void frmAddCompareItem_Resize(object sender, EventArgs e) - { - if(Height != 131) - Height = 131; - } - private void tbText_TextChanged(object sender, EventArgs e) - { - SetupButtons(); - } - private void btnSource_Click(object sender, EventArgs e) - { - if (tbSource.Text != "") - { - SourceFolder = SetupOpenFileDialog(tbSource.Text); - } - else - { - ofd.InitialDirectory = SourceFolder; - } - if (ofd.ShowDialog() != DialogResult.OK) - return; - tbSource.Text = ofd.FileName; - SourceFolder = SetupOpenFileDialog(ofd.FileName); - } - private string SetupOpenFileDialog(string fileName) - { - FileInfo fi = new FileInfo(fileName); - ofd.InitialDirectory = fi.Directory.FullName; - ofd.FileName = fi.Name; - return ofd.InitialDirectory; - } - private void btnDestination_Click(object sender, EventArgs e) - { - if (tbDestination.Text != "") - { - DestinationFolder = SetupOpenFileDialog(tbDestination.Text); - } - else - { - ofd.InitialDirectory = DestinationFolder; - } - if (ofd.ShowDialog() != DialogResult.OK) - return; - tbDestination.Text = ofd.FileName; - DestinationFolder = SetupOpenFileDialog(ofd.FileName); - } - } -} \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/frmAddCompareItem.resx b/PROMS/xxxSync/SyncMany/frmAddCompareItem.resx deleted file mode 100644 index 86c9308b..00000000 --- a/PROMS/xxxSync/SyncMany/frmAddCompareItem.resx +++ /dev/null @@ -1,123 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/frmSyncMany.Designer.cs b/PROMS/xxxSync/SyncMany/frmSyncMany.Designer.cs deleted file mode 100644 index ba41a8a7..00000000 --- a/PROMS/xxxSync/SyncMany/frmSyncMany.Designer.cs +++ /dev/null @@ -1,285 +0,0 @@ -namespace SyncMany -{ - partial class frmSyncMany - { - /// - /// Required designer variable. - /// - private System.ComponentModel.IContainer components = null; - - /// - /// Clean up any resources being used. - /// - /// true if managed resources should be disposed; otherwise, false. - protected override void Dispose(bool disposing) - { - if (disposing && (components != null)) - { - components.Dispose(); - } - base.Dispose(disposing); - } - - #region Windows Form Designer generated code - - /// - /// Required method for Designer support - do not modify - /// the contents of this method with the code editor. - /// - private void InitializeComponent() - { - this.components = new System.ComponentModel.Container(); - System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(frmSyncMany)); - this.menuStrip1 = new System.Windows.Forms.MenuStrip(); - this.fileToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.openToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.saveAsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.toolStripMenuItem1 = new System.Windows.Forms.ToolStripSeparator(); - this.exitToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.addToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.ofd = new System.Windows.Forms.OpenFileDialog(); - this.sfd = new System.Windows.Forms.SaveFileDialog(); - this.statusStrip1 = new System.Windows.Forms.StatusStrip(); - this.tsslStatus = new System.Windows.Forms.ToolStripStatusLabel(); - this.dgv = new System.Windows.Forms.DataGridView(); - this.IsDifferent = new System.Windows.Forms.DataGridViewCheckBoxColumn(); - this.sourceDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.destinationItemDataGridViewTextBoxColumn = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.cms = new System.Windows.Forms.ContextMenuStrip(this.components); - this.compareToolStripMenuItem1 = new System.Windows.Forms.ToolStripMenuItem(); - this.copySourceToDestinationToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.copyDestinationToSourceToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.removeToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem(); - this.compareItemsBindingSource = new System.Windows.Forms.BindingSource(this.components); - this.menuStrip1.SuspendLayout(); - this.statusStrip1.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).BeginInit(); - this.cms.SuspendLayout(); - ((System.ComponentModel.ISupportInitialize)(this.compareItemsBindingSource)).BeginInit(); - this.SuspendLayout(); - // - // menuStrip1 - // - this.menuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.fileToolStripMenuItem, - this.addToolStripMenuItem}); - this.menuStrip1.Location = new System.Drawing.Point(0, 0); - this.menuStrip1.Name = "menuStrip1"; - this.menuStrip1.Size = new System.Drawing.Size(672, 24); - this.menuStrip1.TabIndex = 0; - this.menuStrip1.Text = "menuStrip1"; - // - // fileToolStripMenuItem - // - this.fileToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.openToolStripMenuItem, - this.saveToolStripMenuItem, - this.saveAsToolStripMenuItem, - this.toolStripMenuItem1, - this.exitToolStripMenuItem}); - this.fileToolStripMenuItem.Name = "fileToolStripMenuItem"; - this.fileToolStripMenuItem.Size = new System.Drawing.Size(37, 20); - this.fileToolStripMenuItem.Text = "&File"; - // - // openToolStripMenuItem - // - this.openToolStripMenuItem.Name = "openToolStripMenuItem"; - this.openToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.openToolStripMenuItem.Text = "&Open"; - this.openToolStripMenuItem.Click += new System.EventHandler(this.openToolStripMenuItem_Click); - // - // saveToolStripMenuItem - // - this.saveToolStripMenuItem.Name = "saveToolStripMenuItem"; - this.saveToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.saveToolStripMenuItem.Text = "&Save"; - this.saveToolStripMenuItem.Click += new System.EventHandler(this.saveToolStripMenuItem_Click); - // - // saveAsToolStripMenuItem - // - this.saveAsToolStripMenuItem.Name = "saveAsToolStripMenuItem"; - this.saveAsToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.saveAsToolStripMenuItem.Text = "Save&As"; - this.saveAsToolStripMenuItem.Click += new System.EventHandler(this.saveAsToolStripMenuItem_Click); - // - // toolStripMenuItem1 - // - this.toolStripMenuItem1.Name = "toolStripMenuItem1"; - this.toolStripMenuItem1.Size = new System.Drawing.Size(149, 6); - // - // exitToolStripMenuItem - // - this.exitToolStripMenuItem.Name = "exitToolStripMenuItem"; - this.exitToolStripMenuItem.Size = new System.Drawing.Size(152, 22); - this.exitToolStripMenuItem.Text = "E&xit"; - this.exitToolStripMenuItem.Click += new System.EventHandler(this.exitToolStripMenuItem_Click); - // - // addToolStripMenuItem - // - this.addToolStripMenuItem.Name = "addToolStripMenuItem"; - this.addToolStripMenuItem.Size = new System.Drawing.Size(41, 20); - this.addToolStripMenuItem.Text = "Add"; - this.addToolStripMenuItem.Click += new System.EventHandler(this.addToolStripMenuItem_Click); - // - // ofd - // - this.ofd.FileName = "SyncList.xml"; - this.ofd.Filter = "XML Files|*.xml"; - this.ofd.FileOk += new System.ComponentModel.CancelEventHandler(this.ofd_FileOk); - // - // sfd - // - this.sfd.FileName = "SyncList.XML"; - this.sfd.Filter = "XML Files|*.xml"; - this.sfd.FileOk += new System.ComponentModel.CancelEventHandler(this.sfd_FileOk); - // - // statusStrip1 - // - this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.tsslStatus}); - this.statusStrip1.Location = new System.Drawing.Point(0, 333); - this.statusStrip1.Name = "statusStrip1"; - this.statusStrip1.Size = new System.Drawing.Size(672, 22); - this.statusStrip1.TabIndex = 1; - this.statusStrip1.Text = "statusStrip1"; - // - // tsslStatus - // - this.tsslStatus.Name = "tsslStatus"; - this.tsslStatus.Size = new System.Drawing.Size(39, 17); - this.tsslStatus.Text = "Ready"; - // - // dgv - // - this.dgv.AllowUserToAddRows = false; - this.dgv.AllowUserToDeleteRows = false; - this.dgv.AutoGenerateColumns = false; - this.dgv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; - this.dgv.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { - this.IsDifferent, - this.sourceDataGridViewTextBoxColumn, - this.destinationItemDataGridViewTextBoxColumn}); - this.dgv.ContextMenuStrip = this.cms; - this.dgv.DataSource = this.compareItemsBindingSource; - this.dgv.Dock = System.Windows.Forms.DockStyle.Fill; - this.dgv.Location = new System.Drawing.Point(0, 24); - this.dgv.Name = "dgv"; - this.dgv.Size = new System.Drawing.Size(672, 309); - this.dgv.TabIndex = 2; - this.dgv.CellMouseDown += new System.Windows.Forms.DataGridViewCellMouseEventHandler(this.dgv_CellMouseDown); - // - // IsDifferent - // - this.IsDifferent.DataPropertyName = "IsDifferent"; - this.IsDifferent.HeaderText = "IsDifferent"; - this.IsDifferent.Name = "IsDifferent"; - this.IsDifferent.ReadOnly = true; - // - // sourceDataGridViewTextBoxColumn - // - this.sourceDataGridViewTextBoxColumn.DataPropertyName = "Source"; - this.sourceDataGridViewTextBoxColumn.HeaderText = "Source"; - this.sourceDataGridViewTextBoxColumn.Name = "sourceDataGridViewTextBoxColumn"; - // - // destinationItemDataGridViewTextBoxColumn - // - this.destinationItemDataGridViewTextBoxColumn.DataPropertyName = "DestinationItem"; - this.destinationItemDataGridViewTextBoxColumn.HeaderText = "DestinationItem"; - this.destinationItemDataGridViewTextBoxColumn.Name = "destinationItemDataGridViewTextBoxColumn"; - // - // cms - // - this.cms.Items.AddRange(new System.Windows.Forms.ToolStripItem[] { - this.compareToolStripMenuItem1, - this.copySourceToDestinationToolStripMenuItem, - this.copyDestinationToSourceToolStripMenuItem, - this.removeToolStripMenuItem}); - this.cms.Name = "cms"; - this.cms.Size = new System.Drawing.Size(219, 92); - // - // compareToolStripMenuItem1 - // - this.compareToolStripMenuItem1.Name = "compareToolStripMenuItem1"; - this.compareToolStripMenuItem1.Size = new System.Drawing.Size(218, 22); - this.compareToolStripMenuItem1.Text = "Compare"; - this.compareToolStripMenuItem1.Click += new System.EventHandler(this.compareToolStripMenuItem1_Click); - // - // copySourceToDestinationToolStripMenuItem - // - this.copySourceToDestinationToolStripMenuItem.Name = "copySourceToDestinationToolStripMenuItem"; - this.copySourceToDestinationToolStripMenuItem.Size = new System.Drawing.Size(218, 22); - this.copySourceToDestinationToolStripMenuItem.Text = "Copy Source to Destination"; - this.copySourceToDestinationToolStripMenuItem.Click += new System.EventHandler(this.copySourceToDestinationToolStripMenuItem_Click); - // - // copyDestinationToSourceToolStripMenuItem - // - this.copyDestinationToSourceToolStripMenuItem.Name = "copyDestinationToSourceToolStripMenuItem"; - this.copyDestinationToSourceToolStripMenuItem.Size = new System.Drawing.Size(218, 22); - this.copyDestinationToSourceToolStripMenuItem.Text = "Copy Destination to Source"; - this.copyDestinationToSourceToolStripMenuItem.Click += new System.EventHandler(this.copyDestinationToSourceToolStripMenuItem_Click); - // - // removeToolStripMenuItem - // - this.removeToolStripMenuItem.Name = "removeToolStripMenuItem"; - this.removeToolStripMenuItem.Size = new System.Drawing.Size(218, 22); - this.removeToolStripMenuItem.Text = "Remove"; - this.removeToolStripMenuItem.Click += new System.EventHandler(this.removeToolStripMenuItem_Click); - // - // compareItemsBindingSource - // - this.compareItemsBindingSource.DataSource = typeof(SyncMany.CompareItem); - // - // frmSyncMany - // - this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F); - this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(672, 355); - this.Controls.Add(this.dgv); - this.Controls.Add(this.statusStrip1); - this.Controls.Add(this.menuStrip1); - this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon"))); - this.MainMenuStrip = this.menuStrip1; - this.Name = "frmSyncMany"; - this.Text = "Sync Many"; - this.Load += new System.EventHandler(this.frmSyncMany_Load); - this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.frmSyncMany_FormClosing); - this.menuStrip1.ResumeLayout(false); - this.menuStrip1.PerformLayout(); - this.statusStrip1.ResumeLayout(false); - this.statusStrip1.PerformLayout(); - ((System.ComponentModel.ISupportInitialize)(this.dgv)).EndInit(); - this.cms.ResumeLayout(false); - ((System.ComponentModel.ISupportInitialize)(this.compareItemsBindingSource)).EndInit(); - this.ResumeLayout(false); - this.PerformLayout(); - - } - - #endregion - - private System.Windows.Forms.MenuStrip menuStrip1; - private System.Windows.Forms.ToolStripMenuItem fileToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem openToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem saveToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem saveAsToolStripMenuItem; - private System.Windows.Forms.ToolStripSeparator toolStripMenuItem1; - private System.Windows.Forms.ToolStripMenuItem exitToolStripMenuItem; - private System.Windows.Forms.OpenFileDialog ofd; - private System.Windows.Forms.SaveFileDialog sfd; - private System.Windows.Forms.StatusStrip statusStrip1; - private System.Windows.Forms.ToolStripStatusLabel tsslStatus; - private System.Windows.Forms.DataGridView dgv; - private System.Windows.Forms.BindingSource compareItemsBindingSource; - private System.Windows.Forms.ContextMenuStrip cms; - private System.Windows.Forms.ToolStripMenuItem compareToolStripMenuItem1; - private System.Windows.Forms.DataGridViewCheckBoxColumn IsDifferent; - private System.Windows.Forms.DataGridViewTextBoxColumn sourceDataGridViewTextBoxColumn; - private System.Windows.Forms.DataGridViewTextBoxColumn destinationItemDataGridViewTextBoxColumn; - private System.Windows.Forms.ToolStripMenuItem copySourceToDestinationToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem copyDestinationToSourceToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem removeToolStripMenuItem; - private System.Windows.Forms.ToolStripMenuItem addToolStripMenuItem; - } -} - diff --git a/PROMS/xxxSync/SyncMany/frmSyncMany.cs b/PROMS/xxxSync/SyncMany/frmSyncMany.cs deleted file mode 100644 index 4252ef3a..00000000 --- a/PROMS/xxxSync/SyncMany/frmSyncMany.cs +++ /dev/null @@ -1,269 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; - -namespace SyncMany -{ - public partial class frmSyncMany : Form - { - public string MyStatus - { - get { return tsslStatus.Text; } - set { tsslStatus.Text = value; Application.DoEvents(); } - } - private string _MyFileName; - public string MyFileName - { - get { return _MyFileName; } - set { _MyFileName = value; ofd.FileName = value; sfd.FileName = value; } - } - SyncFile _MySyncFile = new SyncFile(); - public SyncFile MySyncFile - { - get { return _MySyncFile; } - set - { - _MySyncFile = value; - ResetOriginalSync(); - dgv.DataSource = value.Items; - dgv.AutoResizeColumns(); - } - } - private void ResetOriginalSync() - { - _OriginalSync = ObjectSerializer.StringSerialize(MySyncFile); - } - private string _SourceFolder; - public string SourceFolder - { - get { return _SourceFolder; } - set { _SourceFolder = value; } - } - private string _DestinationFolder; - public string DestinationFolder - { - get { return _DestinationFolder; } - set { _DestinationFolder = value; } - } - public frmSyncMany() - { - InitializeComponent(); - compareItemsBindingSource.DataSource = MySyncFile.Items; - } - public string _OriginalSync = ""; - public bool IsDirty - { - get - { - string tmp = ObjectSerializer.StringSerialize(MySyncFile); - return tmp != _OriginalSync; - } - } - private void openToolStripMenuItem_Click(object sender, EventArgs e) - { - if (ofd.ShowDialog() == DialogResult.OK) - { - MySyncFile = ObjectSerializer.ReadFile(MyFileName); - } - } - private void saveToolStripMenuItem_Click(object sender, EventArgs e) - { - if (MyFileName == null) - saveAsToolStripMenuItem_Click(sender, e); - else - { - ObjectSerializer.WriteFile(MySyncFile, MyFileName); - ResetOriginalSync(); - } - } - private void saveAsToolStripMenuItem_Click(object sender, EventArgs e) - { - if (sfd.ShowDialog() == DialogResult.OK) - { - ObjectSerializer.WriteFile(MySyncFile, MyFileName); - ResetOriginalSync(); - } - } - private void ofd_FileOk(object sender, CancelEventArgs e) - { - MyFileName = ofd.FileName; - } - private void sfd_FileOk(object sender, CancelEventArgs e) - { - MyFileName = sfd.FileName; - } - private void addToolStripMenuItem_Click(object sender, EventArgs e) - { - frmAddCompareItem myCompareItem = new frmAddCompareItem(SourceFolder,DestinationFolder); - if (myCompareItem.ShowDialog() == DialogResult.OK) - { - SourceFolder = myCompareItem.SourceFolder; - DestinationFolder = myCompareItem.DestinationFolder; - MySyncFile.Items.Add(new CompareItem(myCompareItem.SourceName, myCompareItem.DestinationName)); - //compareItemsBindingSource.Add(new CompareItem(myCompareItem.SourceName, myCompareItem.DestinationName)); - compareItemsBindingSource.DataSource = null; - compareItemsBindingSource.DataSource = MySyncFile.Items; - dgv.DataSource = null; - dgv.DataSource = compareItemsBindingSource; - dgv.Refresh(); - } - } - private void compareToolStripMenuItem1_Click(object sender, EventArgs e) - { - foreach (DataGridViewRow row in dgv.SelectedRows) - { - CompareItem item = row.DataBoundItem as CompareItem; - if (item != null) - { - System.Diagnostics.ProcessStartInfo psi = new System.Diagnostics.ProcessStartInfo(@"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe", - string.Format(@" -t ""{0}"" ""{1}""", item.Source, item.DestinationItem)); - System.Diagnostics.Process prc = System.Diagnostics.Process.Start(psi); - } - } - } - private void frmSyncMany_Load(object sender, EventArgs e) - { - LoadSettings(); - this.Move +=new EventHandler(frmSyncMany_Move); - this.Resize +=new EventHandler(frmSyncMany_Resize); - FileInfo myInfo = new FileInfo(MyFileName); - if (myInfo.Exists) - MySyncFile = ObjectSerializer.ReadFile(MyFileName); - else - MySyncFile = new SyncFile(); - } - private void copySourceToDestinationToolStripMenuItem_Click(object sender, EventArgs e) - { - foreach (DataGridViewRow row in dgv.SelectedRows) - { - CompareItem item = row.DataBoundItem as CompareItem; - if (item != null) - { - item.CopySourceToDestination(); - } - dgv.Refresh(); - } - } - private void copyDestinationToSourceToolStripMenuItem_Click(object sender, EventArgs e) - { - foreach (DataGridViewRow row in dgv.SelectedRows) - { - CompareItem item = row.DataBoundItem as CompareItem; - if (item != null) - { - item.CopyDestinationToSource(); - } - } - dgv.Refresh(); - } - private void frmSyncMany_FormClosing(object sender, FormClosingEventArgs e) - { - if (IsDirty) - { - DialogResult result = MessageBox.Show("Do you want to Save changes?","Save Changes", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Question); - switch (result) - { - case DialogResult.Cancel: - // Don't close - e.Cancel = true; - return; - break; - case DialogResult.No: - // Don't do anything - break; - case DialogResult.Yes: - saveToolStripMenuItem_Click(this, e); - break; - } - } - SaveSettings(); - } - private string GetPropertyString(string propertyName) - { - object prop = Properties.Settings.Default[propertyName]; - return prop == null ? "" : prop.ToString(); - } - private void LoadSettings() - { - string myDocuments = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); - if (GetPropertyString("Location") != "") - this.Location = Properties.Settings.Default.Location; - if ((Properties.Settings.Default["Size"] ?? "") != "") - this.Size = Properties.Settings.Default.Size; - this.WindowState = Properties.Settings.Default.WindowState; - string test = GetPropertyString("FileName"); - if (GetPropertyString("FileName") != "") - MyFileName = Properties.Settings.Default.FileName; - else - MyFileName = myDocuments + @"\SyncList.XML"; - SetupOpenFileDialog(MyFileName); - if (GetPropertyString("SourceFolder") != "") - SourceFolder = Properties.Settings.Default.SourceFolder; - else - SourceFolder = myDocuments; - if (GetPropertyString("DestinationFolder") != "") - DestinationFolder = Properties.Settings.Default.DestinationFolder; - else - DestinationFolder = myDocuments; - } - private string SetupOpenFileDialog(string fileName) - { - FileInfo fi = new FileInfo(fileName); - sfd.InitialDirectory = ofd.InitialDirectory = fi.Directory.FullName; - sfd.FileName = ofd.FileName = fi.Name; - return ofd.InitialDirectory; - } - private void SaveSettings() - { - Properties.Settings.Default.WindowState = this.WindowState; - Properties.Settings.Default.FileName = MyFileName; - Properties.Settings.Default.SourceFolder = SourceFolder; - Properties.Settings.Default.DestinationFolder = DestinationFolder; - Properties.Settings.Default.Save(); - } - private void frmSyncMany_Move(object sender, EventArgs e) - { - if (this.WindowState == FormWindowState.Normal) - { - Properties.Settings.Default.Location = this.Location; - Properties.Settings.Default.Size = this.Size; - } - } - private void frmSyncMany_Resize(object sender, EventArgs e) - { - if (this.WindowState == FormWindowState.Normal) - { - Properties.Settings.Default.Location = this.Location; - Properties.Settings.Default.Size = this.Size; - } - } - private void removeToolStripMenuItem_Click(object sender, EventArgs e) - { - int index = dgv.SelectedRows[0].Index; - dgv.Rows[index].Selected = false; - MySyncFile.Items.RemoveAt(index); - compareItemsBindingSource.DataSource = MySyncFile.Items; - dgv.DataSource = null; - dgv.DataSource = compareItemsBindingSource; - dgv.Refresh(); - } - private void dgv_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e) - { - if (e.RowIndex >= 0) - { - dgv.Rows[e.RowIndex].Selected = true; - dgv.CurrentCell = dgv[0, e.RowIndex]; - } - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - - } -} \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/frmSyncMany.resx b/PROMS/xxxSync/SyncMany/frmSyncMany.resx deleted file mode 100644 index 661f3c7d..00000000 --- a/PROMS/xxxSync/SyncMany/frmSyncMany.resx +++ /dev/null @@ -1,4653 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 17, 17 - - - 132, 17 - - - 189, 17 - - - 257, 17 - - - True - - - 581, 17 - - - 373, 17 - - - - - AAABAAEAAAAAAAEAIAAoIAQAFgAAACgAAAAAAQAAAAIAAAEAIAAAAAAAACAEAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAEAAAACAAAAAgAAAAMAAAADAAAAAwAAAAMAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAQAAAAEAAAABAAA - AAQAAAAEAAAABAAAAAQAAAAEAAAABAAAAAMAAAADAAAAAwAAAAIAAAACAAAAAQAAAAEAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAABAAAAAgAAAAMAAAAEAAAABQAAAAYAAAAHAAAACAAAAAkAAAAKAAAACgAA - AAoAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAAAAsAAAALAAAACwAA - AAsAAAALAAAACwAAAAsAAAALAAAACgAAAAoAAAAKAAAACAAAAAgAAAAGAAAABQAAAAUAAAADAAAAAwAA - AAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAEAAAACAAAABAAAAAUAAAAGAAAACQAAAAsAAAAMAAAADgAAABAAAAARAAAAEgAA - ABMAAAATAAAAEwAAABQAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAAABUAAAAVAAAAFQAA - ABUAAAAVAAAAFQAAABQAAAAUAAAAEwAAABMAAAATAAAAEgAAABAAAAAPAAAADgAAAAsAAAAKAAAABwAA - AAUAAAAEAAAAAwAAAAEAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAQAAAAEAAAADAAAABAAAAAYAAAAJAAAADAAAAA8AAAASAAAAFAAAABcAAAAZAAAAGwAA - AB0AAAAeAAAAHwAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAACAAAAAgAAAAIAAA - ACAAAAAgAAAAIAAAACAAAAAgAAAAIAAAAB8AAAAfAAAAHgAAABwAAAAaAAAAGQAAABYAAAATAAAAEAAA - AA0AAAAKAAAABwAAAAUAAAADAAAAAgAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAADAAAABAAAAAcAAAAKAAAADQAAABIAAAAWAAAAGgAAAB8AAAAjAAAAJgAA - ACkAAAArAAAALQAAAC4AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALwAA - AC8AAAAvAAAALwAAAC8AAAAvAAAALwAAAC8AAAAvAAAALQAAACwAAAAqAAAAKAAAACQAAAAhAAAAHQAA - ABgAAAAUAAAADwAAAAsAAAAIAAAABQAAAAMAAAABAAAAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAEAAAACAAAAAwAAAAYAAAAJAAAADgAAABMAAAAZAAAAHwAAACUAAAArAAAAMAAA - ADUAAAA5AAAAPAAAAD4AAAA/AAAAQAAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQQAA - AEEAAABBAAAAQQAAAEEAAABBAAAAQQAAAEEAAABBAAAAQAAAAD8AAAA9AAAAOgAAADcAAAAzAAAALgAA - ACgAAAAiAAAAHAAAABYAAAAQAAAACwAAAAgAAAAFAAAAAwAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAABAAAAAgAAAAUAAAAJAAAADQAAABMAAAAZAAAAIQAAACoAAAAxAAAAOgAA - AEAAAABGAAAATAAAAE8AAABSAAAAVAAAAFUAAABWAAAAVgAAAFYAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFcAAABXAAAAVwAA - AFcAAABXAAAAVwAAAFcAAABXAAAAVwAAAFYAAABWAAAAVQAAAFUAAABTAAAAUQAAAE4AAABJAAAAQwAA - AD0AAAA2AAAALgAAACYAAAAeAAAAFgAAABAAAAALAAAABwAAAAMAAAABAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAMAAAAGAAAACwAAABEAAAAYAAAAIAAAACoAAAA0AAAAPwAA - AEgAAABRAAAAWQAAAF8AAABkAAAAaAAAAGoAAABsAAAAbAAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAA - AG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAG0AAABtAAAAbQAAAGwAAABrAAAAagAAAGYAAABiAAAAXQAA - AFUAAABNAAAARAAAADoAAAAvAAAAJQAAABwAAAAUAAAADgAAAAgAAAAEAAAAAgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAADAAAACAAAAA0AAAAUAAAAHgAAACcAAAAzAAAAQAAA - AEwAAABXAAAAYQAAAGsAAAByAAAAdwAAAHsAAAB+AAAAgAAAAIAAAACAAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAA - AIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIEAAACBAAAAgQAAAIAAAACAAAAAfwAAAH0AAAB5AAAAdQAA - AG8AAABmAAAAXQAAAFIAAABGAAAAOQAAAC0AAAAiAAAAGQAAABAAAAALAAAABQAAAAIAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABAAAAAkAAAAPAAAAFwAAACEAAAAtAAAAOwAA - AEoAAABXAAAAZQAAAHAAAAB6AAAAggAAAIgAAACNAAAAjwAAAJEAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAA - AJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJIAAACSAAAAkgAAAJAAAACPAAAAiwAA - AIYAAAB+AAAAdQAAAGoAAABeAAAAUQAAAEIAAAA0AAAAKAAAAB0AAAATAAAADAAAAAYAAAADAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAJAAAAEQAAABoAAAAlAAAAMgAA - AEEAAABRCgoIcRUUEaUXFRK8FxUSwRcVEsUXFRLJFxUSyxcVEs0XFRLNFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4WFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhYVEs4WFRLOFhUSzhYVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4WFRLOFhUSzhYVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4WFRLOFhQRzhUUEc4WFRLOFxUSzhYVEs4WFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcV - Es4XFRLOFxUSzhcVEs4XFRLOFxUSzhYVEs4WFRLOFxUSzhcVEs4XFRLOFxUSzhYVEs4WFRLOFhUSzhYV - Es4WFRLOFhUSzhcVEs4XFRLOFxUSzhcVEs4XFRLOFxUSzhcVEs4WFRLOFRQRzhUUEc4VFBHOFhUSzhcV - Es4WFRLOFhUSzhYVEs4VFBHOFRQRzhUTEc4WFRLOFhUSzhYVEs4WFRLOFxUSzhcVEs4XFRLNFxUSzBYV - EsoWFRLHFhUSwxYVEr8WFRK5FBIQoAoICGoAAABJAAAAOQAAACsAAAAfAAAAFgAAAA0AAAAHAAAAAwAA - AAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEAAAAFAAAACgAAABIAAAAcAAAAKAAA - ADUAAABGJSIeqjczLPw5NC7/Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ni7/Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ni7/ODQt/zczLP84NC3/OjYu/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo2L/86NS7/Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3 - L/86Ny//OjYv/zk0Lf84NCz/OjYv/zo3L/86Ni7/OjYv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo2 - Lv86Ni7/Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//Ojcv/zo3L/86Ny//OjYu/zk0 - Lf84NC3/OjUu/zo1Lv86NS7/Ojcv/zo3L/86Ny//OjYu/zo3L/86Ni7/OjUu/zgzLP83Myv/NzMs/zk0 - Lf86Ny//OjYv/zo1Lv85NS7/ODMs/zYyK/82Myv/OTQt/zo1Lv86NS7/OjUu/zo1Lv86Ni7/Ojcv/zo3 - L/86Ni//OjUu/zo2L/86Ni//OjYu/zYyK/8wLSf8HRsXpQAAAD0AAAAuAAAAIgAAABcAAAAOAAAACAAA - AAMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAABQAAAAoAAAASAAAAHAAA - ACgAAAA3KSYijUM9N/9DPTf/Qz43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9CPTb/Qj03/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/QT02/z87NP8+OzP/QT01/0I9Nv9CPjf/Qz43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0M+N/9EPjf/Qz42/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9DPjf/Qj02/0E9Nf9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9EPjf/RD43/0Q+N/9DPjb/Qj02/0Q+N/9EPjf/Qz42/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+ - N/9CPTb/QT02/0M+Nv9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9EPjf/RD43/0M+ - Nv9BPTb/QT01/0I9Nv9CPTb/Qz42/0Q+N/9EPjf/RD43/0M+Nv9EPjf/Qz43/0I9Nv8/PDT/Pzs0/0A8 - NP9CPTb/Qj02/0I9Nv9CPTb/QT02/0A8NP8/OjP/Pzsz/0I9Nv9CPTb/Qj02/0A9Nf9APTX/QT01/0M+ - N/9EPjf/RD43/0Q+N/9EPjf/RD43/0Q+N/9DPjf/QDs0/zUwK/8aGBaIAAAAMAAAACIAAAAXAAAADgAA - AAcAAAADAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAQAAAAQAAAAJAAAAEQAA - ABsAAAAnBQQEOFtXUOtKRT3/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dBOf9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9GQDj/RkA4/0VAOP9HQTn/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dBOf9GQDn/RkA4/0ZAOP9GQDj/RkA4/0dBOf9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dBOf9GQDj/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/RkA4/0U/N/9FPzf/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9HQjr/R0E5/0ZAOP9HQTn/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dCOv9HQjr/R0I6/0dC - Ov9GQDj/RT83/0Q/N/9GQTn/RkE5/0dBOf9HQjr/R0I6/0dCOv9HQTn/R0E5/0dCOv9HQjr/R0E5/0ZB - Of9GQTn/R0I6/0dCOv9HQTn/RkA4/0U/N/9EPjb/RD42/0U/N/9GQDj/RkA4/0ZAOP9EPzf/RD43/0U/ - OP9HQjr/R0I6/0dCOv9GQDj/RkA4/0ZAOP9HQjr/R0I6/0dCOv9BPTX/Mi8p6QMCAjEAAAAhAAAAFgAA - AA0AAAAGAAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADAAAACAAA - ABAAAAAaAAAAJi4tKmNjX1j/SkY9/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0hEO/9HQjr/SUQ8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/R0E5/0VAOP9GQTn/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRDz/SEQ7/0hDO/9IRDv/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9IQzv/SEM7/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0dCOv9FQDj/RkA6/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SUU8/0lFPP9JRTz/SEQ8/0lFPP9JRTz/SUU8/0lF - PP9JRTz/SEM7/0ZBOv9HQjr/SEQ7/0hEO/9JRDz/SUU8/0lFPP9JRTz/SUU8/0lEPP9JRTz/SUU8/0lF - PP9JRTz/SUU8/0lFPP9JRTz/SUU8/0dCOv9GQDn/RkA4/0dCOv9IRDv/SEQ7/0hEO/9IQzr/RkA6/0dC - Ov9JRDz/SUU8/0lFPP9JRTz/SEQ7/0hEO/9IRDv/SUU8/0lFPP9JRTz/SEQ7/zo3MP8UExBZAAAAHwAA - ABUAAAAMAQEBBQAAAAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgAA - AAcAAAAOAAAAFwAAACM+PDqOYl5W/0xIP/9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9JRTz/SUU8/0pGPf9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/SkY9/0hDO/9HQzv/SUU8/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0pGPf9KRj3/SkY9/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/SkY9/0pGPf9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9IRDz/RkE5/0lEO/9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/SUU9/0lFPf9LRz7/S0c+/0pG - Pf9LRz7/SkY9/0lGPf9JRj3/SkY9/0pGPf9KRj3/S0c+/0tHPv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tH - Pv9LRz7/S0c+/0tHPv9LRz7/S0c+/0tHPv9JRj3/SEQ8/0hEPP9JRTz/SkY9/0pGPf9KRj3/SkY9/0lG - Pf9KRj3/S0c+/0tHPv9LRz7/S0c+/0lFPf9IRTz/SkY9/0tHPv9LRz7/S0c+/0tHPv9BPTX/GhgVfwAA - AB0AAAASAAAACgMCAgQAAAABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAECAQEGAAAACwAAABQAAAAeQkE+kmJeVv9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TUlA/01JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/01JQP9KRj7/SkY+/0xIP/9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9MSD//SkY9/0tH - P/9NSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TUlA/0xIP/9MSD//TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TEg//0lGPf9MSD//TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/01JQP9LRz7/TEg//01J - QP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TklA/05JQP9OSUD/TUg//0pGPf9KRj3/TEg//01I - P/9MSD//S0c//0xIP/9MSD//TEg//0xIP/9NSD//TEg//01JQP9OSUD/TklA/05JQP9OSUD/TklA/05J - QP9OSUD/TklA/01JQP9MSD//TEg//0xIP/9MSD//TEg//0xIP/9MSD//TEg//0xIP/9MSD//TEg//0xI - P/9NSD//TklA/05JQP9OSUD/TklA/05JQP9MSD//S0c+/0xIP/9OSUD/TklA/05JQP9OSUD/RkI6/xwa - F4sAAAAZAAAADwMDAwkEBAQDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAABAwMDBAYFBQkAAAAQAAAAGVJPTZNlYFn/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UEtD/09KQv9QSkL/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/T0pB/05J - QP9OSUD/UEtD/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1BKQ/9OSUD/UEpD/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FL - RP9RS0T/UEtD/1BLQ/9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9PSkL/TUg//01I - QP9QS0P/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UUtE/05JQf9KRj7/TEc//05J - Qf9QS0P/UEtD/05JQf9PSUH/T0pC/1BKQv9QSkL/UEtE/1BKQv9QSkL/UEpC/1BLRP9RS0T/UUtE/1FL - RP9RS0T/UUtE/1FLRP9QSkL/UEpC/09KQf9QSkL/UEpC/1BKQv9QS0P/UUtE/1FLRP9RS0T/UEpC/1BK - Qv9QS0P/UUtE/1FLRP9RS0T/UUtE/1FLRP9RS0T/UEpC/05JQv9QSkL/UUtE/1FLRP9RS0T/UUtE/0pE - Pf8mIyCRAAAAFQAAAAwPDg0HBwYFAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAUFBQIZGRgGAAAADAAAABRsaWWYZmFa/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/UkxF/1NN - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NN - Rv9STET/UUtF/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTUb/UkxE/1JN - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NO - Rv9TTkb/UkxF/1JMRf9STEX/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/Uk1G/1FL - RP9RS0T/U01G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NNRv9QSkL/T0lB/1FL - Q/9STEX/U01G/1JMRv9RS0X/UUtE/1FLRP9RS0X/UkxF/1JMRf9STEX/UkxF/1JMRf9TTUb/U05G/1NO - Rv9TTkb/U05G/1NORv9TTkb/UkxF/1JMRf9STUX/U01G/1NNRv9TTkb/U05G/1NORv9TTkb/U05G/1NN - Rv9STEX/U05G/1NORv9TTkb/U05G/1NORv9TTkb/U05G/1NNRv9STEX/UkxF/1NORv9TTkb/U05G/1NO - Rv9NR0D/MS4plgAAABAAAAAJGxkWBQoJCAEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAJCAgBLSspBQ4ODQkAAAAPeXZxnWZiWf9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VE9G/1RP - Rv9VUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1RP - Rv9UT0b/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1RPRv9UT0b/VE9G/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VE9G/1RP - Rv9TT0b/U05G/1VQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9VUEf/U05G/1JN - RP9TTkb/VE9G/1VQR/9UT0b/U05F/1JNRf9TTkb/U09G/1RPRv9UT0b/U09G/1NPRv9UT0f/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1RPRv9UT0b/VVBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQ - R/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VlBH/1ZQR/9WUEf/VE9G/1VQR/9WUEf/VlBH/1ZQ - R/9WUEf/TkpB/zc0LpwAAAAMIR8cBiEfGwMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAADQ0MATg2MwMyMC0GAAAACoJ+eqRmYlr/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1ZQ - SP9WUEj/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9WUEj/VlBI/1ZQSP9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9VUEj/U05G/1RPR/9WUEj/VU9H/1VPR/9VT0j/VlBI/1ZQSP9VT0f/VU9H/1VPSP9VT0f/VU9I/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1dRSf9XUUn/V1FJ/1ZQSP9XUUn/V1FJ/1dR - Sf9XUUn/V1FJ/1BLQ/87ODKjDw4MCDQwKwUoJSEBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABGQ0ABTktGBD06NQeHg32qaGNa/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9ZU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9ZU0r/WVNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WVNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WVNK/1hSSf9YUkn/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WFJJ/1dSSf9XUkn/WFJJ/1dRSP9YUkn/WFJJ/1lSSf9ZUkn/V1FJ/1dRSP9XUUj/VlBH/1dR - SP9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9ZU0r/WVNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9aU0r/WlNK/1pTSv9ZU0r/WVNK/1hSSf9YUkn/WlNK/1pT - Sv9aU0r/WlNK/1pTSv9TTUX/Pzs0qkE9NgU7NzECMCwnAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAFlWUAFZVU4EioZ/sWhjWv9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tUS/9bVUv/W1VL/1tV - S/9bVUv/WlRL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9aVEv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVEv/WlNK/1pTSv9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1pUS/9YUkn/WVJK/1tVS/9bVUv/W1VL/1tUS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1pUS/9aU0r/WlNK/1pTSv9aU0r/WlNK/1pUSv9bVEv/WlNK/1pTSv9YUkn/WFJJ/1dR - SP9ZUkr/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tV - S/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tVS/9bVUv/W1VL/1tUS/9bVEv/WlRL/1pTSv9aU0r/WlRK/1tV - S/9bVUv/W1VL/1tVS/9bVUv/VU9G/0E9NrFHQzsCQj03AQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABkYFkBYVxVAouHgbhmYVj/W1VM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVTP9bVEv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/W1VL/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1pTSv9aVEv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pUS/9bVUv/XFZM/1xWTP9bVUv/W1VL/1pUS/9aVEv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVEv/WFNK/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVEv/WlNK/1tUS/9bVEv/W1RL/1tUS/9bVUv/XFZM/1xWTP9cVkz/W1RL/1pT - Sv9ZU0r/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1VPR/9CPje5TUhAAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAGhiWwGLh4HBZ2FY/1tW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9aU0v/W1RL/1tVS/9cVkz/XFZM/1tVS/9bVUv/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tU - S/9aVEv/W1VL/1xWTP9cVkz/XFZM/1pUS/9YUkn/WlNK/1tUS/9bVUv/W1RL/1lTSv9aU0r/WlNK/1tV - S/9cVkz/XFZM/1xWTP9bVUv/WVNK/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1lTSv9ZU0r/WlNK/1tUS/9bVEv/W1VL/1xWTP9cVkz/XFZM/1tV - S/9bVEv/W1RL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9bVUv/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9WUEf/Qz43wQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAioaByWZg - V/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1hTSv9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1lT - Sv9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9aVEv/WVNK/1tUS/9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/WlNK/1tVS/9cVkz/XFZM/1xWTP9bVUv/WFNK/1pTSv9bVEv/WlNK/1pTSv9aU0r/W1RL/1tU - S/9bVUv/XFZM/1xWTP9bVUv/WVNL/1lTSv9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/V1JJ/1lSSv9bVEv/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1tUS/9bVEv/XFZM/1xWTP9bVUv/W1RL/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/WlRL/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9bVEv/W1RL/1tUS/9bVEv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/V1FI/0M/OMkAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAImF - f9JlX1b/XFZM/1xWTP9cVkz/XFZM/1tVS/9aU0r/WlNK/1pTS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9aU0r/W1RL/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9ZU0r/WFJJ/1tUS/9bVEv/W1RL/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/W1VL/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1tVS/9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9aU0v/W1RL/1tUS/9aU0r/WlNK/1tU - S/9cVkz/XFZM/1xWTP9bVUv/WlNK/1tUS/9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pUS/9ZU0r/WlNK/1tUS/9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tUS/9aU0r/WlNL/1tVS/9aU0v/WFJK/1dRSP9XUUj/WlRL/1xWTP9cVkz/XFZM/1xW - TP9bVUv/W1RL/1lTSv9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1VM/1xWTP9bVUv/WVNK/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1dRSP9EPznSAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACIhH7bY15V/1xWTP9cVkz/XFZM/1xWTP9bVUv/WFJJ/1hSSf9aU0r/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9ZU0r/WFJK/1pTSv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/VlBI/1VQR/9bVEv/W1RL/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9bVEv/XFZM/1tVS/9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9aVEv/WVNK/1pUS/9bVEv/W1RL/1tU - S/9bVEv/XFZM/1xWTP9cVkz/W1VL/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/WlNK/1pTSv9bVEv/W1VL/1xW - TP9cVkz/XFZM/1xWTP9bVUv/WVNK/1lTSv9bVEv/WFJJ/1RPR/9TT0b/VlFI/1tVS/9cVkz/XFZM/1xW - TP9cVkz/WlNK/1hSSv9YUkn/W1RL/1tVS/9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1pT - Sv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9YUUn/RUE52wAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAh4N95GJcU/9cVkz/WlRL/1pUS/9cVkz/XFZM/1tVTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9aVEr/VlFI/1hSSf9aU0r/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1VL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1RL/1RORv9VUEj/W1RL/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1VL/1xWTP9bVUv/W1ZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1tUS/9bVEv/W1RL/1tU - S/9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1lTSv9XUUn/WVNK/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVEv/W1RL/1hSSf9TTkb/VU9H/1hSSf9cVkz/XFZM/1xW - TP9cVkz/XFZM/1pUS/9aU0r/WVNK/1tUS/9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WFJJ/0ZBOuQAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIaCe+xhXFL/W1VL/1dRSP9YUkn/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tU - S/9WUUj/VU9H/1VQR/9YU0r/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/WlRL/1dSSf9TTUb/V1FJ/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tVS/9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1tUS/9bVEv/XFZM/1tV - S/9bVEv/W1RL/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1ZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9ZU0r/V1FJ/1hS - Sf9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1RL/1tUS/9ZU0r/VlBI/1dRSP9aVEv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9bVEv/WVNK/1lTSv9bVEv/XFZM/1xWTP9cVkz/XFZM/1tV - TP9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9HQjvsAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACFgXr0YFpR/1pUS/9WUEj/WFJJ/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/WVNK/1hSSv9ZU0r/WlRL/1xWTP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1dRSf9VUEf/VVBH/1pUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1tVS/9bVEv/W1RL/1tV - S/9bVEv/WlNK/1pTS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1pT - Sv9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9cVkz/W1RL/1hSSf9YUkr/W1VL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1lTSv9ZU0r/W1RL/1xWTP9cVkz/XFZM/1tV - S/9YU0r/WFJJ/1lSSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aU0r/R0M79QAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAhIB5/V9ZUP9bVUv/WVNK/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9VUEf/VlBI/1lTSv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pTSv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WlNL/1pTS/9bVEv/W1RL/1tU - S/9bVEv/WlNK/1lTSv9ZU0r/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/W1VM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9bVEv/W1VL/1pTSv9ZU0r/WlNK/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1VL/1xWTP9cVkz/XFZM/1tV - S/9YUkn/VlBI/1dRSP9YUkn/WlRL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WlRK/0hD - O/0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAfnpyB4N/eP9fWU//XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9YUkn/VVBH/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1VL/1pTS/9bVEv/W1VL/1tU - S/9bVEv/W1RL/1pTS/9ZU0r/WlRL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1VL/1tUS/9aU0r/WlNK/1tU - S/9bVUz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/V1FJ/1VQR/9XUUj/WFJJ/1pTSv9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pU - S/9JRDz/S0Y+CAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAH56chCCfnf/X1lP/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/WlNK/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1RL/1pTS/9cVkz/XFZM/1tV - S/9bVEv/W1RL/1tUS/9ZU0r/WlNK/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1RL/1xWTP9cVkz/XFZM/1tV - S/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1pUS/9YUkr/WlNK/1tUS/9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9aVEv/SUQ8/0tGPhAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+enIYgXx1/19ZT/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9ZU0r/WlRL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVEv/W1RL/1xW - TP9cVkz/W1RL/1tUS/9ZU0r/WVNK/1pTS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1RL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVkz/W1VL/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1RL/0lEPf9KRT0ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf3pzIYB7dP9eWE7/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9ZU0v/WlNK/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9aU0r/V1FJ/1hSSf9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WlNL/1pT - Sv9bVUv/XFZM/1tVS/9aU0v/WlNK/1tUS/9bVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tUS/9JRT3/SkU9IQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH96cyp/eXL/XlhO/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/V1FJ/1lSSv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/WVNK/1ZRSP9XUUj/WFJJ/1pUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9ZU0r/W1VL/1tVS/9bVEv/W1RL/1tUS/9bVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVEv/W1RL/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVEv/SkU9/0pFPSoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/enMzfXhx/15YTv9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/WlNK/1pTSv9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9XUUj/V1FI/1dRSf9aU0r/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/WlNL/1tUS/9aU0r/WlNK/1pTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9aU0r/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1RL/0tGPv9KRT0zAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfnpzO3p2bv9cVk3/WlRL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1pTSv9aU0r/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/WFJK/1hSSf9ZU0r/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tUS/9bVEv/V1FI/1ZQR/9XUUj/WVNK/1pUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9aU0r/WlNK/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9MRj//SkU9PAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH55ckV4c2z/WlVL/1pT - Sv9bVUz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9ZU0r/WVNK/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1lTSv9ZU0r/W1RL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/WlNK/1VPR/9STkb/U05G/1dRSP9YUkr/W1RL/1tUS/9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/WVNK/1pTSv9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/TUdA/0pFPkUAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+eXJNd3Ns/11X - Tf9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/WFJJ/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VM/1tVS/9bVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/WlRL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9UT0b/UkxF/1JNRf9WUEf/WFJJ/1hSSv9ZU0r/W1RL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9bVUv/WVNK/1ZQSP9aU0r/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/01IQf9KRj5OAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfXlyVnZx - av9dV03/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pUS/9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1lTSv9YUkr/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9ZU0r/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/WFJJ/1dRSf9XUUj/V1FJ/1lTSv9ZU0r/WVNK/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/W1RL/1hTSv9XUUn/WlRL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9OSUH/S0Y+VgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH15 - cV50b2j/XFZN/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - TP9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9aVEv/WlRL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tVS/9bVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1pU - S/9ZUkn/WlRK/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVUv/WlRL/1lTSv9bVEv/W1VL/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tUS/9ZU0r/WFJJ/1tU - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/UEpC/0tGPl4AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAB9eXFmcm5m/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9aVEv/VlBI/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9aU0r/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/W1VL/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - S/9XUUj/U05G/1VQR/9ZU0r/WlNK/1tVS/9cVkz/W1VL/1tVS/9bVEv/W1VL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9aU0r/WVNK/1tWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xW - TP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tVS/9bVEv/WVNK/1dS - Sf9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VM/1BLQ/9KRj5nAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAfXlxb3BsZP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/WVJK/1VQSP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tV - S/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/WFJJ/1lTSv9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tUS/9cVkz/XFZM/1xW - TP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/V1FJ/1NNRv9TTkb/VVBH/1VQR/9YUkn/WlNK/1lTSv9YUkr/WlNK/1pTSv9bVUv/XFZM/1xW - TP9cVkz/W1ZM/1tVS/9aU0r/WVNK/1hSSf9cVkz/XFZM/1xWTP9cVkz/W1VL/1tVS/9bVUv/W1VL/1tV - S/9cVkz/XFZM/1pUS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVEv/W1VL/1xWTP9bVUv/WlNK/1dR - SP9XUUj/WVNK/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9RTEP/S0Y+cAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAH14cXlvamH/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9bVUv/W1ZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1lTSv9XUUn/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VL/1hSSf9ZU0r/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tU - S/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVEv/W1VL/1tV - S/9aVEv/WVNK/1pUS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/2JcUv9pY1r/amRb/2pk - XP9rZV3/a2Ze/2tmXf9rZVz/amRc/2RfVv9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1pUS/9YUkn/VE9G/1NORv9STEX/VE9H/1dRSP9XUUj/V1FI/1hSSf9ZU0v/WlRL/1tV - S/9bVEv/W1RL/1pTSv9eWVD/Y15V/2NdVf9bVUv/XFZM/1xWTP9cVkz/XFZM/1tUS/9ZU0r/WlRL/1pU - S/9ZU0r/WlRL/1xWTP9aVEv/WlRL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WlNK/1lTSv9bVEv/W1RL/1lT - Sv9VUEj/VU9H/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9aVEv/UkxE/0tG - PnkAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACGgnuBbmhg/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/WVNL/1hSSf9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1RL/1hSSv9WUEj/WVRK/1xWTP9cVkz/XFZM/1xWTP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tV - TP9bVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/WlRL/1tU - S/9aU0v/WVNK/1dSSf9YUkn/WlRL/2VfVv9oYln/amVc/3RvaP95dG3/e3dw/396dP+BfXf/gn54/4J9 - d/+CfXf/gX13/4N+eP+FgHr/hYB6/4aBe/+Hgnz/hoF7/4R/ef+BfXb/fnlz/25pYf9sZ17/amVc/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9UUEf/U05G/1VQR/9XUUj/VlFI/1dRSf9YUkn/WlRL/1pT - Sv9YUkr/WlNK/1lTS/9bVkz/ZmFZ/3dzbP95dG3/W1VL/1xWTP9cVkz/XFZM/1tVS/9aU0r/V1FI/1hS - Sf9YUkn/VVBH/1hSSf9aU0r/WFJJ/1lTSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lTSv9YUkr/WlNL/1tU - S/9aU0r/VlFI/1dRSP9aVEv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9YUkr/VU9H/1BL - Q/9GQjqBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAj4yFim1oX/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1pUSv9bVUv/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1pUS/9WUEj/WVRK/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1VM/1ZRSf9WUEj/WFJJ/1tVS/9cVkz/XFZM/1xWTP9cVkz/WlRL/1tVS/9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/W1RL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tV - S/9bVUv/W1VL/2RdVf9mYFf/cW1l/3dyav97dm//fHhx/3x5cv99eXL/fHhx/3p3cP95dW7/eXVu/3l1 - bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1bv95dW7/eXVu/3p3cP99eXL/gHx1/4J+d/+FgHr/iIN8/4iE - ff+EgHn/f3t0/21oYP9qZFv/XFZM/1xWTP9bVEv/WFNK/1hSSf9YUkn/V1JJ/1hSSf9YUkn/WFJK/1lT - S/9ZU0r/V1JJ/1lTSv9aVkz/XFdO/2diWv94dG7/f3t1/2VfVv9cVkz/XFZM/1tVS/9bVEv/W1RL/1hS - Sv9YUkn/VVBH/1JNRf9UTkb/VlFI/1dRSf9aU0r/W1RL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/WlRL/1pUS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9aVEv/WVNK/1pU - S/9bVUv/WlRL/1hSSf9ZU0r/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/WlRK/1ZR - SP9QS0P/QT02igAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAI6LhJNsZ17/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1lSSv9WUEj/WlRL/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9bVUv/VlBI/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9UT0f/WVNK/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9gWlD/Z2JZ/3FrZP92cWn/eXVt/3p2bv96dm7/eXVu/3l1bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1 - bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1bv95dW7/eXVu/3l1 - bv96dnD/f3t0/4SAef+IhH7/iIR9/4F9dv9zbmf/Z2FY/1tWTP9bVUv/W1RL/1tUS/9aU0r/WlNK/1tU - S/9bVEv/WVNK/1dRSP9aVEv/XlhO/2VfVv93cmv/eXRt/4F8dv9qZFz/WlRL/1pUS/9bVEv/W1RL/1tU - S/9bVEv/WVNK/1VQR/9RS0T/UUtD/1JMRf9VT0f/WlNK/1tVS/9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1tVS/9bVUv/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/W1VL/1tU - S/9cVkz/XFZM/1xWTP9bVEv/W1VL/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xWTP9cVkz/XFZM/1xW - TP9cVkz/VE5G/0I+N5MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOi4Wba2de/1xXTf9cV03/W1ZM/1tVTP9bVkz/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1tWTP9YU0r/Vk9I/1pVTP9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1tVTP9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9bVkz/WlVL/1tWTP9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XllQ/2Nf - Vf9vamL/dHBo/3dza/94dG7/eHVv/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2 - cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2 - cP95dnD/eXZw/3l2cP95dnD/eXZw/3x5c/+EgHr/iYV//4eEff+AfXb/bmpi/2JdVP9cV03/W1ZN/1xX - Tf9cV03/W1ZM/1lUS/9aVEv/XVhO/2RgV/93c23/eXVv/3l1b/9/fHX/d3Ns/1lTSv9aVUz/W1ZM/1tW - TP9bVkz/WlRL/1hSSv9XUEn/VE5G/1JMRP9STEP/U05F/1lTSv9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1tWTP9bVk3/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1RPR/9CPzecAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjYqEpGpmXf9cV03/XFdN/1pVS/9YUkr/WFJJ/1lU - S/9bVkz/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/W1ZM/1lUS/9bVkz/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9fWlD/ZmJZ/21p - Yf9xbWX/dnJr/3h1bv95dm//eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2 - cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dW//eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2 - cP95dnD/eXZw/3l2cP95dnD/eXZw/3l2cP95dnD/eXVv/3l1b/9+enT/hYJ8/4qHgP+DgHn/dHBo/2Ne - Vf9cV03/XFdN/1xXTf9dWE7/XFdN/2NeVf91cmz/eHRu/3l1b/95dW//fHlz/3p2cP9YUkn/WlVM/1tW - TP9bVkz/W1ZM/1hSSv9WUEj/WFJK/1hTSv9XUUn/U01F/1JMRP9WT0j/WlVL/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9bVkz/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9VUEf/Qj44pAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI2JhK1pZVz/XFdN/1tWTP9ZU0v/WFJJ/1hS - Sf9YUkr/WVNL/1tWTP9bVkz/W1ZM/1xXTf9cV03/XFdN/1xXTf9cV03/W1ZM/1tWTP9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/15ZUP9mYVn/bmlh/3Ft - Zf91cWr/eHVu/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/enZv/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP95dm//eXZv/3l1bv96dm//enZv/3p2b/96dm//enZv/3p3cP97eHL/hIF7/4qH - gP+FgXv/dXFp/2NeVf9hXFP/X1pQ/2NfVv92cmz/dnJs/3dzbf95dW7/enZv/3p3cP9+e3T/ZmFY/1tW - TP9bVkz/W1ZM/1pVS/9XUEj/VU5H/1hSSv9aVUv/W1ZM/1lTSv9WUEj/VlBI/1pVS/9cV03/XFdN/1xX - Tf9cV03/W1ZM/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/W1ZM/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/VVBI/0I+N64AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACMiYK2aGRb/1xXTf9bVkz/WFNK/1pU - S/9aVUv/WlVL/1pUS/9aVUv/W1ZM/1tWTP9bVkz/XFdN/1xXTf9cV03/W1ZM/1dRSf9ZU0r/W1VM/1xX - Tf9cV03/XFdN/1xXTf9bVkz/W1VM/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XllP/2RfV/9rZl7/b2ti/3Vx - av95dm//endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP95dm//eHRu/3d0bf93c23/eXVu/3p2b/96dm//enZv/3p2b/96dm//endw/3p3 - cP97eHH/g4B5/4qHgP+AfHX/a2Ze/2ZhWP94dG3/eHRu/3ZzbP93c23/eHRu/3p2b/96d3D/gHx2/2pm - Xv9bVkz/W1ZM/1tWTP9aVkz/V1FJ/1VOR/9YUkn/W1VM/1xXTf9cV03/W1ZM/1tWTP9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1tWTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1VQSP9DPzi2AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAioeBvmdiWf9bVkz/WlVL/1lT - Sv9bVUz/W1ZM/1tWTP9bVkz/W1ZM/1tWTP9bVkz/W1ZM/1xXTf9cV03/XFdN/1pVS/9VT0f/V1FJ/1pU - S/9cV03/XFdN/1xXTf9bVkz/WVRL/1dRSf9bVkz/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/YFtS/2hjW/9saGD/cm9n/3l1 - bv96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP96d3D/endw/3p3cP96dm//endw/3p3cP96d3D/endw/3p3cP96d3D/endw/3p3 - cP96d3D/endw/3p3cP96dm//eHRu/3ZxbP91cWv/dnJs/3h1bv95dW7/enZv/3p3cP96d3D/enZv/3p2 - b/96d3D/endw/3p3cP97eHH/gH13/3Rwaf92cmz/eXVu/3l1bv93c23/dnNs/3d0bf96dm//endw/398 - df95dW7/WlRL/1pVS/9bVkz/WlZM/1hSSf9XUEj/V1FI/1lUSv9bVkz/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9cV03/XFdN/1xX - Tf9cV03/XFdN/1xXTf9cV03/XFdN/1xXTf9WUUj/Qz85vwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAImGgMdnYln/W1ZM/1pV - S/9ZU0v/XFdN/11YTv9dWE7/XVhO/1xXTf9cV03/XFdN/1xXTf9dWE7/XVhO/11YTv9aVEv/V1BJ/1dQ - Sf9aVEv/XFdN/11YTv9cV03/W1ZM/1lTS/9aU0v/XFdN/11YTv9dWE7/XVhO/11YTv9cV03/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9eWVD/ZF9W/2plXP9vamP/d3Rt/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endw/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/enZw/3l1bv94dG7/d3Nt/3dzbf95dG7/enZv/3p3cP96d3H/endx/3p3 - cP96d3D/endw/3p3cf96d3H/endx/3p3cP94dG7/dnJs/3l1b/96d3D/eXZv/3l0bv95dm//endx/3p3 - cf99eXT/f3t0/15ZUP9aVEz/W1ZN/1tWTP9bVUz/WVJK/1lSSv9aVEz/XFdO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/V1NK/0RBOscAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACJhoDPZWBX/1tW - TP9ZU0v/WlNL/1xXTf9dWE7/XVhO/11YTv9cV03/XFdN/1xXTf9cV03/XVhO/11YTv9cV03/WVJL/1dQ - SP9WT0j/WlRL/1xXTf9cV03/W1ZM/1lTS/9aVEv/W1ZN/11YTv9dWE7/XVhO/11YTv9dWE7/XFdN/1xX - Tf9cV03/XFdN/1xXTv9cV03/XFdN/1xXTf9cV03/W1ZM/1xXTf9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/1xXTf9cWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9gW1L/Z2JZ/2pmXf9zb2j/enZw/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/enZw/3l0b/95dW7/enZv/3l0bv93dG7/eHRu/3l0bv96dnD/endx/3p3 - cf96d3D/endw/3p3cP96d3H/endx/3p3cf96d3D/d3Nt/3Vxa/95dW7/eXZv/3l1b/96dnD/endw/3p3 - cf96d3H/endx/4J+d/9oZFv/WlNL/1tWTf9bVk3/WlNL/1pUS/9aVEz/W1ZM/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/1hTSv9FQTrPAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIR+2GNe - Vv9bVkz/WlVL/1xXTf9dWE7/XVhO/11YTv9dWE7/XVhO/1xXTv9dWE7/XVhO/11YTv9dWE7/XFdN/1pU - S/9XUUn/V1BJ/1pUS/9cV03/WlVM/1lTSv9ZU0v/XFdN/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/1xXTf9bVUz/W1VM/1tWTP9bVkz/WlRL/1ZQSP9ZUkr/XFdN/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/1xXTf9YUUn/W1VM/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9iXVP/ZmFZ/2tnX/93c23/endx/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p2cP94dG//eXVv/3p3cf96d3H/eXVw/3h0b/93c27/eXVw/3p3 - cf96d3H/endx/3p3cf96d3H/endx/3p3cf96d3H/endx/3h0b/93c27/eXVw/3h0b/95dG//endx/3p3 - cf96d3H/endx/3p3cf+BfXj/cW1l/1tWTP9cV03/XFdN/1pVTP9bVk3/XFdN/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9ZU0r/RUI62AAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIaD - feFhXFP/WVJL/1tWTP9cV03/XVhO/11YTv9dWE7/XVhO/1xXTf9bVkz/XVhO/11YTv9cV03/XFdN/1xX - Tf9aU0v/WVNL/1lSSv9aVEv/WlVL/1lSSv9aVEv/XFdN/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9cV03/WlRL/1lTS/9ZU0v/WlRL/1lTSv9XUEn/WlRL/1xXTf9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9cV03/WVNK/1pVTP9cV03/W1ZN/1xX - Tf9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/15ZT/9jXlX/ZmJZ/25qYv95d3H/enhy/3p4 - cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4 - cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4 - cv96eHL/enhy/3p4cv96eHL/enhy/3p4cf96d3D/endw/3p3cP96eHH/enhy/3p4cf95dW//eHRv/3l2 - cP96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cf96eHH/endx/3p3cP94dG7/d3Nu/3p3 - cf96eHL/enhy/3p4cv96eHL/fnx1/3t3cP9cV03/XVhO/11YTv9bV03/XFdN/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/1xXTf9cV03/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/WVRL/0ZDO+IAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACGgnzqYFpS/1pTS/9cV03/XVhO/11YTv9dWE7/XVhO/11YTv9cV03/XFZN/11YTv9dWE7/XVhO/1xX - Tf9bVkz/WlNL/1pTS/9aU0v/WlNL/1pTS/9aVEz/XVdO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XFdO/1pUTP9aU0v/WVNL/1pTS/9ZUkv/V1BI/1xWTf9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9cVk3/XFZN/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/15ZT/9iXVT/ZGBX/3JvZ/96eHL/enhy/3p4 - cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4 - cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/eHVu/3JvaP9taWL/Z2Rd/2RgWf9jX1j/YV1V/2Bc - Vf9jX1j/Y19Y/2ZjXP9raGD/cW5n/3Zzbf96eHL/enhx/3p3cf96eHH/enhy/3p4cv96eHL/endx/3l1 - b/96eHH/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cv96eHL/enhy/3p4cf96d3H/eHRu/3d0 - bv96d3H/enhy/3p4cv96eHL/enhy/3x5c/+BfXb/Y15V/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11Y - Tv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/11YTv9dWE7/XVhO/1pVTP9HRDzqAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAhoN982BbUv9cVk3/XVdO/15ZT/9eWU//XllP/15ZT/9eWU//XVdO/1tVTP9cVk7/XllP/15Z - T/9eWU//XVdO/1xVTf9aVEz/WlNM/1pTS/9bVU3/XVdO/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9cVk7/W1RN/1pUTP9bVEz/WVJL/1hSSv9dWE7/XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9dWE7/XllP/15ZT/9eWU//XVhO/11Y - Tv9eWU//XllP/15ZT/9eWU//XVhO/11YTv9eWU//XllP/11YTv9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9iXVP/ZWBX/3Vxav98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv97eHH/dHBp/2tmX/9iXVX/WVNL/1ZQSP9WUUn/V1FJ/1dSSv9aVUz/WlVM/1pV - TP9aVUz/WlRL/1lUS/9WUEj/VVBI/1RPR/9UT0f/VVBI/15aUv9oY1z/cm5n/3t3cP98eXL/e3hy/3p3 - cf96d3H/e3hy/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv97eXL/endx/3l1 - cP95dnD/enhx/3x5cv98eXL/fHly/3x5cv98eXL/hIB5/2tnXv9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XVdO/11YTv9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9cVk3/SEU98wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIWCfPthW1P/XVhO/15ZT/9eWU//XllP/15ZT/9eWU//XllP/11YTv9cVk3/XFZO/15Z - T/9eWU//XllP/15ZT/9dV07/WlRM/1pTS/9ZU0v/XFZN/15ZT/9eWU//XllP/15ZT/9eWU//XllP/11Y - Tv9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XVdO/1xWTv9bVUz/W1RM/1lTS/9aVEz/XVhO/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XVdO/1xWTf9cVk3/XllP/11YTv9dWE7/XllP/11YTv9cVk7/XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9hXFP/ZF9W/3dzbP98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv98eXL/e3hx/3NvaP9mYVr/WlRM/1dRSf9YUkr/WlRL/1tWTf9cV03/XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9dV07/W1VM/1pUTP9YU0r/VVBI/1RPR/9VUEj/YVxV/25q - Y/96dnD/e3hy/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv97eHL/e3hy/3x5cv98eXL/fHly/3x5cv98eXL/fHly/4J+eP92cmr/XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/11YTv9dWE7/XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XFdN/0pF - PvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAHZxagWFgXv/YVxT/15ZT/9eWU//XVhO/11YTv9eWU//XllP/15ZT/9dWE7/XVdO/1xW - Tf9eWU//XllP/15ZT/9eWU//XVhO/1tVTP9aVEz/W1VN/11YTv9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XVdO/11XTv9dWE7/XVhO/1xWTf9bVEz/XFVN/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/11Y - Tv9dWE7/XllP/15ZT/9eWU//XVhO/1xWTf9cVk3/XFZN/15ZT/9dWE7/XVhO/15ZT/9eWU//XVhO/15Z - T/9eWU//XllP/1xWTv9cVk3/XVhO/15ZT/9eWU//XllP/15ZT/9gW1H/ZF9W/3d0bf98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv94dW7/amVd/1tWTv9YUkr/WVRL/1tWTP9dV07/XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9dWE7/XVdO/11XTv9eWU//XllP/15ZT/9cV03/WlVM/1RP - R/9QS0T/VVBJ/2VhWf92c2z/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv+AfXb/fnp0/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/1xX - Tv9KRj//Uk1EBQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACAfHUNhIF6/2FcU/9eWU//XllP/11XTv9dV07/XllP/11XTv9eWE//XVdO/11X - Tv9dV07/XllP/15ZT/9eWU//XllP/15YT/9bVU3/XVdO/11YT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XlhP/11XT/9eWU//XllP/15ZT/9eWE//W1VM/1xX - Tv9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9dWE7/XVdO/15YT/9eWU//XllP/1xXTv9aVUz/XFZN/11YTv9eWU//XllP/15ZT/9eWU//XllP/15Y - T/9eWU//XllP/15YT/9dV07/XlhP/15ZT/9eWU//XllP/15ZUP9gW1H/Y11U/3h0bf98eXL/fHly/3x5 - cv98eHL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3h0 - bv9oYlv/WlRM/1pUTP9bVU3/XFdO/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XlhP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15YT/9eWE//XllP/15ZT/9eWU//XllP/15Z - T/9cV07/WVRM/1lTS/9YUkr/WFJK/21oYf98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5 - cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fHly/3x5cv98eXL/fnp0/4J+eP9qZFz/XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWE//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15ZT/9eWU//XllP/15Z - T/9dV07/S0ZA/01IQQ4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAgHx2F4R/ef9iXFP/X1lQ/11YT/9dV07/XVdO/15YT/9eWE//XlhP/15Y - T/9dV07/XlhP/19ZUP9fWVD/X1lQ/19ZUP9fWVD/XVdO/11XTv9eWE//X1lQ/15YT/9eWE//X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/15YUP9eWFD/X1lQ/19ZUP9fWVD/XlhP/1hT - Sv9aVUz/XlhP/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/15YT/9eWE//XlhP/15YT/9cVk3/W1VN/11XTv9eWE//X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9eWE//X1lQ/19ZUP9fWVD/X1lQ/19ZUP9gWlH/YlxU/3dzbf99enT/fXp0/316 - dP98enT/fHlz/3x5c/98eXP/fHp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/e3dx/2pl - Xv9bVU3/W1VN/1xWTv9eWE//X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/15YT/9eWE//X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/XlhP/15Y - T/9fWVD/XlhP/15YT/9eWE//XlhP/2VgWP97eHL/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316 - dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP+Ef3r/bWhg/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/0xHQP9NSEEXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIF9dh+Cfnj/YVtT/19ZUP9dV07/XVdO/15YT/9fWVD/X1lQ/19Z - UP9eWE//XVdO/15YT/9fWVD/X1lQ/19ZUP9fWVD/XlhP/11XTv9dV07/XlhP/19ZUP9dV07/XlhP/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/XlhP/19ZUP9fWVD/X1lQ/1xX - Tf9XUUn/WVRL/11XTv9eWE//X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/15YT/9eWE//XlhP/15YT/9dV0//W1ZN/1tWTf9dV07/XlhP/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/YFpR/3Vxa/99enT/fXp0/316 - dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/cW1m/15X - UP9bVU3/XVdO/15YT/9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/11XTv9dV07/XlhP/19ZUP9fWVD/XlhP/15YT/9fWVD/X1lQ/19ZUP9fWVD/X1lQ/15Y - T/9eWE//X1lQ/15YT/9gWlH/YVxT/2ljW/98eHL/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316 - dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/fXp0/316dP99enT/g355/3x3 - cf9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/15YT/9MR0H/TEhBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBfXYogX12/2FbU/9fWVD/XlhP/15YT/9eWE//X1lQ/19Z - UP9fWVD/XlhP/11XTv9eWE//X1lQ/19ZUP9fWVD/X1lQ/15YT/9dV07/XVdO/11YT/9eWFD/XVdP/15Y - T/9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9bVk3/VlBI/1pUS/9eWE//X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XVdO/1tVTP9cVk7/XlhP/15YT/9eWE//XVdO/1tWTf9cVk3/XVdO/15YT/9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/3JsZf9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP97d3H/ZmFZ/1tV - Tf9cVk7/XlhP/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/15YT/9dV0//XVdO/15YT/9fWVD/X1lQ/15YT/9eWE//X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9eWE//XlhP/19ZUP9gWlH/YlxT/2lkXP99eHL/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/4F8 - d/+AfHb/X1pR/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/XlhP/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19ZUP9fWVD/X1lQ/19Z - UP9fWVD/X1lQ/19ZUP9eWE//TUdB/0xIQSgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgX12MIB8dP9hXFP/X1pQ/15ZT/9eWU//XllP/19a - UP9fWlD/XllP/15ZT/9dWE7/XlpQ/19aUP9fWlD/X1pQ/19aUP9eWU//XVhO/11YTv9eWU//XllP/15Z - T/9fWlD/X1pQ/19aUP9fWlD/XllP/19aUP9eWlD/X1pQ/15ZT/9eWU//XllP/19aUP9fWlD/X1pQ/19a - UP9eWU//WlVM/1dRSf9bVk3/XllQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/XllP/1tWTf9YUkr/W1ZM/11YTv9fWlD/XllP/15ZT/9dWE7/XVhO/11YTv9eWU//X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/2tnX/9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP92cmv/X1pR/1xX - Tf9dWE7/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9eWU//XVhO/11YTv9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/XllP/19aUP9gW1H/Yl1T/2llXP99eXL/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP99enP/fXpz/356dP9+enT/fnp0/356 - dP9+enT/g4B5/2tmXv9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/15ZT/9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/XllP/01JQv9MSEAxAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIF9dzl+enP/YFxS/19aUP9eWU//XllP/19a - UP9fWlD/XllP/11YTv9dWE7/XVhO/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/15ZT/9eWU//XllP/15Z - UP9eWU//X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/XllP/19aUP9eWU//XVhO/11YTv9fWlD/X1pQ/19a - UP9fWlD/XVlP/1lUS/9XUUn/XFdN/15ZT/9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/15ZT/9aVUz/WlRL/11YTv9eWU//X1pQ/15ZT/9eWU//XllP/11ZT/9dWE//XVhO/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/XllP/2VgV/99eXP/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9wbGX/XFhO/11Y - Tv9eWU//X1pQ/19aUP9fWlD/XllP/15ZT/9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/15ZT/9dWE7/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/15ZT/9eWU//YVxS/2hkW/99eXL/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/316c/98eXP/fHlz/3x5c/9+enT/fnp0/356 - dP9+enT/fnp0/4SAev9wbGT/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9eWU//X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/15ZT/9OSkL/TEhAOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBfXZCfXlx/2BbUf9fWlD/XllP/11Y - Tv9eWU//XllP/15ZT/9dWE7/XVhO/15ZT/9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/XllP/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/15ZT/9eWU//X1pQ/19a - UP9fWlD/X1pQ/15ZT/9ZVEv/V1FJ/1lUS/9eWU//X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/XVhO/11YTv9eWU//XllP/15ZT/9eWU//XllP/15ZT/9dWE//XVhP/11Y - Tv9eWU//X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/XllQ/19aUf95dm//fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/316dP9rZ1//XFdO/11Y - Tv9eWU//X1pQ/19aUP9fWlD/X1pQ/15ZT/9eWU//X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9eWU//XllP/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9eWU//XVhO/2VhWP98eXL/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/356 - dP9+enT/fnp0/356dP9+enT/fnp0/356dP9+enT/fnp0/316dP98enP/fHlz/3t5c/98eXP/fnp0/356 - dP9+enT/fnp0/356dP+Cf3j/fXhy/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/XllP/15ZT/9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9eWU//T0tD/0xIQUIAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgX12S3x4cP9hXFL/YFtR/19a - UP9fWlD/X1pQ/19aUP9fWlD/X1pQ/19aUP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWlD/X1pQ/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/XllP/1tUTP9ZU0v/XllQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWlD/XllP/15ZT/9eWU//XllQ/11Y - T/9dWE//XlpQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/X1pQ/19aUP9yb2f/fnx2/358 - dv9+fHb/fnx2/358dv9+fHb/fnx2/358dv9+fHb/fnx2/358dv9+fHb/fnx2/317df9qZl7/XllP/15a - UP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/X1pQ/19bUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/X1pQ/1pVTP9qZl7/dnNt/317df9+fHb/fnx2/358dv9+fHb/fnx2/358 - dv9+fHb/fnx2/358dv9+fHb/fnx2/358dv9+fHb/fnx2/358dv99e3X/fXp0/316dP99enT/fXp0/357 - df9+fHb/fnx2/358dv9+fHb/gH13/4F9dv9lYFb/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/X1pR/19aUP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/X1pQ/1FMRP9NSUFLAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB9dlR6dm7/YVxS/19a - UP9fWlD/X1pQ/19aUP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWlH/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/19aUP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/X1pQ/19a - UP9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9cV07/WlRM/19aUP9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWlH/XVhP/1xXTf9cV03/XVhO/15Z - T/9eWU//XllQ/15ZUP9fWlD/XllP/19aUP9fW1H/YFtR/2BbUf9gW1H/X1pQ/15aUP9nY1r/f3t1/397 - df9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9rZ17/XllP/19a - UP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9bVk3/WFJK/1ZRSf9YU0v/Y15X/25qY/95dm//f3x2/398 - dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/357df9+enX/fnp0/397df9/fHb/f3x2/398 - dv9/fHb/f3x2/398dv9/fHb/f3t1/316dP+BfHf/amZd/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9STUX/TUlBVAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfHZdeHRt/2Bb - Uf9eWVD/X1pQ/15ZT/9eWU//X1pQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9fWlD/X1pQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9fWlD/YFtR/19a - UP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/X1pQ/11YTv9fWlD/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/XllP/1xXTf9aU0z/W1dN/11Y - Tv9eWU//X1pQ/19aUP9eWlD/XllP/15ZT/9fWlD/YFtR/2BbUf9fWlD/X1pQ/19aUP9fWlD/endw/316 - dP9+enT/f3t1/398dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9uamL/XlpQ/19a - UP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9eWU//XFdO/1hTS/9XUkn/VlBI/1tW - Tv9lYlr/cW5n/3x5cv9/fHb/f3x2/398dv9/fHb/f3t1/356dP97eHL/e3hy/356dP9/e3X/f3x2/398 - dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9+e3X/gn55/3RwaP9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/19aUP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWlD/YFtR/2BbUf9fWlD/U05G/05KQl0AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgHx2ZXZy - a/9fWVD/XllP/15ZT/9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/X1pQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/19aUP9fWlD/X1pQ/19a - UP9eWVD/X1pQ/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9fWVD/XllP/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9dWE//XFVN/1tV - Tf9dV07/X1pQ/19aUP9fWlD/XlpQ/15ZUP9eWE//X1pQ/2BbUf9gW1H/YFtR/2BbUf9eWlD/b2pj/397 - dv97eHP/fXlz/356df9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9xbWX/XVhO/19a - UP9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/11Y - T/9cV07/WFNL/1dSSv9WUUn/XllS/2pmXv90cWr/fnt1/397dv99enT/enZx/3t3cv9/e3X/f3t2/398 - dv9/fHb/f3x2/398dv9/fHb/f3x2/398dv9/fHb/f3x2/4N/ef9/e3T/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9eWVD/XllP/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/X1pQ/19ZUP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/2Bb - Uf9gW1H/X1pQ/19ZUP9fWlD/YFtR/2BbUf9gW1H/YFtR/2BbUf9gW1H/YFtR/1RQR/9PSkJlAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB8 - dm10cGj/YFtR/2BbUf9fWlH/YFtR/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2BbUf9gW1H/YFtR/19ZUP9gW1H/YVxS/2FcUv9hXFL/YFtR/15ZUP9eWVD/X1pQ/2Bb - Uf9gW1H/YFtR/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/XllP/1tVTf9fWlD/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/X1lQ/1xX - Tv9aVUz/XFZO/15YT/9fWlH/X1tR/19bUf9fW1H/X1tR/19bUf9hXFL/YVxS/2FcUv9fWlD/Yl1U/356 - df9/e3b/e3hz/3x5dP9+enX/f3x2/4B8d/+AfHf/gHx3/4B8d/+AfHf/gHx3/4B8d/93c23/XllQ/11X - T/9gW1H/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9gW1H/XVhP/1tWTf9YU0v/V1JK/1hTS/9hXVb/a2Zg/3Nvav99eXT/f3x2/4B8 - d/+AfHf/gHx3/4B8d/+AfHf/gHx3/4B8d/+AfHf/gHx3/4B8d/+BfXj/hIB5/2diWf9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/X1pQ/15ZUP9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YFtR/2Bb - Uf9gW1H/YVxS/2FcUv9gW1H/XllQ/1hTS/9XUUr/WFJL/19ZUP9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2BbUf9gW1H/YFtR/2BbUf9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9WUUn/UEtEbgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACAfXZ2c29n/2BbUf9gW1H/YFtR/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2BbUf9gW1H/X1lQ/11YT/9dV07/YFtR/2FcUv9hXFL/YFtR/19ZUP9dV0//XlhP/19a - Uf9gW1H/YFtR/2BbUf9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/15ZUP9bVU3/X1lQ/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Bb - Uf9eWE//WlRM/1tVTf9dWE//X1pQ/19aUf9fW1H/X1tR/19bUf9gW1H/YVxS/2FcUv9gW1H/X1pQ/3Jv - aP+AfXj/fnt2/315dP98eHP/fXl0/357dv9/fXf/gH14/4B9eP+AfXj/gH14/4B9eP99enT/ZF9V/19Z - UP9eWE//YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/19aUP9dWE//W1ZN/1hTSv9VT0j/WVRN/2Vg - Wf9wbGb/e3hz/4B9eP+AfXj/gH14/4B9eP+AfXj/gH14/4B9eP+AfXj/gH14/4aCe/9uamH/YFtR/2Bb - Uf9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/19aUP9gWlH/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Bb - Uf9gW1H/YFtR/2FcUv9hXFL/XVdO/1dRSv9XUUr/V1FK/1dRSv9dV0//YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/V1JK/1BL - RHYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAgXx2f3JuZv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FbUv9gW1L/YFpR/19ZUP9dWE//XFdO/2BaUf9hXFL/YVxS/2FcUv9hW1L/YFtR/2Ba - Uf9gW1H/YFtR/2FbUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9fWlH/XVdO/15Z - UP9hW1L/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FbUv9gW1H/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/X1pR/1xXTv9cV0//XVhP/2BaUf9gW1H/YFtR/2BbUf9gWlH/YVtS/2FcUv9hXFL/X1pR/2Nd - Vf+AfHf/gX14/397d/98eXT/enhy/3p4cv98eXP/fnp1/4B8d/+AfHf/gX14/4F9eP+BfHf/amVd/2Fc - Uv9dWE//XlhP/2FbUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/X1lQ/11Y - T/9ZVEz/WFJL/1dRSv9dWFH/aGNd/3Rvav9/enX/gX14/4F9eP+BfXj/gX14/4F9eP+FgHr/eXRt/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9gW1L/YVtS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9gW1H/YFtR/2FcUv9hXFL/YFtR/1hTS/9XUUr/V1FK/1dRSv9XUUr/X1lQ/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2Fc - Uv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/2FcUv9hXFL/YVxS/1hT - S/9QS0SAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJOPiohybWb/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9hW1L/YVtS/2BbUv9hW1L/YVtS/2BaUf9gWlH/YVtS/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YVtS/2FbUv9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YVtS/2Ba - Uf9dWVD/YVtS/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9hW1L/YFpR/2BaUf9hW1L/YVtS/2FbUv9hW1L/YVtS/2FcU/9iXFP/YVtS/19Z - UP9zbmf/gn14/4F9eP9/e3f/fXp0/3p4cv96eHL/e3hy/3x5c/98eXT/fHl0/397dv+BfXj/dG9o/2Jc - U/9hW1L/XllQ/19ZUP9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9hW1L/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9eWVD/XVdP/1pTTP9YUkv/WFJL/2FbVP9sZ2D/eHNt/4F8d/+CfXj/f3p0/3t2 - b/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YVtS/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9hW1L/YFpR/2FbUv9iXFP/YVtS/19ZUP9YUkr/WFJK/1hSSv9YUkr/W1VN/2FbUv9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9ZVEz/R0I9iAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACSjomQcWxl/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9hW1L/YlxT/2JcU/9iXFP/YFtS/2FbUv9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9hW1L/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Fb - Uv9hW1L/X1lR/2FbUv9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YVtS/2FbUv9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9hW1L/YVtS/2BaUf9gWlL/YVtS/2FbUv9iXFP/YlxT/2Ba - Uf9hW1P/gHt2/4J9eP+BfXj/f3t2/3x6dP97eXP/fXl0/316df99enX/fHl0/3x5c/98eXT/fHhy/2Re - Vf9iXFP/YlxT/2FbUv9hW1L/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9hW1L/YlxT/2FbUv9fWVD/X1lR/2JcU/9iXFP/YVtS/2FbUv9gWlH/YFpR/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9hW1L/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YFtS/15YUP9cVk7/WVNM/1hSSv9ZVEz/ZV9Z/25o - Yf9qZV3/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FbUv9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YVtS/2FbUv9hW1L/YlxT/2FbUv9eWVD/WVRM/1lTS/9ZVEv/XVhP/2FbUv9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/WVRM/0dCPZEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAko6JmXBsZP9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9hXFP/YVxT/2JcU/9iXFP/YlxT/2JcU/9hXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YVtS/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9hW1P/YVtS/2BbUv9gW1L/YVxT/2JcU/9iXFP/YlxT/2JcU/9hXFP/YVxT/2BbUv9fWlH/YFtS/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YVxT/2FbUv9fWVD/X1pR/2BaUv9hW1L/YlxT/2Fc - U/9fWlH/b2pj/4J9ef+CfXn/gX15/398d/9+e3X/fXt1/398d/9/fHf/fXp1/316df98enT/e3hz/2ll - Xv9iXVT/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YVtS/2JcU/9iXFP/YVtS/2FcU/9iXFP/YlxT/2FcU/9gW1L/X1pR/19a - Uf9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FcU/9hW1L/YVtS/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2FcU/9hW1L/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9gW1L/XllQ/1xW - Tv9cV0//YFtS/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YVxT/15ZUf9gW1L/YVtS/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2JcU/9iXFP/YlxT/2Jc - U/9iXFP/YlxT/1pVTf9HQj2ZAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGOiaJwa2T/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/YVxT/2FcU/9hXFP/YFtS/2BbUv9hXFP/Yl1U/2JdVP9hXFP/YFtS/19aUf9fWlL/XllQ/19a - Uf9gXFP/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2FcU/9gW1P/X1pR/19aUP9fWlH/YVxT/2Jd - VP9gXFP/XllR/315dP+Cfnr/gX55/4F+ef+AfXn/gH14/4B9eP+Bfnn/gH15/357dv9/fHf/f3x2/3d0 - bv9fW1L/YFtS/2JdVP9iXVT/Yl1U/2FcU/9hXFP/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/YVxU/2FcU/9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/YVxT/2Fc - U/9hXFP/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9hXFP/YVxT/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9hXFP/YFtT/2FcU/9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9bVk7/R0M9ogAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACRjomrb2tj/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2FcU/9iXVT/Yl1U/2JdVP9hXFT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2FcVP9iXVT/YVxT/2BbUv9hXFP/Yl1U/2JdVP9hXFP/YFtS/2BbUv9fW1H/YFtS/19a - Uf9eWU//X1pQ/2FcU/9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9hXFP/YVxT/2BbUv9fWlH/YFtS/2Fc - U/9iXVT/X1pR/2diW/+Df3r/g396/4J+ef+Cfnn/g396/4N/ev+Df3r/g396/4F+ef+AfXj/gX15/4F9 - eP9saF//YFtS/11ZT/9hXFP/Yl1U/2FcU/9fWlD/X1pS/2FcU/9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2FcU/9hXFP/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/YVxT/2FcU/9hXVT/YVxT/2FcU/9iXVT/Yl1U/2Fc - U/9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/YVxT/2FcU/9hXFP/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/W1ZO/0dDPasAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkY6Is25qYv9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVP/Yl1U/2JdVP9iXVP/YVxT/2Jd - U/9iXVP/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1T/2FcU/9hXFL/YVxT/2FcU/9iXVP/YVxS/2BbU/9gW1H/YVxS/2Jd - VP9hXFP/YFtS/19aUP9gW1L/Yl1T/2JdVP9iXVT/Yl1U/2JdVP9iXVT/YVxT/2FcU/9hXFP/YVxT/2Fc - U/9iXVP/Yl1T/19aUf90cGn/g395/4J+ef+Cfnn/g395/4N/ev+Df3r/g396/4N/ev+Df3n/gn55/4N/ - ef99eXP/Z2Nb/2JdVP9eWVD/X1pR/2JdU/9iXVP/XlpQ/19aUP9hXFP/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVP/Yl1T/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2FcU/9iXVP/Yl1U/2JdVP9iXVT/Yl1U/2FcU/9gW1H/YVxT/2FcU/9hXFP/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9hXFP/Yl1T/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdU/9iXVP/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/2Jd - VP9iXVT/Yl1U/2JdVP9iXVT/Yl1U/1xXTv9IRD60AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJGNh71uamH/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Jd - U/9hXFL/YFtS/2JdU/9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2JdU/9hXFL/YVxS/2JdU/9iXVP/YFtR/2BcUv9gXFL/YVxS/2Jd - U/9jXlT/Y15U/2JdU/9fWlH/XlpQ/2BbUv9iXVP/YVxT/2JdU/9iXVT/Yl1T/2FcUv9hXFL/Yl1T/2Jd - U/9iXVP/Y15U/2FcU/9fWlD/f3t1/4F9eP+BfXj/g395/4SAev+EgHr/hIB6/4SAev+EgHr/hIB6/4SA - ev+EgHr/dG9o/2lkW/9iXVP/YVxT/2BcUv9iXVP/Yl1T/2FcUv9eWVD/XVlP/2BbUf9hXFL/YV1T/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9iXVP/Yl1T/2NeVP9jXlT/Y15U/2NeVP9iXVP/YVxS/2JdU/9iXVP/Yl1T/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Yl1T/2Jd - U/9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2JdU/9iXVP/Yl1T/2JeVP9jXlT/Y15U/2Jd - U/9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9hXVP/YVxT/2JdU/9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9dWE//SEU+vQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACQjYbFbWhg/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Yl1T/2NeVP9jXlT/Y15U/2Ne - VP9iXVP/X1pR/11YT/9gW1L/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9iXVP/Yl1T/2FcUv9iXVP/Yl1T/2BbUf9hXFL/YFxS/2Bb - Uf9iXVP/Y15U/2NeVP9hXVP/X1pQ/1xXTv9dWE//YVxS/2FcUv9iXVP/Yl1T/2FcUv9fWlD/YFtS/2Fc - Uv9hXFL/YVxS/2FcUv9eWlD/ZGBY/398d/9/e3b/gX54/4N/ef+EgHr/hIB6/4SAev+EgHr/hIB6/4SA - ev+EgHr/gX53/21oYP9nYln/Y15U/2NeVP9iXVP/Y15U/2NeVP9iXVP/YFxS/19aUP9fWlH/XVhP/19a - Uf9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Yl1T/2NeVP9jXlT/Y15U/2NeVP9jXlT/Yl1T/2JdU/9iXVP/Yl1T/2Jd - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Jd - U/9iXVP/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2JdU/9eWVD/XlpQ/2FcUv9iXVP/Yl1T/2Jd - U/9iXVP/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/YV1T/2FcUv9iXVP/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/Y15U/2Ne - VP9jXlT/Y15U/2NeVP9jXlT/Y15U/2NeVP9jXlT/XVlP/0lFPsYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAj4yFzm1oX/9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15U/2JdU/9jXlT/Y15V/2Ne - Vf9jXlX/Y15U/2BbUv9eWVD/X1pR/2JdU/9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Yl1T/2JdU/9iXVP/Yl1T/2FcUv9gW1H/YVxS/2Fc - Uv9fWlH/Yl1T/2JeVP9iXVP/YVxS/15ZUP9bVk7/XVdP/2BaUf9iXVP/Yl1T/2JdU/9hXFL/X1pR/15Z - UP9fWlD/X1pR/15ZUP9eWVD/W1VN/2xoYv9/e3b/gH14/4SAev+EgXr/hIF6/4SBev+EgXr/hIF6/4SB - ev+EgXr/hIF6/3t3cP9taGD/ZWBX/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Yl1U/15Z - UP9eWFD/Yl1T/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlT/Yl1T/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9iXVP/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlT/Y15U/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlT/X1lQ/19ZUf9hXFL/Yl5U/2Ne - VP9iXVP/Y15U/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVP9hXVP/Yl1U/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15U/2JeVP9jXlX/Y15V/2NeVf9jXlX/Y15V/15aUP9KRj/OAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI+LhdZsZ17/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2NeVf9iXVT/Y15V/2Rf - Vv9kX1b/ZF9W/2RfVv9hXFL/X1pR/19ZUP9iXVT/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/Y15U/2NeVP9jXlT/Y15U/2JdU/9gWlL/YFpS/2Jd - U/9iXVP/YVtS/2JdU/9iXVP/Y15U/2BaUv9eWVD/XFdO/11XT/9fWVH/Yl1T/2NeVf9kX1b/Yl1T/2Ba - Uv9fWVD/X1lQ/15YUP9dV0//XFZO/1hTS/94dG7/gXx4/4OAev+Fgnv/hYJ7/4WCe/+Fgnv/hYJ7/4WC - e/+Fgnv/hYJ7/4WCe/91cWn/a2Ze/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Ne - Vf9hXFL/YFpS/2FcUv9jXlX/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/Y15V/2NeVf9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/Y15V/2BbUv9hXFP/Yl1T/2Ne - VP9iXVP/YVtS/2JcU/9jXlX/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/Yl1T/2Ne - Vf9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2NeVf9iXlT/Y15V/2NeVP9jXlT/Y15U/2JdU/9dWE//SkY/1wAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACNioPeamVd/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9jXlX/Yl1T/2Ne - VP9jXlX/ZF9W/2RfVv9kX1b/Yl1U/2FcUv9hW1L/Y15V/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/Yl1T/2JdVP9jXlT/Y15U/2NeVP9jXlT/YFpS/2Jd - U/9jXlX/Yl1T/2JdVP9iXVP/Yl1T/2FcUv9hW1L/X1lR/11YT/9fWVH/YFtS/2JdU/9jXlX/Y19W/2Ne - VP9hXFP/YFpS/2BaUv9hXFL/YlxT/19aUf9eWVH/gn14/4N/ef+FgXr/hYJ7/4WCe/+Fgnv/hYF6/4WB - ev+Fgnv/hYJ7/4WCe/+Cf3j/cW1k/2hjWv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/Y15V/2NeVf9jXlT/Yl1T/2NeVf9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9jXlb/Y15U/2FcU/9iXVP/Y15V/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9iXVP/Yl1T/2Ne - VP9jXlX/YVxT/19aUf9gWlL/Yl1T/2RfVv9jXlX/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Ne - Vf9jXlX/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9jXlX/Yl5U/2NeVP9iXlT/Y15U/2NeVP9iXVP/XVdP/0tGQN8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAjIiD6mpk - XP9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF5V/2NeVf9kXlb/ZF9W/2RfVv9kX1b/ZF5V/2Jd - VP9hW1P/Yl1U/2NeVv9kX1b/ZF9W/2RfVv9jXlX/ZF5W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2ReVf9iXVT/Y15V/2RfVv9jXlX/Y15V/2Fc - VP9jXlX/ZF9W/2RfVv9kX1b/Y15V/2JdVP9hXFT/Y11U/2FcU/9gW1L/YVtT/2FbUv9hXFP/ZF5W/2Rf - Vv9kXlX/Y15V/2JcVP9jXVT/Y15V/2ReVf9hXFP/aWRc/4WBe/+FgXv/hYJ7/4WCe/+Fgnv/hYJ7/4SA - ev+EgHr/hYJ7/4WCe/+Fgnv/fnpz/3FsZP9lX1f/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kXlb/Y15V/2Re - Vf9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2NdVP9kXlX/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kXlb/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kXlb/Yl1T/15YUP9bVk7/X1pR/2JdVP9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF5W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/Y15V/2Ne - Vf9kXlb/ZF9W/2JdVP9fWlH/XllQ/2JdVP9kXlb/Y15V/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2RfVv9kX1b/ZF9W/2Rf - Vv9kX1b/ZF9W/2RfVv9kX1b/ZF5W/2NeVf9jXlX/YV1U/2FdVP9iXVT/YVxT/15YUP9MSELqAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIuG - gvRpY1v/ZV9X/2RfV/9kXlb/ZF5W/2VfV/9lX1f/ZV9X/2ReVv9iXVX/ZF5W/2VfV/9lX1f/ZV9X/2Re - Vv9jXVb/YFtS/19bUv9iXVT/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9kXlb/Y11W/2ReVv9lX1f/ZF5W/2Re - Vv9kXlb/ZV9X/2VfV/9lX1f/ZV9X/2ReVv9kXlb/ZF5W/2ReVv9kXlb/ZF5W/2NdVv9hXFT/Yl1U/2Vf - V/9lX1f/ZV9X/2VfV/9kXlb/Y11W/2ReVv9lX1f/YFtS/3FsZv+Ggnz/hoJ8/4aCfP+FgXz/hYF8/4WB - e/+EgHv/hIB7/4WBfP+Ggnz/hoJ8/3t2cP9wa2P/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZF5W/2Re - Vv9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9kXlb/ZF5W/2ReVv9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9jXVX/Y11W/2ReVv9kXlb/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/YVxU/1xYT/9bV07/XFhP/2BbU/9kXlb/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Re - Vv9kXlb/ZV9X/2VfV/9iXVT/YFtS/15aUf9jXVX/ZF5W/2NdVv9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9kXlb/ZF5W/2FcVP9gXFP/YVxU/2JdVP9fW1L/TEhC8wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNu - ZwGKhoD+aGJa/2VfV/9kXlb/ZF5W/2VfV/9lX1f/ZV9X/2VfV/9jXlb/Y11V/2ReVv9lX1f/ZV9X/2Vf - V/9kXlb/Y11V/15aUf9eWVH/YVxT/2ReVv9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/Y15V/2Ne - Vf9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2ReVv9kXlb/ZV9X/19aUf95dG7/hoJ9/4aCff+FgXz/hYF7/4SA - e/+DgHr/hYF7/4WBfP+Ggnz/hoJ9/4aCff94c2z/a2Ve/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZF9X/2Re - Vv9kXlb/ZF5W/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2NdVf9jXVX/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/Y11V/2JdVP9kXlb/ZF5W/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZF5X/2BbUv9cV0//XVlQ/2FcVP9kXlb/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZF9X/2VfV/9lX1f/Y11W/2FcU/9hXFT/ZF5W/2VfV/9kXlb/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2VfV/9lX1f/ZV9X/2Vf - V/9lX1f/ZV9X/2ReVv9iXVX/Y11W/2ReVv9kXlb/ZF5W/2NeVv9hXVT/Yl1U/2JdVP9iXVT/X1pS/0xI - Qv0AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACFgXoLiYWA/2hjW/9lYFj/ZF9X/2RfV/9kX1f/ZWBY/2VgWP9lYFj/ZF9X/2RfV/9kX1f/ZWBY/2Vg - WP9lYFj/ZF9X/2NeVv9hXVT/YFtT/2JdVf9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9jX1f/Y15W/2RfV/9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9jXlb/ZF9X/2RfV/9fWlL/gHx1/4eDff+Hg33/hoJ8/4WB - e/+DgHr/hIB6/4SBe/+FgXz/hoJ8/4eDff+EgHv/d3Ns/2plXv9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Rf - V/9kX1f/Y15W/2NeVv9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9kX1f/Y15W/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9jXlb/ZF9X/2RfWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9jXlb/YV1U/2NeV/9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9jXlb/ZF9X/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9jXlf/YV1V/2JdVf9jXlb/ZF9X/2RfV/9kX1f/ZF9X/2RfV/9jXlb/Yl5W/2Bb - Uv9NSUP/T0tECQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAhYF6FoiEf/9nY1v/ZWBY/2RfV/9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9kX1f/ZF9X/2Vg - WP9lYFj/ZWBY/2RfV/9kX1f/Yl1W/2JdVP9jXlb/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZF9X/2JdVv9jXlb/Y15W/2NeVv9kX1f/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2RfV/9jXlb/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9jXlb/YVxT/2FcVP9hXFT/XlpR/4WBe/+Hg33/h4N9/4WB - fP+EgHv/g395/4J/ef+Df3r/gn55/4J+ef+Fgnz/gn54/3Zya/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZF9X/2RfV/9kX1f/ZF9X/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZGBY/2RfV/9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2RfV/9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2RfV/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/Yl1V/19bUv9gW1P/YVxU/2JdVf9jXlb/ZF9X/2VgWP9kX1f/Y15W/2Jd - Vf9fW1L/TUlD/09LRBIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAIWBeyGGgnz/ZmJa/2NeVv9kX1f/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2Rf - V/9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2RfV/9jXlb/Y15X/2RfV/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZF9X/2NeVv9iXlb/Y15W/2NeVv9jXlb/ZF9X/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZF9X/2RfV/9lYFj/ZWBY/2VgWP9kX1f/Y15W/2JdVv9jXlb/Y15W/2Rf - V/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9jXlf/YV1U/2BbU/9gW1P/YFtS/2FdVf+Hg33/h4N9/4eD - ff+Ggnz/hIF7/4SBe/+EgXv/hIB7/4F+eP+Cfnn/hIB6/4F9d/92cmr/ZWBY/2VgWP9kX1f/Y15W/2Rf - V/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2NeVv9jXlb/Yl1V/2RfV/9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2RfV/9kX1f/ZF9X/2VgWP9lYFj/ZWBY/2VgWP9kX1f/ZF9X/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2VgWP9lYFj/ZWBY/2Vg - WP9lYFj/ZWBY/2VgWP9lYFj/ZF9X/2FcVP9gW1P/X1pR/19aUf9eWVD/X1tS/2FcVP9jXlb/Y15W/2Jd - Vf9iXVT/X1pS/05JQ/9PS0QbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACGgXsshYJ7/2ZhWP9iXVT/ZF9W/2ZhWP9mYVj/ZmFY/2ZhWP9lYFf/ZWBX/2Vg - V/9lYFf/ZmFY/2ZhWP9mYVj/ZWBX/2VgV/9mYVj/ZWBX/2VgV/9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9kX1b/ZF9W/2VgV/9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9kX1f/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9jXlX/Y19W/2Rf - Vv9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZWBX/2RfVv9iXlT/YVxT/2BbUv9mYln/iIR+/4iE - fv+IhH7/iIR+/4iEfv+Hg37/h4N+/4aCfP+DgHr/g4B6/4SBe/+AfXb/c29m/2ZhWP9mYVj/ZWBX/2Ne - Vf9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Vg - V/9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9jXlT/YFtS/19aUf9kX1b/ZWBX/2VgV/9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9lYFj/ZWBX/2Vg - V/9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9jXlX/YVxT/2FdU/9gW1L/XVhP/11XT/9dV0//XVhP/2Fc - U/9iXlT/Yl5U/2BbUv9PS0T/T0tEJwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAhoJ7N4N/eP9lYVj/Y15V/2VgV/9mYVj/ZmFY/2ZhWP9mYVj/ZWBX/2Vg - V/9lYFf/ZWBX/2ZhWP9mYVj/ZmFY/2VgV/9mYVj/ZmFY/2ZhWP9lYFf/ZWBX/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZWBX/2VgV/9lYFf/ZmFY/2ZhWP9lYFf/ZF9W/2Rf - Vv9lYFf/ZWBX/2VgV/9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9iXlT/amVd/4mF - fv+JhX7/iYV+/4mFfv+JhX7/iYV+/4eEff+Hg3z/hoJ7/4eDff+IhH3/gH11/29rYv9mYVj/ZmFY/2Zh - WP9kX1b/ZWBX/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Vg - V/9kX1b/ZWBX/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9lYFf/Yl5V/2FcU/9hXVP/ZWBX/2VgV/9lYFf/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Vg - V/9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9lYFf/ZF9X/2NeVf9jXlX/Yl1U/11YT/9dV0//XVdP/11X - T/9eWVD/YFxS/2FdU/9gW1L/UUxF/09KRDMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIaBekGCfXb/Z2JZ/2VgV/9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Vg - V/9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZF9W/2VgV/9lYFf/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2VgV/9jXlX/Y19V/2VgV/9mYVj/ZmFY/2Zh - WP9mYVj/ZWBY/2VgV/9lYFf/ZWBX/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/Y15V/2xp - YP+JhX7/iYV+/4mFfv+JhX7/iYV+/4eEff+Hg3z/h4R9/4iEff+IhH7/iYV+/4B8dv9vamL/ZmFY/2Zh - WP9mYVj/ZF9W/2RfVv9lYFf/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9lYFf/ZGBX/2RfVv9lYFf/ZWBX/2ZhWP9mYVj/ZWBX/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2RfV/9kX1b/ZWBX/2ZhWP9lYFf/ZWBX/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZWBY/2Zh - WP9lYFf/ZWBX/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2Zh - WP9mYVj/ZmFY/2ZhWP9mYVj/ZmFY/2ZhWP9lYFf/ZWBX/2VgV/9kX1b/Y19W/2RfVv9fWVH/XVdP/11X - T/9dV0//XlhQ/19aUf9fWlH/XlpR/1FNRf9PSkQ/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACFgXpNgXx1/2hiWv9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/ZmBY/2VfWP9mYFj/ZV9Y/2VfV/9lX1f/ZmBY/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9mYFj/ZF5X/2RfV/9mYFj/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/ZmBY/2ZgWP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2Nd - Vf9uaWL/ioV//4mEfv+JhH7/ioV//4mEfv+Hg33/h4J9/4mEfv+KhX//ioV//4qFf/99eXL/b2pi/2dh - Wf9nYVn/Z2FZ/2VfV/9lX1f/ZmBY/2dhWf9mYFj/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/ZmBY/2VfV/9kX1f/ZF5W/2ReV/9mYFj/ZmBY/2ZgWP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9mYFj/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2Zg - WP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9mYFj/ZWBY/2ReVv9mYFj/Z2FZ/2ZgWP9lYFj/ZWBY/2ZgWP9mYFj/ZWBY/2VfV/9lX1f/Yl1V/15a - Uf9dWFD/XVlQ/15aUf9dWFD/XVhQ/1xYT/9RTEb/T0pESwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhoF6V396c/9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2ZgWP9lX1j/ZV9X/2VfV/9kXlb/ZF5W/2Zg - WP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2ZgWP9mYFj/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2ZgWP9mYFj/ZmBY/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/ZmBZ/2ZgWP9mYFj/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9jXVX/Y11V/25pYv9taGH/bWhi/29qY/9xbGX/cWxl/3JtZv92cWv/d3Js/3dybP96dW7/bmhg/2xm - Xv9nYVn/Z2FZ/2dhWf9lX1j/ZV9X/2ZgWP9mYFj/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9mYFj/ZF5W/2NdVf9jXVb/ZF5W/2ZgWP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2Vf - V/9jXlb/ZV9X/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9mYFj/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/ZF5W/19bUv9fWlL/Y15W/2dhWf9mYFj/ZWBY/2ZgWP9nYVn/ZmBY/2ZgWP9kXlf/ZF5W/2Ne - Vv9kXlf/ZF5W/2NeVv9hXFP/X1pS/11YUP9cV0//UUxG/05JQ1YAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIaBe2N9d3D/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9mYFj/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9lX1f/YVxU/2Bb - U/9iXVX/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2ZgWP9lX1j/ZmBY/2ZgWP9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/ZV9X/2NdVf9iXVT/YVxU/2FbU/9gW1P/YVtT/2FcVP9eWVH/XllR/15ZUf9eWVH/X1pS/2Re - Vv9nYVn/Z2FZ/2dhWf9kX1f/ZF5W/2ReVv9lX1f/ZmBY/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2VfV/9jXVX/ZF5W/2VfV/9mYFj/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/ZmBY/2Re - Vv9eWVH/XVhQ/15ZUf9lX1f/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9mYFj/ZmBY/2dh - Wf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dhWf9nYVn/Z2FZ/2dh - Wf9nYVn/Z2FZ/2FcVP9dWFD/XVhQ/2NdVf9nYVn/ZmBY/2VgWP9mYFj/Z2FZ/2dhWf9mYFj/ZF5W/2Fc - VP9iXFT/ZF5W/2VfWP9lX1f/Y11V/2JcVf9fWlH/XFhQ/1FMRv9NSUJjAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACGgXttenZv/2diWv9mYVn/Z2Ja/2di - Wv9nYlr/ZmFZ/2ZhWf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9mYVn/ZF9X/2Bb - U/9eWlL/YFtT/2VgWP9nYlr/Z2Ja/2ZhWf9lYFn/ZWBY/2ZhWf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9mYVn/ZWBZ/2VhWf9lYFn/ZmFZ/2ZhWf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9mYVn/Yl5W/2FdVf9jXlf/ZWBY/2ZhWf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9mYVn/ZWBY/2VgWP9mYVn/ZmFZ/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2Zh - Wf9gXFT/XllR/15ZUf9eWVH/YFtU/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9lYFj/ZF9X/2NfV/9mYVn/Z2Ja/2ZhWf9lYVn/ZmFZ/2diWv9nYlr/ZmFZ/2Rf - WP9jXlb/Yl1W/2RfV/9lYFj/ZWBY/2VgWP9kX1j/Yl1V/19aUv9UT0n/T0pEbgAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhYF6eXhzbP9mYVn/ZWBZ/2Zh - Wf9nYlr/Z2Ja/2ZhWf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2Ne - V/9gW1P/XlpS/2BcVP9lYFj/ZmFZ/2diWv9mYVn/ZWBY/2RfWP9lYFj/ZmFZ/2diWv9nYlr/Z2Ja/2Zh - Wf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9mYVn/Y19X/2RfV/9lYFj/ZWBZ/2VgWf9mYVn/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9mYVn/Y15X/2FdVf9jX1f/ZWBY/2VgWP9mYVn/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2VgWP9mYVn/ZmJa/2ZhWf9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9mYVn/YVxU/15ZUf9eWVH/XllR/2FdVf9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmJa/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFa/2ZhWv9nYlr/Z2Ja/2Zh - Wf9lYFj/ZF9X/2NeVv9kX1f/ZWBY/2RfV/9kX1f/ZF9Y/2NeV/9gW1P/VFFK/1BLRXsAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJWRjId3cmv/ZmFZ/2Zh - Wf9lYFn/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2Zh - Wf9mYVn/ZGBY/2NeVv9jXlb/ZmFZ/2diWv9mYVn/ZmFZ/2ZhWf9lYFj/ZWBY/2diWv9nYlr/Z2Ja/2di - Wv9mYVn/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9mYVn/ZmFZ/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9mYVn/Y19X/2BbU/9iXVX/ZF9X/2VgWP9lYFj/ZmFZ/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2ZhWf9lYFj/ZmFZ/2ZhWf9mYVn/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/ZmFZ/2VgWP9lYFj/ZmFZ/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9mYVn/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/ZmFZ/2RfV/9hXFT/X1pS/2NeVv9mYVn/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2ZhWf9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2Zh - Wf9lYVn/ZmFZ/2RfWP9jX1f/ZGBY/2VgWP9lYFj/ZWBY/2VgWP9kYFj/YVxU/1VRSv9FQTyJAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACUkYyWdnFq/2hj - W/9oY1v/Z2Ja/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2di - Wv9nYlr/aGNb/2hjW/9nYlv/Z2Ja/2hjW/9oY1v/aGNb/2ZhWf9mYVn/ZmFZ/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/ZmFZ/2Vg - WP9mYVn/Z2Ja/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/ZmJa/2JdVf9gXFP/Y15X/2ZhWf9mYlr/ZmFa/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9nYlr/Z2Ja/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9nYlr/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9nYlr/Z2Ja/2ZhWf9nYlr/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9nYlr/Z2Ja/2diWv9mYVn/ZmFZ/2ZhWf9mYlr/Z2Ja/2ZhWf9mYVr/Z2Ja/2RfV/9YU03/REE8lgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlJCLpHVw - af9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9mYVr/ZmFZ/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2Vh - Wf9kX1j/ZF9Y/2ZhWv9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2VgWP9hXVX/YFxU/2VgWf9nYlr/Z2Ja/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9nYlr/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9nYlr/Z2Ja/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2ZhWf9mYVn/Z2Ja/2dj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2ZhWv9mYVr/ZmFZ/2ZhWf9mYVn/ZmFZ/2diWv9lYFj/W1dQ/0VB - PKUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJOP - i7Nzbmf/aGNb/2hjW/9oY1v/aGNb/2diWv9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9nYlr/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9mYVn/ZmFZ/2diWv9nYlr/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9jXlf/Yl1V/2JeVv9nYlr/Z2Ja/2diWv9nYlr/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9nYlr/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9nYlr/Z2Ja/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9mYVn/ZWBY/2Vg - WP9nYlr/Z2Ja/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9nYlr/Z2Jb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/ZmJa/2ZiWv9mYVr/Z2Ja/2diWv9nYlr/Z2Ja/2ZhWf9mYVn/ZmFZ/2ZhWf9nYlr/Z2Ja/19a - U/9JRT+yAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACSjonCcm1l/2hjW/9oY1v/aGNb/2hjW/9nYlr/aGNa/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNa/2diWv9oY1r/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2diWv9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9nYlr/ZGBX/2RfWP9lYVn/aGNa/2hjWv9nYlr/Z2Ja/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjWv9nYlr/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjWv9nYlr/aGNa/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9nY1r/ZmFZ/2diWv9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2di - Wf9lYFj/ZmFY/2diWv9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjWv9lYFj/Y15V/2ZhWf9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hjW/9oY1v/aGNb/2hj - W/9oY1v/aGNa/2diWv9nYlr/Z2Ja/2hjWv9oY1v/aGNa/2diWv9nYlr/Z2Ja/2diWv9nYlr/Z2Ja/2di - Wv9hXFT/S0dBwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAkY2G0XFsZP9pZFv/aWRb/2lkW/9pZFv/aGNa/2hjWv9oY1r/aGNb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2diWf9oY1r/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1r/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2hjWv9oY1r/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/Z2JZ/2VhWP9nYln/aGNa/2lkW/9oY1r/ZmFZ/2di - Wf9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1r/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9nYln/ZmFY/2hj - Wv9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1v/aGNa/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aGNa/2diWv9oY1r/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aGNa/2hjWv9oY1r/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1r/Z2JZ/2VfV/9mYVn/aGNa/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2hjWv9nY1r/Z2Na/2hjWv9pZFv/aWRb/2hjWv9nYln/Z2JZ/2diWf9oY1r/aGNa/2hj - Wv9nYlr/Yl1V/0xIQs4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJCMhd5vamH/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2hjWv9oY1r/aGNa/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9nYln/aGNa/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aGNa/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9nYlr/aGNa/2hjWv9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2diWf9mYln/aGNa/2hjW/9pZFv/Z2JZ/2Zh - WP9mYVj/aGNa/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aGNa/2hj - Wv9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2diWf9oY1r/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/3NuZv+Ggnv/joqE/46K - hP+NiYP/jYmD/42Jgv+MiIH/jIiB/4uIgf+Kh4D/ioZ//4eDfP97d2//aGNa/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oZFv/aGNa/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9oY1r/Z2Na/2hjWv9oY1r/aGNa/2diWf9nY1r/Z2Ja/2ZiWf9nYln/aGNa/2hj - Wv9nYln/Z2JZ/2JdVP9OSkTdAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACOioTtbWhg/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1v/Z2Ja/2hj - Wv9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9oY1r/aGNa/2hj - Wv9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2hj - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aGNa/2hjWv9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9nYlr/Z2Na/2hjWv9oY1v/aGNb/2Zh - Wv9lYFj/ZWBY/2diWv9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9nYlr/aGNb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2ZhWf9xbGX/jYmE/42J - hP+NiYT/jYmE/42JhP+NiYT/jYmE/42JhP+OioX/jYqE/42KhP+LiIH/fnpz/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2hjW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lkW/9pZFv/aWRb/2lk - W/9pZFv/aWRb/2lkW/9pZFv/aGNa/2hjWv9nY1r/Z2Na/2djWv9nYlr/Z2Na/2diWv9mYln/Z2Ja/2hj - Wv9nYlr/Z2JZ/2diWf9jX1b/T0tF7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAjYmD/GxnX/9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2hj - W/9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9oY1v/aGNb/2hj - W/9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2hj - W/9mYlr/Z2Nb/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGNc/2hjW/9pZFz/aGNb/2hjW/9oY1v/aGNb/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGNb/2diWv9oY1v/aGNc/2hj - W/9mYVn/ZF9X/2RgWP9nYlr/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aGNb/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9lYFj/eXVv/42J - hP+NiYT/jYmE/42JhP+NiYT/jYmE/42JhP+NiYT/jYmE/42JhP+NiYT/g395/3dza/9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9oZFz/aGNb/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aGNb/2diW/9oY1v/aGNb/2lkXP9oY1v/Z2Nb/2ZiWv9mYVn/ZWBZ/2di - Wv9nYlr/ZmFZ/2ZhWv9mYlr/ZGBY/1FNRvwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAh4R9DIuHgv9rZl//aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGNb/2lk - XP9oY1v/aGNb/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9nYlr/ZWFZ/2diWv9pZFz/aWRc/2lkXP9pZFz/aWRc/2hjW/9oY1v/aGNb/2hjW/9oY1v/Z2Jb/2hj - W/9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9nYlv/Z2Jb/2hj - W/9oY1v/Z2Ja/2VgWP9lYFj/aGNb/2lkXP9pZFz/aGNb/2hjW/9oY1v/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2hjW/9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9nYlv/ZF9Y/4aD - ff+NioT/jYqE/42KhP+NioT/jYqE/42KhP+NioT/jYqE/42KhP+NioT/jYqE/3x4cf9vamP/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9oY1v/aGNb/2diW/9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2hkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGNb/2lkXP9pZFz/aWRc/2hjW/9nYlr/ZWBZ/2Vg - WP9lYVn/ZWBY/2RfWP9kX1j/ZF9Y/2NeVv9RTUb/U1BJDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiEfRqJhYD/a2Ze/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2hjW/9pZFz/aWRc/2lkXP9oY1v/Z2Ja/2diWv9oY1v/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aGNb/2diWv9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9nY1v/Z2Nb/2hjW/9oY1v/aGNb/2di - Wv9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/Z2Ja/2di - Wv9pZFz/aWRc/2hjW/9lYVn/Z2Ja/2lkXP9pZFz/aWRc/2diWv9mYVn/ZmFZ/2hkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/ZmFa/2xn - YP+NioT/jYqE/42KhP+NioT/jYqE/42KhP+NioT/jYqE/42KhP+NioT/jYqE/4qGgP94dG3/bmlh/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9oY1v/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGRc/2hjW/9oY1v/aGNb/2lkXP9pZFz/aWRc/2lk - XP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXP9pZFz/aGNb/2Zh - Wv9mYVr/Z2Ja/2VhWf9kX1j/Y15W/2NeV/9hXVX/UU1H/1NPSBsAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIhH4piIR+/2xnX/9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/Z2Jb/2diWv9lYFn/aGNb/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2lkXP9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/amVd/2lk - XP9oY1v/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2hj - W/9nY1v/aWRc/2lkXP9pZFz/Z2Ja/2hjW/9qZV3/amVd/2lkXP9mYVr/ZmFZ/2ZhWv9pZFz/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aWRc/2di - Wv97eHH/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+FgXv/dnJq/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXf9pZFz/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9oY1v/Z2Ja/2hjW/9pZFz/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lk - XP9oY1z/aGNc/2lkXP9mYlr/ZWBY/2RfWP9kX1j/ZWBY/1RRSv9TT0krAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIR9OYWCe/9rZl//amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aGNb/2ZiWv9lYFn/ZF9Y/2diWv9pZFz/amVd/2pl - Xf9qZV3/amVd/2plXf9pZFz/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lk - XP9pZFz/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9nY1v/ZmFa/2diWv9nYlr/Z2Jb/2ZiWv9nYlr/aWRc/2lkXP9nY1v/ZmFZ/2diWv9oY1v/aWRc/2lk - XP9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2llXf9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2hj - W/9nYlv/ioeB/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/fnpz/3Rv - aP9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/aGNc/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9oY1v/ZWBZ/2RgWP9mYVr/aGNb/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aWRc/2hkXP9pZFz/amVd/2lk - XP9pZFz/aWRc/2hjXP9nY1v/ZmFZ/2VgWP9mYVn/ZmJa/2ZhWv9WUkv/U1BJPAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiEfkmDf3j/a2Ze/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aWVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/aWRd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9pZFz/Z2Jb/2ZhWf9oY1v/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9pZFz/aWRc/2lkXP9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/aGNb/2VgWf9kX1j/ZF9Y/2RgWP9kYFj/ZmFZ/2ZiWv9nYlr/ZmFZ/2ZhWv9nYlv/aWRc/2pl - Xf9oY1v/aGNb/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lk - XP9nYlv/dXFp/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jouF/46Lhf+Oi4X/jImD/3dy - a/9uaWL/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aWRc/2hj - XP9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9pZFz/Z2Ja/2RfWP9jXlf/ZGBY/2hj - W/9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9pZFz/aGNc/2lk - XP9oZFz/aWRc/2hkXP9nYlv/ZmFa/2RfWP9kYFj/ZWFZ/2diWv9nYlr/V1NM/1NQSUwAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIhH1bgHt1/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2lkXP9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9pZFz/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9pZFz/aWRc/2lkXP9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2lkXP9kX1j/Yl1V/2JdVv9kX1j/ZmJa/2ZhWv9mYVr/ZmJa/2ZhWf9mYVr/aGNb/2lk - XP9qZV3/aWRc/2hjW/9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9pZFz/Z2Ja/4iEff+PjIb/j4yG/4+Mhv+PjIb/j4yG/4+Mhv+PjIb/j4yG/4+Mhv+PjIb/j4yG/4WB - e/90cGj/a2Zf/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lk - XP9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aWRc/2lkXP9pZFz/amVd/2lk - XP9pZFz/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/aWRc/2hjW/9nYlr/ZWBY/2Vg - Wf9nYlv/aWRc/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2lk - XP9pZFz/aGNb/2diWv9nYlr/ZmFa/2VgWf9kX1f/ZF9Y/2VgWf9mYlr/ZmFa/1hVTv9UUElfAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIN9bH14cf9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/aWRc/2lkXP9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/ZWFZ/2JdVv9iXVb/ZWFZ/2hjW/9oY1v/aGNb/2xnYP9+enP/hoJ8/3p2 - b/90b2f/a2Ze/2plXf9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/aWRc/3Rwaf+QjYf/kI2H/4+Mhv+PjIb/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CN - h/98eHH/c25m/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tm - Xv9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2plXf9rZl7/amVd/2hj - XP9oY1v/aWRc/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/aWRc/2diW/9nYlv/Z2Nb/2hjXP9nYlv/ZmFa/2diWv9oY1v/aGNb/2hjW/9cWFH/VVJLcAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI+Lhn96dm//a2Ze/2tm - Xv9rZl7/a2Ze/2plXf9qZV3/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2lkXP9pZFz/amZe/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2ZhWv9jX1f/Yl1W/2RgWP9nYlv/aGNb/2hjW/9lYVn/g4B5/4+M - hv+UkIv/ko+J/46KhP+Cfnj/eXVu/3BrZP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2lkXf+JhoD/kI2H/5CNh/+PjIb/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CN - h/+MiYP/dHBo/25pYf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZl7/amVd/2plXf9rZl7/amVd/2lkXP9qZV3/a2Ze/2tm - Xv9qZV3/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/aWRd/2hjXP9oY1z/aGNb/2lkXP9qZV3/aWRc/2hjW/9oY1v/aWRc/2lkXf9qZV3/YFxU/1JO - SIEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACXk46QeXRu/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2hjW/9pZFz/amVd/2tm - Xv9rZl7/a2Ze/2plXf9oZFz/aGRc/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9oY1z/ZWBZ/2NeV/9kX1j/ZmFa/2hjW/9nYlv/YVxV/397 - df+QjYf/kI2H/5GNiP+Tj4n/lJCL/5SQi/+RjYj/jIiD/4F9d/94dGz/bGdf/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2lkXf96dm//kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CN - h/+QjYf/gX12/3JtZv9rZl//a2Ze/2tmXv9qZV3/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amZe/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9qZV3/a2Ze/2plXf9qZV3/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVe/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2lkXf9qZV3/aWRd/2lkXf9qZV3/a2Ze/2plXf9qZV3/aWVd/2llXf9qZV3/a2Ze/2Jd - Vv9NSkOUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlpKNondz - bP9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2lkXP9pZFz/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9pZV3/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/aGNc/2lkXP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/aWRd/2diW/9lYFn/ZF9Y/2ZhWf9nYlv/Z2Ja/2Fd - Vf9xbWb/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kY6I/5OPiv+UkIv/lJCK/5CMh/+Lh4H/e3Zv/3hz - bP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2plXf9taGH/jYqE/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CN - h/+QjYf/jouF/3Rwaf9vamL/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVe/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV7/a2Ze/2tmXv9rZl7/amVd/2lkXP9pZF3/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9jXlb/TUlEpQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJSR - jLR1cWr/a2Ze/2tmXv9rZl7/a2Ze/2pmXv9qZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2plXf9oY1v/Z2Jb/2lkXP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2pl - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2lkXf9pZFz/aWRc/2hkXP9pZV3/aWRc/2di - W/9kYFj/ZWBZ/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CNh/+QjYf/kI2H/5CNh/+Sjon/lJCK/5SR - jP+Tj4r/j4uF/4iEfv96dm7/cm1m/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/g395/5CNh/+QjYf/kI2H/5CNh/+QjYf/j4yG/5CNh/+QjYf/kI2H/5CN - h/+QjYf/kI2H/4J/eP9ybWX/bGdf/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2plXf9qZV3/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/a2Ze/2tmXv9rZl7/amZe/2plXf9pZF3/aWRd/2pl - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/Y19X/01KRLcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACTkIrGdG9o/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2pl - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/aWRc/2lkXP9qZV3/a2Ze/2tmXv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2hj - W/9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9pZF3/amVd/2plXf9qZV3/a2Ze/2pl - Xf9nYlv/ZmFa/2FdVf+IhH7/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5OPiv+UkIv/lJCL/5KPif+NioT/gn54/3l1bf9xbGT/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/eHNs/5GNiP+RjYj/kY2I/5GNiP+RjYj/kI2H/46Lhv+PjIb/kI2H/5GN - iP+RjYj/kY2I/5CLhv9zb2f/b2pi/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/aWRc/2hjXP9pZFz/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/a2Ze/2pl - Xf9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2VgWf9OSkTJAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAko6H2HJtZf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/amVe/2tmXv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pl - Xf9oY1v/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/aWRd/2plXf9qZV3/amVd/2tm - Xv9pZFz/ZmFa/2hkXP9iXVb/e3dx/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+Sjon/k4+K/5SQi/+UkIv/kY2I/4yIgv9/e3T/eHRs/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/b2tj/4+Lhf+RjYj/kY2I/5GNiP+RjYj/kY2I/5CNh/+OjIb/j4yG/5CN - h/+RjYj/kY2I/5GNiP+BfXf/b2pj/2xnX/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2pl - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2lkXP9mYVr/ZmFZ/2hjW/9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9lYVn/T0tF2gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJCMhepwa2P/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/amVd/2pl - Xf9rZl7/aGNb/2VgWf9oZFz/ZF9Y/21oYf+QjYf/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5KOif+UkIr/lZGM/5OQ - iv+QjIb/ioeB/3t2b/93c2z/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9sZ1//bWhg/4qGgP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kI2H/5GN - iP+RjYj/kY2I/5GNiP+OioX/cGtj/21oYf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pl - Xf9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9oZFz/ZmFa/2VgWf9oY1v/amVd/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9qZV3/ZmFa/1FNR+wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACOioT6bmlh/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amZe/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/amVd/2ll - Xf9qZV3/a2Ze/2diW/9lYVn/aWRc/2ZhWv9gXFT/jYqE/4+Mh/+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/k4+K/5SQi/+UkIv/ko+J/42Jg/9/e3T/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9sZ1//bGdf/4aCe/+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/fHhx/21oYP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pl - Xf9pZFz/aWRc/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/aGNb/2ZhWf9mYVn/aWRc/2plXf9rZl7/a2Ze/2tm - Xv9qZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2diW/9ST0j8Yl1WAQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACJhH4OjYiD/25pYf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVe/2lk - XP9qZV3/a2Ze/2tmXv9pZFz/aGNc/2lkXP9nYlv/XlpS/4B9d/+Oi4b/kY2I/5CNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+OioX/gHx2/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2xnX/9uaWH/bmlh/4N/eP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GNiP+RjYj/kY2I/5GN - iP+RjYj/kY2I/5GNiP+RjYj/ioaA/21oYP9taGD/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pl - Xv9oY1v/ZWBZ/2ZhWf9pZFz/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2hjXP9lYVn/ZmFZ/2plXf9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9pZFz/VFFK/1dTTBAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAiYV+IYqGgP9uaWH/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/a2Ze/2xnX/9sZ1//a2Ze/2plXf9pZFz/aGNb/15aU/9yb2n/jouG/4+Mh/+Ni4b/j4yH/5CN - iP+Rjon/kY6J/5CNiP+RjYj/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GO - if+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+NioX/dG9n/3FsZf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9wa2P/cWxk/4N/eP+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GO - if+Rjon/kY6J/5GOif+Rjon/kI2I/3NuZ/9taGD/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9pZFz/ZF9Y/2NeV/9jXlf/aGNb/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/ZWFZ/2diW/9qZV3/bGdf/2xn - X/9sZ1//a2df/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZl7/amVd/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVe/1dTTP9XU0wlAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAImFfjaGg33/bWhg/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/aWRc/2lkXP9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWVd/2hjW/9jXlf/aGRe/46Lhv+Niob/jImE/46L - hv+QjYj/kY6J/5GOif+RjYj/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GO - if+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+NioX/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/21oYP9wa2P/cWxl/4aCfP+Rjon/kY6J/5GOif+Rjon/kY6J/5GOif+Rjon/kY6J/5GO - if+Rjon/kY6J/5GOif+Rjon/kY6J/356c/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pm - Xv9pZV3/aGNb/2VgWf9jX1f/ZF9Y/2diW/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//aWVd/2ZiWv9oY1v/amVd/2xn - X/9sZ1//bGdf/2tmXv9rZl7/amZe/2tmXv9rZl7/a2Ze/2pmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXv9qZl7/a2Ze/2tmXv9rZl//a2Zf/2pm - Xv9qZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9ZVE3/VlNMOQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIhX5LhIB5/21oYP9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2lkXf9pZF3/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/Z2Jb/2FdVf+MiYP/jYqF/42J - hP+QjYf/ko6J/5KPiv+Sjon/ko6J/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko6J/5KOif+Sj4r/ko+K/5KPiv+Oi4b/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/25pYf9ybWb/c25n/4iFf/+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/4mFf/9pZV3/aWRc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/amVd/2llXf9qZV3/aWRd/2tmXv9rZl7/amVe/2plXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9qZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXv9nY1v/aGNb/2tm - Xv9sZ1//bGdf/2xnX/9rZl7/amZe/2pmXv9qZV7/amVe/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmX/9rZl//a2Zf/2tm - Xv9qZl7/a2Ze/2plXf9qZV7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/WlZQ/1dTTE4AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIR+X4B8dP9rZl7/amVd/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9jXlf/fnt1/42L - hf+Ni4X/kY6J/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sjon/ko+K/5KPiv+Oi4b/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/3FsZP90cGj/eXVt/4yJg/+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/4+Lhv9taWH/aGNb/2hkXP9qZV7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2plXf9qZV7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV7/aGNc/2ll - Xf9rZl7/bGdf/2tmXv9qZV3/amVe/2tmXv9qZV7/a2Ze/2tmXv9qZV7/aWRc/2lkXP9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/amZe/2pmXv9rZl7/a2Ze/2tnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/11YUv9XU0xhAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIeDfXN7d3D/aWRc/2hjW/9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/Yl5W/29s - Zf+OjIb/kI2H/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Oi4b/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bmlh/3RvZ/92cWr/f3t0/5CNiP+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5GOif91cWn/Z2Jb/2ZhWv9nYlv/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pl - Xf9rZl7/a2Ze/2tmXv9mYVn/ZF9Y/2VgWf9oY1z/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tnX/9sZ1//bGdf/2tmXv9qZV7/aWVd/2plXf9fWlP/WFNNdgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACWk42IeHNt/2hjW/9oY1v/amVd/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRc/2Fd - Vf9hXVb/kI2I/5KOif+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Pi4b/c25n/25pYf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//c25n/3hzbP96dm7/iIR+/5KPiv+Sjon/kY6J/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv96dm//aGNc/2ZhWv9lYFj/ZmFa/2plXf9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/a2Ze/2pmXv9qZV3/amVe/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9qZV3/Y15X/2NeV/9jXlf/ZWFZ/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/YV1V/01K - RIoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAlZGMnXdzbP9oY1v/aGNb/2pl - Xf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRc/2Rf - WP9gW1T/W1ZP/4qHgf+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KOif+Rjon/ko+K/5KP - iv+Sj4r/ko+K/5KOif+Sj4r/ko+K/5KPiv+Sj4r/i4iC/4iEfv+Ggnz/eXVt/2xnX/9rZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9xbWX/eHNs/3p2b/+Df3j/j4yH/5KPiv+Sj4r/kY6J/5GNiP+Sjon/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv9+enT/amVd/2diW/9mYVr/ZWBZ/2diW/9qZV3/bGdf/2xn - X/9sZ1//bGdf/2tmXv9nYlv/Z2Jb/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2lkXP9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//amVd/2NeV/9jXlf/Y15X/2VhWf9qZV7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVe/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2Je - Vv9NSUOfAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJOQirFzb2n/aWRc/2pl - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lkXP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9rZl7/Z2Jb/2Vg - Wf9jXlf/Y15X/1tWT/97eHL/ko6J/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+QjYj/kI2I/5KO - if+Sj4r/ko6J/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/lpKN/5SRi/+NiYP/e3dv/29q - Yv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/3Ju - Zv96dm//fXly/4F9d/+MiIP/kY2I/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KOif+QjYj/kI2I/5GO - if+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Cfnj/a2Ze/2tmXv9pZF3/Z2Jb/2ZiWv9oY1v/amVd/2xn - X/9sZ1//bGdf/2xnX/9qZV7/ZWBZ/2VgWf9nYlv/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2pl - Xv9rZl7/a2Ze/2tmXv9rZl7/amVd/2hjXP9oY1z/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9lYFj/ZF9Y/2NfV/9nY1v/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl//a2Zf/2tmX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9pZFz/aWRc/2lkXP9qZV3/amVd/2plXf9rZl7/bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2tm - Xv9jX1f/TUpDtAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACSjojGc25n/2tm - Xv9rZ1//bGdf/2plXf9nY1v/ZWBZ/2djW/9oY1z/aWRd/2tmXv9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lkXP9nYlv/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//amVd/2Nf - V/9jXlf/Y19X/2NeV/9cWFD/a2di/5GNiP+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/j4yH/4+M - h/+Rjon/ko+K/5KOif+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+TkIv/lpKN/5WS - jP+Pi4X/gn53/3dza/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9vamP/d3Jr/315 - cv9+enT/hIF6/42JhP+RjYj/j42I/4+Mh/+Sjon/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Rjon/kI2I/4+N - iP+RjYj/ko+K/5KPiv+Sj4r/ko+K/5KPiv+FgXv/amZe/2tmXv9sZ1//a2Ze/2plXf9pZFz/amVd/2pl - Xv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2VgWf9kX1j/ZGBZ/2plXf9sZ1//bGdf/2xnX/9rZl7/amVd/2pl - Xf9qZV3/a2Ze/2tmXv9rZl7/amVd/2hjW/9nYlv/aGNb/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVe/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2pmXv9qZl7/a2Ze/2xnX/9qZl7/a2Ze/2xnX/9sZ1//a2Ze/2plXf9qZV3/amVe/2pl - Xf9pZF3/aGRc/2hjXP9oY1v/aWRc/2lkXP9pZFz/amVd/2tmXv9rZl7/amVe/2plXv9rZl7/a2Ze/2xn - X/9rZl7/ZWBZ/05LRMgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkY2H2nFt - Zf9sZ1//bGdf/2tmXv9oY1v/ZF9Y/2NeV/9jXlf/ZF9Y/2VgWP9pZFz/a2Ze/2ZhWv9kX1j/ZmFZ/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/Z2Nb/2lkXf9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//a2Ze/2di - Wv9jXlf/ZF9Y/2diW/9mYlr/Yl1W/19bVP+QjYj/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5GN - iP+QjYj/kY6J/5KOif+Sjon/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+Sj4r/lZGM/5aSjf+Tj4n/jYmD/356c/95dG3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//c29n/3Vwaf9+enT/gX13/4SA - ev+JhYD/jouG/5KPiv+Rjon/kI2I/4+NiP+PjYj/kY2I/5GOif+Sjon/ko+K/5KPiv+Sj4r/ko+K/5KP - iv+RjYj/ko6J/5KPiv+Sj4r/ko+K/5KPiv+Cf3j/amVd/2plXf9rZl7/bGdf/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9oZFz/Z2Ja/2hjXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2pl - Xf9pZF3/a2Ze/2xnX/9sZ1//a2Ze/2lkXP9mYlr/ZWFZ/2diW/9qZV3/a2Ze/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9qZl7/a2Ze/2xnX/9sZ1//amZe/2tmXv9rZl7/a2Ze/2plXf9qZV3/amVd/2pl - Xf9qZV3/aGNc/2diW/9oY1v/aGNc/2lkXP9nY1v/Z2Jb/2lkXP9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9sZ1//a2Ze/2diWv9RTUfcAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI+L - he9wa2P/bGdf/2xnX/9rZl7/Z2Nb/2RfWP9jXlf/ZF9Y/2VgWf9mYVr/aWVd/2lkXf9jX1f/Y15X/2Ne - V/9pZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2plXf9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2hj - W/9jXlf/Y15X/2VgWf9rZl7/a2Ze/2hjXP9iXVb/iYaA/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/lJGL/5WSjf+VkYz/lJCK/5CMh/+LiIH/fHhx/3p2bv94c2z/a2Ze/2pl - Xf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/90b2j/dnJr/3hzbP+Cfnf/hH95/4aCe/+Ig33/ioaA/4+L - hv+Sj4r/k5CL/5OQi/+TkIv/k4+K/5KOiv+Sj4r/kY2J/4+Nh/+QjYf/kY6J/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/9/e3X/aWRd/2plXf9rZl7/bGdf/2tmXv9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9rZ1//a2Ze/2xnX/9pZF3/aGNb/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tmXv9oY1z/ZmFa/2ZhWv9nYlv/aWRd/2tmXv9qZV3/amVd/2pl - Xv9qZV7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9qZV3/amVd/2hjW/9oY1v/aWRc/2lkXP9pZF3/aWRc/2lkXP9pZFz/amVd/2plXf9rZl7/amVd/2pm - Xv9rZl7/a2Ze/2xnX/9oZFz/U09J8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIB8 - dQaNiYP/bmli/2xnX/9sZ1//bGdf/2tmXv9pZFz/Z2Nb/2hjXP9pZFz/aWRc/2plXf9nY1v/Y15X/2Ne - V/9lYFj/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9jX1f/Y15X/2NeV/9pZFz/bGdf/2xnX/9sZ1//Y19Y/3t4cv+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+UkYz/lJGM/5SQi/+TkIv/ko+J/5CM - h/+OioT/joqE/42Jg/+MiIH/jIiB/4yJgv+MiYL/jImC/4yJgv+NiYP/joqF/4+Mhv+Rjoj/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5KPiv+QjYj/joyG/5CNiP+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5KPiv97d3D/aWRc/2plXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2tmXv9qZV3/ZmFa/2RfWP9nYlv/amVe/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9nY1v/ZmJa/2ZhWv9mYlr/aWRc/2plXf9rZl7/aWRc/2lk - XP9pZF3/a2Ze/2tmXv9sZ1//bGdf/2xnX/9rZl7/amVe/2plXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/aWVd/2tmXv9rZl7/a2Ze/2xn - X/9sZ1//a2Ze/2plXf9pZFz/aWRc/2lkXP9pZFz/aWRc/2lkXf9pZFz/aWRc/2lkXP9qZV7/amVe/2pl - Xf9qZV3/amVd/2tmXv9sZ1//aWVd/1RRSv9cWFEIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACIhH4dioaB/25pYf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9mYVr/ZWBZ/2Vg - Wf9mYVr/aGNc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xn - X/9nYlr/Y15X/2NeV/9kX1j/a2Ze/2xnX/9sZ1//bGdf/2ZhWv9uamT/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k4+K/5KPiv+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+Sj4r/ko+K/5OPiv+Sj4r/ko+J/5KPif+Sj4r/ko6J/5KPiv+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/ko+K/5CMh/+Rjon/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5CNh/92cWv/aWRd/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2df/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9rZl7/aWRd/2RfWP9jXlf/ZmFa/2plXf9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9kX1j/Y15X/2NeV/9lYFn/aGNb/2plXv9rZl7/a2Ze/2pl - Xf9pZF3/amVd/2tmXv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2plXv9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV7/aWRc/2lkXP9qZV3/a2Ze/2xn - X/9rZl7/amVe/2plXf9qZV3/amVd/2lkXP9pZFz/aWRd/2lkXP9pZFz/aGNb/2hjW/9pZFz/amVd/2tm - Xv9pZFz/aWRc/2diW/9qZV3/a2Ze/2lkXf9VUUv/VlJMHgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAiYR+M4aDff9taGD/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/Y19Y/2Vg - Wf9oY1z/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2lkXf9pZV3/a2Ze/2xn - X/9sZ1//ZGBY/2NeV/9jXlf/ZmFa/2xnX/9sZ1//bGdf/2xnX/9oY1z/Y19Y/5GOif+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OPiv+Sjon/k4+K/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+Tj4r/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/4mGgP9taWH/aWRc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/amVd/2plXf9qZl7/a2Ze/2lkXP9kX1j/ZF9Y/2diW/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9nYlv/Y15X/2NeV/9jXlf/Y15X/2hjXP9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9qZV3/aWRc/2plXf9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2hjXP9oY1v/aWRd/2tm - Xv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tmXv9qZV3/amVd/2plXf9pZFz/Z2Ja/2RfWP9kYFj/aGNb/2lk - Xf9qZV3/aWRc/2ZiWv9mYVr/aGNb/2plXf9pZV3/VlNM/1ZSSzQAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAImEfkuEgHn/bWhg/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2Ne - V/9oY1v/a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xn - X/9sZ1//a2df/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2RfWP9jXlf/Y15X/2hkXP9sZ1//bGdf/2xnX/9sZ1//amVd/2NeV/+Fgnz/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+PjIf/kY6J/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+Tj4v/k4+K/5OPiv+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+Tj4r/k4+K/5OPiv+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k4+K/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/ko+K/357dP9pZFz/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2lkXP9qZV3/a2Ze/2tmXv9qZV3/aGNc/2hjW/9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//aWRc/2NeV/9jXlf/Y15X/2RfWP9pZFz/a2Ze/2xn - X/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9rZl7/aWRd/2lkXP9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9oY1v/Z2Jb/2lk - XP9qZV3/amVe/2plXf9qZV3/amZe/2tmXv9rZl7/aWVd/2lkXf9pZF3/aGRc/2VhWf9jXlf/Y15X/2Zh - Wv9pZF3/a2Ze/2plXf9pZFz/aGNc/2lkXP9qZV3/aWRc/1dUTf9VUUtLAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACIhH5hf3t0/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9qZV3/a2Ze/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9lYFn/Y15X/2VgWP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9kX1j/eHRu/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+PjIb/bWhi/2pmX/+HhH7/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OPiv+Tj4r/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/jImD/3JuZ/9oY1z/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9qZV3/amVd/2tmXv9qZV3/amVd/2llXf9pZF3/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//amVd/2plXf9rZl7/bGdf/2lkXf9kYFj/Y15X/2RfWP9mYVr/amVd/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2xnX/9sZ1//a2Ze/2plXf9qZV3/amZe/2tm - Xv9rZl7/amZe/2pmXv9sZ1//bGdf/2tmXv9qZV3/amVd/2tmXv9rZl7/bGdf/2xnX/9pZF3/Z2Nb/2di - Wv9oY1v/aWRc/2lkXP9pZFz/aWRc/2tmXv9rZl7/amVe/2lkXf9pZFz/aWRd/2hjW/9nYlr/ZF9Y/2Rg - WP9nYlr/amVd/2tmXv9rZl7/a2Ze/2plXf9qZV3/aWRd/2hjXP9aVU//VVJKYQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAh4R9eHt3cP9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/amVd/2lk - XP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/ZWFZ/2NeV/9nYlr/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//Z2Ja/2tn - YP+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+PjIb/cGtk/2hjXP9kX1j/YFxU/3NvaP+Oi4b/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+RjYj/e3dw/2hjW/9oY1z/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2xnX/9sZ1//a2Zf/2xnX/9sZ1//a2Ze/2plXv9qZV7/amVd/2plXf9qZl7/amVd/2pl - Xv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9rZl7/amVd/2lkXP9nYlr/Z2Nb/2lk - XP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9qZV7/a2Ze/2tm - Xv9rZl7/a2Ze/2lkXP9qZV7/amVe/2tmXv9qZV7/aWRc/2plXf9qZV3/a2Ze/2xnX/9qZV3/aWRc/2di - W/9nY1v/aGRc/2lkXP9pZF3/aGRc/2lkXP9rZl7/amVd/2lkXf9pZV3/aWVd/2llXf9oY1v/Z2Ja/2Zh - Wf9mYVr/Z2Nb/2plXf9rZl7/bGdf/2xnX/9rZl//a2Ze/2plXf9pZFz/XFhR/1ZSS3gAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAJaTjY96dW7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWVd/2hj - XP9mYlr/aWRc/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2VgWf9jX1j/ZmJa/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2hk - XP9iXVb/j4uG/5OQi/+TkIv/k5CL/5OQi/+PjIb/cGtk/2plXf9rZl7/a2Ze/2ZhWv9iXVb/Yl5X/3x4 - cv+Sj4r/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5KPiv+Df3n/a2df/2djW/9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmX/9sZ1//bGdf/2tmX/9sZ1//bGdf/2xnX/9qZV3/amVd/2pmXv9rZl7/amVe/2lk - Xf9pZF3/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2lk - XP9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXv9qZV7/amVd/2lkXP9pZFz/amVd/2tm - Xv9sZ1//bGdf/2tmXv9qZV3/amZe/2pmXv9rZl7/amVd/2hkXP9qZV3/amVd/2tmXv9sZ1//amVd/2hj - W/9nY1v/aGNb/2lkXf9qZV3/amVd/2plXf9qZV3/amVd/2lkXP9nYlv/aGNb/2lkXP9oY1v/Z2Jb/2Zi - Wv9lYVn/ZWFZ/2diWv9qZV3/a2Ze/2tmXv9rZl7/bGdf/2xnX/9rZl7/aWRd/19aU/9MSUKQAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACVkYyld3Ns/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lk - XP9mYVr/ZWBZ/2lkXP9rZl7/a2Ze/2tmX/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2pmXv9lYFn/Y15X/2VgWf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/Y15X/4J+ef+TkIv/k5CL/5OQi/+PjIb/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//amVd/2Vh - Wf9hXFX/ZmJa/357df+Sj4n/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/ko+K/4SAe/9uaWP/Z2Ja/2hkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//a2Ze/2pl - Xf9nYlv/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9qZV3/aWRc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/amVd/2lkXP9pZF3/aWRc/2lk - Xf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pmXv9rZl7/a2Ze/2plXf9qZV3/amVd/2plXf9rZl7/a2Ze/2lk - Xf9mYlr/Z2Jb/2hjXP9qZV3/amVd/2plXf9qZV3/aWVd/2lkXP9nYlv/ZmJa/2diW/9nYlr/ZmFa/2Zh - Wv9mYlr/Z2Jb/2ZhWv9nYlr/amVd/2plXf9qZV3/a2Ze/2tmXv9sZ1//a2Ze/2plXf9hXFX/S0hCpgAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAk5CKvXVxaf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/aWRd/2hjXP9qZV3/amVe/2tmXv9rZl7/a2Ze/2xnX/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9rZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lk - XP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/ZWBZ/2NeV/9lYFn/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2RgWP90cGr/k5CL/5OQi/+PjIb/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//aWRc/2RfWP9hXFX/ZWFa/3p3cP+PjIb/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+Rjoj/gHx2/2xoYf9mYlr/aGNb/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/bGdf/2xnX/9sZ1//a2Ze/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9oY1v/ZWFZ/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2lkXf9qZV3/a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2plXf9pZFz/amVe/2lk - Xf9pZFz/amVd/2pmXv9rZl7/a2Ze/2tmXv9qZl7/a2Ze/2tmXv9qZV7/amVd/2plXf9pZFz/aWRc/2ll - Xf9oY1v/ZmJa/2ZiWv9pZFz/amVd/2plXf9pZV3/aWRd/2lkXP9oY1z/aGNc/2diW/9nYlr/Z2Jb/2Vh - Wf9jXlf/ZGBY/2ZhWf9mYVr/Z2Ja/2hjXP9oY1z/aWVd/2plXf9rZl7/a2Ze/2tmXv9qZV3/Yl1V/0xI - Q78AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJCNh9VybWb/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2tmXv9rZl7/amVd/2hj - XP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9oY1z/aWVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2diWv9jXlf/ZWBZ/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9oY1v/Z2Nc/5OQi/+PjIb/cGtk/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//aWRd/2VhWf9hXVb/YV1W/3FuZv+Fgnz/ko+K/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/4mF - gP93c23/aGNc/2ZhWv9nY1v/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9qZV3/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/aGNc/2ZiWv9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2tmXv9pZFz/aWRc/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/aWRc/2tm - Xv9pZV3/aGNc/2hkXP9qZV3/a2Ze/2plXf9qZl7/amZe/2tmXv9rZl7/a2Ze/2plXv9pZFz/ZF9Y/2Rf - WP9mYVr/ZmFa/2ZiWv9mYlr/aWRc/2plXf9qZV3/aGNc/2hjW/9oY1v/aGNc/2hjXP9nYlv/Z2Jb/2di - W/9kX1j/Y15X/2NeV/9jXlf/ZWBZ/2ZiWv9nYlr/ZmFa/2djW/9pZFz/amVd/2tmXv9qZV7/aWRc/2Je - Vv9MSUPXAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOioTub2tj/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2lk - XP9nY1v/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/aWVd/2plXf9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9mYVn/Y15X/2VhWf9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//aWRc/2JeV/+HhH7/b2pj/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2djW/9jXlf/YVxV/2RgWP90cGr/hIF7/5GO - if+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5GPif+HhH7/eHVu/2pm - Xv9lYFn/ZmFa/2hkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVe/2lkXP9oZFz/amVd/2xnX/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/aWRc/2lkXP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2ll - Xf9pZF3/amVd/2lkXf9pZFz/amVd/2tmXv9pZF3/amVd/2pmXv9rZl7/a2Ze/2lkXf9qZV3/Z2Jb/2Ne - V/9jXlf/Y15X/2ZhWf9nYlr/Z2Jb/2llXf9qZV3/aWRd/2hjXP9pZFz/aWRc/2plXf9pZFz/aGNc/2di - W/9oY1v/ZF9Y/2NeV/9jXlf/Y15X/2NeV/9kX1j/ZGBY/2NfWP9mYVr/aGNb/2plXf9qZV3/amVd/2hj - XP9jX1f/TkpE7gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACAfHUJjIiD/25pYv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2tm - Xv9pZFz/aGNb/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9pZV3/ZWBZ/2NeV/9lYFn/a2Ze/2xn - X/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9kYFj/ZmFa/2hjXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2lkXf9nYlv/Y15W/2Fd - Vf9iXVX/bWli/3l1bv+EgXv/joyG/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQ - i/+TkIv/k5CL/5OQi/+TkIv/k5CL/5OQi/+TkIv/k5CL/5CNiP+Gg33/fHhy/3FuZv9mYVr/ZGBY/2Vh - Wf9oY1v/aWVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tnX/9qZV3/amVe/2xnX/9sZ1//bGdf/2xn - X/9rZl7/amZe/2plXv9qZV7/amVd/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2plXv9qZV7/a2Ze/2lkXf9pZFz/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//amVd/2Vg - Wf9kX1j/ZmFa/2plXf9qZl7/amVd/2tmXv9rZl7/aWRd/2plXf9rZl7/a2Ze/2plXf9pZFz/amVd/2Vg - Wf9jXlf/Y15X/2NeV/9lYFn/ZmJa/2diW/9pZFz/amVd/2lkXf9pZV3/aWVd/2tmXv9rZl7/amVd/2lk - Xf9pZFz/aWRc/2ZhWv9jXlf/Y15X/2NeV/9jXlf/Y15X/2NfV/9kYFj/Z2Jb/2lkXf9qZV3/aWRd/2hk - XP9oY1v/ZWBY/1BMRv9ZVU4JAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAiIR+IYmFgP9uaWH/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2plXf9sZ1//bGdf/2xn - X/9rZl7/aWRd/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2djW/9jXlf/ZGBY/2lk - Xf9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//aWVd/2lkXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9qZV3/aGNb/2VhWf9iXlb/YV1V/2BcVf9kYFn/bWli/3NvaP95dnD/f3t1/4F9d/+EgXv/hYJ8/4mF - gP+JhoD/hoN9/4SBe/+Bfnj/f3x2/3t3cf91cWv/b2tl/2hkXP9jXlf/ZF9Y/2VgWf9nYlv/aWRc/2pm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//a2df/2xn - X/9rZl7/amVd/2llXf9qZl7/amZe/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2pmXv9qZV3/aWRc/2lkXP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2di - W/9jXlf/Y15X/2NeV/9pZFz/a2Ze/2tmXv9sZ1//a2Ze/2plXv9qZl7/amZe/2tmXv9pZF3/Z2Nb/2lk - Xf9mYlr/Y15X/2NeV/9kX1j/ZmFa/2diWv9oY1v/aWRc/2lkXf9pZF3/aWVd/2tmXv9sZ1//bGdf/2tm - Xv9rZl7/amVd/2plXf9pZFz/ZmFa/2NfWP9kYFj/ZGBZ/2NeV/9lYFn/Z2Ja/2lkXf9qZV7/amVe/2hk - XP9mYlr/ZmFa/2RfWP9QTEb/U09JIQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIiEfjmFgnz/bWhg/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9rZl7/bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tmXv9pZF3/ZmFZ/2Nf - WP9mYVn/amVe/2xnX/9rZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2df/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9oY1z/aGNb/2diW/9mYVr/Y15X/2JeV/9iXlf/Yl1W/2Jd - Vv9iXVX/Yl1W/2JeV/9iXlf/Y15X/2NfWP9kX1j/ZmFa/2hjW/9oZFz/aWRc/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2pmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl//bGdf/2xn - X/9rZl7/bGdf/2xnX/9rZl7/amZe/2pmXv9qZl7/amVd/2lkXP9nYlv/aWRc/2tmXv9rZl7/bGdf/2xn - X/9mYVr/Y15X/2NeV/9jX1f/aWVd/2tmXv9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/amVd/2pl - Xf9qZV7/aGNc/2ZhWf9nY1v/Z2Nb/2hjXP9pZFz/amVd/2tmXv9pZFz/aGNb/2llXf9qZV3/bGdf/2xn - X/9sZ1//a2Ze/2plXf9qZV3/aGNc/2ZiWv9lYFn/ZmJa/2ZhWv9lYFn/Z2Jb/2lkXP9rZl7/a2Ze/2pl - Xf9oY1v/Z2Jb/2djW/9kYFj/Uk9I/1NPSToAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACIhH1Rgn53/21o - YP9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aGNb/2lkXf9rZl7/bGdf/2xnX/9sZ1//a2Ze/2hj - XP9jXlf/Y15X/2VgWf9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xn - X/9rZl7/amVe/2plXv9qZV3/amVd/2pmXv9qZl7/amZe/2plXf9oY1z/ZmFa/2hjW/9rZl7/a2Zf/2xn - X/9sZ1//aGNc/2RfWP9jXlf/ZWFZ/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2pmXv9rZl7/amVd/2tm - Xv9sZ1//bGdf/2tmXv9rZl7/amVd/2plXf9pZF3/amVd/2plXf9rZl7/aGNc/2hjW/9oZFz/amVd/2pl - Xv9qZV3/amVd/2plXf9oY1z/Z2Nb/2hjW/9mYVr/ZmFZ/2diW/9nYlv/aGNb/2plXf9rZl7/a2Zf/2tm - Xv9qZV3/aWRc/2lkXP9oZFz/aGNb/1hUTf9VUEpUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAh4N9bH14 - cf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2hjW/9oZFz/a2Ze/2xnX/9sZ1//bGdf/2tm - Xv9pZF3/ZWBZ/2NeV/9jXlf/Z2Ja/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/aWRc/2tmX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2plXv9qZl7/amZe/2pmXv9qZV7/amZe/2pmXv9qZV3/aGNb/2ZiWv9pZFz/a2Ze/2xn - X/9sZ1//bGdf/2tmXv9qZV3/aGNc/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2pl - Xf9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVd/2plXf9pZF3/aWRc/2hjW/9nY1v/aWVd/2ll - Xf9pZV3/aWVd/2llXf9pZFz/ZmFa/2ZhWv9nY1v/aGNb/2hkXP9qZV3/amVd/2plXf9rZl7/bGdf/2xn - X/9sZ1//a2Ze/2plXv9pZV3/aWRc/2plXf9dWVL/VlJLbAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAI6K - hIZ6dW//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aGNb/2hkXP9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9qZV3/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9rZl7/amZe/2hkXP9kX1j/Y15X/2VgWf9qZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2llXf9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2xnX/9pZFz/aGNc/2pl - Xf9rZl7/bGdf/2tmXv9rZl7/amVd/2plXf9qZV3/amVd/2plXf9rZl7/a2Ze/2llXf9pZFz/aWRc/2pm - Xv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9rZl7/bGdf/2xnX/9rZl7/a2df/2xnX/9sZ1//a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/amVd/2hjW/9mYVr/ZmJa/2lk - Xf9qZV3/aWVd/2plXf9qZV3/aWRc/2VgWf9lYVn/aGNb/2lkXP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9qZV3/amVd/2llXf9qZV7/YFxV/1JOSIcAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACUkYuheHNs/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Zf/2plXf9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/amVe/2tmXv9rZl7/aGNc/2ZhWv9nY1v/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2hj - XP9oY1v/aWRc/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVe/2lkXP9oY1v/aWRd/2tmXv9rZl7/ZmFa/2Vg - Wf9oY1z/amVd/2tmXv9rZl7/a2Ze/2plXv9oY1z/aGNb/2lkXP9pZV3/a2Ze/2tmXv9rZl7/amVd/2lk - Xf9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9qZV7/aWRc/2plXf9sZ1//bGdf/2pmXv9rZl7/amVe/2llXf9nYlr/Y19Y/2Vh - Wf9pZFz/aWVd/2lkXf9pZF3/aWVd/2djW/9kYFj/ZmFa/2djW/9pZF3/amVd/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9rZl7/aWRc/2llXf9pZV3/amVe/2NeVv9MSUOhAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAk5CJvHVxaf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2tmXv9rZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9nYlv/ZmFZ/2hjW/9rZ1//bGdf/2xnX/9pZF3/amVd/2tmXv9pZF3/aGNb/2lkXP9rZl7/a2Ze/2Rg - WP9kYFj/aGNb/2plXf9rZl7/a2Ze/2tmXv9qZV7/Z2Ja/2diW/9oY1v/Z2Nb/2plXf9rZl7/bGdf/2tm - Xv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9rZl7/bGdf/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//aWRc/2hjW/9pZFz/a2Ze/2tmXv9pZV3/aWVd/2llXf9oZFz/ZGBY/2Ne - V/9kX1j/aGNb/2lkXf9pZF3/aWVd/2lkXP9nY1v/ZWBZ/2VgWf9mYVr/Z2Jb/2plXf9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2tmXv9rZl7/amVe/2plXf9qZV7/aWVd/2llXf9kX1f/TUpEvQAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJCNhtZybWb/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVe/2tmXv9rZl7/bGdf/2xnX/9rZl7/amVd/2tmXv9rZl7/a2Ze/2plXf9rZl7/bGdf/2tm - Xv9oY1z/Z2Nb/2hjXP9qZV3/amVe/2plXf9rZl7/a2Ze/2lkXP9oZFz/aWRc/2hjXP9qZV3/a2Ze/2xn - X/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Zf/2lkXf9oY1z/aWRc/2tmXv9qZV3/Z2Jb/2ZiWv9nYlv/Z2Nb/2Ne - V/9jXlf/ZF9Y/2djW/9qZV3/amVd/2tmXv9qZV3/amVd/2plXf9oZFz/Z2Jb/2diW/9qZV3/bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/a2Zf/2tmXv9rZl7/amZe/2lkXf9oZFz/ZGBY/09MRdcAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACQjIbxcGxk/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2plXf9qZV3/aWRc/2lkXP9pZFz/amZe/2tmXv9qZV3/amVd/2plXf9qZV3/amZe/2xn - X/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//a2Ze/2tmX/9rZl7/bGdf/2tmXv9sZ1//a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVe/2tmXv9sZ1//aWRd/2VhWf9jXlf/ZGBY/2Vh - Wf9jXlf/Y15X/2RfWP9qZV3/a2df/2xnX/9sZ1//a2Ze/2xnX/9sZ1//a2Ze/2lkXP9mYlr/aWRc/2tm - Xv9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVd/2diW/9ST0jyAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAl5SP9nJuZv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9qZV3/a2Ze/2tm - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2tmXv9rZl7/bGdf/2xn - X/9sZ1//bGdf/2tmXv9qZV3/aWRc/2lkXP9oY1v/aGNb/2plXf9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xn - X/9rZ1//bGdf/2tmXv9rZl7/a2Ze/2xnX/9sZ1//amVe/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/amVe/2xnX/9sZ1//bGdf/2lkXP9kX1j/Y15X/2Ne - V/9kX1j/Y15X/2NeV/9lYFn/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/aWRc/2lk - XP9qZV7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVd/2plXv9pZFz/VFFK9gAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAKShnM96dm//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9qZV3/aWRd/2llXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2tnX/9rZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9qZV3/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9pZFz/Z2Ja/2diW/9pZF3/amZe/2tmXv9rZl7/bGdf/2xn - X/9sZ1//a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/amVd/2plXf9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2tmXv9sZ1//bGdf/2xnX/9rZl7/a2Ze/2plXf9sZ1//bGdf/2xnX/9qZl7/ZWBZ/2Ne - V/9jXlf/ZF9Y/2NeV/9jXlf/ZmFZ/2plXf9sZ1//a2Ze/2tmXv9qZV3/bGdf/2xnX/9sZ1//amVd/2lk - XP9oY1v/aWRd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWVd/2pmXv9rZl7/aGNb/1VR - S88AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACkoZx7j4yF/29qYv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/amVd/2ZhWv9mYlr/aGNc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Zf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZ1//a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/amVd/2djW/9oY1z/aWVd/2plXf9qZl7/a2Ze/2xn - X/9sZ1//a2Ze/2tmXv9sZ1//a2Ze/2tmXv9rZ1//a2Ze/2pmXv9rZl7/a2Ze/2tmXv9sZ1//bGdf/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xnX/9rZl7/aWVd/2llXf9qZV3/a2Ze/2xnX/9sZ1//amVd/2Vg - Wf9jXlf/Y19X/2NfV/9jXlf/Y15X/2ZiWv9pZV3/amVd/2lkXP9oZFz/aWRc/2tmXv9sZ1//a2Ze/2tm - Xv9pZFz/Z2Jb/2hjW/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pmXv9qZl7/a2Ze/2Rg - WP9cV1F7AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAkY2HDKuppeWCfXf/bmlh/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9nYlv/Z2Jb/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tn - X/9rZl7/amVd/2pmXv9rZl7/bGdf/2xnX/9rZl7/amVe/2lkXf9nY1v/aGNb/2lkXP9pZFz/amVd/2tm - Xv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2df/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xnX/9rZl7/amZe/2llXf9qZV7/a2Ze/2tmXv9rZl7/a2Ze/2ll - Xf9mYVr/Y15X/2NeV/9jXlf/Y15X/2RfWP9pZF3/amVd/2lkXf9nYlv/ZmJa/2lkXP9rZl7/a2Ze/2tm - Xv9sZ1//a2Ze/2lkXf9nYlv/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmX/9rZl7/a2Ze/2ll - Xf9iXVblZWFZDAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACpp6I5q6ij74aDfP9ybmb/bWhg/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRd/2hkXP9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Zf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9sZ1//a2Ze/2plXf9qZV7/a2Ze/2tmX/9rZl7/amZe/2plXv9oY1z/ZmFa/2djW/9pZFz/amVd/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Ze/2tmXv9qZV7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/bGdf/2tnX/9rZl7/a2Ze/2plXf9pZFz/amVd/2tmXv9rZl7/amVd/2lk - Xf9oY1v/ZWFZ/2RfWP9kX1j/Y15X/2NeV/9nYlv/a2Ze/2tmX/9rZl7/amVd/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/aGNc/2hkXP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bWhg/29q - Yv9qZV3vZWFaOQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJKPiSaxr6q+nZuV/4yI - gv+Cfnj/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/fnpz/315cv97d3H/fHhy/356c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9+eXL/fHdx/3t3cP98eHL/fnly/355 - cv9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/356c/9+enP/fHdy/3x4 - cv9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/f3pz/396c/9/enP/fnpz/355 - cv99eXL/fnly/355cv99eHL/fXhy/355cv99eXL/fXly/314cv99eHL/e3dw/3l1bv96dm//e3dx/315 - cv9+eXL/fnpz/355cv9+eXL/fnpz/396c/9/enP/f3pz/396c/9+eXL/fnly/355cv9+eXL/fXhy/314 - cv9+eXL/fnly/355cv9+eXL/fnly/356c/9+enP/fXly/315cv97d3D/e3dw/315cv9+eXL/fnly/315 - cv98d3H/e3dw/3l1bv94dW7/eXVu/3dzbf93c23/e3dw/356c/9/enP/fnpz/356c/9/enP/f3pz/396 - c/9/enP/f3pz/396c/9/enP/f3pz/3x4cf98eHH/fXhy/396c/9/enP/f3pz/396c/9+enP/gX11/4OA - ef9+e3TAb2tjJgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJmW - kSaTj4lii4iCfoqFf790bmb/b2lh/3BqYf9wamH/cGph/29pYf9vaWH/b2lh/29pYf9wamH/cGph/3Bq - Yf9wamH/cGph/29pYf9wamH/cGph/3BqYf9wamH/cGph/29qYf9uaGH/bGZf/2xnX/9sZ1//bGZf/2xm - X/9tZ2D/bmlg/29pYf9vaWH/b2lh/29pYf9taGD/bWdg/29pYf9vaWH/b2lh/29pYf9vaWH/cGph/29p - Yf9wamH/b2lh/29pYf9vaWH/b2lh/29pYf9vaWH/b2lh/29pYf9vaWH/cGph/29pYf9vaWH/b2lh/29p - Yf9vaWH/b2lh/29pYf9tZ2D/bGdf/2xnX/9tZ2D/bmlg/25pYP9vaWH/b2lh/29pYf9vaWH/bmlg/29p - Yf9vaWH/b2lh/29pYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3Bq - Yf9wamH/b2lh/21nX/9sZ1//bmhg/29pYf9wamH/cGph/3BqYf9wamH/b2lh/25oYP9taGD/bmhh/29p - Yf9vamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3Bq - Yf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3Bq - Yf9wamH/cGph/29pYf9uaGD/bWhg/21nX/9taGD/bmlg/3BqYf9wamH/cGph/3BqYf9vamH/b2lh/21o - YP9uaGH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9wamH/cGph/3Bq - Yf9vamH/b2lh/29qYf9vaWH/b2lh/29pYf9vamH/b2ph/29pYf9uaWH/b2lh/25pYf9taGD/bWhg/25p - Yf9vamH/b2ph/29qYf9vamH/b2lh/25pYf9vaWH/cGph/3BqYf9wamH/b2ph/29qYf9vamH/b2ph/29p - Yf9vaWH/b2ph/3BqYf9wamH/cGph/29qYf9vamH/b2ph/29qYf9vaWH/bmhh/25pYf9vaWH/b2ph/29q - Yf9vaWH/bmlh/25oYP9tZ1//bWdf/25oYP9tZ1//a2Zf/21nYP9uaGD/b2lh/29qYf9wamH/cGph/3Bq - Yf9wamH/cGph/3BqYf9wamH/cGph/3BqYf9vaWH/b2lh/29qYf9wamH/cGph/21nX/+EgHl/hIB5foN/ - eGJ+enQmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAABybWV/SUM4/0E6L/9BOi//QTov/0A5Lv8/OS3/QDkt/0A5Lf9AOS3/QTov/0E6 - L/9BOi//QTov/0E6L/9BOi7/QDou/0E6L/9BOi//QTov/0E6L/9BOi//QDkt/z43LP89Niv/PDUr/zw1 - K/88NSv/Pjcs/z84Lf8/OCz/QDkt/0A5Lf9AOS3/Pzgt/z43LP8+OCz/QDkt/0A5Lf9AOS7/QDku/0A5 - Lv9AOS3/QTou/0E6L/9AOS3/Pzgt/0A5Lf9AOS3/QDkt/0A5Lf9AOS3/QDkt/0A5Lf9AOS3/QDkt/0A5 - Lf9AOS3/QDkt/0A5Lf8+Nyz/OzQq/zkyKP86Myn/OzUq/z43LP8+Nyz/Pzgt/0A5Lf9AOS3/Pzkt/z84 - Lf9AOS3/QDkt/0A5Lf9BOi7/QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6Lv8+Nyz/PDYr/z84Lf9BOi7/QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0A5 - Lv9AOS3/QDkt/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6Lv8/OCz/PTYs/z02K/89Niz/Pjgs/z84Lf9AOS7/QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTou/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/8+OCz/Pzgt/0A5Lv9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTou/z84Lf8+Niz/PTYs/0E6Lv9BOi//QTov/0E6 - L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/9BOi//QTov/0E6L/87NSr/AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAc29of09JQP9HQDb/R0A2/0ZANv9FPzX/RT81/0U+Nf9GQDX/RkA1/0hB - Nv9IQTb/SEE3/0hBN/9IQTf/R0E2/0dANv9IQTb/SEE3/0hBN/9IQTf/SEE3/0hBNv9GPzX/RD40/0M9 - M/9EPjT/RT81/0U/Nf9GPzX/Rj81/0Y/Nf9HQDX/R0A2/0dANv9GPzX/RT41/0dANf9HQTb/R0A2/0dA - Nv9HQDX/RkA1/0Y/Nf9HQDX/R0A2/0dANv9IQTb/R0A2/0dANv9HQDb/Rj81/0Y/Nf9GQDb/R0A2/0dA - Nv9HQDb/R0A2/0dANf9GPzX/Qz0z/0A7Mf8/OTD/QDox/0I8Mv9FPjT/RT81/0Y/Nv9GPzb/RkA2/0Y/ - Nv9GPzb/R0A1/0dANv9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/R0A2/0Y/Nf9HQDb/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9HQTb/Rj81/0dANv9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTb/SEE3/0hBN/9HQDb/RT40/0Q+NP9GQDX/R0A2/0dANv9IQTb/SEE2/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTb/R0A2/0hBNv9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/RT80/0Q+M/9FPzX/SEE2/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9HQDb/RD40/0Q+NP9IQTb/SEE3/0hB - N/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/SEE3/0hBN/9IQTf/QTsy/wAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAHRvaX9VUEf/TUc+/01HPv9NRz7/TUc+/01HPv9MRT3/SkQ7/0tF - PP9MRj3/TUc+/09JP/9PST//T0k//01HPv9LRTz/TEY8/05IPv9PST//T0k//09JP/9OSD//TUg+/0xG - Pf9LRDv/S0U8/0xGPf9MRj3/S0U8/0tEPP9LRjz/TEY9/01HPv9OSD7/TUc+/01HPv9NSD7/Tkg+/09J - P/9OSD//TEY9/0tEO/9KRDv/TEc9/01HPv9OSD7/Tkg+/05IPv9OSD7/TUc9/0tFO/9LRTv/TEY8/05I - Pv9OSD7/Tkg+/01IPv9NRz7/TUc9/0pEO/9IQzn/SUM6/0pEO/9KRDv/S0U8/01HPf9NRz3/TUc9/01H - Pf9NSD7/TUc9/0xGPP9OSD7/T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//01HPf9LRTz/Tkg+/09JP/9PST//T0k//09JP/9OST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09J - P/9PST//Tkg+/01IPv9OSD7/T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//05I - Pv9NRz3/S0U8/0tGPP9NRz3/Tkg+/01HPv9OSD7/T0k//09JP/9PST//T0k//09JP/9PST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//05IPv9OSD7/T0k//09JP/9PST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//01HPf9LRTv/SUM6/0tFPP9NSD7/T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//TUc+/0tFPP9NRz3/T0k//09J - P/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//09JP/9PST//T0k//0dC - Of8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABwa2R/W1VM/1JNQ/9STUP/Uk1E/1NNRP9UTkT/U05E/1BL - Qf9RS0H/UEtB/1JNQ/9VT0X/VU9F/1VPRf9TTUT/UEtC/1NNRP9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9TTUP/UUtC/1FMQv9RTEP/UUxC/1BLQf9PS0D/UUtC/1JNQ/9TTkT/U01D/1JNQ/9STEP/Uk1D/1RO - RP9UTkT/U01E/1JNQ/9RTEL/UEtB/1JMQ/9STUP/U01E/1NNQ/9STUP/U05E/1NNQ/9STUP/UkxD/1NN - Q/9VT0X/VU9F/1VPRf9TTkT/VE5E/1NNRP9STEP/Uk1D/1NNQ/9STEP/UkxD/1FLQv9STEL/Uk1D/1FM - Qv9RTEL/UkxC/1JMQv9STUP/U01E/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1RORP9STUP/Uk1D/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1NO - RP9RTEH/T0pA/01IPv9OSUD/U01D/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1RORP9STkT/UUxC/01IPv9OST//UUxC/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VE5E/1FMQv9RTEL/VU9F/1VP - Rf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VPRf9VT0X/VU9F/1VP - Rf9MSD7/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAcWxlf15ZUP9XUUj/V1FJ/1lTSv9aVEv/W1VM/1pV - TP9YUkr/V1FJ/1ZQSP9YUkn/WlRL/1tVTP9aVUv/WlVL/1lTSv9aVUv/W1VM/1tVTP9bVUz/W1VM/1tV - TP9ZVEv/WVNK/1hSSv9XUkn/WVNK/1dRSf9WUEj/VlFI/1hSSf9YUkr/WVNK/1hSSf9WUEj/U05G/1NP - Rv9YUkn/WVNK/1pUS/9ZU0r/WVNK/1hSSv9ZU0r/WVNK/1lTSv9YUkn/WFJJ/1hTSv9ZVEv/WVRL/1lU - S/9ZU0r/WlRL/1pUS/9YUkn/WlVL/1tVTP9bVUz/WlVM/1tVTP9bVUz/WVRL/1lTSv9ZU0r/WVNK/1dS - Sf9WUEj/VVBH/1VQR/9WUUj/WVNK/1pVS/9bVUz/W1VM/1tVTP9bVUz/W1VM/1pVS/9ZU0r/WlVL/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/WlVL/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9aVUv/WVNK/1hSSf9YUkr/WVNK/1pVS/9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1pVS/9YUkr/WFJK/1hSSf9TTkb/Uk5F/1ZQ - SP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1lUS/9XUUn/WFNK/1tV - TP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tVTP9bVUz/W1VM/1tV - TP9bVUz/Uk1F/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHNvaH9gWlP/W1ZN/1tVTP9bVk3/XlhP/2Ba - Uf9gWlH/X1pQ/11YTv9bVUz/XVdO/15YT/9eWU//X1lQ/15ZT/9dWE7/X1lQ/2BaUf9gWlH/YFpR/2Ba - Uf9fWlD/XlhP/11YTv9dWE7/XVhP/11YTv9dWE7/XlhP/15YT/9eWE//XVhP/15YT/9dWE//WlVM/1dS - Sv9VUEn/WlRM/11YTv9fWVD/XlhP/1xWTv9cV07/XVdO/15YT/9eWE//XFZN/1pVTP9cVk3/XVhO/19Z - UP9eWVD/XVhP/15ZT/9eWE//XFZN/19ZUP9gWlH/X1pR/19aUP9gWlH/X1pQ/15ZUP9eWE//XVhP/15Y - T/9cV07/W1ZN/1tWTf9cVk3/XVhO/19ZUP9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/XVhO/15Z - UP9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/19aUP9fWlD/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9fWVD/XVhP/11YT/9fWVD/XVhP/15Y - T/9eWVD/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9dWE//XVdO/19Z - UP9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2BaUf9gWlH/YFpR/2Ba - Uf9gWlH/YFpR/1dRSf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB2cmt/ZF9X/2BbUv9fWlH/XllQ/2Fc - VP9jXlX/Y15V/2NeVf9iXVT/XllR/2BaUv9hXFP/YFtS/2FbU/9hXFP/X1pR/2JcVP9jXlX/Y15V/2Ne - Vf9jXlX/Y11V/2FcU/9fWlL/X1pS/2FcU/9hXFP/YVxT/2FcU/9hXFP/YlxU/2JcVP9iXVT/Yl1U/2Ba - Uv9cV0//WlRN/11YUP9hW1L/YlxU/2FcU/9fWlH/XllQ/11YUP9gW1L/YVtT/19aUv9cV0//XFdO/19Z - Uf9hXFP/YlxT/2FcU/9fWlH/XllR/19ZUf9iXFT/Y15V/2NdVf9jXVX/Y15V/2NeVf9jXVX/YVtT/2Bb - U/9hXFP/YVxT/2FcU/9hW1P/YVtT/2BbU/9iXVT/Y15V/2NdVf9hXFP/Y11V/2NeVf9jXlX/Y15V/2Jd - VP9iXVT/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXVX/Yl1U/2Nd - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2JdVP9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXVX/YFpS/2Bb - Uv9jXVX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2NeVf9jXlX/Y15V/2Ne - Vf9jXlX/Y15V/2NeVf9aVU3/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAendwf2tmXv9lYFj/ZWFY/2Zh - WP9nYln/Z2JZ/2diWf9nYln/ZmFZ/2NfVv9kX1b/ZF9W/2JdVP9hXVT/YFxT/2JdVP9kX1f/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9mYVj/ZF9X/2VgV/9nYln/Z2JZ/2VgV/9lYFf/ZWBX/2ZhWP9mYVj/ZmFZ/2Zh - WP9lYFj/ZF9X/2VgV/9mYVj/ZmFZ/2ZhWP9kX1j/ZF9W/2NeVf9hXVT/YV1U/2FdU/9hXVT/XVlQ/11Z - UP9hXFP/ZWBY/2ZhWf9lYFf/Y15V/2JdVP9iXVX/ZWBY/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2Vg - WP9kX1f/ZF9X/2RfV/9lYFj/ZmFZ/2VgWP9kX1f/ZWBY/2VgWP9kX1b/ZF9X/2ZhWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Yl5V/2Fd - VP9kX1f/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/ZmFZ/2VgWP9mYVn/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9mYVn/ZWBX/2Jd - Vf9kX1b/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2diWf9nYln/Z2JZ/2di - Wf9nYln/Z2JZ/2diWf9nYln/XVhQ/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH96dH9xbGT/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/aGNb/2djW/9kX1f/YFxU/19bU/9jXlb/Z2Jb/2lk - XP9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9oY1v/Z2Nb/2hjW/9pZFz/amVd/2pl - Xf9oY1v/Z2Nb/2hjW/9qZV3/amVd/2plXf9qZV3/amVd/2hjXP9oY1v/ZmFZ/2NeV/9iXVX/Y15X/2Jd - Vv9jX1f/ZmJa/2lkXP9qZV3/aGNb/2ZhWv9kX1j/ZmFa/2hjW/9qZV3/amVd/2plXf9pZFz/aWRc/2pl - Xf9pZFz/aGNb/2ZhWv9mYlr/aGNb/2lkXP9oY1v/aGNb/2hjW/9oY1v/Z2Ja/2diW/9pZF3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2Rf - WP9hXVX/ZWBY/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2hjW/9nYlr/aGNb/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9pZFz/aGNc/2di - Wv9lYVn/Z2Jb/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2plXf9qZV3/amVd/2pl - Xf9qZV3/amVd/2plXf9qZV3/amVd/2BbVP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACBfHZ/cm1m/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/Z2Jb/2JeV/9fW1P/Y15X/2lk - Xf9qZV7/a2Ze/2plXf9qZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2plXf9rZl7/a2Ze/2tm - Xv9rZl7/aWRc/2hkXP9pZFz/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9pZV3/aWVd/2lkXP9jX1f/YV1V/2Nf - V/9kYFj/aGNb/2lkXP9rZl7/amVd/2diWv9kX1j/Yl5X/2djW/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/amVd/2plXf9oY1v/Z2Ja/2hjW/9pZF3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9pZFz/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9oZFz/a2Ze/2tm - Xv9mYlr/ZF9Y/2hjW/9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9pZF3/aGNb/2lk - XP9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9qZV3/Z2Nb/2hj - W/9pZV3/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2pl - Xf9pZFz/aWRc/2pmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tm - Xv9rZl7/a2Ze/2tmXv9rZl7/a2Ze/2tmXv9hXVX/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgn13f3Nu - Zv9sZ1//bGdf/2tmX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9oZFz/ZGBY/2Vg - Wf9qZV3/a2Ze/2xnX/9qZV3/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2plXv9rZl7/a2Ze/2xnX/9sZ1//a2Ze/2plXf9qZV3/amVd/2plXf9qZV7/ZmFa/2Jd - Vv9kYFj/aGNb/2plXf9qZV7/a2Ze/2plXf9nYlr/Y15X/2RgWP9oY1z/a2Ze/2xnX/9sZ1//a2Ze/2xn - X/9sZ1//a2Ze/2plXf9qZV3/aWRc/2hjXP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9sZ1//aWRc/2ZhWf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl//aWVd/2pl - Xf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//aWRc/2Vg - WP9lYFn/aWRc/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//Yl1W/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJ+ - eH9zbmb/bGdf/2xnX/9qZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9qZV3/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2plXf9oY1v/Z2Ja/2hkXP9pZFz/amVd/2hj - W/9kX1j/ZWBZ/2hjW/9pZV3/amVd/2tmXv9rZl7/aGRc/2VgWP9lYFn/aGNb/2tmXv9sZ1//a2Ze/2tm - Xv9sZ1//bGdf/2tmXv9qZV3/amVd/2lkXP9nY1v/aWRd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2lkXP9qZV3/a2Ze/2xnX/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2tmXv9pZFz/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lk - XP9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/a2Zf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2ll - Xf9mYVn/ZWFZ/2diW/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xv9pZFz/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2JdVv8AAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AACBfXd/cm1l/2xnX/9sZ1//a2Ze/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/amVd/2tmXv9sZ1//bGdf/2xnX/9rZl7/ZmJa/2ZhWv9nYlv/aWRd/2pl - Xf9qZV3/Z2Jb/2VhWf9mYVn/aGNc/2plXf9rZl7/bGdf/2tmXv9qZV3/amVd/2tmXv9sZ1//a2Ze/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//amVd/2plXf9oY1z/ZmFZ/2djW/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9lYVn/aGNc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2pl - Xf9qZV3/aWRd/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9pZF3/Z2Nb/2hjW/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9iXVb/AAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAgHx2f3BrZP9qZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//amVd/2lkXf9pZFz/a2Ze/2xnX/9sZ1//bGdf/2lkXf9nYlr/Z2Jb/2pl - Xf9qZV7/amVd/2lkXP9mYVr/ZmFZ/2diW/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/bGdf/2xnX/9sZ1//bGdf/2plXf9qZV7/aWRc/2ZhWv9oY1v/amVd/2tmXv9sZ1//bGdf/2xn - X/9rZl7/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9pZF3/ZF9Y/2VgWf9qZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/aWRc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pl - Xf9pZFz/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//aWRd/2RgWP9jX1j/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//Yl1W/wAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAH98dX9rZ1//Z2Ja/2lkXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV7/amVd/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/bGdf/2xnX/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pmXv9oZFz/ZmJa/2plXf9sZ1//bGdf/2xnX/9rZl7/aWRc/2hj - XP9qZV3/amVe/2plXf9pZFz/Z2Jb/2ZhWv9oY1v/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/amVd/2lkXf9oZFz/aWRc/2lkXP9qZV3/amVd/2pl - Xf9qZV3/aWRd/2diW/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVe/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVd/2RfWP9lYFj/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lkXP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9pZFz/aGNc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2plXf9lYVn/Y19X/2hjXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2JdVv8AAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAACAfHZ/bWlh/2hjXP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/ZmFa/2Fc - Vf9lYVn/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9oY1v/aWRc/2plXf9rZl7/a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV7/aGRc/2hjW/9rZl7/bGdf/2xnX/9sZ1//bGdf/2tm - Xv9qZV3/amVd/2plXv9qZV3/amVd/2plXf9pZFz/aWRd/2plXf9qZV3/amVd/2plXf9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2plXv9qZV3/amVd/2plXf9qZV3/aWRc/2lk - XP9qZV3/amVd/2hjXP9kYFj/Z2Jb/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVd/2diW/9oY1v/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9mYVr/aGNb/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9pZFz/Z2Ja/2diWv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/aGNb/2ZhWv9oY1v/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9iXlb2AAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAgn13f3FsZf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amZe/2Rg - WP9eWVH/YFtU/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9oY1z/ZmFa/2hjW/9qZV3/amZe/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lkXP9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2plXf9qZV3/a2Ze/2xnX/9sZ1//a2Ze/2tmXv9qZV3/amVd/2plXf9pZFz/amVd/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/amVd/2plXf9qZV3/amVe/2plXf9qZV3/aWRc/2lk - XP9pZFz/a2Ze/2plXf9mYVr/Yl1W/2VhWf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2hjW/9mYlr/Z2Nb/2tnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZ1//aGRc/2llXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//amVd/2diWv9nY1v/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/Y15XzwAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAIJ+eH9ybWX/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9qZV3/ZmFa/2VhWf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2pmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/aWVd/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2tmXv9rZl7/amVd/2pl - Xf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2plXf9qZV3/amVd/2plXf9qZV3/aGNc/2di - W/9oY1v/aWRc/2tmXv9rZl7/aGNb/2VgWf9mYVn/aGNc/2tnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9oY1z/aGNb/2hjXP9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/aWRd/2plXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9pZFz/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2Zh - WXsAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACCfnh/cm1m/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2tmXv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2plXf9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2pl - Xf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/aWRd/2lkXf9pZF3/amVd/2lk - XP9oY1v/aGNb/2lkXP9qZV3/amVd/2lkXP9oY1z/aGNb/2plXv9rZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//aWVd/2lkXP9qZV3/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2hk - XOVrZl8MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAg354f3NuZv9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/aGNb/2hjXP9pZFz/aWRc/2lk - XP9qZV3/aWRc/2lkXP9oZFz/aWRc/2lkXP9nYlr/aGNb/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9qZV3/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2llXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//cGtj/3Br - Y+9sZ185AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIN/eX9ybWX/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRc/2pl - Xf9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVe/2ZhWv9nYlv/aWRc/2hk - XP9pZFz/a2Ze/2plXf9pZFz/aWRc/2lkXP9pZFz/aWRd/2lkXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRc/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9vamL/d3Jr/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3h0bP95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3h0bP94c2z/eXRt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3p1bv+CfXf/jIiC/4yJ - gsB1cWkmAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACDf3l/cWxl/2tmXv9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2lk - Xf9qZl7/a2Ze/2tmXv9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9nYlv/ZmJa/2lk - XP9qZV3/a2Ze/2tmXv9rZl7/amVd/2plXf9qZV3/amVd/2plXf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9sZ1//amVe/2hjW/9pZF3/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/21oYP91cGn/iYV+25GNh3+YlI9/mZWQf5mVkH+ZlpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+ZlpF/mZaRf5mWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+ZlpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+ZlpF/mZaQf5mWkH+ZlpB/mZaQf5mVkH+ZlpB/mZaQf5mW - kX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5qWkX+alpF/mpaRf5mWkX+YlI9+lpKMYo+L - hCYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAhIB6f3FsZf9qZV3/aWRd/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9rZl7/bGdf/2xnX/9rZl7/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2lk - XP9qZV3/bGdf/2xnX/9sZ1//bGdf/2plXf9qZV3/amVd/2plXf9pZFz/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9oY1z/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2lkXP9qZV3/bGdf/3Vwaf+Df3j0h4N8f3t2bwoAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIeDfH9zb2f/a2Ze/2tm - Xv9pZFz/aWRc/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9rZl7/a2Zf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVd/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9rZl7/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tm - Xv9qZV3/amVd/2xnX/9sZ1//bGdf/2xnX/9rZl7/amVd/2plXf9oY1v/aWRc/2plXf9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//aWRc/2hjXP9pZV3/bGdf/2xn - X/9sZ1//a2Ze/2plXf9uaWH/enVu/4yIgvCOi4WQfXlyGwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACOi4V3fHdw/2xn - X/9sZ1//a2Ze/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/a2Ze/2tmXv9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/amVd/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9qZV3/aWRc/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV7/aWRd/2tmXv9rZl7/bGdf/2tm - Xv9qZV3/amVd/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXf9pZF3/Z2Ja/2lkXP9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/aGNc/2lk - XP9rZl7/bWhg/3NvZ/+BfXb/ko+K0pKOiGZ/e3UMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAmpeSUI6K - hP9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9pZV3/aWRc/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV7/amVd/2tmXv9sZ1//a2Ze/2tmXv9rZ1//bGdf/2xn - X/9sZ1//amVd/2lkXP9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/aGNb/2VgWf9mYVn/aGNb/2pl - Xf9qZV3/aWRc/2lkXf9rZl7/bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/aWRc/2lkXP9qZV7/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9sZ1//bGdf/2xnX/9sZ1//bGdf/21o - YP9ybmb/gX12/5SQi/OcmZSni4eBPgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAJSQ - iwyuq6fudG9o/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9nY1v/ZF9Y/2VgWf9oZFz/amVe/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Ze/2plXf9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2plXf9pZFz/aGNb/2lkXP9qZV3/bGdf/2xnX/9sZ1//bGdf/2hjW/9iXVb/YVxV/2Rf - WP9qZV3/aWRc/2lkXP9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9qZV3/aWRd/2lkXP9qZV3/bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9qZV3/bGdf/29qYv90b2j/fXly/46K - hf+bmJPmo6Gcn4+Lhk6EgHkIAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAuLaycpqXkv9vamL/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9nYlv/YFxU/15aUv9jX1f/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2tmXv9pZFz/bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2tmXv9qZV3/aWRd/2lkXP9pZF3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9rZl7/ZF9Y/2Fd - Vv9kX1j/aWRc/2plXf9qZV3/bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//amVd/2ZiWv9nYlv/amVd/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9taGD/cGtk/3Vwaf96dW7/hoJ8/5SRi/+fnJfhqKahrJKO - iWmTkIkoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAJuYkwLPzcumnpuW/3RwaP9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9rZl7/bGdf/2xnX/9rZl7/YV1W/11ZUf9dWVH/Yl1W/2hjXP9sZ1//bGdf/2xn - X/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2xnX/9rZl7/aWRc/2tmXv9sZ1//bGdf/2xn - X/9sZ1//a2Ze/2lkXP9nYlv/amVd/2tmXv9rZl7/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//a2Zf/2di - Wv9lYFn/ZmFa/2plXf9qZV3/a2Ze/2xnX/9sZ1//bGdf/2xnX/9sZ1//bGdf/2plXv9mYVr/Z2Jb/2xo - YP9xbGT/c29n/3Zxav94c2z/f3t0/4yIgf+UkIv/m5iT+qSinNeuq6epop+bgZaTjU6Vko0YAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAjIiCAcLBvnO8urbvmpeS/4WBe/96dm7/eXVt/3l1bf95dW3/eXVt/3l1 - bf95dW3/eXVt/3l1bf93c2z/dXFq/3Zxa/94dGz/eHNs/29rZf9saWL/bWlj/3NvaP94dGz/eXVt/3l1 - bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/d3Jr/3Nvaf90cGr/dnJr/3l1 - bf95dW3/eXVt/3l0bf93c2v/dXFq/3h0bP95dW3/eXVt/3l1bf95dW3/eXVt/3l1bf95dW3/eXVt/3l1 - bf92cmv/dXBq/3Zya/95dG3/fHdw/4N/eP+Ggnv/jImC/5CNh/+PjYb/kI2H/5aTjv+XlI//mZaS/5uY - k/+hn5rvqaei2LCuqcKzsKyqpaKdipiWkGybl5JImpaRKYqGgAYAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAnJmTCKyppU2koZxynZqVf5uXkn+alpF/mpaRf5qW - kX+alpF/mpaRf5mWkX+ZlpF/mJWQf5eUj3+XlI9/l5SPf5eTjn+Wko1/lpKNf5aTjn+Xk45/l5SPf5iU - j3+YlZB/mZWQf5mWkX+alpF/mpaRf5qWkX+alpF/mpaRf5mWkX+ZlZB/mZWQf5iVkH+XlI9/l5SPf5eU - j3+ZlZB/mZWQf5mVkH+ZlZB/mZWQf5mVkH+ZlZB/mZWQf5mVkH+ZlZB/mZWQf5mWkH+ZlpB/mZWQf5mV - kH+YlZB/mJSPf5eUj3+XlI9/mJSPf5eUj3KbmJRmm5iTZZ6alUygnZhMoJ2YTJ6blkCfnJcznZqVJJ2a - lRmLiIIGAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAA//////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - ///////////////////////////////gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/gA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf8AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/AAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAf8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+AAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAB//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAA///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAP//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///wAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAD///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//8AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA///gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - Af//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//4AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - Af//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAf//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAH//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//gAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAB//+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH//wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAA//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAP//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//8AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAD//wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/+AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAA//4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//gAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AH/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAB//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//gAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf/4A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB//gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AH/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP/wA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AB/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAf+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAf+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/4AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAH/gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf+AAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAP8AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAA/wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD/AAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAP4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAB+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH4AAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAfgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/AAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAP+AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB/+AAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAf//AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//8AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH///A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - B///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAf//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///wAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAH///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAB///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH///AAAAAAAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///wAAAAAAAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAH///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//8AAAAAA - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAH///A - AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf//8AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - D///wAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAf///AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA - AAAAAH///8AAAAAAAAAAAAAAAAA/////////////////////////wAAAAAAAAAAAAAAAAP////////// - ///////////////AAAAAAAAAAAAAAAAD/////////////////////////8AAAAAAAAAAAAAAAB////// - ////////////////////wAAAAAAAAAAAAAAAf//////////////////////////gAAAAAAAAAAAAAAf/ - /////////////////////////+AAAAAAAAAAAAAAf///////////////////////////8AAAAAAAAAAA - AA/////////////////////////////8AAAAAAAAAAAf//////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////////////////////////////////// - //////////////////////////////////////////////////8yNzAzOTg= - - - \ No newline at end of file diff --git a/PROMS/xxxSync/SyncMany/sync.ico b/PROMS/xxxSync/SyncMany/sync.ico deleted file mode 100644 index 25da3cb6..00000000 Binary files a/PROMS/xxxSync/SyncMany/sync.ico and /dev/null differ diff --git a/PROMS/xxxSync/Thumbs.db b/PROMS/xxxSync/Thumbs.db deleted file mode 100644 index ac1e1a7f..00000000 Binary files a/PROMS/xxxSync/Thumbs.db and /dev/null differ diff --git a/PROMS/xxxSync/frmSync.cs b/PROMS/xxxSync/frmSync.cs deleted file mode 100644 index dcb91903..00000000 --- a/PROMS/xxxSync/frmSync.cs +++ /dev/null @@ -1,535 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Data; -using System.Drawing; -using System.Text; -using System.Windows.Forms; -using System.IO; -using System.Xml; -using SevenZip; - -namespace Sync -{ - public partial class frmSync : Form - { - private List _CheckedOut; - private bool IsLoading = false; - public frmSync() - { - InitializeComponent(); - } - private void LoadSettings() - { - if (Properties.Settings.Default["Location"] != null) - Location = Properties.Settings.Default.Location; - if (Properties.Settings.Default["Size"] != null) - Size = Properties.Settings.Default.Size; - if (Properties.Settings.Default.DevelopmentFolder != "") - tbDevelopment.Text = Properties.Settings.Default.DevelopmentFolder; - if (Properties.Settings.Default.SourceSafeFolder != "") - tbSourceSafe.Text = Properties.Settings.Default.SourceSafeFolder; - if(Properties.Settings.Default.MailBoxDevelopmentFolder != "") - tbMailBox.Text = Properties.Settings.Default.MailBoxDevelopmentFolder; - if (Properties.Settings.Default.MailBoxSourceSafeFolder != "") - tbSSMailBox.Text = Properties.Settings.Default.MailBoxSourceSafeFolder; - } - private void frmSync_Load(object sender, EventArgs e) - { - LoadSettings(); - Setup(); - } - private void Setup() - { - // Setup Browse Buttons - btnBrwsDev.Tag = this.tbDevelopment; - btnBrwsSS.Tag = this.tbSourceSafe; - btnBrwsMail.Tag = this.tbMailBox; - btnBrwsSSMail.Tag = this.tbSSMailBox; - - } - private void btnBrowse_Click(object sender, EventArgs e) - { - TextBox tb = (TextBox)((Button)sender).Tag; - fbd.SelectedPath = tb.Text; - if (fbd.ShowDialog() == DialogResult.OK) - tb.Text = fbd.SelectedPath; - } - private void ClearResults() - { - _CheckedOut = new List(); - dgv.DataSource = null; - Application.DoEvents(); - } - private void FindCheckedOut(DirectoryInfo di) - { - FindCheckedOut(di.GetFiles()); - FindCheckedOut(di.GetDirectories()); - } - private void FindCheckedOut(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindCheckedOut(di); - } - private void FindCheckedOut(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindCheckedOut(fi); - } - private void FindCheckedOut(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (fi.Name.ToLower().EndsWith("sln")) return; - if (fi.Name.ToLower().EndsWith("csproj")) - { - // Find files that have been added to the new Project - List compileList = GetCompileList(fi.FullName); - FileInfo fi1csproj = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if (fi1csproj.Exists) - { - List compileList1 = GetCompileList(fi1csproj.FullName); - CompareLists(compileList, compileList1, fi, fi1csproj); - } - return; - } - if (fi.Name.ToLower().EndsWith("licx")) return; - FileInfo fi1 = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if ((fi1.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly) - AddToResults(fi, fi1); - } - - private void CompareLists(List compileList, List compileList1, FileInfo fi, FileInfo fi1) - { - // If anything is in compileList1 and not in CompileList add it to the results - foreach (string filename in compileList1) - if (!compileList.Contains(filename)) - AddToResults(fi, fi1, filename); - } - private void AddToResults(FileInfo fi, FileInfo fi1, string filename) - { - FileInfo newfi = new FileInfo(fi.DirectoryName + "/" + filename); - FileInfo newfi1 = new FileInfo(fi1.DirectoryName + "/" + filename); - if(!newfi.Exists)AddToResults(newfi, newfi1); // Only add if the file does not exist - } - private List GetCompileList(string fileName) - { - List retval = new List(); - XmlDocument doc = new XmlDocument(); - doc.Load(fileName); - XmlNamespaceManager nsmgr = new XmlNamespaceManager(doc.NameTable); - foreach (XmlAttribute attrib in doc.DocumentElement.Attributes) - if (attrib.Name == "xmlns") - nsmgr.AddNamespace("ns", attrib.Value); - XmlNodeList xl = doc.DocumentElement.SelectNodes(@"//ns:Compile/@Include",nsmgr); - foreach (XmlAttribute xa in xl) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:None/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - if(xa.Value.ToUpper().EndsWith("SQL")) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:Content/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - if (xa.Value.ToUpper().EndsWith("DLL")) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:Content/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - if (xa.Value.ToUpper().EndsWith("XML")) - retval.Add(xa.Value); - xl = doc.DocumentElement.SelectNodes(@"//ns:EmbeddedResource/@Include", nsmgr); - foreach (XmlAttribute xa in xl) - if (!xa.Value.ToUpper().EndsWith("LICX")) - retval.Add(xa.Value); - return retval; - } - private void AddToResults(FileInfo fiSS,FileInfo fiDev) - { - FileCompare fc = new FileCompare(fiDev, fiSS); - //if(!_OnlyContentDifferent || (fc.Different && (fc.DevModified != null))) - if (!_OnlyContentDifferent || (fc.Different)) - _CheckedOut.Add(fc); - //if (tbResults.Text == "") tbResults.Text = "Found:"; - //tbResults.Text += "\r\n" + fiDev.FullName + " - " + ((fiDev.Attributes & FileAttributes.ReadOnly) != FileAttributes.ReadOnly ? "" : "ReadOnly"); - } - private void ClearMailBox() - { - DeleteFolder(new DirectoryInfo(tbMailBox.Text)); - DeleteFolder(new DirectoryInfo(tbSSMailBox.Text)); - } - private void DeleteFolder(DirectoryInfo directoryInfo) - { - if (directoryInfo.Exists) - { - AdjustAttributes(directoryInfo); - directoryInfo.Delete(true); - } - } - private void AdjustAttributes(DirectoryInfo directoryInfo) - { - foreach (DirectoryInfo di in directoryInfo.GetDirectories()) - AdjustAttributes(di); - foreach (FileInfo fi in directoryInfo.GetFiles()) - AdjustAttribute(fi); - } - private void AdjustAttribute(FileInfo fi) - { - fi.Attributes &= (fi.Attributes ^ FileAttributes.ReadOnly);// Turn-Off ReadOnly Attribute - fi.Attributes &= (fi.Attributes ^ FileAttributes.Hidden);// Turn-Off Hidden Attribute - } - private void frmSync_FormClosing(object sender, FormClosingEventArgs e) - { - Properties.Settings.Default.Location = Location; - Properties.Settings.Default.Size = Size; - Properties.Settings.Default.DevelopmentFolder = tbDevelopment.Text; - Properties.Settings.Default.SourceSafeFolder = tbSourceSafe.Text; - Properties.Settings.Default.MailBoxDevelopmentFolder = tbMailBox.Text; - Properties.Settings.Default.MailBoxSourceSafeFolder = tbSSMailBox.Text; - Properties.Settings.Default.Save(); - } - private void exitToolStripMenuItem_Click(object sender, EventArgs e) - { - this.Close(); - } - private void clearToolStripMenuItem_Click(object sender, EventArgs e) - { - ClearMailBox(); - } - private void buildToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearMailBox(); - if (_CheckedOut == null) - checkedOutToolStripMenuItem_Click(sender, e); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) - { - fc.MoveDevToMailBox(tbDevelopment.Text, tbMailBox.Text); - fc.MoveSSToMailBox(tbSourceSafe.Text, tbSSMailBox.Text); - } - } - BuildZipOfMailBox(tbMailBox.Text); - } - private void BuildZipOfMailBox(string mailbox) - { - SevenZipCompressor.SetLibraryPath(Application.StartupPath + @"\7z.dll"); - SevenZipCompressor cmpr = new SevenZipCompressor(); - cmpr.PreserveDirectoryRoot = true; - string zipName = string.Format("{0} To SS {1}.7z", mailbox, DateTime.Now.ToString("yyyyMMdd HHmm")); - cmpr.CompressDirectory(mailbox, zipName, "*.*", true); - MessageBox.Show(string.Format("{0} created!", zipName), "Mailbox Zip Created", MessageBoxButtons.OK, MessageBoxIcon.Information); - - //if (System.IO.File.Exists(@"c:\program files\7-zip\7z.exe")) - //{ - // string args = string.Format(@"a -t7z ""{0} To SS {1}.7z"" ""{0}\*.*"" -r", mailbox, DateTime.Now.ToString("yyyyMMdd HHmm")); - // System.Diagnostics.Process p = System.Diagnostics.Process.Start(@"c:\program files\7-zip\7z", args); - // p.WaitForExit(); - //} - //"c:\program files\7-zip\7z" a -t7z "C:\Development\MailBox\Proms To SS 20120424 1850.7z" "C:\Development\MailBox\Proms\*.*" -r - } - private void checkedOutToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindCheckedOut(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void syncAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - private void restoreUnchangedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if(!fc.Different || fc.DevModified == null) - fc.MoveToDevelopment(); - } - } - private void restoreSelectedToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) fc.MoveToDevelopment(); - } - } - private void restoreAllToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - fc.MoveToDevelopment(); - } - } - private List SelectedList - { - get - { - dgv.EndEdit(); - List fcList = new List(); - foreach (DataGridViewCell dgc in dgv.SelectedCells) - { - FileCompare fc = dgv.Rows[dgc.RowIndex].DataBoundItem as FileCompare; - if (fc != null && fcList.Contains(fc) == false) - fcList.Add(fc); - } - return fcList; - } - } - private void compareToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.FileName, fc.SSFileName); - } - } - private static void CompareOneFile(string fileDev, string fileSS) - { - Console.WriteLine("Compare {0} and {1}", fileDev, fileSS); - string progname = string.Empty; - if (System.IO.File.Exists(@"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe")) - progname = @"C:\Program Files\IDM Computer Solutions\UltraCompare\UC.exe"; - if (System.IO.File.Exists(@"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe")) - progname = @"C:\Program Files (x86)\IDM Computer Solutions\UltraCompare\UC.exe"; - // string cmd = string.Format("\"{0}\" -t \"{1}\" \"{2}\"", progname, fc.FileName, fc.SSFileName); - System.Diagnostics.ProcessStartInfo psi = - new System.Diagnostics.ProcessStartInfo(progname, string.Format(@" -t ""{0}"" ""{1}""", fileDev, fileSS)); - System.Diagnostics.Process prc = System.Diagnostics.Process.Start(psi); - } - private void restoreToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - fc.MoveToDevelopment(); - } - } - private void differentToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void SetColumnWidth() - { - IsLoading = true; - if (Properties.Settings.Default["Widths"] == null) - { - dgv.Columns[0].Width = 60; - dgv.Columns[1].Visible = false; - dgv.Columns[2].Width = 125; - dgv.Columns[3].Width = 125; - dgv.Columns[4].Width = 50; - dgv.Columns[5].Width = 500; - } - else - { - for (int i = 0; i < Properties.Settings.Default.Widths.Count; i++) - { - string sWidth = Properties.Settings.Default.Widths[i]; - if (sWidth == "Invisible") - dgv.Columns[i].Visible = false; - else - dgv.Columns[i].Width = int.Parse(sWidth); - } - } - dgv.Columns[1].Visible = false; - IsLoading = false; - } - private void FindDifferent(DirectoryInfo di) - { - FindDifferent(di.GetFiles()); - FindDifferent(di.GetDirectories()); - } - private void FindDifferent(DirectoryInfo[] directoryInfoList) - { - foreach (DirectoryInfo di in directoryInfoList) - FindDifferent(di); - } - private void FindDifferent(FileInfo[] fileInfoList) - { - foreach (FileInfo fi in fileInfoList) - FindDifferent(fi); - } - private void FindDifferent(FileInfo fi) - { - if (fi.Name.ToLower().EndsWith("scc")) return; - if (fi.Name.ToLower().EndsWith("sln")) return; - if (fi.Name.ToLower().EndsWith("csproj")) - { - // Find files that have been added to the new Project - List compileList = GetCompileList(fi.FullName); - FileInfo fi1csproj = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - if (fi1csproj.Exists) - { - List compileList1 = GetCompileList(fi1csproj.FullName); - CompareLists(compileList, compileList1, fi, fi1csproj); - } - return; - } - if (fi.Name.ToLower().EndsWith("licx")) return; - FileInfo fiD = new FileInfo(fi.FullName.Replace(tbSourceSafe.Text, tbDevelopment.Text)); - FileInfo fiS = fi; - // Only check Read-Only flag, other attributes are unimportant - if (fiS.LastWriteTimeUtc != fiD.LastWriteTimeUtc || (fiS.Attributes & FileAttributes.ReadOnly ) != (fiD.Attributes & FileAttributes.ReadOnly )) - AddToResults(fi, fiD); - } - private void dgv_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) - { - if (!IsLoading) - { - System.Collections.Specialized.StringCollection widths = new System.Collections.Specialized.StringCollection(); - foreach (DataGridViewColumn col in dgv.Columns) - widths.Add(col.Visible ? col.Width.ToString() : "Invisible"); - Properties.Settings.Default.Widths = widths; - Properties.Settings.Default.Save(); - } - } - private bool _OnlyContentDifferent = false; - private void contentDifferentToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - ClearResults(); - _OnlyContentDifferent = true; - // Walk though Source Safe and check to see if the files in the Development folder are read-only - FindDifferent(new DirectoryInfo(tbSourceSafe.Text)); - _OnlyContentDifferent = false; - dgv.DataSource = _CheckedOut; - SetColumnWidth(); - } - private void frmSync_LocationChanged(object sender, EventArgs e) - { - Rectangle rec = Screen.GetWorkingArea(this); - int newLeft = Left; - int newTop = Top; - if (Math.Abs(Left - rec.X) < 10) newLeft = rec.X; - if (Math.Abs(Top - rec.Y) < 10) newTop = rec.Y; - if (Math.Abs(rec.X + rec.Width - Right) < 10) newLeft = rec.X + rec.Width - Width; - if (Math.Abs(rec.Y + rec.Height - Bottom) < 10) newTop = rec.Y + rec.Height - Height; - if (newTop != Top || newLeft != Left) - Location = new Point(newLeft, newTop); - } - private void restoreReadOnlyToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ReadOnly) fc.MoveToDevelopment(); - } - } - private void listToClipboardToolStripMenuItem_Click(object sender, EventArgs e) - { - dgv.EndEdit(); - StringBuilder sb = new StringBuilder(); - int lenFolder = tbDevelopment.Text.Length; - string lastFolder = ""; - foreach (FileCompare fc in _CheckedOut) - { - if (fc.ToProcess) - { - FileInfo fi = new FileInfo(fc.FileName); - FileInfo fis = new FileInfo(fc.SSFileName); - string folder = fi.Directory.FullName.Substring(lenFolder + 1); - if (folder != lastFolder) - { - sb.Append(folder + ":\r\n"); - lastFolder = folder; - } - sb.Append((fis.Exists ? "" : " =>NEW") + "\t" + fi.Name + "\r\n"); - } - } - try - { - sb.Append("\r\nInternal Release:\r\n"); - sb.Append("\r\nExternal Release:\r\n"); - sb.Append("\r\nTesting Performed:\r\n"); - sb.Append("\r\nTesting Requirements:\r\n"); - Clipboard.Clear(); - Clipboard.SetText(sb.ToString()); - MessageBox.Show(sb.ToString(), "Copied to Clipboard", MessageBoxButtons.OK, MessageBoxIcon.Information); - } - catch (Exception ex) - { - StringBuilder sb2 = new StringBuilder(); - string prefix = ""; - while (ex != null) - { - sb2.AppendLine(string.Format("{0}{1} - {2}",prefix, ex.GetType().Name, ex.Message)); - prefix += " "; - } - MessageBox.Show(sb2.ToString(), "Error saving Clipboard", MessageBoxButtons.OK, MessageBoxIcon.Error); - } - } - private void dgv_MouseDown(object sender, MouseEventArgs e) - { - dgv.ClearSelection(); - DataGridView.HitTestInfo info = dgv.HitTest(e.X, e.Y); - if (info.RowIndex < 0) return; - dgv.CurrentCell = dgv[0, info.RowIndex]; - dgv.Rows[info.RowIndex].Selected = true; - } - - private void selectAllToolStripMenuItem_Click(object sender, EventArgs e) - { - if (_CheckedOut == null || _CheckedOut.Count == 0) - { - MessageBox.Show("Don't you really think you should get a list first!", "Hey Moron!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - return; - } - foreach (FileCompare fc in _CheckedOut) fc.ToProcess = true; - dgv.Refresh(); - } - - private void selectNoneToolStripMenuItem_Click(object sender, EventArgs e) - { - if (_CheckedOut == null || _CheckedOut.Count == 0) - { - MessageBox.Show("Don't you really think you should get a list first!", "Hey Moron!", MessageBoxButtons.YesNoCancel, MessageBoxIcon.Stop); - return; - } - foreach (FileCompare fc in _CheckedOut) fc.ToProcess = false; - dgv.Refresh(); - } - - private void compareSourceSafeToolStripMenuItem_Click(object sender, EventArgs e) - { - // Compare SS version with SS version from Mailbox - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.SSFileName, fc.SSFileName.Replace(tbSourceSafe.Text, tbSSMailBox.Text)); - } - } - - private void compareMailboxToolStripMenuItem_Click(object sender, EventArgs e) - { - // Compare MailBox version with Mailbox Source Safe version - dgv.EndEdit(); - // This should launch UltraCompare with the two files - // Which Item am I on - List fcList = SelectedList; - foreach (FileCompare fc in fcList) - { - CompareOneFile(fc.FileName, fc.FileName.Replace(tbDevelopment.Text, tbSSMailBox.Text)); - } - } - } -} \ No newline at end of file diff --git a/PROMS/xxxSync/iSync-128x128.png b/PROMS/xxxSync/iSync-128x128.png deleted file mode 100644 index b6293d16..00000000 Binary files a/PROMS/xxxSync/iSync-128x128.png and /dev/null differ diff --git a/PROMS/xxxSync/iSync.ico b/PROMS/xxxSync/iSync.ico deleted file mode 100644 index af4a5cb4..00000000 Binary files a/PROMS/xxxSync/iSync.ico and /dev/null differ diff --git a/PROMS/xxxSync/sync.ico b/PROMS/xxxSync/sync.ico deleted file mode 100644 index 25da3cb6..00000000 Binary files a/PROMS/xxxSync/sync.ico and /dev/null differ